diff --git a/src/api/recruiting/api.disable.ts b/src/api/recruiting/api.disable.ts index 6475349b7..a9419030f 100644 --- a/src/api/recruiting/api.disable.ts +++ b/src/api/recruiting/api.disable.ts @@ -1,39 +1,40 @@ /** * api สรรหา */ -import env from "../index" -const disableExam = `${env.API_CANDIDATE_URI}/candidate/disable-exam/` -const diable_report = `${env.API_URI}/report/exam/` +import env from "../index"; +const disableExam = `${env.API_CANDIDATE_URI}/candidate/disable-exam/`; +const diable_report = `${env.API_URI}/report/exam/`; export default { - getDisableCandidates: `${disableExam}candidate`, - saveDisableCandidates: `${disableExam}candidate`, - deleteDisableCandidates: (id: string) => `${disableExam}candidate/${id}`, - getDisableExamDetail: (id: string, examId: string) => - `${disableExam}exam/${id}/${examId}`, + getDisableCandidates: `${disableExam}candidate`, + saveDisableCandidates: `${disableExam}candidate`, + deleteDisableCandidates: (id: string) => `${disableExam}candidate/${id}`, + getDisableExamDetail: (id: string, examId: string) => + `${disableExam}exam/${id}/${examId}`, - saveDisableScores: (id: string) => `${disableExam}score/${id}`, + saveDisableScores: (id: string) => `${disableExam}score/${id}`, - getDisableExamResultById: (id: string) => `${disableExam}exam/${id}`, + getDisableExamResultById: (id: string) => `${disableExam}exam/${id}`, - // จัดการรอบการสอบ - saveDisablePeriod: `${disableExam}period`, - editDisablePeriod: (id: string) => `${disableExam}period/${id}`, - getDisablePeriodById: (id: string) => `${disableExam}period/${id}`, - uploadDisableCandidates: (id: string) => `${disableExam}candidate/${id}`, - getDisableImportHistory: (id: string) => `${disableExam}history/${id}`, + // จัดการรอบการสอบ + saveDisablePeriod: `${disableExam}period`, + editDisablePeriod: (id: string) => `${disableExam}period/${id}`, + getDisablePeriodById: (id: string) => `${disableExam}period/${id}`, + uploadDisableCandidates: (id: string) => `${disableExam}candidate/${id}`, + getDisableImportHistory: (id: string) => `${disableExam}history/${id}`, - // รายงาน - downloadDisableExamReport: (id: string, examId: string, type: number = 2) => - `${diable_report}certificate/${type}/${id}/${examId}`, - downloadDisableScoreReport: (id: string, examId: string) => - `${diable_report}score/${id}/${examId}`, - exportDisableExam: (id: string) => `${disableExam}export/exam/${id}`, - exportDisablePassExam: (id: string) => `${disableExam}export/pass-exam/${id}`, - exportDisablePassResultExam: (id: string) => - `${disableExam}export/pass/${id}`, + // รายงาน + downloadDisableExamReport: (id: string, examId: string, type: number = 2) => + `${diable_report}certificate/${type}/${id}/${examId}`, + downloadDisableScoreReport: (id: string, examId: string) => + `${diable_report}score/${id}/${examId}`, + exportDisableExam: (id: string) => `${disableExam}export/exam/${id}`, + exportDisablePassExam: (id: string) => `${disableExam}export/pass-exam/${id}`, + 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/${id}`, + exportDisablePassExamList: (id: string) => `${diable_report}pass/${id}`, + periodDisableToPlacement: (examId: string) => + `${disableExam}placement/${examId}`, +}; diff --git a/src/api/recruiting/api.period-exam.ts b/src/api/recruiting/api.period-exam.ts index 6e73724cd..d3676b4aa 100644 --- a/src/api/recruiting/api.period-exam.ts +++ b/src/api/recruiting/api.period-exam.ts @@ -83,4 +83,5 @@ export default { exportExamCandidateList: (id: string) => `${exam_report}candidate-exam/${id}`, exportExamPassExamList: (id: string) => `${exam_report}pass-exam/${id}`, + periodExamToPlacement: (examId: string) => `${periodExam}placement/${examId}`, }; diff --git a/src/api/recruiting/api.recruit.ts b/src/api/recruiting/api.recruit.ts index cc0438f4b..5b7a0d383 100644 --- a/src/api/recruiting/api.recruit.ts +++ b/src/api/recruiting/api.recruit.ts @@ -1,41 +1,44 @@ /** * api สรรหา - สอบแข่งขัน */ -import env from "../index" -const recruit = `${env.API_URI}/recruit/` -const recruit_report = `${env.API_URI}/report/recruit/` +import env from "../index"; +const recruit = `${env.API_URI}/recruit/`; +const recruit_report = `${env.API_URI}/report/recruit/`; export default { - getCandidates: `${recruit}candidate`, - saveCandidates: `${recruit}candidate`, - deleteCandidates: (id: string) => `${recruit}candidate/${id}`, - getExamDetail: (id: string, examId: string) => `${recruit}exam/${id}/${examId}`, + getCandidates: `${recruit}candidate`, + saveCandidates: `${recruit}candidate`, + deleteCandidates: (id: string) => `${recruit}candidate/${id}`, + getExamDetail: (id: string, examId: string) => + `${recruit}exam/${id}/${examId}`, - saveScores: (id: string) => `${recruit}score/${id}`, + saveScores: (id: string) => `${recruit}score/${id}`, - getExamResultById: (id: string) => `${recruit}exam/${id}`, + getExamResultById: (id: string) => `${recruit}exam/${id}`, - // จัดการรอบการสอบ - savePeriod: `${recruit}period`, - editPeriod: (id: string) => `${recruit}period/${id}`, - getPeriodById: (id: string) => `${recruit}period/${id}`, - uploadCandidates: (id: string) => `${recruit}candidate/${id}`, - getImportHistory: (id: string) => `${recruit}history/${id}`, + // จัดการรอบการสอบ + savePeriod: `${recruit}period`, + editPeriod: (id: string) => `${recruit}period/${id}`, + getPeriodById: (id: string) => `${recruit}period/${id}`, + uploadCandidates: (id: string) => `${recruit}candidate/${id}`, + getImportHistory: (id: string) => `${recruit}history/${id}`, - //upload - periodRecruitDoc: (examId: string) => `${recruit}doc/${examId}`, - periodRecruitImg: (examId: string) => `${recruit}img/${examId}`, - periodDeleteDoc: (docId: string) => `${recruit}doc/${docId}`, - periodDeleteImg: (docId: string) => `${recruit}img/${docId}`, + //upload + periodRecruitDoc: (examId: string) => `${recruit}doc/${examId}`, + periodRecruitImg: (examId: string) => `${recruit}img/${examId}`, + periodDeleteDoc: (docId: string) => `${recruit}doc/${docId}`, + periodDeleteImg: (docId: string) => `${recruit}img/${docId}`, - // รายงาน - downloadExamReport: (id: string, examId: string, type: number = 2) => `${recruit_report}certificate/${type}/${id}/${examId}`, - downloadScoreReport: (id: string, examId: string) => `${recruit_report}score/${id}/${examId}`, - exportExam: (id: string) => `${recruit}export/exam/${id}`, - exportPassExam: (id: string) => `${recruit}export/pass-exam/${id}`, - exportPassResultExam: (id: string) => `${recruit}export/pass/${id}`, + // รายงาน + downloadExamReport: (id: string, examId: string, type: number = 2) => + `${recruit_report}certificate/${type}/${id}/${examId}`, + downloadScoreReport: (id: string, examId: string) => + `${recruit_report}score/${id}/${examId}`, + exportExam: (id: string) => `${recruit}export/exam/${id}`, + exportPassExam: (id: string) => `${recruit}export/pass-exam/${id}`, + exportPassResultExam: (id: string) => `${recruit}export/pass/${id}`, - exportCandidateList: (id: string) => `${recruit_report}candidate/${id}`, - exportPassExamList: (id: string) => `${recruit_report}pass/${id}`, - -} \ No newline at end of file + exportCandidateList: (id: string) => `${recruit_report}candidate/${id}`, + exportPassExamList: (id: string) => `${recruit_report}pass/${id}`, + periodRecruitToPlacement: (examId: string) => `${recruit}placement/${examId}`, +}; diff --git a/src/modules/03_recruiting/components/Career.vue b/src/modules/03_recruiting/components/Career.vue index 902f68346..ea833743b 100644 --- a/src/modules/03_recruiting/components/Career.vue +++ b/src/modules/03_recruiting/components/Career.vue @@ -468,6 +468,7 @@ const saveData = async () => { messageError($q, e); }) .finally(async () => { + modal.value = false; await fetchData(); }); }; @@ -493,6 +494,7 @@ const editData = async () => { messageError($q, e); }) .finally(async () => { + modal.value = false; await fetchData(); }); }; diff --git a/src/modules/03_recruiting/components/Education.vue b/src/modules/03_recruiting/components/Education.vue index 6b39a276b..b7f73f24e 100644 --- a/src/modules/03_recruiting/components/Education.vue +++ b/src/modules/03_recruiting/components/Education.vue @@ -497,6 +497,7 @@ const saveData = async () => { messageError($q, e); }) .finally(async () => { + modal.value = false; await fetchData(); }); }; diff --git a/src/modules/03_recruiting/components/TableCandidate.vue b/src/modules/03_recruiting/components/TableCandidate.vue index e454070d0..717b31e44 100644 --- a/src/modules/03_recruiting/components/TableCandidate.vue +++ b/src/modules/03_recruiting/components/TableCandidate.vue @@ -58,6 +58,17 @@ + + บรรจุผู้ผ่านการคัดเลือก +
@@ -137,7 +148,7 @@ diff --git a/src/modules/03_recruiting/views/02_qualify/DisableDetail.vue b/src/modules/03_recruiting/views/02_qualify/DisableDetail.vue index 1b31b8a2d..91b22c7ed 100644 --- a/src/modules/03_recruiting/views/02_qualify/DisableDetail.vue +++ b/src/modules/03_recruiting/views/02_qualify/DisableDetail.vue @@ -13,6 +13,17 @@ /> รายชื่อผู้สมัครสอบรอบ {{ name }} ครั้งที่ {{ round }}/{{ year }} + + บรรจุผู้ผ่านการคัดเลือกผู้พิการ + ดาวน์โหลดไฟล์ @@ -129,7 +140,7 @@ const pass = ref(0); const notpass = ref(0); const importId = ref(route.params.id as string); // Period Import Id const mixin = useCounterMixin(); -const { messageError } = mixin; +const { messageError, success } = mixin; const filter = ref(""); //search data table const visibleColumns = ref([ "examID", @@ -419,6 +430,35 @@ const fetchData = async () => { loaderPage(false); }); }; + +const candidateToPlacement = async () => { + $q.dialog({ + title: "ยืนยันการนำผู้ผ่านคัดเลือกคนพิการเข้าสู่ระบบบรรจุ", + message: "ต้องการนำผู้ผ่านคัดเลือกคนพิการเข้าสู่ระบบบรรจุใช่หรือไม่?", + cancel: { + flat: true, + color: "negative", + }, + persistent: true, + }) + .onOk(async () => { + loaderPage(true); + await http + .get(config.API.periodDisableToPlacement(importId.value)) + .then((res) => { + success($q, "นำผู้ผ่านคัดเลือกคนพิการเข้าสู่ระบบบรรจุ"); + }) + .catch((e) => { + messageError($q, e); + }) + .finally(async () => { + loaderPage(false); + router.go(-1); + }); + }) + .onCancel(() => {}) + .onDismiss(() => {}); +}; diff --git a/src/modules/03_recruiting/views/02_qualify/manageDetail.vue b/src/modules/03_recruiting/views/02_qualify/manageDetail.vue index 74b8776c2..4a91aa660 100644 --- a/src/modules/03_recruiting/views/02_qualify/manageDetail.vue +++ b/src/modules/03_recruiting/views/02_qualify/manageDetail.vue @@ -455,7 +455,7 @@ const columns = ref([ { name: "registerDate", align: "left", - label: "วันเและเวลาที่สมัคร", + label: "วันและเวลาที่สมัคร", sortable: true, field: "registerDate", headerStyle: "font-size: 14px; min-width: 200px", @@ -514,7 +514,7 @@ const fetchData = async () => { avatar: r.profileImg != null ? r.profileImg.detail : "", citizenId: r.citizenId, number: r.number, - registerDate: r.registerDate, + registerDate: date2Thai(r.registerDate), examIdenNumber: r.examIdenNumber, seatNumber: r.seatNumber, resultC: r.resultC, diff --git a/src/modules/05_placement/components/PersonalList/Detail.vue b/src/modules/05_placement/components/PersonalList/Detail.vue index d72880f1c..16c76ae88 100644 --- a/src/modules/05_placement/components/PersonalList/Detail.vue +++ b/src/modules/05_placement/components/PersonalList/Detail.vue @@ -6,15 +6,15 @@ import cardTop from "@/modules/05_placement/components/PersonalList/StatCard.vue import keycloak from "@/plugins/keycloak"; import http from "@/plugins/http"; import config from "@/app.config"; -import { useCounterMixin } from "@/stores/mixin" -import { useQuasar } from "quasar" +import { useCounterMixin } from "@/stores/mixin"; +import { useQuasar } from "quasar"; import { usePlacementDataStore } from "@/modules/05_placement/store"; const DataStore = usePlacementDataStore(); -const $q = useQuasar -const mixin = useCounterMixin() -const { messageError, showLoader, hideLoader } = mixin +const $q = useQuasar; +const mixin = useCounterMixin(); +const { messageError, showLoader, hideLoader } = mixin; let roleAdmin = ref(false); const router = useRouter(); const route = useRoute(); @@ -53,7 +53,7 @@ const getStat = async () => { }) .catch((e) => { messageError($q, e); - }) + }); }; onMounted(async () => { @@ -65,14 +65,15 @@ onMounted(async () => { roleAdmin.value = await keycloak.tokenParsed.role.includes("placement1"); } - await getStat() + await getStat(); - examData.value = await DataStore.DataMainOrig.find((x: any) => x.id == examId); - - title.value = examData.value.examRound; - round.value = examData.value.examOrder; - year.value = examData.value.fiscalYear; + examData.value = await DataStore.DataMainOrig.find( + (x: any) => x.id == examId + ); + title.value = examData.value == null ? null : examData.value.examRound; + round.value = examData.value == null ? null : examData.value.examOrder; + year.value = examData.value == null ? null : examData.value.fiscalYear; }); const fetchPlacementData = async () => { @@ -93,18 +94,48 @@ const fetchPlacementData = async () => { diff --git a/src/modules/05_placement/components/PersonalList/Table.vue b/src/modules/05_placement/components/PersonalList/Table.vue index cec7c0c36..aff05ffc6 100644 --- a/src/modules/05_placement/components/PersonalList/Table.vue +++ b/src/modules/05_placement/components/PersonalList/Table.vue @@ -232,7 +232,10 @@ const getTable = async () => { organizationShortName: data.organizationShortName, positionNumber: data.positionNumber, positionPath: data.positionPath, - reportingDate: dateText(new Date(data.reportingDate)), + reportingDate: + data.reportingDate == null + ? null + : dateText(new Date(data.reportingDate)), examNumber: data.examNumber, bmaOfficer: convertBmaOfficer(data.bmaOfficer), statusId: data.statusId,