Browse Source

Merge branch 'master' of http://182.92.126.35:3000/hrx/mky-vent-base

lxh 3 months ago
parent
commit
e2b93ca8ba

BIN
public/model/glft/ztfj/ztfj-xj_2024-07-12.glb


BIN
public/model/glft/ztfj/ztfj_2024-12-25.glb


+ 1 - 1
src/utils/encryption/signMd5Utils.js

@@ -9,7 +9,7 @@ export default class signMd5Utils {
    */
 
   static sortAsc(jsonObj) {
-    let arr = new Array();
+    let arr = [];
     let num = 0;
     for (let i in jsonObj) {
       arr[num] = i;

+ 2 - 2
src/utils/threejs/main.worker.ts

@@ -54,8 +54,8 @@ export function initModalWorker() {
     'ztfj/dzp_2023-06-02.glb',
     'ztfj/fbm_2023-06-02.glb',
     'ztfj/ztfj-fc_2023-06-02.glb',
-    'ztfj/ztfj_2024-12-25.glb',
-    'ztfj/ztfj-xj_2024-07-12.glb',
+    'ztfj/ztfj_2025-02-21.glb',
+    'ztfj/ztfj-xj_2025-02-22.glb',
     'fire/laneway_2024-03-04.glb',
     'fire/laneway-device_2024-03-19.glb',
     'fire/chamber_2023-06-02.glb',

+ 8 - 8
src/views/super/drag/page/components/PageModal.vue

@@ -14,7 +14,7 @@
   import { saveOrUpdate } from '../page.api';
   import { removeCacheByDynKey } from '/@/utils/auth';
   import { JDragConfigEnum } from '/@/enums/jeecgEnum';
-  import { encryptByBase64,decodeByBase64 } from '/@/utils/cipher.ts';
+  import { encryptByBase64, decodeByBase64 } from '/@/utils/cipher.ts';
   // 声明Emits
   const emit = defineEmits(['success', 'register']);
   const isUpdate = ref(true);
@@ -30,11 +30,11 @@
     setModalProps({ confirmLoading: false });
     isUpdate.value = !!data?.isUpdate;
     if (unref(isUpdate)) {
-			let obj = {...data.record}
-			//解密
-			if(obj.protectionCode && obj.protectionCode.length>0){
-				 obj.protectionCode = decodeByBase64( obj.protectionCode)
-			}
+      let obj = { ...data.record };
+      //解密
+      if (obj.protectionCode && obj.protectionCode.length > 0) {
+        obj.protectionCode = decodeByBase64(obj.protectionCode);
+      }
       //表单赋值
       await setFieldsValue({
         ...obj,
@@ -53,9 +53,9 @@
       const values = await validate();
       setModalProps({ confirmLoading: true });
       //加密
-      if(values.protectionCode){
+      if (values.protectionCode) {
         values.protectionCode = encryptByBase64(values.protectionCode);
-			}
+      }
       //提交表单
       const res = await saveOrUpdate(values, isUpdate.value);
       //编辑后,将缓存中的密码清除掉

+ 2 - 9
src/views/vent/bundle/bundleMonitorTable/bundle-table.data.ts

@@ -859,8 +859,8 @@ export const Sgtcolumns: BasicColumn[] = [
     title: '设备安装地点',
     width: 100,
     align: 'center',
-    dataIndex: 'sbazdd',
-    key: 'sbazdd',
+    dataIndex: 'jcdd',
+    key: 'jcdd',
   },
   {
     title: '管路编号',
@@ -950,13 +950,6 @@ export const Sgtcolumns: BasicColumn[] = [
         width: 80,
         align: 'center',
       },
-      {
-        title: '平均值',
-        dataIndex: 'ch4_ave',
-        key: 'ch4_ave',
-        width: 80,
-        align: 'center',
-      },
     ],
   },
   {

+ 2 - 2
src/views/vent/bundleSpy/bundleSpyTable/bundleSpy-table.data.ts

@@ -552,8 +552,8 @@ export const Sgtcolumns: BasicColumn[] = [
   },
   {
     title: '采样时间',
-    dataIndex: 'cyfxsj',
-    key: 'cyfxsj',
+    dataIndex: 'qyfxsj',
+    key: 'qyfxsj',
     width: 100,
     align: 'center',
   },

+ 5 - 5
src/views/vent/home/configurable/configurable.api.ts

@@ -62,12 +62,12 @@ export const list = (params) => {
     });
     res.sys_majorpath.forEach((e) => {
       const { drag_1, drag_2, drag_3, drag_total } = e.majorpath;
-      const { retM3_merge = { value: '1' } } = e.readData;
-      const m3_merge = parseInt(retM3_merge.value);
+      const { zuli = { value: '1' } } = e.readData;
+      const drag_merge = parseInt(zuli.value);
       e.piechart = [
-        { val: drag_1, valMock: floor((drag_1 / drag_total) * m3_merge), label: '进风区' },
-        { val: drag_2, valMock: floor((drag_2 / drag_total) * m3_merge), label: '用风区' },
-        { val: drag_3, valMock: floor((drag_3 / drag_total) * m3_merge), label: '回风区' },
+        { val: drag_1, valMock: floor((drag_1 / drag_total) * drag_merge), label: '进风区' },
+        { val: drag_2, valMock: floor((drag_2 / drag_total) * drag_merge), label: '用风区' },
+        { val: drag_3, valMock: floor((drag_3 / drag_total) * drag_merge), label: '回风区' },
       ];
     });
     res.device_arr = Object.values(res.device);

+ 10 - 10
src/views/vent/home/configurable/configurable.data.ts

@@ -33,11 +33,11 @@ export const testConfigVent: Config[] = [
         items: [
           {
             name: 'qh_curve',
-            basis: '72%',
+            basis: '67%',
           },
           {
             name: 'board',
-            basis: '28%',
+            basis: '33%',
           },
         ],
       },
@@ -1438,11 +1438,11 @@ export const testConfigVentRealtime: Config[] = [
         items: [
           {
             name: 'qh_curve',
-            basis: '72%',
+            basis: '67%',
           },
           {
             name: 'board',
-            basis: '28%',
+            basis: '33%',
           },
         ],
       },
@@ -1454,19 +1454,19 @@ export const testConfigVentRealtime: Config[] = [
           items: [
             {
               label: '风量(m³/min)',
-              value: '${Fan1StartStatus}',
               trans: {
-                '1': '${Fan1_FanFlow}',
-                '0': '${Fan2_FanFlow}',
+                '0': '${readData.Fan2_FanFlow}',
+                '1': '${readData.Fan1_FanFlow}',
               },
+              value: '${readData.Fan1StartStatus}',
             },
             {
               label: '负压(Pa)',
-              value: '${Fan1StartStatus}',
               trans: {
-                '1': '${Fan1FanPre}',
-                '0': '${Fan2FanPre}',
+                '0': '${readData.Fan2FanPre}',
+                '1': '${readData.Fan1FanPre}',
               },
+              value: '${readData.Fan1StartStatus}',
             },
             {
               label: '漏风率(%)',

+ 503 - 719
src/views/vent/home/configurable/configurable.data.wz.ts

@@ -1,725 +1,6 @@
 import { Config } from '../../deviceManager/configurationTable/types';
 // 王庄
 
-const WZfireMock = {
-  allMineWarn: '低风险', //全矿井风险级别
-  fireManageInfo: {
-    //工作面风险监测
-    totalNum: '5', //工作面总数
-    dfxNum: '5', //工作面低风险数
-    ybNum: '5', //工作面一般风险数
-    jdNum: '5', //工作面较大风险数
-    zdNum: '5', //工作面重大风险
-    nyWarnLevel: '低风险', //内因火灾预警级别
-    wyWarnLevel: '低风险', //外因火灾预警级别
-    sysList: [
-      {
-        sysName: '工作面名称1', //工作面名称
-        warnLevel: '低风险', //预警级别
-        maxVal: '1.88', //最高温度
-      },
-      {
-        sysNamme: '工作面名称2', //工作面名称
-        warnLevel: '低风险', //预警级别
-        maxVal: '1.88', //最高温度
-      },
-      // {
-      //   sysNamme: '工作面名称3', //工作面名称
-      //   warnLevel: '低风险', //预警级别
-      //   maxVal: '1.88', //最高温度
-      // },
-      // {
-      //   sysNamme: '工作面名称4', //工作面名称
-      //   warnLevel: '低风险', //预警级别
-      //   maxVal: '1.88', //最高温度
-      // },
-      // {
-      //   sysNamme: '工作面名称5', //工作面名称
-      //   warnLevel: '低风险', //预警级别
-      //   maxVal: '1.88', //最高温度
-      // },
-      // {
-      //   sysNamme: '工作面名称6', //工作面名称
-      //   warnLevel: '低风险', //预警级别
-      //   maxVal: '1.88', //最高温度
-      // },
-    ],
-  },
-  obfObj: {
-    //密闭采空区监测系统
-    maxC2H4: '', //乙烯最高值
-    maxDp: '', //压差最大值
-    maxTemperature: '', //温度最大值
-    maxCo: '', //一氧化碳最大值
-    maxCo2: '', //二氧化碳最大值
-    maxCh4: '', //甲烷最大值
-    maxC2h2: '', //乙炔最大值
-    maxO2: '', //氧气最大值
-    arrayDev: [
-      //密闭各设备详情信息
-      {
-        strinstallpos: '位置1', //设备安装位置
-        c2h4Val: '0.2', //乙烯
-        dpVal: '0.6', //压差
-        tempVal: '12.1', //温度
-        coVal: '0', //一氧化碳
-        co2Val: '10', //二氧化碳
-        ch4Val: '0', //甲烷
-        c2h2Val: '0', //乙炔
-        o2Val: '20', //氧气
-      },
-      {
-        strinstallpos: '位置2', //设备安装位置
-        c2h4Val: '0.2', //乙烯
-        dpVal: '0.6', //压差
-        tempVal: '12.1', //温度
-        coVal: '0', //一氧化碳
-        co2Val: '10', //二氧化碳
-        ch4Val: '0', //甲烷
-        c2h2Val: '0', //乙炔
-        o2Val: '20', //氧气
-      },
-    ],
-  },
-  sgGxObj: {
-    //工作面束管监测
-    btArray: [
-      //束管统计信息
-      {
-        name: 'CO', //数据名称(前端自己处理化学方程式的标识符)
-        val: '0.2', //最大值
-        strinstallpos: '位置1', //安装位置
-        time: '2024-09-12 15:33:50',
-      },
-      {
-        name: 'CO2', //数据名称(前端自己处理化学方程式的标识符)
-        val: '0.3', //最大值
-        strinstallpos: '位置1', //安装位置
-        time: '2024-09-12 15:33:50',
-      },
-    ],
-    devGxcw: [
-      //光纤测温各设备信息
-      {
-        strinstallpos: '位置1', //安装位置
-        fmax: '0', //最高浓度
-        fmin: '0', //最低温度
-        favg: '0', //平均温度
-        fibreTemperature:
-          '[{"pos":1,"value":"17.8"},{"pos":2,"value":"18.0"},{"pos":3,"value":"18.5"},{"pos":4,"value":"18.6"},{"pos":5,"value":"18.4"},{"pos":6,"value":"18.1"}]',
-        warnLevel: '低风险', //风险监测
-      },
-      {
-        strinstallpos: '位置2', //安装位置
-        fmax: '0', //最高浓度
-        fmin: '0', //最低温度
-        favg: '0', //平均温度
-        fibreTemperature:
-          '[{"pos":1,"value":"7.8"},{"pos":2,"value":"18.0"},{"pos":3,"value":"18.5"},{"pos":4,"value":"18.6"},{"pos":5,"value":"18.4"},{"pos":6,"value":"18.1"}]',
-        warnLevel: '低风险', //风险监测
-      },
-    ],
-    devSgjc: [
-      //束管监测各设备信息
-      {
-        strinstallpos: '位置1', //安装位置
-        coVal: '0', //一氧化碳值
-        co2Val: '0', //二氧化碳值
-        ch4Val: '0', //甲烷值
-        c2h2Val: '0', //乙炔值
-        c2h4Val: '0', //乙烯值
-        o2Val: '0', //氧气值
-        connectSta: '连接', //连接状态
-        warnLevel: '低风险', //风险监测
-        btTriBlast: '{"G_y":10.53,"G_x":0,"F_y":0,"A_x":5.0,"B_x":15.0,"A_y":19.93,"B_y":17.83,"E_y":10.0,"F_x":9.55,"E_x":5.0}', //爆炸三角信息
-      },
-      {
-        strinstallpos: '位置2', //安装位置
-        coVal: '0', //一氧化碳值
-        co2Val: '0', //二氧化碳值
-        ch4Val: '0', //甲烷值
-        c2h2Val: '0', //乙炔值
-        c2h4Val: '0', //乙烯值
-        o2Val: '0', //氧气值
-        connectSta: '连接', //连接状态
-        warnLevel: '低风险', //风险监测
-        btTriBlast: '{"G_y":10.53,"G_x":0,"F_y":0,"A_x":5.0,"B_x":15.0,"A_y":19.93,"B_y":17.83,"E_y":10.0,"F_x":9.55,"E_x":5.0}', //爆炸三角信息
-      },
-    ],
-  },
-  pdArray: [
-    //带式输送机防灭火监控系统
-    {
-      systemname: '皮带场景1', //场景名称
-      arrayCount: [
-        //场景统计信息
-        {
-          name: '光纤预警', //设备名称
-          type: '最高温度', //参数类型
-          val: '35.2', //参数值
-        },
-        {
-          name: '一氧化碳预警',
-          type: '最高浓度',
-          val: '2.3',
-        },
-        {
-          name: '烟雾预警',
-          type: '最高浓度',
-          val: '2.4',
-        },
-      ],
-      arrayFiber: [
-        //场景下各光纤测温设备详情信息
-        {
-          strinstallpos: '位置1', //安装位置
-          fmax: '0', //最高浓度
-          fmin: '0', //最低温度
-          favg: '0', //平均温度
-          fibreTemperature:
-            '[{"pos":1,"value":"17.8"},{"pos":2,"value":"18.0"},{"pos":3,"value":"18.5"},{"pos":4,"value":"18.6"},{"pos":5,"value":"18.4"},{"pos":6,"value":"18.1"}]',
-          warnLevel: '低风险', //风险监测
-        },
-        {
-          strinstallpos: '位置2', //安装位置
-          fmax: '0', //最高浓度
-          fmin: '0', //最低温度
-          favg: '0', //平均温度
-          fibreTemperature:
-            '[{"pos":1,"value":"17.8"},{"pos":2,"value":"18.0"},{"pos":3,"value":"18.5"},{"pos":4,"value":"18.6"},{"pos":5,"value":"18.4"},{"pos":6,"value":"18.1"}]',
-          warnLevel: '低风险', //风险监测
-        },
-        {
-          strinstallpos: '位置1', //安装位置
-          fmax: '0', //最高浓度
-          fmin: '0', //最低温度
-          favg: '0', //平均温度
-          fibreTemperature:
-            '[{"pos":1,"value":"19.8"},{"pos":2,"value":"18.0"},{"pos":3,"value":"18.5"},{"pos":4,"value":"18.6"},{"pos":5,"value":"18.4"},{"pos":6,"value":"18.1"}]',
-          warnLevel: '低风险', //风险监测
-        },
-        {
-          strinstallpos: '位置2', //安装位置
-          fmax: '0', //最高浓度
-          fmin: '0', //最低温度
-          favg: '0', //平均温度
-          fibreTemperature:
-            '[{"pos":1,"value":"17.8"},{"pos":2,"value":"18.0"},{"pos":3,"value":"18.5"},{"pos":4,"value":"18.6"},{"pos":5,"value":"18.4"},{"pos":6,"value":"18.1"}]',
-          warnLevel: '低风险', //风险监测
-        },
-      ],
-    },
-    {
-      systemname: '皮带场景2', //场景名称
-      arrayCount: [
-        //场景统计信息
-        {
-          name: '光纤预警', //设备名称
-          type: '最高温度', //参数类型
-          val: '35.2', //参数值
-        },
-        {
-          name: '一氧化碳预警',
-          type: '最高浓度',
-          val: '2.3',
-        },
-        {
-          name: '烟雾预警',
-          type: '最高浓度',
-          val: '2.4',
-        },
-      ],
-      arrayFiber: [
-        //场景下各光纤测温设备详情信息
-        {
-          strinstallpos: '位置1', //安装位置
-          fmax: '0', //最高浓度
-          fmin: '0', //最低温度
-          favg: '0', //平均温度
-          fibreTemperature:
-            '[{"pos":1,"value":"17.8"},{"pos":2,"value":"18.0"},{"pos":3,"value":"18.5"},{"pos":4,"value":"18.6"},{"pos":5,"value":"18.4"},{"pos":6,"value":"18.1"}]',
-          warnLevel: '低风险', //风险监测
-        },
-        {
-          strinstallpos: '位置2', //安装位置
-          fmax: '0', //最高浓度
-          fmin: '0', //最低温度
-          favg: '0', //平均温度
-          fibreTemperature:
-            '[{"pos":1,"value":"17.8"},{"pos":2,"value":"18.0"},{"pos":3,"value":"18.5"},{"pos":4,"value":"18.6"},{"pos":5,"value":"18.4"},{"pos":6,"value":"18.1"}]',
-          warnLevel: '低风险', //风险监测
-        },
-        {
-          strinstallpos: '位置1', //安装位置
-          fmax: '0', //最高浓度
-          fmin: '0', //最低温度
-          favg: '0', //平均温度
-          fibreTemperature:
-            '[{"pos":1,"value":"17.8"},{"pos":2,"value":"18.0"},{"pos":3,"value":"18.5"},{"pos":4,"value":"18.6"},{"pos":5,"value":"18.4"},{"pos":6,"value":"18.1"}]',
-          warnLevel: '低风险', //风险监测
-        },
-        {
-          strinstallpos: '位置2', //安装位置
-          fmax: '0', //最高浓度
-          fmin: '0', //最低温度
-          favg: '0', //平均温度
-          fibreTemperature:
-            '[{"pos":1,"value":"17.8"},{"pos":2,"value":"18.0"},{"pos":3,"value":"18.5"},{"pos":4,"value":"18.6"},{"pos":5,"value":"18.4"},{"pos":6,"value":"18.1"}]',
-          warnLevel: '低风险', //风险监测
-        },
-      ],
-    },
-  ],
-  dsArray: [
-    //变电硐室防灭火监控系统
-    {
-      systemname: '硐室场景1', //场景名称
-      arrayCount: [
-        //场景统计信息
-        {
-          name: '光纤预警', //设备名称
-          type: '最高温度', //参数类型
-          val: '35.2', //参数值
-        },
-        {
-          name: '一氧化碳预警',
-          type: '最高浓度',
-          val: '2.3',
-        },
-        {
-          name: '烟雾预警',
-          type: '最高浓度',
-          val: '2.4',
-        },
-      ],
-      arrayFiber: [
-        //场景下各光纤测温设备详情信息
-        {
-          strinstallpos: '位置1', //安装位置
-          fmax: '0', //最高浓度
-          fmin: '0', //最低温度
-          favg: '0', //平均温度
-          fibreTemperature: [], //曲线图数据
-          warnLevel: '低风险', //风险监测
-        },
-        {
-          strinstallpos: '位置2', //安装位置
-          fmax: '0', //最高浓度
-          fmin: '0', //最低温度
-          favg: '0', //平均温度
-          fibreTemperature: [], //曲线图数据
-          warnLevel: '低风险', //风险监测
-        },
-        {
-          strinstallpos: '位置1', //安装位置
-          fmax: '0', //最高浓度
-          fmin: '0', //最低温度
-          favg: '0', //平均温度
-          fibreTemperature: [], //曲线图数据
-          warnLevel: '低风险', //风险监测
-        },
-        {
-          strinstallpos: '位置2', //安装位置
-          fmax: '0', //最高浓度
-          fmin: '0', //最低温度
-          favg: '0', //平均温度
-          fibreTemperature: [], //曲线图数据
-          warnLevel: '低风险', //风险监测
-        },
-      ],
-    },
-    {
-      systemname: '硐室场景2', //场景名称
-      arrayCount: [
-        //场景统计信息
-        {
-          name: '光纤预警', //设备名称
-          type: '最高温度', //参数类型
-          val: '35.2', //参数值
-        },
-        {
-          name: '一氧化碳预警',
-          type: '最高浓度',
-          val: '2.3',
-        },
-        {
-          name: '烟雾预警',
-          type: '最高浓度',
-          val: '2.4',
-        },
-      ],
-      arrayFiber: [
-        //场景下各光纤测温设备详情信息
-        {
-          strinstallpos: '位置1', //安装位置
-          fmax: '0', //最高浓度
-          fmin: '0', //最低温度
-          favg: '0', //平均温度
-          fibreTemperature: [], //曲线图数据
-          warnLevel: '低风险', //风险监测
-        },
-        {
-          strinstallpos: '位置2', //安装位置
-          fmax: '0', //最高浓度
-          fmin: '0', //最低温度
-          favg: '0', //平均温度
-          fibreTemperature: [], //曲线图数据
-          warnLevel: '低风险', //风险监测
-        },
-        {
-          strinstallpos: '位置1', //安装位置
-          fmax: '0', //最高浓度
-          fmin: '0', //最低温度
-          favg: '0', //平均温度
-          fibreTemperature: [], //曲线图数据
-          warnLevel: '低风险', //风险监测
-        },
-        {
-          strinstallpos: '位置2', //安装位置
-          fmax: '0', //最高浓度
-          fmin: '0', //最低温度
-          favg: '0', //平均温度
-          fibreTemperature: [], //曲线图数据
-          warnLevel: '低风险', //风险监测
-        },
-      ],
-    },
-  ],
-  aqjkArray: [
-    //安全监控系统
-    {
-      strinstallpos: '位置1', //安装位置
-      nowVal: '25.0', //温度
-      warnLevel: '低风险', //预警级别
-      time: '2024-09-12 15:33:50', //时间
-    },
-    {
-      strinstallpos: '位置2', //安装位置
-      nowVal: '25.0', //温度
-      warnLevel: '低风险', //预警级别
-      time: '2024-09-12 15:33:50', //时间
-    },
-  ],
-  //从设计图看以下信息暂时无用了
-  pdGxcw: [
-    //皮带光纤测温
-    {
-      systemname: '皮带场景1', //场景名称
-      devList: [
-        {
-          strinstallpos: '位置1', //安装位置
-          fmax: '0', //最高浓度
-          fmin: '0', //最低温度
-          favg: '0', //平均温度
-          fibreTemperature: [], //曲线图数据
-          warnLevel: '低风险', //风险监测
-        },
-        {
-          strinstallpos: '位置2', //安装位置
-          fmax: '0', //最高浓度
-          fmin: '0', //最低温度
-          favg: '0', //平均温度
-          fibreTemperature: [], //曲线图数据
-          warnLevel: '低风险', //风险监测
-        },
-      ],
-    },
-    {
-      systemname: '皮带场景2', //场景名称
-      devList: [
-        {
-          strinstallpos: '位置1', //安装位置
-          fmax: '0', //最高浓度
-          fmin: '0', //最低温度
-          favg: '0', //平均温度
-          fibreTemperature: [], //曲线图数据
-          warnLevel: '低风险', //风险监测
-        },
-        {
-          strinstallpos: '位置2', //安装位置
-          fmax: '0', //最高浓度
-          fmin: '0', //最低温度
-          favg: '0', //平均温度
-          fibreTemperature: [], //曲线图数据
-          warnLevel: '低风险', //风险监测
-        },
-      ],
-    },
-  ],
-  dsGxcw: [
-    //硐室光纤测温
-    {
-      systemname: '硐室场景1', //场景名称
-      devList: [
-        {
-          strinstallpos: '位置1', //安装位置
-          fmax: '0', //最高浓度
-          fmin: '0', //最低温度
-          favg: '0', //平均温度
-          fibreTemperature: [], //曲线图数据
-          warnLevel: '低风险', //风险监测
-        },
-        {
-          strinstallpos: '位置2', //安装位置
-          fmax: '0', //最高浓度
-          fmin: '0', //最低温度
-          favg: '0', //平均温度
-          fibreTemperature: [], //曲线图数据
-          warnLevel: '低风险', //风险监测
-        },
-      ],
-    },
-    {
-      systemname: '硐室场景2', //场景名称
-      devList: [
-        {
-          strinstallpos: '位置1', //安装位置
-          fmax: '0', //最高浓度
-          fmin: '0', //最低温度
-          favg: '0', //平均温度
-          fibreTemperature: [], //曲线图数据
-          warnLevel: '低风险', //风险监测
-        },
-        {
-          strinstallpos: '位置2', //安装位置
-          fmax: '0', //最高浓度
-          fmin: '0', //最低温度
-          favg: '0', //平均温度
-          fibreTemperature: [], //曲线图数据
-          warnLevel: '低风险', //风险监测
-        },
-      ],
-    },
-  ],
-  pdSgjc: [
-    //皮带束管监测
-    {
-      systemname: '皮带场景1', //场景名称
-      devList: [
-        {
-          strinstallpos: '位置1', //安装位置
-          coVal: '0', //一氧化碳值
-          co2Val: '0', //二氧化碳值
-          ch4Val: '0', //甲烷值
-          c2h2Val: '0', //乙炔值
-          c2h4Val: '0', //乙烯值
-          o2Val: '0', //氧气值
-          connectSta: '连接', //连接状态
-          warnLevel: '低风险', //风险监测
-          btTriBlast: '', //爆炸三角信息
-        },
-        {
-          strinstallpos: '位置2', //安装位置
-          coVal: '0', //一氧化碳值
-          co2Val: '0', //二氧化碳值
-          ch4Val: '0', //甲烷值
-          c2h2Val: '0', //乙炔值
-          c2h4Val: '0', //乙烯值
-          o2Val: '0', //氧气值
-          connectSta: '连接', //连接状态
-          warnLevel: '低风险', //风险监测
-          btTriBlast: '', //爆炸三角信息
-        },
-      ],
-    },
-    {
-      systemname: '皮带场景2', //场景名称
-      devList: [
-        {
-          strinstallpos: '位置1', //安装位置
-          coVal: '0', //一氧化碳值
-          co2Val: '0', //二氧化碳值
-          ch4Val: '0', //甲烷值
-          c2h2Val: '0', //乙炔值
-          c2h4Val: '0', //乙烯值
-          o2Val: '0', //氧气值
-          connectSta: '连接', //连接状态
-          warnLevel: '低风险', //风险监测
-          btTriBlast: '', //爆炸三角信息
-        },
-        {
-          strinstallpos: '位置2', //安装位置
-          coVal: '0', //一氧化碳值
-          co2Val: '0', //二氧化碳值
-          ch4Val: '0', //甲烷值
-          c2h2Val: '0', //乙炔值
-          c2h4Val: '0', //乙烯值
-          o2Val: '0', //氧气值
-          connectSta: '连接', //连接状态
-          warnLevel: '低风险', //风险监测
-          btTriBlast: '', //爆炸三角信息
-        },
-      ],
-    },
-  ],
-  dsSgjc: [
-    //硐室束管监测
-    {
-      systemname: '硐室场景1', //场景名称
-      devList: [
-        {
-          strinstallpos: '位置1', //安装位置
-          coVal: '0', //一氧化碳值
-          co2Val: '0', //二氧化碳值
-          ch4Val: '0', //甲烷值
-          c2h2Val: '0', //乙炔值
-          c2h4Val: '0', //乙烯值
-          o2Val: '0', //氧气值
-          connectSta: '连接', //连接状态
-          warnLevel: '低风险', //风险监测
-          btTriBlast: '', //爆炸三角信息
-        },
-        {
-          strinstallpos: '位置2', //安装位置
-          coVal: '0', //一氧化碳值
-          co2Val: '0', //二氧化碳值
-          ch4Val: '0', //甲烷值
-          c2h2Val: '0', //乙炔值
-          c2h4Val: '0', //乙烯值
-          o2Val: '0', //氧气值
-          connectSta: '连接', //连接状态
-          warnLevel: '低风险', //风险监测
-          btTriBlast: '', //爆炸三角信息
-        },
-      ],
-    },
-    {
-      systemname: '硐室场景2', //场景名称
-      devList: [
-        {
-          strinstallpos: '位置1', //安装位置
-          coVal: '0', //一氧化碳值
-          co2Val: '0', //二氧化碳值
-          ch4Val: '0', //甲烷值
-          c2h2Val: '0', //乙炔值
-          c2h4Val: '0', //乙烯值
-          o2Val: '0', //氧气值
-          connectSta: '连接', //连接状态
-          warnLevel: '低风险', //风险监测
-          btTriBlast: '', //爆炸三角信息
-        },
-        {
-          strinstallpos: '位置2', //安装位置
-          coVal: '0', //一氧化碳值
-          co2Val: '0', //二氧化碳值
-          ch4Val: '0', //甲烷值
-          c2h2Val: '0', //乙炔值
-          c2h4Val: '0', //乙烯值
-          o2Val: '0', //氧气值
-          connectSta: '连接', //连接状态
-          warnLevel: '低风险', //风险监测
-          btTriBlast: '', //爆炸三角信息
-        },
-      ],
-    },
-  ],
-  managesGxcw: [
-    //场景-光纤测温
-    {
-      systemname: '场景1', //场景名称
-      devList: [
-        {
-          strinstallpos: '位置1', //安装位置
-          fmax: '0', //最高浓度
-          fmin: '0', //最低温度
-          favg: '0', //平均温度
-          fibreTemperature: [], //曲线图数据
-          warnLevel: '低风险', //风险监测
-        },
-        {
-          strinstallpos: '位置2', //安装位置
-          fmax: '0', //最高浓度
-          fmin: '0', //最低温度
-          favg: '0', //平均温度
-          fibreTemperature: [], //曲线图数据
-          warnLevel: '低风险', //风险监测
-        },
-      ],
-    },
-    {
-      systemname: '场景2', //场景名称
-      devList: [
-        {
-          strinstallpos: '位置1', //安装位置
-          fmax: '0', //最高浓度
-          fmin: '0', //最低温度
-          favg: '0', //平均温度
-          fibreTemperature: [], //曲线图数据
-          warnLevel: '低风险', //风险监测
-        },
-        {
-          strinstallpos: '位置2', //安装位置
-          fmax: '0', //最高浓度
-          fmin: '0', //最低温度
-          favg: '0', //平均温度
-          fibreTemperature: [], //曲线图数据
-          warnLevel: '低风险', //风险监测
-        },
-      ],
-    },
-  ],
-  managesSgjc: [
-    //场景-束管监测
-    {
-      systemname: '场景1', //场景名称
-      devList: [
-        {
-          strinstallpos: '位置1', //安装位置
-          coVal: '0', //一氧化碳值
-          co2Val: '0', //二氧化碳值
-          ch4Val: '0', //甲烷值
-          c2h2Val: '0', //乙炔值
-          c2h4Val: '0', //乙烯值
-          o2Val: '0', //氧气值
-          connectSta: '连接', //连接状态
-          warnLevel: '低风险', //风险监测
-          btTriBlast: '', //爆炸三角信息
-        },
-        {
-          strinstallpos: '位置2', //安装位置
-          coVal: '0', //一氧化碳值
-          co2Val: '0', //二氧化碳值
-          ch4Val: '0', //甲烷值
-          c2h2Val: '0', //乙炔值
-          c2h4Val: '0', //乙烯值
-          o2Val: '0', //氧气值
-          connectSta: '连接', //连接状态
-          warnLevel: '低风险', //风险监测
-          btTriBlast: '', //爆炸三角信息
-        },
-      ],
-    },
-    {
-      systemname: '场景2', //场景名称
-      devList: [
-        {
-          strinstallpos: '位置1', //安装位置
-          coVal: '0', //一氧化碳值
-          co2Val: '0', //二氧化碳值
-          ch4Val: '0', //甲烷值
-          c2h2Val: '0', //乙炔值
-          c2h4Val: '0', //乙烯值
-          o2Val: '0', //氧气值
-          connectSta: '连接', //连接状态
-          warnLevel: '低风险', //风险监测
-          btTriBlast: '', //爆炸三角信息
-        },
-        {
-          strinstallpos: '位置2', //安装位置
-          coVal: '0', //一氧化碳值
-          co2Val: '0', //二氧化碳值
-          ch4Val: '0', //甲烷值
-          c2h2Val: '0', //乙炔值
-          c2h4Val: '0', //乙烯值
-          o2Val: '0', //氧气值
-          connectSta: '连接', //连接状态
-          warnLevel: '低风险', //风险监测
-          btTriBlast: '', //爆炸三角信息
-        },
-      ],
-    },
-  ],
-};
 export const testConfigWZFire: Config[] = [
   {
     deviceType: '',
@@ -1208,3 +489,506 @@ export const testConfigWZFire: Config[] = [
     },
   },
 ];
+
+export const testConfigSY: Config[] = [
+  {
+    deviceType: 'fanmain',
+    moduleName: '主通风机系统',
+    pageType: 'vent',
+    moduleData: {
+      header: {
+        show: true,
+        readFrom: '',
+        selector: {
+          show: true,
+          value: '${strinstallpos}',
+        },
+        slot: {
+          show: true,
+          value: '运行风机:${readData.Fan1StartStatus}',
+          trans: {
+            '1': '一号',
+            '0': '二号',
+          },
+        },
+      },
+      background: {
+        show: true,
+        type: 'video',
+        link: '/video/mainFan.mp4',
+      },
+      layout: {
+        direction: 'column',
+        items: [
+          {
+            name: 'board',
+            basis: '40%',
+          },
+        ],
+      },
+      board: [
+        {
+          type: 'A',
+          readFrom: 'readData',
+          layout: 'val-top',
+          items: [
+            {
+              label: '风量(m³/min)',
+              value: '${Fan1StartStatus}',
+              trans: {
+                '1': '${Fan1m3}',
+                '0': '${Fan2m3}',
+              },
+            },
+            {
+              label: '负压(Pa)',
+              value: '${Fan1StartStatus}',
+              trans: {
+                '1': '${Fan1FreqHz}',
+                '0': '${Fan1FreqHz}',
+              },
+            },
+          ],
+        },
+      ],
+      list: [],
+      chart: [],
+      table: [],
+      gallery: [],
+      complex_list: [],
+      gallery_list: [],
+      preset: [],
+    },
+    showStyle: {
+      size: 'width:470px;height:280px;',
+      version: '普通版',
+      position: 'top:60px;left:0;',
+    },
+  },
+  {
+    deviceType: 'fanlocal',
+    moduleName: '局部通风机系统',
+    pageType: 'vent',
+    moduleData: {
+      header: {
+        show: true,
+        readFrom: '',
+        selector: {
+          show: true,
+          value: '${strinstallpos}',
+        },
+        slot: {
+          show: true,
+          value: '运行风机:${readData.Fan1StartStatus}',
+          trans: {
+            '1': '一号',
+            '0': '二号',
+          },
+        },
+      },
+      background: {
+        show: true,
+        type: 'video',
+        link: '/video/fanLocal.mp4',
+      },
+      layout: {
+        direction: 'column',
+        items: [
+          {
+            name: 'board',
+            basis: '40%',
+          },
+        ],
+      },
+      board: [
+        {
+          type: 'A',
+          readFrom: 'readData',
+          layout: 'val-top',
+          items: [
+            {
+              label: '吸风量(m³/min)',
+              value: '${windQuantity1}',
+            },
+            {
+              label: '回风量(m³/min)',
+              value: '${windQuantity2}',
+            },
+          ],
+        },
+      ],
+      list: [],
+      chart: [],
+      table: [],
+      gallery: [],
+      complex_list: [],
+      gallery_list: [],
+      preset: [],
+    },
+    showStyle: {
+      size: 'width:450px;height:280px;',
+      version: '新版',
+      position: 'top:350px;left:0;',
+    },
+  },
+  {
+    deviceType: '',
+    moduleName: '通风设施远程控制',
+    pageType: 'vent',
+    moduleData: {
+      header: {
+        show: false,
+        readFrom: '',
+        selector: {
+          show: false,
+          value: '',
+        },
+        slot: {
+          show: false,
+          value: '',
+        },
+      },
+      background: {
+        show: false,
+        type: 'image',
+        link: '',
+      },
+      layout: {
+        direction: 'row',
+        items: [
+          {
+            name: 'device_alarm',
+            basis: '100%',
+          },
+        ],
+      },
+      board: [],
+      list: [],
+      chart: [],
+      table: [],
+      gallery: [],
+      complex_list: [],
+      gallery_list: [],
+      preset: [
+        {
+          readFrom: 'device',
+        },
+      ],
+      to: '/micro-vent-3dModal/dashboard/analysis?type=tunMonitor&deviceType=gate_xinJianFuXieJin',
+    },
+    showStyle: {
+      size: 'width:470px;height:280px;',
+      version: '普通版',
+      position: 'top:640px;left:0;',
+    },
+  },
+  {
+    deviceType: 'sys_wind',
+    moduleName: '风量监测',
+    pageType: 'vent',
+    moduleData: {
+      header: {
+        show: false,
+        readFrom: '',
+        selector: {
+          show: false,
+          value: '',
+        },
+        slot: {
+          show: false,
+          value: '',
+        },
+      },
+      background: {
+        show: false,
+        type: 'video',
+        link: '',
+      },
+      layout: {
+        direction: 'row',
+        items: [
+          {
+            name: 'chart',
+            basis: '100%',
+          },
+        ],
+      },
+      board: [],
+      list: [],
+      table: [],
+      preset: [],
+      gallery: [],
+      complex_list: [],
+      gallery_list: [],
+      chart: [
+        {
+          type: 'bar',
+          readFrom: '',
+          legend: { show: true },
+          xAxis: [{ show: true }],
+          yAxis: [
+            { show: true, name: '风量(m³/min)', position: 'left' },
+            { show: true, name: '风速(m/s)', position: 'right' },
+          ],
+          series: [
+            { readFrom: 'sys_wind', xprop: 'strinstallpos', yprop: 'readData.m3', label: '风量' },
+            { readFrom: 'sys_wind', xprop: 'strinstallpos', yprop: 'readData.va', label: '风速' },
+          ],
+        },
+      ],
+      to: '/micro-vent-3dModal/dashboard/analysis?type=tunMonitor&deviceType=windrect',
+    },
+    showStyle: {
+      size: 'width:1000px;height:280px;',
+      version: '普通版',
+      position: 'top:640px;left:460px;',
+    },
+  },
+  {
+    deviceType: 'sys_majorpath',
+    moduleName: '关键通风路线',
+    pageType: 'vent',
+    moduleData: {
+      header: {
+        show: true,
+        readFrom: '',
+        selector: {
+          show: true,
+          value: '${devicePos}',
+        },
+        slot: {
+          show: false,
+          value: '',
+        },
+      },
+      background: {
+        show: false,
+        type: 'video',
+        link: '',
+      },
+      layout: {
+        direction: 'column',
+        items: [
+          {
+            name: 'chart',
+            basis: '67%',
+          },
+          {
+            name: 'board',
+            basis: '33%',
+          },
+        ],
+      },
+      board: [
+        {
+          type: 'D',
+          readFrom: 'majorpath',
+          layout: 'label-top',
+          items: [
+            {
+              label: '风量(m³/min)',
+              value: '${m3_total}',
+            },
+            {
+              label: '矿井阻力(Pa)',
+              value: '${drag_total}',
+            },
+            {
+              label: '等积孔',
+              value: '6.12',
+            },
+          ],
+        },
+      ],
+      complex_list: [],
+      gallery: [],
+      list: [],
+      table: [],
+      chart: [
+        {
+          type: 'pie_drag',
+          readFrom: '',
+          legend: { show: false },
+          xAxis: [{ show: false }],
+          yAxis: [{ show: false, name: '风量', position: 'left' }],
+          series: [{ readFrom: 'piechart', xprop: 'label', yprop: 'val', label: '-' }],
+        },
+      ],
+      gallery_list: [],
+      preset: [],
+      to: '/micro-vent-3dModal/dashboard/analysis?type=tunMonitor&deviceType=sys_majorpath',
+    },
+    showStyle: {
+      size: 'width:470px;height:280px;',
+      version: '普通版',
+      position: 'top:60px;right:0;',
+    },
+  },
+  {
+    deviceType: 'sys_surface_caimei',
+    moduleName: '工作面智能监控',
+    pageType: 'vent',
+    moduleData: {
+      header: {
+        show: true,
+        readFrom: '',
+        selector: {
+          show: true,
+          value: '${devicePos}',
+        },
+        slot: {
+          show: false,
+          value: '',
+        },
+      },
+      background: {
+        show: false,
+        type: 'video',
+        link: '',
+      },
+      layout: {
+        direction: 'column',
+        items: [
+          {
+            name: 'chart',
+            basis: '65%',
+          },
+          {
+            name: 'board',
+            basis: '35%',
+          },
+        ],
+      },
+      board: [
+        {
+          type: 'B',
+          readFrom: '',
+          layout: 'label-top',
+          items: [
+            {
+              label: '进风(m³/min)',
+              value: '${jin}',
+            },
+            {
+              label: '回风(m³/min)',
+              value: '${hui}',
+            },
+            // {
+            //   label: '需风量(m³/min)',
+            //   value: '${xufengliang}',
+            // },
+          ],
+        },
+      ],
+      list: [],
+      preset: [],
+      table: [],
+      gallery: [],
+      chart: [
+        {
+          type: 'line',
+          readFrom: '',
+          legend: { show: true },
+          xAxis: [{ show: true }],
+          yAxis: [{ show: true, name: '风量(m³/min)', position: 'left' }],
+          series: [
+            { readFrom: 'history', xprop: 'time', yprop: 'jin', label: '进风' },
+            { readFrom: 'history', xprop: 'time', yprop: 'hui', label: '回风' },
+          ],
+        },
+      ],
+      gallery_list: [],
+      complex_list: [],
+      to: '/micro-vent-3dModal/dashboard/analysis?type=tunMonitor&deviceType=sys_surface_caimei&deviceid=${deviceID}',
+    },
+    showStyle: {
+      size: 'width:470px;height:280px;',
+      version: '普通版',
+      position: 'top:350px;right:0;',
+    },
+  },
+  {
+    deviceType: 'warn',
+    moduleName: '预警监测',
+    pageType: 'vent',
+    moduleData: {
+      header: {
+        show: true,
+        readFrom: '',
+        selector: {
+          show: false,
+          value: '',
+        },
+        slot: {
+          show: true,
+          value: '网络异常:${warn[0].netstatus.val}',
+        },
+      },
+      background: {
+        show: false,
+        type: 'video',
+        link: '',
+      },
+      layout: {
+        direction: 'row',
+        items: [
+          {
+            name: 'list',
+            basis: '100%',
+          },
+        ],
+      },
+      board: [],
+      list: [
+        {
+          type: 'timeline',
+          readFrom: 'warn[0]',
+          items: [
+            {
+              label: '报警',
+              value: '${alarm.val}',
+              info: '',
+              color: 'red',
+            },
+            {
+              label: '重大风险预警',
+              value: '${red.val}',
+              info: '',
+              color: 'red',
+            },
+            {
+              label: '较大风险预警',
+              value: '${orange.val}',
+              info: '',
+              color: 'orange',
+            },
+            {
+              label: '一般风险预警',
+              value: '${yellow.val}',
+              info: '',
+              color: 'yellow',
+            },
+            {
+              label: '低风险预警',
+              value: '${blue.val}',
+              info: '',
+              color: 'blue',
+            },
+          ],
+        },
+      ],
+      preset: [],
+      table: [],
+      gallery: [],
+      chart: [],
+      gallery_list: [],
+      complex_list: [],
+      to: '/monitorChannel/monitor-alarm-home',
+    },
+    showStyle: {
+      size: 'width:470px;height:280px;',
+      version: '普通版',
+      position: 'top:640px;right:0;',
+    },
+  },
+];

+ 261 - 0
src/views/vent/home/configurable/vent_SY.vue

@@ -0,0 +1,261 @@
+<!-- eslint-disable vue/multi-word-component-names -->
+<template>
+  <div class="company-home">
+    <div style="width: 100%; height: 100%; position: absolute; left: 0; top: 0; z-index: 0">
+      <VentModal />
+    </div>
+    <!-- 如果是有 deviceType、type 等 query,认为是详情页,不需要展示普通模块,只需要模型 -->
+    <template v-if="!route.query.deviceType">
+      <div v-if="!route.query.embed" class="top-bg">
+        <div class="main-title">{{ mainTitle }}</div>
+      </div>
+
+      <!-- 采用定位方式以避免出现各个模块隐藏时其他模块下移的问题 -->
+      <template v-if="isOriginal">
+        <ModuleOriginal
+          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"
+        />
+      </template>
+      <template v-else-if="isCommon">
+        <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"
+        />
+      </template>
+      <template v-else>
+        <!-- 下面是正常展示的各新版模块 -->
+        <ModuleEnhanced
+          v-for="cfg in enhancedConfigs"
+          :key="cfg.deviceType"
+          :visible="cfg.visible"
+          :show-style="cfg.showStyle"
+          :module-data="cfg.moduleData"
+          :module-name="cfg.moduleName"
+          :device-type="cfg.deviceType"
+          :data="data"
+          @close="cfg.visible = false"
+        />
+        <!-- 下面是用于呼出已隐藏的模块的按钮 -->
+        <div class="pos-absolute top-70px left-460px z-3">
+          <div v-for="(item, i) in hiddenList" :key="`vvhchg${i}`">
+            <AButton class="module-trigger-button" @click="item.visible = true">{{ item.moduleName }}</AButton>
+          </div>
+        </div>
+      </template>
+      <!-- <div
+        v-if="sysDataType === 'all'"
+        :class="{ 'realtime-mode': isDataRealTime }"
+        alt="切换数据模式"
+        class="switch-button report-mode right-525px"
+        @click="switchDataMode"
+      ></div> -->
+      <div class="switch-button icon-goto right-475px" @click="goMicroApp()"></div>
+    </template>
+  </div>
+</template>
+<script lang="ts" setup>
+  import { onMounted, onUnmounted, watch } from 'vue';
+  // import { CaretDownOutlined } from '@ant-design/icons-vue';
+  import { useInitConfigs, useInitPage } from './hooks/useInit';
+  import ModuleEnhanced from './components/ModuleEnhanced.vue';
+  import ModuleOriginal from './components/ModuleOriginal.vue';
+  import ModuleCommon from './components/ModuleCommon.vue';
+  // import { useRoute } from 'vue-router';
+  import VentModal from '/@/components/vent/micro/ventModal.vue';
+  import { list } from './configurable.api';
+  import { useRoute, useRouter } from 'vue-router';
+  import { useGlobSetting } from '/@/hooks/setting';
+  // import { testConfigVent, testConfigVentRealtime } from './configurable.data';
+
+  const { title = '智能通风管控系统' } = useGlobSetting();
+  const { configs, isOriginal, isCommon, fetchConfigs } = useInitConfigs();
+  const { mainTitle, enhancedConfigs, hiddenList, data, updateData, updateEnhancedConfigs } = useInitPage(title);
+  const route = useRoute();
+  const router = useRouter();
+  // const isDataRealTime = ref(sysDataType === 'monitor');
+  let interval: number | undefined;
+
+  // function switchDataMode() {
+  //   isDataRealTime.value = !isDataRealTime.value;
+  //   refresh();
+  // }
+
+  function refresh() {
+    fetchConfigs('vent').then(() => {
+      // configs.value = isDataRealTime.value ? testConfigVentRealtime : testConfigVent;
+      updateEnhancedConfigs(configs.value);
+
+      list({}).then(updateData);
+    });
+  }
+
+  function initInterval() {
+    setInterval(() => {
+      list({}).then(updateData);
+    }, 60000);
+  }
+
+  function goMicroApp() {
+    router.push({
+      path: route.path,
+      query: {
+        ...route.query,
+        type: 'model3D',
+        deviceType: 'model3D',
+      },
+    });
+  }
+
+  watch(
+    () => route.query,
+    () => {
+      if (route.query.deviceType) {
+        // 仅需要展示子应用,模拟 unmounted
+        clearInterval(interval);
+      } else {
+        // 模拟 mounted
+        refresh();
+        initInterval();
+      }
+    }
+  );
+
+  onMounted(() => {
+    refresh();
+    initInterval();
+  });
+
+  onUnmounted(() => {
+    clearInterval(interval);
+  });
+</script>
+<style lang="less" scoped>
+  @import '/@/design/theme.less';
+
+  @font-face {
+    font-family: 'douyuFont';
+    src: url('/@/assets/font/douyuFont.otf');
+  }
+
+  @{theme-deepblue} {
+    .company-home {
+      --image-modal-top: url('/@/assets/images/themify/deepblue/vent/home/modal-top.png');
+    }
+  }
+
+  .company-home {
+    --image-modal-top: url('/@/assets/images/vent/home/modal-top.png');
+    --image-monitor-realtime: url('/@/assets/images/company/monitor-realtime.png');
+    --image-monitor-doc: url('/@/assets/images/company/monitor-doc.png');
+    --image-monitor-goto: url('/@/assets/images/company/monitor-goto.png');
+
+    width: 100%;
+    height: 100%;
+    color: @white;
+    position: relative;
+    // background: url('@/assets/images/home-container/configurable/firehome/bg.png') no-repeat center;
+
+    .top-bg {
+      width: 100%;
+      height: 56px;
+      background: var(--image-modal-top) no-repeat center;
+      position: absolute;
+      z-index: 1;
+      .main-title {
+        height: 56px;
+        font-family: 'douyuFont';
+        font-size: 20px;
+        letter-spacing: 2px;
+        display: flex;
+        justify-content: center;
+        align-items: center;
+      }
+    }
+
+    // .module-left {
+    //   position: absolute;
+    //   width: 450px;
+    //   height: 280px;
+    //   left: 0;
+    // }
+    // .module-right {
+    //   position: absolute;
+    //   width: 450px;
+    //   height: 280px;
+    //   right: 0;
+    // }
+    // .module-bottom {
+    //   position: absolute;
+    //   width: 1000px;
+    //   height: 280px;
+    // }
+    .module-dropdown {
+      padding: 5px;
+      background-image: @vent-configurable-dropdown;
+      border-bottom: 2px solid @vent-configurable-home-light-border;
+      color: @vent-font-color;
+      position: absolute;
+      top: 60px;
+      right: 480px;
+    }
+    .module-dropdown-original {
+      padding: 10px;
+      background-image: @vent-configurable-dropdown;
+      border-bottom: 2px solid @vent-configurable-home-light-border;
+      color: @vent-font-color;
+      position: absolute;
+      top: 70px;
+      right: 460px;
+    }
+    .module-trigger-button {
+      color: @vent-font-color;
+      background-image: @vent-configurable-dropdown;
+      border: none;
+      border-bottom: 2px solid @vent-configurable-home-light-border;
+    }
+
+    .switch-button {
+      width: 34px;
+      height: 34px;
+      position: absolute;
+      // right: 5px;
+      bottom: 300px;
+      z-index: 5;
+      background-repeat: no-repeat;
+      background-size: 100% 100%;
+    }
+    .report-mode {
+      background-image: var(--image-monitor-doc);
+    }
+    .realtime-mode {
+      background-image: var(--image-monitor-realtime);
+    }
+    .icon-goto {
+      background-image: var(--image-monitor-goto);
+    }
+
+    .module-monitor-bar {
+      position: absolute;
+      top: 100px;
+      width: 1000px;
+      height: 200px;
+      left: calc(50% - 500px);
+    }
+  }
+  :deep(.loading-box) {
+    position: unset;
+  }
+</style>

+ 2 - 2
src/views/vent/monitorManager/deviceMonitor/components/device/device.data.ts

@@ -46,8 +46,8 @@ export const locationList = [
 ];
 
 export function getMonitorComponent() {
-  // const { sysOrgCode } = useGlobSetting();
-  const sysOrgCode = 'sdmtjtsgtmk';
+  const { sysOrgCode } = useGlobSetting();
+  // const sysOrgCode = 'sdmtjtsgtmk';
   let FiberModal;
   switch (sysOrgCode) {
     case 'sdmtjtsgtmk': //石圪台

+ 525 - 24
src/views/vent/monitorManager/deviceMonitor/components/device/modal/fiber.modal.hlg.vue

@@ -115,9 +115,6 @@
           dataIndex: 'position',
           width: 60,
           align: 'center',
-          customRender: ({ index }) => {
-            return `测点${index + 1}`;
-          },
         },
         {
           title: '最高温度(℃)',
@@ -188,37 +185,541 @@
 
       watch([() => props.dataSource, () => props.activeID], ([newDataSource, newActiveID], [oldDataSource, oldActiveID]) => {
         console.log(newDataSource, 'newDataSource--------------');
-        deviceList.value = newDataSource as any[];
+
         // if (newActiveID != oldActiveID) {
         //   activeDeviceID.value = newActiveID as string;
         // }
+        // newDataSource = [
+        //   {
+        //     msgType: null,
+        //     deviceID: '1754025882387599361',
+        //     strname: '31煤中央变电所电缆沟-通道一',
+        //     strinstallpos: '31煤中央变电所电缆沟-通道一',
+        //     fsectarea: 'null',
+        //     stationname: '光纤测温',
+        //     stationtype: 'redis',
+        //     deviceType: 'fiber_normal',
+        //     typeName: '光纤测温',
+        //     netStatus: 1,
+        //     warnFlag: 0,
+        //     warnLevel: 0,
+        //     warnLevel_str: '正常',
+        //     syswarnLevel: null,
+        //     syswarnLevel_str: null,
+        //     syswarnLevel_des: null,
+        //     warnTime: null,
+        //     readTime: '2025-02-17 14:48:00',
+        //     warnDes: '',
+        //     frontGateOpenCtrl: null,
+        //     rearGateOpenCtrl: null,
+        //     readData: {
+        //       Section9_AlarmTemp: '0.00',
+        //       Section13_BeginPosition: '5010.00',
+        //       Section4_MaxTempPos: '1207.00',
+        //       Section2_BeginPosition: '91.00',
+        //       Section10_EndPosition: '4126.00',
+        //       sign: '0',
+        //       Section2_AlarmTemp: '0.00',
+        //       Section2_MaxTemp: '19.00',
+        //       Section12_AlarmTemp: '0.00',
+        //       Section8_EndPosition: '3777.00',
+        //       Section12_MaxTempPos: '5007.00',
+        //       Section7_EndPosition: '3296.00',
+        //       Section9_EndPosition: '3956.00',
+        //       Section1_BeginPosition: '1.00',
+        //       Section6_EndPosition: '2293.00',
+        //       Section7_BeginPosition: '2796.00',
+        //       Section6_MaxTemp: '14.00',
+        //       Section12_MaxTemp: '14.00',
+        //       Section1_MaxTempPos: '67.00',
+        //       Section13_EndPosition: '5364.00',
+        //       Section11_EndPosition: '4626.00',
+        //       Section4_MaxTemp: '14.00',
+        //       Section5_AlarmTemp: '0.00',
+        //       Section12_EndPosition: '5009.00',
+        //       Section11_MaxTempPos: '4143.00',
+        //       Section12_BeginPosition: '4627.00',
+        //       Section9_MaxTempPos: '3941.00',
+        //       Section13_AlarmTemp: '0.00',
+        //       maxValue: '27.00',
+        //       Section1_AlarmTemp: '0.00',
+        //       Section2_MaxTempPos: '91.00',
+        //       Section8_MaxTemp: '15.00',
+        //       Section8_AlarmTemp: '0.00',
+        //       Section6_BeginPosition: '1793.00',
+        //       Section10_MaxTempPos: '3997.00',
+        //       Section10_AlarmTemp: '0.00',
+        //       Section3_MaxTempPos: '291.00',
+        //       Section4_AlarmTemp: '0.00',
+        //       Section11_BeginPosition: '4127.00',
+        //       Section9_BeginPosition: '3778.00',
+        //       Section1_MaxTemp: '19.00',
+        //       Section3_MaxTemp: '16.00',
+        //       Section7_AlarmTemp: '0.00',
+        //       Section13_MaxTempPos: '5010.00',
+        //       Section10_BeginPosition: '3957.00',
+        //       Section5_MaxTempPos: '1316.00',
+        //       Section11_AlarmTemp: '0.00',
+        //       Section8_MaxTempPos: '3736.00',
+        //       Section5_BeginPosition: '1292.00',
+        //       Section11_MaxTemp: '21.00',
+        //       Section5_MaxTemp: '14.00',
+        //       Section10_MaxTemp: '27.00',
+        //       Section1_EndPosition: '90.00',
+        //       Section3_BeginPosition: '291.00',
+        //       Section2_EndPosition: '290.00',
+        //       Section9_MaxTemp: '26.00',
+        //       Section6_MaxTempPos: '1816.00',
+        //       Section4_EndPosition: '1291.00',
+        //       Section3_AlarmTemp: '0.00',
+        //       Section5_EndPosition: '1792.00',
+        //       Section3_EndPosition: '791.00',
+        //       Section7_MaxTemp: '14.00',
+        //       Section13_MaxTemp: '14.00',
+        //       Section8_BeginPosition: '3297.00',
+        //       Section7_MaxTempPos: '3285.00',
+        //       Section6_AlarmTemp: '0.00',
+        //       isRun: '-2',
+        //       Section4_BeginPosition: '792.00',
+        //     },
+        //     readDataDes: null,
+        //     summaryHour: [],
+        //     summaryDay: [],
+        //     history: [],
+        //     dayhistory: [],
+        //     totalInfo: null,
+        //     sign: null,
+        //     cameras: [],
+        //     links: [],
+        //     avgParam: {
+        //       avg_gas_value: null,
+        //       min_temperature_value: null,
+        //       min_no_value: null,
+        //       avg_no_value: null,
+        //       max_ch4_value: null,
+        //       min_co2_value: null,
+        //       min_m3_value: null,
+        //       max_o2_value: null,
+        //       avg_va_value: null,
+        //       max_c2h2_value: null,
+        //       min_c2h4_value: null,
+        //       max_no_value: null,
+        //       avg_m3_value: null,
+        //       max_co_value: null,
+        //       min_va_value: null,
+        //       min_ch4_value: null,
+        //       max_temperature_value: null,
+        //       min_gas_value: null,
+        //       device_id: 1754025882387599361,
+        //       min_o2_value: null,
+        //       avg_temperature_value: null,
+        //       max_dusting_value: null,
+        //       min_c2h2_value: null,
+        //       min_dusting_value: null,
+        //       avg_c2h4_value: null,
+        //       max_c2h4_value: null,
+        //       avg_o2_value: null,
+        //       avg_co2_value: null,
+        //       max_gas_value: null,
+        //       max_va_value: null,
+        //       max_co2_value: null,
+        //       avg_co_value: null,
+        //       max_m3_value: null,
+        //       avg_dusting_value: null,
+        //       avg_c2h2_value: null,
+        //       avg_ch4_value: null,
+        //       min_co_value: null,
+        //     },
+        //     other1: null,
+        //     other2: null,
+        //     other3: null,
+        //     remarkInfo: null,
+        //     linkInfo: null,
+        //     addrIndex: null,
+        //     warnLogNotOkCount: 0,
+        //     otherInfo: null,
+        //     orderNum: 0,
+        //     pointNumber: '',
+        //     supportNum: '',
+        //     totalLength: '',
+        //     intervalLength: '',
+        //     fireCause: '',
+        //     endPos: '三盘区主运至31307顺槽机尾',
+        //     startPos: '31煤中央变电所电缆沟',
+        //     deviceId: 1754025882387599361,
+        //   },
+        //   {
+        //     msgType: null,
+        //     deviceID: '1754025882387599362',
+        //     strname: '31煤中央变电所电缆沟-通道二',
+        //     strinstallpos: '31煤中央变电所电缆沟-通道二',
+        //     fsectarea: 'null',
+        //     stationname: '光纤测温',
+        //     stationtype: 'redis',
+        //     deviceType: 'fiber_normal',
+        //     typeName: '光纤测温',
+        //     netStatus: 1,
+        //     warnFlag: 0,
+        //     warnLevel: 0,
+        //     warnLevel_str: '正常',
+        //     syswarnLevel: null,
+        //     syswarnLevel_str: null,
+        //     syswarnLevel_des: null,
+        //     warnTime: null,
+        //     readTime: '2025-02-17 14:48:00',
+        //     warnDes: '',
+        //     frontGateOpenCtrl: null,
+        //     rearGateOpenCtrl: null,
+        //     readData: {
+        //       Section11_MaxTempPos: '1453.00',
+        //       Section9_AlarmTemp: '0.00',
+        //       Section10_MaxTemp: '23.00',
+        //       Section9_BeginPosition: '1336.00',
+        //       Section9_MaxTemp: '23.00',
+        //       Section9_MaxTempPos: '1425.00',
+        //       maxValue: '23.00',
+        //       Section10_EndPosition: '1452.00',
+        //       sign: '0',
+        //       Section8_MaxTemp: '19.00',
+        //       Section8_BeginPosition: '1235.00',
+        //       Section8_AlarmTemp: '0.00',
+        //       Section8_EndPosition: '1335.00',
+        //       Section10_BeginPosition: '1437.00',
+        //       Section9_EndPosition: '1436.00',
+        //       Section10_AlarmTemp: '0.00',
+        //       Section10_MaxTempPos: '1447.00',
+        //       Section11_AlarmTemp: '0.00',
+        //       Section8_MaxTempPos: '1295.00',
+        //       Section11_BeginPosition: '1453.00',
+        //       Section11_EndPosition: '1458.00',
+        //       isRun: '-2',
+        //       Section11_MaxTemp: '6.00',
+        //     },
+        //     readDataDes: null,
+        //     summaryHour: [],
+        //     summaryDay: [],
+        //     history: [],
+        //     dayhistory: [],
+        //     totalInfo: null,
+        //     sign: null,
+        //     cameras: [],
+        //     links: [],
+        //     avgParam: {
+        //       avg_gas_value: null,
+        //       min_temperature_value: null,
+        //       min_no_value: null,
+        //       avg_no_value: null,
+        //       max_ch4_value: null,
+        //       min_co2_value: null,
+        //       min_m3_value: null,
+        //       max_o2_value: null,
+        //       avg_va_value: null,
+        //       max_c2h2_value: null,
+        //       min_c2h4_value: null,
+        //       max_no_value: null,
+        //       avg_m3_value: null,
+        //       max_co_value: null,
+        //       min_va_value: null,
+        //       min_ch4_value: null,
+        //       max_temperature_value: null,
+        //       min_gas_value: null,
+        //       device_id: 1754025882387599362,
+        //       min_o2_value: null,
+        //       avg_temperature_value: null,
+        //       max_dusting_value: null,
+        //       min_c2h2_value: null,
+        //       min_dusting_value: null,
+        //       avg_c2h4_value: null,
+        //       max_c2h4_value: null,
+        //       avg_o2_value: null,
+        //       avg_co2_value: null,
+        //       max_gas_value: null,
+        //       max_va_value: null,
+        //       max_co2_value: null,
+        //       avg_co_value: null,
+        //       max_m3_value: null,
+        //       avg_dusting_value: null,
+        //       avg_c2h2_value: null,
+        //       avg_ch4_value: null,
+        //       min_co_value: null,
+        //     },
+        //     other1: null,
+        //     other2: null,
+        //     other3: null,
+        //     remarkInfo: null,
+        //     linkInfo: null,
+        //     addrIndex: null,
+        //     warnLogNotOkCount: 0,
+        //     otherInfo: null,
+        //     orderNum: 0,
+        //     pointNumber: '',
+        //     supportNum: '',
+        //     totalLength: '',
+        //     intervalLength: '',
+        //     fireCause: '',
+        //     endPos: '配仓配电室',
+        //     startPos: '31煤中央变电所电缆沟',
+        //     deviceId: 1754025882387599362,
+        //   },
+        //   {
+        //     msgType: null,
+        //     deviceID: '1754025882387599363',
+        //     strname: '31煤中央变电所电缆沟-通道三',
+        //     strinstallpos: '31煤中央变电所电缆沟-通道三',
+        //     fsectarea: 'null',
+        //     stationname: '光纤测温',
+        //     stationtype: 'redis',
+        //     deviceType: 'fiber_normal',
+        //     typeName: '光纤测温',
+        //     netStatus: 1,
+        //     warnFlag: 0,
+        //     warnLevel: 0,
+        //     warnLevel_str: '正常',
+        //     syswarnLevel: null,
+        //     syswarnLevel_str: null,
+        //     syswarnLevel_des: null,
+        //     warnTime: null,
+        //     readTime: '2025-02-17 14:48:00',
+        //     warnDes: '',
+        //     frontGateOpenCtrl: null,
+        //     rearGateOpenCtrl: null,
+        //     readData: {
+        //       Section3_BeginPosition: '415.00',
+        //       Section2_EndPosition: '414.00',
+        //       Section4_MaxTempPos: '484.00',
+        //       maxValue: '39.00',
+        //       Section2_BeginPosition: '76.00',
+        //       sign: '0',
+        //       Section2_MaxTempPos: '148.00',
+        //       Section4_EndPosition: '687.00',
+        //       Section3_MaxTemp: '11.00',
+        //       Section2_AlarmTemp: '0.00',
+        //       Section3_AlarmTemp: '0.00',
+        //       Section3_EndPosition: '435.00',
+        //       Section2_MaxTemp: '12.00',
+        //       Section3_MaxTempPos: '415.00',
+        //       Section4_AlarmTemp: '0.00',
+        //       Section4_MaxTemp: '39.00',
+        //       isRun: '-2',
+        //       Section4_BeginPosition: '436.00',
+        //     },
+        //     readDataDes: null,
+        //     summaryHour: [],
+        //     summaryDay: [],
+        //     history: [],
+        //     dayhistory: [],
+        //     totalInfo: null,
+        //     sign: null,
+        //     cameras: [],
+        //     links: [],
+        //     avgParam: {
+        //       avg_gas_value: null,
+        //       min_temperature_value: null,
+        //       min_no_value: null,
+        //       avg_no_value: null,
+        //       max_ch4_value: null,
+        //       min_co2_value: null,
+        //       min_m3_value: null,
+        //       max_o2_value: null,
+        //       avg_va_value: null,
+        //       max_c2h2_value: null,
+        //       min_c2h4_value: null,
+        //       max_no_value: null,
+        //       avg_m3_value: null,
+        //       max_co_value: null,
+        //       min_va_value: null,
+        //       min_ch4_value: null,
+        //       max_temperature_value: null,
+        //       min_gas_value: null,
+        //       device_id: 1754025882387599363,
+        //       min_o2_value: null,
+        //       avg_temperature_value: null,
+        //       max_dusting_value: null,
+        //       min_c2h2_value: null,
+        //       min_dusting_value: null,
+        //       avg_c2h4_value: null,
+        //       max_c2h4_value: null,
+        //       avg_o2_value: null,
+        //       avg_co2_value: null,
+        //       max_gas_value: null,
+        //       max_va_value: null,
+        //       max_co2_value: null,
+        //       avg_co_value: null,
+        //       max_m3_value: null,
+        //       avg_dusting_value: null,
+        //       avg_c2h2_value: null,
+        //       avg_ch4_value: null,
+        //       min_co_value: null,
+        //     },
+        //     other1: null,
+        //     other2: null,
+        //     other3: null,
+        //     remarkInfo: null,
+        //     linkInfo: null,
+        //     addrIndex: null,
+        //     warnLogNotOkCount: 0,
+        //     otherInfo: null,
+        //     orderNum: 0,
+        //     pointNumber: '',
+        //     supportNum: '',
+        //     totalLength: '',
+        //     intervalLength: '',
+        //     fireCause: '',
+        //     endPos: '12煤2#变电所',
+        //     startPos: '31煤中央变电所电缆沟',
+        //     deviceId: 1754025882387599363,
+        //   },
+        //   {
+        //     msgType: null,
+        //     deviceID: '1754025882387599364',
+        //     strname: '31煤中央变电所电缆沟-通道四',
+        //     strinstallpos: '31煤中央变电所电缆沟-通道四',
+        //     fsectarea: 'null',
+        //     stationname: '光纤测温',
+        //     stationtype: 'redis',
+        //     deviceType: 'fiber_normal',
+        //     typeName: '光纤测温',
+        //     netStatus: 1,
+        //     warnFlag: 0,
+        //     warnLevel: 0,
+        //     warnLevel_str: '正常',
+        //     syswarnLevel: null,
+        //     syswarnLevel_str: null,
+        //     syswarnLevel_des: null,
+        //     warnTime: null,
+        //     readTime: '2025-02-17 14:48:00',
+        //     warnDes: '',
+        //     frontGateOpenCtrl: null,
+        //     rearGateOpenCtrl: null,
+        //     readData: {
+        //       Section3_BeginPosition: '414.00',
+        //       Section4_MaxTempPos: '1014.00',
+        //       maxValue: '18.00',
+        //       Section6_MaxTempPos: '1688.00',
+        //       sign: '0',
+        //       Section3_MaxTemp: '15.00',
+        //       Section4_EndPosition: '1014.00',
+        //       Section3_EndPosition: '713.00',
+        //       Section3_AlarmTemp: '0.00',
+        //       Section5_EndPosition: '1365.00',
+        //       Section5_MaxTempPos: '1021.00',
+        //       Section6_BeginPosition: '1366.00',
+        //       Section6_EndPosition: '1768.00',
+        //       Section3_MaxTempPos: '414.00',
+        //       Section6_MaxTemp: '18.00',
+        //       Section4_AlarmTemp: '0.00',
+        //       Section5_BeginPosition: '1015.00',
+        //       Section4_MaxTemp: '15.00',
+        //       Section6_AlarmTemp: '0.00',
+        //       isRun: '-2',
+        //       Section4_BeginPosition: '714.00',
+        //       Section5_MaxTemp: '15.00',
+        //       Section5_AlarmTemp: '0.00',
+        //     },
+        //     readDataDes: null,
+        //     summaryHour: [],
+        //     summaryDay: [],
+        //     history: [],
+        //     dayhistory: [],
+        //     totalInfo: null,
+        //     sign: null,
+        //     cameras: [],
+        //     links: [],
+        //     avgParam: {
+        //       avg_gas_value: null,
+        //       min_temperature_value: null,
+        //       min_no_value: null,
+        //       avg_no_value: null,
+        //       max_ch4_value: null,
+        //       min_co2_value: null,
+        //       min_m3_value: null,
+        //       max_o2_value: null,
+        //       avg_va_value: null,
+        //       max_c2h2_value: null,
+        //       min_c2h4_value: null,
+        //       max_no_value: null,
+        //       avg_m3_value: null,
+        //       max_co_value: null,
+        //       min_va_value: null,
+        //       min_ch4_value: null,
+        //       max_temperature_value: null,
+        //       min_gas_value: null,
+        //       device_id: 1754025882387599364,
+        //       min_o2_value: null,
+        //       avg_temperature_value: null,
+        //       max_dusting_value: null,
+        //       min_c2h2_value: null,
+        //       min_dusting_value: null,
+        //       avg_c2h4_value: null,
+        //       max_c2h4_value: null,
+        //       avg_o2_value: null,
+        //       avg_co2_value: null,
+        //       max_gas_value: null,
+        //       max_va_value: null,
+        //       max_co2_value: null,
+        //       avg_co_value: null,
+        //       max_m3_value: null,
+        //       avg_dusting_value: null,
+        //       avg_c2h2_value: null,
+        //       avg_ch4_value: null,
+        //       min_co_value: null,
+        //     },
+        //     other1: null,
+        //     other2: null,
+        //     other3: null,
+        //     remarkInfo: null,
+        //     linkInfo: null,
+        //     addrIndex: null,
+        //     warnLogNotOkCount: 0,
+        //     otherInfo: null,
+        //     orderNum: 0,
+        //     pointNumber: '',
+        //     supportNum: '',
+        //     totalLength: '',
+        //     intervalLength: '',
+        //     fireCause: '',
+        //     endPos: '立体车库2楼',
+        //     startPos: '31煤中央变电所电缆沟',
+        //     deviceId: 1754025882387599364,
+        //   },
+        // ];
+        deviceList.value = newDataSource as any[];
         activeDeviceID.value = activeDeviceID.value ? activeDeviceID.value : newActiveID;
+        maxTemp.value = 0;
         newDataSource?.forEach((item: any, index) => {
           if ((!activeDeviceID.value && index == 0) || item.deviceID === activeDeviceID.value) {
-            // activeDeviceID.value = item.deviceID;
             posList.length = 0;
             posList1.length = 0;
-            // let counts = Math.ceil((Object.keys(item.readData).length - 2) / 5);
-            let counts = Math.ceil(Object.keys(item.readData).filter((v) => v.indexOf('Section') != -1).length / 5);
-            for (let i = 0; i < counts; i++) {
-              posList.push({
-                Section_MaxTemp: item.readData[`Section${i + 1}_MaxTemp`],
-                Section_MaxTempPos: item.readData[`Section${i + 1}_MaxTempPos`],
-                Section_BeginPosition: item.readData[`Section${i + 1}_BeginPosition`],
-                Section_EndPosition: item.readData[`Section${i + 1}_EndPosition`],
-                Section_AlarmTemp: item.readData[`Section${i + 1}_AlarmTemp`],
-                isWarn:
-                  parseFloat(item.readData[`Section${i + 1}_MaxTemp`]) > parseFloat(item.readData[`Section${i + 1}_AlarmTemp`]) ? '报警' : '未报警',
-              });
+            const indexSet = new Set();
+            for (let i = 0; i < Object.keys(item.readData).length; i++) {
+              if (Object.keys(item.readData)[i].indexOf('Section') != -1) {
+                indexSet.add(Object.keys(item.readData)[i].split('_')[0].slice(7));
+              }
+            }
+            const indexValues = Array.from(indexSet).sort((a, b) => Number(a) - Number(b));
+            for (let i = 0; i < indexValues.length; i++) {
+              const index = indexValues[i];
+              if (item.readData[`Section${index}_BeginPosition`] && item.readData[`Section${index}_EndPosition`]) {
+                posList.push({
+                  position: `测点${index}`,
+                  Section_MaxTemp: item.readData[`Section${index}_MaxTemp`],
+                  Section_MaxTempPos: item.readData[`Section${index}_MaxTempPos`],
+                  Section_BeginPosition: item.readData[`Section${index}_BeginPosition`],
+                  Section_EndPosition: item.readData[`Section${index}_EndPosition`],
+                  Section_AlarmTemp: item.readData[`Section${index}_AlarmTemp`],
+                  isWarn:
+                    parseFloat(item.readData[`Section${index}_MaxTemp`]) > parseFloat(item.readData[`Section${index}_AlarmTemp`]) ? '报警' : '未报警',
+                });
+                posList1.push({
+                  Section_AlarmTemp: `${item.readData[`Section${index}_BeginPosition`]}-${item.readData[`Section${index}_EndPosition`]}m`,
+                  value: item.readData[`Section${index}_MaxTempPos`],
+                });
+                if (parseFloat(item.readData[`Section${index}_MaxTemp`]) > maxTemp.value) {
+                  maxTemp.value = item.readData[`Section${index}_MaxTemp`];
+                }
+              }
             }
-            posList.forEach((el, index) => {
-              posList1.push({ Section_AlarmTemp: index + 1, value: el.Section_AlarmTemp });
-            });
-            let maxValue = posList.map((m) => m.Section_MaxTemp);
-            maxTemp.value = Math.max(...maxValue);
             warnLevels.value = posList.find((v) => v.isWarn == '报警') ? '报警' : '未报警';
-            console.log(posList, 'posList-----------------');
-            console.log(posList1, 'posList1-----------------');
           }
         });
       });

+ 45 - 1
src/views/vent/monitorManager/mainFanMonitor/main.threejs.ts

@@ -223,7 +223,6 @@ export const playAnimate = async (selectData, duration?) => {
     mainObj = mainXjWindObj;
     // bgGroup.visible = false;
   }
-
   if (selectData && mainObj) {
     if (selectData['Fan1FreqHz'] == undefined || selectData['Fan1FreqHz'] == null || selectData['Fan1FreqHz'] == '') selectData['Fan1FreqHz'] = 50;
     if (selectData['Fan2FreqHz'] == undefined || selectData['Fan2FreqHz'] == null || selectData['Fan2FreqHz'] == '') selectData['Fan2FreqHz'] = 50;
@@ -237,14 +236,32 @@ export const playAnimate = async (selectData, duration?) => {
       // 2. 在页面上,切换动画
       if (selectData.Fan2FreqForwardRun == 1 && selectData.Fan2FreqReverseRun == 0) {
         // 主风机正转
+        if (mainObj['airChu2'] && !mainObj['airChu2'].visible) {
+          mainObj['airJin1'].visible = false;
+          mainObj['airJin2'].visible = false;
+          mainObj['airChu1'].visible = false;
+          mainObj['airChu2'].visible = true;
+        }
         mainObj.startGearAnimation('front', 'open', 'tubPositivePath', selectData.Fan2FreqHz, duration);
         await mainObj.setSmokeDirection('front', 'tubPositivePath');
       } else if (selectData.Fan2FreqReverseRun == 1 && selectData.Fan2FreqForwardRun == 0) {
         // 主风机反转
+        if (mainObj['airJin2'] && !mainObj['airJin2'].visible) {
+          mainObj['airJin1'].visible = false;
+          mainObj['airJin2'].visible = true;
+          mainObj['airChu1'].visible = false;
+          mainObj['airChu2'].visible = false;
+        }
         mainObj.startGearAnimation('front', 'open', 'tubInversePath', selectData.Fan2FreqHz, duration);
         await mainObj.setSmokeDirection('front', 'tubInversePath');
       } else {
         // 默认主风机正转
+        if (mainObj['airChu2'] && !mainObj['airChu2'].visible) {
+          mainObj['airJin1'].visible = false;
+          mainObj['airJin2'].visible = false;
+          mainObj['airChu1'].visible = false;
+          mainObj['airChu2'].visible = true;
+        }
         mainObj.startGearAnimation('front', 'open', 'tubPositivePath', selectData.Fan2FreqHz, duration);
         await mainObj.setSmokeDirection('front', 'tubPositivePath');
       }
@@ -262,13 +279,32 @@ export const playAnimate = async (selectData, duration?) => {
       // 2. 在页面上,切换动画
       if (selectData.Fan1FreqForwardRun == 1 && selectData.Fan1FreqReverseRun == 0) {
         // 主风机正转
+        // 主风机正转
+        if (mainObj['airChu1'] && !mainObj['airChu1'].visible) {
+          mainObj['airJin1'].visible = false;
+          mainObj['airJin2'].visible = false;
+          mainObj['airChu1'].visible = true;
+          mainObj['airChu2'].visible = false;
+        }
         mainObj.startGearAnimation('back', 'open', 'tubPositivePath', selectData.Fan1FreqHz, duration);
         await mainObj.setSmokeDirection('back', 'tubPositivePath');
       } else if (selectData.Fan1FreqReverseRun == 1 && selectData.Fan1FreqForwardRun == 0) {
         // 主风机反转
+        if (mainObj['airJin1'] && !mainObj['airJin1'].visible) {
+          mainObj['airJin1'].visible = true;
+          mainObj['airJin2'].visible = false;
+          mainObj['airChu1'].visible = false;
+          mainObj['airChu2'].visible = false;
+        }
         mainObj.startGearAnimation('back', 'open', 'tubInversePath', selectData.Fan1FreqHz, duration);
         await mainObj.setSmokeDirection('back', 'tubInversePath');
       } else {
+        if (mainObj['airChu1'] && !mainObj['airChu1'].visible) {
+          mainObj['airJin1'].visible = false;
+          mainObj['airJin2'].visible = false;
+          mainObj['airChu1'].visible = true;
+          mainObj['airChu2'].visible = false;
+        }
         mainObj.startGearAnimation('back', 'open', 'tubPositivePath', selectData.Fan1FreqHz, duration);
         await mainObj.setSmokeDirection('back', 'tubPositivePath');
       }
@@ -378,6 +414,14 @@ export const mountedThree = (playerVal1) => {
       await mainXjWindObj.mountedThree();
       model?.animate();
       resolve(null);
+      if (mainWindObj.airJin1) mainWindObj.airJin1.visible = false;
+      if (mainWindObj.airJin2) mainWindObj.airJin2.visible = false;
+      if (mainWindObj.airChu1) mainWindObj.airChu1.visible = false;
+      if (mainWindObj.airChu2) mainWindObj.airChu2.visible = false;
+      if (mainXjWindObj.airJin1) mainXjWindObj.airJin1.visible = false;
+      if (mainXjWindObj.airJin2) mainXjWindObj.airJin2.visible = false;
+      if (mainXjWindObj.airChu1) mainXjWindObj.airChu1.visible = false;
+      if (mainXjWindObj.airChu2) mainXjWindObj.airChu2.visible = false;
     });
     startAnimation();
   });

+ 14 - 2
src/views/vent/monitorManager/mainFanMonitor/mainWind.threejs.ts

@@ -10,6 +10,10 @@ class mainWindRect {
   group: THREE.Group | null = null; // 主通风机场景
   motorGroup1: THREE.Group | null = null; //电机
   motorGroup2: THREE.Group | null = null; //电机
+  airJin1: THREE.Mesh | null = null; //风向箭头
+  airJin2: THREE.Mesh | null = null; //风向箭头
+  airChu1: THREE.Mesh | null = null; //风向箭头
+  airChu2: THREE.Mesh | null = null; //风向箭头
   gearFront = {
     gear1: null, //扇叶
     gear2: null, //扇叶
@@ -753,11 +757,19 @@ class mainWindRect {
         this.group?.position.set(-0.44, 19.88, 22.37);
         this.initSmokeMass();
         await this.setSmokePosition();
-
+        debugger;
         const ztfjGroup = this.group?.getObjectByName('ztfj') as THREE.Group;
         const fbmGroup = this.group?.getObjectByName('fbm') as THREE.Group;
         const fcGroup = this.group?.getObjectByName('ztfj-fc') as THREE.Group;
-        if (ztfjGroup) ztfjGroup.position.z = ztfjGroup.position.z + 5;
+        if (ztfjGroup) {
+          ztfjGroup.position.z = ztfjGroup.position.z + 5;
+          const airJinGroup = ztfjGroup.getObjectByName('JianTou1_Jin') as THREE.Object3D;
+          const airChuGroup = ztfjGroup.getObjectByName('JianTou2_Chu') as THREE.Object3D;
+          this.airJin1 = airJinGroup.getObjectByName('Jin_1') as THREE.Mesh;
+          this.airJin2 = airJinGroup.getObjectByName('Jin_2') as THREE.Mesh;
+          this.airChu1 = airChuGroup.getObjectByName('Chu_1') as THREE.Mesh;
+          this.airChu2 = airChuGroup.getObjectByName('Chu_2') as THREE.Mesh;
+        }
         if (fbmGroup) fbmGroup.position.z = fbmGroup.position.z + 5;
         if (fcGroup) fcGroup.position.z = fcGroup.position.z + 5;
 

+ 15 - 2
src/views/vent/monitorManager/mainFanMonitor/mainWind.xj.threejs.ts

@@ -10,6 +10,10 @@ class mainXjWindRect {
   group: THREE.Group | null = null; // 主通风机场景
   motorGroup1: THREE.Group | null = null; //电机
   motorGroup2: THREE.Group | null = null; //电机
+  airJin1: THREE.Mesh | null = null; //风向箭头
+  airJin2: THREE.Mesh | null = null; //风向箭头
+  airChu1: THREE.Mesh | null = null; //风向箭头
+  airChu2: THREE.Mesh | null = null; //风向箭头
   gearFront = {
     gear1: null, //扇叶
     gear2: null, //扇叶
@@ -685,8 +689,10 @@ class mainXjWindRect {
       this.model.setGLTFModel('ztfj-xj').then(async (gltf) => {
         const ztfjModal = gltf[0].children[0];
         ztfjModal.name = 'ztfj';
-        ztfjModal.position.set(4.64, 4.11, 1.52);
-        this.group?.add(gltf[0].children[0]);
+        gltf[0].children.forEach((item) => {
+          item.position.set(4.64, 4.11, 1.52);
+        });
+        this.group?.add(gltf[0]);
         // this.group?.position.set(4.77, 3.63, 0.63);
         this.group?.position.set(-0.44, 47.32, 22.37);
         this.initSmokeMass();
@@ -698,6 +704,13 @@ class mainXjWindRect {
         if (mesh && mesh.material) this.oldMaterial = mesh.material as THREE.MeshStandardMaterial;
         await this.initMotor();
         resolve(null);
+        const airJinGroup = gltf[0]?.getObjectByName('JianTou1_Jin') as THREE.Object3D;
+        const airChuGroup = gltf[0]?.getObjectByName('JianTou2_Chu') as THREE.Object3D;
+
+        this.airJin1 = airJinGroup.getObjectByName('pasted__Jin_1') as THREE.Mesh;
+        this.airJin2 = airJinGroup.getObjectByName('pasted__Jin_2') as THREE.Mesh;
+        this.airChu1 = airChuGroup.getObjectByName('pasted__Chu_1') as THREE.Mesh;
+        this.airChu2 = airChuGroup.getObjectByName('pasted__Chu_2') as THREE.Mesh;
       });
     });
   }