159 Commits

Author SHA1 Message Date
97f6e47a00 CRM_25-10-15#story#7339,服务商在APP中查看救援相关资料内容优化 2025-10-13 16:48:13 +08:00
617b08e863 救援职业责任险界面,描述1的文字更改 2025-10-10 09:34:59 +08:00
39c83c71b3 CRM_25-10-15#story#7305#车辆信息梳理的需求-车辆类别选择限制(二) 2025-10-10 09:33:52 +08:00
7c97210d79 CRM_25-10-15#story#7316,服务商体系新增潜在服务商--曹智龙 2025-10-09 14:36:40 +08:00
8f42efe226 换请求方式 2025-09-26 13:10:38 +08:00
f94eee745a 跳转后添加type=invoice 参数 2025-09-26 11:42:22 +08:00
bf7e495b45 培训添加发票参数 2025-09-26 11:05:20 +08:00
f51b0a2aab CRM_25-10-15#story#7305,车辆信息梳理的需求-车辆类别选择限制(二) 2025-09-25 17:47:37 +08:00
d1726e3041 行驶证核验通过--颜色 2025-09-24 16:08:59 +08:00
01b724964d kpi总览界面,拒单明细type值遗漏补充 2025-09-19 15:23:56 +08:00
aabcd9ea29 车辆审核状态不能修改 2025-09-19 13:10:59 +08:00
ad8312f54b kpi总览界面,数据NAN解决 2025-09-18 15:13:08 +08:00
2c9dac15ce kpi总览界面,隐藏两个平安的指标 2025-09-17 21:58:01 +08:00
2e0f372a9b task#9508 大力神更名为随车吊平板车的相关问题 2025-09-17 10:23:30 +08:00
740ad98a99 实名认证接口加参数ump:1 2025-09-15 13:17:41 +08:00
ecc6e23663 VConsole调试删除 2025-09-15 08:58:50 +08:00
6dcc59ea2d 实名认证链接decode测试 2025-09-12 11:43:57 +08:00
f897506e86 实名认证调整 2025-09-12 11:14:41 +08:00
06d530fada 认证页的返回都调转列表页 2025-09-12 11:10:43 +08:00
3f64c42fbf 实名认证返回参数丢失测试解决 2025-09-12 11:01:33 +08:00
1b62e6eebf kpi界面,月日师傅二级tab设为一样 2025-09-12 10:59:19 +08:00
074575b703 kpi界面,月日师傅二级tab设为一样 2025-09-12 10:58:15 +08:00
6d5a91279a 实名认证页,认证结果esignFlag做缓存,添加打印 2025-09-12 10:38:35 +08:00
e9c3befe50 实名认证页,认证结果esignFlag做缓存,添加打印 2025-09-12 10:35:40 +08:00
91f14b9389 实名认证页,认证结果esignFlag做缓存,添加打印 2025-09-12 10:33:01 +08:00
a6dcd9ef03 实名认证页,认证结果esignFlag做缓存,添加打印 2025-09-12 10:27:17 +08:00
77d8bbf27c 实名认证页,认证结果esignFlag做缓存,添加打印 2025-09-12 10:21:55 +08:00
4c90532462 实名认证页,认证结果esignFlag做缓存,添加打印 2025-09-12 10:18:55 +08:00
204d6b354f 实名认证页,认证结果esignFlag做缓存 2025-09-12 10:16:17 +08:00
91aa8f3f05 实名认证页返回都到列表页 2025-09-12 09:22:29 +08:00
9f2b343662 实名认证页代码优化 2025-09-11 23:07:46 +08:00
e02456e807 实名认证页代码优化 2025-09-11 22:35:20 +08:00
ad0094fda2 认证页增加双击不放大功能,滚动条丝滑滚动优化 2025-09-11 17:30:47 +08:00
87263991ff 认证页下一步添加接口 2025-09-11 16:59:10 +08:00
415a0be018 CRM_25-09-25#story#7216,车辆信息梳理的需求-“公车”的服务内容调整 2025-09-11 16:05:08 +08:00
7aefcd8141 kpi催促明细,添加催促次数 2025-09-11 15:58:50 +08:00
6eb407d956 实名认证esignFlag缓存添加 2025-09-11 14:58:07 +08:00
7cfa03bf74 实名认证操作成功后返回到认证列表页 2025-09-11 14:48:37 +08:00
b7ee2bb3d7 实名认证界面加缓存数据 2025-09-11 14:42:49 +08:00
066abdeeb0 救援职业责任险 2025-09-11 14:36:38 +08:00
3b8837ce68 实名认证界面加缓存数据 2025-09-11 14:25:16 +08:00
8f730c7d04 实名认证接口加token参数 2025-09-11 13:05:01 +08:00
56046dc878 实名认证加token参数 2025-09-11 11:52:03 +08:00
da9cc2f588 实名认证加token参数 2025-09-11 11:50:09 +08:00
ab7593ae2d 车辆服务刷新问题 2025-09-11 09:49:06 +08:00
3a7c06ff2f story#7189,跳转加token参数 2025-09-10 16:42:14 +08:00
ab82fa04a6 story#7189,高度调整 2025-09-10 16:09:08 +08:00
695ce00a66 story#7131:调度APP车辆管理功能调整的需求-新增搜索和筛选功能 2025-09-10 15:12:52 +08:00
c6c6f9e6a9 story#7189,type默认'full' 2025-09-10 13:38:52 +08:00
65e5bd2814 kpi率乘以一百 2025-09-10 10:17:11 +08:00
f008ef0d09 kpi字段替换 2025-09-10 10:17:11 +08:00
5ffa3f3d9e 平安聚合时效 2025-09-10 10:17:11 +08:00
1a15772f08 story#7189,认证页radio回显处理 2025-09-10 09:20:41 +08:00
8f066a7bbf kpi首页添加综合打分项 2025-09-10 09:19:38 +08:00
d3e91f584f story#7189,回程车小程序司机端-迁移认证,跳转新的url 2025-09-09 16:59:56 +08:00
d04ed28ec2 story#7189,回程车小程序司机端-迁移认证,添加调试 2025-09-09 16:52:42 +08:00
36db96808a story#7189,回程车小程序司机端-迁移认证 2025-09-09 16:39:28 +08:00
781ef75913 story#7189,回程车小程序司机端-迁移认证页面 2025-09-09 13:33:44 +08:00
e7b0cfb006 司机端培训资料,关键字接受字段更换,切换优化加loading 2025-09-09 13:33:32 +08:00
57b4bc2e59 司机端培训资料,关键字接受字段更换,切换优化加loading 2025-09-09 13:32:12 +08:00
990db65d25 story#7189,回程车小程序司机端-迁移认证页面 2025-09-09 11:01:04 +08:00
cebb173ec4 三分钟联系客户率 2025-09-09 10:37:47 +08:00
8968f4caa9 好评率好评量删除 2025-09-09 10:35:52 +08:00
40ab15266a 车辆信息,修改并且自测 2025-09-08 13:09:10 +08:00
6bc55d7b89 story#7149,服务商KPI模块界面调整 2025-09-05 11:14:12 +08:00
06191163a2 服务商KPI 2025-09-04 09:52:08 +08:00
be0227c68b story#7059服务商kpi 2025-08-28 16:07:02 +08:00
b981a57ef5 派遣量=承接量+拒单量 2025-08-28 11:44:34 +08:00
b836f3c979 story#7074,地图搜索位置改动为后台接口 2025-08-27 17:07:30 +08:00
a5c88f11bb story#7065,救援责任险相关需求-添加判断服务商是否参保 2025-08-27 11:03:35 +08:00
9b64456854 story#7062,供应商培训和财务发票修改,上传发票问题查找 2025-08-26 16:33:57 +08:00
658c0c7db2 story#7062,培训 2025-08-26 15:01:33 +08:00
698f98bee7 story#7062,供应商培训和财务发票上传挂钩--曹智龙,弹框位置 2025-08-26 11:44:42 +08:00
ec974ed55c story#7059,服务商KPI界面调整需求--袁鸿鑫 2025-08-22 17:01:02 +08:00
41820ef796 story#7059,服务商KPI界面调整需求--袁鸿鑫, 前三部分 2025-08-22 17:01:02 +08:00
2bb1885b37 story#7065,救援责任险相关需求-调度APP推广及系统配套功能 2025-08-22 14:41:21 +08:00
fcf088a6f6 story#7074,地图搜索位置改动为后台接口 2025-08-21 10:15:57 +08:00
60836e19da story#7074,地图搜索位置改动为后台接口 2025-08-21 09:05:47 +08:00
1abb7ac605 story#7074,地图搜索位置改动为后台接口 2025-08-20 17:53:07 +08:00
2c94eee160 story#7062,供应商培训和财务发票上传挂钩--曹智龙 2025-08-18 16:02:22 +08:00
4bbc53a9aa story#6982 车辆信息修改--强制更新视图 2025-08-18 14:38:03 +08:00
5c821e1fc0 story#6735 车辆信息修改--用轻型测试的反显问题,去除轻型 2025-08-14 14:32:02 +08:00
a84dd52eae story#6982 车辆信息修改--切换 2025-08-14 14:29:48 +08:00
4dc0e9b835 story#6982 车辆信息修改--自测 2025-08-14 14:07:01 +08:00
e18be51b77 story#6735 报警--数据撤回 2025-08-14 13:51:34 +08:00
c7cc6bfec4 story#6735 报警--ios联调测试 2025-08-14 13:48:48 +08:00
0d862caff1 story#6735 报警--兼容测试 2025-08-14 13:43:53 +08:00
cf60d22074 story#6735 报警--联调样式恢复数据 2025-08-14 13:39:54 +08:00
d99b0d126f story#6735 报警--联调宽度修改 2025-08-14 13:36:02 +08:00
0249e0863d story#6735 报警--联调修改 2025-08-14 13:31:55 +08:00
314ab0b729 story#6982,车辆信息梳理的需求-车辆类别选择限制 2025-08-07 15:31:42 +08:00
24b94ebc8c story#6962,二手拖车系统优化-底盘和上装的外部展示和搜索 2025-08-07 11:54:33 +08:00
21221c2196 story#6932,子公司车辆处置的系统需求,售出信息更为图片 2025-07-31 15:31:08 +08:00
adf68457fc story#6932,子公司车辆处置的系统需求,我的发布列表刷新成功,重新获取下列表 2025-07-31 15:17:25 +08:00
94f536d304 story#6735 报警--自测后修改 2025-07-31 14:17:09 +08:00
47d30f220e story#6735 报警--自测后修改 2025-07-31 14:13:31 +08:00
ef4abf8e62 story#6932,售出渠道样式调整 2025-07-30 16:26:00 +08:00
54041f0008 story#6932,VConsole去除 2025-07-30 16:18:01 +08:00
283d1a37a2 story#6932,VConsole调试 2025-07-30 16:15:44 +08:00
0d9c5fefee story#6932,VConsole调试 2025-07-30 16:10:10 +08:00
bed585ffdc story#6932,年月传值和界面显示区分 2025-07-30 16:04:14 +08:00
55044c55d5 story#6932,年月选择样式优化,禁止弹出键盘 2025-07-30 15:46:41 +08:00
97bf33b316 story#6932,年月选择样式优化,禁止弹出键盘 2025-07-30 15:36:53 +08:00
23e066e752 story#6932,只有子公司的已售出下架才跳转补充信息 2025-07-30 14:48:48 +08:00
2de215bd1f story#6932,我的发布,下架按钮清楚radio的值 2025-07-30 14:09:19 +08:00
c44851f636 story#6932,我的发布,状态对应图标样式调整 2025-07-30 11:25:46 +08:00
3b51a87ed1 story#6932,售出信息,修改下架才展示不通过原因 2025-07-30 11:07:03 +08:00
138bd80bc3 story#6932,售出信息,区分三种状态显示及按钮对应逻辑 2025-07-30 10:29:50 +08:00
1d8fd78a2b story#6932,售出信息,区分三种状态显示及按钮对应逻辑 2025-07-30 10:26:21 +08:00
8b35675abc story#6735 报警--tab参数 2025-07-30 10:21:50 +08:00
8bbdfb5ca5 story#6735 报警--添加跳转路径 2025-07-30 10:06:03 +08:00
040fbb268a story#6932,增加售出信息页面及在发布列表添加按钮 2025-07-29 16:21:10 +08:00
1cb27fea3a 二手车车源信息--求购页添加车源id 2025-07-23 15:37:41 +08:00
61f2ae5a87 story#6735 中道救援系统及调度APP中新增报警模块 接口 2025-07-18 17:36:24 +08:00
156d570595 story#6735 中道救援系统及调度APP中新增报警模块 接口 2025-07-18 16:48:25 +08:00
c44f872d00 task#7363 车辆报警详情处理页面静态页 2025-07-17 09:16:47 +08:00
5c603618d3 story#6735 task#7361 车辆报警列表静态页 2025-07-16 16:00:55 +08:00
9a9ac9f76e task#6796 二手拖车系统查询功能完善的需求 2025-07-09 14:13:52 +08:00
da73c933a0 二手拖车,进入详情页调保存信息记录接口,注释打印代码 2025-06-28 14:41:12 +08:00
45d95fe250 二手拖车,进入详情页调保存信息记录接口,获取id,关闭页面,id传入接口 2025-06-27 17:28:25 +08:00
310b64f97c 二手拖车,进入详情页调保存信息记录接口,获取id,关闭页面,id传入接口 2025-06-27 17:23:12 +08:00
058ce2c72c 二手拖车,进入详情页调保存信息记录接口,获取id,关闭页面,id传入接口 2025-06-27 16:56:58 +08:00
ee8fdb16c4 task#6524 添加刷新按钮 2025-06-20 11:44:51 +08:00
7ff13628b5 task#6524 滚动测试 2025-06-20 10:36:02 +08:00
eae60d1000 task#6524 修改地址 2025-06-20 10:20:57 +08:00
3a1e4a6ae2 task#6524 滚动问题 2025-06-20 10:19:45 +08:00
5bd9db3165 task#6524 颜色兼容 2025-06-20 10:10:21 +08:00
fbce498e94 task#6524 头部颜色兼容 2025-06-20 09:49:18 +08:00
6ab2e0b1d7 task#6524 头部兼容 2025-06-20 09:41:40 +08:00
001683f215 task#6524 下拉刷新 2025-06-19 20:32:16 +08:00
bb13a6e34e task#6524 获取定位城市,时间默认当前 2025-06-19 19:55:32 +08:00
16d4425e07 task#6524 有订单才访问 2025-06-19 18:00:36 +08:00
a73434fd4d task#6524 textarea修改 2025-06-18 14:15:02 +08:00
75d20beb77 task#6524 http兼容司机app 2025-06-18 13:42:10 +08:00
9a21834741 task#6524 报备防重复点击 2025-06-18 11:09:51 +08:00
749daae26e task#6524 报备 2025-06-12 10:27:59 +08:00
0fc0d33742 story#6606,二手拖车系统优化,浏览单位加人 2025-06-09 09:32:13 +08:00
d1efe578d4 story#6606,二手拖车系统优化 2025-06-09 08:59:34 +08:00
899ea612f4 task#5914 添加报备页面,地图页面 2025-06-06 09:38:55 +08:00
5552b48ec4 story#6462,二手车,下架状态不展示想要按钮 2025-05-22 19:26:23 +08:00
56e56c7839 story#6462,筛选项问题 2025-05-22 11:55:08 +08:00
851a0e7260 story#6462,二手拖车信息需求 2025-05-22 11:43:06 +08:00
d2f124e901 story#6462,二手拖车信息需求 2025-05-22 10:58:35 +08:00
8bc734273b story#6462,二手拖车信息需求 2025-05-22 10:58:04 +08:00
643ee2c5eb story#6462,发布省市和日期去除clearable属性 2025-05-21 14:32:39 +08:00
881ae7e47b story#6462,发布日期清除事件和图标 2025-05-21 14:27:14 +08:00
d5af7692f8 story#6462,自定义清除事件和图标 2025-05-21 14:21:34 +08:00
aa52bd2f31 story#6462,自定义清除事件和图标 2025-05-21 14:17:35 +08:00
9df87ac518 story#6462,阻止输入框默认行为 2025-05-21 14:10:45 +08:00
8e20adbba3 story#6462,阻止输入框默认行为 2025-05-21 14:02:32 +08:00
cc083b7551 story#6462,阻止输入框默认行为 2025-05-21 14:00:04 +08:00
0a668e6f57 story#6462,阻止输入框默认行为 2025-05-21 13:55:09 +08:00
c2cc09aef1 story#6462,省市选择弹出框不要× 2025-05-21 13:48:33 +08:00
037fbf74fb story#6462,筛选输入框设置只读 2025-05-21 13:18:00 +08:00
de252fceb2 story#6462,列表添加发布省市和发布时间筛选项 2025-05-21 10:55:16 +08:00
6a53749cdc 样式调整 2025-05-08 14:07:38 +08:00
d71e3679ef 添加展示测试 2025-05-08 13:41:38 +08:00
c626aab606 添加展示 2025-05-08 13:06:42 +08:00
7594e56cda story#5360,web端拨打电话的确定事件弹框消失 2025-04-21 09:34:47 +08:00
130 changed files with 7343 additions and 532 deletions

330
package-lock.json generated
View File

@ -18,6 +18,7 @@
"element-ui": "^2.15.9", "element-ui": "^2.15.9",
"less": "^4.1.3", "less": "^4.1.3",
"less-loader": "^11.1.3", "less-loader": "^11.1.3",
"qrcode": "^1.5.4",
"qs": "^6.11.2", "qs": "^6.11.2",
"sass": "^1.65.1", "sass": "^1.65.1",
"sass-loader": "^13.3.2", "sass-loader": "^13.3.2",
@ -3350,7 +3351,6 @@
"version": "5.0.1", "version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"dev": true,
"engines": { "engines": {
"node": ">=8" "node": ">=8"
} }
@ -4801,6 +4801,15 @@
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true "dev": true
}, },
"node_modules/decamelize": {
"version": "1.2.0",
"resolved": "https://registry.npmmirror.com/decamelize/-/decamelize-1.2.0.tgz",
"integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/decimal.js": { "node_modules/decimal.js": {
"version": "10.4.3", "version": "10.4.3",
"resolved": "https://registry.npmmirror.com/decimal.js/-/decimal.js-10.4.3.tgz", "resolved": "https://registry.npmmirror.com/decimal.js/-/decimal.js-10.4.3.tgz",
@ -5020,6 +5029,12 @@
"integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==",
"dev": true "dev": true
}, },
"node_modules/dijkstrajs": {
"version": "1.0.3",
"resolved": "https://registry.npmmirror.com/dijkstrajs/-/dijkstrajs-1.0.3.tgz",
"integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==",
"license": "MIT"
},
"node_modules/dir-glob": { "node_modules/dir-glob": {
"version": "3.0.1", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
@ -5210,8 +5225,7 @@
"node_modules/emoji-regex": { "node_modules/emoji-regex": {
"version": "8.0.0", "version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
"dev": true
}, },
"node_modules/emojis-list": { "node_modules/emojis-list": {
"version": "3.0.0", "version": "3.0.0",
@ -6215,7 +6229,6 @@
"version": "4.1.0", "version": "4.1.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
"integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
"dev": true,
"dependencies": { "dependencies": {
"locate-path": "^5.0.0", "locate-path": "^5.0.0",
"path-exists": "^4.0.0" "path-exists": "^4.0.0"
@ -6370,7 +6383,6 @@
"version": "2.0.5", "version": "2.0.5",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
"dev": true,
"engines": { "engines": {
"node": "6.* || 8.* || >= 10.*" "node": "6.* || 8.* || >= 10.*"
} }
@ -6992,7 +7004,6 @@
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"dev": true,
"engines": { "engines": {
"node": ">=8" "node": ">=8"
} }
@ -7408,7 +7419,6 @@
"version": "5.0.0", "version": "5.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
"integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
"dev": true,
"dependencies": { "dependencies": {
"p-locate": "^4.1.0" "p-locate": "^4.1.0"
}, },
@ -8445,7 +8455,6 @@
"version": "2.3.0", "version": "2.3.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"dev": true,
"dependencies": { "dependencies": {
"p-try": "^2.0.0" "p-try": "^2.0.0"
}, },
@ -8460,7 +8469,6 @@
"version": "4.1.0", "version": "4.1.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
"integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
"dev": true,
"dependencies": { "dependencies": {
"p-limit": "^2.2.0" "p-limit": "^2.2.0"
}, },
@ -8485,7 +8493,6 @@
"version": "2.2.0", "version": "2.2.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
"dev": true,
"engines": { "engines": {
"node": ">=6" "node": ">=6"
} }
@ -8582,7 +8589,6 @@
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
"integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
"dev": true,
"engines": { "engines": {
"node": ">=8" "node": ">=8"
} }
@ -8663,6 +8669,15 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/pngjs": {
"version": "5.0.0",
"resolved": "https://registry.npmmirror.com/pngjs/-/pngjs-5.0.0.tgz",
"integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==",
"license": "MIT",
"engines": {
"node": ">=10.13.0"
}
},
"node_modules/portfinder": { "node_modules/portfinder": {
"version": "1.0.32", "version": "1.0.32",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz",
@ -9394,6 +9409,131 @@
"node": ">=6" "node": ">=6"
} }
}, },
"node_modules/qrcode": {
"version": "1.5.4",
"resolved": "https://registry.npmmirror.com/qrcode/-/qrcode-1.5.4.tgz",
"integrity": "sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==",
"license": "MIT",
"dependencies": {
"dijkstrajs": "^1.0.1",
"pngjs": "^5.0.0",
"yargs": "^15.3.1"
},
"bin": {
"qrcode": "bin/qrcode"
},
"engines": {
"node": ">=10.13.0"
}
},
"node_modules/qrcode/node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
"node_modules/qrcode/node_modules/camelcase": {
"version": "5.3.1",
"resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz",
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
"license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/qrcode/node_modules/cliui": {
"version": "6.0.0",
"resolved": "https://registry.npmmirror.com/cliui/-/cliui-6.0.0.tgz",
"integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
"license": "ISC",
"dependencies": {
"string-width": "^4.2.0",
"strip-ansi": "^6.0.0",
"wrap-ansi": "^6.2.0"
}
},
"node_modules/qrcode/node_modules/color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
"engines": {
"node": ">=7.0.0"
}
},
"node_modules/qrcode/node_modules/color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"license": "MIT"
},
"node_modules/qrcode/node_modules/wrap-ansi": {
"version": "6.2.0",
"resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
"integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
"license": "MIT",
"dependencies": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
"strip-ansi": "^6.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/qrcode/node_modules/y18n": {
"version": "4.0.3",
"resolved": "https://registry.npmmirror.com/y18n/-/y18n-4.0.3.tgz",
"integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
"license": "ISC"
},
"node_modules/qrcode/node_modules/yargs": {
"version": "15.4.1",
"resolved": "https://registry.npmmirror.com/yargs/-/yargs-15.4.1.tgz",
"integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
"license": "MIT",
"dependencies": {
"cliui": "^6.0.0",
"decamelize": "^1.2.0",
"find-up": "^4.1.0",
"get-caller-file": "^2.0.1",
"require-directory": "^2.1.1",
"require-main-filename": "^2.0.0",
"set-blocking": "^2.0.0",
"string-width": "^4.2.0",
"which-module": "^2.0.0",
"y18n": "^4.0.0",
"yargs-parser": "^18.1.2"
},
"engines": {
"node": ">=8"
}
},
"node_modules/qrcode/node_modules/yargs-parser": {
"version": "18.1.3",
"resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-18.1.3.tgz",
"integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
"license": "ISC",
"dependencies": {
"camelcase": "^5.0.0",
"decamelize": "^1.2.0"
},
"engines": {
"node": ">=6"
}
},
"node_modules/qs": { "node_modules/qs": {
"version": "6.11.2", "version": "6.11.2",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz",
@ -9643,7 +9783,6 @@
"version": "2.1.1", "version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
"integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
"dev": true,
"engines": { "engines": {
"node": ">=0.10.0" "node": ">=0.10.0"
} }
@ -9657,6 +9796,12 @@
"node": ">=0.10.0" "node": ">=0.10.0"
} }
}, },
"node_modules/require-main-filename": {
"version": "2.0.0",
"resolved": "https://registry.npmmirror.com/require-main-filename/-/require-main-filename-2.0.0.tgz",
"integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
"license": "ISC"
},
"node_modules/requires-port": { "node_modules/requires-port": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
@ -10033,6 +10178,12 @@
"node": ">= 0.8.0" "node": ">= 0.8.0"
} }
}, },
"node_modules/set-blocking": {
"version": "2.0.0",
"resolved": "https://registry.npmmirror.com/set-blocking/-/set-blocking-2.0.0.tgz",
"integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
"license": "ISC"
},
"node_modules/setprototypeof": { "node_modules/setprototypeof": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
@ -10324,7 +10475,6 @@
"version": "4.2.3", "version": "4.2.3",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"dev": true,
"dependencies": { "dependencies": {
"emoji-regex": "^8.0.0", "emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0", "is-fullwidth-code-point": "^3.0.0",
@ -10338,7 +10488,6 @@
"version": "6.0.1", "version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dev": true,
"dependencies": { "dependencies": {
"ansi-regex": "^5.0.1" "ansi-regex": "^5.0.1"
}, },
@ -11702,6 +11851,12 @@
"which": "bin/which" "which": "bin/which"
} }
}, },
"node_modules/which-module": {
"version": "2.0.1",
"resolved": "https://registry.npmmirror.com/which-module/-/which-module-2.0.1.tgz",
"integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==",
"license": "ISC"
},
"node_modules/wildcard": { "node_modules/wildcard": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz",
@ -14418,8 +14573,7 @@
"ansi-regex": { "ansi-regex": {
"version": "5.0.1", "version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
"dev": true
}, },
"ansi-styles": { "ansi-styles": {
"version": "3.2.1", "version": "3.2.1",
@ -15473,6 +15627,11 @@
} }
} }
}, },
"decamelize": {
"version": "1.2.0",
"resolved": "https://registry.npmmirror.com/decamelize/-/decamelize-1.2.0.tgz",
"integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA=="
},
"decimal.js": { "decimal.js": {
"version": "10.4.3", "version": "10.4.3",
"resolved": "https://registry.npmmirror.com/decimal.js/-/decimal.js-10.4.3.tgz", "resolved": "https://registry.npmmirror.com/decimal.js/-/decimal.js-10.4.3.tgz",
@ -15627,6 +15786,11 @@
"integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==",
"dev": true "dev": true
}, },
"dijkstrajs": {
"version": "1.0.3",
"resolved": "https://registry.npmmirror.com/dijkstrajs/-/dijkstrajs-1.0.3.tgz",
"integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA=="
},
"dir-glob": { "dir-glob": {
"version": "3.0.1", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
@ -15783,8 +15947,7 @@
"emoji-regex": { "emoji-regex": {
"version": "8.0.0", "version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
"dev": true
}, },
"emojis-list": { "emojis-list": {
"version": "3.0.0", "version": "3.0.0",
@ -16545,7 +16708,6 @@
"version": "4.1.0", "version": "4.1.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
"integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
"dev": true,
"requires": { "requires": {
"locate-path": "^5.0.0", "locate-path": "^5.0.0",
"path-exists": "^4.0.0" "path-exists": "^4.0.0"
@ -16650,8 +16812,7 @@
"get-caller-file": { "get-caller-file": {
"version": "2.0.5", "version": "2.0.5",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
"dev": true
}, },
"get-intrinsic": { "get-intrinsic": {
"version": "1.2.1", "version": "1.2.1",
@ -17088,8 +17249,7 @@
"is-fullwidth-code-point": { "is-fullwidth-code-point": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
"dev": true
}, },
"is-glob": { "is-glob": {
"version": "4.0.3", "version": "4.0.3",
@ -17399,7 +17559,6 @@
"version": "5.0.0", "version": "5.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
"integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
"dev": true,
"requires": { "requires": {
"p-locate": "^4.1.0" "p-locate": "^4.1.0"
} }
@ -18184,7 +18343,6 @@
"version": "2.3.0", "version": "2.3.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"dev": true,
"requires": { "requires": {
"p-try": "^2.0.0" "p-try": "^2.0.0"
} }
@ -18193,7 +18351,6 @@
"version": "4.1.0", "version": "4.1.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
"integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
"dev": true,
"requires": { "requires": {
"p-limit": "^2.2.0" "p-limit": "^2.2.0"
} }
@ -18211,8 +18368,7 @@
"p-try": { "p-try": {
"version": "2.2.0", "version": "2.2.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
"dev": true
}, },
"param-case": { "param-case": {
"version": "3.0.4", "version": "3.0.4",
@ -18292,8 +18448,7 @@
"path-exists": { "path-exists": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
"integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
"dev": true
}, },
"path-is-absolute": { "path-is-absolute": {
"version": "1.0.1", "version": "1.0.1",
@ -18350,6 +18505,11 @@
"find-up": "^4.0.0" "find-up": "^4.0.0"
} }
}, },
"pngjs": {
"version": "5.0.0",
"resolved": "https://registry.npmmirror.com/pngjs/-/pngjs-5.0.0.tgz",
"integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw=="
},
"portfinder": { "portfinder": {
"version": "1.0.32", "version": "1.0.32",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz",
@ -18835,6 +18995,96 @@
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
"integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==" "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA=="
}, },
"qrcode": {
"version": "1.5.4",
"resolved": "https://registry.npmmirror.com/qrcode/-/qrcode-1.5.4.tgz",
"integrity": "sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==",
"requires": {
"dijkstrajs": "^1.0.1",
"pngjs": "^5.0.0",
"yargs": "^15.3.1"
},
"dependencies": {
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"requires": {
"color-convert": "^2.0.1"
}
},
"camelcase": {
"version": "5.3.1",
"resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz",
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
},
"cliui": {
"version": "6.0.0",
"resolved": "https://registry.npmmirror.com/cliui/-/cliui-6.0.0.tgz",
"integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
"requires": {
"string-width": "^4.2.0",
"strip-ansi": "^6.0.0",
"wrap-ansi": "^6.2.0"
}
},
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"requires": {
"color-name": "~1.1.4"
}
},
"color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"wrap-ansi": {
"version": "6.2.0",
"resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
"integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
"requires": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
"strip-ansi": "^6.0.0"
}
},
"y18n": {
"version": "4.0.3",
"resolved": "https://registry.npmmirror.com/y18n/-/y18n-4.0.3.tgz",
"integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
},
"yargs": {
"version": "15.4.1",
"resolved": "https://registry.npmmirror.com/yargs/-/yargs-15.4.1.tgz",
"integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
"requires": {
"cliui": "^6.0.0",
"decamelize": "^1.2.0",
"find-up": "^4.1.0",
"get-caller-file": "^2.0.1",
"require-directory": "^2.1.1",
"require-main-filename": "^2.0.0",
"set-blocking": "^2.0.0",
"string-width": "^4.2.0",
"which-module": "^2.0.0",
"y18n": "^4.0.0",
"yargs-parser": "^18.1.2"
}
},
"yargs-parser": {
"version": "18.1.3",
"resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-18.1.3.tgz",
"integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
"requires": {
"camelcase": "^5.0.0",
"decamelize": "^1.2.0"
}
}
}
},
"qs": { "qs": {
"version": "6.11.2", "version": "6.11.2",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz",
@ -19021,8 +19271,7 @@
"require-directory": { "require-directory": {
"version": "2.1.1", "version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
"integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="
"dev": true
}, },
"require-from-string": { "require-from-string": {
"version": "2.0.2", "version": "2.0.2",
@ -19030,6 +19279,11 @@
"integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
"dev": true "dev": true
}, },
"require-main-filename": {
"version": "2.0.0",
"resolved": "https://registry.npmmirror.com/require-main-filename/-/require-main-filename-2.0.0.tgz",
"integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
},
"requires-port": { "requires-port": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
@ -19293,6 +19547,11 @@
"send": "0.18.0" "send": "0.18.0"
} }
}, },
"set-blocking": {
"version": "2.0.0",
"resolved": "https://registry.npmmirror.com/set-blocking/-/set-blocking-2.0.0.tgz",
"integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
},
"setprototypeof": { "setprototypeof": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
@ -19534,7 +19793,6 @@
"version": "4.2.3", "version": "4.2.3",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"dev": true,
"requires": { "requires": {
"emoji-regex": "^8.0.0", "emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0", "is-fullwidth-code-point": "^3.0.0",
@ -19545,7 +19803,6 @@
"version": "6.0.1", "version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dev": true,
"requires": { "requires": {
"ansi-regex": "^5.0.1" "ansi-regex": "^5.0.1"
} }
@ -20524,6 +20781,11 @@
"isexe": "^2.0.0" "isexe": "^2.0.0"
} }
}, },
"which-module": {
"version": "2.0.1",
"resolved": "https://registry.npmmirror.com/which-module/-/which-module-2.0.1.tgz",
"integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ=="
},
"wildcard": { "wildcard": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz",

View File

@ -19,6 +19,7 @@
"element-ui": "^2.15.9", "element-ui": "^2.15.9",
"less": "^4.1.3", "less": "^4.1.3",
"less-loader": "^11.1.3", "less-loader": "^11.1.3",
"qrcode": "^1.5.4",
"qs": "^6.11.2", "qs": "^6.11.2",
"sass": "^1.65.1", "sass": "^1.65.1",
"sass-loader": "^13.3.2", "sass-loader": "^13.3.2",

View File

@ -26,11 +26,16 @@
<van-number-keyboard safe-area-inset-bottom /> <van-number-keyboard safe-area-inset-bottom />
<script type="text/javascript"> <script type="text/javascript">
window._AMapSecurityConfig = { window._AMapSecurityConfig = {
serviceHost: 'https://api.sinoassist.com/_AMapService', // serviceHost: 'https://api.sinoassist.com/_AMapService',
securityJsCode:'91ab1ebc492d5479a68b11527bd73dc9',
} }
</script> </script>
<script src="https://webapi.amap.com/maps?v=1.4.15&key=2560bbf04daef66c810c5e6a97e8c508&plugin=AMap.Polyline"></script> <script type="text/javascript" src="https://webapi.amap.com/maps?v=2.0&key=2560bbf04daef66c810c5e6a97e8c508&plugin=AMap.AutoComplete,AMap.PlaceSearch,AMap.Geolocation,AMap.Geocoder,AMap.Marker,AMap.Driving"></script>
<!-- <script src="https://unpkg.com/vconsole@latest/dist/vconsole.min.js"></script>--> <!-- <script src="https://unpkg.com/vconsole@latest/dist/vconsole.min.js"></script>-->
<script>
window.selfLink = window.location.href;
window.selfSearch = window.location.search;
</script>
<script> <script>
// VConsole 默认会挂载到 `window.VConsole` 上 // VConsole 默认会挂载到 `window.VConsole` 上
// let vConsole = new window.VConsole(); // let vConsole = new window.VConsole();

72
src/api/authentication.js Normal file
View File

@ -0,0 +1,72 @@
import request from '@/utils/http'
// 根据订单 获取报备类型
/*export function getReportListByOrder(key){
return request({
url: '/order/baseDriverReportConfigs/getByOrderId',
method:'GET',
params: key
})
}*/
// 弹框
export function successPopup( data) {
return request({
url: '/returnOrder/wechatDriver/user/successPopup',
method:'POST',
contentType: 'application/x-www-form-urlencoded',
data
})
}
// 认证进度
export function infoVerifyProgress(data){
return request({
url: '/returnOrder/wechatDriver/user/infoVerifyProgress',
method:'POST',
contentType: 'application/json',
data
})
}
// 认证详情
export function driverInfoVerifyDetail(data) {
return request({
url:'/returnOrder/wechatDriver/user/driverInfoVerifyDetail',
method:'POST',
data: data,
contentType: 'application/json',
})
}
// 我的信息
export function getMyInfo(data) {
return request({
url:'/returnOrder/wechatDriver/user/driverDetail',
method:'POST',
data: data,
})
}
// ocr识别
export function ocrRecognize( data) {
return request( {
url:'/returnOrder/wechatDriver/user/ocrRecognize',
data: data,
method:'POST',
contentType: 'application/json'
})
}
// 认证
export function driverInfoVerify( data) {
return request({
url:'/returnOrder/wechatDriver/user/driverInfoVerify',
data: data,
method:'POST',
contentType: 'application/json'
})
}
// 实名认证
export function driverRealName( data) {
return request('/returnOrder/wechatDriver/user/driverRealNameAuth', {
data: data,
method:'POST',
contentType: 'application/json'
})
}

View File

@ -316,4 +316,28 @@ export function unifiedOCRWithCompress(data){
contentType:'application/json', contentType:'application/json',
data data
}) })
} }
// 服务商是否培训
export function jumpPage(data){
return request({
url:'/supplierAppV2/dispatchApp/user/jumpPage',
method:'POST',
contentType:'application/json',
data
})
}
//发送确认参保
export function sendInsuranceEmail(){
return request({
url:'/supplierAppV2/dispatchApp/user/sendInsuranceEmail',
method:'POST',
})
}
// 判断服务商是否参保
export function isSendInsuranceEmail(){
return request({
url:'/supplierAppV2/dispatchApp/user/isSendInsuranceEmail',
method:'POST',
})
}

View File

@ -112,3 +112,43 @@ export function correctionHandle(data) {
data data
}) })
} }
// 获取报警列表
export function getAlarmList(data) {
return request({
url: '/supplierAppV2/dispatchApp/alarm/alarmList',
method:'POST',
contentType: 'application/json',
data
})
}
// 获取报警数目
export function getAlarmCount(data) {
return request({
url: '/supplierAppV2/dispatchApp/alarm/alarmCount',
method:'POST',
data
})
}
// 获取报警详情
export function getAlarmByCode(data) {
return request({
url: '/supplierAppV2/dispatchApp/alarm/getAlarmByCode',
method:'POST',
data
})
}
// 处理报警
export function dealWithAlarm(data) {
return request({
url: '/supplierAppV2/dispatchApp/alarm/handAlarm',
method:'POST',
data
})
}

37
src/api/report.js Normal file
View File

@ -0,0 +1,37 @@
import request from '@/utils/http'
// 根据订单 获取报备类型
export function getReportListByOrder(key){
return request({
url: '/order/baseDriverReportConfigs/getByOrderId',
method:'GET',
params: key
})
}
// 添加报备
export function newOrderReporting(data){
return request({
url: '/supplierAppV2/dispatchApp/order/newOrderReporting',
method:'POST',
contentType: 'application/json',
data
})
}
// 获取报备列表
export function reportHistory(data){
return request({
url: '/supplierAppV2/dispatchApp/order/reportHistory',
method:'POST',
data
})
}
// 获取订单信息
export function getOrderInfo(data){
return request({
url: '/supplierAppV2/dispatchApp/order/reportOrderDetail',
method:'POST',
data
})
}

View File

@ -93,4 +93,23 @@ export function saveRecord(data){
contentType: 'application/json', contentType: 'application/json',
data data
}) })
} }
// 审核不通过再次提交
export function auditCarInfoAgain(data){
return request({
url: '/toc-user/car-app/auditCarInfoAgain',
method:'POST',
contentType: 'application/json',
data
})
}
// 我的发布列表
export function getAddressForService(data){
return request({
url: '/base/gaodeMap/getPlaceByAddress',
method:'GET',
params: data,
})
}

BIN
src/assets/alarm_check.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 785 B

BIN
src/assets/alarm_one.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
src/assets/alarm_repair.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
src/assets/alarm_three.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
src/assets/alarm_tip.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
src/assets/alarm_two.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 770 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 790 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 441 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 277 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 727 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 901 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 803 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 478 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 470 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 795 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 725 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 721 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 727 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

BIN
src/assets/emptyData.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
src/assets/insured.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 589 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1022 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 355 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 300 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 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: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -0,0 +1,43 @@
const authenticationRouter = [
{
path: '/auditList',
name: 'auditList',
component: () => import('@/views/rvDriverAuthentication/auditList.vue'),
meta:{
title: '小板运输司机认证',
}
},
{
path: '/personAudit',
name: 'personAudit',
component: () => import('@/views/rvDriverAuthentication/personAudit.vue'),
meta:{
title: '实名认证',
}
},
{
path: '/carAudit',
name: 'carAudit',
component: () => import('@/views/rvDriverAuthentication/carAudit.vue'),
meta:{
title: '驾驶证认证',
}
},
{
path: '/carInfoAudit',
name: 'carInfoAudit',
component: () => import('@/views/rvDriverAuthentication/carInfoAudit.vue'),
meta:{
title: '车辆信息认证',
}
},
{
path: '/bankInfo',
name: 'bankInfo',
component: () => import('@/views/rvDriverAuthentication/bankInfo.vue'),
meta:{
title: '银行卡信息认证',
}
},
]
export default authenticationRouter

View File

@ -4,11 +4,29 @@ Vue.use(VueRouter);
import kpiRouter from './kpi-router' import kpiRouter from './kpi-router'
import invoiceRouter from "@/router/invoice-router"; import invoiceRouter from "@/router/invoice-router";
import secondHandRouter from "@/router/second-hand-router"; import secondHandRouter from "@/router/second-hand-router";
import reportRouter from "@/router/report-router"
import authenticationRouter from "@/router/authentication-router"
const routes = [ const routes = [
{ {
path: '/', path: '/',
redirect: '/index' redirect: '/index'
}, },
{
path: '/supplierAdd',
name: 'supplierAdd',
component: () => import('@/views/index/supplierAdd'),
meta:{
title: '信息录入',
}
},
{
path: '/supplierInfo',
name: 'supplierInfo',
component: () => import('@/views/index/supplierInfo'),
meta:{
title: '信息查看',
}
},
{ {
path: '/toDoList', path: '/toDoList',
name: 'toDoList', name: 'toDoList',
@ -250,6 +268,22 @@ const routes = [
title:'车辆维保' title:'车辆维保'
} }
}, },
{
path: '/vehicleAlarmList',
name: 'vehicleAlarmList',
component:()=>import('@/views/vehicle-maintenance/vehicle-alarm-list.vue'),
meta: {
title:'车辆报警'
}
},
{
path: '/vehicleAlarmDetail',
name: 'vehicleAlarmDetail',
component:()=>import('@/views/vehicle-maintenance/vehicle-alarm-detail.vue'),
meta: {
title:'报警详情'
}
},
{ {
path: '/maintenanceApplication', path: '/maintenanceApplication',
name: 'maintenanceApplication', name: 'maintenanceApplication',
@ -277,6 +311,8 @@ const routes = [
...kpiRouter, ...kpiRouter,
...invoiceRouter, ...invoiceRouter,
...secondHandRouter, ...secondHandRouter,
...reportRouter,
...authenticationRouter
] ]
const router = new VueRouter({ const router = new VueRouter({

View File

@ -0,0 +1,29 @@
const reportRouter = [
{
path: '/reportIndex',
name: 'reportIndex',
component: () => import('@/views/report/reportIndex'),
meta:{
title: '道路救援',
cache: true,
modalState: false,
}
},
{
path: '/addressMap',
name: 'addressMap',
component: () => import('@/views/report/addressMap'),
meta:{
title: '道路救援',
}
},
{
path: '/insuredPage',
name: 'insuredPage',
component: () => import('@/views/liabilityInsurance/insuredPage'),
meta:{
title: '参保救援职业责任险',
}
},
]
export default reportRouter

View File

@ -55,5 +55,13 @@ const secondHandCar = [
title: '免责声明', title: '免责声明',
} }
}, },
{
path: '/sellingInfo',
name: 'sellingInfo',
component: () => import('@/views/secondHandCar/sellingInfo.vue'),
meta:{
title: '售出信息',
}
},
] ]
export default secondHandCar export default secondHandCar

View File

@ -47,4 +47,84 @@ select{
font-size: 14px; font-size: 14px;
color: #000000; color: #000000;
} }
.text_center {
text-align: center;
}
//同意协议勾选
.protocol-list {
display: flex;
//align-items: top;
margin-top: 5px;
justify-content: center;
position: fixed;
bottom: 20px;
text-align: center;
width: 100%;
padding: 20px;
box-sizing: border-box;
.protocol-text {
font-size: 12px;
color: #203152;
line-height: 18px;
//text-align: left;
.linkColor {
color: #3364B7;
word-break: keep-all;
}
}
}
.icon_register {
width: 100%;
height: auto;
}
.mr15 {
margin-right: 15px;
}
.mt20 {
margin-top: 20px;
}
.flex_vertical_center {
display: flex;
align-items: center;
}
.flex {
display: flex;
}
.flex_between {
justify-content: space-between;
}
/*@mixin wh($w,$h) {
width: $w;
height: $h;
}
@mixin flex(){
display: flex;
}
@mixin alignCenter(){
@include flex();
align-items: center;
}
@mixin col(){
@include flex();
flex-direction: column;
}
@mixin colBothCenter(){
@include col();
justify-content: center;
align-items: center;
}
@mixin sizingPadding($t,$r,$b,$l) {
box-sizing: border-box;
padding: $t $r $b $l;
}*/
/*@mixin weigthSize($wei,$size){
font-weight:$wei ;
font-size: $size;
}
@mixin weigthSizeColor($wei,$size,$col){
@include weigthSize($wei,$size);
color: $col;
}*/

43
src/styles/infoShow.scss Normal file
View File

@ -0,0 +1,43 @@
.carInfo{
margin-top: 10px;
box-sizing: border-box;
width: 100%;
min-height: 151px;
background: #FFFFFF;
padding:8px 23px 17px 30px ;
display: flex;
justify-content: space-between;
.left_wrap,.right_wrap{
display: flex;
flex-direction: column;
justify-content: space-around;
}
.title {
font-size: 14px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #323643;
.mar_left{
margin-left: 8px;
}
.star {
color: red;
margin-right: 3px;
}
}
.right_wrap{
align-items: flex-end;
.phone{
font-size: 13px;
font-weight: 500;
color: #323643;
}
input{
font-size: 12px;
text-align: right;
&::-webkit-input-placeholder { /* WebKit browserswebkit内核浏览器 */
color: #A1A1A1;
}
}
}
}

View File

@ -104,4 +104,33 @@
@mixin colHeight($col,$hei){ @mixin colHeight($col,$hei){
color: $col; color: $col;
line-height: $hei; line-height: $hei;
}
@mixin width_height($width,$height){
width: $width;
height: $height;
}
@mixin flex($row,$colum){
display: flex;
justify-content: $row;
align-items: $colum;
}
@mixin center(){
display: flex;
align-items: center;
}
@mixin direction($justify-content){
display: flex;
flex-direction: column;
justify-content: $justify-content;
}
@mixin iconImg($width,$height,$marginRight){
width: $width;
height: $height;
margin-right: $marginRight;
}
@mixin iconImgLeft($width,$height,$marginRight){
width: $width;
height: $height;
margin-left: $marginRight;
} }

View File

@ -42,11 +42,89 @@ const timeFormat=(data) =>{
return formattedDate; return formattedDate;
} }
// 认证状态
const verifyStatus=(id)=> {
const ids = String(id)
const status = {
'0': 1, // 个人信息认证
'-1': 1, // 已注册
'7': 1, // 已发送待认证
'1': 2, // 驾照信息认证
'2': 3, // 车辆信息审核
'3': 4, // 银行卡信息审核
'4': 5, // 认证中
'8': 6, // 审核中
'11': 6, // 审核失败
'12': 6 // 审核成功
}
return status[ids]
}
// 认证状态 简易版
const verifyStatusSimple=(id)=> {
const ids = String(id)
const status = {
'0': 1, // 个人信息认证
'-1': 1, // 已注册
'7': 1, // 已发送待认证
'1': 3, // 驾照信息认证
'2': 3, // 车辆信息审核
'3': 4, // 银行卡信息审核
'4': 5, // 认证中
'8': 6, // 审核中
'11': 6, // 审核失败
'12': 6 // 审核成功
}
return status[ids]
}
// 认证状态
const tipString=(id)=> {
const ids = String(id)
const status = {
'0': { // 个人信息认证
tip: '认证待提交',
button: '待认证'
},
'1': { // 驾照信息认证
tip: '认证待提交',
button: '待认证'
},
'2': { // 车辆信息审核
tip: '认证待提交',
button: '待认证'
},
'3': { // 银行卡信息审核
tip: '认证待提交',
button: '待认证'
},
'4': { // 认证中
tip: '认证待提交',
button: '待认证'
},
'8': { // 审核中
tip: '认证审核中',
button: '审核中'
},
'11': { // 审核失败
tip: '认证审核失败',
button: '审核失败'
},
'12': { // 审核成功
tip: '认证审核成功',
button: '审核成功'
},
}
return status[ids]
}
module.exports = { module.exports = {
formatNumber, formatNumber,
formatDate, formatDate,
leftCopy, leftCopy,
timeFormat, timeFormat,
formatDate1 formatDate1,
verifyStatus,
verifyStatusSimple,
tipString
} }

View File

@ -11,7 +11,11 @@ const service = axios.create({
}) })
const urlParams = new URLSearchParams(window.location.search); const urlParams = new URLSearchParams(window.location.search);
let token = urlParams.get('token'); let token = urlParams.get('token');
localStorage.setItem('token', token); if( token ) {
localStorage.setItem('token', token);
} else {
localStorage.setItem('token', '');
}
service.interceptors.request.use( service.interceptors.request.use(
config => { config => {
let reqUrl=config.url let reqUrl=config.url
@ -21,11 +25,13 @@ service.interceptors.request.use(
} }
config.headers['Content-Type'] = config.contentType || 'application/x-www-form-urlencoded' config.headers['Content-Type'] = config.contentType || 'application/x-www-form-urlencoded'
let token = localStorage.getItem('token'); let token = localStorage.getItem('token');
// let token='4099761587129c46b03c9316c9e866c9' // let token='eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJBTkNIQU5HIiwidXNlcklkIjo0NTY3MSwibmFtZSI6IuWuieeVhSIsInVzZXJOYW1lIjoiQU5DSEFORyIsInN1cHBsaWVySWQiOjExMjgsImlzWmQiOjAsImV4cCI6MTc1NTQyMjUyNX0.xzDZhaANJFnbeViIHJA0SEtOyTv7Ja3rKmXqRKRuFkc'
// let token='eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJTSEhQWEIiLCJ1c2VySWQiOjU0NzI2LCJuYW1lIjoiI-a1i-ivleWwj-eZveeZvSIsInVzZXJOYW1lIjoiU0hIUFhCIiwic3VwcGxpZXJJZCI6MTAwMDE2NSwiZXhwIjoxNzQ0NTEwNzkwfQ.JPk0OA7slYJN3FIi_uhW4Y0CiWRvl6R1dK8MRTbyhD8' // let token='eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJTSEhQWEIiLCJ1c2VySWQiOjU0NzI2LCJuYW1lIjoiI-a1i-ivleWwj-eZveeZvSIsInVzZXJOYW1lIjoiU0hIUFhCIiwic3VwcGxpZXJJZCI6MTAwMDE2NSwiZXhwIjoxNzQ0NTEwNzkwfQ.JPk0OA7slYJN3FIi_uhW4Y0CiWRvl6R1dK8MRTbyhD8'
if(!(reqUrl=='/supplier/supplierTraining/trainingTask' || reqUrl=='/supplier/supplierTraining/normalList' || reqUrl=='/supplier/supplierTraining/trainingList')){ if(!(reqUrl=='/supplier/supplierTraining/trainingTask' || reqUrl=='/supplier/supplierTraining/normalList' || reqUrl=='/supplier/supplierTraining/trainingList')){
if(token) {
config.headers['Authorization'] = `${token}`; config.headers['Authorization'] = `${token}`;
config.headers['token'] = `${token}`; config.headers['token'] = `${token}`;
}
} }
return config return config
}, },

View File

@ -1,3 +1,4 @@
import { getAddressForService } from "@/api/secondHandCar"
// 获取定位, 返回 经纬度 // 获取定位, 返回 经纬度
export function getLocal(mapContext) { export function getLocal(mapContext) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
@ -36,6 +37,7 @@ export function getAddress(mapContext, lnglat) {
} else { } else {
console.log(result) console.log(result)
alert(JSON.stringify(result)) alert(JSON.stringify(result))
reject(result)
} }
}) })
}) })
@ -44,8 +46,20 @@ export function getAddress(mapContext, lnglat) {
// 输入提示 // 输入提示
export function searchFun(mapContext, cityCode, keyword) { export function searchFun(mapContext, cityCode, keyword) {
return new Promise((resolve, reject) => { return new Promise((resolve) => {
mapContext.plugin('AMap.AutoComplete', function(){ getAddressForService({
city: '',
address: keyword
}).then((res) => {
if(res.code == 200) {
resolve(res?.data?.pois || [])
} else {
resolve([])
}
}).catch(() => {
resolve([])
})
/*mapContext.plugin('AMap.AutoComplete', function(){
var autoOptions = { var autoOptions = {
city: cityCode || '全国', city: cityCode || '全国',
}; };
@ -57,10 +71,10 @@ export function searchFun(mapContext, cityCode, keyword) {
if(result.info == 'OK') { if(result.info == 'OK') {
resolve(result.tips) resolve(result.tips)
} else { } else {
reject(result) resolve([])
} }
}) })
}) })*/
}) })
} }
@ -90,6 +104,7 @@ export function getRoad( mapContext, startLng, startLat, endLng, endLat ) {
} }
/*
function drawRoute(route, map) { function drawRoute(route, map) {
let path = parseRouteToPath(route) let path = parseRouteToPath(route)
@ -106,3 +121,4 @@ function drawRoute(route, map) {
map.add(routeLine); map.add(routeLine);
} }
*/

View File

@ -5,6 +5,12 @@ export const myMixins = {
} }
}, },
methods: { methods: {
showFun() {
if( localStorage.getItem('infoVerify') == 8 || localStorage.getItem('infoVerify') == 12 ) {
return false
}
return true
},
goPage(page, query) { goPage(page, query) {
this.$router.push({ this.$router.push({
name: page, name: page,

View File

@ -90,6 +90,7 @@ export default {
totalList:[], totalList:[],
numInfo:'', numInfo:'',
keyword:'', keyword:'',
serviceTypeName:'',
show:false, show:false,
showEmpty:false, showEmpty:false,
isLoading:false, isLoading:false,
@ -101,7 +102,8 @@ export default {
const urlParams = new URLSearchParams(window.location.search); const urlParams = new URLSearchParams(window.location.search);
this.driverId = urlParams.get('driverId'); this.driverId = urlParams.get('driverId');
this.time=timeFormat(Date.now()) this.time=timeFormat(Date.now())
this.keyword=urlParams.get('keyWord') || '' this.keyword=urlParams.get('keyword') || ''
this.serviceTypeName=urlParams.get('serviceTypeName') || ''
this.getTrainingList(); this.getTrainingList();
document.addEventListener('visibilitychange', async ( ) => { document.addEventListener('visibilitychange', async ( ) => {
let state = document.visibilityState let state = document.visibilityState
@ -129,6 +131,7 @@ export default {
type:1, type:1,
id:this.driverId, id:this.driverId,
text:this.keyword || '', text:this.keyword || '',
serviceTypeName:this.serviceTypeName || ''
}) })
this.totalList=[] this.totalList=[]
this.pageList=[] this.pageList=[]

View File

@ -36,9 +36,6 @@
v-model="keyword" v-model="keyword"
placeholder="名称/关键词/简介" placeholder="名称/关键词/简介"
> >
<!-- <template #button>
<van-icon class="search" name="search" size="20" @click="getTrainingList"/>
</template>-->
</van-field> </van-field>
</template> </template>
<template slot="left"> <template slot="left">
@ -104,32 +101,34 @@ export default {
this.supplierId = urlParams.get('supplierId'); this.supplierId = urlParams.get('supplierId');
this.driverId = urlParams.get('driverId'); this.driverId = urlParams.get('driverId');
if(this.driverId){ if(this.driverId){
this.keyword=urlParams.get('keyWord') || '' this.keyword=urlParams.get('keyword') || ''
} }
this.getNormalList() this.getNormalList()
}, },
methods:{ methods:{
onRefresh() { onRefresh() {
this.getNormalList() this.getNormalList()
setTimeout(() => { if(!this.isLoading){
this.$toast('刷新成功');
}
/* setTimeout(() => {
this.$toast('刷新成功'); this.$toast('刷新成功');
this.isLoading = false; this.isLoading = false;
}, 1000); }, 1000);*/
}, },
async changeTab(index) { async changeTab(index) {
this.activeIndex = index this.activeIndex = index
await this.getNormalList() await this.getNormalList()
}, },
async getNormalList(){ async getNormalList(){
let res= await getNormalList({ this.isLoading = true;
type:this.supplierId ? 2 : 1,
// type:2,
id: this.supplierId ? this.supplierId : this.driverId,
// id:this.supplierId,//33041,
text:this.keyword || '',
})
this.totalList=[] this.totalList=[]
this.pageList=[] this.pageList=[]
let res= await getNormalList({
type:this.supplierId ? 2 : 1,
id: this.supplierId ? this.supplierId : this.driverId,
text:this.keyword || '',
})
this.totalList=res.data.list this.totalList=res.data.list
let result=[] let result=[]
if(this.activeIndex === 0){ if(this.activeIndex === 0){
@ -149,6 +148,7 @@ export default {
}else { }else {
this.showEmpty = false this.showEmpty = false
} }
this.isLoading = false
}, },
initShow(){ initShow(){
this.keyword= '', this.keyword= '',

View File

@ -68,6 +68,7 @@ export default {
pageList:[], pageList:[],
totalList:[], totalList:[],
keyword:'', keyword:'',
serviceTypeName:'',
show:false, show:false,
showEmpty:false, showEmpty:false,
isLoading:false, isLoading:false,
@ -77,6 +78,8 @@ export default {
mounted() { mounted() {
const urlParams = new URLSearchParams(window.location.search); const urlParams = new URLSearchParams(window.location.search);
this.supplierId = urlParams.get('supplierId'); this.supplierId = urlParams.get('supplierId');
this.keyword=urlParams.get('keyword') || ''
this.serviceTypeName=urlParams.get('serviceTypeName') || ''
this.getTrainingList(); this.getTrainingList();
document.addEventListener('visibilitychange', async ( ) => { document.addEventListener('visibilitychange', async ( ) => {
let state = document.visibilityState let state = document.visibilityState
@ -104,6 +107,7 @@ export default {
type:2, type:2,
id: this.supplierId, id: this.supplierId,
text:this.keyword || '', text:this.keyword || '',
serviceTypeName:this.serviceTypeName || ''
}) })
this.totalList=[] this.totalList=[]
this.pageList=[] this.pageList=[]

View File

@ -88,7 +88,8 @@
<script> <script>
import { Decimal } from 'decimal.js'; import { Decimal } from 'decimal.js';
import {myMixins} from "@/utils/myMixins" import {myMixins} from "@/utils/myMixins"
import {notifyInvoiceList} from "@/api/mine" import {notifyInvoiceList, jumpPage} from "@/api/mine"
import {Dialog} from "vant";
export default { export default {
name: "invoicingNotify", name: "invoicingNotify",
mixins:[myMixins], mixins:[myMixins],
@ -154,7 +155,7 @@ export default {
} }
} }
}, },
changeTabHandler() { async changeTabHandler() {
this.pageNum = 1; this.pageNum = 1;
this.notifyList = []; this.notifyList = [];
this.checkList = []; this.checkList = [];
@ -166,6 +167,20 @@ export default {
this.status = 2; this.status = 2;
this.dispatchAppSearchInvoiced = ''; this.dispatchAppSearchInvoiced = '';
this.pageSize = 10000 this.pageSize = 10000
let res = await this.getJumpHandler();
if(res?.data?.jump) {
Dialog.alert({
message: '您有暂未完成的培训请在中道调度APP上完成培训再进行发票上传',
confirmButtonText: '去培训',
confirmButtonColor: '#0E76F4',
showCancelButton: false,
}).then(async() => {
this.goPage('newTrainingList', { supplierId : this.supplierId, type: 'invoice' })
}).catch(() => {
// on cancel
});
return false
}
} else if(this.active == 3) { // 已开票,需要分页 } else if(this.active == 3) { // 已开票,需要分页
this.status = ''; this.status = '';
this.dispatchAppSearchInvoiced = 1; this.dispatchAppSearchInvoiced = 1;
@ -173,6 +188,12 @@ export default {
} }
this.getNotifyList() this.getNotifyList()
}, },
async getJumpHandler() {
let res = await jumpPage({
type: 'invoice'
});
return res
},
getMonth(item) { getMonth(item) {
let str = ''; let str = '';
let startTime = new Date(item.createTime); let startTime = new Date(item.createTime);

View File

@ -0,0 +1,299 @@
<template>
<div class="wrap">
<div class="top_banner">
<img src="@/assets/supplier/topBg.png" alt="">
</div>
<div class="content_wrap">
<div class="credentials_info">
<img class="title1" src="@/assets/supplier/title1.png" alt="">
<div class="credentials_wrap">
<div class="credentials_item">
<div class="credentials_title">1. 法人身份证正面</div>
<van-uploader
accept="image/*"
v-model="idFrontPhotoList"
:after-read="idFrontPhotoHandler"
:max-size="5 * 1024 * 1024"
max-count="1">
<div class="custom-background">
<img src="@/assets/supplier/idCardPerson.png" alt="">
</div>
</van-uploader>
</div>
<div class="credentials_item ml2">
<div class="credentials_title">2. 法人身份证反面</div>
<van-uploader
accept="image/*"
v-model="idBackPhotoList"
:after-read="idBackPhotoHandler"
:max-size="5 * 1024 * 1024"
max-count="1">
<div class="custom-background">
<img src="@/assets/supplier/idCardBack.png" alt="">
</div>
</van-uploader>
</div>
<div class="credentials_item ml2">
<div class="credentials_title">3. 营业执照</div>
<van-uploader
accept="image/*"
v-model="companyPhotoList"
:after-read="companyPhotoHandler"
:max-size="5 * 1024 * 1024"
max-count="1">
<div class="custom-background">
<img src="@/assets/supplier/companyPhoto.png" alt="">
</div>
</van-uploader>
</div>
</div>
</div>
<div class="company_info">
<img class="title2" src="@/assets/supplier/title2.png" alt="">
<div class="company_wrap">
<van-form>
<van-field :border="true" v-model="form.supplierName" class="required" name="supplierName" label="服务商名称" placeholder="请输入" :rules="[{ required: true, message: '请输入服务商名称' }]" />
<van-field :border="true" v-model="form.supplierName" class="required" name="supplierName" label="法人名称" placeholder="请输入" :rules="[{ required: true, message: '请输入法人名称' }]" />
<van-field :border="true" v-model="form.supplierName" class="required" name="supplierName" label="联系人姓名" placeholder="请输入" :rules="[{ required: true, message: '请输入联系人姓名' }]" />
<van-field :border="true" v-model="form.supplierName" class="required" name="supplierName" label="联系电话" placeholder="请输入" :rules="[{ required: true, message: '请输入联系电话' }]" />
<van-field :border="true" v-model="form.supplierName" class="required" name="supplierName" label="服务能力" placeholder="请输入" :rules="[{ required: true, message: '请选择服务能力' }]" />
<van-field :border="true" v-model="form.supplierName" class="required" name="supplierName" label="服务能力" :rules="[{ required: true, message: '请选择服务能力' }]">
<template #input>
<el-tree
show-checkbox
node-key="id"
ref="tree"
:highlight-current="true"
:expand-on-click-node="false"
:data="supplierServiceList"
:props="defaultProps">
</el-tree>
</template>
</van-field>
<van-field :border="true" v-model="form.supplierName" class="required" name="supplierName" label="拖车数量" placeholder="请输入" :rules="[{ required: true, message: '请输入拖车数量' }]" />
<van-field :border="true" v-model="form.supplierName" class="required" name="supplierName" label="抢修车数量" placeholder="请输入" :rules="[{ required: true, message: '请输入抢修车数量' }]" />
<van-field name="supplierName" class="required" label="服务区域" placeholder="请选择" :rules="[{ required: true, message: '请选择服务区域' }]">
<template #input>
<span @click="areaShow = true">//</span>
</template>
</van-field>
</van-form>
<div class="wei_code_wrap">
<div class="wei_title">请先添加企业微信保证申请流程正常进行</div>
<div class="wei_code_bg">
<img v-if="qrCodeUrl" :src="qrCodeUrl" alt="企业微信二维码" />
</div>
</div>
</div>
</div>
</div>
<div class="btn_wrap">
<div class="btn">
提交申请
</div>
</div>
<van-popup
v-model="areaShow"
position="bottom"
>
<van-area title="服务区域" :area-list="areaList" :columns-num="3" closeable="true" :value="form.areaCode ? String(form.areaCode) : ''"
@cancel="areaShow = false" @confirm="confirmHandle"/>
</van-popup>
</div>
</template>
<script>
import QRCode from 'qrcode'
import { uploadImage, supplierServiceTree } from "@/api/mine"
import {myMixins} from "@/utils/myMixins"
import {areaList} from "@vant/area-data";
export default {
name: "supplierAdd",
mixins:[myMixins],
data() {
return {
id:'', //车辆Id
idBackPhotoList: [],
idBackPhoto: '',
idFrontPhotoList: [],
idFrontPhoto: '',
companyPhotoList: [],
companyPhoto: '',
form: {
supplierName: '',
},
qrCodeUrl: '',
areaShow: false,
areaList: areaList,
region: [],
supplierServiceList: [],
defaultProps: {
children: 'children',
label: 'name'
},
}
},
mounted() {
this.getQrCode();
this.getSupplierServiceTree();
},
methods: {
async getSupplierServiceTree(){
let res = await supplierServiceTree();
this.supplierServiceList=res.data
},
confirmHandle(val){
this.region=[]
val?.forEach(item => this.region.push(item.name))
let code=[]
val?.forEach(item => code.push(item.code))
this.form.areaCode=code[code.length - 1]
this.areaShow=false
},
async getQrCode() {
try {
this.qrCodeUrl = await QRCode.toDataURL('123123', {
width: 150,
margin: 2,
color: {
dark: '#000000',
light: '#FFFFFF'
},
})
} catch (error) {
console.error('生成二维码失败:', error)
}
},
async idBackPhotoHandler(file) {
const formData = new FormData();
formData.append("file" , file.file);
let res = await uploadImage(formData);
this.idBackPhoto = res.data
},
async idFrontPhotoHandler(file) {
const formData = new FormData();
formData.append("file" , file.file);
let res = await uploadImage(formData);
this.idFrontPhoto = res.data
},
async companyPhotoHandler(file) {
const formData = new FormData();
formData.append("file" , file.file);
let res = await uploadImage(formData);
this.companyPhoto = res.data
}
},
computed: {
regionText() {
return this.region.length ? `${this.region[0]}/${this.region[1]}/${this.region[2]}` : '请选择所在地区';
}
},
}
</script>
<style scoped lang="scss">
@import "@/styles/mixin.scss";
@import "@/styles/common.scss";
.wrap{
@include wh(100%,100%);
box-sizing: border-box;
padding-bottom: 100px;
overflow-y: auto;
}
.top_banner {
width: 100%;
img {
width: 100%;
height: 169px;
}
}
.content_wrap {
padding: 0 20px;
}
.credentials_info {
height: 170px;
}
.credentials_wrap {
display: flex;
width: 100%;
margin-top: 10px;
.credentials_item {
width: 32%;
text-align: center;
.credentials_title {
font-size: 12px;
color: #4A4A4A;
padding: 10px 0;
}
.custom-background img {
width: 97px;
height: 64px;
}
}
.ml2 {
margin-left: 2%;
}
}
::v-deep .van-uploader__preview-image {
width: 97px;
height: 64px;
}
.title1 {
width: 106px;
height: 19px;
margin-top: 25px;
}
.title2 {
width: 90px;
height: 18px;
margin-top: 25px;
margin-bottom: 10px;
}
.van-cell.required::before{
content: "";
position: absolute;
color: #F00;
left: 0px;
top: .25rem;
font-size: .3rem;
}
.wei_code_wrap {
.wei_title {
font-size: 15px;
color: #FF553B;
text-align: center;
}
.wei_code_bg {
width: 163px;
height: 173px;
background-image: url("~@/assets/supplier/weiCodeBg.png");
background-size: 100% 100%;
margin: 8px auto;
display: flex;
align-items: center;
justify-content: center;
}
}
.btn_wrap {
width: 100%;
padding: 15px 0;
position: fixed;
bottom: 0;
background: #F7F7F9;
box-shadow: 0px -7px 24px 0px rgba(0, 0, 0, 0.11);
z-index: 10000 !important;
.btn {
width: calc(100% - 80px);
margin-left: 40px;
height: 46px;
background: #0E76F4;
border-radius: 5px;
font-size: 15px;
color: #FFFFFF;
text-align: center;
line-height: 46px;
}
}
</style>

View File

@ -0,0 +1,226 @@
<template>
<div>
<div class="nav_bar_bg status_danger">
<template v-if="false">
<div class="status_wrap">
<img class="wait_icon" src="@/assets/supplier/waitIcon.png" alt="">
<span class="wait_status">审批中</span>
</div>
</template>
<template v-if="false">
<div class="status_wrap">
<img class="wait_icon" src="@/assets/supplier/successIcon.png" alt="">
<span class="wait_status success_status">恭喜你审核通过</span>
</div>
</template>
<template>
<div class="status_wrap">
<img class="wait_icon" src="@/assets/supplier/failIcon.png" alt="">
<span class="wait_status danger_status">审核不通过</span>
</div>
<div class="danger_tip">
不知道是多是少就按照这样给字号了不知道不知道是多是少就按照这样给字号了不知道不知道是多是少就按照这样给字号了不知道
</div>
</template>
</div>
<div class="supplier_content">
<div class="credentials_info">
<div class="common_title">证件照信息</div>
<div class="credentials_wrap">
<div class="credentials_item">
<div class="credentials_title">1. 法人身份证正面</div>
<img src="@/assets/supplier/idCardPerson.png" alt="">
</div>
<div class="credentials_item ml2">
<div class="credentials_title">2. 法人身份证反面</div>
<img src="@/assets/supplier/idCardPerson.png" alt="">
</div>
<div class="credentials_item ml2">
<div class="credentials_title">3. 营业执照</div>
<img src="@/assets/supplier/idCardPerson.png" alt="">
</div>
</div>
</div>
<div class="company_info">
<div class="common_title">公司信息</div>
<div class="info_wrap">
<div class="info_item">
<div class="label">服务商名称</div>
<div class="content">苏州速道汽车服务有限公司</div>
</div>
<div class="info_item">
<div class="label">法人姓名</div>
<div class="content">666</div>
</div>
<div class="info_item">
<div class="label">联系人姓名</div>
<div class="content">666</div>
</div>
<div class="info_item">
<div class="label">联系电话</div>
<div class="content">666</div>
</div>
<div class="info_item">
<div class="label">服务能力</div>
<div class="content service_color">拖车服务抢修服务</div>
</div>
<div class="info_item">
<div class="label">拖车数量</div>
<div class="content">23</div>
</div>
<div class="info_item">
<div class="label">抢修车数量</div>
<div class="content">12</div>
</div>
<div class="info_item">
<div class="label">服务区域</div>
<div class="content">//</div>
</div>
</div>
</div>
<div class="btn_wrap">
修改信息
</div>
</div>
</div>
</template>
<script>
import {myMixins} from "@/utils/myMixins"
export default {
name: "supplierInfo",
mixins:[myMixins],
data() {
return {
id:'', //车辆Id
}
}
}
</script>
<style scoped lang="scss">
.nav_bar_bg {
width: 100%;
height: 125px;
padding-top: 50px;
}
.status_wait {
background: linear-gradient( 180deg, #FFE4C9 0%, rgba(255,248,233,0) 100%);
}
.status_success {
background: linear-gradient( 180deg, #DAFFF8 0%, rgba(237,255,233,0) 100%);
}
.status_danger {
background: linear-gradient( 180deg, #FFE8DA 0%, rgba(255,233,233,0) 100%);
}
.status_wrap {
display: flex;
align-items: center;
.wait_icon {
width: 34px;
height: 34px;
margin-left: 31px;
}
.wait_status {
color: #E69B0B;
font-weight: 600;
font-size: 16px;
margin-left: 11px;
}
.success_status {
color: #37B864;
}
.danger_status {
color: #ED440C;
}
}
.danger_tip {
font-size: 12px;
color: #FF553B;
line-height: 18px;
padding-left: 38px;
padding-right: 23px;
margin-top: 5px;
}
.supplier_content {
padding: 0 24px;
width: 100%;
box-sizing: border-box;
}
.common_title {
font-weight: 500;
font-size: 14px;
color: rgba(50, 54, 67, 0.66);
padding-left: 2px;
}
.common_title::after {
content: '';
display: block;
width: 100%;
border: 1px solid;
margin-top: 10px;
opacity: 0.16;
border-image: linear-gradient(270deg, rgba(217, 217, 217, 0.6), rgba(178, 178, 178, 1), rgba(178, 178, 178, 1), rgba(217, 217, 217, 0.6)) 1 1;
}
.credentials_wrap {
display: flex;
width: 100%;
margin-top: 10px;
.credentials_item {
width: 32%;
text-align: center;
.credentials_title {
font-size: 12px;
color: #4A4A4A;
padding: 10px 0;
}
img {
width: 97px;
height: 64px;
}
}
.ml2 {
margin-left: 2%;
}
}
.company_info {
margin-top: 20px;
.company_wrap {
.info_wrap {
margin-top: 10px;
.info_item {
display: flex;
padding: 10px 2px;
.label {
font-size: 13px;
color: rgba(50, 54, 67, 0.6);
width: 90px;
flex-shrink: 0;
}
.content {
font-size: 13px;
color: #323643;
/*font-weight: bold;*/
flex: 1;
}
.service_color {
color: rgba(230, 155, 11, 0.9);
}
}
}
}
}
.btn_wrap {
width: calc(100% - 80px);
height: 46px;
position: fixed;
bottom: 20px;
left: 40px;
background: #0E76F4;
border-radius: 5px;
font-size: 15px;
color: #FFFFFF;
text-align: center;
line-height: 46px;
}
</style>

View File

@ -62,7 +62,7 @@
</div> </div>
<div class="upload_btn_wrap"> <div class="upload_btn_wrap">
<div class="btn_save" @click="createInvoiceHandler">保存</div> <div class="btn_save" @click="createInvoiceHandler">保存</div>
<van-uploader :before-read="beforeRead" :after-read="afterRead" accept=".png,.jpg,.jpeg,.pdf,.ofd"> <van-uploader :before-read="beforeRead" use-before-read :after-read="afterRead" accept=".png,.jpg,.jpeg,.pdf,.ofd">
<div class="btn_upload"> <div class="btn_upload">
<img class="icon_upload" src="@/assets/icon_upload.png" alt=""> <img class="icon_upload" src="@/assets/icon_upload.png" alt="">
上传发票 上传发票
@ -76,13 +76,14 @@
import { Decimal } from 'decimal.js'; import { Decimal } from 'decimal.js';
import { Dialog } from "vant"; import { Dialog } from "vant";
import { myMixins } from "@/utils/myMixins" import { myMixins } from "@/utils/myMixins"
import { uploadInvoice, getBillingInfo, deleteInvoice, createBatch } from "@/api/mine" import { uploadInvoice, getBillingInfo, deleteInvoice, createBatch} from "@/api/mine"
export default { export default {
name: "uploadInvoice", name: "uploadInvoice",
mixins:[ myMixins ], mixins:[ myMixins ],
data(){ data(){
return { return {
list: [], list: [],
fileObj: '',
invoiceMoneyTotal: 0, invoiceMoneyTotal: 0,
tableData: [], tableData: [],
activeObj: {}, activeObj: {},
@ -132,6 +133,10 @@
} }
}, },
methods: { methods: {
/* async getJumpHandler() {
let res = await jumpPage();
return res
},*/
async initData() { async initData() {
this.list = JSON.parse(localStorage.getItem('list')); this.list = JSON.parse(localStorage.getItem('list'));
this.batchIds = []; this.batchIds = [];
@ -230,14 +235,13 @@
}).catch(() => { }).catch(() => {
}); });
}, },
beforeRead (file) { async beforeRead (file) {
const FileExt = file.name.replace(/.+\./, ""); const FileExt = file.name.replace(/.+\./, "");
if (['jpg', 'png', 'jpeg', 'pdf', 'ofd'].indexOf(FileExt.toLowerCase()) === -1) { if (['jpg', 'png', 'jpeg', 'pdf', 'ofd'].indexOf(FileExt.toLowerCase()) === -1) {
this.$toast('请上传后缀名为jpg、jpeg、png、pdf、ofd的文件') this.$toast('请上传后缀名为jpg、jpeg、png、pdf、ofd的文件')
return false; return false
} }
this.$set(this.activeObj, 'fileType', FileExt) this.$set(this.activeObj, 'fileType', FileExt)
return true
}, },
async afterRead (file) { async afterRead (file) {
try { try {

Some files were not shown because too many files have changed in this diff Show More