From ff045a6a19e2e0bd5c2433aae71145401627c22d Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 19 十二月 2019 19:08:32 +0800 Subject: [PATCH] 2019-12-19 --- src/api/index.js | 44 +++++++++++++++++++++++++++++++++++++++----- 1 files changed, 39 insertions(+), 5 deletions(-) diff --git a/src/api/index.js b/src/api/index.js index 0ddce06..7ab56c4 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -34,7 +34,6 @@ axios.interceptors.response.use((response) => { if (response.data.ErrCode === 'LoginError') { setCurrentUrl() - // return Promise.resolve(response.data) } else { return Promise.resolve(response.data) } @@ -204,15 +203,50 @@ /** * @description 瀵煎嚭Excel */ - getExcelOut (param) { + getExcelOut (param, name) { param.userid = sessionStorage.getItem('UserID') param.lang = localStorage.getItem('lang') || '' param.SessionUid = sessionStorage.getItem('SessionUid') || '' param.LoginUID = sessionStorage.getItem('LoginUID') || '' - return axios({ - url: '/webapi/doexcel', - data: param + return new Promise(resolve => { + axios({ + url: '/webapi/doexcel', + responseType: 'blob', + data: param + }).then(res => { + + try { + const blob = new Blob([res]) + + if (res.type === 'application/json') { + const reader = new FileReader() + reader.onload = e => resolve(JSON.parse(e.target.result)) + reader.readAsText(blob) + } else { + if ('download' in document.createElement('a')) { // 闈濱E涓嬭浇 + const elink = document.createElement('a') + elink.download = name + elink.style.display = 'none' + elink.href = URL.createObjectURL(blob) + document.body.appendChild(elink) + elink.click() + URL.revokeObjectURL(elink.href) // 閲婃斁URL 瀵硅薄 + document.body.removeChild(elink) + } else { // IE10+涓嬭浇 + navigator.msSaveBlob(blob, name) + } + resolve() + } + } catch { + resolve({ + ErrCode: 'E', + ErrMesg: '鏂囦欢瑙f瀽閿欒', + message: '', + status: false + }) + } + }) }) } -- Gitblit v1.8.0