commit
fed915d718
|
|
@ -255,6 +255,18 @@ export const findNodeUpper = (ele, tag) => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const findNodeUpperByClasses = (ele, classes) => {
|
||||||
|
let parentNode = ele.parentNode
|
||||||
|
if (parentNode) {
|
||||||
|
let classList = parentNode.classList
|
||||||
|
if (classList && classes.every(className => classList.contains(className))) {
|
||||||
|
return parentNode
|
||||||
|
} else {
|
||||||
|
return findNodeUpperByClasses(parentNode, classes)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export const findNodeDownward = (ele, tag) => {
|
export const findNodeDownward = (ele, tag) => {
|
||||||
const tagName = tag.toUpperCase()
|
const tagName = tag.toUpperCase()
|
||||||
if (ele.childNodes.length) {
|
if (ele.childNodes.length) {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<Dropdown @on-click="handleClick" transfer :placement="placement">
|
<Dropdown ref="dropdown" @on-click="handleClick" class="collased-menu-dropdown" :transfer="hideTitle" :placement="placement">
|
||||||
<a class="drop-menu-a" type="text" @mouseover="handleMousemove($event, children)" :style="{textAlign: !hideTitle ? 'left' : ''}"><common-icon :size="rootIconSize" :color="textColor" :type="parentItem.icon"/><span class="menu-title" v-if="!hideTitle">{{ showTitle(parentItem) }}</span><Icon style="float: right;" v-if="!hideTitle" type="ios-arrow-forward" :size="16"/></a>
|
<a class="drop-menu-a" type="text" @mouseover="handleMousemove($event, children)" :style="{textAlign: !hideTitle ? 'left' : ''}"><common-icon :size="rootIconSize" :color="textColor" :type="parentItem.icon"/><span class="menu-title" v-if="!hideTitle">{{ showTitle(parentItem) }}</span><Icon style="float: right;" v-if="!hideTitle" type="ios-arrow-forward" :size="16"/></a>
|
||||||
<DropdownMenu slot="list">
|
<DropdownMenu ref="dropdown" slot="list">
|
||||||
<template v-for="child in children">
|
<template v-for="child in children">
|
||||||
<collapsed-menu v-if="showChildren(child)" :icon-size="iconSize" :parent-item="child" :key="`drop-${child.name}`"></collapsed-menu>
|
<collapsed-menu v-if="showChildren(child)" :icon-size="iconSize" :parent-item="child" :key="`drop-${child.name}`"></collapsed-menu>
|
||||||
<DropdownItem v-else :key="`drop-${child.name}`" :name="child.name"><common-icon :size="iconSize" :type="child.icon"/><span class="menu-title">{{ showTitle(child) }}</span></DropdownItem>
|
<DropdownItem v-else :key="`drop-${child.name}`" :name="child.name"><common-icon :size="iconSize" :type="child.icon"/><span class="menu-title">{{ showTitle(child) }}</span></DropdownItem>
|
||||||
|
|
@ -12,6 +12,7 @@
|
||||||
<script>
|
<script>
|
||||||
import mixin from './mixin'
|
import mixin from './mixin'
|
||||||
import itemMixin from './item-mixin'
|
import itemMixin from './item-mixin'
|
||||||
|
import { findNodeUpperByClasses } from '@/libs/util'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'CollapsedMenu',
|
name: 'CollapsedMenu',
|
||||||
|
|
@ -41,6 +42,10 @@ export default {
|
||||||
const isOverflow = pageY + height < window.innerHeight
|
const isOverflow = pageY + height < window.innerHeight
|
||||||
this.placement = isOverflow ? 'right-start' : 'right-end'
|
this.placement = isOverflow ? 'right-start' : 'right-end'
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
mounted () {
|
||||||
|
let dropdown = findNodeUpperByClasses(this.$refs.dropdown.$el, ['ivu-select-dropdown', 'ivu-dropdown-transfer'])
|
||||||
|
if (dropdown) dropdown.style.overflow = 'visible'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -136,6 +136,7 @@ export default {
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
'$route' (newRoute) {
|
'$route' (newRoute) {
|
||||||
|
console.log(newRoute)
|
||||||
this.setBreadCrumb(newRoute.matched)
|
this.setBreadCrumb(newRoute.matched)
|
||||||
this.setTagNavList(getNewTagList(this.tagNavList, newRoute))
|
this.setTagNavList(getNewTagList(this.tagNavList, newRoute))
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -46,6 +46,7 @@ export default {
|
||||||
route: route,
|
route: route,
|
||||||
type: 'push'
|
type: 'push'
|
||||||
})
|
})
|
||||||
|
console.log(route)
|
||||||
this.$router.push(route)
|
this.$router.push(route)
|
||||||
},
|
},
|
||||||
createTagQuery () {
|
createTagQuery () {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue