From 60431904ce0d4345550d43e1e9794598ccd511f9 Mon Sep 17 00:00:00 2001 From: puriphatt Date: Wed, 12 Jun 2024 09:08:43 +0000 Subject: [PATCH] fix: form employee disable rule validate --- .../02_personnel-management/FormAddress.vue | 107 ++++++++++++------ .../02_personnel-management/InfoForm.vue | 2 + .../FormEmployeeVisa.vue | 75 ++++++++---- src/components/FormDialog.vue | 2 + src/pages/03_customer-management/MainPage.vue | 4 +- 5 files changed, 131 insertions(+), 59 deletions(-) diff --git a/src/components/02_personnel-management/FormAddress.vue b/src/components/02_personnel-management/FormAddress.vue index 4a162080..ac9a7f56 100644 --- a/src/components/02_personnel-management/FormAddress.vue +++ b/src/components/02_personnel-management/FormAddress.vue @@ -15,6 +15,7 @@ defineProps<{ readonly?: boolean; separator?: boolean; employee?: boolean; + disabledRule?: boolean; }>(); const adrressStore = useAddressStore(); @@ -116,10 +117,15 @@ watch(districtId, fetchSubDistrict); class="col-12" v-model="address" lazy-rules - :rules="[ - (val) => - (val && val.length > 0) || $t('formDialogInputAddressValidate'), - ]" + :rules=" + disabledRule + ? [] + : [ + (val) => + (val && val.length > 0) || + $t('formDialogInputAddressValidate'), + ] + " /> (); const address = defineModel('address', { default: '' }); @@ -75,6 +76,7 @@ const tabsList = defineModel<{ name: string; label: string }[]>('tabsList'); outlined separator :readonly="readonly" + :disabledRule="disabledRule" v-model:address="address" v-model:addressEN="addressEN" v-model:provinceId="provinceId" diff --git a/src/components/03_customer-management/FormEmployeeVisa.vue b/src/components/03_customer-management/FormEmployeeVisa.vue index 70b7f1e6..24c771a1 100644 --- a/src/components/03_customer-management/FormEmployeeVisa.vue +++ b/src/components/03_customer-management/FormEmployeeVisa.vue @@ -71,11 +71,11 @@ onMounted(async () => { class="col-3" :options="visaTypeOption" lazy-rules - :rules="[ + /> + { class="col-3" :label="$t('formDialogInputVisaNo')" v-model="visaNumber" - :rules="[ + /> + { :readonly="readonly" :borderless="readonly" :model-value="visaIssueDate ? dateFormat(visaIssueDate) : ''" - :rules="[ + > + + @@ -155,11 +164,11 @@ onMounted(async () => { :readonly="readonly" :borderless="readonly" :model-value="visaExpiryDate ? dateFormat(visaExpiryDate) : ''" - :rules="[ + > + + @@ -181,11 +199,11 @@ onMounted(async () => { class="col-6" :label="$t('formDialogInputVisaPlace')" v-model="visaIssuingPlace" - :rules="[ + /> + { :readonly="readonly" :borderless="readonly" :model-value="visaStayUntilDate ? dateFormat(visaStayUntilDate) : ''" - :rules="[ + > + diff --git a/src/components/FormDialog.vue b/src/components/FormDialog.vue index dd3f0304..5fef3356 100644 --- a/src/components/FormDialog.vue +++ b/src/components/FormDialog.vue @@ -18,6 +18,7 @@ defineProps<{ maxWidth?: number; employee?: boolean; noAddress?: boolean; + disabledRule?: boolean; submit?: (...args: unknown[]) => void; close?: (...args: unknown[]) => void; }>(); @@ -159,6 +160,7 @@ const tabsList = defineModel<{ name: string; label: string }[]>('tabsList'); :employee="employee" :title="titleFormAddress" :separator="addressSeparator" + :disabledRule="disabledRule" v-model:address="address" v-model:addressEN="addressEN" v-model:provinceId="provinceId" diff --git a/src/pages/03_customer-management/MainPage.vue b/src/pages/03_customer-management/MainPage.vue index b623a45b..a7b3211c 100644 --- a/src/pages/03_customer-management/MainPage.vue +++ b/src/pages/03_customer-management/MainPage.vue @@ -1466,8 +1466,9 @@ watch(fieldSelectedCustomer, async () => {