Просмотр исходного кода

♻️ refactor(role-permissions): 重构角色权限查询接口

- 客户端:将roleId查询参数改为使用filters JSON字符串格式
- 服务器:移除/by-role自定义路由,统一使用标准查询接口
- 优化前后端数据交互格式,提高API一致性
yourname 8 месяцев назад
Родитель
Сommit
bf7ccd4ab9
2 измененных файлов с 2 добавлено и 50 удалено
  1. 2 2
      src/client/admin/pages/Roles.tsx
  2. 0 48
      src/server/api/role-permissions/index.ts

+ 2 - 2
src/client/admin/pages/Roles.tsx

@@ -52,7 +52,7 @@ const useRolePermissions = (roleId: number | null) => {
     queryFn: async () => {
       if (!roleId) return [];
       const response = await rolePermissionClient.$get({
-        query: { roleId: roleId as any }
+        query: { filters: JSON.stringify({ roleId }) }
       });
       if (!response.ok) throw new Error('获取角色权限失败');
       const data = await response.json();
@@ -179,7 +179,7 @@ const useRolePermissionCount = (roleId: number) => {
     queryKey: ['role-permission-count', roleId],
     queryFn: async () => {
       const response = await rolePermissionClient.$get({
-        query: { roleId }
+        query: { filters: JSON.stringify({ roleId }) }
       });
       if (!response.ok) throw new Error('获取权限数量失败');
       const data = await response.json();

+ 0 - 48
src/server/api/role-permissions/index.ts

@@ -61,36 +61,6 @@ const batchUpdateRoute = createRoute({
   }
 });
 
-// 添加自定义查询路由 - 根据角色ID获取权限
-const listByRoleRoute = createRoute({
-  method: 'get',
-  path: '/by-role',
-  middleware: [authMiddleware],
-  request: {
-    query: z.object({
-      roleId: z.coerce.number().openapi({
-        description: '角色ID',
-        example: 1
-      })
-    })
-  },
-  responses: {
-    200: {
-      description: '成功获取角色权限列表',
-      content: {
-        'application/json': {
-          schema: z.object({
-            data: z.array(RolePermissionSchema)
-          })
-        }
-      }
-    },
-    500: {
-      description: '服务器错误',
-      content: { 'application/json': { schema: ErrorSchema } }
-    }
-  }
-});
 
 // 注册自定义路由
 const app = new OpenAPIHono<AuthContext>()
@@ -123,23 +93,5 @@ const app = new OpenAPIHono<AuthContext>()
       }, 500);
     }
   })
-  .openapi(listByRoleRoute, async (c) => {
-    try {
-      const { roleId } = c.req.valid('query');
-      const repository = AppDataSource.getRepository(RolePermission);
-      
-      const permissions = await repository.find({
-        where: { roleId },
-        relations: ['permission']
-      });
-      
-      return c.json({ data: permissions }, 200);
-    } catch (error) {
-      return c.json({
-        code: 500,
-        message: error instanceof Error ? error.message : '获取权限列表失败'
-      }, 500);
-    }
-  });
 
 export default app;