From 12941b05ea4ff3200e6de55541c7fc3a216e9850 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=98=89=E6=B6=B5?= Date: Fri, 10 May 2019 16:24:08 +0800 Subject: [PATCH] [improvement] DropdownMenu: close menu when click outside --- packages/dropdown-item/index.js | 1 + packages/dropdown-menu/index.js | 12 +++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/dropdown-item/index.js b/packages/dropdown-item/index.js index 1acae1ceb..12428c8cd 100644 --- a/packages/dropdown-item/index.js +++ b/packages/dropdown-item/index.js @@ -46,6 +46,7 @@ export default sfc({ return ( { diff --git a/packages/dropdown-menu/index.js b/packages/dropdown-menu/index.js index 56dd50434..79fc09831 100644 --- a/packages/dropdown-menu/index.js +++ b/packages/dropdown-menu/index.js @@ -1,11 +1,15 @@ import { use } from '../utils'; import { BLUE } from '../utils/color'; import { ParentMixin } from '../mixins/relation'; +import { ClickOutsideMixin } from '../mixins/click-outside'; const [sfc, bem] = use('dropdown-menu'); export default sfc({ - mixins: [ParentMixin('vanDropdownMenu')], + mixins: [ParentMixin('vanDropdownMenu'), ClickOutsideMixin({ + event: 'click', + method: 'onClickOutside' + })], props: { overlay: { @@ -45,6 +49,12 @@ export default sfc({ item.toggle(false); } }); + }, + + onClickOutside() { + this.children.forEach(item => { + item.toggle(false); + }); } },