sys_menu_dto.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. from typing import Optional
  2. from pydantic import Field
  3. from domain.dtos.base_dto import DtoBase
  4. class SysMenuBaseDto(DtoBase):
  5. menu_name: str = Field(..., title="菜单名称", max_length=30)
  6. parent_id: int = Field(0, title="父菜单ID", ge=0)
  7. order_num: int = Field(0, title="显示顺序", ge=0)
  8. path: Optional[str] = Field(None, title="路由地址", max_length=200)
  9. component: Optional[str] = Field(None, title="组件路径", max_length=100)
  10. query: Optional[str] = Field(None, title="路由参数", max_length=100)
  11. is_frame: int = Field(0, title="是否外链", ge=0, le=1)
  12. is_cache: int = Field(0, title="是否缓存", ge=0, le=1)
  13. menu_type: str = Field("M", title="菜单类型", min_length=1, max_length=1)
  14. visible: int = Field(0, title="菜单状态", ge=0, le=1)
  15. perms: Optional[str] = Field(None, title="权限标识", max_length=100)
  16. class Config:
  17. from_attributes = True
  18. class SysMenuDto(SysMenuBaseDto):
  19. id: int = Field(..., title="菜单ID", gt=0)
  20. class SysMenuCreateDto(SysMenuBaseDto):
  21. menu_name: str = Field(..., title="菜单名称", max_length=30)
  22. parent_id: int = Field(0, title="父菜单ID", ge=0)
  23. menu_type: str = Field(..., title="菜单类型", min_length=1, max_length=1)
  24. class SysMenuUpdateDto(SysMenuBaseDto):
  25. id: int = Field(..., title="菜单ID", gt=0)
  26. parent_id: Optional[int] = Field(None, title="父菜单ID", ge=0)