Просмотр исходного кода

Merge remote-tracking branch 'origin/test'

zhouna 5 лет назад
Родитель
Сommit
45c1bd61f6

+ 22 - 9
package-lock.json

@@ -4839,12 +4839,14 @@
         "balanced-match": {
           "version": "1.0.0",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "brace-expansion": {
           "version": "1.1.11",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "balanced-match": "^1.0.0",
             "concat-map": "0.0.1"
@@ -4859,17 +4861,20 @@
         "code-point-at": {
           "version": "1.1.0",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "concat-map": {
           "version": "0.0.1",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "console-control-strings": {
           "version": "1.1.0",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "core-util-is": {
           "version": "1.0.2",
@@ -4986,7 +4991,8 @@
         "inherits": {
           "version": "2.0.3",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "ini": {
           "version": "1.3.5",
@@ -4998,6 +5004,7 @@
           "version": "1.0.0",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "number-is-nan": "^1.0.0"
           }
@@ -5012,6 +5019,7 @@
           "version": "3.0.4",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "brace-expansion": "^1.1.7"
           }
@@ -5019,12 +5027,14 @@
         "minimist": {
           "version": "0.0.8",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "minipass": {
           "version": "2.2.4",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "safe-buffer": "^5.1.1",
             "yallist": "^3.0.0"
@@ -5043,6 +5053,7 @@
           "version": "0.5.1",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "minimist": "0.0.8"
           }
@@ -5123,7 +5134,8 @@
         "number-is-nan": {
           "version": "1.0.1",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "object-assign": {
           "version": "4.1.1",
@@ -5135,6 +5147,7 @@
           "version": "1.4.0",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "wrappy": "1"
           }
@@ -5256,6 +5269,7 @@
           "version": "1.0.2",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "code-point-at": "^1.0.0",
             "is-fullwidth-code-point": "^1.0.0",
@@ -8593,8 +8607,7 @@
     "quill-image-extend-module": {
       "version": "1.1.2",
       "resolved": "https://registry.npmjs.org/quill-image-extend-module/-/quill-image-extend-module-1.1.2.tgz",
-      "integrity": "sha512-yHJWZWlTjNZzV34zuT4H55ttDwMxmVJ7JUgKnt/Wd3ejUNcaPOV57/sKG8VEMU5mL7bKZPIKmBdb3weM0M5UeA==",
-      "dev": true
+      "integrity": "sha512-yHJWZWlTjNZzV34zuT4H55ttDwMxmVJ7JUgKnt/Wd3ejUNcaPOV57/sKG8VEMU5mL7bKZPIKmBdb3weM0M5UeA=="
     },
     "randombytes": {
       "version": "2.0.6",

+ 13 - 0
src/api/config.js

@@ -229,6 +229,19 @@ export default {
     'moduleDetail':'/api/precman/moduleInfo_prec/getModuleInfoOne',    //模板详情
     'deptList':'/api/precman/moduleInfo_prec/getAllDeptAndDisInfo',    //模板-科室列表
     'getPrecModuleType':'/api/precman/moduleInfo_prec/getModuleType',     //获取未创建的模板类型
+     /*********诊断依据*********/
+     'exportDiagnosticAll': '/api/knowledgeman/diagnose/exportDiagnosticAll', //诊断依据--导出诊断依据
+     'exportDiagnosticBasis': '/api/knowledgeman/diagnose/exportDiagnosticBasis', //诊断依据--导出诊断依据问题
+     'importDiagnosticBasis': '/api/knowledgeman/diagnose/importDiagnosticBasis', //诊断依据--导入诊断依据数据
+     'queryQuestionPage': '/api/knowledgeman/diagnoseQuestion/queryQuestionPage', //诊断依据--问题词分页查询
+     'diagBaseDelete': '/api/knowledgeman/diagnose/delete', //诊断依据--删除
+     'diagBaseGetDetail': '/api/knowledgeman/diagnose/getDetail', //诊断依据--获取详情
+     'diagBaseIndex': '/api/knowledgeman/diagnose/index', //诊断依据--诊断检索
+     'diagBasePage': '/api/knowledgeman/diagnose/page', //诊断依据--分页
+     'diagBaseUpdateNeo': '/api/knowledgeman/diagnose/updateNeo', //诊断依据--更新图谱
+     'diagBaseVerifyAllData': '/api/knowledgeman/diagnose/verifyAllData', //诊断依据--校验所有数据
+     'diagBaseVerifyData': '/api/knowledgeman/diagnose/verifyData', //诊断依据--校验数据
+
   },
 	menuIconList: { //菜单对应图标
 		'YH-KZT': 'el-icon-menu',

+ 57 - 0
src/api/diagBase.js

@@ -0,0 +1,57 @@
+import axios from 'axios';
+import config from '@api/config.js';
+
+const urls = config.urls;
+export default {
+    exportDiagnosticAll(param){ //诊断依据--导出诊断依据
+        // return axios.post(urls.exportDiagnosticAll, param)
+        return axios({
+            method:'post',
+            url:urls.exportDiagnosticAll,
+            data: param,
+            contentType: "application/vnd.ms-excel" ,
+            responseType: 'blob'//必须添加,否则会乱码
+        })
+    },
+    exportDiagnosticBasis(data){ //诊断依据--导出诊断依据问题
+        // return axios.post(urls.exportDiagnosticBasis, param,{
+        //     contentType: "application/vnd.ms-excel" ,
+        //     responseType: 'blob' //必须添加,否则会乱码
+        // })
+        return axios({
+            method:'post',
+            url:urls.exportDiagnosticBasis,
+            data,
+            contentType: "application/vnd.ms-excel" ,
+            responseType: 'blob'//必须添加,否则会乱码
+        })
+    },
+    
+    importDiagnosticBasis(param){ //诊断依据--导入诊断依据数据
+        return axios.post(urls.importDiagnosticBasis, param)
+    },
+    queryQuestionPage(param){ //诊断依据--问题词分页查询
+        return axios.post(urls.queryQuestionPage, param)
+    },
+    diagBaseDelete(param){ //诊断依据--删除
+        return axios.post(urls.diagBaseDelete, param)
+    },
+    diagBaseGetDetail(param){ //诊断依据--获取详情
+        return axios.post(urls.diagBaseGetDetail, param)
+    },
+    diagBaseIndex(param){ //诊断依据--诊断检索
+        return axios.post(urls.diagBaseIndex, param)
+    },
+    diagBasePage(param){ //诊断依据--分页
+        return axios.post(urls.diagBasePage, param)
+    },
+    diagBaseUpdateNeo(param){ //诊断依据--更新图谱
+        return axios.post(urls.diagBaseUpdateNeo, param)
+    },
+    diagBaseVerifyAllData(param){ //诊断依据--校验所有数据
+        return axios.post(urls.diagBaseVerifyAllData, param)
+    },
+    diagBaseVerifyData(param){ //诊断依据--校验数据
+        return axios.post(urls.diagBaseVerifyData, param)
+    }
+}

+ 1 - 0
src/components/common/HomePage.vue

@@ -85,6 +85,7 @@
             this.menuWrappers = data.menuWrappers;
             this.organization = data.organization;
             this.userLoginDTO = data.userLoginDTO;
+            localStorage.setItem('userLoginDTO', JSON.stringify(data.userLoginDTO));
             this.getRole=='user' && this.getAuthStatus();
             if(hasConcole){
               const url = this.getRole=='user'?'/user/YH-KZT':'/admin/LT-KZT';

+ 752 - 0
src/components/diagBase/AddDiagBase.vue

@@ -0,0 +1,752 @@
+<!-- 添加常见科室症状  -->
+<template>
+    <div class="AddDiagBaseWrapper" @click="close">
+        <crumbs
+          :title="'诊断依据数据维护-'+titleText"
+          class="topBack"
+          :param="$route.params"
+          linkTo="DiagBase"
+        ></crumbs>
+        <el-form  ref="ruleForm"  class="addDepartForm">
+            <el-form-item  class="addDiagName"  label="选择添加疾病名称:" >
+                <input class="searchInput"  @focus="focuInput" type="text" v-model = "searchDiagVal"> 
+                <span class="searchName" @click="searchDiag">搜索</span>
+                <ul class="itemList diagList" ref="diagList">
+                    <li 
+                    v-for="item in diagList" 
+                    class="diagItem ellipsis"
+                    :title="item.name"
+                    @click="selectDiag(item)"
+                    :key="item.conceptId">
+                    {{item.name}}
+                    </li>
+                </ul>
+            </el-form-item>
+             <el-form-item class="isRequired" label="已选添加疾病名称:">
+                {{disName}}
+            </el-form-item>
+        </el-form>
+        <div class="symptomList">
+            <p class="moduleTitle">疾病特征:</p>
+            <table class="diagTable">
+                <tr class="tableTitle">
+                    <td class="FeatureSort">排序</td> 
+                    <td class="FeatureType require">类型</td>
+                    <td class="FeatureNumber require">序号</td>
+                    <td class="FeatureStand require">标准词</td>
+                    <td class="FeatureRelate">关联词</td>
+                    <td class="FeatureResult">结果</td>
+                    <td class="FeatureOpera"></td>
+                </tr>
+                <tr v-for="(item, index) in disFeatureList" :key="item.index"> 
+                    <td class="FeatureSort" >{{index+1}}</td>
+                    <td class="FeatureType" >
+                        <el-select size="mini" :class="{selectType: item.typeNull}" v-model.trim="item.type" placeholder="标签类型" @change="clickItem(index,'FeatureType')" clearable>
+                            <el-option v-for="item in featureTypeList" :label="item.name" :value="item.key" :key="item.key"></el-option>
+                        </el-select>
+                    </td>
+                    <td class="FeatureNumber"  >
+                        <el-tooltip :disabled="!item.verifyCode&&!item.codeNull&&!item.codeError" class="item" effect="dark" :content="item.verifyCode||item.codeNull||item.codeError" placement="top">
+                            <input class="groupInput"  :class="{borderRed:item.verifyCode||item.codeNull, colorRed: item.codeError}" :title="item.code" type="text" v-model.trim="item.code" @input="handleInp(index,$event,'FeatureNumber')"  @click="clickItem(index,'FeatureNumber')">
+                        </el-tooltip>
+                    </td>
+                    <td class="FeatureStand" >
+                        <el-tooltip  :disabled="!item.verifyStandard&&!item.standardNull" class="item" effect="dark" :content="item.verifyStandard||item.standardNull" placement="top">
+                            <input class="groupInput"  :class="{borderRed:item.verifyStandard||item.standardNull}" :title="item.standard" type="text" v-model.trim="item.standard" @input="handleInp(index,$event,'FeatureStand')"   @click="clickItem(index,'FeatureStand')">
+                        </el-tooltip>                    
+                    </td>
+                    <td class="FeatureRelate">
+                        <el-tooltip :disabled="!item.verifyRelation&&!item.relationNull"  class="item" effect="dark" :content="item.verifyRelation||item.relationNull" placement="top">
+                            <input class="groupInput" :class="{borderRed:item.verifyRelation|| item.relationNull}" :title="item.relation" type="text" v-model.trim="item.relation" @input="handleInp(index,$event,'FeatureRelate',item.type)"  @click="clickItem(index,'FeatureRelate')">
+                        </el-tooltip> 
+                    </td>
+                    <td class="FeatureResult">
+                        <el-tooltip :disabled="!item.verifyResult"  class="item" effect="dark" :content="item.verifyResult" placement="top">
+                            <input :readonly="item.type!=3" class="groupInput" :class="{borderRed:item.verifyResult, inpDisabled:item.type!=3}"  :title="item.result" type="text" v-model.trim="item.result" @input="handleInp(index,$event,'FeatureResult')" @click="clickItem(index,'FeatureResult')">
+                        </el-tooltip> 
+                    </td>
+                    <td class="FeatureOpera">
+                        <el-button type="text" size="small" class="delete" @click="addItem(index, 1)"><div class="btnOpera">+</div></el-button>
+                        <el-button v-if="index !=0" type="text" size="small" class="delete" @click="delItem(index, 1)"><div class="btnOpera">-</div></el-button>
+                    </td>
+                </tr>
+            </table>
+            <p class="moduleTitle">诊断公式:</p>
+            <p class="inpTips">可输入数字(0~9)规定内汉字:任、一、二、三、四、五、六、七、八、九、十,其余汉字不可输入;可输入的符号:“.”、“/”、“()”</p>
+            <table class="diagTable">
+                <tr class="tableTitle"> 
+                    <td class="FormulaSort">排序</td> 
+                    <td class="FormulaType">类型</td>
+                    <td class="FormulaNumber">公式</td>
+                    <td class="FormulaOpera"></td>
+                </tr>
+                <tr v-for="(item, index) in disFormulaList"  :key="item.index"> 
+                    <td class="FormulaSort">{{index +1}}</td>
+                    <td class="FormulaType">
+                        <el-select size="mini" :class="{selectType: item.verifyType}" v-model.trim="item.type" placeholder="标签类型"  @change="clickItem(index,'FormulaType')" clearable>
+                            <el-option v-for="item in formulaTypeList" :label="item.name" :value="item.key" :key="item.key"></el-option>
+                        </el-select>
+                    </td>
+                    <td class="FormulaNumber">
+                        <el-tooltip :disabled="!item.verifyFormula"  class="item" effect="dark" :content="item.verifyFormula" placement="top">
+                            <input class="groupInput" :class="{borderRed:item.verifyFormula}" :title="item.formula" type="text" v-model.trim="item.formula" @input="handleInp(index,$event,'FormulaNumber')"  @click="clickItem(index,'FormulaNumber')">
+                        </el-tooltip> 
+                    </td>
+                   <td class="FeatureOpera">
+                        <el-button type="text" size="small" class="delete" @click="addItem(index, 2)"><div class="btnOpera">+</div></el-button>
+                        <el-button v-if="index !=0" type="text" size="small" class="delete" @click="delItem(index, 2)"><div class="btnOpera">-</div></el-button>
+                    </td>
+                    <!-- <td class="selectedContent ">{{item.indexUnique}}</td>
+                    <td class="selectedContentGroup"><input class="groupInput" type="text" v-model="item.indexDesc" @input="handleInp(index,$event)"></td>
+                    <td class="selectedContentOpera"><el-button type="text" size="small" class="delete" @click="delSelectedIndex(item, index)">删除</el-button></td> -->
+                </tr>
+                
+            </table>
+             <div class="btn clearfix">
+                     <div class="btnBox">
+                         <el-button
+                                type="primary"
+                                @click="submitForm('save')"
+                                >校验并保存数据</el-button>
+                            <el-button
+                                type="primary"
+                                :disabled = "hasQuestion == 1"
+                                @click="exportDiagnosticAll"
+                                >导出诊断依据</el-button>
+                            <el-button
+                                type="primary"
+                                :disabled = "hasQuestion == 1"
+                                @click="updateNeo"
+                                >更新图谱</el-button>
+                     </div>
+                
+                </div>
+        </div>
+        
+    </div>
+    
+</template>
+
+<script>
+  import api from '@api/diagBase.js';
+  import utils from '@api/utils.js';
+  import apis from '@api/icss.js';
+
+  export default {
+    name: 'AddChronicAndIndexRelation',
+    data() {
+        return{
+            
+            id: '',  //诊断id
+            disName:'',  //诊断名称
+            modifier: '', //操作人
+            titleText: '添加',
+            diagList: [],
+            featureTypeList: [],
+            formulaTypeList: [],
+            disFeatureList: [
+                {
+                    type:'',
+                    code:'',
+                    standard:'',
+                    relation:'',
+                    result:'',
+                    formula:''
+                }
+            ],  //疾病特征列表
+            disFeatureListResult:[], //疾病特征列表(保存用)
+            disFormulaList:[
+                {
+                    type:'',
+                    code:'',
+                    standard:'',
+                    relation:'',
+                    result:'',
+                    formula:''
+                }
+            ],
+            disFormulaListResult:[], //诊断公式列表(保存用)
+            searchDiagVal: '',
+            isEdit: false,
+            saveDisable: false ,
+            hasQuestion: 1, //是否有问题词
+        }
+    },
+    created(){
+        const userLoginDTO = JSON.parse(localStorage.getItem('userLoginDTO'))
+        this.modifier = userLoginDTO && userLoginDTO.linkman
+        this.getDropList()
+        const { isEdit, data } = this.$route.params;
+        if(isEdit) {
+            if(isEdit) {
+                this.isEdit = isEdit;
+                this.titleText = '修改';
+                this.disName = data.disName
+                this.id = data.id
+                if(data.disFeature.length) {
+                    this.disFeatureList = data.disFeature
+                }   
+                if(data.disformula.length) {
+                    this.disFormulaList = data.disformula
+                } 
+                this.hasQuestion = data.hasQuestion
+
+            } 
+        } else {
+            
+        }
+    },
+    watch: {
+        // searchTagVal(newVal, preVal) {
+        //     if(newVal.trim() == ''){
+        //         this.getTagList()
+        //     }else if(newVal.trim() != preVal.trim()){
+        //         this.getTagList()
+        //     }
+        // }
+    },
+    methods: {
+        getDropList() {
+          return apis.getKnowledgeEnums().then((res) =>{
+              if(res.data.code === '0') {
+                  this.featureTypeList = res.data.data.diagnoseFeatureTypeEnum.filter(item => item.key != 0)
+                  this.formulaTypeList = res.data.data.diagnoseTypeEnum
+              }
+                 
+          })
+        },
+        close() {
+            this.diagList = [];
+            if(this.diagList.length>0){this.$refs['diagList'].style.display = 'none';}
+        },
+        back(){
+            this.$router.go(-1);
+        },
+        searchDiag() {
+            if(!this.searchDiagVal) {
+                return
+            }
+            const param = {
+                "name": this.searchDiagVal,
+            }
+            
+            api.diagBaseIndex(param).then((res)=>{
+               if(res.data.code === '0') {
+                   this.diagList = res.data.data
+                   if(this.diagList.length>0) {this.$refs['diagList'].style.display = 'block'}
+                }
+            })
+        },
+        selectDiag(item) {
+            this.disName = item.name
+            this.$refs['diagList'].style.display='none'
+            this.searchDiagVal = ''
+            this.diagList=[]
+        },
+        focuInput() {
+            this.$refs['diagList'].style.display='none'
+            
+        },
+        addItem(index, type) {
+            if(type == 1) {
+                const item = {
+                    type:'',
+                    code:'',
+                    standard:'',
+                    relation:'',
+                    result:'',
+                }
+                this.disFeatureList.splice(index+1, 0, item)
+            }else if(type == 2) {
+                 const item = {
+                    type:'',
+                    code:'',
+                    standard:'',
+                    relation:'',
+                    result:'',
+                }
+                this.disFormulaList.splice(index+1, 0, item)
+            }
+        },
+        delItem(index, type) {
+            if(type == 1) {
+                this.disFeatureList.splice(index, 1)
+            }else if(type == 2) {
+                this.disFormulaList.splice(index, 1)
+            }
+        },
+        updateNeo() {
+            this.submitForm('updateNeo').then(() => {
+                if(this.hasQuestion == 0) {
+                    const param = {
+                        id: this.id,
+                        modifier: this.modifier
+                    }
+                    api.diagBaseUpdateNeo(param).then((res) => {
+                        if(res.data.code == 0) {
+                            this.warning('更新成功', 'success');
+                        } else {
+                            this.warning(res.data.msg)
+                        }
+                    })
+                } else {
+                    this.warning('更新失败');
+                }
+                
+            })
+            // api.diagBaseUpdateNeo(param).then((res) =>{
+
+            // })
+        },
+        exportDiagnosticAll(){
+            
+            this.submitForm('export').then(() => {
+                if(this.hasQuestion == 0) {
+                        const param = {
+                        diagnoseId: this.id
+                    }
+                    api.exportDiagnosticAll(param).then((res) => {
+                        utils.downloadExportedData(res.data,'诊断依据');
+                    })
+                }else {
+                    this.warning('导出失败');
+                }
+                
+            })
+           
+        },
+        submitForm(type) {
+            if(!this.disName) {
+                this.warning('请选择诊断');
+                return
+            }
+            this.disFeatureListResult = []
+            this.disFormulaListResult = []
+            let errStrList = [];
+            for(let i = 0; i < this.disFeatureList.length; i++) {
+                if(this.disFeatureList[i].type || this.disFeatureList[i].code || this.disFeatureList[i].standard || this.disFeatureList[i].relation || this.disFeatureList[i].result) {
+                    this.disFeatureListResult.push(this.disFeatureList[i])
+                }
+            }
+            for(let i = 0; i < this.disFormulaList.length; i++) {
+                if(this.disFormulaList[i].type || this.disFormulaList[i].formula ) {
+                    this.disFormulaListResult.push(this.disFormulaList[i])
+                }
+            }
+            let disFeatureList;
+            if(this.disFeatureListResult.length) {
+               disFeatureList = this.disFeatureListResult;
+            } else {
+               disFeatureList = [
+                    {
+                        type:'',
+                        code:'',
+                        standard:'',
+                        relation:'',
+                        result:'',
+                        formula:''
+                    }
+                ];
+            }
+            const disFormulaList = this.disFormulaListResult;
+            let codeErrorNum = 0;
+            for(let i=0; i < disFeatureList.length; i++) {
+                if(!disFeatureList[i].type) {
+                     disFeatureList[i].typeNull = "未选择类型"
+                }
+                 if(!disFeatureList[i].code) {
+                    disFeatureList[i].codeNull = "未填写编码"
+                }
+                 if(!disFeatureList[i].standard) {
+                    disFeatureList[i].standardNull = "未填写标准词"
+                }
+                if(!disFeatureList[i].type||!disFeatureList[i].code||!disFeatureList[i].standard) {
+                    const errStr = "第" + (i+ 1) +"行必填项未填写"
+                    errStrList.push(errStr)
+                }
+                if(disFeatureList[i].type == '3' && disFeatureList[i].result && !disFeatureList[i].relation) {
+                     disFeatureList[i].relationNull = "未填写关联词"
+                     const errStr = "第" + (i+ 1) +"行化验项数据填写不完整"
+                    errStrList.push(errStr)
+                }
+                let regex =new RegExp(`${disFeatureList[i].type}\\.[1-9]\\d?`) 
+                if(disFeatureList[i].code &&!regex.test(disFeatureList[i].code)) {
+                    codeErrorNum++
+                    disFeatureList[i].codeError = "序号和类型不匹配"
+                    const errStr = "疾病特征第" + (i+ 1) +"行序号和类型不匹配"
+                    errStrList.push(errStr)
+                } 
+                
+            }
+            this.disFeatureList = JSON.parse(JSON.stringify(disFeatureList))
+            let formulaListErrNum = 0
+            for(let i=0; i < disFormulaList.length; i++) {
+                   if(disFormulaList[i].type&&!disFormulaList[i].formula ) {
+                       disFormulaList[i].verifyFormula = "诊断公式不能为空"
+                       formulaListErrNum++;
+                       const errStr = "诊断公式第" + (i+ 1) +"行诊断公式不能为空"
+                       errStrList.push(errStr)
+                   } else if(disFormulaList[i].formula&&!disFormulaList[i].type) {
+                       disFormulaList[i].verifyType = "诊断类型不能为空"
+                        const errStr = "诊断公式第" + (i+ 1) +"行诊断类型不能为空"
+                       errStrList.push(errStr)
+                       formulaListErrNum++;
+                   }
+            }
+            if(disFormulaList.length) {
+                this.disFormulaList = JSON.parse(JSON.stringify(disFormulaList))
+            }
+           
+            let errorStr =''
+            for(let i = 0; i <errStrList.length; i++) {
+                errorStr += '<p>'+errStrList[i]+'</p>'
+            }
+           
+            if(errStrList.length >0 ||codeErrorNum > 0 ||formulaListErrNum > 0) {
+                 this.$alert(errorStr,'错误信息',{
+                    dangerouslyUseHTMLString: true,
+                    confirmButtonText: '确定',
+                    callback: action => {
+                        /*this.$message({
+                        type: 'info',
+                        message: `action: ${ action }`
+                        });*/
+                    }
+                });
+                return
+            }
+            // this.showDelDialog()
+            return this.diagBaseVerifyData(type)
+           
+        },
+        diagBaseVerifyData(type) {
+             const param = {
+                disFeature: this.disFeatureListResult,
+                disName: this.disName,
+                disformula: this.disFormulaListResult,
+                id: this.id,
+                modifier: this.modifier
+            }
+            return api.diagBaseVerifyData(param).then((res) => {
+                const data = res.data.data
+                if(type =='save') {
+                    if(data.hasQuestion) {
+                        this.warning('校验完成请先调整问题词,该数据已保存')
+                    } else {
+                        this.warning('校验成功', 'success')
+                    }
+                }
+                
+                this.id = data.id
+                this.disFeatureList = data.disFeature
+                if(data.disformula.length) {
+                    this.disFormulaList = data.disformula
+                }else {
+                    this.disFormulaList = [
+                        {
+                            type:'',
+                            code:'',
+                            standard:'',
+                            relation:'',
+                            result:'',
+                            formula:''
+                        }
+                    ]
+                }  
+                this.hasQuestion = data.hasQuestion
+                
+            })
+        },
+        
+        showConfirmDialog(msg, resolve) {
+            this.$alert(msg, '提示', {
+                confirmButtonText: '确定',
+                type: 'warning'
+            }).then(() => {
+                resolve();
+            }).catch(() => {});
+        },
+        warning(msg, type,time) {
+            this.$message({
+                showClose: true,
+                message: msg,
+                type: type || 'warning',
+                duration:time || '3000'
+            })
+        },
+        handleInp(index,e,type,itemType){ //分组不能输入负数
+            const value =  e.target.value;
+            if(type === 'FeatureNumber') { //序号只能输入数字和.
+                this.disFeatureList[index].code = value.replace(/[^\d.]/g,'')
+            } else if(type==='FeatureStand') {  //关联词不能输入顿号
+                this.disFeatureList[index].standard = value.replace(/、/g,'')
+            } else if ( type === 'FormulaNumber') {
+                //计算公式只能输入以下内容: 任、一、二、三、四、五、六、七、八、九、十、0-9、/、.、(、)、(、)
+                this.disFormulaList[index].formula =  value.replace(/[^\u4EFB\u4E00\u4E8C\u4E09\u56DB\u4E94\u516D\u4E03\u516B\u4E5D\u53410-9\/\.+\(\)\(\)]/g,'').replace(/[\(]/g, '(').replace(/[\)]/g, ')').replace(/' '/g, '')
+            } else if ( type === 'FeatureRelate') {
+                if(itemType == 3) {
+                    this.disFeatureList[index].relation = value.replace(/、/g,'')
+                }
+            }
+            // const item = this.selectedIndexList[index].indexDesc;
+            // e.target.value = value.replace(/[^\d]/g,'');
+            // this.selectedIndexList[index].indexDesc = item.replace(/[^\d]/g,'');
+        },
+        clickItem(index, type) {
+            switch(type) {
+                case 'FeatureType':
+                    this.disFeatureList[index].typeNull = ''
+                    this.disFeatureList[index].code = ''
+                    this.disFeatureList[index].standard = ''
+                    this.disFeatureList[index].relation = ''
+                    this.disFeatureList[index].result = ''
+                    this.disFeatureList[index].formula = ''
+                    return this.disFeatureList = JSON.parse(JSON.stringify(this.disFeatureList))
+                case 'FeatureNumber': 
+                    this.disFeatureList[index].codeNull = ''
+                    this.disFeatureList[index].verifyCode = ''
+                    this.disFeatureList[index].codeError = ''
+                    return this.disFeatureList = JSON.parse(JSON.stringify(this.disFeatureList))
+                case 'FeatureStand':
+                    this.disFeatureList[index].verifyStandard =''
+                    this.disFeatureList[index].standardNull =''
+                    return this.disFeatureList = JSON.parse(JSON.stringify(this.disFeatureList))
+                case 'FeatureRelate':
+                    this.disFeatureList[index].verifyRelation =''
+                    return this.disFeatureList = JSON.parse(JSON.stringify(this.disFeatureList))
+                case 'FeatureResult':
+                    this.disFeatureList[index].verifyResult =''
+                    return this.disFeatureList = JSON.parse(JSON.stringify(this.disFeatureList))
+                case 'FeatureResult':
+                    this.disFeatureList[index].verifyResult =''
+                    return this.disFeatureList = JSON.parse(JSON.stringify(this.disFeatureList))
+                case 'FormulaType':
+                     this.disFormulaList[index].verifyType =''
+                    return this.disFormulaList = JSON.parse(JSON.stringify(this.disFormulaList))
+                case 'FormulaNumber':
+                    this.disFormulaList[index].verifyFormula =''
+                    return this.disFormulaList = JSON.parse(JSON.stringify(this.disFormulaList))
+            }
+        },
+        warning(msg,type){
+          this.$message({
+            showClose: true,
+            message:msg,
+            type:type||'warning'
+          })
+        }
+    }
+  }
+</script>
+
+<style lang="less">
+    @import '../../less/common.less';
+    .AddDiagBaseWrapper {
+        color: #606266;
+        .topBack {
+            top: 0;
+        }
+        .groupTitle {
+            background-color: #fff;
+            height: 40px;
+            line-height: 40px;
+            padding-left: 20px;
+        }
+        .searchInput, .searchName {
+            display: inline-block;
+            height: 32px;
+            line-height: 32px;
+            border: 1px solid #a9a9a9;
+            margin: 0px 0 0 0;
+            padding: 0 5px;
+            float: left;
+            margin-top: 4px;
+        }
+        .isRequired .el-form-item__label::before {
+            content: '*';
+            color: red;
+        }
+        .searchName {
+            border-left: none;
+            cursor: pointer;
+            font-size: 16px;
+            padding: 0 14px;
+        }
+        .itemList {
+            position: absolute;
+            display: none;
+            background: #fff;
+            width: 162px;
+            max-height: 150px;
+            border: 1px solid #a9a9a9;
+            left: 138px;
+            top: 37px;
+            z-index: 2;
+            overflow-y: auto;
+        }
+        .diagItem {
+            padding: 0 5px;
+            height: 30px;
+            line-height: 30px;
+            font-size: 14px;
+            cursor: pointer;
+        }
+        .diagItem:hover {
+            background: #f5f7fa;
+        }
+        .addDepartForm {
+            position: relative;
+            background-color: #fff;
+            padding: 20px;
+            margin: 70px 20px 0px 20px;
+        }
+        .addDiagName {
+            position: relative;
+        }
+        .symptomList {
+            position: relative;
+            background-color: #fff;
+             padding: 20px 20px 100px 20px;
+             margin: 0px 20px 40px 20px;
+             min-height: 400px;
+        }
+        
+        .diagTable {
+            width: 100%;
+            border-collapse: collapse;
+            margin-bottom: 20px;
+            tr {
+                td {
+                    padding: 5px 10px;
+                    border: 1px solid #a9a9a9;
+                    text-align: center;
+                }
+                .FormulaOpera, .FeatureOpera{
+                    background: #fff;
+                    border: none;
+                    text-align: left;
+                    padding-left: 30px;
+                }
+            }
+            .selectedContent {
+                width: 25%;
+            }
+            .selectedContentGroup {
+                width: 55%;
+            }
+            .selectedContentOpera {
+                width: 20%;
+            }
+        }
+        .groupInput {
+            text-align: center;
+            height: 28px;
+            color: #606266;
+            width: 80%;
+        }
+        .btn {
+            position: absolute;
+            background-color: #fff;
+            width: 100%;
+            margin: 20px 0;
+            height: 40px;
+            bottom: 0px;
+            right: 0px;
+            .btnBox {
+                position: absolute;
+                right: 0px;
+                
+            }
+            .el-button {
+                margin-right: 20px;
+               
+            }
+        }
+        .tableTitle{
+            background: rgba(239,243,249,1);
+        }
+        .require::after{
+            content:"*";
+            color: red;
+        }
+        .borderRed {
+            border: 1px solid red !important;
+        }
+        .colorRed {
+            color: red;
+        }
+        .FeatureSort {
+            width: 5%;
+        }
+        .FeatureType {
+            width: 7%;
+        }
+        .FeatureNumber {
+            width: 8%;
+        }
+        .FeatureStand {
+            width: 25%;
+        }
+        .FeatureRelate {
+            width: 25%;
+        }
+        .FeatureResult {
+            width: 20%;
+        } 
+        .FeatureOpera{
+            width: 10%;
+        } 
+        .FormulaSort{
+            width: 5%;
+        } 
+        .FormulaType{
+            width: 7%;
+        } 
+        .FormulaNumber{
+            width: 78%;
+        } 
+        .FormulaOpera{
+            width: 10%;
+        }
+        .btnOpera {
+            width:16px;
+            height:16px;
+            background:rgba(176,190,197,1);
+            border-radius: 50%;
+            color: #fff;
+            line-height: 16px;
+            text-align: center;
+        }
+        /deep/.el-input--mini .el-input__inner {
+            width: 80px;
+        }
+        /deep/ .is-disabled {
+                    background: #ECECEC;
+                    color: #AAAAAA;
+                    border: none;
+                }
+        .selectType {
+            input {
+                border: 1px solid red;
+            }
+            input:hover {
+                border: 1px solid red;
+            }
+        }
+        .moduleTitle {
+            margin: 0 0 10px 0;
+        }
+        .inpDisabled{
+            background: #ECECEC;
+            color: #AAAAAA;
+            border: none;
+            cursor: not-allowed;
+        }
+        .inpTips {
+            font-size: 13px;
+            color: red;
+            margin-bottom: 10px;
+        }
+    }
+    
+</style>

+ 313 - 0
src/components/diagBase/DiagBase.vue

@@ -0,0 +1,313 @@
+<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.modifier" placeholder="操作人" clearable></el-input>
+                </el-form-item>
+                <el-form-item label="校验数据:">
+                    <el-select size="mini" v-model="filter.hasQuestion" placeholder="标签类型" clearable>
+                        <el-option v-for="item in dataTypeList" :label="item.name" :value="item.key" :key="item.key"></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item>
+                    <el-button size="mini" @click="filterDatas">确认</el-button>
+                     <el-button size="mini" @click="verifyAllData" >校验全部数据</el-button>
+                    <el-button size="mini" type="warning" @click="addDiagBase">添加诊断依据</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"
+                    label="校验数据">
+                    <template slot-scope="scope" >
+                        <span :class="scope.row.hasQuestion == '0' ? '': 'hsaQuestion'">
+                            {{scope.row.hasQuestion == '0' ? "无问题词" : "有问题词"}}
+                        </span>
+                    </template>
+                </el-table-column>
+                <el-table-column
+                    :resizable = "false"
+                    prop="neoUpdate"
+                    label="最后更新图谱时间">
+                </el-table-column>
+                <el-table-column
+                    :resizable = "false"
+                    prop="modifier"
+                    label="操作人">
+                </el-table-column>
+                <el-table-column
+                    :resizable = "false"
+                    prop="operate"
+                    label="操作">
+                    <template slot-scope="scope">
+                        <el-button  @click="modifyDiagBase(scope.row, 'modify')" type="text" size="small">修改</el-button>
+                        <span style="margin:0 3px;">|</span>
+                        <el-button @click="showDelDialog(scope.row.id)" class="delete" type="text" size="small">删除</el-button>
+                        
+                    </template>
+                </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 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>
+</template>
+
+<script>
+import api from '@api/diagBase.js';
+import apis from '@api/icss.js';
+
+export default {
+    name: 'diagBase',
+    data: function() {
+        return {
+            list: [],
+            dataTypeList: [],
+            searched: false,
+            filter: {
+                disName: '', //诊断名称
+                modifier: '', //操作人
+                hasQuestion: '', //有无问题词
+            },
+            currentPage: 1,
+            pageSize: 10,
+            total: 0,
+            modifier: '',
+        }
+    },
+    created() {
+        this.getDropList()
+        this.getDataList()
+        const userLoginDTO= JSON.parse(localStorage.getItem('userLoginDTO'))
+        this.modifier = userLoginDTO && userLoginDTO.linkman
+    },
+  watch: {
+    'filter': {
+      handler: function () {
+        this.searched = false;
+      },
+      deep: true
+    }
+  },
+  beforeRouteEnter(to, from, next) {
+    next(vm => {
+      Object.assign(vm, to.params);
+    })
+  },
+    methods: {
+        getDropList() {
+          return apis.getKnowledgeEnums().then((res) =>{
+              if(res.data.code === '0') {
+                  this.dataTypeList = res.data.data.hasQuestionEnum
+              }
+                 
+          })
+        },
+        getDataList(isTurnPage) {
+            const param = this.getFilterItems(isTurnPage);
+            this.searched = true;
+            api.diagBasePage(param).then((res) => {
+                this.list = res.data.data.records
+                this.total = res.data.data.total;
+            })
+        },
+        filterDatas() {
+            this.currentPage = 1;
+            this.getDataList();
+        },
+        addDiagBase() {
+          const pam = this.searched ? {
+            currentPage: this.currentPage,
+            filter: this.filter
+          } : {currentPage: this.currentPage};
+          this.$router.push({name: 'AddDiagBase', params: pam});
+        },
+        verifyAllData() {
+          const loading = this.$loading({
+            lock: true,
+            text: 'Loading',
+            spinner: 'el-icon-loading',
+            background: 'rgba(0, 0, 0, 0.7)'
+          });
+          api.diagBaseVerifyAllData({}).then((res) => {
+            loading.close();
+            const {code,data,msg} = res.data;
+            if(code === '0') {
+              this.currentPage = 1;
+               this.pageSize = 10,
+               this.filter.disName = '',
+               this.filter.modifier = '', //操作人
+               this.filter.hasQuestion = ''
+
+              this.getDataList()
+            } else {
+                this.warning(msg)
+            }
+          })
+        },
+        modifyDiagBase(row, type) {
+            api.diagBaseGetDetail({id:row.id}).then((res)=>{
+                const {code,data,msg} = res.data;
+                if(code=='0'){
+                    const item = Object.assign({},row,data);
+                    const pam = this.searched ? {
+                      currentPage: this.currentPage,
+                      filter: this.filter
+                    } : {currentPage: this.currentPage};
+                    if(type == 'modify') {
+                      this.$router.push({
+                        name: 'AddDiagBase',
+                        params: Object.assign(pam, {isEdit: true, data: item})
+                      });
+                    } else if( type == 'copy') {
+                      this.$router.push({
+                        name: 'AddDiagBase',
+                        params: Object.assign(pam, {isCopy: true, data: item})
+                      });
+                    } else {
+                        return
+                    }
+                }else{
+                    this.$message({
+                    message: msg,
+                    type: 'warning'
+                    });
+                }
+            });
+        },
+        currentChange(next) {
+            this.currentPage = next;
+            this.getDataList(true);
+            // if (this.cacheData[next]) {       //如果已请求过该页数据,则使用缓存不重复请求
+            //     this.list = this.cacheData[next];
+            // } else {
+            //     this.getDataList();
+            // }
+        },
+        getFilterItems(isTurnPage) {
+            if(isTurnPage&&!this.searched){
+              this.clearFilter();
+            };
+            const param = {
+                current: this.currentPage,
+                size: this.pageSize,
+                disName: this.filter.disName,
+                modifier: this.filter.modifier, //操作人
+                hasQuestion: this.filter.hasQuestion, //有无问题词
+            };
+            return param;
+        },
+        indexMethod(index) {
+            return ((this.currentPage - 1) * this.pageSize) + index + 1;
+        },
+        warning(msg,type){
+          this.$message({
+            showClose: true,
+            message:msg,
+            type:type||'warning'
+          })
+        },
+       clearFilter(){
+          this.filter={
+            disName: '', //诊断名称
+            modifier: '', //操作人
+            hasQuestion: '', //有无问题词
+          };
+        },
+        showConfirmDialog(msg,resolve){
+          this.$alert(msg, '提示', {
+            confirmButtonText: '确定',
+            type: 'warning'
+          }).then(() => {
+            resolve();
+          }).catch(() => {});
+        },
+        showDelDialog(id){
+          this.showConfirmDialog('是否删除该诊断依据?',()=>{
+            api.diagBaseDelete({id:id,modifier:this.modifier,isDeleted:'Y',remark:''}).then((res)=>{
+              if(res.data.code=='0'){
+                if(!this.searched){
+                  //未点确认时清空搜索条件
+                  this.clearFilter();
+                }
+                if(this.list.length==1){
+                  //当前在最后一页且只有一条数据时,删除后跳到前一页
+                  this.currentPage = this.currentPage===1?1:this.currentPage-1;
+                }
+                this.getDataList();
+                this.warning(res.data.msg || '操作成功','success');
+              }else{
+                this.warning(res.data.msg);
+              }
+            }).catch((error)=>{
+              this.warning(error);
+            })
+          });
+        }
+    }
+}
+</script>
+
+
+<style lang="less">
+    @import "../../less/admin.less";
+    .delete{
+       color: red;
+    }
+    .delete:hover {
+        color: red;
+    } 
+    .pagination {
+        min-width: 1010px;
+    }
+    .hsaQuestion {
+        color: red;
+    }
+</style>

+ 224 - 0
src/components/diagBase/QuestionWords.vue

@@ -0,0 +1,224 @@
+<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.questionType
+          };
+          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>

+ 1 - 1
src/components/icss/CommonTemplate.vue

@@ -572,7 +572,7 @@ export default {
         "tagName": this.searchVal,
         "type": tmpTypeSin,
         "notIds": notIds,
-        "notTagType": (this.type==2 || this.type==22 || this.type==32 || this.type==322 || this.type==4)?[4,8,10]:[3,4,8,10]//查体没有症状尾巴有血压,其他史有症状尾巴无血压
+        "notTagType": (this.type==2 || this.type==22 || this.type==32 || this.type==322 || this.type==4)?[4,8,10]:[3,4,8,10]
       }
       let params = {
         "notIds": notIds,

+ 1 - 1
src/components/preTreat/PubIndeptQa.vue

@@ -197,7 +197,7 @@
                     label="医学教育说明:"
                     prop="explains"
             >
-                <el-input type="textarea" @input="sendData" v-model="form.explains" style="width: 500px;"></el-input>
+                <el-input type="textarea" @input="sendData" v-model="form.explains" maxLength ='100' style="width: 500px;"></el-input>
             </el-form-item>
         </el-form>
     </div>

+ 8 - 0
src/routes.js

@@ -92,6 +92,11 @@ import AddSimpleQuestion from '@components/preTreat/AddSimpleQuestion.vue';
 import AddCombinQuestion from '@components/preTreat/AddCombinQuestion.vue';
 import QuestionModules from '@components/preTreat/QuestionModules.vue';
 import AddQuestionModules from '@components/preTreat/AddQuestionModules.vue';
+//诊断依据
+import DiagBase from '@components/diagBase/DiagBase.vue';  //诊断依据--诊断依据数据维护
+import AddDiagBase from '@components/diagBase/AddDiagBase.vue';  //诊断依据--诊断依据数据维护
+
+import QuestionWords from '@components/diagBase/QuestionWords.vue';
 
 export default [
   {
@@ -254,6 +259,9 @@ export default [
       {path:'LT-YWZSJWH-MBWH',component:QuestionModules,name:'QuestionModules'},  //预问诊-模板维护
       {path:'LT-YWZSJWH-TJMBWH',component:AddQuestionModules,name:'AddQuestionModules'},  //预问诊-添加模板
 
+      {path:'LT-ZDYJWH-ZDYJSJWH',component:DiagBase,name:'DiagBase'},  //诊断依据-诊断依据维护
+      {path:'LT-ZDYJWH-TJZDYJSJ',component:AddDiagBase,name:'AddDiagBase'},  //诊断依据-添加诊断依据
+      {path:'LT-ZDYJWH-WTCSJWH',component:QuestionWords,name:'QuestionWords'},  //问题列表
 
     ]
   }