From c53aab006b9db28e62381dba4fca4d77ec3566b0 Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Sat, 17 Jan 2026 15:36:07 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 applications/drone-command/src/views/areaManage/sceneConfig/FormDiaLog.vue |   37 +++++++++++++++++++++++--------------
 1 files changed, 23 insertions(+), 14 deletions(-)

diff --git a/applications/drone-command/src/views/areaManage/sceneConfig/FormDiaLog.vue b/applications/drone-command/src/views/areaManage/sceneConfig/FormDiaLog.vue
index f61f46d..199e92d 100644
--- a/applications/drone-command/src/views/areaManage/sceneConfig/FormDiaLog.vue
+++ b/applications/drone-command/src/views/areaManage/sceneConfig/FormDiaLog.vue
@@ -2,7 +2,15 @@
 	<el-dialog class="command-page-map-view-dialog" v-model="visible" :show-close="false" :close-on-click-modal="false">
 		<div class="dialog-container">
 			<div class="left-container">
-				<div class="leftMap command-cesium" id="mapContainer"></div>
+				<CommonCesiumMap
+					ref="mapRef"
+					class="leftMap command-cesium"
+					:active="visible"
+					:flat-mode="false"
+					:terrain="true"
+					:layer-mode="4"
+					:boundary="false"
+				/>
 			</div>
 			<div class="right-container">
 				<div class="header">
@@ -135,7 +143,7 @@
 import { ElMessage } from 'element-plus'
 import { fwDefenseSceneDetailApi, fwDefenseSceneSubmitApi } from './sceneConfigApi'
 import { fieldRules, geomAnalysis, getDictLabel } from '@ztzf/utils'
-import { PublicCesium } from '@/utils/cesium/publicCesium'
+import CommonCesiumMap from '@/components/map-container/common-cesium-map.vue'
 import * as Cesium from 'cesium'
 import { fwAreaDivideListApi } from '../partition/partitionApi'
 import { DrawPolygon } from '@/utils/cesium/DrawPolygon'
@@ -166,8 +174,10 @@
 const areaList = ref([]) // 关联区域列表
 const selectedAreaRows = ref([]) //选中列表
 const dictObj = inject('dictObj')
+const mapRef = ref(null)
 let viewer
 let redPointEntity
+let leftClickBound = false
 
 const rules = {
 	sceneName: fieldRules(true, 50),
@@ -285,19 +295,18 @@
 let geometricSource
 // 初始化地图实例
 function initMap () {
-	const publicCesiumInstance = new PublicCesium({
-		dom: 'mapContainer',
-		flatMode: false,
-		terrain: true,
-		layerMode: 4,
-		boundary: false,
-	})
-	if (!readonly.value) {
-		publicCesiumInstance.addLeftClickEvent(null, LeftClickEvent)
+	if (viewer) return
+	const map = mapRef.value?.getMap()
+	if (!map?.viewer) return
+	viewer = map.viewer
+	if (!readonly.value && !leftClickBound) {
+		map.publicCesium?.addLeftClickEvent?.(null, LeftClickEvent)
+		leftClickBound = true
 	}
-	viewer = publicCesiumInstance.getViewer()
-	geometricSource = new Cesium.CustomDataSource('geometricSource')
-	viewer.dataSources.add(geometricSource)
+	if (!geometricSource) {
+		geometricSource = new Cesium.CustomDataSource('geometricSource')
+		viewer.dataSources.add(geometricSource)
+	}
 }
 
 function LeftClickEvent (click) {

--
Gitblit v1.9.3