From 88a0986cdcb84b16ed63a88f8dbefb9aa44e7365 Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Wed, 16 Apr 2025 20:23:03 +0800
Subject: [PATCH] feat: 当前任务详情,相机模式,拍照录像,ui调整

---
 src/hooks/useMapAggregation/useMapAggregation.js |   23 +++++++++++++++--------
 1 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/src/hooks/useMapAggregation/useMapAggregation.js b/src/hooks/useMapAggregation/useMapAggregation.js
index d92d63c..41d33ee 100644
--- a/src/hooks/useMapAggregation/useMapAggregation.js
+++ b/src/hooks/useMapAggregation/useMapAggregation.js
@@ -248,6 +248,8 @@
       return
     }
 
+    handlerInit()
+
     if (newValue.eventTimeType) {
       saveParams = { area_code: newValue.selectedAreaCode, date_enum: store.state.home.eventTimeParams }
     }
@@ -519,6 +521,11 @@
 
   // 移除所有监听事件,变量置空
   const removeAll = () => {
+    clearMapEntity()
+    viewer = null
+  }
+
+  const clearMapEntity = () => {
     if (!viewer) return
     removeEntities()
     removeLabel()
@@ -526,16 +533,9 @@
     viewer.scene.postRender.removeEventListener(determineScaling)
     handler?.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK)
     handler?.destroy()
-    viewer = null
     active = null
     handler = null
     currentEntity = null
-  }
-
-  const clearMapEntity = () => {
-    if (!viewer) return
-    removeEntities()
-    removeLabel()
   }
 
   const init = () => {
@@ -544,10 +544,17 @@
     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