mirror of
https://github.com/fastapiadmin/FastapiAdmin.git
synced 2026-09-20 20:39:55 +00:00
feat: 统一状态字段为字符串类型并标准化状态显示
refactor: 将状态字段从布尔值改为字符串类型'0'和'1' fix: 修复前端组件中状态显示和判断逻辑 docs: 更新相关字段描述为'0:启用 1:禁用' style: 统一时间查询字段为created_time和created_id
This commit is contained in:
@@ -14,7 +14,7 @@ class ApplicationCreateSchema(BaseModel):
|
||||
name: str = Field(..., max_length=64, description='应用名称')
|
||||
access_url: str = Field(..., max_length=255, description="访问地址")
|
||||
icon_url: Optional[str] = Field(None, max_length=300, description="应用图标URL")
|
||||
status: str = Field(True, description="是否启用(True:启用 False:禁用)")
|
||||
status: str = Field(True, description="是否启用(0:启用 1:禁用)")
|
||||
description: Optional[str] = Field(default=None, max_length=255, description="描述")
|
||||
|
||||
@field_validator('access_url')
|
||||
|
||||
@@ -11,7 +11,7 @@ from app.core.base_schema import BaseSchema, UserBySchema, TenantSchema, Custome
|
||||
class DemoCreateSchema(BaseModel):
|
||||
"""新增模型"""
|
||||
name: str = Field(..., min_length=2, max_length=50, description='名称')
|
||||
status: str = Field(default="0", description="是否启用(True:启用 False:禁用)")
|
||||
status: str = Field(default="0", description="是否启用(0:启用 1:禁用)")
|
||||
description: Optional[str] = Field(default=None, max_length=255, description="描述")
|
||||
|
||||
@field_validator('name')
|
||||
|
||||
@@ -187,7 +187,7 @@ class DemoService:
|
||||
data = obj_list.copy()
|
||||
for item in data:
|
||||
# 处理状态
|
||||
item['status'] = '正常' if item.get('status') else '停用'
|
||||
item['status'] = '启用' if item.get('status') == '0' else '停用'
|
||||
# 处理创建者
|
||||
creator_info = item.get('created_id')
|
||||
if isinstance(creator_info, dict):
|
||||
|
||||
@@ -113,7 +113,7 @@ class {{ class_name }}Service:
|
||||
for item in data:
|
||||
# 状态转换
|
||||
if 'status' in item:
|
||||
item['status'] = '正常' if item.get('status') else '停用'
|
||||
item['status'] = '启用' if item.get('status') == '0' else '停用'
|
||||
# 创建者转换
|
||||
creator_info = item.get('creator')
|
||||
if isinstance(creator_info, dict):
|
||||
|
||||
@@ -12,7 +12,7 @@ class CustomerCreateSchema(BaseModel):
|
||||
"""新增模型"""
|
||||
name: str = Field(..., max_length=64, description='客户名称')
|
||||
code: Optional[str] = Field(default=None, max_length=20, description='客户编码')
|
||||
status: str = Field(default="0", description="是否启用(True:启用 False:禁用)")
|
||||
status: str = Field(default="0", description="是否启用(0:启用 1:禁用)")
|
||||
description: Optional[str] = Field(default=None, max_length=255, description="描述")
|
||||
|
||||
@field_validator('name')
|
||||
|
||||
@@ -193,7 +193,7 @@ class CustomerService:
|
||||
data = obj_list.copy()
|
||||
for item in data:
|
||||
# 处理状态
|
||||
item['status'] = '正常' if item.get('status') else '停用'
|
||||
item['status'] = '启用' if item.get('status') == '0' else '停用'
|
||||
# 处理创建者
|
||||
creator_info = item.get('creator')
|
||||
if isinstance(creator_info, dict):
|
||||
|
||||
@@ -17,7 +17,7 @@ class DeptCreateSchema(BaseModel):
|
||||
phone: Optional[str] = Field(default=None, max_length=11, description="手机")
|
||||
email: Optional[str] = Field(default=None, max_length=64, description="邮箱")
|
||||
parent_id: Optional[int] = Field(default=None, ge=0, description="父部门ID")
|
||||
status: str = Field(default="0", description="是否启用(True:启用 False:禁用)")
|
||||
status: str = Field(default="0", description="是否启用(0:启用 1:禁用)")
|
||||
description: Optional[str] = Field(default=None, max_length=255, description="备注说明")
|
||||
|
||||
@field_validator('name')
|
||||
|
||||
@@ -236,7 +236,7 @@ class DictTypeService:
|
||||
data = data_list.copy()
|
||||
for item in data:
|
||||
# 处理状态
|
||||
item['status'] = '正常' if item.get('status') else '停用'
|
||||
item['status'] = '启用' if item.get('status') == '0' else '停用'
|
||||
item['creator'] = item.get('creator', {}).get('name', '未知') if isinstance(item.get('creator'), dict) else '未知'
|
||||
|
||||
return ExcelUtil.export_list2excel(list_data=data, mapping_dict=mapping_dict)
|
||||
@@ -568,7 +568,7 @@ class DictDataService:
|
||||
data = data_list.copy()
|
||||
for item in data:
|
||||
# 处理状态
|
||||
item['status'] = '正常' if item.get('status') else '停用'
|
||||
item['status'] = '启用' if item.get('status') == '0' else '停用'
|
||||
# 处理是否默认
|
||||
item['is_default'] = '是' if item.get('is_default') else '否'
|
||||
item['creator'] = item.get('creator', {}).get('name', '未知') if isinstance(item.get('creator'), dict) else '未知'
|
||||
|
||||
@@ -27,7 +27,7 @@ class MenuCreateSchema(BaseModel):
|
||||
params: Optional[list[dict[str, str]]] = Field(default=None, description="路由参数,格式为[{key: string, value: string}]")
|
||||
affix: bool = Field(default=False, description="是否固定标签页(True:是 False:否)")
|
||||
parent_id: Optional[int] = Field(default=None, ge=1, description="父菜单ID")
|
||||
status: str = Field(default="0", description="是否启用(True:启用 False:禁用)")
|
||||
status: str = Field(default="0", description="是否启用(0:启用 1:禁用)")
|
||||
description: Optional[str] = Field(default=None, max_length=255, description="描述")
|
||||
|
||||
@model_validator(mode='before')
|
||||
|
||||
@@ -14,7 +14,7 @@ class NoticeCreateSchema(BaseModel):
|
||||
notice_title: str = Field(..., max_length=50, description='公告标题')
|
||||
notice_type: str = Field(..., description='公告类型(1通知 2公告)')
|
||||
notice_content: str = Field(..., description='公告内容')
|
||||
status: str = Field(default="0", description="是否启用(True:启用 False:禁用)")
|
||||
status: str = Field(default="0", description="是否启用(0:启用 1:禁用)")
|
||||
description: Optional[str] = Field(default=None, max_length=255, description="描述")
|
||||
|
||||
@field_validator("notice_type")
|
||||
|
||||
@@ -175,7 +175,7 @@ class NoticeService:
|
||||
data = notice_list.copy()
|
||||
for item in data:
|
||||
# 处理状态
|
||||
item['status'] = '正常' if item.get('status') else '停用'
|
||||
item['status'] = '启用' if item.get('status') == '0' else '停用'
|
||||
# 处理公告类型
|
||||
item['notice_type'] = '通知' if item.get('notice_type') == '1' else '公告'
|
||||
item['creator'] = item.get('creator', {}).get('name', '未知') if isinstance(item.get('creator'), dict) else '未知'
|
||||
|
||||
@@ -12,7 +12,7 @@ class PositionCreateSchema(BaseModel):
|
||||
"""岗位创建模型"""
|
||||
name: str = Field(..., max_length=40, description="岗位名称")
|
||||
order: Optional[int] = Field(default=1, ge=1, description='显示排序')
|
||||
status: str = Field(default="0", description="是否启用(True:启用 False:禁用)")
|
||||
status: str = Field(default="0", description="是否启用(0:启用 1:禁用)")
|
||||
description: Optional[str] = Field(default=None, max_length=255, description="描述")
|
||||
|
||||
@field_validator('name')
|
||||
|
||||
@@ -150,7 +150,7 @@ class PositionService:
|
||||
# 复制数据并转换状态
|
||||
data = position_list.copy()
|
||||
for item in data:
|
||||
item['status'] = '正常' if item.get('status') else '停用'
|
||||
item['status'] = '启用' if item.get('status') == '0' else '停用'
|
||||
item['creator'] = item.get('creator', {}).get('name', '未知') if isinstance(item.get('creator'), dict) else '未知'
|
||||
|
||||
return ExcelUtil.export_list2excel(list_data=data, mapping_dict=mapping_dict)
|
||||
@@ -189,7 +189,7 @@ class RoleService:
|
||||
# 处理数据
|
||||
data = role_list.copy()
|
||||
for item in data:
|
||||
item['status'] = '正常' if item.get('status') else '停用'
|
||||
item['status'] = '启用' if item.get('status') == '0' else '停用'
|
||||
item['data_scope'] = data_scope_map.get(item.get('data_scope', 1), '')
|
||||
item['creator'] = item.get('creator', {}).get('name', '未知') if isinstance(item.get('creator'), dict) else '未知'
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ class TenantCreateSchema(BaseModel):
|
||||
"""新增模型"""
|
||||
name: str = Field(..., max_length=64, description='租户名称')
|
||||
code: Optional[str] = Field(default=None, max_length=20, description='租户编码')
|
||||
status: str = Field(default="0", description="是否启用(True:启用 False:禁用)")
|
||||
status: str = Field(default="0", description="是否启用(0:启用 1:禁用)")
|
||||
description: Optional[str] = Field(default=None, max_length=255, description="描述")
|
||||
start_time: Optional[DateTimeStr] = Field(default=None, description="开始时间")
|
||||
end_time: Optional[DateTimeStr] = Field(default=None, description="结束时间")
|
||||
|
||||
@@ -270,7 +270,7 @@ class TenantService:
|
||||
item['name'] = f"{item.get('name')} [系统租户]"
|
||||
|
||||
# 处理状态
|
||||
item['status'] = '正常' if item.get('status') else '停用'
|
||||
item['status'] = '启用' if item.get('status') == '0' else '停用'
|
||||
|
||||
# 处理创建者
|
||||
creator_info = item.get('created_id')
|
||||
|
||||
@@ -283,15 +283,14 @@ class UserService:
|
||||
raise CustomException(msg="用户不存在")
|
||||
user = await UserCRUD(auth).get_by_id_crud(id=auth.user.id)
|
||||
# 获取部门名称
|
||||
if user and user.dept_id:
|
||||
dept = await DeptCRUD(auth).get_by_id_crud(id=user.dept_id)
|
||||
UserOutSchema.dept_name = dept.name if dept else None
|
||||
if user and user.dept:
|
||||
UserOutSchema.dept_name = user.dept.name
|
||||
user_dict = UserOutSchema.model_validate(user).model_dump()
|
||||
|
||||
# 获取菜单权限
|
||||
if auth.user and auth.user.is_superuser:
|
||||
# 使用树形结构查询,预加载children关系
|
||||
menu_all = await MenuCRUD(auth).get_tree_list_crud(search={'type': ('in', [1, 2, 4]), 'status': True}, order_by=[{"order": "asc"}])
|
||||
menu_all = await MenuCRUD(auth).get_tree_list_crud(search={'type': ('in', [1, 2, 4]), 'status': '0'}, order_by=[{"order": "asc"}])
|
||||
menus = [MenuOutSchema.model_validate(menu).model_dump() for menu in menu_all]
|
||||
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user