Commit 3e3fba0ec2df99142443c6f6590a41ca5cf2b95e
1 parent
5edd66a8
add style for menu-group
Showing
2 changed files
with
25 additions
and
1 deletions
Show diff stats
examples/routers/menu.vue
@@ -30,6 +30,16 @@ | @@ -30,6 +30,16 @@ | ||
30 | </template> | 30 | </template> |
31 | <Menu-item name="3-3-3-1">四级1</Menu-item> | 31 | <Menu-item name="3-3-3-1">四级1</Menu-item> |
32 | <Menu-item name="3-3-3-2">四级2</Menu-item> | 32 | <Menu-item name="3-3-3-2">四级2</Menu-item> |
33 | + <MenuGroup title="Menu-Group"> | ||
34 | + <MenuItem name="3-3-3-3-1"> | ||
35 | + <Icon type="document-text"></Icon> | ||
36 | + Group-item1 | ||
37 | + </MenuItem> | ||
38 | + <MenuItem name="3-3-3-3-2"> | ||
39 | + <Icon type="chatbubbles"></Icon> | ||
40 | + Group-item2 | ||
41 | + </MenuItem> | ||
42 | + </MenuGroup> | ||
33 | </Submenu> | 43 | </Submenu> |
34 | </Submenu> | 44 | </Submenu> |
35 | </Submenu> | 45 | </Submenu> |
src/components/menu/menu-group.vue
1 | <template> | 1 | <template> |
2 | <li :class="[prefixCls + '-item-group']"> | 2 | <li :class="[prefixCls + '-item-group']"> |
3 | - <div :class="[prefixCls + '-item-group-title']">{{ title }}</div> | 3 | + <div :class="[prefixCls + '-item-group-title']" :style="groupStyle">{{ title }}</div> |
4 | <ul><slot></slot></ul> | 4 | <ul><slot></slot></ul> |
5 | </li> | 5 | </li> |
6 | </template> | 6 | </template> |
7 | <script> | 7 | <script> |
8 | + import { findComponentUpward, findComponentsUpward } from '../../utils/assist'; | ||
8 | const prefixCls = 'ivu-menu'; | 9 | const prefixCls = 'ivu-menu'; |
9 | 10 | ||
10 | export default { | 11 | export default { |
@@ -19,6 +20,19 @@ | @@ -19,6 +20,19 @@ | ||
19 | return { | 20 | return { |
20 | prefixCls: prefixCls | 21 | prefixCls: prefixCls |
21 | }; | 22 | }; |
23 | + }, | ||
24 | + computed: { | ||
25 | + parentSubmenuNum () { | ||
26 | + return findComponentsUpward(this, 'Submenu').length; | ||
27 | + }, | ||
28 | + hasParentSubmenu () { | ||
29 | + return findComponentUpward(this, 'Submenu'); | ||
30 | + }, | ||
31 | + groupStyle () { | ||
32 | + return this.hasParentSubmenu ? { | ||
33 | + paddingLeft: 43 + (this.parentSubmenuNum - 1) * 28 + 'px' | ||
34 | + } : {}; | ||
35 | + } | ||
22 | } | 36 | } |
23 | }; | 37 | }; |
24 | </script> | 38 | </script> |