瀏覽代碼

Поправки багов

Book Pauk 6 年之前
父節點
當前提交
c29ffc3fcd
共有 1 個文件被更改,包括 5 次插入2 次删除
  1. 5 2
      client/components/Reader/ServerStorage/ServerStorage.vue

+ 5 - 2
client/components/Reader/ServerStorage/ServerStorage.vue

@@ -412,9 +412,11 @@ class ServerStorage extends Vue {
                 if (recentLastDiff.rev == 0)
                 if (recentLastDiff.rev == 0)
                     recentLastDiff.data = {};
                     recentLastDiff.data = {};
 
 
+                this.oldRecentLastDiff = _.cloneDeep(recentLastDiff.data);
+                this.oldRecentLast = _.cloneDeep(recentLast.data);
+
                 recentLast.data = utils.applyObjDiff(recentLast.data, recentLastDiff.data);
                 recentLast.data = utils.applyObjDiff(recentLast.data, recentLastDiff.data);
 
 
-                this.oldRecentLast = _.cloneDeep(recentLast.data);
                 await bookManager.setRecentLast(recentLast.data);
                 await bookManager.setRecentLast(recentLast.data);
                 await bookManager.setRecentLastRev(recentLast.rev);
                 await bookManager.setRecentLastRev(recentLast.rev);
                 await bookManager.setRecentLastDiffRev(recentLastDiff.rev);
                 await bookManager.setRecentLastDiffRev(recentLastDiff.rev);
@@ -485,7 +487,7 @@ class ServerStorage extends Vue {
         if (utils.isEmptyObjDiff(diff))
         if (utils.isEmptyObjDiff(diff))
             return;
             return;
 
 
-        if (JSON.stringify(recentLast) > JSON.stringify(diff)) {
+        if (this.oldRecentLast.key == recentLast.key && JSON.stringify(recentLast) > JSON.stringify(diff)) {
             await this.saveRecentLastDiff(diff, force);
             await this.saveRecentLastDiff(diff, force);
             return;
             return;
         }
         }
@@ -529,6 +531,7 @@ class ServerStorage extends Vue {
             } else {
             } else {
                 this.oldRecentLast = _.cloneDeep(recentLast);
                 this.oldRecentLast = _.cloneDeep(recentLast);
                 await bm.setRecentLastRev(lastRev + 1);
                 await bm.setRecentLastRev(lastRev + 1);
+                await this.saveRecentLastDiff({}, true);
             }
             }
         } finally {
         } finally {
             this.savingRecentLast = false;
             this.savingRecentLast = false;