Compare commits

...

105 Commits

Author SHA1 Message Date
liu.xiaofeng@ebiz-digits.com
abad23c04c 去除debugger 2023-11-14 15:21:49 +08:00
liu.xiaofeng@ebiz-digits.com
69f22fc058 鑫享年年C款产品更换投保须知 2023-11-14 15:08:18 +08:00
liu.xiaofeng@ebiz-digits.com
33f91f2ea2 抄录文件修改倒计时时长 2023-11-08 22:13:16 +08:00
liu.xiaofeng@ebiz-digits.com
7bbaec5075 祥利B款产品 在建议书预览页面隐藏保额 2023-11-08 19:06:04 +08:00
liu.xiaofeng@ebiz-digits.com
815c2e54fc 祥利B款产品隐藏掉保额字段 2023-11-08 19:06:00 +08:00
liu.xiaofeng@ebiz-digits.com
d2a941fea5 利益演示档位显示字段调整 2023-11-08 19:05:56 +08:00
liu.xiaofeng@ebiz-digits.com
a1f994069f 利益演算档位显示调整 2023-11-08 19:05:52 +08:00
liu.xiaofeng@ebiz-digits.com
4e86319a61 国富人寿祥利B款两全保险(万能型)设置字段展示内容修改 2023-11-08 19:05:48 +08:00
liu.xiaofeng@ebiz-digits.com
13eb83d585 国富人寿祥利B款两全保险(万能型)设置字段展示内容 2023-11-08 19:05:43 +08:00
liu.xiaofeng@ebiz-digits.com
30046fbcca 订单列表已提交的订单 如果订单状态为58显示转人核支付文字并修改按钮去支付为支付 2023-11-08 18:16:19 +08:00
liu.xiaofeng@ebiz-digits.com
73b99fa5ec 贵州地区调用双录接口相关的代码逻辑放开 2023-11-07 10:22:38 +08:00
liu.xiaofeng@ebiz-digits.com
4d0823bd60 暂时注释掉贵州双录代码逻辑 2023-10-31 16:26:03 +08:00
liu.xiaofeng@ebiz-digits.com
2e15f71b7d 更换master的选择产品页面代码 2023-10-31 14:46:20 +08:00
liu.xiaofeng@ebiz-digits.com
c136b1f4ca vuex 中store存储数据 页面刷新 ios手机导致数据丢失问题兼容处理 2023-10-26 16:01:29 +08:00
liu.xiaofeng@ebiz-digits.com
e1953900c9 银保代理人文件展示类型修改4 2023-10-25 23:41:57 +08:00
liu.xiaofeng@ebiz-digits.com
1b81c044ca 年年丰和祥利B款产品增加抄录1 2023-10-24 17:39:42 +08:00
liu.xiaofeng@ebiz-digits.com
a86e1bcd9a 去掉签名文件 2023-10-23 14:02:49 +08:00
liu.xiaofeng@ebiz-digits.com
2c2b206c86 一年期产品的特殊处理默认选择指定责任 2023-10-23 13:39:12 +08:00
liu.xiaofeng@ebiz-digits.com
dbc1891bf3 内勤账号做建议书改动 2023-10-23 10:19:19 +08:00
liu.xiaofeng@ebiz-digits.com
b28a8bf9fa pdf预览页面样式调整4 2023-10-18 21:38:48 +08:00
liu.xiaofeng@ebiz-digits.com
07dafba445 pdf预览页面样式调整3 2023-10-18 21:38:42 +08:00
liu.xiaofeng@ebiz-digits.com
1e77392b45 pdf预览页面样式调整2 2023-10-18 21:38:38 +08:00
liu.xiaofeng@ebiz-digits.com
e9e3685d97 pdf预览页面样式调整 2023-10-18 21:38:33 +08:00
liu.xiaofeng@ebiz-digits.com
8837b4e491 设置签名字体颜色 2023-10-18 21:38:29 +08:00
liu.xiaofeng@ebiz-digits.com
210b777739 银保代理人签字页面字面展示信息修改 2023-10-18 21:38:25 +08:00
liu.xiaofeng@ebiz-digits.com
540b74492a feature GFRS-3645 银保代理签字页面 页面标题修改 2023-10-18 21:38:19 +08:00
liu.xiaofeng@ebiz-digits.com
74248f5c4f feature GFRS-3645 银保代理人获取验证码以及校验验证码 更换接口 2023-10-18 21:38:13 +08:00
liu.xiaofeng@ebiz-digits.com
2d37780850 feature GFRS-3716 阅读文件倒计时修改为10S 2023-10-18 21:38:10 +08:00
liu.xiaofeng@ebiz-digits.com
ef3a45c7d1 feature GFRS-3645 一签多用 调整SignRule_KeyWordV2方法的参数结构 2023-10-18 21:38:06 +08:00
liu.xiaofeng@ebiz-digits.com
c0d01f9f5a feature GFRS-3645 修改一签多用签名代码逻辑 2023-10-18 21:37:59 +08:00
liu.xiaofeng@ebiz-digits.com
71ba3df54b feature【GFRS-3645】页面调整pdf展示文件类型为image 2023-10-18 21:37:54 +08:00
liu.xiaofeng@ebiz-digits.com
b57a6e3bda GFRS-3645调整与后端交互传递的数据结构 2023-10-18 21:37:46 +08:00
liu.xiaofeng@ebiz-digits.com
7f050ea622 动态获取银保代理人姓名用于信手书插件签名 2023-10-18 21:37:42 +08:00
liu.xiaofeng@ebiz-digits.com
205ffe6668 信手书插件调整 2023-10-18 21:37:39 +08:00
liu.xiaofeng@ebiz-digits.com
f3502485fb 【GFRS-3645】已阅读单选按钮在签名完成之后设置默认选中状态并增加接口请求的loading 2023-10-18 21:37:35 +08:00
liu.xiaofeng@ebiz-digits.com
f44a8efe50 【GFRS-3645】签名状态判断增加并修改签名字符串获取逻辑 2023-10-18 21:37:32 +08:00
liu.xiaofeng@ebiz-digits.com
d02dd5748a 【GFRS-3645】签字页面点击提交按钮清空本地存储的签字信息数据 2023-10-18 21:36:57 +08:00
liu.xiaofeng@ebiz-digits.com
fc3ec41ea0 【GFRS-3645】解决当点击页面刷新时,vue的store数据丢失问题 2023-10-18 21:36:51 +08:00
liu.xiaofeng@ebiz-digits.com
005630da8c 【GFRS-3645】iframe页面里显示的pdf地址拼接 2023-10-18 21:36:41 +08:00
liu.xiaofeng@ebiz-digits.com
38a051fae4 【GFRS-3645】生成电子合同接口对接 接口封装的token拦截方法修改 2023-10-18 21:36:29 +08:00
liu.xiaofeng@ebiz-digits.com
d49fd76db9 【GFRS-3645】修改电子签名页面代码默认执行逻辑 2023-10-18 21:36:12 +08:00
liu.xiaofeng@ebiz-digits.com
1bd368b684 【GFRS-3645】签字页面初始化时获取本地缓存信息 2023-10-18 21:36:00 +08:00
liu.xiaofeng@ebiz-digits.com
8164ff8fc7 【GFRS-3645】接口文件提交 2023-10-18 21:35:55 +08:00
liu.xiaofeng@ebiz-digits.com
f96cc01b74 银保代理人电子化合同签署关于证件号码以及姓名存储在vuex中 2023-10-18 21:35:35 +08:00
liu.xiaofeng@ebiz-digits.com
dfa1afefd1 根据姓名以及身份证号码获取用户信息后 根据出参添加后续代码逻辑 2023-10-18 21:35:06 +08:00
liu.xiaofeng@ebiz-digits.com
cd5039074e 完善银保代理人电子化合同签署页面的代码相关逻辑 2023-10-18 21:35:01 +08:00
liu.xiaofeng@ebiz-digits.com
f31865d26a 银保代理人电子化合同签署补全基本功能代码逻辑 2023-10-18 21:33:44 +08:00
liu.xiaofeng@ebiz-digits.com
60a255abc8 银保代理人电子化合同签署路由文件修改增加相关页面路由地址 2023-10-18 21:33:32 +08:00
liu.xiaofeng@ebiz-digits.com
23d7ea8ce7 银保代理人电子化合同签署 增加页面 2023-10-18 21:33:25 +08:00
liu.xiaofeng@ebiz-digits.com
05d8a6a03d 双录弹窗新接口对接与调试2 2023-10-18 21:31:41 +08:00
liu.xiaofeng@ebiz-digits.com
7d4c1f1397 双录弹窗新接口对接与调试 2023-10-18 21:31:38 +08:00
liu.xiaofeng@ebiz-digits.com
bc3318f4c6 双录弹窗修改样式并修改触发逻辑 2023-10-18 21:31:34 +08:00
liu.xiaofeng@ebiz-digits.com
8b82fe77d1 双录代码基础判断逻辑修改 2023-10-18 21:31:31 +08:00
liu.xiaofeng@ebiz-digits.com
0687f0aea1 回执签收代码错误修改 2023-10-17 11:47:06 +08:00
liu.xiaofeng@ebiz-digits.com
f971318e4c 修改支付结果页面字体 2023-10-13 18:50:47 +08:00
liu.xiaofeng@ebiz-digits.com
56e0a315ed 被保人信息录入页面证件选择户口本证件有效期计算修改 2023-10-10 10:40:08 +08:00
liu.xiaofeng@ebiz-digits.com
af60e7ee49 被保人信息录入页面证件选择户口本证件有效期计算修改 2023-10-09 21:40:30 +08:00
liu.xiaofeng@ebiz-digits.com
a240169c58 保费计算页面代码修改 2023-10-09 09:48:42 +08:00
liu.xiaofeng@ebiz-digits.com
93c7c991d8 代码修正 2023-10-04 19:49:07 +08:00
liu.xiaofeng@ebiz-digits.com
839cd16311 代码修改 2023-09-28 10:36:11 +08:00
liu.xiaofeng@ebiz-digits.com
5514f65996 代码修改 2023-09-28 10:34:43 +08:00
liu.xiaofeng@ebiz-digits.com
c41d705394 代码修改 2023-09-28 10:33:09 +08:00
liu.xiaofeng@ebiz-digits.com
4483280f99 电子投保被保人信息页面新市民弹唱修改 2023-09-28 10:27:46 +08:00
liu.xiaofeng@ebiz-digits.com
157eed1f23 保单详情隐藏新市民字段 2023-09-28 10:27:42 +08:00
liu.xiaofeng@ebiz-digits.com
3a52e5ed8a 新市民字段位置调整 新市民提示弹窗样式调整 2023-09-28 10:27:37 +08:00
liu.xiaofeng@ebiz-digits.com
e8fbcc33c0 投保流程 被保人新市民必填校验逻辑修改 2023-09-28 10:27:33 +08:00
liu.xiaofeng@ebiz-digits.com
fb15fc8cd4 投保流程 选择客户后赋值客户信息的新市民身份以及新市民类型字段 2023-09-28 10:27:29 +08:00
liu.xiaofeng@ebiz-digits.com
527a687fee 编辑客户信息 关于新市民身份以及新市民类型字段赋值逻辑的修改 2023-09-28 10:27:26 +08:00
liu.xiaofeng@ebiz-digits.com
71e63645f7 客户管理的新增和修改页面 保存时入参增加新市民以及新市民类型字段 2023-09-28 10:27:22 +08:00
liu.xiaofeng@ebiz-digits.com
7e21178f48 客户管理的新增和修改页面 关于新市民字段值修改 2023-09-28 10:27:11 +08:00
liu.xiaofeng@ebiz-digits.com
5fb321351a 新市民类型修改为0否1是 2023-09-28 10:27:02 +08:00
liu.xiaofeng@ebiz-digits.com
bec1215624 增加判断代理人区域信息的获取功能 如果代理人是广西地区展示新市民相关字段 如果不是就不展示 2023-09-28 10:26:59 +08:00
liu.xiaofeng@ebiz-digits.com
77f1d12543 保单根据接口文档修改 修改字段名称 2023-09-28 10:26:56 +08:00
liu.xiaofeng@ebiz-digits.com
84fb85b58b 根据对接文档修改投保流程的投保人 被保人的新市民字段
根据对接文档修改客户管理的新增 修改基本信息关于新市民字段
2023-09-28 10:26:51 +08:00
liu.xiaofeng@ebiz-digits.com
f2dc1d7ee8 投保人被保人点击下一步判断代理人是否是广西地区 如果是广西的话 需校验是否填写新市民身份字段 2023-09-28 10:26:42 +08:00
liu.xiaofeng@ebiz-digits.com
36f03597cb 根据代理人地区信息判断是否展示新市民字段 2023-09-28 10:26:09 +08:00
liu.xiaofeng@ebiz-digits.com
45cf78cf3e 保单详情页面增加新市民身份以及新市民类型相关字段的展示 2023-09-28 10:25:30 +08:00
liu.xiaofeng@ebiz-digits.com
27218226de 客户管理的新增客户以及编辑客户页面增加新市民身份以及新市民类型和新市民信息提示相关内容 2023-09-28 10:25:26 +08:00
liu.xiaofeng@ebiz-digits.com
2c48e0c927 投保流程被保人页面增加新市民身份以及新市民类型和新市民信息提示相关内容 2023-09-28 10:25:21 +08:00
liu.xiaofeng@ebiz-digits.com
13276d9c7f 投保流程投保人页面增加新市民身份以及新市民类型和新市民信息提示相关内容 2023-09-28 10:25:18 +08:00
liu.xiaofeng@ebiz-digits.com
96eca99a4e 新市民产品投保提示从上传附件页面移动到签字确认页面 2023-09-27 14:50:21 +08:00
liu.xiaofeng@ebiz-digits.com
3758be49b6 投保流程 保单形式必填校验 2023-09-27 14:50:17 +08:00
liu.xiaofeng@ebiz-digits.com
e43f9e9881 新市民弹窗样式修改 2023-09-27 14:50:13 +08:00
liu.xiaofeng@ebiz-digits.com
cc73fb4ebb 投保人信息页面选择完客户之后保单形式不做赋值操作 2023-09-27 14:48:08 +08:00
liu.xiaofeng@ebiz-digits.com
f5aec4972b 【需求】新市民产品服务弹窗
【需求】关于纸质保单打印规则调整
默认都不选。电子选项名称修改为【电子(不打印保单)】
2023-09-27 14:48:03 +08:00
liu.xiaofeng@ebiz-digits.com
bd61c5b8c0 微信支付结果页面 更换微信公众号二维码图片2 2023-09-26 16:50:30 +08:00
liu.xiaofeng@ebiz-digits.com
9aaa7ad106 增加20S禁止重复提交的操作逻辑 修改提示语位置 2023-09-26 16:30:44 +08:00
liu.xiaofeng@ebiz-digits.com
0de31877e7 增加20S禁止重复提交的操作逻辑 2023-09-26 16:30:40 +08:00
liu.xiaofeng@ebiz-digits.com
7c2fcb7993 修改核保前置弹窗返回按钮展示内容 2023-09-26 16:30:37 +08:00
liu.xiaofeng@ebiz-digits.com
01c5e3acc3 上传附件点击下一步按钮方法修改 2023-09-26 16:30:34 +08:00
liu.xiaofeng@ebiz-digits.com
23278094ea 关于金掌桂规则前置需求 提示语样式修改 2023-09-26 16:30:31 +08:00
liu.xiaofeng@ebiz-digits.com
f4fdc05f95 微信支付结果页面 更换微信公众号二维码图片 2023-09-26 16:25:49 +08:00
liu.xiaofeng@ebiz-digits.com
49df5e8176 微信支付结果页面 二维码地址修改 2023-09-26 16:05:30 +08:00
liu.xiaofeng@ebiz-digits.com
33350a4a5b feature GFRS-3716 支付结果页面调整页面布局样式 2023-09-25 17:24:04 +08:00
liu.xiaofeng@ebiz-digits.com
0ae0de8e51 feature GFRS-3716 调用支付获取参数接口 增加运行环境逻辑判断的代码 2023-09-25 17:23:59 +08:00
liu.xiaofeng@ebiz-digits.com
3d2bca3228 feature GFRS-3716 支付成功页面增加温馨提示以及二维码的展示内容 2023-09-25 17:23:55 +08:00
liu.xiaofeng@ebiz-digits.com
5d04db24a7 feature GFRS-3716 修改分享内容金额 2023-09-25 17:23:52 +08:00
liu.xiaofeng@ebiz-digits.com
7684831fdc feature GFRS-3716 修改分享内容 2023-09-25 17:23:49 +08:00
liu.xiaofeng@ebiz-digits.com
47c68db32d feature GFRS-3716 获取支付参数接口入参字段修改2 2023-09-25 17:23:46 +08:00
liu.xiaofeng@ebiz-digits.com
e6e5c7b375 feature GFRS-3716 获取支付参数接口入参字段修改 2023-09-25 17:23:43 +08:00
liu.xiaofeng@ebiz-digits.com
3167d58990 修改获取用户信息相关代码逻辑 2023-09-25 17:23:38 +08:00
liu.xiaofeng@ebiz-digits.com
09d6f63ab9 添加获取微信授权的code相关代码逻辑 2023-09-25 17:23:34 +08:00
liu.xiaofeng@ebiz-digits.com
e782eb1065 修改上传附件的字段值subBusinessType 2023-09-21 11:07:27 +08:00
liu.xiaofeng@ebiz-digits.com
7c2fca39bf 根据出生日期以及证件起始日期计算证件截止日期
根据出生日期以及证件截止日期计算证件起始日期
2023-09-20 16:55:43 +08:00
liu.xiaofeng@ebiz-digits.com
af041ddd0c 修改自动计算证件开始日期以及截止日期的计算逻辑 2023-09-20 16:42:31 +08:00
35 changed files with 11612 additions and 9046 deletions

View File

@@ -26,6 +26,33 @@ export default {
reload: this.reload
}
},
created () {
// 在页面加载时读取sessionStorage
// if (sessionStorage.getItem('store')) {
// this.$store.replaceState(Object.assign({}, this.$store.state, JSON.parse(sessionStorage.getItem('store'))))
// }
// // 在页面刷新时将store保存到sessionStorage里
// window.addEventListener('beforeunload', () => {
// sessionStorage.setItem('store', JSON.stringify(this.$store.state))
// })
//ios刷新时vuex信息保留
let isiOS = !!navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
if (isiOS) {
//在页面刷新时将vuex里的信息保存到缓存里
window.addEventListener("pagehide", () => {
localStorage.setItem("store", JSON.stringify(this.$store.state))
})
//在页面加载时读取localStorage里的状态信息
localStorage.getItem("store") && this.$store.replaceState(Object.assign(this.$store.state,JSON.parse(localStorage.getItem("store"))));
} else {
//在页面刷新时将vuex里的信息保存到缓存里
window.addEventListener("beforeunload", () => {
localStorage.setItem("store", JSON.stringify(this.$store.state))
})
//在页面加载时读取localStorage里的状态信息
localStorage.getItem("store") && this.$store.replaceState(Object.assign(this.$store.state,JSON.parse(localStorage.getItem("store"))));
}
},
mounted(){
},
methods: {

View File

@@ -0,0 +1,46 @@
import request from '@/assets/js/utils/request'
import getUrl from '@/assets/js/utils/get-url'
// 银保代理人签署信息查询接口
export function getContractInfo(data) {
return request({
url: getUrl('/agent/enterYB/getContractInfo', 1),
method: 'post',
data
})
}
// 银保代理人签署信息接收接口
export function putContractInfo(data) {
return request({
url: getUrl('/agent/enterYB/putContractInfo', 1),
method: 'post',
data
})
}
// 生成电子合同pdf
export function generateAgreementYB(data) {
return request({
url: getUrl('/agent/enterYB/generateAgreementYB', 1),
method: 'post',
data
})
}
// 获取验证码
export function getAuthCode(data) {
return request({
url: getUrl('/customer/authcode/noLoginedSend', 1),
method: 'post',
data
})
}
// 校验验证码
export function checkSignYB(data) {
return request({
url: getUrl('/customer/authcode/checkSignYB', 1),
method: 'post',
data
})
}

View File

@@ -353,4 +353,13 @@ export function getUniversalCodeLst(data) {
method: 'post',
data
})
}
// 获取柳州分红万能投连型产品编码集合
export function getDoubleRecordProductLst(data) {
return request({
url: getUrl('/sale/product/getDoubleRecordProductLst ', 1),
method: 'post',
data
})
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

View File

@@ -1,167 +1,164 @@
import utilsAge from '@/assets/js/utils/age'
export default {
//计算身份证起始日期
getStartDate: function(age, endDate) {
getStartDate: function(birthday, endDate) {
let startDate = '' //证件起始日期
let thisDate = new Date() //当年日期
let thisyear = thisDate.getFullYear() //当前年份
let startage = ''
let endage = utilsAge.getAge(birthday, new Date(endDate))
if (age < 16) {
/**
* @Author: LiuXiaoFeng
* @Description: 16周岁以下的证件有效期为5年
* @Date: 2023/7/4
**/
startDate = String(Number(endDate.slice(0,4)) - 5) + endDate.slice(4,11)
} else if (age >= 16 && age <= 21) {
/**
* @Author: LiuXiaoFeng
* @Description: 16周岁~21周岁的证件有效期为10年或5年
* @Date: 2023/7/4
**/
if (age - (10 - (endDate.slice(0,4) - thisyear)) < 16 ) {
/**
* @Author: LiuXiaoFeng
* @Description: 如果证件有效期为10年 根据证件截止日期 判断10年前的年龄 如果小于16周岁 那么证件有效期就是5年
* @Date: 2023/7/5
**/
startDate = String(Number(endDate.slice(0,4)) - 5) + endDate.slice(4,11)
} else {
startDate = String(Number(endDate.slice(0,4)) - 10) + endDate.slice(4,11)
/**
* @Author: LiuXiaoFeng
* @Description: 未满16周岁的公民申领的居民身份证有效期为5年
* @Date: 2023/7/4
**/
if (endage - 5 < 16) {
let date2_29 = endDate.slice(5, 11)
if(date2_29 == '02-29'){
let thisyear = Number(endDate.slice(0, 4)) - 5
if (thisyear % 4 == 0 && thisyear % 100 != 0 || thisyear % 400 == 0){
return startDate = thisyear + '-02-29'
} else {
return startDate = thisyear + '-02-28'
}
}else{
return startDate = String(Number(endDate.slice(0, 4)) - 5) + startDate.slice(4, 11)
}
} else if(age >= 22 && age <= 25) {
/**
* @Author: LiuXiaoFeng
* @Description: 22周岁~25周岁的证件有效期为10年
* @Date: 2023/7/4
**/
startDate = String(Number(endDate.slice(0,4)) - 10) + endDate.slice(4,11)
} else if (age >= 26 && age <= 35) {
/**
* @Author: LiuXiaoFeng
* @Description: 26周岁~35周岁的证件有效期为20年或10年
* @Date: 2023/7/4
**/
if (age - (20 - (endDate.slice(0,4) - thisyear)) < 26 ) {
/**
* @Author: LiuXiaoFeng
* @Description: 如果证件有效期为20年 根据证件截止日期 判断20年前的年龄 如果小于26周岁 那么证件有效期就是10年
* @Date: 2023/7/5
**/
startDate = String(Number(endDate.slice(0,4)) - 10) + endDate.slice(4,11)
} else {
startDate = String(Number(endDate.slice(0,4)) - 20) + endDate.slice(4,11)
}
} else if (age >= 36 && age <= 45) {
/**
* @Author: LiuXiaoFeng
* @Description: 36周岁~45周岁的证件有效期为20年
* @Date: 2023/7/4
**/
startDate = String(Number(endDate.slice(0,4)) + 20) + endDate.slice(4,11)
} else if (age >= 46 && age <= 65) {
/**
* @Author: LiuXiaoFeng
* @Description: 46周岁~65周岁的证件有效期为20年或长期
* @Date: 2023/7/4
**/
if (age - (20 - (endDate.slice(0,4) - thisyear)) < 46 ) {
/**
* @Author: LiuXiaoFeng
* @Description: 如果证件有效期为20年 根据证件截止日期 判断20年前的年龄 如果小于46周岁 那么证件有效期就是20年
* @Date: 2023/7/5
**/
startDate = String(Number(endDate.slice(0,4)) - 20) + endDate.slice(4,11)
}
} else if (age > 65) {
/**
* @Author: LiuXiaoFeng
* @Description: 65周岁以上的证件有效期为长期
* @Date: 2023/7/4
**/
}
return startDate
/**
* @Author: LiuXiaoFeng
* @Description: 年满16周岁至25周岁的公民申领的居民身份证有效期为10年
* @Date: 2023/7/4
**/
else if (endage - 5 >= 16 && endage - 10 <= 25) {
startDate = String(Number(endDate.slice(0,4)) - 10) + endDate.slice(4,11)
startage = utilsAge.getAge(birthday, new Date(startDate))
if(startage >= 16 && startage <= 25){
let date2_29 = endDate.slice(5, 11)
if(date2_29 == '02-29') {
let thisyear = Number(endDate.slice(0, 4)) - 10
if (thisyear % 4 == 0 && thisyear % 100 != 0 || thisyear % 400 == 0){
return startDate = thisyear + '-02-29'
} else {
return startDate = thisyear + '-02-28'
}
} else {
return startDate
}
}
}
/**
* @Author: LiuXiaoFeng
* @Description: 年满26周岁至45周岁的公民申领的居民身份证有效期为20年
* @Date: 2023/7/4
**/
else if(endage - 10 >= 26 && endage - 20 <= 45) {
startDate = String(Number(endDate.slice(0,4)) - 20) + endDate.slice(4,11)
startage = utilsAge.getAge(birthday, new Date(startDate))
if(startage >= 26 && startage <= 45){
let date2_29 = endDate.slice(5, 11)
if(date2_29 == '02-29') {
let thisyear = Number(endDate.slice(0, 4)) - 20
if (thisyear % 4 == 0 && thisyear % 100 != 0 || thisyear % 400 == 0){
return startDate = thisyear + '-02-29'
} else {
return startDate = thisyear + '-02-28'
}
} else {
return startDate
}
}
}
/**
* @Author: LiuXiaoFeng
* @Description: 年满46周岁的公民申领居民身份证有效期为长期
* @Date: 2023/7/4
**/
else if (endage - 20 >= 46) {
return startDate
}
},
//计算身份证截止日期
getEndDate: function(age, startDate) {
getEndDate: function(birthday, startDate) {
let endDate = '' //证件截止日期
let thisDate = new Date() //当年日期
let thisyear = thisDate.getFullYear() //当前年份
if (age < 16) {
/**
* @Author: LiuXiaoFeng
* @Description: 16周岁以下的证件有效期为5年
* @Date: 2023/7/4
**/
endDate = String(Number(startDate.slice(0,4)) + 5) + startDate.slice(4,11)
} else if (age >= 16 && age <= 21) {
/**
* @Author: LiuXiaoFeng
* @Description: 16周岁~21周岁的证件有效期为10年或5年
* @Date: 2023/7/4
**/
if (age - (thisyear - startDate.slice(0,4)) < 16 ) {
/**
* @Author: LiuXiaoFeng
* @Description: 根据证件起始日期计算办证时年龄 如果办证时年龄小于16周岁 那么证件有效期就是5年
* @Date: 2023/7/5
**/
endDate = String(Number(startDate.slice(0,4)) + 5) + startDate.slice(4,11)
let startage = utilsAge.getAge(birthday, new Date(startDate))
/**
* @Author: LiuXiaoFeng
* @Description: 未满16周岁的公民申领的居民身份证有效期为5年
* @Date: 2023/7/4
**/
if (startage < 16) {
let date2_29 = startDate.slice(5, 11)
if(date2_29 == '02-29') {
let thisyear = Number(startDate.slice(0, 4)) + 5
if (thisyear % 4 == 0 && thisyear % 100 != 0 || thisyear % 400 == 0){
return endDate = thisyear + '-02-29'
} else {
return endDate = thisyear + '-02-28'
}
} else {
endDate = String(Number(startDate.slice(0,4)) + 10) + startDate.slice(4,11)
return endDate = String(Number(startDate.slice(0, 4)) + 5) + startDate.slice(4, 11)
}
} else if(age >= 22 && age <= 25) {
/**
* @Author: LiuXiaoFeng
* @Description: 22周岁~25周岁的证件有效期为10年
* @Date: 2023/7/4
**/
endDate = String(Number(startDate.slice(0,4)) + 10) + startDate.slice(4,11)
} else if (age >= 26 && age <= 35) {
/**
* @Author: LiuXiaoFeng
* @Description: 26周岁~35周岁的证件有效期为20年或10年
* @Date: 2023/7/4
**/
if (age - (thisyear - startDate.slice(0,4)) < 26 ) {
/**
* @Author: LiuXiaoFeng
* @Description: 根据证件起始日期计算办证时年龄 如果办证时年龄小于26周岁 那么证件有效期就是10年
* @Date: 2023/7/5
**/
endDate = String(Number(startDate.slice(0,4)) + 10) + startDate.slice(4,11)
} else {
endDate = String(Number(startDate.slice(0,4)) + 20) + startDate.slice(4,11)
}
} else if (age >= 36 && age <= 45) {
/**
* @Author: LiuXiaoFeng
* @Description: 36周岁~45周岁的证件有效期为20年
* @Date: 2023/7/4
**/
endDate = String(Number(startDate.slice(0,4)) + 20) + startDate.slice(4,11)
} else if (age >= 46 && age <= 65) {
/**
* @Author: LiuXiaoFeng
* @Description: 46周岁~65周岁的证件有效期为20年或长期
* @Date: 2023/7/4
**/
if (age - (thisyear - startDate.slice(0,4)) < 46 ) {
/**
* @Author: LiuXiaoFeng
* @Description: 根据证件起始日期计算办证时年龄 如果办证时年龄小于46周岁 那么证件有效期就是20年
* @Date: 2023/7/5
**/
endDate = String(Number(startDate.slice(0,4)) + 20) + startDate.slice(4,11)
}
} else if (age > 65) {
/**
* @Author: LiuXiaoFeng
* @Description: 65周岁以上的证件有效期为长期
* @Date: 2023/7/4
**/
}
return endDate
/**
* @Author: LiuXiaoFeng
* @Description: 年满16周岁至25周岁的公民申领的居民身份证有效期为10年
* @Date: 2023/7/4
**/
else if (startage >= 16 && startage <= 25) {
let date2_29 = startDate.slice(5, 11)
if(date2_29 == '02-29') {
let thisyear = Number(startDate.slice(0, 4)) + 10
if (thisyear % 4 == 0 && thisyear % 100 != 0 || thisyear % 400 == 0){
return endDate = thisyear + '-02-29'
} else {
return endDate = thisyear + '-02-28'
}
} else {
return endDate = String(Number(startDate.slice(0, 4)) + 10) + startDate.slice(4, 11)
}
}
/**
* @Author: LiuXiaoFeng
* @Description: 年满26周岁至45周岁的公民申领的居民身份证有效期为20年
* @Date: 2023/7/4
**/
else if (startage >= 26 && startage <= 45) {
let date2_29 = startDate.slice(5, 11)
if(date2_29 == '02-29') {
let thisyear = Number(startDate.slice(0, 4)) + 20
if (thisyear % 4 == 0 && thisyear % 100 != 0 || thisyear % 400 == 0){
return endDate = thisyear + '-02-29'
} else {
return endDate = thisyear + '-02-28'
}
} else {
return endDate = String(Number(startDate.slice(0, 4)) + 20) + startDate.slice(4, 11)
}
}
/**
* @Author: LiuXiaoFeng
* @Description: 年满46周岁的公民申领居民身份证有效期为长期
* @Date: 2023/7/4
**/
else if (startage > 65) {
return endDate
}
},
//计算户口本截止日期
getEndDate2: function(birthday, startDate) {
let endDate = ''
let date2_29 = startDate.slice(5, 11)
if(date2_29 == '02-29'){
let thisyear = Number(startDate.slice(0, 4)) + 16
if (thisyear % 4 == 0 && thisyear % 100 != 0 || thisyear % 400 == 0){
return endDate = thisyear + '-02-29'
} else {
return endDate = thisyear + '-02-28'
}
}else{
return endDate = String(Number(startDate.slice(0, 4)) + 16) + startDate.slice(4, 11)
}
}
}

View File

@@ -965,10 +965,10 @@ export default {
id: 2,
text: '户口本'
},
{
id: 3,
text: '出生证'
},
// {
// id: 3,
// text: '出生证'
// },
{
id: 4,
text: '外国人护照'
@@ -1059,6 +1059,36 @@ export default {
text: '户口本'
}
],
// 新市民身份
isNewPeopleFlag: [
{
id: 1,
text: '是'
},
{
id: 0,
text: '否'
}
],
// 新市民类型 创业、就业、子女上学、投奔子女
npType: [
{
id: 1,
text: '创业'
},
{
id: 2,
text: '就业'
},
{
id: 3,
text: '子女上学'
},
{
id: 4,
text: '投奔子女'
}
],
//出生证明
birthType: [
{
@@ -1947,7 +1977,7 @@ export default {
},
{
id: '58',
text: '待客户付款'
text: '转人核支付'
},
{
id: '59',
@@ -3727,36 +3757,36 @@ export default {
label: "元"
},
{
code: "AppntModerateOrMinorDiseaseExemptionPremiumC",
label: "元"
code: "AppntModerateOrMinorDiseaseExemptionPremiumC",
label: "元"
},
{
code: "AppntDeathOrTotalDiseaseExemptionPremiumC",
label: "元"
code: "AppntDeathOrTotalDiseaseExemptionPremiumC",
label: "元"
},
{
code: "InsuredCriticalDiseaseExemptionPremiumC",
label: "元"
code: "InsuredCriticalDiseaseExemptionPremiumC",
label: "元"
},
{
code: "InsuredModerateOrMinorDiseaseExemptionPremiumC",
label: "元"
code: "InsuredModerateOrMinorDiseaseExemptionPremiumC",
label: "元"
},
{
code: "InsuredDeathOrTotalDiseaseExemptionPremiumC",
label: "元"
code: "InsuredDeathOrTotalDiseaseExemptionPremiumC",
label: "元"
},
{
code: "transport_G",
label: "元"
code: "transport_G",
label: "元"
},
{
code: "transport_H",
label: "元"
code: "transport_H",
label: "元"
},
{
code: "transport_J",
label: "元"
code: "transport_J",
label: "元"
},
{
code: "firstMajorDiseaseInsurance",
@@ -3778,6 +3808,14 @@ export default {
code: "GFRS_M0073__cashValue",
label: "元"
},
{
code: "specMajorDiseaseInsurance",
label: "元"
},
{
code: "expireSurvivalInsurance",
label: "元"
},
{
code: "currentBonus_L",
label: "元"
@@ -3814,9 +3852,41 @@ export default {
code: "supplementarySpecificDiseaseInsurance",
label: "元"
},
{
code: "deductible",
label: "元"
},
{
code: "deductible",
label: "免赔额"
},
{
code: "accidentalDeductible",
label: "元"
},
{
code: "accidentalLimit",
label: "%"
},
{
code: "policyFee",
label: "元"
},
{
code: "expireSurvivalInsurance_L",
label: "元"
},
{
code: "expireSurvivalInsurance_M",
label: "元"
},
{
code: "riskCost_L",
label: "元"
},
{
code: "riskCost_M",
label: "元"
}
],
// 卡单与短期险重新投保选择职业类别时,两个模块职业类型数据的排序不同,创建这个数据字典,用于在选择职业类别时,作为一个参数传入组件,

View File

@@ -220,7 +220,7 @@ service.interceptors.request.use(
let isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //判断是否是 android终端
if (isAndroid) {
// setTimeout(() => {
if (window.location.hash !== '#/my/privacyPolicy') {
if (window.location.hash !== '#/my/privacyPolicy' && window.location.hash !== '#/YB_agentSign/step1' && window.location.hash !== '#/YB_agentSign/step2') {
console.log(window.Android.getToken(), 'Android获取token')
CacheUtils.setLocItem('token', window.Android.getToken())
}

File diff suppressed because it is too large Load Diff

View File

@@ -6,6 +6,8 @@
* @Description:
* @FilePath: \ebiz-h5\src\config\index.js
*/
import YB_agentSign from "../router/ebiz/YB_agentSign";
/**
* 配置编译环境和线上环境之间的切换
* 默认三套环境,可以增添
@@ -13,7 +15,7 @@
*
*/
let apiDomain, imgDomain, assetsUrl, mainUrl, payUrl, zssqUrl, REQ_PWD, CACHE_ENCRYP, API_VERSION, assetsUpUrl, YB_APP // 保融支付的收银台服务地址
let apiDomain, imgDomain, assetsUrl, mainUrl, payUrl, zssqUrl, REQ_PWD, CACHE_ENCRYP, API_VERSION, YB_agenturl, assetsUpUrl, YB_APP // 保融支付的收银台服务地址
function getSearchString (key) {
var str = window.location.href.split('?')[1]
str = str.substring(1, str.length) // 获取URL中?之后的字符(去掉第一位的问号)
@@ -68,6 +70,7 @@ switch (process.env.VUE_APP_FLAG) {
// YB_APP = 'http://10.10.100.98:7001'
// YB_APP = 'https://iagentsales-test2.e-guofu.com:5200/api/v1'
YB_APP = 'https://iagentsales-test2.e-guofu.com:5200/api/' + apiVersion
YB_agenturl ='https://iagentsales-test2.e-guofu.com:443'
API_VERSION = apiVersion
break
case 'uat':
@@ -91,6 +94,7 @@ switch (process.env.VUE_APP_FLAG) {
// 上传影像地址 挂载共享盘 地址
assetsUpUrl = 'https://iagentsales.e-guofu.com'
mainUrl = 'https://iagentsales.e-guofu.com'
YB_agenturl = 'https://iagentsales.e-guofu.com'
payUrl = 'https://uns3.e-guofu.com/s3-modules-gateway/embed/gateway.action'
zssqUrl = ''
REQ_PWD = '41424344454631323334353637383930'
@@ -130,6 +134,7 @@ export default {
assetsUpUrl,
mainUrl,
payUrl,
YB_agenturl,
zssqUrl, //知识社区地址
REQ_PWD, //报文加密密码
CACHE_ENCRYP, //缓存加密密码

View File

@@ -0,0 +1,22 @@
//电子投保 定义相关组件
const step1 = () => import('@/views/ebiz/YB_agentSign/step1')
const step2 = () => import('@/views/ebiz/YB_agentSign/step2')
let riskName = localStorage.riskName
export default [
{
path: '/YB_agentSign/step1',
name: 'step1',
component: step1,
meta: {
title: '银保代理人电子化合同签署'
}
},
{
path: '/YB_agentSign/step2',
name: 'step2',
component: step2,
meta: {
title: '银保代理人电子化合同签署'
}
},
]

View File

@@ -2,6 +2,7 @@
import proposal from './proposal'
import question from './question'
import sale from './sale'
import YB_agentSign from './YB_agentSign'
import customer from './customer'
import my from './my'
import serve from './serve'
@@ -51,6 +52,7 @@ import YB_APP from '../YB_APP/index'
export default [
...proposal,
...sale,
...YB_agentSign,
...customer,
...my,
...serve,

View File

@@ -15,6 +15,7 @@ const answerPage = () => import('@/views/ebiz/sale/answerPage')
const answerSuccess = () => import('@/views/ebiz/sale/answerSuccess')
const accountInformation = () => import('@/views/ebiz/sale/AccountInformation')
const insuranceInformation = () => import('@/views/ebiz/sale/InsuranceInformation')
const insuranceInformation_0081 = () => import('@/views/ebiz/sale/InsuranceInformation_0081')
const insuranceClauses = () => import('@/views/ebiz/sale/insuranceClauses')
const insuranceTip = () => import('@/views/ebiz/sale/InsuranceTip')
const universalRiskNotifyingMessageTip = () => import('@/views/ebiz/sale/universalRiskNotifyingMessageTip')
@@ -164,6 +165,14 @@ export default [
title: '投保须知'
}
},
{
path: '/sale/insuranceInformation_0081',
name: 'insuranceInformation_0081',
component: insuranceInformation_0081,
meta: {
title: '投保须知'
}
},
{
path: '/sale/insuranceClauses',
name: 'insuranceClauses',

View File

@@ -31,8 +31,6 @@ export default new Vuex.Store({
YBidNo: '', //银保代理人电子化合同签署证件号码
YBname: '', //银保代理人电子化合同签署姓名
YBuuid: '', //银保代理人电子化合同签署代理人uuid
uploadImgType: '',
uploadImgOrderNo: '',
},
mutations: {
setOrderDetail (state, data) {
@@ -80,11 +78,8 @@ export default new Vuex.Store({
state.pcList = val
},
//更新 风险测评是否显示状态
updateUploadImgType (state, val) {
state.uploadImgType = val
},
updateUploadImgOrderNo (state, val) {
state.uploadImgOrderNo = val
updateAnswerType (state, val) {
state.answerType = val
},
//更新 银保代理人电子化合同签署证件号码
updateYBidNo (state, val) {
@@ -124,12 +119,6 @@ export default new Vuex.Store({
getAnswerType (state) {
return state.answerType
},
getUploadImgType (state) {
return state.uploadImgType
},
getUploadImgOrderNo (state) {
return state.uploadImgOrderNo
},
getYBidNo (state) {
return state.YBidNo
},

View File

@@ -0,0 +1,196 @@
<template>
<div style="height: 100vh;background: #fff;">
<div style="display: flex;align-items: center;justify-content: center;padding-top: 60px;">
<img style="width: 40px;" src="@/assets/images/logo.png" />
<span style="margin-left: 15px;">请您填写以下正确信息</span>
</div>
<div style="margin-top: 120px;">
<van-cell-group>
<van-field v-model="name" v-validate="'required|salename'" label="姓名" name="姓名"/>
<van-field v-model="idNo" v-validate="'required|idNo'" label="身份证号" name="身份证号" maxlength="18"/>
</van-cell-group>
</div>
<van-button type="danger" class="bottom-btn" @click="nextStep" v-no-more-click="1000">确定</van-button>
<van-dialog class="text-center" v-model="isCaptchaModalShow" title="请输入验证码">
<div style="margin-top: 20px;margin-bottom: 20px;">
<van-field v-model="mobile" label="手机号码" readonly/>
<van-field v-model="code" type="number" v-validate="'required|onlyNumber'" maxlength="6" center clearable label="短信验证码" placeholder="请输入短信验证码">
<template #button>
<van-button size="small" type="danger" :disabled="countDownNum !== 0" @click="getCaptcha">{{
countDownNum === 0 ? '获取验证码' : countDownNum | countDownText
}}</van-button>
</template>
</van-field>
</div>
<div class="bottom">
<van-button type="danger" @click="onCaptchaConfirm" style="width:80%;margin-bottom: 20px;">确定</van-button>
</div>
</van-dialog>
<van-dialog class="text-center nobutton" v-model="isNoButtonModalShow" title="提示">
<div style="margin-top: 20px;margin-bottom: 70px;margin-top: 50px;">
<span>系统不存在该人员或已离职</span>
</div>
</van-dialog>
</div>
</template>
<script>
import {Field, CellGroup} from "vant";
import { getContractInfo, putContractInfo, getAuthCode, checkSignYB } from '@/api/ebiz/YB_agentSign/YB_agentSign'
export default {
name: 'YB_agentSign_step1',
components: {
[Field.name]: Field,
[CellGroup.name]: CellGroup,
},
data() {
return {
name:'',
idNo:'',
isCaptchaModalShow:false,
isNoButtonModalShow: false,
mobile:'',
oldmobile:'',
code:'',
countDownNum: 0,
uuid: ''
}
},
mounted() {
},
methods: {
async nextStep(){
let valid = await this.$validator.validate()
if (true === valid) {
let params = {
idType: "0",
idNo: this.idNo,
name: this.name
}
getContractInfo(params).then(res => {
if (res.result == 0) {
if(res.content.uuid){
this.isCaptchaModalShow = true
this.uuid = res.content.uuid
if(res.content.phone){
this.oldmobile = res.content.phone
this.mobile = this.dataMaskingMobile(this.oldmobile)
}else{
this.$toast('当前代理人没有手机号码信息')
}
}else{
this.$toast(res.content.message)
}
} else {
this.$toast(res.resultMessage)
return false
}
})
// this.isNoButtonModalShow = true
} else {
return this.$toast(this.$validator.errors.all()[0])
}
},
async getCaptcha() {
if(!this.oldmobile){
this.$toast('当前代理人没有手机号码信息,不能获取验证码');
return false
}
let data = {
operateType: 'appntInfoEntry',
type: 'H5',
operateCode: this.oldmobile,
system: 'agentApp',
operateCodeType: '0'
}
// 获取验证码
let res = await getAuthCode(data)
if (res.result === '0') {
this.$toast(res.resultMessage)
this.sid = res.sessionId
this.countDownNum = 60
this.countDownTimer = setInterval(() => {
this.countDownNum--
if (this.countDownNum <= 0) {
clearInterval(this.countDownTimer)
this.countDownTimer = null
}
}, 1000)
} else {
this.$toast(res.resultMessage)
}
},
async onCaptchaConfirm(){
if (!this.sid) {
return this.$toast('请先获取验证码')
}
if (!this.code.trim()) {
return this.$toast('请输入验证码')
}
let res = await checkSignYB({
smsId: this.sid,
code: this.code
})
if (res.result === '0') {
this.code = ''
this.isCaptchaModalShow = false
this.$store.commit('updateYBidNo', this.idNo)
this.$store.commit('updateYBname', this.name)
this.$store.commit('updateYBuuid', this.uuid)
this.$router.push({ path: '/YB_agentSign/step2'})
} else {
this.$toast(res.resultMessage)
}
},
dataMaskingMobile(mobile) {
let str = ''
if (mobile && mobile.trim().length == 11) {
str = mobile.trim().replace(/^(\S{0})(\S*)(\S{4})$/, function(all, u1, u2, u3) {
return u1 + new Array(u2.length + 1).join('*') + u3
})
}
return str
}
},
filters: {
countDownText(val) {
if (isNaN(parseFloat(val))) {
return val
} else {
return `${val} s`
}
}
}
}
</script>
<style lang="scss" scoped>
/deep/ .van-cell{
padding: 18px 15px;
}
/deep/.van-dialog__confirm{
color: #fff!important;
background: #e9332e;
border-radius: 8px;
margin-bottom: 20px;
width: 80%;
}
/deep/.van-field__label{
margin-left: 15px;
}
.text-center{
/deep/.van-field__label{
margin-left: 15px;
text-align: left;
}
}
.nobutton{
/deep/ .van-dialog__footer{
display: none;
}
}
/deep/ .van-dialog__footer{
display: none;
}
</style>

View File

@@ -0,0 +1,230 @@
<template>
<div class='insuranceInformation-container pb50 redRadioCheckbox'>
<van-notice-bar :scrollable='false' v-if='!Time' class='notice'>
{{ `提示:阅读时长需在${this.Time ? this.time : this.number}秒以上` }}
</van-notice-bar>
<div id="pdf" style="height: 70vh;overflow: scroll;background: #eee;">
<div id="pdfH5ID"></div>
</div>
<van-radio-group v-model='radio' class='pb10 pt20 pl30 fs14'>
<van-radio name='1' @click='click'>
本人确认已阅读<span>国富人寿保险股份有限公司委托代理合同</span>
</van-radio>
</van-radio-group>
<div class='pt30 pl30 flex align-items-c'>
<span class='mr10'>代理人签名 :</span>
<van-button type='danger' size='small' :disabled="signBtnDisable" @click="sign" v-no-more-click='1000'>
{{signInfo.status == '1' ? '签名' : '已签名' }}
</van-button>
<img v-if="signH5Img" :src="signImgUrl" style="height: 34px;margin-left: 20px;width: auto;"/>
</div>
<div class='bg-white bottom-btn'>
<van-button type='danger' size='large' :disabled='isDisabledComplite' @click='goNext' v-no-more-click='1000'>提交
</van-button>
</div>
<van-popup v-model="signSuccessShow" :close-on-click-overlay="false" round>
<div style="width: 300px;height: 150px;text-align: center;">
<div style="margin-top: 30px;font-size: 20px;">提交结果</div>
<div style="margin-top: 30px;font-size: 16px;display: flex;justify-content: center;align-items: center;">
<img src="@/assets/images/ebiz/radio-active.png" style="width: 25px;height: 25px;"/>
<span style="margin-left: 15px;">签署成功</span>
</div>
</div>
</van-popup>
</div>
</template>
<script>
import { RadioGroup, Radio, Dialog, NoticeBar } from 'vant'
import config from '@/config'
import { generateAgreementYB, putContractInfo } from '@/api/ebiz/YB_agentSign/YB_agentSign'
import Pdfh5 from "pdfh5";
export default {
data() {
let isWeixin = this.$utils.device().isWeixin //判断环境
return {
time:'10',
radio: '',
number: '',
src: location.origin + '/pdfjs/web/viewer.html?file=',
pdfUrl: '',
signVal: '2',
base64: '',
signBtnDisable: true,
isDisabledComplite:true,
isOver: false,
signInfo: {
status: '1'
},
signSuccessShow:false,
signImgUrl:'data:image/gif;base64,',
signH5Val: '',
signH5Img: '',
pdfh5: null
}
},
components: {
[RadioGroup.name]: RadioGroup,
[Radio.name]: Radio,
[Dialog.name]: Dialog,
[NoticeBar.name]: NoticeBar
},
created(){
this.timeOut()
},
mounted() {
document.body.style.backgroundColor = '#fff'
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
let dataParams = {
idType:'0',
idNo:this.$store.getters.getYBidNo,
name:this.$store.getters.getYBname
}
generateAgreementYB(dataParams).then(res=>{
this.$toast.clear()
if(res.result == 0){
window.sessionStorage.setItem('signName',this.$store.getters.getYBname)
// this.pdfUrl = config.assetsUpUrl + res.content.rgssUrl
//实例化
this.pdfh5 = new Pdfh5("#pdfH5ID", {
pdfurl: config.YB_agenturl + res.content.rgssUrl,
// pdfurl: 'https://iagentsales-test2.e-guofu.com/opt/ebiz/webapps/ebiz-epolicy/pdf/2023/08/09/1000001078372351/1000001078372351.pdf',
lazy:false,
scale:1
}).on("complete", function (status, msg, time) { //监听完成事件
console.log("状态:" + status + ",信息:" + msg + ",耗时:" + time + "毫秒,总页数:" + this.totalNum)
})
this.signH5Img = sessionStorage.getItem('signH5Img')
if(this.signH5Img){
this.$set(this.signInfo, 'status', '2')
this.radio = '1'
this.Time = true
this.isOver = true
this.signImgUrl = this.signImgUrl + this.signH5Img
}
}else{
this.$toast(res.resultMessage)
}
})
},
methods: {
// 点击阅读时
click() {
let that = this
if (that.isOver == false) {
Dialog.confirm({
title: '提示',
message: '该内容涉及您的重大权益,请您仔细阅读',
showCancelButton: false
}).then(() => {
that.radio = ''
})
}
},
timeOut() {
let that = this
let time = that.time
that.Time = false
that.number = `${time}`
let timer = setInterval(() => {
time--
if (time <= 0) {
time = 0
clearInterval(timer)
that.Time = true
that.isOver = true
// window.localStorage.setItem('step', '1')
}
that.number = `${time}`
}, 1000)
},
sign() {
window.location.href = 'http://'+window.location.host + '/signH5/1.html'
},
goNext(){
// this.signSuccessShow = true
// window.localStorage.removeItem('signInfo')
let params = {
uuid:this.$store.getters.getYBuuid,
signInfo: window.sessionStorage.getItem('signH5Val')
}
putContractInfo(params).then(res=>{
if(res.result == 0){
this.signSuccessShow = true
window.localStorage.removeItem('signInfo')
}else{
this.$toast(res.resultMessage)
}
})
}
},
computed: {
listenChange() {
const { isOver, radio, signInfo } = this
return { isOver, radio, signInfo }
}
},
beforeRouteLeave(to, from, next) {
window.sessionStorage.removeItem('signH5Val')
document.body.style.backgroundColor = ''
next()
},
watch: {
listenChange(val) {
let that = this
if (that.signVal == '0' || that.signVal == '2') {
if (val.isOver == true && val.radio != '') {
that.signBtnDisable = false
} else {
that.signBtnDisable = true
}
if (that.radio == '1' && val.signInfo.status == '2') {
that.isDisabledComplite = false
} else {
that.isDisabledComplite = true
}
}
}
}
}
</script>
<style lang='scss' scoped>
img {
width: 100%;
height: 100%;
}
.notice {
width: 100%;
position: fixed;
top: 0;
z-index: 20;
}
.iframe {
width: 100vw;
height: 70vh;
}
#pdfH5ID{
width: 100vw;
}
/deep/.viewerContainer{
width: 100vw;
overflow: inherit;
}
/deep/ .pageNum{
display: none!important;
}
/deep/ .pageContainer{
margin: 2vw;
background: #fff;
img{
width: 96vw;
}
}
</style>

View File

@@ -0,0 +1,702 @@
<template>
<div class="sale-list-container pb50 text-center" v-if="isCheck == 1">
<p class="f10 gray mt60">您暂无使用权限</p>
<p class="f10 gray mt5">如有问题咨询请联系个险业务部</p>
</div>
<div class="sale-list-container pb50" v-else-if="isCheck == 0">
<van-search placeholder="请输入投保人姓名" v-model="searchName" @change="searchList" @keyup.enter="searchList" />
<van-sticky>
<van-tabs :line-width="45" v-model="active" @change="tabChange" sticky>
<van-tab name="uncommit" title="未提交"></van-tab>
<van-tab name="commit" title="已提交"></van-tab>
<van-tab name="waitUnderwritten" title="待承保"></van-tab>
</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"
>
<div v-if="isSuccess">
<div v-if="saleList.length > 0">
<div v-for="(order, index) in saleList" :key="index">
<div class="fs12 mt20 mb5 text-center">{{ order.orderInfoDTO.createDate }}</div>
<div class="bg-white m15 pv15 pr15 pl10">
<div class="flex justify-content-s align-items-c">
<div>
<div class="w45 inline-b">
<van-tag plain color="#5CA7DE">投保</van-tag>
</div>
<span class="fs15 c-gray-dark">{{ order.appntDTO.name }}</span>
</div>
</div>
<div v-for="(insured, insuredIndex) in order.insuredDTOs" :key="insuredIndex">
<div class="mv15">
<div class="w45 inline-b">
<van-tag plain color="#DD9C56">被保</van-tag>
</div>
<span class="fs15 c-gray-dark">{{ insured.name }}</span>
</div>
<div v-for="(main, mainIndex) in insured.mainRisk" :key="mainIndex">
<div class="mv10">
<span class="w45 inline-b">
<van-tag plain type="danger">主险</van-tag>
</span>
<span class="fs15 c-gray-dark">{{ main.riskName }}</span>
</div>
<div class="mv10 pl45 flex" v-for="(addtional, addtionIndex) in main.addtion" :key="addtionIndex">
<span class="mr10" style="flex-shrink: 0">
<van-tag mark color="#DDF2EF" text-color="#E9332E">附加</van-tag>
</span>
<span class="fs13">{{ addtional.riskName }}</span>
</div>
</div>
</div>
<div class="flex fs15 justify-content-s mt15 mb15">
<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>
<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="w80 inline-b">
<van-tag plain color="#999999">状态</van-tag>
</div>
<span class="fs14 c-gray-dark">{{ order.stateName }}</span>
</div>
</div>
<div v-if="!!order.orderInfoDTO.doubleFlag && order.orderInfoDTO.doubleFlag == '0'" class="fs12 mt15">
温馨提示本投保单满足双录条件需要双录质检通过后才能承保
</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
>
<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
>
<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'">
<van-button @click="changeCard(order)" size="small" class="mr5" type="danger" round>修改卡号</van-button>
<van-button @click="againPay(order)" size="small" class="mr5" type="danger" round>重新支付</van-button>
</template>
<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
>
<van-button @click="seePolicy(order)" v-if="active == 'commit'" size="small" type="danger" round>查看投保单</van-button>
</div>
</div>
</div>
</div>
<div v-else class="text-center">
<img class="mt40" src="@/assets/images/pic_page-non.png" />
<div class="fs17 mt40">暂无订单</div>
</div>
</div>
</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
>
<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>
</template>
</van-field>
</van-dialog>
<!-- 短信验证 -->
<check-agent @checModelSuccessMethod="initThisPage" />
</div>
</template>
<script>
import { Search, Tabs, Tab, List, Tag, Sticky, Toast, Dialog, Field } from 'vant'
import { orderList, deleteOrderInfo, getAuthCode, revokeOrder } 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'
export default {
name: 'saleList',
components: {
[CheckAgent.name]: CheckAgent,
[Field.name]: Field,
[Search.name]: Search,
[Tabs.name]: Tabs,
[Tab.name]: Tab,
[List.name]: List,
[Tag.name]: Tag,
[Sticky.name]: Sticky,
[Dialog.name]: Dialog
},
data() {
return {
isCheck: 0, //查看是否有权限
showFlag: true,
searchName: '',
active: 'uncommit', //uncommit 表示未提交 commit表示已提交
saleList: [],
loading: false,
finished: false,
total: '', //总页数
currentPage: 1, //当前页数
error: false,
finishedText: '没有更多了',
pageSize: 5, //每页数据条数
isSuccess: false,
canRevoke: {
'19': true,
'02': true,
'48': true,
'49': true,
'55': true,
'58': true,
'46': true,
'50': true,
'51': true
},
canRevokeDouble: {
'19': true,
'02': true,
'48': true,
'49': true,
'55': true,
'58': true,
'46': true,
'50': true,
'51': true,
'16': true,
},
revokePanelShow: false,
sms: '',
smsId: '',
sendTime: 0,
getCaptcha: false,
captchaTimer: null,
captchaReceiver: '',
revokeOrderNo: '',
captchaMaped: false
}
},
mounted() {
setTimeout(() => {
// eslint-disable-next-line no-undef
EWebBridge.webCallAppInJs('webview_left_button', {
intercept: '1' //是否拦截原生返回事件 1是 其他否
})
}, 100)
window.appCallBack = this.appCallBack
funcPermCheck({}).then(res => {
this.isCheck = res.result
})
},
methods: {
beforeClose(action, done) {
this.captchaMaped ? done() : done(false)
},
async getCaptchaCode() {
if (this.sendTime !== 0) return
this.getCaptcha = true
this.sendTime = 60
let data = {
operateType: 'appntInfoEntry',
type: 'H5',
operateCode: this.captchaReceiver,
system: 'agentApp',
operateCodeType: '0'
}
let res = await getAuthCode(data)
if (res.result === '0') {
this.$toast('获取验证码成功')
}
this.smsId = res.sessionId
this.captchaTimer = setInterval(() => {
this.sendTime--
if (this.sendTime === 0) {
clearInterval(this.captchaTimer)
this.captchaTimer = null
}
}, 1000)
},
async checkCaptchaCode() {
if (!this.getCaptcha) {
return this.$toast('请先获取验证码')
}
if (!this.sms.trim()) {
return this.$toast('请输入验证码')
}
clearInterval(this.captchaTimer)
this.captchaTimer = null
let revokeResult = await revokeOrder({
id: this.revokeOrderNo,
smsId: this.smsId,
code: this.sms
})
if (revokeResult.result == 0) {
this.$toast('撤单成功!')
setTimeout(() => {
this.saleList = []
this.isSuccess = false
this.currentPage = 1
;[this.loading, this.finished] = [true, false]
let pageInfo = {
pageNum: this.currentPage,
pageSize: this.pageSize,
orderType: this.active
}
this.loadMore(pageInfo)
}, 1000)
} else {
Toast.fail(revokeResult.resultMessage)
}
this.cancelCaptchaCode()
this.sms = ''
},
cancelCaptchaCode() {
this.sendTime = 0
this.revokePanelShow = false
clearInterval(this.captchaTimer)
this.captchaTimer = null
this.getCaptcha = false
this.captchaMaped = false
this.captchaReceiver = ''
},
initThisPage(showFlag) {
this.showFlag = showFlag
if (this.showFlag) {
return
}
this.loadMore()
},
appCallBack(data) {
if (data.trigger == 'left_button_click') {
this.$jump({
flag: 'home'
})
}
},
//分页用
loadMore() {
if (this.showFlag) {
return
}
let pageInfo = {
pageNum: this.currentPage,
pageSize: this.pageSize,
orderType: this.active,
name: this.searchName,
desensitizType: this.active === 'uncommit' ? 1 : 0
}
this.getOrderList(pageInfo)
},
//再次支付
againPay(order) {
localStorage.orderNo = order.orderInfoDTO.orderNo
// 再次支付 salelist为 0
localStorage.salelist = '0'
localStorage.removeItem('changeCard')
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/payMent?orderNo=' + order.orderInfoDTO.orderNo
},
routerInfo: { path: '/sale/payMent?orderNo=' + order.orderInfoDTO.orderNo }
})
},
//支付失败去换卡
changeCard(order) {
let url = ''
let orderStatus = order.orderInfoDTO.orderStatus
localStorage.orderNo = order.orderInfoDTO.orderNo
if (order.insuredDTOs[0].riskDTOLst[0]) {
localStorage.setItem('productCode', order.insuredDTOs[0].riskDTOLst[0].mainRiskCode)
}
localStorage.setItem('changeCard', true)
switch (orderStatus) {
case '55': //账户信息页
url = '/sale/AccountInformation?orderNo=' + order.orderInfoDTO.orderNo
break
case '48': //账户信息填写成功,跳到影像上传页
url = '/sale/AttachmentManagement?orderNo=' + order.orderInfoDTO.orderNo
break
case '49': //影像上传页填写成功,跳到银行卡号确认页
url = '/sale/SignatureConfirmation?orderNo=' + order.orderInfoDTO.orderNo
break
}
this.$jump({
flag: 'h5',
extra: {
url: location.origin + `/#${url}`
},
routerInfo: { path: url }
})
},
//去支付
goPay(order) {
localStorage.orderNo = order.orderInfoDTO.orderNo
localStorage.setItem('AppntidType', order.appntDTO.idType)
localStorage.salelist = '1'
localStorage.removeItem('changeCard')
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/payMent?orderNo=' + order.orderInfoDTO.orderNo
},
routerInfo: { path: '/sale/payMent?orderNo=' + order.orderInfoDTO.orderNo }
})
},
//查看保单
seePolicy(order) {
localStorage.orderNo = order.orderInfoDTO.orderNo
localStorage.removeItem('changeCard')
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/detail?type=1&orderNo=' + order.orderInfoDTO.orderNo
},
routerInfo: {
path: '/sale/detail?orderNo=' + order.orderInfoDTO.orderNo,
query: {
type: 1
}
}
})
},
//初始化保单列表
getOrderList(pageInfo) {
orderList(pageInfo).then(res => {
if (res.result == '0') {
this.isSuccess = true
this.currentPage++
if (res.orderDTOPageInfo == null || res.orderDTOPageInfo == '' || res.orderDTOPageInfo == undefined) {
this.finished = true
this.loading = false
this.finishedText = ''
return
}
let list = res.orderDTOPageInfo.list
if (list.length == 0) {
this.finishedText = ''
} else {
this.finishedText = '已经全部加载'
}
list = formatRiskList(list, 'insuredDTOs', 'riskDTOLst') //根据后面两个参数 来格式化数据
dataDictionary.policyState.forEach(state => {
list.forEach(order => {
if (state.id == order.orderInfoDTO.orderStatus) {
order.stateName = state.text
}
})
})
this.saleList = this.saleList.concat(list)
if (this.saleList.length == 0) {
this.isSuccess = false
}
this.loading = false
if (res.orderDTOPageInfo.nextPage == 0) {
//当下一页为0时 表示全部数据加载完毕
this.finished = true
}
} else {
this.finished = true
this.loading = false
this.finishedText = res.resultMessage
}
})
},
tabChange(name) {
this.currentPage = 1
this.active = name
this.saleList = []
;[this.loading, this.finished] = [true, false]
this.finishedText = '正在加载...'
this.loadMore()
},
searchList() {
this.currentPage = 1
this.saleList = []
;[this.loading, this.finished] = [true, false]
this.finishedText = '正在加载...'
this.loadMore()
},
//投保单详情
goDetail(order) {
let thisToken = this.$CacheUtils.getLocItem('token')
window.localStorage.clear()
this.$CacheUtils.setLocItem('token', thisToken)
window.localStorage.setItem('detailJump', '')
if (order.insuredDTOs[0]) {
if (order.insuredDTOs[0].riskDTOLst[0]) {
localStorage.setItem('productCode', order.insuredDTOs[0].riskDTOLst[0].mainRiskCode)
}
}
let orderStatus = order.orderInfoDTO.orderStatus
let orderNo = order.orderInfoDTO.orderNo
let url = ''
//保存对应的订单号
localStorage.orderNo = orderNo
localStorage.isFrom = 'sale'
localStorage.removeItem('changeCard')
if(orderStatus == '01'){ //已签名待客户确认, 跳到签名确认页面
url = '/sale/SignatureConfirmation?edit=1&orderNo='+orderNo
}else if(orderStatus == '43'){//未签名待客户确认, 跳到签名确认页面
url = '/sale/SignatureConfirmation?edit=1&orderNo='+orderNo
}else if(orderStatus == '35'){//投保人保存成功, 跳到被保险人页面
url = '/sale/insuredPerson?edit=1&orderNo='+orderNo
}else if(orderStatus == '36'){//被保险人保存成功, 跳到已选产品列表
url = '/common/selectedProduct?edit=1&orderNo='+orderNo
}else if(orderStatus == '37'){//受益人保存成功, 跳到告知信息--
url = '/sale/NotifyingMessage?edit=1&orderNo='+orderNo
}else if(orderStatus == '38'){ //账户信息保存成功, 跳到附件管理--
url = '/sale/AttachmentManagement?edit=1&orderNo='+orderNo
}else if(orderStatus == '39'){ //险种信息保存成功, 跳到已选产品列表
url = '/common/selectedProduct?edit=1&orderNo='+orderNo
}else if(orderStatus == '40'){//告知信息保存成功, 跳到风险测评--
if( order.riskEvaluationDTO.isShowEvaluationPoint != '1'){
if(order.universalRiskNotifyDTO && order.universalRiskNotifyDTO.isUniversalRiskNotifyShowPoint == '1'){
url = '/sale/universalRiskNotifyingMessage?edit=1&orderNo='+orderNo
}else{
url = '/sale/AccountInformation?edit=1&orderNo='+orderNo
}
}else {
url = '/sale/answerPage?edit=1&orderNo='+orderNo
}
}else if(orderStatus == ''){//跳到投保人
url = '/sale/insuredInfo?edit=1&orderNo='+orderNo
}else if(orderStatus == '44'){//建议书转投保, 跳到投保人
url = '/sale/insuredInfo?edit=1&orderNo='+orderNo
}else if(orderStatus == '62'){//风险测评保存成功, 跳到账户信息--
if(order.universalRiskNotifyDTO && order.universalRiskNotifyDTO.isUniversalRiskNotifyShowPoint != '1'){
url = '/sale/AccountInformation?edit=1&orderNo='+orderNo
}else{
url = '/sale/universalRiskNotifyingMessage?edit=1&orderNo='+orderNo
}
}else if(orderStatus == '63'){//风险测评保存成功, 跳到账户信息--
url = '/sale/AccountInformation?edit=1&orderNo='+orderNo
}
// switch (orderStatus) {
// case '01': //已签名待客户确认, 跳到签名确认页面
// url = '/sale/SignatureConfirmation?edit=1'
// break
// case '43': //未签名待客户确认, 跳到签名确认页面
// url = '/sale/SignatureConfirmation?edit=1'
// break
// case '35': //投保人保存成功, 跳到被保险人页面--
// url = '/sale/insuredPerson?edit=1'
// break
// case '36': //被保险人保存成功, 跳到已选产品列表
// url = '/common/selectedProduct?edit=1'
// break
// case '37': //受益人保存成功, 跳到告知信息--
// url = '/sale/NotifyingMessage?edit=1'
// break
// case '38': //账户信息保存成功, 跳到附件管理--
// url = '/sale/AttachmentManagement?edit=1'
// break
// case '39': //险种信息保存成功, 跳到已选产品列表
// url = '/common/selectedProduct?edit=1'
// break
// case '40': //告知信息保存成功, 跳到风险测评--
// url = '/sale/answerPage?edit=1'
// break
// case '': //跳到投保人
// url = '/sale/insuredInfo?edit=1'
// break
// case '44': //建议书转投保, 跳到投保人
// url = '/sale/insuredInfo?edit=1'
// break
// case '62': //风险测评保存成功, 跳到账户信息--
// // url = '/sale/AccountInformation?edit=1'
// url = '/sale/answerSuccess?edit=1'
// break
// default:
// break
// }
this.$jump({
flag: 'h5',
extra: {
forbidSwipeBack: '1',
url: location.origin + `/#${url}`
},
routerInfo: { path: url }
})
},
//删除投保单
del(order) {
let params = {
orderType: 'DEL_ORDER', //列表页 此值为固定
id: order.orderInfoDTO.orderNo,
orderDTO: {
orderInfo: {
orderNo: order.orderNo
}
}
}
this.$dialog
.confirm({
className: 'dialog-delete',
title: '提示',
message: '确认删除投保单吗?',
cancelButtonColor: '#E9332E',
confirmButtonColor: '#FFFFFF'
})
.then(() => {
deleteOrderInfo(params).then(res => {
if (res.result == 0) {
this.saleList = []
this.isSuccess = false
this.currentPage = 1
;[this.loading, this.finished] = [true, false]
let pageInfo = {
pageNum: this.currentPage,
pageSize: this.pageSize,
orderType: this.active
}
this.loadMore(pageInfo)
} else {
Toast.fail(res.resultMessage)
}
})
})
.catch(() => {})
},
//新增
add() {
let thisToken = this.$CacheUtils.getLocItem('token')
window.localStorage.clear()
this.$CacheUtils.setLocItem('token', thisToken)
localStorage.orderNo = ''
localStorage.chooseProductCodes = '' //置空所选险种
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/insuredInfo'
},
routerInfo: { path: '/sale/insuredInfo' }
})
},
revokeOrder(order) {
console.dir(order)
this.$dialog
.confirm({
className: 'dialog-delete',
title: '提示',
message: '撤单后,数据将不可恢复,您确定要撤单吗?',
cancelButtonColor: '#E9332E',
confirmButtonColor: '#FFFFFF'
})
.then(() => {
this.revokePanelShow = true
this.captchaReceiver = order.appntDTO.mobile
this.revokeOrderNo = order.orderInfoDTO.orderNo
})
}
},
filters: {
encryCheckModelMobile(code) {
return code.replace(/^(\d{3})\d{4}(\d{4})$/, '$1****$2')
},
phoneNumFilter(phoneNum) {
let num = phoneNum.split('')
num.splice(3, 4, '****')
return num.join('')
}
}
}
</script>
<style lang="scss" scoped>
/deep/ .dialog-delete .van-dialog__header {
padding: 0.5em;
margin-bottom: 0;
border-bottom: 1px solid #eaeaea;
}
/deep/ .van-cell {
padding: 0;
padding-bottom: 0.5em;
border-bottom: 1px solid #eaeaea;
}
/deep/ .van-dialog__content {
padding: 1em;
}
.captchaReceiver {
margin-bottom: 1em;
padding-bottom: 1em;
border-bottom: 1px solid #eaeaea;
font-size: 14px;
}
.van-search__content {
background: #fff !important;
border-radius: 10px;
}
.van-search {
background: none !important;
}
</style>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -194,7 +194,7 @@ export default {
getAgentInfo({}).then(
res => {
if (res.result == 0) {
flag.manageComCode = res.manageComCode.substring(2, 4)
flag.manageComCode = res.manageComCode ? res.manageComCode.substring(2, 4) : ''
flag.jobNo = res.jobNo
// branchType N1、1代表个险渠道 和 N5、5 代表中介渠道N代表内勤
if (res.branchType == 'N1' || res.branchType == '1') {

View File

@@ -3,24 +3,24 @@
<!-- 基本信息 -->
<p class="title pl10 pv12 mt10">基本信息</p>
<van-field
v-model="userInfo.customerName"
required
clearable
label="姓名"
name="姓名"
placeholder="请输入"
v-validate="'required|name'"
v-model="userInfo.customerName"
required
clearable
label="姓名"
name="姓名"
placeholder="请输入"
v-validate="'required|name'"
/>
<van-field
v-model="userInfo.customerPhone"
required
clearable
label="移动电话"
name="移动电话"
placeholder="请输入"
maxlength="11"
type="tel"
v-validate="'required|mobile'"
v-model="userInfo.customerPhone"
required
clearable
label="移动电话"
name="移动电话"
placeholder="请输入"
maxlength="11"
type="tel"
v-validate="'required|mobile'"
/>
<form-block :userInfo="userInfo" ref="formBlock"></form-block>
<van-button type="danger" class="bottom-btn" @click="save" v-no-more-click="1000">保存</van-button>
@@ -28,303 +28,307 @@
</template>
<script>
import { Field, CellGroup, Cell } from 'vant'
import { updateCustomerInfo } from '@/api/ebiz/customer/customer'
import formBlock from '@/components/ebiz/customer/formBlock'
import { Field, CellGroup, Cell, RadioGroup, Radio, } from 'vant'
import { updateCustomerInfo } from '@/api/ebiz/customer/customer'
import formBlock from '@/components/ebiz/customer/formBlock'
export default {
name: 'addCustomer',
components: {
[Field.name]: Field,
[CellGroup.name]: CellGroup,
[Cell.name]: Cell,
[formBlock.name]: formBlock
},
data() {
return {
userInfo: {
customerName: '', //姓名
customerPhone: '', // 手机号
customerSex: '0', //性别
nativeplace: '1', //国家地区
province: '', //户籍省
city: '', //户籍市
birthday: '', //出生日期
idType: '1', //证件类型
customerIdNumber: '', //证件号码
certificateValidate: '', //证件起始日期
certiexpiredate: '', //证件到期时间
effectiveDateType: false, //是否长期
email: '', //电子邮箱
stature: '', //身高
weight: '', //体重,
customerType: '0', //客户类别
customerSource: '-1', //客户来源
degree: '', //文化程度
socialSecurity: '0', //有无社保
taxIdentity: '1', //税收居民身份
occupationCode: '', //职业类别
occupationName: '',
lifeGrade: '', //寿险等级
healthGrade: '', //健康等级
averageYearlyIncome: '', //平均年收入
liabilitiesMoney: '', //负债金额
workUnits: '', //工作单位
workCondition: '', //在职情况
companyProvince: '', //单位省
companyCity: '', //单位市
companyArea: '', //单位区
companyAddress: '', //单位详细地址
companyZip: '', //单位邮编
companyPhone: '', //单位电话
marriage: '', //婚姻状况
familyAnnualIncome: '', //家庭年收入
homeProvince: '', //家庭省
homeCity: '', //家庭市
homeArea: '', //家庭区
homeAddress: '', //家庭详细地址
homeZip: '', //家庭邮编
homePhone: '' //家庭电话
export default {
name: 'addCustomer',
components: {
[Field.name]: Field,
[CellGroup.name]: CellGroup,
[Cell.name]: Cell,
[formBlock.name]: formBlock
},
data() {
return {
userInfo: {
customerName: '', //姓名
customerPhone: '', // 手机号
customerSex: '0', //性别
nativeplace: '1', //国家地区
province: '', //户籍省
city: '', //户籍市
birthday: '', //出生日期
idType: '1', //证件类型
customerIdNumber: '', //证件号码
certificateValidate: '', //证件起始日期
certiexpiredate: '', //证件到期时间
effectiveDateType: false, //是否长期
email: '', //电子邮箱
stature: '', //身高
weight: '', //体重,
customerType: '0', //客户类别
customerSource: '-1', //客户来源
degree: '', //文化程度
socialSecurity: '0', //有无社保
taxIdentity: '1', //税收居民身份
occupationCode: '', //职业类别
occupationName: '',
lifeGrade: '', //寿险等级
healthGrade: '', //健康等级
averageYearlyIncome: '', //平均年收入
liabilitiesMoney: '', //负债金额
workUnits: '', //工作单位
workCondition: '', //在职情况
companyProvince: '', //单位省
companyCity: '', //单位市
companyArea: '', //单位区
companyAddress: '', //单位详细地址
companyZip: '', //单位邮编
companyPhone: '', //单位电话
marriage: '', //婚姻状况
familyAnnualIncome: '', //家庭年收入
homeProvince: '', //家庭省
homeCity: '', //家庭市
homeArea: '', //家庭区
homeAddress: '', //家庭详细地址
homeZip: '', //家庭邮编
homePhone: '', //家庭电话
isNewPeopleFlag: '', //新市民身份
npType: '', //新市民类型
}
}
}
},
mounted() {
//this.filterBtn() //按钮初始化
//window.appCallBack = this.appCallBack //app回调
},
methods: {
// filterBtn() {
// EWebBridge.webCallAppInJs('webview_right_button', {
// btns: [
// {
// // img:"@/assets/images/u12045.png",
// title: '保存'
// }
// ]
// })
// },
// appCallBack(data) {
// if (data.trigger == 'right_button_click') {
// if (data.index == 0 && this.loading) {
// this.$validator.validate().then(valid => {
// if (true === valid) {
// this.updateCustomerInfo()
// } else {
// this.$toast(this.$validator.errors.all()[0])
// }
// })
// }
// }
// },
save() {
this.$validator.validate().then(valid => {
if (true === valid) {
let vf1 = this.$refs.formBlock.validateForm()
Promise.all([vf1]).then(result => {
if (result.indexOf(false) > -1) {
this.$toast(this.$refs.formBlock.$validator.errors.all()[0])
return
} else if (this.userInfo.customerIdNumber) {
this.$refs.formBlock.validateIdType()
} else if (this.userInfo.birthday && this.userInfo.marriage) {
this.$refs.formBlock.validateMarr()
} else {
if (this.userInfo.birthday && this.userInfo.marriage) {
},
mounted() {
//this.filterBtn() //按钮初始化
//window.appCallBack = this.appCallBack //app回调
},
methods: {
// filterBtn() {
// EWebBridge.webCallAppInJs('webview_right_button', {
// btns: [
// {
// // img:"@/assets/images/u12045.png",
// title: '保存'
// }
// ]
// })
// },
// appCallBack(data) {
// if (data.trigger == 'right_button_click') {
// if (data.index == 0 && this.loading) {
// this.$validator.validate().then(valid => {
// if (true === valid) {
// this.updateCustomerInfo()
// } else {
// this.$toast(this.$validator.errors.all()[0])
// }
// })
// }
// }
// },
save() {
this.$validator.validate().then(valid => {
if (true === valid) {
let vf1 = this.$refs.formBlock.validateForm()
Promise.all([vf1]).then(result => {
if (result.indexOf(false) > -1) {
this.$toast(this.$refs.formBlock.$validator.errors.all()[0])
return
} else if (this.userInfo.customerIdNumber) {
this.$refs.formBlock.validateIdType()
} else if (this.userInfo.birthday && this.userInfo.marriage) {
this.$refs.formBlock.validateMarr()
} else {
this.updateCustomerInfo()
}
}
})
} else {
this.$toast(this.$validator.errors.all()[0])
}
})
},
updateCustomerInfo() {
let $this = this
let data = {
agentCustomerInfoDTO: {
customerNumber: '',
customerName: $this.userInfo.customerName,
customerPhone: $this.userInfo.customerPhone,
customerSex: $this.userInfo.customerSex,
country: $this.userInfo.nativeplace,
//rgtaddress: $this.userInfo.census,
birthday: $this.userInfo.birthday,
customerIdType: $this.userInfo.idType,
customerIdNumber: $this.userInfo.customerIdNumber,
idEffectStartDate: $this.userInfo.certificateValidate,
idEffectEndDate: $this.userInfo.certiexpiredate,
email: $this.userInfo.email,
height: $this.userInfo.stature,
weight: $this.userInfo.weight,
customerType: $this.userInfo.customerType,
customerSource: $this.userInfo.customerSource,
educationLevel: $this.userInfo.degree,
socialSecurity: $this.userInfo.socialSecurity,
residentStatus: $this.userInfo.taxIdentity,
occupationCode: $this.userInfo.occupationCode,
occupationName: $this.userInfo.occupationName,
lifeGrade: $this.userInfo.lifeGrade,
healthGrade: $this.userInfo.healthGrade,
averageYearlyIncome: $this.userInfo.averageYearlyIncome,
liabilitiesMoney: $this.userInfo.liabilitiesMoney,
workUnits: $this.userInfo.workUnits,
jobStatus: $this.userInfo.workCondition,
companyProvince: $this.userInfo.companyProvince,
companyCity: $this.userInfo.companyCity,
companyArea: $this.userInfo.companyArea,
companyAddress: $this.userInfo.companyAddress,
companyZip: $this.userInfo.companyZip,
companyPhone: $this.userInfo.companyPhone,
marryStatus: $this.userInfo.marriage,
homeProvince: $this.userInfo.homeProvince,
homeCity: $this.userInfo.homeCity,
homeArea: $this.userInfo.homeArea,
homeAddress: $this.userInfo.homeAddress,
homeZip: $this.userInfo.homeZip,
familyAnnualIncome: $this.userInfo.familyAnnualIncome,
province: $this.userInfo.province,
city: $this.userInfo.city,
homePhone: $this.userInfo.homePhone
}
}
switch (data.agentCustomerInfoDTO.companyArea) {
case '500129':
data.agentCustomerInfoDTO.companyArea = '500229'
break
case '500130':
data.agentCustomerInfoDTO.companyArea = '500230'
break
case '500131':
data.agentCustomerInfoDTO.companyArea = '500231'
break
case '500133':
data.agentCustomerInfoDTO.companyArea = '500233'
break
case '500135':
data.agentCustomerInfoDTO.companyArea = '500235'
break
case '500136':
data.agentCustomerInfoDTO.companyArea = '500236'
break
case '500137':
data.agentCustomerInfoDTO.companyArea = '500237'
break
case '500138':
data.agentCustomerInfoDTO.companyArea = '500238'
break
case '500140':
data.agentCustomerInfoDTO.companyArea = '500240'
break
case '500141':
data.agentCustomerInfoDTO.companyArea = '500241'
break
case '500142':
data.agentCustomerInfoDTO.companyArea = '500242'
break
case '500143':
data.agentCustomerInfoDTO.companyArea = '500243'
break
}
switch (data.agentCustomerInfoDTO.homeArea) {
case '500129':
data.agentCustomerInfoDTO.homeArea = '500229'
break
case '500130':
data.agentCustomerInfoDTO.homeArea = '500230'
break
case '500131':
data.agentCustomerInfoDTO.homeArea = '500231'
break
case '500133':
data.agentCustomerInfoDTO.homeArea = '500233'
break
case '500135':
data.agentCustomerInfoDTO.homeArea = '500235'
break
case '500136':
data.agentCustomerInfoDTO.homeArea = '500236'
break
case '500137':
data.agentCustomerInfoDTO.homeArea = '500237'
break
case '500138':
data.agentCustomerInfoDTO.homeArea = '500238'
break
case '500140':
data.agentCustomerInfoDTO.homeArea = '500240'
break
case '500141':
data.agentCustomerInfoDTO.homeArea = '500241'
break
case '500142':
data.agentCustomerInfoDTO.homeArea = '500242'
break
case '500143':
data.agentCustomerInfoDTO.homeArea = '500243'
break
}
updateCustomerInfo(data)
.then(res => {
if (res.result == 0) {
// EWebBridge.webCallAppInJs('goBack', { refresh: '1' })
this.$jump({
flag: 'goBack',
extra: {
refresh: '1'
},
routerInfo: {
path: '/customer/customerList'
if (this.userInfo.birthday && this.userInfo.marriage) {
this.$refs.formBlock.validateMarr()
} else {
this.updateCustomerInfo()
}
}
})
} else {
$this.$toast(res.resultMessage)
this.$toast(this.$validator.errors.all()[0])
}
})
.catch(err => {})
},
updateCustomerInfo() {
let $this = this
let data = {
agentCustomerInfoDTO: {
customerNumber: '',
customerName: $this.userInfo.customerName,
customerPhone: $this.userInfo.customerPhone,
customerSex: $this.userInfo.customerSex,
country: $this.userInfo.nativeplace,
//rgtaddress: $this.userInfo.census,
birthday: $this.userInfo.birthday,
customerIdType: $this.userInfo.idType,
customerIdNumber: $this.userInfo.customerIdNumber,
idEffectStartDate: $this.userInfo.certificateValidate,
idEffectEndDate: $this.userInfo.certiexpiredate,
email: $this.userInfo.email,
height: $this.userInfo.stature,
weight: $this.userInfo.weight,
customerType: $this.userInfo.customerType,
customerSource: $this.userInfo.customerSource,
educationLevel: $this.userInfo.degree,
socialSecurity: $this.userInfo.socialSecurity,
residentStatus: $this.userInfo.taxIdentity,
occupationCode: $this.userInfo.occupationCode,
occupationName: $this.userInfo.occupationName,
lifeGrade: $this.userInfo.lifeGrade,
healthGrade: $this.userInfo.healthGrade,
averageYearlyIncome: $this.userInfo.averageYearlyIncome,
liabilitiesMoney: $this.userInfo.liabilitiesMoney,
workUnits: $this.userInfo.workUnits,
jobStatus: $this.userInfo.workCondition,
companyProvince: $this.userInfo.companyProvince,
companyCity: $this.userInfo.companyCity,
companyArea: $this.userInfo.companyArea,
companyAddress: $this.userInfo.companyAddress,
companyZip: $this.userInfo.companyZip,
companyPhone: $this.userInfo.companyPhone,
marryStatus: $this.userInfo.marriage,
homeProvince: $this.userInfo.homeProvince,
homeCity: $this.userInfo.homeCity,
homeArea: $this.userInfo.homeArea,
homeAddress: $this.userInfo.homeAddress,
homeZip: $this.userInfo.homeZip,
familyAnnualIncome: $this.userInfo.familyAnnualIncome,
province: $this.userInfo.province,
city: $this.userInfo.city,
homePhone: $this.userInfo.homePhone,
isNewPeopleFlag: $this.userInfo.isNewPeopleFlag,
npType: $this.userInfo.npType,
}
}
switch (data.agentCustomerInfoDTO.companyArea) {
case '500129':
data.agentCustomerInfoDTO.companyArea = '500229'
break
case '500130':
data.agentCustomerInfoDTO.companyArea = '500230'
break
case '500131':
data.agentCustomerInfoDTO.companyArea = '500231'
break
case '500133':
data.agentCustomerInfoDTO.companyArea = '500233'
break
case '500135':
data.agentCustomerInfoDTO.companyArea = '500235'
break
case '500136':
data.agentCustomerInfoDTO.companyArea = '500236'
break
case '500137':
data.agentCustomerInfoDTO.companyArea = '500237'
break
case '500138':
data.agentCustomerInfoDTO.companyArea = '500238'
break
case '500140':
data.agentCustomerInfoDTO.companyArea = '500240'
break
case '500141':
data.agentCustomerInfoDTO.companyArea = '500241'
break
case '500142':
data.agentCustomerInfoDTO.companyArea = '500242'
break
case '500143':
data.agentCustomerInfoDTO.companyArea = '500243'
break
}
switch (data.agentCustomerInfoDTO.homeArea) {
case '500129':
data.agentCustomerInfoDTO.homeArea = '500229'
break
case '500130':
data.agentCustomerInfoDTO.homeArea = '500230'
break
case '500131':
data.agentCustomerInfoDTO.homeArea = '500231'
break
case '500133':
data.agentCustomerInfoDTO.homeArea = '500233'
break
case '500135':
data.agentCustomerInfoDTO.homeArea = '500235'
break
case '500136':
data.agentCustomerInfoDTO.homeArea = '500236'
break
case '500137':
data.agentCustomerInfoDTO.homeArea = '500237'
break
case '500138':
data.agentCustomerInfoDTO.homeArea = '500238'
break
case '500140':
data.agentCustomerInfoDTO.homeArea = '500240'
break
case '500141':
data.agentCustomerInfoDTO.homeArea = '500241'
break
case '500142':
data.agentCustomerInfoDTO.homeArea = '500242'
break
case '500143':
data.agentCustomerInfoDTO.homeArea = '500243'
break
}
updateCustomerInfo(data)
.then(res => {
if (res.result == 0) {
// EWebBridge.webCallAppInJs('goBack', { refresh: '1' })
this.$jump({
flag: 'goBack',
extra: {
refresh: '1'
},
routerInfo: {
path: '/customer/customerList'
}
})
} else {
$this.$toast(res.resultMessage)
}
})
.catch(err => {})
}
}
}
}
</script>
<style lang="scss" scoped>
.van-index-anchor {
background: #fff;
}
.container {
padding-bottom: 45px;
.header {
display: flex;
justify-content: flex-end;
padding: 10px;
}
.title {
font-size: 15px;
font-weight: bold;
.van-index-anchor {
background: #fff;
border-bottom: 1px solid #ebedf0;
}
.sex-radio {
.radio-area {
display: -webkit-flex;
.container {
padding-bottom: 45px;
.header {
display: flex;
justify-content: flex-start;
.item {
width: 70px;
height: 30px;
line-height: 30px;
border: 1px solid #ea5b50;
border-radius: 20px;
text-align: center;
color: #ea5b50;
margin-right: 10px;
}
.active {
background: #ea5b50;
color: #fff;
justify-content: flex-end;
padding: 10px;
}
.title {
font-size: 15px;
font-weight: bold;
background: #fff;
border-bottom: 1px solid #ebedf0;
}
.sex-radio {
.radio-area {
display: -webkit-flex;
display: flex;
justify-content: flex-start;
.item {
width: 70px;
height: 30px;
line-height: 30px;
border: 1px solid #ea5b50;
border-radius: 20px;
text-align: center;
color: #ea5b50;
margin-right: 10px;
}
.active {
background: #ea5b50;
color: #fff;
}
}
}
}
}
</style>

View File

@@ -3,24 +3,24 @@
<p class="title pl10 pv12 mt10">基本信息</p>
<div v-if="source == 'app'">
<van-field
v-model="userInfo.customerName"
required
clearable
label="姓名"
name="姓名"
placeholder="请输入"
v-validate="'required|name'"
v-model="userInfo.customerName"
required
clearable
label="姓名"
name="姓名"
placeholder="请输入"
v-validate="'required|name'"
/>
<van-field
v-model="userInfo.customerPhone"
required
clearable
label="移动电话"
name="移动电话"
placeholder="请输入"
maxlength="11"
type="tel"
v-validate="'required|mobile'"
v-model="userInfo.customerPhone"
required
clearable
label="移动电话"
name="移动电话"
placeholder="请输入"
maxlength="11"
type="tel"
v-validate="'required|mobile'"
/>
</div>
<div v-else>
@@ -34,456 +34,462 @@
</template>
<script>
import { Field, CellGroup, Cell } from 'vant'
import { getAgentCustomerInfo, updateCustomerInfo } from '@/api/ebiz/customer/customer'
import formBlock from '@/components/ebiz/customer/formBlock'
import { constants } from 'crypto'
import { Field, CellGroup, Cell } from 'vant'
import { getAgentCustomerInfo, updateCustomerInfo } from '@/api/ebiz/customer/customer'
import formBlock from '@/components/ebiz/customer/formBlock'
import { constants } from 'crypto'
export default {
name: 'editCustomer',
components: {
[Field.name]: Field,
[CellGroup.name]: CellGroup,
[Cell.name]: Cell,
[formBlock.name]: formBlock
},
data() {
return {
source: this.$route.query.from,
appName: this.$route.query.name,
appPhone: this.$route.query.tel,
customerNumber: localStorage.getItem('customerNumber'),
userInfo: {
customerName: '', //姓名
customerPhone: '', // 手机号
customerSex: '0', //性别
nativeplace: '1', //国家地区
province: '', //户籍省
city: '', //户籍市
birthday: '', //出生日期
idType: '1', //证件类型
customerIdNumber: '', //证件号码
certificateValidate: '', //证件起始日期
certiexpiredate: '', //证件到期时间
effectiveDateType: false, //是否长期
email: '', //电子邮箱
stature: '', //身高
weight: '', //体重,
customerType: '0', //客户类别
customerSource: '-1', //客户来源
degree: '', //文化程度
socialSecurity: '0', //有无社保
taxIdentity: '1', //税收居民身份
occupationCode: '', //职业类别
occupationName: '',
lifeGrade: '', //寿险等级
healthGrade: '', //健康等级
averageYearlyIncome: '', //平均年收入
liabilitiesMoney: '', //负债金额
workUnits: '', //工作单位
workCondition: '', //在职情况
companyProvince: '', //单位省
companyCity: '', //单位市
companyArea: '', //单位区
companyAddress: '', //单位详细地址
companyZip: '', //单位邮编
companyPhone: '', //单位电话
marriage: '', //婚姻状况
familyAnnualIncome: '', //家庭年收入
homeProvince: '', //家庭省
homeCity: '', //家庭市
homeArea: '', //家庭区
homeAddress: '', //家庭详细地址
homeZip: '', //家庭邮编
homePhone: '' //家庭电话
}
}
},
mounted() {
//this.filterBtn() //按钮初始化
//window.appCallBack = this.appCallBack //app回调
//数据回显
if (this.source == 'app') {
this.userInfo.customerName = this.appName
this.userInfo.customerPhone = this.appPhone
this.customerNumber = ''
} else {
this.getCustomerInfo() //获取客户信息
}
},
methods: {
// filterBtn() {
// EWebBridge.webCallAppInJs('webview_right_button', {
// btns: [
// {
// img:"@/assets/images/u12045.png",
// }
// ]
// })
// },
// appCallBack(data) {
// if (data.trigger == 'right_button_click') {
// if (data.index == 0 && this.loading) {
// this.updateCustomerInfo() //保存信息
// }
// }
// },
getCustomerInfo() {
let $this = this
let data = {
customerNumber: $this.customerNumber
}
getAgentCustomerInfo(data)
.then(res => {
if (res.result == 0) {
let result = res.content
$this.userInfo.nativeplace = result.country
$this.userInfo.idType = result.customerIdType
$this.userInfo.degree = result.educationLevel
$this.userInfo.taxIdentity = result.residentStatus
$this.userInfo.marriage = result.marryStatus
$this.userInfo.socialSecurity = result.socialSecurity
$this.userInfo.customerName = result.customerName
$this.userInfo.customerPhone = result.customerPhone
$this.userInfo.customerSex = result.customerSex
$this.userInfo.birthday = result.birthday
$this.userInfo.customerIdNumber = result.customerIdNumber
$this.userInfo.certificateValidate = result.idEffectStartDate
$this.userInfo.certiexpiredate = result.idEffectEndDate
$this.userInfo.email = result.email
$this.userInfo.stature = result.height
$this.userInfo.weight = result.weight
$this.userInfo.customerType = result.customerType
$this.userInfo.customerSource = result.customerSource
$this.userInfo.occupationName = result.occupationName
$this.userInfo.occupationCode = result.occupationCode
$this.userInfo.lifeGrade = result.lifeGrade
$this.userInfo.healthGrade = result.healthGrade
$this.userInfo.averageYearlyIncome = result.averageYearlyIncome
$this.userInfo.workUnits = result.workUnits
$this.userInfo.province = result.province
$this.userInfo.city = result.city
$this.userInfo.homeAddress = result.homeAddress
$this.userInfo.homeZip = result.homeZip
$this.userInfo.homePhone = result.homePhone
$this.userInfo.familyAnnualIncome = result.familyAnnualIncome
$this.userInfo.workCondition = result.jobStatus
$this.userInfo.companyAddress = result.companyAddress
$this.userInfo.companyZip = result.companyZip
$this.userInfo.companyPhone = result.companyPhone
$this.userInfo.liabilitiesMoney = result.liabilitiesMoney
$this.userInfo.companyProvince = result.companyProvince
$this.userInfo.companyCity = result.companyCity
$this.userInfo.companyArea = result.companyArea
$this.userInfo.homeProvince = result.homeProvince
$this.userInfo.homeCity = result.homeCity
$this.userInfo.homeArea = result.homeArea
sessionStorage.setItem('birthday', result.birthday)
sessionStorage.setItem('idType', result.customerIdType)
switch ($this.userInfo.companyArea) {
case '500229':
$this.userInfo.companyArea = '500129'
break
case '500230':
$this.userInfo.companyArea = '500130'
break
case '500231':
$this.userInfo.companyArea = '500131'
break
case '500233':
$this.userInfo.companyArea = '500133'
break
case '500235':
$this.userInfo.companyArea = '500135'
break
case '500236':
$this.userInfo.companyArea = '500136'
break
case '500237':
$this.userInfo.companyArea = '500137'
break
case '500238':
$this.userInfo.companyArea = '500138'
break
case '500240':
$this.userInfo.companyArea = '500140'
break
case '500241':
$this.userInfo.companyArea = '500141'
break
case '500242':
$this.userInfo.companyArea = '500142'
break
case '500243':
$this.userInfo.companyArea = '500143'
break
}
switch ($this.userInfo.homeArea) {
case '500229':
$this.userInfo.homeArea = '500129'
break
case '500230':
$this.userInfo.homeArea = '500130'
break
case '500231':
$this.userInfo.homeArea = '500131'
break
case '500233':
$this.userInfo.homeArea = '500133'
break
case '500235':
$this.userInfo.homeArea = '500135'
break
case '500236':
$this.userInfo.homeArea = '500136'
break
case '500237':
$this.userInfo.homeArea = '500137'
break
case '500238':
$this.userInfo.homeArea = '500138'
break
case '500240':
$this.userInfo.homeArea = '500140'
break
case '500241':
$this.userInfo.homeArea = '500141'
break
case '500242':
$this.userInfo.homeArea = '500142'
break
case '500243':
$this.userInfo.homeArea = '500143'
break
}
this.$refs.formBlock.isEndFlag()
//查询职业名称
// occupationList.forEach(first => {
// first.subs.forEach(second => {
// second.subs.forEach(third => {
// if (third.code == result.occupationCode) {
// $this.userInfo.occupationName = third.name
// }
// })
// })
// })
}
})
.catch(err => {})
export default {
name: 'editCustomer',
components: {
[Field.name]: Field,
[CellGroup.name]: CellGroup,
[Cell.name]: Cell,
[formBlock.name]: formBlock
},
save() {
this.$validator.validate().then(valid => {
if (true === valid) {
let vf1 = this.$refs.formBlock.validateForm()
Promise.all([vf1]).then(result => {
if (result.indexOf(false) > -1) {
this.$toast(this.$refs.formBlock.$validator.errors.all()[0])
return
} else if (this.userInfo.customerIdNumber) {
this.$refs.formBlock.validateIdType()
} else {
if (this.userInfo.birthday && this.userInfo.marriage) {
this.$refs.formBlock.validateMarr()
data() {
return {
source: this.$route.query.from,
appName: this.$route.query.name,
appPhone: this.$route.query.tel,
customerNumber: localStorage.getItem('customerNumber'),
userInfo: {
customerName: '', //姓名
customerPhone: '', // 手机号
customerSex: '0', //性别
nativeplace: '1', //国家地区
province: '', //户籍省
city: '', //户籍市
birthday: '', //出生日期
idType: '1', //证件类型
customerIdNumber: '', //证件号码
certificateValidate: '', //证件起始日期
certiexpiredate: '', //证件到期时间
effectiveDateType: false, //是否长期
email: '', //电子邮箱
stature: '', //身高
weight: '', //体重,
customerType: '0', //客户类别
customerSource: '-1', //客户来源
degree: '', //文化程度
socialSecurity: '0', //有无社保
taxIdentity: '1', //税收居民身份
occupationCode: '', //职业类别
occupationName: '',
lifeGrade: '', //寿险等级
healthGrade: '', //健康等级
averageYearlyIncome: '', //平均年收入
liabilitiesMoney: '', //负债金额
workUnits: '', //工作单位
workCondition: '', //在职情况
companyProvince: '', //单位省
companyCity: '', //单位市
companyArea: '', //单位区
companyAddress: '', //单位详细地址
companyZip: '', //单位邮编
companyPhone: '', //单位电话
marriage: '', //婚姻状况
familyAnnualIncome: '', //家庭年收入
homeProvince: '', //家庭省
homeCity: '', //家庭市
homeArea: '', //家庭区
homeAddress: '', //家庭详细地址
homeZip: '', //家庭邮编
homePhone: '', //家庭电话
isNewPeopleFlag: '', //新市民身份
npType: '', //新市民类型
}
}
},
mounted() {
//this.filterBtn() //按钮初始化
//window.appCallBack = this.appCallBack //app回调
//数据回显
if (this.source == 'app') {
this.userInfo.customerName = this.appName
this.userInfo.customerPhone = this.appPhone
this.customerNumber = ''
} else {
this.getCustomerInfo() //获取客户信息
}
},
methods: {
// filterBtn() {
// EWebBridge.webCallAppInJs('webview_right_button', {
// btns: [
// {
// img:"@/assets/images/u12045.png",
// }
// ]
// })
// },
// appCallBack(data) {
// if (data.trigger == 'right_button_click') {
// if (data.index == 0 && this.loading) {
// this.updateCustomerInfo() //保存信息
// }
// }
// },
getCustomerInfo() {
let $this = this
let data = {
customerNumber: $this.customerNumber
}
getAgentCustomerInfo(data)
.then(res => {
if (res.result == 0) {
let result = res.content
$this.userInfo.nativeplace = result.country
$this.userInfo.idType = result.customerIdType
$this.userInfo.degree = result.educationLevel
$this.userInfo.taxIdentity = result.residentStatus
$this.userInfo.marriage = result.marryStatus
$this.userInfo.socialSecurity = result.socialSecurity
$this.userInfo.customerName = result.customerName
$this.userInfo.customerPhone = result.customerPhone
$this.userInfo.customerSex = result.customerSex
$this.userInfo.birthday = result.birthday
$this.userInfo.customerIdNumber = result.customerIdNumber
$this.userInfo.certificateValidate = result.idEffectStartDate
$this.userInfo.certiexpiredate = result.idEffectEndDate
$this.userInfo.email = result.email
$this.userInfo.stature = result.height
$this.userInfo.weight = result.weight
$this.userInfo.customerType = result.customerType
$this.userInfo.customerSource = result.customerSource
$this.userInfo.occupationName = result.occupationName
$this.userInfo.occupationCode = result.occupationCode
$this.userInfo.lifeGrade = result.lifeGrade
$this.userInfo.healthGrade = result.healthGrade
$this.userInfo.averageYearlyIncome = result.averageYearlyIncome
$this.userInfo.workUnits = result.workUnits
$this.userInfo.province = result.province
$this.userInfo.city = result.city
$this.userInfo.homeAddress = result.homeAddress
$this.userInfo.homeZip = result.homeZip
$this.userInfo.homePhone = result.homePhone
$this.userInfo.familyAnnualIncome = result.familyAnnualIncome
$this.userInfo.workCondition = result.jobStatus
$this.userInfo.companyAddress = result.companyAddress
$this.userInfo.companyZip = result.companyZip
$this.userInfo.companyPhone = result.companyPhone
$this.userInfo.liabilitiesMoney = result.liabilitiesMoney
$this.userInfo.companyProvince = result.companyProvince
$this.userInfo.companyCity = result.companyCity
$this.userInfo.companyArea = result.companyArea
$this.userInfo.homeProvince = result.homeProvince
$this.userInfo.homeCity = result.homeCity
$this.userInfo.homeArea = result.homeArea
$this.userInfo.isNewPeopleFlag = result.isNewPeopleFlag
$this.userInfo.npType = result.npType
sessionStorage.setItem('birthday', result.birthday)
sessionStorage.setItem('idType', result.customerIdType)
switch ($this.userInfo.companyArea) {
case '500229':
$this.userInfo.companyArea = '500129'
break
case '500230':
$this.userInfo.companyArea = '500130'
break
case '500231':
$this.userInfo.companyArea = '500131'
break
case '500233':
$this.userInfo.companyArea = '500133'
break
case '500235':
$this.userInfo.companyArea = '500135'
break
case '500236':
$this.userInfo.companyArea = '500136'
break
case '500237':
$this.userInfo.companyArea = '500137'
break
case '500238':
$this.userInfo.companyArea = '500138'
break
case '500240':
$this.userInfo.companyArea = '500140'
break
case '500241':
$this.userInfo.companyArea = '500141'
break
case '500242':
$this.userInfo.companyArea = '500142'
break
case '500243':
$this.userInfo.companyArea = '500143'
break
}
switch ($this.userInfo.homeArea) {
case '500229':
$this.userInfo.homeArea = '500129'
break
case '500230':
$this.userInfo.homeArea = '500130'
break
case '500231':
$this.userInfo.homeArea = '500131'
break
case '500233':
$this.userInfo.homeArea = '500133'
break
case '500235':
$this.userInfo.homeArea = '500135'
break
case '500236':
$this.userInfo.homeArea = '500136'
break
case '500237':
$this.userInfo.homeArea = '500137'
break
case '500238':
$this.userInfo.homeArea = '500138'
break
case '500240':
$this.userInfo.homeArea = '500140'
break
case '500241':
$this.userInfo.homeArea = '500141'
break
case '500242':
$this.userInfo.homeArea = '500142'
break
case '500243':
$this.userInfo.homeArea = '500143'
break
}
this.$refs.formBlock.isEndFlag()
//查询职业名称
// occupationList.forEach(first => {
// first.subs.forEach(second => {
// second.subs.forEach(third => {
// if (third.code == result.occupationCode) {
// $this.userInfo.occupationName = third.name
// }
// })
// })
// })
}
})
.catch(err => {})
},
save() {
this.$validator.validate().then(valid => {
if (true === valid) {
let vf1 = this.$refs.formBlock.validateForm()
Promise.all([vf1]).then(result => {
if (result.indexOf(false) > -1) {
this.$toast(this.$refs.formBlock.$validator.errors.all()[0])
return
} else if (this.userInfo.customerIdNumber) {
this.$refs.formBlock.validateIdType()
} else {
this.updateCustomerInfo()
}
}
})
} else {
this.$toast(this.$validator.errors.all()[0])
}
})
},
updateCustomerInfo() {
let $this = this
let data = {
agentCustomerInfoDTO: {
customerNumber: $this.customerNumber,
customerName: $this.userInfo.customerName,
customerPhone: $this.userInfo.customerPhone,
customerSex: $this.userInfo.customerSex,
country: $this.userInfo.nativeplace,
//rgtaddress: $this.userInfo.census,
birthday: $this.userInfo.birthday,
customerIdType: $this.userInfo.idType,
customerIdNumber: $this.userInfo.customerIdNumber,
idEffectStartDate: $this.userInfo.certificateValidate,
idEffectEndDate: sessionStorage.getItem('isEnd') || $this.userInfo.certiexpiredate,
email: $this.userInfo.email,
height: $this.userInfo.stature,
weight: $this.userInfo.weight,
customerType: $this.userInfo.customerType,
customerSource: $this.userInfo.customerSource,
educationLevel: $this.userInfo.degree,
socialSecurity: $this.userInfo.socialSecurity,
residentStatus: $this.userInfo.taxIdentity,
occupationCode: $this.userInfo.occupationCode,
occupationName: $this.userInfo.occupationName,
lifeGrade: $this.userInfo.lifeGrade,
healthGrade: $this.userInfo.healthGrade,
averageYearlyIncome: $this.userInfo.averageYearlyIncome,
liabilitiesMoney: $this.userInfo.liabilitiesMoney,
workUnits: $this.userInfo.workUnits,
jobStatus: $this.userInfo.workCondition,
companyProvince: $this.userInfo.companyProvince,
companyCity: $this.userInfo.companyCity,
companyArea: $this.userInfo.companyArea,
companyAddress: $this.userInfo.companyAddress,
companyZip: $this.userInfo.companyZip,
companyPhone: $this.userInfo.companyPhone,
marryStatus: $this.userInfo.marriage,
homeProvince: $this.userInfo.homeProvince,
homeCity: $this.userInfo.homeCity,
homeArea: $this.userInfo.homeArea,
homeAddress: $this.userInfo.homeAddress,
homeZip: $this.userInfo.homeZip,
familyAnnualIncome: $this.userInfo.familyAnnualIncome,
province: $this.userInfo.province,
city: $this.userInfo.city,
homePhone: $this.userInfo.homePhone
}
}
switch (data.agentCustomerInfoDTO.companyArea) {
case '500129':
data.agentCustomerInfoDTO.companyArea = '500229'
break
case '500130':
data.agentCustomerInfoDTO.companyArea = '500230'
break
case '500131':
data.agentCustomerInfoDTO.companyArea = '500231'
break
case '500133':
data.agentCustomerInfoDTO.companyArea = '500233'
break
case '500135':
data.agentCustomerInfoDTO.companyArea = '500235'
break
case '500136':
data.agentCustomerInfoDTO.companyArea = '500236'
break
case '500137':
data.agentCustomerInfoDTO.companyArea = '500237'
break
case '500138':
data.agentCustomerInfoDTO.companyArea = '500238'
break
case '500140':
data.agentCustomerInfoDTO.companyArea = '500240'
break
case '500141':
data.agentCustomerInfoDTO.companyArea = '500241'
break
case '500142':
data.agentCustomerInfoDTO.companyArea = '500242'
break
case '500143':
data.agentCustomerInfoDTO.companyArea = '500243'
break
}
switch (data.agentCustomerInfoDTO.homeArea) {
case '500129':
data.agentCustomerInfoDTO.homeArea = '500229'
break
case '500130':
data.agentCustomerInfoDTO.homeArea = '500230'
break
case '500131':
data.agentCustomerInfoDTO.homeArea = '500231'
break
case '500133':
data.agentCustomerInfoDTO.homeArea = '500233'
break
case '500135':
data.agentCustomerInfoDTO.homeArea = '500235'
break
case '500136':
data.agentCustomerInfoDTO.homeArea = '500236'
break
case '500137':
data.agentCustomerInfoDTO.homeArea = '500237'
break
case '500138':
data.agentCustomerInfoDTO.homeArea = '500238'
break
case '500140':
data.agentCustomerInfoDTO.homeArea = '500240'
break
case '500141':
data.agentCustomerInfoDTO.homeArea = '500241'
break
case '500142':
data.agentCustomerInfoDTO.homeArea = '500242'
break
case '500143':
data.agentCustomerInfoDTO.homeArea = '500243'
break
}
updateCustomerInfo(data)
.then(res => {
if (res.result == 0) {
// EWebBridge.webCallAppInJs("bridge",{
// "flag":"webview_toast",
// "extra":{"content":res.resultMessage}
// })
//EWebBridge.webCallAppInJs('goBack', { refresh: '1', index: '-2' })
this.$jump({
flag: 'goBack',
extra: {
refresh: '1',
index: this.$route.query.from == 2 ? '-2' : '-1'
},
routerInfo: {
path: '/customer/customerList'
if (this.userInfo.birthday && this.userInfo.marriage) {
this.$refs.formBlock.validateMarr()
} else {
this.updateCustomerInfo()
}
}
})
} else {
$this.$toast(res.resultMessage)
// EWebBridge.webCallAppInJs("bridge",{
// "flag":"webview_toast",
// "extra":{"content":res.resultMessage}
// })
this.$toast(this.$validator.errors.all()[0])
}
})
.catch(err => {
console.log(err)
})
},
go(path) {
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/customer/' + path
},
routerInfo: {
path: '/customer/' + path
},
updateCustomerInfo() {
let $this = this
let data = {
agentCustomerInfoDTO: {
customerNumber: $this.customerNumber,
customerName: $this.userInfo.customerName,
customerPhone: $this.userInfo.customerPhone,
customerSex: $this.userInfo.customerSex,
country: $this.userInfo.nativeplace,
//rgtaddress: $this.userInfo.census,
birthday: $this.userInfo.birthday,
customerIdType: $this.userInfo.idType,
customerIdNumber: $this.userInfo.customerIdNumber,
idEffectStartDate: $this.userInfo.certificateValidate,
idEffectEndDate: sessionStorage.getItem('isEnd') || $this.userInfo.certiexpiredate,
email: $this.userInfo.email,
height: $this.userInfo.stature,
weight: $this.userInfo.weight,
customerType: $this.userInfo.customerType,
customerSource: $this.userInfo.customerSource,
educationLevel: $this.userInfo.degree,
socialSecurity: $this.userInfo.socialSecurity,
residentStatus: $this.userInfo.taxIdentity,
occupationCode: $this.userInfo.occupationCode,
occupationName: $this.userInfo.occupationName,
lifeGrade: $this.userInfo.lifeGrade,
healthGrade: $this.userInfo.healthGrade,
averageYearlyIncome: $this.userInfo.averageYearlyIncome,
liabilitiesMoney: $this.userInfo.liabilitiesMoney,
workUnits: $this.userInfo.workUnits,
jobStatus: $this.userInfo.workCondition,
companyProvince: $this.userInfo.companyProvince,
companyCity: $this.userInfo.companyCity,
companyArea: $this.userInfo.companyArea,
companyAddress: $this.userInfo.companyAddress,
companyZip: $this.userInfo.companyZip,
companyPhone: $this.userInfo.companyPhone,
marryStatus: $this.userInfo.marriage,
homeProvince: $this.userInfo.homeProvince,
homeCity: $this.userInfo.homeCity,
homeArea: $this.userInfo.homeArea,
homeAddress: $this.userInfo.homeAddress,
homeZip: $this.userInfo.homeZip,
familyAnnualIncome: $this.userInfo.familyAnnualIncome,
province: $this.userInfo.province,
city: $this.userInfo.city,
homePhone: $this.userInfo.homePhone,
isNewPeopleFlag: $this.userInfo.isNewPeopleFlag,
npType: $this.userInfo.npType,
}
}
})
switch (data.agentCustomerInfoDTO.companyArea) {
case '500129':
data.agentCustomerInfoDTO.companyArea = '500229'
break
case '500130':
data.agentCustomerInfoDTO.companyArea = '500230'
break
case '500131':
data.agentCustomerInfoDTO.companyArea = '500231'
break
case '500133':
data.agentCustomerInfoDTO.companyArea = '500233'
break
case '500135':
data.agentCustomerInfoDTO.companyArea = '500235'
break
case '500136':
data.agentCustomerInfoDTO.companyArea = '500236'
break
case '500137':
data.agentCustomerInfoDTO.companyArea = '500237'
break
case '500138':
data.agentCustomerInfoDTO.companyArea = '500238'
break
case '500140':
data.agentCustomerInfoDTO.companyArea = '500240'
break
case '500141':
data.agentCustomerInfoDTO.companyArea = '500241'
break
case '500142':
data.agentCustomerInfoDTO.companyArea = '500242'
break
case '500143':
data.agentCustomerInfoDTO.companyArea = '500243'
break
}
switch (data.agentCustomerInfoDTO.homeArea) {
case '500129':
data.agentCustomerInfoDTO.homeArea = '500229'
break
case '500130':
data.agentCustomerInfoDTO.homeArea = '500230'
break
case '500131':
data.agentCustomerInfoDTO.homeArea = '500231'
break
case '500133':
data.agentCustomerInfoDTO.homeArea = '500233'
break
case '500135':
data.agentCustomerInfoDTO.homeArea = '500235'
break
case '500136':
data.agentCustomerInfoDTO.homeArea = '500236'
break
case '500137':
data.agentCustomerInfoDTO.homeArea = '500237'
break
case '500138':
data.agentCustomerInfoDTO.homeArea = '500238'
break
case '500140':
data.agentCustomerInfoDTO.homeArea = '500240'
break
case '500141':
data.agentCustomerInfoDTO.homeArea = '500241'
break
case '500142':
data.agentCustomerInfoDTO.homeArea = '500242'
break
case '500143':
data.agentCustomerInfoDTO.homeArea = '500243'
break
}
updateCustomerInfo(data)
.then(res => {
if (res.result == 0) {
// EWebBridge.webCallAppInJs("bridge",{
// "flag":"webview_toast",
// "extra":{"content":res.resultMessage}
// })
//EWebBridge.webCallAppInJs('goBack', { refresh: '1', index: '-2' })
this.$jump({
flag: 'goBack',
extra: {
refresh: '1',
index: this.$route.query.from == 2 ? '-2' : '-1'
},
routerInfo: {
path: '/customer/customerList'
}
})
} else {
$this.$toast(res.resultMessage)
// EWebBridge.webCallAppInJs("bridge",{
// "flag":"webview_toast",
// "extra":{"content":res.resultMessage}
// })
}
})
.catch(err => {
console.log(err)
})
},
go(path) {
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/customer/' + path
},
routerInfo: {
path: '/customer/' + path
}
})
}
}
}
}
</script>
<style lang="scss" scoped>
.van-index-anchor {
background: #fff;
}
.container {
padding-bottom: 45px;
.header {
display: flex;
justify-content: flex-end;
padding: 10px;
}
.title {
font-size: 15px;
font-weight: bold;
.van-index-anchor {
background: #fff;
border-bottom: 1px solid #ebedf0;
}
}
.bd {
border-bottom: 1px solid #ebedf0;
margin-left: 15px;
}
.container {
padding-bottom: 45px;
.header {
display: flex;
justify-content: flex-end;
padding: 10px;
}
.title {
font-size: 15px;
font-weight: bold;
background: #fff;
border-bottom: 1px solid #ebedf0;
}
}
.bd {
border-bottom: 1px solid #ebedf0;
margin-left: 15px;
}
</style>

View File

@@ -338,7 +338,7 @@ export default {
}
submit(data).then(res => {
if (res.reslut == '0') {
if (res.result == '0') {
this.$toast.clear()
window.localStorage.setItem('submitStatus', res.result)
this.$jump({

View File

@@ -51,14 +51,14 @@
<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">保额(</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border" v-if="mainRiskCodes[0] != 'GFRS_M0080'">保额(</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="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.amt ? riskItem.amt : '--' }}</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border" v-if="mainRiskCodes[0] != 'GFRS_M0080'">{{ 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>

View File

@@ -115,6 +115,10 @@ export function relevance(insured, insuredLabelResult, insuredResult, insuredInf
//将被保人与利益演示相关联(被保人维度)
export function relevanceByInsure(insured, insuredLabelResult, insuredResult, insuredInfoResult) {
console.log(insured)
console.log(insuredLabelResult)
console.log(insuredResult)
console.log(insuredInfoResult)
insured.forEach(insure => {
for (let key in insuredLabelResult[insure.insuredId]) {
insure.demoLabel = insuredLabelResult[insure.insuredId][key]
@@ -144,20 +148,25 @@ export function relevanceByInsure(insured, insuredLabelResult, insuredResult, in
let currentInsuredInfo = insuredInfoResult[insure.insuredId][risk.riskCode]
if (currentInsuredInfo.plan && currentInsuredInfo.plan === '0') {
let defaulValue = 'M' //档位默认值
let radios = [
{
let radios = []
if(currentInsuredInfo.L){
radios.push({
label: '低档' + currentInsuredInfo.L,
value: 'L'
},
{
})
}
if(currentInsuredInfo.M){
radios.push({
label: '中档' + currentInsuredInfo.M,
value: 'M'
},
{
})
}
if(currentInsuredInfo.H){
radios.push({
label: '高档' + currentInsuredInfo.H,
value: 'H'
}
]
})
}
insure.tap = defaulValue
radios.forEach(item => {
insure.radios.push(item)

View File

@@ -9,7 +9,7 @@
<van-cell-group>
<van-field required label="银行卡账户" disabled />
</van-cell-group>
<div @click="test('fileListBank', '3', saleInsuredInfo.appntId, saleInsuredInfo.idType)">
<div @click="test('fileListBank', '3', '0', saleInsuredInfo.appntId, saleInsuredInfo.idType)">
<van-uploader
name="fileListBank"
v-model="fileListBank"
@@ -36,7 +36,7 @@
<van-cell-group>
<van-field required :label="item.id == '2' ? `${item.text}户主页` : `${item.text}正面`" disabled />
</van-cell-group>
<div @click="test('fileListIdFront', '1', saleInsuredInfo.appntId, saleInsuredInfo.idType)" class="flex align-items-e">
<div @click="test('fileListIdFront', '1', '0', saleInsuredInfo.appntId, saleInsuredInfo.idType)" class="flex align-items-e">
<van-uploader
name="fileListIdFront"
v-model="fileListIdFront"
@@ -50,7 +50,7 @@
<van-cell-group>
<van-field required :label="item.id == '2' ? `${item.text}本人页` : `${item.text}反面`" disabled />
</van-cell-group>
<div @click="test('fileListIdBack', '2', saleInsuredInfo.appntId, saleInsuredInfo.idType)">
<div @click="test('fileListIdBack', '2', '0', saleInsuredInfo.appntId, saleInsuredInfo.idType)">
<van-uploader
name="fileListIdBack"
v-model="fileListIdBack"
@@ -66,7 +66,7 @@
<van-cell-group>
<van-field required :label="`${item.text}头像面`" disabled />
</van-cell-group>
<div @click="test('fileLIstImg', '8', saleInsuredInfo.appntId, saleInsuredInfo.idType)">
<div @click="test('fileLIstImg', '8', '0', saleInsuredInfo.appntId, saleInsuredInfo.idType)">
<van-uploader
name="fileLIstImg"
v-model="fileLIstImg"
@@ -83,7 +83,7 @@
<van-cell-group>
<van-field required label="银行卡正面" disabled />
</van-cell-group>
<div @click="test('fileListBank', '3', saleInsuredInfo.appntId, saleInsuredInfo.idType)">
<div @click="test('fileListBank', '3', '0', saleInsuredInfo.appntId, saleInsuredInfo.idType)">
<van-uploader
name="fileListBank"
v-model="fileListBank"
@@ -97,7 +97,7 @@
<van-cell-group v-if="isNotify">
<van-field label="健康告知异常类资料" disabled />
</van-cell-group>
<div v-if="isNotify" @click="test('fileListNotify', '24', saleInsuredInfo.appntId, saleInsuredInfo.idType)">
<div v-if="isNotify" @click="test('fileListNotify', '24', '0', saleInsuredInfo.appntId, saleInsuredInfo.idType)">
<van-uploader
name="fileListNotify"
v-model="fileListNotify"
@@ -125,7 +125,7 @@
<van-cell-group>
<van-field required :label="item.id == '2' ? `${item.text}户主页` : `${item.text}正面`" disabled />
</van-cell-group>
<div @click="test('fileListIdFrontInsured', '1', saleInsuredPersonInfo.insuredId, saleInsuredPersonInfo.idType)">
<div @click="test('fileListIdFrontInsured', '1', '1', saleInsuredPersonInfo.insuredId, saleInsuredPersonInfo.idType)">
<van-uploader
name="fileListIdFrontInsured"
v-model="fileListIdFrontInsured"
@@ -139,7 +139,7 @@
<van-cell-group>
<van-field required :label="item.id == '2' ? `${item.text}本人页` : `${item.text}反面`" disabled />
</van-cell-group>
<div @click="test('fileListIdBackInsured', '2', saleInsuredPersonInfo.insuredId, saleInsuredPersonInfo.idType)">
<div @click="test('fileListIdBackInsured', '2', '1', saleInsuredPersonInfo.insuredId, saleInsuredPersonInfo.idType)">
<van-uploader
name="fileListIdBackInsured"
v-model="fileListIdBackInsured"
@@ -155,7 +155,7 @@
<van-cell-group>
<van-field required :label="`${item.text}头像页`" disabled />
</van-cell-group>
<div @click="test('fileLIstImgInsured', '8', saleInsuredPersonInfo.insuredId, saleInsuredPersonInfo.idType)">
<div @click="test('fileLIstImgInsured', '8', '1', saleInsuredPersonInfo.insuredId, saleInsuredPersonInfo.idType)">
<van-uploader
name="fileLIstImgInsured"
v-model="fileLIstImgInsured"
@@ -172,7 +172,7 @@
<van-cell-group v-if="isNotifyInsured">
<van-field label="健康告知异常类资料" disabled />
</van-cell-group>
<div v-if="isNotifyInsured" @click="test('fileListNotifyInsured', '24', saleInsuredPersonInfo.insuredId, saleInsuredPersonInfo.idType)">
<div v-if="isNotifyInsured" @click="test('fileListNotifyInsured', '24', '1', saleInsuredPersonInfo.insuredId, saleInsuredPersonInfo.idType)">
<van-uploader
name="fileListNotifyInsured"
v-model="fileListNotifyInsured"
@@ -200,7 +200,7 @@
<van-cell-group>
<van-field required :label="item.id == '2' ? `${item01.name}+${item.text}户主页` : `${item01.name}+${item.text}正面`" disabled />
</van-cell-group>
<div @click="test('fileListIdFrontBeneficiary', '1', item01.bnfId, item01.idType, item01.bnfId)">
<div @click="test('fileListIdFrontBeneficiary', '1', '3', item01.bnfId, item01.idType, item01.bnfId)">
<van-uploader
:name="'fileListIdFrontBeneficiary'+index01"
v-model="bnfInfo[index01].fileListIdFrontBeneficiary"
@@ -214,7 +214,7 @@
<van-cell-group>
<van-field required :label="item.id == '2' ? `${item01.name}+${item.text}本人页` : `${item01.name}+${item.text}反面`" disabled />
</van-cell-group>
<div @click="test('fileListIdBackBeneficiary', '2', item01.bnfId, item01.idType, item01.bnfId)">
<div @click="test('fileListIdBackBeneficiary', '2', '3', item01.bnfId, item01.idType, item01.bnfId)">
<van-uploader
:name="'fileListIdBackBeneficiary'+index01"
v-model="bnfInfo[index01].fileListIdBackBeneficiary"
@@ -230,7 +230,7 @@
<van-cell-group>
<van-field required :label="`${item01.name}+${item.text}头像页`" disabled />
</van-cell-group>
<div @click="test('fileLIstImgBeneficiary', '8', item01.bnfId, item01.idType, item01.bnfId)">
<div @click="test('fileLIstImgBeneficiary', '8', '3', item01.bnfId, item01.idType, item01.bnfId)">
<van-uploader
:name="'fileLIstImgBeneficiary'+index01"
v-model="bnfInfo[index01].fileLIstImgBeneficiary"
@@ -265,6 +265,12 @@
>下一步</van-button
>
</div>
<van-dialog v-model="thisdialogshow" title="提示" confirmButtonText="返回修改">
<div style="padding: 20px;font-size: 14px;">
<div style="margin-bottom: 10px;letter-spacing: 1px;color: #E9332E;">校验失败原因</div>
<div v-for="(item,index) in thisdialogcontent" style="margin-bottom: 10px;letter-spacing: 1px;">{{index+1}}{{item}}</div>
</div>
</van-dialog>
</div>
</template>
@@ -280,6 +286,8 @@ import utils from '../../../assets/js/business-common'
export default {
data() {
return {
thisdialogshow: false,
thisdialogcontent: '',
isNotify: false, //是否有异常的健康告知
isNotifyInsured: false,
// 订单号
@@ -352,7 +360,8 @@ export default {
changeCard: localStorage.changeCard,
salePageFlag: '9',
imageType: '',
subBusinessNo: ''
subBusinessNo: '',
subBusinessType: '',
}
},
async created() {
@@ -750,8 +759,9 @@ export default {
}
})
},
test(name, type, subBusinessNo, id, bnfId) {
test(name, type, subBusinessType, subBusinessNo, id, bnfId) {
this.imageType = type
this.subBusinessType = subBusinessType
this.bnfId = bnfId
this.id = id
this.type = name
@@ -829,7 +839,7 @@ export default {
businessType: '',
imageInfoType: that.imageType,
rgssUrl: encodeURI(res.path).replace(/\+/g, '%2B'),
subBusinessType: '0',
subBusinessType: that.subBusinessType,
subBusinessNo: that.subBusinessNo,
fileName: that.imgName,
}
@@ -1015,13 +1025,18 @@ export default {
}
});
},
// 点击下一步
next() {
let that = this
that.list.map((i) => {
delete i.name
})
let nowTime = new Date().getTime()
let localTime = window.localStorage.getItem('serrorTime')
if(nowTime - localTime < 20000){
this.$toast('您操作过于频繁请20S后再试')
return false
}
let data = {
orderDTO: {
orderInfoDTO: {
@@ -1066,12 +1081,21 @@ export default {
},
})
} else {
Dialog.confirm({
title: '提示',
message: res.resultMessage,
confirmButtonColor:'#FF0000',
showCancelButton:false
})
let thisTime = new Date().getTime()
window.localStorage.setItem('serrorTime',thisTime)
if (res.resultMessage.indexOf('Engine') != -1) {
this.thisdialogshow = true
// let thisdialogcontent = '【Engine】投保人电子邮箱已被其他投保人使用哦请确认并重新录入如有疑问请拨打4006946688进行咨询【Engine】被保人与投保人关系需为本人、配偶、子女、父母人工审核中请您耐心等待哦~'
this.thisdialogcontent = res.resultMessage.split('【Engine】')
this.thisdialogcontent.splice(0, 1)
} else {
Dialog.confirm({
title: '提示',
message: res.resultMessage,
confirmButtonColor: '#FF0000',
showCancelButton: false
})
}
}
})
},
@@ -1293,4 +1317,7 @@ export default {
.redRadioCheckbox {
overflow: hidden;
}
/deep/ .van-field__label{
width: 50vw;
}
</style>

View File

@@ -0,0 +1,765 @@
<template>
<div class="insuranceInformation-container pb50 redRadioCheckbox">
<van-notice-bar :scrollable="false" v-if="!Time" class="notice">{{ `提示阅读时长需在${this.Time ? this.time : this.number}秒以上` }}</van-notice-bar>
<div class="bg-white flex justify-content-c flex-direction-colunm align-it<po>ems-center p20 fs14">
<!-- 重疾, 医疗, 意外 -->
<div v-if="!changeCard">
<h2 style="text-align:center" class="mb20">国富人寿保险股份有限公司</h2>
<h2 style="text-align:center" class="mb20">人身保险投保须知</h2>
<p class="mb20">
1.本产品由国富人寿保险股份有限公司以下简称国富人寿承保目前该公司广西贵州地区设有分支机构
</p>
<p class="mb20">
2.您的本次投保信息将以电子投保书的形式提交给国富人寿
</p>
<p class="mb20">
3.电子投保书的填写本电子投保书是您与国富人寿订立保险合同的重要组成部分为保障您的权益请务必保证电子投保书各项内容为投保人和被保险人如实准确填写请您以书面形式对所有告知事项进行告知
<span class="fw600">
依据中华人民共和国保险法的有关规定保险公司就被保险人有关情况的询问您应当履行如实告知义务
</span>
投保人故意或者因重大过失未履行如实告知义务足以影响保险公司决定是否同意承保或者提高保险费率的保险公司有权解除合同前款规定的合同解除权自保险公司知道有解除事由之日起超过三十日不行使而消灭自合同成立之日起超过二年的保险公司不得解除合同发生保险事故的保险公司应当承担赔偿或者给付保险金的责任投保人故意不履行如实告知义务的保险公司对于合同解除前发生的保险事故不承担赔偿或者给付保险金的责任并不退还保险费投保人因重大过失未履行如实告知义务对保险事故的发生有严重影响的保险公司对于合同解除前发生的保险事故不承担赔偿或者给付保险金的责任但应当退还保险费保险公司在合同订立时已经知道投保人未如实告知的情况的保险公司不得解除合同发生保险事故的保险公司应当承担赔偿或者给付保险金的责任保险事故是指保险合同约定的保险责任范围内的事故
</p>
<p class="mb20">
4.投保信息真实性为保障您的权益请您务必真实准确地填写相关投保信息包括但不限于投保人被保险人和受益人的姓名性别出生日期证件类型证件号码本人联系电话和联系地址等如果您提供的信息不真实不准确或不完整可能导致保险合同无效或您的权益受损等
</p>
<p class="mb20">
5.您在投保时如有疑问投保成功后需要查询保单信息投保成功后如有资料需要变更以及投诉请您关注国富人寿保险官方微信公众号或前往国富人寿客户服务中心进行办理同时还可拨打4006946688咨询
</p>
<p class="mb20">
6.投保前请您认真阅读产品条款页面展示内容条款合同解除责任免除犹豫期退保退保投保声明等重要内容确认理解并接受条款和页面提示的全部内容了解理赔申请方式及理赔应备文件
</p>
<p class="mb20">
7.如您成功投保国富人寿保险产品国富人寿将根据您投保时申请的保单形式为您发送电子保险合同或寄送纸质版电子保险合同本产品自保险合同签收之日起有15日的犹豫期在此期间如果您认为本产品与您的需求不相符可以提出解除保险合同我们将退还您所交的保险费此时不会有损失如果超过犹豫期退保国富人寿将退还您现金价值此时有一定的损失请您慎重犹豫期过后国富人寿向您投保时提供的电子邮箱发送电子发票请您注意查收
</p>
<p class="mb20">
8.国富人寿分支机构信息详见官网信息公示官网地址www.e-guofu.com)
</p>
<p class="mb20">
9.以身故为给付保险金条件的保险合同未经被保险人同意并认可保险金额的保险合同无效父母为其未成年子女投保的人身保险,不受此规定限制
</p>
<p class="mb20">
10.为未成年子女投保的人身保险因被保险人死亡给付的保险金总和不得超过国务院保险监督管理机构规定的限额死亡给付的保险金额总和约定也不得超过前述限额
</p>
<p class="mb20">
11.请您根据自身财务状况确定选择了合适的交费期间和交费金额无法持续交纳保险费有可能导致合同效力中止或保险合同解除提前终止或放弃之前有效的保险合同可能使您蒙受经济上的损失
</p>
<p class="mb20">
12.国富人寿采集客户信息的用途包括但不限于计算保费核保寄送保单客户回访续期提醒和寄送通知书推荐产品等<br />
为了保证您的权益如果联系电话和联系地址等信息发生变更应及时办理更正手续
</p>
<p class="mb">
13.国富人寿承诺未经您的同意不会将客户信息用于第三方机构的销售活动
</p>
<p class="mb20">
14.其他服务说明<br />
1投保承保流程<br />
选择保险产品点击购买填写投保信息确认信息和金额在线支付收到承保通知投保成功<br />
2保险费支付方式<br />
本产品的保险费支付方式银行转账或微信支付<br />
3保单变更办理流程<br />
方式一 微信办理<br />
您可关注国富人寿保险微信公众号点击服务大厅菜单注册用户进入服务大厅-保单查询与变更完成在线办理或提交申请材料<br />
方式二 柜面办理<br />
您可前往国富人寿客户服务中心柜面办理保单变更业务<br />
4保险金支付和业务款项退费<br />
各类保险金将根据权益人授权的银行账号进行转账支付<br />
保单退费款项按客户申请办理相应业务时所授权的银行账号进行转账支付<br />
</p>
<h2 style="text-align:center" class="mb20">投保人授权声明</h2>
<p class="mb20">
1为提供保险服务的需要本人授权国富人寿保险股份有限公司以下简称国富人寿可通过知悉本人信息的机构查询与本人有关的全部信息包括但不限于投保承保理赔行为财务信用健康医疗信息等国富人寿及与其具有必要合作关系的机构均可对上述信息进行合理的使用为确保信息安全国富人寿及其合作机构应采取有效措施并承担保密义务
</p>
<p class="mb20">
2为提供保险产品服务的需要本人授权国富人寿可将本人的姓名身份证号等个人信息提供给中国银行保险信息技术管理有限公司以下简称中国银保信并同意中国银保信对上述信息以及本人投保承保理赔医疗健康等信息进行收集并经加工分析合理使用后传输给国富人寿用于保险产品服务<br />
中国银保信的上述处理行为对您接受国富人寿服务具有必要性不会对您的个人权益造成非法侵害如有关于个人信息保护相关的问题咨询您可以通过以下方式联系
</p>
<h2 style="text-align:center" class="mb20">被保险人授权声明</h2>
<p class="mb20">
1险服务的需要本人授权国富人寿保险股份有限公司以下简称国富人寿可通过知悉本人信息的机构查询与本人有关的全部信息包括但不限于投保承保理赔行为财务信用健康医疗信息等国富人寿及与其具有必要合作关系的机构均可对上述信息进行合理的使用为确保信息安全国富人寿及其合作机构应采取有效措施并承担保密义务
</p>
<p class="mb20">
2为提供保险产品服务的需要本人授权国富人寿可将本人的姓名身份证号等个人信息提供给中国银行保险信息技术管理有限公司以下简称中国银保信并同意中国银保信对上述信息以及本人投保承保理赔医疗健康等信息进行收集并经加工分析合理使用后传输给国富人寿用于保险产品服务
</p>
<p class="mb20">
中国银保信的上述处理行为对您接受国富人寿服务具有必要性不会对您的个人权益造成非法侵害如有关于个人信息保护相关的问题咨询您可以通过以下方式联系
</p>
<p class="mb20">
中国银保信联系方式privacy@cbit.com.cn
</p>
<p style="text-indent: 2em;" class="mb20">
说明:如您想获取个人信息处理的合作机构名称联系方式信息处理方式保存期限详情和个人行使信息保护权利的方式和程序可拨打国富人寿服务热线4006946688咨询
</p>
</div>
</div>
<van-radio-group v-model="radio" class="pb10 pb20 pl30">
<van-radio name="1" @click="click" class="fs14">
<span v-if="changeCard">本人已详细阅读转账授权书并明确以上事项</span>
<span v-else>本人已详细阅读保险条款并明确以上事项 </span>
</van-radio>
</van-radio-group>
<div class="bg-white bottom-btn">
<van-button type="danger" size="large" :disabled="isDisable" @click="goNext" v-no-more-click="1000">下一步</van-button>
</div>
</div>
</template>
<script>
import { RadioGroup, Radio, Dialog, NoticeBar } from 'vant'
import { saveInformation } from '@/api/ebiz/sale/sale'
// import riskRules from '@/views/ebiz/common/risk-rules'
// import config from '@/config'
// import axios from 'axios'
export default {
data() {
let isWeixin = this.$utils.device().isWeixin //判断环境
return {
// 投保人还是被保险人信息
signVal: '',
// 被保险人签名信息
insuredSign: {},
// 投保人签名信息
appntSign: {},
radio: '',
// 倒计时时间
number: '',
// 定时器时间
time: '10',
// 定时器名称
timer: null,
isOver: false,
// 判断验证码是否开始倒计时
Time: true,
// 按钮是否可以点击
isDisable: true,
// 是否在微信
isWeixin,
changeCard: localStorage.changeCard, //是否从修改银行卡号进来
productCode: localStorage.productCode, //获取产品编号
protocol: false,
documentCodeType: false,
// manageComCode:''//代理人管理机构 52贵州 45广西
}
},
components: {
[RadioGroup.name]: RadioGroup,
[Radio.name]: Radio,
[Dialog.name]: Dialog,
[NoticeBar.name]: NoticeBar
},
async mounted() {
let readingType = localStorage.getItem('readingProtocolType')
if (readingType && readingType === '1') {
this.protocol = true
}
let that = this
// {{switchFlag.Time?pageVariable.msg:pageVariable.number}}
that.timeOut()
document.title = this.changeCard ? '转账授权书' : '投保须知'
// Notify({
// type: 'warning',
// message: `提示:阅读时长需在${this.Time ? this.time : this.number}秒以上`,
// duration: 10000,
// background: '#999999',
// className: 'notify'
// })
document.body.style.backgroundColor = '#fff'
that.signVal = window.localStorage.getItem('sign-val')
if (JSON.parse(window.localStorage.getItem('sign-insured'))) {
that.insuredSign = JSON.parse(window.localStorage.getItem('sign-insured'))
}
if (JSON.parse(window.localStorage.getItem('sign-appnt'))) {
that.appntSign = JSON.parse(window.localStorage.getItem('sign-appnt'))
}
//获取代理人管理机构 52贵州 45广西
// let dataReturn = await riskRules.getAgentInfoFunc(this)
// this.manageComCode = dataReturn.manageComCode
},
created() {
this.documentCodeType = localStorage.getItem('documentCodeType')
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)
console.log(this.documentCodeType,'documentCodeType');
window.appCallBack = this.appCallBack
},
methods: {
appCallBack(data) {
if (data.trigger == 'left_button_click') {
return this.$dialog
.confirm({
className: 'dialog-delete',
title: '提示',
message: '退出流程可能会丢失部分数据,是否确认退出?',
cancelButtonColor: '#E9332E',
confirmButtonColor: '#FFFFFF'
})
.then(() => {
this.$jump({
flag: 'h5',
extra: {
title: '电子投保单列表',
forbidSwipeBack: 1, //当前页面禁止右滑返回
url: location.origin + `/#/sale/list`
},
routerInfo: {
path: `/sale/list`,
type: '1'
}
})
})
.catch(() => {
return
})
}
},
timeOut() {
let that = this
let time = that.time
that.Time = false
that.number = `${time}`
let timer = setInterval(() => {
time--
if (time <= 0) {
time = 0
clearInterval(timer)
that.Time = true
that.isOver = true
// window.localStorage.setItem('step', '1')
}
that.number = `${time}`
}, 1000)
},
// 点击阅读时
click() {
let that = this
if (that.isOver == false) {
Dialog.confirm({
title: '提示',
message: '该内容涉及您的重大权益,请您仔细阅读',
showCancelButton: false
}).then(() => {
that.radio = ''
})
}
},
// 下一步
goNext() {
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
let that = this
if (that.signVal == '0' || that.signVal == '2') {
// 查看保险条款是否有,如果没有的话走原有逻辑
let isHasClauses = Array.isArray(this.appntSign)?this.appntSign.some(item => {
return item.documentCode == '13' && (item.documentStatus == '0' || item.documentStatus == '2')
}):false
if(isHasClauses) {
that.appntSign.map(item => {
if (item.documentCode == '1') {
that.appntSign.signId = item.signId
that.appntSign.documentCode = item.documentCode
that.appntSign.documentType = item.documentType
}
})
let data = {
orderType: 'SIGN_ORDER',
orderDTO: {
orderInfoDTO: {
orderNo: that.$route.query.orderNo
},
ebizSignDTOS: [
{
signOrRead: 'read',
signId: that.appntSign.signId,
orderNo: that.$route.query.orderNo,
documentCode: that.appntSign.documentCode,
documentStatus: '1',
documentType: that.appntSign.documentType,
signType: that.signVal
}
]
}
}
saveInformation(data).then(res => {
// console.log(res)
if (res.result == '0') {
this.$toast.clear()
window.localStorage.setItem('detailJump', '')
if(this.documentCodeType == 'true') {
// console.log('11111111111111111111');
let url = 'AnswerTip'
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/' + url + '?orderNo=' + that.$route.query.orderNo
},
routerInfo: {
path: '/sale/' + url + '?orderNo=' + that.$route.query.orderNo
}
})
} else {
// console.log('222222222222222222222');
//GFRS_M0003为万能型产品需要投保人签署产品说明书
let url = 'insuranceClauses'
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/' + url + '?orderNo=' + this.$route.query.orderNo
},
routerInfo: {
path: '/sale/' + url + '?orderNo=' + this.$route.query.orderNo
}
})
}
} else {
that.$toast(res.resultMessage)
}
})
} else {
that.goNextBefore()
}
} else {
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
// 查看保险条款是否有,如果没有的话走原有逻辑
let isHasClauses = Array.isArray(this.insuredSign)? this.insuredSign.some(item => {
return item.documentCode == '13' && (item.documentStatus == '0' || item.documentStatus == '2')
}):false
if(isHasClauses) {
that.insuredSign.map(item => {
if (item.documentCode == '1') {
that.insuredSign.signId = item.signId
that.insuredSign.documentCode = item.documentCode
that.insuredSign.documentType = item.documentType
}
})
let data = {
orderType: 'SIGN_ORDER',
orderDTO: {
orderInfoDTO: {
orderNo: that.$route.query.orderNo
},
ebizSignDTOS: [
{
signOrRead: 'read',
signId: that.insuredSign.signId,
orderNo: that.$route.query.orderNo,
documentCode: that.insuredSign.documentCode,
documentStatus: '1',
documentType: that.insuredSign.documentType,
signType: that.signVal
}
]
}
}
saveInformation(data).then(res => {
if (res.result == '0') {
this.$toast.clear()
window.localStorage.setItem('detailJump', '')
console.log('保存了结果:' + localStorage.getItem('insurance-policyUrl'))
// if(this.documentCodeType == 'true') {
// // console.log('3333333333333333333');
// let url = 'AnswerTip'
// this.$jump({
// flag: 'h5',
// extra: {
// url: location.origin + '/#/sale/' + url
// },
// routerInfo: {
// path: '/sale/' + url
// }
// })
// } else {
// console.log('4444444444444444');
//GFRS_M0003为万能型产品需要投保人签署产品说明书
let url = 'insuranceClauses'
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/' + url + '?orderNo=' + this.$route.query.orderNo
},
routerInfo: {
path: '/sale/' + url + '?orderNo=' + this.$route.query.orderNo
}
})
// }
// let url = 'insuranceClauses'
// this.$jump({
// flag: 'h5',
// extra: {
// url: location.origin + '/#/sale/' + url
// },
// routerInfo: {
// path: '/sale/' + url
// }
// })
} else {
that.$toast(res.resultMessage)
}
})
} else {
that.goNextBefore()
}
}
},
// 下一步,原有逻辑
goNextBefore() {
if (this.isWeixin) {
console.log('````````````````````')
console.log('进入微信')
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
let that = this
if (that.signVal == '0' || that.signVal == '2') {
if (!that.changeCard) {
that.appntSign.map(item => {
if (item.documentCode == '1') {
that.appntSign.signId = item.signId
that.appntSign.documentCode = item.documentCode
that.appntSign.documentType = item.documentType
}
})
}
let data = {
orderType: that.changeCard ? 'SIGNNEW_ORDER' : 'SIGN_ORDER',
orderDTO: {
orderInfoDTO: {
orderNo: that.$route.query.orderNo
},
ebizSignDTOS: [
{
signOrRead: 'read',
signId: that.appntSign.signId,
orderNo: that.$route.query.orderNo,
documentCode: that.appntSign.documentCode,
documentStatus: '1',
documentType: that.appntSign.documentType,
signType: that.signVal
}
]
}
}
saveInformation(data).then(res => {
// console.log(res)
if (res.result == '0') {
this.$toast.clear()
// window.localStorage.setItem('tips-PolicyUrl', res.signDTO.tipsPolicyUrl)
// console.log(res)
// console.log(res.signDTO.policyUrl)
// console.log('````````````')
// console.log('接口拉去成功:' + res.signDTO.policyUrl)
// window.localStorage.setItem('insurance-policyUrl', res.signDTO.policyUrl)
window.localStorage.setItem('detailJump', '')
// console.log('保存了结果:' + localStorage.getItem('insurance-policyUrl'))
// let url = config.imgDomain + `/app/returnStream?imgPath=${res.signDTO.policyUrl}`
// axios.get(url).then(res => {
// console.log(res)
// })
//GFRS_M0003为万能型产品需要投保人签署产品说明书
let url = ''
if (that.changeCard) {
url = 'SignatureConfirmation'
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/SignatureConfirmation?orderNo=' + this.$route.query.orderNo
},
routerInfo: {
path:
'/sale/signatureConfirmation?orderNo=' +
this.$route.query.orderNo +
'&token=' +
localStorage.token +
'&saleInsuredInfo=' +
this.$CacheUtils.getLocItem('saleInsuredInfo') +
'&saleInsuredPersonInfo=' +
this.$CacheUtils.getLocItem('saleInsuredPersonInfo') +
'&relationToAppnt=' +
JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).relationToAppnt +
'&signInvalid=' +
sessionStorage.getItem('signInvalid') +
'&airSign=1' +
'&changeCard=0'
}
})
} else {
url = this.productCode == 'GFRS_M0003' || this.productCode == 'GFRS_M0015' || this.productCode == 'GFRS_M0017' ? 'productTip' : 'insuranceTip'
/*that.appntSign.map(item => {
if (item.documentCode == '8') {
url = 'apointValidDoc'
}
})*/
// 若需展示 短期健康险投保须知,则优先展示
that.appntSign.map(item => {
if (item.documentCode == '9') {
url = 'shortPeriodProduct'
}
})
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/' + url + '?orderNo=' + that.$route.query.orderNo
},
routerInfo: {
path: '/sale/' + url + '?orderNo=' + that.$route.query.orderNo
}
})
}
} else {
that.$toast(res.resultMessage)
}
})
} else {
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
that.insuredSign.map(item => {
if (item.documentCode == '1') {
that.insuredSign.signId = item.signId
that.insuredSign.documentCode = item.documentCode
that.insuredSign.documentType = item.documentType
}
})
let data = {
orderType: 'SIGN_ORDER',
orderDTO: {
orderInfoDTO: {
orderNo: that.$route.query.orderNo
},
ebizSignDTOS: [
{
signOrRead: 'read',
signId: that.insuredSign.signId,
orderNo: that.$route.query.orderNo,
documentCode: that.insuredSign.documentCode,
documentStatus: '1',
documentType: that.insuredSign.documentType,
signType: that.signVal
}
]
}
}
saveInformation(data).then(res => {
if (res.result == '0') {
this.$toast.clear()
console.log('````````````')
// console.log('接口拉去成功:' + res.signDTO.policyUrl)
// window.localStorage.setItem('tips-PolicyUrl', res.signDTO.tipsPolicyUrl)
// window.localStorage.setItem('insurance-policyUrl', res.signDTO.policyUrl)
window.localStorage.setItem('detailJump', '')
console.log('保存了结果:' + localStorage.getItem('insurance-policyUrl'))
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/SignatureOfElectronic?orderNo=' + that.$route.query.orderNo
},
routerInfo: {
path: '/sale/SignatureOfElectronic?orderNo=' + that.$route.query.orderNo
}
})
} else {
that.$toast(res.resultMessage)
}
})
}
} else {
let that = this
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
// console.log('that.appntSign.signId',that.appntSign,that.appntSign.signId,that.appntSign.documentCode,that.appntSign.documentType)
if (that.signVal == '0' || that.signVal == '2') {
if (!that.changeCard) {
that.appntSign.map(item => {
if (item.documentCode == '1') {
that.appntSign.signId = item.signId
that.appntSign.documentCode = item.documentCode
that.appntSign.documentType = item.documentType
}
})
}
let data = {
orderType: that.changeCard ? 'SIGNNEW_ORDER' : 'SIGN_ORDER',
orderDTO: {
orderInfoDTO: {
orderNo: that.$route.query.orderNo
},
ebizSignDTOS: [
{
signOrRead: 'read',
signId: that.appntSign.signId,
orderNo: that.$route.query.orderNo,
documentCode: that.appntSign.documentCode,
documentStatus: '1',
documentType: that.appntSign.documentType,
signType: that.signVal
}
]
}
}
saveInformation(data).then(res => {
// console.log(res)
if (res.result == '0') {
this.$toast.clear()
// window.localStorage.setItem('insurance-url', res.signDTO.policyUrl)
// console.log('saveInformationres',res)
// console.log(res.signDTO.policyUrl)
// window.localStorage.setItem('tips-PolicyUrl', res.signDTO.tipsPolicyUrl)
// window.localStorage.setItem('insurance-policyUrl', res.signDTO.policyUrl)
window.localStorage.setItem('detailJump', '')
// let url = config.imgDomain + `/app/returnStream?imgPath=${res.signDTO.policyUrl}`
// axios.get(url).then(res => {
// console.log(res)
// })
let url = ''
if (that.changeCard) {
url = 'SignatureConfirmation'
} else {
url = this.productCode == 'GFRS_M0003' || this.productCode == 'GFRS_M0015' || this.productCode == 'GFRS_M0017' ? 'productTip' : 'insuranceTip'
// 本人或投保人-需阅读短期健康险投保须知时 跳转shortPeriodProduct
that.appntSign.map(item => {
if (item.documentCode == '9') {
url = 'shortPeriodProduct'
}
})
}
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/' + url + '?orderNo=' + that.$route.query.orderNo,
forbidSwipeBack: '1'
},
routerInfo: {
path: '/sale/' + url + '?orderNo=' + that.$route.query.orderNo
}
})
} else {
that.$toast(res.resultMessage)
}
})
} else {
that.insuredSign.map(item => {
if (item.documentCode == '1') {
that.insuredSign.signId = item.signId
that.insuredSign.documentCode = item.documentCode
that.insuredSign.documentType = item.documentType
}
})
let data = {
orderType: 'SIGN_ORDER',
orderDTO: {
orderInfoDTO: {
orderNo: that.$route.query.orderNo
},
ebizSignDTOS: [
{
signOrRead: 'read',
signId: that.insuredSign.signId,
orderNo: that.$route.query.orderNo,
documentCode: that.insuredSign.documentCode,
documentStatus: '1',
documentType: that.insuredSign.documentType,
signType: that.signVal
}
]
}
}
saveInformation(data).then(res => {
if (res.result == '0') {
// window.localStorage.setItem('tips-PolicyUrl', res.signDTO.tipsPolicyUrl)
// window.localStorage.setItem('insurance-policyUrl', res.signDTO.policyUrl)
this.$toast.clear()
window.localStorage.setItem('detailJump', '')
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/SignatureOfElectronic?orderNo=' + that.$route.query.orderNo,
forbidSwipeBack: '1'
},
routerInfo: {
path: '/sale/SignatureOfElectronic?orderNo=' + that.$route.query.orderNo
}
})
} else {
that.$toast(res.resultMessage)
}
})
}
}
}
},
computed: {
listenChange() {
const { isOver, radio } = this
return { isOver, radio }
}
},
watch: {
listenChange(val) {
let that = this
// console.log('listenChange :', val)
if (val.isOver == true && val.radio !== '') {
that.isDisable = false
} else {
that.isDisable = true
}
}
},
beforeRouteLeave(to, from, next) {
document.body.style.backgroundColor = ''
next()
}
}
</script>
<style lang="scss" scoped>
p {
text-align: justify;
}
.notice {
width: 100%;
position: fixed;
top: 0;
z-index: 20;
}
</style>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -96,7 +96,7 @@
</template>
<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 -->

View File

@@ -98,6 +98,7 @@ import { Cell, CellGroup, RadioGroup, Radio, Dialog } from 'vant'
import { acceptInsurance, getBankCardSignState,payFlag, underWrite, getOrderDetail,signConfirm} from '@/api/ebiz/sale/sale'
import Loading from '@/components/ebiz/Loading'
import config from '@/config'
import { wxShare } from '@/api/ebiz/common/common.js'
export default {
data() {
let isWeixin = this.$utils.device().isWeixin //判断环境
@@ -202,6 +203,25 @@ export default {
}
},
methods: {
getOpenid(){
wxShare({ url: location.href }).then(response => {
if (response.result == '0') {
let orderNo = this.$route.query.orderNo
let code = this.getUrlParam('code')
if(!code){
window.location.href = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' + response.content.appid + '&redirect_uri=' + encodeURIComponent(location.href + '?orderNo=' + orderNo) + '&response_type=code&scope=snsapi_base&state=1#wechat_redirect'
}else{
window.location.href = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=' + response.content.appid + '&secret=' + response.content.appsecret + '&code=' + code + '&grant_type=authorization_code'
}
}
})
},
// 获取地址上的参数
getUrlParam(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]); return null;
},
async payMentWx(orderNo){
const res = await payFlag({ orderNo: orderNo })
console.dir(res)
@@ -225,6 +245,9 @@ export default {
orderNo: this.orderNo,
payType: this.radio
}
if(that.isWeixin){
data.payType = 'WXJSAPI'
}
acceptInsurance(data).then(res => {
console.log('----取支付参数结果:', JSON.stringify(res))
// res = {'result':'0','resultMessage':'','content':null,'prtNo':'8186270000000008','payStatus':'4','amnt':'63700.00','appntName':'投保人','message':null,'brPayReturnData':{'result':'','resultMessage':'','content':null,'businessId':'1569125393518','businessNo':'8186270000000008','tradeSubType':'COMM','businessType':'SALE','systemType':'GF','money':63700,'businessSubType':'XDCB','thirdType':'0002','thirdName':null,'bankCode':'ABC','epayOrderNo':'1909221209536259999900','companyAccount':null,'tradeState':'TRADING','standardCode':'DEALING','standardMsg':null,'thirdOrderNo':null,'respRemark':null,'tradeTime':'2019-09-22T04:09:53.518+0000','description':'','version':'1','sourceNotecode':'8186270000000008','payType':'MIT01','expireDate':'20191010101010','transSeq':'20190922120953782','transSource':'MIT','applyEntity':'11860000','paymentCode':'8186270000000008','transDate':'20190922','rdSeq':'1909221209536259999900','settleMode':null,'cur':'CNY','transTime':'120953','ourAmount':63700,'fixUser':'1','insurer':'投保人','certType':'0','certNum':'110101199009210011','oppBank':'ABC','oppAct':'6228481200290317812','oppActName':'投保人','cellPhone':null,'purpose':null,'memo':null,'returnURL':'http://139.199.50.151/#/sale/payResult','notifyURL':'http://139.199.50.151:7000/api/v1/epay/epay/payResult','s3Sign':'e3f0581ec6b751337e8eca360a0746bc'}}
@@ -432,7 +455,7 @@ export default {
flag: 'share',
extra: {
title: `国富人寿电子投保单(${shareName})付款`,
content: '付款进行',
content: '投保单号:'+ localStorage.orderNo + '\n' + '支付金额:' + this.underWriteData.orderAmount + '元',
url: location.origin + '/#/sale/payMent?orderNo=' + localStorage.orderNo + '&token=' + localStorage.token,
img: this.$assetsUrl + 'images/logo.png'
}

View File

@@ -21,13 +21,21 @@
<!-- <div v-if="payStatus != '2' && payStatus != '1'" class=" p10 pb250 bg-white">
<span class="pt150 fs14"> 如有相关问题请联系信息技术部运维人员</span>
</div> -->
<div v-if="payStatus == '1'" class=" p10 pb250 bg-white">
<span class="pt150 fs14"> 核心承保中请您稍后查看</span>
<div class="mt15" v-if="this.manageComCode == '45'">
<span class="pt150 fs14 green fwb">
温馨提示为维护您的合法权益广西保险行业协会将向您发送满意度调查短信欢迎回复短信对我们的销售和服务进行监督
</span>
<!-- <div v-if="payStatus == '1'" class=" p10 pb250 bg-white">-->
<!-- <span class="pt150 fs14"> 核心承保中请您稍后查看</span>-->
<!-- <div class="mt15" v-if="this.manageComCode == '45'">-->
<!-- <span class="pt150 fs14 green fwb">-->
<!-- 温馨提示为维护您的合法权益广西保险行业协会将向您发送满意度调查短信欢迎回复短信对我们的销售和服务进行监督-->
<!-- </span>-->
<!-- </div>-->
<!-- </div>-->
<div v-if="payStatus == '1'" class="p10 pb250 bg-white" style="text-align: center;padding-top: 50px!important;">
<p style="text-align: center;font-weight: bold;">温馨提示</p>
<p style="text-align: center;">您可识别下方官方微信"国富人寿"二维码关注公众号查询您的保单信息和服务</p>
<div style="padding: 20px;">
<img :src="erweima" style="width: 60vw;"/>
</div>
<p style="text-align: center;font-weight: bold;">长按识别二维码</p>
</div>
<div v-if="payStatus == '2' || payStatus == '4' || payStatus == '8'" class=" p10 pb250 bg-white">
<span v-html="resMessage"></span>
@@ -51,161 +59,162 @@
</template>
<script>
import { Cell, CellGroup } from 'vant'
import { getPayState } from '@/api/ebiz/sale/sale'
import riskRules from '@/views/ebiz/common/risk-rules'
export default {
data() {
let isWeixin = this.$utils.device().isWeixin //判断环境
return {
isWeixin,
// 保融收银台返回的支付流水号
paySeqNo: '',
// 接口返回数据前,不做页面渲染
isReady: true,
// 是否已重新获取支付状态。(首次进入本页,立即查询支付结果。如果是‘支付中’,两秒后再次(最后一次)再次获取一次支付状态。)
isReloaded: false,
// 结果原因
resMessage: '',
// 支付结果
payStatus: '',
// 支付信息
payInfo: {
appntName: '', // 投保人
prtNo: '', // 投保单号
amnt: '' // 支付金额
import { Cell, CellGroup } from 'vant'
import { getPayState } from '@/api/ebiz/sale/sale'
import riskRules from '@/views/ebiz/common/risk-rules'
import erweima from '@/assets/images/erweima.png'
export default {
data() {
let isWeixin = this.$utils.device().isWeixin //判断环境
return {
isWeixin,
// 保融收银台返回的支付流水号
paySeqNo: '',
// 接口返回数据前,不做页面渲染
isReady: true,
// 是否已重新获取支付状态。(首次进入本页,立即查询支付结果。如果是‘支付中’,两秒后再次(最后一次)再次获取一次支付状态。)
isReloaded: false,
// 结果原因
resMessage: '',
// 支付结果
payStatus: '',
// 支付信息
payInfo: {
appntName: '', // 投保人
prtNo: '', // 投保单号
amnt: '' // 支付金额
},
// 图片
srcSuccess: this.$assetsUrl + 'images/success.png',
srcPending: this.$assetsUrl + 'images/pending.png',
srcFail: this.$assetsUrl + 'images/fail.png',
erweima,
manageComCode:''//代理人管理机构 52贵州 45广西
}
},
components: {
[Cell.name]: Cell,
[CellGroup.name]: CellGroup
},
methods: {
// 返回列表页
next() {
if(this.isWeixin){
WeixinJSBridge.call("closeWindow");
}else{
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/list'
},
routerInfo: {
path: '/sale/list'
}
})
}
},
// 图片
srcSuccess: this.$assetsUrl + 'images/success.png',
srcPending: this.$assetsUrl + 'images/pending.png',
srcFail: this.$assetsUrl + 'images/fail.png',
manageComCode:''//代理人管理机构 52贵州 45广西
}
},
components: {
[Cell.name]: Cell,
[CellGroup.name]: CellGroup
},
methods: {
// 返回列表页
next() {
if(this.isWeixin){
WeixinJSBridge.call("closeWindow");
}else{
// 查询支付状态
queryPayState() {
this.$toast.clear()
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
let data = { orderNo: this.paySeqNo }
getPayState(data).then(res => {
this.$toast.clear()
this.isReady = true
console.log('----支付结果查询', JSON.stringify(res))
if (res.result == '0') {
this.payStatus = res.payStatus
this.payInfo = { appntName: res.appntName, prtNo: res.prtNo, amnt: res.amnt }
this.resMessage = res.message
// 如果是支付中2秒后重新获取一次支付状态
if (this.payStatus == '4' && !this.isReloaded) {
this.isReloaded = true
setTimeout(() => {
this.queryPayState()
}, 2000)
}
} else {
this.$toast(res.resultMessage)
}
})
},
// 重新支付
rePayMent() {
// localStorage.orderNo = order.orderInfoDTO.orderNo
// 再次支付 salelist为 0
localStorage.salelist = '0'
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/list'
url: location.origin + '/#/sale/payMent'
},
routerInfo: {
path: '/sale/list'
path: '/sale/payMent'
}
})
},
//更换卡号
changeCard() {
localStorage.setItem('changeCard', true)
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/AccountInformation'
},
routerInfo: {
path: '/sale/AccountInformation'
}
})
}
},
// 查询支付状态
queryPayState() {
this.$toast.clear()
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
let data = { orderNo: this.paySeqNo }
getPayState(data).then(res => {
this.$toast.clear()
this.isReady = true
console.log('----支付结果查询', JSON.stringify(res))
if (res.result == '0') {
this.payStatus = res.payStatus
this.payInfo = { appntName: res.appntName, prtNo: res.prtNo, amnt: res.amnt }
this.resMessage = res.message
// 如果是支付中2秒后重新获取一次支付状态
if (this.payStatus == '4' && !this.isReloaded) {
this.isReloaded = true
setTimeout(() => {
this.queryPayState()
}, 2000)
}
} else {
this.$toast(res.resultMessage)
}
created() {
EWebBridge.webCallAppInJs('webview_left_button', {
intercept: '1' //是否拦截原生返回事件 1是 其他否
})
},
// 重新支付
rePayMent() {
// localStorage.orderNo = order.orderInfoDTO.orderNo
// 再次支付 salelist为 0
localStorage.salelist = '0'
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/payMent'
},
routerInfo: {
path: '/sale/payMent'
}
})
},
//更换卡号
changeCard() {
localStorage.setItem('changeCard', true)
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/AccountInformation'
},
routerInfo: {
path: '/sale/AccountInformation'
}
})
}
},
created() {
EWebBridge.webCallAppInJs('webview_left_button', {
intercept: '1' //是否拦截原生返回事件 1是 其他否
})
},
async mounted() {
let that = this
// document.body.style.backgroundColor = '#fff'
that.payStatus = window.localStorage.getItem('payStatus')
that.payInfo = JSON.parse(window.localStorage.getItem('payInfo'))
if (window.localStorage.getItem('resMessage') != null) {
that.resMessage = window.localStorage.getItem('resMessage').replace(/\\n/g, '<br>')
}
async mounted() {
let that = this
// document.body.style.backgroundColor = '#fff'
that.payStatus = window.localStorage.getItem('payStatus')
that.payInfo = JSON.parse(window.localStorage.getItem('payInfo'))
if (window.localStorage.getItem('resMessage') != null) {
that.resMessage = window.localStorage.getItem('resMessage').replace(/\\n/g, '<br>')
}
this.paySeqNo = this.$route.query.RdSeq
if (!this.paySeqNo) {
this.$toast({ message: '参数错误缺少支付流水号RdSeq查询参数', duration: 5000 })
} else {
this.queryPayState()
this.paySeqNo = this.$route.query.RdSeq
if (!this.paySeqNo) {
this.$toast({ message: '参数错误缺少支付流水号RdSeq查询参数', duration: 5000 })
} else {
this.queryPayState()
}
//获取代理人管理机构 52贵州 45广西
let dataReturn = await riskRules.getAgentInfoFunc(this)
this.manageComCode = dataReturn.manageComCode
},
beforeRouteLeave(to, from, next) {
document.body.style.backgroundColor = ''
next()
}
//获取代理人管理机构 52贵州 45广西
let dataReturn = await riskRules.getAgentInfoFunc(this)
this.manageComCode = dataReturn.manageComCode
},
beforeRouteLeave(to, from, next) {
document.body.style.backgroundColor = ''
next()
}
}
</script>
<style lang="scss" scoped>
.payResult-container {
.payResult-header {
width: 345px;
// height: 143px;
.payResult-img {
width: 70px;
height: 70px;
.payResult-container {
.payResult-header {
width: 345px;
// height: 143px;
.payResult-img {
width: 70px;
height: 70px;
}
}
}
}
// /deep/ .van-cell__value {
// text-align: left;
// }
// /deep/ .van-cell__value {
// text-align: left;
// }
</style>

View File

@@ -7,8 +7,8 @@
<div v-if="isWeixin" class="bg-white mt10 p20 fs14 tips">
<p>
尊敬的
<span>{{ tipsName }}</span>
先生/女士您好
<span>{{ tipsName }}</span
>先生/女士您好
</p>
<p>该保单由国富人寿保险股份有限公司进行承保具体确认信息如下</p>
</div>
@@ -47,9 +47,16 @@
</div>
<p class="start" v-if="airSign != '1'">点击开始进行相关操作</p>
<div v-if="!isInvalid" class="flex justify-content-a mt20">
<van-button type="danger" size="normal" class="w150" plain :disabled="changeCard ? agentSign.documentStatus == '1' : agentSignStatus == '3'" v-no-more-click="1000" @click="start_agent('3')">
开始
</van-button>
<van-button
type="danger"
size="normal"
class="w150"
plain
:disabled="changeCard ? agentSign.documentStatus == '1' : agentSignStatus == '3'"
v-no-more-click="1000"
@click="start_agent('3')"
>开始</van-button
>
</div>
<div class="text" v-else>操作时间已失效请联系销售人员</div>
</van-collapse-item>
@@ -82,13 +89,28 @@
</div>
<p class="start" v-if="airSign != '1'">点击开始分享进行相关操作</p>
<div v-if="!isInvalid" class="flex justify-content-a mt20">
<van-button v-if="isShow" type="danger" size="normal" class="w150" plain v-no-more-click="1000" :disabled="changeCard ? appntSign.documentStatus == '1' : appntSignStatus == '3'" @click="share(saleInsuredPersonInfo.relationToAppnt == '1' ? '2' : '0')">
分享
</van-button>
<van-button
v-if="isShow"
type="danger"
size="normal"
class="w150"
plain
v-no-more-click="1000"
:disabled="changeCard ? appntSign.documentStatus == '1' : appntSignStatus == '3'"
@click="share(saleInsuredPersonInfo.relationToAppnt == '1' ? '2' : '0')"
>分享</van-button
>
<!-- 前端测试 -->
<van-button type="danger" size="normal" class="w150" plain :disabled="changeCard ? appntSign.documentStatus == '1' : appntSignStatus == '3'" v-no-more-click="1000" @click="start_ocr(saleInsuredPersonInfo.relationToAppnt == '1' ? '2' : '0')">
开始
</van-button>
<van-button
type="danger"
size="normal"
class="w150"
plain
:disabled="changeCard ? appntSign.documentStatus == '1' : appntSignStatus == '3'"
v-no-more-click="1000"
@click="start_ocr(saleInsuredPersonInfo.relationToAppnt == '1' ? '2' : '0')"
>开始</van-button
>
</div>
<div class="text" v-else>操作时间已失效请联系销售人员</div>
</van-collapse-item>
@@ -112,12 +134,20 @@
</div>
<p class="start" v-if="airSign != '1'">点击开始分享进行相关操作</p>
<div v-if="!isInvalid" class="flex justify-content-a mt20">
<van-button v-if="isShow" type="danger" size="normal" class="w150" :disabled="insuredSignStatus == '3'" @click="share('1')" plain v-no-more-click="1000">
分享
</van-button>
<van-button type="danger" size="normal" plain class="w150" :disabled="insuredSignStatus == '3'" @click="start_ocr('1')" v-no-more-click="1000">
开始
</van-button>
<van-button
v-if="isShow"
type="danger"
size="normal"
class="w150"
:disabled="insuredSignStatus == '3'"
@click="share('1')"
plain
v-no-more-click="1000"
>分享</van-button
>
<van-button type="danger" size="normal" plain class="w150" :disabled="insuredSignStatus == '3'" @click="start_ocr('1')" v-no-more-click="1000"
>开始</van-button
>
</div>
<div class="text" v-else>操作时间已失效请联系销售人员</div>
</van-collapse-item>
@@ -153,9 +183,16 @@
</div>
<p class="start" v-if="airSign != '1'">点击开始分享进行相关操作</p>
<div v-if="!isInvalid" class="flex justify-content-a mt20">
<van-button type="danger" size="normal" style="width: 157px" plain :disabled="changeCard ? appntSign.documentStatus == '1' : appntSignStatus == '3'" v-no-more-click="1000" @click="start_ocr(saleInsuredPersonInfo.relationToAppnt == '1' ? '2' : '0')">
开始
</van-button>
<van-button
type="danger"
size="normal"
style="width: 157px"
plain
:disabled="changeCard ? appntSign.documentStatus == '1' : appntSignStatus == '3'"
v-no-more-click="1000"
@click="start_ocr(saleInsuredPersonInfo.relationToAppnt == '1' ? '2' : '0')"
>开始</van-button
>
</div>
<div class="text" v-else>操作时间已失效请联系销售人员</div>
</van-collapse-item>
@@ -179,9 +216,16 @@
</div>
<p class="start" v-if="airSign != '1'">点击开始分享进行相关操作</p>
<div v-if="!isInvalid" class="flex justify-content-a mt20">
<van-button type="danger" size="normal" plain style="width: 157px" :disabled="insuredSignStatus == '3'" @click="start_ocr('1')" v-no-more-click="1000">
开始
</van-button>
<van-button
type="danger"
size="normal"
plain
style="width: 157px"
:disabled="insuredSignStatus == '3'"
@click="start_ocr('1')"
v-no-more-click="1000"
>开始</van-button
>
</div>
<div class="text" v-else>操作时间已失效请联系销售人员</div>
</van-collapse-item>
@@ -192,17 +236,27 @@
<div v-if="!isWeixin">
<div v-if="changeCard">
<div class="bottom-btn bg-white" v-if="appntSign.documentStatus == '1'">
<van-button type="danger" v-if="relationToAppnt == '1' ? true : appntSign.documentStatus == '1' ? true : false" size="large" @click="rePayMent" v-no-more-click="1000">
支付
</van-button>
<van-button
type="danger"
v-if="relationToAppnt == '1' ? true : appntSign.documentStatus == '1' ? true : false"
size="large"
@click="rePayMent"
v-no-more-click="1000"
>支付</van-button
>
</div>
</div>
<div v-else>
<!--判断代理人自保件承诺书是否签名 或者不是自保件 投保人是否都签名-->
<div class="bottom-btn bg-white" v-if="(agentSignStatus == '3'&& appntSignStatus == '3')||(agentSignStatus == ''&& appntSignStatus == '3')">
<van-button type="danger" v-if="relationToAppnt == '1' ? true : insuredSignStatus == '3' ? true : false" size="large" @click="next" v-no-more-click="1000">
提交
</van-button>
<van-button
type="danger"
v-if="relationToAppnt == '1' ? true : insuredSignStatus == '3' ? true : false"
size="large"
@click="next"
v-no-more-click="1000"
>提交</van-button
>
</div>
</div>
</div>
@@ -210,7 +264,13 @@
<!-- <video controls style="width: 100%; max-height: calc(100vh - 60px)" src="/app/video/rlsb.mp4"></video> -->
<div class="" v-if="videoShow" style="height: calc(100vh - 60px); display: flex; align-items: center; flex-flow: column; justify-content: center">
<!-- <van-notice-bar :scrollable="false" class="notice" style="width: 100%">为维护您的合法权益请您务必观看防范销售误导视频</van-notice-bar> -->
<video controls style="width: 100%; max-height: calc(100vh - 60px)" :src="'https://gf-dev-202005-1254138932.cos.ap-shanghai-fsi.myqcloud.com/gfapp/pub01/2021/04/28/guofulive.MP4'" ref="vid" @timeupdate="timeupdate"></video>
<video
controls
style="width: 100%; max-height: calc(100vh - 60px)"
:src="'https://gf-dev-202005-1254138932.cos.ap-shanghai-fsi.myqcloud.com/gfapp/pub01/2021/04/28/guofulive.MP4'"
ref="vid"
@timeupdate="timeupdate"
></video>
</div>
<div class="bottom-btn bg-white">
<van-button type="danger" size="large" @click="isVideoUrlClick()" v-no-more-click="1000">下一步</van-button>
@@ -226,10 +286,18 @@
}}</van-button>
</van-cell-group>
</van-dialog>
<!-- <UploadImageFile
:typeface="idcardData.typeface && faceAuthCount.weixin < smsAuthNum"
:realName="idcardData.idcardName"
:idno="idcardData.idcardNumber"
@sendimage="sendimage"
>
</UploadImageFile> -->
</div>
</template>
<script>
// import UploadImageFile from '@/components/ebiz/sale/UploadImageFile'
import { Field, Cell, CellGroup, Collapse, CollapseItem, Dialog, NoticeBar } from 'vant'
import {
underWrite,
@@ -262,7 +330,7 @@ export default {
timeId: null, // 计时器ID
countDown: 60, // 倒计时
authCode: '', // 验证码
smsAuthNum: 2,
smsAuthNum: 3,
operaFlag: null,
encyCustomerMobile: null,
sid: null,
@@ -458,55 +526,57 @@ export default {
this.relationToAppnt = this.$route.query.relationToAppnt
this.isShow = false
await this.getOrderDetail()
if (
(this.appntSignStatus == '3' && sessionStorage.getItem('shareCode') == '0') ||
(this.appntSignStatus == '3' && sessionStorage.getItem('shareCode') == '2')
) {
// this.$toast('签名成功,请联系业务员进行后续流程!')
Dialog.alert({ title: '提示', message: '签名成功,请联系业务员进行后续流程!' })
} else if (this.insuredSignStatus == '3' && sessionStorage.getItem('shareCode') == '1') {
Dialog.alert({ title: '提示', message: '签名成功,请联系业务员进行后续流程!' })
}
if (this.changeCard && this.appntSign.documentStatus == '1') {
Dialog.alert({ title: '提示', message: '确认完成,请联系业务员完成后续流程!' })
}
// localStorage['faceAuthWeXin-requestId'] localStorage['faceAuthWeXin-bizToken']--微信端人脸识别获取腾讯认证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']))
}
if (sessionStorage.shareCode == '1') {
console.log('进来被保险人')
this.tipsName = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).name
} else if(sessionStorage.shareCode == '3'){
console.log('进来代理人')
this.tipsName =this.recmd.name
}else {
console.log('进来投保人')
this.tipsName = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredInfo')).name
// console.log('localStorage.saleInsuredInfo', localStorage.saleInsuredInfo)
// console.log('localStorage.saleInsuredInfo.name', localStorage.saleInsuredInfo.name)
// console.log('this.tipName', this.tipsName)
}
weixinShare({
title: '国富人寿计划书',
imgUrl: 'http://47.96.143.111:8000/app/images/logo.png',
desc: '国富为您量身定制的保险产品,请查收'
})
// let params = {
// orderNo: ''
// }
this.faceAuthCount.appnt = this.$route.query.faceAuthCountAppnt == undefined ? 0 : Number(this.$route.query.faceAuthCountAppnt)
this.faceAuthCount.insured = this.$route.query.faceAuthCountInsured == undefined ? 0 : Number(this.$route.query.faceAuthCountInsured)
this.faceAuthCount.weixin = this.$route.query.faceAuthCountWeixin == undefined ? 0 : Number(this.$route.query.faceAuthCountWeixin)
} else {
// 获取详情消息
console.log('初始化this.appntSign ==', this.appntSign)
if (
(this.appntSignStatus == '3' && sessionStorage.getItem('shareCode') == '0') ||
(this.appntSignStatus == '3' && sessionStorage.getItem('shareCode') == '2')
) {
// this.$toast('签名成功,请联系业务员进行后续流程!')
Dialog.alert({ title: '提示', message: '签名成功,请联系业务员进行后续流程!' })
} else if (this.insuredSignStatus == '3' && sessionStorage.getItem('shareCode') == '1') {
Dialog.alert({ title: '提示', message: '签名成功,请联系业务员进行后续流程!' })
}
if (this.changeCard && this.appntSign.documentStatus == '1') {
Dialog.alert({ title: '提示', message: '确认完成,请联系业务员完成后续流程!' })
}
// localStorage['faceAuthWeXin-requestId'] localStorage['faceAuthWeXin-bizToken']--微信端人脸识别获取腾讯认证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']))
}
this.getOrderDetail()
this.getSignInvalid()
this.isShow = true
}
},
if (sessionStorage.shareCode == '1') {
console.log('进来被保险人')
this.tipsName = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).name
} else if(sessionStorage.shareCode == '3'){
console.log('进来代理人')
this.tipsName =this.recmd.name
}else {
console.log('进来投保人')
this.tipsName = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredInfo')).name
// console.log('localStorage.saleInsuredInfo', localStorage.saleInsuredInfo)
// console.log('localStorage.saleInsuredInfo.name', localStorage.saleInsuredInfo.name)
// console.log('this.tipName', this.tipsName)
}
weixinShare({
title: '国富人寿计划书',
imgUrl: 'http://47.96.143.111:8000/app/images/logo.png',
desc: '国富为您量身定制的保险产品,请查收'
})
// let params = {
// orderNo: ''
// }
this.faceAuthCount.appnt = this.$route.query.faceAuthCountAppnt == undefined ? 0 : Number(this.$route.query.faceAuthCountAppnt)
this.faceAuthCount.insured = this.$route.query.faceAuthCountInsured == undefined ? 0 : Number(this.$route.query.faceAuthCountInsured)
this.faceAuthCount.weixin = this.$route.query.faceAuthCountWeixin == undefined ? 0 : Number(this.$route.query.faceAuthCountWeixin)
} else {
// 获取详情消息
this.getOrderDetail()
this.getSignInvalid()
this.isShow = true
}
},
// 获取消息和阅读状态
realPeopelCheck() {
this.$toast.loading({
@@ -1065,7 +1135,6 @@ export default {
// }
// documentStatus: 文档状态 0 未读 1 已读 2 未签名 3 已签名
if (that.insuredSign[i].documentStatus == 0 || that.insuredSign[i].documentStatus == 2 ) {
debugger
path = that.insuredSign[i].routePath
break
}
@@ -1346,19 +1415,6 @@ export default {
},
// 获取消息和阅读状态
getOrderDetail() {
if(!this.$route.query.orderNo || this.$route.query.orderNo == 'undefined'){
Dialog.confirm({
title: '提示',
message: '订单号信息缺失,跳转订单系统重新获取',
showCancelButton: false
}).then(() => {
this.$router.push({
path:'/sale/list'
})
})
return false
}
let that = this
this.$toast.loading({
// 持续展示 toast
@@ -1570,17 +1626,7 @@ export default {
})
}
resolve('success')
} else {
Dialog.confirm({
title: '提示',
message: res.resultMessage,
showCancelButton: false
}).then(() => {
this.$router.push({
path:'/sale/list'
})
})
}
}
})
})
},
@@ -1594,7 +1640,11 @@ export default {
if (item.documentCode == '1') {
item.key = 2
// item.key = 4
item.routePath = 'insuranceInformation'
if(JSON.parse(window.localStorage.getItem('mainRiskCodes'))[0] == 'GFRS_M0081'){
item.routePath = 'insuranceInformation_0081'
} else {
item.routePath = 'insuranceInformation'
}
} else if (item.documentCode == '2') {
// item.key = 9
item.key = 11

File diff suppressed because it is too large Load Diff

View File

@@ -343,7 +343,7 @@ export default {
}
submit(data).then(res => {
if (res.reslut == '0') {
if (res.result == '0') {
this.$toast.clear()
window.localStorage.setItem('submitStatus', res.result)
this.$jump({

View File

@@ -20,6 +20,8 @@
<van-cell title="证件类型" :value="appntDTO.idTypeText" />
<van-cell title="证件号码" :value="appntDTO.idNo" />
<van-cell title="联系电话" :value="appntDTO.mobileStar" />
<!-- <van-cell title="新市民身份" v-if="manageComCode == '45'" :value="appntDTO.isNewPeopleFlagText" />-->
<!-- <van-cell v-if="appntDTO.isNewPeopleFlagText == '是' && manageComCode == '45'" title="新市民类型" :value="appntDTO.npTypeTypeText" />-->
</van-cell-group>
</van-collapse-item>
@@ -33,6 +35,8 @@
<van-cell title="证件类型" :value="item.idTypeText" />
<van-cell title="证件号码" :value="item.idNo" />
<van-cell title="联系电话" :value="item.mobile" />
<!-- <van-cell title="新市民身份" v-if="manageComCode == '45'" :value="item.isNewPeopleFlagText" />-->
<!-- <van-cell v-if="item.isNewPeopleFlagText == '是' && manageComCode == '45'" title="新市民类型" :value="item.npTypeText" />-->
</van-cell-group>
</van-collapse-item>
<div v-for="(itm, i) in item.bnfDTOs" :key="i" class="pb10">
@@ -85,7 +89,7 @@
<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>
<!-- 2019-09-27 版上线不含回执签收 marked by panglizong on 2019-09-26 -->
@@ -96,355 +100,366 @@
</template>
<script>
import { Collapse, CollapseItem, Cell, CellGroup, Button, Field, Dialog } from 'vant'
import { getPolicyDetail, getReceiptSign } from '@/api/ebiz/serve/serve'
import { getAuthCode, autchCodeCheck } from '@/api/ebiz/sale/sale'
import { checkPhone } from '@/api/ebiz/customer/customer'
import dataDictionary from '@/assets/js/utils/data-dictionary' //根据数据字典进行页面展示
import { formatAllRisk } from '@/assets/js/utils/formatRiskList'
export default {
data() {
return {
show: false, // 获取短信验证码
codeDisabled: false, // 获取验证码按钮是否禁用
timeId: null, // 计时器ID
countDown: 60, // 计时
authCode: '', // 验证码
smsAuthNum: 3,
operaFlag: null,
encyCustomerMobile: null,
customerMobile: null,
sid: null,
//人脸识别认证次数
faceAuthCount: {
appnt: 0,
insured: 0,
weixin: 0
},
// 折叠面板
activeNames: ['1'],
// 保单基本信息
OrderInfoDTO: {},
// 投保人信息
appntDTO: {},
// 被保险人信息
insuredDTOs: [],
// 保单号
contNo: '',
list: []
}
},
created() {
setTimeout(() => {
// 右上角的显示
window.EWebBridge.webCallAppInJs('webview_right_button', {
btns: [
{
img: this.$assetsUrl + 'images/share@3x.png'
}
]
})
}, 1000)
window['appCallBack'] = this.appCallBack
// 获取保单详情
this.getPolicyDetail()
},
components: {
[Collapse.name]: Collapse,
[CollapseItem.name]: CollapseItem,
[Cell.name]: Cell,
[CellGroup.name]: CellGroup,
[Button.name]: Button,
[Field.name]: Field,
[Dialog.name]: Dialog
},
methods: {
// 获取短信验证码
getAuthCode() {
this.codeDisabled = true
//倒计时
this.timeId = setInterval(() => {
this.countDown--
if (this.countDown <= 0) {
window.clearInterval(this.timeId)
this.codeDisabled = false
this.countDown = 60
}
import { Collapse, CollapseItem, Cell, CellGroup, Button, Field, Dialog } from 'vant'
import { getPolicyDetail, getReceiptSign } from '@/api/ebiz/serve/serve'
import { getAuthCode, autchCodeCheck } from '@/api/ebiz/sale/sale'
import { checkPhone } from '@/api/ebiz/customer/customer'
import dataDictionary from '@/assets/js/utils/data-dictionary' //根据数据字典进行页面展示
import { formatAllRisk } from '@/assets/js/utils/formatRiskList'
import riskRules from '@/views/ebiz/common/risk-rules'
export default {
data() {
return {
show: false, // 获取短信验证码
codeDisabled: false, // 获取验证码按钮是否禁用
timeId: null, // 计时器ID
countDown: 60, // 倒计时
authCode: '', // 验证码
smsAuthNum: 3,
operaFlag: null,
encyCustomerMobile: null,
customerMobile: null,
sid: null,
//人脸识别认证次数
faceAuthCount: {
appnt: 0,
insured: 0,
weixin: 0
},
// 折叠面板
activeNames: ['1'],
// 保单基本信息
OrderInfoDTO: {},
// 投保人信息
appntDTO: {},
// 被保险人信息
insuredDTOs: [],
// 保单号
contNo: '',
manageComCode:'',//代理人管理机构 52贵州 45广西
list: []
}
},
created() {
setTimeout(() => {
// 右上角的显示
window.EWebBridge.webCallAppInJs('webview_right_button', {
btns: [
{
img: this.$assetsUrl + 'images/share@3x.png'
}
]
})
}, 1000)
getAuthCode({
operateType: 'appntInfoEntry',
type: 'H5',
operateCode: this.customerMobile,
system: 'agentApp',
operateCodeType: '0'
}).then(res => {
console.log(res)
window['appCallBack'] = this.appCallBack
// 获取保单详情
this.getPolicyDetail()
},
async mounted() {
let dataReturn = await riskRules.getAgentInfoFunc(this)
this.manageComCode = dataReturn.manageComCode
},
components: {
[Collapse.name]: Collapse,
[CollapseItem.name]: CollapseItem,
[Cell.name]: Cell,
[CellGroup.name]: CellGroup,
[Button.name]: Button,
[Field.name]: Field,
[Dialog.name]: Dialog
},
methods: {
// 获取短信验证码
getAuthCode() {
this.codeDisabled = true
//倒计时
this.timeId = setInterval(() => {
this.countDown--
if (this.countDown <= 0) {
window.clearInterval(this.timeId)
this.codeDisabled = false
this.countDown = 60
}
}, 1000)
getAuthCode({
operateType: 'appntInfoEntry',
type: 'H5',
operateCode: this.customerMobile,
system: 'agentApp',
operateCodeType: '0'
}).then(res => {
console.log(res)
if (res.result == 0) {
this.sid = res.sessionId
} else {
this.$toast(res.resultMessage)
}
})
},
// 验证码确认事件
async authConfirm() {
//清理计时器
this.clearTimer()
this.changeSubmit()
},
// 清理计时器
clearTimer() {
window.clearInterval(this.timeId)
this.timeId = null
this.countDown = 60
this.codeDisabled = false
},
//提交变更申请
async changeSubmit() {
if (null == this.sid) {
this.$toast('请先进行发送短信验证码')
return
}
let res = await autchCodeCheck({
smsId: this.sid,
code: this.authCode
})
if (res.result == 0) {
this.sid = res.sessionId
this.toNextPage()
} else {
this.$toast(res.resultMessage)
}
})
},
// 验证码确认事件
async authConfirm() {
//清理计时器
this.clearTimer()
this.changeSubmit()
},
// 清理计时器
clearTimer() {
window.clearInterval(this.timeId)
this.timeId = null
this.countDown = 60
this.codeDisabled = false
},
//提交变更申请
async changeSubmit() {
if (null == this.sid) {
this.$toast('请先进行发送短信验证码')
return
}
let res = await autchCodeCheck({
smsId: this.sid,
code: this.authCode
})
if (res.result == 0) {
this.toNextPage()
} else {
this.$toast(res.resultMessage)
}
},
realPeopelCheck() {
this.$toast.loading({
// 持续展示 toast
duration: 0,
// 禁用背景点击s
forbidClick: true,
loadingType: 'spinner',
message: '加载中……'
})
let data = {
name: this.appntDTO.name,
idType: this.appntDTO.idType,
idNo: this.appntDTO.idNo,
mobile: this.appntDTO.mobile
}
this.customerMobile = this.appntDTO.mobile
this.encyCustomerMobile = this.customerMobile.replace(/^(\d{3})\d{4}(\d{4})$/, '$1****$2')
this.authCode = null
// eslint-disable-next-line no-unused-vars
return new Promise((resolve, reject) => {
checkPhone(data).then(res => {
if (res.result == '0') {
console.log(res)
this.show = true
} else {
Dialog.confirm({
title: '提示',
message: '抱歉,您预留的手机号非您本人的手机号!',
showCancelButton: false
})
}
},
realPeopelCheck() {
this.$toast.loading({
// 持续展示 toast
duration: 0,
// 禁用背景点击s
forbidClick: true,
loadingType: 'spinner',
message: '加载中……'
})
})
},
// 获取保单详情
getPolicyDetail() {
let that = this
let data = {
policyNo: window.localStorage.getItem('policyNo')
}
getPolicyDetail(data).then(res => {
if (res.result == '0') {
let appntDTO = res.content.appntDTO
let orderInfoDTO = res.content.orderInfoDTO
// 保单信息
if (orderInfoDTO.orderStatus == '0') {
orderInfoDTO.orderStatusText = '未签收'
} else if (orderInfoDTO.orderStatus == '1') {
orderInfoDTO.orderStatusText = '已签收'
} else {
orderInfoDTO.orderStatusText = ''
}
//团险渠道 查看团单号
if (orderInfoDTO.saleChnl === '2' || orderInfoDTO.saleChnl === '团险') {
orderInfoDTO.contNo=orderInfoDTO.grpContNo;
}
// 测试用
// orderInfoDTO.orderStatus = '0'
that.OrderInfoDTO = orderInfoDTO
// 投保人信息
this.filterData(dataDictionary.sex, 'sex', appntDTO)
this.filterData(dataDictionary.idType, 'idType', appntDTO)
that.appntDTO = appntDTO
this.$CacheUtils.setLocItem('saleInsuredInfo', JSON.stringify(appntDTO))
// 被保险人信息
res.content.insuredDTOs.map(insured => {
insured.riskDTOLst.map(risk => {
Number(risk.payIntv)
switch (risk.payIntv) {
case -1:
risk.payIntv = '不定期交'
break
case 0:
risk.payIntv = '一次交清'
break
case 1:
risk.payIntv = '月交'
break
case 3:
risk.payIntv = '季交'
break
case 6:
risk.payIntv = '半年交'
break
case 12:
risk.payIntv = '年交'
break
}
if (risk.insuYear == '70') {
risk.insuYear = '至70周岁'
} else if (risk.insuYear == '75') {
risk.insuYear = '至75周岁'
} else if (risk.insuYear == '80') {
risk.insuYear = '至80周岁'
} else if (risk.insuYear == '106') {
risk.insuYear = '终身'
} else {
risk.insuYear = risk.insuYearFlag == 'D' ? `${risk.insuYear}` : `${risk.insuYear}`
}
})
this.filterData(dataDictionary.sex, 'sex', insured)
this.filterData(dataDictionary.idType, 'idType', insured)
this.filterData(dataDictionary.relationToAppnt, 'relation', insured)
insured.bnfDTOs.map(bnf => {
this.filterData(dataDictionary.bnfType, 'bnfType', bnf)
this.filterData(dataDictionary.sex, 'sex', bnf)
this.filterData(dataDictionary.idType, 'idType', bnf)
this.filterData(dataDictionary.relationToAppnt, 'relation', bnf)
})
})
that.insuredDTOs = res.content.insuredDTOs
this.list = formatAllRisk(this.insuredDTOs[0].riskDTOLst)
} else {
this.$toast(res.resultMessage)
let data = {
name: this.appntDTO.name,
idType: this.appntDTO.idType,
idNo: this.appntDTO.idNo,
mobile: this.appntDTO.mobile
}
})
},
appCallBack(data) {
if (data.trigger == 'right_button_click') {
console.log(this.$CacheUtils.getLocItem('saleInsuredInfo'))
EWebBridge.webCallAppInJs('bridge', {
flag: 'share',
extra: {
title: '国富人寿保单回执签字',
content: '国富人寿保单回执签收',
url:
location.origin +
'/#/serve/airSign?policyNo=' +
localStorage.policyNo +
'&token=' +
localStorage.token +
'&saleInsuredInfo=' +
encodeURI(this.$CacheUtils.getLocItem('saleInsuredInfo')),
// url: 'http://47.96.143.111/#/proposal/exhibition?proposalNo=' + localStorage.orderNo + '&token=' + localStorage.token,
img: this.$assetsUrl + 'images/logo.png'
}
})
}
},
//根据数据字典 将后端返回的数据渲染到页面中
filterData(dictionary, key, pageData) {
dictionary.forEach(item => {
if (pageData[key] == item.id) {
pageData[key + 'Text'] = item.text //渲染页面使用的字段
}
})
},
// 回执签收
next() {
this.toNextPage()
// let that = this
// if (this.faceAuthCount.appnt < this.smsAuthNum) {
// if (this.appntDTO.idType == '1') {
// //证件类型为身份证时,进行人脸识别
// EWebBridge.webCallAppInJs('face_auth', {
// number: this.appntDTO.idNo, //身份证号码
// name: this.appntDTO.name //姓名
// }).then(data => {
// this.$toast.loading({
// duration: 0, // 持续展示 toast
// forbidClick: true, // 禁用背景点击
// loadingType: 'spinner',
// message: '加载中……'
// })
// this.$toast.clear()
// if (JSON.parse(data).state == '1') {
// this.toNextPage()
// } else {
// that.faceAuthCount.appnt++
// if (that.faceAuthCount.appnt >= this.smsAuthNum) {
// this.realPeopelCheck()
// }
// }
// })
// } else {
// this.toNextPage()
// }
// } else {
// this.realPeopelCheck()
// }
},
toNextPage() {
let params = {
contNo: window.localStorage.getItem('policyNo')
}
getReceiptSign(params).then(res => {
if (res.result == '0') {
this.$toast.clear()
window.localStorage.setItem('insurance-policyUrl', res.signUrl)
window.localStorage.setItem('detailJump', '1')
window.localStorage.setItem('contNo', this.OrderInfoDTO.contNo)
window.localStorage.setItem('orderNo', this.OrderInfoDTO.orderNo)
window.localStorage.setItem('orderStatus', this.OrderInfoDTO.orderStatus)
this.$CacheUtils.setLocItem('saleInsuredInfo', JSON.stringify(this.appntDTO))
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/signatureOfElectronic',
forbidSwipeBack: '1',
title: '保险合同签收回执电子确认书签名'
},
routerInfo: {
path: '/sale/signatureOfElectronic'
this.customerMobile = this.appntDTO.mobile
this.encyCustomerMobile = this.customerMobile.replace(/^(\d{3})\d{4}(\d{4})$/, '$1****$2')
this.authCode = null
// eslint-disable-next-line no-unused-vars
return new Promise((resolve, reject) => {
checkPhone(data).then(res => {
if (res.result == '0') {
console.log(res)
this.show = true
} else {
Dialog.confirm({
title: '提示',
message: '抱歉,您预留的手机号非您本人的手机号!',
showCancelButton: false
})
}
})
} else {
this.$toast(res.resultMessage)
})
},
// 获取保单详情
getPolicyDetail() {
let that = this
let data = {
policyNo: window.localStorage.getItem('policyNo')
}
})
getPolicyDetail(data).then(res => {
if (res.result == '0') {
let appntDTO = res.content.appntDTO
let orderInfoDTO = res.content.orderInfoDTO
// 保单信息
if (orderInfoDTO.orderStatus == '0') {
orderInfoDTO.orderStatusText = '未签收'
} else if (orderInfoDTO.orderStatus == '1') {
orderInfoDTO.orderStatusText = '已签收'
} else {
orderInfoDTO.orderStatusText = ''
}
//团险渠道 查看团单号
if (orderInfoDTO.saleChnl === '2' || orderInfoDTO.saleChnl === '团险') {
orderInfoDTO.contNo=orderInfoDTO.grpContNo;
}
// 测试用
// orderInfoDTO.orderStatus = '0'
that.OrderInfoDTO = orderInfoDTO
// 投保人信息
this.filterData(dataDictionary.sex, 'sex', appntDTO)
this.filterData(dataDictionary.isNewPeopleFlag, 'isNewPeopleFlag', appntDTO)
this.filterData(dataDictionary.npType, 'isNewPeopleFlag', appntDTO)
this.filterData(dataDictionary.idType, 'idType', appntDTO)
that.appntDTO = appntDTO
this.$CacheUtils.setLocItem('saleInsuredInfo', JSON.stringify(appntDTO))
// 被保险人信息
res.content.insuredDTOs.map(insured => {
insured.riskDTOLst.map(risk => {
Number(risk.payIntv)
switch (risk.payIntv) {
case -1:
risk.payIntv = '不定期交'
break
case 0:
risk.payIntv = '一次交清'
break
case 1:
risk.payIntv = '月交'
break
case 3:
risk.payIntv = '季交'
break
case 6:
risk.payIntv = '半年交'
break
case 12:
risk.payIntv = '年交'
break
}
if (risk.insuYear == '70') {
risk.insuYear = '至70周岁'
} else if (risk.insuYear == '75') {
risk.insuYear = '至75周岁'
} else if (risk.insuYear == '80') {
risk.insuYear = '至80周岁'
} else if (risk.insuYear == '106') {
risk.insuYear = '终身'
} else {
risk.insuYear = risk.insuYearFlag == 'D' ? `${risk.insuYear}` : `${risk.insuYear}`
}
})
this.filterData(dataDictionary.sex, 'sex', insured)
this.filterData(dataDictionary.isNewPeopleFlag, 'isNewPeopleFlag', insured)
this.filterData(dataDictionary.npType, 'npType', insured)
this.filterData(dataDictionary.idType, 'idType', insured)
this.filterData(dataDictionary.relationToAppnt, 'relation', insured)
insured.bnfDTOs.map(bnf => {
this.filterData(dataDictionary.bnfType, 'bnfType', bnf)
this.filterData(dataDictionary.sex, 'sex', bnf)
this.filterData(dataDictionary.isNewPeopleFlag, 'isNewPeopleFlag', bnf)
this.filterData(dataDictionary.npType, 'npType', bnf)
this.filterData(dataDictionary.idType, 'idType', bnf)
this.filterData(dataDictionary.relationToAppnt, 'relation', bnf)
})
})
that.insuredDTOs = res.content.insuredDTOs
this.list = formatAllRisk(this.insuredDTOs[0].riskDTOLst)
} else {
this.$toast(res.resultMessage)
}
})
},
appCallBack(data) {
if (data.trigger == 'right_button_click') {
console.log(this.$CacheUtils.getLocItem('saleInsuredInfo'))
EWebBridge.webCallAppInJs('bridge', {
flag: 'share',
extra: {
title: '国富人寿保单回执签字',
content: '国富人寿保单回执签收',
url:
location.origin +
'/#/serve/airSign?policyNo=' +
localStorage.policyNo +
'&token=' +
localStorage.token +
'&saleInsuredInfo=' +
encodeURI(this.$CacheUtils.getLocItem('saleInsuredInfo')),
// url: 'http://47.96.143.111/#/proposal/exhibition?proposalNo=' + localStorage.orderNo + '&token=' + localStorage.token,
img: this.$assetsUrl + 'images/logo.png'
}
})
}
},
//根据数据字典 将后端返回的数据渲染到页面中
filterData(dictionary, key, pageData) {
dictionary.forEach(item => {
if (pageData[key] == item.id) {
pageData[key + 'Text'] = item.text //渲染页面使用的字段
}
})
},
// 回执签收
next() {
this.toNextPage()
// let that = this
// if (this.faceAuthCount.appnt < this.smsAuthNum) {
// if (this.appntDTO.idType == '1') {
// //证件类型为身份证时,进行人脸识别
// EWebBridge.webCallAppInJs('face_auth', {
// number: this.appntDTO.idNo, //身份证号码
// name: this.appntDTO.name //姓名
// }).then(data => {
// this.$toast.loading({
// duration: 0, // 持续展示 toast
// forbidClick: true, // 禁用背景点击
// loadingType: 'spinner',
// message: '加载中……'
// })
// this.$toast.clear()
// if (JSON.parse(data).state == '1') {
// this.toNextPage()
// } else {
// that.faceAuthCount.appnt++
// if (that.faceAuthCount.appnt >= this.smsAuthNum) {
// this.realPeopelCheck()
// }
// }
// })
// } else {
// this.toNextPage()
// }
// } else {
// this.realPeopelCheck()
// }
},
toNextPage() {
let params = {
contNo: window.localStorage.getItem('policyNo')
}
getReceiptSign(params).then(res => {
if (res.result == '0') {
this.$toast.clear()
window.localStorage.setItem('insurance-policyUrl', res.signUrl)
window.localStorage.setItem('detailJump', '1')
window.localStorage.setItem('contNo', this.OrderInfoDTO.contNo)
window.localStorage.setItem('orderNo', this.OrderInfoDTO.orderNo)
window.localStorage.setItem('orderStatus', this.OrderInfoDTO.orderStatus)
this.$CacheUtils.setLocItem('saleInsuredInfo', JSON.stringify(this.appntDTO))
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/signatureOfElectronic',
forbidSwipeBack: '1',
title: '保险合同签收回执电子确认书签名'
},
routerInfo: {
path: '/sale/signatureOfElectronic'
}
})
} else {
this.$toast(res.resultMessage)
}
})
}
}
}
}
</script>
<style lang="scss" scoped>
.detail-container {
.van-hairline--top-bottom::after {
border: none;
.detail-container {
.van-hairline--top-bottom::after {
border: none;
}
/deep/ .van-collapse-item__content {
padding-top: 0;
}
/deep/.van-collapse-item__title {
padding-left: 30px;
}
/deep/ .van-cell__value {
text-align: left !important;
}
}
/deep/ .van-collapse-item__content {
padding-top: 0;
}
/deep/.van-collapse-item__title {
padding-left: 30px;
}
/deep/ .van-cell__value {
text-align: left !important;
}
}
</style>