Ver código fonte

Merge branch 'test' into byll

Luolei1992 5 anos atrás
pai
commit
e6617f9c83

+ 1 - 1
src/common/CheckBox.vue

@@ -4,7 +4,7 @@
     <p v-for="(it,index) in datas.questionDetailList" :key="it.id" class="list" @click="handleClick(it,index)">
       <img :src="it.select==1?check:defaultPic">
       <!-- <span :class="{'check':it.select==1}">{{it.name}}</span> -->
-      <span v-if="(it.name.indexOf('${'))==-1" :class="[{'check':it.select==1},{'exclu':exclusion !==999 && it.exclusion !== exclusion}]">{{it.description||it.name}}</span>
+      <span v-if="((it.description||it.name).indexOf('${'))==-1" :class="[{'check':it.select==1},{'exclu':exclusion !==999 && it.exclusion !== exclusion}]">{{it.description||it.name}}</span>
       <!-- <MultiLineInput v-else 
           @handleInp="inpVal($event,index)"
           :msg="it.name" 

+ 1 - 1
src/common/Label.vue

@@ -62,7 +62,7 @@ import {moduleCP} from '@utils/tools';
         }
         // 存值到store
         this.$store.commit('setDatas',{type:this.moduleType,data:newItem,pId:this.datas.id,ppId:this.ppId});
-        this.$store.commit('setText',{type:this.moduleType,text:it.name,pId:it.id});
+        this.$store.commit('setText',{type:this.moduleType,text:it.name,textP:(it.description||it.name),pId:it.id});
         if(it.questionMapping&&it.questionMapping.length>0){//有明细
           this.$emit("setDetail",{detail:it,ppId:this.ppId})
         }

+ 3 - 3
src/common/MultiLineInput.vue

@@ -8,14 +8,14 @@
               class="contentVal" 
               :type="content.type=='number'?'tel':'text'" 
               :style="{'width':1/content.iptLis.length*100-3+'%'}" 
-              :key="item.placeholder+idx"
+              :key="item.placeholder+idx" 
               v-model="item.value"
               :placeholder="item.placeholder"
               @input="changeVal($event,idx,content.type)" 
               @blur="blur" 
               @click="handleClick">
             <input v-show="content.iptLis.length==1" class="contentVal" 
-              :type="content.type=='number'?'tel':'text'"
+              :type="content.type=='number'?'tel':'text'" 
               :placeholder="content.placeholder" 
               v-model="item.value" 
               @input="changeVal($event,idx,content.type)" 
@@ -29,7 +29,7 @@
   </div>
 </template>
 <script>
-import {getModelExpStr} from '@utils/tools.js';
+import { getModelExpStr } from '@utils/tools';
 
 export default {
   props:{

+ 1 - 1
src/common/Radio.vue

@@ -4,7 +4,7 @@
     <p v-for="(it,index) in datas.questionDetailList" :key="it.id" class="list" @click="handleClick(it,index)">
       <img :src="it.select==1?check:defaultPic">
       <!-- <span :class="{'check':it.select==1}">{{it.name}}</span> -->
-      <span v-if="(it.name.indexOf('${'))==-1" :class="{'check':it.select==1}">{{it.description||it.name}}</span>
+      <span v-if="((it.description||it.name).indexOf('${'))==-1" :class="{'check':it.select==1}">{{it.description||it.name}}</span>
       <!-- <MultiLineInput v-else 
           @handleInp="inpVal($event,index)"
           :msg="it.name" 

+ 1 - 2
src/common/UploadImg.vue

@@ -78,7 +78,6 @@ export default {
       let file = fileTag.files[0];
       const that = this;
       this.imgBase64(file, function (image, canvas) {
-        console.log("图片宽:",image.naturalWidth,"图片高度:",image.naturalHeight)
         var maxSize = 4 * 1024; // 4M
         var fileSize = file.size / 1024; //kb 图片大小
         var uploadSrc;
@@ -230,4 +229,4 @@ export default {
     }
   }
 }
-</style>
+</style>

+ 38 - 4
src/components/Detail.vue

@@ -20,6 +20,17 @@
             :item="item"
             :key="item.id"
             @updata="updataData"/>
+      <template
+        v-if="item.controlType == 3"
+        v-for="(part,index) in item.questionDetailList"
+      >
+        <MultiLineInput
+          v-if="item.controlType == 3"
+          :msg="part.description||part.name"
+          :part="part"
+          @updata="updataData($event,item)"
+        ></MultiLineInput>
+      </template>
     </div>
   </div>
 </template>
@@ -28,6 +39,7 @@ import Radio from '../common/Radio.vue';
 import CheckBox from '../common/CheckBox.vue';
 import Input from '../common/Input.vue';
 import ComTextArea from '../common/ComTextArea.vue';
+import MultiLineInput from '../common/MultiLineInput.vue';
 import {patt} from '@utils/tools.js'
 // 将获取到的数据源转换成私有数据,处理选择事件。点击完成后统一存到store中,便于回读
   export default {
@@ -46,16 +58,38 @@ import {patt} from '@utils/tools.js'
       Radio,
       CheckBox,
       Input,
-      ComTextArea
+      ComTextArea,
+      MultiLineInput
     },
     methods:{
-      updataData(data){
+      updataData(data,item){
         const origMapping = this.datas.questionMapping;
         let mapping = this.checkDatas.questionMapping;
         for(let i in origMapping){
-          if(origMapping[i].id==data.id){
-            mapping.splice(i,1,data)
+          if(data.controlType==3){//多列类型多一层
+            if(mapping[i].id == item.id){
+              mapping[i].value = '';
+              mapping[i].valueP = '';
+              let detList = mapping[i].questionDetailList;
+              for(let k in detList){//替换
+                if(detList[k].id==data.id){
+                  detList.splice(k,1,data)
+                }
+              } 
+              for(let n in detList){//给父级赋值
+                if(detList[n].value){
+                  mapping[i].value += detList[n].value+',';
+                  mapping[i].valueP += detList[n].valueP+',';
+                }
+              }
+            }
+            
+          }else{
+            if(origMapping[i].id==data.id){
+              mapping.splice(i,1,data)
+            }
           }
+          
         }
         // 实时更新清空样式
         if(data.value){

+ 2 - 2
src/components/DiagTreat.vue

@@ -65,7 +65,7 @@
   import DetailBox from './DetailBox.vue';
   import Input from '../common/Input.vue';
   import ComTextArea from '../common/ComTextArea.vue';
-  import {moduleCP} from '@utils/tools';
+  import {moduleCP,patt} from '@utils/tools';
   import Radio from '../common/Radio.vue';
   import CheckBox from '../common/CheckBox.vue';
   export default {
@@ -129,7 +129,7 @@
           }
         }
         this.$store.commit('setDatas',{type:moduleCP['diagT'],data:data,pId:data.id,ppId:id});
-        this.$store.commit('setText',{type:moduleCP['diagT'],text:data.value,textP:data.valueP,pId:data.id,flag:true}); 
+        this.$store.commit('setText',{type:moduleCP['diagT'],text:data.value.replace(patt,'').replace(/\#\{/g,'').replace(/\}/g,''),textP:data.valueP.replace(patt,'').replace(/\#\{/g,'').replace(/\}/g,''),pId:data.id,flag:true}); 
       }
     },
     components:{

+ 2 - 2
src/components/Others.vue

@@ -70,7 +70,7 @@
   import Toast from '../common/Toast.vue';
   import Input from '../common/Input.vue';
   import ComTextArea from '../common/ComTextArea.vue';
-  import {moduleCP} from '@utils/tools';
+  import {moduleCP,patt} from '@utils/tools';
   import Radio from '../common/Radio.vue';
   import CheckBox from '../common/CheckBox.vue';
   import MultiLineInput from '../common/MultiLineInput.vue';
@@ -128,7 +128,7 @@
         
         // this.$store.commit('setOrigin',{type:'3',data:data,pId:data.id});
         this.$store.commit('setDatas',{type:moduleCP['other'],data:data,pId:data.id,ppId:id});
-        this.$store.commit('setText',{type:moduleCP['other'],text:data.value,textP:data.valueP,pId:data.id,flag:true}); 
+        this.$store.commit('setText',{type:moduleCP['other'],text:data.value.replace(patt,'').replace(/\#\{/g,'').replace(/\}/g,''),textP:data.valueP.replace(patt,'').replace(/\#\{/g,'').replace(/\}/g,''),pId:data.id,flag:true}); 
       },
       getText(){
         let textArr = this.checkText;

+ 1 - 1
src/components/Symptom.vue

@@ -153,7 +153,7 @@ export default {
       this.questId = item.questionId || item.id || item.conceptId;
       const id = item.questionId || item.id; //常见症状questionId,推送id,两者均有可能没有
       //将选中的name存到store中的text
-      this.$store.commit('setText', { type: moduleCP['symp'], text: item.name, pId: this.questId });
+      this.$store.commit('setText', { type: moduleCP['symp'], text: item.name,textP: item.name, pId: this.questId });
       if (id) {
         const param = {
           "age": this.age,

+ 6 - 4
src/utils/tools.js

@@ -103,11 +103,15 @@ const getModelExpStr = (str,txt) =>{
   return result
 }
 
+// 替换输入框占位符
+const patt = /\$\{[^\]]+\}/g;
+
 const getAllStr = (allData) =>{//获取界面数据,拼接字符串
-  let allStr = '',data = allData.data;
+  let allStr = '',data = allData.data;console.log(555,data)
   for(let i = 0;i < data.length;i++){
     if(data[i].controlType != 3&&data[i].value){
-        allStr += (data[i].valueP).replace('{','').replace('}','')+';'
+        // allStr += (data[i].value).replace('{','').replace('}','')+';'
+        allStr += (data[i].value).replace(patt,'').replace(/\#\{/g,'').replace(/\}/g,'')+';'
     }
     if(data[i].controlType == 3){//多列选择
       let tmpStr = '';
@@ -156,8 +160,6 @@ const moduleConfig = (config,modules) => {
   }
 }
 
-// 替换输入框占位符
-const patt = /\$\{[^\]]+\}/g;
 
 // 监听键盘是否弹起
 function fixedKeyboard() {