1.在body里面传参
downloadTzZip({
name:xxx //这里放传递参数
}).then(res => {
const blob = new Blob([res.data], { type: 'blob' })
const url = window.URL.createObjectURL(blob)
const link = document.createElement('a')
link.href = url
link.download = `xxx.zip` //导出名称+格式,大多是.xls的
document.body.appendChild(link)
link.click()
document.body.removeChild(link)
window.URL.revokeObjectURL(url)
})
注意需要在接口里添加一行代码
export function downloadTzZip(data) {
return request({
url: `${prefix}/downloadTzZip`,
method: 'post',
data,
responseType: 'arraybuffer' //要加上这个
})
}
2.formData格式传参
注意: new Blod里的type是根据要导出的格式确定的,我这里导出的是zip格式,所以type是blod,如果导出的是.xlsx,那么type是 { type: 'application/vnd.ms-excel' }
const formData = new FormData()
formData.append('craftIds', craftIdStr) //传参的形式
formData.append('isTag', isType)
exportPDFsAsZip(formData).then(res => {
const blob = new Blob([res.data], { type: 'blob' }) //导出格式不同,这个type不同
const url = window.URL.createObjectURL(blob)
const link = document.createElement('a')
link.href = url
link.download = `xxx.zip`
document.body.appendChild(link)
link.click()
document.body.removeChild(link)
window.URL.revokeObjectURL(url)
})
同样需要再接口处增加一行代码
responseType: 'blob',