Browse Source

Dialog: fix vuex compatibility

Leopoldthecoder 8 years ago
parent
commit
84657095c4
2 changed files with 11 additions and 2 deletions
  1. 1 1
      examples/docs/zh-CN/dialog.md
  2. 10 1
      packages/dialog/src/component.vue

+ 1 - 1
examples/docs/zh-CN/dialog.md

@@ -19,7 +19,7 @@
           name: '王小虎',
           address: '上海市普陀区金沙江路 1518 弄'
         }],
-        dialogVisible: true,
+        dialogVisible: false,
         dialogTableVisible: false,
         dialogFormVisible: false,
         outerVisible: false,

+ 10 - 1
packages/dialog/src/component.vue

@@ -94,10 +94,17 @@
       beforeClose: Function
     },
 
+    data() {
+      return {
+        closed: false
+      };
+    },
+
     watch: {
       visible(val) {
         this.$emit('update:visible', val);
         if (val) {
+          this.closed = false;
           this.$emit('open');
           this.$el.addEventListener('scroll', this.updatePopper);
           this.$nextTick(() => {
@@ -108,7 +115,7 @@
           }
         } else {
           this.$el.removeEventListener('scroll', this.updatePopper);
-          this.$emit('close');
+          if (!this.closed) this.$emit('close');
         }
       }
     },
@@ -141,6 +148,8 @@
       hide(cancel) {
         if (cancel !== false) {
           this.$emit('update:visible', false);
+          this.$emit('close');
+          this.closed = true;
         }
       },
       updatePopper() {