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.

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": "菜单名称"},
)