私人助理 · 消息分组概念稿 v7
2026-09-21。这一版:① 一摞真的叠起来了——分组未选中时也有卡面,
下面的纸边往阴影里退,并且画在选中滑块之下(叠到上面会咬掉那圈绿光);
② 分组上右键(或行尾的「⋯」)可以「本组已读 / 全部已读 / 免扰」;
③ 免扰的组有标记:灰「免扰」标签 + 红 badge 换成灰计数 + 不再计入区头未读。
左栏仍是产品真实 DOM,放在真实的 .fb-glass.l1 层上;
选中框是产品现成的 .fb-cursor,本稿不提议改它,这里的滑动只是近似演示。
关于选中框(先说清楚)
选中态是产品**现成的 .fb-cursor**(useCursor 量激活项、改 transform 滑过去)。
本稿不提议改它的外观和动画——这里只是把列表放进真实的
.fb-glass.l1 容器里,让它照常显示;上一版看不见,是因为我把面板做成了纯白,
而滑块本身是 82% 白,白压白就没了。概念稿里的滑动只是近似演示,
不要照着它去改选中框相关的代码。
一摞怎么画
- 分组是一张卡,普通对话还是一行。要叠得起来,最上面得先有张卡——
所以分组行没被选中时也有卡面(比选中滑块淡一档),而「我和助理」那几条仍是透明的行。
这本身就是第二重区分:一眼能看出上面一块是「助理找我的」,下面是我自己的对话。
- 只有多条待办才叠。1 件 = 单张卡;2–4 件 = 底下透出一条纸边;5 件以上 = 两条,越下越窄。
纸边往阴影里退(越下越暗),厚度就是这么来的——三层同色会糊成一张更高的卡,我上一版就是这么错的。
鼠标移上去整摞再厚一点。
- 纸边一定画在选中滑块下面。叠到上面会把选中框那圈绿光咬掉一截(上一版的样子)。
层序:卡面 → 纸边 → 滑块 → 文字。
- 不再加整块灰底。分组靠「一摞」和折叠箭头就够了,再加一层底色只会把左栏切碎。
- 这一区能收起来。点「助理找我的」那行收起;收起时标题右边留一个红 badge
告诉你里面还有几条未读,不至于收了就忘。
右键能做的三件事(新增)
在任意一个分组上右键,或点行尾悬停才出现的「⋯」(给不知道能右键的人一条明路),
都是同一个 FbMenu:
- 本组标为已读 —— 把这一类里的未读清掉,红点消失。
只动「读没读」,不动「办没办」:事情还在列表里,不会被当成已处理归档。
没有未读时这一项是灰的。
- 全部标为已读 —— 对「助理找我的」全部四类一起做,菜单上直接写清共多少条。
- 本组免扰 / 取消免扰 —— 这一类以后不再提醒,也不算进「助理找我的」那个未读数。
新消息照收,数还照给——只是 badge 从红色换成灰色的计数,不喊你而已。
适合「每日洞察」这种要留档、不需要被叫醒的。
免扰长什么样
- 行里多一个灰色的 免扰 小标签(
.fb-tag.mute),标题降一档到 --fb-ink-3,
图标淡一点——安静,但不是残废。
- 红 badge 换成灰色计数 badge(
.fb-badge.count,标准里本来就有这一档):
数字还在,告诉你有几条新的,只是不再喊你。
- 区头「助理找我的」的未读数和那颗绿点不算免扰组——否则免扰就白设了。
也就是说:免扰 = 不提醒 + 不进汇总,不是 = 不计数。
- 这三样都是产品现成的类,没有为免扰新造颜色。
类别图标怎么定(你问的)
不另立一套。图标名直接取自侧栏那张表(ui/src/composables/navIcons.js),
按会话的 resource_type 映射——同一个东西在侧栏和这儿长一样,用户不用认两遍:
meeting → calendar(和「日历」板块同一个)
inventory_alert → archive(和「库存管理」同一个)
project → projects、data_alert → alert、
product_approval → package(分别和「项目」「数据告警」「产品」同一个)
- 定时任务的日报 →
chart。新增类别时在这张表里挑一个没人用过的名字
(侧栏图标不能撞,撞了两个入口就分不清)。
「知道了」和「打开对话」——你问得对,我上一版画错了
- 「每日洞察」不该有「知道了」。按钮不是装饰:系统里只有**决策票据**才有动作
(
allowed_actions:acknowledge / snooze / reschedule / approve …),
点了会真的改状态——比如库存的「知道了」= 这条警报结案,它就离开列表进「已处理」。
而日报是定时任务的汇报,没有票据,给它一个「知道了」等于让用户点一个什么都不改的按钮。
这一版已经去掉:纯汇报的卡片没有动作按钮,看过即已读。
- 「打开对话」的用处是「接着问」。卡片只放助理这一条消息 + 能拍的板;
对话里才有上下文,而且可以让它接着做事——「为什么这三天卖这么快?」
「把补货点改成 40」「顺便看看另外两个店」。所以这一版把它从一个按钮降成一句安静的链接
(「接着问助理 ›」),长内容那张是「在对话里看全文,或接着问 ›」,
不跟真正的决定按钮抢注意力。这一版可以点:点任意一张卡右下角那句,
右栏就变成对话——把这张卡的内容和上下文带过去,下面给几句按类别备好的追问
(「为什么这三天卖得这么快?」「把补货点改成 40」),左上角「‹ 回到 …」退回卡片。
离开卡片不等于处理掉,待办还在左边。
长内容怎么展现
- 卡片先给三行;库存断货一句话就完了,日报是一整篇,统一截断信息密度才稳。
- 「展开」在卡内看全文,markdown 原样渲染;动作按钮始终在卡底,
展开与否都点得到——决定不该被正文推到屏幕外。
- 同一件事的多次提醒收成一条时间线(展开库存第一条能看到前两次)。
这就是今天「库存 · 仓库 · 2 个商品」重复几十条的那件事。
- 超长的最多在卡里展 12 行,末尾去对话看全文。
卡片管「扫一眼 + 拍板」,对话管「读全文 + 追问」。
分组的规矩(没变)
- 办完的不占位置——512 条里 510 条已经办完,进「已处理」。
- 「助理找我的」固定在顶部,不和聊天按时间混排。
- 一组处理完整组消失,不留一行「0 件」。
- 按
resource_type 分组,不按标题字符串。
- 红 badge = 未读条数,行末唯一一个;「N 件」是数量,写在副行。