36 lines
816 B
Python
36 lines
816 B
Python
"""菜单 Schema 定义"""
|
|
from typing import Optional, List
|
|
from pydantic import BaseModel
|
|
|
|
|
|
class MenuMeta(BaseModel):
|
|
"""菜单元信息"""
|
|
title: str
|
|
icon: Optional[str] = None
|
|
keepAlive: Optional[bool] = False
|
|
isHide: Optional[bool] = False
|
|
isIframe: Optional[bool] = False
|
|
link: Optional[str] = None
|
|
showBadge: Optional[bool] = False
|
|
showTextBadge: Optional[str] = None
|
|
isHideTab: Optional[bool] = False
|
|
|
|
|
|
class MenuItem(BaseModel):
|
|
"""菜单项"""
|
|
id: int
|
|
name: str
|
|
path: str
|
|
component: Optional[str] = None
|
|
redirect: Optional[str] = None
|
|
meta: Optional[MenuMeta] = None
|
|
children: Optional[List["MenuItem"]] = None
|
|
|
|
|
|
class MenuListResponse(BaseModel):
|
|
"""菜单列表响应"""
|
|
menuList: List[MenuItem]
|
|
|
|
|
|
MenuItem.model_rebuild()
|