From baeb96afcefcb3fecf05f892b7f2c84cb5182c18 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Sat, 31 Jan 2026 14:47:41 +0800
Subject: [PATCH] feat:侦测范围管理增加地图提示
---
applications/drone-command/src/views/detectionCountermeasure/detectionRange/DetectionRangeDialog.vue | 31 +++++++++++++++++++++++++++++++
1 files changed, 31 insertions(+), 0 deletions(-)
diff --git a/applications/drone-command/src/views/detectionCountermeasure/detectionRange/DetectionRangeDialog.vue b/applications/drone-command/src/views/detectionCountermeasure/detectionRange/DetectionRangeDialog.vue
index a939219..b2fa130 100644
--- a/applications/drone-command/src/views/detectionCountermeasure/detectionRange/DetectionRangeDialog.vue
+++ b/applications/drone-command/src/views/detectionCountermeasure/detectionRange/DetectionRangeDialog.vue
@@ -163,6 +163,7 @@
import * as Cesium from 'cesium'
import { saveOperationLog } from '@ztzf/apis'
import { useRoute } from 'vue-router'
+import { MapTooltip } from '@/utils/cesium/shapeTools/Tooltip'
import equipment from '@/assets/images/dataCockpit/legend/equipment.png'
@@ -190,6 +191,10 @@
let viewer
let redPointEntity
let rangeCircleEntity
+let mouseMoveBound = false
+let mapTooltip
+let publicCesium
+const tooltipEventKey = 'detection-range-point-tip'
const formTitle = computed(() => {
if (dialogMode.value === 'edit') {
return '编辑侦测范围'
@@ -307,6 +312,7 @@
viewer = null
redPointEntity = null
rangeCircleEntity = null
+ clearPointTooltip()
}
function setMapPoint(longitude, latitude) {
@@ -389,8 +395,32 @@
const map = mapRef.value?.getMap()
if (!map?.viewer) return
viewer = map.viewer
+ publicCesium = map.publicCesium
if (!dialogReadonly.value) {
map.publicCesium?.addLeftClickEvent?.(null, handleMapClick)
+ ensurePointTooltip()
+ }
+}
+
+function ensurePointTooltip() {
+ if (!viewer || !publicCesium || mouseMoveBound) return
+ mapTooltip ||= new MapTooltip(viewer, { offset: { x: 28, y: 24 } })
+ publicCesium.addMouseHandler?.(
+ null,
+ movement => {
+ if (!visible.value || dialogReadonly.value) return
+ mapTooltip?.show('点击地图选择设备位置', movement.endPosition)
+ },
+ tooltipEventKey
+ )
+ mouseMoveBound = true
+}
+
+function clearPointTooltip() {
+ mapTooltip?.hide()
+ if (publicCesium && mouseMoveBound) {
+ publicCesium.removeMouseHandler?.(tooltipEventKey)
+ mouseMoveBound = false
}
}
@@ -408,6 +438,7 @@
// 打开弹框
async function open({ mode, row } = {}) {
dialogMode.value = mode || 'add'
+ clearPointTooltip()
await nextTick()
initMap()
if (dialogMode.value === 'add') {
--
Gitblit v1.9.3