Ready for Development
As a 系统管理员 I want 增强的用户搜索和高级过滤功能 so that 我可以快速找到和管理特定条件的用户,提高用户管理效率
getUsersWithPagination自定义方法基于通用CRUD路由分析 [Source: src/server/utils/generic-crud.routes.ts],使用标准filters参数:
// 通用CRUD过滤参数格式
interface FilterParams {
page: number;
pageSize: number;
keyword?: string;
filters?: string; // JSON字符串格式的过滤条件
}
// 过滤条件示例:
const filters = {
isDisabled: 0, // 启用状态用户
'roles.id': [1, 2], // 特定角色ID
createdAt: { // 时间范围
gte: '2024-01-01',
lte: '2024-12-31'
}
};
架构: 采用通用CRUD路由 + 自定义路由混合模式
文件结构调整:
src/server/api/users/index.ts - 混合路由配置src/server/api/users/custom.ts - 自定义业务路由getUsersWithPagination 方法(功能由通用CRUD替代)配置示例:
// 通用CRUD路由配置
const userCrudRoutes = createCrudRoutes({
entity: User,
searchFields: ['username', 'nickname', 'phone', 'email'],
relations: ['roles'],
middleware: [authMiddleware],
readOnly: true // 创建/更新使用自定义路由
});
组件位置: src/client/admin/pages/Users.tsx
API调用示例:
// 查询启用状态的admin角色用户
const filters = JSON.stringify({
isDisabled: 0,
'roles.id': [1] // admin角色ID
});
const response = await userClient.$get({
query: { page: 1, pageSize: 10, filters }
});
后端测试:
前端测试:
| Date | Version | Description | Author |
|---|---|---|---|
| 2025-09-15 | 1.0 | 初始故事创建 | Bob (Scrum Master) |