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;
|
currentEmployeeCode: string;
|
||||||
currentEmployee: Employee | null;
|
currentEmployee: Employee | null;
|
||||||
currentIndex: number;
|
|
||||||
currentIndexPassport: number;
|
currentIndexPassport: number;
|
||||||
currentIndexVisa: number;
|
currentIndexVisa: number;
|
||||||
|
currentIndexCheckup: number;
|
||||||
|
currentIndexWorkHistory: number;
|
||||||
profileUrl: string;
|
profileUrl: string;
|
||||||
isEmployeeEdit: boolean;
|
isEmployeeEdit: boolean;
|
||||||
profileSubmit: boolean;
|
profileSubmit: boolean;
|
||||||
|
|
@ -625,8 +626,10 @@ export const useEmployeeForm = defineStore('form-employee', () => {
|
||||||
}>({
|
}>({
|
||||||
isImageEdit: false,
|
isImageEdit: false,
|
||||||
currentIndexPassport: -1,
|
currentIndexPassport: -1,
|
||||||
currentIndex: -1,
|
|
||||||
currentIndexVisa: -1,
|
currentIndexVisa: -1,
|
||||||
|
currentIndexCheckup: -1,
|
||||||
|
currentIndexWorkHistory: -1,
|
||||||
|
|
||||||
statusSavePersonal: false,
|
statusSavePersonal: false,
|
||||||
drawerModal: false,
|
drawerModal: false,
|
||||||
imageDialog: false,
|
imageDialog: false,
|
||||||
|
|
@ -649,12 +652,11 @@ export const useEmployeeForm = defineStore('form-employee', () => {
|
||||||
id: '',
|
id: '',
|
||||||
code: '',
|
code: '',
|
||||||
customerBranchId: '',
|
customerBranchId: '',
|
||||||
nrcNo: undefined,
|
nrcNo: '',
|
||||||
dateOfBirth: null,
|
dateOfBirth: null,
|
||||||
gender: '',
|
gender: '',
|
||||||
nationality: '',
|
nationality: '',
|
||||||
status: 'CREATED',
|
status: 'CREATED',
|
||||||
|
|
||||||
namePrefix: '',
|
namePrefix: '',
|
||||||
firstName: '',
|
firstName: '',
|
||||||
firstNameEN: '',
|
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: {
|
employeeOtherInfo: {
|
||||||
citizenId: '',
|
citizenId: '',
|
||||||
|
|
@ -867,7 +907,7 @@ export const useEmployeeForm = defineStore('form-employee', () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
await assignFormDataEmployee(currentFromDataEmployee.value.id);
|
await assignFormDataEmployee(currentFromDataEmployee.value.id);
|
||||||
state.value.currentIndexPassport = -1;
|
state.value.currentIndexVisa = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function submitOther() {
|
async function submitOther() {
|
||||||
|
|
@ -931,6 +971,7 @@ export const useEmployeeForm = defineStore('form-employee', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
if (res) {
|
if (res) {
|
||||||
|
state.value.currentIndexWorkHistory = -1;
|
||||||
await assignFormDataEmployee(currentFromDataEmployee.value.id);
|
await assignFormDataEmployee(currentFromDataEmployee.value.id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -944,32 +985,38 @@ export const useEmployeeForm = defineStore('form-employee', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
if (res) {
|
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() {
|
async function submitWorkHistory() {
|
||||||
if (!currentFromDataEmployee.value.employeeWork) return;
|
if (!currentFromDataEmployee.value.employeeWork) return;
|
||||||
|
|
||||||
if (
|
if (
|
||||||
!currentFromDataEmployee.value.employeeWork[state.value.currentIndex].id
|
!currentFromDataEmployee.value.employeeWork[
|
||||||
|
state.value.currentIndexWorkHistory
|
||||||
|
].id
|
||||||
) {
|
) {
|
||||||
const res = await employeeStore.createEmployeeWork(
|
const res = await employeeStore.createEmployeeWork(
|
||||||
currentFromDataEmployee.value?.id || '',
|
currentFromDataEmployee.value?.id || '',
|
||||||
currentFromDataEmployee.value.employeeWork[state.value.currentIndex],
|
currentFromDataEmployee.value.employeeWork[
|
||||||
|
state.value.currentIndexWorkHistory
|
||||||
|
],
|
||||||
);
|
);
|
||||||
if (res) {
|
if (res) {
|
||||||
currentFromDataEmployee.value.employeeWork[
|
currentFromDataEmployee.value.employeeWork[
|
||||||
state.value.currentIndex
|
state.value.currentIndexWorkHistory
|
||||||
].id = res.id;
|
].id = res.id;
|
||||||
currentFromDataEmployee.value.employeeWork[
|
currentFromDataEmployee.value.employeeWork[
|
||||||
state.value.currentIndex
|
state.value.currentIndexWorkHistory
|
||||||
].statusSave = true;
|
].statusSave = true;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
const data =
|
const data =
|
||||||
currentFromDataEmployee.value?.employeeWork[state.value.currentIndex];
|
currentFromDataEmployee.value?.employeeWork[
|
||||||
|
state.value.currentIndexWorkHistory
|
||||||
|
];
|
||||||
|
|
||||||
const res = await employeeStore.editByIdEmployeeWork(
|
const res = await employeeStore.editByIdEmployeeWork(
|
||||||
currentFromDataEmployee.value?.id || '',
|
currentFromDataEmployee.value?.id || '',
|
||||||
|
|
@ -978,10 +1025,12 @@ export const useEmployeeForm = defineStore('form-employee', () => {
|
||||||
|
|
||||||
if (res) {
|
if (res) {
|
||||||
currentFromDataEmployee.value.employeeWork[
|
currentFromDataEmployee.value.employeeWork[
|
||||||
state.value.currentIndex
|
state.value.currentIndexWorkHistory
|
||||||
].statusSave = true;
|
].statusSave = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
state.value.currentIndexWorkHistory = -1;
|
||||||
await assignFormDataEmployee(currentFromDataEmployee.value.id);
|
await assignFormDataEmployee(currentFromDataEmployee.value.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -989,26 +1038,31 @@ export const useEmployeeForm = defineStore('form-employee', () => {
|
||||||
if (!currentFromDataEmployee.value.employeeCheckup) return;
|
if (!currentFromDataEmployee.value.employeeCheckup) return;
|
||||||
|
|
||||||
if (
|
if (
|
||||||
!currentFromDataEmployee.value.employeeCheckup[state.value.currentIndex]
|
!currentFromDataEmployee.value.employeeCheckup[
|
||||||
.id
|
state.value.currentIndexCheckup
|
||||||
|
].id
|
||||||
) {
|
) {
|
||||||
const res = await employeeStore.createEmployeeCheckup(
|
const res = await employeeStore.createEmployeeCheckup(
|
||||||
state.value.currentEmployee?.id || '',
|
state.value.currentEmployee?.id || '',
|
||||||
currentFromDataEmployee.value.employeeCheckup[state.value.currentIndex],
|
currentFromDataEmployee.value.employeeCheckup[
|
||||||
|
state.value.currentIndexCheckup
|
||||||
|
],
|
||||||
);
|
);
|
||||||
|
|
||||||
if (res) {
|
if (res) {
|
||||||
currentFromDataEmployee.value.employeeCheckup[
|
currentFromDataEmployee.value.employeeCheckup[
|
||||||
state.value.currentIndex
|
state.value.currentIndexCheckup
|
||||||
].id = res.id;
|
].id = res.id;
|
||||||
|
|
||||||
currentFromDataEmployee.value.employeeCheckup[
|
currentFromDataEmployee.value.employeeCheckup[
|
||||||
state.value.currentIndex
|
state.value.currentIndexCheckup
|
||||||
].statusSave = true;
|
].statusSave = true;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
const data =
|
const data =
|
||||||
currentFromDataEmployee.value.employeeCheckup[state.value.currentIndex];
|
currentFromDataEmployee.value.employeeCheckup[
|
||||||
|
state.value.currentIndexCheckup
|
||||||
|
];
|
||||||
|
|
||||||
const res = await employeeStore.editByIdEmployeeCheckup(
|
const res = await employeeStore.editByIdEmployeeCheckup(
|
||||||
state.value.currentEmployee?.id || '',
|
state.value.currentEmployee?.id || '',
|
||||||
|
|
@ -1017,11 +1071,12 @@ export const useEmployeeForm = defineStore('form-employee', () => {
|
||||||
|
|
||||||
if (res) {
|
if (res) {
|
||||||
currentFromDataEmployee.value.employeeCheckup[
|
currentFromDataEmployee.value.employeeCheckup[
|
||||||
state.value.currentIndex
|
state.value.currentIndexCheckup
|
||||||
].statusSave = true;
|
].statusSave = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
state.value.currentIndexCheckup = -1;
|
||||||
await assignFormDataEmployee(currentFromDataEmployee.value.id);
|
await assignFormDataEmployee(currentFromDataEmployee.value.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1108,18 +1163,24 @@ export const useEmployeeForm = defineStore('form-employee', () => {
|
||||||
|
|
||||||
employeePassport: structuredClone(
|
employeePassport: structuredClone(
|
||||||
payload.employeePassport?.length === 0
|
payload.employeePassport?.length === 0
|
||||||
? defaultFormData.employeePassport
|
? state.value.dialogModal
|
||||||
|
? defaultFormData.employeePassport
|
||||||
|
: []
|
||||||
: payload.employeePassport,
|
: payload.employeePassport,
|
||||||
),
|
),
|
||||||
|
|
||||||
employeeVisa: structuredClone(
|
employeeVisa: structuredClone(
|
||||||
payload.employeeVisa?.length === 0
|
payload.employeeVisa?.length === 0
|
||||||
? defaultFormData.employeeVisa
|
? state.value.dialogModal
|
||||||
|
? defaultFormData.employeeVisa
|
||||||
|
: []
|
||||||
: payload.employeeVisa,
|
: payload.employeeVisa,
|
||||||
),
|
),
|
||||||
employeeCheckup: structuredClone(
|
employeeCheckup: structuredClone(
|
||||||
payload.employeeCheckup?.length === 0
|
payload.employeeCheckup?.length === 0
|
||||||
? defaultFormData.employeeCheckup
|
? state.value.dialogModal
|
||||||
|
? defaultFormData.employeeCheckup
|
||||||
|
: []
|
||||||
: payload.employeeCheckup?.map((item) => ({
|
: payload.employeeCheckup?.map((item) => ({
|
||||||
...item,
|
...item,
|
||||||
statusSave: true,
|
statusSave: true,
|
||||||
|
|
@ -1133,7 +1194,9 @@ export const useEmployeeForm = defineStore('form-employee', () => {
|
||||||
),
|
),
|
||||||
employeeWork: structuredClone(
|
employeeWork: structuredClone(
|
||||||
payload.employeeWork?.length === 0
|
payload.employeeWork?.length === 0
|
||||||
? defaultFormData.employeeWork
|
? state.value.dialogModal
|
||||||
|
? defaultFormData.employeeWork
|
||||||
|
: []
|
||||||
: payload.employeeWork?.map((item) => ({
|
: payload.employeeWork?.map((item) => ({
|
||||||
...item,
|
...item,
|
||||||
statusSave: true,
|
statusSave: true,
|
||||||
|
|
@ -1146,7 +1209,10 @@ export const useEmployeeForm = defineStore('form-employee', () => {
|
||||||
const group = fragment.length === 1 ? 'other' : fragment.at(0);
|
const group = fragment.length === 1 ? 'other' : fragment.at(0);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
url: await employeeStore.getAttachment(_data.id, name),
|
url: await employeeStore.getAttachment({
|
||||||
|
parentId: _data.id,
|
||||||
|
name,
|
||||||
|
}),
|
||||||
name,
|
name,
|
||||||
group,
|
group,
|
||||||
};
|
};
|
||||||
|
|
@ -1198,7 +1264,7 @@ export const useEmployeeForm = defineStore('form-employee', () => {
|
||||||
|
|
||||||
if (
|
if (
|
||||||
foundBranch.address === payload.address &&
|
foundBranch.address === payload.address &&
|
||||||
foundBranch.zipCode === payload.zipCode
|
foundBranch.subDistrict.id === payload.subDistrictId
|
||||||
) {
|
) {
|
||||||
state.value.formDataEmployeeSameAddr = true;
|
state.value.formDataEmployeeSameAddr = true;
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -1279,13 +1345,46 @@ export const useEmployeeForm = defineStore('form-employee', () => {
|
||||||
(currentFromDataEmployee.value.employeeVisa?.length || 0) - 1;
|
(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 {
|
return {
|
||||||
state,
|
state,
|
||||||
currentFromDataEmployee,
|
currentFromDataEmployee,
|
||||||
resetEmployeeData,
|
resetEmployeeData,
|
||||||
|
|
||||||
addPassport,
|
addPassport,
|
||||||
addVisa,
|
addVisa,
|
||||||
|
addCheckup,
|
||||||
|
addWorkHistory,
|
||||||
|
|
||||||
submitPassport,
|
submitPassport,
|
||||||
submitVisa,
|
submitVisa,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue