refactor: add submitOther

This commit is contained in:
Net 2024-08-09 15:27:16 +07:00
parent de9551cd82
commit e7072869c5

View file

@ -427,6 +427,7 @@ export const useEmployeeForm = defineStore('form-employee', () => {
}); });
const defaultFormData: EmployeeCreate = { const defaultFormData: EmployeeCreate = {
id: '',
code: '', code: '',
image: null, image: null,
customerBranchId: '', customerBranchId: '',
@ -538,6 +539,32 @@ export const useEmployeeForm = defineStore('form-employee', () => {
currentFromDataEmployee.value = structuredClone(resetEmployeeData); 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() { async function submitWorkHistory() {
if (!currentFromDataEmployee.value.employeeWork) return; if (!currentFromDataEmployee.value.employeeWork) return;
@ -557,9 +584,12 @@ export const useEmployeeForm = defineStore('form-employee', () => {
].statusSave = true; ].statusSave = true;
} }
} else { } else {
const data =
currentFromDataEmployee.value?.employeeWork[state.value.currentIndex];
const res = await employeeStore.editByIdEmployeeWork( const res = await employeeStore.editByIdEmployeeWork(
currentFromDataEmployee.value?.id || '', currentFromDataEmployee.value?.id || '',
currentFromDataEmployee.value.employeeWork[state.value.currentIndex], data,
); );
if (res) { if (res) {
@ -568,7 +598,6 @@ export const useEmployeeForm = defineStore('form-employee', () => {
].statusSave = true; ].statusSave = true;
} }
} }
await assignFormDataEmployee(currentFromDataEmployee.value.id); await assignFormDataEmployee(currentFromDataEmployee.value.id);
} }
@ -596,11 +625,6 @@ export const useEmployeeForm = defineStore('form-employee', () => {
} else { } else {
const data = const data =
currentFromDataEmployee.value.employeeCheckup[state.value.currentIndex]; 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( const res = await employeeStore.editByIdEmployeeCheckup(
state.value.currentEmployee?.id || '', state.value.currentEmployee?.id || '',
@ -671,7 +695,6 @@ export const useEmployeeForm = defineStore('form-employee', () => {
createdAt, createdAt,
createdByUserId, createdByUserId,
statusOrder, statusOrder,
id,
province, province,
district, district,
subDistrict, subDistrict,
@ -696,11 +719,19 @@ export const useEmployeeForm = defineStore('form-employee', () => {
statusSave: true, statusSave: true,
})), })),
), ),
employeeOtherInfo: structuredClone(playlond.employeeOtherInfo || {}), employeeOtherInfo: structuredClone(
{
...playlond.employeeOtherInfo,
statusSave: !!playlond.employeeOtherInfo?.id ? true : false,
} || {},
),
employeeWork: structuredClone( employeeWork: structuredClone(
playlond.employeeWork?.length === 0 playlond.employeeWork?.length === 0
? defaultFormData.employeeWork ? defaultFormData.employeeWork
: playlond.employeeWork, : playlond.employeeWork?.map((item) => ({
...item,
statusSave: true,
})),
), ),
image: null, image: null,
}; };
@ -753,6 +784,7 @@ export const useEmployeeForm = defineStore('form-employee', () => {
currentFromDataEmployee, currentFromDataEmployee,
resetEmployeeData, resetEmployeeData,
submitOther,
submitWorkHistory, submitWorkHistory,
submitPersonal, submitPersonal,
submitHealthCheck, submitHealthCheck,