HOTFIX: #6943 CustomerList form salesPersons options #790

Closed
jsegarra wants to merge 84 commits from hotfix_newCustomer_SalesPerson into master
5 changed files with 13 additions and 28 deletions
Showing only changes of commit 39963e4ec9 - Show all commits

View File

@ -58,7 +58,7 @@ const $props = defineProps({
default: 'flex-one', default: 'flex-one',
}, },
searchUrl: { searchUrl: {
type: [String, Boolean], type: String,
default: 'table', default: 'table',
}, },
isEditable: { isEditable: {

View File

@ -2,7 +2,6 @@
import { computed, ref } from 'vue'; import { computed, ref } from 'vue';
import { useI18n } from 'vue-i18n'; import { useI18n } from 'vue-i18n';
import { useValidator } from 'src/composables/useValidator'; import { useValidator } from 'src/composables/useValidator';
import { useAttrs } from 'vue';
const emit = defineEmits([ const emit = defineEmits([
'update:modelValue', 'update:modelValue',
@ -30,11 +29,10 @@ const $props = defineProps({
}, },
}); });
const { validations } = useValidator(); const { validations } = useValidator();
const $attrs = useAttrs();
const { t } = useI18n(); const { t } = useI18n();
const requiredFieldRule = (val) => validations().required(isRequired.value, val); const requiredFieldRule = (val) => validations().required($attrs.required, val);
const isRequired = computed(() => Object.keys($attrs).includes('required'));
const vnInputRef = ref(null); const vnInputRef = ref(null);
const value = computed({ const value = computed({

Evitamos tener que hacer :required="true", ahora solo hace falta required

Evitamos tener que hacer :required="true", ahora solo hace falta required
get() { get() {
@ -59,6 +57,12 @@ const focus = () => {
vnInputRef.value.focus(); vnInputRef.value.focus();
}; };
defineExpose({
focus,
});
import { useAttrs } from 'vue';
const $attrs = useAttrs();
const mixinRules = [ const mixinRules = [
requiredFieldRule, requiredFieldRule,
...($attrs.rules ?? []), ...($attrs.rules ?? []),
@ -72,9 +76,6 @@ const mixinRules = [
} }
}, },
]; ];
defineExpose({
focus,
});
</script> </script>
<template> <template>
@ -84,7 +85,7 @@ defineExpose({
v-model="value" v-model="value"
v-bind="{ ...$attrs, ...styleAttrs }" v-bind="{ ...$attrs, ...styleAttrs }"
:type="$attrs.type" :type="$attrs.type"
:class="{ required: isRequired }" :class="{ required: $attrs.required }"
@keyup.enter="emit('keyup.enter')" @keyup.enter="emit('keyup.enter')"
:clearable="false" :clearable="false"
:rules="mixinRules" :rules="mixinRules"

View File

@ -1,13 +1,8 @@
<script setup> <script setup>
import VnInput from 'src/components/common/VnInput.vue'; import VnInput from 'src/components/common/VnInput.vue';
import { ref } from 'vue';
import { useAttrs } from 'vue';
const model = defineModel({ type: [Number, String] }); const model = defineModel({ type: [Number, String] });
const $attrs = useAttrs();
const step = ref($attrs.step || 0.01);
</script> </script>
<template> <template>
<VnInput v-bind="$attrs" v-model.number="model" type="number" :step="step" /> <VnInput v-bind="$attrs" v-model.number="model" type="number" />
</template> </template>

View File

@ -2,24 +2,16 @@
import CreateNewPostcode from 'src/components/CreateNewPostcodeForm.vue'; import CreateNewPostcode from 'src/components/CreateNewPostcodeForm.vue';
import VnSelectDialog from 'components/common/VnSelectDialog.vue'; import VnSelectDialog from 'components/common/VnSelectDialog.vue';
import { useI18n } from 'vue-i18n'; import { useI18n } from 'vue-i18n';
import { computed, ref } from 'vue'; import { ref } from 'vue';
const { t } = useI18n(); const { t } = useI18n();
const emit = defineEmits(['update:model-value', 'update:options']); const emit = defineEmits(['update:model-value', 'update:options']);
const { validations } = useValidator();
import { useAttrs } from 'vue';
import { useValidator } from 'src/composables/useValidator';
const $attrs = useAttrs();
const props = defineProps({ const props = defineProps({
location: { location: {
type: Object, type: Object,
default: null, default: null,
}, },
}); });
const isRequired = computed(() => Object.keys($attrs).includes('required'));
const requiredFieldRule = (val) => validations().required(isRequired.value, val);
const mixinRules = [requiredFieldRule];
const formatLocation = (obj, properties) => { const formatLocation = (obj, properties) => {
const parts = properties.map((prop) => { const parts = properties.map((prop) => {
if (typeof prop === 'string') { if (typeof prop === 'string') {
@ -76,12 +68,10 @@ function showLabel(data) {
:label="t('Location')" :label="t('Location')"
:placeholder="t('search_by_postalcode')" :placeholder="t('search_by_postalcode')"
:input-debounce="300" :input-debounce="300"
:class="{ required: isRequired }" :class="{ required: $attrs.required }"
v-bind="$attrs" v-bind="$attrs"
clearable clearable
:emit-value="false" :emit-value="false"
:rules="mixinRules"
:lazy-rules="true"
> >
<template #form> <template #form>
<CreateNewPostcode <CreateNewPostcode

View File

@ -12,7 +12,6 @@ import VnLv from 'src/components/ui/VnLv.vue';
import VnUserLink from 'src/components/ui/VnUserLink.vue'; import VnUserLink from 'src/components/ui/VnUserLink.vue';
import CustomerDescriptorMenu from './CustomerDescriptorMenu.vue'; import CustomerDescriptorMenu from './CustomerDescriptorMenu.vue';
import { useState } from 'src/composables/useState'; import { useState } from 'src/composables/useState';
import { QIcon } from 'quasar';
const state = useState(); const state = useState();
const customer = computed(() => state.get('customer')); const customer = computed(() => state.get('customer'));