tasks.md 4.1 KB

Implementation Plan: Project Management Enhancement

Overview

本实现计划将项目管理增强功能分解为可执行的编码任务,包括项目完成状态管理、数据导出对话框和相关的后端 API 端点。

Tasks

  • [x] 1. 后端 API - 项目状态更新端点

    • 1.1 在 routers/project.py 中添加 PATCH 端点更新项目状态
    • 验证项目完成率是否为 100%
    • 验证用户是否为管理员
    • 更新项目状态为 "completed"
    • 记录完成时间戳
    • Requirements: 5.1, 5.2, 5.3, 5.4, 5.5
    • 1.2 在 schemas/project.py 中添加 ProjectStatusUpdate schema
    • 定义状态更新请求模型
    • Requirements: 5.1
  • [x] 2. 后端 API - 导出端点集成

    • 2.1 在 routers/project.py 中添加 POST 端点启动导出
    • 接收导出格式参数
    • 调用现有的导出服务
    • 返回导出任务 ID 和状态
    • Requirements: 6.1, 6.2
    • 2.2 在 routers/project.py 中添加 GET 端点检查导出状态
    • 返回导出进度和状态
    • 返回下载 URL(如果完成)
    • Requirements: 6.3, 6.4
  • [x] 3. Checkpoint - 验证后端 API

    • 确保所有测试通过,如有问题请询问用户
  • [-] 4. 前端 - 项目完成对话框组件

    • 4.1 创建 ProjectCompletionDialog 组件
    • 显示项目名称和完成状态
    • 取消和确认按钮
    • 处理状态更新 API 调用
    • 显示加载和错误状态
    • Requirements: 2.2, 2.3
    • 4.2 在 ProjectDetailModal 中集成 ProjectCompletionDialog
    • 添加"标记为已完成"按钮
    • 根据完成率控制按钮可见性
    • 处理完成后的刷新
    • Requirements: 1.1, 1.2, 2.1
  • [-] 5. 前端 - 数据导出对话框组件

    • 5.1 创建 DataExportDialog 组件
    • 左侧导出格式下拉菜单
    • 格式选项:JSON、CSV、COCO、YOLO
    • 格式描述显示
    • 导出按钮和加载状态
    • 进度指示器
    • 成功/错误消息
    • Requirements: 4.1, 4.2, 4.3, 4.4, 4.5, 4.6
    • 5.2 在 DataExportDialog 中实现导出逻辑
    • 调用后端导出 API
    • 轮询导出状态
    • 处理下载链接
    • 错误处理
    • Requirements: 3.1, 3.2, 3.3, 3.4, 3.5
    • 5.3 在 ProjectDetailModal 中集成 DataExportDialog
    • 添加"导出数据"按钮
    • 打开导出对话框
    • 处理导出完成后的刷新
    • Requirements: 2.1, 2.3, 2.4, 2.5
  • [x] 6. 前端 - 更新 ProjectDetailModal

    • 6.1 在 ProjectDetailModal 中添加操作按钮区域
    • 添加"标记为已完成"按钮(条件显示)
    • 添加"导出数据"按钮
    • 按钮样式和布局
    • Requirements: 2.1, 2.2, 2.3
    • 6.2 更新 ProjectDetailModal 状态管理
    • 添加完成对话框状态
    • 添加导出对话框状态
    • 处理对话框打开/关闭
    • Requirements: 2.1
  • [x] 7. 前端 - 集成和测试

    • 7.1 集成所有组件
    • 确保按钮正确显示
    • 确保对话框正确打开/关闭
    • 确保 API 调用正确
    • Requirements: 2.1, 2.2, 2.3, 2.4, 2.5
    • [ ]* 7.2 编写单元测试
    • 测试按钮可见性逻辑
    • 测试对话框行为
    • 测试 API 调用
    • Requirements: 1.2, 2.2, 3.1
    • [ ]* 7.3 编写集成测试
    • 测试完整的完成工作流
    • 测试完整的导出工作流
    • Requirements: 1.1, 3.1
  • [ ] 8. 后端 - 属性测试

    • [ ]* 8.1 编写项目完成状态属性测试
    • 验证状态更新只在 100% 完成时成功
    • 验证状态持久化
    • Requirements: 1.1, 1.3
    • [ ]* 8.2 编写导出格式验证属性测试
    • 验证只接受有效格式
    • 验证错误处理
    • Requirements: 3.1, 6.1
    • [ ]* 8.3 编写授权检查属性测试
    • 验证只有管理员可以更新状态
    • 验证非管理员获得 403 错误
    • Requirements: 5.5, 6.1
  • [ ] 9. Final Checkpoint

    • 确保所有测试通过,如有问题请询问用户

Notes

  • 任务按依赖顺序排列,先完成后端 API,再实现前端组件
  • 导出功能复用现有的导出服务和 API
  • 所有代码遵循项目现有的编码规范
  • 前端组件应使用 TypeScript 和 React Hooks
  • 后端 API 应遵循 FastAPI 最佳实践