From dfc17e962369b60dde14f1e94dcf78b39c9bab52 Mon Sep 17 00:00:00 2001 From: puriphatt Date: Thu, 24 Apr 2025 17:58:48 +0700 Subject: [PATCH] feat: update importNationality to support multiple selections and adjust related logic --- .../02_personnel-management/FormByType.vue | 11 ++++++----- src/components/shared/SelectInput.vue | 2 +- src/pages/02_personnel-management/MainPage.vue | 14 +++++++++----- src/stores/user/types.ts | 4 ++-- 4 files changed, 18 insertions(+), 13 deletions(-) diff --git a/src/components/02_personnel-management/FormByType.vue b/src/components/02_personnel-management/FormByType.vue index 7f850999..ec3619a1 100644 --- a/src/components/02_personnel-management/FormByType.vue +++ b/src/components/02_personnel-management/FormByType.vue @@ -29,7 +29,7 @@ const discountCondition = defineModel( const sourceNationality = defineModel( 'sourceNationality', ); -const importNationality = defineModel( +const importNationality = defineModel( 'importNationality', ); const trainingPlace = defineModel('trainingPlace'); @@ -179,18 +179,19 @@ function deleteFile(name: string) { (v) => (typeof v === 'string' ? (sourceNationality = v) : '') " /> + diff --git a/src/pages/02_personnel-management/MainPage.vue b/src/pages/02_personnel-management/MainPage.vue index b3ea5058..b0aa4f02 100644 --- a/src/pages/02_personnel-management/MainPage.vue +++ b/src/pages/02_personnel-management/MainPage.vue @@ -99,7 +99,7 @@ const userFileList = ref<{ name: string; url: string }[]>([]); const typeStats = ref(); const userStats = ref(); -const searchDate = ref([]); +const searchDate = ref<[]>([]); const urlProfile = ref(); const profileFileImg = ref(null); @@ -126,7 +126,7 @@ const defaultFormData = { streetEN: '', street: '', trainingPlace: null, - importNationality: null, + importNationality: [], sourceNationality: null, licenseExpireDate: null, licenseIssueDate: null, @@ -178,7 +178,7 @@ const formData = ref({ streetEN: '', street: '', trainingPlace: null, - importNationality: null, + importNationality: [], sourceNationality: null, licenseExpireDate: null, licenseIssueDate: null, @@ -555,6 +555,7 @@ async function triggerChangeStatus(id: string, status: string) { async function assignFormData(idEdit: string) { if (!userData.value) return; const foundUser = userData.value.result.find((user) => user.id === idEdit); + console.log(foundUser); if (foundUser) { currentUser.value = foundUser; @@ -576,7 +577,10 @@ async function assignFormData(idEdit: string) { street: foundUser.street, streetEN: foundUser.streetEN, trainingPlace: foundUser.trainingPlace, - importNationality: foundUser.importNationality, + importNationality: + typeof foundUser.importNationality === 'string' + ? [foundUser.importNationality] + : foundUser.importNationality, sourceNationality: foundUser.sourceNationality, licenseNo: foundUser.licenseNo, discountCondition: foundUser.discountCondition, @@ -750,7 +754,7 @@ watch( formData.value.responsibleArea = null; formData.value.discountCondition = null; formData.value.sourceNationality = null; - formData.value.importNationality = null; + formData.value.importNationality = []; formData.value.trainingPlace = null; formData.value.checkpoint = null; formData.value.checkpointEN = null; diff --git a/src/stores/user/types.ts b/src/stores/user/types.ts index 28dcfc8b..2f6daeb5 100644 --- a/src/stores/user/types.ts +++ b/src/stores/user/types.ts @@ -13,7 +13,7 @@ export type User = { createdBy: string; status: Status; trainingPlace: string | null; - importNationality: string | null; + importNationality: [] | null; sourceNationality: string | null; licenseExpireDate: Date | null; licenseIssueDate: Date | null; @@ -82,7 +82,7 @@ export type UserCreate = { streetEN: string; street: string; trainingPlace?: string | null; - importNationality?: string | null; + importNationality?: string[] | null; sourceNationality?: string | null; licenseExpireDate?: Date | null; licenseIssueDate?: Date | null;