吉安感知网项目-前端
罗广辉
2026-08-13 1d552a3bad95caae4af15322df28e6240b797693
applications/drone-command/src/views/areaManage/sceneManage/FormDiaLog.vue
@@ -57,7 +57,7 @@
               :model="formData"
               :rules="rules"
               :disabled="readonly"
               label-width="110px"
               label-width="120px"
            >
               <el-form-item label="场景名称" prop="sceneName">
                  <el-input
@@ -107,6 +107,7 @@
                     start-placeholder="开始时间"
                     end-placeholder="结束时间"
                     value-format="YYYY-MM-DD HH:mm:ss"
                     :disabled-date="disablePastDate"
                     clearable
                  />
               </el-form-item>
@@ -145,14 +146,17 @@
import { ElMessage } from 'element-plus'
import { fwDefenseSceneManageDetailApi, fwDefenseSceneManageSubmitApi } from './sceneManageApi'
import { fwDefenseSceneListApi } from '../sceneConfig/sceneConfigApi'
import { fieldRules } from '@ztzf/utils'
import { fieldRules, contactPhoneRules } from '@ztzf/utils'
import CommonCesiumMap from '@/components/map-container/common-cesium-map.vue'
import * as Cesium from 'cesium'
import commandPost from '@/assets/images/dataCockpit/legend/command-post.png'
import { saveOperationLog } from '@ztzf/apis'
import { useRoute } from 'vue-router'
import { fwAreaDivideDetailApi, fwAreaDivideListApi } from '../partition/partitionApi'
import { buildEllipsePositions } from '@/utils/cesium/shapeTools'
import {
   addBufferRadiusLabelEntity,
   buildEllipsePositions,
} from '@/utils/cesium/shapeTools'
import { cartesian3Convert } from '@/utils/cesium/mapUtil'
import { AREA_TYPE_STYLE_MAP, BUFFER_LEVEL_STYLES, DEFAULT_AREA_STYLE } from '@ztzf/constants'
import { MapTooltip } from '@ztzf/utils'
@@ -187,7 +191,7 @@
const titleEnum = ref({ edit: '编辑', view: '查看', add: '新增' })
const effectiveDateRange = ref([]) // 有效时间范围
const sceneConfigList = ref([]) // 场景配置列表
const areaList = ref([]) // ????
const areaList = ref([]) // 区域列表
const mapRef = ref(null)
const route = useRoute()
let viewer
@@ -198,12 +202,18 @@
let mapTooltip
let publicCesium
const tooltipEventKey = 'scene-manage-point-tip'
const disablePastDate = date => {
   if (!date) return false
   const todayStart = new Date()
   todayStart.setHours(0, 0, 0, 0)
   return date.getTime() < todayStart.getTime()
}
// 表单验证规则
const rules = {
   sceneName: fieldRules(true, 50),
   defenseLeader: fieldRules(true, 50),
   leaderPhone: fieldRules(true, 50),
   leaderPhone: contactPhoneRules(true, 50),
   effectiveDateStart: fieldRules(true),
   longitude: fieldRules(true),
   defenseSceneId: fieldRules(true),
@@ -253,7 +263,7 @@
}
// 获取场景配置列表
// ?????
// 区域展示数据源
function ensureAreaDisplaySource() {
   if (!viewer) return null
   if (!areaDisplaySource) {
@@ -464,6 +474,10 @@
                     material: style.outline,
                  },
               })
               addBufferRadiusLabelEntity(dataSource, centerCartesian, radius, {
                  name: 'scene-manage-area-display',
                  customData: { drawType: 'buffer', label: 'radius' },
               })
            })
            return
         }
@@ -508,7 +522,7 @@
   })
}
// ??????????
// 加载区域列表
async function loadAreaList(sceneId) {
   if (!sceneId) {
      areaList.value = []
@@ -519,6 +533,8 @@
   const list = res?.data?.data ?? []
   areaList.value = await ensureAreaExtList(list)
   renderSceneAreas()
   await nextTick()
   fitViewToSceneAreas()
}
async function getSceneConfigList() {