Compare commits

...

122 Commits

Author SHA1 Message Date
liu.xiaofeng@ebiz-digits.com
1a090b7073 修改订单状态58为待支付 2023-11-30 22:11:40 +08:00
liu.xiaofeng@ebiz-digits.com
87fa47d4d8 银行卡签约提示语修改 2023-11-30 16:08:41 +08:00
liu.xiaofeng@ebiz-digits.com
7117a75f68 订单列表点击编辑按钮如果是开门红产品先做银行卡授权校验 2023-11-30 16:08:37 +08:00
liu.xiaofeng@ebiz-digits.com
b1f499ec33 投保须知内容修改 2023-11-30 16:08:21 +08:00
liu.xiaofeng@ebiz-digits.com
d4e8ede6c9 银行卡签约逻辑修改 2023-11-30 16:06:25 +08:00
liu.xiaofeng@ebiz-digits.com
0f8e1da734 银行卡签约逻辑修改1 2023-11-30 16:06:22 +08:00
liu.xiaofeng@ebiz-digits.com
13a28192fe 银行卡签约逻辑修改 2023-11-30 16:06:19 +08:00
liu.xiaofeng@ebiz-digits.com
1497601e0b 核保结果页面增加状态为53的核心批扣展示内容 2023-11-30 16:06:15 +08:00
liu.xiaofeng@ebiz-digits.com
d93a7baddd 保险合同指定生效日说明文件修改内容 2023-11-30 16:06:12 +08:00
liu.xiaofeng@ebiz-digits.com
2ce429bb8e 上传银行卡信息页面弹窗去掉返回按钮 2023-11-30 16:06:09 +08:00
liu.xiaofeng@ebiz-digits.com
d4b0a1b320 银行卡签约修改提示语 2023-11-30 16:05:51 +08:00
liu.xiaofeng@ebiz-digits.com
ee71565425 银行卡签约失败给出签约失败具体提示语 2023-11-30 16:05:46 +08:00
liu.xiaofeng@ebiz-digits.com
9862f67c21 签约字段先后顺序判断 2023-11-30 16:05:42 +08:00
liu.xiaofeng@ebiz-digits.com
03ce9bea5e 签字确认页面去掉支付按钮 2023-11-30 16:05:37 +08:00
liu.xiaofeng@ebiz-digits.com
d0cabb30f7 上传银行卡信息页面点击保存区分开门红产品与普通产品的业务逻辑 2023-11-30 16:05:33 +08:00
liu.xiaofeng@ebiz-digits.com
ba5f2dbe32 上传银行卡信息页面隐藏短信验证码 2023-11-30 16:05:28 +08:00
liu.xiaofeng@ebiz-digits.com
1d578730cb 调整个险渠道电投产品的保单支付流程 2023-11-30 16:05:24 +08:00
liu.xiaofeng@ebiz-digits.com
293066c4ad 支付流程调整—转核心批量扣款 2023-11-30 16:05:19 +08:00
liu.xiaofeng@ebiz-digits.com
92b5cf3224 在“选择产品”页面,点击【开门产品】按钮后选择产品进行试算,在“签名确认”页面展示【指定保单生效日】字段
增加“指定保险合同生效日说明”阅读确认文档
2023-11-30 16:05:13 +08:00
liu.xiaofeng@ebiz-digits.com
2189c0df53 调整选择产品开门红弹窗产品类型内容展示样式居中 2023-11-30 16:05:09 +08:00
liu.xiaofeng@ebiz-digits.com
3a05f63cb6 指定生效日说明文件参数传递修改 2023-11-30 16:05:04 +08:00
liu.xiaofeng@ebiz-digits.com
84ac42765c 指定生效日说明文件参数传递修改 2023-11-30 16:04:59 +08:00
liu.xiaofeng@ebiz-digits.com
4cc7703dc9 调整贵州地图显示页面右下角显示的图标大小 2023-11-30 16:04:43 +08:00
liu.xiaofeng@ebiz-digits.com
fd7bc64fa7 调整地图页面显示的图标大小 2023-11-30 16:04:38 +08:00
liu.xiaofeng@ebiz-digits.com
4a88d16d8d 选择产品页面更换多个图片 贵州地图轮播图页面更换图标 2023-11-30 16:04:35 +08:00
liu.xiaofeng@ebiz-digits.com
49b0f807cb 更换开门红菜单页面背景图 2023-11-30 16:04:32 +08:00
liu.xiaofeng@ebiz-digits.com
9c2440c6bc 开门红业绩查询排名字段调整 2023-11-30 16:04:28 +08:00
liu.xiaofeng@ebiz-digits.com
00459a0f35 投保须知内容修改 2023-11-29 14:31:49 +08:00
liu.xiaofeng@ebiz-digits.com
13acc3a0f5 国富人寿鑫管家B款终身寿险(万能型)产品利益演示页面动态利率按钮调整 2023-11-28 15:30:05 +08:00
liu.xiaofeng@ebiz-digits.com
5493d99c15 建议书保费试算页面鑫管家B款终身寿险(万能型)改动保额不调用试算接口 2023-11-28 15:30:01 +08:00
liu.xiaofeng@ebiz-digits.com
f19f7eb2b6 自动获取试算接口信息并隐藏保费试算页面显示的保额字段 计划书利益演算页面隐藏保额相关字段 2023-11-28 15:29:58 +08:00
liu.xiaofeng@ebiz-digits.com
89bb1b1f40 投保那显示的字段里,也修改一下:单独投保保费为5万元
如果输入关联保单,自动跳为100元
不给更改
2023-11-28 15:29:53 +08:00
liu.xiaofeng@ebiz-digits.com
c2726abf93 鑫管家B款终身寿险(万能型)清空关联的保单时 重置保费默认值1 2023-11-28 15:29:49 +08:00
liu.xiaofeng@ebiz-digits.com
8346e6f284 鑫管家B款终身寿险(万能型)清空关联的保单时 重置保费默认值 2023-11-28 15:29:45 +08:00
liu.xiaofeng@ebiz-digits.com
b2cac7eb1b 单独投保,保费为大于等于50000元 2023-11-28 15:29:41 +08:00
liu.xiaofeng@ebiz-digits.com
4aa877446d 单独投保,保费为大于等于50000元 2023-11-28 15:29:36 +08:00
liu.xiaofeng@ebiz-digits.com
a348d5734a 单独投保,保费为大于等于50000元 2023-11-28 15:29:32 +08:00
liu.xiaofeng@ebiz-digits.com
216923e5c3 国富人寿鑫管家B款终身寿险(万能型)增加抄录 2023-11-28 15:29:26 +08:00
liu.xiaofeng@ebiz-digits.com
ba551a7b59 银保-国富人寿年年丰C款两全保险(分红型)产品定义系统需求增加抄录 2023-11-23 14:31:01 +08:00
liu.xiaofeng@ebiz-digits.com
eaaf8fa485 将被保人文件数组排序 2023-11-23 13:57:56 +08:00
liu.xiaofeng@ebiz-digits.com
a82a7c8d64 添加受益人页面四要素校验通过后再把受益人信息添加刀受益人集合里 2023-11-23 13:57:38 +08:00
liu.xiaofeng@ebiz-digits.com
70d2f6da7f 添加受益人增加四要素校验接口 2023-11-23 13:57:35 +08:00
liu.xiaofeng@ebiz-digits.com
f590880d36 去除debugger 2023-11-14 15:22:48 +08:00
liu.xiaofeng@ebiz-digits.com
3d3a450bbf 鑫享年年C款产品更换投保须知 2023-11-14 15:16:31 +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
46 changed files with 12379 additions and 9532 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,22 @@ export function getUniversalCodeLst(data) {
method: 'post',
data
})
}
}
// 获取柳州分红万能投连型产品编码集合
export function getDoubleRecordProductLst(data) {
return request({
url: getUrl('/sale/product/getDoubleRecordProductLst ', 1),
method: 'post',
data
})
}
// 指定受益人身份四要素
export function checkAppointBnf(data) {
return request({
url: getUrl('/sale/bnfCheck/checkAppointBnf ', 1),
method: 'post',
data
})
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 MiB

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

After

Width:  |  Height:  |  Size: 187 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 MiB

After

Width:  |  Height:  |  Size: 613 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 KiB

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 8.8 KiB

View File

@@ -12,7 +12,17 @@ export default {
* @Date: 2023/7/4
**/
if (endage - 5 < 16) {
return startDate = String(Number(endDate.slice(0,4)) - 5) + endDate.slice(4,11)
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)
}
}
/**
* @Author: LiuXiaoFeng
@@ -23,7 +33,17 @@ export default {
startDate = String(Number(endDate.slice(0,4)) - 10) + endDate.slice(4,11)
startage = utilsAge.getAge(birthday, new Date(startDate))
if(startage >= 16 && startage <= 25){
return startDate
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
}
}
}
/**
@@ -35,7 +55,17 @@ export default {
startDate = String(Number(endDate.slice(0,4)) - 20) + endDate.slice(4,11)
startage = utilsAge.getAge(birthday, new Date(startDate))
if(startage >= 26 && startage <= 45){
return startDate
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
}
}
}
/**
@@ -58,7 +88,17 @@ export default {
* @Date: 2023/7/4
**/
if (startage < 16) {
return endDate = String(Number(startDate.slice(0, 4)) + 5) + startDate.slice(4, 11)
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 {
return endDate = String(Number(startDate.slice(0, 4)) + 5) + startDate.slice(4, 11)
}
}
/**
* @Author: LiuXiaoFeng
@@ -66,7 +106,17 @@ export default {
* @Date: 2023/7/4
**/
else if (startage >= 16 && startage <= 25) {
return endDate = String(Number(startDate.slice(0, 4)) + 10) + startDate.slice(4, 11)
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
@@ -74,7 +124,17 @@ export default {
* @Date: 2023/7/4
**/
else if (startage >= 26 && startage <= 45) {
return endDate = String(Number(startDate.slice(0, 4)) + 20) + startDate.slice(4, 11)
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
@@ -84,5 +144,21 @@ export default {
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

@@ -14,7 +14,7 @@
<th>承保标保</th>
</tr>
<tr v-for="(item, index) in showData.topList" :key="item.code">
<td>{{ index + 1 }}</td>
<td>{{ item.rank }}</td>
<td>{{ item.name }}</td>
<td class="company">{{ item.comName }}</td>
<td>{{ item.ysbb }}</td>
@@ -32,7 +32,7 @@
<th>承保标保</th>
</tr>
<tr v-for="(item, index) in showData.topList" :key="item.code" :class="{ top3: index <= 2 }">
<td>{{ index + 1 }}</td>
<td>{{ item.rank }}</td>
<td>{{ item.name }}</td>
<td class="company">{{ item.comName }}</td>
<td>{{ item.ysbb }}</td>

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

@@ -156,12 +156,12 @@ export default {
height: 15px;
}
.m-tuli {
width: 48px;
height: 36px;
width: 38px;
height: 72px;
}
.m-tubiao {
width: 64px;
height: 32px;
width: 36px;
height: 54px;
}
.minfs {
font-size: 1.6vw !important;

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' && mainRiskCodes[0] != 'GFRS_M0083'">保额(</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' && mainRiskCodes[0] != 'GFRS_M0083'">{{ 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,39 @@ 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 = [
{
label: '低档' + currentInsuredInfo.L,
value: 'L'
},
{
label: '中档' + currentInsuredInfo.M,
value: 'M'
},
{
let radios = []
if(currentInsuredInfo.L){
if(risk.mainRiskCode == 'GFRS_M0083') {
radios.push({
label: '保证' + currentInsuredInfo.L,
value: 'L'
})
} else {
radios.push({
label: '低档' + currentInsuredInfo.L,
value: 'L'
})
}
}
if(currentInsuredInfo.M){
if(risk.mainRiskCode == 'GFRS_M0083') {
radios.push({
label: '演示' + currentInsuredInfo.M,
value: 'M'
})
} else {
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

@@ -46,7 +46,7 @@
<van-field required v-model="appntDTO.mobile" clearable label="投保人手机号" name="投保人手机号" placeholder="请输入"
v-validate="'required|mobileLength11|mobileStartWith1|mobile'" maxlength="11" readonly />
</van-cell-group>
<van-cell-group class="pl20 fs14">
<van-cell-group class="pl20 fs14" v-if="orderInfoDTO.activeType != 'KMH'">
<van-field v-if="orderInfoDTO.validateCustomerFlag !== '0'" v-model="authCode" center clearable label name="短信验证码"
v-validate="'required'" placeholder="请输入短信验证码" maxlength="6">
<van-button slot="button" size="small" type="danger" @click="getCode" :disabled="codeDisabled"
@@ -62,44 +62,6 @@
<van-button type="danger" size="large" @click="next" :disabled="isDisabled" v-no-more-click="1000">下一步</van-button>
</div>
</div>
<!-- <div v-if="radio != '0' && relationToAppnt != '1'">
<van-cell-group class="pl20">
<van-field v-model="bank" label="开户银行" placeholder="请选择" required @click="focus" readonly v-validate="'required'" data-vv-name="开户银行" />
</van-cell-group>
<van-cell-group class="pl20 flex align-items-c">
<van-field
v-model="bankId"
label="银行卡号"
maxlength="19"
placeholder="请输入"
required
v-validate="'required|bankCard'"
clearable
data-vv-name="银行卡号"
/>
<van-button type="danger" size="small" class="bankCard mr10 w110 h20" @click="cardScanning('1')" v-no-more-click="1000">银行卡扫描</van-button>
</van-cell-group>
<van-cell-group class="flex align-items-c">
<van-switch-cell v-model="checked" title="是否自动垫交" active-color="#E9332E" inactive-color="#fff" class="ml15 pr30" />
<van-icon
name="question-o"
class="vanIcon"
@click="
$toast({
message:
'保费自动垫交是当投保人没有按时交纳续期保险费,而保单当时已经具有足够的现金价值时,保险公司以现金价值自动垫交保险费,从而使保单继续有效。相当于投保人向保险公司贷款交纳保费,是保险公司提供给客户的一项选择权益,其目的是为了尽可能地减少客户因非故意的失误导致保单失效,使其利益受损。',
duration: 10000
})
"
/>
</van-cell-group>
<div class="fs12 mt10 ml20 w250 h15">
<span>温馨提示该账户将用于首期续期保费缴费</span>
</div>
<div class="bg-white bottom-btn">
<van-button type="danger" size="large" @click="next" :disabled="isDisabled" v-no-more-click="1000">下一步</van-button>
</div>
</div> -->
</div>
<!-- 银行卡扫描 -->
<BankCardScan :scanShow="isScan" :clear="isClear" @getScanInfo="getBankCardInfo"></BankCardScan>
@@ -123,12 +85,18 @@
</template>
</van-field>
</van-dialog>
<van-dialog class="bankCardContract" v-model="bankCardContractShow" title="提示" show-cancel-button @confirm="authConfirm" @cancel="checkModelCancel">
<p class="p10 fs14">尊敬的客户您好您的银行卡账户未进行续期签约为确保是您本人操作短信验证码已发送至您的手机号{{ appntDTO.mobile }}请您输入验证码完成签约流程~</p>
<van-cell-group class="flex align-items-c" style="margin: 10px;">
<van-field maxlength="6" placeholder="请输入短信验证码" v-model="verfyCode" clearable label-width="0" />
</van-cell-group>
</van-dialog>
</div>
</template>
<script>
import { Cell, CellGroup, Field, RadioGroup, Radio, Popup, List, Switch, Toast, SwitchCell, Icon, Area,Dialog } from 'vant'
import { saveInformation, getOrderDetail, checkCard, getAuthCode, autchCodeCheck } from '@/api/ebiz/sale/sale'
import { saveInformation, getOrderDetail, checkCard, getAuthCode, autchCodeCheck, getBankCardSignState, signConfirm } from '@/api/ebiz/sale/sale'
import utilsAge from '@/assets/js/utils/age'
import BankCardScan from '@/components/ebiz/sale/BankCardScan'
import IndexBar from '@/components/ebiz/sale/IndexBar'
@@ -202,6 +170,9 @@ export default {
areaStr: '',
orderInfoDTO: '',
renovate:'',
bankCardContractShow: false,
rdSeq:'',
verfyCode: '',
}
},
methods: {
@@ -574,22 +545,29 @@ export default {
}
}
}
if (this.orderInfoDTO.validateCustomerFlag !== '0') {
data.orderDTO.smsCodeDTO = { smsId: this.sessionId, code: this.authCode }
if(this.orderInfoDTO.activeType != 'KMH') {
if (this.orderInfoDTO.validateCustomerFlag !== '0') {
data.orderDTO.smsCodeDTO = { smsId: this.sessionId, code: this.authCode }
}
}
saveInformation(data).then(res => {
if (res.result == '0') {
this.orderInfoDTO.validateCustomerFlag = '0';
window.localStorage.setItem('accountInformationRadio', this.radio)
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/attachmentManagement?orderNo=' + this.$route.query.orderNo
},
routerInfo: {
path: '/sale/attachmentManagement?orderNo=' + this.$route.query.orderNo
}
})
if(this.orderInfoDTO.activeType != 'KMH') {
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/attachmentManagement?orderNo=' + this.$route.query.orderNo
},
routerInfo: {
path: '/sale/attachmentManagement?orderNo=' + this.$route.query.orderNo
}
})
} else {
this.getBankCardSignState()
}
} else {
this.$toast(res.resultMessage)
}
@@ -598,6 +576,162 @@ export default {
this.$toast(this.errors.all()[0])
}
},
getBankCardSignState(){
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……',
})
let params = {
orderNo: this.$route.query.orderNo
}
getBankCardSignState(params).then(res => {
this.$toast.clear()
let checkRes = res.content
if (checkRes.result == '0') {
this.$toast.clear()
if (checkRes.needSign == '0' || checkRes.needSign == null) {
if(checkRes.signState == '0' || checkRes.signState == '2'){
// 不需签约或已签约,不做处理
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/attachmentManagement?orderNo=' + this.$route.query.orderNo
},
routerInfo: {
path: '/sale/attachmentManagement?orderNo=' + this.$route.query.orderNo
}
})
}
}
else if (checkRes.needSign == '3') {
if(checkRes.signState == '0') {
this.$toast('该银行卡金掌桂暂不支持续期签约!')
}
}
else if (checkRes.needSign == '1'){
if (checkRes.signConfirmType == '2'){
this.bankCardContractShow = true
this.rdSeq = checkRes.rdSeq
}else if (checkRes.signConfirmType == '3'){
Dialog.alert({
message: '银行已发送短信至手机号'+ this.appntDTO.mobile +',按照短信提示完成短信回复签约,再次通过金掌桂完成后续流程。',
confirmButtonColor: '#ff5e50',
}).then(() => {})
} else if(checkRes.signConfirmType == '4') {
// this.$toast('招商银行卡请至官微续期签约~')
Dialog.alert({
message: '招商银行卡请至官微续期签约~',
confirmButtonColor: '#ff5e50',
}).then(() => {})
} else if(checkRes.signConfirmType == '5') {
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/attachmentManagement?orderNo=' + this.$route.query.orderNo
},
routerInfo: {
path: '/sale/attachmentManagement?orderNo=' + this.$route.query.orderNo
}
})
} else if (checkRes.signState == '3') {
// 签约失败
const info = '您当前银行卡账户续期签约失败,\n原因' + checkRes.resultMessage
Dialog.confirm({
message: info,
className: 'reConfirm leftConfirm',
cancelButtonText: '返回',
cancelButtonColor: '#ff5e50',
showCancelButton: false,
confirmButtonText: '修改银行卡信息',
confirmButtonColor: '#ff5e50',
allowHtml: true
}).then(() => {}).catch(() => {});
} else if (checkRes.signState == '4') {
const info = '银行卡已在签约中,请稍后~'
Dialog.alert({
message: info,
className: 'reConfirm leftConfirm',
confirmButtonColor: '#ff5e50',
allowHtml: true
}).then(() => {}).catch(() => {})
// }
}
}
else {
this.$toast(checkRes.resultMessage)
}
}else{
const info = '您当前银行卡账户续期签约失败,\n原因' + checkRes.resultMessage
Dialog.confirm({
message: info,
className: 'reConfirm leftConfirm',
cancelButtonText: '返回',
cancelButtonColor: '#ff5e50',
showCancelButton: false,
confirmButtonText: '修改银行卡信息',
confirmButtonColor: '#ff5e50',
allowHtml: true
}).then(() => {}).catch(() => { });
}
})
},
authConfirm(){
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
let data = {
rdSeq:this.rdSeq,
verfyCode:this.verfyCode,
businessNo:this.$route.query.orderNo
}
if (!this.verfyCode || this.verfyCode == '') {
this.bankCardContractShow = true
return this.$toast('请输入短信验证码')
}
if (this.verfyCode.length !== 6) {
this.bankCardContractShow = true
return this.$toast('验证码格式错误')
}
signConfirm(data).then(res => {
this.verfyCode = ''
this.bankCardContractShow = false
if (res.content.result == '0') {
this.$toast.clear()
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/attachmentManagement?orderNo=' + this.$route.query.orderNo
},
routerInfo: {
path: '/sale/attachmentManagement?orderNo=' + this.$route.query.orderNo
}
})
}else{
this.$toast.clear()
// 签约失败
const info = '您当前银行卡账户续期签约失败,\n原因' + res.content.resultMessage
Dialog.confirm({
message: info,
className: 'reConfirm leftConfirm',
cancelButtonText: '返回',
cancelButtonColor: '#ff5e50',
showCancelButton: false,
confirmButtonText: '修改银行卡信息',
confirmButtonColor: '#ff5e50',
allowHtml: true
}).then(() => {})
}
})
},
checkModelCancel() {
this.bankCardContractShow = false
this.verfyCode = ''
},
handleRenew(v) {
//大于65不能续保
if (this.productNo === 'GFRS_M0016' && this.age >= 65) {
@@ -850,5 +984,17 @@ export default {
color: #fff;
}
}
.bankCardContract{
/deep/ .van-dialog__cancel{
background: #fff;
color: #323233;
}
/deep/ .van-dialog__confirm{
background: #fff;
color: red;
}
/deep/ .van-dialog__header{
color: red;
}
}
</style>

View File

@@ -250,7 +250,7 @@ import idNoCheck from '@/assets/js/utils/idNoCheck'
import { idToData } from './js/verification'
import { selectComp } from './js/methods'
import getAreaName from '@/assets/js/utils/getAreaNameForSale'
import { getOrderDetail } from '@/api/ebiz/sale/sale'
import { getOrderDetail, checkAppointBnf } from '@/api/ebiz/sale/sale'
let relationToInsured = [
{ id: 2, text: '配偶' },
@@ -1114,21 +1114,51 @@ export default {
}
}
beneficiaries.push(this.userInfo)
// 保存 新增的受益人信息 以及页面跳转字段
localStorage.beneficiaryInfo = JSON.stringify(beneficiaries)
localStorage.fromAddBeneficiaryInfo = true
if (this.userInfo.asAppntAddress == true) {
localStorage.applicant = '1'
let thisbnfDTOs = []
thisbnfDTOs.push(this.userInfo)
let params = {
orderType: 'BNF_ORDER',
orderDTO: {
productDTO: null,
orderInfoDTO: {
bnfFlag: this.bnfFlag,
orderNo: this.$route.query.orderNo
},
appntDTO: {},
insuredDTOs: [
{
insuredId: JSON.parse(this.$CacheUtils.getLocItem('saleInsuredPersonInfo')).insuredId,
bnfDTOs: thisbnfDTOs
}
],
paymentDTO: {},
orderAccountDTO: {},
channelDTO: null,
orderExpandDTO: null,
thirdOrderDTO: null
}
}
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/beneficiary?orderNo=' + this.$route.query.orderNo,
needRefresh: '1'
},
routerInfo: {
path: '/sale/beneficiary?orderNo=' + this.$route.query.orderNo
checkAppointBnf(params).then(res=>{
if(res.result == '0'){
beneficiaries.push(this.userInfo)
// 保存 新增的受益人信息 以及页面跳转字段
localStorage.beneficiaryInfo = JSON.stringify(beneficiaries)
localStorage.fromAddBeneficiaryInfo = true
if (this.userInfo.asAppntAddress == true) {
localStorage.applicant = '1'
}
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/beneficiary?orderNo=' + this.$route.query.orderNo,
needRefresh: '1'
},
routerInfo: {
path: '/sale/beneficiary?orderNo=' + this.$route.query.orderNo
}
})
} else {
this.$toast(res.resultMessage)
}
})
} else {

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,787 @@
<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>
<h2 style="text-align:center" class="mb20">转账授权书</h2>
<p class="mb20">本人授权国富人寿保险股份有限公司以下简称国富人寿及本人指定之银行账户微信账户按下述授权内容进行保险费的划扣及相关权益的给付</p>
<p class="mb20" style="font-weight: bold;">银行卡转账授权声明</p>
<p class="mb20">1本人同意委托国富人寿从本人的授权账户中扣取本保险合同所需缴纳的保险费并保证授权账户中有足够的金额支付应交保险费</p>
<p class="mb20">
2本人确认授权的银行账户所有人为投保人本人账户的开户银行户名和账号均真实有效续期交费账户与首期保费交纳账户为同一账户
本人所提供的授权账户必须是本人的个人结算账户借记卡个人活期结算存折
</p>
<p class="mb20">
3本人同意若因账户挂失账户冻结账户余额不足或其
他非银行原因造成转账不成功致使产生保险合同终止的任何后果或投资账户的费用损失因此引起的责任概由本人承担
</p>
<p class="mb20">4如本人在同一指定账户内同时授权两张或两张以上保险单中的保险费或其他自动转账业务时本人同意依照国富人寿规定的转账顺序转账</p>
<p class="mb20">5本人投保后若办理退保或退费业务同意国富人寿将应退金额通过银行划转入该账户</p>
<p class="mb20">
6本人因故结清账户会重新开立账户并及时通过国富人寿进行变更如本人欲终止本授权应立即向国富人寿递交终止的书面申请由国富人寿知会银行停止转账若因本人未及时办理账户变更手续而导致退保给付金无法按时给付则同意国富人寿按退保申请日的给付金额支付
</p>
<p class="mb20">7对于一年期以上的产品国富人寿可在保险费约定支付日之前及时通知本人交纳续期保险费</p>
<p class="mb20" style="font-weight: bold;">微信转账授权声明</p>
<p class="mb20">1首期保险费使用微信支付的本人同意国富人寿通过本人投保时留存的银行账户进行续期保险费转账扣除</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 -->
@@ -137,7 +137,7 @@
<script>
import { Search, Tabs, Tab, List, Tag, Sticky, Toast, Dialog, Field } from 'vant'
import { orderList, deleteOrderInfo, getAuthCode, revokeOrder } from '@/api/ebiz/sale/sale'
import { orderList, deleteOrderInfo, getAuthCode, revokeOrder, getBankCardSignState } 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' //根据数据字典找到用户等级
@@ -447,7 +447,7 @@ export default {
this.loadMore()
},
//投保单详情
goDetail(order) {
async goDetail(order) {
let thisToken = this.$CacheUtils.getLocItem('token')
window.localStorage.clear()
this.$CacheUtils.setLocItem('token', thisToken)
@@ -475,7 +475,35 @@ export default {
}else if(orderStatus == '37'){//受益人保存成功, 跳到告知信息--
url = '/sale/NotifyingMessage?edit=1&orderNo='+orderNo
}else if(orderStatus == '38'){ //账户信息保存成功, 跳到附件管理--
if(order.orderInfoDTO.activeType == 'KMH') {
let params = {
orderNo: order.orderInfoDTO.orderNo
}
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……',
})
await getBankCardSignState(params).then(res => {
this.$toast.clear()
if(res.result == 0) {
if(res.content.needSign == '0' || res.content.needSign == null) {
if(res.content.signState == '0' || res.content.signState == '2') {
url = '/sale/AttachmentManagement?edit=1&orderNo='+orderNo
} else {
url = '/sale/AccountInformation?edit=1&orderNo='+orderNo
}
} else {
url = '/sale/AccountInformation?edit=1&orderNo='+orderNo
}
} else {
this.$toast(res.resultMessage)
}
})
} else {
url = '/sale/AttachmentManagement?edit=1&orderNo='+orderNo
}
}else if(orderStatus == '39'){ //险种信息保存成功, 跳到已选产品列表
url = '/common/selectedProduct?edit=1&orderNo='+orderNo
}else if(orderStatus == '40'){//告知信息保存成功, 跳到风险测评--

View File

@@ -31,7 +31,7 @@
<!-- </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>
<p style="text-align: center;">您可识别下方官方微信"国富人寿"二维码关注公众查询您的保单信息和服务</p>
<div style="padding: 20px;">
<img :src="erweima" style="width: 60vw;"/>
</div>

View File

@@ -22,6 +22,10 @@
<img :src="srcPending" class="mb40 mt20" />
<p class="title">核心系统繁忙请稍后重试</p>
</div>
<div v-else-if="uwResult == '53'">
<img :src="srcPending" class="mb40 mt20" />
<p class="title">核心批扣</p>
</div>
<div v-else>
<img :src="srcPending" class="mb40 mt20" />
<p class="title">系统繁忙请稍后重试</p>

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>
@@ -18,6 +18,7 @@
<van-cell title="投保单号" :value="orderInfo.orderNo" @click="toTest"></van-cell>
<van-cell title="投保日期" :value="date" />
<van-cell title="保费合计(元)" :value="orderInfo.orderAmount == undefined ? '' : orderInfo.orderAmount | moneyFormat" />
<van-cell v-if="cvalidateStr" title="指定保单生效日" :value="cvalidateStr" />
</van-cell-group>
<div v-if="!isWeixin">
<!-- 不再微信 -->
@@ -47,9 +48,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 +90,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 +135,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 +184,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 +217,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>
@@ -190,19 +235,29 @@
</div>
</div>
<div v-if="!isWeixin">
<div v-if="changeCard">
<div v-if="changeCard && activeType != 'KMH'">
<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 +265,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,16 +287,18 @@
}}</van-button>
</van-cell-group>
</van-dialog>
<van-dialog v-model="thisnewpeopledialogshow" title="提示" confirmButtonText="确定">
<div style="padding: 20px;font-size: 14px;padding-top: 0px;">
<div style="line-height: 25px;letter-spacing: 1px;">尊敬的客户您好</div>
<div style="line-height: 25px;letter-spacing: 1px;text-indent: 2em;">感谢您投保我公司爱心保/安心保产品在本保险合同生效后被保险人将获得一份专属的健康管理服务详情请登录公司官方微信公众号国富人寿保险>发现国富>新市民专区 查询或拨打公司客服热线400-694-6688咨询本服务为无偿提供</div>
</div>
</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,
@@ -259,7 +322,6 @@ export default {
data() {
let isWeixin = this.$utils.device().isWeixin //判断环境
return {
thisnewpeopledialogshow: false,
isInsuYearFlag: false, //是否为长期险
isVideo: false, //是否已阅读视频
isVideoNext: false,
@@ -269,7 +331,7 @@ export default {
timeId: null, // 计时器ID
countDown: 60, // 倒计时
authCode: '', // 验证码
smsAuthNum: 2,
smsAuthNum: 3,
operaFlag: null,
encyCustomerMobile: null,
sid: null,
@@ -347,7 +409,9 @@ export default {
appntRidFlag: null,
insureRidFlag: null
},
showAgentView:0
showAgentView:0,
cvalidateStr: '',
activeType: ''
}
},
methods: {
@@ -465,55 +529,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({
@@ -1072,7 +1138,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
}
@@ -1353,19 +1418,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
@@ -1383,6 +1435,14 @@ export default {
return new Promise((resolve) => {
getOrderDetail(data).then((res) => {
if (res.result == '0') {
if(res.orderDTO.orderInfoDTO.activeType == 'KMH') {
this.cvalidateStr = res.orderDTO.orderInfoDTO.cvaliDate
this.activeType = res.orderDTO.orderInfoDTO.activeType
if(new Date() > new Date(res.orderDTO.orderInfoDTO.cvaliDate)) {
this.cvalidateStr = ''
}
}
if (res.orderDTO && res.orderDTO.prtType) {
localStorage.setItem('readingProtocolType', res.orderDTO.prtType)
}
@@ -1484,28 +1544,28 @@ export default {
this.saleInsuredInfo = JSON.parse(this.$CacheUtils.getLocItem('saleInsuredInfo'))
this.relationToAppnt = this.saleInsuredPersonInfo.relationToAppnt //将缓存中的与被保险人关系赋值给页面
that.recmd = res.orderDTO.recmdDTO
that.orderInfo = res.orderDTO.orderInfoDTO
that.insured = res.orderDTO.insuredDTOs
// 初始化RID状态
this.realPeopleRidInfo.appntRidFlag = res.orderDTO.appntDTO.ridStatus
this.realPeopleRidInfo.insureRidFlag = res.orderDTO.insuredDTOs[0].ridStatus
//存code区分万能型产品
let productCode, riskName
let isDoubleMailRisk = that.orderInfo.isDoubleMailRisk
if (isDoubleMailRisk == '1') {
productCode = 'GFRS_M0017'
riskName = res.orderDTO.insuredDTOs[0].riskDTOLst[1].riskName
} else {
productCode = that.insured[0].riskDTOLst[0].mainRiskCode
riskName = res.orderDTO.insuredDTOs[0].riskDTOLst[0].riskName
}
if (that.orderInfo && that.orderInfo.activeType) {
that.$CacheUtils.setLocItem('activeType',that.orderInfo.activeType)
}
localStorage.setItem('productCode', productCode)
this.riskName = riskName
localStorage.setItem('riskName', riskName)
that.recmd = res.orderDTO.recmdDTO
that.orderInfo = res.orderDTO.orderInfoDTO
that.insured = res.orderDTO.insuredDTOs
// 初始化RID状态
this.realPeopleRidInfo.appntRidFlag = res.orderDTO.appntDTO.ridStatus
this.realPeopleRidInfo.insureRidFlag = res.orderDTO.insuredDTOs[0].ridStatus
//存code区分万能型产品
let productCode, riskName
let isDoubleMailRisk = that.orderInfo.isDoubleMailRisk
if (isDoubleMailRisk == '1') {
productCode = 'GFRS_M0017'
riskName = res.orderDTO.insuredDTOs[0].riskDTOLst[1].riskName
} else {
productCode = that.insured[0].riskDTOLst[0].mainRiskCode
riskName = res.orderDTO.insuredDTOs[0].riskDTOLst[0].riskName
}
if (that.orderInfo && that.orderInfo.activeType) {
that.$CacheUtils.setLocItem('activeType',that.orderInfo.activeType)
}
localStorage.setItem('productCode', productCode)
this.riskName = riskName
localStorage.setItem('riskName', riskName)
if (this.relationToAppnt != '1') {
this.activeNames.push(res.orderDTO.insuredDTOs.length + 1)
@@ -1537,10 +1597,14 @@ export default {
}
})
if (!that.changeCard) {
//将投保人数组排序
//将投保人文件数组排序
that.appntSign.sort(function (a, b) {
return a.key - b.key
})
//将被保人文件数组排序
that.insuredSign.sort(function (a, b) {
return a.key - b.key
})
//获取投保和被保险人电子投保单签字状态
console.log(that.appntSign,'that.appntSign')
that.appntSign.map((item,index) => {
@@ -1576,21 +1640,8 @@ export default {
}
})
}
if(res.orderDTO.orderInfoDTO.productCode == 'GFRS_M0076' || res.orderDTO.orderInfoDTO.productCode == 'GFRS_M0077') {
that.thisnewpeopledialogshow = true
}
resolve('success')
} else {
Dialog.confirm({
title: '提示',
message: res.resultMessage,
showCancelButton: false
}).then(() => {
this.$router.push({
path:'/sale/list'
})
})
}
}
})
})
},
@@ -1604,7 +1655,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

@@ -18,8 +18,8 @@
包含当日之后保险合同于国富人寿收取首期保险费并签发保险单次日零时起生效 -->
如您于<span>{{ cvalidateStrOneDayOff }}</span>(包含当日前申请投保且支付保险费经国富人寿保险股份有限公司以下简称国富人寿同意并签发保单
签发保单日在<span>{{ cvalidateStrOneDayOff }}</span>及以前保险合同自{{ cvalidateStrToFormat }}零时起生效签发保单日在{{ cvalidateStrToFormat }}及以后
保险合同自签发保险单次日零时起生效
<span>{{ cvalidateStrOneDayOff }}</span>(包含当日前签发保单保险合同自{{ cvalidateStrToFormat }}零时起生效{{ cvalidateStrToFormat }}(包含当日后签发保单
保险合同自签发保险单次日零时起生效国富人寿将通过您投保时预留的银行账户转账扣除保险费为顺利承保请您充足银行账户余额
</p>
<p style="text-indent:2rem;">
@@ -134,7 +134,7 @@ export default {
methods: {
async init(){
this.isFrom = window.localStorage.isFrom
const orderNo = this.$CacheUtils.getLocItem('orderNo')
const orderNo = this.$route.query.orderNo
let detailPromise = this.isFrom === 'proposal' ? localStorage.proposalMedical : await getOrderDetail({ orderNo })
if(this.isFrom != 'proposal'){
//活动生效日期
@@ -202,13 +202,13 @@ export default {
orderType: 'SIGN_ORDER',
orderDTO: {
orderInfoDTO: {
orderNo: window.localStorage.getItem('orderNo')
orderNo: that.$route.query.orderNo
},
ebizSignDTOS: [
{
signOrRead: 'read',
signId: that.appntSign.signId,
orderNo: window.localStorage.getItem('orderNo'),
orderNo: that.$route.query.orderNo,
documentCode: that.appntSign.documentCode,
documentStatus: '1',
documentType: that.appntSign.documentType,
@@ -226,10 +226,10 @@ export default {
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/' + url
url: location.origin + '/#/sale/' + url + '?orderNo=' + that.$route.query.orderNo,
},
routerInfo: {
path: '/sale/' + url
path: '/sale/' + url + '?orderNo=' + that.$route.query.orderNo,
}
})
} else {
@@ -254,13 +254,13 @@ export default {
orderType: 'SIGN_ORDER',
orderDTO: {
orderInfoDTO: {
orderNo: window.localStorage.getItem('orderNo')
orderNo: that.$route.query.orderNo
},
ebizSignDTOS: [
{
signOrRead: 'read',
signId: that.insuredSign.signId,
orderNo: window.localStorage.getItem('orderNo'),
orderNo: that.$route.query.orderNo,
documentCode: that.insuredSign.documentCode,
documentStatus: '1',
documentType: that.insuredSign.documentType,
@@ -276,10 +276,10 @@ export default {
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/SignatureOfElectronic'
url: location.origin + '/#/sale/SignatureOfElectronic' + '?orderNo=' + that.$route.query.orderNo,
},
routerInfo: {
path: '/sale/SignatureOfElectronic'
path: '/sale/SignatureOfElectronic' + '?orderNo=' + that.$route.query.orderNo,
}
})
} else {
@@ -308,13 +308,13 @@ export default {
orderType: 'SIGN_ORDER',
orderDTO: {
orderInfoDTO: {
orderNo: window.localStorage.getItem('orderNo')
orderNo: that.$route.query.orderNo
},
ebizSignDTOS: [
{
signOrRead: 'read',
signId: that.appntSign.signId,
orderNo: window.localStorage.getItem('orderNo'),
orderNo: that.$route.query.orderNo,
documentCode: that.appntSign.documentCode,
documentStatus: '1',
documentType: that.appntSign.documentType,
@@ -331,11 +331,11 @@ export default {
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/' + url,
url: location.origin + '/#/sale/' + url + '?orderNo=' + that.$route.query.orderNo,
forbidSwipeBack: '1'
},
routerInfo: {
path: '/sale/' + url
path: '/sale/' + url + '?orderNo=' + that.$route.query.orderNo
}
})
} else {
@@ -354,13 +354,13 @@ export default {
orderType: 'SIGN_ORDER',
orderDTO: {
orderInfoDTO: {
orderNo: window.localStorage.getItem('orderNo')
orderNo: that.$route.query.orderNo
},
ebizSignDTOS: [
{
signOrRead: 'read',
signId: that.insuredSign.signId,
orderNo: window.localStorage.getItem('orderNo'),
orderNo: that.$route.query.orderNo,
documentCode: that.insuredSign.documentCode,
documentStatus: '1',
documentType: that.insuredSign.documentType,
@@ -376,11 +376,11 @@ export default {
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/SignatureOfElectronic',
url: location.origin + '/#/sale/SignatureOfElectronic' + '?orderNo=' + that.$route.query.orderNo,
forbidSwipeBack: '1'
},
routerInfo: {
path: '/sale/SignatureOfElectronic'
path: '/sale/SignatureOfElectronic' + '?orderNo=' + that.$route.query.orderNo,
}
})
} else {

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>