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/peakvalley/period/period.vue |  317 ++++++++++++++++++++--------------------------------
 1 files changed, 124 insertions(+), 193 deletions(-)

diff --git a/zhitan-vue/src/views/peakvalley/period/period.vue b/zhitan-vue/src/views/peakvalley/period/period.vue
index c550828..a9551c6 100644
--- a/zhitan-vue/src/views/peakvalley/period/period.vue
+++ b/zhitan-vue/src/views/peakvalley/period/period.vue
@@ -6,11 +6,7 @@
       </div>
       <div class="page-container-right">
         <div class="form-card">
-          <el-form
-            :model="queryParams"
-            ref="queryRef"
-            :inline="true"
-          >
+          <el-form :model="queryParams" ref="queryRef" :inline="true">
             <el-form-item label="鏃堕棿" prop="queryTime">
               <el-date-picker
                 v-model="queryParams.queryTime"
@@ -22,39 +18,22 @@
               />
             </el-form-item>
             <el-form-item>
-              <el-button type="primary" icon="Search" @click="handleQuery">
-                鎼滅储
-              </el-button>
+              <el-button type="primary" icon="Search" @click="handleQuery"> 鎼滅储 </el-button>
               <el-button icon="Refresh" @click="resetQuery">閲嶇疆</el-button>
             </el-form-item>
           </el-form>
         </div>
         <div
-          style="
-            height: calc(100vh - 205px) !important;
-            max-height: calc(100vh - 205px) !important;
-            overflow-y: auto;
-          "
+          style="height: calc(100vh - 205px) !important; max-height: calc(100vh - 205px) !important; overflow-y: auto"
           v-loading="loading"
         >
           <div class="card-list">
-            <div
-              class="card-list-item"
-              v-for="item in periodList"
-              :key="item.title"
-            >
+            <div class="card-list-item" v-for="item in periodList" :key="item.title">
               <div class="item-top">
-                <div
-                  class="icon"
-                  :style="{ backgroundImage: 'url(' + item.icon + ')' }"
-                ></div>
+                <div class="icon" :style="{ backgroundImage: 'url(' + item.icon + ')' }"></div>
                 <div class="name">{{ item.title }}</div>
               </div>
-              <div
-                class="item-bottom"
-                v-for="(node, nodeIndex) in item.data"
-                :key="nodeIndex"
-              >
+              <div class="item-bottom" v-for="(node, nodeIndex) in item.data" :key="nodeIndex">
                 <div class="bottom-left">{{ node.label }}</div>
                 <div class="bottom-right" :style="{ color: item.color }">
                   {{ node.value }}
@@ -62,12 +41,12 @@
               </div>
             </div>
           </div>
-          <BaseCard :title="queryParams.nodeName+'-灏栧嘲骞宠胺鐢甸噺鍥�'">
+          <BaseCard :title="queryParams.nodeName + '-灏栧嘲骞宠胺鐢甸噺鍥�'">
             <div class="chart-box">
               <div id="Chart1" />
             </div>
           </BaseCard>
-          <BaseCard :title="queryParams.nodeName+'-灏栧嘲骞宠胺鐢佃垂鍥�'">
+          <BaseCard :title="queryParams.nodeName + '-灏栧嘲骞宠胺鐢佃垂鍥�'">
             <div class="chart-box">
               <div id="Chart2" />
             </div>
@@ -78,24 +57,24 @@
   </div>
 </template>
 <script setup name="period">
-import { listPeriod } from "@/api/peakValley/period";
-import * as echarts from "echarts";
-const { proxy } = getCurrentInstance();
-import { useRoute } from "vue-router";
-import useSettingsStore from "@/store/modules/settings";
-const settingsStore = useSettingsStore();
+import { listPeriod } from "@/api/peakValley/period"
+import * as echarts from "echarts"
+const { proxy } = getCurrentInstance()
+import { useRoute } from "vue-router"
+import useSettingsStore from "@/store/modules/settings"
+const settingsStore = useSettingsStore()
 watch(
   () => settingsStore.sideTheme,
   (val) => {
-    getList();
+    getList()
   }
-);
-const loading = ref(false);
-import icon1 from "@/assets/images/period/icon1.png";
-import icon2 from "@/assets/images/period/icon2.png";
-import icon3 from "@/assets/images/period/icon3.png";
-import icon4 from "@/assets/images/period/icon4.png";
-import icon5 from "@/assets/images/period/icon5.png";
+)
+const loading = ref(false)
+import icon1 from "@/assets/images/period/icon1.png"
+import icon2 from "@/assets/images/period/icon2.png"
+import icon3 from "@/assets/images/period/icon3.png"
+import icon4 from "@/assets/images/period/icon4.png"
+import icon5 from "@/assets/images/period/icon5.png"
 const periodList = ref([
   {
     icon: icon1,
@@ -204,7 +183,7 @@
       },
     ],
   },
-]);
+])
 const data = reactive({
   queryParams: {
     nodeId: null,
@@ -213,121 +192,90 @@
     queryTime: null,
   },
   query: { ...useRoute().query },
-});
-const { queryParams, query } = toRefs(data);
+})
+const { queryParams, query } = toRefs(data)
 /** 鑺傜偣鍗曞嚮浜嬩欢 */
 function handleNodeClick(data) {
-  queryParams.value.nodeId = data.id;
-  queryParams.value.nodeName = data.label;
-  queryParams.value.queryTime = proxy.dayjs(new Date()).format("YYYY-MM");
-  handleQuery();
+  queryParams.value.nodeId = data.id
+  queryParams.value.nodeName = data.label
+  queryParams.value.queryTime = proxy.dayjs(new Date()).format("YYYY-MM")
+  handleQuery()
 }
 // 宄板钩璋疯兘鑰楀垎鏋�-宄板钩璋锋椂娈电粺璁�-鍒楄〃
 function getList() {
-  loading.value = true;
+  loading.value = true
   listPeriod(
     proxy.addDateRange({
       ...queryParams.value,
       ...query.value,
     })
   ).then((res) => {
-    loading.value = false;
+    loading.value = false
     if (!!res.code && res.code == 200) {
       if (!!res.data.totalVO) {
-        periodList.value[0].data[0].value = !!res.data.totalVO
-          .totalPowerConsumption
+        periodList.value[0].data[0].value = !!res.data.totalVO.totalPowerConsumption
           ? res.data.totalVO.totalPowerConsumption
-          : 0;
-        periodList.value[0].data[1].value = !!res.data.totalVO.totalCost
-          ? res.data.totalVO.totalCost
-          : 0;
+          : 0
+        periodList.value[0].data[1].value = !!res.data.totalVO.totalCost ? res.data.totalVO.totalCost : 0
 
-        periodList.value[1].data[0].value = !!res.data.totalVO
-          .tipPowerConsumption
+        periodList.value[1].data[0].value = !!res.data.totalVO.tipPowerConsumption
           ? res.data.totalVO.tipPowerConsumption
-          : 0;
+          : 0
         periodList.value[1].data[1].value =
-          (!!res.data.totalVO.tipPowerProportion
-            ? res.data.totalVO.tipPowerProportion
-            : 0) + "%";
-        periodList.value[1].data[2].value = !!res.data.totalVO.tipPowerCost
-          ? res.data.totalVO.tipPowerCost
-          : 0;
+          (!!res.data.totalVO.tipPowerProportion ? res.data.totalVO.tipPowerProportion : 0) + "%"
+        periodList.value[1].data[2].value = !!res.data.totalVO.tipPowerCost ? res.data.totalVO.tipPowerCost : 0
         periodList.value[1].data[3].value =
-          (!!res.data.totalVO.tipPowerCostProportion
-            ? res.data.totalVO.tipPowerCostProportion
-            : 0) + "%";
+          (!!res.data.totalVO.tipPowerCostProportion ? res.data.totalVO.tipPowerCostProportion : 0) + "%"
 
-        periodList.value[2].data[0].value = !!res.data.totalVO
-          .peakPowerConsumption
+        periodList.value[2].data[0].value = !!res.data.totalVO.peakPowerConsumption
           ? res.data.totalVO.peakPowerConsumption
-          : 0;
+          : 0
         periodList.value[2].data[1].value =
-          (!!res.data.totalVO.peakPowerProportion
-            ? res.data.totalVO.peakPowerProportion
-            : 0) + "%";
-        periodList.value[2].data[2].value = !!res.data.totalVO.peakPowerCost
-          ? res.data.totalVO.peakPowerCost
-          : 0;
+          (!!res.data.totalVO.peakPowerProportion ? res.data.totalVO.peakPowerProportion : 0) + "%"
+        periodList.value[2].data[2].value = !!res.data.totalVO.peakPowerCost ? res.data.totalVO.peakPowerCost : 0
         periodList.value[2].data[3].value =
-          (!!res.data.totalVO.peakPowerCostProportion
-            ? res.data.totalVO.peakPowerCostProportion
-            : 0) + "%";
+          (!!res.data.totalVO.peakPowerCostProportion ? res.data.totalVO.peakPowerCostProportion : 0) + "%"
 
-        periodList.value[3].data[0].value = !!res.data.totalVO
-          .flatPowerConsumption
+        periodList.value[3].data[0].value = !!res.data.totalVO.flatPowerConsumption
           ? res.data.totalVO.flatPowerConsumption
-          : 0;
+          : 0
         periodList.value[3].data[1].value =
-          (!!res.data.totalVO.flatPowerProportion
-            ? res.data.totalVO.flatPowerProportion
-            : 0) + "%";
-        periodList.value[3].data[2].value = !!res.data.totalVO.flatPowerCost
-          ? res.data.totalVO.flatPowerCost
-          : 0;
+          (!!res.data.totalVO.flatPowerProportion ? res.data.totalVO.flatPowerProportion : 0) + "%"
+        periodList.value[3].data[2].value = !!res.data.totalVO.flatPowerCost ? res.data.totalVO.flatPowerCost : 0
         periodList.value[3].data[3].value =
-          (!!res.data.totalVO.flatPowerCostProportion
-            ? res.data.totalVO.flatPowerCostProportion
-            : 0) + "%";
+          (!!res.data.totalVO.flatPowerCostProportion ? res.data.totalVO.flatPowerCostProportion : 0) + "%"
 
-        periodList.value[4].data[0].value = !!res.data.totalVO
-          .troughPowerConsumption
+        periodList.value[4].data[0].value = !!res.data.totalVO.troughPowerConsumption
           ? res.data.totalVO.troughPowerConsumption
-          : 0;
+          : 0
         periodList.value[4].data[1].value =
-          (!!res.data.totalVO.troughPowerProportion
-            ? res.data.totalVO.troughPowerProportion
-            : 0) + "%";
-        periodList.value[4].data[2].value = !!res.data.totalVO.troughPowerCost
-          ? res.data.totalVO.troughPowerCost
-          : 0;
+          (!!res.data.totalVO.troughPowerProportion ? res.data.totalVO.troughPowerProportion : 0) + "%"
+        periodList.value[4].data[2].value = !!res.data.totalVO.troughPowerCost ? res.data.totalVO.troughPowerCost : 0
         periodList.value[4].data[3].value =
-          (!!res.data.totalVO.troughPowerCostProportion
-            ? res.data.totalVO.troughPowerCostProportion
-            : 0) + "%";
+          (!!res.data.totalVO.troughPowerCostProportion ? res.data.totalVO.troughPowerCostProportion : 0) + "%"
       }
       // 鍦ㄥ垵濮嬪寲涔嬪墠锛屽厛dispose鏃х殑瀹炰緥
       if (echarts.getInstanceByDom(document.getElementById("Chart1"))) {
-        echarts.dispose(document.getElementById("Chart1"));
+        echarts.dispose(document.getElementById("Chart1"))
       }
       if (echarts.getInstanceByDom(document.getElementById("Chart2"))) {
-        echarts.dispose(document.getElementById("Chart2"));
+        echarts.dispose(document.getElementById("Chart2"))
       }
-      const myChart1 = echarts.init(document.getElementById("Chart1"));
-      const myChart2 = echarts.init(document.getElementById("Chart2"));
+      const myChart1 = echarts.init(document.getElementById("Chart1"))
+      const myChart2 = echarts.init(document.getElementById("Chart2"))
       if (!!res.data.powerConsumptionList) {
-        let xdata = [];
-        let ytip = [];
-        let ypeak = [];
-        let yflat = [];
-        let ytrough = [];
+        let xdata = []
+        let ytip = []
+        let ypeak = []
+        let yflat = []
+        let ytrough = []
         res.data.powerConsumptionList.map((item) => {
-          xdata.push(Number(item.xdata.slice(-2)) + "鏃�");
-          ytip.push(!!item.ytip ? item.ytip : 0);
-          ypeak.push(!!item.ypeak ? item.ypeak : 0);
-          yflat.push(!!item.yflat ? item.yflat : 0);
-          ytrough.push(!!item.ytrough ? item.ytrough : 0);
-        });
+          xdata.push(Number(item.xdata.slice(-2)) + "鏃�")
+          ytip.push(!!item.ytip ? item.ytip : 0)
+          ypeak.push(!!item.ypeak ? item.ypeak : 0)
+          yflat.push(!!item.yflat ? item.yflat : 0)
+          ytrough.push(!!item.ytrough ? item.ytrough : 0)
+        })
         myChart1.setOption({
           color: ["#f52528", "#ff6200", "#ffce0c", "#78e801"],
           tooltip: {
@@ -336,10 +284,7 @@
               type: "shadow",
               textStyle: {
                 fontSize: 14,
-                color:
-                  settingsStore.sideTheme == "theme-dark"
-                    ? "#FFFFFF"
-                    : "#222222",
+                color: settingsStore.sideTheme == "theme-dark" ? "#FFFFFF" : "#222222",
               },
             },
           },
@@ -356,8 +301,7 @@
             itemHeight: 10,
             // right: 0,
             textStyle: {
-              color:
-                settingsStore.sideTheme == "theme-dark" ? "#FFFFFF" : "#222222",
+              color: settingsStore.sideTheme == "theme-dark" ? "#FFFFFF" : "#222222",
             },
           },
           xAxis: {
@@ -365,10 +309,7 @@
             axisLine: {
               show: true,
               lineStyle: {
-                color:
-                  settingsStore.sideTheme == "theme-dark"
-                    ? "#FFFFFF"
-                    : "#222222",
+                color: settingsStore.sideTheme == "theme-dark" ? "#FFFFFF" : "#222222",
               },
             },
             axisTick: {
@@ -381,8 +322,7 @@
               show: false,
             },
             axisLabel: {
-              color:
-                settingsStore.sideTheme == "theme-dark" ? "#FFFFFF" : "#222222",
+              color: settingsStore.sideTheme == "theme-dark" ? "#FFFFFF" : "#222222",
               fontSize: 14,
               padding: [5, 0, 0, 0],
               //   formatter: '{value} ml'
@@ -393,8 +333,7 @@
             name: "鑰楃數閲�(KWH)",
             type: "value",
             nameTextStyle: {
-              color:
-                settingsStore.sideTheme == "theme-dark" ? "#FFFFFF" : "#222222",
+              color: settingsStore.sideTheme == "theme-dark" ? "#FFFFFF" : "#222222",
               fontSize: 14,
               padding: [0, 0, 5, 0],
             },
@@ -405,10 +344,7 @@
               show: true,
               lineStyle: {
                 type: "dashed",
-                color:
-                  settingsStore.sideTheme == "theme-dark"
-                    ? "#FFFFFF"
-                    : "#222222",
+                color: settingsStore.sideTheme == "theme-dark" ? "#FFFFFF" : "#222222",
               },
             },
             axisTick: {
@@ -418,8 +354,7 @@
               show: false,
             },
             axisLabel: {
-              color:
-                settingsStore.sideTheme == "theme-dark" ? "#FFFFFF" : "#222222",
+              color: settingsStore.sideTheme == "theme-dark" ? "#FFFFFF" : "#222222",
               fontSize: 14,
               //   formatter: '{value} ml'
             },
@@ -429,46 +364,46 @@
               name: "灏�",
               type: "bar",
               stack: "total",
-              barWidth: "27",
+              barWidth: "12",
               data: ytip,
             },
             {
               name: "宄�",
               type: "bar",
               stack: "total",
-              barWidth: "27",
+              barWidth: "12",
               data: ypeak,
             },
             {
               name: "骞�",
               type: "bar",
               stack: "total",
-              barWidth: "27",
+              barWidth: "12",
               data: yflat,
             },
             {
               name: "璋�",
               type: "bar",
               stack: "total",
-              barWidth: "27",
+              barWidth: "12",
               data: ytrough,
             },
           ],
-        });
+        })
       }
       if (!!res.data.costList) {
-        let xdata = [];
-        let ytip = [];
-        let ypeak = [];
-        let yflat = [];
-        let ytrough = [];
+        let xdata = []
+        let ytip = []
+        let ypeak = []
+        let yflat = []
+        let ytrough = []
         res.data.costList.map((item) => {
-          xdata.push(Number(item.xdata.slice(-2)) + "鏃�");
-          ytip.push(!!item.ytip ? item.ytip : 0);
-          ypeak.push(!!item.ypeak ? item.ypeak : 0);
-          yflat.push(!!item.yflat ? item.yflat : 0);
-          ytrough.push(!!item.ytrough ? item.ytrough : 0);
-        });
+          xdata.push(Number(item.xdata.slice(-2)) + "鏃�")
+          ytip.push(!!item.ytip ? item.ytip : 0)
+          ypeak.push(!!item.ypeak ? item.ypeak : 0)
+          yflat.push(!!item.yflat ? item.yflat : 0)
+          ytrough.push(!!item.ytrough ? item.ytrough : 0)
+        })
         myChart2.setOption({
           color: ["#f52528", "#ff6200", "#ffce0c", "#78e801"],
           tooltip: {
@@ -477,10 +412,7 @@
               type: "shadow",
               textStyle: {
                 fontSize: 14,
-                color:
-                  settingsStore.sideTheme == "theme-dark"
-                    ? "#FFFFFF"
-                    : "#222222",
+                color: settingsStore.sideTheme == "theme-dark" ? "#FFFFFF" : "#222222",
               },
             },
           },
@@ -497,8 +429,7 @@
             itemHeight: 10,
             // right: 0,
             textStyle: {
-              color:
-                settingsStore.sideTheme == "theme-dark" ? "#FFFFFF" : "#222222",
+              color: settingsStore.sideTheme == "theme-dark" ? "#FFFFFF" : "#222222",
             },
           },
           xAxis: {
@@ -506,10 +437,7 @@
             axisLine: {
               show: true,
               lineStyle: {
-                color:
-                  settingsStore.sideTheme == "theme-dark"
-                    ? "#FFFFFF"
-                    : "#222222",
+                color: settingsStore.sideTheme == "theme-dark" ? "#FFFFFF" : "#222222",
               },
             },
             axisTick: {
@@ -522,8 +450,7 @@
               show: false,
             },
             axisLabel: {
-              color:
-                settingsStore.sideTheme == "theme-dark" ? "#FFFFFF" : "#222222",
+              color: settingsStore.sideTheme == "theme-dark" ? "#FFFFFF" : "#222222",
               fontSize: 14,
               padding: [5, 0, 0, 0],
               //   formatter: '{value} ml'
@@ -534,8 +461,7 @@
             name: "鐢佃垂(鍏�)",
             type: "value",
             nameTextStyle: {
-              color:
-                settingsStore.sideTheme == "theme-dark" ? "#FFFFFF" : "#222222",
+              color: settingsStore.sideTheme == "theme-dark" ? "#FFFFFF" : "#222222",
               fontSize: 14,
               padding: [0, 0, 5, 0],
             },
@@ -546,10 +472,7 @@
               show: true,
               lineStyle: {
                 type: "dashed",
-                color:
-                  settingsStore.sideTheme == "theme-dark"
-                    ? "#FFFFFF"
-                    : "#222222",
+                color: settingsStore.sideTheme == "theme-dark" ? "#FFFFFF" : "#222222",
               },
             },
             axisTick: {
@@ -559,8 +482,7 @@
               show: false,
             },
             axisLabel: {
-              color:
-                settingsStore.sideTheme == "theme-dark" ? "#FFFFFF" : "#222222",
+              color: settingsStore.sideTheme == "theme-dark" ? "#FFFFFF" : "#222222",
               fontSize: 14,
               //   formatter: '{value} ml'
             },
@@ -570,49 +492,53 @@
               name: "灏�",
               type: "bar",
               stack: "total",
-              barWidth: "27",
+              barWidth: "12",
               data: ytip,
             },
             {
               name: "宄�",
               type: "bar",
               stack: "total",
-              barWidth: "27",
+              barWidth: "12",
               data: ypeak,
             },
             {
               name: "骞�",
               type: "bar",
               stack: "total",
-              barWidth: "27",
+              barWidth: "12",
               data: yflat,
             },
             {
               name: "璋�",
               type: "bar",
               stack: "total",
-              barWidth: "27",
+              barWidth: "12",
               data: ytrough,
             },
           ],
-        });
+        })
       }
-      window.addEventListener("resize", () => {
-        myChart1.resize();
-        myChart2.resize();
-      },{passive: true});
+      window.addEventListener(
+        "resize",
+        () => {
+          myChart1.resize()
+          myChart2.resize()
+        },
+        { passive: true }
+      )
     }
-  });
+  })
 }
 // 宄板钩璋疯兘鑰楀垎鏋�-宄板钩璋锋椂娈电粺璁�-鎼滅储
 function handleQuery() {
-  getList();
+  getList()
 }
 // 宄板钩璋疯兘鑰楀垎鏋�-宄板钩璋锋椂娈电粺璁�-閲嶇疆
 function resetQuery() {
-  proxy.resetForm("queryRef");
-  queryParams.value.queryTime = proxy.dayjs(new Date()).format("YYYY-MM");
-  handleQuery();
+  proxy.resetForm("queryRef")
+  queryParams.value.queryTime = proxy.dayjs(new Date()).format("YYYY-MM")
+  handleQuery()
 }
 </script>
 <style scoped lang="scss">
@@ -629,16 +555,21 @@
     display: flex;
     justify-content: space-between;
     padding: 18px;
+    width: 100%;
+    overflow: hidden;
+    overflow-x: auto;
 
     .card-list-item {
-      width: 19%;
-      height: 187px;
+      flex-shrink: 0;
+      width: 230px;
+      height: 188px;
       background: #223386;
       border-radius: 5px 5px 5px 5px;
       border: 1px solid #4868b7;
       background-size: 100% 100%;
       box-sizing: border-box;
       padding: 10px 18px 13px 16px;
+      margin-right: 12px;
 
       .item-top {
         display: flex;

--
Gitblit v1.9.3