From fb39a7bb69cc55d2e1ce61d47e0677aa40540f95 Mon Sep 17 00:00:00 2001
From: chenyao <1219716595@qq.com>
Date: Fri, 30 Jan 2026 16:20:33 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 applications/task-work-order/src/views/orderView/orderDataManage/supplyAdd/FormDiaLog.vue |   90 +++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 82 insertions(+), 8 deletions(-)

diff --git a/applications/task-work-order/src/views/orderView/orderDataManage/supplyAdd/FormDiaLog.vue b/applications/task-work-order/src/views/orderView/orderDataManage/supplyAdd/FormDiaLog.vue
index d6ae8f9..9935c07 100644
--- a/applications/task-work-order/src/views/orderView/orderDataManage/supplyAdd/FormDiaLog.vue
+++ b/applications/task-work-order/src/views/orderView/orderDataManage/supplyAdd/FormDiaLog.vue
@@ -8,7 +8,7 @@
 		:close-on-click-modal="false"
 	>
 		<div class="detail-container" v-if="dialogReadonly">
-			<el-row class="detail-row-view">
+			<el-row class="detail-row-view supplyAddLabel">
 				<el-col :span="12">
 					<div class="label">需求名称</div>
 					<div class="val">{{ formData.demandName }}</div>
@@ -194,9 +194,45 @@
 			>
 				保存
 			</el-button>
-			<el-button color="#4C34FF" :loading="submitting" :disabled="submitting" @click="handleApply">申请</el-button>
+			<el-button color="#4C34FF" :loading="submitting" :disabled="submitting" @click="handleApply" >申请</el-button>
 
 		</template>
+
+		<!-- 申请弹框 -->
+		<el-dialog
+			class="gd-dialog"
+			v-model="showApplyDialog"
+			title="申请"
+			@closed="handleApplyDialogClosed"
+			width="500px"
+			destroy-on-close
+			:close-on-click-modal="false"
+		>
+			<el-form class="gd-dialog-form" ref="applyFormRef" :model="applyFormData" :rules="applyRules">
+				<el-row>
+					<el-col :span="24">
+						<el-form-item label="申请对象部门" prop="applyTargetDeptId">
+							<el-tree-select
+								class="gd-select"
+								popper-class="gd-tree-select-popper"
+								v-model="applyFormData.applyTargetDeptId"
+								node-key="id"
+								:data="deptTree"
+								:props="treeProps"
+								check-strictly
+								clearable
+							/>
+						</el-form-item>
+					</el-col>
+				</el-row>
+			</el-form>
+			<template #footer>
+				<el-button color="#F2F3F5" @click="showApplyDialog = false">取消</el-button>
+				<el-button class="" color="#4C34FF" :loading="applying" :disabled="applying" @click="handleApplySubmit">
+					确认
+				</el-button>
+			</template>
+		</el-dialog>
 	</el-dialog>
 </template>
 
@@ -240,6 +276,14 @@
 const dialogReadonly = computed(() => dialogMode.value === 'view')
 const titleEnum = ref({ edit: '编辑', view: '查看', add: '新增' })
 
+// 申请弹框相关
+const showApplyDialog = ref(false)
+const applyFormRef = ref(null)
+const applying = ref(false)
+const applyFormData = ref({
+	applyTargetDeptId: ''
+})
+
 const rules = {
 	demandName: fieldRules(true),
 	demandType: fieldRules(true),
@@ -253,6 +297,11 @@
 	responsibleDeptId: fieldRules(true),
 	dataSource: fieldRules(true),
 	demandInfo: fieldRules(true),
+}
+
+// 申请弹框校验规则
+const applyRules = {
+	applyTargetDeptId: fieldRules(true),
 }
 // 根据部门ID获取部门名称
 function getDeptNameById(deptId, deptList) {
@@ -295,19 +344,37 @@
 	}
 }
 
-// 申请提交
+// 申请弹框关闭处理
+function handleApplyDialogClosed() {
+	applyFormData.value.applyTargetDeptId = ''
+}
+// 申请
 async function handleApply() {
-	const isValid = await formRef.value?.validate().catch(() => false)
+	 // 先验证主表单
+	 const mainFormValid = await formRef.value?.validate().catch(() => false)
+	 if (!mainFormValid) return
+
+	 showApplyDialog.value = true
+ }
+// 申请提交
+async function handleApplySubmit() {
+	const isValid = await applyFormRef.value?.validate().catch(() => false)
 	if (!isValid) return
-	submitting.value = true
+	applying.value = true
 	try {
-		formData.value.demandStatus = '1'
-		await gdSupplyDemandSubmitApi(formData.value)
+		// 构建申请数据
+		const applyData = {
+			...formData.value,
+			demandStatus: '1',
+			applyTargetDeptId: applyFormData.value.applyTargetDeptId
+		}
+		await gdSupplyDemandSubmitApi(applyData)
 		ElMessage.success('申请成功')
+		showApplyDialog.value = false
 		visible.value = false
 		emit('success')
 	} finally {
-		submitting.value = false
+		applying.value = false
 	}
 }
 
@@ -334,3 +401,10 @@
 
 defineExpose({ open })
 </script>
+<style scoped lang="scss">
+.supplyAddLabel {
+	.label {
+		width: 120px !important;
+	}
+}
+</style>
\ No newline at end of file

--
Gitblit v1.9.3