mirror of
http://112.124.100.131/GFRS/ebiz-h5.git
synced 2025-12-15 07:06:44 +08:00
当投被保险人为非同一人时,投保人可附加国富人寿附加投保人豁免保险费定期寿险、附加国富人寿附加豁免保险费重大疾病保险。
This commit is contained in:
@@ -19,6 +19,8 @@
|
|||||||
import { Cell, CellGroup, Tag, Radio, RadioGroup } from 'vant'
|
import { Cell, CellGroup, Tag, Radio, RadioGroup } from 'vant'
|
||||||
import { calculatePremium } from '@/api/ebiz/common/common'
|
import { calculatePremium } from '@/api/ebiz/common/common'
|
||||||
import riskRules from './risk-rules'
|
import riskRules from './risk-rules'
|
||||||
|
import { getAgentInfo } from '@/api/ebiz/my/my.js'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'addtionRiskList',
|
name: 'addtionRiskList',
|
||||||
components: {
|
components: {
|
||||||
@@ -30,6 +32,7 @@ export default {
|
|||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
branchTypeVal: '', //个险渠道G 中介渠道Z
|
||||||
list: [],
|
list: [],
|
||||||
result: '',
|
result: '',
|
||||||
saleInsuredPersonInfo: null //投保人信息
|
saleInsuredPersonInfo: null //投保人信息
|
||||||
@@ -40,7 +43,14 @@ export default {
|
|||||||
if (this.$CacheUtils.getLocItem('saleInsuredPersonInfo')) {
|
if (this.$CacheUtils.getLocItem('saleInsuredPersonInfo')) {
|
||||||
this.saleInsuredPersonInfo = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo'))
|
this.saleInsuredPersonInfo = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo'))
|
||||||
}
|
}
|
||||||
|
getAgentInfo({}).then(res => {
|
||||||
|
// branchType N1、1代表个险渠道 和 N5、5 代表中介渠道,N代表内勤
|
||||||
|
if (res.branchType == 'N1' || res.branchType == '1') {
|
||||||
|
this.branchTypeVal = 'G'
|
||||||
|
} else if (res.branchType == 'N5' || res.branchType == '5') {
|
||||||
|
this.branchTypeVal = 'Z'
|
||||||
|
}
|
||||||
|
})
|
||||||
this.filterAddRisk()
|
this.filterAddRisk()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@@ -49,9 +59,18 @@ export default {
|
|||||||
if (localStorage.addtionRiskLst) {
|
if (localStorage.addtionRiskLst) {
|
||||||
let addRiskCodes = localStorage.addRiskCodes && JSON.parse(localStorage.addRiskCodes)
|
let addRiskCodes = localStorage.addRiskCodes && JSON.parse(localStorage.addRiskCodes)
|
||||||
let addtionRiskLst = JSON.parse(localStorage.addtionRiskLst)
|
let addtionRiskLst = JSON.parse(localStorage.addtionRiskLst)
|
||||||
|
let currentMainRiskInfo = this.getCurrentMainRiskInfo()
|
||||||
addtionRiskLst.forEach(item => {
|
addtionRiskLst.forEach(item => {
|
||||||
if (addRiskCodes.includes(item.productCode)) {
|
if (addRiskCodes.includes(item.productCode)) {
|
||||||
item.isHidden = 1
|
item.isHidden = 1
|
||||||
|
} else {
|
||||||
|
if (
|
||||||
|
currentMainRiskInfo.mainRiskPayEndYearFlag == 'Y' &&
|
||||||
|
currentMainRiskInfo.mainRiskPayEndYear == '1000' &&
|
||||||
|
(item.productCode == 'GFRS_A0007' || item.productCode == 'GFRS_A0009')
|
||||||
|
) {
|
||||||
|
item.isHidden = 1
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
this.list = addtionRiskLst
|
this.list = addtionRiskLst
|
||||||
@@ -80,13 +99,13 @@ export default {
|
|||||||
let ruleExpression = localStorage.ruleExpression ? JSON.parse(localStorage.ruleExpression) : {}
|
let ruleExpression = localStorage.ruleExpression ? JSON.parse(localStorage.ruleExpression) : {}
|
||||||
ruleExpression[resultData.productCode] = resultData.productTrialInfoDTO.ruleExpression
|
ruleExpression[resultData.productCode] = resultData.productTrialInfoDTO.ruleExpression
|
||||||
localStorage.ruleExpression = JSON.stringify(ruleExpression)
|
localStorage.ruleExpression = JSON.stringify(ruleExpression)
|
||||||
let ttThis = this;
|
let ttThis = this
|
||||||
for (let item of ruleExpression[resultData.productCode]) {
|
for (let item of ruleExpression[resultData.productCode]) {
|
||||||
let config = JSON.parse(item.ruleExpression)
|
let config = JSON.parse(item.ruleExpression)
|
||||||
switch (config.eventType) {
|
switch (config.eventType) {
|
||||||
case 'loadFormat':
|
case 'loadFormat':
|
||||||
let initFn = new Function(...config.funPar, config.funBody.join(''))
|
let initFn = new Function(...config.funPar, config.funBody.join(''))
|
||||||
let str = initFn.call(ttThis,resultData)
|
let str = initFn.call(ttThis, resultData)
|
||||||
if (str) {
|
if (str) {
|
||||||
return this.$toast(str)
|
return this.$toast(str)
|
||||||
}
|
}
|
||||||
@@ -283,6 +302,7 @@ export default {
|
|||||||
let remitTypeLimit = resultData.productTrialInfoDTO.remitTypeLimit
|
let remitTypeLimit = resultData.productTrialInfoDTO.remitTypeLimit
|
||||||
let relationToAppnt = this.saleInsuredPersonInfo.relationToAppnt
|
let relationToAppnt = this.saleInsuredPersonInfo.relationToAppnt
|
||||||
let currentMainRiskInfo = this.getCurrentMainRiskInfo()
|
let currentMainRiskInfo = this.getCurrentMainRiskInfo()
|
||||||
|
let productCode = resultData.productCode
|
||||||
if (relationToAppnt == 1 && remitType == '0' && !remitTypeLimit) {
|
if (relationToAppnt == 1 && remitType == '0' && !remitTypeLimit) {
|
||||||
this.$toast('投被同人不能选取此款险种!')
|
this.$toast('投被同人不能选取此款险种!')
|
||||||
return true
|
return true
|
||||||
@@ -295,11 +315,20 @@ export default {
|
|||||||
this.$toast('目前主险交费期间类型,不适合选取此款险种!')
|
this.$toast('目前主险交费期间类型,不适合选取此款险种!')
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
// branchTypeVal: '', //个险渠道G 中介渠道Z
|
||||||
|
//国富人寿附加投保人豁免保险费定期寿险(B款) GFRS_A0007
|
||||||
|
//国富人寿附加豁免保险费重大疾病保险(B款) GFRS_A0009
|
||||||
|
if (this.branchTypeVal == 'Z' && (productCode == 'GFRS_A0007' || productCode == 'GFRS_A0009')) {
|
||||||
|
if (relationToAppnt == 1) {
|
||||||
|
this.$toast('投被同人不能选取此款险种!')
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
return false
|
return false
|
||||||
},
|
},
|
||||||
//获取主险的保险期间、交费方式
|
//获取主险的保险期间、交费方式
|
||||||
getCurrentMainRiskInfo() {
|
getCurrentMainRiskInfo() {
|
||||||
let mainRiskPayIntv, mainRiskPayEndYearFlag
|
let mainRiskPayIntv, mainRiskPayEndYearFlag, mainRiskPayEndYear
|
||||||
let chooseProducts = JSON.parse(localStorage.chooseProducts)
|
let chooseProducts = JSON.parse(localStorage.chooseProducts)
|
||||||
chooseProducts[0].calFactorLst.forEach(item => {
|
chooseProducts[0].calFactorLst.forEach(item => {
|
||||||
if (item.code == 'payIntv') {
|
if (item.code == 'payIntv') {
|
||||||
@@ -307,11 +336,13 @@ export default {
|
|||||||
}
|
}
|
||||||
if (item.code == 'payEndYear') {
|
if (item.code == 'payEndYear') {
|
||||||
mainRiskPayEndYearFlag = item.payEndYearFlag
|
mainRiskPayEndYearFlag = item.payEndYearFlag
|
||||||
|
mainRiskPayEndYear = item.payEndYear
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
return {
|
return {
|
||||||
mainRiskPayIntv,
|
mainRiskPayIntv,
|
||||||
mainRiskPayEndYearFlag
|
mainRiskPayEndYearFlag,
|
||||||
|
mainRiskPayEndYear
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
//页面跳转
|
//页面跳转
|
||||||
|
|||||||
@@ -75,7 +75,9 @@
|
|||||||
<div class="pv12 border-bd">{{ riskFactor.name }}</div>
|
<div class="pv12 border-bd">{{ riskFactor.name }}</div>
|
||||||
<div class="duty">
|
<div class="duty">
|
||||||
<div class="flex justify-content-s border-bd pv10 align-items-c" v-for="(dutyItem, dutyItemIndex) in riskFactor.rules" :key="dutyItemIndex">
|
<div class="flex justify-content-s border-bd pv10 align-items-c" v-for="(dutyItem, dutyItemIndex) in riskFactor.rules" :key="dutyItemIndex">
|
||||||
<span v-if="!(item.productCode == 'GFRS_M0024' || item.productCode == 'GFRS_M0040' || item.productCode == 'GFRS_M0044')" class="fs14 w100">{{ dutyItem.dutyName }}({{ dutyItem.suffix }})</span>
|
<span v-if="!(item.productCode == 'GFRS_M0024' || item.productCode == 'GFRS_M0040' || item.productCode == 'GFRS_M0044')" class="fs14 w100"
|
||||||
|
>{{ dutyItem.dutyName }}({{ dutyItem.suffix }})</span
|
||||||
|
>
|
||||||
<span v-else class="fs14 w100">{{ dutyItem.dutyName }}</span>
|
<span v-else class="fs14 w100">{{ dutyItem.dutyName }}</span>
|
||||||
<div class="flex relative">
|
<div class="flex relative">
|
||||||
<van-stepper
|
<van-stepper
|
||||||
@@ -277,12 +279,12 @@
|
|||||||
<span style="font-weight:bold" v-else>保额(元):</span>
|
<span style="font-weight:bold" v-else>保额(元):</span>
|
||||||
<span class="fee red" v-if="trialList && trialList.length > 0">{{ trialList[index].showPrem | moneyFormat }}</span>
|
<span class="fee red" v-if="trialList && trialList.length > 0">{{ trialList[index].showPrem | moneyFormat }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex justify-content-fs pv10 border-bottom prem align-items-c" v-if="cvalidateFlag">
|
<div class="flex justify-content-fs pv10 border-bottom prem align-items-c" v-if="item.isMainRisk == 0 && activeType == 'KMH' && isFrom != 'proposal'">
|
||||||
<span>指定保单生效日</span>
|
<span>指定保单生效日</span>
|
||||||
<van-radio-group v-model="activeRadio" class="pl20">
|
<van-radio-group v-model="activeRadio" class="pl20">
|
||||||
<van-radio name="1" icon-size="1rem"></van-radio>
|
<van-radio name="1" icon-size="1rem"></van-radio>
|
||||||
</van-radio-group>
|
</van-radio-group>
|
||||||
<span class="pl5">{{cvalidateStr}}</span>
|
<span class="pl5">2021年1月1日</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="bottom-btn bg-white">
|
<div class="bottom-btn bg-white">
|
||||||
@@ -385,8 +387,6 @@ export default {
|
|||||||
return {
|
return {
|
||||||
activeRadio: '1',
|
activeRadio: '1',
|
||||||
activeType: localStorage.getItem('active_type'),
|
activeType: localStorage.getItem('active_type'),
|
||||||
cvalidateFlag : false,
|
|
||||||
cvalidateStr:'',
|
|
||||||
chooseProducts: [],
|
chooseProducts: [],
|
||||||
productIndex: '',
|
productIndex: '',
|
||||||
calFactorIndex: '',
|
calFactorIndex: '',
|
||||||
@@ -445,7 +445,7 @@ export default {
|
|||||||
//初始化数据
|
//初始化数据
|
||||||
init() {
|
init() {
|
||||||
// 获取是否从建议书过来的
|
// 获取是否从建议书过来的
|
||||||
this.isFrom = window.localStorage.isFrom
|
this.isFrom = localStorage.isFrom
|
||||||
//获取投保人信息
|
//获取投保人信息
|
||||||
if (this.$CacheUtils.getLocItem('saleInsuredInfo')) {
|
if (this.$CacheUtils.getLocItem('saleInsuredInfo')) {
|
||||||
this.saleInsuredInfo = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredInfo'))
|
this.saleInsuredInfo = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredInfo'))
|
||||||
@@ -457,8 +457,6 @@ export default {
|
|||||||
//构建提交数据、渲染险种
|
//构建提交数据、渲染险种
|
||||||
this.chooseProducts = JSON.parse(localStorage.chooseProducts)
|
this.chooseProducts = JSON.parse(localStorage.chooseProducts)
|
||||||
this.chooseProducts.map(item => {
|
this.chooseProducts.map(item => {
|
||||||
this.cvalidateFlag = item.isMainRisk == 0 && (this.activeType == 'KMH'||this.activeType == 'SQY') && this.isFrom != 'proposal'
|
|
||||||
this.cvalidateStr = this.cvalidateFlag?this.activeType == 'KMH'?'2021-01-01':this.activeType == 'SQY'?'2021-06-01':'':''
|
|
||||||
if (item.mainRiskCode == 'GFRS_M0006') {
|
if (item.mainRiskCode == 'GFRS_M0006') {
|
||||||
item.isHidden = true
|
item.isHidden = true
|
||||||
}
|
}
|
||||||
@@ -504,8 +502,7 @@ export default {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
if (this.mainRiskCode == 'GFRS_M0031' || this.mainRiskCode == 'GFRS_M0005' ||
|
if (this.mainRiskCode == 'GFRS_M0031' || this.mainRiskCode == 'GFRS_M0005' || this.mainRiskCode == 'GFRS_M0042' || this.mainRiskCode == 'GFRS_M0043') {
|
||||||
this.mainRiskCode == 'GFRS_M0042' || this.mainRiskCode == 'GFRS_M0043') {
|
|
||||||
this.chooseProducts.map(item => {
|
this.chooseProducts.map(item => {
|
||||||
if (item.productCode == 'GFRS_A0008') {
|
if (item.productCode == 'GFRS_A0008') {
|
||||||
item.calFactorLst.map(item2 => {
|
item.calFactorLst.map(item2 => {
|
||||||
@@ -837,7 +834,7 @@ export default {
|
|||||||
if (currentEle.hasFlag) {
|
if (currentEle.hasFlag) {
|
||||||
currentEle[name + 'Flag'] = value.flag
|
currentEle[name + 'Flag'] = value.flag
|
||||||
}
|
}
|
||||||
this.hiddenPayEndYear(currentEle)
|
// this.hiddenPayEndYear(currentEle)
|
||||||
//特殊规则:设置豁免险
|
//特殊规则:设置豁免险
|
||||||
this.getTrial()
|
this.getTrial()
|
||||||
}
|
}
|
||||||
@@ -998,14 +995,14 @@ export default {
|
|||||||
},
|
},
|
||||||
/********start 通用规则、特殊规则处理 start******/
|
/********start 通用规则、特殊规则处理 start******/
|
||||||
//通用规则1:交费方式为一次交情,无交费期限
|
//通用规则1:交费方式为一次交情,无交费期限
|
||||||
hiddenPayEndYear(currentEle) {
|
// hiddenPayEndYear(currentEle) {
|
||||||
if (currentEle.code == 'payIntv') {
|
// if (currentEle.code == 'payIntv') {
|
||||||
if (this.chooseProducts[0].productCode === 'GFRS_M0015' && this.chooseProducts[this.productIndex].productCode === 'GFRS_A0006') {
|
// if (this.chooseProducts[0].productCode === 'GFRS_M0015' && this.chooseProducts[this.productIndex].productCode === 'GFRS_A0006') {
|
||||||
return
|
// return
|
||||||
}
|
// }
|
||||||
this.chooseProducts[this.productIndex]['isHidden'] = currentEle.payIntv == '0' ? true : false
|
// this.chooseProducts[this.productIndex]['isHidden'] = currentEle.payIntv == '0' ? true : false
|
||||||
}
|
// }
|
||||||
},
|
// },
|
||||||
//通用规则2:交费期限不能超过保险期间
|
//通用规则2:交费期限不能超过保险期间
|
||||||
payExceedInsured(currentEle, currentFactor, currentVale) {
|
payExceedInsured(currentEle, currentFactor, currentVale) {
|
||||||
let payEndYearVal, insuYearVal
|
let payEndYearVal, insuYearVal
|
||||||
@@ -1017,12 +1014,17 @@ export default {
|
|||||||
insuYearVal = Number(currentVale)
|
insuYearVal = Number(currentVale)
|
||||||
payEndYearVal = this.getPayEndYearOrInsuYear('payEndYear', currentFactor)
|
payEndYearVal = this.getPayEndYearOrInsuYear('payEndYear', currentFactor)
|
||||||
}
|
}
|
||||||
|
//交费期限为一次性交清时,val为1000,直接跳过此规则
|
||||||
|
if (payEndYearVal != 1000) {
|
||||||
if (payEndYearVal > insuYearVal) {
|
if (payEndYearVal > insuYearVal) {
|
||||||
this.$toast('交费期间不能超过保险期间')
|
this.$toast('交费期间不能超过保险期间')
|
||||||
return true
|
return true
|
||||||
} else {
|
} else {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
return false
|
||||||
|
}
|
||||||
},
|
},
|
||||||
getPayEndYearOrInsuYear(flag, currentFactor) {
|
getPayEndYearOrInsuYear(flag, currentFactor) {
|
||||||
let returnVal
|
let returnVal
|
||||||
@@ -1610,43 +1612,6 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
//isTrial为0 ---暂时为富娃娃两全保险(万能型)专配 输入保费校验
|
//isTrial为0 ---暂时为富娃娃两全保险(万能型)专配 输入保费校验
|
||||||
}else if (productCode == 'GFRS_M0040') {
|
|
||||||
// 惠企保保额限制
|
|
||||||
//被保险人年龄如果在41-60区间
|
|
||||||
if (this.saleInsuredPersonInfo.age >= 41) {
|
|
||||||
//使用rules规则里的第二条控制保额份数
|
|
||||||
if (Number(defalutValue) < Number(riskFactor.rules[1].minPrem) || Number(defalutValue) > Number(riskFactor.rules[1].maxPrem)) {
|
|
||||||
this.$toast('年龄在41周岁至60周岁被保险人,投保本险种时,最低基本保险金额为50000元。超过最低基本保险金额为10000元整数倍。')
|
|
||||||
this.nextStepFlag = true
|
|
||||||
} else {
|
|
||||||
if ((Number(defalutValue) * 10000) % (Number(currentEle.limit) * 10000) != 0) {
|
|
||||||
// this.defalutAmt = currentEle.rules[productIndex].displayAmount
|
|
||||||
this.$toast('年龄在41周岁至60周岁被保险人,投保本险种时,最低基本保险金额为50000元。超过最低基本保险金额为10000元整数倍。')
|
|
||||||
this.nextStepFlag = true
|
|
||||||
} else {
|
|
||||||
this.mainRiskInfluenceAddRisk()
|
|
||||||
currentEle['amt'] = Number(defalutValue) * Number(currentEle.moneyUnit)
|
|
||||||
this.getTrial()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else if (this.saleInsuredPersonInfo.age >= 0 && this.saleInsuredPersonInfo.age <= 40) {
|
|
||||||
//使用rules规则里的第一条控制保额份数
|
|
||||||
if (Number(defalutValue) < Number(riskFactor.rules[0].minPrem) || Number(defalutValue) > Number(riskFactor.rules[0].maxPrem)) {
|
|
||||||
this.$toast('年龄在0-40周岁被保险人,投保本险种时,最低基本保险金额为100000元,超过最低基本保险金额为10000元整数倍。')
|
|
||||||
this.nextStepFlag = true
|
|
||||||
} else {
|
|
||||||
if ((Number(defalutValue) * 10000) % (Number(currentEle.limit) * 10000) != 0) {
|
|
||||||
// this.defalutAmt = currentEle.rules[productIndex].displayAmount
|
|
||||||
this.$toast('年龄在0-40周岁被保险人,投保本险种时,最低基本保险金额为100000元,超过最低基本保险金额为10000元整数倍。')
|
|
||||||
this.nextStepFlag = true
|
|
||||||
} else {
|
|
||||||
this.mainRiskInfluenceAddRisk()
|
|
||||||
currentEle['amt'] = Number(defalutValue) * Number(currentEle.moneyUnit)
|
|
||||||
this.getTrial()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//isTrial为0 ---暂时为富娃娃两全保险(万能型)专配 输入保费校验
|
|
||||||
} else if (this.isTrial === '0' && this.chooseProducts[productIndex].isMainRisk == '0') {
|
} else if (this.isTrial === '0' && this.chooseProducts[productIndex].isMainRisk == '0') {
|
||||||
if (Number(defalutValue) < Number(min)) {
|
if (Number(defalutValue) < Number(min)) {
|
||||||
this.$toast(`交费期间为${riskFactor.yearWay}年交时,最低保费为${Number(min) * Number(riskFactor.moneyUnit)}元`)
|
this.$toast(`交费期间为${riskFactor.yearWay}年交时,最低保费为${Number(min) * Number(riskFactor.moneyUnit)}元`)
|
||||||
@@ -1783,8 +1748,11 @@ export default {
|
|||||||
riskItem['amt'] = this.trialList[index].amt
|
riskItem['amt'] = this.trialList[index].amt
|
||||||
} else {
|
} else {
|
||||||
//国富人寿桂企保重大疾病保险产品专写
|
//国富人寿桂企保重大疾病保险产品专写
|
||||||
if (this.trialList[index].productCode == 'GFRS_M0024' || this.trialList[index].productCode == 'GFRS_M0040'
|
if (
|
||||||
|| this.trialList[index].productCode == 'GFRS_M0044') {
|
this.trialList[index].productCode == 'GFRS_M0024' ||
|
||||||
|
this.trialList[index].productCode == 'GFRS_M0040' ||
|
||||||
|
this.trialList[index].productCode == 'GFRS_M0044'
|
||||||
|
) {
|
||||||
riskItem['dutyLst'] = this.trialInfos[index].duty
|
riskItem['dutyLst'] = this.trialInfos[index].duty
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user