|
|
|
@ -95,21 +95,20 @@ export default { |
|
|
|
|
return activePath; |
|
|
|
|
}, |
|
|
|
|
}, |
|
|
|
|
beforeMount() { |
|
|
|
|
window.addEventListener('resize', this.setVisibleNumber) |
|
|
|
|
}, |
|
|
|
|
beforeDestroy() { |
|
|
|
|
window.removeEventListener('resize', this.setVisibleNumber) |
|
|
|
|
}, |
|
|
|
|
mounted() { |
|
|
|
|
this.setVisibleNumber(); |
|
|
|
|
}, |
|
|
|
|
methods: { |
|
|
|
|
// 根据宽度计算设置显示栏数 |
|
|
|
|
setVisibleNumber() { |
|
|
|
|
const width = document.body.getBoundingClientRect().width - 380; |
|
|
|
|
const elWidth = this.$el.getBoundingClientRect().width; |
|
|
|
|
const menuItemNodes = this.$el.children; |
|
|
|
|
const menuWidth = Array.from(menuItemNodes).map( |
|
|
|
|
(i) => i.getBoundingClientRect().width |
|
|
|
|
); |
|
|
|
|
this.visibleNumber = ( |
|
|
|
|
parseInt(width - elWidth) / parseInt(menuWidth) |
|
|
|
|
).toFixed(0); |
|
|
|
|
const width = document.body.getBoundingClientRect().width / 3; |
|
|
|
|
this.visibleNumber = parseInt(width / 85); |
|
|
|
|
}, |
|
|
|
|
// 菜单选择事件 |
|
|
|
|
handleSelect(key, keyPath) { |
|
|
|
|