From 3c41f41e2e279fb5fb60cdee67ef307b611d8147 Mon Sep 17 00:00:00 2001
From: chenyao <1219716595@qq.com>
Date: Wed, 16 Apr 2025 09:44:46 +0800
Subject: [PATCH] feat;同上

---
 src/hooks/useMapAggregation/useMapAggregation.js |   28 ++++++++++++++++++++++++----
 1 files changed, 24 insertions(+), 4 deletions(-)

diff --git a/src/hooks/useMapAggregation/useMapAggregation.js b/src/hooks/useMapAggregation/useMapAggregation.js
index 3565f3c..b3316d1 100644
--- a/src/hooks/useMapAggregation/useMapAggregation.js
+++ b/src/hooks/useMapAggregation/useMapAggregation.js
@@ -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' }
@@ -134,14 +137,12 @@
       if (arr.length !== 0) {
         returnObj.childrens = arr
       }
-      console.log(returnObj, '111111')
       return returnObj
     })
   }
 
   // 获取事件聚合
   function getMapEventCount (params) {
-    console.log(5555555)
     return getMapEvents(params).then(res => {
       const resData = res?.data?.data
       if (resData?.data) {
@@ -240,6 +241,11 @@
   }
 
   watch(combinedValues, async (newValue, oldValue) => {
+    if (newValue.singleUavHome?.device_sn) {
+      clearMapEntity()
+      return
+    }
+
     if (newValue.eventTimeType) {
       saveParams = { area_code: newValue.selectedAreaCode, date_enum: store.state.home.eventTimeParams }
     }
@@ -250,6 +256,8 @@
 
     needFly = true
     if (!viewer) return
+    handlerInit()
+
     viewer.scene.postRender.removeEventListener(determineScaling)
 
     initMapData(newValue.selectedAreaCode).then(() => {
@@ -511,6 +519,11 @@
 
   // 移除所有监听事件,变量置空
   const removeAll = () => {
+    clearMapEntity()
+    viewer = null
+  }
+
+  const clearMapEntity = () => {
     if (!viewer) return
     removeEntities()
     removeLabel()
@@ -518,21 +531,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