From 8a31554f38d999c1a5bb7bfedf0eb25424c5ed9d Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Mon, 2 Sep 2024 14:01:01 +0700 Subject: [PATCH] updated format code & eslint rule --- .eslintrc.cjs | 21 + package.json | 3 +- src/api/index.ts | 71 +- src/api/probation/api.probation.ts | 9 +- src/api/scholarship/api.scholarship.ts | 3 +- src/api/test/api.test.ts | 12 +- src/api/transfer/api.transfer.ts | 12 +- src/components/CustomDialog.vue | 127 +- src/components/TableD.vue | 6 +- src/modules/00_support/views/MainPage.vue | 7 +- src/modules/02_transfer/store.ts | 46 +- .../03_retire/interface/request/Main.ts | 37 +- src/modules/03_retire/router.ts | 80 +- .../components/FormLeave/01_SickForm.vue | 975 ++++++------ .../components/FormLeave/03_Birth.vue | 824 +++++------ .../FormLeave/04_HelpWifeBirthForm.vue | 976 ++++++------ .../components/FormLeave/05_VacationForm.vue | 964 ++++++------ .../FormLeave/06_OrdinationForm.vue | 1312 ++++++++--------- .../components/FormLeave/07_HajjForm.vue | 872 +++++------ .../components/FormLeave/08_MilitaryForm.vue | 968 ++++++------ .../components/FormLeave/09_StudyForm.vue | 2 +- .../components/FormLeave/10_TrainForm.vue | 4 +- .../FormLeave/11_WorkInternationalForm.vue | 280 ++-- .../FormLeave/13_RehabilitationForm.vue | 826 +++++------ .../05_leave/components/FormLeave/Form.vue | 292 ++-- src/modules/05_leave/interface/index/main.ts | 72 +- .../05_leave/interface/request/AddAbsence.ts | 146 +- .../05_leave/interface/request/BirthForm.ts | 38 +- .../interface/request/FollowSpouseForm.ts | 68 +- .../interface/request/HelpWifeForm.ts | 46 +- .../05_leave/interface/request/SickForm.ts | 42 +- .../interface/request/VacationForm.ts | 50 +- .../request/WorkInternationalForm.ts | 28 +- .../05_leave/interface/response/leave.ts | 250 ++-- src/modules/05_leave/router.ts | 62 +- src/modules/05_leave/store.ts | 759 +++++----- src/modules/05_leave/views/AddPage.vue | 3 +- src/modules/05_leave/views/EditPage.vue | 824 +++++------ .../06_evaluate/components/DialogMain.vue | 5 +- .../06_evaluate/components/step/step3.vue | 12 +- .../06_evaluate/components/step/step7.vue | 2 +- .../06_evaluate/components/step/step9.vue | 15 +- .../components/viewstep/popupHistory.vue | 2 +- .../components/viewstep/viewPDF.vue | 1 - .../components/viewstep/viewStep3.vue | 18 +- .../components/viewstep/viewStep7.vue | 6 +- .../06_evaluate/stores/evaluteDetail.ts | 10 +- .../07_appealComplain/interface/index/main.ts | 8 +- .../interface/request/appeal.ts | 17 +- .../interface/response/mainType.ts | 101 +- src/modules/07_appealComplain/store.ts | 30 +- src/modules/07_appealComplain/views/Edit.vue | 2 +- src/modules/07_appealComplain/views/Form.vue | 19 +- .../Tab/Dialog/01_FormIndicator.vue | 14 +- .../Tab/Dialog/04_FormCompetency.vue | 10 +- .../Tab/Dialog/DialogCompetncyByRow.vue | 5 +- .../components/Tab/Dialog/DialogLevel.vue | 9 +- .../Tab/Dialog/DialogListCriteria.vue | 10 +- .../components/Tab/Dialog/DialogStatus.vue | 2 +- .../components/Tab/Topic/03_Develop.vue | 4 +- src/modules/08_KPI/interface/index/Main.ts | 2 +- src/modules/08_KPI/interface/request/index.ts | 2 +- src/modules/08_KPI/router.ts | 3 +- .../09_scholarship/interface/index/Main.ts | 8 +- .../09_scholarship/interface/request/index.ts | 259 ++-- src/modules/09_scholarship/router.ts | 3 +- .../10_registry/interface/index/Main.ts | 2 +- src/modules/10_registry/router.ts | 3 +- src/modules/10_registry/store/registry.ts | 11 +- .../10_registry/tabs/01_information.vue | 1 - .../10_registry/tabs/02_government.vue | 2 - src/modules/10_registry/tabs/03_salary.vue | 3 - src/modules/10_registry/tabs/05_other.vue | 1 - .../10_registry/views/requestEditMain.vue | 30 +- .../11_probation/component/01_Assign.vue | 95 +- .../component/02_RecordCareker.vue | 14 +- .../component/03_RecordCommander.vue | 29 +- .../component/04_EvaluateCommander.vue | 13 +- .../component/05_EvaluateChairman.vue | 15 +- .../component/06_EvaluateResult.vue | 22 +- .../component/08_SurveyComment.vue | 14 +- .../11_probation/component/Criterion.vue | 180 +-- src/modules/11_probation/component/Header.vue | 8 +- .../component/addPage/01_addresult.vue | 10 +- .../addPage/02_addevaluacommander.vue | 10 +- .../component/addPage/03_addevalua.vue | 4 +- .../component/addPage/04_addevaluascore.vue | 4 +- .../component/editPage/01_result.vue | 7 +- .../component/editPage/02_evaluacommander.vue | 4 +- .../component/editPage/03_evalua.vue | 4 +- .../component/editPage/04_evaluascore.vue | 4 +- .../11_probation/interface/index/main.ts | 16 +- src/modules/11_probation/pages/addPage.vue | 14 +- src/modules/11_probation/pages/detailPage.vue | 34 +- src/modules/11_probation/router.ts | 110 +- src/modules/12_organization/views/main.vue | 3 +- src/modules/13_portfolio/views/Add.vue | 4 +- src/plugins/filters.ts | 28 +- src/quasar-user-options.ts | 14 +- src/router/loader.ts | 11 +- tsconfig.app.json | 4 +- tsconfig.config.json | 11 +- 102 files changed, 6271 insertions(+), 6164 deletions(-) create mode 100644 .eslintrc.cjs diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 0000000..848d685 --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,21 @@ +/* eslint-env node */ +require("@rushstack/eslint-patch/modern-module-resolution"); + +module.exports = { + root: true, + extends: [ + "plugin:vue/vue3-essential", + "eslint:recommended", + "@vue/eslint-config-typescript/recommended", + "@vue/eslint-config-prettier/recommended", + ], + overrides: [ + { + files: ["cypress/e2e/**/*.{cy,spec}.{js,ts,jsx,tsx}"], + extends: ["plugin:cypress/recommended"], + }, + ], + parserOptions: { + ecmaVersion: "latest", + }, +}; diff --git a/package.json b/package.json index 32ac41f..68ab9bf 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,8 @@ "test:e2e:dev": "start-server-and-test 'vite dev --port 4173' :4173 'cypress open --e2e'", "build-only": "vite build", "type-check": "vue-tsc --noEmit -p tsconfig.vitest.json --composite false", - "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore" + "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore", + "format": "prettier ./src --write" }, "dependencies": { "@fullcalendar/core": "^6.0.1", diff --git a/src/api/index.ts b/src/api/index.ts index f3da588..b646c57 100644 --- a/src/api/index.ts +++ b/src/api/index.ts @@ -1,44 +1,47 @@ /**config api */ -import { ref } from "vue" +import { ref } from "vue"; -const env = ref(process.env.NODE_ENV || "development") -export const apiUrlConfig = import.meta.env.VITE_API_URI_CONFIG -export const apiUrlConfigPublish = import.meta.env.VITE_API_PUBLISH_URL +const env = ref(process.env.NODE_ENV || "development"); +export const apiUrlConfig = import.meta.env.VITE_API_URI_CONFIG; +export const apiUrlConfigPublish = import.meta.env.VITE_API_PUBLISH_URL; // if (process.env.VUE_APP_TEST) { // env = "test"; // } const config = ref({ - development: { - // API_URI: "https://localhost:7260/api", - API_URI: "https://bma-ehr.frappet.synology.me/api/v1", - API_URL_SUPPORT: "https://bma-ehr.frappet.synology.me/api/v1/support", - MEET_URI: "meet.frappet.com", - LINK_EVALUATE_PUBLISH: "https://bma-ehr-publish.frappet.synology.me", - }, - test: { - API_URI: "http://localhost:5010/api/v1", - MEET_URI: "meet.frappet.com", - }, - production: { - API_URI: apiUrlConfig, - API_URL_SUPPORT: `${apiUrlConfig}/support`, - API_URI_ORG_TREE: "https://s3cluster.frappet.com/bma-ehr-fpt/organization/strueture/tree_20230707_115124.json", - MEET_URI: "meet.frappet.com", - LINK_EVALUATE_PUBLISH: apiUrlConfigPublish, - }, -}) + development: { + // API_URI: "https://localhost:7260/api", + API_URI: "https://bma-ehr.frappet.synology.me/api/v1", + API_URL_SUPPORT: "https://bma-ehr.frappet.synology.me/api/v1/support", + MEET_URI: "meet.frappet.com", + LINK_EVALUATE_PUBLISH: "https://bma-ehr-publish.frappet.synology.me", + }, + test: { + API_URI: "http://localhost:5010/api/v1", + MEET_URI: "meet.frappet.com", + }, + production: { + API_URI: apiUrlConfig, + API_URL_SUPPORT: `${apiUrlConfig}/support`, + API_URI_ORG_TREE: + "https://s3cluster.frappet.com/bma-ehr-fpt/organization/strueture/tree_20230707_115124.json", + MEET_URI: "meet.frappet.com", + LINK_EVALUATE_PUBLISH: apiUrlConfigPublish, + }, +}); -const API_URI = ref(config.value[env.value].API_URI) -const API_URL_SUPPORT = ref(config.value[env.value].API_URL_SUPPORT) -const MEET_URI = ref(config.value[env.value].MEET_URI) -const LINK_EVALUATE_PUBLISH = ref(config.value[env.value].LINK_EVALUATE_PUBLISH) +const API_URI = ref(config.value[env.value].API_URI); +const API_URL_SUPPORT = ref(config.value[env.value].API_URL_SUPPORT); +const MEET_URI = ref(config.value[env.value].MEET_URI); +const LINK_EVALUATE_PUBLISH = ref( + config.value[env.value].LINK_EVALUATE_PUBLISH +); export default { - env: env.value, - config: config.value, - API_URI: API_URI.value, - API_URL_SUPPORT: API_URL_SUPPORT.value, - MEET_URI: MEET_URI.value, - LINK_EVALUATE_PUBLISH: LINK_EVALUATE_PUBLISH.value, -} + env: env.value, + config: config.value, + API_URI: API_URI.value, + API_URL_SUPPORT: API_URL_SUPPORT.value, + MEET_URI: MEET_URI.value, + LINK_EVALUATE_PUBLISH: LINK_EVALUATE_PUBLISH.value, +}; diff --git a/src/api/probation/api.probation.ts b/src/api/probation/api.probation.ts index 264f145..81f5742 100644 --- a/src/api/probation/api.probation.ts +++ b/src/api/probation/api.probation.ts @@ -3,11 +3,10 @@ const probation = `${env.API_URI}/probation`; const org = `${env.API_URI}/org`; const kpiCapacity = `${env.API_URI}/kpi/capacity`; - const reportProbation = `${env.API_URI}/report/probation`; export default { - probationMain:(id:string)=>`${probation}/assign/probation-assign-list?personal_id=${id}`, - + probationMain: (id: string) => + `${probation}/assign/probation-assign-list?personal_id=${id}`, orgProfilePlacement: (id: string) => `${org}/profile/placement/${id}`, calculateDate: () => `${probation}/calculate/assign-finish`, @@ -55,6 +54,6 @@ export default { `${probation}/evaluate-record/create/commander?assign_id=${id}`, reportEvaluateRecord1: (type: string, id: string) => `${reportProbation}/14/${type}/${id}`, - - kpiCapacity + + kpiCapacity, }; diff --git a/src/api/scholarship/api.scholarship.ts b/src/api/scholarship/api.scholarship.ts index 1bc081c..6a3ecc4 100644 --- a/src/api/scholarship/api.scholarship.ts +++ b/src/api/scholarship/api.scholarship.ts @@ -7,5 +7,6 @@ const developmentSalaryFile = `${env.API_URI}/salary/file`; export default { developmentScholarshipReport, developmentScholarship: `${development}/scholarship`, - developmentSalaryFile: (name: string, group: string, id: string) => `${developmentSalaryFile}/${name}/${group}/${id}`, + developmentSalaryFile: (name: string, group: string, id: string) => + `${developmentSalaryFile}/${name}/${group}/${id}`, }; diff --git a/src/api/test/api.test.ts b/src/api/test/api.test.ts index f822ccd..265759a 100644 --- a/src/api/test/api.test.ts +++ b/src/api/test/api.test.ts @@ -1,13 +1,11 @@ /** * API Structure + Org Chart */ -import env from "../index" - -const tttt = `${env.API_URI}/test` +import env from "../index"; +const tttt = `${env.API_URI}/test`; export default { - gettttt: `${tttt}`, - puttttt: (id: string) => `${tttt}/${id}`, - -} + gettttt: `${tttt}`, + puttttt: (id: string) => `${tttt}/${id}`, +}; diff --git a/src/api/transfer/api.transfer.ts b/src/api/transfer/api.transfer.ts index 8a47e47..24a5a30 100644 --- a/src/api/transfer/api.transfer.ts +++ b/src/api/transfer/api.transfer.ts @@ -1,9 +1,9 @@ -import env from "../index" +import env from "../index"; -const placementTransfer = `${env.API_URI}/placement` +const placementTransfer = `${env.API_URI}/placement`; export default { - listUserTransfer: () => `${placementTransfer}/transfer/user`, - listtransfer: () => `${placementTransfer}/transfer`, - transferByid: (id: string) => `${placementTransfer}/transfer/user/${id}`, -} + listUserTransfer: () => `${placementTransfer}/transfer/user`, + listtransfer: () => `${placementTransfer}/transfer`, + transferByid: (id: string) => `${placementTransfer}/transfer/user/${id}`, +}; diff --git a/src/components/CustomDialog.vue b/src/components/CustomDialog.vue index 675761c..7db4641 100644 --- a/src/components/CustomDialog.vue +++ b/src/components/CustomDialog.vue @@ -1,66 +1,77 @@ diff --git a/src/components/TableD.vue b/src/components/TableD.vue index 4caa94a..e8303c4 100644 --- a/src/components/TableD.vue +++ b/src/components/TableD.vue @@ -108,9 +108,9 @@ const paginationLabel = (start: string, end: string, total: string) => { .q-table thead tr:first-child th { top: 0; } - .q-table__middle{ - margin-bottom: 0!important; - min-height: 0px!important; + .q-table__middle { + margin-bottom: 0 !important; + min-height: 0px !important; } } diff --git a/src/modules/00_support/views/MainPage.vue b/src/modules/00_support/views/MainPage.vue index 3172a7d..785a67f 100644 --- a/src/modules/00_support/views/MainPage.vue +++ b/src/modules/00_support/views/MainPage.vue @@ -52,7 +52,10 @@ watch(searchData, () => {
-
+
@@ -105,7 +108,7 @@ watch(searchData, () => { $q.screen.gt.xs ? '' : (store.openChat = true); store.currentIssue = item.id; store.currentTitle = item.title; - store.currentIssueDate = item.createdAt + store.currentIssueDate = item.createdAt; store.issue ? (store.issue.result = store.issue.result.map( (v) => { diff --git a/src/modules/02_transfer/store.ts b/src/modules/02_transfer/store.ts index 642ad8e..038bc84 100644 --- a/src/modules/02_transfer/store.ts +++ b/src/modules/02_transfer/store.ts @@ -1,27 +1,27 @@ -import { defineStore } from "pinia" +import { defineStore } from "pinia"; export const useTransferDataStore = defineStore("transfer", () => { - const statusText = (val: string) => { - switch (val) { - case "WAITTING": - return "รอดำเนินการ" - case "PENDING": - return "เลือกตำแหน่งแล้ว" - case "APPROVE": - return "อนุมัติ" - case "REJECT": - return "ไม่อนุมัติ" - case "REPORT": - return "ส่งรายชื่อไปออกคำสั่ง" - case "DONE": - return "ออกคำสั่งเสร็จแล้ว" + const statusText = (val: string) => { + switch (val) { + case "WAITTING": + return "รอดำเนินการ"; + case "PENDING": + return "เลือกตำแหน่งแล้ว"; + case "APPROVE": + return "อนุมัติ"; + case "REJECT": + return "ไม่อนุมัติ"; + case "REPORT": + return "ส่งรายชื่อไปออกคำสั่ง"; + case "DONE": + return "ออกคำสั่งเสร็จแล้ว"; - default: - return "-" - } - } + default: + return "-"; + } + }; - return { - statusText, - } -}) + return { + statusText, + }; +}); diff --git a/src/modules/03_retire/interface/request/Main.ts b/src/modules/03_retire/interface/request/Main.ts index 5af4623..97eaaaf 100644 --- a/src/modules/03_retire/interface/request/Main.ts +++ b/src/modules/03_retire/interface/request/Main.ts @@ -1,29 +1,24 @@ 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; + 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; + label: string; + value: number; } interface OptionQuestions2 { - label: string; - value: boolean; + label: string; + value: boolean; } - -export type { - QuestionDescription, - OptionQuestions, - OptionQuestions2 -}; +export type { QuestionDescription, OptionQuestions, OptionQuestions2 }; diff --git a/src/modules/03_retire/router.ts b/src/modules/03_retire/router.ts index b59fbef..7ad2aac 100644 --- a/src/modules/03_retire/router.ts +++ b/src/modules/03_retire/router.ts @@ -2,48 +2,48 @@ * Router ขอโอน */ -const MainRetire = () => import("@/modules/03_retire/views/main.vue") +const MainRetire = () => import("@/modules/03_retire/views/main.vue"); -const AddRetire = () => import("@/modules/03_retire/views/addRetire.vue") +const AddRetire = () => import("@/modules/03_retire/views/addRetire.vue"); -const ResultQuestionair = () => import("@/modules/03_retire/views/result.vue") +const ResultQuestionair = () => import("@/modules/03_retire/views/result.vue"); export default [ - { - path: "/retire", - name: "Retire", - component: MainRetire, - meta: { - Auth: true, - Key: [7], - }, - }, - { - path: "/retire/add", - name: "AddRetire", - component: AddRetire, - meta: { - Auth: true, - Key: [7], - }, - }, - { - path: "/retire/:id", - name: "detailRetire", - component: AddRetire, - meta: { - Auth: true, - Key: [7], - }, - }, + { + path: "/retire", + name: "Retire", + component: MainRetire, + meta: { + Auth: true, + Key: [7], + }, + }, + { + path: "/retire/add", + name: "AddRetire", + component: AddRetire, + meta: { + Auth: true, + Key: [7], + }, + }, + { + path: "/retire/:id", + name: "detailRetire", + component: AddRetire, + meta: { + Auth: true, + Key: [7], + }, + }, - { - path: "/retire/result/:id", - name: "resultRetire", - component: ResultQuestionair, - meta: { - Auth: true, - Key: [7], - }, - }, -] + { + path: "/retire/result/:id", + name: "resultRetire", + component: ResultQuestionair, + meta: { + Auth: true, + Key: [7], + }, + }, +]; diff --git a/src/modules/05_leave/components/FormLeave/01_SickForm.vue b/src/modules/05_leave/components/FormLeave/01_SickForm.vue index 31ebfdb..5e5a352 100644 --- a/src/modules/05_leave/components/FormLeave/01_SickForm.vue +++ b/src/modules/05_leave/components/FormLeave/01_SickForm.vue @@ -1,8 +1,8 @@ diff --git a/src/modules/05_leave/components/FormLeave/03_Birth.vue b/src/modules/05_leave/components/FormLeave/03_Birth.vue index 7c5b7dc..e39efef 100644 --- a/src/modules/05_leave/components/FormLeave/03_Birth.vue +++ b/src/modules/05_leave/components/FormLeave/03_Birth.vue @@ -14,42 +14,42 @@ const mixin = useCounterMixin(); const router = useRouter(); const $q = useQuasar(); const { date2Thai, dateToISO, dialogRemove, success, messageError, fails } = - mixin; + mixin; const edit = ref(true); const leaveId = ref(""); /** รับ props มาจากหน้าหลัก */ const props = defineProps({ - data: { - type: Object, - default: null, - }, - onSubmit: { - type: Function, - default: () => "", - }, - onConfirm: { - type: Function, - default: () => "", - }, - clickDelete: { - type: Function, - default: () => "", - }, + data: { + type: Object, + default: null, + }, + onSubmit: { + type: Function, + default: () => "", + }, + onConfirm: { + type: Function, + default: () => "", + }, + clickDelete: { + type: Function, + default: () => "", + }, }); /** ข้อมูล v-model ของฟอร์ม */ const formDataBirth = reactive({ - type: dataStore.typeId, - leaveWrote: "", - leaveStartDate: null, - leaveEndDate: null, - leaveTotal: "", - leaveLast: "", - leaveNumber: "", - leaveAddress: "", - leaveDetail: "", - leaveDocument: [], + type: dataStore.typeId, + leaveWrote: "", + leaveStartDate: null, + leaveEndDate: null, + leaveTotal: "", + leaveLast: "", + leaveNumber: "", + leaveAddress: "", + leaveDetail: "", + leaveDocument: [], }); /** ตัวแปร ref สำหรับแสดง validate */ @@ -64,62 +64,62 @@ const leaveDocumentRef = ref(null); /** maping ref เข้าตัวแปรเพื่อเตรียมตรวจสอบ */ const FormRef: FormRef = { - leaveWrote: leaveWroteRef, - leaveStartDate: leaveStartDateRef, - leaveEndDate: leaveEndDateRef, - leaveTotal: leaveTotalRef, - leaveNumber: leaveNumberRef, - leaveAddress: leaveAddressRef, - leaveDetail: leaveDetailRef, - leaveDocument: leaveDocumentRef, + leaveWrote: leaveWroteRef, + leaveStartDate: leaveStartDateRef, + leaveEndDate: leaveEndDateRef, + leaveTotal: leaveTotalRef, + leaveNumber: leaveNumberRef, + leaveAddress: leaveAddressRef, + leaveDetail: leaveDetailRef, + leaveDocument: leaveDocumentRef, }; /** ส่วนของการประกาศและเลือกไฟล์เอกสารประกอบ */ const nameFile = ref(""); const fileDocDataUpload = ref([]); async function fileUploadDoc(files: any) { - files.forEach((file: any) => { - fileDocDataUpload.value.push(file); - }); + files.forEach((file: any) => { + fileDocDataUpload.value.push(file); + }); } /** ฟังก์ชั่นตรวจสอบความถูกต้องของข้อมูลในฟอร์ม */ function onValidate() { - const hasError = []; - for (const key in FormRef) { - if (Object.prototype.hasOwnProperty.call(FormRef, key)) { - const property = FormRef[key]; - if (property.value && typeof property.value.validate === "function") { - const isValid = property.value.validate(); - hasError.push(isValid); - } - } - } - if (hasError.every((result) => result === true)) { - const formData = new FormData(); - if (formDataBirth.leaveDocument.length > 0) { - formDataBirth.leaveDocument.forEach((file: File) => { - formData.append("leaveDocument", file); - }); - } - // formData.append("leaveDocument", formDataBirth.leaveDocument); - formData.append("type", formDataBirth.type); - formData.append( - "leaveStartDate", - dateToISO(new Date(formDataBirth.leaveStartDate)) - ); - formData.append( - "leaveEndDate", - dateToISO(new Date(formDataBirth.leaveEndDate)) - ); - formData.append("leaveWrote", formDataBirth.leaveWrote); - formData.append("leaveAddress", formDataBirth.leaveAddress); - formData.append("leaveNumber", formDataBirth.leaveNumber); - formData.append("leaveDetail", formDataBirth.leaveDetail); - formData.append("leaveTotal", formDataBirth.leaveTotal); + const hasError = []; + for (const key in FormRef) { + if (Object.prototype.hasOwnProperty.call(FormRef, key)) { + const property = FormRef[key]; + if (property.value && typeof property.value.validate === "function") { + const isValid = property.value.validate(); + hasError.push(isValid); + } + } + } + if (hasError.every((result) => result === true)) { + const formData = new FormData(); + if (formDataBirth.leaveDocument.length > 0) { + formDataBirth.leaveDocument.forEach((file: File) => { + formData.append("leaveDocument", file); + }); + } + // formData.append("leaveDocument", formDataBirth.leaveDocument); + formData.append("type", formDataBirth.type); + formData.append( + "leaveStartDate", + dateToISO(new Date(formDataBirth.leaveStartDate)) + ); + formData.append( + "leaveEndDate", + dateToISO(new Date(formDataBirth.leaveEndDate)) + ); + formData.append("leaveWrote", formDataBirth.leaveWrote); + formData.append("leaveAddress", formDataBirth.leaveAddress); + formData.append("leaveNumber", formDataBirth.leaveNumber); + formData.append("leaveDetail", formDataBirth.leaveDetail); + formData.append("leaveTotal", formDataBirth.leaveTotal); - props.onSubmit(formData, isLeave.value); - } + props.onSubmit(formData, isLeave.value); + } } /** @@ -128,368 +128,368 @@ function onValidate() { */ const isLeave = ref(true); async function fetchCheck() { - await http - .post(config.API.leaveCheck(), { - type: dataStore.typeId ?? null, - StartLeaveDate: formDataBirth.leaveStartDate ?? null, - EndLeaveDate: formDataBirth.leaveEndDate ?? null, - }) - .then((res: any) => { - const data = res.data.result; - isLeave.value = data.isLeave; - formDataBirth.leaveTotal = data.totalDate; - }) - .catch((e: any) => { - messageError($q, e); - }); + await http + .post(config.API.leaveCheck(), { + type: dataStore.typeId ?? null, + StartLeaveDate: formDataBirth.leaveStartDate ?? null, + EndLeaveDate: formDataBirth.leaveEndDate ?? null, + }) + .then((res: any) => { + const data = res.data.result; + isLeave.value = data.isLeave; + formDataBirth.leaveTotal = data.totalDate; + }) + .catch((e: any) => { + messageError($q, e); + }); } /** แจ้งเมื่อวันลาไม่ถูกต้อง */ const dateEndInputStyle = computed(() => { - return !isLeave.value ? "input-alert" : ""; + return !isLeave.value ? "input-alert" : ""; }); /** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */ const leaveDocumentList = ref(); const statusCheck = ref(""); watch(props.data, () => { - if (props.data) { - formDataBirth.leaveWrote = props.data.leaveWrote; - formDataBirth.leaveStartDate = props.data.leaveStartDate; - formDataBirth.leaveEndDate = props.data.leaveEndDate; - formDataBirth.leaveTotal = props.data.leaveTotal; - formDataBirth.leaveNumber = props.data.leaveNumber; - formDataBirth.leaveAddress = props.data.leaveAddress; - formDataBirth.leaveDetail = props.data.leaveDetail; - leaveDocumentList.value = props.data.leaveDocument; - statusCheck.value = props.data.status; - formDataBirth.leaveDocument = []; - } + if (props.data) { + formDataBirth.leaveWrote = props.data.leaveWrote; + formDataBirth.leaveStartDate = props.data.leaveStartDate; + formDataBirth.leaveEndDate = props.data.leaveEndDate; + formDataBirth.leaveTotal = props.data.leaveTotal; + formDataBirth.leaveNumber = props.data.leaveNumber; + formDataBirth.leaveAddress = props.data.leaveAddress; + formDataBirth.leaveDetail = props.data.leaveDetail; + leaveDocumentList.value = props.data.leaveDocument; + statusCheck.value = props.data.status; + formDataBirth.leaveDocument = []; + } }); /** Hook */ onMounted(() => { - if (props.data) { - formDataBirth.leaveWrote = props.data.leaveWrote; - formDataBirth.leaveStartDate = props.data.leaveStartDate; - formDataBirth.leaveEndDate = props.data.leaveEndDate; - formDataBirth.leaveTotal = props.data.leaveTotal; - formDataBirth.leaveNumber = props.data.leaveNumber; - formDataBirth.leaveAddress = props.data.leaveAddress; - formDataBirth.leaveDetail = props.data.leaveDetail; - leaveDocumentList.value = props.data.leaveDocument; - statusCheck.value = props.data.status; - leaveId.value = props.data.id; - } + if (props.data) { + formDataBirth.leaveWrote = props.data.leaveWrote; + formDataBirth.leaveStartDate = props.data.leaveStartDate; + formDataBirth.leaveEndDate = props.data.leaveEndDate; + formDataBirth.leaveTotal = props.data.leaveTotal; + formDataBirth.leaveNumber = props.data.leaveNumber; + formDataBirth.leaveAddress = props.data.leaveAddress; + formDataBirth.leaveDetail = props.data.leaveDetail; + leaveDocumentList.value = props.data.leaveDocument; + statusCheck.value = props.data.status; + leaveId.value = props.data.id; + } }); diff --git a/src/modules/05_leave/components/FormLeave/04_HelpWifeBirthForm.vue b/src/modules/05_leave/components/FormLeave/04_HelpWifeBirthForm.vue index 8059f15..e110223 100644 --- a/src/modules/05_leave/components/FormLeave/04_HelpWifeBirthForm.vue +++ b/src/modules/05_leave/components/FormLeave/04_HelpWifeBirthForm.vue @@ -1,8 +1,8 @@ diff --git a/src/modules/05_leave/components/FormLeave/05_VacationForm.vue b/src/modules/05_leave/components/FormLeave/05_VacationForm.vue index 817c835..15f42b3 100644 --- a/src/modules/05_leave/components/FormLeave/05_VacationForm.vue +++ b/src/modules/05_leave/components/FormLeave/05_VacationForm.vue @@ -1,8 +1,8 @@ diff --git a/src/modules/05_leave/components/FormLeave/06_OrdinationForm.vue b/src/modules/05_leave/components/FormLeave/06_OrdinationForm.vue index 26a4c4f..0afbd02 100644 --- a/src/modules/05_leave/components/FormLeave/06_OrdinationForm.vue +++ b/src/modules/05_leave/components/FormLeave/06_OrdinationForm.vue @@ -14,13 +14,13 @@ const $q = useQuasar(); const router = useRouter(); const mixin = useCounterMixin(); const { - date2Thai, - dialogRemove, - calculateDurationYmd, - fails, - dateToISO, - success, - messageError, + date2Thai, + dialogRemove, + calculateDurationYmd, + fails, + dateToISO, + success, + messageError, } = mixin; const edit = ref(true); const files = ref(null); @@ -28,22 +28,22 @@ const leaveId = ref(""); /** รับ props มาจากหน้าหลัก */ const props = defineProps({ - data: { - type: Object, - default: null, - }, - onSubmit: { - type: Function, - default: () => "", - }, - onConfirm: { - type: Function, - default: () => "", - }, - clickDelete: { - type: Function, - default: () => "", - }, + data: { + type: Object, + default: null, + }, + onSubmit: { + type: Function, + default: () => "", + }, + onConfirm: { + type: Function, + default: () => "", + }, + clickDelete: { + type: Function, + default: () => "", + }, }); /** ตัวแปร ref สำหรับแสดง validate */ @@ -63,111 +63,111 @@ const leaveDocumentRef = ref(null); /** ข้อมูล v-model ของฟอร์ม */ const formDataOrdination = reactive({ - type: dataStore.typeId, - leaveWrote: "", - leavegovernmentDate: null, - leavebirthDate: null, - leaveStartDate: null, - leaveEndDate: null, - totalLeave: 0, - ordainDayOrdination: null, - ordainDayLocationName: "", - ordainDayLocationNumber: null, - ordainDayLocationAddress: "", - ordainDayBuddhistLentName: "", - ordainDayBuddhistLentAddress: "", - ordainDayStatus: true, - leaveDocument: [], - leaveDetail: "", + type: dataStore.typeId, + leaveWrote: "", + leavegovernmentDate: null, + leavebirthDate: null, + leaveStartDate: null, + leaveEndDate: null, + totalLeave: 0, + ordainDayOrdination: null, + ordainDayLocationName: "", + ordainDayLocationNumber: null, + ordainDayLocationAddress: "", + ordainDayBuddhistLentName: "", + ordainDayBuddhistLentAddress: "", + ordainDayStatus: true, + leaveDocument: [], + leaveDetail: "", }); /** maping ref เข้าตัวแปรเพื่อเตรียมตรวจสอบ */ const formRef: OrdinationForm = { - leaveWrote: leaveWroteRef, - leavegovernmentDate: leavegovernmentDateRef, - leavebirthDate: leavebirthDateRef, - leaveStartDate: leaveStartDateRef, - leaveEndDate: leaveEndDateRef, - totalLeave: totalLeaveRef, - ordainDayOrdination: ordainDayOrdinationRef, - ordainDayLocationName: ordainDayLocationNameRef, - ordainDayLocationNumber: ordainDayLocationNumberRef, - ordainDayLocationAddress: ordainDayLocationAddressRef, - ordainDayBuddhistLentName: ordainDayBuddhistLentNameRef, - ordainDayBuddhistLentAddress: ordainDayBuddhistLentAddressRef, - leaveDocument: leaveDocumentRef, + leaveWrote: leaveWroteRef, + leavegovernmentDate: leavegovernmentDateRef, + leavebirthDate: leavebirthDateRef, + leaveStartDate: leaveStartDateRef, + leaveEndDate: leaveEndDateRef, + totalLeave: totalLeaveRef, + ordainDayOrdination: ordainDayOrdinationRef, + ordainDayLocationName: ordainDayLocationNameRef, + ordainDayLocationNumber: ordainDayLocationNumberRef, + ordainDayLocationAddress: ordainDayLocationAddressRef, + ordainDayBuddhistLentName: ordainDayBuddhistLentNameRef, + ordainDayBuddhistLentAddress: ordainDayBuddhistLentAddressRef, + leaveDocument: leaveDocumentRef, }; /** ส่วนของการประกาศและเลือกไฟล์เอกสารประกอบ */ const nameFile = ref(""); const fileDocDataUpload = ref([]); const fileUploadDoc = async (files: any) => { - files.forEach((file: any) => { - fileDocDataUpload.value.push(file); - }); + files.forEach((file: any) => { + fileDocDataUpload.value.push(file); + }); }; /** ฟังก์ชั่นตรวจสอบความถูกต้องก่อน บันทึก */ function onValidate() { - const hasError = []; - for (const key in formRef) { - if (Object.prototype.hasOwnProperty.call(formRef, key)) { - const property = formRef[key]; - if (property.value && typeof property.value.validate === "function") { - const isValid = property.value.validate(); - hasError.push(isValid); - } - } - } + const hasError = []; + for (const key in formRef) { + if (Object.prototype.hasOwnProperty.call(formRef, key)) { + const property = formRef[key]; + if (property.value && typeof property.value.validate === "function") { + const isValid = property.value.validate(); + hasError.push(isValid); + } + } + } - if (hasError.every((result) => result === true)) { - const formData = new FormData(); + if (hasError.every((result) => result === true)) { + const formData = new FormData(); - if (formDataOrdination.leaveDocument) { - formDataOrdination.leaveDocument.forEach((file: File) => { - formData.append("leaveDocument", file); - }); - } - // formData.append("leaveDocument", formDataOrdination.leaveDocument); - formData.append("type", formDataOrdination.type); - formData.append( - "leaveStartDate", - dateToISO(new Date(formDataOrdination.leaveStartDate)) - ); - formData.append( - "leaveEndDate", - dateToISO(new Date(formDataOrdination.leaveEndDate)) - ); - formData.append( - "ordainDayOrdination", - dateToISO(new Date(formDataOrdination.ordainDayOrdination)) - ); - formData.append( - "ordainDayLocationName", - formDataOrdination.ordainDayLocationName - ); - formData.append( - "ordainDayLocationNumber", - formDataOrdination.ordainDayLocationNumber - ); - formData.append( - "ordainDayLocationAddress", - formDataOrdination.ordainDayLocationAddress - ); - formData.append( - "ordainDayBuddhistLentName", - formDataOrdination.ordainDayBuddhistLentName - ); - formData.append( - "ordainDayBuddhistLentAddress", - formDataOrdination.ordainDayBuddhistLentAddress - ); - formData.append("ordainDayStatus", formDataOrdination.ordainDayStatus); - formData.append("leaveWrote", formDataOrdination.leaveWrote); - formData.append("leaveDetail", formDataOrdination.leaveDetail); - formData.append("leaveTotal", formDataOrdination.leaveTotal); - props.onSubmit(formData, isLeave.value); - } + if (formDataOrdination.leaveDocument) { + formDataOrdination.leaveDocument.forEach((file: File) => { + formData.append("leaveDocument", file); + }); + } + // formData.append("leaveDocument", formDataOrdination.leaveDocument); + formData.append("type", formDataOrdination.type); + formData.append( + "leaveStartDate", + dateToISO(new Date(formDataOrdination.leaveStartDate)) + ); + formData.append( + "leaveEndDate", + dateToISO(new Date(formDataOrdination.leaveEndDate)) + ); + formData.append( + "ordainDayOrdination", + dateToISO(new Date(formDataOrdination.ordainDayOrdination)) + ); + formData.append( + "ordainDayLocationName", + formDataOrdination.ordainDayLocationName + ); + formData.append( + "ordainDayLocationNumber", + formDataOrdination.ordainDayLocationNumber + ); + formData.append( + "ordainDayLocationAddress", + formDataOrdination.ordainDayLocationAddress + ); + formData.append( + "ordainDayBuddhistLentName", + formDataOrdination.ordainDayBuddhistLentName + ); + formData.append( + "ordainDayBuddhistLentAddress", + formDataOrdination.ordainDayBuddhistLentAddress + ); + formData.append("ordainDayStatus", formDataOrdination.ordainDayStatus); + formData.append("leaveWrote", formDataOrdination.leaveWrote); + formData.append("leaveDetail", formDataOrdination.leaveDetail); + formData.append("leaveTotal", formDataOrdination.leaveTotal); + props.onSubmit(formData, isLeave.value); + } } /** @@ -176,585 +176,585 @@ function onValidate() { */ const isLeave = ref(true); async function fetchCheck() { - await http - .post(config.API.leaveCheck(), { - type: dataStore.typeId ?? null, - StartLeaveDate: formDataOrdination.leaveStartDate ?? null, - EndLeaveDate: formDataOrdination.leaveEndDate ?? null, - }) - .then((res: any) => { - const data = res.data.result; - isLeave.value = data.isLeave; - formDataOrdination.leaveTotal = data.totalDate; - }) - .catch((e: any) => { - messageError($q, e); - }); + await http + .post(config.API.leaveCheck(), { + type: dataStore.typeId ?? null, + StartLeaveDate: formDataOrdination.leaveStartDate ?? null, + EndLeaveDate: formDataOrdination.leaveEndDate ?? null, + }) + .then((res: any) => { + const data = res.data.result; + isLeave.value = data.isLeave; + formDataOrdination.leaveTotal = data.totalDate; + }) + .catch((e: any) => { + messageError($q, e); + }); } /** * function อัพเดทค่า LeaveTotal */ function updateLeaveTotal() { - const newLeaveTotal = calculateDurationYmd( - formDataOrdination.leaveStartDate, - formDataOrdination.leaveEndDate - ); - formDataOrdination.leaveTotal = newLeaveTotal; + const newLeaveTotal = calculateDurationYmd( + formDataOrdination.leaveStartDate, + formDataOrdination.leaveEndDate + ); + formDataOrdination.leaveTotal = newLeaveTotal; } /** แจ้งเมื่อวันลาไม่ถูกต้อง */ const dateEndInputStyle = computed(() => { - return !isLeave.value ? "input-alert" : ""; + return !isLeave.value ? "input-alert" : ""; }); /** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */ const leaveDocumentList = ref(); const statusCheck = ref(""); watch(props.data, () => { - if (props.data) { - formDataOrdination.leaveWrote = props.data.leaveWrote; - formDataOrdination.leaveStartDate = props.data.leaveStartDate; - formDataOrdination.leaveEndDate = props.data.leaveEndDate; - formDataOrdination.leaveTotal = props.data.leaveTotal; - formDataOrdination.ordainDayOrdination = props.data.ordainDayOrdination; - formDataOrdination.ordainDayLocationName = props.data.ordainDayLocationName; - formDataOrdination.ordainDayLocationNumber = - props.data.ordainDayLocationNumber; - formDataOrdination.ordainDayLocationAddress = - props.data.ordainDayLocationAddress; - formDataOrdination.ordainDayBuddhistLentName = - props.data.ordainDayBuddhistLentName; - formDataOrdination.ordainDayBuddhistLentAddress = - props.data.ordainDayBuddhistLentAddress; - formDataOrdination.ordainDayStatus = props.data.ordainDayStatus; - formDataOrdination.leaveDetail = props.data.leaveDetail; - leaveDocumentList.value = props.data.leaveDocument; - statusCheck.value = props.data.status; - formDataOrdination.leaveDocument = []; - } + if (props.data) { + formDataOrdination.leaveWrote = props.data.leaveWrote; + formDataOrdination.leaveStartDate = props.data.leaveStartDate; + formDataOrdination.leaveEndDate = props.data.leaveEndDate; + formDataOrdination.leaveTotal = props.data.leaveTotal; + formDataOrdination.ordainDayOrdination = props.data.ordainDayOrdination; + formDataOrdination.ordainDayLocationName = props.data.ordainDayLocationName; + formDataOrdination.ordainDayLocationNumber = + props.data.ordainDayLocationNumber; + formDataOrdination.ordainDayLocationAddress = + props.data.ordainDayLocationAddress; + formDataOrdination.ordainDayBuddhistLentName = + props.data.ordainDayBuddhistLentName; + formDataOrdination.ordainDayBuddhistLentAddress = + props.data.ordainDayBuddhistLentAddress; + formDataOrdination.ordainDayStatus = props.data.ordainDayStatus; + formDataOrdination.leaveDetail = props.data.leaveDetail; + leaveDocumentList.value = props.data.leaveDocument; + statusCheck.value = props.data.status; + formDataOrdination.leaveDocument = []; + } }); /** Hook */ onMounted(() => { - if (props.data) { - formDataOrdination.leaveWrote = props.data.leaveWrote; - formDataOrdination.leaveStartDate = props.data.leaveStartDate; - formDataOrdination.leaveEndDate = props.data.leaveEndDate; - formDataOrdination.leaveTotal = props.data.leaveTotal; - formDataOrdination.ordainDayOrdination = props.data.ordainDayOrdination; - formDataOrdination.ordainDayLocationName = props.data.ordainDayLocationName; - formDataOrdination.ordainDayLocationNumber = - props.data.ordainDayLocationNumber; - formDataOrdination.ordainDayLocationAddress = - props.data.ordainDayLocationAddress; - formDataOrdination.ordainDayBuddhistLentName = - props.data.ordainDayBuddhistLentName; - formDataOrdination.ordainDayBuddhistLentAddress = - props.data.ordainDayBuddhistLentAddress; - formDataOrdination.ordainDayStatus = props.data.ordainDayStatus; - formDataOrdination.leaveDetail = props.data.leaveDetail; - leaveDocumentList.value = props.data.leaveDocument; - statusCheck.value = props.data.status; - leaveId.value = props.data.id; - // formDataOrdination.leaveDocument = props.data.leaveDocument; - } + if (props.data) { + formDataOrdination.leaveWrote = props.data.leaveWrote; + formDataOrdination.leaveStartDate = props.data.leaveStartDate; + formDataOrdination.leaveEndDate = props.data.leaveEndDate; + formDataOrdination.leaveTotal = props.data.leaveTotal; + formDataOrdination.ordainDayOrdination = props.data.ordainDayOrdination; + formDataOrdination.ordainDayLocationName = props.data.ordainDayLocationName; + formDataOrdination.ordainDayLocationNumber = + props.data.ordainDayLocationNumber; + formDataOrdination.ordainDayLocationAddress = + props.data.ordainDayLocationAddress; + formDataOrdination.ordainDayBuddhistLentName = + props.data.ordainDayBuddhistLentName; + formDataOrdination.ordainDayBuddhistLentAddress = + props.data.ordainDayBuddhistLentAddress; + formDataOrdination.ordainDayStatus = props.data.ordainDayStatus; + formDataOrdination.leaveDetail = props.data.leaveDetail; + leaveDocumentList.value = props.data.leaveDocument; + statusCheck.value = props.data.status; + leaveId.value = props.data.id; + // formDataOrdination.leaveDocument = props.data.leaveDocument; + } }); diff --git a/src/modules/05_leave/components/FormLeave/07_HajjForm.vue b/src/modules/05_leave/components/FormLeave/07_HajjForm.vue index 50e3bd6..208fb7e 100644 --- a/src/modules/05_leave/components/FormLeave/07_HajjForm.vue +++ b/src/modules/05_leave/components/FormLeave/07_HajjForm.vue @@ -14,13 +14,13 @@ const dataStore = useLeaveStore(); const $q = useQuasar(); const mixin = useCounterMixin(); const { - date2Thai, - dialogRemove, - calculateDurationYmd, - fails, - messageError, - success, - dateToISO, + date2Thai, + dialogRemove, + calculateDurationYmd, + fails, + messageError, + success, + dateToISO, } = mixin; const edit = ref(true); const files = ref(null); @@ -35,90 +35,90 @@ const leaveDocumentRef = ref(null); /** รับ props มาจากหน้าหลัก */ const props = defineProps({ - data: { - type: Object, - default: null, - }, - onSubmit: { - type: Function, - default: () => "", - }, - onConfirm: { - type: Function, - default: () => "", - }, - clickDelete: { - type: Function, - default: () => "", - }, + data: { + type: Object, + default: null, + }, + onSubmit: { + type: Function, + default: () => "", + }, + onConfirm: { + type: Function, + default: () => "", + }, + clickDelete: { + type: Function, + default: () => "", + }, }); /** ข้อมูล v-model ของฟอร์ม */ const formDataHaji = reactive({ - type: dataStore.typeId, - leaveWrote: "", - leavegovernmentDate: null, - leaveStartDate: null, - leaveEndDate: null, - totalLeave: 0, - hajjDayStatus: "true", - leaveDocument: [], - leaveDetail: "", + type: dataStore.typeId, + leaveWrote: "", + leavegovernmentDate: null, + leaveStartDate: null, + leaveEndDate: null, + totalLeave: 0, + hajjDayStatus: "true", + leaveDocument: [], + leaveDetail: "", }); /** maping ref เข้าตัวแปรเพื่อเตรียมตรวจสอบ */ const formRef: HajiForm = { - leaveWrote: leaveWroteRef, - leavegovernmentDate: leavegovernmentDateRef, - leaveStartDate: leaveStartDateRef, - leaveEndDate: leaveEndDateRef, - leaveDocument: leaveDocumentRef, + leaveWrote: leaveWroteRef, + leavegovernmentDate: leavegovernmentDateRef, + leaveStartDate: leaveStartDateRef, + leaveEndDate: leaveEndDateRef, + leaveDocument: leaveDocumentRef, }; /** ส่วนของการประกาศและเลือกไฟล์เอกสารประกอบ */ const nameFile = ref(""); const fileDocDataUpload = ref([]); const fileUploadDoc = async (files: any) => { - files.forEach((file: any) => { - fileDocDataUpload.value.push(file); - }); + files.forEach((file: any) => { + fileDocDataUpload.value.push(file); + }); }; /** ฟังก์ชั่นตรวจสอบความถูกต้องก่อน บันทึก */ function onValidate() { - const hasError = []; - for (const key in formRef) { - if (Object.prototype.hasOwnProperty.call(formRef, key)) { - const property = formRef[key]; - if (property.value && typeof property.value.validate === "function") { - const isValid = property.value.validate(); - hasError.push(isValid); - } - } - } - if (hasError.every((result) => result === true)) { - const formData = new FormData(); - if (formDataHaji.leaveDocument) { - formDataHaji.leaveDocument.forEach((file: File) => { - formData.append("leaveDocument", file); - }); - } - // formData.append("leaveDocument", formDataHaji.leaveDocument); - formData.append("type", formDataHaji.type); - formData.append( - "leaveStartDate", - dateToISO(new Date(formDataHaji.leaveStartDate)) - ); - formData.append( - "leaveEndDate", - dateToISO(new Date(formDataHaji.leaveEndDate)) - ); - formData.append("hajjDayStatus", formDataHaji.hajjDayStatus); - formData.append("leaveWrote", formDataHaji.leaveWrote); - formData.append("leaveDetail", formDataHaji.leaveDetail); - formData.append("leaveTotal", formDataHaji.leaveTotal); - props.onSubmit(formData, isLeave.value); - } + const hasError = []; + for (const key in formRef) { + if (Object.prototype.hasOwnProperty.call(formRef, key)) { + const property = formRef[key]; + if (property.value && typeof property.value.validate === "function") { + const isValid = property.value.validate(); + hasError.push(isValid); + } + } + } + if (hasError.every((result) => result === true)) { + const formData = new FormData(); + if (formDataHaji.leaveDocument) { + formDataHaji.leaveDocument.forEach((file: File) => { + formData.append("leaveDocument", file); + }); + } + // formData.append("leaveDocument", formDataHaji.leaveDocument); + formData.append("type", formDataHaji.type); + formData.append( + "leaveStartDate", + dateToISO(new Date(formDataHaji.leaveStartDate)) + ); + formData.append( + "leaveEndDate", + dateToISO(new Date(formDataHaji.leaveEndDate)) + ); + formData.append("hajjDayStatus", formDataHaji.hajjDayStatus); + formData.append("leaveWrote", formDataHaji.leaveWrote); + formData.append("leaveDetail", formDataHaji.leaveDetail); + formData.append("leaveTotal", formDataHaji.leaveTotal); + props.onSubmit(formData, isLeave.value); + } } /** @@ -127,397 +127,397 @@ function onValidate() { */ const isLeave = ref(true); async function fetchCheck() { - console.log("check"); - await http - .post(config.API.leaveCheck(), { - type: dataStore.typeId ?? null, - StartLeaveDate: formDataHaji.leaveStartDate ?? null, - EndLeaveDate: formDataHaji.leaveEndDate ?? null, - }) - .then((res: any) => { - const data = res.data.result; - isLeave.value = data.isLeave; - formDataHaji.leaveTotal = data.totalDate; - }) - .catch((e: any) => { - messageError($q, e); - }); + console.log("check"); + await http + .post(config.API.leaveCheck(), { + type: dataStore.typeId ?? null, + StartLeaveDate: formDataHaji.leaveStartDate ?? null, + EndLeaveDate: formDataHaji.leaveEndDate ?? null, + }) + .then((res: any) => { + const data = res.data.result; + isLeave.value = data.isLeave; + formDataHaji.leaveTotal = data.totalDate; + }) + .catch((e: any) => { + messageError($q, e); + }); } /** * function อัพเดทค่า LeaveTotal */ function updateLeaveTotal() { - const newLeaveTotal = calculateDurationYmd( - formDataHaji.leaveStartDate, - formDataHaji.leaveEndDate - ); - formDataHaji.leaveTotal = newLeaveTotal; + const newLeaveTotal = calculateDurationYmd( + formDataHaji.leaveStartDate, + formDataHaji.leaveEndDate + ); + formDataHaji.leaveTotal = newLeaveTotal; } /** แจ้งเมื่อวันลาไม่ถูกต้อง */ const dateEndInputStyle = computed(() => { - return !isLeave.value ? "input-alert" : ""; + return !isLeave.value ? "input-alert" : ""; }); /** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */ const leaveDocumentList = ref(); const statusCheck = ref(""); watch(props.data, () => { - if (props.data) { - formDataHaji.leaveWrote = props.data.leaveWrote; - formDataHaji.leaveTotal = props.data.leaveTotal; - formDataHaji.leaveStartDate = props.data.leaveStartDate; - formDataHaji.leaveEndDate = props.data.leaveEndDate; - formDataHaji.totalLeave = props.data.totalLeave; - formDataHaji.hajjDayStatus = props.data.hajjDayStatus; - formDataHaji.leaveDetail = props.data.leaveDetail; - leaveDocumentList.value = props.data.leaveDocument; - statusCheck.value = props.data.status; - formDataHaji.leaveDocument = []; - } + if (props.data) { + formDataHaji.leaveWrote = props.data.leaveWrote; + formDataHaji.leaveTotal = props.data.leaveTotal; + formDataHaji.leaveStartDate = props.data.leaveStartDate; + formDataHaji.leaveEndDate = props.data.leaveEndDate; + formDataHaji.totalLeave = props.data.totalLeave; + formDataHaji.hajjDayStatus = props.data.hajjDayStatus; + formDataHaji.leaveDetail = props.data.leaveDetail; + leaveDocumentList.value = props.data.leaveDocument; + statusCheck.value = props.data.status; + formDataHaji.leaveDocument = []; + } }); /**Hook */ onMounted(() => { - if (props.data) { - formDataHaji.leaveWrote = props.data.leaveWrote; - formDataHaji.leaveTotal = props.data.leaveTotal; - formDataHaji.leaveStartDate = props.data.leaveStartDate; - formDataHaji.leaveEndDate = props.data.leaveEndDate; - formDataHaji.totalLeave = props.data.totalLeave; - formDataHaji.hajjDayStatus = props.data.hajjDayStatus; - formDataHaji.leaveDetail = props.data.leaveDetail; - leaveDocumentList.value = props.data.leaveDocument; - statusCheck.value = props.data.status; - // formDataHaji.leaveDocument = props.data.leaveDocument; - leaveId.value = props.data.id; - } + if (props.data) { + formDataHaji.leaveWrote = props.data.leaveWrote; + formDataHaji.leaveTotal = props.data.leaveTotal; + formDataHaji.leaveStartDate = props.data.leaveStartDate; + formDataHaji.leaveEndDate = props.data.leaveEndDate; + formDataHaji.totalLeave = props.data.totalLeave; + formDataHaji.hajjDayStatus = props.data.hajjDayStatus; + formDataHaji.leaveDetail = props.data.leaveDetail; + leaveDocumentList.value = props.data.leaveDocument; + statusCheck.value = props.data.status; + // formDataHaji.leaveDocument = props.data.leaveDocument; + leaveId.value = props.data.id; + } }); diff --git a/src/modules/05_leave/components/FormLeave/08_MilitaryForm.vue b/src/modules/05_leave/components/FormLeave/08_MilitaryForm.vue index 9ab3a9a..84ed76d 100644 --- a/src/modules/05_leave/components/FormLeave/08_MilitaryForm.vue +++ b/src/modules/05_leave/components/FormLeave/08_MilitaryForm.vue @@ -14,13 +14,13 @@ const dataStore = useLeaveStore(); const $q = useQuasar(); const mixin = useCounterMixin(); const { - date2Thai, - dialogRemove, - calculateDurationYmd, - dateToISO, - success, - messageError, - fails, + date2Thai, + dialogRemove, + calculateDurationYmd, + dateToISO, + success, + messageError, + fails, } = mixin; const edit = ref(true); const files = ref(null); @@ -39,104 +39,104 @@ const leaveDetailRef = ref(null); /** รับ props มาจากหน้าหลัก */ const props = defineProps({ - data: { - type: Object, - default: null, - }, - onSubmit: { - type: Function, - default: () => "", - }, - onConfirm: { - type: Function, - default: () => "", - }, - clickDelete: { - type: Function, - default: () => "", - }, + data: { + type: Object, + default: null, + }, + onSubmit: { + type: Function, + default: () => "", + }, + onConfirm: { + type: Function, + default: () => "", + }, + clickDelete: { + type: Function, + default: () => "", + }, }); /** ข้อมูล v-model ของฟอร์ม */ const formDataMilitary = reactive({ - type: dataStore.typeId, - leaveStartDate: null, - leaveEndDate: null, - leaveTotal: 0, - leaveDocument: [], - leaveWrote: "", - absentDaySummon: "", - absentDayLocation: "", - absentDayRegistorDate: null, - absentDayGetIn: "", - absentDayAt: "", - leaveDetail: "", + type: dataStore.typeId, + leaveStartDate: null, + leaveEndDate: null, + leaveTotal: 0, + leaveDocument: [], + leaveWrote: "", + absentDaySummon: "", + absentDayLocation: "", + absentDayRegistorDate: null, + absentDayGetIn: "", + absentDayAt: "", + leaveDetail: "", }); /** ส่วนของการประกาศและเลือกไฟล์เอกสารประกอบ */ const nameFile = ref(""); const fileDocDataUpload = ref([]); const fileUploadDoc = async (files: any) => { - files.forEach((file: any) => { - fileDocDataUpload.value.push(file); - }); + files.forEach((file: any) => { + fileDocDataUpload.value.push(file); + }); }; /** maping ref เข้าตัวแปรเพื่อเตรียมตรวจสอบ */ const formRef: MilitaryForm = { - leaveStartDate: leaveStartDateRef, - leaveEndDate: leaveEndDateRef, - leaveWrote: leaveWroteRef, - absentDaySummon: absentDaySummonRef, - absentDayLocation: absentDayLocationRef, - absentDayRegistorDate: absentDayRegistorDateRef, - absentDayGetIn: absentDayGetInRef, - absentDayAt: absentDayAtRef, - leaveDetail: leaveDetailRef, + leaveStartDate: leaveStartDateRef, + leaveEndDate: leaveEndDateRef, + leaveWrote: leaveWroteRef, + absentDaySummon: absentDaySummonRef, + absentDayLocation: absentDayLocationRef, + absentDayRegistorDate: absentDayRegistorDateRef, + absentDayGetIn: absentDayGetInRef, + absentDayAt: absentDayAtRef, + leaveDetail: leaveDetailRef, }; /** ฟังก์ชั่นตรวจสอบความถูกต้องก่อน บันทึก */ function onValidate() { - const hasError = []; - for (const key in formRef) { - if (Object.prototype.hasOwnProperty.call(formRef, key)) { - const property = formRef[key]; - if (property.value && typeof property.value.validate === "function") { - const isValid = property.value.validate(); - hasError.push(isValid); - } - } - } - if (hasError.every((result) => result === true)) { - const formData = new FormData(); - if (formDataMilitary.leaveDocument) { - formDataMilitary.leaveDocument.forEach((file: File) => { - formData.append("leaveDocument", file); - }); - } - // formData.append("leaveDocument", formDataMilitary.leaveDocument); - formData.append("type", formDataMilitary.type); - formData.append( - "leaveStartDate", - dateToISO(new Date(formDataMilitary.leaveStartDate)) - ); - formData.append( - "leaveEndDate", - dateToISO(new Date(formDataMilitary.leaveEndDate)) - ); - formData.append("absentDaySummon", formDataMilitary.absentDaySummon); - formData.append("absentDayLocation", formDataMilitary.absentDayLocation); - formData.append( - "absentDayRegistorDate", - dateToISO(new Date(formDataMilitary.absentDayRegistorDate)) - ); - formData.append("absentDayGetIn", formDataMilitary.absentDayGetIn); - formData.append("absentDayAt", formDataMilitary.absentDayAt); - formData.append("leaveWrote", formDataMilitary.leaveWrote); - formData.append("leaveDetail", formDataMilitary.leaveDetail); - formData.append("leaveTotal", formDataMilitary.leaveTotal); - props.onSubmit(formData, isLeave.value); - } + const hasError = []; + for (const key in formRef) { + if (Object.prototype.hasOwnProperty.call(formRef, key)) { + const property = formRef[key]; + if (property.value && typeof property.value.validate === "function") { + const isValid = property.value.validate(); + hasError.push(isValid); + } + } + } + if (hasError.every((result) => result === true)) { + const formData = new FormData(); + if (formDataMilitary.leaveDocument) { + formDataMilitary.leaveDocument.forEach((file: File) => { + formData.append("leaveDocument", file); + }); + } + // formData.append("leaveDocument", formDataMilitary.leaveDocument); + formData.append("type", formDataMilitary.type); + formData.append( + "leaveStartDate", + dateToISO(new Date(formDataMilitary.leaveStartDate)) + ); + formData.append( + "leaveEndDate", + dateToISO(new Date(formDataMilitary.leaveEndDate)) + ); + formData.append("absentDaySummon", formDataMilitary.absentDaySummon); + formData.append("absentDayLocation", formDataMilitary.absentDayLocation); + formData.append( + "absentDayRegistorDate", + dateToISO(new Date(formDataMilitary.absentDayRegistorDate)) + ); + formData.append("absentDayGetIn", formDataMilitary.absentDayGetIn); + formData.append("absentDayAt", formDataMilitary.absentDayAt); + formData.append("leaveWrote", formDataMilitary.leaveWrote); + formData.append("leaveDetail", formDataMilitary.leaveDetail); + formData.append("leaveTotal", formDataMilitary.leaveTotal); + props.onSubmit(formData, isLeave.value); + } } /** @@ -145,435 +145,435 @@ function onValidate() { */ const isLeave = ref(true); async function fetchCheck() { - await http - .post(config.API.leaveCheck(), { - type: dataStore.typeId ?? null, - StartLeaveDate: formDataMilitary.leaveStartDate ?? null, - EndLeaveDate: formDataMilitary.leaveEndDate ?? null, - }) - .then((res: any) => { - const data = res.data.result; - isLeave.value = data.isLeave; - formDataMilitary.leaveTotal = data.totalDate; - }) - .catch((e: any) => { - messageError($q, e); - }); + await http + .post(config.API.leaveCheck(), { + type: dataStore.typeId ?? null, + StartLeaveDate: formDataMilitary.leaveStartDate ?? null, + EndLeaveDate: formDataMilitary.leaveEndDate ?? null, + }) + .then((res: any) => { + const data = res.data.result; + isLeave.value = data.isLeave; + formDataMilitary.leaveTotal = data.totalDate; + }) + .catch((e: any) => { + messageError($q, e); + }); } /** * function อัพเดทค่า LeaveTotal */ function updateLeaveTotal() { - const newLeaveTotal = calculateDurationYmd( - formDataMilitary.leaveStartDate, - formDataMilitary.leaveEndDate - ); - formDataMilitary.leaveTotal = newLeaveTotal; - console.log("test"); + const newLeaveTotal = calculateDurationYmd( + formDataMilitary.leaveStartDate, + formDataMilitary.leaveEndDate + ); + formDataMilitary.leaveTotal = newLeaveTotal; + console.log("test"); } /** แจ้งเมื่อวันลาไม่ถูกต้อง */ const dateEndInputStyle = computed(() => { - return !isLeave.value ? "input-alert" : ""; + return !isLeave.value ? "input-alert" : ""; }); /** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */ const leaveDocumentList = ref(); const statusCheck = ref(""); watch(props.data, () => { - if (props.data) { - formDataMilitary.leaveWrote = props.data.leaveWrote; - formDataMilitary.leaveStartDate = props.data.leaveStartDate; - formDataMilitary.leaveEndDate = props.data.leaveEndDate; - formDataMilitary.leaveTotal = props.data.leaveTotal; - formDataMilitary.absentDaySummon = props.data.absentDaySummon; - formDataMilitary.absentDayLocation = props.data.absentDayLocation; - formDataMilitary.absentDayRegistorDate = props.data.absentDayRegistorDate; - formDataMilitary.absentDayGetIn = props.data.absentDayGetIn; - formDataMilitary.absentDayAt = props.data.absentDayAt; - formDataMilitary.leaveDetail = props.data.leaveDetail; - leaveDocumentList.value = props.data.leaveDocument; - statusCheck.value = props.data.status; - formDataMilitary.leaveDocument = []; - } + if (props.data) { + formDataMilitary.leaveWrote = props.data.leaveWrote; + formDataMilitary.leaveStartDate = props.data.leaveStartDate; + formDataMilitary.leaveEndDate = props.data.leaveEndDate; + formDataMilitary.leaveTotal = props.data.leaveTotal; + formDataMilitary.absentDaySummon = props.data.absentDaySummon; + formDataMilitary.absentDayLocation = props.data.absentDayLocation; + formDataMilitary.absentDayRegistorDate = props.data.absentDayRegistorDate; + formDataMilitary.absentDayGetIn = props.data.absentDayGetIn; + formDataMilitary.absentDayAt = props.data.absentDayAt; + formDataMilitary.leaveDetail = props.data.leaveDetail; + leaveDocumentList.value = props.data.leaveDocument; + statusCheck.value = props.data.status; + formDataMilitary.leaveDocument = []; + } }); /**Hook */ onMounted(() => { - if (props.data) { - formDataMilitary.leaveWrote = props.data.leaveWrote; - formDataMilitary.leaveStartDate = props.data.leaveStartDate; - formDataMilitary.leaveEndDate = props.data.leaveEndDate; - formDataMilitary.leaveTotal = props.data.leaveTotal; - formDataMilitary.absentDaySummon = props.data.absentDaySummon; - formDataMilitary.absentDayLocation = props.data.absentDayLocation; - formDataMilitary.absentDayRegistorDate = props.data.absentDayRegistorDate; - formDataMilitary.absentDayGetIn = props.data.absentDayGetIn; - formDataMilitary.absentDayAt = props.data.absentDayAt; - formDataMilitary.leaveDetail = props.data.leaveDetail; - leaveDocumentList.value = props.data.leaveDocument; - statusCheck.value = props.data.status; - // formDataMilitary.leaveDocument = props.data.leaveDocument; - leaveId.value = props.data.id; - } + if (props.data) { + formDataMilitary.leaveWrote = props.data.leaveWrote; + formDataMilitary.leaveStartDate = props.data.leaveStartDate; + formDataMilitary.leaveEndDate = props.data.leaveEndDate; + formDataMilitary.leaveTotal = props.data.leaveTotal; + formDataMilitary.absentDaySummon = props.data.absentDaySummon; + formDataMilitary.absentDayLocation = props.data.absentDayLocation; + formDataMilitary.absentDayRegistorDate = props.data.absentDayRegistorDate; + formDataMilitary.absentDayGetIn = props.data.absentDayGetIn; + formDataMilitary.absentDayAt = props.data.absentDayAt; + formDataMilitary.leaveDetail = props.data.leaveDetail; + leaveDocumentList.value = props.data.leaveDocument; + statusCheck.value = props.data.status; + // formDataMilitary.leaveDocument = props.data.leaveDocument; + leaveId.value = props.data.id; + } }); diff --git a/src/modules/05_leave/components/FormLeave/09_StudyForm.vue b/src/modules/05_leave/components/FormLeave/09_StudyForm.vue index 0810791..8bed16e 100644 --- a/src/modules/05_leave/components/FormLeave/09_StudyForm.vue +++ b/src/modules/05_leave/components/FormLeave/09_StudyForm.vue @@ -156,7 +156,7 @@ function onValidate() { formData.append("studyDayScholarship", formDataStudy.studyDayScholarship); formData.append("leaveAddress", formDataStudy.leaveAddress); // formData.append("leaveNumber", formDataStudy.leaveNumber); // - formData.append("leaveTotal", formDataStudy.leaveTotalDay); // + formData.append("leaveTotal", formDataStudy.leaveTotalDay); // props.onSubmit(formData, isLeave.value); } } diff --git a/src/modules/05_leave/components/FormLeave/10_TrainForm.vue b/src/modules/05_leave/components/FormLeave/10_TrainForm.vue index 0441e79..cf56adb 100644 --- a/src/modules/05_leave/components/FormLeave/10_TrainForm.vue +++ b/src/modules/05_leave/components/FormLeave/10_TrainForm.vue @@ -438,7 +438,7 @@ onMounted(async () => { hide-bottom-space :label="`${'วันที่เข้ารับราชการ'}`" :model-value=" - dataStore.dateAppoint != null + dataStore.dateAppoint != null ? date2Thai(dataStore.dateAppoint) : null " @@ -486,7 +486,7 @@ onMounted(async () => { hide-bottom-space :label="`${'วันเดือนปีเกิด'}`" :model-value=" - dataStore.birthDate != null + dataStore.birthDate != null ? date2Thai(dataStore.birthDate) : null " diff --git a/src/modules/05_leave/components/FormLeave/11_WorkInternationalForm.vue b/src/modules/05_leave/components/FormLeave/11_WorkInternationalForm.vue index 4ccc342..94483be 100644 --- a/src/modules/05_leave/components/FormLeave/11_WorkInternationalForm.vue +++ b/src/modules/05_leave/components/FormLeave/11_WorkInternationalForm.vue @@ -14,14 +14,14 @@ const dataStore = useLeaveStore(); const $q = useQuasar(); const mixin = useCounterMixin(); const { - date2Thai, - dialogRemove, - fails, - dateToISO, - success, - messageError, - showLoader, - hideLoader, + date2Thai, + dialogRemove, + fails, + dateToISO, + success, + messageError, + showLoader, + hideLoader, } = mixin; const edit = ref(true); const router = useRouter(); @@ -30,33 +30,33 @@ const leaveId = ref(""); /** รับ props มาจากหน้าหลัก */ const props = defineProps({ - data: { - type: Object, - default: null, - }, - onSubmit: { - type: Function, - default: () => "", - }, - onConfirm: { - type: Function, - default: () => "", - }, - clickDelete: { - type: Function, - default: () => "", - }, + data: { + type: Object, + default: null, + }, + onSubmit: { + type: Function, + default: () => "", + }, + onConfirm: { + type: Function, + default: () => "", + }, + clickDelete: { + type: Function, + default: () => "", + }, }); /** ข้อมูล v-model ของฟอร์ม */ const formDataWorkInternational = reactive({ - type: dataStore.typeId, - leaveWrote: "", - leaveStartDate: null, - leaveEndDate: null, - leaveDetail: "", - leaveDocument: [], - leaveDraftDocument: null, + type: dataStore.typeId, + leaveWrote: "", + leaveStartDate: null, + leaveEndDate: null, + leaveDetail: "", + leaveDocument: [], + leaveDraftDocument: null, }); /** ตัวแปร ref สำหรับแสดง validate */ @@ -68,11 +68,11 @@ const leaveDocumentRef = ref(null); /** maping ref เข้าตัวแปรเพื่อเตรียมตรวจสอบ */ const FormRef: FormRef = { - leaveWrote: leaveWroteRef, - leaveStartDate: leaveStartDateRef, - leaveEndDate: leaveEndDateRef, - leaveDetail: leaveDetailRef, - leaveDocument: leaveDocumentRef, + leaveWrote: leaveWroteRef, + leaveStartDate: leaveStartDateRef, + leaveEndDate: leaveEndDateRef, + leaveDetail: leaveDetailRef, + leaveDocument: leaveDocumentRef, }; /** ส่วนของการประกาศและเลือกไฟล์เอกสารประกอบ */ @@ -80,72 +80,72 @@ const nameFile = ref(""); const nameFileDraft = ref(""); const fileDocDataUpload = ref([]); const fileUploadDoc = async (files: any) => { - files.forEach((file: any) => { - fileDocDataUpload.value.push(file); - }); + files.forEach((file: any) => { + fileDocDataUpload.value.push(file); + }); }; /** ฟังก์ชั่นตรวจสอบความถูกต้องของข้อมูลในฟอร์ม */ async function onValidate() { - const hasError = []; - for (const key in FormRef) { - if (Object.prototype.hasOwnProperty.call(FormRef, key)) { - const property = FormRef[key]; - if (property.value && typeof property.value.validate === "function") { - const isValid = property.value.validate(); - hasError.push(isValid); - } - } - } - // ถ้า Validate ผ่านให้บันทึกข้อมูล - if (hasError.every((result) => result === true)) { - const formData = new FormData(); + const hasError = []; + for (const key in FormRef) { + if (Object.prototype.hasOwnProperty.call(FormRef, key)) { + const property = FormRef[key]; + if (property.value && typeof property.value.validate === "function") { + const isValid = property.value.validate(); + hasError.push(isValid); + } + } + } + // ถ้า Validate ผ่านให้บันทึกข้อมูล + if (hasError.every((result) => result === true)) { + const formData = new FormData(); - if (formDataWorkInternational.leaveDocument.length > 0) { - formDataWorkInternational.leaveDocument.forEach((file: File) => { - formData.append("leaveDocument", file); - }); + if (formDataWorkInternational.leaveDocument.length > 0) { + formDataWorkInternational.leaveDocument.forEach((file: File) => { + formData.append("leaveDocument", file); + }); - // formData.append("leaveDocument", formDataWorkInternational.leaveDocument) - } + // formData.append("leaveDocument", formDataWorkInternational.leaveDocument) + } - if (formDataWorkInternational.leaveDraftDocument) { - formData.append( - "leaveDraftDocument", - formDataWorkInternational.leaveDraftDocument - ); - } - formData.append("type", formDataWorkInternational.type); // - formData.append( - "leaveStartDate", - dateToISO(formDataWorkInternational.leaveStartDate) - ); // - formData.append( - "leaveEndDate", - dateToISO(formDataWorkInternational.leaveEndDate) - ); // - formData.append("leaveWrote", formDataWorkInternational.leaveWrote); // - formData.append("leaveDetail", formDataWorkInternational.leaveDetail); - formData.append("leaveTotal", formDataWorkInternational.leaveTotal); // - await props.onSubmit(formData, isLeave.value); - } + if (formDataWorkInternational.leaveDraftDocument) { + formData.append( + "leaveDraftDocument", + formDataWorkInternational.leaveDraftDocument + ); + } + formData.append("type", formDataWorkInternational.type); // + formData.append( + "leaveStartDate", + dateToISO(formDataWorkInternational.leaveStartDate) + ); // + formData.append( + "leaveEndDate", + dateToISO(formDataWorkInternational.leaveEndDate) + ); // + formData.append("leaveWrote", formDataWorkInternational.leaveWrote); // + formData.append("leaveDetail", formDataWorkInternational.leaveDetail); + formData.append("leaveTotal", formDataWorkInternational.leaveTotal); // + await props.onSubmit(formData, isLeave.value); + } } //download function async function onClickDownloadFile(id: string, fileName: string) { - showLoader(); - await http - .get(config.API.leaveReport(id)) - .then(async (res) => { - const data = res.data.result; - await genReport(data, fileName); - }) - .catch((err) => { - messageError($q, err); - }) - .finally(() => { - hideLoader(); - }); + showLoader(); + await http + .get(config.API.leaveReport(id)) + .then(async (res) => { + const data = res.data.result; + await genReport(data, fileName); + }) + .catch((err) => { + messageError($q, err); + }) + .finally(() => { + hideLoader(); + }); } /** @@ -154,25 +154,25 @@ async function onClickDownloadFile(id: string, fileName: string) { */ const isLeave = ref(true); async function fetchCheck() { - await http - .post(config.API.leaveCheck(), { - type: dataStore.typeId ?? null, - StartLeaveDate: formDataWorkInternational.leaveStartDate ?? null, - EndLeaveDate: formDataWorkInternational.leaveEndDate ?? null, - }) - .then((res: any) => { - const data = res.data.result; - isLeave.value = data.isLeave; - formDataWorkInternational.leaveTotal = data.totalDate; - }) - .catch((e: any) => { - messageError($q, e); - }); + await http + .post(config.API.leaveCheck(), { + type: dataStore.typeId ?? null, + StartLeaveDate: formDataWorkInternational.leaveStartDate ?? null, + EndLeaveDate: formDataWorkInternational.leaveEndDate ?? null, + }) + .then((res: any) => { + const data = res.data.result; + isLeave.value = data.isLeave; + formDataWorkInternational.leaveTotal = data.totalDate; + }) + .catch((e: any) => { + messageError($q, e); + }); } /** แจ้งเมื่อวันลาไม่ถูกต้อง */ const dateEndInputStyle = computed(() => { - return !isLeave.value ? "input-alert" : ""; + return !isLeave.value ? "input-alert" : ""; }); /** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */ @@ -180,41 +180,47 @@ const leaveDocumentList = ref(); const leaveDraftDocument = ref(); const statusCheck = ref(""); watch(props, () => { - if (props.data) { - formDataWorkInternational.leaveWrote = props.data.leaveWrote; - formDataWorkInternational.leaveStartDate = new Date( - props.data.leaveStartDate - ); - formDataWorkInternational.leaveEndDate = new Date(props.data.leaveEndDate); - formDataWorkInternational.leaveDetail = props.data.leaveDetail; - leaveDraftDocument.value = props.data.leaveDraftDocument; - leaveDocumentList.value = props.data.leaveDocument; - statusCheck.value = props.data.status; - formDataWorkInternational.leaveDraftDocument = null; - formDataWorkInternational.leaveDocument = []; - } + if (props.data) { + formDataWorkInternational.leaveWrote = props.data.leaveWrote; + formDataWorkInternational.leaveStartDate = new Date( + props.data.leaveStartDate + ); + formDataWorkInternational.leaveEndDate = new Date(props.data.leaveEndDate); + formDataWorkInternational.leaveDetail = props.data.leaveDetail; + leaveDraftDocument.value = props.data.leaveDraftDocument; + leaveDocumentList.value = props.data.leaveDocument; + statusCheck.value = props.data.status; + formDataWorkInternational.leaveDraftDocument = null; + formDataWorkInternational.leaveDocument = []; + } }); -watch(()=>formDataWorkInternational.leaveEndDate,()=>{ - if(formDataWorkInternational.leaveStartDate !== null && formDataWorkInternational.leaveEndDate !== null){ - fetchCheck() - } -}) +watch( + () => formDataWorkInternational.leaveEndDate, + () => { + if ( + formDataWorkInternational.leaveStartDate !== null && + formDataWorkInternational.leaveEndDate !== null + ) { + fetchCheck(); + } + } +); /**Hook */ onMounted(() => { - if (props.data) { - formDataWorkInternational.leaveWrote = props.data.leaveWrote; - formDataWorkInternational.leaveStartDate = new Date( - props.data.leaveStartDate - ); - formDataWorkInternational.leaveEndDate = new Date(props.data.leaveEndDate); - formDataWorkInternational.leaveDetail = props.data.leaveDetail; - // formDataWorkInternational.leaveDocument = props.data.leaveDocument; - leaveDraftDocument.value = props.data.leaveDraftDocument; - leaveDocumentList.value = props.data.leaveDocument; - statusCheck.value = props.data.status; - leaveId.value = props.data.id; - } + if (props.data) { + formDataWorkInternational.leaveWrote = props.data.leaveWrote; + formDataWorkInternational.leaveStartDate = new Date( + props.data.leaveStartDate + ); + formDataWorkInternational.leaveEndDate = new Date(props.data.leaveEndDate); + formDataWorkInternational.leaveDetail = props.data.leaveDetail; + // formDataWorkInternational.leaveDocument = props.data.leaveDocument; + leaveDraftDocument.value = props.data.leaveDraftDocument; + leaveDocumentList.value = props.data.leaveDocument; + statusCheck.value = props.data.status; + leaveId.value = props.data.id; + } }); diff --git a/src/modules/05_leave/components/FormLeave/13_RehabilitationForm.vue b/src/modules/05_leave/components/FormLeave/13_RehabilitationForm.vue index 1c479e8..48be58d 100644 --- a/src/modules/05_leave/components/FormLeave/13_RehabilitationForm.vue +++ b/src/modules/05_leave/components/FormLeave/13_RehabilitationForm.vue @@ -14,14 +14,14 @@ const dataStore = useLeaveStore(); const $q = useQuasar(); const mixin = useCounterMixin(); const { - date2Thai, - dialogRemove, - fails, - dateToISO, - success, - messageError, - showLoader, - hideLoader, + date2Thai, + dialogRemove, + fails, + dateToISO, + success, + messageError, + showLoader, + hideLoader, } = mixin; const router = useRouter(); const edit = ref(true); @@ -36,85 +36,85 @@ const leaveWroteRef = ref(null); /** รับ props มาจากหน้าหลัก */ const props = defineProps({ - data: { - type: Object, - default: null, - }, - onSubmit: { - type: Function, - default: () => "", - }, - onConfirm: { - type: Function, - default: () => "", - }, - clickDelete: { - type: Function, - default: () => "", - }, + data: { + type: Object, + default: null, + }, + onSubmit: { + type: Function, + default: () => "", + }, + onConfirm: { + type: Function, + default: () => "", + }, + clickDelete: { + type: Function, + default: () => "", + }, }); /** ข้อมูล v-model ของฟอร์ม */ const formDataRehabilitation = reactive({ - type: dataStore.typeId, - leaveWrote: "", - leaveStartDate: null, - leaveEndDate: null, - leaveDocument: [], - leaveDetail: "", - leaveDraftDocument: null, + type: dataStore.typeId, + leaveWrote: "", + leaveStartDate: null, + leaveEndDate: null, + leaveDocument: [], + leaveDetail: "", + leaveDraftDocument: null, }); /** maping ref เข้าตัวแปรเพื่อเตรียมตรวจสอบ */ const formRef: RehabilitationForm = { - leaveStartDate: leaveStartDateRef, - leaveEndDate: leaveEndDateRef, - leaveWrote: leaveWroteRef, + leaveStartDate: leaveStartDateRef, + leaveEndDate: leaveEndDateRef, + leaveWrote: leaveWroteRef, }; /** ฟังก์ชั่นตรวจสอบความถูกต้องก่อน บันทึก */ function onValidate() { - const hasError = []; - for (const key in formRef) { - if (Object.prototype.hasOwnProperty.call(formRef, key)) { - const property = formRef[key]; - if (property.value && typeof property.value.validate === "function") { - const isValid = property.value.validate(); - hasError.push(isValid); - } - } - } - if (hasError.every((result) => result === true)) { - const formData = new FormData(); + const hasError = []; + for (const key in formRef) { + if (Object.prototype.hasOwnProperty.call(formRef, key)) { + const property = formRef[key]; + if (property.value && typeof property.value.validate === "function") { + const isValid = property.value.validate(); + hasError.push(isValid); + } + } + } + if (hasError.every((result) => result === true)) { + const formData = new FormData(); - if (formDataRehabilitation.leaveDocument.length > 0) { - formDataRehabilitation.leaveDocument.forEach((file: File) => { - formData.append("leaveDocument", file); - }); - // formData.append("leaveDocument", formDataRehabilitation.leaveDocument) - } + if (formDataRehabilitation.leaveDocument.length > 0) { + formDataRehabilitation.leaveDocument.forEach((file: File) => { + formData.append("leaveDocument", file); + }); + // formData.append("leaveDocument", formDataRehabilitation.leaveDocument) + } - if (formDataRehabilitation.leaveDraftDocument) { - formData.append( - "leaveDraftDocument", - formDataRehabilitation.leaveDraftDocument - ); - } + if (formDataRehabilitation.leaveDraftDocument) { + formData.append( + "leaveDraftDocument", + formDataRehabilitation.leaveDraftDocument + ); + } - formData.append("type", formDataRehabilitation.type); // - formData.append( - "leaveStartDate", - dateToISO(new Date(formDataRehabilitation.leaveStartDate)) - ); // - formData.append( - "leaveEndDate", - dateToISO(new Date(formDataRehabilitation.leaveEndDate)) - ); - formData.append("leaveWrote", formDataRehabilitation.leaveWrote); // - formData.append("leaveDetail", formDataRehabilitation.leaveDetail); // - formData.append("leaveTotal", formDataRehabilitation.leaveTotal); // - props.onSubmit(formData, isLeave.value); - } + formData.append("type", formDataRehabilitation.type); // + formData.append( + "leaveStartDate", + dateToISO(new Date(formDataRehabilitation.leaveStartDate)) + ); // + formData.append( + "leaveEndDate", + dateToISO(new Date(formDataRehabilitation.leaveEndDate)) + ); + formData.append("leaveWrote", formDataRehabilitation.leaveWrote); // + formData.append("leaveDetail", formDataRehabilitation.leaveDetail); // + formData.append("leaveTotal", formDataRehabilitation.leaveTotal); // + props.onSubmit(formData, isLeave.value); + } } /** ส่วนของการประกาศและเลือกไฟล์เอกสารประกอบ */ @@ -122,9 +122,9 @@ const nameFile = ref(""); const nameFileDraft = ref(""); const fileDocDataUpload = ref([]); const fileUploadDoc = async (files: any) => { - files.forEach((file: any) => { - fileDocDataUpload.value.push(file); - }); + files.forEach((file: any) => { + fileDocDataUpload.value.push(file); + }); }; /** @@ -133,42 +133,42 @@ const fileUploadDoc = async (files: any) => { */ const isLeave = ref(true); async function FetchCheck() { - await http - .post(config.API.leaveCheck(), { - type: dataStore.typeId ?? null, - StartLeaveDate: formDataRehabilitation.leaveStartDate ?? null, - EndLeaveDate: formDataRehabilitation.leaveEndDate ?? null, - }) - .then((res: any) => { - const data = res.data.result; - isLeave.value = data.isLeave; - formDataRehabilitation.leaveTotal = data.totalDate; - }) - .catch((e: any) => { - messageError($q, e); - }); + await http + .post(config.API.leaveCheck(), { + type: dataStore.typeId ?? null, + StartLeaveDate: formDataRehabilitation.leaveStartDate ?? null, + EndLeaveDate: formDataRehabilitation.leaveEndDate ?? null, + }) + .then((res: any) => { + const data = res.data.result; + isLeave.value = data.isLeave; + formDataRehabilitation.leaveTotal = data.totalDate; + }) + .catch((e: any) => { + messageError($q, e); + }); } //download function async function onClickDownloadFile(id: string, fileName: string) { - showLoader(); - await http - .get(config.API.leaveReport(id)) - .then(async (res) => { - const data = res.data.result; - await genReport(data, fileName); - }) - .catch((err) => { - messageError($q, err); - }) - .finally(() => { - hideLoader(); - }); + showLoader(); + await http + .get(config.API.leaveReport(id)) + .then(async (res) => { + const data = res.data.result; + await genReport(data, fileName); + }) + .catch((err) => { + messageError($q, err); + }) + .finally(() => { + hideLoader(); + }); } /** แจ้งเมื่อวันลาไม่ถูกต้อง */ const dateEndInputStyle = computed(() => { - return !isLeave.value ? "input-alert" : ""; + return !isLeave.value ? "input-alert" : ""; }); /** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */ @@ -176,334 +176,334 @@ const leaveDocumentList = ref(); const leaveDraftDocument = ref(); const statusCheck = ref(""); watch(props.data, () => { - if (props.data) { - formDataRehabilitation.leaveWrote = props.data.leaveWrote; - formDataRehabilitation.leaveStartDate = new Date(props.data.leaveStartDate); - formDataRehabilitation.leaveEndDate = new Date(props.data.leaveEndDate); - formDataRehabilitation.leaveDetail = props.data.leaveDetail; - leaveDraftDocument.value = props.data.leaveDraftDocument; - leaveDocumentList.value = props.data.leaveDocument; - formDataRehabilitation.leaveDraftDocument = null; - formDataRehabilitation.leaveDocument = []; - statusCheck.value = props.data.status; - } + if (props.data) { + formDataRehabilitation.leaveWrote = props.data.leaveWrote; + formDataRehabilitation.leaveStartDate = new Date(props.data.leaveStartDate); + formDataRehabilitation.leaveEndDate = new Date(props.data.leaveEndDate); + formDataRehabilitation.leaveDetail = props.data.leaveDetail; + leaveDraftDocument.value = props.data.leaveDraftDocument; + leaveDocumentList.value = props.data.leaveDocument; + formDataRehabilitation.leaveDraftDocument = null; + formDataRehabilitation.leaveDocument = []; + statusCheck.value = props.data.status; + } }); /**Hook */ onMounted(() => { - if (props.data) { - formDataRehabilitation.leaveWrote = props.data.leaveWrote; - formDataRehabilitation.leaveStartDate = new Date(props.data.leaveStartDate); - formDataRehabilitation.leaveEndDate = new Date(props.data.leaveEndDate); - formDataRehabilitation.leaveDetail = props.data.leaveDetail; - // formDataRehabilitation.leaveDocument = props.data.leaveDocument; - leaveDraftDocument.value = props.data.leaveDraftDocument; - leaveDocumentList.value = props.data.leaveDocument; - statusCheck.value = props.data.status; - leaveId.value = props.data.id; - } + if (props.data) { + formDataRehabilitation.leaveWrote = props.data.leaveWrote; + formDataRehabilitation.leaveStartDate = new Date(props.data.leaveStartDate); + formDataRehabilitation.leaveEndDate = new Date(props.data.leaveEndDate); + formDataRehabilitation.leaveDetail = props.data.leaveDetail; + // formDataRehabilitation.leaveDocument = props.data.leaveDocument; + leaveDraftDocument.value = props.data.leaveDraftDocument; + leaveDocumentList.value = props.data.leaveDocument; + statusCheck.value = props.data.status; + leaveId.value = props.data.id; + } }); diff --git a/src/modules/05_leave/components/FormLeave/Form.vue b/src/modules/05_leave/components/FormLeave/Form.vue index ef4ffc0..8000614 100644 --- a/src/modules/05_leave/components/FormLeave/Form.vue +++ b/src/modules/05_leave/components/FormLeave/Form.vue @@ -12,162 +12,162 @@ const { date2Thai } = mixin; /** รับ props มาจากหน้าหลัก */ const props = defineProps({ - model: { - type: String, - default: "", - }, + model: { + type: String, + default: "", + }, }); /** ข้อมูล v-model ของฟอร์ม */ const formData = reactive({ - dateStart: new Date(), - subject: "เรื่อง", - who: "เรียนผู้ใด", - requestName: "ชื่อผู้ยื่น", - position: "ตำแหน่ง", - level: "ระดับ", - ocRequest: "สังกัด", - leaveabsentDaySummon: "2", - leaveUse: "1", - leaveRemaining: "1", + dateStart: new Date(), + subject: "เรื่อง", + who: "เรียนผู้ใด", + requestName: "ชื่อผู้ยื่น", + position: "ตำแหน่ง", + level: "ระดับ", + ocRequest: "สังกัด", + leaveabsentDaySummon: "2", + leaveUse: "1", + leaveRemaining: "1", }); /**Hook */ onMounted(() => { - dataStore.typeLeave = ""; + dataStore.typeLeave = ""; }); diff --git a/src/modules/05_leave/interface/index/main.ts b/src/modules/05_leave/interface/index/main.ts index d1ff669..0a4af51 100644 --- a/src/modules/05_leave/interface/index/main.ts +++ b/src/modules/05_leave/interface/index/main.ts @@ -1,48 +1,54 @@ interface OptionData { - id: string | undefined - name: string | undefined - code: string | undefined + id: string | undefined; + name: string | undefined; + code: string | undefined; } interface FormLeavetMainData { - type: string - numDate: string - extend: string - use: string - numAll: string - numDone: string - numNot: string - numCancel: string + type: string; + numDate: string; + extend: string; + use: string; + numAll: string; + numDone: string; + numNot: string; + numCancel: string; } interface formListLeaveData { - no: string - date: string | null - type: string - status: string - year: string + no: string; + date: string | null; + type: string; + status: string; + year: string; } interface TypeLeave { - code: string - createdAt: Date - createdFullName: string - createdUserId: string - id: string - lastUpdateFullName: string - lastUpdateUserId: string - lastUpdatedAt: Date | null - limit: number - name: string + code: string; + createdAt: Date; + createdFullName: string; + createdUserId: string; + id: string; + lastUpdateFullName: string; + lastUpdateUserId: string; + lastUpdatedAt: Date | null; + limit: number; + name: string; } interface LeaveItem { - text: string - color: string - value: number - all: number - use: number - remain: number + text: string; + color: string; + value: number; + all: number; + use: number; + remain: number; } -export type { OptionData, FormLeavetMainData, formListLeaveData, TypeLeave, LeaveItem } +export type { + OptionData, + FormLeavetMainData, + formListLeaveData, + TypeLeave, + LeaveItem, +}; diff --git a/src/modules/05_leave/interface/request/AddAbsence.ts b/src/modules/05_leave/interface/request/AddAbsence.ts index 7c59227..06f9356 100644 --- a/src/modules/05_leave/interface/request/AddAbsence.ts +++ b/src/modules/05_leave/interface/request/AddAbsence.ts @@ -1,83 +1,91 @@ interface FormData { - dateStart: Date - subject: string - who: string - requestName: string - position: string - level: string - ocRequest: string - leaveabsentDaySummon: string - leaveUse: string - leaveRemaining: string + dateStart: Date; + subject: string; + who: string; + requestName: string; + position: string; + level: string; + ocRequest: string; + leaveabsentDaySummon: string; + leaveUse: string; + leaveRemaining: string; } interface OrdinationForm { - leaveWrote: object | null - leavegovernmentDate: object | null - leavebirthDate: object | null - leaveStartDate: object | null - leaveEndDate: object | null - totalLeave: object | null - ordainDayOrdination: object | null - ordainDayLocationName: object | null - ordainDayLocationNumber: object | null - ordainDayLocationAddress: object | null - ordainDayBuddhistLentName: object | null - ordainDayBuddhistLentAddress: object | null - [key: string]: any + leaveWrote: object | null; + leavegovernmentDate: object | null; + leavebirthDate: object | null; + leaveStartDate: object | null; + leaveEndDate: object | null; + totalLeave: object | null; + ordainDayOrdination: object | null; + ordainDayLocationName: object | null; + ordainDayLocationNumber: object | null; + ordainDayLocationAddress: object | null; + ordainDayBuddhistLentName: object | null; + ordainDayBuddhistLentAddress: object | null; + [key: string]: any; } interface HajiForm { - leaveWrote: object | null - leavegovernmentDate: object | null - leaveStartDate: object | null - leaveEndDate: object | null - [key: string]: any + leaveWrote: object | null; + leavegovernmentDate: object | null; + leaveStartDate: object | null; + leaveEndDate: object | null; + [key: string]: any; } interface MilitaryForm { - leaveStartDate: object | null - leaveEndDate: object | null - leaveWrote: object | null - absentDaySummon: object | null - absentDayLocation: object | null - absentDayRegistorDate: object | null - absentDayGetIn: object | null - absentDayAt: object | null - leaveDetail: object | null - [key: string]: any + leaveStartDate: object | null; + leaveEndDate: object | null; + leaveWrote: object | null; + absentDaySummon: object | null; + absentDayLocation: object | null; + absentDayRegistorDate: object | null; + absentDayGetIn: object | null; + absentDayAt: object | null; + leaveDetail: object | null; + [key: string]: any; } interface studyDaySubjectForm { - leaveStartDate: object | null - leaveEndDate: object | null - leavebirthDate: object | null - leavegovernmentDate: object | null - leaveSalary: object | null - leaveNumber: object | null - leaveAddress: object | null - studyDayScholarship: object | null - studyDayCountry: object | null - studyDayUniversityName: object | null - studyDayDegreeLevel: object | null - studyDaySubject: object | null - leaveWrote: object | null - [key: string]: any + leaveStartDate: object | null; + leaveEndDate: object | null; + leavebirthDate: object | null; + leavegovernmentDate: object | null; + leaveSalary: object | null; + leaveNumber: object | null; + leaveAddress: object | null; + studyDayScholarship: object | null; + studyDayCountry: object | null; + studyDayUniversityName: object | null; + studyDayDegreeLevel: object | null; + studyDaySubject: object | null; + leaveWrote: object | null; + [key: string]: any; } interface TrainForm { - leaveStartDate: object | null - leaveEndDate: object | null - leavebirthDate: object | null - leavegovernmentDate: object | null - leaveNumber: object | null - leaveAddress: object | null - studyDayScholarship: object | null - studyDayCountry: object | null - studyDayTrainingSubject: object | null - studyDayTrainingName: object | null - leaveWrote: object | null - [key: string]: any + leaveStartDate: object | null; + leaveEndDate: object | null; + leavebirthDate: object | null; + leavegovernmentDate: object | null; + leaveNumber: object | null; + leaveAddress: object | null; + studyDayScholarship: object | null; + studyDayCountry: object | null; + studyDayTrainingSubject: object | null; + studyDayTrainingName: object | null; + leaveWrote: object | null; + [key: string]: any; } interface RehabilitationForm { - leaveStartDate: object | null - leaveEndDate: object | null - leaveWrote: object | null - [key: string]: any + leaveStartDate: object | null; + leaveEndDate: object | null; + leaveWrote: object | null; + [key: string]: any; } -export type { FormData, OrdinationForm, HajiForm, MilitaryForm, studyDaySubjectForm, TrainForm, RehabilitationForm } +export type { + FormData, + OrdinationForm, + HajiForm, + MilitaryForm, + studyDaySubjectForm, + TrainForm, + RehabilitationForm, +}; diff --git a/src/modules/05_leave/interface/request/BirthForm.ts b/src/modules/05_leave/interface/request/BirthForm.ts index 7ec43d6..c814433 100644 --- a/src/modules/05_leave/interface/request/BirthForm.ts +++ b/src/modules/05_leave/interface/request/BirthForm.ts @@ -1,25 +1,25 @@ interface FormData { - leaveWrote: string //เขียนที่*** - leaveStartDate: Date | null //*วัน เดือน ปีเริ่มต้นลา - leaveEndDate: Date | null //*วัน เดือน ปีสิ้นสุดลา - leaveTotal: string //จำนวนวันลา - leaveNumber: string //หมายเลขที่ติดต่อขณะลา - leaveDetail: string //รายละเอียดการลา - leaveAddress: string //สถานที่ติดต่อขณะลา - leaveDocument: File[] | null //เอกสารปะกอบ - [key: string]: any + leaveWrote: string; //เขียนที่*** + leaveStartDate: Date | null; //*วัน เดือน ปีเริ่มต้นลา + leaveEndDate: Date | null; //*วัน เดือน ปีสิ้นสุดลา + leaveTotal: string; //จำนวนวันลา + leaveNumber: string; //หมายเลขที่ติดต่อขณะลา + leaveDetail: string; //รายละเอียดการลา + leaveAddress: string; //สถานที่ติดต่อขณะลา + leaveDocument: File[] | null; //เอกสารปะกอบ + [key: string]: any; } interface FormRef { - leaveWrote: object | null //เขียนที่*** - leaveStartDate: object | null //*วัน เดือน ปีเริ่มต้นลา - leaveEndDate: object | null //*วัน เดือน ปีสิ้นสุดลา - leaveTotal: object | null //จำนวนวันลา - leaveNumber: object | null //หมายเลขที่ติดต่อขณะลา - leaveDetail: object | null //รายละเอียดการลา - leaveAddress: object | null //สถานที่ติดต่อขณะลา - leaveDocument: object | null //เอกสารปะกอบ - [key: string]: any + leaveWrote: object | null; //เขียนที่*** + leaveStartDate: object | null; //*วัน เดือน ปีเริ่มต้นลา + leaveEndDate: object | null; //*วัน เดือน ปีสิ้นสุดลา + leaveTotal: object | null; //จำนวนวันลา + leaveNumber: object | null; //หมายเลขที่ติดต่อขณะลา + leaveDetail: object | null; //รายละเอียดการลา + leaveAddress: object | null; //สถานที่ติดต่อขณะลา + leaveDocument: object | null; //เอกสารปะกอบ + [key: string]: any; } -export type { FormData, FormRef } +export type { FormData, FormRef }; diff --git a/src/modules/05_leave/interface/request/FollowSpouseForm.ts b/src/modules/05_leave/interface/request/FollowSpouseForm.ts index 82f6d04..4343a3b 100644 --- a/src/modules/05_leave/interface/request/FollowSpouseForm.ts +++ b/src/modules/05_leave/interface/request/FollowSpouseForm.ts @@ -1,40 +1,40 @@ interface FormData { - leaveWrote: string //เขียนที่*** - leaveStartDate: Date | null //*วัน เดือน ปีเริ่มต้นลา - leaveEndDate: Date | null //*วัน เดือน ปีสิ้นสุดลา - leaveTotal: string //จำนวนวันลา - leaveSalary: number //เงินเดือนปัจจุบัน - salaryText: number //เงินเดือนคำอ่าน - coupleDayName: string //ชื่อคู่สมรส - coupleDayPosition: string //ตำแหน่งคู่สมรส - coupleDayLevel: string //ระดับคู่สมรส - coupleDayLevelCountry: string //ไปปฏิบัติราชการ ณ ประเทศ - followHistoryCountry: string //ประวัติการลาติดตามคู่สมรสประเทศ - followHistoryTime: string //ประวัติการลาติดตามคู่สมรสประเทศ - followHistoryStart: Date | null //ประวัติการลาติดตามคู่สมรสประเทศ - followHistoryEnd: Date | null //ประวัติการลาติดตามคู่สมรสประเทศ - leaveDetail: string //รายละเอียดการลา - leaveDocument: File[] | null //เอกสารปะกอบ + leaveWrote: string; //เขียนที่*** + leaveStartDate: Date | null; //*วัน เดือน ปีเริ่มต้นลา + leaveEndDate: Date | null; //*วัน เดือน ปีสิ้นสุดลา + leaveTotal: string; //จำนวนวันลา + leaveSalary: number; //เงินเดือนปัจจุบัน + salaryText: number; //เงินเดือนคำอ่าน + coupleDayName: string; //ชื่อคู่สมรส + coupleDayPosition: string; //ตำแหน่งคู่สมรส + coupleDayLevel: string; //ระดับคู่สมรส + coupleDayLevelCountry: string; //ไปปฏิบัติราชการ ณ ประเทศ + followHistoryCountry: string; //ประวัติการลาติดตามคู่สมรสประเทศ + followHistoryTime: string; //ประวัติการลาติดตามคู่สมรสประเทศ + followHistoryStart: Date | null; //ประวัติการลาติดตามคู่สมรสประเทศ + followHistoryEnd: Date | null; //ประวัติการลาติดตามคู่สมรสประเทศ + leaveDetail: string; //รายละเอียดการลา + leaveDocument: File[] | null; //เอกสารปะกอบ } interface FormRef { - leaveWrote: object | null //เขียนที่*** - leaveStartDate: object | null //*วัน เดือน ปีเริ่มต้นลา - leaveEndDate: object | null //*วัน เดือน ปีสิ้นสุดลา - leaveTotal: object | null //จำนวนวันลา - leaveSalary: object | null //เงินเดือนปัจจุบัน - coupleDayName: object | null //หมายเลขที่ติดต่อขณะลา - coupleDayPosition: object | null //ตำแหน่งคู่สมรส - coupleDayLevel: object | null //ระดับคู่สมรส - coupleDayLevelCountry: object | null //ไปปฏิบัติราชการ ณ ประเทศ - // followHistoryCountry: object | null //ประวัติการลาติดตามคู่สมรสประเทศ - // followHistoryTime: object | null //ประวัติการลาติดตามคู่สมรสประเทศ - // followHistoryStart: object | null //ประวัติการลาติดตามคู่สมรสประเทศ - // followHistoryEnd: object | null //ประวัติการลาติดตามคู่สมรสประเทศ - leaveDetail: object | null //รายละเอียดการลา - leaveAddress: object | null //สถานที่ติดต่อขณะลา - leaveDocument: object | null //เอกสารปะกอบ - [key: string]: any + leaveWrote: object | null; //เขียนที่*** + leaveStartDate: object | null; //*วัน เดือน ปีเริ่มต้นลา + leaveEndDate: object | null; //*วัน เดือน ปีสิ้นสุดลา + leaveTotal: object | null; //จำนวนวันลา + leaveSalary: object | null; //เงินเดือนปัจจุบัน + coupleDayName: object | null; //หมายเลขที่ติดต่อขณะลา + coupleDayPosition: object | null; //ตำแหน่งคู่สมรส + coupleDayLevel: object | null; //ระดับคู่สมรส + coupleDayLevelCountry: object | null; //ไปปฏิบัติราชการ ณ ประเทศ + // followHistoryCountry: object | null //ประวัติการลาติดตามคู่สมรสประเทศ + // followHistoryTime: object | null //ประวัติการลาติดตามคู่สมรสประเทศ + // followHistoryStart: object | null //ประวัติการลาติดตามคู่สมรสประเทศ + // followHistoryEnd: object | null //ประวัติการลาติดตามคู่สมรสประเทศ + leaveDetail: object | null; //รายละเอียดการลา + leaveAddress: object | null; //สถานที่ติดต่อขณะลา + leaveDocument: object | null; //เอกสารปะกอบ + [key: string]: any; } -export type { FormData, FormRef } +export type { FormData, FormRef }; diff --git a/src/modules/05_leave/interface/request/HelpWifeForm.ts b/src/modules/05_leave/interface/request/HelpWifeForm.ts index a9471d5..9e4abe1 100644 --- a/src/modules/05_leave/interface/request/HelpWifeForm.ts +++ b/src/modules/05_leave/interface/request/HelpWifeForm.ts @@ -1,29 +1,29 @@ interface FormData { - leaveWrote: string //เขียนที่*** - wifeDayName: string //ชื่อภรรยา - wifeDayDateBorn: Date | null //วันที่คลอด - leaveStartDate: Date | null //*วัน เดือน ปีเริ่มต้นลา - leaveEndDate: Date | null //*วัน เดือน ปีสิ้นสุดลา - leaveTotal: string //จำนวนวันลา - leaveNumber: string //หมายเลขที่ติดต่อขณะลา - leaveDetail: string //รายละเอียดการลา - leaveAddress: string //สถานที่ติดต่อขณะลา - leaveDocument: File[] | null //เอกสารปะกอบ - [key: string]: any + leaveWrote: string; //เขียนที่*** + wifeDayName: string; //ชื่อภรรยา + wifeDayDateBorn: Date | null; //วันที่คลอด + leaveStartDate: Date | null; //*วัน เดือน ปีเริ่มต้นลา + leaveEndDate: Date | null; //*วัน เดือน ปีสิ้นสุดลา + leaveTotal: string; //จำนวนวันลา + leaveNumber: string; //หมายเลขที่ติดต่อขณะลา + leaveDetail: string; //รายละเอียดการลา + leaveAddress: string; //สถานที่ติดต่อขณะลา + leaveDocument: File[] | null; //เอกสารปะกอบ + [key: string]: any; } interface FormRef { - leaveWrote: object | null //เขียนที่*** - leaveStartDate: object | null //*วัน เดือน ปีเริ่มต้นลา - wifeDayName: object | null //ชื่อภรรยา - wifeDayDateBorn: object | null //วันที่คลอด - leaveEndDate: object | null //*วัน เดือน ปีสิ้นสุดลา - leaveTotal: object | null //จำนวนวันลา - leaveNumber: object | null //หมายเลขที่ติดต่อขณะลา - leaveDetail: object | null //รายละเอียดการลา - leaveAddress: object | null //สถานที่ติดต่อขณะลา - leaveDocument: object | null //เอกสารปะกอบ - [key: string]: any + leaveWrote: object | null; //เขียนที่*** + leaveStartDate: object | null; //*วัน เดือน ปีเริ่มต้นลา + wifeDayName: object | null; //ชื่อภรรยา + wifeDayDateBorn: object | null; //วันที่คลอด + leaveEndDate: object | null; //*วัน เดือน ปีสิ้นสุดลา + leaveTotal: object | null; //จำนวนวันลา + leaveNumber: object | null; //หมายเลขที่ติดต่อขณะลา + leaveDetail: object | null; //รายละเอียดการลา + leaveAddress: object | null; //สถานที่ติดต่อขณะลา + leaveDocument: object | null; //เอกสารปะกอบ + [key: string]: any; } -export type { FormData, FormRef } +export type { FormData, FormRef }; diff --git a/src/modules/05_leave/interface/request/SickForm.ts b/src/modules/05_leave/interface/request/SickForm.ts index b14fd9e..e072923 100644 --- a/src/modules/05_leave/interface/request/SickForm.ts +++ b/src/modules/05_leave/interface/request/SickForm.ts @@ -1,28 +1,28 @@ interface FormData { - leaveWrote: string //เขียนที่*** - leaveStartDate: Date | null //*วัน เดือน ปีเริ่มต้นลา - leaveEndDate: Date | null //*วัน เดือน ปีสิ้นสุดลา - leaveRange: string - leaveTotal: string //จำนวนวันลา - contractTel: string //หมายเลขโทรศัพท์ที่ติดต่อได้ - leaveNumber: string //หมายเลขที่ติดต่อขณะลา - leaveDetail: string //รายละเอียดการลา - leaveAddress: string //สถานที่ติดต่อขณะลา - leaveDocument: File[] | null //เอกสารปะกอบ - [key: string]: any + leaveWrote: string; //เขียนที่*** + leaveStartDate: Date | null; //*วัน เดือน ปีเริ่มต้นลา + leaveEndDate: Date | null; //*วัน เดือน ปีสิ้นสุดลา + leaveRange: string; + leaveTotal: string; //จำนวนวันลา + contractTel: string; //หมายเลขโทรศัพท์ที่ติดต่อได้ + leaveNumber: string; //หมายเลขที่ติดต่อขณะลา + leaveDetail: string; //รายละเอียดการลา + leaveAddress: string; //สถานที่ติดต่อขณะลา + leaveDocument: File[] | null; //เอกสารปะกอบ + [key: string]: any; } interface FormRef { - leaveWrote: object | null //เขียนที่*** - leaveStartDate: object | null //*วัน เดือน ปีเริ่มต้นลา - leaveEndDate: object | null //*วัน เดือน ปีสิ้นสุดลา - leaveRange: object | null - leaveTotal: object | null //จำนวนวันลา - leaveNumber: object | null //หมายเลขที่ติดต่อขณะลา - leaveDetail: object | null //รายละเอียดการลา - leaveAddress: object | null //สถานที่ติดต่อขณะลา + leaveWrote: object | null; //เขียนที่*** + leaveStartDate: object | null; //*วัน เดือน ปีเริ่มต้นลา + leaveEndDate: object | null; //*วัน เดือน ปีสิ้นสุดลา + leaveRange: object | null; + leaveTotal: object | null; //จำนวนวันลา + leaveNumber: object | null; //หมายเลขที่ติดต่อขณะลา + leaveDetail: object | null; //รายละเอียดการลา + leaveAddress: object | null; //สถานที่ติดต่อขณะลา - [key: string]: any + [key: string]: any; } -export type { FormData, FormRef } +export type { FormData, FormRef }; diff --git a/src/modules/05_leave/interface/request/VacationForm.ts b/src/modules/05_leave/interface/request/VacationForm.ts index db3fe5d..7b79e70 100644 --- a/src/modules/05_leave/interface/request/VacationForm.ts +++ b/src/modules/05_leave/interface/request/VacationForm.ts @@ -1,31 +1,31 @@ interface FormData { - leaveWrote: string //เขียนที่*** - leaveRange: string - restDayOldTotal: string //จำนวนวันลาพักผ่อนสะสม จากปีที่ผ่านมา - restDayCurrentTotal: string //จำนวนวันลาพักผ่อนประจำปีปัจจุบัน - leaveStartDate: Date | null //*วัน เดือน ปีเริ่มต้นลา - leaveEndDate: Date | null //*วัน เดือน ปีสิ้นสุดลา - leaveTotal: string //จำนวนวันลา - leaveNumber: string //หมายเลขที่ติดต่อขณะลา - leaveDetail: string //รายละเอียดการลา - leaveAddress: string //สถานที่ติดต่อขณะลา - leaveDocument: File[] | null //เอกสารปะกอบ - [key: string]: any + leaveWrote: string; //เขียนที่*** + leaveRange: string; + restDayOldTotal: string; //จำนวนวันลาพักผ่อนสะสม จากปีที่ผ่านมา + restDayCurrentTotal: string; //จำนวนวันลาพักผ่อนประจำปีปัจจุบัน + leaveStartDate: Date | null; //*วัน เดือน ปีเริ่มต้นลา + leaveEndDate: Date | null; //*วัน เดือน ปีสิ้นสุดลา + leaveTotal: string; //จำนวนวันลา + leaveNumber: string; //หมายเลขที่ติดต่อขณะลา + leaveDetail: string; //รายละเอียดการลา + leaveAddress: string; //สถานที่ติดต่อขณะลา + leaveDocument: File[] | null; //เอกสารปะกอบ + [key: string]: any; } interface FormRef { - leaveWrote: object | null //เขียนที่*** - leaveRange: object | null - leaveStartDate: object | null //*วัน เดือน ปีเริ่มต้นลา - restDayOldTotal: object | null //ชื่อภรรยา - restDayCurrentTotal: object | null //วันที่คลอด - leaveEndDate: object | null //*วัน เดือน ปีสิ้นสุดลา - leaveTotal: object | null //จำนวนวันลา - leaveNumber: object | null //หมายเลขที่ติดต่อขณะลา - leaveDetail: object | null //รายละเอียดการลา - leaveAddress: object | null //สถานที่ติดต่อขณะลา - leaveDocument: object | null //เอกสารปะกอบ - [key: string]: any + leaveWrote: object | null; //เขียนที่*** + leaveRange: object | null; + leaveStartDate: object | null; //*วัน เดือน ปีเริ่มต้นลา + restDayOldTotal: object | null; //ชื่อภรรยา + restDayCurrentTotal: object | null; //วันที่คลอด + leaveEndDate: object | null; //*วัน เดือน ปีสิ้นสุดลา + leaveTotal: object | null; //จำนวนวันลา + leaveNumber: object | null; //หมายเลขที่ติดต่อขณะลา + leaveDetail: object | null; //รายละเอียดการลา + leaveAddress: object | null; //สถานที่ติดต่อขณะลา + leaveDocument: object | null; //เอกสารปะกอบ + [key: string]: any; } -export type { FormData, FormRef } +export type { FormData, FormRef }; diff --git a/src/modules/05_leave/interface/request/WorkInternationalForm.ts b/src/modules/05_leave/interface/request/WorkInternationalForm.ts index d51f056..512e0f3 100644 --- a/src/modules/05_leave/interface/request/WorkInternationalForm.ts +++ b/src/modules/05_leave/interface/request/WorkInternationalForm.ts @@ -1,20 +1,20 @@ interface FormData { - type: string - leaveWrote: string //เขียนที่*** - leaveStartDate: Date | null //*วัน เดือน ปีเริ่มต้นลา - leaveEndDate: Date | null //*วัน เดือน ปีสิ้นสุดลา - leaveDetail: string //รายละเอียดการลา - leaveDocument: File[] | null //เอกสารปะกอบ - leaveDraftDocument: File[] + type: string; + leaveWrote: string; //เขียนที่*** + leaveStartDate: Date | null; //*วัน เดือน ปีเริ่มต้นลา + leaveEndDate: Date | null; //*วัน เดือน ปีสิ้นสุดลา + leaveDetail: string; //รายละเอียดการลา + leaveDocument: File[] | null; //เอกสารปะกอบ + leaveDraftDocument: File[]; } interface FormRef { - leaveWrote: object | null //เขียนที่*** - leaveStartDate: object | null //*วัน เดือน ปีเริ่มต้นลา - leaveEndDate: object | null //*วัน เดือน ปีสิ้นสุดลา - leaveDetail: object | null //รายละเอียดการลา - leaveDocument: object | null //เอกสารปะกอบ - [key: string]: any + leaveWrote: object | null; //เขียนที่*** + leaveStartDate: object | null; //*วัน เดือน ปีเริ่มต้นลา + leaveEndDate: object | null; //*วัน เดือน ปีสิ้นสุดลา + leaveDetail: object | null; //รายละเอียดการลา + leaveDocument: object | null; //เอกสารปะกอบ + [key: string]: any; } -export type { FormData, FormRef } +export type { FormData, FormRef }; diff --git a/src/modules/05_leave/interface/response/leave.ts b/src/modules/05_leave/interface/response/leave.ts index c86341d..181d282 100644 --- a/src/modules/05_leave/interface/response/leave.ts +++ b/src/modules/05_leave/interface/response/leave.ts @@ -1,146 +1,156 @@ interface ListLeave { - id: string //*Id การยื่นขอลา - leaveTypeName: string //Name ประเภทการลา - leaveTypeId: string //Id ประเภทการลา - leaveStartDate: Date - leaveEndDate: Date - fullName: string //คำนำหน้า ชื่อ นามสกุล คนขอลา - dateSendLeave: Date | null //วันที่ยื่นใบลา - status: string //สถานะการของลา - isDelete: boolean //ขอยกเลิกคำขอลา ถ้าเคยขอแล้วจะเป็น true ไม่เคยเป็น false - hajjDayStatus: boolean + id: string; //*Id การยื่นขอลา + leaveTypeName: string; //Name ประเภทการลา + leaveTypeId: string; //Id ประเภทการลา + leaveStartDate: Date; + leaveEndDate: Date; + fullName: string; //คำนำหน้า ชื่อ นามสกุล คนขอลา + dateSendLeave: Date | null; //วันที่ยื่นใบลา + status: string; //สถานะการของลา + isDelete: boolean; //ขอยกเลิกคำขอลา ถ้าเคยขอแล้วจะเป็น true ไม่เคยเป็น false + hajjDayStatus: boolean; } interface ListLeaveTable { - id: string - leaveTypeName: string - leaveTypeId: string - fullName: string - dateSendLeave: string | null - status: string - isDelete: boolean - hajjDayStatus: boolean + id: string; + leaveTypeName: string; + leaveTypeId: string; + fullName: string; + dateSendLeave: string | null; + status: string; + isDelete: boolean; + hajjDayStatus: boolean; } interface FremDetail { - id: string //Id การยื่นขอลา - leaveTypeName: string // Name ประเภทการลา - leaveTypeId: string //Id ประเภทการลา - fullname: string //คำนำหน้า ชื่อ นามสกุล คนขอลา - dateSendLeave: Date // วันที่ยืนใบลา - status: string //สถานะการของลา - leaveDateStart: Date //วันเริ่มการลา - leaveDateEnd: Date //วันสิ้นสุดการลา - leaveCount: string //จำนวนวันลา - leaveWrote: string //เขียนที่ - leaveAddress: string //สถานที่ติดต่อขณะลา - leaveNumber: string //หมายเลขที่ติดต่อขณะลา - leaveDetail: string //รายละเอียดการลา - leaveDocument: string //อัปโหลดเอกสารประกอบรายละเอียด - leaveDraftDocument: string //อัปโหลดแบบฟอร์มการลา - leaveLastStart: Date //ลาครั้งสุดท้ายในประเภทนั้น ๆ เริ่มเมื่อวันที่(ลาป่วย ลาคลอดบุตร และลากิจส่วนตัว)(Auto) - leaveLastEnd: Date //ลาครั้งสุดท้ายในประเภทนั้น ๆ สิ้นสุดเมื่อวันที่(ลาป่วย ลาคลอดบุตร และลากิจส่วนตัว)(Auto) - leaveTotal: string //จำนวนวันที่ลา(Auto) - leavebirthDate: Date //วันเดือนปีเกิด(Auto) - leavegovernmentDate: Date //วันที่เข้ารับราชการ(Auto) - leaveSalary: number //เงินเดือนปัจจุบัน(Auto) - leaveSalaryText: string //เงินเดือนปัจจุบัน(เขียนเป็นคำอ่าน) - leaveTypeDay: string //ประเภทการลาในวันนั้นเช่น - wifeDayName: string //ชื่อภรรยา(ลาไปช่วยเหลือภริยาที่คลอดบุตร) - wifeDayDateBorn: Date //วันที่คลอด(ลาไปช่วยเหลือภริยาที่คลอดบุตร) - restDayOldTotal: number //จำนวนวันลาพักผ่อนสะสม จากปีที่ผ่านมา(ลาพักผ่อน)(Auto) - restDayCurrentTotal: number //จำนวนวันลาพักผ่อนประจำปีปัจจุบัน(ลาพักผ่อน)(Auto) - ordainDayStatus: string //เคย/ไม่เคยบวช (ให้เลือก) (ลาอุปสมบท) - ordainDayLocationName: string //สถานที่บวช ชื่อวัด(ลาอุปสมบท) - ordainDayLocationAddress: string //สถานที่บวช ที่อยู่(ลาอุปสมบท) - ordainDayLocationNumber: string //สถานที่บวช หมายเลขโทรศัพท์(ลาอุปสมบท) - ordainDayOrdination: Date //สถานที่บวช วันอุปสมบท(ลาอุปสมบท) - ordainDayBuddhistLentName: string //สถานที่จำพรรษา ชื่อวัด(ลาอุปสมบท) - ordainDayBuddhistLentAddress: string //สถานที่จำพรรษา ที่อยู่(ลาอุปสมบท) - hajjDayStatus: string //เคย/ไม่เคยไปประกอบพิธีฮัจญ์ (ให้เลือก) (ลาประกอบพิธีฮัจญ์) - absentDaySummon: string //ได้รับหมายเรียกของ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล) - absentDayLocation: string //ที่ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล) - absentDayRegistorDate: Date //ลงวันที่ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล) - absentDayGetIn: string //ให้เข้ารับการ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล) - absentDayAt: string //ณ ที่ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล) - studyDaySubject: string //กรณีลาไปศึกษาต่อ ศึกษาวิชา (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน) - studyDayDegreeLevel: string //กรณีลาไปศึกษาต่อ ขั้นปริญญา (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน) - studyDayUniversityName: string //กรณีลาไปศึกษาต่อ ชื่อสถานศึกษา (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน) - studyDayTrainingSubject: string //กรณีลาไปฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน ด้าน/หลักสูตร (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน) - studyDayTrainingName: string //กรณีลาไปฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน ณ สถานที่ (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน) - studyDayCountry: string //ประเทศ (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน) - studyDayScholarship: string //ด้วยทุน (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน) - coupleDayName: string //ชื่อคู่สมรส (ลาติดตามคู่สมรส) - coupleDayPosition: string //ตำแหน่งคู่สมรส (ลาติดตามคู่สมรส) - coupleDayLevel: string //ระดับคู่สมรส (ลาติดตามคู่สมรส) - coupleDayLevelCountry: string //ไปปฏิบัติราชการ ณ ประเทศ (ลาติดตามคู่สมรส) - coupleDayCountryHistory: string //ประวัติ ประเทศ (ลาติดตามคู่สมรส) - coupleDayTotalHistory: string //ประวัติ เป็นเวลา กี่ปี กี่เดือน กี่วัน (ลาติดตามคู่สมรส) - coupleDayStartDateHistory: Date //ประวัติ ตั้งแต่วันที่ (ลาติดตามคู่สมรส) - coupleDayEndDateHistory: Date //ประวัติ ถึงวันที่ (ลาติดตามคู่สมรส) - coupleDaySumTotalHistory: string //ประวัติ ในกรณีลาติดต่อกับครั้งก่อน รวมทั้งนี้ด้วย เป็นเวลา กี่ปี กี่เดือน กี่วัน (ลาติดตามคู่สมรส) - approveStep: string - dear: string - leaveRange: string + id: string; //Id การยื่นขอลา + leaveTypeName: string; // Name ประเภทการลา + leaveTypeId: string; //Id ประเภทการลา + fullname: string; //คำนำหน้า ชื่อ นามสกุล คนขอลา + dateSendLeave: Date; // วันที่ยืนใบลา + status: string; //สถานะการของลา + leaveDateStart: Date; //วันเริ่มการลา + leaveDateEnd: Date; //วันสิ้นสุดการลา + leaveCount: string; //จำนวนวันลา + leaveWrote: string; //เขียนที่ + leaveAddress: string; //สถานที่ติดต่อขณะลา + leaveNumber: string; //หมายเลขที่ติดต่อขณะลา + leaveDetail: string; //รายละเอียดการลา + leaveDocument: string; //อัปโหลดเอกสารประกอบรายละเอียด + leaveDraftDocument: string; //อัปโหลดแบบฟอร์มการลา + leaveLastStart: Date; //ลาครั้งสุดท้ายในประเภทนั้น ๆ เริ่มเมื่อวันที่(ลาป่วย ลาคลอดบุตร และลากิจส่วนตัว)(Auto) + leaveLastEnd: Date; //ลาครั้งสุดท้ายในประเภทนั้น ๆ สิ้นสุดเมื่อวันที่(ลาป่วย ลาคลอดบุตร และลากิจส่วนตัว)(Auto) + leaveTotal: string; //จำนวนวันที่ลา(Auto) + leavebirthDate: Date; //วันเดือนปีเกิด(Auto) + leavegovernmentDate: Date; //วันที่เข้ารับราชการ(Auto) + leaveSalary: number; //เงินเดือนปัจจุบัน(Auto) + leaveSalaryText: string; //เงินเดือนปัจจุบัน(เขียนเป็นคำอ่าน) + leaveTypeDay: string; //ประเภทการลาในวันนั้นเช่น + wifeDayName: string; //ชื่อภรรยา(ลาไปช่วยเหลือภริยาที่คลอดบุตร) + wifeDayDateBorn: Date; //วันที่คลอด(ลาไปช่วยเหลือภริยาที่คลอดบุตร) + restDayOldTotal: number; //จำนวนวันลาพักผ่อนสะสม จากปีที่ผ่านมา(ลาพักผ่อน)(Auto) + restDayCurrentTotal: number; //จำนวนวันลาพักผ่อนประจำปีปัจจุบัน(ลาพักผ่อน)(Auto) + ordainDayStatus: string; //เคย/ไม่เคยบวช (ให้เลือก) (ลาอุปสมบท) + ordainDayLocationName: string; //สถานที่บวช ชื่อวัด(ลาอุปสมบท) + ordainDayLocationAddress: string; //สถานที่บวช ที่อยู่(ลาอุปสมบท) + ordainDayLocationNumber: string; //สถานที่บวช หมายเลขโทรศัพท์(ลาอุปสมบท) + ordainDayOrdination: Date; //สถานที่บวช วันอุปสมบท(ลาอุปสมบท) + ordainDayBuddhistLentName: string; //สถานที่จำพรรษา ชื่อวัด(ลาอุปสมบท) + ordainDayBuddhistLentAddress: string; //สถานที่จำพรรษา ที่อยู่(ลาอุปสมบท) + hajjDayStatus: string; //เคย/ไม่เคยไปประกอบพิธีฮัจญ์ (ให้เลือก) (ลาประกอบพิธีฮัจญ์) + absentDaySummon: string; //ได้รับหมายเรียกของ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล) + absentDayLocation: string; //ที่ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล) + absentDayRegistorDate: Date; //ลงวันที่ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล) + absentDayGetIn: string; //ให้เข้ารับการ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล) + absentDayAt: string; //ณ ที่ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล) + studyDaySubject: string; //กรณีลาไปศึกษาต่อ ศึกษาวิชา (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน) + studyDayDegreeLevel: string; //กรณีลาไปศึกษาต่อ ขั้นปริญญา (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน) + studyDayUniversityName: string; //กรณีลาไปศึกษาต่อ ชื่อสถานศึกษา (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน) + studyDayTrainingSubject: string; //กรณีลาไปฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน ด้าน/หลักสูตร (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน) + studyDayTrainingName: string; //กรณีลาไปฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน ณ สถานที่ (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน) + studyDayCountry: string; //ประเทศ (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน) + studyDayScholarship: string; //ด้วยทุน (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน) + coupleDayName: string; //ชื่อคู่สมรส (ลาติดตามคู่สมรส) + coupleDayPosition: string; //ตำแหน่งคู่สมรส (ลาติดตามคู่สมรส) + coupleDayLevel: string; //ระดับคู่สมรส (ลาติดตามคู่สมรส) + coupleDayLevelCountry: string; //ไปปฏิบัติราชการ ณ ประเทศ (ลาติดตามคู่สมรส) + coupleDayCountryHistory: string; //ประวัติ ประเทศ (ลาติดตามคู่สมรส) + coupleDayTotalHistory: string; //ประวัติ เป็นเวลา กี่ปี กี่เดือน กี่วัน (ลาติดตามคู่สมรส) + coupleDayStartDateHistory: Date; //ประวัติ ตั้งแต่วันที่ (ลาติดตามคู่สมรส) + coupleDayEndDateHistory: Date; //ประวัติ ถึงวันที่ (ลาติดตามคู่สมรส) + coupleDaySumTotalHistory: string; //ประวัติ ในกรณีลาติดต่อกับครั้งก่อน รวมทั้งนี้ด้วย เป็นเวลา กี่ปี กี่เดือน กี่วัน (ลาติดตามคู่สมรส) + approveStep: string; + dear: string; + leaveRange: string; } interface FromCancelDetail { - id: string //*Id การยื่นขอลา - leaveTypeName: String //Name ประเภทการลา - fullname: String //คำนำหน้า ชื่อ นามสกุล คนขอลา - status: String //สถานะการของลา - leaveDocDelete: string //เอกสารการยกเลิกการลา - leaveResonDelete: String //เหตุผลการยกเลิกการลา - leaveWrote: String //เขียนที่ - leaveAddress: String //สถานที่ติดต่อขณะลา - leaveNumber: String //หมายเลขที่ติดต่อขณะลา - leaveDetail: String //รายละเอียดการลา - leaveTotal: number //จำนวนวันที่ลา - leaveStartDate: Date //วัน เดือน ปีเริ่มต้นลา - leaveEndDate: Date //วัน เดือน ปีสิ้นสุดลา + id: string; //*Id การยื่นขอลา + leaveTypeName: String; //Name ประเภทการลา + fullname: String; //คำนำหน้า ชื่อ นามสกุล คนขอลา + status: String; //สถานะการของลา + leaveDocDelete: string; //เอกสารการยกเลิกการลา + leaveResonDelete: String; //เหตุผลการยกเลิกการลา + leaveWrote: String; //เขียนที่ + leaveAddress: String; //สถานที่ติดต่อขณะลา + leaveNumber: String; //หมายเลขที่ติดต่อขณะลา + leaveDetail: String; //รายละเอียดการลา + leaveTotal: number; //จำนวนวันที่ลา + leaveStartDate: Date; //วัน เดือน ปีเริ่มต้นลา + leaveEndDate: Date; //วัน เดือน ปีสิ้นสุดลา } interface FormDelete { - writeAt: string - reason: string - doc: any + writeAt: string; + reason: string; + doc: any; } interface FormDeleteRef { - writeAt: object | null - reason: object | null - doc: object | null - [key: string]: any + writeAt: object | null; + reason: object | null; + doc: object | null; + [key: string]: any; } interface DataCalendar { - dateSendLeave: Date - fullName: string - id: string - leaveEndDate: Date - leaveStartDate: Date - leaveTypeId: string - leaveTypeName: string - status: string - keycloakId: string + dateSendLeave: Date; + fullName: string; + id: string; + leaveEndDate: Date; + leaveStartDate: Date; + leaveTypeId: string; + leaveTypeName: string; + status: string; + keycloakId: string; } interface LeaveType { - code: string - createdAt: Date - createdFullName: string - createdUserId: string - id: string - lastUpdateFullName: string - lastUpdateUserId: string - lastUpdatedAt: Date | null - limit: Number - name: string + code: string; + createdAt: Date; + createdFullName: string; + createdUserId: string; + id: string; + lastUpdateFullName: string; + lastUpdateUserId: string; + lastUpdatedAt: Date | null; + limit: Number; + name: string; } interface FilterList { - id: string - name: string | null - color: string + id: string; + name: string | null; + color: string; } -export type { ListLeave, ListLeaveTable, FremDetail, FormDelete, FormDeleteRef, DataCalendar, LeaveType, FilterList, FromCancelDetail } +export type { + ListLeave, + ListLeaveTable, + FremDetail, + FormDelete, + FormDeleteRef, + DataCalendar, + LeaveType, + FilterList, + FromCancelDetail, +}; diff --git a/src/modules/05_leave/router.ts b/src/modules/05_leave/router.ts index 4d66841..6f9197e 100644 --- a/src/modules/05_leave/router.ts +++ b/src/modules/05_leave/router.ts @@ -1,40 +1,40 @@ /** * Router leave */ -const leave = () => import("@/modules/05_leave/views/Main.vue") +const leave = () => import("@/modules/05_leave/views/Main.vue"); -const addAbsence = () => import("@/modules/05_leave/views/AddPage.vue") +const addAbsence = () => import("@/modules/05_leave/views/AddPage.vue"); -const editAbsence = () => import("@/modules/05_leave/views/EditPage.vue") +const editAbsence = () => import("@/modules/05_leave/views/EditPage.vue"); /* const Checkout = () => import("@/modules/04_checkin/views/Checkout.vue"); */ export default [ - { - path: "/leave", - name: "leave", - component: leave, - meta: { - Auth: true, - Key: [7], - }, - }, - { - path: "/leave/add", - name: "addAbsence", - component: addAbsence, - meta: { - Auth: true, - Key: [7], - }, - }, - { - path: "/leave/edit/:id", - name: "editAbsence", - component: editAbsence, - meta: { - Auth: true, - Key: [7], - }, - }, -] + { + path: "/leave", + name: "leave", + component: leave, + meta: { + Auth: true, + Key: [7], + }, + }, + { + path: "/leave/add", + name: "addAbsence", + component: addAbsence, + meta: { + Auth: true, + Key: [7], + }, + }, + { + path: "/leave/edit/:id", + name: "editAbsence", + component: editAbsence, + meta: { + Auth: true, + Key: [7], + }, + }, +]; diff --git a/src/modules/05_leave/store.ts b/src/modules/05_leave/store.ts index 58c6d4f..be460ef 100644 --- a/src/modules/05_leave/store.ts +++ b/src/modules/05_leave/store.ts @@ -1,401 +1,424 @@ -import { defineStore } from "pinia" -import { ref } from "vue" -import { useQuasar } from "quasar" +import { defineStore } from "pinia"; +import { ref } from "vue"; +import { useQuasar } from "quasar"; -import type { QTableProps } from "quasar" -import type { OptionData, TypeLeave } from "@/modules/05_leave/interface/index/main" -import type { ListLeave, ListLeaveTable } from "@/modules/05_leave/interface/response/leave" -import http from "@/plugins/http" -import config from "@/app.config" +import type { QTableProps } from "quasar"; +import type { + OptionData, + TypeLeave, +} from "@/modules/05_leave/interface/index/main"; +import type { + ListLeave, + ListLeaveTable, +} from "@/modules/05_leave/interface/response/leave"; +import http from "@/plugins/http"; +import config from "@/app.config"; -import { useCounterMixin } from "@/stores/mixin" -const mixin = useCounterMixin() -const { date2Thai, messageError } = mixin -const $q = useQuasar() +import { useCounterMixin } from "@/stores/mixin"; +const mixin = useCounterMixin(); +const { date2Thai, messageError } = mixin; +const $q = useQuasar(); const type = ref("00000000-0000-0000-0000-000000000000"); const status = ref("ALL"); export const useLeaveStore = defineStore("Leave", () => { - const tabValue = ref("calendar") - const typeLeave = ref("") - const LeaveType = ref("0") - const LeaveStatus = ref("0") - const fiscalYearyear = ref(new Date().getFullYear()) - const rows = ref([]) + const tabValue = ref("calendar"); + const typeLeave = ref(""); + const LeaveType = ref("0"); + const LeaveStatus = ref("0"); + const fiscalYearyear = ref(new Date().getFullYear()); + const rows = ref([]); - /** - * function เรียกข้อมูลรายการลา Table - * @param data ข้อมูลรายการลา Table - */ - async function fetchListLeave(data: ListLeave[]) { - let datalist: ListLeaveTable[] = data.map((e: ListLeave) => ({ - id: e.id, - leaveTypeName: e.leaveTypeName, - leaveTypeId: e.leaveTypeId, - fullName: e.fullName, - dateSendLeave: e.dateSendLeave && date2Thai(e.dateSendLeave), - dateLeave: date2Thai(e.leaveStartDate) + " - " + date2Thai(e.leaveEndDate), - status: e.status, - hajjDayStatus: e.hajjDayStatus, - statusConvert: convertStatud(e.status), - isDelete: e.isDelete, - })) - rows.value = datalist - } + /** + * function เรียกข้อมูลรายการลา Table + * @param data ข้อมูลรายการลา Table + */ + async function fetchListLeave(data: ListLeave[]) { + let datalist: ListLeaveTable[] = data.map((e: ListLeave) => ({ + id: e.id, + leaveTypeName: e.leaveTypeName, + leaveTypeId: e.leaveTypeId, + fullName: e.fullName, + dateSendLeave: e.dateSendLeave && date2Thai(e.dateSendLeave), + dateLeave: + date2Thai(e.leaveStartDate) + " - " + date2Thai(e.leaveEndDate), + status: e.status, + hajjDayStatus: e.hajjDayStatus, + statusConvert: convertStatud(e.status), + isDelete: e.isDelete, + })); + rows.value = datalist; + } - //ฟังก์ชั่นแปลง Status - function convertStatud(val: string) { - switch (val) { - case "DRAFT": - return "แบบร่าง" - case "NEW": - return "ใหม่" - case "PENDING": - return "กำลังดำเนินการ" - case "APPROVE": - return "อนุมัติ" - case "REJECT": - return "ไม่อนุมัติ" - case "DELETE": - return "ยกเลิก" - } - } + //ฟังก์ชั่นแปลง Status + function convertStatud(val: string) { + switch (val) { + case "DRAFT": + return "แบบร่าง"; + case "NEW": + return "ใหม่"; + case "PENDING": + return "กำลังดำเนินการ"; + case "APPROVE": + return "อนุมัติ"; + case "REJECT": + return "ไม่อนุมัติ"; + case "DELETE": + return "ยกเลิก"; + } + } - /** ประเภทการลา */ - const typeOptions = ref([]) - const typeId = ref("") - const typeOptionsMain = ref([]) - const typeOptionsAdd = ref([]) - /** รายการข้อมูลประเภทใบลา */ - const options = ref([]) - /** - * function เรียกข้อมูลประเภทการลา - * @param data ประเภทการลา - */ - async function fetchLeaveType(data: TypeLeave[]) { - typeOptionsMain.value = [ - { - id: "00000000-0000-0000-0000-000000000000", - name: "ทั้งหมด", - code: "LV-000", - }, - ] + /** ประเภทการลา */ + const typeOptions = ref([]); + const typeId = ref(""); + const typeOptionsMain = ref([]); + const typeOptionsAdd = ref([]); + /** รายการข้อมูลประเภทใบลา */ + const options = ref([]); + /** + * function เรียกข้อมูลประเภทการลา + * @param data ประเภทการลา + */ + async function fetchLeaveType(data: TypeLeave[]) { + typeOptionsMain.value = [ + { + id: "00000000-0000-0000-0000-000000000000", + name: "ทั้งหมด", + code: "LV-000", + }, + ]; - const optionType = data.map((e: TypeLeave) => ({ - id: e.id, - name: e.name, - code: e.code, - })) + const optionType = data.map((e: TypeLeave) => ({ + id: e.id, + name: e.name, + code: e.code, + })); - typeOptionsMain.value.push(...optionType) - typeOptions.value = typeOptionsMain.value + typeOptionsMain.value.push(...optionType); + typeOptions.value = typeOptionsMain.value; - typeOptionsAdd.value = [] - typeOptionsAdd.value.push(...optionType) - options.value = typeOptionsAdd.value - } + typeOptionsAdd.value = []; + typeOptionsAdd.value.push(...optionType); + options.value = typeOptionsAdd.value; + } - /** สถานะของการลา */ - const statusOptionsMain = ref([ - { id: "ALL", name: "ทั้งหมด" }, - { id: "DRAFT", name: "แบบร่าง" }, - { id: "NEW", name: "ใหม่" }, - { id: "PENDING", name: "กำลังดำเนินการ" }, - { id: "APPROVE", name: "อนุมัติ " }, - { id: "REJECT", name: "ไม่อนุมัติ" }, - { id: "DELETE", name: "ยกเลิก" }, - ]) - const statusOptions = ref(statusOptionsMain.value) + /** สถานะของการลา */ + const statusOptionsMain = ref([ + { id: "ALL", name: "ทั้งหมด" }, + { id: "DRAFT", name: "แบบร่าง" }, + { id: "NEW", name: "ใหม่" }, + { id: "PENDING", name: "กำลังดำเนินการ" }, + { id: "APPROVE", name: "อนุมัติ " }, + { id: "REJECT", name: "ไม่อนุมัติ" }, + { id: "DELETE", name: "ยกเลิก" }, + ]); + const statusOptions = ref(statusOptionsMain.value); - /** - * function ต้นหาข้อมูลของ Option - * @param val ค่าที่ต้องการฟิลเตอร์ - * @param update อัพเดทค่า - * @param refData ดาต้าที่ต้องการฟิลเตอร์ - */ - function filterOption(val: any, update: Function, refData: string) { - switch (refData) { - case "LeaveTypeOption": - type.value = '' - update(() => { - typeOptions.value = typeOptionsMain.value.filter((v: any) => v.name.indexOf(val) > -1) - }) - break - case "LeaveStatusOption": - status.value = '' - update(() => { - statusOptions.value = statusOptionsMain.value.filter((v: any) => v.name.indexOf(val) > -1) - }) - break - default: - break - } - } + /** + * function ต้นหาข้อมูลของ Option + * @param val ค่าที่ต้องการฟิลเตอร์ + * @param update อัพเดทค่า + * @param refData ดาต้าที่ต้องการฟิลเตอร์ + */ + function filterOption(val: any, update: Function, refData: string) { + switch (refData) { + case "LeaveTypeOption": + type.value = ""; + update(() => { + typeOptions.value = typeOptionsMain.value.filter( + (v: any) => v.name.indexOf(val) > -1 + ); + }); + break; + case "LeaveStatusOption": + status.value = ""; + update(() => { + statusOptions.value = statusOptionsMain.value.filter( + (v: any) => v.name.indexOf(val) > -1 + ); + }); + break; + default: + break; + } + } - /** รายการประเภทการลาของ ลาไปศึกษา ฝึกอบรม ปฎิบัติการวิจัย หรือดูงาน*/ - const optionsSpecific = ref([ - { id: "s1", name: "ลาไปศึกษาต่อ", code: "s1" }, - { id: "s2", name: "ลาฝึกอบรม/ปฎิบัติการวิจัย/ดูงาน", code: "s2" }, - ]) + /** รายการประเภทการลาของ ลาไปศึกษา ฝึกอบรม ปฎิบัติการวิจัย หรือดูงาน*/ + const optionsSpecific = ref([ + { id: "s1", name: "ลาไปศึกษาต่อ", code: "s1" }, + { id: "s2", name: "ลาฝึกอบรม/ปฎิบัติการวิจัย/ดูงาน", code: "s2" }, + ]); - /** รายการประเภทการลาของ ลาอุปสมบทหรือลาประกอบพิธีฮัจญ์*/ - const optionsOrdination = ref([ - { id: "b1", name: "ลาอุปสมบท", code: "b1" }, - { id: "b2", name: "ลาประกอบพิธีฮัจญ์", code: "b2" }, - ]) + /** รายการประเภทการลาของ ลาอุปสมบทหรือลาประกอบพิธีฮัจญ์*/ + const optionsOrdination = ref([ + { id: "b1", name: "ลาอุปสมบท", code: "b1" }, + { id: "b2", name: "ลาประกอบพิธีฮัจญ์", code: "b2" }, + ]); - /** data table filter & column ของรายการลา */ - const visibleColumns = ref(["no", "leaveTypeName", "dateSendLeave", "status", "dateLeave"]) + /** data table filter & column ของรายการลา */ + const visibleColumns = ref([ + "no", + "leaveTypeName", + "dateSendLeave", + "status", + "dateLeave", + ]); - const columns = ref([ - { - name: "no", - align: "left", - label: "ลำดับ", - sortable: true, - field: "no", - headerStyle: "font-size: 14px", - style: "font-size: 14px; width:5%;", - }, - { - name: "leaveTypeName", - align: "left", - label: "ประเภทการลา", - sortable: true, - field: "leaveTypeName", - headerStyle: "font-size: 14px", - style: "font-size: 14px; width:15%;", - }, - { - name: "dateLeave", - align: "left", - label: "วันที่ลา", - sortable: true, - field: "dateLeave", - headerStyle: "font-size: 14px", - style: "font-size: 14px; width:15%;", - }, - { - name: "dateSendLeave", - align: "left", - label: "วันที่ยื่นใบลา", - sortable: true, - field: "dateSendLeave", - headerStyle: "font-size: 14px", - style: "font-size: 14px; width:15%;", - }, + const columns = ref([ + { + name: "no", + align: "left", + label: "ลำดับ", + sortable: true, + field: "no", + headerStyle: "font-size: 14px", + style: "font-size: 14px; width:5%;", + }, + { + name: "leaveTypeName", + align: "left", + label: "ประเภทการลา", + sortable: true, + field: "leaveTypeName", + headerStyle: "font-size: 14px", + style: "font-size: 14px; width:15%;", + }, + { + name: "dateLeave", + align: "left", + label: "วันที่ลา", + sortable: true, + field: "dateLeave", + headerStyle: "font-size: 14px", + style: "font-size: 14px; width:15%;", + }, + { + name: "dateSendLeave", + align: "left", + label: "วันที่ยื่นใบลา", + sortable: true, + field: "dateSendLeave", + headerStyle: "font-size: 14px", + style: "font-size: 14px; width:15%;", + }, - { - name: "status", - align: "left", - label: "สถานะ", - sortable: true, - field: "status", - headerStyle: "font-size: 14px", - style: "font-size: 14px; width:10%;", - }, - ]) + { + name: "status", + align: "left", + label: "สถานะ", + sortable: true, + field: "status", + headerStyle: "font-size: 14px", + style: "font-size: 14px; width:10%;", + }, + ]); - /** - *ฟังก์ชั่นแปลงประเภทแบบฟอร์มลา - * @param item ประเภทแบบฟอร์ม - * @param subitem ประเภทแบบฟอร์มย่อย - */ - function typeConvert(item: string, subitem: any) { - // console.log('first',item) - // if (item !== "LV-006" && item !== "LV-008") { - typeLeave.value = convertSubtitle(item) - // } else if (item === "LV-006") { - // typeLeave.value = convertSubtitleInfo(subitem); - // } else if (item === "LV-008") { - // typeLeave.value = convertSubtitleInfo2(subitem); - // } - typeId.value = convertId(item) - } + /** + *ฟังก์ชั่นแปลงประเภทแบบฟอร์มลา + * @param item ประเภทแบบฟอร์ม + * @param subitem ประเภทแบบฟอร์มย่อย + */ + function typeConvert(item: string, subitem: any) { + // console.log('first',item) + // if (item !== "LV-006" && item !== "LV-008") { + typeLeave.value = convertSubtitle(item); + // } else if (item === "LV-006") { + // typeLeave.value = convertSubtitleInfo(subitem); + // } else if (item === "LV-008") { + // typeLeave.value = convertSubtitleInfo2(subitem); + // } + typeId.value = convertId(item); + } - /** - *ฟังก์ชั่นแปลงประเภทแบบฟอร์มลา ลาอุปสมบท/ลาประกอบพิธีฮัจญ์ - * @param val ค่า string - * @returns ส่งค่าที่แปลงแล้ว - */ - function convertSubtitle(val: string) { - return options.value.find(x => x.code == val)?.name - } + /** + *ฟังก์ชั่นแปลงประเภทแบบฟอร์มลา ลาอุปสมบท/ลาประกอบพิธีฮัจญ์ + * @param val ค่า string + * @returns ส่งค่าที่แปลงแล้ว + */ + function convertSubtitle(val: string) { + return options.value.find((x) => x.code == val)?.name; + } - /** - *ฟังก์ชั่นแปลงประเภทแบบฟอร์มลา ลาอุปสมบท/ลาประกอบพิธีฮัจญ์ ย่อย - * @param val ค่า string - * @returns ส่งค่าที่แปลงแล้ว - */ - function convertSubtitleInfo(val: string) { - return optionsOrdination.value.find(x => x.id == val)?.name - } + /** + *ฟังก์ชั่นแปลงประเภทแบบฟอร์มลา ลาอุปสมบท/ลาประกอบพิธีฮัจญ์ ย่อย + * @param val ค่า string + * @returns ส่งค่าที่แปลงแล้ว + */ + function convertSubtitleInfo(val: string) { + return optionsOrdination.value.find((x) => x.id == val)?.name; + } - /** - *ฟังก์ชั่นแปลง ลาไปศึกษา ฝึกอบรม ปฎิบัติการวิจัย หรือดูงาน - * @param val ค่า string - * @returns ส่งค่าที่แปลงแล้ว - */ - function convertSubtitleInfo2(val: string) { - return optionsSpecific.value.find(x => x.id == val)?.name - } + /** + *ฟังก์ชั่นแปลง ลาไปศึกษา ฝึกอบรม ปฎิบัติการวิจัย หรือดูงาน + * @param val ค่า string + * @returns ส่งค่าที่แปลงแล้ว + */ + function convertSubtitleInfo2(val: string) { + return optionsSpecific.value.find((x) => x.id == val)?.name; + } - /** - *ฟังก์ชั่นหา id จาก api - * @param val ค่า string - * @returns ส่งค่าที่แปลงแล้ว - */ - function convertId(val: string) { - return options.value.find(x => x.code == val)?.id - } + /** + *ฟังก์ชั่นหา id จาก api + * @param val ค่า string + * @returns ส่งค่าที่แปลงแล้ว + */ + function convertId(val: string) { + return options.value.find((x) => x.code == val)?.id; + } - /** - *ตัวแปร profile ที่จะส่งออก - */ - const dateSendLeave = ref() //วันที่ยื่นใบลา - const leaveTypeName = ref("") //Name ประเภทการลา - const dear = ref("") //เรียน - const fullName = ref("") //คำนำหน้า ชื่อ นามสกุล ผู้ยื่นขอ - const positionName = ref("") //ตำแหน่งผู้ยื่นขอ - const positionLevelName = ref("") //ระดับผู้ยื่นขอ - const organizationName = ref("") //สังกัดผู้ยื่นขอ - const leaveLimit = ref(0) //โควต้าลา(แต่ละประเภท)หน่วยเป็นวัน(ภายในปีนั้น) - const leaveTotal = ref(0) //ลาไปแล้ว(แต่ละประเภท)หน่วยเป็นวัน(ภายในปีนั้น) - const leaveRemain = ref(0) //คงเหลือโควต้า(แต่ละประเภท)หน่วยเป็นวัน(ภายในปีนั้น) - const restDayTotalOld = ref(0) //จำนวนวันลาพักผ่อนสะสม จากปีที่ผ่านมา - const birthDate = ref() //วันเกิด - const dateAppoint = ref() //วันที่เข้ารับราชการ - const salary = ref(0) //เงินเดือนปัจจุบัน - const salaryText = ref("") //เงินเดือนปัจจุบัน(ภาษาไทย) - const leaveLast = ref() - const restDayCurrentTotal = ref(0) + /** + *ตัวแปร profile ที่จะส่งออก + */ + const dateSendLeave = ref(); //วันที่ยื่นใบลา + const leaveTypeName = ref(""); //Name ประเภทการลา + const dear = ref(""); //เรียน + const fullName = ref(""); //คำนำหน้า ชื่อ นามสกุล ผู้ยื่นขอ + const positionName = ref(""); //ตำแหน่งผู้ยื่นขอ + const positionLevelName = ref(""); //ระดับผู้ยื่นขอ + const organizationName = ref(""); //สังกัดผู้ยื่นขอ + const leaveLimit = ref(0); //โควต้าลา(แต่ละประเภท)หน่วยเป็นวัน(ภายในปีนั้น) + const leaveTotal = ref(0); //ลาไปแล้ว(แต่ละประเภท)หน่วยเป็นวัน(ภายในปีนั้น) + const leaveRemain = ref(0); //คงเหลือโควต้า(แต่ละประเภท)หน่วยเป็นวัน(ภายในปีนั้น) + const restDayTotalOld = ref(0); //จำนวนวันลาพักผ่อนสะสม จากปีที่ผ่านมา + const birthDate = ref(); //วันเกิด + const dateAppoint = ref(); //วันที่เข้ารับราชการ + const salary = ref(0); //เงินเดือนปัจจุบัน + const salaryText = ref(""); //เงินเดือนปัจจุบัน(ภาษาไทย) + const leaveLast = ref(); + const restDayCurrentTotal = ref(0); - //ดึงข้อมูล profile จาก API - async function fetchProfile() { - await http - .post(config.API.leaveProfile(), { type: typeId.value }) - .then((res: any) => { - const data = res.data.result - dateSendLeave.value = data.dateSendLeave - leaveTypeName.value = data.leaveTypeName - dear.value = data.dear - fullName.value = data.fullName - positionName.value = data.positionName - positionLevelName.value = data.positionLevelName - organizationName.value = data.organizationName - leaveLimit.value = data.leaveLimit - leaveTotal.value = data.leaveTotal - leaveRemain.value = data.leaveRemain - restDayTotalOld.value = data.restDayTotalOld - birthDate.value = data.birthDate - dateAppoint.value = data.dateAppoint - salary.value = data.salary ? data.salary.toLocaleString("th-TH") : "" - salaryText.value = data.salaryText - leaveLast.value = data.leaveLast != "0001-01-01T00:00:00" ? date2Thai(data.leaveLast) : "-" - restDayCurrentTotal.value = Number(data.leaveLimit) - Number(data.restDayTotalOld) - }) - .catch((e: any) => { - messageError($q, e) - }) - } + //ดึงข้อมูล profile จาก API + async function fetchProfile() { + await http + .post(config.API.leaveProfile(), { type: typeId.value }) + .then((res: any) => { + const data = res.data.result; + dateSendLeave.value = data.dateSendLeave; + leaveTypeName.value = data.leaveTypeName; + dear.value = data.dear; + fullName.value = data.fullName; + positionName.value = data.positionName; + positionLevelName.value = data.positionLevelName; + organizationName.value = data.organizationName; + leaveLimit.value = data.leaveLimit; + leaveTotal.value = data.leaveTotal; + leaveRemain.value = data.leaveRemain; + restDayTotalOld.value = data.restDayTotalOld; + birthDate.value = data.birthDate; + dateAppoint.value = data.dateAppoint; + salary.value = data.salary ? data.salary.toLocaleString("th-TH") : ""; + salaryText.value = data.salaryText; + leaveLast.value = + data.leaveLast != "0001-01-01T00:00:00" + ? date2Thai(data.leaveLast) + : "-"; + restDayCurrentTotal.value = + Number(data.leaveLimit) - Number(data.restDayTotalOld); + }) + .catch((e: any) => { + messageError($q, e); + }); + } - async function fetchProfileOld(data: any) { - await http - .post(config.API.leaveProfile(), { type: typeId.value }) - .then((res: any) => { - const data = res.data.result - leaveLimit.value = data.leaveLimit - leaveTotal.value = data.leaveTotal - leaveRemain.value = data.leaveRemain - restDayTotalOld.value = data.restDayTotalOld //จำนวนวันลาพักผ่อนสะสม จากปีที่ผ่านมา - birthDate.value = data.birthDate // วันเกิด - dateAppoint.value = data.dateAppoint // วันที่รับราชการ - salary.value = data.salary ? data.salary.toLocaleString("th-TH") : "" - salaryText.value = data.salaryText - restDayCurrentTotal.value = Number(data.leaveLimit) - Number(data.restDayTotalOld) - }) - .catch((e: any) => { - messageError($q, e) - }) + async function fetchProfileOld(data: any) { + await http + .post(config.API.leaveProfile(), { type: typeId.value }) + .then((res: any) => { + const data = res.data.result; + leaveLimit.value = data.leaveLimit; + leaveTotal.value = data.leaveTotal; + leaveRemain.value = data.leaveRemain; + restDayTotalOld.value = data.restDayTotalOld; //จำนวนวันลาพักผ่อนสะสม จากปีที่ผ่านมา + birthDate.value = data.birthDate; // วันเกิด + dateAppoint.value = data.dateAppoint; // วันที่รับราชการ + salary.value = data.salary ? data.salary.toLocaleString("th-TH") : ""; + salaryText.value = data.salaryText; + restDayCurrentTotal.value = + Number(data.leaveLimit) - Number(data.restDayTotalOld); + }) + .catch((e: any) => { + messageError($q, e); + }); - dateSendLeave.value = data.dateSendLeave - typeLeave.value = data.leaveTypeName - dear.value = data.dear - fullName.value = data.fullName - positionName.value = data.positionName - positionLevelName.value = data.positionLevelName - organizationName.value = data.organizationName - leaveLast.value = data.leaveLast != "0001-01-01T00:00:00" ? date2Thai(data.leaveLast) : "-" - restDayCurrentTotal.value = data.restDayCurrentTotal - } + dateSendLeave.value = data.dateSendLeave; + typeLeave.value = data.leaveTypeName; + dear.value = data.dear; + fullName.value = data.fullName; + positionName.value = data.positionName; + positionLevelName.value = data.positionLevelName; + organizationName.value = data.organizationName; + leaveLast.value = + data.leaveLast != "0001-01-01T00:00:00" ? date2Thai(data.leaveLast) : "-"; + restDayCurrentTotal.value = data.restDayCurrentTotal; + } - function resetForm2() { - dateSendLeave.value = undefined - leaveTypeName.value = "" - dear.value = "" - fullName.value = "" - positionName.value = "" - positionLevelName.value = "" - organizationName.value = "" - leaveLimit.value = 0 - leaveTotal.value = 0 - leaveRemain.value = 0 - restDayTotalOld.value = 0 - birthDate.value = undefined - dateAppoint.value = undefined - salary.value = 0 - salaryText.value = "" - leaveLast.value = undefined - restDayCurrentTotal.value = 0 - } + function resetForm2() { + dateSendLeave.value = undefined; + leaveTypeName.value = ""; + dear.value = ""; + fullName.value = ""; + positionName.value = ""; + positionLevelName.value = ""; + organizationName.value = ""; + leaveLimit.value = 0; + leaveTotal.value = 0; + leaveRemain.value = 0; + restDayTotalOld.value = 0; + birthDate.value = undefined; + dateAppoint.value = undefined; + salary.value = 0; + salaryText.value = ""; + leaveLast.value = undefined; + restDayCurrentTotal.value = 0; + } - return { - tabValue, - typeOptions, - optionsSpecific, - statusOptions, + return { + tabValue, + typeOptions, + optionsSpecific, + statusOptions, - visibleColumns, - columns, - rows, - LeaveType, - LeaveStatus, + visibleColumns, + columns, + rows, + LeaveType, + LeaveStatus, - fiscalYearyear, - options, - optionsOrdination, - typeConvert, - typeLeave, - typeId, + fiscalYearyear, + options, + optionsOrdination, + typeConvert, + typeLeave, + typeId, - fetchListLeave, - fetchLeaveType, - filterOption, - fetchProfile, + fetchListLeave, + fetchLeaveType, + filterOption, + fetchProfile, - //ส่งออกตัวแปร profileที่ได้จาก Api - dateSendLeave, - leaveTypeName, - dear, - fullName, - positionName, - positionLevelName, - organizationName, - leaveLimit, //โควต้าลา(แต่ละประเภท)หน่วยเป็นวัน(ภายในปีนั้น) - leaveTotal, //ลาไปแล้ว(แต่ละประเภท)หน่วยเป็นวัน(ภายในปีนั้น) - leaveRemain, //คงเหลือโควต้า(แต่ละประเภท)หน่วยเป็นวัน(ภายในปีนั้น) - restDayTotalOld, - birthDate, - dateAppoint, - salary, - salaryText, - leaveLast, - restDayCurrentTotal, - convertStatud, - resetForm2, - fetchProfileOld, - type, - typeOptionsMain, - status, - statusOptionsMain - } -}) + //ส่งออกตัวแปร profileที่ได้จาก Api + dateSendLeave, + leaveTypeName, + dear, + fullName, + positionName, + positionLevelName, + organizationName, + leaveLimit, //โควต้าลา(แต่ละประเภท)หน่วยเป็นวัน(ภายในปีนั้น) + leaveTotal, //ลาไปแล้ว(แต่ละประเภท)หน่วยเป็นวัน(ภายในปีนั้น) + leaveRemain, //คงเหลือโควต้า(แต่ละประเภท)หน่วยเป็นวัน(ภายในปีนั้น) + restDayTotalOld, + birthDate, + dateAppoint, + salary, + salaryText, + leaveLast, + restDayCurrentTotal, + convertStatud, + resetForm2, + fetchProfileOld, + type, + typeOptionsMain, + status, + statusOptionsMain, + }; +}); diff --git a/src/modules/05_leave/views/AddPage.vue b/src/modules/05_leave/views/AddPage.vue index 683e389..d54c01c 100644 --- a/src/modules/05_leave/views/AddPage.vue +++ b/src/modules/05_leave/views/AddPage.vue @@ -158,7 +158,8 @@ onMounted(async () => { ไม่มีข้อมูล - +
diff --git a/src/modules/05_leave/views/EditPage.vue b/src/modules/05_leave/views/EditPage.vue index ba311f0..1974b71 100644 --- a/src/modules/05_leave/views/EditPage.vue +++ b/src/modules/05_leave/views/EditPage.vue @@ -35,79 +35,79 @@ const dataStore = useLeaveStore(); const $q = useQuasar(); const mixin = useCounterMixin(); const { - messageError, - showLoader, - hideLoader, - dialogConfirm, - success, - date2Thai, - dateToISO, - dialogRemove, + messageError, + showLoader, + hideLoader, + dialogConfirm, + success, + date2Thai, + dateToISO, + dialogRemove, } = mixin; const titleName = ref(""); /** Form รายละเอียดข้อมูล*/ const formData = reactive({ - id: "", //Id การยื่นขอลา - leaveTypeName: "", // Name ประเภทการลา - leaveTypeId: "", //Id ประเภทการลา - fullname: "", //คำนำหน้า ชื่อ นามสกุล คนขอลา - dateSendLeave: null, // วันที่ยืนใบลา - status: "", //สถานะการของลา - leaveDateStart: null, //วันเริ่มการลา - leaveDateEnd: null, //วันสิ้นสุดการลา - leaveCount: 0, //จำนวนวันลา - leaveWrote: "", //เขียนที่ - leaveAddress: "", //สถานที่ติดต่อขณะลา - leaveNumber: "", //หมายเลขที่ติดต่อขณะลา - leaveDetail: "", //รายละเอียดการลา - leaveDocument: [], //อัปโหลดเอกสารประกอบรายละเอียด - leaveDraftDocument: "", //อัปโหลดแบบฟอร์มการลา - leaveLastStart: null, //ลาครั้งสุดท้ายในประเภทนั้น ๆ เริ่มเมื่อวันที่(ลาป่วย ลาคลอดบุตร และลากิจส่วนตัว)(Auto) - leaveLastEnd: null, //ลาครั้งสุดท้ายในประเภทนั้น ๆ สิ้นสุดเมื่อวันที่(ลาป่วย ลาคลอดบุตร และลากิจส่วนตัว)(Auto) - leaveTotal: 0, //จำนวนวันที่ลา(Auto) - leavebirthDate: null, //วันเดือนปีเกิด(Auto) - leavegovernmentDate: null, //วันที่เข้ารับราชการ(Auto) - leaveSalary: 0, //เงินเดือนปัจจุบัน(Auto) - leaveSalaryText: "", //เงินเดือนปัจจุบัน(เขียนเป็นคำอ่าน) - leaveTypeDay: "", //ประเภทการลาในวันนั้นเช่น - wifeDayName: "", //ชื่อภรรยา(ลาไปช่วยเหลือภริยาที่คลอดบุตร) - wifeDayDateBorn: null, //วันที่คลอด(ลาไปช่วยเหลือภริยาที่คลอดบุตร) - restDayOldTotal: 0, //จำนวนวันลาพักผ่อนสะสม จากปีที่ผ่านมา(ลาพักผ่อน)(Auto) - restDayCurrentTotal: 0, //จำนวนวันลาพักผ่อนประจำปีปัจจุบัน(ลาพักผ่อน)(Auto) - ordainDayStatus: "", //เคย/ไม่เคยบวช (ให้เลือก) (ลาอุปสมบท) - ordainDayLocationName: "", //สถานที่บวช ชื่อวัด(ลาอุปสมบท) - ordainDayLocationAddress: "", //สถานที่บวช ที่อยู่(ลาอุปสมบท) - ordainDayLocationNumber: "", //สถานที่บวช หมายเลขโทรศัพท์(ลาอุปสมบท) - ordainDayOrdination: null, //สถานที่บวช วันอุปสมบท(ลาอุปสมบท) - ordainDayBuddhistLentName: "", //สถานที่จำพรรษา ชื่อวัด(ลาอุปสมบท) - ordainDayBuddhistLentAddress: "", //สถานที่จำพรรษา ที่อยู่(ลาอุปสมบท) - hajjDayStatus: "", //เคย/ไม่เคยไปประกอบพิธีฮัจญ์ (ให้เลือก) (ลาประกอบพิธีฮัจญ์) - absentDaySummon: "", //ได้รับหมายเรียกของ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล) - absentDayLocation: "", //ที่ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล) - absentDayRegistorDate: null, //ลงวันที่ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล) - absentDayGetIn: "", //ให้เข้ารับการ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล) - absentDayAt: "", //ณ ที่ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล) - studyDaySubject: "", //กรณีลาไปศึกษาต่อ ศึกษาวิชา (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน) - studyDayDegreeLevel: "", //กรณีลาไปศึกษาต่อ ขั้นปริญญา (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน) - studyDayUniversityName: "", //กรณีลาไปศึกษาต่อ ชื่อสถานศึกษา (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน) - studyDayTrainingSubject: "", //กรณีลาไปฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน ด้าน/หลักสูตร (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน) - studyDayTrainingName: "", //กรณีลาไปฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน ณ สถานที่ (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน) - studyDayCountry: "", //ประเทศ (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน) - studyDayScholarship: "", //ด้วยทุน (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน) - coupleDayName: "", //ชื่อคู่สมรส (ลาติดตามคู่สมรส) - coupleDayPosition: "", //ตำแหน่งคู่สมรส (ลาติดตามคู่สมรส) - coupleDayLevel: "", //ระดับคู่สมรส (ลาติดตามคู่สมรส) - coupleDayLevelCountry: "", //ไปปฏิบัติราชการ ณ ประเทศ (ลาติดตามคู่สมรส) - coupleDayCountryHistory: "", //ประวัติ ประเทศ (ลาติดตามคู่สมรส) - coupleDayTotalHistory: "", //ประวัติ เป็นเวลา กี่ปี กี่เดือน กี่วัน (ลาติดตามคู่สมรส) - coupleDayStartDateHistory: null, //ประวัติ ตั้งแต่วันที่ (ลาติดตามคู่สมรส) - coupleDayEndDateHistory: null, //ประวัติ ถึงวันที่ (ลาติดตามคู่สมรส) - coupleDaySumTotalHistory: "", //ประวัติ ในกรณีลาติดต่อกับครั้งก่อน รวมทั้งนี้ด้วย เป็นเวลา กี่ปี กี่เดือน กี่วัน (ลาติดตามคู่สมรส) - approveStep: "", - dear: "", - leaveLast: "", - leaveRange: "", + id: "", //Id การยื่นขอลา + leaveTypeName: "", // Name ประเภทการลา + leaveTypeId: "", //Id ประเภทการลา + fullname: "", //คำนำหน้า ชื่อ นามสกุล คนขอลา + dateSendLeave: null, // วันที่ยืนใบลา + status: "", //สถานะการของลา + leaveDateStart: null, //วันเริ่มการลา + leaveDateEnd: null, //วันสิ้นสุดการลา + leaveCount: 0, //จำนวนวันลา + leaveWrote: "", //เขียนที่ + leaveAddress: "", //สถานที่ติดต่อขณะลา + leaveNumber: "", //หมายเลขที่ติดต่อขณะลา + leaveDetail: "", //รายละเอียดการลา + leaveDocument: [], //อัปโหลดเอกสารประกอบรายละเอียด + leaveDraftDocument: "", //อัปโหลดแบบฟอร์มการลา + leaveLastStart: null, //ลาครั้งสุดท้ายในประเภทนั้น ๆ เริ่มเมื่อวันที่(ลาป่วย ลาคลอดบุตร และลากิจส่วนตัว)(Auto) + leaveLastEnd: null, //ลาครั้งสุดท้ายในประเภทนั้น ๆ สิ้นสุดเมื่อวันที่(ลาป่วย ลาคลอดบุตร และลากิจส่วนตัว)(Auto) + leaveTotal: 0, //จำนวนวันที่ลา(Auto) + leavebirthDate: null, //วันเดือนปีเกิด(Auto) + leavegovernmentDate: null, //วันที่เข้ารับราชการ(Auto) + leaveSalary: 0, //เงินเดือนปัจจุบัน(Auto) + leaveSalaryText: "", //เงินเดือนปัจจุบัน(เขียนเป็นคำอ่าน) + leaveTypeDay: "", //ประเภทการลาในวันนั้นเช่น + wifeDayName: "", //ชื่อภรรยา(ลาไปช่วยเหลือภริยาที่คลอดบุตร) + wifeDayDateBorn: null, //วันที่คลอด(ลาไปช่วยเหลือภริยาที่คลอดบุตร) + restDayOldTotal: 0, //จำนวนวันลาพักผ่อนสะสม จากปีที่ผ่านมา(ลาพักผ่อน)(Auto) + restDayCurrentTotal: 0, //จำนวนวันลาพักผ่อนประจำปีปัจจุบัน(ลาพักผ่อน)(Auto) + ordainDayStatus: "", //เคย/ไม่เคยบวช (ให้เลือก) (ลาอุปสมบท) + ordainDayLocationName: "", //สถานที่บวช ชื่อวัด(ลาอุปสมบท) + ordainDayLocationAddress: "", //สถานที่บวช ที่อยู่(ลาอุปสมบท) + ordainDayLocationNumber: "", //สถานที่บวช หมายเลขโทรศัพท์(ลาอุปสมบท) + ordainDayOrdination: null, //สถานที่บวช วันอุปสมบท(ลาอุปสมบท) + ordainDayBuddhistLentName: "", //สถานที่จำพรรษา ชื่อวัด(ลาอุปสมบท) + ordainDayBuddhistLentAddress: "", //สถานที่จำพรรษา ที่อยู่(ลาอุปสมบท) + hajjDayStatus: "", //เคย/ไม่เคยไปประกอบพิธีฮัจญ์ (ให้เลือก) (ลาประกอบพิธีฮัจญ์) + absentDaySummon: "", //ได้รับหมายเรียกของ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล) + absentDayLocation: "", //ที่ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล) + absentDayRegistorDate: null, //ลงวันที่ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล) + absentDayGetIn: "", //ให้เข้ารับการ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล) + absentDayAt: "", //ณ ที่ (ลาเข้ารับการตรวจเลือกหรือเข้ารับการเตรียมพล) + studyDaySubject: "", //กรณีลาไปศึกษาต่อ ศึกษาวิชา (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน) + studyDayDegreeLevel: "", //กรณีลาไปศึกษาต่อ ขั้นปริญญา (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน) + studyDayUniversityName: "", //กรณีลาไปศึกษาต่อ ชื่อสถานศึกษา (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน) + studyDayTrainingSubject: "", //กรณีลาไปฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน ด้าน/หลักสูตร (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน) + studyDayTrainingName: "", //กรณีลาไปฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน ณ สถานที่ (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน) + studyDayCountry: "", //ประเทศ (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน) + studyDayScholarship: "", //ด้วยทุน (ลาไปศึกษา ฝึกอบรม ปฏิบัติการวิจัย หรือดูงาน) + coupleDayName: "", //ชื่อคู่สมรส (ลาติดตามคู่สมรส) + coupleDayPosition: "", //ตำแหน่งคู่สมรส (ลาติดตามคู่สมรส) + coupleDayLevel: "", //ระดับคู่สมรส (ลาติดตามคู่สมรส) + coupleDayLevelCountry: "", //ไปปฏิบัติราชการ ณ ประเทศ (ลาติดตามคู่สมรส) + coupleDayCountryHistory: "", //ประวัติ ประเทศ (ลาติดตามคู่สมรส) + coupleDayTotalHistory: "", //ประวัติ เป็นเวลา กี่ปี กี่เดือน กี่วัน (ลาติดตามคู่สมรส) + coupleDayStartDateHistory: null, //ประวัติ ตั้งแต่วันที่ (ลาติดตามคู่สมรส) + coupleDayEndDateHistory: null, //ประวัติ ถึงวันที่ (ลาติดตามคู่สมรส) + coupleDaySumTotalHistory: "", //ประวัติ ในกรณีลาติดต่อกับครั้งก่อน รวมทั้งนี้ด้วย เป็นเวลา กี่ปี กี่เดือน กี่วัน (ลาติดตามคู่สมรส) + approveStep: "", + dear: "", + leaveLast: "", + leaveRange: "", }); /** @@ -115,117 +115,119 @@ const formData = reactive({ * @param id การลา */ async function fetchDataDetail(id: string) { - showLoader(); - await http - .get(config.API.leaveUserId(id), {}) - .then(async (res) => { - const data = await res.data.result; + showLoader(); + await http + .get(config.API.leaveUserId(id), {}) + .then(async (res) => { + const data = await res.data.result; - dataStore.typeId = data.leaveTypeId; + dataStore.typeId = data.leaveTypeId; - titleName.value = data.fullName ?? "-"; - formData.id = data.id ?? "-"; - formData.leaveTypeName = data.leaveTypeName ?? "-"; - formData.leaveTypeId = data.leaveTypeId ?? "-"; - formData.fullname = data.fullName ?? "-"; - formData.dateSendLeave = - data.dateSendLeave && date2Thai(data.dateSendLeave); - formData.status = data.status ?? "-"; - formData.leaveStartDate = data.leaveStartDate; - formData.leaveEndDate = data.leaveEndDate; - formData.leaveCount = data.leaveTotal ?? "-"; - formData.leaveWrote = data.leaveWrote ?? "-"; - formData.leaveAddress = data.leaveAddress ?? "-"; - formData.leaveNumber = data.leaveNumber ?? "-"; - formData.leaveDetail = data.leaveDetail ?? "-"; - formData.leaveDocument = data.leaveDocument; - formData.leaveDraftDocument = data.leaveDraftDocument; - formData.leaveLastStart = - data.leaveLastStart && date2Thai(data.leaveLastStart); - formData.leaveLastEnd = - data.leaveLastStart && date2Thai(data.leaveLastEnd); - formData.leaveTotal = data.leaveTotal; - formData.leavebirthDate = - data.leaveBirthDate && date2Thai(data.leaveBirthDate); - formData.leavegovernmentDate = - data.leaveGovernmentDate && date2Thai(data.leaveGovernmentDate); - formData.leaveSalary = data.leaveSalary ?? "-"; - formData.leaveSalaryText = data.leaveSalaryText ?? "-"; - formData.wifeDayName = data.wifeDayName ?? "-"; - formData.wifeDayDateBorn = data.wifeDayDateBorn ? data.wifeDayDateBorn:null; - formData.restDayOldTotal = data.restDayOldTotal ?? "-"; - formData.restDayCurrentTotal = data.restDayCurrentTotal ?? "-"; - formData.ordainDayStatus = data.ordainDayStatus; - formData.ordainDayLocationName = data.ordainDayLocationName ?? "-"; - formData.ordainDayLocationAddress = data.ordainDayLocationAddress ?? "-"; - formData.ordainDayLocationNumber = data.ordainDayLocationNumber ?? "-"; - formData.ordainDayOrdination = data.ordainDayOrdination; - formData.ordainDayBuddhistLentName = - data.ordainDayBuddhistLentName ?? "-"; - formData.ordainDayBuddhistLentAddress = - data.ordainDayBuddhistLentAddress ?? "-"; - formData.hajjDayStatus = data.hajjDayStatus; - formData.absentDaySummon = data.absentDaySummon ?? "-"; - formData.absentDayLocation = data.absentDayLocation ?? "-"; - formData.absentDayRegistorDate = data.absentDayRegistorDate; - formData.absentDayGetIn = data.absentDayGetIn ?? "-"; - formData.absentDayAt = data.absentDayAt ?? "-"; - formData.studyDaySubject = data.studyDaySubject ?? "-"; - formData.studyDayDegreeLevel = data.studyDayDegreeLevel ?? "-"; - formData.studyDayUniversityName = data.studyDayUniversityName ?? "-"; - formData.studyDayTrainingSubject = - data.studyDayTrainingSubject ?? "-" ?? "-"; - formData.studyDayTrainingName = data.studyDayTrainingName ?? "-"; - formData.studyDayCountry = data.studyDayCountry ?? "-"; - formData.studyDayScholarship = data.studyDayScholarship ?? "-"; - formData.coupleDayName = data.coupleDayName ?? "-"; - formData.coupleDayPosition = data.coupleDayPosition ?? "-"; - formData.coupleDayLevel = data.coupleDayLevel ?? "-"; - formData.coupleDayLevelCountry = data.coupleDayLevelCountry ?? "-"; - formData.coupleDayCountryHistory = data.coupleDayCountryHistory ?? "-"; - formData.coupleDayTotalHistory = data.coupleDayTotalHistory ?? "-"; - formData.coupleDayStartDateHistory = data.coupleDayStartDateHistory; - formData.coupleDayEndDateHistory = data.coupleDayEndDateHistory; - formData.coupleDaySumTotalHistory = data.coupleDaySumTotalHistory ?? "-"; - formData.approveStep = data.approveStep ?? "-"; - formData.dear = data.dear ?? "-"; - formData.leaveLast = data.leaveLast ?? "-"; - formData.leaveRange = data.leaveRange; + titleName.value = data.fullName ?? "-"; + formData.id = data.id ?? "-"; + formData.leaveTypeName = data.leaveTypeName ?? "-"; + formData.leaveTypeId = data.leaveTypeId ?? "-"; + formData.fullname = data.fullName ?? "-"; + formData.dateSendLeave = + data.dateSendLeave && date2Thai(data.dateSendLeave); + formData.status = data.status ?? "-"; + formData.leaveStartDate = data.leaveStartDate; + formData.leaveEndDate = data.leaveEndDate; + formData.leaveCount = data.leaveTotal ?? "-"; + formData.leaveWrote = data.leaveWrote ?? "-"; + formData.leaveAddress = data.leaveAddress ?? "-"; + formData.leaveNumber = data.leaveNumber ?? "-"; + formData.leaveDetail = data.leaveDetail ?? "-"; + formData.leaveDocument = data.leaveDocument; + formData.leaveDraftDocument = data.leaveDraftDocument; + formData.leaveLastStart = + data.leaveLastStart && date2Thai(data.leaveLastStart); + formData.leaveLastEnd = + data.leaveLastStart && date2Thai(data.leaveLastEnd); + formData.leaveTotal = data.leaveTotal; + formData.leavebirthDate = + data.leaveBirthDate && date2Thai(data.leaveBirthDate); + formData.leavegovernmentDate = + data.leaveGovernmentDate && date2Thai(data.leaveGovernmentDate); + formData.leaveSalary = data.leaveSalary ?? "-"; + formData.leaveSalaryText = data.leaveSalaryText ?? "-"; + formData.wifeDayName = data.wifeDayName ?? "-"; + formData.wifeDayDateBorn = data.wifeDayDateBorn + ? data.wifeDayDateBorn + : null; + formData.restDayOldTotal = data.restDayOldTotal ?? "-"; + formData.restDayCurrentTotal = data.restDayCurrentTotal ?? "-"; + formData.ordainDayStatus = data.ordainDayStatus; + formData.ordainDayLocationName = data.ordainDayLocationName ?? "-"; + formData.ordainDayLocationAddress = data.ordainDayLocationAddress ?? "-"; + formData.ordainDayLocationNumber = data.ordainDayLocationNumber ?? "-"; + formData.ordainDayOrdination = data.ordainDayOrdination; + formData.ordainDayBuddhistLentName = + data.ordainDayBuddhistLentName ?? "-"; + formData.ordainDayBuddhistLentAddress = + data.ordainDayBuddhistLentAddress ?? "-"; + formData.hajjDayStatus = data.hajjDayStatus; + formData.absentDaySummon = data.absentDaySummon ?? "-"; + formData.absentDayLocation = data.absentDayLocation ?? "-"; + formData.absentDayRegistorDate = data.absentDayRegistorDate; + formData.absentDayGetIn = data.absentDayGetIn ?? "-"; + formData.absentDayAt = data.absentDayAt ?? "-"; + formData.studyDaySubject = data.studyDaySubject ?? "-"; + formData.studyDayDegreeLevel = data.studyDayDegreeLevel ?? "-"; + formData.studyDayUniversityName = data.studyDayUniversityName ?? "-"; + formData.studyDayTrainingSubject = + data.studyDayTrainingSubject ?? "-" ?? "-"; + formData.studyDayTrainingName = data.studyDayTrainingName ?? "-"; + formData.studyDayCountry = data.studyDayCountry ?? "-"; + formData.studyDayScholarship = data.studyDayScholarship ?? "-"; + formData.coupleDayName = data.coupleDayName ?? "-"; + formData.coupleDayPosition = data.coupleDayPosition ?? "-"; + formData.coupleDayLevel = data.coupleDayLevel ?? "-"; + formData.coupleDayLevelCountry = data.coupleDayLevelCountry ?? "-"; + formData.coupleDayCountryHistory = data.coupleDayCountryHistory ?? "-"; + formData.coupleDayTotalHistory = data.coupleDayTotalHistory ?? "-"; + formData.coupleDayStartDateHistory = data.coupleDayStartDateHistory; + formData.coupleDayEndDateHistory = data.coupleDayEndDateHistory; + formData.coupleDaySumTotalHistory = data.coupleDaySumTotalHistory ?? "-"; + formData.approveStep = data.approveStep ?? "-"; + formData.dear = data.dear ?? "-"; + formData.leaveLast = data.leaveLast ?? "-"; + formData.leaveRange = data.leaveRange; - // checkLeaveType(formData.leaveTypeId, formData.leaveTypeName) + // checkLeaveType(formData.leaveTypeId, formData.leaveTypeName) - dataStore.fetchProfileOld(data); - }) - .catch((err) => { - messageError($q, err); - }) - .finally(() => { - hideLoader(); - }); + dataStore.fetchProfileOld(data); + }) + .catch((err) => { + messageError($q, err); + }) + .finally(() => { + hideLoader(); + }); } /**modal */ const model = computed(() => { - return ( - dataStore.options.find((x) => x.id == formData.leaveTypeId)?.code ?? "" - ); + return ( + dataStore.options.find((x) => x.id == formData.leaveTypeId)?.code ?? "" + ); }); const modelSpecific = computed(() => { - const code = dataStore.options.find( - (x) => x.id == formData.leaveTypeId - )?.code; + const code = dataStore.options.find( + (x) => x.id == formData.leaveTypeId + )?.code; - if (code == "LV-006" && formData.ordainDayLocationName != "") { - return "b1"; - } else if (code == "LV-006" && formData.ordainDayLocationName == "") { - return "b2"; - } else if (code == "LV-008" && formData.studyDayTrainingSubject == "") { - return "s1"; - } else if (code == "LV-008" && formData.studyDayTrainingSubject != "") { - return "s2"; - } else { - return ""; - } + if (code == "LV-006" && formData.ordainDayLocationName != "") { + return "b1"; + } else if (code == "LV-006" && formData.ordainDayLocationName == "") { + return "b2"; + } else if (code == "LV-008" && formData.studyDayTrainingSubject == "") { + return "s1"; + } else if (code == "LV-008" && formData.studyDayTrainingSubject != "") { + return "s2"; + } else { + return ""; + } }); /** @@ -234,25 +236,25 @@ const modelSpecific = computed(() => { * @param isLeave ตัวแปรเช็คว่าใช้หน้า edit หรือไม่ */ function onSubmit(formData: FormData, isLeave: boolean = true) { - if (isLeave) { - dialogConfirm($q, async () => { - showLoader(); - await http - .put(config.API.leaveUserId(personalId.value), formData) - .then(() => { - fetchDataDetail(personalId.value); - success($q, "บันทึกสำเร็จ"); - }) - .catch((e: any) => { - messageError($q, e); - }) - .finally(() => { - hideLoader(); - }); - }); - } else { - messageError($q, "", "ไม่มีสิทธิ์ลา"); - } + if (isLeave) { + dialogConfirm($q, async () => { + showLoader(); + await http + .put(config.API.leaveUserId(personalId.value), formData) + .then(() => { + fetchDataDetail(personalId.value); + success($q, "บันทึกสำเร็จ"); + }) + .catch((e: any) => { + messageError($q, e); + }) + .finally(() => { + hideLoader(); + }); + }); + } else { + messageError($q, "", "ไม่มีสิทธิ์ลา"); + } } /** @@ -260,32 +262,32 @@ function onSubmit(formData: FormData, isLeave: boolean = true) { * @param id id ของใบลา */ function onConfirm(id: string) { - dialogConfirm( - $q, - async () => { - showLoader(); - await http - .put(config.API.leaveUserSendId(personalId.value), { reason: "" }) - .then(() => { - router.push("/leave"); - success($q, "ยื่นใบลาสำเร็จ"); - }) - .catch((e: any) => { - messageError($q, e); - }) - .finally(() => { - hideLoader(); - // fetchDataDetail(personalId.value); - }); - }, - "ยืนยันการยื่นใบลา", - "หากยืนยันแล้วจะไม่สามารถกลับมาแก้ไขได้ ต้องการยืนยันการยื่นใบลานี้ใช่หรือไม่" - ); + dialogConfirm( + $q, + async () => { + showLoader(); + await http + .put(config.API.leaveUserSendId(personalId.value), { reason: "" }) + .then(() => { + router.push("/leave"); + success($q, "ยื่นใบลาสำเร็จ"); + }) + .catch((e: any) => { + messageError($q, e); + }) + .finally(() => { + hideLoader(); + // fetchDataDetail(personalId.value); + }); + }, + "ยืนยันการยื่นใบลา", + "หากยืนยันแล้วจะไม่สามารถกลับมาแก้ไขได้ ต้องการยืนยันการยื่นใบลานี้ใช่หรือไม่" + ); } //เเจ้งเตือนลบข้อมูล const clickDelete = (id: string, docId: string) => { - dialogRemove($q, () => onClickDelete(id, docId)); + dialogRemove($q, () => onClickDelete(id, docId)); }; /** @@ -293,217 +295,217 @@ const clickDelete = (id: string, docId: string) => { * @param id */ const onClickDelete = async (id: string, docId: string) => { - await http - .delete(config.API.leaveDocumentId(id, docId)) - .then(async (res) => { - success($q, "ลบไฟล์สำเร็จ"); - }) - .catch((err) => { - messageError($q, err); - }) - .finally(() => { - fetchDataDetail(personalId.value); - hideLoader(); - }); + await http + .delete(config.API.leaveDocumentId(id, docId)) + .then(async (res) => { + success($q, "ลบไฟล์สำเร็จ"); + }) + .catch((err) => { + messageError($q, err); + }) + .finally(() => { + fetchDataDetail(personalId.value); + hideLoader(); + }); }; /**เมื่อเริ่มโหลดหน้า * เรียกใช้งาน fetchData เพื่อดึงข้อมูล */ onMounted(() => { - fetchDataDetail(personalId.value); + fetchDataDetail(personalId.value); }); diff --git a/src/modules/06_evaluate/components/DialogMain.vue b/src/modules/06_evaluate/components/DialogMain.vue index 4cdf1b3..dbc7816 100644 --- a/src/modules/06_evaluate/components/DialogMain.vue +++ b/src/modules/06_evaluate/components/DialogMain.vue @@ -261,8 +261,9 @@ watch(props, () => {
ผู้ประเมินทำการอัปโหลดเอกสารเล่ม 2 - โดยมีระยะเวลาการส่งผลงานหลังจากประกาศบนเว็บไซต์แล้ว 6 เดือน
- กรณีผู้จะเกษียณอายุราชการให้ส่งผลงาน ก่อนวันที่จะเกษียณอายุราชการไม่น้อยกว่า 90 วัน + โดยมีระยะเวลาการส่งผลงานหลังจากประกาศบนเว็บไซต์แล้ว 6 เดือน
+ กรณีผู้จะเกษียณอายุราชการให้ส่งผลงาน + ก่อนวันที่จะเกษียณอายุราชการไม่น้อยกว่า 90 วัน diff --git a/src/modules/06_evaluate/components/step/step3.vue b/src/modules/06_evaluate/components/step/step3.vue index 55cdac2..22bf473 100644 --- a/src/modules/06_evaluate/components/step/step3.vue +++ b/src/modules/06_evaluate/components/step/step3.vue @@ -103,7 +103,7 @@ onMounted(async () => { :active="selectedItem === 1 ? true : false" active-class="text-primary" @click="handleItemClick(1)" - class=" cursor-pointer" + class="cursor-pointer" > แบบพิจารณาคุณสมบัติบุคคล @@ -113,7 +113,7 @@ onMounted(async () => { :active="selectedItem === 2 ? true : false" active-class="text-primary" @click="handleItemClick(2)" - class=" cursor-pointer" + class="cursor-pointer" > แบบแสดงรายละเอียดการเสนอผลงาน @@ -123,7 +123,7 @@ onMounted(async () => { :active="selectedItem === 3 ? true : false" active-class="text-primary" @click="handleItemClick(3)" - class=" cursor-pointer" + class="cursor-pointer" > แบบตรวจสอบความถูกต้องครบถ้วนของข้อมูลเพื่อประกอบการคัดเลือกบุคคล @@ -136,7 +136,7 @@ onMounted(async () => { :active="selectedItem === 4 ? true : false" active-class="text-primary" @click="handleItemClick(4)" - class=" cursor-pointer" + class="cursor-pointer" > แบบประเมินคุณลักษณะบุคคล @@ -146,7 +146,7 @@ onMounted(async () => { :active="selectedItem === 5 ? true : false" active-class="text-primary" @click="handleItemClick(5)" - class=" cursor-pointer" + class="cursor-pointer" > แบบสรุปข้อมูลของผู้ขอรับการคัดเลือก (เอกสารหมายเลข 9) @@ -158,7 +158,7 @@ onMounted(async () => { :active="selectedItem === 6 ? true : false" active-class="text-primary" @click="handleItemClick(6)" - class=" cursor-pointer" + class="cursor-pointer" > ผลงานที่จะส่งประเมิน (เอกสารหมายเลข 11) diff --git a/src/modules/06_evaluate/components/step/step7.vue b/src/modules/06_evaluate/components/step/step7.vue index 5913efb..44f3c90 100644 --- a/src/modules/06_evaluate/components/step/step7.vue +++ b/src/modules/06_evaluate/components/step/step7.vue @@ -83,7 +83,7 @@ onMounted(async () => { v-ripple :active="selectedItem === 1 ? true : false" active-class="text-primary" - class=" cursor-pointer" + class="cursor-pointer" > เอกสารเล่ม 2 diff --git a/src/modules/06_evaluate/components/step/step9.vue b/src/modules/06_evaluate/components/step/step9.vue index c21b6f4..17374c6 100644 --- a/src/modules/06_evaluate/components/step/step9.vue +++ b/src/modules/06_evaluate/components/step/step9.vue @@ -1,7 +1,7 @@