Files
chinese-family-tree-2/.kiro/specs/founder-parent-warning/tasks.md
T
freedakgmail 5c8c70097c 0.8.0.0
2025-12-21 17:32:33 +08:00

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
  • 3. Checkpoint - 确保基础组件完成

    • 确保所有测试通过,如有问题请询问用户
  • 4. 集成到成员页面

    • 4.1 修改 app/members/page.tsx 中的 MemberCard 组件
      • 添加警告对话框状态管理
      • 修改 handleAddMember 函数添加第1代检测
      • 集成 GenerationWarningDialog 组件
      • Requirements: 4.1, 4.2, 4.3, 4.4
  • 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
  • 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 已经实现了代数重新计算逻辑