Files
ftb-project-management/docs/specs/2026-06-09-version-module-phase1-design.md
Script Generator a560634091 feat(dev-task): 开发任务模块 V1 完整实现
- 核心库:dev-task.ts(类型+状态机+进度计算)、task-worklog.ts(工时)、task-category.ts(字典)、work-item.ts(聚合契约)
- Store:useDevTaskStore(CRUD+状态流转)、useTaskWorklogStore(工时记录)、useTaskCategoryStore(字典管理)
- UI组件:DevTaskTab、DevTaskCreateModal、DevTaskDetailDrawer、DevTaskRow、WorklogPanel、StatusBadge、CategoryChip
- 集成:版本详情页"开发任务"Tab、"与我相关"工作台开发任务分组、任务类型管理页
- 设计文档:spec + 实施计划

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-11 18:02:07 +08:00

7.7 KiB
Raw Permalink Blame History

title, date, module
title date module
版本模块 Phase 1 设计规格 2026-06-09 versions

版本模块 Phase 1 — 列表增强 + 详情页 + 生命周期

1. 版本生命周期状态机

规划中 → 进行中(各阶段) → 已发布
         ↕                  
       已暂停              已关闭
  • 规划中(planned):已创建但未开始
  • 进行中(developing):有 currentStage 标识具体阶段(调研/产品设计/UI设计/开发/联调/测试)
  • 已暂停(paused):手动暂停,可恢复为进行中
  • 已关闭(closed):手动关闭,终态不可恢复
  • 已发布(released):上线完成,终态

操作:

  • 开始:规划中 → 进行中
  • 暂停:进行中 → 已暂停
  • 恢复:已暂停 → 进行中
  • 关闭:规划中/进行中/已暂停 → 已关闭
  • 发布:进行中 → 已发布

2. 新增字段

版本数据结构扩展

interface VersionItem {
  // 已有
  id: string;
  name: string;
  status: 'planned' | 'developing' | 'paused' | 'closed' | 'released';
  currentStage?: Stage;
  startDate?: string | null;
  expectedReleaseDate?: string | null;  // 截止日期
  releaseDate: string | null;
  createdAt: string;
  members?: VersionMember[];
  progress?: RoleProgress[];

  // 新增
  priority: 'P0' | 'P1' | 'P2' | 'P3' | 'P4';
  riskLevel?: 'low' | 'medium' | 'high';       // 系统自动计算
  delayStatus?: 'normal' | 'warning' | 'delayed'; // 系统自动计算
  links?: {
    research?: string;   // 调研报告地址
    prototype?: string;  // 原型地址
    ui?: string;         // UI 设计稿地址
  };
}

风险等级自动计算规则

  • 低风险(low/绿):一切正常
  • 中风险(medium/橙)
    • 整体进度落后于时间进度 20%+
    • 即将延期(截止日期 - 3天内
    • 版本被暂停
  • 高风险(high/红)
    • 已延期(当前日期 > 截止日期 且未发布/关闭)
    • 整体进度落后于时间进度 40%+

计算公式:

  • 时间进度 = (当前日期 - 开始日期) / (截止日期 - 开始日期) × 100%
  • 整体进度 = 各角色进度百分比的平均值
  • 落后比 = 时间进度 - 整体进度

延期状态自动计算规则

  • 正常(normal/绿):当前日期 < 截止日期 - 3天
  • 即将延期(warning/橙):截止日期 - 3天 ≤ 当前日期 ≤ 截止日期
  • 已延期(delayed/红):当前日期 > 截止日期 且状态不是已发布/已关闭

已发布和已关闭的版本不计算延期状态,统一显示"-"。

优先级

P0(紧急) / P1(高) / P2(中) / P3(低) / P4(最低)

手动设置,默认 P2。列表可按优先级排序。

3. 版本列表页改造

列定义

宽度 说明
版本号 auto 如"考勤V1.2",点击进详情
优先级 60px P0-P4 标签,颜色区分
当前阶段 100px 显示胶囊对应的阶段名,跟项目详情一致
整体进度 120px 进度条 + 百分比
风险等级 70px 颜色点 + 文字(低/中/高)
延期状态 80px 颜色标签(正常/即将延期/已延期)
截止日期 100px YYYY-MM-DD
负责人 auto 紧凑展示:产品:张三 前端:赵六...
操作 80px 下拉菜单(编辑/暂停/恢复/关闭)

筛选条件

  • 搜索:版本号模糊匹配
  • 状态筛选:全部 / 调研 / 产品设计 / UI设计 / 开发 / 联调 / 测试 / 已发布 / 已暂停 / 已关闭 / 规划中
  • 项目筛选:下拉选择
  • 优先级筛选P0-P4 多选
  • 风险等级筛选:低/中/高

排序

默认按优先级降序 > 创建时间倒序。可点击表头切换排序。

4. 版本详情页 /versions/[id]

页面结构

┌─────────────────────────────────────────────────────┐
│ Header: ← 版本  /  考勤V1.2    [编辑] [暂停] [关闭]│
├─────────────────────────────────────────────────────┤
│ 标签行: P1标签  风险:中  即将延期  产品:翻台宝      │
├─────────────────────────────────────────────────────┤
│ 胶囊分段条CapsuleStages 组件复用)                 │
├─────────────────────────────────────────────────────┤
│ 信息网格 (3列)                                       │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐             │
│ │开始日期   │ │截止日期   │ │已耗时     │             │
│ │2024-04-15│ │2024-06-10│ │34天      │             │
│ └──────────┘ └──────────┘ └──────────┘             │
│                                                     │
│ 负责人区域                                           │
│ 产品:张三  UI:王五  前端:赵六  后端:孙八  测试:周九  │
│                                                     │
│ 外链区域                                             │
│ 📄 调研报告  🎨 原型地址  🖼 UI设计稿               │
├─────────────────────────────────────────────────────┤
│ 下半部分Phase 2 占位)                             │
│ ┌─────────────────────────────────────────────────┐ │
│ │ Tabs: 需求 | 开发任务 | 测试用例 | Bug           │ │
│ │                                                 │ │
│ │        功能开发中,敬请期待                        │ │
│ └─────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────┘

上半部分详细说明

  • Header:面包屑导航 + 版本名 + 操作按钮组
  • 标签行:优先级(P0-P4) + 风险等级(颜色点) + 延期状态(标签) + 所属产品/项目
  • 胶囊分段条:复用 CapsuleStages 组件,展示各阶段进度和耗时
  • 信息网格:开始日期、截止日期、已耗时天数
  • 负责人:复用 MemberChips 组件
  • 外链:调研报告/原型/UI 设计稿链接,点击新窗口打开,无链接显示"未设置"

下半部分Phase 2 占位)

Tab 栏显示:需求 / 开发任务 / 测试用例 / Bug

Phase 1 内容为空占位:"功能开发中"

5. 项目详情页同步调整

项目详情页的版本记录卡片同步增加优先级标签显示。

6. 新建版本弹窗扩展

在现有字段基础上增加:

  • 优先级选择(默认 P2
  • 截止日期选择(日期选择器)
  • 负责人选择(按角色分组,后续可从历史推荐)

7. 涉及文件变更

文件 变更
apps/web/lib/stage.ts 无变更
apps/web/lib/version-status.ts 新增 paused/closed 状态
apps/web/stores/useProductStore.ts VersionItem 扩展字段MOCK数据补充
apps/web/app/versions/page.tsx 列表页重构
apps/web/app/versions/[id]/page.tsx 新增详情页
apps/web/app/projects/[id]/page.tsx 版本卡片加优先级
apps/web/lib/risk.ts 新增:风险等级和延期状态计算函数