From 75f043dfa6660716364e66ee0b3cf99f44255686 Mon Sep 17 00:00:00 2001
From: DYL0109 <dn18191638832@163.com>
Date: 星期三, 16 四月 2025 19:20:36 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/develop1.0' into dyl_dev

---
 zhitan-vue/src/views/alarmmanage/measuremen/measuremen.vue |  417 +++++++++++++++++++++++++++++++----------------------------
 1 files changed, 219 insertions(+), 198 deletions(-)

diff --git a/zhitan-vue/src/views/alarmmanage/measuremen/measuremen.vue b/zhitan-vue/src/views/alarmmanage/measuremen/measuremen.vue
index b46e7a2..cbd3852 100644
--- a/zhitan-vue/src/views/alarmmanage/measuremen/measuremen.vue
+++ b/zhitan-vue/src/views/alarmmanage/measuremen/measuremen.vue
@@ -8,16 +8,28 @@
         <div class="form-card">
           <el-form :model="form" ref="queryRef" :inline="true" label-width="85px">
             <el-form-item label="鏈熼棿" prop="timeType">
-              <el-select v-model="queryParams.timeType" placeholder="鏈熼棿" clearable style="width: 120px"
-                @change="handleTimeType">
+              <el-select
+                v-model="queryParams.timeType"
+                placeholder="鏈熼棿"
+                clearable
+                style="width: 120px"
+                @change="handleTimeType"
+              >
                 <el-option v-for="dict in period" :key="dict.value" :label="dict.label" :value="dict.value" />
               </el-select>
             </el-form-item>
             <el-form-item label="鏃堕棿">
-              <el-date-picker v-model="queryParams.dataTime" :clearable="false"
+              <el-date-picker
+                v-model="queryParams.dataTime"
+                :clearable="false"
                 :type="queryParams.timeType == 'YEAR' ? 'year' : queryParams.timeType == 'MONTH' ? 'month' : 'date'"
-                :format="queryParams.timeType == 'YEAR' ? 'YYYY' : queryParams.timeType == 'MONTH' ? 'YYYY-MM' : 'YYYY-MM-DD'"
-                value-format="YYYY-MM-DD" placeholder="鏃堕棿" style="width: 100%" />
+                :format="
+                  queryParams.timeType == 'YEAR' ? 'YYYY' : queryParams.timeType == 'MONTH' ? 'YYYY-MM' : 'YYYY-MM-DD'
+                "
+                value-format="YYYY-MM-DD"
+                placeholder="鏃堕棿"
+                style="width: 100%"
+              />
             </el-form-item>
             <el-form-item>
               <el-button type="primary" icon="Search" @click="handleQuery">鎼滅储</el-button>
@@ -27,8 +39,10 @@
         </div>
 
         <div class="mt20 mb20 text-center data-item">
-          鏈敤鑳藉崟鍏冩寚鏍�<span>{{ dataArray.indexCount }}</span>涓紝
-          鏈勾搴︽姤璀�<span>{{ dataArray.yearCount }}</span>娆★紝鏈湀<span>{{ dataArray.monthCount }}</span>娆�
+          鏈敤鑳藉崟鍏冩寚鏍�<span>{{ dataArray.indexCount }}</span
+          >涓紝 鏈勾搴︽姤璀�<span>{{ dataArray.yearCount }}</span
+          >娆★紝鏈湀<span>{{ dataArray.monthCount }}</span
+          >娆�
         </div>
         <el-row :gutter="24" class="mb20">
           <el-col :span="12">
@@ -60,71 +74,70 @@
 </template>
 
 <script setup>
-import * as echarts from 'echarts';
-import { onMounted, reactive, ref } from 'vue';
-import { listEnergyTypeList } from "@/api/modelConfiguration/energyType";
-const { proxy } = getCurrentInstance();
-const { period } = proxy.useDict("period");
-let { alarm_record_category } = proxy.useDict("alarm_record_category");
+import * as echarts from "echarts"
+import { onMounted, reactive, ref } from "vue"
+import { listEnergyTypeList } from "@/api/modelConfiguration/energyType"
+const { proxy } = getCurrentInstance()
+const { period } = proxy.useDict("period")
+let { alarm_record_category } = proxy.useDict("alarm_record_category")
 let energyTypeList = ref([])
 function getEnergyTypeList() {
   listEnergyTypeList().then((res) => {
-    energyTypeList.value = res.data;
-    queryParams.value.energyType = energyTypeList.value[0].enersno;
-  });
+    energyTypeList.value = res.data
+    queryParams.value.energyType = energyTypeList.value[0].enersno
+  })
 }
 getEnergyTypeList()
 function formatterLabel(list, value) {
-  let dict = list.find(item => item.enersno == value)
-  return dict ? dict.enername : ''
+  let dict = list.find((item) => item.enersno == value)
+  return dict ? dict.enername : ""
 }
-
 
 let queryParams = ref({
   timeType: null,
   dataTime: null,
-  nodeId: null
+  nodeId: null,
 })
 
-import { getByNodeId, getCountInfo } from "@/api/alarmManage/alarmManage";
-import { el } from 'element-plus/es/locales.mjs';
-let form = ref({});
+import { getByNodeId, getCountInfo } from "@/api/alarmManage/alarmManage"
+import { el } from "element-plus/es/locales.mjs"
+let form = ref({})
 let currentNode = ref()
 
 function handleTimeType(e) {
-  queryParams.value.timeType = e;
-  queryParams.value.dataTime = proxy.dayjs(new Date()).format("YYYY-MM-DD");
+  queryParams.value.timeType = e
+  queryParams.value.dataTime = proxy.dayjs(new Date()).format("YYYY-MM-DD")
 }
 function handleNodeClick(e) {
   currentNode.value = e
   queryParams.value.nodeId = e.id
-  handleTimeType(period.value[0].value);
+  handleTimeType(period.value[0].value)
 
   getByNodeIdFun()
 }
 
 function getByNodeIdFun() {
-  getByNodeId(queryParams.value).then(res => {
+  getByNodeId(queryParams.value).then((res) => {
     let alarmList = []
     let energyList = []
     let alarmNumberList = {
       data: [],
-      xAxisData: []
+      xAxisData: [],
     }
     if (res.code == 200) {
       let { data } = res
-      alarmList = data.alarmProportion.map(item => {
+      alarmList = data.alarmProportion.map((item) => {
         return {
           name: proxy.selectDictLabel(alarm_record_category.value, item.energyName),
           value: item.count,
-          percentage: item.percentage
+          percentage: item.percentage,
         }
       })
-      energyList = data.energyProportion.map(item => {
+      energyList = data.energyProportion.map((item) => {
         return {
           name: formatterLabel(energyTypeList.value, item.energyName),
           value: item.count,
-          percentage: item.percentage
+          percentage: item.percentage,
         }
       })
       for (const item of data.chartDataList) {
@@ -132,9 +145,9 @@
         alarmNumberList.data.push(item.yvalue)
       }
 
-      pieChart('Chart1', alarmList, '鎶ヨ绫诲瀷鍗犳瘮')
-      pieChart('Chart2', energyList, '鑳芥簮绫诲瀷鍗犳瘮')
-      getChart('Chart3', alarmNumberList)
+      pieChart("Chart1", alarmList, "鎶ヨ绫诲瀷鍗犳瘮")
+      pieChart("Chart2", energyList, "鑳芥簮绫诲瀷鍗犳瘮")
+      getChart("Chart3", alarmNumberList)
     }
   })
 }
@@ -144,16 +157,16 @@
   getByNodeIdFun()
 }
 function resetQuery() {
-  handleTimeType('YEAR')
+  handleTimeType("YEAR")
   getByNodeIdFun()
 }
 let dataArray = ref({
   indexCount: 0,
   yearCount: 0,
-  monthCount: 0
+  monthCount: 0,
 })
 function getCountInfoFun() {
-  getCountInfo(queryParams.value).then(res => {
+  getCountInfo(queryParams.value).then((res) => {
     if (res.code == 200) {
       dataArray.value = res.data
     }
@@ -163,45 +176,56 @@
 getCountInfoFun()
 function pieChart(Id, data, name) {
   console.log(data)
-  let total = 0;
+  let total = 0
   data.forEach(function (val, idx, arr) {
-    total += val.value;
+    total += val.value
   })
-  const myChart = echarts.init(document.getElementById(Id));
+  const myChart = echarts.init(document.getElementById(Id))
   myChart.setOption({
-    color: ['#4D94FF', '#00C27C', '#F0142F', '#F2D261', '#0E7CE2', '#FF8352', '#E271DE', '#F8456B', '#00FFFF', '#4AEAB0'],
+    color: [
+      "#4D94FF",
+      "#00C27C",
+      "#F0142F",
+      "#F2D261",
+      "#0E7CE2",
+      "#FF8352",
+      "#E271DE",
+      "#F8456B",
+      "#00FFFF",
+      "#4AEAB0",
+    ],
     grid: {
-      top: '20%',
-      left: '1%',
-      right: '1%',
-      bottom: '0%',
-      containLabel: true
+      top: "20%",
+      left: "1%",
+      right: "1%",
+      bottom: "0%",
+      containLabel: true,
     },
     tooltip: {
-      trigger: 'item'
+      trigger: "item",
     },
     legend: {
-      orient: 'vertical',
-      top: 'center',
-      icon: 'circle',
+      orient: "vertical",
+      top: "center",
+      icon: "circle",
       itemWidth: 14,
       itemHeight: 14,
-      right: '2%',
+      right: "2%",
       itemGap: 10,
       textStyle: {
-        align: 'left',
-        verticalAlign: 'middle',
+        align: "left",
+        verticalAlign: "middle",
         rich: {
           name: {
-            color: '#999',
+            color: "#999",
             fontSize: 14,
           },
           value: {
-            color: '#999',
+            color: "#999",
             fontSize: 14,
           },
           rate: {
-            color: '#999',
+            color: "#999",
             fontSize: 14,
           },
         },
@@ -209,167 +233,165 @@
       formatter: (name) => {
         for (let i = 0; i < data.length; i++) {
           if (data[i].name === name) {
-            return `{name|${data[i].name}  }{value| ${data[i].value}} {rate| ${data[i].percentage}%}`;
+            return `{name|${data[i].name}  }{value| ${data[i].value}} {rate| ${data[i].percentage}%}`
           }
         }
       },
     },
-    series: [{
-      name,
-      type: 'pie',
-      radius: ['45%', '70%'],
-      center: ['35%', '50%'],
-      avoidLabelOverlap: false,
-      label: {
-        show: false,
-        overflow: 'none',
-        formatter: '{b} {d}%  \n {c} tce',
+    series: [
+      {
+        name,
+        type: "pie",
+        radius: ["45%", "70%"],
+        center: ["35%", "50%"],
+        avoidLabelOverlap: false,
+        label: {
+          show: false,
+          overflow: "none",
+          formatter: "{b} {d}%  \n {c} tce",
+        },
+        data,
       },
-      data,
-    }]
+    ],
   })
 }
 function getChart(Id, dataList) {
-  const myChart3 = echarts.init(document.getElementById(Id));
-  myChart3.setOption(
-    {
-
-      grid: {
-        left: '3%',
-        right: '2%',
-        bottom: '2%',
-        containLabel: true
+  const myChart3 = echarts.init(document.getElementById(Id))
+  myChart3.setOption({
+    grid: {
+      left: "3%",
+      right: "2%",
+      bottom: "2%",
+      containLabel: true,
+    },
+    tooltip: {
+      trigger: "axis",
+    },
+    xAxis: {
+      type: "category",
+      // boundaryGap: false,
+      data: dataList.xAxisData,
+      axisPointer: {
+        type: "shadow",
       },
-      tooltip: {
-        trigger: 'axis',
-
+      axisTick: {
+        show: false,
+        alignWithLabel: true,
+        length: 5,
       },
-      xAxis: {
-        type: 'category',
-        // boundaryGap: false,
-        data: dataList.xAxisData,
-        axisPointer: {
-          type: 'shadow'
+      // 鍧愭爣杞村埢搴︾嚎鏍峰紡
+      axisTick: {
+        show: false,
+        length: 5,
+        lineStyle: {
+          color: "#ddd",
         },
-        axisTick: {
-          show: false,
-          alignWithLabel: true,
-          length: 5
-        },
-        // 鍧愭爣杞村埢搴︾嚎鏍峰紡
-        axisTick: {
-          show: false,
-          length: 5,
-          lineStyle: {
-            color: '#ddd'
-          }
-        },
-
-        // 鍒嗗壊绾�
-        splitLine: {
-          show: false,
-          lineStyle: {
-            type: 'dashed',
-            color: 'rgba(220,222,226,0.4)'
-          }
-        },
-        axisLabel: {
-          color: '#999',
-          fontSize: 14,
-          padding: [5, 0, 0, 0],
-          //   formatter: '{value} ml'
-        }
       },
-      yAxis: {
-        type: 'value',
-        name: '锛堟锛�',
-        // 璁剧疆鍚嶇О鏍峰紡
-        nameTextStyle: {
-          color: ' #CEE3FF',
-          fontSize: 14,
-          padding: [0, 0, 5, 0],
-        },
-        // 鍧愭爣杞村埢搴�
-        axisTick: {
-          show: false,
-          alignWithLabel: true,
-          length: 5
-        },
-        // 鍧愭爣杞村埢搴︾嚎鏍峰紡
-        axisTick: {
-          show: false,
-          length: 5,
-          lineStyle: {
-            color: ''
-          }
-        },
 
-        // 鍒嗗壊绾�
-        splitLine: {
-          show: true,
-          lineStyle: {
-            type: 'dashed',
-            color: 'rgba(220,222,226,0.4)'
-          }
+      // 鍒嗗壊绾�
+      splitLine: {
+        show: false,
+        lineStyle: {
+          type: "dashed",
+          color: "rgba(220,222,226,0.4)",
         },
-
-        // 鍧愭爣杞村埢搴﹂棿闅�
-        // interval: '50',
-        // // 鍧愭爣杞存渶灏忓��
-        // min: 'dataMin',
-        // // 鍧愭爣杞存渶澶у��
-        // max: 'dataMax',
-        // // 鍧愭爣杞村皬鏁扮偣绮惧害
-        // precision: 0,
-        // // 鍧愭爣杞村埢搴︽枃鏈殑甯冨眬鏈濆悜
-        // position: 'left'
-        axisLabel: {
-          color: '#B2B8C2',
-          fontSize: 14,
-          //   formatter: '{value} ml'
-        }
       },
-      series: [
-        {
-          name: "鎶ヨ娆℃暟",
-          type: "bar",
-          barWidth: '17',
-          stack: 'number',
-          data: dataList.data,
-          tooltip: {
-            show: false,
-          }
+      axisLabel: {
+        color: "#999",
+        fontSize: 14,
+        padding: [5, 0, 0, 0],
+        //   formatter: '{value} ml'
+      },
+    },
+    yAxis: {
+      type: "value",
+      name: "锛堟锛�",
+      // 璁剧疆鍚嶇О鏍峰紡
+      nameTextStyle: {
+        color: " #CEE3FF",
+        fontSize: 14,
+        padding: [0, 0, 5, 0],
+      },
+      // 鍧愭爣杞村埢搴�
+      axisTick: {
+        show: false,
+        alignWithLabel: true,
+        length: 5,
+      },
+      // 鍧愭爣杞村埢搴︾嚎鏍峰紡
+      axisTick: {
+        show: false,
+        length: 5,
+        lineStyle: {
+          color: "",
         },
-        {
-          name: '鎶ヨ娆℃暟',
-          type: 'line',
-          symbol: 'none', // 璁剧疆涓� 'none' 鍘绘帀鍦嗙偣
-          lineStyle: {
-            color: '#EE0303'
-          },
-          data: dataList.data,
-        },
-      ]
-    })
+      },
 
-  window.addEventListener("resize", () => {
-    myChart1.resize();
-    myChart2.resize();
-    myChart3.resize();
-  }, { passive: true });
+      // 鍒嗗壊绾�
+      splitLine: {
+        show: true,
+        lineStyle: {
+          type: "dashed",
+          color: "rgba(220,222,226,0.4)",
+        },
+      },
+
+      // 鍧愭爣杞村埢搴﹂棿闅�
+      // interval: '50',
+      // // 鍧愭爣杞存渶灏忓��
+      // min: 'dataMin',
+      // // 鍧愭爣杞存渶澶у��
+      // max: 'dataMax',
+      // // 鍧愭爣杞村皬鏁扮偣绮惧害
+      // precision: 0,
+      // // 鍧愭爣杞村埢搴︽枃鏈殑甯冨眬鏈濆悜
+      // position: 'left'
+      axisLabel: {
+        color: "#B2B8C2",
+        fontSize: 14,
+        //   formatter: '{value} ml'
+      },
+    },
+    series: [
+      {
+        name: "鎶ヨ娆℃暟",
+        type: "bar",
+        barWidth: "12",
+        stack: "number",
+        data: dataList.data,
+        tooltip: {
+          show: false,
+        },
+      },
+      {
+        name: "鎶ヨ娆℃暟",
+        type: "line",
+        symbol: "none", // 璁剧疆涓� 'none' 鍘绘帀鍦嗙偣
+        lineStyle: {
+          color: "#EE0303",
+        },
+        data: dataList.data,
+      },
+    ],
+  })
+
+  window.addEventListener(
+    "resize",
+    () => {
+      myChart1.resize()
+      myChart2.resize()
+      myChart3.resize()
+    },
+    { passive: true }
+  )
 }
-
-
-
-
 </script>
 
 <style scoped lang="scss">
 @import "@/assets/styles/page.scss";
 
-
 .chart-box {
-  height: calc((100vh - 410px)/2) !important;
+  height: calc((100vh - 410px) / 2) !important;
 }
 
 .data-item {
@@ -378,7 +400,7 @@
   font-weight: bold;
 
   span {
-    color: #397AEE;
+    color: #397aee;
     margin: 0 5px;
   }
 }
@@ -390,10 +412,9 @@
     font-weight: bold;
 
     span {
-      color: #397AEE;
+      color: #397aee;
       margin: 0 5px;
     }
   }
-
 }
-</style>
\ No newline at end of file
+</style>

--
Gitblit v1.9.3