甘特图视图

甘特图视图以时间线方式展示任务的起止时间和依赖关系,帮助你直观把握项目进度、识别关键路径和发现时间冲突。

进入甘特图视图

启动 Web 界面后,点击顶部导航栏的「甘特图」标签,即可进入甘特图视图。首次进入时,系统会自动解析所有任务的日期数据并渲染时间线。

页面布局

甘特图视图采用左右双栏布局:

  • 左侧任务列表:固定宽度的表格,展示任务 ID、标题、时间列和操作按钮
  • 右侧时间线区域:动态渲染的任务条和依赖箭头,顶部有时间轴刻度

左右两栏的滚动事件双向同步,上下滚动时始终保持对齐。

时间粒度切换

时间线顶部提供五级粒度切换按钮:

粒度 适用场景 特点
日 查看近期密集的开发任务安排 单天多任务水平错位显示,避免重叠
周 迭代进度回顾 适合 Sprint 或周会场景
月 月度项目回顾 平衡细节与全景
季度 中长期项目概览 大跨度时间窗口
年 年度项目大局 最宏观视角

切换粒度时,任务条的位置和宽度会自动重新计算,确保在当前尺度下清晰可见。

任务时间解析

甘特图不依赖任务必须填写计划日期。系统按以下规则自动解析每条任务的有效起止时间:

开始时间

  1. 若任务填写了 plannedStart → 优先使用计划开始时间
  2. 若无计划开始时间 → 使用任务创建日期(createdDate 的日期部分)

结束时间

  1. 若任务填写了 plannedEnd → 优先使用计划结束时间
  2. 若无计划结束时间但有 updatedDate → 使用更新日期的日期部分
  3. 若仅有创建日期 → 启用最小宽度回退

提示:想让任务在甘特图上显示精确的时间范围,请在任务编辑页面的「计划日期」字段填写 plannedStart 和 plannedEnd。

最小宽度回退

对于只有创建时间、没有计划日期的任务,系统会赋予一个最小视觉宽度,防止它们在时间线上压缩成不可见的细线:

  • 日视图:最小约 4 小时的视觉宽度,同天的多个任务会自动水平错位,避免完全重叠
  • 周/月视图:最小 1 天的宽度
  • 季度/年视图:固定 8 像素的色块宽度,确保在宏观视角下仍然可见

这些任务在左侧列表中以 * 标记,悬停时会提示「回退渲染」。

任务条交互

悬停查看详情

将鼠标悬停在任意任务条上,会弹出提示框显示:

  • 任务 ID 和标题
  • 解析后的开始时间和结束时间
  • 是否为回退渲染(仅有创建时间的任务)

点击高亮依赖链

点击任务条后,该任务的整个依赖链会被高亮:

  • 前驱任务(该任务依赖谁)和后继任务(谁依赖该任务)保持正常亮度
  • 其他无关任务和箭头淡化至 30% 透明度
  • 再次点击任务条或点击空白处取消高亮

这在复杂项目中快速定位上下游影响范围时非常有用。

打开任务详情

  • 点击左侧列表的「详情」按钮:打开熟悉的任务编辑模态框,可修改任务字段、日期和依赖关系
  • 点击右侧任务条:高亮依赖链(如上所述)

依赖箭头

任务之间的依赖关系通过 SVG 贝塞尔曲线箭头可视化:

  • 箭头从前驱任务的结束位置指向后继任务的开始位置
  • 多个依赖自动错位,减少线条缠绕
  • 箭头会随时间粒度切换自适应缩放
  • 依赖箭头同样参与「点击高亮」交互

注意:甘特图视图目前只展示依赖关系的可视化,不支持拖拽调整任务时间。修改任务日期请通过左侧「详情」按钮进入任务编辑页面。

列表排序

左侧任务列表的前四列(ID、标题、开始时间、结束时间)支持点击排序:

  • 每列表头右侧显示双箭头图标(↑/↓)
  • 未激活时为灰色,升序时左箭头高亮,降序时右箭头高亮
  • 点击切换升序/降序,点击其他列则按新列排序
  • 三种状态外框宽度一致,切换时不引起表头抖动

排序后,右侧甘特条会按新的任务顺序重新布局,但时间位置保持不变。

时间线平移

在时间线区域按住鼠标左右拖拽,即可平移时间轴查看更多日期:

  • 向左拖拽查看更早的时间
  • 向右拖拽查看更晚的时间
  • 平移操作平滑流畅,无页面刷新

暗黑模式支持

甘特图视图完全适配暗黑模式:

  • 任务条、时间轴刻度、依赖箭头均使用 Tailwind CSS dark: 变体
  • 悬停提示框、高亮状态在暗色背景下依然清晰可辨
  • 切换系统主题或手动切换后无需刷新页面

跟踪甘特图

跟踪甘特图在同一行上同时展示计划时间范围和实际任务进度,帮助你直观追踪偏差。

双层渲染

每个任务行绘制两个独立定位的元素,z 轴叠加:

  • 底层实际条:状态色实心填充
    • In Progress → 蓝色
    • Done / Completed → 绿色
    • To Do → 灰色
    • Blocked → 红色
    • Cancelled → 浅灰色
  • 上层计划边框:60° 斜线填充框(两层边框:2px 阴影层 + 1px 最终线)

偏差场景

偏差场景 条件 视觉表现
早开始 actualStart < plannedStart 实际条从计划框左侧提前开始;左侧溢出为纯色
正常 actualStart = plannedStart,actualEnd ≤ plannedEnd 实际条在框内延伸;重叠区颜色+斜线,未到达尾部纯斜线
延期 actualEnd > plannedEnd 实际条超出计划框右侧;右侧溢出为纯色

左侧时间列

工具栏提供 showPlanTime 和 showActualTime 开关:

  • Actual Start / Actual End:始终显示实际时间,按 actualStart → actualEnd → createdDate/updatedDate 优先级解析
  • Planned Start / Planned End:计划时间列,仅在 showPlanTime 开启时显示

智能依赖箭头

跟踪模式下,依赖箭头的连接点综合考虑实际时间与计划时间:

  • 若实际开始早于计划开始,箭头连接到更早的实际位置
  • 若实际结束早于计划开始(罕见),回退到计划结束以保持依赖链连贯
  • 箭头颜色统一使用灰色,避免与状态色实际条冲突

交互增强

  • 悬停 Tooltip:同时展示计划时间范围、实际时间范围和 fallback 指示器
  • 图例:工具栏显示图例说明 — 状态色条=实际、斜线框=计划、箭头=依赖、琥珀色 *=估计时间
  • 点击高亮:计划边框层一同参与高亮/淡化
  • 默认排序 ID 降序,默认视图日视图
  • 加载自动选中首个任务,切换视图自动滚动到选中任务

日期字段建议

为了让甘特图发挥最大价值,建议为关键任务填写计划日期:

字段 作用 填写建议
plannedStart 任务计划开始时间 任务预计启动日期
plannedEnd 任务计划结束时间 任务预计完成日期
dueDate 任务截止日期 与 plannedEnd 区分:截止日期是硬性约束,计划结束是预期完成时间
actualStart 实际开始时间 系统自动填充,可手动修正
actualEnd 实际结束时间 系统自动填充,可手动修正

在任务编辑页面的「计划日期」区域可直接填写这些字段。填写后,甘特图会自动使用更精确的时间范围,不再依赖创建日期的回退渲染。

results matching ""

    No results matching ""