feat: 统一状态字段类型为字符串并重构基础类型

refactor: 重构前后端状态字段类型从布尔值改为字符串
feat: 新增基础类型定义和通用类型接口
refactor: 移除不必要的时间范围字段并统一使用created_time
style: 更新前端组件以匹配新的字段命名
docs: 更新接口文档和类型定义
This commit is contained in:
zhangtao
2025-11-27 23:47:23 +08:00
parent 2c9d66e2a7
commit 0c86069efa
73 changed files with 590 additions and 754 deletions
@@ -105,7 +105,7 @@ class UserCRUD(CRUDBase[UserModel, UserCreateSchema, UserUpdateSchema]):
"""
return await self.update(id=id, data={"last_login": datetime.now()})
async def set_available_crud(self, ids: List[int], status: bool) -> None:
async def set_available_crud(self, ids: List[int], status: str) -> None:
"""
批量设置用户可用状态
@@ -94,7 +94,7 @@ class UserCreateSchema(CurrentUserUpdateSchema):
username: Optional[str] = Field(default=None, max_length=32, description="用户名")
password: Optional[str] = Field(default=None, max_length=128, description="密码哈希值")
status: bool = Field(default=True, description="是否可用")
status: str = Field(default=True, description="是否可用")
description: Optional[str] = Field(default=None, max_length=255, description="备注")
user_type: Optional[str] = Field(default="0", max_length=32, description="用户类型")
@@ -136,9 +136,8 @@ class UserQueryParam:
mobile: Optional[str] = Query(None, description="手机号", pattern=r'^1[3-9]\d{9}$'),
email: Optional[str] = Query(None, description="邮箱", pattern=r'^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$'),
dept_id: Optional[int] = Query(None, description="部门ID"),
status: Optional[bool] = Query(None, description="是否可用"),
start_time: Optional[DateTimeStr] = Query(None, description="开始时间", example="2025-01-01 00:00:00"),
end_time: Optional[DateTimeStr] = Query(None, description="结束时间", example="2025-12-31 23:59:59"),
status: Optional[str] = Query(None, description="是否可用"),
created_time: Optional[list[DateTimeStr]] = Query(None, description="创建时间范围", example=["2025-01-01 00:00:00", "2025-12-31 23:59:59"]),
created_id: Optional[int] = Query(None, description="创建人"),
) -> None:
@@ -154,5 +153,5 @@ class UserQueryParam:
self.status = status
# 时间范围查询
if start_time and end_time:
self.created_time = ("between", (start_time, end_time))
if created_time and len(created_time) == 2:
self.created_time = ("between", (created_time[0], created_time[1]))