Jelajahi Sumber

选项输入框修改

liucf 5 tahun lalu
induk
melakukan
708cae348c

+ 19 - 11
src/common/CheckBox.vue

@@ -67,13 +67,6 @@ import OptionInp from '../common/OptionInp.vue';
         }else{
           data[index].select = 1;
           this.exclusion = it.exclusion;
-          // 填写后取消 再次选中 要获取输入框的值
-          if(data[index].name.indexOf("${") != -1){
-            console.log("该选项有输入框",data[index])
-            if(data[index].value){
-              this.inpVal(data[index].value,index);
-            } 
-          }
         }
         // 处理取消-互斥
         const filArr1 = data.filter(it=>it.select==1);
@@ -87,18 +80,33 @@ import OptionInp from '../common/OptionInp.vue';
         let value = "";
         for(let k in data){
           if(data[k].select==1){
-            value += data[k].name + ','
+            // 选中该项时,带的输入框内有值则加上
+            if(data[k].value){
+              let newVal = '#{' + data[k].value + '}';
+              let str = data[k].name.replace(patt,newVal);
+              value += str + ','
+            }else{
+              value += data[k].name + ','
+            }
+            
           }
         }
-        const newData = Object.assign({},this.datas,{questionDetailList:data},{value:value?value.substring(0,value.length-1):''})
+        const newData = Object.assign({},this.datas,{questionDetailList:data},{value:value?value.substring(0,value.length-1):''});
         this.$emit("updata",newData);
       },
       inpVal(val,index){//输入框失焦处理
         let valueStr = this.datas.value;
         if(valueStr){
           // let patt = /\$\{[^\]]+\}/g;
-          let newVal =  val;
-          const str = valueStr.replace(patt,newVal);
+          let rePatt = /\#\{[^\]]+\}/g;
+          let newVal = '#{' +val+'}';
+          let str = "";
+          // 区分第一次输入还是修改
+          if(valueStr.indexOf("${") !== -1){
+            str = valueStr.replace(patt,newVal);
+          }else{//修改
+            str = valueStr.replace(rePatt,newVal);
+          }
           this.datas.value = str;
         }
         

+ 1 - 1
src/common/OptionInp.vue

@@ -37,7 +37,7 @@ import { getExpStr,scrollToV} from '@utils/tools';
           this.txt = e.target.value=e.target.value.replace(/[^\d]/g,'')
         }
       },
-      handleBlur(){console.log("输入框失焦事件",this.txt)
+      handleBlur(){
         // 如果该项未选中,则不存值
       // const select = this.item.select;
       // if(!select){return}

+ 22 - 2
src/common/Radio.vue

@@ -48,7 +48,15 @@ import OptionInp from '../common/OptionInp.vue';
           data[i].select = 0
           if(i==index){
             data[i].select = 1;
-            value = data[i].name;
+            // value = data[i].name;
+            // 选中该项时,带的输入框内有值则加上
+            if(data[i].value){
+              let newVal = '#{' + data[i].value + '}';
+              let str = data[i].name.replace(patt,newVal);
+              value = str ;
+            }else{
+              value = data[i].name ;
+            }
           }
         }
         const newData = Object.assign({},this.datas,{questionDetailList:data},{value:value})
@@ -56,11 +64,23 @@ import OptionInp from '../common/OptionInp.vue';
       },
       inpVal(val,index){//输入框失焦处理
         let valueStr = this.datas.value;
-        if(valueStr){
+        /*if(valueStr){
           // let patt = /\$\{[^\]]+\}/g;
           let newVal =  val;//修改时替换值用
           const str = valueStr.replace(patt,newVal);
           this.datas.value = str;
+        }*/
+        if(valueStr){
+          let rePatt = /\#\{[^\]]+\}/g;
+          let newVal = '#{' +val+'}';
+          let str = "";
+          // 区分第一次输入还是修改
+          if(valueStr.indexOf("${") !== -1){
+            str = valueStr.replace(patt,newVal);
+          }else{//修改
+            str = valueStr.replace(rePatt,newVal);
+          }
+          this.datas.value = str;
         }
         
         // 输入框回读

+ 1 - 0
src/common/UploadImg.vue

@@ -78,6 +78,7 @@ 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;

+ 4 - 3
src/components/Detail.vue

@@ -72,7 +72,7 @@ import {patt} from '@utils/tools.js'
       saveData(){//存值
         this.finished = true;
         this.checkDatas = Object.assign({},this.checkDatas,{select:1});
-        const datas = this.checkDatas.questionMapping;console.log("完成:",datas)
+        const datas = this.checkDatas.questionMapping;
         let text = "";
         for(let i in datas){
           if(datas[i].value){
@@ -87,10 +87,11 @@ import {patt} from '@utils/tools.js'
         }else{
           newMsg = msg
         }
-
         this.$store.commit('setDatas',{data:this.checkDatas,pId:this.checkDatas.id,type:this.type,ppId:this.ppId});
         // flag是区分点开已选症状 未点完成
-        this.$store.commit('setText',{text:newMsg.replace(patt,''),pId:this.checkDatas.id,type:this.type,flag:true});
+        // this.$store.commit('setText',{text:newMsg.replace(patt,''),pId:this.checkDatas.id,type:this.type,flag:true});
+        // 输入框的值用占位符#{}标识,便于修改
+        this.$store.commit('setText',{text:newMsg.replace(patt,'').replace(/\#\{/g,'').replace(/\}/g,''),pId:this.checkDatas.id,type:this.type,flag:true});
       },
       clearData(){//清空
         const datas = this.checkDatas.questionMapping;