From 61e6956be147e1e84e7104f16dd47e9f87f20dfd Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Fri, 18 Apr 2025 10:57:32 +0800
Subject: [PATCH] feat: 控制台显示一些信息

---
 src/hooks/useSingleDroneMap/useSingleDroneMap.js |   57 +++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 45 insertions(+), 12 deletions(-)

diff --git a/src/hooks/useSingleDroneMap/useSingleDroneMap.js b/src/hooks/useSingleDroneMap/useSingleDroneMap.js
index 86c46b0..ff7f0c3 100644
--- a/src/hooks/useSingleDroneMap/useSingleDroneMap.js
+++ b/src/hooks/useSingleDroneMap/useSingleDroneMap.js
@@ -2,15 +2,25 @@
  * @Author: shuishen 1109946754@qq.com
  * @Date: 2025-04-15 22:41:40
  * @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2025-04-16 18:38:00
+ * @LastEditTime: 2025-04-17 15:05:32
  * @FilePath: \command-center-dashboard\src\hooks\useSingleDroneMap\useSingleDroneMap.js
  * @Description: 
  * 
  * Copyright (c) 2025 by shuishen, All Rights Reserved. 
  */
 import * as Cesium from 'cesium'
+import { render } from 'vue'
 import endingImg from '@/assets/images/aiNowFly/ending.png'
 import endingHighImg from '@/assets/images/aiNowFly/ending-high.png'
+import EventPopUpBox from '@/hooks/components/EventPopUpBox.vue'
+
+import eventSingle from '@/assets/images/home/useEventOperate/eventSingle.png'
+
+import eventPending from '@/assets/images/home/useEventOperate/eventPending.png' // 待处理 0
+import eventWaitAudit from '@/assets/images/home/useEventOperate/eventWaitAudit.png' // 待审核 2
+import eventProcessing from '@/assets/images/home/useEventOperate/eventProcessing.png' // 处理中 3
+import eventCompleted from '@/assets/images/home/useEventOperate/eventCompleted.png' // 已完成 4
+import eventClosed from '@/assets/images/home/useEventOperate/eventClosed.png' // 已完结 5
 
 /**
  * 
@@ -21,7 +31,16 @@
   eventApi: null,
   eventApiParams: {}
 }) {
+  const styleTransform = 'translate(-50%,-110%)'
+
   const { eventPositions, eventApi, eventApiParams } = options
+  const eventImage = {
+    0: eventPending,
+    2: eventWaitAudit,
+    3: eventProcessing,
+    4: eventCompleted,
+    5: eventClosed
+  }
 
   let viewer = null
   let handler = null
@@ -56,7 +75,7 @@
       properties: {
         customData: {
           data: {
-            type: 'single-drone-event'
+            type: 'single-drone-position'
           }
         }
       }
@@ -69,10 +88,12 @@
   }
 
   // 机巢事件地图撒点
-  const initDroneEventEntity = (eventPositions = eventPositions) => {
+  const initDroneEventEntity = (eventData = eventPositions) => {
     // 遍历特征并添加实体
-    eventPositions.length && eventPositions.forEach((item, index) => {
+    eventData.length && eventData.forEach((item, index) => {
       const { longitude, latitude, status, id } = item
+
+      const curImg = eventImage[status] || eventSingle
 
       const position = Cesium.Cartesian3.fromDegrees(+longitude, +latitude, 0)
 
@@ -80,14 +101,16 @@
         id: `single-drone-event-${index}`,
         position: position,
         billboard: {
-          image: new Cesium.ConstantProperty(endingHighImg),
-          width: 35,
-          height: 35,
+          image: new Cesium.ConstantProperty(curImg),
+          width: 20,
+          height: 20,
         },
         properties: {
           customData: {
             data: {
-              type: 'single-drone-sign'
+              ...item,
+              eventId: item.id,
+              type: 'single-drone-event'
             }
           }
         },
@@ -104,7 +127,7 @@
         ...eventApiParams,
       }
     ).then(res => {
-      const result = res.data.data.records
+      const result = res.data.data
 
       initDroneEventEntity(result)
     })
@@ -141,10 +164,13 @@
 
   // 左键单机事件
   const singleMachineEvent = async click => {
-    let clickedEntities = viewer?.scene.drillPick(click.position).map(item => item.id)
-    if (!clickedEntities.length) return
+    currentEntity = null
 
-    const currentEntity = findEntityByType(clickedEntities, 'single-drone-event')
+    let clickedEntities = viewer?.scene.drillPick(click.position).map(item => item.id)
+
+    if (!clickedEntities?.length) return
+
+    currentEntity = findEntityByType(clickedEntities, 'single-drone-event')
 
     removeLabel()
 
@@ -185,6 +211,7 @@
   const labelBoxRender = () => {
     if (!currentEntity) return
     let dom = document.querySelector('#mapPopUpBox')
+
     if (!dom) {
       dom = getLabelDom(currentEntity.properties.customData._value.data)
     }
@@ -222,6 +249,12 @@
     removeLabel()
   }
 
+  onMounted(() => {
+    nextTick(() => {
+      init()
+    })
+  })
+
   // 自动清理
   onUnmounted(() => {
     removeAll()

--
Gitblit v1.9.3