{
class="col-3"
:options="addrOptions.provinceOps"
lazy-rules
+ :rules="[
+ (val: string) =>
+ !!val || $t('selectValidate') + $t('formDialogInputPassportCountry'),
+ ]"
/>
{
{
color="positive"
/>
-
-
-
{
{
:model-value="
passportExpiryDate ? dateFormat(passportExpiryDate) : ''
"
+ :rules="[
+ (val: string) =>
+ !!val ||
+ $t('selectValidate') + $t('formDialogInputPassportExpire'),
+ ]"
>
{
color="positive"
/>
-
-
-
@@ -215,8 +229,8 @@ onMounted(async () => {
diff --git a/src/components/03_customer-management/FormEmployeeVisa.vue b/src/components/03_customer-management/FormEmployeeVisa.vue
index 3bb7fb90..5b8b6cef 100644
--- a/src/components/03_customer-management/FormEmployeeVisa.vue
+++ b/src/components/03_customer-management/FormEmployeeVisa.vue
@@ -52,7 +52,7 @@ onMounted(async () => {
• {{ $t(`formDialogTitleVisa`) }}
{
class="col-3"
:options="addrOptions.provinceOps"
lazy-rules
+ :rules="[
+ (val: string) =>
+ !!val || $t('selectValidate') + $t('formDialogInputVisaType'),
+ ]"
/>
{
class="col-3"
:label="$t('formDialogInputVisaNo')"
v-model="visaNumber"
+ :rules="[
+ (val: string) =>
+ !!val || $t('inputValidate') + $t('formDialogInputVisaNo'),
+ ]"
/>
{
{
color="positive"
/>
-
-
-
{
{
color="positive"
/>
-
-
-
{
class="col-6"
:label="$t('formDialogInputVisaPlace')"
v-model="visaIssuingPlace"
+ :rules="[
+ (val: string) =>
+ !!val || $t('selectValidate') + $t('formDialogInputVisaPlace'),
+ ]"
/>
{
{
{
class="col-6"
:label="$t('formDialogInputVisaTM6')"
v-model="tm6Number"
+ :rules="[
+ (val: string) =>
+ !!val || $t('inputValidate') + $t('formDialogInputVisaTM6'),
+ ]"
/>
{
:readonly="readonly"
:borderless="readonly"
:model-value="entryDate ? dateFormat(entryDate) : ''"
+ :rules="[
+ (val: string) =>
+ !!val || $t('selectValidate') + $t('formDialogInputVisaEnter'),
+ ]"
>
{
color="positive"
/>
-
-
-