mirror of
https://github.com/fastapiadmin/FastapiAdmin.git
synced 2026-09-21 04:46:26 +00:00
开源准备
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from typing import Optional
|
||||
from fastapi import Query
|
||||
from datetime import datetime
|
||||
|
||||
from app.core.validator import DateTimeStr
|
||||
|
||||
|
||||
class OnlineQueryParams:
|
||||
"""在线用户查询参数"""
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
user_name: Optional[str] = Query(None, description="登录名称"),
|
||||
ipaddr: Optional[str] = Query(None, description="登陆IP地址"),
|
||||
login_location: Optional[str] = Query(None, description="登录所属地"),
|
||||
) -> None:
|
||||
super().__init__()
|
||||
|
||||
# 模糊查询字段
|
||||
self.user_name = ("like", f"%{user_name}%") if user_name else None
|
||||
self.login_location = ("like", f"%{login_location}%") if login_location else None
|
||||
|
||||
# 精确查询字段
|
||||
self.ipaddr = ("eq", ipaddr) if ipaddr else None
|
||||
@@ -0,0 +1,33 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from typing import Optional
|
||||
from fastapi import Query
|
||||
from datetime import datetime
|
||||
|
||||
from app.core.validator import DateTimeStr
|
||||
|
||||
class DeptQueryParams:
|
||||
"""部门管理查询参数"""
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
name: Optional[str] = Query(None, description="部门名称", min_length=2, max_length=50),
|
||||
available: Optional[bool] = Query(None, description="部门状态(True正常 False停用)"),
|
||||
creator: Optional[str] = Query(None, description="创建者"),
|
||||
start_time: Optional[DateTimeStr] = Query(None, description="开始时间", example="2023-01-01 00:00:00"),
|
||||
end_time: Optional[DateTimeStr] = Query(None, description="结束时间", example="2023-12-31 23:59:59"),
|
||||
) -> None:
|
||||
super().__init__()
|
||||
|
||||
# 模糊查询字段
|
||||
self.name = ("like", f"%{name}%") if name else None
|
||||
self.creator = ("like", f"%{creator}%") if creator else None
|
||||
|
||||
# 精确查询字段
|
||||
self.available = ("eq", available) if available is not None else None
|
||||
|
||||
# 时间范围查询
|
||||
if start_time and end_time:
|
||||
start_datetime = datetime.strptime(str(start_time), '%Y-%m-%d %H:%M:%S')
|
||||
end_datetime = datetime.strptime(str(end_time), '%Y-%m-%d %H:%M:%S')
|
||||
self.created_at = ("between", (start_datetime, end_datetime))
|
||||
@@ -0,0 +1,31 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from typing import Optional, Literal
|
||||
from fastapi import Query
|
||||
|
||||
|
||||
class MenuQueryParams:
|
||||
"""菜单管理查询参数"""
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
name: Optional[str] = Query(None, description="菜单名称", min_length=2, max_length=50),
|
||||
route_path: Optional[str] = Query(None, description="路由地址", min_length=1, max_length=200),
|
||||
component_path: Optional[str] = Query(None, description="组件路径", min_length=1, max_length=200),
|
||||
type: Optional[Literal['M', 'C', 'F']] = Query(None, description="菜单类型(M目录 C菜单 F按钮)"),
|
||||
permission: Optional[str] = Query(None, description="权限标识", min_length=1, max_length=100),
|
||||
available: Optional[bool] = Query(None, description="菜单状态(True正常 False停用)"),
|
||||
creator: Optional[str] = Query(None, description="创建者"),
|
||||
) -> None:
|
||||
super().__init__()
|
||||
|
||||
# 模糊查询字段
|
||||
self.name = ("like", f"%{name}%") if name else None
|
||||
self.route_path = ("like", f"%{route_path}%") if route_path else None
|
||||
self.component_path = ("like", f"%{component_path}%") if component_path else None
|
||||
self.permission = ("like", f"%{permission}%") if permission else None
|
||||
self.creator = ("like", f"%{creator}%") if creator else None
|
||||
|
||||
# 精确查询字段
|
||||
self.type = ("eq", type) if type else None
|
||||
self.available = ("eq", available) if available is not None else None
|
||||
@@ -0,0 +1,21 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from typing import Optional
|
||||
from fastapi import Query
|
||||
|
||||
class NoticeQueryParams:
|
||||
"""字典管理查询参数"""
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
notice_title: Optional[str] = Query(None, description="公告标题", min_length=2, max_length=20),
|
||||
available: Optional[bool] = Query(None, description="是否可用"),
|
||||
) -> None:
|
||||
super().__init__()
|
||||
|
||||
# 模糊查询字段
|
||||
self.notice_title = ("like", f"%{notice_title}%") if notice_title else None
|
||||
|
||||
# 精确查询字段
|
||||
self.available = ("eq", available) if available is not None else None
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from typing import Optional
|
||||
from fastapi import Query
|
||||
from datetime import datetime
|
||||
|
||||
from app.core.validator import DateTimeStr
|
||||
|
||||
class OperationLogQueryParams:
|
||||
"""操作日志查询参数"""
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
request_path: Optional[str] = Query(None, description="请求路径"),
|
||||
request_method: Optional[str] = Query(None, description="请求方法"),
|
||||
request_ip: Optional[str] = Query(None, description="请求IP"),
|
||||
response_code: Optional[int] = Query(None, description="响应状态码"),
|
||||
creator: Optional[int] = Query(None, description="创建人"),
|
||||
start_time: Optional[DateTimeStr] = Query(None, description="开始时间", example="2023-01-01 00:00:00"),
|
||||
end_time: Optional[DateTimeStr] = Query(None, description="结束时间", example="2023-12-31 23:59:59"),
|
||||
) -> None:
|
||||
super().__init__()
|
||||
|
||||
# 模糊查询字段
|
||||
self.request_path = ("like", f"%{request_path}%") if request_path else None
|
||||
self.creator_id = creator
|
||||
|
||||
# 精确查询字段
|
||||
self.request_method = ("eq", request_method) if request_method else None
|
||||
self.request_ip = ("eq", request_ip) if request_ip else None
|
||||
self.response_code = ("eq", response_code) if response_code else None
|
||||
|
||||
# 时间范围查询
|
||||
if start_time and end_time:
|
||||
start_datetime = datetime.strptime(str(start_time), '%Y-%m-%d %H:%M:%S')
|
||||
end_datetime = datetime.strptime(str(end_time), '%Y-%m-%d %H:%M:%S')
|
||||
self.created_at = ("between", (start_datetime, end_datetime))
|
||||
@@ -0,0 +1,25 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from typing import Optional
|
||||
from fastapi import Query
|
||||
|
||||
class PositionQueryParams:
|
||||
"""岗位管理查询参数"""
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
name: Optional[str] = Query(None, description="岗位名称", min_length=2, max_length=20),
|
||||
available: Optional[bool] = Query(None, description="是否可用"),
|
||||
start_time: Optional[str] = Query(None, description="开始时间", example="2023-01-01 00:00:00"),
|
||||
end_time: Optional[str] = Query(None, description="结束时间", example="2023-12-31 23:59:59"),
|
||||
) -> None:
|
||||
super().__init__()
|
||||
|
||||
# 模糊查询字段
|
||||
self.name = ("like", f"%{name}%") if name else None
|
||||
|
||||
# 精确查询字段
|
||||
self.available = ("eq", available) if available is not None else None
|
||||
|
||||
# 时间范围查询
|
||||
self.created_at = ("between", [start_time, end_time]) if start_time and end_time else None
|
||||
@@ -0,0 +1,26 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from typing import Optional
|
||||
from fastapi import Query
|
||||
|
||||
|
||||
class RoleQueryParams:
|
||||
"""角色管理查询参数"""
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
name: Optional[str] = Query(None, description="角色名称", min_length=2, max_length=20),
|
||||
available: Optional[bool] = Query(None, description="是否可用"),
|
||||
start_time: Optional[str] = Query(None, description="开始时间", example="2023-01-01 00:00:00"),
|
||||
end_time: Optional[str] = Query(None, description="结束时间", example="2023-12-31 23:59:59"),
|
||||
) -> None:
|
||||
super().__init__()
|
||||
|
||||
# 模糊查询字段
|
||||
self.name = ("like", f"%{name}%") if name else None
|
||||
|
||||
# 精确查询字段
|
||||
self.available = ("eq", available) if available is not None else None
|
||||
|
||||
# 时间范围查询
|
||||
self.created_at = ("between", [start_time, end_time]) if start_time and end_time else None
|
||||
@@ -0,0 +1,33 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from typing import Optional
|
||||
from fastapi import Query
|
||||
|
||||
|
||||
|
||||
class UserQueryParams:
|
||||
"""用户管理查询参数"""
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
username: Optional[str] = Query(None, description="用户名", min_length=2, max_length=20),
|
||||
name: Optional[str] = Query(None, description="名称", min_length=2, max_length=20),
|
||||
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-.]+$'),
|
||||
available: Optional[bool] = Query(None, description="是否可用"),
|
||||
start_time: Optional[str] = Query(None, description="开始时间", example="2023-01-01 00:00:00"),
|
||||
end_time: Optional[str] = Query(None, description="结束时间", example="2023-12-31 23:59:59"),
|
||||
) -> None:
|
||||
super().__init__()
|
||||
|
||||
# 模糊查询字段
|
||||
self.username = ("like", f"%{username}%") if username else None
|
||||
self.name = ("like", f"%{name}%") if name else None
|
||||
self.mobile = ("like", f"%{mobile}%") if mobile else None
|
||||
self.email = ("like", f"%{email}%") if email else None
|
||||
|
||||
# 精确查询字段
|
||||
self.available = ("eq", available) if available is not None else None
|
||||
|
||||
# 时间范围查询
|
||||
self.created_at = ("between", [start_time, end_time]) if start_time and end_time else None
|
||||
Reference in New Issue
Block a user