This commit is contained in:
Viet An
2026-06-25 17:25:42 +07:00
parent 31ac60a282
commit f759ca49d5
13 changed files with 669 additions and 1458 deletions

View File

@@ -232,61 +232,6 @@ export default defineNuxtPlugin((nuxtApp) => {
return id;
};
const exportpdf = function (docid, name, size, orientation = "portrait") {
var element = document.getElementById(docid);
let elms = element.querySelectorAll("[id='ignore']");
for (var i = 0; i < elms.length; i++) {
elms[i].style.setProperty("display", "none", "important");
}
// Xóa cache ảnh để lần export sau không bị lỗi
element.querySelectorAll("img").forEach((img) => {
img.src = `${img.src}`;
});
var opt = {
margin: 0.4,
filename: `${name || "file"}-${dayjs().format("YYYYMMDDHHmmss")}.pdf`,
image: { type: "jpeg", quality: 1 },
html2canvas: { scale: 3, useCORS: true },
jsPDF: { unit: "in", format: size || "a4", orientation },
pagebreak: {
mode: ["avoid-all", "css", "legacy"],
before: ".page-break-before",
after: ".page-break-after",
avoid: ".avoid-page-break",
},
};
setTimeout(() => html2pdf().set(opt).from(element).save(), 300);
setTimeout(() => {
for (var i = 0; i < elms.length; i++) {
elms[i].style.removeProperty("display");
}
}, 1000);
return opt.filename;
};
const exportImage = function (docid, name) {
var element = document.getElementById(docid);
let elms = element.querySelectorAll("[id='ignore']");
for (var i = 0; i < elms.length; i++) {
elms[i].style.display = "none";
}
let filename = `${name}-${dayjs().format("YYYYMMDDHHmmss")}.png`;
html2canvas(element).then((canvas) => {
const link = document.createElement("a");
link.href = canvas.toDataURL("image/png");
link.download = filename;
link.click();
link.remove();
});
setTimeout(() => {
for (var i = 0; i < elms.length; i++) {
elms[i].style.display = "block";
}
}, 1000);
return filename;
};
const download = async function (url, fileName) {
const name = dayjs(new Date()).format("YYYYMMDDhhmmss") + "-" + fileName;
const response = await fetch(url);
@@ -549,8 +494,6 @@ export default defineNuxtPlugin((nuxtApp) => {
copyToClipboard,
nonAccent,
linkID,
exportpdf,
exportImage,
vnmoney,
createMeta,
dayjs,