get下载方法
// get 通用文件下载,参数文件id拼接在url后边
// URL 请求地址 filename文件后缀
export function downloadGet(url, filename) {
downloadLoadingInstance = Loading.service({ text: "正在下载数据,请稍候", spinner: "el-icon-loading", background: "rgba(0, 0, 0, 0.7)", })
return service.get(url, {
// transformRequest: [(params) => { return tansParams(params) }],
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
responseType: 'blob'
}).then(async (data) => {
let fileName
let Suffix
if(data['contentDisposition']){
fileName = decodeURIComponent(data['contentDisposition'].split('=')[1].split('.')[0])
Suffix = data['contentDisposition'].substring( data['contentDisposition'].lastIndexOf(".") + 1);
}
const isLogin = await blobValidate(data);
if (isLogin) {
const blob = new Blob([data])
// 如果外部,传递了filename就是使用,不传递就使用fileName+Suffix
saveAs(blob, filename === undefined? fileName + '.' + Suffix : filename)
} else {
const resText = await data.text();
const rspObj = JSON.parse(resText);
const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode['default']
Message.error(errMsg);
}
downloadLoadingInstance.close();
}).catch((r) => {
console.error(r)
Message.error('下载文件出现错误,请联系管理员!')
downloadLoadingInstance.close();
})
}
所有请求通用下载方法
// 通用下载方法
// url 请求地址 params请求参数,filename文件后缀
export function download(url, params, filename) {
downloadLoadingInstance = Loading.service({ text: "正在下载数据,请稍候", spinner: "el-icon-loading", background: "rgba(0, 0, 0, 0.7)", })
return service.post(url, params, {
transformRequest: [(params) => { return tansParams(params) }],
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
responseType: 'blob'
}).then(async (data) => {
const isLogin = await blobValidate(data);
if (isLogin) {
const blob = new Blob([data])
saveAs(blob, filename)
} else {
const resText = await data.text();
const rspObj = JSON.parse(resText);
const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode['default']
Message.error(errMsg);
}
downloadLoadingInstance.close();
}).catch((r) => {
console.error(r)
Message.error('下载文件出现错误,请联系管理员!')
downloadLoadingInstance.close();
})
}
大家复制粘贴即可