From 9466019303238da0cef4c1a3628940d8b9abd136 Mon Sep 17 00:00:00 2001 From: Methapon Metanipat Date: Thu, 5 Sep 2024 15:50:51 +0700 Subject: [PATCH] feat: validate email --- src/components/01_branch-management/FormBranchContact.vue | 6 ++++++ src/components/02_personnel-management/FormPerson.vue | 6 ++++++ .../components/employer/EmployerFormContact.vue | 6 ++++++ 3 files changed, 18 insertions(+) diff --git a/src/components/01_branch-management/FormBranchContact.vue b/src/components/01_branch-management/FormBranchContact.vue index 02e6cf8a..778f6aed 100644 --- a/src/components/01_branch-management/FormBranchContact.vue +++ b/src/components/01_branch-management/FormBranchContact.vue @@ -38,6 +38,12 @@ defineProps<{ hide-bottom-space class="col-12 col-md-4" :label="$t('form.email')" + :rules="[ + (v: string) => !!v || $t('form.error.required'), + (v: string) => + /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/g.test(v) || + $t('form.error.invalid'), + ]" for="input-email" :model-value="readonly ? email || '-' : email" @update:model-value="(v) => (typeof v === 'string' ? (email = v) : '')" diff --git a/src/components/02_personnel-management/FormPerson.vue b/src/components/02_personnel-management/FormPerson.vue index dcc28d04..76497c54 100644 --- a/src/components/02_personnel-management/FormPerson.vue +++ b/src/components/02_personnel-management/FormPerson.vue @@ -268,6 +268,12 @@ watch( outlined :readonly="readonly" :label="$t('form.email')" + :rules="[ + (v: string) => !!v || $t('form.error.required'), + (v: string) => + /^[\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/03_customer-management/components/employer/EmployerFormContact.vue b/src/pages/03_customer-management/components/employer/EmployerFormContact.vue index 88001664..d571f6a7 100644 --- a/src/pages/03_customer-management/components/employer/EmployerFormContact.vue +++ b/src/pages/03_customer-management/components/employer/EmployerFormContact.vue @@ -31,6 +31,12 @@ const telephone = defineModel('telephone'); hide-bottom-space class="col-md-6 col-12" :label="$t('form.email')" + :rules="[ + (v: string) => !!v || $t('form.error.required'), + (v: string) => + /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/g.test(v) || + $t('form.error.invalid'), + ]" v-model="mail" />