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