From dea4fd4af1fb436666c3db38535a21aa448339f7 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期二, 12 五月 2026 13:10:09 +0800
Subject: [PATCH] Merge branch 'dev_NEW_pro' of http://114.132.189.42:9002/r/product-inventory-management into dev_西宁_青铝绿行
---
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/components/Dialog/FileList.vue | 22 ++++++++++
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
src/components/filePreview/index.vue | 16 ++++----
23 files changed, 62 insertions(+), 52 deletions(-)
diff --git a/src/components/Dialog/FileList.vue b/src/components/Dialog/FileList.vue
index 139dbfb..b0e78cf 100644
--- a/src/components/Dialog/FileList.vue
+++ b/src/components/Dialog/FileList.vue
@@ -36,9 +36,16 @@
<el-table-column v-if="showActions"
fixed="right"
label="鎿嶄綔"
- :width="120"
+ :width="150"
align="center">
<template #default="scope">
+ <el-button link
+ type="primary"
+ size="small"
+ class="download-link"
+ @click="previewFile(scope.row.previewURL)">
+ 棰勮
+ </el-button>
<el-button link
type="primary"
size="small"
@@ -58,9 +65,11 @@
</el-table>
</div>
</el-dialog>
+ <filePreview ref="filePreviewRef" />
</template>
<script setup>
+import { ElMessage } from 'element-plus'
import { ref, computed, getCurrentInstance, onMounted, watch } from "vue";
import AttachmentUpload from "@/components/AttachmentUpload/file/index.vue";
import {
@@ -68,6 +77,8 @@
deleteAttachment,
createAttachment,
} from "@/api/basicData/storageAttachment.js";
+ import filePreview from '@/components/filePreview/index.vue'
+ const filePreviewRef = ref()
const props = defineProps({
visible: {
@@ -122,6 +133,15 @@
isShow.value = false;
};
+ // 棰勮鏂囦欢
+ const previewFile = (url) => {
+ if (url) {
+ filePreviewRef.value.open(url)
+ } else {
+ ElMessage.warning('鏂囦欢鍦板潃鏃犳晥锛屾棤娉曢瑙�')
+ }
+ }
+
const handleUpload = () => {
uploadDialogVisible.value = true;
};
diff --git a/src/components/filePreview/index.vue b/src/components/filePreview/index.vue
index cda5b56..d8720c3 100644
--- a/src/components/filePreview/index.vue
+++ b/src/components/filePreview/index.vue
@@ -78,9 +78,9 @@
transformData: (workbookData) => workbookData,
});
-// 璁$畻灞炴�� - 鍒ゆ柇鏂囦欢绫诲瀷
+// 璁$畻灞炴�� - 鍒ゆ柇鏂囦欢绫诲瀷锛堟敮鎸乁RL甯︽煡璇㈠弬鏁帮級
const isImage = computed(() => {
- const state = /\.(jpg|jpeg|png|gif)$/i.test(fileUrl.value);
+ const state = /\.(jpg|jpeg|png|gif)(\?.*)?$/i.test(fileUrl.value);
if (state) {
imgUrl.value = fileUrl.value.replaceAll('word', 'img');
}
@@ -89,23 +89,23 @@
const isPdf = computed(() => {
console.log(fileUrl.value)
- return /\.pdf$/i.test(fileUrl.value);
+ return /\.pdf(\?.*)?$/i.test(fileUrl.value);
});
const isDoc = computed(() => {
- return /\.(doc|docx)$/i.test(fileUrl.value);
+ return /\.(doc|docx)(\?.*)?$/i.test(fileUrl.value);
});
const isXls = computed(() => {
- const state = /\.(xls|xlsx)$/i.test(fileUrl.value);
+ const state = /\.(xls|xlsx)(\?.*)?$/i.test(fileUrl.value);
if (state) {
- options.value.xls = /\.(xls)$/i.test(fileUrl.value);
+ options.value.xls = /\.(xls)(\?.*)?$/i.test(fileUrl.value);
}
return state;
});
const isZipOrRar = computed(() => {
- return /\.(zip|rar)$/i.test(fileUrl.value);
+ return /\.(zip|rar)(\?.*)?$/i.test(fileUrl.value);
});
const isSupported = computed(() => {
@@ -164,7 +164,7 @@
};
const open = (url) => {
- fileUrl.value = window.location.protocol+'//'+window.location.host+ url;
+ fileUrl.value = url;
dialogVisible.value = true;
};
const handleClose = () => {
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