Merge pull request #493 from sumile-ting/fix/collapseSubMenuOverflow

fix: 左侧菜单收起后,组件菜单的子菜单显示不全
This commit is contained in:
Archer 2024-06-26 17:54:12 +08:00 committed by GitHub
commit ddcf5f4400
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 17 additions and 3 deletions

View File

@ -98,7 +98,7 @@ export default defineComponent({
> >
{{ {{
default: () => { default: () => {
const { renderMenuItem } = useRenderMenuItem() const { renderMenuItem } = useRenderMenuItem(menuMode)
return renderMenuItem(unref(routers)) return renderMenuItem(unref(routers))
} }
}} }}
@ -257,4 +257,9 @@ export default defineComponent({
} }
} }
} }
@submenu-prefix-cls: ~'@{adminNamespace}-submenu-popper';
.@{submenu-prefix-cls}--vertical {
overflow-y: auto;
max-height: 100%;
}
</style> </style>

View File

@ -1,12 +1,17 @@
import { ElSubMenu, ElMenuItem } from 'element-plus' import { ElSubMenu, ElMenuItem } from 'element-plus'
import { unref } from 'vue'
import { hasOneShowingChild } from '../helper' import { hasOneShowingChild } from '../helper'
import { isUrl } from '@/utils/is' import { isUrl } from '@/utils/is'
import { useRenderMenuTitle } from './useRenderMenuTitle' import { useRenderMenuTitle } from './useRenderMenuTitle'
import { pathResolve } from '@/utils/routerHelper' import { pathResolve } from '@/utils/routerHelper'
import { useDesign } from '@/hooks/web/useDesign'
const { getPrefixCls } = useDesign()
const prefixCls = getPrefixCls('submenu')
const { renderMenuTitle } = useRenderMenuTitle() const { renderMenuTitle } = useRenderMenuTitle()
export const useRenderMenuItem = () => export const useRenderMenuItem = (menuMode) =>
// allRouters: AppRouteRecordRaw[] = [], // allRouters: AppRouteRecordRaw[] = [],
{ {
const renderMenuItem = (routers: AppRouteRecordRaw[], parentPath = '/') => { const renderMenuItem = (routers: AppRouteRecordRaw[], parentPath = '/') => {
@ -33,7 +38,11 @@ export const useRenderMenuItem = () =>
) )
} else { } else {
return ( return (
<ElSubMenu index={fullPath}> <ElSubMenu
index={fullPath}
popper-append-to-body
popperClass={unref(menuMode) === 'vertical' ? `${prefixCls}-popper--vertical` : ''}
>
{{ {{
title: () => renderMenuTitle(meta), title: () => renderMenuTitle(meta),
default: () => renderMenuItem(v.children!, fullPath) default: () => renderMenuItem(v.children!, fullPath)