排查问题
responseType: "blob",
var blob = new Blob([res.data]);
- 在main.js中是否引入了和axios有冲突的插件,我当时因为引入了
mock
所以这么多次都无果,一直是乱码 - 如果还是不ok的话可以尝试修改
let blob = new Blob([res.data], {type: "application/vnd.ms-excel"});
excelDownLoiad() {
var d = new Date();
this.$axios({
url: "/project/api/v1/export_excel",
method: "get",
responseType: "blob",
params: {
project_id: this.$route.params.id,
},
})
.then((res) => {
console.log(res);
var blob = new Blob([res.data]);
var downloadElement = document.createElement("a");
var href = window.URL.createObjectURL(blob); //创建下载的链接
downloadElement.href = href;
downloadElement.download = `${
this.projectInfo.project_name
}${d.getFullYear()}-${d.getMonth() + 1}-${d.getDate()}报表.xls`; //下载后文件名
document.body.appendChild(downloadElement);
downloadElement.click(); //点击下载
this.$message({
type: "success",
message: "下载成功!",
});
document.body.removeChild(downloadElement); //下载完成移除元素
window.URL.revokeObjectURL(href); //释放掉blob对象
})
.catch((res) => {
console.log(res)
});
},