Compare commits

...

107 Commits

Author SHA1 Message Date
DESKTOP-AFPHKHF\PC
e08827d0d4 [银保app] 续期详情,字段对应状态终止,续期中互换. 2023-01-11 22:49:18 +08:00
DESKTOP-AFPHKHF\PC
f09109b7e7 [银保app] 续期列表承保日期字段修改. 2023-01-11 17:28:22 +08:00
DESKTOP-AFPHKHF\PC
bede56b2db [银保app]保单列表搜索框改变到弹出层搜索,续期详情列表字段修改 2023-01-10 10:29:31 +08:00
DESKTOP-AFPHKHF\PC
fb67a6dd65 [银保app] 首页上拉刷新功能,续期详情拨打电话完善,续期点进去加转圈的加载功能,搜索也加跟保单列表一样,续期搜索框保单加身份证续期加名字,保单列表加姓名加一键删除. 2023-01-09 10:24:12 +08:00
DESKTOP-AFPHKHF\PC
1833ae101f [银保app] 上头条前三名头像判断,后端有则显示后端返回的地址.后端没有显示本地图片.图片改为圆形. 2023-01-01 19:31:57 +08:00
DESKTOP-AFPHKHF\PC
c06d71ff98 [银保app] 上头条,续期,业绩查询三个页面的时间1月改为01月 2023-01-01 16:39:36 +08:00
DESKTOP-AFPHKHF\PC
c37e57732e [银保app] 保单查询查询按钮逻辑优化 2023-01-01 12:05:44 +08:00
DESKTOP-AFPHKHF\PC
b7d2ee6c91 [银保app] 续期列表详情,保全列表详情5个页面添加水印效果,续期详情为出单失败时添加失败原因字段 2022-12-28 14:39:47 +08:00
DESKTOP-AFPHKHF\PC
e3478f36d2 [银保app]续期列表前三个终止原因不显示.续期详情,保全退保金额改为交易金额.续期详情应交日字段修改. 2022-12-27 13:41:10 +08:00
liu.xiaofeng@ebiz-digits.com
8124e39463 【银保app】默认隐藏搜索条件 2022-12-26 21:25:36 +08:00
liu.xiaofeng@ebiz-digits.com
8e3294aaeb 【银保app】保单列表列表搜索逻辑修改 2022-12-26 21:04:06 +08:00
liu.xiaofeng@ebiz-digits.com
c56bed2f70 【银保app】保单列表默认隐藏搜索 2022-12-26 20:30:57 +08:00
liu.xiaofeng@ebiz-digits.com
34bfdbc90d 【银保app】搜索条件重置问题修改 2022-12-26 20:24:28 +08:00
liu.xiaofeng@ebiz-digits.com
36ff9221de 【银保app】保单列表页面如果没有数据清空页面 2022-12-26 19:33:41 +08:00
liu.xiaofeng@ebiz-digits.com
e0c83f4cd3 【银保app】保单列表查询无数据清空页面数据 2022-12-26 18:34:29 +08:00
DESKTOP-AFPHKHF\PC
19e8ec9c02 [银保app] 保单列表分页请求优化 2022-12-26 14:33:13 +08:00
liu.xiaofeng@ebiz-digits.com
af3eb249d6 【银保app】业绩查询网点渠道数据设置默认展示值 2022-12-22 20:43:08 +08:00
liu.xiaofeng@ebiz-digits.com
3fdac4407e 【银保app】续期列表跳转续期详情路由传参修改 2022-12-22 20:05:04 +08:00
DESKTOP-AFPHKHF\PC
ecda414691 [银保app]修改续期列表的保单字段,续期查看详情入参显示无. 2022-12-22 16:18:24 +08:00
liu.xiaofeng@ebiz-digits.com
2fc051ebfd 【银保app】业绩查询页面达标情况展示逻辑修改 2022-12-22 16:13:38 +08:00
liu.xiaofeng@ebiz-digits.com
6e7186af68 【银保app】首页保费排行榜按钮切换功能完善 2022-12-21 22:37:14 +08:00
liu.xiaofeng@ebiz-digits.com
8ba5ae7554 【银保app】首页续期跳转地址修改 2022-12-21 22:17:46 +08:00
liu.xiaofeng@ebiz-digits.com
6217d70249 【银保app】首页续期管理跳转地址前端写死 2022-12-15 18:25:07 +08:00
DESKTOP-AFPHKHF\PC
93ee833aaa [银保app]续期和保全页面 上方搜索框添加x号一键清除功能. 2022-12-14 11:46:14 +08:00
DESKTOP-AFPHKHF\PC
636a3fa817 Merge branch 'YB_APP' of http://112.124.100.131/GFRS/ebiz-h5 into YB_APP 2022-12-14 11:11:20 +08:00
DESKTOP-AFPHKHF\PC
8a4f147b48 [银保app]保单查询页面添加分页功能 2022-12-14 11:11:10 +08:00
liu.xiaofeng@ebiz-digits.com
66bb755f31 【银保app】保单列表增加loading效果 2022-12-14 11:06:22 +08:00
liu.xiaofeng@ebiz-digits.com
7ad79c4945 【银保app】获取icon信息接口地址变更 2022-12-08 14:16:09 +08:00
liu.xiaofeng@ebiz-digits.com
6ba3ee1e7a 【银保app】产品详情页面底部按钮默认隐藏 2022-12-07 17:59:59 +08:00
liu.xiaofeng@ebiz-digits.com
8ae86106fd 【银保app】搜索条件弹窗重置方法修改 2022-12-07 17:46:09 +08:00
liu.xiaofeng@ebiz-digits.com
ae7ed170d5 【银保app】产品搜索默认收回 2022-12-07 17:38:05 +08:00
liu.xiaofeng@ebiz-digits.com
e009d586c2 Merge branch 'YB_APP' of http://112.124.100.131/GFRS/ebiz-h5 into YB_APP 2022-12-07 16:34:55 +08:00
liu.xiaofeng@ebiz-digits.com
c9e3b0e527 【银保app】产品列表增加搜索条件 2022-12-07 16:34:47 +08:00
DESKTOP-AFPHKHF\PC
3375f9231c [银保app]续期列表和详情接口字段对接修改.添加终止图片. 2022-12-07 14:07:06 +08:00
liu.xiaofeng@ebiz-digits.com
3f5e4b6627 【银保app】配置文件 2022-12-06 17:47:44 +08:00
liu.xiaofeng@ebiz-digits.com
4c49c89116 【银保app】首页保费排行榜增加数据条目判断 2022-12-06 17:46:49 +08:00
liu.xiaofeng@ebiz-digits.com
f62b54609d 【银保app】修改服务页面样式 2022-12-01 17:03:50 +08:00
liu.xiaofeng@ebiz-digits.com
0f8b41bcca 【银保app】抽离服务页面样式 调整水印展示列数 2022-12-01 14:07:34 +08:00
liu.xiaofeng@ebiz-digits.com
851f70b689 【银保app】添加水印公共js并调用获取代理人信息接口 2022-11-30 16:15:35 +08:00
DESKTOP-AFPHKHF\PC
53d8d671cd [银保app]保全列表搜索判断条件完善 2022-11-30 16:05:32 +08:00
DESKTOP-AFPHKHF\PC
e45473f4e2 [银保app]保全.保单,续期三个列表样式适配修改 2022-11-30 14:26:46 +08:00
liu.xiaofeng@ebiz-digits.com
20b972408f 【银保app】首页开放保全页面 2022-11-29 20:19:31 +08:00
DESKTOP-AFPHKHF\PC
9859143c7b [银保项目]保单列表适配调整.保全和续期去掉图片.背景只有蓝色条件,修改保全字段.样式适配 2022-11-29 20:04:46 +08:00
liu.xiaofeng@ebiz-digits.com
8a5e9ec6c1 【银保app】卸载打包压缩的插件 2022-11-29 18:16:17 +08:00
liu.xiaofeng@ebiz-digits.com
0360a04223 【银保app】修改首页个人保费排行榜字体颜色 以及业绩查询渠道业绩银行名称显示调整为左对齐 2022-11-29 18:00:36 +08:00
liu.xiaofeng@ebiz-digits.com
531d6e623d 【银保app】增加页面打包插件压缩工具 2022-11-29 14:17:55 +08:00
liu.xiaofeng@ebiz-digits.com
8865cc20d2 【银保app】新增内存较小的图片 首页应用的图片更换成小图片 2022-11-29 11:08:17 +08:00
liu.xiaofeng@ebiz-digits.com
e0867ecbba 【银保app】修改业绩查询中的样式 以及更换上头条排行榜显示的头像为国富logo 2022-11-28 17:50:10 +08:00
liu.xiaofeng@ebiz-digits.com
0120633965 【银保app】修改配置文件 2022-11-28 11:48:50 +08:00
liu.xiaofeng@ebiz-digits.com
b0d02792f1 【银保app】修改配置文件 2022-11-28 11:38:22 +08:00
liu.xiaofeng@ebiz-digits.com
732a2527a9 【银保app】修改首页样式 2022-11-28 09:57:39 +08:00
DESKTOP-AFPHKHF\PC
aaeb635841 [银保app]----添加保全和续期的路由和接口.修改保单列表和详情的样式.添加保全页面保全两个详情.续期页面续期详情页面. 2022-11-28 09:52:43 +08:00
liu.xiaofeng@ebiz-digits.com
a727170502 【银保app】首页续期增加跳转地址 2022-11-24 05:06:22 +08:00
liu.xiaofeng@ebiz-digits.com
1ed18a7d61 【银保app】修改首页个人保费排行榜显示的时间少一天问题 2022-11-24 04:46:03 +08:00
liu.xiaofeng@ebiz-digits.com
7e60b74567 【银保app】增加空数据展示样式 2022-11-24 04:24:17 +08:00
liu.xiaofeng@ebiz-digits.com
afbc92cb49 【银保app】修改prd环境接口调用地址 2022-11-24 02:34:55 +08:00
liu.xiaofeng@ebiz-digits.com
0f91b917d2 【银保app】添加prd环境接口请求地址 2022-11-24 02:25:47 +08:00
liu.xiaofeng@ebiz-digits.com
acb395388b 【银保app】首页的续期管理以及保全中心提示暂未开放 2022-11-23 14:04:28 +08:00
liu.xiaofeng@ebiz-digits.com
81a20210f6 【银保app】保单列表搜索弹窗默认收起 2022-11-23 13:19:01 +08:00
liu.xiaofeng@ebiz-digits.com
2f8e154687 【银保app】修改保单详情页面样式 2022-11-23 11:08:48 +08:00
DESKTOP-AFPHKHF\PC
54cefafa08 Merge branch 'YB_APP' of http://112.124.100.131/GFRS/ebiz-h5 into YB_APP 2022-11-23 09:15:22 +08:00
DESKTOP-AFPHKHF\PC
d2b8772d0a [银保app]宋凯琪----添加一个暂时用的接口,mine里///加入两张图片,保单查询的弹出层功能建设. 2022-11-23 09:15:06 +08:00
liu.xiaofeng@ebiz-digits.com
722ffec7e0 【银保app】修改请求接口基础地址修改 2022-11-22 15:55:12 +08:00
liu.xiaofeng@ebiz-digits.com
a43e98b935 【银保app】业绩查询页面接口入参修改 2022-11-21 15:07:27 +08:00
liu.xiaofeng@ebiz-digits.com
26dc6bc94c 【银保app】上头条页面传参参数 修改成动态的 2022-11-21 14:46:09 +08:00
liu.xiaofeng@ebiz-digits.com
b9741ee121 【银保app】上头条功能没有数据样式调整 2022-11-21 11:08:27 +08:00
liu.xiaofeng@ebiz-digits.com
a091a3bb59 【银保app】业绩查询页面样式调整 2022-11-21 09:20:32 +08:00
liu.xiaofeng@ebiz-digits.com
2d4f089cc2 【银保app】查询客户保单跳转方法 2022-11-21 09:18:27 +08:00
liu.xiaofeng@ebiz-digits.com
ec156335c4 【银保app】切换日期请求不同数据 2022-11-19 18:26:01 +08:00
liu.xiaofeng@ebiz-digits.com
369fad1da4 Merge branch 'YB_APP' of http://112.124.100.131/GFRS/ebiz-h5 into YB_APP 2022-11-19 18:09:40 +08:00
liu.xiaofeng@ebiz-digits.com
4cf33658b1 【银保app】业绩查询接口对接 2022-11-19 18:09:30 +08:00
DESKTOP-AFPHKHF\PC
b2291a8a8d 宋凯琪--保单列表样式修改 2022-11-18 19:25:53 +08:00
liu.xiaofeng@ebiz-digits.com
6ccf05fffe 【银保app】保单详情 保单列表 2022-11-18 18:37:29 +08:00
liu.xiaofeng@ebiz-digits.com
969ba8b7fa 【银保app】业绩查询页面样式抽离 2022-11-18 16:38:24 +08:00
liu.xiaofeng@ebiz-digits.com
0b16de9042 【银保app】新增上头条和业绩查询功能 2022-11-18 14:49:41 +08:00
liu.xiaofeng@ebiz-digits.com
c6a52a0978 【银保app】修改首页实时出单榜 时间显示 以及轮播图距离顶部的高度 2022-11-16 16:29:37 +08:00
liu.xiaofeng@ebiz-digits.com
0333c0c699 【银保app】首页保费排行榜日期只是展示当前时间 柱状图动画调整 2022-11-16 16:14:43 +08:00
liu.xiaofeng@ebiz-digits.com
6e07415a6a 【银保app】修改页面跳转地址拼接方式 2022-11-16 15:25:37 +08:00
liu.xiaofeng@ebiz-digits.com
d38e117a66 【银保app】修改首页轮播图跳转方式的判断条件 2022-11-16 13:33:37 +08:00
liu.xiaofeng@ebiz-digits.com
46690155de 【银保app】修改首页轮播跳转地址修改 2022-11-16 13:18:47 +08:00
liu.xiaofeng@ebiz-digits.com
0b91c9af46 【银保app】首页轮播图跳转地址暂时写死 2022-11-16 11:58:16 +08:00
liu.xiaofeng@ebiz-digits.com
2ca59a0bd3 【银保app】修改页面跳转的字符串截取方式 2022-11-16 11:50:49 +08:00
liu.xiaofeng@ebiz-digits.com
e28441cf19 【银保app】修改jump配置文件的页面配置 2022-11-16 11:11:32 +08:00
liu.xiaofeng@ebiz-digits.com
36f0037310 【银保app】新增上头条页面 首页轮播图跳转修改 2022-11-16 10:53:22 +08:00
liu.xiaofeng@ebiz-digits.com
20a49b6ce1 【银保app】新增业绩查询保单列表以及保单详情页面 2022-11-14 14:49:26 +08:00
liu.xiaofeng@ebiz-digits.com
b193fdf590 【银保app】如果用户没有上传头像 显示默认头像 2022-11-09 18:03:01 +08:00
liu.xiaofeng@ebiz-digits.com
7b7c785e26 我的页面和服务页面跳转方式修改 2022-11-09 17:37:26 +08:00
liu.xiaofeng@ebiz-digits.com
6cfc533f0d 【银保app】轮播图增加跳转 2022-11-09 14:32:09 +08:00
liu.xiaofeng@ebiz-digits.com
50f24bbb42 【银保app】调整首页实时出单榜表格样式显示 2022-11-08 19:44:35 +08:00
liu.xiaofeng@ebiz-digits.com
9088078142 【银保app】我的页面根据接口返回的数据展示代理人级别信息 2022-11-08 19:31:40 +08:00
liu.xiaofeng@ebiz-digits.com
f582879766 【银保app】增加有新消息图标的样例 2022-11-08 18:14:10 +08:00
liu.xiaofeng@ebiz-digits.com
7f26aada01 【银保app】服务页面以及我的页面 消息跳转消息列表 2022-11-08 17:42:59 +08:00
liu.xiaofeng@ebiz-digits.com
26dd9396c0 【银保app】我的页面设置跳转方式调整 2022-11-08 16:54:31 +08:00
liu.xiaofeng@ebiz-digits.com
d100ea3e8c 【银保app】增加服务页面和我的页面跳转功能 vant版本回归到2.2.0 消息图标用img表示 不用icon 2022-11-08 16:21:55 +08:00
liu.xiaofeng@ebiz-digits.com
5bf87f73fa 【银保app】 升级vant版本 2022-11-08 15:04:38 +08:00
liu.xiaofeng@ebiz-digits.com
95be2cdc92 【银保app】修改我的页面名字脱敏显示规则判断 2022-11-08 14:32:07 +08:00
liu.xiaofeng@ebiz-digits.com
12ff9f0393 【银保app】修改接口地址为 v1 2022-11-08 14:19:04 +08:00
liu.xiaofeng@ebiz-digits.com
036715a0a9 【银保app】我的页面增加错误提示 2022-11-08 11:45:51 +08:00
liu.xiaofeng@ebiz-digits.com
387ad36a2a 【银保app】原生方法逻辑修改 个人信息字段赋值 2022-11-08 11:08:44 +08:00
liu.xiaofeng@ebiz-digits.com
669d4be5f5 【银保app】原生调用方法 添加到每个需要的页面 增加调用个人信息的接口 2022-11-08 10:40:53 +08:00
liu.xiaofeng@ebiz-digits.com
17be558cd9 【银保app】修路接口地址v1 增加首页背景图片 2022-11-08 10:06:28 +08:00
liu.xiaofeng@ebiz-digits.com
7c7a16c457 修改接口地址 2022-11-07 18:19:32 +08:00
liu.xiaofeng@ebiz-digits.com
c1dcbabe11 调整页面调用store方法 2022-11-07 18:02:31 +08:00
liu.xiaofeng@ebiz-digits.com
99f4cf7331 修改window下暴露出的方法 2022-11-07 16:59:55 +08:00
li.yuetong
bfee576b60 【银保app】查看和上传头像 2022-11-07 16:35:51 +08:00
li.yuetong
ec595b854f 【银保app】原生方法,获取首页高度 2022-11-07 13:50:10 +08:00
liu.xiaofeng@ebiz-digits.com
7d0325e013 YB_APP第一次提交 2022-11-03 11:24:10 +08:00
86 changed files with 5174 additions and 160 deletions

230
package-lock.json generated
View File

@@ -1874,8 +1874,8 @@
},
"amdefine": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
"integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
"resolved": "https://registry.npmmirror.com/amdefine/-/amdefine-1.0.1.tgz",
"integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==",
"dev": true
},
"animate.css": {
@@ -1966,7 +1966,7 @@
},
"are-we-there-yet": {
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz",
"resolved": "https://registry.npmmirror.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz",
"integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==",
"dev": true,
"requires": {
@@ -2009,8 +2009,8 @@
},
"array-find-index": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
"integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
"resolved": "https://registry.npmmirror.com/array-find-index/-/array-find-index-1.0.2.tgz",
"integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==",
"dev": true
},
"array-flatten": {
@@ -2128,8 +2128,8 @@
},
"async-foreach": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz",
"integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=",
"resolved": "https://registry.npmmirror.com/async-foreach/-/async-foreach-0.1.3.tgz",
"integrity": "sha512-VUeSMD8nEGBWaZK4lizI1sf3yEC7pnAQ/mrI7pC2fBz2s/tq5jWWEngTwaf0Gruu/OoXRGLGg1XFqpYBiGTYJA==",
"dev": true
},
"async-limiter": {
@@ -2715,8 +2715,8 @@
},
"block-stream": {
"version": "0.0.9",
"resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
"integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
"resolved": "https://registry.npmmirror.com/block-stream/-/block-stream-0.0.9.tgz",
"integrity": "sha512-OorbnJVPII4DuUKbjARAe8u8EfqOmkEEaSFIyoQ7OjTHn6kafxWl0wLgoZ2rXaYd7MyLcDaU4TmhfxtwgcccMQ==",
"dev": true,
"requires": {
"inherits": "~2.0.0"
@@ -3121,8 +3121,8 @@
},
"camelcase-keys": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
"integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
"resolved": "https://registry.npmmirror.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
"integrity": "sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ==",
"dev": true,
"requires": {
"camelcase": "^2.0.0",
@@ -3131,8 +3131,8 @@
"dependencies": {
"camelcase": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
"integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
"resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-2.1.1.tgz",
"integrity": "sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==",
"dev": true
}
}
@@ -3723,8 +3723,8 @@
},
"console-control-strings": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
"integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
"resolved": "https://registry.npmmirror.com/console-control-strings/-/console-control-strings-1.1.0.tgz",
"integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==",
"dev": true
},
"consolidate": {
@@ -4353,8 +4353,8 @@
},
"currently-unhandled": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
"integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
"resolved": "https://registry.npmmirror.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
"integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==",
"dev": true,
"requires": {
"array-find-index": "^1.0.1"
@@ -4648,8 +4648,8 @@
},
"delegates": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
"integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
"resolved": "https://registry.npmmirror.com/delegates/-/delegates-1.0.0.tgz",
"integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==",
"dev": true
},
"depd": {
@@ -6397,7 +6397,8 @@
"ansi-regex": {
"version": "2.1.1",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"aproba": {
"version": "1.2.0",
@@ -6812,7 +6813,8 @@
"safe-buffer": {
"version": "5.1.2",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"safer-buffer": {
"version": "2.1.2",
@@ -6868,6 +6870,7 @@
"version": "3.0.1",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"ansi-regex": "^2.0.0"
}
@@ -6911,18 +6914,20 @@
"wrappy": {
"version": "1.0.2",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"yallist": {
"version": "3.0.3",
"bundled": true,
"dev": true
"dev": true,
"optional": true
}
}
},
"fstream": {
"version": "1.0.12",
"resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz",
"resolved": "https://registry.npmmirror.com/fstream/-/fstream-1.0.12.tgz",
"integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
"dev": true,
"requires": {
@@ -6946,8 +6951,8 @@
},
"gauge": {
"version": "2.7.4",
"resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
"integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
"resolved": "https://registry.npmmirror.com/gauge/-/gauge-2.7.4.tgz",
"integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==",
"dev": true,
"requires": {
"aproba": "^1.0.3",
@@ -6962,14 +6967,14 @@
"dependencies": {
"ansi-regex": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
"resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-2.1.1.tgz",
"integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
"dev": true
},
"is-fullwidth-code-point": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
"integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
"resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
"integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==",
"dev": true,
"requires": {
"number-is-nan": "^1.0.0"
@@ -6977,8 +6982,8 @@
},
"string-width": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
"integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
"resolved": "https://registry.npmmirror.com/string-width/-/string-width-1.0.2.tgz",
"integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==",
"dev": true,
"requires": {
"code-point-at": "^1.0.0",
@@ -6988,8 +6993,8 @@
},
"strip-ansi": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
"dev": true,
"requires": {
"ansi-regex": "^2.0.0"
@@ -6999,7 +7004,7 @@
},
"gaze": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz",
"resolved": "https://registry.npmmirror.com/gaze/-/gaze-1.1.3.tgz",
"integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
"dev": true,
"requires": {
@@ -7150,14 +7155,22 @@
}
},
"globule": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/globule/-/globule-1.3.3.tgz",
"integrity": "sha512-mb1aYtDbIjTu4ShMB85m3UzjX9BVKe9WCzsnfMSZk+K5GpIbBOexgg4PPCt5eHDEG5/ZQAUX2Kct02zfiPLsKg==",
"version": "1.3.4",
"resolved": "https://registry.npmmirror.com/globule/-/globule-1.3.4.tgz",
"integrity": "sha512-OPTIfhMBh7JbBYDpa5b+Q5ptmMWKwcNcFSR/0c6t8V4f3ZAVBEsKNY37QdVqmLRYSMhOUGYrY0QhSoEpzGr/Eg==",
"dev": true,
"requires": {
"glob": "~7.1.1",
"lodash": "~4.17.10",
"lodash": "^4.17.21",
"minimatch": "~3.0.2"
},
"dependencies": {
"lodash": {
"version": "4.17.21",
"resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
"dev": true
}
}
},
"graceful-fs": {
@@ -7264,8 +7277,8 @@
},
"has-unicode": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
"integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
"resolved": "https://registry.npmmirror.com/has-unicode/-/has-unicode-2.0.1.tgz",
"integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==",
"dev": true
},
"has-value": {
@@ -7771,14 +7784,14 @@
},
"in-publish": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz",
"resolved": "https://registry.npmmirror.com/in-publish/-/in-publish-2.0.1.tgz",
"integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==",
"dev": true
},
"indent-string": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
"integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
"resolved": "https://registry.npmmirror.com/indent-string/-/indent-string-2.1.0.tgz",
"integrity": "sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==",
"dev": true,
"requires": {
"repeating": "^2.0.0"
@@ -9519,7 +9532,7 @@
},
"js-sha256": {
"version": "0.9.0",
"resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz",
"resolved": "https://registry.npmmirror.com/js-sha256/-/js-sha256-0.9.0.tgz",
"integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA=="
},
"js-tokens": {
@@ -9910,8 +9923,8 @@
},
"loud-rejection": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
"integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
"resolved": "https://registry.npmmirror.com/loud-rejection/-/loud-rejection-1.6.0.tgz",
"integrity": "sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ==",
"dev": true,
"requires": {
"currently-unhandled": "^0.4.1",
@@ -9969,8 +9982,8 @@
},
"map-obj": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
"integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
"resolved": "https://registry.npmmirror.com/map-obj/-/map-obj-1.0.1.tgz",
"integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==",
"dev": true
},
"map-visit": {
@@ -10032,8 +10045,8 @@
},
"meow": {
"version": "3.7.0",
"resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
"integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
"resolved": "https://registry.npmmirror.com/meow/-/meow-3.7.0.tgz",
"integrity": "sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==",
"dev": true,
"requires": {
"camelcase-keys": "^2.0.0",
@@ -10416,7 +10429,7 @@
},
"node-gyp": {
"version": "3.8.0",
"resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz",
"resolved": "https://registry.npmmirror.com/node-gyp/-/node-gyp-3.8.0.tgz",
"integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==",
"dev": true,
"requires": {
@@ -10436,8 +10449,8 @@
"dependencies": {
"nopt": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
"integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
"resolved": "https://registry.npmmirror.com/nopt/-/nopt-3.0.6.tgz",
"integrity": "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==",
"dev": true,
"requires": {
"abbrev": "1"
@@ -10445,8 +10458,8 @@
},
"semver": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
"integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
"resolved": "https://registry.npmmirror.com/semver/-/semver-5.3.0.tgz",
"integrity": "sha512-mfmm3/H9+67MCVix1h+IXTpDwL6710LyHuk7+cWC9T1mE0qz4iHhh6r4hU2wrIT9iTsAAC2XQRvfblL028cpLw==",
"dev": true
}
}
@@ -10531,7 +10544,7 @@
},
"node-sass": {
"version": "4.14.1",
"resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.14.1.tgz",
"resolved": "https://registry.npmmirror.com/node-sass/-/node-sass-4.14.1.tgz",
"integrity": "sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==",
"dev": true,
"requires": {
@@ -10556,20 +10569,20 @@
"dependencies": {
"ansi-regex": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
"resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-2.1.1.tgz",
"integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
"dev": true
},
"ansi-styles": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
"integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
"resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-2.2.1.tgz",
"integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==",
"dev": true
},
"chalk": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"resolved": "https://registry.npmmirror.com/chalk/-/chalk-1.1.3.tgz",
"integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==",
"dev": true,
"requires": {
"ansi-styles": "^2.2.1",
@@ -10581,8 +10594,8 @@
},
"cross-spawn": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz",
"integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
"resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-3.0.1.tgz",
"integrity": "sha512-eZ+m1WNhSZutOa/uRblAc9Ut5MQfukFrFMtPSm3bZCA888NmMd5AWXWdgRZ80zd+pTk1P2JrGjg9pUPTvl2PWQ==",
"dev": true,
"requires": {
"lru-cache": "^4.0.1",
@@ -10591,13 +10604,13 @@
},
"get-stdin": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
"integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
"resolved": "https://registry.npmmirror.com/get-stdin/-/get-stdin-4.0.1.tgz",
"integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==",
"dev": true
},
"lru-cache": {
"version": "4.1.5",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
"resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-4.1.5.tgz",
"integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
"dev": true,
"requires": {
@@ -10607,8 +10620,8 @@
},
"strip-ansi": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
"dev": true,
"requires": {
"ansi-regex": "^2.0.0"
@@ -10616,14 +10629,14 @@
},
"supports-color": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
"integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
"resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-2.0.0.tgz",
"integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==",
"dev": true
},
"yallist": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
"integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
"resolved": "https://registry.npmmirror.com/yallist/-/yallist-2.1.2.tgz",
"integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==",
"dev": true
}
}
@@ -10679,7 +10692,7 @@
},
"npmlog": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
"resolved": "https://registry.npmmirror.com/npmlog/-/npmlog-4.1.2.tgz",
"integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
"dev": true,
"requires": {
@@ -12398,8 +12411,8 @@
},
"redent": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
"integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
"resolved": "https://registry.npmmirror.com/redent/-/redent-1.0.0.tgz",
"integrity": "sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g==",
"dev": true,
"requires": {
"indent-string": "^2.1.0",
@@ -12408,14 +12421,14 @@
"dependencies": {
"get-stdin": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
"integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
"resolved": "https://registry.npmmirror.com/get-stdin/-/get-stdin-4.0.1.tgz",
"integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==",
"dev": true
},
"strip-indent": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
"integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
"resolved": "https://registry.npmmirror.com/strip-indent/-/strip-indent-1.0.1.tgz",
"integrity": "sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==",
"dev": true,
"requires": {
"get-stdin": "^4.0.1"
@@ -12809,7 +12822,8 @@
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz",
"integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=",
"dev": true
"dev": true,
"optional": true
},
"rx-lite-aggregates": {
"version": "4.0.8",
@@ -12870,7 +12884,7 @@
},
"sass-graph": {
"version": "2.2.5",
"resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz",
"resolved": "https://registry.npmmirror.com/sass-graph/-/sass-graph-2.2.5.tgz",
"integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==",
"dev": true,
"requires": {
@@ -12882,7 +12896,7 @@
"dependencies": {
"cliui": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
"resolved": "https://registry.npmmirror.com/cliui/-/cliui-5.0.0.tgz",
"integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
"dev": true,
"requires": {
@@ -12893,7 +12907,7 @@
},
"find-up": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
"resolved": "https://registry.npmmirror.com/find-up/-/find-up-3.0.0.tgz",
"integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
"dev": true,
"requires": {
@@ -12902,13 +12916,13 @@
},
"get-caller-file": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
"resolved": "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz",
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
"dev": true
},
"locate-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
"resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-3.0.0.tgz",
"integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
"dev": true,
"requires": {
@@ -12918,7 +12932,7 @@
},
"p-limit": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
"resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz",
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"dev": true,
"requires": {
@@ -12927,7 +12941,7 @@
},
"p-locate": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
"resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-3.0.0.tgz",
"integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
"dev": true,
"requires": {
@@ -12936,19 +12950,19 @@
},
"p-try": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
"resolved": "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz",
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
"dev": true
},
"require-main-filename": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
"resolved": "https://registry.npmmirror.com/require-main-filename/-/require-main-filename-2.0.0.tgz",
"integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
"dev": true
},
"string-width": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
"resolved": "https://registry.npmmirror.com/string-width/-/string-width-3.1.0.tgz",
"integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
"dev": true,
"requires": {
@@ -12959,7 +12973,7 @@
},
"wrap-ansi": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
"resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
"integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
"dev": true,
"requires": {
@@ -12970,7 +12984,7 @@
},
"yargs": {
"version": "13.3.2",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
"resolved": "https://registry.npmmirror.com/yargs/-/yargs-13.3.2.tgz",
"integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
"dev": true,
"requires": {
@@ -12988,7 +13002,7 @@
},
"yargs-parser": {
"version": "13.1.2",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
"resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-13.1.2.tgz",
"integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
"dev": true,
"requires": {
@@ -13036,8 +13050,8 @@
},
"scss-tokenizer": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz",
"integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=",
"resolved": "https://registry.npmmirror.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz",
"integrity": "sha512-dYE8LhncfBUar6POCxMTm0Ln+erjeczqEvCJib5/7XNkdw1FkUGgwMPY360FY0FgPWQxHWCx29Jl3oejyGLM9Q==",
"dev": true,
"requires": {
"js-base64": "^2.1.8",
@@ -13046,8 +13060,8 @@
"dependencies": {
"source-map": {
"version": "0.4.4",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
"integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
"resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.4.4.tgz",
"integrity": "sha512-Y8nIfcb1s/7DcobUz1yOO1GSp7gyL+D9zLHDehT7iRESqGSxjJ448Sg7rvfgsRJCnKLdSl11uGf0s9X80cH0/A==",
"dev": true,
"requires": {
"amdefine": ">=0.0.4"
@@ -13756,7 +13770,7 @@
},
"stdout-stream": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz",
"resolved": "https://registry.npmmirror.com/stdout-stream/-/stdout-stream-1.4.1.tgz",
"integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==",
"dev": true,
"requires": {
@@ -14066,7 +14080,7 @@
},
"tar": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz",
"resolved": "https://registry.npmmirror.com/tar/-/tar-2.2.2.tgz",
"integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==",
"dev": true,
"requires": {
@@ -14443,8 +14457,8 @@
},
"trim-newlines": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
"integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
"resolved": "https://registry.npmmirror.com/trim-newlines/-/trim-newlines-1.0.0.tgz",
"integrity": "sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw==",
"dev": true
},
"trim-right": {
@@ -14455,7 +14469,7 @@
},
"true-case-path": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz",
"resolved": "https://registry.npmmirror.com/true-case-path/-/true-case-path-1.0.3.tgz",
"integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==",
"dev": true,
"requires": {
@@ -15557,12 +15571,12 @@
"dev": true
},
"wide-align": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
"integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
"version": "1.1.5",
"resolved": "https://registry.npmmirror.com/wide-align/-/wide-align-1.1.5.tgz",
"integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
"dev": true,
"requires": {
"string-width": "^1.0.2 || 2"
"string-width": "^1.0.2 || 2 || 3 || 4"
}
},
"wordwrap": {

View File

@@ -26,6 +26,8 @@ export default {
reload: this.reload
}
},
mounted(){
},
methods: {
reload() {
this.isRouterAlive = false

166
src/api/YB_APP/index.js Normal file
View File

@@ -0,0 +1,166 @@
import request from '@/assets/js/utils/request'
import getUrl from '@/assets/js/utils/get-url'
export function homeConfigYB(data) {
return request({
url: getUrl('/customer/agent/homeConfigYB', 1,3),
method: 'get',
data
})
}
export function mineConfigYB(data) {
return request({
url: getUrl('/app/mineConfigYB', 1,3),
method: 'get',
data
})
}
export function getPremRankList(data) {
return request({
url: getUrl('/sale/premRank/getPremRankList ', 1,3),
method: 'post',
data
})
}
export function timelyContYB(data) {
return request({
url: getUrl('/sale/timelyCont/timelyContYB ', 1,3),
method: 'get',
data
})
}
export function getPersonPremYB(data) {
return request({
url: getUrl('/data/congratulationTopYB/getPersonPremYB', 1,3),
method: 'post',
data
})
}
export function getDeptPremYB(data) {
return request({
url: getUrl('/data/congratulationTopYB/getDeptPremYB', 1,3),
method: 'post',
data
})
}
// 保单查询接口
export function YBpolicyListAgent(data) {
return request({
url: getUrl('/sale/policy/YBpolicyListAgent', 1,3),
method: 'post',
data
})
}
// 保单详情接口
export function YBpolicyDetail(data) {
return request({
url: getUrl('/sale/policy/YBpolicyDetail', 1,3),
method: 'post',
data
})
}
export function getPremByAgentCode(data) {
return request({
url: getUrl('/data/performanceYB/getPremByAgentCode', 1,3),
method: 'post',
data
})
}
export function getIndexByAgentCode(data) {
return request({
url: getUrl('/data/performanceYB/getIndexByAgentCode', 1,3),
method: 'post',
data
})
}
export function getBankNetDataYB(data) {
return request({
url: getUrl('/data/performanceYB/getBankNetDataYB', 1,3),
method: 'post',
data
})
}
export function getChannelPerformanceYB(data) {
return request({
url: getUrl('/data/performanceYB/getChannelPerformanceYB', 1,3),
method: 'post',
data
})
}
export function getBankNetPerformanceYB(data) {
return request({
url: getUrl('/data/performanceYB/getBankNetPerformanceYB', 1,3),
method: 'post',
data
})
}
// 暂时数据接口
export function getAgentInfoByAgentCode(data) {
return request({
url: getUrl('/agent/agent/getAgentInfoByAgentCode', 1,3),
method: 'post',
data
})
}
// 查询续期列表
export function getYBRenewalsList(data) {
return request({
url: getUrl('/renewal/renewal/getYBRenewalsList', 1,3),
method: 'post',
data
})
}
// 查询续期详情
export function getYBRenewalInfo(data) {
return request({
url: getUrl('/renewal/renewal/getYBRenewalInfo', 1,3),
method: 'post',
data
})
}
// 保全申请进度列表
export function getSaveAllList(data) {
return request({
url: getUrl('/renewal/preservation/getSaveAllList', 1,3),
method: 'post',
data
})
}
// 保全申请进度详情
export function ybSaveAllDetail(data) {
return request({
url: getUrl('/renewal/preservation/ybSaveAllDetail', 1,3),
method: 'post',
data
})
}
// 保全现金价值列表
export function ybSaveManyList(data) {
return request({
url: getUrl('/renewal/preservation/ybSaveManyList', 1,3),
method: 'post',
data
})
}
// 保全现金价值详情
export function ybSaveManyDetail(data) {
return request({
url: getUrl('/renewal/preservation/ybSaveManyDetail', 1,3),
method: 'post',
data
})
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 680 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 968 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 469 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 855 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 827 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 248 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 439 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 770 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 688 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 560 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 754 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -9,6 +9,8 @@ export default function getUrl(url, api = 1, domainType = 1) {
domain = config.apiDomain
} else if (domainType == 2) {
domain = config.imgDomain
} else if (domainType == 3) {
domain = config.YB_APP
}
return api === 0 ? urlMap[url] : domain + url

View File

@@ -2,7 +2,12 @@
export default function jump(options) {
// eslint-disable
if (window.WebViewJavascriptBridge && options.flag) {
if (options.flag == 'h5' || options.flag == 'service' || options.flag == 'home' || options.flag == 'mine') {
if (options.flag == 'h5' ||
options.flag == 'service' ||
options.flag == 'home' ||
options.flag == 'mine' ||
options.flag == 'message' ||
options.flag == 'setting' ) {
EWebBridge.webCallAppInJs('bridge', {
flag: options.flag,
extra: options.extra

View File

@@ -0,0 +1,55 @@
// warterMark.js
'use strict'
let watermark = {}
let setWatermark = (str, str1) => {
let id = '1.23452384164.123412415'
if (document.getElementById(id) !== null) {
document.body.removeChild(document.getElementById(id))
}
let can = document.createElement('canvas')// 创建一个画布
can.width = 180 // 设置宽度
can.height = 150 // 高度
let cans = can.getContext('2d')
cans.rotate(-25 * Math.PI / 180) // 水印旋转角度 0 水平
cans.font = '14px Vedana' // 字体大小
cans.fillStyle = '#000' // 水印的颜色
cans.textAlign = 'left' // 设置文本内容的当前对齐方式
cans.textBaseline = 'Middle' // 设置在绘制文本时使用的当前文本基线
cans.globalAlpha = 0.1 // 透明度
// 在画布上绘制填色的文本输出的文本开始绘制文本的X坐标位置开始绘制文本的Y坐标位置
cans.fillText(str, can.width / 100, can.height / 1)
cans.fillText(str1, can.width / 3, can.height / 2.5) // 根据需求可添加多行水印在方法中添加str1
let div = document.createElement('div')
div.id = id
div.style.pointerEvents = 'none'
div.style.top = '100px'
div.style.left = '-20px'
div.style.position = 'fixed'
div.style.zIndex = '100000'
div.style.width = document.documentElement.clientWidth + 'px'
div.style.height = document.documentElement.clientHeight + 'px'
div.style.background = 'url(' + can.toDataURL('image/png') + ') left top repeat'
document.body.appendChild(div)
return id
}
// 该方法只允许调用一次
watermark.set = (str,str1) => {
let id = setWatermark(str,str1)
setInterval(() => {
if (document.getElementById(id) === null) {
id = setWatermark(str,str1)
}
}, 500)
window.onresize = () => {
setWatermark(str,str1)
}
}
export default watermark

View File

@@ -13,7 +13,7 @@
*
*/
let apiDomain, imgDomain, assetsUrl, mainUrl, payUrl, zssqUrl, REQ_PWD, CACHE_ENCRYP, API_VERSION, assetsUpUrl // 保融支付的收银台服务地址
let apiDomain, imgDomain, assetsUrl, mainUrl, payUrl, zssqUrl, REQ_PWD, CACHE_ENCRYP, API_VERSION, assetsUpUrl, YB_APP // 保融支付的收银台服务地址
function getSearchString(key) {
var str = window.location.href.split('?')[1]
str = str.substring(1, str.length) // 获取URL中?之后的字符(去掉第一位的问号)
@@ -64,6 +64,9 @@ switch (process.env.VUE_APP_FLAG) {
zssqUrl = 'https://iagentsales-test2.e-guofu.com:5100/html/test/index.html#/'
REQ_PWD = '41424344454631323334353637383930'
CACHE_ENCRYP = '41424344454631323334353637383930'
// 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
API_VERSION = apiVersion
break
case 'uat':
@@ -91,6 +94,7 @@ switch (process.env.VUE_APP_FLAG) {
zssqUrl = ''
REQ_PWD = '41424344454631323334353637383930'
CACHE_ENCRYP = '41424344454631323334353637383930'
YB_APP = 'https://iagentsales.e-guofu.com/api/'+apiVersion
API_VERSION = apiVersion
break
case 'dat':
@@ -128,5 +132,6 @@ export default {
zssqUrl, //知识社区地址
REQ_PWD, //报文加密密码
CACHE_ENCRYP, //缓存加密密码
API_VERSION //渠道版本
API_VERSION,//渠道版本
YB_APP
}

124
src/router/YB_APP/index.js Normal file
View File

@@ -0,0 +1,124 @@
//数据报表 定义相关组件
const YB_APP_home = () => import('@/views/YB_APP/home')
const YB_APP_service = () => import('@/views/YB_APP/service')
const YB_APP_mine = () => import('@/views/YB_APP/mine')
const YB_APP_performanceQuery = () => import('@/views/YB_APP/performanceQuery')
const YB_APP_policyList = () => import('@/views/YB_APP/policyList')
const YB_APP_policyDetail = () => import('@/views/YB_APP/policyDetail')
const YB_APP_hitTheHeadlines = () => import('@/views/YB_APP/hitTheHeadlines')
const YB_APP_renewalList = () => import('@/views/YB_APP/renewalList')
const YB_APP_renewalDetail = () => import('@/views/YB_APP/renewalDetail')
const YB_APP_saveallList = () => import('@/views/YB_APP/saveallList')
const YB_APP_saveallDetail = () => import('@/views/YB_APP/saveallDetail')
const YB_APP_saveallDetailTwo = () => import('@/views/YB_APP/saveallDetailTwo')
export default [
{
path: '/YB_APP/home',
name: 'YB_APP_home',
component: YB_APP_home,
meta: {
title: '首页',
index: 1
}
},
{
path: '/YB_APP/service',
name: 'YB_APP_service',
component: YB_APP_service,
meta: {
title: '服务',
index: 1
}
},
{
path: '/YB_APP/mine',
name: 'YB_APP_mine',
component: YB_APP_mine,
meta: {
title: '我的',
index: 1
}
},
{
path: '/YB_APP/performanceQuery',
name: 'YB_APP_performanceQuery',
component: YB_APP_performanceQuery,
meta: {
title: '业绩查询',
index: 1
}
},
{
path: '/YB_APP/policyList',
name: 'YB_APP_policyList',
component: YB_APP_policyList,
meta: {
title: '保单列表',
index: 1
}
},
{
path: '/YB_APP/policyDetail',
name: 'YB_APP_policyDetail',
component: YB_APP_policyDetail,
meta: {
title: '保单详情',
index: 1
}
},
{
path: '/YB_APP/hitTheHeadlines',
name: 'YB_APP_hitTheHeadlines',
component: YB_APP_hitTheHeadlines,
meta: {
title: '上头条',
index: 1
}
},
{
path: '/YB_APP/renewalList',
name: 'YB_APP_renewalList',
component: YB_APP_renewalList,
meta: {
title: '续期管理列表',
index: 1
}
},
{
path: '/YB_APP/renewalDetail',
name: 'YB_APP_renewalDetail',
component: YB_APP_renewalDetail,
meta: {
title: '续期详情 ',
index: 1
}
},
{
path: '/YB_APP/saveallList',
name: 'YB_APP_saveallList',
component: YB_APP_saveallList,
meta: {
title: '保全中心列表',
index: 1
}
},
{
path: '/YB_APP/saveallDetail',
name: 'YB_APP_saveallDetail',
component: YB_APP_saveallDetail,
meta: {
title: '保全详情 ',
index: 1
}
},
{
path: '/YB_APP/saveallDetailTwo',
name: 'YB_APP_saveallDetailTwo',
component: YB_APP_saveallDetailTwo,
meta: {
title: '保单现金价值详情 ',
index: 1
}
},
]

View File

@@ -46,6 +46,8 @@ import laurelClub from './laurelClub'
import allowance from './allowance'
//协同单位投保
import cooperativeUnit from './cooperativeUnit'
// YB_APP
import YB_APP from '../YB_APP/index'
export default [
...proposal,
...sale,
@@ -81,5 +83,6 @@ export default [
...customerService,
...laurelClub,
...allowance,
...cooperativeUnit
...cooperativeUnit,
...YB_APP
] //根据需要进行删减

View File

@@ -73,7 +73,7 @@ export default new Vuex.Store({
//更新 保全-续期账户变更保单信息
updatePcPolicyInfo(state, val) {
state.pcList = val
}
},
},
getters: {
getPageFlag(state) {
@@ -96,6 +96,7 @@ export default new Vuex.Store({
},
getPcPolicyInfo(state) {
return state.pcList
}
},
}
})

View File

@@ -0,0 +1,631 @@
<template>
<div class="public_container">
<div class="myhead">
<div>
<span class="QJactive" v-if="premType == 'QJ'" @click="changePremType('QJ')">期交保费</span>
<span class="GMunActice" v-if="premType == 'GM'" @click="changePremType('QJ')">期交保费</span>
<span class="QJunActice" v-if="premType == 'QJ'" @click="changePremType('GM')">总规模保费</span>
<span class="GMactive" v-if="premType == 'GM'" @click="changePremType('GM')">总规模保费</span>
</div>
<div>
<span @click="clickCalendar" class="headDate">{{ calendarValue }} </span>
</div>
</div>
<div class="mainContainer">
<div class="mainContainer_content">
<span class="dataType1Active" v-if="dataType == 1" @click="changeDataType('1')">个人</span>
<span class="dataType1UnActive" v-if="dataType == 2" @click="changeDataType('1')">个人</span>
<span class="dataType2Active" v-if="dataType == 1" @click="changeDataType('2')">营业部</span>
<span class="dataType2UnActive" v-if="dataType == 2" @click="changeDataType('2')">营业部</span>
</div>
<div v-if="dataType == 1 && top3Data.length != 0" class="imgContainer1">
<div class="imgContainer1_main">
<div class="imgContainer1_main_second">
<div class="imgContainer1_main_part_top">
<img src="@/assets/YB_APP/images/17.png" style="width: 40%" />
<div class="imgContainer1_main_second_top_div">
<!-- <img src="@/assets/YB_APP/images/logo.png" style="width:75%;"> -->
<img :src="this.top3Data[1].agentHeadImgUrl == null ? url1 : this.top3Data[1].agentHeadImgUrl" style="width: 85%; border-radius: 50%" />
</div>
<div class="personal_second">
<p class="personal_second_p">{{ top3Data[1].agentName }}</p>
</div>
</div>
<div class="imgContainer1_main_second_bottom">
<p class="imgContainer1_main_part_bottom_p">{{ top3Data[1].managecom2 }}{{ top3Data[1].managecom3 }}</p>
<p class="imgContainer1_main_part_bottom_p">{{ top3Data[1].prem }}万元</p>
</div>
</div>
<div class="imgContainer1_main_first">
<div class="imgContainer1_main_part_top">
<img src="@/assets/YB_APP/images/18.png" style="width: 65%" />
<div class="imgContainer1_main_first_top_div">
<!-- <img src="https://iagentsales-test2.e-guofu.com:443/opt/ebiz/static/images/2022/12/26/7c5fe5b7e14e4682a802516210f4aa83.jpeg" style="width: 85%;border-radius: 50%" /> -->
<img :src="this.top3Data[0].agentHeadImgUrl == null ? url1 : this.top3Data[0].agentHeadImgUrl" style="width: 85%; border-radius: 50%" />
</div>
<div class="personal_first">
<p class="personal_first_p">{{ top3Data[0].agentName }}</p>
</div>
</div>
<div class="imgContainer1_main_first_bottom">
<p class="imgContainer1_main_part_bottom_p">{{ top3Data[0].managecom2 }}{{ top3Data[0].managecom3 }}</p>
<p class="imgContainer1_main_part_bottom_p">{{ top3Data[0].prem }}万元</p>
</div>
</div>
<div class="imgContainer1_main_third">
<div class="imgContainer1_main_part_top">
<img src="@/assets/YB_APP/images/19.png" style="width: 40%" />
<div class="imgContainer1_main_third_top_div">
<!-- <img src="@/assets/YB_APP/images/logo.png" style="width: 75%" /> -->
<img :src="this.top3Data[2].agentHeadImgUrl == null ? url1 : this.top3Data[2].agentHeadImgUrl" style="width: 85%; border-radius: 50%" />
</div>
<div class="personal_third">
<p class="personal_third_p">{{ top3Data[2].agentName }}</p>
</div>
</div>
<div class="imgContainer1_main_third_bottom">
<p class="imgContainer1_main_part_bottom_p">{{ top3Data[2].managecom2 }}{{ top3Data[2].managecom3 }}</p>
<p class="imgContainer1_main_part_bottom_p">{{ top3Data[2].prem }}万元</p>
</div>
</div>
</div>
</div>
<div style="height: 48vw" v-if="dataType == 1 && top3Data.length == 0"></div>
<div v-if="dataType == 2 && top3Data.length != 0" class="imgContainer2">
<div class="imgContainer2_main">
<div class="imgContainer2_main_second">
<div class="imgContainer2_main_second_content">
<p class="imgContainer2_main_part_bottom_p">{{ top3Data[1].managecom2 }}{{ top3Data[1].managecom3 }}</p>
<p class="imgContainer2_main_part_bottom_p">{{ top3Data[1].managecom4 }}</p>
<p class="imgContainer2_main_part_bottom_p">{{ top3Data[1].prem }}万元</p>
</div>
</div>
<div class="imgContainer2_main_first">
<div class="imgContainer2_main_first_content">
<p class="imgContainer2_main_part_bottom_p">{{ top3Data[0].managecom2 }}{{ top3Data[0].managecom3 }}</p>
<p class="imgContainer2_main_part_bottom_p">{{ top3Data[0].managecom4 }}</p>
<p class="imgContainer2_main_part_bottom_p">{{ top3Data[0].prem }}万元</p>
</div>
</div>
<div class="imgContainer2_main_third">
<div class="imgContainer2_main_third_content">
<p class="imgContainer2_main_part_bottom_p">{{ top3Data[2].managecom2 }}{{ top3Data[2].managecom3 }}</p>
<p class="imgContainer2_main_part_bottom_p">{{ top3Data[2].managecom4 }}</p>
<p class="imgContainer2_main_part_bottom_p">{{ top3Data[2].prem }}万元</p>
</div>
</div>
</div>
</div>
<div style="height: 48vw" v-if="dataType == 2 && top3Data.length == 0"></div>
<div v-if="dataType == 1" class="tableContent">
<div class="tableContent_main">
<table class="issueTable">
<tr class="issueTable_tr">
<th style="width: 16%">排名</th>
<th style="width: 16%">分公司</th>
<th style="width: 16%">机构</th>
<th style="width: 20%">营业部</th>
<th style="width: 16%">姓名</th>
<th style="width: 16%">保费</th>
</tr>
<tbody>
<tr v-for="item in tableData">
<td>TOP{{ item.bfpm }}</td>
<td>{{ item.managecom2 }}</td>
<td>{{ item.managecom3 }}</td>
<td>{{ item.managecom4 }}</td>
<td>{{ item.agentName }}</td>
<td>{{ item.prem }}</td>
</tr>
</tbody>
</table>
<div v-if="tableData.length == 0" class="noneDataDiv">
<img style="width: 60%" src="@/assets/YB_APP/images/43.png" />
<span class="noneDataDiv_span">暂无业绩</span>
</div>
</div>
</div>
<div v-if="dataType == 2" class="tableContent">
<div class="tableContent_main">
<table class="issueTable">
<tr class="issueTable_tr">
<th style="width: 19%">排名</th>
<th style="width: 19%">分公司</th>
<th style="width: 19%">机构</th>
<th style="width: 24%">营业部</th>
<th style="width: 19%">保费</th>
</tr>
<tbody>
<tr v-if="tableData.length != 0" v-for="item in tableData">
<td>TOP{{ item.bfpm }}</td>
<td>{{ item.managecom2 }}</td>
<td>{{ item.managecom3 }}</td>
<td>{{ item.managecom4 }}</td>
<td>{{ item.prem }}</td>
</tr>
</tbody>
</table>
<div v-if="tableData.length == 0" class="noneDataDiv">
<img style="width: 60%" src="@/assets/YB_APP/images/43.png" />
<span class="noneDataDiv_span">暂无业绩</span>
</div>
</div>
</div>
</div>
<van-popup v-model="calendarShow" position="bottom">
<van-datetime-picker
v-model="currentDate"
type="year-month"
title="选择日期"
:min-date="minDate"
:max-date="maxDate"
@cancel="handleCurrentDateCancel"
@confirm="handleCurrentDateConfirm"
/>
</van-popup>
</div>
</template>
<script>
import { Button } from 'vant'
import { getPersonPremYB, getDeptPremYB } from '@/api/YB_APP/index'
import utils from '@/assets/js/utils/date-utils'
export default {
name: 'hitTheHeadlines',
components: {
[Button.name]: Button
},
data() {
return {
premType: 'QJ',
dataType: 1,
calendarValue: '',
calendarShow: false,
currentDate: new Date(),
minDate: new Date(2019, 1, 1),
maxDate: new Date(2030, 12, 31),
top3Data: [],
tableData: [],
url1: require('@/assets/YB_APP/images/logo.png')
}
},
mounted() {
let yearNum = new Date().getFullYear()
let monthNum = new Date().getMonth() + 1
if (monthNum < 10) {
monthNum = '0' + monthNum
}
this.calendarValue = yearNum + '-' + monthNum
if (this.dataType == 1) {
this.getPersonPremYB()
} else {
this.getDeptPremYB()
}
},
methods: {
clickCalendar() {
this.calendarShow = true
},
handleCurrentDateCancel() {
this.calendarShow = false
},
handleCurrentDateConfirm(e) {
this.calendarShow = false
// let titleTime = utils.formatDate(e, 'yyyy-MM')
// this.calendarValue = utils.formatDate(e, 'MM-dd')
let yearNum = utils.formatDate(e, 'yyyy')
let monthNum = utils.formatDate(e, 'MM')
this.calendarValue = yearNum + '-' + monthNum
if (this.dataType == 1) {
this.getPersonPremYB()
} else {
this.getDeptPremYB()
}
},
getPersonPremYB() {
let params = {
currentMonth: this.calendarValue,
premType: this.premType
}
getPersonPremYB(params).then((res) => {
if (res.result == 0) {
if (res.content && res.content.length != 0) {
this.top3Data = []
this.tableData = []
res.content.forEach((item, index) => {
if (index < 3) {
this.top3Data.push(item)
} else {
this.tableData.push(item)
}
})
}
} else {
this.$toast(res.resultMessage)
}
})
},
getDeptPremYB() {
let params = {
currentMonth: this.calendarValue,
premType: this.premType
}
getDeptPremYB(params).then((res) => {
if (res.result == 0) {
if (res.content && res.content.length != 0) {
this.top3Data = []
this.tableData = []
res.content.forEach((item, index) => {
if (index < 3) {
this.top3Data.push(item)
} else {
this.tableData.push(item)
}
})
}
} else {
this.$toast(res.resultMessage)
}
})
},
changePremType(type) {
console.log(this.top3Data, 'this.tableData')
if (this.premType != type) {
this.premType = type
if (this.dataType == 1) {
this.getPersonPremYB()
} else {
this.getDeptPremYB()
}
}
},
changeDataType(type) {
if (this.dataType != type) {
this.dataType = type
if (this.dataType == 1) {
this.getPersonPremYB()
} else {
this.getDeptPremYB()
}
}
}
}
}
</script>
<style lang="scss" scoped>
.mainContainer {
background-image: url('../../assets/YB_APP/images/9.png');
background-repeat: no-repeat;
background-size: contain;
margin: 10px;
width: calc(100% - 20px);
background-color: #fff;
}
.imgContainer1 {
background-image: url('../../assets/YB_APP/images/11.png');
background-repeat: no-repeat;
background-size: contain;
height: 48vw;
width: 100%;
margin-top: 10.7vw;
display: flex;
align-items: flex-end;
}
.imgContainer2 {
background-image: url('../../assets/YB_APP/images/32.png');
background-repeat: no-repeat;
background-size: contain;
height: 48vw;
width: 100%;
margin-top: 10.7vw;
display: flex;
align-items: flex-end;
}
.personal_second {
background-image: url('../../assets/YB_APP/images/22.png');
background-repeat: no-repeat;
background-size: cover;
position: absolute;
bottom: -5px;
height: 19px;
width: 60%;
left: 20%;
display: flex;
justify-content: center;
align-items: center;
}
.personal_first {
background-image: url('../../assets/YB_APP/images/23.png');
background-repeat: no-repeat;
background-size: cover;
position: absolute;
bottom: -5px;
height: 19px;
width: 70%;
left: 15%;
display: flex;
justify-content: center;
align-items: center;
}
.personal_third {
background-image: url('../../assets/YB_APP/images/24.png');
background-repeat: no-repeat;
background-size: cover;
position: absolute;
bottom: -5px;
height: 19px;
width: 60%;
left: 20%;
display: flex;
justify-content: center;
align-items: center;
}
th {
height: 45px;
color: #fff;
}
table tbody tr:nth-child(odd) {
background: #fff;
}
table tbody tr:nth-child(even) {
background: #f9faff;
border-top: 1px solid #eee;
border-bottom: 1px solid #eee;
}
.issueTable {
border: 1px solid #ebedff;
border-collapse: collapse;
width: 100%;
}
td {
text-align: center;
padding: 5px 0px;
line-height: 25px;
color: #7183b3;
border-collapse: collapse;
}
.myhead {
display: flex;
justify-content: space-between;
padding: 25px 15px;
background: #fff;
}
.QJactive {
background: #3949ac;
color: #fff;
font-weight: bold;
font-size: 12px;
padding: 10px 15px;
border-top-left-radius: 5px;
border-bottom-left-radius: 5px;
border: 1px solid #3949ac;
border-right: none;
letter-spacing: 1px;
}
.GMunActice {
background: #fff;
color: #c1bfce;
font-weight: bold;
font-size: 12px;
padding: 10px 15px;
border-top-left-radius: 5px;
border-bottom-left-radius: 5px;
border: 1px solid #3949ac;
border-right: none;
letter-spacing: 1px;
border-left: 1px solid #3949ac;
}
.QJunActice {
background: #fff;
color: #c1bfce;
font-weight: bold;
font-size: 12px;
padding: 10px 15px;
border-top-right-radius: 5px;
border-bottom-right-radius: 5px;
border: 1px solid #3949ac;
border-left: none;
letter-spacing: 1px;
border-right: 1px solid #3949ac;
}
.GMactive {
background: #3949ac;
color: #fff;
font-weight: bold;
font-size: 12px;
padding: 10px 15px;
border-top-right-radius: 5px;
border-bottom-right-radius: 5px;
border: 1px solid #3949ac;
border-left: none;
letter-spacing: 1px;
}
.headDate {
background: #f2f2f2;
font-weight: bold;
padding: 8px 15px;
border-radius: 15px;
font-size: 12px;
}
.mainContainer_content {
padding-top: 100px;
margin-left: 10px;
}
.dataType1Active {
background: #fff;
color: #3949ac;
font-weight: bold;
font-size: 12px;
padding: 10px 15px;
border-top-left-radius: 5px;
border-bottom-left-radius: 5px;
border-right: none;
letter-spacing: 1px;
}
.dataType1UnActive {
background: #6990d0;
color: #fff;
font-weight: bold;
font-size: 12px;
padding: 10px 15px;
border-top-left-radius: 5px;
border-bottom-left-radius: 5px;
border-right: none;
letter-spacing: 1px;
}
.dataType2Active {
background: #6990d0;
color: #fff;
font-weight: bold;
font-size: 12px;
padding: 10px 15px;
border-top-right-radius: 5px;
border-bottom-right-radius: 5px;
border-left: none;
letter-spacing: 1px;
}
.dataType2UnActive {
background: #fff;
color: #3949ac;
font-weight: bold;
font-size: 12px;
padding: 10px 15px;
border-top-right-radius: 5px;
border-bottom-right-radius: 5px;
border-left: none;
letter-spacing: 1px;
}
.imgContainer1_main,
.imgContainer2_main {
display: flex;
justify-content: center;
align-items: flex-end;
height: 100%;
padding-bottom: 20px;
width: 100%;
}
.imgContainer1_main_second,
.imgContainer2_main_second {
width: 35%;
text-align: center;
}
.imgContainer1_main_first,
.imgContainer2_main_first {
width: 30%;
text-align: center;
}
.imgContainer1_main_third,
.imgContainer2_main_third {
width: 35%;
text-align: center;
}
.imgContainer1_main_part_top {
width: 100%;
position: relative;
}
.imgContainer1_main_second_bottom {
margin: 10px;
font-size: 12px;
margin-bottom: 5px;
color: #777ca4;
}
.imgContainer1_main_first_bottom {
margin: 10px;
font-size: 14px;
margin-bottom: 5px;
color: #9a4904;
}
.imgContainer1_main_third_bottom {
margin: 10px;
font-size: 12px;
margin-bottom: 5px;
color: #aa7853;
}
.imgContainer1_main_part_bottom_p {
line-height: 18px;
}
.imgContainer2_main_second_content {
margin: 10px 0px 0px;
font-size: 12px;
color: #777ca4;
}
.imgContainer2_main_first_content {
margin: 10px 0px 0px;
font-size: 14px;
color: #9a4904;
}
.imgContainer2_main_third_content {
margin: 10px 0px 0px;
font-size: 12px;
color: #aa7853;
}
.imgContainer2_main_part_bottom_p {
line-height: 16px;
}
.imgContainer1_main_second_top_div {
width: 40%;
position: absolute;
top: calc(50% - 15px);
left: calc(50% - 24px);
}
.personal_second_p {
font-size: 12px;
color: #4a5688;
font-weight: bold;
}
.personal_first_p {
font-size: 14px;
color: #8e5528;
font-weight: bold;
}
.personal_third_p {
font-size: 12px;
color: #58320b;
font-weight: bold;
}
.imgContainer1_main_first_top_div {
width: 65%;
position: absolute;
top: calc(50% - 23px);
left: calc(50% - 35px);
}
.imgContainer1_main_third_top_div {
width: 40%;
position: absolute;
top: calc(50% - 15px);
left: calc(50% - 24px);
}
.tableContent {
border-radius: 5px;
font-size: 14px;
padding-bottom: 20px;
}
.tableContent_main {
margin-top: 15px;
border-radius: 10px;
overflow: hidden;
width: 100%;
}
.issueTable_tr {
background: #4d6cc4;
width: 100%;
}
.noneDataDiv {
display: flex;
justify-content: center;
align-items: center;
height: 300px;
position: relative;
width: 100%;
}
.noneDataDiv_span {
position: absolute;
bottom: 80px;
left: calc(50% - 33px);
}
</style>

697
src/views/YB_APP/home.vue Normal file
View File

@@ -0,0 +1,697 @@
<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="echarts_con">
<div class="echarts_con_head">
<span class="echarts_con_head_tit">
<img src="@/assets/YB_APP/images/1.png">
<span class="echarts_con_head_tit_span">个人保费排行榜</span>
</span>
<span class="echarts_con_head_date">
{{calendarValue}}
</span>
</div>
<div class="echarts_con_buttonPart">
<span @click="changePersonalType('1')" v-if="activePersonalType == '1'" class="echarts_con_buttonPart_one">期交保费</span>
<span @click="changePersonalType('1')" v-if="activePersonalType == '2'" class="echarts_con_buttonPart_two">期交保费</span>
<span @click="changePersonalType('2')" v-if="activePersonalType == '2'" class="echarts_con_buttonPart_three">总保费</span>
<span @click="changePersonalType('2')" v-if="activePersonalType == '1'" class="echarts_con_buttonPart_four">总保费</span>
</div>
<div v-if="activePersonalType == '1' && ebizPremRankGMList.length != 0">
<div class="echarts_con_main" v-if="ebizPremRankGMList.length >= 1">
<div class="echarts_con_main_part1">
<span class="echarts_con_main_part1_span1" style="background: #ffc71f;color: #fff;">{{ebizPremRankGMList[0].manageCom3.substring(0,2)}}</span>
<span class="echarts_con_main_part1_span2">{{ebizPremRankGMList[0].agentName}}</span>
</div>
<div class="mySelfEcharts_con">
<div class="ebizPremRankGMList0" ref="ebizPremRankGMList0"></div>
</div>
<div v-bind:class="{ 'colorThree': ebizPremRankGMList[0].prem <= 5, 'colorTwo': ebizPremRankGMList[0].prem > 5, 'colorOne': ebizPremRankGMList[0].prem >= 20 }" class="echarts_prem">{{ebizPremRankGMList[0].prem}}</div>
</div>
<div class="echarts_con_main" v-if="ebizPremRankGMList.length >= 2">
<div class="echarts_con_main_part1">
<span class="echarts_con_main_part1_span1" style="background: #c0d4f4;color: #fff;">{{ebizPremRankGMList[1].manageCom3.substring(0,2)}}</span>
<span class="echarts_con_main_part1_span2">{{ebizPremRankGMList[1].agentName}}</span>
</div>
<div class="mySelfEcharts_con">
<div class="ebizPremRankGMList1" ref="ebizPremRankGMList1"></div>
</div>
<div v-bind:class="{ 'colorThree': ebizPremRankGMList[1].prem <= 5, 'colorTwo': ebizPremRankGMList[1].prem > 5, 'colorOne': ebizPremRankGMList[1].prem >= 20 }" class="echarts_prem">{{ebizPremRankGMList[1].prem}}</div>
</div>
<div class="echarts_con_main" v-if="ebizPremRankGMList.length >= 3">
<div class="echarts_con_main_part1">
<span class="echarts_con_main_part1_span1" style="background: #c9b394;color: #fff;">{{ebizPremRankGMList[2].manageCom3.substring(0,2)}}</span>
<span class="echarts_con_main_part1_span2">{{ebizPremRankGMList[2].agentName}}</span>
</div>
<div class="mySelfEcharts_con">
<div class="ebizPremRankGMList2" ref="ebizPremRankGMList2"></div>
</div>
<div v-bind:class="{ 'colorThree': ebizPremRankGMList[2].prem <= 5, 'colorTwo': ebizPremRankGMList[2].prem > 5, 'colorOne': ebizPremRankGMList[2].prem >= 20 }" class="echarts_prem">{{ebizPremRankGMList[2].prem}}</div>
</div>
<div class="echarts_con_main" v-if="ebizPremRankGMList.length >= 4">
<div class="echarts_con_main_part1">
<span class="echarts_con_main_part1_span1" style="background: #f6f6f6;color: #959595;">{{ebizPremRankGMList[3].manageCom3.substring(0,2)}}</span>
<span class="echarts_con_main_part1_span2">{{ebizPremRankGMList[3].agentName}}</span>
</div>
<div class="mySelfEcharts_con">
<div class="ebizPremRankGMList3" ref="ebizPremRankGMList3"></div>
</div>
<div v-bind:class="{ 'colorThree': ebizPremRankGMList[3].prem <= 5, 'colorTwo': ebizPremRankGMList[3].prem > 5, 'colorOne': ebizPremRankGMList[3].prem >= 20 }" class="echarts_prem">{{ebizPremRankGMList[3].prem}}</div>
</div>
<div class="echarts_con_main" v-if="ebizPremRankGMList.length >= 5">
<div class="echarts_con_main_part1">
<span class="echarts_con_main_part1_span1" style="background: #f6f6f6;color: #959595;">{{ebizPremRankGMList[4].manageCom3.substring(0,2)}}</span>
<span class="echarts_con_main_part1_span2">{{ebizPremRankGMList[4].agentName}}</span>
</div>
<div class="mySelfEcharts_con">
<div class="ebizPremRankGMList4" ref="ebizPremRankGMList4"></div>
</div>
<div v-bind:class="{ 'colorThree': ebizPremRankGMList[4].prem <= 5, 'colorTwo': ebizPremRankGMList[4].prem > 5, 'colorOne': ebizPremRankGMList[4].prem >= 20 }" class="echarts_prem">{{ebizPremRankGMList[4].prem}}</div>
</div>
</div>
<div v-if="activePersonalType == '1' && ebizPremRankGMList.length == 0">
<img style="width:100%;" src="@/assets/YB_APP/images/7-1.png">
</div>
<div v-if="activePersonalType == '2' && ebizPremRankQJList.length != 0">
<div class="echarts_con_main" v-if="ebizPremRankQJList.length >= 1">
<div class="echarts_con_main_part1">
<span class="echarts_con_main_part1_span1" style="background: #ffc71f;color: #fff;">{{ebizPremRankQJList[0].manageCom3.substring(0,2)}}</span>
<span class="echarts_con_main_part1_span2">{{ebizPremRankQJList[0].agentName}}</span>
</div>
<div class="mySelfEcharts_con">
<div class="ebizPremRankQJList0" ref="ebizPremRankQJList0"></div>
</div>
<div v-bind:class="{ 'colorThree': ebizPremRankQJList[0].prem <= 5, 'colorTwo': ebizPremRankQJList[0].prem > 5, 'colorOne': ebizPremRankQJList[0].prem >= 20 }" class="echarts_prem">{{ebizPremRankQJList[0].prem}}</div>
</div>
<div class="echarts_con_main" v-if="ebizPremRankQJList.length >= 2">
<div class="echarts_con_main_part1">
<span class="echarts_con_main_part1_span1" style="background: #c0d4f4;color: #fff;">{{ebizPremRankQJList[1].manageCom3.substring(0,2)}}</span>
<span class="echarts_con_main_part1_span2">{{ebizPremRankQJList[1].agentName}}</span>
</div>
<div class="mySelfEcharts_con">
<div class="ebizPremRankQJList1" ref="ebizPremRankQJList1"></div>
</div>
<div v-bind:class="{ 'colorThree': ebizPremRankQJList[1].prem <= 5, 'colorTwo': ebizPremRankQJList[1].prem > 5, 'colorOne': ebizPremRankQJList[1].prem >= 20 }" class="echarts_prem">{{ebizPremRankQJList[1].prem}}</div>
</div>
<div class="echarts_con_main" v-if="ebizPremRankQJList.length >= 3">
<div class="echarts_con_main_part1">
<span class="echarts_con_main_part1_span1" style="background: #c9b394;color: #fff;">{{ebizPremRankQJList[2].manageCom3.substring(0,2)}}</span>
<span class="echarts_con_main_part1_span2">{{ebizPremRankQJList[2].agentName}}</span>
</div>
<div class="mySelfEcharts_con">
<div class="ebizPremRankQJList2" ref="ebizPremRankQJList2"></div>
</div>
<div v-bind:class="{ 'colorThree': ebizPremRankQJList[2].prem <= 5, 'colorTwo': ebizPremRankQJList[2].prem > 5, 'colorOne': ebizPremRankQJList[2].prem >= 20 }" class="echarts_prem">{{ebizPremRankQJList[2].prem}}</div>
</div>
<div class="echarts_con_main" v-if="ebizPremRankQJList.length >= 4">
<div class="echarts_con_main_part1">
<span class="echarts_con_main_part1_span1" style="background: #f6f6f6;color: #959595;">{{ebizPremRankQJList[3].manageCom3.substring(0,2)}}</span>
<span class="echarts_con_main_part1_span2">{{ebizPremRankQJList[3].agentName}}</span>
</div>
<div class="mySelfEcharts_con">
<div class="ebizPremRankQJList3" ref="ebizPremRankQJList3"></div>
</div>
<div v-bind:class="{ 'colorThree': ebizPremRankQJList[3].prem <= 5, 'colorTwo': ebizPremRankQJList[3].prem > 5, 'colorOne': ebizPremRankQJList[3].prem >= 20 }" class="echarts_prem">{{ebizPremRankQJList[3].prem}}</div>
</div>
<div class="echarts_con_main" v-if="ebizPremRankQJList.length >= 5">
<div class="echarts_con_main_part1">
<span class="echarts_con_main_part1_span1" style="background: #f6f6f6;color: #959595;">{{ebizPremRankQJList[4].manageCom3.substring(0,2)}}</span>
<span class="echarts_con_main_part1_span2">{{ebizPremRankQJList[4].agentName}}</span>
</div>
<div class="mySelfEcharts_con">
<div class="ebizPremRankQJList4" ref="ebizPremRankQJList4"></div>
</div>
<div v-bind:class="{ 'colorThree': ebizPremRankQJList[4].prem <= 5, 'colorTwo': ebizPremRankQJList[4].prem > 5, 'colorOne': ebizPremRankQJList[4].prem >= 20 }" class="echarts_prem">{{ebizPremRankQJList[4].prem}}</div>
</div>
</div>
<div v-if="activePersonalType == '2' && ebizPremRankQJList.length == 0">
<img style="width:100%;" src="@/assets/YB_APP/images/7.png">
</div>
</div>
<div class="table_con">
<div class="table_con_main">
<span class="table_con_main_span">
<img src="@/assets/YB_APP/images/6.png">
<span class="table_con_main_span_name">实时出单榜</span>
</span>
<span style="color: #959595;">
数据截止时间 {{currentTime}}
</span>
</div>
<div class="tableDiv">
<table border="1" class="issueTable" style="width:100%;">
<tr style="background:#4d6cc4;width: 100%;">
<th style="width: 13%;">时间</th>
<th style="width: 13%;">分公司</th>
<th style="width: 13%;">机构</th>
<th style="width: 18%;">营业部</th>
<th style="width: 13%;">姓名</th>
<th style="width: 17%;">产品名称</th>
<th style="width: 13%;">保费</th>
</tr>
<tbody>
<tr v-if="tableData.length!=0" v-for="item in tableData">
<td>{{item.acceptTime}}</td>
<td>{{item.companyName}}</td>
<td>{{item.orgName}}</td>
<td>{{item.deptName}}</td>
<td>{{item.agentName}}</td>
<td>{{item.productName}}</td>
<td v-bind:class="{ 'colorThree': item.prem <= 5, 'colorTwo': item.prem > 5, 'colorOne': item.prem >= 20 }" style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;">{{item.prem}}</td>
</tr>
</tbody>
</table>
<div v-if="tableData.length == 0" class="noneDataDiv">
<img style="width:60%" src="@/assets/YB_APP/images/43-1.png">
<span class="noneDataDiv_span">暂无数据</span>
</div>
</div>
</div>
</van-pull-refresh>
<van-popup v-model="calendarShow" position="bottom">
<van-datetime-picker
v-model="currentDate"
type="date"
title="选择日期"
:min-date="minDate"
:max-date="maxDate"
@cancel="handleCurrentDateCancel"
@confirm="handleCurrentDateConfirm"
/>
</van-popup>
</div>
</template>
<script>
import { homeConfigYB, getPremRankList, timelyContYB } from '@/api/YB_APP/index'
import { Swipe, SwipeItem, NoticeBar, Icon, Popup, DatetimePicker, PullRefresh ,Toast } from 'vant'
import config from '@/config'
import png8 from '@/assets/YB_APP/images/8.png';
import utils from '@/assets/js/utils/date-utils'
export default {
name: 'Home',
components: {
[Swipe.name]: Swipe,
[SwipeItem.name]: SwipeItem,
[NoticeBar.name]: NoticeBar,
[Icon.name]: Icon,
[Popup.name]: Popup,
[PullRefresh.name]:PullRefresh,
[Toast.name]:Toast ,
},
data() {
return {
config,
currentDate:new Date(),
currentTime:'',
marginTop:'80',
getCodeValue:'',
png8,
activity: [],
homePageIcon:[],
ebizPremRankGMList:[],
ebizPremRankQJList:[],
tableData:[],
activePersonalType:'1',
calendarShow:false,
minDate: new Date(2019, 1, 1),
maxDate: new Date(2030, 12, 31),
calendarValue:'',
colorOne:false,
colorTwo:false,
colorThree:false,
thisValue:'12.9',
clickFlag:false,
count: 0,
isLoading: false,
}
},
mounted(){
this.currentTime = this.getNowDate()
let monthNum = new Date().getMonth()+1
let daysNum = new Date().getDate()
// if(monthNum < 10){
// monthNum = '0' + monthNum
// }
// if(daysNum < 10){
// daysNum = '0' + daysNum
// }
this.calendarValue = monthNum +'月'+daysNum+'日'
this.getHomeConfigYB()
this.getPremRankList()
this.getTimelyContYB()
console.log(monthNum,'我是monthNum');
console.log(daysNum,'daysNum');
this.setMarginTop()
if(this.thisValue >= 10){
this.colorOne = true
}
else if(this.thisValue >= 5 && this.thisValue < 10){
this.colorTwo = true
}
else if(this.thisValue < 5){
this.colorThree = true
}
},
methods:{
handleCurrentDateCancel() {
this.calendarShow = false
},
handleCurrentDateConfirm(e) {
this.calendarShow = false
// let titleTime = utils.formatDate(e, 'yyyy-MM')
// this.calendarValue = utils.formatDate(e, 'MM-dd')
let monthNum = utils.formatDate(e, 'MM')
let daysNum = utils.formatDate(e, 'dd')
this.calendarValue = monthNum+'月'+daysNum+'日'
this.getPremRankList()
},
getNowDate(){
let date = new Date();
let sign2 = ":";
let year = date.getFullYear() // 年
let month = date.getMonth() + 1; // 月
let day = date.getDate(); // 日
let hour = date.getHours(); // 时
let minutes = date.getMinutes(); // 分
let seconds = date.getSeconds() //秒
let weekArr = ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期天'];
let week = weekArr[date.getDay()];
// 给一位数的数据前面加 “0”
if (month >= 1 && month <= 9) {
month = "0" + month;
}
if (day >= 0 && day <= 9) {
day = "0" + day;
}
if (hour >= 0 && hour <= 9) {
hour = "0" + hour;
}
if (minutes >= 0 && minutes <= 9) {
minutes = "0" + minutes;
}
if (seconds >= 0 && seconds <= 9) {
seconds = "0" + seconds;
}
return year + "-" + month + "-" + day + " " + hour + sign2 + minutes;
},
setMarginTop(){
EWebBridge.webCallAppInJs("top_bar_height").then(data => {
console.log(data,'top_bar_height')
if(data){
// 获取高度成功
let height = data.height
// 设置高度
this.marginTop = height + 10
}
})
},
getHomeConfigYB(){
let params = {
}
homeConfigYB(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)
}
})
},
getPremRankList(){
let params = {}
getPremRankList(params).then(res=>{
if(res.result == 0){
if(res.content.ebizPremRankGMList){
this.ebizPremRankGMList = res.content.ebizPremRankGMList
}
if(res.content.ebizPremRankQJList){
this.ebizPremRankQJList = res.content.ebizPremRankQJList
}
this.$nextTick(() => {
this.setAnimation()
})
}else{
this.$toast(res.resultMessage)
}
})
},
getTimelyContYB(){
let params = {}
timelyContYB(params).then(res=>{
if(res.result == 0){
this.tableData = res.content
}else{
this.$toast(res.resultMessage)
}
})
},
changePersonalType(type){
this.activePersonalType = type
this.$nextTick(() => {
this.setAnimation()
})
},
calendarOnConfirm(value){
this.calendarShow = false
this.calendarValue = `${value.getMonth() + 1}${value.getDate()}`
},
clickCalendar(){
this.calendarShow = true
},
setAnimation(){
if(this.activePersonalType == 1 && this.ebizPremRankGMList.length != 0){
this.ebizPremRankGMList.forEach((item,index)=>{
let ruleTrue1 = ` @keyframes changeWidth`+[index]+` { 0% {width: 0%;} 100% {width: `+item.prem/this.ebizPremRankGMList[0].prem*100+`%;} }`
let sheet1 = document.styleSheets[0]
sheet1.insertRule(ruleTrue1, 0)
this.$refs['ebizPremRankGMList'+index].style.width = parseInt(item.prem/this.ebizPremRankGMList[0].prem*100)+'%'
this.$refs['ebizPremRankGMList'+index].style.animation = "changeWidth"+index+" 2s forwards"
})
}
if(this.activePersonalType == 2 && this.ebizPremRankQJList.length != 0){
this.ebizPremRankQJList.forEach((item,index)=>{
let ruleTrue2 = ` @keyframes changeTotalWidth`+[index]+` { 0% {width: 0%;} 100% {width: `+item.prem/this.ebizPremRankQJList[0].prem*100+`%;} }`
let sheet2 = document.styleSheets[0]
sheet2.insertRule(ruleTrue2, 0)
this.$refs['ebizPremRankQJList'+index].style.width = parseInt(item.prem/this.ebizPremRankQJList[0].prem*100)+'%'
this.$refs['ebizPremRankQJList'+index].style.animation = "changeTotalWidth"+index+" 2s forwards"
})
}
},
goDetail(data){
console.log(data)
// if(data.route != null){
// window.location.href = 'http://www.baidu.com'
// }else{
// this.$toast('暂未开放')
// }
if(data.title == '业绩查询'){
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/YB_APP/performanceQuery',
},
routerInfo: {
path: '/YB_APP/performanceQuery',
},
})
}
if(data.title == '上头条'){
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/YB_APP/hitTheHeadlines',
},
routerInfo: {
path: '/YB_APP/hitTheHeadlines',
},
})
}
if(data.title == '续期管理'){
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/YB_APP/renewalList',
},
routerInfo: {
path: '/YB_APP/renewalList',
},
})
}
if(data.title == '保全中心'){
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/YB_APP/saveallList',
},
routerInfo: {
path: '/YB_APP/saveallList',
},
})
}
},
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);
},
},
}
</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;
}
.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;
}
}
.ebizPremRankGMList0,.ebizPremRankGMList1,.ebizPremRankGMList2,.ebizPremRankGMList3,.ebizPremRankGMList4,.ebizPremRankQJList0,.ebizPremRankQJList1,.ebizPremRankQJList2,.ebizPremRankQJList3,.ebizPremRankQJList4{
border-top-left-radius: 2px;
border-bottom-left-radius: 2px;
border-top-right-radius: 8px;
border-bottom-right-radius: 8px;
height: 14px;
background-image: linear-gradient(-90deg, #abbcff, #768bfe);
transition-timing-function: ease-out;
}
th{
height: 45px;
color: #fff;
}
table tbody tr:nth-child(odd){
background: #fff;
}
table tbody tr:nth-child(even){
background: #f9faff;
}
.issueTable{
border: 1px solid #ebedff;
border-collapse:collapse;
}
td{
text-align: center;
padding: 5px 0px;
line-height: 25px;
color: #7183b3;
border: 1px solid #ebedff;
border-collapse:collapse;
}
.colorThree{
color: #333;
}
.colorTwo{
color: #e1801d;
}
.colorOne{
color: #e51f14;
}
/deep/ .van-notice-bar{
background: linear-gradient(#f4f6ff,#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;
}
.noneDataDiv{
display:flex;justify-content:center;align-items:center;height:300px;position:relative;width:100%;
}
.noneDataDiv_span{
position:absolute;bottom:80px;left:calc(50% - 33px);
}
/deep/ .van-swipe-item{
img{
height:145px;
}
}
.iconPart1{
margin: 10px;border-radius: 5px;
}
.top{
display:flex;justify-content: space-between;margin: 10px;background: #fff;border-radius: 5px;align-items: center;padding: 15px;
}
.echarts_con{
margin: 10px;background: #fff;border-radius: 5px;padding: 15px;
}
.echarts_con_head{
display:flex;justify-content: space-between;align-items: center;
}
.echarts_con_head_tit{
display:flex;align-items: center;
}
.echarts_con_head_tit_span{
margin-left: 10px;font-size: 16px;font-weight: bold;
}
.echarts_con_head_date{
color: #2a409d;border:lpx solid #eee;padding: 6px 12px;border-radius: 15px;background: #f4f6ff;cursor: pointer;font-weight: bold;
}
.echarts_con_buttonPart{
margin:15px 0px;
}
.echarts_con_buttonPart_one{
padding: 8px;border-radius: 5px;background: #f6f6f6;font-weight: bold;cursor: pointer;
}
.echarts_con_buttonPart_two{
padding: 8px;border-radius: 5px;color: #8e8e8e;cursor: pointer;
}
.echarts_con_buttonPart_three{
padding: 8px;border-radius: 5px;background: #f6f6f6;margin-left: 10px;font-weight: bold;cursor: pointer;
}
.echarts_con_buttonPart_four{
padding: 8px;border-radius: 5px;color: #8e8e8e;margin-left: 10px;cursor: pointer;
}
.echarts_con_main{
display: flex;align-items: center;font-size:12px;
}
.echarts_con_main_part1{
width:100px;
}
.echarts_con_main_part1_span1{
padding: 3px 8px;border-radius: 10px;
}
.mySelfEcharts_con{
width:calc(100% - 150px);
margin: 10px 0px;
display: flex;
background:#f4f6ff;
border-top-left-radius: 2px;
border-bottom-left-radius: 2px;
border-top-right-radius: 8px;
border-bottom-right-radius: 8px;
}
.echarts_prem{
width: 60px;text-align: right;font-weight: bold;
}
.echarts_con_main_part1_span2{
margin-left:8px;font-weight: bold;color: #333;
}
.table_con{
margin: 10px;background: #fff;border-radius: 5px;padding: 15px;margin-bottom: 20px;
}
.table_con_main{
display:flex;justify-content: space-between;align-items: center;
}
.table_con_main_span{
display:flex;align-items: center;
}
.table_con_main_span_name{
margin-left: 10px;font-size: 16px;font-weight: bold;
}
.tableDiv{
margin-top: 15px;border-radius: 10px;overflow: hidden;width: 100%;
}
</style>

208
src/views/YB_APP/mine.vue Normal file
View File

@@ -0,0 +1,208 @@
<template>
<div class="public_container" style="position: relative;">
<p style="position: absolute;top: 50px;right: 15px;" @click="messageJump">
<img v-if="!messages" style="width:20px;" src="@/assets/YB_APP/images/3.png">
<img v-if="messages" style="width:20px;" src="@/assets/YB_APP/images/4.png">
</p>
<div style="display:flex;justify-content: flex-start;padding: 65px 15px 15px 20px;align-items: center;">
<div style="width:60px;">
<img v-if="!userInfo.agentHeadImgUrl" style="width:100%;border-radius: 30px;" src="@/assets/YB_APP/images/5.png" @click="uploadHeadImage()">
<img v-if="userInfo.agentHeadImgUrl" style="width:100%;border-radius: 30px;" :src="userInfo.agentHeadImgUrl" @click="uploadHeadImage()">
</div>
<div style="margin-left:15px;">
<p style="color:#fff;padding: 3px;display: flex;align-items: center;justify-content: flex-start;">
<span style="font-size:20px;margin-right: 15px;font-weight: bold;">{{ userInfo.agentName | encryCheckModelName }}</span>
<span style="display:flex;background: linear-gradient(90deg, #fae6b3, #f8c87a);justify-content: center;align-items: center;color: #795828;font-size: 12px;line-height: 20px;font-weight: bold;padding: 0px 10px;border-top-left-radius: 10px;border-bottom-right-radius: 10px;">{{userInfo.agentGrade}}</span>
</p>
<p style="color:#e9e9e9;padding: 3px;">
<span>工号</span>
<span style="margin:0px 5px;">|</span>
<span>{{userInfo.agentCode}}</span>
</p>
</div>
</div>
<div class="menu1" style="margin: 15px;background: linear-gradient(#dce2fb 10%, #fff 70%);border-radius: 5px;padding: 10px;margin-top: 5px;">
<div style="display: flex;justify-content: space-around;align-items: center;height: 100%;">
<div style="text-align:center;position: relative;width: 33.3%;">
<p style="line-height: 40px;font-size: 18px;font-weight: bold;">{{userInfo.companyName}}</p>
<p style="line-height:30px;">分公司</p>
<div style="position:absolute;right: 0px;width: 1px;background: #eee;top: calc(50% - 10px);height: 20px;"></div>
</div>
<div style="text-align:center;position: relative;width: 33.3%;">
<p style="line-height: 40px;font-size: 18px;font-weight: bold;">{{userInfo.manageComName}}</p>
<p style="line-height:30px;">机构</p>
<div style="position:absolute;right: 0px;width: 1px;background: #eee;top: calc(50% - 10px);height: 20px;"></div>
</div>
<div style="text-align:center;position: relative;width: 33.3%;">
<p style="line-height: 40px;font-size: 18px;font-weight: bold;">{{userInfo.unitName}}</p>
<p style="line-height:30px;">营业部</p>
</div>
</div>
</div>
<div class="menu1" style="margin: 15px;background: #fff;border-radius: 5px;padding: 8px;margin-top: 5px;">
<van-cell v-for="(item,index) in menu1" is-link @click="pageJump(item)">
<template #title>
<div style="display:flex;align-items: center;">
<img style="width:20px;" :src="item.img">
<span class="custom-title" style="margin-left:10px;">{{item.name}}</span>
</div>
</template>
</van-cell>
</div>
</div>
</template>
<script>
import { Icon, Cell } from 'vant'
import { homeConfigYB, mineConfigYB, getAgentInfoByAgentCode } from '@/api/YB_APP/index'
import imagePath from '@/assets/YB_APP/images/25.png'
export default {
name: 'mine',
components: {
[Icon.name]: Icon,
[Cell.name]: Cell,
},
data() {
return {
messages:false,
userInfo:{},
menu1:[],
imagePath: imagePath //新头像URL
}
},
mounted(){
this.getHomeConfigYB()
this.getMineConfigYB()
window['getMessage'] = (data) => {
this.getMessage(data)
}
},
methods:{
getMessage(data){
if(data){
console.log('111')
this.messages = true
}else{
this.messages = false
}
},
getMineConfigYB(){
let params = {
}
mineConfigYB(params).then(res=>{
if(res.result == 0){
console.log(res)
this.userInfo = res.content
}else if(res.result == 1){
console.log('aaaaa');
this.getAgentInfoByAgentCode()
}else{
this.$toast(res.resultMessage)
}
})
},
getAgentInfoByAgentCode(){
let params = {
}
getAgentInfoByAgentCode(params).then(res=>{
if(res.result == 0){
this.userInfo = res.content
}else{
this.$toast(res.resultMessage)
}
})
},
getHomeConfigYB(){
let params = {
}
homeConfigYB(params).then(res=>{
if(res.result == 0){
console.log(res)
if(res.content.icon){
res.content.icon.myPageIcon.forEach(item=>{
this.menu1.push({
name:item.title,
img:item.img,
route:item.route
})
})
}
}
else{
this.$toast(res.resultMessage)
}
})
},
uploadHeadImage(){
EWebBridge.webCallAppInJs("head_image").then(data => {
console.log(data,'head_image')
let uploadResult = JSON.parse(data)
if(uploadResult.code==0){
// 头像上传成功
let uploadData = uploadResult.content
// 新头像URL
this.userInfo.agentHeadImgUrl = uploadData.imageUrl
} else if(uploadResult.code==1) {
//头像选择或上传失败 错误信息
let errorMessage = uploadResult.message
this.$toast(errorMessage)
// 提示异常信息
// 用户选择了头像预览
}
})
},
messageJump(){
this.$jump({
flag: 'message'
})
},
pageJump(data){
if(data.name != '设置'){
this.$jump({
flag: 'h5',
extra: {
url: location.origin + data.route,
},
routerInfo: {
path: data.route,
},
})
}else{
this.$jump({
flag: 'setting'
})
}
},
},
filters: {
encryCheckModelName(code) {
// if(code.length > 2){
// return code.replace(/(?<=[\u4e00-\u9fa5]).*(?=[\u4e00-\u9fa5])/, "*")
// }else{
if(code){
return code.replace(/.*(?=[\u4e00-\u9fa5])/, "*")
}
// }
}
},
}
</script>
<style lang="scss" scoped>
.public_container{
font-size: 12px;
height: 100vh;
width: 100vw;
background-image: url("../../assets/YB_APP/images/26.png");
background-repeat: no-repeat;
background-size: contain;
}
</style>

View File

@@ -0,0 +1,819 @@
<template>
<div class="public_container">
<div class="myhead">
<div>
<span class="QJactive" v-if="premType == 'QJ'" @click="changePremType('QJ')">首期业务</span>
<span class="GMunActice" v-if="premType == 'GM'" @click="changePremType('QJ')">首期业务</span>
<span class="QJunActice" v-if="premType == 'QJ'" @click="changePremType('GM')">渠道网点数据</span>
<span class="GMactive" v-if="premType == 'GM'" @click="changePremType('GM')">渠道网点数据</span>
</div>
<div>
<span @click="clickCalendar" class="headDate">{{calendarValue}} </span>
</div>
</div>
<div v-show="premType == 'QJ'" class="mainContainerQJ">
<p class="mainContainer_title">
<img class="mainContainer_title_img" src="@/assets/YB_APP/images/33.png">
<span class="mainContainer_title_span">首期规模保费</span>
</p>
<div v-show="echartsData.length != 0" class="echartsContent">
<div class="incomeChart" ref="incomeChart" id="incomeChartId" @click="parentsEvent"></div>
</div>
<div v-if="echartsData.length == 0">
<img class="mainContainer_title_noData_img" src="@/assets/YB_APP/images/39.png">
<p class="mainContainer_title_noData_p">暂无保费,继续努力吧~</p>
</div>
<div v-if="echartsData.length != 0" class="echartsIconContent">
<div class="echartsIconContent_main">
<div v-for="(item,index) in echartsData" class="echartsDatalist">
<div v-if="activeProductIndex == item.thisId" style="background:#fff;">
<div class="activeProductContent">
<p class="echartsDatalist_p" style="color:#000;font-weight:bold;">{{item.value}}万元</p>
<p class="echartsDatalist_p"><span class="productName_p" :style='{background:item.color}'></span>{{item.name}}</p>
</div>
</div>
<div v-if="activeProductIndex != item.thisId" style="background:#fafafc;">
<div class="unActiveProductContent">
<p class="echartsDatalist_p" style="color:#000;font-weight:bold;">{{item.value}}万元</p>
<p class="echartsDatalist_p"><span class="productName_p" :style="{background:item.color}"></span>{{item.name}}</p>
</div>
</div>
</div>
</div>
</div>
<div></div>
<div class="otherContent">
<div class="otherContent_con">
<p class="otherContent_con_title">
<img class="otherContent_con_title_img" src="@/assets/YB_APP/images/34.png">
<span class="otherContent_con_title_span">人力指标</span>
</p>
<div style="display:flex;">
<div class="otherContent_con_one">
<div>
<p v-if="qjrlFlag == 1" class="otherContent_con_top_p">
<span style="color:green;">达标</span>
<img class="otherContent_con_one_img" src="@/assets/YB_APP/images/40.png">
</p>
<p v-if="qjrlFlag == 0" class="otherContent_con_top_p">
<span style="color:#cf3d52;">未达标</span>
<img class="otherContent_con_one_img" src="@/assets/YB_APP/images/38.png">
</p>
<p class="otherContent_con_bottom_p">
<span>期交活动人力</span>
</p>
</div>
</div>
<div class="otherContent_con_two" style="margin-left:2%;">
<div>
<p v-if="ggrlFlag == 1" class="otherContent_con_top_p">
<span style="color:green;">达标</span>
<img class="otherContent_con_one_img" src="@/assets/YB_APP/images/40.png">
</p>
<p v-if="ggrlFlag == 0" class="otherContent_con_top_p">
<span style="color:#cf3d52;">未达标</span>
<img class="otherContent_con_one_img" src="@/assets/YB_APP/images/38.png">
</p>
<p class="otherContent_con_bottom_p">
<span>桂冠人力</span>
</p>
</div>
</div>
<div class="otherContent_con_three" style="margin-left:2%;">
<div>
<p class="otherContent_con_top_p">
<span style="color:#e8bfa4;">连续{{gghymonth}}</span>
</p>
<p class="otherContent_con_bottom_p">
<span>桂冠会员</span>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div v-show="premType == 'QJ'" class="myFooter">
<button class="myFooter_button" @click="goPolicyDetail">查询客户保单</button>
</div>
<div v-show="premType == 'GM'" class="mainContainerGM">
<p class="mainContainer_title">
<img class="mainContainer_title_img" src="@/assets/YB_APP/images/33.png">
<span class="mainContainer_title_span">网点数据</span>
</p>
<div class="channel_head">
<div class="channel_head_con_one">
<div>
<p class="channel_head_con_num">
<span class="channel_head_con_num_span">
{{bankNetCount}}<span class="channel_head_con_num_span channel_head_con_num_span_unit"></span>
</span>
<!-- <span class="channel_head_con_num_span channel_head_con_num_span_unit"></span> -->
</p>
<p class="channel_head_con_mark">网点数量</p>
</div>
</div>
<div class="channel_head_con_two">
<div>
<p class="channel_head_con_num">
<span class="channel_head_con_num_span">{{qjhdl}}%</span>
</p>
<p class="channel_head_con_mark">网点期交活动率</p>
</div>
</div>
</div>
<div class="channelORnetween_list_head">
<div class="channelORnetween_list_head_con">
<div class="channelORnetween_list_head_button_con">
<div :class="channelORnetworkType == 'channel'?'activeChannel':'unActiveChannel'" @click="changeChannelORnetworkType('channel')" >渠道业绩</div>
<div :class="channelORnetworkType == 'network'?'activeChannel':'unActiveChannel'" @click="changeChannelORnetworkType('network')">网点业绩</div>
</div>
<div @click="changeSortType" class="channelORnetween_list_head_button_right" style="display:flex;align-items:center;">
<span style="margin-right:5px;">保费排序</span>
<img v-if="sortType == '1'" style="width:7px;height:14px;" src="@/assets/YB_APP/images/44.png">
<img v-if="sortType == '2'" style="width:7px;height:14px;" src="@/assets/YB_APP/images/45.png">
</div>
</div>
</div>
<div class="channelORnetween_list" >
<div v-if="channelORnetworkData.length != 0" v-for="(item,index) in channelORnetworkData" >
<div class="channelORnetween_list_con">
<div class="channelORnetween_list_maincon">
<div class="channelORnetween_list_maincon_title">
<img class="channelORnetween_list_maincon_title_img" :src="item.bankRoute">
<span class="channelORnetween_list_maincon_title_span">{{item.bankName}}</span>
</div>
<div class="channelORnetween_list_maincon_title_mark">
<span class="channelORnetween_list_maincon_title_mark_span">总保费</span>
<span class="channelORnetween_list_maincon_title_mark_money">
<span>{{item.sumprem}}</span>
<span class="markMoneyUnit">万元</span>
</span>
</div>
</div>
<div class="listInfoCon">
<div class="listInfoParts">
<p class="listInfoP">
<span class="listInfoP_spanOne">{{item.djprem}}</span>
<span class="listInfoP_spanTwo">万元</span>
</p>
<p class="listInfoMark">趸交保费</p>
<div class="listInfoLine"></div>
</div>
<div class="listInfoParts">
<p class="listInfoP">
<span class="listInfoP_spanOne">{{item.ybqjprem}}</span>
<span class="listInfoP_spanTwo">万元</span>
</p>
<p class="listInfoMark">银保期交保费</p>
<div class="listInfoLine"></div>
</div>
<div class="listInfoParts">
<p class="listInfoP">
<span class="listInfoP_spanOne">{{item.ctqjprem}}</span>
<span class="listInfoP_spanTwo">万元</span>
</p>
<p class="listInfoMark">传统期交保费</p>
</div>
</div>
</div>
</div>
<div v-if="channelORnetworkData.length == 0" style="display:flex;justify-content:center;align-items:center;height:400px;position:relative;">
<img style="width:60%" src="@/assets/YB_APP/images/43.png">
<span style="position:absolute;bottom:138px;left:calc(50% - 33px);">暂无业绩</span>
</div>
</div>
</div>
<van-popup v-model="calendarShow" position="bottom">
<van-datetime-picker
v-model="currentDate"
type="year-month"
title="选择日期"
:min-date="minDate"
:max-date="maxDate"
@cancel="handleCurrentDateCancel"
@confirm="handleCurrentDateConfirm"
/>
</van-popup>
</div>
</template>
<script>
import { Button } from 'vant'
import utils from '@/assets/js/utils/date-utils'
import echarts from 'echarts'
import { getPremByAgentCode, getIndexByAgentCode, getBankNetDataYB, getChannelPerformanceYB, getBankNetPerformanceYB } from '@/api/YB_APP/index'
export default {
name: 'policyDetail',
components: {
[Button.name]: Button,
},
data() {
return {
premType:'QJ',
qjrlFlag:'',
ggrlFlag:'',
gghymonth:'0',
bankNetCount:'0',
qjhdl:'0',
sortType:'1',
channelORnetworkType:'channel',
activeProductIndex:'',
calendarValue:'',
calendarShow:false,
currentDate:new Date(),
minDate: new Date(2019, 1, 1),
maxDate: new Date(2030, 12, 31),
echartsData:[],
channelORnetworkData:[],
incomeOption :{
color: ["#768dfe", "#7784a2", "#38cbcb", "#a5e1fc", "#e8bfa4",'#fcd439','#fc7d82'],
title: {
text: '',
subtext:'总保费',
x: "center",
y: "center",
textStyle: {
fontWeight: "normal",
color: "#000",
fontSize: 24,
lineHeight: 18,
},
subtextStyle: {
fontSize: 14,
color: "#666",
lineHeight: 10,
},
},
// tooltip: {
// show: true,
// },
tooltip: {
trigger: 'item',
backgroundColor: 'rgba(255,255,255,0.1)',
// backgroundColor:'#fff',
borderColor:'#eee',
color: '#fff',
formatter: function (params) {
// console.log(params,111)
return (
'<span style="color:#333;">险种 </span>'+'<span style="color:#858bd6;margin-left:20px;">'+params.data.name +
'</span>'+'<br/>' +
'<span style="color:#333;">占比 </span>'+'<span style="color:#858bd6;margin-left:20px;">'+params.data.scale +
'</span>'+'<br/>' +
'<span style="color:#333;">金额 </span>'+'<span style="color:#858bd6;margin-left:20px;">'+params.data.value +'万元'+
'</span>'
);
}
},
legend: {
show:false
},
series: [
{
name: '',
type: 'pie',
radius: ['46%', '61%'],
avoidLabelOverlap: true,
label: {
show: true,
position: 'center',
color:'#000',
fontSize:'20',
formatter: function (data) {
return ''
},
},
emphasis: {
label: {
show: true,
fontSize: '20',
fontWeight: 'bold'
}
},
labelLine: {
show: true
},
data: []
}
]
},
}
},
mounted(){
let yearNum = new Date().getFullYear()
let monthNum = new Date().getMonth()+1
if(monthNum < 10){
monthNum = '0' + monthNum
}
this.calendarValue = yearNum+'-'+monthNum
this.getPremByAgentCode()
this.getIndexByAgentCode()
},
methods:{
getPremByAgentCode(){
let params = {
currentMonth: this.calendarValue
}
getPremByAgentCode(params).then(res=>{
if(res.result == 0){
this.echartsData = []
this.incomeOption.series[0].data = []
this.incomeOption.title.text = res.content.decimalAll + '万元'
if(res.content.premDTOList && res.content.premDTOList.length!=0){
this.echartsData = []
this.incomeOption.series[0].data = []
res.content.premDTOList.forEach(item=>{
this.echartsData.push({
value: item.allprem,
scale:item.percentage,
name: item.riskname,
thisId:item.riskcode
})
this.incomeOption.series[0].data.push({
value: item.allprem,
scale:item.percentage,
name: item.riskname,
thisId:item.riskcode
})
})
this.echartsData.forEach((item,index)=>{
item.color = this.incomeOption.color[index]
})
}
this.$nextTick(()=>{
this.incomeChart = echarts.init(this.$refs.incomeChart)
this.incomeChart.on('click',this.echartsClick)
this.incomeChart.setOption(this.incomeOption)
})
}else{
this.echartsData = []
this.incomeOption.series[0].data = []
this.$toast(res.resultMessage)
}
})
},
getIndexByAgentCode(){
let params = {
currentMonth: this.calendarValue
}
getIndexByAgentCode(params).then(res=>{
this.qjrlFlag = ''
this.ggrlFlag = ''
this.gghymonth = 0
if(res.result == 0){
this.qjrlFlag = res.content.qjrlFlag
this.ggrlFlag = res.content.ggrlFlag
this.gghymonth = res.content.gghymonth
if(!this.gghymonth){
this.gghymonth = 0
}
}else{
this.$toast(res.resultMessage)
}
})
},
getBankNetDataYB(){
let params = {
currentMonth:this.calendarValue
}
getBankNetDataYB(params).then(res=>{
this.bankNetCount = '0'
this.qjhdl = '0'
if(res.result == 0){
if(res.content.bankNetCount){this.bankNetCount = res.content.bankNetCount}
if(res.content.qjhdl){this.qjhdl = res.content.qjhdl}
}else{
this.$toast(res.resultMessage)
}
})
},
getChannelPerformanceYB(){
let params = {
currentMonth:this.calendarValue,
}
if(this.sortType == 2){
params.isDesc = true
}else{
params.isAsc = true
}
getChannelPerformanceYB(params).then(res=>{
if(res.result == 0){
this.channelORnetworkData = []
if(res.content && res.content.length != 0){
this.channelORnetworkData = res.content
}
}else{
this.$toast(res.resultMessage)
}
})
},
getBankNetPerformanceYB(){
let params = {
currentMonth:this.calendarValue
}
if(this.sortType == 2){
params.isDesc = true
}else{
params.isAsc = true
}
getBankNetPerformanceYB(params).then(res=>{
if(res.result == 0){
this.channelORnetworkData = []
if(res.content && res.content.length != 0){
this.channelORnetworkData = res.content
}
}else{
this.$toast(res.resultMessage)
}
})
},
changeSortType(){
if(this.sortType == 1){
this.sortType = 2
}else{
this.sortType = 1
}
if(this.channelORnetworkType == 'channel'){
this.getChannelPerformanceYB()
}else{
this.getBankNetPerformanceYB()
}
},
changeChannelORnetworkType(type){
if(this.channelORnetworkType != type){
this.channelORnetworkType = type
if(this.channelORnetworkType == 'channel'){
this.getChannelPerformanceYB()
}else{
this.getBankNetPerformanceYB()
}
}
},
parentsEvent(){
this.activeProductIndex = ''
},
echartsClick(params){
params.event.stop()
this.activeProductIndex = params.data.thisId
},
clickCalendar(){
this.calendarShow = true
},
handleCurrentDateCancel() {
this.calendarShow = false
},
handleCurrentDateConfirm(e) {
this.calendarShow = false
// let titleTime = utils.formatDate(e, 'yyyy-MM')
// this.calendarValue = utils.formatDate(e, 'MM-dd')
let yearNum = utils.formatDate(e, 'yyyy')
let monthNum = utils.formatDate(e, 'MM')
this.calendarValue = yearNum+'-'+monthNum
if(this.premType == 'QJ'){
this.getPremByAgentCode()
this.getIndexByAgentCode()
}else{
this.getBankNetDataYB()
if(this.channelORnetworkType == 'channel'){
this.getChannelPerformanceYB()
}else{
this.getBankNetPerformanceYB()
}
}
},
changePremType(type){
if(this.premType != type){
this.premType = type
if(this.premType == 'QJ'){
this.getPremByAgentCode()
this.getIndexByAgentCode()
}else{
this.getBankNetDataYB()
if(this.channelORnetworkType == 'channel'){
this.getChannelPerformanceYB()
}else{
this.getBankNetPerformanceYB()
}
}
}
},
goPolicyDetail(){
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/YB_APP/policyList?date=' + this.calendarValue,
},
routerInfo: {
path: '/YB_APP/policyList?date=' + this.calendarValue,
},
})
},
},
}
</script>
<style lang="scss" scoped>
.myhead{
display:flex;justify-content: space-between;padding: 25px 15px;background: #fff;
}
.QJactive{
background:#3949ac;color: #fff;font-weight: bold;font-size: 12px;padding: 10px 15px;border-top-left-radius: 5px;border-bottom-left-radius: 5px;border: 1px solid #3949ac;border-right: none;letter-spacing: 1px;
}
.GMunActice{
background:#fff;color: #9698c6;font-size: 12px;padding: 10px 15px;border-top-left-radius: 5px;border-bottom-left-radius: 5px;border: 1px solid #3949ac;border-right: none;letter-spacing: 1px;border-left: 1px solid #3949ac;
}
.QJunActice{
background:#fff;color: #9698c6;font-size: 12px;padding: 10px 15px;border-top-right-radius: 5px;border-bottom-right-radius: 5px;border: 1px solid #3949ac;border-left: none;letter-spacing: 1px;border-right: 1px solid #3949ac;
}
.GMactive{
background:#3949ac;color: #fff;font-weight: bold;font-size: 12px;padding: 10px 15px;border-top-right-radius: 5px;border-bottom-right-radius: 5px;border: 1px solid #3949ac;border-left: none;letter-spacing: 1px;
}
.headDate{
background:#f2f2f2;font-weight: bold;padding: 8px 15px;border-radius: 15px;font-size: 12px;
}
.mainContainerQJ{
margin:15px 10px 10px;
border-radius:5px;
background:#fff;
width:calc(100vw - 20px);
text-align:center;
}
.mainContainerGM{
margin:15px 10px 10px;
border-radius:5px;
background:#fff;
width:calc(100vw - 20px);
text-align:center;
}
.echartsContent{
display:flex;
justify-content:center;
align-items:center;
width:100%;
height:350px;
}
.incomeChart{
width:calc(100% - 20px);
height:calc(100% - 20px);
/*border:1px solid #eee;*/
}
.echartsIconContent{
width:100%;
height:200px;
display:flex;
justify-content:center;
align-items:center;
}
.echartsIconContent_main{
width:calc(100% - 20px);
height:calc(100% - 20px);
/*border:1px solid #eee;*/
background:#fafafc;
border-radius:5px;
text-align:left;
}
.otherContent{
width:100%;
height:150px;
display:flex;
justify-content:center;
align-items:center;
}
.otherContent_con{
width:calc(100% - 20px);
height:calc(100% - 20px);
/*border:1px solid #eee;*/
}
.myFooter{
width:100%;
display:flex;
justify-content:center;
margin-top:15px;
padding-bottom:15px;
}
.myFooter_button{
background:#fe3b44;
border-radius:25px;
padding:10px 30px;
color:#ffff;
border:none;
font-size:14px;
letter-spacing:1px;
}
.productName_p{
width:8px;height:8px;border-radius:2px;background:red;display:inline-block;margin-right:5px
}
.activeProductContent{
padding:10px;text-align:center;border-radius:5px;box-shadow:0px 1px 2px 0px #333;
}
.echartsDatalist{
display:inline-block;width:31%;margin:5px 1%;
}
.echartsDatalist_p{
line-height:20px;
font-size:14px;
}
.unActiveProductContent{
padding:3px;text-align:center;
}
.otherContent_con_one{
border-radius:5px;
padding:10px 15px;
width:32%;
height:55px;
display:flex;
align-items:center;
background-image: url("../../assets/YB_APP/images/35.png");
background-repeat: no-repeat;
background-size: contain;
}
.otherContent_con_two{
border-radius:5px;
padding:10px 15px;
width:32%;
height:55px;
display:flex;
align-items:center;
background-image: url("../../assets/YB_APP/images/37.png");
background-repeat: no-repeat;
background-size: contain;
}
.otherContent_con_three{
border-radius:5px;
padding:10px 15px;
width:32%;
height:55px;
display:flex;
align-items:center;
background-image: url("../../assets/YB_APP/images/36.png");
background-repeat: no-repeat;
background-size: contain;
}
.mainContainer_title{
display:flex;align-items: center;padding: 15px 0px 0px 20px;
}
.mainContainer_title_img{
width:20px;
height:20px;
}
.mainContainer_title_span{
font-size: 16px;font-weight: bold;margin-left: 12px;
}
.otherContent_con_title{
display:flex;align-items: center;padding: 5px 0px 10px 10px;
}
.otherContent_con_title_img{
width:20px;
height:20px;
}
.otherContent_con_title_span{
font-size: 16px;font-weight: bold;margin-left: 12px;
}
.otherContent_con_top_p{
font-size:14px;display:flex;justify-content:flex-start;align-items:center;font-weight:bold;
}
.otherContent_con_one_img{
width:16px;height:16px;margin-left:10px;
}
.otherContent_con_bottom_p{
font-size:12px;font-weight:bold;display:flex;justify-content:flex-start;
}
.mainContainer_title_noData_img{
width:80%;
height:250px;
}
.mainContainer_title_noData_p{
width:100%;
text-align:center;
color:#999;
font-size:16px;
font-weight:bold;
margin-bottom:20px;
}
.channel_head{
width:100%;
display:flex;
justify-content:center;
}
.channel_head_con_one{
border-radius:5px;
width:48%;
margin:15px 1%;
height:75px;
display:flex;
align-items:center;
background-image: url("../../assets/YB_APP/images/41.png");
background-repeat: no-repeat;
background-size: cover;
}
.channel_head_con_two{
border-radius:5px;
width:48%;
margin:15px 1%;
height:75px;
display:flex;
align-items:center;
background-image: url("../../assets/YB_APP/images/42.png");
background-repeat: no-repeat;
background-size: cover;
}
.activeChannel{
color:#3749A9;background:#F4F6FF;padding:6px;border-radius:3px;font-weight:bold;font-size:14px;border:none;
margin:5px;
}
.unActiveChannel{
color:#333333;font-size:14px;margin:5px;border:none;background:#fff;padding:6px;
}
.channel_head_con_num{
display:flex;justify-content:flex-start;margin-left:15px;
}
.channel_head_con_num_span{
color:#3749A9;font-size:16px;font-weight:bold;line-height:30px;
}
.channel_head_con_mark{
color:#3646AF;font-size:14px;margin-left:15px;
}
.channel_head_con_num_span_unit{
color:#3646AF;font-size:14px;
}
.channelORnetween_list_head{
width:calc(100% - 20px);height:40px;margin:10px;
}
.channelORnetween_list_head_con{
display:flex;justify-content:space-between;
}
.channelORnetween_list_head_button_con{
display:flex;justify-content:space-between;align-items:center;
}
.channelORnetween_list_head_button_right{
color:#3749A9;background:#F7F7F7;padding:6px 10px;border-radius:20px;font-size:12px;font-weight:bold;display:flex;justify-content:center;align-items:center;height:20px;
}
.channelORnetween_list{
width:calc(100% - 20px);margin:10px;
padding-bottom:10px;
}
.channelORnetween_list_con{
margin-bottom:15px;border:1px solid #eee;border-radius:8px;overflow:hidden;
}
.channelORnetween_list_maincon{
display:flex;justify-content:space-between;align-items:center;height:50px;background:#EEEEEE;
}
.channelORnetween_list_maincon_title{
display:flex;align-items:center;width:200px;
}
.channelORnetween_list_maincon_title_img{
width:20px;height:20px;margin-left:10px;
}
.channelORnetween_list_maincon_title_span{
font-size:14px;color:#333;margin-left:10px;font-weight:bold;text-align:left;
}
.channelORnetween_list_maincon_title_mark{
margin-right:10px;width:130px;
}
.channelORnetween_list_maincon_title_mark_span{
color:#999;font-size:12px;margin-right:5px;
}
.channelORnetween_list_maincon_title_mark_money{
color:#D6313F;font-size:16px;font-weight:bold;
}
.markMoneyUnit{
font-size:12px;
}
.listInfoCon{
display:flex;align-items:center;height:100px;
}
.listInfoParts{
width:33.3%;position:relative;
}
.listInfoP{
line-height:30px;
}
.listInfoP_spanOne{
font-size:16px;font-weight:bold;color:#333;
}
.listInfoP_spanTwo{
color:#333;font-size:12px;font-weight:bold;
}
.listInfoMark{
font-size:12px;color:#999;line-height:30px;
}
.listInfoLine{
position:absolute;right: 0px;width: 1px;background: #eee;top: calc(50% - 10px);height: 20px;
}
</style>

View File

@@ -0,0 +1,88 @@
<template>
<div class="public_container">
<div class="listContent">
<van-cell-group inset>
<van-cell title="产品名称" :value="ybOrderDTOList.riskName" />
<van-cell title="保单号" :value="ybOrderDTOList.riskCode" />
<van-cell title="投保人" :value="ybOrderDTOList.appentName" />
<van-cell title="被保险人" :value="ybOrderDTOList.insureName" />
<van-cell title="交费金额/元" :value="ybOrderDTOList.prem" />
<van-cell title="保险金额/元" :value="ybOrderDTOList.amt" />
<van-cell title="销售渠道" :value="ybOrderDTOList.bankChannel" />
<van-cell title="销售网点" :value="ybOrderDTOList.saleNet" />
<van-cell title="承保日期" :value="ybOrderDTOList.signDate" />
<van-cell title="保单状态" :value="ybOrderDTOList.state" />
<van-cell title="回访成功" :value="ybOrderDTOList.reSuccessDate" />
<van-cell title="回访完成" :value="ybOrderDTOList.reCallDate" />
</van-cell-group>
</div>
</div>
</template>
<script>
import { YBpolicyDetail } from '@/api/YB_APP/index'
import warterMark from "@/assets/js/utils/warterMark.js"
import { getAgentInfo } from '@/api/ebiz/my/my.js'
export default {
name: 'policyDetail',
components: {},
data() {
return {
ybOrderDTOList: '',
policyNo: ''
}
},
mounted() {
this.getAgentInfo()
this.policyNo = this.$route.query.policyNo
console.log(this.policyNo, 'avc')
this.YBpolicyDetail()
},
methods: {
getAgentInfo(){
getAgentInfo({}).then(res=>{
if(res.result == 0){
console.log('123')
warterMark.set(res.name+res.jobNo,"")
}
})
},
YBpolicyDetail() {
let params = {
policyNo: this.policyNo
}
console.log('我是log')
YBpolicyDetail(params).then((res) => {
console.log(res, '我是res')
if (res.result == 0) {
this.ybOrderDTOList = res.content.ybOrderDTO
console.log(this.ybOrderDTOList, '请求成功的res')
}
})
}
}
}
</script>
<style lang="scss" scoped>
.public_container {
font-size: 12px;
height: 100vh;
width: 100vw;
}
/deep/ .van-cell__title {
color: #0a0808;
max-width: 30%;
}
/deep/ .van-cell__value {
color: #777676;
// text-align: left;
}
// /deep/ .van-cell-group >
.listContent {
width: 96%;
background-color: white;
margin: 12px auto;
overflow: hidden;
border-radius: 12px;
}
</style>

View File

@@ -0,0 +1,684 @@
<template>
<div class="public_container">
<!-- 最上方的搜索框 -->
<!-- <div style="position: relative">
<van-search shape="round" v-model="findValue" placeholder="请输入保单号/客户身份证号/客户姓名" />
<button class="searchButton" @click="keywordSearch(findValue)">搜索</button>
</div> -->
<!-- <button @click="showSideBar = !showSideBar">点击按钮</button> -->
<!-- <div style="width:100%;height:1000px;background:rgba(0, 0, 0, 0.2);"></div> -->
<!-- 右侧搜索按钮 -->
<!-- <div style="height:40px;background-color:aqua"> -->
<!-- <label>
<input type="text" value="请输入保单号" style="background-color: aliceblue;height: 30px;width: 70%;border-radius: 50px;border:0"><img src="" alt=""></input>
<img src="../../assets/YB_APP/images/bigglass.png" alt="">
<button style="border:0;padding:17px 20px;background-color:blue;">搜索</button>
</label> -->
<!-- </div> -->
<!-- 无内容显示的背景 -->
<div v-if="filpolicyListDTOList == ''" style="position: relative">
<img class="noContentImg" src="../../assets/YB_APP/images/noguarantee.png" />
<p class="noContentText">暂无保单</p>
</div>
<!-- 卡片列表 -->
<div v-if="filpolicyListDTOList != ''" style="overflow: hidden">
<van-list v-model="loading" :finished="finished" finished-text="没有更多了" @load="listLoad">
<div class="cardList" v-for="(item, index) in filpolicyListDTOList" :key="index">
<div :class="[item.orderStatus == 1 ? 'topbackground1' : 'topbackground2']">
<!-- 字左边小对号图片 -->
<img class="cardListImg" v-if="item.orderStatus == 1" src="../../assets/YB_APP/images/sign1.png" />
<img class="cardListImg" v-if="item.orderStatus != 1" src="../../assets/YB_APP/images/sign2.png" />
<span class="cardListText">{{ item.riskName }}</span>
</div>
<!-- 卡片内容 -->
<div class="cardConetent">
<div class="textList">
<p class="policyNo">
<span>保单号</span><span>{{ item.policyNo }}</span>
</p>
<p>
<span>被保人</span><span>{{ item.insuredName }}</span>
</p>
<p>
<span>承保日期</span><span>{{ item.signDate }}</span>
</p>
<p>
<span>销售渠道</span><span>{{ item.bankChannel }}</span>
</p>
<!-- 根据0,1状态判断显示是否和文字颜色 -->
<p v-if="item.visitSuccess == 0"><span>回访成功</span><span class="visitNo"></span></p>
<p v-if="item.visitSuccess == 1"><span>回访成功</span><span></span></p>
<p v-if="item.visitFinish == 0"><span>回访完成</span><span class="visitNo"></span></p>
<p v-if="item.visitFinish == 1"><span>回访完成</span><span></span></p>
</div>
<!-- 右边状态图片 -->
<div class="rightState">
<img class="rightStateImg" :src="item.stateRoute" />
<button class="rightStateButton" @click="goPolicyDetail(item.policyNo)">查看详情</button>
</div>
</div>
</div>
</van-list>
</div>
<van-popup v-model="showSideBar" position="right" style="width: 80%; height: 100%" :overlay-style="{ opacity: 0.7 }">
<div class="state-content">
<div>
<p>条件查询</p>
<van-search v-model="conditionInquire" shape="round" placeholder="保单号/客户身份证号/客户姓名" left-icon=" " />
</div>
<div>
<p>承保日期</p>
<van-search show-action v-model="underwriteDate" shape="round" placeholder="右侧选择日期" left-icon=" ">
<template #action>
<img class="underwriteDateImg" @click="clickTime" src="../../assets/YB_APP/images/date.png" />
</template>
</van-search>
</div>
<div>
<p>保单状态</p>
<div class="chooseMessage">
<div v-for="(item, index) in list1" :key="index">
<button @click="warrantyState(index)" class="buttonChangebe" :class="{ buttonChangeaf: clickChangewarranty == index }">{{ item.name }}</button>
</div>
</div>
</div>
<div>
<p>渠道名称</p>
<div class="chooseMessage">
<div v-for="(item, index) in list2" :key="index">
<button @click="channelName(index)" class="buttonChangebe" :class="{ buttonChangeaf: clickChangechannel == index }">{{ item.name }}</button>
</div>
</div>
</div>
<div>
<p>回访成功</p>
<div class="chooseMessage">
<div v-for="(item, index) in list3" :key="index">
<button @click="visitSucceed(index)" class="buttonChangebe" :class="{ buttonChangeaf: clickChangevisitSucceed == index }">{{ item.name }}</button>
</div>
</div>
</div>
<div>
<p>回访完成</p>
<div class="chooseMessage">
<div v-for="(item, index) in list3" :key="index">
<button @click="visitAccomplish(index)" class="buttonChangebe" :class="{ buttonChangeaf: clickChangevisitAccomplish == index }">
{{ item.name }}
</button>
</div>
</div>
</div>
</div>
<div class="bottom-area">
<van-button class="m-btn-left" @click="reset">重置</van-button>
<van-button class="m-btn-right" @click="submit">确定</van-button>
</div>
<van-popup v-model="showPicker" position="bottom">
<van-datetime-picker
v-model="currentDate"
type="year-month"
title="选择年月"
:min-date="minDate"
:max-date="maxDate"
@confirm="timeSubmit"
@cancel="timeCancel"
/>
</van-popup>
</van-popup>
</div>
</template>
<script>
import { Button, Search, DatetimePicker } from 'vant'
import { ref } from 'vue'
import utils from '@/assets/js/utils/date-utils'
import { YBpolicyListAgent } from '@/api/YB_APP/index'
import warterMark from '@/assets/js/utils/warterMark.js'
import { getAgentInfo } from '@/api/ebiz/my/my.js'
export default {
name: 'policyList',
components: {
[Button.name]: Button,
[Search.name]: Search,
[DatetimePicker.name]: DatetimePicker
},
setup() {
const value = ref('')
return { value }
},
data() {
return {
showPicker: false,
findValue: '', // 上面搜索框的value
policyListDTOList: [],
filpolicyListDTOList: [], // 结合watch过滤后的卡片数据
showSideBar: false, // 侧边栏展开否
list1: [
{ id: 0, name: '全部' },
{ id: 1, name: '有效' },
{ id: 2, name: '退保终止' },
{ id: 3, name: '理赔终止' },
{ id: 4, name: '协退终止' },
{ id: 5, name: '犹退终止' },
{ id: 6, name: '当日撤单' }
],
list2: [
{ id: 0, name: '全部' },
{ id: 1, name: '邮政储蓄银行' },
{ id: 2, name: '农业银行' },
{ id: 3, name: '工商银行' },
{ id: 4, name: '北部湾银行' }
],
list3: [
{ id: 0, name: '全部' },
{ id: 1, name: '是' },
{ id: 2, name: '否' }
],
clickChangewarranty: 0,
clickChangechannel: 0,
clickChangevisitSucceed: 0,
clickChangevisitAccomplish: 0,
calendarShow: false,
// currentDate: new Date(),
underwriteDate: '', // 承保日期的时间
conditionInquire: '', // 条件查询
params: {
signDate: '', // 日期
otherNo: '', // 保单号
state: '', // 保单状态
bankChannel: '', // 渠道名称
visitSuccess: '', // 回访成功
visitFinish: '', // 回访完成
pageSize: 10,
pageNo: 0
},
minDate: new Date(2020, 0, 1),
maxDate: new Date(2030, 11, 31),
currentDate: new Date(),
loading: false,
finished: false
}
},
created() {
// 初始化显示按钮
setTimeout(() => {
this.filterBtn()
}, 500)
},
mounted() {
this.$toast.loading({
duration: 10000, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
this.getAgentInfo()
this.YBpolicyListAgent()
// 筛选按钮的点击事件
window.appCallBack = this.appCallBack
// this.underwriteDate = this.$route.query.date
// this.params.signDate = this.$route.query.date
},
methods: {
getAgentInfo() {
getAgentInfo({}).then((res) => {
if (res.result == 0) {
console.log('123')
warterMark.set(res.name + res.jobNo, '')
}
})
},
appCallBack(data, flag) {
// 筛选按钮的点击事件
this.showSideBar = true
},
filterBtn() {
// 筛选按钮的显示
// eslint-disable-next-line no-undef
setTimeout(() => {
EWebBridge.webCallAppInJs('webview_right_button', {
btns: [
{
img: this.$assetsUrl + 'images/filter_btn.png',
route: { flag: '', extra: {} }
}
]
})
}, 500)
},
// 四个选择的状态
warrantyState(val) {
this.clickChangewarranty = val
console.log(this.clickChangewarranty, '保单的data')
console.log(val, '保单的val')
},
channelName(val) {
this.clickChangechannel = val
console.log(this.clickChangechannel, '渠道的data')
console.log(val, '渠道的val')
},
visitSucceed(val) {
this.clickChangevisitSucceed = val
console.log(this.clickChangevisitSucceed, '回访完成的data')
console.log(val, '回访成功的val')
},
visitAccomplish(val) {
this.clickChangevisitAccomplish = val
console.log(this.clickChangevisitSucceed, '回访完成的data')
console.log(val, '回访完成的val')
},
listLoad() {
this.params.pageNo++
this.finished = false
this.loading = true
this.YBpolicyListAgent()
},
// 请求卡片数据
YBpolicyListAgent() {
let that = this
// console.log('我是log')
// if(!that.finished){
// that.params.pageNo++
// }
YBpolicyListAgent(that.params).then((res) => {
console.log(res, '我是res')
if (res.result == 0) {
// that.policyListDTOList = res.policyListDTOList
// that.filpolicyListDTOList = res.policyListDTOList
// console.log(this.policyListDTOList, 'data里的policyListDTOList')
// this.YBpolicyListAgent()
if (res.policyListDTOList.length == 0) {
this.finished = true
this.loading = false
// that.filpolicyListDTOList = []
// console.log('111111111111111111111')
// that.filpolicyListDTOList = res.policyListDTOList.policyListDTOList
} else {
that.filpolicyListDTOList = that.filpolicyListDTOList.concat(res.policyListDTOList)
that.finished = false
this.loading = false
console.log('22222222222222222222222222222')
if (res.policyListDTOList.length == 1 && this.params.otherNo != '') {
// that.filpolicyListDTOList = []
that.filpolicyListDTOList = res.policyListDTOList
}
}
} else {
that.$toast(res.resultMessage)
this.finished = true
this.loading = false
// if (that.params.pageNo == 1) {
// that.filpolicyListDTOList = []
// console.log('33333333333333333333333333')
// } else {
// that.$toast(res.resultMessage)
// this.finished = true
// this.loading = false
// // that.filpolicyListDTOList = []
// console.log('44444444444444444444444444444')
// }
}
})
},
// (查看详情)按钮跳转
goPolicyDetail(data) {
console.log(data)
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/YB_APP/policyDetail?policyNo=' + data
},
routerInfo: {
path: '/YB_APP/policyDetail?policyNo=' + data
}
})
},
// 上方关键词搜索按钮
// keywordSearch(value) {
// console.log(value, '点击搜索了')
// // this.filpolicyListDTOList = this.policyListDTOList.filter((p) => {
// // return p.policyNo.indexOf(value) !== -1
// // })
// // this.params.pageNo = 0
// this.clickChangewarranty = 0
// this.clickChangechannel = 0
// this.clickChangevisitSucceed = 0
// this.clickChangevisitAccomplish = 0
// this.underwriteDate = ''
// this.params.pageNo = 0
// this.params.otherNo = value
// this.filpolicyListDTOList = []
// this.YBpolicyListAgent()
// // console.log(value,'我是value');
// // console.log(this.riskCode,'我是this.riskCode');
// },
reset() {
// 筛选的重置操作
// 全部按钮选中; list全部匹配(点击全部的时候可以通过匹配规则匹配到所有的产品)
// this.isActive = [true, false, false, false, false]
// this.list = this.proList
// this.showSideBar = false
this.currentDate = new Date()
this.clickChangewarranty = 0
this.clickChangechannel = 0
this.clickChangevisitSucceed = 0
this.clickChangevisitAccomplish = 0
this.underwriteDate = ''
this.conditionInquire = ''
this.params.pageNo = 0
},
submit() {
// 筛选的确定操作
// this.isActive.some((item, index) => {
// if (item) {
// 获取选中的险种
// this.risk = this.risks[0].content[index].code
// }
// })
this.filpolicyListDTOList = []
this.showSideBar = false
this.params.pageNo = 0
this.params.signDate = this.underwriteDate
this.params.otherNo = this.conditionInquire
// this.params.signDate = '2022-09'
this.params.state = this.list1[this.clickChangewarranty].id
this.params.bankChannel = this.list1[this.clickChangechannel].id
this.params.visitSuccess = this.list1[this.clickChangevisitSucceed].id
this.params.visitFinish = this.list1[this.clickChangevisitAccomplish].id
this.YBpolicyListAgent()
this.$toast.loading({
duration: 15000, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
// this.filpolicyListDTOList = ''
// 根据选中险别对产品列表进行筛选
// this.list = this.proList.filter((item) => {
// if (this.risk == '') {
// return item
// } else {
// return item.categoryCode.indexOf(this.risk) != -1
// }
// })
},
// 查询里的图片出来时间
clickTime() {
this.showPicker = true
},
// 时间里的确认按钮
timeSubmit() {
// this.params.renewalDate = this.currentDate
let yearNum = this.currentDate.getFullYear()
let monthNum = this.currentDate.getMonth() + 1
if (monthNum < 10) {
monthNum = '0' + monthNum
}
this.underwriteDate = yearNum + '-' + monthNum
this.showPicker = false
},
// 时间里的取消按钮
timeCancel() {
this.showPicker = false
}
}
// 关键词搜索过滤
// watch: {
// findValue: {
// handler(value) {
// this.filpolicyListDTOList = this.policyListDTOList.filter((p) => {
// // return p.policyNo.indexOf(value) !== -1 || p.insuredName.indexOf(value) !== -1
// return p.policyNo.indexOf(value) !== -1
// })
// if (value == '') {
// this.filpolicyListDTOList = this.policyListDTOList
// }
// }
// }
// }
}
</script>
<style lang="scss" scoped>
.public_container {
font-size: 12px;
height: 100vh;
width: 100vw;
}
/deep/ .van-search {
// background-color: rgb(0, 255, 255);
border-bottom-left-radius: 12px;
border-bottom-right-radius: 12px;
/*height: 6vh;*/
}
// /deep/ .van-cell--borderless {
// height: 32px;
// background-color: #f7f7f7;
// font-size: 12px;
// line-height: 30px;
// }
.searchButton {
position: absolute;
top: 2.67vw;
right: 3.2vw;
background-color: #2154cc;
color: #ffffff;
border-radius: 18px;
// padding: 8px 15px;
font-size: 12px;
border: 0px;
height: 34px;
width: 56px;
}
.noContentImg {
height: 216px;
// width: 285px;
position: absolute;
top: 60px;
left: calc(50% - 142px);
}
.noContentText {
font-size: 12px;
position: absolute;
top: 219px;
left: calc(50% - 24px);
color: #b3b5ca;
}
.cardList {
// height: 225px;
width: 96%;
border-radius: 12px;
background-color: white;
margin: 15px auto;
overflow: hidden;
}
.cardListImg {
height: 16px;
// width: 14px;
// margin: 12px 7px;
margin: 0 7px;
/*position: absolute;*/
}
.visitNo {
color: #f22220;
font-weight: 600;
}
.rightState {
height: 100%;
// width: 32%;
background-color: white;
overflow: hidden;
// position:relative;
}
.rightStateImg {
height: 100px;
width: 100px;
margin-bottom: 58px;
}
.rightStateButton {
height: 30px;
width: 78px;
color: #d7523b;
border: #d7523b 1px solid;
border-radius: 30px;
background-color: white;
// margin-top: 58px;
margin-left: 10px;
font-size: 12px;
bottom: 10px;
// position: absolute;
}
.cardListText {
line-height: 34px;
font-weight: 600;
font-size: 14px;
height: 100%;
width: 100%;
}
.cardConetent {
// height: 22.5vh;
width: 100%;
// padding: 0px 20px;
display: flex;
}
.textList {
// height: 90%;
// width: 68%;
color: #9d9d9d;
padding-top: 14px;
font-size: 12px;
padding-left: 20px;
}
.textList > p {
display: flex;
margin-bottom: 11px;
line-height: 20px;
}
.textList > p > span:nth-of-type(1) {
display: block;
// float:left;
width: 50px;
white-space: nowrap;
// background-color: blueviolet;
}
.textList > p > span:nth-of-type(2) {
// width: 5vh;
// background-color: rgb(65, 214, 77);
margin-left: 28px;
width: 164px;
// background-color: chartreuse;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
// .active {
// color: #f22220;
// }
.topbackground1 {
background: linear-gradient(to right, #435898, #6581c6);
height: 34px;
width: 100%;
color: white;
display: flex;
align-items: center;
}
.topbackground2 {
background: linear-gradient(to right, #fcfcfc, #e8e5e6);
height: 34px;
width: 100%;
color: #323232;
display: flex;
align-items: center;
}
.state-content {
padding: 14px;
}
.state-content p {
margin-top: 8px;
margin-bottom: 6px;
font-weight: 700;
font-size: 14px;
}
.bottom-area {
display: flex;
justify-content: center;
margin-top: 20px;
margin-bottom: 20px;
/deep/.m-btn-left {
width: 40%;
border-color: transparent;
border-top-left-radius: 30px;
border-bottom-left-radius: 30px;
border: 1px solid #bd5653;
border-right: 0;
color: #f1372d;
}
/deep/.m-btn-right {
width: 40%;
border-color: transparent;
border-top-right-radius: 30px;
border-bottom-right-radius: 30px;
background-color: #ff3a3f;
border: 1px solid #bd5653;
border-left: 0;
color: #ffffff;
}
}
.buttonChangebe {
border: 0;
height: 38px;
width: 78px;
border-radius: 20px;
margin: 5px;
background-color: #f8f8fa;
color: #757477;
}
.buttonChangeaf {
border: 1px solid #d28b86;
height: 38px;
width: 78px;
border-radius: 20px;
margin: 5px;
background-color: #fbe7e4;
color: #be5759;
}
.policyNo {
line-height: 14px;
font-size: 14px;
font-weight: 600;
// margin-bottom: 16px;
margin-top: 6px;
color: #535353;
}
.underwriteDateClass {
width: 96%;
height: 30px;
background-color: #f8f8fa;
border-radius: 30px;
position: relative;
}
.underwriteDateSpan {
line-height: 30px;
margin-left: 10px;
}
.underwriteDateImg {
height: 20px;
// align-items: center;
// right: 10px;
margin-top: 10px;
// top: 7px;
}
.chooseMessage {
display: flex;
flex-wrap: wrap;
}
// /deep/ .van-icon-clear {
// margin-right: 46px;
// // background-color:blue ;
// }
</style>

View File

@@ -0,0 +1,174 @@
<template>
<div class="public_container">
<!-- 上方小图标 -->
<div class="topTitle">
<div v-if="changestate == 0">
<van-icon name="underway-o" color="#EA070A" size="30" />
<p class="topTitleText">续期待扣款</p>
</div>
<div v-if="changestate == 1">
<van-icon name="passed" color="#2451C1" size="30" />
<p class="topTitleText">续期扣款成功</p>
</div>
<div v-if="changestate == 3">
<van-icon name="underway-o" color="#EA070A" size="30" />
<p class="topTitleText">续期扣款中</p>
</div>
<div v-if="changestate == 2">
<van-icon name="close" color="#EA070A" size="30" />
<p class="topTitleText">续期扣款失败</p>
</div>
<div v-if="changestate == 4">
<p><img src="../../assets/YB_APP/images/changestate.png" height="36px" /></p>
<!-- <van-icon name="stop-circle-o" size="30"/> -->
<p class="topTitleText">已终止</p>
</div>
</div>
<!-- 中间内容 -->
<div class="listContent">
<van-cell-group inset>
<van-cell title="保单号" :value="ybOrderDTOList.contNo" />
<van-cell title="险种名称" :value="ybOrderDTOList.riskName" />
<van-cell title="首期保费/元" :value="ybOrderDTOList.money" />
<van-cell title="保额/元" :value="ybOrderDTOList.amnt" />
<van-cell title="投保人" :value="ybOrderDTOList.appntName" />
<van-cell title="被保险人" :value="ybOrderDTOList.insuredName" />
<van-cell title="转账银行" :value="ybOrderDTOList.bankCode" />
<van-cell title="转账帐号" :value="ybOrderDTOList.bankAccNo" />
<van-cell title="交费次数" :value="ybOrderDTOList.payTimes" />
<van-cell title="扣款失败原因" :value="ybOrderDTOList.defaultReson" v-if="changestate == 2" />
<van-cell title="应交日" :value="ybOrderDTOList.payToDate" />
<van-cell title="归属网点" :value="ybOrderDTOList.netWorkName" />
<van-cell title="归属地市" :value="ybOrderDTOList.city" />
<van-cell title="保单生效日" :value="ybOrderDTOList.cvalidate" />
<van-cell title="归属指标" :value="ybOrderDTOList.rnewIndex" />
</van-cell-group>
</div>
<!-- 下方拨打电话 -->
<div class="bottomPhone">
<button class="bottomPhoneBut" @click="showDialog(ybOrderDTOList.appntPhone)">拨打电话</button>
</div>
<van-dialog
v-model="show"
title="确认拨打电话"
:message="`(${ybOrderDTOList.appntPhone})`"
show-cancel-button
@cancel="cancel"
@confirm="contact(ybOrderDTOList.appntPhone)"
>
</van-dialog>
</div>
</template>
<script>
import { getYBRenewalInfo } from '@/api/YB_APP/index'
import warterMark from '@/assets/js/utils/warterMark.js'
import { getAgentInfo } from '@/api/ebiz/my/my.js'
export default {
name: 'policyDetail',
components: {},
data() {
return {
ybOrderDTOList: {},
policyNo: {},
changestate: '',
show: false
}
},
mounted() {
this.policyNo.contNo = this.$route.query.contNo
this.policyNo.payFlag = this.$route.query.payFlag
this.policyNo.payToDate = this.$route.query.payToDate
// console.log(this.policyNo, 'avc')
console.log(this.$route.query, '我是router里参数')
console.log(this.policyNo, 'avc111111111111')
this.getYBRenewalInfo()
this.changestate = this.policyNo.payFlag
this.getAgentInfo()
},
methods: {
// 水印
getAgentInfo() {
getAgentInfo({}).then((res) => {
if (res.result == 0) {
console.log('123')
warterMark.set(res.name + res.jobNo, '')
}
})
},
cancel() {
this.show = false
},
showDialog() {
this.show = true // 显示确认对话框
},
contact() {
const a = document.createElement('a')
a.href = `tel:'${this.ybOrderDTOList.appntPhone}'`
a.click()
this.show = false
},
callPhone(phoneNumber) {
window.location.href = 'tel://' + phoneNumber
},
getYBRenewalInfo() {
// let params = {
// policyNo
// }
console.log(this.policyNo, '我是this.policyNo')
getYBRenewalInfo(this.policyNo).then((res) => {
console.log(res, '我是res')
if (res.result == 0) {
this.ybOrderDTOList = res.content
console.log(this.ybOrderDTOList, '请求成功的res')
}
})
}
}
}
</script>
<style lang="scss" scoped>
.public_container {
font-size: 12px;
height: 100vh;
width: 100vw;
}
/deep/ .van-cell__title {
color: #0a0808;
max-width: 30%;
}
/deep/ .van-cell__value {
color: #777676;
// text-align: left;
}
// /deep/ .van-cell-group >
.topTitle {
text-align: center;
margin: 22px;
}
.topTitleText {
font-weight: 700;
margin-top: 4px;
font-size: 14px;
}
.listContent {
width: 96%;
background-color: white;
margin: 12px auto;
overflow: hidden;
border-radius: 12px;
}
.bottomPhone {
text-align: center;
margin-top: 30px;
}
.bottomPhoneBut {
padding: 8px 40px;
background-color: #fd3841;
color: #ffffff;
border: 0;
border-radius: 24px;
font-size: 14px;
}
</style>

View File

@@ -0,0 +1,449 @@
<template>
<div class="public_container">
<!-- 最上方的搜索框 -->
<div style="position: relative">
<van-search shape="round" v-model="findValue" placeholder="请输入保单号/客户身份证号/客户姓名" />
<button class="searchButton" @click="keywordSearch(findValue)">搜索</button>
</div>
<!-- 标签选择 -->
<div>
<van-tabs
v-model="active"
sticky
color="#2551CA"
line-width="20px"
line-height="5px"
title-active-color="#000000"
title-inactive-color="#6A6A6A"
title-active-font-width="14px"
>
<van-tab title="应收未收"></van-tab>
<van-tab title="已交费"></van-tab>
<van-tab title="扣费失败"></van-tab>
<van-tab title="终止"></van-tab>
</van-tabs>
</div>
<!-- 内容 -->
<div>
<!-- 应交月选择 -->
<div class="beMonth">
<p class="beMonthLeft">应交月 <span class="beMonthLeftSpan">(查询范围: 当前月份前期前溯3月~后推1月)</span></p>
<p class="beMonthRight" @click="clickCalendar">
<span class="beMonthRightSpan">{{ calendarValue }}</span
>
</p>
</div>
<!-- 无内容显示的背景 -->
<div v-if="policyListDTOList == ''" style="position: relative">
<img class="noContentImg" src="../../assets/YB_APP/images/noguarantee.png" />
<p class="noContentText">暂无保单</p>
</div>
<!-- 卡片列表 -->
<div v-if="policyListDTOList != ''">
<!-- <van-list v-model="loading" :finished="finished" :finished-text="noContentTip" @load="onLoad"> -->
<div :class="[active == 3 ? 'cardList2' : 'cardList']" v-for="(item, index) in policyListDTOList" :key="index">
<div class="topbackground1">
<img class="cardListImg" src="../../assets/YB_APP/images/sign1.png" />
<span class="cardListText">{{ item.riskName }}</span>
</div>
<div class="cardConetent">
<div class="textList">
<p>
<span>保单号</span><span>{{ item.contNo }}</span>
</p>
<p>
<span>被保人</span><span>{{ item.insuredName }}</span>
</p>
<p>
<span>被保险人</span><span>{{ item.appntName }}</span>
</p>
<p v-if="active == 3">
<span>转账银行</span><span>{{ item.bankName }}</span>
</p>
<p v-if="active == 3">
<span>转账帐号</span><span>{{ item.accNo }}</span>
</p>
<p>
<span>应交日</span><span>{{ item.payToDate }}</span>
</p>
<p v-if="active != 3">
<span>归属指标</span><span>{{ item.rnewIndex }}</span>
</p>
<p v-if="active == 3">
<span>所属渠道</span><span>{{ item.policySource }}</span>
</p>
<p>
<span v-if="active == 3">终止原因</span><span>{{ item.terminateReason }}</span>
</p>
<p>
<span>金额/</span><span class="redword">{{ item.money }}</span>
</p>
<p>
<span>保单状态</span><span>{{ item.state }}</span>
</p>
</div>
<div class="rightState">
<button :class="[active == 3 ? 'rightStateButton2' : 'rightStateButton']" @click="goPolicyDetail(item)">查看详情</button>
</div>
</div>
</div>
<!-- </van-list> -->
</div>
</div>
<van-popup v-model="calendarShow" position="bottom">
<van-datetime-picker
v-model="currentDate"
type="year-month"
title="选择日期"
:min-date="minDate"
:max-date="maxDate"
@cancel="handleCurrentDateCancel"
@confirm="handleCurrentDateConfirm"
/>
</van-popup>
</div>
</template>
<script>
import { Button, Search } from 'vant'
import { ref } from 'vue'
import { getYBRenewalsList } from '@/api/YB_APP/index'
import utils from '@/assets/js/utils/date-utils'
import warterMark from '@/assets/js/utils/warterMark.js'
import { getAgentInfo } from '@/api/ebiz/my/my.js'
export default {
name: 'renewalList',
components: {
[Button.name]: Button,
[Search.name]: Search
},
setup() {
const value = ref('')
return { value }
},
data() {
return {
findValue: '', // 上面搜索框的value
active: '', // 四个选项卡的v-model
policyListDTOList: [], // 卡片列表内容
calendarValue: '',
calendarShow: false,
currentDate: new Date(),
minDate: '',
maxDate: '',
params: {
payDate: '', // 必传扣款日
// contNo: '', // 保单号
// idNo: '', // 身份证号
// payToDate: '', // 时间
state: '', // 状态
otherNo: '' // 搜索条件
// userModel: {
// id: 'Y0000001'
// }
}
}
},
created() {},
mounted() {
this.$toast.loading({
duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击
loadingType: 'spinner',
message: '加载中……'
})
let aaa = new Date().getMonth() + 1
let bbb = aaa - 3
let ccc = aaa + 1
this.minDate = new Date(2023, bbb, 0)
this.maxDate = new Date(2023, ccc, 0)
console.log(this.minDate, 1111)
let yearNum = new Date().getFullYear()
let monthNum = new Date().getMonth() + 1
if (monthNum < 10) {
monthNum = '0' + monthNum
}
this.calendarValue = yearNum + '-' + monthNum
this.getYBRenewalsList()
this.getAgentInfo()
},
methods: {
// 水印
getAgentInfo() {
getAgentInfo({}).then((res) => {
if (res.result == 0) {
console.log('123')
warterMark.set(res.name + res.jobNo, '')
}
})
},
// 上方关键词搜索按钮
keywordSearch(value) {
console.log('点击搜索了')
this.params.otherNo = value
this.getYBRenewalsList()
},
getYBRenewalsList() {
let that = this
getYBRenewalsList(that.params).then((res) => {
console.log(res, '我是res')
if (res.result == 0) {
that.policyListDTOList = res.content.list
console.log(res.content.list, 'data里的policyListDTOList')
} else {
that.policyListDTOList = ''
}
})
},
// (查看详情)按钮跳转
goPolicyDetail(data) {
console.log(data, '我是date')
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/YB_APP/renewalDetail?contNo=' + data.contNo + '&payFlag=' + data.payFlag + '&payToDate=' + data.payToDate
},
routerInfo: {
path: `/YB_APP/renewalDetail?contNo=${data.contNo}&payFlag=${data.payFlag}+&payToDate=${data.payToDate}`
}
})
},
clickCalendar() {
this.calendarShow = true
},
handleCurrentDateCancel() {
this.calendarShow = false
},
handleCurrentDateConfirm(e) {
this.calendarShow = false
// let titleTime = utils.formatDate(e, 'yyyy-MM')
// this.calendarValue = utils.formatDate(e, 'MM-dd')
let yearNum = utils.formatDate(e, 'yyyy')
let monthNum = utils.formatDate(e, 'MM')
this.calendarValue = yearNum + '-' + monthNum
// this.getYBRenewalsList()
}
},
watch: {
active: {
deep: true,
handler(newvalue) {
this.params.state = newvalue
this.getYBRenewalsList()
}
},
calendarValue: {
deep: true,
handler(newvalue) {
this.params.payDate = newvalue
this.getYBRenewalsList()
}
}
}
}
</script>
<style lang="scss" scoped>
.public_container {
font-size: 12px;
height: 100vh;
width: 100vw;
}
/deep/ .van-hairline--top-bottom::after {
border: 0px;
}
/deep/ .van-tab--active {
font-weight: 800;
font-size: 15px;
}
.searchButton {
position: absolute;
top: 2.67vw;
right: 3.2vw;
background-color: #2154cc;
color: #ffffff;
border-radius: 18px;
// padding: 8px 15px;
font-size: 12px;
border: 0px;
height: 34px;
width: 56px;
}
.beMonth {
width: 94%;
margin: 0 auto;
display: flex;
justify-content: space-between;
height: 50px;
line-height: 50px;
}
/deep/ .van-icon-clear {
margin-right: 46px;
// background-color:blue ;
}
.beMonthLeft {
font-size: 14px;
color: #323232;
font-weight: 600;
}
.beMonthLeftSpan {
font-weight: 500;
font-size: 12px;
color: #929292;
}
.beMonthRight {
background-color: #ffffff;
height: 24px;
padding: 2px 5px;
margin-top: 12px;
line-height: 24px;
white-space: nowrap;
}
.beMonthRightSpan {
margin-right: 5px;
}
.noContentImg {
height: 216px;
// width: 285px;
position: absolute;
top: 66px;
left: calc(50% - 142px);
}
.noContentText {
font-size: 12px;
position: absolute;
top: 225px;
left: calc(50% - 24px);
color: #b3b5ca;
}
.cardList {
// height: 244px;
// height: 300px;
width: 96%;
border-radius: 12px;
background-color: white;
margin: 0 auto;
overflow: hidden;
margin-bottom: 12px;
}
.cardList2 {
// height: 244px;
// height: 300px;
width: 96%;
border-radius: 12px;
background-color: white;
margin: 0 auto;
overflow: hidden;
margin-bottom: 12px;
}
.cardListImg {
height: 16px;
// width: 14px;
margin: 0 7px;
/*position: absolute;*/
}
.rightState {
// height: 100%;
// width: 32%;
// background-color: white;
display: flex;
}
.rightStateImg {
height: 100px;
width: 100px;
}
.rightStateButton {
height: 30px;
width: 78px;
color: #d7523b;
border: #d7523b 1px solid;
border-radius: 30px;
background-color: white;
margin-bottom: 14px;
// margin-top: 113px;
margin-left: 4px;
font-size: 12px;
align-self: flex-end;
}
.rightStateButton2 {
height: 30px;
width: 78px;
color: #d7523b;
border: #d7523b 1px solid;
border-radius: 30px;
background-color: white;
// margin-top: 57px;
margin-bottom: 14px;
margin-left: 4px;
font-size: 12px;
align-self: flex-end;
}
.cardListText {
line-height: 34px;
font-weight: 600;
font-size: 14px;
height: 100%;
width: 100%;
}
.cardConetent {
// height: 22.5vh;
width: 100%;
padding: 0px 20px;
display: flex;
}
.textList {
height: 90%;
width: 68%;
color: #9d9d9d;
padding-top: 16px;
font-size: 12px;
}
.textList > p {
display: flex;
margin-bottom: 11px;
}
.textList > p > span:nth-of-type(1) {
display: block;
// float:left;
width: 50px;
overflow: hidden;
white-space: nowrap;
// background-color: blueviolet;
color: #373737;
}
.textList > p > span:nth-of-type(2) {
// width: 5vh;
// background-color: rgb(65, 214, 77);
margin-left: 28px;
width: 164px;
// background-color: chartreuse;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
// .active {
// color: #f22220;
// }
.topbackground1 {
background: linear-gradient(to right, #435898, #6581c6);
height: 34px;
width: 100%;
color: white;
display: flex;
align-items: center;
}
// .topbackground2 {
// background: linear-gradient(to right, #fcfcfc, #e8e5e6);
// height: 34px;
// width: 100%;
// color: #323232;
// display: flex;
// align-items: center;
// }
.redword {
color: #e72611;
font-weight: 700;
font-size: 14px;
}
</style>

View File

@@ -0,0 +1,98 @@
<template>
<div class="public_container">
<!-- 中间内容 -->
<div class="listContent">
<van-cell-group inset>
<van-cell title="保单号" :value="ybOrderDTOList.contNo" />
<van-cell title="保全项目" :value="ybOrderDTOList.edorName" />
<van-cell title="投保人" :value="ybOrderDTOList.appntName" />
<van-cell title="网点名称" :value="ybOrderDTOList.networdName" />
<van-cell title="险种名称" :value="ybOrderDTOList.riskName" />
<van-cell title="首期规模保费/元" :value="ybOrderDTOList.prem" />
<van-cell title="保单累计已交保费/元" :value="ybOrderDTOList.sumPrem" />
<van-cell title="承保日期" :value="ybOrderDTOList.signDate" />
<van-cell title="保全申请日期" :value="ybOrderDTOList.edorAppDate" />
<van-cell title="保全生效日期" :value="ybOrderDTOList.edorValiDate" />
<van-cell title="保单状态" :value="ybOrderDTOList.contState" />
<van-cell title="申请渠道" :value="ybOrderDTOList.appChannel" />
<van-cell title="办理类型" :value="ybOrderDTOList.appType" />
<van-cell title="代办顾问姓名" :value="ybOrderDTOList.agencyName" />
<van-cell title="代办顾问工号" :value="ybOrderDTOList.agencyCode" />
<van-cell title="保全进度" :value="ybOrderDTOList.edorState" />
<van-cell title="交易状态" :value="ybOrderDTOList.transState" />
<van-cell title="交易账户银行" :value="ybOrderDTOList.transBank" />
<van-cell title="交易账户" :value="ybOrderDTOList.transCardNo" />
<van-cell title="交易金额/元" :value="ybOrderDTOList.transMoney" />
</van-cell-group>
</div>
</div>
</template>
<script>
import { ybSaveAllDetail } from '@/api/YB_APP/index'
import warterMark from "@/assets/js/utils/warterMark.js"
import { getAgentInfo } from '@/api/ebiz/my/my.js'
export default {
name: 'policyDetail',
components: {},
data() {
return {
ybOrderDTOList: '',
policyNo: ''
}
},
mounted() {
this.policyNo = this.$route.query.policyNo
console.log(this.policyNo, 'avc')
this.ybSaveAllDetail()
this.getAgentInfo()
},
methods: {
// 水印
getAgentInfo(){
getAgentInfo({}).then(res=>{
if(res.result == 0){
console.log('123')
warterMark.set(res.name+res.jobNo,"")
}
})
},
ybSaveAllDetail() {
let params = {
edorAcceptNo: this.policyNo
}
console.log('我是log')
ybSaveAllDetail(params).then((res) => {
console.log(res, '我是res')
if (res.result == 0) {
this.ybOrderDTOList = res.content
console.log(this.ybOrderDTOList, '请求成功的res')
}
})
}
}
}
</script>
<style lang="scss" scoped>
.public_container {
font-size: 12px;
height: 100vh;
width: 100vw;
}
/deep/ .van-cell__title {
color: #0a0808;
max-width: 40%;
}
/deep/ .van-cell__value {
color: #777676;
// text-align: left;
}
// /deep/ .van-cell-group >
.listContent {
width: 96%;
background-color: white;
margin: 12px auto;
overflow: hidden;
border-radius: 12px;
}
</style>

View File

@@ -0,0 +1,93 @@
<template>
<div class="public_container">
<!-- 中间内容 -->
<div class="listContent">
<van-cell-group inset>
<van-cell title="保单号" :value="ybOrderDTOList.contNo" />
<van-cell title="投保人" :value="ybOrderDTOList.appntName" />
<van-cell title="投保人身份证号" :value="ybOrderDTOList.appntIdNo" />
<van-cell title="投保人年龄/周岁" :value="ybOrderDTOList.appntAge" />
<van-cell title="网点名称" :value="ybOrderDTOList.networkName" />
<van-cell title="险种名称" :value="ybOrderDTOList.riskName" />
<van-cell title="首期规模保费/元" :value="ybOrderDTOList.prem" />
<van-cell title="交费期间" :value="ybOrderDTOList.payEndYear" />
<van-cell title="保险期间" :value="ybOrderDTOList.insuYear" />
<van-cell title="保全状态" :value="ybOrderDTOList.contState" />
<van-cell title="承保日期" :value="ybOrderDTOList.signDate" />
<van-cell title="保单现金价值/元" :value="ybOrderDTOList.cashValue" />
<van-cell title="累计账户红利余额/元 (含本期)" :value="ybOrderDTOList.bonusMoney" />
<van-cell title="累计账户生存金余额/元 (含本期)" :value="ybOrderDTOList.survivalMoney" />
<van-cell title="满期生存金/元" :value="ybOrderDTOList.getMoney" />
</van-cell-group>
</div>
</div>
</template>
<script>
import { ybSaveManyDetail } from '@/api/YB_APP/index'
import warterMark from "@/assets/js/utils/warterMark.js"
import { getAgentInfo } from '@/api/ebiz/my/my.js'
export default {
name: 'policyDetail',
components: {},
data() {
return {
ybOrderDTOList: '',
policyNo: ''
}
},
mounted() {
this.policyNo = this.$route.query.policyNo
console.log(this.policyNo, 'avc')
this.ybSaveManyDetail()
this.getAgentInfo()
},
methods: {
// 水印
getAgentInfo(){
getAgentInfo({}).then(res=>{
if(res.result == 0){
console.log('123')
warterMark.set(res.name+res.jobNo,"")
}
})
},
ybSaveManyDetail() {
let params = {
contNo: this.policyNo
}
console.log('我是log')
ybSaveManyDetail(params).then((res) => {
console.log(res, '我是res')
if (res.result == 0) {
this.ybOrderDTOList = res.content
console.log(this.ybOrderDTOList, '请求成功的res')
}
})
}
}
}
</script>
<style lang="scss" scoped>
.public_container {
font-size: 12px;
height: 100vh;
width: 100vw;
}
/deep/ .van-cell__title {
color: #0a0808;
max-width: 50%;
}
/deep/ .van-cell__value {
color: #777676;
// text-align: left;
}
// /deep/ .van-cell-group >
.listContent {
width: 96%;
background-color: white;
margin: 12px auto;
overflow: hidden;
border-radius: 12px;
}
</style>

View File

@@ -0,0 +1,403 @@
<template>
<div class="public_container">
<!-- 最上方的搜索框 -->
<div style="position: relative">
<van-search shape="round" v-model="findValue" placeholder="请输入保单号/客户身份证号" />
<button class="searchButton" @click="keywordSearch(findValue)">搜索</button>
</div>
<!-- 标签选择 -->
<div>
<van-tabs
v-model="active"
color="#2551CA"
line-width="20px"
line-height="5px"
title-active-color="#000000"
title-inactive-color="#6A6A6A"
title-active-font-width="14px"
>
<!-- 保全申请进度第一个标签内容 -->
<van-tab title="保全申请进度">
<!-- 温馨提示 -->
<div>
<p class="warmTip">
<img class="warmImg" src="../../assets/YB_APP/images/plaint.png" /><span>温馨提示: 支持保单号或投保人身份证号查询保全申请进度</span>
</p>
</div>
<!-- 无内容显示的背景 -->
<div v-if="policyListDTOList == ''" style="position: relative">
<img class="noContentImg" src="../../assets/YB_APP/images/noguarantee.png" />
<p class="noContentText">暂无保单</p>
</div>
<!-- 卡片列表 -->
<div v-if="policyListDTOList != ''">
<!-- <van-list v-model="loading" :finished="finished" :finished-text="noContentTip" @load="onLoad"> -->
<div class="cardList" v-for="(item, index) in policyListDTOList" :key="index">
<div class="topbackground1">
<img class="cardListImg" src="../../assets/YB_APP/images/sign1.png" />
<span class="cardListText">{{ item.riskName }}</span>
</div>
<div class="cardConetent">
<div class="textList">
<p>
<span>保单号</span><span>{{ item.contNo }}</span>
</p>
<p>
<span>保全项目</span><span>{{ item.edorName }}</span>
</p>
<p>
<span>投保人</span><span>{{ item.appntName }}</span>
</p>
<p>
<span>网点名称</span><span>{{ item.networkName }}</span>
</p>
<p>
<span>申请日期</span><span>{{ item.edorAppDate }}</span>
</p>
<p>
<span>保全状态</span><span>{{ item.edorState }}</span>
</p>
</div>
<div class="rightState">
<button class="rightStateButton" @click="goPolicyDetail(item.edorAcceptNo)">查看详情</button>
</div>
</div>
</div>
<!-- </van-list> -->
</div>
</van-tab>
<!-- 现金价值第二个标签内容 -->
<van-tab title="现金价值"
><div>
<p class="warmTip">
<img class="warmImg" src="../../assets/YB_APP/images/plaint.png" /><span>温馨提示: 支持保单号或投保人身份证号查询保全申请进度</span>
</p>
</div>
<!-- 无内容显示的背景 -->
<div v-if="policyListDTOListTwo == ''" style="position: relative">
<img class="noContentImg" src="../../assets/YB_APP/images/noguarantee.png" />
<p class="noContentText">暂无保单</p>
</div>
<!-- 卡片列表 -->
<div v-if="policyListDTOListTwo != ''">
<!-- <van-list v-model="loading" :finished="finished" :finished-text="noContentTip2" @load="onLoad"> -->
<div class="cardList" v-for="(item, index) in policyListDTOListTwo" :key="index">
<div class="topbackground1">
<img class="cardListImg" src="../../assets/YB_APP/images/sign1.png" />
<span class="cardListText">{{ item.riskName }}</span>
</div>
<div class="cardConetent">
<div class="textList">
<p>
<span>保单号</span><span>{{ item.contNo }}</span>
</p>
<p>
<span>投保人</span><span>{{ item.appntName }}</span>
</p>
<p>
<span>承保日期</span><span>{{ item.signDate }}</span>
</p>
</div>
<div class="rightState">
<button class="rightStateButton2" @click="goPolicyDetail2(item.contNo)">查看详情</button>
</div>
</div>
</div>
<!-- </van-list> -->
</div></van-tab
>
</van-tabs>
</div>
<!-- 内容 -->
<div></div>
</div>
</template>
<script>
import { Button, Search } from 'vant'
import { ref } from 'vue'
import { getSaveAllList, ybSaveManyList } from '@/api/YB_APP/index'
import warterMark from '@/assets/js/utils/warterMark.js'
import { getAgentInfo } from '@/api/ebiz/my/my.js'
export default {
name: 'renewalList',
components: {
[Button.name]: Button,
[Search.name]: Search
},
data() {
return {
findValue: '', // 上面搜索框的value
active: '', // 两个选项卡的v-model
policyListDTOList: [], // 保全申请进度卡片列表内容
policyListDTOListTwo: [], // 现金价值卡片列表内容
params: {
otherNo: '' // 搜索按钮入参
}
}
},
created() {},
mounted() {
// this.getSaveAllList()
// this.ybSaveManyList()
console.log(this.active, '我是active')
this.getAgentInfo()
},
methods: {
// 水印
getAgentInfo() {
getAgentInfo({}).then((res) => {
if (res.result == 0) {
console.log('123')
warterMark.set(res.name + res.jobNo, '')
}
})
},
getSaveAllList() {
let that = this
console.log('我是log123第一个接口的')
// 保全申请列表
getSaveAllList(that.params).then((res) => {
console.log(res, '我是res')
if (res.result == 0) {
that.policyListDTOList = res.content
that.policyListDTOListTwo = ''
console.log(this.policyListDTOList, 'data里的policyListDTOList')
} else {
that.policyListDTOList = ''
that.policyListDTOListTwo = ''
}
})
},
ybSaveManyList() {
let that = this
console.log('我是log123第二个接口的')
// 现金价值
ybSaveManyList(that.params).then((res) => {
console.log(res, '我是res')
if (res.result == 0) {
that.policyListDTOListTwo = res.content
that.policyListDTOList = ''
console.log(this.policyListDTOListTwo, 'data里的policyListDTOListTwo')
} else {
that.policyListDTOListTwo = ''
that.policyListDTOList = ''
}
})
},
// 上方关键词搜索按钮
keywordSearch(value) {
console.log('点击搜索了')
// this.params.idNo = value
this.params.otherNo = value
if (this.active == 0) {
this.getSaveAllList()
} else if (this.active == 1) {
this.ybSaveManyList()
}
},
// (查看详情)按钮跳转
goPolicyDetail(data) {
console.log(data)
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/YB_APP/saveallDetail?policyNo=' + data
},
routerInfo: {
path: '/YB_APP/saveallDetail?policyNo=' + data
}
})
},
goPolicyDetail2(data) {
console.log(data)
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/YB_APP/saveallDetailTwo?policyNo=' + data
},
routerInfo: {
path: '/YB_APP/saveallDetailTwo?policyNo=' + data
}
})
}
}
}
</script>
<style lang="scss" scoped>
.public_container {
font-size: 12px;
height: 100vh;
width: 100vw;
}
/deep/ .van-hairline--top-bottom::after {
border: 0px;
}
/deep/ .van-tab--active {
font-weight: 800;
font-size: 15px;
}
/deep/ .van-icon-clear {
margin-right: 46px;
// background-color:blue ;
}
.searchButton {
position: absolute;
top: 2.67vw;
right: 3.2vw;
background-color: #2154cc;
color: #ffffff;
border-radius: 18px;
// padding: 8px 15px;
font-size: 12px;
border: 0px;
height: 34px;
width: 56px;
}
.noContentImg {
height: 216px;
// width: 285px;
position: absolute;
top: 44px;
left: calc(50% - 142px);
}
.noContentText {
font-size: 12px;
position: absolute;
top: 203px;
left: calc(50% - 24px);
color: #b3b5ca;
}
.cardList {
// height: 244px;
// height: 226px;
width: 96%;
border-radius: 12px;
background-color: white;
margin: 0 auto;
overflow: hidden;
margin-bottom: 12px;
}
// .cardList2 {
// height: 136px;
// width: 96%;
// border-radius: 12px;
// background-color: white;
// margin: 0 auto;
// overflow: hidden;
// margin-bottom: 12px;
// }
.cardListImg {
height: 16px;
// width: 14px;
margin: 0 7px;
/*position: absolute;*/
}
.rightState {
display: flex;
// height: 100%;
// width: 32%;
// background-color: rgb(236, 9, 9);
}
.rightStateImg {
height: 100px;
width: 100px;
}
.rightStateButton {
height: 30px;
width: 78px;
color: #d7523b;
border: #d7523b 1px solid;
border-radius: 30px;
background-color: white;
margin-bottom: 14px;
margin-left: 4px;
font-size: 12px;
align-self: flex-end;
}
.rightStateButton2 {
height: 30px;
width: 78px;
color: #d7523b;
border: #d7523b 1px solid;
border-radius: 30px;
background-color: white;
margin-bottom: 14px;
margin-left: 4px;
font-size: 12px;
align-self: flex-end;
}
.cardListText {
line-height: 34px;
font-weight: 600;
font-size: 14px;
height: 100%;
width: 100%;
}
.cardConetent {
// height: 22.5vh;
width: 100%;
// padding: 0px 20px;
display: flex;
}
.textList {
// height: 90%;
// width: 68%;
padding-left: 20px;
color: #9d9d9d;
padding-top: 16px;
font-size: 12px;
}
.textList > p {
display: flex;
margin-bottom: 11px;
line-height: 20px;
}
.textList > p > span:nth-of-type(1) {
display: block;
// float:left;
width: 50px;
overflow: hidden;
white-space: nowrap;
// background-color: blueviolet;
color: #3e3c3d;
}
.textList > p > span:nth-of-type(2) {
// width: 5vh;
// background-color: rgb(65, 214, 77);
margin-left: 28px;
width: 164px;
// background-color: chartreuse;
// overflow: hidden;
// white-space: nowrap;
// text-overflow: ellipsis;
}
.topbackground1 {
background: linear-gradient(to right, #435898, #6581c6);
height: 34px;
width: 100%;
color: white;
display: flex;
align-items: center;
}
.warmTip {
white-space: nowrap;
padding: 5px 0;
height: 28px;
background-color: #fff8ed;
color: #c88b40;
border: 1px solid #f8e7d7;
margin: 10px;
border-radius: 8px;
text-align: center;
line-height: 28px;
}
.warmImg {
height: 14px;
vertical-align: middle;
margin-right: 6px;
margin-bottom: 2px;
}
</style>

View File

@@ -0,0 +1,208 @@
<template>
<div class="public_container" style="position: relative;">
<p class="messageIcon_con" @click="messageJump">
<img class="messageIcon_con_img" v-if="!messages" src="@/assets/YB_APP/images/3.png">
<img class="messageIcon_con_img" v-if="messages" src="@/assets/YB_APP/images/4.png">
</p>
<div class="head">
<span>服务</span>
</div>
<div class="menu1">
<p class="menu1_p">
<img class="menu1_p_img" src="@/assets/YB_APP/images/15.png">
<span class="menu1_p_span">投保相关</span>
</p>
<div class="menu1_div">
<div v-for="(item, ind) in menu1" :key="ind" @click="pageJump(item)" class="menu1_div_div">
<div>
<img class="menu1_div_div_img" :src="item.img">
</div>
<p class="menu1_div_p">{{ item.title }}</p>
</div>
</div>
</div>
<div class="menu2">
<p class="menu2_p">
<img class="menu2_p_img" src="@/assets/YB_APP/images/16.png">
<span class="menu2_p_span">活动管理</span>
</p>
<div class="menu2_div">
<div v-for="(item, ind) in menu2" :key="ind" @click="pageJump(item)" class="menu2_div_div">
<div>
<img class="menu2_div_div_img" :src="item.img">
</div>
<p class="menu2_div_p">{{ item.title }}</p>
</div>
</div>
</div>
<div class="menu3">
<p class="menu3_p">
<img class="menu3_p_img" src="@/assets/YB_APP/images/21.png">
<span class="menu3_p_span">扩展服务</span>
</p>
<div class="menu3_div">
<div v-for="(item, ind) in menu3" :key="ind" @click="pageJump(item)" class="menu3_div_div">
<div>
<img class="menu3_div_div_img" :src="item.img">
</div>
<p class="menu3_div_p">{{ item.title }}</p>
</div>
</div>
</div>
</div>
</template>
<script>
import { Icon } from 'vant'
import { homeConfigYB } from '@/api/YB_APP/index'
export default {
name: 'service',
components: {
[Icon.name]: Icon,
},
data() {
return {
messages:false,
menu1:[],
menu2:[],
menu3:[],
}
},
mounted(){
this.getHomeConfigYB()
window['getMessage'] = (data) => {
this.getMessage(data)
}
},
methods:{
getMessage(data){
if(data){
console.log('111')
this.messages = true
}else{
this.messages = false
}
},
getHomeConfigYB(){
let params = {
}
homeConfigYB(params).then(res=>{
if(res.result == 0){
if(res.content.icon){
res.content.icon.servicePageIcon.forEach(item=>{
if(item.type == 'insure'){
this.menu1.push({
title:item.title,
img:item.img,
route:item.route
})
}
if(item.type == 'activity'){
this.menu2.push({
title:item.title,
img:item.img,
route:item.route
})
}
if(item.type == 'extend'){
this.menu3.push({
title:item.title,
img:item.img,
route:item.route
})
}
})
}
}else{
this.$toast(res.resultMessage)
}
})
},
messageJump(){
this.$jump({
flag: 'message'
})
},
pageJump(data){
this.$jump({
flag: 'h5',
extra: {
url: location.origin + data.route,
},
routerInfo: {
path: data.route,
},
})
},
},
}
</script>
<style lang="scss" scoped>
.public_container{
font-size: 12px;
height: 100vh;
width: 100vw;
background-image: url("../../assets/YB_APP/images/10.png");
background-repeat: no-repeat;
background-size: contain;
}
.messageIcon_con{
position: absolute;top: 50px;right: 15px;
}
.messageIcon_con_img{
width:20px;
}
.head{
color: #fff;font-size: 20px;padding-top: 50px;text-align: center;
}
.menu1,.menu2,.menu3{
margin: 15px;background: #fff;border-radius: 5px;padding: 15px;margin-top: 25px;
}
.menu1_p{
display:flex;align-items: center;margin-bottom: 15px;
}
.menu1_p_img{
width:14px;
}
.menu1_p_span{
font-size: 16px;font-weight: bold;margin-left: 15px;
}
.menu1_div,.menu2_div,.menu3_div{
display:flex;justify-content: flex-sart;align-items: center;
}
.menu1_div_div{
text-align: center;width: 25%;
}
.menu1_div_div_img{
width: 34px;
}
.menu1_div_p,.menu2_div_p,.menu3_div_p{
margin-top:5px;
}
.menu,.menu3{
margin: 15px;background: #fff;border-radius: 5px;padding: 15px;margin-top: 25px;
}
.menu2_p,.menu3_p{
display:flex;align-items: center;margin-bottom: 15px;
}
.menu2_p_img,.menu3_p_img{
width:14px;
}
.menu2_p_span,.menu3_p_span{
font-size: 16px;font-weight: bold;margin-left: 15px;
}
.menu2_div_div,.menu3_div_div{
text-align: center;width: 25%;
}
.menu2_div_div_img,.menu3_div_div_img{
width: 34px;
}
</style>

View File

@@ -21,7 +21,7 @@
/>
</van-list>
<!-- 底部按钮 -->
<div class="bottom-area bottom-btn">
<div class="bottom-area bottom-btn" v-if="branchType != 3">
<van-button class="m-btn fl green" color="#FEEFD8" @click="goProposal">制作建议书</van-button>
<van-button class="m-btn fr" type="danger" @click="goInsure">立即投保</van-button>
</div>
@@ -33,6 +33,7 @@ import { Tab, Tabs, List, Row, Col, Icon, Cell, Sticky } from 'vant'
import { getProductInfo } from '@/api/ebiz/product/product.js'
import { funcPermCheck } from '@/api/ebiz/common/common'
import riskRules from '../common/risk-rules.js'
import { getAgentInfo } from '@/api/ebiz/my/my.js'
export default {
components: {
@@ -52,6 +53,7 @@ export default {
docuList: [], // 产品资料文件
introductImages: [], // 产品特色图片
itemProductDTOS: [], // 产品信息
branchType:'3',
}
},
created() {
@@ -64,7 +66,18 @@ export default {
this.isCheck = res.result
})
},
mounted(){
this.getAgentInfo()
},
methods: {
getAgentInfo(){
getAgentInfo({}).then(res=>{
if(res.result == 0){
console.log('getAgentInfo',res)
this.branchType = res.branchType
}
})
},
goDocu(url, type, name) {
let pdfUrl = encodeURIComponent(url)
this.$jump({

View File

@@ -24,18 +24,32 @@
</div>
<!-- 侧边栏险种选择 -->
<van-popup v-model="showSideBar" position="right" :style="{ width: '70%', height: '100%' }" :overlay-style="{ opacity: 0.3 }">
<div class="product-list-risk-type pt10 pr20 pb10 pl20 fs14 " v-for="(item, index) in risks" :key="index">
<div class="product-list-risk-type pt10 pr20 pb10 pl20 fs14 " v-for="(item, index) in searchList" :key="index" v-if="item.label != '渠道'">
<p class="title fs16 c-gray-dark mt10 mb10">{{ item.label }}</p>
<div class="product-list-risk-container mt10 flex justify-content-s">
<van-tag
:active="isActive[idx]"
class="ml2 mr2 mb10 pt6 pb6 pl10 pr10 fs13"
size="large"
:color="isActive[idx] ? '#E9332E' : '#eaeaea'"
:text-color="isActive[idx] ? '#fff' : '#333'"
:color="ele.isActive? '#E9332E' : '#eaeaea'"
:text-color="ele.isActive ? '#fff' : '#333'"
v-for="(ele, idx) in item.content"
:key="idx"
@click="toggleActive(ele, idx)"
@click="toggleActive(item,ele)"
>{{ ele.name }}</van-tag
>
</div>
</div>
<div class="product-list-risk-type pt10 pr20 pb10 pl20 fs14 " v-for="(item, index) in searchList" :key="index" v-if="branchType == 3 && item.label == '渠道'">
<p class="title fs16 c-gray-dark mt10 mb10">{{ item.label }}</p>
<div class="product-list-risk-container mt10 flex justify-content-s">
<van-tag
class="ml2 mr2 mb10 pt6 pb6 pl10 pr10 fs13"
size="large"
:color="ele.isActive? '#E9332E' : '#eaeaea'"
:text-color="ele.isActive ? '#fff' : '#333'"
v-for="(ele, idx) in item.content"
:key="idx"
@click="toggleActive(item,ele)"
>{{ ele.name }}</van-tag
>
</div>
@@ -51,18 +65,20 @@
<script>
import { Popup, Tag } from 'vant'
import { getCategory, getList } from '@/api/ebiz/product/product.js'
import { getAgentInfo } from '@/api/ebiz/my/my.js'
export default {
data() {
return {
list: [], // 列表项(展示列表)
proList: [], //所有的产品
risks: ['全部', '健康险', '人寿险', '意外险', '年金险'], // 险别
risks: [], // 险别
label: '', // 筛选字段
finished: true, // 是否已加载完成
showSideBar: false, // 侧边弹框的显示与隐藏
isActive: [true, false, false, false, false], // tag标签的选中高亮
risk: '', // 选中的险种
isSuccess: false
branchType:'',
isSuccess: false,
searchList:[],
}
},
created() {
@@ -74,6 +90,7 @@ export default {
}, 500)
},
mounted() {
this.getAgentInfo()
// 筛选按钮的点击事件
window.appCallBack = this.appCallBack
},
@@ -82,6 +99,14 @@ export default {
[Tag.name]: Tag
},
methods: {
getAgentInfo(){
getAgentInfo({}).then(res=>{
if(res.result == 0){
console.log('getAgentInfo',res)
this.branchType = res.branchType
}
})
},
// eslint-disable-next-line no-unused-vars
appCallBack(data, flag) {
// 筛选按钮的点击事件
@@ -117,51 +142,87 @@ export default {
const res = await getCategory({
type: 'app'
})
console.log(res)
if (res.result == 0) {
this.risks = res.categorys
// 写死添加全部
// this.risks[0].content.push({
// name:"全部",
// code:''
// })
// this.label = res.categorys[0].label
this.searchList = res.categorys
this.searchList.forEach(item=>{
item.content.forEach((items,index)=>{
if(index == 0){
items.isActive = true
}else{
items.isActive = false
}
})
})
}
},
reset() {
// 筛选的重置操作
// 全部按钮选中; list全部匹配(点击全部的时候可以通过匹配规则匹配到所有的产品)
this.isActive = [true, false, false, false, false]
this.searchList.forEach(item=>{
item.content.forEach((items,index)=>{
if(index == 0){
items.isActive = true
}else{
items.isActive = false
}
})
})
this.list = this.proList
this.showSideBar = false
},
submit() {
// 筛选的确定操作
this.isActive.some((item, index) => {
if (item) {
// 获取选中的险种
this.risk = this.risks[0].content[index].code
let params = {}
this.searchList.forEach(item=>{
item.content.forEach(item1=>{
if(item1.isActive){
params[item.codeType] = item1.code
}
})
})
let thisList = this.proList
thisList.forEach(item=>{
item.select = true
})
for(let key in params){
if(params[key]){
thisList.forEach(item=>{
if(item[key] != params[key]){
item.select = false
}
})
}
}
this.list = []
thisList.forEach(item=>{
if(item.select){
this.list.push(item)
}
})
this.showSideBar = false
// 根据选中险别对产品列表进行筛选
this.list = this.proList.filter(item => {
if (this.risk == '') {
return item
} else {
return item.categoryCode.indexOf(this.risk) != -1
},
toggleActive(data1, data2) {
// 筛选的点击事件
this.searchList.forEach((item,index)=>{
if(item.codeType == data1.codeType){
item.content.forEach(item1=>{
if(item1.code == data2.code){
this.$nextTick(()=>{
item1.isActive = true
})
}else{
this.$nextTick(()=>{
item1.isActive = false
})
}
})
}
})
},
toggleActive(item, idx) {
// 筛选的点击事件
this.risk = item
// eslint-disable-next-line no-unused-vars
this.isActive = this.isActive.map(ele => {
ele = false
this.$nextTick(()=>{
this.searchList = JSON.parse(JSON.stringify(this.searchList))
})
this.isActive[idx] = true
},
goDetail(productCode) {
// 跳转到产品详情

View File

@@ -33,7 +33,8 @@ module.exports = {
// return options
// })
},
devServer:{
port:8082,
devServer: {
// host:'localhost',
port: 8082
}
}

View File

@@ -788,7 +788,7 @@
"@vant/icons@1.1.13":
version "1.1.13"
resolved "https://registry.yarnpkg.com/@vant/icons/-/icons-1.1.13.tgz#ea77298f4f2b19ccc761005068a2c7436098e4d4"
resolved "https://registry.npmmirror.com/@vant/icons/-/icons-1.1.13.tgz#ea77298f4f2b19ccc761005068a2c7436098e4d4"
integrity sha512-r2EoKDQ4Xh82fo5jVY/m/+LZFfRhHp+ViagySExzlJ7t6JFtmK1OqB6HdFkXXbfEzB/48BvGoPVifFoYzke6KQ==
"@vue/babel-helper-vue-jsx-merge-props@^1.0.0":
@@ -2804,10 +2804,10 @@ crypto-browserify@^3.11.0:
randombytes "^2.0.0"
randomfill "^1.0.3"
crypto-js@^4.0.0:
version "4.0.0"
resolved "https://registry.npm.taobao.org/crypto-js/download/crypto-js-4.0.0.tgz#2904ab2677a9d042856a2ea2ef80de92e4a36dcc"
integrity sha1-KQSrJnep0EKFai6i74DekuSjbcw=
crypto-js@^4.1.1:
version "4.1.1"
resolved "https://registry.npmmirror.com/crypto-js/-/crypto-js-4.1.1.tgz#9e485bcf03521041bd85844786b83fb7619736cf"
integrity sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==
css-color-names@0.0.4, css-color-names@^0.0.4:
version "0.0.4"
@@ -5922,6 +5922,11 @@ js-queue@2.0.0:
dependencies:
easy-stack "^1.0.0"
js-sha256@^0.9.0:
version "0.9.0"
resolved "https://registry.npmmirror.com/js-sha256/-/js-sha256-0.9.0.tgz#0b89ac166583e91ef9123644bd3c5334ce9d0966"
integrity sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==
"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
@@ -5977,6 +5982,11 @@ jsdom@^11.5.1:
ws "^5.2.0"
xml-name-validator "^3.0.0"
jsencrypt@^3.2.1:
version "3.3.1"
resolved "https://registry.npmmirror.com/jsencrypt/-/jsencrypt-3.3.1.tgz#5d47e6c1079bb50e714a36d009ba09ea81fbfa18"
integrity sha512-dVvV54GdFuJgmEKn+oBiaifDMen4p6o6j/lJh0OVMcouME8sST0bJ7bldIgKBQk4za0zyGn0/pm4vOznR25mLw==
jsesc@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b"
@@ -9845,7 +9855,7 @@ validate-npm-package-license@^3.0.1:
vant@2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/vant/-/vant-2.2.0.tgz#d0203f76435da034ff1e9036373971554e61edbc"
resolved "https://registry.npmmirror.com/vant/-/vant-2.2.0.tgz#d0203f76435da034ff1e9036373971554e61edbc"
integrity sha512-MHn7Jr83s5mDCdsM5rE/jgTuOrw0cCf/4q21x/QC7+kCLErFKlnwY8VkaBKlBvxd0HrjsNcmpeWR//K56bHW8w==
dependencies:
"@babel/runtime" "7.x"