From dbd0951b30d39d129dc72bf404419b31d6ab808a Mon Sep 17 00:00:00 2001 From: neverland Date: Tue, 19 Nov 2019 20:36:28 +0800 Subject: [PATCH] fix(DropdownMenu): should't close when custom container and get clicked (#5047) --- src/dropdown-item/index.js | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/dropdown-item/index.js b/src/dropdown-item/index.js index d8a31a9ef..ccfa6c48b 100644 --- a/src/dropdown-item/index.js +++ b/src/dropdown-item/index.js @@ -40,6 +40,14 @@ export default createComponent({ } }, + beforeCreate() { + const createEmitter = eventName => () => this.$emit(eventName); + + this.onOpen = createEmitter('open'); + this.onClose = createEmitter('close'); + this.onOpened = createEmitter('opened'); + }, + methods: { toggle(show = !this.showPopup, options = {}) { if (show === this.showPopup) { @@ -53,17 +61,15 @@ export default createComponent({ this.parent.updateOffset(); this.showWrapper = true; } + }, + + onClickWrapper(event) { + if (this.getContainer) { + event.stopPropagation(); + } } }, - beforeCreate() { - const createEmitter = eventName => () => this.$emit(eventName); - - this.onOpen = createEmitter('open'); - this.onClose = createEmitter('close'); - this.onOpened = createEmitter('opened'); - }, - render() { const { zIndex, @@ -113,6 +119,7 @@ export default createComponent({ ref="wrapper" style={style} class={bem([direction])} + onClick={this.onClickWrapper} >