From 7df781c76f651d21cac02bcdae7f7b3f9e41e275 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期五, 27 十二月 2024 17:47:41 +0800
Subject: [PATCH] ll

---
 screen/src/views/EnergyConsum.vue |  869 +++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 538 insertions(+), 331 deletions(-)

diff --git a/screen/src/views/EnergyConsum.vue b/screen/src/views/EnergyConsum.vue
index 475cde1..76eaed1 100644
--- a/screen/src/views/EnergyConsum.vue
+++ b/screen/src/views/EnergyConsum.vue
@@ -1,241 +1,289 @@
 <template>
-  <div class="main_app">
-    <img src="@/assets/images/bg_main_app.png" class="main_bg" alt="" />
-    <div class="main_header">
-      <img src="@/assets/images/maintitle@2x.png" class="main_header_bg" alt="" />
-      <div class="title">瀹夋嘲鏅烘収鐗╂祦鍥尯-缁胯壊浣庣⒊杩愯惀</div>
-      <div class="time">
-        <span class="date">{{ date }}</span>
-        <span class="week">{{ week }}</span>
-        <span class="time">{{ time }}</span>
-      </div>
-    </div>
-    <div class="main_content">
-      <div class="left_box">
-        <div class="left_box_one">
-          <div class="com_header">
-            <div class="title">
-              <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
-              <div>瀹炴椂涓夌浉鐢垫祦/鐢靛帇</div>
-            </div>
-            <img src="@/assets/images/title@2x.png" class="bg" alt="" />
-          </div>
-          <div class="content">
-            <div class="item">
-              <div class="lab">A鐩哥數娴�(A)</div>
-              <div class="val">60</div>
-            </div>
-            <div class="item">
-              <div class="lab">B鐩哥數娴�(A)</div>
-              <div class="val">60</div>
-            </div>
-            <div class="item">
-              <div class="lab">C鐩哥數娴�(A)</div>
-              <div class="val">60</div>
-            </div>
-            <div class="item">
-              <div class="lab">鏈夊姛鍔熺巼(KW)</div>
-              <div class="val">60</div>
-            </div>
-            <div class="item">
-              <div class="lab">鍔熺巼鍥犳暟</div>
-              <div class="val">60</div>
-            </div>
-            <div class="item">
-              <div class="lab">鏈夊姛鐢靛害(掳)</div>
-              <div class="val">60</div>
-            </div>
-          </div>
-        </div>
-        <div class="left_box_two">
-          <div class="com_header">
-            <div class="title">
-              <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
-              <div>瀹炴椂璐熻嵎鏇茬嚎</div>
-            </div>
-            <img src="@/assets/images/title@2x.png" class="bg" alt="" />
-          </div>
-          <div class="load_wrap">
-            <div class="loadRef"></div>
-          </div>
-        </div>
-        <div class="left_box_three">
-          <div class="com_header">
-            <div class="title">
-              <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
-              <div>鏈堣兘鑰楀垎鏋�</div>
-            </div>
-            <div class="tabs">
-              <div class="tab active">鐢ㄧ數</div>
-              <div class="separate"></div>
-              <div class="tab">鐢ㄦ按</div>
-              <div class="separate"></div>
-              <div class="tab">鐢ㄦ皵</div>
-            </div>
-            <img src="@/assets/images/title@2x.png" class="bg" alt="" />
-          </div>
-          <div class="energy_wrap">
-            <div class="energyRef"></div>
-          </div>
+  <v-scale-screen width="1920" height="960">
+    <div class="main_app">
+      <img src="@/assets/images/bg_main_app.png" class="main_bg" alt="" />
+      <div class="main_header">
+        <img src="@/assets/images/maintitle.gif" class="main_header_bg" alt="" />
+        <div class="title">瀹夋嘲鏅烘収鐗╂祦鍥尯-缁胯壊浣庣⒊杩愯惀</div>
+        <div class="time_wrap">
+          <span class="date">{{ date }}</span>
+          <span class="week">{{ week }}</span>
+          <span class="time">{{ time }}</span>
         </div>
       </div>
-      <div class="center_box">
-        <div class="center_box_one">
-          <div class="list">
-            <div class="item">
-              <div class="header">
-                <img class="icon" src="@/assets/images/ic_yongdian@2x.png" alt="" />
-                <div class="content">
-                  <div class="name">涓婃湀鐢ㄧ數(kw路h)</div>
-                  <div class="num">450</div>
+      <div class="main_content">
+        <div class="left_box">
+          <div class="left_box_one">
+            <div class="com_header">
+              <div class="title">
+                <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
+                <div>鏈勾绱寰幆鐑熺</div>
+              </div>
+              <img src="@/assets/images/title@2x.png" class="bg" alt="" />
+            </div>
+            <div class="content">
+              <img src="@/assets/images/nenghao_ic1.png" class="co2" alt="">
+              <div>
+                <div class="name">鏈勾绱寰幆鐑熺</div>
+                <div><span class="num" style="color: #68cfb2;" v-if="data1.smokeBoxTotal || data1.smokeBoxTotal == 0">{{
+                  data1.smokeBoxTotal.toLocaleString()
+                    }}</span><span>涓�</span></div>
+              </div>
+            </div>
+          </div>
+          <div class="left_box_two">
+            <div class="com_header">
+              <div class="title">
+                <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
+                <div>瀹炴椂璐熻嵎鏇茬嚎</div>
+              </div>
+              <img src="@/assets/images/title@2x.png" class="bg" alt="" />
+            </div>
+            <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">
+              <div class="title">
+                <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
+                <div>鏈堣兘鑰楀垎鏋�</div>
+              </div>
+              <div class="tabs">
+                <div class="tab" :class="{ active: activeTab2 == 0 }" @click="tabsClick2(0)">鐢ㄦ按</div>
+                <div class="separate"></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>
+              <img src="@/assets/images/title@2x.png" class="bg" alt="" />
+            </div>
+            <div class="energy_wrap">
+              <div class="energyRef"></div>
+            </div>
+          </div>
+        </div>
+        <div class="center_box">
+          <div class="center_box_one">
+            <div class="list">
+              <div class="item">
+                <div class="header">
+                  <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.total.toLocaleString() }}
+                    </div>
+                  </div>
+                </div>
+                <div class="static" v-if="data1.electricityQuantity">
+                  <span class="lab">鍚屾瘮</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 style="margin-left: 4px;"> -</span>
+                  <span class="lab">鐜瘮</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 style="margin-left: 4px;"> -</span>
                 </div>
               </div>
-              <div class="static">
-                <span class="lab">鍚屾瘮</span>
-                <img class="icon" src="@/assets/images/ic_up.webp" alt="" />
-                <span class="val">11</span>
-                <span class="lab">鐜瘮</span>
-                <img class="icon" src="@/assets/images/ic_down.webp" alt="" />
-                <span class="val">11</span>
-              </div>
-            </div>
-            <div class="item">
-              <div class="header">
-                <img class="icon" src="@/assets/images/ic_yongshui@2x.png" alt="" />
-                <div class="content">
-                  <div class="name">涓婃湀鐢ㄦ按(t)</div>
-                  <div class="num">450</div>
+              <div class="item">
+                <div class="header">
+                  <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.total.toLocaleString() }}</div>
+                  </div>
+                </div>
+                <div class="static" v-if="data1.waterQuantity">
+                  <span class="lab">鍚屾瘮</span>
+                  <template v-if="data1.waterQuantity.sameNum">
+                    <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="" />
+                  </template>
+                  <span class="val" v-if="data1.waterQuantity.sameNum && data1.waterQuantity.sameNum != 0">{{
+                    Math.abs(((data1.waterQuantity.totalNum -
+                      data1.waterQuantity.sameNum) / data1.waterQuantity.sameNum * 100).toFixed(1)) }}%</span>
+                  <span class="val" v-else style="margin-left: 4px;">-</span>
+                  <span class="lab">鐜瘮</span>
+                  <template v-if="data1.waterQuantity.ringNum">
+                    <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="" />
+                  </template>
+                  <span class="val" v-if="data1.waterQuantity.ringNum && data1.waterQuantity.ringNum != 0">{{
+                    Math.abs(((data1.waterQuantity.totalNum -
+                      data1.waterQuantity.ringNum) / data1.waterQuantity.ringNum * 100).toFixed(1)) }}%</span>
+                  <span class="val" v-else style="margin-left: 4px;">-</span>
                 </div>
               </div>
-              <div class="static">
-                <span class="lab">鍚屾瘮</span>
-                <img class="icon" src="@/assets/images/ic_up.webp" alt="" />
-                <span class="val">11</span>
-                <span class="lab">鐜瘮</span>
-                <img class="icon" src="@/assets/images/ic_down.webp" alt="" />
-                <span class="val">11</span>
-              </div>
-            </div>
-            <div class="item">
-              <div class="header">
-                <img class="icon" src="@/assets/images/ic_yongqi@2x.png" alt="" />
-                <div class="content">
-                  <div class="name">涓婃湀鐢ㄦ皵(t)</div>
-                  <div class="num">450</div>
+              <div class="item">
+                <div class="header">
+                  <img class="icon" src="@/assets/images/ic_yongqi@2x.png" alt="" />
+                  <div class="content">
+                    <div class="name">涓婃湀鐢ㄦ皵(m鲁)</div>
+                    <div class="num" v-if="data1.gasQuantity">{{ data1.gasQuantity.total.toLocaleString() }}</div>
+                  </div>
+                </div>
+                <div class="static" v-if="data1.gasQuantity">
+                  <span class="lab">鍚屾瘮</span>
+                  <template v-if="data1.gasQuantity.sameNum">
+                    <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="" />
+                  </template>
+                  <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 style="margin-left: 4px;">-</span>
+                  <span class="lab">鐜瘮</span>
+                  <template v-if="data1.gasQuantity.sameNum">
+                    <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="" />
+                  </template>
+                  <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 style="margin-left: 4px;">-</span>
                 </div>
               </div>
-              <div class="static">
-                <span class="lab">鍚屾瘮</span>
-                <img class="icon" src="@/assets/images/ic_up.webp" alt="" />
-                <span class="val">11</span>
-                <span class="lab">鐜瘮</span>
-                <img class="icon" src="@/assets/images/ic_down.webp" alt="" />
-                <span class="val">11</span>
+            </div>
+          </div>
+          <div class="center_box_two">
+            <img class="bg" src="@/assets/images/img_city@2x.png" alt="" />
+            <template v-if="data6 && data6 && data6.length > 0">
+              <div class="item item1" v-if="data6.length > 4">
+                <div class="num fs_linear">{{ data6[4].value }}<span class="unit">kw路h</span></div>
+                <div class="name">{{ data6[4].name }}</div>
+                <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" />
+              </div>
+              <div class="item item2" v-if="data6.length > 1">
+                <div class="num fs_linear">{{ data6[1].value }}<span class="unit">kw路h</span></div>
+                <div class="name">{{ data6[1].name }}</div>
+                <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" />
+              </div>
+              <div class="item item3" v-if="data6.length > 2">
+                <div class="num fs_linear">{{ data6[2].value }}<span class="unit">kw路h</span></div>
+                <div class="name">{{ data6[2].name }}</div>
+                <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" />
+              </div>
+              <div class="item item4" v-if="data6.length > 3">
+                <div class="num fs_linear">{{ data6[3].value }}<span class="unit">kw路h</span></div>
+                <div class="name">{{ data6[3].name }}</div>
+                <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" />
+              </div>
+              <div class="item item5">
+                <div class="num fs_linear">{{ data6[0].value }}<span class="unit">kw路h</span></div>
+                <div class="name">{{ data6[0].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" @click="changeacDay(3)">
+                <div :class="{ active: activeDays == 3 }" class="num fs_linear">{{ data1.yesterdayElectricity.total || 0
+                  }}</div>
+                <div class="name">鏄ㄦ棩鐢ㄧ數</div>
+                <div class="unit">kw路h</div>
+                <img v-if="activeDays == 3" src="@/assets/images/ic_dianliang@2x.png" class="bg" alt="" />
+                <img v-else src="@/assets/images/ic_dianliang_b@2x.png" class="bg" alt="" />
+              </div>
+              <div class="bottom bottom2" @click="changeacDay(1)">
+                <div :class="{ active: activeDays == 1 }" class="num">{{ data1.todayElectricity.total || 0 }}</div>
+                <div class="name">浠婃棩鐢ㄧ數</div>
+                <div class="unit">kw路h</div>
+                <img v-if="activeDays == 1" src="@/assets/images/ic_dianliang@2x.png" class="bg" alt="" />
+                <img v-else src="@/assets/images/ic_dianliang_b@2x.png" class="bg" alt="" />
+              </div>
+              <div class="bottom bottom3" @click="changeacDay(2)">
+                <div :class="{ active: activeDays == 2 }" class="num fs_linear">{{ data1.monthElectricity.total || 0 }}
+                </div>
+                <div class="name">鏈湀鐢ㄧ數</div>
+                <div class="unit">kw路h</div>
+                <img v-if="activeDays == 2" src="@/assets/images/ic_dianliang@2x.png" class="bg" alt="" />
+                <img v-else src="@/assets/images/ic_dianliang_b@2x.png" class="bg" alt="" />
               </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">240<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">240<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">240<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">240<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">240<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">
-            <div class="bottom bottom1">
-              <div class="num fs_linear">240</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">240</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">240</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>
-        </div>
-      </div>
-      <div class="right_box">
-        <div class="right_box_one">
-          <div class="com_header">
-            <div class="title">
-              <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
-              <div>鏈湀纰虫帓鏀鹃噺缁熻</div>
-            </div>
-            <img src="@/assets/images/title@2x.png" class="bg" alt="" />
-          </div>
-          <div class="content">
-            <img src="@/assets/images/ic_co2@2x.png" class="co2" alt="">
-            <div>
-              <div class="name">鏈湀绱纰虫帓鏀�</div>
-              <div><span class="num">22.22</span><span>鍚�</span></div>
-            </div>
-          </div>
-        </div>
-        <div class="right_box_two">
-          <div class="com_header">
-            <div class="title">
-              <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
-              <div>涓婃湀娌硅�楁帓琛岀粺璁�</div>
-            </div>
-            <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 6">
-              <div class="top"><span v-if="i < 3">top</span>{{ i }}</div>
-              <div class="id_card">鐨朅12313</div>
-              <div class="wrap">
-                <ChargeRate :rate="15" :color />
+        <div class="right_box">
+          <div class="right_box_one">
+            <div class="com_header">
+              <div class="title">
+                <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
+                <div>鏈湀纰虫帓鏀鹃噺缁熻</div>
               </div>
-              <div class="num">1000</div>
+              <img src="@/assets/images/title@2x.png" class="bg" alt="" />
+            </div>
+            <div class="content">
+              <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 == 0">{{ data1.carbon.toLocaleString()
+                    }}</span><span>鍚�</span>
+                </div>
+              </div>
             </div>
           </div>
-        </div>
-        <div class="right_box_three">
-          <div class="com_header">
-            <div class="title">
-              <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
-              <div>鏈堟补鑰楀垎鏋�</div>
+          <div class="right_box_two">
+            <div class="com_header">
+              <div class="title">
+                <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
+                <div>涓婃湀娌硅�楁帓琛岀粺璁�</div>
+              </div>
+              <div class="tabs">娌硅�楋細L</div>
+              <img src="@/assets/images/title@2x.png" class="bg" alt="" />
             </div>
-            <img src="@/assets/images/title@2x.png" class="bg" alt="" />
+            <div v-if="data3 && data3.length > 0" class="list one-swiper">
+              <div class="swiper-wrapper">
+                <div class="line one-swiper-slide swiper-slide" v-for="item, i in data3">
+                  <div class="top" :class="{ top3: i < 3 }"><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>
+            </div>
+            <div v-if="data3.length == 0" class="empty_wrap list">
+              <img src="@/assets/images/default_empty.png" alt="">
+            </div>
           </div>
-          <div class="wrap">
-            <div class="analyseRef"></div>
+          <div class="right_box_three">
+            <div class="com_header">
+              <div class="title">
+                <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
+                <div>鏈堟补鑰楀垎鏋�</div>
+              </div>
+              <img src="@/assets/images/title@2x.png" class="bg" alt="" />
+            </div>
+            <div class="wrap">
+              <div class="analyseRef"></div>
+            </div>
           </div>
         </div>
       </div>
     </div>
-  </div>
+  </v-scale-screen>
 </template>
 
 <script setup>
@@ -243,6 +291,18 @@
 import dayjs from 'dayjs'
 import ChargeRate from '@/components/ChargeRate.vue'
 import * as echarts from 'echarts'
+import VScaleScreen from 'v-scale-screen'
+import 'swiper/css/swiper.min.css'
+import Swiper from 'swiper'
+import {
+  zxcenterData,
+  zxenergyDataList,
+  zxlastMonthOil,
+  zxloadCurve,
+  zxenergyRegionData,
+  regionDataRanking
+} from '@/api'
+
 
 const weekMap = ['鏄熸湡鏃�', '鏄熸湡涓�', '鏄熸湡浜�', '鏄熸湡涓�', '鏄熸湡鍥�', '鏄熸湡浜�', '鏄熸湡鍏�',]
 const date = ref(dayjs().format('YYYY.MM.DD'))
@@ -285,13 +345,26 @@
     xAxis: {
       type: 'category',
       boundaryGap: false,
-      data: [1,2,3,4,5,5]
+      axisLabel: {
+        color: '#D2E0FF'
+      },
+      data: data5.value.map(i => dayjs(i.timeData).format('M'))
+    },
+    tooltip: {
+      trigger: 'axis',
+      axisPointer: {
+        type: 'line'
+      },
     },
     yAxis: {
       type: 'value',
       name: '鍗曚綅锛歀',
+      axisLabel: {
+        color: '#D2E0FF'
+      },
       nameTextStyle: {
-        padding: [0, 0, 0, -16]    // 鍥涗釜鏁板瓧鍒嗗埆涓轰笂鍙充笅宸︿笌鍘熶綅缃窛绂�
+        color: '#D2E0FF',
+        padding: [0, 0, 0, -18]    // 鍥涗釜鏁板瓧鍒嗗埆涓轰笂鍙充笅宸︿笌鍘熶綅缃窛绂�
       },
       splitLine: {
         show: true,
@@ -304,20 +377,15 @@
       }
     },
     grid: {
-      top: '16%',
+      top: '22%',
       left: '4%',
-      right: '2%',
+      right: '6%',
       bottom: '2%',
       containLabel: true
     },
     series: [
       {
-        data: [1,2,3,4,4,5].map(i => {
-          return {
-            name: i,
-            value: i,
-          }
-        }),
+        data: data5.value.map(i => i.energy),
         type: 'line',
         areaStyle: {
           normal: {
@@ -353,7 +421,7 @@
           width: 2, // 绾挎潯绮楃粏
         },
         symbol: 'circle',
-        symbolSize: 10,
+        symbolSize: 6,
         itemStyle: {
           normal: {
             color: '#F3BD00', //鎶樼嚎鐐圭殑棰滆壊
@@ -373,37 +441,45 @@
   var myChart = echarts.init(document.querySelector('.loadRef'))
   // 缁樺埗鍥捐〃
   myChart.setOption({
-    // tooltip: {
-    //   trigger: 'axis',
-    //   axisPointer: {
-    //     type: 'line'
-    //   },
-    //   formatter: function (params) {
-    //     setTimeout(() => {
-    //       console.log('params', params)
-    //     })
-    //     return `
-    //       <div style="background-color: #091123;margin: -12px;padding: 14px;border: 2px solid rgba(1,217,254,0.5);color: #fff;">
-    //         <div>${params[0].name}鎬婚攢鍞(涓囧厓)</div>
-    //         <div style="display: flex;align-items: center;">
-    //           <div style="width: 10px;height: 10px;border-radius: 50%;background-color: #ebbf40;"></div>
-    //           <div style="margin: 0 4px 0 6px;">鎬婚攢鍞�</div>
-    //           <span style="color: #ebbf40;">${params[0].value}</span>
-    //         </div>
-    //       </div>
-    //     `
-    //   }
-    // },
+    tooltip: {
+      trigger: 'axis',
+      axisPointer: {
+        type: 'line'
+      },
+      // trigger: 'axis',
+      // axisPointer: {
+      //   type: 'line'
+      // },
+      // formatter: function (params) {
+      //   setTimeout(() => {
+      //     console.log('params', params)
+      //   })
+      //   return `
+      //     <div style="background-color: #091123;margin: -12px;padding: 14px;border: 2px solid rgba(1,217,254,0.5);color: #fff;">
+      //       <div>${params[0].name}鎬婚攢鍞(涓囧厓)</div>
+      //       <div style="display: flex;align-items: center;">
+      //         <div style="width: 10px;height: 10px;border-radius: 50%;background-color: #ebbf40;"></div>
+      //         <div style="margin: 0 4px 0 6px;">鎬婚攢鍞�</div>
+      //         <span style="color: #ebbf40;">${params[0].value}</span>
+      //       </div>
+      //     </div>
+      //   `
+      // }
+    },
     xAxis: {
       type: 'category',
       boundaryGap: false,
-      data: [1,2,3,4,5,5]
+      axisLabel: {
+        color: '#D2E0FF'
+      },
+      data: data4.value.map(i => i.timeData)
     },
     yAxis: {
       type: 'value',
       name: '鍗曚綅锛歬w路h',
       nameTextStyle: {
-        padding: [0, 0, 0, -16]    // 鍥涗釜鏁板瓧鍒嗗埆涓轰笂鍙充笅宸︿笌鍘熶綅缃窛绂�
+        padding: [0, 0, 0, -16],    // 鍥涗釜鏁板瓧鍒嗗埆涓轰笂鍙充笅宸︿笌鍘熶綅缃窛绂�
+        color: '#D2E0FF'
       },
       splitLine: {
         show: true,
@@ -413,10 +489,13 @@
           type: 'dashed',
         },
         splitNumber: 4
+      },
+      axisLabel: {
+        color: '#D2E0FF'
       }
     },
     grid: {
-      top: '16%',
+      top: '18%',
       left: '4%',
       right: '2%',
       bottom: '2%',
@@ -424,12 +503,7 @@
     },
     series: [
       {
-        data: [1,2,3,4,4,4000].map(i => {
-          return {
-            name: i,
-            value: i,
-          }
-        }),
+        data: data4.value.map(i => i.energy),
         type: 'line',
         areaStyle: {
           normal: {
@@ -440,7 +514,7 @@
               y2: 1,
               colorStops: [{
                 offset: 0,
-                color: "rgba(192, 156, 53,.7)" // 0% 澶勭殑棰滆壊
+                color: "#2e6ab5" // 0% 澶勭殑棰滆壊
               }, {
                 offset: 1,
                 color: "#1b1b12" // 100% 澶勭殑棰滆壊
@@ -457,18 +531,18 @@
             x2: 0,
             y2: 1,
             colorStops: [{
-              offset: 0, color: '#F3BD00' // 0% 澶勭殑棰滆壊
+              offset: 0, color: '#2e6ab5' // 0% 澶勭殑棰滆壊
             }, {
-              offset: 1, color: '#F3BD00' // 100% 澶勭殑棰滆壊
+              offset: 1, color: '#2e6ab5' // 100% 澶勭殑棰滆壊
             }],
           },
           width: 2, // 绾挎潯绮楃粏
         },
         symbol: 'circle',
-        symbolSize: 10,
+        symbolSize: 0,
         itemStyle: {
           normal: {
-            color: '#F3BD00', //鎶樼嚎鐐圭殑棰滆壊
+            color: '#2e6ab5', //鎶樼嚎鐐圭殑棰滆壊
           },
         },
         smooth: true
@@ -480,15 +554,43 @@
     myChart.resize()
   })
 }
-const arr = ['#68e2e3', '#50afd3', '#377cdb', '#d5ae3a']
+
+const data1 = ref({})
+const getData1 = () => {
+  zxcenterData().then(res => {
+    const result = res.data
+    data1.value = result
+  })
+}
+const activeDays = ref('1')
+const data6 = ref({})
+const changeacDay = (val) => {
+  activeDays.value = val
+  getData6()
+}
+const getData6 = () => {
+  regionDataRanking({ type: activeDays.value }).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'))
   // 缁樺埗鍥捐〃
-  const arr = ['#68e2e3', '#50afd3', '#377cdb', '#d5ae3a']
+  let unit = activeTab2.value == 0 ? '鍗曚綅锛歵' : activeTab2.value == 3 ? '鍗曚綅锛歬w路h' : '鍗曚綅锛歮鲁'
+
   myChart.setOption({
     grid: {
       top: '20%',
-      left: '2%',
+      left: '6%',
       right: '2%',
       bottom: '4%',
       containLabel: true
@@ -501,12 +603,19 @@
     },
     xAxis: {
       type: 'category',
-      data: [1,2,3,4,4,5]
+      axisLabel: {
+        color: '#D2E0FF'
+      },
+      data: data2.value.map(i => dayjs(i.timeData).format('M'))
     },
     yAxis: {
       type: 'value',
-      name: 'kw路h',
+      name: unit,
+      axisLabel: {
+        color: '#D2E0FF'
+      },
       nameTextStyle: {
+        color: '#D2E0FF',
         padding: [0, 0, 4, -30]    // 鍥涗釜鏁板瓧鍒嗗埆涓轰笂鍙充笅宸︿笌鍘熶綅缃窛绂�
       },
       splitLine: {
@@ -519,7 +628,7 @@
     },
     series: [
       {
-        data: [1,2,3,4,5],
+        data: data2.value.map(i => i.energy),
         type: 'bar',
         barWidth: 10,
         itemStyle: {
@@ -527,11 +636,11 @@
             color: new echarts.graphic.LinearGradient(
               0, 0, 0, 1,
               [
-                { offset: 0, color: arr[1] },
-                { offset: 1, color: '#080807' }
+                { offset: 0, color: '#50afd3' },
+                { offset: 1, color: '#1d4861' }
               ]
             ),
-            barBorderRadius: [10, 10, 0, 0]
+            barBorderRadius: [3, 3, 0, 0]
           }
         }
       }
@@ -541,12 +650,87 @@
     myChart.resize()
   })
 }
+const getData2 = () => {
+  zxenergyDataList({ type: activeTab2.value }).then(res => {
+    const result = res.data || []
+    data2.value = result
+    initEnergy()
+  })
+}
+const data3 = ref([])
+const getData3 = () => {
+  zxlastMonthOil().then(res => {
+    const result = res.data || []
+    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([])
+const getData4 = () => {
+  zxloadCurve().then(res => {
+    const result = res.data
+    data4.value = result
+    if (data4.value && data4.value.length > 0) {
+      initLoadReal()
+    }
+  })
+}
+
+const data5 = ref([])
+const getData5 = () => {
+  zxenergyDataList({ type: 2 }).then(res => {
+    const result = res.data
+    data5.value = result
+    initOperation()
+  })
+}
+
+const autoplayFlag = (list = [], leng = 4, time = 2000) => {
+  if (list.length > leng) {
+    return { delay: time, disableOnInteraction: false }
+  } else {
+    return false
+  }
+}
+const loopFn1 = () => {
+  var newSwiper1 = new Swiper('.one-swiper', {
+    initialSlide: 0,
+    direction: 'vertical', //绔栫洿鏂瑰悜
+    slidesPerView: 6,
+    autoplay: autoplayFlag(data3.value, 6, 4000),
+    observer: true, //淇敼swiper鑷繁鎴栧瓙鍏冪礌鏃讹紝鑷姩鍒濆鍖杝wiper
+  })
+}
 
 onMounted(() => {
-  initOperation()
-  initLoadReal()
-  initEnergy()
-}) 
+  getData1()
+  getData2()
+  getData3()
+  getData4()
+  getData5()
+  getData6()
+  setInterval(() => {
+    getData4()
+  }, 1000 * 60)
+  setInterval(() => {
+    getData1()
+    getData2()
+    getData3()
+    getData5()
+    getData6()
+  }, 1000 * 60 * 60)
+
+  setTimeout(() => {
+    loopFn1()
+  }, 12000)
+
+})
 
 
 </script>
@@ -564,37 +748,34 @@
       margin-bottom: 20px;
 
       .content {
-        width: 100%;
-        padding: 24px 5%;
+        height: 164px;
         display: flex;
-        flex-wrap: wrap;
+        align-items: center;
+        justify-content: center;
 
-        .item {
-          width: 33.3%;
-          margin-bottom: 12px;
+        .co2 {
+          width: 100px;
+          margin-right: 30px;
+        }
 
-          .lab {
-            font-size: 14px;
-            color: #ffffff;
-          }
-
-          .val {
-            font-weight: 600;
-            font-size: 20px;
-            color: #01d9fe;
-            margin-top: 4px;
-          }
+        .num {
+          margin-top: 10px;
+          color: #01D9FE;
+          font-weight: 600;
+          font-size: 36px;
+          margin-right: 2px;
         }
       }
     }
 
     .left_box_two {
       margin-bottom: 20px;
-      .load_wrap{
+
+      .load_wrap {
         width: 100%;
-        height: 210px;
-        padding: 12px 12px;
-        .loadRef{
+        height: 250px;
+
+        .loadRef {
           width: 100%;
           height: 100%;
         }
@@ -602,10 +783,11 @@
     }
 
     .left_box_three {
-      .energy_wrap{
+      .energy_wrap {
         width: 100%;
-        height: 200px;
-        .energyRef{
+        height: 250px;
+
+        .energyRef {
           width: 100%;
           height: 100%;
         }
@@ -684,7 +866,6 @@
       height: 544px;
 
       .item {
-        width: 120px;
         height: 112px;
         position: absolute;
         text-align: center;
@@ -707,9 +888,12 @@
         }
 
         .bg {
+          margin: 0 auto;
           width: 120px;
           height: 88px;
           top: 24px;
+          left: 50%;
+          transform: translate(-50%, 0);
         }
       }
 
@@ -754,6 +938,7 @@
         position: absolute;
         text-align: center;
         padding-top: 70px;
+        cursor: pointer;
 
         .num {
           font-size: 24px;
@@ -771,6 +956,13 @@
           font-size: 14px;
           color: #D0FFFA;
         }
+
+        .active {
+          font-size: 36px;
+          color: #01D9FE;
+          font-weight: bold;
+          margin-bottom: 10px;
+        }
       }
 
       .bottom1 {
@@ -787,14 +979,8 @@
         bottom: -0px;
         left: 50%;
         transform: translate(-50%, 0);
-        padding-top: 50px;
+        /* padding-top: 50px; */
 
-        .num {
-          font-size: 36px;
-          color: #01D9FE;
-          line-height: 54px;
-          font-weight: bold;
-        }
       }
     }
   }
@@ -804,6 +990,7 @@
 
     .right_box_one {
       margin-bottom: 20px;
+
       .content {
         height: 164px;
         display: flex;
@@ -824,15 +1011,23 @@
         }
       }
     }
-    .right_box_two{
+
+    .right_box_two {
       margin-bottom: 20px;
-      .list{
-        padding: 20px 24px 4px;
-        .line{
+
+      .list {
+        padding: 0px 24px;
+        height: 228px;
+        margin: 20px 0 0;
+        overflow: auto;
+
+        .line {
           display: flex;
           align-items: center;
-          margin-bottom: 16px;
-          .top{
+          /* margin-bottom: 16px; */
+          height: 38px !important;
+
+          .top {
             font-weight: 500;
             font-size: 12px;
             width: 33px;
@@ -843,19 +1038,28 @@
             box-shadow: inset 0px 0px 3px 0px #01D9FE;
             margin-right: 10px;
           }
-          .id_card{
+
+          .top3 {
+            box-shadow: inset 0px 0px 3px 0px #FEAF01;
+          }
+
+          .id_card {
             color: #DBEAEA;
             font-weight: 500;
-            margin-right: 14px;
-            font-size: 14px;
+            margin-right: 6px;
+            font-size: 13px;
+            width: 68px;
           }
-          .num{
+
+          .num {
             font-weight: 500;
             font-size: 13px;
             color: #DBEAEA;
             margin-left: 15px;
+            width: 40px;
           }
-          .wrap{
+
+          .wrap {
             flex: 1;
             height: 20px;
             border: 1px solid #686B6B;
@@ -863,12 +1067,12 @@
         }
       }
     }
-    .right_box_three{
-      .wrap{
-        padding: 8px;
-        .analyseRef{
+
+    .right_box_three {
+      .wrap {
+        .analyseRef {
           width: 100%;
-          height: 210px;
+          height: 250px;
         }
       }
     }
@@ -909,6 +1113,10 @@
     font-size: 14px;
     color: #d2e0ff;
 
+    .tab {
+      cursor: pointer;
+    }
+
     .separate {
       width: 1px;
       height: 14px;
@@ -946,7 +1154,7 @@
   display: flex;
   justify-content: space-between;
   align-items: center;
-  height: 92px;
+  height: 90px;
   position: relative;
   padding: 0px 40px 16px;
   font-weight: 600;
@@ -962,7 +1170,7 @@
     -webkit-text-fill-color: transparent;
   }
 
-  .time {
+  .time_wrap {
     font-size: 26px;
     font-weight: 600;
     background-image: -webkit-linear-gradient(top,
@@ -976,15 +1184,14 @@
     align-items: center;
 
     .time {
-      width: 180px;
+      width: 130px;
       display: flex;
       justify-content: flex-end;
-      padding-bottom: 10px;
-      font-size: 36px;
+      font-size: 30px;
     }
 
     .week {
-      margin-left: 36px;
+      margin-left: 20px;
     }
   }
 
@@ -1000,8 +1207,8 @@
 }
 
 .main_app {
-  width: 100%;
-  min-height: 100vh;
+  width: 1920px;
+  height: 980px;
   color: #ffffff;
   position: relative;
 

--
Gitblit v1.9.3