# Implementation Plan: Role-Based Menu and Project Config ## Overview 本实现计划将角色权限菜单优化和项目配置流程改进分为多个阶段实现: 1. 侧边栏菜单权限优化 2. 外部项目管理页面 3. 项目管理页面优化 4. 选卡式项目配置组件 5. 项目创建向导改进 ## Tasks - [x] 1. 侧边栏菜单权限优化 - [x] 1.1 更新侧边栏菜单配置 - 添加"管理外部来源数据"菜单项 - 设置 adminOnly 属性 - 调整菜单顺序 - _Requirements: 1.1, 1.2, 2.1_ - [x] 1.2 添加路由保护 - 创建 AdminRoute 组件 - 对管理员专属页面添加权限检查 - 未授权时重定向到首页 - _Requirements: 1.4_ - [ ]* 1.3 编写角色菜单过滤属性测试 - **Property 1: 角色菜单过滤正确性** - 验证管理员和标注员看到的菜单项数量 - **Validates: Requirements 1.1, 1.2** - [x] 2. Checkpoint - 确保菜单权限功能完成 - 测试管理员登录后的菜单显示 - 测试标注员登录后的菜单显示 - 验证路由保护正常工作 - [x] 3. 外部项目管理页面 - [x] 3.1 创建外部项目管理页面组件 - 创建 `external-projects-view` 目录和组件 - 实现项目列表展示(仅外部项目) - 显示项目名称、任务类型、任务数量、创建时间、状态 - _Requirements: 2.2, 2.3, 2.4_ - [x] 3.2 实现状态筛选功能 - 添加状态筛选下拉框 - 实现筛选逻辑 - _Requirements: 2.5_ - [x] 3.3 实现操作按钮逻辑 - draft/configuring 状态显示"配置项目"按钮 - ready 状态显示"一键分发"按钮 - 显示标注进度 - _Requirements: 2.6, 2.7, 2.8_ - [x] 3.4 添加路由配置 - 在 App.tsx 中添加 /external-projects 路由 - _Requirements: 2.2_ - [ ]* 3.5 编写项目来源过滤属性测试 - **Property 3: 项目来源过滤正确性** - 验证外部项目页面仅显示外部项目 - **Validates: Requirements 2.3, 3.1** - [x] 4. Checkpoint - 确保外部项目管理页面完成 - 测试外部项目列表显示 - 测试状态筛选功能 - 测试操作按钮显示逻辑 - [x] 5. 项目管理页面优化 - [x] 5.1 修改项目列表过滤逻辑 - 默认仅显示 in_progress 和 completed 状态的项目 - 移除状态筛选器 - 保留来源筛选器 - _Requirements: 3.1, 3.5, 3.6_ - [x] 5.2 添加角色权限控制 - 标注员隐藏创建项目按钮 - 管理员显示创建项目按钮 - _Requirements: 3.7, 3.8_ - [x] 5.3 保留项目来源标签显示 - 确保项目来源标签正常显示 - _Requirements: 3.2_ - [ ]* 5.4 编写角色按钮可见性属性测试 - **Property 5: 角色按钮可见性正确性** - 验证不同角色的按钮显示 - **Validates: Requirements 3.7, 3.8** - [x] 6. Checkpoint - 确保项目管理页面优化完成 - 测试项目列表仅显示进行中和已完成项目 - 测试标注员无法看到创建按钮 - 测试来源筛选功能 - [x] 7. 选卡式项目配置组件 - [x] 7.1 创建任务类型选择器组件 - 创建 `task-type-selector` 组件 - 实现四种任务类型的卡片展示 - 支持选中状态切换 - _Requirements: 4.1, 4.2, 4.3_ - [x] 7.2 创建标签编辑器组件 - 创建 `label-editor` 组件 - 支持添加、删除、编辑标签 - 支持设置标签名称、颜色、快捷键 - 实现标签验证逻辑 - _Requirements: 4.4, 4.5, 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.8, 7.9_ - [x] 7.3 创建颜色选择器组件 - 颜色选择器已集成在 label-editor 组件中 - 提供预设颜色列表 - 支持自定义颜色输入 - _Requirements: 7.5_ - [ ]* 7.4 编写标签编辑器功能属性测试 - **Property 7: 标签编辑器功能正确性** - 验证标签的添加、删除、编辑操作 - **Validates: Requirements 7.1, 7.2, 7.3, 7.8, 7.9, 7.10, 7.11** - [x] 8. XML 配置生成服务 - [x] 8.1 创建 XML 生成器服务 - 创建 `xml-generator.ts` 服务文件 - 实现文本分类 XML 生成 - 实现图像分类 XML 生成 - 实现目标检测 XML 生成 - 实现命名实体识别 XML 生成 - _Requirements: 8.1, 8.2, 8.3, 8.4_ - [x] 8.2 实现标签属性映射 - 将标签配置映射到 XML 属性 - 支持颜色、快捷键属性 - _Requirements: 8.5_ - [ ]* 8.3 编写 XML 生成正确性属性测试 - **Property 6: XML生成正确性** - 验证生成的 XML 包含所有标签 - 验证 XML 格式符合规范 - **Validates: Requirements 4.6, 8.1, 8.2, 8.3, 8.4, 8.5, 8.6, 8.7** - [x] 9. Checkpoint - 确保配置组件完成 - 测试任务类型选择器 - 测试标签编辑器 - 测试 XML 生成器 - [x] 10. 项目配置向导 - [x] 10.1 创建配置向导组件 - 创建 `project-config-wizard` 组件 - 实现步骤指示器 - 实现步骤切换逻辑 - _Requirements: 6.1, 6.2, 6.7_ - [x] 10.2 集成任务类型选择步骤 - 集成 TaskTypeSelector 组件 - 保存选中的任务类型 - _Requirements: 6.3_ - [x] 10.3 集成标签配置步骤 - 集成 LabelEditor 组件 - 实时生成 XML 预览 - _Requirements: 6.4, 6.5_ - [x] 10.4 实现 XML 预览步骤 - 显示生成的 XML 配置 - 提供高级编辑选项 - _Requirements: 4.7, 6.8_ - [x] 11. 更新项目配置页面 - [x] 11.1 重构项目配置页面 - 使用新的配置向导组件 - 支持从现有配置初始化 - 支持向导模式和高级模式切换 - _Requirements: 4.1, 4.8, 4.9_ - [x] 11.2 更新项目创建流程 - 修改 ProjectForm 使用配置向导 - 集成 XML 生成逻辑 - 添加三步骤流程:模板选择 → 项目详情 → 配置标注 - 支持向导模式和高级模式切换 - _Requirements: 6.1, 6.6_ - [x] 12. Checkpoint - 确保配置向导完成 - 测试完整的配置向导流程 - 测试项目创建流程 - 测试项目配置更新流程 - [x] 13. 集成测试和样式优化 - [ ]* 13.1 编写集成测试 - 测试完整的角色权限流程 - 测试外部项目管理流程 - 测试项目配置流程 - _Requirements: 全部_ - [x] 13.2 样式优化 - 确保组件样式一致(统一使用 --theme-* CSS 变量) - 适配深色模式 - 响应式布局优化 - _Requirements: 全部_ - [x] 14. 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 - Unit tests validate specific examples and edge cases