فهرست منبع

К предыдущему

Book Pauk 5 سال پیش
والد
کامیت
0c654d9346

+ 1 - 1
client/components/Reader/HistoryPage/HistoryPage.vue

@@ -4,7 +4,7 @@
             <Window @close="close">
                 <template slot="header">
                     <span v-show="!loading">Последние {{tableData ? tableData.length : 0}} открытых книг</span>
-                    <span v-show="loading"><i class="el-icon-loading"></i> Список загружается</span>
+                    <span v-show="loading"><i class="el-icon-loading" style="font-size: 30px"></i> <span style="position: relative; top: -5px">Список загружается</span></span>
                 </template>
 
                 <el-table

+ 7 - 7
client/components/Reader/Reader.vue

@@ -381,16 +381,16 @@ class Reader extends Vue {
         this.debouncedUpdateRoute();
     }
 
-    async bookManagerEvent(/*eventName*/) {
+    async bookManagerEvent(eventName) {
         /*const serverStorage = this.$refs.serverStorage;
-        if (eventName == 'load-meta-finish') {
+        if (eventName == '') {
             serverStorage.init();
             const result = await bookManager.cleanRecentBooks();
             if (result)
                 this.debouncedSaveRecent();
-        }
+        }*/
 
-        if (eventName == 'recent-changed' || eventName == 'save-recent') {
+        if (eventName == 'recent-changed') {
             if (this.historyActive) {
                 this.$refs.historyPage.updateTableData();
             }
@@ -412,12 +412,12 @@ class Reader extends Vue {
                 }
             }
 
-            if (eventName == 'recent-changed') {
+            /*if (eventName == 'recent-changed') {
                 this.debouncedSaveRecentLast();
             } else {
                 this.debouncedSaveRecent();
-            }
-        }*/
+            }*/
+        }
     }
 
     get toolBarActive() {

+ 17 - 8
client/components/Reader/share/bookManager.js

@@ -44,7 +44,7 @@ class BookManager {
         await utils.sleep(2000);
 
         let len = await bmMetaStore.length();
-        for (let i = 0; i < len; i++) {
+        for (let i = len - 1; i >= 0; i--) {
             const key = await bmMetaStore.key(i);
             const keySplit = key.split('-');
 
@@ -67,7 +67,7 @@ class BookManager {
 
         let key = null;
         len = await bmRecentStore.length();
-        for (let i = 0; i < len; i++) {
+        for (let i = len - 1; i >= 0; i--) {
             key = await bmRecentStore.key(i);
             if (key) {
                 let r = await bmRecentStore.getItem(key);
@@ -339,6 +339,7 @@ class BookManager {
         await bmRecentStore.setItem('recent-last', this.recentLast);
 
         this.recentChanged = true;
+        this.emit('recent-changed');
         return result;
     }
 
@@ -355,10 +356,11 @@ class BookManager {
         this.recent[value.key].deleted = 1;
         await bmRecentStore.setItem(value.key, this.recent[value.key]);
 
-        this.recentLast = null;
-        await bmRecentStore.setItem('recent-last', this.recentLast);
-
-        this.recentChanged = true;
+        if (this.recentLast.key == value.key) {
+            this.recentLast = null;
+            await bmRecentStore.setItem('recent-last', this.recentLast);
+        }
+        this.emit('recent-changed');
     }
 
     async cleanRecentBooks() {
@@ -374,6 +376,7 @@ class BookManager {
 
         this.sortedRecentCached = null;
 
+        this.emit('recent-changed');
         return isDel;
     }
 
@@ -394,6 +397,7 @@ class BookManager {
         this.recentLast = result;
         bmRecentStore.setItem('recent-last', this.recentLast);//no await
 
+        this.emit('recent-changed');
         return result;
     }
 
@@ -423,8 +427,13 @@ class BookManager {
     }
 
     emit(eventName, value) {
-        for (const listener of this.eventListeners)
-            listener(eventName, value);
+        if (this.eventListeners) {
+            (async() => {
+                await utils.sleep(1);
+                for (const listener of this.eventListeners)
+                    listener(eventName, value);
+            })();
+        }
     }
 
 }