diff --git a/package.json b/package.json index 86d69369e..893544660 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "@quasar/extras": "^1.15.8", "@tato30/vue-pdf": "^1.5.1", "@vuepic/vue-datepicker": "^3.6.3", - "bma-org-chart": "^0.0.7", + "bma-org-chart": "^0.0.8", "keycloak-js": "^20.0.2", "moment": "^2.29.4", "pinia": "^2.0.29", diff --git a/src/api/06_retirement/api.retirement.ts b/src/api/06_retirement/api.retirement.ts index 2f5d6c0d0..bca70474b 100644 --- a/src/api/06_retirement/api.retirement.ts +++ b/src/api/06_retirement/api.retirement.ts @@ -3,12 +3,12 @@ const retirement = `${env.API_URI}/retirement` export default { - profile: (type: string, year: number) => `${retirement}/profile/${type}/${year}`, + profile: (type: string, year: string) => `${retirement}/profile/${type}/${year}`, profileRetire: (retireId: string) => `${retirement}/profile/${retireId}`, - getprofileRetire: (retireId: string) => `${retirement}/${retireId}`, - createnote: () => `${retirement}/reason/`, + listRetire: (retireId: string) => `${retirement}/${retireId}`, + createnote: () => `${retirement}/reason`, reasonId: (retireId:string) => `${retirement}/reason/${retireId}`, - retirement:(type:string) => `${retirement}/${type}/2023` + retirement:(type:string,year:string) => `${retirement}/${type}/${year}` 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/interface/request/main/main.ts b/src/interface/request/main/main.ts index af5588930..fe7b5080c 100644 --- a/src/interface/request/main/main.ts +++ b/src/interface/request/main/main.ts @@ -207,7 +207,7 @@ const menuList = readonly([ { key: 6.4, label: "รายการคำขอโอน" /* */, - path: "tranfer", + path: "transfer", role: "placement", }, { @@ -216,6 +216,12 @@ const menuList = readonly([ path: "receive", role: "placement", }, + { + key: 6.6, + label: "คำสั่งช่วยราชการ/ส่งตัวกลับ" /* */, + path: "repatriation-order", + role: "placement", + }, ], }, @@ -247,7 +253,7 @@ const menuList = readonly([ }, { key: 7.4, - label: "Exit interviwe", + label: "Exit interview", // path: "", role: "retirement", }, 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/04_registry/components/Profile.vue b/src/modules/04_registry/components/Profile.vue index 5fa28e74f..c56a812f0 100644 --- a/src/modules/04_registry/components/Profile.vue +++ b/src/modules/04_registry/components/Profile.vue @@ -154,10 +154,10 @@
- - {{ + + @@ -896,7 +896,7 @@ const closeKp7Short = () => { }; const clickaddOrder = () => { - router.push({ name: "addOrder" }); + router.push("/dismiss-order/add"); }; const downloadKP7 = () => {}; diff --git a/src/modules/04_registry/components/TableProfile.vue b/src/modules/04_registry/components/TableProfile.vue index 0b7cb8a80..0e722ed28 100644 --- a/src/modules/04_registry/components/TableProfile.vue +++ b/src/modules/04_registry/components/TableProfile.vue @@ -304,6 +304,77 @@ class="col-3" /> +
+ + + + + + + +
{ @@ -508,6 +585,15 @@ const updateEmployeeLevel = (value: string | number | null) => { const updatePosNo = (value: string | number | null) => { emit("update:posNo", value); }; +const updateReportYear = (value: string | number | null) => { + emit("update:reportYear", value); +}; +const updateReportNo = (value: string | number | null) => { + emit("update:reportNo", value); +}; +const updateReportType = (value: string | number | null) => { + emit("update:reportType", value); +}; // const updateProfileType = (value: string | number | null) => { // emit("update:profileType", value); // }; @@ -515,6 +601,9 @@ const updatePosNo = (value: string | number | null) => { const clearDate = () => { emit("update:retireYear", null); }; +const clearReportDate = () => { + emit("update:reportYear", null); +}; const clickSearchPanel = () => { emit("update:retireYear", null); diff --git a/src/modules/04_registry/router.ts b/src/modules/04_registry/router.ts index 18571351a..51f652691 100644 --- a/src/modules/04_registry/router.ts +++ b/src/modules/04_registry/router.ts @@ -4,10 +4,10 @@ const Main = () => import("@/modules/04_registry/views/Main.vue"); const Detail = () => import("@/modules/04_registry/components/Profile.vue"); -const addOrder = () => - import( - "@/modules/05_placement/components/OrderPlacement/addOrderPlacement.vue" - ); +// const addOrder = () => +// import( +// "@/modules/05_placement/components/OrderPlacement/addOrderPlacement.vue" +// ); export default [ { @@ -30,14 +30,14 @@ export default [ Role: "registry", }, }, - { - path: "/dismiss-order/add", - name: "addOrder", - component: addOrder, - meta: { - Auth: true, - Key: [7], - Role: "registry", - }, - }, + // { + // path: "/dismiss-order/add", + // name: "addOrder", + // component: addOrder, + // meta: { + // Auth: true, + // Key: [7], + // Role: "registry", + // }, + // }, ]; 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, diff --git a/src/modules/05_placement/components/RepatriationOrder/AddOrder.vue b/src/modules/05_placement/components/RepatriationOrder/AddOrder.vue new file mode 100644 index 000000000..f537b6227 --- /dev/null +++ b/src/modules/05_placement/components/RepatriationOrder/AddOrder.vue @@ -0,0 +1,91 @@ + + + diff --git a/src/modules/05_placement/components/RepatriationOrder/List.vue b/src/modules/05_placement/components/RepatriationOrder/List.vue new file mode 100644 index 000000000..6aa4fe9e8 --- /dev/null +++ b/src/modules/05_placement/components/RepatriationOrder/List.vue @@ -0,0 +1,740 @@ + + + + + diff --git a/src/modules/05_placement/components/RepatriationOrder/step01.vue b/src/modules/05_placement/components/RepatriationOrder/step01.vue new file mode 100644 index 000000000..da4912ce6 --- /dev/null +++ b/src/modules/05_placement/components/RepatriationOrder/step01.vue @@ -0,0 +1,353 @@ + + + diff --git a/src/modules/05_placement/components/RepatriationOrder/step02.vue b/src/modules/05_placement/components/RepatriationOrder/step02.vue new file mode 100644 index 000000000..8d58d929e --- /dev/null +++ b/src/modules/05_placement/components/RepatriationOrder/step02.vue @@ -0,0 +1,684 @@ + + + diff --git a/src/modules/05_placement/components/RepatriationOrder/step03.vue b/src/modules/05_placement/components/RepatriationOrder/step03.vue new file mode 100644 index 000000000..d7521a80d --- /dev/null +++ b/src/modules/05_placement/components/RepatriationOrder/step03.vue @@ -0,0 +1,580 @@ + + + diff --git a/src/modules/05_placement/components/Transfer/transferMain.vue b/src/modules/05_placement/components/Transfer/transferMain.vue new file mode 100644 index 000000000..78bd3f03a --- /dev/null +++ b/src/modules/05_placement/components/Transfer/transferMain.vue @@ -0,0 +1,591 @@ + + + diff --git a/src/modules/05_placement/components/Transfer/transferRegistry.vue b/src/modules/05_placement/components/Transfer/transferRegistry.vue new file mode 100644 index 000000000..cc833aaee --- /dev/null +++ b/src/modules/05_placement/components/Transfer/transferRegistry.vue @@ -0,0 +1,230 @@ + + + diff --git a/src/modules/05_placement/components/probation/FormAssign.vue b/src/modules/05_placement/components/probation/FormAssign.vue index 871af71dc..aa211537a 100644 --- a/src/modules/05_placement/components/probation/FormAssign.vue +++ b/src/modules/05_placement/components/probation/FormAssign.vue @@ -10,13 +10,17 @@ color="primary" class="q-mr-sm" @click="router.go(-1)" + v-if="routeName == 'probationWorkAdd'" />
เพิ่มแบบมอบหมายงานการทดลองปฏิบัติหน้าที่ราชการ
แบบมอบหมายงานการทดลองปฏิบัติหน้าที่ราชการ
- +
@@ -45,6 +49,73 @@ label="ตำแหน่ง" />
+
+ ระยะเวลาการทดลองปฎิบัติหน้าที่ราชการ +
+
+ + + + + +
+ +
+ + + + + +
+
@@ -54,7 +125,7 @@
2 ผู้ดูแลการทดลองปฏิบัติหน้าที่ราชการ (อาจมีได้มากกว่า 1 คน) - - รีเช็ต - - {{ caretakerCount }} - + /> -->
+
+
3 @@ -116,24 +182,11 @@ class="q-ml-sm" @click="addActivity" /> - รีเช็ต - - {{ activityCount }} -
-
+
-
+
+ +
+ +
+
@@ -187,29 +254,12 @@ class="q-ml-sm" @click="addKnowledge" /> - รีเช็ต - - {{ knowledgeCount }} -
-
-
+
+
+
+
+
+
ความรู้เรื่องกฎหมายและกฎระเบียบ (ไม่เกิน 20 หัวข้อ) @@ -251,22 +314,21 @@ :disable="routeName != 'probationWorkAdd'" />
-
1. รัฐธรรมนูญ
+
1. รัฐธรรมนูญ
2.กฎหมายปกครอง
-
+
-
2.1 ทำงานได้
+
2.1 ทำงานได้
{{ item.text }}
-
+
-
2.2 ด้านการปฏิบัติราชการ
+
+ 2.2 ด้านการปฏิบัติราชการ +
-
{{ item.text }}
-
+
-
2.3 ด้านการบริหารทรัพยากรบุคคล
+
+ 2.3 ด้านการบริหารทรัพยากรบุคคล +
-
{{ item.text }}
-
+
-
2.4 ด้านการบริหารงบประมาณและการคลัง
+
+ 2.4 ด้านการบริหารงบประมาณและการคลัง +
-
{{ item.text }}
-
-
- +
+
+ 3. กฎหมายอื่นๆ ที่เกี่ยวข้องกับการปฏิบัติงาน +
+
+
+
+
+
-
3. กฎหมายอื่นๆ ที่เกี่ยวข้องกับการปฏิบัติงาน
@@ -641,25 +719,16 @@ icon="mdi-plus" flat class="q-ml-sm" - @click="addProductivity" + @click="addProductivity" /> - รีเช็ต - - {{ productivityCount }} -
- +
-
+
+
+ +
@@ -1073,24 +1154,34 @@ diff --git a/src/modules/05_placement/components/probation/FormEvaluation.vue b/src/modules/05_placement/components/probation/FormEvaluation.vue index 0939b34ba..ee62da9da 100644 --- a/src/modules/05_placement/components/probation/FormEvaluation.vue +++ b/src/modules/05_placement/components/probation/FormEvaluation.vue @@ -1,7 +1,7 @@ \ No newline at end of file + diff --git a/src/modules/05_placement/components/probation/FormEvaluation/Footer.vue b/src/modules/05_placement/components/probation/FormEvaluation/Footer.vue new file mode 100644 index 000000000..20f98ed57 --- /dev/null +++ b/src/modules/05_placement/components/probation/FormEvaluation/Footer.vue @@ -0,0 +1,83 @@ + + + \ No newline at end of file diff --git a/src/modules/05_placement/components/probation/FormEvaluation/FormEvaluate.vue b/src/modules/05_placement/components/probation/FormEvaluation/FormEvaluate.vue new file mode 100644 index 000000000..15c6ee09e --- /dev/null +++ b/src/modules/05_placement/components/probation/FormEvaluation/FormEvaluate.vue @@ -0,0 +1,369 @@ + + + + + diff --git a/src/modules/05_placement/components/probation/FormEvaluation/FormReport.vue b/src/modules/05_placement/components/probation/FormEvaluation/FormReport.vue new file mode 100644 index 000000000..15c6ee09e --- /dev/null +++ b/src/modules/05_placement/components/probation/FormEvaluation/FormReport.vue @@ -0,0 +1,369 @@ + + + + + diff --git a/src/modules/05_placement/components/probation/FormEvaluation/FormSaveResult.vue b/src/modules/05_placement/components/probation/FormEvaluation/FormSaveResult.vue new file mode 100644 index 000000000..c5aa2bc4f --- /dev/null +++ b/src/modules/05_placement/components/probation/FormEvaluation/FormSaveResult.vue @@ -0,0 +1,469 @@ + + + + + diff --git a/src/modules/05_placement/components/probation/FormEvaluation/Header.vue b/src/modules/05_placement/components/probation/FormEvaluation/Header.vue new file mode 100644 index 000000000..579b4e5c6 --- /dev/null +++ b/src/modules/05_placement/components/probation/FormEvaluation/Header.vue @@ -0,0 +1,115 @@ + + + \ No newline at end of file diff --git a/src/modules/05_placement/components/probation/FormEvaluation/SubForm/Part1.vue b/src/modules/05_placement/components/probation/FormEvaluation/SubForm/Part1.vue new file mode 100644 index 000000000..d33baba54 --- /dev/null +++ b/src/modules/05_placement/components/probation/FormEvaluation/SubForm/Part1.vue @@ -0,0 +1,432 @@ + + + + + diff --git a/src/modules/05_placement/components/probation/FormEvaluation/SubForm/Part1Template2.vue b/src/modules/05_placement/components/probation/FormEvaluation/SubForm/Part1Template2.vue new file mode 100644 index 000000000..2f4120f67 --- /dev/null +++ b/src/modules/05_placement/components/probation/FormEvaluation/SubForm/Part1Template2.vue @@ -0,0 +1,312 @@ + + + + diff --git a/src/modules/05_placement/components/probation/FormEvaluation/SubForm/Part2.vue b/src/modules/05_placement/components/probation/FormEvaluation/SubForm/Part2.vue new file mode 100644 index 000000000..0b4771475 --- /dev/null +++ b/src/modules/05_placement/components/probation/FormEvaluation/SubForm/Part2.vue @@ -0,0 +1,289 @@ + + + diff --git a/src/modules/05_placement/components/probation/FormEvaluation/SubForm/Part3.vue b/src/modules/05_placement/components/probation/FormEvaluation/SubForm/Part3.vue new file mode 100644 index 000000000..d4b0b14d5 --- /dev/null +++ b/src/modules/05_placement/components/probation/FormEvaluation/SubForm/Part3.vue @@ -0,0 +1,131 @@ + + + + + diff --git a/src/modules/05_placement/components/probation/FormEvaluation/SubForm/PartHighlightImprove.vue b/src/modules/05_placement/components/probation/FormEvaluation/SubForm/PartHighlightImprove.vue new file mode 100644 index 000000000..5dc58496c --- /dev/null +++ b/src/modules/05_placement/components/probation/FormEvaluation/SubForm/PartHighlightImprove.vue @@ -0,0 +1,45 @@ + + diff --git a/src/modules/05_placement/components/probation/FormEvaluation/Template1.vue b/src/modules/05_placement/components/probation/FormEvaluation/Template1.vue new file mode 100644 index 000000000..251df64ee --- /dev/null +++ b/src/modules/05_placement/components/probation/FormEvaluation/Template1.vue @@ -0,0 +1,31 @@ + + + \ No newline at end of file diff --git a/src/modules/05_placement/components/probation/FormEvaluation/Template2.vue b/src/modules/05_placement/components/probation/FormEvaluation/Template2.vue new file mode 100644 index 000000000..72f5cc6db --- /dev/null +++ b/src/modules/05_placement/components/probation/FormEvaluation/Template2.vue @@ -0,0 +1,29 @@ + + + \ No newline at end of file diff --git a/src/modules/05_placement/components/probation/FormEvaluation/Template3.vue b/src/modules/05_placement/components/probation/FormEvaluation/Template3.vue new file mode 100644 index 000000000..e0adc68a6 --- /dev/null +++ b/src/modules/05_placement/components/probation/FormEvaluation/Template3.vue @@ -0,0 +1,30 @@ + + + \ No newline at end of file diff --git a/src/modules/05_placement/components/probation/MainDetail.vue b/src/modules/05_placement/components/probation/MainDetail.vue index 3151f15ee..1a58e429e 100644 --- a/src/modules/05_placement/components/probation/MainDetail.vue +++ b/src/modules/05_placement/components/probation/MainDetail.vue @@ -1,171 +1,181 @@ - + + + \ No newline at end of file + diff --git a/src/modules/05_placement/components/probation/ProbationDetail.vue b/src/modules/05_placement/components/probation/ProbationDetail.vue index 7faf54272..cb43dad2d 100644 --- a/src/modules/05_placement/components/probation/ProbationDetail.vue +++ b/src/modules/05_placement/components/probation/ProbationDetail.vue @@ -1,274 +1,302 @@ + + +
+
+ + + diff --git a/src/modules/05_placement/components/probation/form/formEva2.vue b/src/modules/05_placement/components/probation/form/formEva2.vue new file mode 100644 index 000000000..0b4771475 --- /dev/null +++ b/src/modules/05_placement/components/probation/form/formEva2.vue @@ -0,0 +1,289 @@ + + + diff --git a/src/modules/05_placement/components/probation/form/formEva3.vue b/src/modules/05_placement/components/probation/form/formEva3.vue new file mode 100644 index 000000000..e368f2dc6 --- /dev/null +++ b/src/modules/05_placement/components/probation/form/formEva3.vue @@ -0,0 +1,130 @@ + + + + diff --git a/src/modules/05_placement/components/probation/form/formEvaOrder.vue b/src/modules/05_placement/components/probation/form/formEvaOrder.vue new file mode 100644 index 000000000..2a0c7f662 --- /dev/null +++ b/src/modules/05_placement/components/probation/form/formEvaOrder.vue @@ -0,0 +1,83 @@ + + + diff --git a/src/modules/05_placement/components/probation/form/formEvacomment.vue b/src/modules/05_placement/components/probation/form/formEvacomment.vue new file mode 100644 index 000000000..5dc58496c --- /dev/null +++ b/src/modules/05_placement/components/probation/form/formEvacomment.vue @@ -0,0 +1,45 @@ + + diff --git a/src/modules/05_placement/components/probation/tabs/tabs2.vue b/src/modules/05_placement/components/probation/tabs/tabs2.vue new file mode 100644 index 000000000..60ed911ee --- /dev/null +++ b/src/modules/05_placement/components/probation/tabs/tabs2.vue @@ -0,0 +1,116 @@ + + diff --git a/src/modules/05_placement/components/probation/tabs/tabs3.vue b/src/modules/05_placement/components/probation/tabs/tabs3.vue new file mode 100644 index 000000000..62cebf32c --- /dev/null +++ b/src/modules/05_placement/components/probation/tabs/tabs3.vue @@ -0,0 +1,116 @@ + + diff --git a/src/modules/05_placement/components/probation/tabs/tabs4.vue b/src/modules/05_placement/components/probation/tabs/tabs4.vue new file mode 100644 index 000000000..62cebf32c --- /dev/null +++ b/src/modules/05_placement/components/probation/tabs/tabs4.vue @@ -0,0 +1,116 @@ + + diff --git a/src/modules/05_placement/router.ts b/src/modules/05_placement/router.ts index 7ea16af98..90d23090b 100644 --- a/src/modules/05_placement/router.ts +++ b/src/modules/05_placement/router.ts @@ -21,7 +21,7 @@ const detailOrderReplace = () => "@/modules/05_placement/components/OrderPlacement/detailOrderPlacement.vue" ); - // ระบบทดลองงาน +// ระบบทดลองงาน const mainProbation = () => import("@/modules/05_placement/components/probation/MainProbation.vue"); @@ -33,127 +33,178 @@ const probationFormEvaluation = () => const probationWorkAdd = () => import("@/modules/05_placement/components/probation/MainDetail.vue"); - const probationFormAssign = () => - import("@/modules/05_placement/components/probation/FormAssign.vue"); - export default [ - { - path: "/placement", - name: "placement", - component: PlacementMain, - meta: { - Auth: true, - Key: [6.1], - Role: "placement", - }, +const probationFormAssign = () => + import("@/modules/05_placement/components/probation/FormAssign.vue"); +const transfer = () => + import("@/modules/05_placement/components/Transfer/transferMain.vue"); +const transferbyId = () => + import("@/modules/05_placement/components/Transfer/transferRegistry.vue"); + +// คำสั่งช่วยราชการ/ส่งตัวกลับ +const RepatriationOrder = () => + import("@/modules/05_placement/components/RepatriationOrder/List.vue"); +const RepatriationOrderAdd = () => + import("@/modules/05_placement/components/RepatriationOrder/AddOrder.vue"); + +export default [ + { + path: "/placement", + name: "placement", + component: PlacementMain, + meta: { + Auth: true, + Key: [6.1], + Role: "placement", }, - { - path: "/placement/personal-list/:examId", - name: "placementDetail", - component: PlacementDetail, - meta: { - Auth: true, - Key: [6.1], - Role: "placement", - }, + }, + { + path: "/placement/personal-list/:examId", + name: "placementDetail", + component: PlacementDetail, + meta: { + Auth: true, + Key: [6.1], + Role: "placement", }, - { - path: "/placement/personal-detail/:personalId", - name: "PlacementPersonalDetail", - component: PlacementPersonalDetail, - meta: { - Auth: true, - Key: [6.1], - Role: "placement", - }, + }, + { + path: "/placement/personal-detail/:personalId", + name: "PlacementPersonalDetail", + component: PlacementPersonalDetail, + meta: { + Auth: true, + Key: [6.1], + Role: "placement", }, - { - path: "/placement/order", - name: "Orderplacement", - component: MainOrderPlacement, - meta: { - Auth: true, - Key: [6.2], - Role: "placement", - }, + }, + { + path: "/placement/order", + name: "Orderplacement", + component: MainOrderPlacement, + meta: { + Auth: true, + Key: [6.2], + Role: "placement", }, - { - path: "/placement/order/detail", - name: "OrderplacementDetail", - component: detailOrderReplace, - meta: { - Auth: true, - Key: [6.2], - Role: "placement", - }, + }, + { + path: "/placement/order/detail", + name: "OrderplacementDetail", + component: detailOrderReplace, + meta: { + Auth: true, + Key: [6.2], + Role: "placement", }, - { - path: "/placement/addOrderPlacement", - name: "addOrderPlacement", - component: addOrderPlacement, - meta: { - Auth: true, - Key: [6.2], - Role: "placement", - }, + }, + { + path: "/placement/addOrderPlacement", + name: "addOrderPlacement", + component: addOrderPlacement, + meta: { + Auth: true, + Key: [6.2], + Role: "placement", }, - { - path: "/probation", - name: "probation", - component: mainProbation, - meta: { - Auth: true, - Key: [6.3], - Role: "placement", - }, + }, + { + path: "/probation", + name: "probation", + component: mainProbation, + meta: { + Auth: true, + Key: [6.3], + Role: "placement", }, - { - path: "/probation/detail/:id", - name: "probationDetail", - component: probationDetail, - meta: { - Auth: true, - Key: [6.3], - Role: "placement", - }, + }, + { + path: "/probation/detail/:id", + name: "probationDetail", + component: probationDetail, + meta: { + Auth: true, + Key: [6.3], + Role: "placement", }, - { - path: "/probation/form", - name: "probationForm", - component: probationFormEvaluation, - meta: { - Auth: true, - Key: [6.3], - Role: "placement", - }, + }, + { + path: "/probation/detail/:id/:form", + name: "probationForm", + component: probationFormEvaluation, + meta: { + Auth: true, + Key: [6.3], + Role: "placement", }, - { - path: "/probation/work/add", - name: "probationWorkAdd", - component: probationWorkAdd, - meta: { - Auth: true, - Key: [6.3], - Role: "placement", - }, + }, + { + path: "/probation/work/add", + name: "probationWorkAdd", + component: probationWorkAdd, + meta: { + Auth: true, + Key: [6.3], + Role: "placement", }, - { - path: "/probation/work/:id", - name: "probationWork", - component: probationWorkAdd, - meta: { - Auth: true, - Key: [6.3], - Role: "placement", - }, + }, + { + path: "/probation/work/:id", + name: "probationWork", + component: probationWorkAdd, + meta: { + Auth: true, + Key: [6.3], + Role: "placement", }, - { - path: "/probation/add", - name: "probationWorkAdd", - component: probationFormAssign, - meta: { - Auth: true, - Key: [6.3], - Role: "placement", - }, + }, + { + path: "/probation/add", + name: "probationWorkAdd", + component: probationFormAssign, + meta: { + Auth: true, + Key: [6.3], + Role: "placement", }, - ]; + }, + { + path: "/transfer", + name: "transfer", + component: transfer, + meta: { + Auth: true, + Key: [6.4], + Role: "placement", + }, + }, + { + path: "/transfer/:id", + name: "transfer-id", + component: transferbyId, + meta: { + Auth: true, + Key: [6.4], + Role: "placement", + }, + }, + { + path: "/repatriation-order", + name: "repatriation-order", + component: RepatriationOrder, + meta: { + Auth: true, + Key: [6.6], + Role: "placement", + }, + }, + { + path: "/repatriation-order/add", + name: "repatriation-order-add", + component: RepatriationOrderAdd, + meta: { + Auth: true, + Key: [6.6], + Role: "placement", + }, + }, +]; diff --git a/src/modules/05_placement/store.ts b/src/modules/05_placement/store.ts index 3f51227be..29f73c9b7 100644 --- a/src/modules/05_placement/store.ts +++ b/src/modules/05_placement/store.ts @@ -281,3 +281,17 @@ export const useOrderPlacementDataStore = defineStore("placementOrder", () => { DataMainOrder, }; }); + +export const useProbationDataStore = defineStore("probationDataStore", () => { + const ratingColors = ref([ + "light-blue-3", + "light-blue-6", + "blue", + "blue-9", + "blue-10", + ]); + + return { + ratingColors, + }; +}); diff --git a/src/modules/06_retirement/components/DismissOrder/DismissOrder.vue b/src/modules/06_retirement/components/DismissOrder/DismissOrder.vue index fb4f94ec3..c133c9f0b 100644 --- a/src/modules/06_retirement/components/DismissOrder/DismissOrder.vue +++ b/src/modules/06_retirement/components/DismissOrder/DismissOrder.vue @@ -485,7 +485,7 @@ const OriginalDataFetch = async () => { // ดูรายการหน้าต่อไป const redirectToPage = (id?: number) => { - router.push(`/retirement/dismiss-order/add`); + router.push(`/dismiss-order/add`); }; const clickDelete = (id: string) => { diff --git a/src/modules/06_retirement/components/ListRetirement/AddList.vue b/src/modules/06_retirement/components/ListRetirement/AddList.vue index 2fe61b0ba..7f72cdc63 100644 --- a/src/modules/06_retirement/components/ListRetirement/AddList.vue +++ b/src/modules/06_retirement/components/ListRetirement/AddList.vue @@ -4,12 +4,28 @@ import http from "@/plugins/http"; import config from "@/app.config"; import { useCounterMixin } from "@/stores/mixin"; import { useQuasar } from "quasar"; +import { useRoute } from "vue-router"; const $q = useQuasar(); //ใช้ noti quasar const mixin = useCounterMixin(); -const { messageError, success } = mixin; +const { messageError, success, showLoader, hideLoader } = mixin; +const route = useRoute(); + +const type_params = route.params.type; +const id = route.params.id; +const props = defineProps({ + retireld: String, + listId: String, + UpdateListId: { + type: Function, + default: () => console.log("UpdateListId"), + }, +}); const modal = ref(false); +const retireld = ref(); +const type = ref(); +const listId = ref(props.listId); const columns = ref([ { @@ -41,10 +57,10 @@ const columns = ref([ align: "left", }, { - name: "affiliation", + name: "organizationOrganization", required: true, label: "สังกัด", - field: "affiliation", + field: "organizationOrganization", align: "left", }, { @@ -56,66 +72,125 @@ const columns = ref([ }, ]); const rows = ref([ - { - fullname: "นายใจดี ยอดใจ", - position: "นักวิชาการพัสดุ", - level: "ปฎิบัติการ", - affiliation: "กลุ่มงานโครงสร้างและอัตรากำลัง ๒", - }, - { - fullname: "นายจักกริน บัณฑิต", - position: "นักวิชาการพัสดุ", - level: "ปฎิบัติการ", - affiliation: "กลุ่มงานโครงสร้างและอัตรากำลัง ๒", - }, - { - fullname: "นายจักกริน บัณฑิต", - position: "นักวิชาการพัสดุ", - level: "ปฎิบัติการ", - affiliation: "กลุ่มงานโครงสร้างและอัตรากำลัง ๒", - }, - { - fullname: "นายจักกริน บัณฑิต", - position: "นักวิชาการพัสดุ", - level: "ปฎิบัติการ", - affiliation: "กลุ่มงานโครงสร้างและอัตรากำลัง ๒", - }, - { - fullname: "นายจักกริน บัณฑิต", - position: "นักวิชาการพัสดุ", - level: "ปฎิบัติการ", - affiliation: "กลุ่มงานโครงสร้างและอัตรากำลัง ๒", - }, - { - fullname: "นายจักกริน บัณฑิต", - position: "นักวิชาการพัสดุ", - level: "ปฎิบัติการ", - affiliation: "กลุ่มงานโครงสร้างและอัตรากำลัง ๒", - }, - { - fullname: "นายจักกริน บัณฑิต", - position: "นักวิชาการพัสดุ", - level: "ปฎิบัติการ", - affiliation: "กลุ่มงานโครงสร้างและอัตรากำลัง ๒", - }, + // { + // fullname: "นายใจดี ยอดใจ", + // position: "นักวิชาการพัสดุ", + // level: "ปฎิบัติการ", + // affiliation: "กลุ่มงานโครงสร้างและอัตรากำลัง ๒", + // }, + // { + // fullname: "นายจักกริน บัณฑิต", + // position: "นักวิชาการพัสดุ", + // level: "ปฎิบัติการ", + // affiliation: "กลุ่มงานโครงสร้างและอัตรากำลัง ๒", + // }, + // { + // fullname: "นายจักกริน บัณฑิต", + // position: "นักวิชาการพัสดุ", + // level: "ปฎิบัติการ", + // affiliation: "กลุ่มงานโครงสร้างและอัตรากำลัง ๒", + // }, + // { + // fullname: "นายจักกริน บัณฑิต", + // position: "นักวิชาการพัสดุ", + // level: "ปฎิบัติการ", + // affiliation: "กลุ่มงานโครงสร้างและอัตรากำลัง ๒", + // }, + // { + // fullname: "นายจักกริน บัณฑิต", + // position: "นักวิชาการพัสดุ", + // level: "ปฎิบัติการ", + // affiliation: "กลุ่มงานโครงสร้างและอัตรากำลัง ๒", + // }, + // { + // fullname: "นายจักกริน บัณฑิต", + // position: "นักวิชาการพัสดุ", + // level: "ปฎิบัติการ", + // affiliation: "กลุ่มงานโครงสร้างและอัตรากำลัง ๒", + // }, + // { + // fullname: "นายจักกริน บัณฑิต", + // position: "นักวิชาการพัสดุ", + // level: "ปฎิบัติการ", + // affiliation: "กลุ่มงานโครงสร้างและอัตรากำลัง ๒", + // }, ]); const filter = ref(""); watch(modal, () => { + // console.log(props); + if (modal.value === true) { - fecthProfile(); + retireld.value = props.retireld; + if (type_params === "officer") { + type.value = type_params; + } else type.value = "all"; + + fecthlistRetire(); } }); -const fecthProfile = async () => { +const updateListData = (retireld: string, pId: string) => { + props.UpdateListId(retireld, pId); +}; +const fecthlistRetire = async () => { + showLoader(); await http - .get(config.API.getprofileRetire("1234")) + .get(config.API.profileOrganizRoot) .then((res) => { - console.log(res); + const id = res.data.result[0].id; + // console.log(id); + if (id !== "") { + findlist(id); + } }) .catch((e) => { messageError($q, e); }); }; -const clickAdd = () => { + +const findlist = async (id: string) => { + let data = [{}]; + if (type.value === "officer") { + data = [{ criteriaType: "is_retire", criteriaValue: "false" }]; + } else if (type.value === "all") { + // console.log("all"); + data = [ + { criteriaType: "is_retire", criteriaValue: "false" }, + { criteriaType: "employee_class", criteriaValue: "perm" }, + ]; + } + // console.log(data); + + await http + .post(config.API.profileSearchNewOcIdType(id, type.value), { + criterias: data, + }) + .then((res) => { + // console.log(res.data.result); + rows.value = res.data.result.map((e: any) => ({ + id: e.id, + fullname: e.fullname, + position: e.position, + level: e.positionEmployeeLevel, + organizationOrganization: e.oc, + })); + }) + .catch((e) => { + console.log(e); + }) + .finally(() => { + hideLoader(); + }); +}; +const clickAdd = (props: any) => { + // console.log("props===>",props.row.id) + if (retireld.value == undefined) { + retireld.value = id; + } + + let data: any = props.row.id; + + console.log("retireld & profileId",retireld.value, data); + $q.dialog({ title: "ยืนยันการเพิ่มข้อมูล", message: "ต้องการเพิ่มข้อมูลนี้ใช่หรือไม่?", @@ -126,17 +201,19 @@ const clickAdd = () => { persistent: true, }) .onOk(async () => { - console.log("เพิ่มข้อมูล"); + // console.log("เพิ่มข้อมูล"); await http - .put(config.API.profileRetire("123")) - .then(() => { + .put(config.API.profileRetire(retireld.value), { profileId: data }) + .then((res) => { success($q, "เพิ่มข้อมูลสำเร็จ"); + updateListData(retireld.value, data); }) .catch((e) => { messageError($q, e); }) .finally(() => { - fecthProfile(); + // fecthlistRetire(); + modal.value = false; }); }) .onCancel(() => {}) @@ -224,6 +301,9 @@ const paginationLabel = (start: number, end: number, total: number) => {