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