From 0d1e51cb2121ea73bdf4a949121b72ccfe2477d1 Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Sat, 19 Oct 2019 19:27:18 +0700 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=BE=D0=BF=D1=80=D0=B0=D0=B2=D0=BA?= =?UTF-8?q?=D0=B0=20=D0=B1=D0=B0=D0=B3=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Reader/ServerStorage/ServerStorage.vue | 22 ++++++++----------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/client/components/Reader/ServerStorage/ServerStorage.vue b/client/components/Reader/ServerStorage/ServerStorage.vue index 5b0d5d7c..65746730 100644 --- a/client/components/Reader/ServerStorage/ServerStorage.vue +++ b/client/components/Reader/ServerStorage/ServerStorage.vue @@ -458,22 +458,15 @@ class ServerStorage extends Vue { let needSaveRecentPatch = false; let needSaveRecentMod = false; - let applyMod = null; - //newRecentMod let newRecentMod = {}; + if (itemKey && this.cachedRecentPatch.data[itemKey] && this.prevItemKey == itemKey) { + newRecentMod = _.cloneDeep(this.cachedRecentMod); + newRecentMod.rev++; - if (itemKey && this.cachedRecentPatch.data[itemKey]) { - if (this.prevItemKey == itemKey) {//сохраняем только дифф - newRecentMod = _.cloneDeep(this.cachedRecentMod); - newRecentMod.rev++; - - newRecentMod.data.key = itemKey; - newRecentMod.data.mod = utils.getObjDiff(this.cachedRecentPatch.data[itemKey], bm.recent[itemKey]); - needSaveRecentMod = true; - } else {//ключ не совпадает, надо сохранять патч - applyMod = newRecentMod.data; - } + newRecentMod.data.key = itemKey; + newRecentMod.data.mod = utils.getObjDiff(this.cachedRecentPatch.data[itemKey], bm.recent[itemKey]); + needSaveRecentMod = true; } this.prevItemKey = itemKey; @@ -483,8 +476,11 @@ class ServerStorage extends Vue { newRecentPatch = _.cloneDeep(this.cachedRecentPatch); newRecentPatch.rev++; newRecentPatch.data[itemKey] = bm.recent[itemKey]; + + let applyMod = this.cachedRecentMod.data; if (applyMod && applyMod.key && newRecentPatch.data[applyMod.key]) newRecentPatch.data[applyMod.key] = utils.applyObjDiff(newRecentPatch.data[applyMod.key], applyMod.mod); + newRecentMod = {rev: this.cachedRecentMod.rev + 1, data: {}}; needSaveRecentPatch = true; needSaveRecentMod = true;