diff --git a/src/api/recruiting/api.disable.ts b/src/api/recruiting/api.disable.ts index cfb00e4a4..6e5428f14 100644 --- a/src/api/recruiting/api.disable.ts +++ b/src/api/recruiting/api.disable.ts @@ -33,11 +33,13 @@ export default { exportDisablePassResultExam: (id: string) => `${disableExam}export/pass/${id}`, - exportDisableCandidateList: (id: string) => `${diable_report}candidate/${id}`, - exportDisablePassExamList: (id: string) => `${diable_report}pass/${id}`, + exportDisableCandidateList: (id: string) => + `${diable_report}candidate-new/${id}`, + exportDisablePassExamList: (id: string) => `${diable_report}pass-new/${id}`, periodDisableToPlacement: (examId: string) => `${disableExam}placement/${examId}`, - - repoetUploadDisableExam:(id:string)=>`${disableExam}result/${id}`, - repoetDownloadDisableExam:(id:string,examId:string)=>`${disableExam}report/exam/${id}/${examId}` + + repoetUploadDisableExam: (id: string) => `${disableExam}result/${id}`, + repoetDownloadDisableExam: (id: string, examId: string) => + `${disableExam}report/exam/${id}/${examId}`, }; diff --git a/src/api/recruiting/api.recruit.ts b/src/api/recruiting/api.recruit.ts index bc2344e66..3a9f220a8 100644 --- a/src/api/recruiting/api.recruit.ts +++ b/src/api/recruiting/api.recruit.ts @@ -40,14 +40,14 @@ export default { exportPassResultExam: (id: string) => `${recruit}export/pass/${id}`, exportCandidateList: (id: string) => `${recruit_report}candidate/${id}`, - exportPassExamList: (id: string) => `${recruit_report}pass/${id}`, + exportPassExamList: (id: string) => `${recruit_report}pass-new/${id}`, periodRecruitToPlacement: (examId: string) => `${recruit}placement/${examId}`, - reportRecruit:(type:string)=>`${recruit}${type}`, - - - exportCandidateListNew: (id: string) => `${recruit_report}candidate-new/${id}`, - reportCandidateListNew: (id: string) => `${recruit}report/candidate-new/${id}`, - examReport: (id: string,no:string) => `${recruit}report/exam/${id}/${no}`, + reportRecruit: (type: string) => `${recruit}${type}`, + exportCandidateListNew: (id: string) => + `${recruit_report}candidate-new/${id}`, + // reportCandidateListNew: (id: string) => + // `${recruit}report/candidate-new/${id}`, ปรับไปใช้ api ด้านบนแทน + examReport: (id: string, no: string) => `${recruit}report/exam/${id}/${no}`, }; diff --git a/src/modules/03_recruiting/views/01_compete/Period.vue b/src/modules/03_recruiting/views/01_compete/Period.vue index e590de582..d281f6d49 100644 --- a/src/modules/03_recruiting/views/01_compete/Period.vue +++ b/src/modules/03_recruiting/views/01_compete/Period.vue @@ -229,31 +229,9 @@ async function fetchData(actionType?: string) { async function clickPassExam(id: string) { showLoader(); await http - .get(config.API.exportPassExamList(id)) - .then(async (res) => { - const data = res.data.result; - data.reportName = `CandidateList`; - await genReport(data, "รายชื่อผู้สอบแข่งขันได้", "pdf"); - }) - .catch(async (e) => { - messageError($q, JSON.parse(await e.response.data.text())); - }) - .finally(() => { - hideLoader(); - }); -} - -/** - * ดาวน์โหลดรายชื่อผู้มีสิทธิ์สอบ - * @param id รอบสอบเเข่งขัน - */ -async function clickCandidateList(id: string) { - showLoader(); - await http - .get(config.API.reportCandidateListNew(id), { + .get(config.API.exportPassExamList(id), { headers: { - accept: - "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + accept: "application/pdf", "content-Type": "application/json", }, @@ -271,7 +249,64 @@ async function clickCandidateList(id: string) { // สร้างลิงก์เพื่อดาวน์โหลดไฟล์ const link = document.createElement("a"); link.href = url; - link.download = `CandidateList.xlsx`; // กำหนดชื่อไฟล์ที่จะดาวน์โหลด + link.download = `รายชื่อผู้สอบแข่งขันได้.pdf`; // กำหนดชื่อไฟล์ที่จะดาวน์โหลด + document.body.appendChild(link); + link.click(); + + // ลบ URL ที่สร้างขึ้นหลังจากใช้งาน + URL.revokeObjectURL(url); + } + }) + .catch(async (e) => { + messageError($q, JSON.parse(await e.response.data.text())); + }) + .finally(() => { + hideLoader(); + }); + + // await http + // .get(config.API.exportPassExamList(id)) + // .then(async (res) => { + // const data = res.data.result; + // data.reportName = `CandidateList`; + // await genReport(data, "รายชื่อผู้สอบแข่งขันได้", "pdf"); + // }) + // .catch(async (e) => { + // messageError($q, JSON.parse(await e.response.data.text())); + // }) + // .finally(() => { + // hideLoader(); + // }); +} + +/** + * ดาวน์โหลดรายชื่อผู้มีสิทธิ์สอบ + * @param id รอบสอบเเข่งขัน + */ +async function clickCandidateList(id: string) { + showLoader(); + await http + .get(config.API.exportCandidateListNew(id), { + headers: { + accept: "application/pdf", + "content-Type": "application/json", + }, + + responseType: "blob", + }) + .then(async (res) => { + const data = res.data; + if (data) { + // สร้าง Blob จาก array buffer + const blob = new Blob([data]); + + // สร้าง URL สำหรับไฟล์ Blob + const url = URL.createObjectURL(blob); + + // สร้างลิงก์เพื่อดาวน์โหลดไฟล์ + const link = document.createElement("a"); + link.href = url; + link.download = `รายชื่อผู้มีสิทธิ์สอบแข่งขัน.pdf`; // กำหนดชื่อไฟล์ที่จะดาวน์โหลด document.body.appendChild(link); link.click(); diff --git a/src/modules/03_recruiting/views/02_qualify/DisablePeriod.vue b/src/modules/03_recruiting/views/02_qualify/DisablePeriod.vue index 72772c698..fb2621b5d 100644 --- a/src/modules/03_recruiting/views/02_qualify/DisablePeriod.vue +++ b/src/modules/03_recruiting/views/02_qualify/DisablePeriod.vue @@ -187,15 +187,50 @@ const visibleColumnsHistory = ref([ /** ดาวน์โหลดรายชื่อผู้สอบคัดเลือกคนพิการได้ */ async function clickPassExam(id: string) { showLoader(); + // await http + // .get(config.API.exportDisablePassExamList(id)) + // .then(async (res) => { + // const data = res.data.result; + // data.reportName = `CandidateList`; + // await genReport(data, "รายชื่อผู้สอบแข่งขันได้", "pdf"); + // }) + // .catch(async (e) => { + // messageError($q, e); + // }) + // .finally(() => { + // hideLoader(); + // }); await http - .get(config.API.exportDisablePassExamList(id)) + .get(config.API.exportDisablePassExamList(id), { + headers: { + accept: "application/pdf", + "content-Type": "application/json", + }, + + responseType: "blob", + }) .then(async (res) => { - const data = res.data.result; - data.reportName = `CandidateList`; - await genReport(data, "รายชื่อผู้สอบแข่งขันได้", "pdf"); + const data = res.data; + if (data) { + // สร้าง Blob จาก array buffer + const blob = new Blob([data]); + + // สร้าง URL สำหรับไฟล์ Blob + const url = URL.createObjectURL(blob); + + // สร้างลิงก์เพื่อดาวน์โหลดไฟล์ + const link = document.createElement("a"); + link.href = url; + link.download = `รายชื่อผู้สอบคัดเลือกคนพิการได้.pdf`; // กำหนดชื่อไฟล์ที่จะดาวน์โหลด + document.body.appendChild(link); + link.click(); + + // ลบ URL ที่สร้างขึ้นหลังจากใช้งาน + URL.revokeObjectURL(url); + } }) .catch(async (e) => { - messageError($q, e); + messageError($q, JSON.parse(await e.response.data.text())); }) .finally(() => { hideLoader(); @@ -205,15 +240,50 @@ async function clickPassExam(id: string) { /** ดาวน์โหลดรายชื่อผู้มีสิทธิ์สอบ */ async function clickCandidateList(id: string) { showLoader(); + // await http + // .get(config.API.exportDisableCandidateList(id)) + // .then(async (res) => { + // const data = res.data.result; + // data.reportName = `CandidateList`; + // await genReport(data, "รายชื่อผู้มีสิทธิ์สอบ", "pdf"); + // }) + // .catch(async (e) => { + // messageError($q, e); + // }) + // .finally(() => { + // hideLoader(); + // }); await http - .get(config.API.exportDisableCandidateList(id)) + .get(config.API.exportDisablePassExamList(id), { + headers: { + accept: "application/pdf", + "content-Type": "application/json", + }, + + responseType: "blob", + }) .then(async (res) => { - const data = res.data.result; - data.reportName = `CandidateList`; - await genReport(data, "รายชื่อผู้มีสิทธิ์สอบ", "pdf"); + const data = res.data; + if (data) { + // สร้าง Blob จาก array buffer + const blob = new Blob([data]); + + // สร้าง URL สำหรับไฟล์ Blob + const url = URL.createObjectURL(blob); + + // สร้างลิงก์เพื่อดาวน์โหลดไฟล์ + const link = document.createElement("a"); + link.href = url; + link.download = `รายชื่อผู้มีสิทธิ์สอบคัดเลือกคนพิการ.pdf`; // กำหนดชื่อไฟล์ที่จะดาวน์โหลด + document.body.appendChild(link); + link.click(); + + // ลบ URL ที่สร้างขึ้นหลังจากใช้งาน + URL.revokeObjectURL(url); + } }) .catch(async (e) => { - messageError($q, e); + messageError($q, JSON.parse(await e.response.data.text())); }) .finally(() => { hideLoader(); diff --git a/src/modules/03_recruiting/views/02_qualify/PeriodAdd.vue b/src/modules/03_recruiting/views/02_qualify/PeriodAdd.vue index 70250fcec..46d808300 100644 --- a/src/modules/03_recruiting/views/02_qualify/PeriodAdd.vue +++ b/src/modules/03_recruiting/views/02_qualify/PeriodAdd.vue @@ -1001,8 +1001,8 @@ onMounted(async () => { outlined :readonly="checkRoutePermisson" :model-value="yearly + 543" - :rules="[(val:string) => !!val || `${'กรุณาเลือกปีงบประมาณ'}`]" - :label="`${'ปีงบประมาณ'}`" + :rules="[(val:string) => !!val || `${'กรุณาเลือกปี พ.ศ.'}`]" + :label="`${'ปี พ.ศ.'}`" > diff --git a/src/modules/05_placement/components/PersonalList/Table.vue b/src/modules/05_placement/components/PersonalList/Table.vue index 70237807e..f2539009f 100644 --- a/src/modules/05_placement/components/PersonalList/Table.vue +++ b/src/modules/05_placement/components/PersonalList/Table.vue @@ -1600,7 +1600,7 @@ onMounted(async () => { }} {{ props.row.nodeShortName !== null - ? `(${props.row.nodeShortName}${props.row.posMasterNo})` + ? `(${props.row.nodeShortName} ${props.row.posMasterNo})` : "" }}