<el-button type="default" @click="handleExport">导出</el-button>
<div id="chartsId" style="width:100px;height:100px;background:red;"></div>
import html2canvas from "html2canvas";
handleExport() {
const divElement = document.getElementById("chartsId");
html2canvas(divElement).then((canvas) => {
this.convertToFile(canvas);
});
},
convertToFile(canvas) {
canvas.toBlob((blob) => {
const formData = new FormData();
formData.append("file", blob, "");
console.log("导出:", canvas);
axios({
method: "post",
url: process.env.VUE_APP_BASE_API + "/secure-api/nru/weekly/export",
data: formData,
headers: {
"Content-Type": "multipart/form-data",
},
params: {
...this.query,
sysCityCode: "370100000000",
sysCountyCode: "",
},
responseType: "blob",
})
.then(async (res) => {
const blob = new Blob([res.data]);
const fileName = "导出文件.doc";
if ("download" in document.createElement("a")) {
const dlink = document.createElement("a");
dlink.download = fileName;
dlink.style.display = "none";
dlink.href = URL.createObjectURL(blob);
document.body.appendChild(dlink);
dlink.click();
URL.revokeObjectURL(dlink.href);
document.body.removeChild(dlink);
} else {
navigator.msSaveBlob(blob, fileName);
}
})
.catch((error) => {
console.error("无法上传图片:", error);
});
});
},