Merge branch 'develop' into dev

* develop:
  fig: export report recruit
  fix: display posMasterNo
  fix: label yearly
  updated path api report exam & recruit by api
This commit is contained in:
Warunee Tamkoo 2025-11-14 18:00:46 +07:00
commit a298a1fe8c
6 changed files with 157 additions and 50 deletions

View file

@ -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}`,
};

View file

@ -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}`,
};

View file

@ -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();

View file

@ -187,15 +187,50 @@ const visibleColumnsHistory = ref<String[]>([
/** ดาวน์โหลดรายชื่อผู้สอบคัดเลือกคนพิการได้ */
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();

View file

@ -1001,8 +1001,8 @@ onMounted(async () => {
outlined
:readonly="checkRoutePermisson"
:model-value="yearly + 543"
:rules="[(val:string) => !!val || `${'กรุณาเลือกปีงบประมาณ'}`]"
:label="`${'ปีงบประมาณ'}`"
:rules="[(val:string) => !!val || `${'กรุณาเลือกปี พ.ศ.'}`]"
:label="`${'ปี พ.ศ.'}`"
>
</q-input>
</template>

View file

@ -1600,7 +1600,7 @@ onMounted(async () => {
}}
{{
props.row.nodeShortName !== null
? `(${props.row.nodeShortName}${props.row.posMasterNo})`
? `(${props.row.nodeShortName} ${props.row.posMasterNo})`
: ""
}}
</div>