refactor: edit current inde of checkup and work
This commit is contained in:
parent
0c8e314c8b
commit
a7ada91861
1 changed files with 128 additions and 29 deletions
|
|
@ -593,9 +593,10 @@ export const useEmployeeForm = defineStore('form-employee', () => {
|
|||
|
||||
currentEmployeeCode: string;
|
||||
currentEmployee: Employee | null;
|
||||
currentIndex: number;
|
||||
currentIndexPassport: number;
|
||||
currentIndexVisa: number;
|
||||
currentIndexCheckup: number;
|
||||
currentIndexWorkHistory: number;
|
||||
profileUrl: string;
|
||||
isEmployeeEdit: boolean;
|
||||
profileSubmit: boolean;
|
||||
|
|
@ -625,8 +626,10 @@ export const useEmployeeForm = defineStore('form-employee', () => {
|
|||
}>({
|
||||
isImageEdit: false,
|
||||
currentIndexPassport: -1,
|
||||
currentIndex: -1,
|
||||
currentIndexVisa: -1,
|
||||
currentIndexCheckup: -1,
|
||||
currentIndexWorkHistory: -1,
|
||||
|
||||
statusSavePersonal: false,
|
||||
drawerModal: false,
|
||||
imageDialog: false,
|
||||
|
|
@ -649,12 +652,11 @@ export const useEmployeeForm = defineStore('form-employee', () => {
|
|||
id: '',
|
||||
code: '',
|
||||
customerBranchId: '',
|
||||
nrcNo: undefined,
|
||||
nrcNo: '',
|
||||
dateOfBirth: null,
|
||||
gender: '',
|
||||
nationality: '',
|
||||
status: 'CREATED',
|
||||
|
||||
namePrefix: '',
|
||||
firstName: '',
|
||||
firstNameEN: '',
|
||||
|
|
@ -714,9 +716,47 @@ export const useEmployeeForm = defineStore('form-employee', () => {
|
|||
},
|
||||
],
|
||||
|
||||
employeeVisa: [],
|
||||
employeeVisa: [
|
||||
{
|
||||
arrivalAt: '',
|
||||
arrivalTMNo: '',
|
||||
arrivalTM: '',
|
||||
mrz: undefined,
|
||||
entryCount: 0,
|
||||
issuePlace: '',
|
||||
issueCountry: '',
|
||||
issueDate: new Date(),
|
||||
type: '',
|
||||
expireDate: new Date(),
|
||||
remark: undefined,
|
||||
workerType: '',
|
||||
number: '',
|
||||
},
|
||||
],
|
||||
|
||||
employeePassport: [],
|
||||
employeePassport: [
|
||||
{
|
||||
birthCountry: '',
|
||||
previousPassportRef: '',
|
||||
issuePlace: '',
|
||||
issueCountry: '',
|
||||
issueDate: new Date(),
|
||||
type: '',
|
||||
expireDate: new Date(),
|
||||
birthDate: new Date(),
|
||||
workerStatus: '',
|
||||
nationality: '',
|
||||
gender: '',
|
||||
lastNameEN: '',
|
||||
lastName: '',
|
||||
middleNameEN: '',
|
||||
middleName: '',
|
||||
firstNameEN: '',
|
||||
firstName: '',
|
||||
namePrefix: '',
|
||||
number: '',
|
||||
},
|
||||
],
|
||||
|
||||
employeeOtherInfo: {
|
||||
citizenId: '',
|
||||
|
|
@ -867,7 +907,7 @@ export const useEmployeeForm = defineStore('form-employee', () => {
|
|||
}
|
||||
|
||||
await assignFormDataEmployee(currentFromDataEmployee.value.id);
|
||||
state.value.currentIndexPassport = -1;
|
||||
state.value.currentIndexVisa = -1;
|
||||
}
|
||||
|
||||
async function submitOther() {
|
||||
|
|
@ -931,6 +971,7 @@ export const useEmployeeForm = defineStore('form-employee', () => {
|
|||
});
|
||||
|
||||
if (res) {
|
||||
state.value.currentIndexWorkHistory = -1;
|
||||
await assignFormDataEmployee(currentFromDataEmployee.value.id);
|
||||
}
|
||||
}
|
||||
|
|
@ -944,32 +985,38 @@ export const useEmployeeForm = defineStore('form-employee', () => {
|
|||
});
|
||||
|
||||
if (res) {
|
||||
currentFromDataEmployee.value.employeeCheckup.splice(index, 1);
|
||||
state.value.currentIndexCheckup = -1;
|
||||
await assignFormDataEmployee(currentFromDataEmployee.value.id);
|
||||
}
|
||||
await assignFormDataEmployee(currentFromDataEmployee.value.id);
|
||||
}
|
||||
|
||||
async function submitWorkHistory() {
|
||||
if (!currentFromDataEmployee.value.employeeWork) return;
|
||||
|
||||
if (
|
||||
!currentFromDataEmployee.value.employeeWork[state.value.currentIndex].id
|
||||
!currentFromDataEmployee.value.employeeWork[
|
||||
state.value.currentIndexWorkHistory
|
||||
].id
|
||||
) {
|
||||
const res = await employeeStore.createEmployeeWork(
|
||||
currentFromDataEmployee.value?.id || '',
|
||||
currentFromDataEmployee.value.employeeWork[state.value.currentIndex],
|
||||
currentFromDataEmployee.value.employeeWork[
|
||||
state.value.currentIndexWorkHistory
|
||||
],
|
||||
);
|
||||
if (res) {
|
||||
currentFromDataEmployee.value.employeeWork[
|
||||
state.value.currentIndex
|
||||
state.value.currentIndexWorkHistory
|
||||
].id = res.id;
|
||||
currentFromDataEmployee.value.employeeWork[
|
||||
state.value.currentIndex
|
||||
state.value.currentIndexWorkHistory
|
||||
].statusSave = true;
|
||||
}
|
||||
} else {
|
||||
const data =
|
||||
currentFromDataEmployee.value?.employeeWork[state.value.currentIndex];
|
||||
currentFromDataEmployee.value?.employeeWork[
|
||||
state.value.currentIndexWorkHistory
|
||||
];
|
||||
|
||||
const res = await employeeStore.editByIdEmployeeWork(
|
||||
currentFromDataEmployee.value?.id || '',
|
||||
|
|
@ -978,10 +1025,12 @@ export const useEmployeeForm = defineStore('form-employee', () => {
|
|||
|
||||
if (res) {
|
||||
currentFromDataEmployee.value.employeeWork[
|
||||
state.value.currentIndex
|
||||
state.value.currentIndexWorkHistory
|
||||
].statusSave = true;
|
||||
}
|
||||
}
|
||||
|
||||
state.value.currentIndexWorkHistory = -1;
|
||||
await assignFormDataEmployee(currentFromDataEmployee.value.id);
|
||||
}
|
||||
|
||||
|
|
@ -989,26 +1038,31 @@ export const useEmployeeForm = defineStore('form-employee', () => {
|
|||
if (!currentFromDataEmployee.value.employeeCheckup) return;
|
||||
|
||||
if (
|
||||
!currentFromDataEmployee.value.employeeCheckup[state.value.currentIndex]
|
||||
.id
|
||||
!currentFromDataEmployee.value.employeeCheckup[
|
||||
state.value.currentIndexCheckup
|
||||
].id
|
||||
) {
|
||||
const res = await employeeStore.createEmployeeCheckup(
|
||||
state.value.currentEmployee?.id || '',
|
||||
currentFromDataEmployee.value.employeeCheckup[state.value.currentIndex],
|
||||
currentFromDataEmployee.value.employeeCheckup[
|
||||
state.value.currentIndexCheckup
|
||||
],
|
||||
);
|
||||
|
||||
if (res) {
|
||||
currentFromDataEmployee.value.employeeCheckup[
|
||||
state.value.currentIndex
|
||||
state.value.currentIndexCheckup
|
||||
].id = res.id;
|
||||
|
||||
currentFromDataEmployee.value.employeeCheckup[
|
||||
state.value.currentIndex
|
||||
state.value.currentIndexCheckup
|
||||
].statusSave = true;
|
||||
}
|
||||
} else {
|
||||
const data =
|
||||
currentFromDataEmployee.value.employeeCheckup[state.value.currentIndex];
|
||||
currentFromDataEmployee.value.employeeCheckup[
|
||||
state.value.currentIndexCheckup
|
||||
];
|
||||
|
||||
const res = await employeeStore.editByIdEmployeeCheckup(
|
||||
state.value.currentEmployee?.id || '',
|
||||
|
|
@ -1017,11 +1071,12 @@ export const useEmployeeForm = defineStore('form-employee', () => {
|
|||
|
||||
if (res) {
|
||||
currentFromDataEmployee.value.employeeCheckup[
|
||||
state.value.currentIndex
|
||||
state.value.currentIndexCheckup
|
||||
].statusSave = true;
|
||||
}
|
||||
}
|
||||
|
||||
state.value.currentIndexCheckup = -1;
|
||||
await assignFormDataEmployee(currentFromDataEmployee.value.id);
|
||||
}
|
||||
|
||||
|
|
@ -1108,18 +1163,24 @@ export const useEmployeeForm = defineStore('form-employee', () => {
|
|||
|
||||
employeePassport: structuredClone(
|
||||
payload.employeePassport?.length === 0
|
||||
? defaultFormData.employeePassport
|
||||
? state.value.dialogModal
|
||||
? defaultFormData.employeePassport
|
||||
: []
|
||||
: payload.employeePassport,
|
||||
),
|
||||
|
||||
employeeVisa: structuredClone(
|
||||
payload.employeeVisa?.length === 0
|
||||
? defaultFormData.employeeVisa
|
||||
? state.value.dialogModal
|
||||
? defaultFormData.employeeVisa
|
||||
: []
|
||||
: payload.employeeVisa,
|
||||
),
|
||||
employeeCheckup: structuredClone(
|
||||
payload.employeeCheckup?.length === 0
|
||||
? defaultFormData.employeeCheckup
|
||||
? state.value.dialogModal
|
||||
? defaultFormData.employeeCheckup
|
||||
: []
|
||||
: payload.employeeCheckup?.map((item) => ({
|
||||
...item,
|
||||
statusSave: true,
|
||||
|
|
@ -1133,7 +1194,9 @@ export const useEmployeeForm = defineStore('form-employee', () => {
|
|||
),
|
||||
employeeWork: structuredClone(
|
||||
payload.employeeWork?.length === 0
|
||||
? defaultFormData.employeeWork
|
||||
? state.value.dialogModal
|
||||
? defaultFormData.employeeWork
|
||||
: []
|
||||
: payload.employeeWork?.map((item) => ({
|
||||
...item,
|
||||
statusSave: true,
|
||||
|
|
@ -1146,7 +1209,10 @@ export const useEmployeeForm = defineStore('form-employee', () => {
|
|||
const group = fragment.length === 1 ? 'other' : fragment.at(0);
|
||||
|
||||
return {
|
||||
url: await employeeStore.getAttachment(_data.id, name),
|
||||
url: await employeeStore.getAttachment({
|
||||
parentId: _data.id,
|
||||
name,
|
||||
}),
|
||||
name,
|
||||
group,
|
||||
};
|
||||
|
|
@ -1198,7 +1264,7 @@ export const useEmployeeForm = defineStore('form-employee', () => {
|
|||
|
||||
if (
|
||||
foundBranch.address === payload.address &&
|
||||
foundBranch.zipCode === payload.zipCode
|
||||
foundBranch.subDistrict.id === payload.subDistrictId
|
||||
) {
|
||||
state.value.formDataEmployeeSameAddr = true;
|
||||
} else {
|
||||
|
|
@ -1279,13 +1345,46 @@ export const useEmployeeForm = defineStore('form-employee', () => {
|
|||
(currentFromDataEmployee.value.employeeVisa?.length || 0) - 1;
|
||||
}
|
||||
|
||||
function addCheckup() {
|
||||
currentFromDataEmployee.value.employeeCheckup?.push({
|
||||
coverageExpireDate: null,
|
||||
coverageStartDate: null,
|
||||
insuranceCompany: '',
|
||||
medicalBenefitScheme: '',
|
||||
remark: '',
|
||||
hospitalName: '',
|
||||
provinceId: '',
|
||||
checkupResult: '',
|
||||
checkupType: '',
|
||||
});
|
||||
|
||||
state.value.currentIndexCheckup =
|
||||
(currentFromDataEmployee.value.employeeCheckup?.length || 0) - 1;
|
||||
}
|
||||
|
||||
function addWorkHistory() {
|
||||
currentFromDataEmployee.value.employeeWork?.push({
|
||||
workPermitExpireDate: null,
|
||||
workPermitIssueDate: null,
|
||||
workPermitNo: '',
|
||||
workplace: '',
|
||||
jobType: '',
|
||||
positionName: '',
|
||||
ownerName: '',
|
||||
});
|
||||
|
||||
state.value.currentIndexWorkHistory =
|
||||
(currentFromDataEmployee.value.employeeWork?.length || 0) - 1;
|
||||
}
|
||||
|
||||
return {
|
||||
state,
|
||||
currentFromDataEmployee,
|
||||
resetEmployeeData,
|
||||
|
||||
addPassport,
|
||||
addVisa,
|
||||
addCheckup,
|
||||
addWorkHistory,
|
||||
|
||||
submitPassport,
|
||||
submitVisa,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue