"use client"; import {useEffect, useState} from "react"; import {ArrowRight, GitBranch, History, ShieldCheck} from "lucide-react"; import AgentNav from "@/components/xingbang/AgentNav"; import {messageOf} from "@/lib/prescreen"; import "./data-access/workspace.css"; /** 业务工作区首页(AC-53 / BR-50)。 * * 三个模块**各有独立入口**:AI 预审 / 历史经验加工 / 轨迹复盘,指向各自的路由。 * 深色导航 + 浅色工作区取自已确认原型;不再以旧版聊天落地页作为唯一首屏。 * 本页只负责导航与项目上下文,不在这里叠加任何模块面板。 */ const MODULES = [ {key: "prescreen", href: "/prescreen-workbench", icon: ShieldCheck, name: "AI 预审", summary: "按已发布方案执行受限编排,给出有依据的意见、缺证与未完成项。", detail: "概率状态与依据 · 动态维度 · 推进沙盘"}, {key: "experience", href: "/experience-center", icon: History, name: "历史经验加工", summary: "从历史过程恢复时间线,用真实模型提炼核查方法,经专家修订与独立审核发布。", detail: "来源时间线 · 候选治理 · 卡片入方案"}, {key: "trajectory", href: "/trajectory-center", icon: GitBranch, name: "轨迹复盘", summary: "只读回放每一次运行的步骤与版本依据,与会议结果对照。", detail: "步骤与依据 · 失败保留 · 会议结果对照"}, ]; export default function BusinessHome() { const [identity, setIdentity] = useState(null); const [projectId, setProjectId] = useState(""); const [error, setError] = useState(""); function headers(json = true) { const token = sessionStorage.getItem("xingbang-access-token"); const role = sessionStorage.getItem("xingbang-demo-role"); return {...(json ? {"Content-Type": "application/json"} : {}), ...(token ? {Authorization: `Bearer ${token}`} : {}), ...(role ? {"X-Xingbang-Demo-Role": role} : {})}; } useEffect(() => { setProjectId(new URLSearchParams(location.search).get("project") || ""); fetch("/api/risk-agent/access/context", {headers: headers(false)}) .then(async (response) => { if (!response.ok) throw Error(messageOf(await response.json().catch(() => ({})), "无法读取身份")); setIdentity(await response.json()); }) .catch((e: any) => setError(e.message)); }, []); const withProject = (href: string) => projectId ? `${href}?project=${encodeURIComponent(projectId)}` : href; return
业务工作区

兴邦金租 · 智审工作台

三个模块各有独立入口;项目上下文在模块之间保持。所有数值与结论都标明来源,未接入的能力会如实显示未完成。

{error &&
{error}
} {projectId &&
当前项目上下文:{projectId}(在模块之间保持)
}
{MODULES.map((item) => {item.detail}

{item.summary}

进入模块
)}

项目工作台

需要按项目办理材料、报告与评审结论时,进入项目工作台。

; }