diff --git a/src/api/recruiting/api.recruit.ts b/src/api/recruiting/api.recruit.ts index c67ee9d65..bc2344e66 100644 --- a/src/api/recruiting/api.recruit.ts +++ b/src/api/recruiting/api.recruit.ts @@ -47,6 +47,7 @@ export default { 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}`, }; diff --git a/src/modules/02_organization/components/DialogHistoryPos.vue b/src/modules/02_organization/components/DialogHistoryPos.vue index 017c504e7..7842de7e9 100644 --- a/src/modules/02_organization/components/DialogHistoryPos.vue +++ b/src/modules/02_organization/components/DialogHistoryPos.vue @@ -102,7 +102,7 @@ const baseColumns = ref([ { name: "position", align: "left", - label: "ตำแแหน่ง", + label: "ตำแหน่งในสายงาน", sortable: true, field: "position", headerStyle: "font-size: 14px", @@ -119,11 +119,11 @@ const baseColumns = ref([ format(val, row) { let name = ""; if (row.posType && row.position) { - name = `${row.posType} (${row.position})`; + name = `${row.posType} (${row.posLevel})`; } else if (row.posType) { name = `${row.posType}`; - } else if (row.position) { - name = `(${row.position})`; + } else if (row.posLevel) { + name = `(${row.posLevel})`; } else name = "-"; return name; }, @@ -213,9 +213,9 @@ function formatHistoryOwnerData(data: HistoryPos[]) { return data.map((item) => ({ ...item, fullname: - item.prefix && item.firstName && item.lastName - ? `${item.prefix} ${item.firstName} ${item.lastName}`.trim() - : "-", + item.firstName + ? `${item.prefix}${item.firstName} ${item.lastName}`.trim() + : "ว่าง", })); } diff --git a/src/modules/03_recruiting/views/01_compete/Period.vue b/src/modules/03_recruiting/views/01_compete/Period.vue index 0c182fd7b..21cafa6e6 100644 --- a/src/modules/03_recruiting/views/01_compete/Period.vue +++ b/src/modules/03_recruiting/views/01_compete/Period.vue @@ -248,11 +248,34 @@ async function clickPassExam(id: string) { async function clickCandidateList(id: string) { showLoader(); await http - .get(config.API.exportCandidateListNew(id)) + .get(config.API.reportCandidateListNew(id), { + headers: { + accept: + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "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 = `CandidateList.xlsx`; // กำหนดชื่อไฟล์ที่จะดาวน์โหลด + document.body.appendChild(link); + link.click(); + + // ลบ URL ที่สร้างขึ้นหลังจากใช้งาน + URL.revokeObjectURL(url); + } }) .catch(async (e) => { messageError($q, JSON.parse(await e.response.data.text())); @@ -705,9 +728,7 @@ onMounted(async () => { " > - นำเข้าไฟล์ผลการสอบ (บัญชีรายชื่อ) + นำเข้าไฟล์ผลการสอบ (บัญชีรายชื่อ)
{{ props.row.score.resultCount }} @@ -722,8 +743,7 @@ onMounted(async () => { icon="mdi-file-excel-outline" > นำเข้าไฟล์ผลการสอบ (บัญชีรายชื่อ) - อีกครั้งนำเข้าไฟล์ผลการสอบ (บัญชีรายชื่อ) อีกครั้ง diff --git a/src/modules/05_placement/interface/response/OhterMain.ts b/src/modules/05_placement/interface/response/OhterMain.ts index 2c2bff31e..6805c0883 100644 --- a/src/modules/05_placement/interface/response/OhterMain.ts +++ b/src/modules/05_placement/interface/response/OhterMain.ts @@ -24,6 +24,7 @@ interface listMain { positionDate: Date; leaveDate: Date; id: string; + nodeId: string; } //ข้อมูลจาก api interface listMainAPI { diff --git a/src/modules/05_placement/views/08_otherMain.vue b/src/modules/05_placement/views/08_otherMain.vue index 68dd96bd2..dfc117935 100644 --- a/src/modules/05_placement/views/08_otherMain.vue +++ b/src/modules/05_placement/views/08_otherMain.vue @@ -195,7 +195,8 @@ async function fecthlistOthet() { e.positionLevelOld && e.positionNumberOld && e.positionDate && - e.leaveDate !== null + e.leaveDate !== null && + e.nodeId !== null ); rows2.value = listData; rows2Data.value = listData;