吉安感知网项目-前端
shuishen
2026-02-03 89380e6260a75d1d3b94de687ebcc2f50d50659d
applications/drone-command/src/views/recordManage/historyTracks/TrajectoryDiaLog.vue
@@ -14,10 +14,10 @@
         <div class="right-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>
@@ -56,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>
@@ -71,8 +71,9 @@
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: '',
@@ -127,6 +128,7 @@
// 渲染航线
function drawFlightPath() {
   const positions = list.value.map(p => degreesToC3(p))
   if (!positions.length) return
   droneLineEntity && geometricSource.entities.remove(droneLineEntity)
   droneLineEntity = geometricSource.entities.add({
      polyline: {
@@ -134,6 +136,16 @@
         positions: positions,
         material: arrowLineMaterialProperty,
         clampToGround: false,
      },
   })
   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 })
@@ -146,6 +158,7 @@
   viewer = null
   geometricSource = null
   droneLineEntity = null
   startDroneEntity = null
}
function getRowClassName({ row }) {
@@ -154,7 +167,7 @@
   return row?.isAlarm === 1 ? 'alarm-row' : ''
}
let viewer, geometricSource, droneLineEntity
let viewer, geometricSource, droneLineEntity, startDroneEntity
function initMap() {
   if (viewer) return
   const publicCesiumInstance = new PublicCesium({
@@ -189,7 +202,7 @@
<style scoped lang="scss">
:deep(.alarm-row) {
   background: #2B2B4C !important;
   td {
      background-color: transparent !important;
   }