<template>
    <div>
        <crumbs title="问题词数据维护" style="min-width: 980px">
            <el-form :inline="true" class="demo-form-inline">
                <el-form-item label="诊断名称：">
                    <el-input size="mini" v-model="filter.disName" placeholder="诊断名称" clearable></el-input>
                </el-form-item>
                <el-form-item label="问题词：">
                    <el-input size="mini" v-model="filter.questionName" placeholder="问题词" clearable></el-input>
                </el-form-item>
                <el-form-item label="类型：">
                    <el-select size="mini" v-model="filter.type" @change="getValue"  placeholder="类型" clearable>
                        <el-option v-for="item in tagTypes" :label="item.name" :value="item.key" :key="item.id" ></el-option>
                    </el-select>
                </el-form-item>
                <el-form-item>
                    <el-button size="mini" @click="filterDatas">确认</el-button>
                    <el-button size="mini" type="warning" @click="addTagGroup">导出</el-button>
                </el-form-item>
            </el-form>
        </crumbs>
        <div class="contents">
            <el-table
                :data="list"
                border
                style="width: 100%">
                <el-table-column
                    :resizable = "false"
                    type="index"
                    :index = 'indexMethod'
                    label="编号"
                    width="60">
                </el-table-column>
                <el-table-column
                    :resizable = "false"
                    prop="gmtModified"
                    label="操作时间"
                    width="180">
                </el-table-column>
                <el-table-column
                    :resizable = "false"
                    prop="disName"
                    label="诊断名称">
                </el-table-column>
                <el-table-column
                    :resizable = "false"
                    prop="questionName"
                    label="问题词">
                </el-table-column>
                <el-table-column
                        :resizable = "false"
                        prop="typeNm"
                        label="类型">
                </el-table-column>
                <el-table-column
                    :resizable = "false"
                    prop="typeCn"
                    label="问题词归属">
                </el-table-column>
                <el-table-column
                    :resizable = "false"
                    prop="modifier"
                    label="操作人">
                </el-table-column>
            </el-table>
        <div class="pagination">
            <el-pagination v-if="total>pageSize"
                       :current-page.sync="currentPage"
                       @current-change="currentChange"
                       background
                       :page-size="pageSize"
                       layout="total,prev, pager, next, jumper"
                       :total="total">
            </el-pagination>
        </div>
        
        </div>
    </div>
</template>

<script>
import api from '@api/diagBase.js';
import apis from '@api/icss.js';
import utils from '@api/utils.js';

export default {
    name: 'QuestionWords',
    data: function() {
        return {
            list: [],
            tagTypes: [],
            Adscriptions: [],   //标签归属列表
            tagTypesList: [],   //标签类型列表
            searched: false,
            filter: {
                disName: '', //诊断名称
                questionCode: "",//问题词
                questionName: "",//问题词
                questionType: "",//问题词归属
                type:""
            },
            currentPage: 1,
            pageSize: 10,
            total: 0,
        }
    },
    created() {
        this.getDropList().then(() => {
            this.getDataList()
        })
        
    },
  watch: {
    'filter': {
      handler: function () {
        this.searched = false;
      },
      deep: true
    }
  },
  beforeRouteEnter(to, from, next) {
    next(vm => {
      //const pm = to.param;
      Object.assign(vm, to.params);
    })
  },
    methods: {
        getValue(val) {
            // console.log('changeVal', val, this.filter.tagAdscription)
        },
        getDropList() {
            return apis.getKnowledgeEnums().then((res) =>{
                if(res.data.code === '0') {
                    // this.Adscriptions = res.data.data[1];
                    let tmpLis = res.data.data.diagnoseFieldEnum
                    // this.Adscriptions = tmpLis.filter(item => item.val);
                    this.Adscriptions = tmpLis;
                    this.tagTypes =  res.data.data.diagnoseFeatureTypeEnum;
                    // for (var i = 0; i < this.tagTypes.length; i++) {
                    //     this.tagTypesList.push(this.tagTypes[i].val)
                    // }
                }
                 
            })
        },
        getDataList() {
            const param = this.getFilterItems();
            this.searched = true;
            api.queryQuestionPage(param).then((res) => {
                const list = res.data.data.records
                for (var i = 0; i < list.length; i++) {
                    for (var z =  0; z < this.Adscriptions.length; z++) {
                        if(list[i].questionType == this.Adscriptions[z].key) {
                            list[i].typeCn = this.Adscriptions[z].name
                        }
                    }
                    for (var m =  0; m < this.tagTypes.length; m++) {
                        if(list[i].type == this.tagTypes[m].key) {
                            list[i].typeNm = this.tagTypes[m].name
                        }
                    }
                }
                this.list = list;
                this.total = res.data.data.total;
            })
        },
        filterDatas() {
            this.currentPage = 1;
            this.getDataList();
        },
        addTagGroup() {
          const data = {
            disName: this.filter.disName,
            question: this.filter.questionName,
            type: this.filter.type
          };
          api.exportDiagnosticBasis(data).then((res) => {
              utils.downloadExportedData(res.data,'问题词.xls')
          })
        },
        currentChange(next) {
            this.currentPage = next;
            this.getDataList();
        },
        getFilterItems() {
            const param = {
                current: this.currentPage,
                size: this.pageSize,
                disName: this.filter.disName,
                questionCode: this.filter.questionName,
                type: this.filter.type
            };
            return param;
        },
        indexMethod(index) {
            return ((this.currentPage - 1) * this.pageSize) + index + 1;
        },
        getTagType(val) {
            return val
        },
        warning(msg,type){
          this.$message({
            showClose: true,
            message:msg,
            type:type||'warning'
          })
        },
    }
}
</script>


<style lang="less">
    @import "../../less/admin.less";
    .delete{
       color: red;
    }
    .delete:hover {
        color: red;
    } 
    .pagination {
        min-width: 1010px;
    }
</style>