#8036 - arrayData_exprBuilder_after #845
|
@ -37,7 +37,7 @@ const $props = defineProps({
|
||||||
},
|
},
|
||||||
hiddenTags: {
|
hiddenTags: {
|
||||||
type: Array,
|
type: Array,
|
||||||
default: () => ['filter', 'search', 'or', 'and'],
|
default: () => ['filter', 'or', 'and'],
|
||||||
},
|
},
|
||||||
customTags: {
|
customTags: {
|
||||||
type: Array,
|
type: Array,
|
||||||
|
@ -61,7 +61,6 @@ const emit = defineEmits([
|
||||||
'update:modelValue',
|
'update:modelValue',
|
||||||
'refresh',
|
'refresh',
|
||||||
'clear',
|
'clear',
|
||||||
'search',
|
|
||||||
'init',
|
'init',
|
||||||
|
|||||||
'remove',
|
'remove',
|
||||||
'setUserParams',
|
'setUserParams',
|
||||||
|
|
|
@ -75,18 +75,10 @@ export function useArrayData(key = useRoute().meta.moduleName, userOptions) {
|
||||||
limit: store.limit,
|
limit: store.limit,
|
||||||
};
|
};
|
||||||
|
|
||||||
let exprFilter;
|
|
||||||
let userParams = { ...store.userParams };
|
let userParams = { ...store.userParams };
|
||||||
alexm
commented
La solucion era ejecutar el exprBuilder despues de todo, y guardar el filtro antes de aplicarlo La solucion era ejecutar el exprBuilder despues de todo, y guardar el filtro antes de aplicarlo
|
|||||||
if (store?.exprBuilder) {
|
|
||||||
const where = buildFilter(userParams, (param, value) => {
|
|
||||||
const res = store.exprBuilder(param, value);
|
|
||||||
if (res) delete userParams[param];
|
|
||||||
return res;
|
|
||||||
});
|
|
||||||
exprFilter = where ? { where } : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
Object.assign(filter, store.userFilter, exprFilter);
|
Object.assign(filter, store.userFilter);
|
||||||
|
|
||||||
let where;
|
let where;
|
||||||
if (filter?.where || store.filter?.where)
|
if (filter?.where || store.filter?.where)
|
||||||
where = Object.assign(filter?.where ?? {}, store.filter?.where ?? {});
|
where = Object.assign(filter?.where ?? {}, store.filter?.where ?? {});
|
||||||
|
@ -96,11 +88,28 @@ export function useArrayData(key = useRoute().meta.moduleName, userOptions) {
|
||||||
|
|
||||||
Object.assign(params, userParams);
|
Object.assign(params, userParams);
|
||||||
params.filter.skip = store.skip;
|
params.filter.skip = store.skip;
|
||||||
if (store.order?.length) params.filter.order = store.order;
|
if (store?.order && typeof store?.order == 'string') store.order = [store.order];
|
||||||
|
if (store.order?.length) params.filter.order = [...store.order];
|
||||||
else delete params.filter.order;
|
else delete params.filter.order;
|
||||||
alexm
commented
Usar structuredClone Usar structuredClone
|
|||||||
|
|
||||||
alexm
commented
No se pot fer sense JSON.parse(JSON.stringify , he provat en structuredClone, pero no permitix gastar dins Proxys. I la opcio de fer {...params} mantendria la refernecia de 2n nivell No se pot fer sense JSON.parse(JSON.stringify , he provat en structuredClone, pero no permitix gastar dins Proxys. I la opcio de fer {...params} mantendria la refernecia de 2n nivell
|
|||||||
|
store.currentFilter = JSON.parse(JSON.stringify(params));
|
||||||
alexm
commented
Els borre per a que no moleste en la url Els borre per a que no moleste en la url
|
|||||||
|
delete store.currentFilter.filter.include;
|
||||||
|
store.currentFilter.filter = JSON.stringify(store.currentFilter.filter);
|
||||||
|
|
||||||
|
let exprFilter;
|
||||||
|
if (store?.exprBuilder) {
|
||||||
|
exprFilter = buildFilter(params, (param, value) => {
|
||||||
|
if (param == 'filter') return;
|
||||||
|
const res = store.exprBuilder(param, value);
|
||||||
|
if (res) delete params[param];
|
||||||
|
return res;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (params.filter.where || exprFilter)
|
||||||
|
params.filter.where = { ...params.filter.where, ...exprFilter };
|
||||||
params.filter = JSON.stringify(params.filter);
|
params.filter = JSON.stringify(params.filter);
|
||||||
store.currentFilter = params;
|
|
||||||
store.isLoading = true;
|
store.isLoading = true;
|
||||||
const response = await axios.get(store.url, {
|
const response = await axios.get(store.url, {
|
||||||
signal: canceller.signal,
|
signal: canceller.signal,
|
||||||
|
|
Loading…
Reference in New Issue
Como ahora se muestra bien, se puede mostrar