45 lines
1.0 KiB
JavaScript
45 lines
1.0 KiB
JavaScript
|
export default {
|
||
|
inject: ['rootMenu'],
|
||
|
computed: {
|
||
|
indexPath() {
|
||
|
const path = [this.index];
|
||
|
let parent = this.$parent;
|
||
|
while (parent.$options.componentName !== 'ElMenu') {
|
||
|
if (parent.index) {
|
||
|
path.unshift(parent.index);
|
||
|
}
|
||
|
parent = parent.$parent;
|
||
|
}
|
||
|
return path;
|
||
|
},
|
||
|
parentMenu() {
|
||
|
let parent = this.$parent;
|
||
|
while (
|
||
|
parent &&
|
||
|
['ElMenu', 'ElSubmenu'].indexOf(parent.$options.componentName) === -1
|
||
|
) {
|
||
|
parent = parent.$parent;
|
||
|
}
|
||
|
return parent;
|
||
|
},
|
||
|
paddingStyle() {
|
||
|
if (this.rootMenu.mode !== 'vertical') return {};
|
||
|
|
||
|
let padding = 20;
|
||
|
let parent = this.$parent;
|
||
|
|
||
|
if (this.rootMenu.collapse) {
|
||
|
padding = 20;
|
||
|
} else {
|
||
|
while (parent && parent.$options.componentName !== 'ElMenu') {
|
||
|
if (parent.$options.componentName === 'ElSubmenu') {
|
||
|
padding += 20;
|
||
|
}
|
||
|
parent = parent.$parent;
|
||
|
}
|
||
|
}
|
||
|
return {paddingLeft: padding + 'px'};
|
||
|
}
|
||
|
}
|
||
|
};
|