feat: 菜单管理新增路由名称

This commit is contained in:
insistence
2024-07-15 15:46:20 +08:00
parent a001ff8099
commit d1b6db4769
5 changed files with 123 additions and 94 deletions

View File

@@ -17,6 +17,7 @@ class SysMenu(Base):
path = Column(String(200), nullable=True, default='', comment='路由地址')
component = Column(String(255), nullable=True, default=None, comment='组件路径')
query = Column(String(255), nullable=True, default=None, comment='路由参数')
route_name = Column(String(50), nullable=True, default='', comment='路由名称')
is_frame = Column(Integer, default=1, comment='是否为外链0是 1否')
is_cache = Column(Integer, default=0, comment='是否缓存0缓存 1不缓存')
menu_type = Column(String(1), nullable=True, default='', comment='菜单类型M目录 C菜单 F按钮')

View File

@@ -20,6 +20,7 @@ class MenuModel(BaseModel):
path: Optional[str] = Field(default=None, description='路由地址')
component: Optional[str] = Field(default=None, description='组件路径')
query: Optional[str] = Field(default=None, description='路由参数')
route_name: Optional[str] = Field(default=None, description='路由名称')
is_frame: Optional[Literal[0, 1]] = Field(default=None, description='是否为外链0是 1否')
is_cache: Optional[Literal[0, 1]] = Field(default=None, description='是否缓存0缓存 1不缓存')
menu_type: Optional[Literal['M', 'C', 'F']] = Field(default=None, description='菜单类型M目录 C菜单 F按钮')

View File

@@ -341,7 +341,7 @@ class LoginService:
children = RouterModel(
path=permission.path,
component=permission.component,
name=permission.path.capitalize(),
name=RouterUtil.get_route_name(permission.route_name, permission.path),
meta=MetaModel(
title=permission.menu_name,
icon=permission.icon,
@@ -360,7 +360,7 @@ class LoginService:
children = RouterModel(
path=router_path,
component=MenuConstant.INNER_LINK,
name=router_path.capitalize(),
name=RouterUtil.get_route_name(permission.route_name, permission.path),
meta=MetaModel(
title=permission.menu_name,
icon=permission.icon,
@@ -504,11 +504,23 @@ class RouterUtil:
:param menu: 菜单数对象
:return: 路由名称
"""
router_name = menu.path.capitalize()
# 非外链并且是一级目录(类型为目录)
if cls.is_menu_frame(menu):
router_name = ''
return ''
return router_name
return cls.get_route_name(menu.route_name, menu.path)
@classmethod
def get_route_name(cls, name: str, path: str):
"""
获取路由名称,如没有配置路由名称则取路由地址
:param name: 路由名称
:param path: 路由地址
:return: 路由名称(驼峰格式)
"""
router_name = name if name else path
return router_name.capitalize()
@classmethod
def get_router_path(cls, menu: MenuTreeModel):