From 6e88705bd5b443a259b24c17c8a299765d059d96 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Thu, 23 Jul 2026 16:50:41 +0800
Subject: [PATCH] Merge branch 'master' of http://139.196.74.78:10010/r/jagzwxm/ja_web

---
 applications/drone-command/src/views/dataCockpit/components/CenterContainer.vue |   68 ++++++++++++++++++++++++++-------
 1 files changed, 53 insertions(+), 15 deletions(-)

diff --git a/applications/drone-command/src/views/dataCockpit/components/CenterContainer.vue b/applications/drone-command/src/views/dataCockpit/components/CenterContainer.vue
index 87ce805..9e43ad3 100644
--- a/applications/drone-command/src/views/dataCockpit/components/CenterContainer.vue
+++ b/applications/drone-command/src/views/dataCockpit/components/CenterContainer.vue
@@ -25,7 +25,7 @@
 
 			<div class="list">
 				<div class="item" v-for="(item, ind) in equipmentList" :key="ind">
-					<div class="val" :class="{highlight: item.isHighlight}" @click="equipmentClick(item.isHighlight)">
+					<div class="val" :class="{ highlight: item.isHighlight }" @click="equipmentClick(item.isHighlight)">
 						{{ item.value }}
 					</div>
 
@@ -39,57 +39,80 @@
 </template>
 
 <script setup>
-import { ref } from 'vue'
+import { onMounted, ref } from 'vue'
 import warningLogo from '@/assets/images/dataCockpit/warning.png'
 import equipmentLogo from '@/assets/images/dataCockpit/equipment.png'
+import { alarmStatisticsApi } from '@/api/dataCockpit'
 
-let warningList = ref([
+const warningList = ref([
 	{
 		title: '实时告警',
-		value: 56,
+		value: 0,
 		type: 1
 	},
 	{
 		title: '设备告警',
-		value: 127,
+		value: 0,
 		type: 2
 	},
 	{
 		title: '历史告警',
-		value: 619,
+		value: 0,
 		type: 3
 	},
 ])
 
-let equipmentList = ref([
+const equipmentList = ref([
 	{
 		title: '设备统计',
-		value: 18,
+		value: 0,
 		isHighlight: true,
 	},
 	{
 		title: '无线电',
-		value: 9,
+		value: 0,
 	},
 	{
 		title: '光电',
-		value: 6,
+		value: 0,
 	},
 	{
 		title: '雷达',
-		value: 3,
+		value: 0,
 	}
 ])
 
+const emit = defineEmits(['select-warning', 'select-equipment'])
+
 const warningTypeClick = (type) => {
-	console.log('点击了告警类型:', type)
+	emit('select-warning', type)
 }
 
 const equipmentClick = (isHighlight) => {
 	if (isHighlight) {
-		console.log('点击了设备统计')
+		emit('select-equipment')
 	}
 }
+
+const updateStats = async () => {
+	const res = await alarmStatisticsApi()
+	const data = res?.data?.data || {}
+	warningList.value = [
+		{ title: '实时告警', value: data.realTimeAlarmCount ?? 0, type: 1 },
+		{ title: '设备告警', value: data.deviceAlarmCount ?? 0, type: 2 },
+		{ title: '历史告警', value: data.historyAlarmCount ?? 0, type: 3 }
+	]
+	equipmentList.value = [
+		{ title: '设备统计', value: data.deviceCount ?? 0, isHighlight: true },
+		{ title: '无线电', value: data.radioCount ?? 0 },
+		{ title: '光电', value: data.opticalCount ?? 0 },
+		{ title: '雷达', value: data.radarCount ?? 0 }
+	]
+}
+
+onMounted(() => {
+	updateStats()
+})
 </script>
 
 <style lang="scss" scoped>
@@ -130,14 +153,29 @@
 
 	.left-box,
 	.right-box {
+		position: relative;
 		padding: 17px 20px;
 		display: flex;
 		align-items: center;
 		height: 100px;
-		background: #05050F;
+		background: rgba(0, 0, 0, 0.3);
 		box-sizing: border-box;
 		border-radius: 16px 16px 16px 16px;
 		pointer-events: auto;
+
+		&::after {
+			content: '';
+			position: absolute;
+			top: 0;
+			left: 0;
+			width: 100%;
+			height: 100%;
+			z-index: -1;
+			background: rgba(17, 23, 34, 0.56);
+			backdrop-filter: blur(2px);
+			border-radius: 16px 16px 16px 16px;
+		}
+
 
 		.logo {
 			img {
@@ -170,7 +208,7 @@
 				}
 
 				.val {
-					font-family: Source Han Sans CN, Source Han Sans CN;
+					font-family: DinAB;
 					font-weight: bold;
 					font-size: 30px;
 					text-align: left;

--
Gitblit v1.9.3