Browse Source

158分站列表删除接口传参修改-提交

lxh 1 day ago
parent
commit
bd56b51f28
45 changed files with 1408 additions and 36 deletions
  1. BIN
      src/assets/images/home-container/configurable/electroChamper/1-1.png
  2. BIN
      src/assets/images/home-container/configurable/electroChamper/1-2.png
  3. BIN
      src/assets/images/home-container/configurable/electroChamper/1-3.png
  4. BIN
      src/assets/images/home-container/configurable/electroChamper/2-1.png
  5. BIN
      src/assets/images/home-container/configurable/electroChamper/2-10.png
  6. BIN
      src/assets/images/home-container/configurable/electroChamper/2-2.png
  7. BIN
      src/assets/images/home-container/configurable/electroChamper/2-3.png
  8. BIN
      src/assets/images/home-container/configurable/electroChamper/2-4.png
  9. BIN
      src/assets/images/home-container/configurable/electroChamper/2-5.png
  10. BIN
      src/assets/images/home-container/configurable/electroChamper/2-6.png
  11. BIN
      src/assets/images/home-container/configurable/electroChamper/2-7.png
  12. BIN
      src/assets/images/home-container/configurable/electroChamper/2-8.png
  13. BIN
      src/assets/images/home-container/configurable/electroChamper/2-9.png
  14. BIN
      src/assets/images/home-container/configurable/electroChamper/3-1.png
  15. BIN
      src/assets/images/home-container/configurable/electroChamper/3-2.png
  16. BIN
      src/assets/images/home-container/configurable/electroChamper/3-3.png
  17. BIN
      src/assets/images/home-container/configurable/electroChamper/3-4.png
  18. BIN
      src/assets/images/themify/deepblue/home-container/configurable/electroChamper/1-1.png
  19. BIN
      src/assets/images/themify/deepblue/home-container/configurable/electroChamper/1-2.png
  20. BIN
      src/assets/images/themify/deepblue/home-container/configurable/electroChamper/1-3.png
  21. BIN
      src/assets/images/themify/deepblue/home-container/configurable/electroChamper/2-1.png
  22. BIN
      src/assets/images/themify/deepblue/home-container/configurable/electroChamper/2-10.png
  23. BIN
      src/assets/images/themify/deepblue/home-container/configurable/electroChamper/2-2.png
  24. BIN
      src/assets/images/themify/deepblue/home-container/configurable/electroChamper/2-3.png
  25. BIN
      src/assets/images/themify/deepblue/home-container/configurable/electroChamper/2-4.png
  26. BIN
      src/assets/images/themify/deepblue/home-container/configurable/electroChamper/2-5.png
  27. BIN
      src/assets/images/themify/deepblue/home-container/configurable/electroChamper/2-6.png
  28. BIN
      src/assets/images/themify/deepblue/home-container/configurable/electroChamper/2-7.png
  29. BIN
      src/assets/images/themify/deepblue/home-container/configurable/electroChamper/2-8.png
  30. BIN
      src/assets/images/themify/deepblue/home-container/configurable/electroChamper/2-9.png
  31. BIN
      src/assets/images/themify/deepblue/home-container/configurable/electroChamper/3-1.png
  32. BIN
      src/assets/images/themify/deepblue/home-container/configurable/electroChamper/3-2.png
  33. BIN
      src/assets/images/themify/deepblue/home-container/configurable/electroChamper/3-3.png
  34. BIN
      src/assets/images/themify/deepblue/home-container/configurable/electroChamper/3-4.png
  35. 1 1
      src/components/vent/ventBox1.vue
  36. 548 0
      src/views/vent/home/configurable/ceshi.json
  37. 4 0
      src/views/vent/home/configurable/components/content.vue
  38. 17 4
      src/views/vent/home/configurable/components/header.vue
  39. 218 0
      src/views/vent/home/configurable/components/partition-top.vue
  40. 241 0
      src/views/vent/home/configurable/components/preset/cardList.vue
  41. 68 27
      src/views/vent/home/configurable/configurable.api.ts
  42. 183 1
      src/views/vent/home/configurable/configurable.data.ts
  43. 126 0
      src/views/vent/home/configurable/electroChamber.vue
  44. 1 2
      src/views/vent/monitorManager/comment/warnAnalysis.vue
  45. 1 1
      src/views/vent/safetyList/safetyList.api.ts

BIN
src/assets/images/home-container/configurable/electroChamper/1-1.png


BIN
src/assets/images/home-container/configurable/electroChamper/1-2.png


BIN
src/assets/images/home-container/configurable/electroChamper/1-3.png


BIN
src/assets/images/home-container/configurable/electroChamper/2-1.png


BIN
src/assets/images/home-container/configurable/electroChamper/2-10.png


BIN
src/assets/images/home-container/configurable/electroChamper/2-2.png


BIN
src/assets/images/home-container/configurable/electroChamper/2-3.png


BIN
src/assets/images/home-container/configurable/electroChamper/2-4.png


BIN
src/assets/images/home-container/configurable/electroChamper/2-5.png


BIN
src/assets/images/home-container/configurable/electroChamper/2-6.png


BIN
src/assets/images/home-container/configurable/electroChamper/2-7.png


BIN
src/assets/images/home-container/configurable/electroChamper/2-8.png


BIN
src/assets/images/home-container/configurable/electroChamper/2-9.png


BIN
src/assets/images/home-container/configurable/electroChamper/3-1.png


BIN
src/assets/images/home-container/configurable/electroChamper/3-2.png


BIN
src/assets/images/home-container/configurable/electroChamper/3-3.png


BIN
src/assets/images/home-container/configurable/electroChamper/3-4.png


BIN
src/assets/images/themify/deepblue/home-container/configurable/electroChamper/1-1.png


BIN
src/assets/images/themify/deepblue/home-container/configurable/electroChamper/1-2.png


BIN
src/assets/images/themify/deepblue/home-container/configurable/electroChamper/1-3.png


BIN
src/assets/images/themify/deepblue/home-container/configurable/electroChamper/2-1.png


BIN
src/assets/images/themify/deepblue/home-container/configurable/electroChamper/2-10.png


BIN
src/assets/images/themify/deepblue/home-container/configurable/electroChamper/2-2.png


BIN
src/assets/images/themify/deepblue/home-container/configurable/electroChamper/2-3.png


BIN
src/assets/images/themify/deepblue/home-container/configurable/electroChamper/2-4.png


BIN
src/assets/images/themify/deepblue/home-container/configurable/electroChamper/2-5.png


BIN
src/assets/images/themify/deepblue/home-container/configurable/electroChamper/2-6.png


BIN
src/assets/images/themify/deepblue/home-container/configurable/electroChamper/2-7.png


BIN
src/assets/images/themify/deepblue/home-container/configurable/electroChamper/2-8.png


BIN
src/assets/images/themify/deepblue/home-container/configurable/electroChamper/2-9.png


BIN
src/assets/images/themify/deepblue/home-container/configurable/electroChamper/3-1.png


BIN
src/assets/images/themify/deepblue/home-container/configurable/electroChamper/3-2.png


BIN
src/assets/images/themify/deepblue/home-container/configurable/electroChamper/3-3.png


BIN
src/assets/images/themify/deepblue/home-container/configurable/electroChamper/3-4.png


+ 1 - 1
src/components/vent/ventBox1.vue

@@ -107,7 +107,7 @@
           content: '';
           display: block;
           position: absolute;
-          right: 0;
+          right: 1px;
           top: 5px;
           width: 1px;
           height: calc(100% - 10px);

+ 548 - 0
src/views/vent/home/configurable/ceshi.json

@@ -0,0 +1,548 @@
+{
+  "msgTxt": [
+    {
+      "datalist": [
+        {
+          "msgType": null,
+          "deviceID": "1983780099434459137",
+          "strname": "球阀2",
+          "strinstallpos": "球阀2",
+          "fsectarea": "null",
+          "planedVa": null,
+          "regulation": null,
+          "stationname": "机电硐室防灭火系统",
+          "stationtype": "http",
+          "deviceType": "ballvalve_auto",
+          "typeName": "球阀",
+          "netStatus": "1",
+          "warnFlag": "0",
+          "warnLevel": "0",
+          "warnLevel_str": "正常",
+          "syswarnLevel": null,
+          "syswarnLevel_str": null,
+          "syswarnLevel_des": null,
+          "warnTime": null,
+          "readTime": "2025-10-30 15:35:35",
+          "warnDes": "",
+          "frontGateOpenCtrl": null,
+          "rearGateOpenCtrl": null,
+          "readData": {
+            "endArea": "18m",
+            "deviceSTAT": "0",
+            "sign": "0",
+            "areaName": "分区1",
+            "tempStart": "80.0",
+            "smokePattern": "烟雾模式",
+            "tTime": "2025-10-30 15:35:35",
+            "deviceName": "球阀2",
+            "deviceid": "12",
+            "tempMax": "34.4",
+            "devicelocation": "中央变电所",
+            "smokeSensorStatus": "False",
+            "tempStop": "40.00",
+            "isWarn": "1",
+            "isRun": "-2",
+            "tempAvg": "21.3",
+            "tempMin": "40.0"
+          }
+        },
+        {
+          "msgType": null,
+          "deviceID": "1983780099438653442",
+          "strname": "球阀3",
+          "strinstallpos": "球阀3",
+          "fsectarea": "null",
+          "planedVa": null,
+          "regulation": null,
+          "stationname": "机电硐室防灭火系统",
+          "stationtype": "http",
+          "deviceType": "ballvalve_auto",
+          "typeName": "球阀",
+          "netStatus": 1,
+          "warnFlag": 0,
+          "warnLevel": 0,
+          "warnLevel_str": "正常",
+          "syswarnLevel": null,
+          "syswarnLevel_str": null,
+          "syswarnLevel_des": null,
+          "warnTime": null,
+          "readTime": "2025-10-30 15:35:35",
+          "warnDes": "",
+          "frontGateOpenCtrl": null,
+          "rearGateOpenCtrl": null,
+          "readData": {
+            "areaName": "分区2",
+            "endArea": "24m",
+            "deviceSTAT": "0",
+            "sign": "0",
+            "tempStart": "80.0",
+            "smokePattern": "烟雾模式",
+            "tTime": "2025-10-30 15:35:35",
+            "deviceName": "球阀3",
+            "deviceid": "3",
+            "tempMax": "34.4",
+            "devicelocation": "中央变电所",
+            "smokeSensorStatus": "False",
+            "tempStop": "40.00",
+            "isWarn": "1",
+            "isRun": "-2",
+            "tempAvg": "21.4",
+            "tempMin": "40.0"
+          }
+        },
+        {
+          "msgType": null,
+          "deviceID": "1983780099438653443",
+          "strname": "球阀4",
+          "strinstallpos": "球阀4",
+          "fsectarea": "null",
+          "planedVa": null,
+          "regulation": null,
+          "stationname": "机电硐室防灭火系统",
+          "stationtype": "http",
+          "deviceType": "ballvalve_auto",
+          "typeName": "球阀",
+          "netStatus": 1,
+          "warnFlag": 0,
+          "warnLevel": 0,
+          "warnLevel_str": "正常",
+          "syswarnLevel": null,
+          "syswarnLevel_str": null,
+          "syswarnLevel_des": null,
+          "warnTime": null,
+          "readTime": "2025-10-30 15:35:35",
+          "warnDes": "",
+          "frontGateOpenCtrl": null,
+          "rearGateOpenCtrl": null,
+          "readData": {
+            "areaName": "分区3",
+            "endArea": "36m",
+            "deviceSTAT": "0",
+            "sign": "0",
+            "tempStart": "80.0",
+            "smokePattern": "烟雾模式",
+            "tTime": "2025-10-30 15:35:35",
+            "deviceName": "球阀4",
+            "deviceid": "4",
+            "tempMax": "34.7",
+            "devicelocation": "中央变电所",
+            "smokeSensorStatus": "False",
+            "tempStop": "40.00",
+            "isWarn": "1",
+            "isRun": "-2",
+            "tempAvg": "21.6",
+            "tempMin": "40.0"
+          }
+        },
+        {
+          "msgType": null,
+          "deviceID": "1983780099472207873",
+          "strname": "球阀8",
+          "strinstallpos": "球阀8",
+          "fsectarea": "null",
+          "planedVa": null,
+          "regulation": null,
+          "stationname": "机电硐室防灭火系统",
+          "stationtype": "http",
+          "deviceType": "ballvalve_auto",
+          "typeName": "球阀",
+          "netStatus": 1,
+          "warnFlag": 0,
+          "warnLevel": 0,
+          "warnLevel_str": "正常",
+          "syswarnLevel": null,
+          "syswarnLevel_str": null,
+          "syswarnLevel_des": null,
+          "warnTime": null,
+          "readTime": "2025-10-30 15:35:35",
+          "warnDes": "",
+          "frontGateOpenCtrl": null,
+          "rearGateOpenCtrl": null,
+          "readData": {
+            "areaName": "分区4",
+            "endArea": "66m",
+            "deviceSTAT": "0",
+            "sign": "0",
+            "tempStart": "80.0",
+            "smokePattern": "烟雾模式",
+            "tTime": "2025-10-30 15:35:35",
+            "deviceName": "球阀8",
+            "deviceid": "8",
+            "tempMax": "35.4",
+            "devicelocation": "中央变电所",
+            "smokeSensorStatus": "False",
+            "tempStop": "40.00",
+            "isWarn": "1",
+            "isRun": "-2",
+            "tempAvg": "20.7",
+            "tempMin": "40.0"
+          }
+        },
+        {
+          "msgType": null,
+          "deviceID": "1983780099476402178",
+          "strname": "球阀9",
+          "strinstallpos": "球阀9",
+          "fsectarea": "null",
+          "planedVa": null,
+          "regulation": null,
+          "stationname": "机电硐室防灭火系统",
+          "stationtype": "http",
+          "deviceType": "ballvalve_auto",
+          "typeName": "球阀",
+          "netStatus": 1,
+          "warnFlag": 0,
+          "warnLevel": 0,
+          "warnLevel_str": "正常",
+          "syswarnLevel": null,
+          "syswarnLevel_str": null,
+          "syswarnLevel_des": null,
+          "warnTime": null,
+          "readTime": "2025-10-30 15:35:35",
+          "warnDes": "",
+          "frontGateOpenCtrl": null,
+          "rearGateOpenCtrl": null,
+          "readData": {
+            "areaName": "分区5",
+            "endArea": "86m",
+            "deviceSTAT": "0",
+            "sign": "0",
+            "tempStart": "80.0",
+            "smokePattern": "烟雾模式",
+            "tTime": "2025-10-30 15:35:35",
+            "deviceName": "球阀9",
+            "deviceid": "9",
+            "tempMax": "36.0",
+            "devicelocation": "中央变电所",
+            "smokeSensorStatus": "False",
+            "tempStop": "40.00",
+            "isWarn": "1",
+            "isRun": "-2",
+            "tempAvg": "20.9",
+            "tempMin": "40.0"
+          }
+        },
+        {
+          "msgType": null,
+          "deviceID": "1983780099476402179",
+          "strname": "球阀10",
+          "strinstallpos": "球阀10",
+          "fsectarea": "null",
+          "planedVa": null,
+          "regulation": null,
+          "stationname": "机电硐室防灭火系统",
+          "stationtype": "http",
+          "deviceType": "ballvalve_auto",
+          "typeName": "球阀",
+          "netStatus": 1,
+          "warnFlag": 0,
+          "warnLevel": 0,
+          "warnLevel_str": "正常",
+          "syswarnLevel": null,
+          "syswarnLevel_str": null,
+          "syswarnLevel_des": null,
+          "warnTime": null,
+          "readTime": "2025-10-30 15:35:35",
+          "warnDes": "",
+          "frontGateOpenCtrl": null,
+          "rearGateOpenCtrl": null,
+          "readData": {
+            "areaName": "分区6",
+            "endArea": "92m",
+            "deviceSTAT": "0",
+            "sign": "0",
+            "tempStart": "80.0",
+            "smokePattern": "烟雾模式",
+            "tTime": "2025-10-30 15:35:35",
+            "deviceName": "球阀10",
+            "deviceid": "10",
+            "tempMax": "36.0",
+            "devicelocation": "中央变电所",
+            "smokeSensorStatus": "False",
+            "tempStop": "40.00",
+            "isWarn": "1",
+            "isRun": "-2",
+            "tempAvg": "20.9",
+            "tempMin": "40.0"
+          }
+        },
+        {
+          "msgType": null,
+          "deviceID": "1983780099476402180",
+          "strname": "球阀11",
+          "strinstallpos": "球阀11",
+          "fsectarea": "null",
+          "planedVa": null,
+          "regulation": null,
+          "stationname": "机电硐室防灭火系统",
+          "stationtype": "http",
+          "deviceType": "ballvalve_auto",
+          "typeName": "球阀",
+          "netStatus": 1,
+          "warnFlag": 0,
+          "warnLevel": 0,
+          "warnLevel_str": "正常",
+          "syswarnLevel": null,
+          "syswarnLevel_str": null,
+          "syswarnLevel_des": null,
+          "warnTime": null,
+          "readTime": "2025-10-30 15:35:35",
+          "warnDes": "",
+          "frontGateOpenCtrl": null,
+          "rearGateOpenCtrl": null,
+          "readData": {
+            "areaName": "分区7",
+            "endArea": "98m",
+            "deviceSTAT": "0",
+            "sign": "0",
+            "tempStart": "80.0",
+            "smokePattern": "烟雾模式",
+            "tTime": "2025-10-30 15:35:35",
+            "deviceName": "球阀11",
+            "deviceid": "11",
+            "tempMax": "36.2",
+            "devicelocation": "中央变电所",
+            "smokeSensorStatus": "False",
+            "tempStop": "40.00",
+            "isWarn": "1",
+            "isRun": "-2",
+            "tempAvg": "20.9",
+            "tempMin": "40.0"
+          }
+        },
+        {
+          "msgType": null,
+          "deviceID": "1983780099480596482",
+          "strname": "球阀12",
+          "strinstallpos": "球阀12",
+          "fsectarea": "null",
+          "planedVa": null,
+          "regulation": null,
+          "stationname": "机电硐室防灭火系统",
+          "stationtype": "http",
+          "deviceType": "ballvalve_auto",
+          "typeName": "球阀",
+          "netStatus": 1,
+          "warnFlag": 0,
+          "warnLevel": 0,
+          "warnLevel_str": "正常",
+          "syswarnLevel": null,
+          "syswarnLevel_str": null,
+          "syswarnLevel_des": null,
+          "warnTime": null,
+          "readTime": "2025-10-30 15:35:35",
+          "warnDes": "",
+          "frontGateOpenCtrl": null,
+          "rearGateOpenCtrl": null,
+          "readData": {
+            "areaName": "分区8",
+            "endArea": "104m",
+            "deviceSTAT": "0",
+            "sign": "0",
+            "tempStart": "80.0",
+            "smokePattern": "烟雾模式",
+            "tTime": "2025-10-30 15:35:35",
+            "deviceName": "球阀12",
+            "deviceid": "2",
+            "tempMax": "36.4",
+            "devicelocation": "中央变电所",
+            "smokeSensorStatus": "False",
+            "tempStop": "40.00",
+            "isWarn": "1",
+            "isRun": "-2",
+            "tempAvg": "20.8",
+            "tempMin": "40.0"
+          }
+        },
+        {
+          "msgType": null,
+          "deviceID": "1983780099480596483",
+          "strname": "球阀13",
+          "strinstallpos": "球阀13",
+          "fsectarea": "null",
+          "planedVa": null,
+          "regulation": null,
+          "stationname": "机电硐室防灭火系统",
+          "stationtype": "http",
+          "deviceType": "ballvalve_auto",
+          "typeName": "球阀",
+          "netStatus": 1,
+          "warnFlag": 0,
+          "warnLevel": 0,
+          "warnLevel_str": "正常",
+          "syswarnLevel": null,
+          "syswarnLevel_str": null,
+          "syswarnLevel_des": null,
+          "warnTime": null,
+          "readTime": "2025-10-30 15:35:35",
+          "warnDes": "",
+          "frontGateOpenCtrl": null,
+          "rearGateOpenCtrl": null,
+          "readData": {
+            "areaName": "分区9",
+            "endArea": "110m",
+            "deviceSTAT": "0",
+            "sign": "0",
+            "tempStart": "80.0",
+            "smokePattern": "烟雾模式",
+            "tTime": "2025-10-30 15:35:35",
+            "deviceName": "球阀13",
+            "deviceid": "13",
+            "tempMax": "36.4",
+            "devicelocation": "中央变电所",
+            "smokeSensorStatus": "False",
+            "tempStop": "40.00",
+            "isWarn": "1",
+            "isRun": "-2",
+            "tempAvg": "20.8",
+            "tempMin": "40.0"
+          }
+        },
+        {
+          "msgType": null,
+          "deviceID": "1983780099480596484",
+          "strname": "球阀14",
+          "strinstallpos": "球阀14",
+          "fsectarea": "null",
+          "planedVa": null,
+          "regulation": null,
+          "stationname": "机电硐室防灭火系统",
+          "stationtype": "http",
+          "deviceType": "ballvalve_auto",
+          "typeName": "球阀",
+          "netStatus": 1,
+          "warnFlag": 0,
+          "warnLevel": 0,
+          "warnLevel_str": "正常",
+          "syswarnLevel": null,
+          "syswarnLevel_str": null,
+          "syswarnLevel_des": null,
+          "warnTime": null,
+          "readTime": "2025-10-30 15:35:35",
+          "warnDes": "",
+          "frontGateOpenCtrl": null,
+          "rearGateOpenCtrl": null,
+          "readData": {
+            "areaName": "分区10",
+            "endArea": "116m",
+            "deviceSTAT": "0",
+            "sign": "0",
+            "tempStart": "80.0",
+            "smokePattern": "烟雾模式",
+            "tTime": "2025-10-30 15:35:35",
+            "deviceName": "球阀14",
+            "deviceid": "14",
+            "tempMax": "36.5",
+            "devicelocation": "中央变电所",
+            "smokeSensorStatus": "False",
+            "tempStop": "40.00",
+            "isWarn": "1",
+            "isRun": "-2",
+            "tempAvg": "20.6",
+            "tempMin": "40.0"
+          }
+        },
+        {
+          "msgType": null,
+          "deviceID": "1983780099484790785",
+          "strname": "球阀15",
+          "strinstallpos": "球阀15",
+          "fsectarea": "null",
+          "planedVa": null,
+          "regulation": null,
+          "stationname": "机电硐室防灭火系统",
+          "stationtype": "http",
+          "deviceType": "ballvalve_auto",
+          "typeName": "球阀",
+          "netStatus": 1,
+          "warnFlag": 0,
+          "warnLevel": 0,
+          "warnLevel_str": "正常",
+          "syswarnLevel": null,
+          "syswarnLevel_str": null,
+          "syswarnLevel_des": null,
+          "warnTime": null,
+          "readTime": "2025-10-30 15:35:35",
+          "warnDes": "",
+          "frontGateOpenCtrl": null,
+          "rearGateOpenCtrl": null,
+          "readData": {
+            "areaName": "分区11",
+            "endArea": "156m",
+            "deviceSTAT": "0",
+            "sign": "0",
+            "tempStart": "80.0",
+            "smokePattern": "烟雾模式",
+            "tTime": "2025-10-30 15:35:35",
+            "deviceName": "球阀15",
+            "deviceid": "15",
+            "tempMax": "37.6",
+            "devicelocation": "中央变电所",
+            "smokeSensorStatus": "False",
+            "tempStop": "40.00",
+            "isWarn": "1",
+            "isRun": "-2",
+            "tempAvg": "20.6",
+            "tempMin": "40.0"
+          }
+        },
+        {
+          "msgType": null,
+          "deviceID": "1983780099392516097",
+          "strname": "球阀1",
+          "strinstallpos": "球阀1",
+          "fsectarea": "null",
+          "planedVa": null,
+          "regulation": null,
+          "stationname": "机电硐室防灭火系统",
+          "stationtype": "http",
+          "deviceType": "ballvalve_auto",
+          "typeName": "球阀",
+          "netStatus": 1,
+          "warnFlag": 0,
+          "warnLevel": 0,
+          "warnLevel_str": "正常",
+          "syswarnLevel": null,
+          "syswarnLevel_str": null,
+          "syswarnLevel_des": null,
+          "warnTime": null,
+          "readTime": "2025-10-30 15:35:35",
+          "warnDes": "",
+          "frontGateOpenCtrl": null,
+          "rearGateOpenCtrl": null,
+          "readData": {
+            "areaName": "分区12",
+            "endArea": "12m",
+            "deviceSTAT": "0",
+            "sign": "0",
+            "tempStart": "80.0",
+            "smokePattern": "烟雾模式",
+            "tTime": "2025-10-30 15:35:35",
+            "deviceName": "球阀1",
+            "deviceid": "1",
+            "tempMax": "38.4",
+            "devicelocation": "中央变电所",
+            "smokeSensorStatus": "False",
+            "tempStop": "40.00",
+            "isWarn": "1",
+            "isRun": "-2",
+            "tempAvg": "22.0",
+            "tempMin": "40.0"
+          }
+        }
+      ],
+      "avginfo": {
+        "warnFlag": {
+          "value": "0"
+        }
+      },
+      "typeName": "球阀",
+      "type": "ballvalve_auto"
+    },
+    {
+      "subtype": "sys_dongshi",
+      "typeName": "综合监测系统",
+      "type": "sys"
+    }
+  ]
+}

+ 4 - 0
src/views/vent/home/configurable/components/content.vue

@@ -137,6 +137,9 @@
         </template>
         <template v-if="config.name === 'button_list'">
           <ButtonList class="content__module" :type="config.config.type" :config="config.config" :buttonList="config.config.buttonList" />
+        </template>
+         <template v-if="config.name === 'card_list'">
+          <cardList class="content__module"  :config="config.config" :buttonList="config.config.buttonList" />
         </template>
         <!-- <template v-if="config.key === 'fire_control'">
         <FIreControl class="content__module" />
@@ -182,6 +185,7 @@ import Partition from './preset/partition.vue';
 import SelectorDualChart from './preset/selectorDualChart.vue';
 import RadioLabel from './preset/radioLabel.vue';
 import ButtonList from './preset/buttonList.vue';
+import cardList from './preset/cardList.vue'
 // import FIreWarn from './preset/FIreWarn.vue';
 // import FIreControl from './preset/FIreControl.vue';
 

+ 17 - 4
src/views/vent/home/configurable/components/header.vue

@@ -1,17 +1,20 @@
 <!-- eslint-disable vue/multi-word-component-names -->
 <template>
   <!-- Header部分 -->
-  <div v-if="headerConfig.show" class="w-100% flex costume-header">
+  <div v-if="headerConfig.show" class="w-100% flex costume-header" :class="headerConfig.selector.toggleIcon ? 'costume-headerToggleIcon' : 'costume-header' ">
     <!-- 选择下拉框,自动填充剩余空间,这种实现是因为 Select 不支持 suffix -->
     <Dropdown
       v-if="headerConfig.selector.show"
-      class="flex-grow-1 costume-header_left"
+      class="flex-grow-1 "
+      :class="!headerConfig.selector.toggleIcon ? 'costume-header_left' : ''"
       :trigger="['click']"
       :bordered="false"
       @open-change="visible = $event"
     >
       <div class="flex-basis-100% flex flex-items-center" @click.prevent>
-        <SwapOutlined class="w-30px" />
+         <img style="margin-right:10px" v-if="headerConfig.selector.toggleIcon" src="@/assets/images/home-container/configurable/electroChamper/2-2.png" alt=""></img>
+        <SwapOutlined v-else class="w-30px" />
+       
         <div class="w-100px flex-grow-1 overflow-hidden whitespace-nowrap text-ellipsis">
           {{ selectedDeviceLabel }}
         </div>
@@ -77,10 +80,16 @@
 <style scoped>
   @import '/@/design/theme.less';
 
+
   .costume-header {
     height: 30px;
     background-image: linear-gradient(90deg, var(--vent-base-light-bg-opcity), transparent 20%, transparent 80%, var(--vent-base-light-bg-opcity));
   }
+  .costume-headerToggleIcon{
+     height: 30px;
+     background: url('@/assets/images/home-container/configurable/electroChamper/2-1.png') ;
+     background-size: 100% 100%;
+  }
   .costume-header_left {
     border-left: 3px solid;
     border-right: 3px solid;
@@ -92,7 +101,11 @@
     border-image-source: linear-gradient(to top, #00000033, var(--vent-base-light-bg), #00000033);
     border-image-slice: 1;
   }
-
+  img{
+    width: 16px;
+    height: 16px;
+    margin-left: 8px;
+  }
   ::v-deep .zxm-select:not(.zxm-select-customize-input) .zxm-select-selector {
     /* background-color: transparent; */
     color: #fff;

+ 218 - 0
src/views/vent/home/configurable/components/partition-top.vue

@@ -0,0 +1,218 @@
+<template>
+  <div class="partition-top">
+    <div class="nav-title">
+      <div class="nav-title-text" v-for="(item, index) in tempData" :key="index">{{ item.areaName }}</div>
+    </div>
+    <div class="nav-content">
+      <div class="content-tr" v-for="(ite, ind) in countTr" :key="ind">
+        <div class="content-td" v-for="(m, n) in tempData" :key="n">
+          <div v-if="ind==2">{{ m.tempStart || '---' }}</div>
+          <div v-if="ind==7">{{ m.tempStop || '---' }}</div>
+        </div>
+      </div>
+      <canvas  ref="canvas" style="position: absolute;width:100%;height:100%" ></canvas>
+    </div>
+
+
+    <!-- 开启温度 -->
+    <div class="open-temp">{{ openTempText }}</div>
+    <!-- 关闭温度 -->
+    <div class="close-temp">{{ closeTempText }}</div>
+    <!-- 刻度尺 -->
+    <div class="temp-scale">
+      <div class="scale-item" v-for="(p, q) in countTr" :key="q"></div>
+    </div>
+    <div class="temp-scale-text">
+      <div class="scale-item-text" v-for="(p, q) in countTr + 1" :key="q">{{ (countTr + 1) - p ? `${(countTr + 1) - p}0`
+        : 0 }}
+      </div>
+    </div>
+    <!-- 光纤测温 -->
+    <div class="fiber-temp">{{ fiberText }}</div>
+  </div>
+</template>
+
+<script setup lang="ts">
+import { ref,onMounted } from 'vue'
+
+let props=defineProps({
+  tempData:{
+    type:Array,
+    default:()=>{
+      return []
+    }
+  }
+})
+
+// let navTitleList = ref<any[]>([
+//   { text: '分区1',openT:0,closeT:19.4 },
+//   { text: '分区2',openT:0,closeT:19.5 },
+//   { text: '分区3',openT:0,closeT:19.6 },
+//   { text: '分区4',openT:0,closeT:19.7},
+//   { text: '分区5',openT:0,closeT:19.8 },
+//   { text: '分区6',openT:0,closeT:19.9},
+//   { text: '分区7',openT:0,closeT:20.4},
+//   { text: '分区8',openT:0,closeT:20.5 },
+//   { text: '分区9',openT:0,closeT:20.3},
+//   { text: '分区10' ,openT:0,closeT:20.2},
+// ])
+//table行
+let countTr = ref<number>(10)
+//开启、关闭说明文字
+let openTempText = ref('开启温度')
+let closeTempText = ref('关闭温度')
+let fiberText = ref('光纤测温')
+let canvas = ref(null);
+let wavePoints = [10, 42, 35, 57, 29, 37, 25, 32, 20,44,10, 42, 35, 57, 29, 37, 25, 32, 20,44]; // 示例数据,可以根据需要调整
+
+
+
+function drawWave() {
+  const ctx = canvas.value.getContext('2d');
+  ctx.beginPath();
+  ctx.moveTo(0, canvas.value.height / 2); // 从中心线的顶部开始
+  for (let i = 0; i < wavePoints.length; i++) {
+    const x = (i / (wavePoints.length - 1)) * canvas.value.width; // 计算X坐标
+    const y = canvas.value.height / 2 - wavePoints[i]; // 根据数组值计算Y坐标,这里假设波形向下为正方向
+    console.log(x,y,'坐标')
+    ctx.lineTo(x, y); // 绘制线条到点(x, y)
+  }
+  ctx.lineTo(canvas.value.width, canvas.value.height ); // 连接回中心线底部
+  ctx.strokeStyle = '#fff'; // 设置线条颜色
+  ctx.lineWidth = 0.5; // 设置线条宽度
+  ctx.stroke(); // 绘制路径
+}
+
+onMounted(() => {
+  // drawWave();
+});
+
+</script>
+
+<style lang="less" scoped>
+@import '/@/design/theme.less';
+
+@{theme-deepblue} {
+  .electro-chamber {
+    --image-bg: url('@/assets/images/themify/deepblue/home-container/configurable/electroChamber/1-1.png');
+    --image-nav-title: url('@/assets/images/themify/deepblue/home-container/configurable/electroChamber/1-2.png');
+
+  }
+}
+
+
+.partition-top {
+  --image-bg: url('@/assets/images/home-container/configurable/electroChamper/1-1.png');
+  --image-nav-title: url('@/assets/images/home-container/configurable/electroChamper/1-2.png');
+  position: relative;
+  width: 100%;
+  height: 100%;
+  background: var(--image-bg) no-repeat;
+  background-size: 100% 100%;
+  padding: 15px 60px 0px 30px;
+  box-sizing: border-box;
+
+  .nav-title {
+    width: 100%;
+    height: 32px;
+    // margin: 0px 30px 10px 30px;
+    margin-bottom: 10px;
+    background: var(--image-nav-title) no-repeat;
+    background-size: 100% 100%;
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+
+    .nav-title-text {
+      display: flex;
+      flex: 1;
+      height: 100%;
+      justify-content: center;
+      align-items: center;
+      color: #3df6ff;
+    }
+  }
+
+  .nav-content {
+    position: relative;
+    height: calc(100% - 52px);
+    width: 100%;
+    // margin: 0px 30px 10px 30px;
+    margin-bottom: 10px;
+    border-left: 1px solid rgba(85, 118, 193, .4);
+    border-top: 1px solid rgba(85, 118, 193, .4);
+    display: flex;
+    flex-direction: column;
+
+    .content-tr {
+      display: flex;
+      flex: 1;
+      width: 100%;
+      border-bottom: 1px solid rgba(85, 118, 193, .4);
+
+      .content-td {
+        display: flex;
+        flex: 1;
+        justify-content: center;
+        align-items: center;
+        height: 100%;
+        border-right: 1px solid rgba(85, 118, 193, .4);
+      }
+    }
+  }
+
+  .open-temp {
+    position: absolute;
+    left: 12px;
+    top: 56px;
+    width: 15px;
+    font-size: 12px;
+  }
+
+  .close-temp {
+    position: absolute;
+    left: 12px;
+    bottom: 10px;
+    font-size: 12px;
+    width: 15px;
+  }
+
+  .temp-scale {
+    position: absolute;
+    right: 53px;
+    top: 58px;
+    height: calc(100% - 67px);
+    width: 6px;
+    border-top: 1px solid rgba(85, 118, 193, .4);
+
+    .scale-item {
+      width: 100%;
+      height: 10%;
+      border-bottom: 1px solid rgba(85, 118, 193, .4);
+    }
+  }
+
+  .temp-scale-text {
+    position: absolute;
+    right: 37px;
+    top: 50px;
+    height: calc(100% - 67px);
+    width: 12px;
+
+    .scale-item-text {
+      width: 100%;
+      height: 10%;
+      font-size: 12px;
+    }
+  }
+
+  .fiber-temp {
+    position: absolute;
+    right: 8px;
+    top: 42%;
+    font-size: 12px;
+    width: 15px;
+  }
+
+}
+</style>

+ 241 - 0
src/views/vent/home/configurable/components/preset/cardList.vue

@@ -0,0 +1,241 @@
+<template>
+  <div class="card-list">
+    <div class="list-box" v-for="(item, index) in cardListData" :key="index">
+      <div class="box-item-title">{{ item.title }}</div>
+      <div class="box-item-content">
+        <div class="content-area">
+          <img src="@/assets/images/home-container/configurable/electroChamper/2-6.png" alt="">
+          <div class="item-text">{{ item.areaText }}</div>
+          <div class="item-val">{{ item.areaVal }}</div>
+        </div>
+        <div class="content-status">
+          <img src="@/assets/images/home-container/configurable/electroChamper/2-8.png" alt="">
+          <div class="item-text">{{ item.statusText }}</div>
+          <div class="item-val">{{ item.statusVal }}</div>
+        </div>
+        <div class="content-card-box">
+          <div class="card-box-item">
+            <div class="item-common item-green">
+              <div class="common-text">{{ item.phoneText }}</div>
+              <div class="common-val val-green">{{ item.phoneVal }}</div>
+            </div>
+            <div class="item-common item-blue">
+              <div class="common-text">{{ item.tempNowText }}</div>
+              <div class="common-val val-blue">{{ `${item.tempNowVal}℃` }}</div>
+            </div>
+            <div class="item-common item-green">
+              <div class="common-text">{{ item.tempOpenText }}</div>
+              <div class="common-val val-green">{{ `${item.tempOpenVal}℃` }}</div>
+            </div>
+            <div class="item-common item-blue">
+              <div class="common-text">{{ item.timeText }}</div>
+              <div class="common-val val-blue">{{ `${item.timeVal}s` }}</div>
+            </div>
+          </div>
+          <div class="card-box-item">
+            <div class="item-common item-blue item-switch">
+              <div>开启</div>
+              <a-switch v-model:checked="checked" size="small" />
+              <div>关闭</div>
+            </div>
+            <div class="item-common item-green">
+              <div class="common-text">{{ item.tempMaxText }}</div>
+              <div class="common-val val-green">{{ `${item.tempMaxVal}℃` }}</div>
+            </div>
+            <div class="item-common item-blue">
+              <div class="common-text">{{ item.tempCloseText }}</div>
+              <div class="common-val val-blue">{{ `${item.tempCloseVal}℃` }}</div>
+            </div>
+            <div class="item-common item-green">
+              <div class="common-text">{{ item.time3Text }}</div>
+              <div class="common-val val-green">{{ `${item.time3Val}s` }}</div>
+            </div>
+          </div>
+        </div>
+      </div>
+
+    </div>
+  </div>
+</template>
+
+<script setup lang="ts">
+import { ref } from 'vue'
+
+let checked = ref(true)
+let cardListData = ref<any[]>([
+  { id: 1, title: '01球阀', areaText: '烟雾模式-区域', areaVal: '分区4', statusText: '烟雾传感器状态', statusVal: '烟雾正常-低水平', phoneText: '机号', phoneVal: 4, tempNowText: '实时测温', tempNowVal: 21.2, tempOpenText: '开启温度', tempOpenVal: 30, timeText: '延时t1', timeVal: 3, tempMaxText: '最高温度', tempMaxVal: 21.3, tempCloseText: '关闭温度', tempCloseVal: 30, time3Text: '延时t3', time3Val: 3 },
+  // { id: 2, title: '02球阀', areaText: '烟雾模式-区域', areaVal: '分区4', statusText: '烟雾传感器状态', statusVal: '烟雾正常-低水平', phoneText: '机号', phoneVal: 4, tempNowText: '实时测温', tempNowVal: 21.2, tempOpenText: '开启温度', tempOpenVal: 30, timeText: '延时t1', timeVal: 3, tempMaxText: '最高温度', tempMaxVal: 21.3, tempCloseText: '关闭温度', tempCloseVal: 30, time3Text: '延时t3', time3Val: 3 },
+])
+
+</script>
+
+<style lang="less" scoped>
+@import '/@/design/theme.less';
+
+@{theme-deepblue} {
+  .card-list {
+    --image-title: url('@/assets/images/themify/deepblue/home-container/configurable/electroChamper/2-3.png');
+    --image-list-box: url('@/assets/images/themify/deepblue/home-container/configurable/electroChamper/2-4.png');
+    --image-content-area: url('@/assets/images/themify/deepblue/home-container/configurable/electroChamper/2-5.png');
+    --image-content-status: url('@/assets/images/themify/deepblue/home-container/configurable/electroChamper/2-7.png');
+    --image-blue: url('@/assets/images/themify/deepblue/home-container/configurable/electroChamper/2-9.png');
+    --image-green: url('@/assets/images/themify/deepblue/home-container/configurable/electroChamper/2-10.png');
+  }
+}
+
+.card-list {
+  --image-title: url('@/assets/images/home-container/configurable/electroChamper/2-3.png');
+  --image-list-box: url('@/assets/images/home-container/configurable/electroChamper/2-4.png');
+  --image-content-area: url('@/assets/images/home-container/configurable/electroChamper/2-5.png');
+  --image-content-status: url('@/assets/images/home-container/configurable/electroChamper/2-7.png');
+  --image-blue: url('@/assets/images/home-container/configurable/electroChamper/2-9.png');
+  --image-green: url('@/assets/images/home-container/configurable/electroChamper/2-10.png');
+  position: relative;
+  width: 100%;
+  height: 100%;
+  padding: 5px 15px 0px 15px;
+  box-sizing: border-box;
+  overflow-y: auto;
+
+  .list-box {
+    width: 100%;
+    // height: calc(50% - 5px);
+    // margin-bottom: 5px;
+    height: 100%;
+    background: var(--image-list-box) no-repeat;
+    background-size: 100% 100%;
+
+    .box-item-title {
+      width: 100%;
+      height: 38px;
+      line-height: 38px;
+      text-align: center;
+      background: var(--image-title) no-repeat;
+      background-size: 100% 100%;
+    }
+
+    .box-item-content {
+      display: flex;
+      flex-direction: column;
+      justify-content: space-around;
+      width: 100%;
+      height: calc(100% - 38px);
+      padding: 0px 8px;
+      box-sizing: border-box;
+      // font-size: 12px;
+
+      .content-area {
+        position: relative;
+        width: 100%;
+        height: 38px;
+        line-height: 38px;
+        background: var(--image-content-area) no-repeat;
+        background-size: 100% 100%;
+      }
+
+      .content-status {
+        position: relative;
+        width: 100%;
+        height: 38px;
+        line-height: 38px;
+        background: var(--image-content-status) no-repeat;
+        background-size: 100% 100%;
+      }
+
+      .content-card-box {
+        display: flex;
+        justify-content: space-between;
+
+        .card-box-item {
+          width: calc(50% - 5px);
+          height: 100%;
+
+          .item-common {
+            position: relative;
+            width: 100%;
+            height: 38px;
+            margin-bottom: 36px;
+          }
+
+          .item-green {
+            background: var(--image-green) no-repeat;
+            background-size: 100% 100%;
+          }
+
+          .item-blue {
+            background: var(--image-blue) no-repeat;
+            background-size: 100% 100%;
+          }
+
+          .item-switch {
+            display: flex;
+            justify-content: center;
+            align-items: center;
+          }
+
+          .common-text {
+            position: absolute;
+            left: 10px;
+            top: 50%;
+            transform: translate(0, -50%);
+            // font-size: 12px;
+          }
+
+          .common-val {
+            position: absolute;
+            right: 15px;
+            top: 50%;
+            transform: translate(0, -50%);
+            font-size: 12px;
+          }
+
+          .val-green {
+            font-family: 'douyuFont';
+            color: #2af7d7;
+          }
+
+          .val-blue {
+            font-family: 'douyuFont';
+            color: #91e0ff;
+          }
+        }
+      }
+
+      img {
+        position: absolute;
+        left: 12px;
+        top: 50%;
+        transform: translate(0, -50%);
+        width: 19px;
+        height: 17px;
+      }
+
+      .item-text {
+        position: absolute;
+        left: 52px;
+        top: 50%;
+        transform: translate(0, -50%);
+        // font-size: 12px;
+
+      }
+
+      .item-val {
+        position: absolute;
+        right: 16px;
+        top: 50%;
+        transform: translate(0, -50%);
+        // font-size: 12px;
+      }
+    }
+  }
+
+  ::v-deep .zxm-switch-small {
+    min-width: 36px;
+  }
+
+  ::v-deep .zxm-switch {
+    margin: 0px 5px;
+  }
+
+}
+</style>

+ 68 - 27
src/views/vent/home/configurable/configurable.api.ts

@@ -3,6 +3,8 @@ import { defHttp } from '/@/utils/http/axios';
 import { get } from '../billboard/utils';
 import { useGlobSetting } from '/@/hooks/setting';
 import { ref, reactive } from 'vue'
+import ceshi from './ceshi.json'
+
 
 enum Api {
   list = '/safety/ventanalyDevice/homedata2',
@@ -429,7 +431,7 @@ export const getTotal = (params) => {
   return (cache.get(key) as Promise<any>).then(async (res) => {
     console.log(res, '多灾融合预警数据')
 
-  let dataVent=await getLevelNum()
+    let dataVent = await getLevelNum()
     const levelsList = [
       {
         name: "报警",
@@ -449,7 +451,7 @@ export const getTotal = (params) => {
       },
       {
         name: "低风险",
-        value:  dataVent.vent || 0
+        value: dataVent.vent || 0
       },
     ];
     //通风监测预警数据
@@ -518,11 +520,11 @@ export const getTotal = (params) => {
         value1: el.pumpNumber
       }
     })
-   
+
     //火灾监测预警数据
     res.fireInfos = reactive({})
     res.fireInfos.dataOn = []
-   
+
     if (res.bundletubeInfo && res.bundletubeInfo.msgTxt.length != 0 && res.bundletubeInfo.msgTxt[0].datalist.length != 0) {
       res.bundletubeInfo.msgTxt[0].datalist.forEach((el, ind) => {
         res.fireInfos.dataOn.push({
@@ -561,30 +563,69 @@ export const getTotal = (params) => {
         : '-'
       : '';
     //粉尘监测预警数据
-     res.dustInfo = [
-          {
-            name: "报警",
-            value: res.info.sysInfo.dustS.levels.alarm
-          },
-          {
-            name: "重大风险",
-            value: res.info.sysInfo.dustS.levels.red
-          },
-          {
-            name: "较大风险",
-            value: res.info.sysInfo.dustS.levels.orange
-          },
-          {
-            name: "一般风险",
-            value: res.info.sysInfo.dustS.levels.yellow
-          },
-          {
-            name: "低风险",
-            value: dataVent.dust ? dataVent.dust : res.info.sysInfo.dustS.levels.blue
-          },
-        ];
-   
+    res.dustInfo = [
+      {
+        name: "报警",
+        value: res.info.sysInfo.dustS.levels.alarm
+      },
+      {
+        name: "重大风险",
+        value: res.info.sysInfo.dustS.levels.red
+      },
+      {
+        name: "较大风险",
+        value: res.info.sysInfo.dustS.levels.orange
+      },
+      {
+        name: "一般风险",
+        value: res.info.sysInfo.dustS.levels.yellow
+      },
+      {
+        name: "低风险",
+        value: dataVent.dust ? dataVent.dust : res.info.sysInfo.dustS.levels.blue
+      },
+    ];
+
 
     return res;
   });
+};
+
+//机电硐室
+export const getElectroData = (params) => {
+  //  const { sysOrgCode, sysDataType } = useGlobSetting();
+  //
+  //  const key = `${Api.getTotal}?${JSON.stringify(params)}`;
+  //  if (!cache.has(key)) {
+  //    cache.set(
+  //      key,
+  //      defHttp.get({ url: Api.getTotal, params }).finally(() => {
+  //        cache.delete(key);
+  //      })
+  //    );
+  //  }
+  //  return (cache.get(key) as Promise<any>).then(async (res) => {
+  //    return res;
+  //  });
+
+
+  let res = ceshi.msgTxt.find(el => el.type == 'ballvalve_auto')
+ 
+  res.tempData=res?.datalist?.map((el,index)=>{
+    return {
+      areaName:el.readData.areaName || `分区${index+1}`,
+      tempStart:el.readData.tempStart,
+      tempStop:el.readData.tempStop
+    }
+  })
+   console.log(res, '机电硐室数据')
+  return new Promise((resolve) => {
+    resolve(res)
+  })
+
+
+
+
+
+
 };

+ 183 - 1
src/views/vent/home/configurable/configurable.data.ts

@@ -4834,7 +4834,7 @@ export const testConfigBDFire: Config[] = [
       preset: [],
     },
     showStyle: {
-       size: 'width:998px;height:286px;',
+      size: 'width:998px;height:286px;',
       version: '保德',
       position: 'bottom:10px;left:445px',
     },
@@ -5512,3 +5512,185 @@ export const testConfigBDDust: Config[] = [
     },
   },
 ];
+
+//机电硐室
+export const testConfigElectro: Config[] = [
+  {
+    deviceType: 'datalist',
+    moduleName: '球阀',
+    pageType: 'electro-champer',
+    moduleData: {
+      header: {
+        show: true,
+        readFrom: '',
+        selector: {
+          show: true,
+          value: '${strinstallpos}',
+          toggleIcon: true,
+
+        },
+        
+        slot: {
+          show: false,
+          value: '',
+        },
+      },
+      background: {
+        show: false,
+        type: 'video',
+        link: '',
+      },
+      layout: {
+        direction: 'column',
+        items: [
+          {
+            name: 'card_list',
+            basis: '100%',
+          },
+        ],
+      },
+      board: [],
+      chart: [],
+      gallery: [],
+      gallery_list: [],
+      table: [],
+      list: [],
+      complex_list: [],
+      preset: [
+        {
+          readFrom: 'ventData',
+          echartOption: {
+            colorList: ['#ff0000', '#ff7700', '#d8b66f', '#dbbf2e', '#61b4c5'],
+          },
+        },
+      ],
+      to: '/ventilate/warn/home',
+    },
+    showStyle: {
+      size: 'width:380px;height:590px;',
+      version: '原版',
+      position: 'left:0px;top:0px',
+    },
+  },
+  {
+    deviceType: 'coData',
+    moduleName: '一氧化碳',
+    pageType: 'electro-chamber',
+    moduleData: {
+      header: {
+        show: false,
+        readFrom: '',
+        selector: {
+          show: false,
+          value: '',
+        },
+        slot: {
+          show: false,
+          value: '',
+        },
+      },
+      background: {
+        show: false,
+        type: 'video',
+        link: '',
+      },
+      layout: {
+        direction: 'column',
+        items: [
+          {
+            name: 'chart',
+            basis: '30%',
+          },
+          {
+            name: 'list',
+            basis: '70%',
+          },
+        ],
+
+      },
+      board: [],
+      list: [
+        {
+          type: 'N',
+          readFrom: 'arrayCount',
+          items: [
+            {
+              label: '分区1',
+              value: '${coVal}',
+              color: 'blue',
+              info: '',
+            },
+            {
+              label: '分区2',
+              value: '${co2Val}',
+              color: 'blue',
+              info: '',
+            },
+            {
+              label: '分区3',
+              value: '${o2Val}',
+              color: 'blue',
+              info: '',
+            },
+            {
+              label: '分区4',
+              value: '${tempVal}',
+              color: 'blue',
+              info: '',
+            },
+            {
+              label: '分区5',
+              value: '${coVal}',
+              color: 'blue',
+              info: '',
+            },
+            {
+              label: '分区6',
+              value: '${co2Val}',
+              color: 'blue',
+              info: '',
+            },
+            {
+              label: '分区7',
+              value: '${o2Val}',
+              color: 'blue',
+              info: '',
+            },
+            {
+              label: '分区8',
+              value: '${tempVal}',
+              color: 'blue',
+              info: '',
+            },
+
+          ],
+        },
+      ],
+      chart: [
+        {
+          type: 'line',
+          readFrom: '',
+          legend: { show: true },
+          xAxis: [{ show: true }],
+          yAxis: [{ show: true, name: '风量(m³/min)', position: 'left' }],
+          series: [
+            { readFrom: 'history_report', xprop: 'time', yprop: 'faceIntM3', label: '进风' },
+            { readFrom: 'history_report', xprop: 'time', yprop: 'faceRetM3', label: '回风' },
+          ],
+        }
+      ],
+      table: [],
+      gallery: [],
+      complex_list: [],
+      gallery_list: [],
+      preset: [],
+      to: '',
+    },
+    showStyle: {
+      size: 'width:380px;height:590px;',
+      version: '原版',
+      position: 'top:0px;right:0px;',
+    },
+  },
+
+];

+ 126 - 0
src/views/vent/home/configurable/electroChamber.vue

@@ -0,0 +1,126 @@
+<template>
+  <div class="electro-chamber">
+    <div class="top-bg">
+      <div class="main-title">{{ mainTitle }}</div>
+    </div>
+    <div class="content-container">
+      <div class="top-area">
+        <PartitionTop :tempData="data.tempData"></PartitionTop>
+      </div>
+      <div class="bot-area">
+        <!-- 采用定位方式以避免出现各个模块隐藏时其他模块下移的问题 -->
+        <ModuleCommon v-for="cfg in configs" :key="cfg.deviceType" :show-style="cfg.showStyle"
+          :module-data="cfg.moduleData" :module-name="cfg.moduleName" :device-type="cfg.deviceType" :data="data"
+          :visible="true" :style="{ zIndex: 1 }" />
+      </div>
+
+      <!-- <div style="width: 1000px; height: 570px; position: absolute; left: calc(50% - 500px); top: 60px">
+        <VentModal />
+      </div> -->
+    </div>
+
+  </div>
+</template>
+<script lang="ts" setup>
+import { onMounted, onUnmounted } from 'vue';
+import { useInitConfigs, useInitPage } from './hooks/useInit';
+import PartitionTop from './components/partition-top.vue'
+import ModuleCommon from './components/ModuleCommon.vue';
+import VentModal from '/@/components/vent/micro/ventModal.vue';
+import { getElectroData } from './configurable.api';
+import { testConfigElectro } from './configurable.data';
+
+
+const { configs, devicesTypes, fetchConfigs } = useInitConfigs();
+const { mainTitle, data, updateData } = useInitPage('机电硐室');
+let interval: number | undefined;
+
+onMounted(() => {
+  fetchConfigs('BD_dust').then(() => {
+    configs.value = testConfigElectro;
+    getElectroData({}).then(updateData);
+  });
+  setInterval(() => {
+    getElectroData({}).then(updateData);
+  }, 200000);
+});
+
+onUnmounted(() => {
+  clearInterval(interval);
+});
+
+function redirectTo(url) {
+  window.open(url);
+}
+</script>
+<style lang="less" scoped>
+@import '/@/design/theme.less';
+
+@{theme-deepblue} {
+  .electro-chamber {
+    --image-bg: url('@/assets/images/themify/deepblue/home-container/configurable/firehome/bg.png');
+    --image-fire-title: url(/@/assets/images/themify/deepblue/home-container/configurable/firehome/fire-title.png);
+    --image-qkjaq: url('/@/assets/images/themify/deepblue/home-container/configurable/firehome/qkjaq.png');
+    --image-common-border2: url('/@/assets/images/themify/deepblue/home-container/configurable/firehome/common-border2.png');
+    --image-znzjxt: url(/@/assets/images/themify/deepblue/home-container/configurable/firehome/znzjxt.png);
+    --image-znzdxt: url(/@/assets/images/themify/deepblue/home-container/configurable/firehome/znzdxt.png);
+  }
+}
+
+.electro-chamber {
+  --image-top: url('@/assets/images/vent/vent-header1.png');
+  --image-bg: url('@/assets/images/home-container/configurable/firehome/bg.png');
+  --image-fire-title: url(/@/assets/images/home-container/configurable/firehome/fire-title.png);
+  --image-qkjaq: url('/@/assets/images/home-container/configurable/firehome/qkjaq.png');
+  --image-common-border2: url('/@/assets/images/home-container/configurable/firehome/common-border2.png');
+  --image-znzjxt: url(/@/assets/images/home-container/configurable/firehome/znzjxt.png);
+  --image-znzdxt: url(/@/assets/images/home-container/configurable/firehome/znzdxt.png);
+  width: 100%;
+  height: 100%;
+  color: @white;
+  position: relative;
+
+  .top-bg {
+    width: 100%;
+    height: 86px;
+    background: var(--image-top) no-repeat top;
+    position: absolute;
+    z-index: 1;
+
+    .main-title {
+      height: 86px;
+      line-height: 68px;
+      font-family: 'douyuFont';
+      font-size: 24px;
+      letter-spacing: 2px;
+      display: flex;
+      justify-content: center;
+    }
+  }
+
+  .content-container {
+    position: absolute;
+    margin-top: 80px;
+    height: calc(100% - 80px);
+    width: 100%;
+    padding: 0px 15px 15px 15px;
+    box-sizing: border-box;
+
+    .top-area {
+      width: 100%;
+      height: 230px;
+      margin-bottom: 15px;
+    }
+
+    .bot-area {
+      position: relative;
+      height: calc(100% - 245px);
+      width: 100%;
+    }
+  }
+}
+
+:deep(.loading-box) {
+  position: unset;
+}
+</style>

+ 1 - 2
src/views/vent/monitorManager/comment/warnAnalysis.vue

@@ -49,7 +49,6 @@ import { analysisColumns } from './comment.data'
 import { defHttp } from '/@/utils/http/axios';
 import dayjs from 'dayjs';
 import { message } from 'ant-design-vue';
-import ceshi from './ceshi.json'
 
 let props = defineProps({
     deviceType: {
@@ -230,4 +229,4 @@ onMounted(() => {
     border-color: #74e9fe;
     color: #fff;
 }
-</style>
+</style>

+ 1 - 1
src/views/vent/safetyList/safetyList.api.ts

@@ -54,7 +54,7 @@ export const remove158Substation = (params) => defHttp.post({ url: Api.remove158
 //158分站操作记录
 export const get158SetLog = (params) => defHttp.post({ url: Api.get158SetLog, params }, { joinParamsToUrl: true });
 //删除158分站传感器
-export const remove158Device = (params) => defHttp.post({ url: Api.remove158Device, params });
+export const remove158Device = (params) => defHttp.post({ url: Api.remove158Device, params },{ joinParamsToUrl: true });
 //158监测详情读取列表
 export const set158StationDevicesRead = (params) => defHttp.post({ url: Api.set158StationDevicesRead, params }, { joinParamsToUrl: true });
 //编辑设备名称