From 86c2d61ba9d33f1886cfc904dcaf17f033e4c80a Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Sat, 17 Jan 2026 13:52:53 +0800
Subject: [PATCH] Merge branch 'master' of http://139.196.74.78:10010/r/jagzwxm/ja_web
---
applications/drone-command/src/views/detectionCountermeasure/taskSchedule/FormDiaLog.vue | 165 +++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 112 insertions(+), 53 deletions(-)
diff --git a/applications/drone-command/src/views/detectionCountermeasure/taskSchedule/FormDiaLog.vue b/applications/drone-command/src/views/detectionCountermeasure/taskSchedule/FormDiaLog.vue
index 82dc2bd..b9d42df 100644
--- a/applications/drone-command/src/views/detectionCountermeasure/taskSchedule/FormDiaLog.vue
+++ b/applications/drone-command/src/views/detectionCountermeasure/taskSchedule/FormDiaLog.vue
@@ -1,64 +1,101 @@
-<template>
- <el-dialog v-model="visible" :title="titleEnum[dialogMode]">
- <div v-if="readonly">
+<template>
+ <el-dialog
+ class="command-page-view-dialog"
+ v-model="visible"
+ :title="titleEnum[dialogMode]"
+ destroy-on-close
+ :close-on-click-modal="false"
+ @closed="handleClosed"
+ >
+ <div v-if="readonly" class="detail-container">
+ <div class="detail-title">调度详情</div>
<el-row>
<el-col :span="12">
- <div>设备名称: {{ formData.deviceName }}</div>
+ <div class="label">设备名称</div>
+ <div class="val">{{ formData.deviceName }}</div>
</el-col>
<el-col :span="12">
- <div>设备编码: {{ formData.deviceCode }}</div>
+ <div class="label">设备编码</div>
+ <div class="val">{{ formData.deviceSn }}</div>
</el-col>
<el-col :span="12">
- <div>设备状态: {{ getDeviceStatusLabel(formData.deviceStatus) }}</div>
+ <div class="label">场景</div>
+ <div class="val">{{ formData.defenseSceneName }}</div>
</el-col>
<el-col :span="12">
- <div>场景: {{ formData.defenseSceneName }}</div>
+ <div class="label">区域</div>
+ <div class="val">{{ formData.areaDivideName }}</div>
</el-col>
<el-col :span="12">
- <div>区域: {{ formData.areaDivideName }}</div>
+ <div class="label">调度人员</div>
+ <div class="val">{{ formData.dispatchUser }}</div>
</el-col>
<el-col :span="12">
- <div>调度人员: {{ formData.dispatchUser }}</div>
+ <div class="label">调度位置</div>
+ <div class="val">{{ formData.longitude }}, {{ formData.latitude }}</div>
</el-col>
<el-col :span="12">
- <div>调度位置: {{ formData.longitude }}, {{ formData.latitude }}</div>
- </el-col>
- <el-col :span="12">
- <div>调度日期: {{ formData.dispatchStartTime }} ~ {{ formData.dispatchEndTime }}</div>
+ <div class="label">调度日期</div>
+ <div class="val">{{ formData.dispatchStartTime }} ~ {{ formData.dispatchEndTime }}</div>
</el-col>
<el-col :span="24">
- <div>调度内容: {{ formData.dispatchContent }}</div>
+ <div class="label">调度内容</div>
+ <div class="val">{{ formData.dispatchContent }}</div>
</el-col>
<el-col :span="24">
- <div>调度结果: {{ formData.dispatchResult }}</div>
+ <div class="label">调度结果</div>
+ <div class="val">{{ formData.dispatchResult }}</div>
</el-col>
<el-col :span="24">
- <div>处理措施: {{ formData.disposeMeasure }}</div>
+ <div class="label">处理措施</div>
+ <div class="val">{{ formData.disposeMeasure }}</div>
</el-col>
</el-row>
</div>
- <el-form v-else ref="formRef" :model="formData" :rules="rules" :disabled="readonly" label-width="100px">
+ <el-form
+ v-else
+ ref="formRef"
+ :model="formData"
+ :rules="rules"
+ :disabled="readonly"
+ label-width="100px"
+ class="dialog-form"
+ >
<el-row>
<el-col :span="12">
- <el-form-item label="设备名称" prop="deviceId">
- <el-select v-model="formData.deviceId" placeholder="请选择" clearable @change="handleDeviceChange">
+ <el-form-item label="设备" prop="deviceId">
+ <el-select
+ class="command-data-cockpit-select"
+ popper-class="command-data-cockpit-select-popper"
+ v-model="formData.deviceId"
+ placeholder="请选择"
+ clearable
+ @change="handleDeviceChange"
+ >
<el-option v-for="item in deviceList" :key="item.id" :label="item.deviceName" :value="item.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="设备编码" prop="deviceCode">
- <el-input v-model="formData.deviceCode" disabled placeholder="选择设备后自动带出" />
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="设备状态" prop="deviceStatus">
- <el-input v-model="formData.deviceStatusLabel" disabled placeholder="选择设备后自动带出" />
+ <el-form-item label="设备编码" prop="deviceSn">
+ <el-input
+ class="command-data-cockpit-search-input"
+ v-model="formData.deviceSn"
+ disabled
+ placeholder="选择设备后自动带出"
+ />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="场景" prop="defenseSceneId">
- <el-select v-model="formData.defenseSceneId" placeholder="请选择" clearable @change="handleSceneChange">
+ <el-select
+ class="command-data-cockpit-select"
+ popper-class="command-data-cockpit-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>
@@ -66,10 +103,13 @@
<el-col :span="12">
<el-form-item label="区域" prop="areaDivideId">
<el-select
+ class="command-data-cockpit-select"
+ popper-class="command-data-cockpit-select-popper"
v-model="formData.areaDivideId"
placeholder="请先选择场景"
clearable
:disabled="!formData.defenseSceneId"
+ @change="handleAreaChange"
>
<el-option v-for="item in areaList" :key="item.id" :label="item.areaName" :value="item.id" />
</el-select>
@@ -77,12 +117,20 @@
</el-col>
<el-col :span="12">
<el-form-item label="调度人员" prop="dispatchUser">
- <el-input v-model="formData.dispatchUser" maxlength="50" placeholder="请输入" clearable />
+ <el-input
+ class="command-data-cockpit-search-input"
+ v-model="formData.dispatchUser"
+ maxlength="50"
+ placeholder="请输入"
+ clearable
+ />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="调度日期" prop="dispatchDateRange">
<el-date-picker
+ class="command-data-cockpit-date-picker"
+ popper-class="command-data-cockpit-date-picker-popper"
v-model="formData.dispatchDateRange"
type="datetimerange"
range-separator="至"
@@ -94,9 +142,10 @@
</el-col>
<el-col :span="24">
<el-form-item label="调度位置" prop="longitude">
- <el-button @click="selectLocation" style="width: 100%">
+ <!-- <el-button @click="selectLocation" style="width: 100%">-->
+ <el-button style="width: 100%">
{{
- formData.longitude && formData.latitude ? `${formData.longitude}, ${formData.latitude}` : '点击选择位置'
+ formData.longitude && formData.latitude ? `${formData.longitude}, ${formData.latitude}` : '选择区域后自动带出'
}}
</el-button>
</el-form-item>
@@ -104,6 +153,7 @@
<el-col :span="24">
<el-form-item label="调度内容" prop="dispatchContent">
<el-input
+ class="command-data-cockpit-search-input"
v-model="formData.dispatchContent"
type="textarea"
:rows="3"
@@ -116,6 +166,7 @@
<el-col :span="24">
<el-form-item label="调度结果" prop="dispatchResult">
<el-input
+ class="command-data-cockpit-search-input"
v-model="formData.dispatchResult"
type="textarea"
:rows="3"
@@ -128,6 +179,7 @@
<el-col :span="24">
<el-form-item label="处理措施" prop="disposeMeasure">
<el-input
+ class="command-data-cockpit-search-input"
v-model="formData.disposeMeasure"
type="textarea"
:rows="3"
@@ -139,15 +191,23 @@
</el-col>
</el-row>
</el-form>
+
<template #footer>
- <el-button @click="handleCancel">{{ readonly ? '关闭' : '取消' }}</el-button>
- <el-button v-if="!readonly" type="primary" :loading="submitting" :disabled="submitting" @click="handleSubmit">
- 确定
+ <el-button color="#2B2B4C" @click="handleCancel">{{ readonly ? '关闭' : '取消' }}</el-button>
+ <el-button
+ color="#284FE3"
+ v-if="!readonly"
+ type="primary"
+ :loading="submitting"
+ :disabled="submitting"
+ @click="handleSubmit"
+ >
+ 保存
</el-button>
</template>
<el-dialog v-model="visible1" title="选择位置" destroy-on-close @closed="positionClosed">
- <div class="ztzf-cesium" id="mapContainer"></div>
+ <div class="command-cesium" id="mapContainer"></div>
<template #footer>
<el-button @click="handleMapCancel">取消</el-button>
<el-button type="primary" @click="handleMapConfirm">确定</el-button>
@@ -157,7 +217,7 @@
</template>
<script setup>
-import { computed, nextTick, ref, inject } from 'vue'
+import { computed, nextTick, ref } from 'vue'
import { ElMessage } from 'element-plus'
import { fwTaskScheduleDetailApi, fwTaskScheduleSubmitApi } from './taskScheduleApi'
import { fwAreaDivideListApi } from '@/views/areaManage/partition/partitionApi'
@@ -168,7 +228,7 @@
// 初始化表单
const initForm = () => ({
deviceId: '', // 设备ID
- deviceCode: '', // 设备编码
+ deviceSn: '', // 设备编码
deviceName: '', // 设备名称
deviceStatus: '', // 设备状态
deviceStatusLabel: '', // 设备状态标签
@@ -193,9 +253,6 @@
deviceList: { type: Array, default: () => [] },
})
-// 注入字典数据
-const dictObj = inject('dictObj')
-
const emit = defineEmits(['success'])
const formRef = ref(null) // 表单实例
const formData = ref(initForm()) // 表单数据
@@ -209,16 +266,11 @@
const areaList = ref([]) // 区域列表
const rules = {
- deviceId: [{ required: true, message: '请选择设备', trigger: 'change' }],
- defenseSceneId: [{ required: true, message: '请选择场景', trigger: 'change' }],
- areaDivideId: [{ required: true, message: '请选择区域', trigger: 'change' }],
+ deviceId: fieldRules(true),
+ areaDivideId: fieldRules(true),
+ defenseSceneId: fieldRules(true),
dispatchUser: fieldRules(true, 50),
-}
-
-// 获取设备状态标签
-function getDeviceStatusLabel(status) {
- const statusMap = { 0: '离线', 1: '在线' }
- return statusMap[status] || status
+ dispatchDateRange: fieldRules(true),
}
// 设备选择变化处理
@@ -226,14 +278,12 @@
const device = props.deviceList.find(item => item.id === deviceId)
if (device) {
formData.value.deviceName = device.deviceName
- formData.value.deviceCode = device.deviceCode
+ formData.value.deviceSn = device.deviceSn
formData.value.deviceStatus = device.deviceStatus
- formData.value.deviceStatusLabel = getDeviceStatusLabel(device.deviceStatus)
} else {
formData.value.deviceName = ''
- formData.value.deviceCode = ''
+ formData.value.deviceSn = ''
formData.value.deviceStatus = ''
- formData.value.deviceStatusLabel = ''
}
}
@@ -247,6 +297,12 @@
}
}
+function handleAreaChange(areaId) {
+ const find = areaList.value.find(item => item.id === areaId)
+ formData.value.longitude = find?.longitude
+ formData.value.latitude = find?.latitude
+}
+
// 加载区域列表
async function loadAreaList(sceneId) {
const res = await fwAreaDivideListApi({ sceneId })
@@ -256,6 +312,10 @@
// 关闭弹框
function handleCancel() {
visible.value = false
+}
+
+function handleClosed() {
+ formData.value = initForm()
}
// 提交新增/编辑
@@ -285,7 +345,6 @@
const data = res?.data?.data ?? {}
formData.value = {
...data,
- deviceStatusLabel: getDeviceStatusLabel(data.deviceStatus),
dispatchDateRange:
data.dispatchStartTime && data.dispatchEndTime ? [data.dispatchStartTime, data.dispatchEndTime] : [],
}
--
Gitblit v1.9.3