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