0
0
Fork 0

fixes: fix vnFilter params and redirect

This commit is contained in:
Alex Moreno 2024-06-28 17:45:04 +02:00
parent 685267e177
commit 4cf389e00c
6 changed files with 23 additions and 29 deletions

View File

@ -70,14 +70,11 @@ const makeInvoice = async () => {
});
});
if (!response) {
console.log('entra cuando no checkbox');
return;
}
}
console.log('params: ', params);
const { data } = await axios.post('InvoiceOuts/transferInvoice', params);
console.log('data: ', data);
notify(t('Transferred invoice'), 'positive');
const id = data?.[0];
if (id) router.push({ name: 'InvoiceOutSummary', params: { id } });

View File

@ -7,8 +7,11 @@ import toDate from 'filters/toDate';
import VnFilterPanelChip from 'components/ui/VnFilterPanelChip.vue';
const { t } = useI18n();
const params = defineModel({ default: {}, required: true, type: Object });
const $props = defineProps({
modelValue: {
type: Object,
default: () => {}
},
dataKey: {
type: String,
required: true,
@ -64,9 +67,10 @@ const arrayData = useArrayData($props.dataKey, {
});
const route = useRoute();
const store = arrayData.store;
const userParams = ref({})
onMounted(() => {
emit('init', { params: params.value });
userParams.value = $props.modelValue ?? {}
emit('init', { params: userParams.value });
});
function setUserParams(watchedParams) {
@ -75,7 +79,7 @@ function setUserParams(watchedParams) {
if (typeof watchedParams == 'string') watchedParams = JSON.parse(watchedParams);
watchedParams = { ...watchedParams, ...watchedParams.filter?.where };
delete watchedParams.filter;
params.value = { ...params.value, ...watchedParams };
userParams.value = { ...userParams.value, ...watchedParams };
}
watch(
@ -94,12 +98,12 @@ async function search(evt) {
store.filter.where = {};
isLoading.value = true;
const filter = { ...params.value };
const filter = { ...userParams.value };
store.userParamsChanged = true;
store.filter.skip = 0;
store.skip = 0;
const { params: newParams } = await arrayData.addFilter({ params: params.value });
params.value = newParams;
const { params: newParams } = await arrayData.addFilter({ params: userParams.value });
userParams.value = newParams;
if (!$props.showAll && !Object.values(filter).length) store.data = [];
@ -109,7 +113,7 @@ async function search(evt) {
async function reload() {
isLoading.value = true;
const params = Object.values(params.value).filter((param) => param);
const params = Object.values(userParams.value).filter((param) => param);
await arrayData.fetch({ append: false });
if (!$props.showAll && !params.length) store.data = [];
@ -123,17 +127,17 @@ async function clearFilters() {
store.filter.skip = 0;
store.skip = 0;
// Filtrar los params no removibles
const removableFilters = Object.keys(params.value).filter((param) =>
const removableFilters = Object.keys(userParams.value).filter((param) =>
$props.unremovableParams.includes(param)
);
const newParams = {};
// Conservar solo los params que no son removibles
for (const key of removableFilters) {
newParams[key] = params.value[key];
newParams[key] = userParams.value[key];
}
params.value = {};
params.value = { ...newParams }; // Actualizar los params con los removibles
await arrayData.applyFilter({ params: params.value });
userParams.value = {};
userParams.value = { ...newParams }; // Actualizar los params con los removibles
await arrayData.applyFilter({ params: userParams.value });
if (!$props.showAll) {
store.data = [];
@ -145,8 +149,8 @@ async function clearFilters() {
const tagsList = computed(() => {
const tagList = [];
for (const key of Object.keys(params.value)) {
const value = params.value[key];
for (const key of Object.keys(userParams.value)) {
const value = userParams.value[key];
if (value == null || ($props.hiddenTags || []).includes(key)) continue;
tagList.push({ label: key, value });
}
@ -161,7 +165,7 @@ const customTags = computed(() =>
);
async function remove(key) {
params.value[key] = undefined;
userParams.value[key] = undefined;
search();
emit('remove', key);
}
@ -236,7 +240,7 @@ function formatValue(value) {
<slot
v-if="$slots.customTags"
name="customTags"
:params="params"
:params="userParams"
:tags="customTags"
:format-fn="formatValue"
:search-fn="search"
@ -246,7 +250,7 @@ function formatValue(value) {
<QSeparator />
</QList>
<QList dense class="list q-gutter-y-sm q-mt-sm">
<slot name="body" :params="params" :search-fn="search"></slot>
<slot name="body" :params="userParams" :search-fn="search"></slot>
</QList>
<template v-if="$props.searchButton">
<QItem>

View File

@ -29,7 +29,7 @@ export function useArrayData(key = useRoute().meta.moduleName, userOptions) {
const filter = params?.filter;
delete params.filter;
store.userParams = { ...params, ...store.userParams };
store.userFilter = { ...JSON.parse(filter), ...store.userFilter };
store.userFilter = { ...JSON.parse(filter ?? '{}'), ...store.userFilter };
}
});

View File

@ -156,22 +156,18 @@ const onOrderFieldChange = (value, params) => {
case 'Relevancy':
tagObj.field = value + ' DESC, name';
params.orderBy = JSON.stringify(tagObj);
console.log('params: ', params);
break;
case 'ColorAndPrice':
tagObj.field = 'showOrder, price';
params.orderBy = JSON.stringify(tagObj);
console.log('params: ', params);
break;
case 'Name':
tagObj.field = 'name';
params.orderBy = JSON.stringify(tagObj);
console.log('params: ', params);
break;
case 'Price':
tagObj.field = 'price';
params.orderBy = JSON.stringify(tagObj);
console.log('params: ', params);
break;
}
};

View File

@ -122,8 +122,6 @@ const orderFilter = {
const onClientChange = async (clientId) => {
try {
const { data } = await axios.get(`Clients/${clientId}`);
console.log('info cliente: ', data);
await fetchAddressList(data.defaultAddressFk);
} catch (error) {
console.error('Error al cambiar el cliente:', error);

View File

@ -56,7 +56,6 @@ const swapEntry = (from, to, key) => {
};
function setNotifications(data) {
console.log('data: ', data);
active.value = new Map(data.active);
available.value = new Map(data.available);
}