From 8b6def0ee3256e97c80ba62d8fc3e967d779b329 Mon Sep 17 00:00:00 2001 From: JEECG <445654970@qq.com> Date: Sun, 14 Sep 2025 10:26:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BC=E5=87=BAexcel=E6=80=BB=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=E6=A0=BC=E5=BC=8F=E4=B8=8D=E5=8C=B9=E9=85=8D=E5=92=8C?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E5=A4=A7=E6=95=B0=E6=8D=AE=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jeecgboot-vue3/src/hooks/system/useMethods.ts | 21 +++++++--- .../src/views/monitor/log/index.vue | 39 +++++++++++++++---- .../src/views/monitor/log/log.api.ts | 8 ++++ 3 files changed, 56 insertions(+), 12 deletions(-) diff --git a/jeecgboot-vue3/src/hooks/system/useMethods.ts b/jeecgboot-vue3/src/hooks/system/useMethods.ts index d10879a43..f52c22840 100644 --- a/jeecgboot-vue3/src/hooks/system/useMethods.ts +++ b/jeecgboot-vue3/src/hooks/system/useMethods.ts @@ -22,12 +22,23 @@ export function useMethods() { */ async function exportXls(name, url, params, isXlsx = false) { //update-begin---author:wangshuai---date:2024-01-25---for:【QQYUN-8118】导出超时时间设置长点--- - const data = await defHttp.get({ url: url, params: params, responseType: 'blob', timeout: 60000 }, { isTransformResponse: false }); + // 修改为返回原生 response,便于获取 headers + const response = await defHttp.get( + { url: url, params: params, responseType: 'blob', timeout: 60000 }, + { isTransformResponse: false, isReturnNativeResponse: true } + ); //update-end---author:wangshuai---date:2024-01-25---for:【QQYUN-8118】导出超时时间设置长点--- - if (!data) { + if (!response || !response.data) { createMessage.warning('文件下载失败'); return; } + // 判断 header 中 content-disposition 是否包含 .xlsx + let isXlsxByHeader = isXlsx; + const disposition = response.headers && response.headers['content-disposition']; + if (disposition && disposition.indexOf('.xlsx') !== -1) { + isXlsxByHeader = true; + } + const data = response.data; //update-begin---author:wangshuai---date:2024-04-18---for: 导出excel失败提示,不进行导出--- let reader = new FileReader() reader.readAsText(data, 'utf-8') @@ -40,16 +51,16 @@ export function useMethods() { if (!success) { createMessage.warning('导出失败,失败原因:' + message); } else { - exportExcel(name, isXlsx, data); + exportExcel(name, isXlsxByHeader, data); } return; } catch (error) { - exportExcel(name, isXlsx, data); + exportExcel(name, isXlsxByHeader, data); } // update-end---author:liaozhiyang---date:2025-02-11---for:【issues/7738】文件中带"success"导出报错 --- } } - exportExcel(name, isXlsx, data); + exportExcel(name, isXlsxByHeader, data); //update-end---author:wangshuai---date:2024-04-18---for: 导出excel失败提示,不进行导出--- } } diff --git a/jeecgboot-vue3/src/views/monitor/log/index.vue b/jeecgboot-vue3/src/views/monitor/log/index.vue index 371eb99a2..4818b1b93 100644 --- a/jeecgboot-vue3/src/views/monitor/log/index.vue +++ b/jeecgboot-vue3/src/views/monitor/log/index.vue @@ -1,11 +1,19 @@