Переглянути джерело

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

hongrunxia 1 тиждень тому
батько
коміт
f1da2d22a1

+ 8 - 6
src/views/vent/home/configurable/components/detail/ComplexList.vue

@@ -260,7 +260,8 @@
       position: absolute;
       width: 100%;
       bottom: 0;
-      font-size: 20px;
+      font-size: 16px;
+      font-weight: bold;
     }
     .list-item__content_D:nth-of-type(2) {
       position: absolute;
@@ -273,7 +274,7 @@
         display: none;
       }
       .list-item__value {
-        font-size: 19px;
+        font-size: 18px;
       }
     }
     .list-item__content_D:nth-of-type(3) {
@@ -287,7 +288,7 @@
         display: none;
       }
       .list-item__value {
-        font-size: 19px;
+        font-size: 18px;
       }
     }
 
@@ -317,7 +318,8 @@
     // position: absolute;
     width: 100%;
     // top: 0;
-    font-size: 18px;
+    font-size: 16px;
+    font-weight: bold;
     margin-top: 10px;
   }
   .list-item__content_E:nth-of-type(2) {
@@ -330,7 +332,7 @@
       display: none;
     }
     .list-item__value {
-      font-size: 18px;
+      font-size: 16px;
     }
   }
   .list-item__content_E:nth-of-type(3) {
@@ -343,7 +345,7 @@
       display: none;
     }
     .list-item__value {
-      font-size: 18px;
+      font-size: 16px;
     }
   }
 

+ 47 - 47
src/views/vent/home/configurable/configurable.data.bd.ts

@@ -231,7 +231,7 @@ export const testConfigBDDust: Config[] = [
         },
       ],
       preset: [],
-      mock: BDdustMock,
+      // mock: BDdustMock,
     },
     showStyle: {
       size: 'width:440px;height:460px;',
@@ -241,7 +241,7 @@ export const testConfigBDDust: Config[] = [
   },
   {
     deviceType: '',
-    moduleName: '设备信息',
+    moduleName: '喷雾设备信息',
     pageType: '',
     moduleData: {
       header: {
@@ -363,7 +363,7 @@ export const testConfigBDDust: Config[] = [
       list: [],
       complex_list: [],
       preset: [],
-      mock: BDdustMock,
+      // mock: BDdustMock,
     },
     showStyle: {
       size: 'width:980px;height:280px;',
@@ -438,7 +438,7 @@ export const testConfigBDDust: Config[] = [
       complex_list: [],
       preset: [],
       to: 'http://10.248.210.154:8801',
-      mock: BDdustMock,
+      // mock: BDdustMock,
     },
     showStyle: {
       size: 'width:440px;height:300px;',
@@ -447,8 +447,8 @@ export const testConfigBDDust: Config[] = [
     },
   },
   {
-    deviceType: 'devGbsb',
-    moduleName: '隔爆设施管理台账',
+    deviceType: '',
+    moduleName: '煤尘爆炸性',
     pageType: '',
     moduleData: {
       header: {
@@ -456,7 +456,7 @@ export const testConfigBDDust: Config[] = [
         readFrom: '',
         selector: {
           show: false,
-          value: '',
+          value: '${name}',
         },
         slot: {
           show: false,
@@ -472,49 +472,50 @@ export const testConfigBDDust: Config[] = [
         direction: 'row',
         items: [
           {
-            name: 'table',
+            name: 'board',
             basis: '100%',
           },
         ],
       },
-      board: [],
-      chart: [],
-      gallery: [],
-      gallery_list: [],
-      table: [
+      board: [
         {
-          type: 'A',
-          readFrom: 'devGbsb',
-          columns: [
+          type: 'E',
+          readFrom: '',
+          layout: 'label-top',
+          items: [
             {
-              name: '地点',
-              prop: 'strinstallpos',
+              label: '火焰长度',
+              value: '>400mm',
             },
             {
-              name: '吊挂位置',
-              prop: 'addr',
+              label: '抑制煤层爆炸最低岩粉量',
+              value: '85%',
             },
             {
-              name: '性质',
-              prop: 'kind',
+              label: '鉴定结论',
+              value: '有煤层爆炸性',
             },
           ],
         },
       ],
+      chart: [],
+      gallery: [],
+      gallery_list: [],
+      table: [],
       list: [],
       complex_list: [],
       preset: [],
-      mock: BDdustMock,
+      // mock: BDdustMock,
     },
     showStyle: {
-      size: 'width:440px;height:280px;',
+      size: 'width:440px;height:260px;',
       version: '保德',
       position: 'top:370px;right:10px;',
     },
   },
   {
-    deviceType: 'statics',
-    moduleName: '粉尘静态指标',
+    deviceType: 'devGbsb',
+    moduleName: '隔爆设施管理台账',
     pageType: '',
     moduleData: {
       header: {
@@ -522,7 +523,7 @@ export const testConfigBDDust: Config[] = [
         readFrom: '',
         selector: {
           show: false,
-          value: '${name}',
+          value: '',
         },
         slot: {
           show: false,
@@ -538,45 +539,44 @@ export const testConfigBDDust: Config[] = [
         direction: 'row',
         items: [
           {
-            name: 'board',
+            name: 'table',
             basis: '100%',
           },
         ],
       },
-      board: [
+      board: [],
+      chart: [],
+      gallery: [],
+      gallery_list: [],
+      table: [
         {
-          type: 'E',
-          readFrom: '',
-          layout: 'label-top',
-          items: [
+          type: 'A',
+          readFrom: 'devGbsb',
+          columns: [
             {
-              label: '火焰长度',
-              value: '>400mm',
+              name: '地点',
+              prop: 'strinstallpos',
             },
             {
-              label: '抑制煤层爆炸最低岩粉量',
-              value: '75%',
+              name: '吊挂位置',
+              prop: 'addr',
             },
             {
-              label: '鉴定结论',
-              value: '有煤层爆炸性',
+              name: '性质',
+              prop: 'kind',
             },
           ],
         },
       ],
-      chart: [],
-      gallery: [],
-      gallery_list: [],
-      table: [],
       list: [],
       complex_list: [],
       preset: [],
-      mock: BDdustMock,
+      // mock: BDdustMock,
     },
     showStyle: {
-      size: 'width:440px;height:260px;',
+      size: 'width:440px;height:280px;',
       version: '保德',
-      position: 'top:660px;right:10px;',
+      position: 'top:640px;right:10px;',
     },
   },
 ];
@@ -6204,7 +6204,7 @@ export const testConfigBDFire: Config[] = [
       list: [],
       complex_list: [],
       preset: [],
-      mock: BDfireMock,
+      // mock: BDfireMock,
     },
     showStyle: {
       size: 'width:440px;height:260px;',

+ 2 - 2
src/views/vent/home/configurable/dustBD.vue

@@ -66,7 +66,7 @@
   import ModuleBD from './components/ModuleBD.vue';
   import VentModal from '/@/components/vent/micro/ventModal.vue';
   import { getDisHome } from './configurable.api';
-  import { testConfigBDDust } from './configurable.data.bd';
+  // import { testConfigBDDust } from './configurable.data.bd';
   // import { getToken } from '/@/utils/auth';
 
   const { configs, fetchConfigs } = useInitConfigs();
@@ -77,7 +77,7 @@
   // }
   onMounted(() => {
     fetchConfigs('BD_dust').then(() => {
-      configs.value = testConfigBDDust;
+      // configs.value = testConfigBDDust;
 
       getDisHome({
         dataList: configs.value

+ 6 - 6
src/views/vent/home/configurable/fireBD.vue

@@ -162,13 +162,13 @@
 
     // .module-left {
     //   position: absolute;
-    //   width: 450px;
+    //   width: 440px;
     //   height: 280px;
     //   left: 0;
     // }
     // .module-right {
     //   position: absolute;
-    //   width: 450px;
+    //   width: 440px;
     //   height: 280px;
     //   right: 0;
     // }
@@ -207,8 +207,8 @@
     position: absolute;
     height: 115px;
     top: 40px;
-    left: 5px;
-    width: 450px;
+    left: 10px;
+    width: 440px;
     background-image: url('/@/assets/images/home-container/configurable/firehome/qkjaq.png');
     background-color: #000723;
     background-repeat: no-repeat;
@@ -268,9 +268,9 @@
     position: absolute;
     // height: 160px;
     height: 115px;
-    right: 5px;
+    right: 10px;
     top: 50px;
-    width: 450px;
+    width: 440px;
     background-image: url('/@/assets/images/home-container/configurable/firehome/common-border2.png');
     background-color: #000723;
     background-repeat: no-repeat;

+ 52 - 70
src/views/vent/home/configurable/index.vue

@@ -23,26 +23,28 @@
         </div>
         <div class="tcontent-c">
           <div style="margin-bottom: 15px; color: #009bff; font-size: 24px; font-weight: bolder; letter-spacing: 10px">
-            {{ data.fireAllMineWarn }}
+            {{ data.dustAllMineWarn }}
           </div>
-          <div style="color: #fff; font-size: 12px">自燃倾向性等级 : 自燃</div>
+          <!-- <div style="color: #fff; font-size: 12px">自燃倾向性等级 : 容易自燃</div> -->
         </div>
         <div class="tcontent-r">
-          <div>火灾</div>
+          <div>粉尘</div>
           <div>风险</div>
         </div>
       </div>
     </div>
-    <div class="right-t">
-      <div class="tcontent-l" @click="redirectTo('/grout-home')">
-        <div>智能注浆系统</div>
+    <!-- <div class="right-t">
+      <div class="tcontent-l" @click="redirectTo('https://bing.cn')">
+        <div>智能</div>
+        <div>灌浆系统</div>
       </div>
-      <div class="tcontent-r" @click="redirectTo('/nitrogen-home')">
-        <div>智能注氮系统</div>
+      <div class="tcontent-r" @click="redirectTo('https://bing.cn')">
+        <div>智能</div>
+        <div>注氟系统</div>
       </div>
-    </div>
+    </div> -->
     <ModuleBD
-      v-for="cfg in cfgs"
+      v-for="cfg in configs"
       :key="cfg.deviceType"
       :show-style="cfg.showStyle"
       :module-data="cfg.moduleData"
@@ -51,64 +53,36 @@
       :data="data"
       :visible="true"
     />
-    <ModuleBDDual
-      v-if="cfgA && cfgB"
-      :show-style="cfgA.showStyle"
-      :module-data-a="cfgA.moduleData"
-      :module-name-a="cfgA.moduleName"
-      :device-type-a="cfgA.deviceType"
-      :module-data-b="cfgB.moduleData"
-      :module-name-b="cfgB.moduleName"
-      :device-type-b="cfgB.deviceType"
-      :data="data"
-      :visible="true"
-    />
-    <div style="width: 1000px; height: 550px; position: absolute; left: calc(50% - 500px); top: 60px">
+    <div style="width: 1000px; height: 570px; position: absolute; left: calc(50% - 500px); top: 60px">
       <VentModal />
     </div>
   </div>
 </template>
 <script lang="ts" setup>
-  import { computed, onMounted, onUnmounted } from 'vue';
+  import { onMounted, onUnmounted } from 'vue';
   // import { CaretDownOutlined } from '@ant-design/icons-vue';
   // import MonitorCenter from './components/MonitorCenter.vue';
   import { useInitConfigs, useInitPage } from './hooks/useInit';
   import ModuleBD from './components/ModuleBD.vue';
-  import ModuleBDDual from './components/ModuleBDDual.vue';
   import VentModal from '/@/components/vent/micro/ventModal.vue';
   import { getDisHome } from './configurable.api';
-  import { testConfigBDFire } from './configurable.data.bd';
+  import { testConfigBDDust } from './configurable.data.bd';
   // import { getToken } from '/@/utils/auth';
 
-  const cfgs = computed(() =>
-    configs.value.filter((_, index) => {
-      return index !== 4 && index !== 3;
-    })
-  );
-  const cfgA = computed<any>(() =>
-    configs.value.find((_, index) => {
-      return index === 3;
-    })
-  );
-  const cfgB = computed<any>(() =>
-    configs.value.find((_, index) => {
-      return index === 4;
-    })
-  );
   const { configs, fetchConfigs } = useInitConfigs();
-  const { mainTitle, data, updateData } = useInitPage('保德煤矿火灾预警系统');
+  const { mainTitle, data, updateData } = useInitPage('保德煤矿粉尘灾害预警系统');
   let interval: number | undefined;
   // function hideLoading() {
   //   loading.value = false;
   // }
   onMounted(() => {
-    // fetchConfigs('BD_fire').then(() => {
-    configs.value = testConfigBDFire;
+    // fetchConfigs('BD_dust').then(() => {
+    configs.value = testConfigBDDust;
 
     getDisHome({
       dataList: configs.value
         .map((e) => e.deviceType)
-        .concat('fireAllMineWarn')
+        .concat('dustAllMineWarn')
         .join(','),
     }).then(updateData);
     // });
@@ -116,7 +90,7 @@
     //   getDisHome({
     //     dataList: configs.value
     //       .map((e) => e.deviceType)
-    //       .concat('fireAllMineWarn')
+    //       .concat('dustAllMineWarn')
     //       .join(','),
     //   }).then(updateData);
     // }, 60000);
@@ -125,10 +99,6 @@
   onUnmounted(() => {
     clearInterval(interval);
   });
-
-  function redirectTo(url) {
-    window.open(url);
-  }
 </script>
 <style lang="less" scoped>
   @font-face {
@@ -162,13 +132,13 @@
 
     // .module-left {
     //   position: absolute;
-    //   width: 440px;
+    //   width: 450px;
     //   height: 280px;
     //   left: 0;
     // }
     // .module-right {
     //   position: absolute;
-    //   width: 440px;
+    //   width: 450px;
     //   height: 280px;
     //   right: 0;
     // }
@@ -206,7 +176,7 @@
   .left-t {
     position: absolute;
     height: 115px;
-    top: 40px;
+    top: 50px;
     left: 10px;
     width: 440px;
     background-image: url('/@/assets/images/home-container/configurable/firehome/qkjaq.png');
@@ -266,11 +236,10 @@
   }
   .right-t {
     position: absolute;
-    // height: 160px;
-    height: 115px;
-    right: 10px;
+    height: 160px;
+    right: 0;
     top: 50px;
-    width: 440px;
+    width: 450px;
     background-image: url('/@/assets/images/home-container/configurable/firehome/common-border2.png');
     background-color: #000723;
     background-repeat: no-repeat;
@@ -279,31 +248,44 @@
     display: flex;
     align-items: center;
     justify-content: space-around;
-    z-index: 1;
 
     .tcontent-l {
       flex: 1;
-      height: 100%;
-      font-size: 16px;
+      height: 70%;
+      font-size: 20px;
       font-weight: bold;
-      background-image: url(/@/assets/images/home-container/configurable/firehome/znzjxt.png);
-      background-size: auto 100%;
+      background-image: url(/@/assets/images/home-container/configurable/firehome/img-5.png),
+        url(/@/assets/images/home-container/configurable/firehome/ggxt.png);
+      background-size:
+        auto 100%,
+        auto auto;
       background-repeat: no-repeat;
-      background-position: center;
+      background-position:
+        center,
+        center top;
       text-align: center;
-      padding-top: 85px;
+      padding-top: 40px;
+      line-height: 50px;
+      cursor: pointer;
     }
     .tcontent-r {
       flex: 1;
-      height: 100%;
-      font-size: 16px;
+      height: 70%;
+      font-size: 20px;
       font-weight: bold;
-      background-image: url(/@/assets/images/home-container/configurable/firehome/znzdxt.png);
-      background-size: auto 100%;
+      background-image: url(/@/assets/images/home-container/configurable/firehome/img-5.png),
+        url(/@/assets/images/home-container/configurable/firehome/zjxt.png);
+      background-size:
+        auto 100%,
+        auto auto;
       background-repeat: no-repeat;
-      background-position: center;
+      background-position:
+        center,
+        center top;
       text-align: center;
-      padding-top: 85px;
+      padding-top: 40px;
+      line-height: 50px;
+      cursor: pointer;
     }
   }
 

+ 531 - 0
src/views/vent/safetyList/common/detail-cl.vue

@@ -0,0 +1,531 @@
+<template>
+    <div class="safetyList">
+        <div class="content">
+            <div class="box-content">
+                <!-- 监测详情 -->
+                <div class="detail-content">
+                    <a-table size="small" :scroll="{ y: 710 }" :columns="columnsDetail" :data-source="tableData1">
+                        <template #action="{ record }">
+                            <a-button type="primary" size="small" @click="handleEdit(record)">编辑</a-button>
+                        </template>
+                        <template #bodyCell="{ column, text }"></template>
+                    </a-table>
+                    <!-- 编辑弹窗 -->
+                    <a-modal v-model:visible="visibleModalEdit1" :width="1100"
+                        :bodyStyle="{ display: 'flex', height: '680px', 'overflow-y': 'auto', 'margin-bottom': '15px' }"
+                        title="编辑信息" :footer="null">
+
+                        <a-form :model="formView" labelAlign="right" :label-col="{ span: 8 }"
+                            :wrapper-col="{ span: 16 }">
+                            <a-form-item label="第一路风速风向:">
+                                <a-input v-model:value="formView.dylfsfx" placeholder="请输入" disabled
+                                    style="width: 260px;margin-right: 10px;" />
+                            </a-form-item>
+                            <a-form-item label="第一路报警状态:">
+                                <a-input v-model:value="formView.dylbjzt" placeholder="请输入" disabled
+                                    style="width: 260px;margin-right: 10px;" />
+                            </a-form-item>
+                            <a-form-item label="第一路1发2收AD值:">
+                                <a-input v-model:value="formView.dyl1f2sADz" placeholder="请输入" disabled
+                                    style="width: 260px;margin-right: 10px;" />
+                            </a-form-item>
+                            <a-form-item label="第一路2发1收AD值:">
+                                <a-input v-model:value="formView.dyl2f1sADz" placeholder="请输入" disabled
+                                    style="width: 260px;margin-right: 10px;" />
+                            </a-form-item>
+                            <a-form-item label="通风量:">
+                                <a-input v-model:value="formView.tfl" placeholder="请输入" disabled
+                                    style="width: 260px;margin-right: 10px;" />
+                            </a-form-item>
+                            <a-form-item label="硬件版本:">
+                                <a-input v-model:value="formView.yjbb" placeholder="请输入" disabled
+                                    style="width: 260px;margin-right: 10px;" />
+                            </a-form-item>
+                            <a-form-item label="软件版本:">
+                                <a-input v-model:value="formView.rjbb" placeholder="请输入" disabled
+                                    style="width: 260px;margin-right: 10px;" />
+                            </a-form-item>
+                            <a-form-item label="在线离线标志:">
+                                <a-input v-model:value="formView.zxlxbz" placeholder="请输入" disabled
+                                    style="width: 260px;margin-right: 10px;" />
+                            </a-form-item>
+                            <a-form-item label="日期和时间:">
+                                <a-input v-model:value="formView.rqsj" placeholder="请输入" disabled
+                                    style="width: 260px;margin-right: 10px;" />
+                            </a-form-item>
+                        </a-form>
+
+
+                        <a-form :model="formEdit" labelAlign="right" :label-col="{ span: 7 }"
+                            :wrapper-col="{ span: 17 }">
+                            <a-form-item label="传感器设备:">
+                                <a-select v-model:value="formEdit.cgq" style="width: 260px;margin-right: 10px;">
+                                    <a-select-option v-for="file in cgqList" :key="file.label" :value="file.value">{{
+                                        file.label }}</a-select-option>
+                                </a-select>
+                                <a-button type="success" @click="getMonitor">读取</a-button>
+                            </a-form-item>
+                            <a-form-item label="RS485_MODBUS地址:">
+                                <a-input v-model:value="formEdit.rs485modbusdz" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('RS485_MODBUS地址')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="探头安装距离:">
+                                <a-input v-model:value="formEdit.ttazjl" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('探头安装距离')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="基线距离:">
+                                <a-input v-model:value="formEdit.jxjl" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('基线距离')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="安装角度:">
+                                <a-input v-model:value="formEdit.azjd" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('安装角度')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="设置时长:">
+                                <a-input v-model:value="formEdit.szsz" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('设置时长')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="数据平均周期:">
+                                <a-input v-model:value="formEdit.sjpjzq" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('数据平均周期')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="第一路一发二收PG值:">
+                                <a-input v-model:value="formEdit.dylyfesPGz" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('第一路一发二收PG值')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="第一路二发一收PG值:">
+                                <a-input v-model:value="formEdit.dylefysPGz" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('第一路二发一收PG值')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="风道截面积:">
+                                <a-input v-model:value="formEdit.fdjmj" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('风道截面积')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="第一路整体系数k:">
+                                <a-input v-model:value="formEdit.dylztxsk" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('第一路整体系数k')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="第一路第一段系数:">
+                                <a-input v-model:value="formEdit.dyldydxs1" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('第一路第一段系数')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="第一路第二段系数:">
+                                <a-input v-model:value="formEdit.dyldedxs2" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('第一路第二段系数')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="第一路第三段系数:">
+                                <a-input v-model:value="formEdit.dyldsdxs3" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('第一路第三段系数')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="第一路第四段系数:">
+                                <a-input v-model:value="formEdit.dyldsdxs4" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('第一路第四段系数')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="第一路第五段系数:">
+                                <a-input v-model:value="formEdit.dyldwdxs5" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('第一路第五段系数')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="第一路第六段系数:">
+                                <a-input v-model:value="formEdit.dyldldxs6" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('第一路第六段系数')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="系数KB:">
+                                <a-input v-model:value="formEdit.xsKB" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('系数KB')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="系数KB符号:">
+                                <a-input v-model:value="formEdit.xsKBfh" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('系数KB符号')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="高报警阈值:">
+                                <a-input v-model:value="formEdit.gbjyz" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('高报警阈值')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="低报警阈值:">
+                                <a-input v-model:value="formEdit.dbjyz" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('低报警阈值')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="报警使能:">
+                                <a-input v-model:value="formEdit.bjsn" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('报警使能')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="第一路485波特率:">
+                                <a-input v-model:value="formEdit.dyl485btl" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('第一路485波特率')">下发</a-button>
+                            </a-form-item>
+                            <a-form-item label="四个字节保存密码:">
+                                <a-input v-model:value="formEdit.sgzjbcmm" placeholder="请输入"
+                                    style="width: 260px;margin-right: 10px;" />
+                                <a-button type="primary" @click="handleClick('四个字节保存密码')">下发</a-button>
+                            </a-form-item>
+                        </a-form>
+
+
+                    </a-modal>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script setup lang="ts">
+import { ref, nextTick, reactive, onMounted, onUnmounted } from 'vue';
+import {  get158StationData, set158StationData, get158StationDevices, set158StationRead } from '../safetyList.api';
+import { columnsDetail } from '../safetyList.data'
+
+let tableData1 = ref<any[]>([])
+let visibleModalEdit1 = ref(false)
+let formEdit = reactive({
+    id: '',
+    cgq: '',
+    rs485modbusdz: '',
+    ttazjl: '',
+    jxjl: '',
+    azjd: '',
+    szsz: '',
+    sjpjzq: '',
+    dylyfesPGz: '',
+    dylefysPGz: '',
+    fdjmj: '',
+    dylztxsk: '',
+    dyldydxs1: '',
+    dyldedxs2: '',
+    dyldsdxs3: '',
+    dyldsdxs4: '',
+    dyldwdxs5: '',
+    dyldldxs6: '',
+    xsKB: '',
+    xsKBfh: '',
+    gbjyz: '',
+    dbjyz: '',
+    bjsn: '',
+    dyl485btl: '',
+    sgzjbcmm: '',
+})
+let formView = reactive({
+    dylfsfx: '',
+    dylbjzt: '',
+    dyl1f2sADz: '',
+    dyl2f1sADz: '',
+    tfl: '',
+    yjbb: '',
+    rjbb: '',
+    zxlxbz: '',
+    rqsj: '',
+})
+let cgqList = reactive<any[]>([])
+let devStationId = ref('')
+
+//读取分站设备下拉选项数据
+let timer: null | NodeJS.Timeout = null;
+function getMonitor(flag = false) {
+    timer = setTimeout(
+        async () => {
+            await getDeviceList()
+            if (timer) {
+                timer = null;
+            }
+            getMonitor();
+        },
+        flag ? 0 : 3000
+    );
+}
+let timer1: null | NodeJS.Timeout = null;
+function getMonitor1(flag = false) {
+    timer1 = setTimeout(
+        async () => {
+            await getStationList()
+            if (timer1) {
+                timer1 = null;
+            }
+            getMonitor1();
+        },
+        flag ? 0 : 5000
+    );
+}
+async function getDeviceList() {
+    let res = await set158StationRead({ stationId: devStationId.value, deviceId: formEdit.cgq })
+    if (res) {
+        let data = await get158StationData()
+        let list = data.filter(v => v.stationId == devStationId.value)[0]
+        formView = {
+            dylfsfx: list.dylfsfx,
+            dylbjzt: list.dylbjzt,
+            dyl1f2sADz: list.dyl1f2sADz,
+            dyl2f1sADz: list.dyl2f1sADz,
+            tfl: list.tfl,
+            yjbb: list.yjbb,
+            rjbb: list.rjbb,
+            zxlxbz: list.zxlxbz,
+            rqsj: list.rqsj,
+        }
+    }
+}
+//获取详细信息列表
+async function getStationList() {
+    let res = await get158StationData()
+    tableData1.value = res
+}
+
+//编辑
+async function handleEdit(record) {
+    cgqList.length = 0
+    visibleModalEdit1.value = true
+    devStationId.value = record.stationId
+    formEdit = {
+        id: '',
+        cgq: '',
+        rs485modbusdz: '',
+        ttazjl: '',
+        jxjl: '',
+        azjd: '',
+        szsz: '',
+        sjpjzq: '',
+        dylyfesPGz: '',
+        dylefysPGz: '',
+        fdjmj: '',
+        dylztxsk: '',
+        dyldydxs1: '',
+        dyldedxs2: '',
+        dyldsdxs3: '',
+        dyldsdxs4: '',
+        dyldwdxs5: '',
+        dyldldxs6: '',
+        xsKB: '',
+        xsKBfh: '',
+        gbjyz: '',
+        dbjyz: '',
+        bjsn: '',
+        dyl485btl: '',
+        sgzjbcmm: '',
+    }
+    let res = await get158StationDevices({ stationId: devStationId.value })
+    console.log(res, '分站下设备下拉选项-------------')
+    if (res.length != 0) {
+        res.forEach(el => {
+            cgqList.push({ label: el.strinstallpos, value: el.id })
+        })
+    }
+}
+
+//下发
+async function handleClick(data) {
+    switch (data) {
+        case 'RS485_MODBUS地址':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'rs485modbusdz', value: formEdit.rs485modbusdz })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '探头安装距离':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'ttazjl', value: formEdit.ttazjl })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '基线距离':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'jxjl', value: formEdit.jxjl })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '安装角度':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'azjd', value: formEdit.azjd })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '设置时长':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'szsz', value: formEdit.szsz })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '数据平均周期':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'sjpjzq', value: formEdit.sjpjzq })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '第一路一发二收PG值':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'dylyfesPGz', value: formEdit.dylyfesPGz })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '第一路二发一收PG值':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'dylefysPGz', value: formEdit.dylefysPGz })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '风道截面积':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'fdjmj', value: formEdit.fdjmj })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '第一路整体系数k':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'dylztxsk', value: formEdit.dylztxsk })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '第一路第一段系数':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'dyldydxs1', value: formEdit.dyldydxs1 })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '第一路第二段系数':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'dyldedxs2', value: formEdit.dyldedxs2 })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '第一路第三段系数':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'dyldsdxs3', value: formEdit.dyldsdxs3 })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '第一路第四段系数':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'dyldsdxs4', value: formEdit.dyldsdxs4 })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '第一路第五段系数':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'dyldwdxs5', value: formEdit.dyldwdxs5 })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '第一路第六段系数':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'dyldldxs6', value: formEdit.dyldldxs6 })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '系数KB':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'xsKB', value: formEdit.xsKB })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '系数KB符号':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'xsKBfh', value: formEdit.xsKBfh })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '高报警阈值':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'gbjyz', value: formEdit.gbjyz })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '低报警阈值':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'dbjyz', value: formEdit.dbjyz })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '报警使能':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'bjsn', value: formEdit.bjsn })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '第一路485波特率':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'dyl485btl', value: formEdit.dyl485btl })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+        case '四个字节保存密码':
+            await set158StationData({ stationId: devStationId.value, deviceId: formEdit.cgq, plcCode: 'sgzjbcmm', value: formEdit.sgzjbcmm })
+            visibleModalEdit1.value = false
+            getStationList()
+            break;
+    }
+}
+
+
+onMounted(() => {
+    getStationList()
+    getMonitor1()
+})
+onUnmounted(() => {
+    if (timer) {
+        clearTimeout(timer);
+        timer = undefined;
+    }
+    if(timer1){
+        clearTimeout(timer1);
+        timer1 = undefined;
+    }
+});
+</script>
+
+<style lang="less" scoped>
+.safetyList {
+    width: calc(100% - 20px);
+    height: calc(100% - 70px);
+    position: relative;
+    margin:10px;
+
+    .content {
+        position: relative;
+        width: 100%;
+        height: 100%;
+        .box-content {
+            height: 100%;
+            .detail-content {
+                width: 100%;
+                height: 100%;
+            }
+        }
+    }
+}
+
+
+.zxm-form {
+    width: 50%;
+    height: 100%;
+    padding-top: 20px !important;
+    box-sizing: border-box;
+}
+
+
+::v-deep(.zxm-radio-wrapper) {
+    font-size: 12px;
+}
+
+::v-deep(.zxm-input) {
+    font-size: 12px;
+}
+
+::v-deep(.zxm-select:not(.zxm-select-customize-input) .zxm-select-selector) {
+    border: 1px solid #3ad8ff77 !important;
+    background-color: #ffffff00 !important;
+}
+
+::v-deep(.zxm-select-selection-item) {
+    color: #fff !important;
+}
+
+
+
+.zxm-picker,
+.zxm-input {
+    border: 1px solid #3ad8ff77 !important;
+    background-color: #ffffff00 !important;
+    color: #fff !important;
+}
+</style>
+<style>
+div[aria-hidden="true"] {
+    display: none !important
+}
+</style>

Різницю між файлами не показано, бо вона завелика
+ 707 - 202
src/views/vent/safetyList/common/detail.vue


+ 9 - 3
src/views/vent/safetyList/safetyList.api.ts

@@ -8,7 +8,9 @@ enum Api {
   update158DevName='/safety/ventanalyDeviceInfo/update158DevName',
   updateDebugStatus='/safety/ventanalyDeviceInfo/updateDebugStatus',
   get158StationData='/safety/ventanalyDeviceInfo/get158StationData',
-  set158StationData='/safety/ventanalyDeviceInfo/set158StationData'
+  set158StationData='/safety/ventanalyDeviceInfo/set158StationData',
+  get158StationDevices='/safety/ventanalyDeviceInfo/get158StationDevices',
+  set158StationRead='/safety/ventanalyDeviceInfo/set158StationRead'
 }
 
 
@@ -25,6 +27,10 @@ export const update158DevName = (params) => defHttp.post({ url: Api.update158Dev
 // 分站设备调试
 export const updateDebugStatus = (params) => defHttp.post({ url: Api.updateDebugStatus,params },{ joinParamsToUrl: true });
 // 分站详情列表
-export const get158StationData = (params) => defHttp.post({ url: Api.get158StationData,params },{ joinParamsToUrl: true });
+export const get158StationData = () => defHttp.post({ url: Api.get158StationData });
 // 分站详情下发
-export const set158StationData = (params) => defHttp.post({ url: Api.set158StationData,params },{ joinParamsToUrl: true });
+export const set158StationData = (params) => defHttp.post({ url: Api.set158StationData,params },{ joinParamsToUrl: true });
+// 根据分站ID获取分站下设备
+export const get158StationDevices = (params) => defHttp.post({ url: Api.get158StationDevices,params },{ joinParamsToUrl: true });
+//读取分站设备数据
+export const set158StationRead = (params) => defHttp.post({ url: Api.set158StationRead,params },{ joinParamsToUrl: true });

+ 33 - 75
src/views/vent/safetyList/safetyList.data.ts

@@ -58,131 +58,89 @@ export const columns: BasicColumn[] = [
 
 export const columnsDetail: BasicColumn[] = [
     {
-        title: '安装位置',
-        dataIndex: 'strinstallpos',
-        key: 'strinstallpos',
+        title: '读写状态',
+        dataIndex: 'dxzt',
+        key: 'dxzt',
         align: 'center',
     },
     {
-        title: '硬件版本',
-        dataIndex: 'yjbb',
-        key: 'yjbb',
-        width: 100,
+        title: '程序版本号',
+        dataIndex: 'cxbbh',
+        key: 'cxbbh',
         align: 'center',
     },
     {
-        title: '供电模式',
-        dataIndex: 'dqgdfsC',
-        key: 'dqgdfsC',
-        width: 100,
+        title: '电源状态',
+        dataIndex: 'dyzt',
+        key: 'dyzt',
         align: 'center',
     },
     {
         title: '电量(%)',
         dataIndex: 'dl',
         key: 'dl',
-        width: 80,
         align: 'center',
     },
     {
-        title: '直流供电电压(mv)',
-        dataIndex: 'zlgddy',
-        key: 'zlgddy',
-        width: 80,
+        title: '断线标志',
+        dataIndex: 'dxbz',
+        key: 'dxbz',
         align: 'center',
     },
     {
         title: '电池组总电压(mv)',
         dataIndex: 'dczzdy',
         key: 'dczzdy',
-        width: 80,
         align: 'center',
     },
     {
         title: '负载电流(mA)',
         dataIndex: 'fzcdl',
         key: 'fzcdl',
-        width: 80,
-        align: 'center',
-    },
-    {
-        title: '充电电流(mA)',
-        dataIndex: 'dccddl',
-        key: 'dccddl',
-        width: 80,
-        align: 'center',
-    },
-    {
-        title: '电池温度(℃)',
-        dataIndex: 'dcdwd',
-        key: 'dcdwd',
-        width: 80,
         align: 'center',
     },
     {
-        title: '底板温度(℃)',
-        dataIndex: 'dbdwd',
-        key: 'dbdwd',
-        width: 80,
-        align: 'center',
-    },
-    {
-        title: '档位状态',
-        dataIndex: 'kgdwztC',
-        key: 'kgdwztC',
-        width: 80,
-        align: 'center',
-    },
-    {
-        title: '均衡状态',
-        dataIndex: 'jhzt',
-        key: 'jhzt',
-        width: 80,
+        title: '电池数量(节)',
+        dataIndex: 'dcsl',
+        key: 'dcsl',
         align: 'center',
     },
     {
-        title: '充放电状态',
-        dataIndex: 'dccfdztC',
-        key: 'dccfdztC',
-        width: 80,
+        title: '单节电池电压1',
+        dataIndex: 'djdcdy1',
+        key: 'djdcdy1',
         align: 'center',
     },
     {
-        title: '电池数量(节)',
-        dataIndex: 'jrdcdsl',
-        key: 'jrdcdsl',
-        width: 80,
+        title: '单节电池电压2',
+        dataIndex: 'djdcdy2',
+        key: 'djdcdy2',
         align: 'center',
     },
     {
-        title: '电池额定容量(mah)',
-        dataIndex: 'dcedrl',
-        key: 'dcedrl',
-        width: 100,
+        title: '单节电池电压3',
+        dataIndex: 'djdcdy3',
+        key: 'djdcdy3',
         align: 'center',
     },
     {
-        title: '维护性放电',
-        dataIndex: 'whxfdC',
-        key: 'whxfdC',
-        width: 80,
+        title: '单节电池电压4',
+        dataIndex: 'djdcdy4',
+        key: 'djdcdy4',
         align: 'center',
     },
     {
-        title: '断电控制1',
-        dataIndex: 'jcddkz1C',
-        key: 'jcddkz1C',
-        width: 80,
+        title: '单节电池电压5',
+        dataIndex: 'djdcdy5',
+        key: 'djdcdy5',
         align: 'center',
     },
     {
-        title: '断电控制2',
-        dataIndex: 'jcddkz2C',
-        key: 'jcddkz2C',
-        width: 80,
+        title: '单节电池电压6',
+        dataIndex: 'djdcdy6',
+        key: 'djdcdy6',
         align: 'center',
     },
-
     {
         title: '操作',
         dataIndex: 'action',

Деякі файли не було показано, через те що забагато файлів було змінено