Compare commits

..

No commits in common. "9b897999037510df6bbc4e953fcc98044d46ac64" and "92d0a6ff26bd7f8796bf87f5f5b7d989a139135f" have entirely different histories.

2 changed files with 9 additions and 2 deletions

View file

@ -58,7 +58,7 @@ async function onClickDownloadKp7(type: string) {
store.profileId,
dataStore.officerType == "OFFICER" ? "profile" : "profile-employee",
);
const fileName = type === "FULL" ? "ทปอ. สามัญ" : "ประวัติแบบย่อ";
const fileName = type === "FULL" ? "ทปอ สามัญ" : "ประวัติแบบย่อ";
await http
.get(url)
.then(async (res) => {

View file

@ -22,6 +22,7 @@ async function genReport(data: any, fileName: string, type: string = "docx") {
.then((res) => {
const responseData = res.data;
if (responseData) {
// --- ส่วนที่ปรับปรุง 1: กำหนด MIME Type ให้ตรงกับไฟล์ที่รับมาจริง ---
const mimeType =
type === "docx"
? "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
@ -30,15 +31,21 @@ async function genReport(data: any, fileName: string, type: string = "docx") {
const blob = new Blob([responseData], { type: mimeType });
const url = URL.createObjectURL(blob);
const baseName = fileName.trim();
// --- ส่วนที่ปรับปรุง 2: จัดการชื่อไฟล์ (ป้องกันนามสกุลซ้อน) ---
// ตัดช่องว่างหัวท้าย และตัดนามสกุลไฟล์เดิมที่อาจติดมาออก (.pdf, .docx ฯลฯ)
const baseName = fileName.trim().replace(/\.[^/.]+$/, "");
const extension = type === "docx" ? "docx" : "pdf";
const link = document.createElement("a");
link.href = url;
link.download = `${baseName}.${extension}`;
// --- ส่วนที่ปรับปรุง 3: สำหรับ Android/Mobile ---
// บางครั้งการ click() ทันทีอาจถูก block หรือมีปัญหา ต้อง append เข้าไปจริงๆ
document.body.appendChild(link);
link.click();
// หน่วงเวลาเล็กน้อยก่อนลบ element และ revoke URL เพื่อให้ Browser ทำงานเสร็จ
setTimeout(() => {
document.body.removeChild(link);
URL.revokeObjectURL(url);