瀏覽代碼

[Mod 0000] 上湾均压历史数据修改

houzekong 1 天之前
父節點
當前提交
e63b221b13

+ 246 - 200
src/views/vent/monitorManager/balancePressMonitor/index1.vue

@@ -1,232 +1,278 @@
 <template>
-  <customHeader :fieldNames="{ label: 'systemname', value: 'id', options: 'children' }" :options = 'options' @change="getSelectRow" :optionValue="optionValue">均压与低氧管控</customHeader>
+  <customHeader
+    :fieldNames="{ label: 'systemname', value: 'id', options: 'children' }"
+    :options="options"
+    @change="getSelectRow"
+    :optionValue="optionValue"
+    >均压与低氧管控</customHeader
+  >
 
   <div class="scene-box">
     <div class="center-container">
-      <balancePressHome2 v-if="activeKey == 'monitor'" :deviceId = 'optionValue' />
+      <balancePressHome2 v-if="activeKey == 'monitor'" :deviceId="optionValue" />
       <div v-else class="history-group">
         <div class="device-button-group" v-if="deviceList.length > 0">
-          <div class="device-button" :class="{ 'device-active': deviceActive == device.deviceType }" v-for="(device, index) in deviceList" :key="index" @click="deviceChange(index)">{{ device.deviceName }}</div>
+          <div
+            class="device-button"
+            :class="{ 'device-active': deviceActive == device.deviceType }"
+            v-for="(device, index) in deviceList"
+            :key="index"
+            @click="deviceChange(index)"
+            >{{ device.deviceName }}</div
+          >
         </div>
         <div class="history-container">
-          <balancePressHistory v-if="activeKey == 'monitor_history'" ref="historyTable" class="vent-margin-t-20" :deviceId = 'optionValue' :device-type="deviceType"/>
-          <balancePressHandleHistoryVue v-if="activeKey == 'handler_history'" ref="alarmHistoryTable" class="vent-margin-t-20" :deviceId = 'optionValue' :device-type="deviceType" />
-          <balancePressAlarmHistory v-if="activeKey == 'faultRecord'" ref="handlerHistoryTable" class="vent-margin-t-20" :deviceId = 'optionValue' :device-type="deviceType"/>
-        </div> 
-      </div>      
+          <balancePressHistory
+            v-if="activeKey == 'monitor_history'"
+            ref="historyTable"
+            class="vent-margin-t-20"
+            :deviceId="optionValue"
+            :device-type="deviceType"
+          />
+          <balancePressHandleHistoryVue
+            v-if="activeKey == 'handler_history'"
+            ref="alarmHistoryTable"
+            class="vent-margin-t-20"
+            :deviceId="optionValue"
+            :device-type="deviceType"
+          />
+          <balancePressAlarmHistory
+            v-if="activeKey == 'faultRecord'"
+            ref="handlerHistoryTable"
+            class="vent-margin-t-20"
+            :deviceId="optionValue"
+            :device-type="deviceType"
+          />
+        </div>
+      </div>
     </div>
-    <BottomMenu @change="changeActive"/>
+    <BottomMenu
+      :nav-list="[
+        {
+          title: '监控界面',
+          pathName: 'monitor',
+          isHover: false,
+        },
+        {
+          title: '历史监测记录',
+          pathName: 'monitor_history',
+          isHover: false,
+        },
+        {
+          title: '操作历史记录',
+          pathName: 'handler_history',
+          isHover: false,
+        },
+      ]"
+      @change="changeActive"
+    />
   </div>
-  <Vent2dModal v-if="activeKey == 'monitor'" style="width: 100%; height: 100%; position: fixed; top: 0px; left: 0px;" />
+  <Vent2dModal v-if="activeKey == 'monitor'" style="width: 100%; height: 100%; position: fixed; top: 0px; left: 0px" />
 </template>
 
 <script setup lang="ts">
-import customHeader from '/@/components/vent/customHeader.vue';
-import { onBeforeMount, ref, onMounted, onUnmounted, reactive, onBeforeUnmount } from 'vue';
-import { list, getTableList } from './balancePress.api';
-import BottomMenu from '/@/views/vent/comment/components/bottomMenu.vue';
-import balancePressHome2 from './components/balancePressHome2.vue';
-import balancePressHistory from './components/balancePressHistory.vue';
-import balancePressHandleHistoryVue from './components/balancePressHandleHistory.vue';
-import balancePressAlarmHistory from './components/balancePressAlarmHistory.vue';
-import { useRouter } from 'vue-router';
-import { unmountMicroApps } from '/@/qiankun';
-import Vent2dModal from '/@/components/vent/micro/ventModal2D.vue';
-import { getActions } from '/@/qiankun/state';
-
-type DeviceType = { deviceType: string, deviceName: string, datalist: any[] };
-const actions = getActions();
-const { currentRoute } = useRouter();
-const activeKey = ref('monitor');
-const loading = ref(false);
-
-const historyTable = ref()
-const alarmHistoryTable = ref()
-const handlerHistoryTable = ref()
-
-
-//关联设备
-const deviceList = ref<DeviceType[]>([])
-const deviceActive = ref('')
-const deviceType = ref('')
-
-const options = ref()
-const optionValue = ref('')
-
-
-function changeActive(activeValue) {
-  activeKey.value = activeValue
-}
-
-function deviceChange(index) {
-  deviceActive.value = deviceType.value = deviceList.value[index].deviceType
-}
-
-// 查询关联设备列表
-async function getDeviceList() {
-  const res = await list({ devicetype: 'sys', systemID: optionValue.value });
-  
-  const result = res.msgTxt;
-  const deviceArr = <DeviceType[]>[]
-  result.forEach(item => {
-    const data = item['datalist'].filter((data: any) => {
-      const readData = data.readData;
-      return Object.assign(data, readData);
-    })
-    if (item.type != 'sys') {
-      deviceArr.unshift({ deviceType: item.type, deviceName: item['typeName'] ? item['typeName'] : item['datalist'][0]['typeName'], datalist: data })
-    }
-  })
-  deviceList.value = deviceArr
-  deviceActive.value = deviceArr[0].deviceType
-  deviceChange(0)
-};
-
-async function getSysDataSource () {
-  const res = await getTableList({ strtype: 'sys_surface_junya', pagetype: 'normal' });
-  if (!options.value) {
-    // 初始时选择第一条数据
-    options.value = res.records || [];
-    if (!optionValue.value) {
-      optionValue.value = options.value[0]['id']
-      getDeviceList()
-    }
+  import customHeader from '/@/components/vent/customHeader.vue';
+  import { onBeforeMount, ref, onMounted, onUnmounted, reactive, onBeforeUnmount } from 'vue';
+  import { list, getTableList } from './balancePress.api';
+  import BottomMenu from '/@/views/vent/comment/components/bottomMenu.vue';
+  import balancePressHome2 from './components/balancePressHome2.vue';
+  import balancePressHistory from './components/balancePressHistory.vue';
+  import balancePressHandleHistoryVue from './components/balancePressHandleHistory.vue';
+  import balancePressAlarmHistory from './components/balancePressAlarmHistory.vue';
+  import { useRouter } from 'vue-router';
+  import { unmountMicroApps } from '/@/qiankun';
+  import Vent2dModal from '/@/components/vent/micro/ventModal2D.vue';
+  import { getActions } from '/@/qiankun/state';
+
+  type DeviceType = { deviceType: string; deviceName: string; datalist: any[] };
+  const actions = getActions();
+  const { currentRoute } = useRouter();
+  const activeKey = ref('monitor');
+  const loading = ref(false);
+
+  const historyTable = ref();
+  const alarmHistoryTable = ref();
+  const handlerHistoryTable = ref();
+
+  //关联设备
+  const deviceList = ref<DeviceType[]>([]);
+  const deviceActive = ref('');
+  const deviceType = ref('');
+
+  const options = ref();
+  const optionValue = ref('');
+
+  function changeActive(activeValue) {
+    activeKey.value = activeValue;
+  }
+
+  function deviceChange(index) {
+    deviceActive.value = deviceType.value = deviceList.value[index].deviceType;
   }
-};
-
-// 切换检测数据
-function getSelectRow(deviceID){
-  // const currentData = options.value.find((item: any) => {
-  //   return item.id == deviceID
-  // })
-  optionValue.value = deviceID
-  getDeviceList()
-}
-
-onBeforeMount(() => {
-
-});
-
-onMounted(async() => {
-  if (currentRoute.value && currentRoute.value['query'] && currentRoute.value['query']['id']) optionValue.value = currentRoute.value['query']['id']
-  await getSysDataSource()
-  actions.onGlobalStateChange((newState) => {
-    const isMounted = newState['isMounted'];
-    if (isMounted) {
-      actions.setGlobalState({ isMounted: false, pageObj:{modalId: '1922122318615515138'} });
-      loading.value = false;
+
+  // 查询关联设备列表
+  async function getDeviceList() {
+    const res = await list({ devicetype: 'sys', systemID: optionValue.value });
+
+    const result = res.msgTxt;
+    const deviceArr = <DeviceType[]>[];
+    result.forEach((item) => {
+      const data = item['datalist'].filter((data: any) => {
+        const readData = data.readData;
+        return Object.assign(data, readData);
+      });
+      if (item.type != 'sys') {
+        deviceArr.unshift({
+          deviceType: item.type,
+          deviceName: item['typeName'] ? item['typeName'] : item['datalist'][0]['typeName'],
+          datalist: data,
+        });
+      }
+    });
+    deviceList.value = deviceArr;
+    deviceActive.value = deviceArr[0].deviceType;
+    deviceChange(0);
+  }
+
+  async function getSysDataSource() {
+    const res = await getTableList({ strtype: 'sys_surface_junya', pagetype: 'normal' });
+    if (!options.value) {
+      // 初始时选择第一条数据
+      options.value = res.records || [];
+      if (!optionValue.value) {
+        optionValue.value = options.value[0]['id'];
+        getDeviceList();
+      }
     }
+  }
+
+  // 切换检测数据
+  function getSelectRow(deviceID) {
+    // const currentData = options.value.find((item: any) => {
+    //   return item.id == deviceID
+    // })
+    optionValue.value = deviceID;
+    getDeviceList();
+  }
+
+  onBeforeMount(() => {});
+
+  onMounted(async () => {
+    if (currentRoute.value && currentRoute.value['query'] && currentRoute.value['query']['id']) optionValue.value = currentRoute.value['query']['id'];
+    await getSysDataSource();
+    actions.onGlobalStateChange((newState) => {
+      const isMounted = newState['isMounted'];
+      if (isMounted) {
+        actions.setGlobalState({ isMounted: false, pageObj: { modalId: '1922122318615515138' } });
+        loading.value = false;
+      }
+    });
+  });
+
+  onUnmounted(() => {});
+  onBeforeUnmount(() => {
+    unmountMicroApps(['/micro-vent-2dModal']);
   });
-  
-});
-
-onUnmounted(() => {
- 
-});
-onBeforeUnmount(() => {
-  unmountMicroApps(['/micro-vent-2dModal']);
-});
 </script>
 <style lang="less" scoped>
-@import '/@/design/vent/modal.less';
-@ventSpace: zxm;
-.scene-box{
-  width: 100%;
-  height: 100%;
-  margin-top: 20px;
-  pointer-events: none;
-  // position: relative;
-  // margin: 0 !important;
-  // padding:0 !important;
-
-  :deep(.left-box){
-    margin-top: 0px;
-  }
-  :deep(.right-box){
-    margin-top: 0px;
-  }
-  .history-group{
-    padding: 0 20px;
-    .history-container{
-      position: relative;
-      background: #6195af1a;
-      width: calc(100% + 10px);
-      top: 0px;
-      left: -10px;
-      border: 1px solid #00fffd22;
-      padding: 10px 0;
-      box-shadow: 0 0 20px #44b4ff33 inset;
+  @import '/@/design/vent/modal.less';
+  @ventSpace: zxm;
+  .scene-box {
+    width: 100%;
+    height: 100%;
+    margin-top: 20px;
+    pointer-events: none;
+    // position: relative;
+    // margin: 0 !important;
+    // padding:0 !important;
+
+    :deep(.left-box) {
+      margin-top: 0px;
     }
-  }
-  .device-button-group{
-    // margin: 0 20px;
-    display: flex;
-    pointer-events: auto;
-    position: relative;
-    margin-top: 90px;
-    &::after{
-      position:absolute;
-      content: '';
-      width: calc(100% + 10px);
-      height: 2px;
-      top: 30px;
-      left: -10px;
-      border-bottom: 1px solid #0efcff;
+    :deep(.right-box) {
+      margin-top: 0px;
     }
-    .device-button{
-      padding: 4px 15px;
-      position: relative;
+    .history-group {
+      padding: 0 20px;
+      .history-container {
+        position: relative;
+        background: #6195af1a;
+        width: calc(100% + 10px);
+        top: 0px;
+        left: -10px;
+        border: 1px solid #00fffd22;
+        padding: 10px 0;
+        box-shadow: 0 0 20px #44b4ff33 inset;
+      }
+    }
+    .device-button-group {
+      // margin: 0 20px;
       display: flex;
-      justify-content: center;
-      align-items: center;
-      font-size: 14px;
-      
-      color: #fff;
-      cursor: pointer;
-      margin: 0 3px;
-
-      &::before{
-        content: '';
+      pointer-events: auto;
+      position: relative;
+      margin-top: 90px;
+      &::after {
         position: absolute;
-        top: 0;
-        right: 0;
-        bottom: 0;
-        left: 0;
-        border: 1px solid #6176AF;
-        transform: skewX(-38deg);
-        background-color: rgba(0, 77, 103,85%);
-        z-index: -1;
+        content: '';
+        width: calc(100% + 10px);
+        height: 2px;
+        top: 30px;
+        left: -10px;
+        border-bottom: 1px solid #0efcff;
       }
-    }
-    .device-active{
-      // color: #0efcff;
-      &::before{
-        border-color: #0efcff;
-        box-shadow: 1px 1px 3px 1px #0efcff inset;
+      .device-button {
+        padding: 4px 15px;
+        position: relative;
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        font-size: 14px;
+
+        color: #fff;
+        cursor: pointer;
+        margin: 0 3px;
+
+        &::before {
+          content: '';
+          position: absolute;
+          top: 0;
+          right: 0;
+          bottom: 0;
+          left: 0;
+          border: 1px solid #6176af;
+          transform: skewX(-38deg);
+          background-color: rgba(0, 77, 103, 85%);
+          z-index: -1;
+        }
+      }
+      .device-active {
+        // color: #0efcff;
+        &::before {
+          border-color: #0efcff;
+          box-shadow: 1px 1px 3px 1px #0efcff inset;
+        }
       }
     }
   }
-}
-.center-container{
-  width: 100%;
-  height: calc(100% - 200px);
-}
+  .center-container {
+    width: 100%;
+    height: calc(100% - 200px);
+  }
 
+  .input-box {
+    display: flex;
+    align-items: center;
+    padding-left: 10px;
 
-.input-box {
-  display: flex;
-  align-items: center;
-  padding-left: 10px;
+    .input-title {
+      color: #73e8fe;
+      width: auto;
+    }
 
-  .input-title {
-    color: #73e8fe;
-    width: auto;
-  }
+    .@{ventSpace}-input-number {
+      border-color: #ffffff88 !important;
+    }
 
-  .@{ventSpace}-input-number {
-    border-color: #ffffff88 !important;
+    margin-right: 10px;
   }
-
-  margin-right: 10px;
-}
 </style>

+ 0 - 267
src/views/vent/monitorManager/balancePressMonitor/index4.vue

@@ -1,267 +0,0 @@
-<template>
-  <customHeader
-    :fieldNames="{ label: 'systemname', value: 'id', options: 'children' }"
-    :options="options"
-    @change="getSelectRow"
-    :optionValue="optionValue"
-    >均压与低氧管控</customHeader
-  >
-  <div class="bg" style="width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; overflow: hidden">
-    <a-spin :spinning="loading" />
-    <div id="balancePress3D" v-show="!loading" style="width: 100%; height: 100%; position: absolute; overflow: hidden"> </div>
-    <!-- <div id="damper3DCSS" v-show="!loading" style="width: 100%; height: 100%; top:0; left: 0; position: absolute; overflow: hidden;">
-      <div>
-        <div ref="elementContent" class="elementContent">
-          <p><span class="data-title">压力(Pa):</span>{{selectData.frontRearDP}}</p>
-          <p><span class="data-title">动力源压力(MPa):</span>{{selectData.sourcePressure}}</p>
-          <p><span class="data-title">故障诊断:</span>
-            <i
-              :class="{'state-icon': true, 'open': selectData.messageBoxStatus, 'close': !selectData.messageBoxStatus}"
-            ></i>{{selectData.fault}}</p>
-        </div>
-      </div>
-    </div> -->
-  </div>
-  <div class="scene-box">
-    <div class="center-container">
-      <balancePressHome v-if="activeKey == 'monitor'" :deviceId="optionValue" />
-      <div v-else class="history-group">
-        <div class="device-button-group" v-if="deviceList.length > 0">
-          <div
-            class="device-button"
-            :class="{ 'device-active': deviceActive == device.deviceType }"
-            v-for="(device, index) in deviceList"
-            :key="index"
-            @click="deviceChange(index)"
-            >{{ device.deviceName }}</div
-          >
-        </div>
-        <div class="history-container">
-          <balancePressHistory
-            v-if="activeKey == 'monitor_history'"
-            ref="historyTable"
-            class="vent-margin-t-20"
-            :deviceId="optionValue"
-            :device-type="deviceType"
-          />
-          <balancePressHandleHistoryVue
-            v-if="activeKey == 'handler_history'"
-            ref="alarmHistoryTable"
-            class="vent-margin-t-20"
-            :deviceId="optionValue"
-            :device-type="deviceType"
-          />
-          <balancePressAlarmHistory
-            v-if="activeKey == 'faultRecord'"
-            ref="handlerHistoryTable"
-            class="vent-margin-t-20"
-            :deviceId="optionValue"
-            :device-type="deviceType"
-          />
-        </div>
-      </div>
-    </div>
-    <BottomMenu
-      :nav-list="[
-        {
-          title: '监控界面',
-          pathName: 'monitor',
-          isHover: false,
-        },
-        {
-          title: '历史监测记录',
-          pathName: 'monitor_history',
-          isHover: false,
-        },
-        {
-          title: '操作历史记录',
-          pathName: 'handler_history',
-          isHover: false,
-        },
-      ]"
-      @change="changeActive"
-    />
-  </div>
-</template>
-
-<script setup lang="ts">
-  import customHeader from '/@/components/vent/customHeader.vue';
-  import { onBeforeMount, ref, onMounted, onUnmounted, reactive, toRaw } from 'vue';
-  import { list, getTableList } from './balancePress.api';
-  import BottomMenu from '/@/views/vent/comment/components/bottomMenu.vue';
-  import balancePressHome from './components/balancePressHome.vue';
-  import balancePressHistory from './components/balancePressHistory.vue';
-  import balancePressHandleHistoryVue from './components/balancePressHandleHistory.vue';
-  import balancePressAlarmHistory from './components/balancePressAlarmHistory.vue';
-  import { useRouter } from 'vue-router';
-
-  type DeviceType = { deviceType: string; deviceName: string; datalist: any[] };
-
-  const { currentRoute } = useRouter();
-  const activeKey = ref('monitor');
-  const loading = ref(false);
-
-  const historyTable = ref();
-  const alarmHistoryTable = ref();
-  const handlerHistoryTable = ref();
-
-  //关联设备
-  const deviceList = ref<DeviceType[]>([]);
-  const deviceActive = ref('');
-  const deviceType = ref('');
-
-  const options = ref();
-  const optionValue = ref('');
-
-  function changeActive(activeValue) {
-    activeKey.value = activeValue;
-  }
-
-  function deviceChange(index) {
-    deviceActive.value = deviceType.value = deviceList.value[index].deviceType;
-  }
-
-  // 查询关联设备列表
-  async function getDeviceList() {
-    const res = await list({ devicetype: 'sys', systemID: optionValue.value });
-
-    const result = res.msgTxt;
-    const deviceArr = <DeviceType[]>[];
-    result.forEach((item) => {
-      const data = item['datalist'].filter((data: any) => {
-        const readData = data.readData;
-        return Object.assign(data, readData);
-      });
-      if (item.type != 'sys') {
-        deviceArr.unshift({
-          deviceType: item.type,
-          deviceName: item['typeName'] ? item['typeName'] : item['datalist'][0]['typeName'],
-          datalist: data,
-        });
-      }
-    });
-    deviceList.value = deviceArr;
-    deviceActive.value = deviceArr[0].deviceType;
-    deviceChange(0);
-  }
-
-  async function getSysDataSource() {
-    const res = await getTableList({ strtype: 'sys_surface_junya', pagetype: 'normal' });
-    if (!options.value) {
-      // 初始时选择第一条数据
-      options.value = res.records || [];
-      if (!optionValue.value) {
-        optionValue.value = options.value[0]['id'];
-        getDeviceList();
-      }
-    }
-  }
-
-  // 切换检测数据
-  function getSelectRow(deviceID) {
-    // const currentData = options.value.find((item: any) => {
-    //   return item.id == deviceID
-    // })
-    optionValue.value = deviceID;
-    getDeviceList();
-  }
-
-  onBeforeMount(() => {});
-
-  onMounted(async () => {
-    if (currentRoute.value && currentRoute.value['query'] && currentRoute.value['query']['id']) optionValue.value = currentRoute.value['query']['id'];
-    await getSysDataSource();
-  });
-
-  onUnmounted(() => {});
-</script>
-<style lang="less" scoped>
-  @import '/@/design/vent/modal.less';
-  @ventSpace: zxm;
-  .scene-box {
-    margin-top: 20px;
-    pointer-events: none;
-    .history-group {
-      padding: 0 20px;
-      .history-container {
-        position: relative;
-        background: #6195af1a;
-        width: calc(100% + 10px);
-        top: 0px;
-        left: -10px;
-        border: 1px solid #00fffd22;
-        padding: 10px 0;
-        box-shadow: 0 0 20px #44b4ff33 inset;
-      }
-    }
-    .device-button-group {
-      // margin: 0 20px;
-      display: flex;
-      pointer-events: auto;
-      position: relative;
-      margin-top: 90px;
-      &::after {
-        position: absolute;
-        content: '';
-        width: calc(100% + 10px);
-        height: 2px;
-        top: 30px;
-        left: -10px;
-        border-bottom: 1px solid #0efcff;
-      }
-      .device-button {
-        padding: 4px 15px;
-        position: relative;
-        display: flex;
-        justify-content: center;
-        align-items: center;
-        font-size: 14px;
-
-        color: #fff;
-        cursor: pointer;
-        margin: 0 3px;
-
-        &::before {
-          content: '';
-          position: absolute;
-          top: 0;
-          right: 0;
-          bottom: 0;
-          left: 0;
-          border: 1px solid #6176af;
-          transform: skewX(-38deg);
-          background-color: rgba(0, 77, 103, 85%);
-          z-index: -1;
-        }
-      }
-      .device-active {
-        // color: #0efcff;
-        &::before {
-          border-color: #0efcff;
-          box-shadow: 1px 1px 3px 1px #0efcff inset;
-        }
-      }
-    }
-  }
-  .center-container {
-    width: 100%;
-    height: calc(100% - 200px);
-  }
-
-  .input-box {
-    display: flex;
-    align-items: center;
-    padding-left: 10px;
-
-    .input-title {
-      color: #73e8fe;
-      width: auto;
-    }
-
-    .@{ventSpace}-input-number {
-      border-color: #ffffff88 !important;
-    }
-
-    margin-right: 10px;
-  }
-</style>

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

@@ -227,7 +227,7 @@
   // 字典内的字段可以是前缀,例如fanlocal之于fanlocal_normal
   // 安全监控设备需要更多的配置,除去配置safetymonitor,还需要配置哪些安全监控设备需要曲线
   // 因此可以配置例如A1001的dataTypeName代码(可以查看真实数据参考)
-  const historyCurveDicts = getDictItemsByCode('devices_shows_history_curve_mineeee') || [];
+  const historyCurveDicts = getDictItemsByCode('devices_shows_history_curve') || [];
   const findDict = (str) => historyCurveDicts.some(({ value }) => str.startsWith(value));
   const showCurve = computed(() => {
     if (!props.showHistoryCurve) return false;