Browse Source

editer:feat:自动保存

haojianlong 4 years ago
parent
commit
929eb89e1b
1 changed files with 18 additions and 1 deletions
  1. 18 1
      src/components/editview/baseTopoEditer.vue

+ 18 - 1
src/components/editview/baseTopoEditer.vue

@@ -47,6 +47,7 @@ export default {
       havItem: false, //右击是否选中item
       showTooltip: false, //是否显示tooltip
       topoContent: {}, // 读图后存储图所有数据
+      autoSave: null, // 自动保存定时器
     };
   },
   computed: {
@@ -80,6 +81,10 @@ export default {
     };
     // 读取底图
     this.readtopoMsg();
+    // 2分钟自动保存
+    this.autoSave = setInterval(() => {
+      this.autoSaveTopo();
+    }, 120000);
   },
   methods: {
     ...mapMutations([
@@ -227,7 +232,7 @@ export default {
       });
       this.view.fitSceneToView();
     },
-    // 保存草稿
+    // 生成快照并保存草稿
     saveTopoDraft() {
       const uuid = uuidv1();
       return Promise.all([this.generateSnap(uuid), this.saveDraft(uuid)]).then(
@@ -327,6 +332,15 @@ export default {
         });
       });
     },
+    // 自动保存
+    autoSaveTopo() {
+      console.log(this.scene.undoStack.isChange);
+      if (this.scene && this.scene.undoStack.isChange) {
+        this.saveTopoDraft().then(() => {
+          this.scene.undoStack.isChange = false;
+        });
+      }
+    },
     // 发布草稿
     issueDraft() {
       const pa = {
@@ -395,6 +409,9 @@ export default {
     this.SETISPUB(this.$route.query.isPub);
     this.categoryName = decodeURI(this.$route.query.categoryName);
   },
+  beforeDestroy() {
+    clearInterval(this.autoSave);
+  },
 };
 </script>
 <style lang="less" scoped>