Compare commits

...

78 Commits

Author SHA1 Message Date
zhanglei
0ded892703 release/【20251020】银保非实时单金掌桂投保系统需求&&关于金掌桂非实时邮件发送投保资料功能需求---首页图先改成项目里取 2025-10-23 09:36:16 +08:00
zhanglei
5f485c90ad release/【20251020】银保非实时单金掌桂投保系统需求&&关于金掌桂非实时邮件发送投保资料功能需求---首页图先改成项目里取 2025-10-23 09:29:52 +08:00
刘慧影
19db3b7f57 Merge branch 'feature/FM20250523024-银保非实时单金掌桂投保系统需求' into release/【20251020】银保非实时单金掌桂投保系统需求&&关于金掌桂非实时邮件发送投保资料功能需求 2025-10-22 09:13:00 +08:00
刘慧影
f25f1d214e fix:首页配置图缓存问题 2025-10-22 09:11:37 +08:00
刘慧影
cf439b5bbe Merge branch 'feature/FM20250523024-银保非实时单金掌桂投保系统需求' into release/【20251020】银保非实时单金掌桂投保系统需求&&关于金掌桂非实时邮件发送投保资料功能需求 2025-10-22 08:59:22 +08:00
zhanglei
36b81f9e8e Merge remote-tracking branch 'origin/feature/FCRS-1036关于金掌桂非实时邮件发送投保资料功能需求' into release/【20251020】银保非实时单金掌桂投保系统需求&&关于金掌桂非实时邮件发送投保资料功能需求 2025-10-20 11:23:35 +08:00
hz
2a54039d4a feat: 隐藏被保人有无社保选项 2025-10-17 09:11:44 +08:00
zhanglei
ff8d284915 Merge branch 'feature/【20251014】首页产品中心换图富贵尊享B款富贵年年E款' into release/【20251014】首页产品中心换图富贵尊享B款富贵年年E款 2025-10-14 11:54:18 +08:00
zhanglei
cdb36b4dcd feature/【20251014】首页产品中心换图富贵尊享B款富贵年年E款 2025-10-14 11:41:56 +08:00
hz
38398cf5f3 fix: 取消orderNoStr的显示内容 2025-10-13 13:48:14 +08:00
hz
ca50c3efff 修复告知信息错误 2025-10-11 17:26:34 +08:00
zhanglei
9e2812d5b3 针对自动核保通过待批量扣费的,
提示语改成:核保通过,待核心业务系统批量扣费。
2025-10-10 13:19:26 +08:00
hz
4ab1be1483 feat: 去除身高和体重的信息 2025-10-10 10:53:46 +08:00
hz
5141eba11b Reapply "feat: 被保人身高体重可以录入"
This reverts commit c9e7b962e3.
2025-10-10 10:49:10 +08:00
hz
c9e7b962e3 Revert "feat: 被保人身高体重可以录入"
This reverts commit 10bfe11813.
2025-10-10 10:44:19 +08:00
hz
10bfe11813 feat: 被保人身高体重可以录入 2025-10-09 11:48:20 +08:00
75fd1b747d fix: 告知项目某些环境下条目出错的问题
从告知项目下一步之后, 然后重新点击告知项目,下面条目会丢失一些东西
2025-09-26 11:14:50 +08:00
71e572b4ea fix: 修复点击生成投保单号时证件截止日期选项自动变更的问题 2025-09-26 10:40:16 +08:00
effba15c93 修正提交的信息参数 2025-09-25 17:33:54 +08:00
dong.ai
44026f1184 邮件发送loading2 2025-09-25 17:22:53 +08:00
dong.ai
01caa01272 发送邮件时添加loading 2025-09-25 16:19:02 +08:00
dong.ai
035b3500aa 修改邮件发送 2025-09-25 13:37:33 +08:00
e99cf535b3 feat: 增加相应对象impartTypeNumber的枚举内容 2025-09-24 19:09:19 +08:00
ab92138982 feat: 按需隐藏相应的字段内容 2025-09-24 16:05:08 +08:00
e92c8cc095 fix: 修复单页 pdf 无法点击本人已阅读按钮 2025-09-24 14:32:19 +08:00
zhanglei
26133d07c8 Merge branch 'feature/FCRS-1020中介渠道-鑫管家E款终身寿险(万能型)' into release/【20250923】中介渠道-鑫管家E款终身寿险(万能型)&&分红险加风险提示语 2025-09-23 17:53:57 +08:00
dong.ai
772201f2f0 修改发送邮件后展示内容 2025-09-23 13:26:40 +08:00
dong.ai
b0937ceb58 修改按钮展示判断 2025-09-22 16:01:42 +08:00
dong.ai
693a1140fd 非实时投保邮件发送 2025-09-22 14:58:20 +08:00
刘慧影
dd1ce78a4b fix:银保列表编辑跳转页面 2025-09-18 18:37:05 +08:00
63e0869065 fix: 修复变量错误的问题 2025-09-11 17:55:01 +08:00
e61dfe0d17 fix: 加入riskDTOLst变量检测 2025-09-11 16:25:16 +08:00
f8d84e73c7 feat: 增加分红型之后显示风险提示 2025-09-11 15:35:46 +08:00
刘慧影
f43135cdf2 fix: 签字页branchType 2025-09-09 09:29:57 +08:00
刘慧影
0537596d95 feat: 文件阅读下滑至底部完成阅读 2025-09-09 09:15:00 +08:00
liuhuiying
268d53128e fix: 投保人工作单位 2025-09-06 19:35:09 +08:00
liuhuiying
aa13d3c8e7 fix: 测试问题修复 2025-09-06 16:13:08 +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
zhanglei
4bb43a244c feature/FCRS-1020中介渠道-鑫管家E款终身寿险(万能型) 2025-09-01 09:56:17 +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
liuhuiying
523e1c9c8f 投保人信息投保单号效验、生成投保单号调整 2025-08-04 21:44:12 +08:00
liuhuiying
fc3b654b08 卡单投保录入隐藏同投保人 2025-07-30 22:01:24 +08:00
刘慧影
0c60363117 卡单老数据证件截止日期、家庭地址保持不变 2025-07-23 13:08:31 +08:00
刘慧影
f6ae890e89 卡单隐藏清空家庭住址 2025-07-23 11:08:27 +08:00
刘慧影
e374c9e813 电子投保证件截止日期回显问题 2025-07-22 15:30:24 +08:00
刘慧影
8ca15da11c 电子投保证件截止日期回显问题 2025-07-22 15:25:01 +08:00
刘慧影
241c30266a 卡单隐藏证件截止日期、联系地址、详细地址 2025-07-21 20:00:20 +08:00
刘慧影
01af6bb9ac 非实时单核保提示语 2025-07-17 11:20:52 +08:00
zhanglei
7989e411ac 非实时单核保提示语 2025-07-16 13:35:32 +08:00
zhanglei
a5672152eb 非实时单核保提示语 2025-07-16 13:21:30 +08:00
liuhuiying
3591bce7a4 FM20250523024-银保非实时单金掌桂投保系统需求 2025-07-03 09:20:41 +08:00
liuhuiying
cdd5ac826a FM20250523024-银保非实时单金掌桂投保系统需求 2025-07-01 11:49:47 +08:00
liuhuiying
42b0ac995a FM20250523024-银保非实时单金掌桂投保系统需求 2025-07-01 11:24:40 +08:00
liuhuiying
787369053c FM20250523024-银保非实时单金掌桂投保系统需求 2025-06-30 13:39:45 +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
zhanglei
d6bbdae734 feature/【20250605】银保续期管理列表投保人被保险人展示调整 2025-06-05 13:34:29 +08:00
zhang.lei3
89aea09de2 feature/FCRS-949国富人寿鑫管家D款终身寿险(万能型)-中介渠道 2025-05-09 09:50:29 +08:00
zhang.lei3
7a81b4e6eb feature/FCRS-949国富人寿鑫管家D款终身寿险(万能型)-中介渠道 2025-05-09 09:30:59 +08:00
zhang.weiwei
d13ce27e3c hotfix-从路由获取token存储到LocalStorage时新增token是否为空判断 2025-04-30 23:00:01 +08:00
zhang.lei3
a1895b540c Merge branch 'feature/【20250429】富贵相伴养老年金保险&&富锦养老年金保险加被保人30天年龄校验' 2025-04-30 21:04:03 +08:00
zhang.lei3
5babd3d029 feature/【20250429】富贵相伴养老年金保险&&富锦养老年金保险加被保人30天年龄校验 2025-04-29 15:57:04 +08:00
zhang.lei3
89d4fb1871 feature/FCRS-922国富人寿富锦养老年金保险---中介的 2025-04-21 14:27:45 +08:00
zhang.lei3
f7982ac052 feature/FCRS-922国富人寿富锦养老年金保险---中介的 2025-04-21 11:07:20 +08:00
zhang.lei3
bde1de79ac feature/FCRS-922国富人寿富锦养老年金保险---中介的 2025-04-21 10:44:43 +08:00
zhang.lei3
3631f57ee2 feature/FCRS-922国富人寿富锦养老年金保险---中介的 2025-04-21 10:33:15 +08:00
zhang.lei3
c2014d9e4b feature/FCRS-918国富人寿富贵相伴养老年金保险-个险渠道 2025-04-17 15:32:21 +08:00
zhang.lei3
a0a9b5637e feature/FCRS-918国富人寿富贵相伴养老年金保险-个险渠道 2025-04-17 15:19:01 +08:00
zhang.lei3
dd11f4b4e0 feature/FCRS-918国富人寿富贵相伴养老年金保险-个险渠道 2025-04-17 14:33:49 +08:00
zhang.weiwei
f1f8c3ddae fix-出单详情按月份查询最后一天调整为31号 2025-04-02 10:43:35 +08:00
44 changed files with 3140 additions and 2028 deletions

View File

@@ -36,3 +36,12 @@ export function getSpecialAreaProList(data) {
data
})
}
// 首页底部图
export function getHomeBottomPic(data) {
return request({
url: getUrl('/app/code/getCodeValue', 1),
method: 'post',
data
})
}

View File

@@ -76,6 +76,24 @@ export function getOrderDetail1(data) {
data
})
}
// 投保单邮件发送
export function getSendEmail(data) {
return request({
url: getUrl('/sale/order/sendEmail', 1),
method: 'post',
data
})
}
// 投保单邮件发送
export function getDownloadZip(data) {
return request({
url: getUrl('/sale/order/downloadZip?orderNo=' + data.orderNo, 1),
method: 'get',
data,
responseType: 'blob'
})
}
// 获取验证码
export function getAuthCode(data) {
return request({
@@ -104,7 +122,7 @@ export function uploadImg(data) {
// 上传图片
export function uploadImg2(data) {
return request1({
url: getUrl('/uploadImage?imgType='+store.getters.getUploadImgType+'&orderNo='+store.getters.getUploadImgOrderNo, 1, 2),
url: getUrl('/uploadImage?imgType=' + store.getters.getUploadImgType + '&orderNo=' + store.getters.getUploadImgOrderNo, 1, 2),
method: 'post',
data
})

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 272 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 KiB

View File

@@ -3947,6 +3947,35 @@ export default {
{
code: "GFRS_M0094__cashValue",
label: "元"
},
{
//养老年金开始领取年龄
code: 'pensionAge',
label: '岁'
},
{
code: 'AppntCriticalDiseaseExemptionPremiumD',
label: '元'
},
{
code: 'AppntModerateOrMinorDiseaseExemptionPremiumD',
label: '元'
},
{
code: 'AppntDeathOrTotalDiseaseExemptionPremiumD',
label: '元'
},
{
code: 'InsuredCriticalDiseaseExemptionPremiumD',
label: '元'
},
{
code: 'InsuredModerateOrMinorDiseaseExemptionPremiumD',
label: '元'
},
{
code: 'InsuredDeathOrTotalDiseaseExemptionPremiumD',
label: '元'
}
],
// 卡单与短期险重新投保选择职业类别时,两个模块职业类型数据的排序不同,创建这个数据字典,用于在选择职业类别时,作为一个参数传入组件,

View File

@@ -252,6 +252,9 @@ service.interceptors.request.use(
// respone拦截器
service.interceptors.response.use(
response => {
if (response.config.responseType) {
return response.data
}
let res = response.data
if (
(configApp.API_VERSION == 'v2' || configApp.API_VERSION == 'v3') &&

View File

@@ -52,10 +52,10 @@
<span>保单号</span><span>{{ item.contNo }}</span>
</p>
<p>
<span>保人</span><span>{{ item.insuredName }}</span>
<span>保人</span><span>{{ item.appntName }}</span>
</p>
<p>
<span>被保险人</span><span>{{ item.appntName }}</span>
<span>被保险人</span><span>{{ item.insuredName }}</span>
</p>
<p v-if="active == 3">
<span>转账银行</span><span>{{ item.bankName }}</span>

View File

@@ -204,7 +204,9 @@ export default {
//初始化信息
async init() {
if (this.isWeixin) {
window.localStorage.setItem('token', this.$route.query.token)
if (this.$route.query.token) {
window.localStorage.setItem('token', this.$route.query.token)
}
if (this.$route.query.signInvalid) {
sessionStorage.setItem('signInvalid', this.$route.query.signInvalid)
}

View File

@@ -151,7 +151,9 @@ export default {
// 初始化
async init() {
if (this.isWeixin) {
window.localStorage.setItem('token', this.$route.query.token)
if (this.$route.query.token) {
window.localStorage.setItem('token', this.$route.query.token)
}
// let signInvalid = sessionStorage.getItem('signInvalid')
// let rs = await this.checkSignInvalid(signInvalid) // 微信分享验证校验值
// if (rs == '1') {
@@ -163,7 +165,11 @@ export default {
//获取腾讯人脸识别URL后重新跳回页面验证腾讯人脸识别结果成功的话调签字面板
if (localStorage['faceAuthWeXin-requestId'] && localStorage['faceAuthWeXin-bizToken'] && this.$route.query.faceAuthCountWeixin != undefined) {
this.getRecognitionResult(JSON.parse(localStorage['faceAuthWeXin-requestId']), JSON.parse(localStorage['faceAuthWeXin-bizToken']), JSON.parse(localStorage['orderNo']))
this.getRecognitionResult(
JSON.parse(localStorage['faceAuthWeXin-requestId']),
JSON.parse(localStorage['faceAuthWeXin-bizToken']),
JSON.parse(localStorage['orderNo'])
)
}
this.faceAuthCount.enjoy = this.$route.query.faceAuthCountAppnt == undefined ? 0 : Number(this.$route.query.faceAuthCountAppnt)
this.faceAuthCount.weixin = this.$route.query.faceAuthCountWeixin == undefined ? 0 : Number(this.$route.query.faceAuthCountWeixin)

View File

@@ -834,8 +834,8 @@ export default {
let m = time.getMonth() + 1 < 10 ? '0' + (time.getMonth() + 1) : time.getMonth() + 1
console.log(y, m)
this.monthValue = y + '-' + m
this.dialogForm.startDate = y + '-' + m + '-' + '01' // "2024-09-01",
this.dialogForm.endDate = y + '-' + m + '-' + '30'//"2024-09-30",
this.dialogForm.startDate = y + '-' + m + '-' + '01' // "2024-08-01",
this.dialogForm.endDate = y + '-' + m + '-' + '31'//"2024-08-31",
})
this.overlayShow = false
},

View File

@@ -42,7 +42,7 @@
@click="selectClick('3', '', '1')">证件扫描
</van-button>
</van-field>
<FieldDatePicter
<!-- <FieldDatePicter
:v-validate='{ required: certiexpiredateRequired }'
required
label='证件截止日期'
@@ -59,7 +59,7 @@
<van-checkbox v-model='userInfo.effectiveDateType' :disabled='effectiveDateTypeAble'
@change='effectiveDataTypeChange'>长期
</van-checkbox>
</div>
</div> -->
<select-radio required :radios='sexRadio' label='性别' name='性别' v-validate="'required'"
:value.sync='userInfo.sex'></select-radio>
<FieldDatePicter
@@ -154,7 +154,7 @@
v-validate="'required'"
@click="toSelect('11')"
/>
<van-field
<!-- <van-field
v-model='userInfo.homeName'
readonly
label='联系地址'
@@ -166,7 +166,7 @@
@click="areaSelect('1')"
/>
<van-field v-model='userInfo.homeAddress' label name='详细地址' placeholder='请输入详细地址' v-validate="'required'"
clearable maxlength='30' />
clearable maxlength='30' /> -->
<!-- </template> -->
</van-cell-group>
<van-goods-action style='z-index: 99'>
@@ -331,7 +331,7 @@ export default {
idType: '1', //证件类型
idNo: '', //证件号码
certiexpiredate: '', //证件到期时间
effectiveDateType: false, //是否长期
effectiveDateType: null, //是否长期
occupationCode: '', //职业代码
occupationName: '', //职业名称
averageAnnualIncome: '', //平均年收入
@@ -339,9 +339,9 @@ export default {
healthGrade: '', //健康等级
nativeplace: '1', //国家地区
marriageStatus: '', //婚姻状况
homeProvince: '450000', //家庭省
homeCity: '450100', //家庭市
homeArea: '450101', //家庭区
homeProvince: '', //家庭省
homeCity: '', //家庭市
homeArea: '', //家庭区
homeName: '', //联系地址
homeAddress: '', //详细地址
mobile: '', //移动电话
@@ -380,7 +380,7 @@ export default {
}
},
created() {
this.userInfo.homeName = getAreaName([{ code: 450000 }, { code: 450100 }, { code: 450101 }]) //家庭地址
// this.userInfo.homeName = getAreaName([{ code: 450000 }, { code: 450100 }, { code: 450101 }]) //家庭地址
},
async mounted() {
let that = this
@@ -404,17 +404,17 @@ export default {
cardOrderDetail(cardInfoDTO).then(res => {
if (res.result == '0') {
Object.assign(that.userInfo,res.orderDTO.appntDTO)
that.userInfo.effectiveDateType = that.userInfo.effectiveDateType == 'true'?true:false
that.userInfo.certiexpiredate = that.userInfo.effectiveDateType == 'true'?'':that.userInfo.certiexpiredate
that.userInfo.homeName = getAreaName([
{ code: that.userInfo.homeProvince },
{ code: that.userInfo.homeCity },
{ code: that.userInfo.homeArea }
])
if (this.userInfo.birthday) {
let age = utilsAge.getAge(this.userInfo.birthday, new Date())
this.effectiveDateTypeAble = !(age >= 45)
}
// that.userInfo.effectiveDateType = that.userInfo.effectiveDateType == 'true'?true:false
// that.userInfo.certiexpiredate = that.userInfo.effectiveDateType == 'true'?'':that.userInfo.certiexpiredate
// that.userInfo.homeName = getAreaName([
// { code: that.userInfo.homeProvince },
// { code: that.userInfo.homeCity },
// { code: that.userInfo.homeArea }
// ])
// if (this.userInfo.birthday) {
// let age = utilsAge.getAge(this.userInfo.birthday, new Date())
// this.effectiveDateTypeAble = !(age >= 45)
// }
}
})
}
@@ -517,7 +517,7 @@ export default {
areaSelect(insureType) {
;[this.homeShow, this.insureType] = [true, insureType]
if (insureType === '1') {
this.areaCode = this.userInfo.homeArea
// this.areaCode = this.userInfo.homeArea
}
},
//监听名字变化
@@ -581,14 +581,14 @@ export default {
} else if (this.pickerType == '2') {
//身份证以外的证件类型可以使用长期
//value.id 1 居民身份证 todo
if (value.id != '1') {
this.effectiveDateTypeAble = false
} else {
if (this.userInfo.birthday) {
let age = utilsAge.getAge(this.userInfo.birthday, new Date())
this.effectiveDateTypeAble = !(age >= 45)
}
}
// if (value.id != '1') {
// this.effectiveDateTypeAble = false
// } else {
// if (this.userInfo.birthday) {
// let age = utilsAge.getAge(this.userInfo.birthday, new Date())
// this.effectiveDateTypeAble = !(age >= 45)
// }
// }
this.userInfo.idType = value.id
} else if (this.pickerType == '3') {
this.userInfo.degree = value.id
@@ -632,50 +632,50 @@ export default {
// }
}
break
case '1': {
console.log('证件截止日期')
//证件截止日期
//如果已经勾选了长期
if (this.userInfo.effectiveDateType) {
//清空数据并返回
this.userInfo.certiexpiredate = ''
this.$refs.certiexpiredate.date = ''
return
}
this.userInfo.effectiveDateType = false
//如果录入日期早于当前日期
if (Date.parse(val) < Date.parse(new Date())) {
this.userInfo.certiexpiredate = ''
this.$refs.certiexpiredate.date = ''
return this.$toast('您的证件已过期')
}
//不同证件类型的判断
// if (this.userInfo.idType) {
// //获取年龄
// let age = utilsAge.getAge(this.userInfo.birthday, new Date())
// console.log(age)
// //年龄在16-25周岁之间
// if (age >= 16 && age <= 25) {
// if (new Date(val).getFullYear() - new Date(this.userInfo.certificateValidate).getFullYear() != 10) {
// this.userInfo.certiexpiredate = ''
// this.$refs.certiexpiredate.date = ''
// return this.$toast('16周岁~25周岁的证件有效期为10年')
// }
// //年龄在26-45周岁之间
// } else if (age >= 26 && age <= 45) {
// if (new Date(val).getFullYear() - new Date(this.userInfo.certificateValidate).getFullYear() != 20) {
// this.userInfo.certiexpiredate = ''
// this.$refs.certiexpiredate.date = ''
// return this.$toast('26周岁~45周岁的证件有效期为20年')
// }
// //此外的年龄段不支持
// } else {
// this.userInfo.certiexpiredate = ''
// this.$refs.certiexpiredate.date = ''
// return this.$toast('身份证不支持此年龄段')
// }
// }
}
// case '1': {
// console.log('证件截止日期')
// //证件截止日期
// //如果已经勾选了长期
// if (this.userInfo.effectiveDateType) {
// //清空数据并返回
// this.userInfo.certiexpiredate = ''
// this.$refs.certiexpiredate.date = ''
// return
// }
// this.userInfo.effectiveDateType = false
// //如果录入日期早于当前日期
// if (Date.parse(val) < Date.parse(new Date())) {
// this.userInfo.certiexpiredate = ''
// this.$refs.certiexpiredate.date = ''
// return this.$toast('您的证件已过期')
// }
// //不同证件类型的判断
// // if (this.userInfo.idType) {
// // //获取年龄
// // let age = utilsAge.getAge(this.userInfo.birthday, new Date())
// // console.log(age)
// // //年龄在16-25周岁之间
// // if (age >= 16 && age <= 25) {
// // if (new Date(val).getFullYear() - new Date(this.userInfo.certificateValidate).getFullYear() != 10) {
// // this.userInfo.certiexpiredate = ''
// // this.$refs.certiexpiredate.date = ''
// // return this.$toast('16周岁~25周岁的证件有效期为10年')
// // }
// // //年龄在26-45周岁之间
// // } else if (age >= 26 && age <= 45) {
// // if (new Date(val).getFullYear() - new Date(this.userInfo.certificateValidate).getFullYear() != 20) {
// // this.userInfo.certiexpiredate = ''
// // this.$refs.certiexpiredate.date = ''
// // return this.$toast('26周岁~45周岁的证件有效期为20年')
// // }
// // //此外的年龄段不支持
// // } else {
// // this.userInfo.certiexpiredate = ''
// // this.$refs.certiexpiredate.date = ''
// // return this.$toast('身份证不支持此年龄段')
// // }
// // }
// }
break
case '2': {
//出生日期
@@ -720,22 +720,22 @@ export default {
this.userInfo.birthday = data.birthday //出生日期
this.userInfo.idType = data.customerIdType //证件类型
this.userInfo.idNo = data.customerIdNumber //证件类别
if (data.idEffectEndDate == '9999-12-31') {
this.userInfo.effectiveDateType = true //是否长期
} else {
this.userInfo.certiexpiredate = data.idEffectEndDate //证件截止日期
this.userInfo.effectiveDateType = false //是否长期
}
// if (data.idEffectEndDate == '9999-12-31') {
// this.userInfo.effectiveDateType = true //是否长期
// } else {
// this.userInfo.certiexpiredate = data.idEffectEndDate //证件截止日期
// this.userInfo.effectiveDateType = false //是否长期
// }
this.userInfo.email = data.email //电子邮箱
this.userInfo.mobile = data.customerPhone //移动电话
this.userInfo.homeProvince = data.homeProvince //家庭省
this.userInfo.homeCity = data.homeCity //家庭市
this.userInfo.homeArea = data.homeArea //家庭区
if (data.homeProvince && data.homeCity && data.homeArea) {
this.userInfo.homeName = getAreaName([{ code: data.homeProvince }, { code: data.homeCity }, { code: data.homeArea }]) //家庭地址
}
this.userInfo.homeAddress = data.homeAddress //家庭详细地址
// this.userInfo.homeProvince = data.homeProvince //家庭省
// this.userInfo.homeCity = data.homeCity //家庭市
// this.userInfo.homeArea = data.homeArea //家庭区
// if (data.homeProvince && data.homeCity && data.homeArea) {
// this.userInfo.homeName = getAreaName([{ code: data.homeProvince }, { code: data.homeCity }, { code: data.homeArea }]) //家庭地址
// }
// this.userInfo.homeAddress = data.homeAddress //家庭详细地址
// this.userInfo.occupationCode = data.occupationCode
// this.userInfo.occupationName = data.occupationName
// this.userInfo.occupationType = data.lifeGrade
@@ -821,36 +821,36 @@ export default {
console.log('证件号码校验有误')
return this.$toast('您填写的证件号码有误')
}
if (age < 46 && this.userInfo.effectiveDateType == true) {
return this.$toast('证件有效期错误年龄小于46周岁的公民身份证有效期不能为长期')
}
// if (age < 46 && this.userInfo.effectiveDateType == true) {
// return this.$toast('证件有效期错误年龄小于46周岁的公民身份证有效期不能为长期')
// }
// 年龄在 16-25 周岁之间
if (age <= 15) {
if (Date.parse(this.userInfo.certiexpiredate) - Date.parse(new Date()) > Date.parse('1975-01-01')) {
this.userInfo.certiexpiredate = ''
this.$refs.certiexpiredate.date = ''
// this.effectiveDateTypeAble = true
return this.$toast('证件有效期错误未满16周岁的公民身份证有效期应小于等于5年')
}
//年龄在 16-25 周岁之间
} else if (age >= 16 && age <= 25) {
console.log('年龄在16-25周岁之间')
if (Date.parse(this.userInfo.certiexpiredate) - Date.parse(new Date()) > Date.parse('1980-01-01')) {
this.userInfo.certiexpiredate = ''
this.$refs.certiexpiredate.date = ''
this.effectiveDateTypeAble = true
return this.$toast('证件有效期不正常16周岁至25周岁公民身份证有效期应小于等于10年')
}
//年龄在 26-45 周岁之间
} else if (age >= 26 && age <= 45) {
console.log('年龄在26-45周岁之间')
if (Date.parse(this.userInfo.certiexpiredate) - Date.parse(new Date()) > Date.parse('1990-01-01')) {
this.userInfo.certiexpiredate = ''
this.$refs.certiexpiredate.date = ''
this.effectiveDateTypeAble = true
return this.$toast('证件有效期不正常26周岁至45周岁公民身份证有效期应小于等于20年')
}
}
// if (age <= 15) {
// if (Date.parse(this.userInfo.certiexpiredate) - Date.parse(new Date()) > Date.parse('1975-01-01')) {
// this.userInfo.certiexpiredate = ''
// this.$refs.certiexpiredate.date = ''
// // this.effectiveDateTypeAble = true
// return this.$toast('证件有效期错误未满16周岁的公民身份证有效期应小于等于5年')
// }
// //年龄在 16-25 周岁之间
// } else if (age >= 16 && age <= 25) {
// console.log('年龄在16-25周岁之间')
// if (Date.parse(this.userInfo.certiexpiredate) - Date.parse(new Date()) > Date.parse('1980-01-01')) {
// this.userInfo.certiexpiredate = ''
// this.$refs.certiexpiredate.date = ''
// this.effectiveDateTypeAble = true
// return this.$toast('证件有效期不正常16周岁至25周岁公民身份证有效期应小于等于10年')
// }
// //年龄在 26-45 周岁之间
// } else if (age >= 26 && age <= 45) {
// console.log('年龄在26-45周岁之间')
// if (Date.parse(this.userInfo.certiexpiredate) - Date.parse(new Date()) > Date.parse('1990-01-01')) {
// this.userInfo.certiexpiredate = ''
// this.$refs.certiexpiredate.date = ''
// this.effectiveDateTypeAble = true
// return this.$toast('证件有效期不正常26周岁至45周岁公民身份证有效期应小于等于20年')
// }
// }
}
if (this.manageComCode == '45' && (this.userInfo.isNewPeopleFlag == '' || this.userInfo.isNewPeopleFlag == null || this.userInfo.isNewPeopleFlag == undefined)) {
return this.$toast('投保人新市民身份不能为空')
@@ -910,13 +910,13 @@ export default {
;[this.userInfo.companyProvince, this.userInfo.companyCity, this.userInfo.companyArea] = [area[0].code, area[1].code, area[2].code]
this.areaShow = false
break
case '2': //家庭地址
if (this.insureType === '1') {
this.userInfo.homeName = getAreaName(area)
;[this.userInfo.homeProvince, this.userInfo.homeCity, this.userInfo.homeArea] = [area[0].code, area[1].code, area[2].code]
this.homeShow = false
}
break
// case '2': //家庭地址
// if (this.insureType === '1') {
// this.userInfo.homeName = getAreaName(area)
// ;[this.userInfo.homeProvince, this.userInfo.homeCity, this.userInfo.homeArea] = [area[0].code, area[1].code, area[2].code]
// this.homeShow = false
// }
// break
case '3': //户籍
this.census = getAreaName(area)
;[this.userInfo.householdProvince, this.userInfo.householdCity] = [area[0].code, area[1].code]

View File

@@ -6,8 +6,8 @@
<van-field :value="appntInfo.idType | idToText('insuredIdType')" label='证件类型' name='证件类型' readonly />
<van-field :value='appntInfo.idNo' label='证件号码' name='证件号码' readonly />
<van-field :value='appntInfo.mobile' label='手机号码' name='手机号码' readonly />
<van-field :value='appntInfo.homeName' label='联系地址' name='联系地址' readonly />
<van-field :value='appntInfo.homeAddress' label='' name='详细地址' readonly />
<van-field :value='appntInfo.homeName' label='联系地址' name='联系地址' readonly v-if="appntInfo.homeName"/>
<van-field :value='appntInfo.homeAddress' label='' name='详细地址' readonly v-if="appntInfo.homeAddress"/>
</van-cell-group>
<van-cell-group class='mt10'>
<p style='border-bottom: 1px solid #ebedf0' class='fs15 fwb pl10 pv12'>产品信息</p>
@@ -32,8 +32,8 @@
<van-field :value='item.idNo' label='证件号码' name='证件号码' readonly />
<!-- <van-field v-if='item.isLessEighteen' :value='item.mobile' label='手机号码' name='手机号码' readonly /> -->
<!-- <van-field v-if='item.isLessEighteen' :value='item.email' label='电子邮箱' name='电子邮箱' readonly /> -->
<van-field :value='item.homeName' label='联系地址' name='联系地址' readonly />
<van-field :value='item.homeAddress' label='' name='详细地址' readonly />
<van-field :value='item.homeName' label='联系地址' name='联系地址' readonly v-if="item.homeName" />
<van-field :value='item.homeAddress' label='' name='详细地址' readonly v-if="item.homeAddress"/>
<van-field :value='bnfTypeVal' label='受益人类型' name='受益人类型' readonly />
</van-collapse-item>
</van-collapse>

View File

@@ -42,7 +42,7 @@
@click="selectClick('3', '', '2')">证件扫描
</van-button>
</van-field>
<FieldDatePicter
<!-- <FieldDatePicter
v-if="isInsuredCertiexpiredate"
:v-validate='{ required: certiexpiredateRequiredInsured }'
required
@@ -62,7 +62,7 @@
>长期
</van-checkbox
>
</div>
</div> -->
<select-radio required :radios='sexRadio' label='性别' name='性别' :disabled="isAppnt" v-validate="'required'"
:value.sync='insuredInfo.sex'></select-radio>
<FieldDatePicter
@@ -170,7 +170,7 @@
v-validate="'required'"
@click="toSelect('npType')"
/>
<van-field
<!-- <van-field
v-model='insuredInfo.homeName'
readonly
label='联系地址'
@@ -181,11 +181,11 @@
@click="areaSelect('2')"
/>
<van-field v-model='insuredInfo.homeAddress' :readonly="isAppnt" label name='详细地址'
placeholder='请输入详细地址' clearable maxlength='30' />
placeholder='请输入详细地址' clearable maxlength='30' /> -->
<div class='pl10 pt10 pb10 pr10 address fs14 redRadioCheckbox'>
<!-- <div class='pl10 pt10 pb10 pr10 address fs14 redRadioCheckbox'>
<van-checkbox v-model='withRootUser.value' :disabled="isAppnt">同投保人</van-checkbox>
</div>
</div> -->
</van-cell-group>
<!-- 受益人信息 -->
<van-cell-group class='mt10'>
@@ -406,7 +406,7 @@ export default {
idType: '1', //证件类型
idNo: '', //证件号码
certiexpiredate: '', //证件到期时间
effectiveDateType: false, //是否长期
effectiveDateType: null, //是否长期
occupationCode: '', //职业代码
occupationName: '', //职业名称
averageAnnualIncome: '', //平均年收入
@@ -414,9 +414,9 @@ export default {
healthGrade: '', //健康等级
nativeplace: '1', //国家地区
marriageStatus: '', //婚姻状况
homeProvince: '450000', //家庭省
homeCity: '450100', //家庭市
homeArea: '450101', //家庭区
homeProvince: '', //家庭省
homeCity: '', //家庭市
homeArea: '', //家庭区
homeName: '', //联系地址
homeAddress: '', //详细地址
mobile: '', //移动电话
@@ -445,9 +445,9 @@ export default {
nativeplace: '1', //国家地区
marriageStatus: '', //婚姻状况
marriage: '',
homeProvince: '450000', //家庭省
homeCity: '450100', //家庭市
homeArea: '450101', //家庭区
homeProvince: '', //家庭省
homeCity: '', //家庭市
homeArea: '', //家庭区
homeName: '', //联系地址
homeAddress: '', //详细地址
mobile: '', //移动电话
@@ -479,7 +479,7 @@ export default {
// showFirstOr: false,
withRootUser: {
load: false, //防止重复请求
value: false
value: null
},
occupationalType: DataDictionary.queryOccupationalByType[0].id,
isInsuredCertiexpiredate:true, //被保人有效止期是否显示
@@ -545,27 +545,27 @@ export default {
if (res.result == '0') {
Object.assign(this.userInfo,res.orderDTO.appntDTO)
//被保险人联系地址默认投保人地址,支持修改。
this.insuredInfo.homeName = getAreaName([
{ code: this.userInfo.homeProvince },
{ code: this.userInfo.homeCity },
{ code: this.userInfo.homeArea }
])
this.insuredInfo.homeProvince = this.userInfo.homeProvince
this.insuredInfo.homeCity = this.userInfo.homeCity
this.insuredInfo.homeArea = this.userInfo.homeArea
this.insuredInfo.homeAddress = this.userInfo.homeAddress
// this.insuredInfo.homeName = getAreaName([
// { code: this.userInfo.homeProvince },
// { code: this.userInfo.homeCity },
// { code: this.userInfo.homeArea }
// ])
// this.insuredInfo.homeProvince = this.userInfo.homeProvince
// this.insuredInfo.homeCity = this.userInfo.homeCity
// this.insuredInfo.homeArea = this.userInfo.homeArea
// this.insuredInfo.homeAddress = this.userInfo.homeAddress
if(that.$route.query.insuredId){ //编辑
res.orderDTO.insuredDTOs.forEach(item => {
if(that.$route.query.insuredId == item.insuredId){
Object.assign(that.insuredInfo,item)
that.insuredInfo.effectiveDateType = that.insuredInfo.effectiveDateType == 'true'?true:false
that.insuredInfo.certiexpiredate = that.insuredInfo.effectiveDateType == 'true'?'':that.insuredInfo.certiexpiredate
that.insuredInfo.homeName = getAreaName([
{ code: that.insuredInfo.homeProvince },
{ code: that.insuredInfo.homeCity },
{ code: that.insuredInfo.homeArea }
])
that.proScheme = that.insuredInfo.riskDTOLst[0].proScheme
// that.insuredInfo.effectiveDateType = that.insuredInfo.effectiveDateType == 'true'?true:false
// that.insuredInfo.certiexpiredate = that.insuredInfo.effectiveDateType == 'true'?'':that.insuredInfo.certiexpiredate
// that.insuredInfo.homeName = getAreaName([
// { code: that.insuredInfo.homeProvince },
// { code: that.insuredInfo.homeCity },
// { code: that.insuredInfo.homeArea }
// ])
// that.proScheme = that.insuredInfo.riskDTOLst[0].proScheme
that.proSchemeCode = that.insuredInfo.riskDTOLst[0].proSchemeCode
that.allPrice = that.insuredInfo.riskDTOLst[0].prem
that.insuanceId = that.insuredInfo.riskDTOLst[0].insuanceId
@@ -574,6 +574,7 @@ export default {
let age = utilsAge.getAge(this.insuredInfo.birthday, new Date())
this.effectiveDateTypeAbleInsured = !(age >= 45)
}
console.log(123133,this.insureInfo, 'that.insuredInfo')
//编辑时走试算接口
this.insureTrial(1)
}
@@ -581,13 +582,13 @@ export default {
} else {
if(that.$route.query.relationToAppnt == '1'){ //新增关系为本人
Object.assign(this.insuredInfo,res.orderDTO.appntDTO)
that.insuredInfo.effectiveDateType = that.insuredInfo.effectiveDateType == 'true'?true:false
that.insuredInfo.certiexpiredate = that.insuredInfo.effectiveDateType == 'true'?'':that.userInfo.certiexpiredate
this.insuredInfo.homeName = getAreaName([
{ code: this.insuredInfo.homeProvince },
{ code: this.insuredInfo.homeCity },
{ code: this.insuredInfo.homeArea }
])
// that.insuredInfo.effectiveDateType = that.insuredInfo.effectiveDateType == 'true'?true:false
// that.insuredInfo.certiexpiredate = that.insuredInfo.effectiveDateType == 'true'?'':that.userInfo.certiexpiredate
// this.insuredInfo.homeName = getAreaName([
// { code: this.insuredInfo.homeProvince },
// { code: this.insuredInfo.homeCity },
// { code: this.insuredInfo.homeArea }
// ])
that.insuredInfo.medical = '0'
if (this.insuredInfo.birthday) {
let age = utilsAge.getAge(this.insuredInfo.birthday, new Date())
@@ -680,7 +681,7 @@ export default {
}
;[this.homeShow, this.insureType] = [true, insureType]
if (insureType === '2') {
this.areaCode = this.insuredInfo.homeArea
// this.areaCode = this.insuredInfo.homeArea
}
},
//监听名字变化
@@ -827,44 +828,44 @@ export default {
//选择保障方案时走试算接口
await this.insureTrial(0)
} else if (this.pickerType == '22') {
this.idLimitInsured = false
//选择证件类型后,清空证件号,证件截止日期,出生日期
this.insuredInfo.idNo = this.insuredInfo.certiexpiredate = this.insuredInfo.birthday = ''
// this.idLimitInsured = false
// //选择证件类型后,清空证件号,证件截止日期,出生日期
// this.insuredInfo.idNo = this.insuredInfo.certiexpiredate = this.insuredInfo.birthday = ''
//身份证以外的证件类型可以使用长期
//value.id 1 居民身份证 todo
if (value.id != '1') {
//2516--三个学平险--被保险人身份信息选择仅保留“身份证、户口本”,目前选择户口本仍要填写身份证到期
//时间,如果选择户口本项,默认为长期。
if (this.itemProductDTOS.productCode == 'GFRS_M0048' || this.itemProductDTOS.productCode == 'GFRS_M0049' || this.itemProductDTOS.productCode == 'GFRS_M0050') {
this.insuredInfo.effectiveDateType = true
}
this.effectiveDateTypeAbleInsured = false
} else {
//身份证
if (this.insuredInfo.birthday) {
let age = utilsAge.getAge(this.insuredInfo.birthday, new Date())
this.effectiveDateTypeAbleInsured = !(age >= 45)
//身份证年龄小于等于45不可选长期
this.insuredInfo.effectiveDateType = false
}
}
// if (value.id != '1') {
// //2516--三个学平险--被保险人身份信息选择仅保留“身份证、户口本”,目前选择户口本仍要填写身份证到期
// //时间,如果选择户口本项,默认为长期。
// if (this.itemProductDTOS.productCode == 'GFRS_M0048' || this.itemProductDTOS.productCode == 'GFRS_M0049' || this.itemProductDTOS.productCode == 'GFRS_M0050') {
// this.insuredInfo.effectiveDateType = true
// }
// this.effectiveDateTypeAbleInsured = false
// } else {
// //身份证
// if (this.insuredInfo.birthday) {
// let age = utilsAge.getAge(this.insuredInfo.birthday, new Date())
// this.effectiveDateTypeAbleInsured = !(age >= 45)
// //身份证年龄小于等于45不可选长期
// this.insuredInfo.effectiveDateType = false
// }
// }
// 去掉--选择户口本时是否长期默认为是不可点击有效止期隐藏证件类型为户口本时被保人年龄小于16周岁时户口本有效止期长期变更为第16周岁日期
if(value.id==2){
this.idLimitInsured = true
//证件类型户口本时,证件截止日期和是否长期不可选择
this.effectiveDateTypeAbleInsured = true //长期按钮是否禁用--被保人
this.insuredInfo.effectiveDateType = false //是否长期
// this.insuredInfo.effectiveDateType = true
// this.insuredInfo.certiexpiredate = '9999-12-31'
// this.effectiveDateTypeAbleInsured = true
// this.isInsuredCertiexpiredate = false
// this.isInsuredCertiexpiredate = true
}else{
this.insuredInfo.certiexpiredate = ''
this.insuredInfo.effectiveDateType = false
this.effectiveDateTypeAbleInsured = false
// this.isInsuredCertiexpiredate = true
}
// if(value.id==2){
// this.idLimitInsured = true
// //证件类型户口本时,证件截止日期和是否长期不可选择
// this.effectiveDateTypeAbleInsured = true //长期按钮是否禁用--被保人
// this.insuredInfo.effectiveDateType = false //是否长期
// // this.insuredInfo.effectiveDateType = true
// // this.insuredInfo.certiexpiredate = '9999-12-31'
// // this.effectiveDateTypeAbleInsured = true
// // this.isInsuredCertiexpiredate = false
// // this.isInsuredCertiexpiredate = true
// }else{
// this.insuredInfo.certiexpiredate = ''
// this.insuredInfo.effectiveDateType = false
// this.effectiveDateTypeAbleInsured = false
// // this.isInsuredCertiexpiredate = true
// }
this.insuredInfo.idType = value.id
} else if(this.pickerType == 'npType') {
this.userInfo.npType = value.id
@@ -1026,25 +1027,25 @@ export default {
this.productDate = currentData + '0时至' + productDateTime + '24时止'
}
break
case '7': {
console.log('证件截止日期')
//被保人--证件截止日期
//如果已经勾选了长期
if (this.insuredInfo.effectiveDateType) {
//清空数据并返回
this.insuredInfo.certiexpiredate = ''
this.$refs.certiexpiredate.date = ''
return
}
this.insuredInfo.effectiveDateType = false
//如果录入日期早于当前日期
if (Date.parse(val) < Date.parse(new Date())) {
this.insuredInfo.certiexpiredate = ''
this.$refs.certiexpiredate.date = ''
return this.$toast('您的证件已过期')
}
}
break
// case '7': {
// console.log('证件截止日期')
// //被保人--证件截止日期
// //如果已经勾选了长期
// if (this.insuredInfo.effectiveDateType) {
// //清空数据并返回
// this.insuredInfo.certiexpiredate = ''
// this.$refs.certiexpiredate.date = ''
// return
// }
// this.insuredInfo.effectiveDateType = false
// //如果录入日期早于当前日期
// if (Date.parse(val) < Date.parse(new Date())) {
// this.insuredInfo.certiexpiredate = ''
// this.$refs.certiexpiredate.date = ''
// return this.$toast('您的证件已过期')
// }
// }
// break
}
},
//选择客户
@@ -1071,45 +1072,45 @@ export default {
this.insuredInfo.birthday = data.birthday //出生日期
this.insuredInfo.idType = data.customerIdType //证件类型
this.insuredInfo.idNo = data.customerIdNumber //证件类别
if(this.insuredInfo.idType == '2' && idToData(this.insuredInfo.idNo).age <16){
// 获取出生日期年份16证件类型为户口本时被保人年龄小于16周岁时卡单户口本有效止期长期变更为第16周岁日期
let year = Number(this.insuredInfo.birthday.substr(0,4)) + 16
if(this.insuredInfo.birthday.substr(5,5) == '02-29'){
// 获取某年某月一共多少天
let date = new Date(year, 2, 1)
let dayEnd = new Date(date.getTime() - 864e5).getDate()
this.insuredInfo.certiexpiredate = year +'-02-'+ dayEnd
}else{
this.insuredInfo.certiexpiredate = year +'-'+ this.insuredInfo.birthday.substr(5,5)
}
}
// if(this.insuredInfo.idType == '2' && idToData(this.insuredInfo.idNo).age <16){
// // 获取出生日期年份16证件类型为户口本时被保人年龄小于16周岁时卡单户口本有效止期长期变更为第16周岁日期
// let year = Number(this.insuredInfo.birthday.substr(0,4)) + 16
// if(this.insuredInfo.birthday.substr(5,5) == '02-29'){
// // 获取某年某月一共多少天
// let date = new Date(year, 2, 1)
// let dayEnd = new Date(date.getTime() - 864e5).getDate()
// this.insuredInfo.certiexpiredate = year +'-02-'+ dayEnd
// }else{
// this.insuredInfo.certiexpiredate = year +'-'+ this.insuredInfo.birthday.substr(5,5)
// }
// }
//户口本
if (data.customerIdType == 2) {
this.insuredInfo.effectiveDateType = true
this.insuredInfo.certiexpiredate = '9999-12-31'
this.effectiveDateTypeAbleInsured = true
// this.isInsuredCertiexpiredate = false
}else{
// this.isInsuredCertiexpiredate = true
if (data.idEffectEndDate == '9999-12-31') {
this.insuredInfo.certiexpiredate = ''
this.insuredInfo.effectiveDateType = true //是否长期
this.effectiveDateTypeAbleInsured = true
} else {
this.insuredInfo.certiexpiredate = data.idEffectEndDate //证件截止日期
this.insuredInfo.effectiveDateType = false
this.effectiveDateTypeAbleInsured = false
}
}
// if (data.customerIdType == 2) {
// this.insuredInfo.effectiveDateType = true
// this.insuredInfo.certiexpiredate = '9999-12-31'
// this.effectiveDateTypeAbleInsured = true
// // this.isInsuredCertiexpiredate = false
// }else{
// // this.isInsuredCertiexpiredate = true
// if (data.idEffectEndDate == '9999-12-31') {
// this.insuredInfo.certiexpiredate = ''
// this.insuredInfo.effectiveDateType = true //是否长期
// this.effectiveDateTypeAbleInsured = true
// } else {
// this.insuredInfo.certiexpiredate = data.idEffectEndDate //证件截止日期
// this.insuredInfo.effectiveDateType = false
// this.effectiveDateTypeAbleInsured = false
// }
// }
this.insuredInfo.email = data.email //电子邮箱
this.insuredInfo.mobile = data.customerPhone //移动电话
this.insuredInfo.homeProvince = data.homeProvince?data.homeProvince:this.userInfo.homeProvince//家庭省
this.insuredInfo.homeCity = data.homeCity?data.homeCity:this.userInfo.homeCity //家庭市
this.insuredInfo.homeArea = data.homeArea?data.homeArea:this.userInfo.homeArea //家庭区
if (data.homeProvince && data.homeCity && data.homeArea) {
this.insuredInfo.homeName = getAreaName([{ code: data.homeProvince }, { code: data.homeCity }, { code: data.homeArea }]) //家庭地址
}
this.insuredInfo.homeAddress = data.homeAddress //家庭详细地址
// this.insuredInfo.homeProvince = data.homeProvince?data.homeProvince:this.userInfo.homeProvince//家庭省
// this.insuredInfo.homeCity = data.homeCity?data.homeCity:this.userInfo.homeCity //家庭市
// this.insuredInfo.homeArea = data.homeArea?data.homeArea:this.userInfo.homeArea //家庭区
// if (data.homeProvince && data.homeCity && data.homeArea) {
// this.insuredInfo.homeName = getAreaName([{ code: data.homeProvince }, { code: data.homeCity }, { code: data.homeArea }]) //家庭地址
// }
// this.insuredInfo.homeAddress = data.homeAddress //家庭详细地址
this.insuredInfo.medical = data.socialSecurity //有无社保
// this.insuredInfo.occupationCode = data.occupationCode
// this.insuredInfo.occupationName = data.occupationName
@@ -1180,12 +1181,12 @@ export default {
if (!this.insuredInfo.marriage) {
return this.$toast('被保人婚姻状况不能为空')
}
if (!this.insuredInfo.homeName) {
return this.$toast('被保人联系地址不能为空')
}
if (!this.insuredInfo.homeAddress) {
return this.$toast('被保人详细地址不能为空')
}
// if (!this.insuredInfo.homeName) {
// return this.$toast('被保人联系地址不能为空')
// }
// if (!this.insuredInfo.homeAddress) {
// return this.$toast('被保人详细地址不能为空')
// }
if (this.insuredInfo.relationToAppnt == 2 && this.userInfo.sex == this.insuredInfo.sex) {
return this.$toast('~配偶性别不能相同的哟~')
}
@@ -1237,36 +1238,36 @@ export default {
console.log('证件号码校验有误')
return this.$toast('您填写的证件号码有误')
}
if (insuredAge < 46 && this.insuredInfo.effectiveDateType == true) {
return this.$toast('证件有效期错误年龄小于46周岁的公民身份证有效期不能为长期')
}
// if (insuredAge < 46 && this.insuredInfo.effectiveDateType == true) {
// return this.$toast('证件有效期错误年龄小于46周岁的公民身份证有效期不能为长期')
// }
// 年龄在 16-25 周岁之间
if (insuredAge <= 15) {
if (Date.parse(this.insuredInfo.certiexpiredate) - Date.parse(new Date()) > Date.parse('1975-01-01')) {
this.insuredInfo.certiexpiredate = ''
this.$refs.certiexpiredate.date = ''
// this.effectiveDateTypeAble = true
return this.$toast('证件有效期错误未满16周岁的公民身份证有效期应小于等于5年')
}
//年龄在 16-25 周岁之间
} else if (insuredAge >= 16 && insuredAge <= 25) {
console.log('年龄在16-25周岁之间')
if (Date.parse(this.insuredInfo.certiexpiredate) - Date.parse(new Date()) > Date.parse('1980-01-01')) {
this.insuredInfo.certiexpiredate = ''
this.$refs.certiexpiredate.date = ''
this.certiexpiredateRequiredInsured = true
return this.$toast('证件有效期不正常16周岁至25周岁公民身份证有效期应小于等于10年')
}
//年龄在 26-45 周岁之间
} else if (insuredAge >= 26 && insuredAge <= 45) {
if (Date.parse(this.insuredInfo.certiexpiredate) - Date.parse(new Date()) > Date.parse('1990-01-01')) {
this.insuredInfo.certiexpiredate = ''
this.$refs.certiexpiredate.date = ''
this.certiexpiredateRequiredInsured = true
return this.$toast('证件有效期不正常26周岁至45周岁公民身份证有效期应小于等于20年')
}
}
// if (insuredAge <= 15) {
// if (Date.parse(this.insuredInfo.certiexpiredate) - Date.parse(new Date()) > Date.parse('1975-01-01')) {
// this.insuredInfo.certiexpiredate = ''
// this.$refs.certiexpiredate.date = ''
// // this.effectiveDateTypeAble = true
// return this.$toast('证件有效期错误未满16周岁的公民身份证有效期应小于等于5年')
// }
// //年龄在 16-25 周岁之间
// } else if (insuredAge >= 16 && insuredAge <= 25) {
// console.log('年龄在16-25周岁之间')
// if (Date.parse(this.insuredInfo.certiexpiredate) - Date.parse(new Date()) > Date.parse('1980-01-01')) {
// this.insuredInfo.certiexpiredate = ''
// this.$refs.certiexpiredate.date = ''
// this.certiexpiredateRequiredInsured = true
// return this.$toast('证件有效期不正常16周岁至25周岁公民身份证有效期应小于等于10年')
// }
// //年龄在 26-45 周岁之间
// } else if (insuredAge >= 26 && insuredAge <= 45) {
// if (Date.parse(this.insuredInfo.certiexpiredate) - Date.parse(new Date()) > Date.parse('1990-01-01')) {
// this.insuredInfo.certiexpiredate = ''
// this.$refs.certiexpiredate.date = ''
// this.certiexpiredateRequiredInsured = true
// return this.$toast('证件有效期不正常26周岁至45周岁公民身份证有效期应小于等于20年')
// }
// }
}else if(this.insuredInfo.idType == '2'){
if (idToData(this.insuredInfo.idNo).age >= 16) {
return this.$toast('客户年龄在16周岁以上不能使用户口本作为有效证件')
@@ -1356,10 +1357,10 @@ export default {
if (this.insuredInfo.medical == '1') {
return this.$toast('被保险人需有社保才可投保此险种')
}
// 是否长期选项 赋值
if (this.insuredInfo.effectiveDateType) {
this.insuredInfo.certiexpiredate = '9999-12-31'
}
// // 是否长期选项 赋值
// if (this.insuredInfo.effectiveDateType) {
// this.insuredInfo.certiexpiredate = '9999-12-31'
// }
if (this.manageComCode == '45' && (this.insuredInfo.isNewPeopleFlag == '' || this.insuredInfo.isNewPeopleFlag == null || this.insuredInfo.isNewPeopleFlag == undefined)) {
return this.$toast('投保人新市民身份不能为空')
}
@@ -1601,17 +1602,17 @@ export default {
this.idLimitInsured = false
}
// 获取出生日期年份16证件类型为户口本时被保人年龄小于16周岁时卡单户口本有效止期长期变更为第16周岁日期
if(this.insuredInfo.idType == '2' && idToData(this.insuredInfo.idNo).age <16){
let year = Number(this.insuredInfo.birthday.substr(0,4)) + 16
if(this.insuredInfo.birthday.substr(5,5) == '02-29'){
// 获取某年某月一共多少天
let date = new Date(year, 2, 1)
let dayEnd = new Date(date.getTime() - 864e5).getDate()
this.insuredInfo.certiexpiredate = year+'-02-'+ dayEnd
}else{
this.insuredInfo.certiexpiredate = year+'-'+ this.insuredInfo.birthday.substr(5,5)
}
}
// if(this.insuredInfo.idType == '2' && idToData(this.insuredInfo.idNo).age <16){
// let year = Number(this.insuredInfo.birthday.substr(0,4)) + 16
// if(this.insuredInfo.birthday.substr(5,5) == '02-29'){
// // 获取某年某月一共多少天
// let date = new Date(year, 2, 1)
// let dayEnd = new Date(date.getTime() - 864e5).getDate()
// this.insuredInfo.certiexpiredate = year+'-02-'+ dayEnd
// }else{
// this.insuredInfo.certiexpiredate = year+'-'+ this.insuredInfo.birthday.substr(5,5)
// }
// }
this.insuredInfo.sex = idToData(val).sex
if (this.insuredInfo.birthday) {
let age = utilsAge.getAge(this.insuredInfo.birthday, new Date())
@@ -1768,47 +1769,47 @@ export default {
// immediate: true,
// deep: true
// },
'userInfo.homeName': {
handler(newV) {
if (this.withRootUser.value) {
this.insuredInfo.homeName = getAreaName([
{ code: this.userInfo.homeProvince },
{ code: this.userInfo.homeCity },
{ code: this.userInfo.homeArea }
])
this.insuredInfo.homeProvince = this.userInfo.homeProvince
this.insuredInfo.homeCity = this.userInfo.homeCity
this.insuredInfo.homeArea = this.userInfo.homeArea
this.insuredInfo.homeAddress = this.userInfo.homeAddress
}
},
immediate: true,
deep: true
},
'userInfo.homeAddress': {
handler(newV) {
if (this.withRootUser.value) {
this.insuredInfo.homeAddress = this.userInfo.homeAddress
}
},
immediate: true,
deep: true
},
async 'withRootUser.value'(n) {
if (n) {
this.insuredInfo.homeName = getAreaName([
{ code: this.userInfo.homeProvince },
{ code: this.userInfo.homeCity },
{ code: this.userInfo.homeArea }
])
this.insuredInfo.homeProvince = this.userInfo.homeProvince
this.insuredInfo.homeCity = this.userInfo.homeCity
this.insuredInfo.homeArea = this.userInfo.homeArea
this.insuredInfo.homeAddress = this.userInfo.homeAddress
} else {
this.insuredInfo.homeName = this.insuredInfo.homeAddress = ''
}
}
// 'userInfo.homeName': {
// handler(newV) {
// if (this.withRootUser.value) {
// this.insuredInfo.homeName = getAreaName([
// { code: this.userInfo.homeProvince },
// { code: this.userInfo.homeCity },
// { code: this.userInfo.homeArea }
// ])
// this.insuredInfo.homeProvince = this.userInfo.homeProvince
// this.insuredInfo.homeCity = this.userInfo.homeCity
// this.insuredInfo.homeArea = this.userInfo.homeArea
// this.insuredInfo.homeAddress = this.userInfo.homeAddress
// }
// },
// immediate: true,
// deep: true
// },
// 'userInfo.homeAddress': {
// handler(newV) {
// if (this.withRootUser.value) {
// this.insuredInfo.homeAddress = this.userInfo.homeAddress
// }
// },
// immediate: true,
// deep: true
// },
// async 'withRootUser.value'(n) {
// if (n) {
// this.insuredInfo.homeName = getAreaName([
// { code: this.userInfo.homeProvince },
// { code: this.userInfo.homeCity },
// { code: this.userInfo.homeArea }
// ])
// this.insuredInfo.homeProvince = this.userInfo.homeProvince
// this.insuredInfo.homeCity = this.userInfo.homeCity
// this.insuredInfo.homeArea = this.userInfo.homeArea
// this.insuredInfo.homeAddress = this.userInfo.homeAddress
// } else {
// this.insuredInfo.homeName = this.insuredInfo.homeAddress = ''
// }
// }
}
}
</script>

View File

@@ -7,8 +7,8 @@
<van-field :value='appntInfo.idNo' label='证件号码' name='证件号码' readonly />
<van-field :value='appntInfo.mobile' label='手机号码' name='手机号码' readonly />
<van-field :value='appntInfo.email' label='电子邮箱' name='电子邮箱' readonly />
<van-field :value='appntInfo.homeName' label='联系地址' name='联系地址' readonly />
<van-field :value='appntInfo.homeAddress' label='详细地址' name='详细地址' readonly />
<van-field :value='appntInfo.homeName' label='联系地址' name='联系地址' readonly v-if="appntInfo.homeName"/>
<van-field :value='appntInfo.homeAddress' label='详细地址' name='详细地址' readonly v-if="appntInfo.homeAddress"/>
</van-cell-group>
<van-cell-group class='mt10'>
<p style='border-bottom: 1px solid #ebedf0' class='fs15 fwb pl10 pv12'>被保人信息</p>
@@ -17,8 +17,8 @@
<van-field :value='insuredInfo.idNo' label='证件号码' name='证件号码' readonly />
<van-field v-if='isLessEighteen' :value='insuredInfo.mobile' label='手机号码' name='手机号码' readonly />
<van-field v-if='isLessEighteen' :value='insuredInfo.email' label='电子邮箱' name='电子邮箱' readonly />
<van-field :value='insuredInfo.homeName' label='联系地址' name='联系地址' readonly />
<van-field :value='insuredInfo.homeAddress' label='详细地址' name='详细地址' readonly />
<van-field :value='insuredInfo.homeName' label='联系地址' name='联系地址' readonly v-if="insuredInfo.homeName" />
<van-field :value='insuredInfo.homeAddress' label='详细地址' name='详细地址' readonly v-if="insuredInfo.homeAddress"/>
</van-cell-group>
<van-cell-group class='mt10'>
<p style='border-bottom: 1px solid #ebedf0' class='fs15 fwb pl10 pv12'>受益人信息</p>

File diff suppressed because it is too large Load Diff

View File

@@ -213,7 +213,9 @@ export default {
//从签名页调过来的标识
sessionStorage.setItem('airSign', this.$route.query.airSign)
}
localStorage.setItem('token', this.$route.query.token)
if (this.$route.query.token) {
localStorage.setItem('token', this.$route.query.token)
}
if (this.$route.query.signInvalid) {
sessionStorage.setItem('signInvalid', this.$route.query.signInvalid)
}

View File

@@ -353,6 +353,8 @@
item.productCode != 'GFRS_M0080' &&
item.productCode != 'GFRS_M0083' &&
item.productCode != 'GFRS_M0098' &&
item.productCode != 'GFRS_M0103' &&
item.productCode != 'GFRS_M0112' &&
item.productCode != 'GFRS_M0085'
"
>
@@ -840,14 +842,17 @@ export default {
this.isEnterAddtionRiskListFunc()
}
}
if (item.mainRiskCode == 'GFRS_M0083' || item.mainRiskCode == 'GFRS_M0098' || item.mainRiskCode == 'GFRS_M0085') {
if (item.mainRiskCode == 'GFRS_M0083' || item.mainRiskCode == 'GFRS_M0098' || item.mainRiskCode == 'GFRS_M0103'|| item.mainRiskCode == 'GFRS_M0112' || 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_M0085') && this.isFrom == 'proposal') {
if (
(item.mainRiskCode == 'GFRS_M0083' || item.mainRiskCode == 'GFRS_M0098' || item.mainRiskCode == 'GFRS_M0103'|| item.mainRiskCode == 'GFRS_M0112' || item.mainRiskCode == 'GFRS_M0085') &&
this.isFrom == 'proposal'
) {
item.calFactorLst.forEach((i) => {
if (i.code == 'inputPrem') {
i.minPrem = 0.01
@@ -961,10 +966,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)
}
})
},
@@ -1095,10 +1104,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女
//性别男女,养老保险金领取年龄不一致
@@ -1108,9 +1118,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() {
@@ -1126,7 +1164,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') {
@@ -1138,7 +1176,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') {
@@ -1151,17 +1189,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()
@@ -1174,7 +1219,6 @@ export default {
} else {
this.isEnterAddtionRisk = true
}
if (currentEle.showContent != value.text) {
//通用规则校验
if (await this.payExceedInsured(currentEle, currentFactor, value.value)) {
@@ -1200,18 +1244,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
@@ -1755,10 +1790,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) {
@@ -2181,14 +2228,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_M0085') {
if (item.productCode == 'GFRS_M0083' || item.productCode == 'GFRS_M0098' || item.productCode == 'GFRS_M0103'|| item.productCode == 'GFRS_M0112' || item.productCode == 'GFRS_M0085') {
productCode = item.productCode
hasPredictTransferPrem = item.hasPredictTransferPrem
}
})
}
if (this.isFrom != 'proposal') {
if (productCode == 'GFRS_M0083' || productCode == 'GFRS_M0098' || productCode == 'GFRS_M0085') {
if (productCode == 'GFRS_M0083' || productCode == 'GFRS_M0098' || productCode == 'GFRS_M0103'|| productCode == 'GFRS_M0112' || productCode == 'GFRS_M0085') {
if (!that.policyNo) {
this.disabledShow = true
that.chooseProducts.forEach((item) => {
@@ -2389,6 +2436,13 @@ export default {
trialFlag = false
}
}
} else if (item.productCode == 'GFRS_M0101' || item.productCode == 'GFRS_M0102') {
// 当投保人年龄≥75周岁时需转人工核保。核心提示语投保人年龄≥75周岁。前端提示语为投保人年龄≥75周岁需进一步人工审核
let appntAge = this.saleInsuredInfo.age
if (appntAge >= 75) {
this.nextStepFlag = true
this.$toast('投保人年龄≥75周岁需进一步人工审核')
}
}
})
if (!trialFlag) {
@@ -2965,7 +3019,7 @@ export default {
}
}
}
} else if (productCode == 'GFRS_M0083' || productCode == 'GFRS_M0098' || productCode == 'GFRS_M0085') {
} else if (productCode == 'GFRS_M0083' || productCode == 'GFRS_M0098' || productCode == 'GFRS_M0103'|| productCode == 'GFRS_M0112' || productCode == 'GFRS_M0085') {
if (this.isFrom != 'proposal') {
if (!this.policyNo && defalutValue < 5) {
this.$toast('单独投保保费为大于等于50000元')
@@ -3088,7 +3142,7 @@ export default {
return this.$toast('关联保单的格式不正确')
}
}
this.$CacheUtils.setLocItem('associatedPolicyNo', this.policyNo || null)
//组装险种提交数据
let [mainRiskCode, riskDTOLst] = ['', []]
let rollInResult = '' //校验预计转入保费结果

View File

@@ -29,7 +29,7 @@
</div>
<div v-if="isFrom == 'sale' && isShow == false">
<div class="p15 pl8 fs14" style="margin-bottom: 20px;background: #fff;">
<van-radio-group v-model="isElecCont" class="flex" style="display: flex;align-items: center;">
<van-radio-group v-model="isElecCont" class="flex" style="display: flex;align-items: center;" :disabled="isElecContDisabled">
<label>
<i class="red pr5">*</i>
保单形式
@@ -125,7 +125,8 @@
<p style="color: #E9332E;">提示</p>
</div>
<div style="padding: 20px 30px 30px;font-size: 14px;">
<div style="line-height: 25px;">根据监管要求本单需要您配合对销售过程进行录音录像</div>
<div style="line-height: 25px;" v-if="branchType == '14'">一年期以上保险产品需按监管要求双录请及时双录</div>
<div style="line-height: 25px;" v-else>根据监管要求本单需要您配合对销售过程进行录音录像</div>
</div>
<div style="text-align: center;">
<van-button type="danger" block style="font-size: 14px;" @click="thisdoubledialogfunc">确定</van-button>
@@ -178,6 +179,8 @@
manageComCode:'',//代理人管理机构 52贵州 45广西
isCrossChannel: 0, // 是否选择交叉渠道列表 0-否 1-是
isElecCont: '', // 保单形式
isElecContDisabled: false, // 保单形式是否禁用
branchType:''
}
},
components: {
@@ -251,6 +254,12 @@
//如果是从导航栏点击进入
this.salePageFlag = localStorage.salePageFlag
}
if(window.localStorage.getItem('branchType')) {
this.branchType = window.localStorage.getItem('branchType')
} else if(this.$route.query.branchType){
window.localStorage.setItem('branchType', this.$route.query.branchType)
this.branchType = this.$route.query.branchType
}
// localStorage.orderNo = '19090510425500178912'
// localStorage.saleInsuredPersonInfo = JSON.stringify({
@@ -413,6 +422,11 @@
}
}
this.$toast.clear()
// 银保,保单形式,默认为电子+纸质,不可修改
if (this.$CacheUtils.getLocItem('branchType') == '14' && this.chooseProducts[0].mainRiskCode != 'GFRS_M0076' && this.chooseProducts[0].mainRiskCode != 'GFRS_M0077') {
this.isElecCont = '2'
this.isElecContDisabled = true
}
} else {
this.$toast(resultData.resultMessage)
}
@@ -823,7 +837,7 @@
}
if(this.manageComCode == '45') {
console.log(this.chooseProducts)
if(this.appntDTO.age >= 60) {
if(this.appntDTO.age >= 60 || this.branchType == '14') {
this.chooseProducts.map(item => {
if (item.insuYearFlag == 'A' || (item.insuYearFlag == 'Y' && item.insuYear != '1')) {
showFlag = true

View File

@@ -43,12 +43,12 @@ export default {
},
//投、被保险人年龄对险种的限制
ageLimit(resultData, vm, isApplicant,riskProductCode) {
let age, tips
let age, tips,maxAge
if (isApplicant) {
age = this.getSaleInsuredInfo().age
tips = '投保人年龄不适合此款险种,请选择其他险种!'
} else {
if(riskProductCode == 'GFRS_M0061'){
if(riskProductCode == 'GFRS_M0061' || riskProductCode == 'GFRS_M0102' || riskProductCode == 'GFRS_M0101'){
age = this.getSaleInsuredPersonInfo().birthday?utilsAge.getAge29(this.getSaleInsuredPersonInfo().birthday, new Date()):this.getSaleInsuredPersonInfo().insuredAge
}else{
age = this.getSaleInsuredPersonInfo().birthday?utilsAge.getAgeByValue(this.getSaleInsuredPersonInfo().birthday, new Date()):this.getSaleInsuredPersonInfo().insuredAge
@@ -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

@@ -396,7 +396,9 @@ export default {
}
// this.$CacheUtils.setLocItem('saleInsuredInfo', this.$route.query.saleInsuredInfo)
// window.localStorage.setItem('saleInsuredPersonInfo', this.$route.query.saleInsuredPersonInfo)
window.localStorage.setItem('token', this.$route.query.token)
if (this.$route.query.token) {
window.localStorage.setItem('token', this.$route.query.token)
}
window.localStorage.setItem('orderNo', this.$route.query.orderNo)
// window.localStorage.setItem('relationToAppnt', this.$route.query.relationToAppnt)
// window.localStorage.setItem('productCode', this.$route.query.productCode)

View File

@@ -4,7 +4,7 @@
<p class="fs18 fwb">公司介绍</p>
<van-image width="100%" height="150" :src="img1" class="mt15" />
<p class="fs14 indent">
国富人寿保险股份有限公司是经中国银保监会批准于2018年6月成立的全国性寿险公司公司由广西投资集团唯品会吉安新年等8家知名企业共同出资创立注册资本金15亿元总部位于南宁市是广西壮族自治区首家寿险法人机构公司以因为国富所以民安为使命用心研发实惠产品用爱提供实在服务守护幸福美好生活
国富人寿保险股份有限公司是经中国银保监会批准于2018年6月成立的全国性寿险公司公司由广西投资集团唯品会吉安新年等8家知名企业共同出资创立注册资本金15亿元总部位于南宁市是广西壮族自治区首家寿险法人机构公司以因为国富所以民安为使命用心研发实惠产品用爱提供实在服务守护幸福美好生活
</p>
<!-- <p class="fs14 indent">
国富人寿将秉持老有所养病有所医红利共享国富民安的核心理念让更多的人过上有尊严的健康快乐的生活作为企业使命树立并践行简单专注诚信激情关爱领先的价值观专注于客户体验研发满足客户需求的产品为客户提供有温度的服务依法合规稳健经营立足广西深耕广西面向全国更好地回馈社会回报股东与时俱进超越自我
@@ -75,7 +75,9 @@ export default {
this.redisKey = this.$route.query.redisKey
if (this.redisKey) {
this.saveShareRecord('1')
localStorage.setItem('token', this.$route.query.token)
if (this.$route.query.token) {
localStorage.setItem('token', this.$route.query.token)
}
} else {
this.getShareKey()
}
@@ -117,7 +119,7 @@ export default {
url: `${location.origin}/#/manpower/increaseStaffTools/CompanyIntroduction`
}
getShareKey(data)
.then(res => {
.then((res) => {
console.log(res)
if (res.result == 0) {
this.redisKey = res.content
@@ -125,7 +127,7 @@ export default {
this.$toast(res.resultMessage)
}
})
.catch(err => {
.catch((err) => {
console.log(err)
})
},

View File

@@ -1,6 +1,6 @@
<template>
<div>
<iframe :src="src + pdfUrl" style="width:100vw;height:100vh"></iframe>
<iframe :src="src + pdfUrl" style="width: 100vw; height: 100vh"></iframe>
</div>
</template>
@@ -38,7 +38,9 @@ export default {
this.redisKey = this.$route.query.redisKey
if (this.redisKey) {
this.saveShareRecord('1')
localStorage.setItem('token', this.$route.query.token)
if (this.$route.query.token) {
localStorage.setItem('token', this.$route.query.token)
}
} else {
this.getShareKey()
}
@@ -83,7 +85,7 @@ export default {
url: `${location.origin}/pdfjs/web/viewer.html?file=${this.pdfUrl}`
}
getShareKey(data)
.then(res => {
.then((res) => {
console.log(res)
if (res.result == 0) {
this.redisKey = res.content
@@ -91,7 +93,7 @@ export default {
this.$toast(res.resultMessage)
}
})
.catch(err => {
.catch((err) => {
console.log(err)
})
},

View File

@@ -48,7 +48,7 @@
</div>
<div v-else>
<template v-if="redirectUrl">
<iframe v-show="thirdUrlReady" style="width: 100vw; min-height: 100vh;" :src="redirectUrl" frameborder="0"></iframe>
<iframe v-show="thirdUrlReady" style="width: 100vw; min-height: 100vh" :src="redirectUrl" frameborder="0"></iframe>
</template>
<template v-if="detailImg">
<img id="detailImg" v-if="detailImg" :src="$assetsUrl + detailImg" />
@@ -151,7 +151,9 @@ export default {
},
async mounted() {
if (this.isWeixin) {
window.localStorage.setItem('token', this.$route.query.token)
if (this.$route.query.token) {
window.localStorage.setItem('token', this.$route.query.token)
}
this.loginInfo.aname = decodeURI(this.$route.query.aname)
this.loginInfo.password = decodeURI(this.$route.query.password)
this.shareId = this.$route.query.shareId
@@ -162,7 +164,7 @@ export default {
},
methods: {
prevImg(i) {
let imgs = this.imgList.map(img => {
let imgs = this.imgList.map((img) => {
return this.$assetsUrl + img
})
ImagePreview(imgs, i)
@@ -259,7 +261,7 @@ export default {
//分享轨迹保存
saveShareTrack(data) {
return new Promise((resolve, reject) => {
saveShareTrack(data).then(res => {
saveShareTrack(data).then((res) => {
if (res.result == '0') {
resolve()
} else {

View File

@@ -2,7 +2,7 @@
<div ref="product" class="home-product-container pb20">
<!-- 非个险 -->
<template v-if="!isPersonalInsu">
<div class="home-product-content" v-if="branchType != '12'">
<div class="home-product-content" v-if="branchType != '12' && branchType != '14'">
<!-- 产品中心 -->
<div class="pcenter-title flex pt10 mr20 mb10 ml15 justify-content-s align-items-c" style="height: 30px;">
<h3 class="center-title fs15 pl10" style="border-left: 4px solid red;">知识社区</h3>
@@ -34,7 +34,7 @@
</div>
</div>
<div style="height: 10px;width: 100%;background-color: #f5f5f5;" />
<div class="home-product-content">
<div class="home-product-content" v-if="branchType != '14'">
<!-- 产品中心 -->
<div class="pcenter-title flex pt10 mr20 mb10 justify-content-s align-items-c">
<h3 class="center-title fs15 pl10 ml15" style="border-left: 4px solid red;">产品中心</h3>
@@ -113,8 +113,8 @@
</div>
</div>
<div style="height: 10px;width: 100%;background-color: #f5f5f5;" />
<div class="home-product-content">
<!-- 产品中心 -->
<div class="home-product-content" v-if="branchType != '14'">
<!-- 银保渠道不显示 产品中心 -->
<div class="pcenter-title flex pt10 mr20 mb10 justify-content-s align-items-c">
<img class="title-img" :src="productCenterImgUrl" />
<span class="more fs13 c-gray-base" @click="getMore"><span>查看更多</span><van-icon name="arrow"/></span>
@@ -122,15 +122,26 @@
<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>
</div>
</template>
<template>
<!-- 后台配置图 -->
<div class="home-product-content pt20" v-if="branchType == '14'">
<div class="pcenter-list mr20 mb10 ml15">
<div class="pcenter-item text-center">
<img src="../../../assets/images/home-companyProfile.png" style="width: 100%" alt=""/>
</div>
</div>
</div>
</template>
</div>
</template>
@@ -140,6 +151,7 @@ import performance from '@/assets/images/goodStart/performanceIcon.png'
import product from '@/assets/images/goodStart/product.png'
import { getAgentInfo } from '@/api/ebiz/my/my'
import { getCongratulationList } from '@/api/ebiz/congratulation/congratulation.js'
import { getHomeBottomPic } from '@/api/ebiz/product/product.js'
import dateUtil from '@/assets/js/utils/date-utils.js'
// import { orgShortNames } from '@/assets/js/utils/orgShortName'
import CacheUtils from '@/assets/js/utils/cacheUtils'
@@ -157,7 +169,7 @@ export default {
isGoodStart: '0', // 是否开门红 0-默认
isPersonalInsu: true, // 是否个险渠道
isInner: false,
organizationTheads: ['排名', '机构', '当日预收(期交)', '月预收期交', '日承保期交', '月承保期交'],
organizationTheads: ['排名', '机构', '当日预收(保费)', '月预收保费', '日承保保费', '月承保保费'],
performanceTheads: ['排名', '姓名', '营销服务部', '预收期交', '承保期交'],
organizationData: [],
performanceData: [],
@@ -170,7 +182,8 @@ export default {
productCenterImgUrl: '', // 产品中心图片
productCenterKmhImgUrl: this.$assetsUrl + 'images/goodStart/productKmh.png', // 产品中心开门红图片
productCenterNormalImgUrl: this.$assetsUrl + 'images/goodStart/product.png', // 产品中心普通蓝色图片
personalInsu: ['1','N1','N2','N3','N5','T','S','JZG'] // 个险渠道编码及其他展示个险渠道类型的渠道编码
personalInsu: ['1','N1','N2','N3','N5','T','S','JZG'], // 个险渠道编码及其他展示个险渠道类型的渠道编码
homeBottomPicUrl: null
}
},
computed: {
@@ -193,6 +206,16 @@ export default {
}
},
methods: {
async getHomeBottomImg() {
const result = await getHomeBottomPic({ operateType: 'nonRealYB' })
if (result.result === '0' && result.content && result.content.length > 0) {
const timestamp = new Date().getTime()
const originalUrl = result.content[0].picUrl
this.homeBottomPicUrl = originalUrl.includes('?')
? `${originalUrl}&t=${timestamp}`
: `${originalUrl}?t=${timestamp}`
}
},
async getTableData() {
let currMonth = dateUtil.formatDate(new Date(), 'yyyy-MM-dd')
let data = await getCongratulationList({ date: currMonth, queryType: 'm', type: 'kmh' })
@@ -234,11 +257,14 @@ export default {
// 内外勤判断
this.isInner = /^N{1}/.test(result.branchType) || /^S/.test(result.branchType) || /^T/.test(result.branchType) || /^JZG/.test(result.branchType) // 判断是否内勤
this.branchType = result.branchType //6 网销渠道
this.isGoodStart = result.showTemplateKmh === 'KMH'? '1':'2' // 判断是否开门红 1-开门红 2-否
this.isPersonalInsu = this.personalInsu.indexOf(result.branchType) > -1 // 判断是否个险渠道
this.organizationImgUrl = this.isGoodStart =='1'?this.organizationKmhImgUrl:this.organizationNormalImgUrl
this.performanceImgUrl = this.isGoodStart =='1'?this.performanceKmhImgUrl:this.performanceNormalImgUrl
this.productCenterImgUrl = this.isGoodStart =='1'?this.productCenterKmhImgUrl:this.productCenterNormalImgUrl
this.isGoodStart = result.showTemplateKmh === 'KMH' ? '1' : '2' // 判断是否开门红 1-开门红 2-否
this.isPersonalInsu = this.personalInsu.indexOf(result.branchType) > -1 // 判断是否个险渠道
this.organizationImgUrl = this.isGoodStart == '1' ? this.organizationKmhImgUrl : this.organizationNormalImgUrl
this.performanceImgUrl = this.isGoodStart == '1' ? this.performanceKmhImgUrl : this.performanceNormalImgUrl
this.productCenterImgUrl = this.isGoodStart == '1' ? this.productCenterKmhImgUrl : this.productCenterNormalImgUrl
if (this.branchType == '14') {
// this.getHomeBottomImg()
}
} else {
this.$toast(result.resultMessage)
}

View File

@@ -6,14 +6,18 @@
<img class="w178 h41 div_1" src="@/assets/images/proposal/proposal_logo.png" />
<div class="white fw500 fs18 div_2">{{ mainRiskName }}</div>
<van-sticky @scroll="testSticky">
<div class="pl15 pt15 flex justify-content-fs align-items-c sticky_div" :class="pageShowType.isFixed ? 'divbg_1' : 'divbg_2'">
<div class="mr9 title_item" v-for="(item, index) in pageShowInfo.insuredDTOs" :key="index" @click="checkInsure(item.insuredId)">
<div class="pl15 pt15 flex justify-content-fs align-items-c sticky_div"
:class="pageShowType.isFixed ? 'divbg_1' : 'divbg_2'">
<div class="mr9 title_item" v-for="(item, index) in pageShowInfo.insuredDTOs" :key="index"
@click="checkInsure(item.insuredId)">
<div class="relative sub_insure_item">
<div class="bg-white insured_item" :class="item.insuredId == pageShowInfo.showInsuredDTO.insuredId ? 'shadow' : ''">
<div class="bg-white insured_item"
:class="item.insuredId == pageShowInfo.showInsuredDTO.insuredId ? 'shadow' : ''">
<div class="insured_item_1">
<img :src="headPicture[item.relationToAppnt + '_' + item.sex]" />
</div>
<div class="text-center fs12" :class="item.insuredId == pageShowInfo.showInsuredDTO.insuredId ? 'color_3A81F6' : ''">
<div class="text-center fs12"
:class="item.insuredId == pageShowInfo.showInsuredDTO.insuredId ? 'color_3A81F6' : ''">
{{ relationToAppntType[item.relationToAppnt + '_' + item.sex] }}<br />
{{ item.name }}
</div>
@@ -33,37 +37,49 @@
<div class="text-center">
<label class="fs14 color_3A81F6 fw600 lh24">被保险人</label><br />
<label class="fs13 color_666666 lh20"
>{{ pageShowInfo.showInsuredDTO.sex == '0' ? '男' : '女' }}&nbsp;{{ pageShowInfo.showInsuredDTO.insuredAge }}周岁</label
>{{ pageShowInfo.showInsuredDTO.sex == '0' ? '男' : '女'
}}&nbsp;{{ pageShowInfo.showInsuredDTO.insuredAge }}周岁</label
>
</div>
<div class="line_gray"></div>
<div class="text-center">
<label class="fs14 color_3A81F6 fw600 lh24">投保人</label><br />
<label class="fs13 color_666666 lh20">{{ pageShowInfo.appntDTO.sex == '0' ? '男' : '女' }}&nbsp;{{ pageShowInfo.appntDTO.age }}周岁</label>
<label class="fs13 color_666666 lh20">{{ pageShowInfo.appntDTO.sex == '0' ? '男' : '女'
}}&nbsp;{{ pageShowInfo.appntDTO.age }}周岁</label>
</div>
<div class="line_gray"></div>
<div class="text-center">
<label class="fs14 color_3A81F6 fw600 lh24">首年保费</label><br />
<label class="fs13 color_FFA42F lh20">{{ pageShowInfo.showInsuredDTO.totalPrem | numFormat }}</label>
<label class="fs13 color_FFA42F lh20">{{ pageShowInfo.showInsuredDTO.totalPrem | numFormat
}}</label>
</div>
</div>
<div class="fs15 line_title">产品计划</div>
<div class="fs12 div_4">
<div class="risk_head flex text-center line-height table fs12 bg_DBEFFE">
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7">投保险种</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border" v-if="ispremshow">保额(</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border" v-if="ispremshow">
保额(
</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">保险期间</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">交费期间</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">首年保费()</div>
</div>
<div class="risk_body flex text-center table bg_f7fbff" v-for="(riskItem, index) in pageShowInfo.showInsuredDTO.riskDTOLst" :key="index">
<div class="risk_body flex text-center table bg_f7fbff"
v-for="(riskItem, index) in pageShowInfo.showInsuredDTO.riskDTOLst" :key="index">
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7">{{ riskItem.riskName }}</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border" v-if="ispremshow">
{{ riskItem.amt ? riskItem.amt : '--' }}
</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">{{ riskItem.insureName }}</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">{{ riskItem.payName }}</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">{{ riskItem.showPrem ? riskItem.showPrem : '--' }}</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">
{{ riskItem.insureName }}
</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">{{ riskItem.payName
}}
</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">
{{ riskItem.showPrem ? riskItem.showPrem : '--' }}
</div>
</div>
</div>
@@ -72,23 +88,33 @@
<div class="fs12 div_4" v-if="pageShowInfo.showInsuredDTO.riskDTOLstNew.length">
<div class="risk_head flex text-center line-height table fs12 bg_DBEFFE">
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7">投保险种</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">养老保险金开始领取年龄</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">养老保险金领取方式</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">
养老保险金开始领取年龄
</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">养老保险金领取方式
</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">保证给付期</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">每次养老保险金()</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">每次养老保险金()
</div>
</div>
<div v-for="(riskItem, index) in pageShowInfo.showInsuredDTO.riskDTOLstNew" :key="index">
<div class="risk_body flex text-center table bg_f7fbff">
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7">{{ riskItem.riskName }}</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">{{ riskItem.pensionAge }} 周岁</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">
{{ riskItem.pensionAge }} 周岁
</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">
{{ riskItem.receivePensionWay == '0' ? '年领' : '月领' }}
</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">{{ riskItem.guaranteedYear }} </div>
<div v-if="riskItem.receivePensionWay == '0'" class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">
{{ riskItem.guaranteedYear }}
</div>
<div v-if="riskItem.receivePensionWay == '0'"
class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">
{{ riskItem.amt }}
</div>
<div v-if="riskItem.receivePensionWay == '1'" class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">
<div v-if="riskItem.receivePensionWay == '1'"
class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">
{{ riskItem.amt | fillNumber }}
</div>
</div>
@@ -98,7 +124,8 @@
<div class="h20">&ensp;</div>
</div>
<div class="up_down_div">
<img src="@/assets/images/proposal/proposal_down.png" :class="pageShowType.productCheckStatus ? '' : 'img180'" @click="testProductCheck" />
<img src="@/assets/images/proposal/proposal_down.png"
:class="pageShowType.productCheckStatus ? '' : 'img180'" @click="testProductCheck" />
</div>
</div>
<!--保险责任-->
@@ -123,9 +150,11 @@
</div>
<div :class="pageShowType.riskCheckStatus ? '' : 'hideInfo'" class="text-left div_5">
<div v-if="pageShowType.dutyShowType == '01'">
<div class="div_6 duty_by_duty" v-for="(item, index) in pageShowInfo.showInsuredDTO.riskDTOLst" :key="index">
<div class="div_6 duty_by_duty" v-for="(item, index) in pageShowInfo.showInsuredDTO.riskDTOLst"
:key="index">
<div v-if="item.riskDutySortResult">
<div v-for="(subItem3, subIndex3) in getObjectKeys(item.riskDutySortResult)" :key="subIndex3"></div>
<div v-for="(subItem3, subIndex3) in getObjectKeys(item.riskDutySortResult)"
:key="subIndex3"></div>
</div>
<div class="fw600 fs15 color_3A81F6 show_risk_name">
{{ item.riskName }}
@@ -140,7 +169,8 @@
<div class="fs13 color_333333 div_17">
<div v-html="initDutyColor(subItem4.dutyStairExplain)"></div>
</div>
<div class="fs13 color_666666 div_17" v-if="subItem4.dutyDetailExplain && subItem4.dutyDetailExplain != ''">
<div class="fs13 color_666666 div_17"
v-if="subItem4.dutyDetailExplain && subItem4.dutyDetailExplain != ''">
<div v-html="showDutyDetailExplain(subItem4.dutyDetailExplain)"></div>
</div>
</div>
@@ -149,7 +179,8 @@
</div>
</div>
<div v-if="pageShowType.dutyShowType == '00'">
<div class="duty_by_duty" v-for="(item, index) in pageShowInfo.showInsuredDTO.dutySortResult" :key="index">
<div class="duty_by_duty" v-for="(item, index) in pageShowInfo.showInsuredDTO.dutySortResult"
:key="index">
<div v-for="(subItem1, subIndex1) in getObjectKeys(item)" :key="subIndex1">
<div class="fw600 fs15 color_3A81F6 show_risk_name">
{{ subItem1 }}
@@ -162,7 +193,8 @@
<div class="fs13 div_17 color_333333">
<div v-html="initDutyColor(subItem2.dutyStairExplain)"></div>
</div>
<div class="fs13 div_17 color_666666" v-if="subItem2.dutyDetailExplain && subItem2.dutyDetailExplain != ''">
<div class="fs13 div_17 color_666666"
v-if="subItem2.dutyDetailExplain && subItem2.dutyDetailExplain != ''">
<div v-html="showDutyDetailExplain(subItem2.dutyDetailExplain)"></div>
</div>
</div>
@@ -171,7 +203,8 @@
</div>
</div>
<div class="up_down_div">
<img src="@/assets/images/proposal/proposal_down.png" :class="pageShowType.riskCheckStatus ? '' : 'img180'" @click="testRiskCheck" />
<img src="@/assets/images/proposal/proposal_down.png"
:class="pageShowType.riskCheckStatus ? '' : 'img180'" @click="testRiskCheck" />
</div>
</div>
<!--产品条款-->
@@ -214,12 +247,14 @@
<div class="text-center flex justify-content-e align-items-c fs14 check_age">
<div>当被保险人在</div>
<div class="check_one flex justify-content-fe align-items-c" @click="popupShow = true">
{{ pageShowInfo.showInsuredDTO.checkAge }}&emsp;<img class="img_10" src="@/assets/images/proposal/proposal_select_down.png" />
{{ pageShowInfo.showInsuredDTO.checkAge }}&emsp;<img class="img_10"
src="@/assets/images/proposal/proposal_select_down.png" />
</div>
<div>岁时</div>
</div>
<div class="flex justify-content-s align-items-c mt15 mb20 ml15 mr15">
<img class="w20" src="@/assets/images/proposal/proposal_lessen.png" @click="reduce(pageShowInfo.showInsuredDTO)" />
<img class="w20" src="@/assets/images/proposal/proposal_lessen.png"
@click="reduce(pageShowInfo.showInsuredDTO)" />
<van-slider
class="w220"
active-color="#9EC2FC"
@@ -231,7 +266,8 @@
>
<div slot="button" class="customer_button"></div>
</van-slider>
<img class="w20" src="@/assets/images/proposal/proposal_add.png" @click="exhibitionAdd(pageShowInfo.showInsuredDTO)" />
<img class="w20" src="@/assets/images/proposal/proposal_add.png"
@click="exhibitionAdd(pageShowInfo.showInsuredDTO)" />
</div>
<select-radio
class="mb10"
@@ -246,7 +282,7 @@
<!-- 国富人寿富贵尊享终身寿险分红型添加利益演示提示 -->
<div v-if="mainRiskCodes.includes('GFRS_M0095')" class="fs13 div_11 text-left">
<b
>本利益演示基于公司的精算及其他假设不代表公司的历史经营业绩也不代表对公司未来经营业绩的预期保单的红利分配是不确定的红利水平是不保证的在某些年度红利可能为零
>本利益演示基于公司的精算及其他假设不代表公司的历史经营业绩也不代表对公司未来经营业绩的预期保单的红利分配是不确定的红利水平是不保证的在某些年度红利可能为零
</b>
</div>
<div class="div_10"></div>
@@ -273,7 +309,8 @@
</div>
<div class="h20">&ensp;</div>
<div class="up_down_div">
<img src="@/assets/images/proposal/proposal_down.png" :class="pageShowType.dutyCheckStatus ? '' : 'img180'" @click="dutyCheck" />
<img src="@/assets/images/proposal/proposal_down.png"
:class="pageShowType.dutyCheckStatus ? '' : 'img180'" @click="dutyCheck" />
</div>
</div>
</div>
@@ -291,17 +328,33 @@
</div>
<div class="h20">&ensp;</div>
<div class="up_down_div">
<img src="@/assets/images/proposal/proposal_down.png" :class="pageShowType.hesitateCheckStatus ? '' : 'img180'" @click="hesitateCheck" />
<img src="@/assets/images/proposal/proposal_down.png"
:class="pageShowType.hesitateCheckStatus ? '' : 'img180'" @click="hesitateCheck" />
</div>
</div>
</div>
<!-- 风险提示 -->
<div class="pt15 pb17 bg-white relative" v-if="showDangerInfo">
<div :class="pageShowType.hesitateCheckStatus ? '' : 'hideInfo_hesitate'">
<div class="fs16 color_3A81F6 lh24 fw600 text-center">风险提示</div>
<div class="line_C8DBFB"></div>
<div class="fs14 div_height div_11">
<b>本产品为分红保险您可以保单红利的形式享有本产品的盈余分配权但未来的保单红利为非保证利益其红利分配是不确定的在某些年度红利可能为零</b>
</div>
<div class="h20">&ensp;</div>
<div class="up_down_div">
<img src="@/assets/images/proposal/proposal_down.png"
:class="pageShowType.hesitateCheckStatus ? '' : 'img180'" @click="hesitateCheck" />
</div>
</div>
</div>
<!-- 温馨提示-->
<div class="pt15 pb17 bg-white model_title">
<div class="fs16 color_3A81F6 lh24 fw600 text-center">温馨提示</div>
<div class="line_C8DBFB"></div>
<div class="fs13 div_11">
<b> 本资料仅供客户理解产品条款所用有关产品的说明解释承诺或保证如与产品条款不一致均以产品条款为准 </b>
<b>
本资料仅供客户理解产品条款所用有关产品的说明解释承诺或保证如与产品条款不一致均以产品条款为准 </b>
</div>
<div class="div_12"></div>
</div>
@@ -327,7 +380,8 @@
</div>
</div>
<van-popup v-model="popupShow" position="bottom">
<van-picker show-toolbar :columns="pageShowInfo.showInsuredDTO.ageColums" @confirm="checkAge" @cancel="popupShow = false" />
<van-picker show-toolbar :columns="pageShowInfo.showInsuredDTO.ageColums" @confirm="checkAge"
@cancel="popupShow = false" />
</van-popup>
</div>
</div>
@@ -341,7 +395,7 @@
<!-- 如果没有姓名的话根据性别展示男士或女士 -->
<div class="text-center div_023">
尊敬的<span v-if="pageShowInfo.appntDTO.name">{{ pageShowInfo.appntDTO.name.substr(0, 1) }}</span
>{{ pageShowInfo.appntDTO.sex == '0' ? '先生' : '女士' }}
>{{ pageShowInfo.appntDTO.sex == '0' ? '先生' : '女士' }}
</div>
</div>
<img class="img_13" src="@/assets/images/proposal/proposal_share_bg.png" />
@@ -389,6 +443,7 @@ import getAge from '@/assets/js/utils/age.js'
import dataDictionary from '@/assets/js/utils/data-dictionary'
import riskRules from '../common/risk-rules.js'
import { queryPersonal } from '@/api/ebiz/laurelClub/laurelClub'
export default {
data() {
let isWeixin = this.$utils.device().isWeixin //判断环境
@@ -447,6 +502,13 @@ export default {
ispremshow: true // 是否展示保额
}
},
computed: {
showDangerInfo() {
if (this.pageShowInfo.showInsuredDTO.riskDTOLst) {
return this.pageShowInfo.showInsuredDTO.riskDTOLst.some(e => e.riskName.includes('分红型'))
}
}
},
filters: {
productRateUnit(code) {
for (let i = 0; i < dataDictionary.productRateUnit.length; i++) {
@@ -514,7 +576,9 @@ export default {
this.isCheck = res.result
})
},
created() {},
created() {
},
beforeRouteLeave(to, from, next) {
document.body.style.backgroundColor = ''
next()
@@ -804,6 +868,8 @@ export default {
item01.mainRiskCode == 'GFRS_M0083' ||
item01.mainRiskCode == 'GFRS_M0085' ||
item01.mainRiskCode == 'GFRS_M0098' ||
item01.mainRiskCode == 'GFRS_M0103' ||
item01.mainRiskCode == 'GFRS_M0112' ||
item01.mainRiskCode == 'GFRS_M0100'
) {
that.ispremshow = false
@@ -1132,36 +1198,45 @@ export default {
<style lang="scss">
.proposal-exhibition-container {
padding-bottom: 10px;
.sex-radio {
.van-cell-group {
background: transparent;
.van-cell {
background: transparent;
justify-content: center;
.van-field__label {
width: 0;
flex: 0;
}
}
}
.ph30 {
padding: 0px !important;
}
}
&::before {
content: '';
display: table;
}
width: 100%;
background: url('../../../assets/images/proposal/proposal_bg.png') no-repeat;
background-color: #f7f7f7;
background-size: 100% auto;
.line-height {
line-height: 35px;
}
.lh40 {
line-height: 40px;
}
.van-divider {
margin: 0 0 15px;
}
@@ -1170,84 +1245,105 @@ export default {
& > div {
width: 19%;
}
& > div:last-child {
width: 25%;
}
}
.wx {
img {
width: 100%;
}
}
div::-webkit-scrollbar {
width: 0;
}
.divbg_1 {
/*background-color: #9ec2fc;*/
background-color: #f5fbff;
}
.divbg_2 {
background-color: none;
}
.hideInfo {
height: 140px;
overflow: hidden;
}
.hideInfo_insure {
height: 60px;
overflow: hidden;
}
.hideInfo_hesitate {
height: 60px;
overflow: hidden;
}
.insured_item {
position: absolute;
z-index: 98;
border-radius: 8px;
width: 67px;
height: 100px;
.insured_item_1 {
margin: 0px 13.5px 0px 13.5px;
padding-top: 9px;
img {
width: 40px;
height: 40px;
}
}
}
.color_3A81F6 {
color: #3a81f6;
}
.bg_3A81F6 {
background-color: #3a81f6;
}
.color_666666 {
color: #666666;
}
.color_333333 {
color: #333333;
}
.color_FFA42F {
color: #ffa42f;
}
.lh24 {
line-height: 24px;
}
.lh20 {
line-height: 20px;
}
.line_gray {
width: 1px;
height: 19px;
background-color: #999999;
line-height: 24px;
}
.sticky_div {
width: 100%;
overflow-x: auto;
box-sizing: border-box;
}
.line_title {
border-left: 6px solid #3a81f6;
padding-left: 6px;
@@ -1255,6 +1351,7 @@ export default {
margin-top: 25px;
margin-bottom: 15px;
}
.risk_head {
border-top-right-radius: 6px;
border-top-left-radius: 6px;
@@ -1264,43 +1361,53 @@ export default {
border: 1px solid #acc5e6;
line-height: 18px;
}
.risk_body {
border: 1px solid #acc5e6;
border-top: 0px;
margin: 0px 10px;
line-height: 18px;
}
.risk_body_last {
border-bottom-right-radius: 6px;
border-bottom-left-radius: 6px;
}
.up_down_div {
z-index: 2;
position: absolute;
width: 100%;
height: 24px;
left: 0;
bottom: -12px;
text-align: center;
img {
width: 24px;
height: 24px;
}
.img180 {
transform: rotate(180deg);
}
}
.model_title {
margin: 29px 15px;
padding-top: 15px;
border-radius: 5px;
.cheeck_risk_type_left {
border-bottom-left-radius: 15px;
border-top-left-radius: 15px;
}
.cheeck_risk_type_right {
border-bottom-right-radius: 15px;
border-top-right-radius: 15px;
}
.checked_risk_type {
height: 30px;
line-height: 30px;
@@ -1309,6 +1416,7 @@ export default {
padding: 0px 25px;
color: #ffffff;
}
.no_check_risk_type {
height: 30px;
line-height: 30px;
@@ -1318,15 +1426,18 @@ export default {
padding: 0px 25px;
}
}
.line_C8DBFB {
height: 1px;
margin: 17px;
border-top: 1px dashed #c8dbfb;
}
.calue_name {
width: 80%;
text-align: left !important;
}
.calue_button {
width: 20%;
height: 26px;
@@ -1338,12 +1449,14 @@ export default {
margin-bottom: 5px;
color: #3a81f6;
}
.customer_button {
width: 20px;
height: 20px;
border-radius: 10px;
background-color: #3a81f6;
}
.last_fix_div {
bottom: 0px;
left: 0px;
@@ -1352,10 +1465,12 @@ export default {
line-height: 40px;
box-shadow: 0px 0px 10px 5px #aaa;
z-index: 999;
div {
width: 50%;
}
}
.fix_bottom {
position: fixed;
height: 40px;
@@ -1368,42 +1483,51 @@ export default {
display: flex;
justify-content: space-between;
align-items: center;
.fix_bottom_sub {
display: flex;
justify-content: flex-start;
align-items: center;
margin: 10px;
font-size: 14px;
img {
width: 16px;
height: 16px;
}
div {
padding-left: 10px;
}
}
}
.table_border {
border-left: 1px solid #acc5e6;
}
.title_item {
height: 115px;
}
.lh_30 {
height: 30px;
line-height: 30px;
}
.check_age {
height: 20px;
line-height: 20px;
width: 15em;
margin: 5px auto;
.check_one {
border-bottom: 1px solid gray;
width: 5em;
text-align: right;
}
}
.show_risk_name {
border-left: 5px solid #3a81f6;
padding-left: 7px;
@@ -1412,6 +1536,7 @@ export default {
margin-top: 20px;
margin-bottom: 10px;
}
.duty_by_duty {
.head_radis {
width: 6px;
@@ -1419,72 +1544,89 @@ export default {
background-color: black;
border-radius: 3px;
}
.title_2 {
padding-left: 5px;
line-height: 25px;
}
.content_1 {
padding-left: 23px;
line-height: 25px;
}
}
}
.div_1 {
margin-top: 13px;
margin-left: 14px;
}
.div_2 {
margin-top: 37px;
margin-left: 17px;
}
.div_3 {
border-radius: 5px;
margin: 7px 15px 14px 15px;
}
.div_4 {
position: relative;
}
.div_5 {
margin-top: 15px;
}
.div_6 {
margin-bottom: 20px;
}
.div_7 {
padding-left: 12px;
padding-right: 12px;
}
.div_8 {
line-height: 25px;
}
.div_9 {
padding-top: 30px;
width: 100%;
height: 1px;
}
.img_10 {
width: 16px;
height: 16px;
}
.div_10 {
padding-top: 10px;
width: 100%;
height: 1px;
}
.div_11 {
padding: 10px 13px;
}
.div_12 {
padding-top: 20px;
width: 100%;
height: 1px;
}
.div_13 {
right: 0px;
top: 40%;
width: 30px;
/*width: 23px;*/
}
.img_11 {
width: 22px;
height: 80px;
@@ -1494,6 +1636,7 @@ export default {
background-color: transparent;
border: 0;
}
.img_12 {
width: 22px;
height: 80px;
@@ -1504,14 +1647,17 @@ export default {
background-color: transparent;
border: 0;
}
.div_14 {
height: 40px;
width: 100%;
}
.shadow {
//box-shadow: 2px 2px 2px 3px #3b72f9;
box-shadow: 0 0 4px #3b72f9;
}
.triangle {
border-left: 10px solid transparent;
border-right: 10px solid transparent;
@@ -1522,6 +1668,7 @@ export default {
z-index: 99;
margin-left: -10px;
}
.triangle_shadow {
border-left: 10px solid transparent;
border-right: 10px solid transparent;
@@ -1533,16 +1680,20 @@ export default {
z-index: 96;
filter: blur(2px);
}
.sub_insure_item {
width: 67px;
height: 105px;
}
.bg_f7fbff {
background-color: #f5fbff;
}
.bg_DBEFFE {
background-color: #dbeffe;
}
.div_16 {
border-bottom: 1px solid #edeef0;
margin-left: 12px;
@@ -1550,61 +1701,75 @@ export default {
padding-bottom: 10px;
padding-top: 10px;
}
.div_17 {
padding-left: 11px;
line-height: 25px;
}
.img_13 {
width: 100%;
height: 100%;
}
.img_14 {
width: 200px;
height: 70px;
}
.img_15 {
margin-left: 18px;
width: 142px;
height: 27px;
}
.share_content {
height: 100vh;
.div_01 {
width: 100%;
height: 43px;
padding-top: 16px;
}
.div_02 {
width: 100%;
height: 497px;
position: relative;
.div_021 {
position: absolute;
top: 30px;
left: 0px;
width: 100%;
}
.div_022 {
font-size: 25px;
}
.div_023 {
font-size: 16px;
margin-top: 28px;
color: #073190;
}
}
.div_03 {
color: #666666;
margin-bottom: 12px;
}
}
.div_last {
line-height: 20px;
margin: 5px 0px;
}
.div_height {
line-height: 24px;
}
.van-button::before {
position: absolute;
top: 50%;

File diff suppressed because it is too large Load Diff

View File

@@ -141,6 +141,7 @@
</div>
<van-field
v-model="userInfo.yearSalary"
v-if="Number(branchType) !== 14"
label="平均年收入(万元)"
name="平均年收入"
required
@@ -356,7 +357,8 @@ export default {
isInsured: false, //是投保人本人,
Insured: false, //投保人本人按钮是否置灰
idLimit: false, //证件起止日期是否只读
saleInsuredPersonInfo: JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')) //被保人信息
saleInsuredPersonInfo: JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')), //被保人信息
branchType:''
}
},
mounted() {
@@ -366,6 +368,9 @@ export default {
} else {
this.Insured = false
}
if(window.localStorage.getItem('branchType') || this.$route.query.branchType) {
this.branchType = window.localStorage.getItem('branchType')
}
},
methods: {
setCustomerMarriage(marriageCode) {
@@ -1319,6 +1324,13 @@ export default {
this.userInfo.certiexpiredate = String(Number(this.userInfo.certificateValidate.slice(0, 4)) + 16) + this.userInfo.certificateValidate.slice(4, 11)
}
}
if (idToData(val).age < 18) {
this.userInfo.marriageStatus = this.branchType == '14' ? '未婚' : this.userInfo.marriageStatus
this.userInfo.marriage = this.branchType == '14' ? 2 : this.userInfo.marriage
}else{
this.userInfo.marriageStatus = this.branchType == '14' ? '' : this.userInfo.marriageStatus
this.userInfo.marriage = this.branchType == '14' ? null : this.userInfo.marriage
}
//受益人证件类型如果是户口本时证件截止日期证件截止日期应为第16周岁的生日日期
// if(this.userInfo.idType == '2' && idToData(this.userInfo.idNo).age <16){

View File

@@ -4,6 +4,7 @@
<!-- 保单信息 -->
<van-collapse-item title="投保单信息" name="1" class="pb10 pt10">
<van-cell-group>
<van-cell title="网点名称" :value="branchName" v-if="branchType == 14"/>
<van-cell title="投保单号" :value="OrderInfoDTO.orderNo" />
<van-cell title="投保日期" :value="OrderInfoDTO.appntDateLabel" />
<van-cell title="订单状态" :value="OrderInfoDTO.orderStatus | orderStatusFilter" />
@@ -114,6 +115,9 @@ import { getDetail } from '@/api/ebiz/sale/sale'
import { formatAllRisk } from '@/assets/js/utils/formatRiskList'
import dataDictionary from '@/assets/js/utils/data-dictionary'
import { getQuestionList } from '@/api/ebiz/questions'
import { getAgentInfo } from '@/api/ebiz/my/my'
import { getCheckModelAgentInfo } from '@/api/ebiz/common/common'
export default {
data() {
return {
@@ -132,17 +136,19 @@ export default {
contNo: '',
list: [],
reason: '',
problemList: []
problemList: [],
branchName: '',
}
},
created() {
this.getAgentInfo()
// 获取保单详情
this.getPolicyDetail()
},
mounted() {
if(window.localStorage.getItem('branchType') == '13') {
this.branchType = '13'
}
}
},
components: {
[Collapse.name]: Collapse,
@@ -152,6 +158,19 @@ export default {
[Button.name]: Button
},
methods: {
async getAgentInfo() {
const result = await getAgentInfo({})
if (result.result == '0') {
this.branchType = result.branchType || window.localStorage.getItem('branchType')
if (this.branchType == '14') {
// 网点名称
const res = await getCheckModelAgentInfo({})
if (res.result == 0) {
this.branchName = res.comName
}
}
}
},
// 获取保单详情
async getPolicyDetail() {
let data = {

View File

@@ -12,6 +12,12 @@
<van-field v-model="projectDTO.personCode" label="录单人工号" name="录单人工号" readonly placeholder="请输入"/>
<van-field v-model="projectDTO.leaderCode" label="出单人工号" name="出单人工号" readonly placeholder="请输入"/>
<!-- <van-field :value="projectDTO.departmentName" @click="toSelect('GBCKS')" readonly required label="部门/科室" name="部门/科室" right-icon="arrow" placeholder="请选择"/>-->
</van-cell-group>
<!-- 保单信息 -->
<van-cell-group :border="false" v-if="branchType == 14">
<p style="border-bottom: 1px solid #ebedf0" class="fs15 fwb pl10 mt10 pv12">保单信息</p>
<van-field v-model="insureInfo.branchName" label="网点名称" name="网点名称" readonly placeholder="请输入"/>
<van-field v-model="insureInfo.orderNo" label="投保单号" name="投保单号" readonly placeholder="请输入"/>
</van-cell-group>
<van-cell-group class="mt10">
<p style="border-bottom: 1px solid #ebedf0" class="fs15 fwb pl10 pv12">基本信息</p>
@@ -64,6 +70,7 @@
:flag="true"
></FieldDatePicter>
<FieldDatePicter
v-if="!userInfo.effectiveDateType"
:v-validate="{ required: certiexpiredateRequired }"
required
label="证件截止日期"
@@ -135,14 +142,18 @@
v-validate="'required|mobileLength11|mobileStartWith1|mobile'"
maxlength="11"
/>
<van-field
<div class="no-border">
<van-field
v-model="userInfo.email"
required
:required="Number(branchType)!==14"
label="电子邮箱"
name="电子邮箱"
placeholder="请输入"
v-validate="'required|email'"
v-validate="Number(branchType) !== 14 ? 'required|' : '' +'|email'"
clearable />
</div>
<p class="email-tip" v-if="branchType == '14'">用于接收电子保单及相关服务通知</p>
<van-field
v-model="userInfo.stature"
label="身高(cm)"
@@ -213,7 +224,7 @@
v-validate="'required'"
@click="toSelect('3')"
/> -->
<select-radio :radios="medicalRadio" v-validate="'required'" label="有无社保" name="有无社保" required :value.sync="userInfo.medical"></select-radio>
<select-radio v-if="Number(branchType)!==14" :radios="medicalRadio" v-validate="'required'" label="有无社保" name="有无社保" required :value.sync="userInfo.medical"></select-radio>
<van-field
:value="userInfo.taxResidentId | idToText('taxIdentity')"
readonly
@@ -251,6 +262,7 @@
placeholder="请选择"
v-validate="'required'"
@click="toSelect('8')"
v-if="branchType != '14'"
/>
<van-field
v-show="isShowOthenSalarySource"
@@ -280,6 +292,7 @@
v-validate="'required|onlyNumber'"
clearable
maxlength="5"
v-if="branchType != '14'"
>
<div slot="label" class="flex flex-wrap">
<span>负债金额</span>
@@ -320,7 +333,7 @@
v-validate="'required'"
@click="toSelect('9')"
/> -->
<select-radio required :radios="Asyncs" label="是否协同工作单位" name="是否协同工作单位" v-validate="'required'" :value.sync="userInfo.isAsync"></select-radio>
<select-radio required :radios="Asyncs" label="是否协同工作单位" name="是否协同工作单位" v-validate="'required'" :value.sync="userInfo.isAsync" v-if="branchType != '14'"></select-radio>
<SearchField
:isAsync="userInfo.isAsync == 1"
@workcompanys="workcompanys"
@@ -329,6 +342,7 @@
placeholder="无工作单位,请输入无"
v-validate="'required'"
name="工作单位"
v-if="branchType != '14'"
/>
<!-- <van-field
v-model="areaName"
@@ -401,7 +415,11 @@
<!-- <van-field v-model="userInfo.homeZip" required label="邮编" name="邮编" placeholder="请输入" v-validate="'required|zipCode'" maxlength="6" clearable /> -->
<!-- <van-field v-model="userInfo.homePhone" label="家庭电话" name="家庭电话" placeholder="非必填" maxlength="13" clearable /> -->
</van-cell-group>
<van-button type="danger" class="bottom-btn" @click="nextStep" v-no-more-click="1000">下一步</van-button>
<div class="bottom-btn flex">
<van-button color="#E9332E" plain v-no-more-click="1000" @click="generateInsureNo" v-if="branchType == '14'">生成投保单号</van-button>
<van-button type="danger" @click="nextStep" v-no-more-click="1000" class="flex1">下一步</van-button>
</div>
<!-- <van-button type="danger" class="bottom-btn" @click="nextStep" v-no-more-click="1000">下一步</van-button> -->
<!-- 字段选择 -->
<van-popup v-model="popupShow" position="bottom"><van-picker show-toolbar :columns="columns" @confirm="onConfirm" @cancel="popupShow = false" /></van-popup>
@@ -441,6 +459,52 @@
<van-button type="danger" block style="font-size: 14px;" @click="thisdoubledialogfunc">确定</van-button>
</div>
</van-dialog>
<van-dialog v-model="insureNoshow" :showConfirmButton="false">
<div slot="title">
<p style="color: #e9332e">生成投保单号</p>
</div>
<div style="padding: 20px 15px 30px; font-size: 14px" v-if="!insureInfo.orderNo">
<div style="line-height: 25px">请您输入证件号码输入完成后系统将自动生成投保单号</div>
<van-field
:value="insuredDialogInfo.idType | idToText('insuredIdType')"
v-validate="'required'"
readonly
required
label="证件类型"
name="证件类型"
right-icon="arrow"
placeholder="请选择"
@click="toSelect('dialogInsuredIdType')"
/>
<van-field
v-model="insuredDialogInfo.idNo"
maxlength="18"
required
label="证件号码"
v-validate="'required'"
name="证件号码"
placeholder="请输入投保人证件号码"
clearable
@blur="idNoVerification(insuredDialogInfo.idNo)"
>
</van-field>
</div>
<div style="padding: 20px 15px 30px; font-size: 14px" v-if="insureInfo.orderNo">
<div style="line-height: 25px">根据您输入的证件号码我们己为您生成投保单号</div>
<div style="line-height: 25px">{{ insureInfo.orderNo }}</div>
</div>
<div style="text-align: center; margin-bottom: 30px">
<van-button round type="danger" size="small" style="padding: 0px 35px; font-size: 14px;margin-right: 30px;" @click="insureBack()" v-if="!insureInfo.orderNo"
>退出</van-button
>
<van-button round type="danger" size="small" style="padding: 0px 35px; font-size: 14px" @click="insureConfirm()" v-if="!insureInfo.orderNo"
>确定</van-button
>
<van-button round type="danger" size="small" style="padding: 0px 35px; font-size: 14px" @click="insureNoCompleted()" v-if="insureInfo.orderNo"
>完成</van-button
>
</div>
</van-dialog>
</div>
</template>
<script>
@@ -465,6 +529,8 @@
import SearchField from '@/components/common/SearchField'
import riskRules from '@/views/ebiz/common/risk-rules'
import { gbcProjectDetail, getDepartmentByProjectNo } from '@/api/GBC/GBC'
import { getCheckModelAgentInfo } from '@/api/ebiz/common/common'
import { getAgentInfo } from '@/api/ebiz/my/my'
export default {
name: 'insuredInfo',
@@ -623,10 +689,19 @@
salePageFlag: '1',
userWorkcompanys: [], //单位数据
manageComCode:'',//代理人管理机构 52贵州 45广西
areaValue:'' //代理人管理机构--省级编号
areaValue:'', //代理人管理机构--省级编号
insureNoshow: false, // 生成保单弹窗
insureInfo: {
branchName: '',
orderNo: '',
},
insuredDialogInfo: {
idType:'',
idNo:'',
},
}
},
created() {
async created() {
this.specilFlag = this.$route.query.specilFlag
localStorage.removeItem('bankCardUrlPath')
localStorage.removeItem('bankCard')
@@ -636,7 +711,10 @@
localStorage.removeItem('imgfrontInsuredPath')
localStorage.removeItem('imgBackPath')
localStorage.removeItem('imgBackInsuredPath')
if(window.localStorage.getItem('branchType')){
localStorage.removeItem('branchType')
}
await this.getAgentInfo()
// document.body.style.backgroundColor = '#F5F5F5'
//如果是编辑/导航进来
// this.isElecCont = '0'
@@ -647,6 +725,8 @@
this.renovate = new Date().getTime()
//投保人信息返显
this.userInfo = res.orderDTO.appntDTO
// 保单信息-投保单号返显
this.insureInfo.orderNo = this.userInfo.orderNo || ''
this.setCustomerMarriage(res.orderDTO.appntDTO.marriage)
//是否长期
this.userInfo.effectiveDateType = res.orderDTO.appntDTO.effectiveDateType == 'false' ? false : true
@@ -704,6 +784,7 @@
}
},
async mounted() {
setTimeout(() => {
// eslint-disable-next-line no-undef
EWebBridge.webCallAppInJs('webview_left_button', {
@@ -737,6 +818,84 @@
}
},
methods: {
async getAgentInfo() {
const result = await getAgentInfo({})
if (result.result === '0') {
this.branchType = result.branchType
localStorage.setItem('branchType', this.branchType)
if(this.branchType == '14'){
this.userInfo.isAsync = this.branchType == '14' ? null : 0
// 网点名称
const userInfo = await getCheckModelAgentInfo({})
if(userInfo.result == 0) {
this.insureInfo.branchName = userInfo.comName
}
}
}
},
idNoVerification(val) {
if (this.insuredDialogInfo.idType == '1') {
if (!idNoCheck.isIdno(val)) {
this.insuredDialogInfo.idNo = ""
return this.$toast('您填写的证件号码有误')
}
}
},
generatePolicyNo(){
let params = {
orderType: 'ORDER_NO',
orderDTO: {
orderInfoDTO: {
orderNo: this.$route.query.orderNo,
isElecCont: this.isElecCont
},
appntDTO: {}
}
}
params.orderDTO.appntDTO.idType = this.insuredDialogInfo.idType
params.orderDTO.appntDTO.idNo = this.insuredDialogInfo.idNo
saveOrUpdateOrderInfo(params).then((res) => {
if (res.result == 0) {
this.insureInfo.orderNo = res.orderNo
this.insureNoshow = true
} else {
this.$toast(res.resultMessage)
}
})
},
// 生成保单号完成按钮
insureNoCompleted(){
this.insureNoshow = false
this.userInfo.idNo = this.insuredDialogInfo.idNo
this.getRelatedData(this.userInfo.idNo, 1)
},
// 生成保单号退出按钮
insureBack(){
this.insureNoshow = false
// 清空弹窗中的输入信息
this.insuredDialogInfo.idType = ''
this.insuredDialogInfo.idNo = ''
// 清空已生成的投保单号
this.insureInfo.orderNo = ''
},
// 生成保单号确认按钮
insureConfirm(){
if(!this.insuredDialogInfo.idNo) {
return this.$toast('请输入投保人证件号码!')
} else {
this.generatePolicyNo()
}
},
// 生成保单号
generateInsureNo(){
this.insuredDialogInfo.idType = this.userInfo.idType
this.insuredDialogInfo.idNo = this.userInfo.idNo
if (this.userInfo.idType && this.userInfo.idNo && !this.insureInfo.orderNo){
this.generatePolicyNo()
} else{
this.insureNoshow = true
}
},
getDepartmentByProjectNo(){
let params = {
@@ -903,6 +1062,8 @@
case 'GBCKS':
this.columns = this.departmentList
break
case 'dialogInsuredIdType':
this.columns = DataDictionary.insuredIdType
}
// if (pickerType == '1') {
@@ -989,6 +1150,9 @@
} else if (this.pickerType === 'GBCKS') {
this.projectDTO.departmentCode = value.id
this.projectDTO.departmentName = value.text
} else if (this.pickerType == 'dialogInsuredIdType') {
this.insuredDialogInfo.idNo = ''
this.insuredDialogInfo.idType = value.id
}
},
//证件起始截止日期
@@ -1053,7 +1217,7 @@
this.effectiveDateTypeAble = !(age > 45)
}
//年龄18周岁工作单位默认值为
if (age < 18) {
if (age < 18 && this.branchType != '14') {
this.userInfo.workcompany = this.userInfo.workcompany || '无'
}
if (this.userInfo.certificateValidate && !this.userInfo.certiexpiredate) {
@@ -1085,14 +1249,14 @@
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 //证件截止日期
}
this.userInfo.occupationCode = data.occupationCode //职业类别编码
this.userInfo.occupationName = data.occupationName //职业类别名称
this.userInfo.salarySource = data.salarySource //收入来源
this.userInfo.salarySource = this.branchType == '14' ? '' : data.salarySource //收入来源
this.userInfo.otherSalarySource = data.otherSalarySource // 其他收入来源
this.userInfo.lifeGrade = data.lifeGrade //寿险等级
this.userInfo.healthGrade = data.healthGrade //健康等级
@@ -1103,12 +1267,12 @@
this.userInfo.medical = data.socialSecurity //有无社保
this.userInfo.taxResidentId = data.residentStatus //税收居民身份
this.userInfo.averageAnnualIncome = data.averageYearlyIncome //平均年收入
this.userInfo.workcompany = this.specilFlag == '1' ? '' : data.workUnits //工作单位
this.userInfo.workcompany = this.branchType == '14' ? '' : this.specilFlag == '1' ? '' : data.workUnits //工作单位
// this.userInfo.jobStatus = data.jobStatus //工作情况
this.setCustomerMarriage(data.marryStatus)
// this.userInfo.familyAnnualIncome = data.familyAnnualIncome //家庭年收入
this.userInfo.email = data.email //电子邮箱
this.userInfo.liabilitiesMoney = data.liabilitiesMoney //负债金额
this.userInfo.liabilitiesMoney = this.branchType == '14' ? '' : data.liabilitiesMoney //负债金额
// this.userInfo.companyProvince = data.companyProvince //单位省
// this.userInfo.companyCity = data.companyCity //单位市
// this.userInfo.companyArea = data.companyArea //单位区
@@ -1159,6 +1323,9 @@
// }
// .then(valid => {
if (true === valid) {
if(this.branchType == "14" &&!this.insureInfo.orderNo){
return this.$toast('投保单号不能为空,请先生成投保单号~')
}
localStorage.chooseProductCodesNew = localStorage.chooseProductCodes
// 计算年龄
let age = utilsAge.getAge(this.userInfo.birthday, new Date())
@@ -1307,11 +1474,11 @@
// this.userInfo.occupationCode == '8000001'
// ) {
// }
if (!this.userInfo.workcompany) {
if (!this.userInfo.workcompany && this.branchType != '14') {
this.userInfo.workcompany = '无'
}
if (this.userInfo.salarySource == '4') {
if (this.userInfo.salarySource == '4' && this.branchType != '14') {
if (!this.userInfo.otherSalarySource) {
return this.$toast('请输入其它收入来源')
}
@@ -1389,7 +1556,7 @@
return this.$toast('亲,国籍为外籍,证件类型必须为护照或外国人永久居留身份证投保')
}
}
if (this.userInfo.isAsync == 1) {
if (this.userInfo.isAsync == 1 && this.branchType != '14') {
if (
!this.userWorkcompanys.some((item) => {
return item.asscompanies == this.userInfo.workcompany
@@ -1451,10 +1618,13 @@
orderType: 'APPNT_ORDER',
orderDTO: {
orderInfoDTO: {
orderNo: this.$route.query.orderNo,
orderNo: this.$route.query.orderNo ? this.$route.query.orderNo : this.branchType=="14" && this.insureInfo.orderNo ? this.insureInfo.orderNo : null,
isElecCont: this.isElecCont
},
appntDTO: {}
appntDTO: {},
userModel: {
branchType: this.branchType
}
}
}
this.thismystr = ''
@@ -1512,10 +1682,10 @@
this.$jump({
flag: 'h5',
extra: {
url: location.origin + `/#/sale/insuredPerson?${this.thismystr}` + '&orderNo=' + this.thismyorderNo,
url: location.origin + `/#/sale/insuredPerson?${this.thismystr}` + '&orderNo=' + this.thismyorderNo + '&branchType=' + this.branchType,
},
routerInfo: {
path: `/sale/insuredPerson?${this.thismystr}` + '&orderNo=' + this.thismyorderNo,
path: `/sale/insuredPerson?${this.thismystr}` + '&orderNo=' + this.thismyorderNo + '&branchType=' + this.branchType,
},
})
},
@@ -1557,9 +1727,10 @@
effectiveDataTypeChange(val) {
//勾选长期状态时,证件截止日期置空
if (val) {
this.userInfo.certiexpiredate = ''
this.userInfo.certiexpiredate = '9999-12-31'
this.certiexpiredateRequired = false
} else {
this.userInfo.certiexpiredate = ''
this.certiexpiredateRequired = true
}
},
@@ -1611,7 +1782,7 @@
this.userInfo.birthday = idToData(val).birthday
this.userInfo.sex = idToData(val).sex
//年龄小于18周岁工作单位默认值为
if (idToData(val).age < 18) {
if (idToData(val).age < 18 && this.branchType != '14') {
this.userInfo.workcompany = this.userInfo.workcompany || '无'
}
if (idToData(val).age > 45) {
@@ -1658,4 +1829,16 @@
margin-top: 45px;line-height: 24px;text-indent: 2em;letter-spacing: 1px;padding: 2px 10px;
}
}
.no-border {
/deep/.van-cell {
border-bottom: none;
}
}
.email-tip {
color: #999;
margin: 0 0 10px 20px;
padding: 5px 0 10px 85px;
border-bottom: 1px solid #eee;
font-size: 14px;
}
</style>

View File

@@ -82,6 +82,7 @@
:readonly="isAppnt"
></FieldDatePicter>
<FieldDatePicter
v-if="!userInfo.effectiveDateType"
v-validate="{ required: certiexpiredateRequired }"
label="证件截止日期"
name="证件截止日期"
@@ -169,24 +170,26 @@
:readonly="isAppnt"
/> -->
<van-field
v-if="Number(branchType)!==14"
v-model="userInfo.stature"
label="身高(cm)"
name="身高"
required
placeholder="请输入单位cm"
v-validate="'required|onlyNumber|stature'"
v-validate="Number(branchType)!==14? '' :'required|' + 'onlyNumber|stature'"
clearable
maxlength="5"
:readonly="isAppnt"
@blur="checkStature(userInfo.stature)"
/>
<van-field
v-if="Number(branchType)!==14"
v-model="userInfo.avoirdupois"
label="体重(kg)"
name="体重"
required
placeholder="请输入单位kg"
v-validate="'required|onlyNumber'"
v-validate="Number(branchType)!==14? '' :'required|' +'required|onlyNumber'"
clearable
:readonly="isAppnt"
@blur="checkAvoirdupois(userInfo.avoirdupois)"
@@ -230,6 +233,7 @@
@click="toSelect('3')"
/> -->
<select-radio
v-if="Number(branchType) !== 14"
:radios="medicalRadio"
label="有无社保"
name="有无社保"
@@ -275,6 +279,7 @@
placeholder="请选择"
v-validate="'required'"
@click="toSelect('9')"
v-if="branchType != '14'"
/>
<van-field
v-show="isShowOthenSalarySource"
@@ -306,6 +311,7 @@
clearable
maxlength="5"
:readonly="isAppnt"
v-if="branchType != '14'"
>
<div slot="label" class="flex flex-wrap"><span>负债金额</span><span>万元</span></div>
</van-field>
@@ -331,7 +337,7 @@
clearable
:readonly="isAppnt"
/> -->
<select-radio v-if="userInfo.relationToAppnt != 1" required :radios="Asyncs" label="是否协同工作单位" name="是否协同工作单位" v-validate="'required'" :value.sync="userInfo.isAsync"></select-radio>
<select-radio v-if="userInfo.relationToAppnt != 1 && Number(branchType) !== 14" required :radios="Asyncs" label="是否协同工作单位" name="是否协同工作单位" v-validate="'required'" :value.sync="userInfo.isAsync"></select-radio>
<SearchField
v-model="userInfo.workcompany"
@workcompanys="workcompanys"
@@ -340,6 +346,7 @@
placeholder="无工作单位,请输入无"
v-validate="'required'"
name="工作单位"
v-if="Number(branchType) !== 14 && userInfo.relationToAppnt != 1"
/>
<!-- <van-field
v-model="areaName"
@@ -646,11 +653,18 @@
userWorkcompanys:[],//单位数据
manageComCode:'',//代理人管理机构 52贵州 45广西
areaValue:'', //代理人管理机构--省级编号
renovate:''//是否展示风险测评
renovate:'',//是否展示风险测评
branchType:'',
}
},
created() {
this.specilFlag = this.$route.query.specilFlag
if(window.localStorage.getItem('branchType')) {
this.branchType = window.localStorage.getItem('branchType')
} else if(this.$route.query.branchType){
window.localStorage.setItem('branchType', this.$route.query.branchType)
this.branchType = this.$route.query.branchType
}
//如果是编辑/导航进来
// if (this.$route.query.edit) {
const orderNo = this.$route.query.orderNo
@@ -1168,10 +1182,10 @@
this.effectiveDateTypeAble = age <= 45
} else {
if (age < 16) {
this.userInfo.salarySource = 4
this.userInfo.salarySource = this.branchType == '14' ? null : 4
this.userInfo.otherSalarySource = '无'
this.userInfo.averageAnnualIncome = '0'
this.userInfo.liabilitiesMoney = '0'
this.userInfo.liabilitiesMoney = this.branchType == '14' ? '' : '0'
}
}
if (this.userInfo.certificateValidate && !this.userInfo.certiexpiredate) {
@@ -1274,14 +1288,14 @@
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 //证件截止日期
}
this.userInfo.occupationCode = data.occupationCode //职业类别编码
this.userInfo.occupationName = data.occupationName //职业类别名称
this.userInfo.salarySource = data.salarySource //收入来源
this.userInfo.salarySource = this.branchType == '14' ? null : data.salarySource //收入来源
this.userInfo.otherSalarySource = data.otherSalarySource // 其他收入来源
this.userInfo.lifeGrade = data.lifeGrade //寿险等级
this.userInfo.healthGrade = data.healthGrade //健康等级
@@ -1297,7 +1311,7 @@
this.setCustomerMarriage(data.marryStatus)
// this.userInfo.familyAnnualIncome = data.familyAnnualIncome //家庭年收入
// this.userInfo.email = data.email //电子邮箱
this.userInfo.liabilitiesMoney = data.liabilitiesMoney //负债金额
this.userInfo.liabilitiesMoney = this.branchType == '14' ? '' : data.liabilitiesMoney //负债金额
// this.userInfo.companyProvince = data.companyProvince //单位省
// this.userInfo.companyCity = data.companyCity //单位市
// this.userInfo.companyArea = data.companyArea //单位区
@@ -1642,7 +1656,7 @@
return this.$toast('0-7岁未成年人须由其父母投保请确定')
}
if (this.userInfo.salarySource == '4') {
if (this.userInfo.salarySource == '4' && this.branchType != '14') {
if (!this.userInfo.otherSalarySource) {
return this.$toast('请输入其它收入来源')
}
@@ -1780,6 +1794,9 @@
orderNo: this.$route.query.orderNo,
},
appntDTO: {},
userModel: {
branchType: this.branchType
}
},
}
if (this.userInfo.mediaDTOS == '') {
@@ -1875,11 +1892,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
@@ -1988,13 +2006,18 @@
//年龄小于18周岁工作单位默认值为
if (idToData(val).age < 18) {
this.userInfo.workcompany = this.userInfo.workcompany || ''
this.userInfo.marriageStatus = this.branchType == '14' ? '未婚' : this.userInfo.marriageStatus
this.userInfo.marriage = this.branchType == '14' ? 2 : this.userInfo.marriage
} else {
this.userInfo.marriageStatus = this.branchType == '14' ? '' : this.userInfo.marriageStatus
this.userInfo.marriage = this.branchType == '14' ? null : this.userInfo.marriage
}
if (!from) {
if (idToData(val).age < 16) {
this.userInfo.salarySource = 4
this.userInfo.salarySource = this.branchType == '14' ? null : 4
this.userInfo.otherSalarySource = ''
this.userInfo.averageAnnualIncome = '0'
this.userInfo.liabilitiesMoney = '0'
this.userInfo.liabilitiesMoney = this.branchType == '14' ? '' : '0'
} else {
this.userInfo.salarySource = ''
this.userInfo.averageAnnualIncome = ''

View File

@@ -13,7 +13,8 @@
</van-tabs>
</van-sticky>
<van-list v-model="loading" :immediate-check="false" :finished="finished" :finished-text="finishedText" error-text="请求失败,点击重新加载" :error.sync="error" @load="loadMore" class="pb45">
<van-list v-model="loading" :immediate-check="false" :finished="finished" :finished-text="finishedText"
error-text="请求失败点击重新加载" :error.sync="error" @load="loadMore" class="pb45">
<div v-if="isSuccess">
<div v-if="saleList.length > 0">
<div v-for="(order, index) in saleList" :key="index">
@@ -55,14 +56,15 @@
<span class="c-gray-darker fwb">首期总保费</span>
<span class="yellow fwb">{{ order.firstPrem == 0 ? '0.00' : order.firstPrem | moneyFormat }}</span>
</div>
<div class="pt15" v-if="active == 'commit' || active == 'waitUnderwritten'" style="border-top:1px solid #dadada">
<div class="pt15" v-if="active == 'commit' || active == 'waitUnderwritten'"
style="border-top:1px solid #dadada">
<div>
<div class="w80 inline-b">
<van-tag plain color="#999999">投保单号</van-tag>
</div>
<span class="fs14 c-gray-dark">{{ order.orderInfoDTO.orderNo }}</span>
</div>
<div class="mt10">
<div class="mt10" v-if="active == 'commit' || active == 'waitUnderwritten'" >
<div class="w80 inline-b">
<van-tag plain color="#999999">状态</van-tag>
</div>
@@ -70,20 +72,34 @@
</div>
</div>
<div v-if="!!order.orderInfoDTO.doubleFlag && order.orderInfoDTO.doubleFlag == '0'" class="fs12 mt15">
温馨提示本投保单满足双录条件需要双录质检通过后才能承保
<div v-if="branchType =='14' && order.insuredDTOs[0].riskDTOLst[0].insuYear > 1">
温馨提示一年期以上保险产品需按监管要求双录请及时双录
</div>
<div v-else>
温馨提示本投保单满足双录条件需要双录质检通过后才能承保
</div>
</div>
<div class="text-right mt15 ">
<van-button v-if="active == 'uncommit'" round @click="goDetail(order)" size="small" class="mr5" type="danger" v-no-more-click="1000">
<van-button round @click="goInsuredInform(order)" size="small" v-if="buttonShow == '14'"
:disabled="order.emailStatus == 'disable'" class="mr5" type="danger" v-no-more-click="1000">
获取投保资料
</van-button>
<van-button v-if="active == 'uncommit'" round @click="goDetail(order)" size="small" class="mr5"
type="danger" v-no-more-click="1000">
编辑
</van-button>
<van-button v-if="active == 'uncommit'" plain round @click.stop="del(order, index)" size="small" class="mr5" type="danger" v-no-more-click="1000">
<van-button v-if="active == 'uncommit'" plain round @click.stop="del(order, index)" size="small"
class="mr5" type="danger" v-no-more-click="1000">
删除
</van-button>
<van-button @click="againPay(order)" v-if="active == 'commit' && order.orderInfoDTO.orderStatus == '19'" size="small" class="mr5" type="danger" round>
<van-button @click="againPay(order)" v-if="active == 'commit' && order.orderInfoDTO.orderStatus == '19'"
size="small" class="mr5" type="danger" round>
重新支付
</van-button>
<van-button @click="changeCard(order)" v-if="(active == 'commit' && order.orderInfoDTO.orderStatus == '48') || (active == 'commit' && order.orderInfoDTO.orderStatus == '49')" size="small" class="mr5" type="danger" round>
<van-button @click="changeCard(order)"
v-if="(active == 'commit' && order.orderInfoDTO.orderStatus == '48') || (active == 'commit' && order.orderInfoDTO.orderStatus == '49')"
size="small" class="mr5" type="danger" round>
修改卡号
</van-button>
<template v-if="active == 'commit' && order.orderInfoDTO.orderStatus == '55'">
@@ -94,13 +110,16 @@
重新支付
</van-button>
</template>
<template v-if="active == 'commit' && (order.orderInfoDTO.orderStatus == '02' || order.orderInfoDTO.orderStatus == '58')">
<template
v-if="active == 'commit' && (order.orderInfoDTO.orderStatus == '02' || order.orderInfoDTO.orderStatus == '58')">
<van-button @click="goPay(order)" size="small" class="mr5" type="danger" round>
支付
</van-button>
</template>
<!-- doubleFlag 1- 0-doubleFlag为0双录时canRevokeDouble加 orderStatus 16 -->
<van-button @click="revokeOrder(order)" v-if="active == 'commit' && ((canRevoke[order.orderInfoDTO.orderStatus] && (order.orderInfoDTO.doubleFlag == '1' || order.orderInfoDTO.doubleFlag == null || order.orderInfoDTO.doubleFlag == ''))|| (canRevokeDouble[order.orderInfoDTO.orderStatus] && order.orderInfoDTO.doubleFlag == '0'))" size="small" class="mr5" type="danger" round>
<van-button @click="revokeOrder(order)"
v-if="active == 'commit' && ((canRevoke[order.orderInfoDTO.orderStatus] && (order.orderInfoDTO.doubleFlag == '1' || order.orderInfoDTO.doubleFlag == null || order.orderInfoDTO.doubleFlag == '')) || (canRevokeDouble[order.orderInfoDTO.orderStatus] && order.orderInfoDTO.doubleFlag == '0'))"
size="small" class="mr5" type="danger" round>
撤单
</van-button>
<van-button @click="seePolicy(order)" v-if="active == 'commit'" size="small" type="danger" round>
@@ -119,17 +138,46 @@
</van-list>
<van-button type="danger" class="bottom-btn" @click="add" v-no-more-click="1000">点我新增</van-button>
<van-dialog class="dialog-delete" @confirm="checkCaptchaCode" @cancel="cancelCaptchaCode" :before-close="beforeClose" confirm-button-color="#fff" v-model="revokePanelShow" title="短信验证" show-cancel-button>
<van-dialog class="dialog-delete" @confirm="checkCaptchaCode" @cancel="cancelCaptchaCode"
:before-close="beforeClose" confirm-button-color="#fff" v-model="revokePanelShow" title="短信验证" show-cancel-button>
<p class="captchaReceiver">投保人手机号: {{ captchaReceiver | phoneNumFilter }}</p>
<van-field v-model="sms" center clearable placeholder="请输入短信验证码">
<template #button>
<van-button :disabled="sendTime !== 0" v-no-more-click="1000" @click="getCaptchaCode" size="small" type="danger">{{
sendTime ? `${sendTime}s后获取` : '获取验证码'
}}</van-button>
<van-button :disabled="sendTime !== 0" v-no-more-click="1000" @click="getCaptchaCode" size="small"
type="danger">{{
sendTime ? `${sendTime}s后获取` : '获取验证码'
}}</van-button>
</template>
</van-field>
</van-dialog>
<!-- <van-dialog class="dialog-getInform" @confirm="checkCaptchaCode" @cancel="cancelCaptchaCode" :before-close="beforeClose" confirm-button-color="#fff" v-model="getInformShow" title="获取投保资料">
<p class="captchaReceiver">请输入您获取投保资料的邮箱</p>
<van-field v-model="sms" center clearable placeholder="请输入短信验证码">
</van-field>
</van-dialog> -->
<van-popup v-model="getInformShow" round closeable class="insure-popup">
<div class="insure-email">
<div class="email-box">
<div class="email-title">获取投保资料</div>
<div class="email-content">
<div v-if="inputShow">
<div class="email-c">请输入您获取投保资料的邮箱</div>
<van-field class="email-input" v-model="emailForm.email" placeholder="请输入邮箱"
v-validate="'required|email'" />
</div>
<div v-if="contentShow">
{{ emailContent }}
</div>
</div>
<div class="email-btn">
<van-button type="danger" @click="inputShow ? getInformOk() : tipOk()" round>确定</van-button>
</div>
</div>
</div>
</van-popup>
<!-- 短信验证 -->
<check-agent @checModelSuccessMethod="initThisPage" />
</div>
@@ -137,11 +185,12 @@
<script>
import { Search, Tabs, Tab, List, Tag, Sticky, Toast, Dialog, Field } from 'vant'
import { orderList, deleteOrderInfo, getAuthCode, revokeOrder, getBankCardSignState } from '@/api/ebiz/sale/sale'
import { orderList, deleteOrderInfo, getAuthCode, revokeOrder, getBankCardSignState, getSendEmail, getDownloadZip } from '@/api/ebiz/sale/sale'
import { funcPermCheck } from '@/api/ebiz/common/common'
import { formatRiskList } from '@/assets/js/utils/formatRiskList.js'
import dataDictionary from '@/assets/js/utils/data-dictionary' //根据数据字典找到用户等级
import CheckAgent from '@/components/common/CheckAgent'
import { getAgentInfo } from '@/api/ebiz/my/my'
export default {
name: 'saleList',
@@ -202,7 +251,21 @@ export default {
captchaTimer: null,
captchaReceiver: '',
revokeOrderNo: '',
captchaMaped: false
captchaMaped: false,
getInformShow: false,
emailForm: { email: '' },
inputShow: true,
contentShow: false,
buttonShow: '',
emailContent: '系统将会将投保资料发送至您录入邮箱,解压密码为投保人身份证号的后六位,请您稍后进行查看',
branchType: ''
}
},
created() {
if(this.$CacheUtils.getLocItem('branchType')) {
this.branchType = this.$CacheUtils.getLocItem('branchType')
}else{
this.getAgentInfo()
}
},
mounted() {
@@ -216,8 +279,19 @@ export default {
funcPermCheck({}).then(res => {
this.isCheck = res.result
})
if (window.localStorage.getItem('branchType') == '14') {
this.buttonShow = localStorage.getItem('branchType')
}
},
methods: {
async getAgentInfo() {
const result = await getAgentInfo({})
if (result.result === '0') {
this.branchType = result.branchType
localStorage.setItem('branchType', this.branchType)
this.$CacheUtils.setLocItem('branchType', this.branchType)
}
},
beforeClose(action, done) {
this.captchaMaped ? done() : done(false)
},
@@ -265,7 +339,7 @@ export default {
this.saleList = []
this.isSuccess = false
this.currentPage = 1
;[this.loading, this.finished] = [true, false]
;[this.loading, this.finished] = [true, false]
let pageInfo = {
pageNum: this.currentPage,
pageSize: this.pageSize,
@@ -347,7 +421,7 @@ export default {
url = '/sale/AttachmentManagement?orderNo=' + order.orderInfoDTO.orderNo
break
case '49': //影像上传页填写成功,跳到银行卡号确认页
url = '/sale/SignatureConfirmation?orderNo=' + order.orderInfoDTO.orderNo
url = '/sale/SignatureConfirmation?orderNo=' + order.orderInfoDTO.orderNo + '&branchType=' + this.branchType
break
}
this.$jump({
@@ -435,27 +509,27 @@ export default {
this.currentPage = 1
this.active = name
this.saleList = []
;[this.loading, this.finished] = [true, false]
;[this.loading, this.finished] = [true, false]
this.finishedText = '正在加载...'
this.loadMore()
},
searchList() {
this.currentPage = 1
this.saleList = []
;[this.loading, this.finished] = [true, false]
;[this.loading, this.finished] = [true, false]
this.finishedText = '正在加载...'
this.loadMore()
},
//投保单详情
async goDetail(order) {
let thisToken = this.$CacheUtils.getLocItem('token')
let thisbranchType = ''
if(this.$CacheUtils.getLocItem('branchType') == '13') {
let thisbranchType = ''
if (this.$CacheUtils.getLocItem('branchType') == '13') {
thisbranchType = this.$CacheUtils.getLocItem('branchType')
}
window.localStorage.clear()
this.$CacheUtils.setLocItem('token', thisToken)
if(thisbranchType) {
if (thisbranchType) {
this.$CacheUtils.setLocItem('branchType', thisbranchType)
}
window.localStorage.setItem('detailJump', '')
@@ -472,15 +546,15 @@ export default {
localStorage.isFrom = 'sale'
localStorage.removeItem('changeCard')
if(orderStatus == '01'){ //已签名待客户确认, 跳到签名确认页面
url = '/sale/SignatureConfirmation?edit=1&orderNo='+orderNo
url = '/sale/SignatureConfirmation?edit=1&orderNo='+orderNo + '&branchType=' + this.branchType
}else if(orderStatus == '43'){//未签名待客户确认, 跳到签名确认页面
url = '/sale/SignatureConfirmation?edit=1&orderNo='+orderNo
url = '/sale/SignatureConfirmation?edit=1&orderNo='+orderNo + '&branchType=' + this.branchType
}else if(orderStatus == '35'){//投保人保存成功, 跳到被保险人页面
url = '/sale/insuredPerson?edit=1&orderNo='+orderNo
url = '/sale/insuredPerson?edit=1&orderNo='+orderNo + '&branchType=' + this.branchType
}else if(orderStatus == '36'){//被保险人保存成功, 跳到已选产品列表
url = '/common/selectedProduct?edit=1&orderNo='+orderNo
url = '/common/selectedProduct?edit=1&orderNo='+orderNo + '&branchType=' + this.branchType
}else if(orderStatus == '37'){//受益人保存成功, 跳到告知信息--
url = '/sale/NotifyingMessage?edit=1&orderNo='+orderNo
url = '/sale/NotifyingMessage?edit=1&orderNo='+orderNo
}else if(orderStatus == '38'){ //账户信息保存成功, 跳到附件管理--
if(order.orderInfoDTO.activeType == 'KMH') {
let params = {
@@ -494,25 +568,25 @@ export default {
})
await getBankCardSignState(params).then(res => {
this.$toast.clear()
if(res.result == 0) {
if(res.content.needSign == '0' || res.content.needSign == null) {
if(res.content.signState == '0' || res.content.signState == '2') {
url = '/sale/AttachmentManagement?edit=1&orderNo='+orderNo
if (res.result == 0) {
if (res.content.needSign == '0' || res.content.needSign == null) {
if (res.content.signState == '0' || res.content.signState == '2') {
url = '/sale/AttachmentManagement?edit=1&orderNo=' + orderNo
} else {
url = '/sale/AccountInformation?edit=1&orderNo='+orderNo
url = '/sale/AccountInformation?edit=1&orderNo=' + orderNo
}
} else {
url = '/sale/AccountInformation?edit=1&orderNo='+orderNo
url = '/sale/AccountInformation?edit=1&orderNo=' + orderNo
}
} else {
this.$toast(res.resultMessage)
}
})
} else {
url = '/sale/AttachmentManagement?edit=1&orderNo='+orderNo
url = '/sale/AttachmentManagement?edit=1&orderNo=' + orderNo
}
}else if(orderStatus == '39'){ //险种信息保存成功, 跳到已选产品列表
url = '/common/selectedProduct?edit=1&orderNo='+orderNo
url = '/common/selectedProduct?edit=1&orderNo='+orderNo + '&branchType=' + this.branchType
}else if(orderStatus == '40'){//告知信息保存成功, 跳到风险测评--
if( order.riskEvaluationDTO.isShowEvaluationPoint != '1'){
if(order.universalRiskNotifyDTO && order.universalRiskNotifyDTO.isUniversalRiskNotifyShowPoint == '1'){
@@ -520,10 +594,14 @@ export default {
}else{
url = '/sale/AccountInformation?edit=1&orderNo='+orderNo
}
}else {
url = '/sale/answerPage?edit=1&orderNo='+orderNo
} else {
url = '/sale/answerPage?edit=1&orderNo=' + orderNo
}
}else if(orderStatus == ''){//跳到投保人
} else if(orderStatus == '' || (orderStatus == '66' && this.branchType == '14')){
/*
*跳到投保人
*银保渠道特殊情况66投保人信息填写不完整
*/
url = '/sale/insuredInfo?edit=1&orderNo='+orderNo
}else if(orderStatus == '44'){//建议书转投保, 跳到投保人
url = '/sale/insuredInfo?edit=1&orderNo='+orderNo
@@ -533,8 +611,8 @@ export default {
}else{
url = '/sale/universalRiskNotifyingMessage?edit=1&orderNo='+orderNo
}
}else if(orderStatus == '63'){//风险测评保存成功, 跳到账户信息--
url = '/sale/AccountInformation?edit=1&orderNo='+orderNo
} else if (orderStatus == '63') {//风险测评保存成功, 跳到账户信息--
url = '/sale/AccountInformation?edit=1&orderNo=' + orderNo
}
this.$jump({
flag: 'h5',
@@ -570,7 +648,7 @@ export default {
this.saleList = []
this.isSuccess = false
this.currentPage = 1
;[this.loading, this.finished] = [true, false]
;[this.loading, this.finished] = [true, false]
let pageInfo = {
pageNum: this.currentPage,
pageSize: this.pageSize,
@@ -582,18 +660,18 @@ export default {
}
})
})
.catch(() => {})
.catch(() => { })
},
//新增
add() {
let thisToken = this.$CacheUtils.getLocItem('token')
let thisbranchType = ''
if(this.$CacheUtils.getLocItem('branchType') == '13') {
let thisbranchType = ''
if (this.$CacheUtils.getLocItem('branchType') == '13') {
thisbranchType = this.$CacheUtils.getLocItem('branchType')
}
window.localStorage.clear()
this.$CacheUtils.setLocItem('token', thisToken)
if(thisbranchType) {
if (thisbranchType) {
this.$CacheUtils.setLocItem('branchType', thisbranchType)
}
@@ -622,6 +700,81 @@ export default {
this.captchaReceiver = order.appntDTO.mobile
this.revokeOrderNo = order.orderInfoDTO.orderNo
})
},
// 获取投保资料
goInsuredInform(order) {
this.getInformShow = true
this.inputShow = true
this.contentShow = false
this.revokeOrderNo = order.orderInfoDTO.orderNo
if (order.appntDTO.email) {
this.emailForm.email = order.appntDTO.email
} else {
this.emailForm.email = ''
}
},
// 确定邮件发送
getInformOk() {
let params = {
orderNo: this.revokeOrderNo,
emailUrl: this.emailForm.email
}
this.$validator.validate().then(valid => {
if (true === valid) {
Toast.loading({
message: '加载中...',
loadingType: 'spinner',
forbidClick: true,
duration: 0
});
getSendEmail(params).then(res => {
Toast.clear();
if (res.result == '0') {
// Toast.loading({
// message: '加载中...',
// loadingType: 'spinner',
// forbidClick: true,
// duration: 2000
// });
// 调用下载方法
// getDownloadZip({ orderNo: this.revokeOrderNo }).then(downRes => {、
// this.handleDownload(downRes)
this.inputShow = false
this.contentShow = true
this.emailContent = '系统将会将投保资料发送至您录入邮箱,解压密码为投保人身份证号的后六位,请您稍后进行查看'
// })
} else if (res.result == '1' && res.resultMessage == '2') {
this.inputShow = false
this.contentShow = true
this.emailContent = '该保单近期已经获取过投保资料,请您移步邮箱进行查看'
} else if (res.result == '1') {
Toast.fail(res.resultMessage)
}
}).catch(error => {
Toast.clear();
throw error;
})
}
else {
this.$toast(this.$validator.errors.all()[0])
}
})
},
// 提示弹窗按钮
tipOk() {
this.getInformShow = false
},
handleDownload(data) {
// 处理接口返回的文件流
const blob = new Blob([data], { type: 'application/zip' });
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = this.revokeOrderNo + '_appnt_insured.zip'; // 设置下载文件名
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
URL.revokeObjectURL(url);
}
},
filters: {
@@ -664,7 +817,57 @@ export default {
background: #fff !important;
border-radius: 10px;
}
.van-search {
background: none !important;
}
.insure-popup {
width: 80%;
max-width: 500px;
margin: auto;
max-height: 80vh;
overflow-y: auto;
}
.insure-email {
position: relative;
padding: 20px;
}
.email-box {
width: 100%;
}
.email-title {
text-align: center;
color: #ee0a24;
font-size: 18px;
margin-bottom: 20px;
}
.email-content {
width: 100%;
margin: 0 auto 20px;
font-size: 14px;
}
.email-c {
margin-bottom: 10px;
text-align: center;
}
.email-input {
width: 100%;
margin: 10px auto;
}
.email-btn {
text-align: center;
margin-top: 20px;
.van-button--danger {
width: 180px;
}
}
</style>

View File

@@ -183,7 +183,11 @@ export default {
'10': '投保人财务告知',
'9': '被保险人健康告知',
'11': '被保险人财务告知',
'13': '被保险人健康告知'
'13': '被保险人健康告知',
'14': '被保险人职业告知',
'15': '被保险人职业告知',
'16': '被保险人职业告知',
'17': '被保险人职业告知',
},
salePageFlag: '5',
// 是否特定医疗险
@@ -208,20 +212,34 @@ export default {
this.saleInsuredPersonInfo = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo'))
//如果返回参数存在曾经提交的告知信息,获取曾经提交的告知信息
let insuredFinanceImpartDTO = res.orderDTO.appntDTO.financeImpartDTO //投保人财务告知集合
// 银保非实时才会存在这个字段
let insuredJobImpartDTO = res.orderDTO.appntDTO.jobImpartDTO ? res.orderDTO.appntDTO.jobImpartDTO : {impartItemDTOS: false} //投保人健康告知集合
// 银保非实时才会存在这个字段
let insuredPersonJobImpartDTO = res.orderDTO.insuredDTOs[0].jobImpartDTO ?res.orderDTO.insuredDTOs[0].jobImpartDTO : {impartItemDTOS: false}
let insuredImpartDTO = res.orderDTO.appntDTO.impartDTO //投保人健康告知集合
let insuredPersionFinanceImpartDTO = res.orderDTO.insuredDTOs[0].financeImpartDTO //被保人财务告知集合
let insuredPersionImpartDTO = res.orderDTO.insuredDTOs[0].impartDTO //被保人健康告知集合
if (
insuredFinanceImpartDTO.impartItemDTOS ||
insuredImpartDTO.impartItemDTOS ||
insuredPersionFinanceImpartDTO.impartItemDTOS ||
insuredPersionImpartDTO.impartItemDTOS
insuredPersionImpartDTO.impartItemDTOS||
insuredJobImpartDTO.impartItemDTOS||
insuredPersonJobImpartDTO.impartItemDTOS
) {
if (insuredFinanceImpartDTO.impartItemDTOS) {
this.impartDTOS.push({ impartItemDTOS: insuredFinanceImpartDTO.impartItemDTOS, impartType: insuredFinanceImpartDTO.impartType })
} else if (insuredPersionFinanceImpartDTO.impartItemDTOS && this.relationToAppnt == '1') {
this.impartDTOS.push({ impartItemDTOS: insuredPersionFinanceImpartDTO.impartItemDTOS, impartType: insuredPersionFinanceImpartDTO.impartType })
}
if (insuredJobImpartDTO.impartItemDTOS) {
this.impartDTOS.push({ impartItemDTOS: insuredJobImpartDTO.impartItemDTOS, impartType: insuredJobImpartDTO.impartType })
} else if (insuredPersonJobImpartDTO.impartItemDTOS && this.relationToAppnt == '1') {
this.impartDTOS.push({ impartItemDTOS: insuredPersonJobImpartDTO.impartItemDTOS, impartType: insuredPersonJobImpartDTO.impartType })
}
if (insuredImpartDTO.impartItemDTOS) {
this.impartDTOS.push({ impartItemDTOS: insuredImpartDTO.impartItemDTOS, impartType: insuredImpartDTO.impartType })
} else if (insuredPersionImpartDTO.impartItemDTOS && this.relationToAppnt == '1') {
@@ -230,6 +248,9 @@ export default {
if (this.relationToAppnt != '1') {
if (insuredPersionFinanceImpartDTO.impartItemDTOS) {
this.impartDTOS.push({ impartItemDTOS: insuredPersionFinanceImpartDTO.impartItemDTOS, impartType: insuredPersionFinanceImpartDTO.impartType })
}
if (insuredPersonJobImpartDTO.impartItemDTOS) {
this.impartDTOS.push({ impartItemDTOS: insuredPersonJobImpartDTO.impartItemDTOS, impartType: insuredPersonJobImpartDTO.impartType })
}
if (insuredPersionImpartDTO.impartItemDTOS) {
this.impartDTOS.push({ impartItemDTOS: insuredPersionImpartDTO.impartItemDTOS, impartType: insuredPersionImpartDTO.impartType })
@@ -258,6 +279,7 @@ export default {
// 获取告知消息
this.information()
}
//投被同人取到年纪和性别去判断是是否显示内容
this.saleInsuredAge = utilsAge.getAge(this.saleInsuredInfo.birthday, new Date())
this.saleInsuredSex = this.saleInsuredInfo.sex
@@ -599,6 +621,8 @@ export default {
let objInsured = {}
let financeImpartDTO = {}
let financeImpart = {}
let jobImpartDTO = {} //
let jobImpart = {} //
// let arr = []
that.impartDTOS.map(item => {
// 投保人健康告知
@@ -647,6 +671,18 @@ export default {
})
objInsured = item
return objInsured
}else if ([14,15,16,17].includes(Number(item.impartType))){
item.impartItemDTOS.map(i => {
delete i.isSelect
delete i.show
})
return jobImpart = item
}else if ([18,19,20,21].includes(Number(item.impartType))){
item.impartItemDTOS.map(i => {
delete i.isSelect
delete i.show
})
return jobImpartDTO = item
}
})
@@ -769,7 +805,54 @@ export default {
}
})
}
else {
else if(financeImpart == {}){
let data = {
orderType: 'IMPART_ORDER',
orderDTO: {
orderInfoDTO: {
orderNo: this.$route.query.orderNo,
productCode: JSON.parse(localStorage.mainRiskCodes)[0]
},
// 投保人
appntDTO: {
impartDTO: obj,
jobImpartDTO: jobImpartDTO
},
// 被保险人
insuredDTOs: [{ impartDTO: objInsured }]
}
}
saveInformation(data).then(res => {
if (res.result == '0') {
localStorage.removeItem('changeCard')
if(this.isUniversalRiskNotifyShowPoint == '1'){
that.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/universalRiskNotifyingMessage?orderNo=' + this.$route.query.orderNo,
},
routerInfo: {
path: '/sale/universalRiskNotifyingMessage?orderNo=' + this.$route.query.orderNo
}
})
}else{
that.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/AccountInformation',
},
routerInfo: {
path: '/sale/AccountInformation'
}
})
}
} else {
this.$toast(res.resultMessage)
}
})
}
else {
let data = {
orderType: 'IMPART_ORDER',
orderDTO: {
@@ -781,10 +864,11 @@ export default {
// 投保人
appntDTO: {
impartDTO: obj,
financeImpartDTO: financeImpartDTO
financeImpartDTO: financeImpartDTO,
jobImpartDTO: jobImpartDTO
},
// 被保险人
insuredDTOs: [{ impartDTO: objInsured, financeImpartDTO: financeImpart }]
insuredDTOs: [{ impartDTO: objInsured, financeImpartDTO: financeImpart,jobImpartDTO: jobImpart }]
}
}
saveInformation(data).then(res => {

View File

@@ -24,7 +24,11 @@
</div>
<div v-else-if="uwResult == '53'">
<img :src="srcPending" class="mb40 mt20" />
<p class="title">待核心业务系统批量扣费</p>
<p class="title">核保通过待核心业务系统批量扣费</p>
</div>
<div v-else-if="uwResult == '65'">
<img :src="srcPending" class="mb40 mt20" />
<p class="title">银保非实时单提交再次核保</p>
</div>
<div v-else>
<img :src="srcPending" class="mb40 mt20" />
@@ -38,9 +42,9 @@
</van-cell-group>
<div class="bg-white p10 pb150">
<div class="text-left ml20 mt20" v-if="uwResult == '46' || uwResult == '07'">
<div class="text-left ml20 mt20" v-if="uwResult == '46' || uwResult == '07'|| uwResult == '65'">
<div class="fs14" v-html="`原因:${resultMessage}`"></div>
<div class="fs14" v-html="`${orderNoStr}`"></div>
<!-- <div class="fs14" v-html="`${orderNoStr}`"></div>-->
</div>
</div>
</div>
@@ -98,6 +102,7 @@ export default {
}
that.uwResult = window.localStorage.getItem('uwResult')
that.underWriteData = JSON.parse(window.localStorage.getItem('underWriteData'))
that.resultMessage = that.resultMessage || that.underWriteData.message || ''
console.log('resultMessage: ', window.localStorage.getItem('resultMessage'))
},
methods: {

View File

@@ -570,10 +570,17 @@ export default {
isFirstCome: 0,
cvalidateStr: '',
activeType: '',
insuredAge: ''
insuredAge: '',
branchType: ''
}
},
async created() {
if(window.localStorage.getItem('branchType')) {
this.branchType = window.localStorage.getItem('branchType')
} else if(this.$route.query.branchType){
window.localStorage.setItem('branchType', this.$route.query.branchType)
this.branchType = this.$route.query.branchType
}
console.log('保单号', localStorage.getItem('orderNo'))
if (this.$route.query.token) {
window.localStorage.setItem('token', this.$route.query.token)
@@ -696,7 +703,9 @@ export default {
if (this.$route.query.airSign) {
sessionStorage.setItem('airSign', this.$route.query.airSign)
}
window.localStorage.setItem('token', this.$route.query.token)
if (this.$route.query.token) {
window.localStorage.setItem('token', this.$route.query.token)
}
window.localStorage.setItem('orderNo', this.$route.query.orderNo)
if (this.$route.query.changeCard == '0') {
localStorage.setItem('changeCard', true)
@@ -1198,6 +1207,7 @@ export default {
}
},
goUrl() {
window.localStorage.setItem('isFirstRead', '1')
let that = this
if (window.localStorage.getItem('sign-val') == '3') {
if (that.agentSignStatus == '3') {
@@ -1326,7 +1336,6 @@ export default {
}
}
}
if (path) {
that.$jump({
flag: 'h5',

View File

@@ -315,7 +315,9 @@ export default {
this.$CacheUtils.setLocItem('saleInsuredInfo', this.$route.query.saleInsuredInfo)
this.$CacheUtils.setLocItem('saleInsuredPersonInfo', this.$route.query.saleInsuredPersonInfo)
window.localStorage.setItem('token', this.$route.query.token)
if (this.$route.query.token) {
window.localStorage.setItem('token', this.$route.query.token)
}
window.localStorage.setItem('orderNo', this.$route.query.orderNo)
window.localStorage.setItem('relationToAppnt', this.$route.query.relationToAppnt)
if (this.$route.query.signInvalid) {

View File

@@ -8,15 +8,21 @@
<van-icon v-if="index != fileList.length - 1" name="arrow" style="margin: 0px 5px;"/>
</p>
</div>
<van-notice-bar :scrollable='false' v-if='!Time' class='notice'>
<!-- 普通渠道的读秒提示 -->
<van-notice-bar :scrollable='false' v-if='branchType != "14" && !Time' class='notice'>
{{ `提示:阅读时长需在${this.Time ? this.time : this.number}秒以上` }}
</van-notice-bar>
<div id="pdf" style="overflow: scroll;background: #eee;" :style="[{height:isPreview ? '100vh' : '75vh'}]">
<div id="pdf" style="overflow: scroll;background: #eee;" :style="[{height:isPreview ? '100vh' : '75vh'}]" @scroll="handleScroll">
<div id="pdfH5ID"></div>
<div ref="activeButtonEle"></div>
<!-- 银保渠道右侧标注提示 -->
<div v-if='branchType == "14" && !isScrollToBottom' class='scroll-tip'>
请下滑至底部完成阅读
</div>
</div>
<div style="height: 20vh;" v-if="!isPreview">
<van-radio-group v-model='radio' class='pb10 pt10 pl10 fs20'>
<van-radio name='1' @click='click'>
<van-radio name='1' @click='click' :disabled="branchType == '14' && !isScrollToBottom">
本人确认已阅读<span>{{documentName}}</span>
</van-radio>
</van-radio-group>
@@ -38,6 +44,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 +80,16 @@
chaoluButtonDisabled: true,
chaoluStatus: false,
productType: '',
specialAgreementShow: false,
associatedPolicyNo: null,
chooseProductCodes: null,
riskName: null,
isFirstRead: null,
branchType: '',
// 银保渠道滚动检测相关
isScrollToBottom: false,
scrollTimer: null,
pdfStatus: void 0
}
},
components: {
@@ -72,13 +99,29 @@
[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(window.localStorage.getItem('branchType')) {
this.branchType = window.localStorage.getItem('branchType')
} else if(this.$route.query.branchType){
window.localStorage.setItem('branchType', this.$route.query.branchType)
this.branchType = this.$route.query.branchType
}
if(this.$route.query.currentIndex){
this.Time = true
this.isPreview = true
} else if(window.sessionStorage.getItem('signH5Img')){
this.Time = true
} else {
this.timeOut()
// 银保渠道不需要读秒
if(this.branchType != '14') {
this.timeOut()
}
}
setTimeout(() => {
// eslint-disable-next-line no-undef
@@ -113,6 +156,31 @@
},
methods: {
// 处理滚动事件
handleScroll(event) {
if (this.branchType != '14') return
// 防抖处理
if (this.scrollTimer) {
clearTimeout(this.scrollTimer)
}
this.scrollTimer = setTimeout(() => {
const element = event.target
const scrollTop = element.scrollTop
const scrollHeight = element.scrollHeight
const clientHeight = element.clientHeight
// 判断是否滚动到底部
if (scrollTop + clientHeight >= scrollHeight - 5) {
this.isScrollToBottom = true
// 滚动到底部后,自动设置阅读完成状态
if (!this.isOver) {
this.isOver = true
this.Time = true
}
} else {
this.isScrollToBottom = false
}
}, 100)
},
getOrderDetail(){
if(this.$route.query.currentIndex) {
this.current = Number(this.$route.query.currentIndex)
@@ -144,15 +212,37 @@
// 点击阅读时
click() {
let that = this
if (that.isOver == false) {
Dialog.confirm({
title: '提示',
message: '该内容涉及您的重大权益,请您仔细阅读',
showCancelButton: false
}).then(() => {
that.radio = ''
})
// 银保渠道
if (this.branchType == '14') {
if (!this.isScrollToBottom) {
Dialog.confirm({
title: '提示',
message: '请下滑至底部完成阅读',
showCancelButton: false
}).then(() => {
that.radio = ''
})
return
}
} else {
// 普通渠道的原有逻辑
if (that.isOver == false) {
Dialog.confirm({
title: '提示',
message: '该内容涉及您的重大权益,请您仔细阅读',
showCancelButton: false
}).then(() => {
that.radio = ''
})
} else {
if(this.fileList[this.current - 1].documentCode == '2'){
that.chaoluButtonDisabled = false
}
}
}
// 银保渠道滚动到底部后的处理
if (this.branchType == '14' && this.isScrollToBottom) {
if(this.fileList[this.current - 1].documentCode == '2'){
that.chaoluButtonDisabled = false
}
@@ -222,6 +312,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: {
@@ -257,19 +348,42 @@
},
changeFile(readStatus){
this.documentName = this.fileList[this.current - 1].documentName
if(readStatus){
this.radio = '1'
this.isOver = true
this.Time = true
} else if(window.sessionStorage.getItem('signH5Img')) {
this.radio = '1'
this.isOver = true
this.chaoluButtonDisabled = false
// 银保渠道
if (this.branchType == '14') {
this.isScrollToBottom = false
if(readStatus){
this.radio = '1'
this.isOver = true
this.Time = true
this.isScrollToBottom = true
} else if(window.sessionStorage.getItem('signH5Img')) {
this.radio = '1'
this.isOver = true
this.chaoluButtonDisabled = false
this.isScrollToBottom = true
} else {
this.radio = ''
this.isOver = false
this.Time = true
this.isScrollToBottom = false
}
} else {
this.radio = ''
this.isOver = false
this.timeOut()
// 其他渠道
if(readStatus){
this.radio = '1'
this.isOver = true
this.Time = true
} else if(window.sessionStorage.getItem('signH5Img')) {
this.radio = '1'
this.isOver = true
this.chaoluButtonDisabled = false
} else {
this.radio = ''
this.isOver = false
this.timeOut()
}
}
let thispdfurl = ''
if(this.fileList[this.current - 1].originalUrl && (this.fileList[this.current - 1].originalUrl.indexOf('https://') != -1 || this.fileList[this.current - 1].originalUrl.indexOf('http://') != -1)) {
thispdfurl = this.fileList[this.current - 1].originalUrl
@@ -280,7 +394,8 @@
pdfurl: thispdfurl,
lazy:false,
scale:1
}).on("complete", function (status, msg, time) { //监听完成事件
}).on("complete", (status, msg, time)=> { //监听完成事件
this.pdfStatus = status
console.log("状态:" + status + ",信息:" + msg + ",耗时:" + time + "毫秒,总页数:" + this.totalNum)
})
},
@@ -361,8 +476,8 @@
},
computed: {
listenChange() {
const { isOver, radio } = this
return { isOver, radio }
const { isOver, radio, isScrollToBottom } = this
return { isOver, radio, isScrollToBottom }
}
},
beforeRouteLeave(to, from, next) {
@@ -372,17 +487,40 @@
window.sessionStorage.removeItem('signH5Val')
window.sessionStorage.removeItem('signInfo')
}
// 清理定时器
if (this.scrollTimer) {
clearTimeout(this.scrollTimer)
}
next()
},
watch: {
listenChange(val) {
let that = this
if (val.isOver == true && val.radio != '') {
that.isDisabledComplite = false
// 银保渠道
if (this.branchType == '14') {
if (val.isScrollToBottom == true && val.radio != '') {
that.isDisabledComplite = false
} else {
that.isDisabledComplite = true
}
} else {
that.isDisabledComplite = true
// 其他渠道
if (val.isOver == true && val.radio != '') {
that.isDisabledComplite = false
} else {
that.isDisabledComplite = true
}
}
}
},
pdfStatus() {
const observer = new IntersectionObserver(entries => {
entries.forEach(entry => {
if (entry.isIntersecting) this.isScrollToBottom = true
observer.unobserve(entry.target)
})
})
observer.observe(this.$refs.activeButtonEle)
}
}
}
</script>
@@ -422,4 +560,90 @@
padding: 10px 20px;
}
}
</style>
/* 银保渠道右侧标注样式 - 统一红色主题 */
.scroll-tip {
position: fixed;
right: 15px;
top: 50%;
transform: translateY(-50%);
// background: linear-gradient(135deg, #E9332E 0%, #ff4757 100%);
color: white;
padding: 10px;
border-radius: 12px;
font-size: 13px;
font-weight: 500;
z-index: 1000;
width: 20px;
text-align: center;
line-height: 1.3;
background-color: #fffbe8;
// box-shadow: 0 4px 20px #f4da58;
// border: 1px solid rgba(255, 255, 255, 0.2);
backdrop-filter: blur(10px);
// animation: slideInRight 0.5s ease-out, pulse 2s ease-in-out infinite 0.5s;
cursor: pointer;
transition: all 0.3s ease;
color: #ed6a0c;
/* 添加向下箭头图标 */
&::after {
content: '↓';
display: block;
font-size: 16px;
margin-top: 4px;
animation: bounce 1.5s ease-in-out infinite;
}
&:hover {
transform: translateY(-50%) scale(1.05);
// box-shadow: 0 6px 25px rgba(233, 51, 46, 0.6);
}
}
/* 滑入动画 */
@keyframes slideInRight {
0% {
opacity: 0;
transform: translateY(-50%) translateX(100px);
}
100% {
opacity: 1;
transform: translateY(-50%) translateX(0);
}
}
/* 脉冲动画 - 红色主题 */
@keyframes pulse {
// 0%, 100% {
// box-shadow: 0 4px 20px rgba(233, 51, 46, 0.4);
// }
// 50% {
// box-shadow: 0 6px 25px rgba(233, 51, 46, 0.7);
// }
}
/* 箭头弹跳动画 */
@keyframes bounce {
0%, 20%, 50%, 80%, 100% {
transform: translateY(0);
}
40% {
transform: translateY(-3px);
}
60% {
transform: translateY(-2px);
}
}
/* 银保渠道禁用状态的样式 */
/deep/ .van-radio--disabled {
.van-radio__icon {
background-color: #f2f3f5;
border-color: #dcdee0;
}
.van-radio__label {
color: #c8c9cc;
}
}
</style>

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>

View File

@@ -15,10 +15,15 @@
<van-field maxlength="6" placeholder="请输入短信验证码" v-model="authCode" clearable label-width="0" />
<van-button type="danger" plain size="small" class="w160 p0" @click="getAuthCode" :disabled="codeDisabled" v-no-more-click="2000">{{
codeDisabled ? `${countDown}s后重新获取` : '获取验证码'
}}</van-button>
}}</van-button>
</van-cell-group>
</van-dialog>
<UploadImageFile :typeface="idcardData.typeface && (faceAuthCount.weixin < smsAuthNum)" :realName="idcardData.idcardName" :idno="idcardData.idcardNumber" @sendimage="sendimage">
<UploadImageFile
:typeface="idcardData.typeface && faceAuthCount.weixin < smsAuthNum"
:realName="idcardData.idcardName"
:idno="idcardData.idcardNumber"
@sendimage="sendimage"
>
</UploadImageFile>
<div class="p60">
<van-button type="danger" @click="uploadComparison" size="large">上传照片与证件照对比</van-button>
@@ -82,7 +87,9 @@ export default {
created() {
if (this.isWeixin) {
this.$CacheUtils.setLocItem('saleInsuredInfo', this.$route.query.saleInsuredInfo)
window.localStorage.setItem('token', this.$route.query.token)
if (this.$route.query.token) {
window.localStorage.setItem('token', this.$route.query.token)
}
window.localStorage.setItem('policyNo', this.$route.query.policyNo)
this.idcardData.idcardName = JSON.parse(this.$route.query.saleInsuredInfo).name
this.idcardData.idcardNumber = JSON.parse(this.$route.query.saleInsuredInfo).idNo
@@ -120,7 +127,7 @@ export default {
operateCode: this.customerMobile,
system: 'agentApp',
operateCodeType: '0'
}).then(res => {
}).then((res) => {
console.log(res)
if (res.result == 0) {
this.sid = res.sessionId
@@ -178,7 +185,7 @@ export default {
this.authCode = null
// eslint-disable-next-line no-unused-vars
return new Promise((resolve, reject) => {
checkPhone(data).then(res => {
checkPhone(data).then((res) => {
if (res.result == '0') {
console.log(res)
this.show = true
@@ -203,7 +210,7 @@ export default {
if (e) {
that.disabled = false
} else {
this.faceAuthCount.weixin++;
this.faceAuthCount.weixin++
if (this.faceAuthCount.weixin >= this.smsAuthNum) {
this.realPeopelCheck()
}
@@ -219,7 +226,7 @@ export default {
},
//根据数据字典 将后端返回的数据渲染到页面中
filterData(dictionary, key, pageData) {
dictionary.forEach(item => {
dictionary.forEach((item) => {
if (pageData[key] == item.id) {
pageData[key + 'Text'] = item.text //渲染页面使用的字段
}
@@ -231,7 +238,7 @@ export default {
let data = {
policyNo: this.$route.query.policyNo
}
getPolicyDetail(data).then(res => {
getPolicyDetail(data).then((res) => {
if (res.result == '0') {
let appntDTO = res.content.appntDTO
let orderInfoDTO = res.content.orderInfoDTO
@@ -249,8 +256,8 @@ export default {
this.filterData(dataDictionary.idType, 'idType', appntDTO)
that.appntDTO = appntDTO
// 被保险人信息
res.content.insuredDTOs.map(insured => {
insured.riskDTOLst.map(risk => {
res.content.insuredDTOs.map((insured) => {
insured.riskDTOLst.map((risk) => {
Number(risk.payIntv)
switch (risk.payIntv) {
case -1:
@@ -287,7 +294,7 @@ export default {
this.filterData(dataDictionary.sex, 'sex', insured)
this.filterData(dataDictionary.idType, 'idType', insured)
this.filterData(dataDictionary.relationToAppnt, 'relation', insured)
insured.bnfDTOs.map(bnf => {
insured.bnfDTOs.map((bnf) => {
this.filterData(dataDictionary.bnfType, 'bnfType', bnf)
this.filterData(dataDictionary.sex, 'sex', bnf)
this.filterData(dataDictionary.idType, 'idType', bnf)
@@ -307,7 +314,7 @@ export default {
let params = {
contNo: this.$route.query.policyNo
}
getReceiptSign(params).then(res => {
getReceiptSign(params).then((res) => {
if (res.result == '0') {
console.log('res', res)
this.$toast.clear()