From 466bb3ce1ed85ae75b09cf2dbee48adb984e44d5 Mon Sep 17 00:00:00 2001 From: neverland <chenjiahan@buaa.edu.cn> Date: Wed, 30 Jan 2019 19:39:29 +0800 Subject: [PATCH] [new feature] Popup: add open/close event (#2649) --- packages/mixins/popup/index.js | 4 +++- packages/popup/en-US.md | 2 ++ packages/popup/test/index.spec.js | 8 ++++++++ packages/popup/zh-CN.md | 2 ++ 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/packages/mixins/popup/index.js b/packages/mixins/popup/index.js index afce5a964..525f0d40c 100644 --- a/packages/mixins/popup/index.js +++ b/packages/mixins/popup/index.js @@ -48,8 +48,10 @@ export default { watch: { value(val) { + const type = val ? 'open' : 'close'; this.inited = this.inited || this.value; - this[val ? 'open' : 'close'](); + this[type](); + this.$emit(type); }, getContainer() { diff --git a/packages/popup/en-US.md b/packages/popup/en-US.md index af1ab874f..631303bc1 100644 --- a/packages/popup/en-US.md +++ b/packages/popup/en-US.md @@ -54,4 +54,6 @@ Use `position` prop to set popup display position | Event | Description | Arguments | |------|------|------| +| open | Triggered when open Popup | - | +| close | Triggered when close Popup | - | | click-overlay | Triggered when click overlay | - | diff --git a/packages/popup/test/index.spec.js b/packages/popup/test/index.spec.js index 793b8a991..be18b3b6f 100644 --- a/packages/popup/test/index.spec.js +++ b/packages/popup/test/index.spec.js @@ -141,3 +141,11 @@ test('close on click modal', () => { modal.click(); expect(wrapper.vm.value).toBeFalsy(); }); + +test('oepn & close event', () => { + wrapper = mount(Popup); + wrapper.vm.value = true; + expect(wrapper.emitted('open')).toBeTruthy(); + wrapper.vm.value = false; + expect(wrapper.emitted('close')).toBeTruthy(); +}); diff --git a/packages/popup/zh-CN.md b/packages/popup/zh-CN.md index 96be4b379..7942ed273 100644 --- a/packages/popup/zh-CN.md +++ b/packages/popup/zh-CN.md @@ -54,4 +54,6 @@ export default { | 事件名 | 说明 | 参数 | |------|------|------| +| open | 打开弹出层时触发 | - | +| close | 关闭弹出层时触发 | - | | click-overlay | 点击蒙层时触发 | - |