From 2530e63434696a1035683f8f08ee6d3df3f6eea7 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Wed, 16 Apr 2025 15:07:00 +0800
Subject: [PATCH] feat:增加useSingleDroneMap
---
src/hooks/useMapAggregation/useMapAggregation.js | 30 ++++++++++++++++++++++++++----
1 files changed, 26 insertions(+), 4 deletions(-)
diff --git a/src/hooks/useMapAggregation/useMapAggregation.js b/src/hooks/useMapAggregation/useMapAggregation.js
index 3565f3c..46aeb4a 100644
--- a/src/hooks/useMapAggregation/useMapAggregation.js
+++ b/src/hooks/useMapAggregation/useMapAggregation.js
@@ -4,8 +4,8 @@
import uavImg from '@/assets/images/home/useUavHome/uavImg.png'
import eventSingle from '@/assets/images/home/useEventOperate/eventSingle.png'
-import DevicePopUpBox from '@/hooks/useMapAggregation/DevicePopUpBox.vue'
-import EventPopUpBox from '@/hooks/useMapAggregation/EventPopUpBox.vue'
+import DevicePopUpBox from '@/hooks/components/DevicePopUpBox.vue'
+import EventPopUpBox from '@/hooks/components/EventPopUpBox.vue'
import { render } from 'vue'
import { useStore } from 'vuex'
@@ -59,12 +59,15 @@
const eventTimeType = computed(() => store.state.home.eventTimeType)
const eventTimeRang = computed(() => store.state.home.eventTimeRang)
+ const singleUavHome = computed(() => store.state.home.singleUavHome)
+
let needFly = true
const combinedValues = computed(() => ({
selectedAreaCode: selectedAreaCode.value,
eventTimeType: eventTimeType.value,
eventTimeRang: eventTimeRang.value,
+ singleUavHome: singleUavHome.value,
}))
let saveParams = { area_code: '', date_enum: 'CURRENT_WEEK' }
@@ -240,6 +243,13 @@
}
watch(combinedValues, async (newValue, oldValue) => {
+ if (newValue.singleUavHome?.device_sn) {
+ clearMapEntity()
+ return
+ }
+
+ handlerInit()
+
if (newValue.eventTimeType) {
saveParams = { area_code: newValue.selectedAreaCode, date_enum: store.state.home.eventTimeParams }
}
@@ -511,6 +521,11 @@
// 移除所有监听事件,变量置空
const removeAll = () => {
+ clearMapEntity()
+ viewer = null
+ }
+
+ const clearMapEntity = () => {
if (!viewer) return
removeEntities()
removeLabel()
@@ -518,21 +533,28 @@
viewer.scene.postRender.removeEventListener(determineScaling)
handler?.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK)
handler?.destroy()
- viewer = null
active = null
handler = null
currentEntity = null
}
+
const init = () => {
viewer = window.$viewer
viewer.scene.postRender.removeEventListener(determineScaling)
initMapData(selectedAreaCode.value || userAreaCode.value).then(() => {
viewer.scene.postRender.addEventListener(determineScaling)
})
+
+ handlerInit()
+ }
+
+ const handlerInit = () => {
+ if (handler) return
+
handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas)
handler.setInputAction(singleMachineEvent, Cesium.ScreenSpaceEventType.LEFT_CLICK)
-
}
+
onBeforeUnmount(() => { })
// onMounted(() => {
// nextTick(() => {
--
Gitblit v1.9.3