Рефакторинг, небольшие улучшения
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -111,7 +111,7 @@
|
||||
</div>
|
||||
|
||||
<!-- Формирование списка ------------------------------------------------------------------------>
|
||||
<AuthorList :list="list" :search="search" :genre-map="genreMap" :liberama-ready="liberamaReady" @list-event="listEvent" />
|
||||
<AuthorList :ready="ready" :list="list" :search="search" :genre-map="genreMap" :liberama-ready="liberamaReady" @list-event="listEvent" />
|
||||
<!-- Формирование списка конец ------------------------------------------------------------------>
|
||||
|
||||
<div class="row justify-center">
|
||||
@@ -248,6 +248,8 @@ const componentOptions = {
|
||||
class Search {
|
||||
_options = componentOptions;
|
||||
|
||||
ready = false;
|
||||
|
||||
collection = '';
|
||||
projectName = '';
|
||||
|
||||
@@ -312,6 +314,7 @@ class Search {
|
||||
|
||||
created() {
|
||||
this.commit = this.$store.commit;
|
||||
this.api = this.$root.api;
|
||||
|
||||
this.loadSettings();
|
||||
}
|
||||
@@ -331,8 +334,6 @@ class Search {
|
||||
//локальный кеш
|
||||
await authorBooksStorage.init();
|
||||
|
||||
this.api = this.$root.api;
|
||||
|
||||
if (!this.$root.isMobileDevice)
|
||||
this.$refs.authorInput.focus();
|
||||
|
||||
@@ -340,6 +341,8 @@ class Search {
|
||||
this.updateSearchFromRouteQuery(this.$route);
|
||||
|
||||
this.sendMessage({type: 'mes', data: 'hello-from-inpx-web'});
|
||||
|
||||
this.ready = true;
|
||||
})();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user