|
@@ -99,22 +99,24 @@ class MenuService:
|
|
|
# 使用traversal_to_tree构建树形结构
|
|
# 使用traversal_to_tree构建树形结构
|
|
|
tree = traversal_to_tree(menu_dict_list)
|
|
tree = traversal_to_tree(menu_dict_list)
|
|
|
# 对外链菜单(type=4)转换路由数据
|
|
# 对外链菜单(type=4)转换路由数据
|
|
|
- _transform_external_menus(tree)
|
|
|
|
|
|
|
+ MenuService._transform_external_menus(tree)
|
|
|
return tree
|
|
return tree
|
|
|
|
|
|
|
|
|
|
|
|
|
-def _transform_external_menus(items: list[dict]) -> None:
|
|
|
|
|
- """递归转换外链菜单的路由和组件路径"""
|
|
|
|
|
- for item in items:
|
|
|
|
|
- if item.get("type") == 4:
|
|
|
|
|
- original_url = item.get("route_path", "")
|
|
|
|
|
- route_name = item.get("route_name") or "external"
|
|
|
|
|
- item["route_path"] = f"/{route_name}"
|
|
|
|
|
- item["component_path"] = "module_system/menu/ExternalLink"
|
|
|
|
|
- # 把原始 URL 存入 params,供 ExternalLink 组件读取
|
|
|
|
|
- item["params"] = [{"key": "url", "value": original_url}]
|
|
|
|
|
- if item.get("children"):
|
|
|
|
|
- _transform_external_menus(item["children"])
|
|
|
|
|
|
|
+
|
|
|
|
|
+ @staticmethod
|
|
|
|
|
+ def _transform_external_menus(items: list[dict]) -> None:
|
|
|
|
|
+ """递归转换外链菜单的路由和组件路径"""
|
|
|
|
|
+ for item in items:
|
|
|
|
|
+ if item.get("type") == 4:
|
|
|
|
|
+ original_url = item.get("route_path", "")
|
|
|
|
|
+ route_name = item.get("route_name") or "external"
|
|
|
|
|
+ item["route_path"] = f"/{route_name}"
|
|
|
|
|
+ item["component_path"] = "module_system/menu/ExternalLink"
|
|
|
|
|
+ # 把原始 URL 存入 params,供 ExternalLink 组件读取
|
|
|
|
|
+ item["params"] = [{"key": "url", "value": original_url}]
|
|
|
|
|
+ if item.get("children"):
|
|
|
|
|
+ MenuService._transform_external_menus(item["children"])
|
|
|
|
|
|
|
|
@classmethod
|
|
@classmethod
|
|
|
async def create_menu_service(cls, auth: AuthSchema, data: MenuCreateSchema) -> dict:
|
|
async def create_menu_service(cls, auth: AuthSchema, data: MenuCreateSchema) -> dict:
|