From beb95fb5fc166804056abafd70fc01ac27de7621 Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Mon, 26 Jan 2026 09:11:00 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 applications/task-work-order/src/views/orderView/orderDataManage/supplyAdd/FormDiaLog.vue |   67 ++++++++++++++++++++++++++++-----
 1 files changed, 56 insertions(+), 11 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 e0eeede..2031353 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
@@ -5,9 +5,10 @@
 		:title="titleEnum[dialogMode]"
 		@closed="visible = false"
 		destroy-on-close
+		:close-on-click-modal="false"
 	>
 		<div class="detail-container" v-if="dialogReadonly">
-			<el-row>
+			<el-row class="detail-row-view">
 				<el-col :span="12">
 					<div class="label">需求名称</div>
 					<div class="val">{{ formData.demandName }}</div>
@@ -66,7 +67,7 @@
 			:model="formData"
 			:rules="rules"
 			:disabled="dialogReadonly"
-			label-width="120px"
+			label-width="160px"
 		>
 			<el-row>
 				<el-col :span="12">
@@ -172,13 +173,11 @@
 						<el-input class="gd-input" v-model="formData.dataSource" placeholder="请输入" clearable />
 					</el-form-item>
 				</el-col>
-				<el-col :span="24">
+				<el-col :span="12">
 					<el-form-item label="需求信息项" prop="demandInfo">
 						<el-input
 							class="gd-input"
 							v-model="formData.demandInfo"
-							type="textarea"
-							:rows="4"
 							placeholder="请输入"
 							clearable
 						/>
@@ -186,18 +185,17 @@
 				</el-col>
 			</el-row>
 		</el-form>
-		<template #footer>
-			<el-button color="#F2F3F5" @click="visible = false">{{ dialogReadonly ? '关闭' : '取消' }}</el-button>
+		<template #footer v-if="!dialogReadonly">
 			<el-button
-				class="save-btn"
-				color="#4C34FF"
-				v-if="!dialogReadonly"
+				color="#F2F3F5"
 				:loading="submitting"
 				:disabled="submitting"
 				@click="handleSubmit"
 			>
 				保存
 			</el-button>
+			<el-button class="save-btn" color="#4C34FF" :loading="submitting" :disabled="submitting" @click="handleApply">申请</el-button>
+
 		</template>
 	</el-dialog>
 </template>
@@ -226,6 +224,7 @@
 	responsibleDeptId: '',
 	dataSource: '',
 	demandInfo: '',
+	demandStatus: '0'
 })
 
 const dictObj = inject('dictObj')
@@ -255,15 +254,56 @@
 	dataSource: fieldRules(true),
 	demandInfo: fieldRules(true),
 }
+// 根据部门ID获取部门名称
+function getDeptNameById(deptId, deptList) {
+	// 处理类型转换,确保比较的是相同类型
+	const targetId = String(deptId)
 
+	// 递归遍历部门树
+	function findDept(deptList) {
+		for (const dept of deptList) {
+			if (String(dept.id) === targetId) {
+				return dept.name
+			}
+			if (Array.isArray(dept.children) && dept.children.length > 0) {
+				const name = findDept(dept.children)
+				if (name) return name
+			}
+		}
+		return ''
+	}
+
+	if (!targetId || !Array.isArray(deptList) || deptList.length === 0) {
+		return ''
+	}
+
+	return findDept(deptList)
+}
 // 提交新增/编辑
 async function handleSubmit() {
 	const isValid = await formRef.value?.validate().catch(() => false)
 	if (!isValid) return
 	submitting.value = true
 	try {
+		formData.value.demandStatus = '0'
 		await gdSupplyDemandSubmitApi(formData.value)
 		ElMessage.success(dialogMode.value === 'add' ? '新增成功' : '更新成功')
+		visible.value = false
+		emit('success')
+	} finally {
+		submitting.value = false
+	}
+}
+
+// 申请提交
+async function handleApply() {
+	const isValid = await formRef.value?.validate().catch(() => false)
+	if (!isValid) return
+	submitting.value = true
+	try {
+		formData.value.demandStatus = '1'
+		await gdSupplyDemandSubmitApi(formData.value)
+		ElMessage.success('申请成功')
 		visible.value = false
 		emit('success')
 	} finally {
@@ -275,7 +315,12 @@
 async function loadDetail() {
 	if (!formData.value.id) return
 	const res = await gdSupplyDemandDetailApi({ id: formData.value.id })
-	formData.value = res?.data?.data ?? {}
+	const data = res?.data?.data ?? {}
+	// 如果没有部门名称,根据部门ID从部门树中获取
+	if (data.responsibleDeptId && !data.responsibleDeptName) {
+		data.responsibleDeptName = getDeptNameById(data.responsibleDeptId, deptTree.value)
+	}
+	formData.value = data
 }
 
 // 打开弹框

--
Gitblit v1.9.3