From 17559ed11bd6e55a855ada664b2e5230a088fddd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=BC=BA?= <1206709430@qq.com> Date: Sun, 28 Feb 2021 11:22:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=89=8D=E7=AB=AF-=E5=AF=BC=E5=87=BAexcel?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=B0=81=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dvadmin-ui/src/utils/ruoyi.js | 48 ++++++++++++++++- .../src/views/system/savefile/index.vue | 53 ++----------------- 2 files changed, 49 insertions(+), 52 deletions(-) diff --git a/dvadmin-ui/src/utils/ruoyi.js b/dvadmin-ui/src/utils/ruoyi.js index d415d8c..b48a642 100755 --- a/dvadmin-ui/src/utils/ruoyi.js +++ b/dvadmin-ui/src/utils/ruoyi.js @@ -95,10 +95,54 @@ export function selectDictLabels(datas, value, separator) { }) return actions.join('').substring(0, actions.join('').length - 1); } +/** + * 保存 + * @param {Blob} blob + * @param {String} filename 想要保存的文件名称 + */ +function saveAs(blob, filename) { + if (window.navigator.msSaveOrOpenBlob) { + navigator.msSaveBlob(blob, filename); + } else { + var link = document.createElement('a'); + var body = document.querySelector('body'); + + link.href = window.URL.createObjectURL(blob); + link.download = filename; + + // fix Firefox + link.style.display = 'none'; + body.appendChild(link); + + link.click(); + body.removeChild(link); + + window.URL.revokeObjectURL(link.href); + }; +} + +/** + * 获取 blob + * @param {String} url 目标文件地址 + * @return {cb} + */ +function getBlob(url, cb) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, true); + xhr.responseType = 'blob'; + xhr.onload = function () { + if (xhr.status === 200) { + cb(xhr.response); + } + }; + xhr.send(); +} // 通用下载方法 -export function download(fileName) { - window.location.href = baseURL + "/common/download?fileName=" + encodeURI(fileName) + "&delete=" + true; +export function download(file_url,fileName) { + getBlob(process.env.VUE_APP_BASE_API + file_url, function (blob) { + saveAs(blob, fileName); + }); } // 字符串格式化(%s ) diff --git a/dvadmin-ui/src/views/system/savefile/index.vue b/dvadmin-ui/src/views/system/savefile/index.vue index 55fadf0..04fa2f3 100755 --- a/dvadmin-ui/src/views/system/savefile/index.vue +++ b/dvadmin-ui/src/views/system/savefile/index.vue @@ -118,53 +118,8 @@