|
|
@@ -19,11 +19,11 @@
|
|
|
<div class="left_bottom" ref="eleValueDom">{{ eleValue }}</div>
|
|
|
</div>
|
|
|
<div class="energy_box_right">
|
|
|
- <div class="right_top">增速</div>
|
|
|
+ <!-- <div class="right_top">增速</div>
|
|
|
<div class="right_bottom">
|
|
|
<div ref="eleSpeedDom">{{ eleSpeed }}</div>
|
|
|
<span>%</span>
|
|
|
- </div>
|
|
|
+ </div> -->
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
@@ -37,11 +37,11 @@
|
|
|
<div class="left_bottom" ref="waterValueDom">{{ waterValue }}</div>
|
|
|
</div>
|
|
|
<div class="energy_box_right">
|
|
|
- <div class="right_top">增速</div>
|
|
|
+ <!-- <div class="right_top">增速</div>
|
|
|
<div class="right_bottom">
|
|
|
<div ref="waterSpeedDom">{{ waterSpeed }}</div>
|
|
|
<span>%</span>
|
|
|
- </div>
|
|
|
+ </div> -->
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
@@ -100,30 +100,35 @@
|
|
|
import { ref, onMounted } from "vue";
|
|
|
import * as Echarts from "echarts";
|
|
|
import { countUpNum } from "@/utils/countUpNum";
|
|
|
-import { reqGetEnergyAll, reqGetEnergyevenly } from "@/api/energy/index";
|
|
|
+// 引入能耗管理相关的接口
|
|
|
+import {
|
|
|
+ reqGetEnergyAll,
|
|
|
+ reqGetEnergyevenly,
|
|
|
+ reqGetEnergyMonth,
|
|
|
+} from "@/api/energy/index";
|
|
|
|
|
|
// 用电总量
|
|
|
-const eleValue = ref(888.88);
|
|
|
+const eleValue = ref();
|
|
|
const eleValueDom = ref();
|
|
|
|
|
|
// 用电速率
|
|
|
-const eleSpeed = ref(10.06);
|
|
|
-const eleSpeedDom = ref();
|
|
|
+// const eleSpeed = ref(10.06);
|
|
|
+// const eleSpeedDom = ref();
|
|
|
|
|
|
// 用水总量
|
|
|
-const waterValue = ref(88.88);
|
|
|
+const waterValue = ref();
|
|
|
const waterValueDom = ref();
|
|
|
|
|
|
// 用水速率
|
|
|
-const waterSpeed = ref(10.06);
|
|
|
-const waterSpeedDom = ref();
|
|
|
+// const waterSpeed = ref(10.06);
|
|
|
+// const waterSpeedDom = ref();
|
|
|
|
|
|
// 人均用电量
|
|
|
-const eleValueAv = ref(88.88);
|
|
|
+const eleValueAv = ref(0);
|
|
|
const eleValueAvDom = ref();
|
|
|
|
|
|
// 人均用水量
|
|
|
-const waterValueAv = ref(38.88);
|
|
|
+const waterValueAv = ref(0);
|
|
|
const waterValueAvDom = ref();
|
|
|
|
|
|
// 区域能耗统计图表实例
|
|
|
@@ -131,6 +136,21 @@ let myBarChart: any;
|
|
|
// 区域能耗统计图表DOM
|
|
|
const barChart = ref(null);
|
|
|
|
|
|
+// 图表x轴数据
|
|
|
+const Xdata = ref<any>([]);
|
|
|
+
|
|
|
+// 地点数组
|
|
|
+const placeList = ref<any>([]);
|
|
|
+
|
|
|
+// 探问楼数据
|
|
|
+const chartData = ref<any>([]);
|
|
|
+
|
|
|
+// 探理楼数据
|
|
|
+const chartData2 = ref<any>([]);
|
|
|
+
|
|
|
+// 探学楼数据
|
|
|
+const chartData3 = ref<any>([]);
|
|
|
+
|
|
|
// 默认选中按钮
|
|
|
const currentIndex = ref("水");
|
|
|
|
|
|
@@ -141,30 +161,95 @@ onMounted(() => {
|
|
|
// 能耗统计(平均)信息接口地址
|
|
|
getEnergyevenly();
|
|
|
|
|
|
- // 初始化区域能耗统计图表
|
|
|
- initBarChart();
|
|
|
-
|
|
|
- // 让数字跳动
|
|
|
- getCountUpNum();
|
|
|
+ // 获取区域能耗统计数据
|
|
|
+ getChartData();
|
|
|
});
|
|
|
|
|
|
// 获取能耗统计(总量)信息
|
|
|
const getEnergyAll = async () => {
|
|
|
const res = await reqGetEnergyAll();
|
|
|
// console.log(res);
|
|
|
+ if ((res as any).code == 200) {
|
|
|
+ res.data.forEach((ele: any) => {
|
|
|
+ if (ele.name === "用电量") {
|
|
|
+ eleValue.value = ele.num;
|
|
|
+ }
|
|
|
+ if (ele.name === "用水量") {
|
|
|
+ waterValue.value = ele.num;
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ // 让数字跳动
|
|
|
+ countUpNum(eleValueDom.value, eleValue.value, 2);
|
|
|
+ countUpNum(waterValueDom.value, waterValue.value, 2);
|
|
|
+ }
|
|
|
};
|
|
|
|
|
|
// 能耗统计(平均)信息接口地址
|
|
|
const getEnergyevenly = async () => {
|
|
|
const res = await reqGetEnergyevenly();
|
|
|
// console.log(res);
|
|
|
+
|
|
|
+ if ((res as any).code == 200) {
|
|
|
+ res.data.forEach((ele: any) => {
|
|
|
+ if (ele.name === "用电量") {
|
|
|
+ eleValueAv.value = ele.num;
|
|
|
+ }
|
|
|
+ if (ele.name === "用水量") {
|
|
|
+ waterValueAv.value = ele.num;
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ // 让数字跳动
|
|
|
+ countUpNum(eleValueAvDom.value, eleValueAv.value, 2);
|
|
|
+ countUpNum(waterValueAvDom.value, waterValueAv.value, 2);
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+// 获取区域能耗统计数据
|
|
|
+const getChartData = async () => {
|
|
|
+ const res = await reqGetEnergyMonth({
|
|
|
+ type: currentIndex.value === "水" ? 0 : 1,
|
|
|
+ });
|
|
|
+ // console.log(res);
|
|
|
+ if ((res as any).code == 200) {
|
|
|
+ res.data.forEach((ele: any) => {
|
|
|
+ // 获取图表x轴数据
|
|
|
+ Xdata.value.push(ele.month.slice(-2) + "月");
|
|
|
+
|
|
|
+ // 获取图表Y轴数据
|
|
|
+ ele.data.forEach((item: any) => {
|
|
|
+ if (item.name === "探问楼") {
|
|
|
+ chartData.value.push(item.num);
|
|
|
+ } else if (item.name === "探理楼") {
|
|
|
+ chartData2.value.push(item.num);
|
|
|
+ } else if (item.name === "探学楼") {
|
|
|
+ chartData3.value.push(item.num);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ // 获取地点数组
|
|
|
+ res.data[0].data.forEach((ele: any) => {
|
|
|
+ placeList.value.push(ele.name);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ // 初始化区域能耗统计图表
|
|
|
+ initBarChart();
|
|
|
};
|
|
|
|
|
|
// 点击水 按钮回调
|
|
|
const handleClickWater = () => {
|
|
|
if (currentIndex.value !== "水") {
|
|
|
currentIndex.value = "水";
|
|
|
- initBarChart();
|
|
|
+ // 清空数据重新请求
|
|
|
+ placeList.value = [];
|
|
|
+ Xdata.value = [];
|
|
|
+ chartData.value = [];
|
|
|
+ chartData2.value = [];
|
|
|
+ chartData3.value = [];
|
|
|
+ myBarChart.dispose();
|
|
|
+ getChartData();
|
|
|
}
|
|
|
};
|
|
|
|
|
|
@@ -172,7 +257,14 @@ const handleClickWater = () => {
|
|
|
const handleClickEle = () => {
|
|
|
if (currentIndex.value !== "电") {
|
|
|
currentIndex.value = "电";
|
|
|
- initBarChart();
|
|
|
+ // 清空数据重新请求
|
|
|
+ placeList.value = [];
|
|
|
+ Xdata.value = [];
|
|
|
+ chartData.value = [];
|
|
|
+ chartData2.value = [];
|
|
|
+ chartData3.value = [];
|
|
|
+ myBarChart.dispose();
|
|
|
+ getChartData();
|
|
|
}
|
|
|
};
|
|
|
|
|
|
@@ -188,7 +280,7 @@ const initBarChart = () => {
|
|
|
},
|
|
|
},
|
|
|
legend: {
|
|
|
- data: ["教学楼", "行政楼", "报告厅", "食堂"],
|
|
|
+ data: placeList.value,
|
|
|
top: 45,
|
|
|
right: 22,
|
|
|
textStyle: {
|
|
|
@@ -210,7 +302,7 @@ const initBarChart = () => {
|
|
|
axisLabel: {
|
|
|
color: "#fff",
|
|
|
},
|
|
|
- data: ["7月", "8月", "9月", "10月", "11月", "12月"],
|
|
|
+ data: Xdata.value,
|
|
|
},
|
|
|
],
|
|
|
yAxis: [
|
|
|
@@ -231,54 +323,35 @@ const initBarChart = () => {
|
|
|
],
|
|
|
series: [
|
|
|
{
|
|
|
- name: "教学楼",
|
|
|
+ name: placeList.value[0],
|
|
|
type: "bar",
|
|
|
barGap: 0,
|
|
|
emphasis: {
|
|
|
focus: "series",
|
|
|
},
|
|
|
- data: [320, 332, 301, 334, 390, 360],
|
|
|
+ data: chartData.value,
|
|
|
},
|
|
|
{
|
|
|
- name: "行政楼",
|
|
|
+ name: placeList.value[1],
|
|
|
type: "bar",
|
|
|
|
|
|
emphasis: {
|
|
|
focus: "series",
|
|
|
},
|
|
|
- data: [220, 182, 191, 234, 290, 390],
|
|
|
+ data: chartData2.value,
|
|
|
},
|
|
|
{
|
|
|
- name: "报告厅",
|
|
|
+ name: placeList.value[2],
|
|
|
type: "bar",
|
|
|
-
|
|
|
emphasis: {
|
|
|
focus: "series",
|
|
|
},
|
|
|
- data: [150, 232, 201, 154, 190, 370],
|
|
|
- },
|
|
|
- {
|
|
|
- name: "食堂",
|
|
|
- type: "bar",
|
|
|
- emphasis: {
|
|
|
- focus: "series",
|
|
|
- },
|
|
|
- data: [98, 77, 101, 99, 40, 390],
|
|
|
+ data: chartData3.value,
|
|
|
},
|
|
|
],
|
|
|
};
|
|
|
myBarChart.setOption(options);
|
|
|
};
|
|
|
-
|
|
|
-// 让数字跳动
|
|
|
-const getCountUpNum = () => {
|
|
|
- countUpNum(eleValueDom.value, eleValue.value, 2);
|
|
|
- countUpNum(waterValueDom.value, waterValue.value, 2);
|
|
|
- countUpNum(eleSpeedDom.value, eleSpeed.value, 2);
|
|
|
- countUpNum(waterSpeedDom.value, waterSpeed.value, 2);
|
|
|
- countUpNum(eleValueAvDom.value, eleValueAv.value, 2);
|
|
|
- countUpNum(waterValueAvDom.value, waterValueAv.value, 2);
|
|
|
-};
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|