私人助理消息分组 · 概念稿 v7

私人助理 · 消息分组概念稿 v7

2026-09-21。这一版:① 一摞真的叠起来了——分组未选中时也有卡面, 下面的纸边往阴影里退,并且画在选中滑块之下(叠到上面会咬掉那圈绿光); ② 分组上右键(或行尾的「⋯」)可以「本组已读 / 全部已读 / 免扰」; ③ 免扰的组有标记:灰「免扰」标签 + 红 badge 换成灰计数 + 不再计入区头未读。 左栏仍是产品真实 DOM,放在真实的 .fb-glass.l1 层上; 选中框是产品现成的 .fb-cursor,本稿不提议改它,这里的滑动只是近似演示。

关于选中框(先说清楚)

选中态是产品**现成的 .fb-cursor**(useCursor 量激活项、改 transform 滑过去)。 本稿不提议改它的外观和动画——这里只是把列表放进真实的 .fb-glass.l1 容器里,让它照常显示;上一版看不见,是因为我把面板做成了纯白, 而滑块本身是 82% 白,白压白就没了。概念稿里的滑动只是近似演示, 不要照着它去改选中框相关的代码。

一摞怎么画

右键能做的三件事(新增)

在任意一个分组上右键,或点行尾悬停才出现的「⋯」(给不知道能右键的人一条明路), 都是同一个 FbMenu:

免扰长什么样

类别图标怎么定(你问的)

不另立一套。图标名直接取自侧栏那张表(ui/src/composables/navIcons.js), 按会话的 resource_type 映射——同一个东西在侧栏和这儿长一样,用户不用认两遍:

「知道了」和「打开对话」——你问得对,我上一版画错了

  1. 「每日洞察」不该有「知道了」。按钮不是装饰:系统里只有**决策票据**才有动作 (allowed_actions:acknowledge / snooze / reschedule / approve …), 点了会真的改状态——比如库存的「知道了」= 这条警报结案,它就离开列表进「已处理」。 而日报是定时任务的汇报,没有票据,给它一个「知道了」等于让用户点一个什么都不改的按钮。 这一版已经去掉:纯汇报的卡片没有动作按钮,看过即已读。
  2. 「打开对话」的用处是「接着问」。卡片只放助理这一条消息 + 能拍的板; 对话里才有上下文,而且可以让它接着做事——「为什么这三天卖这么快?」 「把补货点改成 40」「顺便看看另外两个店」。所以这一版把它从一个按钮降成一句安静的链接 (「接着问助理 ›」),长内容那张是「在对话里看全文,或接着问 ›」, 不跟真正的决定按钮抢注意力。这一版可以点:点任意一张卡右下角那句, 右栏就变成对话——把这张卡的内容和上下文带过去,下面给几句按类别备好的追问 (「为什么这三天卖得这么快?」「把补货点改成 40」),左上角「‹ 回到 …」退回卡片。 离开卡片不等于处理掉,待办还在左边。

长内容怎么展现

  1. 卡片先给三行;库存断货一句话就完了,日报是一整篇,统一截断信息密度才稳。
  2. 「展开」在卡内看全文,markdown 原样渲染;动作按钮始终在卡底, 展开与否都点得到——决定不该被正文推到屏幕外。
  3. 同一件事的多次提醒收成一条时间线(展开库存第一条能看到前两次)。 这就是今天「库存 · 仓库 · 2 个商品」重复几十条的那件事。
  4. 超长的最多在卡里展 12 行,末尾去对话看全文。 卡片管「扫一眼 + 拍板」,对话管「读全文 + 追问」。

分组的规矩(没变)

  1. 办完的不占位置——512 条里 510 条已经办完,进「已处理」。
  2. 「助理找我的」固定在顶部,不和聊天按时间混排。
  3. 一组处理完整组消失,不留一行「0 件」。
  4. 按 resource_type 分组,不按标题字符串。
  5. 红 badge = 未读条数,行末唯一一个;「N 件」是数量,写在副行。