89b1d2e5f5
## 主要改进 ### 1. 删除策略优化(从级联删除改为阻止删除) - ✅ **安全优先**:采用阻止删除策略而非级联删除 - ✅ 删除前检查子分组,如有则拒绝删除 - ✅ 删除前检查关联评查点,如有则拒绝删除 - ✅ 只有空分组才能被删除 ### 2. 详细的删除检查 - ✅ ID有效性验证 - ✅ 分组存在性验证 - ✅ 子分组检查(仅一级分组) - ✅ 评查点关联检查(所有分组) - ✅ 返回详细的检查结果(childCount, pointCount) ### 3. 友好的错误提示 - ✅ 明确提示存在多少个子分组 - ✅ 明确提示存在多少个评查点 - ✅ 建议用户先清理关联数据 - ✅ 区分不同类型的删除失败原因 ### 4. 标记废弃函数 - ✅ deleteChildGroup 标记为 @deprecated - ✅ deleteEvaluationPointsByGroupId 标记为 @deprecated - ✅ 保留代码以备将来批量删除功能使用 ## 删除策略对比 ### 旧策略(级联删除)- 高风险 ❌ 删除一级分组时自动删除所有子分组 ❌ 自动删除所有关联的评查点 ❌ 用户可能误删大量数据 ❌ 无法恢复 ### 新策略(阻止删除)- 安全 ✅ 拒绝删除有子分组的一级分组 ✅ 拒绝删除有评查点的分组 ✅ 用户必须手动清理关联数据 ✅ 防止误删除 ✅ 提供清晰的错误提示 ## 返回值增强 ```typescript { success: boolean; error?: string; details?: { hasChildren: boolean; // 是否有子分组 hasPoints: boolean; // 是否有评查点 childCount?: number; // 子分组数量 pointCount?: number; // 评查点数量 } } ``` ## 相关文件 - app/api/evaluation_points/rule-groups.ts ## 验收清单 - [x] TypeScript 类型检查通过 - [x] 删除前完整的关联检查 - [x] 阻止删除有依赖的分组 - [x] 详细的错误提示 - [x] 返回详细的检查结果 Co-Authored-By: Claude <noreply@anthropic.com>