Browse Source

修改bug

hongrunxia 1 year ago
parent
commit
4cebd8ddeb

+ 38 - 27
src/views/vent/monitorManager/alarmMonitor/alarm.data.ts

@@ -522,7 +522,7 @@ export const option = {
     containLabel: true,
   },
   yAxis: {
-    show: false
+    show: false,
   },
 };
 
@@ -557,45 +557,56 @@ export const dustMonitor = [
   },
 ];
 
-
-
 export const fireMonitor = [
   {
-    title: '最高温度(℃)',
+    // title: '最高温度(℃)',
+    title: '温度',
     code: '',
-    level:null,
-    value: 0,
+    level: null,
+    value: '正常',
   },
   {
-    title: 'CO最大值(ppm)',
+    title: '烟雾',
     code: '',
-    level:null,
-    value: 0,
+    level: null,
+    value: '正常',
   },
   {
-    title: 'CH₄最大值(%)',
+    title: '火焰',
     code: '',
-    level:null,
-    value: 0,
-  },
-  {
-    title: 'C₂H₄最大值(ppm)',
-    code: '',
-    level:null,
-    value: 0,
-  },
-  {
-    title: 'CO₂最大值(%)',
-    code: '',
-    level:null,
-    value: 0,
+    level: null,
+    value: '-',
   },
   {
-    title: '上隅角O₂最小值(%)',
+    title: 'CO最大值(ppm)',
     code: '',
-    level:null,
-    value: 0,
+    level: null,
+    value: '-',
   },
+  // {
+  //   title: 'CH₄最大值(%)',
+  //   code: '',
+  //   level:null,
+  //   value: 0,
+  // },
+  // {
+  //   title: 'C₂H₄最大值(ppm)',
+  //   code: '',
+  //   level:null,
+  //   value: 0,
+  // },
+  // {
+  //   title: 'CO₂最大值(%)',
+  //   code: '',
+  //   level:null,
+  //   value: 0,
+  // },
+  // {
+  //   title: '上隅角O₂最小值(%)',
+  //   code: '',
+  //   level:null,
+  //   value: 0,
+  // },
 ];
 export const fireMonitor1 = [
   // {

+ 15 - 14
src/views/vent/monitorManager/alarmMonitor/index.vue

@@ -222,7 +222,7 @@
           <div class="item">
             <div class="icon"></div>
             <div class="data-box" v-for="(item, index) in fireMonitor" :key="index">
-              <div :class="{
+              <!-- <div :class="{
                 'value1': item.level == 0,
                 'value2': item.level == 101,
                 'value3': item.level == 102,
@@ -230,7 +230,8 @@
                 'value5': item.level == 104,
                 'value6': item.level == 201,
                 'value': item.level != 0 && item.level != 101 && item.level != 102 && item.level != 103 && item.level != 104 && item.level != 201,
-              }"> {{ item.value ? item.value : '-' }} </div>
+              }"> {{ item.value ? item.value : '-' }} </div> -->
+              <div class="value1"> {{ item.value ? item.value : '-' }} </div>
               <div class="title">{{ item.title }}</div>
             </div>
           </div>
@@ -416,18 +417,18 @@ async function getList() {
       iconsMonitor[el].level = res.info.devicekindInfo[el].maxLevel;
     }
   });
-  fireMonitor[0].value = res.info.sysInfo.fireS.summaryInfo.external.temperature ? res.info.sysInfo.fireS.summaryInfo.external.temperature.value : '';
-  fireMonitor[0].level = res.info.sysInfo.fireS.summaryInfo.external.temperature ? res.info.sysInfo.fireS.summaryInfo.external.temperature.maxlevel : '';
-  fireMonitor[1].value = res.info.sysInfo.fireS.summaryInfo.external.coval ? res.info.sysInfo.fireS.summaryInfo.external.coval.value : '';
-  fireMonitor[1].level = res.info.sysInfo.fireS.summaryInfo.external.coval ? res.info.sysInfo.fireS.summaryInfo.external.coval.maxlevel : '';
-  fireMonitor[2].value = res.info.sysInfo.fireS.summaryInfo.external.chval ? res.info.sysInfo.fireS.summaryInfo.external.chval.value : '';
-  fireMonitor[2].level = res.info.sysInfo.fireS.summaryInfo.external.chval ? res.info.sysInfo.fireS.summaryInfo.external.chval.maxlevel : '';
-  fireMonitor[3].value = res.info.sysInfo.fireS.summaryInfo.external.ch2val ? res.info.sysInfo.fireS.summaryInfo.external.ch2val.value : '';
-  fireMonitor[3].level = res.info.sysInfo.fireS.summaryInfo.external.ch2val ? res.info.sysInfo.fireS.summaryInfo.external.ch2val.maxlevel : '';
-  fireMonitor[4].value = res.info.sysInfo.fireS.summaryInfo.external.co2val ? res.info.sysInfo.fireS.summaryInfo.external.co2val.value : '';
-  fireMonitor[4].level = res.info.sysInfo.fireS.summaryInfo.external.co2val ? res.info.sysInfo.fireS.summaryInfo.external.co2val.maxlevel : '';
-  fireMonitor[5].value = res.info.sysInfo.fireS.summaryInfo.external.o2val ? res.info.sysInfo.fireS.summaryInfo.external.o2val.value : '';
-  fireMonitor[5].level = res.info.sysInfo.fireS.summaryInfo.external.o2val ? res.info.sysInfo.fireS.summaryInfo.external.o2val.maxlevel : '';
+  // fireMonitor[0].value = res.info.sysInfo.fireS.summaryInfo.external.temperature ? res.info.sysInfo.fireS.summaryInfo.external.temperature.value : '';
+  // fireMonitor[0].level = res.info.sysInfo.fireS.summaryInfo.external.temperature ? res.info.sysInfo.fireS.summaryInfo.external.temperature.maxlevel : '';
+  // fireMonitor[1].value = res.info.sysInfo.fireS.summaryInfo.external.coval ? res.info.sysInfo.fireS.summaryInfo.external.coval.value : '';
+  // fireMonitor[1].level = res.info.sysInfo.fireS.summaryInfo.external.coval ? res.info.sysInfo.fireS.summaryInfo.external.coval.maxlevel : '';
+  // fireMonitor[2].value = res.info.sysInfo.fireS.summaryInfo.external.chval ? res.info.sysInfo.fireS.summaryInfo.external.chval.value : '';
+  // fireMonitor[2].level = res.info.sysInfo.fireS.summaryInfo.external.chval ? res.info.sysInfo.fireS.summaryInfo.external.chval.maxlevel : '';
+  // fireMonitor[3].value = res.info.sysInfo.fireS.summaryInfo.external.ch2val ? res.info.sysInfo.fireS.summaryInfo.external.ch2val.value : '';
+  // fireMonitor[3].level = res.info.sysInfo.fireS.summaryInfo.external.ch2val ? res.info.sysInfo.fireS.summaryInfo.external.ch2val.maxlevel : '';
+  // fireMonitor[4].value = res.info.sysInfo.fireS.summaryInfo.external.co2val ? res.info.sysInfo.fireS.summaryInfo.external.co2val.value : '';
+  // fireMonitor[4].level = res.info.sysInfo.fireS.summaryInfo.external.co2val ? res.info.sysInfo.fireS.summaryInfo.external.co2val.maxlevel : '';
+  // fireMonitor[5].value = res.info.sysInfo.fireS.summaryInfo.external.o2val ? res.info.sysInfo.fireS.summaryInfo.external.o2val.value : '';
+  // fireMonitor[5].level = res.info.sysInfo.fireS.summaryInfo.external.o2val ? res.info.sysInfo.fireS.summaryInfo.external.o2val.maxlevel : '';
 
   fireMonitor1[0].value = res.info.sysInfo.fireS.summaryInfo.internal.coval ? res.info.sysInfo.fireS.summaryInfo.internal.coval.value : '';
   fireMonitor1[0].level = res.info.sysInfo.fireS.summaryInfo.internal.coval ? res.info.sysInfo.fireS.summaryInfo.internal.coval.maxlevel : '';

+ 1 - 1
src/views/vent/monitorManager/comment/AlarmHistoryTable.vue

@@ -130,7 +130,7 @@
           },
           {
             label: '查询设备',
-            field: 'gdeviceid',
+            field: 'deviceid',
             component: 'Select',
             defaultValue: deviceOptions[0] ? deviceOptions[0]['value'] : '',
             required: true,

+ 20 - 13
src/views/vent/monitorManager/comment/GroupMonitorTable.vue

@@ -77,7 +77,6 @@
   };
 
   const setSelectedRowKeys = (target) => {
-    console.log(target, Object.prototype.toString.call(target));
     if (Object.prototype.toString.call(target) === '[object String]') {
       selectRowIndex.value = target;
       emits('selectRow', target);
@@ -216,31 +215,39 @@
         columns.value.forEach((column) => {
           const columnKey = column.dataIndex;
           if(columnKey){
-            if(columnKey.endsWith('_merge')) {
-              resultData1[columnKey] = data[columnKey];
-            }else if (columnKey.startsWith('Fan')) {
+            if (columnKey.startsWith('Fan')) {
               const key1 = columnKey.replace('Fan', 'Fan1');
               const key2 = columnKey.replace('Fan', 'Fan2');
-              resultData1[columnKey] = data[key1];
-              resultData2[columnKey] = data[key2];
+              if (columnKey.endsWith('_merge')) {
+                resultData1[columnKey] = (data[key1] == 0 || data[key1] == null || data[key1] == undefined) ? data[key2] :  data[key1];
+              }else{
+                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) {
+              if (columnKey.endsWith('_merge')) {
+                resultData1[columnKey] = (data[key1] == 0 || data[key1] == null || data[key1] == undefined) ? data[key2] : data[key1];
+              } else {
                 resultData1[columnKey] = data[key1];
                 resultData2[columnKey] = data[key2];
-              }else{
-                resultData1[columnKey] = resultData2[columnKey] = data[columnKey];
               }
-            } else {
+            } else if (columnKey.endsWith('_merge')) {
+              resultData1[columnKey] = data[columnKey];
+            }else {
               resultData1[columnKey] = resultData2[columnKey] = data[columnKey];
             }
           }
         });
         resultData1['deviceID'] = resultData2['deviceID'] = data['deviceID'];
-        resultData1['runDevice'] = '主机';
-        resultData2['runDevice'] = '备机';
-
+        if(props.columnsType.startsWith('fanlocal')){
+          resultData1['runDevice'] = '主机';
+          resultData2['runDevice'] = '备机';
+        }else{
+          resultData1['runDevice'] = '1#风机';
+          resultData2['runDevice'] = '2#风机';
+        }
         list.push(resultData1, resultData2);
       });
 

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

@@ -5,7 +5,7 @@
     style="width: 100%; height: 100%; position: absolute; pointer-events: none; overflow: hidden; z-index: 2; top: 0px; left: 0px">
     <a-spin :spinning="loading" />
     <template>
-      <div v-for="groupNum in 2" :key="groupNum" class="modal-monitor" >
+      <div v-for="groupNum in monitorDataGroupNum" :key="groupNum" class="modal-monitor" >
         <fourBorderBg :class="`kyj${groupNum}`" :id="`nitrogenMonitor${groupNum}`">
           <div class="title">{{ monitorData[groupNum - 1]['strname'] }} </div>
           <div class="monitor-item">
@@ -147,14 +147,6 @@
                 <div class="control-item" v-for="(groupNum, index) in monitorDataGroupNum" :key="groupNum">
                   <div class="control-item-title">{{ monitorData[groupNum - 1]['strname'] }}</div>
                   <div class="control-item-state">
-                    <!-- <a-switch
-                      v-model="airCompressorState[groupNum - 1][`compressRunSigF1`]"
-                      size="small"
-                      checked-children="开启"
-                      un-checked-children="关闭"
-                      :disabled="airCompressorState[groupNum - 1][`controlModel`]"
-                      @change="handlerDevice(airCompressorState[groupNum - 1], index)"
-                    /> -->
                     <a-button disabled v-if="index == 0" size="small" type="text" style="color: #fff;"
                       @click="handlerDevice(airCompressorState[groupNum - 1], false)">一键启停</a-button>
                     <a-button disabled v-else size="small" type="text" style="color: #fff;"
@@ -165,14 +157,6 @@
                 <div class="control-item" v-for="(groupNum, index) in monitorDataGroupNum" :key="groupNum">
                   <div class="control-item-title">{{ monitorData[groupNum - 1]['strname'] }}</div>
                   <div class="control-item-state">
-                    <!-- <a-switch
-                      v-model="airCompressorState[groupNum - 1][`compressRunSigF1`]"
-                      size="small"
-                      checked-children="开启"
-                      un-checked-children="关闭"
-                      :disabled="airCompressorState[groupNum - 1][`controlModel`]"
-                      @change="handlerDevice(airCompressorState[groupNum - 1], index)"
-                    /> -->
                     <a-button disabled v-if="index == 0" size="small" type="text" style="color: #fff;"
                       @click="handlerDevice(airCompressorState[groupNum - 1], true)">一键复位</a-button>
                     <a-button disabled v-else size="small" type="text" style="color: #fff;"
@@ -242,7 +226,7 @@ const colors = ['#FDB146', '#EE6666', '#9BCB75', '#03C2EC', '#DA3914', '#9C83D9'
 const echatsOption = {
   grid: {
     top: '35%',
-    left: '20px',
+    left: '15%',
     right: '20px',
     bottom: '8%',
     // containLabel: true
@@ -294,7 +278,7 @@ watch(monitorDataGroupNum, () => {
   const item = {
     legend: '瞬时流量',
     seriesName: '(m³/h)',
-    ymax: 5,
+    ymax: 2000,
     yname: 'm³/h',
     linetype: 'line',
     yaxispos: 'left',

+ 14 - 14
src/views/vent/monitorManager/fanLocalMonitor/index.vue

@@ -61,10 +61,10 @@
           <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
               >
               <div class="tab-item" :class="{ 'tab-item-active-r': warningMonitorRowIndex === 1 }" @click="selectDevice('warningMonitorRowIndex', 1)"
-                >2#风机</div
+                >机</div
               >
             </div>
             <div class="container-group">
@@ -163,10 +163,10 @@
         <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
             >
             <div class="tab-item" :class="{ 'tab-item-active-r': dataMonitorRowIndex == 1 }" @click="selectDevice('dataMonitorRowIndex', 1)"
-              >2#风机</div
+              >机</div
             >
           </div>
           <div class="container-group container-group-l" >
@@ -263,14 +263,14 @@
       </div>
       <div class="" v-if="modalType == 'startSmoke'">
         <div class="startSmoke-select">
-          <div class="label">1#风机:</div>
+          <div class="label">机:</div>
           <a-radio-group v-model:value="mainWindIsShow1" @change="changeMotor" name="localWind1">
             <a-radio value="open">开启</a-radio>
             <a-radio value="stop">停止</a-radio>
           </a-radio-group>
         </div>
         <div class="startSmoke-select">
-          <div class="label">2#风机:</div>
+          <div class="label">机:</div>
           <a-radio-group v-model:value="mainWindIsShow2" @change="changeMotor" name="localWind2">
             <a-radio value="open">开启</a-radio>
             <a-radio value="stop">停止</a-radio>
@@ -494,13 +494,13 @@
   const modalTitle = ref(''); // 模态框标题显示内容,根据设备操作类型决定
   const fan1FrequencyVal = ref(40); //主机频率
   const fan2FrequencyVal = ref(40); //备机频率
-  const mainWindIsShow1 = ref('open'); // 1#风机默认启动leftColumns
-  const mainWindIsShow2 = ref('stop'); // 2#风机默认不启动
+  const mainWindIsShow1 = ref('open'); // 机默认启动leftColumns
+  const mainWindIsShow2 = ref('stop'); // 机默认不启动
   const passWord = ref('');
   // 默认初始是第一行
   const selectRowIndex = ref(-1);
   const dataMonitorRowIndex = ref(0);
-  // 默认数据右边监测的是1#风
+  // 默认数据右边监测的是
   const warningMonitorRowIndex = ref(0);
 
   const xAxisDataGas = ref([])
@@ -565,11 +565,11 @@
 
   const tabChange = (activeKeyVal) => {
     activeKey.value = activeKeyVal;
-    // if (activeKeyVal == 1) {
-    //   nextTick(() => {
-    //     MonitorDataTable.value.setSelectedRowKeys([selectData.deviceID])
-    //   })
-    // }
+    if (activeKeyVal == 1) {
+      nextTick(() => {
+        MonitorDataTable.value.setSelectedRowKeys([selectData.deviceID])
+      })
+    }
   };
 
   const selectDevice = (key, val) => {

+ 59 - 366
src/views/vent/monitorManager/groutMonitor/components/groutHome.vue

@@ -1,116 +1,23 @@
 <template>
   <div class="monitor-container">
-    <div class="lr left-box">
-      <div class="monitor-info item-box">
-        <ventBox1>
-          <template #title>
-            <div>设备信息监测</div>
-          </template>
-          <template #container v-if="dataSource.length > 0 ">
-            <div v-for="(monitor, key) in deviceMonitorData" :key="key" class="monitor-item">
-              <div class="item-title">{{ monitor.text }}</div>
-              <div class="item-val">{{ key.startsWith('1#') ? dataSource[0][key.split('_')[1]]||'-' : key.startsWith('2#') ? dataSource[1][key.split('_')[1]]||'-' : (dataSource[0][key] || '-') }}</div>
-              <div class="item-unit">{{ monitor.unit }}</div>
-            </div>
-          </template>
-        </ventBox1>
-      </div>
-      <div class="warning-group">
-        <ventBox1>
-          <template #title>
-            <div>近一月报警情况</div>
-          </template>
-          <template #container>
-           <dv-scroll-board ref="scrollBoard" :config="warningConfig"
-              style="width: 100%; height: 240px; overflow-y: auto; " />
-          </template>
-        </ventBox1>
-      </div>
-      <div class="item-box vent-margin-t-10">
-        <!-- <LivePlayer id="fm-player1" style="height: 220px;" ref="player1" :videoUrl="flvURL1()" muted live loading controls /> -->
+    <div class="header-box">
+      <div class="header-container">
+        <div class="device-detail">
+          <div class="device-title">&nbsp</div>
+          <div class="device-val">是否带电</div>
+          <div class="device-val">是否运行</div>
+          <div class="device-val">故障</div>
+        </div>
+        <div v-for="(device, key) in deviceMonitorList" class="device-detail" :key="key">
+          <div class="device-title">{{ device.title }}</div>
+          <div v-for="(detailItem, index) in device.dataList" :key="detailItem.code" class="device-val">
+            <span v-if="index == 0" :style="{color: monitorData[detailItem.code] != 1 ? '#BFBFBF' : '#10BC79'}">{{ monitorData[detailItem.code] == 0 ? '不带电' : monitorData[detailItem.code] == 1 ? '带电' : '-' }}</span>
+            <span v-if="index == 1" :style="{ color: monitorData[detailItem.code] != 1 ? '#BFBFBF' : '#10BC79' }">{{ monitorData[detailItem.code] == 0 ? '未运行' : monitorData[detailItem.code] == 1 ? '运行' : '-' }}</span>
+            <span v-if="index == 2" :style="{ color: monitorData[detailItem.code] == 0 ? '#10BC79' : monitorData[detailItem.code] == 1 ? '#F14C4C' : '#BFBFBF'}">{{ monitorData[detailItem.code] == 0 ? '正常' :  monitorData[detailItem.code] == 1 ? '报警' : '-'}}</span>
+          </div>
+        </div>
       </div>
     </div>
-    <div class="lr right-box">
-      <div class="control-container item-box">
-        <ventBox1>
-          <template #title>
-            <div>设备设施集中控制</div>
-          </template>
-          <template #container >
-            <div class="control-group">
-              <div class="control-item" v-for="(item, key) in deviceControlData" :key="key">
-                <div class="control-item-title">{{ item }}</div>
-                <div class="control-item-state" v-if="!key.startsWith('2#')">
-                  <a-switch v-model="dataSource[0][key.split('_')[1]]" size="small"  checked-children="开启"
-                    un-checked-children="关闭"
-                    @change="handlerDevice(dataSource[0][key.split('_')[1]])">
-                  </a-switch>
-                </div>
-                <div class="control-item-state" v-else>
-                  <a-switch v-model="dataSource[1][key.split('_')[1]]" size="small"  checked-children="开启"
-                    un-checked-children="关闭"
-                    @change="handlerDevice(dataSource[1][key.split('_')[1]])">
-                  </a-switch>
-                </div>
-              </div>
-            </div>
-            <a-divider style="height: 1px; background-color: #d7d7d755" />
-            <div class="control-btn-group">
-              <div class="control-left-box">
-                <div class="btn-box">
-                  <span @click="handlerDevice({ remote : true})">远程</span>
-                  <span @click="handlerDevice({ remote: false })">就地</span>
-                </div>
-                <div class="icon-box" :class="{'remote-icon-box': true}">
-                  <div class="icon"></div>
-                </div>
-              </div>
-              <div class="control-right-box">
-                <a-button class="btn" type="primary" @click="handlerDevice({run: true})">一键启动</a-button>
-                <a-button type="primary" danger @click="handlerDevice({ run: false })">紧急停止</a-button>
-              </div>
-            </div>
-            <a-divider style="height: 1px; background-color: #d7d7d755" />
-            <div class="parameter-btn-group"> 
-              <a-button type="primary"  @click="openModal('RunParameterModal')">参数设置</a-button>
-              <a-button type="primary"  @click="openModal('WarningParameterModal')">报警设置</a-button>
-            </div>
-          </template>
-        </ventBox1>    
-      </div>
-      <div class="control-container item-box echarts-box">
-        <ventBox1>
-          <template #title>
-            <div>设备实时监测曲线</div>
-          </template>
-          <template #container >
-            <div class="btn-group">
-              <span class="active">注浆流量</span>
-              <span>注浆压力</span>
-              <span>水舱液位</span>
-              <span>注浆筒液位</span>
-            </div>
-            <div class="item-box echarts-container">
-              <div class="echarts-group">
-                <div class="echarts-item">
-                  <BarAndLineCustom xAxisPropType="readTime" :chartData="dataSource" height="240px" :propTypeArr="['flowRate']" :option="zhujiangOption" />
-                </div>
-                <div class="echarts-item">
-                  <BarAndLineCustom xAxisPropType="readTime" :chartData="dataSource" height="240px" :propTypeArr="['pressure']" :option="yaliOption" />
-                </div>
-                <div class="echarts-item">
-                  <BarAndLineCustom xAxisPropType="readTime" :chartData="dataSource" height="240px" :propTypeArr="['flowRate']" :option="zhujiangOption" />
-                </div>
-                <div class="echarts-item">
-                  <BarAndLineCustom xAxisPropType="readTime" :chartData="dataSource" height="240px" :propTypeArr="['flowRate']" :option="zhujiangOption" />
-                </div>
-              </div>
-            </div>
-          </template>
-        </ventBox1>
-      </div>
-
-    </div>
   </div>
   <component v-if="modalVisible" :is="currentModal" v-model:visible="modalVisible" />
 </template>
@@ -123,7 +30,7 @@ import { ScrollBoard as DvScrollBoard } from '@kjgl77/datav-vue3';
 import ventBox1 from '/@/components/vent/ventBox1.vue';
 import RunParameterModal from './runParameter.modal.vue'
 import WarningParameterModal from './warningParameter.modal.vue'
-import { warningConfig, zhujiangOption, yaliOption } from '../grout.data'
+import { deviceMonitorList } from '../grout.data'
 import { list } from '../grout.api';
 import BarAndLineCustom from '/@/components/chart/BarAndLineCustom.vue';
 
@@ -142,7 +49,7 @@ const left: string = "0px";
 const currentModal = shallowRef<Nullable<ComponentOptions>>(null); //模态框
 const modalVisible = ref<Boolean>(false); // 模态框是否可见
 const loading = ref(false);
-
+const monitorData = ref({})
 // 默认初始是第一行
 const dataSource = ref([
   { 
@@ -165,26 +72,6 @@ const dataSource = ref([
   }
 ]); //dusting
 
-const deviceMonitorData = {
-  '1#_waterSupply': { text: '1#制浆机供水流量', unit: 'm³/h' },
-  '1#_beltVla': { text: '1#皮带秤数值', unit: 'T' },
-  '2#_waterSupply': { text: '2#制浆机供水流量', unit: 'm³/h' },
-  '2#_beltVla': { text: '2#皮带秤数值', unit: 'T' },
-  density: {text: '密度' , unit: 'g/cm'},
-  pressure: { text: '压力', unit: 'MPa' },
-  liquidLevel: { text: '缓冲池液位', unit: 'm' },
-  flowRate: { text: '注浆流量', unit: 'm³/h' },
-}
-const deviceControlData = {
-  '1#_waterPump': '1#清水泵',
-  '1#_groutingPump': '1#注浆泵',
-  '1#_pulpingMachine': '1#制浆机',
-  '2#_waterPump': '2#清水泵',
-  '2#_groutingPump': '2#注浆泵',
-  '2#_pulpingMachine': '2#制浆机',
-  'liquidLevelProtect ':'液位保护'
-}
-
 const flvURL1 = () => {
   return `https://sf1-hscdn-tos.pstatp.com/obj/media-fe/xgplayer_doc_video/flv/xgplayer-demo-360p.flv`;
   // return ''
@@ -214,13 +101,16 @@ function getMonitor(flag?) {
 
 async function getDataSource() {
   const res = await list({ devicetype: 'pulping_auto', pagetype: 'normal' });
-  const dataList = res.msgTxt[0].datalist || [];
-  dataSource.value = dataList.filter((data) => {
-    const item = data.readData;
-    Object.assign(data, item);
-    return item
-  });
-  
+  if(res.msgTxt && res.msgTxt[0] && res.msgTxt[0].datalist && res.msgTxt[0].datalist[0]){
+    monitorData.value = Object.assign(res.msgTxt[0].datalist[0], res.msgTxt[0].datalist[0]['readData'])
+  }
+  // const dataList = res.msgTxt[0].datalist || [];
+  // dataSource.value = dataList.filter((data) => {
+  //   const item = data.readData;
+  //   Object.assign(data, item);  
+  //   return item
+  // });
+  // monitorData.value = 
 }
 
 function handlerDevice(param: string | Object) {
@@ -263,247 +153,50 @@ onUnmounted(() => {
   // border: 1px solid #fff;
   margin-top: 40px;
   display: flex;
-  justify-content: space-between;
+  // justify-content: space-between;
+  justify-content: center;
   padding: 0 5px;
   
-  .lr {
-    width: 350px;
-    height: 100%;
-    display: flex;
-    flex-direction: column;
-    margin-top: 10px;
-    pointer-events: auto;
-  }
-
-  .right-box {
-    width: 320px;
-    margin-top: 30px;
-    .control-group{
-      display: flex;
-      flex-wrap: wrap;
-      .control-item {
-        
-        display: flex;
-        flex-direction: column;
-        justify-content: center;
-        align-items: center;
-        padding: 0 2px;
-        .control-item-title{
-          color: #63e0ff;
-          position: relative;
-          top: 5px;
-        }
-        .control-item-state{
-          width: 94px;
-          height: 47px;
-          background: url('/@/assets/images/vent/control-switch-bg.png');
-          display: flex;
-          justify-content: center;
-          align-items: center;
-          color: #fff;
-        }
-      
-        .button-box {
-          position: relative;
-          padding: 5px;
-          border: 1px transparent solid;
-          background-clip: border-box;
-          border-radius: 5px;
-          margin-left: 8px;
-        }
-
-        .a-button {
-          pointer-events: auto;
-        }
-
-        &::v-deep .a-button--mini {
-          padding: 6px 10px;
-        }
-
-        &::v-deep .a-button--mini.is-round {
-          padding: 6px 10px;
-        }
-      }
-
-    }
-    .control-btn-group{
+  .header-box{
+    // width: 100%;
+    margin-top: 50px;
+    .header-container{
+      height: auto;
       display: flex;
       flex-direction: row;
-      justify-content: space-between;
-      .control-left-box{
-        display: flex;
-        flex-direction: column;
-        justify-content: center;
-        align-items: center;
-        padding: 0 20px;
-        .btn-box{
-          width: 100px;
-          color: #fff;
-          display: flex;
-          justify-content: space-between;
-          span{
-            display: inline-block;
-            padding: 2px 8px;
-            background: #007099;
-            border-radius: 4px;
-            border: 1px solid rgb(125, 230, 249);
-            cursor: pointer;
-            &:hover{
-              background: #005574;
-            }
-          }
-        }
-        .icon-box{
-          width: 60px;
-          height: 60px;
-          border-radius: 30px;
-          border: 2px solid #00bcdd;
-          box-shadow: 0 0 20px #ffffff88;
-          display: flex;
-          justify-content: center;
-          align-items: center;
-          margin-top: 20px;
-             
-          .icon{
-            width: 18px;
-            height: 18px;
-            border-radius: 9px;
-            border: 3px solid #d7f9ff;
-            position: relative;
-            background: #00bcdd;
-            &::before{
-              position: absolute;
-              content: '';
-              width: 2px;
-              height: 12px;
-              background-color: #00bcdd;
-              left: 6px;
-              top: -16px;
-            }
-            &::after{
-              position: absolute;
-              content: '';
-              width: 2px;
-              height: 12px;
-              left: 6px;
-              top: 17px;
-              background-color: #00d9ff;
-            }
-          }
-        }
-        .remote-icon-box{
-          transform: rotate(30deg);
-          animation: iconRotate 1s linear;
-        }
-        .remote-icon-box1{
-          transform: rotate(-30deg);
-          animation: iconRotate1 1s linear;
-        }
-
-        @keyframes iconRotate{
-          from{
-            transform: rotate(-30deg);
-          }
-          to {
-            transform: rotate(30deg);
-          }
-        }
-        @keyframes iconRotate1{
-          from {
-            transform: rotate(30deg);
-          }
-          to {
-            transform: rotate(-30deg);
-          }
-        }
-        
-      }
-      .control-right-box{
-        width: 100px;
-        .btn{
-          margin-bottom: 30px;
-        }
-      }
+      justify-content: center;
+      color: #fff;
+      box-shadow: 0 0 30px rgb(0, 153, 184) inset;
     }
-    .parameter-btn-group{
-      display: flex;
-      justify-content: space-between;
-      padding: 0 20px;
-      margin-bottom: 10px;
+    .device-title{
+      width: 110px;
+      text-align: center;
+      border-top: 1px solid #00baffd4;
+      border-left: 1px solid #00baffd4;
+      line-height: 46px;
+      color: #00e5ff;
+      background-color: #00bbff21;
     }
-    .echarts-box{
-      width: 100%;
-      height: 332px;
-      position: relative;
-      &:deep(.box-container){
-        padding: 0px !important;
+    .device-detail{
+      text-align: center;
+      &:first-child{
+        background-color: #00bbff11;
       }
-      .btn-group{
-        line-height: 30px;
-        color: #fff;
-        text-align: center;
-        margin-top: 3px;
-        span{
-          padding: 3px 5px;
-          margin: 0 2px;
-          border-radius: 2px;
-          background-image: linear-gradient( #32475B, #5b95c7);
-          border: 1px solid #32475B;
-          cursor: pointer;
-        }
-        .active{
-          background-image: linear-gradient( #2E4659, #37A7B4);
-          border-top: 1px solid #3DF6FF;
+      &:last-child{
+        .device-val, .device-title{
+          border-right: 1px solid #00baffd4;
         }
       }
-      .echarts-container{
-        width: 100%;
-        height: 240px;
-        overflow: hidden;
-        position: relative;
-        .echarts-group{
-          display: flex;
-          flex-direction: row;
-          position: absolute;
-          left: v-bind(left);
-          .echarts-item{
-            width: 305px;
-          }
+      .device-val{
+        line-height: 36px;
+        border-top: 1px solid #00baffd4;
+        border-left: 1px solid #00baffd4;
+        &:last-child{
+          border-bottom: 1px solid #00baffd4;
         }
       }
-      
     }
-    
   }
-
-  .left-box {
-    margin-top: 30px;
-    .monitor-item{
-      display: flex;
-      color: #fff;
-      justify-content: space-between;
-      background-image: linear-gradient(to left, #3df6ff10, #3df6ff00);
-      margin: 10px 0;
-    
-      .item-title{
-        width: 200px;
-        margin-left: 10px;
-      }
-      .item-val{
-        width: 80px;
-        color: #00eefffe;
-      }
-      .item-unit{
-        width: 80px;
-      }
-    }
-    
-  }
-
-  .item-box{
-    margin-bottom: 15px;
-  }
-
 }
 
 :deep(.@{ventSpace}-tabs-tabpane-active) {

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

@@ -152,3 +152,159 @@ export const yaliOption = reactive({
     },
   ],
 });
+
+export const deviceMonitorList = [
+  {
+    title: '定量给料机',
+    dataList: [
+      {
+        title: '带电',
+        code: 'GLJdd',
+      },
+      {
+        title: '运行',
+        code: 'GLJyx',
+      },
+      {
+        title: '故障',
+        code: 'GLJgz',
+      },
+    ],
+  },
+  {
+    title: '胶体制备机',
+    dataList: [
+      {
+        title: '带电',
+        code: 'JTdd',
+      },
+      {
+        title: '运行',
+        code: 'JTyx',
+      },
+      {
+        title: '故障',
+        code: 'JTgz',
+      },
+    ],
+  },
+  {
+    title: '搅拌机',
+    dataList: [
+      {
+        title: '带电',
+        code: 'JBJdd',
+      },
+      {
+        title: '运行',
+        code: 'JBJyx',
+      },
+      {
+        title: '故障',
+        code: 'JBJgz',
+      },
+    ],
+  },
+  {
+    title: '排污泵',
+    dataList: [
+      {
+        title: '带电',
+        code: 'PWBdd',
+      },
+      {
+        title: '运行',
+        code: 'PWByx',
+      },
+      {
+        title: '故障',
+        code: 'PWBgz',
+      },
+    ],
+  },
+  {
+    title: '胶带运输机',
+    dataList: [
+      {
+        title: '带电',
+        code: 'JDdd',
+      },
+      {
+        title: '运行',
+        code: 'JDyx',
+      },
+      {
+        title: '故障',
+        code: 'JDgz',
+      },
+    ],
+  },
+  {
+    title: '注水泵1',
+    dataList: [
+      {
+        title: '带电',
+        code: 'ZJSB1dd',
+      },
+      {
+        title: '运行',
+        code: 'ZJSB1yx',
+      },
+      {
+        title: '故障',
+        code: 'ZJSB1gz',
+      },
+    ],
+  },
+  {
+    title: '注水泵2',
+    dataList: [
+      {
+        title: '带电',
+        code: 'ZJSB2dd',
+      },
+      {
+        title: '运行',
+        code: 'ZJSB2yx',
+      },
+      {
+        title: '故障',
+        code: 'ZJSB2gz',
+      },
+    ],
+  },
+  {
+    title: '清水泵',
+    dataList: [
+      {
+        title: '带电',
+        code: 'QSBdd',
+      },
+      {
+        title: '运行',
+        code: 'QSByx',
+      },
+      {
+        title: '故障',
+        code: 'QSBgz',
+      },
+    ],
+  },
+  {
+    title: '渣浆泵',
+    dataList: [
+      {
+        title: '带电',
+        code: 'ZJBdd',
+      },
+      {
+        title: '运行',
+        code: 'ZJByx',
+      },
+      {
+        title: '故障',
+        code: 'ZJBgz',
+      },
+    ],
+  },
+];

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

@@ -8,13 +8,11 @@ import useEvent from '../../../../utils/threejs/useEvent';
 // 模型对象、 文字对象
 let model: UseThree | undefined,
   groutBaseObj: ChamberBase | undefined,
-
   BertaiObj: BertaiBase | undefined, //lxh
-
   group: THREE.Object3D | undefined,
   // groutType = 'groutBase'; // workerFaceFiber
   groutType = 'bertaiBase'; // workerFaceFiber
-  
+
 const { mouseDownFn } = useEvent();
 
 // 鼠标点击事件
@@ -23,8 +21,9 @@ const mouseEvent = (event) => {
     mouseDownFn(<UseThree>model, <THREE.Object3D>group, event, (intersects) => {
       if (groutType === 'groutBase') {
         // groutBaseObj.mousedownModel.call(groutBaseObj, model.rayCaster);
-      }else if(groutType==='bertaiBase'){//lxh
-     // BertaiObj.mousedownModel.call(BertaiObj, model.rayCaster);
+      } else if (groutType === 'bertaiBase') {
+        //lxh
+        // BertaiObj.mousedownModel.call(BertaiObj, model.rayCaster);
       }
     });
     console.log('摄像头控制信息', model?.orbitControls, model?.camera);
@@ -47,7 +46,8 @@ const addMouseEvent = () => {
 export const addChamberText = (selectData) => {
   if (groutType === 'groutBase') {
     return groutBaseObj?.addChamberText.call(groutBaseObj, selectData);
-  }else if(groutType=='bertaiBase'){//lxh
+  } else if (groutType == 'bertaiBase') {
+    //lxh
     return BertaiObj?.addChamberText.call(BertaiObj, selectData);
   }
 };
@@ -71,7 +71,8 @@ export const setModelType = (type) => {
         );
       }, 300);
       resolve(null);
-    }else if(groutType === 'bertaiBase' && BertaiObj && BertaiObj.group){//lxh
+    } else if (groutType === 'bertaiBase' && BertaiObj && BertaiObj.group) {
+      //lxh
       group = BertaiObj.group;
       const oldCameraPosition = { x: -114.7969, y: 104.0741, z: 303.516 };
       model?.scene?.add(BertaiObj.group);
@@ -79,8 +80,8 @@ export const setModelType = (type) => {
         await animateCamera(
           oldCameraPosition,
           { x: 0, y: 0, z: 0 },
-          { x: -36.224455845316, y: 21.749986776845592, z: -0.10614789855468158 },
-          { x: 0, y: 0, z: 0 },
+          { x: 0.06216, y: 17.7679, z: 20.28977 },
+          { x: 0.12544, y: 2.18736, z: -1.30608 },
           model,
           0.6
         );

+ 5 - 9
src/views/vent/monitorManager/mainFanMonitor/index.vue

@@ -202,7 +202,7 @@
       <dv-border-box8 :dur="5"  :style="`padding: 5px; height: ${scroll.y + 120}px`" >
         <a-tabs class="tabs-box" v-model:activeKey="activeKey" @change="tabChange">
           <a-tab-pane key="1" tab="实时监测">
-            <GroupMonitorTable v-if="activeKey === '1'" ref="MonitorDataTable" :dataSource="dataSource" columnsType="fanmain_monitor" @selectRow="getSelectRow" :scroll="{y: scroll.y - (headElHeight - 56)}"/>
+            <GroupMonitorTable ref="MonitorDataTable" :dataSource="dataSource" columnsType="fanmain_monitor" @selectRow="getSelectRow" :scroll="{y: scroll.y - (headElHeight - 56)}"/>
           </a-tab-pane>
           <!-- <a-tab-pane key="2" tab="实时曲线图" force-render>
             <div class="tab-item" v-if="activeKey === '2'">
@@ -419,7 +419,7 @@
   ]);
   const tabChange = (activeKeyVal) => {
     activeKey.value = activeKeyVal;
-    
+    MonitorDataTable.value.setSelectedRowKeys(selectData.deviceID)
   };
 
   // 设备数据
@@ -461,10 +461,7 @@
         } else if (selectData['Fan2StartStatus'] == 1 && selectData['Fan1StartStatus'] == 0) {
           backMonitorIsShow.value = true
           frontMonitorIsShow.value = false;
-        } else {
-          // 正在运行
         }
-        
         deviceType.value = selectData.deviceType
         addText();
         playAnimate(selectData);
@@ -512,10 +509,9 @@
     for (const key in selectData) {
       selectData[key] = ''
     }
-    nextTick(() => {
-      setModelType(type).then(() => {
-        loading.value = false;
-      });
+    nextTick(async() => {
+      await setModelType(type)
+      loading.value = false;
       if(!headElHeight.value){
         const headEl = document.querySelector(`.zxm-table-thead`);
         if (headEl) {

+ 10 - 3
src/views/vent/monitorManager/nitrogen/components/nitrogenHome.vue

@@ -55,8 +55,14 @@
         <span class="tab-button-box" :class="{ 'tab-button-box-active': monitorDataGroupFlag == 2 }" @click="setMonitorGroupNum(monitorDataGroupNum2, 2)">压风系统2</span>
       </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 class="vent-flex-row">
+          <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="" style="margin-left: 30px; margin-top: 10px;">
+          <div style="color: red;">总流量异常</div>
+          <div style="color: red;">总压力异常</div>
+        </div>
       </div>
       <div class="nitrogen-container">
         <div v-if="monitorData['netStatus'] == 0" class="device-state">网络断开</div>
@@ -263,9 +269,10 @@ onUnmounted(() => {
     z-index: 9;
     top: 50px;
     right: 30px;
-    display: flex;
+    // display: flex;
     font-size: 18px;
     .item{
+      width: 200px;
       margin-left: 30px;
       .val{
         color: #00d8ff;

+ 10 - 4
src/views/vent/monitorManager/nitrogen/components/nitrogenHome1.vue

@@ -103,8 +103,14 @@
         <span class="tab-button-box" :class="{ 'tab-button-box-active': monitorDataGroupFlag == 2 }" @click="setMonitorGroupNum(monitorDataGroupNum2, 2)">压风系统2</span>
       </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 class="vent-flex-row">
+          <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="" style="margin-left: 30px; margin-top: 10px;">
+          <div style="color: red;">总流量异常</div>
+          <div style="color: red;">总压力异常</div>
+        </div>
       </div>
       <div class="nitrogen-container">
         <div v-if="monitorData['netStatus'] == 0" class="device-state">网络断开</div>
@@ -453,16 +459,16 @@ onUnmounted(() => {
     z-index: 9;
     top: 50px;
     right: 30px;
-    display: flex;
+    //display: flex;
     font-size: 18px;
     .item{
+      width: 200px;
       margin-left: 30px;
       .val{
         color: #00d8ff;
       }
     }
   }
-
 }
 
 .compressorCss3D-box {

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

@@ -2,9 +2,9 @@
   <div class="nitrogen-box">
     <customHeader >智能压风管控系统</customHeader>
     <!-- 锦界 -->
-    <nitrogenHome v-if="btnActive == 'nitrogen_page'" />
+    <!-- <nitrogenHome v-if="btnActive == 'nitrogen_page'" /> -->
     <!-- 布尔台 -->
-    <!-- <nitrogenHome1 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'"/>
@@ -31,11 +31,11 @@ const navList = ref([
     pathName: 'nitrogen_page',
     isHover: false
   },
-  {
-    title: '实时曲线',
-    pathName: 'yfj_monitor_echarts',
-    isHover: false
-  },
+  // {
+  //   title: '实时曲线',
+  //   pathName: 'yfj_monitor_echarts',
+  //   isHover: false
+  // },
   {
     title: '历史监测记录',
     pathName: 'yfj_history',

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

@@ -425,7 +425,7 @@ export const chartsColumns = [
   {
     legend: '风速',
     seriesName: '(m/s)',
-    ymax: 15,
+    ymax: 10,
     yname: 'm/s',
     linetype: 'bar',
     yaxispos: 'right',