Browse Source

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

lxh 2 months ago
parent
commit
bb0d3684cb
56 changed files with 1321 additions and 1256 deletions
  1. BIN
      public/model/glft/fire/tunFace_2025-01-04.glb
  2. 0 5
      public/model/hdr/test.hdr
  3. BIN
      public/model/hdr/test.jpeg
  4. 1 1
      src/utils/threejs/useThree.ts
  5. 4 4
      src/views/vent/bundle/bundleMonitorTable/index.vue
  6. 314 314
      src/views/vent/bundleSpy/bundleSpyTable/index.vue
  7. 23 22
      src/views/vent/monitorManager/alarmMonitor/common/closeWall.vue
  8. 1 1
      src/views/vent/monitorManager/alarmMonitor/common/echartLine.vue
  9. 11 11
      src/views/vent/monitorManager/alarmMonitor/common/echartLine3.vue
  10. 27 28
      src/views/vent/monitorManager/alarmMonitor/common/fireWork.vue
  11. 5 5
      src/views/vent/monitorManager/alarmMonitor/common/mainWell.vue
  12. 5 4
      src/views/vent/monitorManager/alarmMonitor/common/measurePoint.vue
  13. 4 4
      src/views/vent/monitorManager/alarmMonitor/common/predictionCurve.vue
  14. 2 3
      src/views/vent/monitorManager/alarmMonitor/common/warnGradeEchart.vue
  15. 23 24
      src/views/vent/monitorManager/alarmMonitor/common/warnGradeInfo.vue
  16. 7 7
      src/views/vent/monitorManager/alarmMonitor/index.vue
  17. 28 23
      src/views/vent/monitorManager/alarmMonitor/warn/dustWarn.vue
  18. 2 2
      src/views/vent/monitorManager/alarmMonitor/warn/gasWarn.vue
  19. 21 21
      src/views/vent/monitorManager/alarmMonitor/warn/ventilateWarn.vue
  20. 1 1
      src/views/vent/monitorManager/chamberMonitor/chamber.threejs.ts
  21. 10 10
      src/views/vent/monitorManager/comment/gaspatrolTable.vue
  22. 1 1
      src/views/vent/monitorManager/compressor/nitrogen.threejs.ts
  23. 1 1
      src/views/vent/monitorManager/dedustMonitor/dedust.threejs.ts
  24. 2 2
      src/views/vent/monitorManager/deviceMonitor/components/device/device.api.ts
  25. 7 3
      src/views/vent/monitorManager/deviceMonitor/components/device/device.data.ts
  26. 24 9
      src/views/vent/monitorManager/deviceMonitor/components/device/index.vue
  27. 10 6
      src/views/vent/monitorManager/deviceMonitor/staticSheets/fireSheet.vue
  28. 39 32
      src/views/vent/monitorManager/deviceMonitor/staticSheets/ventilateSheet.vue
  29. 1 1
      src/views/vent/monitorManager/fanLocalMonitor/fanLocal.three.ts
  30. 1 1
      src/views/vent/monitorManager/fanLocalMonitor1/fanLocal.three.ts
  31. 1 1
      src/views/vent/monitorManager/fiberMonitor/fiber.threejs.ts
  32. 1 1
      src/views/vent/monitorManager/fireDoorMonitor/detail.vue
  33. 1 1
      src/views/vent/monitorManager/fireDoorMonitor/fireDoor.threejs.ts
  34. 35 59
      src/views/vent/monitorManager/gasPumpMonitor/components/gasPumpHome.vue
  35. 1 1
      src/views/vent/monitorManager/gasPumpMonitor/gasPump.threejs.ts
  36. 1 1
      src/views/vent/monitorManager/gateMonitor/detail.vue
  37. 1 1
      src/views/vent/monitorManager/gateMonitor/gate.threejs.ts
  38. 3 4
      src/views/vent/monitorManager/groutMonitor/components/groutHomeJj.vue
  39. 1 1
      src/views/vent/monitorManager/groutMonitor/grout.data.ts
  40. 1 1
      src/views/vent/monitorManager/groutMonitor/grout.threejs.ts
  41. 8 9
      src/views/vent/monitorManager/mainFanMonitor/components/conditionAssistance.vue
  42. 1 1
      src/views/vent/monitorManager/mainFanMonitor/main.threejs.ts
  43. 1 1
      src/views/vent/monitorManager/nitrogen/nitrogen.threejs.ts
  44. 1 1
      src/views/vent/monitorManager/obfurage1Monitor/detail.vue
  45. 2 3
      src/views/vent/monitorManager/obfurage1Monitor/gate.threejs.ts
  46. 1 1
      src/views/vent/monitorManager/obfurageMonitor/obfurage.threejs.ts
  47. 1 1
      src/views/vent/monitorManager/tunFaceMonitor/tunFace.threejs.ts
  48. 39 7
      src/views/vent/monitorManager/windowMonitor/dandaoFc.threejs.ts
  49. 1 1
      src/views/vent/monitorManager/windowMonitor/window.api.ts
  50. 10 6
      src/views/vent/monitorManager/windowMonitor/window.threejs.ts
  51. 1 1
      src/views/vent/monitorManager/windowMonitorBet/window.threejs.ts
  52. 1 1
      src/views/vent/monitorManager/windrectMonitor/windrect.threejs.ts
  53. 1 1
      src/views/vent/monitorManager/workFaceMonitor/wokeFace.threejs.ts
  54. 3 3
      src/views/vent/performance/comment/NormalTable.vue
  55. 457 430
      src/views/vent/safetyList/index.vue
  56. 172 172
      src/views/vent/safetyList/safetyList.data.ts

BIN
public/model/glft/fire/tunFace_2025-01-04.glb


File diff suppressed because it is too large
+ 0 - 5
public/model/hdr/test.hdr


BIN
public/model/hdr/test.jpeg


+ 1 - 1
src/utils/threejs/useThree.ts

@@ -422,7 +422,7 @@ class UseThree {
   setEnvMap(hdr) {
     if (!this.scene) return;
     // (this.scene as THREE.Scene).environment
-    new RGBELoader().setPath('/model/hdr/').load(hdr + '.hdr', (texture) => {
+    new RGBELoader().setPath('/model/hdr/').load(hdr, (texture) => {
       texture.colorSpace = THREE.SRGBColorSpace;
       texture.mapping = THREE.EquirectangularReflectionMapping;
       if (this.scene) (this.scene as THREE.Scene).environment = texture;

+ 4 - 4
src/views/vent/bundle/bundleMonitorTable/index.vue

@@ -20,13 +20,13 @@
         <div class="data-container">
           <div id="barChart" class="bar-chart"></div>
           <div class="data-content">
-            <div class="title">煤自阶段统计分析</div>
+            <div class="title">煤自阶段统计分析</div>
             <div class="explain">测点共计{{ combustionCount + selfHeatingCount + latentCount }}个</div>
-            <div class="progress-label">剧烈氧化阶段(燃烧期):</div>
+            <div class="progress-label">剧烈氧化阶段(燃烧期):{{ combustionCount }}</div>
             <Progress :percent="combustionPercent" size="default" strokeColor="red" :show-info="true" :format="() => combustionCount" />
-            <div class="progress-label">加速氧化阶段(自热期):</div>
+            <div class="progress-label">加速氧化阶段(自热期):{{ selfHeatingCount }}</div>
             <Progress :percent="selfHeatingPercent" size="default" strokeColor="yellow" :show-info="true" :format="() => selfHeatingCount" />
-            <div class="progress-label">缓慢氧化阶段(潜伏期):</div>
+            <div class="progress-label">缓慢氧化阶段(潜伏期):{{ latentCount }}</div>
             <Progress :percent="latentPercent" size="default" strokeColor="green" :show-info="true" :format="() => latentCount" />
           </div>
         </div>

+ 314 - 314
src/views/vent/bundleSpy/bundleSpyTable/index.vue

@@ -20,19 +20,19 @@
         <div class="data-container">
           <div id="lineChart" class="line-chart"></div>
           <div class="data-content">
-            <div class="title">煤自阶段统计分析</div>
+            <div class="title">煤自阶段统计分析</div>
             <div class="explain">测点共计{{ combustionCount + selfHeatingCount + latentCount }}个</div>
-            <div class="progress-label">剧烈氧化阶段(燃烧期):</div>
+            <div class="progress-label">剧烈氧化阶段(燃烧期):{{ combustionCount }}</div>
             <Progress :percent="combustionPercent" size="default" strokeColor="red" :show-info="true" :format="() => combustionCount" />
-            <div class="progress-label">加速氧化阶段(自热期):</div>
+            <div class="progress-label">加速氧化阶段(自热期):{{ selfHeatingCount }}</div>
             <Progress :percent="selfHeatingPercent" size="default" strokeColor="yellow" :show-info="true" :format="() => selfHeatingCount" />
-            <div class="progress-label">缓慢氧化阶段(潜伏期):</div>
+            <div class="progress-label">缓慢氧化阶段(潜伏期):{{ latentCount }}</div>
             <Progress :percent="latentPercent" size="default" strokeColor="green" :show-info="true" :format="() => latentCount" />
           </div>
         </div>
       </div>
     </div>
-    <a-modal style="width: 26%; height: 300px" title="爆炸三角形" v-model:visible="modalVisible" :draggable="true" :footer="null">
+    <a-modal style="width: 600px; height: 300px" title="爆炸三角形" v-model:visible="modalVisible" :draggable="true" :footer="null">
       <div class="blast-delta-container">
         <BlastDelta :posMonitor="posMonitor" />
       </div>
@@ -41,350 +41,350 @@
 </template>
 
 <script setup lang="ts">
-import { ref, onMounted, reactive, shallowRef } from 'vue';
-import { columns } from './bundleSpy-table.data';
-import { getbundleSpyInfoList, getAllFileList } from './bundleSpy-table.api';
-import customHeader from '/@/components/vent/customHeader.vue';
-import * as echarts from 'echarts';
-import BlastDelta from './modal/blastDelta.vue';
-import { Progress } from 'ant-design-vue';
-import 'ant-design-vue/dist/antd.css'; // 引入样式
-let selectList = ref<any[]>([]);
+  import { ref, onMounted, reactive, shallowRef } from 'vue';
+  import { columns } from './bundleSpy-table.data';
+  import { getbundleSpyInfoList, getAllFileList } from './bundleSpy-table.api';
+  import customHeader from '/@/components/vent/customHeader.vue';
+  import * as echarts from 'echarts';
+  import BlastDelta from './modal/blastDelta.vue';
+  import { Progress } from 'ant-design-vue';
+  import 'ant-design-vue/dist/antd.css'; // 引入样式
+  let selectList = ref<any[]>([]);
 
-let formSearch = reactive({
-  pageNum: 1,
-  pageSize: 1000,
-  fileId: '',
-  fileName: '',
-});
-const latentCount = ref(0); // 缓慢氧化阶段(潜伏期)
-const selfHeatingCount = ref(0); // 加速氧化阶段(自热期)
-const combustionCount = ref(0); // 剧烈氧化阶段(燃烧期)
-const latentPercent = ref(0); // 缓慢氧化阶段(潜伏期)
-const selfHeatingPercent = ref(0); // 加速氧化阶段(自热期)
-const combustionPercent = ref(0); // 剧烈氧化阶段(燃烧期)
-let tableData = ref<any[]>([]);
-let selectedFileId = ref<string | null>(null);
-let modalVisible = ref(false);
-const posMonitor = shallowRef({});
-//获取色谱仪报表
-async function getTableList(params: any) {
-  let res = await getbundleSpyInfoList({ type: 'bundleSpy', ...params });
-  const content = res.content;
-  let contentArr = JSON.parse(content);
-  latentCount.value = contentArr.filter((item: any) => item.internalFireWarnLevel === '缓慢氧化阶段(潜伏期)').length;
-  selfHeatingCount.value = contentArr.filter((item: any) => item.internalFireWarnLevel === '加速氧化阶段(自热期)').length;
-  combustionCount.value = contentArr.filter((item: any) => item.internalFireWarnLevel === '剧烈氧化阶段(燃烧期)').length;
-  const total = contentArr.length;
-  latentPercent.value = (latentCount.value / total) * 100;
-  selfHeatingPercent.value = (selfHeatingCount.value / total) * 100;
-  combustionPercent.value = (combustionCount.value / total) * 100;
-  tableData.value = contentArr;
-  updateChart(contentArr);
-}
-//跳转到爆炸三角形
-function toDetail(record: any) {
-  posMonitor.value = record;
-  console.log(posMonitor.value);
-  modalVisible.value = true;
-}
-//折线图
-function updateChart(data: any) {
-  const chartDom = document.getElementById('lineChart');
-  const myChart = echarts.init(chartDom);
-  const categories = data.map((item: any) => item.jcdd);
-  const c2h2AveValues = data.map((item: any) => parseFloat(item.c2h2_ave));
-  const c2h4AveValues = data.map((item: any) => parseFloat(item.c2h4_ave));
-  const ch4AveValues = data.map((item: any) => parseFloat(item.ch4_ave));
-  const co2AveValues = data.map((item: any) => parseFloat(item.co2_ave));
-  const coAveValues = data.map((item: any) => parseFloat(item.co_ave));
-  const o2AveValues = data.map((item: any) => parseFloat(item.o2_ave));
-  const n2AveValues = data.map((item: any) => parseFloat(item.n2_ave));
-  const c2h6AveValues = data.map((item: any) => parseFloat(item.c2h6_ave));
+  let formSearch = reactive({
+    pageNum: 1,
+    pageSize: 1000,
+    fileId: '',
+    fileName: '',
+  });
+  const latentCount = ref(0); // 缓慢氧化阶段(潜伏期)
+  const selfHeatingCount = ref(0); // 加速氧化阶段(自热期)
+  const combustionCount = ref(0); // 剧烈氧化阶段(燃烧期)
+  const latentPercent = ref(0); // 缓慢氧化阶段(潜伏期)
+  const selfHeatingPercent = ref(0); // 加速氧化阶段(自热期)
+  const combustionPercent = ref(0); // 剧烈氧化阶段(燃烧期)
+  let tableData = ref<any[]>([]);
+  let selectedFileId = ref<string | null>(null);
+  let modalVisible = ref(false);
+  const posMonitor = shallowRef({});
+  //获取色谱仪报表
+  async function getTableList(params: any) {
+    let res = await getbundleSpyInfoList({ type: 'bundleSpy', ...params });
+    const content = res.content;
+    let contentArr = JSON.parse(content);
+    latentCount.value = contentArr.filter((item: any) => item.internalFireWarnLevel === '缓慢氧化阶段(潜伏期)').length;
+    selfHeatingCount.value = contentArr.filter((item: any) => item.internalFireWarnLevel === '加速氧化阶段(自热期)').length;
+    combustionCount.value = contentArr.filter((item: any) => item.internalFireWarnLevel === '剧烈氧化阶段(燃烧期)').length;
+    const total = contentArr.length;
+    latentPercent.value = (latentCount.value / total) * 100;
+    selfHeatingPercent.value = (selfHeatingCount.value / total) * 100;
+    combustionPercent.value = (combustionCount.value / total) * 100;
+    tableData.value = contentArr;
+    updateChart(contentArr);
+  }
+  //跳转到爆炸三角形
+  function toDetail(record: any) {
+    posMonitor.value = record;
+    console.log(posMonitor.value);
+    modalVisible.value = true;
+  }
+  //折线图
+  function updateChart(data: any) {
+    const chartDom = document.getElementById('lineChart');
+    const myChart = echarts.init(chartDom);
+    const categories = data.map((item: any) => item.jcdd);
+    const c2h2AveValues = data.map((item: any) => parseFloat(item.c2h2_ave));
+    const c2h4AveValues = data.map((item: any) => parseFloat(item.c2h4_ave));
+    const ch4AveValues = data.map((item: any) => parseFloat(item.ch4_ave));
+    const co2AveValues = data.map((item: any) => parseFloat(item.co2_ave));
+    const coAveValues = data.map((item: any) => parseFloat(item.co_ave));
+    const o2AveValues = data.map((item: any) => parseFloat(item.o2_ave));
+    const n2AveValues = data.map((item: any) => parseFloat(item.n2_ave));
+    const c2h6AveValues = data.map((item: any) => parseFloat(item.c2h6_ave));
 
-  const option = {
-    title: {
-      text: '色谱仪报表分析',
-      textStyle: {
-        color: '#ffffff', // 设置标题颜色
-      },
-      left: 'center', // 水平居中
-      top: '0', // 设置标题距离顶部的距离
-    },
-    tooltip: {
-      trigger: 'axis',
-      backgroundColor: 'rgba(28, 72, 105, 0.5)', // 设置 tooltip 背景为透明
-      textStyle: {
-        color: '#ffffff', // 设置 tooltip 字体颜色为白色
-      },
-      axisPointer: {
-        label: {
-          show: true,
-          backgroundColor: '#071c44',
+    const option = {
+      title: {
+        text: '色谱仪报表分析',
+        textStyle: {
+          color: '#ffffff', // 设置标题颜色
         },
+        left: 'center', // 水平居中
+        top: '0', // 设置标题距离顶部的距离
       },
-    },
-    legend: {
-      top: '9%',
-      textStyle: {
-        color: '#ffffffff',
-      },
-      width: '80%', // 设置图例的宽度
-      orient: 'horizontal', // 水平布局
-      pageIconColor: '#ffffff', // 设置翻页图标颜色
-      pageTextStyle: {
-        color: '#ffffff', // 设置翻页文字颜色
-      },
-    },
-    xAxis: {
-      type: 'category',
-      data: categories,
-      splitLine: { show: true, lineStyle: { color: 'rgba(28, 72, 105, 0.5)' } },
-      axisLabel: {
-        interval: 0, // 显示所有标签
-        color: '#ffffff', // 设置 x 轴字体颜色
-        formatter: function (value: string) {
-          return value.length > 12 ? value.slice(0, 12) + '...' : value; // 截断长标签
+      tooltip: {
+        trigger: 'axis',
+        backgroundColor: 'rgba(28, 72, 105, 0.5)', // 设置 tooltip 背景为透明
+        textStyle: {
+          color: '#ffffff', // 设置 tooltip 字体颜色为白色
+        },
+        axisPointer: {
+          label: {
+            show: true,
+            backgroundColor: '#071c44',
+          },
         },
       },
-    },
-    yAxis: [
-      {
-        type: 'value',
-        name: 'O₂/N₂',
-        max: 100,
-        splitLine: { show: true, lineStyle: { color: 'rgba(21,80,126,.5)' } },
-        axisLabel: {
-          color: '#ffffff',
+      legend: {
+        top: '9%',
+        textStyle: {
+          color: '#ffffffff',
+        },
+        width: '80%', // 设置图例的宽度
+        orient: 'horizontal', // 水平布局
+        pageIconColor: '#ffffff', // 设置翻页图标颜色
+        pageTextStyle: {
+          color: '#ffffff', // 设置翻页文字颜色
         },
       },
-      {
-        type: 'value',
-        name: '其他气体',
-        splitLine: { show: true, lineStyle: { color: 'rgba(21,80,126,.5)' } },
+      xAxis: {
+        type: 'category',
+        data: categories,
+        splitLine: { show: true, lineStyle: { color: 'rgba(28, 72, 105, 0.5)' } },
         axisLabel: {
-          color: '#ffffff', // 设置 y 轴字体颜色
+          interval: 0, // 显示所有标签
+          color: '#ffffff', // 设置 x 轴字体颜色
+          formatter: function (value: string) {
+            return value.length > 12 ? value.slice(0, 12) + '...' : value; // 截断长标签
+          },
         },
       },
-    ],
-    grid: {
-      top: '21%', // 设置 grid 距离顶部的距离,增加间隔
-      left: '3%',
-      right: '4%',
-      bottom: '3%',
-      containLabel: true,
-    },
-    series: [
-      {
-        name: 'C₂H₂平均值',
-        data: c2h2AveValues,
-        type: 'bar',
-        yAxisIndex: 1,
-      },
-      {
-        name: 'C₂H₄平均值',
-        data: c2h4AveValues,
-        type: 'bar',
-        yAxisIndex: 1,
-      },
-      {
-        name: 'CH₄平均值',
-        data: ch4AveValues,
-        yAxisIndex: 1,
-        type: 'bar',
-      },
-      {
-        name: 'CO₂平均值',
-        data: co2AveValues,
-        yAxisIndex: 1,
-        type: 'bar',
-      },
-      {
-        name: 'CO平均值',
-        data: coAveValues,
-        yAxisIndex: 1,
-        type: 'bar',
-      },
-      {
-        name: 'O₂平均值',
-        data: o2AveValues,
-        yAxisIndex: 0,
-        type: 'bar',
-      },
-      {
-        name: 'N₂平均值',
-        data: n2AveValues,
-        yAxisIndex: 0,
-        type: 'bar',
-      },
-      {
-        name: 'C2H6平均值',
-        data: c2h6AveValues,
-        yAxisIndex: 1,
-        type: 'bar',
+      yAxis: [
+        {
+          type: 'value',
+          name: 'O₂/N₂',
+          max: 100,
+          splitLine: { show: true, lineStyle: { color: 'rgba(21,80,126,.5)' } },
+          axisLabel: {
+            color: '#ffffff',
+          },
+        },
+        {
+          type: 'value',
+          name: '其他气体',
+          splitLine: { show: true, lineStyle: { color: 'rgba(21,80,126,.5)' } },
+          axisLabel: {
+            color: '#ffffff', // 设置 y 轴字体颜色
+          },
+        },
+      ],
+      grid: {
+        top: '21%', // 设置 grid 距离顶部的距离,增加间隔
+        left: '3%',
+        right: '4%',
+        bottom: '3%',
+        containLabel: true,
       },
-    ],
-  };
-  myChart.setOption(option);
-}
-//获取所有文件列表
-async function getAllFile() {
-  let res = await getAllFileList({ type: 'bundleSpy' });
-  selectList.value = res.records.map((item: any) => ({
-    fileId: item.fileId,
-    fileName: item.fileName,
-  }));
-  if (selectList.value.length > 0) {
-    formSearch.fileId = selectList.value[0].fileId;
-    getSearch();
+      series: [
+        {
+          name: 'C₂H₂平均值',
+          data: c2h2AveValues,
+          type: 'bar',
+          yAxisIndex: 1,
+        },
+        {
+          name: 'C₂H₄平均值',
+          data: c2h4AveValues,
+          type: 'bar',
+          yAxisIndex: 1,
+        },
+        {
+          name: 'CH₄平均值',
+          data: ch4AveValues,
+          yAxisIndex: 1,
+          type: 'bar',
+        },
+        {
+          name: 'CO₂平均值',
+          data: co2AveValues,
+          yAxisIndex: 1,
+          type: 'bar',
+        },
+        {
+          name: 'CO平均值',
+          data: coAveValues,
+          yAxisIndex: 1,
+          type: 'bar',
+        },
+        {
+          name: 'O₂平均值',
+          data: o2AveValues,
+          yAxisIndex: 0,
+          type: 'bar',
+        },
+        {
+          name: 'N₂平均值',
+          data: n2AveValues,
+          yAxisIndex: 0,
+          type: 'bar',
+        },
+        {
+          name: 'C2H6平均值',
+          data: c2h6AveValues,
+          yAxisIndex: 1,
+          type: 'bar',
+        },
+      ],
+    };
+    myChart.setOption(option);
   }
-}
-// 处理文件点击事件
-function handleFileClick(item: any) {
-  formSearch.fileId = item.fileId;
-  formSearch.fileName = item.fileName;
-  selectedFileId.value = item.fileId;
-  getSearch();
-}
-//查询
-function getSearch() {
-  const selectedFile = selectList.value.find((item) => item.fileId === formSearch.fileId);
-  const params = {
-    fileId: formSearch.fileId,
-    fileName: selectedFile ? selectedFile.fileName : '',
-  };
-  getTableList(params);
-}
-onMounted(() => {
-  getTableList({ type: 'bundleSpy' });
-  getAllFile().then(() => {
+  //获取所有文件列表
+  async function getAllFile() {
+    let res = await getAllFileList({ type: 'bundleSpy' });
+    selectList.value = res.records.map((item: any) => ({
+      fileId: item.fileId,
+      fileName: item.fileName,
+    }));
     if (selectList.value.length > 0) {
       formSearch.fileId = selectList.value[0].fileId;
-      selectedFileId.value = selectList.value[0].fileId;
       getSearch();
     }
+  }
+  // 处理文件点击事件
+  function handleFileClick(item: any) {
+    formSearch.fileId = item.fileId;
+    formSearch.fileName = item.fileName;
+    selectedFileId.value = item.fileId;
+    getSearch();
+  }
+  //查询
+  function getSearch() {
+    const selectedFile = selectList.value.find((item) => item.fileId === formSearch.fileId);
+    const params = {
+      fileId: formSearch.fileId,
+      fileName: selectedFile ? selectedFile.fileName : '',
+    };
+    getTableList(params);
+  }
+  onMounted(() => {
+    getTableList({ type: 'bundleSpy' });
+    getAllFile().then(() => {
+      if (selectList.value.length > 0) {
+        formSearch.fileId = selectList.value[0].fileId;
+        selectedFileId.value = selectList.value[0].fileId;
+        getSearch();
+      }
+    });
   });
-});
 </script>
 
 <style lang="less" scoped>
-@import '/@/design/theme.less';
+  @import '/@/design/theme.less';
 
-.content-container {
-  display: flex;
-  width: 100%;
-  height: 100%;
-}
+  .content-container {
+    display: flex;
+    width: 100%;
+    height: 100%;
+  }
 
-.file-list {
-  width: 20%;
-  padding: 10px;
-  margin-right: 10px;
-  margin-bottom: 50px;
-  border: 1px solid #99e8ff66;
-  background: #27546e1a;
-  box-shadow: 0px 0px 20px 7px rgba(145, 233, 254, 0.7) inset;
-  -moz-box-shadow: 0px 0px 20px 7px rgba(145, 233, 254, 0.7) inset;
-  -webkit-box-shadow: 0px 0px 50px 1px rgb(149 235 255 / 5%) inset;
-}
+  .file-list {
+    width: 20%;
+    padding: 10px;
+    margin-right: 10px;
+    margin-bottom: 50px;
+    border: 1px solid #99e8ff66;
+    background: #27546e1a;
+    box-shadow: 0px 0px 20px 7px rgba(145, 233, 254, 0.7) inset;
+    -moz-box-shadow: 0px 0px 20px 7px rgba(145, 233, 254, 0.7) inset;
+    -webkit-box-shadow: 0px 0px 50px 1px rgb(149 235 255 / 5%) inset;
+  }
 
-.file-list ul {
-  list-style: none;
-  padding: 0;
-}
+  .file-list ul {
+    list-style: none;
+    padding: 0;
+  }
 
-.file-list li {
-  color: #fff;
-  padding: 5px;
-  cursor: pointer;
-}
+  .file-list li {
+    color: #fff;
+    padding: 5px;
+    cursor: pointer;
+  }
 
-.file-list li:hover,
-.file-list li.selected {
-  background: #1c4869;
-}
+  .file-list li:hover,
+  .file-list li.selected {
+    background: #1c4869;
+  }
 
-.table-container {
-  margin-top: 10px;
-  width: 80%;
-  box-sizing: border-box;
-}
+  .table-container {
+    margin-top: 10px;
+    width: 80%;
+    box-sizing: border-box;
+  }
 
-.dustMonitor {
-  width: 100%;
-  height: 100%;
-  padding: 10px 10px 15px 10px;
-  box-sizing: border-box;
-  position: relative;
-}
+  .dustMonitor {
+    width: 100%;
+    height: 100%;
+    padding: 10px 10px 15px 10px;
+    box-sizing: border-box;
+    position: relative;
+  }
 
-:deep(.zxm-table-thead > tr > th:last-child) {
-  border-right: 1px solid #91e9fe !important;
-}
+  :deep(.zxm-table-thead > tr > th:last-child) {
+    border-right: 1px solid #91e9fe !important;
+  }
 
-:deep(.zxm-picker-input > input) {
-  color: #fff;
-}
+  :deep(.zxm-picker-input > input) {
+    color: #fff;
+  }
 
-:deep(.zxm-select:not(.zxm-select-customize-input) .zxm-select-selector) {
-  border: 1px solid var(--vent-form-item-border) !important;
-  background-color: #ffffff00 !important;
-}
+  :deep(.zxm-select:not(.zxm-select-customize-input) .zxm-select-selector) {
+    border: 1px solid var(--vent-form-item-border) !important;
+    background-color: #ffffff00 !important;
+  }
 
-:deep(.zxm-select-selection-item) {
-  color: #fff !important;
-}
-.data-container {
-  display: flex;
-  width: 100%;
-  height: 100%;
-}
+  :deep(.zxm-select-selection-item) {
+    color: #fff !important;
+  }
+  .data-container {
+    display: flex;
+    width: 100%;
+    height: 100%;
+  }
 
-.line-chart {
-  flex: 3; /* 占据 3/4 的空间 */
-  width: 100%;
-  height: 400px;
-}
-.data-content {
-  flex: 1; /* 占据 1/4 的空间 */
-  height: 400px;
-  display: flex;
-  flex-direction: column; /* 垂直排列进度条 */
-  // align-items: center; /* 水平居中 */
-  margin: 10px;
-  .title {
-    font-size: 18px;
-    font-weight: 600;
+  .line-chart {
+    flex: 3; /* 占据 3/4 的空间 */
+    width: 100%;
+    height: 400px;
+  }
+  .data-content {
+    flex: 1; /* 占据 1/4 的空间 */
+    height: 400px;
+    display: flex;
+    flex-direction: column; /* 垂直排列进度条 */
+    // align-items: center; /* 水平居中 */
+    margin: 10px;
+    .title {
+      font-size: 18px;
+      font-weight: 600;
+      color: #fff;
+      margin-bottom: 20px;
+    }
+    .explain {
+      color: var(--vent-table-action-link);
+      margin-top: 18px;
+    }
+  }
+  .progress {
+    width: 100%;
+    height: 20px;
+    margin-top: 10px;
+  }
+  .progress-label {
+    margin-top: 20px;
+    text-align: left;
+    margin-bottom: 5px;
     color: #fff;
-    margin-bottom: 20px;
   }
-  .explain {
-    color: var(--vent-table-action-link);
-    margin-top: 18px;
+  ::deep .progress-text {
+    color: #fff !important; /* 自定义百分比文字颜色 */
+  }
+  .blast-delta-container {
+    margin: 50px;
+  }
+  .yellow-progress .ant-progress-bg {
+    background-color: yellow !important;
   }
-}
-.progress {
-  width: 100%;
-  height: 20px;
-  margin-top: 10px;
-}
-.progress-label {
-  margin-top: 20px;
-  text-align: left;
-  margin-bottom: 5px;
-  color: #fff;
-}
-::deep .progress-text {
-  color: #fff !important; /* 自定义百分比文字颜色 */
-}
-.blast-delta-container {
-  margin: 50px;
-}
-.yellow-progress .ant-progress-bg {
-  background-color: yellow !important;
-}
 
-:deep(.zxm-table-thead > tr > th:last-child) {
-  border-right: 1px solid #91e9fe !important;
-}
+  :deep(.zxm-table-thead > tr > th:last-child) {
+    border-right: 1px solid #91e9fe !important;
+  }
 </style>

+ 23 - 22
src/views/vent/monitorManager/alarmMonitor/common/closeWall.vue

@@ -234,6 +234,7 @@
   }
   //密闭参数选项切换
   function btnClick(item, ind) {
+    debugger;
     activeIndex.value = ind;
     type.value = item.label;
     echartDataSg1.xData.length = 0;
@@ -255,9 +256,9 @@
           time: echartDataSg1.xData,
           data: [
             // 氧气预测曲线
-            data.avgParams?.avg_o2_value || 0,
-            data.avgParams?.max_o2_value || 0,
-            data.avgParams?.min_o2_value || 0,
+            data.avgParam?.avg_o2_value || 0,
+            data.avgParam?.max_o2_value || 0,
+            data.avgParam?.min_o2_value || 0,
             // data.readData?.o2val,
           ],
           monitorData: echartDataSg1.yData,
@@ -275,9 +276,9 @@
           time: echartDataSg1.xData,
           data: [
             // 预测曲线
-            data.avgParams?.avg_ch2_value || 0,
-            data.avgParams?.max_ch2_value || 0,
-            data.avgParams?.min_ch2_value || 0,
+            data.avgParam?.avg_c2h4_value || 0,
+            data.avgParam?.max_c2h4_value || 0,
+            data.avgParam?.min_c2h4_value || 0,
             // data.readData?.ch2val,
           ],
           monitorData: echartDataSg1.yData,
@@ -295,9 +296,9 @@
           time: echartDataSg1.xData,
           data: [
             // 预测曲线
-            data.avgParams?.avg_co_value || 0,
-            data.avgParams?.max_co_value || 0,
-            data.avgParams?.min_co_value || 0,
+            data.avgParam?.avg_co_value || 0,
+            data.avgParam?.max_co_value || 0,
+            data.avgParam?.min_co_value || 0,
             // data.readData?.coval,
           ],
           monitorData: echartDataSg1.yData,
@@ -307,17 +308,17 @@
       case 'CH₄':
         echartDataSgList.forEach((el) => {
           echartDataSg1.xData.push(el.time);
-          echartDataSg1.yData.push(el.chval);
+          echartDataSg1.yData.push(el.gasval);
         });
         curveConfig.value = {
           id: 'ch',
           label: 'CH₄',
-          time: new Date(),
+          time: echartDataSg1.xData,
           data: [
             // 预测曲线
-            data.avgParams?.avg_ch_value || 0,
-            data.avgParams?.max_ch_value || 0,
-            data.avgParams?.min_ch_value || 0,
+            data.avgParam?.avg_ch4_value || 0,
+            data.avgParam?.max_ch4_value || 0,
+            data.avgParam?.min_ch4_value || 0,
             // data.readData?.chval,
           ],
           monitorData: echartDataSg1.yData,
@@ -335,9 +336,9 @@
           time: echartDataSg1.xData,
           data: [
             // 预测曲线
-            data.avgParams?.avg_co2_value || 0,
-            data.avgParams?.max_co2_value || 0,
-            data.avgParams?.min_co2_value || 0,
+            data.avgParam?.avg_co2_value || 0,
+            data.avgParam?.max_co2_value || 0,
+            data.avgParam?.min_co2_value || 0,
             // data.readData?.co2val,
           ],
           monitorData: echartDataSg1.yData,
@@ -347,17 +348,17 @@
       case 'C₂H₂':
         echartDataSgList.forEach((el) => {
           echartDataSg1.xData.push(el.time);
-          echartDataSg1.yData.push(el.gasval);
+          echartDataSg1.yData.push(el.chval);
         });
         curveConfig.value = {
           id: 'gas',
-          label: '',
+          label: 'C₂H₂',
           time: echartDataSg1.xData,
           data: [
             // 预测曲线
-            data.avgParams?.avg_gas_value || 0,
-            data.avgParams?.max_gas_value || 0,
-            data.avgParams?.min_gas_value || 0,
+            data.avgParam?.avg_c2h2_value || 0,
+            data.avgParam?.max_c2h2_value || 0,
+            data.avgParam?.min_c2h2_value || 0,
             // data.readData?.gasval,
           ],
           monitorData: echartDataSg1.yData,

+ 1 - 1
src/views/vent/monitorManager/alarmMonitor/common/echartLine.vue

@@ -61,7 +61,7 @@
         legend: {
           align: 'left',
           right: 'center',
-          top: '0%',
+          top: '-20',
           type: 'plain',
           textStyle: {
             color: '#7ec7ff',

+ 11 - 11
src/views/vent/monitorManager/alarmMonitor/common/echartLine3.vue

@@ -42,7 +42,7 @@
         },
         grid: {
           top: '15%',
-          left: '8%',
+          left: '11%',
           bottom: '10%',
           right: '4%',
         },
@@ -106,7 +106,7 @@
         ],
         series: [
           {
-            name: props.legendName + '平均值',
+            name: props.legendName + '实时值',
             type: 'line',
             smooth: true,
             yAxisIndex: 0,
@@ -116,36 +116,36 @@
                 width: 2,
               },
             },
-            data: props.y1Data,
+            data: props.y4Data,
           },
           {
-            name: props.legendName + '最大值',
+            name: props.legendName + '预测值',
             type: 'line',
             smooth: true,
-            symbol: 'none',
             yAxisIndex: 0,
+            symbol: 'none',
             lineStyle: {
               normal: {
                 width: 2,
               },
             },
-            data: props.y2Data,
+            data: props.y1Data,
           },
           {
-            name: props.legendName + '最值',
+            name: props.legendName + '最值',
             type: 'line',
             smooth: true,
-            yAxisIndex: 0,
             symbol: 'none',
+            yAxisIndex: 0,
             lineStyle: {
               normal: {
                 width: 2,
               },
             },
-            data: props.y3Data,
+            data: props.y2Data,
           },
           {
-            name: props.legendName + '实时值',
+            name: props.legendName + '最小值',
             type: 'line',
             smooth: true,
             yAxisIndex: 0,
@@ -155,7 +155,7 @@
                 width: 2,
               },
             },
-            data: props.y4Data,
+            data: props.y3Data,
           },
         ],
       };

+ 27 - 28
src/views/vent/monitorManager/alarmMonitor/common/fireWork.vue

@@ -162,7 +162,6 @@
   }
   //束管实时数据选项点击
   function getSgClick(items) {
-    debugger;
     echartDataSg.xData.length = 0;
     echartDataSg.yData.length = 0;
     echartDataSg.lengedData = items.title;
@@ -182,9 +181,9 @@
           time: echartDataSg.xData,
           data: [
             // 氧气预测曲线
-            data.avgParams?.avg_o2_value || 0,
-            data.avgParams?.max_o2_value || 0,
-            data.avgParams?.min_o2_value || 0,
+            data.avgParam?.avg_o2_value || 0,
+            data.avgParam?.max_o2_value || 0,
+            data.avgParam?.min_o2_value || 0,
             // data.readData?.o2val,
           ],
           monitorData: echartDataSg.yData,
@@ -202,9 +201,9 @@
           time: echartDataSg.xData,
           data: [
             // 预测曲线
-            data.avgParams?.avg_ch2_value || 0,
-            data.avgParams?.max_ch2_value || 0,
-            data.avgParams?.min_ch2_value || 0,
+            data.avgParam?.avg_c2h4_value || 0,
+            data.avgParam?.max_c2h4_value || 0,
+            data.avgParam?.min_c2h4_value || 0,
             // data.readData?.ch2val,
           ],
           monitorData: echartDataSg.yData,
@@ -222,9 +221,9 @@
           time: echartDataSg.xData,
           data: [
             // 预测曲线
-            data.avgParams?.avg_co_value || 0,
-            data.avgParams?.max_co_value || 0,
-            data.avgParams?.min_co_value || 0,
+            data.avgParam?.avg_co_value || 0,
+            data.avgParam?.max_co_value || 0,
+            data.avgParam?.min_co_value || 0,
             // data.readData?.coval,
           ],
           monitorData: echartDataSg.yData,
@@ -232,19 +231,20 @@
         getmaxY();
         break;
       case 'CH₄':
+        debugger;
         echartDataSgList.forEach((el) => {
           echartDataSg.xData.push(el.time);
-          echartDataSg.yData.push(el.chval);
+          echartDataSg.yData.push(el.gasval);
         });
         curveConfig.value = {
-          id: 'ch',
+          id: 'ch4',
           label: 'CH₄',
-          time: new Date(),
+          time: echartDataSg.xData,
           data: [
             // 预测曲线
-            data.avgParams?.avg_ch_value || 0,
-            data.avgParams?.max_ch_value || 0,
-            data.avgParams?.min_ch_value || 0,
+            data.avgParam?.avg_ch4_value || 0,
+            data.avgParam?.max_ch4_value || 0,
+            data.avgParam?.min_ch4_value || 0,
             // data.readData?.chval,
           ],
           monitorData: echartDataSg.yData,
@@ -262,9 +262,9 @@
           time: echartDataSg.xData,
           data: [
             // 预测曲线
-            data.avgParams?.avg_co2_value || 0,
-            data.avgParams?.max_co2_value || 0,
-            data.avgParams?.min_co2_value || 0,
+            data.avgParam?.avg_co2_value || 0,
+            data.avgParam?.max_co2_value || 0,
+            data.avgParam?.min_co2_value || 0,
             // data.readData?.co2val,
           ],
           monitorData: echartDataSg.yData,
@@ -274,17 +274,17 @@
       case 'C₂H₂':
         echartDataSgList.forEach((el) => {
           echartDataSg.xData.push(el.time);
-          echartDataSg.yData.push(el.gasval);
+          echartDataSg.yData.push(el.chval);
         });
         curveConfig.value = {
           id: 'gas',
-          label: '',
+          label: 'C₂H₂',
           time: echartDataSg.xData,
           data: [
             // 预测曲线
-            data.avgParams?.avg_gas_value || 0,
-            data.avgParams?.max_gas_value || 0,
-            data.avgParams?.min_gas_value || 0,
+            data.avgParam?.avg_c2h2_value || 0,
+            data.avgParam?.max_c2h2_value || 0,
+            data.avgParam?.min_c2h2_value || 0,
             // data.readData?.gasval,
           ],
           monitorData: echartDataSg.yData,
@@ -294,7 +294,6 @@
     }
   }
   function changeSelect(val) {
-    debugger;
     selectData.value = val;
     let data = selectSj.value.filter((v) => v.strinstallpos == selectData.value)[0];
     contentList[0].list[0].value = data.readData.o2val;
@@ -337,9 +336,9 @@
         arr.forEach((el) => {
           echartDataGq.xData.push(el.pos);
           echartDataGq.curData.data.push(el.value);
-          echartDataGq.maxData.data.push(fiber.avgParams?.max_temperature_value || 0);
-          echartDataGq.minData.data.push(fiber.avgParams?.min_temperature_value || 0);
-          echartDataGq.avgData.data.push(fiber.avgParams?.avg_temperature_value || 0);
+          echartDataGq.maxData.data.push(fiber.avgParam?.max_temperature_value || 0);
+          echartDataGq.minData.data.push(fiber.avgParam?.min_temperature_value || 0);
+          echartDataGq.avgData.data.push(fiber.avgParam?.avg_temperature_value || 0);
         });
       } else {
         topList[0].value = '--';

+ 5 - 5
src/views/vent/monitorManager/alarmMonitor/common/mainWell.vue

@@ -385,7 +385,7 @@
       case 'CH₄':
         echartDataSgList.forEach((el) => {
           echartDataSg1.xData.push(el.time);
-          echartDataSg1.yData.push(el.chval);
+          echartDataSg1.yData.push(el.gasval);
         });
         break;
       case 'CO₂':
@@ -397,7 +397,7 @@
       case 'C₂H₂':
         echartDataSgList.forEach((el) => {
           echartDataSg1.xData.push(el.time);
-          echartDataSg1.yData.push(el.gasval);
+          echartDataSg1.yData.push(el.chval);
         });
         break;
     }
@@ -431,9 +431,9 @@
         arr.forEach((el) => {
           echartDataWd.xData.push(el.pos);
           echartDataWd.curData.data.push(el.value);
-          echartDataWd.maxData.data.push(fiber.avgParams?.max_temperature_value || 0);
-          echartDataWd.minData.data.push(fiber.avgParams?.min_temperature_value || 0);
-          echartDataWd.avgData.data.push(fiber.avgParams?.avg_temperature_value || 0);
+          echartDataWd.maxData.data.push(fiber.avgParam?.max_temperature_value || 0);
+          echartDataWd.minData.data.push(fiber.avgParam?.min_temperature_value || 0);
+          echartDataWd.avgData.data.push(fiber.avgParam?.avg_temperature_value || 0);
         });
       } else {
         topOutList[0].value = '--';

+ 5 - 4
src/views/vent/monitorManager/alarmMonitor/common/measurePoint.vue

@@ -26,11 +26,11 @@
             <span>{{ `${el.label} : ` }}</span>
             <span
               :class="{
-                'status-f': el.value == 1,
-                'status-l': el.value == 0,
+                'status-f': el.label.includes('状态') && el.value == 1,
+                'status-l': el.label.includes('状态') && el.value == 0,
               }"
             >
-              {{ el.value == 1 ? '异常' : el.value == 0 ? '正常' : el.value }}
+              {{ el.label.includes('状态') ? (el.value == 1 ? '异常' : el.value == 0 ? '正常' : el.value) : el.value }}
             </span>
           </div>
         </div>
@@ -41,7 +41,7 @@
         <div class="text-center">
           {{ item.label }}
         </div>
-        <PredictionCurve style="height: 300px; width: 474px; margin: 15px" :chart="item" :timeout="timeout" />
+        <PredictionCurve :style="{ width: chartWidth || '474px' }" style="height: 300px; margin: 15px" :chart="item" />
       </div>
     </div>
   </div>
@@ -61,6 +61,7 @@
     }[];
     title: string;
     timeout?: number;
+    chartWidth?: string;
   }>();
 
   const shown = ref('default');

+ 4 - 4
src/views/vent/monitorManager/alarmMonitor/common/predictionCurve.vue

@@ -60,8 +60,8 @@
   watch(
     () => props.chart,
     (el) => {
-      debugger;
-      if (!el) return;
+      // debugger;
+      if (!el || !el.time) return;
 
       // 新版的预测曲线处理,应用到了火灾预警下的各个模块
       if (isCurveProp(el)) {
@@ -106,8 +106,8 @@
             y3: arr.map(() => {
               return el.data[2];
             }),
-            y4: arr.map(() => {
-              return el.data[3];
+            y4: arr.map((item, index) => {
+              return index == 0 ? el.data[3] : null;
             }),
           };
         } else {

+ 2 - 3
src/views/vent/monitorManager/alarmMonitor/common/warnGradeEchart.vue

@@ -7,7 +7,7 @@
 <script lang="ts" setup>
   import { defineProps, ref, nextTick, reactive, watch } from 'vue';
   import * as echarts from 'echarts';
-import { position } from 'html2canvas/dist/types/css/property-descriptors/position';
+  import { position } from 'html2canvas/dist/types/css/property-descriptors/position';
 
   let props = defineProps({
     echartData: {
@@ -46,7 +46,7 @@ import { position } from 'html2canvas/dist/types/css/property-descriptors/positi
       let myChart = echarts.init(bar.value);
       let option = {
         title: {
-          text: '风险比例分析',
+          text: '风险权重比例',
           left: '22%',
           top: 5,
           textStyle: {
@@ -73,7 +73,6 @@ import { position } from 'html2canvas/dist/types/css/property-descriptors/positi
             data: echartDatas.value,
 
             label: {
-              
               normal: {
                 formatter: ['{c|{c}}', '{b|{b}}'].join('\n'),
                 rich: {

+ 23 - 24
src/views/vent/monitorManager/alarmMonitor/common/warnGradeInfo.vue

@@ -1,45 +1,44 @@
 <template>
-    <div class="warn-grade-info">
-        <a-table :columns="columns" size="small" :data-source="tableData" :scroll="{ y: 500 }" class="tableW"
-            :pagination="false"></a-table>
-    </div>
+  <div class="warn-grade-info">
+    <a-table :columns="columns" size="small" :data-source="tableData" :scroll="{ y: 500 }" class="tableW" :pagination="false" />
+  </div>
 </template>
 
 <script setup lang="ts">
-import { ref, reactive, onMounted } from 'vue'
+  import { ref, reactive, onMounted } from 'vue';
 
-let columns = ref < any[] > ([
+  let columns = ref<any[]>([
     {
-        title: '序号',
-        width: 60,
-        align: 'center',
-        customRender: ({ index }: { index: number }) => `${index + 1}`
+      title: '序号',
+      width: 60,
+      align: 'center',
+      customRender: ({ index }: { index: number }) => `${index + 1}`,
     },
     {
-        title: '得分',
-        dataIndex: 'df',
-        key: 'df',
-        align: 'center',
+      title: '得分',
+      dataIndex: 'df',
+      key: 'df',
+      align: 'center',
     },
     {
-        title: '等级',
-        dataIndex: 'grade',
-        key: 'grade',
-        align: 'center',
+      title: '等级',
+      dataIndex: 'grade',
+      key: 'grade',
+      align: 'center',
     },
-])
-let tableData = ref < any[] > ([
+  ]);
+  let tableData = ref<any[]>([
     { df: '0<A<=1', grade: '低风险' },
     { df: '1<A<=2', grade: '一般风险' },
     { df: '2<A<=3', grade: '较大风险' },
     { df: '3<A<=4', grade: '重大风险' },
-])
+  ]);
 </script>
 
 <style lang="less" scoped>
-.warn-grade-info {
+  .warn-grade-info {
     position: relative;
     padding: 10px;
     box-sizing: border-box;
-}
-</style>
+  }
+</style>

+ 7 - 7
src/views/vent/monitorManager/alarmMonitor/index.vue

@@ -163,7 +163,7 @@
             <div class="text2">{{ centerData.riskLevel }}</div>
             <div class="text3">风险得分</div>
           </div>
-          <div class="icon-animation"  @click="warnGradeClick"></div>
+          <div class="icon-animation" @click="warnGradeClick"></div>
         </div>
 
         <div class="total-item-monitor-box">
@@ -175,7 +175,7 @@
               <span class="title">火灾监测预警</span>
               <span :class="centerData.fire != 1001 ? 'value' : 'value1'">{{
                 centerData.fire == 0
-                  ? '正常'
+                  ? '低风险'
                   : centerData.fire == 101
                   ? '低风险'
                   : centerData.fire == 102
@@ -198,7 +198,7 @@
               <span class="title">设备监测预警</span>
               <span :class="centerData.sb != 1001 ? 'value' : 'value1'">{{
                 centerData.sb == 0
-                  ? '正常'
+                  ? '低风险'
                   : centerData.sb == 101
                   ? '低风险'
                   : centerData.sb == 102
@@ -221,7 +221,7 @@
               <span class="title">粉尘监测预警</span>
               <span :class="centerData.fc != 1001 ? 'value' : 'value1'">{{
                 centerData.fc == 0
-                  ? '正常'
+                  ? '低风险'
                   : centerData.fc == 101
                   ? '低风险'
                   : centerData.fc == 102
@@ -244,7 +244,7 @@
               <span class="title">瓦斯监测预警</span>
               <span :class="centerData.ws != 1001 ? 'value' : 'value1'">{{
                 centerData.ws == 0
-                  ? '正常'
+                  ? '低风险'
                   : centerData.ws == 101
                   ? '低风险'
                   : centerData.ws == 102
@@ -272,7 +272,7 @@
               <span class="title">通风监测预警</span>
               <span :class="centerData.tf !== 1001 ? 'value' : 'value1'">{{
                 centerData.tf == 0
-                  ? '正常'
+                  ? '低风险'
                   : centerData.tf == 101
                   ? '低风险'
                   : centerData.tf == 102
@@ -532,7 +532,7 @@
     centerData.ws = res.info.sysInfo.gasS.maxLevel;
     centerData.sb = res.info.deviceWarnInfo.maxLevel;
     centerData.fc = res.info.sysInfo.dustS.maxLevel;
-    centerData.riskLevel = res.info.sysInfo.dustS.maxLevel;
+    centerData.riskLevel = res.info.riskLevel;
     Levels = await getDisasterProportion();
 
     centerData.levels = 0 < Levels.level <= 1 ? 101 : 1 < Levels.level <= 2 ? 102 : 2 < Levels.level <= 3 ? 103 : 3 < Levels.level <= 4 ? 104 : 0;

+ 28 - 23
src/views/vent/monitorManager/alarmMonitor/warn/dustWarn.vue

@@ -46,7 +46,7 @@
     </div>
     <div class="bot-dust">
       <div class="bot-area">
-        <MeasurePoint title="粉尘监控测点信息" :cards="cardListTf" :charts="chartListTf" />
+        <MeasurePoint title="粉尘监控测点信息" :cards="cardListTf" :charts="chartListTf" chartWidth="420px" />
       </div>
     </div>
   </div>
@@ -66,7 +66,7 @@
   const { hasPermission } = usePermission();
   const { options, optionValue, getSelectRow, getSysDataSource } = useSystemSelect('sys_surface_caimei'); // 参数为场景类型(设备类型管理中可以查询到)
   //左侧数据列表
-  let menuList = reactive<any[]>([]);
+  let menuList = ref<any[]>([]);
   //当前左侧激活菜单的索引
   let activeIndex1 = ref(0);
   //顶部区域激活选项
@@ -99,8 +99,8 @@
     right: '5%',
     containLabel: true,
   });
-  const cardListTf = reactive<any[]>([]);
-  const chartListTf = reactive<any[]>([]);
+  const cardListTf = ref<any[]>([]);
+  const chartListTf = ref<any[]>([]);
   let router = useRouter();
   let echartNow = ref<any[]>([]);
   let echartYc = reactive<any[]>([]);
@@ -112,6 +112,7 @@
     timer = setTimeout(
       async () => {
         await getSysWarnList(deviceID, 'dust');
+        await getWindDeviceList();
         if (timer) {
           timer = null;
         }
@@ -165,16 +166,17 @@
   async function getMenuList() {
     let res = await sysTypeWarnList({ type: 'dust' });
     if (res.length != 0) {
-      menuList.length = 0;
+      const menuListTemp: any[] = [];
       res.forEach((el) => {
-        menuList.push({
+        menuListTemp.push({
           name: el.systemname,
           warn: '低风险',
           deviceID: el.id,
           strtype: el.strtype,
         });
       });
-      getMonitor(menuList[0].deviceID, true);
+      menuList.value = menuListTemp;
+      getMonitor(menuList.value[0].deviceID, true);
     }
   }
   //获取预警详情弹窗右侧数据
@@ -182,7 +184,6 @@
     sysWarn({ sysid: id, type: type }).then((res) => {
       // listData.common = res;
       topAreaList.length = 0;
-      chartListTf.length = 0;
 
       if (JSON.stringify(res) != '{}') {
         res.dust.forEach((el) => {
@@ -195,18 +196,6 @@
               { ids: 3, label: '喷雾状态', value: el.readData.atomizingState || '--' },
             ],
           });
-
-          // 初始化预测曲线配置,分别为x轴时间、平均、最大、最小、实时
-          const avgParams = el.avgParam || {
-            avg_dusting_value: 0,
-            max_dusting_value: 0,
-            min_dusting_value: 0,
-          };
-          chartListTf.push({
-            label: el.strinstallpos,
-            time: new Date(),
-            data: [avgParams.avg_dusting_value, avgParams.max_dusting_value, avgParams.min_dusting_value, el.readData.dustval],
-          });
         });
         choiceData = res.dust;
 
@@ -304,7 +293,9 @@
 
   //获取粉尘监控测点信息
   async function getWindDeviceList() {
-    cardListTf.length = 0;
+    // cardListTf.length = 0;
+    const cardListTfTemp: any[] = [];
+    const chartListTfTemp: any[] = [];
     let res = await getDevice({ devicetype: 'dusting', pagetype: 'normal' });
     if (res && res.msgTxt[0]) {
       let list = res.msgTxt[0].datalist || [];
@@ -312,7 +303,7 @@
         list.forEach((el: any) => {
           const readData = el.readData;
           el = Object.assign(el, readData);
-          cardListTf.push({
+          cardListTfTemp.push({
             label: '通信状态',
             value: el.netStatus == '0' ? '断开' : '连接',
             listR: [
@@ -333,13 +324,27 @@
               },
             ],
           });
+
+          // 初始化预测曲线配置,分别为x轴时间、平均、最大、最小、实时
+          const avgParam = el.avgParam || {
+            avg_dusting_value: 0,
+            max_dusting_value: 0,
+            min_dusting_value: 0,
+          };
+          chartListTfTemp.push({
+            label: el.strinstallpos,
+            time: new Date(),
+            data: [avgParam.avg_dusting_value, avgParam.max_dusting_value, avgParam.min_dusting_value, el.readData.dustval],
+          });
         });
       }
     }
+    cardListTf.value = cardListTfTemp;
+    chartListTf.value = chartListTfTemp;
   }
   onMounted(() => {
     getMenuList();
-    getWindDeviceList();
+    // getWindDeviceList();
   });
   onUnmounted(() => {
     if (timer) {

+ 2 - 2
src/views/vent/monitorManager/alarmMonitor/warn/gasWarn.vue

@@ -185,7 +185,7 @@
             ],
           });
           // 初始化预测曲线配置,分别为x轴时间、平均、最大、最小、实时
-          const avgParams = el.avgParam || {
+          const avgParam = el.avgParam || {
             avg_gas_value: 0,
             max_gas_value: 0,
             min_gas_value: 0,
@@ -193,7 +193,7 @@
           chartListWs.push({
             label: el.strinstallpos,
             time: new Date(),
-            data: [avgParams.avg_gas_value, avgParams.max_gas_value, avgParams.min_gas_value, el.readData.gasC],
+            data: [avgParam.avg_gas_value, avgParam.max_gas_value, avgParam.min_gas_value, el.readData.gasC],
           });
         });
       }

+ 21 - 21
src/views/vent/monitorManager/alarmMonitor/warn/ventilateWarn.vue

@@ -58,7 +58,7 @@
     </div>
     <div class="ventilate-bottom">
       <div class="bot-area">
-        <MeasurePoint title="通风监控测点信息" :timeout="1000" :cards="cardListTf" :charts="chartListTf" />
+        <MeasurePoint title="通风监控测点信息" :timeout="1000" :cards="cardListTf" :charts="chartListTf" chartWidth="420px" />
       </div>
     </div>
   </div>
@@ -101,8 +101,8 @@
     },
     xData: [],
   });
-  let cardListTf = reactive<any[]>([]);
-  const chartListTf = reactive<any[]>([]);
+  let cardListTf = ref<any[]>([]);
+  const chartListTf = ref<any[]>([]);
 
   // https获取监测数据
   let timer: null | NodeJS.Timeout = null;
@@ -110,6 +110,7 @@
     timer = setTimeout(
       async () => {
         await getSysWarnList(deviceID, 'vent');
+        await getWindDeviceList();
         if (timer) {
           timer = null;
         }
@@ -151,27 +152,13 @@
       echartDataFc1.minData.data.length = 0;
       echartDataFc1.aveValue.data.length = 0;
       echartDataFc1.xData.length = 0;
-      chartListTf.length = 0;
+      // chartListTf.value.length = 0;
       if (JSON.stringify(res) != '{}') {
         ventilateTopList[0].value = res.jin || '--';
         ventilateTopList[1].value = res.hui || '--';
         ventilateTopList[2].value = res.xufengliang || '--';
         ventilateTopList[3].text = res.warnFlag ? res.warnDes : '正常';
 
-        res.vent.forEach((el) => {
-          // 初始化预测曲线配置,分别为x轴时间、平均、最大、最小、实时
-          const avgParams = el.avgParam || {
-            avg_vent_value: 0,
-            max_vent_value: 0,
-            min_vent_value: 0,
-          };
-          chartListTf.push({
-            label: el.strinstallpos,
-            time: new Date(),
-            data: [avgParams.avg_vent_value, avgParams.max_vent_value, avgParams.min_vent_value, el.readData.jin],
-          });
-        });
-
         if (res.history.length != 0) {
           res.history.forEach((v) => {
             echartDataFc1.maxData.data.push(parseFloat(v.jin));
@@ -213,7 +200,8 @@
   }
   //获取通风监控测点信息
   async function getWindDeviceList() {
-    cardListTf.length = 0;
+    const cardTfList = [];
+    const chartTfList = [];
     let res = await getDevice({ devicetype: 'windrect', pagetype: 'normal' });
     if (res && res.msgTxt[0]) {
       let list = res.msgTxt[0].datalist || [];
@@ -221,7 +209,7 @@
         list.forEach((el: any) => {
           const readData = el.readData;
           el = Object.assign(el, readData);
-          cardListTf.push({
+          cardTfList.push({
             label: '通信状态',
             value: el.netStatus == '0' ? '断开' : '连接',
             listR: [
@@ -237,13 +225,25 @@
               },
             ],
           });
+          // 初始化预测曲线配置,分别为x轴时间、平均、最大、最小、实时
+          const avgParam = el.avgParam || {
+            avg_vent_value: 0,
+            max_vent_value: 0,
+            min_vent_value: 0,
+          };
+          chartTfList.push({
+            label: el.strinstallpos,
+            time: new Date(),
+            data: [avgParam.avg_m3_value, avgParam.max_m3_value, avgParam.min_m3_value, el.readData.m3],
+          });
         });
       }
+      cardListTf.value = cardTfList;
+      chartListTf.value = chartTfList;
     }
   }
   onMounted(() => {
     getMenuList();
-    getWindDeviceList();
   });
   onUnmounted(() => {
     if (timer) {

+ 1 - 1
src/views/vent/monitorManager/chamberMonitor/chamber.threejs.ts

@@ -64,7 +64,7 @@ export const setModelType = (type) => {
 export const mountedThree = () => {
   return new Promise(async (resolve) => {
     model = new UseThree('#chamber3D');
-    model.setEnvMap('test1');
+    model.setEnvMap('test1.hdr');
     model.renderer.toneMappingExposure = 1.0;
 
     chamberBaseObj = new ChamberBase(model);

+ 10 - 10
src/views/vent/monitorManager/comment/gaspatrolTable.vue

@@ -87,7 +87,7 @@
   ]);
   let Columns = ref<any[]>(gaspatrolColumnsOne);
   let gaspatrolTableData = ref<any[]>([]);
-  let $emit = defineEmits(['addressInput', 'userInput', 'insTypeChange', 'classChange','getSearch']);
+  let $emit = defineEmits(['addressInput', 'userInput', 'insTypeChange', 'classChange', 'getSearch']);
   //巡检类型选项切换
   let insTypeChange = (val) => {
     searchData.insType = val;
@@ -114,16 +114,16 @@
     $emit('userInput', searchData.userName);
   };
   //查询
-  let getSearch=()=>{
-    $emit('getSearch',);
-  }
+  let getSearch = () => {
+    $emit('getSearch');
+  };
   //重置
-  let getReset=()=>{
-    searchData.address=''
-    searchData.class=''
-    searchData.insType=''
-    searchData.userName=''
-  }
+  let getReset = () => {
+    searchData.address = '';
+    searchData.class = '';
+    searchData.insType = '';
+    searchData.userName = '';
+  };
   watch(
     () => props.tableData,
     (newV, oldV) => {

+ 1 - 1
src/views/vent/monitorManager/compressor/nitrogen.threejs.ts

@@ -130,7 +130,7 @@ export const setModelType = (type, nitrogenNum?) => {
 export const mountedThree = () => {
   return new Promise(async (resolve) => {
     model = new UseThree('#nitrogen3D', '#nitrogenCss3D');
-    model.setEnvMap('test1');
+    model.setEnvMap('test1.hdr');
     model.renderer.toneMappingExposure = 1.0;
     model.canvasContainer?.addEventListener('mousedown', mouseEvent.bind(null));
 

+ 1 - 1
src/views/vent/monitorManager/dedustMonitor/dedust.threejs.ts

@@ -76,7 +76,7 @@ export const setModelType = (type) => {
 export const mountedThree = () => {
   return new Promise(async (resolve) => {
     model = new UseThree('#tunFace3D', '#tunFace3DCSS');
-    model.setEnvMap('test1');
+    model.setEnvMap('test1.hdr');
     /** @ts-ignore-next-line */
     model.renderer.toneMappingExposure = 1.0;
     // model?.camera?.position.set(100, 0, 1000);

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

@@ -13,8 +13,8 @@ enum Api {
   getHistoryData = '/monitor/history/getHistoryData',
   safetyDeviceList = '/monitor/codeDict',
   exportXlsUrl = '/monitor/exportXls',
-  queryNowGasInsInfo='/safety/gasDayReport/queryNowGasInsInfo',//查询当前各班瓦斯巡检信息
-   queryNowGasSta='/safety/gasDayReport/queryNowGasSta'
+  queryNowGasInsInfo = '/safety/gasDayReport/queryNowGasInsInfo', //查询当前各班瓦斯巡检信息
+  queryNowGasSta = '/safety/gasDayReport/queryNowGasSta',
 }
 /**
  * 列表接口

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

@@ -512,17 +512,21 @@ export const haveHandlerArr = [
   'window',
   'gate',
   'fanlocal',
-  'fanmain',
+  // 'fanmain',
   'pump',
   'obfurage',
   'nitrogen',
   'pulping',
   'spray',
   'dustdev',
+  'gate_linkdlfm',
 
   // 'firemon',
 ]; // table无操作
-export const noWarningArr = ['location', 'vehicle', 'cheliang', 'majorpath']; // 无预警详情的
+export const noWarningArr = ['location', 'vehicle', 'cheliang', 'majorpath', 'gasDayReport', 'gate_linkdlfm']; // 无预警详情的
 export const haveSysDetailArr = ['forcFan', 'pulping']; //有场景详情的
 // export const haveSysDetailArr = ['']; //有场景详情的
-export const noHistoryArr = () => (History_Type['type'] == 'remote' ? ['surface_history', 'majorpath'] : ['majorpath']);
+export const noHistoryArr = () =>
+  History_Type['type'] == 'remote'
+    ? ['surface_history', 'majorpath', 'gasDayReport', 'gate_linkdlfm']
+    : ['majorpath', 'gasDayReport', 'gate_linkdlfm'];

+ 24 - 9
src/views/vent/monitorManager/deviceMonitor/components/device/index.vue

@@ -78,6 +78,17 @@
             {{ treeNodeTitle }}详情
           </div>
         </div>
+        <!-- 进入瓦斯人工巡检历史详情 -->
+         <div v-if="deviceType == 'gasDayReport'">
+          <div class="device-button-group">
+            <div v-if="deviceType.startsWith('gasDayReport')" class="enter-detail"
+              @click.stop="goGasDayReport()">
+              <send-outlined />
+              瓦斯人工巡检历史详情
+            </div>
+          </div>
+        </div>
+        
         <div v-if="deviceType == 'gaspatrol'">
           <div class="device-button-group">
             <div class="enter-detail" @click="exportXls()">
@@ -107,7 +118,7 @@
           </div>
         </div>
         <a-tabs class="tabs-box" v-model:activeKey="activeKey" @change="tabChange" id="tabsBox">
-          <a-tab-pane key="1" tab="实时监测">
+          <a-tab-pane key="1" :tab="deviceType.startsWith('gasDayReport') ? '当日巡检监测':'实时监测'">
             <template
               v-if="(deviceType.startsWith('fanlocal') || deviceType.startsWith('fanmain')) && activeKey == '1'">
               <GroupMonitorTable ref="MonitorDataTable" :dataSource="dataSource" :columnsType="`${deviceType}_monitor`"
@@ -203,8 +214,8 @@
                 </template>
               </MonitorTable>
             </template>
-            <!-- 瓦斯巡检 -->
-            <template v-else-if="deviceType.startsWith('gaspatrol') && activeKey == '1'">
+            <!-- 瓦斯人工巡检 -->
+            <template v-else-if="deviceType.startsWith('gasDayReport') && activeKey == '1'">
               <gaspatrolTable :addressData="addressData" :personData="personData" :instypeData="instypeData"
                 :classData="classData" :tableData="gaspatrolData" @addressInput="addressInput" @userInput="userInput"
                 @insTypeChange="insTypeChange" @classChange="classChange" @getSearch="getSearch"></gaspatrolTable>
@@ -522,11 +533,11 @@ const onSelect: TreeProps['onSelect'] = (keys, e) => {
     if (deviceType.value != e.node.type) deviceType.value = e.node.type;
     go(`/micro-vent-3dModal/dashboard/analysis?type=tunMonitor&deviceType=${deviceType.value}&deviceid=`);
   }
-  // clearTimeout(timer);
-  // timer = undefined;
-  // if (startMonitorTimer) {
-  //   clearTimeout(startMonitorTimer);
-  // }
+  clearTimeout(timer);
+  timer = undefined;
+  if (startMonitorTimer) {
+    clearTimeout(startMonitorTimer);
+  }
   dataSource.value = [];
   if (!startMonitorTimer) {
     startMonitorTimer = setTimeout(() => {
@@ -598,7 +609,7 @@ function getMonitor(flag?) {
     if (Object.prototype.toString.call(timer) === '[object Null]') {
       timer = setTimeout(
         async () => {
-          if (!deviceType.value.startsWith('gaspatrol')) {
+          if (!deviceType.value.startsWith('gasDayReport')) {
             await getDataSource();
           } else {
             await queryNowGasInsInfoList();
@@ -939,6 +950,10 @@ function goDetail(record?) {
     }
   }
 }
+function goGasDayReport() {
+  const newPage = router.resolve({ path: '/gas/gas-report/home' });
+  window.open(newPage.href, '_blank');
+}
 
 function exportXls() {
   handleExportXls('瓦斯巡检记录', getExportUrl, { devicetype: deviceType.value });

+ 10 - 6
src/views/vent/monitorManager/deviceMonitor/staticSheets/fireSheet.vue

@@ -38,11 +38,11 @@
           <tr height="30">
             <td colspan="4" class="et42">12上煤</td>
             <td colspan="4" rowspan="4" class="et22">I类易自燃</td>
-            <td colspan="6" class="et42">53</td>
+            <td colspan="6" class="et42">37</td>
             <td colspan="4" rowspan="2" class="et22">12上煤</td>
-            <td colspan="6" rowspan="2" class="et22"><69</td>
-            <td colspan="6" rowspan="2" class="et42">69-188</td>
-            <td colspan="6" rowspan="2" class="et42">>188</td>
+            <td colspan="6" rowspan="2" class="et22"><40.2</td>
+            <td colspan="6" rowspan="2" class="et42">40.2-190.6</td>
+            <td colspan="6" rowspan="2" class="et42">>190.6</td>
             <td colspan="4" class="et42">型号</td>
             <td colspan="11" class="et22">可分析气体</td>
           </tr>
@@ -123,10 +123,14 @@
           </tr>
           <tr height="30">
             <td colspan="51" rowspan="4" class="et5">
-              1.JSG-8:J-监测、SG-束管、可分析8种气体。DM-1000、DM-1500:D-制氮装置、M-膜分离、1000m³/h、1500m³/h。
+              1SG8J监测SG,可分析和体DM-100DM1500D制氨装置M腹分育100m/h.1500m/h.2井下现有束普监测分品至,对个口采面密区和个相3的已采来区共计2个监测点2小时监
+              测来区所斯品大为2煤 盘区边界密两内64%,。37.120T
+              Z自动化J浆120注浆量、下黄土。4三相泡法发泡剂型号SKF=Ⅱ,添加L例05%-10%,发泡倍数:30,泡沫定时间285h,凝固点
+              ≤-10℃;三相泡沫专用高温渣油泵型号ZYB-200,流量12m³h,压力0.36MPa,吸程5m,轴速1400r/min,功率4kW.
+              <!-- 1.JSG-8:J-监测、SG-束管、可分析8种气体。DM-1000、DM-1500:D-制氮装置、M-膜分离、1000m³/h、1500m³/h。
               2.井下现有束管监测分站3套,对3个回采面采空区和3个相邻的已采采空区共计12个监测点24小时监测。采空区瓦斯最大为22煤一盘区边界巷密闭内36.4%。
               3.ZJ-120T:Z-自动化、J-注浆、120-注浆量、T-黄土。
-              4.三相泡沫发泡剂型号:SKF-Ⅱ,添加比例:0.5%-1.0%,发泡倍数≥30,泡沫稳定时间:≥8.5h,凝固点≤-10℃;三相泡沫专用高温渣油泵型号ZYB-200,流量12m³/h,压力0.36MPa,吸程5m,轴速1400r/min,功率4kW。
+              4.三相泡沫发泡剂型号:SKF-Ⅱ,添加比例:0.5%-1.0%,发泡倍数≥30,泡沫稳定时间:≥8.5h,凝固点≤-10℃;三相泡沫专用高温渣油泵型号ZYB-200,流量12m³/h,压力0.36MPa,吸程5m,轴速1400r/min,功率4kW。 -->
             </td>
           </tr>
           <tr height="30"> </tr>

+ 39 - 32
src/views/vent/monitorManager/deviceMonitor/staticSheets/ventilateSheet.vue

@@ -15,8 +15,8 @@
             <td colspan="10" class="et3 bg1">地点</td>
             <td colspan="11" class="et3 bg1">型号</td>
             <td colspan="8" class="et3 bg1">电机功率</td>
-            <td colspan="7" class="et3 bg1">最大风量</td>
-            <td colspan="8" class="et3 bg1">实际风量</td>
+            <td colspan="7" class="et3 bg1">最大风量(m³/min)</td>
+            <td colspan="8" class="et3 bg1">实际风量(m³/min)</td>
             <td colspan="8" class="et3 bg1">负压(Pa)</td>
           </tr>
           <tr height="30">
@@ -24,16 +24,16 @@
             <td colspan="11" class="et22">FBCDZ-10-NO.36</td>
             <td colspan="8" class="et22">2×800</td>
             <td colspan="7" class="et22">23400</td>
-            <td colspan="8" class="et22">18857</td>
-            <td colspan="8" class="et22">2280</td>
+            <td colspan="8" class="et22">19012</td>
+            <td colspan="8" class="et22">1360</td>
           </tr>
           <tr height="30">
             <td colspan="10" class="et22">松定霍洛</td>
             <td colspan="11" class="et22">FBCDZ-10-NO.34</td>
             <td colspan="8" class="et22">2×560</td>
             <td colspan="7" class="et22">18000</td>
-            <td colspan="8" class="et22">12867</td>
-            <td colspan="8" class="et22">1500</td>
+            <td colspan="8" class="et22">16177</td>
+            <td colspan="8" class="et22">1250</td>
           </tr>
           <tr height="30">
             <td colspan="52" rowspan="2" class="et3"
@@ -63,47 +63,54 @@
           </tr>
           <tr height="30">
             <td colspan="10" class="et22">辅运平硐</td>
-            <td colspan="6" class="et22">9542</td>
-            <td colspan="7" rowspan="3" class="et22">明安木独 回风立井</td>
+            <td colspan="6" class="et22">10105</td>
+            <td colspan="7" rowspan="4" class="et22">明安木独 回风立井</td>
             <td colspan="3" rowspan="2" class>22煤</td>
-            <td colspan="6" rowspan="2" class="et22">7695</td>
-            <td colspan="9" class="et22">12201综采面</td>
-            <td colspan="11" class="et21">1036</td>
+            <td colspan="6" rowspan="2" class="et22">7865</td>
+            <td colspan="9" class="et22">22210综采面</td>
+            <td colspan="11" class="et21">1186</td>
           </tr>
           <tr height="30">
             <td colspan="10" class="et22">主斜井</td>
-            <td colspan="6" class="et22">3939</td>
-            <td colspan="9" class="et22">42204综放面</td>
-            <td colspan="11" class="et21">1750</td>
+            <td colspan="6" class="et22">2998</td>
+            <td colspan="9" class="et22">42上206综放面</td>
+            <td colspan="11" class="et21">2085</td>
           </tr>
           <tr height="30">
             <td colspan="10" class="et22">工业广场进风斜井</td>
-            <td colspan="6" class="et22">339</td>
-            <td colspan="3" class="et22">12煤</td>
-            <td colspan="6" class="et22">11162</td>
-            <td colspan="9" class="et22">12上302综放面</td>
-            <td colspan="11" class="et21">1788</td>
+            <td colspan="6" class="et22">368</td>
+            <td colspan="3" rowspan="2" class="et22">12煤</td>
+            <td colspan="6" rowspan="2" class="et22">11147</td>
+            <td colspan="9" rowspan="2" class="et22">12上302综放面</td>
+            <td colspan="11" rowspan="2" class="et21">1283</td>
+          </tr>
+          <tr height="30">
+            <td colspan="10" class="et22">西南区副斜井</td>
+            <td colspan="6" class="et22">10105 </td>
+            <!-- <td colspan="9" class="et22">42204综放面</td>
+            <td colspan="11" class="et21">1750</td> -->
           </tr>
           <tr height="30">
             <td colspan="7" rowspan="2" class="et22">松定霍洛 进风立井</td>
             <td colspan="3" class="et22">22煤</td>
-            <td colspan="6" class="et22">7132</td>
+            <td colspan="6" class="et22">1492</td>
             <td colspan="7" rowspan="2" class="et22">松定霍洛 回风立井</td>
             <td colspan="3" class="et22">22煤</td>
-            <td colspan="6" class="et22">2098</td>
-            <td colspan="20" rowspan="3" class>等积孔14.2;<1困难、1-2中等、>2容易。</td>
+            <td colspan="6" class="et22">2420</td>
+            <td colspan="20" rowspan="3" class>等积孔19.29;<1困难、1-2中等、>2容易。</td>
           </tr>
+
           <tr height="30">
             <td colspan="3" class="et22">42煤</td>
-            <td colspan="6" class="et22">9831</td>
+            <td colspan="6" class="et22">9734</td>
             <td colspan="3" class="et22">42煤</td>
-            <td colspan="6" class="et22">10769</td>
+            <td colspan="6" class="et22">13757</td>
           </tr>
           <tr height="30">
             <td colspan="10" class="et22">总计</td>
-            <td colspan="6" class="et22">30783</td>
+            <td colspan="6" class="et22">34802</td>
             <td colspan="10" class="et22">总计</td>
-            <td colspan="6" class="et22">31724</td>
+            <td colspan="6" class="et22">35189</td>
           </tr>
           <tr height="30">
             <td colspan="13" class="et21 bg1">通风巷道米数</td>
@@ -118,13 +125,13 @@
             <td colspan="8" class="et22">12上煤</td>
             <td colspan="5" class="et22">45260</td>
             <td colspan="6" class="et21">检测时间</td>
-            <td colspan="8" class="et21">2021.11.19</td>
+            <td colspan="8" class="et21">2024.09.27</td>
           </tr>
           <tr height="30">
             <td colspan="8" class="et22">12煤</td>
             <td colspan="5" class="et22">15414</td>
             <td colspan="6" class="et21">检验周期</td>
-            <td colspan="8" class="et21">年</td>
+            <td colspan="8" class="et21">3年</td>
             <td colspan="16" class="et22 bg1">风速测定</td>
             <td colspan="9" class="et22 bg1">主扇性能测定</td>
           </tr>
@@ -132,7 +139,7 @@
             <td colspan="8" class="et22">22煤三盘区</td>
             <td colspan="5" class="et22">14477</td>
             <td colspan="6" class="et21">矿总风阻</td>
-            <td colspan="8" class="et21">0.015Ns2/m8</td>
+            <td colspan="8" class="et21">0.0042Ns2/m8</td>
             <td colspan="4" class="et22">风表</td>
             <td colspan="6" class="et22">测量范围</td>
             <td colspan="6" class="et22">启动风速</td>
@@ -141,9 +148,9 @@
           <tr height="31">
             <td colspan="8" class="et22">22下煤二盘区</td>
             <td colspan="5" class="et21">1374</td>
-            <td colspan="3" rowspan="3" class="et22">自然 风压</td>
+            <td colspan="3" rowspan="3" class="et22">自然 风压(Pa)</td>
             <td colspan="6" rowspan="2" class="et22">明安木独 回风立井</td>
-            <td colspan="5" rowspan="2" class="et21">141.51</td>
+            <td colspan="5" rowspan="2" class="et21">43.14</td>
             <td colspan="4" rowspan="2" class="et21">低</td>
             <td colspan="6" rowspan="2" class="et21">0.3-5m/s</td>
             <td colspan="6" rowspan="2" class="et21">≤0.2m/s</td>
@@ -157,7 +164,7 @@
             <td colspan="8" class="et22">22煤一盘区</td>
             <td colspan="5" class="et22">18914</td>
             <td colspan="6" class="et22">松定霍洛 回风立井</td>
-            <td colspan="5" class="et21">157.61</td>
+            <td colspan="5" class="et21">123.02</td>
             <td colspan="4" class="et22">中</td>
             <td colspan="6" class="et22">0.5-10m/s</td>
             <td colspan="6" class="et22">≤0.4m/s</td>

+ 1 - 1
src/views/vent/monitorManager/fanLocalMonitor/fanLocal.three.ts

@@ -617,7 +617,7 @@ export const mountedThree = (playerVal1) => {
   return new Promise((resolve) => {
     // model = VENT_PARAM['simulatedPassword'] ? new UseThree('#fanLocal3D', '#fanLocal3DCSS') : new UseThree('#fanLocal3D');
     model = new UseThree('#fanLocal3D', '#fanLocal3DCSS');
-    model.setEnvMap('test1');
+    model.setEnvMap('test1.hdr');
     model.renderer.toneMappingExposure = 1.0;
     if (model.renderer) {
       model.renderer.sortObjects = true;

+ 1 - 1
src/views/vent/monitorManager/fanLocalMonitor1/fanLocal.three.ts

@@ -606,7 +606,7 @@ export const mountedThree = (playerVal1) => {
   return new Promise((resolve) => {
     // model = VENT_PARAM['simulatedPassword'] ? new UseThree('#fanLocal3D', '#fanLocal3DCSS') : new UseThree('#fanLocal3D');
     model = new UseThree('#fanLocal3D', '#fanLocal3DCSS');
-    model.setEnvMap('test1');
+    model.setEnvMap('test1.hdr');
     model.renderer.toneMappingExposure = 1.0;
     if (model.renderer) {
       model.renderer.sortObjects = true;

+ 1 - 1
src/views/vent/monitorManager/fiberMonitor/fiber.threejs.ts

@@ -127,7 +127,7 @@ export const setModelType = (type) => {
 export const mountedThree = () => {
   return new Promise(async (resolve) => {
     model = new UseThree('#fiberBox', '#fiber3DCSS');
-    model.setEnvMap('test1');
+    model.setEnvMap('test1.hdr');
 
     model?.camera?.position.set(100, 0, 1000);
 

+ 1 - 1
src/views/vent/monitorManager/fireDoorMonitor/detail.vue

@@ -14,7 +14,7 @@
 
   onMounted(() => {
     model = new UseThree('#fengmen3D');
-    // model.setEnvMap('test');
+    // model.setEnvMap('test.hdr');
     //   model.setCustomMaterial = setCustomMaterial
     loading.value = true;
     model.setGLTFModel('9f-processed').then(() => {

+ 1 - 1
src/views/vent/monitorManager/fireDoorMonitor/fireDoor.threejs.ts

@@ -133,7 +133,7 @@ const setControls = () => {
 export const mountedThree = () => {
   return new Promise(async (resolve) => {
     model = new UseThree('#damper3D', '', '#deviceDetail');
-    model.setEnvMap('test1');
+    model.setEnvMap('test1.hdr');
     model.renderer.toneMappingExposure = 1.0;
     model.camera.position.set(100, 0, 1000);
     fireDoor = new FireDoor(model);

+ 35 - 59
src/views/vent/monitorManager/gasPumpMonitor/components/gasPumpHome.vue

@@ -150,17 +150,29 @@
               <div>
                 <div class="control-item">
                   <div class="control-title">控制模式:</div>
-                  <a-radio-group v-model:value="selectData['ykjdqh']" @change="changeCtr">
-                    <a-radio :value="'0'">就地</a-radio>
-                    <a-radio :value="'1'">远程</a-radio>
-                  </a-radio-group>
+                  <div class="control-container">
+                    <a-radio-group v-model:value="selectData['ykjdqh']">
+                      <a-radio :value="'0'">就地</a-radio>
+                      <a-radio :value="'1'">远程</a-radio>
+                    </a-radio-group>
+                    <div class="btn-box">
+                      <div class="btn btn1" @click="changeCtr(0)">就地</div>
+                      <div class="btn btn1" @click="changeCtr(1)">远程</div>
+                    </div>
+                  </div>
                 </div>
                 <div class="control-item">
                   <div class="control-title">检修模式:</div>
-                  <a-radio-group v-model:value="selectData['jxmsqh']" @change="changeMode">
-                    <a-radio :value="'0'">关闭</a-radio>
-                    <a-radio :value="'1'">开启</a-radio>
-                  </a-radio-group>
+                  <div class="control-container">
+                    <a-radio-group v-model:value="selectData['jxmsqh']">
+                      <a-radio :value="'0'">关闭</a-radio>
+                      <a-radio :value="'1'">开启</a-radio>
+                    </a-radio-group>
+                    <div class="btn-box">
+                      <div class="btn btn1" @click="changeMode(0)">关闭</div>
+                      <div class="btn btn1" @click="changeMode(1)">开启</div>
+                    </div>
+                  </div>
                 </div>
               </div>
             </div>
@@ -331,10 +343,10 @@
   }
 
   function changeCtr(e) {
-    if (e.target.value == 1) {
+    if (e == 1) {
       // 就地
       handlerType.value = 'jxmsqh';
-    } else if (e.target.value == 2) {
+    } else if (e == 2) {
       // 远程
       handlerType.value = 'jxmsqh';
     }
@@ -342,10 +354,10 @@
   }
 
   function changeMode(e) {
-    if (e.target.value == 1) {
+    if (e == 1) {
       // 检修开
       handlerType.value = 'ykjdqh';
-    } else if (e.target.value == 2) {
+    } else if (e == 2) {
       // 检修关
       handlerType.value = 'ykjdqh';
     }
@@ -532,53 +544,7 @@
       justify-content: end;
     }
   }
-  .control-group {
-    display: flex;
-    // justify-content: space-around;
-    flex-wrap: wrap;
-    margin: 4px 0;
-    .control-item {
-      display: flex;
-      flex-direction: column;
-      justify-content: center;
-      align-items: center;
-      padding: 1px 10px;
-      .control-item-title {
-        color: #a6dce9;
-        position: relative;
-      }
-      .control-item-state {
-        width: 86px;
-        height: 31px;
-        background: url('/@/assets/images/vent/control-switch-bg1.png');
-        display: flex;
-        justify-content: center;
-        align-items: center;
-        color: #fff;
-      }
 
-      .button-box {
-        position: relative;
-        padding: 5px;
-        border: 1px transparent solid;
-        background-clip: border-box;
-        border-radius: 5px;
-        margin-left: 8px;
-      }
-
-      .a-button {
-        pointer-events: auto;
-      }
-
-      &::v-deep .a-button--mini {
-        padding: 6px 10px;
-      }
-
-      &::v-deep .a-button--mini.is-round {
-        padding: 6px 10px;
-      }
-    }
-  }
   .input-box {
     width: calc(100%);
     display: flex;
@@ -614,9 +580,19 @@
       margin-bottom: 8px;
       display: flex;
       .control-title {
-        width: 150px;
+        width: 80px;
         color: var(--vent-font-action-link);
       }
+      .control-container {
+        display: flex;
+      }
+    }
+  }
+  .btn-box {
+    display: flex;
+    .btn {
+      padding: 0 8px !important;
+      margin: 0 2px;
     }
   }
   .state-header {

+ 1 - 1
src/views/vent/monitorManager/gasPumpMonitor/gasPump.threejs.ts

@@ -95,7 +95,7 @@ export const setModelType = (type) => {
 export const mountedThree = () => {
   return new Promise(async (resolve) => {
     model = new UseThree('#gasPump3D', '#gas3DCSS');
-    model.setEnvMap('test2');
+    model.setEnvMap('test2.hdr');
     model.renderer.toneMappingExposure = 1.0;
     // model.renderer.outputEncoding = THREE.sRGBEncoding;
     gasPumpBaseObj = new gasPumpBase(model);

+ 1 - 1
src/views/vent/monitorManager/gateMonitor/detail.vue

@@ -14,7 +14,7 @@
 
   onMounted(() => {
     model = new UseThree('#fengmen3D');
-    // model.setEnvMap('test');
+    // model.setEnvMap('test.hdr');
     //   model.setCustomMaterial = setCustomMaterial
     loading.value = true;
     model.setGLTFModel('9f-processed').then(() => {

+ 1 - 1
src/views/vent/monitorManager/gateMonitor/gate.threejs.ts

@@ -428,7 +428,7 @@ export const mountedThree = (playerDom) => {
 
   return new Promise(async (resolve) => {
     model = new UseThree('#damper3D', '', '#deviceDetail');
-    model.setEnvMap('test1');
+    model.setEnvMap('test1.hdr');
     model.renderer.toneMappingExposure = 0.9;
     model.camera.position.set(100, 0, 1000);
     switch (sysOrgCode) {

+ 3 - 4
src/views/vent/monitorManager/groutMonitor/components/groutHomeJj.vue

@@ -97,7 +97,8 @@
       if (deviceId) {
         await getCamera(deviceId, playerRef.value);
       }
-    }
+    },
+    { immediate: true }
   );
 
   onMounted(() => {
@@ -107,9 +108,7 @@
       await setModelType('bertaiBase');
       loading.value = false;
       timer = null;
-      getMonitor(true)?.then(async () => {
-        if (props.deviceId) await getCamera(props.deviceId, playerRef.value, 'pulping');
-      });
+      getMonitor(true);
     });
   });
   onUnmounted(() => {

+ 1 - 1
src/views/vent/monitorManager/groutMonitor/grout.data.ts

@@ -657,7 +657,7 @@ export function getMonitorComponent() {
       groutHome = defineAsyncComponent(() => import('./components/groutHomelt.vue'));
       return groutHome;
     default:
-      groutHome = defineAsyncComponent(() => import('./components/groutHomeHjt.vue'));
+      groutHome = defineAsyncComponent(() => import('./components/groutHomeJj.vue'));
       // groutHome = defineAsyncComponent(() => import('./components/groutHomelt.vue'));
       return groutHome;
   }

+ 1 - 1
src/views/vent/monitorManager/groutMonitor/grout.threejs.ts

@@ -94,7 +94,7 @@ export const setModelType = (type) => {
 export const mountedThree = () => {
   return new Promise(async (resolve) => {
     model = new UseThree('#grout3D');
-    model.setEnvMap('test1');
+    model.setEnvMap('test1.hdr');
     model.renderer.toneMappingExposure = 1.0;
     model?.camera?.position.set(100, 0, 600);
     groutBaseObj = new ChamberBase(model);

+ 8 - 9
src/views/vent/monitorManager/mainFanMonitor/components/conditionAssistance.vue

@@ -226,7 +226,7 @@
       const element: AssistanceItemType = assistanceData[key];
       const yData: number[] = computeItem(element);
       const series = {
-        name: `${element['Hz']}°`,
+        name: `${element['Hz']}${showFre.value ? 'Hz' : '°'}`,
         type: 'line',
         smooth: true,
         showSymbol: false,
@@ -310,7 +310,7 @@
         if (yDataList[i]['z']) yDataList[i]['z'] = 1;
       }
 
-      if (resultObj.value && `${resultObj.value.Hz}°` == yDataList[i]['name']) {
+      if (resultObj.value && `${resultObj.value.Hz}${showFre.value ? 'Hz' : '°'}` == yDataList[i]['name']) {
         minIndex = i;
       }
     }
@@ -505,12 +505,6 @@
     }
     if (!columns.value || columns.value.length == 0) {
       columns.value = fanInfo;
-    } else {
-      const flag = columns.value.findIndex((item) => item['dataIndex'] && (item['dataIndex'] as string) === 'angleAdjustableRange_mainFanInfo');
-      if (flag > -1) {
-        // 说明是角度了调节
-        showFre.value = false;
-      }
     }
   }
   watch(
@@ -523,8 +517,13 @@
   watch(
     () => props.selectData,
     async (selectData) => {
-      debugger;
       deviceData.value = selectData;
+      if (selectData['adjustmentMethod_mainFanInfo'] == 'angleadjust') {
+        // 说明是角度了调节
+        showFre.value = false;
+      } else {
+        showFre.value = true;
+      }
     }
   );
   onMounted(() => {});

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

@@ -360,7 +360,7 @@ export const setModelType = (type) => {
 export const mountedThree = (playerVal1) => {
   return new Promise(async (resolve) => {
     model = new UseThree('#main3D', '#main3DCSS');
-    model.setEnvMap('test1');
+    model.setEnvMap('test1.hdr');
     model.renderer.toneMappingExposure = 1.0;
     if (model.renderer) {
       model.renderer.sortObjects = true;

+ 1 - 1
src/views/vent/monitorManager/nitrogen/nitrogen.threejs.ts

@@ -124,7 +124,7 @@ export const mountedThree = (monitorDataGroupArr) => {
   // debugger;
   return new Promise(async (resolve) => {
     model = new UseThree('#compressor3D');
-    model.setEnvMap('test1');
+    model.setEnvMap('test1.hdr');
     model.renderer.toneMappingExposure = 1.0;
     model.camera?.layers.enable(0);
     model.canvasContainer?.addEventListener('mousedown', mouseEvent);

+ 1 - 1
src/views/vent/monitorManager/obfurage1Monitor/detail.vue

@@ -14,7 +14,7 @@
 
   onMounted(() => {
     model = new UseThree('#fengmen3D');
-    // model.setEnvMap('test');
+    // model.setEnvMap('test.hdr');
     //   model.setCustomMaterial = setCustomMaterial
     loading.value = true;
     model.setGLTFModel('9f-processed').then(() => {

+ 2 - 3
src/views/vent/monitorManager/obfurage1Monitor/gate.threejs.ts

@@ -106,7 +106,6 @@ export const setModelType = (type) => {
         );
       }, 300);
     } else if (fmType === 'fm2' && fm2 && fm2.group) {
-      
       fm2.clipActionArr.frontDoor.reset();
       fm2.clipActionArr.frontDoor.time = 0.5;
       fm2.clipActionArr.backDoor.reset();
@@ -145,7 +144,7 @@ export const initCameraCanvas = async (playerVal1?, playerVal2?) => {
   if (fmType === 'fm1' && fm1) {
     return await fm1.initCamera.call(fm1, playerVal1, playerVal2);
   } else if (fmType === 'fm2' && fm2) {
-    console.log('fm2-------',playerVal1);
+    console.log('fm2-------', playerVal1);
     return fm2.initCamera.call(fm2, playerVal1);
   }
 };
@@ -153,7 +152,7 @@ export const initCameraCanvas = async (playerVal1?, playerVal2?) => {
 export const mountedThree = () => {
   return new Promise(async (resolve) => {
     model = new UseThree('#damper3D', '', '#deviceDetail');
-    model.setEnvMap('test1');
+    model.setEnvMap('test1.hdr');
     model.renderer.toneMappingExposure = 1.0;
     model.camera.position.set(100, 0, 1000);
     // 单道、 双道

+ 1 - 1
src/views/vent/monitorManager/obfurageMonitor/obfurage.threejs.ts

@@ -72,7 +72,7 @@ export const setModelType = (type) => {
 export const mountedThree = () => {
   return new Promise(async (resolve) => {
     model = new UseThree('#obfurage3D');
-    model.setEnvMap('test1');
+    model.setEnvMap('test1.hdr');
     model.renderer.toneMappingExposure = 1.0;
 
     obfurageBaseObj = new ChamberBase(model);

+ 1 - 1
src/views/vent/monitorManager/tunFaceMonitor/tunFace.threejs.ts

@@ -77,7 +77,7 @@ export const setModelType = (type) => {
 export const mountedThree = () => {
   return new Promise(async (resolve) => {
     model = new UseThree('#tunFace3D', '#tunFace3DCSS');
-    model.setEnvMap('test1');
+    model.setEnvMap('test1.hdr');
     model.renderer.toneMappingExposure = 1.0;
     // model?.camera?.position.set(100, 0, 1000);
     workFaceObj = new WorkFace(model);

+ 39 - 7
src/views/vent/monitorManager/windowMonitor/dandaoFc.threejs.ts

@@ -30,22 +30,21 @@ class singleWindow {
   addLight = () => {
     if (!this.model) return;
 
-    const directionalLight = new THREE.DirectionalLight(0xffffff, 1);
-    directionalLight.position.set(-110, 150, 647);
+    const directionalLight = new THREE.DirectionalLight(0xfdffe0, 1);
+    directionalLight.position.set(-100, -50.0, 144.38);
     this.group?.add(directionalLight);
-    // directionalLight.target = group;
 
-    const pointLight2 = new THREE.PointLight(0xffffff, 1, 150);
-    pointLight2.position.set(-101, 34, 16);
+    const pointLight2 = new THREE.PointLight(0xffffff, 1.5, 150);
+    pointLight2.position.set(101, 34, 16);
     pointLight2.shadow.bias = 0.05;
     this.group.add(pointLight2);
 
-    const pointLight3 = new THREE.PointLight(0xffffff, 1, 150);
+    const pointLight3 = new THREE.PointLight(0xffffff, 1.5, 150);
     pointLight3.position.set(19, 25, -7);
     pointLight3.shadow.bias = 0.05;
     this.group.add(pointLight3);
 
-    const pointLight6 = new THREE.PointLight(0xffffff, 1, 300);
+    const pointLight6 = new THREE.PointLight(0xffffff, 1.5, 300);
     pointLight6.position.set(51, 51, 9);
     pointLight6.shadow.bias = 0.05;
     this.group.add(pointLight6);
@@ -326,13 +325,46 @@ class singleWindow {
       }
     }
   }
+  resetMaterial() {
+    const fcModal = this.group.getObjectByName('ddFc');
+    if (fcModal) {
+      const fengchuangbuxiugang = (fcModal.getObjectByName('FCshanye03') as THREE.Mesh)?.material; // 圈;
+      (fengchuangbuxiugang as THREE.MeshStandardMaterial).color.set(0xb3b3b3);
+      (fengchuangbuxiugang as THREE.MeshStandardMaterial).roughness = 0.36;
+      (fengchuangbuxiugang as THREE.MeshStandardMaterial).envMapIntensity = 0.92;
 
+      // const stainlessSteel_light = (fcModal.getObjectByName('Line12241') as THREE.Mesh)?.material; // 框;
+      // const fluorescent_green = (fcModal.getObjectByName('对象276') as THREE.Mesh)?.material; // fluorescent_green;
+      // const fluorescent_green1 = (fcModal.getObjectByName('Box770') as THREE.Mesh)?.material; // 23 - Default;
+      // const wire = (fcModal.getObjectByName('对象281') as THREE.Mesh)?.material; // wire_028149177;
+      // const net = (fcModal.getObjectByName('Plane9230') as THREE.Mesh)?.material; // wire_028149177;
+      // const stainlesssteel_blue = (fcModal.getObjectByName('Blades08') as THREE.Mesh)?.material; // wire_028149177;
+
+      // (stainlessSteel_light as THREE.MeshStandardMaterial).color.set(0x9e9e9e);
+      // (stainlessSteel_light as THREE.MeshStandardMaterial).roughness = 0.26;
+      // (stainlessSteel_light as THREE.MeshStandardMaterial).envMapIntensity = 0.92;
+
+      // (fluorescent_green as THREE.MeshStandardMaterial).color.set(0x00fff2);
+      // (fluorescent_green as THREE.MeshStandardMaterial).envMapIntensity = 1.5;
+      // //
+      // (fluorescent_green1 as THREE.MeshStandardMaterial).color.set(0x00fff2);
+      // (fluorescent_green1 as THREE.MeshStandardMaterial).envMapIntensity = 1.5;
+
+      // (wire as THREE.MeshStandardMaterial).color.set(0x38e4ff);
+      // (wire as THREE.MeshStandardMaterial).envMapIntensity = 2;
+
+      // (net as THREE.MeshStandardMaterial).color.set(0xcfcfcf);
+      // (stainlesssteel_blue as THREE.MeshStandardMaterial).color.set(0xababab);
+      // (stainlesssteel_blue as THREE.MeshStandardMaterial).roughness = 0.45;
+    }
+  }
   mountedThree(playerDom) {
     return new Promise((resolve) => {
       this.model.setGLTFModel('ddFc').then((gltf) => {
         const fcModal = gltf[0];
         fcModal.name = 'ddFc';
         this.group?.add(fcModal);
+        this.resetMaterial();
         this.setModalPosition();
         this.initAnimation();
         this.addLight();

+ 1 - 1
src/views/vent/monitorManager/windowMonitor/window.api.ts

@@ -2,7 +2,7 @@ import { defHttp } from '/@/utils/http/axios';
 
 enum Api {
   list = '/monitor/device',
-  baseList = '/safety/ventanalyWindow/list',
+  baseList = '/safety/ventanalyDeviceInfo/list',
   cameraList = '/safety/ventanalyCamera/list',
   cameraAddrList = '/monitor/camera/info',
   windControl = '/device/updateWindowAutoAdjust',

+ 10 - 6
src/views/vent/monitorManager/windowMonitor/window.threejs.ts

@@ -238,15 +238,19 @@ export const mountedThree = (playerDom) => {
   return new Promise(async (resolve) => {
     model = new UseThree('#window3D');
     if (!model || !model.renderer || !model.camera) return;
-    model.setEnvMap('test1');
-
+    model.setEnvMap('royal_esplanade_1k.hdr');
+    model.renderer.toneMappingExposure = 1.8;
     model.camera.position.set(100, 0, 1000);
 
     singleWindowXkObj = new singleWindowXk(model);
-    if (sysOrgCode === 'sdmtjtbetmk') {
-      const singleWindowBet = await import('./dandaoFcBet.threejs');
-      if (singleWindowBet) singleWindowObj = new singleWindowBet.default(model);
-    } else if (sysOrgCode === 'sdmtjtyjlmk') {
+
+    // 这里是加载的蓝色有栅栏的模型
+    // if (sysOrgCode === 'sdmtjtbetmk') {
+    //   const singleWindowBet = await import('./dandaoFcBet.threejs');
+    //   if (singleWindowBet) singleWindowObj = new singleWindowBet.default(model);
+    // }
+
+    if (sysOrgCode === 'sdmtjtyjlmk') {
       // 单
       const singleWindowYjl = await import('./dandaoFcYjl.threejs');
       if (singleWindowYjl) singleWindowObj = new singleWindowYjl.default(model);

+ 1 - 1
src/views/vent/monitorManager/windowMonitorBet/window.threejs.ts

@@ -151,7 +151,7 @@ export const mountedThree = (playerDom) => {
   return new Promise(async (resolve) => {
     model = new UseThree('#window3D');
     if (!model || !model.renderer || !model.camera) return;
-    model.setEnvMap('test1');
+    model.setEnvMap('test1.hdr');
     model.camera.position.set(100, 0, 1000);
     singleWindowObj = new singleWindow(model);
     singleWindowObj.mountedThree(playerDom);

+ 1 - 1
src/views/vent/monitorManager/windrectMonitor/windrect.threejs.ts

@@ -349,7 +349,7 @@ export const setModelType = (type) => {
 export const mountedThree = (playerDom) => {
   return new Promise(async (resolve) => {
     model = new UseThree('#window3D');
-    model.setEnvMap('test1');
+    model.setEnvMap('test1.hdr');
     model.renderer.toneMappingExposure = 1.0;
 
     ddWindRectObj = new ddWindRect(model);

+ 1 - 1
src/views/vent/monitorManager/workFaceMonitor/wokeFace.threejs.ts

@@ -95,7 +95,7 @@ export const showOrHideGasPlane = (isShowPlane) => {
 export const mountedThree = () => {
   return new Promise(async (resolve) => {
     model = new UseThree('#workFace3D', '#workFace3DCSS');
-    model.setEnvMap('test1');
+    model.setEnvMap('test1.hdr');
     model.renderer.toneMappingExposure = 1.0;
     // model.renderer = 1;
     workFaceObj = new WorkFace(model);

+ 3 - 3
src/views/vent/performance/comment/NormalTable.vue

@@ -379,15 +379,15 @@
     switch (data) {
       case '1600000000000000001':
         //粉尘报表
-        router.push('/dust/dustMonitorTable');
+        router.push('/dust-sheet');
         break;
       case '1500000000000000002':
         //束管日报
-        router.push('/bundle/bundleTable');
+        router.push('/dubdle-monitor-table');
         break;
       case '1500000000000000003':
         //束管色谱仪
-        router.push('/bundleSpy/bundleSpyTable');
+        router.push('/sundle-spy');
         break;
       case '1400000000000000002':
         //瓦斯日报巡检分析

+ 457 - 430
src/views/vent/safetyList/index.vue

@@ -29,8 +29,7 @@
         </div>
         <div class="left-content">
           <div class="card-box" v-for="(item, index) in cardList" :key="index">
-            <div :class="item.isNewAccess ? 'card-itemN' : item.linkstatus ? 'card-itemL' : 'card-itemD'"
-              @click="cardClick(item, index)">
+            <div :class="item.isNewAccess ? 'card-itemN' : item.linkstatus ? 'card-itemL' : 'card-itemD'" @click="cardClick(item, index)">
               <div class="card-item-label">{{ item.strname }}</div>
             </div>
             <div :class="activeIndex % 4 == 3 ? 'card-modal1' : 'card-modal'" v-if="activeIndex == index && isShow">
@@ -44,36 +43,44 @@
       </div>
       <div class="right-box">
         <div class="right-title">详细信息:</div>
-        <a-table size="small" :scroll="{ y: 710 }" :columns="columns" :data-source="tableData" :pagination="pagination"
-          @change="pageChange">
+        <a-table size="small" :scroll="{ y: 710 }" :columns="columns" :data-source="tableData" :pagination="pagination" @change="pageChange">
           <template #action="{ record }">
-            <a-button v-if="!record.devInfoList" type="primary" :disabled="record.linkId != '0'" size="small"
-              @click="handlerunDeviceMonitor(record, '启动')">启动</a-button>
-            <a-button type="success" size="small" style="margin: 0px 10px"
-              @click="handlerunDeviceMonitor(record, '编辑')">编辑</a-button>
-            <a-button type="primary" size="small" @click="debugClick(record)">{{ record.debugTitle
-              }}</a-button>
+            <a-button
+              v-if="!record.devInfoList"
+              type="primary"
+              :disabled="record.linkId != '0'"
+              size="small"
+              @click="handlerunDeviceMonitor(record, '启动')"
+              >启动</a-button
+            >
+            <a-button type="success" size="small" style="margin: 0px 10px" @click="handlerunDeviceMonitor(record, '编辑')">编辑</a-button>
+            <a-button type="primary" size="small" @click="debugClick(record)">{{ record.debugTitle }}</a-button>
           </template>
           <template #bodyCell="{ column, text }">
             <template v-if="column.dataIndex === 'valueJc' && text">
               <div v-for="item in text.split(',')" :key="item">
                 <span
                   v-if="item.substring(item.indexOf(':') + 1) && !isNaN(parseFloat(item.substring(item.indexOf(':') + 1)))"
-                  style="display: inline-block;width: 45%;text-align: right; color:rgb(0, 242, 255);margin-right:5px">{{
-                    item.substring(0, item.indexOf(':') + 1) }}</span>
+                  style="display: inline-block; width: 45%; text-align: right; color: rgb(0, 242, 255); margin-right: 5px"
+                  >{{ item.substring(0, item.indexOf(':') + 1) }}</span
+                >
                 <span
                   v-if="item.substring(item.indexOf(':') + 1) && !isNaN(parseFloat(item.substring(item.indexOf(':') + 1)))"
-                  style="display: inline-block; width:50%;text-align: left; color:#fff">{{
-                    item.substring(item.indexOf(':') + 1) === '1' ? '正风' : item.substring(item.indexOf(':') + 1) === '2' ?
-                      '反风' : item.substring(item.indexOf(':') + 1) }} </span>
+                  style="display: inline-block; width: 50%; text-align: left; color: #fff"
+                  >{{
+                    item.substring(item.indexOf(':') + 1) === '1'
+                      ? '正风'
+                      : item.substring(item.indexOf(':') + 1) === '2'
+                      ? '反风'
+                      : item.substring(item.indexOf(':') + 1)
+                  }}
+                </span>
               </div>
             </template>
-
           </template>
         </a-table>
         <!-- 一键启动弹窗 -->
-        <a-modal style="top:300px;left:360px" v-model:visible="visibleModal" :width="450" title="一键启动" @ok="handleOk"
-          @cancel="handleCancel">
+        <a-modal style="top: 300px; left: 360px" v-model:visible="visibleModal" :width="450" title="一键启动" @ok="handleOk" @cancel="handleCancel">
           <a-form :model="startupData" labelAlign="right" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }">
             <a-form-item label="安装位置">
               <a-input v-model:value="startupData.address" placeholder="请输入" style="width: 260px" />
@@ -81,8 +88,14 @@
           </a-form>
         </a-modal>
         <!-- 编辑弹窗 -->
-        <a-modal style="top:300px;left:360px" v-model:visible="visibleModalEdit" :width="450" title="编辑信息"
-          @ok="handleOkEdit" @cancel="handleCancelEdit">
+        <a-modal
+          style="top: 300px; left: 360px"
+          v-model:visible="visibleModalEdit"
+          :width="450"
+          title="编辑信息"
+          @ok="handleOkEdit"
+          @cancel="handleCancelEdit"
+        >
           <a-form :model="startupDataEdit" labelAlign="right" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }">
             <a-form-item label="安装位置">
               <a-input v-model:value="startupDataEdit.address" placeholder="请输入" style="width: 260px" />
@@ -90,16 +103,21 @@
           </a-form>
         </a-modal>
         <!-- 调试弹窗 -->
-        <a-modal style="top:300px;left:360px" v-model:visible="visibleModalDebug" :width="450" title="调试信息"
-          @ok="handleOkDebug" @cancel="handleCancelDebug">
+        <a-modal
+          style="top: 300px; left: 360px"
+          v-model:visible="visibleModalDebug"
+          :width="450"
+          title="调试信息"
+          @ok="handleOkDebug"
+          @cancel="handleCancelDebug"
+        >
           <a-form :model="startupDataDebug" labelAlign="right" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }">
             <a-form-item label="风速">
               <a-input v-model:value="startupDataDebug.speed" placeholder="请输入" style="width: 260px" />
             </a-form-item>
             <a-form-item label="风向">
               <a-select v-model:value="startupDataDebug.direction" style="width: 260px">
-                <a-select-option v-for="file in derictList" :key="file.label" :value="file.value">{{ file.label
-                  }}</a-select-option>
+                <a-select-option v-for="file in derictList" :key="file.label" :value="file.value">{{ file.label }}</a-select-option>
               </a-select>
             </a-form-item>
           </a-form>
@@ -110,459 +128,468 @@
 </template>
 
 <script setup lang="ts">
-import { ref, nextTick, reactive, onMounted, onUnmounted } from 'vue';
-import customHeader from '/@/components/vent/customHeader.vue';
-import { subStationList, getList, getEdit, runDeviceMonitor, update158DevName, updateDebugStatus } from './safetyList.api';
-import { columns } from './safetyList.data'
-
-let visibleModalDebug = ref(false)
-let debugFlag = ref('')
-let debugStationId = ref('')
-let debugDeviceId = ref('')
-let startupDataDebug = reactive({
-  speed: '',
-  direction: '',
-})
-let derictList = reactive<any[]>([
-  { label: '正向', value: '1' },
-  { label: '反向', value: '0' }
-])
-let paramId = ref('')
-let isShow = ref(false)
-let stationName = ref('')
-let stationStatus = ref(null)
-let stationId = ref(null)
-let ljList = reactive<any[]>([
-  { value: 0, label: '断开' },
-  { value: 1, label: '连接' }
-])
-let activeIndex = ref(null)
-let cardList = ref<any[]>()
-let openNum = ref(0)
-let clsoeNum = ref(0)
-
-//分页参数配置
-let pagination = reactive({
-  current: 1, // 当前页码
-  pageSize: 20, // 每页显示条数
-  total: 0, // 总条目数,后端返回
-  // showTotal: (total, range) => `${range[0]}-${range[1]} 条,总共 ${total} 条`, // 分页右下角显示信息
-  showSizeChanger: true, // 是否可改变每页显示条数
-  pageSizeOptions: ['10', '20', '30', '40', '50', '100'], // 可选的每页显示条数
-});
-let tableData = ref<any[]>([])
-//一键启动弹窗
-let visibleModal = ref(false);
-let startupData = reactive({
-  address: '',
-})
-let devId = ref('')
-
-//编辑弹窗
-let visibleModalEdit = ref(false)
-let startupDataEdit = reactive({
-  address: ''
-})
-
-
-// // https获取监测数据
-// let timer: null | NodeJS.Timeout = null;
-// function getMonitor(flag = false) {
-//   timer = setTimeout(
-//     async () => {
-//       // await getSubStationList()
-//       await getStationList()
-//       if (timer) {
-//         timer = null;
-//       }
-//       getMonitor();
-//     },
-//     flag ? 0 : 5000
-//   );
-// }
-//获取分站信息
-async function getSubStationList() {
-  let res = await subStationList({ strtype: "modbus" })
-  if (res.length != 0) {
-    cardList.value = res
-    openNum.value = cardList.value?.filter(v => v.linkstatus == 1)['length']
-    clsoeNum.value = cardList.value?.filter(v => v.linkstatus == 0)['length']
-  } else {
-    cardList.value = []
+  import { ref, nextTick, reactive, onMounted, onUnmounted } from 'vue';
+  import customHeader from '/@/components/vent/customHeader.vue';
+  import { subStationList, getList, getEdit, runDeviceMonitor, update158DevName, updateDebugStatus } from './safetyList.api';
+  import { columns } from './safetyList.data';
+
+  let visibleModalDebug = ref(false);
+  let debugFlag = ref('');
+  let debugStationId = ref('');
+  let debugDeviceId = ref('');
+  let startupDataDebug = reactive({
+    speed: '',
+    direction: '',
+  });
+  let derictList = reactive<any[]>([
+    { label: '正向', value: '1' },
+    { label: '反向', value: '0' },
+  ]);
+  let paramId = ref('');
+  let isShow = ref(false);
+  let stationName = ref('');
+  let stationStatus = ref(null);
+  let stationId = ref(null);
+  let ljList = reactive<any[]>([
+    { value: 0, label: '断开' },
+    { value: 1, label: '连接' },
+  ]);
+  let activeIndex = ref(null);
+  let cardList = ref<any[]>();
+  let openNum = ref(0);
+  let clsoeNum = ref(0);
+
+  //分页参数配置
+  let pagination = reactive({
+    current: 1, // 当前页码
+    pageSize: 20, // 每页显示条数
+    total: 0, // 总条目数,后端返回
+    // showTotal: (total, range) => `${range[0]}-${range[1]} 条,总共 ${total} 条`, // 分页右下角显示信息
+    showSizeChanger: true, // 是否可改变每页显示条数
+    pageSizeOptions: ['10', '20', '30', '40', '50', '100'], // 可选的每页显示条数
+  });
+  let tableData = ref<any[]>([]);
+  //一键启动弹窗
+  let visibleModal = ref(false);
+  let startupData = reactive({
+    address: '',
+  });
+  let devId = ref('');
+
+  //编辑弹窗
+  let visibleModalEdit = ref(false);
+  let startupDataEdit = reactive({
+    address: '',
+  });
+
+  // // https获取监测数据
+  // let timer: null | NodeJS.Timeout = null;
+  // function getMonitor(flag = false) {
+  //   timer = setTimeout(
+  //     async () => {
+  //       // await getSubStationList()
+  //       await getStationList()
+  //       if (timer) {
+  //         timer = null;
+  //       }
+  //       getMonitor();
+  //     },
+  //     flag ? 0 : 5000
+  //   );
+  // }
+  //获取分站信息
+  async function getSubStationList() {
+    let res = await subStationList({ strtype: 'modbus' });
+    if (res.length != 0) {
+      cardList.value = res;
+      openNum.value = cardList.value?.filter((v) => v.linkstatus == 1)['length'];
+      clsoeNum.value = cardList.value?.filter((v) => v.linkstatus == 0)['length'];
+    } else {
+      cardList.value = [];
+    }
+  }
+  //站点选项点击
+  function cardClick(item, index) {
+    activeIndex.value = item.isNewAccess ? index : null;
+    stationName.value = item.strname;
+    stationStatus.value = item.linkstatus;
+    stationId.value = item.id;
+    isShow.value = true;
+    getStationList();
   }
-}
-//站点选项点击
-function cardClick(item, index) {
-  activeIndex.value = item.isNewAccess ? index : null
-  stationName.value = item.strname
-  stationStatus.value = item.linkstatus
-  stationId.value = item.id
-  isShow.value = true
-  getStationList()
-}
-//站点名称编辑
-function changeName(val) {
-  getChangeStation()
-}
-//站点连接状态修改
-function changeStatus(val) {
-  getChangeStation()
-}
-async function getChangeStation() {
-  let res = await getEdit({ id: stationId.value, strname: stationName.value, linkstatus: stationStatus.value })
-  getSubStationList()
-  isShow.value = false
-}
-//获取详细信息列表
-async function getStationList() {
-  let res = await getList({ subId: stationId.value, pageNo: pagination.current, pageSize: pagination.pageSize, })
-  res.forEach(el => {
-    el.key = el.id
-    el.gdmsC = el.gdms == '1' ? '直流供电' : el.gdms == '0' ? '交流供电' : ''
-    el.linkIdC = el.linkId || ''
-    el.linkstatusC = el.linkstatus ? '连接' : '断开'
-    el.debugTitle = '调试'
-    el.children = el.devInfoList
-    el.children.forEach(v => {
-      v.key = v.id
-      v.debugTitle = '调试'
-      v.linkstatusC = v.netStatus ? '连接' : '断开'
-      v.linkIdC = v.linkId == '0' ? '未启用' : v.linkId == '1' ? '启用' : v.linkId == '2' ? '设备异常' : ''
-      v.updateTime = v.time
-      v.gdmsC = v.gdms == '1' ? '直流供电' : v.gdms == '0' ? '交流供电' : ''
-      v.valueJc = `风向:${v.forward || ''},风量:${v.m3 || ''}m³/min,风速:${v.windSpeed || ''}m/s,气压:${v.pa || ''}Pa,压差:${v.difPress || ''}Pa,温度:${v.temperature || ''}℃,湿度:${v.humidity || ''}%,断面积:${v.area || ''}㎡`
-    })
-  })
-  tableData.value = res
-  pagination.total = res.total
-}
-//分页切换
-function pageChange(val) {
-  pagination.current = val.current;
-  pagination.pageSize = val.pageSize;
-  getStationList();
-}
-//启动新设备
-function handlerunDeviceMonitor(record, val) {
-  devId.value = record.id
-  switch (val) {
-    case '编辑':
-      visibleModalEdit.value = true
-      startupDataEdit.address = record.strinstallpos
-      paramId.value = record.devInfoList ? 'subId' : 'devId'
-      break;
-    case '启动':
-      visibleModal.value = true
-      startupData.address = record.strinstallpos
-      break;
+  //站点名称编辑
+  function changeName(val) {
+    getChangeStation();
   }
-}
-//分站,设备调试
-function debugClick(record) {
-  if (record.debugTitle == '调试') {
-    //正在调试中
-    startupDataDebug.speed = ''
-    startupDataDebug.direction = ''
-    visibleModalDebug.value = true
-    if (record.devInfoList) {
-      debugFlag.value = 'station'
-      debugStationId.value = record.id
-      tableData.value.forEach(el => {
-        el.debugTitle = '结束调试'
-        el.devInfoList.forEach(v => {
-          v.debugTitle = '结束调试'
-        })
-      })
+  //站点连接状态修改
+  function changeStatus(val) {
+    getChangeStation();
+  }
+  async function getChangeStation() {
+    let res = await getEdit({ id: stationId.value, strname: stationName.value, linkstatus: stationStatus.value });
+    getSubStationList();
+    isShow.value = false;
+  }
+  //获取详细信息列表
+  async function getStationList() {
+    let res = await getList({ subId: stationId.value, pageNo: pagination.current, pageSize: pagination.pageSize });
+    res.forEach((el) => {
+      el.key = el.id;
+      el.gdmsC = el.gdms == '1' ? '直流供电' : el.gdms == '0' ? '交流供电' : '';
+      el.linkIdC = el.linkId || '';
+      el.linkstatusC = el.linkstatus ? '连接' : '断开';
+      el.debugTitle = '调试';
+      el.children = el.devInfoList;
+      el.children.forEach((v) => {
+        v.key = v.id;
+        v.debugTitle = '调试';
+        v.linkstatusC = v.netStatus ? '连接' : '断开';
+        v.linkIdC = v.linkId == '0' ? '未启用' : v.linkId == '1' ? '启用' : v.linkId == '2' ? '设备异常' : '';
+        v.updateTime = v.time;
+        v.gdmsC = v.gdms == '1' ? '直流供电' : v.gdms == '0' ? '交流供电' : '';
+        v.valueJc = `风向:${v.forward || ''},风量:${v.m3 || ''}m³/min,风速:${v.windSpeed || ''}m/s,气压:${v.pa || ''}Pa,压差:${
+          v.difPress || ''
+        }Pa,温度:${v.temperature || ''}℃,湿度:${v.humidity || ''}%,断面积:${v.area || ''}㎡`;
+      });
+    });
+    tableData.value = res;
+    pagination.total = res.total;
+  }
+  //分页切换
+  function pageChange(val) {
+    pagination.current = val.current;
+    pagination.pageSize = val.pageSize;
+    getStationList();
+  }
+  //启动新设备
+  function handlerunDeviceMonitor(record, val) {
+    devId.value = record.id;
+    switch (val) {
+      case '编辑':
+        visibleModalEdit.value = true;
+        startupDataEdit.address = record.strinstallpos;
+        paramId.value = record.devInfoList ? 'subId' : 'devId';
+        break;
+      case '启动':
+        visibleModal.value = true;
+        startupData.address = record.strinstallpos;
+        break;
+    }
+  }
+  //分站,设备调试
+  function debugClick(record) {
+    if (record.debugTitle == '调试') {
+      //正在调试中
+      startupDataDebug.speed = '';
+      startupDataDebug.direction = '';
+      visibleModalDebug.value = true;
+      if (record.devInfoList) {
+        debugFlag.value = 'station';
+        debugStationId.value = record.id;
+        tableData.value.forEach((el) => {
+          el.debugTitle = '结束调试';
+          el.devInfoList.forEach((v) => {
+            v.debugTitle = '结束调试';
+          });
+        });
+      } else {
+        debugFlag.value = 'device';
+        debugDeviceId.value = record.id;
+        tableData.value.forEach((el) => {
+          el.devInfoList.forEach((v) => {
+            if (v.id == debugDeviceId.value) {
+              debugStationId.value = el.id;
+            }
+          });
+        });
+        record.debugTitle = '结束调试';
+      }
     } else {
-      debugFlag.value = 'device'
-      debugDeviceId.value = record.id
-      tableData.value.forEach(el => {
-        el.devInfoList.forEach(v => {
-          if (v.id == debugDeviceId.value) {
-            debugStationId.value = el.id
-          }
-        })
-      })
-      record.debugTitle = '结束调试'
+      if (record.devInfoList) {
+        debugFlag.value = 'station';
+        debugStationId.value = record.id;
+        tableData.value.forEach((el) => {
+          el.debugTitle = '调试';
+          el.devInfoList.forEach((v) => {
+            v.debugTitle = '调试';
+          });
+        });
+        stopDebug();
+      } else {
+        debugFlag.value = 'device';
+        debugDeviceId.value = record.id;
+        tableData.value.forEach((el) => {
+          el.devInfoList.forEach((v) => {
+            if (v.id == debugDeviceId.value) {
+              debugStationId.value = el.id;
+            }
+          });
+        });
+        record.debugTitle = '调试';
+        stopDebug();
+      }
     }
-  } else {
-    if (record.devInfoList) {
-      debugFlag.value = 'station'
-      debugStationId.value = record.id
-      tableData.value.forEach(el => {
-        el.debugTitle = '调试'
-        el.devInfoList.forEach(v => {
-          v.debugTitle = '调试'
-        })
-      })
-      stopDebug()
+  }
+  //调试确认
+  async function handleOkDebug() {
+    if (debugFlag.value == 'station') {
+      let res = await updateDebugStatus({
+        stationId: debugStationId.value,
+        speed: startupDataDebug.speed,
+        direction: startupDataDebug.direction,
+        debugFlag: '1',
+      });
+      visibleModalDebug.value = false;
+      getStationList();
     } else {
-      debugFlag.value = 'device'
-      debugDeviceId.value = record.id
-      tableData.value.forEach(el => {
-        el.devInfoList.forEach(v => {
-          if (v.id == debugDeviceId.value) {
-            debugStationId.value = el.id
-          }
-        })
-      })
-      record.debugTitle = '调试'
-      stopDebug()
+      let res = await updateDebugStatus({
+        stationId: debugStationId.value,
+        deviceId: debugDeviceId.value,
+        speed: startupDataDebug.speed,
+        direction: startupDataDebug.direction,
+        debugFlag: '1',
+      });
+      visibleModalDebug.value = false;
+      getStationList();
     }
   }
-
-}
-//调试确认
-async function handleOkDebug() {
-  if (debugFlag.value == 'station') {
-    let res = await updateDebugStatus({ stationId: debugStationId.value, speed: startupDataDebug.speed, direction: startupDataDebug.direction, debugFlag: '1' })
-    visibleModalDebug.value = false
-    getStationList()
-  } else {
-    let res = await updateDebugStatus({ stationId: debugStationId.value, deviceId: debugDeviceId.value, speed: startupDataDebug.speed, direction: startupDataDebug.direction, debugFlag: '1' })
-    visibleModalDebug.value = false
-    getStationList()
+  //调试取消
+  function handleCancelDebug() {
+    visibleModalDebug.value = false;
+    tableData.value.forEach((el) => {
+      el.debugTitle = '调试';
+      el.devInfoList.forEach((v) => {
+        v.debugTitle = '调试';
+      });
+    });
+    debugFlag.value = '';
+    debugStationId.value = '';
+    debugDeviceId.value = '';
   }
-}
-//调试取消
-function handleCancelDebug() {
-  visibleModalDebug.value = false
-  tableData.value.forEach(el => {
-    el.debugTitle = '调试'
-    el.devInfoList.forEach(v => {
-      v.debugTitle = '调试'
-    })
-  })
-  debugFlag.value = ''
-  debugStationId.value = ''
-  debugDeviceId.value = ''
-
-}
-//停止调试
-async function stopDebug() {
-  if (debugFlag.value == 'station') {
-    let res = await updateDebugStatus({ stationId: debugStationId.value, debugFlag: '0' })
-    getStationList()
-  } else {
-    let res = await updateDebugStatus({ stationId: debugStationId.value, deviceId: debugDeviceId.value, debugFlag: '0' })
-    getStationList()
+  //停止调试
+  async function stopDebug() {
+    if (debugFlag.value == 'station') {
+      let res = await updateDebugStatus({ stationId: debugStationId.value, debugFlag: '0' });
+      getStationList();
+    } else {
+      let res = await updateDebugStatus({ stationId: debugStationId.value, deviceId: debugDeviceId.value, debugFlag: '0' });
+      getStationList();
+    }
   }
-}
-async function handleOk() {
-  let res = await runDeviceMonitor({ devId: devId.value, devName: startupData.address })
-  visibleModal.value = false
-  getStationList();
-}
-function handleCancel() {
-  visibleModal.value = false
-  startupData.address = ''
-}
-//编辑
-async function handleOkEdit() {
-  if (paramId.value == 'subId') {
-    let res = await update158DevName({ subId: devId.value, devName: startupDataEdit.address })
-    console.log(res, '设备名称编辑---')
-    visibleModalEdit.value = false
-    getStationList();
-  } else {
-    let res = await update158DevName({ devId: devId.value, devName: startupDataEdit.address })
-    console.log(res, '设备名称编辑---')
-    visibleModalEdit.value = false
+  async function handleOk() {
+    let res = await runDeviceMonitor({ devId: devId.value, devName: startupData.address });
+    visibleModal.value = false;
     getStationList();
   }
-}
-//取消编辑
-function handleCancelEdit() {
-  visibleModalEdit.value = false
-  startupDataEdit.address = ''
-}
-
-onMounted(() => {
-  getSubStationList()
-  // getMonitor(true);
-  getStationList()
-})
-onUnmounted(() => {
-  if (timer) {
-    clearTimeout(timer);
-    timer = undefined;
+  function handleCancel() {
+    visibleModal.value = false;
+    startupData.address = '';
   }
-});
+  //编辑
+  async function handleOkEdit() {
+    if (paramId.value == 'subId') {
+      let res = await update158DevName({ subId: devId.value, devName: startupDataEdit.address });
+      console.log(res, '设备名称编辑---');
+      visibleModalEdit.value = false;
+      getStationList();
+    } else {
+      let res = await update158DevName({ devId: devId.value, devName: startupDataEdit.address });
+      console.log(res, '设备名称编辑---');
+      visibleModalEdit.value = false;
+      getStationList();
+    }
+  }
+  //取消编辑
+  function handleCancelEdit() {
+    visibleModalEdit.value = false;
+    startupDataEdit.address = '';
+  }
+
+  onMounted(() => {
+    getSubStationList();
+    // getMonitor(true);
+    getStationList();
+  });
+  onUnmounted(() => {
+    if (timer) {
+      clearTimeout(timer);
+      timer = undefined;
+    }
+  });
 </script>
 
 <style lang="less" scoped>
-.safetyList {
-  width: calc(100% - 20px);
-  height: calc(100% - 90px);
-  position: relative;
-  margin: 80px 10px 10px 10px;
-
-  .content {
+  .safetyList {
+    width: calc(100% - 20px);
+    height: calc(100% - 90px);
     position: relative;
-    width: 100%;
-    height: 100%;
-    display: flex;
-    justify-content: space-between;
-    align-items: center;
+    margin: 80px 10px 10px 10px;
 
-    .left-box {
-      width: 40%;
+    .content {
+      position: relative;
+      width: 100%;
       height: 100%;
-      margin-right: 15px;
-      padding: 10px;
-      box-sizing: border-box;
-      background: url('/@/assets/images/fire/bj1.png') no-repeat center;
-      background-size: 100% 100%;
-
-      .left-title {
-        display: flex;
-        height: 30px;
-        align-items: center;
-        font-size: 14px;
-        margin-bottom: 10px;
+      display: flex;
+      justify-content: space-between;
+      align-items: center;
+
+      .left-box {
+        width: 40%;
+        height: 100%;
+        margin-right: 15px;
+        padding: 10px;
+        box-sizing: border-box;
+        background: url('/@/assets/images/fire/bj1.png') no-repeat center;
+        background-size: 100% 100%;
+
+        .left-title {
+          display: flex;
+          height: 30px;
+          align-items: center;
+          font-size: 14px;
+          margin-bottom: 10px;
 
-        span {
-          color: #fff;
-        }
+          span {
+            color: #fff;
+          }
 
-        .zd-open {
-          color: rgb(0, 242, 255);
-        }
+          .zd-open {
+            color: rgb(0, 242, 255);
+          }
 
-        .zd-close {
-          color: #ff0000;
-        }
+          .zd-close {
+            color: #ff0000;
+          }
 
-        .title-fz {
-          margin-right: 25px;
+          .title-fz {
+            margin-right: 25px;
+          }
         }
-      }
-
-      .left-content {
-        display: flex;
-        justify-content: flex-start;
-        align-items: flex-start;
-        flex-wrap: wrap;
-        height: calc(100% - 40px);
-        overflow-y: auto;
 
-        .card-box {
-          position: relative;
-          // width: 242px;
-          width: 182px;
-          height: 110px;
-          margin-bottom: 15px;
+        .left-content {
           display: flex;
-          justify-content: center;
+          justify-content: flex-start;
+          align-items: flex-start;
+          flex-wrap: wrap;
+          height: calc(100% - 40px);
+          overflow-y: auto;
 
-          .card-itemN {
+          .card-box {
             position: relative;
-            width: 85px;
+            // width: 242px;
+            width: 182px;
             height: 110px;
-            background: url('/@/assets/images/zd-2.png') no-repeat center;
-            background-size: 100% 100%;
-            cursor: pointer;
+            margin-bottom: 15px;
+            display: flex;
+            justify-content: center;
+
+            .card-itemN {
+              position: relative;
+              width: 85px;
+              height: 110px;
+              background: url('/@/assets/images/zd-2.png') no-repeat center;
+              background-size: 100% 100%;
+              cursor: pointer;
+
+              .card-item-label {
+                width: 100%;
+                position: absolute;
+                bottom: 5px;
+                font-size: 12px;
+                color: #fff;
+                text-align: center;
+              }
+            }
 
-            .card-item-label {
-              width: 100%;
-              position: absolute;
-              bottom: 5px;
-              font-size: 12px;
-              color: #fff;
-              text-align: center;
+            .card-itemL {
+              position: relative;
+              width: 85px;
+              height: 110px;
+              background: url('/@/assets/images/zd-3.png') no-repeat center;
+              background-size: 100% 100%;
+              cursor: pointer;
+
+              .card-item-label {
+                width: 100%;
+                position: absolute;
+                bottom: 5px;
+                font-size: 12px;
+                color: #fff;
+                text-align: center;
+              }
             }
-          }
 
-          .card-itemL {
-            position: relative;
-            width: 85px;
-            height: 110px;
-            background: url('/@/assets/images/zd-3.png') no-repeat center;
-            background-size: 100% 100%;
-            cursor: pointer;
+            .card-itemD {
+              position: relative;
+              width: 85px;
+              height: 110px;
+              background: url('/@/assets/images/zd-1.png') no-repeat center;
+              background-size: 100% 100%;
+              cursor: pointer;
+
+              .card-item-label {
+                width: 100%;
+                position: absolute;
+                bottom: 5px;
+                font-size: 12px;
+                color: #fff;
+                text-align: center;
+              }
+            }
 
-            .card-item-label {
-              width: 100%;
+            .card-modal {
+              width: 86px;
               position: absolute;
-              bottom: 5px;
-              font-size: 12px;
+              left: 140px;
               color: #fff;
-              text-align: center;
+              top: 50%;
+              transform: translate(0, -50%);
+              font-size: 12px;
             }
-          }
 
-          .card-itemD {
-            position: relative;
-            width: 85px;
-            height: 110px;
-            background: url('/@/assets/images/zd-1.png') no-repeat center;
-            background-size: 100% 100%;
-            cursor: pointer;
-
-            .card-item-label {
-              width: 100%;
+            .card-modal1 {
+              width: 86px;
               position: absolute;
-              bottom: 5px;
-              font-size: 12px;
+              left: -42px;
               color: #fff;
-              text-align: center;
+              top: 50%;
+              transform: translate(0, -50%);
+              font-size: 12px;
             }
           }
-
-          .card-modal {
-            width: 86px;
-            position: absolute;
-            left: 140px;
-            color: #FFF;
-            top: 50%;
-            transform: translate(0, -50%);
-            font-size: 12px;
-          }
-
-          .card-modal1 {
-            width: 86px;
-            position: absolute;
-            left: -42px;
-            color: #FFF;
-            top: 50%;
-            transform: translate(0, -50%);
-            font-size: 12px;
-          }
-
         }
       }
-    }
 
-    .right-box {
-      width: calc(60% - 15px);
-      height: 100%;
-      padding: 10px;
-      box-sizing: border-box;
-      background: url('/@/assets/images/fire/bj1.png') no-repeat center;
-      background-size: 100% 100%;
+      .right-box {
+        width: calc(60% - 15px);
+        height: 100%;
+        padding: 10px;
+        box-sizing: border-box;
+        background: url('/@/assets/images/fire/bj1.png') no-repeat center;
+        background-size: 100% 100%;
 
-      .right-title {
-        display: flex;
-        height: 30px;
-        align-items: center;
-        font-size: 14px;
-        color: #fff;
-        margin-bottom: 10px;
+        .right-title {
+          display: flex;
+          height: 30px;
+          align-items: center;
+          font-size: 14px;
+          color: #fff;
+          margin-bottom: 10px;
+        }
       }
     }
   }
-}
 
-.zxm-form {
-  padding-top: 20px !important;
-  box-sizing: border-box;
-}
+  .zxm-form {
+    padding-top: 20px !important;
+    box-sizing: border-box;
+  }
 
-::v-deep(.zxm-radio-wrapper) {
-  font-size: 12px;
-}
+  ::v-deep(.zxm-radio-wrapper) {
+    font-size: 12px;
+  }
 
-::v-deep(.zxm-input) {
-  font-size: 12px;
-}
-</style>
+  ::v-deep(.zxm-input) {
+    font-size: 12px;
+  }
+</style>

+ 172 - 172
src/views/vent/safetyList/safetyList.data.ts

@@ -1,179 +1,179 @@
 import { BasicColumn } from '/@/components/Table';
 
 export const columns: BasicColumn[] = [
-    // {
-    //     title: '序号',
-    //     width: 60,
-    //     align: 'center',
-    //     customRender: ({ index }: { index: number }) => `${index + 1}`
-    // },
-    {
-        title: '安装位置',
-        dataIndex: 'strinstallpos',
-        key: 'strinstallpos',
-        align: 'center',
-    },
-    {
-        title: 'Ip地址',
-        dataIndex: 'stripC',
-        key: 'stripC',
-        width: 90,
-        align: 'center',
-    },
-    {
-        title: '监测值',
-        dataIndex: 'valueJc',
-        key: 'valueJc',
-        align: 'center',
-    },
-    {
-        title: '供电模式',
-        dataIndex: 'gdmsC',
-        key: 'gdmsC',
-        width: 90,
-        align: 'center',
-    },
-    {
-        title: '电池容量(%)',
-        dataIndex: 'dcrl',
-        key: 'dcrl',
-        width: 90,
-        align: 'center',
-    },
-    {
-        title: '启用状态',
-        dataIndex: 'linkIdC',
-        key: 'linkIdC',
-        width: 80,
-        align: 'center',
-    },
-    {
-        title: '通讯状态',
-        dataIndex: 'linkstatusC',
-        key: 'linkstatusC',
-        width: 80,
-        align: 'center',
-    },
+  // {
+  //     title: '序号',
+  //     width: 60,
+  //     align: 'center',
+  //     customRender: ({ index }: { index: number }) => `${index + 1}`
+  // },
+  {
+    title: '安装位置',
+    dataIndex: 'strinstallpos',
+    key: 'strinstallpos',
+    align: 'center',
+  },
+  {
+    title: 'Ip地址',
+    dataIndex: 'stripC',
+    key: 'stripC',
+    width: 90,
+    align: 'center',
+  },
+  {
+    title: '监测值',
+    dataIndex: 'valueJc',
+    key: 'valueJc',
+    align: 'center',
+  },
+  {
+    title: '供电模式',
+    dataIndex: 'gdmsC',
+    key: 'gdmsC',
+    width: 90,
+    align: 'center',
+  },
+  {
+    title: '电池容量(%)',
+    dataIndex: 'dcrl',
+    key: 'dcrl',
+    width: 90,
+    align: 'center',
+  },
+  {
+    title: '启用状态',
+    dataIndex: 'linkIdC',
+    key: 'linkIdC',
+    width: 80,
+    align: 'center',
+  },
+  {
+    title: '通讯状态',
+    dataIndex: 'linkstatusC',
+    key: 'linkstatusC',
+    width: 80,
+    align: 'center',
+  },
 
-    // {
-    //     title: '时间',
-    //     dataIndex: 'updateTime',
-    //     key: 'updateTime',
-    //     width: 120,
-    //     align: 'center',
-    // },
-    {
-        title: '操作',
-        dataIndex: 'action',
-        width: 220,
-        align: 'center',
-        slots: { customRender: 'action' },
-    },
+  // {
+  //     title: '时间',
+  //     dataIndex: 'updateTime',
+  //     key: 'updateTime',
+  //     width: 120,
+  //     align: 'center',
+  // },
+  {
+    title: '操作',
+    dataIndex: 'action',
+    width: 220,
+    align: 'center',
+    slots: { customRender: 'action' },
+  },
 ];
 
 export const columnsDetail: BasicColumn[] = [
-    {
-        title: '安装位置',
-        dataIndex: 'strInstallPos',
-        key: 'strInstallPos',
-        width:180,
-        align: 'center',
-    },
-    {
-        title: '通讯状态',
-        dataIndex: 'linkstatusC',
-        key: 'linkstatusC',
-        align: 'center',
-    },
-    {
-        title: '读写状态',
-        dataIndex: 'dxzt',
-        key: 'dxzt',
-        align: 'center',
-    },
-    {
-        title: '程序版本号',
-        dataIndex: 'cxbbh',
-        key: 'cxbbh',
-        align: 'center',
-    },
-    {
-        title: '电源状态',
-        dataIndex: 'dyzt',
-        key: 'dyzt',
-        align: 'center',
-    },
-    {
-        title: '电量(%)',
-        dataIndex: 'dl',
-        key: 'dl',
-        align: 'center',
-    },
-    {
-        title: '断线标志',
-        dataIndex: 'dxbz',
-        key: 'dxbz',
-        align: 'center',
-    },
-    {
-        title: '电池组总电压(mv)',
-        dataIndex: 'dczzdy',
-        key: 'dczzdy',
-        align: 'center',
-    },
-    {
-        title: '负载电流(mA)',
-        dataIndex: 'fzcdl',
-        key: 'fzcdl',
-        align: 'center',
-    },
-    {
-        title: '电池数量(节)',
-        dataIndex: 'dcsl',
-        key: 'dcsl',
-        align: 'center',
-    },
-    {
-        title: '单节电池电压1',
-        dataIndex: 'djdcdy1',
-        key: 'djdcdy1',
-        align: 'center',
-    },
-    {
-        title: '单节电池电压2',
-        dataIndex: 'djdcdy2',
-        key: 'djdcdy2',
-        align: 'center',
-    },
-    {
-        title: '单节电池电压3',
-        dataIndex: 'djdcdy3',
-        key: 'djdcdy3',
-        align: 'center',
-    },
-    {
-        title: '单节电池电压4',
-        dataIndex: 'djdcdy4',
-        key: 'djdcdy4',
-        align: 'center',
-    },
-    {
-        title: '单节电池电压5',
-        dataIndex: 'djdcdy5',
-        key: 'djdcdy5',
-        align: 'center',
-    },
-    {
-        title: '单节电池电压6',
-        dataIndex: 'djdcdy6',
-        key: 'djdcdy6',
-        align: 'center',
-    },
-    {
-        title: '操作',
-        dataIndex: 'action',
-        width: 150,
-        align: 'center',
-        slots: { customRender: 'action' },
-    },
-];
+  {
+    title: '安装位置',
+    dataIndex: 'strInstallPos',
+    key: 'strInstallPos',
+    width: 180,
+    align: 'center',
+  },
+  {
+    title: '通讯状态',
+    dataIndex: 'linkstatusC',
+    key: 'linkstatusC',
+    align: 'center',
+  },
+  {
+    title: '读写状态',
+    dataIndex: 'dxzt',
+    key: 'dxzt',
+    align: 'center',
+  },
+  {
+    title: '程序版本号',
+    dataIndex: 'cxbbh',
+    key: 'cxbbh',
+    align: 'center',
+  },
+  {
+    title: '电源状态',
+    dataIndex: 'dyzt',
+    key: 'dyzt',
+    align: 'center',
+  },
+  {
+    title: '电量(%)',
+    dataIndex: 'dl',
+    key: 'dl',
+    align: 'center',
+  },
+  {
+    title: '断线标志',
+    dataIndex: 'dxbz',
+    key: 'dxbz',
+    align: 'center',
+  },
+  {
+    title: '电池组总电压(mv)',
+    dataIndex: 'dczzdy',
+    key: 'dczzdy',
+    align: 'center',
+  },
+  {
+    title: '负载电流(mA)',
+    dataIndex: 'fzcdl',
+    key: 'fzcdl',
+    align: 'center',
+  },
+  {
+    title: '电池数量(节)',
+    dataIndex: 'dcsl',
+    key: 'dcsl',
+    align: 'center',
+  },
+  {
+    title: '单节电池电压1',
+    dataIndex: 'djdcdy1',
+    key: 'djdcdy1',
+    align: 'center',
+  },
+  {
+    title: '单节电池电压2',
+    dataIndex: 'djdcdy2',
+    key: 'djdcdy2',
+    align: 'center',
+  },
+  {
+    title: '单节电池电压3',
+    dataIndex: 'djdcdy3',
+    key: 'djdcdy3',
+    align: 'center',
+  },
+  {
+    title: '单节电池电压4',
+    dataIndex: 'djdcdy4',
+    key: 'djdcdy4',
+    align: 'center',
+  },
+  {
+    title: '单节电池电压5',
+    dataIndex: 'djdcdy5',
+    key: 'djdcdy5',
+    align: 'center',
+  },
+  {
+    title: '单节电池电压6',
+    dataIndex: 'djdcdy6',
+    key: 'djdcdy6',
+    align: 'center',
+  },
+  {
+    title: '操作',
+    dataIndex: 'action',
+    width: 150,
+    align: 'center',
+    slots: { customRender: 'action' },
+  },
+];

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