Files
BossAi/pmdocs/ui-components.md
T
selfreleaseandDevin 4de36547cd
CI / 后端测试 (push) Has been cancelled
CI / 前端构建 (push) Has been cancelled
feat: BossAi v2.0 UI/UX 重构 + 看板断点续接 + 多轮上下文
- 新增 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>
2026-08-31 08:38:33 +08:00

7.1 KiB

UI 公共组件登记表

记录 BossAi 前端可复用组件,避免重复造轮子。新增、重命名、废弃或职责变化时同步更新。 技术栈:React 18 + Vite + TypeScript + Tailwind + shadcn/ui(详见 ADR-001)

基础组件(shadcn/ui,复制即用)

组件 类型 适用场景 输入状态 输出事件 使用页面 状态
Button 基础组件 按钮交互 variant / size / disabled / asChild onClick 全部页面 稳定
Card 基础组件 内容卡片容器 className - 全部页面 稳定
Input 基础组件 单行输入 value / placeholder / disabled onChange 设置(待实现) 稳定
Textarea 基础组件 多行输入 value / placeholder onChange 法务参谋 稳定
Badge 基础组件 状态标签 variant - 全部页面 稳定
Label 基础组件 表单标签 htmlFor - 法务参谋 稳定
Separator 基础组件 分隔线 orientation - 通用 稳定
ScrollArea 基础组件 滚动区域 className - 通用 稳定
Select 基础组件 下拉选择 value / onValueChange onValueChange 预留 稳定
Dialog 基础组件 弹窗/二次确认 open / onOpenChange onOpenChange 法务参谋(销毁确认) 稳定
Toaster(sonner) 基础组件 全局 toast 反馈 position - 全局(AppLayout) 稳定

布局组件

组件 类型 适用场景 输入状态 输出事件 使用页面 状态
AppLayout 布局组件 应用主框架(Sidebar+Header+内容) - - 全部页面(路由出口) 稳定
Sidebar 布局组件 左侧导航(w-60 sticky) - NavLink 跳转 全部页面 稳定
Header 布局组件 顶部栏(h-14 sticky,移动端含抽屉) nav(移动端导航内容) - 全部页面 稳定
MobileNav 布局组件 移动端抽屉导航 - NavLink 跳转 Header 抽屉 稳定
PageLayout 布局组件 页面骨架(标题+描述+操作区+内容) title / description / actions / children - 全部页面 稳定

领域/组合组件

组件 类型 适用场景 输入状态 输出事件 使用页面 状态
StatusBadge 组合组件 风险等级徽章 level(green/amber/orange/red) - 驾驶舱、法务参谋 稳定
RiskCardView 领域组件 风险卡片(等级+结论+行动+证据+升级) card(RiskCard) / answer / model / onEscalate onEscalate 法务参谋 稳定
EmptyState 组合组件 空数据状态 title / description / icon / action - 法务参谋、占位页 稳定
LoadingState 组合组件 加载状态 label - 通用(预留) 稳定
ErrorState 组合组件 错误状态(带重试) message / onRetry onRetry 驾驶舱 稳定
ChatPanel 领域组件 通用对话面板(会话/提问/风险卡/上传/急停/工单升级) scene / samples / modes / defaultMode / emotionMode / modeSelector / showRiskCard / enableUpload 内部状态 + 工单创建 法务参谋、经营决策、生活助理、情绪中心 稳定
OfflineIndicator 基础组件 全局离线提示条(网络断开时显示) - - 全局(AppLayout) 稳定
Markdown 基础组件 AI 回复 Markdown 渲染(GFM+代码高亮+流式光标) content / streaming / className - ChatPanel、RiskCardView 稳定
TicketDetail 领域组件 工单详情弹窗(状态/分配/处理结果) ticket / onClose / onUpdate onUpdate 复核工单 稳定

待沉淀组件(后续迭代)

组件 类型 适用场景 触发条件 状态
DataTable 基础组件 列表/表格 待办台账、合同列表页实现时 待开发
Pagination 基础组件 分页 列表数据超过单页时 待开发
FilterBar 组合组件 筛选栏 风险台账、合同管理页实现时 待开发
TimeRangePicker 组合组件 时间范围筛选 数据看板、历史查询实现时 待开发
ConfirmDialog 组合组件 通用二次确认 当前法务参谋用内联 Dialog,出现 2+ 处时抽取 待观察
SessionModePicker 领域组件 隐私会话模式选择 已内联于 ChatPanel,情绪中心实现时抽取 已内联
ToggleRow 组合组件 设置开关行 icon / title / desc / defaultOn / danger onClick

设计 Token 约定

  • 主色:--primary (gray-900 系),通过 CSS 变量,禁硬编码 hex
  • 风险色:risk-green/amber/orange/red(Tailwind 语义类)
  • 状态色三件套:emerald(success) / amber(warning) / rose(destructive)
  • 圆角:--radius: 0.625rem
  • 字体:Geist → system-ui 回退
  • 容器:container mx-auto max-w-7xl px-4

2.0 新增组件(web2/src)

v2.0 在 web2/ 新目录开发,保留 web/ v1.0 不动。详见 ADR-002。

组件 类型 适用场景 输入状态 输出事件 使用页面 状态
NavConfig 基础模块 共享导航配置(USER_NAV/EXPERT_NAV/ADMIN_NAV/MOBILE_TABS) - - Sidebar/BottomTab/Header 稳定
BottomTab 布局组件 移动端底部 4 Tab(仅 md 以下) - NavLink 跳转 AppLayout 稳定
Fab 布局组件 浮动新建按钮(移动端) - onClick → 跳转 AppLayout 稳定
MatterCard 领域组件 案卡卡片(图标+标题+状态+时间) matter / onClick / onArchive onClick / onArchive 事项看板 稳定
ChatPanel(2.0) 领域组件 通用对话面板(案卡接入+风险卡置顶+起诉状向导+URL预填+专家上下文) scene / samples / modes / defaultMode / showRiskCard / enableUpload / matterId 内部状态 + 案卡流转 法务/决策/生活/情绪 稳定
QuickCommandPanel 领域组件 快捷指令底部抽屉(画像驱动+语音输入) open / onClose onClose FAB 稳定
ExpertAvatar 基础组件 专家头像(带 fallback 首字母) name / avatarUrl / size - 我的团队 稳定
EmptyState(2.0) 组合组件 空状态引导 title / description / icon / action - 全部页面 稳定
LoadingState(2.0) 组合组件 加载状态 label - 全部页面 稳定
ErrorState(2.0) 组合组件 错误状态+重试 message / onRetry onRetry 全部页面 稳定
PageLayout(2.0) 布局组件 页面骨架(标题+描述+操作区+内容) title / description / actions / children - 全部页面 稳定

2.0 设计 Token 变更

  • 主色:--primary 从 gray-900 系改为 indigo-600 (hsl(243 75% 59%)),C 端温暖专业
  • 新增案卡状态色:matter-new/asking/confirm/analyzing/expert/closed
  • 新增动画:slide-up(300ms) / slide-down(200ms) / fade-in(200ms)
  • 移动端底部 Tab:h-16,主内容区 padding-bottom: 4rem
  • FAB:bottom-20 right-4,圆形 56px,仅移动端