Przeglądaj źródła

化验和多选框

zhangxc 6 lat temu
rodzic
commit
479a87035c

+ 6 - 1
src/api/utils.js

@@ -153,6 +153,9 @@ export default {
   simpleOptionData(data){
     let arr = data.map((it,i)=>{
       let code = '';
+      if(it.isCorrect){
+        code = '3';
+      }
       if(it.isNone){
         code = '2';
       }
@@ -180,7 +183,9 @@ export default {
       "ageBegin": 'region8',       		 //最小年龄
       "ageEnd": 'region9',              //最大年龄
       "labelPrefix":'prefix',                                 //前缀
-      "labelSuffix":'suffix'                                 //后缀
+      "labelSuffix":'suffix',                                 //后缀
+      "maxValue":'maxNormalVal',                                 //前缀
+      "minValue":'minNormalVal'                                 //后缀
     };
     let obj = {};
     for(let it in maps){

+ 4 - 2
src/components/icss/AddIndeptLabel.vue

@@ -14,7 +14,7 @@
         ></PubIndeptTag>
         <div class="main">
             <p class="title" v-if="dataPub.region2==1||dataPub.region2==2||dataPub.region2==99"> <i>*</i> 标签明细:</p>
-            <SingleSelect v-if="dataPub.region2==1" :type="dataPub.region2" @pushValues="pushValues" :options="editData.questionDetailList"></SingleSelect>
+            <SingleSelect v-if="dataPub.region2==1 || dataPub.region2==2" :dataPub="dataPub" :type="dataPub.region2" @pushValues="pushValues" :options="editData.questionDetailList"></SingleSelect>
             <div class="btn">
                 <el-button
                         type="primary"
@@ -73,7 +73,7 @@
       back() { this.$router.go(-1) },
       changeVal(val) {    //子组件数据改变传递到父组件
         this.dataPub = val
-        //console.log('公用组件传的值都在这', val)
+        console.log('公用组件传的值都在这', val)
       },
       changeSex(sex) {       //性别改变,清空标签明细
         //console.log(sex)
@@ -116,6 +116,8 @@
             "showInfo": 0,
             "labelPrefix":this.dataPub.prefix,                                 //前缀
             "labelSuffix":this.dataPub.suffix,                                 //后缀
+            "minValue": this.dataPub.minNormalVal,        //化验最小正常值
+            "maxValue": this.dataPub.maxNormalVal,         //化验最大正常值
             "questionDetails": this.options,
             "questionMappings": []       //映射关系,
           }

+ 36 - 0
src/components/icss/PubIndeptTag.vue

@@ -163,6 +163,26 @@
                 @input="sendData"
               ></el-input>
             </el-form-item>
+            <el-form-item
+                    label="正常值范围:"
+                    class="fix-inp"
+                    prop="region13"
+                    v-if="form.region1==5 && form.region2==6"
+            >
+                <el-col :span="7">
+                <el-input v-model="form.minNormalVal"
+                        maxLength="30"
+                        @change="sendData"
+                ></el-input></el-col>
+                <el-col :span="8"> ~</el-col>
+                <el-col :span="7">
+                <el-input
+                    v-model="form.maxNormalVal"
+                    maxLength="30"
+                    @change="sendData"
+                ></el-input></el-col>
+            </el-form-item>
+            
         </el-form>
     </div>
 </template>
@@ -196,7 +216,10 @@
           region7: '3',       //性别
           region8: '0',          //最小年龄
           region9: '200',         //最大年龄
+          minNormalVal: '',       //化验正常值最小值
+          maxNormalVal: '',       //化验正常值最大值
           region12:'',
+          region13:'',
           prefix:'',            //前缀
           suffix:'',            //后缀
           tipLis:[],           //提示列表
@@ -330,6 +353,15 @@
   }
 </script>
 <style lang="less">
+    .normalVal .el-input{
+        width: auto;
+        display: inline-block;
+        .el-input__inner {
+            width: 40px;
+            padding: 0 5px;
+        }
+
+    }
     .fix-inp .el-col .el-input__inner{
         width: 100%;
         display: inline-block;
@@ -337,6 +369,10 @@
     .fix-inp .el-col-4{
         text-align: center;
     }
+    .fix-inp .el-col-8{
+        text-align: center;
+    }
+    
     .groups {
         background-color: #fff;
         padding: 20px;

+ 17 - 8
src/components/icss/SingleSelect.vue

@@ -3,13 +3,16 @@
         <el-form>
             <div class="operation-row">
                 <el-checkbox-group size="small" v-for="(it,i) in rows" v-if="focusOn==i||(focusOn==-1&&i==0)" :key="1+i" v-model="rows[i].defaultSelect" @change="emitValues(i,'hasDefault',rows[i].defaultSelect)">
-                    <el-checkbox-button :label="i" :disabled="hasNone==i||hasBan==i||(hasDefault!=-1&&hasDefault!=i)">默认选中</el-checkbox-button>
+                    <el-checkbox-button  v-if=" dataPub.region1 != 5" :label="i" :disabled="hasNone==i||hasBan==i|| hasCorrect==i || (hasDefault!=-1&&hasDefault!=i)">默认选中</el-checkbox-button>
                 </el-checkbox-group>
                 <el-checkbox-group size="small" v-for="(it,i) in rows" v-if="focusOn==i||(focusOn==-1&&i==0)" :key="2+i" v-model="rows[i].isNone" @change="emitValues(i,'hasNone',rows[i].isNone)">
-                    <el-checkbox-button :label="i" :disabled="hasDefault==i||hasBan==i||(hasNone!=-1&&hasNone!=i)">同“无”类型</el-checkbox-button>
+                    <el-checkbox-button  v-if=" dataPub.region1 != 5" :label="i" :disabled="hasDefault==i||hasBan==i || hasCorrect==i ||(hasNone!=-1&&hasNone!=i)">同“无”类型</el-checkbox-button>
                 </el-checkbox-group>
                 <el-checkbox-group size="small" v-for="(it,i) in rows" v-if="focusOn==i||(focusOn==-1&&i==0)" :key="3+i" v-model="rows[i].isBan" @change="emitValues(i,'hasBan',rows[i].isBan)">
-                    <el-checkbox-button :label="i" :disabled="hasDefault==i||hasNone==i||(hasBan!=-1&&hasBan!=i)">同“伴”类型</el-checkbox-button>
+                    <el-checkbox-button v-if=" dataPub.region1!=5" :label="i" :disabled="hasDefault==i||hasNone==i || hasCorrect==i||(hasBan!=-1&&hasBan!=i)">同“伴”类型</el-checkbox-button>
+                </el-checkbox-group>
+                <el-checkbox-group size="small" v-for="(it,i) in rows" v-if="focusOn==i||(focusOn==-1&&i==0)" :key="4+i" v-model="rows[i].isCorrect" @change="emitValues(i,'hasCorrect',rows[i].isCorrect)">
+                    <el-checkbox-button v-if="dataPub.region1==5  &&dataPub.region2 == 1" :label="i" :disabled="hasDefault==i||hasBan==i ||hasNone==i ||(hasCorrect!=-1&&hasCorrect!=i)">标记正确选项</el-checkbox-button>
                 </el-checkbox-group>
                 <el-button type="danger" size="small" class="del" @click="delRow">删除</el-button>
             </div>
@@ -79,11 +82,11 @@
 <script>
   import utils from '@api/utils.js';
     export default {
-      props:['type','options'],
+      props:['type','options','dataPub'],
       data(){
         return {
-          maps:{isBan:'同“伴”',isNone:'同“无”',defaultSelect:'默认选中'},
-          rows:[{name:'',defaultSelect:'',isBan:'',isNone:''},{name:'',defaultSelect:'',isBan:'',isNone:''},{name:'',defaultSelect:'',isBan:'',isNone:''},{name:'',defaultSelect:'',isBan:'',isNone:''}],
+          maps:{isBan:'同“伴”',isNone:'同“无”',defaultSelect:'默认选中',isCorrect:'正确选项'},
+          rows:[{name:'',defaultSelect:'',isBan:'',isNone:'',isCorrect:''},{name:'',defaultSelect:'',isBan:'',isNone:'',isCorrect:''},{name:'',defaultSelect:'',isBan:'',isNone:'',isCorrect:''},{name:'',defaultSelect:'',isBan:'',isNone:'',isCorrect:''}],
           focusOn:-1
         }
       },
@@ -91,7 +94,7 @@
         const {options} = this.$props;
         if(options){
           const arr = options.map((it)=>{
-            return {name:it.name,defaultSelect:it.defaultSelect=='1'?true:false,isBan:it.code==1?true:'',isNone:it.code==2?true:''};
+            return {name:it.name,defaultSelect:it.defaultSelect=='1'?true:false,isBan:it.code==1?true:'',isNone:it.code==2?true:'',isCorrect:it.code==3?true:''};
           });
           this.rows = arr;
         }
@@ -122,11 +125,17 @@
             return it.isBan;
           });
           return index;
+        },
+        hasCorrect:function(){        //是否为正确选项
+          let index =this.rows.findIndex((it)=>{
+            return it.isCorrect;
+          });
+          return index;
         }
       },
       methods:{
         addRow(){
-          this.rows.push({name:'',defaultSelect:'',isBan:'',isNone:''});
+          this.rows.push({name:'',defaultSelect:'',isBan:'',isNone:'',isCorrect:''});
         },
         selectRow(index){
           this.focusOn = index;