吉安感知网项目-前端
张含笑
2026-01-20 eb82d3d0ce97d7e9b5bdd7c24935cf27ac529308
applications/task-work-order/src/views/orderView/orderDataManage/supplyAdd/ApplyViewDialog.vue
@@ -7,6 +7,13 @@
         </div>
         <!-- 右侧表单数据 -->
         <div class="detail-right">
            <!--            拒绝申请-->
            <div class="reject-reason-container" v-if="detailDemandStatus === '3'">
               <div class="label">拒绝原因 </div>
               <div class="reject-reason">
                  这是拒绝原因这是拒绝原因这是拒绝原因这是拒绝原因这是拒绝原因这是拒绝原因这是拒绝原因这是拒绝原因这是拒绝原因这是拒绝原因这是拒绝原因这是拒绝原因这是拒绝原因这是拒绝原因这是拒绝原因这是拒绝原因这是拒绝原因这是拒绝原因这是拒绝原因这是拒绝原因这是拒绝原因这是拒绝原因
               </div>
            </div>
            <div>
               <div class="label">需求详情</div>
               <div class="requirementsDetailsBox">
@@ -74,8 +81,9 @@
                  </div>
               </div>
            </div>
            <div>
               <div class="label">数据上传</div>
<!--            申请中-->
            <div v-if="detailDemandStatus === '1'">
               <div class="label">数据上传 </div>
               <div class="upload-container">
                  <el-upload
                     ref="uploadRef"
@@ -110,6 +118,18 @@
                  </div>
               </div>
            </div>
            <div v-if="detailDemandStatus === '2'">
               <div class="label">数据详情 </div>
               <el-table :data="tableData" border style="width: 100%">
                  <el-table-column prop="name" label="文件名称"  />
                  <el-table-column prop="fileSize" label="文件大小"  />
                  <el-table-column fixed="right" label="操作" min-width="100">
               <template #default="scope">
                  <el-button link type="text" @click="downloadFileFromTable(scope.row)">下载</el-button>
               </template>
            </el-table-column>
               </el-table>
            </div>
         </div>
      </div>
      <template #footer>
@@ -132,7 +152,8 @@
   gdSupplyDemandDetailApi,
   putFileAttachApi,
   gdSupplyDemandAuditPassApi,
   gdSupplyDemandAuditRejectApi
   gdSupplyDemandAuditRejectApi,
   gdSupplyDemandAuditAttachmentListApi
} from '@/views/orderView/orderDataManage/supplyAdd/supplyAddApi'
import { ElMessage } from 'element-plus'
import reasonForRejectionDialog from '@/views/orderView/orderDataManage/supplyAdd/reasonForRejectionDialog.vue'
@@ -141,6 +162,7 @@
const emit = defineEmits(['success'])
const dictObj = inject('dictObj')
const deptTree = inject('deptTree')
const detailDemandStatus = inject('detailDemandStatus')
const demandId = ref('')
const visible = defineModel() // 弹框显隐
const formData = ref({}) // 表单数据
@@ -152,7 +174,7 @@
const responseData = ref([])
// 拒绝申请弹框控制
const rejectionDialogVisible = ref(false) // 拒绝申请弹框显隐
const tableData = ref([]) // 附件表格数据
// 文件选择变化
const handleFileChange = (file, fileList) => {
   if (fileList.length > 0) {
@@ -264,6 +286,21 @@
   }
}
// 从表格下载文件
const downloadFileFromTable = file => {
   if (file.fileUrl) {
      // 创建一个隐藏的a标签来触发下载
      const a = document.createElement('a')
      a.href = file.fileUrl
      a.download = file.name || 'attachment'
      document.body.appendChild(a)
      a.click()
      document.body.removeChild(a)
   } else {
      ElMessage.warning('文件链接无效')
   }
}
// 根据部门ID获取部门名称
function getDeptNameById(deptId, deptList) {
   // 处理类型转换,确保比较的是相同类型
@@ -308,6 +345,29 @@
      data.responsibleDeptName = getDeptNameById(data.responsibleDeptId, deptTree.value)
   }
   formData.value = data
   // 加载附件数据
   await loadAttachments(id)
}
// 加载附件数据
async function loadAttachments(demandId) {
   try {
      const res = await gdSupplyDemandAuditAttachmentListApi({ demandId:demandId })
      const attachments = res?.data?.data ?? []
      // 格式化附件数据以匹配表格结构
      tableData.value = attachments.map(attachment => ({
         name: attachment.attachId ? `附件ID: ${attachment.attachId}` : '未知附件',
         fileSize: attachment.fileSize ? `${attachment.fileSize}M` : '未知大小',
         fileUrl: attachment.fileUrl,
         id: attachment.id
      }))
   } catch (error) {
      console.error('加载附件数据失败:', error)
      ElMessage.error('加载附件数据失败,请重试')
      tableData.value = []
   }
}
// 拒绝申请
@@ -368,6 +428,12 @@
/* 右侧表单 */
.detail-right {
   width: 75%;
   .reject-reason {
      margin-bottom: 20px;
      background: #F2F3F5;
      border-radius: 2px 2px 2px 2px;
      padding: 15px;
   }
   .requirementsDetailsBox {
      background: #F2F3F5;
      border-radius: 2px 2px 2px 2px;