You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
iTi-Flask/iti/applications/routes/sys/schemas/menu.py

145 lines
4.0 KiB
Python

from apiflask import fields
from iti.applications.common.enums import MenuTypeEnum, StatusEnum
from iti.applications.common.utils.schema import BaseSchema
from iti.applications.models import SysMenuMetaSchema
class MenuCreateRequest(BaseSchema):
"""
创建菜单请求
"""
name = fields.String(
required=True,
metadata={"example": "菜单名称", "description": "菜单名称"},
)
type = fields.Enum(
MenuTypeEnum,
by_value=True,
required=True,
metadata={"example": "menu", "description": "菜单类型"},
)
path = fields.String(
required=True, metadata={"example": "menu", "description": "菜单路径"}
)
component = fields.String(
required=False,
metadata={"example": "menu", "description": "菜单组件"},
load_default=None,
)
redirect = fields.String(
required=False,
metadata={"example": "menu", "description": "菜单重定向"},
load_default=None,
)
sort = fields.Integer(
required=False,
metadata={"example": 0, "description": "菜单排序"},
load_default=0,
)
auth_code = fields.String(
data_key="authCode",
required=False,
metadata={"example": "sys:menu:list", "description": "权限编码"},
load_default=None,
)
meta = fields.Nested(
SysMenuMetaSchema,
required=False,
metadata={"example": {}, "description": "菜单元数据"},
load_default={},
)
status = fields.Enum(
StatusEnum,
by_value=True,
required=False,
metadata={"example": "enabled", "description": "状态"},
load_default=StatusEnum.ENABLED,
)
parent_id = fields.String(
data_key="parentId",
required=False,
metadata={"example": "0", "description": "父菜单ID"},
load_default=None,
)
class MenuUpdateRequest(BaseSchema):
"""
更新菜单请求
"""
type = fields.Enum(
MenuTypeEnum,
by_value=True,
required=False,
metadata={"example": "menu", "description": "菜单类型"},
load_default=None,
)
name = fields.String(
required=False,
metadata={"example": "菜单名称", "description": "菜单名称"},
load_default=None,
)
path = fields.String(
required=False,
metadata={"example": "menu", "description": "菜单路径"},
load_default=None,
)
component = fields.String(
required=False,
metadata={"example": "menu", "description": "菜单组件"},
load_default=None,
)
sort = fields.Integer(
required=False,
metadata={"example": 0, "description": "菜单排序"},
load_default=None,
)
auth_code = fields.String(
data_key="authCode",
required=False,
metadata={"example": "sys:menu:list", "description": "权限编码"},
load_default=None,
)
meta = fields.Nested(
SysMenuMetaSchema,
required=False,
metadata={"example": {}, "description": "菜单元数据"},
load_default=None,
)
status = fields.Enum(
StatusEnum,
by_value=True,
required=False,
metadata={"example": "enabled", "description": "状态"},
load_default=None,
)
parent_id = fields.String(
data_key="parentId",
required=False,
metadata={"example": "0", "description": "父菜单ID"},
load_default=None,
)
class MenuExistsRequest(BaseSchema):
"""
检查菜单是否存在请求
"""
id = fields.String(
required=False,
metadata={"example": "0", "description": "菜单ID"},
load_default=None,
)
path = fields.String(
required=False,
metadata={"example": "menu", "description": "菜单路径"},
)
name = fields.String(
required=False,
metadata={"example": "菜单名称", "description": "菜单名称"},
)