Selaa lähdekoodia

粉尘监测预警曲线坐标轴修改-提交

lxh 4 päivää sitten
vanhempi
commit
6ba03def5a
1 muutettua tiedostoa jossa 555 lisäystä ja 562 poistoa
  1. 555 562
      src/views/vent/monitorManager/alarmMonitor/warn/dustWarn.vue

+ 555 - 562
src/views/vent/monitorManager/alarmMonitor/warn/dustWarn.vue

@@ -2,18 +2,12 @@
   <customHeader :options="options" @change="getSelectRow" :optionValue="optionValue"> 粉尘监测预警 </customHeader>
   <div class="dustWarn">
     <div class="top-dust">
-      <a-button
-        v-if="!hasPermission('dustWarn:return')"
-        preIcon="ant-design:rollback-outlined"
-        type="text"
-        size="small"
-        style="position: absolute; left: 15px; top: 15px; color: #fff"
-        @click="getBack"
-        >返回</a-button
-      >
+      <a-button v-if="!hasPermission('dustWarn:return')" preIcon="ant-design:rollback-outlined" type="text" size="small"
+        style="position: absolute; left: 15px; top: 15px; color: #fff" @click="getBack">返回</a-button>
       <div class="alarm-menu">
         <div class="card-btn">
-          <div :class="activeIndex1 == ind ? 'btn1' : 'btn'" v-for="(item, ind) in menuList" :key="ind" @click="cardClick(ind, item)">
+          <div :class="activeIndex1 == ind ? 'btn1' : 'btn'" v-for="(item, ind) in menuList" :key="ind"
+            @click="cardClick(ind, item)">
             <div class="text">{{ item.name }}</div>
             <div class="warn">{{ item.warn }}</div>
           </div>
@@ -21,12 +15,8 @@
       </div>
       <div class="dust-content">
         <div class="content-left">
-          <div
-            :class="activeIndex == index ? 'content-left-item' : 'content-left-item1'"
-            v-for="(item, index) in topAreaList"
-            :key="index"
-            @click="topAreaClick(index)"
-          >
+          <div :class="activeIndex == index ? 'content-left-item' : 'content-left-item1'"
+            v-for="(item, index) in topAreaList" :key="index" @click="topAreaClick(index)">
             <div class="content-title">{{ item.title }}</div>
             <div class="content-items" v-for="(ite, ind) in item.content" :key="ind">
               <span>{{ ite.label }}</span>
@@ -53,619 +43,622 @@
 </template>
 
 <script setup lang="ts">
-  import { ref, reactive, onMounted, onUnmounted } from 'vue';
-  import { sysTypeWarnList, sysWarn, getDevice } from '../common.api';
-  import echartLine from '../common/echartLine.vue';
-  import { useSystemSelect } from '/@/hooks/vent/useSystemSelect';
-  import { useRouter } from 'vue-router';
-  import CustomHeader from '/@/components/vent/customHeader.vue';
-  import { usePermission } from '/@/hooks/web/usePermission';
-  import { useGlobSetting } from '/@/hooks/setting';
-  import MeasurePoint from '../common/measurePoint.vue';
-  import {getMaxY,getMinY} from '../common.data'
-
-  const glob = useGlobSetting();
-  const { hasPermission } = usePermission();
-  const { options, optionValue, getSelectRow, getSysDataSource } = useSystemSelect('sys_surface_caimei'); // 参数为场景类型(设备类型管理中可以查询到)
-  //左侧数据列表
-  let menuList = ref<any[]>([]);
-  //当前左侧激活菜单的索引
-  let activeIndex1 = ref(0);
-  //顶部区域激活选项
-  let activeIndex = ref(0);
-  //顶部区域数据
-  let topAreaList = reactive<any[]>([]);
-  let choiceData = reactive<any[]>([]);
-  //粉尘图表数据
-  let echartDataFc = reactive<any>({
-    maxData: {
-      lengedData: '实时值(mg/m³)',
-      data: [],
-    },
-    minData: {
-      lengedData: '预测值(mg/m³)',
-      data: [],
-    },
-    aveValue: {
-      lengedData: '预警值(mg/m³)',
-      data: [],
+import { ref, reactive, onMounted, onUnmounted } from 'vue';
+import { sysTypeWarnList, sysWarn, getDevice } from '../common.api';
+import echartLine from '../common/echartLine.vue';
+import { useSystemSelect } from '/@/hooks/vent/useSystemSelect';
+import { useRouter } from 'vue-router';
+import CustomHeader from '/@/components/vent/customHeader.vue';
+import { usePermission } from '/@/hooks/web/usePermission';
+import { useGlobSetting } from '/@/hooks/setting';
+import MeasurePoint from '../common/measurePoint.vue';
+import { getMaxY, getMinY } from '../common.data'
+
+const glob = useGlobSetting();
+const { hasPermission } = usePermission();
+const { options, optionValue, getSelectRow, getSysDataSource } = useSystemSelect('sys_surface_caimei'); // 参数为场景类型(设备类型管理中可以查询到)
+//左侧数据列表
+let menuList = ref<any[]>([]);
+//当前左侧激活菜单的索引
+let activeIndex1 = ref(0);
+//顶部区域激活选项
+let activeIndex = ref(0);
+//顶部区域数据
+let topAreaList = reactive<any[]>([]);
+let choiceData = reactive<any[]>([]);
+//粉尘图表数据
+let echartDataFc = reactive<any>({
+  maxData: {
+    lengedData: '实时值(mg/m³)',
+    data: [],
+  },
+  minData: {
+    lengedData: '预测值(mg/m³)',
+    data: [],
+  },
+  aveValue: {
+    lengedData: '预警值(mg/m³)',
+    data: [],
+  },
+  xData: [],
+});
+let maxY = ref<any>(0);
+let minY = ref<any>(0)
+let echartDw = ref('(mg/m³)');
+let gridV = reactive({
+  top: '12%',
+  left: '2%',
+  bottom: '5%',
+  right: '5%',
+  containLabel: true,
+});
+const cardListTf = ref<any[]>([]);
+const chartListTf = ref<any[]>([]);
+let router = useRouter();
+let echartNow = ref<any[]>([]);
+let echartYc = reactive<any[]>([]);
+let flag = ref(true);
+
+// https获取监测数据
+let timer: null | NodeJS.Timeout = null;
+function getMonitor(flag?) {
+  timer = setTimeout(
+    () => {
+      getMenuList();
+      getWindDeviceList();
+      if (timer) {
+        timer = null;
+      }
+      getMonitor(false);
     },
-    xData: [],
+    flag ? 0 : 1000
+  );
+}
+//返回首页
+function getBack() {
+  router.push('/monitorChannel/monitor-alarm-home');
+}
+//菜单选项切换
+function cardClick(ind, item) {
+  clearTimeout(timer);
+  activeIndex1.value = ind;
+  getMonitor(true);
+}
+//顶部区域选项切换
+function topAreaClick(index) {
+  activeIndex.value = index;
+  echartDataFc.maxData.data.length = 0;
+  echartDataFc.minData.data.length = 0;
+  echartDataFc.aveValue.data.length = 0;
+  echartDataFc.xData.length = 0;
+  echartYc.length = 0;
+  flag.value = true;
+  if (flag.value) {
+    echartNow.value = JSON.parse(choiceData[index].readData.expectInfo)['list'];
+    flag.value = false;
+  }
+  echartYc.push({
+    time: JSON.parse(choiceData[index].readData.expectInfo)['nowTime'],
+    value: JSON.parse(choiceData[index].readData.expectInfo)['nowVal'],
   });
-  let maxY = ref<any>(0);
-  let minY=ref<any>(0)
-  let echartDw = ref('(mg/m³)');
-  let gridV = reactive({
-    top: '12%',
-    left: '2%',
-    bottom: '5%',
-    right: '5%',
-    containLabel: true,
+  let setData = [...echartNow.value, ...echartYc].sort((a, b) => Date.parse(new Date(a.time)) - Date.parse(new Date(b.time)));
+  setData.forEach((el) => {
+    if (el.value && el.value != '0') {
+      echartDataFc.xData.push(el.time);
+      echartDataFc.maxData.data.push(el.value);
+      echartDataFc.minData.data.push(JSON.parse(choiceData[index].readData.expectInfo)['aveVal']);
+      echartDataFc.aveValue.data.push(
+        JSON.parse(choiceData[activeIndex.value].readData.expectInfo)['fmin']
+          ? JSON.parse(choiceData[activeIndex.value].readData.expectInfo)['fmin']
+          : 0
+      );
+    }
   });
-  const cardListTf = ref<any[]>([]);
-  const chartListTf = ref<any[]>([]);
-  let router = useRouter();
-  let echartNow = ref<any[]>([]);
-  let echartYc = reactive<any[]>([]);
-  let flag = ref(true);
-
-  // https获取监测数据
-  let timer: null | NodeJS.Timeout = null;
-  function getMonitor(flag?) {
-    timer = setTimeout(
-      () => {
-        getMenuList();
-        getWindDeviceList();
-        if (timer) {
-          timer = null;
-        }
-        getMonitor(false);
-      },
-      flag ? 0 : 1000
-    );
-  }
-  //返回首页
-  function getBack() {
-    router.push('/monitorChannel/monitor-alarm-home');
-  }
-  //菜单选项切换
-  function cardClick(ind, item) {
-    clearTimeout(timer);
-    activeIndex1.value = ind;
-    getMonitor(true);
+}
+//获取左侧菜单列表
+async function getMenuList() {
+  let res = await sysTypeWarnList({ type: 'dust' });
+  if (res.length != 0) {
+    const menuListTemp: any[] = [];
+    res.forEach((el) => {
+      menuListTemp.push({
+        name: el.systemname,
+        warn: el.warnDes,
+        deviceID: el.id,
+        strtype: el.strtype,
+        detail: el.detail,
+      });
+    });
+    menuList.value = menuListTemp;
+    getDetailList(menuList.value[activeIndex1.value].detail);
   }
-  //顶部区域选项切换
-  function topAreaClick(index) {
-    activeIndex.value = index;
-    echartDataFc.maxData.data.length = 0;
-    echartDataFc.minData.data.length = 0;
-    echartDataFc.aveValue.data.length = 0;
-    echartDataFc.xData.length = 0;
-    echartYc.length = 0;
-    flag.value = true;
-    if (flag.value) {
-      echartNow.value = JSON.parse(choiceData[index].readData.expectInfo)['list'];
-      flag.value = false;
-    }
-    echartYc.push({
-      time: JSON.parse(choiceData[index].readData.expectInfo)['nowTime'],
-      value: JSON.parse(choiceData[index].readData.expectInfo)['nowVal'],
+}
+//获取右侧详情列表数据
+function getDetailList(param) {
+  topAreaList.length = 0;
+  if (JSON.stringify(param) != '{}') {
+    param.dust.forEach((el) => {
+      topAreaList.push({
+        title: el.strinstallpos,
+        content: [
+          { ids: 0, label: '温度(°C)', value: el.readData.temperature || '--' },
+          { ids: 1, label: '粉尘浓度(mg/m³)', value: el.readData.dustval || '--' },
+          { ids: 2, label: '喷雾水压(MPa)', value: el.readData.waterPressure || '--' },
+          { ids: 3, label: '喷雾状态', value: el.readData.atomizingState || '--' },
+        ],
+      });
     });
-    let setData = [...echartNow.value, ...echartYc].sort((a, b) => Date.parse(new Date(a.time)) - Date.parse(new Date(b.time)));
-    setData.forEach((el) => {
-      if (el.value && el.value != '0') {
-        echartDataFc.xData.push(el.time);
-        echartDataFc.maxData.data.push(el.value);
-        echartDataFc.minData.data.push(JSON.parse(choiceData[index].readData.expectInfo)['aveVal']);
-        echartDataFc.aveValue.data.push(
-          JSON.parse(choiceData[activeIndex.value].readData.expectInfo)['fmin']
-            ? JSON.parse(choiceData[activeIndex.value].readData.expectInfo)['fmin']
-            : 0
-        );
+    choiceData = param.dust;
+
+
+    if (choiceData[activeIndex.value]) {
+      if (flag.value) {
+        echartNow.value = JSON.parse(choiceData[activeIndex.value].readData.expectInfo)['list'];
+        flag.value = false;
       }
-    });
-  }
-  //获取左侧菜单列表
-  async function getMenuList() {
-    let res = await sysTypeWarnList({ type: 'dust' });
-    if (res.length != 0) {
-      const menuListTemp: any[] = [];
-      res.forEach((el) => {
-        menuListTemp.push({
-          name: el.systemname,
-          warn: el.warnDes,
-          deviceID: el.id,
-          strtype: el.strtype,
-          detail: el.detail,
-        });
+      echartYc.push({
+        time: JSON.parse(choiceData[activeIndex.value].readData.expectInfo)['nowTime'],
+        value: JSON.parse(choiceData[activeIndex.value].readData.expectInfo)['nowVal'],
+      });
+      let setData = [...echartNow.value, ...echartYc].sort((a, b) => Date.parse(new Date(a.time)) - Date.parse(new Date(b.time)));
+      echartDataFc.maxData.data.length = 0;
+      echartDataFc.minData.data.length = 0;
+      echartDataFc.aveValue.data.length = 0;
+      echartDataFc.xData.length = 0;
+      setData.forEach((el) => {
+        if (el.value && el.value != '0') {
+          echartDataFc.xData.push(el.time);
+          echartDataFc.maxData.data.push(el.value);
+          echartDataFc.minData.data.push(JSON.parse(choiceData[activeIndex.value].readData.expectInfo)['aveVal']);
+          echartDataFc.aveValue.data.push(
+            JSON.parse(choiceData[activeIndex.value].readData.expectInfo)['fmin']
+              ? JSON.parse(choiceData[activeIndex.value].readData.expectInfo)['fmin']
+              : 0
+          );
+        }
+      });
+      let echartD = [echartDataFc.maxData.data, echartDataFc.minData.data]
+      maxY.value = getMaxY(echartD)
+      minY.value = getMinY(echartD)
+      // maxY.value = echartDataFc.maxData.data.reduce((acr, cur) => {
+      //   return acr > cur ? acr : cur;
+      // });
+      // maxY.value =
+      //   maxY.value.toString().indexOf('.') == -1 ? maxY.value.toString() : maxY.value.toString().substring(0, maxY.value.toString().indexOf('.'));
+      // if (maxY.value.length < 2 && Number(maxY.value) < 1) {
+      //   maxY.value = 1;
+      // } else if (maxY.value.length < 2 && Number(maxY.value) >= 1) {
+      //   maxY.value = 10;
+      // } else if (maxY.value.length < 3) {
+      //   maxY.value = (Number(maxY.value[0]) + 1) * 10;
+      // } else if (maxY.value.length < 4) {
+      //   maxY.value = (Number(maxY.value[0]) + 1) * 100;
+      // } else if (maxY.value.length < 5) {
+      //   maxY.value = (Number(maxY.value[0]) + 1) * 1000;
+      // } else if (maxY.value.length < 6) {
+      //   maxY.value = (Number(maxY.value[0]) + 1) * 10000;
+      // }
+    } else {
+      activeIndex.value = 0;
+      if (flag.value) {
+        echartNow.value = JSON.parse(choiceData[activeIndex.value].readData.expectInfo)['list'];
+        flag.value = false;
+      }
+      echartYc.push({
+        time: JSON.parse(choiceData[activeIndex.value].readData.expectInfo)['nowTime'],
+        value: JSON.parse(choiceData[activeIndex.value].readData.expectInfo)['nowVal'],
       });
-      menuList.value = menuListTemp;
-      getDetailList(menuList.value[activeIndex1.value].detail);
+      let setData = [...echartNow.value, ...echartYc].sort((a, b) => Date.parse(new Date(a.time)) - Date.parse(new Date(b.time)));
+      echartDataFc.maxData.data.length = 0;
+      echartDataFc.minData.data.length = 0;
+      echartDataFc.aveValue.data.length = 0;
+      echartDataFc.xData.length = 0;
+      setData.forEach((el) => {
+        if (el.value && el.value != '0') {
+          echartDataFc.xData.push(el.time);
+          echartDataFc.maxData.data.push(el.value);
+          echartDataFc.minData.data.push(JSON.parse(choiceData[activeIndex.value].readData.expectInfo)['aveVal']);
+          echartDataFc.aveValue.data.push(
+            JSON.parse(choiceData[activeIndex.value].readData.expectInfo)['fmin']
+              ? JSON.parse(choiceData[activeIndex.value].readData.expectInfo)['fmin']
+              : 0
+          );
+        }
+      });
+      let echartD = [echartDataFc.maxData.data, echartDataFc.minData.data]
+      maxY.value = getMaxY(echartD)
+      minY.value = getMinY(echartD)
+      // maxY.value = echartDataFc.maxData.data.reduce((acr, cur) => {
+      //   return acr > cur ? acr : cur;
+      // });
+      // maxY.value =
+      //   maxY.value.toString().indexOf('.') == -1 ? maxY.value.toString() : maxY.value.toString().substring(0, maxY.value.toString().indexOf('.'));
+      // if (maxY.value.length < 2) {
+      //   maxY.value = 10;
+      // } else if (maxY.value.length < 3) {
+      //   maxY.value = (Number(maxY.value[0]) + 1) * 10;
+      // } else if (maxY.value.length < 4) {
+      //   maxY.value = (Number(maxY.value[0]) + 1) * 100;
+      // } else if (maxY.value.length < 5) {
+      //   maxY.value = (Number(maxY.value[0]) + 1) * 1000;
+      // } else if (maxY.value.length < 6) {
+      //   maxY.value = (Number(maxY.value[0]) + 1) * 10000;
+      // }
     }
   }
-  //获取右侧详情列表数据
-  function getDetailList(param) {
-    topAreaList.length = 0;
-    if (JSON.stringify(param) != '{}') {
-      param.dust.forEach((el) => {
-        topAreaList.push({
-          title: el.strinstallpos,
-          content: [
-            { ids: 0, label: '温度(°C)', value: el.readData.temperature || '--' },
-            { ids: 1, label: '粉尘浓度(mg/m³)', value: el.readData.dustval || '--' },
-            { ids: 2, label: '喷雾水压(MPa)', value: el.readData.waterPressure || '--' },
-            { ids: 3, label: '喷雾状态', value: el.readData.atomizingState || '--' },
+}
+
+//获取粉尘监控测点信息
+async function getWindDeviceList() {
+  // cardListTf.length = 0;
+  const cardListTfTemp: any[] = [];
+  const chartListTfTemp: any[] = [];
+  let res = await getDevice({ devicetype: 'dusting', pagetype: 'normal' });
+  if (res && res.msgTxt[0]) {
+    let list = res.msgTxt[0].datalist || [];
+    if (list.length > 0) {
+      list.forEach((el: any) => {
+        const readData = el.readData;
+        el = Object.assign(el, readData);
+        cardListTfTemp.push({
+          label: '通信状态',
+          value: el.netStatus == '0' ? '断开' : '连接',
+          listR: [
+            { id: 0, label: '安装位置', dw: '', value: el.strinstallpos || '-' },
+            { id: 1, label: '粉尘浓度', dw: '(mg/m³)', value: el.dustval || '-' },
+            {
+              id: 2,
+              label: '巷道湿度',
+              dw: el.humidity && Number(el.humidity) < 1 ? '(RH)' : el.humidity && Number(el.humidity) > 1 ? '(%RH)' : '',
+              value: el.humidity || '-',
+            },
+            { id: 4, label: '巷道温度', dw: el.humidity ? '(℃)' : '', value: el.temperature || '-' },
+            {
+              id: 3,
+              label: '是否报警',
+              dw: '',
+              value: el.warnFlag == '0' ? '正常' : el.warnFlag == 1 ? '报警' : el.warnFlag == 2 ? '断开' : '未监测',
+            },
           ],
         });
-      });
-      choiceData = param.dust;
 
-      if (choiceData[activeIndex.value]) {
-        if (flag.value) {
-          echartNow.value = JSON.parse(choiceData[activeIndex.value].readData.expectInfo)['list'];
-          flag.value = false;
-        }
-        echartYc.push({
-          time: JSON.parse(choiceData[activeIndex.value].readData.expectInfo)['nowTime'],
-          value: JSON.parse(choiceData[activeIndex.value].readData.expectInfo)['nowVal'],
-        });
-        let setData = [...echartNow.value, ...echartYc].sort((a, b) => Date.parse(new Date(a.time)) - Date.parse(new Date(b.time)));
-        echartDataFc.maxData.data.length = 0;
-        echartDataFc.minData.data.length = 0;
-        echartDataFc.aveValue.data.length = 0;
-        echartDataFc.xData.length = 0;
-        setData.forEach((el) => {
-          if (el.value && el.value != '0') {
-            echartDataFc.xData.push(el.time);
-            echartDataFc.maxData.data.push(el.value);
-            echartDataFc.minData.data.push(JSON.parse(choiceData[activeIndex.value].readData.expectInfo)['aveVal']);
-            echartDataFc.aveValue.data.push(
-              JSON.parse(choiceData[activeIndex.value].readData.expectInfo)['fmin']
-                ? JSON.parse(choiceData[activeIndex.value].readData.expectInfo)['fmin']
-                : 0
-            );
-          }
-        });
-    maxY.value = getMaxY(echartDataFc.maxData.data)
-    minY.value = getMinY(echartDataFc.maxData.data)
-        // maxY.value = echartDataFc.maxData.data.reduce((acr, cur) => {
-        //   return acr > cur ? acr : cur;
-        // });
-        // maxY.value =
-        //   maxY.value.toString().indexOf('.') == -1 ? maxY.value.toString() : maxY.value.toString().substring(0, maxY.value.toString().indexOf('.'));
-        // if (maxY.value.length < 2 && Number(maxY.value) < 1) {
-        //   maxY.value = 1;
-        // } else if (maxY.value.length < 2 && Number(maxY.value) >= 1) {
-        //   maxY.value = 10;
-        // } else if (maxY.value.length < 3) {
-        //   maxY.value = (Number(maxY.value[0]) + 1) * 10;
-        // } else if (maxY.value.length < 4) {
-        //   maxY.value = (Number(maxY.value[0]) + 1) * 100;
-        // } else if (maxY.value.length < 5) {
-        //   maxY.value = (Number(maxY.value[0]) + 1) * 1000;
-        // } else if (maxY.value.length < 6) {
-        //   maxY.value = (Number(maxY.value[0]) + 1) * 10000;
-        // }
-      } else {
-        activeIndex.value = 0;
-        if (flag.value) {
-          echartNow.value = JSON.parse(choiceData[activeIndex.value].readData.expectInfo)['list'];
-          flag.value = false;
-        }
-        echartYc.push({
-          time: JSON.parse(choiceData[activeIndex.value].readData.expectInfo)['nowTime'],
-          value: JSON.parse(choiceData[activeIndex.value].readData.expectInfo)['nowVal'],
+        // 初始化预测曲线配置,分别为x轴时间、平均、最大、最小、实时
+        const avgParam = el.avgParam || {
+          avg_dusting_value: 0,
+          max_dusting_value: 0,
+          min_dusting_value: 0,
+        };
+        chartListTfTemp.push({
+          label: el.strinstallpos,
+          time: new Date(),
+          data: [avgParam.avg_dusting_value, avgParam.max_dusting_value, avgParam.min_dusting_value, el.readData.dustval],
         });
-        let setData = [...echartNow.value, ...echartYc].sort((a, b) => Date.parse(new Date(a.time)) - Date.parse(new Date(b.time)));
-        echartDataFc.maxData.data.length = 0;
-        echartDataFc.minData.data.length = 0;
-        echartDataFc.aveValue.data.length = 0;
-        echartDataFc.xData.length = 0;
-        setData.forEach((el) => {
-          if (el.value && el.value != '0') {
-            echartDataFc.xData.push(el.time);
-            echartDataFc.maxData.data.push(el.value);
-            echartDataFc.minData.data.push(JSON.parse(choiceData[activeIndex.value].readData.expectInfo)['aveVal']);
-            echartDataFc.aveValue.data.push(
-              JSON.parse(choiceData[activeIndex.value].readData.expectInfo)['fmin']
-                ? JSON.parse(choiceData[activeIndex.value].readData.expectInfo)['fmin']
-                : 0
-            );
-          }
-        });
-        maxY.value = getMaxY(echartDataFc.maxData.data)
-        minY.value = getMinY(echartDataFc.maxData.data)
-        // maxY.value = echartDataFc.maxData.data.reduce((acr, cur) => {
-        //   return acr > cur ? acr : cur;
-        // });
-        // maxY.value =
-        //   maxY.value.toString().indexOf('.') == -1 ? maxY.value.toString() : maxY.value.toString().substring(0, maxY.value.toString().indexOf('.'));
-        // if (maxY.value.length < 2) {
-        //   maxY.value = 10;
-        // } else if (maxY.value.length < 3) {
-        //   maxY.value = (Number(maxY.value[0]) + 1) * 10;
-        // } else if (maxY.value.length < 4) {
-        //   maxY.value = (Number(maxY.value[0]) + 1) * 100;
-        // } else if (maxY.value.length < 5) {
-        //   maxY.value = (Number(maxY.value[0]) + 1) * 1000;
-        // } else if (maxY.value.length < 6) {
-        //   maxY.value = (Number(maxY.value[0]) + 1) * 10000;
-        // }
-      }
+      });
     }
   }
-
-  //获取粉尘监控测点信息
-  async function getWindDeviceList() {
-    // cardListTf.length = 0;
-    const cardListTfTemp: any[] = [];
-    const chartListTfTemp: any[] = [];
-    let res = await getDevice({ devicetype: 'dusting', pagetype: 'normal' });
-    if (res && res.msgTxt[0]) {
-      let list = res.msgTxt[0].datalist || [];
-      if (list.length > 0) {
-        list.forEach((el: any) => {
-          const readData = el.readData;
-          el = Object.assign(el, readData);
-          cardListTfTemp.push({
-            label: '通信状态',
-            value: el.netStatus == '0' ? '断开' : '连接',
-            listR: [
-              { id: 0, label: '安装位置', dw: '', value: el.strinstallpos || '-' },
-              { id: 1, label: '粉尘浓度', dw: '(mg/m³)', value: el.dustval || '-' },
-              {
-                id: 2,
-                label: '巷道湿度',
-                dw: el.humidity && Number(el.humidity) < 1 ? '(RH)' : el.humidity && Number(el.humidity) > 1 ? '(%RH)' : '',
-                value: el.humidity || '-',
-              },
-              { id: 4, label: '巷道温度', dw: el.humidity ? '(℃)' : '', value: el.temperature || '-' },
-              {
-                id: 3,
-                label: '是否报警',
-                dw: '',
-                value: el.warnFlag == '0' ? '正常' : el.warnFlag == 1 ? '报警' : el.warnFlag == 2 ? '断开' : '未监测',
-              },
-            ],
-          });
-
-          // 初始化预测曲线配置,分别为x轴时间、平均、最大、最小、实时
-          const avgParam = el.avgParam || {
-            avg_dusting_value: 0,
-            max_dusting_value: 0,
-            min_dusting_value: 0,
-          };
-          chartListTfTemp.push({
-            label: el.strinstallpos,
-            time: new Date(),
-            data: [avgParam.avg_dusting_value, avgParam.max_dusting_value, avgParam.min_dusting_value, el.readData.dustval],
-          });
-        });
-      }
-    }
-    cardListTf.value = cardListTfTemp;
-    chartListTf.value = chartListTfTemp;
+  cardListTf.value = cardListTfTemp;
+  chartListTf.value = chartListTfTemp;
+}
+onMounted(() => {
+  getMenuList();
+  getMonitor(true);
+});
+onUnmounted(() => {
+  if (timer) {
+    clearTimeout(timer);
+    timer = undefined;
   }
-  onMounted(() => {
-    getMenuList();
-    getMonitor(true);
-  });
-  onUnmounted(() => {
-    if (timer) {
-      clearTimeout(timer);
-      timer = undefined;
-    }
-  });
+});
 </script>
 
 <style lang="less" scoped>
-  @import '/@/design/theme.less';
-
-  @{theme-deepblue} {
-    .dustWarn {
-      --image-border: url('/@/assets/images/themify/deepblue/fire/border.png');
-      --image-no-choice: url('/@/assets/images/themify/deepblue/fire/no-choice.png');
-      --image-choice: url('/@/assets/images/themify/deepblue/fire/choice.png');
-      --image-dust-choice: url('/@/assets/images/themify/deepblue/fire/dust-choice.png');
-      --image-dust-content: url('/@/assets/images/themify/deepblue/fire/dust-content.png');
-      --image-dust-choice1: url('/@/assets/images/themify/deepblue/fire/dust-choice1.png');
-      --image-dust-content: url('/@/assets/images/themify/deepblue/fire/dust-content.png');
-      --image-bj1: url('/@/assets/images/themify/deepblue/fire/bj1.png');
-    }
-  }
+@import '/@/design/theme.less';
 
+@{theme-deepblue} {
   .dustWarn {
-    --image-border: url('/@/assets/images/fire/border.png');
-    --image-no-choice: url('/@/assets/images/fire/no-choice.png');
-    --image-choice: url('/@/assets/images/fire/choice.png');
-    --image-dust-choice: url('/@/assets/images/fire/dust-choice.png');
-    --image-dust-content: url('/@/assets/images/fire/dust-content.png');
-    --image-dust-choice1: url('/@/assets/images/fire/dust-choice1.png');
-    --image-dust-content: url('/@/assets/images/fire/dust-content.png');
-    --image-bj1: url('/@/assets/images/fire/bj1.png');
-    width: 100%;
-    height: 100%;
-    padding: 80px 10px 15px 10px;
-    box-sizing: border-box;
-
-    .top-dust {
-      display: flex;
-      justify-content: space-between;
-      height: 50%;
-      margin-bottom: 15px;
-      background: var(--image-border) no-repeat center;
-      background-size: 100% 100%;
+    --image-border: url('/@/assets/images/themify/deepblue/fire/border.png');
+    --image-no-choice: url('/@/assets/images/themify/deepblue/fire/no-choice.png');
+    --image-choice: url('/@/assets/images/themify/deepblue/fire/choice.png');
+    --image-dust-choice: url('/@/assets/images/themify/deepblue/fire/dust-choice.png');
+    --image-dust-content: url('/@/assets/images/themify/deepblue/fire/dust-content.png');
+    --image-dust-choice1: url('/@/assets/images/themify/deepblue/fire/dust-choice1.png');
+    --image-dust-content: url('/@/assets/images/themify/deepblue/fire/dust-content.png');
+    --image-bj1: url('/@/assets/images/themify/deepblue/fire/bj1.png');
+  }
+}
+
+.dustWarn {
+  --image-border: url('/@/assets/images/fire/border.png');
+  --image-no-choice: url('/@/assets/images/fire/no-choice.png');
+  --image-choice: url('/@/assets/images/fire/choice.png');
+  --image-dust-choice: url('/@/assets/images/fire/dust-choice.png');
+  --image-dust-content: url('/@/assets/images/fire/dust-content.png');
+  --image-dust-choice1: url('/@/assets/images/fire/dust-choice1.png');
+  --image-dust-content: url('/@/assets/images/fire/dust-content.png');
+  --image-bj1: url('/@/assets/images/fire/bj1.png');
+  width: 100%;
+  height: 100%;
+  padding: 80px 10px 15px 10px;
+  box-sizing: border-box;
+
+  .top-dust {
+    display: flex;
+    justify-content: space-between;
+    height: 50%;
+    margin-bottom: 15px;
+    background: var(--image-border) no-repeat center;
+    background-size: 100% 100%;
+
+    .alarm-menu {
+      height: 100%;
+      width: 15%;
+      padding: 10px;
+      box-sizing: border-box;
 
-      .alarm-menu {
+      .card-btn {
+        width: 100%;
         height: 100%;
-        width: 15%;
-        padding: 10px;
-        box-sizing: border-box;
+        overflow-y: auto;
+
+        .btn {
+          position: relative;
+          width: 81%;
+          height: 24%;
+          margin-bottom: 6%;
+          font-family: 'douyuFont';
+          background: var(--image-no-choice) no-repeat;
+          background-size: 100% 100%;
+          cursor: pointer;
+
+          .text {
+            width: 80%;
+            position: absolute;
+            left: 50%;
+            top: 28px;
+            font-size: 14px;
+            color: var(--vent-table-action-link);
+            text-align: center;
+            transform: translate(-50%, 0);
+          }
 
-        .card-btn {
-          width: 100%;
-          height: 100%;
-          overflow-y: auto;
-
-          .btn {
-            position: relative;
-            width: 81%;
-            height: 24%;
-            margin-bottom: 6%;
-            font-family: 'douyuFont';
-            background: var(--image-no-choice) no-repeat;
-            background-size: 100% 100%;
-            cursor: pointer;
-
-            .text {
-              width: 80%;
-              position: absolute;
-              left: 50%;
-              top: 28px;
-              font-size: 14px;
-              color: var(--vent-table-action-link);
-              text-align: center;
-              transform: translate(-50%, 0);
-            }
+          .warn {
+            width: 100%;
+            position: absolute;
+            left: 50%;
+            bottom: 11px;
+            font-size: 12px;
+            color: #fff;
+            text-align: center;
+            transform: translate(-50%, 0);
+          }
+        }
 
-            .warn {
-              width: 100%;
-              position: absolute;
-              left: 50%;
-              bottom: 11px;
-              font-size: 12px;
-              color: #fff;
-              text-align: center;
-              transform: translate(-50%, 0);
-            }
+        .btn1 {
+          position: relative;
+          width: 100%;
+          height: 24%;
+          margin-bottom: 6%;
+          font-family: 'douyuFont';
+          background: var(--image-choice) no-repeat;
+          background-size: 100% 100%;
+          cursor: pointer;
+
+          .text {
+            width: 80%;
+            position: absolute;
+            left: 50%;
+            top: 28px;
+            font-size: 14px;
+            color: var(--vent-table-action-link);
+            text-align: center;
+            transform: translate(-62%, 0);
           }
 
-          .btn1 {
-            position: relative;
+          .warn {
             width: 100%;
-            height: 24%;
-            margin-bottom: 6%;
-            font-family: 'douyuFont';
-            background: var(--image-choice) no-repeat;
-            background-size: 100% 100%;
-            cursor: pointer;
-
-            .text {
-              width: 80%;
-              position: absolute;
-              left: 50%;
-              top: 28px;
-              font-size: 14px;
-              color: var(--vent-table-action-link);
-              text-align: center;
-              transform: translate(-62%, 0);
-            }
-
-            .warn {
-              width: 100%;
-              position: absolute;
-              left: 50%;
-              bottom: 11px;
-              font-size: 14px;
-              color: #fff;
-              text-align: center;
-              transform: translate(-60%, 0);
-            }
+            position: absolute;
+            left: 50%;
+            bottom: 11px;
+            font-size: 14px;
+            color: #fff;
+            text-align: center;
+            transform: translate(-60%, 0);
           }
         }
       }
+    }
 
-      .dust-content {
-        display: flex;
-        justify-content: space-between;
+    .dust-content {
+      display: flex;
+      justify-content: space-between;
+      height: 100%;
+      width: 85%;
+      padding: 10px 0px;
+      box-sizing: border-box;
+
+      .content-left {
+        width: 280px;
         height: 100%;
-        width: 85%;
-        padding: 10px 0px;
-        box-sizing: border-box;
+        display: flex;
+        flex-direction: column;
+        // justify-content: space-around;
+        align-items: flex-start;
+        overflow-y: auto;
+        overflow-x: hidden;
+
+        .content-left-item {
+          position: relative;
+          width: 272px;
+          height: 173px;
+          flex-shrink: 0;
+          background: var(--image-dust-choice) no-repeat center;
+          background-size: 100% 100%;
+          margin: 5px 0px;
+
+          .content-title {
+            width: 85%;
+            position: absolute;
+            top: 2px;
+            left: 50%;
+            transform: translate(-55%, 0);
+            font-size: 14px;
+            color: #fff;
+            text-align: center;
+          }
 
-        .content-left {
-          width: 280px;
-          height: 100%;
-          display: flex;
-          flex-direction: column;
-          // justify-content: space-around;
-          align-items: flex-start;
-          overflow-y: auto;
-          overflow-x: hidden;
-
-          .content-left-item {
-            position: relative;
-            width: 272px;
-            height: 173px;
-            flex-shrink: 0;
-            background: var(--image-dust-choice) no-repeat center;
+          .content-items {
+            position: absolute;
+            left: 50%;
+            transform: translate(-54%, 0);
+            display: flex;
+            justify-content: space-between;
+            align-items: center;
+            width: 240px;
+            height: 26px;
+            color: #fff;
+            font-size: 14px;
+            padding: 0px 5px;
+            box-sizing: border-box;
+            background: var(--image-dust-content) no-repeat center;
             background-size: 100% 100%;
-            margin: 5px 0px;
-
-            .content-title {
-              width: 85%;
-              position: absolute;
-              top: 2px;
-              left: 50%;
-              transform: translate(-55%, 0);
-              font-size: 14px;
-              color: #fff;
-              text-align: center;
+
+            &:nth-child(2) {
+              top: 32px;
             }
 
-            .content-items {
-              position: absolute;
-              left: 50%;
-              transform: translate(-54%, 0);
-              display: flex;
-              justify-content: space-between;
-              align-items: center;
-              width: 240px;
-              height: 26px;
-              color: #fff;
-              font-size: 14px;
-              padding: 0px 5px;
-              box-sizing: border-box;
-              background: var(--image-dust-content) no-repeat center;
-              background-size: 100% 100%;
-
-              &:nth-child(2) {
-                top: 32px;
-              }
-
-              &:nth-child(3) {
-                top: 67px;
-              }
-
-              &:nth-child(4) {
-                top: 102px;
-              }
-
-              &:nth-child(5) {
-                top: 136px;
-              }
+            &:nth-child(3) {
+              top: 67px;
             }
-          }
 
-          .content-left-item1 {
-            position: relative;
-            width: 250px;
-            height: 173px;
-            flex-shrink: 0;
-            background: var(--image-dust-choice1) no-repeat center;
-            background-size: 100% 100%;
-            margin: 5px 0px;
-
-            .content-title {
-              width: 85%;
-              position: absolute;
-              top: 2px;
-              left: 50%;
-              transform: translate(-50%, 0);
-              font-size: 14px;
-              color: #fff;
-              text-align: center;
+            &:nth-child(4) {
+              top: 102px;
             }
 
-            .content-items {
-              position: absolute;
-              left: 50%;
-              transform: translate(-54%, 0);
-              display: flex;
-              justify-content: space-between;
-              align-items: center;
-              width: 215px;
-              height: 26px;
-              color: #fff;
-              font-size: 14px;
-              padding: 0px 5px;
-              box-sizing: border-box;
-              background: var(--image-dust-content) no-repeat center;
-              background-size: 100% 100%;
-
-              &:nth-child(2) {
-                top: 32px;
-              }
-
-              &:nth-child(3) {
-                top: 67px;
-              }
-
-              &:nth-child(4) {
-                top: 102px;
-              }
-
-              &:nth-child(5) {
-                top: 136px;
-              }
+            &:nth-child(5) {
+              top: 136px;
             }
           }
         }
 
-        .content-right {
-          width: calc(100% - 280px);
-          height: 100%;
+        .content-left-item1 {
+          position: relative;
+          width: 250px;
+          height: 173px;
+          flex-shrink: 0;
+          background: var(--image-dust-choice1) no-repeat center;
+          background-size: 100% 100%;
+          margin: 5px 0px;
+
+          .content-title {
+            width: 85%;
+            position: absolute;
+            top: 2px;
+            left: 50%;
+            transform: translate(-50%, 0);
+            font-size: 14px;
+            color: #fff;
+            text-align: center;
+          }
 
-          .title-t {
-            height: 30px;
-            margin-bottom: 10px;
+          .content-items {
+            position: absolute;
+            left: 50%;
+            transform: translate(-54%, 0);
             display: flex;
             justify-content: space-between;
             align-items: center;
+            width: 215px;
+            height: 26px;
+            color: #fff;
+            font-size: 14px;
+            padding: 0px 5px;
+            box-sizing: border-box;
+            background: var(--image-dust-content) no-repeat center;
+            background-size: 100% 100%;
+
+            &:nth-child(2) {
+              top: 32px;
+            }
+
+            &:nth-child(3) {
+              top: 67px;
+            }
+
+            &:nth-child(4) {
+              top: 102px;
+            }
 
-            .text-t {
-              font-family: 'douyuFont';
-              font-size: 14px;
-              color: #fff;
+            &:nth-child(5) {
+              top: 136px;
             }
           }
+        }
+      }
 
-          .echart-boxd {
-            width: 100%;
-            height: calc(100% - 40px);
+      .content-right {
+        width: calc(100% - 280px);
+        height: 100%;
+
+        .title-t {
+          height: 30px;
+          margin-bottom: 10px;
+          display: flex;
+          justify-content: space-between;
+          align-items: center;
+
+          .text-t {
+            font-family: 'douyuFont';
+            font-size: 14px;
+            color: #fff;
           }
         }
 
-        .content-right1 {
+        .echart-boxd {
           width: 100%;
-          height: 100%;
+          height: calc(100% - 40px);
+        }
+      }
 
-          .title-t {
-            height: 30px;
-            margin-bottom: 10px;
-            display: flex;
-            justify-content: space-between;
-            align-items: center;
+      .content-right1 {
+        width: 100%;
+        height: 100%;
 
-            .text-t {
-              font-family: 'douyuFont';
-              font-size: 14px;
-              color: #fff;
-            }
-          }
+        .title-t {
+          height: 30px;
+          margin-bottom: 10px;
+          display: flex;
+          justify-content: space-between;
+          align-items: center;
 
-          .echart-boxd {
-            width: 100%;
-            height: calc(100% - 40px);
+          .text-t {
+            font-family: 'douyuFont';
+            font-size: 14px;
+            color: #fff;
           }
         }
+
+        .echart-boxd {
+          width: 100%;
+          height: calc(100% - 40px);
+        }
       }
     }
+  }
 
-    .bot-dust {
-      height: calc(50% - 15px);
-      background: var(--image-border) no-repeat center;
-      background-size: 100% 100%;
+  .bot-dust {
+    height: calc(50% - 15px);
+    background: var(--image-border) no-repeat center;
+    background-size: 100% 100%;
+    padding: 10px;
+    box-sizing: border-box;
+
+    .bot-area {
+      height: 100%;
       padding: 10px;
+      background: var(--image-bj1) no-repeat center;
+      background-size: 100% 100%;
       box-sizing: border-box;
-
-      .bot-area {
-        height: 100%;
-        padding: 10px;
-        background: var(--image-bj1) no-repeat center;
-        background-size: 100% 100%;
-        box-sizing: border-box;
-      }
     }
   }
+}
 </style>