1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
| <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>
|
|