From 0be723f121c68eefafb93aba726edb7866edd0d1 Mon Sep 17 00:00:00 2001
From: chenyao <1219716595@qq.com>
Date: Fri, 23 Jan 2026 09:55:56 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue |  137 +++++++++++++++++++++++++--------------------
 1 files changed, 77 insertions(+), 60 deletions(-)

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 467f20a..0cafd2f 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
@@ -179,48 +179,35 @@
 		</div>
 
 		<template #footer>
-			<!--			<el-button color="#F2F3F5" @click="visible = false">{{ dialogReadonly ? '关闭' : '取消' }}</el-button>-->
-			<el-button
-				class="save-btn"
-				color="#4C34FF"
-				v-if="(!dialogReadonly && !formData.id) || suddenlyEdit"
-				:loading="submitting"
-				:disabled="submitting"
-				@click="handleSubmit"
-			>
-				发布
-			</el-button>
+			<template v-if="requester">
+				<el-button
+					v-if="['11', '31'].includes(gdStatus) || suddenlyEdit || (!dialogReadonly && !formData.id)"
+					:loading="submitting"
+					:disabled="submitting"
+					@click="handleSubmit"
+				>
+					{{ gdStatus === '11' ? '发布' : '提交修改' }}
+					发布
+				</el-button>
+				<el-button v-if="['11', '21', '23', '24', '25', '31', '60'].includes(gdStatus)" @click="viewDescription">
+					{{ gdStatusObj[gdStatus].reason }}
+				</el-button>
+				<el-button @click="addDescription" v-if="['20', '24', '25', '50'].includes(gdStatus)">
+					{{ gdStatus === '50' ? '结算' : '申请取消' }}
+				</el-button>
+				<el-button @click="requestModification" v-if="['20', '25'].includes(gdStatus)">申请修改</el-button>
+			</template>
 			<template v-else>
-				<template v-if="requester">
-					<el-button
-						class="save-btn"
-						color="#4C34FF"
-						v-if="editStatus.includes(gdStatus)"
-						:loading="submitting"
-						:disabled="submitting"
-						@click="handleSubmit"
-					>
-						发布
-					</el-button>
-					<el-button color="#F2F3F5" v-if="gdStatus === '11'" @click="addDescription(2, 'view')">拒单原因</el-button>
-					<el-button color="#F2F3F5" @click="statusChange(3)" v-if="gdStatus === '20'">申请取消</el-button>
-					<el-button color="#4C34FF" @click="requestModification" v-if="gdStatus === '20'" class="save-btn">
-						申请修改
-					</el-button>
-				</template>
-				<template v-else>
-					<el-button color="#F2F3F5" v-if="gdStatus === '10'" @click="addDescription(2)">拒绝接单</el-button>
-					<el-button color="#4C34FF" v-if="gdStatus === '10'" @click="statusChange(1)" class="save-btn">接单</el-button>
-					<el-button color="#F2F3F5" v-if="gdStatus === '22'" @click="statusChange(7)">同意修改</el-button>
-					<el-button color="#4C34FF" v-if="gdStatus === '22'" @click="statusChange(8)" class="save-btn">
-						不同意修改
-					</el-button>
-					<el-button color="#F2F3F5" v-if="gdStatus === '21'" @click="statusChange(5)">同意取消</el-button>
-					<el-button color="#4C34FF" v-if="gdStatus === '21'" @click="statusChange(6)" class="save-btn">
-						不同意取消
-					</el-button>
-					<el-button color="#F2F3F5" v-if="gdStatus === '30'" @click="addDescription(9)">协商修改</el-button>
-				</template>
+				<el-button v-if="['21', '23'].includes(gdStatus)" @click="viewDescription">
+					{{ gdStatusObj[gdStatus].reason }}
+				</el-button>
+				<el-button v-if="gdStatus === '10'" @click="addDescription">拒绝接单</el-button>
+				<el-button v-if="gdStatus === '10'" @click="statusChange(1)">接单</el-button>
+				<el-button v-if="gdStatus === '22'" @click="statusChange(7)">同意修改</el-button>
+				<el-button v-if="gdStatus === '22'" @click="statusChange(8)">不同意修改</el-button>
+				<el-button v-if="gdStatus === '21'" @click="statusChange(5)">同意取消</el-button>
+				<el-button v-if="gdStatus === '21'" @click="statusChange(6)">不同意取消</el-button>
+				<el-button v-if="gdStatus === '30'" @click="addDescription">协商修改</el-button>
 			</template>
 		</template>
 
@@ -286,11 +273,27 @@
 let drawPolygonExample
 let pointList = ref([])
 const requester = inject('requester')
-const editStatus = inject('editStatus')
 const suddenlyEdit = ref(false)
 const processList = ref([])
 let viewPlane
 const hasPatrolTaskList = computed(() => ['30', '40', '50', '60'].includes(String(formData.value.workOrderStatus)))
+
+const gdStatusObj = {
+	'0': { reason: '' },
+	'10': { reason: '拒绝原因', operationType: '2' },
+	'11': { reason: '拒绝原因' },
+	'20': { reason: '取消原因', operationType: '3' },
+	'21': { reason: '取消原因' },
+	'22': { reason: '驳回原因' },
+	'23': { reason: '取消原因' },
+	'24': { reason: '驳回原因', operationType: '3' },
+	'25': { reason: '驳回原因', operationType: '3' },
+	'30': { reason: '修改原因', operationType: '9' },
+	'31': { reason: '修改原因' },
+	'40': { reason: '' },
+	'50': { reason: '情况说明', operationType: '10' },
+	'60': { reason: '情况说明' },
+}
 
 // 工单状态:0草稿、10发布中_接单中、11发布中_拒绝接单、20响应中_待拆分、21响应中_申请取消、22响应中_申请修改、23响应中_已取消、
 // 24响应中_拒绝取消、25响应中_拒绝修改 30执行中_待全部完成、31执行中_协商修改、40完成待验_待全部验收、50验收通过_待结算、60结算完成_已结算
@@ -302,9 +305,13 @@
 	executeStartTime: fieldRules(true),
 	deviceLoadDemand: fieldRules(true),
 }
+
 // 操作类型:1接单,2拒接接单,3申请取消,4申请修改, 5同意取消 6不同意取消 7.同意修改 8.不同意修改 9.协商修改
 function statusChange(operationType) {
-	gdWorkOrderHandleStatusApi({ operationType: operationType, workOrderId: formData.value.id }).then(res => {
+	gdWorkOrderHandleStatusApi({
+		operationType: operationType,
+		workOrderId: formData.value.id,
+	}).then(res => {
 		visible.value = false
 		emit('success')
 	})
@@ -326,24 +333,24 @@
 }
 
 // 填写说明
-function addDescription(type, mode = 'add') {
-	let formLabel = ''
-	switch (type) {
-		case 2:
-			formLabel = '拒绝原因'
-			break
-		case 9:
-			formLabel = '修改原因'
-			break
-	}
+function addDescription() {
 	rejectVisible.value = true
 	nextTick(() => {
 		refuseOrderDialogRef.value.open({
-			mode,
+			mode: 'add',
 			row: formData.value,
-			type,
-			formLabel,
+			type: gdStatusObj[gdStatus.value].operationType,
+			formLabel: gdStatusObj[gdStatus.value].reason,
 		})
+	})
+}
+
+function viewDescription() {
+	rejectVisible.value = true
+	refuseOrderDialogRef.value.open({
+		mode: 'view',
+		row: formData.value,
+		formLabel: gdStatusObj[gdStatus.value].reason,
 	})
 }
 
@@ -365,6 +372,7 @@
 
 function loadDemandChange() {
 	formData.value.recommendDeviceIds = ''
+	selectedDevices.value = []
 	getDeviceList()
 	syncSelection()
 }
@@ -380,8 +388,10 @@
 	const isValid = await formRef.value?.validate().catch(() => false)
 	if (!isValid) return
 	if (!pointList.value.length) {
-		ElMessage.warning('请绘制范围')
-		return
+		return ElMessage.warning('请绘制范围')
+	}
+	if (!formData.value.recommendDeviceIds) {
+		return ElMessage.warning('请选择设备')
 	}
 	submitting.value = true
 	try {
@@ -436,6 +446,8 @@
 		const val = cartesian3Convert(item, viewer)
 		return { ...val, lng: val.longitude, lat: val.latitude }
 	})
+	formData.value.recommendDeviceIds = ''
+	selectedDevices.value = []
 	await getDeviceList()
 	syncSelection()
 }
@@ -502,10 +514,11 @@
 }
 
 import droneIcon from '@/assets/images/orderView/orderManage/drone.png'
+
 function renderingDevice(list) {
-   // 渲染红点
+	// 渲染红点
 	list.forEach(item => {
-		const position = Cesium.Cartesian3.fromDegrees(item.longitude || 115.00, item.latitude || 27.11)
+		const position = Cesium.Cartesian3.fromDegrees(item.longitude || 115.0, item.latitude || 27.11)
 		viewer.entities.add({
 			position: position,
 			billboard: {
@@ -554,16 +567,19 @@
 .content {
 	display: flex;
 	gap: 0 20px;
+
 	.leftBox {
 		width: 0;
 		flex: 1;
 		display: flex;
 		flex-direction: column;
+
 		.gd-cesium {
 			width: 100%;
 			height: 423px;
 		}
 	}
+
 	.rightBox {
 		.title {
 			font-weight: 500;
@@ -571,6 +587,7 @@
 			color: #272e37;
 		}
 	}
+
 	.processBox {
 		width: 312px;
 	}

--
Gitblit v1.9.3