1.首先后台需要写导出接口
2.前端调用接口进行处理
<input name="button" type="button" class="data-searchbtn" style="width:80px;" value="导出" @click="exportList()"/>
<script>
//导出
exportList(){
axios({
url: '导出接口',
headers: {
"Content-Type": "application/json"
},
method: 'post',
responseType: "blob", //一定要写
data:{ //接口入参
business:this.business || ''
}
}).then(res => {
console.log("导出:",res);
const blob = new Blob([res.data]) //处理文档流
const fileName = res.headers["content-disposition"].split("filename=")[1]
console.log("fileName:",res.headers);
const elink = document.createElement("a")
elink.download = fileName
elink.style.display = "none"
elink.href = URL.createObjectURL(blob)
document.body.appendChild(elink)
elink.click()
URL.revokeObjectURL(elink.href) // 释放URL 对象
document.body.removeChild(elink)
}).catch(err => {
console.log(err)
})
},
</script>