From 753ca8f078ed6527c590475032049442ac6a6165 Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Thu, 12 Feb 2026 15:16:56 +0700 Subject: [PATCH] feat(/qualify/manage): downloadApplicationForm --- src/api/recruiting/api.period-exam.ts | 3 ++ .../views/02_qualify/ExamForm.vue | 36 ++++++++++++++++++- 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/src/api/recruiting/api.period-exam.ts b/src/api/recruiting/api.period-exam.ts index 84b704fe8..0df5e58ed 100644 --- a/src/api/recruiting/api.period-exam.ts +++ b/src/api/recruiting/api.period-exam.ts @@ -93,4 +93,7 @@ export default { periodExamToPlacement: (examId: string) => `${periodExam}placement/${examId}`, checkShowExaminfo: `${candidate}check-showExamInfo`, + + applicationFormPDF: (candidateId: string) => + `${env.API_URI}/placement/candidate/pdf/${candidateId}`, }; diff --git a/src/modules/03_recruiting/views/02_qualify/ExamForm.vue b/src/modules/03_recruiting/views/02_qualify/ExamForm.vue index 5663f3c19..174ec6570 100644 --- a/src/modules/03_recruiting/views/02_qualify/ExamForm.vue +++ b/src/modules/03_recruiting/views/02_qualify/ExamForm.vue @@ -7,6 +7,7 @@ import { useQuasar } from "quasar"; import http from "@/plugins/http"; import config from "@/app.config"; import { useCounterMixin } from "@/stores/mixin"; +import genReport from "@/plugins/genreport"; import Profile from "@/modules/03_recruiting/components/Profile.vue"; import { @@ -44,6 +45,7 @@ const formContact = ref({}); const status = ref(""); const rejectDetail = ref(""); const positionLevelName = ref(""); +const isShowExamInfo = ref(false); /** ดึงข้อมูลสถานะ */ async function fetchStatus() { @@ -55,6 +57,7 @@ async function fetchStatus() { status.value = data.status; rejectDetail.value = data.rejectDetail; positionLevelName.value = data?.positionExam?.positionLevelName; + isShowExamInfo.value = data.isShowExamInfo || false; }) .catch((e) => { messageError($q, e); @@ -284,6 +287,24 @@ async function clickSave() { }); } +async function downloadApplicationForm() { + try { + showLoader(); + const res = await http.get( + config.API.applicationFormPDF(candidateId.value) + ); + + const result = res.data.result; + const fileName = `${result.template}ของ ${result.data.fullName}`; + + await genReport(result, fileName, "pdf"); + } catch (err) { + messageError($q, err); + } finally { + hideLoader(); + } +} + onMounted(async () => { await fetchStatus(); }); @@ -331,18 +352,31 @@ onMounted(async () => { > ตรวจสอบข้อมูล --> + ย้อนกลับให้เจ้าหน้าที่ตรวจสอบ + + + ดาวน์โหลดใบสมัคร +