import React from 'react'; /** * 做市商管理仪表盘 * * 做市商列表、流动性池、订单簿深度、市场健康指标、风险预警 */ const stats = [ { label: '活跃做市商', value: '12', change: '+2', trend: 'up' as const, color: 'var(--color-primary)' }, { label: '总流动性', value: '$5.2M', change: '+8.3%', trend: 'up' as const, color: 'var(--color-success)' }, { label: '日均交易量', value: '$320K', change: '+12.5%', trend: 'up' as const, color: 'var(--color-info)' }, { label: '平均价差', value: '1.8%', change: '-0.3%', trend: 'down' as const, color: 'var(--color-warning)' }, ]; const marketMakers = [ { name: 'AlphaLiquidity', status: 'active' as const, tvl: '$1,250,000', spread: '1.2%', volume: '$85,000', pnl: '+$12,340' }, { name: 'BetaMarkets', status: 'active' as const, tvl: '$980,000', spread: '1.5%', volume: '$72,000', pnl: '+$8,920' }, { name: 'GammaTrading', status: 'active' as const, tvl: '$850,000', spread: '1.8%', volume: '$65,400', pnl: '+$6,780' }, { name: 'DeltaCapital', status: 'paused' as const, tvl: '$620,000', spread: '2.1%', volume: '$0', pnl: '-$1,230' }, { name: 'EpsilonFund', status: 'active' as const, tvl: '$540,000', spread: '1.6%', volume: '$43,200', pnl: '+$5,410' }, { name: 'ZetaPartners', status: 'active' as const, tvl: '$430,000', spread: '2.0%', volume: '$31,800', pnl: '+$3,670' }, { name: 'EtaVentures', status: 'suspended' as const, tvl: '$0', spread: '-', volume: '$0', pnl: '-$4,560' }, { name: 'ThetaQuant', status: 'active' as const, tvl: '$280,000', spread: '1.9%', volume: '$22,600', pnl: '+$2,890' }, ]; const statusConfig: Record = { active: { bg: 'var(--color-success-light)', color: 'var(--color-success)', label: '活跃' }, paused: { bg: 'var(--color-warning-light)', color: 'var(--color-warning)', label: '暂停' }, suspended: { bg: 'var(--color-error-light)', color: 'var(--color-error)', label: '停用' }, }; const liquidityPools = [ { category: '餐饮', tvl: '$1,560,000', percent: 30, makers: 8, color: 'var(--color-primary)' }, { category: '零售', tvl: '$1,300,000', percent: 25, makers: 7, color: 'var(--color-success)' }, { category: '娱乐', tvl: '$1,040,000', percent: 20, makers: 6, color: 'var(--color-info)' }, { category: '旅游', tvl: '$780,000', percent: 15, makers: 5, color: 'var(--color-warning)' }, { category: '数码', tvl: '$520,000', percent: 10, makers: 4, color: 'var(--color-error)' }, ]; const healthIndicators = [ { name: 'Bid-Ask 价差', value: '1.8%', target: '< 3.0%', status: 'good' as const }, { name: '滑点 (Slippage)', value: '0.42%', target: '< 1.0%', status: 'good' as const }, { name: '成交率 (Fill Rate)', value: '94.7%', target: '> 90%', status: 'good' as const }, { name: '流动性深度', value: '$5.2M', target: '> $3M', status: 'good' as const }, { name: '价格偏差', value: '2.1%', target: '< 2.0%', status: 'warning' as const }, { name: '做市商覆盖率', value: '87%', target: '> 85%', status: 'good' as const }, ]; const riskAlerts = [ { time: '14:25', maker: 'DeltaCapital', type: '流动性撤出', desc: '30分钟内撤出65%流动性,已自动暂停', severity: 'high' as const }, { time: '13:40', maker: 'EtaVentures', type: '异常交易', desc: '检测到自成交行为,账户已停用待审', severity: 'high' as const }, { time: '12:15', maker: 'ZetaPartners', type: '价差偏高', desc: '餐饮品类价差达3.2%,超出阈值', severity: 'medium' as const }, { time: '11:00', maker: 'ThetaQuant', type: 'API延迟', desc: '报价延迟升至800ms,可能影响做市质量', severity: 'low' as const }, ]; const severityConfig: Record = { high: { bg: 'var(--color-error-light)', color: 'var(--color-error)', label: '高' }, medium: { bg: 'var(--color-warning-light)', color: 'var(--color-warning)', label: '中' }, low: { bg: 'var(--color-info-light)', color: 'var(--color-info)', label: '低' }, }; export const MarketMakerPage: React.FC = () => { return (

做市商管理

{/* Stats Grid */}
{stats.map(stat => (
{stat.label}
{stat.value}
{stat.change}
))}
{/* Market Maker Table */}
做市商列表
{['做市商', '状态', 'TVL', '价差', '日交易量', 'P&L', '操作'].map(h => ( ))} {marketMakers.map(mm => { const s = statusConfig[mm.status]; return ( ); })}
{h}
{mm.name} {s.label} {mm.tvl} {mm.spread} {mm.volume} {mm.pnl} {mm.status === 'active' && ( )} {mm.status === 'paused' && ( )}
{/* Liquidity Pools + Order Book Depth */}
{/* Liquidity Pool Distribution */}
流动性池分布
{liquidityPools.map(pool => (
{pool.category} {pool.makers} 做市商 {pool.tvl} ({pool.percent}%)
))}
{/* Order Book Depth */}
订单簿深度
Recharts 面积图 (Bid/Ask 深度分布)
{/* Market Health + Risk Alerts */}
{/* Market Health Indicators */}
市场健康指标
{healthIndicators.map(ind => (
{ind.name} {ind.value} {ind.target}
))}
{/* Risk Alerts */}
风险预警
{riskAlerts.filter(a => a.severity === 'high').length} 高风险
{riskAlerts.map((alert, i) => { const sev = severityConfig[alert.severity]; return (
{sev.label} {alert.maker} {alert.type}
{alert.time}
{alert.desc}
); })}
); };