From 5861c9798ecd28dd7907a7aedf4d40ad7f04eced Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Wed, 16 Apr 2025 20:49:45 +0800
Subject: [PATCH] feat:机巢详情增加事件地图点显示处理

---
 src/hooks/useSingleDroneMap/useSingleDroneMap.js |   55 ++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 44 insertions(+), 11 deletions(-)

diff --git a/src/hooks/useSingleDroneMap/useSingleDroneMap.js b/src/hooks/useSingleDroneMap/useSingleDroneMap.js
index 86c46b0..712f439 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-16 19:33:52
  * @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
@@ -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,17 @@
 
   // 左键单机事件
   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)
+
+    console.log(clickedEntities, 1111111)
+
+    if (!clickedEntities?.length) return
+
+    currentEntity = findEntityByType(clickedEntities, 'single-drone-event')
+
+    console.log(currentEntity, 1111111)
 
     removeLabel()
 
@@ -185,6 +215,9 @@
   const labelBoxRender = () => {
     if (!currentEntity) return
     let dom = document.querySelector('#mapPopUpBox')
+
+    console.log(currentEntity.properties.customData, 4444)
+
     if (!dom) {
       dom = getLabelDom(currentEntity.properties.customData._value.data)
     }

--
Gitblit v1.9.3