From 8df59017dbed2869b3e35eca4164d2267220b8f3 Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Tue, 24 Dec 2024 15:05:24 +0700 Subject: [PATCH] =?UTF-8?q?fix=20=E0=B9=82=E0=B8=AB=E0=B8=A5=E0=B8=94?= =?UTF-8?q?=E0=B9=84=E0=B8=9F=E0=B8=A5=E0=B9=8C=20=20=E0=B8=A3=E0=B8=B2?= =?UTF-8?q?=E0=B8=A2=E0=B8=A5=E0=B8=B0=E0=B9=80=E0=B8=AD=E0=B8=B5=E0=B8=A2?= =?UTF-8?q?=E0=B8=94=E0=B8=84=E0=B8=B3=E0=B8=A3=E0=B9=89=E0=B8=AD=E0=B8=87?= =?UTF-8?q?=E0=B8=82=E0=B8=AD=E0=B9=81=E0=B8=81=E0=B9=89=E0=B9=84=E0=B8=82?= =?UTF-8?q?=E0=B8=97=E0=B8=B0=E0=B9=80=E0=B8=9A=E0=B8=B5=E0=B8=A2=E0=B8=99?= =?UTF-8?q?=E0=B8=9B=E0=B8=A3=E0=B8=B0=E0=B8=A7=E0=B8=B1=E0=B8=95=E0=B8=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/requestEdit/Page01_Detail.vue | 43 +++++++++++++++++-- 1 file changed, 39 insertions(+), 4 deletions(-) diff --git a/src/modules/04_registryPerson/components/requestEdit/Page01_Detail.vue b/src/modules/04_registryPerson/components/requestEdit/Page01_Detail.vue index 01456479f..0fd35dba6 100644 --- a/src/modules/04_registryPerson/components/requestEdit/Page01_Detail.vue +++ b/src/modules/04_registryPerson/components/requestEdit/Page01_Detail.vue @@ -156,6 +156,7 @@ function classInput(val: boolean) { const checkFile = ref(null); // เช็คไฟล์อัปโหลด null ค่าเริ่มต้น, false ไม่มีไฟล์, "img" รูปภาพ, "doc" เอกสาร const urlDownload = ref(""); // url ไฟล์อัปโหลด +const fileDownloadName = ref(""); /** * function หาชื่อไฟล์ * @param id รายการยื่นคำร้องขอแก้ไขข้อมูล @@ -196,8 +197,9 @@ async function downloadUrl(id: string, fileName: string) { fileName ) ) - .then((res) => { + .then(async (res) => { urlDownload.value = res.data.downloadUrl; + fileDownloadName.value = res.data.fileName; if (dataRequest.value.topic == "ขอแก้ไขรูปภาพประจำตัว") { checkFile.value = "img"; } else { @@ -254,6 +256,34 @@ function fetchCheckIsofficer() { } } +async function onDownloadFil() { + try { + // ดึงข้อมูลไฟล์จาก URL + const response = await fetch(urlDownload.value); + + if (!response.ok) { + throw new Error("ไม่สามารถดาวน์โหลดไฟล์ได้"); + } + + // แปลงไฟล์เป็น Blob + const blob = await response.blob(); + + // สร้าง URL ชั่วคราว + const url = URL.createObjectURL(blob); + + // สร้าง เพื่อบังคับดาวน์โหลด + const link = document.createElement("a"); + link.href = url; + link.download = fileDownloadName.value; + link.click(); + + // ลบ URL ชั่วคราวเพื่อประหยัดหน่วยความจำ + URL.revokeObjectURL(url); + } catch (error) { + console.error("เกิดข้อผิดพลาด:", error); + } +} + onMounted(async () => { await Promise.all([fetchDataRequest(), fetchCheckIsofficer()]); }); @@ -402,11 +432,16 @@ onMounted(async () => { icon="mdi-download" dense flat - :label="checkFile == 'img' ? 'ดาวน์โหลดรูปภาพประจำตัว':'ดาวน์โหลดเอกสารหลักฐาน'" + :label=" + checkFile == 'img' + ? 'ดาวน์โหลดรูปภาพประจำตัว' + : 'ดาวน์โหลดเอกสารหลักฐาน' + " color="blue" - :href="urlDownload" - target="_blank" + @click="onDownloadFil" /> + +