From a7e6761ba0cfccdf33ed552eb2d3b783c8e4ab4a Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Wed, 16 Apr 2025 20:49:12 +0800
Subject: [PATCH] feat:事件弹窗显示调整
---
src/hooks/useMapAggregation/useMapAggregation.js | 100 ++++++++++++++++++++++++++++++-------------------
1 files changed, 61 insertions(+), 39 deletions(-)
diff --git a/src/hooks/useMapAggregation/useMapAggregation.js b/src/hooks/useMapAggregation/useMapAggregation.js
index df7750a..c3b229b 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'
@@ -54,8 +54,23 @@
const store = useStore()
const userAreaCode = computed(() => store.state.user.userInfo.detail.areaCode)
const selectedAreaCode = computed(() => store.state.user.selectedAreaCode)
- let saveAreaCode = null;
- let saveParams = { area_code: '',date_enum:'CURRENT_WEEK' };
+
+
+ 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' }
// 确定缩放比例
@@ -122,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) {
@@ -169,9 +182,7 @@
const initMapData = async areaCode => {
eventList = []
if (!areaCode) return
- saveAreaCode = areaCode;
- saveParams.area_code = areaCode;
- console.log(type, '444')
+ saveParams.area_code = areaCode
const list = type === 'device' ? await getDeviceCount(areaCode) : await getMapEventCount(saveParams)
const splashedList = type === 'device'
? await getDeviceList(areaCode)
@@ -228,38 +239,32 @@
}
}
+ watch(combinedValues, async (newValue, oldValue) => {
+ if (newValue.singleUavHome?.device_sn) {
+ clearMapEntity()
+ return
+ }
- let needFly = true
+ if (newValue.eventTimeType) {
+ saveParams = { area_code: newValue.selectedAreaCode, date_enum: store.state.home.eventTimeParams }
+ }
- watch(
- selectedAreaCode,
- async (newValue, oldValue) => {
- needFly = true
- if (!viewer) return
- viewer.scene.postRender.removeEventListener(determineScaling)
- initMapData(newValue).then(() => {
- viewer.scene.postRender.addEventListener(determineScaling)
- })
- },
+ if (newValue.eventTimeRang) {
+ saveParams = { area_code: newValue.selectedAreaCode, start_date: newValue.eventTimeRang[0], end_date: newValue.eventTimeRang[1] }
+ }
+
+ needFly = true
+ if (!viewer) return
+ handlerInit()
+
+ viewer.scene.postRender.removeEventListener(determineScaling)
+
+ initMapData(newValue.selectedAreaCode).then(() => {
+ viewer.scene.postRender.addEventListener(determineScaling)
+ })
+ },
{ deep: true }
)
-
- // 监听 日 周 月 年
- watch(() => store.state.home.eventTimeType, (newVal) => {
- if (!saveAreaCode) return
- if (newVal) {
- saveParams = { area_code:saveAreaCode,date_enum: store.state.home.eventTimeParams }
- initMapData(saveAreaCode);
- }
- });
- // 监听事件右侧日期范围
- watch(() => store.state.home.eventTimeRang, (newVal) => {
- if (!saveAreaCode) return
- if (newVal) {
- saveParams = { area_code:saveAreaCode,start_date: newVal[0], end_date: newVal[1]}
- initMapData(saveAreaCode);
- }
- });
//散点机巢
function splashed (row) {
@@ -463,10 +468,15 @@
let clickTargets = viewer.scene.drillPick(click.position).map(item => item.id)
if (!clickTargets.length) return
+ console.log(clickTargets, 11111)
+
let deviceAggregationFind = findTypeItem(clickTargets, (item) => item?.properties?.customData?._value?.data?.type === 'deviceAggregation')
let deviceFind = findTypeItem(clickTargets, (item) => item?.properties?.customData?._value?.data?.type === 'device')
+ // "event"
let eventFind = findTypeItem(clickTargets, (item) => item?.properties?.customData?._value?.data?.type === 'event')
+ // let eventFind = findTypeItem(clickTargets, (item) => item?.properties?.customData?._value?.data?.type === 'eventAggregation')
currentEntity = deviceAggregationFind || deviceFind || eventFind
+
if (!currentEntity) return
if (!currentEntity?.position?._value) return
// 一定要移除
@@ -508,6 +518,11 @@
// 移除所有监听事件,变量置空
const removeAll = () => {
+ clearMapEntity()
+ viewer = null
+ }
+
+ const clearMapEntity = () => {
if (!viewer) return
removeEntities()
removeLabel()
@@ -515,21 +530,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