国富-风险评估及结果页开发

This commit is contained in:
jiawei
2023-02-17 10:05:04 +08:00
parent e95604a992
commit 97c5cc6170
14 changed files with 645 additions and 123 deletions

View File

@@ -1,21 +1,21 @@
<template>
<div class="own_content">
<ul class="index-bar">
<li @click="changePage(Number(index) + 1)" v-for="(item, index) in pageTitle" :key="index" :class="item.tabClass" :id="item.tabClass">
<li @click="changePage(Number(index) + 1)" v-for="(item, index) in pageTitle" :key="index" :class="item.tabClass" :id="item.tabClass" v-if="item.show">
<!-- 选中 -->
<div v-if="item.tabClass" class="flex justify-content-fs align-items-c">
<div class="flex flex-direction-colunm align-items-c">
<van-image :src="item.imgCheckedUrl" class="image_head" />
<span class="fs12 mt12">{{ item.pageItem }}</span>
</div>
<van-image :src="doneUrl" v-if="index !== 7" class="image_done" />
<van-image :src="doneUrl" v-if="index !== 10" class="image_done" />
</div>
<div v-if="!item.tabClass" class="flex justify-content-fs align-items-c">
<div class="flex flex-direction-colunm align-items-c">
<van-image :src="item.imgNoCheckedUrl" class="image_head" />
<span class="fs12 mt12" style="color: #999999">{{ item.pageItem }}</span>
</div>
<van-image :src="doneNurl" v-if="index !== 7" class="image_done" />
<van-image :src="doneNurl" v-if="index !== 10" class="image_done" />
</div>
</li>
</ul>
@@ -58,6 +58,7 @@ export default {
pageItem: '投保人信息',
urlStr: '/sale/insuredInfo',
tabClass: '',
show:true,
imgCheckedUrl: this.$assetsUrl + 'images/kmh/tbrxx.png',
imgNoCheckedUrl: this.$assetsUrl + 'images/kmh/tbrxx_n.png'
},
@@ -66,6 +67,7 @@ export default {
pageItem: '被保险人信息',
urlStr: '/sale/insuredPerson',
tabClass: '',
show:true,
imgCheckedUrl: this.$assetsUrl + 'images/kmh/bbrxx.png',
imgNoCheckedUrl: this.$assetsUrl + 'images/kmh/bbrxx_n.png'
},
@@ -74,6 +76,7 @@ export default {
pageItem: '选择产品',
urlStr: '/common/selectedProduct',
tabClass: '',
show:true,
imgCheckedUrl: this.$assetsUrl + 'images/kmh/xzcp.png',
imgNoCheckedUrl: this.$assetsUrl + 'images/kmh/xzcp_n.png'
},
@@ -82,6 +85,7 @@ export default {
pageItem: '受益人信息',
urlStr: '/sale/beneficiary',
tabClass: '',
show:true,
imgCheckedUrl: this.$assetsUrl + 'images/kmh/syrxx.png',
imgNoCheckedUrl: this.$assetsUrl + 'images/kmh/syrxx_n.png'
},
@@ -90,30 +94,52 @@ export default {
pageItem: '告知信息',
urlStr: '/sale/notifyingMessage',
tabClass: '',
show:true,
imgCheckedUrl: this.$assetsUrl + 'images/kmh/gzxx.png',
imgNoCheckedUrl: this.$assetsUrl + 'images/kmh/gzxx_n.png'
},
{
pageNo: 6,
pageItem: '风险测评',
urlStr: '/sale/answerPage',
tabClass: '',
show:this.$store.getters.getAnswerType,
imgCheckedUrl: this.$assetsUrl + 'images/kmh/fx1.png',
imgNoCheckedUrl: this.$assetsUrl + 'images/kmh/fx2.png'
},
{
pageNo: 7,
pageItem: '风险测评结果',
urlStr: '/sale/answerSuccess',
tabClass: '',
show:this.$store.getters.getAnswerType,
imgCheckedUrl: this.$assetsUrl + 'images/kmh/fxjg1.png',
imgNoCheckedUrl: this.$assetsUrl + 'images/kmh/fxjg2.png'
},
{
pageNo: 8,
pageItem: '账户信息',
urlStr: '/sale/accountInformation',
tabClass: '',
show:true,
imgCheckedUrl: this.$assetsUrl + 'images/kmh/zhxx.png',
imgNoCheckedUrl: this.$assetsUrl + 'images/kmh/zhxx_n.png'
},
{
pageNo: 7,
pageNo: 9,
pageItem: '附件上传',
urlStr: '/sale/attachmentManagement',
tabClass: '',
show:true,
imgCheckedUrl: this.$assetsUrl + 'images/kmh/fjsc.png',
imgNoCheckedUrl: this.$assetsUrl + 'images/kmh/fjsc_n.png'
},
{
pageNo: 8,
pageNo: 10,
pageItem: '签名确认',
urlStr: '/sale/signatureConfirmation',
tabClass: '',
show:true,
imgCheckedUrl: this.$assetsUrl + 'images/kmh/qmqr.png',
imgNoCheckedUrl: this.$assetsUrl + 'images/kmh/qmqr_n.png'
}
@@ -129,7 +155,7 @@ export default {
changePage(pageIndex) {
let url = ''
//由 localStorage.salePageFlag 来控制是否可跳到指定页面
if (localStorage.salePageFlag == '-10' && pageIndex != 8) {
if (localStorage.salePageFlag == '-10' && pageIndex != 10) {
this.$toast('已到达签名确认流程,不可以回到前面的流程')
}
if (Number(localStorage.salePageFlag) < Number(pageIndex)) return
@@ -149,13 +175,19 @@ export default {
case 5: //跳到告知信息页面
url = `/sale/NotifyingMessage?edit=1&salePageFlag=${pageIndex}`
break
case 6: //跳到账户信息页面
case 6: //跳到风险评估
url = `/sale/answerPage?edit=1&salePageFlag=${pageIndex}`
break
case 7: //跳到风险评估结果页
url = `/sale/answerSuccess?edit=1&salePageFlag=${pageIndex}`
break
case 8: //跳到账户信息页面
url = `/sale/AccountInformation?edit=1&salePageFlag=${pageIndex}`
break
case 7: //跳到附件上传页面
case 9: //跳到附件上传页面
url = `/sale/AttachmentManagement?edit=1&salePageFlag=${pageIndex}`
break
case 8: //跳到签名确认页面
case 10: //跳到签名确认页面
url = `/sale/SignatureConfirmation?edit=1&salePageFlag=${pageIndex}`
break
default:
@@ -163,7 +195,7 @@ export default {
}
let str = location.hash
let i = str.search(/AttachmentManagement/i)
if (i !== -1 && pageIndex != 7 && pageIndex != 8) {
if (i !== -1 && pageIndex != 9 && pageIndex != 10) {
this.$dialog
.confirm({
className: 'dialog-delete',

View File

@@ -1,7 +1,7 @@
/*
* @Author: PangXingYue
* @Date: 2021-03-23 13:34:15
* @LastEditTime: 2023-03-01 17:08:26
* @LastEditTime: 2023-03-01 17:12:18
* @LastEditors: jiawei jia.wei@ebiz-digits.com
* @Description:
* @FilePath: \ebiz-h5\src\config\index.js
@@ -14,40 +14,40 @@
*/
let apiDomain, imgDomain, assetsUrl, mainUrl, payUrl, zssqUrl, REQ_PWD, CACHE_ENCRYP, API_VERSION, assetsUpUrl, YB_APP // 保融支付的收银台服务地址
// function getSearchString(key) {
// var str = window.location.href.split('?')[1]
// str = str.substring(1, str.length) // 获取URL中?之后的字符(去掉第一位的问号)
// // 以&分隔字符串获得类似name=xiaoli这样的元素数组
// var arr = str.split("&")
// var obj = new Object()
// // 将每一个数组元素以=分隔并赋给obj对象
// for (var i = 0; i < arr.length; i++) {
// var tmp_arr = arr[i].split("=")
// obj[decodeURIComponent(tmp_arr[0])] = decodeURIComponent(tmp_arr[1])
// }
// return obj[key]
// }
let apiVersion = 'v1'
// var ua = window.navigator.userAgent.toLowerCase()
// //通过正则表达式匹配ua中是否含有MicroMessenger字符串, 在微信
// if(localStorage.getItem('apiVersion')){
// apiVersion = localStorage.getItem('apiVersion')
// }else{
// if(ua.match(/MicroMessenger/i) == 'micromessenger'){
// //report/reportList数据报表页面在浏览器可以打开了但在微信或企业微信中打开不了,接口请求不需要token
// if(window.location.href.indexOf('apiVersion') > 0){
// apiVersion = getSearchString('apiVersion')== 'V3'?'v3':'v2';//url中apiVersion没有时为v2
// }else{
// apiVersion = 'v3'
// }
// }else{
// // 在app
// if(navigator.userAgent.indexOf('JZG_') > 0){
// apiVersion = navigator.userAgent.split('JZG_')[1].split('/')[0].split('_')[1] == 'V3'?'v3':'v2'
// }
// }
// window.localStorage.setItem('apiVersion', apiVersion)
// }
function getSearchString (key) {
var str = window.location.href.split('?')[1]
str = str.substring(1, str.length) // 获取URL中?之后的字符(去掉第一位的问号)
// 以&分隔字符串获得类似name=xiaoli这样的元素数组
var arr = str.split("&")
var obj = new Object()
// 将每一个数组元素以=分隔并赋给obj对象
for (var i = 0; i < arr.length; i++) {
var tmp_arr = arr[i].split("=")
obj[decodeURIComponent(tmp_arr[0])] = decodeURIComponent(tmp_arr[1])
}
return obj[key]
}
let apiVersion = 'v2'
var ua = window.navigator.userAgent.toLowerCase()
//通过正则表达式匹配ua中是否含有MicroMessenger字符串, 在微信
if (localStorage.getItem('apiVersion')) {
apiVersion = localStorage.getItem('apiVersion')
} else {
if (ua.match(/MicroMessenger/i) == 'micromessenger') {
//report/reportList数据报表页面在浏览器可以打开了但在微信或企业微信中打开不了,接口请求不需要token
if (window.location.href.indexOf('apiVersion') > 0) {
apiVersion = getSearchString('apiVersion') == 'V3' ? 'v3' : 'v2';//url中apiVersion没有时为v2
} else {
apiVersion = 'v3'
}
} else {
// 在app
if (navigator.userAgent.indexOf('JZG_') > 0) {
apiVersion = navigator.userAgent.split('JZG_')[1].split('/')[0].split('_')[1] == 'V3' ? 'v3' : 'v2'
}
}
window.localStorage.setItem('apiVersion', apiVersion)
}
// 可以多个接口域名,按需添加
console.log('环境:', process.env.VUE_APP_FLAG)
switch (process.env.VUE_APP_FLAG) {

View File

@@ -10,6 +10,8 @@ const addBeneficiaryInfo = () => import('@/views/ebiz/sale/AddBeneficiaryInfo')
const signatureConfirmation = () => import('@/views/ebiz/sale/SignatureConfirmation')
const notifyingMessage = () => import('@/views/ebiz/sale/NotifyingMessage')
const answerPage = () => import('@/views/ebiz/sale/answerPage')
const answerSuccess = () => import('@/views/ebiz/sale/answerSuccess')
const accountInformation = () => import('@/views/ebiz/sale/AccountInformation')
const insuranceInformation = () => import('@/views/ebiz/sale/InsuranceInformation')
const insuranceClauses = () => import('@/views/ebiz/sale/insuranceClauses')
@@ -119,6 +121,22 @@ export default [
title: '告知信息'
}
},
{
path: '/sale/answerPage',
name: 'answerPage',
component: answerPage,
meta: {
title: '风险测评'
}
},
{
path: '/sale/answerSuccess',
name: 'answerSuccess',
component: answerSuccess,
meta: {
title: '风险测评结果'
}
},
{
path: '/sale/accountInformation',
name: 'accountInformation',

View File

@@ -1,8 +1,8 @@
/*
* @Author: PangXingYue
* @Date: 2021-04-02 16:04:38
* @LastEditTime: 2021-04-02 16:13:50
* @LastEditors: PangXingYue
* @LastEditTime: 2023-02-15 15:59:30
* @LastEditors: jiawei jia.wei@ebiz-digits.com
* @Description:
* @FilePath: \ebiz-h5\src\store\index.js
*/
@@ -26,77 +26,84 @@ export default new Vuex.Store({
eodrApplyNo: '', //保全-保全受理号
agentGrade: '', //用户的agentGrade判断用户权限
secondManageCode: '', //内勤所需参数
thirdManageCode: '' ,//内勤所需参数
orderDetail:{},//无优卡分享微信端订单信息
orderDetail: {},//无优卡分享微信端订单信息
answerType: true,//风险测评tab是否显示
},
mutations: {
setOrderDetail(state,data){
setOrderDetail (state, data) {
console.log('更新订单信息')
state.orderDetail = data;
},
setThirdManageCode(state, code) {
setThirdManageCode (state, code) {
state.thirdManageCode = code
},
setSecondManageCode(state, code) {
setSecondManageCode (state, code) {
state.secondManageCode = code
},
//设置用户的agentGrade判断用户权限
setAgentGrade(state, code) {
setAgentGrade (state, code) {
state.agentGrade = code
},
//更新 理赔申请-区分被保险人/申请人页面flag
updatePageFlag(state, val) {
updatePageFlag (state, val) {
state.pageFlag = val
},
//更新 自助入司-新增人员填写的基础信息中的电话号码及证件号
updateAgentEnterApplyMsg(state, userInfo) {
updateAgentEnterApplyMsg (state, userInfo) {
state.agentEnterApplyMobil = userInfo.mobile
state.agentEnterApplyIdNo = userInfo.idNo
},
//更新 自助入司-查看审批流程-审批拒绝的原因
updateRefusalCause(state, val) {
updateRefusalCause (state, val) {
state.refusalCause = val
},
//更新 续期管理-发送短信,请求参数
updateRenewalMsgParam(state, val) {
updateRenewalMsgParam (state, val) {
state.renewalMsgParam = val
},
//更新 保全-保全主表id
updatePreserveSurrendId(state, val) {
updatePreserveSurrendId (state, val) {
state.surrenderId = val
},
//更新 保全-保全受理号
updatePreserveEodrApplyNo(state, val) {
updatePreserveEodrApplyNo (state, val) {
state.eodrApplyNo = val
},
//更新 保全-续期账户变更保单信息
updatePcPolicyInfo(state, val) {
updatePcPolicyInfo (state, val) {
state.pcList = val
},
//更新 风险测评是否显示状态
updateAnswerType (state, val) {
state.answerType = val
},
},
getters: {
getPageFlag(state) {
getPageFlag (state) {
return state.pageFlag
},
getAgentEnterApplyMsg(state) {
getAgentEnterApplyMsg (state) {
return state
},
getRefusalCause(state) {
getRefusalCause (state) {
return state.refusalCause
},
getRenewalMsgParam(state) {
getRenewalMsgParam (state) {
return state.renewalMsgParam
},
getPreserveSurrendId(state) {
getPreserveSurrendId (state) {
return state.surrenderId
},
getPreserveEodrApplyNo(state) {
getPreserveEodrApplyNo (state) {
return state.eodrApplyNo
},
getPcPolicyInfo(state) {
getPcPolicyInfo (state) {
return state.pcList
},
getAnswerType (state) {
return state.answerType
},
}
})

View File

@@ -218,7 +218,7 @@ export default {
id: '',
// 投保人被保险人是否是一个人 1为同一个人
relationToAppnt: '',
salePageFlag: '7',
salePageFlag: '9',
imageType: ''
}
},
@@ -259,7 +259,7 @@ export default {
localStorage.setItem('salePageFlag', this.salePageFlag)
} else if (this.$route.query.edit && !this.$route.query.salePageFlag) {
//如果从保单列表点击编辑按钮进入
this.salePageFlag = '7'
this.salePageFlag = '9'
localStorage.setItem('salePageFlag', this.salePageFlag)
} else if (this.$route.query.salePageFlag) {
//如果是从导航栏点击进入

View File

@@ -146,7 +146,7 @@ export default {
active_sqy_radio: '0',
checkedUrl: require('@/assets/images/kmh/checked.png'),
noCheckedUrl: require('@/assets/images/kmh/no_checked.png'),
proposalOrderNo:''
proposalOrderNo:'',
}
},
components: {
@@ -273,6 +273,10 @@ export default {
resultData = await orderDetail({ orderNo: this.$CacheUtils.getLocItem('orderNo'), isMerge: '1' })
}
if (resultData.result == 0) {
//判断是否显示风险测评tab
let updateAnswerType = resultData.orderDTO.riskEvaluationDTO.isShowEvaluationPoint =='1'?true:false
this.$store.commit('updateAnswerType', updateAnswerType )
console.log(updateAnswerType,'updateAnswerType');
let riskDTOLst
if (isProposal) {
this.$CacheUtils.setLocItem('saleInsuredInfo',JSON.stringify(resultData.content[0].appntDTO))//存储投保人信息

View File

@@ -127,7 +127,7 @@
</template>
<script>
import { Cell, CellGroup, Field, RadioGroup, Radio, Popup, List, Switch, Toast, SwitchCell, Icon, Area } from 'vant'
import { Cell, CellGroup, Field, RadioGroup, Radio, Popup, List, Switch, Toast, SwitchCell, Icon, Area,Dialog } from 'vant'
import { saveInformation, getOrderDetail, checkCard, getAuthCode, autchCodeCheck } from '@/api/ebiz/sale/sale'
import utilsAge from '@/assets/js/utils/age'
import BankCardScan from '@/components/ebiz/sale/BankCardScan'
@@ -193,14 +193,14 @@ export default {
changeCard: localStorage.changeCard,
age: null,
productNo: null,
salePageFlag: '6',
salePageFlag: '8',
appntDTO: {},
areaList,
isAreaListShow: false,
accBankProvince: '',
accBankCity: '',
areaStr: '',
orderInfoDTO: ''
orderInfoDTO: '',
}
},
methods: {
@@ -658,6 +658,26 @@ export default {
message: '加载中……'
})
if (res.result == 0) {
if(res.orderDTO.riskEvaluationDTO.isShowEvaluationPoint == '1'&&res.orderDTO.riskEvaluationDTO.totalScore == null){
Dialog.alert({
title: '提示',
message: '您当前未完成测评,请完成后再进行后续操作',
theme: 'round-button',
}).then(() => {
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/answerPage',
},
routerInfo: {
path: '/sale/answerPage'
}
})
// on close
})
}
let updateAnswerType = res.orderDTO.riskEvaluationDTO.isShowEvaluationPoint =='1'?true:false
this.$store.commit('updateAnswerType', updateAnswerType )
this.appntDTO = res.orderDTO.appntDTO
this.orderInfoDTO = res.orderDTO.orderInfoDTO
//如果是从编辑进来的
@@ -788,7 +808,8 @@ export default {
SelectBankName,
[Icon.name]: Icon,
[IndexBar.name]: IndexBar,
[Area.name]: Area
[Area.name]: Area,
// [Dialog.name]: Dialo
}
}
</script>
@@ -822,4 +843,17 @@ export default {
color: $red1;
font-weight: bold;
}
// /deep/ .van-dialog__footer{
// text-align: center;
// padding-bottom:20px
// }
/deep/ .van-dialog {
.van-button{
width: 45%;
background: red;
color: #fff;
}
}
</style>

View File

@@ -501,7 +501,7 @@ export default {
// 投保人被保险人是否是一个人 1为同一个人
relationToAppnt: '',
changeCard: localStorage.changeCard,
salePageFlag: '7',
salePageFlag: '9',
imageType: ''
}
},
@@ -511,6 +511,25 @@ export default {
getOrderDetail({ orderNo: localStorage.orderNo }).then((res) => {
// console.log(res)
if (res.result == 0) {
if(res.orderDTO.riskEvaluationDTO.isShowEvaluationPoint == '1'&&res.orderDTO.riskEvaluationDTO.totalScore == null){
Dialog.alert({
title: '提示',
message: '您当前未完成测评,请完成后再进行后续操作',
theme: 'round-button',
}).then(() => {
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/answerPage',
},
routerInfo: {
path: '/sale/answerPage'
}
})
// on close
})
}
//是投保人还是被保险人
localStorage.accountInformationRadio = res.orderDTO.orderAccountDTO.accountType
//投被保险人关系
@@ -612,7 +631,7 @@ export default {
localStorage.setItem('salePageFlag', this.salePageFlag)
} else if (this.$route.query.edit && !this.$route.query.salePageFlag) {
//如果从保单列表点击编辑按钮进入
this.salePageFlag = '7'
this.salePageFlag = '9'
localStorage.setItem('salePageFlag', this.salePageFlag)
} else if (this.$route.query.salePageFlag) {
//如果是从导航栏点击进入

View File

@@ -70,7 +70,8 @@ export default {
beneficiaries: [], // 指定受益人列表
bnfFlag: '0', // 受益人类型
bnfType: '0', // 0 身故受益人 1 身前受益人
salePageFlag: '4'
salePageFlag: '4',
// isShowEvaluationPoint:'0'
}
},
created() {
@@ -83,6 +84,9 @@ export default {
} else {
getOrderDetail({ orderNo: localStorage.orderNo }).then(res => {
if (res.result == 0) {
// this.isShowEvaluationPoint = res.orderDTO.riskEvaluationDTO.isShowEvaluationPoint
// let updateAnswerType = res.orderDTO.riskEvaluationDTO.isShowEvaluationPoint =='1'?true:false
// this.$store.commit('updateAnswerType', updateAnswerType )
this.$utils.intLocalStorage(res)
this.type = res.orderDTO.orderInfoDTO.bnfFlag == '1' ? '2' : '1' //bnfFlag 0-法定受益人 1-指定受益人
if (res.orderDTO.orderInfoDTO.bnfFlag == null) {

View File

@@ -605,7 +605,8 @@ export default {
salePageFlag: '2',
userWorkcompanys:[],//单位数据
manageComCode:'',//代理人管理机构 52贵州 45广西
areaValue:'' //代理人管理机构--省级编号
areaValue:'', //代理人管理机构--省级编号
isShowEvaluationPoint:'0'//是否展示风险测评
}
},
created() {
@@ -616,6 +617,9 @@ export default {
if (orderNo) {
getOrderDetail({ orderNo: orderNo }).then((res) => {
if (res.result == 0) {
this.isShowEvaluationPoint = res.orderDTO.riskEvaluationDTO.isShowEvaluationPoint
let updateAnswerType = res.orderDTO.riskEvaluationDTO.isShowEvaluationPoint =='1'?true:false
this.$store.commit('updateAnswerType', updateAnswerType )
//投被同人
if (res.orderDTO.insuredDTOs.length && res.orderDTO.insuredDTOs[0].relationToAppnt == '1') {
this.$nextTick(() => {

View File

@@ -498,40 +498,72 @@ export default {
localStorage.orderNo = orderNo
localStorage.isFrom = 'sale'
localStorage.removeItem('changeCard')
switch (orderStatus) {
case '01': //已签名待客户确认, 跳到签名确认页面
if(orderStatus == '01'){ //已签名待客户确认, 跳到签名确认页面
url = '/sale/SignatureConfirmation?edit=1'
break
case '43': //未签名待客户确认, 跳到签名确认页面
url = '/sale/SignatureConfirmation?edit=1'
break
case '35': //投保人保存成功, 跳到被保险人页面--
url = '/sale/insuredPerson?edit=1'
break
case '36': //被保险人保存成功, 跳到已选产品列表
url = '/common/selectedProduct?edit=1'
break
case '37': //受益人保存成功, 跳到告知信息--
}else if(orderStatus == '43'){//未签名待客户确认, 跳到签名确认页面
url = '/sale/SignatureConfirmation?edit=1'
}else if(orderStatus == '35'){//投保人保存成功, 跳到被保险人页面
url = '/sale/insuredPerson?edit=1'
}else if(orderStatus == '36'){//被保险人保存成功, 跳到已选产品列表
url = '/common/selectedProduct?edit=1'
}else if(orderStatus == '37'){//受益人保存成功, 跳到告知信息--
url = '/sale/NotifyingMessage?edit=1'
break
case '38': //账户信息保存成功, 跳到附件管理--
}else if(orderStatus == '38'){ //账户信息保存成功, 跳到附件管理--
url = '/sale/AttachmentManagement?edit=1'
break
case '39': //险种信息保存成功, 跳到已选产品列表
}else if(orderStatus == '39'){ //险种信息保存成功, 跳到已选产品列表
url = '/common/selectedProduct?edit=1'
break
case '40': //告知信息保存成功, 跳到账户信息--
}else if(orderStatus == '40'){//告知信息保存成功, 跳到风险测评--
if( order.riskEvaluationDTO.isShowEvaluationPoint == '0'){
url = '/sale/AccountInformation?edit=1'
break
case '': //跳到投保人
}else {
url = '/sale/answerPage?edit=1'
}
}else if(orderStatus == ''){//跳到投保人
url = '/sale/insuredInfo?edit=1'
break
case '44': //建议书转投保, 跳到投保人
}else if(orderStatus == '44'){//建议书转投保, 跳到投保人
url = '/sale/insuredInfo?edit=1'
break
default:
break
}else if(orderStatus == '62'){//风险测评保存成功, 跳到账户信息--
// url = '/sale/AccountInformation?edit=1'
url = '/sale/answerSuccess?edit=1'
}
// switch (orderStatus) {
// case '01': //已签名待客户确认, 跳到签名确认页面
// url = '/sale/SignatureConfirmation?edit=1'
// break
// case '43': //未签名待客户确认, 跳到签名确认页面
// url = '/sale/SignatureConfirmation?edit=1'
// break
// case '35': //投保人保存成功, 跳到被保险人页面--
// url = '/sale/insuredPerson?edit=1'
// break
// case '36': //被保险人保存成功, 跳到已选产品列表
// url = '/common/selectedProduct?edit=1'
// break
// case '37': //受益人保存成功, 跳到告知信息--
// url = '/sale/NotifyingMessage?edit=1'
// break
// case '38': //账户信息保存成功, 跳到附件管理--
// url = '/sale/AttachmentManagement?edit=1'
// break
// case '39': //险种信息保存成功, 跳到已选产品列表
// url = '/common/selectedProduct?edit=1'
// break
// case '40': //告知信息保存成功, 跳到风险测评--
// url = '/sale/answerPage?edit=1'
// break
// case '': //跳到投保人
// url = '/sale/insuredInfo?edit=1'
// break
// case '44': //建议书转投保, 跳到投保人
// url = '/sale/insuredInfo?edit=1'
// break
// case '62': //风险测评保存成功, 跳到账户信息--
// // url = '/sale/AccountInformation?edit=1'
// url = '/sale/answerSuccess?edit=1'
// break
// default:
// break
// }
this.$jump({
flag: 'h5',
extra: {

View File

@@ -186,7 +186,8 @@ export default {
},
salePageFlag: '5',
// 是否特定医疗险
isSpecificMedicalInsurance:false
isSpecificMedicalInsurance:false,
isShowEvaluationPoint:'0'//默认不跳转到风险测评
}
},
created() {
@@ -194,6 +195,9 @@ export default {
// getOrderDetail({ orderNo: `8186270000000036` }).then(res => {
if (res.result == 0) {
//投被保险人关系
this.isShowEvaluationPoint = res.orderDTO.riskEvaluationDTO.isShowEvaluationPoint
let updateAnswerType = res.orderDTO.riskEvaluationDTO.isShowEvaluationPoint =='1'?true:false
this.$store.commit('updateAnswerType', updateAnswerType )
this.isExistAdditionalRisk = res.orderDTO.insuredDTOs[0].riskDTOLst.length > 1 ? true : false
console.log('this.is ====', this.isExistAdditionalRisk)
this.relationToAppnt = res.orderDTO.insuredDTOs[0].relationToAppnt
@@ -668,15 +672,37 @@ export default {
//不是从导航栏进入
localStorage.salePageFlag = '6'
}
that.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/accountInformation',
},
routerInfo: {
path: '/sale/accountInformation'
}
})
if(this.isShowEvaluationPoint == '0'){
that.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/accountInformation',
},
routerInfo: {
path: '/sale/accountInformation'
}
})
} else {
that.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/answerPage',
},
routerInfo: {
path: '/sale/answerPage'
}
})
}
// that.$jump({
// flag: 'h5',
// extra: {
// url: location.origin + '/#/sale/accountInformation',
// },
// routerInfo: {
// path: '/sale/accountInformation'
// }
// })
} else {
this.$toast(res.resultMessage)
}
@@ -736,15 +762,27 @@ export default {
saveInformation(data).then(res => {
if (res.result == '0') {
localStorage.removeItem('changeCard')
that.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/accountInformation',
},
routerInfo: {
path: '/sale/accountInformation'
}
})
if(this.isShowEvaluationPoint == '0'){
that.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/accountInformation',
},
routerInfo: {
path: '/sale/accountInformation'
}
})
} else {
that.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/answerPage',
},
routerInfo: {
path: '/sale/answerPage'
}
})
}
} else {
this.$toast(res.resultMessage)
}

View File

@@ -0,0 +1,165 @@
<!--
* @Author: jiawei
* @Date: 2023-02-15 09:41:46
* @LastEditors: jiawei jia.wei@ebiz-digits.com
* @LastEditTime: 2023-02-16 18:00:49
* @FilePath: \ebiz-h5\src\views\ebiz\sale\answerPage.vue
* @Description:
-->
<template>
<div>
<div style="background-color: rgb(245, 245, 245);padding-bottom:5px">
<index-bar></index-bar>
</div>
<div class=" bg-white pt20 pb20 pr10 pl10">
<h3 style="text-align:center">国富人寿投保风险承受能力测评表</h3>
<div class="pt20 pb20 pr10 pt20">
<h5>尊敬的客户</h5>
<h5 style="text-indent:2em">
为切实保障保险消费者的权益在购买保险产品前我们将对您进行风险认知风险偏好风险承受能力测评供您在购买保险产品时作参考在选择保险产品时请您综合考虑自身的保险需求财务状况风险承受能力等因素理性选择适合自己的保险产品如实回答以下问题以下均为单项选择题不可多选
</h5>
</div>
<div v-for="(item, index) in question" :key="index">
<p style="margin:2vh 0">{{item.questionNo+'.'+item.title}}</p>
<div>
<van-radio-group
v-model="item.answer.option"
@change="isDisabledType($event,index)"
class=" mb10"
v-validate="'required'"
data-vv-name="单选"
v-for="(items, indexs) in item.options" :key="indexs"
>
<van-radio :name="items.option" :label="items.option" class="mr150 ml70">{{items.item}} ({{items.score}})</van-radio>
</van-radio-group>
<div style=" font-size:13px" v-if="item.remark" v-html="item.remark">
</div>
</div>
</div>
</div>
<div class="bottom-btn bg-white">
<van-button type="danger" size="large" @click="next" :disabled="isDisabled" v-no-more-click="1000">提交问卷</van-button>
</div>
</div>
</template>
<script>
import { Collapse, CollapseItem, RadioGroup, Radio, Field, CellGroup, Icon } from 'vant'
import { saveInformation, getOrderDetail } from '@/api/ebiz/sale/sale'
import IndexBar from '@/components/ebiz/sale/IndexBar'
export default {
data() {
return {
question:[
],
isDisabled:true,
salePageFlag: '6',
}
},
components: {
[Collapse.name]: Collapse,
[CollapseItem.name]: CollapseItem,
[RadioGroup.name]: RadioGroup,
[Radio.name]: Radio,
[Field.name]: Field,
[CellGroup.name]: CellGroup,
[Icon.name]: Icon,
[IndexBar.name]: IndexBar
},
created(){
getOrderDetail({ orderNo: localStorage.orderNo }).then(res => {
if (res.result == 0) {
this.question =JSON.parse( res.orderDTO.riskEvaluationDTO.quentionAnswer)
console.log( this.question,' this.question');
this.isDisabledType()
} else {
this.$toast(res.resultMessage)
}
})
},
mounted(){
if (!this.$route.query.edit) {
//如果不是编辑/导航条跳转进来的
localStorage.setItem('salePageFlag', this.salePageFlag)
} else if (this.$route.query.edit && !this.$route.query.salePageFlag) {
//如果从保单列表点击编辑按钮进入
this.salePageFlag = '6'
localStorage.setItem('salePageFlag', this.salePageFlag)
} else if (this.$route.query.salePageFlag) {
//如果是从导航栏点击进入
this.salePageFlag = localStorage.salePageFlag
}
},
methods:{
isDisabledType(val,index){
if(val) {
this.question[index].answer.score = this.question[index].options.filter(item=>item.option ==val )[0].score
}
if(this.question.some(item => item.answer.option === '')){
this.isDisabled = true
// console.log('有空值,不通过') //true
}else{
this.isDisabled = false
// console.log('无空值,通过') //false
}
},
next(){
let data = {
orderType: 'EVALUATION_ORDER',
orderDTO: {
orderInfoDTO: {
orderNo: window.localStorage.getItem('orderNo'),
},
riskEvaluationDTO:{
quentionAnswer:JSON.stringify(this.question)
}
},
}
saveInformation(data).then(res => {
if (res.result == '0') {
let that = this
localStorage.removeItem('changeCard')
if (!this.$route.query.salePageFlag) {
//不是从导航栏进入
localStorage.salePageFlag = '7'
}
that.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/answerSuccess',
},
routerInfo: {
path: '/sale/answerSuccess'
}
})
} else {
this.$toast(res.resultMessage)
}
})
}
},
watch: {
},
beforeRouteLeave(to, from, next) {
document.body.style.backgroundColor = ''
next()
},
}
</script>
<style lang='scss' scoped>
/deep/ .mr150{
margin-right: 0 !important;
}
/deep/ .ml70{
margin-left: 0 !important;
}
/deep/ .van-radio__label {
font-size: 14px;
}
</style>

View File

@@ -0,0 +1,165 @@
<!--
* @Author: jiawei
* @Date: 2023-02-15 13:21:04
* @LastEditors: jiawei jia.wei@ebiz-digits.com
* @LastEditTime: 2023-02-16 15:23:55
* @FilePath: \ebiz-h5\src\views\ebiz\sale\answerSuccess.vue
* @Description:
-->
<template>
<div>
<div style="background-color: rgb(245, 245, 245);padding-bottom:5px">
<index-bar></index-bar>
</div>
<div class="bg-white pt20 pb20 ">
<p class="title mb20 mt20">您的测评得分</p>
<p class="fraction">{{riskEvaluationDTO.totalScore}}</p>
<p class=" mb20 mt20 pr20 pl20 fs12 bg-white" style=" line-height: 2" v-if="riskEvaluationDTO.tipContent">
{{riskEvaluationDTO.tipContent}}
</p>
</div>
<div class=" mb20 mt20 pr20 pl20 fs12 bg-white" v-if="riskEvaluationDTO.statementContent">
<div style="padding-bottom:10vh">
<h5 class="pt20 m10">投保人声明</h5>
<van-checkbox-group v-model="result" v-for="(item, index) in statementlist" :key="index" @change="statementChange">
<van-checkbox :name="index" class="mt20" label-disabled >{{index+1}}. <span v-html="item"></span></van-checkbox>
<!-- <van-checkbox :name="index" class="mt20" label-disabled ></van-checkbox>
<span v-html="item"></span> -->
</van-checkbox-group>
</div>
</div>
<div class="bottom-btn bg-white flex">
<van-button type="default" size="large" style="color:red" @click="goBack" v-no-more-click="1000">修改问卷</van-button>
<van-button type="danger" size="large" @click="next" v-if="parseFloat(riskEvaluationDTO.totalScore)>60" :disabled="isDisabled" v-no-more-click="1000">下一步</van-button>
<van-button type="danger" size="large" @click="backList" v-else v-no-more-click="1000">返回投保单列表</van-button>
</div>
</div>
</template>
<script>
import { Collapse, CollapseItem, RadioGroup, Radio, Field, CellGroup, Icon,Checkbox,CheckboxGroup } from 'vant'
import { getOrderDetail } from '@/api/ebiz/sale/sale'
import utilsAge from '@/assets/js/utils/age'
import IndexBar from '@/components/ebiz/sale/IndexBar'
export default {
data() {
return {
isDisabled:true,
result:[],
statementlist:[],
salePageFlag: '7',
riskEvaluationDTO:{
},
}
},
components: {
[Collapse.name]: Collapse,
[CollapseItem.name]: CollapseItem,
[RadioGroup.name]: RadioGroup,
[Radio.name]: Radio,
[Field.name]: Field,
[CellGroup.name]: CellGroup,
[Icon.name]: Icon,
[IndexBar.name]: IndexBar,
[Checkbox.name]: Checkbox,
[CheckboxGroup.name]: CheckboxGroup,
},
created(){
getOrderDetail({ orderNo: localStorage.orderNo }).then(res => {
if (res.result == 0) {
this.riskEvaluationDTO = res.orderDTO.riskEvaluationDTO
this.getStatement()
} else {
this.$toast(res.resultMessage)
}
})
},
mounted(){
if (!this.$route.query.edit) {
//如果不是编辑/导航条跳转进来的
localStorage.setItem('salePageFlag', this.salePageFlag)
} else if (this.$route.query.edit && !this.$route.query.salePageFlag) {
//如果从保单列表点击编辑按钮进入
this.salePageFlag = '8'
localStorage.setItem('salePageFlag', this.salePageFlag)
} else if (this.$route.query.salePageFlag) {
//如果是从导航栏点击进入
this.salePageFlag = localStorage.salePageFlag
}
},
methods:{
getStatement(){
if(this.riskEvaluationDTO.statementContent) {
this.statementlist = this.riskEvaluationDTO.statementContent.split('\n')
} else {
this.statementlist = []
}
},
statementChange(){
if(this.statementlist.length>0){
if(this.result.length== this.statementlist.length) {
this.isDisabled = false
} else {
this.isDisabled = true
}
}
},
goBack(){
let that = this
that.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/answerPage'
},
routerInfo: {
path: '/sale/answerPage'
}
})
},
backList(){
let that = this
that.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/list'
},
routerInfo: {
path: '/sale/list'
}
})
},
next(){
let that = this
that.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/AccountInformation'
},
routerInfo: {
path: '/sale/AccountInformation'
}
})
},
},
watch: {},
}
</script>
<style lang='scss' scoped>
.title {
text-align: center;
}
.fraction{
font-size: 25px;
text-align: center;
color: red;
font-weight: 600;
}
/deep/ .van-checkbox {
align-items: flex-start;
}
</style>