refactor(leave): display dateSendLeave when status is not DRAFT

Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
DESKTOP-1R2VSQH\Lenovo ThinkPad E490 2026-04-29 11:00:15 +07:00
parent a5ba0290d9
commit e3df43421b
13 changed files with 199 additions and 61 deletions

View file

@ -206,7 +206,7 @@ async function fetchDataDetail(id: string) {
formData.leaveDateEnd = data.leaveEndDate && date2Thai(data.leaveEndDate);
formData.leaveCount = calculateDurationYmd(
data.leaveStartDate,
data.leaveEndDate
data.leaveEndDate,
);
formData.leaveWrote = data.leaveWrote ?? "-";
formData.leaveAddress = data.leaveAddress ?? "-";
@ -255,8 +255,7 @@ async function fetchDataDetail(id: string) {
formData.studyDaySubject = data.studyDaySubject ?? "-";
formData.studyDayDegreeLevel = data.studyDayDegreeLevel ?? "-";
formData.studyDayUniversityName = data.studyDayUniversityName ?? "-";
formData.studyDayTrainingSubject =
data.studyDayTrainingSubject ?? "-" ?? "-";
formData.studyDayTrainingSubject = data.studyDayTrainingSubject ?? "-";
formData.studyDayTrainingName = data.studyDayTrainingName ?? "-";
formData.studyDayCountry = data.studyDayCountry ?? "-";
formData.studyDayScholarship = data.studyDayScholarship ?? "-";
@ -383,7 +382,7 @@ async function onClickSave() {
onSubmit();
},
"ยืนยันการบันทึกข้อมูล",
"ต้องการยินยันการบันทึกข้อมูลนี้หรือไม่ ?"
"ต้องการยินยันการบันทึกข้อมูลนี้หรือไม่ ?",
);
} else {
}
@ -425,7 +424,7 @@ watch(
? props.leaveId && fetchDataCancelDetail(props.leaveId)
: props.leaveId && fetchDataDetail(props.leaveId);
}
}
},
);
</script>

View file

@ -163,7 +163,7 @@ async function updatePagination(p: number, ps: number, s: string, d: boolean) {
function convert(val: any) {
if (leaveType.value) {
const filtertype = leaveType.value.find(
(e: any) => e.id === val.leaveTypeId
(e: any) => e.id === val.leaveTypeId,
);
const type = filtertype?.code;
if (type == "LV-006" && val.hajjDayStatus == false) {
@ -242,7 +242,7 @@ onMounted(async () => {
:props="props"
@click="onClickView(props.row.id, props.row.status)"
>
{{ props.row.dateSendLeave }}
{{ props.row.status === "DRAFT" ? "-" : props.row.dateSendLeave }}
</q-td>
<q-td key="status" :props="props">
@ -419,7 +419,7 @@ onMounted(async () => {
<q-item-label v-if="col.name === 'no'">
{{ (page - 1) * pageSize + props.rowIndex + 1 }}
</q-item-label>
<q-item-label v-if="col.name === 'status'">
<q-item-label v-else-if="col.name === 'status'">
<q-icon
v-if="props.row.status == 'DRAFT'"
size="10px"
@ -468,7 +468,12 @@ onMounted(async () => {
<span class="q-pr-md">{{ props.row.statusConvert }}</span>
</q-item-label>
<q-item-label v-else>{{ col.value }}</q-item-label>
<q-item-label v-else-if="col.name === 'dateSendLeave'">
{{
props.row.status === "DRAFT" ? "-" : props.row.dateSendLeave
}}
</q-item-label>
<q-item-label v-else>{{ col.value }} </q-item-label>
</q-item-section>
</q-item>
</q-list>

View file

@ -18,7 +18,9 @@ const props = defineProps({
<div class="q-gutter-md q-pa-sm">
<div class="row">
<div class="col-xs-12 col-md-6 text-grey-8">นทนใบลา</div>
<div class="col-xs-12 col-md-6">{{ props.data.dateSendLeave }}</div>
<div class="col-xs-12 col-md-6">
{{ props.data.status === "DRAFT" ? "-" : props.data.dateSendLeave }}
</div>
</div>
<div class="row">
<div class="col-xs-12 col-md-6 text-grey-8">เรอง</div>
@ -30,11 +32,33 @@ const props = defineProps({
</div>
<div class="row">
<div class="col-xs-12 col-md-6 text-grey-8">ลาตงแตนท</div>
<div class="col-xs-12 col-md-6">{{ props.data.leaveDateStart }} {{ `${props.data.leaveRange && props.data.leaveRange !== 'ALL' ? `(${converstType(props.data.leaveRange)})`:''}` }}</div>
<div class="col-xs-12 col-md-6">
{{ props.data.leaveDateStart }}
{{
`${
props.data.leaveRange && props.data.leaveRange !== "ALL"
? `(${converstType(props.data.leaveRange)})`
: ""
}`
}}
</div>
</div>
<div class="row">
<div class="col-xs-12 col-md-6 text-grey-8">ลาถงวนท</div>
<div class="col-xs-12 col-md-6">{{ props.data.leaveDateEnd }} {{ `${props.data.leaveDateStart !== props.data.leaveDateEnd ? `${props.data.leaveRangeEnd && props.data.leaveRangeEnd !== 'ALL' ? `(${converstType(props.data.leaveRangeEnd)})`:''}` :''}` }}</div>
<div class="col-xs-12 col-md-6">
{{ props.data.leaveDateEnd }}
{{
`${
props.data.leaveDateStart !== props.data.leaveDateEnd
? `${
props.data.leaveRangeEnd && props.data.leaveRangeEnd !== "ALL"
? `(${converstType(props.data.leaveRangeEnd)})`
: ""
}`
: ""
}`
}}
</div>
</div>
<div class="row">
<div class="col-xs-12 col-md-6 text-grey-8">จำนวนวนทลา</div>
@ -87,10 +111,12 @@ const props = defineProps({
target="_blank"
outline
color="blue"
:label="`ดาวน์โหลดเอกสารแนบที่ ${index + 1}`"
:label="`ดาวน์โหลดเอกสารแนบที่ ${Number(index) + 1}`"
size="12px"
>
<q-tooltip>ดาวนโหลดเอกสารแนบท {{ index + 1 }}</q-tooltip>
<q-tooltip
>ดาวนโหลดเอกสารแนบท {{ Number(index) + 1 }}</q-tooltip
>
</q-btn>
</div>
</div>

View file

@ -1,8 +1,8 @@
<script setup lang="ts">
import { useLeaveStore } from '@/modules/05_leave/store'
import { useLeaveStore } from "@/modules/05_leave/store";
const store = useLeaveStore()
const { converstType } = store
const store = useLeaveStore();
const { converstType } = store;
/**
* prop จาก component
*/
@ -17,7 +17,9 @@ const props = defineProps({
<div class="q-pa-sm q-gutter-md">
<div class="row">
<div class="col-xs-12 col-md-6 text-grey-8">นทนใบลา</div>
<div class="col-xs-12 col-md-6">{{ props.data.dateSendLeave }}</div>
<div class="col-xs-12 col-md-6">
{{ props.data.status === "DRAFT" ? "-" : props.data.dateSendLeave }}
</div>
</div>
<div class="row">
<div class="col-xs-12 col-md-6 text-grey-8">เรอง</div>
@ -29,11 +31,33 @@ const props = defineProps({
</div>
<div class="row">
<div class="col-xs-12 col-md-6 text-grey-8">ลาตงแตนท</div>
<div class="col-xs-12 col-md-6">{{ props.data.leaveDateStart }} {{ `${props.data.leaveRange && props.data.leaveRange !== 'ALL' ? `(${converstType(props.data.leaveRange)})`:''}` }}</div>
<div class="col-xs-12 col-md-6">
{{ props.data.leaveDateStart }}
{{
`${
props.data.leaveRange && props.data.leaveRange !== "ALL"
? `(${converstType(props.data.leaveRange)})`
: ""
}`
}}
</div>
</div>
<div class="row">
<div class="col-xs-12 col-md-6 text-grey-8">ลาถงวนท</div>
<div class="col-xs-12 col-md-6">{{ props.data.leaveDateEnd }} {{ `${props.data.leaveDateStart !== props.data.leaveDateEnd ? `${props.data.leaveRangeEnd && props.data.leaveRangeEnd !== 'ALL' ? `(${converstType(props.data.leaveRangeEnd)})`:''}` :''}` }}</div>
<div class="col-xs-12 col-md-6">
{{ props.data.leaveDateEnd }}
{{
`${
props.data.leaveDateStart !== props.data.leaveDateEnd
? `${
props.data.leaveRangeEnd && props.data.leaveRangeEnd !== "ALL"
? `(${converstType(props.data.leaveRangeEnd)})`
: ""
}`
: ""
}`
}}
</div>
</div>
<div class="row">
<div class="col-xs-12 col-md-6 text-grey-8">จำนวนวนทลา</div>
@ -82,10 +106,12 @@ const props = defineProps({
target="_blank"
outline
color="blue"
:label="`ดาวน์โหลดเอกสารแนบที่ ${index + 1}`"
:label="`ดาวน์โหลดเอกสารแนบที่ ${Number(index) + 1}`"
size="12px"
>
<q-tooltip>ดาวนโหลดเอกสารแนบท {{ index + 1 }}</q-tooltip>
<q-tooltip
>ดาวนโหลดเอกสารแนบท {{ Number(index) + 1 }}</q-tooltip
>
</q-btn>
</div>
</div>

View file

@ -18,7 +18,9 @@ const props = defineProps({
<div class="q-pa-sm q-gutter-md">
<div class="row">
<div class="col-xs-12 col-md-6 text-grey-8">นทนใบลา</div>
<div class="col-xs-12 col-md-6">{{ props.data.dateSendLeave }}</div>
<div class="col-xs-12 col-md-6">
{{ props.data.status === "DRAFT" ? "-" : props.data.dateSendLeave }}
</div>
</div>
<div class="row">
<div class="col-xs-12 col-md-6 text-grey-8">เรอง</div>
@ -42,11 +44,33 @@ const props = defineProps({
</div>
<div class="row">
<div class="col-xs-12 col-md-6 text-grey-8">ลาตงแตนท</div>
<div class="col-xs-12 col-md-6">{{ props.data.leaveDateStart }} {{ `${props.data.leaveRange && props.data.leaveRange !== 'ALL' ? `(${converstType(props.data.leaveRange)})`:''}` }}</div>
<div class="col-xs-12 col-md-6">
{{ props.data.leaveDateStart }}
{{
`${
props.data.leaveRange && props.data.leaveRange !== "ALL"
? `(${converstType(props.data.leaveRange)})`
: ""
}`
}}
</div>
</div>
<div class="row">
<div class="col-xs-12 col-md-6 text-grey-8">ลาถงวนท</div>
<div class="col-xs-12 col-md-6">{{ props.data.leaveDateEnd }} {{ `${props.data.leaveDateStart !== props.data.leaveDateEnd ? `${props.data.leaveRangeEnd && props.data.leaveRangeEnd !== 'ALL' ? `(${converstType(props.data.leaveRangeEnd)})`:''}` :''}` }}</div>
<div class="col-xs-12 col-md-6">
{{ props.data.leaveDateEnd }}
{{
`${
props.data.leaveDateStart !== props.data.leaveDateEnd
? `${
props.data.leaveRangeEnd && props.data.leaveRangeEnd !== "ALL"
? `(${converstType(props.data.leaveRangeEnd)})`
: ""
}`
: ""
}`
}}
</div>
</div>
<div class="row">
<div class="col-xs-12 col-md-6 text-grey-8">จำนวนวนทลา</div>
@ -91,10 +115,12 @@ const props = defineProps({
target="_blank"
outline
color="blue"
:label="`ดาวน์โหลดเอกสารแนบที่ ${index + 1}`"
:label="`ดาวน์โหลดเอกสารแนบที่ ${Number(index) + 1}`"
size="12px"
>
<q-tooltip>ดาวนโหลดเอกสารแนบท {{ index + 1 }}</q-tooltip>
<q-tooltip
>ดาวนโหลดเอกสารแนบท {{ Number(index) + 1 }}</q-tooltip
>
</q-btn>
</div>
</div>

View file

@ -18,7 +18,7 @@ const props = defineProps({
<div class="q-pa-md q-gutter-md">
<div class="row">
<div class="col-xs-12 col-md-6 text-grey-8">นทนใบลา</div>
<div class="col-xs-12 col-md-6">{{ props.data.dateSendLeave }}</div>
<div class="col-xs-12 col-md-6">{{ props.data.status === "DRAFT" ? "-" : props.data.dateSendLeave }}</div>
</div>
<div class="row">
<div class="col-xs-12 col-md-6 text-grey-8">เรอง</div>
@ -98,10 +98,12 @@ const props = defineProps({
target="_blank"
outline
color="blue"
:label="`ดาวน์โหลดเอกสารแนบที่ ${index + 1}`"
:label="`ดาวน์โหลดเอกสารแนบที่ ${Number(index) + 1}`"
size="12px"
>
<q-tooltip>ดาวนโหลดเอกสารแนบท {{ index + 1 }}</q-tooltip>
<q-tooltip
>ดาวนโหลดเอกสารแนบท {{ Number(index) + 1 }}</q-tooltip
>
</q-btn>
</div>
</div>

View file

@ -18,7 +18,7 @@ const props = defineProps({
<div class="q-pa-sm q-gutter-md">
<div class="row">
<div class="col-xs-12 col-md-6 text-grey-8">นทนใบลา</div>
<div class="col-xs-12 col-md-6">{{ props.data.dateSendLeave }}</div>
<div class="col-xs-12 col-md-6">{{ props.data.status === "DRAFT" ? "-" : props.data.dateSendLeave }}</div>
</div>
<div class="row">
<div class="col-xs-12 col-md-6 text-grey-8">เรอง</div>
@ -77,10 +77,12 @@ const props = defineProps({
target="_blank"
outline
color="blue"
:label="`ดาวน์โหลดเอกสารแนบที่ ${index + 1}`"
:label="`ดาวน์โหลดเอกสารแนบที่ ${Number(index) + 1}`"
size="12px"
>
<q-tooltip>ดาวนโหลดเอกสารแนบท {{ index + 1 }}</q-tooltip>
<q-tooltip
>ดาวนโหลดเอกสารแนบท {{ Number(index) + 1 }}</q-tooltip
>
</q-btn>
</div>
</div>

View file

@ -1,8 +1,8 @@
<script setup lang="ts">
import { useLeaveStore } from '@/modules/05_leave/store'
import { useLeaveStore } from "@/modules/05_leave/store";
const store = useLeaveStore()
const { converstType } = store
const store = useLeaveStore();
const { converstType } = store;
/**
* prop จาก component
*/
@ -18,7 +18,9 @@ const props = defineProps({
<div class="q-pa-sm q-gutter-md">
<div class="row">
<div class="col-xs-12 col-md-6 text-grey-8">นทนใบลา</div>
<div class="col-xs-12 col-md-6">{{ props.data.dateSendLeave }}</div>
<div class="col-xs-12 col-md-6">
{{ props.data.status === "DRAFT" ? "-" : props.data.dateSendLeave }}
</div>
</div>
<div class="row">
<div class="col-xs-12 col-md-6 text-grey-8">เรอง</div>
@ -30,11 +32,33 @@ const props = defineProps({
</div>
<div class="row">
<div class="col-xs-12 col-md-6 text-grey-8">ลาตงแตนท</div>
<div class="col-xs-12 col-md-6">{{ props.data.leaveDateStart }} {{ `${props.data.leaveRange && props.data.leaveRange !== 'ALL' ? `(${converstType(props.data.leaveRange)})`:''}` }}</div>
<div class="col-xs-12 col-md-6">
{{ props.data.leaveDateStart }}
{{
`${
props.data.leaveRange && props.data.leaveRange !== "ALL"
? `(${converstType(props.data.leaveRange)})`
: ""
}`
}}
</div>
</div>
<div class="row">
<div class="col-xs-12 col-md-6 text-grey-8">ลาถงวนท</div>
<div class="col-xs-12 col-md-6">{{ props.data.leaveDateEnd }} {{ `${props.data.leaveDateStart !== props.data.leaveDateEnd ? `${props.data.leaveRangeEnd && props.data.leaveRangeEnd !== 'ALL' ? `(${converstType(props.data.leaveRangeEnd)})`:''}` :''}` }}</div>
<div class="col-xs-12 col-md-6">
{{ props.data.leaveDateEnd }}
{{
`${
props.data.leaveDateStart !== props.data.leaveDateEnd
? `${
props.data.leaveRangeEnd && props.data.leaveRangeEnd !== "ALL"
? `(${converstType(props.data.leaveRangeEnd)})`
: ""
}`
: ""
}`
}}
</div>
</div>
<div class="row">
<div class="col-xs-12 col-md-6 text-grey-8">จำนวนวนทลา</div>
@ -87,10 +111,12 @@ const props = defineProps({
target="_blank"
outline
color="blue"
:label="`ดาวน์โหลดเอกสารแนบที่ ${index + 1}`"
:label="`ดาวน์โหลดเอกสารแนบที่ ${Number(index) + 1}`"
size="12px"
>
<q-tooltip>ดาวนโหลดเอกสารแนบท {{ index + 1 }}</q-tooltip>
<q-tooltip
>ดาวนโหลดเอกสารแนบท {{ Number(index) + 1 }}</q-tooltip
>
</q-btn>
</div>
</div>

View file

@ -1,8 +1,8 @@
<script setup lang="ts">
import { useLeaveStore } from '@/modules/05_leave/store'
import { useLeaveStore } from "@/modules/05_leave/store";
const store = useLeaveStore()
const { converstType } = store
const store = useLeaveStore();
const { converstType } = store;
/**
* prop จาก component
*/
@ -18,7 +18,9 @@ const props = defineProps({
<div class="q-pa-sm q-gutter-md">
<div class="row">
<div class="col-xs-12 col-md-6 text-grey-8">นทนใบลา</div>
<div class="col-xs-12 col-md-6">{{ props.data.dateSendLeave }}</div>
<div class="col-xs-12 col-md-6">
{{ props.data.status === "DRAFT" ? "-" : props.data.dateSendLeave }}
</div>
</div>
<div class="row">
<div class="col-xs-12 col-md-6 text-grey-8">เรอง</div>
@ -30,11 +32,33 @@ const props = defineProps({
</div>
<div class="row">
<div class="col-xs-12 col-md-6 text-grey-8">ลาตงแตนท</div>
<div class="col-xs-12 col-md-6">{{ props.data.leaveDateStart }} {{ `${props.data.leaveRange && props.data.leaveRange !== 'ALL' ? `(${converstType(props.data.leaveRange)})`:''}` }}</div>
<div class="col-xs-12 col-md-6">
{{ props.data.leaveDateStart }}
{{
`${
props.data.leaveRange && props.data.leaveRange !== "ALL"
? `(${converstType(props.data.leaveRange)})`
: ""
}`
}}
</div>
</div>
<div class="row">
<div class="col-xs-12 col-md-6 text-grey-8">ลาถงวนท</div>
<div class="col-xs-12 col-md-6">{{ props.data.leaveDateEnd }} {{ `${props.data.leaveDateStart !== props.data.leaveDateEnd ? `${props.data.leaveRangeEnd && props.data.leaveRangeEnd !== 'ALL' ? `(${converstType(props.data.leaveRangeEnd)})`:''}` :''}` }}</div>
<div class="col-xs-12 col-md-6">
{{ props.data.leaveDateEnd }}
{{
`${
props.data.leaveDateStart !== props.data.leaveDateEnd
? `${
props.data.leaveRangeEnd && props.data.leaveRangeEnd !== "ALL"
? `(${converstType(props.data.leaveRangeEnd)})`
: ""
}`
: ""
}`
}}
</div>
</div>
<div class="row">
<div class="col-xs-12 col-md-6 text-grey-8">จำนวนวนทลา</div>
@ -111,10 +135,12 @@ const props = defineProps({
target="_blank"
outline
color="blue"
:label="`ดาวน์โหลดเอกสารแนบที่ ${index + 1}`"
:label="`ดาวน์โหลดเอกสารแนบที่ ${Number(index) + 1}`"
size="12px"
>
<q-tooltip>ดาวนโหลดเอกสารแนบท {{ index + 1 }}</q-tooltip>
<q-tooltip
>ดาวนโหลดเอกสารแนบท {{ Number(index) + 1 }}</q-tooltip
>
</q-btn>
</div>
</div>

View file

@ -17,7 +17,7 @@ const props = defineProps({
<div class="q-pa-sm q-gutter-md">
<div class="row">
<div class="col-xs-12 col-md-6 text-grey-8">นทนใบลา</div>
<div class="col-xs-12 col-md-6">{{ props.data.dateSendLeave }}</div>
<div class="col-xs-12 col-md-6">{{ props.data.status === "DRAFT" ? "-" : props.data.dateSendLeave }}</div>
</div>
<div class="row">
<div class="col-xs-12 col-md-6 text-grey-8">เรอง</div>
@ -132,10 +132,10 @@ const props = defineProps({
target="_blank"
outline
color="blue"
:label="`ดาวน์โหลดเอกสารแนบที่ ${index + 1}`"
:label="`ดาวน์โหลดเอกสารแนบที่ ${Number(index) + 1}`"
size="12px"
>
<q-tooltip>ดาวนโหลดเอกสารแนบท {{ index + 1 }}</q-tooltip>
<q-tooltip>ดาวนโหลดเอกสารแนบท {{ Number(index) + 1 }}</q-tooltip>
</q-btn>
</div>
</div>

View file

@ -17,7 +17,7 @@ const props = defineProps({
<div class="q-pa-sm q-gutter-md">
<div class="row">
<div class="col-xs-12 col-md-6 text-grey-8">นทนใบลา</div>
<div class="col-xs-12 col-md-6">{{ props.data.dateSendLeave }}</div>
<div class="col-xs-12 col-md-6">{{ props.data.status === "DRAFT" ? "-" : props.data.dateSendLeave }}</div>
</div>
<div class="row">
<div class="col-xs-12 col-md-6 text-grey-8">เรอง</div>
@ -80,10 +80,10 @@ const props = defineProps({
target="_blank"
outline
color="blue"
:label="`ดาวน์โหลดเอกสารแนบที่ ${index + 1}`"
:label="`ดาวน์โหลดเอกสารแนบที่ ${Number(index) + 1}`"
size="12px"
>
<q-tooltip>ดาวนโหลดเอกสารแนบท {{ index + 1 }}</q-tooltip>
<q-tooltip>ดาวนโหลดเอกสารแนบท {{ Number(index) + 1 }}</q-tooltip>
</q-btn>
</div>
</div>

View file

@ -17,7 +17,7 @@ const props = defineProps({
<div class="q-pa-sm q-gutter-md">
<div class="row">
<div class="col-xs-12 col-md-6 text-grey-8">นทนใบลา</div>
<div class="col-xs-12 col-md-6">{{ props.data.dateSendLeave }}</div>
<div class="col-xs-12 col-md-6">{{ props.data.status === "DRAFT" ? "-" : props.data.dateSendLeave }}</div>
</div>
<div class="row">
<div class="col-xs-12 col-md-6 text-grey-8">เรอง</div>
@ -145,10 +145,10 @@ const props = defineProps({
target="_blank"
outline
color="blue"
:label="`ดาวน์โหลดเอกสารแนบที่ ${index + 1}`"
:label="`ดาวน์โหลดเอกสารแนบที่ ${Number(index) + 1}`"
size="12px"
>
<q-tooltip>ดาวนโหลดเอกสารแนบท {{ index + 1 }}</q-tooltip>
<q-tooltip>ดาวนโหลดเอกสารแนบท {{ Number(index) + 1 }}</q-tooltip>
</q-btn>
</div>
</div>

View file

@ -17,7 +17,7 @@ const props = defineProps({
<div class="q-pa-sm q-gutter-md">
<div class="row">
<div class="col-xs-12 col-md-6 text-grey-8">นทนใบลา</div>
<div class="col-xs-12 col-md-6">{{ props.data.dateSendLeave }}</div>
<div class="col-xs-12 col-md-6">{{ props.data.status === "DRAFT" ? "-" : props.data.dateSendLeave }}</div>
</div>
<div class="row">
<div class="col-xs-12 col-md-6 text-grey-8">เรอง</div>
@ -80,10 +80,10 @@ const props = defineProps({
target="_blank"
outline
color="blue"
:label="`ดาวน์โหลดเอกสารแนบที่ ${index + 1}`"
:label="`ดาวน์โหลดเอกสารแนบที่ ${Number(index) + 1}`"
size="12px"
>
<q-tooltip>ดาวนโหลดเอกสารแนบท {{ index + 1 }}</q-tooltip>
<q-tooltip>ดาวนโหลดเอกสารแนบท {{ Number(index) + 1 }}</q-tooltip>
</q-btn>
</div>
</div>