feat: deliver Xingbang four-agent v2 workspace
This commit is contained in:
@@ -25,6 +25,7 @@ import {
|
||||
FileText,
|
||||
Users,
|
||||
Bot,
|
||||
Blocks,
|
||||
} from "lucide-react";
|
||||
import { useApp } from "@/lib/store";
|
||||
import { getSessionTokenCount } from "@/lib/api";
|
||||
@@ -113,6 +114,18 @@ export default function Sidebar() {
|
||||
<Shield className="w-3.5 h-3.5" />
|
||||
<span>风险研判</span>
|
||||
</a>
|
||||
<a href="/review-workbench" className="w-full flex items-center gap-2 px-3 py-2 text-[13px] text-gray-600 hover:bg-white/40 rounded-lg">
|
||||
<Users className="w-3.5 h-3.5" />
|
||||
<span>评审协同助手</span>
|
||||
</a>
|
||||
<a href="/collateral-workbench" className="w-full flex items-center gap-2 px-3 py-2 text-[13px] text-gray-600 hover:bg-white/40 rounded-lg">
|
||||
<Blocks className="w-3.5 h-3.5" />
|
||||
<span>租赁物与增信核验</span>
|
||||
</a>
|
||||
<a href="/report-workbench" className="w-full flex items-center gap-2 px-3 py-2 text-[13px] text-gray-600 hover:bg-white/40 rounded-lg">
|
||||
<FileText className="w-3.5 h-3.5" />
|
||||
<span>报告与经验助手</span>
|
||||
</a>
|
||||
<a
|
||||
href="/rule-engine"
|
||||
className="w-full flex items-center gap-2 px-3 py-2 text-[13px] text-gray-600 hover:bg-white/40 hover:text-gray-800 rounded-lg transition-all"
|
||||
@@ -128,11 +141,11 @@ export default function Sidebar() {
|
||||
<span>历史数据分析</span>
|
||||
</a>
|
||||
<a
|
||||
href="/xingbang"
|
||||
href="/xingbang-workbench"
|
||||
className="w-full flex items-center gap-2 px-3 py-2 text-[13px] text-gray-600 hover:bg-white/40 hover:text-gray-800 rounded-lg transition-all"
|
||||
>
|
||||
<Bot className="w-3.5 h-3.5" />
|
||||
<span>五Agent流水线</span>
|
||||
<span>兴邦项目总览</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
"use client";
|
||||
|
||||
import {ArrowLeft, Blocks, FileText, LayoutDashboard, ShieldCheck, Users} from "lucide-react";
|
||||
import "./navigation.css";
|
||||
|
||||
export const agents = [
|
||||
{id:"risk",name:"风险研判",href:"/data-access",icon:ShieldCheck},
|
||||
{id:"report",name:"报告与经验",href:"/report-workbench",icon:FileText},
|
||||
{id:"coordination",name:"评审协同",href:"/review-workbench",icon:Users},
|
||||
{id:"collateral",name:"租赁物与增信核验",href:"/collateral-workbench",icon:Blocks},
|
||||
];
|
||||
export function projectLink(href:string, project?:string){return href+(project?`?project=${encodeURIComponent(project)}`:"");}
|
||||
export function requestedProject(){return typeof window==="undefined"?"":new URLSearchParams(window.location.search).get("project")||"";}
|
||||
export default function AgentNav({active,project}:{active:string;project?:string}){
|
||||
return <nav className="xb-agent-nav" aria-label="兴邦四 Agent 导航"><a href="/" className="xb-home"><ArrowLeft size={15}/><span>mini-openclaw</span></a><a href={projectLink("/xingbang-workbench",project)} className={active==="overview"?"selected":""}><LayoutDashboard size={15}/><span>项目总览</span></a>{agents.map((a,i)=><a key={a.id} href={projectLink(a.href,project)} className={active===a.id?"selected":""} aria-current={active===a.id?"page":undefined}><a.icon size={15}/><span><small>0{i+1}</small>{a.name}</span></a>)}{project&&<span className="xb-project-context">{project}</span>}</nav>;
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
.xb-agent-nav{font-family:Arial,"Microsoft YaHei",sans-serif;letter-spacing:0;display:flex;align-items:center;gap:6px 12px;flex-wrap:wrap;padding:12px 22px;background:#fff;border-bottom:1px solid #e1e7e4;min-width:0;color:#667b6d}.xb-agent-nav a{display:flex;align-items:center;gap:6px;font-size:11px;padding:7px 8px;border-radius:4px;min-height:31px}.xb-agent-nav a:hover{background:#f2f6f3}.xb-agent-nav .selected{background:#eaf4ee;color:#216b48}.xb-agent-nav small{font-size:9px;margin-right:5px;color:#899e8e}.xb-agent-nav .xb-home{border-right:1px solid #e4eae5;border-radius:0;padding-right:18px}.xb-project-context{font-size:10px;margin-left:auto;color:#7b9382;overflow-wrap:anywhere}.xb-overview{max-width:1480px;margin:auto;padding:32px}.xb-overview h1{font-size:26px;font-weight:600}.xb-overview-heading{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:28px}.xb-overview-heading p{font-size:12px;color:#84948b;margin-top:9px}.xb-overview-tools{display:flex;align-items:center;gap:10px;margin-bottom:20px}.xb-overview-tools input{background:#fff;border:1px solid #dce4df;padding:10px 12px;font-size:12px;border-radius:5px;width:280px;max-width:100%}.xb-project-table{width:100%;border-collapse:collapse;font-size:12px;background:#fff}.xb-project-table th{font-weight:500;font-size:11px;color:#85948a;text-align:left;padding:17px 20px;border-bottom:1px solid #e2e8e3}.xb-project-table td{padding:22px 20px;border-bottom:1px solid #e6ebe7;vertical-align:top}.xb-project-table b{display:block;color:#34573f;margin-bottom:8px}.xb-project-table small{display:block;font-size:10px;color:#8a9b90;line-height:1.8}.xb-project-table a{color:#387451;display:inline-flex;align-items:center;gap:6px;line-height:1.8}.xb-project-table .muted{color:#93a096}.xb-table-wrap{overflow:auto}.xb-overview-stat{display:flex;gap:40px;padding:22px 0;border-top:1px solid #dce5df;border-bottom:1px solid #dce5df;margin-bottom:25px}.xb-overview-stat strong{font-size:25px;font-weight:500;color:#316448;margin-right:12px}.xb-overview-stat span{font-size:12px;color:#7c9183}@media(max-width:760px){.xb-agent-nav{padding:10px 12px;gap:3px 5px}.xb-agent-nav a{font-size:10px;gap:4px;padding:6px}.xb-agent-nav .xb-home{padding-right:8px}.xb-project-context{width:100%;margin:5px 0 0 6px}.xb-overview{padding:24px 16px}.xb-overview-heading{align-items:start;flex-wrap:wrap}.xb-overview-stat{gap:16px;flex-wrap:wrap}.xb-project-table{min-width:780px}.xb-overview-tools{flex-wrap:wrap}}
|
||||
Reference in New Issue
Block a user