diff --git a/src/components/ui/VnFilterPanel.vue b/src/components/ui/VnFilterPanel.vue index d8ac750d5..c6bc11e2b 100644 --- a/src/components/ui/VnFilterPanel.vue +++ b/src/components/ui/VnFilterPanel.vue @@ -115,7 +115,7 @@ async function search(evt) { store.filter.where = {}; isLoading.value = true; - const filter = { ...userParams.value, ...$props.modelValue }; + const filter = { ...userParams.value, ...$props.modelValue, ...evt }; store.userParamsChanged = true; if (excludeParams.value) { filter.params = { diff --git a/src/components/ui/VnSearchbar.vue b/src/components/ui/VnSearchbar.vue index 7dcad95db..064baec20 100644 --- a/src/components/ui/VnSearchbar.vue +++ b/src/components/ui/VnSearchbar.vue @@ -126,7 +126,7 @@ async function search() { arrayData.resetPagination(); let filter = { params: { search: searchText.value } }; - if (filterPanel.value) { + if (filterPanel?.value?.filterPanelRef) { filterPanel.value.filterPanelRef.search(filter); return; } diff --git a/src/composables/useArrayData.js b/src/composables/useArrayData.js index b5ebba83c..1d86fc8e6 100644 --- a/src/composables/useArrayData.js +++ b/src/composables/useArrayData.js @@ -100,8 +100,8 @@ export function useArrayData(key, userOptions) { params.filter = JSON.stringify(params.filter); if (fetchOptions?.exclude) { - params = { ...params, ...fetchOptions.exclude }; delete params.exclude; + params = { ...params.params, ...fetchOptions.exclude }; } store.isLoading = true; const response = await axios.get(store.url, { @@ -232,7 +232,7 @@ export function useArrayData(key, userOptions) { if ( params[param] === '' || params[param] === null || - !Object(params[param]).length + !Object.keys(params[param]).length ) { delete store.userParams[param]; delete params[param];