From e415df3e62b06172b92593d4e1e6f1f8faa31072 Mon Sep 17 00:00:00 2001 From: Szczepan Masny Date: Tue, 4 Dec 2018 12:12:29 +0100 Subject: [PATCH] improved getting async data (huge tables and filters) --- src/crud/components/DataTableServerSide.vue | 21 +- src/crud/components/ItemDetails.vue | 223 ++++++++++++++------ src/crud/components/ItemDetailsExtended.vue | 77 +++++-- 3 files changed, 224 insertions(+), 97 deletions(-) diff --git a/src/crud/components/DataTableServerSide.vue b/src/crud/components/DataTableServerSide.vue index 777008f..d5d8294 100644 --- a/src/crud/components/DataTableServerSide.vue +++ b/src/crud/components/DataTableServerSide.vue @@ -244,18 +244,6 @@ export default { this.getItemsServerSide([this.params]); } }, - newSearchRequest(val) { - this.newSearchRequest = false - if (val && !this.searching) { - this.searching = true - this.getItemsServerSide([this.params]).then(response => { - this.searching = false - if(this.newSearchRequest){ - this.searchItems() - } - }) - } - } }, methods: { ...mapActions("crud", ["getItemsServerSide"]), @@ -268,8 +256,13 @@ export default { this.searchItems() }, searchItems(){ - this.newSearchRequest = false - setTimeout(() => this.newSearchRequest = true, 100) + let params1 = JSON.stringify(this.params) + setTimeout(() => { + let params2 = JSON.stringify(this.params) + if(params1 === params2){ + this.getItemsServerSide([this.params]) + } + }, 500) }, } }; diff --git a/src/crud/components/ItemDetails.vue b/src/crud/components/ItemDetails.vue index 7004793..57693e1 100644 --- a/src/crud/components/ItemDetails.vue +++ b/src/crud/components/ItemDetails.vue @@ -1,55 +1,117 @@