refactor: detect unsave and confirmation of employee
This commit is contained in:
parent
9f86229bd2
commit
1164748e1b
2 changed files with 48 additions and 0 deletions
|
|
@ -408,6 +408,31 @@ async function editCustomerForm(id: string) {
|
||||||
customerFormState.value.editCustomerId = id;
|
customerFormState.value.editCustomerId = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function employeeConfirmUnsave(close = true) {
|
||||||
|
dialog({
|
||||||
|
color: 'warning',
|
||||||
|
icon: 'mdi-alert',
|
||||||
|
title: t('form.warning.title'),
|
||||||
|
actionText: t('ok'),
|
||||||
|
persistent: true,
|
||||||
|
message: t('form.warning.unsave'),
|
||||||
|
action: () => {
|
||||||
|
employeeFormStore.resetFormDataEmployee();
|
||||||
|
employeeFormState.value.editReadonly = true;
|
||||||
|
employeeFormState.value.dialogModal = !close;
|
||||||
|
},
|
||||||
|
cancel: () => {},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function employeeFormUndo(close = true) {
|
||||||
|
if (employeeFormStore.isFormDataDifferent()) {
|
||||||
|
return employeeConfirmUnsave(close);
|
||||||
|
}
|
||||||
|
employeeFormStore.resetFormDataEmployee();
|
||||||
|
employeeFormState.value.editReadonly = true;
|
||||||
|
}
|
||||||
|
|
||||||
function customerConfirmUnsave(close = true) {
|
function customerConfirmUnsave(close = true) {
|
||||||
dialog({
|
dialog({
|
||||||
color: 'warning',
|
color: 'warning',
|
||||||
|
|
@ -1838,6 +1863,18 @@ function createEmployeeForm() {
|
||||||
<DialogForm
|
<DialogForm
|
||||||
:title="$t('form.title.create', { name: 'Employee' })"
|
:title="$t('form.title.create', { name: 'Employee' })"
|
||||||
v-model:modal="employeeFormState.dialogModal"
|
v-model:modal="employeeFormState.dialogModal"
|
||||||
|
:undo="() => employeeFormUndo(false)"
|
||||||
|
:before-close="
|
||||||
|
() => {
|
||||||
|
console.log('asd');
|
||||||
|
|
||||||
|
if (employeeFormStore.isFormDataDifferent()) {
|
||||||
|
employeeConfirmUnsave();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
"
|
||||||
>
|
>
|
||||||
<div class="q-mx-lg q-mt-lg">
|
<div class="q-mx-lg q-mt-lg">
|
||||||
<ProfileBanner
|
<ProfileBanner
|
||||||
|
|
|
||||||
|
|
@ -243,6 +243,7 @@ export const useEmployeeForm = defineStore('form-employee', () => {
|
||||||
isEmployeeEdit: boolean;
|
isEmployeeEdit: boolean;
|
||||||
profileSubmit: boolean;
|
profileSubmit: boolean;
|
||||||
formDataEmployeeSameAddr: boolean;
|
formDataEmployeeSameAddr: boolean;
|
||||||
|
editReadonly: boolean;
|
||||||
infoEmployeePersonCard: {
|
infoEmployeePersonCard: {
|
||||||
id: string;
|
id: string;
|
||||||
img: string;
|
img: string;
|
||||||
|
|
@ -275,6 +276,7 @@ export const useEmployeeForm = defineStore('form-employee', () => {
|
||||||
isEmployeeEdit: false,
|
isEmployeeEdit: false,
|
||||||
profileSubmit: false,
|
profileSubmit: false,
|
||||||
formDataEmployeeSameAddr: true,
|
formDataEmployeeSameAddr: true,
|
||||||
|
editReadonly: false,
|
||||||
infoEmployeePersonCard: [],
|
infoEmployeePersonCard: [],
|
||||||
formDataEmployeeOwner: undefined,
|
formDataEmployeeOwner: undefined,
|
||||||
});
|
});
|
||||||
|
|
@ -367,6 +369,13 @@ export const useEmployeeForm = defineStore('form-employee', () => {
|
||||||
structuredClone(defaultFormData),
|
structuredClone(defaultFormData),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
function isFormDataDifferent() {
|
||||||
|
return (
|
||||||
|
JSON.stringify(resetEmployeeData) !==
|
||||||
|
JSON.stringify(currentFromDataEmployee.value)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
function resetFormDataEmployee(cb?: (...args: any[]) => unknown) {
|
function resetFormDataEmployee(cb?: (...args: any[]) => unknown) {
|
||||||
currentFromDataEmployee.value = structuredClone(resetEmployeeData);
|
currentFromDataEmployee.value = structuredClone(resetEmployeeData);
|
||||||
cb?.();
|
cb?.();
|
||||||
|
|
@ -452,5 +461,7 @@ export const useEmployeeForm = defineStore('form-employee', () => {
|
||||||
assignFormDataEmployee,
|
assignFormDataEmployee,
|
||||||
|
|
||||||
employeeFilterOwnerBranch,
|
employeeFilterOwnerBranch,
|
||||||
|
|
||||||
|
isFormDataDifferent,
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue