From e7072869c536f82b0d5dfec5c2d0a1b1e9df1e54 Mon Sep 17 00:00:00 2001 From: Net Date: Fri, 9 Aug 2024 15:27:16 +0700 Subject: [PATCH] refactor: add submitOther --- src/pages/03_customer-management/form.ts | 52 +++++++++++++++++++----- 1 file changed, 42 insertions(+), 10 deletions(-) diff --git a/src/pages/03_customer-management/form.ts b/src/pages/03_customer-management/form.ts index 0a2c078b..d890125e 100644 --- a/src/pages/03_customer-management/form.ts +++ b/src/pages/03_customer-management/form.ts @@ -427,6 +427,7 @@ export const useEmployeeForm = defineStore('form-employee', () => { }); const defaultFormData: EmployeeCreate = { + id: '', code: '', image: null, customerBranchId: '', @@ -538,6 +539,32 @@ export const useEmployeeForm = defineStore('form-employee', () => { currentFromDataEmployee.value = structuredClone(resetEmployeeData); } + async function submitOther() { + if (!currentFromDataEmployee.value.employeeOtherInfo) return; + + if (!currentFromDataEmployee.value.employeeOtherInfo.id) { + const res = await employeeStore.createEmployeeOtherInfo( + currentFromDataEmployee.value?.id || '', + currentFromDataEmployee.value.employeeOtherInfo, + ); + + if (res) { + currentFromDataEmployee.value.employeeOtherInfo.id = res.id; + currentFromDataEmployee.value.employeeOtherInfo.statusSave = true; + } + } else { + const res = await employeeStore.editByIdEmployeeOtherInfo( + currentFromDataEmployee.value?.id || '', + currentFromDataEmployee.value.employeeOtherInfo, + ); + if (res) { + currentFromDataEmployee.value.employeeOtherInfo.statusSave = true; + } + } + + await assignFormDataEmployee(currentFromDataEmployee.value.id); + } + async function submitWorkHistory() { if (!currentFromDataEmployee.value.employeeWork) return; @@ -557,9 +584,12 @@ export const useEmployeeForm = defineStore('form-employee', () => { ].statusSave = true; } } else { + const data = + currentFromDataEmployee.value?.employeeWork[state.value.currentIndex]; + const res = await employeeStore.editByIdEmployeeWork( currentFromDataEmployee.value?.id || '', - currentFromDataEmployee.value.employeeWork[state.value.currentIndex], + data, ); if (res) { @@ -568,7 +598,6 @@ export const useEmployeeForm = defineStore('form-employee', () => { ].statusSave = true; } } - await assignFormDataEmployee(currentFromDataEmployee.value.id); } @@ -596,11 +625,6 @@ export const useEmployeeForm = defineStore('form-employee', () => { } else { const data = currentFromDataEmployee.value.employeeCheckup[state.value.currentIndex]; - delete data['createdAt']; - delete data['createdByUserId']; - delete data['employeeId']; - delete data['updatedAt']; - delete data['updatedByUserId']; const res = await employeeStore.editByIdEmployeeCheckup( state.value.currentEmployee?.id || '', @@ -671,7 +695,6 @@ export const useEmployeeForm = defineStore('form-employee', () => { createdAt, createdByUserId, statusOrder, - id, province, district, subDistrict, @@ -696,11 +719,19 @@ export const useEmployeeForm = defineStore('form-employee', () => { statusSave: true, })), ), - employeeOtherInfo: structuredClone(playlond.employeeOtherInfo || {}), + employeeOtherInfo: structuredClone( + { + ...playlond.employeeOtherInfo, + statusSave: !!playlond.employeeOtherInfo?.id ? true : false, + } || {}, + ), employeeWork: structuredClone( playlond.employeeWork?.length === 0 ? defaultFormData.employeeWork - : playlond.employeeWork, + : playlond.employeeWork?.map((item) => ({ + ...item, + statusSave: true, + })), ), image: null, }; @@ -753,6 +784,7 @@ export const useEmployeeForm = defineStore('form-employee', () => { currentFromDataEmployee, resetEmployeeData, + submitOther, submitWorkHistory, submitPersonal, submitHealthCheck,