From 1380fc12070426d1d4b45f7f13e5cacb86afa6e9 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Wed, 21 Jan 2026 15:46:47 +0800
Subject: [PATCH] feat:任务调度新增调整

---
 applications/drone-command/src/views/detectionCountermeasure/taskSchedule/FormDiaLog.vue |   89 ++++++++++++++++++++++++++------------------
 1 files changed, 53 insertions(+), 36 deletions(-)

diff --git a/applications/drone-command/src/views/detectionCountermeasure/taskSchedule/FormDiaLog.vue b/applications/drone-command/src/views/detectionCountermeasure/taskSchedule/FormDiaLog.vue
index 9da212f..c38a2de 100644
--- a/applications/drone-command/src/views/detectionCountermeasure/taskSchedule/FormDiaLog.vue
+++ b/applications/drone-command/src/views/detectionCountermeasure/taskSchedule/FormDiaLog.vue
@@ -12,12 +12,12 @@
 					<div class="val">{{ formData.deviceSn }}</div>
 				</el-col>
 				<el-col :span="12">
-					<div class="label">场景</div>
-					<div class="val">{{ formData.defenseSceneName }}</div>
-				</el-col>
-				<el-col :span="12">
 					<div class="label">区域</div>
 					<div class="val">{{ formData.areaDivideName }}</div>
+				</el-col>
+				<el-col :span="12">
+					<div class="label">场景</div>
+					<div class="val">{{ formData.defenseSceneName }}</div>
 				</el-col>
 				<el-col :span="12">
 					<div class="label">调度人员</div>
@@ -71,25 +71,41 @@
 						</el-select>
 					</el-form-item>
 				</el-col>
-				<el-col :span="12">
-					<el-form-item label="场景" prop="defenseSceneId">
-						<el-select class="command-select" popper-class="command-select-popper"
-							v-model="formData.defenseSceneId" placeholder="请选择" clearable @change="handleSceneChange">
-							<el-option v-for="item in sceneList" :key="item.id" :label="item.sceneName"
-								:value="item.id" />
-						</el-select>
-					</el-form-item>
-				</el-col>
+
 				<el-col :span="12">
 					<el-form-item label="区域" prop="areaDivideId">
 						<el-select class="command-select" popper-class="command-select-popper"
 							v-model="formData.areaDivideId" placeholder="请先选择场景" clearable
-							:disabled="!formData.defenseSceneId" @change="handleAreaChange">
+							 @change="handleAreaChange">
 							<el-option v-for="item in areaList" :key="item.id" :label="item.areaName"
 								:value="item.id" />
 						</el-select>
 					</el-form-item>
 				</el-col>
+
+				<el-col :span="12">
+					<el-form-item label="场景" prop="defenseSceneId">
+						<el-select class="command-select" popper-class="command-select-popper"
+							v-model="formData.defenseSceneId" placeholder="请先选择区域" clearable
+							:disabled="!formData.areaDivideId" @change="handleSceneChange">
+							<el-option v-for="item in sceneList" :key="item.id" :label="item.sceneName"
+								:value="item.id" />
+						</el-select>
+					</el-form-item>
+				</el-col>
+
+				<el-col :span="12">
+					<el-form-item label="调度位置" prop="longitude">
+						<!--						<el-button @click="selectLocation" style="width: 100%">-->
+						<el-button style="width: 100%">
+							{{
+								formData.longitude && formData.latitude ? `${formData.longitude}, ${formData.latitude}` :
+									'选择区域后自动带出'
+							}}
+						</el-button>
+					</el-form-item>
+				</el-col>
+
 				<el-col :span="12">
 					<el-form-item label="调度人员" prop="dispatchUser">
 						<el-input class="command-input" v-model="formData.dispatchUser" maxlength="50" placeholder="请输入"
@@ -103,17 +119,7 @@
 							start-placeholder="开始日期" end-placeholder="结束日期" value-format="YYYY-MM-DD HH:mm:ss" />
 					</el-form-item>
 				</el-col>
-				<el-col :span="24">
-					<el-form-item label="调度位置" prop="longitude">
-						<!--						<el-button @click="selectLocation" style="width: 100%">-->
-						<el-button style="width: 100%">
-							{{
-								formData.longitude && formData.latitude ? `${formData.longitude}, ${formData.latitude}` :
-									'选择区域后自动带出'
-							}}
-						</el-button>
-					</el-form-item>
-				</el-col>
+				
 				<el-col :span="24">
 					<el-form-item label="调度内容" prop="dispatchContent">
 						<el-input class="command-input" v-model="formData.dispatchContent" type="textarea" :rows="3"
@@ -158,6 +164,7 @@
 import { ElMessage } from 'element-plus'
 import { fwTaskScheduleDetailApi, fwTaskScheduleSubmitApi } from './taskScheduleApi'
 import { fwAreaDivideListApi } from '@/views/areaManage/partition/partitionApi'
+import { fwDefenseSceneListApi } from '@/views/areaManage/sceneConfig/sceneConfigApi'
 import { fieldRules } from '@ztzf/utils'
 import { PublicCesium } from '@/utils/cesium/publicCesium'
 import * as Cesium from 'cesium'
@@ -186,7 +193,6 @@
 })
 
 const props = defineProps({
-	sceneList: { type: Array, default: () => [] },
 	deviceList: { type: Array, default: () => [] },
 })
 
@@ -203,6 +209,7 @@
 const titleEnum = ref({ edit: '编辑', view: '查看', add: '新增' })
 const tempLocation = ref({ longitude: null, latitude: null })
 const areaList = ref([]) // 区域列表
+const sceneList = ref([]) // 场景列表
 const deviceStatus = ref('')
 
 const rules = {
@@ -229,26 +236,32 @@
 	}
 }
 
-// 场景选择变化处理
-async function handleSceneChange (sceneId) {
-	formData.value.areaDivideId = ''
-	if (sceneId) {
-		await loadAreaList(sceneId)
+async function handleAreaChange (areaId) {
+	formData.value.defenseSceneId = ''
+	if (areaId) {
+		await loadSceneList(areaId)
 	} else {
-		areaList.value = []
+		sceneList.value = []
 	}
 }
 
-function handleAreaChange (areaId) {
-	const find = areaList.value.find(item => item.id === areaId)
+// 场景选择变化处理
+async function handleSceneChange (sceneId) {
+	const find = sceneList.value.find(item => item.id === sceneId)
 	formData.value.longitude = find?.longitude
 	formData.value.latitude = find?.latitude
 }
 
 // 加载区域列表
-async function loadAreaList (sceneId) {
-	const res = await fwAreaDivideListApi({ sceneId })
+async function loadAreaList () {
+	const res = await fwAreaDivideListApi()
 	areaList.value = res?.data?.data ?? []
+}
+
+// 加载场景列表
+async function loadSceneList(areaId) {
+	const res = await fwDefenseSceneListApi({areaId})
+	sceneList.value = res?.data?.data ?? []
 }
 
 // 关闭弹框
@@ -385,6 +398,10 @@
 }
 
 defineExpose({ open })
+
+onMounted(() => {
+	loadAreaList()
+})
 </script>
 <style scoped lang="scss">
 #mapContainer {

--
Gitblit v1.9.3