From a67c63741fe925b05db2505e3f5bd297b6a5032d Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Tue, 20 Jan 2026 10:30:16 +0800
Subject: [PATCH] feat:刷新数据

---
 applications/task-work-order/src/views/orderView/orderDataManage/supplyAdd/ApplyViewDialog.vue |  496 ++++++++++++++++++++++++++-----------------------------
 1 files changed, 234 insertions(+), 262 deletions(-)

diff --git a/applications/task-work-order/src/views/orderView/orderDataManage/supplyAdd/ApplyViewDialog.vue b/applications/task-work-order/src/views/orderView/orderDataManage/supplyAdd/ApplyViewDialog.vue
index ec99aae..3d69c8e 100644
--- a/applications/task-work-order/src/views/orderView/orderDataManage/supplyAdd/ApplyViewDialog.vue
+++ b/applications/task-work-order/src/views/orderView/orderDataManage/supplyAdd/ApplyViewDialog.vue
@@ -1,151 +1,127 @@
 <template>
-	<el-dialog
-		class="gd-dialog"
-		v-model="visible"
-		:title="'查看申请'"
-		@closed="visible = false"
-		destroy-on-close
-	>
-	<div class="detail-container">
-		<!-- 左侧步骤条 -->
-		<div class="detail-left">
-			<el-steps :active="activeStep" direction="vertical" align-center>
-				<el-step v-for="(step, index) in steps" :key="index" :title="step.title">
-					<template #description>
-						<div class="step-person">{{ step.person }}</div>
-						<div class="step-time">{{ step.time }}</div>
-					</template>
-				</el-step>
-			</el-steps>
-		</div>
-		<!-- 右侧表单数据 -->
-		<div class="detail-right">
-		<div>
-			<div class="label">需求详情</div>
-			<div class="requirementsDetailsBox">
-				<div class="detail-table">
-					<div class="detail-row">
-						<div class="detail-cell">
-							<span class="cell-label">需求名称</span>
-							<span class="cell-value">{{ formData.demandName }}</span>
-						</div>
-						<div class="detail-cell">
-							<span class="cell-label">需求类型</span>
-							<span class="cell-value">{{ getDictLabel(formData.demandType, dictObj.requirementType) }}</span>
+	<el-dialog class="gd-dialog" v-model="visible" :title="'查看申请'" @closed="visible = false" destroy-on-close>
+		<div class="detail-container">
+			<!-- 左侧步骤条 -->
+			<div class="detail-left">
+				<el-steps :active="activeStep" direction="vertical" align-center>
+					<el-step v-for="(step, index) in steps" :key="index" :title="step.title">
+						<template #description>
+							<div class="step-person">{{ step.person }}</div>
+							<div class="step-time">{{ step.time }}</div>
+						</template>
+					</el-step>
+				</el-steps>
+			</div>
+			<!-- 右侧表单数据 -->
+			<div class="detail-right">
+				<div>
+					<div class="label">需求详情</div>
+					<div class="requirementsDetailsBox">
+						<div class="detail-table">
+							<div class="detail-row">
+								<div class="detail-cell">
+									<span class="cell-label">需求名称</span>
+									<span class="cell-value">{{ formData.demandName }}</span>
+								</div>
+								<div class="detail-cell">
+									<span class="cell-label">需求类型</span>
+									<span class="cell-value">{{ getDictLabel(formData.demandType, dictObj.requirementType) }}</span>
+								</div>
+							</div>
+							<div class="detail-row">
+								<div class="detail-cell">
+									<span class="cell-label">需求联系人</span>
+									<span class="cell-value">{{ formData.contactPerson }}</span>
+								</div>
+								<div class="detail-cell">
+									<span class="cell-label">需求联系人电话</span>
+									<span class="cell-value">{{ formData.contactPhone }}</span>
+								</div>
+							</div>
+							<div class="detail-row">
+								<div class="detail-cell">
+									<span class="cell-label">需求邮箱</span>
+									<span class="cell-value">{{ formData.contactEmail }}</span>
+								</div>
+								<div class="detail-cell">
+									<span class="cell-label">更新周期</span>
+									<span class="cell-value">{{ formData.updateCycle }}</span>
+								</div>
+							</div>
+							<div class="detail-row">
+								<div class="detail-cell">
+									<span class="cell-label">申请依据</span>
+									<span class="cell-value">{{ formData.applyBasis }}</span>
+								</div>
+								<div class="detail-cell">
+									<span class="cell-label">共享类型</span>
+									<span class="cell-value">{{ getDictLabel(formData.shareType, dictObj.sharedType) }}</span>
+								</div>
+							</div>
+							<div class="detail-row">
+								<div class="detail-cell">
+									<span class="cell-label">应用场景类型</span>
+									<span class="cell-value">{{ getDictLabel(formData.applicationScene, dictObj.appSceneType) }}</span>
+								</div>
+								<div class="detail-cell">
+									<span class="cell-label">责任部门</span>
+									<span class="cell-value">{{ formData.responsibleDeptName }}</span>
+								</div>
+							</div>
+							<div class="detail-row">
+								<div class="detail-cell">
+									<span class="cell-label">数据来源依据</span>
+									<span class="cell-value">{{ formData.dataSource }}</span>
+								</div>
+								<div class="detail-cell">
+									<span class="cell-label">需求信息项</span>
+									<span class="cell-value">{{ formData.demandInfo }}</span>
+								</div>
+							</div>
 						</div>
 					</div>
-					<div class="detail-row">
-						<div class="detail-cell">
-							<span class="cell-label">需求联系人</span>
-							<span class="cell-value">{{ formData.contactPerson }}</span>
-						</div>
-						<div class="detail-cell">
-							<span class="cell-label">需求联系人电话</span>
-							<span class="cell-value">{{ formData.contactPhone }}</span>
-						</div>
-					</div>
-					<div class="detail-row">
-						<div class="detail-cell">
-							<span class="cell-label">需求邮箱</span>
-							<span class="cell-value">{{ formData.contactEmail }}</span>
-						</div>
-						<div class="detail-cell">
-							<span class="cell-label">更新周期</span>
-							<span class="cell-value">{{ formData.updateCycle }}</span>
-						</div>
-					</div>
-					<div class="detail-row">
-						<div class="detail-cell">
-							<span class="cell-label">申请依据</span>
-							<span class="cell-value">{{ formData.applyBasis }}</span>
-						</div>
-						<div class="detail-cell">
-							<span class="cell-label">共享类型</span>
-							<span class="cell-value">{{ getDictLabel(formData.shareType, dictObj.sharedType) }}</span>
-						</div>
-					</div>
-					<div class="detail-row">
-						<div class="detail-cell">
-							<span class="cell-label">应用场景类型</span>
-							<span class="cell-value">{{ getDictLabel(formData.applicationScene, dictObj.appSceneType) }}</span>
-						</div>
-						<div class="detail-cell">
-							<span class="cell-label">责任部门</span>
-							<span class="cell-value">{{ formData.responsibleDeptName }}</span>
-						</div>
-					</div>
-					<div class="detail-row">
-						<div class="detail-cell">
-							<span class="cell-label">数据来源依据</span>
-							<span class="cell-value">{{ formData.dataSource }}</span>
-						</div>
-						<div class="detail-cell">
-							<span class="cell-label">需求信息项</span>
-							<span class="cell-value">{{ formData.demandInfo }}</span>
+				</div>
+				<div>
+					<div class="label">数据上传</div>
+					<div class="upload-container">
+						<el-upload
+							ref="uploadRef"
+							:auto-upload="false"
+							:limit="1"
+							:on-change="handleFileChange"
+							:on-remove="handleFileRemove"
+							:before-upload="beforeFileUpload"
+							:file-list="fileList"
+							accept=".zip,.rar,.7z,.tar,.gz"
+							class="upload-demo"
+						>
+							<template #trigger>
+								<el-button type="primary">选择文件</el-button>
+							</template>
+							<template #tip>
+								<div class="el-upload__tip">请上传压缩文件 (.zip/.rar/.7z/.tar/.gz)</div>
+							</template>
+						</el-upload>
+						<el-button type="success" :disabled="!selectedFile" @click="handleUpload" style="margin-top: 10px">
+							上传文件
+						</el-button>
+
+						<!-- 已上传文件列表 -->
+						<div v-if="uploadedFiles.length > 0" class="uploaded-files">
+							<h4>已上传文件:</h4>
+							<div v-for="(file, index) in uploadedFiles" :key="index" class="file-item">
+								<span>{{ file.originalName }}</span>
+								<el-button type="text" @click="viewFile(file)" style="margin-left: 10px">查看</el-button>
+								<el-button type="text" @click="downloadFile(file)" style="margin-left: 5px">下载</el-button>
+							</div>
 						</div>
 					</div>
 				</div>
 			</div>
 		</div>
-			<div>
-				<div class="label">数据上传</div>
-				<div class="upload-container">
-				   <el-upload
-					ref="uploadRef"
-					:auto-upload="false"
-					:limit="1"
-					:on-change="handleFileChange"
-					:on-remove="handleFileRemove"
-					:before-upload="beforeFileUpload"
-					:file-list="fileList"
-					accept=".zip,.rar,.7z,.tar,.gz"
-					class="upload-demo"
-				  >
-					<template #trigger>
-					  <el-button type="primary">选择文件</el-button>
-					</template>
-					<template #tip>
-					  <div class="el-upload__tip">
-						请上传压缩文件 (.zip/.rar/.7z/.tar/.gz)
-					  </div>
-					</template>
-				  </el-upload>
-				  <el-button 
-					type="success" 
-					:disabled="!selectedFile" 
-					@click="handleUpload"
-					style="margin-top: 10px;"
-				  >
-					上传文件
-				  </el-button>
-				  
-				  <!-- 已上传文件列表 -->
-				  <div v-if="uploadedFiles.length > 0" class="uploaded-files">
-					<h4>已上传文件:</h4>
-					<div v-for="(file, index) in uploadedFiles" :key="index" class="file-item">
-					  <span>{{ file.originalName }}</span>
-					  <el-button type="text" @click="viewFile(file)" style="margin-left: 10px;">查看</el-button>
-					  <el-button type="text" @click="downloadFile(file)" style="margin-left: 5px;">下载</el-button>
-					</div>
-				  </div>
-				</div>
-			</div>
-
-		</div>
-
-	</div>
 		<template #footer>
-			<el-button
-				class="save-btn"
-				color="#4C34FF"
-
-				
-				@click="rejectTheApplication"
-			>
-				拒绝申请
-			</el-button>
-			<el-button color="#F2F3F5"  @click="approvedByTheReview">审核通过</el-button>
-
+			<el-button class="save-btn" color="#4C34FF" @click="rejectTheApplication">拒绝申请</el-button>
+			<el-button color="#F2F3F5" @click="approvedByTheReview">审核通过</el-button>
 		</template>
 	</el-dialog>
 
@@ -160,10 +136,15 @@
 <script setup>
 import { ref, inject } from 'vue'
 import { getDictLabel } from '@ztzf/utils'
-import { gdSupplyDemandDetailApi, putFileAttachApi,gdSupplyDemandAuditPassApi,gdSupplyDemandAuditRejectApi } from '@/views/orderView/orderDataManage/supplyAdd/supplyAddApi'
-import { ElMessage, ElMessageBox } from 'element-plus'
+import {
+	gdSupplyDemandDetailApi,
+	putFileAttachApi,
+	gdSupplyDemandAuditPassApi,
+	gdSupplyDemandAuditRejectApi,
+} from '@/views/orderView/orderDataManage/supplyAdd/supplyAddApi'
+import { ElMessage } from 'element-plus'
 import reasonForRejectionDialog from './reasonForRejectionDialog.vue'
-
+const emit = defineEmits(['success'])
 const dictObj = inject('dictObj')
 const deptTree = inject('deptTree')
 const demandId = ref('')
@@ -183,125 +164,124 @@
 	{ title: '审核通过', person: '', time: '' },
 ])
 // 当前激活步骤
-const activeStep = ref(0) 
+const activeStep = ref(0)
 
 // 文件选择变化
 const handleFileChange = (file, fileList) => {
-  if (fileList.length > 0) {
-    selectedFile.value = file.raw
-  } else {
-    selectedFile.value = null
-  }
+	if (fileList.length > 0) {
+		selectedFile.value = file.raw
+	} else {
+		selectedFile.value = null
+	}
 }
 
 // 文件移除
 const handleFileRemove = () => {
-  selectedFile.value = null
+	selectedFile.value = null
 }
 
 // 上传前验证
-const beforeFileUpload = (file) => {
-  const allowedExtensions = ['.zip', '.rar', '.7z', '.tar', '.gz']
-  const fileExtension = '.' + file.name.split('.').pop().toLowerCase()
-  
-  if (!allowedExtensions.includes(fileExtension)) {
-    ElMessage.error('只能上传压缩文件格式:.zip/.rar/.7z/.tar/.gz')
-    return false
-  }
-  
-  // 文件大小限制,这里限制为100MB
-  const maxSize = 100 * 1024 * 1024 // 100MB
-  if (file.size > maxSize) {
-    ElMessage.error('文件大小不能超过100MB')
-    return false
-  }
-  
-  return true
+const beforeFileUpload = file => {
+	const allowedExtensions = ['.zip', '.rar', '.7z', '.tar', '.gz']
+	const fileExtension = '.' + file.name.split('.').pop().toLowerCase()
+
+	if (!allowedExtensions.includes(fileExtension)) {
+		ElMessage.error('只能上传压缩文件格式:.zip/.rar/.7z/.tar/.gz')
+		return false
+	}
+
+	// 文件大小限制,这里限制为100MB
+	const maxSize = 100 * 1024 * 1024 // 100MB
+	if (file.size > maxSize) {
+		ElMessage.error('文件大小不能超过100MB')
+		return false
+	}
+
+	return true
 }
 
 // 处理文件上传
 const handleUpload = async () => {
-  if (!selectedFile.value) {
-    ElMessage.warning('请先选择文件')
-    return
-  }
+	if (!selectedFile.value) {
+		ElMessage.warning('请先选择文件')
+		return
+	}
 
-  // 再次验证文件类型
-  if (!beforeFileUpload(selectedFile.value)) {
-    return
-  }
+	// 再次验证文件类型
+	if (!beforeFileUpload(selectedFile.value)) {
+		return
+	}
 
-  try {
-    uploadLoading.value = true
-    
-    // 创建FormData对象
-    const formData = new FormData()
-    formData.append('file', selectedFile.value)
-    
-    // 调用上传接口
-    const response = await putFileAttachApi(formData)
-    
-    if (response.data && response.data.success) {
-      const fileData = response.data.data
-      console.log('成功数据',fileData);
-	  responseData.value = fileData
-      // 添加到已上传文件列表
-      uploadedFiles.value.push({
-        name: fileData.name,
-        originalName: fileData.originalName,
-        link: fileData.link,
-        attachId: fileData.attachId
-      })
-      
-      ElMessage.success('文件上传成功!')
-      
-      // 清空上传列表
-      uploadRef.value.clearFiles()
-      selectedFile.value = null
-      
-      // 这里可以将附件ID保存到表单数据中,供后续提交使用
-      // formData.value.attachmentId = fileData.attachId
-      
-    } else {
-      ElMessage.error(response.data?.msg || '文件上传失败')
-    }
-  } catch (error) {
-    console.error('文件上传失败:', error)
-    ElMessage.error('文件上传失败,请重试')
-  } finally {
-    uploadLoading.value = false
-  }
+	try {
+		uploadLoading.value = true
+
+		// 创建FormData对象
+		const formData = new FormData()
+		formData.append('file', selectedFile.value)
+
+		// 调用上传接口
+		const response = await putFileAttachApi(formData)
+
+		if (response.data && response.data.success) {
+			const fileData = response.data.data
+			console.log('成功数据', fileData)
+			responseData.value = fileData
+			// 添加到已上传文件列表
+			uploadedFiles.value.push({
+				name: fileData.name,
+				originalName: fileData.originalName,
+				link: fileData.link,
+				attachId: fileData.attachId,
+			})
+
+			ElMessage.success('文件上传成功!')
+
+			// 清空上传列表
+			uploadRef.value.clearFiles()
+			selectedFile.value = null
+
+			// 这里可以将附件ID保存到表单数据中,供后续提交使用
+			// formData.value.attachmentId = fileData.attachId
+		} else {
+			ElMessage.error(response.data?.msg || '文件上传失败')
+		}
+	} catch (error) {
+		console.error('文件上传失败:', error)
+		ElMessage.error('文件上传失败,请重试')
+	} finally {
+		uploadLoading.value = false
+	}
 }
 
 // 查看文件
-const viewFile = (file) => {
-  if (file.link) {
-    window.open(file.link, '_blank')
-  } else {
-    ElMessage.warning('文件链接无效')
-  }
+const viewFile = file => {
+	if (file.link) {
+		window.open(file.link, '_blank')
+	} else {
+		ElMessage.warning('文件链接无效')
+	}
 }
 
 // 下载文件
-const downloadFile = (file) => {
-  if (file.link) {
-    // 创建一个隐藏的a标签来触发下载
-    const a = document.createElement('a')
-    a.href = file.link
-    a.download = file.originalName || file.name
-    document.body.appendChild(a)
-    a.click()
-    document.body.removeChild(a)
-  } else {
-    ElMessage.warning('文件链接无效')
-  }
+const downloadFile = file => {
+	if (file.link) {
+		// 创建一个隐藏的a标签来触发下载
+		const a = document.createElement('a')
+		a.href = file.link
+		a.download = file.originalName || file.name
+		document.body.appendChild(a)
+		a.click()
+		document.body.removeChild(a)
+	} else {
+		ElMessage.warning('文件链接无效')
+	}
 }
 
 // 根据部门ID获取部门名称
 function getDeptNameById(deptId, deptList) {
 	// 处理类型转换,确保比较的是相同类型
 	const targetId = String(deptId)
-	
+
 	// 递归遍历部门树
 	function findDept(deptList) {
 		for (const dept of deptList) {
@@ -315,11 +295,11 @@
 		}
 		return ''
 	}
-	
+
 	if (!targetId || !Array.isArray(deptList) || deptList.length === 0) {
 		return ''
 	}
-	
+
 	return findDept(deptList)
 }
 
@@ -328,8 +308,7 @@
 	if (row?.id) {
 		await loadDetail(row.id)
 		demandId.value = row.id
-		console.log('row.id',demandId.value);
-		
+		console.log('row.id', demandId.value)
 	}
 	visible.value = true
 }
@@ -345,21 +324,9 @@
 	formData.value = data
 }
 
-// 如果需要加载已上传的文件列表
-const loadUploadedFiles = async (id) => {
-  try {
-    // 这里根据实际情况调用接口获取已上传的文件列表
-    // const response = await getFileListApi({ id })
-    // if (response.data?.success) {
-    //   uploadedFiles.value = response.data.data || []
-    // }
-  } catch (error) {
-    console.error('加载已上传文件失败:', error)
-  }
-}
 // 拒绝申请
 const rejectTheApplication = () => {
-	if(responseData.value.length === 0){
+	if (responseData.value.length === 0) {
 		return ElMessage.warning('请上传数据')
 	}
 	// 打开拒绝申请弹框
@@ -367,27 +334,32 @@
 }
 
 // 处理拒绝申请确认
-const handleRejectionConfirm = (reason) => {
+const handleRejectionConfirm = reason => {
 	const id = [responseData.value.attachId]
-	console.log('demandId.value',demandId.value);
-	
-	gdSupplyDemandAuditRejectApi({ attachIds: id, auditOpinion: reason ,demandId:'2013137230848598018'}).then(() => {
-		ElMessage.success('拒绝申请成功')
-		visible.value = false
-	}).catch(error => {
-		console.error('拒绝申请失败:', error)
-		ElMessage.error('拒绝申请失败,请重试')
-	})
+	console.log('demandId.value', demandId.value)
+
+	gdSupplyDemandAuditRejectApi({ attachIds: id, auditOpinion: reason, demandId: demandId.value })
+		.then(() => {
+			ElMessage.success('拒绝申请成功')
+			visible.value = false
+			emit('success')
+		})
+		.catch(error => {
+			console.error('拒绝申请失败:', error)
+			ElMessage.error('拒绝申请失败,请重试')
+			emit('success')
+		})
 }
 // 审核通过
 const approvedByTheReview = () => {
-	if(responseData.value.length === 0){
+	if (responseData.value.length === 0) {
 		return ElMessage.warning('请上传数据')
 	}
 	const id = [responseData.value.attachId]
-	gdSupplyDemandAuditPassApi({ id }).then(() => {
+	gdSupplyDemandAuditPassApi({ attachIds: id, demandId: demandId.value }).then(() => {
 		ElMessage.success('审核通过成功')
 		visible.value = false
+		emit('success')
 	})
 }
 

--
Gitblit v1.9.3