From 7b21512f6cb5aaa9e53024a80e92ca877b5c4aa1 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期二, 12 五月 2026 13:02:44 +0800
Subject: [PATCH] 进销存pro 1.附件预览、下载修改

---
 src/views/collaborativeApproval/shipmentReview/fileList.vue                |    3 -
 src/views/procurementManagement/procurementLedger/fileList.vue             |    3 -
 src/views/projectManagement/projectType/index.vue                          |    9 +---
 src/views/productionManagement/workOrderManagement/components/filesDia.vue |    2 
 src/views/basicData/customerFileOpenSea/index.vue                          |    2 
 src/views/lavorissue/ledger/filesDia.vue                                   |    2 
 src/views/qualityManagement/rawMaterialInspection/components/filesDia.vue  |    2 
 src/views/basicData/supplierManage/filesDia.vue                            |    2 
 src/views/qualityManagement/finalInspection/components/filesDia.vue        |    2 
 src/views/salesManagement/invoiceLedger/index.vue                          |    6 ---
 src/views/basicData/customerFile/index.vue                                 |    2 
 src/views/productionManagement/workOrder/components/filesDia.vue           |    2 
 src/views/equipmentManagement/measurementEquipment/filesDia.vue            |    2 
 src/views/projectManagement/Management/components/formDia.vue              |    4 +-
 src/views/qualityManagement/processInspection/components/filesDia.vue      |    2 
 src/views/projectManagement/Management/projectDetail.vue                   |   12 +----
 src/views/collaborativeApproval/approvalProcess/fileList.vue               |    3 -
 src/views/personnelManagement/contractManagement/filesDia.vue              |    2 
 src/plugins/download.js                                                    |   10 +++++
 src/views/safeProduction/safeWorkApproval/fileList.vue                     |    2 
 src/views/salesManagement/salesLedger/fileList.vue                         |    2 
 21 files changed, 33 insertions(+), 43 deletions(-)

diff --git a/src/plugins/download.js b/src/plugins/download.js
index 2705310..35ac92f 100644
--- a/src/plugins/download.js
+++ b/src/plugins/download.js
@@ -82,6 +82,16 @@
   saveAs(text, name, opts) {
     saveAs(text, name, opts);
   },
+  byUrl(url, filename) {
+    // 灏哢RL涓殑preview鏇挎崲鎴恉ownload
+    const downloadUrl = url.replace(/preview/g, 'download')
+    const link = document.createElement('a')
+    link.href = downloadUrl
+    link.download = filename || ''
+    document.body.appendChild(link)
+    link.click()
+    document.body.removeChild(link)
+  },
   async printErrMsg(data) {
     const resText = await data.text();
     const rspObj = JSON.parse(resText);
diff --git a/src/views/basicData/customerFile/index.vue b/src/views/basicData/customerFile/index.vue
index a080bd9..97ea3e6 100644
--- a/src/views/basicData/customerFile/index.vue
+++ b/src/views/basicData/customerFile/index.vue
@@ -1413,7 +1413,7 @@
   const downloadAttachment = row => {
     if (row.url) {
       // proxy.download(row.url, {}, row.name);
-      proxy.$download.name(row.url);
+			proxy.$download.byUrl(row.url, row.originalFilename);
     } else {
       proxy.$modal.msgError("涓嬭浇閾炬帴涓嶅瓨鍦�");
     }
diff --git a/src/views/basicData/customerFileOpenSea/index.vue b/src/views/basicData/customerFileOpenSea/index.vue
index 2598f48..bad28e1 100644
--- a/src/views/basicData/customerFileOpenSea/index.vue
+++ b/src/views/basicData/customerFileOpenSea/index.vue
@@ -1651,7 +1651,7 @@
   const downloadAttachment = row => {
     if (row.url) {
       // proxy.download(row.url, {}, row.name);
-      proxy.$download.name(row.url);
+			proxy.$download.byUrl(row.url, row.originalFilename);
     } else {
       proxy.$modal.msgError("涓嬭浇閾炬帴涓嶅瓨鍦�");
     }
diff --git a/src/views/basicData/supplierManage/filesDia.vue b/src/views/basicData/supplierManage/filesDia.vue
index 7943185..ef41985 100644
--- a/src/views/basicData/supplierManage/filesDia.vue
+++ b/src/views/basicData/supplierManage/filesDia.vue
@@ -164,7 +164,7 @@
 }
 // 涓嬭浇闄勪欢
 const downLoadFile = (row) => {
-  proxy.$download.name(row.url);
+	proxy.$download.byUrl(row.url, row.originalFilename);
 }
 // 鍒犻櫎
 const handleDelete = () => {
diff --git a/src/views/collaborativeApproval/approvalProcess/fileList.vue b/src/views/collaborativeApproval/approvalProcess/fileList.vue
index 498f474..1f1b671 100644
--- a/src/views/collaborativeApproval/approvalProcess/fileList.vue
+++ b/src/views/collaborativeApproval/approvalProcess/fileList.vue
@@ -32,8 +32,7 @@
   tableData.value = list
 }
 const downLoadFile = (row) => {
-  proxy.$download.name(row.url);
-
+	proxy.$download.byUrl(row.url, row.originalFilename);
 }
 const lookFile = (row) => {
   filePreviewRef.value.open(row.url)
diff --git a/src/views/collaborativeApproval/shipmentReview/fileList.vue b/src/views/collaborativeApproval/shipmentReview/fileList.vue
index da37db2..555312a 100644
--- a/src/views/collaborativeApproval/shipmentReview/fileList.vue
+++ b/src/views/collaborativeApproval/shipmentReview/fileList.vue
@@ -29,8 +29,7 @@
   tableData.value = list
 }
 const downLoadFile = (row) => {
-  proxy.$download.name(row.url);
-
+	proxy.$download.byUrl(row.url, row.originalFilename);
 }
 const lookFile = (row) => {
   filePreviewRef.value.open(row.url)
diff --git a/src/views/equipmentManagement/measurementEquipment/filesDia.vue b/src/views/equipmentManagement/measurementEquipment/filesDia.vue
index ee9dc3a..16c026e 100644
--- a/src/views/equipmentManagement/measurementEquipment/filesDia.vue
+++ b/src/views/equipmentManagement/measurementEquipment/filesDia.vue
@@ -157,7 +157,7 @@
 }
 // 涓嬭浇闄勪欢
 const downLoadFile = (row) => {
-  proxy.$download.name(row.url);
+	proxy.$download.byUrl(row.url, row.originalFilename);
 }
 // 鍒犻櫎
 const handleDelete = () => {
diff --git a/src/views/lavorissue/ledger/filesDia.vue b/src/views/lavorissue/ledger/filesDia.vue
index f752496..46da350 100644
--- a/src/views/lavorissue/ledger/filesDia.vue
+++ b/src/views/lavorissue/ledger/filesDia.vue
@@ -163,7 +163,7 @@
 }
 // 涓嬭浇闄勪欢
 const downLoadFile = (row) => {
-  proxy.$download.name(row.url);
+	proxy.$download.byUrl(row.url, row.originalFilename);
 }
 // 鍒犻櫎
 const handleDelete = () => {
diff --git a/src/views/personnelManagement/contractManagement/filesDia.vue b/src/views/personnelManagement/contractManagement/filesDia.vue
index 4bcd812..02f9cef 100644
--- a/src/views/personnelManagement/contractManagement/filesDia.vue
+++ b/src/views/personnelManagement/contractManagement/filesDia.vue
@@ -158,7 +158,7 @@
 }
 // 涓嬭浇闄勪欢
 const downLoadFile = (row) => {
-  proxy.$download.name(row.url);
+	proxy.$download.byUrl(row.url, row.originalFilename);
 }
 // 鍒犻櫎
 const handleDelete = () => {
diff --git a/src/views/procurementManagement/procurementLedger/fileList.vue b/src/views/procurementManagement/procurementLedger/fileList.vue
index fb392c5..945d6a1 100644
--- a/src/views/procurementManagement/procurementLedger/fileList.vue
+++ b/src/views/procurementManagement/procurementLedger/fileList.vue
@@ -32,8 +32,7 @@
   tableData.value = list
 }
 const downLoadFile = (row) => {
-  proxy.$download.name(row.url);
-
+	proxy.$download.byUrl(row.url, row.originalFilename);
 }
 const lookFile = (row) => {
   filePreviewRef.value.open(row.url)
diff --git a/src/views/productionManagement/workOrder/components/filesDia.vue b/src/views/productionManagement/workOrder/components/filesDia.vue
index ca6d7a9..1336861 100644
--- a/src/views/productionManagement/workOrder/components/filesDia.vue
+++ b/src/views/productionManagement/workOrder/components/filesDia.vue
@@ -78,7 +78,7 @@
         name: "涓嬭浇",
         type: "text",
         clickFun: row => {
-          proxy.$download.name(row.url);
+					proxy.$download.byUrl(row.url, row.originalFilename);
         },
       },
       {
diff --git a/src/views/productionManagement/workOrderManagement/components/filesDia.vue b/src/views/productionManagement/workOrderManagement/components/filesDia.vue
index 7f038f7..84d8bd4 100644
--- a/src/views/productionManagement/workOrderManagement/components/filesDia.vue
+++ b/src/views/productionManagement/workOrderManagement/components/filesDia.vue
@@ -78,7 +78,7 @@
         name: "涓嬭浇",
         type: "text",
         clickFun: row => {
-          proxy.$download.name(row.url);
+					proxy.$download.byUrl(row.url, row.originalFilename);
         },
       },
       {
diff --git a/src/views/projectManagement/Management/components/formDia.vue b/src/views/projectManagement/Management/components/formDia.vue
index c2ee9c2..0db3efe 100644
--- a/src/views/projectManagement/Management/components/formDia.vue
+++ b/src/views/projectManagement/Management/components/formDia.vue
@@ -1342,9 +1342,9 @@
 }
 
 function downloadAttachment(att) {
-  if (att?.name) {
+  if (att) {
     try {
-      proxy.$download.name(att.url);
+			proxy.$download.byUrl(att.url, att.originalFilename);
       return
     } catch (e) {}
   }
diff --git a/src/views/projectManagement/Management/projectDetail.vue b/src/views/projectManagement/Management/projectDetail.vue
index b526fc6..be670cb 100644
--- a/src/views/projectManagement/Management/projectDetail.vue
+++ b/src/views/projectManagement/Management/projectDetail.vue
@@ -364,16 +364,10 @@
   }
 }
 
-function downloadAttachment(att) {
-  if (att?.url) {
+function downloadAttachment(row) {
+  if (row?.url) {
     try {
-      proxy.$download.resource(att.url)
-      return
-    } catch (e) {}
-  }
-  if (att?.name) {
-    try {
-      proxy.$download.name(att.name, false)
+			proxy.$download.byUrl(row.url, row.originalFilename);
       return
     } catch (e) {}
   }
diff --git a/src/views/projectManagement/projectType/index.vue b/src/views/projectManagement/projectType/index.vue
index 16a17e0..65cc916 100644
--- a/src/views/projectManagement/projectType/index.vue
+++ b/src/views/projectManagement/projectType/index.vue
@@ -250,13 +250,8 @@
 }
 
 /** 涓嬭浇闄勪欢 */
-function handleDownload(attachment) {
-  const url = attachment?.url || attachment?.fileUrl || attachment?.tempPath || attachment?.fileName;
-  if (!url) {
-    ElMessage.warning("鏈壘鍒板彲涓嬭浇鐨勬枃浠跺湴鍧�");
-    return;
-  }
-  proxy.$download.name(url);
+function handleDownload(row) {
+	proxy.$download.byUrl(row.url, row.originalFilename);
 }
 
 onMounted(() => {
diff --git a/src/views/qualityManagement/finalInspection/components/filesDia.vue b/src/views/qualityManagement/finalInspection/components/filesDia.vue
index 8cda761..4517844 100644
--- a/src/views/qualityManagement/finalInspection/components/filesDia.vue
+++ b/src/views/qualityManagement/finalInspection/components/filesDia.vue
@@ -120,7 +120,7 @@
 };
 // 涓嬭浇闄勪欢
 const downLoadFile = (row) => {
-  proxy.$download.name(row.url);
+	proxy.$download.byUrl(row.url, row.originalFilename);
 }
 // 鍏抽棴寮规
 const closeDia = () => {
diff --git a/src/views/qualityManagement/processInspection/components/filesDia.vue b/src/views/qualityManagement/processInspection/components/filesDia.vue
index b0cb258..fe63f4b 100644
--- a/src/views/qualityManagement/processInspection/components/filesDia.vue
+++ b/src/views/qualityManagement/processInspection/components/filesDia.vue
@@ -124,7 +124,7 @@
 };
 // 涓嬭浇闄勪欢
 const downLoadFile = (row) => {
-  proxy.$download.name(row.url);
+	proxy.$download.byUrl(row.url, row.originalFilename);
 }
 // 鍏抽棴寮规
 const closeDia = () => {
diff --git a/src/views/qualityManagement/rawMaterialInspection/components/filesDia.vue b/src/views/qualityManagement/rawMaterialInspection/components/filesDia.vue
index 9b89a3b..e4c9700 100644
--- a/src/views/qualityManagement/rawMaterialInspection/components/filesDia.vue
+++ b/src/views/qualityManagement/rawMaterialInspection/components/filesDia.vue
@@ -153,7 +153,7 @@
 }
 // 涓嬭浇闄勪欢
 const downLoadFile = (row) => {
-  proxy.$download.name(row.url);
+	proxy.$download.byUrl(row.url, row.originalFilename);
 }
 // 棰勮闄勪欢
 const lookFile = (row) => {
diff --git a/src/views/safeProduction/safeWorkApproval/fileList.vue b/src/views/safeProduction/safeWorkApproval/fileList.vue
index 5cc65f1..c3b7597 100644
--- a/src/views/safeProduction/safeWorkApproval/fileList.vue
+++ b/src/views/safeProduction/safeWorkApproval/fileList.vue
@@ -32,7 +32,7 @@
   tableData.value = list
 }
 const downLoadFile = (row) => {
-  proxy.$download.name(row.url);
+	proxy.$download.byUrl(row.url, row.originalFilename);
 
 }
 const lookFile = (row) => {
diff --git a/src/views/salesManagement/invoiceLedger/index.vue b/src/views/salesManagement/invoiceLedger/index.vue
index 444560d..e52ea47 100644
--- a/src/views/salesManagement/invoiceLedger/index.vue
+++ b/src/views/salesManagement/invoiceLedger/index.vue
@@ -409,12 +409,6 @@
   }
 };
 
-const handleFile = (commonFiles) => {
-  commonFiles.forEach((e) => {
-    proxy.$download.name(e.url);
-  });
-};
-
 const clearRange = () => {
   searchForm.invoiceDate = [];
   searchForm.invoiceDateStart = undefined;
diff --git a/src/views/salesManagement/salesLedger/fileList.vue b/src/views/salesManagement/salesLedger/fileList.vue
index 57c4332..eb4d401 100644
--- a/src/views/salesManagement/salesLedger/fileList.vue
+++ b/src/views/salesManagement/salesLedger/fileList.vue
@@ -29,7 +29,7 @@
   tableData.value = list
 }
 const downLoadFile = (row) => {
-  proxy.$download.name(row.url);
+	proxy.$download.byUrl(row.url, row.originalFilename);
 
 }
 const lookFile = (row) => {

--
Gitblit v1.9.3