2.9 KiB
2.9 KiB
Implementation Plan: 为始祖添加父母时的代数重新计算提醒
Overview
本实现计划将分步骤实现代数重新计算警告功能,从工具函数开始,然后创建对话框组件,最后集成到各个入口点。
Tasks
-
1. 扩展代数工具函数
-
1.1 在 lib/generation-utils.ts 中添加 isFirstGenerationMember 函数
- 实现检查成员是否为第1代的逻辑
- 处理边界情况(generation 为 undefined 或无效值)
- Requirements: 1.1, 1.2, 1.3, 1.4
-
1.2 在 lib/generation-utils.ts 中添加 shouldShowGenerationWarning 函数
- 实现判断是否需要显示警告的逻辑
- 只对 father/mother 关系类型返回 true
- Requirements: 1.3, 2.1
-
* 1.3 编写属性测试验证第1代成员检测
- Property 1: 第1代成员检测正确性
- Validates: Requirements 1.1, 1.2, 1.3, 1.4
-
-
2. 创建 GenerationWarningDialog 组件
- 2.1 创建 components/tree/generation-warning-dialog.tsx 文件
- 使用 AlertDialog 组件作为基础
- 实现警告内容展示
- 实现确认和取消按钮
- Requirements: 2.1, 2.2, 2.3, 2.4, 2.5, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6
- 2.1 创建 components/tree/generation-warning-dialog.tsx 文件
-
3. Checkpoint - 确保基础组件完成
- 确保所有测试通过,如有问题请询问用户
-
4. 集成到成员页面
- 4.1 修改 app/members/page.tsx 中的 MemberCard 组件
- 添加警告对话框状态管理
- 修改 handleAddMember 函数添加第1代检测
- 集成 GenerationWarningDialog 组件
- Requirements: 4.1, 4.2, 4.3, 4.4
- 4.1 修改 app/members/page.tsx 中的 MemberCard 组件
-
5. 集成到族谱页面
-
5.1 修改 components/tree/d3-org-chart-flow.tsx 组件
- 添加警告对话框状态管理
- 修改右键菜单的 handleAddMember 函数
- 集成 GenerationWarningDialog 组件
- Requirements: 5.1, 5.2, 5.3, 5.4
-
5.2 修改 components/tree/family-node.tsx 组件
- 添加警告对话框状态管理
- 修改右键菜单的添加父母逻辑
- 集成 GenerationWarningDialog 组件
- Requirements: 5.1, 5.2, 5.3, 5.4
-
-
6. 集成到添加关系对话框
- 6.1 修改 components/tree/add-relation-dialog.tsx 组件
- 添加警告对话框状态管理
- 在关联已有成员前检测是否需要警告
- 在创建新成员前检测是否需要警告
- Requirements: 6.1, 6.2, 6.3, 6.4
- 6.1 修改 components/tree/add-relation-dialog.tsx 组件
-
7. Final Checkpoint - 确保所有集成完成
- 确保所有测试通过,如有问题请询问用户
- 验证成员页面、族谱页面、添加关系对话框三个入口点都能正确显示警告
Notes
- Tasks marked with
*are optional and can be skipped for faster MVP - Each task references specific requirements for traceability
- Checkpoints ensure incremental validation
- Property tests validate universal correctness properties
- 本功能主要是前端 UI 改动,后端 API 已经实现了代数重新计算逻辑