mirror of
https://github.com/Wei-Shaw/claude-relay-service.git
synced 2026-01-23 00:53:33 +00:00
3 lines
19 KiB
JavaScript
3 lines
19 KiB
JavaScript
import{a as X,b as dt,E as it,c as ct,d as gt,e as xt}from"./element-plus-DQlGMPYZ.js";import{b as J}from"./vendor-Dr8jvgFu.js";import{c as B,I as Q,y as u,J as b,z as t,P as o,u as g,R as y,O,aW as ut,r as S,_ as K,o as Z,q as pt,x as p,Q as L,ac as q,aU as yt}from"./vue-vendor-R8HMg95E.js";import{_ as mt,c as G,s as A}from"./index-Bg_s5PLo.js";function x(n){if(n==null)return"0";const C=Math.abs(n);return C>=1e9?(n/1e9).toFixed(2)+"B":C>=1e6?(n/1e6).toFixed(2)+"M":C>=1e3?(n/1e3).toFixed(1)+"K":n.toLocaleString()}const ft={class:"flex items-center justify-between"},kt={class:"text-lg font-bold text-gray-900 dark:text-gray-100"},bt={class:"space-y-4"},_t={class:"grid gap-3 md:grid-cols-2"},vt={class:"rounded-lg border border-gray-200 bg-gray-50 p-4 dark:border-gray-800 dark:bg-gray-900"},ht={class:"space-y-2 text-sm text-gray-700 dark:text-gray-300"},wt={class:"flex items-center justify-between"},$t={class:"font-medium"},Rt={class:"flex items-center justify-between"},Tt={class:"font-medium"},Ct={class:"flex items-center justify-between"},jt={class:"font-medium"},Dt={class:"flex items-center justify-between"},It={class:"font-medium"},St={class:"rounded-lg border border-gray-200 bg-gray-50 p-4 dark:border-gray-800 dark:bg-gray-900"},Vt={class:"space-y-2 text-sm text-gray-700 dark:text-gray-300"},Pt={class:"flex items-center justify-between"},zt={class:"font-semibold text-blue-600 dark:text-blue-400"},Ft={class:"flex items-center justify-between"},Yt={class:"font-semibold text-green-600 dark:text-green-400"},Ot={class:"flex items-center justify-between"},Mt={class:"font-semibold text-purple-600 dark:text-purple-400"},Nt={class:"flex items-center justify-between"},Et={class:"font-semibold text-orange-600 dark:text-orange-400"},Bt={class:"flex items-center justify-between"},Ut={class:"font-semibold text-gray-900 dark:text-gray-100"},Ht={class:"rounded-lg border border-gray-200 bg-white p-4 dark:border-gray-800 dark:bg-gray-900"},Kt={class:"grid gap-3 sm:grid-cols-2"},Lt={class:"flex items-center justify-between rounded-md bg-gray-50 px-3 py-2 dark:bg-gray-800"},qt={class:"text-sm font-semibold text-gray-900 dark:text-gray-100"},At={class:"flex items-center justify-between rounded-md bg-gray-50 px-3 py-2 dark:bg-gray-800"},Jt={class:"text-sm font-semibold text-gray-900 dark:text-gray-100"},Qt={class:"flex items-center justify-between rounded-md bg-gray-50 px-3 py-2 dark:bg-gray-800"},Wt={class:"text-sm font-semibold text-gray-900 dark:text-gray-100"},Zt={class:"flex items-center justify-between rounded-md bg-gray-50 px-3 py-2 dark:bg-gray-800"},Gt={class:"text-sm font-semibold text-gray-900 dark:text-gray-100"},Xt={class:"mt-4 flex items-center justify-between rounded-md border border-gray-200 bg-gray-50 px-4 py-3 dark:border-gray-800 dark:bg-gray-800"},te={class:"text-base font-bold text-yellow-600 dark:text-yellow-400"},ee={class:"flex justify-end"},se={__name:"RecordDetailModal",props:{show:{type:Boolean,default:!1},record:{type:Object,default:()=>({})}},emits:["close"],setup(n,{emit:C}){const M=n,v=C,j=()=>v("close"),V=B(()=>{var m;return(m=M.record)!=null&&m.timestamp?J(M.record.timestamp).format("YYYY-MM-DD HH:mm:ss"):"未知时间"}),_=B(()=>{var d;const m=((d=M.record)==null?void 0:d.costBreakdown)||{},a=r=>{const i=typeof r=="number"?r:0;return i>=1?`$${i.toFixed(2)}`:i>=.001?`$${i.toFixed(4)}`:`$${i.toFixed(6)}`};return{input:a(m.input),output:a(m.output),cacheCreate:a(m.cacheCreate),cacheRead:a(m.cacheRead),total:a(m.total)}});return(m,a)=>{const d=X,r=dt;return u(),Q(r,{"append-to-body":!0,class:"record-detail-modal","close-on-click-modal":!1,"destroy-on-close":!0,"model-value":n.show,"show-close":!1,top:"10vh",width:"720px",onClose:j},{header:b(()=>{var i;return[t("div",ft,[t("div",null,[a[0]||(a[0]=t("p",{class:"text-xs font-medium uppercase tracking-wide text-gray-500 dark:text-gray-400"}," 请求详情 ",-1)),t("p",kt,o(((i=n.record)==null?void 0:i.model)||"未知模型"),1)]),t("button",{"aria-label":"关闭",class:"rounded-full p-2 text-gray-500 transition hover:bg-gray-100 hover:text-gray-700 dark:text-gray-300 dark:hover:bg-gray-800 dark:hover:text-gray-100",onClick:j},a[1]||(a[1]=[t("i",{class:"fas fa-times"},null,-1)]))])]}),footer:b(()=>[t("div",ee,[y(d,{type:"primary",onClick:j},{default:b(()=>a[19]||(a[19]=[O("关闭",-1)])),_:1,__:[19]})])]),default:b(()=>{var i,D,P,z,U,N,h,w,E;return[t("div",bt,[t("div",_t,[t("div",vt,[a[6]||(a[6]=t("h4",{class:"mb-3 text-sm font-semibold text-gray-800 dark:text-gray-200"},"基本信息",-1)),t("ul",ht,[t("li",wt,[a[2]||(a[2]=t("span",{class:"text-gray-500 dark:text-gray-400"},"时间",-1)),t("span",$t,o(V.value),1)]),t("li",Rt,[a[3]||(a[3]=t("span",{class:"text-gray-500 dark:text-gray-400"},"模型",-1)),t("span",Tt,o(((i=n.record)==null?void 0:i.model)||"未知模型"),1)]),t("li",Ct,[a[4]||(a[4]=t("span",{class:"text-gray-500 dark:text-gray-400"},"账户",-1)),t("span",jt,o(((D=n.record)==null?void 0:D.accountName)||"未知账户"),1)]),t("li",Dt,[a[5]||(a[5]=t("span",{class:"text-gray-500 dark:text-gray-400"},"渠道",-1)),t("span",It,o(((P=n.record)==null?void 0:P.accountTypeName)||"未知渠道"),1)])])]),t("div",St,[a[12]||(a[12]=t("h4",{class:"mb-3 text-sm font-semibold text-gray-800 dark:text-gray-200"},"Token 使用",-1)),t("ul",Vt,[t("li",Pt,[a[7]||(a[7]=t("span",{class:"text-gray-500 dark:text-gray-400"},"输入 Token",-1)),t("span",zt,o(g(x)((z=n.record)==null?void 0:z.inputTokens)),1)]),t("li",Ft,[a[8]||(a[8]=t("span",{class:"text-gray-500 dark:text-gray-400"},"输出 Token",-1)),t("span",Yt,o(g(x)((U=n.record)==null?void 0:U.outputTokens)),1)]),t("li",Ot,[a[9]||(a[9]=t("span",{class:"text-gray-500 dark:text-gray-400"},"缓存创建",-1)),t("span",Mt,o(g(x)((N=n.record)==null?void 0:N.cacheCreateTokens)),1)]),t("li",Nt,[a[10]||(a[10]=t("span",{class:"text-gray-500 dark:text-gray-400"},"缓存读取",-1)),t("span",Et,o(g(x)((h=n.record)==null?void 0:h.cacheReadTokens)),1)]),t("li",Bt,[a[11]||(a[11]=t("span",{class:"text-gray-500 dark:text-gray-400"},"总计",-1)),t("span",Ut,o(g(x)((w=n.record)==null?void 0:w.totalTokens)),1)])])])]),t("div",Ht,[a[18]||(a[18]=t("h4",{class:"mb-3 text-sm font-semibold text-gray-800 dark:text-gray-200"},"费用详情",-1)),t("div",Kt,[t("div",Lt,[a[13]||(a[13]=t("span",{class:"text-sm text-gray-500 dark:text-gray-400"},"输入费用",-1)),t("span",qt,o(_.value.input),1)]),t("div",At,[a[14]||(a[14]=t("span",{class:"text-sm text-gray-500 dark:text-gray-400"},"输出费用",-1)),t("span",Jt,o(_.value.output),1)]),t("div",Qt,[a[15]||(a[15]=t("span",{class:"text-sm text-gray-500 dark:text-gray-400"},"缓存创建",-1)),t("span",Wt,o(_.value.cacheCreate),1)]),t("div",Zt,[a[16]||(a[16]=t("span",{class:"text-sm text-gray-500 dark:text-gray-400"},"缓存读取",-1)),t("span",Gt,o(_.value.cacheRead),1)])]),t("div",Xt,[a[17]||(a[17]=t("span",{class:"text-sm font-semibold text-gray-700 dark:text-gray-200"},"总费用",-1)),t("div",te,o(((E=n.record)==null?void 0:E.costFormatted)||_.value.total),1)])])])]}),_:1},8,["model-value"])}}},ae=mt(se,[["__scopeId","data-v-61b5b1eb"]]),oe={class:"space-y-4 p-4 lg:p-6"},re={class:"flex flex-wrap items-center justify-between gap-3"},le={class:"flex items-center gap-3"},ne={class:"text-xl font-bold text-gray-900 dark:text-gray-100"},de={class:"text-xs text-gray-500 dark:text-gray-400"},ie={class:"flex items-center gap-2 text-sm text-gray-500 dark:text-gray-400"},ce={key:0},ge={key:1},xe={class:"grid gap-3 md:grid-cols-2 xl:grid-cols-4"},ue={class:"rounded-xl border border-gray-200 bg-white p-4 shadow-sm dark:border-gray-800 dark:bg-gray-900"},pe={class:"mt-1 text-2xl font-bold text-gray-900 dark:text-gray-100"},ye={class:"rounded-xl border border-gray-200 bg-white p-4 shadow-sm dark:border-gray-800 dark:bg-gray-900"},me={class:"mt-1 text-2xl font-bold text-gray-900 dark:text-gray-100"},fe={class:"rounded-xl border border-gray-200 bg-white p-4 shadow-sm dark:border-gray-800 dark:bg-gray-900"},ke={class:"mt-1 text-2xl font-bold text-yellow-600 dark:text-yellow-400"},be={class:"rounded-xl border border-gray-200 bg-white p-4 shadow-sm dark:border-gray-800 dark:bg-gray-900"},_e={class:"mt-1 text-2xl font-bold text-gray-900 dark:text-gray-100"},ve={class:"rounded-xl border border-gray-200 bg-white p-4 shadow-sm dark:border-gray-800 dark:bg-gray-900"},he={class:"flex flex-wrap items-center gap-3"},we={class:"rounded-xl border border-gray-200 bg-white shadow-sm dark:border-gray-800 dark:bg-gray-900"},$e={key:0,class:"flex items-center justify-center p-10 text-gray-500 dark:text-gray-400"},Re={key:1},Te={key:0,class:"flex flex-col items-center gap-2 p-10 text-gray-500 dark:text-gray-400"},Ce={key:1,class:"space-y-4"},je={class:"hidden overflow-x-auto md:block"},De={class:"min-w-full divide-y divide-gray-200 dark:divide-gray-800"},Ie={class:"divide-y divide-gray-200 bg-white dark:divide-gray-800 dark:bg-gray-900"},Se={class:"whitespace-nowrap px-4 py-3 text-sm text-gray-800 dark:text-gray-100"},Ve={class:"px-4 py-3 text-sm text-gray-800 dark:text-gray-100"},Pe={class:"flex flex-col"},ze={class:"font-semibold"},Fe={class:"text-xs text-gray-500 dark:text-gray-400"},Ye={class:"whitespace-nowrap px-4 py-3 text-sm text-gray-800 dark:text-gray-100"},Oe={class:"whitespace-nowrap px-4 py-3 text-sm text-blue-600 dark:text-blue-400"},Me={class:"whitespace-nowrap px-4 py-3 text-sm text-green-600 dark:text-green-400"},Ne={class:"whitespace-nowrap px-4 py-3 text-sm text-purple-600 dark:text-purple-400"},Ee={class:"whitespace-nowrap px-4 py-3 text-sm text-gray-800 dark:text-gray-100"},Be={class:"whitespace-nowrap px-4 py-3 text-sm text-yellow-600 dark:text-yellow-400"},Ue={class:"whitespace-nowrap px-4 py-3 text-right text-sm"},He={class:"space-y-3 md:hidden"},Ke={class:"flex items-center justify-between"},Le={class:"text-sm font-semibold text-gray-900 dark:text-gray-100"},qe={class:"text-xs text-gray-500 dark:text-gray-400"},Ae={class:"mt-3 grid grid-cols-2 gap-2 text-sm text-gray-700 dark:text-gray-300"},Je={class:"text-yellow-600 dark:text-yellow-400"},Qe={class:"flex items-center justify-between px-4 pb-4"},We={class:"text-sm text-gray-500 dark:text-gray-400"},es={__name:"ApiKeyUsageRecordsView",setup(n){const C=ut(),M=yt(),v=B(()=>C.params.keyId),j=S(!1),V=S(!1),_=S([]),m=S([]),a=S([]),d=K({currentPage:1,pageSize:50,totalRecords:0}),r=K({dateRange:null,model:"",accountId:"",sortOrder:"desc"}),i=K({totalRequests:0,totalTokens:0,totalCost:0,avgCost:0}),D=K({id:v.value,name:""}),P=S(!1),z=S(null),U=B(()=>D.name||D.id||v.value),N=B(()=>!r.dateRange||r.dateRange.length!==2?"":`${h(r.dateRange[0])} ~ ${h(r.dateRange[1])}`),h=l=>l?J(l).format("YYYY-MM-DD HH:mm:ss"):"--",w=l=>{const e=typeof l=="number"?l:0;return e>=1?`$${e.toFixed(2)}`:e>=.001?`$${e.toFixed(4)}`:`$${e.toFixed(6)}`},E=l=>{const e={page:l,pageSize:d.pageSize,sortOrder:r.sortOrder};return r.model&&(e.model=r.model),r.accountId&&(e.accountId=r.accountId),r.dateRange&&r.dateRange.length===2&&(e.startDate=J(r.dateRange[0]).toISOString(),e.endDate=J(r.dateRange[1]).toISOString()),e},tt=l=>{var $,R,I,s;_.value=l.records||[];const e=l.pagination||{};d.currentPage=e.currentPage||1,d.pageSize=e.pageSize||d.pageSize,d.totalRecords=e.totalRecords||0;const c=l.filters||{};if(c.model!==void 0&&(r.model=c.model||""),c.accountId!==void 0&&(r.accountId=c.accountId||""),c.sortOrder&&(r.sortOrder=c.sortOrder),c.startDate&&c.endDate){const T=[c.startDate,c.endDate],Y=r.dateRange||[];(Y[0]!==T[0]||Y[1]!==T[1])&&(r.dateRange=T)}const f=l.summary||{};i.totalRequests=f.totalRequests||0,i.totalTokens=f.totalTokens||0,i.totalCost=f.totalCost||0,i.avgCost=f.avgCost||0,D.id=(($=l.apiKeyInfo)==null?void 0:$.id)||v.value,D.name=((R=l.apiKeyInfo)==null?void 0:R.name)||"",m.value=((I=l.availableFilters)==null?void 0:I.models)||[],a.value=((s=l.availableFilters)==null?void 0:s.accounts)||[]},F=async(l=d.currentPage)=>{j.value=!0;try{const e=await G.get(`/admin/api-keys/${v.value}/usage-records`,{params:E(l)});tt(e.data||{})}catch(e){A(`加载请求记录失败:${e.message||"未知错误"}`,"error")}finally{j.value=!1}},et=l=>{d.currentPage=l,F(l)},st=l=>{d.pageSize=l,d.currentPage=1,F(1)},at=()=>{r.model="",r.accountId="",r.dateRange=null,r.sortOrder="desc",d.currentPage=1,F(1)},W=l=>{z.value=l,P.value=!0},ot=()=>{P.value=!1,z.value=null},rt=()=>{M.push("/api-keys")},lt=async()=>{var l;if(!V.value){V.value=!0;try{const e=[];let c=1,f=1;const $=50;for(;c<=f&&c<=$;){const H=(await G.get(`/admin/api-keys/${v.value}/usage-records`,{params:{...E(c),pageSize:200}})).data||{};e.push(...H.records||[]),f=((l=H.pagination)==null?void 0:l.totalPages)||1,c+=1}if(e.length===0){A("没有可导出的记录","info");return}const I=[["时间","账户","渠道","模型","输入Token","输出Token","缓存创建Token","缓存读取Token","总Token","费用"].join(",")];e.forEach(k=>{const H=[h(k.timestamp),k.accountName||"",k.accountTypeName||"",k.model||"",k.inputTokens||0,k.outputTokens||0,k.cacheCreateTokens||0,k.cacheReadTokens||0,k.totalTokens||0,k.costFormatted||w(k.cost)];I.push(H.map(nt=>`"${String(nt).replace(/"/g,'""')}"`).join(","))});const s=new Blob([I.join(`
|
||
`)],{type:"text/csv;charset=utf-8;"}),T=URL.createObjectURL(s),Y=document.createElement("a");Y.href=T,Y.download=`api-key-${v.value}-usage-records.csv`,Y.click(),URL.revokeObjectURL(T),A("导出 CSV 成功","success")}catch(e){A(`导出失败:${e.message||"未知错误"}`,"error")}finally{V.value=!1}}};return Z(()=>[r.model,r.accountId,r.sortOrder],()=>{d.currentPage=1,F(1)}),Z(()=>r.dateRange,()=>{d.currentPage=1,F(1)},{deep:!0}),pt(()=>{F()}),(l,e)=>{const c=it,f=xt,$=ct,R=X,I=gt;return u(),p("div",oe,[t("div",re,[t("div",le,[t("button",{class:"rounded-full border border-gray-200 px-3 py-2 text-sm text-gray-700 transition hover:bg-gray-100 dark:border-gray-700 dark:text-gray-200 dark:hover:bg-gray-800",onClick:rt}," ← 返回 "),t("div",null,[e[4]||(e[4]=t("p",{class:"text-xs font-semibold uppercase tracking-wide text-blue-600 dark:text-blue-400"}," API Key 请求详情时间线 ",-1)),t("h2",ne,o(U.value),1),t("p",de,"ID: "+o(v.value),1)])]),t("div",ie,[e[5]||(e[5]=t("i",{class:"fas fa-clock text-blue-500"},null,-1)),N.value?(u(),p("span",ce,o(N.value),1)):(u(),p("span",ge,"显示近 5000 条记录"))])]),t("div",xe,[t("div",ue,[e[6]||(e[6]=t("p",{class:"text-xs uppercase text-gray-500 dark:text-gray-400"},"总请求",-1)),t("p",pe,o(g(x)(i.totalRequests)),1)]),t("div",ye,[e[7]||(e[7]=t("p",{class:"text-xs uppercase text-gray-500 dark:text-gray-400"},"总 Token",-1)),t("p",me,o(g(x)(i.totalTokens)),1)]),t("div",fe,[e[8]||(e[8]=t("p",{class:"text-xs uppercase text-gray-500 dark:text-gray-400"},"总费用",-1)),t("p",ke,o(w(i.totalCost)),1)]),t("div",be,[e[9]||(e[9]=t("p",{class:"text-xs uppercase text-gray-500 dark:text-gray-400"},"平均费用/次",-1)),t("p",_e,o(w(i.avgCost)),1)])]),t("div",ve,[t("div",he,[y(c,{modelValue:r.dateRange,"onUpdate:modelValue":e[0]||(e[0]=s=>r.dateRange=s),class:"max-w-[320px]",clearable:"","end-placeholder":"结束时间",format:"YYYY-MM-DD HH:mm:ss","start-placeholder":"开始时间",type:"datetimerange","unlink-panels":"","value-format":"YYYY-MM-DDTHH:mm:ss[Z]"},null,8,["modelValue"]),y($,{modelValue:r.model,"onUpdate:modelValue":e[1]||(e[1]=s=>r.model=s),class:"w-[180px]",clearable:"",filterable:"",placeholder:"所有模型"},{default:b(()=>[(u(!0),p(L,null,q(m.value,s=>(u(),Q(f,{key:s,label:s,value:s},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),y($,{modelValue:r.accountId,"onUpdate:modelValue":e[2]||(e[2]=s=>r.accountId=s),class:"w-[220px]",clearable:"",filterable:"",placeholder:"所有账户"},{default:b(()=>[(u(!0),p(L,null,q(a.value,s=>(u(),Q(f,{key:s.id,label:`${s.name}(${s.accountTypeName})`,value:s.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),y($,{modelValue:r.sortOrder,"onUpdate:modelValue":e[3]||(e[3]=s=>r.sortOrder=s),class:"w-[140px]",placeholder:"排序"},{default:b(()=>[y(f,{label:"时间降序",value:"desc"}),y(f,{label:"时间升序",value:"asc"})]),_:1},8,["modelValue"]),y(R,{onClick:at},{default:b(()=>e[10]||(e[10]=[t("i",{class:"fas fa-undo mr-2"},null,-1),O(" 重置 ",-1)])),_:1,__:[10]}),y(R,{loading:V.value,type:"primary",onClick:lt},{default:b(()=>e[11]||(e[11]=[t("i",{class:"fas fa-file-export mr-2"},null,-1),O(" 导出 CSV ",-1)])),_:1,__:[11]},8,["loading"])])]),t("div",we,[j.value?(u(),p("div",$e,e[12]||(e[12]=[t("i",{class:"fas fa-spinner fa-spin mr-2"},null,-1),O(" 加载中... ",-1)]))):(u(),p("div",Re,[_.value.length===0?(u(),p("div",Te,e[13]||(e[13]=[t("i",{class:"fas fa-inbox text-2xl"},null,-1),t("p",null,"暂无记录",-1)]))):(u(),p("div",Ce,[t("div",je,[t("table",De,[e[15]||(e[15]=t("thead",{class:"bg-gray-50 dark:bg-gray-800"},[t("tr",null,[t("th",{class:"px-4 py-3 text-left text-xs font-medium uppercase tracking-wider text-gray-500 dark:text-gray-300"}," 时间 "),t("th",{class:"px-4 py-3 text-left text-xs font-medium uppercase tracking-wider text-gray-500 dark:text-gray-300"}," 账户 "),t("th",{class:"px-4 py-3 text-left text-xs font-medium uppercase tracking-wider text-gray-500 dark:text-gray-300"}," 模型 "),t("th",{class:"px-4 py-3 text-left text-xs font-medium uppercase tracking-wider text-gray-500 dark:text-gray-300"}," 输入 "),t("th",{class:"px-4 py-3 text-left text-xs font-medium uppercase tracking-wider text-gray-500 dark:text-gray-300"}," 输出 "),t("th",{class:"px-4 py-3 text-left text-xs font-medium uppercase tracking-wider text-gray-500 dark:text-gray-300"}," 缓存(创/读) "),t("th",{class:"px-4 py-3 text-left text-xs font-medium uppercase tracking-wider text-gray-500 dark:text-gray-300"}," 总 Token "),t("th",{class:"px-4 py-3 text-left text-xs font-medium uppercase tracking-wider text-gray-500 dark:text-gray-300"}," 费用 "),t("th",{class:"px-4 py-3 text-right text-xs font-medium uppercase tracking-wider text-gray-500 dark:text-gray-300"}," 操作 ")])],-1)),t("tbody",Ie,[(u(!0),p(L,null,q(_.value,s=>(u(),p("tr",{key:s.timestamp+s.model},[t("td",Se,o(h(s.timestamp)),1),t("td",Ve,[t("div",Pe,[t("span",ze,o(s.accountName||"未知账户"),1),t("span",Fe,o(s.accountTypeName||"未知渠道"),1)])]),t("td",Ye,o(s.model),1),t("td",Oe,o(g(x)(s.inputTokens)),1),t("td",Me,o(g(x)(s.outputTokens)),1),t("td",Ne,o(g(x)(s.cacheCreateTokens))+" / "+o(g(x)(s.cacheReadTokens)),1),t("td",Ee,o(g(x)(s.totalTokens)),1),t("td",Be,o(s.costFormatted||w(s.cost)),1),t("td",Ue,[y(R,{size:"small",onClick:T=>W(s)},{default:b(()=>e[14]||(e[14]=[O("详情",-1)])),_:2,__:[14]},1032,["onClick"])])]))),128))])])]),t("div",He,[(u(!0),p(L,null,q(_.value,s=>(u(),p("div",{key:s.timestamp+s.model,class:"rounded-lg border border-gray-200 bg-white p-4 shadow-sm dark:border-gray-800 dark:bg-gray-900"},[t("div",Ke,[t("div",null,[t("p",Le,o(s.accountName||"未知账户"),1),t("p",qe,o(h(s.timestamp)),1)]),y(R,{size:"small",onClick:T=>W(s)},{default:b(()=>e[16]||(e[16]=[O("详情",-1)])),_:2,__:[16]},1032,["onClick"])]),t("div",Ae,[t("div",null,"模型:"+o(s.model),1),t("div",null,"总 Token:"+o(g(x)(s.totalTokens)),1),t("div",null,"输入:"+o(g(x)(s.inputTokens)),1),t("div",null,"输出:"+o(g(x)(s.outputTokens)),1),t("div",null," 缓存创/读:"+o(g(x)(s.cacheCreateTokens))+" / "+o(g(x)(s.cacheReadTokens)),1),t("div",Je," 费用:"+o(s.costFormatted||w(s.cost)),1)])]))),128))]),t("div",Qe,[t("div",We," 共 "+o(d.totalRecords)+" 条记录 ",1),y(I,{background:"","current-page":d.currentPage,layout:"prev, pager, next, sizes","page-size":d.pageSize,"page-sizes":[20,50,100,200],total:d.totalRecords,onCurrentChange:et,onSizeChange:st},null,8,["current-page","page-size","total"])])]))]))]),y(ae,{record:z.value,show:P.value,onClose:ot},null,8,["record","show"])])}}};export{es as default};
|