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

View file

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

View file

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

View file

@ -604,11 +604,11 @@ watch(
solid
id="btn-success"
@click="
emits('success', {
(emits('success', {
worker: workerSelected,
newWorker: newWorkerList,
}),
(open = false)
(open = false))
"
>
{{ $t('general.select', { msg: $t('quotation.employeeList') }) }}
@ -1455,6 +1455,7 @@ watch(
v-model:remark="meta.remark"
v-model:worker-type="meta.workerType"
v-model:number="meta.number"
v-model:report-date="meta.reportDate"
/>
<NoticeJobEmployment v-if="mode === 'noticeJobEmployment'" />
@ -1681,6 +1682,7 @@ watch(
v-model:remark="value.remark"
v-model:worker-type="value.workerType"
v-model:number="value.number"
v-model:report-date="value.reportDate"
>
<template v-slot:expiryDate>
{{ $t('general.expirationDate') }} :
@ -1991,8 +1993,8 @@ watch(
}
: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);
}
@ -2009,9 +2011,9 @@ watch(
}
: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-focus-helper
) {
.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
) {
visibility: hidden;
}

View file

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

View file

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