From c3aaf28f7316cce12eec007a9f85a96cbcddeec2 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 07 五月 2025 10:34:20 +0800
Subject: [PATCH] 最新版本541200007
---
screen/src/views/EnergyConsum.vue | 463 +++++++++++++++++++++++++++++++++++++++++----------------
1 files changed, 330 insertions(+), 133 deletions(-)
diff --git a/screen/src/views/EnergyConsum.vue b/screen/src/views/EnergyConsum.vue
index b51bc3d..33a6337 100644
--- a/screen/src/views/EnergyConsum.vue
+++ b/screen/src/views/EnergyConsum.vue
@@ -3,7 +3,7 @@
<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="" />
+ <img src="@/assets/images/maintitle.gif" class="main_header_bg" alt="" />
<div class="title">瀹夋嘲鏅烘収鐗╂祦鍥尯-缁胯壊浣庣⒊杩愯惀</div>
<div class="time_wrap">
<span class="date">{{ date }}</span>
@@ -25,8 +25,9 @@
<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()
- }}</span><span>鍙�</span></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>
@@ -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.sameNum && data1.electricityQuantity.sameNum != 0">{{
+ Math.abs(((data1.electricityQuantity.totalNum -
+ data1.electricityQuantity.sameNum) / data1.electricityQuantity.sameNum * 100).toFixed(1))
+ }}%</span>
+ <span class="val" v-else style="margin-left: 4px;"> -</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.ringNum && data1.electricityQuantity.ringNum != 0">{{
+ Math.abs(((data1.electricityQuantity.totalNum -
+ data1.electricityQuantity.ringNum) / data1.electricityQuantity.ringNum * 100).toFixed(1))
+ }}%</span>
+ <span class="val" v-else style="margin-left: 4px;"> -</span>
</div>
</div>
<div class="item">
@@ -88,82 +107,115 @@
<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>
+ <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>
- <img class="icon" src="@/assets/images/ic_down.webp" alt="" />
- <span class="val">{{ data1.waterYear }}</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="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" v-if="data1.gasQuantity || data1.gasQuantity == 0">{{ data1.gasQuantity.toLocaleString() }}</div>
+ <div class="name">涓婃湀鐢ㄦ皵(m鲁)</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.sameNum && data1.gasQuantity.sameNum != 0">{{
+ Math.abs(((data1.gasQuantity.totalNum - data1.gasQuantity.sameNum) / data1.gasQuantity.sameNum
+ * 100).toFixed(1))
+ }}%</span>
+ <span class="val" v-else style="margin-left: 4px;">-</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.ringNum && data1.gasQuantity.ringNum != 0">{{
+ Math.abs(((data1.gasQuantity.totalNum - data1.gasQuantity.ringNum) / data1.gasQuantity.ringNum
+ * 100).toFixed(1))
+ }}%</span>
+ <span class="val" v-else style="margin-left: 4px;">-</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">
- <div class="bottom bottom1">
- <div class="num fs_linear">{{ data1.yesterdayElectricity || 0 }}</div>
+ <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">{{ dataObj6.obj1.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="" />
+ <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">
- <div class="num">{{ data1.todayElectricity || 0 }}</div>
+ <div class="bottom bottom2" @click="changeacDay(1)">
+ <div :class="{ active: activeDays == 1 }" class="num">{{ dataObj6.obj2.total || 0 }}</div>
<div class="name">浠婃棩鐢ㄧ數</div>
<div class="unit">kw路h</div>
- <img src="@/assets/images/ic_dianliang@2x.png" class="bg" alt="" />
+ <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">
- <div class="num fs_linear">{{ data1.monthElectricity || 0 }}</div>
+ <div class="bottom bottom3" @click="changeacDay(2)">
+ <div :class="{ active: activeDays == 2 }" class="num fs_linear">{{ dataObj6.obj3.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="" />
+ <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>
@@ -181,7 +233,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 +248,20 @@
<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 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 class="num">{{ item.quantity }}</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="right_box_three">
@@ -230,11 +288,15 @@
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'
@@ -279,19 +341,40 @@
xAxis: {
type: 'category',
boundaryGap: false,
- data: data5.value.map(i => i.timeData)
+ axisLabel: {
+ color: '#D2E0FF'
+ },
+ data: data5.value.map(i => dayjs(i.timeData).format('M'))
},
+ // tooltip: {
+ // trigger: 'axis',
+ // axisPointer: {
+ // type: 'line'
+ // },
+ // },
tooltip: {
trigger: 'axis',
- axisPointer: {
- type: 'line'
- },
+ formatter: function (params) {
+ // 閬嶅巻鎮诞鏃剁殑鎵�鏈夌偣锛屽畾鍒跺寲鏄剧ず鍐呭
+ let result = `<div>
+ <div style="width: 120px">${params[0].name}鏈�</div>
+ <div style="display: flex;align-items: center;;margin-top: 2px;">
+ <div style="display: flex;align-items: center;"><div style="width: 10px;height: 10px; border-radius: 50%;background-color: #f6d047;margin-right: 6px;"></div></div>
+ <div><strong>${params[0].value} L</strong></div>
+ </div>
+ </div>`
+ return result
+ }
},
yAxis: {
type: 'value',
name: '鍗曚綅锛歀',
+ axisLabel: {
+ color: '#D2E0FF'
+ },
nameTextStyle: {
- padding: [0, 0, 0, -16] // 鍥涗釜鏁板瓧鍒嗗埆涓轰笂鍙充笅宸︿笌鍘熶綅缃窛绂�
+ color: '#D2E0FF',
+ padding: [0, 0, 0, -18] // 鍥涗釜鏁板瓧鍒嗗埆涓轰笂鍙充笅宸︿笌鍘熶綅缃窛绂�
},
splitLine: {
show: true,
@@ -304,7 +387,7 @@
}
},
grid: {
- top: '26%',
+ top: '22%',
left: '4%',
right: '6%',
bottom: '2%',
@@ -396,13 +479,17 @@
xAxis: {
type: 'category',
boundaryGap: false,
+ 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,
@@ -412,10 +499,13 @@
type: 'dashed',
},
splitNumber: 4
+ },
+ axisLabel: {
+ color: '#D2E0FF'
}
},
grid: {
- top: '26%',
+ top: '18%',
left: '4%',
right: '2%',
bottom: '2%',
@@ -474,12 +564,83 @@
myChart.resize()
})
}
+
+const data1 = ref({})
+const getData1 = () => {
+ zxcenterData().then(res => {
+ const result = res.data || {}
+ data1.value = result
+ })
+}
+const activeDays = ref('1')
+const data6 = ref([])
+const dataObj6 = ref({
+ obj1: { total: 0 },
+ obj2: { total: 0 },
+ obj3: { total: 0 },
+})
+const changeacDay = (val) => {
+ activeDays.value = val
+ if (val == 3) {
+ data6.value = dataObj6.value.obj1.list
+ } else if (val == 1) {
+ data6.value = dataObj6.value.obj2.list
+ } else {
+ data6.value = dataObj6.value.obj3.list
+ }
+}
+
+const getData6 = () => {
+ let obj = {
+ obj1: { list: [], total: 0 },
+ obj2: { list: [], total: 0 },
+ obj3: { list: [], total: 0 },
+ }
+ regionDataRanking({ type: 3 }).then(res => {
+ let arr = res.data || []
+ obj.obj1.list = arr
+ arr.forEach(i => {
+ obj.obj1.total += Number(i.value)
+ })
+ obj.obj1.total = obj.obj1.total.toFixed(1)
+ dataObj6.value = obj
+ })
+ regionDataRanking({ type: 1 }).then(res => {
+ let arr = res.data || []
+ obj.obj2.list = arr
+ arr.forEach(i => {
+ obj.obj2.total += Number(i.value)
+ })
+ obj.obj2.total = obj.obj2.total.toFixed(1)
+ dataObj6.value = obj
+ changeacDay(1)
+ })
+ regionDataRanking({ type: 2 }).then(res => {
+ let arr = res.data || []
+ obj.obj3.list = arr
+ arr.forEach(i => {
+ obj.obj3.total += Number(i.value)
+ })
+ obj.obj3.total = obj.obj3.total.toFixed(1)
+ dataObj6.value = obj
+ })
+}
+
+
+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%',
+ top: '20%',
left: '6%',
right: '2%',
bottom: '4%',
@@ -487,18 +648,33 @@
},
tooltip: {
trigger: 'axis',
- axisPointer: {
- type: 'line'
- },
+ formatter: function (params) {
+ // 閬嶅巻鎮诞鏃剁殑鎵�鏈夌偣锛屽畾鍒跺寲鏄剧ず鍐呭
+ let result = `<div>
+ <div style="width: 120px">${params[0].name}鏈�</div>
+ <div style="display: flex;align-items: center;;margin-top: 2px;">
+ <div style="display: flex;align-items: center;"><div style="width: 10px;height: 10px; border-radius: 50%;background-color: #61a1c4;margin-right: 6px;"></div></div>
+ <div><strong>${params[0].value} </strong></div>
+ </div>
+ </div>`
+ return result
+ }
},
xAxis: {
type: 'category',
- data: data2.value.map(i => i.timeData)
+ axisLabel: {
+ color: '#D2E0FF'
+ },
+ data: data2.value.map(i => dayjs(i.timeData).format('M'))
},
yAxis: {
type: 'value',
- name: '鍗曚綅锛歬w路h',
+ name: unit,
+ axisLabel: {
+ color: '#D2E0FF'
+ },
nameTextStyle: {
+ color: '#D2E0FF',
padding: [0, 0, 4, -30] // 鍥涗釜鏁板瓧鍒嗗埆涓轰笂鍙充笅宸︿笌鍘熶綅缃窛绂�
},
splitLine: {
@@ -533,69 +709,61 @@
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([])
const getData4 = () => {
zxloadCurve().then(res => {
- const result = res.data
+ 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 => {
- const result = res.data
+ 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
})
}
@@ -605,6 +773,21 @@
getData3()
getData4()
getData5()
+ getData6()
+ setInterval(() => {
+ getData4()
+ }, 1000 * 60)
+ setInterval(() => {
+ getData1()
+ getData2()
+ getData3()
+ getData5()
+ getData6()
+ }, 1000 * 60 * 60)
+
+ setTimeout(() => {
+ loopFn1()
+ }, 12000)
})
@@ -742,7 +925,6 @@
height: 544px;
.item {
- width: 120px;
height: 112px;
position: absolute;
text-align: center;
@@ -765,9 +947,12 @@
}
.bg {
+ margin: 0 auto;
width: 120px;
height: 88px;
top: 24px;
+ left: 50%;
+ transform: translate(-50%, 0);
}
}
@@ -807,11 +992,12 @@
}
.bottom {
- width: 140px;
+ width: 150px;
height: 194px;
position: absolute;
text-align: center;
padding-top: 70px;
+ cursor: pointer;
.num {
font-size: 24px;
@@ -829,6 +1015,13 @@
font-size: 14px;
color: #D0FFFA;
}
+
+ .active {
+ font-size: 36px;
+ color: #01D9FE;
+ font-weight: bold;
+ margin-bottom: 10px;
+ }
}
.bottom1 {
@@ -845,14 +1038,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;
- }
}
}
}
@@ -888,12 +1075,16 @@
margin-bottom: 20px;
.list {
- padding: 20px 24px 4px;
+ padding: 0px 24px;
+ height: 228px;
+ margin: 20px 0 0;
+ overflow: auto;
.line {
display: flex;
align-items: center;
- margin-bottom: 16px;
+ /* margin-bottom: 16px; */
+ height: 38px !important;
.top {
font-weight: 500;
@@ -907,11 +1098,16 @@
margin-right: 10px;
}
+ .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 {
@@ -919,6 +1115,7 @@
font-size: 13px;
color: #DBEAEA;
margin-left: 15px;
+ width: 40px;
}
.wrap {
--
Gitblit v1.9.3