Compare commits

...

15 Commits

Author SHA1 Message Date
zhanglei
cdb36b4dcd feature/【20251014】首页产品中心换图富贵尊享B款富贵年年E款 2025-10-14 11:41:56 +08:00
zhanglei
eb07e7a21b Merge branch 'feature/FCRS-1015国富人寿富满盈嘉B款终身寿险(分红型)-中介' into release/【20250904】鑫盈嘉两全保险(分红型)&&富满盈嘉B款终身寿险(分红型) 2025-09-04 13:20:46 +08:00
zhanglei
375807df55 feature/FCRS-1015国富人寿富满盈嘉B款终身寿险(分红型)-中介---男性为出生满28天-68周岁。女性为出生满28天-70周岁 2025-09-02 17:35:54 +08:00
zhanglei
5cd7575e63 feature/FCRS-1017国富人寿鑫盈嘉两全保险(分红型)-中介---被保人投保年龄:男性为出生满28天-70周岁。女性为出生满28天-73周岁 2025-09-02 13:50:31 +08:00
zhanglei
e498618b3c Merge remote-tracking branch 'origin/feature/FCRS-1008个险--关于金掌桂系统数据界面调整的请示' into origin/release/【20250902】个险--关于金掌桂系统数据界面调整的请示 2025-09-02 11:13:49 +08:00
zhang.weiwei
c7f847288e feat: 处理国富人寿鑫盈嘉两全保险(分红型)交费方式和交费期间关联关系 2025-08-28 01:08:13 +08:00
zhang.weiwei
c6f4bf5d62 feat:调整签字确认页面重定向实现 2025-08-27 22:32:20 +08:00
liguoxu
3c1084bc4a 部分页面描述中期交调整为保费 2025-08-15 09:41:06 +08:00
刘慧影
c6acb57ff8 Merge remote-tracking branch 'origin/feature/FCRS-935鑫管家c万能险关联富贵相伴养老年金投保特别约定弹窗提醒' into origin/release/【20250806】关于健康险渠道对核心部分功能做优化调整的请示(第三期) 2025-08-06 10:54:00 +08:00
刘慧影
5aa47557a9 Merge branch '20250722-证件截止日期回显' into origin/release/【20250806】关于健康险渠道对核心部分功能做优化调整的请示(第三期) 2025-08-06 10:52:39 +08:00
刘慧影
e374c9e813 电子投保证件截止日期回显问题 2025-07-22 15:30:24 +08:00
刘慧影
8ca15da11c 电子投保证件截止日期回显问题 2025-07-22 15:25:01 +08:00
liuhuiying
8118ecb98f feature/FCRS-935鑫管家c万能险关联富贵相伴养老年金投保特别约定弹窗提醒 2025-06-19 10:59:21 +08:00
liuhuiying
6cddad644d feature/FCRS-935鑫管家c万能险关联富贵相伴养老年金投保特别约定弹窗提醒 2025-06-18 18:02:49 +08:00
liuhuiying
a88cad7b71 feature/FCRS-935鑫管家c万能险关联富贵相伴养老年金投保特别约定弹窗提醒 2025-06-18 17:21:01 +08:00
15 changed files with 359 additions and 281 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 272 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 KiB

View File

@@ -841,14 +841,17 @@ export default {
this.isEnterAddtionRiskListFunc()
}
}
if (item.mainRiskCode == 'GFRS_M0083' || item.mainRiskCode == 'GFRS_M0098' || item.mainRiskCode == 'GFRS_M0103'|| item.mainRiskCode == 'GFRS_M0085') {
if (item.mainRiskCode == 'GFRS_M0083' || item.mainRiskCode == 'GFRS_M0098' || item.mainRiskCode == 'GFRS_M0103' || item.mainRiskCode == 'GFRS_M0085') {
this.disabledShow = true
}
if (item.hasPredictTransferPrem == '1') {
this.disabledShow = false
}
if ((item.mainRiskCode == 'GFRS_M0083' || item.mainRiskCode == 'GFRS_M0098' || item.mainRiskCode == 'GFRS_M0103'|| item.mainRiskCode == 'GFRS_M0085') && this.isFrom == 'proposal') {
if (
(item.mainRiskCode == 'GFRS_M0083' || item.mainRiskCode == 'GFRS_M0098' || item.mainRiskCode == 'GFRS_M0103' || item.mainRiskCode == 'GFRS_M0085') &&
this.isFrom == 'proposal'
) {
item.calFactorLst.forEach((i) => {
if (i.code == 'inputPrem') {
i.minPrem = 0.01
@@ -962,10 +965,14 @@ export default {
}
//键盘小数点无法输入试了一下iOS16以下没这个问题iOS16以上有这个问题 type="number"改成type="digit"就可以输入了,
this.$nextTick(() => {
var div1 = document.getElementsByClassName('van-stepper__input')
//拿到的是一个数组集合,遍历修改每一个input
for (var x in div1) {
div1[x].setAttribute('type', 'digit')
try {
var div1 = document.getElementsByClassName('van-stepper__input')
//拿到的是一个数组集合遍历修改每一个input
for (var x in div1) {
div1[x].setAttribute('type', 'digit')
}
} catch (e) {
console.error(e)
}
})
},
@@ -1096,10 +1103,11 @@ export default {
}
},
//弹框选择
toSelect(index, index1, columns) {
toSelect(productIndex, factorIndex, columns) {
this.columns = []
;[this.popupShow, this.productIndex, this.calFactorIndex] = [true, index, index1]
let currentFactor = this.chooseProducts[this.productIndex].calFactorLst
;[this.popupShow, this.productIndex, this.calFactorIndex] = [true, productIndex, factorIndex]
let currentProduct = this.chooseProducts[productIndex]
let currentFactor = currentProduct.calFactorLst
let currentEle = currentFactor[this.calFactorIndex]
let sex = this.saleInsuredPersonInfo.sex //0男 1女
//性别男女,养老保险金领取年龄不一致
@@ -1109,9 +1117,37 @@ export default {
this.columns.push(item)
}
})
} else {
this.columns = columns
return
}
if (currentProduct.mainRiskCode === 'GFRS_M0111') {
// 国富人寿鑫盈嘉两全保险(分红型) 交费期间payEndYear: 1次交清和3年交 保险期间insuYear: 5年和6年
// 现要求payEndYear选择一次交清insuYear只能选5年payEndYear选择3年交payEndYear只能选6年保险期间
if (currentEle.code == 'insuYear') {
let payEndYearFactor = currentFactor.find((factor) => factor.code == 'payEndYear')
if (!payEndYearFactor) {
return
}
let payEndYear = payEndYearFactor.showContent
if (!payEndYear) {
// 保险期间未选择, 提示选择
this.$toast(`请先选择${payEndYearFactor.name}`)
return
}
let payEndYearOption = payEndYearFactor.columns.find((item) => item.text == payEndYear)
let payEndYearVal = payEndYearOption.value
console.log('payEndYearVal--->', payEndYearVal, columns)
// 如果有值,则需约定可选择项
if (payEndYearVal) {
columns.forEach((item) => {
if ((payEndYearVal == '1000' && item.value == '5') || (payEndYearVal == '3' && item.value == '6')) {
this.columns.push(item)
}
})
}
return
}
}
this.columns = columns
},
//取消picker
onCancel() {
@@ -1127,7 +1163,7 @@ export default {
let currentEle = currentFactor[this.calFactorIndex]
if (currentEle.code == 'insuYear') {
if (value.value == '70') {
this.chooseProducts.forEach((item, index) => {
this.chooseProducts.forEach((item) => {
if (item.mainRiskCode == 'GFRS_M0086') {
item.calFactorLst.forEach((i) => {
if (i.code == 'inputAmt') {
@@ -1139,7 +1175,7 @@ export default {
}
})
} else if (value.value == '106') {
this.chooseProducts.forEach((item, index) => {
this.chooseProducts.forEach((item) => {
if (item.mainRiskCode == 'GFRS_M0086') {
item.calFactorLst.forEach((i) => {
if (i.code == 'inputAmt') {
@@ -1152,17 +1188,24 @@ export default {
})
}
}
// let sex = this.saleInsuredPersonInfo.sex //0男 1女
// //特殊设置:如果需要填写的保费/保额校验规则跟缴费期间挂钩当改变缴费期间时将输入框的值恢复默认值1
// if (currentEle.code == 'payEndYear' && this.isTrial == '0') {
// currentEle['columns'].forEach((item, index) => {
// if (item.value == value.value) {
// this.payEndYearColumnsIndex = index
// }
// })
// this.defalutAmt = 1
// }
if (this.chooseProducts[this.productIndex].mainRiskCode === 'GFRS_M0111') {
// 国富人寿鑫盈嘉两全保险(分红型) 交费期间payEndYear: 1次交清和3年交 保险期间insuYear: 5年和6年
// 现要求payEndYear选择一次交清insuYear只能选5年payEndYear选择3年交payEndYear只能选6年保险期间
if (currentEle.code == 'payEndYear') {
// 获取当前的值
let payEndYear = value.value
console.log('payEndYear--->', payEndYear)
const insuYearFactor = currentFactor.find((factor) => factor.code == 'insuYear')
if (insuYearFactor) {
console.log('insuYearFactor--->', insuYearFactor)
let matchInsureYearValue = payEndYear == '1000' ? '5' : payEndYear == '3' ? '6' : null
let matchedOption = insuYearFactor.columns.find((item) => item.value == matchInsureYearValue)
insuYearFactor.showContent = matchedOption ? matchedOption.text : ''
insuYearFactor['insuYear'] = matchedOption ? matchedOption.value : ''
}
}
}
//中介渠道交费期间为一次性交清时附加险GFRS_A0007GFRS_A0009GFRS_A0010去掉后附加险list就为空--隐藏icon
if (currentEle.code == 'payEndYear' && value.value == '1000') {
this.isEnterAddtionRiskListFunc()
@@ -1175,7 +1218,6 @@ export default {
} else {
this.isEnterAddtionRisk = true
}
if (currentEle.showContent != value.text) {
//通用规则校验
if (await this.payExceedInsured(currentEle, currentFactor, value.value)) {
@@ -1201,18 +1243,9 @@ export default {
})
this.defalutAmt = 1
}
// if(this.ruleExpression[productCode]){
// this.errorMsg = []
// this.ruleExpression[productCode].eventList.forEach(item => {
// this.$emit(item,currentFactor,currentEle.code,value);
// })
// if(this.errorMsg.length > 0){
// this.$toast(this.errorMsg[0]);
// this.popupShow = false
// return false
// }
// }
let productCode = this.chooseProducts[this.productIndex].productCode
if (this.ruleExpression[productCode]) {
this.errorMsg = []
let currentFactor = this.chooseProducts[this.productIndex].calFactorLst
@@ -1756,10 +1789,22 @@ export default {
}
})
this.chooseProducts.forEach((item, index) => {
if (item.productCode == 'GFRS_A0010' || item.productCode == 'GFRS_A0009' || item.productCode == 'GFRS_A0013' || item.productCode == 'GFRS_A0014' || item.productCode == 'GFRS_A0015' || item.productCode == 'GFRS_A0016') {
if (
item.productCode == 'GFRS_A0010' ||
item.productCode == 'GFRS_A0009' ||
item.productCode == 'GFRS_A0013' ||
item.productCode == 'GFRS_A0014' ||
item.productCode == 'GFRS_A0015' ||
item.productCode == 'GFRS_A0016'
) {
//(投保人)国富人寿附加豁免保险费重大疾病保险(B款
// 投被不同人:投保人豁免险单独搭配主险时,投保人豁免险,豁免主险保费,当投保人豁免险加两全(有长险附加险时),豁免主险保费加两全保费
if (item.productCode == 'GFRS_A0009' || item.productCode == 'GFRS_A0013' || item.productCode == 'GFRS_A0015' || item.productCode == 'GFRS_A0016') {
if (
item.productCode == 'GFRS_A0009' ||
item.productCode == 'GFRS_A0013' ||
item.productCode == 'GFRS_A0015' ||
item.productCode == 'GFRS_A0016'
) {
if (this.saleInsuredPersonInfo.relationToAppnt != 1) {
//不同人
if (showPrem001) {
@@ -2182,14 +2227,14 @@ export default {
let thisproductInfo = JSON.parse(window.localStorage.getItem('chooseProducts'))
if (thisproductInfo && thisproductInfo.length != 0) {
thisproductInfo.forEach((item) => {
if (item.productCode == 'GFRS_M0083' || item.productCode == 'GFRS_M0098' || item.productCode == 'GFRS_M0103'|| item.productCode == 'GFRS_M0085') {
if (item.productCode == 'GFRS_M0083' || item.productCode == 'GFRS_M0098' || item.productCode == 'GFRS_M0103' || item.productCode == 'GFRS_M0085') {
productCode = item.productCode
hasPredictTransferPrem = item.hasPredictTransferPrem
}
})
}
if (this.isFrom != 'proposal') {
if (productCode == 'GFRS_M0083' || productCode == 'GFRS_M0098' || productCode == 'GFRS_M0103'|| productCode == 'GFRS_M0085') {
if (productCode == 'GFRS_M0083' || productCode == 'GFRS_M0098' || productCode == 'GFRS_M0103' || productCode == 'GFRS_M0085') {
if (!that.policyNo) {
this.disabledShow = true
that.chooseProducts.forEach((item) => {
@@ -2390,14 +2435,13 @@ export default {
trialFlag = false
}
}
}else if (item.productCode == 'GFRS_M0101' || item.productCode == 'GFRS_M0102') {
} else if (item.productCode == 'GFRS_M0101' || item.productCode == 'GFRS_M0102') {
// 当投保人年龄≥75周岁时需转人工核保。核心提示语投保人年龄≥75周岁。前端提示语为投保人年龄≥75周岁需进一步人工审核
let appntAge = this.saleInsuredInfo.age
if (appntAge>=75){
if (appntAge >= 75) {
this.nextStepFlag = true
this.$toast('投保人年龄≥75周岁需进一步人工审核')
}
}
})
if (!trialFlag) {
@@ -2974,7 +3018,7 @@ export default {
}
}
}
} else if (productCode == 'GFRS_M0083' || productCode == 'GFRS_M0098' || productCode == 'GFRS_M0103'|| productCode == 'GFRS_M0085') {
} else if (productCode == 'GFRS_M0083' || productCode == 'GFRS_M0098' || productCode == 'GFRS_M0103' || productCode == 'GFRS_M0085') {
if (this.isFrom != 'proposal') {
if (!this.policyNo && defalutValue < 5) {
this.$toast('单独投保保费为大于等于50000元')
@@ -3097,7 +3141,7 @@ export default {
return this.$toast('关联保单的格式不正确')
}
}
this.$CacheUtils.setLocItem('associatedPolicyNo', this.policyNo || null)
//组装险种提交数据
let [mainRiskCode, riskDTOLst] = ['', []]
let rollInResult = '' //校验预计转入保费结果

View File

@@ -43,7 +43,7 @@ export default {
},
//投、被保险人年龄对险种的限制
ageLimit(resultData, vm, isApplicant,riskProductCode) {
let age, tips
let age, tips,maxAge
if (isApplicant) {
age = this.getSaleInsuredInfo().age
tips = '投保人年龄不适合此款险种,请选择其他险种!'
@@ -56,7 +56,22 @@ export default {
tips = '被保险人年龄不适合此款险种,请选择其他险种!'
}
let minAge = resultData.productTrialInfoDTO.ageRange && resultData.productTrialInfoDTO.ageRange.minAge
let maxAge = resultData.productTrialInfoDTO.ageRange && resultData.productTrialInfoDTO.ageRange.maxAge
if(riskProductCode == 'GFRS_M0111'){
if(this.getSaleInsuredPersonInfo().sex==0){
maxAge=70
}else {
maxAge=73
}
}else if(riskProductCode == 'GFRS_M0110'){
if(this.getSaleInsuredPersonInfo().sex==0){
maxAge=68
}else {
maxAge=70
}
}else{
maxAge = resultData.productTrialInfoDTO.ageRange && resultData.productTrialInfoDTO.ageRange.maxAge
}
;[age, minAge, maxAge] = [Number(age), Number(minAge), Number(maxAge)]
if (age > maxAge || age < minAge) {
vm.$toast(tips)

View File

@@ -64,9 +64,9 @@ export default {
needGettingKey: ['name', 'ysbb', 'ysjs', 'bzbf', 'cbjs'],
tableColumns: [
{ name: '机构', key: 'name' },
{ name: '预收期交(万元)', key: 'ysbb' },
{ name: '预收保费(万元)', key: 'ysbb' },
{ name: '预收件数(件)', key: 'ysjs' },
{ name: '承保期交(万元)', key: 'bzbf' },
{ name: '承保保费(万元)', key: 'bzbf' },
{ name: '承保件数(件)', key: 'cbjs' }
],
values: [],

View File

@@ -5,7 +5,7 @@
<div class="header-left">
<van-button>
<img :src="point" />
<span class="ml5 mr5">期交</span>
<span class="ml5 mr5">保费</span>
</van-button>
</div>
<div class="header-center">

View File

@@ -94,30 +94,30 @@ export default {
[
[
{ isInt: false, name: '机构', key: 'name' },
{ isInt: false, name: '预收期交(万元)', key: 'ysbb' },
{ isInt: false, name: '预收保费(万元)', key: 'ysbb' },
{ isInt: true, name: '预收件数(件)', key: 'ysjs' },
{ isInt: false, name: '承保期交(万元)', key: 'bzbf' },
{ isInt: false, name: '承保保费(万元)', key: 'bzbf' },
{ isInt: true, name: '承保件数(件)', key: 'cbjs' }
],
[
{ isInt: false, name: '机构', key: 'name' },
{ isInt: false, name: '预收期交(万元)', key: 'ysbb' },
{ isInt: false, name: '预收保费(万元)', key: 'ysbb' },
{ isInt: true, name: '预收件数(件)', key: 'ysjs' },
{ isInt: false, name: '承保期交(万元)', key: 'bzbf' },
{ isInt: false, name: '承保保费(万元)', key: 'bzbf' },
{ isInt: true, name: '承保件数(件)', key: 'cbjs' },
{ isInt: false, name: '承保同比', key: 'cbtb' },
{ isInt: false, name: '承保环比', key: 'cbhb' }
],
[
{ isInt: false, name: '机构', key: 'name' },
{ isInt: false, name: '承保期交(万元)', key: 'bzbf' },
{ isInt: false, name: '期交目标', key: 'bbmb' },
{ isInt: false, name: '期交目标达成率', key: 'bbmbdcl' },
{ isInt: false, name: '承保保费(万元)', key: 'bzbf' },
{ isInt: false, name: '保费目标', key: 'bbmb' },
{ isInt: false, name: '保费目标达成率', key: 'bbmbdcl' },
{ isInt: false, name: '差距', key: 'cj' }
],
[
{ isInt: false, name: '机构', key: 'name' },
{ isInt: false, name: '承保期交(万元)', key: 'bzbf' }
{ isInt: false, name: '承保保费(万元)', key: 'bzbf' }
]
],
[
@@ -131,7 +131,7 @@ export default {
],
[
{ isInt: false, name: '产品', key: 'productName' },
{ isInt: false, name: '承保期交(万元)', key: 'cbbb' },
{ isInt: false, name: '承保保费(万元)', key: 'cbbb' },
{ isInt: true, name: '承保件数(件)', key: 'cbItems' },
{ isInt: false, name: '保费占比(%)', key: 'percent' }
]

View File

@@ -11,7 +11,7 @@
<th>达成</th>
</tr>
<tr>
<td class="bleft bright">预收期交</td>
<td class="bleft bright">预收保费</td>
<td class="bright">{{ performance.ysbb | unitFilter(1) | blankFilter }}</td>
</tr>
<tr>
@@ -19,7 +19,7 @@
<td class="bright">{{ performance.ysjs | unitFilter(2) | blankFilter }}</td>
</tr>
<tr>
<td class="bleft bright">承保期交</td>
<td class="bleft bright">承保保费</td>
<td class="bright">{{ performance.bzbf | unitFilter(1) | blankFilter }}</td>
</tr>
<tr>
@@ -77,7 +77,7 @@
<table class="myTable" style="min-width: 140vw;" cellspacing="0" cellpadding="0">
<tr>
<th class="sticky">产品名称</th>
<th>承保期交(万元)</th>
<th>承保保费(万元)</th>
<th>承保件数()</th>
<th>保费占比(%)</th>
</tr>

View File

@@ -125,7 +125,7 @@ export default {
dayTimeCondition: currentDate,
// 0: 期交, 1: 人力, 2: 产品
typeIndex: 0,
dataTypes: ['期交', '人力指标', '产品'],
dataTypes: ['保费', '人力指标', '产品'],
active: 0,
// 侧边栏是否显示
isSideBarShow: false,

View File

@@ -122,10 +122,10 @@
<div class="home-product-pcenter">
<div class="pcenter-list mr20 mb10 ml15">
<div class="pcenter-item text-center">
<img src="../../../assets/images/home_product_center_m0092.png" style="width: 100%;" @click="goDetail('GFRSPRO_M0095')" />
<img src="../../../assets/images/home_product_center_m0105.png" style="width: 100%;" @click="goDetail('GFRSPRO_M0105')" />
</div>
<div class="pcenter-item text-center">
<img src="../../../assets/images/home_product_center_m0094.png" style="width: 100%;" @click="goDetail('GFRSPRO_M0094')" />
<img src="../../../assets/images/home_product_center_m0109.png" style="width: 100%;" @click="goDetail('GFRSPRO_M0109')" />
</div>
</div>
</div>
@@ -157,7 +157,7 @@ export default {
isGoodStart: '0', // 是否开门红 0-默认
isPersonalInsu: true, // 是否个险渠道
isInner: false,
organizationTheads: ['排名', '机构', '当日预收(期交)', '月预收期交', '日承保期交', '月承保期交'],
organizationTheads: ['排名', '机构', '当日预收(保费)', '月预收保费', '日承保保费', '月承保保费'],
performanceTheads: ['排名', '姓名', '营销服务部', '预收期交', '承保期交'],
organizationData: [],
performanceData: [],

View File

@@ -64,6 +64,7 @@
:flag="true"
></FieldDatePicter>
<FieldDatePicter
v-if="!userInfo.effectiveDateType"
:v-validate="{ required: certiexpiredateRequired }"
required
label="证件截止日期"
@@ -1085,7 +1086,7 @@
this.userInfo.idType = data.customerIdType //证件类型
this.userInfo.idNo = data.customerIdNumber //证件类别
this.userInfo.certificateValidate = data.idEffectStartDate //证件起始日期
if (data.idEffectEndDate == '9999-12-31') {
if (data.idEffectEndDate == '9999-12-31' && !data.idEffectEndDate) {
this.userInfo.effectiveDateType = true //是否长期
} else {
this.userInfo.certiexpiredate = data.idEffectEndDate //证件截止日期
@@ -1557,9 +1558,10 @@
effectiveDataTypeChange(val) {
//勾选长期状态时,证件截止日期置空
if (val) {
this.userInfo.certiexpiredate = ''
this.userInfo.certiexpiredate = '9999-12-31'
this.certiexpiredateRequired = false
} else {
this.userInfo.certiexpiredate = ''
this.certiexpiredateRequired = true
}
},

View File

@@ -82,6 +82,7 @@
:readonly="isAppnt"
></FieldDatePicter>
<FieldDatePicter
v-if="!userInfo.effectiveDateType"
v-validate="{ required: certiexpiredateRequired }"
label="证件截止日期"
name="证件截止日期"
@@ -1274,7 +1275,7 @@
this.userInfo.certificateValidate = data.idEffectStartDate //证件起始日期
// this.userInfo.certiexpiredate = data.idEffectEndDate //证件截止日期
// this.userInfo.effectiveDateType = data.idEffectEndDate == '9999-12-31' //是否长期
if (data.idEffectEndDate == '9999-12-31') {
if (data.idEffectEndDate == '9999-12-31' && !data.idEffectEndDate) {
this.userInfo.effectiveDateType = true //是否长期
} else {
this.userInfo.certiexpiredate = data.idEffectEndDate //证件截止日期
@@ -1875,11 +1876,12 @@
effectiveDataTypeChange(val) {
//勾选长期状态时,证件截止日期置空
if (val) {
this.userInfo.certiexpiredate = ''
this.userInfo.certiexpiredate = '9999-12-31'
// this.isRequired = false
// this.idLimit = true
this.certiexpiredateRequired = false
} else {
this.userInfo.certiexpiredate = ''
this.certiexpiredateRequired = true
// this.isRequired = true
// this.idLimit = false

View File

@@ -1200,6 +1200,7 @@ export default {
}
},
goUrl() {
window.localStorage.setItem('isFirstRead', '1')
let that = this
if (window.localStorage.getItem('sign-val') == '3') {
if (that.agentSignStatus == '3') {
@@ -1328,7 +1329,6 @@ export default {
}
}
}
if (path) {
that.$jump({
flag: 'h5',

View File

@@ -38,6 +38,17 @@
</van-button>
</div>
</div>
<van-dialog v-model="specialAgreementShow" :showConfirmButton="false">
<div slot="title">
<p style="font-weight: 600">特别约定</p>
</div>
<div style="padding: 20px 30px 10px;font-size: 14px;">
<div style="line-height: 25px;text-indent: 2em;">{{riskName}}合同有效的情况下投保单号/保单号{{ associatedPolicyNo }}的生产类保险金及现金红利如有自动转为{{riskName}}的保险费</div>
</div>
<div style="text-align: center;margin-bottom: 15px;">
<van-button plain type="primary" color="#1989fa" style="padding:0px 35px;font-size: 14px;" @click="specialAgreementShow = false">本人已阅读并通义上述特别约定内容</van-button>
</div>
</van-dialog>
</div>
</template>
<script>
@@ -63,6 +74,11 @@
chaoluButtonDisabled: true,
chaoluStatus: false,
productType: '',
specialAgreementShow: false,
associatedPolicyNo: null,
chooseProductCodes: null,
riskName: null,
isFirstRead: null,
}
},
components: {
@@ -72,6 +88,13 @@
[NoticeBar.name]: NoticeBar
},
created(){
this.associatedPolicyNo = window.localStorage.getItem('associatedPolicyNo')
this.riskName = window.localStorage.getItem('riskName')
this.chooseProductCodes = window.localStorage.getItem('chooseProductCodes') && JSON.parse(window.localStorage.getItem('chooseProductCodes'))
if(window.localStorage.getItem('isFirstRead') && window.localStorage.getItem('isFirstRead') == '1' && this.associatedPolicyNo && this.associatedPolicyNo != 'null' && this.chooseProductCodes && this.chooseProductCodes.includes('GFRS_M0098')){
window.localStorage.setItem('isFirstRead', '0')
this.specialAgreementShow = true
}
if(this.$route.query.currentIndex){
this.Time = true
this.isPreview = true
@@ -222,6 +245,7 @@
window.localStorage.setItem('insuredSignFile',JSON.stringify(this.fileList))
}
if(this.fileList[this.current - 1].documentCode == '5') {
window.localStorage.setItem('isFirstRead', '1')
this.$router.push({
path: '/sale/SignatureConfirmation',
query: {

View File

@@ -1,18 +1,12 @@
<template>
<div class='insuranceInformation-container' style="padding: 15px;">
<div style="display: flex;align-items: center;font-weight: bold;" class="fs20">
<span style="width: 3px;background: red;height: 25px;"></span>
<span v-if="signVal == '0' || signVal == '2'" style="margin-left: 5px;">
投保{{signName}}
</span>
<span v-if="signVal == '1'" style="margin-left: 5px;">
被保险人{{signName}}
</span>
<span v-if="signVal == '3'" style="margin-left: 5px;">
代理人{{signName}}
</span>
<div class="insuranceInformation-container" style="padding: 15px">
<div style="display: flex; align-items: center; font-weight: bold" class="fs20">
<span style="width: 3px; background: red; height: 25px"></span>
<span v-if="signVal == '0' || signVal == '2'" style="margin-left: 5px"> 投保人{{ signName }} </span>
<span v-if="signVal == '1'" style="margin-left: 5px"> 被保险{{ signName }} </span>
<span v-if="signVal == '3'" style="margin-left: 5px"> 代理人{{ signName }} </span>
</div>
<div style="margin-top: 15px;font-weight: bold;line-height: 32px;font-size: 16px;" class="fs20">
<div style="margin-top: 15px; font-weight: bold; line-height: 32px; font-size: 16px" class="fs20">
<span v-if="signVal == '3'">
1.接下来您作为代理人将进行投保文件的签字请在签字前确保您已仔细阅读投保文件并了解投保文件的内容和含义确定投保单各项信息准确无误签字完成并成功提交说明您正式向我司提交投保申请
</span>
@@ -26,208 +20,209 @@
1.接下来您作为被保险人/监护人将进行投保文件的签字请在签字前确保您已仔细阅读投保文件并了解投保文件的内容和含义确定投保单各项信息准确无误签字完成并成功提交说明您正式向我司提交投保申请
</span>
</div>
<div style="border-bottom: 1px dashed #eee;padding-bottom: 15px;margin-top: 15px;">
<p style="font-size: 16px;font-weight: bold;">2.您将为以下文件进行统一签名</p>
<div v-for="item in fileList" style="margin-top: 15px;display: flex;justify-content: space-between;">
<span style="font-size: 16px;color: red;opacity: 0.7;width: 60%;display: inline-block;">{{item.name}}</span>
<span v-if="signstatus == '1'" style="display: flex;align-items: center;display: inline-block;width: 40%;">
<img :src="src" style="margin-left: 15px;width: 16px;"/>
<span style="font-size: 16px;color: #03ceaf;margin-left: 10px;">签署完成</span>
<div style="border-bottom: 1px dashed #eee; padding-bottom: 15px; margin-top: 15px">
<p style="font-size: 16px; font-weight: bold">2.您将为以下文件进行统一签名</p>
<div v-for="item in fileList" style="margin-top: 15px; display: flex; justify-content: space-between">
<span style="font-size: 16px; color: red; opacity: 0.7; width: 60%; display: inline-block">{{ item.name }}</span>
<span v-if="signstatus == '1'" style="display: flex; align-items: center; display: inline-block; width: 40%">
<img :src="src" style="margin-left: 15px; width: 16px" />
<span style="font-size: 16px; color: #03ceaf; margin-left: 10px">签署完成</span>
</span>
</div>
</div>
<div style="margin-top: 15px;display: flex;align-items: center;" class="fs20">
<span v-if="signVal == '3'" style="font-size: 16px;font-weight: bold;">代理人签名</span>
<span v-if="signVal == '0' || signVal == '2'" style="font-size: 16px;font-weight: bold;">投保人签名</span>
<span v-if="signVal == '1' && insuredAge >= 18" style="font-size: 16px;font-weight: bold;">被保险人签名</span>
<span v-if="signVal == '1' && insuredAge < 18" style="font-size: 16px;font-weight: bold;">被保险人/监护人签名</span>
<van-button type="danger" size="small" round style="margin-left: 20px;height: 32px;font-size: 16px;" @click="gosign" class="fs20">
{{signstatus ? '重新签名' : '签名'}}
<div style="margin-top: 15px; display: flex; align-items: center" class="fs20">
<span v-if="signVal == '3'" style="font-size: 16px; font-weight: bold">代理人签名</span>
<span v-if="signVal == '0' || signVal == '2'" style="font-size: 16px; font-weight: bold">投保人签名</span>
<span v-if="signVal == '1' && insuredAge >= 18" style="font-size: 16px; font-weight: bold">被保险人签名</span>
<span v-if="signVal == '1' && insuredAge < 18" style="font-size: 16px; font-weight: bold">被保险人/监护人签名</span>
<van-button type="danger" size="small" round style="margin-left: 20px; height: 32px; font-size: 16px" @click="gosign" class="fs20">
{{ signstatus ? '重新签名' : '签名' }}
</van-button>
</div>
<div>
<img v-if="signstatus" :src="signImgUrl" style="height: 34px;margin-left: 20px;width: auto;"/>
<img v-if="signstatus" :src="signImgUrl" style="height: 34px; margin-left: 20px; width: auto" />
</div>
<div class='bg-white bottom-btn'>
<van-button :disabled="nextDisabled" type='danger' size='normal' style="font-size: 16px;" block v-no-more-click='1000' @click="gonext">
<div class="bg-white bottom-btn">
<van-button :disabled="nextDisabled" type="danger" size="normal" style="font-size: 16px" block v-no-more-click="1000" @click="gonext">
完成阅读并签署
</van-button>
</div>
<van-dialog v-model="guardianshow" :showConfirmButton="false">
<div slot="title">
<p style="color: #E9332E;">监护人姓名</p>
<p style="color: #e9332e">监护人姓名</p>
</div>
<div class="guardianContent" style="padding: 20px 30px 30px;font-size: 14px;">
<van-field v-model="guardianName" label="" name="监护人姓名" placeholder="请输入"/>
<div class="guardianContent" style="padding: 20px 30px 30px; font-size: 14px">
<van-field v-model="guardianName" label="" name="监护人姓名" placeholder="请输入" />
</div>
<div style="text-align: center;margin-bottom: 30px;">
<van-button round type="danger" size="small" style="padding:0px 35px;font-size: 14px;" @click="gosign">确定</van-button>
<div style="text-align: center; margin-bottom: 30px">
<van-button round type="danger" size="small" style="padding: 0px 35px; font-size: 14px" @click="gosign">确定</van-button>
</div>
</van-dialog>
</div>
</template>
<script>
import { saveInformation } from '@/api/ebiz/sale/sale'
import isChoose from '@/assets/images/u20257.png'
export default {
data() {
return {
src: isChoose,
fileList:[],
signImgUrl:'data:image/gif;base64,',
signstatus: false,
signVal: '',
signName: '',
insuredAge: '',
guardianshow: false,
guardianName: '',
nextDisabled:true,
}
},
components: {},
created(){
setTimeout(() => {
// eslint-disable-next-line no-undef
EWebBridge.webCallAppInJs('webview_left_button', {
img: this.$assetsUrl + 'images/del-close-btn@3x.png',
intercept: '1' //是否拦截原生返回事件 1是 其他否
import { saveInformation } from '@/api/ebiz/sale/sale'
import isChoose from '@/assets/images/u20257.png'
export default {
data() {
return {
src: isChoose,
fileList: [],
signImgUrl: 'data:image/gif;base64,',
signstatus: false,
signVal: '',
signName: '',
insuredAge: '',
guardianshow: false,
guardianName: '',
nextDisabled: true
}
},
components: {},
created() {
setTimeout(() => {
// eslint-disable-next-line no-undef
EWebBridge.webCallAppInJs('webview_left_button', {
img: this.$assetsUrl + 'images/del-close-btn@3x.png',
intercept: '1' //是否拦截原生返回事件 1是 其他否
})
}, 100)
window.appCallBack = this.appCallBack
},
mounted() {
this.signVal = window.localStorage.getItem('sign-val')
this.insuredAge = window.localStorage.getItem('insuredAge')
document.body.style.backgroundColor = '#fff'
let thisfilelist = ''
if (this.signVal == '3') {
thisfilelist = JSON.parse(window.localStorage.getItem('agentSignFile'))
this.signName = window.localStorage.getItem('recmdName')
} else if (this.signVal == '0' || this.signVal == '2') {
thisfilelist = JSON.parse(window.localStorage.getItem('appntSignFile'))
this.signName = window.localStorage.getItem('appntName')
} else if (this.signVal == '1') {
thisfilelist = JSON.parse(window.localStorage.getItem('insuredSignFile'))
this.signName = window.localStorage.getItem('insuredName')
}
console.log(thisfilelist)
thisfilelist.forEach((item) => {
if (item.documentType == '1') {
this.fileList.push({
name: item.documentName,
status: '1'
})
}, 100)
window.appCallBack = this.appCallBack
},
mounted() {
this.signVal = window.localStorage.getItem('sign-val')
this.insuredAge = window.localStorage.getItem('insuredAge')
document.body.style.backgroundColor = '#fff'
let thisfilelist = ''
if(this.signVal == '3') {
thisfilelist = JSON.parse(window.localStorage.getItem('agentSignFile'))
this.signName = window.localStorage.getItem('recmdName')
} else if(this.signVal == '0' || this.signVal == '2') {
thisfilelist = JSON.parse(window.localStorage.getItem('appntSignFile'))
this.signName = window.localStorage.getItem('appntName')
} else if(this.signVal == '1') {
thisfilelist = JSON.parse(window.localStorage.getItem('insuredSignFile'))
this.signName = window.localStorage.getItem('insuredName')
}
console.log(thisfilelist)
thisfilelist.forEach(item => {
if(item.documentType == '1') {
this.fileList.push({
name:item.documentName,
status: '1'
})
this.signH5Img = sessionStorage.getItem('signH5Img')
if (JSON.parse(window.sessionStorage.getItem('signH5Img'))) {
if (JSON.parse(window.sessionStorage.getItem('signH5Img')).type == '签名' && JSON.parse(window.sessionStorage.getItem('signH5Img')).val)
this.signstatus = true
this.signImgUrl = this.signImgUrl + JSON.parse(window.sessionStorage.getItem('signH5Img')).val
}
if (window.sessionStorage.getItem('signH5Val')) {
this.nextDisabled = false
}
},
methods: {
gosign() {
window.localStorage.setItem('orderNo', this.$route.query.orderNo)
let signInfo = {
type: '签名',
text: '',
keyWord: ''
}
if (this.signVal == '0' || this.signVal == '2') {
signInfo.text = window.localStorage.getItem('appntName')
signInfo.keyWord = '投保锟斤拷:'
}
if (this.signVal == '1') {
signInfo.text = window.localStorage.getItem('insuredName')
signInfo.keyWord = '被保锟斤拷:'
}
if (this.signVal == '3') {
signInfo.text = window.localStorage.getItem('recmdName')
signInfo.keyWord = '代理锟斤拷:'
}
if (this.insuredAge < 18 && !this.guardianName && this.signVal == '1') {
this.guardianshow = true
} else {
if (this.insuredAge < 18 && this.signVal == '1') {
signInfo.text = this.guardianName
}
window.sessionStorage.setItem('signInfo', JSON.stringify(signInfo))
setTimeout(() => {
window.location.href = this.$mainUrl + '/signH5/1.html?time=' + new Date().getTime()
}, 0)
}
},
gonext() {
let params = {
orderType: 'SIGN_MERGED_ORDER',
orderDTO: {
orderInfoDTO: {
orderNo: this.$route.query.orderNo
},
baseEncryp: window.sessionStorage.getItem('signH5Val'),
signValue: JSON.parse(window.sessionStorage.getItem('signH5Img')).val,
signType: window.localStorage.getItem('sign-val'),
ebizSignDTOS: []
}
}
let thisfilelist = ''
if (this.signVal == '3') {
thisfilelist = JSON.parse(window.localStorage.getItem('agentSignFile'))
} else if (this.signVal == '0' || this.signVal == '2') {
thisfilelist = JSON.parse(window.localStorage.getItem('appntSignFile'))
} else if (this.signVal == '1') {
thisfilelist = JSON.parse(window.localStorage.getItem('insuredSignFile'))
}
thisfilelist.forEach((item) => {
if (item.documentType == '1') {
params.orderDTO.ebizSignDTOS.push({
signOrRead: 'sign',
signId: item.signId,
orderNo: this.$route.query.orderNo,
documentCode: item.documentCode,
documentStatus: '3',
documentType: '1',
signType: item.signType
})
}
})
this.signH5Img = sessionStorage.getItem('signH5Img')
if(JSON.parse(window.sessionStorage.getItem('signH5Img'))) {
if(JSON.parse(window.sessionStorage.getItem('signH5Img')).type == '签名' && JSON.parse(window.sessionStorage.getItem('signH5Img')).val)
this.signstatus = true
this.signImgUrl = this.signImgUrl + JSON.parse(window.sessionStorage.getItem('signH5Img')).val
}
if(window.sessionStorage.getItem('signH5Val')){
this.nextDisabled = false
}
},
methods: {
gosign(){
window.localStorage.setItem('orderNo',this.$route.query.orderNo)
let signInfo = {
type:'签名',
text:'',
keyWord: ''
}
if(this.signVal == '0' || this.signVal == '2') {
signInfo.text = window.localStorage.getItem('appntName')
signInfo.keyWord = '投保锟斤拷:'
}
if(this.signVal == '1'){
signInfo.text = window.localStorage.getItem('insuredName')
signInfo.keyWord = '被保锟斤拷:'
}
if(this.signVal == '3') {
signInfo.text = window.localStorage.getItem('recmdName')
signInfo.keyWord = '代理锟斤拷:'
}
if(this.insuredAge < 18 && !this.guardianName && this.signVal == '1') {
this.guardianshow = true
} else {
if(this.insuredAge < 18 && this.signVal == '1') {
signInfo.text = this.guardianName
}
window.sessionStorage.setItem('signInfo',JSON.stringify(signInfo))
window.location.href = this.$mainUrl + '/signH5/1.html'
// window.location.href = 'http://'+window.location.host + '/signH5/1.html'
}
},
gonext(){
let params = {
orderType: 'SIGN_MERGED_ORDER',
orderDTO: {
orderInfoDTO: {
orderNo: this.$route.query.orderNo
},
baseEncryp: window.sessionStorage.getItem('signH5Val'),
signValue: JSON.parse(window.sessionStorage.getItem('signH5Img')).val,
signType: window.localStorage.getItem('sign-val'),
ebizSignDTOS: []
}
}
let thisfilelist = ''
if(this.signVal == '3') {
thisfilelist = JSON.parse(window.localStorage.getItem('agentSignFile'))
} else if(this.signVal == '0' || this.signVal == '2') {
thisfilelist = JSON.parse(window.localStorage.getItem('appntSignFile'))
} else if(this.signVal == '1') {
thisfilelist = JSON.parse(window.localStorage.getItem('insuredSignFile'))
}
thisfilelist.forEach(item => {
if(item.documentType == '1') {
params.orderDTO.ebizSignDTOS.push({
signOrRead: 'sign',
signId:item.signId,
orderNo: this.$route.query.orderNo,
documentCode: item.documentCode,
documentStatus: '3',
documentType: '1',
signType: item.signType
saveInformation(params).then((res) => {
if (res.result == '0') {
if (window.sessionStorage.getItem('shareUrl')) {
this.$router.push({
path: '/sale/SignatureConfirmation' + window.sessionStorage.getItem('shareUrl')
})
}
})
saveInformation(params).then(res=>{
if(res.result == '0') {
if(window.sessionStorage.getItem('shareUrl')){
this.$router.push({
path: '/sale/SignatureConfirmation'+window.sessionStorage.getItem('shareUrl')
})
} else {
this.$router.push({
path: '/sale/SignatureConfirmation',
query: {
orderNo: this.$route.query.orderNo
}
})
}
} else {
this.$toast(res.resultMessage)
}
})
},
appCallBack(data) {
if (data.trigger == 'left_button_click') {
if (this.videoShow) {
this.$jump({
flag: 'navigation',
extra: {
title: '签名确认',
hiddenRight: '1'
this.$router.push({
path: '/sale/SignatureConfirmation',
query: {
orderNo: this.$route.query.orderNo
}
})
return (this.videoShow = false)
}
return this.$dialog.confirm({
} else {
this.$toast(res.resultMessage)
}
})
},
appCallBack(data) {
if (data.trigger == 'left_button_click') {
if (this.videoShow) {
this.$jump({
flag: 'navigation',
extra: {
title: '签名确认',
hiddenRight: '1'
}
})
return (this.videoShow = false)
}
return this.$dialog
.confirm({
className: 'dialog-delete',
title: '提示',
message: '是否确认退出?',
@@ -251,34 +246,30 @@
.catch(() => {
return
})
}
},
},
computed: {
},
beforeRouteLeave(to, from, next) {
document.body.style.backgroundColor = ''
window.sessionStorage.removeItem('signH5Img')
window.sessionStorage.removeItem('signH5Val')
window.sessionStorage.removeItem('signInfo')
next()
},
watch: {
}
}
}
},
computed: {},
beforeRouteLeave(to, from, next) {
document.body.style.backgroundColor = ''
window.sessionStorage.removeItem('signH5Img')
window.sessionStorage.removeItem('signH5Val')
window.sessionStorage.removeItem('signInfo')
next()
},
watch: {}
}
</script>
<style lang='scss' scoped>
.guardianContent{
/deep/ .van-cell{
border: 1px solid #eee;
}
<style lang="scss" scoped>
.guardianContent {
/deep/ .van-cell {
border: 1px solid #eee;
}
.fs20{
font-size: 16px;
.van-button__text{
padding: 8px 16px;
}
}
.fs20 {
font-size: 16px;
.van-button__text {
padding: 8px 16px;
}
}
</style>