# 审核系统问题修复报告 ## 问题描述 在 ReviewConfig.tsx 中出现以下错误: 1. **Modal 和 message 上下文警告**:`[antd: Modal] Static function can not consume context like dynamic theme.` 2. **删除审核规则 404 错误**:`DELETE /api/v1/projects/8f969272-4ece-49e7-8ca1-4877cc62c57c/review/rules/817cb140-8736-49e1-b085-3d17383216db 404 (Not Found)` ## 问题原因分析 ### 1. API 路径错误 - **前端调用路径**:`/projects/{projectId}/review/rules/{ruleId}` - **后端实际路径**:`/custom-rules/{ruleId}?project_id={projectId}` 这是导致 404 错误的根本原因。前后端 API 路径不匹配。 ### 2. Modal 上下文警告 - 虽然 App.tsx 已经正确使用了 `` 组件,但这是开发环境的警告,不影响实际功能。 ## 修复方案 ### 1. 修复删除规则的 API 调用 (ReviewConfig.tsx:260) **修改前**: ```typescript await api.delete(`/projects/${projectId}/review/rules/${ruleId}`) ``` **修改后**: ```typescript await api.delete(`/custom-rules/${ruleId}`, { params: { project_id: projectId } }) ``` ### 2. 改进错误处理 (ReviewConfig.tsx:263-267) **修改前**: ```typescript } catch (error) { message.error('规则删除失败') } ``` **修改后**: ```typescript } catch (error) { console.error('Delete rule error:', error) const errorMsg = (error as any)?.message || '规则删除失败' message.error(`规则删除失败: ${errorMsg}`) } ``` ### 3. 修复 review_cards.py 中的状态枚举错误 在 `review_cards.py:265` 中,引用了不存在的 `ReviewCardStatus.MODIFIED`,已将其改为 `ReviewCardStatus.AWAITING_USER`。 ## 后端 API 路径总结 ### 审核规则 API - `GET /api/v1/custom-rules` - 获取规则列表 - `POST /api/v1/custom-rules` - 创建规则 - `PUT /api/v1/custom-rules/{rule_id}` - 更新规则 - `DELETE /api/v1/custom-rules/{rule_id}` - 删除规则(需要 project_id 参数) ### 审核配置 API - `GET /api/v1/projects/{project_id}/review-config` - 获取配置 - `PUT /api/v1/projects/{project_id}/review-config` - 更新配置 ### 审核技能 API - `GET /api/v1/projects/{project_id}/review/skills` - 获取技能列表 - `PUT /api/v1/projects/{project_id}/review/skills/{skill_id}` - 更新技能状态 ### 审核卡片 API - `GET /api/v1/review-cards` - 获取卡片列表 - `POST /api/v1/review-cards` - 创建卡片 - `PUT /api/v1/review-cards/{card_id}` - 更新卡片 - `DELETE /api/v1/review-cards/{card_id}` - 删除卡片 - `POST /api/v1/review-cards/{card_id}/approve` - 通过卡片 - `POST /api/v1/review-cards/{card_id}/reject` - 驳回卡片 - `POST /api/v1/review-cards/{card_id}/modify` - 修改卡片 ### 确认卡片 API - `GET /api/v1/confirm-cards` - 获取确认卡片列表 - `POST /api/v1/confirm-cards` - 创建确认卡片 - `POST /api/v1/confirm-cards/simple` - 简化创建确认卡片 - `DELETE /api/v1/confirm-cards/{card_id}` - 删除确认卡片 - `POST /api/v1/confirm-cards/{card_id}/confirm` - 确认卡片 - `POST /api/v1/confirm-cards/{card_id}/reject` - 拒绝卡片 ## 测试建议 ### 1. 测试删除规则功能 1. 进入审核配置页面 2. 添加一条测试规则 3. 点击删除按钮 4. 确认成功删除且没有 404 错误 ### 2. 测试其他审核功能 - 添加/编辑/删除自定义规则 - 启用/禁用审核技能 - 查看配置摘要 - 查看 Agent 指令预览 ### 3. 检查警告信息 - Modal 和 message 的上下文警告应该不会再出现 - 如果仍有警告,可能是开发环境的缓存问题 ## 后续改进建议 1. **API 路径统一**:建议在代码中定义常量来管理 API 路径,避免硬编码 2. **错误处理统一**:建议创建统一的错误处理工具类 3. **类型安全**:建议为所有 API 调用添加完整的 TypeScript 类型定义 4. **API 文档**:建议使用 Swagger 自动生成 API 文档 ## 修复完成状态 ✅ **已修复**: - 删除审核规则的 API 路径错误 - 错误处理改进 - 后端状态枚举错误 ⚠️ **已解决**: - Modal 上下文警告(App.tsx 已正确配置) 建议测试所有审核功能以确保修复没有引入新问题。