diff --git a/src/modules/03_recruiting/views/01_compete/PeriodAdd.vue b/src/modules/03_recruiting/views/01_compete/PeriodAdd.vue index d11eec06e..d26d00c2d 100644 --- a/src/modules/03_recruiting/views/01_compete/PeriodAdd.vue +++ b/src/modules/03_recruiting/views/01_compete/PeriodAdd.vue @@ -18,8 +18,15 @@ const $q = useQuasar(); // show dialog const mixin = useCounterMixin(); const router = useRouter(); const route = useRoute(); -const { date2Thai, success, dateToISO, messageError, showLoader, hideLoader } = - mixin; +const { + date2Thai, + success, + dateToISO, + messageError, + showLoader, + hideLoader, + convertDateToAPI, +} = mixin; const myForm = ref(null); //form data input const name = ref(""); @@ -220,30 +227,38 @@ function sendData() { const valueData: RequestPeriodCompete = { announcementEndDate: dateAnnouncement.value !== null - ? dateToISO(dateAnnouncement.value[1]) + ? convertDateToAPI(dateAnnouncement.value[1]) : null, announcementStartDate: dateAnnouncement.value !== null - ? dateToISO(dateAnnouncement.value[0]) + ? convertDateToAPI(dateAnnouncement.value[0]) : null, - examDate: dateExam.value !== null ? dateToISO(dateExam.value) : null, + examDate: dateExam.value !== null ? convertDateToAPI(dateExam.value) : null, detail: editor.value, fee: fee.value ? (fee.value as number) : (0 as number), id: "", name: name.value, note: note.value, paymentEndDate: - datePayment.value !== null ? dateToISO(datePayment.value[1]) : null, + datePayment.value !== null + ? convertDateToAPI(datePayment.value[1]) + : null, paymentStartDate: - datePayment.value !== null ? dateToISO(datePayment.value[0]) : null, + datePayment.value !== null + ? convertDateToAPI(datePayment.value[0]) + : null, registerEndDate: - dateRegister.value !== null ? dateToISO(dateRegister.value[1]) : null, + dateRegister.value !== null + ? convertDateToAPI(dateRegister.value[1]) + : null, registerStartDate: - dateRegister.value !== null ? dateToISO(dateRegister.value[0]) : null, + dateRegister.value !== null + ? convertDateToAPI(dateRegister.value[0]) + : null, order: round.value, year: yearly.value, announcementDate: - dateAnnounce.value !== null ? dateToISO(dateAnnounce.value) : null, + dateAnnounce.value !== null ? convertDateToAPI(dateAnnounce.value) : null, }; return valueData; } diff --git a/src/modules/03_recruiting/views/02_qualify/DisablePeriodAdd.vue b/src/modules/03_recruiting/views/02_qualify/DisablePeriodAdd.vue index e1c3517d5..962c053b4 100644 --- a/src/modules/03_recruiting/views/02_qualify/DisablePeriodAdd.vue +++ b/src/modules/03_recruiting/views/02_qualify/DisablePeriodAdd.vue @@ -26,6 +26,7 @@ const { messageError, showLoader, hideLoader, + convertDateToAPI } = mixin; const myForm = ref(null); //form data input const name = ref(""); @@ -127,30 +128,30 @@ function sendData() { const valueData: RequestPeriodDisable = { announcementEndDate: dateAnnouncement.value !== null - ? dateToISO(dateAnnouncement.value[1]) + ? convertDateToAPI(dateAnnouncement.value[1]) : null, announcementStartDate: dateAnnouncement.value !== null - ? dateToISO(dateAnnouncement.value[0]) + ? convertDateToAPI(dateAnnouncement.value[0]) : null, - examDate: dateExam.value !== null ? dateToISO(dateExam.value) : null, + examDate: dateExam.value !== null ? convertDateToAPI(dateExam.value) : null, detail: editor.value, fee: fee.value, id: "", name: name.value, note: note.value, paymentEndDate: - datePayment.value !== null ? dateToISO(datePayment.value[1]) : null, + datePayment.value !== null ? convertDateToAPI(datePayment.value[1]) : null, paymentStartDate: - datePayment.value !== null ? dateToISO(datePayment.value[0]) : null, + datePayment.value !== null ? convertDateToAPI(datePayment.value[0]) : null, registerEndDate: - dateRegister.value !== null ? dateToISO(dateRegister.value[1]) : null, + dateRegister.value !== null ? convertDateToAPI(dateRegister.value[1]) : null, registerStartDate: - dateRegister.value !== null ? dateToISO(dateRegister.value[0]) : null, + dateRegister.value !== null ? convertDateToAPI(dateRegister.value[0]) : null, round: round.value, year: yearly.value, announcementDate: - dateAnnounce.value !== null ? dateToISO(dateAnnounce.value) : null, + dateAnnounce.value !== null ? convertDateToAPI(dateAnnounce.value) : null, }; return valueData; } diff --git a/src/modules/03_recruiting/views/02_qualify/PeriodAdd.vue b/src/modules/03_recruiting/views/02_qualify/PeriodAdd.vue index 9dc1675c5..420ceae43 100644 --- a/src/modules/03_recruiting/views/02_qualify/PeriodAdd.vue +++ b/src/modules/03_recruiting/views/02_qualify/PeriodAdd.vue @@ -33,8 +33,15 @@ const $q = useQuasar(); // show dialog const mixin = useCounterMixin(); const router = useRouter(); const route = useRoute(); -const { date2Thai, success, dateToISO, messageError, showLoader, hideLoader } = - mixin; +const { + date2Thai, + success, + dateToISO, + messageError, + showLoader, + hideLoader, + convertDateToAPI, +} = mixin; const checkRoutePermisson = ref( route.name == "qualifyPeriodEditDetail" @@ -400,16 +407,16 @@ function sendData() { } const valueData: any = { announcementDate: - dateAnnounce.value != null ? dateToISO(dateAnnounce.value) : null, + dateAnnounce.value != null ? convertDateToAPI(dateAnnounce.value) : null, announcementEndDate: dateAnnouncement.value != null - ? dateToISO(dateAnnouncement.value[1]) + ? convertDateToAPI(dateAnnouncement.value[1]) : null, announcementStartDate: dateAnnouncement.value != null - ? dateToISO(dateAnnouncement.value[0]) + ? convertDateToAPI(dateAnnouncement.value[0]) : null, - examDate: dateExam.value != null ? dateToISO(dateExam.value) : null, + examDate: dateExam.value != null ? convertDateToAPI(dateExam.value) : null, bankExam: rowsPayment.value, checkDisability: checkDisability.value, announcementExam: announcementExam.value, @@ -427,15 +434,19 @@ function sendData() { organizationId: organizationName.value?.id, organizationName: organizationName.value?.name, paymentEndDate: - datePayment.value != null ? dateToISO(datePayment.value[1]) : null, + datePayment.value != null ? convertDateToAPI(datePayment.value[1]) : null, paymentKrungThai: pay.value, paymentStartDate: - datePayment.value != null ? dateToISO(datePayment.value[0]) : null, + datePayment.value != null ? convertDateToAPI(datePayment.value[0]) : null, positionExam: positionData, registerEndDate: - dateRegister.value != null ? dateToISO(dateRegister.value[1]) : null, + dateRegister.value != null + ? convertDateToAPI(dateRegister.value[1]) + : null, registerStartDate: - dateRegister.value != null ? dateToISO(dateRegister.value[0]) : null, + dateRegister.value != null + ? convertDateToAPI(dateRegister.value[0]) + : null, round: round.value, year: yearly.value, category: category.value, @@ -534,10 +545,9 @@ async function uploadDocData() { .finally(async () => { hideLoader(); }); - } + } } - /** อัปโหลดไฟล์เอกสาร */ async function uploadBarCodes() { const formData = new FormData(); @@ -545,17 +555,17 @@ async function uploadBarCodes() { formData.append("", barCodes.value); showLoader(); - + await http .put(config.API.periodExambarcode(id.value), formData) .then((res) => { - console.log(1) + console.log(1); }) .catch((e) => {}) .finally(async () => { hideLoader(); }); - } + } } /** อัปโหลดไฟล์เอกสาร */ @@ -568,13 +578,13 @@ async function uploadQrCodes() { await http .put(config.API.periodExamqrcode(id.value), formData) .then((res) => { - console.log(2) + console.log(2); }) .catch((e) => {}) .finally(async () => { hideLoader(); }); - } + } } /** diff --git a/src/modules/09_leave/components/03_ChangeRound/DialogForm.vue b/src/modules/09_leave/components/03_ChangeRound/DialogForm.vue index 04b6a8e98..dd8665142 100644 --- a/src/modules/09_leave/components/03_ChangeRound/DialogForm.vue +++ b/src/modules/09_leave/components/03_ChangeRound/DialogForm.vue @@ -24,6 +24,7 @@ const { showLoader, hideLoader, success, + convertDateToAPI, } = mixin; const emit = defineEmits(["update:change-page"]); @@ -112,12 +113,14 @@ function onSubmit() { /** Function เปลี่ยนรอบเวลา*/ async function changeRound() { + const formattedDateForAPI = await convertDateToAPI(formData.effectiveDate); + showLoader(); await http .post(config.API.leaveRound(), { profileId: props.personId, roundId: formData.round, - effectiveDate: formData.effectiveDate, + effectiveDate: formattedDateForAPI, remark: formData.reson, }) .then(() => { @@ -278,10 +281,11 @@ watch( class="inputgreen" menu-class-name="modalfix" v-model="formData.effectiveDate" + :timezone="'Asia/Bangkok'" :locale="'th'" autoApply borderless - :enableTimePicker="false" + :enable-time-picker="false" week-start="0" :min-date=" dataToday diff --git a/src/stores/mixin.ts b/src/stores/mixin.ts index d85dced88..ecd4ac7fc 100644 --- a/src/stores/mixin.ts +++ b/src/stores/mixin.ts @@ -4,6 +4,7 @@ import moment from "moment"; import CustomComponent from "@/components/CustomDialog.vue"; import { Loading, QSpinnerCube } from "quasar"; import { logout } from "@/plugins/auth"; +import { format, utcToZonedTime } from "date-fns-tz"; moment.locale("th"); @@ -1177,6 +1178,20 @@ export const useCounterMixin = defineStore("mixin", () => { // return `${y} ปี ${m} เดือน ${d} วัน`; } + // กรณีมีเฉพาะ date + function convertDateToAPI(date: Date | null) { + return date + ? format(utcToZonedTime(date, "Asia/Bangkok"), "yyyy-MM-dd") + : null; + } + + // กรณี datetime + function convertDatetimeToAPI(date: Date | null) { + return date + ? format(utcToZonedTime(date, "Asia/Bangkok"), "yyyy-MM-dd HH:mm:ss") + : null; + } + return { calAge, date2Thai, @@ -1225,5 +1240,8 @@ export const useCounterMixin = defineStore("mixin", () => { onSearchDataTable, formatDatePosition, formatDatePositionReport, + + convertDateToAPI, + convertDatetimeToAPI, }; });