import axios from 'axios' import { Message } from 'element-ui' import { saveAs } from 'file-saver' import { getToken } from '@/utils/auth' import errorCode from '@/utils/errorCode' import { blobValidate } from "@/utils/ruoyi"; export default { name(name, isDelete = true) { var url = globalConf.ftpUrl + "/common/download?fileName=" + encodeURI(name) + "&delete=" + isDelete axios({ method: 'get', url: url, responseType: 'blob', headers: { 'Authorization': 'Bearer ' + getToken() } }).then(async (res) => { const isLogin = await blobValidate(res.data); if (isLogin) { const blob = new Blob([res.data]) this.saveAs(blob, decodeURI(res.headers['download-filename'])) } else { this.printErrMsg(res.data); } }) }, resource(resource) { var url = globalConf.ftpUrl + "/common/download/resource?resource=" + encodeURI(resource); axios({ method: 'get', url: url, responseType: 'blob', headers: { 'Authorization': 'Bearer ' + getToken() } }).then(async (res) => { const isLogin = await blobValidate(res.data); if (isLogin) { const blob = new Blob([res.data]) this.saveAs(blob, decodeURI(res.headers['download-filename'])) } else { this.printErrMsg(res.data); } }) }, /** * 下载zip文件,如果local存在值,则从本地下载文件 * @param url 业务链接 * @param name 下载保存的文件名 * @param local 只要不为空,就表示从本地下载 * @date 2023-02-24 时克英添加 local 参数 */ zip(url, name, local) { let fullUrl = globalConf.ftpUrl + url; if(local !== null && local !== ""){ fullUrl = globalConf.baseUrl + url; } axios({ method: 'get', url: fullUrl, responseType: 'blob', headers: { 'Authorization': 'Bearer ' + getToken() } }).then(async (res) => { const isLogin = await blobValidate(res.data); if (isLogin) { const blob = new Blob([res.data], { type: 'application/zip' }) this.saveAs(blob, name) } else { await this.printErrMsg(res.data); } }) }, saveAs(text, name, opts) { saveAs(text, name, opts); }, async printErrMsg(data) { const resText = await data.text(); const rspObj = JSON.parse(resText); const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode['default'] Message.error(errMsg); } }