diff --git a/src/modules/06_retirement/components/ExitInterview/exitRegistry.vue b/src/modules/06_retirement/components/ExitInterview/exitRegistry.vue index 46c505dd4..60bd3ead9 100644 --- a/src/modules/06_retirement/components/ExitInterview/exitRegistry.vue +++ b/src/modules/06_retirement/components/ExitInterview/exitRegistry.vue @@ -10,12 +10,12 @@ class="q-mr-sm" @click="router.go(-1)" /> - รายละเอียด Exit interview ของ {{ responseData.fullname }} + รายละเอียด Exit interview ของ {{ fullname }}
- {{ responseData.fullname }} + {{ fullname }}
@@ -23,17 +23,14 @@
- +
ตำแหน่งในสายงาน
- {{ responseData.positionTypeOld }} + {{ Position }}
@@ -41,7 +38,7 @@
ระดับ
- {{ responseData.positionLevelOld }} + {{ PositionLevel }}
@@ -49,7 +46,7 @@
สังกัด
- {{ responseData.organizationPositionOld }} + {{ Org }}
@@ -98,180 +95,257 @@
-
-
-
-
-
- แสดงข้อมูลแบบสอบถามเป็นคำถามเเละคำตอบ +
+
+ +
+ แบบสอบถาม +
+ +
+
+ 1. เหตุใดท่านจึงตัดสินใจร่วมงานกับกรุงเทพมหานคร (เลือกได้มากกว่า + 1 ข้อ)
-
-
- -
-
-
-
- -
-
-
-
- -
-
-
-
- -
-
-
-
- - - -
-
-
-
-
- -
-
-
-
- - - - - + outlined + class="bg-white" + :rules="[ + (val) => (val && val.length > 0) || 'กรุณากรอกข้อความ', + ]" + /> + +
+
+ 2. สำหรับการลาออกในครั้งนี้ + ท่านได้คิดทบทวนอย่างจริงจังเป็นระยะเวลานานเท่าใด +
+ + +
+ 3. ปัจจัยใดที่ทำให้ท่านตัดสินใจลาออกจากราชการ (เลือกได้มากกว่า 1 + ข้อ ) +
+ +
+ + + +
+ +
+ 4. อะไรคือสิ่งที่ท่านเห็นว่าควรปรับปรุง (เลือกได้มากกว่า 1 ข้อ) +
+ + + +
+ + + +
+
+ 5. โปรดระบุสาเหตุที่แท้จริง + ที่ทำให้ท่านตัดสินใจลาออกจากการปฏิบัติราชการกับกรุงเทพมหานคร ? +
+ + +
+ 6. ปัจจัยใดที่จะช่วยทำให้ท่านเปลี่ยนใจ + ไม่อยากลาออกจากการปฏิบัติราชการกับกรุงเทพมหานคร +
+ + +
+ 7. ท่านมีงานใหม่หรือไม่ ถ้ามี (โปรดระบุ + ชื่อบริษัทเอกชน/หน่วยงานภาครัฐ) + และอะไรคือสิ่งที่ที่ทำงานใหม่ให้กับท่าน + ซึ่งท่านรู้สึกว่าเป็นที่น่าพอใจมากกว่าการปฏิบัติราชการกับกรุงเทพมหานคร +
+ +
+ + + +
+
+ 8. ท่านจะแนะนำเพื่อนให้มาร่วมงานกับกรุงเทพมหานครหรือไม่ (ถ้าไม่ + โปรดระบุเหตุผล) +
+ +
+ + + +
+
+ 9. หากท่านมีโอกาสในอนาคต + ท่านอยากกลับมาร่วมงานกับกรุงเทพมหานครหรือไม่ (ถ้าไม่ + โปรดระบุเหตุผล) +
+ +
+ + + +
+ +
+ 10. ความคิดเห็นและข้อเสนอแนะอื่น ๆ +
+ + +
-
-
- -
+
@@ -292,7 +366,9 @@ import type { QTableProps, QForm } from "quasar"; import type { TypeFile, ResponseDataDetail, -} from "@/modules/06_retirement/interface/response/expulsion"; +} from "@/modules/06_retirement/interface/response/exit"; +import PositionSide from "@/modules/01_metadata/components/positionEmployee/PositionSide.vue"; +import FullCalendarComponent from "@fullcalendar/vue3"; const $q = useQuasar(); const route = useRoute(); @@ -312,64 +388,126 @@ const { const myForm = ref(null); const roleAdmin = ref(false); const edit = ref(false); +const Org = ref(""); +const PositionLevel = ref(""); +const Position = ref(""); -const organizationPositionOld = ref(""); -const positionTypeOld = ref(""); -const positionLevelOld = ref(""); -const posNo = ref(""); -const salary = ref(0); -const organization = ref(""); -const date = ref(null); -const reason = ref(""); +const exitFactor = ref([]); +const reasonWork = ref([]); +const adjust = ref([]); +const timeThink = ref([]); +const fullname = ref(""); +const avata = ref(""); +const realReason = ref(""); +const notExitFactor = ref(""); +const haveJob = ref(""); +const suggestFriends = ref([]); +const futureWork = ref([]); +const suggestion = ref(""); -const responseData = ref({ - personId: "", - avataPath: "", - createdAt: new Date(), - date: new Date(), - id: "", - organization: "", - organizationPositionOld: "", - positionLevelOld: "", - positionNumberOld: "", - positionTypeOld: "", +const reasonWorkOther = ref(""); +const reasonWork_option = ref([ + { label: "ความมั่นคงในการทำงาน ", value: 0 }, + { label: "สิทธิประโยชน์/สวัสดิการ", value: 1 }, + { label: "อัตราเงินเดือน ", value: 2 }, + { label: "ลักษณะงาน ", value: 3 }, + { label: "วัฒนธรรมการทำงานของข้าราชการ ", value: 4 }, + { label: "นโยบายของหน่วยงาน ", value: 5 }, + { label: "ระบบการทำงาน", value: 6 }, + { label: "สมดุลชีวิตการทำงาน ", value: 7 }, + { label: "บรรยากาศในการทำงาน ", value: 8 }, + { label: "การพัฒนาในสายอาชีพ ", value: 9 }, + { label: "โอกาสความก้าวหน้า ", value: 10 }, + { label: "การได้รับการยอมรับจากสังคม ", value: 11 }, + { label: "อื่น ๆ (ระบุ) ", value: 12 }, +]); +const exitFactorOther = ref(""); +const exitFactor_option = ref([ + { label: "อัตราเงินเดือน ", value: 0 }, + { label: "สวัสดิการ", value: 1 }, + { label: "ลักษณะงาน ", value: 2 }, + { label: "ระบบการทำงาน ", value: 3 }, + { label: "ระบบสนับสนุนการปฏิบัติงาน ", value: 4 }, + { label: "การมอบหมายงานที่ชัดเจนและเหมาะสม ", value: 5 }, + { label: "การบริหารงานของผู้บังคับบัญชา", value: 6 }, + { label: "การทำงานเป็นทีมกับเพื่อนร่วมงาน ", value: 7 }, + { label: "ระบบบริหารงานภายในหน่วยงาน ", value: 8 }, + { label: "บรรยากาศในการทำงาน ", value: 9 }, + { label: "การปฏิบัติอย่างเป็นธรรม ", value: 10 }, + { label: "การยอมรับความแตกต่างหลากหลาย ", value: 11 }, + { label: "การดูแลและให้ความช่วยเหลือในช่วงเริ่มต้นปฏิบัติงาน ", value: 12 }, + { label: "การพัฒนาอย่างเป็นระบบและต่อเนื่อง ", value: 13 }, + { label: "โอกาสความก้าวหน้า ", value: 14 }, + { label: "อื่น ๆ (ระบุ) ", value: 15 }, +]); +const suggestFriendsReason = ref(""); +const suggestFriends_option = ref([ + { label: "แนะนำ ", value: true }, + { label: "ไม่แนะนำ (ระบุ)", value: false }, +]); +const timeThink_option = ref([ + { label: "น้อยกว่า 2 สัปดาห์ ", value: 0 }, + { label: "1 เดือน - 3 เดือน", value: 1 }, + { label: "3 เดือน - 6 เดือน ", value: 2 }, + { label: "6 เดือนขึ้นไป ", value: 3 }, +]); +const haveJobReason = ref(""); +const haveJob_option = ref([ + { label: "มี (ระบุ) ", value: true }, + { label: "ไม่มี", value: false }, +]); +const futureWorkReason = ref(""); +const futureWork_option = ref([ + { label: "อยาก ", value: true }, + { label: "ไม่อยาก (ระบุ)", value: false }, +]); +const adjustOther = ref(""); +const adjust_option = ref([ + { label: "อัตราเงินเดือน ", value: 0 }, + { label: "สวัสดิการ", value: 1 }, + { label: "ลักษณะงาน ", value: 2 }, + { label: "ระบบการทำงาน ", value: 3 }, + { label: "ระบบสนับสนุนการปฏิบัติงาน ", value: 4 }, + { label: "การมอบหมายงานที่ชัดเจนและเหมาะสม ", value: 5 }, + { label: "การบริหารงานของผู้บังคับบัญชา", value: 6 }, + { label: "การทำงานเป็นทีมกับเพื่อนร่วมงาน ", value: 7 }, + { label: "ระบบบริหารงานภายในหน่วยงาน ", value: 8 }, + { label: "บรรยากาศในการทำงาน ", value: 9 }, + { label: "การปฏิบัติอย่างเป็นธรรม ", value: 10 }, + { label: "การยอมรับความแตกต่างหลากหลาย ", value: 11 }, + { label: "การดูแลและให้ความช่วยเหลือในช่วงเริ่มต้นปฏิบัติงาน ", value: 12 }, + { label: "การพัฒนาอย่างเป็นระบบและต่อเนื่อง ", value: 13 }, + { label: "โอกาสความก้าวหน้า ", value: 14 }, + { label: "อื่น ๆ (ระบุ) ", value: 15 }, +]); + +const responseData = ref({ + Position: "", + PositionLevel: "", + Org: "", + Prefix: "", + Avatar: "", reason: "", salary: 0, status: "", fullname: "", + ReasonWork: 0, + ReasonWorkOther: "", + TimeThink: 0, + ExitFactor: 0, + ExitFactorOther: "", + Adjust: 0, + AdjustOther: "", + RealReason: "", + NotExitFactor: "", + Havejob: null, + HavejobReason: "", + SuggestFriends: null, + SuggestFriendsReason: "", + FutureWork: null, + FutureWorkReason: "", }); -const rows = ref([]); -const columns = ref([ - { - name: "no", - align: "left", - label: "ลำดับ", - sortable: true, - field: "no", - headerStyle: "font-size: 14px", - style: "font-size: 14px", - }, - { - name: "fileName", - align: "left", - label: "ชื่อไฟล์", - sortable: true, - field: "fileName", - headerStyle: "font-size: 14px", - style: "font-size: 14px", - }, - { - name: "btnMicrosoft", - align: "right", - label: "ปุ่ม", - sortable: true, - field: "btnMicrosoft", - headerStyle: "font-size: 14px", - style: "font-size: 14px", - }, -]); - onMounted(async () => { if (keycloak.tokenParsed != null) { roleAdmin.value = await keycloak.tokenParsed.role.includes("placement1"); @@ -384,34 +522,28 @@ const getData = async () => { .get(config.API.ExitInterviewByid(dataId)) .then((res: any) => { const data = res.data.result; - - responseData.value.personId = data.profileId; - responseData.value.createdAt = data.createdAt; - responseData.value.date = - data.date !== null ? new Date(data.date) : new Date(); - responseData.value.id = data.id ?? ""; - responseData.value.organization = data.organization ?? ""; - responseData.value.organizationPositionOld = - data.organizationPositionOld ?? ""; - responseData.value.positionLevelOld = data.positionLevelOld ?? ""; - responseData.value.positionNumberOld = data.positionNumberOld ?? ""; - responseData.value.positionTypeOld = data.positionTypeOld ?? ""; - responseData.value.reason = data.reason ?? ""; - responseData.value.salary = data.salary !== null ? data.salary : 0; - responseData.value.status = data.status ?? ""; - responseData.value.avataPath = data.avataPath ?? ""; - responseData.value.fullname = `${data.firstName ?? "-"} ${ - data.lastName ?? "-" - }`; - - organizationPositionOld.value = data.organizationPositionOld ?? ""; - positionTypeOld.value = data.positionTypeOld ?? ""; - positionLevelOld.value = data.positionLevelOld ?? ""; - posNo.value = data.posNo ?? ""; - salary.value = data.salary ?? ""; - organization.value = data.organization ?? ""; - date.value = data.date !== null ? new Date(data.date) : null; - reason.value = data.reason ?? ""; + avata.value = data.avatar ?? ""; + Position.value = data.position ?? ""; + PositionLevel.value = data.positionLevel ?? ""; + Org.value = data.org ?? ""; + fullname.value = data.fullname ?? ""; + reasonWork.value = data.reasonWork ?? []; + reasonWorkOther.value = data.ReasonWorkOther ?? ""; + timeThink.value = data.TimeThink ?? 0; + exitFactor.value = data.exitFactor ?? []; + exitFactorOther.value = data.exitFactorOther ?? 0; + adjust.value = data.adjust ?? []; + adjustOther.value = data.adjustOther ?? ""; + realReason.value = data.realReason ?? ""; + notExitFactor.value = data.notExitFactor ?? ""; + haveJob.value = data.havejob ?? null; + haveJobReason.value = data.havejobReason ?? ""; + suggestFriends.value = data.suggestFriends ?? null; + suggestFriendsReason.value = data.suggestFriendsReason ?? ""; + futureWork.value = data.futureWork ?? null; + futureWorkReason.value = data.futureWorkReason ?? ""; + suggestion.value = data.suggestion ?? ""; + // console.log(data.value); }) .catch((e) => { messageError($q, e); @@ -441,16 +573,7 @@ const conditionSave = async () => { }; const saveData = async () => { - const body = { - organization: organization.value, - reason: reason.value, - organizationPositionOld: organizationPositionOld.value, - date: date.value, - positionTypeOld: positionTypeOld.value, - positionLevelOld: positionLevelOld.value, - positionNumberOld: posNo.value, - amountOld: salary.value, - }; + const body = {}; showLoader(); await http .put(config.API.ExitInterviewByid(dataId), body) diff --git a/src/modules/06_retirement/router.ts b/src/modules/06_retirement/router.ts index a74e4195a..eaa43e930 100644 --- a/src/modules/06_retirement/router.ts +++ b/src/modules/06_retirement/router.ts @@ -31,8 +31,10 @@ const expulsionMain = () => const expulsionDetails = () => import("@/modules/06_retirement/components/Expulsion/expulsionRegistry.vue"); -const ExitInterviewMain = () => +const exitInterviewMain = () => import("@/modules/06_retirement/components/ExitInterview/exitMain.vue"); +const exitInterviewDetails = () => + import("@/modules/06_retirement/components/ExitInterview/exitRegistry.vue"); export default [ { @@ -48,7 +50,17 @@ export default [ { path: "/exit-Interview", name: "exit-Interview", - component: ExitInterviewMain, + component: exitInterviewMain, + meta: { + Auth: true, + Key: [7.3], + Role: "retirement", + }, + }, + { + path: "/exit-Interview/questionnair/:id", + name: "exit-Interview-details", + component: exitInterviewDetails, meta: { Auth: true, Key: [7.3],