hongrunxia 1 年間 前
コミット
babe095282
35 ファイル変更443 行追加484 行削除
  1. BIN
      public/model/glft/cf/ddcf_2023-07-13.glb
  2. 0 0
      public/video/gate1.mp4
  3. 0 0
      public/video/wind1.mp4
  4. 0 0
      public/video/window1.mp4
  5. 3 0
      src/assets/icons/pressure.svg
  6. 8 0
      src/assets/icons/smoke.svg
  7. 5 0
      src/assets/icons/temp.svg
  8. 2 0
      src/components/chart/BarSingle.vue
  9. 1 0
      src/hooks/web/useWebColumns.ts
  10. 1 1
      src/utils/threejs/main.worker.ts
  11. 1 3
      src/views/vent/deviceManager/comment/NormalTable.vue
  12. 2 1
      src/views/vent/deviceManager/deviceTable/index.vue
  13. 3 0
      src/views/vent/deviceManager/tableColumns/tableColumns.data.ts
  14. 18 0
      src/views/vent/home/needAir.vue
  15. 6 5
      src/views/vent/monitorManager/alarmMonitor/alarm.data.ts
  16. 29 24
      src/views/vent/monitorManager/alarmMonitor/index.vue
  17. 10 2
      src/views/vent/monitorManager/comment/GroupMonitorTable.vue
  18. 16 2
      src/views/vent/monitorManager/compressor/components/nitrogenHome.vue
  19. 18 3
      src/views/vent/monitorManager/compressor/components/nitrogenHome1.vue
  20. 7 1
      src/views/vent/monitorManager/compressor/components/nitrogenHome2.vue
  21. 2 2
      src/views/vent/monitorManager/compressor/index.vue
  22. 4 4
      src/views/vent/monitorManager/deviceMonitor/components/device/index.vue
  23. 3 2
      src/views/vent/monitorManager/deviceMonitor/components/network/index.vue
  24. 1 1
      src/views/vent/monitorManager/deviceMonitor/components/network/network.data.ts
  25. 1 1
      src/views/vent/monitorManager/fanLocalMonitor/fanLocal.data.ts
  26. 206 175
      src/views/vent/monitorManager/fanLocalMonitor/index.vue
  27. 34 32
      src/views/vent/monitorManager/gasPumpMonitor/components/gasPumpHome.vue
  28. 2 2
      src/views/vent/monitorManager/gateMonitor/gate.threejs.qd.ts
  29. 2 2
      src/views/vent/monitorManager/gateMonitor/gate.threejs.yy.ts
  30. 8 8
      src/views/vent/monitorManager/gateMonitor/index.vue
  31. 21 8
      src/views/vent/monitorManager/mainFanMonitor/index.vue
  32. 18 198
      src/views/vent/monitorManager/nitrogen/components/nitrogenHome.vue
  33. 5 1
      src/views/vent/monitorManager/nitrogen/index.vue
  34. 2 2
      src/views/vent/monitorManager/windowMonitor/index.vue
  35. 4 4
      src/views/vent/monitorManager/windrectMonitor/windrect.data.ts

BIN
public/model/glft/cf/ddcf_2023-07-13.glb


+ 0 - 0
public/video/gate.mp4 → public/video/gate1.mp4


+ 0 - 0
public/video/wind.mp4 → public/video/wind1.mp4


+ 0 - 0
public/video/window.mp4 → public/video/window1.mp4


+ 3 - 0
src/assets/icons/pressure.svg

@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="50.583" height="37.937" viewBox="0 0 50.583 37.937">
+  <path id="压力" d="M59.425,68.267A25.291,25.291,0,0,0,34.133,93.558a24.642,24.642,0,0,0,.343,3.9l.253,1.517H84.12l.253-1.517a24.64,24.64,0,0,0,.343-3.9A25.291,25.291,0,0,0,59.425,68.267Zm21.57,27.1H64.519a5.672,5.672,0,0,0-1.048-1.807l6.558-11.8-3.143-1.807L60.328,91.842a5.112,5.112,0,0,0-.9-.09,5.42,5.42,0,0,0-5.094,3.613H37.855a16.35,16.35,0,0,1-.108-1.807,21.425,21.425,0,0,1,2.1-9.231l3.035,1.807,1.807-3.143L41.63,81.183A21.678,21.678,0,0,1,57.618,71.97v3.523h3.613V71.97A21.678,21.678,0,0,1,77.219,81.2l-3.053,1.807,1.807,3.143,3.035-1.807a21.425,21.425,0,0,1,2.1,9.213,16.352,16.352,0,0,1-.108,1.807Zm-1.7,7.226H39.553a1.807,1.807,0,0,0,0,3.613H79.3a1.807,1.807,0,0,0,0-3.613Z" transform="translate(-34.133 -68.267)" fill="#fff"/>
+</svg>

+ 8 - 0
src/assets/icons/smoke.svg

@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="34.939" height="39.402" viewBox="0 0 34.939 39.402">
+  <g id="烟雾" transform="translate(-1779.176 -908.462)">
+    <path id="路径_55983" data-name="路径 55983" d="M186.164,118.631l-1.13-.869c-2.578-1.911-4.431-3.273-.84-9.528a.1.1,0,0,1,.029-.058c.029-.029.029-.087.058-.116,0-.029.029-.058.029-.116,0-.029.029-.087.029-.116V107.6a.174.174,0,0,0-.029-.116.219.219,0,0,0-.029-.116c0-.058-.029-.087-.058-.145,0-.029,0-.058-.029-.058-.029-.058-.058-.087-.087-.145,0-.029-.029-.029-.029-.058l-.087-.087c-.029-.029-.058-.058-.058-.087-.029-.029-.058-.029-.087-.058a.4.4,0,0,0-.116-.087.106.106,0,0,0-.087-.029c-.029-.029-.058-.029-.087-.058a.261.261,0,0,0-.145-.029.106.106,0,0,1-.087-.029h-.232a.261.261,0,0,0-.145.029h-.087a.221.221,0,0,0-.145.058c-.029,0-.029,0-.058.029h-.029c-4.952,2.317-6.459,5.329-6.835,7.472a9.075,9.075,0,0,0,2.751,7.82l.55.55c1.854,1.854,4.2,4.142,4.113,6.893-.058,1.825-1.187,3.736-3.418,5.706a.028.028,0,0,1-.029.029l-.087.087c-.029.029-.058.058-.058.087-.029.029-.029.058-.058.087s-.029.058-.058.087-.029.058-.029.116c0,.029-.029.058-.029.116a.174.174,0,0,1-.029.116v.348c0,.029.029.058.029.087s.029.087.029.116v.029l.029.029a1.016,1.016,0,0,0,.145.232c0,.029.029.029.029.058v.029a1.083,1.083,0,0,0,.2.174c.029,0,.029.029.058.029a.613.613,0,0,0,.2.087c.029,0,.058.029.087.029a.892.892,0,0,0,.29.029h.2c.029,0,.058,0,.058-.029.058,0,.087-.029.145-.058,7.038-2.867,8.978-6.574,9.355-9.181C190.914,124.626,189.321,121.18,186.164,118.631Z" transform="translate(1612.632 810.813)" fill="#fff"/>
+    <path id="路径_55984" data-name="路径 55984" d="M181.476,113.2l-.624-.48c-1.425-1.056-2.449-1.809-.464-5.266a.056.056,0,0,1,.016-.032c.016-.016.016-.048.032-.064,0-.016.016-.032.016-.064,0-.016.016-.048.016-.064V107.1a.1.1,0,0,0-.016-.064.121.121,0,0,0-.016-.064c0-.032-.016-.048-.032-.08,0-.016,0-.032-.016-.032-.016-.032-.032-.048-.048-.08,0-.016-.016-.016-.016-.032l-.048-.048c-.016-.016-.032-.032-.032-.048-.016-.016-.032-.016-.048-.032a.221.221,0,0,0-.064-.048.059.059,0,0,0-.048-.016c-.016-.016-.032-.016-.048-.032a.144.144,0,0,0-.08-.016.059.059,0,0,1-.048-.016h-.128a.144.144,0,0,0-.08.016h-.048a.122.122,0,0,0-.08.032c-.016,0-.016,0-.032.016h-.016c-2.737,1.281-3.569,2.945-3.777,4.13a5.016,5.016,0,0,0,1.521,4.322l.3.3c1.024,1.024,2.321,2.289,2.273,3.81a4.659,4.659,0,0,1-1.889,3.153.016.016,0,0,1-.016.016l-.048.048c-.016.016-.032.032-.032.048-.016.016-.016.032-.032.048s-.016.032-.032.048-.016.032-.016.064c0,.016-.016.032-.016.064a.1.1,0,0,1-.016.064v.192c0,.016.016.032.016.048s.016.048.016.064V123l.016.016a.561.561,0,0,0,.08.128c0,.016.016.016.016.032v.016a.6.6,0,0,0,.112.1c.016,0,.016.016.032.016a.339.339,0,0,0,.112.048c.016,0,.032.016.048.016a.493.493,0,0,0,.16.016h.112c.016,0,.032,0,.032-.016.032,0,.048-.016.08-.032,3.89-1.585,4.962-3.634,5.17-5.074A5.36,5.36,0,0,0,181.476,113.2Z" transform="translate(1603.49 821.112)" fill="#fff"/>
+    <path id="路径_55985" data-name="路径 55985" d="M181.54,113.523l-.631-.5c-1.44-1.107-2.476-1.9-.469-5.518a.059.059,0,0,1,.016-.034c.016-.017.016-.05.032-.067,0-.017.016-.034.016-.067,0-.017.016-.05.016-.067v-.134a.1.1,0,0,0-.016-.067.131.131,0,0,0-.016-.067c0-.034-.016-.05-.032-.084,0-.017,0-.034-.016-.034-.016-.034-.032-.05-.049-.084,0-.017-.016-.017-.016-.034l-.049-.05c-.016-.017-.032-.034-.032-.05-.016-.017-.032-.017-.049-.034a.225.225,0,0,0-.065-.05.058.058,0,0,0-.049-.017c-.016-.017-.032-.017-.049-.034a.142.142,0,0,0-.081-.017.058.058,0,0,1-.048-.017h-.13a.142.142,0,0,0-.081.017H179.7a.121.121,0,0,0-.081.034c-.016,0-.016,0-.032.017h-.016c-2.767,1.342-3.609,3.086-3.819,4.327a5.371,5.371,0,0,0,1.537,4.528l.307.319c1.036,1.073,2.347,2.4,2.3,3.992a4.922,4.922,0,0,1-1.91,3.3.016.016,0,0,1-.016.017l-.049.05c-.016.017-.032.034-.032.05-.016.017-.016.034-.032.05s-.016.034-.032.05-.016.034-.016.067c0,.017-.016.034-.016.067a.1.1,0,0,1-.016.067v.2c0,.017.016.034.016.05s.016.05.016.067v.017l.016.017a.593.593,0,0,0,.081.134c0,.017.016.017.016.034v.017a.611.611,0,0,0,.113.1c.016,0,.016.017.032.017a.337.337,0,0,0,.113.05c.016,0,.032.017.049.017a.482.482,0,0,0,.162.017h.113c.016,0,.032,0,.032-.017.032,0,.049-.017.081-.034,3.932-1.66,5.017-3.807,5.227-5.317A5.7,5.7,0,0,0,181.54,113.523Z" transform="translate(1624.687 801.966)" fill="#fff"/>
+    <path id="路径_55986" data-name="路径 55986" d="M180.254,111.788l-.493-.379c-1.124-.834-1.932-1.427-.366-4.155a.044.044,0,0,1,.013-.025c.013-.013.013-.038.025-.051s.013-.025.013-.051.013-.038.013-.051v-.1a.076.076,0,0,0-.013-.051.1.1,0,0,0-.013-.051c0-.025-.013-.038-.025-.063s0-.025-.013-.025c-.013-.025-.025-.038-.038-.063s-.013-.013-.013-.025l-.038-.038c-.013-.013-.025-.025-.025-.038s-.025-.013-.038-.025a.174.174,0,0,0-.051-.038.046.046,0,0,0-.038-.013c-.013-.013-.025-.013-.038-.025a.114.114,0,0,0-.063-.013.046.046,0,0,1-.038-.013h-.1a.114.114,0,0,0-.063.013h-.038a.1.1,0,0,0-.063.025c-.013,0-.013,0-.025.013h-.013c-2.159,1.01-2.816,2.324-2.98,3.259a3.958,3.958,0,0,0,1.2,3.41l.24.24c.808.808,1.831,1.806,1.793,3.006a3.676,3.676,0,0,1-1.49,2.488.012.012,0,0,1-.013.013l-.038.038c-.013.013-.025.025-.025.038s-.013.025-.025.038-.013.025-.025.038-.013.025-.013.051-.013.025-.013.051a.076.076,0,0,1-.013.051v.152c0,.013.013.025.013.038s.013.038.013.051v.013l.013.013a.442.442,0,0,0,.063.1c0,.013.013.013.013.025v.013a.474.474,0,0,0,.088.076c.013,0,.013.013.025.013a.268.268,0,0,0,.088.038c.013,0,.025.013.038.013a.389.389,0,0,0,.126.013h.088c.013,0,.025,0,.025-.013.025,0,.038-.013.063-.025,3.069-1.25,3.915-2.867,4.079-4A4.229,4.229,0,0,0,180.254,111.788Z" transform="translate(1632.006 825.59)" fill="#fff"/>
+  </g>
+</svg>

+ 5 - 0
src/assets/icons/temp.svg

@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="22.152" height="37.937" viewBox="0 0 22.152 37.937">
+  <g id="温度" transform="translate(-506.549 -361.739)">
+    <path id="路径_55369" data-name="路径 55369" d="M225.354,23.353V13.177a1.124,1.124,0,0,0-1.122-1.122h-.089a1.088,1.088,0,0,0-1.089,1.089V23.353a3.952,3.952,0,0,0-2.9,3.767,4.053,4.053,0,1,0,5.2-3.767Zm5.96-4.508a1.024,1.024,0,0,1-.4-.778V6.561a6.714,6.714,0,0,0-13.425,0v11.18a1.6,1.6,0,0,1-.545,1.226,10.669,10.669,0,0,0-3.816,8.157,11.079,11.079,0,0,0,22.152,0A10.67,10.67,0,0,0,231.314,18.844ZM224.2,34.5a7.493,7.493,0,0,1-7.587-7.383,7.314,7.314,0,0,1,3.545-6.238l.537-.33a.6.6,0,0,0,.282-.5V6.561a3.228,3.228,0,0,1,6.453,0V20.048a.6.6,0,0,0,.282.5l.537.33a7.305,7.305,0,0,1,3.541,6.238A7.5,7.5,0,0,1,224.2,34.5Z" transform="translate(293.42 361.739)" fill="#fff"/>
+  </g>
+</svg>

+ 2 - 0
src/components/chart/BarSingle.vue

@@ -132,6 +132,8 @@ export default defineComponent({
           color: '#ffffff',
           // formatter: '{value}' + item.yname
         },
+        interval: 1,
+        min: 0,
         splitLine: {
           lineStyle: {
             color: 'rgba(21,80,126,.3)',

+ 1 - 0
src/hooks/web/useWebColumns.ts

@@ -13,6 +13,7 @@ const arrToColumns = (tableHeaderColumns = []) => {
       dataIndex: item.dict ? `${item.monitorcode}_dictText` : item.monitorcode,
       width: item.width || 100,
       defaultHidden: !item.showflag,
+      align: 'center',
       // sorter: item.sort ? true : false,
       customRender: ({ text }) => {
         return text != null ? text : '-';

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

@@ -34,7 +34,7 @@ export function initModalWorker() {
     'cf/zdcf_2023-06-02.glb',
     'cf/dscf_2023-06-02.glb',
     'cf/dsgd_2023-06-02.glb',
-    'cf/ddcf_2023-07-13.glb',
+    'cf/ddcf_2023-12-09.glb',
     'cf/dsmove_2023-06-02.glb',
     'cf/fixedCf_2023-11-29.glb',
     'jbfj/jbfj-hd_2023-10-19.glb',

+ 1 - 3
src/views/vent/deviceManager/comment/NormalTable.vue

@@ -188,9 +188,7 @@ const saveOrUpdateHandler = async (params) => {
   try {
     await props.saveOrUpdate(params, isUpdate.value);
     !props.showTab ? closeModal() : '';
-    debugger
-    await doRequest(props.list, { confirm: false });
-    debugger
+    // await doRequest(props.list, { confirm: false });
     reload()
     emit('submitSuccess', params)
   } catch (error) {

+ 2 - 1
src/views/vent/deviceManager/deviceTable/index.vue

@@ -86,7 +86,7 @@
             componentProps: {
               dictCode: item.dict,
               placeholder: '请选择',
-              stringToNumber: true,
+              // stringToNumber: true,
             },
           };
         }
@@ -110,6 +110,7 @@
         componentProps: {
           dictCode: `${deviceType.value}kind`,
           placeholder: '请选择点表',
+          // stringToNumber: true,
         },
       }
     )

+ 3 - 0
src/views/vent/deviceManager/tableColumns/tableColumns.data.ts

@@ -108,6 +108,7 @@ export const formSchema: FormSchema[] = [
     componentProps: {
       dictCode: 'booltype',
       placeholder: '请选择状态',
+      stringToNumber: true,
     },
   },
   {
@@ -117,6 +118,7 @@ export const formSchema: FormSchema[] = [
     componentProps: {
       dictCode: 'datatype',
       placeholder: '请选择状态',
+      stringToNumber: true,
     },
   },
   {
@@ -126,6 +128,7 @@ export const formSchema: FormSchema[] = [
     componentProps: {
       dictCode: 'type',
       placeholder: '请选择状态',
+      stringToNumber: true,
     },
   },
   {

+ 18 - 0
src/views/vent/home/needAir.vue

@@ -0,0 +1,18 @@
+<template>
+  <div id="micro-need-air"></div>
+</template>
+<script lang="ts" setup>
+
+import { onMounted, onBeforeUnmount } from 'vue'
+import { unmountMicroApps, mountMicroApp } from '/@/qiankun'
+
+onMounted(() => {
+  mountMicroApp('/micro-need-air')
+})
+
+onBeforeUnmount(async () => {
+  unmountMicroApps(['/micro-need-air'])
+})
+
+</script>
+<style lang="less" scoped></style>

+ 6 - 5
src/views/vent/monitorManager/alarmMonitor/alarm.data.ts

@@ -38,12 +38,11 @@ export const levelColumns: BasicColumn[] = [
     align: 'center',
   },
 
-  
   {
     title: '报警类型',
     dataIndex: 'nwartype',
     customRender: ({ record }) => {
-      return render.renderDict(record.nwartype , 'leveltype');
+      return render.renderDict(record.nwartype, 'leveltype');
     },
     width: 100,
     align: 'center',
@@ -82,12 +81,11 @@ export const levelHisColumns: BasicColumn[] = [
     align: 'center',
   },
 
-  
   {
     title: '报警类型',
     dataIndex: 'nwartype',
     customRender: ({ record }) => {
-      return render.renderDict(record.nwartype , 'leveltype');
+      return render.renderDict(record.nwartype, 'leveltype');
     },
     width: 100,
     align: 'center',
@@ -504,7 +502,7 @@ export const chartsColumns = [
     legend: '低风险',
     seriesName: '(Pa)',
     ymax: 50,
-    ymin:0,
+    ymin: 0,
     yname: '个',
     linetype: 'bar',
     yaxispos: 'left',
@@ -523,6 +521,9 @@ export const option = {
     left: 10,
     containLabel: true,
   },
+  yAxis: {
+    show: false
+  },
 };
 
 export const colors = [

+ 29 - 24
src/views/vent/monitorManager/alarmMonitor/index.vue

@@ -60,21 +60,22 @@
         </template>
         <template #container>
           <div class="icons-box" @mouseleave="resetScroll">
-            <div class="icon-item" v-for="(item, key) in iconsMonitor" :key="key">
-              <div class="wrapper">
-                {{ item.text }}
-              </div>
-              <div></div>
-              <img :src="item.url" :alt="item.text" />
-              <div class="level-text" :class="{
-                'level-text-0': item.level == 0,
-                'level-text-1': item.level == 101,
-                'level-text-2': item.level == 102,
-                'level-text-3': item.level == 103,
-                'level-text-4': item.level == 104,
-                'level-text-5': item.level == 201,
-                'level-text-6': item.level != 0 && item.level != 101 && item.level != 102 && item.level != 103 && item.level != 104 && item.level != 201,
-              }">{{
+            <template v-for="(item, key) in iconsMonitor" :key="key">
+              <div class="icon-item" v-if="[0, 101, 103, 104, 201].includes(item.level)">
+                <div class="wrapper">
+                  {{ item.text }}
+                </div>
+                <div></div>
+                <img :src="item.url" :alt="item.text" />
+                <div class="level-text" :class="{
+                  'level-text-0': item.level == 0,
+                  'level-text-1': item.level == 101,
+                  'level-text-2': item.level == 102,
+                  'level-text-3': item.level == 103,
+                  'level-text-4': item.level == 104,
+                  'level-text-5': item.level == 201,
+                  'level-text-6': item.level != 0 && item.level != 101 && item.level != 102 && item.level != 103 && item.level != 104 && item.level != 201,
+                }">{{
   item.level == 0
   ? '正常'
   : item.level == 101
@@ -89,7 +90,10 @@
             ? '报警'
             : '未连接'
 }}</div>
-            </div>
+              </div>
+
+            </template>
+            
           </div>
         </template>
       </ventBox1>
@@ -249,7 +253,7 @@
               <div class="detail-box">
                 <div class="detail-item" v-for="(item, index) in gasMonitor" :key="index">
                   <div class="">{{ item.label }}</div>
-                  <div class="value">{{ item.value }}</div>
+                  <div class="value">{{ item.value || item.value == 0 ? item.value : '-' }}</div>
                 </div>
               </div>
             </div>
@@ -261,7 +265,7 @@
               <div class="detail-box">
                 <div class="detail-item" v-for="(item, index) in gasMonitor" :key="index">
                   <div class="">{{ item.label }}</div>
-                  <div class="value">{{ item.value1 }}</div>
+                  <div class="value">{{ item.value || item.value == 0 ? item.value1 : '-' }}</div>
                 </div>
               </div>
             </div>
@@ -602,7 +606,8 @@ onUnmounted(() => {
     .icons-box {
       display: flex;
       flex-wrap: wrap;
-      max-height: 365px;
+      // max-height: 365px;
+      height: 365px;
       overflow-y: hidden;
 
       // align-items: start ;
@@ -610,10 +615,10 @@ onUnmounted(() => {
         overflow-y: auto;
         overflow-x: auto;
 
-        &>.icon-item {
-          animation-play-state: paused;
-          animation: move1 2s linear;
-        }
+        // &>.icon-item {
+        //   animation-play-state: paused;
+        //   animation: move1 2s linear;
+        // }
       }
 
       .icon-item {
@@ -622,7 +627,7 @@ onUnmounted(() => {
         align-items: center;
         justify-content: center;
         padding: 3px;
-        animation: move 10s linear infinite;
+        // animation: move 10s linear infinite;
 
         &:nth-child(even) {
           padding-right: 0px;

+ 10 - 2
src/views/vent/monitorManager/comment/GroupMonitorTable.vue

@@ -154,11 +154,11 @@
         title: '操作',
         dataIndex: 'operation',
         width: 120,
+        align: 'center',
         slots: { customRender: 'operation' },
       }];
     }
    
-   
     return columns;
   }
   
@@ -187,13 +187,21 @@
         // 将主风机、备风机的数据进行拆分
         columns.value.forEach((column) => {
           const columnKey = column.dataIndex;
-          // data.f
           if(columnKey){
             if (columnKey.startsWith('Fan')) {
               const key1 = columnKey.replace('Fan', 'Fan1');
               const key2 = columnKey.replace('Fan', 'Fan2');
               resultData1[columnKey] = data[key1];
               resultData2[columnKey] = data[key2];
+            } else if(columnKey.startsWith('fan')) {
+              const key1 = columnKey.replace('fan', 'fan1');
+              const key2 = columnKey.replace('fan', 'fan2');
+              if(data[key1] != undefined || data[key2] != undefined) {
+                resultData1[columnKey] = data[key1];
+                resultData2[columnKey] = data[key2];
+              }else{
+                resultData1[columnKey] = resultData2[columnKey] = data[columnKey];
+              }
             } else {
               resultData1[columnKey] = resultData2[columnKey] = data[columnKey];
             }

+ 16 - 2
src/views/vent/monitorManager/compressor/components/nitrogenHome.vue

@@ -36,6 +36,7 @@
   <div id="nitrogen3D" style="width: 100%; height: 100%; position: absolute; overflow: hidden"></div>
   <div class="nitrogen-home">
     <div class="nitrogen-container">
+      <div v-if="monitorNetStatus == 0" class="device-state">网络断开</div>
       <div class="top-box">
         <!-- 左边监测数据 -->
         <div class="lr-box left-box">
@@ -164,7 +165,7 @@ const flvURL1 = () => {
   return `https://sf1-hscdn-tos.pstatp.com/obj/media-fe/xgplayer_doc_video/flv/xgplayer-demo-360p.flv`;
   // return ''
 };
-
+const monitorNetStatus = ref(0)
 const monitorDataGroupNum = ref(0);
 
 const airCompressorState = reactive([
@@ -256,10 +257,15 @@ async function getDataSource(systemID) {
   if (!result || result.length < 1) return
   result.forEach(item => {
     if (item.type === 'nitrogen_auto') {
+      let netStatus = 0
       monitorData.value = item['datalist'].filter((data) => {
+        if(data['netStatus'] == 1){
+          netStatus = 1
+        }
         const item = data.readData;
         return Object.assign(data, item);
       });
+      monitorNetStatus.value = netStatus
     }
   })
   monitorDataGroupNum.value = monitorData.value.length
@@ -350,7 +356,15 @@ onUnmounted(() => {
     display: flex;
     justify-content: space-between;
     margin-bottom: 100px;
-
+    .device-state{
+      width: 100%;
+      position: absolute;
+      top: 70px;
+      color: #e90000;
+      display: flex;
+      justify-content: center;
+      font-size: 20px;
+    }
     .top-box {
       width: 100%;
       padding: 10px;

+ 18 - 3
src/views/vent/monitorManager/compressor/components/nitrogenHome1.vue

@@ -45,6 +45,7 @@
   </div>
   <div class="nitrogen-home">
     <div class="nitrogen-container">
+      <div v-if="monitorNetStatus == 0" class="device-state">网络断开</div>
       <div class="top-box">
         <!-- 左边监测数据 -->
         <div class="lr-box left-box">
@@ -250,6 +251,7 @@ const echatsOption = {
     feature: {}
   }
 }
+const monitorNetStatus = ref(0)
 const monitorDataGroupNum = ref(0);
 
 let airCompressorState = reactive<any[]>([]);
@@ -369,8 +371,12 @@ async function getDataSource(systemID) {
     result.msgTxt.forEach((item) => {
       if (item.type && item.type.startsWith('nitrogen')) {
         airCompressorState.length = 0;
+        let netStatus = 0
         monitorData.value = item['datalist'].filter((data) => {
           const readData = data.readData;
+          if (data['netStatus'] == 1) {
+            netStatus = 1
+          }
           airCompressorState.push({
             id: data.deviceID,
             deviceType: data.deviceType,
@@ -379,6 +385,7 @@ async function getDataSource(systemID) {
           });
           return Object.assign(data, readData);
         });
+        monitorNetStatus.value = netStatus
         console.log(monitorData,'monitorData.value---===')
         const airCompressor = { readTime: monitorData.value[0]['readTime'].substring(11) }
         const dataArr = lodash.cloneDeep(echartData.value)
@@ -531,16 +538,24 @@ onUnmounted(() => {
     display: flex;
     justify-content: space-between;
     margin-bottom: 100px;
-
+    .device-state{
+      width: 100%;
+      position: absolute;
+      top: 20px;
+      color: #e90000;
+      display: flex;
+      justify-content: center;
+      font-size: 20px;
+    }
     .top-box {
       width: 100%;
       padding: 10px;
       overflow: hidden;
       display: flex;
       justify-content: space-between;
-
+      // margin-top: 40px;
       .lr-box {
-        height: fit-content;
+        height: 100%;
         display: flex;
         flex-direction: column;
         position: relative;

+ 7 - 1
src/views/vent/monitorManager/compressor/components/nitrogenHome2.vue

@@ -170,6 +170,7 @@
     </div>
     <div class="nitrogen-home">
         <div class="nitrogen-container">
+            <div v-if="monitorNetStatus == 0" class="device-state">网络断开</div>
             <div class="top-box">
                 <!-- 左边监测数据 -->
                 <div class="lr-box left-box">
@@ -399,7 +400,7 @@ const echatsOption = {
     }
 }
 const monitorDataGroupNum = ref(0);
-
+const monitorNetStatus = ref(0)
 let airCompressorState = reactive<any[]>([]);
 
 const groupParameterData = [
@@ -536,8 +537,12 @@ async function getDataSource(systemID) {
         result.msgTxt.forEach((item) => {
             if (item.type && item.type.startsWith('nitrogen')) {
                 airCompressorState.length = 0;
+                let netStatus = 0
                 monitorData.value = item['datalist'].filter((data) => {
                     const readData = data.readData;
+                    if (data['netStatus'] == 1) {
+                        netStatus = 1
+                    }
                     airCompressorState.push({
                         id: data.deviceID,
                         deviceType: data.deviceType,
@@ -546,6 +551,7 @@ async function getDataSource(systemID) {
                     });
                     return Object.assign(data, readData);
                 });
+                monitorNetStatus.value = netStatus
                 console.log(monitorData, 'monitorData.value---===')
                 const airCompressor = { readTime: monitorData.value[0]['readTime'].substring(11) }
                 const dataArr = lodash.cloneDeep(echartData.value)

+ 2 - 2
src/views/vent/monitorManager/compressor/index.vue

@@ -2,8 +2,8 @@
   <div class="nitrogen-box">
     <customHeader :fieldNames="{ label: 'systemname', value: 'id', options: 'children' }" :options = 'options' @change="getSelectRow" :optionValue="optionValue">智能注氮管控系统</customHeader>
     <!-- <nitrogenHome v-if="activeKey == 'nitrogen_page' && optionValue && optionValue !='1702602347296399361'" :device-id="optionValue" :modal-type="modalType" /> -->
-    <!-- <nitrogenHome1 v-if="activeKey == 'nitrogen_page' && optionValue" :device-id="optionValue" :modal-type="modalType" /> -->
-    <nitrogenHome2 v-if="activeKey == 'nitrogen_page' && optionValue" :device-id="optionValue" :modal-type="modalType" />
+    <nitrogenHome1 v-if="activeKey == 'nitrogen_page' && optionValue" :device-id="optionValue" :modal-type="modalType" />
+    <!-- <nitrogenHome2 v-if="activeKey == 'nitrogen_page' && optionValue" :device-id="optionValue" :modal-type="modalType" /> -->
     <nitrogenEcharts v-if="activeKey == 'yfj_monitor_echarts'"/>
     <nitrogenHistory ref="historyTable" :device-id="optionValue" :device-type="optionType" v-if="activeKey == 'yfj_history'"/>
     <nitrogenHandleHistory ref="alarmHistoryTable" v-if="activeKey == 'yfj_handler_history'"/>

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

@@ -231,10 +231,10 @@
                       record.warnFlag == 0 ? '正常' : record.warnFlag == 1 ? '报警' : record.warnFlag == 2 ? '断开' : '未监测'
                     }}</a-tag>
                   <template v-else-if="column.dataIndex === 'warnLevel'">
-                    <a-tag v-if="record.warnLevel == '101'" color="green">蓝色预警</a-tag>
-                    <a-tag v-else-if="record.warnLevel == '102'" color="#FF5812">黄色预警</a-tag>
-                    <a-tag v-else-if="record.warnLevel == '103'" color="#FF5812">橙色预警</a-tag>
-                    <a-tag v-else-if="record.warnLevel == '104'" color="#FF5812">红色预警</a-tag>
+                    <a-tag v-if="record.warnLevel == '101'" color="green">低风险</a-tag>
+                    <a-tag v-else-if="record.warnLevel == '102'" color="#FF5812">一般风险</a-tag>
+                    <a-tag v-else-if="record.warnLevel == '103'" color="#FF5812">较大风险</a-tag>
+                    <a-tag v-else-if="record.warnLevel == '104'" color="#FF5812">重大风险</a-tag>
                     <a-tag v-else-if="record.warnLevel == '201'" color="#FF0000">报警</a-tag>
                     <a-tag v-else-if="record.warnLevel == '10000'" color="#FF5812">数据超限</a-tag>
                     <a-tag v-else-if="record.warnLevel == '1001'" color="default">网络中断</a-tag>

+ 3 - 2
src/views/vent/monitorManager/deviceMonitor/components/network/index.vue

@@ -261,7 +261,7 @@ const rate3 = ref(95 + '')
 const analysisDetailDataList = [
   {
     code: 'totallength',
-    name: '通风巷道规模(m)',
+    name: '通风巷道总长(m)',
     icon: 'path-icon1'
   },
   {
@@ -480,7 +480,8 @@ onUnmounted(() => {
     display: flex;
     justify-content: space-between;
     height: calc(60%);
-
+    position: relative;
+    
     .lr-box {
       width: 374px;
       margin-top: 10px;

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

@@ -52,7 +52,7 @@ export const sensorColumns: BasicColumn[] = [
     align: 'center',
   },
   {
-    title: '风量',
+    title: '风量(m³)',
     dataIndex: 'm3',
     width: 100,
     align: 'center',

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

@@ -282,7 +282,7 @@ export const chartsColumns = [
     legend: '瓦斯浓度',
     seriesName: '瓦斯浓度(%)',
     ymax: 100,
-    yname: '',
+    yname: '%',
     linetype: 'bar',
     yaxispos: 'left',
     color: '#cd5fff',

+ 206 - 175
src/views/vent/monitorManager/fanLocalMonitor/index.vue

@@ -8,7 +8,7 @@
         <div class="elementTag" id="inputBox">
           <div class="elementContent">
             <p>风筒入口风速:{{ selectData.windSpeed1 ? selectData.windSpeed1 : '-' }}</p>
-            <p>风筒入口瓦斯浓度 {{ selectData.gas1 ? selectData.gas1 : '-' }}</p>
+            <p>风筒入口瓦斯浓度 {{ selectData.gas2 ? selectData.gas2 : '-' }}</p>
           </div>
         </div>
         <div class="elementTag" id="outBox">
@@ -55,122 +55,144 @@
       {{ selectData.supplyAirAddr||selectData.stationname }}
     </div>
     <div class="data-show-box" v-if="!loading">
-      <div class="data-item">
-        <div class="item-header">设备状态</div>
-        <div class="item-container">
-          <div class="tab">
-            <div class="tab-item" :class="{ 'tab-item-active-r': warningMonitorRowIndex === 0 }" @click="selectDevice('warningMonitorRowIndex', 0)"
-              >1#风机</div
-            >
-            <div class="tab-item" :class="{ 'tab-item-active-r': warningMonitorRowIndex === 1 }" @click="selectDevice('warningMonitorRowIndex', 1)"
-              >2#风机</div
-            >
-          </div>
-          <div class="container-group">
-            <div class="warning-header">
-              <div class="header-item">
-                <div class="header-title">报警总数</div>
-                <div class="header-value">0</div>
-              </div>
-              <div class="header-item">
-                <div class="header-title"> 未处理数</div>
-                <div class="header-value">0</div>
-              </div>
-            </div>
-            <div class="warning-group">
-              <template v-if="selectData.deviceType">
-                <div class="warning-item" v-for="(state, index) in leftColumns" :key="index">
-                  <div class="item-name"><div class="icon"></div> {{ state.title }}</div>
-                  <div v-if="state.dataIndex.startsWith('Fan')">
-                    <div class="signal-item" v-if="warningMonitorRowIndex == 0">
-                      <div
-                        class="signal-round"
-                        :class="{
-                          'signal-round-run': selectData[state.dataIndex.replace('Fan', 'Fan1')],
-                          'signal-round-warning':
-                            selectData[state.dataIndex.replace('Fan', 'Fan1')] !== undefined && !selectData[state.dataIndex.replace('Fan', 'Fan1')],
-                          'signal-round-gry': selectData[state.dataIndex.replace('Fan', 'Fan1')] === undefined,
-                        }"
-                      ></div>
-                      <div class="vent-margin-l-8">{{
-                        selectData[state.dataIndex.replace('Fan', 'Fan1')] === undefined
-                        ? '无状态'
-                        : selectData[state.dataIndex.replace('Fan', 'Fan1')]
-                          ? '正常'
-                          : '异常'
-                      }}</div>
-                    </div>
-                    <div class="signal-item" v-if="warningMonitorRowIndex == 1">
-                      <div
-                        class="signal-round"
-                        :class="{
-                          'signal-round-run': selectData[state.dataIndex.replace('Fan', 'Fan2')],
-                          'signal-round-warning':
-                            selectData[state.dataIndex.replace('Fan', 'Fan2')] !== undefined && !selectData[state.dataIndex.replace('Fan', 'Fan2')],
-                          'signal-round-gry': selectData[state.dataIndex.replace('Fan', 'Fan2')] === undefined,
-                        }"
-                      ></div>
-                      <div class="vent-margin-l-8">{{
-                        selectData[state.dataIndex.replace('Fan', 'Fan2')] === undefined
-                        ? '无状态'
-                        : selectData[state.dataIndex.replace('Fan', 'Fan2')]
-                          ? '正常'
-                          : '异常'
-                      }}</div>
-                    </div>
-                  </div>
-                  <div v-else>
-                    <div class="signal-item">
-                      <div
-                        class="signal-round vent-margin-l-8"
-                        :class="{
-                                'signal-round-run': selectData[state.dataIndex],
-                                'signal-round-warning': selectData[state.dataIndex] !== undefined && !selectData[state.dataIndex],
-                                'signal-round-gry': selectData[state.dataIndex] === undefined,
-                              }"
-                      ></div>
-                      <div class="vent-margin-l-8">{{ selectData[state.dataIndex] === undefined ? '无状态' : selectData[state.dataIndex] ? '正常' : '异常' }}</div>
-                    </div>
-                  </div>
-                </div>
-              </template>
-            </div>
-          </div>
-        </div>
-      </div>
+      
       <div class="data-item"> 
           <div class="item-header">环境监测</div>
           <div class="item-container">
             <div class="tab">
-              <div class="tab-item" :class="{ 'tab-item-active-r': dataMonitorRowIndex == 0 }" @click="selectDevice('dataMonitorRowIndex', 0)"
+              <div class="tab-item" :class="{ 'tab-item-active-r': warningMonitorRowIndex === 0 }" @click="selectDevice('warningMonitorRowIndex', 0)"
                 >1#风机</div
               >
-              <div class="tab-item" :class="{ 'tab-item-active-r': dataMonitorRowIndex == 1 }" @click="selectDevice('dataMonitorRowIndex', 1)"
+              <div class="tab-item" :class="{ 'tab-item-active-r': warningMonitorRowIndex === 1 }" @click="selectDevice('warningMonitorRowIndex', 1)"
                 >2#风机</div
               >
             </div>
-            <div class="container-group container-group-l" >
-              <template v-if="!loading">
-                <div class="container-item" v-for="(data, index) in rightColumns" :key="index">
-                  <div class="item-icon">
-                    <SvgIcon class="icon-style" size="18" name="temperature" />
-                  </div>
-                  <div class="item-name">{{ data.title }}</div>
-                  <div v-if="data.dataIndex.startsWith('Fan')">
-                    <div class="item-value" v-if="dataMonitorRowIndex == 0">{{
-                      selectData[data.dataIndex.replace('Fan', 'Fan1')] ? selectData[data.dataIndex.replace('Fan', 'Fan1')] : '-'
+            <div class="container-group">
+              <div class="warning-header">
+                <div class="header-item">
+                  <div class="header-title">报警总数</div>
+                  <div class="header-value">0</div>
+                </div>
+                <div class="header-item">
+                  <div class="header-title"> 未处理数</div>
+                  <div class="header-value">0</div>
+                </div>
+              </div>
+              <div class="warning-group">
+                <template v-if="selectData.deviceType">
+                  <!-- <div class="warning-item" v-for="(state, index) in leftColumns" :key="index">
+                <div class="item-name"><div class="icon"></div> {{ state.title }}</div>
+                <div v-if="state.dataIndex.startsWith('Fan')">
+                  <div class="signal-item" v-if="warningMonitorRowIndex == 0">
+                    <div
+                      class="signal-round"
+                      :class="{
+                        'signal-round-run': selectData[state.dataIndex.replace('Fan', 'Fan1')],
+                        'signal-round-warning':
+                          selectData[state.dataIndex.replace('Fan', 'Fan1')] !== undefined && !selectData[state.dataIndex.replace('Fan', 'Fan1')],
+                        'signal-round-gry': selectData[state.dataIndex.replace('Fan', 'Fan1')] === undefined,
+                      }"
+                    ></div>
+                    <div class="vent-margin-l-8">{{
+                      selectData[state.dataIndex.replace('Fan', 'Fan1')] === undefined
+                      ? '无状态'
+                      : selectData[state.dataIndex.replace('Fan', 'Fan1')]
+                        ? '正常'
+                        : '异常'
                     }}</div>
-                    <div class="item-value" v-if="dataMonitorRowIndex == 1">{{
-                      selectData[data.dataIndex.replace('Fan', 'Fan2')] ? selectData[data.dataIndex.replace('Fan', 'Fan2')] : '-'
+                  </div>
+                  <div class="signal-item" v-if="warningMonitorRowIndex == 1">
+                    <div
+                      class="signal-round"
+                      :class="{
+                        'signal-round-run': selectData[state.dataIndex.replace('Fan', 'Fan2')],
+                        'signal-round-warning':
+                          selectData[state.dataIndex.replace('Fan', 'Fan2')] !== undefined && !selectData[state.dataIndex.replace('Fan', 'Fan2')],
+                        'signal-round-gry': selectData[state.dataIndex.replace('Fan', 'Fan2')] === undefined,
+                      }"
+                    ></div>
+                    <div class="vent-margin-l-8">{{
+                      selectData[state.dataIndex.replace('Fan', 'Fan2')] === undefined
+                      ? '无状态'
+                      : selectData[state.dataIndex.replace('Fan', 'Fan2')]
+                        ? '正常'
+                        : '异常'
                     }}</div>
                   </div>
-                  <div v-else>
-                    <div class="item-value">{{ selectData[data.dataIndex] ? selectData[data.dataIndex] : '-' }}</div>
+                </div>
+                <div v-else>
+                  <div class="signal-item">
+                    <div
+                      class="signal-round vent-margin-l-8"
+                      :class="{
+                              'signal-round-run': selectData[state.dataIndex],
+                              'signal-round-warning': selectData[state.dataIndex] !== undefined && !selectData[state.dataIndex],
+                              'signal-round-gry': selectData[state.dataIndex] === undefined,
+                            }"
+                    ></div>
+                    <div class="vent-margin-l-8">{{ selectData[state.dataIndex] === undefined ? '无状态' : selectData[state.dataIndex] ? '正常' : '异常' }}</div>
                   </div>
                 </div>
-              </template>
+              </div> -->
+                  <div class="container-item" v-for="(data, index) in leftColumns" :key="index">
+                      <div class="item-icon">
+                        <!-- <SvgIcon class="icon-style" size="18" name="temperature" /> -->
+                        <CaretRightOutlined class="icon-style" />
+                      </div>
+                      <div class="item-name">{{ data.title }}</div>
+                      <div v-if="data.dataIndex.startsWith('Fan')">
+                        <div class="item-value" v-if="dataMonitorRowIndex == 0">{{
+                          selectData[data.dataIndex.replace('Fan', 'Fan1')] ? selectData[data.dataIndex.replace('Fan', 'Fan1')] : '-'
+                        }}</div>
+                        <div class="item-value" v-if="dataMonitorRowIndex == 1">{{
+                          selectData[data.dataIndex.replace('Fan', 'Fan2')] ? selectData[data.dataIndex.replace('Fan', 'Fan2')] : '-'
+                        }}</div>
+                      </div>
+                      <div v-else>
+                        <div class="item-value">{{ selectData[data.dataIndex] ? selectData[data.dataIndex] : '-' }}</div>
+                      </div>
+                  </div>
+                </template>
+              </div>
             </div>
           </div>
+          
+      </div>
+      <div class="data-item">
+        <div class="item-header">设备监测</div>
+        <div class="item-container">
+          <div class="tab">
+            <div class="tab-item" :class="{ 'tab-item-active-r': dataMonitorRowIndex == 0 }" @click="selectDevice('dataMonitorRowIndex', 0)"
+              >1#风机</div
+            >
+            <div class="tab-item" :class="{ 'tab-item-active-r': dataMonitorRowIndex == 1 }" @click="selectDevice('dataMonitorRowIndex', 1)"
+              >2#风机</div
+            >
+          </div>
+          <div class="container-group container-group-l" >
+            <template v-if="!loading">
+              <div class="container-item" v-for="(data, index) in rightColumns" :key="index">
+                <div class="item-icon">
+                  <!-- <SvgIcon class="icon-style" size="18" name="temperature" /> -->
+                  <!-- <StarOutlined  /> -->
+                  <CaretRightOutlined class="icon-style" />
+                </div>
+                <div class="item-name">{{ data.title }}</div>
+                <div v-if="data.dataIndex.startsWith('Fan')">
+                  <div class="item-value" v-if="dataMonitorRowIndex == 0">{{
+                    selectData[data.dataIndex.replace('Fan', 'Fan1')] ? selectData[data.dataIndex.replace('Fan', 'Fan1')] : '-'
+                  }}</div>
+                  <div class="item-value" v-if="dataMonitorRowIndex == 1">{{
+                    selectData[data.dataIndex.replace('Fan', 'Fan2')] ? selectData[data.dataIndex.replace('Fan', 'Fan2')] : '-'
+                  }}</div>
+                </div>
+                <div v-else>
+                  <div class="item-value">{{ selectData[data.dataIndex] ? selectData[data.dataIndex] : '-' }}</div>
+                </div>
+              </div>
+            </template>
+          </div>
+        </div>
       </div>
     </div>
     <div class="bottom-tabs-box" @mousedown="setDivHeight($event, 170, scroll, 180)">
@@ -191,18 +213,14 @@
             <div class="tab-item" v-if="activeKey === '2'">
               <div class="vent-flex-row-between" style="height: 100%">
                 <BarSingle
-                  :xAxisData="[
-                    { key: 'T1', valueKey: 'gas1' },
-                    { key: 'T2', valueKey: 'gas2' },
-                    { key: 'T3', valueKey: 'gas3' },
-                    { key: 'T4', valueKey: 'gas4' },
-                  ]"
+                  :xAxisData="xAxisDataGas"
                   :dataSource="dataSource[selectRowIndex]"
                   height="100%"
                   :chartsColumns="chartsColumns"
                   style="flex: 3"
                 />
                 <BarSingle
+                  v-if="globalConfig?.simulatedPassword"
                   :xAxisData="[
                     { key: 'F1', valueKey: 'windQuantity1' },
                     { key: 'F2', valueKey: 'windQuantity2' },
@@ -351,6 +369,7 @@
   import { getDictItemsByCode } from '/@/utils/dict';
   import { message } from 'ant-design-vue';
   import { TableAction } from '/@/components/Table';
+  import { CaretRightOutlined } from '@ant-design/icons-vue';
 
   const globalConfig = inject('globalConfig');
 
@@ -484,7 +503,7 @@
   // 默认数据右边监测的是1#风机
   const warningMonitorRowIndex = ref(0);
 
-
+  const xAxisDataGas = ref([])
   // 设备数据
   const controlType = ref(1);
   const modalType = ref('fm');
@@ -594,18 +613,18 @@
             MonitorDataTable.value.setSelectedRowKeys(dataSource.value[0]['deviceID'])
           }
         }
-    
-        if(dataSource.value.length > 0 && dataSource.value[selectRowIndex.value] ){
+        deviceType.value = dataSource.value[selectRowIndex.value]['deviceType']
+        for (const key in selectData) {
+          selectData[key] = ''
+        }
+        if(dataSource.value.length > 0 && dataSource.value[selectRowIndex.value] && dataSource.value[selectRowIndex.value]['netStatus'] == 1){
           Object.assign(selectData, dataSource.value[selectRowIndex.value])
-          deviceType.value = selectData['deviceType']
           addText(selectData);
-          // playAnimation(data, selectData.maxarea);
           playSmoke(selectData)
         }else{
-          Object.assign(selectData, initData)
-          deviceType.value = ''
+          Object.assign(selectData, dataSource.value[selectRowIndex.value])
         }
-        
+
         if (timer) {
           timer = null;
         }
@@ -641,13 +660,25 @@
       if (data['Fan1StartStatus'] == 1) {
         mainWindIsShow1.value = 'open';
         mainWindIsShow2.value = 'stop';
+        selectDevice('warningMonitorRowIndex', 0)
+        selectDevice('dataMonitorRowIndex', 0)
       } else if (data['Fan2StartStatus'] == 1) {
         mainWindIsShow2.value = 'open';
         mainWindIsShow1.value = 'stop';
+        selectDevice('warningMonitorRowIndex', 1)
+        selectDevice('dataMonitorRowIndex', 1)
       }
+
+      const xAxisDataGasArr = []
+      for (const key in selectData) {
+        if (key.startsWith('gas') && key.length < 5) {
+          xAxisDataGasArr.push({key: 'T'+ key.substring(3), valueKey: key })
+        }
+      }
+      xAxisDataGas.value = xAxisDataGasArr
     })
     
-    // addCssText();
+    
     return;
   };
 
@@ -927,61 +958,61 @@
           max-height: 440px;
           overflow-y: auto;
         }
-        .container-group-l {
-          .container-item {
+        .container-item {
+          width: 100%;
+          height: 60px;
+          display: flex;
+          padding: 10px 0 0 20px;
+          margin-bottom: 5px;
+          position: relative;
+          background: url('/@/assets/images/vent/plane-bottom.png') no-repeat;
+          background-size: auto;
+          background-position: bottom;
+          &::before {
+            content: '';
+            display: block;
             width: 100%;
-            height: 60px;
-            display: flex;
-            padding: 10px 0 0 20px;
-            margin-bottom: 5px;
+            height: 5px;
+            position: absolute;
+            top: 62px;
+            left: 0;
+            background-color: #73f4ff66;
+            backdrop-filter: blur(5px);
+          }
+          .item-icon {
+            width: 54px;
+            height: 45px;
+            background: url('/@/assets/images/vent/plane-icon-bg.png') no-repeat;
+            background-size: cover;
+            .icon-style {
+              font-size: 18px;
+              margin: 10px 0 0 20px;
+              color: #ffc800;
+            }
+          }
+          .item-name {
+            width: 180px;
+            line-height: 60px;
+          }
+          .item-value {
             position: relative;
-            background: url('/@/assets/images/vent/plane-bottom.png') no-repeat;
-            background-size: auto;
-            background-position: bottom;
+            height: 26px;
+            line-height: 24px;
+            margin: 15px 0;
+            text-align: center;
+            width: 80px;
+            border: 1px solid #00f5fe;
+            border-radius: 13px;
+            background: linear-gradient(to right, #00f5fe44, #0090ff44);
             &::before {
+              width: 6px;
+              height: 6px;
               content: '';
-              display: block;
-              width: 100%;
-              height: 5px;
               position: absolute;
-              top: 62px;
-              left: 0;
-              background-color: #73f4ff66;
-              backdrop-filter: blur(5px);
-            }
-            .item-icon {
-              width: 54px;
-              height: 45px;
-              background: url('/@/assets/images/vent/plane-icon-bg.png') no-repeat;
-              background-size: cover;
-              .icon-style {
-                margin: 10px 0 0 18px;
-              }
-            }
-            .item-name {
-              width: 180px;
-              line-height: 60px;
-            }
-            .item-value {
-              position: relative;
-              height: 26px;
-              line-height: 24px;
-              margin: 15px 0;
-              text-align: center;
-              width: 80px;
-              border: 1px solid #00f5fe;
-              border-radius: 13px;
-              background: linear-gradient(to right, #00f5fe44, #0090ff44);
-              &::before {
-                width: 6px;
-                height: 6px;
-                content: '';
-                position: absolute;
-                left: -3px;
-                top: 8px;
-                background: #ffa500;
-                border-radius: 3px;
-              }
+              left: -3px;
+              top: 8px;
+              background: #ffa500;
+              border-radius: 3px;
             }
           }
         }
@@ -1015,15 +1046,15 @@
         .warning-group {
           padding: 0 10px;
           position: relative;
-          &::before {
-            content: '';
-            display: block;
-            width: 1px;
-            height: 100%;
-            position: absolute;
-            left: 12px;
-            background-color: #00f5fe;
-          }
+          // &::before {
+          //   content: '';
+          //   display: block;
+          //   width: 1px;
+          //   height: 100%;
+          //   position: absolute;
+          //   left: 12px;
+          //   background-color: #00f5fe;
+          // }
           .warning-item {
             display: flex;
             flex-direction: row;

+ 34 - 32
src/views/vent/monitorManager/gasPumpMonitor/components/gasPumpHome.vue

@@ -17,6 +17,7 @@
     </div>
   </div>
   <div class="monitor-container">
+    <div v-if="selectData['netStatus'] == 0" class="device-state">网络断开</div>
     <div class="lr left-box">
       <div class="left-container">
         <div class="monitor-box">
@@ -29,17 +30,14 @@
                 <div class="parameter-title group-parameter-title"><SvgIcon class="icon" size="14" name="pulp-title"/><span>{{ key }}#抽采泵</span></div>
                 <div class="input-box">
                   <div v-for="(item, index) in pumpMonitorData" class="input-item" :key="index">
-                    <!-- <template v-if="selectData[item.code.replace('CentrifugalPump', `CentrifugalPump${key}`)] != undefined"> -->
-                    <template>
-                      <div class="title">{{ item.title }}:</div>
-                      <template v-if="item.type !== 'sign'">
-                        <div class="value">{{ selectData && selectData[item.code.replace('CentrifugalPump', `CentrifugalPump${key}`)] ? formatNum(selectData[item.code.replace('CentrifugalPump', `CentrifugalPump${key}`)]) : '-' }}</div>
-                      </template>
-                      <template v-else>
-                        <div class="value">
-                          <span :class="{ 'signal-round': true, 'signal-round-run': selectData[item.code.replace('CentrifugalPump', `CentrifugalPump${key}`)] == '1', 'signal-round-gry': selectData[item.code.replace('CentrifugalPump', `CentrifugalPump${key}`)] == '0' }"></span>
-                        </div>
-                      </template>
+                    <div class="title">{{ item.title }}:</div>
+                    <template v-if="item.type !== 'sign'">
+                      <div class="value">{{ selectData && selectData[item.code.replace('CentrifugalPump', `CentrifugalPump${key}`)] ? formatNum(selectData[item.code.replace('CentrifugalPump', `CentrifugalPump${key}`)]) : '-' }}</div>
+                    </template>
+                    <template v-else>
+                      <div class="value">
+                        <span :class="{ 'signal-round': true, 'signal-round-run': selectData[item.code.replace('CentrifugalPump', `CentrifugalPump${key}`)] == '1', 'signal-round-gry': selectData[item.code.replace('CentrifugalPump', `CentrifugalPump${key}`)] == '0' }"></span>
+                      </div>
                     </template>
                   </div>
                 </div>
@@ -55,18 +53,15 @@
                 <div class="parameter-title group-parameter-title"><SvgIcon class="icon" size="14" name="pulp-title"/><span>{{ key }}#注水泵</span></div>
                 <div class="input-box">
                   <div v-for="(item, index) in waterPumpData" class="input-item" :key="index">
-                    <template v-if="selectData[item.code.replace('WaterfloodPump', `WaterfloodPump${key}`)] != undefined">
-                      <div class="title">{{ item.title }}:</div>
-                      <template v-if="item.type !== 'sign'">
-                        <div class="value">{{ selectData && selectData[item.code.replace('WaterfloodPump', `WaterfloodPump${key}`)] ? formatNum(selectData[item.code.replace('WaterfloodPump', `WaterfloodPump${key}`)]) : '-' }}</div>
-                      </template>
-                      <template v-else>
-                        <div class="value">
-                          <span :class="{ 'signal-round': true, 'signal-round-run': selectData[item.code.replace('WaterfloodPump', `WaterfloodPump${key}`)], 'signal-round-gry': selectData[item.code.replace('WaterfloodPump', `WaterfloodPump${key}`)]=='0' }"></span>
-                        </div>
-                      </template>
+                    <div class="title">{{ item.title }}:</div>
+                    <template v-if="item.type !== 'sign'">
+                      <div class="value">{{ selectData && selectData[item.code.replace('WaterfloodPump', `WaterfloodPump${key}`)] ? formatNum(selectData[item.code.replace('WaterfloodPump', `WaterfloodPump${key}`)]) : '-' }}</div>
+                    </template>
+                    <template v-else>
+                      <div class="value">
+                        <span :class="{ 'signal-round': true, 'signal-round-run': selectData[item.code.replace('WaterfloodPump', `WaterfloodPump${key}`)], 'signal-round-gry': selectData[item.code.replace('WaterfloodPump', `WaterfloodPump${key}`)] == '0' }"></span>
+                      </div>
                     </template>
-
                   </div>
                 </div>
               </div>
@@ -81,16 +76,14 @@
                 <div class="parameter-title group-parameter-title"><SvgIcon class="icon" size="14" name="pulp-title"/><span>{{ key }}#排水泵</span></div>
                 <div class="input-box">
                   <div v-for="(item, index) in dewateringPumpData" class="input-item" :key="index">
-                    <template v-if="selectData[item.code.replace('DewateringPump', `DewateringPump${key}`)] != undefined">
-                      <div class="title">{{ item.title }}:</div>
-                      <template v-if="item.type !== 'sign'">
-                        <div class="value">{{ selectData && selectData[item.code.replace('DewateringPump', `DewateringPump${key}`)] ? formatNum(selectData[item.code.replace('DewateringPump', `DewateringPump${key}`)]) : '-' }}</div>
-                      </template>
-                      <template v-else>
-                        <div class="value">
-                          <span :class="{ 'signal-round': true, 'signal-round-run': selectData[item.code.replace('DewateringPump', `DewateringPump${key}`)], 'signal-round-gry': selectData[item.code.replace('DewateringPump', `DewateringPump${key}`)] == '0' }"></span>
-                        </div>
-                      </template>
+                    <div class="title">{{ item.title }}:</div>
+                    <template v-if="item.type !== 'sign'">
+                      <div class="value">{{ selectData && selectData[item.code.replace('DewateringPump', `DewateringPump${key}`)] ? formatNum(selectData[item.code.replace('DewateringPump', `DewateringPump${key}`)]) : '-' }}</div>
+                    </template>
+                    <template v-else>
+                      <div class="value">
+                        <span :class="{ 'signal-round': true, 'signal-round-run': selectData[item.code.replace('DewateringPump', `DewateringPump${key}`)], 'signal-round-gry': selectData[item.code.replace('DewateringPump', `DewateringPump${key}`)] == '0' }"></span>
+                      </div>
                     </template>
                   </div>
                 </div>
@@ -382,6 +375,15 @@ onUnmounted(() => {
   
 }
 
+.device-state{
+  width: 100%;
+  position: absolute;
+  top: 20px;
+  color: #e90000;
+  display: flex;
+  justify-content: center;
+  font-size: 20px;
+}
 
 .lr{
   margin-top: 0 !important;

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

@@ -109,7 +109,7 @@ class Fm3 {
         y: 100,
       },
       {
-        text: `通行高度(m):`,
+        text: `通行高度(m):`,
         font: 'normal 30px Arial',
         color: '#00FF00',
         strokeStyle: '#007400',
@@ -125,7 +125,7 @@ class Fm3 {
         y: 155,
       },
       {
-        text: `通行宽度(m): `,
+        text: `通行宽度(m): `,
         font: 'normal 30px Arial',
         color: '#00FF00',
         strokeStyle: '#007400',

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

@@ -109,7 +109,7 @@ class Fm1 {
         y: 100,
       },
       {
-        text: `通行高度(m):`,
+        text: `通行高度(m):`,
         font: 'normal 30px Arial',
         color: '#00FF00',
         strokeStyle: '#007400',
@@ -125,7 +125,7 @@ class Fm1 {
         y: 155,
       },
       {
-        text: `通行宽度(m): `,
+        text: `通行宽度(m): `,
         font: 'normal 30px Arial',
         color: '#00FF00',
         strokeStyle: '#007400',

+ 8 - 8
src/views/vent/monitorManager/gateMonitor/index.vue

@@ -25,8 +25,8 @@
         <div class="button-box" @click="playAnimation(2)">关闭前门</div>
         <div class="button-box" @click="playAnimation(3)">打开后门</div>
         <div class="button-box" @click="playAnimation(4)">关闭后门</div>
-        <div class="button-box" @click="playAnimation(5)">打开前后门</div>
-        <div class="button-box" @click="playAnimation(6)">关闭前后门</div>
+        <div class="button-box" @click="playAnimation(5)">同时打开</div>
+        <div class="button-box" @click="playAnimation(6)">同时关闭</div>
       </div>
       <div class="top-right row">
         <div class="control-type row">
@@ -99,10 +99,10 @@
                     color="default">行人风门</span>
                 </template>
                 <template v-else-if="column.dataIndex === 'warnLevel'">
-                  <a-tag v-if="record.warnLevel == '101'" color="green">蓝色预警</a-tag>
-                  <a-tag v-else-if="record.warnLevel == '102'" color="#FF5812">黄色预警</a-tag>
-                  <a-tag v-else-if="record.warnLevel == '103'" color="#FF5812">橙色预警</a-tag>
-                  <a-tag v-else-if="record.warnLevel == '104'" color="#FF5812">红色预警</a-tag>
+                  <a-tag v-if="record.warnLevel == '101'" color="green">低风险</a-tag>
+                  <a-tag v-else-if="record.warnLevel == '102'" color="#FF5812">一般风险</a-tag>
+                  <a-tag v-else-if="record.warnLevel == '103'" color="#FF5812">较大风险</a-tag>
+                  <a-tag v-else-if="record.warnLevel == '104'" color="#FF5812">重大风险</a-tag>
                   <a-tag v-else-if="record.warnLevel == '201'" color="#FF0000">报警</a-tag>
                   <a-tag v-else-if="record.warnLevel == '10000'" color="#FF5812">数据超限</a-tag>
                   <a-tag v-else-if="record.warnLevel == '1001'" color="default">网络中断</a-tag>
@@ -122,12 +122,12 @@
               </template>
             </MonitorTable>
           </a-tab-pane>
-          <a-tab-pane key="2" tab="实时曲线图" force-render>
+          <!-- <a-tab-pane key="2" tab="实时曲线图" force-render>
             <div class="tab-item" v-if="activeKey === '2'">
               <DeviceEcharts chartsColumnsType="gate_chart" xAxisPropType="strname" :dataSource="dataSource" height="100%"
                 :chartsColumns="chartsColumns" :device-list-api="list" device-type="gate" />
             </div>
-          </a-tab-pane>
+          </a-tab-pane> -->
           <a-tab-pane key="3" tab="历史数据">
             <div class="tab-item" v-if="activeKey === '3'">
               <HistoryTable columns-type="gate" device-type="gate" :device-list-api="getTableList"

+ 21 - 8
src/views/vent/monitorManager/mainFanMonitor/index.vue

@@ -81,7 +81,7 @@
     </div>
     <div class="data-show-box">
       <div class="data-item">
-        <div class="item-header">环境监测</div>
+        <div class="item-header">设备监测</div>
         <div class="item-container">
           <div class="tab">
             <div class="tab-item" :class="{ 'tab-item-active-r': dataMonitorRowIndex == 0 }" @click="selectDevice('dataMonitorRowIndex', 0)"
@@ -115,7 +115,7 @@
         </div>
       </div>
       <div class="data-item">
-        <div class="item-header">设备状态</div>
+        <div class="item-header">设备报警</div>
         <div class="item-container">
           <div class="tab">
             <div class="tab-item" :class="{ 'tab-item-active-r': warningMonitorRowIndex === 0 }" @click="selectDevice('warningMonitorRowIndex', 0)"
@@ -312,7 +312,7 @@
 <script setup lang="ts">
   import { ExclamationCircleFilled } from '@ant-design/icons-vue';
   import FanEchrats from '/@/views/vent/monitorManager/mainFanMonitor/fanEchrats.vue';
-  import { onBeforeMount, computed, ref, onMounted, inject, onUnmounted, reactive, toRaw, watch } from 'vue';
+  import { onBeforeMount, computed, ref, onMounted, inject, onUnmounted, reactive, toRaw, watch, nextTick } from 'vue';
   import GroupMonitorTable from '../comment/GroupMonitorTable.vue';
   import HistoryTable from '../comment/HistoryTable.vue';
   import AlarmHistoryTable from '../comment/AlarmHistoryTable.vue';
@@ -450,7 +450,9 @@
             MonitorDataTable.value.setSelectedRowKeys(dataSource.value[0]['deviceID'])
           }
         }
-        lodash.omit(selectData, lodash.keys(selectData))
+        for (const key in selectData) {
+          selectData[key] = ''
+        }
         Object.assign(selectData, deviceBaseList.value, dataSource.value[selectRowIndex.value]);
         if (selectData['Fan1StartStatus'] == 1 && selectData['Fan2StartStatus'] == 0) {
           frontMonitorIsShow.value = true
@@ -505,10 +507,21 @@
     selectRowIndex.value = baseDataIndex;
     const type = 'mainWindRect';
     // const type = baseDataIndex > 0 ? 'fm' : 'fc';
-    setModelType(type).then(() => {
-      loading.value = false;
-    });
-    // const data = dataSource.value[baseDataIndex];
+    nextTick(() => {
+      setModelType(type).then(() => {
+        loading.value = false;
+      });
+
+      const data = dataSource.value[selectRowIndex.value];
+      if (data['Fan1StartStatus'] == 1) {
+        selectDevice('warningMonitorRowIndex', 0)
+        selectDevice('dataMonitorRowIndex', 0)
+      } else if (data['Fan2StartStatus'] == 1) {
+        selectDevice('warningMonitorRowIndex', 1)
+        selectDevice('dataMonitorRowIndex', 1)
+      }
+    })
+    
     return;
   };
 

+ 18 - 198
src/views/vent/monitorManager/nitrogen/components/nitrogenHome.vue

@@ -3,7 +3,7 @@
     <div v-show="monitorDataGroupFlag == 1" id="compressorCss3D"  class="threejs-Object-CSS compressorCss3D-box"
         style="width: 100%; height: 100%; position: absolute; pointer-events: none; overflow: hidden; z-index: 2; top: 0px; left: 0px">
         <!-- <a-spin :spinning="loading" /> -->
-        <div  v-for="(groupNum, index) in monitorDataGroupNum1" :key="index" class="modal-monitor">
+        <div  v-for="(groupNum, index) in monitorDataGroupNum" :key="index" class="modal-monitor">
           <fourBorderBg :class="`kyj${groupNum}`" :id="`nitrogenMonitor${groupNum}`">
             <div class="title">{{ groupNum }}号空压机 </div>
             <div class="monitor-item">
@@ -49,64 +49,17 @@
           </fourBorderBg>
         </div>
     </div>
-    <div v-show="monitorDataGroupFlag == 2" id="compressorCss3D1" class="threejs-Object-CSS compressorCss3D-box"
-        style="width: 100%; height: 100%; position: absolute; pointer-events: none; overflow: hidden; z-index: 3; top: 0px; left: 0px">
-        <div  v-for="(groupNum, index) in monitorDataGroupNum2" :key="index" class="modal-monitor">
-            <fourBorderBg :class="`kyj${groupNum}`" :id="`nitrogenMonitor${groupNum}`">
-              <div class="title">{{ groupNum }}号空压机 </div>
-              <div class="monitor-item">
-                <span class="monitor-title">机头温度:</span>
-                <span class="monitor-val"><span class="val">{{ monitorData[`PRE${groupNum}_CPR_HeadTemp`] ?
-                  monitorData[`PRE${groupNum}_CPR_HeadTemp`] : '-' }}</span><span class="unit"></span>℃</span>
-              </div>
-              <div class="monitor-item">
-                <span class="monitor-title">冷却温度:</span>
-                <span class="monitor-val"><span class="val">{{ monitorData[`PRE${groupNum}_CPR_CoolantTemp`] ?
-                  monitorData[`PRE${groupNum}_CPR_CoolantTemp`] : '-' }}</span><span class="unit">℃</span></span>
-              </div>
-              <div class="monitor-item">
-                <span class="monitor-title">排气温度:</span>
-                <span class="monitor-val"><span class="val">{{ monitorData[`PRE${groupNum}_CPR_ExhaustTemp`] ? monitorData[`PRE${groupNum}_CPR_ExhaustTemp`] : '-' }}</span><span class="unit">℃</span></span>
-              </div>
-              <div class="signal-item">
-                <div class="signal"><span class="monitor-title">运行信号</span><span
-                    :class="{ 'signal-round': true, 'signal-round-run': monitorData[`PRE${groupNum}_MOT_Running`] == '1', 'signal-round-gry': monitorData[`PRE${groupNum}_MOT_Running`] != '1' }"></span>
-                </div>
-                <div class="signal"><span class="monitor-title">故障信号</span><span
-                    :class="{ 'signal-round': true, 'signal-round-warning': monitorData[`PRE${groupNum}_MOT_Fault`] == '1', 'signal-round-gry': monitorData[`PRE${groupNum}_MOT_Fault`] != '1' }"></span>
-                </div>
-              </div>
-            </fourBorderBg>
-            <fourBorderBg :class="`cqg${groupNum}`" :id="`cqgMonitor${groupNum}`">
-              <div class="title">{{ groupNum }}号储气罐 </div>
-              <div class="monitor-item">
-                <span class="monitor-title">气囊温度:</span>
-                <span class="monitor-val"><span class="val">{{ monitorData[`PRE${groupNum}_VLS_Temp`] ?
-                  monitorData[`PRE${groupNum}_VLS_Temp`] : '-' }}</span><span class="unit">℃</span></span>
-              </div>
-              <!-- <div class="monitor-item">
-              <span class="monitor-title">气囊压力<span class="unit"></span>:</span>
-              <span class="monitor-val"><span class="val">{{ monitorData[groupNum - 1] && monitorData[groupNum - 1]['airReceiverPress'] ?
-                monitorData[groupNum - 1]['airReceiverPress'] : '-' }}</span><span class="unit">Mpa</span></span>
-            </div>
-            <div class="monitor-item">
-              <span class="monitor-title">气囊流量<span class="unit"></span>:</span>
-              <span class="monitor-val"><span class="val">{{ monitorData[groupNum - 1] && monitorData[groupNum - 1]['airReceiverFlow'] ?
-                monitorData[groupNum - 1]['airReceiverFlow'] : '-' }}</span><span class="unit">m³/k</span></span>
-            </div> -->
-            </fourBorderBg>
-          </div>
-    </div>
     <div class="nitrogen-home">
-      <div style="position: absolute; color: #fff; top: 30px; pointer-events: auto; display: flex;">
+      <!-- <div style="position: absolute; color: #fff; top: 30px; pointer-events: auto; display: flex;">
         <span class="tab-button-box" :class="{'tab-button-box-active': monitorDataGroupFlag == 1}" @click="setMonitorGroupNum(monitorDataGroupNum1, 1)">压风系统1</span>
         <span class="tab-button-box" :class="{ 'tab-button-box-active': monitorDataGroupFlag == 2 }" @click="setMonitorGroupNum(monitorDataGroupNum2, 2)">压风系统2</span>
-      </div>
+      </div> -->
       <div class="total-data">
         <div class="item">总流量(m³/min):<span class="val">{{ monitorData[`PreSys_TotalOutPipeFlow${monitorDataGroupFlag}`] ? monitorData[`PreSys_TotalOutPipeFlow${monitorDataGroupFlag}`] : '-' }}</span></div>
         <div class="item">总压力(bar):<span class="val">{{ monitorData[`PreSys_TotalOutPipePre${monitorDataGroupFlag}`] ? monitorData[`PreSys_TotalOutPipePre${monitorDataGroupFlag}`] : '-' }}</span></div>
       </div>
       <div class="nitrogen-container">
+        <div v-if="monitorData['netStatus'] == 0" class="device-state">网络断开</div>
         <div class="top-box">
           <!-- 左边监测数据 -->
           <div class="lr-box left-box">
@@ -209,10 +162,10 @@ import fourBorderBg from '../../../comment/components/fourBorderBg.vue'
 import { mountedThree, destroy, setModelType, clearCssText } from '../nitrogen.threejs'
 import { list } from '../nitrogen.api'
 import ventBox1 from '/@/components/vent/ventBox1.vue'
-import { monitorDataGroupNum1, monitorDataGroupNum2, airCompressorState, showMonitorData, monitorData } from '../nitrogen.data'
+import { monitorDataGroupNum1, monitorDataGroupNum2, monitorDataGroupNum3, airCompressorState, showMonitorData, monitorData } from '../nitrogen.data'
 
 const loading = ref(true)
-const monitorDataGroupNum = ref(monitorDataGroupNum1)
+const monitorDataGroupNum = ref(4)
 const monitorDataGroupFlag = ref(1)
 const kyjs = ['1号空压机', '2号空压机', '3号空压机', '4号空压机'];
 const cqgs = ['1号储气罐', '2号储气罐', '3号储气罐', '4号储气罐'];
@@ -226,7 +179,7 @@ async function getMonitor(flag?) {
       if (timer) {
         timer = null;
       }
-      await getMonitor();
+      await getMonitor(false);
     }, flag ? 0 : 1000);
   }
 };
@@ -234,142 +187,6 @@ async function getMonitor(flag?) {
 async function getDataSource() {
   const res = await list({ devicetype: 'forcFan', pagetype: 'normal' });
   let dataSource = res.msgTxt[0].datalist[0];
-  // dataSource =  
-  //   {
-  //     "msgType": null,
-  //     "deviceID": "1705212847586627592",
-  //     "strname": "压风机系统",
-  //     "strinstallpos": "压风机系统",
-  //     "fsectarea": "null",
-  //     "stationname": "压风机系统分站",
-  //     "deviceType": "forcFan",
-  //     "typeName": null,
-  //     "netStatus": 1,
-  //     "warnFlag": 0,
-  //     "warnLevel": null,
-  //     "warnLevel_str": null,
-  //     "warnTime": null,
-  //     "readTime": "2023-10-24 08:47:27",
-  //     "warnDes": "",
-  //     "frontGateOpenCtrl": null,
-  //     "rearGateOpenCtrl": null,
-  //     "readData": {
-  //       "PRE1_MOT_PhaseATemp": "526",
-  //       "PRE3_CPR_CoolantTemp": "12",
-  //       "PRE4_CPR_HeadTemp": "13",
-  //       "PRE2_MOT_PhaseATempAlarm": "0",
-  //       "PRE5_MOT_Fault": "0",
-  //       "PRE4_MOT_PhaseATempStop": "0",
-  //       "PRE4_CPR_LoadPre": "65",
-  //       "PRE5_CPR_LoadPre": "62",
-  //       "PRE4_MOT_CtrlMode": "1",
-  //       "PRE2_CPR_LoadorUnload": "1",
-  //       "PRE3_MOT_PhaseBTemp": "133",
-  //       "PRE1_CPR_ExhaustPre": "66",
-  //       "PRE1_MOT_PhaseATempAlarm": "0",
-  //       "PRE5_CPR_UnLoadPre": "69",
-  //       "PRE4_MOT_PhaseATemp": "129",
-  //       "PRE5_MOT_PhaseCTemp": "685",
-  //       "PRE5_MOT_PhaseATemp": "681",
-  //       "PRE5_VLS_Temp": "590",
-  //       "PRE1_CPR_LoadTime": "8344",
-  //       "PRE2_CPR_LoadTime": "5553",
-  //       "PRE4_CPR_LoadorUnload": "0",
-  //       "PRE5_MOT_PhaseATempAlarm": "0",
-  //       "PRE3_CPR_LoadTime": "4511",
-  //       "PRE5_CPR_LoadTime": "6032",
-  //       "PRE1_MOT_PhaseATempStop": "0",
-  //       "PRE2_MOT_CompProtFault": "0",
-  //       "PRE5_MOT_PhaseATempStop": "0",
-  //       "PRE3_MOT_PhaseATempStop": "0",
-  //       "PRE1_VLS_Temp": "436",
-  //       "PRE2_CPR_ExhaustPre": "71",
-  //       "PRE5_MOT_CtrlMode": "1",
-  //       "PRE3_CPR_ExhaustTemp": "10",
-  //       "PRE3_MOT_TotalRunTime": "5342",
-  //       "P RE2_MOT_PhaseATemp": "541",
-  //       "PRE4_MOT_PhaseCTemp": "130",
-  //       "PRE4_MOT_PhaseATempAlarm": "0",
-  //       "timestamp": "1698108447720",
-  //       "PRE3_VLS_Temp": "219",
-  //       "PRE1_HostorLoc": "0",
-  //       "PRE2_MOT_Running": "1",
-  //       "PRE1_CPR_LoadPre": "65",
-  //       "PRE1_MOT_Running": "1",
-  //       "PRE4_MOT_Fault": "0",
-  //       "PRE2_CPR_LoadPre": "65",
-  //       "PRE3_MOT_Running": "0",
-  //       "PRE4_MOT_Running": "0",
-  //       "PRE3_CPR_LoadPre": "65",
-  //       "PRE1_MOT_CtrlMode": "1",
-  //       "PRE3_MOT_CtrlMode": "1",
-  //       "PRE3_CPR_LoadorUnload": "0",
-  //       "PRE2_MOT_PhaseCTemp": "550",
-  //       "PRE1_CPR_CoolantTemp": "71",
-  //       "PRE1_MOT_PhaseBTemp": "539",
-  //       "PRE3_MOT_PhaseATempAlarm": "0",
-  //       "PRE5_MOT_Running": "1",
-  //       "PRE1_MOT_Fault": "0",
-  //       "PRE4_CPR_ExhaustPre": "66",
-  //       "PRE4_CPR_CoolantTemp": "12",
-  //       "PRE5_CPR_ExhaustTemp": "76",
-  //       "PRE2_CPR_HeadTemp": "89",
-  //       "PRE3_MOT_PhaseCTemp": "135",
-  //       "PRE4_CPR_LoadTime": "5084",
-  //       "sign": "0",
-  //       "PRE1_CPR_UnLoadPre": "72",
-  //       "PRE4_HostorLoc": "0",
-  //       "PRE4_MOT_CompProtFault": "0",
-  //       "PRE1_CPR_LoadorUnload": "1",
-  //       "PRE3_CPR_ExhaustPre": "68",
-  //       "PRE2_CPR_ExhaustTemp": "77",
-  //       "PRE2_MOT_PhaseATempStop": "0",
-  //       "PRE5_MOT_CompProtFault": "0",
-  //       "PRE2_MOT_Fault": "0",
-  //       "PRE5_MOT_PhaseBTemp": "676",
-  //       "PRE3_MOT_PhaseATemp": "134",
-  //       "PRE4_MOT_PhaseBTemp": "130",
-  //       "PRE2_CPR_CoolantTemp": "66",
-  //       "PRE3_HostorLoc": "0",
-  //       "PRE4_MOT_TotalRunTime": "5104",
-  //       "PRE1_MOT_TotalRunTime": "8416",
-  //       "PRE3_MOT_CompProtFault": "0",
-  //       "PRE3_MOT_Fault": "0",
-  //       "PRE4_CPR_UnLoadPre": "72",
-  //       "PRE1_CPR_HeadTemp": "97",
-  //       "PRE2_HostorLoc": "0",
-  //       "PRE2_MOT_PhaseBTemp": "562",
-  //       "PRE3_CPR_HeadTemp": "13",
-  //       "PRE2_MOT_TotalRunTime": "5586",
-  //       "PRE5_CPR_HeadTemp": "95",
-  //       "PRE3_CPR_UnLoadPre": "72",
-  //       "PRE4_VLS_Temp": "166",
-  //       "PRE5_CPR_CoolantTemp": "70",
-  //       "PRE1_MOT_CompProtFault": "0",
-  //       "PRE5_MOT_TotalRunTime": "7825",
-  //       "PRE2_MOT_CtrlMode": "1",
-  //       "PRE5_CPR_ExhaustPre": "68",
-  //       "PRE1_MOT_PhaseCTemp": "544",
-  //       "PRE5_CPR_LoadorUnload": "1",
-  //       "PRE2_CPR_UnLoadPre": "72",
-  //       "PRE4_CPR_ExhaustTemp": "11",
-  //       "PRE2_VLS_Temp": "445",
-  //       "isRun": "-2",
-  //       "PRE5_HostorLoc": "0",
-  //       "PRE1_CPR_ExhaustTemp": "68"
-  //     },
-  //     "readDataDes": null,
-  //     "summaryHour": [],
-  //     "summaryDay": [],
-  //     "history": [],
-  //     "totalInfo": null,
-  //     "sign": null,
-  //     "cameras": [],
-  //     "links": [],
-  //     "other1": null,
-  //     "other2": null,
-  //     "other3": null
-  //   }
   if(dataSource){
     monitorData.value = Object.assign(dataSource, dataSource.readData);
   }
@@ -386,12 +203,6 @@ async function getDataSource() {
   loading.value = false
 };
 
-function setMonitorGroupNum(num, flag){
-  
-  monitorDataGroupNum.value = num
-  monitorDataGroupFlag.value = flag
-}
-
 function handlerDevice(data) {
   // if (data.length < 1) return
   // handleAirCompressor({ id: data.id, compressRunF1: data.compressRunSigF1 }).then(res => {
@@ -421,7 +232,7 @@ watch(monitorDataGroupFlag, (newVal) => {
 })
 
 onMounted(async () => {
-  mountedThree(monitorDataGroupNum1, monitorDataGroupNum2).then(async() => {
+  mountedThree(monitorDataGroupNum3).then(async() => {
     await getMonitor(true)
     setModelType('compressor1')
   })
@@ -592,7 +403,16 @@ onUnmounted(() => {
     display: flex;
     justify-content: space-between;
     margin-bottom: 100px;
-
+    position: relative;
+    .device-state{
+      width: 100%;
+      position: absolute;
+      top: 20px;
+      color: #e90000;
+      display: flex;
+      justify-content: center;
+      font-size: 20px;
+    }
     .top-box {
       width: 100%;
       padding: 10px;

+ 5 - 1
src/views/vent/monitorManager/nitrogen/index.vue

@@ -1,7 +1,10 @@
 <template>
   <div class="nitrogen-box">
     <customHeader >智能压风管控系统</customHeader>
-    <nitrogenHome v-if="btnActive == 'nitrogen_page'" />
+    <!-- 锦界 -->
+    <!-- <nitrogenHome v-if="btnActive == 'nitrogen_page'" /> -->
+    <!-- 布尔台 -->
+    <nitrogenHome1 v-if="btnActive == 'nitrogen_page'" /> 
     <nitrogenEcharts v-if="btnActive == 'yfj_monitor_echarts'"/>
     <nitrogenHistory v-if="btnActive == 'yfj_history'"/>
     <nitrogenHandleHistory v-if="btnActive == 'yfj_handler_history'"/>
@@ -13,6 +16,7 @@
 <script lang="ts" setup>
 import { ref } from 'vue'
 import nitrogenHome from './components/nitrogenHome.vue'
+import nitrogenHome1 from './components/nitrogenHome1.vue'
 import nitrogenEcharts from './components/nitrogenEcharts.vue'
 import nitrogenHistory from './components/nitrogenHistory.vue'
 import nitrogenHandleHistory from './components/nitrogenHandleHistory.vue'

+ 2 - 2
src/views/vent/monitorManager/windowMonitor/index.vue

@@ -87,7 +87,7 @@
               </template>
             </MonitorTable>
           </a-tab-pane>
-          <a-tab-pane key="2" tab="实时曲线图" force-render>
+          <!-- <a-tab-pane key="2" tab="实时曲线图" force-render>
             <div class="tab-item" v-if="activeKey === '2'">
               <DeviceEcharts
                 chartsColumnsType="window_chart"
@@ -99,7 +99,7 @@
                 device-type="window"
               />
             </div>
-          </a-tab-pane>
+          </a-tab-pane> -->
           <a-tab-pane key="3" tab="历史数据">
             <div class="tab-item" v-if="activeKey === '3'">
               <HistoryTable columns-type="window" device-type="window" :device-list-api="baseList" designScope="window-history" :scroll="scroll"/>

+ 4 - 4
src/views/vent/monitorManager/windrectMonitor/windrect.data.ts

@@ -413,7 +413,7 @@ export const chartsColumns = [
   {
     legend: '风量',
     seriesName: 'm³/min',
-    ymax: 8000,
+    ymax: 10000,
     yname: 'm³/min',
     linetype: 'bar',
     yaxispos: 'left',
@@ -424,9 +424,9 @@ export const chartsColumns = [
   },
   {
     legend: '风速',
-    seriesName: '(m/min)',
-    ymax: 50,
-    yname: 'm/min',
+    seriesName: '(m/s)',
+    ymax: 15,
+    yname: 'm/s',
     linetype: 'bar',
     yaxispos: 'right',
     color: '#cd5fff',