From 9539adee36903f00e2b8548e0d7c239dfd796231 Mon Sep 17 00:00:00 2001 From: puriphatt Date: Wed, 9 Jul 2025 10:55:02 +0700 Subject: [PATCH] feat: enhance email validation and improve name display logic in personnel management forms --- .../02_personnel-management/FormPerson.vue | 17 +++++++---------- src/pages/02_personnel-management/MainPage.vue | 10 +++++----- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/src/components/02_personnel-management/FormPerson.vue b/src/components/02_personnel-management/FormPerson.vue index 6d8601a6..1aee5b95 100644 --- a/src/components/02_personnel-management/FormPerson.vue +++ b/src/components/02_personnel-management/FormPerson.vue @@ -253,16 +253,13 @@ watch( hide-bottom-space :readonly="readonly" :label="$t('form.email')" - :rules=" - readonly - ? undefined - : [ - (v: string) => - !v || - /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/g.test(v) || - $t('form.error.invalid'), - ] - " + :rules="[ + (val) => (val && val.length > 0) || $t('form.error.required'), + (v: string) => + !v || + /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/g.test(v) || + $t('form.error.invalid'), + ]" class="col-md-3 col-6" :model-value="readonly ? email || '-' : email" @update:model-value="(v) => (typeof v === 'string' ? (email = v) : '')" diff --git a/src/pages/02_personnel-management/MainPage.vue b/src/pages/02_personnel-management/MainPage.vue index cff14f9d..3c9c9854 100644 --- a/src/pages/02_personnel-management/MainPage.vue +++ b/src/pages/02_personnel-management/MainPage.vue @@ -1278,7 +1278,7 @@ watch( {{ locale === 'eng' ? `${props.row.firstNameEN} ${props.row.lastNameEN}`.trim() - : `${props.row.firstName} ${props.row.lastName}`.trim() + : `${props.row.firstName || props.row.firstNameEN} ${props.row.lastName || props.row.lastNameEN}`.trim() }} @@ -1556,7 +1556,7 @@ watch( :title=" locale === 'eng' ? `${currentUser.firstNameEN} ${currentUser.lastNameEN}` - : `${currentUser.firstName} ${currentUser.lastName}` + : `${currentUser.firstName || currentUser.firstNameEN} ${currentUser.lastName || currentUser.lastNameEN}` " v-model:drawerOpen="infoDrawer" :submit="() => onSubmit()" @@ -1592,8 +1592,8 @@ watch( setPrefixName( { namePrefix: formData.namePrefix, - firstName: formData.firstName, - lastName: formData.lastName, + firstName: formData.firstName || formData.firstNameEN, + lastName: formData.lastName || formData.lastNameEN, firstNameEN: formData.firstNameEN, lastNameEN: formData.lastNameEN, },