mirror of https://github.com/ElemeFE/element
Menu: clickoutside hide submenu (#13296)
* Menu:(fix) clickoutside hide submenu * fix: optimize codepull/13347/head
parent
036102675a
commit
eb41032658
|
@ -3,6 +3,7 @@
|
||||||
import menuMixin from './menu-mixin';
|
import menuMixin from './menu-mixin';
|
||||||
import Emitter from 'element-ui/src/mixins/emitter';
|
import Emitter from 'element-ui/src/mixins/emitter';
|
||||||
import Popper from 'element-ui/src/utils/vue-popper';
|
import Popper from 'element-ui/src/utils/vue-popper';
|
||||||
|
import Clickoutside from 'element-ui/src/utils/clickoutside';
|
||||||
|
|
||||||
const poperMixins = {
|
const poperMixins = {
|
||||||
props: {
|
props: {
|
||||||
|
@ -29,6 +30,8 @@
|
||||||
|
|
||||||
components: { ElCollapseTransition },
|
components: { ElCollapseTransition },
|
||||||
|
|
||||||
|
directives: { Clickoutside },
|
||||||
|
|
||||||
props: {
|
props: {
|
||||||
index: {
|
index: {
|
||||||
type: String,
|
type: String,
|
||||||
|
@ -226,6 +229,11 @@
|
||||||
this.referenceElm = this.$el;
|
this.referenceElm = this.$el;
|
||||||
this.popperElm = this.$refs.menu;
|
this.popperElm = this.$refs.menu;
|
||||||
this.updatePlacement();
|
this.updatePlacement();
|
||||||
|
},
|
||||||
|
close() {
|
||||||
|
this.$nextTick(() => {
|
||||||
|
if (this.opened) this.rootMenu.closeMenu(this.index);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
@ -315,6 +323,7 @@
|
||||||
on-mouseenter={this.handleMouseenter}
|
on-mouseenter={this.handleMouseenter}
|
||||||
on-mouseleave={this.handleMouseleave}
|
on-mouseleave={this.handleMouseleave}
|
||||||
on-focus={this.handleMouseenter}
|
on-focus={this.handleMouseenter}
|
||||||
|
v-clickoutside={this.close}
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
class="el-submenu__title"
|
class="el-submenu__title"
|
||||||
|
|
Loading…
Reference in New Issue