refactor: employee new img dialog

This commit is contained in:
puriphatt 2024-09-11 16:53:08 +07:00
parent 893b0a8c2a
commit 685ad0cc54
7 changed files with 254 additions and 57 deletions

View file

@ -9,9 +9,10 @@ import useCustomerStore from 'stores/customer';
import useEmployeeStore from 'stores/employee';
import useFlowStore from 'stores/flow';
import { baseUrl } from 'src/stores/utils';
export const useCustomerForm = defineStore('form-customer', () => {
const { t } = useI18n();
const apiBaseUrl = import.meta.env.VITE_API_BASE_URL;
const customerStore = useCustomerStore();
const branchStore = useMyBranch();
@ -133,8 +134,8 @@ export const useCustomerForm = defineStore('form-customer', () => {
state.value.dialogType = 'edit';
state.value.editCustomerId = id;
state.value.editCustomerCode = data.code;
state.value.customerImageUrl = `${apiBaseUrl}/customer/${id}/image/${data.selectedImage}`;
state.value.defaultCustomerImageUrl = `${apiBaseUrl}/customer/${id}/image/${data.selectedImage}`;
state.value.customerImageUrl = `${baseUrl}/customer/${id}/image/${data.selectedImage}`;
state.value.defaultCustomerImageUrl = `${baseUrl}/customer/${id}/image/${data.selectedImage}`;
resetFormData.registeredBranchId = data.registeredBranchId;
resetFormData.code = data.code || '';
@ -487,6 +488,7 @@ export const useEmployeeForm = defineStore('form-employee', () => {
currentTab: string;
dialogModal: boolean;
drawerModal: boolean;
isImageEdit: boolean;
currentEmployeeCode: string;
currentEmployee: Employee | null;
@ -519,6 +521,7 @@ export const useEmployeeForm = defineStore('form-employee', () => {
| undefined;
ocr: boolean;
}>({
isImageEdit: false,
currentIndex: -1,
statusSavePersonal: false,
drawerModal: false,
@ -541,7 +544,6 @@ export const useEmployeeForm = defineStore('form-employee', () => {
const defaultFormData: EmployeeCreate = {
id: '',
code: '',
image: null,
customerBranchId: '',
nrcNo: '',
dateOfBirth: null,
@ -623,6 +625,7 @@ export const useEmployeeForm = defineStore('form-employee', () => {
motherLastNameEN: '',
motherBirthPlace: '',
},
image: null,
};
let resetEmployeeData = structuredClone(defaultFormData);
@ -650,6 +653,9 @@ export const useEmployeeForm = defineStore('form-employee', () => {
resetEmployeeData = structuredClone(defaultFormData);
state.value.statusSavePersonal = false;
state.value.profileUrl = '';
} else {
resetEmployeeData.selectedImage =
currentFromDataEmployee.value.selectedImage;
}
currentFromDataEmployee.value = structuredClone(resetEmployeeData);
}
@ -790,16 +796,22 @@ export const useEmployeeForm = defineStore('form-employee', () => {
await assignFormDataEmployee(currentFromDataEmployee.value.id);
}
async function submitPersonal() {
async function submitPersonal(imgList?: {
selectedImage: string;
list: { url: string; imgFile: File | null; name: string }[];
}) {
if (state.value.dialogType === 'create') {
const res = await employeeStore.create({
...currentFromDataEmployee.value,
customerBranchId: state.value.formDataEmployeeOwner?.id || '',
const res = await employeeStore.create(
{
...currentFromDataEmployee.value,
customerBranchId: state.value.formDataEmployeeOwner?.id || '',
employeeWork: [],
employeeCheckup: [],
employeeOtherInfo: undefined,
});
employeeWork: [],
employeeCheckup: [],
employeeOtherInfo: undefined,
},
imgList,
);
if (res) {
await assignFormDataEmployee(res.id);
@ -898,7 +910,6 @@ export const useEmployeeForm = defineStore('form-employee', () => {
}),
)
: [],
image: null,
};
currentFromDataEmployee.value = structuredClone(resetEmployeeData);
@ -908,7 +919,8 @@ export const useEmployeeForm = defineStore('form-employee', () => {
state.value.currentEmployeeCode = payload.code;
state.value.profileUrl = profileImageUrl || '';
state.value.profileUrl =
`${baseUrl}/employee/${id}/image/${_data.selectedImage}` || '';
profileImageUrl
? (state.value.profileSubmit = true)