From 84657095c41ace6077ca27e0e3907f359fbf708b Mon Sep 17 00:00:00 2001 From: Leopoldthecoder Date: Fri, 4 Aug 2017 17:40:42 +0800 Subject: [PATCH] Dialog: fix vuex compatibility --- examples/docs/zh-CN/dialog.md | 2 +- packages/dialog/src/component.vue | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/examples/docs/zh-CN/dialog.md b/examples/docs/zh-CN/dialog.md index 6f56077fa..7afb1b13c 100644 --- a/examples/docs/zh-CN/dialog.md +++ b/examples/docs/zh-CN/dialog.md @@ -19,7 +19,7 @@ name: '王小虎', address: '上海市普陀区金沙江路 1518 弄' }], - dialogVisible: true, + dialogVisible: false, dialogTableVisible: false, dialogFormVisible: false, outerVisible: false, diff --git a/packages/dialog/src/component.vue b/packages/dialog/src/component.vue index 9ebb5a888..5fa3d98eb 100644 --- a/packages/dialog/src/component.vue +++ b/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() {