zhouna 4 år sedan
förälder
incheckning
a19cf8cb06

+ 1 - 1
src/api/config.js

@@ -528,7 +528,7 @@ export default {
       'zskTypeList':'/api/cdssman/klRulePlan/getMenu',//类型列表
       'zskSearchConcept':'/api/cdssman/klDisease/searchConcept',//知识库搜索术语
       'zskUpdateAll':'/api/cdssman/cache/clearRuleAll',//更新数据
-
+      'zskgetDict':'/api/cdssman/kl/dictionary/getDictionarys',//
   },
   menuIconList: { //菜单对应图标
     'YH-KZT': 'el-icon-menu',

+ 3 - 0
src/api/knowledgeLib.js

@@ -30,4 +30,7 @@ export default {
     zskUpdateAll() {    //更新数据
         return axios.post(urls.zskUpdateAll)
     },
+    zskgetDict(){
+        return axios.post(urls.zskgetDict)
+    }
 }

+ 32 - 7
src/components/knowledgeExtra/AddNewRule.vue

@@ -64,9 +64,9 @@
                         <SubRulesGroup v-for="(group,i) in subGroups"
                                        ref="groups"
                                        :data="group"
-                                       :firstPlace="firstPlace"
                                        :baseTypes="baseTypeList"
                                        :inx="i"
+                                       :firstPlace="firstPlace"
                                        :isLast="subGroups.length===1"
                                        @addGroup="addGroup"
                                        @delGroup="delGroup"></SubRulesGroup>
@@ -87,6 +87,7 @@
                 labelPosition:'left',
                 isFirst:true,
                 isCopy:false,
+                dict:'',
                 title:'规则维护-添加规则',
                 ruleTermTypeList:[],
                 ruleTypeList:[],
@@ -94,7 +95,6 @@
                 baseTypeList:[],
                 conceptName:'',
                 firstPlace:null,
-                checkFirstPlace:false,
                 subGroups:[[{
                     subDescription:'',
                     parRuleType:'',
@@ -107,6 +107,8 @@
                     subMinUnit:'',
                     subMinValue:'',
                     subEqValue:'',
+                    subLenCode:'',
+                    dataType:'',
                 }]],
                 form:{
                     parDescription:'',
@@ -147,6 +149,7 @@
         },
         created(){
             this.getTypeList();
+            this.getDict();
             const param = this.$route.params;
             let info = param.data;
             if(info){
@@ -183,7 +186,25 @@
         components:{
             SubRulesGroup
         },
+        computed:{
+            checkFirstPlace:function(){
+                const str=this.form.parRuleType+this.form.parLenCode;
+                return this.dict.indexOf(str);
+            }
+        },
         methods:{
+            getDict(){
+                api.zskgetDict().then((res) => {
+                    if (res.data.code == '0') {
+                        const data = res.data.data;
+                        const arr =data['20'].map((it)=>it.val);
+                        this.dict = arr.join(",");
+                        localStorage.setItem("zskDicts",arr.join(","));
+                    }
+                }).catch((error) => {
+                    console.log(error);
+                });
+            },
             showConfirmDialog(msg,resolve){
                 this.$alert(msg, '提示', {
                     confirmButtonText: '确定',
@@ -196,6 +217,11 @@
                 let arr=[];
                 data.map((it)=>{
                     if(!arr[it.groupType]){arr[it.groupType]=[];}
+                    if(it.subMaxOperator){
+                        it.dataType='1';
+                    }else if(it.subEqValue){
+                        it.dataType='2';
+                    }
                     arr[it.groupType].push(it);
                 })
                 return arr;
@@ -228,11 +254,6 @@
                 this.baseTypeList = obj.subMenuList;
                 this.setInitGroupData();
                 this.form.parHasSub=obj.subMenuList.length?1:0;
-                if(obj.firstPlace===1){
-                    this.checkFirstPlace=true;
-                }else{
-                    this.checkFirstPlace=false;
-                }
             },
             getTypeList(){
               const typeListData = JSON.parse(localStorage.getItem("zskTypesList"));
@@ -251,6 +272,8 @@
                   subMinUnit:'',
                   subMinValue:'',
                   subEqValue:'',
+                  subLenCode:'',
+                  dataType:'',
               }]];
               this.form.parConceptId='';//医学标准术语清空
               this.conceptList=[];  //下拉列表清空
@@ -268,6 +291,8 @@
                     subMinUnit:'',
                     subMinValue:'',
                     subEqValue:'',
+                    subLenCode:'',
+                    dataType:'',
                 }]);
             },
             delGroup(i){

+ 15 - 20
src/components/knowledgeExtra/SubConditions.vue

@@ -1,7 +1,7 @@
 <template>
     <div class="groups-cont">
         <el-form ref="groupData" label-width="150px" class="sub-condition-form" :model="groupData" :rules="rules">
-            <span class="del-btn"  @click="delRule">删除</span><!--:class="isLast?'disable del-btn':'del-btn'"-->
+            <span v-if="!disabled" class="del-btn"  @click="delRule">删除</span><!--:class="isLast?'disable del-btn':'del-btn'"-->
             <el-form-item label="基础规则名称:" prop="subDescription">
                 <el-input v-model.trim = "groupData.subDescription" :disabled="disabled"></el-input>
             </el-form-item>
@@ -43,10 +43,9 @@
                 </el-select>
             </el-form-item>
             <el-form-item v-if="groupData.subType===2" label="选择类型:" prop="dataType">
-                <el-select v-model="dataType"
-                           @change="dataTypeChange"
+                <el-select v-model="groupData.dataType"
                            placeholder="请选择"
-                           size="small">
+                           size="small" @change="dataTypeChange">
                     <el-option
                             v-for="item in dataTypes"
                             :key="item.id"
@@ -55,7 +54,7 @@
                     </el-option>
                 </el-select>
             </el-form-item>
-            <el-form-item class="min-margin" v-if="dataType==='1'" label="最大值:" required>
+            <el-form-item class="min-margin" v-if="groupData.dataType==='1'" label="最大值:" required>
                 <div class="select-item clearfix">
                     <el-col :span="4">
                         <el-form-item prop="subMaxOperator">
@@ -83,7 +82,7 @@
                     </el-col>
                 </div>
             </el-form-item>
-            <el-form-item class="min-margin" v-if="dataType==='1'" label="最小值:" required>
+            <el-form-item class="min-margin" v-if="groupData.dataType==='1'" label="最小值:" required>
                 <div class="select-item clearfix">
                     <el-col :span="4">
                         <el-form-item prop="subMinOperator">
@@ -111,7 +110,7 @@
                     </el-col>
                 </div>
             </el-form-item>
-            <el-form-item v-if="dataType==='2'" label="医学内容:" prop="subEqValue" class="discDesc">
+            <el-form-item v-if="groupData.dataType==='2'" label="医学内容:" prop="subEqValue" class="discDesc">
                 <el-input type="textarea" rows="3" placeholder="请输入医学内容" v-model="groupData.subEqValue" maxlength="121"></el-input>
             </el-form-item>
             <el-form-item v-if="groupData.subType===6" label="正则表达式:" prop="subEqValue" class="discDesc">
@@ -133,7 +132,6 @@
             return {
                 baseTermTypeList:[],
                 typeList:[],
-                dataType:'',
                 operTypeList:[{name:'>',key:'>'},
                     {name:'>=',key:'>='},
                     {name:'<',key:'<'},
@@ -197,11 +195,6 @@
         },
         created(){
             this.conceptList=[{conceptName:this.groupData.subLibName,conceptId:this.groupData.subConceptId}];
-            if(this.groupData.subMaxOperator){
-                this.dataType='1'
-            }else if(this.groupData.subEqValue){
-                this.dataType='2'
-            }
         },
         methods:{
             dataTypeChange(val){
@@ -209,10 +202,9 @@
                 this.clearNumText();
             },
             subTypeChange(val){         //基础规则类型修改
-                this.dataType='';
-                this.groupData.subConceptId='';
-                this.groupData.dataType='';
                 this.groupData.subLenCode='';
+                this.groupData.dataType='';
+                this.clearConcept();
                 this.clearNumText();
                 if(!val){
                     this.baseTermTypeList =[];
@@ -221,13 +213,16 @@
                 const obj = this.baseTypes.find((it)=>it.type===val);
                 this.baseTermTypeList = obj.subMenuList;
             },
-            subCodeChange(){        //基础规则术语类型修改
-                this.dataType='';
-                this.groupData.subConceptId='';
+            subCodeChange(val){        //基础规则术语类型修改
+                this.groupData.subLenCode=val;
                 this.groupData.dataType='';
-                this.groupData.subLenCode='';
+                this.clearConcept();
                 this.clearNumText();
             },
+            clearConcept(){
+              this.groupData.subConceptId='';
+              this.conceptList=[];
+            },
             clearNumText(){
                 this.groupData.subMaxOperator='';
                 this.groupData.subMaxValue='';

+ 1 - 0
src/components/knowledgeExtra/SubRulesGroup.vue

@@ -50,6 +50,7 @@
                     subMinUnit:'',
                     subMinValue:'',
                     subEqValue:'',
+                    dataType:'',
                 };
                 this.data.push(temp);
             },