diff --git a/src/components/Menu/src/Menu.vue b/src/components/Menu/src/Menu.vue index d7c69ec..56dbf25 100644 --- a/src/components/Menu/src/Menu.vue +++ b/src/components/Menu/src/Menu.vue @@ -98,7 +98,7 @@ export default defineComponent({ > {{ default: () => { - const { renderMenuItem } = useRenderMenuItem() + const { renderMenuItem } = useRenderMenuItem(menuMode) 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%; +} diff --git a/src/components/Menu/src/components/useRenderMenuItem.tsx b/src/components/Menu/src/components/useRenderMenuItem.tsx index 301313f..66c5bf0 100644 --- a/src/components/Menu/src/components/useRenderMenuItem.tsx +++ b/src/components/Menu/src/components/useRenderMenuItem.tsx @@ -1,12 +1,17 @@ import { ElSubMenu, ElMenuItem } from 'element-plus' +import { unref } from 'vue' import { hasOneShowingChild } from '../helper' import { isUrl } from '@/utils/is' import { useRenderMenuTitle } from './useRenderMenuTitle' import { pathResolve } from '@/utils/routerHelper' +import { useDesign } from '@/hooks/web/useDesign' + +const { getPrefixCls } = useDesign() +const prefixCls = getPrefixCls('submenu') const { renderMenuTitle } = useRenderMenuTitle() -export const useRenderMenuItem = () => +export const useRenderMenuItem = (menuMode) => // allRouters: AppRouteRecordRaw[] = [], { const renderMenuItem = (routers: AppRouteRecordRaw[], parentPath = '/') => { @@ -33,7 +38,11 @@ export const useRenderMenuItem = () => ) } else { return ( - + {{ title: () => renderMenuTitle(meta), default: () => renderMenuItem(v.children!, fullPath)