feat: BossAi v2.0 UI/UX 重构 + 看板断点续接 + 多轮上下文
CI / 后端测试 (push) Has been cancelled
CI / 前端构建 (push) Has been cancelled

- 新增 web2/ 前端:任务卡看板、风险雷达、决策日志、我的团队、快捷指令
- ChatPanel 增强:风险卡置顶、案卡接入、起诉状向导、语音输入
- 事项看板:点击查看详情弹窗、断点续接(恢复历史对话+matterId)
- 保密模式恢复:密码验证后重建内存 session,保留多轮上下文
- 多轮对话:ask/ask-stream/ask-analyze 注入 session 历史,AI 有上下文
- 追问优化:紧扣用户问题,不再偏离主题(社保问社保,工伤问工伤)
- 对话区可滚动,输入区固定可见
- 状态机放宽:允许从任意非终态转到 pending_expert
- session 存活检查端点,后端重启后自动重建 session
- DB migration:风险推送表、案卡表

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
selfrelease
2026-08-31 08:38:33 +08:00
co-authored by Devin
parent 7a788bf8dc
commit 4de36547cd
88 changed files with 15237 additions and 62 deletions
+294
View File
@@ -0,0 +1,294 @@
# BossAi 产品需求文档(PRD)
- **版本**:v2.0(UIUX 重构)
- **状态**:待确认
- **日期**:2026-08-30
- **关联**:ADR-001 前端技术栈、ADR-002 UIUX 范式转变、CHG-20260830-001 UIUX 重构
---
## 1. 产品定位
**一句话**:BossAi 是面向中国中小企业老板的"经营智囊",把 AI 法务参谋、经营决策、生活助理、情绪支持整合为以"事项"为中心的主动式助手。
**定位转变**(v1.0 → v2.0):
| 维度 | v1.0(现状) | v2.0(本次重构) |
|---|---|---|
| 产品形态 | AI 对话工具 | 经营智囊(任务卡片优先) |
| 交互范式 | 老板主动问 | AI 主动推送 + 老板主动问 |
| 信息组织 | 按场景分页 | 按"我的事项"聚合,场景为标签 |
| 画像作用 | 存着、只读 | 驱动个性化指令与推送 |
| 专家关系 | 目录式 | "我的团队"关系视图 |
| 移动端 | 桌面缩放 | 原生移动体验(底部 Tab + FAB) |
---
## 2. 目标用户
### 2.1 主用户:中小企业老板(user 角色)
- **画像**:25-55 岁,时间碎片化,手机为主,30 秒内要拿到要点
- **行业**:餐饮、零售、制造、服务业为主
- **规模**:微型(<10人) ~ 中型(<200人)
- **痛点**:
- 不懂法律术语,怕说错话
- 同时挂着好几件事(合同、用工、税务、决策)
- 想要"结论+行动",不是"探讨"
- 决策做完就忘,没有复盘
- 信任专家但要"我的人",不是"找陌生人"
### 2.2 次用户:专家(expert 角色)、管理员(admin 角色)
本次重构**不改变** expert/admin 的核心功能,仅做视觉规范对齐(Admin 警示色、ADMIN 徽章)。
---
## 3. 核心场景(SCENE)
| 编号 | 场景 | 用户故事 | 优先级 |
|---|---|---|---|
| SCENE-001 | 老板台 | "我打开应用,一眼看到今天要关注的事,不用到处找" | P0 |
| SCENE-002 | 案卡看板 | "我同时处理 3 件事,每件到哪一步了,一目了然" | P0 |
| SCENE-003 | 快捷指令 | "我不懂法律,但我点一下就能问'用工合规',AI 帮我组织问题" | P0 |
| SCENE-004 | 我的团队 | "我咨询过的专家自动成为'我的人',下次直接找他" | P1 |
| SCENE-005 | 风险雷达 | "AI 主动提醒我行业新规和合同风险,不用我自己查" | P1 |
| SCENE-006 | 决策日志 | "我上个月做了哪些决策,结果如何,能复盘" | P2 |
| SCENE-007 | 法务咨询 | "我问合同问题,AI 追问关键事实,给我风险卡和起诉状" | P0(保留优化) |
| SCENE-008 | 经营决策 | "我纠结要不要扩张,AI 帮我算账给建议" | P0(保留优化) |
| SCENE-009 | 生活助理 | "我私人问题也能问,保密模式" | P1(保留) |
| SCENE-010 | 情绪中心 | "我压力大,有人陪我聊聊,阅后即焚" | P1(保留) |
---
## 4. 信息架构(v2.0)
### 4.1 桌面端导航
```
总览
└─ 老板台(/) ← 重构 Dashboard
我的事项
└─ 事项看板(/matters) ← 新增
智囊
├─ 法务参谋(/legal) ← 保留,接入案卡
├─ 经营决策(/decisions) ← 保留,接入案卡
├─ 生活助理(/life) ← 保留
└─ 情绪中心(/emotion) ← 保留
我的资源
├─ 我的团队(/team) ← 重构 Experts
├─ 决策日志(/decisions-log)← 新增
├─ 知识库(/knowledge) ← 保留
├─ 对话历史(/history) ← 保留
└─ 我的画像(/profile) ← 保留
系统
└─ 设置(/settings) ← 保留
```
### 4.2 移动端导航(底部 4 Tab + FAB)
```
底部 Tab:
🏠 老板台(/)
📋 事项(/matters)
👥 团队(/team)
👤 我(/me) ← 聚合 profile/settings/history
FAB(+):全局浮动按钮 → 快捷指令面板(底部抽屉)
```
**移动端"我"页**:聚合 我的画像 / 对话历史 / 设置 / 知识库 入口,解决移动端导航深度问题。
---
## 5. 功能清单(PRD-FUNC)
### 5.1 阶段一(P0,2 周)
| 编号 | 功能 | 描述 | 关联场景 |
|---|---|---|---|
| PRD-FUNC-001 | 老板台 | 替代 Dashboard,展示"今日要事":高风险提醒、待确认事项、专家回复、经营健康度 | SCENE-001 |
| PRD-FUNC-002 | 事项看板 | 案卡看板视图,按状态分列(待补充事实/待确认/分析中/待专家/已闭环),支持断点续接 | SCENE-002 |
| PRD-FUNC-003 | 案卡状态机 | 会话绑定案卡,状态:新建→待补充事实→待确认→分析中→待专家(可选)→已闭环 | SCENE-002 |
| PRD-FUNC-004 | 案卡续接 | 点击案卡进入对应 ChatPanel,恢复会话上下文 | SCENE-002 |
| PRD-FUNC-005 | ChatPanel 接入案卡 | 新建咨询自动创建案卡,状态随会话推进自动流转 | SCENE-007/008 |
| PRD-FUNC-006 | 移动端底部 Tab | 重构移动端导航为底部 4 Tab + FAB | SCENE-001 |
### 5.2 阶段二(P1,2 周)
| 编号 | 功能 | 描述 | 关联场景 |
|---|---|---|---|
| PRD-FUNC-007 | 快捷指令面板 | FAB 触发底部抽屉,画像驱动的指令网格 + 语音/文字输入 | SCENE-003 |
| PRD-FUNC-008 | 画像驱动指令 | 根据行业/规模生成个性化指令(餐饮→用工合规、食安风险) | SCENE-003 |
| PRD-FUNC-009 | 指令预填模板 | 点击指令预填问题模板,老板补充关键细节即可 | SCENE-003 |
| PRD-FUNC-010 | 我的团队 | 重构 Experts 为关系视图:咨询过的专家自动入队,显示关系深度 | SCENE-004 |
| PRD-FUNC-011 | 团队一键咨询 | 从"我的团队"发起咨询,自动带上历史上下文 | SCENE-004 |
| PRD-FUNC-012 | 语音输入 | 快捷指令面板支持语音输入(Web Speech API) | SCENE-003 |
### 5.3 阶段三(P1-P2,2 周)
| 编号 | 功能 | 描述 | 关联场景 |
|---|---|---|---|
| PRD-FUNC-013 | 风险雷达 | 后端定时扫描知识库新规+画像匹配,推送到老板台 | SCENE-005 |
| PRD-FUNC-014 | 风险分级推送 | 红(立即)/橙(本周)/蓝(知晓),老板台卡片展示 | SCENE-005 |
| PRD-FUNC-015 | 决策日志 | 闭环案卡自动归档为决策记录,支持月度/季度复盘 | SCENE-006 |
| PRD-FUNC-016 | 决策结果标记 | 老板标记决策执行情况(顺利/受阻/未执行),反哺 AI | SCENE-006 |
| PRD-FUNC-017 | ChatPanel 风险卡置顶 | 风险卡从消息流提取为置顶固定卡片,可独立分享/导出 | SCENE-007 |
| PRD-FUNC-018 | 起诉状三步向导 | 要素式起诉状改为:预览→编辑→导出/发专家 三步向导 | SCENE-007 |
---
## 6. UI/UX 设计原则
### 6.1 视觉规范
| 维度 | 规范 |
|---|---|
| 主色 | `indigo-600`(信任+专业),替代当前 gray-900 |
| 辅色 | `emerald`(安全) / `amber`(注意) / `rose`(风险) |
| 字体 | Geist,标题加粗,正文 15px(老板友好) |
| 圆角 | 卡片 `rounded-xl`(12px),按钮 `rounded-lg`(8px) |
| 容器 | `container mx-auto max-w-7xl px-4`(保留) |
| 触控 | 移动端最小点击区 44×44px |
| 禁止 | 硬编码 hex、emoji 作图标、alert/confirm、div onClick |
### 6.2 交互规范
| 场景 | 规范 |
|---|---|
| 页面切换 | 200ms ease-out |
| 案卡状态变化 | 300ms 过渡 |
| 案卡手势 | 左滑归档、右滑置顶(移动端) |
| 空态 | 引导"完善画像解锁更精准建议",非"暂无数据" |
| 离线 | 顶部条提示 + 本地缓存案卡列表 |
| 流式输出 | 先出结论卡片,再展开推理过程 |
| 危险操作 | Dialog 二次确认 |
### 6.3 角色化三端
| 端 | 风格 | Header | Sidebar |
|---|---|---|---|
| C 端(user/老板) | 温暖专业 | `h-14 bg-white/95 backdrop-blur`,主色 indigo | `w-60`,图标+文字 |
| B 端(expert/专家) | 专业密集 | 保留当前 | 保留当前 |
| Admin | 警示 | `bg-slate-950` + 主色 `amber-400` + ADMIN 徽章 | 深色 |
---
## 7. 数据模型影响
### 7.1 新增:案卡(Matter)
| 字段 | 类型 | 说明 |
|---|---|---|
| id | int | 主键 |
| code | string | 唯一业务代码 `MTR_{YYYYMMDD}_{seq}` |
| user_id | int | 所属老板 |
| scene | string | legal/decision/life/emotion |
| title | string | 案卡标题(AI 生成或用户命名) |
| status | string | new/asking_facts/pending_confirm/analyzing/pending_expert/closed |
| session_id | string | 关联会话 sid |
| risk_level | string | nullable,green/amber/orange/red |
| summary | text | nullable,AI 结论摘要 |
| closed_at | timestamp | nullable |
| execution_result | string | nullable,顺利/受阻/未执行 |
| created_at / updated_at | timestamp | 审计 |
### 7.2 新增:风险推送(RiskAlert)
| 字段 | 类型 | 说明 |
|---|---|---|
| id | int | 主键 |
| user_id | int | 推送对象 |
| level | string | red/orange/blue |
| title | string | 标题 |
| content | text | 详情 |
| source | string | 来源(knowledge/doc_scan) |
| related_matter_id | int | nullable |
| read_at | timestamp | nullable |
| created_at | timestamp | |
### 7.3 新增:专家关系(ExpertRelation)
| 字段 | 类型 | 说明 |
|---|---|---|
| id | int | 主键 |
| user_id | int | 老板 |
| expert_id | int | 专家 |
| consultation_count | int | 咨询次数 |
| last_consulted_at | timestamp | 最近咨询 |
| tags | string | 擅长领域标签(逗号分隔) |
| created_at / updated_at | timestamp | |
### 7.4 现有表扩展
- `sessions` 表新增 `matter_id`(nullable,关联案卡)
- `profiles` 表无变化(画像驱动指令只读消费)
---
## 8. API 影响概览
详细 API 契约在 `2-task-bossai-uiux.md` 中按 TASK 展开。核心新增端点:
| 端点 | 方法 | 说明 | 阶段 |
|---|---|---|---|
| `/matters` | GET | 案卡看板列表(按状态分组) | 一 |
| `/matters` | POST | 创建案卡(绑定会话) | 一 |
| `/matters/{id}` | GET | 案卡详情 | 一 |
| `/matters/{id}/status` | PATCH | 更新案卡状态 | 一 |
| `/matters/{id}/close` | POST | 闭环案卡 | 一 |
| `/quick-commands` | GET | 画像驱动快捷指令 | 二 |
| `/team` | GET | 我的团队列表 | 二 |
| `/risk-alerts` | GET | 风险推送列表 | 三 |
| `/risk-alerts/{id}/read` | POST | 标记已读 | 三 |
| `/matters/{id}/execution` | PATCH | 标记决策执行结果 | 三 |
---
## 9. 非功能需求
| 维度 | 要求 |
|---|---|
| 性能 | 老板台首屏 < 1.5s,案卡看板 < 1s |
| 移动端 | 底部 Tab 所有页面可达,FAB 全局可用 |
| 离线 | 案卡列表本地缓存,断网可查看 |
| 无障碍 | 键盘可达,对比度 ≥ 4.5:1,aria-label 完整 |
| 兼容 | Chrome/Safari/Edge 最近 2 版,iOS/Android 移动浏览器 |
| 安全 | 案卡数据租户隔离(user_id),前端隐藏 ≠ 后端放权 |
---
## 10. 验收标准(整体)
- [ ] 老板打开应用,3 秒内看到"今日要事"
- [ ] 案卡看板正确展示所有进行中事项,点击可续接
- [ ] 移动端底部 Tab 全功能可达,FAB 弹出快捷指令
- [ ] 快捷指令基于画像生成,点击预填问题
- [ ] "我的团队"显示咨询过的专家,一键发起咨询
- [ ] 风险推送出现在老板台,可标记已读
- [ ] 闭环案卡归档为决策日志,可标记执行结果
- [ ] ChatPanel 风险卡置顶,起诉状三步向导可用
- [ ] 三端视觉规范对齐(C 端 indigo / B 端 gray / Admin 深色+amber)
- [ ] lint + typecheck + build 通过
---
## 11. 风险与对策
| 风险 | 对策 |
|---|---|
| 范式转变用户不适应 | 阶段一保留法务/决策/生活独立入口,案卡为增量 |
| 后端定时任务复杂度 | 阶段三风险雷达先用简单轮询,后续优化 |
| 语音输入浏览器兼容 | 降级为文字输入,Safari 不支持时隐藏语音按钮 |
| 移动端底部 Tab 重构量大 | 与桌面 Sidebar 共享 NavConfig,仅渲染层不同 |
| 画像数据不全导致指令不准 | 缺口引导:"完善行业信息解锁更精准建议" |
---
📌 v2.0 更新:见 `pmdocs/changes/2026-08-30-001-uiux重构.md`
影响范围:SCENE-001~010、PRD-FUNC-001~018、全用户端导航与页面
状态:待确认