feat: #8258 added uppercase option to VnInput #1184

Merged
provira merged 11 commits from 8258-uppercaseInputs into dev 2025-01-20 06:01:34 +00:00
6 changed files with 56 additions and 5 deletions

View File

@ -42,10 +42,13 @@ const $props = defineProps({
type: Number,
default: null,
},
uppercase: {
type: Boolean,
default: false,
},
});
const vnInputRef = ref(null);
const showPassword = ref(false);
const value = computed({
get() {
return $props.modelValue;
@ -117,6 +120,10 @@ const handleInsertMode = (e) => {
input.setSelectionRange(cursorPos + 1, cursorPos + 1);
});
};
const handleUppercase = () => {
value.value = value.value?.toUpperCase() || '';
};
</script>
<template>
@ -159,7 +166,16 @@ const handleInsertMode = (e) => {
emit('remove');
}
"
></QIcon>
<QIcon
name="match_case"
size="xs"
v-if="!$attrs.disabled && !($attrs.readonly) && $props.uppercase"
@click="handleUppercase"
class="uppercase-icon"
/>
<slot name="append" v-if="$slots.append && !$attrs.disabled" />
<QIcon v-if="info" name="info">
<QTooltip max-width="350px">
@ -170,3 +186,14 @@ const handleInsertMode = (e) => {
</QInput>
</div>
</template>
<i18n>
en:
inputMin: Must be more than {value}
maxLength: The value exceeds {value} characters
inputMax: Must be less than {value}
es:
inputMin: Debe ser mayor a {value}
maxLength: El valor excede los {value} carácteres
inputMax: Debe ser menor a {value}
</i18n>

View File

@ -44,6 +44,7 @@ function handleLocation(data, location) {
:required="true"
:rules="validate('client.socialName')"
clearable
uppercase="true"
v-model="data.socialName"
>
<template #append>

View File

@ -50,6 +50,14 @@ const columns = computed(() => [
isTitle: true,
create: true,
columnClass: 'expand',
attrs: {
Review

tinc dubtes de per a que necesita el customer list saber que es upper, no es suficient amb el fiscalData?

tinc dubtes de per a que necesita el customer list saber que es upper, no es suficient amb el fiscalData?
Review

Per a poder convertir-lo a uppercase quan es crea un nou customer també, si sols es vol que es puga fer desde fiscalData aleshores deixe sols fiscalData. El mateix amb supplier list

Per a poder convertir-lo a uppercase quan es crea un nou customer també, si sols es vol que es puga fer desde fiscalData aleshores deixe sols fiscalData. El mateix amb supplier list
uppercase: true,
},
columnFilter: {
attrs: {
uppercase: false,
},
},
},
{
align: 'left',

View File

@ -92,6 +92,7 @@ function handleLocation(data, location) {
<VnInput
v-model="data.name"
:label="t('supplier.fiscalData.name')"
uppercase="true"
clearable
/>
<VnInput

View File

@ -5,6 +5,7 @@ import VnTable from 'components/VnTable/VnTable.vue';
import VnSearchbar from 'components/ui/VnSearchbar.vue';
import RightMenu from 'src/components/common/RightMenu.vue';
import SupplierListFilter from './SupplierListFilter.vue';
import VnInput from 'src/components/common/VnInput.vue';
const { t } = useI18n();
const tableRef = ref();
@ -23,9 +24,14 @@ const columns = computed(() => [
align: 'left',
label: t('globals.name'),
name: 'socialName',
create: true,
attrs: {
uppercase: true,
},
columnFilter: {
name: 'search',
attrs: {
uppercase: false,
},
},
isTitle: true,
},
@ -118,14 +124,18 @@ const columns = computed(() => [
formInitialData: {},
mapper: (data) => {
data.name = data.socialName;
delete data.socialName;
return data;
},
}"
:right-search="false"
order="id ASC"
:columns="columns"
/>
>
<template #more-create-dialog="{ data }">
<VnInput :label="t('globals.name')" v-model="data.socialName" :uppercase="true" />
</template>
</VnTable>
</template>
<i18n>

View File

@ -138,7 +138,11 @@ function uppercaseStreetModel(data) {
return {
get: () => (data.street ? data.street.toUpperCase() : ''),
set: (value) => {
if (value) {
data.street = value.toUpperCase();
} else {
data.street = null;
}
},
};
}