feature/GFRS-2215【待完成】重新投保--修改列表保单号字段,修改重新投保声明文案,添加附加险判断,字段显示修改,添加查询接口,修改保单页查询接口查询与缓存判断,修改附加险B款判断方式--提交人庞兴月

This commit is contained in:
pangxingyue
2021-03-31 15:00:26 +08:00
parent 557cac389e
commit 7ebec4fcb0
4 changed files with 174 additions and 110 deletions

View File

@@ -1,7 +1,7 @@
<!-- <!--
* @Author: PangXingYue * @Author: PangXingYue
* @Date: 2021-03-22 09:46:16 * @Date: 2021-03-22 09:46:16
* @LastEditTime: 2021-03-22 14:02:35 * @LastEditTime: 2021-03-31 13:13:43
* @LastEditors: PangXingYue * @LastEditors: PangXingYue
* @Description: * @Description:
* @FilePath: \ebiz-h5\src\components\ebiz\insureAgain\Order.vue * @FilePath: \ebiz-h5\src\components\ebiz\insureAgain\Order.vue
@@ -9,7 +9,7 @@
<template> <template>
<div class="order"> <div class="order">
<slot name="header"> <slot name="header">
<p class="title pt10 pb10">保单号: 23042834929832</p> <p class="title pt10 pb10">保单号: {{ order.policyNo }}</p>
</slot> </slot>
<div class="content p15"> <div class="content p15">
<p class="name mb8"> <p class="name mb8">

View File

@@ -9,10 +9,11 @@
<InfoCell label="证件类型">{{userInfo.idType | idToText('insuredIdType')}}</InfoCell> <InfoCell label="证件类型">{{userInfo.idType | idToText('insuredIdType')}}</InfoCell>
<InfoCell label="出生日期">{{userInfo.birthday}}</InfoCell> <InfoCell label="出生日期">{{userInfo.birthday}}</InfoCell>
<InfoCell label="证件截止日期">{{userInfo.certiexpiredate}}</InfoCell> <InfoCell label="证件截止日期">{{userInfo.certiexpiredate}}</InfoCell>
<select-radio v-validate="'required'" label="性别" name="性别" required :radios="sexRadio" :value.sync="userInfo.sex" :disabled="true"></select-radio> <select-radio v-validate="'required'" label="性别" name="性别" required :radios="sexRadio" :value.sync="userInfo.sex"
:disabled="true"></select-radio>
<InfoCell label="国籍">{{userInfo.nativeplace | idToText('nativeplace')}}</InfoCell> <InfoCell label="国籍">{{userInfo.nativeplace | idToText('nativeplace')}}</InfoCell>
<van-field :value="userInfo.marriageStatus" required label="婚姻状况" name="婚姻状况" v-validate="'required'" <van-field :value="userInfo.marriageStatus" required label="婚姻状况" name="婚姻状况" v-validate="'required'" right-icon="arrow"
right-icon="arrow" placeholder="请选择" @click="toSelect('10','','appntDTO')" @focus="noBomBox" /> placeholder="请选择" @click="toSelect('10','','appntDTO')" @focus="noBomBox" />
<InfoCell label="职业类别">{{userInfo.occupationName}}</InfoCell> <InfoCell label="职业类别">{{userInfo.occupationName}}</InfoCell>
<InfoCell label="移动电话">{{userInfo.mobile}}</InfoCell> <InfoCell label="移动电话">{{userInfo.mobile}}</InfoCell>
<InfoCell label="电子邮箱">{{userInfo.email}}</InfoCell> <InfoCell label="电子邮箱">{{userInfo.email}}</InfoCell>
@@ -20,7 +21,8 @@
<van-button class="mr10" size="small" type="danger" round></van-button> <van-button class="mr10" size="small" type="danger" round></van-button>
<van-button plain size="small" type="danger" round></van-button> <van-button plain size="small" type="danger" round></van-button>
</InfoCell> --> </InfoCell> -->
<select-radio v-validate="'required'" :radios="medicalRadio" label="有无社保" name="有无社保" required :value.sync="userInfo.medical" :disabled="true"></select-radio> <select-radio v-validate="'required'" :radios="medicalRadio" label="有无社保" name="有无社保" required :value.sync="userInfo.medical"
:disabled="true"></select-radio>
<InfoCell label="税收居民身份">{{userInfo.taxResidentId | idToText('taxIdentity')}}</InfoCell> <InfoCell label="税收居民身份">{{userInfo.taxResidentId | idToText('taxIdentity')}}</InfoCell>
<InfoCell label="联系地址">{{homeName}}</InfoCell> <InfoCell label="联系地址">{{homeName}}</InfoCell>
<InfoCell label="详细联系地址">{{userInfo.homeAddress}}</InfoCell> <InfoCell label="详细联系地址">{{userInfo.homeAddress}}</InfoCell>
@@ -33,7 +35,8 @@
<InfoCell label="证件类型">{{userInfo.idType | idToText('idType')}}</InfoCell> <InfoCell label="证件类型">{{userInfo.idType | idToText('idType')}}</InfoCell>
<InfoCell label="证件号码">{{insuredPersonInfo.idNo}}</InfoCell> <InfoCell label="证件号码">{{insuredPersonInfo.idNo}}</InfoCell>
<InfoCell label="出生日期">{{insuredPersonInfo.birthday}}</InfoCell> <InfoCell label="出生日期">{{insuredPersonInfo.birthday}}</InfoCell>
<select-radio required :radios="sexRadio" label="性别" name="性别" v-validate="'required'" :value.sync="insuredPersonInfo.sex" :disabled="true"></select-radio> <select-radio required :radios="sexRadio" label="性别" name="性别" v-validate="'required'" :value.sync="insuredPersonInfo.sex"
:disabled="true"></select-radio>
<InfoCell label="国籍">{{insuredPersonInfo.nativeplace | idToText('nativeplace')}}</InfoCell> <InfoCell label="国籍">{{insuredPersonInfo.nativeplace | idToText('nativeplace')}}</InfoCell>
<van-field :value="insuredPersonInfo.marriageStatus" required label="婚姻状况" name="婚姻状况" v-validate="'required'" <van-field :value="insuredPersonInfo.marriageStatus" required label="婚姻状况" name="婚姻状况" v-validate="'required'"
right-icon="arrow" placeholder="请选择" @click="toSelect('10','','insuredDTOs')" @focus="noBomBox" /> right-icon="arrow" placeholder="请选择" @click="toSelect('10','','insuredDTOs')" @focus="noBomBox" />
@@ -66,8 +69,8 @@
:value.sync="item.sex"></select-radio> :value.sync="item.sex"></select-radio>
<van-field :value="item.nativeplace | idToText('nativeplace')" label="国籍" name="国籍" required v-validate="'required'" <van-field :value="item.nativeplace | idToText('nativeplace')" label="国籍" name="国籍" required v-validate="'required'"
right-icon="arrow" placeholder="请选择" @click="toSelect('1','','bnfDTOs',index)" @focus="noBomBox" /> right-icon="arrow" placeholder="请选择" @click="toSelect('1','','bnfDTOs',index)" @focus="noBomBox" />
<van-field :value="item.marriageStatus" required label="婚姻状况" name="婚姻状况" v-validate="'required'" <van-field :value="item.marriageStatus" required label="婚姻状况" name="婚姻状况" v-validate="'required'" right-icon="arrow"
right-icon="arrow" placeholder="请选择" @click="toSelect('10','','bnfDTOs',index)" @focus="noBomBox" /> placeholder="请选择" @click="toSelect('10','','bnfDTOs',index)" @focus="noBomBox" />
<van-field v-model="item.mobile" clearable label="移动电话" name="移动电话" required placeholder="请输入" v-validate="'required|mobileLength11|mobileStartWith1|mobile'" <van-field v-model="item.mobile" clearable label="移动电话" name="移动电话" required placeholder="请输入" v-validate="'required|mobileLength11|mobileStartWith1|mobile'"
maxlength="11" /> maxlength="11" />
<van-field v-model="bnfHomeName[index]" readonly label="联系地址" name="联系地址" required right-icon="arrow" <van-field v-model="bnfHomeName[index]" readonly label="联系地址" name="联系地址" required right-icon="arrow"
@@ -88,14 +91,8 @@
<InfoCell label="开户银行">{{accountPersonInfo.bankName}}</InfoCell> <InfoCell label="开户银行">{{accountPersonInfo.bankName}}</InfoCell>
<InfoCell label="银行账号">{{accountPersonInfo.cardBookCode}}</InfoCell> <InfoCell label="银行账号">{{accountPersonInfo.cardBookCode}}</InfoCell>
</DropdownBox> </DropdownBox>
<van-field <van-field :value="userInfo.idType | idToText('insuredIdType')" v-validate="'required'" required label="证件类型" name="证件类型"
:value="userInfo.idType | idToText('insuredIdType')" placeholder="请选择" />
v-validate="'required'"
required
label="证件类型"
name="证件类型"
placeholder="请选择"
/>
<van-button type="danger" class="bottom-btn" v-no-more-click="1000" @click="nextStep">下一步</van-button> <van-button type="danger" class="bottom-btn" v-no-more-click="1000" @click="nextStep">下一步</van-button>
<!-- 字段选择 --> <!-- 字段选择 -->
<van-popup v-model="popupShow" position="bottom"> <van-popup v-model="popupShow" position="bottom">
@@ -178,7 +175,7 @@ export default {
areaLists: areaLists, //地址信息 areaLists: areaLists, //地址信息
occupationShowPicker: false, //职业类别 occupationShowPicker: false, //职业类别
occupationName: '', occupationName: '',
occupationCode: '', occupationCode: ''
} }
}, },
created() { created() {
@@ -206,11 +203,19 @@ export default {
}) })
} }
}, },
getReAppntPolicy() { async getReAppntPolicy() {
getReAppntPolicy({ policyNo: CacheUtils.getLocItem('policyNo') }).then(res => { var res = JSON.parse(CacheUtils.getLocItem('orderDetailData'))
if (!res) {
console.log('==================orderDetailData不存在=========================')
res = await getReAppntPolicy({ policyNo: CacheUtils.getLocItem('policyNo') })
if (res.result == 0) { if (res.result == 0) {
//投保人信息返显
CacheUtils.setLocItem('orderDetailData', JSON.stringify(res)) CacheUtils.setLocItem('orderDetailData', JSON.stringify(res))
} else {
this.$toast(res.resultMessage)
return false;
}
}
//投保人信息返显
this.userInfo = res.orderDTO.appntDTO this.userInfo = res.orderDTO.appntDTO
this.setCustomerMarriage(res.orderDTO.appntDTO.marriage) this.setCustomerMarriage(res.orderDTO.appntDTO.marriage)
//是否长期 //是否长期
@@ -254,8 +259,6 @@ export default {
} }
}) })
this.insuredPersonInfo.homeAddress = '汉字汉字汉字汉字123123' this.insuredPersonInfo.homeAddress = '汉字汉字汉字汉字123123'
}
})
}, },
setCustomerMarriage(marriageCode) { setCustomerMarriage(marriageCode) {
@@ -313,7 +316,7 @@ export default {
} }
}, },
noBomBox() { noBomBox() {
document.activeElement.blur(); document.activeElement.blur()
}, },
//确认选择字段 //确认选择字段
onConfirm(value) { onConfirm(value) {
@@ -526,8 +529,8 @@ export default {
} }
}) })
this.occupationShowPicker = false this.occupationShowPicker = false
this.bnfPersonInfo[this.bnfIndex]['occupationName'] = name; this.bnfPersonInfo[this.bnfIndex]['occupationName'] = name
this.bnfPersonInfo[this.bnfIndex]['occupationCode'] = code; this.bnfPersonInfo[this.bnfIndex]['occupationCode'] = code
}, },
/** /**
@@ -538,8 +541,8 @@ export default {
openOccupation(index) { openOccupation(index) {
this.occupationShowPicker = !this.occupationShowPicker this.occupationShowPicker = !this.occupationShowPicker
this.bnfIndex = index this.bnfIndex = index
this.occupationName = this.bnfPersonInfo[this.bnfIndex]['occupationName']; this.occupationName = this.bnfPersonInfo[this.bnfIndex]['occupationName']
this.occupationCode = this.bnfPersonInfo[this.bnfIndex]['occupationCode']; this.occupationCode = this.bnfPersonInfo[this.bnfIndex]['occupationCode']
} }
} }
} }

View File

@@ -161,7 +161,7 @@ export default {
CacheUtils.setLocItem('productCode', element.riskCode) CacheUtils.setLocItem('productCode', element.riskCode)
this.mainList.push(element) this.mainList.push(element)
} else { } else {
if (element.riskName.indexOf('B款') !== -1) { if (element.riskCode === 'GFRS_A0008') {
this.checkboxResult.push(element.riskCode) this.checkboxResult.push(element.riskCode)
} }
this.additionalList.push(element) this.additionalList.push(element)

View File

@@ -13,7 +13,7 @@
<Order v-for="(order,index) in NewItems" :key="index" :order="order"> <Order v-for="(order,index) in NewItems" :key="index" :order="order">
<p v-if="active === 'uncommit'" class="name mb8"> <p v-if="active === 'uncommit'" class="name mb8">
<van-tag plain color="#999999">保单保障日截止日期</van-tag> <van-tag plain color="#999999">保单保障日截止日期</van-tag>
<span class="ml5 span">{{ order.cvaliDate }}</span> <span class="ml5 span">{{ order.expiryDate }}</span>
</p> </p>
<div v-if="active === 'commit'"> <div v-if="active === 'commit'">
<p class="name mb8"> <p class="name mb8">
@@ -43,17 +43,57 @@
</van-pull-refresh> </van-pull-refresh>
<van-popup v-model="isAgreementShow" position="right" :style="{ height: '100vh', width: '100vw' }"> <van-popup v-model="isAgreementShow" position="right" :style="{ height: '100vh', width: '100vw' }">
<ReadingAgreement :needTime="false"> <ReadingAgreement :needTime="false">
<h3 class="p10">重新投保声明提示</h3> <h3 class="p10" style="text-align:center">重新投保声明提示</h3>
<p class="pl10">尊敬的{{orderInfo.appntName}}{{orderInfo.appntSex === 0 ? '先生':'女士'}}</p> <p style="text-indent:28px;">尊敬的{{orderInfo.appntName}}{{orderInfo.appntSex === 0 ? '先生':'女士'}}</p>
<p class="p10"> <div v-if="orderInfo.riskCode !== 'GFRS_A0008'">
您好您于保单生效日期投保的保单号为保单号码的国富人寿国富民惠医疗保险2020保单即将到期到期日期详见保单以下简称旧保单为保护您的权益即日起至<期满日后第{{orderInfo.expiryDate}}>期间您可以选择重新投保国富人寿国富民惠医疗保险2020本次申请投保的国富人寿国富民惠医疗保险2020保单以下简称新保单请您仔细阅读以下内容 <p style="text-indent:28px;">
您好您于{{orderInfo.cvaliDate}}投保的保单号为{{orderInfo.policyNo}}的国富人寿国富民惠医疗保险2020保单即将到期到期日期详见保单以下简称旧保单为保护您的权益即日起至{{orderInfo.expiryDate}}后第60天期间您可以选择重新投保国富人寿国富民惠医疗保险2020本次申请投保的国富人寿国富民惠医疗保险2020保单以下简称新保单请您仔细阅读以下内容
</p>
<p style="text-indent:28px;">
1.国富人寿国富民惠医疗保险2020合同保险期间为一年到期后需要重新投保 1.国富人寿国富民惠医疗保险2020合同保险期间为一年到期后需要重新投保
</p>
<p style="text-indent:28px;">
2.本次重新投保我们将按照国富人寿国富民惠医疗保险2020费率表中的在上一保险期间届满后60日内申请重新投保时对应的费率计算保费 2.本次重新投保我们将按照国富人寿国富民惠医疗保险2020费率表中的在上一保险期间届满后60日内申请重新投保时对应的费率计算保费
</p>
<p style="text-indent:28px;">
3.若本次重新投保成功新保单免除等待期 3.若本次重新投保成功新保单免除等待期
</p>
<p style="text-indent:28px;">
4.本次重新投保仅限于无其他补充告知的情况若您有其他补充告知您的条件不符合本重新投保流程请您联系保单服务专员通过新增投保单进行投保申请 4.本次重新投保仅限于无其他补充告知的情况若您有其他补充告知您的条件不符合本重新投保流程请您联系保单服务专员通过新增投保单进行投保申请
</p>
<p style="text-indent:28px;">
5.若您于旧保单满期前申请重新投保且于满期前成功支付保险费则新保单在旧保单保险期满日对应日的次日零时生效旧保单在保险期满日24时终止若您于旧保单满期后60天包含内重新投保申请且成功支付保险费则新保单于支付次日零时生效旧保单在保险期满日24时终止 5.若您于旧保单满期前申请重新投保且于满期前成功支付保险费则新保单在旧保单保险期满日对应日的次日零时生效旧保单在保险期满日24时终止若您于旧保单满期后60天包含内重新投保申请且成功支付保险费则新保单于支付次日零时生效旧保单在保险期满日24时终止
</p>
<p style="text-indent:28px;">
6.若您未在旧保单满期后60天包含内申请重新投保则您的重新投保资格将被取消后续您可再次申请投保但新单不再与旧保单关联需重新计算等待期具体详情可咨询保单服务专员 6.若您未在旧保单满期后60天包含内申请重新投保则您的重新投保资格将被取消后续您可再次申请投保但新单不再与旧保单关联需重新计算等待期具体详情可咨询保单服务专员
</p> </p>
</div>
<div v-else>
<p style="text-indent:28px;">
您好您于{{orderInfo.cvaliDate}}投保的保单号为{{orderInfo.policyNo}}的国富人寿国富民惠医疗保险2020保单即将到期到期日期详见保单以下简称旧保单为保护您的权益即日起至{{orderInfo.expiryDate}}后第60天期间您可以选择重新投保国富人寿国富民惠医疗保险2020本次申请投保的国富人寿国富民惠医疗保险2020保单以下简称新保单请您仔细阅读以下内容
</p>
<p style="text-indent:28px;">
1.国富人寿国富民惠医疗保险2020合同保险期间为一年到期后需要重新投保
</p>
<p style="text-indent:28px;">
2.本次重新投保我们将按照国富人寿国富民惠医疗保险2020费率表中的在上一保险期间届满后60日内申请重新投保时对应的费率计算保费
</p>
<p style="text-indent:28px;">
3.若本次重新投保成功新保单免除等待期
</p>
<p style="text-indent:28px;">
4.本次重新投保仅限于无其他补充告知的情况若您有其他补充告知您的条件不符合本重新投保流程请您联系保单服务专员通过新增投保单进行投保申请
</p>
<p style="text-indent:28px;">
5.若您于旧保单满期前申请重新投保且于满期前成功支付保险费则新保单在旧保单保险期满日对应日的次日零时生效旧保单在保险期满日24时终止若您于旧保单满期后60天包含内重新投保申请且成功支付保险费则新保单于支付次日零时生效旧保单在保险期满日24时终止
</p>
<p style="text-indent:28px;">
6.若您未在旧保单满期后60天包含内申请重新投保则您的重新投保资格将被取消后续您可再次申请投保但新单不再与旧保单关联需重新计算等待期具体详情可咨询保单服务专员
</p>
<p style="text-indent:28px;">
7.国富人寿附加住院医疗保险已停售您可选择投保同类产品国富人寿附加住院医疗保险B款我们将按照国富人寿附加住院医疗保险B款费率表中的在上一保险期间届满后60日内申请重新投保时对应的费率计算保费
</p>
</div>
<template #action> <template #action>
<van-radio-group class="m10" v-model="radio"> <van-radio-group class="m10" v-model="radio">
<van-radio :name="false"> <van-radio :name="false">
@@ -78,6 +118,7 @@ import dataDictionary from '@/assets/js/utils/data-dictionary' //根据数据字
import Order from '@/components/ebiz/insureAgain/Order' import Order from '@/components/ebiz/insureAgain/Order'
import ReadingAgreement from '@/components/ebiz/insureAgain/ReadingAgreement' import ReadingAgreement from '@/components/ebiz/insureAgain/ReadingAgreement'
import CacheUtils from '@/assets/js/utils/cacheUtils' import CacheUtils from '@/assets/js/utils/cacheUtils'
import { getReAppntPolicy } from '@/api/ebiz/insureAgain/insureAgain'
export default { export default {
name: 'InsureAgain', name: 'InsureAgain',
components: { components: {
@@ -202,14 +243,35 @@ export default {
// } // }
// }) // })
if (order.orderStatus === '38') { if (order.orderStatus === '38') {
let url = '/insureAgain/ProductInformation'; let url = '/insureAgain/ProductInformation'
} else if (order.orderStatus === '39') { } else if (order.orderStatus === '39') {
let url = '/insureAgain/Notification'; let url = '/insureAgain/Notification'
} else if (order.orderStatus === '40') { } else if (order.orderStatus === '40') {
let url = '/insureAgain/SignatureConfirmation'; let url = '/insureAgain/SignatureConfirmation'
} else { } else {
getReAppntPolicy({ policyNo: order.policyNo }).then(res => {
if (res.result == 0) {
//投保人信息返显
CacheUtils.setLocItem('orderDetailData', JSON.stringify(res))
let appntDTO = res.orderDTO.appntDTO
let insuredDTOs = res.orderDTO.insuredDTOs[0]
let orderInfoDTO = res.orderDTO.orderInfoDTO
let riskDTOLst = insuredDTOs.riskDTOLst
this.orderInfo.appntName = appntDTO.name
this.orderInfo.cvaliDate = orderInfoDTO.cvaliDate
this.orderInfo.expiryDate = orderInfoDTO.expiryDate
this.orderInfo.riskCode = ''
riskDTOLst.forEach((element, index) => {
if (element.riskCode === 'GFRS_A0008') {
this.orderInfo.riskCode = 'GFRS_A0008'
}
})
} else {
this.$toast(res.resultMessage)
}
})
this.isAgreementShow = true this.isAgreementShow = true
return false; return false
} }
this.$jump({ this.$jump({
@@ -221,7 +283,6 @@ export default {
path: url path: url
} }
}) })
}, },
uncommitInsureDetail(order) { uncommitInsureDetail(order) {
CacheUtils.setLocItem('policyNo', order.policyNo) CacheUtils.setLocItem('policyNo', order.policyNo)