From 9eb8bb59b802ceef1f52d334c8e577f2bf02c90e Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Wed, 21 Jan 2026 15:12:02 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 applications/drone-command/src/views/detectionCountermeasure/taskSchedule/FormDiaLog.vue |  179 +++++++++++++++-----------------------------
 applications/drone-command/src/styles/common/cockpit.scss                                |   32 ++-----
 applications/drone-command/src/views/detectionCountermeasure/taskSchedule/index.vue      |    4 
 applications/task-work-order/src/styles/common/cockpit.scss                              |    6 +
 applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue  |    6 +
 5 files changed, 81 insertions(+), 146 deletions(-)

diff --git a/applications/drone-command/src/styles/common/cockpit.scss b/applications/drone-command/src/styles/common/cockpit.scss
index 2844d2d..82e2132 100644
--- a/applications/drone-command/src/styles/common/cockpit.scss
+++ b/applications/drone-command/src/styles/common/cockpit.scss
@@ -215,10 +215,9 @@
 
                     .el-date-picker__editor-wrap {
                         .el-time-panel {
-                            background: #161B2C !important;
+                            background: #1A1A2A !important;
                             border-radius: 0px 0px 8px 8px;
-                            border: 1px solid !important;
-                            border-image: linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(115, 192, 255, 1)) 1 1 !important;
+                            border: none !important;
 
                             // 将 time-picker-popper 的样式移到这里
                             .el-time-panel__header {
@@ -229,10 +228,8 @@
 
                             .el-time-panel__content {
                                 .el-time-spinner__item {
-                                    color: #e6e6e6 !important;
-
                                     &:hover {
-                                        background: rgba(71, 157, 255, 0.3) !important;
+                                        background: transparent !important;
                                     }
 
                                     &.active {
@@ -243,23 +240,12 @@
                             }
 
                             .el-time-panel__footer {
-                                background: #161B2C !important;
-                                border-top: 1px solid rgba(71, 157, 255, 0.3) !important;
-
-                                .el-button {
-                                    color: #fff !important;
-
-                                    &:hover {
-                                        color: #479dff !important;
-                                    }
+                                .el-time-panel__btn {
+                                    color: #fff;
                                 }
-
-                                .el-time-panel__btn.cancel {
-                                    color: #fff !important;
-
-                                    &:hover {
-                                        color: #fff !important;
-                                    }
+                        
+                                .el-time-panel__btn:first-child {
+                                    color: #86909C;
                                 }
                             }
                         }
@@ -301,7 +287,7 @@
                         }
 
                         td.disabled div {
-                            background-color: #00193b !important;
+                            background-color: #1A1A2A !important;
                             color: #505050 !important;
                             cursor: not-allowed;
                         }
diff --git a/applications/drone-command/src/views/detectionCountermeasure/taskSchedule/FormDiaLog.vue b/applications/drone-command/src/views/detectionCountermeasure/taskSchedule/FormDiaLog.vue
index b411642..1fcc76a 100644
--- a/applications/drone-command/src/views/detectionCountermeasure/taskSchedule/FormDiaLog.vue
+++ b/applications/drone-command/src/views/detectionCountermeasure/taskSchedule/FormDiaLog.vue
@@ -1,12 +1,6 @@
 <template>
-	<el-dialog
-		class="command-page-view-dialog"
-		v-model="visible"
-		:title="titleEnum[dialogMode]"
-		destroy-on-close
-		:close-on-click-modal="false"
-		@closed="handleClosed"
-	>
+	<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">
 			<el-row>
 				<el-col :span="12">
@@ -51,92 +45,62 @@
 				</el-col>
 			</el-row>
 		</div>
-		<el-form
-			v-else
-			ref="formRef"
-			:model="formData"
-			:rules="rules"
-			:disabled="readonly"
-			label-width="100px"
-			class="dialog-form"
-		>
+		<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
-							class="command-select"
-							popper-class="command-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 class="command-select" popper-class="command-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="deviceSn">
-						<el-input
-							class="command-input"
-							v-model="formData.deviceSn"
-							disabled
-							placeholder="选择设备后自动带出"
-						/>
+						<el-input class="command-input" v-model="formData.deviceSn" disabled placeholder="选择设备后自动带出" />
+					</el-form-item>
+				</el-col>
+				<el-col :span="12">
+					<el-form-item label="设备状态">
+						<el-select class="command-select" popper-class="command-select-popper"
+							v-model="deviceStatus" disabled placeholder="选择设备后自动带出">
+							<el-option v-for="item in dictObj.deviceStatus" :key="item.dictKey" :label="item.dictValue"
+								:value="item.dictKey" />
+						</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 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"
-						>
-							<el-option v-for="item in areaList" :key="item.id" :label="item.areaName" :value="item.id" />
+						<el-select class="command-select" popper-class="command-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>
 					</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="请输入"
-							clearable
-						/>
+						<el-input class="command-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-date-picker"
-							popper-class="command-date-picker-popper"
-							v-model="formData.dispatchDateRange"
-							type="datetimerange"
-							range-separator="至"
-							start-placeholder="开始日期"
-							end-placeholder="结束日期"
-							value-format="YYYY-MM-DD HH:mm:ss"
-						/>
+						<el-date-picker class="command-date-picker" popper-class="command-date-picker-popper"
+							v-model="formData.dispatchDateRange" type="datetimerange" range-separator="至"
+							start-placeholder="开始日期" end-placeholder="结束日期" value-format="YYYY-MM-DD HH:mm:ss" />
 					</el-form-item>
 				</el-col>
 				<el-col :span="24">
@@ -144,48 +108,28 @@
 						<!--						<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>
 				</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"
-							maxlength="500"
-							placeholder="请输入"
-							clearable
-						/>
+						<el-input class="command-input" v-model="formData.dispatchContent" type="textarea" :rows="3"
+							maxlength="500" placeholder="请输入" clearable />
 					</el-form-item>
 				</el-col>
 				<el-col :span="24">
 					<el-form-item label="调度结果" prop="dispatchResult">
-						<el-input
-							class="command-input"
-							v-model="formData.dispatchResult"
-							type="textarea"
-							:rows="3"
-							maxlength="500"
-							placeholder="请输入"
-							clearable
-						/>
+						<el-input class="command-input" v-model="formData.dispatchResult" type="textarea" :rows="3"
+							maxlength="500" placeholder="请输入" clearable />
 					</el-form-item>
 				</el-col>
 				<el-col :span="24">
 					<el-form-item label="处理措施" prop="disposeMeasure">
-						<el-input
-							class="command-input"
-							v-model="formData.disposeMeasure"
-							type="textarea"
-							:rows="3"
-							maxlength="500"
-							placeholder="请输入"
-							clearable
-						/>
+						<el-input class="command-input" v-model="formData.disposeMeasure" type="textarea" :rows="3"
+							maxlength="500" placeholder="请输入" clearable />
 					</el-form-item>
 				</el-col>
 			</el-row>
@@ -193,14 +137,8 @@
 
 		<template #footer>
 			<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 color="#284FE3" v-if="!readonly" type="primary" :loading="submitting" :disabled="submitting"
+				@click="handleSubmit">
 				保存
 			</el-button>
 		</template>
@@ -252,6 +190,8 @@
 	deviceList: { type: Array, default: () => [] },
 })
 
+const dictObj = inject('dictObj')
+
 const emit = defineEmits(['success'])
 const formRef = ref(null) // 表单实例
 const formData = ref(initForm()) // 表单数据
@@ -263,6 +203,7 @@
 const titleEnum = ref({ edit: '编辑', view: '查看', add: '新增' })
 const tempLocation = ref({ longitude: null, latitude: null })
 const areaList = ref([]) // 区域列表
+const deviceStatus = ref('')
 
 const rules = {
 	deviceId: fieldRules(true),
@@ -273,21 +214,23 @@
 }
 
 // 设备选择变化处理
-function handleDeviceChange(deviceId) {
+function handleDeviceChange (deviceId) {
 	const device = props.deviceList.find(item => item.id === deviceId)
 	if (device) {
 		formData.value.deviceName = device.deviceName
 		formData.value.deviceSn = device.deviceSn
 		formData.value.deviceStatus = device.deviceStatus
+		deviceStatus.value = String(device.status)
 	} else {
 		formData.value.deviceName = ''
 		formData.value.deviceSn = ''
 		formData.value.deviceStatus = ''
+		deviceStatus.value = ''
 	}
 }
 
 // 场景选择变化处理
-async function handleSceneChange(sceneId) {
+async function handleSceneChange (sceneId) {
 	formData.value.areaDivideId = ''
 	if (sceneId) {
 		await loadAreaList(sceneId)
@@ -296,29 +239,29 @@
 	}
 }
 
-function handleAreaChange(areaId) {
+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) {
+async function loadAreaList (sceneId) {
 	const res = await fwAreaDivideListApi({ sceneId })
 	areaList.value = res?.data?.data ?? []
 }
 
 // 关闭弹框
-function handleCancel() {
+function handleCancel () {
 	visible.value = false
 }
 
-function handleClosed() {
+function handleClosed () {
 	formData.value = initForm()
 }
 
 // 提交新增/编辑
-async function handleSubmit() {
+async function handleSubmit () {
 	const isValid = await formRef.value?.validate().catch(() => false)
 	if (!isValid) return
 	submitting.value = true
@@ -338,7 +281,7 @@
 }
 
 // 加载详情
-async function loadDetail() {
+async function loadDetail () {
 	if (!formData.value.id) return
 	const res = await fwTaskScheduleDetailApi({ id: formData.value.id })
 	const data = res?.data?.data ?? {}
@@ -354,7 +297,7 @@
 }
 
 // 左键点击事件处理
-function LeftClickEvent(click) {
+function LeftClickEvent (click) {
 	const pos = click.position
 	const cartesian3 = viewer.camera.pickEllipsoid(pos, viewer.scene.globe.ellipsoid)
 	if (!cartesian3) {
@@ -395,7 +338,7 @@
 }
 
 // 地图弹框关闭处理
-function positionClosed() {
+function positionClosed () {
 	redPointEntity = null
 }
 
@@ -403,7 +346,7 @@
 let redPointEntity
 
 // 选择位置
-async function selectLocation() {
+async function selectLocation () {
 	visible1.value = true
 	await nextTick()
 	const publicCesiumInstance = new PublicCesium({
@@ -418,13 +361,13 @@
 }
 
 // 地图取消
-function handleMapCancel() {
+function handleMapCancel () {
 	tempLocation.value = { longitude: null, latitude: null }
 	visible1.value = false
 }
 
 // 地图确认
-function handleMapConfirm() {
+function handleMapConfirm () {
 	if (tempLocation.value.longitude != null && tempLocation.value.latitude != null) {
 		formData.value.longitude = _.round(tempLocation.value.longitude, 6)
 		formData.value.latitude = _.round(tempLocation.value.latitude, 6)
@@ -433,7 +376,7 @@
 }
 
 // 打开弹框
-async function open({ mode, row } = {}) {
+async function open ({ mode, row } = {}) {
 	dialogMode.value = mode || 'add'
 	formData.value = dialogMode.value === 'add' ? initForm() : { ...row }
 	if (dialogMode.value !== 'add') {
diff --git a/applications/drone-command/src/views/detectionCountermeasure/taskSchedule/index.vue b/applications/drone-command/src/views/detectionCountermeasure/taskSchedule/index.vue
index 636df76..b23e976 100644
--- a/applications/drone-command/src/views/detectionCountermeasure/taskSchedule/index.vue
+++ b/applications/drone-command/src/views/detectionCountermeasure/taskSchedule/index.vue
@@ -62,11 +62,13 @@
 					<el-table-column type="index" show-overflow-tooltip width="64" label="序号" />
 					<el-table-column prop="deviceName" show-overflow-tooltip width="140" label="设备名称" />
 					<el-table-column prop="deviceSn" show-overflow-tooltip width="140" label="设备编码" />
+					
 					<el-table-column prop="status" show-overflow-tooltip width="100" label="设备状态">
 						<template v-slot="{ row }">
-							{{ formatDeployLocation(row) }}
+							{{ getDictLabel(row.deviceStatus, dictObj.deviceStatus) }}
 						</template>
 					</el-table-column>
+
 					<el-table-column prop="areaName" show-overflow-tooltip width="120" label="区域" />
 					<el-table-column prop="defenseZoneName" show-overflow-tooltip width="120" label="场景" />
 					<el-table-column show-overflow-tooltip label="调度位置">
diff --git a/applications/task-work-order/src/styles/common/cockpit.scss b/applications/task-work-order/src/styles/common/cockpit.scss
index 765a052..6ad24b1 100644
--- a/applications/task-work-order/src/styles/common/cockpit.scss
+++ b/applications/task-work-order/src/styles/common/cockpit.scss
@@ -461,6 +461,7 @@
   background: #FFFFFF;
   border: 1px solid #CCCCCC;
   border-radius: 6px 6px 6px 6px;
+  margin-top: 10vh !important;
 
 
   .el-dialog__header {
@@ -481,8 +482,9 @@
   }
 
   .el-dialog__body {
-    height: 0;
-    flex: 1;
+    max-height: 70vh;
+    min-height: 20vh;
+    overflow: auto;
 
     .detail-title {
       margin-bottom: 20px;
diff --git a/applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue b/applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue
index 6d05750..ca55aa3 100644
--- a/applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue
+++ b/applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue
@@ -12,7 +12,6 @@
 				<el-steps direction="vertical" :active="processList.length">
 					<el-step v-for="item in processList" :title="item.flowName" :description="item.flowDesc" />
 				</el-steps>
-				<!--				<div v-for="(item, index) in processList">{{ index }}-{{ item.flowName }}{{ item.flowDesc }}</div>-->
 			</div>
 			<div class="leftBox">
 				<div v-if="dialogReadonly">
@@ -121,7 +120,7 @@
 						</el-col>
 					</el-row>
 				</el-form>
-
+				<div class="detail-title" :style="{ marginTop: pxToRem(20) }">工单执行范围</div>
 				<CommonCesiumMap
 					ref="mapRef"
 					class="leftMap gd-cesium"
@@ -469,6 +468,9 @@
 			color: #272e37;
 		}
 	}
+	.processBox {
+		width: 312px;
+	}
 }
 
 .setHeight {

--
Gitblit v1.9.3