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'),
+ ]
+ "
/>
selectSubDistrict(v)"
/>
selectSubDistrict(v)"
/>
();
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="[
+ >
+
{
color="positive"
/>
+
+
+
@@ -155,11 +164,11 @@ onMounted(async () => {
:readonly="readonly"
:borderless="readonly"
:model-value="visaExpiryDate ? dateFormat(visaExpiryDate) : ''"
- :rules="[
+ >
+
{
color="positive"
/>
+
+
+
@@ -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="[
+ >
+
{
class="col-6"
:label="$t('formDialogInputVisaTM6')"
v-model="tm6Number"
- :rules="[
+ />
+
{
:readonly="readonly"
:borderless="readonly"
:model-value="entryDate ? dateFormat(entryDate) : ''"
- :rules="[
+ >
+
{
color="positive"
/>
+
+
+
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 () => {