#8198 keep section filter #1210

Merged
jorgep merged 9 commits from 8198-keepSectionFilter into dev 2025-01-20 09:42:32 +00:00
1 changed files with 41 additions and 26 deletions
Showing only changes of commit 3cc5595e14 - Show all commits

View File

@ -36,18 +36,7 @@ const exprBuilder = (param, value) => {
}
};
const where = {
itemFk: route.params.id,
};
const arrayData = useArrayData('ItemLastEntries', {
url: 'Items/lastEntriesFilter',
order: ['landed DESC', 'buyFk DESC'],
exprBuilder: exprBuilder,
userFilter: {
where: where,
},
});
let arrayData = useArrayData('ItemLastEntries');
Review

porque let y no const?
Se modifica mas adelante y no lo veo?

porque let y no const? Se modifica mas adelante y no lo veo?
const itemLastEntries = ref([]);
const columns = computed(() => [
@ -161,25 +150,51 @@ const getDate = (date, type) => {
};
const updateFilter = async () => {
let filter;
if (!from.value && to.value) filter = { lte: to.value };
else if (from.value && !to.value) filter = { gte: from.value };
else if (from.value && to.value) filter = { between: [from.value, to.value] };
const userFilter = arrayData.store.userFilter.where;
userFilter.landed = filter;
let landed;
if (!from.value && to.value) landed = { lte: to.value };
else if (from.value && !to.value) landed = { gte: from.value };
else if (from.value && to.value) landed = { between: [from.value, to.value] };
arrayData.store.filter.where.landed = landed;
await fetchItemLastEntries();
};
onMounted(async () => {
const _from = Date.vnNew();
_from.setDate(_from.getDate() - 75);
from.value = getDate(_from, 'from');
const _to = Date.vnNew();
_to.setDate(_to.getDate() + 10);
to.value = getDate(_to, 'to');
const landed = arrayData.store.filter.where?.landed;
arrayData = useArrayData('ItemLastEntries', {
Review

Se pone let porque aquí se machaca?
Y porque no lo hacemos fuera?
Quiero decir, de normal no hacemos esto de useArrayData dentro de onMounted

Se pone let porque aquí se machaca? Y porque no lo hacemos fuera? Quiero decir, de normal no hacemos esto de useArrayData dentro de onMounted
Review

Es para que mantenga los filtros al cambiar de articulo desde la barra de búsqueda. Si lo hago fuera, antes de onMounted ya se habrá machacado el filter de la store. Lo que quiero es que al cambiar la url mantener el filtro que tenía.

Es para que mantenga los filtros al cambiar de articulo desde la barra de búsqueda. Si lo hago fuera, antes de onMounted ya se habrá machacado el filter de la store. Lo que quiero es que al cambiar la url mantener el filtro que tenía.
Review

Parece una chorrada, pero podemos hacer una constante que tenga este valor? porque ya hay que forzar la vista y hacer scroll arriba/abajo para ver si coinciden o no

Parece una chorrada, pero podemos hacer una constante que tenga este valor? porque ya hay que forzar la vista y hacer scroll arriba/abajo para ver si coinciden o no
url: 'Items/lastEntriesFilter',
order: ['landed DESC', 'buyFk DESC'],
exprBuilder: exprBuilder,
filter: {
where: {
itemFk: route.params.id,
landed,
},
},
});
if (landed) {
const key = Object.keys(landed)[0];
switch (key) {
case 'gte':
from.value = landed.gte;
break;
case 'lte':
to.value = landed.lte;
break;
case 'between':
from.value = landed.between[0];
to.value = landed.between[1];
break;
}
} else {
const _from = Date.vnNew();
_from.setDate(_from.getDate() - 75);
from.value = getDate(_from, 'from');
const _to = Date.vnNew();
_to.setDate(_to.getDate() + 10);
to.value = getDate(_to, 'to');
}
updateFilter();