From 83d5b2be8fdf0ac0b59cacf6b344c8815ab4d040 Mon Sep 17 00:00:00 2001
From: seatonwan9
Date: 星期二, 02 九月 2025 19:58:11 +0800
Subject: [PATCH] 提交源码

---
 src/views/tradeManage/detail/index.vue |  104 +++++++++++++++++++++++++++++----------------------
 1 files changed, 59 insertions(+), 45 deletions(-)

diff --git a/src/views/tradeManage/detail/index.vue b/src/views/tradeManage/detail/index.vue
index 7882083..0189854 100644
--- a/src/views/tradeManage/detail/index.vue
+++ b/src/views/tradeManage/detail/index.vue
@@ -24,7 +24,7 @@
           <el-tag :type="getStatusType(detail.status)" size="small">{{ detail.statusName }}</el-tag>
         </el-descriptions-item>
       </el-descriptions>
-      
+
       <!-- 鐢宠浜轰俊鎭紙涓庤鍗曚俊鎭悓鍗$墖锛屽鐢ㄥ垎闅旀爣棰樻牱寮忥級 -->
       <el-descriptions
         :column="2"
@@ -74,7 +74,7 @@
           <div class="desc-wrap">{{ detail.productDesc }}</div>
         </el-descriptions-item>
       </el-descriptions>
-      
+
       <!-- 璁㈠崟璇︽儏锛堢Щ鍔ㄥ埌浜ゆ槗鍐呭涓嬮潰锛屽悓涓�鍗$墖鍐咃級 -->
       <div ref="orderTableWrapRef">
         <el-table
@@ -228,7 +228,7 @@
     <!-- 瀹℃壒杩借釜 -->
     <el-card class="mt15" shadow="never">
       <div class="title">瀹℃壒杩借釜</div>
-      
+
       <!-- 鏍囩椤� -->
       <!-- <el-tabs v-model="activeTab" class="approval-tabs">
         <el-tab-pane label="瀹℃壒璁板綍" name="records">
@@ -280,12 +280,12 @@
           </el-table>
         </el-tab-pane>
       </el-tabs> -->
-      
+
       <!-- 澶栭儴绯荤粺瀹℃壒杞ㄨ抗 iframe -->
       <div class="iframe-wrap" v-if="workflowIframeUrl">
         <iframe :src="workflowIframeUrl" class="workflow-iframe" referrerpolicy="no-referrer"></iframe>
       </div>
-      
+
     </el-card>
     <!-- 杩斿洖鎸夐挳 -->
     <div class="action-buttons">
@@ -302,6 +302,7 @@
 import orderApi from '@/api/orderApi'
 import createAxios from '@/utils/axios'
 import productApi from '@/api/productApi'
+import sysUserService from '@/api/sysUser'
 import { useUserInfo } from '@/stores/modules/userInfo'
 
 const hostUrl =  import.meta.env.VITE_AXIOS_BASE_URL
@@ -376,17 +377,17 @@
 onMounted(async () => {
   const orderId = String(route.params.id || '')
   if (!orderId) return
-  
+
   try {
     // 骞惰鑾峰彇璁㈠崟璇︽儏鍜屽崗璁被鍨嬫鏌�
     const [orderRes, agreementRes] = await Promise.all([
       orderApi.getOrderDetail(orderId),
       orderApi.checkAgreementPriceType(orderId)
     ])
-    
+
     const res = orderRes as any
     const data = res?.data || {}
-    
+
     // 璁剧疆鏄惁涓哄崗璁鍗�
     const agreementResult = agreementRes as any
     isAgreementOrder.value = agreementResult?.data === true
@@ -411,8 +412,21 @@
     } 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 = {
@@ -479,11 +493,11 @@
         endDateObj.setFullYear(endDateObj.getFullYear() + item.period)
         endDate = endDateObj.toISOString().split('T')[0] // 鏍煎紡鍖栦负 YYYY-MM-DD
       }
-      
-      return { 
+
+      return {
         name: item.name,
         start: data.applyTime ? data.applyTime.split('T')[0] : '', // 浣跨敤璁㈠崟鐢宠鏃堕棿
-        end: endDate, 
+        end: endDate,
         forever: item.period === 0, // 鏈熼檺涓�0鏃惰缃负姘镐箙
         remark: item.remarks || '' // 浣跨敤濂椾欢淇℃伅涓殑remarks瀛楁
       }
@@ -546,7 +560,7 @@
 }
 
 // 琛ㄥご鏂囧瓧灞呬腑锛屼絾绗竴琛岀殑"璇︽儏"鏂囧瓧闈犲乏瀵归綈
-const headerCenterStyle: CSSProperties = { 
+const headerCenterStyle: CSSProperties = {
   textAlign: 'center',
   fontSize: '14px',
   background: '#f3f6fb'
@@ -556,7 +570,7 @@
 const bodyCellStyle: CSSProperties = { fontSize: '12px' }
 
 // 瀹℃壒杩借釜琛ㄦ牸鏍峰紡
-const recordTableHeaderStyle: CSSProperties = { 
+const recordTableHeaderStyle: CSSProperties = {
   textAlign: 'center',
   fontSize: '14px',
   background: '#f3f6fb'
@@ -564,7 +578,7 @@
 const recordTableCellStyle: CSSProperties = { fontSize: '12px' }
 
 // 鏂囦欢鍒楄〃琛ㄦ牸琛ㄥご鏂囧瓧灞呬腑锛屼絾绗竴鍒楃殑"浜ゆ槗鏂囦欢"鏂囧瓧闈犲乏瀵归綈
-const fileTableHeaderStyle: CSSProperties = { 
+const fileTableHeaderStyle: CSSProperties = {
   textAlign: 'center',
   fontSize: '14px',
   background: '#f3f6fb'
@@ -623,23 +637,23 @@
     'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', // .xlsx
     'application/vnd.openxmlformats-officedocument.presentationml.presentation', // .pptx
   ]
-  
+
   // 濡傛灉MIME绫诲瀷鍖归厤锛岀洿鎺ヨ繑鍥瀟rue
   if (previewableTypes.includes(file.type || '')) {
     return true
   }
-  
+
   // 濡傛灉MIME绫诲瀷涓虹┖鎴栦笉鍖归厤锛屾牴鎹枃浠舵墿灞曞悕鍒ゆ柇
   const fileName = file.name || ''
   const fileExtension = fileName.toLowerCase().split('.').pop()
-  
+
   const previewableExtensions = [
     'jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp',
     'txt', 'html', 'htm', 'css', 'js',
     'pdf',
     'docx', 'xlsx', 'pptx'
   ]
-  
+
   return previewableExtensions.includes(fileExtension)
 }
 
@@ -655,13 +669,13 @@
     ElMessage.warning('鏂囦欢閾炬帴涓嶅瓨鍦�')
     return
   }
-  
+
   // 鑾峰彇鏂囦欢鎵╁睍鍚�
   const fileName = file.name || ''
   const fileExtension = fileName.toLowerCase().split('.').pop()
-  
+
   let previewUrl = file.url
-  
+
   // 濡傛灉鏂囦欢瀛樺偍鍦∕inIO锛屼紭鍏堜娇鐢ㄩ瑙圲RL
   if (file.url.includes('order-attachments')) {
     try {
@@ -673,9 +687,9 @@
           fileName: file.url
         }
       })
-      
+
       console.log('棰勮URL鍝嶅簲:', previewResponse)
-      
+
       // 妫�鏌ュ搷搴旀牸寮�
       const responseData = previewResponse as any
       if (responseData && responseData.code === 200 && responseData.data) {
@@ -693,7 +707,7 @@
             originalName: file.name
           }
         })
-        
+
         // 鍒涘缓棰勮URL
         const blob = new Blob([response as any])
         previewUrl = window.URL.createObjectURL(blob)
@@ -705,30 +719,30 @@
       return
     }
   }
-  
+
   // 鍥剧墖鏂囦欢鐩存帴鍦ㄦ柊绐楀彛鎵撳紑
-  if ((file.type && file.type.startsWith('image/')) || 
+  if ((file.type && file.type.startsWith('image/')) ||
       ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp'].includes(fileExtension)) {
     console.log('棰勮鍥剧墖鏂囦欢:', previewUrl)
     window.open(previewUrl, '_blank')
     return
   }
-  
+
   // PDF鏂囦欢鍦ㄦ柊绐楀彛鎵撳紑
   if (file.type === 'application/pdf' || fileExtension === 'pdf') {
     console.log('棰勮PDF鏂囦欢:', previewUrl)
     window.open(previewUrl, '_blank')
     return
   }
-  
+
   // 鏂囨湰鏂囦欢鍦ㄦ柊绐楀彛鎵撳紑
-  if ((file.type && file.type.startsWith('text/')) || 
+  if ((file.type && file.type.startsWith('text/')) ||
       ['txt', 'html', 'htm', 'css', 'js'].includes(fileExtension)) {
     console.log('棰勮鏂囨湰鏂囦欢:', previewUrl)
     window.open(previewUrl, '_blank')
     return
   }
-  
+
   // Office鏂囨。鍜屽叾浠栨枃浠剁被鍨嬶紝灏濊瘯鍦ㄦ柊绐楀彛鎵撳紑
   try {
     console.log('棰勮鍏朵粬鏂囦欢:', previewUrl)
@@ -745,14 +759,14 @@
     ElMessage.warning('鏂囦欢閾炬帴涓嶅瓨鍦�')
     return
   }
-  
+
   console.log('寮�濮嬩笅杞芥枃浠�:', file.name, 'URL:', file.url)
-  
+
   try {
     // 濡傛灉鏂囦欢瀛樺偍鍦∕inIO锛屼娇鐢ㄥ悗绔洿鎺ヤ笅杞紸PI
     if (file.url.includes('order-attachments')) {
       console.log('浣跨敤MinIO涓嬭浇API')
-      
+
       // 浣跨敤axios閫氳繃浠g悊璁块棶鍚庣API
       const response = await createAxios({
         url: `/admin/file/download`,
@@ -763,28 +777,28 @@
           originalName: file.name
         }
       })
-      
+
       console.log('涓嬭浇鍝嶅簲:', response)
-      
+
       // 鍒涘缓涓嬭浇閾炬帴
       const blob = new Blob([response as any])
       const downloadUrl = window.URL.createObjectURL(blob)
-      
+
       console.log('鍒涘缓涓嬭浇閾炬帴:', downloadUrl)
-      
+
       const link = document.createElement('a')
       link.href = downloadUrl
       link.download = file.name || 'download'
       link.target = '_blank'
       link.rel = 'noopener noreferrer'
-      
+
       document.body.appendChild(link)
       link.click()
       document.body.removeChild(link)
-      
+
       // 娓呯悊URL瀵硅薄
       window.URL.revokeObjectURL(downloadUrl)
-      
+
       ElMessage.success('鏂囦欢涓嬭浇鎴愬姛')
     } else {
       console.log('浣跨敤鐩存帴URL涓嬭浇')
@@ -794,11 +808,11 @@
       link.download = file.name || 'download'
       link.target = '_blank'
       link.rel = 'noopener noreferrer'
-      
+
       document.body.appendChild(link)
       link.click()
       document.body.removeChild(link)
-      
+
       ElMessage.success('寮�濮嬩笅杞芥枃浠�')
     }
   } catch (error) {
@@ -1052,7 +1066,7 @@
   gap: 8px;
   align-items: center;
   justify-content: center;
-  
+
   .preview-btn {
     color: #409eff;
     &:hover {
@@ -1063,7 +1077,7 @@
       cursor: not-allowed;
     }
   }
-  
+
   .download-btn {
     color: #67c23a;
     &:hover {

--
Gitblit v1.8.0