feat(frontend): P2 页面开发 — 今日行动中心 + 对比 + 决策线程 + OODA + 助推追踪 + 密级标签

- 今日行动中心: 6 区块结构(AI早报/必须处理/建议关注/增长机会/等待他人/已完成)
- 多企业对比: 集成 CompareMode 组件 + 企业选择器
- 决策线程列表/详情: 集成 ThreadList/ThreadDetail 组件
- OODA 决策循环: 四阶段可视化 + 决策延迟追踪
- 助推效果追踪: 采纳率/行动率/疲劳度指标面板
- 信息分级标识: 4 级密级标签组件(公开/内部/机密/绝密)
This commit is contained in:
selfrelease
2026-07-19 19:02:32 +08:00
parent 129210405d
commit a4044baa31
8 changed files with 442 additions and 185 deletions
+11 -20
View File
@@ -1,9 +1,19 @@
/** 决策线程列表页 — 按状态/企业筛选 + 线程卡片。 */
"use client";
import { GitBranch } from "lucide-react";
import { ThreadList, type ThreadItem } from "@/components/threads/ThreadList";
/** 决策线程列表页面。 */
export default function ThreadsPage() {
const threads: ThreadItem[] = [
{ id: "thread-001", title: "云栈数据 A+轮融资时机选择", company: "云栈数据", status: "analyzing", updatedAt: "2026-07-12", riskCount: 2 },
{ id: "thread-002", title: "深瞳智能 CTO retention 策略", company: "深瞳智能", status: "identified", updatedAt: "2026-07-10", riskCount: 1 },
{ id: "thread-003", title: "量子芯微 融资策略:天使+ vs Pre-A", company: "量子芯微", status: "acted", updatedAt: "2026-07-14", riskCount: 3 },
{ id: "thread-004", title: "智链科技 客户流失干预方案", company: "智链科技", status: "closed", updatedAt: "2026-06-28", riskCount: 1 },
];
return (
<div className="space-y-6">
<div className="flex items-center gap-2">
@@ -17,26 +27,7 @@ export default function ThreadsPage() {
</p>
</div>
{/* 线程卡片占位 */}
<div className="space-y-3">
{[
{ title: "云栈数据 A+轮融资时机选择", status: "分析中", company: "云栈数据" },
{ title: "深瞳智能 CTO retention 策略", status: "已识别", company: "深瞳智能" },
{ title: "量子芯微 融资策略:天使+ vs Pre-A", status: "已行动", company: "量子芯微" },
].map((thread) => (
<div key={thread.title} className="rounded-lg border bg-white p-4 shadow-sm">
<div className="flex items-center justify-between">
<div>
<h3 className="font-medium">{thread.title}</h3>
<p className="mt-1 text-sm text-muted-foreground">{thread.company}</p>
</div>
<span className="rounded-full bg-indigo-50 px-3 py-1 text-xs text-indigo-600">
{thread.status}
</span>
</div>
</div>
))}
</div>
<ThreadList threads={threads} />
</div>
);
}