From 021b12ea8deb296aa03fa3c4e81d1fbe9820d5a0 Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Mon, 9 Feb 2026 17:16:51 +0700 Subject: [PATCH] fix:genReport --- src/plugins/genreport.ts | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/src/plugins/genreport.ts b/src/plugins/genreport.ts index 94c685bbb..6c751ff76 100644 --- a/src/plugins/genreport.ts +++ b/src/plugins/genreport.ts @@ -29,25 +29,32 @@ async function genReport( responseType: "arraybuffer", }) .then((res) => { - const data = res.data; - if (data) { - // สร้าง Blob จาก array buffer - const blob = new Blob([data], { - type: "application/vnd.openxmlformats-officedocument.wordprocessingml.document", - }); + const responseData = res.data; + if (responseData) { + // --- ส่วนที่ปรับปรุง 1: กำหนด MIME Type ให้ตรงกับไฟล์ที่รับมาจริง --- + const mimeType = + type === "docx" + ? "application/vnd.openxmlformats-officedocument.wordprocessingml.document" + : "application/pdf"; - // สร้าง URL สำหรับไฟล์ Blob + const blob = new Blob([responseData], { type: mimeType }); const url = URL.createObjectURL(blob); - // สร้างลิงก์เพื่อดาวน์โหลดไฟล์ + // --- ส่วนที่ปรับปรุง 2: จัดการชื่อไฟล์ (ป้องกันนามสกุลซ้อน) --- + const baseName = fileName.trim(); + const extension = type === "docx" ? "docx" : "pdf"; + const link = document.createElement("a"); link.href = url; - link.download = `${fileName}.${type === "docx" ? "docx" : "pdf"}`; // กำหนดชื่อไฟล์ที่จะดาวน์โหลด + link.download = `${baseName}.${extension}`; document.body.appendChild(link); link.click(); - // ลบ URL ที่สร้างขึ้นหลังจากใช้งาน - URL.revokeObjectURL(url); + // หน่วงเวลาเล็กน้อยก่อนลบ element และ revoke URL เพื่อให้ Browser ทำงานเสร็จ + setTimeout(() => { + document.body.removeChild(link); + URL.revokeObjectURL(url); + }, 100); } }) .catch((err) => {