แก้ UI รายการลา
This commit is contained in:
parent
3b6172ee03
commit
ea7af9e29c
31 changed files with 2463 additions and 1341 deletions
|
|
@ -13,7 +13,7 @@ import type { FormRef } from "@/modules/05_leave/interface/request/BirthForm";
|
|||
const $q = useQuasar();
|
||||
const dataStore = useLeaveStore();
|
||||
const mixin = useCounterMixin();
|
||||
const { date2Thai, dateToISO, messageError, convertDateToAPI } = mixin;
|
||||
const { date2Thai, dateToISO, messageError, convertDateToAPI,showLoader,hideLoader } = mixin;
|
||||
|
||||
const edit = ref<boolean>(true);
|
||||
const leaveId = ref<string>("");
|
||||
|
|
@ -46,6 +46,8 @@ const formDataBirth = reactive<any>({
|
|||
leaveEndDate: null,
|
||||
leaveTotal: "",
|
||||
leaveLast: "",
|
||||
leaveRange: "ALL",
|
||||
leaveRangeEnd: "ALL",
|
||||
leaveDetail: "",
|
||||
leaveDocument: [],
|
||||
});
|
||||
|
|
@ -115,6 +117,8 @@ function onValidate() {
|
|||
formData.append("leaveNumber", dataStore.telephoneNumber);
|
||||
formData.append("leaveDetail", formDataBirth.leaveDetail);
|
||||
formData.append("leaveTotal", formDataBirth.leaveTotal);
|
||||
formData.append("leaveRange", formDataBirth.leaveRange);
|
||||
formData.append("leaveRangeEnd", formDataBirth.leaveRangeEnd);
|
||||
|
||||
props.onSubmit(formData, isLeave.value);
|
||||
}
|
||||
|
|
@ -122,18 +126,34 @@ function onValidate() {
|
|||
|
||||
const isLeave = ref<boolean>(true);
|
||||
const reasonLeave = ref<string>("");
|
||||
|
||||
const checkDate = computed(() => {
|
||||
if (
|
||||
convertDateToAPI(formDataBirth.leaveEndDate) ==
|
||||
convertDateToAPI(formDataBirth.leaveStartDate)
|
||||
) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* check ว่าลาได้ไหม จาก api
|
||||
* @param formData
|
||||
*/
|
||||
async function fetchCheck() {
|
||||
showLoader()
|
||||
await http
|
||||
.post(config.API.leaveCheck(), {
|
||||
type: dataStore.typeId ?? null,
|
||||
StartLeaveDate: convertDateToAPI(formDataBirth.leaveStartDate) ?? null,
|
||||
EndLeaveDate: convertDateToAPI(formDataBirth.leaveEndDate) ?? null,
|
||||
leaveRange: formDataBirth.leaveRange,
|
||||
leaveRangeEnd: checkDate.value ? formDataBirth.leaveRange : formDataBirth.leaveRangeEnd
|
||||
})
|
||||
.then((res: any) => {
|
||||
hideLoader()
|
||||
const data = res.data.result;
|
||||
isLeave.value = data.isLeave;
|
||||
formDataBirth.leaveTotal = data.totalDate;
|
||||
|
|
@ -142,6 +162,7 @@ async function fetchCheck() {
|
|||
: "จำนวนวันลาเกินที่กำหนด";
|
||||
})
|
||||
.catch((e: any) => {
|
||||
hideLoader()
|
||||
messageError($q, e);
|
||||
});
|
||||
}
|
||||
|
|
@ -161,6 +182,7 @@ watch(props.data, () => {
|
|||
formDataBirth.leaveEndDate = props.data.leaveEndDate;
|
||||
formDataBirth.leaveTotal = props.data.leaveTotal;
|
||||
formDataBirth.leaveDetail = props.data.leaveDetail;
|
||||
formDataBirth.leaveRangeEnd = props.data.leaveRangeEnd;
|
||||
leaveDocumentList.value = props.data.leaveDocument;
|
||||
statusCheck.value = props.data.status;
|
||||
formDataBirth.leaveDocument = [];
|
||||
|
|
@ -176,6 +198,8 @@ onMounted(() => {
|
|||
formDataBirth.leaveTotal = props.data.leaveTotal;
|
||||
formDataBirth.leaveDetail = props.data.leaveDetail;
|
||||
leaveDocumentList.value = props.data.leaveDocument;
|
||||
formDataBirth.leaveRange = props.data.leaveRange;
|
||||
formDataBirth.leaveRangeEnd = props.data.leaveRangeEnd;
|
||||
statusCheck.value = props.data.status;
|
||||
leaveId.value = props.data.id;
|
||||
}
|
||||
|
|
@ -205,137 +229,186 @@ onMounted(() => {
|
|||
:rules="[(val:string) => !!val || `${'เขียนที่'}`]"
|
||||
/>
|
||||
|
||||
<datepicker
|
||||
class="col-12 col-md-3 col-sm-12 cursor-pointer inputgreen"
|
||||
menu-class-name="modalfix"
|
||||
v-model="formDataBirth.leaveStartDate"
|
||||
:locale="'th'"
|
||||
autoApply
|
||||
hide-bottom-space
|
||||
borderless
|
||||
:enableTimePicker="false"
|
||||
week-start="0"
|
||||
:readonly="!edit || statusCheck === 'NEW'"
|
||||
@update:model-value="formDataBirth.leaveEndDate = null"
|
||||
>
|
||||
<template #year="{ year }">
|
||||
{{ year + 543 }}
|
||||
</template>
|
||||
<template #year-overlay-value="{ value }">
|
||||
{{ parseInt(value + 543) }}
|
||||
</template>
|
||||
<template #trigger>
|
||||
<q-input
|
||||
outlined
|
||||
dense
|
||||
ref="leaveStartDateRef"
|
||||
for="leaveStartDateRef"
|
||||
<div class="col-12">
|
||||
<div class="row q-col-gutter-sm">
|
||||
<datepicker
|
||||
class="col-12 col-md-3 col-sm-6 cursor-pointer inputgreen"
|
||||
menu-class-name="modalfix"
|
||||
v-model="formDataBirth.leaveStartDate"
|
||||
:locale="'th'"
|
||||
autoApply
|
||||
hide-bottom-space
|
||||
bg-color="white"
|
||||
borderless
|
||||
:enableTimePicker="false"
|
||||
week-start="0"
|
||||
:readonly="!edit || statusCheck === 'NEW'"
|
||||
class="full-width datepicker"
|
||||
:model-value="
|
||||
formDataBirth.leaveStartDate != null
|
||||
? date2Thai(formDataBirth.leaveStartDate)
|
||||
: null
|
||||
@update:model-value="
|
||||
(formDataBirth.leaveEndDate = null), fetchCheck()
|
||||
"
|
||||
:label="`${'ลาตั้งแต่วันที่'}`"
|
||||
:rules="[(val:string) => !!val || `${'กรุณาเลือกลาตั้งแต่วันที่'}`]"
|
||||
>
|
||||
<template v-slot:prepend>
|
||||
<q-icon
|
||||
name="event"
|
||||
class="cursor-pointer"
|
||||
style="color: var(--q-primary)"
|
||||
>
|
||||
</q-icon>
|
||||
<template #year="{ year }">
|
||||
{{ year + 543 }}
|
||||
</template>
|
||||
</q-input>
|
||||
</template>
|
||||
</datepicker>
|
||||
|
||||
<datepicker
|
||||
class="col-12 col-md-3 col-sm-12 cursor-pointer inputgreen"
|
||||
menu-class-name="modalfix"
|
||||
v-model="formDataBirth.leaveEndDate"
|
||||
:locale="'th'"
|
||||
autoApply
|
||||
@update:model-value="fetchCheck()"
|
||||
borderless
|
||||
hide-bottom-space
|
||||
:enableTimePicker="false"
|
||||
week-start="0"
|
||||
:readonly="!formDataBirth.leaveStartDate"
|
||||
:min-date="formDataBirth.leaveStartDate"
|
||||
>
|
||||
<template #year="{ year }">
|
||||
{{ year + 543 }}
|
||||
</template>
|
||||
<template #year-overlay-value="{ value }">
|
||||
{{ parseInt(value + 543) }}
|
||||
</template>
|
||||
<template #trigger>
|
||||
<q-input
|
||||
<template #year-overlay-value="{ value }">
|
||||
{{ parseInt(value + 543) }}
|
||||
</template>
|
||||
<template #trigger>
|
||||
<q-input
|
||||
outlined
|
||||
dense
|
||||
ref="leaveStartDateRef"
|
||||
for="leaveStartDateRef"
|
||||
hide-bottom-space
|
||||
bg-color="white"
|
||||
:readonly="!edit || statusCheck === 'NEW'"
|
||||
class="full-width datepicker"
|
||||
:model-value="
|
||||
formDataBirth.leaveStartDate != null
|
||||
? date2Thai(formDataBirth.leaveStartDate)
|
||||
: null
|
||||
"
|
||||
:label="`${'วันที่เริ่มต้น'}`"
|
||||
:rules="[(val:string) => !!val || `${'กรุณาเลือกวันที่เริ่มต้น'}`]"
|
||||
>
|
||||
<template v-slot:prepend>
|
||||
<q-icon
|
||||
name="event"
|
||||
class="cursor-pointer"
|
||||
style="color: var(--q-primary)"
|
||||
>
|
||||
</q-icon>
|
||||
</template>
|
||||
</q-input>
|
||||
</template>
|
||||
</datepicker>
|
||||
<q-select
|
||||
outlined
|
||||
dense
|
||||
ref="leaveEndDateRef"
|
||||
for="leaveEndDateRef"
|
||||
hide-bottom-space
|
||||
:readonly="!formDataBirth.leaveStartDate"
|
||||
class="full-width datepicker"
|
||||
class="col-12 col-md-3 col-sm-6 cursor-pointer inputgreen"
|
||||
bg-color="white"
|
||||
:model-value="
|
||||
formDataBirth.leaveEndDate != null
|
||||
? date2Thai(formDataBirth.leaveEndDate)
|
||||
: null
|
||||
"
|
||||
:label="`${'ลาถึงวันที่'}`"
|
||||
:rules="[(val:string) => !!val || `${'กรุณาเลือกลาถึงวันที่'}`]"
|
||||
v-model="formDataBirth.leaveRange"
|
||||
:options="dataStore.rangeOptions"
|
||||
emit-value
|
||||
map-options
|
||||
option-value="id"
|
||||
option-label="name"
|
||||
@update:model-value="fetchCheck()"
|
||||
>
|
||||
<template v-slot:prepend>
|
||||
<q-icon
|
||||
name="event"
|
||||
class="cursor-pointer"
|
||||
name="mdi-clock-outline"
|
||||
style="color: var(--q-primary)"
|
||||
/>
|
||||
</template>
|
||||
</q-select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<div class="row q-col-gutter-sm">
|
||||
<datepicker
|
||||
class="col-12 col-md-3 col-sm-6 cursor-pointer inputgreen"
|
||||
menu-class-name="modalfix"
|
||||
v-model="formDataBirth.leaveEndDate"
|
||||
:locale="'th'"
|
||||
autoApply
|
||||
hide-bottom-space
|
||||
@update:model-value="fetchCheck()"
|
||||
borderless
|
||||
:enableTimePicker="false"
|
||||
week-start="0"
|
||||
:min-date="formDataBirth.leaveStartDate"
|
||||
>
|
||||
<template #year="{ year }">
|
||||
{{ year + 543 }}
|
||||
</template>
|
||||
<template #year-overlay-value="{ value }">
|
||||
{{ parseInt(value + 543) }}
|
||||
</template>
|
||||
<template #trigger>
|
||||
<q-input
|
||||
outlined
|
||||
dense
|
||||
ref="leaveEndDateRef"
|
||||
for="leaveEndDateRef"
|
||||
hide-bottom-space
|
||||
bg-color="white"
|
||||
class="full-width datepicker"
|
||||
:model-value="
|
||||
formDataBirth.leaveEndDate != null
|
||||
? date2Thai(formDataBirth.leaveEndDate)
|
||||
: null
|
||||
"
|
||||
:label="`${'วันที่สิ้นสุด'}`"
|
||||
:rules="[(val:string) => !!val || `${'กรุณาเลือกวันที่สิ้นสุด'}`]"
|
||||
>
|
||||
</q-icon>
|
||||
<template v-slot:prepend>
|
||||
<q-icon
|
||||
name="event"
|
||||
class="cursor-pointer"
|
||||
style="color: var(--q-primary)"
|
||||
>
|
||||
</q-icon>
|
||||
</template>
|
||||
</q-input>
|
||||
</template>
|
||||
</datepicker>
|
||||
<q-select
|
||||
v-if="!checkDate"
|
||||
outlined
|
||||
dense
|
||||
class="col-12 col-md-3 col-sm-6 cursor-pointer inputgreen"
|
||||
bg-color="white"
|
||||
v-model="formDataBirth.leaveRangeEnd"
|
||||
:options="dataStore.rangeOptions.filter((items:any)=> items.id !== 'AFTERNOON')"
|
||||
emit-value
|
||||
map-options
|
||||
option-value="id"
|
||||
option-label="name"
|
||||
@update:model-value="fetchCheck()"
|
||||
>
|
||||
<template v-slot:prepend>
|
||||
<q-icon
|
||||
name="mdi-clock-outline"
|
||||
style="color: var(--q-primary)"
|
||||
/>
|
||||
</template>
|
||||
</q-select>
|
||||
<q-input
|
||||
:bottom-slots="!isLeave ? true : false"
|
||||
:color="!isLeave ? 'red' : 'black'"
|
||||
:bg-color="!isLeave ? 'red-2' : 'white'"
|
||||
:border-color="!isLeave ? 'red' : 'gray'"
|
||||
:input-class="!isLeave ? dateEndInputStyle : ''"
|
||||
class="col-12 col-md-3 col-sm-6"
|
||||
dense
|
||||
outlined
|
||||
ref="leaveTotalRef"
|
||||
for="leaveTotalRef"
|
||||
v-model="formDataBirth.leaveTotal"
|
||||
label="จำนวนวันที่ลา"
|
||||
readonly
|
||||
>
|
||||
<template v-slot:hint>
|
||||
<span style="color: red">
|
||||
{{ !isLeave ? reasonLeave : "" }}
|
||||
</span>
|
||||
</template>
|
||||
</q-input>
|
||||
</template>
|
||||
</datepicker>
|
||||
<q-input
|
||||
class="col-12 col-md-3 col-sm-6"
|
||||
dense
|
||||
outlined
|
||||
ref="leaveTotalRef"
|
||||
for="leaveTotalRef"
|
||||
v-model="formDataBirth.leaveTotal"
|
||||
label="จำนวนวันที่ลา"
|
||||
readonly
|
||||
:bottom-slots="!isLeave ? true : false"
|
||||
:color="!isLeave ? 'red' : 'black'"
|
||||
:bg-color="!isLeave ? 'red-2' : 'white'"
|
||||
:border-color="!isLeave ? 'red' : 'gray'"
|
||||
:input-class="!isLeave ? dateEndInputStyle : ''"
|
||||
>
|
||||
<template v-slot:hint>
|
||||
<span style="color: red">
|
||||
{{ !isLeave ? reasonLeave : "" }}
|
||||
</span>
|
||||
</template>
|
||||
</q-input>
|
||||
<q-input
|
||||
class="col-12 col-md-3 col-sm-6"
|
||||
dense
|
||||
outlined
|
||||
ref="leaveLastRef"
|
||||
for="leaveLastRef"
|
||||
v-model="dataStore.leaveLast"
|
||||
label="ลาครั้งสุดท้ายเมื่อวันที่"
|
||||
readonly
|
||||
hide-bottom-space
|
||||
bg-color="white"
|
||||
/>
|
||||
<q-input
|
||||
class="col-12 col-md-3 col-sm-6"
|
||||
dense
|
||||
outlined
|
||||
ref="leaveLastRef"
|
||||
for="leaveLastRef"
|
||||
v-model="dataStore.leaveLast"
|
||||
label="ลาครั้งสุดท้ายเมื่อวันที่"
|
||||
readonly
|
||||
hide-bottom-space
|
||||
bg-color="white"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="full-width">
|
||||
<div class="q-col-gutter-sm row">
|
||||
<q-input
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue