|
@@ -3,7 +3,18 @@
|
|
|
<img :src="datas.url.replace('{imageUrlPrefix}',imgUrl)" v-if="datas.url">
|
|
|
<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 :class="{'check':it.select==1}">{{it.name}}</span> -->
|
|
|
+ <span v-if="(it.name.indexOf('${'))==-1" :class="{'check':it.select==1}">{{it.name}}</span>
|
|
|
+ <MultiLineInput v-else
|
|
|
+ @changeMultipVal="changeMultipVal($event,index)"
|
|
|
+ @handleInp="inpVal($event,index)"
|
|
|
+ :msg="it.name"
|
|
|
+ :part="it"
|
|
|
+ :value="it.value"
|
|
|
+ :border="false"
|
|
|
+ :inline="true"
|
|
|
+ :select="it.select==1"
|
|
|
+ />
|
|
|
</p>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -11,6 +22,7 @@
|
|
|
import icon from '../images/radio-default.png'
|
|
|
import checkIcon from '../images/radio-check.png'
|
|
|
import {deepClone} from '@utils/tools.js'
|
|
|
+import MultiLineInput from '../common/MultiLineInput.vue';
|
|
|
export default{
|
|
|
name:'Radio',
|
|
|
data(){
|
|
@@ -39,7 +51,22 @@ import {deepClone} from '@utils/tools.js'
|
|
|
}
|
|
|
const newData = Object.assign({},this.datas,{questionDetailList:data},{value:value})
|
|
|
this.$emit("updata",newData);
|
|
|
- }
|
|
|
+ },
|
|
|
+ inpVal(val,index){//输入框失焦处理
|
|
|
+ let valueStr = this.datas.value;
|
|
|
+ let patt = /\$\{[^\]]+\}/g;
|
|
|
+ let newVal = '{' + val + '}';//修改时替换值用
|
|
|
+ const str = valueStr.replace(patt,newVal);
|
|
|
+ this.datas.value = str;
|
|
|
+ // 输入框回读
|
|
|
+ let detailList = this.datas.questionDetailList;
|
|
|
+ let currItem = detailList[index];
|
|
|
+ currItem.value = val; //console.log('单选:',val,valueStr,str,this.datas)
|
|
|
+ this.$emit("updata",this.datas);
|
|
|
+ },
|
|
|
+ changeMultipVal(val){
|
|
|
+ // console.log('输入:',this.datas,val)
|
|
|
+ },
|
|
|
},
|
|
|
watch:{
|
|
|
item:{
|
|
@@ -48,6 +75,9 @@ import {deepClone} from '@utils/tools.js'
|
|
|
},
|
|
|
deep:true
|
|
|
}
|
|
|
+ },
|
|
|
+ components:{
|
|
|
+ MultiLineInput
|
|
|
}
|
|
|
}
|
|
|
</script>
|
|
@@ -61,6 +91,7 @@ import {deepClone} from '@utils/tools.js'
|
|
|
margin:0 .1rem .1rem 0;
|
|
|
padding: .12rem .1rem;
|
|
|
display: inline-block;
|
|
|
+ white-space: nowrap;
|
|
|
img{
|
|
|
width: .38rem;
|
|
|
vertical-align: middle;
|