Compare commits

587 Commits

Author SHA1 Message Date
zhaohy
36575339c5 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-09-03 17:30:29 +08:00
zhaohy
4145353928 fix:修改单位 2024-09-03 17:30:26 +08:00
fks-xuxinyue
3d08f22562 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-09-03 17:25:17 +08:00
fks-xuxinyue
c2ff0238d9 优化echarts 2024-09-03 17:25:06 +08:00
zhaohy
8ec8bcd494 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-09-03 17:25:05 +08:00
zhaohy
308fa1e14f fix:修改单位 2024-09-03 17:25:01 +08:00
fks-xuxinyue
75dbd0641e 优化碳排管理 2024-09-03 17:23:47 +08:00
fks-yangshouda
190ec589ce 监控中心添加loading 2024-09-03 17:22:50 +08:00
zhaohy
360ec9e6e8 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-09-03 17:21:55 +08:00
zhaohy
91b0ca9fb8 fix:修改单位 2024-09-03 17:21:52 +08:00
fks-xuxinyue
87243b212d 修改组件 2024-09-03 17:04:29 +08:00
fks-yangshouda
bbb77faa8a Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-09-03 17:02:44 +08:00
fks-yangshouda
2a8eeb657c Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-09-03 17:02:25 +08:00
fks-yangshouda
3fa3655200 修改监控中心样式 2024-09-03 17:02:14 +08:00
chenpingsen
7a7e2bb968 fix:群控系统弹出框样式调整 2024-09-03 17:02:13 +08:00
fks-xuxinyue
117db1c400 对碳排管理进行优化 2024-09-03 17:01:10 +08:00
fks-yangshouda
0c822e6d29 修改监控中心样式 2024-09-03 15:46:57 +08:00
chenpingsen
0b9ae9dcd3 fix:样式修改 2024-09-03 15:45:44 +08:00
zhaohy
e4d54f411a fix:修改位置信息 2024-09-03 15:39:44 +08:00
zhaohy
3a4f4505dc fix:修改图片位置 2024-09-03 15:37:44 +08:00
zhaohy
6b03be0119 fix:修改告警设置问题 2024-09-03 14:52:43 +08:00
zhaohy
0698847543 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-09-03 14:45:08 +08:00
zhaohy
7c09cbc83b fix:修改公共组件树为255px 2024-09-03 14:45:05 +08:00
fks-yangshouda
a648d043ee 修改监控中心前台样式
修改分组管理前台样式
2024-09-03 14:26:26 +08:00
zhaohy
7eae05f6fb Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-09-03 13:39:36 +08:00
zhaohy
d94a29e9de fix:修改table鼠标指上颜色 2024-09-03 13:39:25 +08:00
chenpingsen
378baaefe2 fix:空调、照明系统背景图&点阵修改 样式补充 图像素材补充 通风系统增加电动窗效果 2024-09-03 13:27:13 +08:00
zhaohy
758a5718de fix:修改查询标题与底部距离 2024-09-03 11:56:11 +08:00
zhaohy
1d7eee538f fix:修改按钮排不开问题 2024-09-03 11:44:54 +08:00
zhaohy
cc80c3155a fix:超出两行显示省略号 2024-09-03 09:48:24 +08:00
zhaohy
7096e692ee fix:修改表格宽度 2024-09-03 09:44:00 +08:00
zhaohy
f4d7076a08 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-09-03 09:13:42 +08:00
zhaohy
a28c331c10 fix:修改table 2024-09-03 09:13:38 +08:00
fks-xuxinyue
c4548fc81d 优化碳排管理 2024-09-02 17:30:19 +08:00
zhaohy
a0809e12f0 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-09-02 16:24:11 +08:00
zhaohy
ba778bc0cf fix:修改收起 展示图标颜色 2024-09-02 16:24:08 +08:00
fks-yangshouda
c9b67317a3 修改 监控中心 树结构滚动条样式 2024-09-02 16:23:21 +08:00
zhaohy
b41ac8dcbe Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-09-02 16:03:51 +08:00
zhaohy
0627ba2cb2 fix:告警管理ui调整 2024-09-02 16:03:47 +08:00
fks-yangshouda
88a8837876 优化监控中心前台样式 2024-09-02 15:49:37 +08:00
zhaohy
3aca13f9bb fix:修改参数为空判断 2024-09-02 15:22:34 +08:00
zhaohy
52fa3ff491 fix:修改页面 2024-09-02 15:16:45 +08:00
zhaohy
5ddc013f38 fix:修改公共组件位置 2024-09-02 15:13:02 +08:00
zhaohy
9124c37650 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-09-02 14:40:56 +08:00
zhaohy
0e632c962a fix:修改冷热源样式 2024-09-02 14:40:51 +08:00
duyufeng
b54a785891 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-09-02 14:26:54 +08:00
duyufeng
228f13d037 密码加密暂时屏蔽 2024-09-02 14:26:41 +08:00
zhaohy
cd112d5981 fix:按照ui修改新风系统 2024-09-02 14:22:35 +08:00
zhaohy
63a5c3ff0e fix:修改页面样式 字段 2024-09-02 14:05:59 +08:00
duyufeng
01745cea42 系统菜单编辑优化 2024-09-02 13:57:05 +08:00
duyufeng
572cdc60b3 系统菜单添加编辑时增加防重复点击 2024-09-02 13:41:32 +08:00
zhaohy
ed7194e253 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-09-02 11:31:19 +08:00
zhaohy
6851afdee6 fix:按照需要修改样式 2024-09-02 11:31:15 +08:00
duyufeng
e8253be8ca 登录接口参数加密 2024-09-02 11:04:43 +08:00
fks-xuxinyue
0cb7edaa7e Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-30 17:23:27 +08:00
fks-xuxinyue
c6b4895b67 根据文档进行优化 2024-08-30 17:23:14 +08:00
fks-yangshouda
84ed95512f 修改监控中心样式
修改分组管理样式
2024-08-30 17:22:49 +08:00
fks-xuxinyue
b36081126f 根据文档优化 2024-08-30 15:27:54 +08:00
chenpingsen
93f2869a5b fix:字段修改/交互逻辑修改 2024-08-30 14:03:31 +08:00
zhaohy
f8eda43169 fix:返回按钮样式 2024-08-30 11:58:16 +08:00
zhaohy
1102e8ac3a fix:修改状态间距 2024-08-30 11:54:48 +08:00
zhaohy
dc3d0a59ba fix:修改展示 2024-08-30 11:48:37 +08:00
zhaohy
915358dbec fix:修改计划添加问题 2024-08-30 11:38:11 +08:00
zhaohy
a7400bae18 fix:修改告警总览样式问题 2024-08-30 11:34:06 +08:00
zhaohy
0db717594d fix:修改计划添加 2024-08-30 11:19:00 +08:00
fks-xuxinyue
cfba387285 优化 2024-08-30 11:12:06 +08:00
zhaohy
15e6e51f1b fix:修改告警总览字体 2024-08-30 11:10:45 +08:00
zhaohy
0c146d17ca fix:删除多余文件 2024-08-30 10:48:29 +08:00
zhaohy
e1ea9e56cd Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-30 10:31:44 +08:00
zhaohy
12a9040ee5 fix:修改页面错误 2024-08-30 10:31:40 +08:00
duyufeng
d1189bcae9 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-30 10:28:44 +08:00
duyufeng
699754c902 菜单动态路由及头部角色切换修改 2024-08-30 10:25:42 +08:00
fks-xuxinyue
6ba03df551 根据文档进行优化 2024-08-29 17:27:01 +08:00
zhaohy
474d0cd916 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-29 17:06:13 +08:00
zhaohy
695ec5f4a0 fix:冷热源对接接口 直接展示图片 2024-08-29 17:06:10 +08:00
chenpingsen
3cf535351e add:新增给排水页面/接口及功能 2024-08-29 16:05:58 +08:00
chenpingsen
ffd7be94f6 fix:部分原有功能的属性补充 2024-08-29 16:04:10 +08:00
zhaohy
5803e3cdd9 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-29 15:41:56 +08:00
zhaohy
1051e09a7c fix:冷热源对接接口 2024-08-29 15:41:52 +08:00
fks-yangshouda
583347ba70 监控中心各页面导出表格 2024-08-29 15:26:37 +08:00
duyufeng
c76dcaa7c5 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-29 08:31:51 +08:00
fks-yangshouda
ce97741978 1. 新增 监控中心 - 环境监测 - 历史数据 导出功能
2. 新增 监控中心 - 环境监测 - 平均数据 导出功能
3. 修改 分组管理 左侧树图表
2024-08-28 17:38:27 +08:00
fks-xuxinyue
06e0ec7425 修改测试问题及优化项 2024-08-28 17:34:54 +08:00
zhaohy
c21a79da87 fix:修改计划添加页面 2024-08-28 17:33:53 +08:00
duyufeng
d31cc213cb 冲突的一个文件修改 2024-08-28 17:13:49 +08:00
duyufeng
ef6f59a1c6 op端服务操作权限树不选择时传值全部变成空值bug修改 2024-08-28 17:04:21 +08:00
zhaohy
cac9355b04 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-28 14:48:39 +08:00
zhaohy
fad5398292 add:冷热源静态页面 2024-08-28 14:48:35 +08:00
chenpingsen
06706da713 add:注释内容修改 / 增加给排水图片素材 2024-08-28 09:24:22 +08:00
duyufeng
029d665c0f op端企业管理服务权限树修改 2024-08-28 08:57:32 +08:00
fks-yangshouda
e07cfd4664 1.修改 监控中心 - 环境监测 - 配置监测点位 表格字段显示样式
2.新增 监控中心 - 环境监测 - 历史数据 导出功能
2024-08-28 08:45:34 +08:00
fks-xuxinyue
440b43ba42 修改测试问题 2024-08-27 17:32:31 +08:00
fks-yangshouda
30a76a5cc3 1.修改 设备管理 - 分组管理 页面
2.修改 监控中心 - 能耗监测 初始化时间bug
2024-08-27 13:53:56 +08:00
fks-xuxinyue
15811933c3 优化碳排管理 2024-08-26 16:12:26 +08:00
zhaohy
6695790805 fix:修改新风系统 2024-08-26 15:35:34 +08:00
zhaohy
81fc1ed71a Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-26 15:12:26 +08:00
zhaohy
2524367eb5 fix:新风系统范围 2024-08-26 15:12:22 +08:00
chenpingsen
968bade95e fix:通风系统抽屉控制面板改进 2024-08-26 11:53:26 +08:00
duyufeng
169ee2f432 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-26 11:39:57 +08:00
zhaohy
32706e348e fix:修改新风系统范围 2024-08-26 11:37:06 +08:00
duyufeng
8bb0e07a3b 系统菜单组件修改 2024-08-26 09:53:32 +08:00
duyufeng
d4b0e13fa1 登录页背景图不能全屏修改样式 2024-08-26 09:27:23 +08:00
duyufeng
4836efd896 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-26 09:03:45 +08:00
zhaohy
c27b19bf1e Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-23 17:02:50 +08:00
zhaohy
0ef0bb57f3 fix:对接接口 2024-08-23 17:02:45 +08:00
chenpingsen
d3eef2678e fix:给排水路由暂时注释 2024-08-23 17:01:45 +08:00
fks-yangshouda
3316fa6d3e 去掉debugger 2024-08-23 16:52:29 +08:00
fks-yangshouda
68015eb31e 优化 监控中心 前端样式 2024-08-23 16:47:16 +08:00
fks-xuxinyue
6362c00860 修改测试问题 2024-08-23 16:40:37 +08:00
duyufeng
9ff820af25 '系统菜单功能添加,误上传的备份文件删除' 2024-08-23 16:34:59 +08:00
zhaohy
9f910958e7 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-23 15:53:18 +08:00
zhaohy
49a5168454 fix:修改树查询问题 修改接口 2024-08-23 15:53:13 +08:00
fks-xuxinyue
8ef988b7b2 修改测试问题 2024-08-23 15:45:42 +08:00
zhaohy
d7ea375fb0 fix:修改多余提交 2024-08-23 14:21:10 +08:00
zhaohy
f21e8d48a6 fix:修改树查询问题 2024-08-23 14:19:59 +08:00
chenpingsen
1ceddd5df9 add:给排水图像资源 2024-08-23 14:13:20 +08:00
zhaohy
9f9982b04a Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-23 13:35:59 +08:00
zhaohy
75a582cdce fix:页面请求 2024-08-23 13:35:53 +08:00
fks-yangshouda
723ade2531 优化 监控中心 前台页面 2024-08-23 13:18:12 +08:00
zhaohy
6c3dd401ad fix:根据需求去除.00展示 2024-08-23 13:11:49 +08:00
zhaohy
129ef8845a fix:输入限制空格 数值范围 2024-08-23 11:33:32 +08:00
fks-yangshouda
49df50b260 优化 监控中心 前台样式 2024-08-23 08:38:33 +08:00
fks-yangshouda
6ef4c99920 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-22 17:23:44 +08:00
zhaohy
8a949074aa fix:修改位置信息 2024-08-22 17:12:13 +08:00
zhaohy
eed65ab04d fix:修改范围 2024-08-22 17:02:45 +08:00
zhaohy
8b746a307d Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-22 16:28:01 +08:00
zhaohy
49010d1437 fix:新风主机对接 2024-08-22 16:27:56 +08:00
chenpingsen
7b4f22222d add:增加全局loading 2024-08-22 16:00:04 +08:00
fks-xuxinyue
ca74de5b37 修改测试问题 2024-08-22 15:27:55 +08:00
fks-yangshouda
3195a1547b Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-22 15:23:18 +08:00
fks-yangshouda
7b1f25689e 优化 监控中心 前台页面 2024-08-22 15:23:02 +08:00
zhaohy
0009360d9f fix:修改新风图例位置 能耗告警去掉间隔时长 2024-08-22 14:16:35 +08:00
zhaohy
a57c3d5b6c fix:对接新风系统 修改计划获取的枚举 2024-08-22 13:26:00 +08:00
zhaohy
069698930e Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-22 09:15:55 +08:00
zhaohy
12990f86d2 fix:修改枚举 新风系统 2024-08-22 09:15:50 +08:00
chenpingsen
05bb62752b add:增加一个全局的loading 2024-08-21 17:54:27 +08:00
fks-xuxinyue
c09ca418b3 修改测试问题 2024-08-21 15:26:49 +08:00
zhaohy
13bda76928 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-21 14:47:17 +08:00
zhaohy
933e4b26a8 fix:通风系统对接接口 2024-08-21 14:47:12 +08:00
chenpingsen
7153a81c63 add:空调群控系统修改 / 素材引入 / 部分样式调节 2024-08-21 14:46:06 +08:00
zhaohy
6cb09f631b Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-21 13:35:33 +08:00
zhaohy
ece2712b09 fix:根据ui修改样式 添加逻辑判断 2024-08-21 13:35:28 +08:00
fks-yangshouda
878d02680d Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-21 08:37:52 +08:00
zhaohy
def744926f fix:修改滑块颜色 2024-08-20 16:34:31 +08:00
zhaohy
e292a4178b fix:修改路由 2024-08-20 16:13:33 +08:00
fks-yangshouda
173ad8bdb4 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-20 16:10:07 +08:00
fks-yangshouda
47e6750b24 能耗监测用查询设备添加deviceNum字段模糊查询 2024-08-20 16:09:57 +08:00
zhaohy
d212ab2f02 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-20 15:56:24 +08:00
zhaohy
257716253c fix:根据ui修改页面 echats图滑动条 2024-08-20 15:56:19 +08:00
fks-yangshouda
cb4fb86cf4 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-20 15:40:59 +08:00
fks-yangshouda
e99f441461 优化监控中心前台样式 2024-08-20 15:40:49 +08:00
fks-xuxinyue
43fcd2b161 修改优化 2024-08-20 15:40:08 +08:00
chenpingsen
4a1f9259d7 fix:错误修正 2024-08-20 15:38:21 +08:00
chenpingsen
e9b8581aab fix:部分错误修正 2024-08-20 15:34:51 +08:00
chenpingsen
2d40e8d26d add:照明系统/通风系统 交互改动 2024-08-20 14:13:40 +08:00
zhaohy
400839e865 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-20 11:36:39 +08:00
zhaohy
cf9854e005 fix:修改设备告警ui 2024-08-20 11:36:32 +08:00
fks-yangshouda
7d049151b6 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-20 08:33:55 +08:00
fks-xuxinyue
196f7de9b4 修改测试问题 2024-08-19 17:48:00 +08:00
fks-yangshouda
d8e8dc651c Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-19 16:22:01 +08:00
fks-yangshouda
42049e14bd 优化监控中心样式 2024-08-19 16:21:45 +08:00
zhaohy
bb792158d8 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-19 16:15:42 +08:00
zhaohy
580d82639d fix: 对接电动门接口 电梯接口 2024-08-19 16:15:37 +08:00
fks-yangshouda
fbe0796d7d 优化监控中心样式 2024-08-19 15:45:48 +08:00
zhaohy
45d914b16e Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-19 09:45:31 +08:00
zhaohy
2c396d2d8d fix:电动门确认 2024-08-19 09:45:28 +08:00
duyufeng
591220343a Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-16 17:30:59 +08:00
zhaohy
6a349afcf2 table组件去掉row-selection 2024-08-16 17:19:12 +08:00
zhaohy
fd2ee73d4a Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-16 16:05:54 +08:00
zhaohy
b36db572f7 add:电动门 对接接口 2024-08-16 16:05:50 +08:00
fks-xuxinyue
08acefd9f5 优化页面,修改测试问题 2024-08-16 15:25:26 +08:00
zhaohy
73b6246203 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-16 14:38:11 +08:00
zhaohy
93363c7550 fix:修改ui 2024-08-16 14:38:06 +08:00
chenpingsen
10d354c4f6 add:样式修改/素材修改/交互逻辑修改/增加日志功能 2024-08-16 14:19:11 +08:00
zhaohy
d15f8e8ed5 fix:修改设备告警逻辑 修改冲突样式 2024-08-16 10:03:53 +08:00
zhaohy
fddba152fc Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-15 17:21:39 +08:00
zhaohy
2635851a44 fix:修改电动门页面 2024-08-15 17:21:34 +08:00
fks-yangshouda
0f81a21cb5 监控中心 - 设备监测 添加查询选择设备点位列表接口添加type参数 0:查看,1:配置 2024-08-15 17:02:54 +08:00
fks-yangshouda
df589c5a8e 优化监控中心样式 2024-08-15 16:25:13 +08:00
fks-yangshouda
a47f8ae50f 优化监控中心样式 2024-08-15 15:34:50 +08:00
fks-yangshouda
7e97118634 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-15 15:32:51 +08:00
fks-xuxinyue
897db024e0 优化页面UI,修改测试bug 2024-08-15 15:30:36 +08:00
zhaohy
07f1903c98 fix:修改计划列表打包报错问题 2024-08-15 11:42:40 +08:00
duyufeng
2d4e1dc5a1 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-15 11:05:01 +08:00
duyufeng
f3542dffee Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-15 11:04:54 +08:00
chenpingsen
60cd53992d fix:通风系统修改部分接口 / 增加日志接口 2024-08-15 10:59:31 +08:00
zhaohy
3e390a8ce1 fix:电动门对接接口 2024-08-15 10:54:58 +08:00
duyufeng
ee565449ab 系统菜单部分功能及planToAdd文件中的config.ts文件修改 2024-08-15 10:51:58 +08:00
chenpingsen
0b37b30c40 add:通风系统数据引入/素材样式修改/引入组件改造 2024-08-15 09:41:08 +08:00
chenpingsen
eae4dd3e71 add:替换部分素材 / 增加请求接口 / 增加定位数据 2024-08-15 09:07:30 +08:00
duyufeng
94e5079222 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-15 08:50:20 +08:00
chenpingsen
404e3f23b9 add:增加适用于群控系统的公共颜色 2024-08-15 08:39:37 +08:00
fks-yangshouda
13f29d862b Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-14 17:29:55 +08:00
fks-yangshouda
59c3004067 监控中心 - 环境监控 根据UI设计图进行页面优化 2024-08-14 17:29:18 +08:00
zhaohy
5c2f77dc9d Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-14 17:24:27 +08:00
zhaohy
fbc6619126 fix:修改禁选样式 禁选和不禁选 样式一样 2024-08-14 17:24:24 +08:00
chenpingsen
aef40e64de fix:一些样式与交互修改 2024-08-14 16:53:31 +08:00
zhaohy
2fde44ed23 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-14 16:17:33 +08:00
zhaohy
1aa6ebdd45 fix:告警逻辑修改页面 修改必选 不可更改问题 2024-08-14 16:17:31 +08:00
fks-xuxinyue
83119f53e9 对接导入导出,优化页面UI 2024-08-14 15:21:20 +08:00
zhaohy
4205413418 fix:修改滑动块样式 2024-08-14 13:14:36 +08:00
zhaohy
2e1b1b8249 fix:修改页面路由 修改echats图 滑块样式 2024-08-14 09:55:56 +08:00
zhaohy
1f0eca56ae fix:修改告警总览 滑块样式 2024-08-14 09:24:30 +08:00
zhaohy
f18dad74e7 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-13 17:30:33 +08:00
zhaohy
b89794d8be fix:告警设置修改逻辑 2024-08-13 17:30:30 +08:00
fks-yangshouda
7799bac74a 监控中心 - 能耗监测 表格字段居中 2024-08-13 17:19:53 +08:00
zhaohy
3d9cf0d94c fix:逻辑调整 添加判断 字段显示 2024-08-13 17:16:38 +08:00
zhaohy
3b0c02666e Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-13 16:21:55 +08:00
zhaohy
c2fc3c4098 fix:根据UI修改页面 2024-08-13 16:21:50 +08:00
fks-yangshouda
7bd8721e32 1.监控中心 - 设备监测  根据UI设计图进行页面优化
2.监控中心 - 能耗监测  根据UI设计图进行页面优化
3.监控中心 - 环境监测  修改bug,添加loading
2024-08-13 15:07:46 +08:00
zhaohy
56c903ca86 fix:修改页面 2024-08-13 14:49:11 +08:00
zhaohy
1a77df6442 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-13 14:43:34 +08:00
zhaohy
0ee511e23a fix:修改设备告警逻辑 2024-08-13 14:43:31 +08:00
chenpingsen
790c8a3962 fix:照明系统设备点阵实现 / 电梯系统悬浮框样式修改 2024-08-13 14:41:21 +08:00
zhaohy
fb38527edf Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-13 14:16:39 +08:00
zhaohy
f1952d7621 fix:修改联系人样式 2024-08-13 14:16:36 +08:00
fks-xuxinyue
ed8d86ab8b 修改bug,优化页面UI 2024-08-13 13:22:13 +08:00
zhaohy
ca7b5bbede fix:根据ui修改样式 2024-08-13 11:09:06 +08:00
zhaohy
0e452ddef2 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-12 15:33:38 +08:00
zhaohy
e7642fe14c fix:修改计划添加页面 根据ui修改页面 2024-08-12 15:33:23 +08:00
chenpingsen
55ec21d41c add:照明系统素材/样式/交互修改 2024-08-12 09:49:06 +08:00
zhaohy
dbdf3da68a fix:修改计划添加页面 2024-08-12 09:42:01 +08:00
zhaohy
e4c46d9da3 add:计划添加 2024-08-09 16:23:06 +08:00
zhaohy
2eeab1c5a9 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-09 15:44:12 +08:00
zhaohy
27732376b0 add:节日计划 2024-08-09 15:44:09 +08:00
fks-xuxinyue
93cf7ab9fa 修改测试问题 2024-08-09 15:22:36 +08:00
chenpingsen
cce83ee700 fix:群控系统>控制面板的样式和逻辑修改 2024-08-09 09:09:57 +08:00
fks-xuxinyue
4395408f68 修改测试问题 2024-08-08 15:13:32 +08:00
zhaohy
7758049b28 fix:修改页面 添加 计划添加页面 2024-08-08 14:33:33 +08:00
duyufeng
5e5bb2f239 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-07 16:04:08 +08:00
zhaohy
3672d6feb3 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-07 15:28:02 +08:00
zhaohy
7e50064857 add:对接告警总览 2024-08-07 15:27:58 +08:00
fks-yangshouda
d583acfb2d 碳排分组设置前台页面 2024-08-07 11:32:44 +08:00
fks-xuxinyue
b079a2b464 taskId:282,remark:'commit' 2024-08-07 10:28:29 +08:00
chenpingsen
5d7bd5bb19 fix:新风系统 & 通风系统 样式调节/图像素材替换 2024-08-07 09:27:10 +08:00
zhaohy
f11a374baa Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-06 15:44:24 +08:00
zhaohy
16f3865dbd add:群控电梯系统 2024-08-06 15:44:21 +08:00
duyufeng
8b448e9061 “目录结构内容解释” 2024-08-06 08:35:09 +08:00
chenpingsen
5fb7235510 add:空调/照明群控系统交互逻辑增补 接口修改 2024-08-05 17:28:54 +08:00
zhaohy
243aea92bb fix:通风系统 2024-08-05 15:23:28 +08:00
zhaohy
5d3eafa417 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-05 15:22:45 +08:00
zhaohy
c6961fdfa8 add:通风系统功能 2024-08-05 15:22:42 +08:00
fks-xuxinyue
1990fd11e6 taskid:282,remark:'commit' 2024-08-05 15:20:16 +08:00
chenpingsen
bb9be7b4e0 add:空调系统群控-对接新接口以及逻辑修改 2024-08-02 16:28:35 +08:00
fks-xuxinyue
ea25c22383 taskid:282 remark:'commit' 2024-08-02 15:11:57 +08:00
zhaohy
bab2e8def5 fix:修改新风系统弹窗 优化页面展示 2024-08-02 10:45:49 +08:00
zhaohy
c0fa5ad9be Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-01 17:06:09 +08:00
zhaohy
bb3c4f1961 add:群控 2024-08-01 17:06:05 +08:00
fks-xuxinyue
e64a3123a2 taskId:280,remark:'commit' 2024-08-01 17:05:29 +08:00
zhaohy
deba7bddd8 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-08-01 10:34:41 +08:00
zhaohy
01fd569185 fix:新风系统 空调箱 2024-08-01 10:34:39 +08:00
chenpingsen
8a81c3e784 add:增加一个插件引用 2024-08-01 08:47:29 +08:00
fks-xuxinyue
55051da8a5 remark:'commit' 2024-07-31 15:52:08 +08:00
zhaohy
75df2dfb11 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-31 15:13:39 +08:00
zhaohy
67a76481cc add:新风系统 2024-07-31 15:13:37 +08:00
fks-yangshouda
3daeea7d3d 1.对接环境监测接口
2.开发环境监测-配置监测点位
2.修改监测中心多个时间筛选逻辑
2024-07-31 14:04:01 +08:00
zhaohy
d881ac0180 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-30 15:39:04 +08:00
zhaohy
9a1298987f fix:修改名称 2024-07-30 15:39:02 +08:00
fks-xuxinyue
99e2e803ef taskid:114 remark:'commit' 2024-07-30 15:19:19 +08:00
zhaohy
180ad4a005 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-30 14:37:41 +08:00
zhaohy
05409722ae add:空调系统 2024-07-30 14:37:39 +08:00
chenpingsen
1cf99afbc3 add:电梯系统新增 2024-07-30 14:35:40 +08:00
chenpingsen
b55304ef7f fix:照明系统多选功能完善,引入全局变量projectId,部分交互逻辑修改 2024-07-29 17:03:10 +08:00
zhaohy
16d7f81f0e Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-29 16:57:42 +08:00
zhaohy
3841e2afdd fix:修改bug 2024-07-29 16:57:37 +08:00
fks-xuxinyue
27de4ad24e taskid:111 remark:"commit" 2024-07-29 15:13:30 +08:00
zhaohy
3783e9d0d3 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-29 15:01:22 +08:00
zhaohy
7c1f120182 fix:修改网关告警页面展示 添加电动门 修改页面问题 2024-07-29 15:01:20 +08:00
chenpingsen
e14bd35fac add:照明系统接口与逻辑补充 2024-07-26 15:15:32 +08:00
fks-xuxinyue
744aae1bba taskid:110 remark:'commit' 2024-07-26 15:12:56 +08:00
xuziqiang
e05a813a1e fix: 保留选中treenode 2024-07-26 13:56:39 +08:00
xuziqiang
008f73c706 fix: 节点名称修改长度 2024-07-26 13:51:45 +08:00
zhaohy
06ee0ec6a4 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-26 10:55:00 +08:00
zhaohy
979c15eda3 fix:修改组织id的bug 2024-07-26 10:54:58 +08:00
xuziqiang
82b0f4cf96 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-25 15:54:17 +08:00
xuziqiang
bbed0e3ff3 fix: bug修改 2024-07-25 15:54:15 +08:00
zhaohy
1790db4595 fix:修改枚举 2024-07-25 15:42:46 +08:00
zhaohy
8b40268bd1 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-25 15:39:35 +08:00
zhaohy
7aa949bdcf fix:修改枚举 添加数据隔离 2024-07-25 15:39:32 +08:00
fks-xuxinyue
61dcbfeacd 规范代码 2024-07-25 15:19:41 +08:00
chenpingsen
6478070bd8 fix:获得所有枚举方法的请求方式修改 2024-07-25 14:35:34 +08:00
chenpingsen
a1b3ee2c8c fix:全局枚举请求代码格式修改 2024-07-25 14:33:49 +08:00
fks-xuxinyue
dd7c417f81 碳排管理 代码规范 2024-07-25 14:18:37 +08:00
chenpingsen
a9e6998430 fix:电梯系统/照明系统 代码规范 2024-07-25 14:14:55 +08:00
zhaohy
261ad9017d Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-25 11:55:35 +08:00
zhaohy
b8b6a46e7e fix:修改字段 对接设备告警 2024-07-25 11:55:32 +08:00
chenpingsen
ab29f9152d add:照明系统 提交数据功能 2024-07-25 11:54:47 +08:00
fks-xuxinyue
2d96bbda3b taskid:099 remark:'commit' 2024-07-24 15:17:34 +08:00
zhaohy
7869b083c3 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-24 15:13:56 +08:00
zhaohy
9637a6f13b fix:修改设备告警 能源告警字段 对接 能碳告警 2024-07-24 15:13:50 +08:00
chenpingsen
ecf6cd38dd add:电梯系统静态页面 2024-07-24 13:47:15 +08:00
chenpingsen
84191fe301 add:照明系统修改 2024-07-24 13:46:24 +08:00
fks-xuxinyue
7dadb22181 修改测试问题 2024-07-24 09:12:52 +08:00
fks-xuxinyue
b396c37426 修改测试问题 2024-07-23 17:11:25 +08:00
fks-xuxinyue
ee99ba7340 taskid:099 remark:'commit' 2024-07-23 15:15:05 +08:00
fks-yangshouda
c628c10f25 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-23 14:42:36 +08:00
fks-yangshouda
79c56bb979 1.对接能耗监测接口
2.对接设备监测接口
3.修改设备监测表格序号列显示错误的bug
2024-07-23 14:42:17 +08:00
xuziqiang
9ca6cb83f0 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-23 14:39:56 +08:00
xuziqiang
a2bfe148d3 feat: 权限补充 2024-07-23 14:39:55 +08:00
zhaohy
9134cf4ac3 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-23 14:28:51 +08:00
zhaohy
7b77c3cc88 add:设备告警网关告警对接 接口 2024-07-23 14:28:49 +08:00
xuziqiang
5e2f9cc966 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-23 11:01:10 +08:00
xuziqiang
4dcb8f74ca fix: op侧代码补充 2024-07-23 11:01:09 +08:00
zhaohy
223ceed5eb Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-23 08:35:53 +08:00
zhaohy
5c5acf6942 add:设备告警修改流程对接 2024-07-23 08:35:51 +08:00
xuziqiang
975d5fe4f0 fix: 部分样式调整 2024-07-22 18:11:03 +08:00
xuziqiang
159698ffbe fix: 菜单样式调整 2024-07-22 18:02:12 +08:00
xuziqiang
1b0118bb82 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-22 15:51:50 +08:00
xuziqiang
7c679f7fa5 fix: 菜单icon调整 2024-07-22 15:51:50 +08:00
fks-xuxinyue
ccec1ee763 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-22 15:25:57 +08:00
zhaohy
c390535202 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-22 15:25:49 +08:00
zhaohy
f4d01d65d0 fix:修改设备告警 配置字段 2024-07-22 15:25:47 +08:00
fks-xuxinyue
16e3213f21 tackid:099 remark:'commit' 2024-07-22 15:25:41 +08:00
chenpingsen
842c1e94e0 add:照明系统 增加接口 / 枚举 / 逻辑补充 2024-07-22 15:25:07 +08:00
zhaohy
55f98f9e56 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-22 14:31:04 +08:00
zhaohy
fc4b038e2e add:添加设备保存时 逻辑判断 2024-07-22 14:31:02 +08:00
xuziqiang
5993621c21 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-22 14:15:40 +08:00
xuziqiang
714e640c2e fix: 调整阴影 2024-07-22 14:15:39 +08:00
zhaohy
96b91ad6de Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-22 11:38:38 +08:00
zhaohy
b82b97ebb1 fix:修改设备告警 能源告警 回显 添加之后 刷新通知告警 2024-07-22 11:38:36 +08:00
fks-yangshouda
69727fa613 修改字典新增编辑规则 2024-07-22 11:35:11 +08:00
fks-yangshouda
0fba8917f2 新增字典前台页面 2024-07-22 10:56:30 +08:00
zhaohy
088590beea Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-22 10:34:43 +08:00
zhaohy
4c2989239d fix:设备告警 网关告警 2024-07-22 10:34:40 +08:00
xuziqiang
1c8419569e Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-22 10:22:15 +08:00
xuziqiang
822519dbb6 fix: 宽度修正 2024-07-22 10:22:14 +08:00
chenpingsen
2d1d3a41a8 add:照明系统 抽屉功能tab2分页功能完善 2024-07-22 09:18:46 +08:00
xuziqiang
2bc56cc1d4 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-19 18:12:46 +08:00
xuziqiang
f82ffa185d fix: 样式调整 2024-07-19 18:12:45 +08:00
zhaohy
57d97eb3e2 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-19 16:22:17 +08:00
zhaohy
c9e283c3c8 fix:修改接口层级 2024-07-19 16:22:15 +08:00
xuziqiang
ec94e2b5b4 feat:树组件补充是否取消逻辑 2024-07-19 16:13:01 +08:00
xuziqiang
c085f51cd1 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-19 15:38:53 +08:00
xuziqiang
1e4a3d61da fix: 管理员禁用切换组织 2024-07-19 15:38:52 +08:00
fks-xuxinyue
9bd82ebbee taskid:099 remark:"commit" 2024-07-19 15:13:46 +08:00
zhaohy
ecdcd900d3 fix:修改配置设备告警字段 2024-07-19 14:13:01 +08:00
zhaohy
2f1a54a114 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-19 11:37:16 +08:00
zhaohy
f636f426b0 fix:简化ns-step组件 设备告警样式 设备告警 能源告警 添加字段 2024-07-19 11:37:14 +08:00
xuziqiang
1c709d3ccf fix: 树样式调整 2024-07-19 10:36:05 +08:00
xuziqiang
df0f1f62ad fix: 补充切换组织刷新页面 2024-07-18 17:43:02 +08:00
xuziqiang
6be90a8d0c fix: 台账字段调整 2024-07-18 17:15:20 +08:00
xuziqiang
75a9b87513 fix: 用户管理多个角色调整 2024-07-18 16:04:44 +08:00
xuziqiang
0fa9abf014 fix: 部门角色新增补充部门id 2024-07-18 15:43:39 +08:00
xuziqiang
2576503808 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-18 15:40:33 +08:00
xuziqiang
7274efd5c2 fix: 部门角色逻辑调整 2024-07-18 15:40:32 +08:00
chenpingsen
429909a712 add:照明系统交互 2024-07-18 15:29:22 +08:00
zhaohy
a6f77afe70 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-18 15:17:35 +08:00
zhaohy
4955c235cc fix:修改多次点击数据丢失问题 2024-07-18 15:17:32 +08:00
fks-xuxinyue
86db377d29 taskid:099 remark:"commit" 2024-07-18 15:14:25 +08:00
xuziqiang
db70343b18 fix: 去除页面缓存 2024-07-18 14:56:26 +08:00
xuziqiang
7f839b7a31 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-18 14:54:31 +08:00
xuziqiang
13d6db895f fix: box-shadow补充 2024-07-18 14:54:30 +08:00
zhaohy
4e17163c67 fix:删除多余配置 2024-07-18 13:57:12 +08:00
zhaohy
c1aa2483ed Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-18 13:50:11 +08:00
zhaohy
652a94a466 fix:对接通知管理接口 进行联调测试 2024-07-18 13:50:09 +08:00
fks-xuxinyue
97667fc496 taskId:099 remark:"commit" 2024-07-18 11:29:52 +08:00
xuziqiang
7745f55803 fix: 修改部门交互穿插逻辑导致提交异常 2024-07-17 16:54:15 +08:00
xuziqiang
f915dab012 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-17 16:11:25 +08:00
xuziqiang
9031837695 fix: 修改table Search 2024-07-17 16:11:24 +08:00
zhaohy
bd4fec4c7e Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-17 15:54:39 +08:00
zhaohy
f10045b64d fix:通知管理 2024-07-17 15:54:35 +08:00
fks-xuxinyue
85cd183493 taskid:088 remark:"commit" 2024-07-17 15:54:10 +08:00
xuziqiang
a83f8d868a fix: table Search 样式调整 2024-07-17 15:39:24 +08:00
xuziqiang
bf4a3fd581 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-17 15:07:24 +08:00
xuziqiang
2a6de583e1 fix: 树样式优化 2024-07-17 15:07:23 +08:00
fks-yangshouda
ddf0514182 1.设备监测 接口对接
2.环境监测 平均数据 前台页面开发
2024-07-17 15:06:11 +08:00
xuziqiang
1be888feba feat: 部门权限补充 2024-07-17 13:48:54 +08:00
zhaohy
5c902d174d Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-17 11:14:01 +08:00
zhaohy
c2e69b4d36 fix:添加设备告警 换图标 设备告警详情 状态流程 按钮权限 2024-07-17 11:13:56 +08:00
xuziqiang
62f357c5d5 fix: 修改验证码更新时机 2024-07-17 10:45:12 +08:00
xuziqiang
b06c9ddc84 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-16 15:50:43 +08:00
xuziqiang
40021ba5d0 fix: bug修改 2024-07-16 15:50:42 +08:00
zhaohy
1401d3611f Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-16 15:42:52 +08:00
zhaohy
d29c724920 fix:联系方式 2024-07-16 15:42:49 +08:00
fks-xuxinyue
5eba9a35a0 taskid:084 remark:'commit' 2024-07-16 15:36:47 +08:00
fks-yangshouda
6278e3ff17 1.监控中心 - 环境监测 环境指数分析添加查询部分
2.修改 监控中心 - 能耗监测左侧树组件
2024-07-16 15:31:05 +08:00
xuziqiang
0b619fe937 fix: 补充相关限制 2024-07-16 15:22:29 +08:00
xuziqiang
48569345aa feat: 修改密码 2024-07-16 14:31:27 +08:00
xuziqiang
dc0f2a164b fix: 修改登录多重submit 2024-07-16 10:48:10 +08:00
xuziqiang
1aa294b998 fix: 设备型号取消关联 2024-07-15 17:51:30 +08:00
xuziqiang
ef20fa58de Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-15 17:15:59 +08:00
xuziqiang
dac2e095e1 fix:分组管理逻辑补充 2024-07-15 17:15:59 +08:00
zhaohy
c68dc4deb7 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-15 17:02:45 +08:00
zhaohy
0e9743f598 fix:换成枚举 2024-07-15 17:02:42 +08:00
xuziqiang
2fe6bb6d81 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-15 16:58:51 +08:00
xuziqiang
58300c60e2 fix:设备台账补充筛选项去重逻辑 2024-07-15 16:58:50 +08:00
zhaohy
3bf19ba70d Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-15 16:41:08 +08:00
zhaohy
de0ce4ec2d fix: 添加联系人 2024-07-15 16:41:03 +08:00
zhaohy
8091bc10cc fix:能源告警换枚举 2024-07-15 16:40:03 +08:00
xuziqiang
e90efdb08d Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-15 16:26:06 +08:00
xuziqiang
86e0b30e81 fix: 分组逻辑调整 2024-07-15 16:25:55 +08:00
zhaohy
0214356cbb Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-15 16:00:15 +08:00
zhaohy
098b4f29fd fix:配置设备告警 联系方式 2024-07-15 16:00:08 +08:00
chenpingsen
3598e3d887 add:增加照明系统前端交互 2024-07-15 15:56:31 +08:00
fks-xuxinyue
4869fd4d16 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-15 15:54:21 +08:00
fks-xuxinyue
b41caf9320 taskid:084 remark:'commit' 2024-07-15 15:54:07 +08:00
xuziqiang
8603732377 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-15 15:53:55 +08:00
xuziqiang
32d1a633b1 feat: 查询补充 2024-07-15 15:53:54 +08:00
fks-yangshouda
5deff41679 1.能耗监测 - 分析 下载图表
2.环境监测 - 综合数据 前台页面
2024-07-15 15:38:28 +08:00
xuziqiang
0681836c02 fix: 设备台账调整搜索 2024-07-15 10:22:51 +08:00
xuziqiang
4526da936e fix: 代码逻辑调整 2024-07-12 17:39:31 +08:00
xuziqiang
c31b5468c7 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-12 17:17:33 +08:00
xuziqiang
e0206a228b feat: 分组管理批量分组,公式编辑 2024-07-12 17:17:32 +08:00
fks-xuxinyue
47614e12ed Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-12 17:06:35 +08:00
fks-xuxinyue
d8cc8293bc taskid:083 remark:'commit' 2024-07-12 17:06:23 +08:00
fks-yangshouda
141f2a3e6f Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-12 17:05:57 +08:00
fks-yangshouda
4fcdae08de 能耗监测 分析 右侧图 2024-07-12 17:05:41 +08:00
zhaohy
93d5959334 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-12 17:04:56 +08:00
zhaohy
042fc8f16f fix:能源告警配置 2024-07-12 17:04:51 +08:00
fks-xuxinyue
0282d2d1aa taskId:083 remark:'commit' 2024-07-12 16:59:33 +08:00
chenpingsen
97c3945848 add:增加两个用于获取枚举的公共方法 2024-07-11 17:35:02 +08:00
fks-yangshouda
37b877b220 1. 监控中心 - 能耗监测 - 分析 表格 前端页面
2. 监控中心 - 能耗监测 - 分析 图表 前台页面
2024-07-11 17:29:23 +08:00
zhaohy
4dea1ff14d Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-11 16:45:44 +08:00
zhaohy
de7a0ab88a add:配置设备告警对接接口 对接告警配置 里面的数据来源 设备节点 2024-07-11 16:45:42 +08:00
fks-xuxinyue
533f0cc633 taskid:083 remark:commit 2024-07-11 16:23:42 +08:00
chenpingsen
0cac402bd1 fix:照明系统修改 2024-07-11 16:20:15 +08:00
xuziqiang
6137aaa4b6 fix: 修改同项目登录信息污染 2024-07-11 15:53:41 +08:00
xuziqiang
4d49ef4e42 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-11 11:55:53 +08:00
xuziqiang
131913e52d fix: 调整验证码校验 2024-07-11 11:55:52 +08:00
fks-xuxinyue
5ed7449392 taskId:083 remark:"commit" 2024-07-11 09:17:20 +08:00
fks-yangshouda
a698c69b7c 设备中心 - 能耗监测 - 图表 左侧树和右侧组件联动 2024-07-11 08:45:20 +08:00
xuziqiang
5fde3175f1 fix: tree组件显示异常 2024-07-10 15:17:14 +08:00
xuziqiang
149f44a8dd feat: 调整树样式 2024-07-10 14:51:42 +08:00
fks-xuxinyue
060ac6d486 taskid:067 remark:commit 2024-07-10 11:01:46 +08:00
xuziqiang
7b624f6549 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-09 18:04:10 +08:00
xuziqiang
717b2aad72 feat: 分组管理设备树 2024-07-09 18:04:09 +08:00
fks-yangshouda
f98a8be0b9 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-09 17:35:59 +08:00
fks-yangshouda
de2202e360 1.监控中心 - 设备监测 对接接口 2024-07-09 17:35:45 +08:00
xuziqiang
6b93422b08 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-09 16:27:22 +08:00
xuziqiang
30286253e7 feat: 分组管理 2024-07-09 16:27:21 +08:00
fks-yangshouda
a0d928feaa 1.监控中心 - 设备监测 左侧树与右侧组件联动
2.对接设备类型接口
2024-07-09 16:08:31 +08:00
zhaohy
50ca1daca4 add:对接设备告警 对接设备告警 设备类型 设备名称 设备点位 2024-07-09 15:56:18 +08:00
fks-yangshouda
fb1980d73a 1.设备监控 图表下载 时间选择改为三天
2.能耗监控 - 图表前台页面
2024-07-09 10:10:17 +08:00
xuziqiang
ab17c4a1f9 fix: 获取字典数据方法 2024-07-08 17:44:07 +08:00
xuziqiang
aab4c9a600 fix: 高度调整 2024-07-08 17:32:10 +08:00
fks-xuxinyue
0855659d74 taskId:067 remark:"commit" 2024-07-08 11:45:01 +08:00
zhaohy
3abdde797b fix: 还原工作组件 修改告警设置页面 2024-07-08 11:24:24 +08:00
zhaohy
d004a06ec1 fix:修改样式 2024-07-08 10:53:27 +08:00
fks-yangshouda
76248c0f70 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-08 10:42:46 +08:00
fks-yangshouda
6e294e13eb 注释环境监测路由 2024-07-08 10:42:35 +08:00
zhaohy
7a9bea2f8e Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-08 10:40:28 +08:00
zhaohy
77052ae284 fix:还原工作组件 2024-07-08 10:40:26 +08:00
chenpingsen
33eb153885 add:照明系统页面修改/修改中 2024-07-08 10:34:43 +08:00
28723
a3a5b63ea5 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-08 10:32:55 +08:00
chenpingsen
7a20eb8603 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-08 10:19:53 +08:00
28723
dc29be2718 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-08 10:13:13 +08:00
28723
f28b224c91 taskId:067 remark:"commit" 2024-07-08 10:13:07 +08:00
fks-yangshouda
bfd6282a99 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-08 10:09:33 +08:00
28723
64cfd47d50 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-08 10:05:22 +08:00
28723
796d2fcf63 碳排因子库页面代码提交 2024-07-08 10:04:04 +08:00
fks-yangshouda
287dc9262b * add: 添加监控中心-设备监测页面 2024-07-08 10:03:22 +08:00
xuziqiang
f39fb299c4 Merge branch 'temp' of http://123.60.103.97:3000/xuziqiang/SaaS-lib into temp 2024-07-08 10:02:30 +08:00
chenpingsen
9ad9446cae add:照明系统样式 2024-07-08 10:02:05 +08:00
28723
1d4b76492d 碳排因子库页面 2024-07-08 09:48:44 +08:00
zhaohy
a16b26370f add:添加告警管理内容 告警统揽和告警设置 修改公共组件 适配多种情况 2024-07-08 08:24:18 +08:00
xuziqiang
9316629faa fix: 登录校验调整 2024-07-05 18:19:03 +08:00
xuziqiang
c7bbc1f003 fix: 角色新增同级 2024-07-05 17:36:24 +08:00
xuziqiang
da80693704 fix: bug修改 2024-07-05 17:29:34 +08:00
xuziqiang
40d93e74aa fix: bug修改 2024-07-05 17:26:31 +08:00
xuziqiang
b2a200486f fix: hx-op路由调整 2024-07-05 14:12:53 +08:00
xuziqiang
228f420bd4 fix: 项目图标调整 2024-07-05 13:51:28 +08:00
xuziqiang
78d49ff16e fix: 设备联调 2024-07-05 12:04:17 +08:00
xuziqiang
4bbb5c5133 fix: 组件调整 2024-07-04 11:19:38 +08:00
xuziqiang
d294c3f07a feat: 设备台账联调 2024-07-03 18:08:02 +08:00
xuziqiang
fba16c75b9 feat: 设备台账联调 2024-07-03 18:07:52 +08:00
xuziqiang
e5cd75c845 feat: 设备台账联调 2024-07-03 17:58:39 +08:00
xuziqiang
be09e531b9 fix:调整路由 2024-07-03 10:50:16 +08:00
xuziqiang
45908dd5c1 fix: 部门角色编辑调整 2024-07-02 14:52:12 +08:00
xuziqiang
7fd1733872 fix: remove useless console 2024-07-01 16:37:37 +08:00
xuziqiang
2d9fc62d86 feat: 解决批量删除之后选中数据清除问题 2024-07-01 16:04:12 +08:00
xuziqiang
7eb8ba79f8 feat: 树loading样式调整 2024-07-01 15:03:45 +08:00
xuziqiang
ef782e90b6 feat: ns-tree-api补充粘性定位 2024-06-28 16:46:07 +08:00
xuziqiang
46398fda22 fix: 抽离接口异常code 2024-06-28 16:07:37 +08:00
xuziqiang
edfc11825d feat: 补充全局自定义权限指令 2024-06-28 14:49:40 +08:00
xuziqiang
9f1620c9f8 fix: 调整placeholder 2024-06-28 11:45:29 +08:00
xuziqiang
9ddeaa59eb fix: childform 警告调整 2024-06-27 17:08:58 +08:00
xuziqiang
8f25d2293c feat: 分组切换 2024-06-27 15:21:14 +08:00
xuziqiang
7c64a6b231 fix: 修改tag右键操作异常 2024-06-27 14:27:04 +08:00
xuziqiang
d6865544d8 fix: 补充超出滚动 2024-06-27 10:59:05 +08:00
xuziqiang
3d2d777644 fix: bug修复 2024-06-26 16:57:42 +08:00
xuziqiang
613e7feaf4 fix: 样式细节调整 2024-06-26 14:58:23 +08:00
xuziqiang
b55ab2353e feat: 部门样式调整 2024-06-26 10:32:45 +08:00
xuziqiang
d654588e65 feat: 用户管理样式调整 2024-06-25 14:52:13 +08:00
xuziqiang
15fce86265 feat: form 组件样式调整 2024-06-25 11:21:35 +08:00
xuziqiang
cecd3a0325 feat;sider样式补充 2024-06-24 15:24:21 +08:00
xuziqiang
0c291263cd feat: 样式调整 2024-06-21 18:15:32 +08:00
xuziqiang
d4f17c4c02 feat: 树搜索调整 2024-06-21 15:56:21 +08:00
xuziqiang
e16ad610e7 feat: table cancel sticky 2024-06-21 15:45:35 +08:00
xuziqiang
fea7abd476 feat: 样式调整 2024-06-21 15:19:28 +08:00
xuziqiang
2ebe536243 Merge branch 'main' of http://123.60.103.97:3000/xuziqiang/SaaS-lib 2024-06-19 18:23:50 +08:00
xuziqiang
ab3960fff8 fix: bug修复 2024-06-19 18:23:49 +08:00
lushihan
77a9fe882d feat:照明 2024-06-19 16:23:46 +08:00
xuziqiang
8a554f5871 fix: 权限排序异常 2024-06-19 16:22:19 +08:00
xuziqiang
5d7d8cc4de fix: bug 修复 2024-06-19 15:20:49 +08:00
xuziqiang
69776112f9 fix: bug 修复 2024-06-19 15:20:04 +08:00
xuziqiang
f744ad286e fix: 005 复制异常修复 2024-06-19 10:03:47 +08:00
xuziqiang
75a67c3039 Merge branch 'main' of http://123.60.103.97:3000/xuziqiang/SaaS-lib 2024-06-18 18:16:23 +08:00
xuziqiang
ec1ae071f8 fix: 集团补充验证,部门权限取消清楚权限信息 2024-06-18 18:16:23 +08:00
lushihan
d527a1467f feat:照明 2024-06-18 16:41:31 +08:00
xuziqiang
012c049ab0 fix: 静态资源调整 2024-06-18 14:49:01 +08:00
xuziqiang
e0fe92a8f8 feat: 补充记住密码功能 2024-06-17 18:32:35 +08:00
xuziqiang
e9ca9cfab9 fix: 修改刷新页面权限丢失 2024-06-17 17:41:30 +08:00
xuziqiang
217496d5b6 fix: 登录过滤空格 2024-06-17 17:31:01 +08:00
xuziqiang
efced81544 fix: 登录验证异常 2024-06-17 17:24:03 +08:00
xuziqiang
1f62153ad4 Merge branch 'main' of http://123.60.103.97:3000/xuziqiang/SaaS-lib 2024-06-17 16:59:50 +08:00
xuziqiang
09fa01122c feat: 登录补充验证码 2024-06-17 16:59:30 +08:00
lushihan
cd1690fb28 Merge branch 'main' of http://123.60.103.97:3000/xuziqiang/SaaS-lib 2024-06-17 16:55:48 +08:00
lushihan
559db71640 feat:照明 2024-06-17 16:53:36 +08:00
xuziqiang
91dd7a7d0c fix: header 切换缓存逻辑补充 2024-06-17 13:48:27 +08:00
xuziqiang
bc80a22180 feat: 权限逻辑处理 2024-06-14 18:27:07 +08:00
xuziqiang
da3d5840df feat: 权限逻辑处理 2024-06-14 11:49:51 +08:00
lushihan
08972bfbfb feat:照明 2024-06-13 17:22:24 +08:00
xuziqiang
819a00f733 feat: 企业细节逻辑调整 2024-06-12 18:15:49 +08:00
xuziqiang
680855f310 feat: 企业联调 2024-06-12 16:41:30 +08:00
lushihan
8e6abb5c57 feat:完善 2024-06-12 15:57:35 +08:00
xuziqiang
689a349d96 fix: 路由调整 2024-06-11 16:45:18 +08:00
xuziqiang
dd82f15e7f Merge branch 'main' of http://123.60.103.97:3000/xuziqiang/SaaS-lib 2024-06-11 16:16:35 +08:00
xuziqiang
fbf460a620 fix: 资源路径调整 2024-06-11 16:13:51 +08:00
lushihan
c4132d41cd feat:添加 2024-06-11 15:44:41 +08:00
xuziqiang
c4652e2571 Merge branch 'main' of http://123.60.103.97:3000/xuziqiang/SaaS-lib 2024-06-11 13:37:11 +08:00
xuziqiang
d58f066b39 feat: 细节调整 2024-06-11 13:37:10 +08:00
lushihan
e6ed0f0e09 照明 2024-06-11 09:01:15 +08:00
lushihan
3b6d11122e 6.11 2024-06-11 08:48:13 +08:00
lushihan
30743f1474 6.11 2024-06-11 08:47:52 +08:00
lushihan
ec6faa9494 feat:照明 2024-06-11 08:36:13 +08:00
xuziqiang
cbfa942ff6 feat: NsCascader 调整逻辑 2024-06-07 17:41:47 +08:00
xuziqiang
fc940e7241 feat: 补充新项目hx-op 2024-06-07 15:11:04 +08:00
xuziqiang
a0f5c4de08 feat: 调整部门新增逻辑 2024-06-07 14:16:45 +08:00
xuziqiang
112c701799 feat: 补充角色权限 2024-06-07 14:14:21 +08:00
xuziqiang
6a31e3199b fix: code format 2024-06-06 17:02:49 +08:00
xuziqiang
2141efd7a7 Merge branch 'main' of http://123.60.103.97:3000/xuziqiang/SaaS-lib 2024-06-06 16:56:35 +08:00
xuziqiang
946384b9ed feat: 补充用户模块权限json 2024-06-06 16:56:34 +08:00
lushihan
0bfbf391e2 feat: 灯光 2024-06-06 16:49:24 +08:00
lushihan
e7e2d52dff fix: 照明调整文件路径 2024-06-06 14:37:33 +08:00
L
14a7c158bc 照明控制面板 2024-06-06 11:57:16 +08:00
xuziqiang
9c3508fbc8 feat: 调整用户企业树 2024-06-06 11:05:43 +08:00
xuziqiang
61218104d3 feat: 部门联调 2024-06-04 19:22:11 +08:00
xuziqiang
bd89f7973d feat: open permission 2024-06-04 11:40:32 +08:00
xuziqiang
e1b0d817fe feat: 用户联调 2024-06-04 10:54:02 +08:00
xuziqiang
31479608c0 feat: 能耗映射 2024-05-31 09:54:39 +08:00
xuziqiang
65230bf066 feat: 树补充搜索 2024-05-30 14:16:42 +08:00
xuziqiang
9319c09fb7 fix: 修改table mock数据 2024-05-29 18:24:44 +08:00
xuziqiang
620fbd509a fix: formItem formItemProps 调研关联性 2024-05-29 17:24:26 +08:00
xuziqiang
4614c8699f feat: 分组管理 2024-05-29 16:29:22 +08:00
xuziqiang
f7ebb4bd60 feat: drawer 组件封装 2024-05-29 13:58:08 +08:00
xuziqiang
c9f8148dc3 Merge branch 'main' of http://123.60.103.97:3000/xuziqiang/SaaS-lib 2024-05-29 10:18:13 +08:00
xuziqiang
c4d7573cbb feat: 分组管理 2024-05-29 10:18:12 +08:00
dinghao
778ada00fc 提交 2024-05-28 18:00:25 +08:00
xuziqiang
e28ca898ee Merge branch 'main' of http://123.60.103.97:3000/xuziqiang/SaaS-lib 2024-05-28 14:48:38 +08:00
xuziqiang
a67f48c770 feat: 登录联调 2024-05-28 14:48:37 +08:00
dinghao
0db3da2362 Merge branch 'main' of http://123.60.103.97:3000/xuziqiang/SaaS-lib 2024-05-28 11:09:59 +08:00
dinghao
de08945d49 tijiao 2024-05-28 11:08:57 +08:00
xuziqiang
ddb046d2d3 feat: 设备台账 2024-05-28 10:51:13 +08:00
xuziqiang
d2b0a2ca06 feat: 设备台账 2024-05-27 17:12:49 +08:00
xuziqiang
c7f104091f fix: prod图片修改 2024-05-27 13:27:54 +08:00
dinghao
2c6dc56e0b tijiao 2024-05-24 13:13:24 +08:00
xuziqiang
1e72487b35 Merge branch 'main' of http://123.60.103.97:3000/xuziqiang/SaaS-lib 2024-05-24 10:32:06 +08:00
xuziqiang
8b2dc8a230 test build 2024-05-24 10:32:05 +08:00
dinghao
ab7217f0f0 Merge branch 'main' of http://123.60.103.97:3000/xuziqiang/SaaS-lib 2024-05-24 09:44:15 +08:00
dinghao
11a7c77f69 tijiao 2024-05-24 09:44:08 +08:00
xuziqiang
576f313b2f feat: 补充头部下拉 2024-05-23 17:49:25 +08:00
xuziqiang
1a7a01894d Merge branch 'main' of http://123.60.103.97:3000/xuziqiang/SaaS-lib 2024-05-23 17:09:09 +08:00
xuziqiang
79743608b8 fix: modal close 2024-05-23 17:09:08 +08:00
dinghao
2dac756371 Merge branch 'main' of http://123.60.103.97:3000/xuziqiang/SaaS-lib 2024-05-23 16:18:23 +08:00
dinghao
97ebd09edd tijiao 2024-05-23 16:18:18 +08:00
xuziqiang
c8718677f4 fix: style adjust 2024-05-23 16:17:12 +08:00
dinghao
060365e0fe tijiao 2024-05-23 15:50:47 +08:00
dinghao
cf301fb1f1 tijiao 2024-05-23 15:34:26 +08:00
dinghao
d8bc019f03 提交 2024-05-23 14:45:06 +08:00
dinghao
51d9fb84e5 tijiao 2024-05-23 14:34:26 +08:00
dinghao
0df4d84cb6 tijiao 2024-05-23 14:34:07 +08:00
dinghao
3e9897b798 feat:"tijaio" 2024-05-22 17:43:25 +08:00
xuziqiang
aee1cfdc40 Merge branch 'main' of http://123.60.103.97:3000/xuziqiang/SaaS-lib 2024-05-22 16:39:51 +08:00
xuziqiang
443058d61f fix: form vertical width full 2024-05-22 16:39:50 +08:00
dinghao
3f236bb1b1 feat 2024-05-22 16:31:55 +08:00
xuziqiang
60ae99d410 feat: theme change 2024-05-22 14:36:37 +08:00
xuziqiang
54b7ffb119 fix: basic path warning 2024-05-22 14:28:56 +08:00
xuziqiang
78207546c7 fix: hx-ai-intelligent 区分 2024-05-22 14:06:24 +08:00
xuziqiang
5318f0f46c Merge branch 'main' of http://123.60.103.97:3000/xuziqiang/SaaS-lib 2024-05-22 13:42:00 +08:00
xuziqiang
de932dfe22 fix: 修改路由模式hash 2024-05-22 13:41:59 +08:00
dinghao
3958d730f0 tijiao 2024-05-22 11:53:03 +08:00
dinghao
91d6051664 Merge branch 'main' of http://123.60.103.97:3000/xuziqiang/SaaS-lib 2024-05-22 11:23:19 +08:00
dinghao
043e73267f feat: 部门权限 2024-05-22 11:23:13 +08:00
xuziqiang
69a68c615e fix: header图片 2024-05-21 17:22:20 +08:00
xuziqiang
1d25ea126c feat: remove useless project 2024-05-21 16:43:45 +08:00
xuziqiang
4a9b924df6 feat: huaxing-AI智能BAS系统 2024-05-21 16:42:16 +08:00
xuziqiang
84ef5b6032 test 2024-05-21 11:28:26 +08:00
1268 changed files with 91799 additions and 153183 deletions

View File

@@ -26,3 +26,68 @@ Run `Volar: Switch TS Plugin on/off` from VSCode command palette.
4. Open the VSCode command palette 4. Open the VSCode command palette
5. Search and run "Select TypeScript version" -> "Use workspace version" 5. Search and run "Select TypeScript version" -> "Use workspace version"
test test
#### 目录结构
|-- build 构建相关
|-- hx-ai-intelligent AI智能BSA系统
|-- mock 定义模拟数据(登录/登出/获取用户信息等)
|-- public 静态资源
|-- resources 资源文件
|-- src
|-- api 定义接口请求地址
|-- components 当前项目的公共组件
|-- ns-modal-form.vue 经过二次封装后的“弹窗”通用组件
|-- ns-steps.vue 经过二次封装后的“步骤条”通用组件
|-- config 配置文件
|-- app.config.ts(包含应用程序配置的对象包含api路径/组件配置等)
|-- directives 自定义指令在vue应用程序中设置全局指令
|-- enum 枚举用于http请求配置和错误代码的处理
|-- icon 图标svg图标文件
|-- router 路由
|-- store 状态管理
|-- theme 主题样式less/scss文件
|-- util 工具类
|-- debounce.ts 防抖函数(用于优化频繁出发的事件处理函数,例如窗口大小改变/滚动事件等)
|-- view 页面
|-- App.vue 根组件
|-- .env.development 当前项目开发环境配置
|-- .env.production 当前项目生产环境配置
|-- index.html 当前项目入口页
|-- tsconfig.json typescript配置
|-- vite.config.ts vite配置包含当前项目请求接口地址
|-- lib
|-- component 公共组件color/drawer/echarts/flowChart/form/modal/table/tree等组件的二次封装或将组件注册为插件形式使用
|-- paas 私有组件
|-- saas 私有组件
|-- type 类型定义
|-- use 自定义hook文件
|-- util http/axios等工具类
|-- node_modules 依赖包
|-- public 静态资源(不会被编译)
|-- src
|-- main.ts 入口文件(初始化saasInit函数的相关配置或服务的入口点。)
|-- type 声明定义应用程序的全局类型
|-- .env.development 开发环境配置
|-- .env.production 生产环境配置
|-- index.html 项目入口文件
|-- package.json 项目依赖包管理
|-- tsconfig.json typescript配置
|-- vite.config.ts vite配置
|-- README.md 项目说明
#### 开发前的相关配置或调试时需要本地启动项目
1、node官网下载并安装node环境node版本18.12以上稳定版。官网地址https://nodejs.cn/download/
node版本安装18.12以上版本npm版本安装9.6.0以上版即可
查看版本node -v npm -v
2、更换npm源为淘宝镜像
命令npm config set registry https://registry.npmmirror.com/
输入此命令查看是否完成修改npm config get registry
3、安装pnpm包管理器由于有时npm启动项目会因为存在重复配置及文件而报错使用pnpm可以避开这些问题将资源整合性能提高的同时也扩展了场景。
命令npm install -g pnpm
输入此命令查看是否完成安装pnpm -v
4、安装依赖包
命令pnpm install
5、启动hx-ai-intelligent 项目命令pnpm run ai 打包到线上命令pnpm run ai-build
6、启动hx-op项目 项目命令pnpm run ai-op 打包到线上命令pnpm run ai-op-build
7、如使用vscode编辑器可以在终端使用cmd终端启动项目powershell终端会报错

10
hx-ai-intelligent/.env Normal file
View File

@@ -0,0 +1,10 @@
# port
VITE_PORT = 3301
#mode
VITE_GLOB_APP_RUN_TYPE = saas
# spa-title
VITE_GLOB_APP_TITLE = hx-ai-intelligent Depositor
# spa shortname
VITE_GLOB_APP_SHORT_NAME = hx-ai-intelligent-depositor

View File

@@ -2,7 +2,7 @@
VITE_USE_MOCK = true VITE_USE_MOCK = true
# public path # public path
VITE_PUBLIC_PATH = / VITE_PUBLIC_PATH = /hx-ai-intelligent/
# Cross-domain proxy, you can configure multiple # Cross-domain proxy, you can configure multiple
# Please note that no line breaks http://100.73.70.51 # Please note that no line breaks http://100.73.70.51

View File

@@ -2,7 +2,7 @@
VITE_USE_MOCK = true VITE_USE_MOCK = true
# public path # public path
VITE_PUBLIC_PATH = / VITE_PUBLIC_PATH = /hx-ai-intelligent/
# Delete console # Delete console
VITE_DROP_CONSOLE = true VITE_DROP_CONSOLE = true

View File

@@ -0,0 +1 @@
0.0.1

View File

View File

@@ -0,0 +1,19 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" href="/projectIcon.svg" />
<meta name="referrer" content="never" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<!-- <script type="text/javascript">
window._AMapSecurityConfig = {
securityJsCode: '09e43004c09d39c0e61f8fd65d5e6a5a',
};
</script> -->
<title>AI智能BAS系统</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="./src/main.ts"></script>
</body>
</html>

Binary file not shown.

Binary file not shown.

View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 810 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 237 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 795 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 802 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

View File

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View File

Before

Width:  |  Height:  |  Size: 92 KiB

After

Width:  |  Height:  |  Size: 92 KiB

View File

Before

Width:  |  Height:  |  Size: 147 KiB

After

Width:  |  Height:  |  Size: 147 KiB

View File

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@@ -0,0 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 36 36">
<g id="组_23402" data-name="组 23402" transform="translate(-959.12 -738.12)">
<rect id="矩形_16530" data-name="矩形 16530" width="36" height="36" transform="translate(959.12 738.12)" fill="none"/>
<g id="组_23400" data-name="组 23400" transform="translate(960.956 739.956)">
<path id="路径_30576" data-name="路径 30576" d="M207.674,163.872v-9.284a2.553,2.553,0,0,0-1.179-2.063l-8.056-4.634a2.417,2.417,0,0,0-2.358,0l-8.023,4.65a2.38,2.38,0,0,0-1.179,2.063v9.333A2.553,2.553,0,0,0,188.059,166l8.056,4.585a2.417,2.417,0,0,0,2.358,0l8.056-4.634A2.331,2.331,0,0,0,207.674,163.872Z" transform="translate(-181.117 -142.881)" fill="#4388fb" opacity="0.2"/>
<path id="路径_30577" data-name="路径 30577" d="M265.893,314.283h-2.718l-.884-2.653h-4.224l-.884,2.653h-2.718l4.224-11.625h2.9Zm-4.093-4.617-1.326-4.044a9.365,9.365,0,0,1-.2-1.015h-.065a5.831,5.831,0,0,1-.2,1.015l-1.326,4.044Zm8.072-7.073v11.625h-2.456V302.592Z" transform="translate(-246.539 -292.932)" fill="#4388fb"/>
<path id="路径_30578" data-name="路径 30578" d="M36.685,20.095a.9.9,0,0,0-.884.884v2.472a1.535,1.535,0,0,1-.77,1.294L23.7,31.262a1.422,1.422,0,0,1-1.523,0l-11.33-6.517a1.456,1.456,0,0,1-.77-1.294V20.177a2.409,2.409,0,0,0-1-4.6,2.425,2.425,0,0,0-2.423,2.407,2.391,2.391,0,0,0,1.637,2.276v3.176a3.268,3.268,0,0,0,1.637,2.816l11.33,6.582a3.244,3.244,0,0,0,1.637.409,3.471,3.471,0,0,0,1.637-.475l11.281-6.517a3.268,3.268,0,0,0,1.637-2.816V20.963A.76.76,0,0,0,36.685,20.095Zm.884-6.942V10.287a3.268,3.268,0,0,0-1.637-2.816L24.585.954a3.284,3.284,0,0,0-3.291,0L9.947,7.471A3.268,3.268,0,0,0,8.31,10.287v2.227a.884.884,0,1,0,1.768,0V10.287a1.535,1.535,0,0,1,.77-1.294l11.33-6.517a1.422,1.422,0,0,1,1.523,0L34.982,9.059a1.456,1.456,0,0,1,.77,1.294v2.734a2.4,2.4,0,1,0,1.817.065Z" transform="translate(-6.656 -0.512)" fill="#4388fb"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -0,0 +1,207 @@
<template>
<a-config-provider :locale="locale">
<div style="width: 100%; height: 100%">
<a-spin :spinning="state.isLoading" size="large">
<router-view />
</a-spin>
</div>
</a-config-provider>
</template>
<script lang="ts">
import { defineComponent, watch, ref } from 'vue';
import zhCN from 'ant-design-vue/es/locale/zh_CN';
import { useRouter } from 'vue-router';
import Cookies from 'js-cookie';
import { message } from 'ant-design-vue';
import { items } from '/@/store/item';
export default defineComponent({
name: 'App',
setup() {
const router = useRouter();
const cachedViews = ['Status'];
window.localStorage.setItem('mapKey', JSON.stringify({ type: 'tmap', url: '' }));
// watch(
// () => router.currentRoute.value,
// (e) => {
// // if (Cookies.get(`${import.meta.env.VITE_PUBLIC_PATH}-nervsid`) === undefined && e.fullPath !== '/login') {
// // message.warn('登陆信息已过期,请重新登录!', 1);
// // router.push('/login');
// // }
// // } else {
// // if (Cookies.get(`${import.meta.env.VITE_PUBLIC_PATH}-nervsid`) !== undefined && e === '/login') {
// // let url = window.sessionStorage.getItem('url');
// // url === null ? window.sessionStorage.setItem('url', '/doorway/visitor/audit') : '';
// // router.push(url === null ? '/doorway' : url);
// // }
// // }
// }
// );
return {
cachedViews,
locale: zhCN,
// 获得全局变量
state: items(),
};
},
});
</script>
<style lang="less" scoped>
:deep(.ns-content-main) {
.ant-tabs-content {
height: 100%;
}
}
// 树组件
:deep(.ant-tree-node-content-wrapper) {
overflow: hidden;
text-overflow: ellipsis;
text-wrap: nowrap;
}
:deep(.ant-tree-node-selected) {
color: @primary-color !important;
}
// ns-view-list-table 搜索区域
:deep(.ns-table-search) {
.ns-flexv2-form {
.ns-operate {
text-align: left;
margin-left: 0;
.ant-btn {
margin: 0;
margin-right: 6px;
}
}
}
.ns-form-body {
max-width: 1650px;
}
}
// 区域阴影
// .ns-list-table {
:deep(.ant-tabs) {
// // overflow: visible;
// box-shadow: @ns-content-box-shadow;
// border-radius: @ns-border-radius;
.ns-table-search {
border-top-left-radius: 0px !important;
border-top-right-radius: 0px !important;
}
.ns-table-main {
border-bottom-left-radius: 0px !important;
border-bottom-right-radius: 0px !important;
}
// .ant-tabs-tabpane-active > div {
// height: 100%;
// }
}
// .ant-tabs .ns-table-main {
// border-bottom-left-radius: 0px !important;
// border-bottom-right-radius: 0px !important;
// }
// }
// 菜单icon(仅仅处理特殊需求未选中时icon与文字不同色)
:deep(.anticon) {
color: #8d96a3 !important;
}
:deep(.ant-menu-item-selected .ant-menu-item-only-child),
:deep(.ant-menu-submenu-selected .ant-menu-item-only-child),
:deep(.firstMenuItem-selected) {
.router-link-active > .anticon {
color: @white !important;
}
}
:deep(.ant-menu-item-active) {
.anticon {
color: @primary-color !important;
}
}
:deep(.ant-menu-submenu-active),
:deep(.ant-menu-submenu-open),
:deep(.ant-menu-item-selected) {
.ant-menu-submenu-title {
.anticon {
color: @primary-color !important;
}
}
}
@min-padding: 5px;
:deep(.ns-left-menu-space):not(.ns-left-menu-space-collapsed) {
.firstMenuItem-selected {
background-color: transparent !important;
}
.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected {
background-color: transparent;
&::before {
background-color: @primary-color;
opacity: 1;
height: calc(100% - @min-padding*2);
top: @min-padding;
border-radius: @ns-border-radius;
}
}
.ant-menu-item-active:not(.ant-menu-item-selected) {
background-color: transparent !important;
position: relative;
&::before {
content: '';
position: absolute;
width: 100%;
background-color: rgb(@primary-color, 0.1);
height: calc(100% - @min-padding*2);
top: @min-padding;
left: 0;
border-radius: @ns-border-radius;
z-index: 0;
}
}
// .ant-menu-inline .ant-menu-item-selected::after {
// content: '';
// position: absolute;
// top: 50%;
// right: -20px;
// transform: translateY(-50%);
// width: 3px !important;
// border-radius: 2px;
// background-color: red;
// height: 30px;
// z-index: 2;
// border: none;
// }
.ant-menu-title-content {
z-index: 1;
}
}
:deep(.nsHeader_action) {
.action {
font-size: 18px;
font-weight: bold;
letter-spacing: 0px;
line-height: 24px;
color: rgba(51, 51, 51, 1);
}
}
:deep(.ant-spin-nested-loading) {
min-height: 100%;
height: 100%;
}
:deep(.ant-spin-container) {
min-height: 100%;
height: 100%;
}
</style>

View File

@@ -0,0 +1,31 @@
const prefix = '/carbon-smart/api';
// 照明系统及相关接口
export enum lightingManage {
// 主页 ========================================================
// 获得分区与线路
getTree = prefix + '/illuminationCtrl/getCtrlPanelTree',
// 修改线路的可用/禁用状态
setDisable = '/carbon-smart/api/illuminationCtrl/changePanelStatus',
// 获得设备 - 小灯泡
getBulbs = prefix + '/illuminationCtrl/getDeviceState',
// 主页 > 抽屉 > 控制面板 =======================================
// 获取当前修改的内容对比数据
getChangeList = prefix + '/illuminationCtrl/getSceneChangeInfo',
// 提交当前修改
submitChangeList = prefix + '/illuminationCtrl/changeToSceneMode',
// 主页 > 抽屉 > 计划列表 =======================================
// 右侧表格修改数据提交
submitTableData = prefix + '/illuminationCtrl/refreshPlanStatus',
// 主页 > 抽屉 > 日志 ===========================================
// 获取日志
getLog = prefix + '/illuminationInfo/pageAbleLog',
// 获取日志详情
getLogDetail = prefix + '/illuminationInfo/fullLog',
}

View File

@@ -0,0 +1,29 @@
const prefix = '/carbon-smart/api';
// 空调系统及相关接口
export enum airConditionControl {
// 主页 ======================================================
// 主页分区结构
getTree = prefix + '/airConditioningCtrl/getCtrlPanelTree',
// 主页小灯泡
getDeviceList = prefix + '/airConditioningCtrl/getDeviceState',
// 主页 > 抽屉 > 控制面板 =======================================
// 获得修改的比对列表
getChangeList = prefix + '/airConditioningCtrl/getSceneChangeInfo',
// 提交修改结果
submitChangeList = prefix + '/airConditioningCtrl/changeToSceneMode',
// 主页 > 抽屉 > 计划列表 =======================================
// 右侧表格修改数据提交
submitTableData = prefix + '/airConditioningCtrl/refreshPlanStatus',
// 主页 > 抽屉 > 日志 ===========================================
// 获取日志
getLog = prefix + '/airConditioningInfo/pageAbleLog',
// 获取日志详情
getLogDetail = prefix + '/airConditioningInfo/fullLog',
}

View File

@@ -0,0 +1,7 @@
import { BASE_URL } from './index';
export enum airConditioningSystemApi {
getVentHostCtrlList = `${BASE_URL}/api/ventHostCtrl/getDeviceState`, // 查询新风主机最新状态
getAcBoxCtrlList = `${BASE_URL}/api/acBoxCtrl/getDeviceState`, // 查询空调箱最新状态
getTempSysCtrlList = `${BASE_URL}/api/tempSysCtrl/getFloorHeatingState`, // 查询地暖最新状态
}

View File

@@ -0,0 +1,10 @@
import { BASE_URL } from '../index';
export enum alarmOverviewApi {
getAlarmEquipment = `${BASE_URL}/api/AlarmOverview/alarmEquipment`, //设备告警 数量
getAlarmEnergyConsumption = `${BASE_URL}/api/AlarmOverview/alarmEnergyConsumption`, //能碳告警 数量
getAlarmGateway = `${BASE_URL}/api/AlarmOverview/alarmGateway`, //网关告警 数量
getPriority = `${BASE_URL}/api/AlarmOverview/priority`, //优先级 数量
getProcessProgress = `${BASE_URL}/api/AlarmOverview/processProgress`, //进度 数量
getAlarmTrend = `${BASE_URL}/api/AlarmOverview/alarmTrend`, //30天告警 数量
}

View File

@@ -0,0 +1,11 @@
import { BASE_URL } from '../../index';
export enum deviceAlarms {
getTableList = `${BASE_URL}/api/AlarmEquipment/selectAlarmEquipment`, //设备告警分页
addOrUpNewData = `${BASE_URL}/api/AlarmEquipment/creatOrUpdate`, //设备告警添加 修改
del = `${BASE_URL}/api/AlarmEquipment/delete`, //设备告警删除
configGetTableList = `${BASE_URL}/api/AlarmEquipmentRule/selectAlarmEquipmentRule`, //配置设备告警分页
configAddOrUpNewData = `${BASE_URL}/api/AlarmEquipmentRule/creatOrUpdate`, //配置设备告警添加 修改
configFindById = `${BASE_URL}/api/AlarmEquipmentRule/findById`, //配置设备告警 查询详情
configDel = `${BASE_URL}/api/AlarmEquipmentRule/delete`, //配置设备告警删除
}

View File

@@ -0,0 +1,11 @@
import { BASE_URL } from '../../index';
export enum energyAlarms {
getTableList = `${BASE_URL}/api/AlarmEnergyConsumption/selectAlarmEnergyConsumption`, //能耗告警分页
addOrUpNewData = `${BASE_URL}/api/AlarmEnergyConsumption/creatOrUpdate`, //能耗告警添加 修改
del = `${BASE_URL}/api/AlarmEnergyConsumption/delete`, //能耗删除
configGetTableList = `${BASE_URL}/api/AlarmEnergyConsumptionRule/selectAlarmEnergyConsumptionRule`, //配置设备告警分页
configAddOrUpNewData = `${BASE_URL}/api/AlarmEnergyConsumptionRule/creatOrUpdate`, //配置设备告警添加 修改
configFindById = `${BASE_URL}/api/AlarmEnergyConsumptionRule/findById`, //配置设备告警 查询详情
configDel = `${BASE_URL}/api/AlarmEnergyConsumptionRule/delete`, //配置设备告警删除
}

View File

@@ -0,0 +1,7 @@
import { BASE_URL } from '../../index';
export enum notificationManagementApi {
getTableList = `${BASE_URL}/api/AlarmContactInformation/selectAlarmContactInformation`, //通知管理分页
upData = `${BASE_URL}/api/AlarmContactInformation/update`, //通知管理 修改
findById = `${BASE_URL}/api/AlarmContactInformation/findById`, //通知管理 查询详情
}

View File

@@ -0,0 +1,9 @@
import { BASE_URL } from '../index';
export enum energyAlarmApi {
getTableList = `${BASE_URL}/api/AlarmEnergyConsumptionLog/selectAlarmEnergyConsumptionLog`, //能碳告警 列表
getCodeList = `${BASE_URL}/api/AlarmEnergyConsumptionLog/selectErrorCodeList `, //能碳告警 列表
getSelectAlarmEnergyConsumptionLogStatusProcess = `${BASE_URL}/api/AlarmEnergyConsumptionLogStatusProcess/selectAlarmEnergyConsumptionLogStatusProcess`, //能碳告警 状态 没有创建工单log接口
noCreatOrUpdateLog = `${BASE_URL}/api/AlarmEnergyConsumptionLogStatusProcess/creatOrUpdate`, //能碳告警 状态 没有创建工单 添加 修改状态log
getEnergyGraph = `${BASE_URL}/energy/trigger/getEnergyGraph`, //能碳告警 状态 echarts图
}

View File

@@ -0,0 +1,9 @@
import { BASE_URL } from '../index';
export enum equipmentAlarmApi {
getTableList = `${BASE_URL}/api/AlarmEquipmentLog/selectAlarmEquipmentLog`, //设备告警 列表
getCodeList = `${BASE_URL}/api/AlarmEquipmentLog/selectErrorCodeList`, //设备告警 列表
getSelectAlarmEquipmentLogStatusProcess = `${BASE_URL}/api/AlarmEquipmentLogStatusProcess/selectAlarmEquipmentLogStatusProcess`, //设备告警 状态 没有创建工单log接口
noCreatOrUpdateLog = `${BASE_URL}/api/AlarmEquipmentLogStatusProcess/creatOrUpdate`, //设备告警 状态 没有创建工单 添加 修改状态log
getDeviceGraph = `${BASE_URL}/equipment/trigger/getDeviceGraph`, //设备告警 echats图
}

View File

@@ -0,0 +1,4 @@
import { BASE_URL } from '../index';
export enum gatewayAlarmApi {
getTableList = `${BASE_URL}/api/AlarmGatewayLog/selectAlarmGatewayLog`, //网关告警 列表
}

View File

@@ -0,0 +1,113 @@
// 碳排因子库接口
export enum carbonEmissionFactorLibrary {
getTableList = '/carbon-smart/api/carbon/emission/factor/queryCarbonFactorPage',
creatOrUpdate = '/carbon-smart/api/carbon/emission/factor/creatOrUpdate',
del = '/carbon-smart/api/carbon/emission/factor/del',
getEmissionProcess = '/carbon-smart/api/carbon/emission/factor/getEmissionProcess',
findById = '/carbon-smart/api/carbon/emission/factor/findById',
getCarbonFactorTree = '/carbon-smart/api/carbon/emission/type/getCarbonFactorTree',
creat = '/carbon-smart/api/carbon/emission/type/creatOrUpdate',
delTreeNode = '/carbon-smart/api/carbon/emission/type/del',
move = '/carbon-smart/api/carbon/emission/type/move',
import = '/carbon-smart/api/carbon/emission/factor/import',
export = '/carbon-smart/api/carbon/emission/factor/export',
gasAndDatabase = '/carbon-smart/api/carbon/emission/factor/gasAndDatabase',
checkDel = '/carbon-smart/api/carbon/emission/factor/checkDel',
// 单位管理
dictionaryUnitManagement = '/carbon-smart/client/dict/dictionaryUnitManagement',
findOutermost = '/carbon-smart/client/dict/findOutermost',
createDictionary = '/carbon-smart/client/dict/createDictionary',
updateDictionary = '/carbon-smart/client/dict/updateDictionary',
delDictionary = '/carbon-smart/client/dict/delDictionary',
}
// 碳排管理-能耗统计接口
export enum energyConsumption {
getDicList = '/carbon-smart/client/dict/list',
pageList = '/carbon-smart/api/carbon/stats/pageList',
findById = '/carbon-smart/api/carbon/stats/findById',
creat = '/carbon-smart/api/carbon/stats/creat',
update = '/carbon-smart/api/carbon/stats/update',
del = '/carbon-smart/api/carbon/stats/del',
voucherDownloadList = '/carbon-smart/api/carbon/stats/voucherDownloadList',
energyAcquisition = '/carbon-smart/api/carbon/stats/energyAcquisition',
import = '/carbon-smart/api/carbon/stats/import',
export = '/carbon-smart/api/carbon/stats/export',
}
// 碳排管理-碳排速算接口
export enum quickCalculation {
carbonQuickTree = '/carbon-smart/api/carbon/energy/correlation/carbonQuickTree',
queryCarbonEmissionPage = '/carbon-smart/api/carbon/energy/correlation/queryCarbonEmissionPage',
creat = '/carbon-smart/api/carbon/energy/correlation/creat',
update = '/carbon-smart/api/carbon/energy/correlation/update',
del = '/carbon-smart/api/carbon/energy/correlation/del',
}
// 碳排管理-碳排统计接口
export enum carbonEmission {
carbonEmissionStatistics = '/carbon-smart/api/carbon/energy/correlation/carbonEmissionStatistics',
}
// 碳盘查接口
export enum carbonInventoryCheck {
carbonInventoryList = '/carbon-smart/api/carbon/report/carbonInventoryList',
createOrUpdate = '/carbon-smart/api/carbon/report/createOrUpdate',
findById = '/carbon-smart/api/carbon/report/findById',
delete = '/carbon-smart/api/carbon/report/delete',
downloadZip = '/carbon-smart/api/carbon/report/downloadZip',
// 填报页面接口
// 最左侧碳盘查报告树
getCategoryTree = '/carbon-smart/api/carbon/inventory/contact/getCategoryTree',
updateCategoryTree = '/carbon-smart/api/carbon/inventory/contact/update',
// 排放源中左侧树
getInventoryTree = '/carbon-smart/api/carbon/inventory/getInventoryTree',
create = '/carbon-smart/api/carbon/inventory/create',
update = '/carbon-smart/api/carbon/inventory/update',
del = '/carbon-smart/api/carbon/inventory/del',
// 获取排放源表格数据
findUnitById = '/carbon-smart/api/carbon/inventory/findById',
getDetailsList = '/carbon-smart/api/carbon/inventory/details/getDetailsList',
updateTable = '/carbon-smart/api/carbon/inventory/details/update',
voucherDownloadList = '/carbon-smart/api/carbon/inventory/details/voucherDownloadList',
nodeCancellationConsumption = '/carbon-smart/api/carbon/inventory/details/nodeCancellationConsumption',
// 排放统计接口
emissionStatistic = '/carbon-smart/api/carbon/inventory/emissionStatistic',
// 碳排流向
carbonFlowDirection = '/carbon-smart/api/carbon/inventory/carbonFlowDirection',
}
// 碳资产
export enum carbonAssets {
// 全部
carbonAssets = '/carbon-smart/api/carbon/trade/details/carbonAssets',
// 详情
carbonDetailsList = '/carbon-smart/api/carbon/trade/details/carbonDetailsList',
createOrUpdate = '/carbon-smart/api/carbon/trade/details/createOrUpdate',
delete = '/carbon-smart/api/carbon/trade/details/delete',
quotaStatistics = '/carbon-smart/api/carbon/trade/details/quotaStatistics',
import = '/carbon-smart/api/carbon/trade/details/import',
export = '/carbon-smart/api/carbon/trade/details/export',
}
// 上传图片接口
export enum uploadPic {
uploadfiles = '/carbon-smart/api/common/file/uploadfiles',
select = '/carbon-smart/api/common/file/select',
uploadfile = '/carbon-smart/api/common/file/uploadfile',
download = '/carbon-smart/api/common/file/download',
downloadZip = '/carbon-smart/api/common/file/downloadZip',
}
// 碳规划
export enum carbonPlanning {
// 全部
whole = '/carbon-smart/api/carbon/planning/whole',
// 详情
searchListByYear = '/carbon-smart/api/carbon/planning/searchListByYear',
searchListByMonth = '/carbon-smart/api/carbon/planning/searchListByMonth',
yearAndMonthAchievement = '/carbon-smart/api/carbon/planning/yearAndMonthAchievement',
annualElectricityConsumption = '/carbon-smart/api/carbon/planning/annualElectricityConsumption',
electricityUsageBackThen = '/carbon-smart/api/carbon/planning/electricityUsageBackThen',
detailedStatisticalDataTable = '/carbon-smart/api/carbon/planning/detailedStatisticalDataTable',
detailedStatisticalDataChart = '/carbon-smart/api/carbon/planning/detailedStatisticalDataChart',
batchOrUpdate = '/carbon-smart/api/carbon/planning/batchOrUpdate',
addNodes = '/carbon-smart/api/carbon/planning/addNodes',
benchmarkSetting = '/carbon-smart/api/carbon/planning/benchmarkSetting',
monthBenchmarkSetting = '/carbon-smart/api/carbon/planning/monthBenchmarkSetting',
benchmarkSubmit = '/carbon-smart/api/carbon/planning/benchmarkSubmit',
autoObtained = '/carbon-smart/api/carbon/planning/autoObtained',
}

View File

@@ -0,0 +1,10 @@
import { BASE_URL } from './index';
export enum coldAndHeatSourcesApi {
getUserWaterPumpState = `${BASE_URL}/api/tempSysCtrl/getUserWaterPumpState`, // 用户水泵查询最新状态
getLandWaterPumpState = `${BASE_URL}/api/tempSysCtrl/getLandWaterPumpState`, // 地源水泵查询最新状态
getLandHeatPumpState = `${BASE_URL}/api/tempSysCtrl/getLandHeatPumpState`, //螺旋式地源热泵 - 查询最新状态
getEnergyTankState = `${BASE_URL}/api/tempSysCtrl/getEnergyTankState`, //冷热水双蓄储能罐 - 查询最新状态
getCoolPumpState = `${BASE_URL}/api/tempSysCtrl/getCoolPumpState`, //释冷泵 - 查询最新状态
getAirHeatPumpState = `${BASE_URL}/api/tempSysCtrl/getAirHeatPumpState`, //空气源热泵 - 查询最新状态
}

View File

@@ -0,0 +1,39 @@
import { BASE_URL } from './index';
export enum device {
queryDeviceTree = `${BASE_URL}/deviceInfo/queryDeviceTree`, // 左侧树
queryDevicePage = `${BASE_URL}/deviceInfo/queryDevicePage`, // 列表
dropArea = `${BASE_URL}/deviceInfo/dropArea`, // 查询下拉区域
queryDevicePoint = `${BASE_URL}/deviceInfo/queryDevicePoint`, // 获取设备点位
}
export enum group {
queryDeviceGroupTree = `${BASE_URL}/deviceGroup/queryDeviceGroupTree`, // 左侧树
creatOrUpdate = `${BASE_URL}/deviceGroup/creatOrUpdate`, // 左侧树节点新增编辑
del = `${BASE_URL}/deviceGroup/del`,
move = `${BASE_URL}/deviceGroup/move`,
queryEditGroup = `${BASE_URL}/deviceGroup/queryEditGroup`, // 分组树
queryGroupPage = `${BASE_URL}/deviceGroup/queryGroupPage`, // 分组列表
saveGroupList = `${BASE_URL}/deviceGroup/saveGroupList`, // 分组保存
delGroupList = `${BASE_URL}/deviceGroup/delGroupList`, // 分组删除
queryGroupInfoPage = `${BASE_URL}/deviceGroup/queryGroupInfoPage`, // 计算列表
queryEditCompute = `${BASE_URL}/deviceGroup/queryEditCompute`, // 计算树
saveComputeList = `${BASE_URL}/deviceGroup/saveComputeList`, // 计算保存
delComputeList = `${BASE_URL}/deviceGroup/delComputeList`, // 计算删除
queryComputeGroup = `${BASE_URL}/deviceGroup/queryComputeGroup`, // 计算分组列表
saveComputeGroup = `${BASE_URL}/deviceGroup/saveComputeGroup`, // 计算分组新增
saveComputeGroupInfo = `${BASE_URL}/deviceGroup/saveComputeGroupInfo`, // 批量分组
delComputeGroup = `${BASE_URL}/deviceGroup/delComputeGroup`, // 分组删除
computeGroupNum = `${BASE_URL}/deviceGroup/computeGroupNum`, // 分组删除
formula = `${BASE_URL}/deviceGroup/formula`, // 编辑公式
queryFormula = `${BASE_URL}/deviceGroup/queryFormula`, // 公式查询
dropGroupFilter = `${BASE_URL}/deviceGroup/dropGroupFilter`, // 分组列表查询
dropGroupInfoFilter = `${BASE_URL}/deviceGroup/dropGroupInfoFilter`, // 计算列表查询
queryDeviceToEnergy = `${BASE_URL}/deviceGroup/queryDeviceToEnergy`, // 能耗监测用查询设备(能耗监测设备树)
importGroup = `${BASE_URL}/deviceGroup/importGroup`, // 批量导入计算节点
getCarbonGroupList = `${BASE_URL}/deviceGroup/carbonEmissions/getGroupList`, // 分组管理-碳排放-分组查询设备
deleteCarbonDevice = `${BASE_URL}/deviceGroup/carbonEmissions/deleteDevice`, // 分组管理-碳排放-删除设备
addCarbonDevice = `${BASE_URL}/deviceGroup/carbonEmissions/addDevice`, // 分组管理-碳排放-添加设备
updateCarbonFactor = `${BASE_URL}/deviceGroup/carbonEmissions/updateFactor`, // 分组管理-碳排放-设置因子
}

View File

@@ -0,0 +1,6 @@
export enum dict {
dictionaryUnitManagement = '/carbon-smart/client/dict/dictionaryUnitManagement',
updateDictionary = '/carbon-smart/client/dict/updateDictionary',
createDictionary = '/carbon-smart/client/dict/createDictionary',
delDictionary = '/carbon-smart/client/dict/delDictionary',
}

View File

@@ -0,0 +1,6 @@
import { BASE_URL } from './index';
export enum electricDoorApi {
getDeviceState = `${BASE_URL}/api/eleDoorCtrl/getDeviceState`, // 查询设备最新状态
getDeviceRecordList = `${BASE_URL}/api/eleDoorCtrl/getDeviceRecordList`, // 查询设备日志列表
}

View File

@@ -0,0 +1,72 @@
import { get } from 'lodash-es';
import { http } from '/nerv-lib/util/http';
/***
*配置接口 格式 module:Array<resource>
*/
export const apiModule = {
parking: ['User', 'CurrentUser', 'Organizational'],
};
export const BASE_URL = '/carbon-smart';
interface dictHttpConfig {
api?: string;
keyField?: string;
params: object;
transform?: Function;
}
/**
* 获取字典数据(首次获取,后续读缓存)
*/
export const dict = async ({
api = `${BASE_URL}/client/dict/listByKey`,
params = {},
keyField = 'dicKey',
transform = (res: any) => res,
}: dictHttpConfig) => {
const dictMap = JSON.parse(sessionStorage.getItem('dictMap') || '{}') as Object;
const key = get(params, keyField) as keyof typeof dictMap;
if (!dictMap.hasOwnProperty(key)) {
const res = await http.post(api, params);
const options = get(transform(res), `data.${key}`);
dictMap[key] = options;
sessionStorage.setItem('dictMap', JSON.stringify(dictMap));
}
return Promise.resolve({ data: { data: get(dictMap, key) } });
};
/**
* 获取所有枚举(参数为数组,可以不传参)
*/
export const getAllEnum = async ({
api = `${BASE_URL}/operation/enum/getAllEnum`,
params = {},
}: dictHttpConfig) => {
const res = await http.post(api, params);
return Promise.resolve(res);
};
/**
* 获取单个枚举(需传参,参数 enumType)
*/
export const getEnum = async ({
api = `${BASE_URL}/operation/enum/getEnum`,
params = {},
}: dictHttpConfig) => {
const res = await http.get(api, params);
return Promise.resolve(res);
};
/**
* 获取谈规划单位(需传参,参数 enumType)
*/
export const getEnumEnergy = async ({
api = `${BASE_URL}/operation/enum/getEnumEnergy`,
params = {},
}: dictHttpConfig) => {
const res = await http.get(api, params);
return Promise.resolve(res);
};

View File

@@ -0,0 +1,6 @@
import { BASE_URL } from './index';
export enum liftSystemApi {
getDeviceState = `${BASE_URL}/api/elevatorCtrl/getDeviceState`, // 查询设备最新状态
getDeviceRecordList = `${BASE_URL}/api/elevatorCtrl/getDeviceRecordList`, // 查询设备日志列表
}

View File

@@ -0,0 +1,4 @@
import { BASE_URL } from './index';
export enum menuS {
queryMenuPage = `${BASE_URL}/deviceInfo/queryDevicePage`, // 菜单列表
}

View File

@@ -0,0 +1,28 @@
// 设备监测
export enum deviceMonitor {
getDeviceGraph = '/carbon-smart/api/monitor/getDeviceGraph',
getDevicePointToMonitor = '/carbon-smart/api/monitor/getDevicePointToMonitor',
}
// 能耗监测
export enum energyMonitor {
getDeviceOrNodeEnergyGraph = '/carbon-smart/api/monitor/getDeviceOrNodeEnergyGraph',
getDeviceOrNodeEnergyAnalyse = '/carbon-smart/api/monitor/getDeviceOrNodeEnergyAnalyse',
}
// 环境监测
export enum environmentMonitor {
getDeviceStatus = '/carbon-smart/api/monitor/getDeviceStatus', //环境监测-获取设备状态
getDeviceAverages = '/carbon-smart/api/monitor/getDeviceAverages', //环境监测-获取设备平均值
queryDeviceArea = '/carbon-smart/deviceInfo/queryDeviceArea', //查询区域位置组成树结构
getDeviceHotMap = '/carbon-smart/api/monitor/getDeviceHotMap', //环境监测-获取环境热力图
getDeviceHistory = '/carbon-smart/api/monitor/getDeviceHistory', //环境监测-历史数据-获取环境设备历史数据
getDeviceAveragesByRate = '/carbon-smart/api/monitor/getDeviceAveragesByRate', //环境监测-平均数据-获取环境设备平均数据
queryDeviceInfoListPage = '/carbon-smart/api/monitor/queryDeviceInfoListPage', //环境监测-根据条件查询设备数据(分页) 配置监测点位
startUpDevice = '/carbon-smart/api/monitor/startUpDevice', // 环境监测-配置启动设备
stopDevice = '/carbon-smart/api/monitor/stopDevice', // 环境监测-停用设备
}

View File

@@ -0,0 +1,37 @@
import { BASE_URL } from './index';
export enum permission {
add = `${BASE_URL}/admin/permission/save`,
queryOrgPermission = `${BASE_URL}/api/dept/queryOrgPermission`,
queryRolePermission = `${BASE_URL}/api/dept/queryRolePermission`,
queryFilterDeptPermission = `${BASE_URL}/api/dept/queryFilterDeptPermission`,
queryDeptPermission = `${BASE_URL}/api/dept/queryDeptPermission`,
queryDeptPermissionFilter = `${BASE_URL}/api/dept/queryDeptPermissionFilter`,
queryRolePermissionFilter = `${BASE_URL}/api/dept/queryRolePermissionFilter`,
}
export enum origanizemanage {
userList = '/carbon-smart/api/user/queryUserByPage',
addUser = '/carbon-smart/api/user/save',
editUser = '/carbon-smart/api/user/edit',
frozen = '/carbon-smart/api/user/frozen',
resetPwd = '/carbon-smart/api/user/resetPwd',
del = '/carbon-smart/api/user/del',
batchDel = '/carbon-smart/api/user/batchDel',
queryOrgTree = '/carbon-smart/api/user/queryOrgTree',
queryDeptTree = '/carbon-smart/api/user/queryDeptTree',
queryUserPerList = '/carbon-smart/api/user/queryUserPerList',
}
export enum department {
queryDeptTree = `${BASE_URL}/api/dept/queryDeptTree`,
deptSave = `${BASE_URL}/api/dept/save`,
deptEdit = `${BASE_URL}/api/dept/edit`,
deptDel = `${BASE_URL}/api/dept/del`,
addPermission = `${BASE_URL}/api/dept/addPermission`,
addRolePermission = `${BASE_URL}/api/dept/addRolePermission`,
delRole = `${BASE_URL}/api/dept/delRole`,
addRole = `${BASE_URL}/api/dept/addRole`,
editRole = `${BASE_URL}/api/dept/editRole`,
queryRoleTree = `${BASE_URL}/api/dept/queryRoleTree`,
}

View File

@@ -0,0 +1,15 @@
const prefix = '/carbon-smart/api';
// 照明系统及相关接口
export enum planManage {
/**
* @param deviceType 设备类型(1照明,2空调,3排风扇,4风幕机,5电动窗,6给排水)
*/
// 获得未激活的计划
getTransData = prefix + '/deviceCtrlPlan/getDeActivatedPlanList',
// 获得激活的计划
getTableData = prefix + '/deviceCtrlPlan/getActivatedPlanList',
// 提交计划状态修改
submitTransData = prefix + '/deviceCtrlPlan/activePlanByIdList',
// 用于确认当前是否有计划正在运行
getRunningPlan = prefix + '/deviceCtrlPlan/getRunningPlan',
}

View File

@@ -0,0 +1,9 @@
import { BASE_URL } from './index';
export enum planToAddApi {
getActivatedPlanTree = `${BASE_URL}/api/deviceCtrlPlan/getPlanLibTree`, //计划树
getActivatedPlanListByTree = `${BASE_URL}/api/deviceCtrlPlan/getPageAblePlanListByTree`, //计划列表
updPlan = `${BASE_URL}/api/deviceCtrlPlan/updateCtrlPlan`, //修改计划
delPlan = `${BASE_URL}/api/deviceCtrlPlan/deleteCtrlPlanByIdList`, //修改计划
addPlan = `${BASE_URL}/api/deviceCtrlPlan/addCtrlPlan`, //添加计划
}

View File

@@ -8,13 +8,10 @@ enum Api {
USER_INFO = 'api/web/objs/CurrentUser', //获取用户信息 USER_INFO = 'api/web/objs/CurrentUser', //获取用户信息
USER_RESOURCE = '/api/community/objs/User/Resource', //获取用户资源 USER_RESOURCE = '/api/community/objs/User/Resource', //获取用户资源
} }
export const userLogin = (data: RoomListModel) => http.post(Api.USER_LOGIN, data); export const userLogin = (data) => http.post(Api.USER_LOGIN, data);
export const userInfo = () => http.get(Api.USER_INFO); export const userInfo = () => http.get(Api.USER_INFO);
export const userResource = () => http.get(Api.USER_RESOURCE); export const userResource = () => http.get(Api.USER_RESOURCE);
/** /**
* @description * @description
* @property `[fatherRegionUuid]` * @property `[fatherRegionUuid]`
*/ */
interface RoomListModel {
data: string;
}

View File

@@ -0,0 +1,54 @@
// 前缀
const prefix = '/carbon-smart/api';
// 通风系统相关接口
export enum ventilating {
//传感器获取数据
getSensorData = prefix + '/sensorCtrl/getMultiFuncSensorState',
// 排风扇相关 =============================================
// 获得排风扇系统的树形结构
getTree1 = prefix + '/ventilatingFanCtrl/getCtrlPanelTree',
// 获得排风扇的 场景/禁用 修改数据
getChangeList1 = prefix + '/ventilatingFanCtrl/getSceneChangeInfo',
// 提交排风扇的修改内容
sendChangeList1 = prefix + '/ventilatingFanCtrl/changeToSceneMode',
// 获得排风扇的设备状态
getDevice1 = prefix + '/ventilatingFanCtrl/getDeviceState',
// 提交排风扇的修改内容
submitTableData1 = prefix + '/ventilatingFanCtrl/refreshPlanStatus',
// 排风扇日志
getLog1 = prefix + '/ventilatingFanInfo/pageAbleLog',
// 排风扇日志详情
getLogDetail1 = prefix + '/ventilatingFanInfo/fullLog',
// 风幕机相关 =============================================
// 获得风幕机的树形结构
getTree2 = prefix + '/airCurtainMachineCtrl/getCtrlPanelTree',
// 获得风幕机的 场景/禁用 修改数据
getChangeList2 = prefix + '/airCurtainMachineCtrl/getSceneChangeInfo',
// 提交风幕机的修改内容
sendChangeList2 = prefix + '/airCurtainMachineCtrl/changeToSceneMode',
// 获得风幕机的设备状态
getDevice2 = prefix + '/airCurtainMachineCtrl/getDeviceState',
// 提交风幕机的修改内容
submitTableData2 = prefix + '/airCurtainMachineCtrl/refreshPlanStatus',
// 风幕机日志
getLog2 = prefix + '/airCurtainMachineInfo/pageAbleLog',
// 风幕机日志详情
getLogDetail2 = prefix + '/airCurtainMachineInfo/fullLog',
// 电动窗相关 =============================================
// 获得电动窗的树形结构
getTree3 = prefix + '/eleOperatedWindowCtrl/getCtrlPanelTree',
// 获得电动窗的 场景/禁用 修改数据
getChangeList3 = prefix + '/eleOperatedWindowCtrl/getSceneChangeInfo',
// 提交电动窗的修改内容
sendChangeList3 = prefix + '/eleOperatedWindowCtrl/changeToSceneMode',
// 获得电动窗的设备状态
getDevice3 = prefix + '/eleOperatedWindowCtrl/getDeviceState',
// 提交电动窗的修改内容
submitTableData3 = prefix + '/eleOperatedWindowCtrl/refreshPlanStatus',
// 电动窗日志
getLog3 = prefix + '/eleOperatedWindowInfo/pageAbleLog',
// 电动窗日志详情
getLogDetail3 = prefix + '/eleOperatedWindowInfo/fullLog',
}

View File

@@ -0,0 +1,26 @@
// 前缀
const prefix = '/carbon-smart/api';
// 通风系统相关接口
export enum waterSys {
// 首页 ====================================================
// 获得污水池状态
getPool1 = prefix + '/waterSysCtrl/getSewagePoolState',
// 获得阀门状态
getValve = prefix + '/waterSysCtrl/getValveState',
// 获得集水池状态
getPool2 = prefix + '/waterSysCtrl/getCollectPoolState',
// 获得水泵状态
getPump = prefix + '/waterSysCtrl/getPumpState',
// 提交场景模式修改
submitList = prefix + '/waterSysCtrl/changeToSceneMode',
// 计划 tab1 ===============================================
submitTableData = prefix + '/waterSysCtrl/refreshPlanStatus',
// 日志 tab2 ===============================================
// 获得设备日志
getLog = prefix + '/waterSysInfo/pageAbleLog',
// 获得日志详情
getLogDetail = prefix + '/waterSysInfo/fullLog',
}

View File

@@ -0,0 +1,6 @@
import { withInstall } from '/@/utils';
import basicDrawer from './src/BasicDrawer.vue';
export const BasicDrawer = withInstall(basicDrawer);
export * from './src/typing';
export { useDrawer, useDrawerInner } from './src/useDrawer';

View File

@@ -0,0 +1,255 @@
<template>
<Drawer :class="prefixCls" @close="onClose" v-bind="getBindValues">
<template #title v-if="!$slots.title">
<DrawerHeader :title="getMergeProps.title" :isDetail="isDetail" :showDetailBack="showDetailBack" @close="onClose">
<template #titleToolbar>
<slot name="titleToolbar"></slot>
</template>
</DrawerHeader>
</template>
<template v-else #title>
<slot name="title"></slot>
</template>
<ScrollContainer :style="getScrollContentStyle" v-loading="getLoading" :loading-tip="loadingText || t('common.loadingText')">
<slot></slot>
</ScrollContainer>
<DrawerFooter v-bind="getProps" @close="onClose" @ok="handleOk" :height="getFooterHeight">
<template #[item]="data" v-for="item in Object.keys($slots)">
<slot :name="item" v-bind="data || {}"></slot>
</template>
</DrawerFooter>
</Drawer>
</template>
<script lang="ts">
import type { DrawerInstance, DrawerProps } from './typing';
import type { CSSProperties } from 'vue';
import { defineComponent, ref, computed, watch, unref, nextTick, toRaw, getCurrentInstance } from 'vue';
import { Drawer } from 'ant-design-vue';
import { useI18n } from '/@/hooks/web/useI18n';
import { isFunction, isNumber } from '/@/utils/is';
import { deepMerge } from '/@/utils';
import DrawerFooter from './components/DrawerFooter.vue';
import DrawerHeader from './components/DrawerHeader.vue';
import { ScrollContainer } from '/@/components/Container';
import { basicProps } from './props';
import { useDesign } from '/@/hooks/web/useDesign';
import { useAttrs } from '/@/hooks/core/useAttrs';
import { cloneDeep } from 'lodash-es';
export default defineComponent({
components: { Drawer, ScrollContainer, DrawerFooter, DrawerHeader },
inheritAttrs: false,
props: basicProps,
emits: ['visible-change', 'open-change', 'ok', 'close', 'register'],
setup(props, { emit }) {
const visibleRef = ref(false);
const attrs = useAttrs();
const propsRef = ref<Partial<Nullable<DrawerProps>>>(null);
const { t } = useI18n();
const { prefixVar, prefixCls } = useDesign('basic-drawer');
const drawerInstance: DrawerInstance = {
setDrawerProps: setDrawerProps,
emitVisible: undefined,
};
const instance = getCurrentInstance();
instance && emit('register', drawerInstance, instance.uid);
const getMergeProps = computed((): DrawerProps => {
// update-begin--author:liaozhiyang---date:20240320---for【QQYUN-8389】vue3.4以上版本导致角色抽屉隐藏footer逻辑错误toRaw改成cloneDeep否则props的变化不会触发computed
return { ...deepMerge(cloneDeep(props), unref(propsRef)) };
// update-end--author:liaozhiyang---date:20240320---for【QQYUN-8389】vue3.4以上版本导致角色抽屉隐藏footer逻辑错误toRaw改成cloneDeep否则props的变化不会触发computed
});
const getProps = computed((): DrawerProps => {
// update-begin--author:liaozhiyang---date:20231218---for【QQYUN-6366】升级到antd4.x
const opt = {
placement: 'right',
...unref(attrs),
...unref(getMergeProps),
open: unref(visibleRef),
};
// update-end--author:liaozhiyang---date:20231218---for【QQYUN-6366】升级到antd4.x
opt.title = undefined;
let { isDetail, width, wrapClassName, getContainer } = opt;
if (isDetail) {
if (!width) {
opt.width = '100%';
}
const detailCls = `${prefixCls}__detail`;
wrapClassName = opt['class'] ? opt['class'] : wrapClassName;
opt.class = wrapClassName ? `${wrapClassName} ${detailCls}` : detailCls;
if (!getContainer) {
// TODO type error?
opt.getContainer = `.${prefixVar}-layout-content` as any;
}
}
console.log('getProps:opt',opt);
return opt as DrawerProps;
});
const getBindValues = computed((): DrawerProps => {
return {
...attrs,
...unref(getProps),
};
});
// Custom implementation of the bottom button,
const getFooterHeight = computed(() => {
const { footerHeight, showFooter } = unref(getProps);
if (showFooter && footerHeight) {
return isNumber(footerHeight) ? `${footerHeight}px` : `${footerHeight.replace('px', '')}px`;
}
return `0px`;
});
const getScrollContentStyle = computed((): CSSProperties => {
const footerHeight = unref(getFooterHeight);
return {
position: 'relative',
height: `calc(100% - ${footerHeight})`,
};
});
const getLoading = computed(() => {
return !!unref(getProps)?.loading;
});
watch(
() => props.visible,
(newVal, oldVal) => {
if (newVal !== oldVal) visibleRef.value = newVal;
},
{ deep: true }
);
watch(
() => props.open,
(newVal, oldVal) => {
if (newVal !== oldVal) visibleRef.value = newVal;
},
{ deep: true }
);
watch(
() => visibleRef.value,
(visible) => {
nextTick(() => {
emit('visible-change', visible);
emit('open-change', visible);
instance && drawerInstance.emitVisible?.(visible, instance.uid);
});
}
);
// Cancel event
async function onClose(e: Recordable) {
const { closeFunc } = unref(getProps);
emit('close', e);
if (closeFunc && isFunction(closeFunc)) {
const res = await closeFunc();
visibleRef.value = !res;
return;
}
visibleRef.value = false;
}
function setDrawerProps(props: Partial<DrawerProps>): void {
// Keep the last setDrawerProps
propsRef.value = deepMerge(unref(propsRef) || ({} as any), props);
if (Reflect.has(props, 'visible')) {
visibleRef.value = !!props.visible;
}
if (Reflect.has(props, 'open')) {
visibleRef.value = !!props.open;
}
}
function handleOk() {
emit('ok');
}
return {
onClose,
t,
prefixCls,
getMergeProps: getMergeProps as any,
getScrollContentStyle,
getProps: getProps as any,
getLoading,
getBindValues,
getFooterHeight,
handleOk,
};
},
});
</script>
<style lang="less">
@header-height: 60px;
@detail-header-height: 40px;
@prefix-cls: ~'@{namespace}-basic-drawer';
@prefix-cls-detail: ~'@{namespace}-basic-drawer__detail';
.@{prefix-cls} {
.ant-drawer-wrapper-body {
overflow: hidden;
}
.ant-drawer-close {
&:hover {
color: @error-color;
}
}
.ant-drawer-body {
height: calc(100% - @header-height);
padding: 0;
background-color: @component-background;
.scrollbar__wrap {
padding: 16px !important;
margin-bottom: 0 !important;
}
> .scrollbar > .scrollbar__bar.is-horizontal {
display: none;
}
}
}
.@{prefix-cls-detail} {
position: absolute;
.ant-drawer-header {
width: 100%;
height: @detail-header-height;
padding: 0;
border-top: 1px solid @border-color-base;
box-sizing: border-box;
}
.ant-drawer-title {
height: 100%;
}
.ant-drawer-close {
height: @detail-header-height;
line-height: @detail-header-height;
}
.scrollbar__wrap {
padding: 0 !important;
}
.ant-drawer-body {
height: calc(100% - @detail-header-height);
}
}
</style>

View File

@@ -0,0 +1,75 @@
<template>
<div :class="prefixCls" :style="getStyle" v-if="showFooter || $slots.footer">
<template v-if="!$slots.footer">
<slot name="insertFooter"></slot>
<a-button v-bind="cancelButtonProps" @click="handleClose" class="mr-2" v-if="showCancelBtn">
{{ cancelText }}
</a-button>
<slot name="centerFooter"></slot>
<a-button :type="okType" @click="handleOk" v-bind="okButtonProps" class="mr-2" :loading="confirmLoading" v-if="showOkBtn">
{{ okText }}
</a-button>
<slot name="appendFooter"></slot>
</template>
<template v-else>
<slot name="footer"></slot>
</template>
</div>
</template>
<script lang="ts">
import type { CSSProperties } from 'vue';
import { defineComponent, computed } from 'vue';
import { useDesign } from '/@/hooks/web/useDesign';
import { footerProps } from '../props';
export default defineComponent({
name: 'BasicDrawerFooter',
props: {
...footerProps,
height: {
type: String,
default: '60px',
},
},
emits: ['ok', 'close'],
setup(props, { emit }) {
const { prefixCls } = useDesign('basic-drawer-footer');
const getStyle = computed((): CSSProperties => {
const heightStr = `${props.height}`;
return {
height: heightStr,
lineHeight: heightStr,
};
});
function handleOk() {
emit('ok');
}
function handleClose() {
emit('close');
}
return { handleOk, prefixCls, handleClose, getStyle };
},
});
</script>
<style lang="less">
@prefix-cls: ~'@{namespace}-basic-drawer-footer';
@footer-height: 60px;
.@{prefix-cls} {
position: absolute;
bottom: 0;
width: 100%;
padding: 0 12px 0 20px;
text-align: right;
background-color: @component-background;
border-top: 1px solid @border-color-base;
> * {
margin-right: 8px;
}
}
</style>

View File

@@ -0,0 +1,74 @@
<template>
<BasicTitle v-if="!isDetail" :class="[prefixCls, 'is-drawer']">
<slot name="title"></slot>
{{ !$slots.title ? title : '' }}
</BasicTitle>
<div :class="[prefixCls, `${prefixCls}--detail`]" v-else>
<span :class="`${prefixCls}__twrap`">
<span @click="handleClose" v-if="showDetailBack">
<ArrowLeftOutlined :class="`${prefixCls}__back`" />
</span>
<span v-if="title">{{ title }}</span>
</span>
<span :class="`${prefixCls}__toolbar`">
<slot name="titleToolbar"></slot>
</span>
</div>
</template>
<script lang="ts">
import { defineComponent } from 'vue';
import { BasicTitle } from '/@/components/Basic';
import { ArrowLeftOutlined } from '@ant-design/icons-vue';
import { useDesign } from '/@/hooks/web/useDesign';
import { propTypes } from '/@/utils/propTypes';
export default defineComponent({
name: 'BasicDrawerHeader',
components: { BasicTitle, ArrowLeftOutlined },
props: {
isDetail: propTypes.bool,
showDetailBack: propTypes.bool,
title: propTypes.string,
},
emits: ['close'],
setup(_, { emit }) {
const { prefixCls } = useDesign('basic-drawer-header');
function handleClose() {
emit('close');
}
return { prefixCls, handleClose };
},
});
</script>
<style lang="less">
@prefix-cls: ~'@{namespace}-basic-drawer-header';
@footer-height: 60px;
.@{prefix-cls} {
display: flex;
height: 100%;
align-items: center;
&__back {
padding: 0 12px;
cursor: pointer;
&:hover {
color: @primary-color;
}
}
&__twrap {
flex: 1;
}
&__toolbar {
padding-right: 50px;
}
}
</style>

View File

@@ -0,0 +1,46 @@
import type { PropType } from 'vue';
import { useI18n } from '/@/hooks/web/useI18n';
const { t } = useI18n();
export const footerProps = {
confirmLoading: { type: Boolean },
/**
* @description: Show close button
*/
showCancelBtn: { type: Boolean, default: true },
cancelButtonProps: Object as PropType<Recordable>,
cancelText: { type: String, default: t('common.cancelText') },
/**
* @description: Show confirmation button
*/
showOkBtn: { type: Boolean, default: true },
okButtonProps: Object as PropType<Recordable>,
okText: { type: String, default: t('common.okText') },
okType: { type: String, default: 'primary' },
showFooter: { type: Boolean },
footerHeight: {
type: [String, Number] as PropType<string | number>,
default: 60,
},
};
export const basicProps = {
class: {type: [String, Object, Array]},
isDetail: { type: Boolean },
title: { type: String, default: '' },
loadingText: { type: String },
showDetailBack: { type: Boolean, default: true },
visible: { type: Boolean },
open: { type: Boolean },
loading: { type: Boolean },
maskClosable: { type: Boolean, default: true },
getContainer: {
type: [Object, String] as PropType<any>,
},
closeFunc: {
type: [Function, Object] as PropType<any>,
default: null,
},
destroyOnClose: { type: Boolean },
...footerProps,
};

View File

@@ -0,0 +1,199 @@
import type { ButtonProps } from 'ant-design-vue/lib/button/buttonTypes';
import type { CSSProperties, VNodeChild, ComputedRef } from 'vue';
import type { ScrollContainerOptions } from '/@/components/Container/index';
export interface DrawerInstance {
setDrawerProps: (props: Partial<DrawerProps> | boolean) => void;
emitVisible?: (visible: boolean, uid: number) => void;
}
export interface ReturnMethods extends DrawerInstance {
openDrawer: <T = any>(visible?: boolean, data?: T, openOnSet?: boolean) => void;
closeDrawer: () => void;
getVisible?: ComputedRef<boolean>;
getOpen?: ComputedRef<boolean>;
}
export type RegisterFn = (drawerInstance: DrawerInstance, uuid?: string) => void;
export interface ReturnInnerMethods extends DrawerInstance {
closeDrawer: () => void;
changeLoading: (loading: boolean) => void;
changeOkLoading: (loading: boolean) => void;
getVisible?: ComputedRef<boolean>;
getOpen?: ComputedRef<boolean>;
}
export type UseDrawerReturnType = [RegisterFn, ReturnMethods];
export type UseDrawerInnerReturnType = [RegisterFn, ReturnInnerMethods];
export interface DrawerFooterProps {
showOkBtn: boolean;
showCancelBtn: boolean;
/**
* Text of the Cancel button
* @default 'cancel'
* @type string
*/
cancelText: string;
/**
* Text of the OK button
* @default 'OK'
* @type string
*/
okText: string;
/**
* Button type of the OK button
* @default 'primary'
* @type string
*/
okType: 'primary' | 'danger' | 'dashed' | 'ghost' | 'default';
/**
* The ok button props, follow jsx rules
* @type object
*/
okButtonProps: { props: ButtonProps; on: {} };
/**
* The cancel button props, follow jsx rules
* @type object
*/
cancelButtonProps: { props: ButtonProps; on: {} };
/**
* Whether to apply loading visual effect for OK button or not
* @default false
* @type boolean
*/
confirmLoading: boolean;
showFooter: boolean;
footerHeight: string | number;
}
export interface DrawerProps extends DrawerFooterProps {
isDetail?: boolean;
loading?: boolean;
showDetailBack?: boolean;
visible?: boolean;
open?: boolean;
/**
* Built-in ScrollContainer component configuration
* @type ScrollContainerOptions
*/
scrollOptions?: ScrollContainerOptions;
closeFunc?: () => Promise<any>;
triggerWindowResize?: boolean;
/**
* Whether a close (x) button is visible on top right of the Drawer dialog or not.
* @default true
* @type boolean
*/
closable?: boolean;
/**
* Whether to unmount child components on closing drawer or not.
* @default false
* @type boolean
*/
destroyOnClose?: boolean;
/**
* Return the mounted node for Drawer.
* @default 'body'
* @type any ( HTMLElement| () => HTMLElement | string)
*/
getContainer?: () => HTMLElement | string;
/**
* Whether to show mask or not.
* @default true
* @type boolean
*/
mask?: boolean;
/**
* Clicking on the mask (area outside the Drawer) to close the Drawer or not.
* @default true
* @type boolean
*/
maskClosable?: boolean;
/**
* Style for Drawer's mask element.
* @default {}
* @type object
*/
maskStyle?: CSSProperties;
/**
* The title for Drawer.
* @type any (string | slot)
*/
title?: VNodeChild | JSX.Element;
/**
* The class name of the container of the Drawer dialog.
* @type string
*/
class?: string;
// 兼容老版本的写法后续可能会删除优先写class
wrapClassName?: string;
/**
* Style of wrapper element which **contains mask** compare to `drawerStyle`
* @type object
*/
wrapStyle?: CSSProperties;
/**
* Style of the popup layer element
* @type object
*/
drawerStyle?: CSSProperties;
/**
* Style of floating layer, typically used for adjusting its position.
* @type object
*/
bodyStyle?: CSSProperties;
headerStyle?: CSSProperties;
/**
* Width of the Drawer dialog.
* @default 256
* @type string | number
*/
width?: string | number;
/**
* placement is top or bottom, height of the Drawer dialog.
* @type string | number
*/
height?: string | number;
/**
* The z-index of the Drawer.
* @default 1000
* @type number
*/
zIndex?: number;
/**
* The placement of the Drawer.
* @default 'right'
* @type string
*/
placement?: 'top' | 'right' | 'bottom' | 'left';
afterVisibleChange?: (visible?: boolean) => void;
keyboard?: boolean;
/**
* Specify a callback that will be called when a user clicks mask, close button or Cancel button.
*/
onClose?: (e?: Event) => void;
}
export interface DrawerActionType {
scrollBottom: () => void;
scrollTo: (to: number) => void;
getScrollWrap: () => Element | null;
}

View File

@@ -0,0 +1,156 @@
import type { UseDrawerReturnType, DrawerInstance, ReturnMethods, DrawerProps, UseDrawerInnerReturnType } from './typing';
import { ref, getCurrentInstance, unref, reactive, watchEffect, nextTick, toRaw, computed } from 'vue';
import { isProdMode } from '/@/utils/env';
import { isFunction } from '/@/utils/is';
import { tryOnUnmounted } from '@vueuse/core';
import { isEqual } from 'lodash-es';
import { error } from '/@/utils/log';
const dataTransferRef = reactive<any>({});
const visibleData = reactive<{ [key: number]: boolean }>({});
/**
* @description: Applicable to separate drawer and call outside
*/
export function useDrawer(): UseDrawerReturnType {
if (!getCurrentInstance()) {
throw new Error('useDrawer() can only be used inside setup() or functional components!');
}
const drawer = ref<DrawerInstance | null>(null);
const loaded = ref<Nullable<boolean>>(false);
const uid = ref<string>('');
function register(drawerInstance: DrawerInstance, uuid: string) {
isProdMode() &&
tryOnUnmounted(() => {
drawer.value = null;
loaded.value = null;
dataTransferRef[unref(uid)] = null;
});
if (unref(loaded) && isProdMode() && drawerInstance === unref(drawer)) {
return;
}
uid.value = uuid;
drawer.value = drawerInstance;
loaded.value = true;
drawerInstance.emitVisible = (visible: boolean, uid: number) => {
visibleData[uid] = visible;
};
}
const getInstance = () => {
const instance = unref(drawer);
if (!instance) {
error('useDrawer instance is undefined!');
}
return instance;
};
const methods: ReturnMethods = {
setDrawerProps: (props: Partial<DrawerProps>): void => {
getInstance()?.setDrawerProps(props);
},
getVisible: computed((): boolean => {
return visibleData[~~unref(uid)];
}),
getOpen: computed((): boolean => {
return visibleData[~~unref(uid)];
}),
openDrawer: <T = any>(visible = true, data?: T, openOnSet = true): void => {
// update-begin--author:liaozhiyang---date:20231218---for【QQYUN-6366】升级到antd4.x
getInstance()?.setDrawerProps({
open: visible,
});
// update-end--author:liaozhiyang---date:20231218---for【QQYUN-6366】升级到antd4.x
if (!data) return;
if (openOnSet) {
dataTransferRef[unref(uid)] = null;
dataTransferRef[unref(uid)] = toRaw(data);
return;
}
const equal = isEqual(toRaw(dataTransferRef[unref(uid)]), toRaw(data));
if (!equal) {
dataTransferRef[unref(uid)] = toRaw(data);
}
},
closeDrawer: () => {
// update-begin--author:liaozhiyang---date:20231218---for【QQYUN-6366】升级到antd4.x
getInstance()?.setDrawerProps({ open: false });
// update-end--author:liaozhiyang---date:20231218---for【QQYUN-6366】升级到antd4.x
},
};
return [register, methods];
}
export const useDrawerInner = (callbackFn?: Fn): UseDrawerInnerReturnType => {
const drawerInstanceRef = ref<Nullable<DrawerInstance>>(null);
const currentInstance = getCurrentInstance();
const uidRef = ref<string>('');
if (!getCurrentInstance()) {
throw new Error('useDrawerInner() can only be used inside setup() or functional components!');
}
const getInstance = () => {
const instance = unref(drawerInstanceRef);
if (!instance) {
error('useDrawerInner instance is undefined!');
return;
}
return instance;
};
const register = (modalInstance: DrawerInstance, uuid: string) => {
isProdMode() &&
tryOnUnmounted(() => {
drawerInstanceRef.value = null;
});
uidRef.value = uuid;
drawerInstanceRef.value = modalInstance;
currentInstance?.emit('register', modalInstance, uuid);
};
watchEffect(() => {
const data = dataTransferRef[unref(uidRef)];
if (!data) return;
if (!callbackFn || !isFunction(callbackFn)) return;
nextTick(() => {
callbackFn(data);
});
});
return [
register,
{
changeLoading: (loading = true) => {
getInstance()?.setDrawerProps({ loading });
},
changeOkLoading: (loading = true) => {
getInstance()?.setDrawerProps({ confirmLoading: loading });
},
getVisible: computed((): boolean => {
return visibleData[~~unref(uidRef)];
}),
getOpen: computed((): boolean => {
return visibleData[~~unref(uidRef)];
}),
closeDrawer: () => {
getInstance()?.setDrawerProps({ open: false });
},
setDrawerProps: (props: Partial<DrawerProps>) => {
getInstance()?.setDrawerProps(props);
},
},
];
};

View File

@@ -0,0 +1,10 @@
export { default as BasicTable } from './src/BasicTable.vue';
export { default as TableAction } from './src/components/TableAction.vue';
export { default as EditTableHeaderIcon } from './src/components/EditTableHeaderIcon.vue';
// export { default as TableImg } from './src/components/TableImg.vue';
export * from './src/types/table';
// export * from './src/types/pagination';
// export * from './src/types/tableAction';
// export { useTable } from './src/hooks/useTable';
// export type { FormSchema, FormProps } from '/@/components/Form/src/types/form';
// export type { EditRecordRow } from './src/components/editable';

View File

@@ -0,0 +1,605 @@
<template>
<div ref="wrapRef" :class="getWrapperClass">
<!-- <BasicForm
:class="{ 'table-search-area-hidden': !getBindValues.formConfig?.schemas?.length }"
submitOnReset
v-bind="getFormProps"
v-if="getBindValues.useSearchForm"
:tableAction="tableAction"
@register="registerForm"
@submit="handleSearchInfoChange"
@advanced-change="redoHeight"
>
<template #[replaceFormSlotKey(item)]="data" v-for="item in getFormSlotKeys">
<slot :name="item" v-bind="data || {}"></slot>
</template>
</BasicForm> -->
<!-- antd v3 升级兼容阻止数据的收集防止控制台报错 -->
<!-- https://antdv.com/docs/vue/migration-v3-cn -->
<a-form-item-rest>
<!-- TV360X-377关联记录必填影响到了table的输入框和页码样式 -->
<a-form-item>
<Table ref="tableElRef" v-bind="getBindValues" :rowClassName="getRowClassName" v-show="getEmptyDataIsShowTable" @resizeColumn="handleResizeColumn" @change="handleTableChange">
<!-- antd的原生插槽直接传递 -->
<template #[item]="data" v-for="item in slotNamesGroup.native" :key="item">
<!-- update-begin--author:liaozhiyang---date:20240424---forissues/1146BasicTable使用headerCell全选框出不来 -->
<template v-if="item === 'headerCell'">
<CustomSelectHeader v-if="isCustomSelection(data.column)" v-bind="selectHeaderProps" />
<slot v-else :name="item" v-bind="data || {}"></slot>
</template>
<slot v-else :name="item" v-bind="data || {}"></slot>
<!-- update-begin--author:liaozhiyang---date:20240424---forissues/1146BasicTable使用headerCell全选框出不来 -->
</template>
<template #headerCell="{ column }">
<!-- update-begin--author:sunjianlei---date:220230630---forQQYUN-5571自封装选择列解决数据行选择卡顿问题 -->
<CustomSelectHeader v-if="isCustomSelection(column)" v-bind="selectHeaderProps"/>
<HeaderCell v-else :column="column" />
<!-- update-end--author:sunjianlei---date:220230630---forQQYUN-5571自封装选择列解决数据行选择卡顿问题 -->
</template>
<!-- 增加对antdv3.x兼容 -->
<template #bodyCell="data">
<!-- update-begin--author:liaozhiyang---date:220230717---forissues-179antd3 一些警告以及报错(针对表格) -->
<!-- update-begin--author:liusq---date:20230921---forissues/770slotsBak异常报错的问题,增加判断column是否存在 -->
<template v-if="data.column?.slotsBak?.customRender">
<!-- update-end--author:liusq---date:20230921---forissues/770slotsBak异常报错的问题,增加判断column是否存在 -->
<slot :name="data.column.slotsBak.customRender" v-bind="data || {}"></slot>
</template>
<template v-else>
<slot name="bodyCell" v-bind="data || {}"></slot>
</template>
<!-- update-begin--author:liaozhiyang---date:22030717---forissues-179antd3 一些警告以及报错(针对表格) -->
</template>
<!-- update-begin--author:liaozhiyang---date:20240425---forpull/1201添加antd的TableSummary功能兼容老的summary表尾合计 -->
<template v-if="showSummaryRef && !getBindValues.showSummary" #summary="data">
<slot name="summary" v-bind="data || {}">
<TableSummary :data="data || {}" v-bind="getSummaryProps" />
</slot>
</template>
<!-- update-end--author:liaozhiyang---date:20240425---forpull/1201添加antd的TableSummary功能兼容老的summary表尾合计 -->
</Table>
</a-form-item>
</a-form-item-rest>
</div>
</template>
<script lang="ts">
import type { BasicTableProps, TableActionType, SizeType, ColumnChangeParam, BasicColumn } from './types/table';
import { defineComponent, ref, computed, unref, toRaw, inject, watchEffect, watch, onUnmounted, onMounted, nextTick } from 'vue';
import { Table } from 'ant-design-vue';
// import { BasicForm, useForm } from '/@/components/Form/index';
// import { PageWrapperFixedHeightKey } from '/@/components/Page/injectionKey';
import CustomSelectHeader from './components/CustomSelectHeader.vue'
import expandIcon from './components/ExpandIcon';
// import HeaderCell from './components/HeaderCell.vue';
import TableSummary from './components/TableSummary';
import { InnerHandlers } from './types/table';
import { usePagination } from './hooks/usePagination';
import { useColumns } from './hooks/useColumns';
import { useDataSource } from './hooks/useDataSource';
import { useLoading } from './hooks/useLoading';
import { useRowSelection } from './hooks/useRowSelection';
import { useTableScroll } from './hooks/useTableScroll';
import { useCustomRow } from './hooks/useCustomRow';
import { useTableStyle } from './hooks/useTableStyle';
import { useTableHeader } from './hooks/useTableHeader';
import { useTableExpand } from './hooks/useTableExpand';
import { createTableContext } from './hooks/useTableContext';
import { useTableFooter } from './hooks/useTableFooter';
import { useTableForm } from './hooks/useTableForm';
// import { useDesign } from '/@/hooks/web/useDesign';
import { useCustomSelection } from "./hooks/useCustomSelection";
import { omit, pick } from 'lodash-es';
import { basicProps } from './props';
// import { isFunction } from '/@/utils/is';
// import { warn } from '/@/utils/log';
export default defineComponent({
components: {
Table,
// BasicForm,
HeaderCell,
TableSummary,
CustomSelectHeader,
},
props: basicProps,
emits: [
'fetch-success',
'fetch-error',
'selection-change',
'register',
'row-click',
'row-dbClick',
'row-contextmenu',
'row-mouseenter',
'row-mouseleave',
'edit-end',
'edit-cancel',
'edit-row-end',
'edit-change',
'expanded-rows-change',
'change',
'columns-change',
'table-redo',
],
setup(props, { attrs, emit, slots, expose }) {
const tableElRef = ref(null);
const tableData = ref<Recordable[]>([]);
const wrapRef = ref(null);
const innerPropsRef = ref<Partial<BasicTableProps>>();
const { prefixCls } = useDesign('basic-table');
const [registerForm, formActions] = useForm();
const getProps = computed(() => {
return { ...props, ...unref(innerPropsRef) } as BasicTableProps;
});
const isFixedHeightPage = inject(PageWrapperFixedHeightKey, false);
watchEffect(() => {
unref(isFixedHeightPage) &&
props.canResize &&
warn("'canResize' of BasicTable may not work in PageWrapper with 'fixedHeight' (especially in hot updates)");
});
const { getLoading, setLoading } = useLoading(getProps);
const { getPaginationInfo, getPagination, setPagination, setShowPagination, getShowPagination } = usePagination(getProps);
// update-begin--author:sunjianlei---date:220230630---for【QQYUN-5571】自封装选择列解决数据行选择卡顿问题
// const { getRowSelection, getRowSelectionRef, getSelectRows, clearSelectedRowKeys, getSelectRowKeys, deleteSelectRowByKey, setSelectedRowKeys } =
// useRowSelection(getProps, tableData, emit);
// 子级列名
const childrenColumnName = computed(() => getProps.value.childrenColumnName || 'children');
// 自定义选择列
const {
getRowSelection,
getSelectRows,
getSelectRowKeys,
setSelectedRowKeys,
getRowSelectionRef,
selectHeaderProps,
isCustomSelection,
handleCustomSelectColumn,
clearSelectedRowKeys,
deleteSelectRowByKey,
getExpandIconColumnIndex,
} = useCustomSelection(
getProps,
emit,
wrapRef,
getPaginationInfo,
tableData,
childrenColumnName
)
// update-end--author:sunjianlei---date:220230630---for【QQYUN-5571】自封装选择列解决数据行选择卡顿问题
const {
handleTableChange: onTableChange,
getDataSourceRef,
getDataSource,
getRawDataSource,
setTableData,
updateTableDataRecord,
deleteTableDataRecord,
insertTableDataRecord,
findTableDataRecord,
fetch,
getRowKey,
reload,
getAutoCreateKey,
updateTableData,
} = useDataSource(
getProps,
{
tableData,
getPaginationInfo,
setLoading,
setPagination,
validate: formActions.validate,
clearSelectedRowKeys,
},
emit
);
function handleTableChange(...args) {
onTableChange.call(undefined, ...args);
emit('change', ...args);
// 解决通过useTable注册onChange时不起作用的问题
const { onChange } = unref(getProps);
onChange && isFunction(onChange) && onChange.call(undefined, ...args);
}
const { getViewColumns, getColumns, setCacheColumnsByField, setColumns, getColumnsRef, getCacheColumns } = useColumns(
getProps,
getPaginationInfo,
// update-begin--author:sunjianlei---date:220230630---for【QQYUN-5571】自封装选择列解决数据行选择卡顿问题
handleCustomSelectColumn,
// update-end--author:sunjianlei---date:220230630---for【QQYUN-5571】自封装选择列解决数据行选择卡顿问题
);
const { getScrollRef, redoHeight } = useTableScroll(getProps, tableElRef, getColumnsRef, getRowSelectionRef, getDataSourceRef);
const { customRow } = useCustomRow(getProps, {
setSelectedRowKeys,
getSelectRowKeys,
clearSelectedRowKeys,
getAutoCreateKey,
emit,
});
const { getRowClassName } = useTableStyle(getProps, prefixCls);
const { getExpandOption, expandAll, collapseAll } = useTableExpand(getProps, tableData, emit);
const handlers: InnerHandlers = {
onColumnsChange: (data: ColumnChangeParam[]) => {
emit('columns-change', data);
// support useTable
unref(getProps).onColumnsChange?.(data);
},
};
const { getHeaderProps } = useTableHeader(getProps, slots, handlers);
// update-begin--author:liaozhiyang---date:20240425---for【pull/1201】添加antd的TableSummary功能兼容老的summary表尾合计
const getSummaryProps = computed(() => {
return pick(unref(getProps), ['summaryFunc', 'summaryData', 'hasExpandedRow', 'rowKey']);
});
const getIsEmptyData = computed(() => {
return (unref(getDataSourceRef) || []).length === 0;
});
const showSummaryRef = computed(() => {
const summaryProps = unref(getSummaryProps);
return (summaryProps.summaryFunc || summaryProps.summaryData) && !unref(getIsEmptyData);
});
// update-end--author:liaozhiyang---date:20240425---for【pull/1201】添加antd的TableSummary功能兼容老的summary表尾合计
const { getFooterProps } = useTableFooter(getProps, slots, getScrollRef, tableElRef, getDataSourceRef);
const { getFormProps, replaceFormSlotKey, getFormSlotKeys, handleSearchInfoChange } = useTableForm(getProps, slots, fetch, getLoading);
const getBindValues = computed(() => {
const dataSource = unref(getDataSourceRef);
let propsData: Recordable = {
// ...(dataSource.length === 0 ? { getPopupContainer: () => document.body } : {}),
...attrs,
customRow,
//树列表展开使用AntDesignVue默认的加减图标 author:scott date:20210914
//expandIcon: slots.expandIcon ? null : expandIcon(),
...unref(getProps),
...unref(getHeaderProps),
scroll: unref(getScrollRef),
loading: unref(getLoading),
tableLayout: 'fixed',
rowSelection: unref(getRowSelectionRef),
rowKey: unref(getRowKey),
columns: toRaw(unref(getViewColumns)),
pagination: toRaw(unref(getPaginationInfo)),
dataSource,
footer: unref(getFooterProps),
...unref(getExpandOption),
// 【QQYUN-5837】动态计算 expandIconColumnIndex
expandIconColumnIndex: getExpandIconColumnIndex.value,
};
//update-begin---author:wangshuai ---date:20230214 for[QQYUN-4237]代码生成 内嵌子表模式 没有滚动条------------
//额外的展开行存在插槽时会将滚动移除掉,注释掉
/*if (slots.expandedRowRender) {
propsData = omit(propsData, 'scroll');
}*/
//update-end---author:wangshuai ---date:20230214 for[QQYUN-4237]代码生成 内嵌子表模式 没有滚动条------------
// update-begin--author:sunjianlei---date:220230630---for【QQYUN-5571】自封装选择列解决数据行选择卡顿问题
// 自定义选择列,需要去掉原生的
delete propsData.rowSelection
// update-end--author:sunjianlei---date:220230630---for【QQYUN-5571】自封装选择列解决数据行选择卡顿问题
// update-begin--author:liaozhiyang---date:20230919---for【QQYUN-6387】展开写法去掉报错
!propsData.isTreeTable && delete propsData.expandIconColumnIndex;
propsData.expandedRowKeys === null && delete propsData.expandedRowKeys;
// update-end--author:liaozhiyang---date:20230919---for【QQYUN-6387】展开写法去掉报错
propsData = omit(propsData, ['class', 'onChange']);
return propsData;
});
// 统一设置表格列宽度
const getMaxColumnWidth = computed(() => {
const values = unref(getBindValues);
return values.maxColumnWidth > 0 ? values.maxColumnWidth + 'px' : null;
});
const getWrapperClass = computed(() => {
const values = unref(getBindValues);
return [
prefixCls,
attrs.class,
{
[`${prefixCls}-form-container`]: values.useSearchForm,
[`${prefixCls}--inset`]: values.inset,
[`${prefixCls}-col-max-width`]: getMaxColumnWidth.value != null,
// 是否显示表尾合计
[`${prefixCls}--show-summary`]: values.showSummary,
},
];
});
const getEmptyDataIsShowTable = computed(() => {
const { emptyDataIsShowTable, useSearchForm } = unref(getProps);
if (emptyDataIsShowTable || !useSearchForm) {
return true;
}
return !!unref(getDataSourceRef).length;
});
function setProps(props: Partial<BasicTableProps>) {
innerPropsRef.value = { ...unref(innerPropsRef), ...props };
}
const tableAction: TableActionType = {
reload,
getSelectRows,
clearSelectedRowKeys,
getSelectRowKeys,
deleteSelectRowByKey,
setPagination,
setTableData,
updateTableDataRecord,
deleteTableDataRecord,
insertTableDataRecord,
findTableDataRecord,
redoHeight,
setSelectedRowKeys,
setColumns,
setLoading,
getDataSource,
getRawDataSource,
setProps,
getRowSelection,
getPaginationRef: getPagination,
getColumns,
getCacheColumns,
emit,
updateTableData,
setShowPagination,
getShowPagination,
setCacheColumnsByField,
expandAll,
collapseAll,
getSize: () => {
return unref(getBindValues).size as SizeType;
},
};
createTableContext({ ...tableAction, wrapRef, getBindValues });
// update-begin--author:sunjianlei---date:220230718---for【issues/179】兼容新老slots写法移除控制台警告
// 获取分组之后的slot名称
const slotNamesGroup = computed<{
// AntTable原生插槽
native: string[];
// 列自定义插槽
custom: string[];
}>(() => {
const native: string[] = [];
const custom: string[] = [];
const columns = unref<Recordable[]>(getViewColumns) as BasicColumn[];
const allCustomRender = columns.map<string>((column) => column.slotsBak?.customRender);
for (const name of Object.keys(slots)) {
// 过滤特殊的插槽
if (['bodyCell'].includes(name)) {
continue;
}
if (allCustomRender.includes(name)) {
custom.push(name);
} else {
native.push(name);
}
}
return { native, custom };
});
// update-end--author:sunjianlei---date:220230718---for【issues/179】兼容新老slots写法移除控制台警告
// update-begin--author:liaozhiyang---date:20231226---for【issues/945】BasicTable组件设置默认展开不生效
nextTick(() => {
getProps.value.defaultExpandAllRows && expandAll();
})
// update-end--author:sunjianlei---date:20231226---for【issues/945】BasicTable组件设置默认展开不生效
expose(tableAction);
emit('register', tableAction, formActions);
return {
tableElRef,
getBindValues,
getLoading,
registerForm,
handleSearchInfoChange,
getEmptyDataIsShowTable,
handleTableChange,
getRowClassName,
wrapRef,
tableAction,
redoHeight,
handleResizeColumn: (w, col) => {
console.log('col',col);
col.width = w;
},
getFormProps: getFormProps as any,
replaceFormSlotKey,
getFormSlotKeys,
getWrapperClass,
getMaxColumnWidth,
columns: getViewColumns,
// update-begin--author:sunjianlei---date:220230630---for【QQYUN-5571】自封装选择列解决数据行选择卡顿问题
selectHeaderProps,
isCustomSelection,
// update-end--author:sunjianlei---date:220230630---for【QQYUN-5571】自封装选择列解决数据行选择卡顿问题
slotNamesGroup,
// update-begin--author:liaozhiyang---date:20240425---for【pull/1201】添加antd的TableSummary功能兼容老的summary表尾合计
getSummaryProps,
showSummaryRef,
// update-end--author:liaozhiyang---date:20240425---for【pull/1201】添加antd的TableSummary功能兼容老的summary表尾合计
};
},
});
</script>
<style lang="less">
@border-color: #cecece4d;
@prefix-cls: ~'@{namespace}-basic-table';
[data-theme='dark'] {
.ant-table-tbody > tr:hover.ant-table-row-selected > td,
.ant-table-tbody > tr.ant-table-row-selected td {
background-color: #262626;
}
.@{prefix-cls} {
//表格选择工具栏样式
.alert {
// background-color: #323232;
// border-color: #424242;
}
}
}
.@{prefix-cls} {
max-width: 100%;
&-row__striped {
td {
background-color: @app-content-background;
}
}
// update-begin--author:liaozhiyang---date:20240613---for【TV360X-1232】查询区域隐藏后点击刷新不走请求了(采用css隐藏)
> .table-search-area-hidden {
display: none;
}
// update-end--author:liaozhiyang---date:20240613---for【TV360X-1232】查询区域隐藏后点击刷新不走请求了(采用css隐藏)
&-form-container {
padding: 10px;
.ant-form {
padding: 12px 10px 6px 10px;
margin-bottom: 8px;
background-color: @component-background;
border-radius: 2px;
}
}
.ant-tag {
margin-right: 0;
}
//update-begin-author:liusq---date:20230517--for: [issues/526]RangePicker 设置预设范围按钮样式问题---
.ant-picker-preset {
.ant-tag {
margin-right: 8px !important;
}
}
//update-end-author:liusq---date:20230517--for: [issues/526]RangePicker 设置预设范围按钮样式问题---
.ant-table-wrapper {
padding: 6px;
background-color: @component-background;
border-radius: 2px;
.ant-table-title {
min-height: 40px;
padding: 0 0 8px 0 !important;
}
.ant-table.ant-table-bordered .ant-table-title {
border: none !important;
}
}
.ant-table {
width: 100%;
overflow-x: hidden;
&-title {
display: flex;
padding: 8px 6px;
border-bottom: none;
justify-content: space-between;
align-items: center;
}
//定义行颜色
.trcolor {
background-color: rgba(255, 192, 203, 0.31);
color: red;
}
//.ant-table-tbody > tr.ant-table-row-selected td {
//background-color: fade(@primary-color, 8%) !important;
//}
}
.ant-pagination {
margin: 10px 0 0 0;
}
.ant-table-footer {
padding: 0;
.ant-table-wrapper {
padding: 0;
}
table {
border: none !important;
}
.ant-table-content {
overflow-x: hidden !important;
// overflow-y: scroll !important;
}
td {
padding: 12px 8px;
}
}
//表格选择工具栏样式
.alert {
height: 38px;
// background-color: #e6f7ff;
// border-color: #91d5ff;
}
&--inset {
.ant-table-wrapper {
padding: 0;
}
}
// ------ 统一设置表格列最大宽度 ------
&-col-max-width {
.ant-table-thead tr th,
.ant-table-tbody tr td {
max-width: v-bind(getMaxColumnWidth);
}
}
// ------ 统一设置表格列最大宽度 ------
// update-begin--author:sunjianlei---date:220230718---for【issues/622】修复表尾合计错位的问题
&--show-summary {
.ant-table > .ant-table-footer {
padding: 12px 0 0;
}
.ant-table.ant-table-bordered > .ant-table-footer {
border: 0;
}
}
// update-end--author:sunjianlei---date:220230718---for【issues/622】修复表尾合计错位的问题
// update-begin--author:liaozhiyang---date:20240604---for【TV360X-377】关联记录必填影响到了table的输入框和页码样式
> .ant-form-item {
margin-bottom: 0;
}
// update-end--author:liaozhiyang---date:20240604---for【TV360X-377】关联记录必填影响到了table的输入框和页码样式
}
</style>

View File

@@ -0,0 +1,26 @@
import type { Component } from 'vue';
import { Input, Select, Checkbox, InputNumber, Switch, DatePicker, TimePicker } from 'ant-design-vue';
import type { ComponentType } from './types/componentType';
import { ApiSelect, ApiTreeSelect } from '/@/components/Form';
const componentMap = new Map<ComponentType, Component>();
componentMap.set('Input', Input);
componentMap.set('InputNumber', InputNumber);
componentMap.set('Select', Select);
componentMap.set('ApiSelect', ApiSelect);
componentMap.set('ApiTreeSelect', ApiTreeSelect);
componentMap.set('Switch', Switch);
componentMap.set('Checkbox', Checkbox);
componentMap.set('DatePicker', DatePicker);
componentMap.set('TimePicker', TimePicker);
export function add(compName: ComponentType, component: Component) {
componentMap.set(compName, component);
}
export function del(compName: ComponentType) {
componentMap.delete(compName);
}
export { componentMap };

View File

@@ -0,0 +1,67 @@
<!-- 自定义选择列表头实现部分 -->
<template>
<!-- update-begin--author:liaozhiyang---date:20231130---forissues/5595BasicTable组件hideSelectAll: true无法隐藏全选框 -->
<template v-if="isRadio">
<!-- radio不存在全选所以放个空标签 -->
<span></span>
</template>
<template v-else>
<template v-if="hideSelectAll">
<span></span>
</template>
<a-checkbox :disabled="disabled" v-else :checked="checked" :indeterminate="isHalf" @update:checked="onChange" />
</template>
<!-- update-end--author:liaozhiyang---date:20231130---forissues/5595BasicTable组件hideSelectAll: true无法隐藏全选框 -->
</template>
<script setup lang="ts">
import { computed } from 'vue';
const props = defineProps({
isRadio: {
type: Boolean,
required: true,
},
selectedLength: {
type: Number,
required: true,
},
// 当前页条目数
pageSize: {
type: Number,
required: true,
},
hideSelectAll: {
type: Boolean,
default: false,
},
// update-begin--author:liaozhiyang---date:20231016---for【QQYUN-6774】解决checkbox禁用后全选仍能勾选问题
disabled: {
type: Boolean,
required: true,
},
// update-end--author:liaozhiyang---date:20231016---for【QQYUN-6774】解决checkbox禁用后全选仍能勾选问题
});
const emit = defineEmits(['select-all']);
// 是否全选
const checked = computed(() => {
if (props.isRadio) {
return false;
}
return props.selectedLength > 0 && props.selectedLength >= props.pageSize;
});
// 是否半选
const isHalf = computed(() => {
if (props.isRadio) {
return false;
}
return props.selectedLength > 0 && props.selectedLength < props.pageSize;
});
function onChange(checked: boolean) {
emit('select-all', checked);
}
</script>
<style scoped lang="scss"></style>

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