下面是一个完整的 **Intelligent UI 交互实验台**。它模拟一个 AI 产品的 Billing Control Center,包含三个可切换的工作区。所有数据均为虚构,交互计算在当前界面中完成,不会操作真实数据库或发起支付。 {@body const [tab,setTab] = DIL.useState("overview")} {@body const [period,setPeriod] = DIL.useState("7")} {@body const [channel,setChannel] = DIL.useState("all")} {@body const [incident,setIncident] = DIL.useState(false)} {@body const [model,setModel] = DIL.useState("balanced")} {@body const [turns,setTurns] = DIL.useState(8000)} {@body const [retry,setRetry] = DIL.useState(5)} {@body const [rewards,setRewards] = DIL.useState(15)} {@body const [wallet,setWallet] = DIL.useState(250)} {@body const [ledger,setLedger] = DIL.useState([])} {@body const [message,setMessage] = DIL.useState("")} {@body const [search,setSearch] = DIL.useState("")} {@body const [statusFilter,setStatusFilter] = DIL.useState("all")} {@body const [riskOnly,setRiskOnly] = DIL.useState(false)} {@body const [selectedAudit,setSelectedAudit] = DIL.useState("EVT-1042")} {@body const money = (v) => "$"+Number(v).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})} {@body const number = (v) => Math.round(v).toLocaleString("en-US")} {@body const channelFactor = {all:1,web:0.52,ios:0.31,android:0.17}[channel]} {@body const n = period==="7"?7:period==="30"?10:12} {@body const step = Number(period)/n} {@body const swings = [-3,2,-1,3,0,4,-2,1,3,-1,2,4]} {@body const trendData = Array.from({length:n},(_,i)=>({period:period==="7"?"D-"+(n-1-i):period==="30"?"P"+(i+1):"W"+(i+1),revenue:Math.round((2700+swings[i]*93)*step*channelFactor),cost:Math.round((960+swings[i]*29)*step*channelFactor*(incident&&i>=n-2?1.75:1))}))} {@body const totalRevenue=trendData.reduce((a,b)=>a+b.revenue,0)} {@body const totalCost=trendData.reduce((a,b)=>a+b.cost,0)} {@body const marginPct=(totalRevenue-totalCost)/totalRevenue*100} {@body const rates={fast:0.006,balanced:0.020,premium:0.055}} {@body const modelLabels={fast:"Fast",balanced:"Balanced",premium:"Premium"}} {@body const unitCost=rates[model]*(1+retry/100)} {@body const creditsPerTurn=Number((unitCost*1000).toFixed(2))} {@body const scenarioCost=turns*unitCost} {@body const scenarioRevenue=turns*creditsPerTurn*0.004*(1-rewards/100)} {@body const scenarioProfit=scenarioRevenue-scenarioCost} {@body const scenarioMargin=scenarioRevenue>0?100*scenarioProfit/scenarioRevenue:0} {@body const mockEvents=[{id:"EVT-1042",user:"user_4821",gateway:"PayCo",status:"pending",amount:120,time:"14:02:11",risk:true,note:"支付渠道已返回成功,权益发放事件尚未确认",trace:"trace-b7e2-1042"},{id:"EVT-1041",user:"user_1209",gateway:"App Store",status:"success",amount:3200,time:"13:59:48",risk:false,note:"订阅续期已完成,Credits 已到账",trace:"trace-a3c1-1041"},{id:"EVT-1040",user:"user_8812",gateway:"Google Play",status:"refunded",amount:-500,time:"13:55:16",risk:false,note:"退款完成,对应权益已冲正",trace:"trace-e8d1-1040"},{id:"EVT-1039",user:"user_2290",gateway:"PayCo",status:"failed",amount:800,time:"13:51:22",risk:true,note:"Webhook 签名校验失败,未写入钱包账本",trace:"trace-a8f0-1039"},{id:"EVT-1038",user:"user_1002",gateway:"Internal",status:"success",amount:-20,time:"13:50:08",risk:false,note:"LLM 调用完成,幂等扣费成功",trace:"trace-f3c4-1038"},{id:"EVT-1037",user:"user_9082",gateway:"Internal",status:"success",amount:100,time:"13:48:36",risk:false,note:"新用户邀请奖励发放",trace:"trace-c1f8-1037"}]} {@body const events = incident?[{id:"EVT-1050",user:"user_4411",gateway:"Internal",status:"pending",amount:-44,time:"14:04:10",risk:true,note:"模拟重试风暴:模型调用重复产生 Usage Event,等待幂等检查",trace:"trace-incident-1050"},...mockEvents]:mockEvents} {@body const filteredEvents=events.filter(e=>(statusFilter==="all"||e.status===statusFilter)&&(!riskOnly||e.risk)&&[e.id,e.user,e.gateway,e.trace].join(" ").toLowerCase().includes(search.toLowerCase()))} {@body const selectedEvent=events.find(e=>e.id===selectedAudit)} {@body const statusText={success:"已完成",pending:"待处理",failed:"失败",refunded:"已退款"}} {@body function chargeOnce(){if(wallet Acme Billing Interactive Control Center · Demo {incident?"演练异常":"系统正常"} Sandbox v1.0 {#if tab==="overview"} 经营概览 可交互模拟数据 · 视图间数据联动