From b9f1d04105201198169d5e6dd3bcd77d5b919f5f Mon Sep 17 00:00:00 2001 From: puriphatt Date: Mon, 7 Jul 2025 17:54:03 +0700 Subject: [PATCH] feat: enhance employee form to support image uploads and track image edits --- src/pages/03_customer-management/MainPage.vue | 8 ++++++++ src/pages/03_customer-management/form.ts | 6 +++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/pages/03_customer-management/MainPage.vue b/src/pages/03_customer-management/MainPage.vue index 5ca98e30..b70b2f17 100644 --- a/src/pages/03_customer-management/MainPage.vue +++ b/src/pages/03_customer-management/MainPage.vue @@ -664,6 +664,14 @@ watch( }, ); +watch( + () => currentFromDataEmployee.value.image, + () => { + if (currentFromDataEmployee.value.image !== null) + employeeFormState.value.isImageEdit = true; + }, +); + const emptyCreateDialog = ref(false); diff --git a/src/pages/03_customer-management/form.ts b/src/pages/03_customer-management/form.ts index 9c6da739..a45ebcb3 100644 --- a/src/pages/03_customer-management/form.ts +++ b/src/pages/03_customer-management/form.ts @@ -810,7 +810,7 @@ export const useEmployeeForm = defineStore('form-employee', () => { ocr: false, }); - const defaultFormData: EmployeeCreate = { + const defaultFormData: EmployeeCreate & { image?: File } = { id: '', code: '', customerBranchId: '', @@ -937,7 +937,7 @@ export const useEmployeeForm = defineStore('form-employee', () => { }; let resetEmployeeData = structuredClone(defaultFormData); - const currentFromDataEmployee = ref( + const currentFromDataEmployee = ref( structuredClone(defaultFormData), ); @@ -1250,7 +1250,7 @@ export const useEmployeeForm = defineStore('form-employee', () => { await assignFormDataEmployee(currentFromDataEmployee.value.id); } - async function submitPersonal(imgList: { + async function submitPersonal(imgList?: { selectedImage: string; list: { url: string; imgFile: File | null; name: string }[]; }) {