From 1d552a3bad95caae4af15322df28e6240b797693 Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Thu, 13 Aug 2026 15:32:06 +0800
Subject: [PATCH] feat: app视频封面图
---
applications/drone-command/src/views/detectionCountermeasure/taskSchedule/FormDiaLog.vue | 82 ++++++++++++++++++++++-------------------
1 files changed, 44 insertions(+), 38 deletions(-)
diff --git a/applications/drone-command/src/views/detectionCountermeasure/taskSchedule/FormDiaLog.vue b/applications/drone-command/src/views/detectionCountermeasure/taskSchedule/FormDiaLog.vue
index df25975..b31930d 100644
--- a/applications/drone-command/src/views/detectionCountermeasure/taskSchedule/FormDiaLog.vue
+++ b/applications/drone-command/src/views/detectionCountermeasure/taskSchedule/FormDiaLog.vue
@@ -73,22 +73,22 @@
</el-col>
<el-col :span="12">
- <el-form-item label="区域" prop="areaDivideId">
+ <el-form-item label="场景" prop="defenseSceneId">
<el-select class="command-select" popper-class="command-select-popper"
- v-model="formData.areaDivideId" placeholder="请选择" clearable
- @change="handleAreaChange">
- <el-option v-for="item in areaList" :key="item.id" :label="item.areaName"
+ v-model="formData.defenseSceneId" placeholder="选择设备后自动带出" clearable
+ disabled>
+ <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="defenseSceneId">
+ <el-form-item label="区域" prop="areaDivideId">
<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"
+ v-model="formData.areaDivideId" placeholder="选择设备后自动带出" clearable
+ disabled>
+ <el-option v-for="item in areaList" :key="item.id" :label="item.areaName"
:value="item.id" />
</el-select>
</el-form-item>
@@ -97,10 +97,10 @@
<el-col :span="12">
<el-form-item label="调度位置" prop="longitude">
<!-- <el-button @click="selectLocation" style="width: 100%">-->
- <el-button style="width: 100%">
+ <el-button style="width: 100%" disabled>
{{
formData.longitude && formData.latitude ? `${formData.longitude}, ${formData.latitude}` :
- '选择区域后自动带出'
+ '选择设备后自动带出'
}}
</el-button>
</el-form-item>
@@ -108,8 +108,8 @@
<el-col :span="12">
<el-form-item label="调度人员" prop="dispatchUser">
- <el-input class="command-input" v-model="formData.dispatchUser" maxlength="50" placeholder="请输入"
- clearable />
+ <el-input class="command-input" v-model="formData.dispatchUser" maxlength="50" placeholder="选择设备后自动带出"
+ disabled clearable />
</el-form-item>
</el-col>
<el-col :span="12">
@@ -142,7 +142,7 @@
</el-form>
<template #footer>
- <el-button color="#2B2B4C" @click="handleCancel">{{ readonly ? '关闭' : '取消' }}</el-button>
+ <el-button v-if="dialogMode != 'view'" color="#2B2B4C" @click="handleCancel">{{ readonly ? '关闭' : '取消' }}</el-button>
<el-button color="#284FE3" v-if="!readonly" type="primary" :loading="submitting" :disabled="submitting"
@click="handleSubmit">
保存
@@ -164,10 +164,12 @@
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 { fwDefenseSceneManageListApi } from '@/views/areaManage/sceneManage/sceneManageApi'
import { fieldRules } from '@ztzf/utils'
import { PublicCesium } from '@/utils/cesium/publicCesium'
import * as Cesium from 'cesium'
+import { saveOperationLog } from '@ztzf/apis'
+import { useRoute } from 'vue-router'
// 初始化表单
const initForm = () => ({
@@ -211,6 +213,7 @@
const areaList = ref([]) // 区域列表
const sceneList = ref([]) // 场景列表
const deviceStatus = ref('')
+const route = useRoute()
const rules = {
deviceId: fieldRules(true),
@@ -226,30 +229,28 @@
if (device) {
formData.value.deviceName = device.deviceName
formData.value.deviceSn = device.deviceSn
- formData.value.deviceStatus = device.deviceStatus
+ formData.value.deviceStatus = device.status
+ formData.value.dispatchUser = device.charger
+ formData.value.areaDivideId = device.areaDivideId
+ formData.value.defenseSceneId = device.defenseSceneManageId
+
+ formData.value.longitude = device.longitude
+ formData.value.latitude = device.latitude
+
deviceStatus.value = String(device.status)
} else {
formData.value.deviceName = ''
formData.value.deviceSn = ''
formData.value.deviceStatus = ''
+ formData.value.dispatchUser = ''
+ formData.value.areaDivideId = ''
+ formData.value.defenseSceneId = ''
+
+ formData.value.longitude = ''
+ formData.value.latitude = ''
+
deviceStatus.value = ''
}
-}
-
-async function handleAreaChange (areaId) {
- formData.value.defenseSceneId = ''
- if (areaId) {
- await loadSceneList(areaId)
- } else {
- sceneList.value = []
- }
-}
-
-// 场景选择变化处理
-async function handleSceneChange (sceneId) {
- const find = sceneList.value.find(item => item.id === sceneId)
- formData.value.longitude = find?.longitude
- formData.value.latitude = find?.latitude
}
// 加载区域列表
@@ -259,8 +260,8 @@
}
// 加载场景列表
-async function loadSceneList(areaId) {
- const res = await fwDefenseSceneListApi({areaId})
+async function loadSceneList() {
+ const res = await fwDefenseSceneManageListApi()
sceneList.value = res?.data?.data ?? []
}
@@ -285,6 +286,14 @@
formData.value.dispatchEndTime = formData.value.dispatchDateRange[1]
}
await fwTaskScheduleSubmitApi(formData.value)
+
+ const actionText = dialogMode.value === 'add' ? '新增' : '修改'
+ saveOperationLog({
+ requestUri: route.path,
+ title: `${route.name || '任务调度'}-${actionText}`,
+ type: 1
+ })
+
ElMessage.success(dialogMode.value === 'add' ? '新增成功' : '更新成功')
visible.value = false
emit('success')
@@ -302,10 +311,6 @@
...data,
dispatchDateRange:
data.dispatchStartTime && data.dispatchEndTime ? [data.dispatchStartTime, data.dispatchEndTime] : [],
- }
- // 如果有场景ID,加载区域列表
- if (data.defenseSceneId) {
- await loadAreaList(data.defenseSceneId)
}
}
@@ -332,7 +337,7 @@
text: `${longitude.toFixed(6)}, ${latitude.toFixed(6)}`,
font: '14px',
fillColor: Cesium.Color.WHITE,
- backgroundColor: Cesium.Color.BLACK.withAlpha(0.45),
+ backgroundColor: Cesium.Color.BLACK.withAlpha(0.6),
backgroundPadding: new Cesium.Cartesian2(5, 5),
pixelOffset: new Cesium.Cartesian2(0, -20),
showBackground: true,
@@ -400,6 +405,7 @@
defineExpose({ open })
onMounted(() => {
+ loadSceneList()
loadAreaList()
})
</script>
--
Gitblit v1.9.3