diff --git a/src/pages/03_customer-management/MainPage.vue b/src/pages/03_customer-management/MainPage.vue index 4c6bc1c4..c36808d3 100644 --- a/src/pages/03_customer-management/MainPage.vue +++ b/src/pages/03_customer-management/MainPage.vue @@ -467,6 +467,7 @@ async function toggleStatusCustomer(id: string, status: boolean) { async function deleteEmployeeById(opts: { id?: string; type?: 'passport' | 'visa' | 'healthCheck' | 'work'; + index?: number; }) { dialog({ color: 'negative', @@ -476,20 +477,20 @@ async function deleteEmployeeById(opts: { persistent: true, message: t('dialog.message.confirmDelete'), action: async () => { - if (opts.type === 'passport') { - await employeeFormStore.deletePassport(); + if (opts.type === 'passport' && opts.index !== undefined) { + await employeeFormStore.deletePassport(opts.index); } - if (opts.type === 'visa') { - await employeeFormStore.deleteVisa(); + if (opts.type === 'visa' && opts.index !== undefined) { + await employeeFormStore.deleteVisa(opts.index); } - if (opts.type === 'healthCheck') { - await employeeFormStore.deleteHealthCheck(); + if (opts.type === 'healthCheck' && opts.index !== undefined) { + await employeeFormStore.deleteHealthCheck(opts.index); } - if (opts.type === 'work') { - await employeeFormStore.deleteWorkHistory(); + if (opts.type === 'work' && opts.index !== undefined) { + await employeeFormStore.deleteWorkHistory(opts.index); } else { if (!!opts.id) { const result = await employeeStore.deleteById(opts.id); @@ -4962,8 +4963,7 @@ const emptyCreateDialog = ref(false); icon-only @click.stop=" () => { - employeeFormState.currentIndexPassport = index; - deleteEmployeeById({ type: 'passport' }); + deleteEmployeeById({ type: 'passport', index }); } " type="button" @@ -5081,8 +5081,7 @@ const emptyCreateDialog = ref(false); icon-only @click.stop=" () => { - employeeFormState.currentIndexVisa = index; - deleteEmployeeById({ type: 'visa' }); + deleteEmployeeById({ type: 'visa', index }); } " type="button" diff --git a/src/pages/03_customer-management/form.ts b/src/pages/03_customer-management/form.ts index 5d07d9a6..29cd75ff 100644 --- a/src/pages/03_customer-management/form.ts +++ b/src/pages/03_customer-management/form.ts @@ -896,52 +896,38 @@ export const useEmployeeForm = defineStore('form-employee', () => { await assignFormDataEmployee(currentFromDataEmployee.value.id); } - async function deletePassport() { + async function deletePassport(index: number) { const res = await employeeStore.delMeta({ parentId: currentFromDataEmployee.value.id || '', group: 'passport', - metaId: - currentFromDataEmployee.value.employeePassport?.[ - state.value.currentIndexPassport - ].id || '', + metaId: currentFromDataEmployee.value.employeePassport?.[index].id || '', }); if (res) { - currentFromDataEmployee.value.employeePassport?.splice( - state.value.currentIndexPassport, - 1, - ); + currentFromDataEmployee.value.employeePassport?.splice(index, 1); await assignFormDataEmployee(currentFromDataEmployee.value.id); } } - async function deleteVisa() { + async function deleteVisa(index: number) { const res = await employeeStore.delMeta({ parentId: currentFromDataEmployee.value.id || '', group: 'visa', - metaId: - currentFromDataEmployee.value.employeeVisa?.[ - state.value.currentIndexVisa - ].id || '', + metaId: currentFromDataEmployee.value.employeeVisa?.[index].id || '', }); if (res) { - currentFromDataEmployee.value.employeeVisa?.splice( - state.value.currentIndexVisa, - 1, - ); + currentFromDataEmployee.value.employeeVisa?.splice(index, 1); await assignFormDataEmployee(currentFromDataEmployee.value.id); } } - async function deleteWorkHistory() { + async function deleteWorkHistory(index: number) { if (!currentFromDataEmployee.value.employeeWork) return; const res = await employeeStore.deleteByIdWork({ employeeId: currentFromDataEmployee.value.id || '', - workId: - currentFromDataEmployee.value.employeeWork[state.value.currentIndex] - ?.id, + workId: currentFromDataEmployee.value.employeeWork[index]?.id, }); if (res) { @@ -949,21 +935,16 @@ export const useEmployeeForm = defineStore('form-employee', () => { } } - async function deleteHealthCheck() { + async function deleteHealthCheck(index: number) { if (!currentFromDataEmployee.value.employeeCheckup) return; const res = await employeeStore.deleteByIdCheckUp({ employeeId: currentFromDataEmployee.value.id || '', - checkUpId: - currentFromDataEmployee.value.employeeCheckup[state.value.currentIndex] - ?.id, + checkUpId: currentFromDataEmployee.value.employeeCheckup[index]?.id, }); if (res) { - currentFromDataEmployee.value.employeeCheckup.splice( - state.value.currentIndex, - 1, - ); + currentFromDataEmployee.value.employeeCheckup.splice(index, 1); } await assignFormDataEmployee(currentFromDataEmployee.value.id); }