เพิ่ม api check ฟอร์มลา

This commit is contained in:
AnandaTon 2023-12-08 15:41:18 +07:00
parent 3fe083f222
commit 7b0aefe2cd
15 changed files with 386 additions and 59 deletions

View file

@ -13,7 +13,7 @@ const dataStore = useLeaveStore()
const $q = useQuasar()
const mixin = useCounterMixin()
const router = useRouter()
const { date2Thai, dateToISO, dialogConfirm, success, messageError } = mixin
const { date2Thai, dateToISO, dialogConfirm, success, messageError, fails } = mixin
const edit = ref<boolean>(true)
/** รับ props มาจากหน้าหลัก */
@ -147,8 +147,6 @@ async function saveFormData() {
formData.append("leaveAddress", formDataSick.leaveAddress)
formData.append("leaveNumber", formDataSick.leaveNumber)
formData.append("leaveDetail", formDataSick.leaveDetail)
formData.append("leaveTotal", formDataSick.leaveTotal)
formData.append("leaveLast", formDataSick.leaveLast)
await http
.post(config.API.leaveUser(), formData)
.then((res: any) => {
@ -160,6 +158,28 @@ async function saveFormData() {
})
}
/**
* check าลาไดไหม จาก api
* @param formData
*/
const isLeave = ref<boolean>(true)
async function FetchCheck() {
await http
.post(config.API.leaveCheck(), { type: dataStore.typeId ?? null, StartLeaveDate: formDataSick.leaveStartDate ?? null, EndLeaveDate: formDataSick.leaveEndDate ?? null })
.then((res: any) => {
const data = res.data.result
isLeave.value = data.isLeave
if (data.isLeave === true) {
formDataSick.leaveTotal = data.totalDate - data.sumDateWork - data.sumDateHoliday
} else {
fails($q, "ไม่สามารถลาได้")
}
})
.catch((e: any) => {
messageError($q, e)
})
}
/**
* งกนแปลงครงว/งว
*/
@ -253,6 +273,7 @@ const isReadOnly = computed(() => {
:enableTimePicker="false"
week-start="0"
:readonly="isReadOnly"
@update:model-value="FetchCheck()"
:min-date="formDataSick.leaveStartDate ? new Date(formDataSick.leaveStartDate.getTime() + 24 * 60 * 60 * 1000) : null"
>
<template #year="{ year }">
@ -299,7 +320,7 @@ const isReadOnly = computed(() => {
outlined
ref="leaveLastRef"
for="leaveLastRef"
v-model="formDataSick.leaveLast"
v-model="dataStore.leaveLast"
label="ลาครั้งสุดท้ายเมื่อวันที่"
readonly
hide-bottom-space

View file

@ -13,7 +13,7 @@ const dataStore = useLeaveStore()
const mixin = useCounterMixin()
const router = useRouter()
const $q = useQuasar()
const { date2Thai, dateToISO, dialogConfirm, success, messageError } = mixin
const { date2Thai, dateToISO, dialogConfirm, success, messageError, fails } = mixin
const edit = ref<boolean>(true)
/** รับ props มาจากหน้าหลัก */
@ -113,6 +113,30 @@ const onSubmit = async () => {
"ต้องการยืนยันการยื่นใบลานี้ใช่หรือไม่ ?"
)
}
/**
* check าลาไดไหม จาก api
* @param formData
*/
const isLeave = ref<boolean>(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
if (data.isLeave === true) {
formDataBirth.leaveTotal = data.totalDate - data.sumDateWork - data.sumDateHoliday
// formDataBirth.leaveLast = data.sumDateWork
} else {
fails($q, "ไม่สามารถลาได้")
}
})
.catch((e: any) => {
messageError($q, e)
})
}
/**
* งชนบนทกขอมลจาก formdata งไปท Api
*/
@ -130,8 +154,6 @@ async function saveFormData() {
formData.append("leaveAddress", formDataBirth.leaveAddress)
formData.append("leaveNumber", formDataBirth.leaveNumber)
formData.append("leaveDetail", formDataBirth.leaveDetail)
formData.append("leaveLast", formDataBirth.leaveLast)
formData.append("leaveTotal", formDataBirth.leaveTotal)
await http
.post(config.API.leaveUser(), formData)
@ -213,6 +235,7 @@ async function saveFormData() {
v-model="formDataBirth.leaveEndDate"
:locale="'th'"
autoApply
@update:model-value="FetchCheck()"
borderless
hide-bottom-space
:enableTimePicker="false"
@ -264,7 +287,7 @@ async function saveFormData() {
outlined
ref="leaveLastRef"
for="leaveLastRef"
v-model="formDataBirth.leaveLast"
v-model="dataStore.leaveLast"
label="ลาครั้งสุดท้ายเมื่อวันที่"
readonly
hide-bottom-space

View file

@ -13,7 +13,7 @@ const dataStore = useLeaveStore()
const mixin = useCounterMixin()
const router = useRouter()
const $q = useQuasar()
const { date2Thai, calculateDurationYmd, dateToISO, dialogConfirm, success, messageError } = mixin
const { date2Thai, calculateDurationYmd, dateToISO, dialogConfirm, fails, success, messageError } = mixin
const edit = ref<boolean>(true)
/** รับ props มาจากหน้าหลัก */
@ -130,6 +130,29 @@ const onSubmit = async () => {
)
}
/**
* check าลาไดไหม จาก api
* @param formData
*/
const isLeave = ref<boolean>(true)
async function FetchCheck() {
await http
.post(config.API.leaveCheck(), { type: dataStore.typeId ?? null, leaveStartDate: formDataHelpWife.leaveStartDate ?? null, leaveEndDate: formDataHelpWife.leaveEndDate ?? null })
.then((res: any) => {
const data = res.data.result
isLeave.value = data.isLeave
if (data.isLeave === true) {
formDataHelpWife.leaveTotal = data.totalDate - data.sumDateWork - data.sumDateHoliday
// formDataHelpWife.leaveLast = data.totalDate
} else {
fails($q, "ไม่สามารถลาได้")
}
})
.catch((e: any) => {
messageError($q, e)
})
}
/**
* งชนบนทกขอมลจาก formdata งไปท Api
*/
@ -148,7 +171,6 @@ async function saveFormData() {
formData.append("leaveAddress", formDataHelpWife.leaveAddress)
formData.append("leaveNumber", formDataHelpWife.leaveNumber)
formData.append("leaveDetail", formDataHelpWife.leaveDetail)
formData.append("leaveTotal", formDataHelpWife.leaveTotal)
formData.append("wifeDayName", formDataHelpWife.wifeDayName)
formData.append("wifeDayDateBorn", dateToISO(formDataHelpWife.wifeDayDateBorn))
await http
@ -232,7 +254,7 @@ async function saveFormData() {
borderless
hide-bottom-space
:enableTimePicker="false"
@update:model-value="updateLeaveTotal"
@update:model-value="updateLeaveTotal, FetchCheck()"
week-start="0"
:readonly="!formDataHelpWife.leaveStartDate"
:min-date="formDataHelpWife.leaveStartDate ? new Date(formDataHelpWife.leaveStartDate.getTime() + 24 * 60 * 60 * 1000) : null"

View file

@ -13,7 +13,7 @@ const $q = useQuasar()
const dataStore = useLeaveStore()
const mixin = useCounterMixin()
const router = useRouter()
const { date2Thai, dateToISO, dialogConfirm, success, messageError } = mixin
const { date2Thai, dateToISO, dialogConfirm, success, messageError, fails } = mixin
const edit = ref<boolean>(true)
/** รับ props มาจากหน้าหลัก */
@ -126,6 +126,29 @@ const onSubmit = async () => {
console.log("save")
}
/**
* check าลาไดไหม จาก api
* @param formData
*/
const isLeave = ref<boolean>(true)
async function FetchCheck() {
await http
.post(config.API.leaveCheck(), { type: dataStore.typeId ?? null, StartLeaveDate: formDataVacation.leaveStartDate ?? null, EndLeaveDate: formDataVacation.leaveEndDate ?? null })
.then((res: any) => {
const data = res.data.result
isLeave.value = data.isLeave
if (data.isLeave === true) {
formDataVacation.leaveTotal = data.totalDate - data.sumDateWork - data.sumDateHoliday
// formDataVacation.leaveLast = data.totalDate
} else {
fails($q, "ไม่สามารถลาได้")
}
})
.catch((e: any) => {
messageError($q, e)
})
}
/**
* งชนบนทกขอมลจาก formdata งไปท Api
*/
@ -144,9 +167,6 @@ async function saveFormData() {
formData.append("leaveAddress", formDataVacation.leaveAddress)
formData.append("leaveNumber", formDataVacation.leaveNumber)
formData.append("leaveDetail", formDataVacation.leaveDetail)
formData.append("restDayOldTotal", formDataVacation.restDayOldTotal)
formData.append("restDayCurrentTotal", formDataVacation.restDayCurrentTotal)
formData.append("leaveTotal", formDataVacation.leaveTotal)
await http
.post(config.API.leaveUser(), formData)
.then((res: any) => {
@ -217,7 +237,7 @@ const isReadOnly = computed(() => {
bg-color="white"
readonly
outlined
v-model="formDataVacation.restDayOldTotal"
v-model="dataStore.restDayTotalOld"
label="จำนวนวันลาพักผ่อนสะสม จากปีที่ผ่านมา"
/>
@ -230,7 +250,7 @@ const isReadOnly = computed(() => {
hide-bottom-space
bg-color="white"
outlined
v-model="formDataVacation.restDayCurrentTotal"
v-model="dataStore.restDayCurrentTotal"
label="จำนวนวันลาพักผ่อนประจำปีปัจจุบัน"
/>
@ -280,6 +300,7 @@ const isReadOnly = computed(() => {
:locale="'th'"
autoApply
hide-bottom-space
@update:model-value="FetchCheck()"
borderless
:enableTimePicker="false"
week-start="0"

View file

@ -13,7 +13,7 @@ const dataStore = useLeaveStore()
const $q = useQuasar()
const router = useRouter()
const mixin = useCounterMixin()
const { date2Thai, dialogConfirm, calculateDurationYmd, dateToISO, success, messageError } = mixin
const { date2Thai, dialogConfirm, calculateDurationYmd, fails, dateToISO, success, messageError } = mixin
const edit = ref<boolean>(true)
const files = ref<any>(null)
@ -138,6 +138,29 @@ const onSubmit = async () => {
)
}
/**
* check าลาไดไหม จาก api
* @param formData
*/
const isLeave = ref<boolean>(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
if (data.isLeave === true) {
formDataOrdination.leaveTotal = data.totalDate - data.sumDateWork - data.sumDateHoliday
// formDataOrdination.leaveLast = data.totalDate
} else {
fails($q, "ไม่สามารถลาได้")
}
})
.catch((e: any) => {
messageError($q, e)
})
}
/**
* งชนบนทกขอมลจาก formdata งไปท Api
*/
@ -238,7 +261,7 @@ async function saveFormData() {
:locale="'th'"
autoApply
borderless
@update:model-value="updateLeaveTotal"
@update:model-value="updateLeaveTotal, FetchCheck()"
:readonly="!formDataOrdination.leaveStartDate"
:enableTimePicker="false"
:min-date="formDataOrdination.leaveStartDate ? new Date(formDataOrdination.leaveStartDate.getTime() + 24 * 60 * 60 * 1000) : null"

View file

@ -13,7 +13,7 @@ const router = useRouter()
const dataStore = useLeaveStore()
const $q = useQuasar()
const mixin = useCounterMixin()
const { date2Thai, dialogConfirm, calculateDurationYmd, messageError, success, dateToISO } = mixin
const { date2Thai, dialogConfirm, calculateDurationYmd, fails, messageError, success, dateToISO } = mixin
const edit = ref<boolean>(true)
const files = ref<any>(null)
@ -95,6 +95,29 @@ const onSubmit = async () => {
)
}
/**
* check าลาไดไหม จาก api
* @param formData
*/
const isLeave = ref<boolean>(true)
async function FetchCheck() {
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
if (data.isLeave === true) {
formDataHaji.leaveTotal = data.totalDate - data.sumDateWork - data.sumDateHoliday
// formDataHaji.leaveLast = data.totalDate
} else {
fails($q, "ไม่สามารถลาได้")
}
})
.catch((e: any) => {
messageError($q, e)
})
}
/**
* งชนบนทกขอมลจาก formdata งไปท Api
*/
@ -221,6 +244,7 @@ function updateLeaveTotal() {
:readonly="!formDataHaji.leaveStartDate"
hide-bottom-space
:label="`${'ลาถึงวันที่'}`"
@update:model-value="FetchCheck()"
:model-value="formDataHaji.leaveEndDate != null ? date2Thai(formDataHaji.leaveEndDate) : null"
:rules="[val => !!val || `${'กรุณาเลือกลาถึงวันที่'}`]"
>
@ -282,10 +306,10 @@ function updateLeaveTotal() {
</div>
</div>
<div class="q-pl-sm text-weight-bold text-dark col-12">เคยไปประกอบพหรอไม</div>
<div class="q-pl-sm text-weight-bold text-dark col-12">เคยไปประกอบพหรอไม</div>
<div class="col-12">
<q-radio v-model="formDataHaji.hajjDayStatus" val="true" checked-icon="task_alt" label="เคย" />
<q-radio v-model="formDataHaji.hajjDayStatus" val="false" checked-icon="task_alt" label="ไม่เคยไปประกอบพิธีฮัจย์ฯ" />
<q-radio v-model="formDataHaji.hajjDayStatus" val="false" checked-icon="task_alt" label="ไม่เคยไปประกอบพิธีฮัจญ์" />
</div>
<q-input v-model="formDataHaji.leaveDetail" class="col-12 q-mt-sm" bg-color="white" dense outlined type="textarea" label="รายละเอียด" />

View file

@ -13,7 +13,7 @@ const router = useRouter()
const dataStore = useLeaveStore()
const $q = useQuasar()
const mixin = useCounterMixin()
const { date2Thai, dialogConfirm, calculateDurationYmd, dateToISO, success, messageError } = mixin
const { date2Thai, dialogConfirm, calculateDurationYmd, dateToISO, success, messageError, fails } = mixin
const edit = ref<boolean>(true)
const files = ref<any>(null)
@ -107,6 +107,29 @@ const onSubmit = async () => {
)
}
/**
* check าลาไดไหม จาก api
* @param formData
*/
const isLeave = ref<boolean>(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
if (data.isLeave === true) {
formDataMilitary.leaveTotal = data.totalDate - data.sumDateWork - data.sumDateHoliday
// formDataMilitary.leaveLast = data.totalDate
} else {
fails($q, "ไม่สามารถลาได้")
}
})
.catch((e: any) => {
messageError($q, e)
})
}
/**
* งชนบนทกขอมลจาก formdata งไปท Api
*/
@ -127,7 +150,6 @@ async function saveFormData() {
formData.append("absentDayAt", formDataMilitary.absentDayAt)
formData.append("leaveWrote", formDataMilitary.leaveWrote)
formData.append("leaveDetail", formDataMilitary.leaveDetail)
formData.append("leaveTotal", formDataMilitary.leaveTotal)
await http
.post(config.API.leaveUser(), formData)
@ -214,7 +236,7 @@ function updateLeaveTotal() {
borderless
:enableTimePicker="false"
week-start="0"
@update:model-value="updateLeaveTotal"
@update:model-value="updateLeaveTotal, FetchCheck()"
:readonly="!formDataMilitary.leaveStartDate"
:min-date="formDataMilitary.leaveStartDate ? new Date(formDataMilitary.leaveStartDate.getTime() + 24 * 60 * 60 * 1000) : null"
>

View file

@ -13,7 +13,7 @@ const dataStore = useLeaveStore()
const $q = useQuasar()
const router = useRouter()
const mixin = useCounterMixin()
const { date2Thai, dialogConfirm, calculateDurationYmd, dateToISO, success, messageError, arabicNumberToText } = mixin
const { date2Thai, dialogConfirm, calculateDurationYmd, fails, dateToISO, success, messageError, arabicNumberToText } = mixin
const edit = ref<boolean>(true)
const files = ref<any>(null)
@ -122,8 +122,27 @@ const onSubmit = async () => {
}
/**
* งชนบนทกขอมลจาก formdata งไปท Api
* check าลาไดไหม จาก api
* @param formData
*/
const isLeave = ref<boolean>(true)
async function FetchCheck() {
await http
.post(config.API.leaveCheck(), { type: dataStore.typeId ?? null, StartLeaveDate: formDataStudy.leaveStartDate ?? null, EndLeaveDate: formDataStudy.leaveEndDate ?? null })
.then((res: any) => {
const data = res.data.result
isLeave.value = data.isLeave
if (data.isLeave === true) {
formDataStudy.leaveTotal = data.totalDate - data.sumDateWork - data.sumDateHoliday
// formDataStudy.leaveLast = data.totalDate
} else {
fails($q, "ไม่สามารถลาได้")
}
})
.catch((e: any) => {
messageError($q, e)
})
}
async function saveFormData() {
const formData = new FormData()
const blob = formDataStudy.leaveDocument.slice(0, formDataStudy.leaveDocument[0].size)
@ -145,9 +164,6 @@ async function saveFormData() {
formData.append("studyDayScholarship", formDataStudy.studyDayScholarship)
formData.append("leaveAddress", formDataStudy.leaveAddress) //
formData.append("leaveNumber", formDataStudy.leaveNumber) //
formData.append("leaveSalaryText", formDataStudy.leaveSalaryText) //
formData.append("leaveSalary", formDataStudy.leaveSalary) //
formData.append("leaveTotal", formDataStudy.leaveTotal) //
await http
.post(config.API.leaveUser(), formData)
@ -173,7 +189,7 @@ function updateLeaveTotal() {
* แปลงตวเลขเงนเดอน
*/
const formattedleaveSalary = computed(() => {
return formDataStudy.leaveSalary !== null ? formDataStudy.leaveSalary.toLocaleString("th-TH") : ""
return dataStore.salary !== null ? dataStore.salary.toLocaleString("th-TH") : ""
})
</script>
@ -241,7 +257,7 @@ const formattedleaveSalary = computed(() => {
borderless
week-start="0"
:locale="'th'"
@update:model-value="updateLeaveTotal"
@update:model-value="updateLeaveTotal, FetchCheck()"
:readonly="!formDataStudy.leaveStartDate"
:enableTimePicker="false"
:min-date="formDataStudy.leaveStartDate ? new Date(formDataStudy.leaveStartDate.getTime() + 24 * 60 * 60 * 1000) : null"
@ -315,7 +331,7 @@ const formattedleaveSalary = computed(() => {
dense
hide-bottom-space
:label="`${'วันที่เข้ารับราชการ'}`"
:model-value="formDataStudy.leavegovernmentDate != null ? date2Thai(formDataStudy.leavegovernmentDate) : null"
:model-value="dataStore.dateAppoint != null ? date2Thai(dataStore.dateAppoint) : null"
:rules="[val => !!val || `${'กรุณาเลือกวันที่เข้ารับราชการ'}`]"
>
<template v-slot:prepend>
@ -352,7 +368,7 @@ const formattedleaveSalary = computed(() => {
readonly
hide-bottom-space
:label="`${'วันเดือนปีเกิด'}`"
:model-value="formDataStudy.leavebirthDate != null ? date2Thai(formDataStudy.leavebirthDate) : null"
:model-value="dataStore.birthDate != null ? date2Thai(dataStore.birthDate) : null"
:rules="[val => !!val || `${'กรุณาเลือกลาถึงวันที่'}`]"
>
<template v-slot:prepend>
@ -365,7 +381,7 @@ const formattedleaveSalary = computed(() => {
<q-input v-model="formattedleaveSalary" ref="leaveSalaryRef" class="col-12 col-sm-6 col-md-3" bg-color="white" dense outlined readonly label="เงินเดือนปัจจุบัน" />
<q-input
v-model="formDataStudy.leaveSalaryText"
v-model="dataStore.salaryText"
ref="leaveSalaryRef"
class="col-12 col-sm-6 col-md-3"
bg-color="white"

View file

@ -13,7 +13,7 @@ const dataStore = useLeaveStore()
const $q = useQuasar()
const router = useRouter()
const mixin = useCounterMixin()
const { date2Thai, dialogConfirm, arabicNumberToText, calculateDurationYmd, dateToISO, success, messageError } = mixin
const { date2Thai, dialogConfirm, arabicNumberToText, calculateDurationYmd, fails, dateToISO, success, messageError } = mixin
const edit = ref<boolean>(true)
const files = ref<any>(null)
@ -116,6 +116,29 @@ const onSubmit = async () => {
)
}
/**
* check าลาไดไหม จาก api
* @param formData
*/
const isLeave = ref<boolean>(true)
async function FetchCheck() {
await http
.post(config.API.leaveCheck(), { type: dataStore.typeId ?? null, StartLeaveDate: formDataTrain.leaveStartDate ?? null, EndLeaveDate: formDataTrain.leaveEndDate ?? null })
.then((res: any) => {
const data = res.data.result
isLeave.value = data.isLeave
if (data.isLeave === true) {
formDataTrain.leaveTotal = data.totalDate - data.sumDateWork - data.sumDateHoliday
// formDataTrain.leaveLast = data.totalDate
} else {
fails($q, "ไม่สามารถลาได้")
}
})
.catch((e: any) => {
messageError($q, e)
})
}
/**
* งชนบนทกขอมลจาก formdata งไปท Api
*/
@ -233,7 +256,7 @@ const formattedSalary = computed(() => {
menu-class-name="modalfix"
autoApply
borderless
@update:model-value="updateLeaveTotal"
@update:model-value="updateLeaveTotal, FetchCheck()"
week-start="0"
:readonly="!formDataTrain.leaveStartDate"
:locale="'th'"

View file

@ -12,7 +12,7 @@ import { useRouter } from "vue-router"
const dataStore = useLeaveStore()
const $q = useQuasar()
const mixin = useCounterMixin()
const { date2Thai, dialogConfirm, notifyError, dateToISO, success, messageError } = mixin
const { date2Thai, dialogConfirm, fails, dateToISO, success, messageError } = mixin
const edit = ref<boolean>(true)
const router = useRouter()
const isSave = ref<boolean>(false)
@ -106,6 +106,33 @@ const onSubmit = async () => {
)
}
/**
* check าลาไดไหม จาก api
* @param formData
*/
const isLeave = ref<boolean>(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
if (data.isLeave === true) {
formDataWorkInternational.leaveTotal = data.totalDate - data.sumDateWork - data.sumDateHoliday
// formDataWorkInternational.leaveLast = data.totalDate
} else {
fails($q, "ไม่สามารถลาได้")
}
})
.catch((e: any) => {
messageError($q, e)
})
}
/**
* งชนบนทกขอมลจาก formdata งไปท Api
*/
@ -210,6 +237,7 @@ async function saveFormData() {
hide-bottom-space
borderless
:enableTimePicker="false"
@update:model-value="FetchCheck()"
week-start="0"
:readonly="!formDataWorkInternational.leaveStartDate"
:min-date="formDataWorkInternational.leaveStartDate ? new Date(formDataWorkInternational.leaveStartDate.getTime() + 24 * 60 * 60 * 1000) : null"

View file

@ -13,7 +13,7 @@ const dataStore = useLeaveStore()
const $q = useQuasar()
const mixin = useCounterMixin()
const router = useRouter()
const { dialogConfirm, date2Thai, arabicNumberToText, calculateDurationYmd, dateToISO, success, messageError } = mixin
const { dialogConfirm, date2Thai, arabicNumberToText, calculateDurationYmd, dateToISO, fails, success, messageError } = mixin
const edit = ref<boolean>(true)
/** รับ props มาจากหน้าหลัก */
@ -142,6 +142,29 @@ const onSubmit = async () => {
)
}
/**
* check าลาไดไหม จาก api
* @param formData
*/
const isLeave = ref<boolean>(true)
async function FetchCheck() {
await http
.post(config.API.leaveCheck(), { type: dataStore.typeId ?? null, StartLeaveDate: formDataFollowSpouse.leaveStartDate ?? null, EndLeaveDate: formDataFollowSpouse.leaveEndDate ?? null })
.then((res: any) => {
const data = res.data.result
isLeave.value = data.isLeave
if (data.isLeave === true) {
formDataFollowSpouse.leaveTotal = data.totalDate - data.sumDateWork - data.sumDateHoliday
// formDataFollowSpouse.leaveLast = data.totalDate
} else {
fails($q, "ไม่สามารถลาได้")
}
})
.catch((e: any) => {
messageError($q, e)
})
}
/**
* งชนบนทกขอมลจาก formdata งไปท Api
*/
@ -261,7 +284,7 @@ function updateLeaveTotal() {
hide-bottom-space
:enableTimePicker="false"
week-start="0"
@update:model-value="updateLeaveTotal"
@update:model-value="updateLeaveTotal, FetchCheck()"
:readonly="!formDataFollowSpouse.leaveStartDate"
:min-date="formDataFollowSpouse.leaveStartDate ? new Date(formDataFollowSpouse.leaveStartDate.getTime() + 24 * 60 * 60 * 1000) : null"
>
@ -403,7 +426,7 @@ function updateLeaveTotal() {
borderless
:enableTimePicker="false"
week-start="0"
:readonly="formDataFollowSpouse.followHistoryStart !== null"
readonly
>
<template #year="{ year }">
{{ year + 543 }}
@ -418,7 +441,7 @@ function updateLeaveTotal() {
ref="followHistoryStartRef"
for="followHistoryStartRef"
hide-bottom-space
:readonly="formDataFollowSpouse.followHistoryStart !== null"
readonly
bg-color="white"
class="full-width datepicker"
:model-value="formDataFollowSpouse.followHistoryStart != null ? date2Thai(formDataFollowSpouse.followHistoryStart) : null"
@ -441,7 +464,7 @@ function updateLeaveTotal() {
borderless
:enableTimePicker="false"
week-start="0"
:readonly="formDataFollowSpouse.followHistoryEnd !== null"
readonly
>
<template #year="{ year }">
{{ year + 543 }}
@ -457,7 +480,7 @@ function updateLeaveTotal() {
for="followHistoryEndRef"
hide-bottom-space
bg-color="white"
:readonly="formDataFollowSpouse.followHistoryEnd !== null"
readonly
class="full-width datepicker"
:model-value="formDataFollowSpouse.followHistoryEnd != null ? date2Thai(formDataFollowSpouse.followHistoryEnd) : null"
:label="`${'ถึงวันที่'}`"
@ -480,7 +503,7 @@ function updateLeaveTotal() {
v-model="formDataFollowSpouse.followHistoryCountry"
label="ประเทศ"
:rules="[val => !!val || `${'กรุณาเลือกประเทศ'}`]"
:readonly="formDataFollowSpouse.followHistoryCountry !== ''"
readonly
/>
<q-input
class="col-12 col-md-3 col-sm-12"

View file

@ -12,7 +12,7 @@ import { useRouter } from "vue-router"
const dataStore = useLeaveStore()
const $q = useQuasar()
const mixin = useCounterMixin()
const { date2Thai, dialogConfirm, notifyError, dateToISO, success, messageError } = mixin
const { date2Thai, dialogConfirm, fails, dateToISO, success, messageError } = mixin
const router = useRouter()
const edit = ref<boolean>(true)
const isSave = ref<boolean>(false)
@ -92,6 +92,29 @@ const onSubmit = async () => {
)
}
/**
* check าลาไดไหม จาก api
* @param formData
*/
const isLeave = ref<boolean>(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
if (data.isLeave === true) {
formDataRehabilitation.leaveTotal = data.totalDate - data.sumDateWork - data.sumDateHoliday
// formDataRehabilitation.leaveLast = data.totalDate
} else {
fails($q, "ไม่สามารถลาได้")
}
})
.catch((e: any) => {
messageError($q, e)
})
}
/**
* งชนบนทกขอมลจาก formdata งไปท Api
*/
@ -191,6 +214,7 @@ async function saveFormData() {
borderless
week-start="0"
:locale="'th'"
@update:model-value="FetchCheck()"
:readonly="!formDataRehabilitation.leaveStartDate"
:enableTimePicker="false"
:min-date="formDataRehabilitation.leaveStartDate ? new Date(formDataRehabilitation.leaveStartDate.getTime() + 24 * 60 * 60 * 1000) : null"

View file

@ -60,7 +60,7 @@ onMounted(async () => {
hide-bottom-space
readonly
class="full-width datepicker"
:model-value="formData.dateStart != null ? date2Thai(formData.dateStart) : null"
:model-value="dataStore.dateSendLeave != null ? date2Thai(dataStore.dateSendLeave) : null"
:label="`${'วันที่ยื่นใบลา'}`"
:rules="[val => !!val || `${'กรุณาเลือกวันที่ยื่นใบลา'}`]"
>
@ -71,14 +71,14 @@ onMounted(async () => {
</template>
</datepicker>
<q-input class="col-12 col-sm-4" dense bg-color="white" outlined readonly v-model="dataStore.typeLeave" label="เรื่อง" />
<q-input class="col-12 col-sm-4" dense outlined readonly bg-color="white" v-model="formData.who" label="เรียน" />
<q-input class="col-12 col-sm-3" dense outlined readonly bg-color="white" v-model="formData.requestName" label="ชื่อผู้ยื่นขอ" />
<q-input class="col-12 col-sm-3" dense outlined readonly bg-color="white" v-model="formData.position" label="ตำแหน่งผู้ยื่นขอ" />
<q-input class="col-12 col-sm-3" dense outlined readonly bg-color="white" v-model="formData.level" label="ระดับผู้ยื่นขอ" />
<q-input class="col-12 col-sm-3" dense outlined readonly bg-color="white" v-model="formData.ocRequest" label="สังกัดผู้ยื่นขอ" />
<q-input class="col-12 col-sm-4" dense outlined readonly bg-color="white" v-model="formData.leaveabsentDaySummon" label="จำนวนสิทธิ์การลาที่ได้รับ" />
<q-input class="col-12 col-sm-4" dense outlined readonly bg-color="white" v-model="formData.leaveUse" label="จำนวนสิทธิ์การลาที่ใช้ไป" />
<q-input class="col-12 col-sm-4" dense outlined readonly bg-color="white" v-model="formData.leaveRemaining" label="จำนวนสิทธิ์การลาคงเหลือ" />
<q-input class="col-12 col-sm-4" dense outlined readonly bg-color="white" v-model="dataStore.dear" label="เรียน" />
<q-input class="col-12 col-sm-3" dense outlined readonly bg-color="white" v-model="dataStore.fullname" label="ชื่อผู้ยื่นขอ" />
<q-input class="col-12 col-sm-3" dense outlined readonly bg-color="white" v-model="dataStore.positionName" label="ตำแหน่งผู้ยื่นขอ" />
<q-input class="col-12 col-sm-3" dense outlined readonly bg-color="white" v-model="dataStore.positionLevelName" label="ระดับผู้ยื่นขอ" />
<q-input class="col-12 col-sm-3" dense outlined readonly bg-color="white" v-model="dataStore.organizationName" label="สังกัดผู้ยื่นขอ" />
<q-input class="col-12 col-sm-4" dense outlined readonly bg-color="white" v-model="dataStore.leaveLimit" label="จำนวนสิทธิ์การลาที่ได้รับ" />
<q-input class="col-12 col-sm-4" dense outlined readonly bg-color="white" v-model="dataStore.leaveTotal" label="จำนวนสิทธิ์การลาที่ใช้ไป" />
<q-input class="col-12 col-sm-4" dense outlined readonly bg-color="white" v-model="dataStore.leaveRemain" label="จำนวนสิทธิ์การลาคงเหลือ" />
</div>
</q-card>
</template>

View file

@ -123,10 +123,10 @@ export const useLeaveStore = defineStore("Leave", () => {
{ id: "s3", name: "ลาดูงาน", code: "s3" },
])
/** รายการประเภทการลาของ ลาอุปสมบทหรือลาประกอบพิธีฮัจย์ฯ*/
/** รายการประเภทการลาของ ลาอุปสมบทหรือลาประกอบพิธีฮัจญ์*/
const optionsOrdination = ref([
{ id: "0", name: "ลาอุปสมบท", code: "0" },
{ id: "1", name: "ลาประกอบพิธีฮัจย์ฯ", code: "1" },
{ id: "1", name: "ลาประกอบพิธีฮัจญ์", code: "1" },
])
/** data table filter & column ของรายการลา */
@ -223,6 +223,27 @@ export const useLeaveStore = defineStore("Leave", () => {
return options.value.find(x => x.code == val)?.id
}
/**
* profile
*/
const dateSendLeave = ref<Date>() //วันที่ยื่นใบลา
const leaveTypeName = ref<string>("") //Name ประเภทการลา
const dear = ref<string>("") //เรียน
const fullname = ref<string>("") //คำนำหน้า ชื่อ นามสกุล ผู้ยื่นขอ
const positionName = ref<string>("") //ตำแหน่งผู้ยื่นขอ
const positionLevelName = ref<string>("") //ระดับผู้ยื่นขอ
const organizationName = ref<string>("") //สังกัดผู้ยื่นขอ
const leaveLimit = ref<number>(0) //โควต้าลา(แต่ละประเภท)หน่วยเป็นวัน(ภายในปีนั้น)
const leaveTotal = ref<number>(0) //ลาไปแล้ว(แต่ละประเภท)หน่วยเป็นวัน(ภายในปีนั้น)
const leaveRemain = ref<number>(0) //คงเหลือโควต้า(แต่ละประเภท)หน่วยเป็นวัน(ภายในปีนั้น)
const restDayTotalOld = ref<number>(0) //จำนวนวันลาพักผ่อนสะสม จากปีที่ผ่านมา
const birthDate = ref<Date>() //วันเกิด
const dateAppoint = ref<Date>() //วันที่เข้ารับราชการ
const salary = ref<number>(0) //เงินเดือนปัจจุบัน
const salaryText = ref<string>("") //เงินเดือนปัจจุบัน(ภาษาไทย)
const leaveLast = ref<string>("")
const restDayCurrentTotal = ref<string>("")
//ดึงข้อมูล profile จาก API
async function fetchProfile() {
console.log("profile")
@ -230,7 +251,24 @@ export const useLeaveStore = defineStore("Leave", () => {
.post(config.API.leaveProfile(), { type: typeId.value })
.then((res: any) => {
const data = res.data.result
console.log(data.va)
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
salaryText.value = data.salaryText
leaveLast.value = data.leaveLast
restDayCurrentTotal.value = data.restDayCurrentTotal
console.log(data)
})
.catch((e: any) => {
messageError($q, e)
@ -260,5 +298,24 @@ export const useLeaveStore = defineStore("Leave", () => {
fetchLeaveType,
filterOption,
fetchProfile,
//ส่งออกตัวแปร profileที่ได้จาก Api
dateSendLeave,
leaveTypeName,
dear,
fullname,
positionName,
positionLevelName,
organizationName,
leaveLimit, //โควต้าลา(แต่ละประเภท)หน่วยเป็นวัน(ภายในปีนั้น)
leaveTotal, //ลาไปแล้ว(แต่ละประเภท)หน่วยเป็นวัน(ภายในปีนั้น)
leaveRemain, //คงเหลือโควต้า(แต่ละประเภท)หน่วยเป็นวัน(ภายในปีนั้น)
restDayTotalOld,
birthDate,
dateAppoint,
salary,
salaryText,
leaveLast,
restDayCurrentTotal,
}
})

View file

@ -120,7 +120,7 @@ async function FetchCheck(formData: any) {
</div>
</div>
<!-- v-if (ลาอปสมบทหรอลาประกอบพ||ลาไปศกษา กอบรม ปฎการว หรอดงาน) -->
<!-- v-if (ลาอปสมบทหรอลาประกอบพ||ลาไปศกษา กอบรม ปฎการว หรอดงาน) -->
</div>
<div>