【FIX】遴选部分功能修复及签字页面修复

This commit is contained in:
勾通
2025-10-13 19:40:03 +08:00
parent f0735fce3e
commit eeea5349d9
5 changed files with 155 additions and 103 deletions

View File

@@ -3432,6 +3432,8 @@ export default {
this.verifyResultList = resultData.content.data.verifyResultList
this.riskAmntList = resultData.content.data.riskAmntList
}
}else{
this.$toast(resultData.resultMessage)
}
},
//建议书试算记录保存更新--编辑功能
@@ -3504,7 +3506,7 @@ export default {
//关闭测评结果弹窗遮罩层
clickOverlay(extra){
if(exrta==='overlay')return
if(extra==='overlay')return
this.goBack()
},
@@ -3539,7 +3541,10 @@ export default {
//重新测评
reStart(){
this.showResultPopup = false
if(this.assessFlag === '2'){
return this.$toast('已超过评估次数限制,无法重新评估')
}
localStorage.setItem('evalateFrom', 'toEvaluate')
this.$jump({
flag: 'h5',
extra: {

View File

@@ -52,17 +52,7 @@ export default {
title: '评估结果'
},
})
if (localStorage.isFrom == 'sale') {
setTimeout(() => {
EWebBridge.webCallAppInJs('webview_left_button', {
img: this.$assetsUrl + 'images/del-close-btn@3x.png',
intercept: '1' //是否拦截原生返回事件 1是 其他否
})
}, 100)
}
window.appCallBack = this.appCallBack
document.body.style.backgroundColor = '#fff'
this.$route.query.assessResult && (this.assessResult = this.$route.query.assessResult)
getOrderDetail({ orderNo: this.$route.query.orderNo,userAssessLogic:true }).then(res => {
if (res.result == 0) {
this.assessResultDescList = res.orderDTO.orderInfoDTO.assessResultDescMap
@@ -131,19 +121,31 @@ export default {
//继续投保
onConfirm(){
let index = localStorage.getItem('evalateFrom') == 'toEvaluate' ? '-4' : '-3'
console.log('onConfirm')
this.$jump({
flag: 'goBack',
extra: {
refresh: '1',
index,
},
routerInfo: {
type: 2,
index,
path: '/common/selectedProduct'+'/?orderNo=' + this.$route.query.orderNo
}
})
if(!!this.$route.query.edit&&(this.$route.query.edit=='1')){
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#' + '/common/selectedProduct?orderNo=' + this.$route.query.orderNo
},
routerInfo: {
path:'/common/selectedProduct?orderNo=' + this.$route.query.orderNo
}
})
}else{
this.$jump({
flag: 'goBack',
extra: {
refresh: '1',
index,
},
routerInfo: {
type: 2,
index,
path: '/common/selectedProduct'+'?orderNo=' + this.$route.query.orderNo
}
})
}
}
}
}

View File

@@ -539,6 +539,8 @@ export default {
}
}
let orderStatus = order.orderInfoDTO.orderStatus
let assessQuestionnaireDtoList = order.orderInfoDTO.assessQuestionnaireDtoList
console.log(order,'order')
let orderNo = order.orderInfoDTO.orderNo
let url = ''
//保存对应的订单号

View File

@@ -58,7 +58,7 @@
item.documentCode == '9' ||
item.documentCode == '12' ||
item.documentCode == '13' ||
item.documentCode == '14'
item.documentCode == '14'
? '需阅读'
: '需阅读并签署'
}}</span>
@@ -292,7 +292,7 @@
item.documentCode == '9' ||
item.documentCode == '12' ||
item.documentCode == '13' ||
item.documentCode == '14'
item.documentCode == '14'
? '需阅读'
: '需阅读并签署'
}}</span>
@@ -1845,6 +1845,10 @@ export default {
item.documentShortName = '风险告知'
item.key = 7.1
item.routePath = 'readDocuments'
}else if(item.documentCode == '30'){
item.documentShortName = '适当性评估'
item.key = 13
item.routePath = 'readDocuments'
}
},
getSignInvalid() {

View File

@@ -5,12 +5,13 @@
<div class="fs14">
<van-cell-group>
<van-field v-model="saleInsuredInfo.name" label="姓名" readonly required/>
<van-field v-model="saleInsuredInfo.idType" 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.mobile" label="联系方式" readonly required/>
<van-field v-model="saleInsuredInfo.occupationName" label="职业" readonly required/>
</van-cell-group>
</div>
<!-- <button class="btn" @click="clickBtn">返回</button> -->
<div class="fs16" >
<h5> {{questionInfo.questionHeadDesc}}</h5>
<h5>{{questionInfo.question1Desc}}</h5>
@@ -123,14 +124,16 @@ export default {
assessQuestionnaireDtoList:[],
CheckBoxExtraRadio:'',
CheckBoxExtraDesc:'',
disabled:true
disabled:true,
assessFlag:null,
fromEdit:""
}
},
watch: {
answerList: {
handler(newVal) {
if(newVal) {
console.log('answerList', newVal)
console.log('检测到了长度', newVal.length)
if(newVal.length == this.questionList.length){
// 检查每一项是否有空值
// 使用every方法检查是否所有项都已填写
@@ -160,9 +163,7 @@ export default {
deep: true
}
},
created(){
this.init()
},
mounted(){
this.$jump({
flag: 'navigation',
@@ -182,10 +183,23 @@ export default {
window.appCallBack = this.appCallBack
document.body.style.backgroundColor = '#fff'
const orderNo = this.$route.query.orderNo
getOrderDetail({ orderNo: this.$route.query.orderNo,userAssessLogic:true }).then(res => {
if (res.result == 0) {
//是否做过测评及是否超出限制
this.assessFlag = res.orderDTO.orderInfoDTO.assessFlag
this.questionInfo = res.orderDTO.orderInfoDTO.assessQuestionnaireDto
this.questionList = res.orderDTO.orderInfoDTO.assessQuestionnaireDto.questionList
this.ageList = res.orderDTO.orderInfoDTO.assessQuestionnaireDto.questionList[0].options.map(item=>item.item)
if (this.$CacheUtils.getLocItem('saleInsuredInfo')) {
this.saleInsuredInfo = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredInfo'))
}else{
this.saleInsuredInfo = res.orderDTO.appntDTO
}
console.log('投保人信息',this.saleInsuredInfo)
this.handlerFirstQuestion()
console.log('this.ageList',this.ageList,this.questionList)
} else {
this.$toast(res.resultMessage)
}
@@ -193,63 +207,36 @@ export default {
},
methods: {
appCallBack(data) {
if (data.trigger == 'left_button_click' && localStorage.isFrom == 'sale') {
if (data.trigger == 'left_button_click' && localStorage.isFrom == 'sale') {
return this.$dialog
.confirm({
className: 'dialog-delete',
title: '提示',
message: '退出流程可能会丢失部分数据,是否确认退出?',
cancelButtonColor: '#E9332E',
confirmButtonColor: '#FFFFFF'
})
.then(() => {
this.$jump({
flag: 'h5',
extra: {
title: '电子投保单列表',
forbidSwipeBack: 1, //当前页面禁止右滑返回
url: location.origin + `/#/sale/list`
},
routerInfo: {
path: `/sale/list`,
type: '1'
}
})
})
.catch(() => {
return
})
}else if (data.trigger == 'right_button_click' && localStorage.isFrom == 'proposal') {
return this.$dialog
.confirm({
className: 'dialog-delete',
title: '提示',
message: '退出流程可能会丢失部分数据,是否确认退出?',
cancelButtonColor: '#E9332E',
confirmButtonColor: '#FFFFFF'
})
.then(() => {
this.$jump({
flag: 'h5',
extra: {
title: '建议书列表',
forbidSwipeBack: 1, //当前页面禁止右滑返回
url: location.origin + `/#/proposal/list`
},
routerInfo: {
path: `/proposal/list`,
type: '1'
}
})
})
.catch(() => {
return
})
.confirm({
className: 'dialog-delete',
title: '提示',
message: '退出流程可能会丢失部分数据,是否确认退出?',
cancelButtonColor: '#E9332E',
confirmButtonColor: '#FFFFFF'
})
.then(() => {
this.$jump({
flag: 'h5',
extra: {
title: '电子投保单列表',
forbidSwipeBack: 1, //当前页面禁止右滑返回
url: location.origin + `/#/sale/list`
},
routerInfo: {
path: `/sale/list`,
type: '1'
}
})
})
.catch(() => {
return
})
}
},
//单选框处理数据
handlerRadio(e,item, idx) {
console.log('单选框选择',e,item,idx)
this.$set(this.assessQuestionnaireDtoList,idx,{
orderNo:this.$route.query.orderNo,
questionNo:item.questionNo,
@@ -278,6 +265,7 @@ export default {
//单选框筛选出分数和每项
filterRadioElement(el,e,item){
console.log('点击单选框',el,e,item)
if(el=='content'){
return item.options.find(item=>item.option==e).item.substring(2)
}else if(el=='score'){
@@ -382,12 +370,40 @@ export default {
return score
}
},
init(){
console.log('1231')
if (this.$CacheUtils.getLocItem('saleInsuredInfo')) {
this.saleInsuredInfo = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredInfo'))
console.log('this.saleInsuredInfo',this.saleInsuredInfo)
}
//处理第一个单选框并自动回显:根据投保人年龄区间,回显对应的选项,并组装数据;
handlerFirstQuestion(){
let age = this.saleInsuredInfo.age
console.log('投保人年龄',age)
let answer;
if(age<=18) {
answer = 'F'
}else if(age>=18&&age<=25) {
answer = "A"
}else if(age>=26&&age<=50) {
answer = "B"
}else if(age>=51&&age<=60) {
answer = "C"
}else if(age<=65) {
answer = "D"
}else{
answer = "E"
}
this.answerList[0] = answer //单选框自动回显
let firstChoice = this.questionList[0].options.filter(item=>item.option==answer)
console.log('res',firstChoice,this.questionList[0],this.questionList[0].options)
this.$set(this.assessQuestionnaireDtoList,0,{
orderNo:this.$route.query.orderNo,
questionNo:this.questionList[0].questionNo,
questionContent:this.questionList[0].title,
choose:answer,
chooseContent:this.filterRadioElement('content',answer,this.questionList[0]),
subOption:null,
subOptionContent:null,
score:this.filterRadioElement('score',answer,this.questionList[0]),
chooseDesc:null,
})
},
validatePositiveInteger(value) {
const regex = /^(?:[1-9]\d{0,3}|[1-9]\d{0,3}(?:,\d{3})*)$/;
@@ -407,10 +423,13 @@ export default {
}else{
if(Array.from(this.answerList[3]).length!=2||(Array.from(this.answerList[3]).some(item=>!item))){
return this.$toast('请填写完整信息')
}else if(Array.from(this.answerList[1]).includes('B')&&(!this.CheckBoxExtraRadio||this.CheckBoxExtraRadio=="Y"&&!this.CheckBoxExtraDesc))
}else if(Array.from(this.answerList[1]).includes('B')&&this.CheckBoxExtraRadio=="Y"&&!this.CheckBoxExtraDesc)
{
return this.$toast('请您补充险种和保额信息。')
} else if(Array.from(this.answerList[1]).includes('B')&&!this.CheckBoxExtraRadio){
return this.$toast('请填写完整信息')
}
}
}
let regex = /^([1-9]\d{0,3}|10000)$/;
@@ -418,6 +437,9 @@ export default {
|| !regex.test(this.answerList[4][0])){
return this.$toast('请填写1-10000之间的整数')
}
if(this.assessFlag === '2'){
return this.$toast('已超过评估次数限制,无法重新评估')
}
this.getEvaluateResult()
},
@@ -448,22 +470,39 @@ export default {
},
//未测评过,测评成功后重新测评
reTest(){
console.log('重新测评')
window.location.reload()
localStorage.setItem('evalateFrom', 'toEvaluate')
if(this.assessFlag === '2'){
return this.$toast('已超过评估次数限制,无法重新评估')
}else{
window.location.reload()
}
},
//继续投保,跳转至评估结果页
toInsure(){
this.showResultPopup = false
this.$jump({
flag: 'h5',
extra: {
url: location.origin +`/#/common/evaluateResult?orderNo=${this.$route.query.orderNo}`
},
routerInfo: {
path: `/common/evaluateResult?orderNo=${this.$route.query.orderNo}`
}
})
if(!!this.$route.query.edit&&(this.$route.query.edit=='1')){
this.$jump({
flag: 'h5',
extra: {
url: location.origin +`/#/common/evaluateResult?orderNo=${this.$route.query.orderNo}&&edit=1`
},
routerInfo: {
path: `/common/evaluateResult?orderNo=${this.$route.query.orderNo}&&edit=1`
}
})
}else{
this.$jump({
flag: 'h5',
extra: {
url: location.origin +`/#/common/evaluateResult?orderNo=${this.$route.query.orderNo}`
},
routerInfo: {
path: `/common/evaluateResult?orderNo=${this.$route.query.orderNo}`
}
})
}
}
}
}