From 89380e6260a75d1d3b94de687ebcc2f50d50659d Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Tue, 03 Feb 2026 15:44:33 +0800
Subject: [PATCH] feat:环境变量配置调整
---
applications/drone-command/src/views/recordManage/historyTracks/TrajectoryDiaLog.vue | 94 +++++++++++++++++++++++++++++++++++-----------
1 files changed, 71 insertions(+), 23 deletions(-)
diff --git a/applications/drone-command/src/views/recordManage/historyTracks/TrajectoryDiaLog.vue b/applications/drone-command/src/views/recordManage/historyTracks/TrajectoryDiaLog.vue
index 8fb9ea7..869bdae 100644
--- a/applications/drone-command/src/views/recordManage/historyTracks/TrajectoryDiaLog.vue
+++ b/applications/drone-command/src/views/recordManage/historyTracks/TrajectoryDiaLog.vue
@@ -1,13 +1,24 @@
<template>
- <el-dialog class="ztzf-page-map-view-dialog" v-model="visible" :show-close="false"
- :close-on-click-modal="false" @closed="handleClosed" destroy-on-close>
+ <el-dialog
+ class="command-page-map-view-dialog"
+ v-model="visible"
+ :show-close="false"
+ :close-on-click-modal="false"
+ @closed="handleClosed"
+ destroy-on-close
+ >
<div class="dialog-container">
<div class="left-container">
- <div class="leftMap ztzf-cesium" id="leftMapContainer"></div>
+ <div class="leftMap command-cesium" id="leftMapContainer"></div>
</div>
<div class="right-container">
- <div class="header">{{ dialogTitle }}</div>
- <div class="dialog-container">
+ <div class="header">
+ <span>{{ dialogTitle }}</span>
+
+ <el-icon class="close-btn" @click.stop="visible = false"><Close /></el-icon>
+ </div>
+
+ <div class="content">
<div class="detail-title">轨迹信息</div>
<el-row>
<el-col :span="24">
@@ -32,9 +43,9 @@
</el-col>
</el-row>
<div class="detail-title">轨迹点</div>
- <div class="ztzf-table-container">
- <div class="ztzf-table-content">
- <el-table class="ztzf-data-cockpit-table" :data="list">
+ <div class="command-table-container">
+ <div class="command-table-content">
+ <el-table class="command-table" :data="list" :row-class-name="getRowClassName">
<el-table-column type="index" width="60" label="序号" />
<el-table-column label="经纬度">
<template #default="{ row }">{{ row.longitude }},{{ row.latitude }}</template>
@@ -45,7 +56,7 @@
</div>
</div>
<div class="footer">
- <el-button color="#2B2B4C" @click="handleCancel">{{ dialogReadonly ? '关闭' : '取消' }}</el-button>
+ <el-button v-if="dialogMode != 'view'" color="#2B2B4C" @click="handleCancel">{{ dialogReadonly ? '关闭' : '取消' }}</el-button>
</div>
</div>
</div>
@@ -53,12 +64,16 @@
</template>
<script setup>
+import { Close } from '@element-plus/icons-vue'
+
import { computed, nextTick, ref } from 'vue'
import { fwDroneFlightRecordDetailApi } from '@/views/recordManage/historyTracks/fwDroneFlightRecord'
import { fwDroneFlightRecordDetailPageApi } from '@/views/recordManage/historyTracks/flyTrajectory'
import { PublicCesium } from '@/utils/cesium/publicCesium'
import * as Cesium from 'cesium'
-import { flyVisual } from '@/utils/cesium/mapUtil'
+import { flyVisual } from '@ztzf/utils'
+import { ArrowLineMaterialProperty } from '@/utils/cesium/Material'
+import droneIcon from '@/assets/images/dataCockpit/map/drone.png'
const initForm = () => ({
droneName: '',
@@ -84,12 +99,12 @@
})
// 关闭弹框
-function handleCancel () {
+function handleCancel() {
visible.value = false
}
// 加载详情
-async function loadDetail () {
+async function loadDetail() {
if (!formData.value.id) return
const res = await fwDroneFlightRecordDetailApi({ id: formData.value.id })
const res1 = await fwDroneFlightRecordDetailPageApi({ flightRecordId: formData.value.id })
@@ -98,37 +113,62 @@
formData.value = res?.data?.data ?? {}
}
+let arrowLineMaterialProperty = new ArrowLineMaterialProperty({
+ color: new Cesium.Color(128 / 255, 215 / 255, 255 / 255, 1),
+ directionColor: new Cesium.Color(1, 1, 1, 1),
+ outlineColor: new Cesium.Color(1, 1, 1, 1),
+ outlineWidth: 0,
+ speed: 5,
+})
+
// 角度转c3
-function degreesToC3 ({ longitude, latitude, height = 0 }) {
+function degreesToC3({ longitude, latitude, height = 0 }) {
return Cesium.Cartesian3.fromDegrees(longitude, latitude, height)
}
// 渲染航线
-function drawFlightPath () {
+function drawFlightPath() {
const positions = list.value.map(p => degreesToC3(p))
+ if (!positions.length) return
droneLineEntity && geometricSource.entities.remove(droneLineEntity)
- const color = Cesium.Color.fromCssColorString('#00D690')
droneLineEntity = geometricSource.entities.add({
polyline: {
+ width: 4,
positions: positions,
- width: 3,
- material: new Cesium.PolylineOutlineMaterialProperty({ color }),
+ material: arrowLineMaterialProperty,
clampToGround: false,
},
})
- viewer.flyTo(droneLineEntity)
+ startDroneEntity && geometricSource.entities.remove(startDroneEntity)
+ startDroneEntity = geometricSource.entities.add({
+ position: positions[0],
+ billboard: {
+ image: droneIcon,
+ width: 40,
+ height: 40,
+ verticalOrigin: Cesium.VerticalOrigin.CENTER,
+ },
+ })
+ viewer.flyTo(droneLineEntity, { duration: 0 })
}
// 关闭后重置
-function handleClosed () {
+function handleClosed() {
formData.value = initForm()
list.value = []
viewer = null
geometricSource = null
droneLineEntity = null
+ startDroneEntity = null
}
-let viewer, geometricSource, droneLineEntity
-function initMap () {
+function getRowClassName({ row }) {
+ console.log(row.isAlarm, 11111111111)
+
+ return row?.isAlarm === 1 ? 'alarm-row' : ''
+}
+
+let viewer, geometricSource, droneLineEntity, startDroneEntity
+function initMap() {
if (viewer) return
const publicCesiumInstance = new PublicCesium({
dom: 'leftMapContainer',
@@ -143,7 +183,7 @@
}
// 打开弹框
-async function open ({ mode, row } = {}) {
+async function open({ mode, row } = {}) {
dialogMode.value = mode || 'add'
visible.value = true
await nextTick()
@@ -159,4 +199,12 @@
defineExpose({ open })
</script>
-<style scoped lang="scss"></style>
+<style scoped lang="scss">
+:deep(.alarm-row) {
+ background: #2B2B4C !important;
+
+ td {
+ background-color: transparent !important;
+ }
+}
+</style>
--
Gitblit v1.9.3