En este caso, este mensaje aparecerá primero, haga clic en No para salir directamente, haga clic en Sí, aparecerá otro mensaje de error
El problema encontrado es que esta solicitud de axios carece de un comentario. Debe agregar el tipo de respuesta: 'blob' comentado a continuación a la solicitud y el archivo de Excel descargado se abrirá normalmente después de agregarlo.
// 导出用券列表
export function exportTicket(data) {
return request({
responseType: "blob",
url: "/courtesycardlog/export",
method: "post",
data,
});
}
// responseType: "blob",
Reponer:
Para el método de exportación correspondiente, la información rápida sobre el éxito o el fracaso de la exportación debe importarse a element-ui, si no se importa, simplemente elimínela.
handleExport() {
this.$confirm("是否确定导出?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "info",
})
.then(() => {
if (this.list.length) {
// 这里填写接口及参数
exportTerminalnode(this.queryParams).then((res) => {
let blob = new Blob([res], {
type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8",
}); //type这里表示xlsx类型
let downloadElement = document.createElement("a");
let href = window.URL.createObjectURL(blob); //创建下载的链接
downloadElement.href = href;
let time = new Date().toLocaleString();
// 记得更改导出时 excel 的 title
downloadElement.download = ("门店信息" + time + ".xlsx").replace(
new RegExp("/", "g"),
"-"
); //下载后文件名
document.body.appendChild(downloadElement);
downloadElement.click(); //点击下载
document.body.removeChild(downloadElement); //下载完成移除元素
window.URL.revokeObjectURL(href); //释放掉blob对象
this.$message({ type: "success", message: "下载成功" });
});
} else {
this.$message({ type: "warning", message: "暂无数据" });
}
})
.catch(() => {
this.$message("取消导出");
});
},