统计页面
统计页面提供项目级任务数据概览,帮助快速掌握项目整体进度与需要关注的任务。
进入统计页面
启动 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 显示,确保新建任务不会被遗漏。