diff --git a/src/modules/03_retire/interface/Main.ts b/src/modules/03_retire/interface/Main.ts new file mode 100644 index 0000000..1bf329a --- /dev/null +++ b/src/modules/03_retire/interface/Main.ts @@ -0,0 +1,63 @@ +interface QuestionDescription { + question1Desc: string; + question2Desc: string; + question3Desc: string; + question4Desc: string; + question5Desc: string; + question6Desc: string; + question7Desc: string; + question8Desc: string; + question9Desc: string; + question10Desc: string; + [key: string]: string; +} + +interface OptionQuestions { + label: string; + value: number; +} +interface OptionQuestions2 { + label: string; + value: boolean; +} + +interface MainList { + id: string; + location: string; + sendDate: string; + activeDate: string; + reason: string; + approveReason: string | null; + rejectReason: string | null; + status: string; + isActive: boolean; +} + +interface MainList { + id: string; + placeLeave: string; + dateStartLeave: string; + dateLeave: string; + status: string; + statustext: string; +} + +interface MainListResponse { + id: string; + location: string; + sendDate: Date | null; + activeDate: Date | null; + reason: string; + approveReason: string | null; + rejectReason: string | null; + status: string; + isActive: boolean; +} + +export type { + QuestionDescription, + OptionQuestions, + OptionQuestions2, + MainList, + MainListResponse, +}; diff --git a/src/modules/03_retire/interface/request/Main.ts b/src/modules/03_retire/interface/request/Main.ts deleted file mode 100644 index 97eaaaf..0000000 --- a/src/modules/03_retire/interface/request/Main.ts +++ /dev/null @@ -1,24 +0,0 @@ -interface QuestionDescription { - question1Desc: string; - question2Desc: string; - question3Desc: string; - question4Desc: string; - question5Desc: string; - question6Desc: string; - question7Desc: string; - question8Desc: string; - question9Desc: string; - question10Desc: string; - [key: string]: string; -} - -interface OptionQuestions { - label: string; - value: number; -} -interface OptionQuestions2 { - label: string; - value: boolean; -} - -export type { QuestionDescription, OptionQuestions, OptionQuestions2 }; diff --git a/src/modules/03_retire/views/DialogRetire.vue b/src/modules/03_retire/views/DialogRetire.vue index 9c8d213..74d2032 100644 --- a/src/modules/03_retire/views/DialogRetire.vue +++ b/src/modules/03_retire/views/DialogRetire.vue @@ -2,40 +2,39 @@ import { ref, defineModel } from "vue"; import { useQuasar } from "quasar"; import { useRoute } from "vue-router"; + import http from "@/plugins/http"; import config from "@/app.config"; +import { useCounterMixin } from "@/stores/mixin"; /** importCompouents*/ import Header from "@/components/DialogHeader.vue"; -/** importStore*/ -import { useCounterMixin } from "@/stores/mixin"; - -/** use*/ const $q = useQuasar(); const route = useRoute(); +const mixin = useCounterMixin(); +const { dialogConfirm, messageError, showLoader, hideLoader, success } = mixin; +const id = ref(route.params.id ? route.params.id.toString() : ""); const modal = defineModel("modal", { required: true }); const props = defineProps({ fectData: { type: Function, require: true }, }); -const id = ref(route.params.id ? route.params.id.toString() : ""); - -const mixin = useCounterMixin(); -const { dialogConfirm, messageError, showLoader, hideLoader, success } = mixin; -const reason = ref(""); +const reason = ref(""); //เหตุผลที่ขอยกเลิกการลาออก /*** ฟังก์ชั่นสำหรับ validate ฟอร์ม */ function validateForm() { onSubmit(); } +/** ปิด dialog */ function close() { modal.value = false; reason.value = ""; } +/** save data */ function onSubmit() { dialogConfirm( $q, @@ -89,7 +88,6 @@ function onSubmit() { - import { ref, onMounted } from "vue"; import { useQuasar } from "quasar"; +import type { QForm } from "quasar"; import { useRouter, useRoute } from "vue-router"; -import { useCounterMixin } from "@/stores/mixin"; + import http from "@/plugins/http"; import config from "@/app.config"; -import type { QForm } from "quasar"; +import { useCounterMixin } from "@/stores/mixin"; + import Dialog from "@/modules/03_retire/views/DialogRetire.vue"; +const $q = useQuasar(); +const route = useRoute(); +const router = useRouter(); +const routeName = router.currentRoute.value.name; const mixin = useCounterMixin(); const { date2Thai, @@ -18,21 +24,15 @@ const { hideLoader, dialogConfirm, } = mixin; -const router = useRouter(); -const route = useRoute(); -const $q = useQuasar(); -const routeName = router.currentRoute.value.name; -/** - * ตัวแปรที่ใช้งาน - */ -const id = ref(""); -const myform = ref(null); -const tranferOrg = ref(""); -const dateCommand = ref(new Date()); -const dateLeave = ref(new Date()); -const noteReason = ref(""); -const modal = ref(false); +const id = ref(""); //เก็บ id path +const myform = ref(null); //form +const tranferOrg = ref(""); //สถานที่ยื่นขอลาออกจากราชการ +const dateCommand = ref(new Date()); //วันที่ยื่นขอลาออกจากราชการ +const dateLeave = ref(new Date()); //วันที่ขอลาออกจากราชการ +const noteReason = ref(""); //เหตุผลที่ลาออกจากราชการ +const modal = ref(false); //ตัวแปร dialog + /** ข้อมูล v-model ของฟอร์ม */ const dataDetail = ref({ datetext: "", @@ -57,40 +57,23 @@ const dataDetail = ref({ fullname: "", }); -/** - * ฟังก์ชั่นย้อนกลับไปยังหน้ารายการลาออก - */ -const clickBack = () => { - router.push(`/retire`); -}; - /** * ฟังก์ชั่นเปลี่ยนเป็น string ของ status * @param val value ของ status true/false */ -const statusOrder = (val: boolean) => { +function statusOrder(val: boolean) { switch (val) { case true: return "ยับยั้ง"; case false: return "อนุญาต"; } -}; - -/** - * เรียกฟังก์ชันทั้งหมดตอนเรียกใช้ไฟล์นี้ - */ -onMounted(() => { - if (route.params.id !== undefined) { - id.value = route.params.id.toString(); - fectDataresign(id.value); - } -}); +} /** * บันทึกข้อมูลการลาออก */ -const onSubmit = async () => { +async function onSubmit() { dialogConfirm( $q, () => { @@ -119,21 +102,21 @@ const onSubmit = async () => { "ยืนยันการยื่นข้อมูลลาออก", "ต้องการยื่นข้อมูลลาออกนี้ใช่หรือไม่" ); -}; +} const files = ref(); +const checkCancleLeave = ref(false); //ยกเลิกการลาออก -const cancelResing = () => { +function cancelResing() { modal.value = true; -}; +} -const checkCancleLeave = ref(false); /** * ฟังก์ชั่นเรียกข้อมูลจาก Api * @param id ไอดีของข้อมูล */ -const fectDataresign = async (id: string) => { +async function fectDataresign(id: string) { showLoader(); await http .get(config.API.resingByid(id)) @@ -158,11 +141,24 @@ const fectDataresign = async (id: string) => { .finally(() => { hideLoader(); }); -}; +} +/** + * เปิด tab ใหม่ + * @param data path file + */ function downloadFile(data: string) { window.open(data, "_blank"); } +/** + * เรียกฟังก์ชันทั้งหมดตอนเรียกใช้ไฟล์นี้ + */ +onMounted(() => { + if (route.params.id !== undefined) { + id.value = route.params.id.toString(); + fectDataresign(id.value); + } +});