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