作者 RuoYi

优化下载解析blob异常提示

@@ -2,6 +2,7 @@ import axios from 'axios' @@ -2,6 +2,7 @@ import axios from 'axios'
2 import { Message } from 'element-ui' 2 import { Message } from 'element-ui'
3 import { saveAs } from 'file-saver' 3 import { saveAs } from 'file-saver'
4 import { getToken } from '@/utils/auth' 4 import { getToken } from '@/utils/auth'
  5 +import errorCode from '@/utils/errorCode'
5 import { blobValidate } from "@/utils/ruoyi"; 6 import { blobValidate } from "@/utils/ruoyi";
6 7
7 const baseURL = process.env.VUE_APP_BASE_API 8 const baseURL = process.env.VUE_APP_BASE_API
@@ -20,7 +21,7 @@ export default { @@ -20,7 +21,7 @@ export default {
20 const blob = new Blob([res.data]) 21 const blob = new Blob([res.data])
21 this.saveAs(blob, decodeURI(res.headers['download-filename'])) 22 this.saveAs(blob, decodeURI(res.headers['download-filename']))
22 } else { 23 } else {
23 - Message.error('无效的会话,或者会话已过期,请重新登录。'); 24 + this.printErrMsg(res.data);
24 } 25 }
25 }) 26 })
26 }, 27 },
@@ -37,7 +38,7 @@ export default { @@ -37,7 +38,7 @@ export default {
37 const blob = new Blob([res.data]) 38 const blob = new Blob([res.data])
38 this.saveAs(blob, decodeURI(res.headers['download-filename'])) 39 this.saveAs(blob, decodeURI(res.headers['download-filename']))
39 } else { 40 } else {
40 - Message.error('无效的会话,或者会话已过期,请重新登录。'); 41 + this.printErrMsg(res.data);
41 } 42 }
42 }) 43 })
43 }, 44 },
@@ -54,12 +55,18 @@ export default { @@ -54,12 +55,18 @@ export default {
54 const blob = new Blob([res.data], { type: 'application/zip' }) 55 const blob = new Blob([res.data], { type: 'application/zip' })
55 this.saveAs(blob, name) 56 this.saveAs(blob, name)
56 } else { 57 } else {
57 - Message.error('无效的会话,或者会话已过期,请重新登录。'); 58 + this.printErrMsg(res.data);
58 } 59 }
59 }) 60 })
60 }, 61 },
61 saveAs(text, name, opts) { 62 saveAs(text, name, opts) {
62 saveAs(text, name, opts); 63 saveAs(text, name, opts);
  64 + },
  65 + async printErrMsg(data) {
  66 + const resText = await data.text();
  67 + const rspObj = JSON.parse(resText);
  68 + const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode['default']
  69 + Message.error(errMsg);
63 } 70 }
64 } 71 }
65 72
@@ -108,7 +108,10 @@ export function download(url, params, filename) { @@ -108,7 +108,10 @@ export function download(url, params, filename) {
108 const blob = new Blob([data]) 108 const blob = new Blob([data])
109 saveAs(blob, filename) 109 saveAs(blob, filename)
110 } else { 110 } else {
111 - Message.error('无效的会话,或者会话已过期,请重新登录。'); 111 + const resText = await data.text();
  112 + const rspObj = JSON.parse(resText);
  113 + const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode['default']
  114 + Message.error(errMsg);
112 } 115 }
113 downloadLoadingInstance.close(); 116 downloadLoadingInstance.close();
114 }).catch((r) => { 117 }).catch((r) => {