p-honggang.li
5 天以前 80ca024e9ae633df0dc9f4e8f533f33b526afb3d
src/views/tradeManage/upload/index.vue
@@ -255,6 +255,9 @@
import { ElMessage, ElMessageBox } from 'element-plus'
import { useUserInfo } from '@/stores/modules/userInfo'
import createAxios from '@/utils/axios'
import productApi from "@/api/productApi";
import sysUserService from "@/api/sysUser";
import {queryUserDetail} from "@/api/userInfo";
const route = useRoute()
const router = useRouter()
@@ -310,12 +313,62 @@
    return
  }
  // 获取用户信息
  if (!userStore.getUserId) {
    try {
      const res: any = await queryUserDetail()
      if (res?.code === 200 && res.data) {
        userStore.updateUserDetail(res.data)
      } else {
        ElMessage.error(res?.msg || '无法获取用户信息,请先登录')
        return
      }
    } catch (e) {
      console.error('获取用户详情失败:', e)
      ElMessage.error('获取用户信息失败,请稍后重试')
      return
    }
  }
  try {
    const res = (await orderApi.getOrderDetail(orderId)) as any
    const data = res?.data || {}
    const statusName: string = data.orderStatus || ''
    const uiStatus = statusServerToUi[statusName] || 'INFO'
    // 根据产品id获取产品信息,更新头部展示
    try {
      if (data.productId) {
        const detailRes: any = await productApi.getProductById({ id: data.productId })
        if (detailRes?.code === 200 && detailRes.data) {
          // 用产品详情补全头信息
          data.productName = detailRes.data.name || data.productName
          data.providerName = detailRes.data.submissionUnit || data.providerName
          data.industry = detailRes.data.industrialChainName || data.industry
          data.productDesc = detailRes.data.describe || data.productDesc
          data.projectUnit = detailRes.data.importantAreaName || data.productDesc
          data.productType = detailRes.data.typeName || data.productDesc
        }
      }
    } catch (e) {
      // 忽略产品详情失败,不阻塞订单详情
    }
    // 获取用户信息
    try {
      const userRes: any = await sysUserService.getUserdetail({ userId: data.userId })
      if (userRes?.code === 200 && userRes.data) {
        // 用产品详情补全头信息
        data.unitName = userRes.data.unitName || data.unitName
        data.userName = userRes.data.name || data.userName
        data.userDept = userRes.data.departmentName || data.userDept
        data.userPhone = userRes.data.phone || data.userPhone
        data.userAccount = userRes.data.username || data.userAccount
      }
    }catch (e){
    }
    // 映射订单详情头部信息
    const head = {
@@ -388,9 +441,9 @@
// 文件上传前的验证
const beforeUpload = (file: File) => {
  // 检查文件大小(限制为100MB)
  const maxSize = 100 * 1024 * 1024
  const maxSize = 500 * 1024 * 1024
  if (file.size > maxSize) {
    ElMessage.error('文件大小不能超过100MB')
    ElMessage.error('文件大小不能超过500MB')
    return false
  }
  
@@ -575,11 +628,11 @@
          fileType: fileItem.type || 'application/octet-stream',
          fileSize: fileItem.size,
          fileUrl: fileUrl,
          bucketName: 'order-attachments',
          bucketName: 'dev',
          objectName: fileUrl.split('/').pop(),
          uploadUserId: userId,
          uploadUserName: userName,
          attachmentType: 'TRADE_FILE',
          attachmentType: '其他',
          description: '交易文件'
        }
@@ -756,7 +809,7 @@
      // 检查响应格式
      const responseData = previewResponse as any
      if (responseData && responseData.code === 200 && responseData.data) {
        previewUrl = responseData.data
        // previewUrl = responseData.data.replaceAll("192.168.20.52", import.meta.env.)
        console.log('使用预览URL:', previewUrl)
      } else {
        console.log('预览URL获取失败,使用下载方式')
@@ -848,11 +901,11 @@
      fileType: file.type || 'application/octet-stream',
      fileSize: file.size,
      fileUrl: fileUrl,
      bucketName: 'order-attachments',
      bucketName: 'dev',
      objectName: fileUrl.split('/').pop(),
      uploadUserId: userId,
      uploadUserName: userName,
      attachmentType: 'TRADE_FILE',
      attachmentType: '其他',
      description: '交易文件'
    }