element/packages/dropdown/src/dropdown-menu.vue

57 lines
1.1 KiB
Vue
Raw Normal View History

2016-07-27 06:15:02 +00:00
<template>
2016-12-03 10:59:04 +00:00
<transition name="el-zoom-in-top" @after-leave="doDestroy">
<ul class="el-dropdown-menu el-popper" :class="[size && `el-dropdown-menu--${size}`]" v-show="showPopper">
2016-10-13 05:54:02 +00:00
<slot></slot>
</ul>
</transition>
2016-07-27 06:15:02 +00:00
</template>
<script>
2016-10-13 03:12:24 +00:00
import Popper from 'element-ui/src/utils/vue-popper';
2016-07-27 06:15:02 +00:00
export default {
2016-10-05 03:03:44 +00:00
name: 'ElDropdownMenu',
componentName: 'ElDropdownMenu',
2016-07-27 06:15:02 +00:00
mixins: [Popper],
props: {
visibleArrow: {
type: Boolean,
default: true
}
},
2017-08-02 15:31:36 +00:00
data() {
return {
size: this.dropdown.dropdownSize
2017-08-02 15:31:36 +00:00
};
},
inject: ['dropdown'],
created() {
this.$on('updatePopper', () => {
if (this.showPopper) this.updatePopper();
});
this.$on('visible', val => {
this.showPopper = val;
2016-07-27 06:15:02 +00:00
});
},
mounted() {
this.$parent.popperElm = this.popperElm = this.$el;
this.referenceElm = this.$parent.$el;
},
watch: {
2017-08-02 15:31:36 +00:00
'dropdown.placement': {
2016-12-29 08:37:46 +00:00
immediate: true,
handler(val) {
2017-08-02 15:31:36 +00:00
this.currentPlacement = val;
2016-12-29 08:37:46 +00:00
}
}
2016-07-27 06:15:02 +00:00
}
};
</script>