refactor: add visa report date
Some checks failed
Spell Check / Spell Check with Typos (push) Failing after 6s

This commit is contained in:
Thanaphon Frappet 2025-07-11 09:12:55 +07:00
parent c3989768ed
commit 04765a656a
6 changed files with 31 additions and 14 deletions

View file

@ -37,11 +37,13 @@ const expireDate = defineModel<Date>('expireDate');
const remark = defineModel<string>('remark'); const remark = defineModel<string>('remark');
const workerType = defineModel<string>('workerType'); const workerType = defineModel<string>('workerType');
const number = defineModel<string>('number'); const number = defineModel<string>('number');
const reportDate = defineModel<Date | null | string>('reportDate');
const calculatedVisaDate = computed(() => { //
if (!issueDate.value) return undefined; // const calculatedVisaDate = computed(() => {
return calculate90DayNext(issueDate.value); // if (!issueDate.value) return undefined;
}); // return calculate90DayNext(issueDate.value);
// });
defineProps<{ defineProps<{
title?: string; title?: string;
@ -138,6 +140,10 @@ watch(
); );
}, },
); );
//
// watch([() => issueDate.value], () => {
// reportDate.value = calculate90DayNext(issueDate.value);
// });
</script> </script>
<template> <template>
@ -371,10 +377,12 @@ watch(
<DatePicker <DatePicker
:id="`${prefixId}-date-picker-visa-issuance`" :id="`${prefixId}-date-picker-visa-issuance`"
:readonly :readonly
:disabled="!readonly"
:label="$t('customerEmployee.form.visa90Day')" :label="$t('customerEmployee.form.visa90Day')"
:model-value="calculatedVisaDate" v-model="reportDate"
clearable clearable
:rules="[
(val) => (val && val.length > 0) || $t('form.error.required'),
]"
/> />
</div> </div>
</div> </div>

View file

@ -3301,6 +3301,7 @@ const emptyCreateDialog = ref(false);
v-model:remark="meta.remark" v-model:remark="meta.remark"
v-model:worker-type="meta.workerType" v-model:worker-type="meta.workerType"
v-model:number="meta.number" v-model:number="meta.number"
v-model:report-date="meta.reportDate"
/> />
<NoticeJobEmployment v-if="mode === 'noticeJobEmployment'" /> <NoticeJobEmployment v-if="mode === 'noticeJobEmployment'" />
@ -3545,6 +3546,7 @@ const emptyCreateDialog = ref(false);
v-model:remark="value.remark" v-model:remark="value.remark"
v-model:worker-type="value.workerType" v-model:worker-type="value.workerType"
v-model:number="value.number" v-model:number="value.number"
v-model:report-date="value.reportDate"
> >
<template v-slot:expiryDate> <template v-slot:expiryDate>
{{ $t('general.expirationDate') }} : {{ $t('general.expirationDate') }} :
@ -5400,6 +5402,7 @@ const emptyCreateDialog = ref(false);
v-model:remark="meta.remark" v-model:remark="meta.remark"
v-model:worker-type="meta.workerType" v-model:worker-type="meta.workerType"
v-model:number="meta.number" v-model:number="meta.number"
v-model:report-date="meta.reportDate"
/> />
<NoticeJobEmployment v-if="mode === 'noticeJobEmployment'" /> <NoticeJobEmployment v-if="mode === 'noticeJobEmployment'" />
@ -5665,7 +5668,6 @@ const emptyCreateDialog = ref(false);
> >
<NoData /> <NoData />
</div> </div>
<FormEmployeeVisa <FormEmployeeVisa
v-for="( v-for="(
value, index value, index
@ -5693,6 +5695,7 @@ const emptyCreateDialog = ref(false);
v-model:remark="value.remark" v-model:remark="value.remark"
v-model:worker-type="value.workerType" v-model:worker-type="value.workerType"
v-model:number="value.number" v-model:number="value.number"
v-model:report-date="value.reportDate"
> >
<template v-slot:expiryDate> <template v-slot:expiryDate>
{{ $t('general.expirationDate') }} : {{ $t('general.expirationDate') }} :

View file

@ -887,6 +887,7 @@ export const useEmployeeForm = defineStore('form-employee', () => {
expireDate: new Date(), expireDate: new Date(),
remark: undefined, remark: undefined,
workerType: '', workerType: '',
reportDate: null,
number: '', number: '',
}, },
], ],
@ -1536,6 +1537,7 @@ export const useEmployeeForm = defineStore('form-employee', () => {
expireDate: new Date(), expireDate: new Date(),
remark: undefined, remark: undefined,
workerType: '', workerType: '',
reportDate: null,
number: '', number: '',
}); });

View file

@ -604,11 +604,11 @@ watch(
solid solid
id="btn-success" id="btn-success"
@click=" @click="
emits('success', { (emits('success', {
worker: workerSelected, worker: workerSelected,
newWorker: newWorkerList, newWorker: newWorkerList,
}), }),
(open = false) (open = false))
" "
> >
{{ $t('general.select', { msg: $t('quotation.employeeList') }) }} {{ $t('general.select', { msg: $t('quotation.employeeList') }) }}
@ -1455,6 +1455,7 @@ watch(
v-model:remark="meta.remark" v-model:remark="meta.remark"
v-model:worker-type="meta.workerType" v-model:worker-type="meta.workerType"
v-model:number="meta.number" v-model:number="meta.number"
v-model:report-date="meta.reportDate"
/> />
<NoticeJobEmployment v-if="mode === 'noticeJobEmployment'" /> <NoticeJobEmployment v-if="mode === 'noticeJobEmployment'" />
@ -1681,6 +1682,7 @@ watch(
v-model:remark="value.remark" v-model:remark="value.remark"
v-model:worker-type="value.workerType" v-model:worker-type="value.workerType"
v-model:number="value.number" v-model:number="value.number"
v-model:report-date="value.reportDate"
> >
<template v-slot:expiryDate> <template v-slot:expiryDate>
{{ $t('general.expirationDate') }} : {{ $t('general.expirationDate') }} :
@ -1991,8 +1993,8 @@ watch(
} }
:deep( :deep(
i.q-icon.mdi.mdi-chevron-down-circle.q-expansion-item__toggle-icon.q-expansion-item__toggle-icon--rotated i.q-icon.mdi.mdi-chevron-down-circle.q-expansion-item__toggle-icon.q-expansion-item__toggle-icon--rotated
) { ) {
color: var(--brand-1); color: var(--brand-1);
} }
@ -2009,9 +2011,9 @@ watch(
} }
:deep( :deep(
.q-item.q-item-type.row.no-wrap.q-item--dense.q-item--clickable.q-link.cursor-pointer.q-focusable.q-hoverable.surface-1 .q-item.q-item-type.row.no-wrap.q-item--dense.q-item--clickable.q-link.cursor-pointer.q-focusable.q-hoverable.surface-1
.q-focus-helper .q-focus-helper
) { ) {
visibility: hidden; visibility: hidden;
} }

View file

@ -582,6 +582,7 @@ function changeCustomerTab(opts: { tab: 'customer' | 'employee' }) {
v-model:remark="metadata.remark" v-model:remark="metadata.remark"
v-model:worker-type="metadata.workerType" v-model:worker-type="metadata.workerType"
v-model:visa-number="metadata.doc_number" v-model:visa-number="metadata.doc_number"
v-model:report-date="metadata.reportDate"
/> />
<div <div
v-if="isRunning" v-if="isRunning"

View file

@ -304,6 +304,7 @@ export type EmployeeVisaPayload = {
remark?: string; remark?: string;
workerType: string; workerType: string;
number: string; number: string;
reportDate: Date | null;
id?: string; id?: string;
}; };