Compare commits

...

152 Commits

Author SHA1 Message Date
liu.xiaofeng@ebiz-digits.com
bca8d1a838 问题件去掉银行卡照片 2024-01-12 21:05:52 +08:00
liu.xiaofeng@ebiz-digits.com
a24683ee30 两款短期险调整保单形式 2024-01-12 13:17:21 +08:00
liu.xiaofeng@ebiz-digits.com
f85d50a1d4 暂时去掉调用保存接口 2024-01-12 13:16:53 +08:00
liu.xiaofeng@ebiz-digits.com
b440bdd714 暂时去掉调用保存接口 2024-01-12 13:16:49 +08:00
liu.xiaofeng@ebiz-digits.com
3780cb490b 暂时去掉调用保存接口 2024-01-12 13:16:46 +08:00
liu.xiaofeng@ebiz-digits.com
008634fdd2 在金掌柜附件管理页面,取消所有渠道“银行卡影像上传”功能,且银行卡影像不再传核心。 2024-01-12 13:16:42 +08:00
liu.xiaofeng@ebiz-digits.com
b813806942 在“投保人信息录入”页面,删除现有的【保单形式】字段及选项
点击【下一步】按钮将不在进行【保单形式】是否选择的判断
在现有“选择产品(已选择)”页面,增加【保单形式】字段及选项
2024-01-12 13:16:38 +08:00
liu.xiaofeng@ebiz-digits.com
d881801291 GBC富安一生产品利益展示字段加单位 2024-01-12 13:16:28 +08:00
liu.xiaofeng@ebiz-digits.com
4d5da22dd1 首页去掉下拉刷新 2024-01-12 13:16:20 +08:00
liu.xiaofeng@ebiz-digits.com
9b9fb8fcf3 首页怎么判断只有登录的时候 调取项目列表接口 2024-01-12 13:16:16 +08:00
liu.xiaofeng@ebiz-digits.com
d2b44c90ea 项目详情和客户编辑接口对接 2024-01-12 13:16:12 +08:00
liu.xiaofeng@ebiz-digits.com
de106a4004 首页小组编码字段修改 电投投保人页面保存接口入参增加teamCode 2024-01-12 13:16:09 +08:00
liu.xiaofeng@ebiz-digits.com
a69c9a74ab 编辑客户信息页面基本功能编写 2024-01-12 13:16:05 +08:00
liu.xiaofeng@ebiz-digits.com
e2fd6c1190 首页选择项目绑定的项目改为绑定小组 2024-01-12 13:16:01 +08:00
liu.xiaofeng@ebiz-digits.com
8f9679d794 数据看板页面以及产品列表页面和编辑客户信息页面基础代码编写 2024-01-12 13:15:58 +08:00
liu.xiaofeng@ebiz-digits.com
05aad85b7f 投保人页面的项目信息如果有问题的话请求接口获取详细信息 2024-01-12 13:15:54 +08:00
liu.xiaofeng@ebiz-digits.com
dbae0c1e1d 订单详情的部门/科室字段增加判断动态控制展示隐藏 2024-01-12 13:15:50 +08:00
liu.xiaofeng@ebiz-digits.com
cee1899102 订单详情的部门/科室字段对接 2024-01-12 13:15:47 +08:00
liu.xiaofeng@ebiz-digits.com
9c1b4ea7fb 订单详情的录单人工号和出单人工号字段对接 2024-01-12 13:15:43 +08:00
liu.xiaofeng@ebiz-digits.com
713153b144 投保单详情增加项目信息字段展示内容 2024-01-12 13:15:39 +08:00
liu.xiaofeng@ebiz-digits.com
e7f3af42dc 建议书列表点击新增和编辑功能存储branchType字段用于显示GBC的项目信息 2024-01-12 13:15:35 +08:00
liu.xiaofeng@ebiz-digits.com
306ba459de 订单列表点击编辑功能存储branchType字段用于显示GBC的项目信息 2024-01-12 13:15:31 +08:00
liu.xiaofeng@ebiz-digits.com
ad9097c0e8 订单详情添加项目信息模块 2024-01-12 13:15:26 +08:00
liu.xiaofeng@ebiz-digits.com
20b39a303b 项目详情数据看板上半部分基础代码编辑 2024-01-12 13:15:21 +08:00
liu.xiaofeng@ebiz-digits.com
9225f5726a 首页展示的项目列表数据后面增加显示小组名称 2024-01-12 13:15:16 +08:00
liu.xiaofeng@ebiz-digits.com
d2eede460d GBC项目列表页面基础功能开发 组件编写 客户列表页面基础功能开发 组件编写 2024-01-12 13:15:11 +08:00
liu.xiaofeng@ebiz-digits.com
1786ebdce3 订单列表页面点击新增保留本地存储的branchType字段 2024-01-12 13:15:05 +08:00
liu.xiaofeng@ebiz-digits.com
f437bbcf63 数据存储由isFrom修改为branchType 2024-01-12 13:15:02 +08:00
liu.xiaofeng@ebiz-digits.com
48f678094e 首页增加方法判断当前是否是GBC渠道 2024-01-12 13:14:57 +08:00
liu.xiaofeng@ebiz-digits.com
7a44d76eeb 修改订单列表点击新增订单方法逻辑 2024-01-12 13:14:41 +08:00
liu.xiaofeng@ebiz-digits.com
dfd7e9d520 isFrom 由sessionstorage 改为localStorage 2024-01-12 13:14:36 +08:00
liu.xiaofeng@ebiz-digits.com
3690ee47ae GBC页面样式调整功能联调 2024-01-12 13:14:31 +08:00
liu.xiaofeng@ebiz-digits.com
33f725eda9 投保人页面获取代理人渠道信息 2024-01-12 13:14:26 +08:00
liu.xiaofeng@ebiz-digits.com
8869c183fd GBC功能开发 2024-01-12 13:14:22 +08:00
liu.xiaofeng@ebiz-digits.com
4035455816 首页样式修改 2024-01-12 13:14:16 +08:00
liu.xiaofeng@ebiz-digits.com
09d4326ee4 首页调用获取代理人项目列表接口 2024-01-12 13:14:12 +08:00
liu.xiaofeng@ebiz-digits.com
04c1a9f7b7 新增查询登录人所属项目列表接口并调整首页代码逻辑 2024-01-12 13:14:08 +08:00
liu.xiaofeng@ebiz-digits.com
c055a9ecbb GBC首页页面基础代码编写 2024-01-12 13:14:04 +08:00
liu.xiaofeng@ebiz-digits.com
1de8b046b3 GBC新增首页路由和文件 2024-01-12 13:11:09 +08:00
liu.xiaofeng@ebiz-digits.com
181b7c017e 全局替换标保为期交 2024-01-08 21:34:50 +08:00
liu.xiaofeng@ebiz-digits.com
3cd271e952 接口加密 2024-01-05 21:37:42 +08:00
liu.xiaofeng@ebiz-digits.com
c240263c6d 补充校验健康险保单费用落地管控规则的申请 2024-01-05 21:23:32 +08:00
liu.xiaofeng@ebiz-digits.com
2e9a15222e 卡单接口对接 2024-01-05 21:23:09 +08:00
liu.xiaofeng@ebiz-digits.com
6d513d12d8 隐藏排名人力模块数据 2024-01-03 15:23:36 +08:00
liu.xiaofeng@ebiz-digits.com
aae3993f82 排名页面标保改为期交 2024-01-03 09:58:08 +08:00
liu.xiaofeng@ebiz-digits.com
f4a5c1fc48 证件起始日期自动计算修改 2023-12-29 14:41:52 +08:00
liu.xiaofeng@ebiz-digits.com
4a9535c31b 保费试算选择投保人附加险试算参数投保人年龄获取修改 2023-12-28 13:17:35 +08:00
liu.xiaofeng@ebiz-digits.com
24b482d2ee 鑫管家B款产品 利益演示档位显示文字调整 2023-12-27 13:57:14 +08:00
liu.xiaofeng@ebiz-digits.com
1731646a29 被保人证件类型选择户口本时起始截止日期自动计算修改 2023-12-23 22:18:37 +08:00
liu.xiaofeng@ebiz-digits.com
ebc791e9e3 被保人证件类型选择户口本时起始截止日期自动计算修改 2023-12-23 22:09:54 +08:00
liu.xiaofeng@ebiz-digits.com
41395776d4 中介渠道鑫管家B款产品保费输入限制调整 2023-12-22 21:28:07 +08:00
liu.xiaofeng@ebiz-digits.com
97c3f943d7 中介渠道鑫管家B款产品试算页面逻辑处理以及建议书利益演算隐藏保额 2023-12-22 21:28:01 +08:00
liu.xiaofeng@ebiz-digits.com
42168ab7cd 国富人寿鑫管家B款终身寿险(万能型)增加抄录 2023-12-22 21:27:57 +08:00
liu.xiaofeng@ebiz-digits.com
7e85f5ad00 独立代理人渠道首页增加渠道逻辑判断展示内容 2023-12-22 10:24:13 +08:00
liu.xiaofeng@ebiz-digits.com
777eff7f3c 一月业绩查询标题标保修改为期交 2023-12-14 17:44:20 +08:00
liu.xiaofeng@ebiz-digits.com
fd47414a0a 一月业绩查询【标保】修改为【期交】 2023-12-14 17:44:16 +08:00
liu.xiaofeng@ebiz-digits.com
abf8969c76 【标保】修改为【期交】 2023-12-14 17:44:13 +08:00
liu.xiaofeng@ebiz-digits.com
19009e943d 核保状态提示语修改 2023-12-14 10:59:01 +08:00
liu.xiaofeng@ebiz-digits.com
59cc88bc43 投保须知和转账授权文件阅读时长修改 2023-12-14 10:12:24 +08:00
liu.xiaofeng@ebiz-digits.com
f3e7907626 微信环境 人脸识别失败后不触发短信验证修复 2023-12-13 14:01:16 +08:00
liu.xiaofeng@ebiz-digits.com
f55bf256ef 订单状态为公司谢绝修改为提交失败 2023-12-13 11:44:39 +08:00
liu.xiaofeng@ebiz-digits.com
29caa2a03f 出单信息页面功能优化 2023-12-12 15:30:40 +08:00
liu.xiaofeng@ebiz-digits.com
8621137660 首页业绩排名表头字段修改 2023-12-12 11:26:45 +08:00
liu.xiaofeng@ebiz-digits.com
1e0113b597 更新指定生效日说明文件内容 更换标题 2023-12-11 10:55:15 +08:00
liu.xiaofeng@ebiz-digits.com
1b68a6f001 更新指定生效日说明文件内容2 2023-12-11 10:40:23 +08:00
liu.xiaofeng@ebiz-digits.com
4b68721ab4 更新指定生效日说明文件内容 2023-12-11 10:40:20 +08:00
liu.xiaofeng@ebiz-digits.com
4a2a41f31e 开门红专区改了一月专区 2023-12-08 23:24:58 +08:00
liu.xiaofeng@ebiz-digits.com
f4ae03c78c 选择开门红产品页面图片更换 2023-12-08 22:45:44 +08:00
liu.xiaofeng@ebiz-digits.com
e572bae4ff 更换页面标题 2023-12-08 22:36:50 +08:00
liu.xiaofeng@ebiz-digits.com
532592851f 开门红专区标题修改为一月专区 2023-12-08 20:38:42 +08:00
liu.xiaofeng@ebiz-digits.com
ffab856a30 更换开门红图片 2023-12-08 20:26:00 +08:00
liu.xiaofeng@ebiz-digits.com
44607614ca 健康险续保测试问题修复6 2023-12-06 21:26:55 +08:00
liu.xiaofeng@ebiz-digits.com
bd071eadef 健康险续保测试问题修复5 2023-12-06 21:26:52 +08:00
liu.xiaofeng@ebiz-digits.com
f440cee91a 健康险续保测试问题修复4 2023-12-06 21:26:49 +08:00
liu.xiaofeng@ebiz-digits.com
ae3847fec6 健康险续保测试问题修复3 2023-12-06 21:26:45 +08:00
liu.xiaofeng@ebiz-digits.com
84a2036eba 健康险续保测试问题修复2 2023-12-06 21:26:42 +08:00
liu.xiaofeng@ebiz-digits.com
1328f504f7 健康险续保测试问题修复1 2023-12-06 21:26:39 +08:00
liu.xiaofeng@ebiz-digits.com
fa199309a8 健康险续保测试问题修复 2023-12-06 21:26:35 +08:00
liu.xiaofeng@ebiz-digits.com
2097fab789 健康险续保营业部经理可以编辑未续报原因 2023-12-06 21:26:33 +08:00
liu.xiaofeng@ebiz-digits.com
8808228c81 由列表页面跳转详情页面路由传参由原来的固定调整为动态的值 2023-12-06 21:26:29 +08:00
liu.xiaofeng@ebiz-digits.com
a399ce7a1b 健康险续保搜索栏操作逻辑修改2 2023-12-06 21:26:25 +08:00
liu.xiaofeng@ebiz-digits.com
76d944b07b 健康险续保搜索栏操作逻辑修改1 2023-12-06 21:26:22 +08:00
liu.xiaofeng@ebiz-digits.com
03ffd1106d 健康险续保搜索栏操作逻辑修改 2023-12-06 21:26:19 +08:00
liu.xiaofeng@ebiz-digits.com
d2523b2deb 健康险续保列表页面搜索框功能修改并新增模糊搜索营业部经理下的代理人列表数据 2023-12-06 21:26:16 +08:00
liu.xiaofeng@ebiz-digits.com
002d0a0be4 选择服务经理的弹窗数据展示效果调整为两个字段展示并做切换效果 2023-12-06 21:26:12 +08:00
liu.xiaofeng@ebiz-digits.com
8c969e235e 营业部经理增加选择按钮并添加下拉弹窗 2023-12-06 21:26:09 +08:00
liu.xiaofeng@ebiz-digits.com
8ec51b01c8 区分营业部经理和服务经理的数据显示 2023-12-06 21:26:06 +08:00
liu.xiaofeng@ebiz-digits.com
7f9130542b 自动计算健康险续保选择月份的第一天和最后一天的日期 2023-12-06 21:26:03 +08:00
liu.xiaofeng@ebiz-digits.com
946d3b80c1 对接健康险续保得接口并调整相关字段展示1 2023-12-06 21:25:58 +08:00
liu.xiaofeng@ebiz-digits.com
18f42946ff 对接健康险续保得接口并调整相关字段展示 2023-12-06 21:25:55 +08:00
liu.xiaofeng@ebiz-digits.com
2ddde67c40 增加健康险清单和健康险详情接口 2023-12-06 21:25:50 +08:00
liu.xiaofeng@ebiz-digits.com
dbdb41fecd 健康险续保列表接口对接 2023-12-06 21:25:45 +08:00
liu.xiaofeng@ebiz-digits.com
d96ae3f51f 续保列表与详情页面效果细节调整 2023-12-06 21:25:40 +08:00
liu.xiaofeng@ebiz-digits.com
965d5b0abf xubao 2023-12-06 21:25:35 +08:00
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
84 changed files with 6348 additions and 3110 deletions

View File

@@ -28,13 +28,30 @@ export default {
},
created () {
// 在页面加载时读取sessionStorage
if (sessionStorage.getItem('store')) {
this.$store.replaceState(Object.assign({}, this.$store.state, JSON.parse(sessionStorage.getItem('store'))))
// 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"))));
}
// 在页面刷新时将store保存到sessionStorage里
window.addEventListener('beforeunload', () => {
sessionStorage.setItem('store', JSON.stringify(this.$store.state))
})
},
mounted(){
},

91
src/api/GBC/GBC.js Normal file
View File

@@ -0,0 +1,91 @@
import request from '@/assets/js/utils/request'
import getUrl from '@/assets/js/utils/get-url'
// 查询登录人所属项目列表
export function gbcProjectList(data) {
return request({
url: getUrl('/agent/gbc/project/list', 1),
method: 'post',
data
})
}
// 查询项目详情
export function gbcProjectDetail(data) {
return request({
url: getUrl('/agent/gbc/project/detail', 1),
method: 'post',
data
})
}
// 此接口是后端用于将GBC项目信息同步至登录用户信息即UserModel中的接口前端在选中项目后需要调用此接口。
export function gbcProjectConfirm(data) {
return request({
url: getUrl('/agent/gbc/project/confirm', 1),
method: 'post',
data
})
}
// GBC获取首页轮播图和上头条内容
export function homeConfigGBC(data) {
return request({
url: getUrl('/customer/agent/homeConfigGBC', 1,3),
method: 'get',
data
})
}
// 根据项目编码获取科室信息
export function getDepartmentByProjectNo(data) {
return request({
url: getUrl('/agent/gbc/project/getDepartmentByProjectNo', 1),
method: 'post',
data
})
}
// 按年份查询登录人所属项目列表
export function getGBCprojectlistByYear(data) {
return request({
url: getUrl('/agent/gbc/project/listByYear', 1),
method: 'post',
data
})
}
// 查询项目下的客户列表
export function getGBCappntlist(data) {
return request({
url: getUrl('/sale/gbc/appnt/list', 1),
method: 'post',
data
})
}
// 查询项目下的客户列表
export function getGBCappntDetail(data) {
return request({
url: getUrl('/sale/gbc/appnt/detail', 1),
method: 'post',
data
})
}
// 保存客户类型
export function getGBCappntTypeSave(data) {
return request({
url: getUrl('/sale/gbc/appnt/type/save', 1),
method: 'post',
data
})
}
// 保存客户沟通记录
export function getGBCappntConnectSave(data) {
return request({
url: getUrl('/sale/gbc/appnt/connect/save', 1),
method: 'post',
data
})
}

View File

@@ -0,0 +1,34 @@
import request from '@/assets/js/utils/request'
import getUrl from '@/assets/js/utils/get-url'
export function healthgetRenewalList(data) {
return request({
url: getUrl('/sale/health/getRenewalList', 1),
method: 'post',
data
})
}
export function healthgetRenewalListDetail(data) {
return request({
url: getUrl('/sale/health/getRenewalListDetail', 1),
method: 'post',
data
})
}
export function reasonForNonRenewalSubmitted(data) {
return request({
url: getUrl('/sale/health/reasonForNonRenewalSubmitted', 1),
method: 'post',
data
})
}
export function getAgentManager(data) {
return request({
url: getUrl('/sale/health/getAgentManager', 1),
method: 'post',
data
})
}

View File

@@ -362,4 +362,31 @@ export function getDoubleRecordProductLst(data) {
method: 'post',
data
})
}
}
// 指定受益人身份四要素
export function checkAppointBnf(data) {
return request({
url: getUrl('/sale/bnfCheck/checkAppointBnf ', 1),
method: 'post',
data
})
}
export function appntIsAgent(data) {
return request({
url: getUrl('/sale/insure/appntIsAgent', 1),
method: 'post',
data
})
}
export function saveOrderType(data) {
return request({
url: getUrl('/sale/order/saveOrderType', 1),
method: 'post',
data
})
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1002 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 MiB

After

Width:  |  Height:  |  Size: 579 KiB

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: 303 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 KiB

After

Width:  |  Height:  |  Size: 28 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

@@ -21,7 +21,7 @@ export default {
return startDate = thisyear + '-02-28'
}
}else{
return startDate = String(Number(endDate.slice(0, 4)) - 5) + startDate.slice(4, 11)
return startDate = String(Number(endDate.slice(0, 4)) - 5) + endDate.slice(4, 11)
}
}
/**

View File

@@ -1773,7 +1773,7 @@ export default {
},
{
id: '07',
text: '公司谢绝'
text: '核保失败'
},
{
id: '08',
@@ -1977,7 +1977,7 @@ export default {
},
{
id: '58',
text: '待客户付款'
text: '待支付'
},
{
id: '59',
@@ -3867,6 +3867,30 @@ export default {
{
code: "accidentalLimit",
label: "%"
},
{
code: "policyFee",
label: "元"
},
{
code: "expireSurvivalInsurance_L",
label: "元"
},
{
code: "expireSurvivalInsurance_M",
label: "元"
},
{
code: "riskCost_L",
label: "元"
},
{
code: "riskCost_M",
label: "元"
},
{
code: "GFRS_M0087__cashValue",
label: "元"
}
],
// 卡单与短期险重新投保选择职业类别时,两个模块职业类型数据的排序不同,创建这个数据字典,用于在选择职业类别时,作为一个参数传入组件,

View File

@@ -1,29 +1,34 @@
<template>
<div class="own_content">
<ul class="index-bar">
<li @click="changePage(item.pageNo)" v-for="(item, index) in pageTitle" :key="index" :class="item.tabClass" :id="item.tabClass" v-if="item.show">
<!-- 选中 -->
<div v-if="item.tabClass" class="flex justify-content-fs align-items-c">
<div class="flex flex-direction-colunm align-items-c">
<van-image :src="item.imgCheckedUrl" class="image_head" />
<span class="fs12 mt12">{{ item.pageItem }}</span>
<div>
<div class="own_content">
<ul class="index-bar">
<li @click="changePage(item.pageNo)" v-for="(item, index) in pageTitle" :key="index" :class="item.tabClass" :id="item.tabClass" v-if="item.show">
<!-- 选中 -->
<div v-if="item.tabClass" class="flex justify-content-fs align-items-c">
<div class="flex flex-direction-colunm align-items-c">
<van-image :src="item.imgCheckedUrl" class="image_head" />
<span class="fs12 mt12">{{ item.pageItem }}</span>
</div>
<van-image :src="doneUrl" v-if="index !== 10" class="image_done" />
</div>
<van-image :src="doneUrl" v-if="index !== 10" class="image_done" />
</div>
<div v-if="!item.tabClass" class="flex justify-content-fs align-items-c">
<div class="flex flex-direction-colunm align-items-c">
<van-image :src="item.imgNoCheckedUrl" class="image_head" />
<span class="fs12 mt12" style="color: #999999">{{ item.pageItem }}</span>
<div v-if="!item.tabClass" class="flex justify-content-fs align-items-c">
<div class="flex flex-direction-colunm align-items-c">
<van-image :src="item.imgNoCheckedUrl" class="image_head" />
<span class="fs12 mt12" style="color: #999999">{{ item.pageItem }}</span>
</div>
<van-image :src="doneNurl" v-if="index !== 10" class="image_done" />
</div>
<van-image :src="doneNurl" v-if="index !== 10" class="image_done" />
</div>
</li>
</ul>
</li>
</ul>
</div>
<p v-if="branchType == '13'" style="margin-top: 10px;color: red;background-color: #ffdddc;padding: 5px 10px;">提示您目前正在投保的项目为{{projectName}}</p>
</div>
</template>
<script>
import { Icon, Image } from 'vant'
import { getOrderDetail1 } from '@/api/ebiz/sale/sale'
import { gbcProjectDetail } from '@/api/GBC/GBC'
export default {
name: 'IndexBar',
props: {
@@ -51,6 +56,8 @@ export default {
},
data() {
return {
branchType:'',
projectName:'',
thisShow: false,
doneUrl: this.$assetsUrl + 'images/kmh/done.png',
doneNurl: this.$assetsUrl + 'images/kmh/done_n.png',
@@ -159,7 +166,7 @@ export default {
salePageFlag: Number(localStorage.salePageFlag)
}
},
mounted() {
async mounted() {
let that = this
let data = {
orderNo: that.$route.query.orderNo
@@ -187,11 +194,32 @@ export default {
})
}
}
if(this.$route.query.orderNo) {
this.projectName = res.orderDTO.ebizOrderGbcRelDTO.projectName
}
}
})
this.selectTab()
if(window.localStorage.getItem('branchType') == '13') {
this.branchType = '13'
if(!this.$route.query.orderNo) {
that.gbcProjectDetail()
}
}
},
methods: {
gbcProjectDetail(){
let params = {
}
gbcProjectDetail(params).then(res=>{
if(res.result == '0') {
this.projectName = res.content.projectName
} else {
this.$toast(res.resultMessage)
}
})
},
changePage(pageIndex) {
let url = ''
//由 localStorage.salePageFlag 来控制是否可跳到指定页面

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, //缓存加密密码

44
src/router/GBC/index.js Normal file
View File

@@ -0,0 +1,44 @@
//数据报表 定义相关组件
const GBC_home = () => import('@/views/GBC/home')
const GBC_projectList = () => import('@/views/GBC/projectList')
const GBC_projectDetail = () => import('@/views/GBC/projectDetail')
const GBC_customerDetail = () => import('@/views/GBC/customerDetail')
export default [
{
path: '/GBC/home',
name: 'GBC_home',
component: GBC_home,
meta: {
title: '首页',
index: 1
}
},
{
path: '/GBC/projectList',
name: 'GBC_projectList',
component: GBC_projectList,
meta: {
title: '项目列表',
index: 1
}
},
{
path: '/GBC/projectDetail',
name: 'GBC_projectDetail',
component: GBC_projectDetail,
meta: {
title: '项目详情',
index: 1
}
},
{
path: '/GBC/customerDetail',
name: 'GBC_customerDetail',
component: GBC_customerDetail,
meta: {
title: '编辑客户信息',
index: 1
}
},
]

View File

@@ -23,7 +23,7 @@ export default [
name: 'Prefecture',
component: PerformanceReport,
meta: {
title: '开门红业绩查询'
title: '一月业绩查询'
}
},
{
@@ -31,7 +31,7 @@ export default [
name: 'Prefecture',
component: Prefecture,
meta: {
title: '开门红专区'
title: '一月专区'
}
},
{
@@ -53,7 +53,7 @@ export default [
name: 'GoodStartScheme',
component: GoodStartScheme,
meta: {
title: '开门红方案'
title: '一月方案'
}
},
{
@@ -61,7 +61,7 @@ export default [
name: 'businessMap',
component: businessMap,
meta: {
title: '开门红业务地图'
title: '一月业务地图'
}
},
{
@@ -77,7 +77,7 @@ export default [
name: 'newsPaper',
component: newsPaper,
meta: {
title: '开门红实时贺报'
title: '一月实时贺报'
}
}
]

View File

@@ -0,0 +1,23 @@
//健康险续保 定义相关组件
const healthInsuranceRenewalList = () => import('@/views/ebiz/healthInsuranceRenewal/list')
const healthInsuranceRenewalDetail = () => import('@/views/ebiz/healthInsuranceRenewal/detail')
export default [
{
path: '/healthInsuranceRenewal/list',
name: 'healthInsuranceRenewalList',
component: healthInsuranceRenewalList,
meta: {
title: '健康险续保清单',
index: 1
}
},
{
path: '/healthInsuranceRenewal/detail',
name: 'healthInsuranceRenewalDetail',
component: healthInsuranceRenewalDetail,
meta: {
title: '保单详情',
index: 1
}
}
]

View File

@@ -49,6 +49,10 @@ import allowance from './allowance'
import cooperativeUnit from './cooperativeUnit'
// YB_APP
import YB_APP from '../YB_APP/index'
// GBC
import GBC from '../GBC/index'
//健康险续保
import healthInsuranceRenewal from './healthInsuranceRenewal'
export default [
...proposal,
...sale,
@@ -86,5 +90,7 @@ export default [
...laurelClub,
...allowance,
...cooperativeUnit,
...YB_APP
...YB_APP,
...GBC,
...healthInsuranceRenewal
] //根据需要进行删减

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

@@ -0,0 +1,400 @@
<template>
<div>
<div style="background: #fff;margin: 10px;padding: 10px;border-radius: 5px;">
<div style="display: flex;font-size: 14px;font-weight: bold;">
<span style="width: 25%;display: flex;align-items: center;align-items: center;line-height: 30px;justify-content: center;">保单数量</span>
<span style="width: 25%;display: flex;align-items: center;align-items: center;line-height: 30px;justify-content: center">家庭成员</span>
<span style="width: 25%;display: flex;align-items: center;align-items: center;line-height: 30px;justify-content: center;">总保额</span>
<span style="width: 25%;display: flex;align-items: center;align-items: center;line-height: 30px;justify-content: center;">总保费</span>
</div>
<div style="display: flex;font-size: 13px;color: #999;margin-top: 10px;">
<span style="width: 25%;display: flex;align-items: flex-end;align-items: baseline;justify-content: center;">
<span style="color: #EC5449;font-size: 22px;margin-right: 7px;font-weight: bold;">{{infoContent.contSize}}</span>
</span>
<span style="width: 25%;display: flex;align-items: flex-end;align-items: baseline;justify-content: center;">
<span style="color: #EC5449;font-size: 22px;margin-right: 7px;font-weight: bold;">{{infoContent.members.length}}</span>
</span>
<span style="width: 25%;display: flex;align-items: flex-end;align-items: baseline;justify-content: center;">
<span style="color: #EC5449;font-size: 22px;margin-right: 7px;font-weight: bold;">{{infoContent.totalAmt}}</span>
</span>
<span style="width: 25%;display: flex;align-items: flex-end;align-items: baseline;justify-content: center;">
<span style="color: #EC5449;font-size: 22px;margin-right: 7px;font-weight: bold;">{{infoContent.totalPrem}}</span>
</span>
</div>
</div>
<div style="margin: 10px;overflow: auto;white-space: nowrap;">
<div v-for="(item,index) in infoContent.members" @click="activeMembers(item,index)" class="membersClass" :key="index" :style="{border:activeMembersIndex==index?'1px solid #e98c8c':'none'}">
<div v-if="item.gender=='1'" class="triangle1"></div>
<div v-if="item.gender=='0'" class="triangle2"></div>
<div v-if="item.relateToAppnt == 1" style="position: absolute;right: 2px;top: 2px;font-size: 12px;color: #fff;">本人</div>
<div v-if="item.relateToAppnt == 2" style="position: absolute;right: 2px;top: 2px;font-size: 12px;color: #fff;">配偶</div>
<div v-if="item.relateToAppnt == 3" style="position: absolute;right: 2px;top: 2px;font-size: 12px;color: #fff;">父母</div>
<div v-if="item.relateToAppnt == 4" style="position: absolute;right: 2px;top: 2px;font-size: 12px;color: #fff;">子女</div>
<div v-if="item.relateToAppnt == 5" style="position: absolute;right: 2px;top: 2px;font-size: 12px;color: #fff;">其他</div>
<div style="position: absolute;top: 20px;left: 20px;">
<img v-if="item.gender =='0' && item.relateToAppnt == 1" src="@/assets/images/GBC/relation6.png" style="width: 40px;" />
<img v-if="item.gender =='1' && item.relateToAppnt == 1" src="@/assets/images/GBC/relation1.png" style="width: 40px;" />
<img v-if="item.gender =='0' && item.relateToAppnt == 2" src="@/assets/images/GBC/relation6.png" style="width: 40px;" />
<img v-if="item.gender =='1' && item.relateToAppnt == 2" src="@/assets/images/GBC/relation1.png" style="width: 40px;" />
<img v-if="item.gender =='0' && item.relateToAppnt == 3" src="@/assets/images/GBC/relation4.png" style="width: 40px;" />
<img v-if="item.gender =='1' && item.relateToAppnt == 3" src="@/assets/images/GBC/relation5.png" style="width: 40px;" />
<img v-if="item.gender =='0' && item.relateToAppnt == 4" src="@/assets/images/GBC/relation3.png" style="width: 40px;" />
<img v-if="item.gender =='1' && item.relateToAppnt == 4" src="@/assets/images/GBC/relation2.png" style="width: 40px;" />
<img v-if="item.gender =='0' && item.relateToAppnt == 5" src="@/assets/images/GBC/relation6.png" style="width: 40px;" />
<img v-if="item.gender =='1' && item.relateToAppnt == 5" src="@/assets/images/GBC/relation1.png" style="width: 40px;" />
</div>
<div style="position: absolute;bottom: 3px;width: 100%;text-align: center;font-size: 12px;">{{item.appntName}}</div>
</div>
</div>
<div style="margin: 10px;border-radius: 5px;overflow: hidden;">
<van-collapse v-model="activeNames">
<van-collapse-item title="基本信息" name="1">
<div style="display: flex;padding-bottom: 10px;border-bottom: 1px dashed #666;">
<div style="width: 30%;line-height: 30px;color: #666;">
<p>客户姓名</p>
<p>年龄</p>
<p>性别</p>
<p>手机号码</p>
<p v-if="activeMembersIndex == 0">部门/科室</p>
</div>
<div style="width: 70%;line-height: 30px;color: #000;">
<p>{{infoContent.appntName}}</p>
<p>{{infoContent.age}}周岁</p>
<p>{{infoContent.gender=='1'?'女':'男'}}</p>
<p>{{infoContent.mobile}}</p>
<p v-if="activeMembersIndex == 0">{{infoContent.departmentName}}</p>
</div>
</div>
<van-field @click="toSelect('toChooseAppntType')" v-model="infoContent.appntTypeName" class="customerType" label="客户类型" name="客户类型" readonly right-icon="arrow" placeholder="请选择"/>
</van-collapse-item>
</van-collapse>
</div>
<div style="margin: 10px;border-radius: 5px;overflow: hidden;">
<van-collapse v-model="activeNames">
<van-collapse-item title="沟通记录" name="2">
<div style="display: flex;justify-content: space-between;align-items: center;">
<span>内容描述</span>
<van-button @click="activeConnectRecords = true" plain round type="danger" size="small"> </van-button>
</div>
<div v-if="activeConnectRecords">
<div class="message">
<div class="wrapper">
<div class="parents">
<textarea placeholder="请输入内容描述......" maxlength="500" autofocus="true" v-model="connectContent"></textarea>
<span class="tips">
{{connectContent.length}}/500
</span>
</div>
</div>
</div>
<div class="saveMeaasge" style="margin-top: 10px;display: flex;justify-content: center;">
<van-button @click="getGBCappntConnectSave" type="danger" size="small"> </van-button>
</div>
</div>
<div class="connectRecordsClass" style="border-top: 1px solid #dedede;margin-top: 10px;">
<div v-for="(item,index) in infoContent.connectRecords" :key="index" style="margin-top: 10px;">
<div style="display: flex;line-height: 30px;align-items: center;">
<span style="display: inline-block;width: 30%;color: #666;">记录时间</span>
<span style="display: inline-block;width: 70%;color: #000;">{{item.connectTime}}</span>
</div>
<div style="display: flex;line-height: 30px;align-items: center;">
<span style="display: inline-block;width: 30%;color: #666;">提交人</span>
<span style="display: inline-block;width: 70%;color: #000;">{{item.createUser}}</span>
</div>
<div style="display: flex;line-height: 30px;align-items: center;">
<span style="display: inline-block;width: 30%;color: #666;">内容描述</span>
<span style="display: inline-block;width: 70%;color: #000;"></span>
</div>
<div class="itemMessage">
<van-field v-model="item.connectContent" readonly rows="5" label="" type="textarea" maxlength="500" placeholder=""/>
</div>
</div>
</div>
</van-collapse-item>
</van-collapse>
</div>
<div style="margin: 10px;border-radius: 5px;overflow: hidden;">
<van-collapse v-model="activeNames">
<van-collapse-item title="保单信息" name="3">
<div v-for="(item,index) in infoContent.contList" :key="index" style="border-bottom: 1px dashed #dedede;margin-bottom: 20px;">
<div style="display: flex;justify-content: space-between;align-items: center;border-bottom: 1px solid #dedede;padding-bottom: 5px;">
<div>
<p style="font-size: 14px;font-weight: bold;line-height: 25px;color: #000;">{{item.productName}} </p>
<p style="font-size: 12px;line-height: 25px;color: #999;">保单号{{item.contNo}} </p>
</div>
<div v-if="item.orderStatus == '08'" style="padding: 10px 20px;border-radius: 8px;border: 1px solid #e9332e;background: #ffdfde;color: #e9332e;">
<span>已承保</span>
</div>
<div v-if="item.orderStatus == '09'" style="padding: 10px 20px;border-radius: 8px;border: 1px solid #48A1F3;background: #DBEDFE;color: #48A1F3;">
<span>已退保</span>
</div>
</div>
<div style="padding: 10px 0px;">
<div style="display: flex;line-height: 30px;align-items: center;">
<p style="width: 30%;color: #666;">投保人</p>
<p style="width: 25%;color: #000;">{{item.appntName}}</p>
<p style="width: 25%;color: #666;">被保险人</p>
<p style="width: 20%;color: #000;">{{item.insuredName}}</p>
</div>
<div style="display: flex;line-height: 30px;align-items: center;">
<p style="width: 30%;color: #666;">保额()</p>
<p style="width: 25%;color: #000;">{{item.amt}}</p>
<p style="width: 25%;color: #666;">保费()</p>
<p style="width: 20%;color: #000;">{{item.prem}}</p>
</div>
<div style="display: flex;line-height: 30px;align-items: center;">
<p style="width: 30%;color: #666;">交费期间</p>
<p style="width: 25%;color: #000;">{{item.paymentPeriod}}</p>
<p style="width: 25%;color: #666;">保险期间</p>
<p style="width: 20%;color: #000;">{{item.insuredPeriod}}</p>
</div>
<div style="display: flex;line-height: 30px;align-items: center;">
<p style="width: 30%;color: #666;">保险生效日期</p>
<p style="width: 50%;color: #000;">{{item.effectiveDate}}</p>
</div>
</div>
</div>
</van-collapse-item>
</van-collapse>
</div>
<van-popup v-model="popupShow" position="bottom">
<van-picker show-toolbar :columns="columns" @confirm="onConfirm" @cancel="popupShow = false" />
</van-popup>
</div>
</template>
<script>
import { Collapse, CollapseItem } from 'vant'
import { getGBCappntDetail, getGBCappntTypeSave, getGBCappntConnectSave } from '@/api/GBC/GBC.js'
export default {
components: {
[Collapse.name]: Collapse,
[CollapseItem.name]: CollapseItem,
},
data() {
return {
activeMembersIndex:0,
activeConnectRecords:false,
infoContent:{
members:[
{appntName:'刘亚丽',relateToAppnt:1,src:require('@/assets/images/GBC/relation1.png'),gender:'1'},
{appntName:'刘桂芬',relateToAppnt:2,src:require('@/assets/images/GBC/relation2.png'),gender:'1'},
{appntName:'谢居安',relateToAppnt:3,src:require('@/assets/images/GBC/relation3.png'),gender:'0'},
{appntName:'谢危',relateToAppnt:4,src:require('@/assets/images/GBC/relation4.png'),gender:'0'},
{appntName:'刘亚丽',relateToAppnt:5,src:require('@/assets/images/GBC/relation5.png'),gender:'1'},
{appntName:'刘桂芬',relateToAppnt:6,src:require('@/assets/images/GBC/relation6.png'),gender:'1'},
{appntName:'谢居安',relateToAppnt:7,src:require('@/assets/images/GBC/relation1.png'),gender:'0'},
{appntName:'谢危',relateToAppnt:8,src:require('@/assets/images/GBC/relation2.png'),gender:'0'},
{appntName:'谢危',relateToAppnt:9,src:require('@/assets/images/GBC/relation2.png'),gender:'0'},
],
connectRecords:[
{
connectTime:'2023-11-21 16:00:00',
createUser:'赵威武',
connectContent:'客户为财务部总经理45岁2个小孩大儿子读初中小女儿读小学爱人在银行工作全家人都已配置过重疾险保额均为30万。自己可以做购买决策但目前有2套房贷在供经济压力较大但对我司方案很认可回去商量后再决定是否加保'
},
{
connectTime:'2023-11-21 16:00:00',
createUser:'赵威武',
connectContent:'客户为财务部总经理45岁2个小孩大儿子读初中小女儿读小学爱人在银行工作全家人都已配置过重疾险保额均为30万。自己可以做购买决策但目前有2套房贷在供经济压力较大但对我司方案很认可回去商量后再决定是否加保'
},
{
connectTime:'2023-11-21 16:00:00',
createUser:'赵威武',
connectContent:'客户为财务部总经理45岁2个小孩大儿子读初中小女儿读小学爱人在银行工作全家人都已配置过重疾险保额均为30万。自己可以做购买决策但目前有2套房贷在供经济压力较大但对我司方案很认可回去商量后再决定是否加保'
}
],
contList:[
{appntName:'赵燕燕',insuredName:'赵燕燕',amt:'3,200.00',prem:'150.00',paymentPeriod:'3年交',insuredPeriod:'终身',effectiveDate:'2023-11-28',orderStatus: '1'},
{appntName:'赵燕燕',insuredName:'赵燕燕',amt:'3,200.00',prem:'150.00',paymentPeriod:'3年交',insuredPeriod:'终身',effectiveDate:'2023-11-28',orderStatus: '1'},
{appntName:'赵燕燕',insuredName:'赵燕燕',amt:'3,200.00',prem:'150.00',paymentPeriod:'3年交',insuredPeriod:'终身',effectiveDate:'2023-11-28',orderStatus: '2'},
]
},
activeNames:[],
popupShow:false,
columns:[],
customerType:'',
pickerType: '',
columns_toChooseAppntType:[
{text:'A类',id:'A'},
{text:'B类',id:'B'},
{text:'C类',id:'C'},
{text:'D类',id:'D'},
],
connectContent: "",
maxLength: 500,
}
},
created() {
},
mounted(){
this.getGBCappntDetail()
},
methods: {
activeMembers(thisData,thisIndex) {
this.activeMembersIndex = thisIndex
this.infoContent.appntName = thisData.name
this.infoContent.age = thisData.age
this.infoContent.gender = thisData.gender
this.infoContent.mobile = thisData.mobile
this.infoContent.departmentName = thisData.departmentName
},
getGBCappntDetail() {
let params = {
"projectCode": this.$route.query.projectCode,
"appntId": this.$route.query.appntId
}
getGBCappntDetail(params).then(res => {
if(res.result == 0) {
this.infoContent = res.content
} else {
this.$toast(res.resultMessage)
}
})
},
getGBCappntConnectSave(){
let params = {
"projectCode": this.$route.query.projectCode,
"appntId": this.$route.query.projectCode,
"connectContent": this.connectContent
}
getGBCappntConnectSave(params).then(res=>{
if(res.result == 0) {
this.$toast('保存成功')
this.getGBCappntDetail()
} else {
this.$toast(res.resultMessage)
}
})
},
onConfirm(value){
if(this.pickerType == 'toChooseAppntType'){
this.infoContent.appntTypeName = value.text
this.infoContent.appntType = value.id
let params = {
"projectCode": this.$route.query.projectCode,
"appntId": this.$route.query.appntId,
"appntType": this.infoContent.appntType
}
getGBCappntTypeSave(params).then(res=>{
if(res.result == 0){
this.$toast('保存成功')
} else {
this.$toast(res.resultMessage)
}
})
}
this.popupShow = false
},
toSelect(pickerType){
this.pickerType = pickerType
this.popupShow = true
switch (pickerType) {
case 'toChooseAppntType':
this.columns = this.columns_toChooseAppntType
break
}
},
},
computed: {
},
beforeRouteLeave(to, from, next) {
document.body.style.backgroundColor = ''
next()
}
}
</script>
<style lang="scss" scoped>
.triangle1 {
width: 0;
height: 0;
border-width:30px; /* 设置边长 */
border-style: solid;
transform: translateX(50px) translateY(-30px) rotate(45deg);
border-color: transparent transparent #FC7D5B transparent; /* 透明色为背景色,#000000为需要显示的颜色 */
}
.triangle2 {
width: 0;
height: 0;
border-width:30px; /* 设置边长 */
border-style: solid;
transform: translateX(50px) translateY(-30px) rotate(45deg);
border-color: transparent transparent #3D72D0 transparent; /* 透明色为背景色,#000000为需要显示的颜色 */
}
/deep/ .van-cell:not(:last-child)::after {
border-bottom: 1px dashed #666 !important;
}
/deep/ .van-cell:not(:last-child)::after{
left:0px !important;
}
.customerType{
padding-left: 0px;
padding-right: 0px;
color: #666;
}
/deep/ .message{
border-radius: 10px;
border: 1px solid #dedede;
margin-top: 20px;
padding: 10px;
}
.parents {
width: 100%;
height: 120px;
position: relative;
}
textarea {
border: none;
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
}
.tips {
position: absolute;
bottom: 0;
right: 0;
}
/deep/ .saveMeaasge{
.van-button--small{
padding: 0px 40px;
border-radius: 5px;
}
}
/deep/ .itemMessage{
border: 1px solid #dedede;
border-radius: 10px;
padding: 10px;
.van-field__label{
width: 0;
}
.van-cell{
padding: 0px;
}
.van-field__control{
color: #333;
height: auto;
}
}
/deep/ .van-collapse-item{
.van-cell__title{
font-size: 14px;
font-weight: bold;
}
}
.membersClass{
display: inline-block;
width: 80px;
height: 80px;
border-radius: 5px;
background: #fff;
margin-right: 10px;
overflow: hidden;
position: relative;
}
</style>

368
src/views/GBC/home.vue Normal file
View File

@@ -0,0 +1,368 @@
<template>
<div class="public_container" :style="{paddingTop:marginTop+'px'}">
<!-- <van-pull-refresh v-model="isLoading" @refresh="onRefresh">-->
<div class="head">
<van-swipe :autoplay="3000" style="width: 100%;">
<van-swipe-item v-for="(item, index) in activity" :key="index" @touchstart="touchstart" @touchmove="touchmove" @touchend="touchend(item)">
<!-- <img :src="config.assetsUrl + item.img + '?v=' + thisGetTime" /> -->
<img :src="item.img">
</van-swipe-item>
</van-swipe>
</div>
<div class="iconPart1">
<van-notice-bar :left-icon="png8" :text='getCodeValue'/>
</div>
<div class="top">
<div class="menu" v-for="(item, ind) in homePageIcon" :key="ind" @click="goDetail(item)">
<div class="menuImg">
<img :src="item.img">
</div>
<span class="menuName">{{ item.title }}</span>
</div>
</div>
<div class="cooperativeUnits">
<div>
<div style="width: 50%;display: inline-block;" v-for="(item,index) in list1" :key="index">
<p style="display: flex;justify-content: flex-start;height: 50px;align-items: center;margin: 5px 10px;border:1px solid #eee;border-radius: 5px;background: #fff;color: #333333;padding-left: 10px;">
<img src="@/assets/images/GBC/home-cooperativeUnits-icon.png" style="width: 20px;height: 20px;margin-right: 10px;"/>
{{item.name}}
</p>
</div>
</div>
</div>
<div class="companyProfile">
<img :src="image1" style="width: 100%;"/>
</div>
<!-- </van-pull-refresh>-->
<van-dialog v-model="chooseProjectDialogShow" :showConfirmButton="false">
<div slot="title">
<p style="color: #E9332E;">请选择项目</p>
</div>
<div class="chooseProjectDialog" style="padding: 20px 30px 30px;font-size: 14px;">
<van-radio-group v-model="chooseTeamCode">
<van-radio v-for="(item,index) in projectList" :key="index" :name="item.teamCode" style="margin: 10px;">
<span style="margin-left: 20px;">
{{item.projectName}}
<span v-if="item.teamName" style="margin-left: 10px;color: #a7a7a7;">
({{item.teamName}})
</span>
</span>
</van-radio>
</van-radio-group>
</div>
<div style="text-align: center;margin-bottom: 30px;">
<van-button round type="danger" size="small" style="padding:0px 35px;font-size: 14px;" @click="chooseProjectList">
确定
</van-button>
</div>
</van-dialog>
<!-- 选择过期项目弹窗提示 -->
<van-dialog v-model="enableProjectDialogShow" :showConfirmButton="false">
<div slot="title">
<p style="color: #E9332E;">提示</p>
</div>
<div style="padding: 20px 30px 30px;font-size: 14px;">
{{chooseProjectName}}项目服务时间已结束
</div>
<div style="text-align: center;margin-bottom: 30px;">
<van-button round type="danger" size="small" style="padding:0px 35px;font-size: 14px;" @click="enableProjectDialogShow = false">
返回
</van-button>
</div>
</van-dialog>
</div>
</template>
<script>
import { gbcProjectList, gbcProjectConfirm, homeConfigGBC } from '@/api/GBC/GBC'
import { getAgentInfo } from '@/api/ebiz/my/my.js'
import { Swipe, SwipeItem, NoticeBar, Icon, Popup, PullRefresh ,Toast, RadioGroup, Radio } from 'vant'
import config from '@/config'
import png8 from '@/assets/YB_APP/images/8.png';
export default {
name: 'Home',
components: {
[Swipe.name]: Swipe,
[SwipeItem.name]: SwipeItem,
[NoticeBar.name]: NoticeBar,
[Icon.name]: Icon,
[Popup.name]: Popup,
[PullRefresh.name]:PullRefresh,
[RadioGroup.name]:RadioGroup,
[Radio.name]:Radio,
[Toast.name]:Toast ,
},
data() {
return {
config,
marginTop:'80',
getCodeValue:'',
png8,
activity: [],
homePageIcon:[
{title:'建议书',route:'/proposal/list',img:require('@/assets/images/GBC/home-menu-1.png')},
{title:'电子投保',route:'/sale/list',img:require('@/assets/images/GBC/home-menu-2.png')},
{title:'海报设计',route:'/poster/posterList',img:require('@/assets/images/GBC/home-menu-3.png')},
{title:'GBC专区',route:'/GBC/projectList',img:require('@/assets/images/GBC/home-menu-4.png')}
],
isLoading: false,
image1: require('@/assets/images/GBC/home-companyProfile.png'),
list1:[
{name:'广西金融投资集团'},{name:'广投集团'},{name:'广西北部湾银行'},{name:'国海证券'},
],
projectList:[],
chooseProjectDialogShow: false,
chooseTeamCode:'',
chooseProjectCode:'',
chooseProjectName: '',
enableProjectDialogShow: false,
}
},
mounted(){
this.homeConfigGBC()
this.setMarginTop()
if(this.$route.query.isFrom == 'login') {
this.gbcProjectList()
}
this.getAgentInfo()
},
methods:{
getAgentInfo(){
let params = {
}
getAgentInfo(params).then(res => {
if(res.result == '0') {
if(res.branchType == '13') {
window.localStorage.setItem('branchType','13')
}
} else {
this.$toast(res.resultMessage)
}
})
},
gbcProjectList(){
let params = {
}
gbcProjectList(params).then(res=>{
if(res.result == '0') {
this.projectList = res.content
if(this.projectList.length == 1) {
this.chooseProjectDialogShow = false
this.chooseTeamCode = this.projectList[0].teamCode
this.chooseProjectCode = this.projectList[0].projectCode
this.chooseProjectName = this.projectList[0].projectName
this.chooseProjectList()
}
if(this.projectList.length > 1) {
this.chooseProjectDialogShow = true
}
} else {
this.$toast(res.resultMessage)
}
})
},
chooseProjectList(){
if(!this.chooseTeamCode) {
this.$toast('请选择项目')
return false
}
if(this.projectList && this.projectList.length != 0) {
this.projectList.forEach(item=>{
if(item.teamCode == this.chooseTeamCode){
this.chooseProjectName = item.projectName
}
})
}
let params = {
teamCode:this.chooseTeamCode
}
gbcProjectConfirm(params).then(res=>{
if(res.result == '0') {
if(res.content.enable == 1){
this.chooseProjectDialogShow = false
} else {
this.enableProjectDialogShow = true
}
} else {
this.$toast(res.resultMessage)
}
})
},
goDetail(data){
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#'+ data.route,
},
routerInfo: {
path: data.route,
},
})
},
setMarginTop(){
EWebBridge.webCallAppInJs("top_bar_height").then(data => {
console.log(data,'top_bar_height')
if(data){
// 获取高度成功
let height = data.height
// 设置高度
this.marginTop = height + 10
}
})
},
homeConfigGBC(){
let params = {
}
homeConfigGBC(params).then(res=>{
if(res.result == 0){
this.activity = res.content.activity
if(res.content.getCodeValue.length!=0){
res.content.getCodeValue.forEach(item=>{
this.getCodeValue += item + ' '
})
}
this.homePageIcon = res.content.icon.homePageIcon
}else{
this.$toast(res.resultMessage)
}
})
},
touchstart(){
this.clickFlag = true
},
touchmove(){
this.clickFlag = false
},
touchend(data){
if(this.clickFlag){
let dataURL = JSON.parse(data.route).extra.url
if(dataURL){
let thisRoute = dataURL.substring(dataURL.lastIndexOf("/#")+2)
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#' + thisRoute,
},
routerInfo: {
path: thisRoute,
},
})
}
}
},
// 下拉刷新
onRefresh() {
setTimeout(() => {
Toast('刷新成功');
this.isLoading = false;
location. reload()
}, 1000);
},
},
// beforeRouteEnter(to, from, next) {
// next(vm => {
// if(from && from.path){
// console.log(from)
// // eslint-disable-next-line no-undef
// if(form.path == '/login') {
// window.sessionStorage.setItem('GBCFrom','GBCLogin')
// }
// }
// });
// },
}
</script>
<style lang="scss" scoped>
.public_container{
font-size: 12px;
height: 100vh;
width: 100vw;
/*background-image: url("../../assets/YB_APP/images/2-1.png");*/
/*background-repeat: no-repeat;*/
/*background-size: contain;*/
background: #F0F8FF;
}
.head {
position: relative;
margin: 10px;border-radius: 5px;
/*box-shadow: 0px 5px 8px 0px #7a6fc1;*/
img {
width: 100%;
height: 100%;
border-radius: 5px;
}
/deep/ .van-swipe-item{
height: auto;
}
}
/deep/ .van-notice-bar{
border-radius: 5px;
}
.menuImg{
width:100%;display: flex;justify-content: center;margin-bottom: 5px;
/deep/ img{
width: 30px;
height: 30px;
}
}
/deep/ .van-notice-bar{
background: #fff;
color: #333;
letter-spacing: 1px;
}
/deep/ .van-icon__image{
width: 100%;
}
/deep/ .van-notice-bar__left-icon{
width: 50px;
}
/deep/ .van-notice-bar__wrap{
margin-left: 10px;
}
/deep/ .van-swipe-item{
img{
height:145px;
}
}
.iconPart1{
margin: 10px;border-radius: 5px;
}
.top{
display:flex;
justify-content: space-between;
margin: 10px;
border-radius: 5px;
align-items: center;
padding: 15px;
}
.title-img {
height: 40px;
}
/deep/ .chooseProjectDialog{
.van-radio__icon {
.van-icon{
border: 1px solid red;
}
}
}
.cooperativeUnits{
background: url("../../assets/images/GBC/home-cooperativeUnits.png");
background-repeat: no-repeat;
background-size: cover;
height: 130px;
padding-top: 60px;
margin: 10px;
border-radius: 10px;
}
</style>

View File

@@ -0,0 +1,379 @@
<template>
<div>
<van-tabs v-model="tabActive">
<van-tab title="客户列表" name="customerList"></van-tab>
<van-tab title="数据看板" name="dataBoard"></van-tab>
<van-tab title="产品列表" name="productList"></van-tab>
</van-tabs>
<div v-if="tabActive == 'customerList'">
<div style="display: flex;align-items: center;padding-left: 10px;background: #fff;">
<div style="width: 30%;">
<van-dropdown-menu :overlay="dropdownmenuoverlay">
<van-dropdown-item v-model="filterType" :options="filterTypeOption" @change="dropdownMenuChange"/>
</van-dropdown-menu>
</div>
<van-search v-if="filterType == 1 || filterType == 2 || filterType == 3" v-model="searchvalue" shape="round" @search="getGBCappntlist" placeholder="搜索客户姓名/部门/科室/服务人员" style="width: 70%;"/>
<div v-if="filterType == 4" style="display: flex;align-items: center;height: 54px;">
<div @click="toChooseDate('startDate')" style="background: #f5f5f5;height: 34px;border-radius: 17px;width: 90px;display: flex;align-items: center;padding:0px 10px;">
<van-icon name="notes-o" />
<span v-if="!startDate" style="font-size: 12px;margin-left: 5px;color: #666;">请选择日期</span>
<span v-if="startDate" style="font-size: 12px;margin-left: 5px;color: #333;">{{startDate}}</span>
</div>
<span style="margin: 0px 5px;font-size: 14px;"></span>
<div @click="toChooseDate('endDate')" style="background: #f5f5f5;height: 34px;border-radius: 17px;width: 90px;display: flex;align-items: center;padding: 0px 10px;">
<van-icon name="notes-o" />
<span v-if="!endDate" style="font-size: 12px;margin-left: 5px;color: #666;">请选择日期</span>
<span v-if="endDate" style="font-size: 12px;margin-left: 5px;color: #333;">{{endDate}}</span>
</div>
</div>
</div>
<div style="padding: 0px 10px 10px;">
<div v-for="(item,index) in customerList" :key="index">
<div style="padding: 20px 20px 10px;border-radius: 5px;background: #fff;margin-top: 20px;">
<div style="display: flex;font-size: 14px;line-height: 30px;border-bottom: 1px solid #eee;padding-bottom: 10px;">
<div style="width: 55%;overflow: hidden;white-space: nowrap;">
<p>客户姓名{{item.appntName}}</p>
<p>手机号码{{item.mobile}}</p>
<p>服务组长{{item.teamLeader}}</p>
</div>
<div style="width: 45%;overflow: hidden;white-space: nowrap;">
<p>部门/科室{{item.departmentName}}</p>
<p>承包保单{{item.contSize}}</p>
<p>服务组员{{item.teamMember}}</p>
</div>
</div>
<div style="display: flex;justify-content: flex-end;margin-top: 10px;">
<van-button @click="goCustomerDetail(item)" type="danger" size="small" style="border-radius:5px;">查看编辑</van-button>
</div>
</div>
</div>
</div>
</div>
<div v-if="tabActive == 'dataBoard'">
<div style="margin: 10px;padding: 10px;background: #fff;border-radius: 5px;">
<p style="font-size: 18px;line-height: 35px;font-weight: bold;">项目名称国富人寿北京协和医院AA项目</p>
<p style="color: #a7a7a7;font-size: 14px;">数据截止日期2024-03-30</p>
<div style="display: flex;justify-content: center;margin-top: 20px;">
<van-circle v-model="currentRate" color="#E9332E" :stroke-width="60" size="80px" :rate="85" :speed="100" :text="text" />
</div>
<p style="display: flex;justify-content: center;font-weight: bold;font-size: 14px;margin: 10px;">面谈转化率</p>
<div style="padding: 10px;background: rgba(251, 235, 230, 0.5);border-radius: 5px;display: flex;justify-content: flex-start;flex-wrap:wrap;">
<div v-for="(item,index) in dataList1" style="width: 33%;display: flex;justify-content: space-around;align-items: center;">
<div>
<div style="font-size: 12px;line-height: 22px;margin: 7px 0px;">
<p style="display: flex;justify-content: center;font-size: 14px;">{{item.value}}</p>
<p style="display: flex;justify-content: center;align-items: center;">
<span class="colorBlock" :style="{background:colorList[index]}"></span>
{{item.name}}
</p>
</div>
</div>
<!-- <div v-if="(index + 1) % 3 != 0 || index < 2" style="width: 1px;background: #FFC9AF;height: 60%;"></div>-->
</div>
</div>
</div>
<div style="margin: 10px;padding: 10px;background: #fff;border-radius: 5px;">
<div style="border-bottom: 1px dashed #666;padding-bottom: 15px;">
<p style="font-size: 18px;line-height: 35px;font-weight: bold;">项目成员分配</p>
<p style="color: #a7a7a7;font-size: 14px;">数据截止日期2024-03-30</p>
</div>
<div style="margin-top: 10px;margin-bottom: 3px;background: rgba(255, 87, 83, 0.7);line-height: 30px;display: flex;align-items: center;color: #fff;font-size: 14px;">
<span style="width: 18%;display: flex;justify-content: center;">成员</span>
<span style="width: 22%;display: flex;justify-content: center;">角色</span>
<span style="width: 30%;display: flex;justify-content: center;">累计标保()</span>
<span style="width: 30%;display: flex;justify-content: center;">受理标保()</span>
</div>
<div>
<div v-for="item in dataList2" style="background: rgba(251, 235, 230, 0.44);margin-bottom: 1px;line-height: 30px;display: flex;align-items: center;color: #333;font-size: 13px;">
<span style="width: 18%;display: flex;justify-content: center;">{{item.name}}</span>
<span style="width: 22%;display: flex;justify-content: center;">{{item.role}}</span>
<span style="width: 30%;display: flex;justify-content: center;">{{item.value1}}</span>
<span style="width: 30%;display: flex;justify-content: center;">{{item.value2}}</span>
</div>
</div>
</div>
<div style="margin: 10px;padding: 10px;background: #fff;border-radius: 5px;">
<div style="border-bottom: 1px dashed #666;padding-bottom: 15px;">
<p style="font-size: 18px;line-height: 35px;font-weight: bold;">项目数据统计</p>
<p style="color: #a7a7a7;font-size: 14px;">数据截止日期2024-03-30</p>
</div>
<div style="margin-top: 10px;margin-bottom: 3px;background: rgba(255, 87, 83, 0.7);line-height: 30px;display: flex;align-items: center;color: #fff;font-size: 14px;">
<span style="width: 25%;display: flex;justify-content: center;">小组</span>
<span style="width: 25%;display: flex;justify-content: center;">组长</span>
<span style="width: 25%;display: flex;justify-content: center;">获客人数</span>
<span style="width: 25%;display: flex;justify-content: center;">获客率</span>
</div>
<div>
<div style="background: rgba(251, 235, 230, 0.44);margin-bottom: 1px;line-height: 30px;display: flex;align-items: center;color: #333;font-size: 13px;">
<span style="width: 50%;display: flex;justify-content: center;">项目合并</span>
<span style="width: 25%;display: flex;justify-content: center;">890</span>
<span style="width: 25%;display: flex;justify-content: center;">89%</span>
</div>
</div>
<div>
<div v-for="(item,index) in dataList3" :key="index" style="background: rgba(251, 235, 230, 0.44);margin-bottom: 1px;line-height: 30px;display: flex;align-items: center;color: #333;font-size: 13px;">
<span style="width: 25%;display: flex;justify-content: center;">{{item.name}}</span>
<span style="width: 25%;display: flex;justify-content: center;">{{item.role}}</span>
<span style="width: 25%;display: flex;justify-content: center;">{{item.value1}}</span>
<span style="width: 25%;display: flex;justify-content: center;">{{item.value2}}</span>
</div>
</div>
</div>
</div>
<div v-if="tabActive == 'productList'">
<div v-for="(item,index) in dataList4" @click="goProductDetail(item.productCode)" :key="index" style="background: #fff;border-radius: 5px;margin: 5px;display: flex;padding: 5px;">
<img :src="item.productImageUrl" style="display: inline-block;width: 35%;border-radius: 5px;"/>
<div style="display: inline-block;width: 65%;padding-left: 10px;">
<p style="font-size: 16px;">{{item.productName}}</p>
<p style="font-size: 14px;color: #bdbdbd;margin-top: 20px;">{{item.productDesc}}</p>
</div>
</div>
</div>
<van-popup v-model="showDataPicker" position="bottom">
<van-datetime-picker type="date" v-model="currentDate" @confirm="onConfirmDate" @cancel="cancelDate" :max-date="maxDate" :min-date="minDate" />
</van-popup>
</div>
</template>
<script>
import { Tab, Tabs, Search, DropdownMenu, DropdownItem, Circle } from 'vant'
import { getList } from '@/api/ebiz/product/product.js'
import { getGBCappntlist } from '@/api/GBC/GBC.js'
export default {
components: {
[Tab.name]: Tab,
[Tabs.name]: Tabs,
[Search.name]: Search,
[DropdownMenu.name]: DropdownMenu,
[DropdownItem.name]: DropdownItem,
[Circle.name]: Circle,
},
data() {
return {
tabActive:1,
searchvalue:'',
filterType: 1,
startDate:'',
endDate:'',
showDataPicker:false,
minDate: new Date(2000, 0, 1),
maxDate: new Date(2050, 11, 31),
currentDate:new Date(),
datePickerType:'',
filterTypeOption: [
{ text: '按客户', value: 1 },
{ text: '按科室', value: 2 },
{ text: '按小组', value: 3 },
{ text: '按日期', value: 4 },
],
dropdownmenuoverlay:false,
customerList:[],
currentRate: 0,
colorList:['#E9332E','#CB9BFF','#54C6FA','#FF9B39','#60D64D','#4045F3','#FF59D9','#E8C0A2','#FCD338','#7584A2'],
dataList1:[
{name:'累计受理保费(元)',value:'150,000.00'},
{name:'累计标保(元)',value:'250,000.00'},
{name:'件均保费(元)',value:'130,000.00'},
{name:'件均保费(元)',value:'10856'},
{name:'累计受理件数(件)',value:'356'},
{name:'累计承保人数(人)',value:'9569'},
{name:'累计承保件数(件)',value:'262'},
],
dataList2:[
{name:'张大大',role:'项目经理',value1:'15,000.00',value2:'15,000.00'},
{name:'张大大',role:'项目经理',value1:'15,000.00',value2:'15,000.00'},
{name:'张大大',role:'项目经理',value1:'15,000.00',value2:'15,000.00'},
{name:'张大大',role:'项目经理',value1:'15,000.00',value2:'15,000.00'},
{name:'张大大',role:'项目经理',value1:'15,000.00',value2:'15,000.00'},
{name:'张大大',role:'项目经理',value1:'15,000.00',value2:'15,000.00'},
{name:'张大大',role:'项目经理',value1:'15,000.00',value2:'15,000.00'},
],
dataList3:[
{name:'A组',role:'李艾',value1:'600',value2:'60'},
{name:'A组',role:'李艾',value1:'600',value2:'60'},
{name:'A组',role:'李艾',value1:'600',value2:'60'},
{name:'A组',role:'李艾',value1:'600',value2:'60'},
{name:'A组',role:'李艾',value1:'600',value2:'60'},
{name:'A组',role:'李艾',value1:'600',value2:'60'},
{name:'A组',role:'李艾',value1:'600',value2:'60'},
],
dataList4:[],
}
},
created() {
},
mounted(){
this.getGBCappntlist()
this.getProductList()
},
methods: {
dropdownMenuChange(value){
this.filterType = value
this.searchvalue = ''
this.startDate = ''
this.endDate = ''
if(value == 1 || value == 2 || value == 3) {
this.getGBCappntlist()
}
},
getGBCappntlist(){
let params = {
"projectCode": this.$route.query.projectCode,
"filterType": this.filterType,
"appntName": "",
"departmentName": "",
"teamMemberName": "",
"startDate": "",
"endDate": ""
}
if(this.filterType == 1){
params.appntName = this.searchvalue
}
if(this.filterType == 2){
params.departmentName = this.searchvalue
}
if(this.filterType == 3){
params.teamMemberName = this.searchvalue
}
if(this.filterType == 4) {
params.startDate = this.startDate
params.endDate = this.endDate
}
getGBCappntlist(params).then(res=>{
if(res.result == '0') {
this.customerList = []
if(res.content && res.content.length != 0) {
this.customerList = res.content
}
} else {
this.$toast(res.resultMessage)
}
})
},
toChooseDate(type){
this.datePickerType = type
if(type == 'startDate') {
this.showDataPicker = true
}
if(type == 'endDate') {
this.showDataPicker = true
}
},
onConfirmDate(date){
if(this.datePickerType == 'startDate') {
let year = date.getFullYear()
let month = String(date.getMonth() + 1).padStart(2, '0');
let day = String(date.getDate()).padStart(2, '0');
this.startDate = year + '-' + month + '-' + day;
if(this.endDate) {
this.getGBCappntlist()
}
}
if(this.datePickerType == 'endDate') {
let year = date.getFullYear()
let month = String(date.getMonth() + 1).padStart(2, '0');
let day = String(date.getDate()).padStart(2, '0');
this.endDate = year + '-' + month + '-' + day;
if(this.startDate) {
this.getGBCappntlist()
}
}
this.showDataPicker = false
},
cancelDate(){
this.showDataPicker = false
},
goCustomerDetail(data){
this.$router.push({
path:'/GBC/customerDetail',
query:{
projectCode:this.$route.query.projectCode,
appntId:data.appntId
},
})
},
getProductList(){
let params = {
type: 'app'
}
getList(params).then(res=>{
if(res.result == '0') {
this.dataList4 = this.dataList4.concat(res.productList)
this.dataList4 = this.dataList4.concat(res.productList)
this.dataList4 = this.dataList4.concat(res.productList)
this.dataList4 = this.dataList4.concat(res.productList)
} else {
this.$toast(res.resultMessage)
}
})
},
goProductDetail(productCode) {
localStorage.productDetailCode = productCode
this.$jump({
flag: 'h5',
extra: {
url: location.origin + `/#/product/ProductDetail/${productCode}`
},
routerInfo: {
path: `/product/ProductDetail/${productCode}`
}
})
},
},
// watch: {
// isShowOthenSalarySource(nVal) {
// if (!nVal) {
// this.userInfo.otherSalarySource = ''
// }
// },
// },
computed: {
text() {
return this.currentRate.toFixed(0) + '%';
},
},
beforeRouteLeave(to, from, next) {
document.body.style.backgroundColor = ''
next()
}
}
</script>
<style lang="scss" scoped>
/deep/ .van-search__content{
background: #fff;
}
/deep/ .van-dropdown-menu{
height: 34px;
}
/deep/ .van-dropdown-item__content{
width: 40%;
left: 10px;
}
/deep/ .van-dropdown-menu{
background: #f5f5f5;
}
.colorBlock{
width: 8px;
height: 8px;
display: inline-block;
/*background: #000;*/
border-radius: 3px;
margin-right: 3px;
}
/deep/ .van-hairline--top-bottom::after{
border: none;
}
/deep/ .van-dropdown-menu{
background: #fff;
}
/deep/ .van-search__content{
background: #f5f5f5;
}
/deep/ [data-v-3f765cce] .van-dropdown-item__content{
box-shadow: 0px 0px 5px 5px #f5f5f5;
}
</style>

View File

@@ -0,0 +1,87 @@
<template>
<div>
<van-search v-model="searchvalue" shape="round" background="#fff" placeholder="搜索项目名称"/>
<div style="padding: 10px;">
<van-collapse v-for="item in yearList" :key="item.year" v-model="activeNames" style="margin-top: 10px;border-radius: 5px;">
<van-collapse-item :title="item.year" :name="item.year">
<div v-for="(ii,iis) in item.projects" @click="goprojectDetail(ii)" :key="iis" style="display: flex;justify-content: space-between;align-items: center;padding: 10px;border-bottom: 1px solid #eee;">
<div>
<p style="color:#323233;margin-bottom: 10px;">{{ii.projectName}}</p>
<p v-if="ii.enable == '1'">服务起止日期<span style="margin-left: 10px;">{{ii.startDate}}{{ii.endDate}}</span></p>
<p v-if="ii.enable == '0'">服务起止日期<span style="margin-left: 10px;color: red;">{{ii.startDate}}{{ii.endDate}}</span></p>
</div>
<van-icon name="arrow" />
</div>
</van-collapse-item>
</van-collapse>
</div>
</div>
</template>
<script>
import { Search, Collapse, CollapseItem, Icon } from 'vant'
import { getGBCprojectlistByYear } from '@/api/GBC/GBC'
export default {
components: {
[Search.name]: Search,
[Collapse.name]: Collapse,
[CollapseItem.name]: CollapseItem,
[Icon.name]: Icon,
},
data() {
return {
searchvalue:'',
activeNames: [],
yearList:[],
}
},
created() {
},
mounted(){
this.getGBCprojectlistByYear()
},
methods: {
getGBCprojectlistByYear(){
let params = {
}
getGBCprojectlistByYear(params).then(res=>{
if(res.result == '0') {
this.yearList = []
if(res.content && res.content.length != 0) {
this.yearList = res.content
}
} else {
this.$toast(res.resultMessage)
}
})
},
goprojectDetail(data){
this.$router.push({
path:'/GBC/projectDetail',
query:{
projectCode:data.projectCode
},
})
},
},
beforeRouteLeave(to, from, next) {
document.body.style.backgroundColor = ''
next()
}
}
</script>
<style lang="scss" scoped>
/deep/ .van-search__content{
background: #f7f8fa;
}
/deep/ .van-cell__title{
font-weight: bold;
}
/deep/ .van-collapse-item__title{
border-radius: 5px;
}
</style>

View File

@@ -91,7 +91,7 @@
// this.pdfUrl = config.assetsUpUrl + res.content.rgssUrl
//实例化
this.pdfh5 = new Pdfh5("#pdfH5ID", {
pdfurl: config.assetsUpUrl + res.content.rgssUrl,
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

View File

@@ -173,6 +173,19 @@ export default {
}
}
},
created() {
},
mounted() {
let date = new Date()
let month = date.getMonth() + 1
if (month <= 9) {
month = '0' + month
}
//默认展示当天数据
this.postDate = date.getFullYear() + '-' + month + '-' + date.getDate()
this.initData()
},
methods: {
//切换当月、当天
switchDayOrMonth(index) {
@@ -218,7 +231,14 @@ export default {
* 查询机构下拉列表
* manageCode, manageLv传空查全国所有二级机构
**/
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
let resData = await getBranchByUser({})
this.$toast.clear()
if (resData.result != '0') return this.$toast(resData.resultMessage)
this.manageLv = resData.content.level
//当前token查不出机构时,展示敬请期待
@@ -275,6 +295,12 @@ export default {
},
// 查询列表数据
queryOutOrderListFunc() {
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
queryOutOrderList({
dateFlag: this.dateFlag,
appntDate: this.postDate,
@@ -284,6 +310,7 @@ export default {
pageNum: this.pageNum,
pageSize: this.pageSize
}).then(res => {
this.$toast.clear()
if (res.result == 0) {
if (res.content) {
this.pageNum++
@@ -388,16 +415,6 @@ export default {
this.queryOutOrderListFunc()
}
},
created() {
let date = new Date()
let month = date.getMonth() + 1
if (month <= 9) {
month = '0' + month
}
//默认展示当天数据
this.postDate = date.getFullYear() + '-' + month + '-' + date.getDate()
this.initData()
}
}
</script>

View File

@@ -133,7 +133,7 @@
class="attachmentManagement-next"
size="large"
:disabled="isDisabled"
@click="next"
@click="appntIsAgent"
@touchstart="beforeNext(isDisabled)"
v-no-more-click="1000"
>立即投保</van-button
@@ -148,7 +148,7 @@ import { Cell, CellGroup, Field, Uploader, RadioGroup, Radio, Dialog, Picker, Po
import { cardOrderDetail,saveOrUpdateGroupCard } from '@/api/ebiz/cardList/cardList.js'
import config from '@/config'
import utils from '../../../assets/js/business-common'
import { underWrite } from '@/api/ebiz/sale/sale'
import { underWrite, appntIsAgent } from '@/api/ebiz/sale/sale'
import { uploadImg, IDCardOCR } from '@/api/ebiz/sale/sale'
@@ -1037,6 +1037,35 @@ export default {
}
});
},
appntIsAgent(){
let params = {
orderNo: this.cardOrderNo
}
appntIsAgent(params).then(res=>{
if(res.result == '0') {
if(res.content.isAgengFlag == '0') {
this.$dialog.confirm({
className: 'dialog-delete',
title: '提示',
message: '投保人/法人同时为代理人此代理人费用为0。虚拟账号的提示虚拟代理人费用为0。请确认提交审核或者退回修改',
cancelButtonColor: '#E9332E',
confirmButtonColor: '#FFFFFF',
cancelButtonText: '退回'
})
.then(() => {
this.next()
})
.catch(() => {
return
})
} else {
this.next()
}
} else {
this.$toast(res.resultMessage)
}
})
},
// 点击下一步
next() {

View File

@@ -579,7 +579,7 @@ import CustomerPicker from '@/components/ebiz/customer/CustomerPicker'
import DataDictionary from '@/assets/js/utils/data-dictionary'
import areaList from '@/assets/js/utils/areaForSale'
import { getProductInfo,saveOrUpdateCard,insureTrial } from '@/api/ebiz/cardList/cardList.js'
import { underWrite } from '@/api/ebiz/sale/sale'
import { underWrite, appntIsAgent } from '@/api/ebiz/sale/sale'
import utilsAge from '@/assets/js/utils/age'
import getAreaName from '@/assets/js/utils/getAreaNameForSale'
import IdentityCardScan from '@/components/ebiz/sale/IdentityCardScan'
@@ -1097,6 +1097,35 @@ export default {
this.areaCode = this.insuredInfo.homeArea
}
},
appntIsAgent(orderNo){
let params = {
orderNo: orderNo
}
appntIsAgent(params).then(res=>{
if(res.result == '0') {
if(res.content.isAgengFlag == '0') {
this.$dialog.confirm({
className: 'dialog-delete',
title: '提示',
message: '投保人/法人同时为代理人此代理人费用为0虚拟账号的提示虚拟代理人费用为0请确认提交审核或者退回修改',
cancelButtonColor: '#E9332E',
confirmButtonColor: '#FFFFFF',
cancelButtonText: '退回'
})
.then(() => {
this.underWrite(orderNo)
})
.catch(() => {
return
})
} else {
this.underWrite(orderNo)
}
} else {
this.$toast(res.resultMessage)
}
})
},
underWrite(orderNo) {
let data = {
platform: 'app',
@@ -2401,8 +2430,8 @@ export default {
// console.log(this.userInfo)
let orderNo = (localStorage.orderNo = resultData.content.object)
this.underWrite(orderNo)
this.appntIsAgent(orderNo)
// this.underWrite(orderNo)
} else {
console.error(resultData.resultMessage)
this.$toast(resultData.resultMessage)

View File

@@ -37,6 +37,7 @@
:show-plus="false"
:show-minus="false"
class="ml30"
:disabled="item.productCode == 'GFRS_M0083' && isFrom != 'proposal'"
@change="
stepperChange(
item.calFactorLst[riskFactorIndex].displayAmount,
@@ -319,7 +320,7 @@
placeholder="请录入保单号或者投保单号,如果关联多个保单,请用\隔开"
/>
</div>
<div class="flex justify-content-s pv10 border-bottom prem">
<div class="flex justify-content-s pv10 border-bottom prem" v-if="item.productCode != 'GFRS_M0080' && item.productCode != 'GFRS_M0083' && item.productCode != 'GFRS_M0085'">
<!-- trialType 0-保额算保费1-保费算保额 -->
<!-- isTrial是否需存在特殊配置(规则) 0-是 1-否-->
<span
@@ -332,13 +333,13 @@
<span class="fee red" v-if="trialList && trialList.length > 0">{{ trialList[index].showPrem | moneyFormat }}</span>
</div>
</div>
<div class="flex justify-content-fs pv10 ph15 bg-white border-bottom prem align-items-c" v-if="cvalidateFlag && cvalidateStr != '2021-12-31'">
<span>指定保单生效日</span>
<van-radio-group v-model="activeRadio" class="pl20">
<van-radio name="1" icon-size="1rem"></van-radio>
</van-radio-group>
<span class="pl5">{{ cvalidateStr }}</span>
</div>
<!-- <div class="flex justify-content-fs pv10 ph15 bg-white border-bottom prem align-items-c" v-if="cvalidateFlag && cvalidateStr != '2021-12-31'">-->
<!-- <span>指定保单生效日</span>-->
<!-- <van-radio-group v-model="activeRadio" class="pl20">-->
<!-- <van-radio name="1" icon-size="1rem"></van-radio>-->
<!-- </van-radio-group>-->
<!-- <span class="pl5">{{ cvalidateStr }}</span>-->
<!-- </div>-->
<div class="bottom-btn bg-white flex" v-if="isFrom == 'proposal'">
<van-button type="danger" size="large" @click="nextStep" :disabled="nextStepFlag" v-no-more-click="1000">完成</van-button>
</div>
@@ -788,6 +789,16 @@
this.isEnterAddtionRiskListFunc()
}
}
if ((item.mainRiskCode == 'GFRS_M0083' || item.mainRiskCode == 'GFRS_M0085') && this.isFrom == 'proposal') {
item.calFactorLst.forEach((i) => {
if (i.code == "inputPrem") {
i.minPrem = 0.01
i.displayAmount = 0.01
i.defaultValue = 0.01
}
})
}
console.log(item,'123231321321')
let payEndYearVal
//初始化时交费期间为一次性交清时,在就是中介渠道, 附加险GFRS_A0007GFRS_A0009GFRS_A0010去掉后附加险list就为空--隐藏icon
item.calFactorLst.map((i) => {
@@ -2004,6 +2015,38 @@
//试算
async getTrial() {
let that = this
let productCode = ''
let thisproductInfo = JSON.parse(window.localStorage.getItem('chooseProducts'))
if(thisproductInfo && thisproductInfo.length != 0) {
thisproductInfo.forEach(item => {
if(item.productCode == 'GFRS_M0083' || item.productCode == 'GFRS_M0085') {
productCode = item.productCode
}
})
}
if(this.isFrom != 'proposal'){
if(productCode == 'GFRS_M0083' || productCode == 'GFRS_M0085'){
if(!that.policyNo){
that.chooseProducts.forEach(item=>{
item.calFactorLst.forEach(ii=>{
if(ii.type == 1) {
ii.minPrem = 5
ii.displayAmount = 5
}
})
})
} else {
that.chooseProducts.forEach(item=>{
item.calFactorLst.forEach(ii=>{
if(ii.type == 1) {
ii.minPrem = 0.01
ii.displayAmount = 0.01
}
})
})
}
}
}
this.nextStepFlag = true
this.$toast.clear()
this.$toast.loading({
@@ -2321,7 +2364,7 @@
this.saleInsuredInfo.sex,
this.saleInsuredInfo.occupationCode,
this.saleInsuredInfo.occupationName,
this.saleInsuredPersonInfo.insuredAge
this.saleInsuredInfo.age?this.saleInsuredInfo.age:this.saleInsuredInfo.insuredAge
]
} else {
;[birthday, sex, occupationCode, occupationName, age] = [
@@ -2656,6 +2699,22 @@
}
}
}
else if (productCode == 'GFRS_M0083' || productCode == 'GFRS_M0085') {
if(this.isFrom != 'proposal'){
if(!this.policyNo && defalutValue < 5) {
this.$toast('单独投保保费为大于等于50000元')
currentEle['minPrem'] = 5
} else if(this.policyNo && defalutValue < 0.01) {
this.$toast('与其他主险关联投保时保费要求保费大于等于100元')
currentEle['minPrem'] = 0.01
}
} else {
if(defalutValue < 0.01){
currentEle['minPrem'] = 0.01
this.$toast('保费最小100元')
}
}
}
else if (this.isTrial === '0' && this.chooseProducts[productIndex].isMainRisk == '0') {
if (Number(defalutValue) < Number(min)) {
if (riskFactor.yearWay == "一次性交清") {

File diff suppressed because it is too large Load Diff

View File

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

View File

@@ -11,10 +11,10 @@
<th>姓名</th>
<th class="company">营销服务部</th>
<th>预收规保</th>
<th>承保标保</th>
<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>
@@ -29,10 +29,10 @@
<th>姓名</th>
<th class="company">营销服务部</th>
<th>预收规保</th>
<th>承保标保</th>
<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>
@@ -56,7 +56,7 @@
</div>
</van-col>
<van-col span="12" class="detail">
<div class="m-title mt15">本月承保标保</div>
<div class="m-title mt15">本月承保期交</div>
<div class="m-number mt12">
<span class="c-gray-darker fs26 fw500"> {{ showData.achievement.selfAcceptStand }}</span>
<span class="m-gray fs12 c-gray-dark ml20">万元</span>
@@ -78,7 +78,7 @@
</div>
</van-col>
<van-col span="12" class="detail" style="border-right: 1px solid #ff4040;">
<div class="m-title mt15">承保标保排名</div>
<div class="m-title mt15">承保期交排名</div>
<div class="m-number mt12">
<span class="m-gray fs12 c-gray-dark mr20"></span>
<span class="c-gray-darker fs26 fw500">{{ showData.achievement.rankingBb }}</span>
@@ -86,7 +86,7 @@
</div>
</van-col>
<van-col span="12" class="detail">
<div class="m-title mt15">距上一名承保标保差距</div>
<div class="m-title mt15">距上一名承保期交差距</div>
<div class="m-number mt12">
<span class="c-gray-darker fs26 fw500">{{ showData.achievement.previousCbbbGap }}</span>
<span class="m-gray fs12 c-gray-dark ml20"></span>

View File

@@ -59,7 +59,7 @@ export default {
for (var i = 0; i < myseries.data.length; i++) {
if (myseries.data[i].name == params.name) {
res += myseries.data[i].comName + '</br>'
res += '承保标保' + ' : ' + myseries.data[i].sum + '万元</br>'
res += '承保期交' + ' : ' + myseries.data[i].sum + '万元</br>'
res += '目标达成率' + ' : ' + myseries.data[i].rate + '%</br>'
}
}
@@ -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

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

View File

@@ -5,7 +5,7 @@
<div class="header-left">
<van-button>
<img :src="point" />
<span class="ml5 mr5">标保</span>
<span class="ml5 mr5">期交</span>
</van-button>
</div>
<div class="header-center">
@@ -132,7 +132,7 @@ export default {
// 实时筛选时间条件
timeCondition: dateUtil.formatDate(currentDate, 'yyyy-MM-dd HH:mm'),
dayTimeCondition: currentDate,
// 0: 标保, 1: 人力, 2: 产品
// 0: 期交, 1: 人力, 2: 产品
typeIndex: 0,
//子组件机构名称的角标等于this.availableLevel - 3
active: 0,

View File

@@ -36,7 +36,7 @@ export default {
const res =await getServiceConfig({})
if (res.sections) {
res.sections.forEach(e=>{
if(e.name.indexOf('开门红专区')!=-1){
if(e.name.indexOf('一月专区')!=-1){
this.menuList =e.items;
}
})

View File

@@ -0,0 +1,178 @@
<template>
<div class="detail-container pb50">
<van-cell title="客户名称" :value="dataInfo.name" />
<van-cell title="地址" :value="dataInfo.address" />
<van-cell title="联系人姓名" :value="dataInfo.contactName" />
<van-cell title="联系电话" :value="dataInfo.contactPhone" />
<van-cell title="原保单号" v-if="this.$route.query.renewalFlag == '0'" :value="dataInfo.contNo" />
<van-cell title="保单号" v-if="this.$route.query.renewalFlag == '1' && agentType == '服务经理'" :value="dataInfo.contNo" />
<van-cell title="新保单号" v-if="this.$route.query.renewalFlag == '1' && agentType == '营业部经理'" :value="dataInfo.contNo" />
<div v-if="this.$route.query.renewalFlag == '0'">
<div v-for="item in dataInfo.oldRiskMessageDTOList">
<van-cell title="原保单险种名称" :value="item.riskName" />
<van-cell title="原保单保费" :value="item.prem+'元'" class="lastvancell"/>
</div>
</div>
<van-cell title="保单保费" v-if="this.$route.query.renewalFlag == '1'" :value="dataInfo.prem+'元'" />
<van-cell title="代理人" v-if="agentType == '服务经理'" :value="dataInfo.agentCustomerManagerName" />
<van-cell title="代理人工号" v-if="agentType == '服务经理'" :value="dataInfo.agentCustomerManagertCode" />
<van-cell title="客户经理" v-if="agentType == '营业部经理'" :value="dataInfo.agentCustomerManagerName" />
<van-cell title="客户经理工号" v-if="agentType == '营业部经理'" :value="dataInfo.agentCustomerManagertCode" />
<van-collapse v-if="this.$route.query.renewalFlag == '0'" v-model="activeName1">
<van-collapse-item name="1">
<template #title>
<div style="display: flex;width: 100%;justify-content: space-between">
<span style="width: 33%;">续保意见</span>
<p style="display: inline-block;width: 65%;overflow:hidden;text-overflow: ellipsis;color: #969799;white-space: nowrap;">{{dataInfo.renewalOpinions}}</p></div>
</template>
<div>{{dataInfo.renewalOpinions}}</div>
</van-collapse-item>
</van-collapse>
<van-collapse v-if="this.$route.query.renewalFlag == '0'" v-model="activeName2">
<van-collapse-item name="1">
<template #title>
<div style="display: flex;width: 100%;justify-content: space-between">
<span style="width: 33%;">未续保原因</span>
<p style="display: inline-block;width: 44%;overflow:hidden;text-overflow: ellipsis;color: #969799;white-space: nowrap;">{{dataInfo.reason}}</p>
<van-button type="danger" round size="mini" @click.stop="dialogshow = true" style="margin-right: 10px;">编辑</van-button>
</div>
</template>
<div>{{dataInfo.reason}}</div>
</van-collapse-item>
</van-collapse>
<van-dialog v-model="dialogshow" title="未续保原因" show-cancel-button @confirm="dialogConfirm" @cancel="dialogCancel">
<div style="border: 1px solid #eee;margin: 0px 15px 5px 15px;" class="dialogtextarea">
<van-field v-model="message" rows="3" autosize label="留言" type="textarea" maxlength="200" placeholder="请输入" show-word-limit/>
</div>
</van-dialog>
</div>
</template>
<script>
import { Collapse, CollapseItem, Cell} from 'vant'
import { getAgentInfo } from '@/api/ebiz/my/my.js'
import { healthgetRenewalListDetail, reasonForNonRenewalSubmitted } from '@/api/ebiz/healthInsuranceRenewal/healthInsuranceRenewal'
export default {
components: {
[Collapse.name]: Collapse,
[CollapseItem.name]: CollapseItem,
[Cell.name]: Cell
},
data() {
return {
agentType: '',
dataInfo:{},
activeName1:[],
activeName2:[],
dialogshow: false,
message:''
}
},
created() {
},
mounted() {
this.getAgentInfo()
},
methods:{
getAgentInfo(){
let params = {
}
getAgentInfo(params).then(res=>{
if (res.result == 0) {
if(res.agentGrade == 'G200' || res.agentGrade == 'G201' || res.agentGrade == 'G202' || res.agentGrade == 'G202' || res.agentGrade == 'G204'){
this.agentType = '营业部经理'
} else {
this.agentType = '服务经理'
}
this.healthgetRenewalListDetail()
} else {
this.$toast(res.resultMessage)
}
})
},
healthgetRenewalListDetail(){
let params = {
"renewalFlag":this.$route.query.renewalFlag,
"agentCode":this.$route.query.agentCode,
"cvaliStartDate":this.$route.query.cvaliStartDate,
"cvaliEndDate":this.$route.query.cvaliEndDate,
"grpContNo": this.$route.query.grpContNo
}
healthgetRenewalListDetail(params).then(res=>{
if(res.result == 0){
if(this.$route.query.renewalFlag == '0'){
this.dataInfo = res.getUnRenewaLlistDetailDTO
}
if(this.$route.query.renewalFlag == '1'){
this.dataInfo = res.getRenewaLlistDetailDTO
}
} else {
this.$toast(res.resultMessage)
}
})
},
dialogConfirm(){
let params = {
"grpContNo": this.$route.query.grpContNo, //团保单号,续保清单给扔过
"xbReason":this.message,
"submitter": this.$route.query.agentCode
}
reasonForNonRenewalSubmitted(params).then(res=>{
if(res.result == 0){
this.$toast('提交成功')
this.dataInfo.reason = this.message
this.message = ''
}else{
this.$toast(res.resultMessage)
}
})
},
dialogCancel(){
this.message = ''
this.dialogshow = false
}
}
}
</script>
<style lang="scss" scoped>
/deep/ .van-cell__title{
flex:1;
}
/deep/ .van-cell__value{
flex:2;
}
/deep/ .van-cell__value {
text-align: left !important;
}
/deep/ .van-collapse-item__content{
word-break: break-word;
}
/deep/ .van-collapse-item{
width: 100%;
.van-cell__title{
width: calc(100% - 30px;);
}
}
.dialogtextarea{
/deep/ .van-cell__title{
display: none;
}
}
.lastvancell::after {
border-bottom: 1px solid #dadada;
}
.lastvancell::after {
position: absolute;
box-sizing: border-box;
content: ' ';
pointer-events: none;
right: 0;
bottom: 0;
left: 4.26667vw;
-webkit-transform: scaleY(.5);
transform: scaleY(.5);
}
</style>

View File

@@ -0,0 +1,259 @@
<template>
<div class="sale-list-container pb50">
<div class="topsearch" style="display: flex;background:#fff;align-items: center;">
<div v-if="agentType == '营业部经理'" style="width: 50%;padding: 10px 5px;">
<van-field @click="openchooseagent" v-model="searchName" disabled style="background: #f7f8fa;padding:5px 10px;" label="业务员" right-icon="arrow" placeholder="请选择"/>
</div>
<div style="width: 50%;padding: 10px 5px;">
<van-field @click="openshowDataPicker" v-model="showChooseDate" disabled style="background: #f7f8fa;padding:5px 10px;" label="日期" right-icon="arrow" placeholder="请选择"/>
</div>
</div>
<van-sticky>
<van-tabs :line-width="45" v-model="active" @change="tabChange" sticky>
<van-tab name="0" title="未续保"></van-tab>
<van-tab name="1" 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="getOrderList"
class="pb45">
<div v-if="listData.length > 0">
<div v-for="(item, index) in listData" :key="index">
<div style="background: #fff;margin: 15px;border-radius: 5px;padding: 15px;">
<div style="line-height: 35px;"><span style="width: 40%;display: inline-block;">客户名称</span><span style="width: 60%;display: inline-block;">{{item.name}}</span></div>
<div style="line-height: 35px;"><span style="width: 40%;display: inline-block;">保单号</span><span style="width: 60%;display: inline-block;">{{item.contNo}}</span></div>
<div style="line-height: 35px;"><span style="width: 40%;display: inline-block;">保单终止时间</span><span style="width: 60%;display: inline-block;">{{item.endDate}}</span></div>
<div style="line-height: 35px;" v-if="item.continueFlag == '0'"><span style="width: 40%;display: inline-block;">是否续保</span><span style="width: 60%;display: inline-block;color: #d9001b;">未续保</span></div>
<div style="line-height: 35px;" v-if="item.continueFlag == '1'"><span style="width: 40%;display: inline-block;">是否续保</span><span style="width: 60%;display: inline-block;">已续保</span></div>
<div style="line-height: 35px;" v-if="agentType == '营业部经理'"><span style="width: 40%;display: inline-block;">服务经理</span><span style="width: 60%;display: inline-block;">{{item.agentManager}}</span></div>
<div style="line-height: 35px;display: flex;justify-content: flex-end;"><van-button round @click="goDetail(item)" size="small" style="height: 26px;line-height: 26px;" class="mr5" type="danger" v-no-more-click="1000">详情</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>
</van-list>
<van-popup v-model="showDataPicker" position="bottom">
<van-datetime-picker type="year-month" v-model="currentDate" title="选择年月" :formatter="formatter" @confirm="onConfirmDate" @cancel="showDataPicker = false" :min-date="minDate" :max-date="maxDate"/>
</van-popup>
<van-popup v-model="popupShow" position="bottom">
<van-picker show-toolbar :columns="columns" @confirm="onConfirm" @cancel="popupShow = false" />
</van-popup>
</div>
</template>
<script>
import { Search, Tabs, Tab, List, Tag, Sticky, Field, Icon } from 'vant'
import { healthgetRenewalList, getAgentManager } from '@/api/ebiz/healthInsuranceRenewal/healthInsuranceRenewal'
export default {
name: 'saleList',
components: {
[Field.name]: Field,
[Search.name]: Search,
[Tabs.name]: Tabs,
[Tab.name]: Tab,
[List.name]: List,
[Tag.name]: Tag,
[Sticky.name]: Sticky,
[Icon.name]: Icon,
},
data() {
return {
agentType: '',
searchName: '',
agentCode: '',
active: '0',
listData: [],
loading: false,
finished: false,
total: '',
currentPage: 1,
error: false,
finishedText: '',
pageSize: 5,
showDataPicker:false,
minDate: new Date(2000, 0),
maxDate: new Date(2100, 12),
cvaliStartDate: '',
currentDate: '',
showChooseDate: '',
cvaliEndDate: '',
oldOptionsData:[],
columns: [],
popupShow: false,
}
},
mounted() {
this.initDate()
this.getAgentManager()
},
methods: {
openchooseagent(){
this.popupShow = true
},
onConfirm(val){
let thisIndex = val.indexOf(' ')
this.agentCode = val.slice(0, thisIndex)
this.searchName = val.slice(thisIndex).trim()
this.popupShow = false
this.currentPage = 1
this.listData = []
;[this.loading, this.finished] = [true, false]
this.getOrderList()
},
getAgentManager() {
let params = {
agentCode: 'G0000011'
}
getAgentManager(params).then(res=>{
if(res.result == '0') {
if(res.content.agentManagerFlag == '1') {
this.agentType = '营业部经理'
} else {
this.agentType = '服务经理'
}
if(res.content.getAgentListResDTOList && res.content.getAgentListResDTOList.length != 0){
res.content.getAgentListResDTOList.forEach(item => {
this.columns.push(item.agentCode + ' ' + item.name)
})
}
this.getOrderList()
} else {
this.$toast(res.resultMessage)
}
})
},
//列表查询
getOrderList() {
let params = {
renewalFlag: this.active,
agentCode: this.agentCode,
cvaliStartDate: this.cvaliStartDate,
cvaliEndDate: this.cvaliEndDate,
}
healthgetRenewalList(params).then(res => {
if (res.result == '0') {
if(this.active == '0'){
if(res.unRenewalInformationDTOList && res.unRenewalInformationDTOList.length != 0){
this.listData = res.unRenewalInformationDTOList
}
}
if(this.active == '1'){
if(res.informationDTOList && res.informationDTOList.length != 0){
this.listData = res.informationDTOList
}
}
;[this.loading, this.finished] = [false, true]
} else {
;[this.loading, this.finished] = [false, true]
this.$toast(res.resultMessage)
}
})
},
//切换
tabChange(name) {
this.currentPage = 1
this.active = name
this.listData = []
;[this.loading, this.finished] = [true, false]
this.getOrderList()
},
//搜索
searchList() {
this.currentPage = 1
this.listData = []
;[this.loading, this.finished] = [true, false]
this.getOrderList()
},
//投保单详情
goDetail(item) {
this.$router.push({
path: '/healthInsuranceRenewal/detail',
query: {
grpContNo: item.grpContNo,
renewalFlag: this.active,
agentCode: this.agentCode,
cvaliStartDate: this.cvaliStartDate,
cvaliEndDate: this.cvaliEndDate,
}
})
},
initDate(){
let thisDate = new Date()
let thisYear = thisDate.getFullYear()
let thisMonth = thisDate.getMonth()+1
if(thisMonth < 10){
thisMonth = '0'+thisMonth
}
this.currentDate = thisYear + '-' + thisMonth
this.showChooseDate = thisYear + '-' + thisMonth
let date = new Date(this.currentDate);
date.setDate(1);
let firstDay1 = date.toLocaleDateString();
this.cvaliStartDate = firstDay1.replaceAll('/','-')
date.setMonth(date.getMonth() + 1);
date.setDate(0);
let lastDay1 = date.toLocaleDateString();
this.cvaliEndDate = lastDay1.replaceAll('/','-')
},
//打开日期选择
openshowDataPicker(){
this.currentDate = new Date()
this.showDataPicker = true
},
//日期选择
onConfirmDate(value){
let thisDate = new Date(value)
let thisYear = thisDate.getFullYear()
let thisMonth = thisDate.getMonth()+1
if(thisMonth < 10){
thisMonth = '0'+thisMonth
}
this.currentDate = thisYear + '-' + thisMonth
this.showChooseDate = thisYear + '-' + thisMonth
console.log(this.currentDate)
let date = new Date(this.currentDate);
date.setDate(1);
let firstDay1 = date.toLocaleDateString();
this.cvaliStartDate = firstDay1.replaceAll('/','-')
date.setMonth(date.getMonth() + 1);
date.setDate(0);
let lastDay1 = date.toLocaleDateString();
this.cvaliEndDate = lastDay1.replaceAll('/','-')
this.showDataPicker = false
this.currentPage = 1
this.listData = []
;[this.loading, this.finished] = [true, false]
this.getOrderList()
},
formatter(type, val) {
if (type === 'year') {
return `${val}`;
} else if (type === 'month') {
return `${val}`;
}
return val;
},
}
}
</script>
<style lang="scss" scoped>
.topsearch{
/deep/ .van-field__label{
width: 50px;
}
}
</style>

View File

@@ -74,8 +74,8 @@
<tr v-if="curMainType == '01'" class="title">
<th class="td-1" style="height: 1.2em;">排名</th>
<th class="td-2" style="height: 1.2em;width:8.6em">机构</th>
<th>预收标保</th>
<th>承保标保</th>
<th>预收期交</th>
<th>承保期交</th>
<th>承保保费</th>
<th>预收件数</th>
<th>承保件数</th>
@@ -176,8 +176,8 @@ export default {
// 数据
personalDate: [],
timeVal: '',
sortTypeText: '预收标保',
queryColumns: ['预收件数', '预收标保', '承保件数', '承保标保', '承保标保'],
sortTypeText: '预收期交',
queryColumns: ['预收件数', '预收期交', '承保件数', '承保期交', '承保期交'],
// 人力排名
// sortTypeText: '活动人力',
// queryColumns: ['活动人力', '合格人力', '桂冠人力', '新增人力'],
@@ -318,18 +318,18 @@ export default {
case '预收件数':
this.sortType = '1'
break
case '预收标保':
case '预收期交':
this.sortType = '2'
break
case '承保件数':
this.sortType = '3'
break
case '承保标保':
case '承保期交':
this.sortType = '4'
break
case '承保标保':
this.sortType = '5'
break
// case '承保期交':
// this.sortType = '5'
// break
//
case '活动人力':
this.sortType = '6'

View File

@@ -73,7 +73,7 @@
<th class="td-1" style="height: 1.2em;">排名</th>
<th class="td-2">机构</th>
<th>预收保费</th>
<th>承保标保</th>
<th>承保期交</th>
<th>承保保费</th>
<th>预收件数</th>
<th>承保件数</th>
@@ -150,7 +150,7 @@ export default {
tableData: [],
timeVal: '',
sortTypeText: '预收保费',
queryColumns: ['预收件数', '预收保费', '承保件数', '承保标保', '承保保费'],
queryColumns: ['预收件数', '预收保费', '承保件数', '承保期交', '承保保费'],
showPicker: false,
// 年月日选择器
showDatePicker: false,
@@ -293,7 +293,7 @@ export default {
onConfirm(value, index) {
this.sortTypeText = value
switch (value) {
// '预收件数', '预收标保', '承保件数', '承保标保', '承保标保
// '预收件数', '预收期交', '承保件数', '承保期交', '承保期交
case '预收件数':
this.sortType = '1'
break
@@ -303,7 +303,7 @@ export default {
case '承保件数':
this.sortType = '3'
break
case '承保标保':
case '承保期交':
this.sortType = '4'
break
case '承保保费':

View File

@@ -70,7 +70,7 @@
<th class="td-1" style="height: 1.2em;">排名</th>
<th class="td-2">机构</th>
<th>预收保费</th>
<th>承保标保</th>
<th>承保期交</th>
<th>承保保费</th>
<th>预收件数</th>
<th>承保件数</th>
@@ -147,7 +147,7 @@ export default {
tableData: [],
timeVal: '',
sortTypeText: '预收保费',
queryColumns: ['预收件数', '预收保费', '承保件数', '承保标保', '承保保费'],
queryColumns: ['预收件数', '预收保费', '承保件数', '承保期交', '承保保费'],
showPicker: false,
// 年月日选择器
showDatePicker: false,
@@ -289,7 +289,7 @@ export default {
onConfirm(value, index) {
this.sortTypeText = value
switch (value) {
// '预收件数', '预收标保', '承保件数', '承保标保', '承保标保
// '预收件数', '预收期交', '承保件数', '承保期交', '承保期交
case '预收件数':
this.sortType = '1'
break
@@ -299,7 +299,7 @@ export default {
case '承保件数':
this.sortType = '3'
break
case '承保标保':
case '承保期交':
this.sortType = '4'
break
case '承保保费':

View File

@@ -70,7 +70,7 @@
<th class="td-1" style="height: 1.2em;">排名</th>
<th class="td-2">机构</th>
<th>预收保费</th>
<th>承保标保</th>
<th>承保期交</th>
<th>承保保费</th>
<th>预收件数</th>
<th>承保件数</th>
@@ -147,7 +147,7 @@ export default {
tableData: [],
timeVal: '',
sortTypeText: '预收保费',
queryColumns: ['预收件数', '预收保费', '承保件数', '承保标保', '承保保费'],
queryColumns: ['预收件数', '预收保费', '承保件数', '承保期交', '承保保费'],
showPicker: false,
// 年月日选择器
showDatePicker: false,
@@ -290,7 +290,7 @@ export default {
onConfirm(value, index) {
this.sortTypeText = value
switch (value) {
// '预收件数', '预收标保', '承保件数', '承保标保', '承保标保
// '预收件数', '预收期交', '承保件数', '承保期交', '承保期交
case '预收件数':
this.sortType = '1'
break
@@ -300,7 +300,7 @@ export default {
case '承保件数':
this.sortType = '3'
break
case '承保标保':
case '承保期交':
this.sortType = '4'
break
case '承保保费':

View File

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

View File

@@ -70,7 +70,7 @@
<th class="td-1" style="height: 1.2em;">排名</th>
<th class="td-2">机构</th>
<th>预收保费</th>
<th>承保标保</th>
<th>承保期交</th>
<th>承保保费</th>
<th>预收件数</th>
<th>承保件数</th>
@@ -146,7 +146,7 @@ export default {
bzbfTotol: 0,
timeVal: '',
sortTypeText: '预收保费',
queryColumns: ['预收件数', '预收保费', '承保件数', '承保标保', '承保保费'],
queryColumns: ['预收件数', '预收保费', '承保件数', '承保期交', '承保保费'],
showPicker: false,
// 年月日选择器
showDatePicker: false,
@@ -279,7 +279,7 @@ export default {
onConfirm(value, index) {
this.sortTypeText = value
switch (value) {
// '预收件数', '预收标保', '承保件数', '承保标保', '承保标保
// '预收件数', '预收期交', '承保件数', '承保期交', '承保期交
case '预收件数':
this.sortType = '1'
break
@@ -289,7 +289,7 @@ export default {
case '承保件数':
this.sortType = '3'
break
case '承保标保':
case '承保期交':
this.sortType = '4'
break
case '承保保费':

View File

@@ -70,7 +70,7 @@
<th class="td-1" style="height: 1.2em;">排名</th>
<th class="td-2">机构</th>
<th>预收保费</th>
<th>承保标保</th>
<th>承保期交</th>
<th>承保保费</th>
<th>预收件数</th>
<th>承保件数</th>
@@ -147,7 +147,7 @@ export default {
bzbfTotol: 0,
timeVal: '',
sortTypeText: '预收保费',
queryColumns: ['预收件数', '预收保费', '承保件数', '承保标保', '承保保费'],
queryColumns: ['预收件数', '预收保费', '承保件数', '承保期交', '承保保费'],
showPicker: false,
// 年月日选择器
showDatePicker: false,
@@ -290,7 +290,7 @@ export default {
onConfirm(value, index) {
this.sortTypeText = value
switch (value) {
// '预收件数', '预收标保', '承保件数', '承保标保', '承保标保
// '预收件数', '预收期交', '承保件数', '承保期交', '承保期交
case '预收件数':
this.sortType = '1'
break
@@ -300,7 +300,7 @@ export default {
case '承保件数':
this.sortType = '3'
break
case '承保标保':
case '承保期交':
this.sortType = '4'
break
case '承保保费':

View File

@@ -70,7 +70,7 @@
<th class="td-1" style="height: 1.2em;">排名</th>
<th class="td-2">机构</th>
<th>预收保费</th>
<th>承保标保</th>
<th>承保期交</th>
<th>承保保费</th>
<th>预收件数</th>
<th>承保件数</th>
@@ -147,7 +147,7 @@ export default {
tableData: [],
timeVal: '',
sortTypeText: '预收保费',
queryColumns: ['预收件数', '预收保费', '承保件数', '承保标保', '承保保费'],
queryColumns: ['预收件数', '预收保费', '承保件数', '承保期交', '承保保费'],
showPicker: false,
// 年月日选择器
showDatePicker: false,
@@ -288,7 +288,7 @@ export default {
onConfirm(value, index) {
this.sortTypeText = value
switch (value) {
// '预收件数', '预收标保', '承保件数', '承保标保', '承保标保
// '预收件数', '预收期交', '承保件数', '承保期交', '承保期交
case '预收件数':
this.sortType = '1'
break
@@ -298,7 +298,7 @@ export default {
case '承保件数':
this.sortType = '3'
break
case '承保标保':
case '承保期交':
this.sortType = '4'
break
case '承保保费':

View File

@@ -11,7 +11,7 @@
<th>达成</th>
</tr>
<tr>
<td class="bleft bright">预收标保</td>
<td class="bleft bright">预收期交</td>
<td class="bright">{{ performance.ysbb | unitFilter(1) | blankFilter }}</td>
</tr>
<tr>
@@ -19,7 +19,7 @@
<td class="bright">{{ performance.ysjs | unitFilter(2) | blankFilter }}</td>
</tr>
<tr>
<td class="bleft bright">承保标保</td>
<td class="bleft bright">承保期交</td>
<td class="bright">{{ performance.bzbf | unitFilter(1) | blankFilter }}</td>
</tr>
<tr>
@@ -29,43 +29,43 @@
</table>
</div>
</div>
<div class="data-section">
<span ref="manpower" class="title">
人力
</span>
<div class="table-wrapper">
<table class="myTable" cellspacing="0" cellpadding="0">
<tr>
<th style="width: 50%;">人力指标</th>
<th>达成()</th>
</tr>
<tr>
<td class="bleft bright">活动人力</td>
<td class="bright">{{ manpower.hdrl | blankFilter }}</td>
</tr>
<tr>
<td class="bleft bright">合格人力</td>
<td class="bright">{{ manpower.hgrl | blankFilter }}</td>
</tr>
<tr>
<td class="bleft bright">桂冠人力</td>
<td class="bright">{{ manpower.ggrl | blankFilter }}</td>
</tr>
<tr>
<td class="bleft bright">桂冠正式会员</td>
<td class="bright">{{ manpower.gghy | blankFilter }}</td>
</tr>
<tr>
<td class="bleft bright">双冠人力</td>
<td class="bright">{{ manpower.sgrl | blankFilter }}</td>
</tr>
<tr>
<td class="bleft bright">新增人力</td>
<td class="bright">{{ manpower.xzrl | blankFilter }}</td>
</tr>
</table>
</div>
</div>
<!-- <div class="data-section">-->
<!-- <span ref="manpower" class="title">-->
<!-- 人力-->
<!-- </span>-->
<!-- <div class="table-wrapper">-->
<!-- <table class="myTable" cellspacing="0" cellpadding="0">-->
<!-- <tr>-->
<!-- <th style="width: 50%;">人力指标</th>-->
<!-- <th>达成()</th>-->
<!-- </tr>-->
<!-- <tr>-->
<!-- <td class="bleft bright">活动人力</td>-->
<!-- <td class="bright">{{ manpower.hdrl | blankFilter }}</td>-->
<!-- </tr>-->
<!-- <tr>-->
<!-- <td class="bleft bright">合格人力</td>-->
<!-- <td class="bright">{{ manpower.hgrl | blankFilter }}</td>-->
<!-- </tr>-->
<!-- <tr>-->
<!-- <td class="bleft bright">桂冠人力</td>-->
<!-- <td class="bright">{{ manpower.ggrl | blankFilter }}</td>-->
<!-- </tr>-->
<!-- <tr>-->
<!-- <td class="bleft bright">桂冠正式会员</td>-->
<!-- <td class="bright">{{ manpower.gghy | blankFilter }}</td>-->
<!-- </tr>-->
<!-- <tr>-->
<!-- <td class="bleft bright">双冠人力</td>-->
<!-- <td class="bright">{{ manpower.sgrl | blankFilter }}</td>-->
<!-- </tr>-->
<!-- <tr>-->
<!-- <td class="bleft bright">新增人力</td>-->
<!-- <td class="bright">{{ manpower.xzrl | blankFilter }}</td>-->
<!-- </tr>-->
<!-- </table>-->
<!-- </div>-->
<!-- </div>-->
<div class="data-section">
<span ref="production" class="title">
产品
@@ -77,7 +77,7 @@
<table class="myTable" style="min-width: 140vw;" cellspacing="0" cellpadding="0">
<tr>
<th class="sticky">产品名称</th>
<th>承保标保(万元)</th>
<th>承保期交(万元)</th>
<th>承保件数()</th>
<th>保费占比(%)</th>
</tr>

View File

@@ -123,9 +123,9 @@ export default {
// 实时筛选时间条件
timeCondition: dateUtil.formatDate(currentDate, 'MM-dd HH:mm'),
dayTimeCondition: currentDate,
// 0: 标保, 1: 人力, 2: 产品
// 0: 期交, 1: 人力, 2: 产品
typeIndex: 0,
dataTypes: ['标保', '人力指标', '产品'],
dataTypes: ['期交', '人力指标', '产品'],
active: 0,
// 侧边栏是否显示
isSideBarShow: false,

View File

@@ -80,7 +80,7 @@ export default {
tableData: [],
items: [],
bzbfTotol: 0,
queryColumns: ['预收保费','承保标保 ', '承保保费', '预收件数', '承保件数'],
queryColumns: ['预收保费','承保期交 ', '承保保费', '预收件数', '承保件数'],
active: 0,
// 当前的机构编码
curCode: '',

View File

@@ -39,7 +39,7 @@
<div class="name">直辖组</div>
</td>
<td>
<div class="name">承保标保</div>
<div class="name">承保期交</div>
</td>
<td>
<div class="date">寿险承保件数</div>
@@ -54,7 +54,7 @@
<div class="date">综合开拓承保保费</div>
</td>-->
<td>
<div class="date">本月预收标保</div>
<div class="date">本月预收期交</div>
</td>
<td>
<div class="date">本月预收件数</div>

View File

@@ -115,7 +115,7 @@
<div>
<div class="h50 bg-white content mh-auto fs13 fw500 mt5">
<div class="pl10 pr10 pt15 flex justify-content-s align-items-c">
<div>本月{{ filterStatusName }}标保</div>
<div>本月{{ filterStatusName }}期交</div>
<div v-if="filterStatus == 1" class="red">{{ ysbb }}</div>
<div v-else-if="filterStatus == 2" class="red">{{ cbbb }}</div>
</div>

View File

@@ -54,7 +54,7 @@
<div class="mt20">
<div class="h50 bg-white content mh-auto fs13 fw500">
<div class="pl10 pr10 pt15 flex justify-content-s align-items-c">
<div>个人承保标保</div>
<div>个人承保期交</div>
<div class="red">{{cbbb}}</div>
</div>
</div>
@@ -78,7 +78,7 @@
</div>-->
<div class="h50 bg-white content mh-auto fs13 fw500 mt5" v-if="isShow">
<div class="pl10 pr10 pt15 flex justify-content-s align-items-c">
<div>本月预收标保</div>
<div>本月预收期交</div>
<div class="red">{{ysbb}}</div>
</div>
</div>

View File

@@ -32,7 +32,7 @@
<div class="mt20">
<div class="h50 bg-white content mh-auto fs13 fw500">
<div class="pl10 pr10 pt15 flex justify-content-s align-items-c">
<div>{{teamName}}承保标保</div>
<div>{{teamName}}承保期交</div>
<div class="red">{{cbbb}}</div>
</div>
</div>
@@ -56,7 +56,7 @@
</div>-->
<div class="h50 bg-white content mh-auto fs13 fw500 mt5" v-if="isShow">
<div class="pl10 pr10 pt15 flex justify-content-s align-items-c">
<div>本月预收标保</div>
<div>本月预收期交</div>
<div class="red">{{ysbb}}</div>
</div>
</div>

View File

@@ -2,7 +2,7 @@
<div ref="product" class="home-product-container pb20">
<!-- 非个险 -->
<template v-if="!isPersonalInsu">
<div class="home-product-content">
<div class="home-product-content" v-if="branchType != '12'">
<!-- 产品中心 -->
<div class="pcenter-title flex pt10 mr20 mb10 ml15 justify-content-s align-items-c" style="height: 30px;">
<h3 class="center-title fs15 pl10" style="border-left: 4px solid red;">知识社区</h3>
@@ -61,7 +61,7 @@
</template>
<!-- 个险 -->
<template v-if="isPersonalInsu">
<div class="home-product-content">
<div class="home-product-content" v-if="branchType != '12'">
<!-- 机构排名/业绩排名 -->
<div class="pcenter-title flex pt10 pb10 mr15 justify-content-s align-items-c" style="height: 50px;">
<img v-if="isInner" class="title-img" :src="organizationImgUrl" />
@@ -157,8 +157,8 @@ export default {
isGoodStart: '0', // 是否开门红 0-默认
isPersonalInsu: true, // 是否个险渠道
isInner: false,
organizationTheads: ['排名', '机构', '当日预收(标保)', '月预收标保', '日承保标保', '月承保标保'],
performanceTheads: ['排名', '姓名', '营销服务部', '预收规保', '承保标保'],
organizationTheads: ['排名', '机构', '当日预收(期交)', '月预收期交', '日承保期交', '月承保期交'],
performanceTheads: ['排名', '姓名', '营销服务部', '预收期交', '承保期交'],
organizationData: [],
performanceData: [],
organizationImgUrl: '', // 机构排名图片

View File

@@ -275,8 +275,15 @@
//点我新增
addProposal() {
let thisToken = this.$CacheUtils.getLocItem('token')
let thisbranchType = ''
if(this.$CacheUtils.getLocItem('branchType') == '13') {
thisbranchType = this.$CacheUtils.getLocItem('branchType')
}
window.localStorage.clear()
this.$CacheUtils.setLocItem('token', thisToken)
if(thisbranchType) {
this.$CacheUtils.setLocItem('branchType', thisbranchType)
}
this.$jump({
flag: 'h5',
extra: {
@@ -290,8 +297,15 @@
//编辑
edit(item) {
let thisToken = this.$CacheUtils.getLocItem('token')
let thisbranchType = ''
if(this.$CacheUtils.getLocItem('branchType') == '13') {
thisbranchType = this.$CacheUtils.getLocItem('branchType')
}
window.localStorage.clear()
this.$CacheUtils.setLocItem('token', thisToken)
if(thisbranchType) {
this.$CacheUtils.setLocItem('branchType', thisbranchType)
}
//建议书列表 编辑=》制作中的建议书跳转到选择被保险人页面;
this.$CacheUtils.setLocItem('proposalNo', item.orderInfoDTO.orderNo)
this.$CacheUtils.setLocItem('canMoveOn', 1)

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="ispremshow">保额(</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">保险期间</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">交费期间</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">首年保费()</div>
</div>
<div class="risk_body flex text-center table bg_f7fbff" v-for="(riskItem, index) in pageShowInfo.showInsuredDTO.riskDTOLst" :key="index">
<div class="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="ispremshow">{{ riskItem.amt ? riskItem.amt : '--' }}</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">{{ riskItem.insureName }}</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">{{ riskItem.payName }}</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">{{ riskItem.showPrem ? riskItem.showPrem : '--' }}</div>
@@ -386,7 +386,8 @@ export default {
mainRiskCodes: [],
time: 5,
proposalNo:'',
mainRiskName: ''
mainRiskName: '',
ispremshow: true, // 是否展示保额
}
},
filters: {
@@ -729,6 +730,9 @@ export default {
that.pageShowInfo.insuredDTOs.forEach(item => {
item.riskDTOLst.forEach(item01 => {
if (item01.isMainRisk == '0') {
if(item01.mainRiskCode == 'GFRS_M0080' || item01.mainRiskCode == 'GFRS_M0083' || item01.mainRiskCode == 'GFRS_M0085') {
that.ispremshow = false
}
mainRiskNameList.push(item01.riskName)
}
})

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' || risk.mainRiskCode == 'GFRS_M0085') {
radios.push({
label: '保证' + currentInsuredInfo.L,
value: 'L'
})
} else {
radios.push({
label: '低档' + currentInsuredInfo.L,
value: 'L'
})
}
}
if(currentInsuredInfo.M){
if(risk.mainRiskCode == 'GFRS_M0083' || risk.mainRiskCode == 'GFRS_M0085') {
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

@@ -56,12 +56,12 @@
</template>
</van-field>
</div>
<div class="item">
<van-field label-class="labels" readonly label="银行卡照片"></van-field>
<div class="cardList">
<van-uploader :max-count="1" :after-read="cardUpload" @delete="transferBankCardDelete" name="bankcardA" v-model="transfer.cardPhoto" />
</div>
</div>
<!-- <div class="item">-->
<!-- <van-field label-class="labels" readonly label="银行卡照片"></van-field>-->
<!-- <div class="cardList">-->
<!-- <van-uploader :max-count="1" :after-read="cardUpload" @delete="transferBankCardDelete" name="bankcardA" v-model="transfer.cardPhoto" />-->
<!-- </div>-->
<!-- </div>-->
</div>
<div class="checkedBox" v-if="issueType === '818901'">
<van-checkbox v-model="checked" class="checked" icon-size="16px" shape="square"
@@ -288,9 +288,9 @@ export default {
if (!regx.test(this.transfer.card)) {
return this.$toast('银行卡号不符合规则')
}
if (this.transfer.cardPhoto.length === 0) {
return this.$toast('请上传银行卡照片')
}
// if (this.transfer.cardPhoto.length === 0) {
// return this.$toast('请上传银行卡照片')
// }
}
if (this.transfer.bank) {
@@ -447,9 +447,9 @@ export default {
if (!regx.test(this.transfer.card)) {
return this.$toast('银行卡号不符合规则')
}
if (this.transfer.cardPhoto.length === 0) {
return this.$toast('请上传银行卡照片')
}
// if (this.transfer.cardPhoto.length === 0) {
// return this.$toast('请上传银行卡照片')
// }
}
}
if (!this.checked) {
@@ -498,7 +498,7 @@ export default {
}
// 补充资料类问题件
else if (this.issueType === '828601') {
problemData.list.push(...this.imageResultList)
// problemData.list.push(...this.imageResultList)
if (this.suplementDesc.trim()) {
problemData.content = this.suplementDesc.trim()
} else {
@@ -512,9 +512,9 @@ export default {
problemData.bankName = this.transfer.bank
problemData.bankNo = this.transfer.card
// 选择非终止转账时上传银行卡照片
if (this.transfer.mode === 3) {
problemData.list.push(this.transfer.cardUploadResult)
}
// if (this.transfer.mode === 3) {
// problemData.list.push(this.transfer.cardUploadResult)
// }
}
// 更新问题件数据
try {

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

@@ -88,7 +88,7 @@
@confirm="onDateConfirm($event, '1')"
ref="certiexpiredate"
:flag="certiexpiredateShow"
:readonly="isInsured || idLimit"
:readonly="isInsured"
></FieldDatePicter>
<div class="border-bt relative fs14 p10 flex align-center">
<van-checkbox v-model="userInfo.effectiveDateType" class="fr" :disabled="effectiveDateTypeAble" @change="effectiveDataTypeChange">长期</van-checkbox>
@@ -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 {
@@ -1269,35 +1299,53 @@ export default {
}
this.userInfo.effectiveDateType = false
this.effectiveDateTypeAble = idToData(val).age <= 45
this.userInfo.birthday = idToData(val).birthday
//受益人证件类型如果是户口本时证件截止日期证件截止日期应为第16周岁的生日日期。
if(this.userInfo.idType == '2' && idToData(this.userInfo.idNo).age <16){
// 获取出生日期年份16
let year = Number(this.userInfo.birthday.substr(0,4)) + 16
if(this.userInfo.birthday.substr(5,5) == '02-29'){
// 获取某年某月一共多少天
let date = new Date(year, 2, 1)
let dayEnd = new Date(date.getTime() - 864e5).getDate()
this.userInfo.certiexpiredate = year +'-02-'+ dayEnd
}else{
this.userInfo.certiexpiredate = year +'-'+ this.userInfo.birthday.substr(5,5)
}
}
this.userInfo.sex = idToData(val).sex
if (idToData(val).age > 45) {
if (from) {
this.userInfo.effectiveDateType = true
}
this.effectiveDateTypeAble = false
}
//如果选择户口本
if (this.userInfo.idType == '2') {
let exipreDate = Date.parse(this.userInfo.birthday) + Date.parse('1985-12-31')
if(this.userInfo.idType == '2' && idToData(this.userInfo.idNo).age <16) {
this.userInfo.birthday = idToData(val).birthday
this.userInfo.sex = idToData(val).sex
this.userInfo.certificateValidate = this.userInfo.birthday
this.userInfo.certiexpiredate = this.timeStampFormat(exipreDate)
this.idLimit = true
//如果选择出生证明
let date2_29 = this.userInfo.certificateValidate.slice(5, 11)
if(date2_29 == '02-29'){
let thisyear = Number(this.userInfo.certificateValidate.slice(0, 4)) + 16
if (thisyear % 4 == 0 && thisyear % 100 != 0 || thisyear % 400 == 0){
return this.userInfo.certiexpiredate = thisyear + '-02-29'
} else {
return this.userInfo.certiexpiredate = thisyear + '-02-28'
}
}else{
this.userInfo.certiexpiredate = String(Number(this.userInfo.certificateValidate.slice(0, 4)) + 16) + this.userInfo.certificateValidate.slice(4, 11)
}
}
//受益人证件类型如果是户口本时证件截止日期证件截止日期应为第16周岁的生日日期
// if(this.userInfo.idType == '2' && idToData(this.userInfo.idNo).age <16){
// // 获取出生日期年份16
// let year = Number(this.userInfo.birthday.substr(0,4)) + 16
// if(this.userInfo.birthday.substr(5,5) == '02-29'){
// // 获取某年某月一共多少天
// let date = new Date(year, 2, 1)
// let dayEnd = new Date(date.getTime() - 864e5).getDate()
// this.userInfo.certiexpiredate = year +'-02-'+ dayEnd
// // this.userInfo.certiexpiredate = String(Number(this.userInfo.certificateValidate.slice(0, 4)) + 16) + this.userInfo.certificateValidate.slice(4, 11)
// }else{
// // this.userInfo.certiexpiredate = year +'-'+ this.userInfo.birthday.substr(5,5)
// this.userInfo.certiexpiredate = String(Number(this.userInfo.certificateValidate.slice(0, 4)) + 16) + this.userInfo.certificateValidate.slice(4, 11)
// }
// }
// this.userInfo.sex = idToData(val).sex
// if (idToData(val).age > 45) {
// if (from) {
// this.userInfo.effectiveDateType = true
// }
// this.effectiveDateTypeAble = false
// }
// //如果选择户口本
// if (this.userInfo.idType == '2') {
// let exipreDate = Date.parse(this.userInfo.birthday) + Date.parse('1985-12-31')
// this.userInfo.certificateValidate = this.userInfo.birthday
// this.userInfo.certiexpiredate = this.timeStampFormat(exipreDate)
// this.idLimit = true
// //如果选择出生证明
// }
}
},
filters: {

View File

@@ -1,28 +1,7 @@
<template>
<div class="redRadioCheckbox">
<index-bar></index-bar>
<!-- 来源于支付失败后更换银行卡信息 -->
<div v-if="changeCard">
<div class="flex p10 align-items-c bg-white mt10">
<span>投保人附件</span>
</div>
<van-cell-group>
<van-field required label="银行卡账户" disabled />
</van-cell-group>
<div @click="test('fileListBank', '3', '0', saleInsuredInfo.appntId, saleInsuredInfo.idType)">
<van-uploader
name="fileListBank"
v-model="fileListBank"
:after-read="afterRead"
@delete="deleteImg"
:before-delete="beforeDelete"
class="mt10 ml20"
:max-count="1"
/>
</div>
</div>
<div v-else>
<div>
<!-- 投保人证件 -->
<div>
<div class="flex p10 align-items-c bg-white mt10">
@@ -80,20 +59,6 @@
</div>
</div>
</div>
<van-cell-group>
<van-field required label="银行卡正面" disabled />
</van-cell-group>
<div @click="test('fileListBank', '3', '0', saleInsuredInfo.appntId, saleInsuredInfo.idType)">
<van-uploader
name="fileListBank"
v-model="fileListBank"
:after-read="afterRead"
@delete="deleteImg"
:before-delete="beforeDelete"
class="mt10 ml20"
:max-count="1"
/>
</div>
<van-cell-group v-if="isNotify">
<van-field label="健康告知异常类资料" disabled />
</van-cell-group>
@@ -290,78 +255,42 @@ export default {
thisdialogcontent: '',
isNotify: false, //是否有异常的健康告知
isNotifyInsured: false,
// 订单号
orderNo: '',
// 保人异常告知
fileListNotifyInsured: [],
// 投保人异常告知
fileListNotify: [],
// 投保人身份证正面
fileListIdFront: [
// { url: 'https://img.yzcdn.cn/vant/cat.jpeg' }
// Uploader 根据文件后缀来判断是否为图片文件
],
// 投保人身份证
fileListIdBack: [],
// 投保人其他类型页面
fileLIstImg: [],
// 投保人选择的必选其他
saleInsuredInfoOther: [],
// 被保险人选择的必选其他
saleInsuredPersonInfoOther: [],
// 银行卡正面
fileListBank: [],
// 被保险人身份证正面
fileListIdFrontInsured: [],
// 被保险人身份证反面
fileListIdBackInsured: [],
// 被保险人银行账户
fileListBankInsured: [],
// 被保险人其他类型页面
fileLIstImgInsured: [],
// 受益人身份证正面
fileListIdFrontBeneficiary: [],
// 受益人身份证反面
fileListIdBackBeneficiary: [],
// 受益人其他类型页面
fileLIstImgBeneficiary: [],
// 受益人
bnfInfo:[],
orderNo: '', // 订单号
fileListNotifyInsured: [], // 被保人异常告知
fileListNotify: [], // 保人异常告知
fileListIdFront: [], // 投保人身份证正面
fileListIdBack: [], // 投保人身份证反面
fileLIstImg: [], // 投保人其他类型页面
saleInsuredInfoOther: [], // 投保人选择的必选其他
saleInsuredPersonInfoOther: [], // 被保险人选择的必选其他
fileListIdFrontInsured: [], // 被保险人身份证正面
fileListIdBackInsured: [], // 被保险人身份证反面
fileLIstImgInsured: [], // 被保险人其他类型页面
fileListIdFrontBeneficiary: [], // 受益人身份证
fileListIdBackBeneficiary: [], // 受益人身份证反面
fileLIstImgBeneficiary: [], // 受益人其他类型页面
bnfInfo:[], // 受益人
isDisabledBnf:true,
// 单选框
radio: '',
// 是否可以点击下一步
isDisabled: true,
// 数据字典证件类型
idType: [],
// 被保险人信息
saleInsuredPersonInfo: {},
// 投保人信息
saleInsuredInfo: {},
// 受益人信息
saleBtnfPersonInfo: {},
// 图片流
file: '',
// 图片名称
imgName: '',
// 图片返回数组
imgList: [],
radio: '', // 单选框
isDisabled: true, // 是否可以点击下一步
idType: [], // 数据字典证件类型
saleInsuredPersonInfo: {}, // 被保险人信息
saleInsuredInfo: {}, // 投保人信息
saleBtnfPersonInfo: {}, // 受益人信息
file: '', // 图片流
imgName: '', // 图片名称
imgList: [], // 图片返回数组
type: '',
// 是投保人还是被保险人
isAppant: '',
// 传给后端的list
list: [],
// 是哪个证件类型
id: '',
//受益人id
bnfId:'',
// 投保人被保险人是否是一个人 1为同一个人
isAppant: '', // 是投保人还是被保险人
list: [], // 传给后端的list
id: '', // 是哪个证件类型
bnfId:'', //受益人id
relationToAppnt: '',
changeCard: localStorage.changeCard,
salePageFlag: '9',
imageType: '',
subBusinessNo: '',
subBusinessType: '',
changeCard: localStorage.changeCard,
}
},
async created() {
@@ -491,9 +420,6 @@ export default {
//如果是从导航栏点击进入
this.salePageFlag = localStorage.salePageFlag
}
if (this.changeCard) {
document.body.style.backgroundColor = '#fff'
}
let that = this
// 投被保险人是否同人
// if (this.$CacheUtils.getLocItem('saleInsuredPersonInfo')) {
@@ -591,44 +517,6 @@ export default {
} else {
that.fileListIdBackInsured = []
}
// 银行卡
if (window.localStorage.getItem('bankCardUrlPath') != null) {
let bankCardUrl = {
url: config.imgDomain + `/returnImageStream?a=b.jpg&imgPath=${window.localStorage.getItem('bankCardUrlPath')}`,
}
that.fileListBank.push(bankCardUrl)
let obj = {
businessNo: that.orderNo,
businessType: '',
imageInfoType: '3',
rgssUrl: window.localStorage.getItem('bankCardUrlPath'),
subBusinessType: '0',
subBusinessNo: that.saleInsuredInfo.insuredId,
}
that.list.push(obj)
} else {
that.fileListBank = []
}
// 被保险人银行卡
// if (window.localStorage.getItem('bankCardUrlInsuredPath') != null) {
// let bankCardUrlInsured = {
// url: config.imgDomain + `/returnImageStream?a=b.jpg&imgPath=${window.localStorage.getItem('bankCardUrlInsuredPath')}`
// }
// that.fileListBankInsured.push(bankCardUrlInsured)
// let obj = {
// businessNo: that.orderNo,
// businessType: '',
// imageInfoType: '3',
// rgssUrl: window.localStorage.getItem('bankCardUrlInsuredPath'),
// subBusinessType: '1',
// subBusinessNo: that.saleInsuredPersonInfo.insuredId
// }
// that.list.push(obj)
// } else {
// that.fileListBankInsured = []
// }
// 保费超过20万的提示
// Dialog.alert({ title: '提示', message: '趸交保费≥20万元或期交保费*总期数≥20万元时须上传指定受益人证件正反面' })
},
beforeRouteLeave(to, from, next) {
document.body.style.backgroundColor = ''
@@ -681,20 +569,12 @@ export default {
} else if (detail.name == 'fileLIstImg') {
this.fileLIstImg = []
this.deleteImg(file, 'fileLIstImg')
} else if (detail.name == 'fileListBank') {
this.fileListBank = []
this.deleteImg(file, 'fileListBank')
// } else if (detail.name == 'fileListBankBack') {
// this.fileListBankBack = []
} else if (detail.name == 'fileListIdFrontInsured') {
}else if (detail.name == 'fileListIdFrontInsured') {
this.fileListIdFrontInsured = []
this.deleteImg(file, 'fileListIdFrontInsured')
} else if (detail.name == 'fileListIdBackInsured') {
this.fileListIdBackInsured = []
this.deleteImg(file, 'fileListIdBackInsured')
} else if (detail.name == 'fileListBankInsured') {
this.fileListBankInsured = []
this.deleteImg(file, 'fileListBankInsured')
} else if (detail.name == 'fileLIstImgInsured') {
this.fileLIstImgInsured = []
this.deleteImg(file, 'fileLIstImgInsured')
@@ -901,7 +781,7 @@ export default {
})
},
beforeNext(isDis) {
if (isDis && this.fileListBank.length > 0 && this.fileListIdBack.length > 0 && this.fileListIdFront.length > 0) {
if (isDis && this.fileListIdBack.length > 0 && this.fileListIdFront.length > 0) {
this.$toast('请勾选确认销售人员已见证各证件原件并拍照上传')
}
},
@@ -1053,22 +933,16 @@ export default {
saveInformation(data).then((res) => {
if (res.result == '0') {
this.$toast.clear()
if (!this.changeCard) {
window.localStorage.setItem('accountInfomation-bank', that.bank)
window.localStorage.setItem('accountInformationRadio', that.radio)
window.localStorage.setItem('accountInformation-isPaymentSelf', JSON.stringify(that.checked))
window.localStorage.setItem('jumpFromSign', '')
}
window.localStorage.setItem('accountInformationRadio', that.radio)
window.localStorage.setItem('accountInformation-isPaymentSelf', JSON.stringify(that.checked))
window.localStorage.setItem('jumpFromSign', '')
window.localStorage.removeItem('imgfront')
window.localStorage.removeItem('imgBackPath')
window.localStorage.removeItem('imgfrontPath')
window.localStorage.removeItem('imgfrontInsured')
window.localStorage.removeItem('imgfrontInsuredPath')
window.localStorage.removeItem('imgBackInsuredPath')
window.localStorage.removeItem('bankCardUrl')
window.localStorage.removeItem('bankCardUrlPath')
window.localStorage.removeItem('bankCardUrlInsured')
window.localStorage.removeItem('bankCardUrlInsuredPath')
that.$jump({
flag: 'h5',
extra: {
@@ -1105,13 +979,10 @@ export default {
const {
fileListIdFront,
fileListIdBack,
fileListBank,
// fileListBankBack,
radio,
fileLIstImg,
fileListIdFrontInsured,
fileListIdBackInsured,
fileListBankInsured,
fileLIstImgInsured,
saleInsuredPersonInfoOther,
saleInsuredInfoOther
@@ -1120,12 +991,9 @@ export default {
return {
fileListIdFront,
fileListIdBack,
fileListBank,
// fileListBankBack,
radio,
fileListIdFrontInsured,
fileListIdBackInsured,
fileListBankInsured,
fileLIstImgInsured,
fileLIstImg,
saleInsuredPersonInfoOther,
@@ -1136,125 +1004,33 @@ export default {
watch: {
listenChange(val) {
let that = this
if (this.changeCard) {
//从转账不成功跳过来的
if (val.fileListBank.length != '0' && val.radio !== '') {
that.isDisabled = false
} else {
that.isDisabled = true
}
if (
(val.fileListIdFront.length != '0' && val.fileListIdBack.length != '0' && val.fileListIdFrontInsured.length != '0' && val.fileListIdBackInsured.length != '0' && val.radio !== '') ||
(val.fileLIstImg.length != '0' && val.fileListIdFrontInsured.length != '0' && val.fileListIdBackInsured.length != '0' && val.radio !== '') ||
(val.fileListIdFront.length != '0' && val.fileListIdBack.length != '0' && val.fileListIdFrontInsured.length != '0' && val.fileListIdBackInsured.length != '0' && val.radio !== '') ||
(val.fileLIstImg.length != '0' && val.fileListIdFrontInsured.length != '0' && val.fileListIdBackInsured.length != '0' && val.radio !== '') ||
(val.fileListIdFront.length != '0' && val.fileListIdBack.length != '0' && val.fileLIstImgInsured.length != '0' && val.radio !== '') ||
(val.fileListIdFront.length != '0' && val.fileListIdBack.length != '0' && val.fileLIstImgInsured.length != '0' && val.radio !== '') ||
(val.fileLIstImg.length != '0' && val.fileLIstImgInsured.length != '0' && val.radio !== '') ||
(val.fileLIstImg.length != '0' && val.fileLIstImgInsured.length != '0' && val.radio !== '') ||
(val.fileListIdFront.length != '0' && val.fileListIdBack.length != '0' && val.radio !== '' && this.relationToAppnt == '1') ||
(val.fileLIstImg.length != '0' && val.radio !== '' && this.relationToAppnt == '1') ||
(val.saleInsuredInfoOther.length != '0' && val.fileListIdFrontInsured.length != '0' && val.fileListIdBackInsured.length != '0' && val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' && val.fileLIstImgInsured.length != '0' && val.radio !== '') ||
(val.saleInsuredPersonInfoOther.length != '0' && val.fileListIdFront.length != '0' && val.fileListIdBack.length != '0' && val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' && val.fileLIstImg.length != '0' && val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' && val.fileListIdFrontInsured.length != '0' && val.fileListIdBackInsured.length != '0' && val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' && val.fileLIstImg.length != '0' && val.radio !== '') ||
(val.fileListIdFront.length != '0' && val.fileListIdBack.length != '0' && val.saleInsuredPersonInfoOther.length != '0' && val.radio !== '') ||
(val.fileLIstImg.length != '0' && val.saleInsuredPersonInfoOther.length != '0' && val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' && val.saleInsuredPersonInfoOther.length != '0' && val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' && val.saleInsuredPersonInfoOther.length != '0' && val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' && val.radio !== '' && this.relationToAppnt == '1')
) {
//去掉收益人添加的,有收益人删掉该行显示下面影藏判断
that.isDisabled = false
} else {
if (
(val.fileListIdFront.length != '0' &&
val.fileListIdBack.length != '0' &&
val.fileListBank.length != '0' &&
// val.fileListBankBack.length != '0' &&
val.fileListIdFrontInsured.length != '0' &&
val.fileListIdBackInsured.length != '0' &&
val.radio !== '') ||
(val.fileLIstImg.length != '0' &&
val.fileListBank.length != '0' &&
// val.fileListBankBack.length != '0' &&
val.fileListIdFrontInsured.length != '0' &&
val.fileListIdBackInsured.length != '0' &&
val.radio !== '') ||
(val.fileListIdFront.length != '0' &&
val.fileListIdBack.length != '0' &&
val.fileListIdFrontInsured.length != '0' &&
val.fileListIdBackInsured.length != '0' &&
val.fileListBankInsured.length != '0' &&
val.radio !== '') ||
(val.fileLIstImg.length != '0' &&
val.fileListIdFrontInsured.length != '0' &&
val.fileListIdBackInsured.length != '0' &&
val.fileListBankInsured.length != '0' &&
val.radio !== '') ||
(val.fileListIdFront.length != '0' &&
val.fileListIdBack.length != '0' &&
val.fileListBankInsured.length != '0' &&
val.fileLIstImgInsured.length != '0' &&
val.radio !== '') ||
(val.fileListIdFront.length != '0' &&
val.fileListIdBack.length != '0' &&
val.fileListBank.length != '0' &&
// val.fileListBankBack.length != '0' &&
val.fileLIstImgInsured.length != '0' &&
val.radio !== '') ||
(val.fileListBank.length != '0' &&
// val.fileListBankBack.length != '0' &&
val.fileLIstImg.length != '0' &&
val.fileLIstImgInsured.length != '0' &&
val.radio !== '') ||
(val.fileLIstImg.length != '0' && val.fileLIstImgInsured.length != '0' && val.fileListBankInsured.length != '0' && val.radio !== '') ||
(val.fileListIdFront.length != '0' &&
val.fileListIdBack.length != '0' &&
val.fileListBank.length != '0' &&
// val.fileListBankBack.length != '0' &&
val.radio !== '' &&
this.relationToAppnt == '1') ||
(val.fileLIstImg.length != '0' &&
val.fileListBank.length != '0' &&
// val.fileListBankBack.length != '0' &&
val.radio !== '' &&
this.relationToAppnt == '1') ||
(val.saleInsuredInfoOther.length != '0' &&
val.fileListBank.length != '0' &&
// val.fileListBankBack.length != '0' &&
val.fileListIdFrontInsured.length != '0' &&
val.fileListIdBackInsured.length != '0' &&
val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' &&
val.fileListBank.length != '0' &&
// val.fileListBankBack.length != '0' &&
val.fileLIstImgInsured.length != '0' &&
val.radio !== '') ||
(val.saleInsuredPersonInfoOther.length != '0' &&
val.fileListBankInsured.length != '0' &&
val.fileListIdFront.length != '0' &&
val.fileListIdBack.length != '0' &&
val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' &&
val.fileListBank.length != '0' &&
// val.fileListBankBack.length != '0' &&
val.fileLIstImg.length != '0' &&
val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' &&
val.fileListBankInsured.length != '0' &&
val.fileListIdFrontInsured.length != '0' &&
val.fileListIdBackInsured.length != '0' &&
val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' && val.fileListBankInsured.length != '0' && val.fileLIstImg.length != '0' && val.radio !== '') ||
(val.fileListBank.length != '0' &&
// val.fileListBankBack.length != '0' &&
val.fileListIdFront.length != '0' &&
val.fileListIdBack.length != '0' &&
val.saleInsuredPersonInfoOther.length != '0' &&
val.radio !== '') ||
(val.fileListBank.length != '0' &&
// val.fileListBankBack.length != '0' &&
val.fileLIstImg.length != '0' &&
val.saleInsuredPersonInfoOther.length != '0' &&
val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' &&
val.fileListBank.length != '0' &&
// val.fileListBankBack.length != '0' &&
val.saleInsuredPersonInfoOther.length != '0' &&
val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' &&
val.saleInsuredPersonInfoOther.length != '0' &&
val.fileListBankInsured.length != '0' &&
val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' &&
val.fileListBank.length != '0' &&
// val.fileListBankBack.length != '0' &&
val.radio !== '' &&
this.relationToAppnt == '1')
) {
//去掉收益人添加的,有收益人删掉该行显示下面影藏判断
that.isDisabled = false
} else {
that.isDisabled = true
}
that.isDisabled = true
}
},
//监听受益人影像list的变化控制下一步按钮是否可点击
@@ -1263,21 +1039,16 @@ export default {
console.log(val,'val监听到but')
console.log(oldval,'oldval监听到but')
let that = this
if (this.changeCard) {
document.body.style.backgroundColor = '#fff'
this.isDisabledBnf = false
}else{
if(val.length > 0){
for (let index = 0; index < val.length; index++) {
let item = val[index]
that.isDisabledBnf = !this.checkBtnInfo(item)
if(this.checkBtnInfo(item) == false){
return false
}
if(val.length > 0){
for (let index = 0; index < val.length; index++) {
let item = val[index]
that.isDisabledBnf = !this.checkBtnInfo(item)
if(this.checkBtnInfo(item) == false){
return false
}
}else if (val.length == 0){
that.isDisabledBnf = false
}
}else if (val.length == 0){
that.isDisabledBnf = false
}
},
deep: true

View File

@@ -2,7 +2,7 @@
<div class="detail-container">
<van-collapse v-model="activeNames">
<!-- 保单信息 -->
<van-collapse-item title="投保单信息" name="1" class="pb10 pt10">
<van-collapse-item v-if="branchType == '13'" title="投保单信息" name="1" class="pb10 pt10">
<van-cell-group>
<van-cell title="投保单号" :value="OrderInfoDTO.orderNo" />
<van-cell title="投保日期" :value="OrderInfoDTO.appntDateLabel" />
@@ -14,9 +14,22 @@
</van-cell-group>
</van-collapse-item>
<!-- 项目信息 -->
<van-collapse-item title="项目信息" name="3" v-if="branchType == '13'" class="detail-title pb10">
<van-cell-group>
<van-cell title="平台名称" :value="ebizOrderGbcRelDTO.unitName" />
<van-cell title="项目名称" :value="ebizOrderGbcRelDTO.projectName" />
<van-cell title="团队组代码" :value="ebizOrderGbcRelDTO.teamCode" />
<van-cell title="服务截止日期" :value="ebizOrderGbcRelDTO.projectEndDate" />
<van-cell title="录单人工号" :value="ebizOrderGbcRelDTO.personCode" />
<van-cell title="出单人工号" :value="ebizOrderGbcRelDTO.teamLeaderCode" />
</van-cell-group>
</van-collapse-item>
<!-- 投保人信息 -->
<van-collapse-item title="投保人信息" name="2" class="detail-title pb10">
<van-cell-group>
<van-cell title="部门/科室" v-if="branchType == '13'" :value="ebizOrderGbcRelDTO.departmentName" />
<van-cell title="投保人" :value="appntDTO.name" />
<van-cell title="性别" :value="appntDTO.sex" />
<van-cell title="证件类型" :value="appntDTO.idType" />
@@ -104,10 +117,13 @@ import { getQuestionList } from '@/api/ebiz/questions'
export default {
data() {
return {
branchType:'',
// 折叠面板
activeNames: ['1'],
// 保单基本信息
OrderInfoDTO: {},
// 项目信息
ebizOrderGbcRelDTO:{},
// 投保人信息
appntDTO: {},
// 被保险人信息
@@ -123,6 +139,11 @@ export default {
// 获取保单详情
this.getPolicyDetail()
},
mounted() {
if(window.localStorage.getItem('branchType') == '13') {
this.branchType = '13'
}
},
components: {
[Collapse.name]: Collapse,
[CollapseItem.name]: CollapseItem,
@@ -158,6 +179,7 @@ export default {
res.orderDTO.orderInfoDTO.bnfFlag = '法定受益人'
}
this.OrderInfoDTO = res.orderDTO.orderInfoDTO
this.ebizOrderGbcRelDTO = res.orderDTO.ebizOrderGbcRelDTO
this.appntDTO = res.orderDTO.appntDTO
this.reason = res.orderDTO.reason

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>

View File

@@ -2,8 +2,20 @@
<div class="insured-info-container pb60 redRadioCheckbox">
<!-- 基本信息 -->
<index-bar :key="renovate"></index-bar>
<!-- 项目信息 -->
<van-cell-group :border="false" v-if="branchType == '13'">
<p style="border-bottom: 1px solid #ebedf0" class="fs15 fwb pl10 mt10 pv12">项目信息</p>
<van-field v-model="projectDTO.platformName" label="平台名称" name="平台名称" readonly placeholder="请输入"/>
<van-field v-model="projectDTO.projectName" label="项目名称" name="项目名称" readonly placeholder="请输入"/>
<van-field v-model="projectDTO.teamCode" label="团队组代码" name="团队组代码" readonly placeholder="请输入"/>
<van-field v-model="projectDTO.endDate" label="服务截至日期" name="服务截至日期" readonly placeholder="请输入"/>
<van-field v-model="projectDTO.personCode" label="录单人工号" name="录单人工号" readonly placeholder="请输入"/>
<van-field v-model="projectDTO.leaderCode" label="出单人工号" name="出单人工号" readonly placeholder="请输入"/>
<!-- <van-field :value="projectDTO.departmentName" @click="toSelect('GBCKS')" readonly required label="部门/科室" name="部门/科室" right-icon="arrow" placeholder="请选择"/>-->
</van-cell-group>
<van-cell-group class="mt10">
<p style="border-bottom: 1px solid #ebedf0" class="fs15 fwb pl10 pv12">基本信息</p>
<van-field v-show="branchType == '13'" v-model="projectDTO.departmentName" @click="toSelect('GBCKS')" readonly required label="部门/科室" name="部门/科室" right-icon="arrow" placeholder="请选择"/>
<customer-picker
@on-choose="chooseCustomer"
v-validate="'required|salename'"
@@ -123,7 +135,14 @@
v-validate="'required|mobileLength11|mobileStartWith1|mobile'"
maxlength="11"
/>
<van-field v-model="userInfo.email" required label="电子邮箱" name="电子邮箱" placeholder="请输入" v-validate="'required|email'" clearable />
<van-field
v-model="userInfo.email"
required
label="电子邮箱"
name="电子邮箱"
placeholder="请输入"
v-validate="'required|email'"
clearable />
<van-field
v-model="userInfo.stature"
label="身高(cm)"
@@ -168,16 +187,16 @@
v-validate="'required'"
@click="toSelect('11')"
/>
<div class="p15 pl8 fs14">
<van-radio-group v-model="isElecCont" class="flex">
<label>
<i class="red pr5">*</i>
保单形式
</label>
<van-radio name="0" class="ml30">电子(不打印保单)</van-radio>
<van-radio name="2" class="ml20">电子+纸质</van-radio>
</van-radio-group>
</div>
<!-- <div class="p15 pl8 fs14">-->
<!-- <van-radio-group v-model="isElecCont" class="flex">-->
<!-- <label>-->
<!-- <i class="red pr5">*</i>-->
<!-- 保单形式-->
<!-- </label>-->
<!-- <van-radio name="0" class="ml30">电子(不打印保单)</van-radio>-->
<!-- <van-radio name="2" class="ml20">电子+纸质</van-radio>-->
<!-- </van-radio-group>-->
<!-- </div>-->
</van-cell-group>
<!-- <van-radio-group :border="false" v-model="userInfo.addressStatus" v-validate="'required'" label="设置为联系地址" name="设置为联系地址"> -->
<!-- 工作信息 -->
@@ -445,6 +464,7 @@
import { selectComp, getIdentityInfo } from './js/methods'
import SearchField from '@/components/common/SearchField'
import riskRules from '@/views/ebiz/common/risk-rules'
import { gbcProjectDetail, getDepartmentByProjectNo } from '@/api/GBC/GBC'
export default {
name: 'insuredInfo',
@@ -468,6 +488,21 @@
},
data() {
return {
branchType: '',
projectDTO:{
platformName:'',
projectName:'',
teamCode:'',
endDate:'',
personCode:'',
leaderCode:'',
departmentName:'',
departmentCode:'',
},
departmentList:[
{id: 1, text: '科室1'},
{id: 2, text: '科室2'}
],
thisdoubledialogshow: false,
thismyorderNo: '',
thismystr: '',
@@ -649,6 +684,17 @@
} else if (res.orderDTO.orderInfoDTO.productCode == 'GFRS_M0040') {
this.specilFlag = '1'
}
if(this.$route.query.orderNo) {
this.projectDTO.platformName = res.orderDTO.ebizOrderGbcRelDTO.unitName
this.projectDTO.projectName = res.orderDTO.ebizOrderGbcRelDTO.projectName
this.projectDTO.teamCode = res.orderDTO.ebizOrderGbcRelDTO.teamCode
this.projectDTO.endDate = res.orderDTO.ebizOrderGbcRelDTO.projectEndDate
this.projectDTO.personCode = res.orderDTO.ebizOrderGbcRelDTO.personCode
this.projectDTO.leaderCode = res.orderDTO.ebizOrderGbcRelDTO.teamLeaderCode
this.projectDTO.departmentName = res.orderDTO.ebizOrderGbcRelDTO.departmentName
this.projectDTO.departmentCode = res.orderDTO.ebizOrderGbcRelDTO.departmentCode
}
// ------------------------专为桂企写死--end---------------//
}
})
@@ -682,8 +728,47 @@
this.areaValue = '520000'
}
this.areaLists = areaLists
if(window.localStorage.getItem('branchType') == '13') {
this.branchType = '13'
if(!this.$route.query.orderNo) {
this.gbcProjectDetail()
}
this.getDepartmentByProjectNo()
}
},
methods: {
getDepartmentByProjectNo(){
let params = {
}
getDepartmentByProjectNo(params).then(res=>{
if(res.result == '0'){
this.departmentList = []
if(res.content && res.content.length != 0) {
res.content.forEach(item=>{
this.departmentList.push({
id: item.departmentCode,
text: item.departmentName
})
})
}
} else {
this.$toast(res.resultMessage)
}
})
},
gbcProjectDetail(){
let params = {
}
gbcProjectDetail(params).then(res=>{
if(res.result == '0') {
this.projectDTO = res.content
} else {
this.$toast(res.resultMessage)
}
})
},
isNewPeopleFlagTip(){
this.isNewPeopleFlagTipshow = true
},
@@ -815,6 +900,9 @@
case '11':
this.columns = DataDictionary.npType
break
case 'GBCKS':
this.columns = this.departmentList
break
}
// if (pickerType == '1') {
@@ -898,6 +986,9 @@
this.userInfo.marriageStatus = value.text
} else if (this.pickerType === '11') {
this.userInfo.npType = value.id
} else if (this.pickerType === 'GBCKS') {
this.projectDTO.departmentCode = value.id
this.projectDTO.departmentName = value.text
}
},
//证件起始截止日期
@@ -1056,10 +1147,10 @@
return false
}
}
if(this.isElecCont == '' || this.isElecCont == null || this.isElecCont == undefined){
this.$toast('请选择保单形式')
return false
}
// if(this.isElecCont == '' || this.isElecCont == null || this.isElecCont == undefined){
// this.$toast('请选择保单形式')
// return false
// }
// .then(valid => {
if (true === valid) {
localStorage.chooseProductCodesNew = localStorage.chooseProductCodes
@@ -1362,6 +1453,13 @@
}
this.thismystr = ''
params.orderDTO.appntDTO = this.userInfo
if(this.branchType == '13'){
params.orderDTO.ebizOrderGbcRelDTO = {
projectCode: this.projectDTO.projectCode,
departmentCode: this.projectDTO.departmentCode,
teamCode:this.projectDTO.teamCode,
}
}
console.log('params :>> ', params)
//------------------------专为桂企写死--begin---------------//
if (this.specilFlag == '1') {

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,10 +447,17 @@ export default {
this.loadMore()
},
//投保单详情
goDetail(order) {
async goDetail(order) {
let thisToken = this.$CacheUtils.getLocItem('token')
let thisbranchType = ''
if(this.$CacheUtils.getLocItem('branchType') == '13') {
thisbranchType = this.$CacheUtils.getLocItem('branchType')
}
window.localStorage.clear()
this.$CacheUtils.setLocItem('token', thisToken)
if(thisbranchType) {
this.$CacheUtils.setLocItem('branchType', thisbranchType)
}
window.localStorage.setItem('detailJump', '')
if (order.insuredDTOs[0]) {
if (order.insuredDTOs[0].riskDTOLst[0]) {
@@ -475,7 +482,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'){//告知信息保存成功, 跳到风险测评--
@@ -552,8 +587,16 @@ export default {
//新增
add() {
let thisToken = this.$CacheUtils.getLocItem('token')
let thisbranchType = ''
if(this.$CacheUtils.getLocItem('branchType') == '13') {
thisbranchType = this.$CacheUtils.getLocItem('branchType')
}
window.localStorage.clear()
this.$CacheUtils.setLocItem('token', thisToken)
if(thisbranchType) {
this.$CacheUtils.setLocItem('branchType', thisbranchType)
}
localStorage.orderNo = ''
localStorage.chooseProductCodes = '' //置空所选险种
this.$jump({

View File

@@ -882,17 +882,17 @@ export default {
border: none;
}
.allFalse {
position: fixed;
/*position: fixed;*/
overflow: hidden;
z-index: 10;
width: 100%;
}
.content-all-info {
padding-top: 153px;
}
.content-all-info2 {
padding-top: 90px;
}
/*.content-all-info {*/
/* padding-top: 153px;*/
/*}*/
/*.content-all-info2 {*/
/* padding-top: 90px;*/
/*}*/
.pb5{
padding-bottom: 5px;
}

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

@@ -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">
<!-- 不再微信 -->
@@ -234,7 +235,7 @@
</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"
@@ -408,7 +409,9 @@ export default {
appntRidFlag: null,
insureRidFlag: null
},
showAgentView:0
showAgentView:0,
cvalidateStr: '',
activeType: ''
}
},
methods: {
@@ -1135,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
}
@@ -1433,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)
}
@@ -1587,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) => {
@@ -1641,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
@@ -1748,16 +1766,22 @@ export default {
this.goUrl()
}
} else {
this.faceAuthCount.weixin++
console.log('腾讯人脸识别失败', this.faceAuthCount.weixin, typeof this.faceAuthCount.weixin)
if (this.faceAuthCount.weixin >= this.smsAuthNum) {
if (window.sessionStorage.shareCode == '1') {
this.operaFlag = 'insured'
} else {
this.operaFlag = 'appnt'
}
this.realPeopelCheck()
// this.faceAuthCount.weixin++
// console.log('腾讯人脸识别失败', this.faceAuthCount.weixin, typeof this.faceAuthCount.weixin)
// if (this.faceAuthCount.weixin >= this.smsAuthNum) {
// if (window.sessionStorage.shareCode == '1') {
// this.operaFlag = 'insured'
// } else {
// this.operaFlag = 'appnt'
// }
// this.realPeopelCheck()
// }
if (window.sessionStorage.shareCode == '1') {
this.operaFlag = 'insured'
} else {
this.operaFlag = 'appnt'
}
this.realPeopelCheck()
}
},
async recognition() {

File diff suppressed because it is too large Load Diff

View File

@@ -5,9 +5,9 @@
<div>
<!-- <h2 v-if="activeType=='KMH'" style="text-align:center" class="mb20">指定保单生效日说明</h2> -->
<!-- <h2 v-if="activeType=='SQY'" style="text-align:center" class="mb20">指定保险合同生效日说明</h2> -->
<h2 style="text-align:center" class="mb20">指定保险合同生效说明</h2>
<h2 style="text-align:center" class="mb20">预录投保单承保生效说明</h2>
<p style="text-indent:2rem;" :class="[activeType=='SQY' ? 'fontb' : '']">
尊敬的客户您好以下为指定保险合同生效重要说明请您务必仔细阅读和确认
尊敬的客户您好以下为预录投保单承保生效重要说明请您务必仔细阅读和确认
</p>
<p style="text-indent:2rem;">
<!-- 如您于{{ activeType=='KMH' ? '2020年12月31日':activeType=='SQY'? '2021年5月31日':'' }}(包含当日之前申请投保并交费成功且国富人寿保险股份有限公司以下简称国富人寿
@@ -17,16 +17,17 @@
<span>{{ cvalidateStrToFormat }}</span>零时起生效您交费成功日或签发保单日如在<span>{{ cvalidateStrToFormat }}</span>
包含当日之后保险合同于国富人寿收取首期保险费并签发保险单次日零时起生效 -->
如您于<span>{{ cvalidateStrOneDayOff }}</span>(包含当日前申请投保且支付保险费经国富人寿保险股份有限公司以下简称国富人寿同意并签发保单
签发保单日在<span>{{ cvalidateStrOneDayOff }}</span>及以前保险合同自{{ cvalidateStrToFormat }}零时起生效签发保单日在{{ cvalidateStrToFormat }}及以后
保险合同自签发保险单次日零时起生效
<!-- 如您于<span>{{ cvalidateStrOneDayOff }}</span>(包含当日前申请投保且支付保险费经国富人寿保险股份有限公司以下简称国富人寿同意并签发保单-->
<!-- <span>{{ cvalidateStrOneDayOff }}</span>(包含当日前签发保单保险合同自{{ cvalidateStrToFormat }}零时起生效{{ cvalidateStrToFormat }}(包含当日后签发保单-->
<!-- 保险合同自签发保险单次日零时起生效国富人寿将通过您投保时预留的银行账户转账扣除保险费为顺利承保请您充足银行账户余额-->
本次投保为预录投保申请国富人寿保险股份有限公司以下简称国富人寿将通过您投保时预留的银行账户转账扣除保险费为顺利承保请您充足银行账户余额如您于{{ cvalidateStrOneDayOff }}(包含当日前提交投保申请且完成转账支付经国富人寿同意于{{ cvalidateStrOneDayOff }}(包含当日前签发保单保险合同自{{ cvalidateStrToFormat }}零时起生效如您于{{ cvalidateStrOneDayOff }}(包含当日前提交投保申请{{ cvalidateStrToFormat }}(包含当日完成转账支付经国富人寿同意于{{ cvalidateStrToFormat }}(包含当日后签发保单保险合同自签发保险单次日零时起生效
</p>
<p style="text-indent:2rem;">
国富人寿承担的保险责任从保险合同生效日零时开始签发保险单后国富人寿将电子保单发送至您的电子邮箱
</p>
<p style="text-indent:2rem;">
请您务必仔细阅读保险条款中的犹豫期保险责任责任免除等各项重要容和提示
请您务必仔细阅读保险条款中的犹豫期保险责任责任免除等各项重要容和提示
</p>
</div>
</div>
@@ -34,7 +35,7 @@
<div class="bg-white bottom-btn">
<van-radio-group v-model="radio" class="pb10 pb20 pl30">
<van-radio name="1" @click="click" class="fs14">
<span>本人已详细阅读并同意上述指定保单生效说明 </span>
<span>本人已详细阅读并同意上述预录投保单承保生效说明 </span>
</van-radio>
</van-radio-group>
<van-button type="danger" size="large" :disabled="isDisable" @click="goNext" v-no-more-click="1000">我已阅读并知晓</van-button>
@@ -112,7 +113,7 @@ export default {
let that = this
// {{switchFlag.Time?pageVariable.msg:pageVariable.number}}
that.timeOut()
document.title = '指定保单生效说明'
document.title = '预录投保单承保生效说明'
that.activeType = window.localStorage.getItem('activeType')
// Notify({
// type: 'warning',
@@ -134,7 +135,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 +203,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 +227,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 +255,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 +277,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 +309,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 +332,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 +355,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 +377,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 {