From df39cd4ecae10fc068794d62f1971b57e58f9413 Mon Sep 17 00:00:00 2001 From: Jon Date: Fri, 11 Apr 2025 13:44:43 +0200 Subject: [PATCH] perf: refs #8647 paginate --- src/components/ui/VnPaginate.vue | 18 ++++++++---------- src/composables/useArrayData.js | 1 + 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/components/ui/VnPaginate.vue b/src/components/ui/VnPaginate.vue index 678d1f799..22f1a6461 100644 --- a/src/components/ui/VnPaginate.vue +++ b/src/components/ui/VnPaginate.vue @@ -146,22 +146,14 @@ const addFilter = async (filter, params) => { }; async function fetch(params) { - if (params) { - for (let param in params) { - if (params[param]) arrayData.store[param] = params[param]; - } - } + if (params) applyParams(params); arrayData.resetPagination(); await arrayData.fetch({ append: false }); return emitStoreData(); } async function update(params) { - if (params) { - for (let param in params) { - if (params[param]) arrayData.store[param] = params[param]; - } - } + if (params) applyParams(params); const { limit, skip } = store; store.limit = limit + skip; store.skip = 0; @@ -171,6 +163,12 @@ async function update(params) { return emitStoreData(); } +const applyParams = (params) => { + for (let param in params) { + if (params[param]) arrayData.store[param] = params[param]; + } +}; + function emitStoreData() { if (!store.hasMoreData) isLoading.value = false; emit('onFetch', store.data); diff --git a/src/composables/useArrayData.js b/src/composables/useArrayData.js index 60dab6014..2e880a16d 100644 --- a/src/composables/useArrayData.js +++ b/src/composables/useArrayData.js @@ -21,6 +21,7 @@ export function useArrayData(key, userOptions) { onMounted(() => { setOptions(); reset(['skip']); + const query = route.query; const searchUrl = store.searchUrl; if (query[searchUrl]) {