feat: family filter
This commit is contained in:
parent
1ccad36020
commit
56a6f24071
|
@ -23,15 +23,40 @@ const defaultParams = {
|
||||||
};
|
};
|
||||||
|
|
||||||
const warehouses = ref();
|
const warehouses = ref();
|
||||||
|
const categoriesOptions = ref([]);
|
||||||
|
const itemTypesRef = ref(null);
|
||||||
|
const itemTypesFilter = {
|
||||||
|
fields: ['id', 'name', 'categoryFk'],
|
||||||
|
include: 'category',
|
||||||
|
order: 'name ASC',
|
||||||
|
where: {},
|
||||||
|
};
|
||||||
|
|
||||||
const handleWarehouses = async (data) => {
|
const handleWarehouses = async (data) => {
|
||||||
warehouses.value = data;
|
warehouses.value = data;
|
||||||
defaultParams.warehouse = data.find((w) => w.name === DEFAULT_WAREHOUSE).id;
|
defaultParams.warehouse = data.find((w) => w.name === DEFAULT_WAREHOUSE).id;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const onCategoryChange = async (categoryFk, search) => {
|
||||||
|
if (!categoryFk) {
|
||||||
|
itemTypesFilter.where.categoryFk = null;
|
||||||
|
delete itemTypesFilter.where.categoryFk;
|
||||||
|
} else {
|
||||||
|
itemTypesFilter.where.categoryFk = categoryFk;
|
||||||
|
}
|
||||||
|
search();
|
||||||
|
await itemTypesRef.value.fetch();
|
||||||
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<FetchData url="Warehouses" @on-fetch="handleWarehouses" auto-load />
|
<FetchData url="Warehouses" @on-fetch="handleWarehouses" auto-load />
|
||||||
|
<FetchData
|
||||||
|
url="ItemCategories"
|
||||||
|
:filter="{ fields: ['id', 'name'], order: 'name ASC' }"
|
||||||
|
@on-fetch="(data) => (categoriesOptions = data)"
|
||||||
|
auto-load
|
||||||
|
/>
|
||||||
<VnFilterPanel
|
<VnFilterPanel
|
||||||
:data-key="props.dataKey"
|
:data-key="props.dataKey"
|
||||||
:params="defaultParams"
|
:params="defaultParams"
|
||||||
|
@ -39,7 +64,7 @@ const handleWarehouses = async (data) => {
|
||||||
>
|
>
|
||||||
<template #tags="{ tag, formatFn }">
|
<template #tags="{ tag, formatFn }">
|
||||||
<div class="q-gutter-x-xs">
|
<div class="q-gutter-x-xs">
|
||||||
<strong>{{ t(`ticket.negative.${tag.label}`) }}: </strong>
|
<strong>{{ t(`negative.${tag.label}`) }}: </strong>
|
||||||
<span>{{ formatFn(tag.value) }}</span>
|
<span>{{ formatFn(tag.value) }}</span>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
@ -75,9 +100,29 @@ const handleWarehouses = async (data) => {
|
||||||
/>
|
/>
|
||||||
</QItemSection>
|
</QItemSection>
|
||||||
</QItem>
|
</QItem>
|
||||||
|
<QItem>
|
||||||
|
<QItemSection v-if="categoriesOptions">
|
||||||
|
<VnSelect
|
||||||
|
:label="t('negative.categoryFk')"
|
||||||
|
v-model="params.categoryFk"
|
||||||
|
@update:model-value="
|
||||||
|
($event) => onCategoryChange($event, searchFn)
|
||||||
|
"
|
||||||
|
:options="categoriesOptions"
|
||||||
|
option-value="id"
|
||||||
|
option-label="name"
|
||||||
|
hide-selected
|
||||||
|
dense
|
||||||
|
outlined
|
||||||
|
rounded
|
||||||
|
/> </QItemSection
|
||||||
|
><QItemSection v-else>
|
||||||
|
<QSkeleton class="full-width" type="QSelect" />
|
||||||
|
</QItemSection>
|
||||||
|
</QItem>
|
||||||
|
|
||||||
<QItem v-if="warehouses">
|
<QItem>
|
||||||
<QItemSection>
|
<QItemSection v-if="warehouses">
|
||||||
<VnSelect
|
<VnSelect
|
||||||
:label="t('Warehouse')"
|
:label="t('Warehouse')"
|
||||||
v-model="params.warehouse"
|
v-model="params.warehouse"
|
||||||
|
@ -95,6 +140,9 @@ const handleWarehouses = async (data) => {
|
||||||
:input-debounce="0"
|
:input-debounce="0"
|
||||||
/>
|
/>
|
||||||
</QItemSection>
|
</QItemSection>
|
||||||
|
<QItemSection v-else>
|
||||||
|
<QSkeleton class="full-width" type="QSelect" />
|
||||||
|
</QItemSection>
|
||||||
</QItem>
|
</QItem>
|
||||||
</QList>
|
</QList>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -11,6 +11,7 @@ negative:
|
||||||
warehouseFk: 'Warehouse'
|
warehouseFk: 'Warehouse'
|
||||||
producer: 'Producer'
|
producer: 'Producer'
|
||||||
category: 'category'
|
category: 'category'
|
||||||
|
categoryFk: 'Family'
|
||||||
warehouse: 'warehouse'
|
warehouse: 'warehouse'
|
||||||
lack: 'Negative'
|
lack: 'Negative'
|
||||||
inkFk: 'inkFk'
|
inkFk: 'inkFk'
|
||||||
|
|
|
@ -12,6 +12,7 @@ negative:
|
||||||
warehouseFk: 'Almacen'
|
warehouseFk: 'Almacen'
|
||||||
producer: 'Producer'
|
producer: 'Producer'
|
||||||
category: 'Categoria'
|
category: 'Categoria'
|
||||||
|
categoryFk: 'Familia'
|
||||||
warehouse: 'Almacen'
|
warehouse: 'Almacen'
|
||||||
lack: 'Negativo'
|
lack: 'Negativo'
|
||||||
inkFk: 'Color'
|
inkFk: 'Color'
|
||||||
|
|
Loading…
Reference in New Issue