zhouna 4 lat temu
rodzic
commit
7d6a30801d

+ 33 - 12
src/components/knowledgeExtra/AddNewRule.vue

@@ -62,6 +62,7 @@
                     </el-form-item>
                     <el-form-item v-if="form.parHasSub===1" label="规则内容:" prop="remind" class="discDesc">
                         <SubRulesGroup v-for="(group,i) in subGroups"
+                                       ref="groups"
                                        :data="group"
                                        :firstPlace="firstPlace"
                                        :baseTypes="baseTypeList"
@@ -126,10 +127,10 @@
                                 callback();
                             }}, trigger: 'change'
                     }],
-                    parRuleType:[{ required: true, message: '请选择规则类型',trigger: ['blur'] }],
-                    parLenCode:[{ required: true, message: '请选择规则术语类型',trigger: ['blur'] }],
+                    parRuleType:[{ required: true, message: '请选择规则类型',trigger: ['change'] }],
+                    parLenCode:[{ required: true, message: '请选择规则术语类型',trigger: ['change'] }],
                     parConceptId:[{ required: true, message: '请输入医学标准术语',trigger: ['blur'] }],
-                    parHasSub:[{ required: true, message: '请选择有无子条件',trigger: ['blur'] }],
+                    parHasSub:[{ required: true, message: '请选择有无子条件',trigger: ['change'] }],
                     parMsg:[{
                         validator: (rule,value,callback)=>{
                             if(value.length>300){
@@ -258,12 +259,12 @@
                     parRuleType:'',
                     subConceptId:'',
                     subType:'',
-                    /*subMaxOperator:'',
+                    subMaxOperator:'',
                     subMaxUnit:'',
                     subMaxValue:'',
                     subMinOperator:'',
                     subMinUnit:'',
-                    subMinValue:''*/
+                    subMinValue:''
                 }]);
             },
             delGroup(i){
@@ -294,21 +295,41 @@
                 });
                 return obj
             },
-            confirm(){
+            validateForms(callBack){
                 this.$refs['form'].validate((valid) => {
                     if (valid) {
-                        this.form.klRuleByIdSub=undefined;
-                        this.form.klRuleInfoSaveSub = this.form.parHasSub?this.formatGroups():undefined;
-                        let params = this.form;
-                        if(this.parId){//修改/复制
-                            params = Object.assign({},this.form,{parId:this.isCopy?undefined:this.parId})
+                        const groupsRef = this.$refs['groups'];
+                        let groupRef=null,goOn=true;
+                        for(let i=0;i<groupsRef.length;i++){
+                            groupRef=groupsRef[i].$refs['group'];
+                            for(let j=0;j<groupRef.length;j++){
+                                groupRef[j].$refs['groupData'].validate((valid)=>{
+                                    if(!valid){
+                                        goOn=false;
+                                    }
+                                })
+                            }
+                        }
+                        if(goOn){
+                            callBack();
                         }
-                        this.saveRule(params);
                     } else {
                         return false;
                     }
                 });
             },
+            confirm(){
+                const _this=this;
+                this.validateForms(function(){
+                    _this.form.klRuleByIdSub=undefined;
+                    _this.form.klRuleInfoSaveSub = _this.form.parHasSub?_this.formatGroups():undefined;
+                    let params = _this.form;
+                    if(_this.parId){//修改/复制
+                        params = Object.assign({},_this.form,{parId:_this.isCopy?undefined:_this.parId})
+                    }
+                    _this.saveRule(params);
+                });
+            },
         }
     }
 </script>

+ 32 - 13
src/components/knowledgeExtra/SubConditions.vue

@@ -1,6 +1,6 @@
 <template>
     <div class="groups-cont">
-        <el-form ref="form" label-width="150px" class="sub-condition-form" :model="groupData" :rules="rules">
+        <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'"-->
             <el-form-item label="基础规则名称:" prop="subDescription">
                 <el-input v-model.trim = "groupData.subDescription" :disabled="disabled&&firstPlace"></el-input>
@@ -44,6 +44,7 @@
             </el-form-item>
             <el-form-item v-if="groupData.subType===2" label="选择类型:" prop="dataType">
                 <el-select v-model="dataType"
+                           @change="dataTypeChange"
                            placeholder="请选择"
                            size="small">
                     <el-option
@@ -72,7 +73,7 @@
                     </el-col>
                     <el-col :span="4">
                         <el-form-item prop="subMaxValue">
-                            <el-input  type="text" v-model="groupData.subMaxValue" placeholder="填写数值"/>
+                            <el-input-number controls-position="right" type="text" v-model="groupData.subMaxValue" placeholder="填写数值"/>
                         </el-form-item>
                     </el-col>
                     <el-col :span="4">
@@ -100,7 +101,7 @@
                     </el-col>
                     <el-col :span="4">
                         <el-form-item prop="subMaxValue">
-                            <el-input  type="text" v-model="groupData.subMinValue" placeholder="填写数值"/>
+                            <el-input-number controls-position="right" type="text" v-model="groupData.subMinValue" placeholder="填写数值"/>
                         </el-form-item>
                     </el-col>
                     <el-col :span="4">
@@ -133,11 +134,11 @@
                 baseTermTypeList:[],
                 typeList:[],
                 dataType:'',
-                operTypeList:[{name:'>',key:1},
-                    {name:'>=',key:2},
-                    {name:'<',key:3},
-                    {name:'<=',key:4},
-                    {name:'=',key:5},
+                operTypeList:[{name:'>',key:'>'},
+                    {name:'>=',key:'>='},
+                    {name:'<',key:'<'},
+                    {name:'<=',key:'<='},
+                    {name:'=',key:'='},
                 ],
                 dataTypes:[{id:'1',name:'数值类型'},{id:'2',name:'文本类型'}],
                 conceptList:[],
@@ -150,14 +151,14 @@
                                 callback();
                             }}, trigger: 'change'
                     }],
-                    subType:[{ required: true, message: '请选择基础规则类型',trigger: ['blur'] }],
-                    subLenCode:[{ required: true, message: '请选择基础规则术语类型',trigger: ['blur'] }],
+                    subType:[{ required: true, message: '请选择基础规则类型',trigger: ['change'] }],
+                    subLenCode:[{ required: true, message: '请选择基础规则术语类型',trigger: ['change'] }],
                     subConceptId:[{ required: true, message: '请输入医学标准术语',trigger: ['blur'] }],
-                    type:[{ required: true, message: '请选择类型',trigger: ['blur'] }],
-                    subMaxOperator:[{ required: true, message: '请选择最大值操作符号',trigger: ['blur'] }],
+                    dataType:[{ required: true, message: '请选择类型',trigger: ['change'] }],
+                    subMaxOperator:[{ required: true, message: '请选择最大值操作符',trigger: ['change'] }],
                     subMaxValue:[{ required: true, message: '请输入最大值',trigger: ['blur'] }],
                     subMaxUnit:[{ required: true, message: '请输入最大值单位',trigger: ['blur'] }],
-                    subMinOperator:[{ required: true, message: '请选择最小值操作符号',trigger: ['blur'] }],
+                    subMinOperator:[{ required: true, message: '请选择最小值操作符',trigger: ['change'] }],
                     subMinValue:[{ required: true, message: '请输入最小值',trigger: ['blur'] }],
                     subMinUnit:[{ required: true, message: '请输入最小值单位',trigger: ['blur'] }],
                     subEqValue:[{ required: true, message: '请输入医学内容',trigger: ['blur'] }],
@@ -203,6 +204,16 @@
             }
         },
         methods:{
+            dataTypeChange(val){console.log(val)
+                this.groupData.dataType=val;
+                this.groupData.subMaxOperator='';
+                this.groupData.subMaxValue='';
+                this.groupData.subMaxUnit='';
+                this.groupData.subMinOperator='';
+                this.groupData.subMinValue='';
+                this.groupData.subMinUnit='';
+                this.groupData.subEqValue='';
+            },
             subTypeChange(val){
                 this.dataType='';
                 this.groupData.subLibName='';
@@ -342,5 +353,13 @@
         .el-form-item__error{
             top: auto;
         }
+        .el-input-number{
+            width: 95px;
+        }
+        .el-input-number.is-controls-right .el-input-number__decrease, .el-input-number.is-controls-right .el-input-number__increase{
+            width: 25px;
+            height: 15px;
+            line-height: 16px;
+        }
     }
 </style>

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

@@ -1,6 +1,7 @@
 <template>
     <div class="sub-groups">
         <SubConditions v-for="(rules,i) in data"
+                       ref="group"
                        :groupData="rules"
                        :isLast="rules.length===1"
                        :ind="i"