feat: 老板台2.0 + 手机端适配 + 专家库 + 智囊入口
CI / 后端测试 (push) Has been cancelled
CI / 前端构建 (push) Has been cancelled

- 老板台: AI执行摘要卡 + 待办优先级排序 + 时间线视图 + 环形健康度
- 手机端: 事项看板折叠列表 + 7个页面响应式修复 + 底部安全边距
- 专家库: 新增用户端专家浏览页(参考管理端卡片风格)
- 智囊入口: 底部Tab加"智囊" + 4个智囊页场景切换栏 + "我"页分组入口
- FAB弹窗: 场景快速入口 + 指令卡片优化 + 输入区sticky
- 后端: /dashboard/summary + /dashboard/timeline API
- 后端: life场景事实维度扩充(2→5) + 17个生活关键词优先级
- 前端: 抑制React DevTools startTime噪音错误

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 14:11:09 +08:00
co-authored by Devin
parent 4de36547cd
commit dd01d94ade
24 changed files with 1088 additions and 300 deletions
+40 -10
View File
@@ -1,11 +1,23 @@
/** 移动端"我"聚合页:头像占位+入口列表 */
import { NavLink } from 'react-router-dom'
import { User, History, BookOpen, Settings as SettingsIcon, ChevronRight } from 'lucide-react'
import {
User, History, BookOpen, Settings as SettingsIcon, ChevronRight,
Scale, TrendingUp, Heart, ShieldCheck, FileText, Users,
} from 'lucide-react'
import { getName } from '@/lib/auth'
export function Me() {
const name = getName()
const items = [
const brainTrust = [
{ path: '/legal', label: '法务参谋', icon: Scale },
{ path: '/decisions', label: '经营决策', icon: TrendingUp },
{ path: '/life', label: '生活助理', icon: Heart },
{ path: '/emotion', label: '情绪中心', icon: ShieldCheck },
]
const resources = [
{ path: '/team', label: '我的团队', icon: Users },
{ path: '/experts', label: '专家库', icon: Users },
{ path: '/decisions-log', label: '决策日志', icon: FileText },
{ path: '/profile', label: '我的画像', icon: User },
{ path: '/history', label: '对话历史', icon: History },
{ path: '/knowledge', label: '知识库', icon: BookOpen },
@@ -22,14 +34,32 @@ export function Me() {
<div className="text-sm text-muted-foreground">中小企业老板</div>
</div>
</div>
<div className="rounded-xl border border-border bg-card divide-y divide-border">
{items.map((item) => (
<NavLink key={item.path} to={item.path} className="flex items-center gap-3 p-4 hover:bg-muted transition-colors">
<item.icon className="h-5 w-5 text-muted-foreground" />
<span className="flex-1 text-sm text-foreground">{item.label}</span>
<ChevronRight className="h-4 w-4 text-muted-foreground" />
</NavLink>
))}
{/* 智囊 */}
<div>
<p className="mb-2 px-1 text-xs font-medium text-muted-foreground">智囊</p>
<div className="grid grid-cols-2 gap-3">
{brainTrust.map((item) => (
<NavLink key={item.path} to={item.path} className="flex flex-col items-center gap-2 rounded-xl border border-border bg-card p-4 hover:bg-muted transition-colors">
<item.icon className="h-6 w-6 text-primary" />
<span className="text-sm text-foreground">{item.label}</span>
</NavLink>
))}
</div>
</div>
{/* 我的资源 */}
<div>
<p className="mb-2 px-1 text-xs font-medium text-muted-foreground">我的资源</p>
<div className="rounded-xl border border-border bg-card divide-y divide-border">
{resources.map((item) => (
<NavLink key={item.path} to={item.path} className="flex items-center gap-3 p-4 hover:bg-muted transition-colors">
<item.icon className="h-5 w-5 text-muted-foreground" />
<span className="flex-1 text-sm text-foreground">{item.label}</span>
<ChevronRight className="h-4 w-4 text-muted-foreground" />
</NavLink>
))}
</div>
</div>
</div>
)