feat: refs #8117 filters and values added as needed #1132

Merged
jtubau merged 7 commits from 8117-filtersAndValuesReviewed into dev 2025-01-08 06:06:52 +00:00
16 changed files with 84 additions and 65 deletions

View File

@ -205,10 +205,10 @@ function filter(val, options) {
}
if (!row) return;
const id = row[$props.optionValue];
const id = String(row[$props.optionValue]);
const optionLabel = String(row[$props.optionLabel]).toLowerCase();
return id == search || optionLabel.includes(search);
return id.includes(search) || optionLabel.includes(search);
});
}

View File

@ -51,6 +51,7 @@ const url = computed(() => {
option-value="id"
option-label="nickname"
:fields="['id', 'name', 'nickname', 'code']"
:filter-options="['id', 'name', 'nickname', 'code']"
sort-by="nickname ASC"
>
<template #prepend v-if="$props.hasAvatar">
@ -71,7 +72,7 @@ const url = computed(() => {
{{ scope.opt.nickname }}
</QItemLabel>
<QItemLabel caption v-else>
{{ scope.opt.nickname }}, {{ scope.opt.code }}
#{{ scope.opt.id }}, {{ scope.opt.nickname }}, {{ scope.opt.code }}
</QItemLabel>
</QItemSection>
</QItem>

View File

@ -93,16 +93,7 @@ defineExpose({ states });
outlined
rounded
dense
>
<template #option="scope">
<QItem v-bind="scope.itemProps">
<QItemSection>
<QItemLabel> #{{ scope.opt?.id }} </QItemLabel>
<QItemLabel caption>{{ scope.opt?.name }}</QItemLabel>
</QItemSection>
</QItem>
</template>
</VnSelect>
/>
<VnSelect
:label="t('claim.responsible')"
v-model="params.claimResponsibleFk"

View File

@ -123,6 +123,7 @@ const companiesOptions = ref([]);
option-value="id"
option-label="name"
:fields="['id', 'name', 'nickname']"
:filter-options="['id', 'name', 'nickname']"
sort-by="nickname"
hide-selected
dense
@ -132,9 +133,12 @@ const companiesOptions = ref([]);
<template #option="scope">
<QItem v-bind="scope.itemProps">
<QItemSection>
<QItemLabel>{{
scope.opt?.name + ': ' + scope.opt?.nickname
}}</QItemLabel>
<QItemLabel>
{{ scope.opt?.name}}
</QItemLabel>
<QItemLabel caption>
{{ `#${scope.opt?.id } , ${ scope.opt?.nickname}` }}
</QItemLabel>
</QItemSection>
</QItem>
</template>

View File

@ -69,12 +69,14 @@ const tagValues = ref([]);
use-input
@update:model-value="searchFn()"
>
<template #option="{ itemProps, opt }">
<QItem v-bind="itemProps">
<template #option="scope">
<QItem v-bind="scope.itemProps">
<QItemSection>
<QItemLabel>{{ opt.name }}</QItemLabel>
<QItemLabel>
{{ scope.opt?.name}}
</QItemLabel>
<QItemLabel caption>
{{ opt.nickname }}
{{ `#${scope.opt?.id } , ${ scope.opt?.nickname}` }}
</QItemLabel>
</QItemSection>
</QItem>

View File

@ -68,13 +68,26 @@ function handleDaysAgo(params, daysAgo) {
<VnSelect
v-model="params.supplierFk"
url="Suppliers"
:fields="['id', 'nickname']"
:fields="['id', 'nickname', 'name']"
:label="getLocale('supplierFk')"
option-label="nickname"
dense
outlined
rounded
/>
>
<template #option="scope">
<QItem v-bind="scope.itemProps">
<QItemSection>
<QItemLabel>
{{ scope.opt?.name}}
</QItemLabel>
<QItemLabel caption>
{{ `#${scope.opt?.id } , ${ scope.opt?.nickname}` }}
</QItemLabel>
</QItemSection>
</QItem>
</template>
</VnSelect>
</QItemSection>
</QItem>
<QItem>

View File

@ -165,18 +165,18 @@ const cols = computed(() => [
<VnSelect
v-model="data.supplierFk"
url="Suppliers"
:fields="['id', 'nickname']"
:fields="['id', 'nickname', 'name']"
:label="t('globals.supplier')"
option-value="id"
option-label="nickname"
:filter-options="['id', 'name']"
:filter-options="['id', 'name', 'nickname']"
:required="true"
>
<template #option="scope">
<QItem v-bind="scope.itemProps">
<QItemSection>
<QItemLabel>{{ scope.opt?.nickname }}</QItemLabel>
<QItemLabel caption> #{{ scope.opt?.id }} </QItemLabel>
<QItemLabel caption> #{{ scope.opt?.id }}, {{ scope.opt?.name }} </QItemLabel>
</QItemSection>
</QItem>
</template>

View File

@ -101,17 +101,7 @@ onMounted(async () => {
dense
outlined
rounded
>
<template #option="scope">
<QItem v-bind="scope.itemProps">
<QItemSection>
<QItemLabel>
#{{ scope.opt?.id }} {{ scope.opt?.name }}
</QItemLabel>
</QItemSection>
</QItem>
</template>
</VnSelect>
/>
<VnSelect
:label="t('invoiceOutSerialType')"
v-model="formData.serialType"

View File

@ -142,6 +142,17 @@ const columns = computed(() => [
label: t('item.list.typeName'),
name: 'typeName',
align: 'left',
component: 'select',
columnFilter: {
name: 'typeFk',
attrs: {
url: 'ItemTypes',
fields: ['id', 'name'],
},
},
Review

añadida la opción filtrado por tipo en el list ya que en los filtros del rightmenu esta disponible su filtrado

añadida la opción filtrado por tipo en el list ya que en los filtros del rightmenu esta disponible su filtrado
Review

Tambien esta la opcion de incluir component: 'select', dentro de columnFilter asi te ahorras la parte de:

        columnField: {
            component: null,
        }

Tambien esta la opcion de incluir `component: 'select',` dentro de `columnFilter` asi te ahorras la parte de: ``` columnField: { component: null, } ```
columnField: {
component: null,
}
},
{
label: t('item.list.category'),

View File

@ -199,17 +199,7 @@ onMounted(async () => {
dense
outlined
rounded
>
<template #option="scope">
<QItem v-bind="scope.itemProps">
<QItemSection>
<QItemLabel>{{
t(`params.${scope.opt?.name}`)
}}</QItemLabel>
</QItemSection>
</QItem>
</template>
</VnSelect>
/>
</QItemSection>
</QItem>
<QItem>
@ -265,6 +255,7 @@ onMounted(async () => {
option-value="id"
option-label="name"
:fields="['id', 'name', 'nickname']"
:filter-options="['id', 'name', 'nickname']"
sort-by="name ASC"
hide-selected
dense
@ -274,9 +265,12 @@ onMounted(async () => {
<template #option="scope">
<QItem v-bind="scope.itemProps">
<QItemSection>
<QItemLabel>{{
scope.opt?.name + ': ' + scope.opt?.nickname
}}</QItemLabel>
<QItemLabel>
{{ scope.opt?.name}}
</QItemLabel>
<QItemLabel caption>
{{ `#${scope.opt?.id } , ${ scope.opt?.nickname}` }}
</QItemLabel>
</QItemSection>
</QItem>
</template>
@ -375,6 +369,7 @@ onMounted(async () => {
:model-value="fieldFilter.selectedField"
:options="moreFields"
option-label="label"
option-value="label"
dense
outlined
rounded

View File

@ -149,7 +149,6 @@ onMounted(async () => {
:label="t('params.requesterFk')"
v-model="params.requesterFk"
@update:model-value="searchFn()"
:fields="['id', 'name']"
:params="{ departmentCodes: ['VT'] }"
hide-selected
dense

View File

@ -110,15 +110,13 @@ const columns = computed(() => [
name: 'salesPersonFk',
field: 'userName',
align: 'left',
optionFilter: 'firstName',
columnFilter: {
component: 'select',
attrs: {
url: 'Workers/activeWithInheritedRole',
fields: ['id', 'name'],
url: 'Workers/search?departmentCodes=["VT"]',
fields: ['id', 'name', 'nickname', 'code'],
sortBy: 'nickname ASC',
where: { role: 'salesPerson' },
useLike: false,
optionLabel: 'nickname',
},
Review

Esto soluciona la discrepancia entre el filtro del rightmenu y el de cabezera del salesperson.
https://redmine.verdnatura.es/issues/8337

Esto soluciona la discrepancia entre el filtro del rightmenu y el de cabezera del salesperson. https://redmine.verdnatura.es/issues/8337
},
},

View File

@ -97,6 +97,7 @@ const sourceList = ref([]);
v-model="params.sourceApp"
:options="sourceList"
option-label="value"
option-value="value"
dense
outlined
rounded

View File

@ -101,7 +101,7 @@ const getGroupedStates = (data) => {
<QSkeleton type="QInput" class="full-width" />
</QItemSection>
<QItemSection v-if="states">
<QSelect
<VnSelect
:label="t('State')"
v-model="params.stateFk"
@update:model-value="searchFn()"
@ -122,7 +122,7 @@ const getGroupedStates = (data) => {
<QSkeleton type="QInput" class="full-width" />
</QItemSection>
<QItemSection v-if="groupedStates">
<QSelect
<VnSelect
:label="t('Grouped state')"
v-model="params.groupedStates"
@update:model-value="searchFn()"
@ -217,7 +217,7 @@ const getGroupedStates = (data) => {
<QSkeleton type="QInput" class="full-width" />
</QItemSection>
<QItemSection v-if="provinces">
<QSelect
<VnSelect
:label="t('Province')"
v-model="params.provinceFk"
@update:model-value="searchFn()"
@ -238,7 +238,7 @@ const getGroupedStates = (data) => {
<QSkeleton type="QInput" class="full-width" />
</QItemSection>
<QItemSection v-if="agencies">
<QSelect
<VnSelect
:label="t('Agency')"
v-model="params.agencyModeFk"
@update:model-value="searchFn()"
@ -259,7 +259,7 @@ const getGroupedStates = (data) => {
<QSkeleton type="QInput" class="full-width" />
</QItemSection>
<QItemSection v-if="warehouses">
<QSelect
<VnSelect
:label="t('Warehouse')"
v-model="params.warehouseFk"
@update:model-value="searchFn()"

View File

@ -221,7 +221,20 @@ warehouses();
dense
outlined
rounded
/>
>
<template #option="scope">
<QItem v-bind="scope.itemProps">
<QItemSection>
<QItemLabel>
{{ scope.opt?.name}}
</QItemLabel>
<QItemLabel caption>
{{ `#${scope.opt?.id } , ${ scope.opt?.nickname}` }}
</QItemLabel>
</QItemSection>
</QItem>
</template>
</VnSelect>
</QItemSection>
</QItem>
<QItem>
@ -232,6 +245,7 @@ warehouses();
:options="continentsOptions"
option-value="code"
option-label="name"
:filter-options="['code', 'name']"
hide-selected
dense
outlined

View File

@ -140,10 +140,10 @@ en:
Id: Contains
ref: Reference
agency: Agency
warehouseInFk: W. In
warehouseInFk: Warehouse In
shipped: Shipped
shipmentHour: Shipment Hour
warehouseOut: W. Out
warehouseOut: Warehouse Out
landed: Landed
landingHour: Landing Hour
totalEntries: Σ
@ -156,7 +156,7 @@ es:
warehouseInFk: Alm.Entrada
shipped: F.Envío
shipmentHour: Hora de envío
warehouseOut: Alm.Entrada
warehouseOut: Alm.Salida
landed: F.Entrega
landingHour: Hora de entrega
totalEntries: Σ