From db2135d1019a8186455cb67756e3aaa2e11ff82e Mon Sep 17 00:00:00 2001 From: zyn Date: Thu, 20 Apr 2023 15:31:43 +0800 Subject: [PATCH] =?UTF-8?q?axios=E5=B0=81=E8=A3=85=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/axios/index.js | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/common/axios/index.js b/src/common/axios/index.js index 6d9d0f0fb..980339cdc 100644 --- a/src/common/axios/index.js +++ b/src/common/axios/index.js @@ -585,4 +585,37 @@ export default { }) }, + _downloadFile (url, params, method = 'get', fileName = '导出文件') { + _axios({ + method, + url, + data: method !== 'get' ? params : {}, + params: method === 'get' ? params : {}, + responseType: 'blob' + }).then( + res => { + const data = res.data + // 兼容ie + if (window.navigator.msSaveOrOpenBlob) { + try { + const blobObject = new Blob([data]) + window.navigator.msSaveOrOpenBlob(blobObject, fileName) + } catch (e) { + console.log(e) + } + return + } + // a标签实现下载 + // type为导出文件格式 例application/vnd.openxmlformats-officedocument.spreadsheetml.sheet 导出为xlsx格式 + let url = window.URL.createObjectURL(new Blob([data], { type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" })) + let a = document.createElement('a') + a.style.display = 'none' + a.href = url + a.setAttribute('download', fileName) + document.body.appendChild(a) + a.click() + document.body.removeChild(a); + URL.revokeObjectURL(url); // 释放对象URL + }) + }, }