统计页面

统计页面提供项目级任务数据概览,帮助快速掌握项目整体进度与需要关注的任务。

进入统计页面

启动 Web 界面后,点击顶部导航栏的「统计」标签,即可进入统计页面。

页面结构

统计页面分为四个主要区域:

贡献热力图

页面最顶部展示 GitHub 风格的贡献热力图,直观呈现过去一年每天完成的任务数量。

贡献热力图卡片右上角提供已完成语料开关:默认统计仅含活跃任务(backlog/tasks/),开启后样本扩大到 backlog/completed/ 中的历史完成记录,状态同步到页面 URL(completed=1)。平均完成耗时等顶部指标随同一开关联动切换语料。

  • 网格布局:7 行(周日到周六)× 53 列(周),与 GitHub 贡献图布局一致
  • 颜色强度:5 个级别,从浅到深表示当日完成任务数量
    • Level 0(无任务):接近背景色的浅灰
    • Level 1(1~2 个任务):浅绿
    • Level 2(3~5 个任务):中绿
    • Level 3(6~9 个任务):深绿
    • Level 4(10+ 个任务):最深绿
  • 暗色模式:自动切换为暗色主题的绿色渐变色板
  • 月份标签:顶部显示缩写月份名,根据当前语言本地化
  • 星期标签:左侧显示周日、周二、周四的缩写(隔行显示以节省空间)

交互

  • 悬停:鼠标悬停在任意格子上,显示浮动提示框,包含具体日期(YYYY-MM-DD 格式)和当日完成的任务数量
  • 点击:点击格子后提示框保持固定,直到点击页面其他区域或再次点击该格子
  • 标题:显示过去一年完成的任务总数,如「过去一年完成 143 个任务」,根据语言自动 pluralization

状态概览

页面顶部展示项目基本统计:

  • 总任务数:项目中的任务总数
  • 完成百分比:Done 状态任务占比
  • 草稿数:当前草稿数量
  • 任务平均耗时:顶部指标行的第五张卡片,显示规范终态任务的平均完成耗时(分钟)与样本量;跨度定义与甘特图 Actual Start / Actual End 完全一致(actualStart → createdDate → now 的 fallback 链),完成只认规范终态——Done 计入样本,Dropped 这类放弃终态不算完成
  • 各状态分布:To Do / In Progress / Done 等每个状态的任务数量

平均耗时强烈右偏(多数任务几分钟完成、少数拖数周),因此卡片在均值旁同时显示样本量,避免单一均值误导判断。

优先级分布

以可视化方式展示任务在各优先级上的分布情况:

  • High — 高优先级任务数量
  • Medium — 中优先级任务数量
  • Low — 低优先级任务数量
  • None — 未设置优先级的任务数量

项目健康度

项目健康度区域是统计页面的核心,展示四类需要特别关注的任务:

分类 颜色 判定条件
临期(At Risk) 🟡 琥珀色 非 Done 任务,有截止日期,今天或明天截止
逾期(Overdue) 🔴 红色 非 Done 任务,截止日期已过
停滞(Stale) 🔵 蓝色 非 Done 任务,无截止日期,超过 30 天未更新
阻塞(Blocked) 🔴 红色 依赖未完成的任务

页面头部以彩色圆点 + 计数的形式水平展示四类健康指标。点击或悬停可查看各类别的具体任务列表。

健康任务卡片

每个健康分类下方列出匹配的任务卡片:

  • 临期 / 逾期卡片:显示任务标题和截止日期(Due by)
  • 停滞卡片:显示任务标题和更新日期
  • 阻塞卡片:显示任务标题和依赖状态

所有卡片均可点击,点击后跳转至任务编辑页面。

悬停提示

将鼠标悬停在健康指标圆点上,会显示该类别的中文说明:

  • 临期:「即将截止,需立即处理」
  • 逾期:「已过截止日期」
  • 停滞:「超过 30 天未更新、无明确截止日期」

数据自动刷新

统计页面支持实时数据同步:

  • 服务端缓存:后端维护统计缓存,500ms 延迟刷新。当通过 CLI、backlog 命令或其他方式创建/修改任务时,统计页面会自动检测到变化并在约 1 秒内更新显示
  • 客户端缓存:页面使用 localStorage 缓存上次加载的统计结果,重新打开页面时先展示缓存数据,后台静默拉取最新数据,实现瞬时加载
  • WebSocket 推送:服务端通过 "statistics-updated" 事件主动推送更新,无需手动刷新页面

最近活动

统计页面底部展示最近的项目动态:

  • 最近创建:最近 7 天内新建的任务列表
  • 最近更新:最近 7 天内修改过的任务列表

若任务从未被编辑过,其创建日期会作为「最近更新」的 fallback 显示,确保新建任务不会被遗漏。

results matching ""

    No results matching ""