diff --git a/src/components/common/VnInput.vue b/src/components/common/VnInput.vue
index da7f0d0b71..8c334e5737 100644
--- a/src/components/common/VnInput.vue
+++ b/src/components/common/VnInput.vue
@@ -1,6 +1,7 @@
@@ -89,9 +95,10 @@ watch(
placeholder="dd/mm/aaaa"
v-bind="{ ...$attrs, ...styleAttrs }"
:class="{ required: $attrs.required }"
- :rules="$attrs.required ? [requiredFieldRule] : null"
+ :rules="mixinRules"
:clearable="false"
>
+ {{ $attrs }}
import { watch, computed, ref } from 'vue';
-import { useI18n } from 'vue-i18n';
import { date } from 'quasar';
+import { useValidator } from 'src/composables/useValidator';
+const { validations } = useValidator();
+import { useAttrs } from 'vue';
const model = defineModel({ type: String });
const props = defineProps({
@@ -14,8 +16,10 @@ const props = defineProps({
default: false,
},
});
-const { t } = useI18n();
-const requiredFieldRule = (val) => !!val || t('globals.fieldRequired');
+const $attrs = useAttrs();
+
+const requiredFieldRule = (val) => validations().required($attrs.required, val);
+const mixinRules = [requiredFieldRule, ...($attrs.rules ?? [])];
const dateFormat = 'HH:mm';
const isPopupOpen = ref();
@@ -73,7 +77,7 @@ watch(
v-bind="{ ...$attrs, ...styleAttrs }"
:class="{ required: $attrs.required }"
style="min-width: 100px"
- :rules="$attrs.required ? [requiredFieldRule] : null"
+ :rules="mixinRules"
>
validations({}).presence(val);
+const requiredFieldRule = (val) => validations().required($attrs.required, val);
const $attrs = useAttrs();
-const mixinRules = () =>
- $attrs.required ? [$attrs?.rules ?? [], requiredFieldRule] : null;
+const mixinRules = [requiredFieldRule, ...($attrs.rules ?? [])];
+
const { optionLabel, optionValue, optionFilter, options, modelValue } = toRefs($props);
const myOptions = ref([]);
const myOptionsOriginal = ref([]);
@@ -116,7 +116,6 @@ function setOptions(data) {
}
onMounted(() => {
- console.log(vnSelectRef.value.rules);
setOptions(options.value);
if ($props.url && $props.modelValue) fetchFilter($props.modelValue);
});
@@ -216,7 +215,7 @@ watch(modelValue, (newValue) => {
fill-input
ref="vnSelectRef"
lazy-rules
- :rules="mixinRules()"
+ :rules="mixinRules"
:class="{ required: $attrs.required }"
virtual-scroll-slice-size="options.length"
>