From 47a63dcdcd1889bd806208dc79937cd8112b8e38 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 19 十一月 2024 16:41:05 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 screen/src/views/EnergyConsum.vue |  258 +++++++++++++++++++++++++++++++--------------------
 1 files changed, 157 insertions(+), 101 deletions(-)

diff --git a/screen/src/views/EnergyConsum.vue b/screen/src/views/EnergyConsum.vue
index b51bc3d..3fa773b 100644
--- a/screen/src/views/EnergyConsum.vue
+++ b/screen/src/views/EnergyConsum.vue
@@ -25,7 +25,8 @@
               <img src="@/assets/images/nenghao_ic1.png" class="co2" alt="">
               <div>
                 <div class="name">鏈勾绱寰幆鐑熺</div>
-                <div><span class="num" v-if="data1.smokeBoxTotal">{{ data1.smokeBoxTotal.toLocaleString()
+                <div><span class="num" v-if="data1.smokeBoxTotal || data1.smokeBoxTotal == 0">{{
+                  data1.smokeBoxTotal.toLocaleString()
                     }}</span><span>鍙�</span></div>
               </div>
             </div>
@@ -41,6 +42,9 @@
             <div class="load_wrap">
               <div class="loadRef"></div>
             </div>
+            <!-- <div v-show="data4.length == 0" class="empty_wrap load_wrap">
+              <img src="@/assets/images/default_empty.png" alt="">
+            </div> -->
           </div>
           <div class="left_box_three">
             <div class="com_header">
@@ -51,7 +55,7 @@
               <div class="tabs">
                 <div class="tab" :class="{ active: activeTab2 == 0 }" @click="tabsClick2(0)">鐢ㄦ按</div>
                 <div class="separate"></div>
-                <div class="tab" :class="{ active: activeTab2 == 2 }" @click="tabsClick2(2)">鐢ㄧ數</div>
+                <div class="tab" :class="{ active: activeTab2 == 3 }" @click="tabsClick2(3)">鐢ㄧ數</div>
                 <div class="separate"></div>
                 <div class="tab" :class="{ active: activeTab2 == 1 }" @click="tabsClick2(1)">鐢ㄦ皵</div>
               </div>
@@ -70,17 +74,32 @@
                   <img class="icon" src="@/assets/images/ic_yongdian@2x.png" alt="" />
                   <div class="content">
                     <div class="name">涓婃湀鐢ㄧ數(kw路h)</div>
-                    <div class="num" v-if="data1.electricityQuantity || data1.electricityQuantity == 0">{{ data1.electricityQuantity.toLocaleString() }}
+                    <div class="num" v-if="data1.electricityQuantity">{{
+                      data1.electricityQuantity.total.toLocaleString() }}
                     </div>
                   </div>
                 </div>
-                <div class="static">
+                <div class="static" v-if="data1.electricityQuantity">
                   <span class="lab">鍚屾瘮</span>
-                  <img class="icon" src="@/assets/images/ic_up.webp" alt="" />
-                  <span class="val">{{ data1.electricityYear }}</span>
+                  <img v-if="data1.electricityQuantity.totalNum > data1.electricityQuantity.sameNum" class="icon"
+                    src="@/assets/images/ic_up.webp" alt="" />
+                  <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
+                  <span class="val"
+                    v-if="data1.electricityQuantity.totalNum && data1.electricityQuantity.totalNum != 0">{{
+                      Math.abs(((data1.electricityQuantity.totalNum -
+                        data1.electricityQuantity.sameNum) / data1.electricityQuantity.totalNum * 100).toFixed(1))
+                    }}%</span>
+                  <span class="val" v-else>-</span>
                   <span class="lab">鐜瘮</span>
-                  <img class="icon" src="@/assets/images/ic_down.webp" alt="" />
-                  <span class="val">{{ data1.gasMonth }}</span>
+                  <img v-if="data1.electricityQuantity.totalNum > data1.electricityQuantity.ringNum" class="icon"
+                    src="@/assets/images/ic_up.webp" alt="" />
+                  <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
+                  <span class="val"
+                    v-if="data1.electricityQuantity.totalNum && data1.electricityQuantity.totalNum != 0">{{
+                      Math.abs(((data1.electricityQuantity.totalNum -
+                        data1.electricityQuantity.ringNum) / data1.electricityQuantity.totalNum * 100).toFixed(1))
+                    }}%</span>
+                  <span class="val" v-else>-</span>
                 </div>
               </div>
               <div class="item">
@@ -88,16 +107,26 @@
                   <img class="icon" src="@/assets/images/ic_yongshui@2x.png" alt="" />
                   <div class="content">
                     <div class="name">涓婃湀鐢ㄦ按(t)</div>
-                    <div class="num" v-if="data1.waterQuantity || data1.waterQuantity == 0">{{ data1.waterQuantity.toLocaleString() }}</div>
+                    <div class="num" v-if="data1.waterQuantity">{{ data1.waterQuantity.total.toLocaleString() }}</div>
                   </div>
                 </div>
-                <div class="static">
+                <div class="static" v-if="data1.waterQuantity">
                   <span class="lab">鍚屾瘮</span>
-                  <img class="icon" src="@/assets/images/ic_up.webp" alt="" />
-                  <span class="val">{{ data1.waterMonth }}</span>
+                  <img v-if="data1.waterQuantity.totalNum > data1.waterQuantity.sameNum" class="icon"
+                    src="@/assets/images/ic_up.webp" alt="" />
+                  <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
+                  <span class="val" v-if="data1.waterQuantity.totalNum && data1.waterQuantity.totalNum != 0">{{
+                    Math.abs(((data1.waterQuantity.totalNum -
+                      data1.waterQuantity.sameNum) / data1.waterQuantity.totalNum * 100).toFixed(1)) }}%</span>
+                  <span class="val" v-else>-</span>
                   <span class="lab">鐜瘮</span>
-                  <img class="icon" src="@/assets/images/ic_down.webp" alt="" />
-                  <span class="val">{{ data1.waterYear }}</span>
+                  <img v-if="data1.waterQuantity.totalNum > data1.waterQuantity.ringNum" class="icon"
+                    src="@/assets/images/ic_up.webp" alt="" />
+                  <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
+                  <span class="val" v-if="data1.waterQuantity.totalNum && data1.waterQuantity.totalNum != 0">{{
+                    Math.abs(((data1.waterQuantity.totalNum -
+                      data1.waterQuantity.ringNum) / data1.waterQuantity.totalNum * 100).toFixed(1)) }}%</span>
+                  <span class="val" v-else>-</span>
                 </div>
               </div>
               <div class="item">
@@ -105,62 +134,76 @@
                   <img class="icon" src="@/assets/images/ic_yongqi@2x.png" alt="" />
                   <div class="content">
                     <div class="name">涓婃湀鐢ㄦ皵(t)</div>
-                    <div class="num" v-if="data1.gasQuantity || data1.gasQuantity == 0">{{ data1.gasQuantity.toLocaleString() }}</div>
+                    <div class="num" v-if="data1.gasQuantity">{{ data1.gasQuantity.total.toLocaleString() }}</div>
                   </div>
                 </div>
-                <div class="static">
+                <div class="static" v-if="data1.gasQuantity">
                   <span class="lab">鍚屾瘮</span>
-                  <img class="icon" src="@/assets/images/ic_up.webp" alt="" />
-                  <span class="val">{{ data1.gasMonth }}</span>
+                  <img v-if="data1.gasQuantity.totalNum > data1.gasQuantity.sameNum" class="icon"
+                    src="@/assets/images/ic_up.webp" alt="" />
+                  <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
+                  <span class="val" v-if="data1.gasQuantity.totalNum && data1.gasQuantity.totalNum != 0">{{
+                    Math.abs(((data1.gasQuantity.totalNum - data1.gasQuantity.sameNum) / data1.gasQuantity.totalNum
+                      * 100).toFixed(1))
+                  }}%</span>
+                  <span class="val" v-else>-</span>
                   <span class="lab">鐜瘮</span>
-                  <img class="icon" src="@/assets/images/ic_down.webp" alt="" />
-                  <span class="val">{{ data1.gasYear }}</span>
+                  <img v-if="data1.gasQuantity.totalNum > data1.gasQuantity.ringNum" class="icon"
+                    src="@/assets/images/ic_up.webp" alt="" />
+                  <img v-else class="icon" src="@/assets/images/ic_down.webp" alt="" />
+                  <span class="val" v-if="data1.gasQuantity.totalNum && data1.gasQuantity.totalNum != 0">{{
+                    Math.abs(((data1.gasQuantity.totalNum - data1.gasQuantity.ringNum) / data1.gasQuantity.totalNum
+                      * 100).toFixed(1))
+                  }}%</span>
+                  <span class="val" v-else>-</span>
                 </div>
               </div>
             </div>
           </div>
           <div class="center_box_two">
             <img class="bg" src="@/assets/images/img_city@2x.png" alt="" />
-            <div class="item item1">
-              <div class="num fs_linear">{{ data1.workHouseQuantity || 0 }}<span class="unit">kw路h</span></div>
-              <div class="name">鑱斿悎宸ユ埧</div>
-              <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" />
-            </div>
-            <div class="item item2">
-              <div class="num fs_linear">{{ data1.officeQuantity || 0 }}<span class="unit">kw路h</span></div>
-              <div class="name">鍔炲叕妤�</div>
-              <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" />
-            </div>
-            <div class="item item3">
-              <div class="num fs_linear">{{ data1.parkQuantity || 0 }}<span class="unit">kw路h</span></div>
-              <div class="name">鐗╂祦鍥尯</div>
-              <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" />
-            </div>
-            <div class="item item4">
-              <div class="num fs_linear">{{ data1.productHouseQuantity || 0 }}<span class="unit">kw路h</span></div>
-              <div class="name">鎴愬搧搴�</div>
-              <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" />
-            </div>
-            <div class="item item5">
-              <div class="num fs_linear">{{ data1.powerQuantity || 0 }}<span class="unit">kw路h</span></div>
-              <div class="name">鍔ㄥ姏绔欐埧</div>
-              <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" />
-            </div>
-            <div class="bottom_wrap">
+            <template v-if="data6 && data6.secondRegionDataList && data6.secondRegionDataList.length > 0">
+              <div class="item item1">
+                <div class="num fs_linear">{{ data6.secondRegionDataList[0].value }}<span class="unit">kw路h</span></div>
+                <div class="name">{{ data6.secondRegionDataList[0].name }}</div>
+                <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" />
+              </div>
+              <div class="item item2" v-if="data6.secondRegionDataList.length > 1">
+                <div class="num fs_linear">{{ data6.secondRegionDataList[1].value }}<span class="unit">kw路h</span></div>
+                <div class="name">{{ data6.secondRegionDataList[1].name }}</div>
+                <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" />
+              </div>
+              <div class="item item3" v-if="data6.secondRegionDataList.length > 2">
+                <div class="num fs_linear">{{ data6.secondRegionDataList[2].value }}<span class="unit">kw路h</span></div>
+                <div class="name">{{ data6.secondRegionDataList[2].name }}</div>
+                <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" />
+              </div>
+              <div class="item item4" v-if="data6.secondRegionDataList.length > 3">
+                <div class="num fs_linear">{{ data6.secondRegionDataList[3].value }}<span class="unit">kw路h</span></div>
+                <div class="name">{{ data6.secondRegionDataList[3].name }}</div>
+                <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" />
+              </div>
+              <div class="item item5" v-if="data6.secondRegionDataList.length > 4">
+                <div class="num fs_linear">{{ data6.secondRegionDataList[4].value }}<span class="unit">kw路h</span></div>
+                <div class="name">{{ data6.secondRegionDataList[4].name }}</div>
+                <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" />
+              </div>
+            </template>
+            <div class="bottom_wrap" v-if="data1.yesterdayElectricity">
               <div class="bottom bottom1">
-                <div class="num fs_linear">{{ data1.yesterdayElectricity || 0 }}</div>
+                <div class="num fs_linear">{{ data1.yesterdayElectricity.total || 0 }}</div>
                 <div class="name">鏄ㄦ棩鐢ㄧ數</div>
                 <div class="unit">kw路h</div>
                 <img src="@/assets/images/ic_dianliang_b@2x.png" class="bg" alt="" />
               </div>
               <div class="bottom bottom2">
-                <div class="num">{{ data1.todayElectricity || 0 }}</div>
+                <div class="num">{{ data1.todayElectricity.total || 0 }}</div>
                 <div class="name">浠婃棩鐢ㄧ數</div>
                 <div class="unit">kw路h</div>
                 <img src="@/assets/images/ic_dianliang@2x.png" class="bg" alt="" />
               </div>
               <div class="bottom bottom3">
-                <div class="num fs_linear">{{ data1.monthElectricity || 0 }}</div>
+                <div class="num fs_linear">{{ data1.monthElectricity.total || 0 }}</div>
                 <div class="name">鏈湀鐢ㄧ數</div>
                 <div class="unit">kw路h</div>
                 <img src="@/assets/images/ic_dianliang_b@2x.png" class="bg" alt="" />
@@ -181,7 +224,8 @@
               <img src="@/assets/images/ic_co2@2x.png" class="co2" alt="">
               <div>
                 <div class="name">鏈湀绱纰虫帓鏀�</div>
-                <div><span class="num" v-if="data1.carbon">{{ data1.carbon.toLocaleString() }}</span><span>鍚�</span>
+                <div><span class="num" v-if="data1.carbon || data1.carbon == 0">{{ data1.carbon.toLocaleString()
+                    }}</span><span>鍚�</span>
                 </div>
               </div>
             </div>
@@ -195,15 +239,21 @@
               <div class="tabs">娌硅�楋細L</div>
               <img src="@/assets/images/title@2x.png" class="bg" alt="" />
             </div>
-            <div class="list">
-              <div class="line" v-for="item, i in data3">
-                <div class="top"><span v-if="i < 3">top</span>{{ i }}</div>
-                <div class="id_card">{{ item.carNo }}</div>
-                <div class="wrap">
-                  <ChargeRate :rate="item.rate" :color="i > 2 ? 'cyan' : '#e3a83a'" />
+            <div v-if="data3 && data3.length > 0" class="list">
+              <template v-for="item, i in data3">
+                <div v-if="i < 6" class="line" >
+                  <div class="top"><span v-if="i < 3">top</span>{{ i + 1 }}</div>
+                  <div class="id_card">{{ item.carNo }}</div>
+                  <div class="wrap">
+                    <ChargeRate :rate="item.rate" :color="i > 2 ? 'cyan' : '#e3a83a'" />
+                  </div>
+                  <div class="num">{{ item.quantity }}</div>
                 </div>
-                <div class="num">{{ item.quantity }}</div>
-              </div>
+              </template>
+
+            </div>
+            <div v-if="data3.length == 0" class="empty_wrap list">
+              <img src="@/assets/images/default_empty.png" alt="">
             </div>
           </div>
           <div class="right_box_three">
@@ -235,6 +285,7 @@
   zxenergyDataList,
   zxlastMonthOil,
   zxloadCurve,
+  zxenergyRegionData
 } from '@/api'
 
 
@@ -304,7 +355,7 @@
       }
     },
     grid: {
-      top: '26%',
+      top: '22%',
       left: '4%',
       right: '6%',
       bottom: '2%',
@@ -474,9 +525,33 @@
     myChart.resize()
   })
 }
+
+const data1 = ref({})
+const getData1 = () => {
+  zxcenterData().then(res => {
+    const result = res.data
+    data1.value = result
+  })
+}
+const data6 = ref({})
+const getData6 = () => {
+  zxenergyRegionData().then(res => {
+    const result = res.data
+    data6.value = result
+  })
+}
+
+const activeTab2 = ref(0)
+const tabsClick2 = (v) => {
+  activeTab2.value = v
+  getData2()
+}
+const data2 = ref([])
 const initEnergy = () => {
   var myChart = echarts.init(document.querySelector('.energyRef'))
   // 缁樺埗鍥捐〃
+  let unit = activeTab2.value == 0 ? '鍗曚綅锛歵' : activeTab2.value == 3 ? '鍗曚綅锛歬w路h' : '鍗曚綅锛歮鲁'
+
   myChart.setOption({
     grid: {
       top: '24%',
@@ -497,7 +572,7 @@
     },
     yAxis: {
       type: 'value',
-      name: '鍗曚綅锛歬w路h',
+      name: unit,
       nameTextStyle: {
         padding: [0, 0, 4, -30]    // 鍥涗釜鏁板瓧鍒嗗埆涓轰笂鍙充笅宸︿笌鍘熶綅缃窛绂�
       },
@@ -533,52 +608,25 @@
     myChart.resize()
   })
 }
-
-const data1 = ref({})
-const getData1 = () => {
-  zxcenterData().then(res => {
-    const result = res.data
-    data1.value = result
-  })
-}
-const activeTab2 = ref(0)
-const tabsClick2 = (v) => {
-  activeTab2.value = v
-  getData2()
-}
-const data2 = ref([])
 const getData2 = () => {
   zxenergyDataList({ type: activeTab2.value }).then(res => {
-    const result = res.data
+    const result = res.data || []
     data2.value = result
     initEnergy()
   })
 }
 const data3 = ref([])
 const getData3 = () => {
-  data3.value = [
-    { carNo: '鐨朅87772', maxOil: 50, quantity: 50 },
-    { carNo: '鐨朅81222', maxOil: 50, quantity: 26 },
-    { carNo: '鐨朅85035', maxOil: 50, quantity: 24 },
-    { carNo: '鐨朅86057', maxOil: 50, quantity: 14 },
-    { carNo: '鐨朅81272', maxOil: 50, quantity: 9 },
-    { carNo: '鐨朅87772', maxOil: 50, quantity: 1 },
-  ]
-  data3.value = data3.value.map(i => {
-    if (i.quantity && i.maxOil) {
-      i.rate = ((i.quantity / i.maxOil) * 25).toFixed(0)
-    }
-    return i
-  })
-  return
   zxlastMonthOil().then(res => {
     const result = res.data || []
-    data3.value = result.map(i => {
-      if (i.quantity && i.maxOil) {
-        i.rate = ((i.quantity / i.maxOil) * 25).toFixed(0)
-      }
-      return i
-    })
+    if (result.length > 0) {
+      data3.value = result.map(i => {
+        if (i.quantity || i.quantity == 0) {
+          i.rate = ((i.quantity / result[0].quantity) * 25).toFixed(0)
+        }
+        return i
+      })
+    }
   })
 }
 const data4 = ref([])
@@ -586,13 +634,15 @@
   zxloadCurve().then(res => {
     const result = res.data
     data4.value = result
-    initLoadReal()
+    if (data4.value && data4.value.length > 0) {
+      initLoadReal()
+    }
   })
 }
 
 const data5 = ref([])
 const getData5 = () => {
-  zxenergyDataList({ type: 3 }).then(res => {
+  zxenergyDataList({ type: 2 }).then(res => {
     const result = res.data
     data5.value = result
     initOperation()
@@ -605,6 +655,7 @@
   getData3()
   getData4()
   getData5()
+  getData6()
 
 })
 
@@ -742,7 +793,6 @@
       height: 544px;
 
       .item {
-        width: 120px;
         height: 112px;
         position: absolute;
         text-align: center;
@@ -765,9 +815,12 @@
         }
 
         .bg {
+          margin: 0 auto;
           width: 120px;
           height: 88px;
           top: 24px;
+          left: 50%;
+          transform: translate(-50%, 0);
         }
       }
 
@@ -889,6 +942,7 @@
 
       .list {
         padding: 20px 24px 4px;
+        height: 250px;
 
         .line {
           display: flex;
@@ -910,8 +964,9 @@
           .id_card {
             color: #DBEAEA;
             font-weight: 500;
-            margin-right: 14px;
-            font-size: 14px;
+            margin-right: 6px;
+            font-size: 13px;
+            width: 64px;
           }
 
           .num {
@@ -919,6 +974,7 @@
             font-size: 13px;
             color: #DBEAEA;
             margin-left: 15px;
+            width: 40px;
           }
 
           .wrap {

--
Gitblit v1.9.3