【FIX】问卷选择入参修复及部分页面样式调整

(cherry picked from commit 3119d1b14a)
(cherry picked from commit 814d8fe0b7)
This commit is contained in:
勾通
2025-10-14 17:35:16 +08:00
parent 0096cf6917
commit 2793d02383
3 changed files with 36 additions and 23 deletions

View File

@@ -32,7 +32,7 @@
</div> </div>
<!-- 已测评过底部按钮 --> <!-- 已测评过底部按钮 -->
<div class="bottom-btn bg-white flex" v-if="showHasTested"> <div class="bottom-btn bg-white flex testBtn" v-if="showHasTested">
<van-button type="danger" square size="large" plain v-no-more-click="1000" @click="goBack">上一步</van-button> <van-button type="danger" square size="large" plain v-no-more-click="1000" @click="goBack">上一步</van-button>
<van-button type="danger" square size="large" class="btn" v-no-more-click="1000" @click="goNext">已知晓继续投保</van-button> <van-button type="danger" square size="large" class="btn" v-no-more-click="1000" @click="goNext">已知晓继续投保</van-button>
<van-button type="danger" square size="large" v-no-more-click="1000" @click="reStart">重新评估</van-button> <van-button type="danger" square size="large" v-no-more-click="1000" @click="reStart">重新评估</van-button>
@@ -147,9 +147,19 @@ export default {
.result-popup-btn{ .result-popup-btn{
} }
.btn{ /deep/ .testBtn{
//flex:1.5; .van-button:first-child{
} flex:1;
}
.van-button:nth-child(2){
flex:1.3;
border-right:1px solid #fff !important;
}
.van-button:nth-child(3){
flex:1;
}
}
.itemLevel{ .itemLevel{
font-size: 10px; font-size: 10px;
color:#999; color:#999;

View File

@@ -84,7 +84,7 @@ export default {
if(filterValue.length==1){ if(filterValue.length==1){
evalDesc += filterValue[0].join('') evalDesc += filterValue[0].join('')
}else if(filterValue.length>1){ }else if(filterValue.length>1){
evalDesc += filterValue.map(item => item[0]).join(',') + filterValue[0][1] evalDesc += filterValue.map(item => item[0]).join('') +'' +filterValue[0][1]
}else return }else return
}) })
this.evalDesc = evalDesc this.evalDesc = evalDesc
@@ -156,6 +156,7 @@ export default {
height:100vh; height:100vh;
display:flex; display:flex;
.fit-container{ .fit-container{
padding:50px 0;
width:100%; width:100%;
display:flex; display:flex;
flex-direction: column; flex-direction: column;

View File

@@ -3,7 +3,7 @@
<div class="question-header bg-white pt20 pb20 pr10 pl10" > <div class="question-header bg-white pt20 pb20 pr10 pl10" >
<h5 class="fs14">投保人信息</h5> <h5 class="fs14">投保人信息</h5>
<div class="fs14 fieldContent"> <div class="fs14 fieldContent">
<van-cell-group> <van-cell-group :border="false">
<van-field v-model="saleInsuredInfo.name" label="姓名" readonly required/> <van-field v-model="saleInsuredInfo.name" label="姓名" readonly required/>
<van-field :value="saleInsuredInfo.idType | idToText('insuredIdType')" label="证件类型" readonly required/> <van-field :value="saleInsuredInfo.idType | idToText('insuredIdType')" label="证件类型" readonly required/>
<van-field v-model="saleInsuredInfo.idNo" label="证件号码" readonly required/> <van-field v-model="saleInsuredInfo.idNo" label="证件号码" readonly required/>
@@ -24,9 +24,9 @@
<!-- 单选框 --> <!-- 单选框 -->
<div v-if="item.type=='radio'"> <div v-if="item.type=='radio'">
<p style="margin:2vh 0">{{ item.title }}</p> <p style="margin:2vh 0">{{ item.title }}</p>
<van-radio-group class="mb10" v-model="answerList[idx]" @change="handlerRadio($event,item,idx)"> <van-radio-group class="mb15" v-model="answerList[idx]" @change="handlerRadio($event,item,idx)">
<van-radio <van-radio
class="mb5" class="mb15"
v-for="(itemRadio,idxRadio) in item.options" v-for="(itemRadio,idxRadio) in item.options"
:name="itemRadio.option" :name="itemRadio.option"
:key="idxRadio" :key="idxRadio"
@@ -38,12 +38,16 @@
<!-- 多选框 --> <!-- 多选框 -->
<div v-if="item.type=='checkbox'"> <div v-if="item.type=='checkbox'">
<p style="margin:2vh 0">{{ item.title }}</p> <p style="margin:2vh 0">{{ item.title }}</p>
<van-checkbox-group v-model="answerList[idx]" shape="square" @change="handlerCheckbox($event,item,idx)"> <van-checkbox-group
v-model="answerList[idx]"
@change="handlerCheckbox($event,item,idx)"
>
<van-checkbox <van-checkbox
class="mb5" class="mb15"
v-for="(itemCheckbox,idxCheckbox) in item.options" v-for="(itemCheckbox,idxCheckbox) in item.options"
:name="itemCheckbox.option" :name="itemCheckbox.option"
:key="idxCheckbox" :key="idxCheckbox"
shape="square"
> >
{{itemCheckbox.item}} {{itemCheckbox.item}}
@@ -65,7 +69,7 @@
</div> </div>
<!-- 输入框 --> <!-- 输入框 -->
<div v-if="item.type=='input'" class="mb10"> <div v-if="item.type=='input'" class="mb15">
<p class="budget-text"> <p class="budget-text">
<template v-for="(segment, index) in item.title.split(/\___/)" > <template v-for="(segment, index) in item.title.split(/\___/)" >
<!-- 显示文本片段 --> <!-- 显示文本片段 -->
@@ -164,8 +168,11 @@ export default {
}, },
CheckBoxExtraRadio: { CheckBoxExtraRadio: {
handler(newVal) { handler(newVal) {
if(!!newVal) { if(!!newVal&&this.answerList[1].includes('B')) {
// 创建一个新对象保留原对象的所有属性只修改subOption为空 // 创建一个新对象保留原对象的所有属性只修改subOption为空
if(newVal=='N'){
this.CheckBoxExtraDesc = ''
}
const updatedItem = { const updatedItem = {
...this.assessQuestionnaireDtoList[1], ...this.assessQuestionnaireDtoList[1],
subOption: newVal, subOption: newVal,
@@ -178,7 +185,7 @@ export default {
}, },
CheckBoxExtraDesc:{ CheckBoxExtraDesc:{
handler(newVal) { handler(newVal) {
if(!!newVal) { if(!!newVal&&this.answerList[1].includes('B')) {
// 创建一个新对象保留原对象的所有属性只修改subOption为空 // 创建一个新对象保留原对象的所有属性只修改subOption为空
const updatedItem = { const updatedItem = {
...this.assessQuestionnaireDtoList[1], ...this.assessQuestionnaireDtoList[1],
@@ -192,7 +199,10 @@ export default {
'answerList.1': { 'answerList.1': {
handler(newVal) { handler(newVal) {
console.log('检测到了第一项数据', newVal) console.log('检测到了第一项数据', newVal)
if(!newVal.includes('B')) { if(!newVal.includes('B')) {
this.CheckBoxExtraDesc = ''
this.CheckBoxExtraRadio =''
const updatedItem = { const updatedItem = {
...this.assessQuestionnaireDtoList[1], ...this.assessQuestionnaireDtoList[1],
subOption: null, subOption: null,
@@ -360,12 +370,10 @@ export default {
questionContent:item.title, questionContent:item.title,
choose:this.filterCheckBoxElement('letter',e,item), choose:this.filterCheckBoxElement('letter',e,item),
chooseContent:this.filterCheckBoxElement('content',e,item), chooseContent:this.filterCheckBoxElement('content',e,item),
//subOption:null,
//subOptionContent:null,
score:this.filterCheckBoxElement('score',e,item), score:this.filterCheckBoxElement('score',e,item),
chooseDesc:null, chooseDesc:null,
subOption: this.assessQuestionnaireDtoList[1].subOption?this.assessQuestionnaireDtoList[1].subOption:null, subOption:this.CheckBoxExtraRadio?this.CheckBoxExtraRadio:null,
subOptionContent:this.assessQuestionnaireDtoList[1].subOptionContent?this.assessQuestionnaireDtoList[1].subOptionContent:null subOptionContent:this.CheckBoxExtraDesc?this.CheckBoxExtraDesc:null,
}) })
console.log('answerList',this.answerList) console.log('answerList',this.answerList)
@@ -427,11 +435,6 @@ export default {
}) })
}, },
validatePositiveInteger(value) {
const regex = /^(?:[1-9]\d{0,3}|[1-9]\d{0,3}(?:,\d{3})*)$/;
return regex.test(value) && value <= 10000;
},
clickOverlay(){ clickOverlay(){
this.showResultPopup = false this.showResultPopup = false
}, },
@@ -475,7 +478,6 @@ export default {
loadingType: 'spinner', loadingType: 'spinner',
message: '加载中……' message: '加载中……'
}) })
this.$toast.clear()
saveEvalateAnswer({assessQuestionnaireDtoList:this.assessQuestionnaireDtoList}) saveEvalateAnswer({assessQuestionnaireDtoList:this.assessQuestionnaireDtoList})
.then(res =>{ .then(res =>{
this.$toast.clear() this.$toast.clear()