123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- <template>
- <li class="el-menu-item-group">
- <div class="el-menu-item-group__title" :style="{paddingLeft: levelPadding + 'px'}">
- <template v-if="!$slots.title">{{title}}</template>
- <slot v-else name="title"></slot>
- </div>
- <ul>
- <slot></slot>
- </ul>
- </li>
- </template>
- <script>
- export default {
- name: 'ElMenuItemGroup',
- componentName: 'ElMenuItemGroup',
- inject: ['rootMenu'],
- props: {
- title: {
- type: String
- }
- },
- data() {
- return {
- paddingLeft: 20
- };
- },
- computed: {
- levelPadding() {
- let padding = 20;
- let parent = this.$parent;
- if (this.rootMenu.collapse) return 20;
- while (parent && parent.$options.componentName !== 'ElMenu') {
- if (parent.$options.componentName === 'ElSubmenu') {
- padding += 20;
- }
- parent = parent.$parent;
- }
- return padding;
- }
- }
- };
- </script>
|