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 + }) + }, }