组件 · Agent
PlanPreview
计划预览:Agent 排好的一整套计划,按任务树列出来,让人一眼看清它排了什么、谁做、先后顺序。用在 Agent 建完计划后的通知详情、项目首页,以及 Agent 动态里点开的那一批。
调用方提供:title(计划或项目名)、items、可选的 source(谁排的,显示完整 SourceBadge,sourceLabel 如「由 Claude 创建」)、summary(如「9 个任务 · 6 个依赖 · 11月10日 截止」)。items 按显示顺序排好,父任务在子任务前面,每项有 id、title、depth(顶层是 0)、done、due(已按语言格式化)、assignees、dependsOn(要先完成的任务的 id)。底部的链接(如「打开项目」)放在 children 里,Flutter 是 actions。
结构
- 标题行:计划名、来源标记,下面一行灰色摘要。
- 任务行:状态圆点、标题(最多两行)、截止日期、指派头像。子任务每深一级缩进 20px,竖线对齐父任务的圆点。
- 依赖箭头:画在左侧的槽里,从前置任务出发,箭头指向等它的任务。跨度短的箭头离任务近;首尾相接的依赖(A→C、C→D)共用一条线。最多 4 条车道(
maxLanes),放不下的依赖和指向列表外任务的依赖不画箭头,在标题后面显示relation图标加个数。 - 读屏:每行读作一条,包含标题、「已完成」和「依赖:A、B」(
dependsOnLabel可以本地化)。
窄屏和大字号:截止日期和头像放不下时换到标题下一行,箭头槽跟着整行变高。从右往左时箭头槽在右边,箭头朝左。
规则:Agent 的计划直接生效,这里没有「接受」「确认」按钮;要撤销整批,用 AgentActivity 的撤销。箭头用灰色,不用紫色,紫色只用来标明来源。不要在预览里编辑任务,点任务跳到任务详情。
Flutter:BiPlanPreview(title:, items: [BiPlanItem(...)], source:, sourceLabel:, summary:, actions:);箭头的车道由 BiPlanLayout.of(items) 算出,和 npm 包的 planLanes(items) 结果一致。