Compare commits

...

274 Commits

Author SHA1 Message Date
9be57ad750 Merge pull request 'test' (#47) from test into master
Reviewed-on: #47
2023-10-17 08:53:53 +08:00
f7313c5911 Merge pull request 'lb' (#46) from lb into test
Reviewed-on: #46
2023-10-17 08:38:26 +08:00
lb
a7e81ad8fb Merge branch 'test' into lb 2023-10-16 17:04:34 +08:00
lb
32cbf9076f update 更新设备类型上传 2023-10-16 17:03:29 +08:00
9a411cc663 Merge pull request 'dy' (#45) from dy into test
Reviewed-on: #45
2023-10-16 15:50:05 +08:00
helloDy
445a88e540 Merge branch 'test' into dy 2023-10-16 15:47:50 +08:00
helloDy
2b355aaf8f ui 2023-10-16 15:47:31 +08:00
lb
f60a46ed1d update 设备信息上传 2023-10-16 15:36:26 +08:00
2688896660 Merge pull request 'dy' (#44) from dy into test
Reviewed-on: #44
2023-10-13 17:12:02 +08:00
helloDy
4a67e226e1 merge 2023-10-13 17:09:07 +08:00
helloDy
11ee0d6541 Merge branch 'test' into dy 2023-10-13 17:06:35 +08:00
98b3237c9a Merge pull request 'lb' (#43) from lb into test
Reviewed-on: #43
2023-10-13 17:06:02 +08:00
helloDy
46aaa47e07 bug 2023-10-13 17:05:01 +08:00
lb
ca0f62b2eb Merge branch 'test' into lb 2023-10-13 17:04:18 +08:00
lb
5534104e87 update equipment edit 2023-10-13 17:01:49 +08:00
lb
b72fe1bfed update equipment edit 2023-10-13 16:08:31 +08:00
f4493bde1c Merge pull request 'dy' (#42) from dy into test
Reviewed-on: #42
2023-10-12 17:06:04 +08:00
helloDy
d682ecc91c Merge branch 'test' into dy 2023-10-12 17:05:03 +08:00
helloDy
2b76ef7d23 bug 2023-10-12 17:04:03 +08:00
lb
9ec13b35b8 update equipment 2023-10-12 17:03:07 +08:00
lb
7acccd3de0 bugfix zentao 2023-10-12 15:40:05 +08:00
e40f45a79a Merge pull request 'zjl' (#41) from zjl into test
Reviewed-on: #41
2023-10-12 14:43:24 +08:00
77083a84a1 merge test 2023-10-12 14:41:59 +08:00
9f53ea6981 10.12 2023-10-12 14:39:59 +08:00
lb
8f634d012c bugfix zentao 2023-10-12 11:08:51 +08:00
03c573d5b2 Merge pull request 'zjl' (#40) from zjl into test
Reviewed-on: #40
2023-10-11 14:34:26 +08:00
348714edaf merge test 2023-10-11 14:33:37 +08:00
814fe4605a UI样式修改能源&班组 2023-10-11 14:30:18 +08:00
bb6bfc5ab6 Merge pull request 'lb' (#39) from lb into test
Reviewed-on: #39
2023-10-11 10:33:08 +08:00
lb
0162f338ba Merge branch 'test' into lb 2023-10-11 10:30:25 +08:00
lb
8f99915720 add 设备看板 2023-10-11 10:29:26 +08:00
744e5d80be Merge pull request 'dy' (#38) from dy into test
Reviewed-on: #38
2023-10-10 17:08:40 +08:00
helloDy
d3b119ad9b Merge branch 'test' into dy 2023-10-10 17:07:02 +08:00
helloDy
69bdab75d4 bug 2023-10-10 17:06:39 +08:00
lb
af5e0333ed update ui 2023-10-10 17:01:57 +08:00
lb
b2ee61b8cb update 改为抽屉展示 2023-10-10 14:22:00 +08:00
lb
723d83cc02 update 设备分组 2023-10-10 10:04:23 +08:00
lb
769830c448 update 设备分组 2023-10-09 17:01:19 +08:00
lb
907db90e93 update 设备分组的抽屉 2023-10-09 16:27:44 +08:00
lb
6e390bf12a update 2023-10-09 13:32:33 +08:00
lb
b39f0625a1 update 2023-10-09 11:37:19 +08:00
lb
e985c73e00 update gantt 2023-10-08 17:14:18 +08:00
180fcf5ad8 Merge pull request 'dy' (#37) from dy into test
Reviewed-on: #37
2023-10-08 17:03:04 +08:00
helloDy
b1c0d21888 Merge branch 'test' into dy 2023-10-08 16:59:31 +08:00
helloDy
96d52fafee pdf 2023-10-08 16:59:09 +08:00
lb
4f7889ff60 done time sequence demo 2023-10-08 15:53:38 +08:00
lb
bc2c5a4787 update time sequence status 2023-10-08 15:00:38 +08:00
lb
ab8e9cb2a5 update 2023-10-08 14:30:50 +08:00
lb
57960ff8bf update print page 2023-10-08 10:18:08 +08:00
lb
b9e39dacf1 bugfix zentao 2023-10-08 09:31:02 +08:00
lb
80ad95be6e add print module 2023-10-07 14:29:43 +08:00
7dfaae02a8 Merge pull request 'lb' (#36) from lb into test
Reviewed-on: #36
2023-09-27 17:00:53 +08:00
lb
cf2d7af94b delete echarts 2023-09-27 17:00:33 +08:00
lb
a48b31dcbe Merge branch 'test' into lb 2023-09-27 16:58:28 +08:00
lb
96b0a9e503 update 产品质量分析 2023-09-27 16:57:57 +08:00
lb
9c257aa24a update demo 2023-09-27 16:19:55 +08:00
lb
7ab5f1b812 update demo 2023-09-27 14:42:38 +08:00
lb
5c796cd44f add custom echarts demo 2023-09-27 14:01:57 +08:00
lb
fe0b5538a8 update 设备产量时序图 2023-09-27 13:22:09 +08:00
lb
90695acefd update 检测信息记录 2023-09-27 10:14:24 +08:00
a90c5cca0c Merge pull request 'zjl' (#35) from zjl into test
Reviewed-on: #35
2023-09-27 09:38:02 +08:00
4d7e3c0e04 merge test 2023-09-27 09:36:20 +08:00
ee40707d2c 修改bug及能源分析样式 2023-09-27 09:33:28 +08:00
lb
20808c0975 update 产量时序图 2023-09-26 17:00:46 +08:00
lb
87f56dd9ac update responsejson 2023-09-26 15:12:41 +08:00
lb
24ffea330d update 设备产量分析 2023-09-26 14:56:00 +08:00
lb
a4594426c3 bugfix 2023-09-26 14:38:30 +08:00
lb
c899bb37e3 update quality inspection record 2023-09-26 11:03:34 +08:00
47e91d821b Merge pull request 'lb' (#34) from lb into test
Reviewed-on: #34
2023-09-25 17:14:23 +08:00
lb
d907d2f341 Merge branch 'test' into lb 2023-09-25 17:13:47 +08:00
lb
1116531aff update 2023-09-25 16:58:35 +08:00
lb
8dc5bbb4d8 update 2023-09-25 16:53:31 +08:00
lb
c24d22aedd update 2023-09-25 16:34:05 +08:00
lb
bbbfa9644d bugfix 2023-09-25 15:47:39 +08:00
db4ecc91d6 Merge pull request 'dy' (#33) from dy into test
Reviewed-on: #33
2023-09-22 16:59:55 +08:00
helloDy
699810f40a Merge branch 'test' into dy 2023-09-22 16:54:40 +08:00
helloDy
d454f20bd6 bug 2023-09-22 16:54:16 +08:00
lb
56f209a27e Merge branch 'test' into lb 2023-09-22 16:29:50 +08:00
lb
980f3468b7 update homepage 2023-09-22 16:29:31 +08:00
95da2191dd Merge pull request 'zjl' (#32) from zjl into test
Reviewed-on: #32
2023-09-22 11:09:34 +08:00
42550264c8 merge test 2023-09-22 11:08:58 +08:00
727f7d57c3 能源bug 2023-09-22 11:06:43 +08:00
aa32e4d3fb Merge pull request 'lb' (#31) from lb into test
Reviewed-on: #31
2023-09-22 10:54:56 +08:00
lb
dcda3a6294 bugfix 2023-09-22 10:54:21 +08:00
lb
f43b1c1eab update 设备加工数量 2023-09-22 10:29:28 +08:00
ca3965e8cb Merge pull request 'lb' (#30) from lb into test
Reviewed-on: #30
2023-09-22 09:57:16 +08:00
lb
ee3d6f9dc6 merge 2023-09-22 09:28:41 +08:00
lb
e2a777069e update 设备加工数量 2023-09-21 17:09:15 +08:00
lb
06fa7d40b3 update 设备加工数量 2023-09-21 17:03:07 +08:00
lb
f6f0480744 update 设备加工数量 2023-09-21 16:00:46 +08:00
lb
45e7f337bf update 设备加工数量 2023-09-21 15:54:11 +08:00
lb
8e0d63839a update 设备加工数量 2023-09-21 15:35:16 +08:00
lb
6c21f01fd7 update 设备加工数量 2023-09-21 15:14:38 +08:00
lb
52bc38499c update 设备效率分析 2023-09-21 14:54:16 +08:00
lb
c600d14f8f update 设备产量时序图 2023-09-20 17:03:39 +08:00
2265c549e6 Merge pull request 'zjl' (#29) from zjl into test
Reviewed-on: #29
2023-09-20 16:59:53 +08:00
a74242f3b3 mrege test 2023-09-20 16:59:13 +08:00
ebcf3d4d78 修改bug 2023-09-20 16:57:20 +08:00
lb
8ad84a4d61 update 设备产量时序图 2023-09-20 14:44:39 +08:00
ff9e93d264 Merge pull request 'dy' (#28) from dy into test
Reviewed-on: #28
2023-09-20 14:28:21 +08:00
lb
928258e509 update 设备状态时序图 2023-09-20 14:11:36 +08:00
helloDy
ee0affc78f Merge branch 'test' into dy 2023-09-20 13:58:36 +08:00
helloDy
dfec94be17 表格 2023-09-20 13:58:14 +08:00
lb
a12530b835 update 质量检测统计数据 2023-09-20 11:17:34 +08:00
lb
b3db8dcae8 update 检测统计数据chart 2023-09-20 10:49:17 +08:00
lb
24a0857808 update 质量检测统计数据 2023-09-20 09:50:38 +08:00
lb
e0cc022e34 update 产品质量分析样式 2023-09-20 09:11:31 +08:00
lb
71bcd14c72 update 产品质量分析chart 2023-09-19 17:06:19 +08:00
646859aeef Merge pull request '修bug' (#27) from zjl into test
Reviewed-on: #27
2023-09-19 15:47:12 +08:00
5a31498224 修bug 2023-09-19 15:45:16 +08:00
lb
c965dfbc5a bugfix 2023-09-18 17:01:44 +08:00
lb
c364162a2a update no-data-background 2023-09-18 15:14:18 +08:00
282ef45114 Merge pull request 'zjl' (#26) from zjl into test
Reviewed-on: #26
2023-09-18 14:49:52 +08:00
0371859d14 排班及bug 2023-09-18 14:49:03 +08:00
lb
7407b97f5a bugfix zentao 2023-09-18 13:52:36 +08:00
eff5e0d1e1 merge test 2023-09-18 08:50:53 +08:00
60dc449a27 排班 2023-09-18 08:41:14 +08:00
159d626b30 Merge pull request 'dy' (#25) from dy into test
Reviewed-on: #25
2023-09-16 18:00:34 +08:00
helloDy
bc5d3d44d5 页面 2023-09-16 17:51:09 +08:00
lb
a6d8a7a9da update 2023-09-15 15:45:37 +08:00
lb
7d2bfaea18 bugfix zentao 2 2023-09-15 14:49:31 +08:00
helloDy
e9538744c3 冲突 2023-09-15 14:38:43 +08:00
helloDy
8cf2f9f7e9 生产监控 2023-09-15 14:37:30 +08:00
lb
772a4b0633 bugfix zentao 1 2023-09-15 14:30:19 +08:00
lb
27ebe39a96 update image 2023-09-13 17:06:02 +08:00
zhp
97f9b52e87 Merge pull request 'zhp' (#24) from zhp into test
Reviewed-on: #24
2023-09-13 16:02:02 +08:00
‘937886381’
f85cb9c50f Merge branch 'test' into zhp 2023-09-13 16:01:18 +08:00
‘937886381’
e8cc1fc50b 生产分析 2023-09-13 16:00:43 +08:00
f08c79fc23 Merge pull request 'update router mode' (#23) from lb into test
Reviewed-on: #23
2023-09-13 12:28:57 +08:00
lb
f341ec7b30 update router mode 2023-09-13 12:24:52 +08:00
2c6a6b001c Merge pull request 'lb' (#22) from lb into test
Reviewed-on: #22
2023-09-12 11:13:59 +08:00
lb
b17bc0e162 update build:prod PUBLIC_PATH 2023-09-12 11:12:05 +08:00
lb
d595bf2660 Merge branch 'test' into lb 2023-09-12 11:10:45 +08:00
lb
529889fd07 update 工段设备绑定 dialogForm 2023-09-12 11:09:51 +08:00
lb
2f18299b0b add dialogForm of equipmentbind 2023-09-11 16:47:12 +08:00
d1c93cbf46 Merge pull request 'zhp' (#21) from zhp into test
Reviewed-on: #21
2023-09-11 16:11:04 +08:00
‘937886381’
7d959e8ad3 Merge branch 'test' into zhp 2023-09-11 16:09:42 +08:00
‘937886381’
6f0040a0ae 生产监控更新 2023-09-11 16:09:07 +08:00
347265853e Merge pull request 'dy' (#20) from dy into test
Reviewed-on: #20
2023-09-11 15:59:26 +08:00
helloDy
f1bbdf82e5 冲突 2023-09-11 15:55:58 +08:00
helloDy
645ba2843f 生产监控 2023-09-11 15:53:43 +08:00
lb
f2f3a9e850 update 设备全参数查询 2023-09-11 15:24:11 +08:00
14e06d9456 Merge pull request 'lb' (#19) from lb into test
Reviewed-on: #19
2023-09-11 15:05:16 +08:00
lb
4e05b3e3d6 merge from test 2023-09-11 15:04:16 +08:00
lb
6e678f7c68 Merge branch 'equipment-module-dev' into lb 2023-09-11 15:00:49 +08:00
lb
b91b8c3d3c update 设备加工数量 2023-09-11 14:57:55 +08:00
a445c8a61d Merge pull request 'zjl' (#17) from zjl into test
Reviewed-on: #17
2023-09-08 16:02:54 +08:00
df0dc6bfa0 能源分析 2023-09-08 16:01:54 +08:00
lb
c44ec6f49c update 基本完成设备全参数查询 2023-09-08 15:57:46 +08:00
lb
6197b606f1 update 设备全参数 2023-09-08 08:42:16 +08:00
lb
c7b32ab34e add 设备全参数测试数据 2023-09-07 11:24:07 +08:00
lb
e2527f2e30 remove 设备效率分析的查看趋势功能 2023-09-06 16:38:46 +08:00
lb
76100ad07d update 设备全参数 2023-09-06 16:37:22 +08:00
lb
fa02c3933d remove 产品质量监控可视化 2023-09-06 16:18:59 +08:00
lb
d63d49ccc9 add pie chart 2023-09-06 15:18:02 +08:00
lb
cd437ed7d3 update 效率分析 2023-09-06 15:02:16 +08:00
lb
052f54833c update 更新效率分析 2023-09-06 11:28:10 +08:00
lb
e42b7035fe update 完成时序图模块 2023-09-06 10:39:32 +08:00
lb
a505f34abc update 设备产量时序图 2023-09-06 09:56:05 +08:00
lb
edc5d64acc update 更新设备效率分析 2023-09-05 17:01:53 +08:00
lb
e5fed36234 update 设备产量时序图 2023-09-05 16:35:31 +08:00
lb
2dd40261a4 update 设备状态时序图 2023-09-05 16:26:52 +08:00
lb
e16b6f8ec4 update 设备状态时序图 2023-09-05 16:07:50 +08:00
9c59a7e715 能源分析 2023-09-05 15:45:59 +08:00
lb
55e8de1136 update 完成设备异常分析 2023-09-04 15:24:22 +08:00
lb
ffedc7c256 add 设备异常分析 2023-09-04 14:50:52 +08:00
lb
fbd78c6aa5 update 产品质量分析 2023-09-04 14:35:13 +08:00
lb
6f71b6a7c0 add 产品质量分析-图形弹窗 2023-09-04 13:54:37 +08:00
lb
55f90a7102 add 设备模块剩余部分页面 2023-09-04 09:41:31 +08:00
lb
b6df60a315 Merge branch 'equipment-module-dev' into lb 2023-09-01 17:05:27 +08:00
lb
31dbc025c8 done 设备数采相关 2023-09-01 17:05:05 +08:00
lb
63206d4769 add mockdata & update设备采集配置** 2023-09-01 15:08:36 +08:00
lb
b23b5256f9 update 设备数据采集 2023-09-01 10:39:54 +08:00
lb
21fbd88a32 Merge branch 'equipment-module-dev' into lb 2023-08-31 16:58:49 +08:00
lb
0158a11644 update 设备分析-状态时序图 2023-08-31 16:58:17 +08:00
lb
62256b57a5 update 设备全参数查询 2023-08-31 16:11:41 +08:00
lb
0e6c01e578 update 设备状态和参数 2023-08-31 15:12:34 +08:00
lb
0ec4238042 add 设备加工数量-图表,设备状态和参数,设备全参数查询 2023-08-31 14:26:18 +08:00
lb
fd0c14ff1c update 设备加工数量 2023-08-30 17:02:11 +08:00
lb
72393caee1 update 设备加工数量 2023-08-30 15:36:16 +08:00
lb
14eb83932e done 设备24小时生产记录 2023-08-30 14:32:37 +08:00
lb
0f6418fcf9 update 基本完成设备近24小时数据 2023-08-30 14:30:08 +08:00
lb
100d28fd68 add 设备加工数量 2023-08-30 14:11:24 +08:00
lb
bf52db3b6a update more 设备24小时记录 2023-08-30 11:37:11 +08:00
lb
0f5e4b8368 update 设备24小时记录 2023-08-30 10:27:49 +08:00
lb
e37bb3f2ce add 设备状态时序图组件 2023-08-29 14:47:32 +08:00
lb
84ed13d58f done equipmentAlarmLog 2023-08-29 10:17:27 +08:00
lb
383f98e1d9 add 设备监控 2023-08-29 09:56:27 +08:00
lb
5aafefda26 Merge branch 'equipment-module-dev' into lb 2023-08-28 17:01:38 +08:00
lb
6975c52062 add 设备绑定分组 2023-08-28 15:52:19 +08:00
lb
4ad325c02c done 设备分组报警 2023-08-28 14:56:56 +08:00
lb
9dc580ddd2 update 2023-08-28 13:30:29 +08:00
lb
3656a92f63 add 设备分组报警 2023-08-28 10:47:05 +08:00
lb
573192d27a add 设备工段绑定,设备分组 2023-08-28 09:22:28 +08:00
50318121dc Merge pull request '能源监控' (#15) from zjl into test
Reviewed-on: #15
2023-08-25 16:29:10 +08:00
01fe2da523 能源监控 2023-08-25 16:27:46 +08:00
lb
3d24159743 update 完成设备信息 2023-08-24 15:36:38 +08:00
lb
54d22292c1 update equipment drawer的逻辑 2023-08-24 11:35:51 +08:00
lb
9556cdfb0e update 设备信息 2023-08-23 15:15:29 +08:00
lb
fc2037a10a update drawer 2023-08-22 17:00:43 +08:00
lb
4eb9b321db add EquipmentDrawer 2023-08-22 15:53:02 +08:00
lb
1b055ebfa4 add 设备资产 2023-08-22 11:14:38 +08:00
lb
fa2505d5a2 update EquipmentPIcs 2023-08-21 14:05:15 +08:00
d370948705 Merge pull request '能源配置&能源抄表' (#14) from zjl into test
Reviewed-on: #14
2023-08-21 11:14:03 +08:00
6e39dd48ff 能源配置&能源抄表 2023-08-21 11:12:23 +08:00
lb
a4c1438e59 update 2023-08-18 17:01:41 +08:00
lb
577fcb53d2 add equipment assets 2023-08-18 16:56:53 +08:00
lb
56191453af 调整目录结构,移动DialogForm组件,移动设备信息和设备类型至核心生产模块 2023-08-18 15:41:46 +08:00
lb
84a055e605 Merge branch 'test' into lb 2023-08-18 15:21:10 +08:00
lb
2cf0e718f7 update 完成质量-最近24小时记录 2023-08-18 14:41:52 +08:00
lb
54ce9639ab add 动态表结构处理相关工具 2023-08-18 14:06:44 +08:00
lb
5cc3fb758e update 设备分组 2023-08-17 09:37:39 +08:00
lb
a312117ea3 update 设备信息 2023-08-16 16:06:32 +08:00
lb
fc94d0cccc update 设备类型 2023-08-15 14:57:37 +08:00
c466cbb378 Merge pull request '能源类型' (#13) from zjl into test
Reviewed-on: #13
2023-08-14 16:26:32 +08:00
18a9a4f51b 能源类型 2023-08-14 16:19:12 +08:00
lb
c11c32d7ee update 设备类型 2023-08-11 16:49:28 +08:00
lb
3900dcfbd8 add 设备相关 2023-08-10 16:52:47 +08:00
lb
8f61e9a9d9 update recent 24 2023-08-09 16:11:06 +08:00
lb
2a2ef5ab5c update recent 24 2023-08-08 13:23:01 +08:00
lb
ccfc4eacba update 检测统计数据 2023-08-08 10:16:53 +08:00
lb
4c829d21f5 TODO: fix graphPage build*() 2023-08-07 17:05:09 +08:00
lb
6852bc8c85 add line chart 2023-08-07 16:38:52 +08:00
lb
c755ecc105 update pie chart 2023-08-07 16:09:25 +08:00
lb
9947b2fa37 add pie chart 2023-08-07 15:23:19 +08:00
lb
48d208a539 update 2023-08-07 13:45:04 +08:00
lb
2febe5a12a update 检测统计数据 search time 2023-08-07 10:46:26 +08:00
lb
8fd1504dc0 update 检测统计 2023-08-04 16:56:11 +08:00
lb
1c7e908d2e add DetailGraph 2023-08-04 16:37:12 +08:00
lb
291197a28d add 数据总览弹窗 2023-08-04 16:33:46 +08:00
lb
c7c89e2243 update 检测统计数据 2023-08-04 15:58:44 +08:00
lb
14a626b766 add 质量检测统计和最近24小时数据 2023-08-04 14:54:30 +08:00
cee4ebfd43 Merge pull request 'lb' (#12) from lb into test
Reviewed-on: #12
2023-08-04 14:34:51 +08:00
9831026c5a Merge pull request '更新生产基础' (#11) from zwq into test
Reviewed-on: #11
2023-08-04 14:32:19 +08:00
zwq
1e538579a8 更新生产基础 2023-08-04 14:32:01 +08:00
lb
33ff942fc6 Merge branch 'test' into lb 2023-08-04 14:24:48 +08:00
lb
bd56b12560 update 完成dialogForm的字段监听更新逻辑 2023-08-04 14:22:42 +08:00
lb
61a6e7dafb update 更新dialogForm的关联监听方案 2023-08-04 11:24:12 +08:00
lb
f5fb852d5d update 质量检查信息记录 2023-08-04 11:08:21 +08:00
lb
810b4b87a8 add 质量检测记录 2023-08-03 15:48:24 +08:00
c946f12004 Merge pull request '更新生产管理-生产基础' (#10) from zwq into test
Reviewed-on: #10
2023-08-03 15:27:59 +08:00
zwq
4350bafa23 更新生产管理-生产基础 2023-08-03 15:27:39 +08:00
a49db190e3 Merge pull request 'lb' (#9) from lb into test
Reviewed-on: #9
2023-08-03 15:15:37 +08:00
lb
ecfed2eddf Merge remote-tracking branch 'origin/test' into lb 2023-08-03 15:13:56 +08:00
lb
6b988bbaf7 merge 2023-08-03 15:10:49 +08:00
lb
4d0c0ae91a update 基本完成质量基础 2023-08-03 15:09:15 +08:00
lb
7c665484a7 update getCode逻辑 2023-08-03 15:03:59 +08:00
lb
1299ebd0c9 update 安灯按钮 2023-08-03 14:45:38 +08:00
lb
78777d5d24 update 2023-08-03 13:37:24 +08:00
lb
c357ab8005 update 质量检测信息 2023-08-03 11:35:16 +08:00
lb
73831ea8cf update 质量检测信息 2023-08-03 11:19:06 +08:00
3d1bc2cc98 Merge pull request '公共样式' (#8) from zjl into test
Reviewed-on: #8
2023-08-03 11:18:18 +08:00
01f459e811 公共样式 2023-08-03 11:18:03 +08:00
lb
a402a8bf63 update 2023-08-03 10:51:44 +08:00
lb
d3760f5dee update quality type 2023-08-02 15:25:44 +08:00
lb
006e94a865 apply DialogForm & debug 2023-08-02 15:16:40 +08:00
lb
b6e4767346 add mixin & dialog 2023-08-02 11:27:33 +08:00
lb
77688fed77 update 质量信息 2023-08-02 09:49:14 +08:00
969a5303a8 Merge pull request 'zjl' (#7) from zjl into test
Reviewed-on: #7
2023-08-02 09:24:21 +08:00
0719116cbc 班组 2023-08-02 09:17:46 +08:00
lb
6d4f44fd68 update 质量信息 2023-08-01 17:01:59 +08:00
lb
30e8548a0d update 质量检测类型 2023-08-01 16:42:17 +08:00
lb
63931b883c update 质量类型 2023-08-01 14:02:36 +08:00
lb
6fdc9b2826 update 质量类型 2023-08-01 11:20:37 +08:00
lb
443ca29d3f update 质量类型 2023-07-31 17:04:07 +08:00
b281df661b Merge pull request 'test' (#6) from test into zjl
Reviewed-on: #6
2023-07-27 15:45:52 +08:00
50517c4244 Merge pull request 'update file structure' (#5) from lb into test
Reviewed-on: #5
2023-07-27 15:38:41 +08:00
lb
3efb35d31d update file structure 2023-07-27 15:37:53 +08:00
6b9f7d7b9c Merge pull request 'test' (#4) from test into zjl
Reviewed-on: #4
2023-07-27 15:24:39 +08:00
f4662a33b9 Merge pull request 'add Files' (#3) from lb into test
Reviewed-on: #3
2023-07-27 15:20:53 +08:00
lb
1c64bafdf8 add Files 2023-07-27 15:16:13 +08:00
f5accd1f61 Merge pull request 'test' (#2) from test into zjl
Reviewed-on: #2
2023-07-27 14:47:59 +08:00
797dc1e029 Merge pull request 'add code-brick-zj' (#1) from lb into test
Reviewed-on: #1
2023-07-27 08:52:59 +08:00
lb
b6dd73370d add code-brick-zj 2023-07-26 15:28:41 +08:00
256 changed files with 47056 additions and 11001 deletions

View File

@ -1,11 +1,21 @@
###
# @Author: Do not edit
# @Date: 2023-08-29 09:40:39
# @LastEditTime: 2023-10-16 09:22:52
# @LastEditors: DY
# @Description:
###
# 开发环境配置
ENV = 'development'
# 页面标题
VUE_APP_TITLE = 芋道管理系统
VUE_APP_TITLE = 产线监控系统
# 芋道管理系统/开发环境
VUE_APP_BASE_API = 'http://192.168.1.8:48080'
# VUE_APP_BASE_API = 'http://192.168.1.49:48080'
# VUE_APP_BASE_API = 'http://192.168.1.8:48080'
VUE_APP_BASE_API = 'http://192.168.0.33:48080'
# VUE_APP_BASE_API = 'http://192.168.1.188:48080'
# 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true

View File

@ -2,7 +2,7 @@
ENV = 'development'
# 页面标题
VUE_APP_TITLE = 芋道管理系统
VUE_APP_TITLE = 产线监控系统
# 芋道管理系统/本地环境
VUE_APP_BASE_API = 'http://api-dashboard.yudao.iocoder.cn'

View File

@ -2,13 +2,15 @@
ENV = 'production'
# 页面标题
VUE_APP_TITLE = 芋道管理系统
VUE_APP_TITLE = 产线监控系统
# 芋道管理系统/生产环境
VUE_APP_BASE_API = '/prod-api'
# 根据服务器或域名修改
PUBLIC_PATH = 'http://my-pi.com:8888/yudao-admin/'
# PUBLIC_PATH = 'http://my-pi.com:8888/yudao-admin/'
PUBLIC_PATH = 'http://192.168.0.33:8888/'
# 二级部署路径
VUE_APP_APP_NAME ='yudao-admin'

View File

@ -1,7 +1,7 @@
NODE_ENV = production
# 页面标题
VUE_APP_TITLE = 芋道管理系统
VUE_APP_TITLE = 产线监控系统
# 测试环境配置
ENV = 'staging'

View File

@ -4,7 +4,7 @@ NODE_ENV = development
ENV = 'staging'
# 页面标题
VUE_APP_TITLE = 芋道管理系统
VUE_APP_TITLE = 产线监控系统
# 芋道管理系统/测试环境
VUE_APP_BASE_API = 'http://127.0.0.1:48080'

1
.gitignore vendored
View File

@ -20,3 +20,4 @@ selenium-debug.log
*.local
package-lock.json
echarts.js

View File

@ -47,32 +47,43 @@
"benz-amr-recorder": "^1.1.5",
"bpmn-js-token-simulation": "0.10.0",
"clipboard": "2.0.8",
"code-brick-zj": "^1.0.2",
"core-js": "^3.26.0",
"crypto-js": "^4.0.0",
"diagram-js": "^12.3.0",
"echarts": "5.4.0",
"element-ui": "2.15.12",
"file-saver": "2.0.5",
"file-saver": "^2.0.5",
"fuse.js": "6.6.2",
"highlight.js": "9.18.5",
"html2canvas": "^1.4.1",
"js-beautify": "1.13.0",
"jsencrypt": "3.3.1",
"jspdf": "^2.5.1",
"min-dash": "3.5.2",
"mockjs": "^1.1.0",
"moment": "^2.29.4",
"nprogress": "0.2.0",
"qrcode.vue": "^1.7.0",
"qs": "^6.11.2",
"quill": "1.3.7",
"screenfull": "5.0.2",
"sortablejs": "1.10.2",
"throttle-debounce": "2.1.0",
"video.js": "^8.5.2",
"vue": "2.7.14",
"vue-count-to": "1.0.13",
"vue-cropper": "0.5.8",
"vue-meta": "^2.4.0",
"vue-plugin-hiprint": "0.0.54-fix",
"vue-quill-editor": "^3.0.6",
"vue-router": "3.4.9",
"vue-video-player": "^5.0.2",
"vuedraggable": "2.24.3",
"vuex": "3.6.2",
"xml-js": "1.6.11"
"xlsx": "^0.18.5",
"xml-js": "1.6.11",
"yorkie": "^2.0.0"
},
"devDependencies": {
"@vue/cli-plugin-babel": "4.5.18",
@ -86,7 +97,7 @@
"chalk": "4.1.0",
"compression-webpack-plugin": "5.0.2",
"connect": "3.6.6",
"eslint": "7.15.0",
"eslint": "6.8.0",
"eslint-config-airbnb-base": "^14.0.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-prettier": "^3.1.0",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -2,215 +2,217 @@
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="renderer" content="webkit">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title>
<%= webpackConfig.name %>
</title>
<!--[if lt IE 11]><script>window.location.href='html/ie.html';</script><![endif]-->
<style>
html,
body,
#app {
height: 100%;
margin: 0px;
padding: 0px;
}
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="renderer" content="webkit" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
<link rel="stylesheet" type="text/css" media="print" href="<%= BASE_URL %>print-lock.css">
<link rel="icon" href="<%= BASE_URL %>favicon.ico" />
<title>
<%= webpackConfig.name %>
</title>
<!--[if lt IE 11]>
<script>
window.location.href = 'html/ie.html';
</script>
<![endif]-->
<style>
html,
body,
#app {
height: 100%;
margin: 0px;
padding: 0px;
}
.chromeframe {
margin: 0.2em 0;
background: #ccc;
color: #000;
padding: 0.2em 0;
}
.chromeframe {
margin: 0.2em 0;
background: #ccc;
color: #000;
padding: 0.2em 0;
}
#loader-wrapper {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 999999;
}
#loader-wrapper {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 999999;
}
#loader {
display: block;
position: relative;
left: 50%;
top: 50%;
width: 150px;
height: 150px;
margin: -75px 0 0 -75px;
border-radius: 50%;
border: 3px solid transparent;
border-top-color: #FFF;
-webkit-animation: spin 2s linear infinite;
-ms-animation: spin 2s linear infinite;
-moz-animation: spin 2s linear infinite;
-o-animation: spin 2s linear infinite;
animation: spin 2s linear infinite;
z-index: 1001;
}
#loader {
display: block;
position: relative;
left: 50%;
top: 50%;
width: 150px;
height: 150px;
margin: -75px 0 0 -75px;
border-radius: 50%;
border: 3px solid transparent;
border-top-color: #fff;
-webkit-animation: spin 2s linear infinite;
-ms-animation: spin 2s linear infinite;
-moz-animation: spin 2s linear infinite;
-o-animation: spin 2s linear infinite;
animation: spin 2s linear infinite;
z-index: 1001;
}
#loader:before {
content: "";
position: absolute;
top: 5px;
left: 5px;
right: 5px;
bottom: 5px;
border-radius: 50%;
border: 3px solid transparent;
border-top-color: #FFF;
-webkit-animation: spin 3s linear infinite;
-moz-animation: spin 3s linear infinite;
-o-animation: spin 3s linear infinite;
-ms-animation: spin 3s linear infinite;
animation: spin 3s linear infinite;
}
#loader:before {
content: '';
position: absolute;
top: 5px;
left: 5px;
right: 5px;
bottom: 5px;
border-radius: 50%;
border: 3px solid transparent;
border-top-color: #fff;
-webkit-animation: spin 3s linear infinite;
-moz-animation: spin 3s linear infinite;
-o-animation: spin 3s linear infinite;
-ms-animation: spin 3s linear infinite;
animation: spin 3s linear infinite;
}
#loader:after {
content: "";
position: absolute;
top: 15px;
left: 15px;
right: 15px;
bottom: 15px;
border-radius: 50%;
border: 3px solid transparent;
border-top-color: #FFF;
-moz-animation: spin 1.5s linear infinite;
-o-animation: spin 1.5s linear infinite;
-ms-animation: spin 1.5s linear infinite;
-webkit-animation: spin 1.5s linear infinite;
animation: spin 1.5s linear infinite;
}
#loader:after {
content: '';
position: absolute;
top: 15px;
left: 15px;
right: 15px;
bottom: 15px;
border-radius: 50%;
border: 3px solid transparent;
border-top-color: #fff;
-moz-animation: spin 1.5s linear infinite;
-o-animation: spin 1.5s linear infinite;
-ms-animation: spin 1.5s linear infinite;
-webkit-animation: spin 1.5s linear infinite;
animation: spin 1.5s linear infinite;
}
@-webkit-keyframes spin {
0% {
-webkit-transform: rotate(0deg);
-ms-transform: rotate(0deg);
transform: rotate(0deg);
}
@-webkit-keyframes spin {
0% {
-webkit-transform: rotate(0deg);
-ms-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
-ms-transform: rotate(360deg);
transform: rotate(360deg);
}
}
100% {
-webkit-transform: rotate(360deg);
-ms-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@keyframes spin {
0% {
-webkit-transform: rotate(0deg);
-ms-transform: rotate(0deg);
transform: rotate(0deg);
}
@keyframes spin {
0% {
-webkit-transform: rotate(0deg);
-ms-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
-ms-transform: rotate(360deg);
transform: rotate(360deg);
}
}
100% {
-webkit-transform: rotate(360deg);
-ms-transform: rotate(360deg);
transform: rotate(360deg);
}
}
#loader-wrapper .loader-section {
position: fixed;
top: 0;
width: 51%;
height: 100%;
background: #7171c6;
z-index: 1000;
-webkit-transform: translateX(0);
-ms-transform: translateX(0);
transform: translateX(0);
}
#loader-wrapper .loader-section.section-left {
left: 0;
}
#loader-wrapper .loader-section {
position: fixed;
top: 0;
width: 51%;
height: 100%;
background: #7171C6;
z-index: 1000;
-webkit-transform: translateX(0);
-ms-transform: translateX(0);
transform: translateX(0);
}
#loader-wrapper .loader-section.section-right {
right: 0;
}
#loader-wrapper .loader-section.section-left {
left: 0;
}
.loaded #loader-wrapper .loader-section.section-left {
-webkit-transform: translateX(-100%);
-ms-transform: translateX(-100%);
transform: translateX(-100%);
-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
}
#loader-wrapper .loader-section.section-right {
right: 0;
}
.loaded #loader-wrapper .loader-section.section-right {
-webkit-transform: translateX(100%);
-ms-transform: translateX(100%);
transform: translateX(100%);
-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
}
.loaded #loader {
opacity: 0;
-webkit-transition: all 0.3s ease-out;
transition: all 0.3s ease-out;
}
.loaded #loader-wrapper .loader-section.section-left {
-webkit-transform: translateX(-100%);
-ms-transform: translateX(-100%);
transform: translateX(-100%);
-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
}
.loaded #loader-wrapper {
visibility: hidden;
-webkit-transform: translateY(-100%);
-ms-transform: translateY(-100%);
transform: translateY(-100%);
-webkit-transition: all 0.3s 1s ease-out;
transition: all 0.3s 1s ease-out;
}
.loaded #loader-wrapper .loader-section.section-right {
-webkit-transform: translateX(100%);
-ms-transform: translateX(100%);
transform: translateX(100%);
-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
}
.no-js #loader-wrapper {
display: none;
}
.loaded #loader {
opacity: 0;
-webkit-transition: all 0.3s ease-out;
transition: all 0.3s ease-out;
}
.no-js h1 {
color: #222222;
}
.loaded #loader-wrapper {
visibility: hidden;
-webkit-transform: translateY(-100%);
-ms-transform: translateY(-100%);
transform: translateY(-100%);
-webkit-transition: all 0.3s 1s ease-out;
transition: all 0.3s 1s ease-out;
}
#loader-wrapper .load_title {
font-family: 'Open Sans';
color: #fff;
font-size: 19px;
width: 100%;
text-align: center;
z-index: 9999999999999;
position: absolute;
top: 60%;
opacity: 1;
line-height: 30px;
}
.no-js #loader-wrapper {
display: none;
}
.no-js h1 {
color: #222222;
}
#loader-wrapper .load_title {
font-family: 'Open Sans';
color: #FFF;
font-size: 19px;
width: 100%;
text-align: center;
z-index: 9999999999999;
position: absolute;
top: 60%;
opacity: 1;
line-height: 30px;
}
#loader-wrapper .load_title span {
font-weight: normal;
font-style: italic;
font-size: 13px;
color: #FFF;
opacity: 0.5;
}
</style>
#loader-wrapper .load_title span {
font-weight: normal;
font-style: italic;
font-size: 13px;
color: #fff;
opacity: 0.5;
}
</style>
</head>
<body>
<div id="app">
<div id="loader-wrapper">
<div id="loader"></div>
<div class="loader-section section-left"></div>
<div class="loader-section section-right"></div>
<div class="load_title">正在加载系统资源,请耐心等待</div>
</div>
</div>
<div id="app">
<div id="loader-wrapper">
<div id="loader"></div>
<div class="loader-section section-left"></div>
<div class="loader-section section-right"></div>
<div class="load_title">正在加载系统资源,请耐心等待</div>
</div>
</div>
</body>
</html>

339
public/print-lock.css Normal file
View File

@ -0,0 +1,339 @@
@media print {
body {
margin: 0px;
padding: 0px;
}
}
@page {
margin: 0;
}
.hiprint-printPaper * {
box-sizing: border-box;
-moz-box-sizing: border-box; /* Firefox */
-webkit-box-sizing: border-box; /* Safari */
}
.hiprint-printPaper *:focus {
outline: -webkit-focus-ring-color auto 0px;
}
.hiprint-printPaper {
position: relative;
padding: 0 0 0 0;
page-break-after: always;
-webkit-user-select: none; /* Chrome/Safari/Opera */
-moz-user-select: none; /* Firefox */
user-select: none;
overflow-x: hidden;
overflow: hidden;
}
.hiprint-printPaper .hiprint-printPaper-content {
position: relative;
}
/* 火狐浏览器打印 第一页过后 重叠问题 */
@-moz-document url-prefix() {
.hiprint-printPaper .hiprint-printPaper-content {
position: relative;
margin-top: 20px;
top: -20px
}
}
.hiprint-printPaper.design {
overflow: visible;
}
.hiprint-printTemplate .hiprint-printPanel {
page-break-after: always;
}
.hiprint-printPaper, hiprint-printPanel {
box-sizing: border-box;
border: 0px;
}
.hiprint-printPanel .hiprint-printPaper:last-child {
page-break-after: avoid;
}
.hiprint-printTemplate .hiprint-printPanel:last-child {
page-break-after: avoid;
}
.hiprint-printPaper .hideheaderLinetarget {
border-top: 0px dashed rgb(201, 190, 190) !important;
}
.hiprint-printPaper .hidefooterLinetarget {
border-top: 0px dashed rgb(201, 190, 190) !important;
}
.hiprint-printPaper.design {
border: 1px dashed rgba(170, 170, 170, 0.7);
}
.design .hiprint-printElement-table-content, .design .hiprint-printElement-longText-content {
overflow: hidden;
box-sizing: border-box;
}
.design .resize-panel {
box-sizing: border-box;
border: 1px dotted;
}
.hiprint-printElement-text {
background-color: transparent;
background-repeat: repeat;
padding: 0 0 0 0;
border: 0.75pt none rgb(0, 0, 0);
direction: ltr;
font-family: 'SimSun';
font-size: 9pt;
font-style: normal;
font-weight: normal;
padding-bottom: 0pt;
padding-left: 0pt;
padding-right: 0pt;
padding-top: 0pt;
text-align: left;
text-decoration: none;
line-height: 9.75pt;
box-sizing: border-box;
word-wrap: break-word;
word-break: break-all;
}
.design .hiprint-printElement-text-content {
border: 1px dashed rgb(206, 188, 188);
box-sizing: border-box;
}
.hiprint-printElement-longText {
background-color: transparent;
background-repeat: repeat;
border: 0.75pt none rgb(0, 0, 0);
direction: ltr;
font-family: 'SimSun';
font-size: 9pt;
font-style: normal;
font-weight: normal;
padding-bottom: 0pt;
padding-left: 0pt;
padding-right: 0pt;
padding-top: 0pt;
text-align: left;
text-decoration: none;
line-height: 9.75pt;
box-sizing: border-box;
word-wrap: break-word;
word-break: break-all;
/*white-space: pre-wrap*/
}
.hiprint-printElement-table {
background-color: transparent;
background-repeat: repeat;
color: rgb(0, 0, 0);
border-color: rgb(0, 0, 0);
border-style: none;
direction: ltr;
font-family: 'SimSun';
font-size: 9pt;
font-style: normal;
font-weight: normal;
padding-bottom: 0pt;
padding-left: 0pt;
padding-right: 0pt;
padding-top: 0pt;
text-align: left;
text-decoration: none;
padding: 0 0 0 0;
box-sizing: border-box;
line-height: 9.75pt;
}
.hiprint-printElement-table thead {
background: #e8e8e8;
font-weight: 700;
}
.hiprint-printElement-tableTarget, .hiprint-printElement-tableTarget tr, .hiprint-printElement-tableTarget td {
border-color: rgb(0, 0, 0);
/*border-style: none;*/
/*border: 1px solid rgb(0, 0, 0);*/
font-weight: normal;
direction: ltr;
padding-bottom: 0pt;
padding-left: 4pt;
padding-right: 4pt;
padding-top: 0pt;
text-decoration: none;
vertical-align: middle;
box-sizing: border-box;
word-wrap: break-word;
word-break: break-all;
/*line-height: 9.75pt;
font-size: 9pt;*/
}
.hiprint-printElement-tableTarget-border-all {
border: 1px solid;
}
.hiprint-printElement-tableTarget-border-none {
border: 0px solid;
}
.hiprint-printElement-tableTarget-border-lr {
border-left: 1px solid;
border-right: 1px solid;
}
.hiprint-printElement-tableTarget-border-left {
border-left: 1px solid;
}
.hiprint-printElement-tableTarget-border-right {
border-right: 1px solid;
}
.hiprint-printElement-tableTarget-border-tb {
border-top: 1px solid;
border-bottom: 1px solid;
}
.hiprint-printElement-tableTarget-border-top {
border-top: 1px solid;
}
.hiprint-printElement-tableTarget-border-bottom {
border-bottom: 1px solid;
}
.hiprint-printElement-tableTarget-border-td-none td {
border: 0px solid;
}
.hiprint-printElement-tableTarget-border-td-all td:not(:last-child) {
border-right: 1px solid;
}
/*.hiprint-printElement-tableTarget tr,*/
.hiprint-printElement-tableTarget td {
height: 18pt;
}
.hiprint-printPaper .hiprint-paperNumber {
font-size: 9pt;
}
.design .hiprint-printElement-table-handle {
position: absolute;
height: 21pt;
width: 21pt;
background: red;
z-index: 1;
}
.hiprint-printPaper .hiprint-paperNumber-disabled {
float: right !important;
right: 0 !important;
color: gainsboro !important;
}
.hiprint-printElement-vline, .hiprint-printElement-hline {
border: 0px none rgb(0, 0, 0);
}
.hiprint-printElement-vline {
border-left: 0.75pt solid #000;
border-right: 0px none rgb(0, 0, 0) !important;
border-bottom: 0px none rgb(0, 0, 0) !important;
border-top: 0px none rgb(0, 0, 0) !important;
}
.hiprint-printElement-hline {
border-top: 0.75pt solid #000;
border-right: 0px none rgb(0, 0, 0) !important;
border-bottom: 0px none rgb(0, 0, 0) !important;
border-left: 0px none rgb(0, 0, 0) !important;
}
.hiprint-printElement-oval, .hiprint-printElement-rect {
border: 0.75pt solid #000;
}
.hiprint-text-content-middle {
}
.hiprint-text-content-middle > div {
display: grid;
align-items: center;
}
.hiprint-text-content-bottom {
}
.hiprint-text-content-bottom > div {
display: grid;
align-items: flex-end;
}
.hiprint-text-content-wrap {
}
.hiprint-text-content-wrap .hiprint-text-content-wrap-nowrap {
white-space: nowrap;
}
.hiprint-text-content-wrap .hiprint-text-content-wrap-clip {
white-space: nowrap;
overflow: hidden;
text-overflow: clip;
}
.hiprint-text-content-wrap .hiprint-text-content-wrap-ellipsis {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
/*hi-grid-row */
.hi-grid-row {
position: relative;
height: auto;
margin-right: 0;
margin-left: 0;
zoom: 1;
display: block;
box-sizing: border-box;
}
.hi-grid-row::after, .hi-grid-row::before {
display: table;
content: '';
box-sizing: border-box;
}
.hi-grid-col {
display: block;
box-sizing: border-box;
position: relative;
float: left;
flex: 0 0 auto;
}
.table-grid-row {
margin-left: -0pt;
margin-right: -0pt;
}
.tableGridColumnsGutterRow {
padding-left: 0pt;
padding-right: 0pt;
}
.hiprint-gridColumnsFooter {
text-align: left;
clear: both;
}

View File

@ -0,0 +1,37 @@
import request from '@/utils/request'
// 获取走势分析数据
export function getEnergyTrend(data) {
return request({
url: '/analysis/energy-analysis/getTrend',
method: 'post',
data: data
})
}
// 获取对比分析数据
export function getCompare(data) {
return request({
url: '/analysis/energy-analysis/getCompare',
method: 'post',
data: data
})
}
// 获取同比分析数据(1:季度,2:月;3:日)
export function getYoy(data) {
return request({
url: '/analysis/energy-analysis/getYoy',
method: 'post',
data: data
})
}
// 获取环比分析数据(1:月,2:周,3:日)
export function getQoq(data) {
return request({
url: '/analysis/energy-analysis/getChain',
method: 'post',
data: data
})
}

70
src/api/base/energyPlc.js Normal file
View File

@ -0,0 +1,70 @@
import request from '@/utils/request'
// 创建能源实时数据库plc相关
export function createEnergyPlc(data) {
return request({
url: '/base/energy-plc/create',
method: 'post',
data: data
})
}
// 更新能源实时数据库plc相关
export function updateEnergyPlc(data) {
return request({
url: '/base/energy-plc/update',
method: 'put',
data: data
})
}
// 删除能源实时数据库plc相关
export function deleteEnergyPlc(id) {
return request({
url: '/base/energy-plc/delete?id=' + id,
method: 'delete'
})
}
// 获得能源实时数据库plc相关
export function getEnergyPlc(id) {
return request({
url: '/base/energy-plc/get?id=' + id,
method: 'get'
})
}
// 获得实时数据表列表(所有)
export function getEnergyPlcAll() {
return request({
url: '/base/energy-plc/listAll',
method: 'get'
})
}
// 获取关联表编码
export function getCode() {
return request({
url: '/base/energy-plc/getCode',
method: 'get'
})
}
// 获得能源实时数据库plc相关分页
export function getEnergyPlcPage(data) {
return request({
url: '/base/energy-plc/page',
method: 'post',
data: data
})
}
// 导出能源实时数据库plc相关 Excel
export function exportEnergyPlcExcel(query) {
return request({
url: '/base/energy-plc/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}

View File

@ -0,0 +1,54 @@
import request from '@/utils/request'
// 创建能源与对象的关联关系(一对多)
export function createEnergyPlcConnect(data) {
return request({
url: '/base/energy-plc-connect/create',
method: 'post',
data: data
})
}
// 更新能源与对象的关联关系(一对多)
export function updateEnergyPlcConnect(data) {
return request({
url: '/base/energy-plc-connect/update',
method: 'put',
data: data
})
}
// 删除能源与对象的关联关系(一对多)
export function deleteEnergyPlcConnect(id) {
return request({
url: '/base/energy-plc-connect/delete?id=' + id,
method: 'delete'
})
}
// 获得能源与对象的关联关系(一对多)
export function getEnergyPlcConnect(id) {
return request({
url: '/base/energy-plc-connect/get?id=' + id,
method: 'get'
})
}
// 获得能源与对象的关联关系(一对多)分页
export function getEnergyPlcConnectPage(data) {
return request({
url: '/base/energy-plc-connect/page',
method: 'post',
data: data
})
}
// 导出能源与对象的关联关系(一对多) Excel
export function exportEnergyPlcConnectExcel(query) {
return request({
url: '/base/energy-plc-connect/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}

View File

@ -0,0 +1,54 @@
import request from '@/utils/request'
// 创建能源plc详细点
export function createEnergyPlcParam(data) {
return request({
url: '/base/energy-plc-param/create',
method: 'post',
data: data
})
}
// 更新能源plc详细点
export function updateEnergyPlcParam(data) {
return request({
url: '/base/energy-plc-param/update',
method: 'put',
data: data
})
}
// 删除能源plc详细点
export function deleteEnergyPlcParam(id) {
return request({
url: '/base/energy-plc-param/delete?id=' + id,
method: 'delete'
})
}
// 获得能源plc详细点
export function getEnergyPlcParam(id) {
return request({
url: '/base/energy-plc-param/get?id=' + id,
method: 'get'
})
}
// 获得能源plc详细点分页
export function getEnergyPlcParamPage(data) {
return request({
url: '/base/energy-plc-param/page',
method: 'post',
data: data
})
}
// 导出能源plc详细点 Excel
export function exportEnergyPlcParamExcel(query) {
return request({
url: '/base/energy-plc-param/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}

View File

@ -0,0 +1,54 @@
import request from '@/utils/request'
// 创建后端统计 能源抄表 实时
export function createEnergyQuantityRealtime(data) {
return request({
url: '/base/energy-quantity-realtime/create',
method: 'post',
data: data
})
}
// 更新后端统计 能源抄表 实时
export function updateEnergyQuantityRealtime(data) {
return request({
url: '/base/energy-quantity-realtime/update',
method: 'put',
data: data
})
}
// 删除后端统计 能源抄表 实时
export function deleteEnergyQuantityRealtime(id) {
return request({
url: '/base/energy-quantity-realtime/delete?id=' + id,
method: 'delete'
})
}
// 获得后端统计 能源抄表 实时
export function getEnergyQuantityRealtime(id) {
return request({
url: '/base/energy-quantity-realtime/get?id=' + id,
method: 'get'
})
}
// 获得后端统计 能源抄表 实时分页
export function getEnergyQuantityRealtimePage(data) {
return request({
url: '/base/energy-quantity-realtime/page',
method: 'post',
data: data
})
}
// 导出后端统计 能源抄表 实时 Excel
export function exportEnergyQuantityRealtimeExcel(data) {
return request({
url: '/base/energy-quantity-realtime/export-excel',
method: 'post',
data: data,
responseType: 'blob'
})
}

View File

@ -0,0 +1,70 @@
import request from '@/utils/request'
// 创建能源类型
export function createEnergyType(data) {
return request({
url: '/base/energy-type/create',
method: 'post',
data: data
})
}
// 更新能源类型
export function updateEnergyType(data) {
return request({
url: '/base/energy-type/update',
method: 'put',
data: data
})
}
// 删除能源类型
export function deleteEnergyType(id) {
return request({
url: '/base/energy-type/delete?id=' + id,
method: 'delete'
})
}
// 获得能源类型
export function getEnergyType(id) {
return request({
url: '/base/energy-type/get?id=' + id,
method: 'get'
})
}
// 获得能源类型分页
export function getEnergyTypePage(data) {
return request({
url: '/base/energy-type/page',
method: 'post',
data: data
})
}
// 获得能源类型列表(获取所有)
export function getEnergyTypeListAll() {
return request({
url: '/base/energy-type/listAll',
method: 'get'
})
}
// 获得能源类型编码
export function getEnergyTypeCode() {
return request({
url: '/base/energy-type/getCode',
method: 'get'
})
}
// 导出能源类型 Excel
export function exportEnergyTypeExcel(query) {
return request({
url: '/base/energy-type/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}

61
src/api/base/equipment.js Normal file
View File

@ -0,0 +1,61 @@
import request from '@/utils/request'
// 创建设备
export function createEquipment(data) {
return request({
url: '/base/equipment/create',
method: 'post',
data: data
})
}
// 更新设备
export function updateEquipment(data) {
return request({
url: '/base/equipment/update',
method: 'put',
data: data
})
}
// 删除设备
export function deleteEquipment(id) {
return request({
url: '/base/equipment/delete?id=' + id,
method: 'delete'
})
}
// 获得设备
export function getEquipment(id) {
return request({
url: '/base/equipment/get?id=' + id,
method: 'get'
})
}
// 获得设备分页
export function getEquipmentPage(query) {
return request({
url: '/base/equipment/page',
method: 'get',
params: query
})
}
// 导出设备 Excel
export function exportEquipmentExcel(query) {
return request({
url: '/base/equipment/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}
// 获得所有设备列表
export function getEquipmentAll() {
return request({
url: '/base/equipment/listAll',
method: 'get'
})
}

View File

@ -0,0 +1,54 @@
import request from '@/utils/request'
// 创建设备属性
export function createEquipmentAttr(data) {
return request({
url: '/base/equipment-attr/create',
method: 'post',
data: data
})
}
// 更新设备属性
export function updateEquipmentAttr(data) {
return request({
url: '/base/equipment-attr/update',
method: 'put',
data: data
})
}
// 删除设备属性
export function deleteEquipmentAttr(id) {
return request({
url: '/base/equipment-attr/delete?id=' + id,
method: 'delete'
})
}
// 获得设备属性
export function getEquipmentAttr(id) {
return request({
url: '/base/equipment-attr/get?id=' + id,
method: 'get'
})
}
// 获得设备属性分页
export function getEquipmentAttrPage(query) {
return request({
url: '/base/equipment-attr/page',
method: 'get',
params: query
})
}
// 导出设备属性 Excel
export function exportEquipmentAttrExcel(query) {
return request({
url: '/base/equipment-attr/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}

View File

@ -0,0 +1,54 @@
import request from '@/utils/request'
// 创建设备与分组绑定
export function createEquipmentBindGroup(data) {
return request({
url: '/base/equipment-bind-group/create',
method: 'post',
data: data
})
}
// 更新设备与分组绑定
export function updateEquipmentBindGroup(data) {
return request({
url: '/base/equipment-bind-group/update',
method: 'put',
data: data
})
}
// 删除设备与分组绑定
export function deleteEquipmentBindGroup(id) {
return request({
url: '/base/equipment-bind-group/delete?id=' + id,
method: 'delete'
})
}
// 获得设备与分组绑定
export function getEquipmentBindGroup(id) {
return request({
url: '/base/equipment-bind-group/get?id=' + id,
method: 'get'
})
}
// 获得设备与分组绑定分页
export function getEquipmentBindGroupPage(query) {
return request({
url: '/base/equipment-bind-group/page',
method: 'get',
params: query
})
}
// 导出设备与分组绑定 Excel
export function exportEquipmentBindGroupExcel(query) {
return request({
url: '/base/equipment-bind-group/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}

View File

@ -0,0 +1,54 @@
import request from '@/utils/request'
// 创建工段设备绑定
export function createEquipmentBindSection(data) {
return request({
url: '/base/equipment-bind-section/create',
method: 'post',
data: data
})
}
// 更新工段设备绑定
export function updateEquipmentBindSection(data) {
return request({
url: '/base/equipment-bind-section/update',
method: 'put',
data: data
})
}
// 删除工段设备绑定
export function deleteEquipmentBindSection(id) {
return request({
url: '/base/equipment-bind-section/delete?id=' + id,
method: 'delete'
})
}
// 获得工段设备绑定
export function getEquipmentBindSection(id) {
return request({
url: '/base/equipment-bind-section/get?id=' + id,
method: 'get'
})
}
// 获得工段设备绑定分页
export function getEquipmentBindSectionPage(query) {
return request({
url: '/base/equipment-bind-section/page',
method: 'get',
params: query
})
}
// 导出工段设备绑定 Excel
export function exportEquipmentBindSectionExcel(query) {
return request({
url: '/base/equipment-bind-section/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}

View File

@ -0,0 +1,54 @@
import request from '@/utils/request'
// 创建设备文件对应
export function createEquipmentFile(data) {
return request({
url: '/base/equipment-file/create',
method: 'post',
data: data
})
}
// 更新设备文件对应
export function updateEquipmentFile(data) {
return request({
url: '/base/equipment-file/update',
method: 'put',
data: data
})
}
// 删除设备文件对应
export function deleteEquipmentFile(id) {
return request({
url: '/base/equipment-file/delete?id=' + id,
method: 'delete'
})
}
// 获得设备文件对应
export function getEquipmentFile(id) {
return request({
url: '/base/equipment-file/get?id=' + id,
method: 'get'
})
}
// 获得设备文件对应分页
export function getEquipmentFilePage(query) {
return request({
url: '/base/equipment-file/page',
method: 'get',
params: query
})
}
// 导出设备文件对应 Excel
export function exportEquipmentFileExcel(query) {
return request({
url: '/base/equipment-file/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}

View File

@ -0,0 +1,54 @@
import request from '@/utils/request'
// 创建设备分组(用于同类型不同厂家的设备区分)
export function createEquipmentGroup(data) {
return request({
url: '/base/equipment-group/create',
method: 'post',
data: data
})
}
// 更新设备分组(用于同类型不同厂家的设备区分)
export function updateEquipmentGroup(data) {
return request({
url: '/base/equipment-group/update',
method: 'put',
data: data
})
}
// 删除设备分组(用于同类型不同厂家的设备区分)
export function deleteEquipmentGroup(id) {
return request({
url: '/base/equipment-group/delete?id=' + id,
method: 'delete'
})
}
// 获得设备分组(用于同类型不同厂家的设备区分)
export function getEquipmentGroup(id) {
return request({
url: '/base/equipment-group/get?id=' + id,
method: 'get'
})
}
// 获得设备分组(用于同类型不同厂家的设备区分)分页
export function getEquipmentGroupPage(query) {
return request({
url: '/base/equipment-group/page',
method: 'get',
params: query
})
}
// 导出设备分组(用于同类型不同厂家的设备区分) Excel
export function exportEquipmentGroupExcel(query) {
return request({
url: '/base/equipment-group/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}

View File

@ -0,0 +1,54 @@
import request from '@/utils/request'
// 创建设备分组报警明细
export function createEquipmentGroupAlarm(data) {
return request({
url: '/base/equipment-group-alarm/create',
method: 'post',
data: data
})
}
// 更新设备分组报警明细
export function updateEquipmentGroupAlarm(data) {
return request({
url: '/base/equipment-group-alarm/update',
method: 'put',
data: data
})
}
// 删除设备分组报警明细
export function deleteEquipmentGroupAlarm(id) {
return request({
url: '/base/equipment-group-alarm/delete?id=' + id,
method: 'delete'
})
}
// 获得设备分组报警明细
export function getEquipmentGroupAlarm(id) {
return request({
url: '/base/equipment-group-alarm/get?id=' + id,
method: 'get'
})
}
// 获得设备分组报警明细分页
export function getEquipmentGroupAlarmPage(query) {
return request({
url: '/base/equipment-group-alarm/page',
method: 'get',
params: query
})
}
// 导出设备分组报警明细 Excel
export function exportEquipmentGroupAlarmExcel(query) {
return request({
url: '/base/equipment-group-alarm/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}

View File

@ -0,0 +1,54 @@
import request from '@/utils/request'
// 创建实时数据采集配置
export function createEquipmentPlc(data) {
return request({
url: '/base/equipment-plc/create',
method: 'post',
data: data
})
}
// 更新实时数据采集配置
export function updateEquipmentPlc(data) {
return request({
url: '/base/equipment-plc/update',
method: 'put',
data: data
})
}
// 删除实时数据采集配置
export function deleteEquipmentPlc(id) {
return request({
url: '/base/equipment-plc/delete?id=' + id,
method: 'delete'
})
}
// 获得实时数据采集配置
export function getEquipmentPlc(id) {
return request({
url: '/base/equipment-plc/get?id=' + id,
method: 'get'
})
}
// 获得实时数据采集配置分页
export function getEquipmentPlcPage(query) {
return request({
url: '/base/equipment-plc/page',
method: 'get',
params: query
})
}
// 导出实时数据采集配置 Excel
export function exportEquipmentPlcExcel(query) {
return request({
url: '/base/equipment-plc/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}

View File

@ -0,0 +1,54 @@
import request from '@/utils/request'
// 创建设备与实时采集关系表(一对多)
export function createEquipmentPlcConnect(data) {
return request({
url: '/base/equipment-plc-connect/create',
method: 'post',
data: data
})
}
// 更新设备与实时采集关系表(一对多)
export function updateEquipmentPlcConnect(data) {
return request({
url: '/base/equipment-plc-connect/update',
method: 'put',
data: data
})
}
// 删除设备与实时采集关系表(一对多)
export function deleteEquipmentPlcConnect(id) {
return request({
url: '/base/equipment-plc-connect/delete?id=' + id,
method: 'delete'
})
}
// 获得设备与实时采集关系表(一对多)
export function getEquipmentPlcConnect(id) {
return request({
url: '/base/equipment-plc-connect/get?id=' + id,
method: 'get'
})
}
// 获得设备与实时采集关系表(一对多)分页
export function getEquipmentPlcConnectPage(query) {
return request({
url: '/base/equipment-plc-connect/page',
method: 'get',
params: query
})
}
// 导出设备与实时采集关系表(一对多) Excel
export function exportEquipmentPlcConnectExcel(query) {
return request({
url: '/base/equipment-plc-connect/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}

View File

@ -0,0 +1,54 @@
import request from '@/utils/request'
// 创建设备数采详情
export function createEquipmentPlcParam(data) {
return request({
url: '/base/equipment-plc-param/create',
method: 'post',
data: data
})
}
// 更新设备数采详情
export function updateEquipmentPlcParam(data) {
return request({
url: '/base/equipment-plc-param/update',
method: 'put',
data: data
})
}
// 删除设备数采详情
export function deleteEquipmentPlcParam(id) {
return request({
url: '/base/equipment-plc-param/delete?id=' + id,
method: 'delete'
})
}
// 获得设备数采详情
export function getEquipmentPlcParam(id) {
return request({
url: '/base/equipment-plc-param/get?id=' + id,
method: 'get'
})
}
// 获得设备数采详情分页
export function getEquipmentPlcParamPage(query) {
return request({
url: '/base/equipment-plc-param/page',
method: 'get',
params: query
})
}
// 导出设备数采详情 Excel
export function exportEquipmentPlcParamExcel(query) {
return request({
url: '/base/equipment-plc-param/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}

View File

@ -0,0 +1,54 @@
import request from '@/utils/request'
// 创建后端用 设备生产数量统计表(按一定时间段写入)
export function createEquipmentQuantityLog(data) {
return request({
url: '/base/equipment-quantity-log/create',
method: 'post',
data: data
})
}
// 更新后端用 设备生产数量统计表(按一定时间段写入)
export function updateEquipmentQuantityLog(data) {
return request({
url: '/base/equipment-quantity-log/update',
method: 'put',
data: data
})
}
// 删除后端用 设备生产数量统计表(按一定时间段写入)
export function deleteEquipmentQuantityLog(id) {
return request({
url: '/base/equipment-quantity-log/delete?id=' + id,
method: 'delete'
})
}
// 获得后端用 设备生产数量统计表(按一定时间段写入)
export function getEquipmentQuantityLog(id) {
return request({
url: '/base/equipment-quantity-log/get?id=' + id,
method: 'get'
})
}
// 获得后端用 设备生产数量统计表(按一定时间段写入)分页
export function getEquipmentQuantityLogPage(query) {
return request({
url: '/base/equipment-quantity-log/page',
method: 'get',
params: query
})
}
// 导出后端用 设备生产数量统计表(按一定时间段写入) Excel
export function exportEquipmentQuantityLogExcel(query) {
return request({
url: '/base/equipment-quantity-log/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}

View File

@ -0,0 +1,54 @@
import request from '@/utils/request'
// 创建后端用 设备生产数量实时
export function createEquipmentQuantityRealtime(data) {
return request({
url: '/base/equipment-quantity-realtime/create',
method: 'post',
data: data
})
}
// 更新后端用 设备生产数量实时
export function updateEquipmentQuantityRealtime(data) {
return request({
url: '/base/equipment-quantity-realtime/update',
method: 'put',
data: data
})
}
// 删除后端用 设备生产数量实时
export function deleteEquipmentQuantityRealtime(id) {
return request({
url: '/base/equipment-quantity-realtime/delete?id=' + id,
method: 'delete'
})
}
// 获得后端用 设备生产数量实时
export function getEquipmentQuantityRealtime(id) {
return request({
url: '/base/equipment-quantity-realtime/get?id=' + id,
method: 'get'
})
}
// 获得后端用 设备生产数量实时分页
export function getEquipmentQuantityRealtimePage(query) {
return request({
url: '/base/equipment-quantity-realtime/page',
method: 'get',
params: query
})
}
// 导出后端用 设备生产数量实时 Excel
export function exportEquipmentQuantityRealtimeExcel(query) {
return request({
url: '/base/equipment-quantity-realtime/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}

View File

@ -0,0 +1,54 @@
import request from '@/utils/request'
// 创建后端用 设备工作状态
export function createEquipmentStatusLog(data) {
return request({
url: '/base/equipment-status-log/create',
method: 'post',
data: data
})
}
// 更新后端用 设备工作状态
export function updateEquipmentStatusLog(data) {
return request({
url: '/base/equipment-status-log/update',
method: 'put',
data: data
})
}
// 删除后端用 设备工作状态
export function deleteEquipmentStatusLog(id) {
return request({
url: '/base/equipment-status-log/delete?id=' + id,
method: 'delete'
})
}
// 获得后端用 设备工作状态
export function getEquipmentStatusLog(id) {
return request({
url: '/base/equipment-status-log/get?id=' + id,
method: 'get'
})
}
// 获得后端用 设备工作状态分页
export function getEquipmentStatusLogPage(query) {
return request({
url: '/base/equipment-status-log/page',
method: 'get',
params: query
})
}
// 导出后端用 设备工作状态 Excel
export function exportEquipmentStatusLogExcel(query) {
return request({
url: '/base/equipment-status-log/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}

View File

@ -0,0 +1,54 @@
import request from '@/utils/request'
// 创建后端用 设备状态实时
export function createEquipmentStatusRealtime(data) {
return request({
url: '/base/equipment-status-realtime/create',
method: 'post',
data: data
})
}
// 更新后端用 设备状态实时
export function updateEquipmentStatusRealtime(data) {
return request({
url: '/base/equipment-status-realtime/update',
method: 'put',
data: data
})
}
// 删除后端用 设备状态实时
export function deleteEquipmentStatusRealtime(id) {
return request({
url: '/base/equipment-status-realtime/delete?id=' + id,
method: 'delete'
})
}
// 获得后端用 设备状态实时
export function getEquipmentStatusRealtime(id) {
return request({
url: '/base/equipment-status-realtime/get?id=' + id,
method: 'get'
})
}
// 获得后端用 设备状态实时分页
export function getEquipmentStatusRealtimePage(query) {
return request({
url: '/base/equipment-status-realtime/page',
method: 'get',
params: query
})
}
// 导出后端用 设备状态实时 Excel
export function exportEquipmentStatusRealtimeExcel(query) {
return request({
url: '/base/equipment-status-realtime/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}

View File

@ -0,0 +1,54 @@
import request from '@/utils/request'
// 创建设备类型
export function createEquipmentType(data) {
return request({
url: '/base/equipment-type/create',
method: 'post',
data: data
})
}
// 更新设备类型
export function updateEquipmentType(data) {
return request({
url: '/base/equipment-type/update',
method: 'put',
data: data
})
}
// 删除设备类型
export function deleteEquipmentType(id) {
return request({
url: '/base/equipment-type/delete?id=' + id,
method: 'delete'
})
}
// 获得设备类型
export function getEquipmentType(id) {
return request({
url: '/base/equipment-type/get?id=' + id,
method: 'get'
})
}
// 获得设备类型分页
export function getEquipmentTypePage(query) {
return request({
url: '/base/equipment-type/page',
method: 'get',
params: query
})
}
// 导出设备类型 Excel
export function exportEquipmentTypeExcel(query) {
return request({
url: '/base/equipment-type/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}

View File

@ -0,0 +1,54 @@
import request from '@/utils/request'
// 创建设备类型文件关联
export function createEquipmentTypeFile(data) {
return request({
url: '/base/equipment-type-file/create',
method: 'post',
data: data
})
}
// 更新设备类型文件关联
export function updateEquipmentTypeFile(data) {
return request({
url: '/base/equipment-type-file/update',
method: 'put',
data: data
})
}
// 删除设备类型文件关联
export function deleteEquipmentTypeFile(id) {
return request({
url: '/base/equipment-type-file/delete?id=' + id,
method: 'delete'
})
}
// 获得设备类型文件关联
export function getEquipmentTypeFile(id) {
return request({
url: '/base/equipment-type-file/get?id=' + id,
method: 'get'
})
}
// 获得设备类型文件关联分页
export function getEquipmentTypeFilePage(query) {
return request({
url: '/base/equipment-type-file/page',
method: 'get',
params: query
})
}
// 导出设备类型文件关联 Excel
export function exportEquipmentTypeFileExcel(query) {
return request({
url: '/base/equipment-type-file/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}

8
src/api/base/factory.js Normal file
View File

@ -0,0 +1,8 @@
import request from '@/utils/request'
// 获得工厂产线工段设备树形结构
export function getTree() {
return request({
url: '/base/factory/getTree',
method: 'get'
})
}

View File

@ -0,0 +1,62 @@
import request from '@/utils/request'
// 创建班次基础信息
export function createGroupClasses(data) {
return request({
url: '/base/group-classes/create',
method: 'post',
data: data
})
}
// 更新班次基础信息
export function updateGroupClasses(data) {
return request({
url: '/base/group-classes/update',
method: 'put',
data: data
})
}
// 删除班次基础信息
export function deleteGroupClasses(id) {
return request({
url: '/base/group-classes/delete?id=' + id,
method: 'delete'
})
}
// 获得班次基础信息
export function getGroupClasses(id) {
return request({
url: '/base/group-classes/get?id=' + id,
method: 'get'
})
}
// 获得班次基础信息分页
export function getGroupClassesPage(query) {
return request({
url: '/base/group-classes/page',
method: 'get',
params: query
})
}
// 获取班组code
export function getCode() {
return request({
url: '/base/group-classes/getCode',
method: 'get'
})
}
// 导出班次基础信息 Excel
export function exportGroupClassesExcel(query) {
return request({
url: '/base/group-classes/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}

60
src/api/base/groupTeam.js Normal file
View File

@ -0,0 +1,60 @@
import request from '@/utils/request'
// 创建班组基础信息
export function createGroupTeam(data) {
return request({
url: '/base/group-team/create',
method: 'post',
data: data
})
}
// 更新班组基础信息
export function updateGroupTeam(data) {
return request({
url: '/base/group-team/update',
method: 'put',
data: data
})
}
// 删除班组基础信息
export function deleteGroupTeam(id) {
return request({
url: '/base/group-team/delete?id=' + id,
method: 'delete'
})
}
// 获得班组基础信息
export function getGroupTeam(id) {
return request({
url: '/base/group-team/get?id=' + id,
method: 'get'
})
}
// 获得班组基础信息分页
export function getGroupTeamPage(query) {
return request({
url: '/base/group-team/page',
method: 'get',
params: query
})
}
// 获取班组code
export function getCode() {
return request({
url: '/base/group-team/getCode',
method: 'get'
})
}
// 获得可用的排班列表
export function listEnabled() {
return request({
url: '/base/group-team/listEnabled',
method: 'get'
})
}

View File

@ -0,0 +1,28 @@
import request from '@/utils/request'
// 获取某月预排班-已有排班
export function getPreset(query) {
return request({
url: '/base/group-team-scheduling/getPreset',
method: 'get',
params: query
})
}
// 批量创建-更新排班信息
export function createOrUpdateList(data) {
return request({
url: '/base/group-team-scheduling/createOrUpdateList',
method: 'post',
data: data
})
}
// 自动排班,填充上月已有的排班
export function autoSet(query) {
return request({
url: '/base/group-team-scheduling/autoSet',
method: 'get',
params: query
})
}

View File

@ -0,0 +1,8 @@
import request from '@/utils/request'
// 获得所有工厂产线列表
export function getLineAll() {
return request({
url: '/base/production-line/listAll',
method: 'get'
})
}

View File

@ -0,0 +1,54 @@
import request from '@/utils/request'
// 创建安灯按钮16键对应
export function createQualityInspectionBoxBtn(data) {
return request({
url: '/base/quality-inspection-box-btn/create',
method: 'post',
data: data
})
}
// 更新安灯按钮16键对应
export function updateQualityInspectionBoxBtn(data) {
return request({
url: '/base/quality-inspection-box-btn/update',
method: 'put',
data: data
})
}
// 删除安灯按钮16键对应
export function deleteQualityInspectionBoxBtn(id) {
return request({
url: '/base/quality-inspection-box-btn/delete?id=' + id,
method: 'delete'
})
}
// 获得安灯按钮16键对应
export function getQualityInspectionBoxBtn(id) {
return request({
url: '/base/quality-inspection-box-btn/get?id=' + id,
method: 'get'
})
}
// 获得安灯按钮16键对应分页
export function getQualityInspectionBoxBtnPage(query) {
return request({
url: '/base/quality-inspection-box-btn/page',
method: 'get',
params: query
})
}
// 导出安灯按钮16键对应 Excel
export function exportQualityInspectionBoxBtnExcel(query) {
return request({
url: '/base/quality-inspection-box-btn/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}

View File

@ -0,0 +1,54 @@
import request from '@/utils/request'
// 创建质量检测信息基础
export function createQualityInspectionDet(data) {
return request({
url: '/base/quality-inspection-det/create',
method: 'post',
data: data
})
}
// 更新质量检测信息基础
export function updateQualityInspectionDet(data) {
return request({
url: '/base/quality-inspection-det/update',
method: 'put',
data: data
})
}
// 删除质量检测信息基础
export function deleteQualityInspectionDet(id) {
return request({
url: '/base/quality-inspection-det/delete?id=' + id,
method: 'delete'
})
}
// 获得质量检测信息基础
export function getQualityInspectionDet(id) {
return request({
url: '/base/quality-inspection-det/get?id=' + id,
method: 'get'
})
}
// 获得质量检测信息基础分页
export function getQualityInspectionDetPage(query) {
return request({
url: '/base/quality-inspection-det/page',
method: 'get',
params: query
})
}
// 导出质量检测信息基础 Excel
export function exportQualityInspectionDetExcel(query) {
return request({
url: '/base/quality-inspection-det/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}

View File

@ -0,0 +1,54 @@
import request from '@/utils/request'
// 创建质量检测类型基础
export function createQualityInspectionType(data) {
return request({
url: '/base/quality-inspection-type/create',
method: 'post',
data: data
})
}
// 更新质量检测类型基础
export function updateQualityInspectionType(data) {
return request({
url: '/base/quality-inspection-type/update',
method: 'put',
data: data
})
}
// 删除质量检测类型基础
export function deleteQualityInspectionType(id) {
return request({
url: '/base/quality-inspection-type/delete?id=' + id,
method: 'delete'
})
}
// 获得质量检测类型基础
export function getQualityInspectionType(id) {
return request({
url: '/base/quality-inspection-type/get?id=' + id,
method: 'get'
})
}
// 获得质量检测类型基础分页
export function getQualityInspectionTypePage(query) {
return request({
url: '/base/quality-inspection-type/page',
method: 'get',
params: query
})
}
// 导出质量检测类型基础 Excel
export function exportQualityInspectionTypeExcel(query) {
return request({
url: '/base/quality-inspection-type/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}

View File

@ -0,0 +1,8 @@
import request from '@/utils/request'
// 获得所有产线工段列表
export function getWorkShopAll() {
return request({
url: '/base/workshop-section/listAll',
method: 'get'
})
}

View File

@ -0,0 +1,24 @@
/*
* @Author: zhp
* @Date: 2023-09-12 14:07:04
* @LastEditTime: 2023-09-13 09:53:45
* @LastEditors: zhp
* @Description:
*/
import request from '@/utils/request'
export function getYieldAnalysisPageData(data) {
return request({
url: '/analysis/production-analysis/getOutput',
method: 'post',
data: data
})
}
export function getCT(data) {
return request({
url: '/analysis/production-analysis/getCT',
method: 'post',
data: data
})
}

View File

@ -33,7 +33,13 @@ export function getFactory(id) {
method: 'get'
})
}
// 获得工厂code
export function getCode() {
return request({
url: '/base/factory/getCode',
method: 'get'
})
}
// 获得工厂分页
export function getFactoryPage(query) {
return request({

View File

@ -8,7 +8,14 @@ export function createLineBindProduct(data) {
data: data
})
}
// 切换产品
export function switchLineBindProduct(data) {
return request({
url: '/base/line-bind-product/switch',
method: 'put',
data: data
})
}
// 更新产线目前生产产品表 主要为更新
export function updateLineBindProduct(data) {
return request({

View File

@ -1,3 +1,10 @@
/*
* @Author: Do not edit
* @Date: 2023-08-28 15:30:53
* @LastEditTime: 2023-10-13 17:08:33
* @LastEditors: DY
* @Description:
*/
import request from '@/utils/request'
// 创建产线目前生产产品表 主要为更新
@ -35,11 +42,11 @@ export function getLineBindProductLog(id) {
}
// 获得产线目前生产产品表 主要为更新分页
export function getLineBindProductLogPage(query) {
export function getLineBindProductLogPage(data) {
return request({
url: '/base/line-bind-product-log/page',
method: 'get',
params: query
method: 'post',
data: data
})
}

View File

@ -9,6 +9,13 @@ export function createProduct(data) {
})
}
// 获得产品code
export function getCode() {
return request({
url: '/base/product/getCode',
method: 'get'
})
}
// 更新产品
export function updateProduct(data) {
return request({

View File

@ -1,3 +1,10 @@
/*
* @Author: zwq
* @Date: 2023-07-26 09:56:38
* @LastEditors: zwq
* @LastEditTime: 2023-08-04 13:59:23
* @Description:
*/
import request from '@/utils/request'
// 创建工厂产线
@ -8,7 +15,20 @@ export function createProductionLine(data) {
data: data
})
}
// 获得产线code
export function getCode() {
return request({
url: '/base/production-line/getCode',
method: 'get'
})
}
// 获得产线status
export function getStatus(ids) {
return request({
url: '/base/equipment-status-realtime/lineStatus?ids=' + ids,
method: 'get'
})
}
// 更新工厂产线
export function updateProductionLine(data) {
return request({

View File

@ -1,3 +1,10 @@
/*
* @Author: zhp
* @Date: 2023-08-28 14:29:51
* @LastEditTime: 2023-08-31 14:33:46
* @LastEditors: zhp
* @Description:
*/
import request from '@/utils/request'
// 创建产线工段
@ -9,6 +16,13 @@ export function createWorkshopSection(data) {
})
}
// 获得工段code
export function getCode() {
return request({
url: '/base/workshop-section/getCode',
method: 'get'
})
}
// 更新产线工段
export function updateWorkshopSection(data) {
return request({

View File

@ -0,0 +1,25 @@
/*
* @Author: Do not edit
* @Date: 2023-09-12 09:44:53
* @LastEditTime: 2023-09-13 16:11:41
* @LastEditors: DY
* @Description:
*/
import request from '@/utils/request'
// 获得工厂分页
export function getPdlAutoReport(data) {
return request({
url: '/monitoring/production-monitor/getPdlAutoReport',
method: 'post',
data: data
})
}
// 获得所有工厂产线列表
export function getPdList() {
return request({
url: '/base/production-line/listAll',
method: 'get'
})
}

View File

@ -0,0 +1,25 @@
/*
* @Author: Do not edit
* @Date: 2023-09-12 09:44:53
* @LastEditTime: 2023-09-14 10:25:46
* @LastEditors: DY
* @Description:
*/
import request from '@/utils/request'
// 获得产线统计数据查询
export function getPdlDataSearch(data) {
return request({
url: '/monitoring/production-monitor/getPdlDataSearch',
method: 'post',
data: data
})
}
// 获得所有工厂产线列表
export function getPdList() {
return request({
url: '/base/production-line/listAll',
method: 'get'
})
}

View File

@ -0,0 +1,17 @@
/*
* @Author: Do not edit
* @Date: 2023-09-12 09:44:53
* @LastEditTime: 2023-09-15 14:12:26
* @LastEditors: DY
* @Description:
*/
import request from '@/utils/request'
// 获得近24小时产线生产数据
export function getPdlDataOneDay(data) {
return request({
url: '/monitoring/production-monitor/getPdlDataOneDay',
method: 'post',
data: data
})
}

View File

@ -0,0 +1,16 @@
/*
* @Author: zhp
* @Date: 2023-09-12 14:07:04
* @LastEditTime: 2023-09-13 09:46:44
* @LastEditors: zhp
* @Description:
*/
import request from '@/utils/request'
export function getSectionDataSearch(data) {
return request({
url: '/monitoring/production-monitor/getSectionDataSearch',
method: 'post',
data: data
})
}

View File

@ -0,0 +1,33 @@
/*
* @Author: Do not edit
* @Date: 2023-09-12 09:44:53
* @LastEditTime: 2023-09-14 14:01:12
* @LastEditors: DY
* @Description:
*/
import request from '@/utils/request'
// 获得工段自动统计数据查询
export function getSectionAutoReport(data) {
return request({
url: '/monitoring/production-monitor/getSectionAutoReport',
method: 'post',
data: data
})
}
// 获得所有工厂产线列表
export function getPdList() {
return request({
url: '/base/production-line/listAll',
method: 'get'
})
}
// 获得所有产线工段列表
export function getWorkshopSectionList() {
return request({
url: '/base/workshop-section/listAll',
method: 'get'
})
}

View File

@ -0,0 +1,63 @@
import request from '@/utils/request'
// 创建能源监控配置
export function createEnergyLimit(data) {
return request({
url: '/monitoring/energy-limit/create',
method: 'post',
data: data
})
}
// 更新能源监控配置
export function updateEnergyLimit(data) {
return request({
url: '/monitoring/energy-limit/update',
method: 'put',
data: data
})
}
// 删除能源监控配置
export function deleteEnergyLimit(id) {
return request({
url: '/monitoring/energy-limit/delete?id=' + id,
method: 'delete'
})
}
// 获得能源监控配置
export function getEnergyLimit(id) {
return request({
url: '/monitoring/energy-limit/get?id=' + id,
method: 'get'
})
}
// 获得能源监控配置分页
export function getEnergyLimitPage(data) {
return request({
url: '/monitoring/energy-limit/page',
method: 'post',
data: data
})
}
// 导出能源监控配置 Excel
export function exportEnergyLimitExcel(query) {
return request({
url: '/monitoring/energy-limit/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}
// 获取详细参数列表
export function getEnergyParamList(data) {
return request({
url: '/monitoring/energy-limit/listParam',
method: 'post',
data: data
})
}

View File

@ -0,0 +1,54 @@
import request from '@/utils/request'
// 创建能源超限记录
export function createEnergyOverlimitLog(data) {
return request({
url: '/monitoring/energy-overlimit-log/create',
method: 'post',
data: data
})
}
// 更新能源超限记录
export function updateEnergyOverlimitLog(data) {
return request({
url: '/monitoring/energy-overlimit-log/update',
method: 'put',
data: data
})
}
// 删除能源超限记录
export function deleteEnergyOverlimitLog(id) {
return request({
url: '/monitoring/energy-overlimit-log/delete?id=' + id,
method: 'delete'
})
}
// 获得能源超限记录
export function getEnergyOverlimitLog(id) {
return request({
url: '/monitoring/energy-overlimit-log/get?id=' + id,
method: 'get'
})
}
// 获得能源超限记录分页
export function getEnergyOverlimitLogPage(data) {
return request({
url: '/monitoring/energy-overlimit-log/page',
method: 'post',
data: data
})
}
// 导出能源超限记录 Excel
export function exportEnergyOverlimitLogExcel(query) {
return request({
url: '/monitoring/energy-overlimit-log/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}

View File

@ -0,0 +1,39 @@
import request from '@/utils/request'
// 获得能耗统计查询分页
export function energyReportPage(data) {
return request({
url: '/monitoring/energy-report/page',
method: 'post',
data: data
})
}
// 获得能耗统计报表分页
export function energyReportPageAuto(data) {
return request({
url: '/monitoring/energy-report/pageAuto',
method: 'post',
data: data
})
}
// 导出能耗统计查询
export function energyReportPageExport(data) {
return request({
url: '/monitoring/energy-report/export',
method: 'post',
data: data,
responseType: 'blob'
})
}
// 导出能耗统计报表
export function energyReportPageExportAuto(data) {
return request({
url: '/monitoring/energy-report/exportAuto',
method: 'post',
data: data,
responseType: 'blob'
})
}

View File

@ -0,0 +1,62 @@
import request from '@/utils/request'
// 创建能源统计主
export function createEnergyStatistics(data) {
return request({
url: '/monitoring/energy-statistics/create',
method: 'post',
data: data
})
}
// 更新能源统计主
export function updateEnergyStatistics(data) {
return request({
url: '/monitoring/energy-statistics/update',
method: 'put',
data: data
})
}
// 删除能源统计主
export function deleteEnergyStatistics(id) {
return request({
url: '/monitoring/energy-statistics/delete?id=' + id,
method: 'delete'
})
}
// 获得能源统计主
export function getEnergyStatistics(id) {
return request({
url: '/monitoring/energy-statistics/get?id=' + id,
method: 'get'
})
}
// 获得能源统计主分页
export function getEnergyStatisticsPage(data) {
return request({
url: '/monitoring/energy-statistics/page',
method: 'post',
data: data
})
}
// 导出能源统计主 Excel
export function exportEnergyStatisticsExcel(query) {
return request({
url: '/monitoring/energy-statistics/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}
// 获取编码
export function getCode() {
return request({
url: '/monitoring/energy-statistics/getCode',
method: 'get'
})
}

View File

@ -0,0 +1,72 @@
import request from '@/utils/request'
// 创建能源统计详细表
export function createEnergyStatisticsDet(data) {
return request({
url: '/monitoring/energy-statistics-det/create',
method: 'post',
data: data
})
}
// 更新能源统计详细表
export function updateEnergyStatisticsDet(data) {
return request({
url: '/monitoring/energy-statistics-det/update',
method: 'put',
data: data
})
}
// 删除能源统计详细表
export function deleteEnergyStatisticsDet(id) {
return request({
url: '/monitoring/energy-statistics-det/delete?id=' + id,
method: 'delete'
})
}
// 获得能源统计详细表
export function getEnergyStatisticsDet(id) {
return request({
url: '/monitoring/energy-statistics-det/get?id=' + id,
method: 'get'
})
}
// 获得能源统计详细表分页
export function getEnergyStatisticsDetPage(data) {
return request({
url: '/monitoring/energy-statistics-det/page',
method: 'post',
data: data
})
}
// 导出能源统计详细表 Excel
export function exportEnergyStatisticsDetExcel(query) {
return request({
url: '/monitoring/energy-statistics-det/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}
// 获得 新增参数关联 分页
export function addParamPage(data) {
return request({
url: '/monitoring/energy-statistics-det/addParamPage',
method: 'post',
data: data
})
}
// 删除(批量)
export function deleteMany(data) {
return request({
url: '/monitoring/energy-statistics-det/deleteMany',
method: 'post',
data: data
})
}

View File

@ -0,0 +1,54 @@
import request from '@/utils/request'
// 创建设备报警日志
export function createEquipmentAlarmLog(data) {
return request({
url: '/monitoring/equipment-alarm-log/create',
method: 'post',
data: data
})
}
// 更新设备报警日志
export function updateEquipmentAlarmLog(data) {
return request({
url: '/monitoring/equipment-alarm-log/update',
method: 'put',
data: data
})
}
// 删除设备报警日志
export function deleteEquipmentAlarmLog(id) {
return request({
url: '/monitoring/equipment-alarm-log/delete?id=' + id,
method: 'delete'
})
}
// 获得设备报警日志
export function getEquipmentAlarmLog(id) {
return request({
url: '/monitoring/equipment-alarm-log/get?id=' + id,
method: 'get'
})
}
// 获得设备报警日志分页
export function getEquipmentAlarmLogPage(query) {
return request({
url: '/monitoring/equipment-alarm-log/page',
method: 'get',
params: query
})
}
// 导出设备报警日志 Excel
export function exportEquipmentAlarmLogExcel(query) {
return request({
url: '/monitoring/equipment-alarm-log/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}

View File

@ -0,0 +1,54 @@
import request from '@/utils/request'
// 创建设备报警实时信息
export function createEquipmentAlarmRealtime(data) {
return request({
url: '/monitoring/equipment-alarm-realtime/create',
method: 'post',
data: data
})
}
// 更新设备报警实时信息
export function updateEquipmentAlarmRealtime(data) {
return request({
url: '/monitoring/equipment-alarm-realtime/update',
method: 'put',
data: data
})
}
// 删除设备报警实时信息
export function deleteEquipmentAlarmRealtime(id) {
return request({
url: '/monitoring/equipment-alarm-realtime/delete?id=' + id,
method: 'delete'
})
}
// 获得设备报警实时信息
export function getEquipmentAlarmRealtime(id) {
return request({
url: '/monitoring/equipment-alarm-realtime/get?id=' + id,
method: 'get'
})
}
// 获得设备报警实时信息分页
export function getEquipmentAlarmRealtimePage(query) {
return request({
url: '/monitoring/equipment-alarm-realtime/page',
method: 'get',
params: query
})
}
// 导出设备报警实时信息 Excel
export function exportEquipmentAlarmRealtimeExcel(query) {
return request({
url: '/monitoring/equipment-alarm-realtime/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}

View File

@ -0,0 +1,54 @@
import request from '@/utils/request'
// 创建质量检查信息记录表
export function createQualityInspectionRecord(data) {
return request({
url: '/monitoring/quality-inspection-record/create',
method: 'post',
data: data
})
}
// 更新质量检查信息记录表
export function updateQualityInspectionRecord(data) {
return request({
url: '/monitoring/quality-inspection-record/update',
method: 'put',
data: data
})
}
// 删除质量检查信息记录表
export function deleteQualityInspectionRecord(id) {
return request({
url: '/monitoring/quality-inspection-record/delete?id=' + id,
method: 'delete'
})
}
// 获得质量检查信息记录表
export function getQualityInspectionRecord(id) {
return request({
url: '/monitoring/quality-inspection-record/get?id=' + id,
method: 'get'
})
}
// 获得质量检查信息记录表分页
export function getQualityInspectionRecordPage(query) {
return request({
url: '/monitoring/quality-inspection-record/page',
method: 'get',
params: query
})
}
// 导出质量检查信息记录表 Excel
export function exportQualityInspectionRecordExcel(query) {
return request({
url: '/monitoring/quality-inspection-record/export-excel',
method: 'get',
params: query,
responseType: 'blob'
})
}

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>选择</title>
<g id="设备管理" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="设备监控-设备加工数量" transform="translate(-496.000000, -187.000000)" fill-rule="nonzero">
<g id="选择" transform="translate(496.000000, 187.000000)">
<rect id="矩形" fill="#000000" opacity="0" x="0" y="0" width="16" height="16"></rect>
<path d="M13.8735116,4.65950813 C13.6725171,4.47101195 13.3555167,4.48001613 13.1670206,4.6815213 L6.49899208,11.7809972 L2.85649778,8.19199033 C2.65950812,7.99798414 2.34299153,8 2.14898534,8.19698966 C1.95497916,8.3934955 1.95747883,8.71049591 2.15449536,8.90399141 L6.16199434,12.8519823 C6.16349952,12.8534874 6.1654885,12.8539712 6.16699367,12.8554764 C6.16849884,12.8569816 6.16898266,12.8589706 6.17048783,12.8604757 C6.20198897,12.8904717 6.23999461,12.9074856 6.27649508,12.9274829 C6.29450341,12.9379922 6.3099852,12.953474 6.32898802,12.960973 C6.38798547,12.9839807 6.45047706,12.9959683 6.51248486,12.9959683 C6.57798681,12.9959683 6.64348875,12.9829593 6.70447519,12.9569682 C6.72498319,12.9484747 6.74097566,12.930977 6.75997848,12.919957 C6.79747344,12.8979438 6.83647358,12.8794517 6.86848541,12.8469561 C6.86999058,12.8454509 6.87047439,12.8429512 6.87197956,12.841446 C6.87297405,12.8399409 6.87498991,12.8394571 6.8764682,12.8379519 L13.8949604,5.36594544 C14.0849886,5.16548852 14.0745061,4.8489988 13.8735116,4.65950813 Z" id="路径" fill="#0B58FF"></path>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>菜单</title>
<g id="设备管理" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="设备监控-设备加工数量" transform="translate(-284.000000, -164.000000)" fill-rule="nonzero">
<g id="编组-7" transform="translate(284.000000, 162.000000)">
<g id="菜单" transform="translate(0.000000, 2.000000)">
<rect id="矩形" fill="#000000" opacity="0" x="0" y="0" width="16" height="16"></rect>
<path d="M3.00057813,4.49926562 L13.0025156,4.49926562 C13.2786563,4.49926562 13.5025156,4.27540625 13.5025156,3.99926563 C13.5025156,3.723125 13.2786563,3.49926563 13.0025156,3.49926563 L3.00057813,3.49926563 C2.7244375,3.49926563 2.50057813,3.723125 2.50057813,3.99926563 C2.50057813,4.27540625 2.7244375,4.49926562 3.00057813,4.49926562 Z M3.0004375,8.48703125 L12.9786875,8.48703125 C13.2548281,8.48703125 13.4786875,8.26317187 13.4786875,7.98703125 C13.4786875,7.71089062 13.2548281,7.48703125 12.9786875,7.48703125 L3.0004375,7.48703125 C2.72429687,7.48703125 2.5004375,7.71089062 2.5004375,7.98703125 C2.5004375,8.26317187 2.72429687,8.48703125 3.0004375,8.48703125 Z M13.0025156,11.4969063 L3.00057813,11.4969063 C2.7244375,11.4969063 2.50057813,11.7207656 2.50057813,11.9969063 C2.50057813,12.2730469 2.7244375,12.4969063 3.00057813,12.4969063 L13.0025156,12.4969063 C13.2786563,12.4969063 13.5025156,12.2730469 13.5025156,11.9969063 C13.5025156,11.7207656 13.2786563,11.4969063 13.0025156,11.4969063 L13.0025156,11.4969063 Z" id="形状" fill="#373738"></path>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>状态切换备份 3</title>
<g id="页面" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="icon和插图" transform="translate(-877.000000, -246.000000)">
<g id="状态切换备份-3" transform="translate(885.000000, 254.000000) rotate(-270.000000) translate(-885.000000, -254.000000) translate(877.000000, 246.000000)">
<rect id="矩形" stroke="#979797" fill="#D8D8D8" opacity="0" x="0.5" y="0.5" width="15" height="15"></rect>
<g id="错误" transform="translate(0.000000, 0.000000)" fill-rule="nonzero">
<rect id="矩形" fill="#000000" opacity="0" x="0" y="6.4293957e-15" width="16" height="16"></rect>
<path d="M8,1 C11.85,1 15,4.15 15,8 C15,11.85 11.85,15 8,15 C4.15,15 1,11.85 1,8 C1,4.15 4.15,1 8,1 Z M8,2.19926499 C4.80249503,2.19926499 2.18635461,4.80959575 2.18635461,8 C2.18635461,11.1904043 4.80249503,13.800735 8,13.800735 C11.197505,13.800735 13.8136454,11.1904043 13.8136454,8 C13.8136454,4.80959575 11.197505,2.19926499 8,2.19926499 Z M9.18342887,4.39602962 C9.42080763,4.39602962 9.61773566,4.56921978 9.65474747,4.7961346 L9.66099805,4.87359881 L9.66052938,9.97276858 L10.1621026,9.47231604 C10.3071657,9.32725295 10.5223305,9.29501672 10.6985498,9.37560733 L10.7713701,9.41705393 L10.837514,9.47231606 C11.0033004,9.63810246 11.0217211,9.89545015 10.8927761,10.0815835 L10.837514,10.1477274 L9.52115984,11.4640816 C9.38457467,11.600698 9.17913638,11.6415719 9.00066062,11.5676398 C8.84450229,11.5029526 8.73591407,11.3615296 8.71120699,11.1977853 L8.70585968,11.1264012 L8.70585968,4.87359881 C8.70585968,4.60984463 8.91967469,4.39602962 9.18342887,4.39602962 Z M6.99933939,4.43236016 C7.15549771,4.49704738 7.26408594,4.63847045 7.28879302,4.80221473 L7.29414032,4.87359881 L7.29414032,11.1264012 C7.29414032,11.2530604 7.24382515,11.374532 7.15426356,11.4640936 C7.06470196,11.5536552 6.94323037,11.6039704 6.81657114,11.6039704 C6.68991191,11.6039704 6.56844032,11.5536552 6.47887872,11.4640936 C6.40722945,11.3924443 6.36069788,11.3003726 6.34495123,11.2015604 L6.33900196,11.1264012 L6.33858601,6.02634681 L5.83789738,6.52768395 C5.69283427,6.67274705 5.47766955,6.70498329 5.30145018,6.62439268 L5.22862992,6.58294608 L5.162486,6.52768394 C4.9966996,6.36189754 4.97827889,6.10454984 5.10722387,5.91841648 L5.162486,5.85227257 L6.47884017,4.53591839 C6.61542534,4.39930202 6.82086362,4.35842813 6.99933939,4.43236016 Z" id="形状结合" fill="#0B58FF"></path>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="14px" height="14px" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>收起箭头小备份 3</title>
<g id="能源管理" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="能源监控-同比分析" transform="translate(-848.000000, -392.000000)" fill-rule="nonzero">
<g id="收起箭头小备份-3" transform="translate(855.000000, 399.000000) scale(1, -1) translate(-855.000000, -399.000000) translate(848.000000, 392.000000)">
<rect id="矩形" fill="#000000" opacity="0" x="0" y="0" width="14" height="14"></rect>
<path d="M6.60391666,1.57197282 L7.01633334,1.15897282 L12.70325,6.8441395 C12.9278333,7.06872283 12.93075,7.4408895 12.70325,7.6683895 C12.5941655,7.77825546 12.4457769,7.84009206 12.2909546,7.84020155 C12.1361323,7.84031104 11.9876564,7.77868438 11.8784167,7.66897282 L7.0175,2.8103895 L2.16066666,7.66955616 C2.05160439,7.77930978 1.90326864,7.84102718 1.74854166,7.84102718 C1.59381468,7.84102718 1.44547894,7.77930978 1.33641666,7.66955616 C1.10964988,7.4415567 1.1091291,7.07336285 1.33525,6.84472282 L6.58116666,1.59647282 L6.6045,1.57255616 L6.60391666,1.57197282 Z" id="路径" fill="#FFBD02"></path>
<path d="M6.60391666,6.57197282 L7.01633334,6.15897282 L12.70325,11.8441395 C12.9278333,12.0687228 12.93075,12.4408895 12.70325,12.6683895 C12.5941655,12.7782555 12.4457769,12.8400921 12.2909546,12.8402015 C12.1361323,12.840311 11.9876564,12.7786844 11.8784167,12.6689728 L7.0175,7.8103895 L2.16066666,12.6695562 C2.05160439,12.7793098 1.90326864,12.8410272 1.74854166,12.8410272 C1.59381468,12.8410272 1.44547894,12.7793098 1.33641666,12.6695562 C1.10964988,12.4415567 1.1091291,12.0733628 1.33525,11.8447228 L6.58116666,6.59647282 L6.6045,6.57255616 L6.60391666,6.57197282 Z" id="路径备份-2" fill="#FFBD02"></path>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>下拉展开</title>
<g id="页面" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="编组-43" transform="translate(-1870.000000, -119.000000)" fill-rule="nonzero">
<g id="下拉展开" transform="translate(1870.000000, 119.000000)">
<rect id="矩形" fill="#000000" opacity="0" x="0" y="0" width="18" height="18"></rect>
<path d="M9.79014922,13.2165873 L16.1721224,6.15356667 C16.6092925,5.77338351 16.6092925,5.16518371 16.1721224,4.78500055 C15.964758,4.60350795 15.6800768,4.50112918 15.3827707,4.50112918 C15.0854647,4.50112918 14.8007835,4.60350795 14.5934191,4.78500055 L9.00013482,11.162609 L3.40552499,4.78387137 C3.19816065,4.60237877 2.91347942,4.5 2.61617336,4.5 C2.3188673,4.5 2.03418606,4.60237877 1.82682172,4.78387137 C1.39105943,5.16454327 1.39105943,5.77176559 1.82682172,6.15243749 L8.20879489,13.214329 C8.31400161,13.3066969 8.440317,13.3797143 8.57994259,13.4288732 C8.99637706,13.5753327 9.475517,13.4912854 9.79014922,13.2165873 Z" id="路径" fill="#0B58FF"></path>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>切换</title>
<g id="1班组管理" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="切换" fill="#FFFFFF" fill-rule="nonzero">
<rect id="矩形" opacity="0" x="0" y="0" width="16" height="16"></rect>
<path d="M14.5,9.15 C14.969442,9.15 15.35,9.53055796 15.35,10 C15.35,10.4333311 15.0257376,10.7909267 14.6066222,10.8433773 L14.5,10.85 L3.523,10.8493636 L5.10448737,12.4305126 C5.26177017,12.5877954 5.34716031,12.7990496 5.34764236,13.015701 L5.34074746,13.1242515 L5.31933966,13.2323523 C5.24258033,13.518822 5.01882201,13.7425803 4.73235229,13.8193397 C4.48169128,13.8865041 4.21633806,13.832194 4.01342676,13.6770775 L3.93051263,13.6044874 L1.04232939,10.7055042 C0.831903536,10.5688042 0.689345737,10.3541899 0.656994192,10.1075365 L0.65,10 L0.65778959,9.88152374 C0.670925502,9.77175364 0.705946489,9.66606949 0.76033092,9.57061601 L0.821076439,9.47880032 L0.894170559,9.39517056 C1.02591288,9.26342824 1.19742791,9.1808136 1.37731459,9.15882561 L1.5,9.15 L14.5,9.15 Z M11.9865732,2.32292254 L12.0694874,2.39551263 L14.9508862,5.29019827 C15.1653597,5.42263107 15.3074642,5.64305498 15.3419246,5.89182346 L15.35,6 L15.3417548,6.1198336 C15.3282251,6.22918814 15.2930578,6.33441548 15.2387207,6.42946868 L15.1780851,6.52090655 L15.1052179,6.60421789 C14.9738843,6.73555151 14.8030912,6.81820523 14.622959,6.840766 L14.5,6.85 L1.5,6.85 C1.03055796,6.85 0.65,6.46944204 0.65,6 C0.65,5.56666889 0.974262406,5.20907332 1.39337781,5.15662271 L1.5,5.15 L12.475,5.14936355 L10.8955126,3.56948738 C10.7382298,3.41220459 10.6528397,3.20095039 10.6523576,2.98429905 L10.6592525,2.8757485 L10.6806603,2.76764771 C10.7478247,2.5169867 10.9275353,2.31433911 11.1633258,2.21617103 L11.2676477,2.18066033 C11.5183087,2.11349592 11.7836619,2.167806 11.9865732,2.32292254 Z" id="形状结合"></path>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="14px" height="14px" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>收起箭头小备份 11</title>
<g id="能源管理" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="能源监控-同比分析" transform="translate(-848.000000, -269.000000)" fill-rule="nonzero">
<g id="收起箭头小备份-11" transform="translate(848.000000, 269.000000)">
<rect id="矩形" fill="#000000" opacity="0" x="0" y="0" width="14" height="14"></rect>
<path d="M6.60391666,1.57197282 L7.01633334,1.15897282 L12.70325,6.8441395 C12.9278333,7.06872283 12.93075,7.4408895 12.70325,7.6683895 C12.5941655,7.77825546 12.4457769,7.84009206 12.2909546,7.84020155 C12.1361323,7.84031104 11.9876564,7.77868438 11.8784167,7.66897282 L7.0175,2.8103895 L2.16066666,7.66955616 C2.05160439,7.77930978 1.90326864,7.84102718 1.74854166,7.84102718 C1.59381468,7.84102718 1.44547894,7.77930978 1.33641666,7.66955616 C1.10964988,7.4415567 1.1091291,7.07336285 1.33525,6.84472282 L6.58116666,1.59647282 L6.6045,1.57255616 L6.60391666,1.57197282 Z" id="路径" fill="#37D97F"></path>
<path d="M6.60391666,6.57197282 L7.01633334,6.15897282 L12.70325,11.8441395 C12.9278333,12.0687228 12.93075,12.4408895 12.70325,12.6683895 C12.5941655,12.7782555 12.4457769,12.8400921 12.2909546,12.8402015 C12.1361323,12.840311 11.9876564,12.7786844 11.8784167,12.6689728 L7.0175,7.8103895 L2.16066666,12.6695562 C2.05160439,12.7793098 1.90326864,12.8410272 1.74854166,12.8410272 C1.59381468,12.8410272 1.44547894,12.7793098 1.33641666,12.6695562 C1.10964988,12.4415567 1.1091291,12.0733628 1.33525,11.8447228 L6.58116666,6.59647282 L6.6045,6.57255616 L6.60391666,6.57197282 Z" id="路径备份-2" fill="#37D97F"></path>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>收起</title>
<g id="页面" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="编组-43" transform="translate(-1870.000000, -485.000000)" fill-rule="nonzero">
<g id="编组-18备份" transform="translate(1.000000, 366.000000)">
<g id="收起" transform="translate(1878.000000, 128.000000) scale(1, -1) translate(-1878.000000, -128.000000) translate(1869.000000, 119.000000)">
<rect id="矩形" fill="#000000" opacity="0" x="0" y="0" width="18" height="18"></rect>
<path d="M9.79014922,13.2165873 L16.1721224,6.15356667 C16.6092925,5.77338351 16.6092925,5.16518371 16.1721224,4.78500055 C15.964758,4.60350795 15.6800768,4.50112918 15.3827707,4.50112918 C15.0854647,4.50112918 14.8007835,4.60350795 14.5934191,4.78500055 L9.00013482,11.162609 L3.40552499,4.78387137 C3.19816065,4.60237877 2.91347942,4.5 2.61617336,4.5 C2.3188673,4.5 2.03418606,4.60237877 1.82682172,4.78387137 C1.39105943,5.16454327 1.39105943,5.77176559 1.82682172,6.15243749 L8.20879489,13.214329 C8.31400161,13.3066969 8.440317,13.3797143 8.57994259,13.4288732 C8.99637706,13.5753327 9.475517,13.4912854 9.79014922,13.2165873 Z" id="路径" fill="#0B58FF"></path>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 MiB

BIN
src/assets/images/Qian.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 612 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 710 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

BIN
src/assets/images/tuple.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 944 B

View File

@ -6,186 +6,217 @@
@import './btn.scss';
body {
height: 100%;
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
text-rendering: optimizeLegibility;
font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif;
height: 100%;
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
text-rendering: optimizeLegibility;
font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB,
Microsoft YaHei, Arial, sans-serif;
}
label {
font-weight: 700;
// label {
// font-weight: 700;
// }
.searchBarBox .el-form-item--medium .el-form-item__label {
line-height: 40px;
}
.searchBarBox .el-form-item--medium .el-form-item__content {
line-height: 40px;
}
.searchBarBox .el-range-editor--small.el-input__inner {
height: 34px;
}
html {
height: 100%;
box-sizing: border-box;
height: 100%;
box-sizing: border-box;
}
#app {
height: 100%;
height: 100%;
}
*,
*:before,
*:after {
box-sizing: inherit;
box-sizing: inherit;
}
.no-padding {
padding: 0px !important;
padding: 0px !important;
}
.padding-content {
padding: 4px 0;
padding: 4px 0;
}
a:focus,
a:active {
outline: none;
outline: none;
}
a,
a:focus,
a:hover {
cursor: pointer;
color: inherit;
text-decoration: none;
cursor: pointer;
color: inherit;
text-decoration: none;
}
div:focus {
outline: none;
outline: none;
}
.fr {
float: right;
float: right;
}
.fl {
float: left;
float: left;
}
.pr-5 {
padding-right: 5px;
padding-right: 5px;
}
.pl-5 {
padding-left: 5px;
padding-left: 5px;
}
.block {
display: block;
display: block;
}
.pointer {
cursor: pointer;
cursor: pointer;
}
.inlineBlock {
display: block;
display: block;
}
.clearfix {
&:after {
visibility: hidden;
display: block;
font-size: 0;
content: " ";
clear: both;
height: 0;
}
&:after {
visibility: hidden;
display: block;
font-size: 0;
content: ' ';
clear: both;
height: 0;
}
}
aside {
background: #eef1f6;
padding: 8px 24px;
margin-bottom: 20px;
border-radius: 2px;
display: block;
line-height: 32px;
font-size: 16px;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
color: #2c3e50;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
background: #eef1f6;
padding: 8px 24px;
margin-bottom: 20px;
border-radius: 2px;
display: block;
line-height: 32px;
font-size: 16px;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,
Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
color: #2c3e50;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
a {
color: #337ab7;
cursor: pointer;
a {
color: #337ab7;
cursor: pointer;
&:hover {
color: rgb(32, 160, 255);
}
}
&:hover {
color: rgb(32, 160, 255);
}
}
}
//main-container全局样式
.app-container {
padding: 20px;
padding: 16px;
}
.components-container {
margin: 30px 50px;
position: relative;
}
.pagination-container {
margin-top: 30px;
margin: 30px 50px;
position: relative;
}
.text-center {
text-align: center
text-align: center;
}
.sub-navbar {
height: 50px;
line-height: 50px;
position: relative;
width: 100%;
text-align: right;
padding-right: 20px;
transition: 600ms ease position;
background: linear-gradient(90deg, rgba(32, 182, 249, 1) 0%, rgba(32, 182, 249, 1) 0%, rgba(33, 120, 241, 1) 100%, rgba(33, 120, 241, 1) 100%);
height: 50px;
line-height: 50px;
position: relative;
width: 100%;
text-align: right;
padding-right: 20px;
transition: 600ms ease position;
background: linear-gradient(
90deg,
rgba(32, 182, 249, 1) 0%,
rgba(32, 182, 249, 1) 0%,
rgba(33, 120, 241, 1) 100%,
rgba(33, 120, 241, 1) 100%
);
.subtitle {
font-size: 20px;
color: #fff;
}
.subtitle {
font-size: 20px;
color: #fff;
}
&.draft {
background: #d0d0d0;
}
&.draft {
background: #d0d0d0;
}
&.deleted {
background: #d0d0d0;
}
&.deleted {
background: #d0d0d0;
}
}
.link-type,
.link-type:focus {
color: #337ab7;
cursor: pointer;
color: #337ab7;
cursor: pointer;
&:hover {
color: rgb(32, 160, 255);
}
&:hover {
color: rgb(32, 160, 255);
}
}
.filter-container {
padding-bottom: 10px;
padding-bottom: 10px;
.filter-item {
display: inline-block;
vertical-align: middle;
margin-bottom: 10px;
}
.filter-item {
display: inline-block;
vertical-align: middle;
margin-bottom: 10px;
}
}
//refine vue-multiselect plugin
.multiselect {
line-height: 16px;
line-height: 16px;
}
.multiselect--active {
z-index: 1000 !important;
z-index: 1000 !important;
}
.no-data-bg {
height: 240px;
background: url(../images/no-data-bg.png) 50% 100% / contain
no-repeat;
position: relative;
&::after {
content: '暂无数据';
position: absolute;
bottom: 12px;
left: 50%;
transform: translateX(-50%);
color: #ccc;
font-size: 18px;
letter-spacing: 1px;
}
}

View File

@ -5,286 +5,301 @@
/** 基础通用 **/
.pt5 {
padding-top: 5px;
padding-top: 5px;
}
.pr5 {
padding-right: 5px;
padding-right: 5px;
}
.pb5 {
padding-bottom: 5px;
padding-bottom: 5px;
}
.mt5 {
margin-top: 5px;
margin-top: 5px;
}
.mr5 {
margin-right: 5px;
margin-right: 5px;
}
.mb5 {
margin-bottom: 5px;
margin-bottom: 5px;
}
.mb8 {
margin-bottom: 8px;
margin-bottom: 8px;
}
.ml5 {
margin-left: 5px;
margin-left: 5px;
}
.mt10 {
margin-top: 10px;
margin-top: 10px;
}
.mr10 {
margin-right: 10px;
margin-right: 10px;
}
.mb10 {
margin-bottom: 10px;
margin-bottom: 10px;
}
.ml10 {
margin-left: 10px;
margin-left: 10px;
}
.mt20 {
margin-top: 20px;
margin-top: 20px;
}
.mr20 {
margin-right: 20px;
margin-right: 20px;
}
.mb20 {
margin-bottom: 20px;
margin-bottom: 20px;
}
.ml20 {
margin-left: 20px;
margin-left: 20px;
}
.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
font-family: inherit;
font-weight: 500;
line-height: 1.1;
color: inherit;
.h1,
.h2,
.h3,
.h4,
.h5,
.h6,
h1,
h2,
h3,
h4,
h5,
h6 {
font-family: inherit;
font-weight: 500;
line-height: 1.1;
color: inherit;
}
.el-message-box__status + .el-message-box__message{
word-break: break-word;
.el-message-box__status + .el-message-box__message {
word-break: break-word;
}
.el-dialog:not(.is-fullscreen) {
margin-top: 6vh !important;
// margin-top: 6vh !important;
margin-top: 12vh !important;
}
.el-dialog__wrapper.scrollbar .el-dialog .el-dialog__body {
overflow: auto;
overflow-x: hidden;
max-height: 70vh;
padding: 10px 20px 0;
overflow: auto;
overflow-x: hidden;
max-height: 70vh;
padding: 10px 20px 0;
}
.el-dialog{
display: flex;
flex-direction: column;
max-width: calc(100% - 30px);
max-height: calc(100% - 70px);
.el-dialog__body {
overflow: auto;
}
.el-dialog {
display: flex;
flex-direction: column;
max-width: calc(100% - 30px);
max-height: calc(100% - 70px);
.el-dialog__body {
overflow: auto;
}
}
.el-table {
.el-table__header-wrapper, .el-table__fixed-header-wrapper {
th {
word-break: break-word;
background-color: #f8f8f9;
color: #515a6e;
height: 40px;
font-size: 13px;
}
}
.el-table__body-wrapper {
.el-button [class*="el-icon-"] + span {
margin-left: 1px;
}
}
.el-table__header-wrapper,
.el-table__fixed-header-wrapper {
th {
word-break: break-word;
background-color: #f8f8f9;
color: #515a6e;
height: 40px;
font-size: 13px;
}
}
.el-table__body-wrapper {
.el-button [class*='el-icon-'] + span {
margin-left: 1px;
}
}
}
/** 表单布局 **/
.form-header {
font-size:15px;
color:#6379bb;
border-bottom:1px solid #ddd;
margin:8px 10px 25px 10px;
padding-bottom:5px
font-size: 15px;
color: #6379bb;
border-bottom: 1px solid #ddd;
margin: 8px 10px 25px 10px;
padding-bottom: 5px;
}
/** 表格布局 **/
.pagination-container {
position: relative;
height: 25px;
margin-bottom: 10px;
margin-top: 15px;
padding: 10px 20px !important;
}
// .pagination-container {
// position: relative;
// height: 25px;
// margin-bottom: 10px;
// margin-top: 15px;
// padding: 10px 20px !important;
// }
/* tree border */
.tree-border {
margin-top: 5px;
border: 1px solid #e5e6e7;
background: #FFFFFF none;
border-radius:4px;
margin-top: 5px;
border: 1px solid #e5e6e7;
background: #ffffff none;
border-radius: 4px;
}
.pagination-container .el-pagination {
right: 0;
position: absolute;
right: 0;
position: absolute;
}
@media ( max-width : 768px) {
.pagination-container .el-pagination > .el-pagination__jump {
display: none !important;
}
.pagination-container .el-pagination > .el-pagination__sizes {
display: none !important;
}
@media (max-width: 768px) {
.pagination-container .el-pagination > .el-pagination__jump {
display: none !important;
}
.pagination-container .el-pagination > .el-pagination__sizes {
display: none !important;
}
}
.el-table .fixed-width .el-button--mini {
padding-left: 0;
padding-right: 0;
width: inherit;
padding-left: 0;
padding-right: 0;
width: inherit;
}
/** 表格更多操作下拉样式 */
.el-table .el-dropdown-link,.el-table .el-dropdown-selfdefine {
cursor: pointer;
margin-left: 5px;
.el-table .el-dropdown-link,
.el-table .el-dropdown-selfdefine {
cursor: pointer;
margin-left: 5px;
}
.el-table .el-dropdown, .el-icon-arrow-down {
font-size: 12px;
.el-table .el-dropdown,
.el-icon-arrow-down {
font-size: 12px;
}
.el-tree-node__content > .el-checkbox {
margin-right: 8px;
margin-right: 8px;
}
.list-group-striped > .list-group-item {
border-left: 0;
border-right: 0;
border-radius: 0;
padding-left: 0;
padding-right: 0;
border-left: 0;
border-right: 0;
border-radius: 0;
padding-left: 0;
padding-right: 0;
&:not(:last-child) {
border-bottom: 1px solid #e7eaec;
}
&:not(:last-child) {
border-bottom: 1px solid #e7eaec;
}
}
.list-group {
padding-left: 0px;
list-style: none;
padding-left: 0px;
list-style: none;
}
.list-group-item {
// border-bottom: 1px solid #e7eaec;
// border-top: 1px solid #e7eaec;
margin-bottom: -1px;
padding: 11px 0px;
font-size: 13px;
// border-bottom: 1px solid #e7eaec;
// border-top: 1px solid #e7eaec;
margin-bottom: -1px;
padding: 11px 0px;
font-size: 13px;
}
.pull-right {
float: right !important;
float: right !important;
}
.el-card__header {
padding: 14px 15px 7px;
min-height: 40px;
padding: 14px 15px 7px;
min-height: 40px;
}
.el-card__body {
padding: 15px 20px 20px 20px;
padding: 15px 20px 20px 20px;
}
.card-box {
padding-right: 15px;
padding-left: 15px;
margin-bottom: 10px;
padding-right: 15px;
padding-left: 15px;
margin-bottom: 10px;
}
/* button color */
.el-button--cyan.is-active,
.el-button--cyan:active {
background: #20B2AA;
border-color: #20B2AA;
color: #FFFFFF;
background: #20b2aa;
border-color: #20b2aa;
color: #ffffff;
}
.el-button--cyan:focus,
.el-button--cyan:hover {
background: #48D1CC;
border-color: #48D1CC;
color: #FFFFFF;
background: #48d1cc;
border-color: #48d1cc;
color: #ffffff;
}
.el-button--cyan {
background-color: #20B2AA;
border-color: #20B2AA;
color: #FFFFFF;
background-color: #20b2aa;
border-color: #20b2aa;
color: #ffffff;
}
/* text color */
.text-navy {
color: #1ab394;
color: #1ab394;
}
.text-primary {
color: inherit;
color: inherit;
}
.text-success {
color: #1c84c6;
color: #1c84c6;
}
.text-info {
color: #23c6c8;
color: #23c6c8;
}
.text-warning {
color: #f8ac59;
color: #f8ac59;
}
.text-danger {
color: #ed5565;
color: #ed5565;
}
.text-muted {
color: #888888;
color: #888888;
}
/* image */
.img-circle {
border-radius: 50%;
border-radius: 50%;
}
.img-lg {
width: 120px;
height: 120px;
width: 120px;
height: 120px;
}
.avatar-upload-preview {
position: absolute;
top: 50%;
transform: translate(50%, -50%);
width: 200px;
height: 200px;
border-radius: 50%;
box-shadow: 0 0 4px #ccc;
overflow: hidden;
position: absolute;
top: 50%;
transform: translate(50%, -50%);
width: 200px;
height: 200px;
border-radius: 50%;
box-shadow: 0 0 4px #ccc;
overflow: hidden;
}
/* 拖拽列样式 */
.sortable-ghost{
opacity: .8;
color: #fff!important;
background: #42b983!important;
.sortable-ghost {
opacity: 0.8;
color: #fff !important;
background: #42b983 !important;
}
.top-right-btn {
position: relative;
float: right;
position: relative;
float: right;
}

View File

@ -105,6 +105,10 @@
background-color: $base-sub-menu-hover !important;
}
}
& .theme-dark .el-submenu .el-menu-item.is-active {
background-color: #0b50ff !important;
}
}
.hideSidebar {

View File

@ -9,20 +9,20 @@ $yellow:#FEC171;
$panGreen: #30B08F;
// 默认菜单主题风格
$base-menu-color:#bfcbd9;
$base-menu-color-active:#f4f4f5;
$base-menu-background:#304156;
$base-logo-title-color: #ffffff;
// $base-menu-color:#bfcbd9;
// $base-menu-color-active:#f4f4f5;
// $base-menu-background:#304156;
// $base-logo-title-color: #ffffff;
$base-menu-light-color:rgba(0,0,0,.70);
$base-menu-light-background:#ffffff;
$base-logo-light-title-color: #001529;
// $base-menu-light-color:rgba(0,0,0,.70);
// $base-menu-light-background:#ffffff;
// $base-logo-light-title-color: #001529;
$base-sub-menu-background:#1f2d3d;
$base-sub-menu-hover:#001528;
// $base-sub-menu-background:#1f2d3d;
// $base-sub-menu-hover:#001528;
// 自定义暗色菜单风格
/**
/*
$base-menu-color:hsla(0,0%,100%,.65);
$base-menu-color-active:#fff;
$base-menu-background:#001529;
@ -35,8 +35,20 @@ $base-logo-light-title-color: #001529;
$base-sub-menu-background:#000c17;
$base-sub-menu-hover:#001528;
*/
$base-menu-color: #fff;
$base-menu-color-active:#fff;
$base-menu-background:#001529;
$base-logo-title-color: #ffffff;
$base-sidebar-width: 280px;
$base-menu-light-color:rgba(0,0,0,.70);
$base-menu-light-background:#ffffff;
$base-logo-light-title-color: #001529;
$base-sub-menu-background:#0B253F;
$base-sub-menu-hover:#0b50ff;
$base-sidebar-width: 248px;
// the :export directive is the magic sauce for webpack
// https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass

View File

@ -68,8 +68,12 @@ export default {
margin-left: 8px;
.no-redirect {
color: #97a8be;
color: rgba(0, 0, 0, 0.65);
cursor: text;
}
}
.app-breadcrumb .el-breadcrumb__inner a, .el-breadcrumb__inner.is-link {
color: rgba(0, 0, 0, 0.45);
}
</style>

View File

@ -0,0 +1,430 @@
<!--
filename: dialogForm.vue
author: liubin
date: 2023-08-15 10:32:36
description: 弹窗的表单组件
-->
<template>
<el-form
ref="form"
:model="form"
:label-width="`${labelWidth}px`"
:size="size"
:label-position="labelPosition"
v-loading="formLoading">
<el-row :gutter="20" v-for="(row, rindex) in rows" :key="rindex">
<el-col v-for="col in row" :key="col.label" :span="24 / row.length">
<el-form-item :label="col.label" :prop="col.prop" :rules="col.rules">
<el-input
v-if="col.input"
v-model="form[col.prop]"
@change="$emit('update', form)"
:placeholder="`请输入${col.label}`"
v-bind="col.bind" />
<el-input
v-if="col.textarea"
type="textarea"
v-model="form[col.prop]"
@change="$emit('update', form)"
:placeholder="`请输入${col.label}`"
v-bind="col.bind" />
<el-select
v-if="col.select"
v-model="form[col.prop]"
:placeholder="`请选择${col.label}`"
@change="$emit('update', form)"
v-bind="col.bind">
<el-option
v-for="opt in optionListOf[col.prop]"
:key="opt.value"
:label="opt.label"
:value="opt.value" />
</el-select>
<el-date-picker
v-if="col.datetime"
v-model="form[col.prop]"
type="datetime"
:placeholder="`请选择${col.label}`"
value-format="timestamp"
v-bind="col.bind"></el-date-picker>
<el-switch
v-if="col.switch"
v-model="form[col.prop]"
active-color="#0b58ff"
inactive-color="#e1e1e1"
v-bind="col.bind"></el-switch>
<component
v-if="col.subcomponent"
:key="col.key"
:is="col.subcomponent"
:inlineStyle="col.style"></component>
<div
class="upload-area"
:class="uploadOpen ? '' : 'height-48'"
ref="uploadArea"
v-if="col.upload">
<span class="close-icon" :class="uploadOpen ? 'open' : ''">
<el-button
type="text"
icon="el-icon-arrow-right"
@click="handleFilesOpen" />
</span>
<!-- :file-list="uploadedFileList" -->
<el-upload
class="upload-in-dialog"
v-if="col.upload"
:action="uploadUrl"
:headers="uploadHeaders"
:show-file-list="false"
icon="el-icon-upload2"
:before-upload="beforeUpload"
:on-success="handleUploadSuccess"
v-bind="col.bind">
<el-button size="mini" :disabled="col.bind?.disabled || false">
上传文件
</el-button>
<div class="el-upload__tip" slot="tip" v-if="col.uploadTips">
{{ col.uploadTips || '只能上传jpg/png文件, 大小不超过2MB' }}
</div>
</el-upload>
<uploadedFile
class="file"
v-for="file in form[col.prop] || []"
:file="file"
@delete="handleDeleteFile(file)" />
</div>
</el-form-item>
</el-col>
</el-row>
</el-form>
</template>
<script>
import { getAccessToken } from '@/utils/auth';
import tupleImg from '@/assets/images/tuple.png';
/**
* 找到最长的label
* @param {*} options
*/
function findMaxLabelWidth(rows) {
let max = 0;
rows.forEach((row) => {
row.forEach((opt) => {
// debugger;
if (!opt.label) return 0;
if (opt.label.length > max) {
max = opt.label.length;
}
});
});
return max;
}
const uploadedFile = {
name: 'UploadedFile',
props: ['file'],
data() {
return {};
},
methods: {
handleDelete() {
console.log('emit delete event')
this.$emit('delete', this.file);
},
},
mounted() {},
render: function (h) {
return (
<div
title={this.file.fileName}
style={{
background: `url(${tupleImg}) no-repeat`,
backgroundSize: '14px',
backgroundPosition: '0 55%',
paddingLeft: '20px',
paddingRight: '24px',
textOverflow: 'ellipsis',
whiteSpace: 'nowrap',
overflow: 'hidden',
cursor: 'pointer',
display: 'inline-block',
}}>
{this.file.fileName}
<el-button
type="text"
icon="el-icon-close"
style="float: right; position: relative; top: 2px; left: 8px; z-index: 100"
class="dialog__upload_component__close"
onClick={this.handleDelete}
/>
</div>
);
},
};
export default {
name: 'DialogForm',
model: {
prop: 'dataForm',
event: 'update',
},
emits: ['update'],
components: { uploadedFile },
props: {
rows: {
type: Array,
default: () => [],
},
dataForm: {
type: Object,
default: () => ({}),
},
disabled: {
type: Boolean,
default: false,
},
labelPosition: {
type: String,
default: 'right',
},
size: {
type: String,
default: '',
},
},
data() {
return {
uploadOpen: false,
form: {},
formLoading: true,
optionListOf: {},
uploadedFileList: [],
dataLoaded: false,
uploadHeaders: { Authorization: 'Bearer ' + getAccessToken() },
uploadUrl: process.env.VUE_APP_BASE_API + '/admin-api/infra/file/upload', // headersurl
};
},
computed: {
labelWidth() {
let max = findMaxLabelWidth(this.rows);
// 20px
return max * 20;
// return max * 20 + 'px';
},
},
watch: {
rows: {
handler() {
console.log('watch triggered!');
this.$nextTick(() => {
this.handleOptions('watch');
});
},
deep: true,
immediate: false,
},
dataForm: {
handler(val) {
this.form = JSON.parse(JSON.stringify(val));
},
deep: true,
immediate: true,
},
},
mounted() {
// options
this.handleOptions();
},
methods: {
/** 模拟透传 ref */
validate(cb) {
return this.$refs.form.validate(cb);
},
resetFields(args) {
return this.$refs.form.resetFields(args);
},
// getCode
async getCode(url) {
const response = await this.$axios(url);
return response.data;
},
async handleOptions(trigger = 'monuted') {
console.log('[dialogForm:handleOptions]');
const promiseList = [];
this.rows.forEach((cols) => {
cols.forEach((opt) => {
if (opt.value && !this.form[opt.prop]) {
//
this.form[opt.prop] = opt.value;
}
if (opt.options) {
this.$set(this.optionListOf, opt.prop, opt.options);
} else if (opt.url) {
// dependswatcher
if (opt.depends) {
console.log('[handleOptions] setting watch');
this.$watch(
() => this.form[opt.depends],
(id) => {
console.log('<', opt.depends, '>', 'changed', id);
if (id == null) return;
//
this.form[opt.prop] = null;
//
this.$axios({
url: `${opt.url}?id=${id}`,
}).then((res) => {
this.$set(
this.optionListOf,
opt.prop,
res.data.map((item) => ({
label: item[opt.labelKey ?? 'name'],
value: item[opt.valueKey ?? 'id'],
}))
);
});
},
{
immediate: true,
}
);
return;
}
//
if (opt.select || (opt.input && !this.form?.id)) {
promiseList.push(async () => {
const response = await this.$axios(opt.url, {
method: opt.method ?? 'get',
});
console.log('[dialogForm:handleOptions:response]', response);
if (opt.select) {
//
const list =
'list' in response.data
? response.data.list
: response.data;
this.$set(
this.optionListOf,
opt.prop,
list.map((item) => ({
label: item[opt.labelKey ?? 'name'],
value: item[opt.valueKey ?? 'id'],
}))
);
} else if (opt.input) {
console.log('setting code: ', response.data);
//
this.form[opt.prop] = response.data;
}
});
}
}
});
});
console.log('[dialogForm:handleOptions] done!');
// watch
if (trigger == 'watch') {
this.formLoading = false;
return;
}
try {
await Promise.all(promiseList.map((fn) => fn()));
this.formLoading = false;
this.dataLoaded = true;
// console.log("[dialogForm:handleOptions:optionListOf]", this.optionListOf)
} catch (error) {
console.log('[dialogForm:handleOptions:error]', error);
this.formLoading = false;
}
if (!promiseList.length) this.formLoading = false;
},
//
beforeUpload() {},
// bind
handleUploadSuccess(response, file, fileList) {
this.form.files.push({
fileName: file.name,
fileUrl: response.data,
fileType: 2,
});
this.$modal.msgSuccess('上传成功');
this.$emit('update', this.form);
},
getFileName(fileUrl) {
return fileUrl.split('/').pop();
},
handleFilesOpen() {
this.uploadOpen = !this.uploadOpen;
},
handleDeleteFile(file) {
this.form.files = this.form.files.filter(item => item.fileUrl != file.fileUrl);
this.$emit('update', this.form);
},
},
};
</script>
<style scoped lang="scss">
.el-date-editor,
.el-select {
width: 100%;
}
.upload-area {
// background: #ccc;
// display: grid;
// grid-auto-rows: 34px;
// grid-template-columns: repeat(6, minmax(32px, max-content));
// gap: 8px;
// align-items: center;
position: relative;
overflow: hidden;
transition: height 0.3s ease-out;
}
.upload-in-dialog {
// display: inline-block;
margin-right: 24px;
// background: #ccc;
position: relative;
// top: -13px;
float: left;
}
.close-icon {
// background: #ccc;
position: absolute;
top: 0;
right: 12px;
z-index: 100;
transition: transform 0.3s ease-out;
}
.close-icon.open {
transform: rotateZ(90deg);
}
</style>
<style>
.dialog__upload_component__close {
color: #ccc;
}
.dialog__upload_component__close:hover {
/* color: #777; */
color: red;
}
.height-48 {
height: 35px !important;
}
</style>

View File

@ -0,0 +1,89 @@
<!--
filename: index.vue
author: liubin
date: 2023-08-29 14:39:40
description: 状态时序图
-->
<template>
<div class="sequence-graph">
<SequenceGraphItem v-for="eq in Object.keys(list)" :key="eq" />
</div>
</template>
<script>
import SequenceGraphItem from './sequenceGraphItem.vue';
export default {
name: 'SequenceGraph',
components: { SequenceGraphItem },
props: {
colors: {
type: Array,
default: () => ['', '', '', '', '', ''], //
},
},
data() {
return {
list: {
打孔机: {
equipmentId: 1,
equipmentName: 'EQ1',
status: '',
startTime: '',
duration: '',
startPos: '',
relativeDuring: '',
},
磨边机: {
equipmentId: 12,
equipmentName: 'EQ2',
status: '',
startTime: '',
duration: '',
startPos: '',
relativeDuring: '',
},
清洗机: {
equipmentId: 13,
equipmentName: 'EQ3',
status: '',
startTime: '',
duration: '',
startPos: '',
relativeDuring: '',
},
窑炉: {
equipmentId: 14,
equipmentName: 'EQ4',
status: '',
startTime: '',
duration: '',
startPos: '',
relativeDuring: '',
},
AGV: {
equipmentId: 15,
equipmentName: 'EQ5',
status: '',
startTime: '',
duration: '',
startPos: '',
relativeDuring: '',
},
},
};
},
computed: {},
methods: {},
};
</script>
<style scoped lang="scss">
.sequence-graph {
padding: 24px;
background: #fff;
border-radius: 6px;
margin: 12px;
box-shadow: 0 0 32px 8px rgba($color: #000000, $alpha: 0.2);
}
</style>

View File

@ -0,0 +1,51 @@
<!--
filename: sequenceGraphItem.vue
author: liubin
date: 2023-08-29 14:40:51
description: 时序图最小单元
-->
<template>
<div class="sequence-graph-item" :style="styles">
<span v-if="time != null">{{ time }}</span>
</div>
</template>
<script>
export default {
name: 'SequenceGraphItem',
components: {},
props: {
color: {
type: String,
default: 'black',
},
time: {
type: String,
default: null
}
},
computed: {
styles() {
return {
color: this.color
}
}
},
data() {
return {};
},
computed: {},
methods: {},
};
</script>
<style scoped lang="scss">
.sequence-graph-item {
background: #fff;
padding: 12px;
width: 40px;
height: 32px;
display: inline-block;
}
</style>

View File

@ -28,11 +28,14 @@ export default {
<style lang="scss" scoped>
.app-main {
/* 50= navbar 50 */
/* 48= navbar 48 */
min-height: calc(100vh - 56px);
width: 100%;
min-width: calc(100vh - 280px);
position: relative;
overflow: hidden;
overflow: visible;
margin: 8px 14px 0px 16px;
border-radius: 8px;
background-color: #fff;
}
.fixed-header + .app-main {
@ -41,8 +44,10 @@ export default {
.hasTagsView {
.app-main {
/* 84 = navbar + tags-view = 56 + 34 */
min-height: calc(100vh - 128px);
/* 84 = navbar + tags-view = 50 + 34 */
min-height: calc(100vh - 120px - 8px);
display: flex;
flex-direction: column;
}
.fixed-header + .app-main {

View File

@ -7,16 +7,16 @@
<div class="right-menu">
<template v-if="device!=='mobile'">
<search id="header-search" class="right-menu-item" />
<!-- <search id="header-search" class="right-menu-item" /> -->
<!-- 站内信 -->
<!-- <notify-message class="right-menu-item hover-effect" /> -->
<screenfull id="screenfull" class="right-menu-item hover-effect" />
<!-- <screenfull id="screenfull" class="right-menu-item hover-effect" /> -->
<el-tooltip content="布局大小" effect="dark" placement="bottom">
<!-- <el-tooltip content="布局大小" effect="dark" placement="bottom">
<size-select id="size-select" class="right-menu-item hover-effect" />
</el-tooltip>
</el-tooltip> -->
</template>
@ -30,9 +30,9 @@
<router-link to="/user/profile">
<el-dropdown-item>个人中心</el-dropdown-item>
</router-link>
<el-dropdown-item @click.native="setting = true">
<!-- <el-dropdown-item @click.native="setting = true">
<span>布局设置</span>
</el-dropdown-item>
</el-dropdown-item> -->
<el-dropdown-item divided @click.native="logout">
<span>退出登录</span>
</el-dropdown-item>
@ -94,7 +94,7 @@ export default {
async logout() {
this.$modal.confirm('确定注销并退出系统吗?', '提示').then(() => {
this.$store.dispatch('LogOut').then(() => {
location.href = getPath('/index');
location.href = getPath('/');
})
}).catch(() => {});
}
@ -104,7 +104,7 @@ export default {
<style lang="scss" scoped>
.navbar {
height: 56px;
height: 48px; // 56
overflow: hidden;
position: relative;
background: #fff;

View File

@ -23,7 +23,7 @@
: variables.menuLightColor
"
:unique-opened="true"
:active-text-color="settings.theme"
active-text-color="#fff"
:collapse-transition="false"
mode="vertical">
<!-- 根据 sidebarRouters 路由生成菜单 -->

View File

@ -78,8 +78,8 @@ export default {
<style lang="scss" scoped>
.scroll-container {
background: #f9f9f9;
box-shadow: inset 0 0 8px 1px #e8e8e8;
// background: #f9f9f9;
// box-shadow: inset 0 0 8px 1px #e8e8e8;
white-space: nowrap;
position: relative;
overflow: hidden;

View File

@ -259,7 +259,7 @@ export default {
height: 42px;
width: 100%;
background: #fff;
border-bottom: 1px solid #d8dce5;
// border-bottom: 1px solid #d8dce5;
border-top: 1px solid #d8dce5;
// box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .12), 0 0 3px 0 rgba(0, 0, 0, .04);
@ -270,17 +270,16 @@ export default {
cursor: pointer;
height: 28px;
line-height: 28px;
border: 1px solid #d8dce5;
color: #495060;
background: #fff;
color: rgba(0, 0, 0, 0.45);
background: #F4F4F4FF;
padding: 0 8px 0 12px;
font-size: 14px;
letter-spacing: 1px;
margin-left: 4px;
border-radius: 0;
margin-left: 8px;
border-radius: 4px;
&:first-of-type {
margin-left: 15px;
margin-left: 32px;
padding-right: 12px;
}

View File

@ -8,7 +8,7 @@
<tags-view v-if="needTagsView" />
</div>
<app-main />
<div class="main-footer" style="color: #777; border-top: 1px solid #eee; user-select: none; font-size: 14px; letter-spacing: 1px; height: 30px; display: grid; place-content: center;">&copy; 中建材智能自动化2023</div>
<div class="main-footer" style="color: #C7C7C7; user-select: none; font-size: 14px; letter-spacing: 1px; height: 30px; display: grid; place-content: center;">&copy; 中建材智能自动化研究院有限公司</div>
<right-panel>
<settings />
</right-panel>

View File

@ -1,80 +1,104 @@
import Vue from 'vue'
import Vue from 'vue';
import Element from 'element-ui'
import './assets/styles/element-variables.scss'
import Element from 'element-ui';
import './assets/styles/element-variables.scss';
import '@/assets/styles/index.scss'; // global css
import '@/assets/styles/ruoyi.scss'; // ruoyi css
import App from './App';
import store from './store';
import router from './router';
import directive from './directive'; // directive
import plugins from './plugins'; // plugins
import '@/assets/styles/index.scss' // global css
import '@/assets/styles/ruoyi.scss' // ruoyi css
import App from './App'
import store from './store'
import router from './router'
import directive from './directive' // directive
import plugins from './plugins' // plugins
import './assets/icons' // icon
import './permission' // permission control
import './assets/icons'; // icon
import './permission'; // permission control
// import './tongji' // 百度统计
import { getDicts } from "@/api/system/dict/data";
import { getConfigKey } from "@/api/infra/config";
import { parseTime, resetForm, handleTree, addBeginAndEndTime, divide} from "@/utils/ruoyi";
import Pagination from "@/components/Pagination";
import { getDicts } from '@/api/system/dict/data';
import { getConfigKey } from '@/api/infra/config';
import {
parseTime,
resetForm,
handleTree,
addBeginAndEndTime,
divide,
} from '@/utils/ruoyi';
import Pagination from '@/components/Pagination';
// 自定义表格工具扩展
import RightToolbar from "@/components/RightToolbar"
import RightToolbar from '@/components/RightToolbar';
// 代码高亮插件
// import hljs from 'highlight.js'
// import 'highlight.js/styles/github-gist.css'
import {DICT_TYPE, getDictDataLabel, getDictDatas, getDictDatas2} from "@/utils/dict";
import {
DICT_TYPE,
getDictDataLabel,
getDictDatas,
getDictDatas2,
} from '@/utils/dict';
import './theme/index.css'; // 自定义主题包 - code-brick-zj
// 全局方法挂载
Vue.prototype.getDicts = getDicts
Vue.prototype.getConfigKey = getConfigKey
Vue.prototype.parseTime = parseTime
Vue.prototype.resetForm = resetForm
Vue.prototype.getDictDatas = getDictDatas
Vue.prototype.getDictDatas2 = getDictDatas2
Vue.prototype.getDictDataLabel = getDictDataLabel
Vue.prototype.DICT_TYPE = DICT_TYPE
Vue.prototype.handleTree = handleTree
Vue.prototype.addBeginAndEndTime = addBeginAndEndTime
Vue.prototype.divide = divide
Vue.prototype.getDicts = getDicts;
Vue.prototype.getConfigKey = getConfigKey;
Vue.prototype.parseTime = parseTime;
Vue.prototype.resetForm = resetForm;
Vue.prototype.getDictDatas = getDictDatas;
Vue.prototype.getDictDatas2 = getDictDatas2;
Vue.prototype.getDictDataLabel = getDictDataLabel;
Vue.prototype.DICT_TYPE = DICT_TYPE;
Vue.prototype.handleTree = handleTree;
Vue.prototype.addBeginAndEndTime = addBeginAndEndTime;
Vue.prototype.divide = divide;
Vue.prototype.tableHeight = function(n) {
return window.innerHeight - n
}
Vue.prototype.searchBarWidth = function(name, num) {
if (document.getElementById(name) && document.getElementById(name).offsetWidth < num) {
return true
} else {
return false
}
}
// 全局组件挂载
Vue.component('DictTag', DictTag)
Vue.component('DocAlert', DocAlert)
Vue.component('Pagination', Pagination)
Vue.component('RightToolbar', RightToolbar)
Vue.component('DictTag', DictTag);
Vue.component('DocAlert', DocAlert);
Vue.component('Pagination', Pagination);
Vue.component('RightToolbar', RightToolbar);
// 字典标签组件
import DictTag from '@/components/DictTag'
import DocAlert from '@/components/DocAlert'
import DictTag from '@/components/DictTag';
import DocAlert from '@/components/DocAlert';
// 头部标签插件
import VueMeta from 'vue-meta'
import VueMeta from 'vue-meta';
import CodeBrickZj from 'code-brick-zj';
Vue.use(directive)
Vue.use(plugins)
Vue.use(VueMeta)
Vue.use(CodeBrickZj)
Vue.use(directive);
Vue.use(plugins);
Vue.use(VueMeta);
// Vue.use(hljs.vuePlugin);
// bpmnProcessDesigner 需要引入
import MyPD from "@/components/bpmnProcessDesigner/package/index.js";
import MyPD from '@/components/bpmnProcessDesigner/package/index.js';
Vue.use(MyPD);
import "@/components/bpmnProcessDesigner/package/theme/index.scss";
import "bpmn-js/dist/assets/diagram-js.css";
import "bpmn-js/dist/assets/bpmn-font/css/bpmn.css";
import "bpmn-js/dist/assets/bpmn-font/css/bpmn-codes.css";
import "bpmn-js/dist/assets/bpmn-font/css/bpmn-embedded.css";
import '@/components/bpmnProcessDesigner/package/theme/index.scss';
import 'bpmn-js/dist/assets/diagram-js.css';
import 'bpmn-js/dist/assets/bpmn-font/css/bpmn.css';
import 'bpmn-js/dist/assets/bpmn-font/css/bpmn-codes.css';
import 'bpmn-js/dist/assets/bpmn-font/css/bpmn-embedded.css';
// Form Generator 组件需要使用到 tinymce
import Tinymce from '@/components/tinymce/index.vue'
Vue.component('tinymce', Tinymce)
import '@/assets/icons'
import request from "@/utils/request" // 实现 form generator 使用自己定义的 axios request 对象
console.log(request)
Vue.prototype.$axios = request
import '@/styles/index.scss'
import Tinymce from '@/components/tinymce/index.vue';
Vue.component('tinymce', Tinymce);
import '@/assets/icons';
import request from '@/utils/request'; // 实现 form generator 使用自己定义的 axios request 对象
// console.log(request);
Vue.prototype.$axios = request;
import '@/styles/index.scss';
// 默认点击背景不关闭弹窗
import ElementUI from 'element-ui'
ElementUI.Dialog.props.closeOnClickModal.default = false
import ElementUI from 'element-ui';
ElementUI.Dialog.props.closeOnClickModal.default = false;
/**
* If you don't want to use mock-server
@ -86,14 +110,14 @@ ElementUI.Dialog.props.closeOnClickModal.default = false
*/
Vue.use(Element, {
size: localStorage.getItem("size") || "medium", // set element-ui default size
size: localStorage.getItem('size') || 'medium', // set element-ui default size
});
Vue.config.productionTip = false
Vue.config.productionTip = false;
new Vue({
el: '#app',
router,
store,
render: h => h(App)
})
el: '#app',
router,
store,
render: (h) => h(App),
});

View File

@ -0,0 +1,113 @@
import DialogForm from '@/components/DialogForm/index.vue';
export default {
components: { DialogForm },
data() {
return {
// 遮罩层
loading: true,
// 导出遮罩层
exportLoading: false,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 质量检测信息基础列表
list: [],
// 弹出层标题
title: '',
// 是否显示弹出层
open: false,
// 列表数据
tableData: [],
// 弹窗的表单
// form: {}, // 占位
// 搜索框需要的 keys
// searchBarKeys: [], // 占位
// tableProps: [], // 占位
// tableBtn: [], // 占位
// searchBarFormConfig: [], // 占位
// // 弹窗表单配置
// dialogFormConfig: [], // 占位
};
},
methods: {
// 过滤后端传回的详情数据
filterData(data, keys) {
const obj = {};
keys.forEach((key) => {
if (/time/i.test(key)) {
obj[key] = new Date(data[key]);
} else {
obj[key] = data[key];
}
});
return obj;
},
// 处理表格按钮
handleTableBtnClick({ data, type }) {
switch (type) {
case 'edit':
this.handleUpdate(data);
break;
case 'delete':
this.handleDelete(data);
break;
case 'detail':
this.handleDetail(data);
break;
}
},
// 处理搜索栏按钮
handleSearchBarBtnClick(btn) {
// const keys = ['name', 'createTime']; // timeVal // 已被 searchBarKeys 替代
switch (btn.btnName) {
case 'search':
this.searchBarKeys.forEach((key) => {
if (key == 'timeVal') {
this.queryParams['startTime'] = btn.timeVal[0];
this.queryParams['endTime'] = btn.timeVal[1];
return;
}
this.queryParams[key] = btn[key] || null;
});
this.handleQuery();
break;
case 'add':
this.handleAdd();
break;
case 'export':
this.handleExport();
break;
case 'reset':
this.$refs['search-bar'].resetForm();
this.resetQuery();
break;
}
},
handleEmitFun(val) {
console.log('emit unf', val);
switch (val.action) {
// 查看详情
case 'show-detail':
this.viewDetail(val.value); // 交由每个组件自己实现
break;
}
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNo = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm('queryForm');
this.handleQuery();
},
/** 取消按钮 */
cancel() {
this.open = false;
this.reset();
},
},
};

View File

@ -65,16 +65,22 @@ export const constantRoutes = [
hidden: true
},
{
path: '',
path: '/print-design',
component: (resolve) => require(['@/views/print/design'], resolve),
hidden: true
},
{
path: '/',
component: Layout,
redirect: 'index',
children: [{
path: 'index',
component: (resolve) => require(['@/views/index'], resolve),
name: '首页',
meta: {title: '首页', icon: 'dashboard', affix: true}
}
]
redirect: 'core/base/factory',
// children: [{
// path: 'index',
// redirect: 'core/base/factory',
// component: (resolve) => require(['@/views/index'], resolve),
// name: '首页',
// meta: { title: '首页', icon: 'dashboard', affix: true }
// }
// ]
},
{
path: '/user',
@ -82,15 +88,15 @@ export const constantRoutes = [
hidden: true,
redirect: 'noredirect',
children: [{
path: 'profile',
component: (resolve) => require(['@/views/system/user/profile/index'], resolve),
name: 'Profile',
meta: {title: '个人中心', icon: 'user'}
}, {
path: 'notify-message',
component: (resolve) => require(['@/views/system/notify/my/index'], resolve),
name: 'MyNotifyMessage',
meta: { title: '我的站内信', icon: 'message' },
path: 'profile',
component: (resolve) => require(['@/views/system/user/profile/index'], resolve),
name: 'Profile',
meta: { title: '个人中心', icon: 'user' }
}, {
path: 'notify-message',
component: (resolve) => require(['@/views/system/notify/my/index'], resolve),
name: 'MyNotifyMessage',
meta: { title: '我的站内信', icon: 'message' },
}]
},
{
@ -98,11 +104,11 @@ export const constantRoutes = [
component: Layout,
hidden: true,
children: [{
path: 'type/data/:dictId(\\d+)',
component: (resolve) => require(['@/views/system/dict/data'], resolve),
name: 'SystemDictData',
meta: {title: '字典数据', icon: '', activeMenu: '/system/dict'}
}
path: 'type/data/:dictId(\\d+)',
component: (resolve) => require(['@/views/system/dict/data'], resolve),
name: 'SystemDictData',
meta: { title: '字典数据', icon: '', activeMenu: '/system/dict' }
}
]
},
{
@ -110,22 +116,22 @@ export const constantRoutes = [
component: Layout,
hidden: true,
children: [{
path: 'log',
component: (resolve) => require(['@/views/infra/job/log'], resolve),
name: 'InfraJobLog',
meta: {title: '调度日志', activeMenu: '/infra/job'}
}
path: 'log',
component: (resolve) => require(['@/views/infra/job/log'], resolve),
name: 'InfraJobLog',
meta: { title: '调度日志', activeMenu: '/infra/job' }
}
]
}, {
path: '/codegen',
component: Layout,
hidden: true,
children: [{
path: 'edit/:tableId(\\d+)',
component: (resolve) => require(['@/views/infra/codegen/editTable'], resolve),
name: 'InfraCodegenEditTable',
meta: {title: '修改生成配置', activeMenu: '/infra/codegen'}
}
path: 'edit/:tableId(\\d+)',
component: (resolve) => require(['@/views/infra/codegen/editTable'], resolve),
name: 'InfraCodegenEditTable',
meta: { title: '修改生成配置', activeMenu: '/infra/codegen' }
}
]
},
{
@ -134,16 +140,16 @@ export const constantRoutes = [
hidden: true,
redirect: 'noredirect',
children: [{
path: 'oa/leave/create',
component: (resolve) => require(['@/views/bpm/oa/leave/create'], resolve),
name: 'BpmOALeaveCreate',
meta: {title: '发起 OA 请假', icon: 'form', activeMenu: '/bpm/oa/leave'}
}, {
path: 'oa/leave/detail',
component: (resolve) => require(['@/views/bpm/oa/leave/detail'], resolve),
name: 'BpmOALeaveDetail',
meta: {title: '查看 OA 请假', icon: 'view', activeMenu: '/bpm/oa/leave'}
}
path: 'oa/leave/create',
component: (resolve) => require(['@/views/bpm/oa/leave/create'], resolve),
name: 'BpmOALeaveCreate',
meta: { title: '发起 OA 请假', icon: 'form', activeMenu: '/bpm/oa/leave' }
}, {
path: 'oa/leave/detail',
component: (resolve) => require(['@/views/bpm/oa/leave/detail'], resolve),
name: 'BpmOALeaveDetail',
meta: { title: '查看 OA 请假', icon: 'view', activeMenu: '/bpm/oa/leave' }
}
]
},
{
@ -151,31 +157,31 @@ export const constantRoutes = [
component: Layout,
hidden: true,
children: [{
path: 'manager/form/edit',
component: (resolve) => require(['@/views/bpm/form/formEditor'], resolve),
name: 'BpmFormEditor',
meta: {title: '流程表单-编辑', activeMenu: '/bpm/manager/form'}
}, {
path: 'manager/definition',
component: (resolve) => require(['@/views/bpm/definition/index'], resolve),
name: 'BpmProcessDefinition',
meta: {title: '流程定义', activeMenu: '/bpm/manager/model'}
}, {
path: 'manager/model/design',
component: (resolve) => require(['@/views/bpm/model/modelEditor'], resolve),
name: 'BpmModelEditor',
meta: {title: '设计流程', activeMenu: '/bpm/manager/model'}
}, {
path: 'process-instance/create',
component: (resolve) => require(['@/views/bpm/processInstance/create'], resolve),
name: 'BpmProcessInstanceCreate',
meta: {title: '发起流程', activeMenu: '/bpm/task/my'}
}, {
path: 'process-instance/detail',
component: (resolve) => require(['@/views/bpm/processInstance/detail'], resolve),
name: 'BpmProcessInstanceDetail',
meta: {title: '流程详情', activeMenu: '/bpm/task/my'}
}
path: 'manager/form/edit',
component: (resolve) => require(['@/views/bpm/form/formEditor'], resolve),
name: 'BpmFormEditor',
meta: { title: '流程表单-编辑', activeMenu: '/bpm/manager/form' }
}, {
path: 'manager/definition',
component: (resolve) => require(['@/views/bpm/definition/index'], resolve),
name: 'BpmProcessDefinition',
meta: { title: '流程定义', activeMenu: '/bpm/manager/model' }
}, {
path: 'manager/model/design',
component: (resolve) => require(['@/views/bpm/model/modelEditor'], resolve),
name: 'BpmModelEditor',
meta: { title: '设计流程', activeMenu: '/bpm/manager/model' }
}, {
path: 'process-instance/create',
component: (resolve) => require(['@/views/bpm/processInstance/create'], resolve),
name: 'BpmProcessInstanceCreate',
meta: { title: '发起流程', activeMenu: '/bpm/task/my' }
}, {
path: 'process-instance/detail',
component: (resolve) => require(['@/views/bpm/processInstance/detail'], resolve),
name: 'BpmProcessInstanceDetail',
meta: { title: '流程详情', activeMenu: '/bpm/task/my' }
}
]
},
{
@ -186,7 +192,7 @@ export const constantRoutes = [
path: 'value/:propertyId(\\d+)',
component: (resolve) => require(['@/views/mall/product/property/value'], resolve),
name: 'ProductPropertyValue',
meta: {title: '商品属性值', icon: '', activeMenu: '/product/property'}
meta: { title: '商品属性值', icon: '', activeMenu: '/product/property' }
}
]
},
@ -198,14 +204,14 @@ export const constantRoutes = [
path: 'edit/:spuId(\\d+)',
component: (resolve) => require(['@/views/mall/product/spu/save'], resolve),
name: 'ProductSpuUpdate',
meta: {title: '修改商品', activeMenu: '/product/spu'}
meta: { title: '修改商品', activeMenu: '/product/spu' }
},
{
path: 'add',
component: (resolve) => require(['@/views/mall/product/spu/save'], resolve),
name: 'ProductSpuCreate',
meta: {title: '添加商品', activeMenu: '/product/spu'}
}
{
path: 'add',
component: (resolve) => require(['@/views/mall/product/spu/save'], resolve),
name: 'ProductSpuCreate',
meta: { title: '添加商品', activeMenu: '/product/spu' }
}
]
},
{
@ -247,7 +253,7 @@ Router.prototype.push = function push(location) {
export default new Router({
base: process.env.VUE_APP_APP_NAME ? process.env.VUE_APP_APP_NAME : "/",
mode: 'history', // 去掉url中的#
scrollBehavior: () => ({y: 0}),
mode: 'hash', // 去掉url中的#
scrollBehavior: () => ({ y: 0 }),
routes: constantRoutes
})

View File

@ -2,7 +2,7 @@ $editorTabsborderColor: #121315;
body, html{
margin: 0;
padding: 0;
background: #fff;
background: #F2F4F9;
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
text-rendering: optimizeLegibility;
@ -139,3 +139,60 @@ input, textarea{
.el-upload__tip{
line-height: 1.2;
}
// 滚动条
::-webkit-scrollbar {
width: 8px;
height: 8px;
background-color: transparent;
}
::-webkit-scrollbar-track-piece {
background-color:rgba(144,147,153,0);
}
::-webkit-scrollbar-corner {
background-color:rgba(144,147,153,0);
}
::-webkit-scrollbar-track {
width: 6px;
background: rgba(144,147,153,0);
-webkit-border-radius: 2em;
-moz-border-radius: 2em;
border-radius: 2em;
}
::-webkit-scrollbar-thumb {
background-color: rgba(144,147,153,.5);
background-clip: padding-box;
min-height: 28px;
-webkit-border-radius: 2em;
-moz-border-radius: 2em;
border-radius: 2em;
transition: background-color .3s;
cursor: pointer;
}
::-webkit-scrollbar-thumb:hover {
background-color: rgba(144,147,153,.3);
}
// 抽屉head区域---start
.el-drawer__header {
padding-bottom: 20px;
margin-bottom: 23px;
font-size: 20px;
font-weight: 500;
color: rgba(0,0,0,0.85);
border-bottom: 1px solid rgba(233, 233, 233, 1);
}
.el-drawer__header > :first-child::before {
content: '';
display: inline-block;
width: 4px;
height: 24px;
background-color: #0b58ff;
margin-right: 8px;
vertical-align: middle;
}
// 抽屉head区域---end

Binary file not shown.

Binary file not shown.

1
src/theme/index.css Normal file

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,64 @@
import { debounce } from '@/utils/debounce'
export default {
data() {
return {
$_sidebarElm: null,
$_resizeHandler: null
}
},
mounted() {
this.$_resizeHandler = debounce(() => {
if (this.chart) {
this.chart.resize()
}
}, 100)
this.$_initResizeEvent()
this.$_initSidebarResizeEvent()
},
beforeDestroy() {
this.$_destroyResizeEvent()
this.$_destroySidebarResizeEvent()
},
// to fixed bug when cached by keep-alive
// https://github.com/PanJiaChen/vue-element-admin/issues/2116
activated() {
this.$_initResizeEvent()
this.$_initSidebarResizeEvent()
},
deactivated() {
this.$_destroyResizeEvent()
this.$_destroySidebarResizeEvent()
},
methods: {
// use $_ for mixins properties
// https://vuejs.org/v2/style-guide/index.html#Private-property-names-essential
$_initResizeEvent() {
window.addEventListener('resize', this.$_resizeHandler)
},
$_destroyResizeEvent() {
window.removeEventListener('resize', this.$_resizeHandler)
},
$_sidebarResizeHandler(e) {
if (e.propertyName === 'width') {
this.$_resizeHandler()
}
},
$_initSidebarResizeEvent() {
this.$_sidebarElm =
document.getElementsByClassName('sidebar-container')[0]
this.$_sidebarElm &&
this.$_sidebarElm.addEventListener(
'transitionend',
this.$_sidebarResizeHandler
)
},
$_destroySidebarResizeEvent() {
this.$_sidebarElm &&
this.$_sidebarElm.removeEventListener(
'transitionend',
this.$_sidebarResizeHandler
)
}
}
}

40
src/utils/debounce.js Normal file
View File

@ -0,0 +1,40 @@
/**
* @param {Function} func
* @param {number} wait
* @param {boolean} immediate
* @return {*}
*/
export function debounce(func, wait, immediate) {
let timeout, args, context, timestamp, result
const later = function () {
// 据上一次触发时间间隔
const last = +new Date() - timestamp
// 上次被包装函数被调用时间间隔 last 小于设定时间间隔 wait
if (last < wait && last > 0) {
timeout = setTimeout(later, wait - last)
} else {
timeout = null
// 如果设定为immediate===true因为开始边界已经调用过了此处无需调用
if (!immediate) {
result = func.apply(context, args)
if (!timeout) context = args = null
}
}
}
return function (...args) {
context = this
timestamp = +new Date()
const callNow = immediate && !timeout
// 如果延时不存在,重新设定延时
if (!timeout) timeout = setTimeout(later, wait)
if (callNow) {
result = func.apply(context, args)
context = args = null
}
return result
}
}

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