소스 검색

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

lxh 1 개월 전
부모
커밋
9958c11c57

+ 14 - 12
src/views/vent/monitorManager/deviceMonitor/components/device/modal/fiber.modal.hlg.vue

@@ -41,13 +41,7 @@
         <div class="right-bottom">
           <span class="base-title">测点监测曲线</span>
           <div class="echarts-box">
-            <BarAndLine
-              xAxisPropType="Section_AlarmTemp"
-              :dataSource="posList1"
-              height="100%"
-              :chartsColumns="chartsColumns"
-              :option="echatsOption"
-            />
+            <BarAndLine xAxisPropType="Section_Position" :dataSource="posList1" height="100%" :chartsColumns="chartsColumns" :option="echatsOption" />
           </div>
         </div>
       </div>
@@ -700,6 +694,16 @@
             for (let i = 0; i < indexValues.length; i++) {
               const index = indexValues[i];
               if (item.readData[`Section${index}_BeginPosition`] && item.readData[`Section${index}_EndPosition`]) {
+                let isWarn;
+                if (parseFloat(item.readData[`Section${index}_AlarmTemp`]) > 1) {
+                  isWarn =
+                    parseFloat(item.readData[`Section${index}_AlarmTemp`]) - parseFloat(item.readData[`Section${index}_MaxTemp`]) > 0
+                      ? '报警'
+                      : '正常';
+                } else {
+                  isWarn = parseFloat(item.readData[`Section${index}_AlarmTemp`]) == 0 ? '正常' : '报警';
+                }
+
                 posList.push({
                   position: `测点${index}`,
                   Section_MaxTemp: item.readData[`Section${index}_MaxTemp`],
@@ -707,11 +711,10 @@
                   Section_BeginPosition: item.readData[`Section${index}_BeginPosition`],
                   Section_EndPosition: item.readData[`Section${index}_EndPosition`],
                   Section_AlarmTemp: item.readData[`Section${index}_AlarmTemp`],
-                  isWarn:
-                    parseFloat(item.readData[`Section${index}_MaxTemp`]) > parseFloat(item.readData[`Section${index}_AlarmTemp`]) ? '未报警' : '报警',
+                  isWarn: isWarn,
                 });
                 posList1.push({
-                  Section_AlarmTemp: `${item.readData[`Section${index}_BeginPosition`]}-${item.readData[`Section${index}_EndPosition`]}m`,
+                  Section_Position: `${item.readData[`Section${index}_BeginPosition`]}-${item.readData[`Section${index}_EndPosition`]}m`,
                   value: item.readData[`Section${index}_MaxTemp`],
                 });
                 if (parseFloat(item.readData[`Section${index}_MaxTemp`]) > maxTemp.value) {
@@ -719,8 +722,7 @@
                 }
               }
             }
-            // warnLevels.value = posList.find((v) => v.isWarn == '报警') ? '报警' : '未报警';
-            warnLevels.value = posList.find((v) => v.Section_AlarmTemp != '0' &&  v.Section_AlarmTemp != '0.00' ) ? '报警' : '未报警';
+            warnLevels.value = posList.find((v) => v.isWarn == '报警') ? '报警' : '正常';
           }
         });
       });

+ 44 - 20
src/views/vent/monitorManager/fanLocalMonitor/index.vue

@@ -214,7 +214,7 @@
             >
           </div>
           <div class="container-group container-group-l">
-            <div class="warning-group" style="max-height: 200px; overflow-y: auto">
+            <div class="warning-group" :style="computedStyle">
               <template v-if="selectData.deviceType">
                 <div class="container-item" v-for="(data, index) in leftColumns" :key="index">
                   <div class="item-icon">
@@ -237,26 +237,27 @@
               </template>
             </div>
           </div>
-          <div class="container-group">
-            <div class="warning-header">
-              <div class="header-item">
-                <div class="header-title">评价分析</div>
-                <!-- <div class="header-value">{{ selectData['warnLogNotOkCount'] }} </div> -->
+          <template v-for="(item, index) in modalTypeArr.rightBtnArr" :key="index">
+            <div class="container-group" v-if="item.permission === 'fanLocal:pjfx' && hasPermission(item.permission)">
+              <div class="warning-header">
+                <div class="header-item">
+                  <div class="header-title">评价分析</div>
+                </div>
               </div>
-            </div>
-            <div class="warning-group" style="max-height: 200px; overflow-y: auto">
-              <template v-if="selectData.deviceType">
-                <div class="container-item" v-for="(data, index) in leftColumns1" :key="index">
-                  <div class="item-icon">
-                    <!-- <SvgIcon class="icon-style" size="18" name="temperature" /> -->
-                    <CaretRightOutlined class="icon-style" />
+              <div class="warning-group" style="max-height: 200px; overflow-y: auto">
+                <template v-if="selectData.deviceType">
+                  <div class="container-item" v-for="(data, index) in leftColumns1" :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 :class="['item-value', { 'text-red-bold': data.value === '超限' }]">{{ data.value }}</div>
                   </div>
-                  <div class="item-name">{{ data.title }}</div>
-                  <div :class="['item-value', { 'text-red-bold': data.value === '超限' }]">{{ data.value }}</div>
-                </div>
-              </template>
+                </template>
+              </div>
             </div>
-          </div>
+          </template>
         </div>
       </div>
       <div>
@@ -272,7 +273,7 @@
               >
             </div>
             <div class="container-group container-group-l">
-              <div class="warning-group" style="max-height: 200px; overflow-y: auto">
+              <div class="warning-group" style="max-height: 200px">
                 <template v-if="deviceType">
                   <div v-for="(state, index) in rightColumns" :key="index">
                     <template v-if="!state.dataIndex.endsWith('_w')">
@@ -655,7 +656,20 @@
 
 <script setup lang="ts">
 import { ExclamationCircleFilled, ArrowRightOutlined, VideoCameraOutlined } from '@ant-design/icons-vue';
-import { onBeforeMount, ref, watch, onMounted, nextTick, defineAsyncComponent, reactive, onUnmounted, inject, unref, shallowReactive } from 'vue';
+import {
+  onBeforeMount,
+  ref,
+  watch,
+  onMounted,
+  nextTick,
+  defineAsyncComponent,
+  reactive,
+  onUnmounted,
+  inject,
+  unref,
+  computed,
+  shallowReactive,
+} from 'vue';
 // import BarSingle from '../../../../components/chart/BarSingle.vue';
 import FanDeviceEcharts from '../comment/FanDeviceEcharts.vue';
 import BarAndLine from '../../../../components/chart/BarAndLine.vue';
@@ -708,6 +722,11 @@ const router = useRouter();
 const { createConfirm } = useMessage();
 const globSetting = useGlobSetting();
 const showPlay = ref(hasPermission('fanlocal:showCamera') ? true : false);
+const computedStyle = computed(() => {
+  const items = modalTypeArr.rightBtnArr;
+  const hasMatchingPermission = items.some((item) => item.permission === 'fanLocal:pjfx' && hasPermission(item.permission));
+  return hasMatchingPermission ? 'max-height: 200px' : '';
+});
 const modalTypeArr = reactive({
   leftBtnArr: [
     {
@@ -844,6 +863,11 @@ const modalTypeArr = reactive({
       value: '按需供风联动',
       permission: 'fanLocal:supplyAir',
     },
+    {
+      key: 'pjfx',
+      value: '评价分析',
+      permission: 'fanLocal:pjfx',
+    },
   ],
 });
 const sensorList = ref<any[]>([

+ 62 - 7
src/views/vent/monitorManager/mainFanMonitor/main.data.ts

@@ -813,7 +813,7 @@ export const assistanceData = {
 export const setOption = (deviceType?) => {
   let yMax = 4500;
   const { sysOrgCode } = useGlobSetting();
-  // const sysOrgCode = 'sdmtjtdltmkhjtj';
+  // const sysOrgCode = 'sdmtjtsgtmk';
   if (sysOrgCode == 'sdmtjtdltmk') {
     // 这里判断白家渠还是五当沟
     if (deviceType == 'fanmain_bjq') {
@@ -835,6 +835,8 @@ export const setOption = (deviceType?) => {
     }
   } else if (sysOrgCode == 'sdmtjtjjmk') {
     yMax = 6000;
+  } else if (sysOrgCode == 'sdmtjtsgtmk') {
+    yMax = 3000;
   } else if (sysOrgCode == 'sdmtjtdltmkhjtj') {
     yMax = 3000;
   } else {
@@ -1148,7 +1150,7 @@ export const initData1 = () => {
 // 大柳塔武当沟
 export const initData = (deviceType?) => {
   const { sysOrgCode } = useGlobSetting();
-  // const sysOrgCode = 'sdmtjtdltmkhjtj';
+  // const sysOrgCode = 'sdmtjtsgtmk';
   if (sysOrgCode == 'sdmtjtdltmk') {
     return initDataDlt(deviceType);
   } else if (sysOrgCode == 'sdmtjtswmk') {
@@ -1161,12 +1163,65 @@ export const initData = (deviceType?) => {
     return initDataJj();
   } else if (sysOrgCode == 'sdmtjtdltmkhjtj') {
     return initDataHjt();
+  } else if (sysOrgCode == 'sdmtjtsgtmk') {
+    return initDataSgt();
   } else {
     return initData1();
   }
 };
+// 石圪台
+const initDataSgt = () => {
+  const data: any[] = [];
+  data.push({
+    angle: -6,
+    Hz: -6,
+    a: -0.0438,
+    b: 14.5078,
+    c: 986.6,
+    min: 130,
+    max: 370,
+  });
+  data.push({
+    angle: -3,
+    Hz: -3,
+    a: -0.035,
+    b: 11.7875,
+    c: 1226.8,
+    min: 140,
+    max: 400,
+  });
+  data.push({
+    angle: 0,
+    Hz: 0,
+    a: -0.0354,
+    b: 13.6986,
+    c: 1078.6,
+    min: 150,
+    max: 430,
+  });
+  data.push({
+    angle: 3,
+    Hz: 3,
+    a: -0.0444,
+    b: 19.5673,
+    c: 504,
+    min: 170,
+    max: 445,
+  });
+  data.push({
+    angle: 6,
+    Hz: 6,
+    a: -0.0507,
+    b: 24.3336,
+    c: -70,
+    min: 190,
+    max: 460,
+  });
+  return data;
+};
+
 // 大柳塔白家渠
-export const initDataDlt = (deviceType?) => {
+const initDataDlt = (deviceType?) => {
   if (deviceType == 'fanmain_bjq') {
     const num = 2;
     const obj = {
@@ -1227,7 +1282,7 @@ export const initDataDlt = (deviceType?) => {
   }
 };
 
-export const initDataSw = (deviceType?) => {
+const initDataSw = (deviceType?) => {
   if (deviceType == 'fanmain_bfj') {
     // 北风井
     const num = 2;
@@ -1290,7 +1345,7 @@ export const initDataSw = (deviceType?) => {
   }
 };
 
-export const initDataHjt = () => {
+const initDataHjt = () => {
   const data: any[] = [];
   data.push({
     angle: -10,
@@ -1419,7 +1474,7 @@ const initDataBd = (deviceType?) => {
   }
 };
 
-const initDataBlt = (deviceType?) => {
+const initDataBlt = () => {
   const num = 2;
   const obj = {
     angle: 0,
@@ -1452,7 +1507,7 @@ const initDataBlt = (deviceType?) => {
   return data;
 };
 
-const initDataJj = (deviceType?) => {
+const initDataJj = () => {
   const num = 2;
   const obj = {
     angle: 0,