From b537c7bccbcc20644902ad6f0e309bbe9a6eda24 Mon Sep 17 00:00:00 2001
From: longyvfengyun <496960745@qq.com>
Date: 星期四, 16 十一月 2023 16:45:41 +0800
Subject: [PATCH] 首页对接数据

---
 src/views/home.vue |  150 +++++++++++++++++++++++++++++++++++++------------
 1 files changed, 113 insertions(+), 37 deletions(-)

diff --git a/src/views/home.vue b/src/views/home.vue
index 17c8fdc..85b8486 100644
--- a/src/views/home.vue
+++ b/src/views/home.vue
@@ -1,10 +1,10 @@
 <script setup>
-import {computed, nextTick, onMounted, reactive, ref} from 'vue';
+import {nextTick, onMounted, reactive, ref} from 'vue';
 import {
 	BaiduMap,
 	BmInfoWindow
 } from "vue-baidu-map-3x";
-import {View, PointLayer, IconLayer, TextLayer} from "mapvgl";
+import {View, IconLayer, TextLayer} from "mapvgl";
 import mapJson from "@/assets/mapJson/map_config";
 import {FullScreen} from "@element-plus/icons-vue";
 import BoxComponent from "@/components/boxComponent.vue";
@@ -89,7 +89,6 @@
 		selectedColor: '#ff0000', // 閫変腑椤归鑹�
 		autoSelect: true, // 鏍规嵁榧犳爣浣嶇疆鏉ヨ嚜鍔ㄨ缃�変腑椤�
 		onClick: (e)=>{
-			console.log(e);
 			if(e.dataIndex !== -1) {
 				const point = e.dataItem.geometry.coordinates;
 				const info = e.dataItem.properties.info;
@@ -102,22 +101,14 @@
 				});
 			}
 		},
-		onDblClick: e => {
-			console.log('double click', e);
-		},
-		onRightClick: e => {
-			console.log('right click', e);
-		}
 	});
 
 	view.addLayer(iconLayer.value);
-
 	searchCarPos();
 }
 
 const searchCarPos = async ()=>{
 	const res = await getCarPosList();
-	console.log(res);
 	let data = res.map(item=>{
 		return {
 			geometry: {
@@ -131,10 +122,8 @@
 			}
 		}
 	});
-
 	textLayer.value.setData(data);
 	iconLayer.value.setData(data);
-
 }
 
 const infoWinOpen = ()=>{}
@@ -142,25 +131,114 @@
 	infoWindow.show = false;
 }
 
+import {
+	recentDaysCarModule,
+	totalCarNumModule
+} from "@/views/moudle/carInfo/carInfoModule";
+
+const {
+	todayCarNum,
+	getRecentDaysCarNum
+} = recentDaysCarModule();
+
+const boxGaugeOption = getGaugeOption(0, 2000, "褰撳墠鍦ㄧ嚎姹借溅鏁�");
+const boxBarOption = getRadiusBarOption();
+const searchRecentDaysCarNum = async ()=>{
+	const data = await getRecentDaysCarNum(7);
+	boxBarOption.series[0].name = "鍦ㄧ嚎杞﹁締鏁帮細"
+	boxBarOption.series[0].data = data.map(item=>{
+		return [new Date(item.date).format("MM-dd"), item.value];
+	});
+	boxBar.value.setOption(boxBarOption);
+	boxGauge.value.setOption(getGaugeOption(todayCarNum.value, 2000, "褰撳墠鍦ㄧ嚎姹借溅鏁�"));
+}
+
+const {
+	totalCarNum,
+	getTotalCarNum
+} = totalCarNumModule();
+
+
+import {
+	recentDaysBattModule,
+	totalBattNumModule
+} from "@/views/moudle/battShow/battInfo"
+
+const battBarOption = getRadiusBarOption();
+const battGaugeOption = getGaugeOption(1, 500, "浠婃棩鏂板鐢垫睜鏁�");
+
+const {
+	todayBattNum,
+	getRecentDaysBattNum
+} = recentDaysBattModule();
+const searchRecentDaysBattNum = async ()=>{
+	const data = await getRecentDaysBattNum(7);
+	battBarOption.series[0].name = "鏂板鐢垫睜缁勬暟锛�";
+	battBarOption.series[0].data = data.map(item=>{
+		return [new Date(item.date).format("MM-dd"), item.value];
+	});
+	battBar.value.setOption(battBarOption);
+	battGauge.value.setOption(getGaugeOption(todayBattNum.value, 500, "浠婃棩鏂板鐢垫睜鏁�"));
+}
+
+const {
+	totalBattNum,
+	getTotalBattNum
+} = totalBattNumModule();
+
+
+import {
+	recentDaysVideoModule,
+	totalVideoNumModule
+} from "@/views/moudle/videoInf/videoInf";
+
+const videoGaugeOption = getGaugeOption(1, 500, "浠婃棩鏂板鎽勫儚澶存暟");
+const videoBarOption = getRadiusBarOption();
+
+const {
+	todayVideoNum,
+	getRecentDaysVideoNum
+} = recentDaysVideoModule();
+const searchRecentDaysVideoNum = async ()=>{
+	const data = await getRecentDaysVideoNum(7);
+	videoBarOption.series[0].name = "鏂板鎽勫儚澶存暟锛�";
+	videoBarOption.series[0].data = data.map(item=>{
+		return [new Date(item.date).format("MM-dd"), item.value];
+	});
+	videoBar.value.setOption(videoBarOption);
+	videoGauge.value.setOption(getGaugeOption(todayVideoNum.value, 500, "浠婃棩鏂板鎽勫儚澶存暟"));
+}
+
+const {
+	totalVideoNum,
+	getTotalVideoNum
+} = totalVideoNumModule();
+
+/**
+ * 鏌ヨ杞﹁締锛岀數姹狅紝鎽勫儚澶达紝鍛婅鐨勫浘琛ㄦ暟鎹�
+ */
+const searchEchartsData = ()=>{
+	searchRecentDaysCarNum();
+	getTotalCarNum();
+
+	searchRecentDaysVideoNum();
+	getTotalVideoNum();
+
+	searchRecentDaysBattNum();
+	getTotalBattNum();
+}
+
 onMounted(()=>{
-
-	const boxGaugeOption = getGaugeOption(10, 90, "浠婃棩鍦ㄧ嚎姹借溅鏁�");
 	boxGauge.value.setOption(boxGaugeOption);
-
-	const boxBarOption = getRadiusBarOption();
 	boxBar.value.setOption(boxBarOption);
 
-	const videoGaugeOption = getGaugeOption(1, 500, "浠婃棩鍦ㄧ嚎鎽勫儚澶存暟");
 	videoGauge.value.setOption(videoGaugeOption);
-
-	const videoBarOption = getRadiusBarOption();
 	videoBar.value.setOption(videoBarOption);
 
-	const battGaugeOption = getGaugeOption(1, 500, "浠婃棩鍦ㄧ嚎鐢垫睜鏁�");
-	battGauge.value.setOption(videoGaugeOption);
+	battGauge.value.setOption(battGaugeOption);
+	battBar.value.setOption(battBarOption);
 
-	const battBarOption = getRadiusBarOption();
-	battBar.value.setOption(videoBarOption);
+	searchEchartsData();
 
 	const alarmBarOption = getHorizontalTechnologyOption();
 	alarmBar.value.setOption(alarmBarOption);
@@ -191,12 +269,12 @@
 										<el-row>
 											<el-col :span="12">
 												<div class="box-value-wrapper">
-													<div class="text-content">浠婃棩鍦ㄧ嚎姹借溅鏁�:</div>
-													<div class="text-value">0</div>
+													<div class="text-content">褰撳墠鍦ㄧ嚎姹借溅鏁�:</div>
+													<div class="text-value">{{todayCarNum}}</div>
 												</div>
 												<div class="box-value-wrapper">
 													<div class="text-content">姹借溅鎬绘暟:</div>
-													<div class="text-value">0</div>
+													<div class="text-value">{{totalCarNum}}</div>
 												</div>
 											</el-col>
 											<el-col :span="12">
@@ -221,12 +299,12 @@
 										<el-row>
 											<el-col :span="12">
 												<div class="box-value-wrapper">
-													<div class="text-content">浠婃棩鍦ㄧ嚎鎽勫儚澶存暟:</div>
-													<div class="text-value">0</div>
+													<div class="text-content">浠婃棩鏂板鎽勫儚澶存暟:</div>
+													<div class="text-value">{{todayVideoNum}}</div>
 												</div>
 												<div class="box-value-wrapper">
 													<div class="text-content">鎽勫儚澶存�绘暟:</div>
-													<div class="text-value">0</div>
+													<div class="text-value">{{ totalVideoNum }}</div>
 												</div>
 											</el-col>
 											<el-col :span="12">
@@ -237,7 +315,7 @@
 										</el-row>
 									</div>
 									<div class="content-inner-body">
-										<chart-box title="鏈�杩�7澶╁湪绾挎憚鍍忓ご鏁�">
+										<chart-box title="鏈�杩�7澶╂柊澧炴憚鍍忓ご鏁�">
 											<hdw-chart ref="videoBar"></hdw-chart>
 										</chart-box>
 									</div>
@@ -255,12 +333,12 @@
 										<el-row>
 											<el-col :span="12">
 												<div class="box-value-wrapper">
-													<div class="text-content">浠婃棩鍦ㄧ數姹犳暟:</div>
-													<div class="text-value">0</div>
+													<div class="text-content">浠婃棩鏂板鐢垫睜鏁�:</div>
+													<div class="text-value">{{todayBattNum}}</div>
 												</div>
 												<div class="box-value-wrapper">
 													<div class="text-content">鐢垫睜鎬绘暟:</div>
-													<div class="text-value">0</div>
+													<div class="text-value">{{totalBattNum}}</div>
 												</div>
 											</el-col>
 											<el-col :span="12">
@@ -271,7 +349,7 @@
 										</el-row>
 									</div>
 									<div class="content-inner-body">
-										<chart-box title="鏈�杩�7澶╁湪绾跨數姹犳暟">
+										<chart-box title="鏈�杩�7澶╂柊澧炵數姹犳暟">
 											<hdw-chart ref="battBar"></hdw-chart>
 										</chart-box>
 									</div>
@@ -298,9 +376,7 @@
 						<car-info-list :infos="infoWindow.content"></car-info-list>
 					</bm-info-window>
 				</baidu-map>
-				{{infoWindow}}
 			</div>
-			{{infoWindow}}
 		</div>
 
 	</div>

--
Gitblit v1.9.1