You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.5 KiB
53 lines
1.5 KiB
/**
|
|
* 在原基础上增加了 inlineIndent 属性,用于确定每级节点的单位缩进距离
|
|
*/
|
|
export default {
|
|
inject: ['rootMenu'],
|
|
|
|
props: {
|
|
inlineIndent: {type: Number, default: 20}
|
|
},
|
|
|
|
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 = this.inlineIndent
|
|
|
|
if (!this.rootMenu.collapse) {
|
|
let parent = this.$parent
|
|
while (parent && parent.$options.componentName !== 'ElMenu') {
|
|
if (parent.$options.componentName === 'ElSubmenu') {
|
|
padding += this.inlineIndent
|
|
}
|
|
parent = parent.$parent
|
|
}
|
|
}
|
|
|
|
return {'padding-left': `${padding}px`}
|
|
}
|
|
}
|
|
}
|
|
|