فهرست منبع

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

lxh 9 ماه پیش
والد
کامیت
751dc19e0a

BIN
src/assets/images/home-container/three-dialog.png


+ 24 - 12
src/components/vent/micro/needAir.vue

@@ -1,31 +1,43 @@
 <template>
-  <div v-if="loading" class="app-loading">
-    <div id="loader-wrapper" class="app-loading">
-      <div class="app-loading-wrap">
-        <div class="app-loading-dots">
-          <span class="dot dot-spin"><i></i><i></i><i></i><i></i></span>
-        </div>
-      </div>
-    </div>
+  <div style="position: absolute; width: 100%; height: 100%">
+    <a-spin class="loading-box" size="large" :spinning="loading" tip="正在加载,请稍等。。。" />
   </div>
   <div id="micro-need-air"></div>
 </template>
 <script lang="ts">
-  import { onMounted, onBeforeUnmount, defineComponent } from 'vue';
+  import { onMounted, onBeforeUnmount, defineComponent, ref } from 'vue';
   import { unmountMicroApps, mountMicroApp } from '/@/qiankun';
   import { resetMicroContentWH } from '/@/utils/domUtils';
   export default defineComponent({
     name: 'NeedAir',
     setup() {
+      const loading = ref(true);
       onMounted(() => {
         mountMicroApp('/micro-need-air');
-        resetMicroContentWH('micro-need-air');
+        resetMicroContentWH('micro-need-air', () => {
+          loading.value = false;
+        });
       });
 
-      onBeforeUnmount(async () => {
+      onBeforeUnmount(() => {
         unmountMicroApps(['/micro-need-air']);
       });
+
+      return { loading };
     },
   });
 </script>
-<style lang="less" scoped></style>
+<style lang="less" scoped>
+  .loading-box {
+    position: fixed;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    width: 100%;
+    height: 100%;
+  }
+  #micro-need-air {
+    width: 100%;
+    height: 100%;
+  }
+</style>

+ 4 - 8
src/views/vent/home/clique/clique.api.ts

@@ -1,22 +1,18 @@
 import { defHttp } from '/@/utils/http/axios';
 
-
 enum Api {
-    getHomeData = '/company/index/getHomeData',
-    getList = '/ventanaly-sharefile/fileServer/queryEachFileNum',
+  getHomeData = '/company/index/getHomeData',
+  getList = '/ventanaly-sharefile/fileServer/queryEachFileNum',
 }
 
-
 /**
  * 公司端首页
  * @param params
  */
-export const getHomeData = () => defHttp.post({ url: Api.getHomeData,  });
+export const getHomeData = () => defHttp.post({ url: Api.getHomeData });
 
 /**
  * 文件共享中心
  * @param params
  */
-export const getList = () => defHttp.post({ url: Api.getList,  });
-
-
+export const getList = () => defHttp.post({ url: Api.getList });

+ 14 - 27
src/views/vent/home/clique/components/3Dmap/index.vue

@@ -16,86 +16,73 @@
 
   const locationInfo = [
     {
-      // name: 'bd',
-      name: '矿矿矿',
+      name: '保德矿',
       code: 'bd',
       value: [111.102548, 38.951875],
     },
     {
-      // name: 'jj',
-      name: '矿矿矿',
+      name: '锦界矿',
       code: 'jj',
       value: [110.174801, 38.742404],
     },
     {
-      // name: 'yjl',
-      name: '矿矿矿',
+      name: '榆家梁矿',
       code: 'yjl',
       value: [110.526055, 39.044234],
     },
     {
-      // name: 'dlt',
-      name: '矿矿矿',
+      name: '大柳塔矿',
       code: 'dlt',
       value: [110.245165, 39.259314],
     },
     // {
-    //   name: 'sd',
+    //   name: '神东煤炭集团',
     //   value: [110.216401, 39.276499],
     // },
     {
-      // name: 'sw',
-      name: '矿矿矿',
+      name: '上湾矿',
       code: 'sw',
       value: [110.191364, 39.290282],
     },
     {
-      // name: 'hlg',
-      name: '矿矿矿',
+      name: '哈拉沟矿',
       code: 'hlg',
       value: [110.207022, 39.308751],
     },
     {
-      // name: 'blt',
-      name: '矿矿矿',
+      name: '补连塔矿',
       code: 'blt',
       value: [110.173867, 39.358305],
     },
     {
-      // name: 'sgt',
-      name: '矿矿矿',
+      name: '石圪台矿',
       code: 'sgt',
       value: [110.136362, 39.418578],
     },
 
     {
-      // name: 'cct',
-      name: '矿矿矿',
+      name: '寸草塔矿',
       code: 'cct',
       value: [110.107954, 39.436366],
     },
     {
-      // name: 'wlml',
-      name: '矿矿矿',
+      name: '乌兰木伦矿',
       code: 'wlml',
       value: [110.102314, 39.456531],
     },
 
     {
-      // name: 'bet',
-      name: '矿矿矿',
+      name: '布尔台矿',
       code: 'bet',
       value: [110.066138, 39.480941],
     },
     {
-      // name: 'cce',
-      name: '矿矿矿',
+      name: '寸草塔二矿',
       code: 'ccte',
       value: [110.059497, 39.505482],
     },
     {
-      // name: 'lt',
-      name: '矿矿矿',
+      name: '柳塔矿',
       code: 'lt',
       value: [110.094463, 39.536514],
     },

+ 2 - 2
src/views/vent/home/clique/components/dialog-modal.vue

@@ -90,8 +90,8 @@
     },
   });
 
-  // let modalTitle = ref('榆家梁矿');
-  let modalTitle = ref('yjl');
+  let modalTitle = ref('布尔台矿');
+  // let modalTitle = ref('yjl');
   let modalCard = reactive([
     { imgSrc: getAssetURL('company/home/hang.png'), label: '巷道长度', value: 0 },
     { imgSrc: getAssetURL('company/home/people.png'), label: '人员总数', value: 0 },

+ 292 - 270
src/views/vent/home/clique/components/echart-scene.vue

@@ -1,320 +1,342 @@
 <template>
-    <div class="echartScene">
-        <div class="scene" ref="scene"></div>
-        <div class="pic">
-            <img src="../../../../../assets/images/company/echart-zu.png" alt="" />
-        </div>
-        <div class="percent">
-            <div class="percent-box">
-                <span class="per-v">{{ percent.jf }}</span>
-                <span class="per-d">m³/min</span>
-            </div>
-            <div class="percent-box">
-                <span class="per-v">{{ percent.yf }}</span>
-                <span class="per-d">m³/min</span>
-            </div>
-            <div class="percent-box">
-                <span class="per-v">{{ percent.hf }}</span>
-                <span class="per-d">m³/min</span>
-            </div>
-        </div>
+  <div class="echartScene">
+    <div class="scene" ref="scene"></div>
+    <div class="pic">
+      <img src="../../../../../assets/images/company/echart-zu.png" alt="" />
     </div>
+    <div class="percent">
+      <div class="percent-box">
+        <span class="per-v">{{ percent.jf }}</span>
+        <span class="per-d">m³/min</span>
+      </div>
+      <div class="percent-box">
+        <span class="per-v">{{ percent.yf }}</span>
+        <span class="per-d">m³/min</span>
+      </div>
+      <div class="percent-box">
+        <span class="per-v">{{ percent.hf }}</span>
+        <span class="per-d">m³/min</span>
+      </div>
+    </div>
+  </div>
 </template>
-  
+
 <script lang="ts" setup>
-import { defineProps, ref, nextTick, reactive, watch,  } from 'vue';
-import * as echarts from 'echarts';
+  import { defineProps, ref, nextTick, reactive, watch } from 'vue';
+  import * as echarts from 'echarts';
 
-let props=defineProps({
-    echartData:{
-        type:Object,
-        default:()=>{
-            return {}
-        }
-    }
-})
-//获取dom元素节点
-let scene = ref<any>();
+  let props = defineProps({
+    echartData: {
+      type: Object,
+      default: () => {
+        return {};
+      },
+    },
+  });
+  //获取dom元素节点
+  let scene = ref<any>();
 
-let percent = reactive({
+  let percent = reactive({
     jf: 0,
     yf: 0,
     hf: 0,
-    jfEcharts:0,
-    yfEcharts:0,
-    hfEcharts:0,
-})
+    jfEcharts: 0,
+    yfEcharts: 0,
+    hfEcharts: 0,
+  });
 
-function getOption() {
+  function getOption() {
     nextTick(() => {
-        let placeHolderStyle = {
-            normal: {
-                color: '#fff',
-                opacity: 0.1
+      let placeHolderStyle = {
+        normal: {
+          color: '#fff',
+          opacity: 0.1,
+        },
+        emphasis: {
+          color: '#fff',
+          opacity: 0.1,
+        },
+      };
+      console.log(scene.value, 'scene');
+      const myChart = echarts.init(scene.value);
+      let option = {
+        color: ['#4edaff', '#53ffde', '#a696ed'],
+        textStyle: {
+          fontSize: 14,
+          color: '#40E7F4 ',
+        },
+        tooltip: {
+          trigger: 'item',
+          formatter: '{a} : {b}{c} ({d}%)',
+        },
+        legend: [
+          {
+            // orient: 'vertical',
+            x: '58%',
+            y: '15%',
+            itemWidth: 8,
+            itemHeight: 8,
+            align: 'left',
+            textStyle: {
+              fontSize: 12,
+              color: '#ccc',
             },
-            emphasis: {
-                color: '#fff',
-                opacity: .1
-            }
-        }
-        console.log(scene.value, 'scene')
-        const myChart = echarts.init(scene.value);
-        let option = {
-            color: ['#4edaff', '#53ffde', '#a696ed'],
+            data: ['进风区'],
+          },
+          {
+            // orient: 'vertical',
+            x: '58%',
+            y: '45%',
+            itemWidth: 8,
+            itemHeight: 8,
+            align: 'left',
             textStyle: {
-                fontSize: 14,
-                color: '#40E7F4 '
+              fontSize: 12,
+              color: '#ccc',
             },
-            tooltip: {
-                trigger: 'item',
-                formatter: "{a} : {b}{c} ({d}%)"
+            data: ['用风区'],
+          },
+          {
+            // orient: 'vertical',
+            x: '58%',
+            y: '73%',
+            itemWidth: 8,
+            itemHeight: 8,
+            align: 'left',
+            textStyle: {
+              fontSize: 12,
+              color: '#ccc',
             },
-            legend: [
-                {
-                    // orient: 'vertical',
-                    x: '58%',
-                    y: '15%',
-                    itemWidth: 8,
-                    itemHeight: 8,
-                    align: 'left',
-                    textStyle: {
-                        fontSize: 12,
-                        color: '#ccc'
-                    },
-                    data: ['进风区']
-                },
-                {
-                    // orient: 'vertical',
-                    x: '58%',
-                    y: '45%',
-                    itemWidth: 8,
-                    itemHeight: 8,
-                    align: 'left',
-                    textStyle: {
-                        fontSize: 12,
-                        color: '#ccc'
-                    },
-                    data: ['用风区']
-                },
-                {
-                    // orient: 'vertical',
-                    x: '58%',
-                    y: '73%',
-                    itemWidth: 8,
-                    itemHeight: 8,
-                    align: 'left',
-                    textStyle: {
-                        fontSize: 12,
-                        color: '#ccc'
-                    },
-                    data: ['回风区']
-                }
-            ],
-
-            series: [{
-                name: '进风区',
-                type: 'pie',
-                radius: ['55%', '62%'],
-                center: ['25%', '50%'],
-                label: true,
-                startAngle: 50,
-                clockWise: true,
-                hoverAnimation: true,
-                hoverOffset: 8,
-                data: [{
-                    value: percent.jf,
-                    name: '占比',
-                    itemStyle: {
-                        normal: {
-                            color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
-                                // 0% 处的颜色   
-                                offset: 0, color: 'rgba(80, 219, 255,1)'
-                            },
-                            {
-
-                                // 100% 处的颜色
-                                offset: 1, color: 'rgba(80, 219, 255,.7)'
-                            }],
-
-                                false)
+            data: ['回风区'],
+          },
+        ],
 
+        series: [
+          {
+            name: '进风区',
+            type: 'pie',
+            radius: ['55%', '62%'],
+            center: ['25%', '50%'],
+            label: true,
+            startAngle: 50,
+            clockWise: true,
+            hoverAnimation: true,
+            hoverOffset: 8,
+            data: [
+              {
+                value: percent.jf,
+                name: '占比',
+                itemStyle: {
+                  normal: {
+                    color: new echarts.graphic.LinearGradient(
+                      0,
+                      0,
+                      0,
+                      1,
+                      [
+                        {
+                          // 0% 处的颜色
+                          offset: 0,
+                          color: 'rgba(80, 219, 255,1)',
                         },
-                    }
+                        {
+                          // 100% 处的颜色
+                          offset: 1,
+                          color: 'rgba(80, 219, 255,.7)',
+                        },
+                      ],
+
+                      false
+                    ),
+                  },
                 },
-                {
-                    value: percent.jfEcharts,
-                    name: '未占比',
-                    hoverAnimation: true,
-                    itemStyle: placeHolderStyle
-                }
-                ]
-            }, {
-                name: '用风区',
-                type: 'pie',
-                radius: ['40%', '47%'],
-                center: ['25%', '50%'],
-                label: false,
-                startAngle: 200,
-                clockWise: true,
+              },
+              {
+                value: percent.jfEcharts,
+                name: '未占比',
                 hoverAnimation: true,
-                hoverOffset: 3,
-                data: [{
-                    value: percent.yf,
-                    name: '占比',
-                    itemStyle: {
-                        color: { // 完成的圆环的颜色
-                            colorStops: [{
-                                offset: 0,
-                                color: 'rgba(84, 255, 222,1)' // 0% 处的颜色
-                            }, {
-                                offset: 1,
-                                color: 'rgba(84, 255, 222,.7)' // 100% 处的颜色
-                            }]
-                        }
-                    }
+                itemStyle: placeHolderStyle,
+              },
+            ],
+          },
+          {
+            name: '用风区',
+            type: 'pie',
+            radius: ['40%', '47%'],
+            center: ['25%', '50%'],
+            label: false,
+            startAngle: 200,
+            clockWise: true,
+            hoverAnimation: true,
+            hoverOffset: 3,
+            data: [
+              {
+                value: percent.yf,
+                name: '占比',
+                itemStyle: {
+                  color: {
+                    // 完成的圆环的颜色
+                    colorStops: [
+                      {
+                        offset: 0,
+                        color: 'rgba(84, 255, 222,1)', // 0% 处的颜色
+                      },
+                      {
+                        offset: 1,
+                        color: 'rgba(84, 255, 222,.7)', // 100% 处的颜色
+                      },
+                    ],
+                  },
                 },
-                {
-                    value: percent.yfEcharts,
-                    hoverAnimation: true,
-                    name: '未占比',
-                    itemStyle: placeHolderStyle
-                }
-                ]
-            }, {
-                name: '回风区',
-                type: 'pie',
-                radius: ['25%', '32%'],
-                center: ['25%', '50%'],
-                label: false,
-                startAngle: 80,
-                clockWise: true, //顺时加载
+              },
+              {
+                value: percent.yfEcharts,
                 hoverAnimation: true,
-                hoverOffset: 3,
-                data: [{
-                    value: percent.hf,
-                    name: '占比',
-                    itemStyle: {
-                        color: { // 完成的圆环的颜色
-                            colorStops: [{
-                                offset: 0,
-                                color: 'rgba(161, 142, 242,1)' // 0% 处的颜色
-                            }, {
-                                offset: 1,
-                                color: 'rgba(161, 142, 242,.7)' // 100% 处的颜色
-                            }]
-                        }
-                    }
+                name: '未占比',
+                itemStyle: placeHolderStyle,
+              },
+            ],
+          },
+          {
+            name: '回风区',
+            type: 'pie',
+            radius: ['25%', '32%'],
+            center: ['25%', '50%'],
+            label: false,
+            startAngle: 80,
+            clockWise: true, //顺时加载
+            hoverAnimation: true,
+            hoverOffset: 3,
+            data: [
+              {
+                value: percent.hf,
+                name: '占比',
+                itemStyle: {
+                  color: {
+                    // 完成的圆环的颜色
+                    colorStops: [
+                      {
+                        offset: 0,
+                        color: 'rgba(161, 142, 242,1)', // 0% 处的颜色
+                      },
+                      {
+                        offset: 1,
+                        color: 'rgba(161, 142, 242,.7)', // 100% 处的颜色
+                      },
+                    ],
+                  },
                 },
-                {
-                    value: percent.hfEcharts,
-                    name: '未占比',
-                    hoverAnimation: true, //鼠标移入变大
-                    itemStyle: placeHolderStyle
-                }
-
-                ]
-            }]
-        };
-        myChart.setOption(option);
-        window.onresize = function () {
-            myChart.resize();
-        };
+              },
+              {
+                value: percent.hfEcharts,
+                name: '未占比',
+                hoverAnimation: true, //鼠标移入变大
+                itemStyle: placeHolderStyle,
+              },
+            ],
+          },
+        ],
+      };
+      myChart.setOption(option);
+      window.onresize = function () {
+        myChart.resize();
+      };
     });
-}
-
-watch(()=>props.echartData,(newV,oldV)=>{
-    console.log(newV,'newV-----------')
-    percent.jf=newV.jfq
-    percent.yf=newV.yfq
-    percent.hf=newV.hfq
-    percent.jfEcharts=Math.ceil(newV.zf -  percent.jf)
-    percent.yfEcharts=Math.ceil(newV.zf -  percent.yf)
-    percent.hfEcharts=Math.ceil(newV.zf -  percent.hf)
-    getOption()
-},{
-    immediate:true,
-    deep:true
-})
-
+  }
 
+  watch(
+    () => props.echartData,
+    (newV, oldV) => {
+      console.log(newV, 'newV-----------');
+      percent.jf = newV.jfq;
+      percent.yf = newV.yfq;
+      percent.hf = newV.hfq;
+      percent.jfEcharts = Math.ceil(newV.zf - percent.jf);
+      percent.yfEcharts = Math.ceil(newV.zf - percent.yf);
+      percent.hfEcharts = Math.ceil(newV.zf - percent.hf);
+      getOption();
+    },
+    {
+      immediate: true,
+      deep: true,
+    }
+  );
 </script>
-  
+
 <style scoped lang="less">
-@font-face {
+  @font-face {
     font-family: 'douyuFont';
     src: url('../../../../assets/font/douyuFont.otf');
-}
+  }
 
-.echartScene {
+  .echartScene {
     width: 100%;
     height: 100%;
     position: relative;
 
     .scene {
-        width: 100%;
-        height: 100%;
+      width: 100%;
+      height: 100%;
     }
 
     .pic {
-        height: 100%;
-        position: absolute;
-        left: 50%;
-        top: 0;
-        display: flex;
-        align-items: center;
+      height: 100%;
+      position: absolute;
+      left: 50%;
+      top: 0;
+      display: flex;
+      align-items: center;
 
-        img {
-            height: 60%;
-        }
+      img {
+        height: 60%;
+      }
     }
 
     .percent {
-        position: absolute;
-        left: 72%;
-        top: 0;
-        width: 100px;
-        height: 100%;
-        display: flex;
-        flex-direction: column;
-        align-items: center;
-
-        .percent-box {
+      position: absolute;
+      left: 72%;
+      top: 0;
+      width: 100px;
+      height: 100%;
+      display: flex;
+      flex-direction: column;
+      align-items: center;
 
-            width: 100%;
-            display: flex;
-            justify-content: space-between;
-            padding: 0px 10px 0px 15px;
-            box-sizing: border-box;
+      .percent-box {
+        width: 100%;
+        display: flex;
+        justify-content: space-between;
+        padding: 0px 10px 0px 15px;
+        box-sizing: border-box;
 
-            .per-v {
-                font-family: 'douyuFont';
-                font-size: 14px;
-            }
+        .per-v {
+          font-family: 'douyuFont';
+          font-size: 14px;
+        }
 
-            .per-d {
-                font-size: 12px;
-                color: #ccc;
-            }
+        .per-d {
+          font-size: 12px;
+          color: #ccc;
+        }
 
-            &:nth-child(1) {
-                position: absolute;
-                top: 14%;
-                color: #4edaff;
-            }
+        &:nth-child(1) {
+          position: absolute;
+          top: 14%;
+          color: #4edaff;
+        }
 
-            &:nth-child(2) {
-                position: absolute;
-                top: 44%;
-                color: #53ffde;
-            }
+        &:nth-child(2) {
+          position: absolute;
+          top: 44%;
+          color: #53ffde;
+        }
 
-            &:nth-child(3) {
-                position: absolute;
-                top: 72%;
-                color: #a696ed;
-            }
+        &:nth-child(3) {
+          position: absolute;
+          top: 72%;
+          color: #a696ed;
         }
+      }
     }
-}
+  }
 </style>
-  

+ 143 - 140
src/views/vent/home/clique/components/file-share.vue

@@ -33,175 +33,178 @@
   </div>
 </template>
 <script lang="ts" setup>
-import { ref, reactive, watch, defineProps } from 'vue';
-import { SvgIcon } from '/@/components/Icon';
-import { getAssetURL } from '/@/utils/ui';
-
-let props = defineProps({
-  shareData: {
-    type: Array,
-    default: () => {
-      return []
+  import { ref, reactive, watch, defineProps } from 'vue';
+  import { SvgIcon } from '/@/components/Icon';
+  import { getAssetURL } from '/@/utils/ui';
+
+  let props = defineProps({
+    shareData: {
+      type: Array,
+      default: () => {
+        return [];
+      },
+    },
+  });
+
+  let fileTitle = ref('文件共享中心');
+  let fileData = reactive<any[]>([]);
+
+  watch(
+    () => props.shareData,
+    (newV, oldV) => {
+      console.log(newV, '文件共享中心数据999999-----');
+      if (newV.length != 0) {
+        fileData.length = 0;
+        newV.forEach((el) => {
+          fileData.push({
+            title: el.title,
+            imgSrc: getAssetURL('company/file/file2.png'),
+            imgSrc1: getAssetURL('company/file/file1.png'),
+            label: '文件总数',
+            label1: '待审批文件',
+            value: el.value,
+            value1: el.value1,
+          });
+        });
+      }
+    },
+    {
+      immediate: true,
+      deep: true,
     }
-  }
-})
-
-let fileTitle = ref('文件共享中心');
-let fileData = reactive<any[]>([]);
-
-watch(() => props.shareData, (newV, oldV) => {
-  console.log(newV, '文件共享中心数据999999-----')
-  if (newV.length != 0) {
-    fileData.length = 0
-    newV.forEach(el => {
-      fileData.push({
-        title: el.title,
-        imgSrc: getAssetURL('company/file/file2.png'),
-        imgSrc1: getAssetURL('company/file/file1.png'),
-        label: '文件总数',
-        label1: '待审批文件',
-        value: el.value,
-        value1: el.value1,
-      })
-    })
-
-  }
-}, {
-  immediate: true,
-  deep: true
-})
+  );
 </script>
 <style lang="less" scoped>
-@font-face {
-  font-family: 'douyuFont';
-  src: url('../../../../assets/font/douyuFont.otf');
-}
-
-.fileShare {
-  width: 100%;
-  height: 100%;
-  position: relative;
-
-  .file-title {
-    position: absolute;
-    left: 54px;
-    top: 12px;
-    color: #fff;
+  @font-face {
     font-family: 'douyuFont';
-    font-size: 14px;
+    src: url('../../../../assets/font/douyuFont.otf');
   }
 
-  .file-content {
-    position: relative;
+  .fileShare {
+    width: 100%;
     height: 100%;
-    padding: 57px 40px 23px 40px;
-    box-sizing: border-box;
-
-    .left-jt {
-      position: absolute;
-      top: 50%;
-      left: 18px;
-      transform: translate(0, -50%);
-    }
+    position: relative;
 
-    .right-jt {
+    .file-title {
       position: absolute;
-      top: 50%;
-      right: 18px;
-      transform: translate(0, -50%);
+      left: 54px;
+      top: 12px;
+      color: #fff;
+      font-family: 'douyuFont';
+      font-size: 14px;
     }
 
-    .file-card {
+    .file-content {
+      position: relative;
       height: 100%;
-      padding: 0px 30px;
-      display: flex;
-      justify-content: flex-start;
-      align-items: flex-start;
-      flex-wrap: wrap;
+      padding: 57px 40px 23px 40px;
       box-sizing: border-box;
 
-      .card-box {
-        position: relative;
-        width: 255px;
-        height: 91px;
-        background: url('../../../../../assets/images/company/file-card.png') no-repeat center;
-        background-size: 100% 100%;
-
-        .box-t {
-          position: absolute;
-          left: 12px;
-          top: 3px;
-          font-family: 'douyuFont';
-          font-size: 14px;
-          color: #fff;
-        }
+      .left-jt {
+        position: absolute;
+        top: 50%;
+        left: 18px;
+        transform: translate(0, -50%);
+      }
 
-        .box-b {
-          position: absolute;
-          left: 0;
-          top: 24px;
-          width: 100%;
-          height: 66px;
-          display: flex;
-          justify-content: space-between;
+      .right-jt {
+        position: absolute;
+        top: 50%;
+        right: 18px;
+        transform: translate(0, -50%);
+      }
 
-          .ite-box {
+      .file-card {
+        height: 100%;
+        padding: 0px 30px;
+        display: flex;
+        justify-content: flex-start;
+        align-items: flex-start;
+        flex-wrap: wrap;
+        box-sizing: border-box;
+
+        .card-box {
+          position: relative;
+          width: 255px;
+          height: 91px;
+          background: url('../../../../../assets/images/company/file-card.png') no-repeat center;
+          background-size: 100% 100%;
+
+          .box-t {
+            position: absolute;
+            left: 12px;
+            top: 3px;
+            font-family: 'douyuFont';
+            font-size: 14px;
+            color: #fff;
+          }
+
+          .box-b {
+            position: absolute;
+            left: 0;
+            top: 24px;
+            width: 100%;
+            height: 66px;
             display: flex;
-            flex: 1;
-            justify-content: center;
-            align-items: center;
-            height: 100%;
+            justify-content: space-between;
 
-            .content {
+            .ite-box {
               display: flex;
-              flex-direction: column;
-              justify-content: space-around;
+              flex: 1;
+              justify-content: center;
               align-items: center;
-
-              .content-label {
-                padding-left: 5px;
-                font-size: 12px;
-                color: #fff;
-                background: linear-gradient(to right, rgba(3, 52, 105, 1), rgba(3, 52, 105, 0.4), transparent);
-              }
-
-              .content-value {
-                font-size: 16px;
-                color: #64caff;
-              }
-
-              .content-label1 {
-                padding-left: 5px;
-                font-size: 12px;
-                color: #fff;
-                background: linear-gradient(to right, rgba(3, 73, 104, 1), rgba(3, 73, 104, 0.4), transparent);
-              }
-
-              .content-value1 {
-                font-size: 16px;
-                color: #3df6ff;
+              height: 100%;
+
+              .content {
+                display: flex;
+                flex-direction: column;
+                justify-content: space-around;
+                align-items: center;
+
+                .content-label {
+                  padding-left: 5px;
+                  font-size: 12px;
+                  color: #fff;
+                  background: linear-gradient(to right, rgba(3, 52, 105, 1), rgba(3, 52, 105, 0.4), transparent);
+                }
+
+                .content-value {
+                  font-size: 16px;
+                  color: #64caff;
+                }
+
+                .content-label1 {
+                  padding-left: 5px;
+                  font-size: 12px;
+                  color: #fff;
+                  background: linear-gradient(to right, rgba(3, 73, 104, 1), rgba(3, 73, 104, 0.4), transparent);
+                }
+
+                .content-value1 {
+                  font-size: 16px;
+                  color: #3df6ff;
+                }
               }
             }
           }
-        }
 
-        &:nth-child(1) {
-          margin-bottom: 10px;
-        }
+          &:nth-child(1) {
+            margin-bottom: 10px;
+          }
 
-        &:nth-child(2) {
-          margin: 0px 39px 10px 39px;
-        }
+          &:nth-child(2) {
+            margin: 0px 39px 10px 39px;
+          }
 
-        &:nth-child(3) {
-          margin-bottom: 10px;
-        }
+          &:nth-child(3) {
+            margin-bottom: 10px;
+          }
 
-        &:nth-child(5) {
-          margin: 0px 39px;
+          &:nth-child(5) {
+            margin: 0px 39px;
+          }
         }
       }
     }
   }
-}
 </style>

+ 17 - 17
src/views/vent/home/clique/components/icon-light.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="icon-light">
     <template v-for="(item, index) in pointList" :key="index">
-      <div class="icon-point" @click="openModal(item.code, item.leftV, item.topV)" :style="{ left: item.leftV, top: item.topV }">
+      <div class="icon-point" @click="openModal(item.code, item.label, item.leftV, item.topV)" :style="{ left: item.leftV, top: item.topV }">
         <img :src="item.imgSrc" alt="" />
         <span :style="{ color: item.textColor }">{{ item.label }}</span>
       </div>
@@ -32,24 +32,24 @@
     // { code: 'jinJieTa', imgSrc: selectBgPath, label: 'jj', leftV: '565px', topV: '413px', textColor: 'rgba(255, 231, 83,.9)' },
     // { code: 'yuJiaTa', imgSrc: unselectBgPath, label: 'yjl', leftV: '669px', topV: '308px', textColor: '#fff' },
     // { code: 'baoDeTa', imgSrc: selectBgPath, label: 'bd', leftV: '862px', topV: '340px', textColor: 'rgba(255, 231, 83,.9)' },
-    { code: 'liuTa', imgSrc: unselectBgPath, label: 'XXX', leftV: '327px', topV: '40px', textColor: '#fff' },
-    { code: 'cunCaoErTa', imgSrc: unselectBgPath, label: 'XXX', leftV: '291px', topV: '69px', textColor: '#fff' },
-    { code: 'buErTaiTa', imgSrc: selectBgPath, label: 'XXX', leftV: '286px', topV: '97px', textColor: 'rgba(255, 231, 83,.9)' },
-    { code: 'wuLunTa', imgSrc: unselectBgPath, label: 'XXX', leftV: '327px', topV: '115px', textColor: '#fff' },
-    { code: 'cunCaoTa', imgSrc: selectBgPath, label: 'XXX', leftV: '346px', topV: '132px', textColor: 'rgba(255, 231, 83,.9)' },
-    { code: 'shiKanTa', imgSrc: unselectBgPath, label: 'XXX', leftV: '373px', topV: '149px', textColor: '#fff' },
-    { code: 'buLieTa', imgSrc: selectBgPath, label: 'XXX', leftV: '408px', topV: '184px', textColor: 'rgba(255, 231, 83,.9)' },
-    { code: 'haLaGouTa', imgSrc: unselectBgPath, label: 'XXX', leftV: '445px', topV: '214px', textColor: '#fff' },
-    { code: 'shangWanTa', imgSrc: selectBgPath, label: 'XXX', leftV: '439px', topV: '244px', textColor: 'rgba(255, 231, 83,.9)' },
-    { code: 'huoJiTuTa', imgSrc: unselectBgPath, label: 'XXX', leftV: '398px', topV: '265px', textColor: '#fff' },
-    { code: 'daLiuTa', imgSrc: unselectBgPath, label: 'XXX', leftV: '492px', topV: '260px', textColor: '#fff' },
-    { code: 'jinJieTa', imgSrc: selectBgPath, label: 'XXX', leftV: '565px', topV: '413px', textColor: 'rgba(255, 231, 83,.9)' },
-    { code: 'yuJiaTa', imgSrc: unselectBgPath, label: 'XXX', leftV: '669px', topV: '308px', textColor: '#fff' },
-    { code: 'baoDeTa', imgSrc: selectBgPath, label: 'XXX', leftV: '862px', topV: '340px', textColor: 'rgba(255, 231, 83,.9)' },
+    { code: 'liuTa', imgSrc: unselectBgPath, label: '柳塔矿', leftV: '327px', topV: '40px', textColor: '#fff' },
+    { code: 'cunCaoErTa', imgSrc: unselectBgPath, label: '寸草塔二矿', leftV: '291px', topV: '69px', textColor: '#fff' },
+    { code: 'buErTaiTa', imgSrc: selectBgPath, label: '布尔台矿', leftV: '286px', topV: '97px', textColor: 'rgba(255, 231, 83,.9)' },
+    { code: 'wuLunTa', imgSrc: unselectBgPath, label: '乌兰木伦矿', leftV: '327px', topV: '115px', textColor: '#fff' },
+    { code: 'cunCaoTa', imgSrc: selectBgPath, label: '寸草塔矿', leftV: '346px', topV: '132px', textColor: 'rgba(255, 231, 83,.9)' },
+    { code: 'shiKanTa', imgSrc: unselectBgPath, label: '石坎台矿', leftV: '373px', topV: '149px', textColor: '#fff' },
+    { code: 'buLieTa', imgSrc: selectBgPath, label: '补连塔矿', leftV: '408px', topV: '184px', textColor: 'rgba(255, 231, 83,.9)' },
+    { code: 'haLaGouTa', imgSrc: unselectBgPath, label: '哈拉沟矿', leftV: '445px', topV: '214px', textColor: '#fff' },
+    { code: 'shangWanTa', imgSrc: selectBgPath, label: '上湾矿', leftV: '439px', topV: '244px', textColor: 'rgba(255, 231, 83,.9)' },
+    { code: 'huoJiTuTa', imgSrc: unselectBgPath, label: '活鸡兔井', leftV: '398px', topV: '265px', textColor: '#fff' },
+    { code: 'daLiuTa', imgSrc: unselectBgPath, label: '大柳塔矿', leftV: '492px', topV: '260px', textColor: '#fff' },
+    { code: 'jinJieTa', imgSrc: selectBgPath, label: '锦界矿', leftV: '565px', topV: '413px', textColor: 'rgba(255, 231, 83,.9)' },
+    { code: 'yuJiaTa', imgSrc: unselectBgPath, label: '榆家梁矿', leftV: '669px', topV: '308px', textColor: '#fff' },
+    { code: 'baoDeTa', imgSrc: selectBgPath, label: '宝德矿', leftV: '862px', topV: '340px', textColor: 'rgba(255, 231, 83,.9)' },
   ]);
 
-  function openModal(code, leftV, topV) {
-    emit('showDetail', code, leftV, topV);
+  function openModal(code, leftV, label, topV) {
+    emit('showDetail', code, label, leftV, topV);
   }
 </script>
 

+ 33 - 30
src/views/vent/home/clique/components/mine-wind.vue

@@ -17,28 +17,33 @@
   </div>
 </template>
 <script lang="ts" setup>
-  import { ref, reactive,watch,defineProps } from 'vue';
+  import { ref, reactive, watch, defineProps } from 'vue';
 
-  let props=defineProps({
-    airKjStatus:{
-      type:Array,
-      default:()=>{
-        return []
-      }
-    }
-  })
+  let props = defineProps({
+    airKjStatus: {
+      type: Array,
+      default: () => {
+        return [];
+      },
+    },
+  });
   let mineTitle = ref('矿井通风状态监测');
   let labelList = reactive([{ name: '矿井名称' }, { name: '总进风量' }, { name: '总回风量' }, { name: '总需风量' }]);
   let mineData = ref<any[]>([]);
 
-  watch(()=>props.airKjStatus,(newA,oldA)=>{
-    console.log(newA,'airKjStatus-----------')
-    if(newA.length!=0){
-      mineData.value=newA
+  watch(
+    () => props.airKjStatus,
+    (newA, oldA) => {
+      console.log(newA, 'airKjStatus-----------');
+      if (newA.length != 0) {
+        mineData.value = newA;
+      }
+    },
+    {
+      immediate: true,
+      deep: true,
     }
-  },{
-    immediate: true, deep: true
-  })
+  );
 </script>
 <style lang="less" scoped>
   @font-face {
@@ -79,19 +84,18 @@
           color: #3df6ff;
           text-align: center;
           font-size: 14px;
-          &:nth-child(1){
+          &:nth-child(1) {
             width: 31%;
           }
-          &:nth-child(2){
+          &:nth-child(2) {
             width: 23%;
           }
-          &:nth-child(3){
+          &:nth-child(3) {
             width: 23%;
           }
-          &:nth-child(4){
+          &:nth-child(4) {
             width: 23%;
           }
-         
         }
       }
 
@@ -117,19 +121,18 @@
           span {
             display: inline-block;
             text-align: center;
-            &:nth-child(1){
-            width: 31%;
+            &:nth-child(1) {
+              width: 31%;
             }
-            &:nth-child(2){
-            width: 23%;
+            &:nth-child(2) {
+              width: 23%;
             }
-            &:nth-child(3){
-            width: 23%;
+            &:nth-child(3) {
+              width: 23%;
             }
-            &:nth-child(4){
-            width: 23%;
+            &:nth-child(4) {
+              width: 23%;
             }
-           
           }
         }
       }

+ 543 - 543
src/views/vent/home/clique/components/risk-warn.vue

@@ -2,27 +2,25 @@
   <div class="riskWarn">
     <div class="risk-title">{{ riskTitle }}</div>
     <div class="risk-select">
-
-      <a-select style="width: 388px;" v-model:value="selectVal" allowClear class="code-mode-select" @change="changeSelect">
-        <a-select-option v-for="item in selectList" :value="item.value">{{
-      item.label
-    }}
-        </a-select-option>
+      <a-select style="width: 388px" v-model:value="selectVal" allowClear class="code-mode-select" @change="changeSelect">
+        <a-select-option v-for="item in selectList" :value="item.value">{{ item.label }} </a-select-option>
       </a-select>
-
     </div>
     <div class="risk-content">
       <div class="center-box">
         <div class="animation-box">
           <canvas class="rain"></canvas>
 
-          <div class="bottom" :class="{
-      bottom1: centerData.levels == 101,
-      bottom2: centerData.levels == 102,
-      bottom3: centerData.levels == 103,
-      bottom4: centerData.levels == 104,
-      bottom5: centerData.levels == 201,
-    }">
+          <div
+            class="bottom"
+            :class="{
+              bottom1: centerData.levels == 101,
+              bottom2: centerData.levels == 102,
+              bottom3: centerData.levels == 103,
+              bottom4: centerData.levels == 104,
+              bottom5: centerData.levels == 201,
+            }"
+          >
             <!-- <div class="animation1">
                             <div class="ball"></div>
                             <svg xmlns="http://www.w3.org/2000/svg" width="355.334" height="77.559"
@@ -47,18 +45,18 @@
                         </div> -->
             <div class="text-box">
               <div class="text1">{{
-      centerData.levels == 101
-        ? '正常'
-        : centerData.levels == 102
-          ? '低风险'
-          : centerData.levels == 103
-            ? '中风险'
-            : centerData.levels == 104
-              ? '高风险'
-              : centerData.levels == 201
-                ? '报警'
-                : '--'
-    }}</div>
+                centerData.levels == 101
+                  ? '正常'
+                  : centerData.levels == 102
+                  ? '低风险'
+                  : centerData.levels == 103
+                  ? '中风险'
+                  : centerData.levels == 104
+                  ? '高风险'
+                  : centerData.levels == 201
+                  ? '报警'
+                  : '--'
+              }}</div>
               <div class="text2">风险分析</div>
             </div>
             <div class="icon-animation"></div>
@@ -122,651 +120,653 @@
 </template>
 
 <script lang="ts" setup>
-import { ref, reactive, onMounted, defineProps, watch } from 'vue';
-import { rainBg } from '/@/utils/ui.js';
-
-let props = defineProps({
-  earlyWarn: {
-    type: Array,
-    default: () => {
-      return []
-    }
-  }
-})
-
-let selectVal = ref('')
-let selectList = reactive<any[]>([])
-let warnData=ref<any[]>([])
-
-
-let riskTitle = ref('一通三防风险分析与预警');
-let centerData = reactive({
-  levels: 0,
-  fire: '',
-  sb: '',
-  ws: '',
-  fc: '',
-  tf: '',
-});
-
-//下拉框选项切换
-function changeSelect(val){
-  selectVal.value =val
-  let datas = warnData.value.filter(v => v.orgname == selectVal.value)[0]
-      centerData.levels = datas.sys_warndata.info.sysInfo.synthesizeS.maxLevel
-      centerData.fire = datas.sys_warndata.info.sysInfo.fireS.maxLevel_str
-      centerData.sb = datas.sys_warndata.info.sysInfo.deviceWarnInfo.maxLevel_str
-      centerData.ws = datas.sys_warndata.info.sysInfo.gasS.maxLevel_str
-      centerData.fc = datas.sys_warndata.info.sysInfo.dustS.maxLevel_str
-      centerData.tf = datas.sys_warndata.info.sysInfo.ventS.maxLevel_str
-}
-
-watch(() => props.earlyWarn, (newE, oldE) => {
-  console.log(newE, '预警与分析数据------------')
-  if (newE.length != 0) {
-    selectList.length = 0
-    warnData.value=newE
-    newE.forEach(el => {
-      selectList.push({ label: el.orgname, value: el.orgname })
-    })
-    if (selectVal.value) {
-      let datas = newE.filter(v => v.orgname == selectVal.value)[0]
-      centerData.levels = datas.sys_warndata.info.sysInfo.synthesizeS.maxLevel
-      centerData.fire = datas.sys_warndata.info.sysInfo.fireS.maxLevel_str
-      centerData.sb = datas.sys_warndata.info.sysInfo.deviceWarnInfo.maxLevel_str
-      centerData.ws = datas.sys_warndata.info.sysInfo.gasS.maxLevel_str
-      centerData.fc = datas.sys_warndata.info.sysInfo.dustS.maxLevel_str
-      centerData.tf = datas.sys_warndata.info.sysInfo.ventS.maxLevel_str
-
-    } else {
-      selectVal.value = selectList[0].value
-      centerData.levels = newE[0].sys_warndata.info.sysInfo.synthesizeS.maxLevel
-      centerData.fire = newE[0].sys_warndata.info.sysInfo.fireS.maxLevel_str
-      centerData.sb = newE[0].sys_warndata.info.sysInfo.deviceWarnInfo.maxLevel_str
-      centerData.ws = newE[0].sys_warndata.info.sysInfo.gasS.maxLevel_str
-      centerData.fc = newE[0].sys_warndata.info.sysInfo.dustS.maxLevel_str
-      centerData.tf = newE[0].sys_warndata.info.sysInfo.ventS.maxLevel_str
-    }
+  import { ref, reactive, onMounted, defineProps, watch } from 'vue';
+  import { rainBg } from '/@/utils/ui.js';
+
+  let props = defineProps({
+    earlyWarn: {
+      type: Array,
+      default: () => {
+        return [];
+      },
+    },
+  });
+
+  let selectVal = ref('');
+  let selectList = reactive<any[]>([]);
+  let warnData = ref<any[]>([]);
+
+  let riskTitle = ref('一通三防风险分析与预警');
+  let centerData = reactive({
+    levels: 0,
+    fire: '',
+    sb: '',
+    ws: '',
+    fc: '',
+    tf: '',
+  });
+
+  //下拉框选项切换
+  function changeSelect(val) {
+    selectVal.value = val;
+    let datas = warnData.value.filter((v) => v.orgname == selectVal.value)[0];
+    centerData.levels = datas.sys_warndata.info.sysInfo.synthesizeS.maxLevel;
+    centerData.fire = datas.sys_warndata.info.sysInfo.fireS.maxLevel_str;
+    centerData.sb = datas.sys_warndata.info.sysInfo.deviceWarnInfo.maxLevel_str;
+    centerData.ws = datas.sys_warndata.info.sysInfo.gasS.maxLevel_str;
+    centerData.fc = datas.sys_warndata.info.sysInfo.dustS.maxLevel_str;
+    centerData.tf = datas.sys_warndata.info.sysInfo.ventS.maxLevel_str;
   }
 
-}, {
-  immediate: true,
-  deep: true
-})
+  watch(
+    () => props.earlyWarn,
+    (newE, oldE) => {
+      console.log(newE, '预警与分析数据------------');
+      if (newE.length != 0) {
+        selectList.length = 0;
+        warnData.value = newE;
+        newE.forEach((el) => {
+          selectList.push({ label: el.orgname, value: el.orgname });
+        });
+        if (selectVal.value) {
+          let datas = newE.filter((v) => v.orgname == selectVal.value)[0];
+          centerData.levels = datas.sys_warndata.info.sysInfo.synthesizeS.maxLevel;
+          centerData.fire = datas.sys_warndata.info.sysInfo.fireS.maxLevel_str;
+          centerData.sb = datas.sys_warndata.info.sysInfo.deviceWarnInfo.maxLevel_str;
+          centerData.ws = datas.sys_warndata.info.sysInfo.gasS.maxLevel_str;
+          centerData.fc = datas.sys_warndata.info.sysInfo.dustS.maxLevel_str;
+          centerData.tf = datas.sys_warndata.info.sysInfo.ventS.maxLevel_str;
+        } else {
+          selectVal.value = selectList[0].value;
+          centerData.levels = newE[0].sys_warndata.info.sysInfo.synthesizeS.maxLevel;
+          centerData.fire = newE[0].sys_warndata.info.sysInfo.fireS.maxLevel_str;
+          centerData.sb = newE[0].sys_warndata.info.sysInfo.deviceWarnInfo.maxLevel_str;
+          centerData.ws = newE[0].sys_warndata.info.sysInfo.gasS.maxLevel_str;
+          centerData.fc = newE[0].sys_warndata.info.sysInfo.dustS.maxLevel_str;
+          centerData.tf = newE[0].sys_warndata.info.sysInfo.ventS.maxLevel_str;
+        }
+      }
+    },
+    {
+      immediate: true,
+      deep: true,
+    }
+  );
 
-onMounted(async () => {
-  rainBg('rain', 'animation-box');
-});
+  onMounted(async () => {
+    rainBg('rain', 'animation-box');
+  });
 </script>
 
 <style lang="less" scoped>
-@font-face {
-  font-family: 'douyuFont';
-  src: url('../../../../assets/font/douyuFont.otf');
-}
-
-.riskWarn {
-  position: relative;
-  width: 100%;
-  height: 100%;
-
-  .risk-title {
-    position: absolute;
-    left: 50px;
-    top: 10px;
-    color: #fff;
+  @font-face {
     font-family: 'douyuFont';
-    font-size: 14px;
+    src: url('../../../../assets/font/douyuFont.otf');
   }
 
-  .risk-select {
-    position: absolute;
-    width: 95%;
-    height: 30px;
-    left: 50%;
-    transform: translate(-50%, 0);
-    top: 42px;
-
-    // display: flex;
-    // justify-content: space-between;
-    // align-items: center;
-    background: url('../../../../../assets/images/company/content-label.png') no-repeat center;
-    background-size: 100% 100%;
-    z-index: 9999;
-
-    .zxm-select {
+  .riskWarn {
+    position: relative;
+    width: 100%;
+    height: 100%;
+
+    .risk-title {
       position: absolute;
-      top: 50%;
-      transform: translate(0, -50%);
+      left: 50px;
+      top: 10px;
+      color: #fff;
+      font-family: 'douyuFont';
+      font-size: 14px;
+    }
 
-      &:nth-child(1) {
-        left: 10px;
+    .risk-select {
+      position: absolute;
+      width: 95%;
+      height: 30px;
+      left: 50%;
+      transform: translate(-50%, 0);
+      top: 42px;
+
+      // display: flex;
+      // justify-content: space-between;
+      // align-items: center;
+      background: url('../../../../../assets/images/company/content-label.png') no-repeat center;
+      background-size: 100% 100%;
+      z-index: 9999;
+
+      .zxm-select {
+        position: absolute;
+        top: 50%;
+        transform: translate(0, -50%);
+
+        &:nth-child(1) {
+          left: 10px;
+        }
       }
     }
-  }
 
-  .risk-content {
-    height: 100%;
-    padding: 55px 0px 20px 0px;
-    box-sizing: border-box;
-
-    .center-box {
-      width: 100%;
+    .risk-content {
       height: 100%;
-      display: flex;
-      flex-direction: column;
-      justify-content: flex-end;
-
-      .animation-box {
-        height: fit-content;
-        flex: 1;
-        margin-bottom: 10px;
-        background: url('/@/assets/images/vent/alarm/center-bg.png');
-        background-size: contain;
-        background-position: center;
+      padding: 55px 0px 20px 0px;
+      box-sizing: border-box;
+
+      .center-box {
+        width: 100%;
+        height: 100%;
         display: flex;
         flex-direction: column;
-        align-items: center;
-        position: relative;
-        top: 0px;
-
-        .rain {
-          position: absolute;
-        }
+        justify-content: flex-end;
+
+        .animation-box {
+          height: fit-content;
+          flex: 1;
+          margin-bottom: 10px;
+          background: url('/@/assets/images/vent/alarm/center-bg.png');
+          background-size: contain;
+          background-position: center;
+          display: flex;
+          flex-direction: column;
+          align-items: center;
+          position: relative;
+          top: 0px;
 
-        .bottom {
-          width: 100%;
-          height: 90%;
-          background-repeat: no-repeat;
-          position: absolute;
-          z-index: 999;
-
-          &::before {
-            // content: '';
-            // width: 230px;
-            // height: 234px;
-            // position: absolute;
-            // left: 112px;
-            // top: -19px;
-            // background: url('/@/assets/images/vent/alarm/warning-bg.png') no-repeat;
-            // background-size: 92% 100%;
-
-            content: '';
-            width: 210px;
-            height: 220px;
+          .rain {
             position: absolute;
-            left: 121px;
-            top: 17px;
-            background: url(/src/assets/images/vent/alarm/warning-bg.png) no-repeat;
-            background-size: 92% 100%;
           }
 
-          .animation1 {
-            width: 320px;
-            height: 78px;
+          .bottom {
+            width: 100%;
+            height: 90%;
+            background-repeat: no-repeat;
             position: absolute;
-            top: 4px;
-            left: 31px;
             z-index: 999;
 
-            .ball {
+            &::before {
+              // content: '';
+              // width: 230px;
+              // height: 234px;
+              // position: absolute;
+              // left: 112px;
+              // top: -19px;
+              // background: url('/@/assets/images/vent/alarm/warning-bg.png') no-repeat;
+              // background-size: 92% 100%;
+
+              content: '';
+              width: 210px;
+              height: 220px;
               position: absolute;
-              width: 12px;
-              height: 12px;
-              background: radial-gradient(closest-side, #e1f7f8, #e1f7f800);
-              border-radius: 6px;
-              background-size: cover;
-              offset-path: path('M186.917-.75c12.711,0,25.415.263,37.757.783,12.03.506,23.863,1.262,35.171,2.245,11.1.966,21.816,2.161,31.835,3.553,9.928,1.379,19.265,2.963,27.751,4.709s16.2,3.668,22.92,5.713A120.653,120.653,0,0,1,359.7,22.825a40.842,40.842,0,0,1,11.018,7.3c2.568,2.581,3.87,5.239,3.87,7.9s-1.3,5.322-3.87,7.9a40.842,40.842,0,0,1-11.018,7.3,120.653,120.653,0,0,1-17.345,6.572c-6.716,2.044-14.428,3.966-22.92,5.713s-17.823,3.329-27.751,4.709c-10.02,1.392-20.731,2.588-31.835,3.553-11.308.984-23.142,1.739-35.171,2.245-12.343.519-25.046.783-37.757.783s-25.415-.263-37.757-.783c-12.03-.506-23.863-1.262-35.171-2.245-11.1-.966-21.816-2.161-31.835-3.553-9.928-1.379-19.265-2.963-27.751-4.709s-16.2-3.668-22.92-5.713a120.652,120.652,0,0,1-17.345-6.572,40.841,40.841,0,0,1-11.018-7.3c-2.568-2.581-3.87-5.239-3.87-7.9s1.3-5.322,3.87-7.9a40.842,40.842,0,0,1,11.018-7.3,120.651,120.651,0,0,1,17.345-6.572C38.2,14.208,45.91,12.286,54.4,10.54S72.225,7.211,82.153,5.831c10.02-1.392,20.731-2.588,31.835-3.553C125.3,1.294,137.13.539,149.16.033,161.5-.487,174.206-.75,186.917-.75Zm0,76.98c49.941,0,96.885-4,132.186-11.257,17.134-3.523,30.578-7.623,39.96-12.184,9.642-4.688,14.53-9.653,14.53-14.759s-4.889-10.072-14.53-14.759c-9.382-4.561-22.826-8.66-39.96-12.184C283.8,3.827,236.858-.171,186.917-.171s-96.885,4-132.186,11.257C37.6,14.61,24.153,18.709,14.771,23.27,5.129,27.958.241,32.923.241,38.029S5.129,48.1,14.771,52.789c9.382,4.561,22.826,8.661,39.96,12.184C90.032,72.232,136.976,76.23,186.917,76.23Z'
-                );
-              animation: 10s linear 0s infinite alternate ball;
+              left: 121px;
+              top: 17px;
+              background: url(/src/assets/images/vent/alarm/warning-bg.png) no-repeat;
+              background-size: 92% 100%;
             }
-          }
 
-          .animation2 {
-            width: 340px;
-            height: 92px;
-            position: absolute;
-            top: 36px;
-            left: 12px;
-            z-index: 999;
+            .animation1 {
+              width: 320px;
+              height: 78px;
+              position: absolute;
+              top: 4px;
+              left: 31px;
+              z-index: 999;
 
-            // animation: rotate4 3s linear infinite;
-            .ball1 {
+              .ball {
+                position: absolute;
+                width: 12px;
+                height: 12px;
+                background: radial-gradient(closest-side, #e1f7f8, #e1f7f800);
+                border-radius: 6px;
+                background-size: cover;
+                offset-path: path(
+                  'M186.917-.75c12.711,0,25.415.263,37.757.783,12.03.506,23.863,1.262,35.171,2.245,11.1.966,21.816,2.161,31.835,3.553,9.928,1.379,19.265,2.963,27.751,4.709s16.2,3.668,22.92,5.713A120.653,120.653,0,0,1,359.7,22.825a40.842,40.842,0,0,1,11.018,7.3c2.568,2.581,3.87,5.239,3.87,7.9s-1.3,5.322-3.87,7.9a40.842,40.842,0,0,1-11.018,7.3,120.653,120.653,0,0,1-17.345,6.572c-6.716,2.044-14.428,3.966-22.92,5.713s-17.823,3.329-27.751,4.709c-10.02,1.392-20.731,2.588-31.835,3.553-11.308.984-23.142,1.739-35.171,2.245-12.343.519-25.046.783-37.757.783s-25.415-.263-37.757-.783c-12.03-.506-23.863-1.262-35.171-2.245-11.1-.966-21.816-2.161-31.835-3.553-9.928-1.379-19.265-2.963-27.751-4.709s-16.2-3.668-22.92-5.713a120.652,120.652,0,0,1-17.345-6.572,40.841,40.841,0,0,1-11.018-7.3c-2.568-2.581-3.87-5.239-3.87-7.9s1.3-5.322,3.87-7.9a40.842,40.842,0,0,1,11.018-7.3,120.651,120.651,0,0,1,17.345-6.572C38.2,14.208,45.91,12.286,54.4,10.54S72.225,7.211,82.153,5.831c10.02-1.392,20.731-2.588,31.835-3.553C125.3,1.294,137.13.539,149.16.033,161.5-.487,174.206-.75,186.917-.75Zm0,76.98c49.941,0,96.885-4,132.186-11.257,17.134-3.523,30.578-7.623,39.96-12.184,9.642-4.688,14.53-9.653,14.53-14.759s-4.889-10.072-14.53-14.759c-9.382-4.561-22.826-8.66-39.96-12.184C283.8,3.827,236.858-.171,186.917-.171s-96.885,4-132.186,11.257C37.6,14.61,24.153,18.709,14.771,23.27,5.129,27.958.241,32.923.241,38.029S5.129,48.1,14.771,52.789c9.382,4.561,22.826,8.661,39.96,12.184C90.032,72.232,136.976,76.23,186.917,76.23Z'
+                );
+                animation: 10s linear 0s infinite alternate ball;
+              }
+            }
+
+            .animation2 {
+              width: 340px;
+              height: 92px;
               position: absolute;
-              width: 12px;
-              height: 12px;
-              background: radial-gradient(closest-side, #e1f7f8, #e1f7f800);
-              border-radius: 6px;
-              background-size: cover;
-              offset-path: path('M206.689-.75c14.05,0,28.092.311,41.735.925,13.3.6,26.377,1.492,38.877,2.655,12.275,1.142,24.114,2.555,35.189,4.2,10.974,1.631,21.294,3.5,30.674,5.567s17.91,4.337,25.335,6.754a128.134,128.134,0,0,1,19.172,7.771,45.082,45.082,0,0,1,12.178,8.633c2.838,3.051,4.278,6.195,4.278,9.344s-1.439,6.293-4.278,9.344a45.082,45.082,0,0,1-12.178,8.633A128.134,128.134,0,0,1,378.5,70.847c-7.424,2.417-15.948,4.69-25.335,6.754s-19.7,3.936-30.674,5.567c-11.075,1.646-22.915,3.059-35.189,4.2-12.5,1.163-25.58,2.056-38.877,2.655-13.643.614-27.685.925-41.735.925s-28.092-.311-41.735-.925c-13.3-.6-26.377-1.492-38.877-2.655-12.275-1.142-24.114-2.555-35.189-4.2-10.974-1.631-21.294-3.5-30.674-5.567S42.3,73.265,34.879,70.847a128.133,128.133,0,0,1-19.173-7.771A45.082,45.082,0,0,1,3.528,54.444C.689,51.393-.75,48.249-.75,45.1s1.439-6.293,4.278-9.344a45.083,45.083,0,0,1,12.178-8.633,128.133,128.133,0,0,1,19.173-7.771c7.424-2.417,15.948-4.69,25.335-6.754s19.7-3.936,30.674-5.567c11.075-1.646,22.915-3.059,35.189-4.2,12.5-1.163,25.58-2.056,38.877-2.655C178.6-.439,192.639-.75,206.689-.75Zm0,91.015c55.2,0,107.093-4.727,146.113-13.31,18.939-4.166,33.8-9.012,44.17-14.405,10.657-5.542,16.061-11.413,16.061-17.45s-5.4-11.908-16.061-17.45c-10.37-5.393-25.231-10.24-44.17-14.405C313.782,4.662,261.892-.065,206.689-.065S99.6,4.662,60.576,13.244c-18.939,4.166-33.8,9.012-44.17,14.405C5.749,33.192.345,39.063.345,45.1s5.4,11.908,16.061,17.45c10.37,5.393,25.231,10.24,44.17,14.405C99.6,85.538,151.487,90.265,206.689,90.265Z'
+              top: 36px;
+              left: 12px;
+              z-index: 999;
+
+              // animation: rotate4 3s linear infinite;
+              .ball1 {
+                position: absolute;
+                width: 12px;
+                height: 12px;
+                background: radial-gradient(closest-side, #e1f7f8, #e1f7f800);
+                border-radius: 6px;
+                background-size: cover;
+                offset-path: path(
+                  'M206.689-.75c14.05,0,28.092.311,41.735.925,13.3.6,26.377,1.492,38.877,2.655,12.275,1.142,24.114,2.555,35.189,4.2,10.974,1.631,21.294,3.5,30.674,5.567s17.91,4.337,25.335,6.754a128.134,128.134,0,0,1,19.172,7.771,45.082,45.082,0,0,1,12.178,8.633c2.838,3.051,4.278,6.195,4.278,9.344s-1.439,6.293-4.278,9.344a45.082,45.082,0,0,1-12.178,8.633A128.134,128.134,0,0,1,378.5,70.847c-7.424,2.417-15.948,4.69-25.335,6.754s-19.7,3.936-30.674,5.567c-11.075,1.646-22.915,3.059-35.189,4.2-12.5,1.163-25.58,2.056-38.877,2.655-13.643.614-27.685.925-41.735.925s-28.092-.311-41.735-.925c-13.3-.6-26.377-1.492-38.877-2.655-12.275-1.142-24.114-2.555-35.189-4.2-10.974-1.631-21.294-3.5-30.674-5.567S42.3,73.265,34.879,70.847a128.133,128.133,0,0,1-19.173-7.771A45.082,45.082,0,0,1,3.528,54.444C.689,51.393-.75,48.249-.75,45.1s1.439-6.293,4.278-9.344a45.083,45.083,0,0,1,12.178-8.633,128.133,128.133,0,0,1,19.173-7.771c7.424-2.417,15.948-4.69,25.335-6.754s19.7-3.936,30.674-5.567c11.075-1.646,22.915-3.059,35.189-4.2,12.5-1.163,25.58-2.056,38.877-2.655C178.6-.439,192.639-.75,206.689-.75Zm0,91.015c55.2,0,107.093-4.727,146.113-13.31,18.939-4.166,33.8-9.012,44.17-14.405,10.657-5.542,16.061-11.413,16.061-17.45s-5.4-11.908-16.061-17.45c-10.37-5.393-25.231-10.24-44.17-14.405C313.782,4.662,261.892-.065,206.689-.065S99.6,4.662,60.576,13.244c-18.939,4.166-33.8,9.012-44.17,14.405C5.749,33.192.345,39.063.345,45.1s5.4,11.908,16.061,17.45c10.37,5.393,25.231,10.24,44.17,14.405C99.6,85.538,151.487,90.265,206.689,90.265Z'
                 );
-              animation: 10s linear 0s infinite alternate ball1;
+                animation: 10s linear 0s infinite alternate ball1;
+              }
             }
-          }
 
-          .text-box {
-            width: 100%;
-            display: flex;
-            flex-direction: column;
-            color: #fff;
-            align-items: center;
-            margin-top: 82px;
+            .text-box {
+              width: 100%;
+              display: flex;
+              flex-direction: column;
+              color: #fff;
+              align-items: center;
+              margin-top: 82px;
+
+              .text1 {
+                font-size: 18px;
+                font-weight: 600;
+                letter-spacing: 2px;
+                margin-bottom: 10px;
+              }
 
-            .text1 {
-              font-size: 18px;
-              font-weight: 600;
-              letter-spacing: 2px;
-              margin-bottom: 10px;
+              .text2 {
+                font-size: 14px;
+                color: #ffffffdd;
+              }
             }
 
-            .text2 {
-              font-size: 14px;
-              color: #ffffffdd;
+            .icon-animation {
+              // width: 118px;
+              // height: 129px;
+              width: 115px;
+              height: 111px;
+              margin: 0 auto;
+              top: -84px;
+              left: 2px;
+              position: relative;
+              animation: 0.5s linear 0s infinite alternate iconMove;
             }
           }
 
-          .icon-animation {
-            // width: 118px;
-            // height: 129px;
-            width: 115px;
-            height: 111px;
-            margin: 0 auto;
-            top: -84px;
-            left: 2px;
-            position: relative;
-            animation: 0.5s linear 0s infinite alternate iconMove;
-          }
-        }
+          .bottom1 {
+            background-image: url('/@/assets/images/vent/alarm/warning-icon-bg1.png');
+            background-size: 80% 100%;
+            background-position: 50% 0%;
 
-        .bottom1 {
-          background-image: url('/@/assets/images/vent/alarm/warning-icon-bg1.png');
-          background-size: 80% 100%;
-          background-position: 50% 0%;
+            .icon-animation {
+              background: url('/@/assets/images/vent/alarm/warning-icon-bg-a1.png');
+              background-size: 100% 100%;
+            }
 
-          .icon-animation {
-            background: url('/@/assets/images/vent/alarm/warning-icon-bg-a1.png');
-            background-size: 100% 100%;
+            .text-box {
+              .text1 {
+                color: #00d8ff;
+              }
+            }
           }
 
-          .text-box {
-            .text1 {
-              color: #00d8ff;
+          .bottom2 {
+            background-image: url('/@/assets/images/vent/alarm/warning-icon-bg2.png');
+            background-size: 80% 100%;
+            background-position: 50% 0%;
+
+            .icon-animation {
+              background: url('/@/assets/images/vent/alarm/warning-icon-bg-a2.png');
+              background-size: 100% 100%;
+            }
+
+            .text-box {
+              .text1 {
+                color: #fcfc22;
+              }
             }
           }
-        }
 
-        .bottom2 {
-          background-image: url('/@/assets/images/vent/alarm/warning-icon-bg2.png');
-          background-size: 80% 100%;
-          background-position: 50% 0%;
+          .bottom3 {
+            // background-image: url('/@/assets/images/vent/alarm/warning-icon-bg3.png');
+            // background-size: 80% 100%;
+            // background-position: 50% 0%;
+            background-image: url(/src/assets/images/vent/alarm/warning-icon-bg3.png);
+            background-size: 75% 85%;
+            background-position: 50% 115%;
 
-          .icon-animation {
-            background: url('/@/assets/images/vent/alarm/warning-icon-bg-a2.png');
-            background-size: 100% 100%;
-          }
+            .icon-animation {
+              background: url('/@/assets/images/vent/alarm/warning-icon-bg-a3.png');
+              background-size: 100% 100%;
+            }
 
-          .text-box {
-            .text1 {
-              color: #fcfc22;
+            .text-box {
+              .text1 {
+                color: #ff7010;
+              }
             }
           }
-        }
 
-        .bottom3 {
-          // background-image: url('/@/assets/images/vent/alarm/warning-icon-bg3.png');
-          // background-size: 80% 100%;
-          // background-position: 50% 0%;
-          background-image: url(/src/assets/images/vent/alarm/warning-icon-bg3.png);
-          background-size: 75% 85%;
-          background-position: 50% 115%;
+          .bottom4 {
+            background-image: url('/@/assets/images/vent/alarm/warning-icon-bg4.png');
+            background-size: 80% 100%;
+            background-position: 50% 0%;
 
-          .icon-animation {
-            background: url('/@/assets/images/vent/alarm/warning-icon-bg-a3.png');
-            background-size: 100% 100%;
-          }
+            .icon-animation {
+              background: url('/@/assets/images/vent/alarm/warning-icon-bg-a4.png');
+              background-size: 100% 100%;
+            }
 
-          .text-box {
-            .text1 {
-              color: #ff7010;
+            .text-box {
+              .text1 {
+                color: #df4e43;
+              }
             }
           }
-        }
 
-        .bottom4 {
-          background-image: url('/@/assets/images/vent/alarm/warning-icon-bg4.png');
-          background-size: 80% 100%;
-          background-position: 50% 0%;
+          .bottom5 {
+            background-image: url('/@/assets/images/vent/alarm/warning-icon-bg5.png');
+            background-size: 80% 100%;
+            background-position: 50% 0%;
 
-          .icon-animation {
-            background: url('/@/assets/images/vent/alarm/warning-icon-bg-a4.png');
-            background-size: 100% 100%;
-          }
+            .icon-animation {
+              background: url('/@/assets/images/vent/alarm/warning-icon-bg-a5.png');
+              background-size: 100% 100%;
+            }
+
+            .text-box {
+              .text1 {
+                color: #ff2313;
+                // animation: color-blink 1s infinite;
+              }
 
-          .text-box {
-            .text1 {
-              color: #df4e43;
+              // @keyframes color-blink {
+              //   0% { color: red; }
+              //   50% { color: blue; }
+              //   100% { color: red; }
+              // }
             }
           }
-        }
 
-        .bottom5 {
-          background-image: url('/@/assets/images/vent/alarm/warning-icon-bg5.png');
-          background-size: 80% 100%;
-          background-position: 50% 0%;
+          .total-item-monitor-box {
+            width: 66%;
+            height: 124px;
+            position: relative;
+
+            top: 122px;
+            left: 0;
+            background: url('/@/assets/images/vent/alarm/bottom1.png') no-repeat;
 
-          .icon-animation {
-            background: url('/@/assets/images/vent/alarm/warning-icon-bg-a5.png');
             background-size: 100% 100%;
-          }
 
-          .text-box {
-            .text1 {
-              color: #ff2313;
-              // animation: color-blink 1s infinite;
+            &::after {
+              content: '';
+
+              width: 400px;
+              height: 362px;
+              position: absolute;
+              transform-style: preserve-3d;
+              transform: translateX(0%) translateY(0%) rotateX(72deg);
+              background: url('/@/assets/images/vent/alarm/bottom.png');
+              background-size: 100% 100%; //lxh
+              animation: rotate1 3s linear infinite;
+
+              top: -93px;
+              left: -52px;
             }
 
-            // @keyframes color-blink {
-            //   0% { color: red; }
-            //   50% { color: blue; }
-            //   100% { color: red; }
-            // }
-          }
-        }
+            .item {
+              position: absolute;
 
-        .total-item-monitor-box {
-          width: 66%;
-          height: 124px;
-          position: relative;
+              // width: 107px;
+              // height: 107px;
+              // left: 120px;
+              // top: 115px;
+              // animation: red-ball 10s linear infinite;
+              .icon-box {
+                width: 60px;
+                height: 60px;
 
-          top: 122px;
-          left: 0;
-          background: url('/@/assets/images/vent/alarm/bottom1.png') no-repeat;
+                position: relative;
+                z-index: 0;
+
+                &::before {
+                  position: absolute;
+                  content: '';
+
+                  width: 80px;
+                  height: 42px;
+                  top: 30px;
+                  z-index: -1;
+                  background: url('/@/assets/images/vent/alarm/icon-bg.png') no-repeat;
+                  background-size: 100% 100%;
+                }
 
-          background-size: 100% 100%;
+                &::after {
+                  position: absolute;
+                  content: '';
+                  width: 48px;
+                  height: 48px;
+                  top: 33px;
+                  left: 14px;
+                  z-index: 1;
+                  background: url(/src/assets/images/vent/alarm/icon-animation.png) no-repeat;
+                  background-size: 100% 100%;
+                  transform: translateX(0%) rotateX(70deg);
+                  animation: rotate2 2s linear infinite;
+                }
 
-          &::after {
-            content: '';
+                .icon {
+                  width: 32px;
+                  height: 32px;
+                  background-repeat: no-repeat;
+                  background-position: top center;
+                  position: relative;
+                  top: 27px;
+                  left: 24px;
+                }
+              }
 
-            width: 400px;
-            height: 362px;
-            position: absolute;
-            transform-style: preserve-3d;
-            transform: translateX(0%) translateY(0%) rotateX(72deg);
-            background: url('/@/assets/images/vent/alarm/bottom.png');
-            background-size: 100% 100%; //lxh
-            animation: rotate1 3s linear infinite;
-
-            top: -93px;
-            left: -52px;
-          }
+              .item-monitor-box {
+                width: 112px;
+                color: #fff;
+                position: relative;
+                top: -58px;
+                left: -16px;
+                font-weight: 600;
+
+                padding: 0px 5px 0px 5px;
+
+                &::before {
+                  position: absolute;
+                  content: '';
+                  width: 112px;
+                  height: 24px;
+                  left: 4px;
+                  top: 0px;
+                  background: url('/@/assets/images/vent/alarm/data-bg.png');
+                  background-size: 100% 100%;
+                }
 
-          .item {
-            position: absolute;
+                .value {
+                  color: #2bdcff;
+                  margin-left: 10px;
+                }
 
-            // width: 107px;
-            // height: 107px;
-            // left: 120px;
-            // top: 115px;
-            // animation: red-ball 10s linear infinite;
-            .icon-box {
-              width: 60px;
-              height: 60px;
+                .value1 {
+                  font-size: 16px;
+                  font-weight: 800;
+                  margin-top: 6px;
+                  color: #ff0000;
+                  animation: color-blink 1s infinite;
+                }
 
-              position: relative;
-              z-index: 0;
+                @keyframes color-blink {
+                  0% {
+                    color: red;
+                  }
 
-              &::before {
-                position: absolute;
-                content: '';
+                  50% {
+                    color: rgb(198, 0, 0);
+                  }
 
-                width: 80px;
-                height: 42px;
-                top: 30px;
-                z-index: -1;
-                background: url('/@/assets/images/vent/alarm/icon-bg.png') no-repeat;
-                background-size: 100% 100%;
+                  100% {
+                    color: rgb(255, 18, 18);
+                  }
+                }
               }
+            }
 
-              &::after {
-                position: absolute;
-                content: '';
-                width: 48px;
-                height: 48px;
-                top: 33px;
-                left: 14px;
-                z-index: 1;
-                background: url(/src/assets/images/vent/alarm/icon-animation.png) no-repeat;
-                background-size: 100% 100%;
-                transform: translateX(0%) rotateX(70deg);
-                animation: rotate2 2s linear infinite;
-              }
+            .item1 {
+              top: 85px;
+              left: 100px;
 
               .icon {
-                width: 32px;
-                height: 32px;
-                background-repeat: no-repeat;
-                background-position: top center;
-                position: relative;
-                top: 27px;
-                left: 24px;
+                background-image: url('/@/assets/images/vent/alarm/icon-fire.svg');
+                background-size: 100% 100%;
               }
             }
 
-            .item-monitor-box {
-              width: 112px;
-              color: #fff;
-              position: relative;
-              top: -58px;
-              left: -16px;
-              font-weight: 600;
+            .item2 {
+              top: 68px;
+              left: -38px;
 
-              padding: 0px 5px 0px 5px;
-
-              &::before {
-                position: absolute;
-                content: '';
-                width: 112px;
-                height: 24px;
-                left: 4px;
-                top: 0px;
-                background: url('/@/assets/images/vent/alarm/data-bg.png');
+              .icon {
+                background-image: url('/@/assets/images/vent/alarm/icon-device.svg');
                 background-size: 100% 100%;
               }
+            }
 
-              .value {
-                color: #2bdcff;
-                margin-left: 10px;
-              }
+            .item3 {
+              top: 68px;
+              left: 247px;
 
-              .value1 {
-                font-size: 16px;
-                font-weight: 800;
-                margin-top: 6px;
-                color: #ff0000;
-                animation: color-blink 1s infinite;
+              .icon {
+                background-image: url('/@/assets/images/vent/alarm/icon-gas.svg');
+                background-size: 100% 100%;
               }
 
-              @keyframes color-blink {
-                0% {
-                  color: red;
-                }
+              // .item-monitor-box {
+              //     top: -155px;
 
-                50% {
-                  color: rgb(198, 0, 0);
-                }
+              //     &::before {
+              //         top: 10px;
+              //     }
+              // }
+            }
 
-                100% {
-                  color: rgb(255, 18, 18);
-                }
+            .item4 {
+              top: -5px;
+              left: 247px;
+
+              .icon {
+                background-image: url('/@/assets/images/vent/alarm/icon-dust.svg');
+                background-size: 100% 100%;
               }
             }
-          }
 
-          .item1 {
-            top: 85px;
-            left: 100px;
+            .item5 {
+              top: -5px;
+              left: -38px;
 
-            .icon {
-              background-image: url('/@/assets/images/vent/alarm/icon-fire.svg');
-              background-size: 100% 100%;
+              .icon {
+                background-image: url('/@/assets/images/vent/alarm/icon-vent.svg');
+                background-size: 100% 100%;
+              }
             }
           }
 
-          .item2 {
-            top: 68px;
-            left: -38px;
-
-            .icon {
-              background-image: url('/@/assets/images/vent/alarm/icon-device.svg');
-              background-size: 100% 100%;
+          @keyframes iconMove {
+            100% {
+              opacity: 0;
             }
           }
 
-          .item3 {
-            top: 68px;
-            left: 247px;
-
-            .icon {
-              background-image: url('/@/assets/images/vent/alarm/icon-gas.svg');
-              background-size: 100% 100%;
+          @keyframes rotate1 {
+            0% {
+              transform: translateX(0%) rotateX(72deg) rotateZ(-360deg);
             }
 
-            // .item-monitor-box {
-            //     top: -155px;
-
-            //     &::before {
-            //         top: 10px;
-            //     }
-            // }
+            100% {
+              transform: translateX(0%) rotateX(72deg) rotateZ(0);
+            }
           }
 
-          .item4 {
-            top: -5px;
-            left: 247px;
+          @keyframes rotate2 {
+            0% {
+              transform: translateX(0%) rotateX(70deg) rotateZ(0);
+            }
 
-            .icon {
-              background-image: url('/@/assets/images/vent/alarm/icon-dust.svg');
-              background-size: 100% 100%;
+            100% {
+              transform: translateX(0%) rotateX(70deg) rotateZ(-360deg);
             }
           }
 
-          .item5 {
-            top: -5px;
-            left: -38px;
+          @keyframes rotate3 {
+            0% {
+              transform: translateX(0%) rotateX(80deg) rotateZ(0);
+            }
 
-            .icon {
-              background-image: url('/@/assets/images/vent/alarm/icon-vent.svg');
-              background-size: 100% 100%;
+            100% {
+              transform: translateX(0%) rotateX(80deg) rotateZ(-360deg);
             }
           }
-        }
 
-        @keyframes iconMove {
-          100% {
-            opacity: 0;
-          }
-        }
+          @keyframes rotate4 {
+            100% {
+              transform: translateX(0%) rotateX(80deg) rotateZ(0);
+            }
 
-        @keyframes rotate1 {
-          0% {
-            transform: translateX(0%) rotateX(72deg) rotateZ(-360deg);
+            0% {
+              transform: translateX(0%) rotateX(80deg) rotateZ(-360deg);
+            }
           }
 
-          100% {
-            transform: translateX(0%) rotateX(72deg) rotateZ(0);
-          }
-        }
+          @keyframes ball {
+            100% {
+              offset-distance: 100%;
+            }
 
-        @keyframes rotate2 {
-          0% {
-            transform: translateX(0%) rotateX(70deg) rotateZ(0);
+            0% {
+              offset-distance: 0%;
+            }
           }
 
-          100% {
-            transform: translateX(0%) rotateX(70deg) rotateZ(-360deg);
+          @keyframes ball1 {
+            0% {
+              offset-distance: 100%;
+            }
+
+            100% {
+              offset-distance: 0%;
+            }
           }
         }
+      }
+    }
+  }
 
-        @keyframes rotate3 {
-          0% {
-            transform: translateX(0%) rotateX(80deg) rotateZ(0);
-          }
+  ::v-deep .zxm-select-single:not(.zxm-select-customize-input) .zxm-select-selector {
+    height: 24px;
+  }
 
-          100% {
-            transform: translateX(0%) rotateX(80deg) rotateZ(-360deg);
-          }
-        }
+  ::v-deep .zxm-select-single:not(.zxm-select-customize-input) .zxm-select-selector .zxm-select-selection-search-input {
+    height: 24px;
+  }
 
-        @keyframes rotate4 {
-          100% {
-            transform: translateX(0%) rotateX(80deg) rotateZ(0);
-          }
+  ::v-deep .zxm-select-selection-placeholder {
+    color: #fff !important;
+    line-height: 22px !important;
+  }
 
-          0% {
-            transform: translateX(0%) rotateX(80deg) rotateZ(-360deg);
-          }
-        }
+  ::v-deep .zxm-select-single:not(.zxm-select-customize-input) .zxm-select-selector::after {
+    line-height: 24px;
+  }
 
-        @keyframes ball {
-          100% {
-            offset-distance: 100%;
-          }
+  ::v-deep .zxm-select:not(.zxm-select-customize-input) .zxm-select-selector {
+    background-color: transparent;
+    border-top: 0px;
+    border-bottom: 0px;
+    border-left: 2px solid;
+    border-right: 2px solid;
+    border-image: linear-gradient(to bottom, transparent, rgba(49, 184, 255, 1), transparent) 1 1 1;
+  }
 
-          0% {
-            offset-distance: 0%;
-          }
-        }
+  ::v-deep .zxm-select-arrow {
+    color: #fff !important;
+  }
 
-        @keyframes ball1 {
-          0% {
-            offset-distance: 100%;
-          }
+  ::v-deep .zxm-select-selection-item {
+    color: #fff !important;
+  }
 
-          100% {
-            offset-distance: 0%;
-          }
-        }
-      }
-    }
+  ::v-deep .zxm-select-single .zxm-select-selector .zxm-select-selection-item {
+    line-height: 24px !important;
   }
-}
-
-::v-deep .zxm-select-single:not(.zxm-select-customize-input) .zxm-select-selector {
-  height: 24px;
-}
-
-::v-deep .zxm-select-single:not(.zxm-select-customize-input) .zxm-select-selector .zxm-select-selection-search-input {
-  height: 24px;
-}
-
-::v-deep .zxm-select-selection-placeholder {
-  color: #fff !important;
-  line-height: 22px !important;
-}
-
-::v-deep .zxm-select-single:not(.zxm-select-customize-input) .zxm-select-selector::after {
-  line-height: 24px;
-}
-
-::v-deep .zxm-select:not(.zxm-select-customize-input) .zxm-select-selector {
-  background-color: transparent;
-  border-top: 0px;
-  border-bottom: 0px;
-  border-left: 2px solid;
-  border-right: 2px solid;
-  border-image: linear-gradient(to bottom, transparent, rgba(49, 184, 255, 1), transparent) 1 1 1;
-
-}
-
-::v-deep .zxm-select-arrow {
-  color: #fff !important;
-}
-
-::v-deep .zxm-select-selection-item {
-  color: #fff !important
-}
-
-::v-deep .zxm-select-single .zxm-select-selector .zxm-select-selection-item {
-  line-height: 24px !important;
-}
 </style>

+ 217 - 230
src/views/vent/home/clique/components/scene-key.vue

@@ -3,18 +3,12 @@
     <div class="scene-title">{{ sceneTitle }}</div>
     <div class="scene-content">
       <div class="content-t">
-
-        <a-select style="width: 372px;" v-model:value="selectVal" allowClear class="code-mode-select"
-          @change="changeSelect">
-          <a-select-option v-for="item in selectList" :value="item.value">{{
-      item.label
-    }}
-          </a-select-option>
+        <a-select style="width: 372px" v-model:value="selectVal" allowClear class="code-mode-select" @change="changeSelect">
+          <a-select-option v-for="item in selectList" :value="item.value">{{ item.label }} </a-select-option>
         </a-select>
-
       </div>
       <div class="content-c">
-        <echartScene :echartData="echartData"></echartScene>
+        <echartScene :echartData="echartData" />
       </div>
       <div class="content-b">
         <div class="card-box" v-for="(item, index) in sceneList" :key="index">
@@ -27,260 +21,253 @@
           <span class="box-label">{{ item.label }}</span>
           <span class="box-value">{{ item.value }}</span>
           <i class="box-img">
-            <img v-if="true" src="../../../../../assets/images/company/iconS1.png" alt="">
-            <img v-else src="../../../../../assets/images/company/iconS2.png" alt="">
-            <img v-else src="../../../../../assets/images/company/iconS3.png" alt="">
-            <img v-else src="../../../../../assets/images/company/iconS4.png" alt="">
-          </i>
-        </div>
+            <img v-if="true" src="../../../../../assets/images/company/iconS1.png" alt="" />
+            <img v-else src="../../../../../assets/images/company/iconS2.png" alt="" />
+            <!-- <img v-else src="../../../../../assets/images/company/iconS3.png" alt="" />
+            <img v-else src="../../../../../assets/images/company/iconS4.png" alt="" /> -->
+          </i> </div
+        >sssss
       </div>
     </div>
   </div>
 </template>
 
 <script lang="ts" setup>
-import { ref, reactive, defineProps, watch } from 'vue'
-import { SvgIcon } from '/@/components/Icon';
-import echartScene from '../components/echart-scene.vue'
-
-let props = defineProps({
-  compositeData: {
-    type: Array,
-    default: () => {
-      return []
-    }
+  import { ref, reactive, defineProps, watch } from 'vue';
+  import { SvgIcon } from '/@/components/Icon';
+  import echartScene from '../components/echart-scene.vue';
+
+  let props = defineProps({
+    compositeData: {
+      type: Array,
+      default: () => {
+        return [];
+      },
+    },
+  });
+
+  let sceneTitle = ref('关键场景通防综合监测');
+
+  let sceneList = reactive([
+    { label: '总进风', value: 0 },
+    { label: '总风量', value: 0 },
+    { label: '等级孔', value: 0 },
+  ]);
+
+  let selectVal = ref('');
+  let selectList = reactive<any[]>([]);
+  let compositeDatas = ref<any[]>([]);
+
+  //图表数据
+  let echartData = reactive({
+    jfq: 0,
+    yfq: 0,
+    hfq: 0,
+    zf: 0,
+  });
+
+  //下拉选项切换
+  function changeSelect(val) {
+    console.log(val, '下拉选项');
+    selectVal.value = val;
+    let datas = compositeDatas.value.filter((v) => v.deviceName == selectVal.value)[0];
+    echartData.jfq = datas.majorpath.drag_1;
+    echartData.yfq = datas.majorpath.drag_2;
+    echartData.hfq = datas.majorpath.drag_3;
+    echartData.zf = datas.majorpath.drag_total;
+
+    sceneList[0].value = datas.majorpath.drag_total;
+    sceneList[1].value = datas.majorpath.m3_total;
+    sceneList[2].value = Math.round(((1.19 * sceneList[1].value) / 60 / Math.sqrt(sceneList[0].value)) * 100) / 100;
   }
-})
-
-let sceneTitle = ref('关键场景通防综合监测')
-
-let sceneList = reactive([
-  { label: '总进风', value: 0 },
-  { label: '总风量', value: 0 },
-  { label: '等级孔', value: 0 },
-])
-
-let selectVal = ref('')
-let selectList = reactive<any[]>([])
-let compositeDatas = ref<any[]>([])
-
-//图表数据
-let echartData = reactive({
-  jfq: 0,
-  yfq: 0,
-  hfq: 0,
-  zf: 0
-})
-
-//下拉选项切换
-function changeSelect(val) {
-  console.log(val, '下拉选项')
-  selectVal.value = val
-  let datas = compositeDatas.value.filter(v => v.deviceName == selectVal.value)[0]
-  echartData.jfq = datas.majorpath.drag_1
-  echartData.yfq = datas.majorpath.drag_2
-  echartData.hfq = datas.majorpath.drag_3
-  echartData.zf = datas.majorpath.drag_total
-
-  sceneList[0].value = datas.majorpath.drag_total
-  sceneList[1].value = datas.majorpath.m3_total
-  sceneList[2].value = Math.round(((1.19 * sceneList[1].value) / 60 / Math.sqrt(sceneList[0].value)) * 100) / 100
-}
-
-watch(() => props.compositeData, (newS, oldS) => {
-  console.log(newS, '综合监测数据------------')
-  compositeDatas.value = newS
-  if (newS.length != 0) {
-    selectList.length = 0
-    newS.forEach(el => {
-      selectList.push({ label: el.deviceName, value: el.deviceName })
-    })
-    if (selectVal.value) {
-      let datas = newS.filter(v => v.deviceName == selectVal.value)[0]
-      echartData.jfq = datas.majorpath.drag_1
-      echartData.yfq = datas.majorpath.drag_2
-      echartData.hfq = datas.majorpath.drag_3
-      echartData.zf = datas.majorpath.drag_total
-
-      sceneList[0].value = datas.majorpath.drag_total
-      sceneList[1].value = datas.majorpath.m3_total
-      sceneList[2].value = Math.round(((1.19 * sceneList[1].value) / 60 / Math.sqrt(sceneList[0].value)) * 100) / 100
-    } else {
-      selectVal.value = selectList[0].value
-      console.log(selectVal.value, '0009999')
-      echartData.jfq = newS[0].majorpath.drag_1
-      echartData.yfq = newS[0].majorpath.drag_2
-      echartData.hfq = newS[0].majorpath.drag_3
-      echartData.zf = newS[0].majorpath.drag_total
-
-      sceneList[0].value = newS[0].majorpath.drag_total
-      sceneList[1].value = newS[0].majorpath.m3_total
-      sceneList[2].value = Math.round(((1.19 * sceneList[1].value) / 60 / Math.sqrt(sceneList[0].value)) * 100) / 100
-    }
-  }
-
-
-
-
-
-
-}, {
-  immediate: true,
-  deep: true
-})
-
 
+  watch(
+    () => props.compositeData,
+    (newS, oldS) => {
+      console.log(newS, '综合监测数据------------');
+      compositeDatas.value = newS;
+      if (newS.length != 0) {
+        selectList.length = 0;
+        newS.forEach((el) => {
+          selectList.push({ label: el.deviceName, value: el.deviceName });
+        });
+        if (selectVal.value) {
+          let datas = newS.filter((v) => v.deviceName == selectVal.value)[0];
+          echartData.jfq = datas.majorpath.drag_1;
+          echartData.yfq = datas.majorpath.drag_2;
+          echartData.hfq = datas.majorpath.drag_3;
+          echartData.zf = datas.majorpath.drag_total;
+
+          sceneList[0].value = datas.majorpath.drag_total;
+          sceneList[1].value = datas.majorpath.m3_total;
+          sceneList[2].value = Math.round(((1.19 * sceneList[1].value) / 60 / Math.sqrt(sceneList[0].value)) * 100) / 100;
+        } else {
+          selectVal.value = selectList[0].value;
+          console.log(selectVal.value, '0009999');
+          echartData.jfq = newS[0].majorpath.drag_1;
+          echartData.yfq = newS[0].majorpath.drag_2;
+          echartData.hfq = newS[0].majorpath.drag_3;
+          echartData.zf = newS[0].majorpath.drag_total;
+
+          sceneList[0].value = newS[0].majorpath.drag_total;
+          sceneList[1].value = newS[0].majorpath.m3_total;
+          sceneList[2].value = Math.round(((1.19 * sceneList[1].value) / 60 / Math.sqrt(sceneList[0].value)) * 100) / 100;
+        }
+      }
+    },
+    {
+      immediate: true,
+      deep: true,
+    }
+  );
 </script>
 
 <style lang="less" scoped>
-@font-face {
-  font-family: 'douyuFont';
-  src: url('../../../../assets/font/douyuFont.otf');
-}
-
-.sceneKey {
-  position: relative;
-  width: 100%;
-  height: 100%;
-
-  .scene-title {
-    position: absolute;
-    left: 50px;
-    top: 12px;
-    color: #fff;
+  @font-face {
     font-family: 'douyuFont';
-    font-size: 14px;
-
+    src: url('../../../../assets/font/douyuFont.otf');
   }
 
-  .scene-content {
-
+  .sceneKey {
+    position: relative;
+    width: 100%;
     height: 100%;
-    padding: 62px 20px 28px 20px;
-    box-sizing: border-box;
-    display: flex;
-    flex-direction: column;
-    justify-content: space-between;
-    align-items: center;
-
-    .content-t {
-      position: relative;
-      width: 100%;
-      height: 30px;
-      display: flex;
-      justify-content: space-between;
-      align-items: center;
-      background: url('../../../../../assets/images/company/content-label.png') no-repeat center;
-      background-size: 100% 100%;
 
-      .zxm-select {
-        position: absolute;
-        top: 50%;
-        transform: translate(0, -50%);
-
-        &:nth-child(1) {
-          left: 10px;
-        }
-      }
+    .scene-title {
+      position: absolute;
+      left: 50px;
+      top: 12px;
+      color: #fff;
+      font-family: 'douyuFont';
+      font-size: 14px;
     }
 
-    .content-c {
-      width: 100%;
-      height: calc((100% - 30px) / 2);
-      background: url('../../../../../assets/images/company/area2.png') no-repeat center;
-      background-size: 100% 100%;
-    }
-
-    .content-b {
-      width: 100%;
-      height: calc((100% - 30px) / 2);
-      background: url('../../../../../assets/images/company/area1.png') no-repeat center;
-      background-size: 100% 100%;
+    .scene-content {
+      height: 100%;
+      padding: 62px 20px 28px 20px;
+      box-sizing: border-box;
       display: flex;
       flex-direction: column;
-      justify-content: space-around;
+      justify-content: space-between;
       align-items: center;
 
-      .card-box {
+      .content-t {
         position: relative;
-        width: 331px;
-        height: 32px;
-        background: url('../../../../../assets/images/company/fxfx.png') no-repeat center;
+        width: 100%;
+        height: 30px;
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+        background: url('../../../../../assets/images/company/content-label.png') no-repeat center;
         background-size: 100% 100%;
 
-        .box-icon {
+        .zxm-select {
           position: absolute;
-          left: 13px;
           top: 50%;
           transform: translate(0, -50%);
-        }
 
-        .box-label {
-          position: absolute;
-          left: 56px;
-          top: 50%;
-          transform: translate(0, -50%);
-          color: #fff;
-          font-size: 14px;
+          &:nth-child(1) {
+            left: 10px;
+          }
         }
+      }
 
-        .box-value {
-          position: absolute;
-          right: 96px;
-          top: 50%;
-          transform: translate(0, -48%);
-          font-family: 'douyuFont';
-          font-size: 14px;
-          color: #31fbcc;
-        }
+      .content-c {
+        width: 100%;
+        height: calc((100% - 30px) / 2);
+        background: url('../../../../../assets/images/company/area2.png') no-repeat center;
+        background-size: 100% 100%;
+      }
 
-        .box-img {
-          position: absolute;
-          right: 2px;
-          top: 50%;
-          transform: translate(0, -60%);
+      .content-b {
+        width: 100%;
+        height: calc((100% - 30px) / 2);
+        background: url('../../../../../assets/images/company/area1.png') no-repeat center;
+        background-size: 100% 100%;
+        display: flex;
+        flex-direction: column;
+        justify-content: space-around;
+        align-items: center;
+
+        .card-box {
+          position: relative;
+          width: 331px;
+          height: 32px;
+          background: url('../../../../../assets/images/company/fxfx.png') no-repeat center;
+          background-size: 100% 100%;
+
+          .box-icon {
+            position: absolute;
+            left: 13px;
+            top: 50%;
+            transform: translate(0, -50%);
+          }
+
+          .box-label {
+            position: absolute;
+            left: 56px;
+            top: 50%;
+            transform: translate(0, -50%);
+            color: #fff;
+            font-size: 14px;
+          }
+
+          .box-value {
+            position: absolute;
+            right: 96px;
+            top: 50%;
+            transform: translate(0, -48%);
+            font-family: 'douyuFont';
+            font-size: 14px;
+            color: #31fbcc;
+          }
+
+          .box-img {
+            position: absolute;
+            right: 2px;
+            top: 50%;
+            transform: translate(0, -60%);
+          }
         }
       }
     }
   }
-}
-
-::v-deep .zxm-select-single:not(.zxm-select-customize-input) .zxm-select-selector {
-  height: 24px;
-}
-
-::v-deep .zxm-select-single:not(.zxm-select-customize-input) .zxm-select-selector .zxm-select-selection-search-input {
-  height: 24px;
-}
-
-::v-deep .zxm-select-selection-placeholder {
-  color: #fff !important;
-  line-height: 22px !important;
-}
-
-::v-deep .zxm-select-single:not(.zxm-select-customize-input) .zxm-select-selector::after {
-  line-height: 24px;
-}
-
-::v-deep .zxm-select:not(.zxm-select-customize-input) .zxm-select-selector {
-  background-color: transparent;
-  border-top: 0px;
-  border-bottom: 0px;
-  border-left: 2px solid;
-  border-right: 2px solid;
-  border-image: linear-gradient(to bottom, transparent, rgba(49, 184, 255, 1), transparent) 1 1 1;
-
-}
-
-::v-deep .zxm-select-arrow {
-  color: #fff !important;
-}
-
-::v-deep .zxm-select-selection-item {
-  color: #fff !important
-}
-
-::v-deep .zxm-select-single .zxm-select-selector .zxm-select-selection-item {
-  line-height: 24px !important;
-}
-</style>
+
+  ::v-deep .zxm-select-single:not(.zxm-select-customize-input) .zxm-select-selector {
+    height: 24px;
+  }
+
+  ::v-deep .zxm-select-single:not(.zxm-select-customize-input) .zxm-select-selector .zxm-select-selection-search-input {
+    height: 24px;
+  }
+
+  ::v-deep .zxm-select-selection-placeholder {
+    color: #fff !important;
+    line-height: 22px !important;
+  }
+
+  ::v-deep .zxm-select-single:not(.zxm-select-customize-input) .zxm-select-selector::after {
+    line-height: 24px;
+  }
+
+  ::v-deep .zxm-select:not(.zxm-select-customize-input) .zxm-select-selector {
+    background-color: transparent;
+    border-top: 0px;
+    border-bottom: 0px;
+    border-left: 2px solid;
+    border-right: 2px solid;
+    border-image: linear-gradient(to bottom, transparent, rgba(49, 184, 255, 1), transparent) 1 1 1;
+  }
+
+  ::v-deep .zxm-select-arrow {
+    color: #fff !important;
+  }
+
+  ::v-deep .zxm-select-selection-item {
+    color: #fff !important;
+  }
+
+  ::v-deep .zxm-select-single .zxm-select-selector .zxm-select-selection-item {
+    line-height: 24px !important;
+  }
+</style>

+ 86 - 93
src/views/vent/home/clique/components/wind-road.vue

@@ -21,18 +21,18 @@
   </div>
 </template>
 <script lang="ts" setup>
-  import { ref, reactive, nextTick,defineProps,watch } from 'vue';
+  import { ref, reactive, nextTick, defineProps, watch } from 'vue';
   import { SvgIcon } from '/@/components/Icon';
   import * as echarts from 'echarts';
 
-  let props=defineProps({
-    roadData:{
-      type:Object,
-      default:()=>{
-        return {}
-      }
-    }
-  })
+  let props = defineProps({
+    roadData: {
+      type: Object,
+      default: () => {
+        return {};
+      },
+    },
+  });
 
   let roadTitle = ref('通风巷道长度统计');
   let road = ref(); //获取Dom节点
@@ -51,15 +51,7 @@
   function getOption() {
     nextTick(() => {
       const myChart = echarts.init(road.value);
-      let color=[
-      '#FF9A22',
-      '#FFD56E',
-      '#00EC28',
-      '#5DF076',
-      '#12B9DB',
-      '#6F8EF2',
-
-      ]
+      let color = ['#FF9A22', '#FFD56E', '#00EC28', '#5DF076', '#12B9DB', '#6F8EF2'];
       let option = {
         grid: {
           top: '14%',
@@ -94,7 +86,7 @@
         },
 
         yAxis: {
-          max: Math.ceil(roadDatas.value+1000),
+          max: Math.ceil(roadDatas.value + 1000),
           name: '长度(km)',
           nameTextStyle: {
             color: '#3df6ff',
@@ -131,28 +123,27 @@
             z: 12,
             itemStyle: {
               opacity: 1,
-              color: function (params,) {
-                console.log(params,'index-----11111111111111111')
+              color: function (params) {
+                console.log(params, 'index-----11111111111111111');
                 // var a = params.name.slice(0, 2);
-          
-                  return new echarts.graphic.LinearGradient(
-                    0,
-                    0,
-                    0,
-                    1,
-                    [
-                      {
-                        offset: 0,
-                        color:  color[params.seriesIndex], // 0% 处的颜色
-                      },
-                      {
-                        offset: 1,
-                        color: color[params.seriesIndex + 1], // 100% 处的颜色
-                      },
-                    ],
-                    false
-                  );
-                
+
+                return new echarts.graphic.LinearGradient(
+                  0,
+                  0,
+                  0,
+                  1,
+                  [
+                    {
+                      offset: 0,
+                      color: color[params.seriesIndex], // 0% 处的颜色
+                    },
+                    {
+                      offset: 1,
+                      color: color[params.seriesIndex + 1], // 100% 处的颜色
+                    },
+                  ],
+                  false
+                );
               },
             },
             data: [1, 1, 1, 1, 1],
@@ -168,24 +159,24 @@
               //lenged文本
               opacity: 0.7,
               color: function (params) {
-                console.log(params,'index-----222222222222222')
+                console.log(params, 'index-----222222222222222');
                 return new echarts.graphic.LinearGradient(
-                    0,
-                    0,
-                    0,
-                    1,
-                    [
-                      {
-                        offset: 0,
-                        color:  color[params.dataIndex], // 0% 处的颜色
-                      },
-                      {
-                        offset: 1,
-                        color: color[params.dataIndex + 1], // 100% 处的颜色
-                      },
-                    ],
-                    false
-                  );
+                  0,
+                  0,
+                  0,
+                  1,
+                  [
+                    {
+                      offset: 0,
+                      color: color[params.dataIndex], // 0% 处的颜色
+                    },
+                    {
+                      offset: 1,
+                      color: color[params.dataIndex + 1], // 100% 处的颜色
+                    },
+                  ],
+                  false
+                );
                 // var a = params.name.slice(0, 2);
                 // if (a === '全矿') {
                 //   return new echarts.graphic.LinearGradient(
@@ -205,7 +196,7 @@
                 //     ],
                 //     false
                 //   );
-                // } 
+                // }
                 // // else if (a === '榆家' || a == '大柳') {
                 // //   return new echarts.graphic.LinearGradient(
                 // //     0,
@@ -224,7 +215,7 @@
                 // //     ],
                 // //     false
                 // //   );
-                // // } 
+                // // }
                 // // else if (a === '锦界' || a == '哈拉') {
                 // //   return new echarts.graphic.LinearGradient(
                 // //     0,
@@ -284,24 +275,24 @@
             itemStyle: {
               opacity: 1,
               color: function (params) {
-                console.log(params,'index-----333333333333333')
+                console.log(params, 'index-----333333333333333');
                 return new echarts.graphic.LinearGradient(
-                    0,
-                    0,
-                    0,
-                    1,
-                    [
-                      {
-                        offset: 0,
-                        color:  color[params.dataIndex], // 0% 处的颜色
-                      },
-                      {
-                        offset: 1,
-                        color: color[params.dataIndex + 1], // 100% 处的颜色
-                      },
-                    ],
-                    false
-                  );
+                  0,
+                  0,
+                  0,
+                  1,
+                  [
+                    {
+                      offset: 0,
+                      color: color[params.dataIndex], // 0% 处的颜色
+                    },
+                    {
+                      offset: 1,
+                      color: color[params.dataIndex + 1], // 100% 处的颜色
+                    },
+                  ],
+                  false
+                );
               },
             },
             symbolPosition: 'end',
@@ -340,24 +331,26 @@
     });
   }
 
-  watch(()=>props.roadData,(newR,oldR)=>{
-    console.log(newR,'通风巷道长度数据-------')
-    if(JSON.stringify(newR)!='{}'){
-      maxData.length=0
-      roadDatas.value=newR.totallength
-      xData.value=newR.data1
-      yData.value=newR.data
-      yData.value.forEach(el=>{
-        maxData.push(el+200)
-      })
-      getOption();
+  watch(
+    () => props.roadData,
+    (newR, oldR) => {
+      console.log(newR, '通风巷道长度数据-------');
+      if (JSON.stringify(newR) != '{}') {
+        maxData.length = 0;
+        roadDatas.value = newR.totallength;
+        xData.value = newR.data1;
+        yData.value = newR.data;
+        yData.value.forEach((el) => {
+          maxData.push(el + 200);
+        });
+        getOption();
+      }
+    },
+    {
+      immediate: true,
+      deep: true,
     }
-  },{
-    immediate:true,
-    deep:true
-  })
-
-  
+  );
 </script>
 <style lang="less" scoped>
   @font-face {

+ 8 - 8
src/views/vent/home/clique/testPage.vue

@@ -18,28 +18,28 @@
   const mainTitle = ref('国家能源神东煤炭集团');
   const cards = ref<{ title: string }[]>([
     {
-      title: 'A矿',
+      title: '布尔台矿',
     },
     {
-      title: 'B矿',
+      title: '柳塔矿矿',
     },
     {
-      title: 'C矿',
+      title: '寸草塔二矿',
     },
     {
-      title: 'D矿',
+      title: '乌兰木伦矿',
     },
     {
-      title: 'E矿',
+      title: '寸草塔矿',
     },
     {
-      title: 'F矿',
+      title: '石坎台矿',
     },
     {
-      title: 'G矿',
+      title: '补连塔矿',
     },
     {
-      title: 'H矿',
+      title: '哈拉沟矿',
     },
   ]);
 </script>

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

@@ -77,19 +77,19 @@
                   'level-text-6':
                     item.level != 0 && item.level != 101 && item.level != 102 && item.level != 103 && item.level != 104 && item.level != 201,
                 }">{{
-                    item.level == 0
-                      ? '低风险'
-                      : item.level == 101
-                        ? '低风险'
-                        : item.level == 102
-                          ? '一般风险'
-                          : item.level == 103
-                            ? '较大风险'
-                            : item.level == 104
-                              ? '较大风险'
-                              : item.level == 201
-                                ? '报警'
-                                : '未连接'
+                  item.level == 0
+                  ? '低风险'
+                  : item.level == 101
+                  ? '低风险'
+                  : item.level == 102
+                  ? '一般风险'
+                  : item.level == 103
+                  ? '较大风险'
+                  : item.level == 104
+                  ? '较大风险'
+                  : item.level == 201
+                  ? '报警'
+                  : '未连接'
                   }}</div>
               </div>
             </template>
@@ -131,21 +131,21 @@
           <div class="text-box">
             <div class="text1">{{
               centerData.levels == 101
-                ? '低风险'
-                : centerData.levels == 102
-                  ? '一般风险'
-                  : centerData.levels == 103
-                    ? '较大风险'
-                    : centerData.levels == 104
-                      ? '重大风险'
-                      : centerData.levels == 201
-                        ? '报警'
-                        : // : centerData.levels == 0
-                        // ? '正常'
-                        // : centerData.levels == 10000
-                        // ? '正常'
-                        '低风险'
-            }}</div>
+              ? '低风险'
+              : centerData.levels == 102
+              ? '一般风险'
+              : centerData.levels == 103
+              ? '较大风险'
+              : centerData.levels == 104
+              ? '重大风险'
+              : centerData.levels == 201
+              ? '报警'
+              : // : centerData.levels == 0
+              // ? '正常'
+              // : centerData.levels == 10000
+              // ? '正常'
+              '低风险'
+              }}</div>
             <div class="text2">风险分析</div>
           </div>
           <div class="icon-animation"></div>
@@ -230,7 +230,8 @@
           <div class="item">
             <div class="icon"></div>
             <div class="data-box" v-for="(item, index) in fireMonitor" :key="index">
-              <div class="value1"> {{ !item.value ? '-' : item.value == '正常' ? '低风险' : item.value }} </div>
+              <!-- <div class="value1"> {{ !item.value ? '-' : item.value == '正常' ? '低风险' : item.value }} </div> -->
+              <div class="value1"> {{ !item.value ? '低风险' : item.value == '正常' ? '低风险' : item.value }} </div>
               <div class="title">{{ item.title }}</div>
             </div>
           </div>

+ 2 - 1
src/views/vent/monitorManager/deviceMonitor/components/device/modal/bundle.modal.vue

@@ -192,7 +192,8 @@ export default defineComponent({
         if ((!activeDeviceID.value && index == 0) || item.deviceID === activeDeviceID.value) {
           // activeDeviceID.value = item.deviceID;
           posMonitor.value = Object.assign(item, item.readData);
-          historyList.value = item['history'];
+          // historyList.value = item['history'];
+          historyList.value = item['dayhistory'];
         }
         item.readTime = item.readTime?.substring(11);
         return item;

+ 261 - 228
src/views/vent/monitorManager/fanLocalMonitor/index.vue

@@ -123,16 +123,16 @@
             >
           </div>
           <div class="container-group">
-            <div class="warning-header">
+            <!-- <div class="warning-header">
               <div class="header-item">
                 <div class="header-title">报警总数</div>
                 <div class="header-value">0</div>
               </div>
               <div class="header-item">
-                <div class="header-title"> 未处理数</div>
+                <div class="header-title">未处理数</div>
                 <div class="header-value">0</div>
               </div>
-            </div>
+            </div> -->
             <div class="warning-group">
               <template v-if="selectData.deviceType">
                 <!-- <div class="warning-item" v-for="(state, index) in leftColumns" :key="index">
@@ -502,6 +502,8 @@
   import { save, reportList } from '../../reportManager/reportManager.api';
   import { usePermission } from '/@/hooks/web/usePermission';
   import { useGlobSetting } from '/@/hooks/setting';
+  import { useMessage } from '/@/hooks/web/useMessage';
+  
   const { hasPermission } = usePermission();
   const globalConfig = inject('globalConfig');
   const [registerModal, { openModal, closeModal }] = useModal();
@@ -509,7 +511,7 @@
   const [registerModalAssistance, { openModal: openAssistance, closeModal: closeAssistance }] = useModal();
   const { currentRoute } = useRouter();
   const router = useRouter();
-
+  const { createConfirm } = useMessage();
   const globSetting = useGlobSetting();
 
   const modalTypeArr = reactive({
@@ -945,120 +947,227 @@
   }
 
   function handleOk(control?) {
-    const handType = controlType.value;
-    const data = {
-      deviceid: selectData.deviceID,
-      devicetype: selectData.deviceType,
-      paramcode: '',
-      password: passWord.value || globalConfig?.simulatedPassword,
-      value: null,
-    };
-    // debugger;
-    if (handType === 'startSmoke') {
-      // 启动风机
-      // 以下是互斥
-      if (mainWindIsShow1.value === 'open' && mainWindIsShow2.value === 'stop') {
-        // playSmoke(handType, 'top', frequency, 'open');
-        data.paramcode = 'CtrlFan1Start';
-        btnClick.value = false;
+    if (passWord.value == '') {
+      message.warning('请输入密码!');
+      return;
+    }
+
+    createConfirm({
+      iconType: 'warning',
+      title: '控制',
+      content: '您确定要控制吗?',
+      onOk: () => handerFn(),
+    });
+    const handerFn = () => {
+      const handType = controlType.value;
+      const data = {
+        deviceid: selectData.deviceID,
+        devicetype: selectData.deviceType,
+        paramcode: '',
+        password: passWord.value || globalConfig?.simulatedPassword,
+        value: null,
+      };
+      if (handType === 'startSmoke') {
+        // 启动风机
+        // 以下是互斥
+        if (mainWindIsShow1.value === 'open' && mainWindIsShow2.value === 'stop') {
+          // playSmoke(handType, 'top', frequency, 'open');
+          data.paramcode = 'CtrlFan1Start';
+          deviceControlApi(data)
+            .then((res) => {
+
+              if (res.success) {
+                if (globalConfig.History_Type == 'remote') {
+                  message.success('指令已下发至生产管控平台成功!');
+                } else {
+                  message.success('指令已下发成功!');
+                }
+                modalTitle.value = '';
+                modalIsShow.value = false;
+              } else {
+                message.error(res.message)
+              }
+            })
+            .catch((err) => {
+              // modalIsShow.value = true;
+            });
+        } else if (mainWindIsShow2.value === 'open' && mainWindIsShow1.value === 'stop') {
+          // playSmoke(handType, 'down', frequency, 'open');
+          data.paramcode = 'CtrlFan2Start';
+          deviceControlApi(data)
+            .then(() => {
+              if (res.success) {
+                if (globalConfig.History_Type == 'remote') {
+                  message.success('指令已下发至生产管控平台成功!');
+                } else {
+                  message.success('指令已下发成功!');
+                }
+                modalTitle.value = '';
+                modalIsShow.value = false;
+              } else {
+                message.error(res.message)
+              }
+            })
+            .catch((err) => {
+
+
+            });
+        } else if (mainWindIsShow1.value === 'stop' && mainWindIsShow2.value === 'stop') {
+          // playSmoke(handType, '', frequency, 'stop');
+        }
+      } else if (handType === 'startFan') {
+        if (control === 'Fan1Open') {
+          data.paramcode = 'CtrlFan1Start';
+        } else if (control === 'Fan2Open') {
+          data.paramcode = 'CtrlFan2Start';
+        } else if (control === 'Fan1Stop') {
+          data.paramcode = 'Fan1Stop';
+        } else if (control === 'Fan2Stop') {
+          data.paramcode = 'Fan2Stop';
+        } else if (control === 'Fan1Reset') {
+          data.paramcode = 'Fan1Reset';
+        } else if (control === 'Fan2Reset') {
+          data.paramcode = 'Fan2Reset';
+        }
         deviceControlApi(data)
-          .then(() => {
-            if (globalConfig.History_Type == 'remote') {
-              message.success('指令已下发至生产管控平台成功!');
+          .then((res) => {
+            if (res.success) {
+              if (globalConfig.History_Type == 'remote') {
+                message.success('指令已下发至生产管控平台成功!');
+              } else {
+                message.success('指令已下发成功!');
+              }
+              modalTitle.value = '';
+              modalIsShow.value = false;
             } else {
-              message.success('指令已下发成功!');
+              message.error(res.message)
             }
-            modalTitle.value = '';
-            modalIsShow.value = false;
-            btnClick.value = true;
           })
           .catch((err) => {
-            // modalIsShow.value = true;
+            btnClick.value = true;
           });
-      } else if (mainWindIsShow2.value === 'open' && mainWindIsShow1.value === 'stop') {
-        // playSmoke(handType, 'down', frequency, 'open');
-        data.paramcode = 'CtrlFan2Start';
-        btnClick.value = false;
+      } else if (handType === 'Fan1Frequency' || handType === 'Fan2Frequency' || handType === 'FanFrequency') {
+        // 调频
+        if (handType === 'Fan1Frequency') {
+          data.paramcode = 'Fan1FreqHz';
+          data.value = fan1FrequencyVal.value;
+        } else if (handType === 'Fan2Frequency') {
+          data.paramcode = 'Fan2FreqHz';
+          data.value = fan2FrequencyVal.value;
+        } else if (handType === 'FanFrequency') {
+          data.paramcode = 'FreqHz_merge';
+          data.value = fan1FrequencyVal.value;
+        }
+
         deviceControlApi(data)
-          .then(() => {
-            if (globalConfig.History_Type == 'remote') {
-              message.success('指令已下发至生产管控平台成功!');
+          .then((res) => {
+            if (res.success) {
+              if (globalConfig.History_Type == 'remote') {
+                message.success('指令已下发至生产管控平台成功!');
+              } else {
+                message.success('指令已下发成功!');
+              }
+              modalTitle.value = '';
+              modalIsShow.value = false;
             } else {
-              message.success('指令已下发成功!');
+              message.error(res.message)
             }
-            btnClick.value = true;
-            modalTitle.value = '';
-            modalIsShow.value = false;
           })
           .catch((err) => {
-            btnClick.value = true;
           });
-      } else if (mainWindIsShow1.value === 'stop' && mainWindIsShow2.value === 'stop') {
-        // playSmoke(handType, '', frequency, 'stop');
-      }
-    } else if (handType === 'startFan') {
-      if (control === 'Fan1Open') {
-        data.paramcode = 'CtrlFan1Start';
-      } else if (control === 'Fan2Open') {
-        data.paramcode = 'CtrlFan2Start';
-      } else if (control === 'Fan1Stop') {
-        data.paramcode = 'Fan1Stop';
-      } else if (control === 'Fan2Stop') {
-        data.paramcode = 'Fan2Stop';
-      } else if (control === 'Fan1Reset') {
-        data.paramcode = 'Fan1Reset';
-      } else if (control === 'Fan2Reset') {
-        data.paramcode = 'Fan2Reset';
-      }
-      btnClick.value = false;
-      deviceControlApi(data)
-        .then((res) => {
-          if (globalConfig.History_Type == 'remote') {
-            message.success('指令已下发至生产管控平台成功!');
-          } else {
-            message.success('指令已下发成功!');
-          }
-          modalTitle.value = '';
-          modalIsShow.value = false;
-          btnClick.value = true;
-        })
-        .catch((err) => {
-          btnClick.value = true;
-        });
-    } else if (handType === 'Fan1Frequency' || handType === 'Fan2Frequency' || handType === 'FanFrequency') {
-      // 调频
-      if (handType === 'Fan1Frequency') {
-        data.paramcode = 'Fan1FreqHz';
-        data.value = fan1FrequencyVal.value;
-      } else if (handType === 'Fan2Frequency') {
-        data.paramcode = 'Fan2FreqHz';
-        data.value = fan2FrequencyVal.value;
-      } else if (handType === 'FanFrequency') {
-        data.paramcode = 'FreqHz_merge';
-        data.value = fan1FrequencyVal.value;
-      }
+      } else if (handType === 'changeSmoke') {
+        if (selectData['Fan1StartStatus'] == '0' || !selectData['Fan1StartStatus']) {
+          data.paramcode = 'CtrlFan1Start';
+          deviceControlApi(data)
+            .then((res) => {
+              if (res.success) {
+                if (globalConfig.History_Type == 'remote') {
+                  message.success('指令已下发至生产管控平台成功!');
+                } else {
+                  message.success('指令已下发成功!');
+                }
+                modalTitle.value = '';
+                modalIsShow.value = false;
+              } else {
+                message.error(res.message)
+              }
 
-      btnClick.value = false;
-      deviceControlApi(data)
-        .then((res) => {
-          if (globalConfig.History_Type == 'remote') {
-            message.success('指令已下发至生产管控平台成功!');
-          } else {
-            message.success('指令已下发成功!');
-          }
-          modalTitle.value = '';
-          modalIsShow.value = false;
-          btnClick.value = true;
-        })
-        .catch((err) => {
-          btnClick.value = true;
-        });
-    } else if (handType === 'changeSmoke') {
-      if (selectData['Fan1StartStatus'] == '0' || !selectData['Fan1StartStatus']) {
-        data.paramcode = 'CtrlFan1Start';
-        btnClick.value = false;
+              mainWindIsShow1.value = 'stop';
+              mainWindIsShow2.value = 'open';
+            })
+            .catch((err) => {
+            });
+        } else if (selectData['Fan2StartStatus'] == '0' || !selectData['Fan2StartStatus']) {
+          data.paramcode = 'CtrlFan2Start';
+          deviceControlApi(data)
+            .then((res) => {
+              if (res.success) {
+                if (globalConfig.History_Type == 'remote') {
+                  message.success('指令已下发至生产管控平台成功!');
+                } else {
+                  message.success('指令已下发成功!');
+                }
+                modalTitle.value = '';
+                modalIsShow.value = false;
+              } else {
+                message.error(res.message)
+              }
+              mainWindIsShow1.value = 'open';
+              mainWindIsShow2.value = 'stop';
+            })
+            .catch((err) => {
+            });
+        }
+        // // 一键倒机
+        // if (mainWindIsShow1.value === 'open' && mainWindIsShow2.value === 'stop') {
+        //   // playSmoke('startSmoke', 'down', frequency, 'open');
+        //   data.paramcode = 'CtrlFan2Start';
+        //   deviceControlApi(data).then((res) => {
+        //     console.log('设备操作结果', res);
+        //     modalTitle.value = '';
+        //     modalIsShow.value = false;
+        //   }).catch((err) => {
+
+        //   });
+        //   mainWindIsShow1.value = 'stop';
+        //   mainWindIsShow2.value = 'open';
+        // } else if (mainWindIsShow2.value === 'open' && mainWindIsShow1.value === 'stop') {
+        //   // playSmoke('startSmoke', 'top', frequency, 'open');
+        //   data.paramcode = 'CtrlFan1Start';
+        //   deviceControlApi(data).then((res) => {
+        //     console.log('设备操作结果', res);
+        //     modalTitle.value = '';
+        //     modalIsShow.value = false;
+        //   }).catch((err) => {
+
+        //   });
+        //   mainWindIsShow1.value = 'open';
+        //   mainWindIsShow2.value = 'stop';
+        // } else if (mainWindIsShow1.value === 'stop' && mainWindIsShow2.value === 'stop') {
+        //   // playSmoke(handType, '', frequency, 'stop');
+        // }
+      } else if (handType === 'changeFan') {
+        data.paramcode = 'CtrlFanStart';
         deviceControlApi(data)
           .then((res) => {
+            if (res.success) {
+              if (globalConfig.History_Type == 'remote') {
+                message.success('指令已下发至生产管控平台成功!');
+              } else {
+                message.success('指令已下发成功!');
+              }
+              modalTitle.value = '';
+              modalIsShow.value = false;
+            } else {
+              message.error(res.message)
+            }
+          })
+          .catch((err) => {
+          });
+      } else if (handType === 'fan1ToFan2') {
+        data.paramcode = 'CtrlFan1ToFan2';
+        deviceControlApi(data).then(() => {
+          if (res.success) {
             if (globalConfig.History_Type == 'remote') {
               message.success('指令已下发至生产管控平台成功!');
             } else {
@@ -1066,18 +1175,14 @@
             }
             modalTitle.value = '';
             modalIsShow.value = false;
-            mainWindIsShow1.value = 'stop';
-            mainWindIsShow2.value = 'open';
-            btnClick.value = true;
-          })
-          .catch((err) => {
-            btnClick.value = true;
-          });
-      } else if (selectData['Fan2StartStatus'] == '0' || !selectData['Fan2StartStatus']) {
-        data.paramcode = 'CtrlFan2Start';
-        btnClick.value = false;
-        deviceControlApi(data)
-          .then((res) => {
+          } else {
+            message.error(res.message)
+          }
+        });
+      } else if (handType === 'fan2ToFan1') {
+        data.paramcode = 'CtrlFan2ToFan1';
+        deviceControlApi(data).then(() => {
+          if (res.success) {
             if (globalConfig.History_Type == 'remote') {
               message.success('指令已下发至生产管控平台成功!');
             } else {
@@ -1085,130 +1190,58 @@
             }
             modalTitle.value = '';
             modalIsShow.value = false;
-            mainWindIsShow1.value = 'open';
-            mainWindIsShow2.value = 'stop';
-            btnClick.value = true;
-          })
-          .catch((err) => {
-            btnClick.value = true;
-          });
-      }
-      // // 一键倒机
-      // if (mainWindIsShow1.value === 'open' && mainWindIsShow2.value === 'stop') {
-      //   // playSmoke('startSmoke', 'down', frequency, 'open');
-      //   data.paramcode = 'CtrlFan2Start';
-      //   deviceControlApi(data).then((res) => {
-      //     console.log('设备操作结果', res);
-      //     modalTitle.value = '';
-      //     modalIsShow.value = false;
-      //   }).catch((err) => {
-
-      //   });
-      //   mainWindIsShow1.value = 'stop';
-      //   mainWindIsShow2.value = 'open';
-      // } else if (mainWindIsShow2.value === 'open' && mainWindIsShow1.value === 'stop') {
-      //   // playSmoke('startSmoke', 'top', frequency, 'open');
-      //   data.paramcode = 'CtrlFan1Start';
-      //   deviceControlApi(data).then((res) => {
-      //     console.log('设备操作结果', res);
-      //     modalTitle.value = '';
-      //     modalIsShow.value = false;
-      //   }).catch((err) => {
-
-      //   });
-      //   mainWindIsShow1.value = 'open';
-      //   mainWindIsShow2.value = 'stop';
-      // } else if (mainWindIsShow1.value === 'stop' && mainWindIsShow2.value === 'stop') {
-      //   // playSmoke(handType, '', frequency, 'stop');
-      // }
-    } else if (handType === 'changeFan') {
-      data.paramcode = 'CtrlFanStart';
-      btnClick.value = false;
-      deviceControlApi(data)
-        .then((res) => {
-          if (globalConfig.History_Type == 'remote') {
-            message.success('指令已下发至生产管控平台成功!');
           } else {
-            message.success('指令已下发成功!');
+            message.error(res.message)
           }
+        });
+      } else if (handType === 'gasAlarmSet') {
+        if (passWord.value != '123456') {
+          message.error('密码错误,请重新输入!');
+          return;
+        }
+        if (gasWarningVal.value) {
           modalTitle.value = '';
           modalIsShow.value = false;
-          btnClick.value = true;
-        })
-        .catch((err) => {
-          btnClick.value = true;
-        });
-    } else if (handType === 'fan1ToFan2') {
-      data.paramcode = 'CtrlFan1ToFan2';
-      deviceControlApi(data).then(() => {
-        if (globalConfig.History_Type == 'remote') {
-          message.success('指令已下发至生产管控平台成功!');
+          setTimeout(() => {
+            passWord.value = '';
+            modalIsShow.value = true;
+            controlType.value = 'toGkjc';
+            modalTitle.value = '工况决策辅助';
+          }, 500);
         } else {
-          message.success('指令已下发成功!');
+          message.error('请核对瓦斯超限浓度值!');
         }
-        modalTitle.value = '';
-        modalIsShow.value = false;
-        btnClick.value = true;
-      });
-    } else if (handType === 'fan2ToFan1') {
-      data.paramcode = 'CtrlFan2ToFan1';
-      deviceControlApi(data).then(() => {
-        if (globalConfig.History_Type == 'remote') {
-          message.success('指令已下发至生产管控平台成功!');
+      } else if (handType === 'toGkjc') {
+        if (passWord.value != '123456') {
+          message.error('密码错误,请重新输入!');
+          return;
+        }
+        //进行工况决策
+        if (selectData.Fan1StartStatus == '1') {
+          openAssistance(true, {
+            // m3: selectData.m3 || 675.87,
+            m3: 675.87,
+            frequency: 30,
+            // frequency: selectData.Fan1fHz || selectData.Fan1FreqHz || selectData.Fan1Loop_Frequency,
+            gasWarningVal: gasWarningVal.value,
+            isCompute: false,
+          });
+        } else if (selectData.Fan2StartStatus == '1') {
+          openAssistance(true, {
+            // m3: selectData.m3 || 675.87,
+            m3: 675.87,
+            frequency: 30,
+            // frequency: selectData.Fan2fHz || selectData.Fan2FreqHz || selectData.Fan2Loop_Frequency,
+            gasWarningVal: gasWarningVal.value,
+            isCompute: false,
+          });
         } else {
-          message.success('指令已下发成功!');
+          // openAssistance(true, { m3: 635.04, dataDh: 5748 });
+          openAssistance(true);
         }
         modalTitle.value = '';
         modalIsShow.value = false;
-        btnClick.value = true;
-      });
-    } else if (handType === 'gasAlarmSet') {
-      if (passWord.value != '123456') {
-        message.error('密码错误,请重新输入!');
-        return;
-      }
-      if (gasWarningVal.value) {
-        modalTitle.value = '';
-        modalIsShow.value = false;
-        setTimeout(() => {
-          passWord.value = '';
-          modalIsShow.value = true;
-          controlType.value = 'toGkjc';
-          modalTitle.value = '工况决策辅助';
-        }, 500);
-      } else {
-        message.error('请核对瓦斯超限浓度值!');
-      }
-    } else if (handType === 'toGkjc') {
-      if (passWord.value != '123456') {
-        message.error('密码错误,请重新输入!');
-        return;
-      }
-      //进行工况决策
-      if (selectData.Fan1StartStatus == '1') {
-        openAssistance(true, {
-          m3: selectData.m3 || 675.87,
-          // m3: 675.87,
-          frequency: 30,
-          // frequency: selectData.Fan1fHz || selectData.Fan1FreqHz || selectData.Fan1Loop_Frequency,
-          gasWarningVal: gasWarningVal.value,
-          isCompute: false,
-        });
-      } else if (selectData.Fan2StartStatus == '1') {
-        openAssistance(true, {
-          m3: selectData.m3 || 675.87,
-          // m3: 675.87,
-          frequency: 30,
-          // frequency: selectData.Fan2fHz || selectData.Fan2FreqHz || selectData.Fan2Loop_Frequency,
-          gasWarningVal: gasWarningVal.value,
-          isCompute: false,
-        });
-      } else {
-        // openAssistance(true, { m3: 635.04, dataDh: 5748 });
-        openAssistance(true);
       }
-      modalTitle.value = '';
-      modalIsShow.value = false;
     }
   }
 

+ 241 - 232
src/views/vent/monitorManager/mainFanMonitor/index.vue

@@ -430,8 +430,7 @@
   const [registerModal, { openModal, closeModal }] = useModal();
   const [registerModalDeviceEdit, { openModal: openModalDeviceEdit }] = useModal();
   const { currentRoute } = useRouter();
-
-  const { createMessage } = useMessage();
+  const { createMessage, createConfirm } = useMessage();
   const scroll = reactive({
     y: 180,
   });
@@ -603,7 +602,6 @@
   };
   // 切换检测数据
   const getSelectRow = async (id) => {
-    // debugger;
     if (!id) return;
     loading.value = true;
     const baseDataIndex: any = dataSource.value.findIndex((baseData: any) => baseData.deviceID === id);
@@ -658,13 +656,13 @@
       deviceControlApi(data)
         .then((res) => {
           if (res.success) {
-            reolve(null);
+            reolve(res);
           } else {
-            reject(null);
+            reject(res);
           }
         })
         .catch(() => {
-          reject(null);
+          reject(res);
         });
     });
   };
@@ -725,253 +723,264 @@
   };
 
   const handleOk = (flag?) => {
-    // if (passWord.value !== '123456') {
-    //   createMessage.warning('密码不正确,请重新输入');
-    //   return;
-    // }
-    if (modalType.value == 'startSmoke') {
-      if (selectData['Fan1StartStatus'] == 1 && selectData['Fan2StartStatus'] == 0) {
-        start('CtrlFan2Start')
-          .then(() => {
-            frontMonitorIsShow.value = false;
-            backMonitorIsShow.value = true;
-          })
-          .catch(() => {
-            createMessage.error('操作失败,请联系管理员');
-          });
-      } else if (selectData['Fan1StartStatus'] == 0 && selectData['Fan2StartStatus'] == 1) {
-        start('CtrlFan1Start')
-          .then(() => {
-            frontMonitorIsShow.value = true;
-            backMonitorIsShow.value = false;
-          })
-          .catch(() => {
-            createMessage.error('操作失败,请联系管理员');
-          });
-      } else if (mainWindIsShow1.value === 'stop' && mainWindIsShow2.value === 'stop') {
-        frontMonitorIsShow.value = false;
-        backMonitorIsShow.value = false;
-      }
-    } else if (modalType.value == 'changeDirection') {
-      if (selectData['Fan1StartStatus'] == 1 && selectData['Fan2StartStatus'] == 0) {
-        // 主机一键反风
-        if (isSimulation) {
-          const fan1Forward = selectData['Fan1FreqForwardRun'] == 1 ? 0 : 1;
-          const fan1Reverse = fan1Forward == 0 ? 1 : 0;
-          // 模拟
-          start('CtrlFan1Reverse', { Fan1FreqForwardRun: fan1Forward, Fan1FreqReverseRun: fan1Reverse }, true).catch(() => {
-            createMessage.error('操作失败,请联系管理员');
-          });
-        } else {
-          // 实际
-          start('CtrlFan1Reverse').catch(() => {
-            createMessage.error('操作失败,请联系管理员');
-          });
-        }
-      } else if (selectData['Fan2StartStatus'] == 1 && selectData['Fan1StartStatus'] == 0) {
-        if (isSimulation) {
-          const fan2Forward = selectData['Fan2FreqForwardRun'] == 1 ? 0 : 1;
-          const fan2Reverse = fan2Forward == 0 ? 1 : 0;
-          // 模拟
-          start('CtrlFan2Reverse', { Fan2FreqForwardRun: fan2Forward, Fan2FreqReverseRun: fan2Reverse }, true).catch(() => {
-            createMessage.error('操作失败,请联系管理员');
-          });
-        } else {
-          // 实际
-          start('CtrlFan2Reverse').catch(() => {
-            createMessage.error('操作失败,请联系管理员');
-          });
-        }
-      }
-    } else if (selectData['Fan2StartStatus'] == 0 && selectData['Fan1StartStatus'] == 0) {
-    } else if (modalType.value == 'changeSmoke') {
-      //182模拟
-      // 不听风倒机
-      if (selectData['Fan1StartStatus'] == 1 && selectData['Fan2StartStatus'] == 0) {
-        // 由主到备
-        // 正启动
-        if (selectData['Fan1FreqForwardRun'] && selectData['Fan1FreqForwardRun'] == 1) {
-          console.log('一键1倒2正启动控制  ');
-          start('CtrlFan1ToFan2Forward')
-            .then(() => {
-              frontMonitorIsShow.value = false;
-              backMonitorIsShow.value = true;
-            })
-            .catch(() => {
-              createMessage.error('操作失败,请联系管理员');
-            });
-        }
-        // 反启动
-        if (selectData['Fan1FreqReverseRun'] && selectData['Fan1FreqReverseRun'] == 1) {
-          console.log('一键1倒2反启动控制');
-          start('CtrlFan1ToFan2Reverse')
+    if (passWord.value == '') {
+      createMessage.warning('请输入密码!');
+      return;
+    }
+    createConfirm({
+      iconType: 'warning',
+      title: '控制',
+      content: '您确定要控制吗?',
+      onOk: () => handerFn(),
+    });
+
+    const handerFn = () => {
+      if (modalType.value == 'startSmoke') {
+        if (selectData['Fan1StartStatus'] == 1 && selectData['Fan2StartStatus'] == 0) {
+          start('CtrlFan2Start')
             .then(() => {
               frontMonitorIsShow.value = false;
               backMonitorIsShow.value = true;
             })
-            .catch(() => {
-              createMessage.error('操作失败,请联系管理员');
+            .catch((err) => {
+              createMessage.error(err.message);
             });
-        }
-      } else if (selectData['Fan2StartStatus'] == 1 && selectData['Fan1StartStatus'] == 0) {
-        // 由备到主
-        // 正启动
-        if (selectData['Fan2FreqForwardRun'] && selectData['Fan2FreqForwardRun'] == 1) {
-          console.log('一键2倒1正启动控制');
-          start('CtrlFan2ToFan1Forward')
+        } else if (selectData['Fan1StartStatus'] == 0 && selectData['Fan2StartStatus'] == 1) {
+          start('CtrlFan1Start')
             .then(() => {
               frontMonitorIsShow.value = true;
               backMonitorIsShow.value = false;
             })
-            .catch(() => {
-              createMessage.error('操作失败,请联系管理员');
+            .catch((err) => {
+              createMessage.error(err.message);
             });
+        } else if (mainWindIsShow1.value === 'stop' && mainWindIsShow2.value === 'stop') {
+          frontMonitorIsShow.value = false;
+          backMonitorIsShow.value = false;
         }
-        // 反启动
-        if (selectData['Fan2FreqReverseRun'] && selectData['Fan2FreqReverseRun'] == 1) {
-          console.log('一键2倒1反启动控制');
-          start('CtrlFan2ToFan1Reverse')
-            .then(() => {
-              frontMonitorIsShow.value = true;
-              backMonitorIsShow.value = false;
-            })
-            .catch(() => {
-              createMessage.error('操作失败,请联系管理员');
+      } else if (modalType.value == 'changeDirection') {
+        if (selectData['Fan1StartStatus'] == 1 && selectData['Fan2StartStatus'] == 0) {
+          // 主机一键反风
+          if (isSimulation) {
+            const fan1Forward = selectData['Fan1FreqForwardRun'] == 1 ? 0 : 1;
+            const fan1Reverse = fan1Forward == 0 ? 1 : 0;
+            // 模拟
+            start('CtrlFan1Reverse', { Fan1FreqForwardRun: fan1Forward, Fan1FreqReverseRun: fan1Reverse }, true).catch((err) => {
+              createMessage.error(err.message);
             });
-        }
-      }
-    } else if (modalType.value == 'changeSmoke1') {
-      // 矿上实际
-      if (selectData['Fan1StartStatus'] == 1 && selectData['Fan2StartStatus'] == 0) {
-        // 由主到备
-        // 正启动
-        if (selectData['Fan1FreqForwardRun'] && selectData['Fan1FreqForwardRun'] == 1) {
-          console.log('一键1倒2正启动控制  ');
-          start('CtrlFan1ToFan2')
-            .then(() => {
-              frontMonitorIsShow.value = false;
-              backMonitorIsShow.value = true;
-            })
-            .catch(() => {
-              createMessage.error('操作失败,请联系管理员');
+          } else {
+            // 实际
+            start('CtrlFan1Reverse').catch((err) => {
+              createMessage.error(err.message);
             });
-        }
-        // 反启动
-        if (selectData['Fan1FreqReverseRun'] && selectData['Fan1FreqReverseRun'] == 1) {
-          console.log('一键1倒2反启动控制');
-          start('CtrlFan1ToFan2')
-            .then(() => {
-              frontMonitorIsShow.value = false;
-              backMonitorIsShow.value = true;
-            })
-            .catch(() => {
-              createMessage.error('操作失败,请联系管理员');
+          }
+        } else if (selectData['Fan2StartStatus'] == 1 && selectData['Fan1StartStatus'] == 0) {
+          if (isSimulation) {
+            const fan2Forward = selectData['Fan2FreqForwardRun'] == 1 ? 0 : 1;
+            const fan2Reverse = fan2Forward == 0 ? 1 : 0;
+            // 模拟
+            start('CtrlFan2Reverse', { Fan2FreqForwardRun: fan2Forward, Fan2FreqReverseRun: fan2Reverse }, true).catch((err) => {
+              createMessage.error(err.message);
             });
-        }
-      } else if (selectData['Fan2StartStatus'] == 1 && selectData['Fan1StartStatus'] == 0) {
-        // 由备到主
-        // 正启动
-        if (selectData['Fan2FreqForwardRun'] && selectData['Fan2FreqForwardRun'] == 1) {
-          console.log('一键2倒1正启动控制');
-          start('CtrlFan2ToFan1')
-            .then(() => {
-              frontMonitorIsShow.value = true;
-              backMonitorIsShow.value = false;
-            })
-            .catch(() => {
-              createMessage.error('操作失败,请联系管理员');
+          } else {
+            // 实际
+            start('CtrlFan2Reverse').catch((err) => {
+              createMessage.error(err.message);
             });
+          }
         }
-        // 反启动
-        if (selectData['Fan2FreqReverseRun'] && selectData['Fan2FreqReverseRun'] == 1) {
-          console.log('一键2倒1反启动控制');
-          start('CtrlFan2ToFan1')
-            .then(() => {
-              frontMonitorIsShow.value = true;
-              backMonitorIsShow.value = false;
-            })
-            .catch(() => {
-              createMessage.error('操作失败,请联系管理员');
-            });
+      } else if (selectData['Fan2StartStatus'] == 0 && selectData['Fan1StartStatus'] == 0) {
+      } else if (modalType.value == 'changeSmoke') {
+        //182模拟
+        // 不听风倒机
+        if (selectData['Fan1StartStatus'] == 1 && selectData['Fan2StartStatus'] == 0) {
+          // 由主到备
+          // 正启动
+          if (selectData['Fan1FreqForwardRun'] && selectData['Fan1FreqForwardRun'] == 1) {
+            console.log('一键1倒2正启动控制  ');
+            start('CtrlFan1ToFan2Forward')
+              .then(() => {
+                frontMonitorIsShow.value = false;
+                backMonitorIsShow.value = true;
+              })
+              .catch((err) => {
+                createMessage.error(err.message);
+              });
+          }
+          // 反启动
+          if (selectData['Fan1FreqReverseRun'] && selectData['Fan1FreqReverseRun'] == 1) {
+            console.log('一键1倒2反启动控制');
+            start('CtrlFan1ToFan2Reverse')
+              .then(() => {
+                frontMonitorIsShow.value = false;
+                backMonitorIsShow.value = true;
+              })
+              .catch((err) => {
+                createMessage.error(err.message);
+              });
+          }
+        } else if (selectData['Fan2StartStatus'] == 1 && selectData['Fan1StartStatus'] == 0) {
+          // 由备到主
+          // 正启动
+          if (selectData['Fan2FreqForwardRun'] && selectData['Fan2FreqForwardRun'] == 1) {
+            console.log('一键2倒1正启动控制');
+            start('CtrlFan2ToFan1Forward')
+              .then(() => {
+                frontMonitorIsShow.value = true;
+                backMonitorIsShow.value = false;
+              })
+              .catch((err) => {
+                createMessage.error(err.message);
+              });
+          }
+          // 反启动
+          if (selectData['Fan2FreqReverseRun'] && selectData['Fan2FreqReverseRun'] == 1) {
+            console.log('一键2倒1反启动控制');
+            start('CtrlFan2ToFan1Reverse')
+              .then(() => {
+                frontMonitorIsShow.value = true;
+                backMonitorIsShow.value = false;
+              })
+              .catch((err) => {
+                createMessage.error(err.message);
+              });
+          }
+        }
+      } else if (modalType.value == 'changeSmoke1') {
+        // 矿上实际
+        if (selectData['Fan1StartStatus'] == 1 && selectData['Fan2StartStatus'] == 0) {
+          // 由主到备
+          // 正启动
+          if (selectData['Fan1FreqForwardRun'] && selectData['Fan1FreqForwardRun'] == 1) {
+            console.log('一键1倒2正启动控制  ');
+            start('CtrlFan1ToFan2')
+              .then(() => {
+                frontMonitorIsShow.value = false;
+                backMonitorIsShow.value = true;
+              })
+              .catch((err) => {
+                createMessage.error(err.message);
+              });
+          }
+          // 反启动
+          if (selectData['Fan1FreqReverseRun'] && selectData['Fan1FreqReverseRun'] == 1) {
+            console.log('一键1倒2反启动控制');
+            start('CtrlFan1ToFan2')
+              .then(() => {
+                frontMonitorIsShow.value = false;
+                backMonitorIsShow.value = true;
+              })
+              .catch((err) => {
+                createMessage.error(err.message);
+              });
+          }
+        } else if (selectData['Fan2StartStatus'] == 1 && selectData['Fan1StartStatus'] == 0) {
+          // 由备到主
+          // 正启动
+          if (selectData['Fan2FreqForwardRun'] && selectData['Fan2FreqForwardRun'] == 1) {
+            console.log('一键2倒1正启动控制');
+            start('CtrlFan2ToFan1')
+              .then(() => {
+                frontMonitorIsShow.value = true;
+                backMonitorIsShow.value = false;
+              })
+              .catch((err) => {
+                createMessage.error(err.message);
+              });
+          }
+          // 反启动
+          if (selectData['Fan2FreqReverseRun'] && selectData['Fan2FreqReverseRun'] == 1) {
+            console.log('一键2倒1反启动控制');
+            start('CtrlFan2ToFan1')
+              .then(() => {
+                frontMonitorIsShow.value = true;
+                backMonitorIsShow.value = false;
+              })
+              .catch((err) => {
+                createMessage.error(err.message);
+              });
+          }
+        }
+      } else if (modalType.value == 'frequency') {
+        if (selectData['Fan1StartStatus'] == 1 && selectData['Fan2StartStatus'] == 0) {
+          start('CtrlFan1FreqSet', frequencyVal.value).catch((err) => {
+            createMessage.error(err.message);
+          });
+        } else if (selectData['Fan2StartStatus'] == 1 && selectData['Fan1StartStatus'] == 0) {
+          start('CtrlFan2FreqSet', frequencyVal.value).catch((err) => {
+            createMessage.error(err.message);
+          });
+        }
+      } else if (modalType.value == 'fbm') {
+        // 门扇处于打开状态时,反风锁紧装置无法操作
+        if (selectData['ExplosionVentOpen'] == 1 && (flag === 'openLock' || flag === 'closeLock')) {
+          createMessage.warning('门扇处于打开状态时,反风锁紧装置无法操作');
+          return;
+        }
+        // 当反风装置关锁时,无法控制门体打开或关闭
+        if ((selectData['Lock1Close'] == 1 || selectData['Lock2Close'] == 1) && (flag === 'openGate' || flag === 'closeGate')) {
+          createMessage.warning('当反风装置关锁时,无法控制门体打开或关闭');
+          return;
+        }
+        // 开锁 // 关锁
+        if (flag === 'openLock') {
+          start('CtrlLockOpen').then(() => {
+            createMessage.success('开锁成功');
+          });
+        } else if (flag === 'closeLock') {
+          start('CtrlLockClose').then(() => {
+            createMessage.success('关锁成功');
+          });
         }
-      }
-    } else if (modalType.value == 'frequency') {
-      if (selectData['Fan1StartStatus'] == 1 && selectData['Fan2StartStatus'] == 0) {
-        start('CtrlFan1FreqSet', frequencyVal.value).catch(() => {
-          createMessage.error('操作失败,请联系管理员');
-        });
-      } else if (selectData['Fan2StartStatus'] == 1 && selectData['Fan1StartStatus'] == 0) {
-        start('CtrlFan2FreqSet', frequencyVal.value).catch(() => {
-          createMessage.error('操作失败,请联系管理员');
-        });
-      }
-    } else if (modalType.value == 'fbm') {
-      // 门扇处于打开状态时,反风锁紧装置无法操作
-      if (selectData['ExplosionVentOpen'] == 1 && (flag === 'openLock' || flag === 'closeLock')) {
-        createMessage.warning('门扇处于打开状态时,反风锁紧装置无法操作');
-        return;
-      }
-      // 当反风装置关锁时,无法控制门体打开或关闭
-      if ((selectData['Lock1Close'] == 1 || selectData['Lock2Close'] == 1) && (flag === 'openGate' || flag === 'closeGate')) {
-        createMessage.warning('当反风装置关锁时,无法控制门体打开或关闭');
-        return;
-      }
-      // 开锁 // 关锁
-      if (flag === 'openLock') {
-        start('CtrlLockOpen').then(() => {
-          createMessage.success('开锁成功');
-        });
-      } else if (flag === 'closeLock') {
-        start('CtrlLockClose').then(() => {
-          createMessage.success('关锁成功');
-        });
-      }
 
-      // 开门  关门
-      if (flag === 'openGate') {
-        start('CtrlExplosionVentOpen').then(() => {
-          createMessage.success('开门成功');
-        });
-      } else if (flag === 'closeGate') {
-        start('CtrlExplosionVentClose').then(() => {
-          createMessage.success('关门成功');
-        });
-      }
-    } else if (modalType.value === 'startFan') {
-      let paramcode = '';
-      if (flag === 'Fan1Open') {
-        paramcode = 'CtrlFan1Start';
-      } else if (flag === 'Fan2Open') {
-        paramcode = 'CtrlFan2Start';
-      } else if (flag === 'Fan1Stop') {
-        paramcode = 'CtrlFan1Stop';
-      } else if (flag === 'Fan2Stop') {
-        paramcode = 'CtrlFan2Stop';
-      } else if (flag === 'Fan1Reset') {
-        paramcode = 'CtrlFan1Reset';
-      } else if (flag === 'Fan2Reset') {
-        paramcode = 'CtrlFan2Reset';
-      }
+        // 开门  关门
+        if (flag === 'openGate') {
+          start('CtrlExplosionVentOpen').then(() => {
+            createMessage.success('开门成功');
+          });
+        } else if (flag === 'closeGate') {
+          start('CtrlExplosionVentClose').then(() => {
+            createMessage.success('关门成功');
+          });
+        }
+      } else if (modalType.value === 'startFan') {
+        let paramcode = '';
+        if (flag === 'Fan1Open') {
+          paramcode = 'CtrlFan1Start';
+        } else if (flag === 'Fan2Open') {
+          paramcode = 'CtrlFan2Start';
+        } else if (flag === 'Fan1Stop') {
+          paramcode = 'CtrlFan1Stop';
+        } else if (flag === 'Fan2Stop') {
+          paramcode = 'CtrlFan2Stop';
+        } else if (flag === 'Fan1Reset') {
+          paramcode = 'CtrlFan1Reset';
+        } else if (flag === 'Fan2Reset') {
+          paramcode = 'CtrlFan2Reset';
+        }
 
-      start(paramcode)
-        .then(() => {
-          if (globalConfig.History_Type == 'remote') {
-            createMessage.success('指令已下发至生产管控平台成功!');
-          } else {
-            createMessage.success('指令已下发成功!');
-          }
-          frontMonitorIsShow.value = false;
-          backMonitorIsShow.value = true;
-        })
-        .catch(() => {
-          createMessage.error('操作失败,请联系管理员');
+        start(paramcode)
+          .then(() => {
+            if (globalConfig.History_Type == 'remote') {
+              createMessage.success('指令已下发至生产管控平台成功!');
+            } else {
+              createMessage.success('指令已下发成功!');
+            }
+            frontMonitorIsShow.value = false;
+            backMonitorIsShow.value = true;
+          })
+          .catch((err) => {
+            createMessage.error(err.message);
+          });
+      } else if (modalType.value == 'resetFan') {
+        // 一键复位
+        start('CtrlFanReset').catch((err) => {
+          createMessage.error(err.message);
         });
-    } else if (modalType.value == 'resetFan') {
-      // 一键复位
-      start('CtrlFanReset').catch(() => {
-        createMessage.error('操作失败,请联系管理员');
-      });
+      }
     }
+
+    
   };
 
   // 取消

+ 9 - 8
src/views/vent/monitorManager/safetyMonitor/index.vue

@@ -13,11 +13,12 @@
               :dataSource="dataSource"
               design-scope="device_monitor"
               :isShowPagination="false"
-              :isShowActionColumn="isHaveAction.includes(deviceType.split('_')[0]) ? false : true"
+              :isShowActionColumn="isHaveNoAction.includes(deviceType.split('_')[0]) ? false : true"
               :is-show-select="false"
               title="设备监测"
               :scroll="{ y: 650 }"
-          /></template>
+            />
+          </template>
           <template v-else>
             <MonitorTable
               ref="monitorTable"
@@ -25,7 +26,7 @@
               :dataSource="dataSource"
               design-scope="device_monitor"
               :isShowPagination="false"
-              :isShowActionColumn="isHaveAction.includes(deviceType.split('_')[0]) ? false : true"
+              :isShowActionColumn="isHaveNoAction.includes(deviceType.split('_')[0]) ? false : true"
               :is-show-select="false"
               title="设备监测"
               :form-config="deviceType == 'safetymonitor' && sysOrgCode != 'zjtzqctmk' ? formConfig : undefined"
@@ -95,15 +96,15 @@
                   record.netStatus == '0' ? '断开' : '连接'
                 }}</a-tag>
               </template>
-            </MonitorTable></template
-          >
+            </MonitorTable>
+          </template>
           <!-- <MonitorTable
             ref="monitorTable"
             :columnsType="`${deviceType}_monitor`"
             :dataSource="dataSource"
             design-scope="device_monitor"
             :isShowPagination="false"
-            :isShowActionColumn="isHaveAction.includes(deviceType.split('_')[0]) ? false : true"
+            :isShowActionColumn="isHaveNoAction.includes(deviceType.split('_')[0]) ? false : true"
             :is-show-select="false"
             title="设备监测"
             :form-config="deviceType == 'safetymonitor' && sysOrgCode != 'zjtzqctmk' ? formConfig : undefined"
@@ -170,7 +171,7 @@
           />
         </div>
       </a-tab-pane>
-      <a-tab-pane key="4" tab="操作历史" v-if="deviceType !== 'safetymonitor'">
+      <a-tab-pane key="4" tab="操作历史" v-if="deviceType !== 'safetymonitor' && deviceType !== 'wasichoufang'">
         <div class="tab-item">
           <HandlerHistoryTable
             ref="handlerHistoryTable"
@@ -197,7 +198,7 @@
   import GroupMonitorTable from '../comment/GroupMonitorTable.vue';
   import { Progress } from 'ant-design-vue';
   import { useRouter } from 'vue-router';
-  import { formConfig, isHaveAction } from './safety.data';
+  import { formConfig, isHaveNoAction } from './safety.data';
   import { getDictItemsByCode } from '/@/utils/dict';
   import { usePermission } from '/@/hooks/web/usePermission';
   import { useGlobSetting } from '/@/hooks/setting';

+ 1 - 1
src/views/vent/monitorManager/safetyMonitor/safety.data.ts

@@ -223,4 +223,4 @@ export const chartsColumnsreal = [
     dataIndex: 'sourcePressure',
   },
 ];
-export const isHaveAction = ['safetymonitor'];
+export const isHaveNoAction = ['safetymonitor', 'wasichoufang'];