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.
140 lines
3.8 KiB
Python
140 lines
3.8 KiB
Python
from iti.applications.common.utils.schema import BaseSchema, Pagination
|
|
from iti.applications.common.enums import StatusEnum
|
|
from apiflask import fields
|
|
from marshmallow_dataclass import dataclass
|
|
from dataclasses import field
|
|
from datetime import datetime
|
|
from typing import ClassVar
|
|
|
|
|
|
@dataclass(base_schema=BaseSchema)
|
|
class SysDeptQuery(Pagination):
|
|
"""
|
|
部门查询请求
|
|
"""
|
|
|
|
name: str = field(
|
|
metadata={
|
|
"required": False,
|
|
"metadata": {"example": "部门名称", "description": "部门名称"},
|
|
},
|
|
default=None,
|
|
)
|
|
parent_id: str = field(
|
|
metadata={
|
|
"required": False,
|
|
"data_key": "parentId",
|
|
"metadata": {"example": "0", "description": "父部门ID"},
|
|
},
|
|
default=None,
|
|
)
|
|
leader_id: str = field(
|
|
metadata={
|
|
"required": False,
|
|
"data_key": "leaderId",
|
|
"metadata": {"example": "0", "description": "负责人ID"},
|
|
},
|
|
default=None,
|
|
)
|
|
status: StatusEnum = field(
|
|
metadata={
|
|
"required": False,
|
|
"by_value": True,
|
|
"metadata": {"example": "enabled", "description": "状态"},
|
|
},
|
|
default=StatusEnum.ENABLED,
|
|
)
|
|
startTime: datetime = field(
|
|
metadata={
|
|
"required": False,
|
|
"metadata": {"example": "2025-01-01 00:00:00", "description": "开始时间"},
|
|
},
|
|
default=None,
|
|
)
|
|
endTime: datetime = field(
|
|
metadata={
|
|
"required": False,
|
|
"metadata": {"example": "2025-01-01 23:59:59", "description": "结束时间"},
|
|
},
|
|
default=None,
|
|
)
|
|
Schema: ClassVar[BaseSchema] = BaseSchema # For the type check
|
|
|
|
|
|
class SysDeptCreateRequest(BaseSchema):
|
|
"""
|
|
创建部门请求
|
|
"""
|
|
|
|
name = fields.String(
|
|
required=True, metadata={"example": "部门名称", "description": "部门名称"}
|
|
)
|
|
parent_id = fields.String(
|
|
data_key="parentId",
|
|
required=False,
|
|
metadata={"example": "0", "description": "父部门ID"},
|
|
load_default=None,
|
|
)
|
|
desc = fields.String(
|
|
required=False,
|
|
metadata={"example": "部门描述", "description": "部门描述"},
|
|
load_default=None,
|
|
)
|
|
sort = fields.Integer(
|
|
required=False, metadata={"example": 0, "description": "排序"}, load_default=0
|
|
)
|
|
leader_id = fields.String(
|
|
data_key="leaderId",
|
|
required=False,
|
|
metadata={"example": "0", "description": "负责人ID"},
|
|
load_default=None,
|
|
)
|
|
status = fields.Enum(
|
|
StatusEnum,
|
|
required=False,
|
|
by_value=True,
|
|
metadata={"example": "enabled", "description": "状态"},
|
|
load_default=StatusEnum.ENABLED,
|
|
)
|
|
|
|
|
|
class SysDeptUpdateRequest(BaseSchema):
|
|
"""
|
|
更新部门请求
|
|
"""
|
|
|
|
name = fields.String(
|
|
required=False,
|
|
metadata={"example": "部门名称", "description": "部门名称"},
|
|
load_default=None,
|
|
)
|
|
parent_id = fields.String(
|
|
data_key="parentId",
|
|
required=False,
|
|
metadata={"example": "0", "description": "父部门ID"},
|
|
load_default=None,
|
|
)
|
|
desc = fields.String(
|
|
required=False,
|
|
metadata={"example": "部门描述", "description": "部门描述"},
|
|
load_default=None,
|
|
)
|
|
sort = fields.Integer(
|
|
required=False,
|
|
metadata={"example": 0, "description": "排序"},
|
|
load_default=None,
|
|
)
|
|
leader_id = fields.String(
|
|
data_key="leaderId",
|
|
required=False,
|
|
metadata={"example": "0", "description": "负责人ID"},
|
|
load_default=None,
|
|
)
|
|
status = fields.Enum(
|
|
StatusEnum,
|
|
required=False,
|
|
by_value=True,
|
|
metadata={"example": "enabled", "description": "状态"},
|
|
load_default=None,
|
|
)
|