""" 菜单管理API """ from typing import Dict, Any, List from httpx import AsyncClient, Response from .base_api import BaseAPI class MenuAPI(BaseAPI): """菜单管理API""" def __init__(self, client: AsyncClient): super().__init__(client, "/api/menus") async def create_menu(self, menu_data: Dict[str, Any]) -> Response: """创建菜单""" return await self.post("", json=menu_data) async def get_menu_by_id(self, menu_id: int) -> Response: """根据ID获取菜单""" return await self.get(f"/{menu_id}") async def get_all_menus(self) -> Response: """获取所有菜单""" return await self.get("") async def get_menu_tree(self) -> Response: """获取菜单树""" return await self.get("/tree") async def update_menu(self, menu_id: int, menu_data: Dict[str, Any]) -> Response: """更新菜单""" return await self.put(f"/{menu_id}", json=menu_data) async def delete_menu(self, menu_id: int) -> Response: """删除菜单""" return await self.delete(f"/{menu_id}") async def get_menus_by_parent(self, parent_id: int) -> Response: """根据父菜单ID获取子菜单""" return await self.get("", params={"parentId": parent_id}) async def get_menus_by_type(self, menu_type: str) -> Response: """根据菜单类型获取菜单""" return await self.get("", params={"menuType": menu_type})