正在显示
1 个修改的文件
包含
35 行增加
和
10 行删除
| 1 | import { saveAs } from 'file-saver' | 1 | import { saveAs } from 'file-saver' |
| 2 | import axios from 'axios' | 2 | import axios from 'axios' |
| 3 | import { getToken } from '@/utils/auth' | 3 | import { getToken } from '@/utils/auth' |
| 4 | +import { Message } from 'element-ui' | ||
| 4 | 5 | ||
| 5 | const baseURL = process.env.VUE_APP_BASE_API | 6 | const baseURL = process.env.VUE_APP_BASE_API |
| 6 | 7 | ||
| @@ -12,9 +13,14 @@ export default { | @@ -12,9 +13,14 @@ export default { | ||
| 12 | url: url, | 13 | url: url, |
| 13 | responseType: 'blob', | 14 | responseType: 'blob', |
| 14 | headers: { 'Authorization': 'Bearer ' + getToken() } | 15 | headers: { 'Authorization': 'Bearer ' + getToken() } |
| 15 | - }).then(res => { | ||
| 16 | - const blob = new Blob([res.data]) | ||
| 17 | - this.saveAs(blob, decodeURI(res.headers['download-filename'])) | 16 | + }).then(async (res) => { |
| 17 | + const isLogin = await this.blobValidate(res.data); | ||
| 18 | + if (isLogin) { | ||
| 19 | + const blob = new Blob([res.data]) | ||
| 20 | + this.saveAs(blob, decodeURI(res.headers['download-filename'])) | ||
| 21 | + } else { | ||
| 22 | + Message.error('无效的会话,或者会话已过期,请重新登录。'); | ||
| 23 | + } | ||
| 18 | }) | 24 | }) |
| 19 | }, | 25 | }, |
| 20 | resource(resource) { | 26 | resource(resource) { |
| @@ -24,9 +30,14 @@ export default { | @@ -24,9 +30,14 @@ export default { | ||
| 24 | url: url, | 30 | url: url, |
| 25 | responseType: 'blob', | 31 | responseType: 'blob', |
| 26 | headers: { 'Authorization': 'Bearer ' + getToken() } | 32 | headers: { 'Authorization': 'Bearer ' + getToken() } |
| 27 | - }).then(res => { | ||
| 28 | - const blob = new Blob([res.data]) | ||
| 29 | - this.saveAs(blob, decodeURI(res.headers['download-filename'])) | 33 | + }).then(async (res) => { |
| 34 | + const isLogin = await this.blobValidate(res.data); | ||
| 35 | + if (isLogin) { | ||
| 36 | + const blob = new Blob([res.data]) | ||
| 37 | + this.saveAs(blob, decodeURI(res.headers['download-filename'])) | ||
| 38 | + } else { | ||
| 39 | + Message.error('无效的会话,或者会话已过期,请重新登录。'); | ||
| 40 | + } | ||
| 30 | }) | 41 | }) |
| 31 | }, | 42 | }, |
| 32 | zip(url, name) { | 43 | zip(url, name) { |
| @@ -36,13 +47,27 @@ export default { | @@ -36,13 +47,27 @@ export default { | ||
| 36 | url: url, | 47 | url: url, |
| 37 | responseType: 'blob', | 48 | responseType: 'blob', |
| 38 | headers: { 'Authorization': 'Bearer ' + getToken() } | 49 | headers: { 'Authorization': 'Bearer ' + getToken() } |
| 39 | - }).then(res => { | ||
| 40 | - const blob = new Blob([res.data], { type: 'application/zip' }) | ||
| 41 | - this.saveAs(blob, name) | 50 | + }).then(async (res) => { |
| 51 | + const isLogin = await this.blobValidate(res.data); | ||
| 52 | + if (isLogin) { | ||
| 53 | + const blob = new Blob([res.data], { type: 'application/zip' }) | ||
| 54 | + this.saveAs(blob, name) | ||
| 55 | + } else { | ||
| 56 | + Message.error('无效的会话,或者会话已过期,请重新登录。'); | ||
| 57 | + } | ||
| 42 | }) | 58 | }) |
| 43 | }, | 59 | }, |
| 44 | saveAs(text, name, opts) { | 60 | saveAs(text, name, opts) { |
| 45 | saveAs(text, name, opts); | 61 | saveAs(text, name, opts); |
| 46 | - } | 62 | + }, |
| 63 | + async blobValidate(data) { | ||
| 64 | + try { | ||
| 65 | + const text = await data.text(); | ||
| 66 | + JSON.parse(text); | ||
| 67 | + return false; | ||
| 68 | + } catch (error) { | ||
| 69 | + return true; | ||
| 70 | + } | ||
| 71 | + }, | ||
| 47 | } | 72 | } |
| 48 | 73 |
-
请 注册 或 登录 后发表评论