当后台返回的是文件流时,前端需要做响应的处理才可以导出文件
exportData(data)
.then((res) => {
this.exportLoading = false
// 创建一个隐藏的a链接
const link = document.createElement('a')
// 文件流转化为对应格式的文件
const blob = new Blob([res], { type: 'application/vnd.ms-excel' })
// 把a标签隐藏
link.style.display = 'none'
link.href = URL.createObjectURL(blob)
// 设置文件下载后的名称
link.download = '文件名.xlsx'
document.body.appendChild(link)
link.click()
})
.catch((err) => {
this.exportLoading = false
})
注意在接口的地方增加这个responseType: 'blob'
// 导出
export function exportData(data) {
return request({
url: '/url',
method: 'post',
data:data,
responseType: 'blob',
})
}