// 下载文件(方法1)
export function download(data, name) {
if (!data) {
return
}
const getDate = new Date().getFullYear() + String((new Date().getMonth() + 1) < 10 ? `0${String(new Date().getMonth() + 1)}` : (new Date().getMonth() + 1)) + new Date().getDate()
const blob = new Blob([data])
const fileName = `${name}-${getDate}.xls`;
if ('download' in document.createElement('a')) { // 不是IE浏览器
const url = window.URL.createObjectURL(blob)
const link = document.createElement('a')
link.style.display = 'none'
link.href = url
link.setAttribute('download', fileName)
document.body.appendChild(link)
link.click()
document.body.removeChild(link) // 下载完成移除元素
window.URL.revokeObjectURL(url) // 释放掉blob对象
} else { // IE 10+
window.navigator.msSaveBlob(blob, fileName)
}
}
// 下载文件(方法2)
export function download(res, name) {
const newBlob = new Blob([res]);
const anchor = document.createElement("a");
anchor.download = `${name}.xlsx`;
anchor.href = window.URL.createObjectURL(newBlob);
anchor.click();
}
export function exportData(params) {
const formData = new FormData();
formData.append('jsonParam', params.jsonParam)
return axios({
method: 'get',
url: `${process.env.VUE_APP_API_URL}/?jsonParam=${encodeURI(params.jsonParam)}`,
data: formData,
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'X-Access-Token': window.localStorage.getItem("token"),
'work-space-id': JSON.parse(window.sessionStorage.getItem("workSpace"))?.id,
responseType: 'blob'
}
})
.then(res => {
download(res.data, `查询数据${params.name}`)
return res.data
})
.catch(err => console.log(err));
}
下载文件 blob转码
最新推荐文章于 2024-02-19 10:41:39 发布