From 31b028f962e1cfe4c1ef91c706a90fd3aa983533 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Wed, 07 Jan 2026 18:03:12 +0800
Subject: [PATCH] feat:数据驾驶舱基础页面搭建
---
applications/drone-command/src/views/dataCockpit/components/RightContainer.vue | 6
applications/drone-command/src/page/index/top/index.vue | 2
applications/drone-command/src/styles/sidebar.scss | 3
applications/drone-command/src/assets/images/dataCockpit/equipment.png | 0
applications/drone-command/src/assets/images/dataCockpit/warning.png | 0
applications/drone-command/src/views/dataCockpit/components/LeftContainer.vue | 6
applications/drone-command/src/views/dataCockpit/index.vue | 47 ++++++++
applications/drone-command/src/views/dataCockpit/components/CenterContainer.vue | 188 +++++++++++++++++++++++++++++++++++++
8 files changed, 243 insertions(+), 9 deletions(-)
diff --git a/applications/drone-command/src/assets/images/dataCockpit/equipment.png b/applications/drone-command/src/assets/images/dataCockpit/equipment.png
new file mode 100644
index 0000000..afae523
--- /dev/null
+++ b/applications/drone-command/src/assets/images/dataCockpit/equipment.png
Binary files differ
diff --git a/applications/drone-command/src/assets/images/dataCockpit/warning.png b/applications/drone-command/src/assets/images/dataCockpit/warning.png
new file mode 100644
index 0000000..a1af17e
--- /dev/null
+++ b/applications/drone-command/src/assets/images/dataCockpit/warning.png
Binary files differ
diff --git a/applications/drone-command/src/page/index/top/index.vue b/applications/drone-command/src/page/index/top/index.vue
index be12e2b..8554741 100644
--- a/applications/drone-command/src/page/index/top/index.vue
+++ b/applications/drone-command/src/page/index/top/index.vue
@@ -117,6 +117,7 @@
justify-content: space-between;
height: 100%;
background: url('@/assets/images/topContainer/top-bg.png') center / 100% 100% no-repeat !important;
+ pointer-events: none;
}
.top-bar__left {
@@ -157,6 +158,7 @@
display: flex !important;
align-items: center;
height: 100%;
+ pointer-events: auto;
.icon-box {
display: flex;
diff --git a/applications/drone-command/src/styles/sidebar.scss b/applications/drone-command/src/styles/sidebar.scss
index 1065933..2b39cc4 100644
--- a/applications/drone-command/src/styles/sidebar.scss
+++ b/applications/drone-command/src/styles/sidebar.scss
@@ -83,9 +83,10 @@
top: 0;
left: 0;
bottom: 0;
- width: 4px;
+ width: 2px;
background: #0041FF;
position: absolute;
+ border-right: 1px solid #1D56FF;
}
background-color: rgba(0, 0, 0, .8);
diff --git a/applications/drone-command/src/views/dataCockpit/components/CenterContainer.vue b/applications/drone-command/src/views/dataCockpit/components/CenterContainer.vue
index f59947f..3545362 100644
--- a/applications/drone-command/src/views/dataCockpit/components/CenterContainer.vue
+++ b/applications/drone-command/src/views/dataCockpit/components/CenterContainer.vue
@@ -1,13 +1,199 @@
<template>
- <div>
+ <div class="center-container">
+ <div class="left-box">
+ <div class="logo">
+ <img :src="warningLogo" alt="">
+ </div>
+ <div class="list">
+ <div class="item" v-for="item, ind in warningList" :key="ind">
+ <div class="val" @click="warningTypeClick(item.type)">
+ {{ item.value }}
+ </div>
+
+ <div class="name">
+ {{ item.title }}
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div class="right-box">
+ <div class="logo">
+ <img :src="equipmentLogo" alt="">
+ </div>
+
+ <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)">
+ {{ item.value }}
+ </div>
+
+ <div class="name">
+ {{ item.title }}
+ </div>
+ </div>
+ </div>
+ </div>
</div>
</template>
<script setup>
+import warningLogo from '@/assets/images/dataCockpit/warning.png'
+import equipmentLogo from '@/assets/images/dataCockpit/equipment.png'
+
+let warningList = ref([
+ {
+ title: '实时告警',
+ value: 56,
+ type: 1
+ },
+ {
+ title: '设备告警',
+ value: 127,
+ type: 2
+ },
+ {
+ title: '历史告警',
+ value: 619,
+ type: 3
+ },
+])
+
+let equipmentList = ref([
+ {
+ title: '设备统计',
+ value: 18,
+ isHighlight: true,
+ },
+ {
+ title: '无线电',
+ value: 9,
+ },
+ {
+ title: '光电',
+ value: 6,
+ },
+ {
+ title: '雷达',
+ value: 3,
+ }
+])
+
+const warningTypeClick = (type) => {
+ console.log('点击了告警类型:', type);
+}
+
+const equipmentClick = (isHighlight) => {
+ if (isHighlight) {
+ console.log('点击了设备统计');
+ }
+}
</script>
<style lang="scss" scoped>
+.center-container {
+ display: flex;
+ position: absolute;
+ top: 75px;
+ left: 465px;
+ z-index: 9;
+ pointer-events: none;
+ .left-box {
+ width: 356px;
+
+ .list {
+ .item {
+ .val {
+ color: #FF4444;
+ cursor: pointer;
+ }
+ }
+ }
+ }
+
+ .right-box {
+ margin-left: 20px;
+ width: 455px;
+
+ .list {
+ .item {
+ .val.highlight {
+ color: #6382FF;
+ cursor: pointer;
+ }
+ }
+ }
+ }
+
+ .left-box,
+ .right-box {
+ padding: 17px 20px;
+ display: flex;
+ align-items: center;
+ height: 100px;
+ background: #05050F;
+ box-sizing: border-box;
+ border-radius: 16px 16px 16px 16px;
+ pointer-events: auto;
+
+ .logo {
+ img {
+ width: 40px;
+ height: 40px;
+ }
+ }
+
+ .list {
+ width: 0;
+ flex: 1;
+ height: 100%;
+ display: flex;
+
+ .item {
+ width: 0;
+ flex: 1;
+ position: relative;
+ padding-left: 20px;
+ color: #fff;
+
+ .name {
+ font-family: Open Sans, Open Sans;
+ font-weight: 400;
+ font-size: 14px;
+ color: #FFFFFF;
+ text-align: left;
+ font-style: normal;
+ text-transform: none;
+ }
+
+ .val {
+ font-family: Source Han Sans CN, Source Han Sans CN;
+ font-weight: bold;
+ font-size: 30px;
+ text-align: left;
+ font-style: normal;
+ text-transform: none;
+ }
+
+ &::after {
+ content: '';
+ position: absolute;
+ top: 0;
+ right: 0;
+ width: 1px;
+ height: 100%;
+ width: 1px;
+ background: #333355;
+ }
+
+ &:last-child::after {
+ display: none;
+ }
+ }
+ }
+ }
+}
</style>
\ No newline at end of file
diff --git a/applications/drone-command/src/views/dataCockpit/components/LeftContainer.vue b/applications/drone-command/src/views/dataCockpit/components/LeftContainer.vue
index f59947f..25fb897 100644
--- a/applications/drone-command/src/views/dataCockpit/components/LeftContainer.vue
+++ b/applications/drone-command/src/views/dataCockpit/components/LeftContainer.vue
@@ -1,6 +1,8 @@
<template>
- <div>
-
+ <div class="left-container">
+ <div class="wrapper">
+
+ </div>
</div>
</template>
diff --git a/applications/drone-command/src/views/dataCockpit/components/RightContainer.vue b/applications/drone-command/src/views/dataCockpit/components/RightContainer.vue
index f59947f..4811ccb 100644
--- a/applications/drone-command/src/views/dataCockpit/components/RightContainer.vue
+++ b/applications/drone-command/src/views/dataCockpit/components/RightContainer.vue
@@ -1,6 +1,8 @@
<template>
- <div>
-
+ <div class="right-container">
+ <div class="wrapper">
+
+ </div>
</div>
</template>
diff --git a/applications/drone-command/src/views/dataCockpit/index.vue b/applications/drone-command/src/views/dataCockpit/index.vue
index 2d1cf1d..f813e63 100644
--- a/applications/drone-command/src/views/dataCockpit/index.vue
+++ b/applications/drone-command/src/views/dataCockpit/index.vue
@@ -2,7 +2,7 @@
* @Author : yuan
* @Date : 2026-01-06 16:35:50
* @LastEditors : yuan
- * @LastEditTime : 2026-01-07 15:20:14
+ * @LastEditTime : 2026-01-07 17:33:02
* @FilePath : \applications\drone-command\src\views\dataCockpit\index.vue
* @Description :
* Copyright 2026 OBKoro1, All Rights Reserved.
@@ -11,8 +11,8 @@
<template>
<div class="page-container">
<MapContainer />
- <LeftContainer />
- <RightContainer />
+ <LeftContainer class="left-container" />
+ <RightContainer class="right-container" />
<CenterContainer />
</div>
</template>
@@ -30,4 +30,45 @@
width: 100%;
height: 100%;
}
+
+ .left-container,
+ .right-container {
+ position: absolute;
+ top: 96px;
+ bottom: 0;
+ width: 401px;
+ z-index: 9;
+ backdrop-filter: blur(5px);
+
+ ::v-deep(.wrapper) {
+ position: absolute;
+ top: 17px;
+ bottom: 20px;
+ padding: 20px;
+ width: 300px;
+ background: rgba(0,0,0,0.3);
+ border-radius: 10px 10px 10px 10px;
+ }
+ }
+
+ .left-container {
+ top: 96px;
+ left: 0;
+ background: linear-gradient( 270deg, rgba(17,23,34,0) 0%, rgba(17,23,34,0.56) 50%, rgba(17,23,34,0.96) 100%);
+
+ ::v-deep(.wrapper) {
+ left: 17px;
+ }
+ }
+
+ .right-container {
+ top: 54px;
+ right: 0;
+ background: linear-gradient( 270deg, rgba(17,23,34,0.96) 0.16%, rgba(17,23,34,0.56) 57.57%, rgba(4,30,37,0) 100%);
+
+ ::v-deep(.wrapper) {
+ top: 21px;
+ right: 17px;
+ }
+ }
</style>
--
Gitblit v1.9.3