吉安感知网项目-前端
罗广辉
2026-01-17 c53aab006b9db28e62381dba4fca4d77ec3566b0
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) {