Procházet zdrojové kódy

1. 完成多灾预警中通风测风装置预测曲线
2. 瓦斯泵添加控制模式按钮
3. 布尔台单道风窗模型修改

hongrunxia před 2 měsíci
rodič
revize
6af162eab6

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

@@ -20,7 +20,7 @@
         <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>
             <Progress :percent="combustionPercent" size="default" strokeColor="red" :show-info="true" :format="() => combustionCount" />

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

@@ -20,7 +20,7 @@
         <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>
             <Progress :percent="combustionPercent" size="default" strokeColor="red" :show-info="true" :format="() => combustionCount" />

+ 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',

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

@@ -42,7 +42,7 @@
         },
         grid: {
           top: '15%',
-          left: '8%',
+          left: '11%',
           bottom: '10%',
           right: '4%',
         },

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

@@ -30,7 +30,7 @@
                 'status-l': 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');

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

@@ -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;

+ 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="410px" />
       </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 avgParams = el.avgParam || {
+            avg_vent_value: 0,
+            max_vent_value: 0,
+            min_vent_value: 0,
+          };
+          chartTfList.push({
+            label: el.strinstallpos,
+            time: new Date(),
+            data: [avgParams.avg_m3_value, avgParams.max_m3_value, avgParams.min_m3_value, el.readData.m3],
+          });
         });
       }
+      cardListTf.value = cardTfList;
+      chartListTf.value = chartTfList;
     }
   }
   onMounted(() => {
     getMenuList();
-    getWindDeviceList();
   });
   onUnmounted(() => {
     if (timer) {

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

@@ -512,7 +512,7 @@ export const haveHandlerArr = [
   'window',
   'gate',
   'fanlocal',
-  'fanmain',
+  // 'fanmain',
   'pump',
   'obfurage',
   'nitrogen',

+ 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/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',

+ 8 - 4
src/views/vent/monitorManager/windowMonitor/window.threejs.ts

@@ -243,10 +243,14 @@ export const mountedThree = (playerDom) => {
     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);

+ 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' },
+  },
+];