Merge pull request #980 from iview/2.0

2.0
This commit is contained in:
Lison 2018-09-18 15:02:19 +08:00 committed by GitHub
commit fed915d718
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 21 additions and 2 deletions

View File

@ -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) {

View File

@ -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>

View File

@ -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))
} }

View File

@ -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 () {