From 50148b4e3a81c2f6d2bd576e4896d73effdf21ce Mon Sep 17 00:00:00 2001 From: caoqianming Date: Tue, 12 Mar 2024 08:54:29 +0800 Subject: [PATCH 1/4] =?UTF-8?q?fix:=20base=20=E8=8F=9C=E5=8D=95=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E8=BF=9B=E8=A1=8C=E5=88=B7=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/ops/menu.vue | 108 +++++++++-------------------------------- 1 file changed, 22 insertions(+), 86 deletions(-) diff --git a/src/views/ops/menu.vue b/src/views/ops/menu.vue index 128d0608..26a9f51a 100644 --- a/src/views/ops/menu.vue +++ b/src/views/ops/menu.vue @@ -2,30 +2,15 @@
- +
- + - + - +
- + 目录 @@ -85,49 +50,23 @@ - - + + - + - + @@ -232,12 +171,7 @@ export default { confirmButtonClass: "el-button--danger", }).then(() => { this.$API.system.permission.delete.req(id).then((res) => { - if (res.err_msg) { - this.$message.error(res.err_msg); - this.$refs.table.refresh(); - } else { - this.$message.success("操作成功"); - } + this.$refs.table.refresh(); }); }); }, @@ -280,8 +214,8 @@ export default { }, //搜索 handleQuery() { - this.$refs.table.queryData(this.query) - }, + this.$refs.table.queryData(this.query) + }, //本地更新数据 handleSaveSuccess(data, mode) { if (mode == "add") { @@ -306,6 +240,7 @@ export default { right: 0; top: 0; } + .formSaveButton, .formDelButton { padding: 0; @@ -318,6 +253,7 @@ export default { left: 20px; top: 0; } + .formDelButton { left: 60px; } From 6228ba367ae357753a618badc3b05cb65a8c27f2 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 13 Mar 2024 09:50:39 +0800 Subject: [PATCH 2/4] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E5=88=86=E7=B1=BB=E9=A1=B5=E9=9D=A2=E5=8F=8A=E7=9B=B8?= =?UTF-8?q?=E5=BA=94=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/model/em.js | 51 +++ src/config/route.js | 36 +- src/views/em/ecate.vue | 126 +++++++ .../em/{equipmentz.vue => equipmentjc.vue} | 0 .../em/{equipmentc.vue => equipmentjk.vue} | 0 .../em/{equipmentj.vue => equipmentjl.vue} | 0 src/views/em/equipmentzl.vue | 325 ++++++++++++++++++ 7 files changed, 530 insertions(+), 8 deletions(-) create mode 100644 src/views/em/ecate.vue rename src/views/em/{equipmentz.vue => equipmentjc.vue} (100%) rename src/views/em/{equipmentc.vue => equipmentjk.vue} (100%) rename src/views/em/{equipmentj.vue => equipmentjl.vue} (100%) create mode 100644 src/views/em/equipmentzl.vue diff --git a/src/api/model/em.js b/src/api/model/em.js index efc8ff5a..5233d627 100644 --- a/src/api/model/em.js +++ b/src/api/model/em.js @@ -146,4 +146,55 @@ export default { } }, }, + //设备分类 + ecate: { + list: { + name: "列表", + req: async function(data){ + return await http.get( + `${config.API_URL}/em/ecate/`, + data + ); + } + }, + item: { + name: "获取详情", + req: async function(id){ + return await http.get( + `${config.API_URL}/em/ecate/${id}/` + ); + } + }, + update: { + name: "更新", + req: async function(id, data){ + return await http.put( + `${config.API_URL}/em/ecate/${id}/`, + data); + } + }, + create: { + name: "创建", + req: async function(data){ + return await http.post( + `${config.API_URL}/em/ecate/`, + data); + } + }, + delete: { + name: "删除", + req: async function(id){ + return await http.delete( + `${config.API_URL}/em/ecate/${id}/`); + } + }, + cquery: { + name: "复杂查询", + req: async function(data){ + return await http.post( + `${config.API_URL}/em/ecate/cquery/`, + data); + } + }, + }, } \ No newline at end of file diff --git a/src/config/route.js b/src/config/route.js index 3ac387bf..19e6b31c 100644 --- a/src/config/route.js +++ b/src/config/route.js @@ -1815,6 +1815,16 @@ const routes = [ "perms": ["em"] }, "children": [ + { + "name": "ecate", + "path": "/em/ecate", + "meta": { + "title": "设备分类", + "icon": "el-icon-cellphone", + "perms": ["ecate"] + }, + "component": "em/ecate" + }, { "name": "equipment", "path": "/em/equipment", @@ -1831,9 +1841,9 @@ const routes = [ "meta": { "title": "计量设备", "icon": "el-icon-cellphone", - "perms": ["equipmentc"] + "perms": ["equipmentjl"] }, - "component": "em/equipmentc" + "component": "em/equipmentjl" }, { "name": "equipmentz", @@ -1841,9 +1851,9 @@ const routes = [ "meta": { "title": "治理设备", "icon": "el-icon-cellphone", - "perms": ["equipmentz"] + "perms": ["equipmentzl"] }, - "component": "em/equipmentz" + "component": "em/equipmentzl" }, { "name": "equipmentj", @@ -1851,9 +1861,19 @@ const routes = [ "meta": { "title": "监控设备", "icon": "el-icon-cellphone", - "perms": ["equipmentj"] + "perms": ["equipmentjk"] }, - "component": "em/equipmentj" + "component": "em/equipmentjk" + }, + { + "name": "equipmentj", + "path": "/em/equipmentjc", + "meta": { + "title": "监测设备", + "icon": "el-icon-cellphone", + "perms": ["equipmentjc"] + }, + "component": "em/equipmentjc" }, { "name": "xjRecord", @@ -1861,7 +1881,7 @@ const routes = [ "meta": { "title": "巡检记录", "icon": "el-icon-cellphone", - "perms": ["equipment"] + "perms": ["einspect"] }, "component": "em/xjRecord" }, @@ -2191,7 +2211,7 @@ const routes = [ "path": "/bigScreenEnp", "name": "bigScreenEnp", "meta": { - "title": "数据大屏Enp", + "title": "环保大屏", "icon": "el-icon-platform", "perms": ["bigScreenEnp"], "fullpage": true, diff --git a/src/views/em/ecate.vue b/src/views/em/ecate.vue new file mode 100644 index 00000000..d617a18f --- /dev/null +++ b/src/views/em/ecate.vue @@ -0,0 +1,126 @@ + + \ No newline at end of file diff --git a/src/views/em/equipmentz.vue b/src/views/em/equipmentjc.vue similarity index 100% rename from src/views/em/equipmentz.vue rename to src/views/em/equipmentjc.vue diff --git a/src/views/em/equipmentc.vue b/src/views/em/equipmentjk.vue similarity index 100% rename from src/views/em/equipmentc.vue rename to src/views/em/equipmentjk.vue diff --git a/src/views/em/equipmentj.vue b/src/views/em/equipmentjl.vue similarity index 100% rename from src/views/em/equipmentj.vue rename to src/views/em/equipmentjl.vue diff --git a/src/views/em/equipmentzl.vue b/src/views/em/equipmentzl.vue new file mode 100644 index 00000000..c49a0a3f --- /dev/null +++ b/src/views/em/equipmentzl.vue @@ -0,0 +1,325 @@ + + \ No newline at end of file From 6fa74980ca91f0dd425c076ff1bf5fd469df632e Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 13 Mar 2024 09:51:37 +0800 Subject: [PATCH 3/4] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0enum.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/enum.js | 59 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 src/utils/enum.js diff --git a/src/utils/enum.js b/src/utils/enum.js new file mode 100644 index 00000000..e5910710 --- /dev/null +++ b/src/utils/enum.js @@ -0,0 +1,59 @@ +/** + * 枚举创建工厂(构造函数),扩展枚举对象:keys、values(含key值的[{key,text,type}])、formatter。 + * @param {*} enumObj 枚举值,支持标准模式{key:{text,type},},简单模式{key:text,}(会自动转换为标准模式) + * @param {*} keyParseFunc key的转换函数,默认null,如果key为整数则传 parseInt + */ +export default function EnumFactory(enumObj, keyParseFunc = null) { + //复制(继承)enumObj + Object.assign(this, enumObj) + + // keys:枚举的key集合[key] + Object.defineProperty(this, 'keys', { + value: keyParseFunc ? Object.keys(enumObj).map(s => keyParseFunc(s)) : Object.keys(enumObj) + }) + + // 处理 values + let values = [] + const ovalues = Object.values(enumObj) + // 主要区分下value是简单类型(字符串)还是对象类型 + if (typeof ovalues[0] === 'string') { + ovalues.forEach((text, index) => { + const obj = { key: this.keys[index], text } + values.push(obj) + this[this.keys[index]] = obj + }) + } + else { + ovalues.forEach((item, index) => { + item.key = this.keys[index] + values.push(item) + }) + } + // 设置values属性 + Object.defineProperty(this, 'values', { value: values }) + + // formatter:element中表格绑定枚举数据文本的formatter函数 + // r、c为行列,可传入null + Object.defineProperty(this, 'formatter', { + value: function(r, c, value) { + return values.filter(v => v.key == value || v.text == value)[0]?.text || 'notfound' + } + }) + + //枚举定义的数据都是常量,不可修改,冻结一下 + Object.freeze(this) + } + +export const runningStateEnum = new EnumFactory({ + 10: { text: '运行', type: 'success' }, + 20: { text: '待机', type: 'primary' }, + 30: { text: '停机', type: 'warning' }, + 40: { text: '故障', type: 'danger' }, + 50: { text: '未知', type: 'info' }, +}, parseInt) + +export const drainTypeEnum = new EnumFactory({ + 'product': '生产工艺', + 'mtrans': '物料输送', + 'mstore':'物料储存' +}) \ No newline at end of file From 6b9c0064c907d7d915637103a43fe2d9a1dc40d7 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 13 Mar 2024 09:52:03 +0800 Subject: [PATCH 4/4] =?UTF-8?q?fix:=20=E8=B0=83=E6=95=B4=E6=9C=89=E7=BB=84?= =?UTF-8?q?=E7=BB=87=E6=8E=92=E6=94=BE=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/bigScreen/enpComponents/cems.vue | 89 +++++++----- .../bigScreen/enpComponents/cemsExport.vue | 26 ++-- .../bigScreen/enpComponents/orgwryList.vue | 134 ++++++++---------- .../bigScreen/enpComponents/pollutant.vue | 29 ++-- .../bigScreen/enpComponents/pollutant2.vue | 29 ++-- .../bigScreen/enpComponents/smarg_trans.vue | 17 +-- .../bigScreen/enpComponents/smartg_prod.vue | 15 +- 7 files changed, 179 insertions(+), 160 deletions(-) diff --git a/src/views/bigScreen/enpComponents/cems.vue b/src/views/bigScreen/enpComponents/cems.vue index 0ec9053f..e3adbac2 100644 --- a/src/views/bigScreen/enpComponents/cems.vue +++ b/src/views/bigScreen/enpComponents/cems.vue @@ -2,60 +2,70 @@ - -
CEMS监测清单
+ +
CEMS监测清单
+
+ 返回地图 +
- - - + + + + + - + - + @@ -94,11 +104,13 @@