diff --git a/client/components/Search/AuthorList/AuthorList.vue b/client/components/Search/AuthorList/AuthorList.vue
index f8be95c..2b5e0f0 100644
--- a/client/components/Search/AuthorList/AuthorList.vue
+++ b/client/components/Search/AuthorList/AuthorList.vue
@@ -176,19 +176,22 @@ const componentOptions = {
showDeleted() {
this.updateTableData();
},
+ ready(newValue) {
+ if (newValue)
+ this.refresh();//no await
+ }
},
};
class AuthorList extends BaseList {
_options = componentOptions;
_props = {
+ ready: Boolean,
list: Object,
search: Object,
genreMap: Object,
liberamaReady: Boolean,
};
- ready = false;
-
loadingMessage = '';
loadingMessage2 = '';
@@ -214,20 +217,11 @@ class AuthorList extends BaseList {
created() {
this.commit = this.$store.commit;
+ this.api = this.$root.api;
this.loadSettings();
}
- mounted() {
- (async() => {
- //локальный кеш
- this.api = this.$root.api;
-
- this.ready = true;
- this.refresh();//no await
- })();
- }
-
loadSettings() {
const settings = this.settings;
@@ -821,7 +815,15 @@ class AuthorList extends BaseList {
if (!this.ready)
return;
- //оптимизация
+ //параметры запроса
+ const newQuery = _.cloneDeep(this.search);
+ newQuery.offset = (newQuery.page - 1)*newQuery.limit;
+
+ if (_.isEqual(newQuery, this.prevQuery))
+ return;
+ this.prevQuery = newQuery;
+
+ //оптимизация, вместо запроса к серверу, берем из кеша
if (this.abCacheEnabled && this.search.author && this.search.author[0] == '=') {
const authorSearch = this.search.author.substring(1);
const author = this.cachedAuthors[authorSearch];
@@ -840,12 +842,6 @@ class AuthorList extends BaseList {
}
}
- //параметры запроса
- const offset = (this.search.page - 1)*this.search.limit;
-
- const newQuery = _.cloneDeep(this.search);
- newQuery.offset = offset;
-
this.queryExecute = newQuery;
if (this.refreshing)
diff --git a/client/components/Search/Search.vue b/client/components/Search/Search.vue
index c29382c..bdfcdba 100644
--- a/client/components/Search/Search.vue
+++ b/client/components/Search/Search.vue
@@ -111,7 +111,7 @@
-