修改布局细节问题

This commit is contained in:
qq787203167
2022-02-28 13:44:05 +08:00
parent ed4ce0bcb1
commit 516f98a922
9 changed files with 322 additions and 201 deletions
+1 -1
View File
@@ -69,7 +69,7 @@
methods: {
onSelect(obj) {
this.$emit('menuSelect', obj)
}
},
}
}
</script>
+79 -35
View File
@@ -26,7 +26,7 @@ export default {
default: false
}
},
data () {
data() {
return {
openKeys: [],
selectedKeys: [],
@@ -40,11 +40,11 @@ export default {
return keys
}
},
mounted () {
mounted() {
this.updateMenu()
},
watch: {
collapsed (val) {
collapsed(val) {
if (val) {
this.cachedOpenKeys = this.openKeys.concat()
this.openKeys = []
@@ -52,14 +52,13 @@ export default {
this.openKeys = this.cachedOpenKeys
}
},
$route: function () {
$route: function() {
this.updateMenu()
}
},
methods: {
// select menu item
onOpenChange (openKeys) {
onOpenChange(openKeys) {
// 在水平模式下时执行,并且不再执行后续
if (this.mode === 'horizontal') {
this.openKeys = openKeys
@@ -73,7 +72,7 @@ export default {
this.openKeys = latestOpenKey ? [latestOpenKey] : []
}
},
updateMenu () {
updateMenu() {
const routes = this.$route.matched.concat()
const { hidden } = this.$route.meta
if (routes.length >= 3 && hidden) {
@@ -89,24 +88,24 @@ export default {
})
}
//update-begin-author:taoyan date:20190510 for:online表单菜单点击展开的一级目录不对
if(!this.selectedKeys || this.selectedKeys[0].indexOf(":")<0){
if (!this.selectedKeys || this.selectedKeys[0].indexOf(':') < 0) {
this.collapsed ? (this.cachedOpenKeys = openKeys) : (this.openKeys = openKeys)
}
//update-end-author:taoyan date:20190510 for:online表单菜单点击展开的一级目录不对
},
// render
renderItem (menu) {
renderItem(menu) {
if (!menu.hidden) {
return menu.children && !menu.alwaysShow ? this.renderSubMenu(menu) : this.renderMenuItem(menu)
}
return null
},
renderMenuItem (menu) {
renderMenuItem(menu) {
const target = menu.meta.target || null
const tag = target && 'a' || 'router-link'
let props = { to: { name: menu.name } }
if(menu.route && menu.route === '0'){
if (menu.route && menu.route === '0') {
props = { to: { path: menu.path } }
}
@@ -122,42 +121,75 @@ export default {
}
return (
<Item {...{ key: menu.path }}>
<tag {...{ props, attrs }}>
{this.renderIcon(menu.meta.icon)}
<span>{menu.meta.title}</span>
</tag>
</Item>
)
< Item
{...
{
key: menu.path
}
}
>
<
tag
{...
{
props, attrs
}
}
>
{
this.renderIcon(menu.meta.icon)
}
<
span > { menu.meta.title } < /span>
< /tag>
< /Item>
)
},
renderSubMenu (menu) {
renderSubMenu(menu) {
const itemArr = []
if (!menu.alwaysShow) {
menu.children.forEach(item => itemArr.push(this.renderItem(item)))
}
return (
<SubMenu {...{ key: menu.path }}>
<span slot="title">
{this.renderIcon(menu.meta.icon)}
<span>{menu.meta.title}</span>
</span>
{itemArr}
</SubMenu>
)
< SubMenu
{...
{
key: menu.path
}
}
>
<
span
slot = 'title' >
{ this.renderIcon(menu.meta.icon) }
< span > { menu.meta.title } < /span>
< /span>
{
itemArr
}
<
/SubMenu>
)
},
renderIcon (icon) {
renderIcon(icon) {
if (icon === 'none' || icon === undefined) {
return null
}
const props = {}
typeof (icon) === 'object' ? props.component = icon : props.type = icon
return (
<Icon {... { props } }/>
)
< Icon
{...
{
props
}
}
/>
)
}
},
render () {
render() {
const { mode, theme, menu } = this
const props = {
mode: mode,
@@ -180,9 +212,21 @@ export default {
})
// {...{ props, on: on }}
return (
<Menu vModel={this.selectedKeys} {...{ props, on: on }}>
{menuTree}
</Menu>
)
< Menu
vModel = { this.selectedKeys }
{...
{
props, on
:
on
}
}
>
{
menuTree
}
<
/Menu>
)
}
}