|
|
|
@ -2,15 +2,13 @@ import { ElSubMenu, ElMenuItem } from 'element-plus'
|
|
|
|
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 { useDesign } from '@/hooks/web/useDesign'
|
|
|
|
|
|
|
|
import { pathResolve } from '@/utils/routerHelper'
|
|
|
|
import { pathResolve } from '@/utils/routerHelper'
|
|
|
|
|
|
|
|
|
|
|
|
const { renderMenuTitle } = useRenderMenuTitle()
|
|
|
|
const { renderMenuTitle } = useRenderMenuTitle()
|
|
|
|
|
|
|
|
|
|
|
|
export const useRenderMenuItem = (
|
|
|
|
export const useRenderMenuItem = () =>
|
|
|
|
// allRouters: AppRouteRecordRaw[] = [],
|
|
|
|
// allRouters: AppRouteRecordRaw[] = [],
|
|
|
|
menuMode: 'vertical' | 'horizontal'
|
|
|
|
{
|
|
|
|
) => {
|
|
|
|
|
|
|
|
const renderMenuItem = (routers: AppRouteRecordRaw[], parentPath = '/') => {
|
|
|
|
const renderMenuItem = (routers: AppRouteRecordRaw[], parentPath = '/') => {
|
|
|
|
return routers
|
|
|
|
return routers
|
|
|
|
.filter((v) => !v.meta?.hidden)
|
|
|
|
.filter((v) => !v.meta?.hidden)
|
|
|
|
@ -25,23 +23,17 @@ export const useRenderMenuItem = (
|
|
|
|
!meta?.alwaysShow
|
|
|
|
!meta?.alwaysShow
|
|
|
|
) {
|
|
|
|
) {
|
|
|
|
return (
|
|
|
|
return (
|
|
|
|
<ElMenuItem index={onlyOneChild ? pathResolve(fullPath, onlyOneChild.path) : fullPath}>
|
|
|
|
<ElMenuItem
|
|
|
|
|
|
|
|
index={onlyOneChild ? pathResolve(fullPath, onlyOneChild.path) : fullPath}
|
|
|
|
|
|
|
|
>
|
|
|
|
{{
|
|
|
|
{{
|
|
|
|
default: () => renderMenuTitle(onlyOneChild ? onlyOneChild?.meta : meta)
|
|
|
|
default: () => renderMenuTitle(onlyOneChild ? onlyOneChild?.meta : meta)
|
|
|
|
}}
|
|
|
|
}}
|
|
|
|
</ElMenuItem>
|
|
|
|
</ElMenuItem>
|
|
|
|
)
|
|
|
|
)
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
const { getPrefixCls } = useDesign()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const preFixCls = getPrefixCls('menu-popper')
|
|
|
|
|
|
|
|
return (
|
|
|
|
return (
|
|
|
|
<ElSubMenu
|
|
|
|
<ElSubMenu index={fullPath}>
|
|
|
|
index={fullPath}
|
|
|
|
|
|
|
|
popperClass={
|
|
|
|
|
|
|
|
menuMode === 'vertical' ? `${preFixCls}--vertical` : `${preFixCls}--horizontal`
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
{{
|
|
|
|
{{
|
|
|
|
title: () => renderMenuTitle(meta),
|
|
|
|
title: () => renderMenuTitle(meta),
|
|
|
|
default: () => renderMenuItem(v.children!, fullPath)
|
|
|
|
default: () => renderMenuItem(v.children!, fullPath)
|
|
|
|
@ -55,4 +47,4 @@ export const useRenderMenuItem = (
|
|
|
|
return {
|
|
|
|
return {
|
|
|
|
renderMenuItem
|
|
|
|
renderMenuItem
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|