| | |
| | | import { saveAs } from 'file-saver' |
| | | import axios from 'axios' |
| | | import { getToken } from '@/utils/auth' |
| | | import { Message } from 'element-ui' |
| | | |
| | | const baseURL = process.env.VUE_APP_BASE_API |
| | | |
| | |
| | | url: url, |
| | | responseType: 'blob', |
| | | headers: { 'Authorization': 'Bearer ' + getToken() } |
| | | }).then(res => { |
| | | const blob = new Blob([res.data]) |
| | | this.saveAs(blob, decodeURI(res.headers['download-filename'])) |
| | | }).then(async (res) => { |
| | | const isLogin = await this.blobValidate(res.data); |
| | | if (isLogin) { |
| | | const blob = new Blob([res.data]) |
| | | this.saveAs(blob, decodeURI(res.headers['download-filename'])) |
| | | } else { |
| | | Message.error('无效的会话,或者会话已过期,请重新登录。'); |
| | | } |
| | | }) |
| | | }, |
| | | resource(resource) { |
| | |
| | | url: url, |
| | | responseType: 'blob', |
| | | headers: { 'Authorization': 'Bearer ' + getToken() } |
| | | }).then(res => { |
| | | const blob = new Blob([res.data]) |
| | | this.saveAs(blob, decodeURI(res.headers['download-filename'])) |
| | | }).then(async (res) => { |
| | | const isLogin = await this.blobValidate(res.data); |
| | | if (isLogin) { |
| | | const blob = new Blob([res.data]) |
| | | this.saveAs(blob, decodeURI(res.headers['download-filename'])) |
| | | } else { |
| | | Message.error('无效的会话,或者会话已过期,请重新登录。'); |
| | | } |
| | | }) |
| | | }, |
| | | zip(url, name) { |
| | |
| | | url: url, |
| | | responseType: 'blob', |
| | | headers: { 'Authorization': 'Bearer ' + getToken() } |
| | | }).then(res => { |
| | | const blob = new Blob([res.data], { type: 'application/zip' }) |
| | | this.saveAs(blob, name) |
| | | }).then(async (res) => { |
| | | const isLogin = await this.blobValidate(res.data); |
| | | if (isLogin) { |
| | | const blob = new Blob([res.data], { type: 'application/zip' }) |
| | | this.saveAs(blob, name) |
| | | } else { |
| | | Message.error('无效的会话,或者会话已过期,请重新登录。'); |
| | | } |
| | | }) |
| | | }, |
| | | saveAs(text, name, opts) { |
| | | saveAs(text, name, opts); |
| | | } |
| | | }, |
| | | async blobValidate(data) { |
| | | try { |
| | | const text = await data.text(); |
| | | JSON.parse(text); |
| | | return false; |
| | | } catch (error) { |
| | | return true; |
| | | } |
| | | }, |
| | | } |
| | | |