吉安感知网项目-前端
张含笑
2026-01-29 ec2ff7ebf2f4b1baa9fb931d0e6fcf7134106f51
applications/task-work-order/src/views/orderView/orderDataManage/supplyAdd/ApplyViewDialog.vue
@@ -1,5 +1,5 @@
<template>
   <el-dialog class="gd-dialog" :close-on-click-modal="false" v-model="visible" :title="'查看'" @closed="visible = false" destroy-on-close>
   <el-dialog width="80%" 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">
@@ -69,7 +69,7 @@
            </div>
            <!--            申请中-->
            <div v-if="detailDemandStatus === '1' && !requesterProvider">
               <div class="detail-title">数据上传</div>
               <div class="detail-title" :style="{ marginTop:pxToRem(10)}">数据上传</div>
               <div class="upload-container">
                  <el-upload
                  :http-request="handleHttpRequest"
@@ -98,7 +98,7 @@
                  <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>
                        <el-link  type="primary"  @click="downloadFileFromTable(scope.row)">下载</el-link>
                     </template>
                  </el-table-column>
               </el-table>
@@ -107,8 +107,8 @@
      </div>
      <template #footer>
         <template v-if="detailDemandStatus === '1' && !requesterProvider">
            <el-button color="#F2F3F5" :loading="submitting" :disabled="submitting" @click="rejectTheApplication">拒绝申请</el-button>
            <el-button class="" color="#4C34FF" :loading="submitting" :disabled="submitting" @click="approvedByTheReview">审核通过</el-button>
            <el-button color="#F2F3F5" :loading="submitting || uploading" :disabled="submitting || uploading" @click="rejectTheApplication">拒绝申请</el-button>
            <el-button class="" color="#4C34FF" :loading="submitting || uploading" :disabled="submitting || uploading" @click="approvedByTheReview">审核通过</el-button>
         </template>
         <template v-if="detailDemandStatus === '2'">
            <el-button class="" color="#4C34FF" @click="downloadAllFiles">全部下载</el-button>
@@ -155,8 +155,10 @@
const uploadedFiles = ref([]) // 已上传文件列表
const responseData = ref(null)
const submitting = ref(false) // 提交中状态
const uploading = ref(false) // 文件上传中状态
// 自定义上传请求函数
const handleHttpRequest = async (options) => {
   uploading.value = true
   try {
      // 创建FormData对象
      const formData = new FormData()
@@ -164,7 +166,6 @@
      // 调用导入的API函数
      const response = await putFileAttachApi(formData)
      console.log('response',response)
      if (response.data && response.data.success) {
         // 调用上传成功的回调
         options.onSuccess(response)
@@ -176,6 +177,8 @@
      // 调用上传失败的回调
      options.onError(error)
      console.error('文件上传失败:', error)
   } finally {
      uploading.value = false
   }
}
// 拒绝申请弹框控制
@@ -183,10 +186,7 @@
const tableData = ref([]) // 附件表格数据
// 文件移除
const handleFileRemove = (file, fileList) => {
   // 从已上传文件列表中移除对应文件
   if (file.response && file.response.attachId) {
      uploadedFiles.value = uploadedFiles.value.filter(item => item.attachId !== file.response.attachId)
   }
uploadedFiles.value = fileList
   // 清空响应数据
   if (responseData.value && responseData.value.attachId === file.response?.attachId) {
      responseData.value = null
@@ -204,11 +204,11 @@
   }
   // 文件大小限制,这里限制为100MB
   const maxSize = 100 * 1024 * 1024 // 100MB
   if (file.size > maxSize) {
      ElMessage.error('文件大小不能超过100MB')
      return false
   }
   // const maxSize = 100 * 1024 * 1024 // 100MB
   // if (file.size > maxSize) {
   //    ElMessage.error('文件大小不能超过100MB')
   //    return false
   // }
   return true
}
@@ -218,7 +218,6 @@
   // 添加更严格的检查,确保response不是undefined
   if (response && response?.data && response?.data?.success) {
      const fileData = response.data.data
      console.log('成功数据', fileData)
      responseData.value = fileData
      // 添加到已上传文件列表
      uploadedFiles.value.push({
@@ -246,28 +245,13 @@
   }
}
// 下载文件
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 downloadFileFromTable = file => {
   if (file.fileUrl) {
      // 创建一个隐藏的a标签来触发下载
      const a = document.createElement('a')
      a.href = file.fileUrl
      a.download = file.name || 'attachment'
      a.download = file.fileOriginalName || '下载附件'
      document.body.appendChild(a)
      a.click()
      document.body.removeChild(a)
@@ -298,7 +282,7 @@
         if (file.fileUrl) {
            const a = document.createElement('a')
            a.href = file.fileUrl
            a.download = file.name || `attachment_${index + 1}`
            a.download = file.fileOriginalName || `下载附件_${index + 1}`
            document.body.appendChild(a)
            a.click()
            document.body.removeChild(a)
@@ -378,9 +362,9 @@
// 拒绝申请
const rejectTheApplication = () => {
   if (uploadedFiles.value.length === 0) {
      return ElMessage.warning('请上传数据')
   }
   // if (uploadedFiles.value.length === 0) {
   //    return ElMessage.warning('请上传数据')
   // }
   // 打开拒绝申请弹框
   rejectionDialogVisible.value = true
}
@@ -410,7 +394,7 @@
const approvedByTheReview = () => {
   if (uploadedFiles.value.length === 0) {
      return ElMessage.warning('请上传数据')
   }
   }
   // 从 uploadedFiles.value 中提取所有 attachId
   const id = uploadedFiles.value.map(file => file.attachId)
   submitting.value = true
@@ -482,6 +466,10 @@
   }
}
.el-upload__tip {
   display: inline;
}
/* 上传按钮样式 */
@@ -492,4 +480,5 @@
:deep(.el-upload-list) {
   margin-top: 10px;
}
</style>