Jelajahi Sumber

fix: 修复残疾人企业查询路由 400 错误 - 路由顺序问题

问题描述:
- 请求 /findPersonsWithCompany 返回 400 错误
- 错误信息:Invalid input: expected number, received NaN for field 'id'

原因分析:
- disabledPersonCrudRoutes 创建了 /{id} 参数化路由
- personCompanyRoutes 的 /findPersonsWithCompany 具体路由放在后面
- Hono 路由器先匹配到 /{id},把 findPersonsWithCompany 当作 id 参数
- z.coerce.number() 验证 'findPersonsWithCompany' 字符串得到 NaN

修复方案:
- 将 personCompanyRoutes 移到 disabledPersonCrudRoutes 之前
- 确保具体路由优先于参数化路由匹配

测试验证:
- 页面加载正常(830 条记录)
- 性别筛选正常
- 残疾类别筛选正常
- 残疾等级筛选正常
- 市区筛选正常
- 残疾证号精确查询正常
- 重置按钮正常
- 分页功能正常

Co-Authored-By: Claude <noreply@anthropic.com>
yourname 1 hari lalu
induk
melakukan
2fc928f778

+ 3 - 2
allin-packages/disability-module/src/routes/disabled-person.routes.ts

@@ -6,11 +6,12 @@ import aggregatedRoutes from './aggregated.routes';
 import personCompanyRoutes from './person-company.routes';
 
 // 创建路由实例 - 聚合自定义路由、CRUD路由、聚合路由和残疾人企业查询路由
+// 注意:具体路由(如 findPersonsWithCompany)必须在参数化路由(如 /{id})之前定义
 const disabledPersonRoutes = new OpenAPIHono<AuthContext>()
   .route('/', disabledPersonCustomRoutes)
-  .route('/', disabledPersonCrudRoutes)
+  .route('/', personCompanyRoutes)
   .route('/', aggregatedRoutes)
-  .route('/', personCompanyRoutes);
+  .route('/', disabledPersonCrudRoutes);
 
 export { disabledPersonRoutes };
 export default disabledPersonRoutes;