readOnly เมื่อ Status = New

This commit is contained in:
AnandaTon 2024-01-10 16:13:48 +07:00
parent 4dc852d180
commit 16b6fedcb8
12 changed files with 305 additions and 156 deletions

View file

@ -175,6 +175,7 @@ function resetEndDate(type: string) {
}
}
const statusCheck = ref<any>("")
/** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */
onMounted(() => {
if (props.data) {
@ -187,6 +188,12 @@ onMounted(() => {
formDataSick.leaveDetail = props.data.leaveDetail
leaveDocumentList.value = props.data.leaveDocument
formDataSick.leaveAddress = props.data.leaveAddress
statusCheck.value = props.data.status
console.log(leaveDocumentList.value.length)
console.log(statusCheck.value != "NEW")
} else {
statusCheck.value = "START"
console.log(statusCheck.value != "NEW")
}
})
</script>
@ -210,14 +217,21 @@ onMounted(() => {
outlined
v-model="formDataSick.leaveWrote"
label="เขียนที่"
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
:rules="[val => !!val || `${'เขียนที่'}`]"
/>
<div class="col-12 col-md-4 col-sm-12">
<q-radio v-model="formDataSick.leaveRange" val="ALL" label="ลาทั้งวัน" checked-icon="task_alt" />
<q-radio v-model="formDataSick.leaveRange" val="MORNING" label="ลาครึ่งวันเช้า" checked-icon="task_alt" @update:model-value="resetDate" />
<q-radio v-model="formDataSick.leaveRange" val="AFTERNOON" label="ลาครึ่งวันบ่าย" checked-icon="task_alt" @update:model-value="resetDate" />
<q-radio v-model="formDataSick.leaveRange" :disable="!edit || statusCheck === 'NEW'" val="ALL" label="ลาทั้งวัน" checked-icon="task_alt" />
<q-radio v-model="formDataSick.leaveRange" :disable="!edit || statusCheck === 'NEW'" val="MORNING" label="ลาครึ่งวันเช้า" checked-icon="task_alt" @update:model-value="resetDate" />
<q-radio
v-model="formDataSick.leaveRange"
:disable="!edit || statusCheck === 'NEW'"
val="AFTERNOON"
label="ลาครึ่งวันบ่าย"
checked-icon="task_alt"
@update:model-value="resetDate"
/>
</div>
<div class="full-width">
<div class="q-col-gutter-sm row">
@ -230,7 +244,7 @@ onMounted(() => {
borderless
:enableTimePicker="false"
week-start="0"
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
@update:model-value="formDataSick.leaveEndDate = null"
>
<template #year="{ year }">
@ -246,7 +260,7 @@ onMounted(() => {
ref="leaveStartDateRef"
for="leaveStartDateRef"
hide-bottom-space
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
bg-color="white"
class="full-width cursor-pointer inputgreen"
:model-value="formDataSick.leaveStartDate != null ? date2Thai(formDataSick.leaveStartDate) : null"
@ -340,7 +354,7 @@ onMounted(() => {
bg-color="white"
unmasked-value
label="หมายเลขโทรศัพท์ที่ติดต่อได้"
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
:rules="[val => !!val || `${'กรุณากรอกหมายเลขโทรศัพท์ที่ติดต่อได้'}`]"
/>
@ -352,7 +366,7 @@ onMounted(() => {
for="leaveAddressRef"
v-model="formDataSick.leaveAddress"
label="ที่อยู่ที่ติดต่อได้ระหว่างลา"
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
:rules="[val => !!val || `${'กรุณากรอกที่อยู่ที่ติดต่อได้ระหว่างลา'}`]"
hide-bottom-space
bg-color="white"
@ -368,10 +382,10 @@ onMounted(() => {
for="leaveDetailRef"
v-model="formDataSick.leaveDetail"
label="รายละเอียด"
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
bg-color="white"
/>
<div class="full-width">
<div class="full-width" v-if="statusCheck != 'NEW'">
<div class="q-col-gutter-sm row">
<!-- multiple -->
<q-file for="leaveDocumentRef" v-model="formDataSick.leaveDocument" dense label="เอกสารประกอบ" outlined use-chips multiple bg-color="white" class="col-12 q-pl-sm col-12">
@ -379,9 +393,9 @@ onMounted(() => {
<q-icon name="attach_file" color="primary" />
</template>
</q-file>
<!-- <div class="col-12" v-if="formDataSick.leaveDocument.length == 0 && !data">
<div class="col-12" v-if="leaveDocumentList">
<q-card class="q-pa-md" bordered> ไมรายการเอกสารประกอบ </q-card>
</div> -->
</div>
</div>
</div>
<div class="col-12" v-if="data">
@ -435,7 +449,7 @@ onMounted(() => {
<q-btn v-if="!props.data || props.data.status == 'DRAFT'" id="onSubmit" type="submit" unelevated dense class="q-px-md items-center btnBlue" label="บันทึก"
><q-tooltip>นทกแบบราง</q-tooltip></q-btn
>
<q-btn v-if="data" id="onSubmit" type="button" unelevated dense class="q-px-md items-center q-ml-sm" color="primary" label="ยื่นใบลา" @click="onConfirm"
<q-btn v-if="data && statusCheck != 'NEW'" id="onSubmit" type="button" unelevated dense class="q-px-md items-center q-ml-sm" color="primary" label="ยื่นใบลา" @click="onConfirm"
><q-tooltip>นใบลา</q-tooltip></q-btn
>
</div>

View file

@ -135,7 +135,7 @@ async function fetchCheck() {
}
const leaveDocumentList = ref<any>()
const statusCheck = ref<any>("")
/** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */
onMounted(() => {
if (props.data) {
@ -147,6 +147,7 @@ onMounted(() => {
formDataBirth.leaveAddress = props.data.leaveAddress
formDataBirth.leaveDetail = props.data.leaveDetail
leaveDocumentList.value = props.data.leaveDocument
statusCheck.value = props.data.status
}
})
</script>
@ -170,7 +171,7 @@ onMounted(() => {
label="เขียนที่"
hide-bottom-space
bg-color="white"
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
:rules="[val => !!val || `${'เขียนที่'}`]"
/>
@ -184,7 +185,7 @@ onMounted(() => {
borderless
:enableTimePicker="false"
week-start="0"
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
@update:model-value="formDataBirth.leaveEndDate = null"
>
<template #year="{ year }">
@ -201,7 +202,7 @@ onMounted(() => {
for="leaveStartDateRef"
hide-bottom-space
bg-color="white"
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
class="full-width datepicker"
:model-value="formDataBirth.leaveStartDate != null ? date2Thai(formDataBirth.leaveStartDate) : null"
:label="`${'ลาตั้งแต่วันที่'}`"
@ -292,7 +293,7 @@ onMounted(() => {
mask="(###)-###-####"
unmasked-value
label="หมายเลขโทรศัพท์ที่ติดต่อได้"
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
:rules="[val => !!val || `${'กรุณากรอกหมายเลขโทรศัพท์ที่ติดต่อได้'}`]"
/>
@ -306,7 +307,7 @@ onMounted(() => {
for="leaveAddressRef"
v-model="formDataBirth.leaveAddress"
label="ที่อยู่ที่ติดต่อได้ระหว่างลา"
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
:rules="[val => !!val || `${'กรุณากรอกที่อยู่ที่ติดต่อได้ระหว่างลา'}`]"
/>
</div>
@ -321,27 +322,30 @@ onMounted(() => {
for="leaveDetailRef"
v-model="formDataBirth.leaveDetail"
label="รายละเอียด"
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
/>
<!-- multiple -->
<q-file
for="leaveDocumentRef"
hide-bottom-space
v-model="formDataBirth.leaveDocument"
@added="fileUploadDoc"
dense
bg-color="white"
label="เอกสารประกอบ"
outlined
multiple
use-chips
class="q-pl-sm col-12"
>
<template v-slot:prepend>
<q-icon name="attach_file" color="primary" />
</template>
</q-file>
<div class="full-width" v-if="statusCheck != 'NEW'">
<div class="q-col-gutter-sm row">
<!-- multiple -->
<q-file
for="leaveDocumentRef"
hide-bottom-space
v-model="formDataBirth.leaveDocument"
@added="fileUploadDoc"
dense
bg-color="white"
label="เอกสารประกอบ"
outlined
multiple
use-chips
class="q-pl-sm col-12"
>
<template v-slot:prepend>
<q-icon name="attach_file" color="primary" />
</template>
</q-file>
</div>
</div>
<!-- <div class="col-12" v-if="formDataBirth.leaveDocument.length == 0">
<q-card class="q-pa-md" bordered> ไมรายการเอกสารประกอบ </q-card>
</div> -->
@ -407,7 +411,7 @@ onMounted(() => {
<q-btn v-if="!props.data || props.data.status == 'DRAFT'" id="onSubmit" type="submit" unelevated dense class="q-px-md items-center btnBlue" label="บันทึก"
><q-tooltip>นทกแบบราง</q-tooltip></q-btn
>
<q-btn v-if="data" id="onSubmit" type="button" unelevated dense class="q-px-md items-center q-ml-sm" color="primary" label="ยื่นใบลา" @click="onConfirm"
<q-btn v-if="data && statusCheck != 'NEW'" id="onSubmit" type="button" unelevated dense class="q-px-md items-center q-ml-sm" color="primary" label="ยื่นใบลา" @click="onConfirm"
><q-tooltip>นใบลา</q-tooltip></q-btn
>
</div>

View file

@ -149,6 +149,7 @@ async function fetchCheck() {
}
const leaveDocumentList = ref<any>()
const statusCheck = ref<any>("")
/** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */
onMounted(() => {
if (props.data) {
@ -163,7 +164,7 @@ onMounted(() => {
formDataHelpWife.leaveAddress = props.data.leaveAddress
formDataHelpWife.leaveDetail = props.data.leaveDetail
leaveDocumentList.value = props.data.leaveDocument
statusCheck.value = props.data.status
// formDataHelpWife.leaveDocument = props.data.leaveDocument;
}
})
@ -187,7 +188,7 @@ onMounted(() => {
bg-color="white"
v-model="formDataHelpWife.leaveWrote"
label="เขียนที่"
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
:rules="[val => !!val || `${'เขียนที่'}`]"
/>
<datepicker
@ -200,7 +201,7 @@ onMounted(() => {
borderless
:enableTimePicker="false"
week-start="0"
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
@update:model-value="formDataHelpWife.leaveEndDate = null"
>
<template #year="{ year }">
@ -217,7 +218,7 @@ onMounted(() => {
for="leaveStartDateRef"
hide-bottom-space
bg-color="white"
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
class="full-width datepicker"
:model-value="formDataHelpWife.leaveStartDate != null ? date2Thai(formDataHelpWife.leaveStartDate) : null"
:label="`${'ลาตั้งแต่วันที่'}`"
@ -293,7 +294,7 @@ onMounted(() => {
hide-bottom-space
v-model="formDataHelpWife.wifeDayName"
label="ชื่อภรรยา"
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
:rules="[val => !!val || `${'ชื่อภรรยา'}`]"
/>
</div>
@ -308,7 +309,7 @@ onMounted(() => {
hide-bottom-space
:enableTimePicker="false"
week-start="0"
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
>
<template #year="{ year }">
{{ year + 543 }}
@ -324,7 +325,7 @@ onMounted(() => {
for="wifeDayDateBornRef"
hide-bottom-space
bg-color="white"
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
class="full-width datepicker"
:model-value="formDataHelpWife.wifeDayDateBorn != null ? date2Thai(formDataHelpWife.wifeDayDateBorn) : null"
:label="`${'วันที่คลอด'}`"
@ -350,7 +351,7 @@ onMounted(() => {
hide-bottom-space
bg-color="white"
label="หมายเลขโทรศัพท์ที่ติดต่อได้"
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
:rules="[val => !!val || `${'กรุณากรอกหมายเลขโทรศัพท์ที่ติดต่อได้'}`]"
/>
@ -364,7 +365,7 @@ onMounted(() => {
for="leaveAddressRef"
v-model="formDataHelpWife.leaveAddress"
label="ที่อยู่ที่ติดต่อได้ระหว่างลา"
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
:rules="[val => !!val || `${'กรุณากรอกที่อยู่ที่ติดต่อได้ระหว่างลา'}`]"
/>
</div>
@ -380,15 +381,28 @@ onMounted(() => {
for="leaveDetailRef"
v-model="formDataHelpWife.leaveDetail"
label="รายละเอียด"
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
/>
<!-- multiple -->
<q-file bg-color="white" ref="leaveDocumentRef" v-model="formDataHelpWife.leaveDocument" @added="fileUploadDoc" dense label="เอกสารประกอบ" outlined use-chips class="q-pl-sm col-12">
<template v-slot:prepend>
<q-icon name="attach_file" color="primary" />
</template>
</q-file>
<div class="full-width" v-if="statusCheck != 'NEW'">
<div class="q-col-gutter-sm row">
<!-- multiple -->
<q-file
bg-color="white"
ref="leaveDocumentRef"
v-model="formDataHelpWife.leaveDocument"
@added="fileUploadDoc"
dense
label="เอกสารประกอบ"
outlined
use-chips
class="q-pl-sm col-12"
>
<template v-slot:prepend>
<q-icon name="attach_file" color="primary" />
</template>
</q-file>
</div>
</div>
<div class="col-12" v-if="data">
<div class="col-12 col-md-12 col-sm-12">
<q-card bordered>
@ -455,7 +469,7 @@ onMounted(() => {
<q-btn v-if="!props.data || props.data.status == 'DRAFT'" id="onSubmit" type="submit" unelevated dense class="q-px-md items-center btnBlue" label="บันทึก"
><q-tooltip>นทกแบบราง</q-tooltip></q-btn
>
<q-btn v-if="data" id="onSubmit" type="button" unelevated dense class="q-px-md items-center q-ml-sm" color="primary" label="ยื่นใบลา" @click="onConfirm"
<q-btn v-if="data && statusCheck != 'NEW'" id="onSubmit" type="button" unelevated dense class="q-px-md items-center q-ml-sm" color="primary" label="ยื่นใบลา" @click="onConfirm"
><q-tooltip>นใบลา</q-tooltip></q-btn
>
</div>

View file

@ -166,6 +166,7 @@ const isReadOnly = computed(() => {
})
const leaveDocumentList = ref<any>()
const statusCheck = ref<any>("")
/** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */
onMounted(() => {
if (props.data) {
@ -180,6 +181,7 @@ onMounted(() => {
formDataVacation.leaveAddress = props.data.leaveAddress
formDataVacation.leaveDetail = props.data.leaveDetail
leaveDocumentList.value = props.data.leaveDocument
statusCheck.value = props.data.status
// formDataVacation.leaveDocument = props.data.leaveDocument;
}
})
@ -203,7 +205,7 @@ onMounted(() => {
outlined
v-model="formDataVacation.leaveWrote"
label="เขียนที่"
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
:rules="[val => !!val || `${'เขียนที่'}`]"
/>
<div class="col-12 col-md-4 col-sm-6">
@ -247,7 +249,7 @@ onMounted(() => {
borderless
:enableTimePicker="false"
week-start="0"
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
@update:model-value="formDataVacation.leaveEndDate = null"
>
<template #year="{ year }">
@ -264,7 +266,7 @@ onMounted(() => {
for="leaveStartDateRef"
hide-bottom-space
bg-color="white"
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
class="full-width datepicker"
:model-value="formDataVacation.leaveStartDate != null ? date2Thai(formDataVacation.leaveStartDate) : null"
:label="`${'ลาตั้งแต่วันที่'}`"
@ -343,7 +345,7 @@ onMounted(() => {
mask="(###)-###-####"
unmasked-value
label="หมายเลขโทรศัพท์ที่ติดต่อได้"
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
:rules="[val => !!val || `${'กรุณากรอกหมายเลขโทรศัพท์ที่ติดต่อได้'}`]"
/>
@ -357,7 +359,7 @@ onMounted(() => {
for="leaveAddressRef"
v-model="formDataVacation.leaveAddress"
label="ที่อยู่ที่ติดต่อได้ระหว่างลา"
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
:rules="[val => !!val || `${'กรุณากรอกที่อยู่ที่ติดต่อได้ระหว่างลา'}`]"
/>
</div>
@ -373,9 +375,9 @@ onMounted(() => {
for="leaveDetailRef"
v-model="formDataVacation.leaveDetail"
label="รายละเอียด"
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
/>
<div class="full-width">
<div class="full-width" v-if="statusCheck != 'NEW'">
<div class="q-col-gutter-sm row">
<!-- multiple -->
<q-file
@ -448,7 +450,7 @@ onMounted(() => {
<q-btn v-if="!props.data || props.data.status == 'DRAFT'" id="onSubmit" type="submit" unelevated dense class="q-px-md items-center btnBlue" label="บันทึก"
><q-tooltip>นทกแบบราง</q-tooltip></q-btn
>
<q-btn v-if="data" id="onSubmit" type="button" unelevated dense class="q-px-md items-center q-ml-sm" color="primary" label="ยื่นใบลา" @click="onConfirm"
<q-btn v-if="data && statusCheck != 'NEW'" id="onSubmit" type="button" unelevated dense class="q-px-md items-center q-ml-sm" color="primary" label="ยื่นใบลา" @click="onConfirm"
><q-tooltip>นใบลา</q-tooltip></q-btn
>
</div>

View file

@ -163,6 +163,7 @@ function updateLeaveTotal() {
}
const leaveDocumentList = ref<any>()
const statusCheck = ref<any>("")
/** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */
onMounted(() => {
if (props.data) {
@ -179,6 +180,7 @@ onMounted(() => {
formDataOrdination.ordainDayStatus = props.data.ordainDayStatus
formDataOrdination.leaveDetail = props.data.leaveDetail
leaveDocumentList.value = props.data.leaveDocument
statusCheck.value = props.data.status
// formDataOrdination.leaveDocument = props.data.leaveDocument;
}
})
@ -202,6 +204,7 @@ onMounted(() => {
hide-bottom-space
v-model="formDataOrdination.leaveWrote"
label="เขียนที่"
:readonly="!edit || statusCheck === 'NEW'"
:rules="[val => !!val || `${'เขียนที่'}`]"
/>
@ -214,6 +217,7 @@ onMounted(() => {
borderless
:enableTimePicker="false"
week-start="0"
:readonly="!edit || statusCheck === 'NEW'"
@update:model-value="formDataOrdination.leaveEndDate = null"
>
<template #year="{ year }">
@ -226,6 +230,7 @@ onMounted(() => {
<q-input
outlined
bg-color="white"
:readonly="!edit || statusCheck === 'NEW'"
dense
ref="leaveStartDateRef"
hide-bottom-space
@ -249,7 +254,7 @@ onMounted(() => {
autoApply
borderless
@update:model-value="updateLeaveTotal, fetchCheck()"
:readonly="!formDataOrdination.leaveStartDate"
:readonly="!formDataOrdination.leaveStartDate || statusCheck === 'NEW'"
:enableTimePicker="false"
:min-date="formDataOrdination.leaveStartDate"
week-start="0"
@ -270,7 +275,7 @@ onMounted(() => {
class="full-width datepicker"
:model-value="formDataOrdination.leaveEndDate != null ? date2Thai(formDataOrdination.leaveEndDate) : null"
:label="`${'ลาถึงวันที่'}`"
:readonly="!formDataOrdination.leaveStartDate"
:readonly="!formDataOrdination.leaveStartDate || statusCheck === 'NEW'"
:rules="[val => !!val || `${'กรุณาเลือกลาถึงวันที่'}`]"
>
<template v-slot:prepend>
@ -369,8 +374,8 @@ onMounted(() => {
<div class="q-pl-sm text-weight-bold text-dark col-12">เคยบวชหรอไม</div>
<div class="col-12">
<q-radio v-model="formDataOrdination.ordainDayStatus" :val="true" label="เคยบวช" checked-icon="task_alt " hide-bottom-space />
<q-radio v-model="formDataOrdination.ordainDayStatus" :val="false" label="ไม่เคยบวช" checked-icon="task_alt" hide-bottom-space />
<q-radio v-model="formDataOrdination.ordainDayStatus" :disable="!edit || statusCheck === 'NEW'" :val="true" label="เคยบวช" checked-icon="task_alt " hide-bottom-space />
<q-radio v-model="formDataOrdination.ordainDayStatus" :disable="!edit || statusCheck === 'NEW'" :val="false" label="ไม่เคยบวช" checked-icon="task_alt" hide-bottom-space />
</div>
<div class="text-weight-bold text-dark col-12">สถานทบวช</div>
@ -382,6 +387,7 @@ onMounted(() => {
autoApply
full-width
borderless
:readonly="!edit || statusCheck === 'NEW'"
hide-bottom-space
:enableTimePicker="false"
week-start="0"
@ -399,6 +405,7 @@ onMounted(() => {
dense
bg-color="white"
hide-bottom-space
:readonly="!edit || statusCheck === 'NEW'"
class="full-width datepicker"
:model-value="formDataOrdination.ordainDayOrdination != null ? date2Thai(formDataOrdination.ordainDayOrdination) : null"
:label="`${'วันอุปสมบท'}`"
@ -419,6 +426,7 @@ onMounted(() => {
bg-color="white"
outlined
full-width
:readonly="!edit || statusCheck === 'NEW'"
v-model="formDataOrdination.ordainDayLocationName"
label="ชื่อวัด"
:rules="[val => !!val || `${'กรุณากรอกชื่อวัด'}`]"
@ -434,6 +442,7 @@ onMounted(() => {
bg-color="white"
mask="(###)-###-####"
unmasked-value
:readonly="!edit || statusCheck === 'NEW'"
hide-bottom-space
label="หมายเลขโทรศัพท์"
:rules="[val => !!val || `${'กรุณากรอกหมายเลขโทรศัพท์'}`]"
@ -447,6 +456,7 @@ onMounted(() => {
hide-bottom-space
v-model="formDataOrdination.ordainDayLocationAddress"
label="ที่อยู่"
:readonly="!edit || statusCheck === 'NEW'"
:rules="[val => !!val || `${'กรุณากรอกที่อยู่'}`]"
type="textarea"
/>
@ -459,6 +469,7 @@ onMounted(() => {
bg-color="white"
hide-bottom-space
outlined
:readonly="!edit || statusCheck === 'NEW'"
v-model="formDataOrdination.ordainDayBuddhistLentName"
label="ชื่อวัด"
:rules="[val => !!val || `${'กรุณากรอกชื่อวัด'}`]"
@ -470,6 +481,7 @@ onMounted(() => {
ref="ordainDayBuddhistLentAddressRef"
bg-color="white"
outlined
:readonly="!edit || statusCheck === 'NEW'"
v-model="formDataOrdination.ordainDayBuddhistLentAddress"
label="ที่อยู่"
:rules="[val => !!val || `${'กรุณากรอกที่อยู่'}`]"
@ -486,9 +498,9 @@ onMounted(() => {
for="leaveDetailRef"
v-model="formDataOrdination.leaveDetail"
label="รายละเอียด"
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
/>
<div class="full-width col-12">
<div class="full-width col-12" v-if="statusCheck != 'NEW'">
<div class="q-col-gutter-sm row">
<!-- multiple -->
<q-file ref="leaveDocumentRef" v-model="formDataOrdination.leaveDocument" @added="fileUploadDoc" dense label="เอกสารประกอบ" multiple outlined bg-color="white" use-chips>
@ -552,7 +564,7 @@ onMounted(() => {
<q-btn v-if="!props.data || props.data.status == 'DRAFT'" id="onSubmit" type="submit" unelevated dense class="q-px-md items-center btnBlue" label="บันทึก"
><q-tooltip>นทกแบบราง</q-tooltip></q-btn
>
<q-btn v-if="data" id="onSubmit" type="button" unelevated dense class="q-px-md items-center q-ml-sm" color="primary" label="ยื่นใบลา" @click="onConfirm"
<q-btn v-if="data && statusCheck != 'NEW'" id="onSubmit" type="button" unelevated dense class="q-px-md items-center q-ml-sm" color="primary" label="ยื่นใบลา" @click="onConfirm"
><q-tooltip>นใบลา</q-tooltip></q-btn
>
</div>

View file

@ -134,6 +134,7 @@ function updateLeaveTotal() {
}
const leaveDocumentList = ref<any>()
const statusCheck = ref<any>("")
/** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */
onMounted(() => {
if (props.data) {
@ -145,6 +146,7 @@ onMounted(() => {
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;
}
})
@ -167,6 +169,7 @@ onMounted(() => {
outlined
label="เขียนที่"
hide-bottom-space
:readonly="!edit || statusCheck === 'NEW'"
:rules="[val => !!val || `${'เขียนที่'}`]"
/>
@ -181,6 +184,7 @@ onMounted(() => {
week-start="0"
:enableTimePicker="false"
:locale="'th'"
:readonly="!edit || statusCheck === 'NEW'"
@update:model-value="formDataHaji.leaveEndDate = null"
>
<template #year="{ year }">
@ -198,6 +202,7 @@ onMounted(() => {
dense
hide-bottom-space
:label="`${'ลาตั้งแต่วันที่'}`"
:readonly="!edit || statusCheck === 'NEW'"
:rules="[val => !!val || `${'กรุณาเลือกลาตั้งแต่วันที่'}`]"
:model-value="formDataHaji.leaveStartDate != null ? date2Thai(formDataHaji.leaveStartDate) : null"
>
@ -218,7 +223,7 @@ onMounted(() => {
:enableTimePicker="false"
:locale="'th'"
@update:model-value="updateLeaveTotal"
:readonly="!formDataHaji.leaveStartDate"
:readonly="!formDataHaji.leaveStartDate || statusCheck === 'NEW'"
:min-date="formDataHaji.leaveStartDate"
>
<template #year="{ year }">
@ -234,7 +239,7 @@ onMounted(() => {
bg-color="white"
outlined
dense
:readonly="!formDataHaji.leaveStartDate"
:readonly="!formDataHaji.leaveStartDate || statusCheck === 'NEW'"
hide-bottom-space
:label="`${'ลาถึงวันที่'}`"
@update:model-value="fetchCheck()"
@ -291,12 +296,21 @@ onMounted(() => {
<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" :disable="statusCheck === 'NEW'" :val="true" checked-icon="task_alt" label="เคย" />
<q-radio v-model="formDataHaji.hajjDayStatus" :disable="statusCheck === 'NEW'" :val="false" checked-icon="task_alt" label="ไม่เคยไปประกอบพิธีฮัจญ์" />
</div>
<q-input v-model="formDataHaji.leaveDetail" class="col-12 q-mt-sm cursor-pointer inputgreen" bg-color="white" dense outlined type="textarea" label="รายละเอียด" />
<div class="full-width">
<q-input
v-model="formDataHaji.leaveDetail"
class="col-12 q-mt-sm cursor-pointer inputgreen"
bg-color="white"
dense
outlined
type="textarea"
label="รายละเอียด"
:readonly="!edit || statusCheck === 'NEW'"
/>
<div class="full-width" v-if="statusCheck != 'NEW'">
<div class="q-col-gutter-sm row">
<!-- multiple -->
<q-file v-model="formDataHaji.leaveDocument" multiple bg-color="white" label="เอกสารประกอบ" use-chips @added="fileUploadDoc" dense outlined hide-bottom-space>
@ -358,7 +372,7 @@ onMounted(() => {
<q-btn v-if="!props.data || props.data.status == 'DRAFT'" id="onSubmit" type="submit" unelevated dense class="q-px-md items-center btnBlue" label="บันทึก"
><q-tooltip>นทกแบบราง</q-tooltip></q-btn
>
<q-btn v-if="data" id="onSubmit" type="button" unelevated dense class="q-px-md items-center q-ml-sm" color="primary" label="ยื่นใบลา" @click="onConfirm"
<q-btn v-if="data && statusCheck != 'NEW'" id="onSubmit" type="button" unelevated dense class="q-px-md items-center q-ml-sm" color="primary" label="ยื่นใบลา" @click="onConfirm"
><q-tooltip>นใบลา</q-tooltip></q-btn
>
</div>

View file

@ -151,6 +151,7 @@ function updateLeaveTotal() {
}
const leaveDocumentList = ref<any>()
const statusCheck = ref<any>("")
/** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */
onMounted(() => {
if (props.data) {
@ -165,6 +166,7 @@ onMounted(() => {
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;
}
})
@ -187,6 +189,7 @@ onMounted(() => {
hide-bottom-space
v-model="formDataMilitary.leaveWrote"
label="เขียนที่"
:readonly="!edit || statusCheck === 'NEW'"
:rules="[val => !!val || `${'เขียนที่'}`]"
/>
@ -199,6 +202,7 @@ onMounted(() => {
borderless
:enableTimePicker="false"
week-start="0"
:readonly="!edit || statusCheck === 'NEW'"
@update:model-value="formDataMilitary.leaveEndDate = null"
>
<template #year="{ year }">
@ -214,6 +218,7 @@ onMounted(() => {
dense
ref="leaveStartDateRef"
hide-bottom-space
:readonly="!edit || statusCheck === 'NEW'"
class="full-width datepicker"
:model-value="formDataMilitary.leaveStartDate != null ? date2Thai(formDataMilitary.leaveStartDate) : null"
:label="`${'ลาตั้งแต่วันที่'}`"
@ -236,7 +241,7 @@ onMounted(() => {
:enableTimePicker="false"
week-start="0"
@update:model-value="updateLeaveTotal, fetchCheck()"
:readonly="!formDataMilitary.leaveStartDate"
:readonly="!formDataMilitary.leaveStartDate || statusCheck === 'NEW'"
:min-date="formDataMilitary.leaveStartDate"
>
<template #year="{ year }">
@ -252,7 +257,7 @@ onMounted(() => {
ref="leaveEndDateRef"
bg-color="white"
hide-bottom-space
:readonly="!formDataMilitary.leaveStartDate"
:readonly="!formDataMilitary.leaveStartDate || statusCheck === 'NEW'"
class="full-width datepicker"
:model-value="formDataMilitary.leaveEndDate != null ? date2Thai(formDataMilitary.leaveEndDate) : null"
:label="`${'ลาถึงวันที่'}`"
@ -288,6 +293,7 @@ onMounted(() => {
v-model="formDataMilitary.absentDaySummon"
label="ได้รับหมายเรียกของ"
hide-bottom-space
:readonly="!edit || statusCheck === 'NEW'"
:rules="[val => !!val || `${'กรุณากรอกได้รับหมายเรียกของ'}`]"
/>
@ -300,6 +306,7 @@ onMounted(() => {
v-model="formDataMilitary.absentDayLocation"
label="ที่"
hide-bottom-space
:readonly="!edit || statusCheck === 'NEW'"
:rules="[val => !!val || `${'กรุณากรอกที่'}`]"
/>
</div>
@ -314,6 +321,7 @@ onMounted(() => {
:locale="'th'"
autoApply
borderless
:readonly="!edit || statusCheck === 'NEW'"
:enableTimePicker="false"
week-start="0"
>
@ -330,6 +338,7 @@ onMounted(() => {
ref="absentDayRegistorDateRef"
bg-color="white"
hide-bottom-space
:readonly="!edit || statusCheck === 'NEW'"
class="full-width datepicker"
:model-value="formDataMilitary.absentDayRegistorDate != null ? date2Thai(formDataMilitary.absentDayRegistorDate) : null"
:label="`${'ลงวันที่'}`"
@ -351,6 +360,7 @@ onMounted(() => {
v-model="formDataMilitary.absentDayGetIn"
label="ให้เข้ารับการ"
hide-bottom-space
:readonly="!edit || statusCheck === 'NEW'"
:rules="[val => !!val || `${'กรุณากรอกให้เข้ารับการ'}`]"
/>
@ -363,23 +373,33 @@ onMounted(() => {
v-model="formDataMilitary.absentDayAt"
label="ณ ที่"
hide-bottom-space
:readonly="!edit || statusCheck === 'NEW'"
:rules="[val => !!val || `${'กรุณากรอก ณ ที่'}`]"
/>
</div>
</div>
<q-input class="col-12 col-md-12 col-sm-12 cursor-pointer inputgreen" dense bg-color="white" outlined v-model="formDataMilitary.leaveDetail" type="textarea" label="รายละเอียด" />
<q-input
class="col-12 col-md-12 col-sm-12 cursor-pointer inputgreen"
dense
:readonly="!edit || statusCheck === 'NEW'"
bg-color="white"
outlined
v-model="formDataMilitary.leaveDetail"
type="textarea"
label="รายละเอียด"
/>
<div class="col-12">
<div class="col-12" v-if="statusCheck != 'NEW'">
<!-- multiple -->
<q-file v-model="formDataMilitary.leaveDocument" multiple dense label="เอกสารประกอบ" outlined bg-color="white" hide-bottom-space use-chips @added="fileUploadDoc">
<template v-slot:prepend>
<q-icon name="attach_file" color="primary" />
</template>
</q-file>
<div class="col-12" v-if="formDataMilitary.leaveDocument.length == 0">
<!-- <div class="col-12" v-if="formDataMilitary.leaveDocument.length == 0">
<q-card class="q-pa-md" bordered> ไมรายการเอกสารประกอบ </q-card>
</div>
</div> -->
<div class="col-12" v-if="data">
<div class="col-12 col-md-12 col-sm-12">
<q-card bordered>
@ -430,7 +450,7 @@ onMounted(() => {
<q-btn v-if="!props.data || props.data.status == 'DRAFT'" id="onSubmit" type="submit" unelevated dense class="q-px-md items-center btnBlue" label="บันทึก"
><q-tooltip>นทกแบบราง</q-tooltip></q-btn
>
<q-btn v-if="data" id="onSubmit" type="button" unelevated dense class="q-px-md items-center q-ml-sm" color="primary" label="ยื่นใบลา" @click="onConfirm"
<q-btn v-if="data && statusCheck != 'NEW'" id="onSubmit" type="button" unelevated dense class="q-px-md items-center q-ml-sm" color="primary" label="ยื่นใบลา" @click="onConfirm"
><q-tooltip>นใบลา</q-tooltip></q-btn
>
</div>

View file

@ -168,6 +168,7 @@ function updateLeaveTotal() {
}
const leaveDocumentList = ref<any>()
const statusCheck = ref<any>("")
/** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */
onMounted(async () => {
if (props.data) {
@ -191,6 +192,7 @@ onMounted(async () => {
leaveDocumentList.value = props.data.leaveDocument
const leaveTotal = await calculateDurationYmd(props.data.leaveStartDate, props.data.leaveEndDate)
formDataStudy.leaveTotal = leaveTotal
statusCheck.value = props.data.status
}
})
</script>
@ -212,6 +214,7 @@ onMounted(async () => {
outlined
label="เขียนที่"
hide-bottom-space
:readonly="!edit || statusCheck === 'NEW'"
:rules="[val => !!val || `${'เขียนที่'}`]"
/>
@ -224,6 +227,7 @@ onMounted(async () => {
week-start="0"
:enableTimePicker="false"
:locale="'th'"
:readonly="!edit || statusCheck === 'NEW'"
@update:model-value="formDataStudy.leaveEndDate = null"
>
<template #year="{ year }">
@ -240,6 +244,7 @@ onMounted(async () => {
outlined
dense
lazy-rules
:readonly="!edit || statusCheck === 'NEW'"
hide-bottom-space
:label="`${'ลาตั้งแต่วันที่'}`"
:model-value="formDataStudy.leaveStartDate != null ? date2Thai(formDataStudy.leaveStartDate) : null"
@ -261,7 +266,7 @@ onMounted(async () => {
week-start="0"
:locale="'th'"
@update:model-value="updateLeaveTotal()"
:readonly="!formDataStudy.leaveStartDate"
:readonly="!formDataStudy.leaveStartDate || statusCheck === 'NEW'"
:enableTimePicker="false"
:min-date="formDataStudy.leaveStartDate"
>
@ -281,7 +286,7 @@ onMounted(async () => {
bg-color="white"
hide-bottom-space
:label="`${'ลาถึงวันที่'}`"
:readonly="!formDataStudy.leaveStartDate"
:readonly="!formDataStudy.leaveStartDate || statusCheck === 'NEW'"
:model-value="formDataStudy.leaveEndDate != null ? date2Thai(formDataStudy.leaveEndDate) : null"
:rules="[val => !!val || `${'กรุณาเลือกลาถึงวันที่'}`]"
>
@ -387,6 +392,7 @@ onMounted(async () => {
bg-color="white"
dense
outlined
:readonly="!edit || statusCheck === 'NEW'"
label="ชื่อสถานศึกษา"
hide-bottom-space
:rules="[val => !!val || `${'กรุณากรอกชื่อสถานศึกษา'}`]"
@ -399,6 +405,7 @@ onMounted(async () => {
bg-color="white"
dense
outlined
:readonly="!edit || statusCheck === 'NEW'"
label="ชั้นปริญญา"
hide-bottom-space
:rules="[val => !!val || `${'กรุณากรอกชั้นปริญญา'}`]"
@ -411,6 +418,7 @@ onMounted(async () => {
bg-color="white"
dense
outlined
:readonly="!edit || statusCheck === 'NEW'"
label="ศึกษาวิชา"
hide-bottom-space
:rules="[val => !!val || `${'กรุณากรอกศึกษาวิชา'}`]"
@ -423,6 +431,7 @@ onMounted(async () => {
bg-color="white"
dense
outlined
:readonly="!edit || statusCheck === 'NEW'"
label="ประเทศ"
hide-bottom-space
:rules="[val => !!val || `${'กรุณากรอกประเทศ'}`]"
@ -435,6 +444,7 @@ onMounted(async () => {
bg-color="white"
dense
outlined
:readonly="!edit || statusCheck === 'NEW'"
label="ด้วยทุน"
hide-bottom-space
:rules="[val => !!val || `${'กรุณากรอกด้วยทุน'}`]"
@ -447,6 +457,7 @@ onMounted(async () => {
bg-color="white"
dense
outlined
:readonly="!edit || statusCheck === 'NEW'"
unmasked-value
hide-bottom-space
mask="(###)-###-####"
@ -461,6 +472,7 @@ onMounted(async () => {
bg-color="white"
dense
outlined
:readonly="!edit || statusCheck === 'NEW'"
label="ที่อยู่ที่ติดต่อได้ระหว่างลา"
hide-bottom-space
:rules="[val => !!val || `${'กรุณากรอก ที่อยู่ที่ติดต่อได้ระหว่างลา'}`]"
@ -468,9 +480,18 @@ onMounted(async () => {
</div>
</div>
<q-input v-model="formDataStudy.leaveDetail" class="col-12 col-md-12 col-sm-12 cursor-pointer inputgreen" bg-color="white" dense outlined type="textarea" label="รายละเอียด" />
<q-input
v-model="formDataStudy.leaveDetail"
:readonly="!edit || statusCheck === 'NEW'"
class="col-12 col-md-12 col-sm-12 cursor-pointer inputgreen"
bg-color="white"
dense
outlined
type="textarea"
label="รายละเอียด"
/>
<div class="col-12">
<div class="col-12" v-if="statusCheck != 'NEW'">
<!-- multiple -->
<q-file v-model="formDataStudy.leaveDocument" bg-color="white" multiple dense outlined use-chips @added="fileUploadDoc" label="เอกสารประกอบ">
<template v-slot:prepend>
@ -530,7 +551,7 @@ onMounted(async () => {
<q-btn v-if="!props.data || props.data.status == 'DRAFT'" id="onSubmit" type="submit" unelevated dense class="q-px-md items-center btnBlue" label="บันทึก"
><q-tooltip>นทกแบบราง</q-tooltip></q-btn
>
<q-btn v-if="data" id="onSubmit" type="button" unelevated dense class="q-px-md items-center q-ml-sm" color="primary" label="ยื่นใบลา" @click="onConfirm"
<q-btn v-if="data && statusCheck != 'NEW'" id="onSubmit" type="button" unelevated dense class="q-px-md items-center q-ml-sm" color="primary" label="ยื่นใบลา" @click="onConfirm"
><q-tooltip>นใบลา</q-tooltip></q-btn
>
</div>

View file

@ -173,6 +173,7 @@ const formattedSalary = computed(() => {
})
const leaveDocumentList = ref<any>()
const statusCheck = ref<any>("")
/** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */
onMounted(async () => {
if (props.data) {
@ -195,6 +196,7 @@ onMounted(async () => {
const leaveTotal = await calculateDurationYmd(props.data.leaveStartDate, props.data.leaveEndDate)
formDataTrain.leaveTotal = leaveTotal
leaveDocumentList.value = props.data.leaveDocument
statusCheck.value = props.data.status
}
})
</script>
@ -215,6 +217,7 @@ onMounted(async () => {
dense
outlined
label="เขียนที่"
:readonly="!edit || statusCheck === 'NEW'"
hide-bottom-space
:rules="[val => !!val || `${'เขียนที่'}`]"
/>
@ -228,6 +231,7 @@ onMounted(async () => {
week-start="0"
:enableTimePicker="false"
:locale="'th'"
:readonly="!edit || statusCheck === 'NEW'"
@update:model-value="formDataTrain.leaveEndDate = null"
>
<template #year="{ year }">
@ -245,6 +249,7 @@ onMounted(async () => {
dense
lazy-rules
hide-bottom-space
:readonly="!edit || statusCheck === 'NEW'"
:label="`${'ลาตั้งแต่วันที่'}`"
:model-value="formDataTrain.leaveStartDate != null ? date2Thai(formDataTrain.leaveStartDate) : null"
:rules="[val => !!val || `${'กรุณาเลือกลาตั้งแต่วันที่'}`]"
@ -264,7 +269,7 @@ onMounted(async () => {
borderless
@update:model-value="updateLeaveTotal()"
week-start="0"
:readonly="!formDataTrain.leaveStartDate"
:readonly="!formDataTrain.leaveStartDate || statusCheck === 'NEW'"
:locale="'th'"
:enableTimePicker="false"
:min-date="formDataTrain.leaveStartDate"
@ -285,7 +290,7 @@ onMounted(async () => {
bg-color="white"
hide-bottom-space
:label="`${'ลาถึงวันที่'}`"
:readonly="!formDataTrain.leaveStartDate"
:readonly="!formDataTrain.leaveStartDate || statusCheck === 'NEW'"
:model-value="formDataTrain.leaveEndDate != null ? date2Thai(formDataTrain.leaveEndDate) : null"
:rules="[val => !!val || `${'กรุณาเลือกลาถึงวันที่'}`]"
>
@ -402,6 +407,7 @@ onMounted(async () => {
outlined
label="ด้าน/หลักสูตร"
hide-bottom-space
:readonly="!edit || statusCheck === 'NEW'"
:rules="[val => !!val || `${'กรุณากรอกด้าน/หลักสูตร'}`]"
/>
@ -414,6 +420,7 @@ onMounted(async () => {
outlined
label="ณ สถานที่"
hide-bottom-space
:readonly="!edit || statusCheck === 'NEW'"
:rules="[val => !!val || `${'กรุณากรอก ณ สถานที่'}`]"
/>
@ -426,6 +433,7 @@ onMounted(async () => {
outlined
label="ประเทศ"
hide-bottom-space
:readonly="!edit || statusCheck === 'NEW'"
:rules="[val => !!val || `${'กรุณากรอกประเทศ'}`]"
/>
@ -438,6 +446,7 @@ onMounted(async () => {
outlined
label="ด้วยทุน"
hide-bottom-space
:readonly="!edit || statusCheck === 'NEW'"
:rules="[val => !!val || `${'กรุณากรอกด้วยทุน'}`]"
/>
@ -451,6 +460,7 @@ onMounted(async () => {
hide-bottom-space
bg-color="white"
mask="(###)-###-####"
:readonly="!edit || statusCheck === 'NEW'"
label="หมายเลขโทรศัพท์ที่ติดต่อได้"
:rules="[val => !!val || `${'กรุณากรอกหมายเลขโทรศัพท์ที่ติดต่อได้'}`]"
/>
@ -463,15 +473,25 @@ onMounted(async () => {
dense
outlined
label="ที่อยู่ที่ติดต่อได้ระหว่างลา"
:readonly="!edit || statusCheck === 'NEW'"
hide-bottom-space
:rules="[val => !!val || `${'กรุณากรอก ที่อยู่ที่ติดต่อได้ระหว่างลา'}`]"
/>
</div>
</div>
<q-input v-model="formDataTrain.leaveDetail" class="col-12 col-md-12 col-sm-12 cursor-pointer inputgreen" bg-color="white" dense outlined type="textarea" label="รายละเอียด" />
<q-input
v-model="formDataTrain.leaveDetail"
class="col-12 col-md-12 col-sm-12 cursor-pointer inputgreen"
:readonly="!edit || statusCheck === 'NEW'"
bg-color="white"
dense
outlined
type="textarea"
label="รายละเอียด"
/>
<div class="col-12">
<div class="col-12" v-if="statusCheck != 'NEW'">
<!-- multiple -->
<q-file v-model="formDataTrain.leaveDocument" bg-color="white" multiple dense outlined label="เอกสารประกอบ">
<template v-slot:prepend>
@ -531,7 +551,7 @@ onMounted(async () => {
<q-btn v-if="!props.data || props.data.status == 'DRAFT'" id="onSubmit" type="submit" unelevated dense class="q-px-md items-center btnBlue" label="บันทึก"
><q-tooltip>นทกแบบราง</q-tooltip></q-btn
>
<q-btn v-if="data" id="onSubmit" type="button" unelevated dense class="q-px-md items-center q-ml-sm" color="primary" label="ยื่นใบลา" @click="onConfirm"
<q-btn v-if="data && statusCheck != 'NEW'" id="onSubmit" type="button" unelevated dense class="q-px-md items-center q-ml-sm" color="primary" label="ยื่นใบลา" @click="onConfirm"
><q-tooltip>นใบลา</q-tooltip></q-btn
>
</div>

View file

@ -153,6 +153,7 @@ async function FetchCheck() {
const leaveDocumentList = ref<any>()
const leaveDraftDocument = ref<string>()
const statusCheck = ref<any>("")
/** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */
onMounted(() => {
if (props.data) {
@ -163,6 +164,7 @@ onMounted(() => {
// formDataWorkInternational.leaveDocument = props.data.leaveDocument;
leaveDraftDocument.value = props.data.leaveDraftDocument
leaveDocumentList.value = props.data.leaveDocument
statusCheck.value = props.data.status
}
})
</script>
@ -185,7 +187,7 @@ onMounted(() => {
outlined
v-model="formDataWorkInternational.leaveWrote"
label="เขียนที่"
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
:rules="[val => !!val || `${'เขียนที่'}`]"
/>
@ -199,7 +201,7 @@ onMounted(() => {
borderless
:enableTimePicker="false"
week-start="0"
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
@update:model-value="formDataWorkInternational.leaveEndDate = null"
>
<template #year="{ year }">
@ -216,7 +218,7 @@ onMounted(() => {
for="leaveStartDateRef"
hide-bottom-space
bg-color="white"
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
class="full-width datepicker"
:model-value="formDataWorkInternational.leaveStartDate != null ? date2Thai(formDataWorkInternational.leaveStartDate) : null"
:label="`${'ลาตั้งแต่วันที่'}`"
@ -240,7 +242,7 @@ onMounted(() => {
:enableTimePicker="false"
@update:model-value="FetchCheck()"
week-start="0"
:readonly="!formDataWorkInternational.leaveStartDate"
:readonly="!formDataWorkInternational.leaveStartDate || statusCheck === 'NEW'"
:min-date="formDataWorkInternational.leaveStartDate"
>
<template #year="{ year }">
@ -257,7 +259,7 @@ onMounted(() => {
for="leaveEndDateRef"
hide-bottom-space
bg-color="white"
:readonly="!formDataWorkInternational.leaveStartDate"
:readonly="!formDataWorkInternational.leaveStartDate || statusCheck === 'NEW'"
class="full-width datepicker"
:model-value="formDataWorkInternational.leaveEndDate != null ? date2Thai(formDataWorkInternational.leaveEndDate) : null"
:label="`${'ลาถึงวันที่'}`"
@ -293,25 +295,28 @@ onMounted(() => {
for="leaveDetailRef"
v-model="formDataWorkInternational.leaveDetail"
label="รายละเอียด"
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
/>
<q-file
ref="fileRef"
bg-color="white"
v-model="formDataWorkInternational.leaveDocument"
multiple
@added="fileUploadDoc"
dense
label="เอกสารประกอบ"
outlined
use-chips
class="q-pl-sm col-12"
>
<template v-slot:prepend>
<q-icon name="attach_file" color="primary" />
</template>
</q-file>
<div class="full-width" v-if="statusCheck != 'NEW'">
<div class="q-col-gutter-sm row">
<q-file
ref="fileRef"
bg-color="white"
v-model="formDataWorkInternational.leaveDocument"
multiple
@added="fileUploadDoc"
dense
label="เอกสารประกอบ"
outlined
use-chips
class="q-pl-sm col-12"
>
<template v-slot:prepend>
<q-icon name="attach_file" color="primary" />
</template>
</q-file>
</div>
</div>
<!-- <div class="col-12" v-if="formDataWorkInternational.leaveDocument.length == 0">
<q-card class="q-pa-md" bordered> ไมรายการเอกสารประกอบ </q-card>
</div> -->
@ -411,7 +416,7 @@ onMounted(() => {
<q-btn v-if="!props.data || props.data.status == 'DRAFT'" id="onSubmit" type="submit" unelevated dense class="q-px-md items-center btnBlue" label="บันทึก"
><q-tooltip>นทกแบบราง</q-tooltip></q-btn
>
<q-btn v-if="data" id="onSubmit" type="button" unelevated dense class="q-px-md items-center q-ml-sm" color="primary" label="ยื่นใบลา" @click="onConfirm"
<q-btn v-if="data && statusCheck != 'NEW'" id="onSubmit" type="button" unelevated dense class="q-px-md items-center q-ml-sm" color="primary" label="ยื่นใบลา" @click="onConfirm"
><q-tooltip>นใบลา</q-tooltip></q-btn
>
</div>

View file

@ -184,6 +184,7 @@ function updateLeaveHistoryTotal() {
}
const leaveDocumentList = ref<any>()
const statusCheck = ref<any>("")
/** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */
onMounted(async () => {
if (props.data) {
@ -207,9 +208,9 @@ onMounted(async () => {
const leaveTotal = await calculateDurationYmd(props.data.leaveStartDate, props.data.leaveEndDate)
formDataFollowSpouse.leaveTotal = leaveTotal
const coupleDayTotalHistory = await calculateDurationYmd(props.data.coupleDayStartDateHistory, props.data.coupleDayEndDateHistory)
formDataFollowSpouse.coupleDayTotalHistory = coupleDayTotalHistory
statusCheck.value = props.data.status
}
})
</script>
@ -232,7 +233,7 @@ onMounted(async () => {
outlined
v-model="formDataFollowSpouse.leaveWrote"
label="เขียนที่"
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
:rules="[val => !!val || `${'เขียนที่'}`]"
/>
<datepicker
@ -245,7 +246,7 @@ onMounted(async () => {
borderless
:enableTimePicker="false"
week-start="0"
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
@update:model-value="formDataFollowSpouse.leaveEndDate = null"
>
<template #year="{ year }">
@ -262,7 +263,7 @@ onMounted(async () => {
for="leaveStartDateRef"
hide-bottom-space
bg-color="white"
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
class="full-width datepicker"
:model-value="formDataFollowSpouse.leaveStartDate != null ? date2Thai(formDataFollowSpouse.leaveStartDate) : null"
:label="`${'ลาตั้งแต่วันที่'}`"
@ -286,7 +287,7 @@ onMounted(async () => {
:enableTimePicker="false"
week-start="0"
@update:model-value="updateLeaveTotal()"
:readonly="!formDataFollowSpouse.leaveStartDate"
:readonly="!formDataFollowSpouse.leaveStartDate || statusCheck === 'NEW'"
:min-date="formDataFollowSpouse.leaveStartDate"
>
<template #year="{ year }">
@ -303,7 +304,7 @@ onMounted(async () => {
for="leaveEndDateRef"
hide-bottom-space
bg-color="white"
:readonly="!formDataFollowSpouse.leaveStartDate"
:readonly="!formDataFollowSpouse.leaveStartDate || statusCheck === 'NEW'"
class="full-width datepicker"
:model-value="formDataFollowSpouse.leaveEndDate != null ? date2Thai(formDataFollowSpouse.leaveEndDate) : null"
:label="`${'ลาถึงวันที่'}`"
@ -367,7 +368,7 @@ onMounted(async () => {
outlined
v-model="formDataFollowSpouse.coupleDayName"
label="ชื่อคู่สมรส"
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
:rules="[val => !!val || `${'ชื่อคู่สมรส'}`]"
/>
</div>
@ -382,7 +383,7 @@ onMounted(async () => {
bg-color="white"
v-model="formDataFollowSpouse.coupleDayPosition"
label="ตำแหน่งคู่สมรส"
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
:rules="[val => !!val || `${'ตำแหน่งคู่สมรส'}`]"
/>
</div>
@ -397,7 +398,7 @@ onMounted(async () => {
bg-color="white"
v-model="formDataFollowSpouse.coupleDayLevel"
label="ระดับคู่สมรส"
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
:rules="[val => !!val || `${'ระดับคู่สมรส'}`]"
/>
</div>
@ -412,7 +413,7 @@ onMounted(async () => {
bg-color="white"
v-model="formDataFollowSpouse.coupleDayLevelCountry"
label="ไปปฏิบัติราชการ ณ ประเทศ"
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
:rules="[val => !!val || `${'ปฏิบัติราชการ ณ ประเทศ'}`]"
/>
</div>
@ -425,6 +426,7 @@ onMounted(async () => {
autoApply
hide-bottom-space
borderless
:readonly="!edit || statusCheck === 'NEW'"
:enableTimePicker="false"
week-start="0"
>
@ -443,6 +445,7 @@ onMounted(async () => {
hide-bottom-space
bg-color="white"
class="full-width"
:readonly="!edit || statusCheck === 'NEW'"
:model-value="formDataFollowSpouse.coupleDayStartDateHistory != null ? date2Thai(formDataFollowSpouse.coupleDayStartDateHistory) : null"
:label="`${'ตั้งแต่วันที่'}`"
:rules="[val => !!val || `${'กรุณาเลือกตั้งแต่วันที่'}`]"
@ -462,6 +465,7 @@ onMounted(async () => {
hide-bottom-space
borderless
:enableTimePicker="false"
:readonly="!edit || statusCheck === 'NEW'"
week-start="0"
@update:model-value="updateLeaveHistoryTotal()"
>
@ -479,6 +483,7 @@ onMounted(async () => {
for="coupleDayEndDateHistoryRef"
hide-bottom-space
bg-color="white"
:readonly="!edit || statusCheck === 'NEW'"
class="full-width"
:model-value="formDataFollowSpouse.coupleDayEndDateHistory != null ? date2Thai(formDataFollowSpouse.coupleDayEndDateHistory) : null"
:label="`${'ถึงวันที่'}`"
@ -514,6 +519,7 @@ onMounted(async () => {
for="coupleDayCountryHistoryRef"
v-model="formDataFollowSpouse.coupleDayCountryHistory"
label="ประเทศ"
:readonly="!edit || statusCheck === 'NEW'"
:rules="[val => !!val || `${'กรุณาเลือกประเทศ'}`]"
/>
@ -528,26 +534,29 @@ onMounted(async () => {
for="leaveDetailRef"
v-model="formDataFollowSpouse.leaveDetail"
label="รายละเอียด"
:readonly="!edit"
:readonly="!edit || statusCheck === 'NEW'"
/>
<!-- multiple -->
<q-file
ref="fileRef"
bg-color="white"
v-model="formDataFollowSpouse.leaveDocument"
multiple
@added="fileUploadDoc"
dense
label="เอกสารประกอบ"
outlined
use-chips
class="q-pl-sm col-12"
>
<template v-slot:prepend>
<q-icon name="attach_file" color="primary" />
</template>
</q-file>
<div class="full-width" v-if="statusCheck != 'NEW'">
<div class="q-col-gutter-sm row">
<!-- multiple -->
<q-file
ref="fileRef"
bg-color="white"
v-model="formDataFollowSpouse.leaveDocument"
multiple
@added="fileUploadDoc"
dense
label="เอกสารประกอบ"
outlined
use-chips
class="q-pl-sm col-12"
>
<template v-slot:prepend>
<q-icon name="attach_file" color="primary" />
</template>
</q-file>
</div>
</div>
<!-- <div class="col-12" v-if="formDataFollowSpouse.leaveDocument.length == 0">
<q-card class="q-pa-md" bordered> ไมรายการเอกสารประกอบ </q-card>
</div> -->
@ -601,7 +610,7 @@ onMounted(async () => {
<q-btn v-if="!props.data || props.data.status == 'DRAFT'" id="onSubmit" type="submit" unelevated dense class="q-px-md items-center btnBlue" label="บันทึก"
><q-tooltip>นทกแบบราง</q-tooltip></q-btn
>
<q-btn v-if="data" id="onSubmit" type="button" unelevated dense class="q-px-md items-center q-ml-sm" color="primary" label="ยื่นใบลา" @click="onConfirm"
<q-btn v-if="data && statusCheck != 'NEW'" id="onSubmit" type="button" unelevated dense class="q-px-md items-center q-ml-sm" color="primary" label="ยื่นใบลา" @click="onConfirm"
><q-tooltip>นใบลา</q-tooltip></q-btn
>
</div>

View file

@ -149,6 +149,7 @@ async function onClickDownloadFile(id: string, fileName: string) {
const leaveDocumentList = ref<any>()
const leaveDraftDocument = ref<string>()
const statusCheck = ref<any>("")
/** ตรวจสอบว่ามีการส่งข้อมูลเข้ามาที่ฟอร์มไหม เมื่อมีการส่งจะ map ข้อมูลเข้า v-model ของฟอร์ม */
onMounted(() => {
if (props.data) {
@ -159,6 +160,7 @@ onMounted(() => {
// formDataRehabilitation.leaveDocument = props.data.leaveDocument;
leaveDraftDocument.value = props.data.leaveDraftDocument
leaveDocumentList.value = props.data.leaveDocument
statusCheck.value = props.data.status
}
})
</script>
@ -180,6 +182,7 @@ onMounted(() => {
bg-color="white"
label="เขียนที่"
hide-bottom-space
:readonly="!edit || statusCheck === 'NEW'"
:rules="[val => !!val || `${'เขียนที่'}`]"
/>
@ -192,6 +195,7 @@ onMounted(() => {
week-start="0"
:enableTimePicker="false"
:locale="'th'"
:readonly="!edit || statusCheck === 'NEW'"
@update:model-value="formDataRehabilitation.leaveEndDate = null"
>
<template #year="{ year }">
@ -209,6 +213,7 @@ onMounted(() => {
dense
lazy-rules
hide-bottom-space
:readonly="!edit || statusCheck === 'NEW'"
:model-value="formDataRehabilitation.leaveStartDate != null ? date2Thai(formDataRehabilitation.leaveStartDate) : null"
:label="`${'ลาตั้งแต่วันที่'}`"
:rules="[val => !!val || `${'กรุณาเลือกลาตั้งแต่วันที่'}`]"
@ -229,7 +234,7 @@ onMounted(() => {
week-start="0"
:locale="'th'"
@update:model-value="FetchCheck()"
:readonly="!formDataRehabilitation.leaveStartDate"
:readonly="!formDataRehabilitation.leaveStartDate || statusCheck === 'NEW'"
:enableTimePicker="false"
:min-date="formDataRehabilitation.leaveStartDate"
>
@ -248,7 +253,7 @@ onMounted(() => {
lazy-rules
bg-color="white"
hide-bottom-space
:readonly="!formDataRehabilitation.leaveStartDate"
:readonly="!formDataRehabilitation.leaveStartDate || statusCheck === 'NEW'"
:model-value="formDataRehabilitation.leaveEndDate != null ? date2Thai(formDataRehabilitation.leaveEndDate) : null"
:label="`${'ลาถึงวันที่'}`"
:rules="[val => !!val || `${'กรุณาเลือกลาถึงวันที่'}`]"
@ -260,9 +265,18 @@ onMounted(() => {
</template>
</datepicker>
<q-input v-model="formDataRehabilitation.leaveDetail" class="col-12 col-md-12 col-sm-12 cursor-pointer inputgreen" bg-color="white" dense outlined type="textarea" label="รายละเอียด" />
<q-input
v-model="formDataRehabilitation.leaveDetail"
:readonly="!edit || statusCheck === 'NEW'"
class="col-12 col-md-12 col-sm-12 cursor-pointer inputgreen"
bg-color="white"
dense
outlined
type="textarea"
label="รายละเอียด"
/>
<div class="col-12">
<div class="col-12" v-if="statusCheck != 'NEW'">
<!-- multiple -->
<q-file v-model="formDataRehabilitation.leaveDocument" @added="fileUploadDoc" multiple use-chips bg-color="white" dense outlined label="เอกสารประกอบ">
<template v-slot:prepend>
@ -369,7 +383,7 @@ onMounted(() => {
<q-btn v-if="!props.data || props.data.status == 'DRAFT'" id="onSubmit" type="submit" unelevated dense class="q-px-md items-center btnBlue" label="บันทึก"
><q-tooltip>นทกแบบราง</q-tooltip></q-btn
>
<q-btn v-if="data" id="onSubmit" type="button" unelevated dense class="q-px-md items-center q-ml-sm" color="primary" label="ยื่นใบลา" @click="onConfirm"
<q-btn v-if="data && statusCheck != 'NEW'" id="onSubmit" type="button" unelevated dense class="q-px-md items-center q-ml-sm" color="primary" label="ยื่นใบลา" @click="onConfirm"
><q-tooltip>นใบลา</q-tooltip></q-btn
>
</div>