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/ApplyViewDialog.vue |  219 +++++++++++++++++++-----------------------------------
 1 files changed, 77 insertions(+), 142 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 d3634d7..4c96dc6 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,5 +1,5 @@
 <template>
-	<el-dialog class="gd-dialog" v-model="visible" :title="'查看申请'" @closed="visible = false" destroy-on-close>
+	<el-dialog class="gd-dialog" :close-on-click-modal="false" v-model="visible" :title="'查看'" @closed="visible = false" destroy-on-close>
 		<div class="detail-container">
 			<!-- 左侧审批记录 -->
 			<div class="detail-left">
@@ -9,81 +9,67 @@
 			<div class="detail-right">
 				<!--				拒绝申请-->
 				<div class="reject-reason-container" v-if="detailDemandStatus === '3'">
-					<div class="label">拒绝原因</div>
+					<div class="detail-title">拒绝原因</div>
 					<div class="reject-reason">
 						{{reasonForRejection}}
 					</div>
 				</div>
 				<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-title">需求详情</div>
+				<el-row class="detail-row-view">
+							<el-col :span="12">
+								<div class="label">需求名称</div>
+								<div class="val">{{ formData.demandName }}</div>
+							</el-col>
+							<el-col :span="12">
+								<div class="label">需求类型</div>
+								<div class="val">{{ getDictLabel(formData.demandType, dictObj.requirementType) }}</div>
+							</el-col>
+							<el-col :span="12">
+								<div class="label">需求联系人</div>
+								<div class="val">{{ formData.contactPerson }}</div>
+							</el-col>
+							<el-col :span="12">
+								<div class="label" >需求联系人电话</div>
+								<div class="val">{{ formData.contactPhone }}</div>
+							</el-col>
+							<el-col :span="12">
+								<div class="label">需求邮箱</div>
+								<div class="val">{{ formData.contactEmail }}</div>
+							</el-col>
+							<el-col :span="12">
+								<div class="label">更新周期</div>
+								<div class="val">{{ formData.updateCycle }}</div>
+							</el-col>
+							<el-col :span="12">
+								<div class="label">申请依据</div>
+								<div class="val">{{ formData.applyBasis }}</div>
+							</el-col>
+							<el-col :span="12">
+								<div class="label">共享类型</div>
+								<div class="val">{{ getDictLabel(formData.shareType, dictObj.sharedType) }}</div>
+							</el-col>
+							<el-col :span="12">
+								<div class="label">应用场景类型</div>
+								<div class="val">{{ getDictLabel(formData.applicationScene, dictObj.appSceneType) }}</div>
+							</el-col>
+							<el-col :span="12">
+								<div class="label">责任部门</div>
+								<div class="val">{{ formData.responsibleDeptName }}</div>
+							</el-col>
+							<el-col :span="12">
+								<div class="label">数据来源依据</div>
+								<div class="val">{{ formData.dataSource }}</div>
+							</el-col>
+							<el-col :span="12">
+								<div class="label">需求信息项</div>
+								<div class="val">{{ formData.demandInfo }}</div>
+							</el-col>
+						</el-row>
 				</div>
 				<!--				申请中-->
-				<div v-if="detailDemandStatus === '1'">
-					<div class="label">数据上传</div>
+				<div v-if="detailDemandStatus === '1' && !requesterProvider">
+					<div class="detail-title">数据上传</div>
 					<div class="upload-container">
 						<el-upload
 						:http-request="handleHttpRequest"
@@ -100,24 +86,14 @@
 								<el-button type="primary">选择文件</el-button>
 							</template>
 							<template #tip>
-								<div class="el-upload__tip">请上传压缩文件 (.zip/.rar/.7z/.tar/.gz)</div>
+								<div class="el-upload__tip">支持上传 (.zip/.rar/.7z/.tar/.gz)格式文件</div>
 							</template>
 						</el-upload>
-
-						<!-- 已上传文件列表 -->
-<!--						<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 v-if="detailDemandStatus === '2'">
-					<div class="label">数据详情</div>
-					<el-table :data="tableData" border style="width: 100%">
+					<div class="detail-title" :style="{ marginTop:pxToRem(20)}">数据详情</div>
+					<el-table :data="tableData"  style="width: 100%">
 						<el-table-column prop="fileOriginalName" label="文件名称" />
 						<el-table-column prop="fileSize" label="文件大小" />
 						<el-table-column fixed="right" label="操作" min-width="100">
@@ -130,9 +106,9 @@
 			</div>
 		</div>
 		<template #footer>
-			<template v-if="detailDemandStatus === '1'">
-				<el-button class="save-btn" color="#4C34FF" @click="rejectTheApplication">拒绝申请</el-button>
-				<el-button color="#F2F3F5" @click="approvedByTheReview">审核通过</el-button>
+			<template v-if="detailDemandStatus === '1' && !requesterProvider">
+				<el-button color="#F2F3F5"  @click="rejectTheApplication">拒绝申请</el-button>
+				<el-button class="save-btn" color="#4C34FF" @click="approvedByTheReview">审核通过</el-button>
 			</template>
 			<template v-if="detailDemandStatus === '2'">
 				<el-button class="save-btn" color="#4C34FF" @click="downloadAllFiles">全部下载</el-button>
@@ -152,6 +128,7 @@
 </template>
 
 <script setup>
+import { pxToRem } from '@/utils/rem'
 import { getDictLabel } from '@ztzf/utils'
 import {
 	gdSupplyDemandDetailApi,
@@ -163,7 +140,9 @@
 import { ElMessage } from 'element-plus'
 import reasonForRejectionDialog from '@/views/orderView/orderDataManage/supplyAdd/reasonForRejectionDialog.vue'
 import AuditRecord from '@/views/orderView/orderDataManage/supplyAdd/auditRecord.vue' // 导入新组件
-
+import { useStore } from 'vuex'
+const store = useStore()
+const requesterProvider = computed(() => store.state.user.userInfo?.role_id === '2014158512610869250')
 const emit = defineEmits(['success'])
 const dictObj = inject('dictObj')
 const deptTree = inject('deptTree')
@@ -249,7 +228,7 @@
 		})
 
 		ElMessage.success('文件上传成功!')
-	} 
+	}
 }
 
 // 上传失败处理函数
@@ -398,7 +377,7 @@
 
 // 拒绝申请
 const rejectTheApplication = () => {
-	if (!responseData.value) {
+	if (uploadedFiles.value.length === 0) {
 		return ElMessage.warning('请上传数据')
 	}
 	// 打开拒绝申请弹框
@@ -407,7 +386,9 @@
 
 // 处理拒绝申请确认
 const handleRejectionConfirm = reason => {
-	const id = [responseData.value.attachId]
+	// 从 uploadedFiles.value 中提取所有 attachId
+	const id = uploadedFiles.value.map(file => file.attachId)
+
 	gdSupplyDemandAuditRejectApi({ attachIds: id, auditOpinion: reason, demandId: demandId.value })
 		.then(() => {
 			ElMessage.success('拒绝申请成功')
@@ -422,10 +403,11 @@
 }
 // 审核通过
 const approvedByTheReview = () => {
-	if (!responseData.value) {
+	if (uploadedFiles.value.length === 0) {
 		return ElMessage.warning('请上传数据')
 	}
-	const id = [responseData.value.attachId]
+	// 从 uploadedFiles.value 中提取所有 attachId
+	const id = uploadedFiles.value.map(file => file.attachId)
 	gdSupplyDemandAuditPassApi({ attachIds: id, demandId: demandId.value }).then(() => {
 		ElMessage.success('审核通过成功')
 		visible.value = false
@@ -440,8 +422,8 @@
 .detail-container {
 	padding: 20px;
 	display: flex;
-	align-items: flex-start;
 	gap: 30px;
+	align-items: stretch;
 }
 
 /* 左侧步骤条 */
@@ -461,48 +443,8 @@
 		padding: 15px;
 		height: 100px;
 	}
-	.requirementsDetailsBox {
-		background: #f2f3f5;
-		border-radius: 2px 2px 2px 2px;
-	}
-
-	/* 详情表格样式 */
-	.detail-table {
-		width: 100%;
-	}
-
-	.detail-row {
-		display: flex;
-		&:last-child {
-			margin-bottom: 0;
-		}
-	}
-
-	.detail-cell {
-		flex: 1;
-		display: flex;
-		justify-content: space-between;
-		padding: 5px 12px;
-		margin-right: 8px;
-		&:last-child {
-			margin-right: 0;
-		}
-	}
-
-	.cell-label {
-		font-weight: 500;
-		color: #333333;
-		margin-right: 8px;
-		text-align: right;
-		min-width: 100px;
-		flex-shrink: 0;
-	}
-
-	.cell-value {
-		color: #666666;
-		flex: 1;
-		text-align: left;
-	}
+	.label {
+	width: 130px !important;}
 }
 
 /* 上传容器样式 */
@@ -537,14 +479,7 @@
 	}
 }
 
-.val {
-	padding: 8px;
-	background-color: #f5f7fa;
-	border-radius: 4px;
-	min-height: 32px;
-	word-break: break-all;
-	margin-bottom: 16px;
-}
+
 
 /* 上传按钮样式 */
 :deep(.el-upload) {

--
Gitblit v1.9.3