diff --git a/src/pages/05_quotation/QuotationForm.vue b/src/pages/05_quotation/QuotationForm.vue index 1f1eac42..e55658a7 100644 --- a/src/pages/05_quotation/QuotationForm.vue +++ b/src/pages/05_quotation/QuotationForm.vue @@ -88,7 +88,7 @@ const date = ref(); const preSelectedWorker = ref([]); const selectedWorker = ref([]); -const workerList = ref([]); +const workerList = ref([]); const agentPrice = ref(false); const summaryPrice = ref<{ @@ -132,6 +132,7 @@ const service = ref>({}); const selectedGroupSub = ref<'product' | 'service' | null>(null); const selectedGroup = ref(null); + const selectedProductServiceId = ref(''); const formDataEmployee = ref({ @@ -167,6 +168,25 @@ async function getAllProduct( if (ret) productList.value[groupId] = ret.result; } +function setDefaultFormEmployee() { + formDataEmployee.value = { + alienReferencNumber: '', + documentExpireDate: new Date(), + lastNameEN: '', + lastName: '', + middleNameEN: '', + middleName: '', + firstNameEN: '', + firstName: '', + namePrefix: '', + nationality: '', + gender: '', + dateOfBirth: new Date(), + }; + + employeeFormState.value.dialogModal = false; +} + async function getAllService( groupId: string, opts?: { force?: false; page?: number; pageSize?: number }, @@ -302,7 +322,22 @@ onMounted(async () => { const retEmp = await customerStore.fetchBranchEmployee( quotationFormData.value.customerBranchId, ); - if (retEmp) workerList.value = retEmp.data.result; + if (retEmp) + workerList.value = retEmp.data.result.map((value) => ({ + alienReferencNumber: '', + documentExpireDate: new Date(), + lastNameEN: value.lastNameEN, + lastName: value.lastName, + middleNameEN: value.middleNameEN, + middleName: value.middleName, + firstNameEN: value.firstNameEN, + firstName: value.firstName, + namePrefix: value.namePrefix, + nationality: value.nationality, + gender: value.gender, + dateOfBirth: value.dateOfBirth, + code: value.code, + })); }); @@ -624,7 +659,10 @@ onMounted(async () => { :title="$t('form.title.create', { name: $t('customer.employee') })" :submit=" () => { - quotationForm; + workerList.push(formDataEmployee); + quotationForm.injectNewEmployee(formDataEmployee, () => + setDefaultFormEmployee(), + ); } " :close=" diff --git a/src/pages/05_quotation/form.ts b/src/pages/05_quotation/form.ts index 1d12f1d4..86d7bd65 100644 --- a/src/pages/05_quotation/form.ts +++ b/src/pages/05_quotation/form.ts @@ -14,7 +14,6 @@ const DEFAULT_DATA: QuotationPayload = { urgent: false, customerBranchId: '', worker: [], - workerCount: 0, payBillDate: new Date(), paySplit: [], paySplitCount: 0, @@ -98,7 +97,7 @@ export const useQuotationForm = defineStore('form-quotation', () => { currentFormState.value.mode = 'info'; } - function injectNewEmployee(data: EmployeeWorker) { + function injectNewEmployee(data: EmployeeWorker, callback?: () => void) { currentFormData.value.worker.push({ alienReferencNumber: data.alienReferencNumber, documentExpireDate: data.documentExpireDate, @@ -113,6 +112,8 @@ export const useQuotationForm = defineStore('form-quotation', () => { gender: data.gender, dateOfBirth: data.dateOfBirth, }); + + callback?.(); } function dialogDelete(callback: () => void) {