1var Ye=Object.defineProperty;var fe=Object.getOwnPropertySymbols;var Ge=Object.prototype.hasOwnProperty,$e=Object.prototype.propertyIsEnumerable;var ye=(_,u,c)=>u in _?Ye(_,u,{enumerable:!0,configurable:!0,writable:!0,value:c}):_[u]=c,we=(_,u)=>{for(var c in u||(u={}))Ge.call(u,c)&&ye(_,c,u[c]);if(fe)for(var c of fe(u))$e.call(u,c)&&ye(_,c,u[c]);return _};var v=(_,u,c)=>new Promise((A,D)=>{var I=g=>{try{y(c.next(g))}catch(S){D(S)}},w=g=>{try{y(c.throw(g))}catch(S){D(S)}},y=g=>g.done?A(g.value):Promise.resolve(g.value).then(I,w);y((c=c.apply(_,u)).next())});import{V as Ke,r,c as qe,Y as Xe,af as p,az as We,Z as F,a0 as o,ad as n,$ as a,a6 as x,ao as Ze,a2 as C,a3 as s,a1 as O,ah as ie,a4 as Te,a5 as Qe,a7 as xe,ac as q,a8 as ea,i as B,a9 as aa,aa as ta}from"./vendor-575eae6c.js";import{A as sa}from"./admin_service-5d5ca99d.js";import{b as la,d as m,r as oa,P as ce}from"./index-27244a51.js";import{f as b,D as de}from"./audiox_models-5f79f9a8.js";import{j as L,d as na,e as ra}from"./format_utils-478be9d3.js";import{_ as ia}from"./StatisticTabs.vue_vue_type_script_setup_true_lang-60886dfb.js";import{_ as ca}from"./_plugin-vue_export-helper-c27b6911.js";const f=_=>(aa("data-v-87a4a2da"),_=_(),ta(),_),da={class:"h-screen overflow-y-auto bg-gray-50 p-4 md:p-6"},ua={class:"flex flex-wrap items-end gap-3"},_a=f(()=>a("div",{class:"mt-3 text-xs text-gray-400"}," æ¯ä»æ¶é´åªéå®ä»è´¹ç¨æ·ä¸å
å¼éé¢å£å¾ï¼ä½é¢å Job æ¶èå±ç¤ºæéç¨æ·çå½å/ç´¯è®¡æ°æ®ã ",-1)),va={class:"mb-4 grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-5"},pa=f(()=>a("div",{class:"metric-label"},"ä»è´¹ç¨æ·",-1)),ma={class:"metric-value"},ga={class:"metric-label"},ha={class:"metric-value"},ba=f(()=>a("div",{class:"metric-label"},"累计 Job æ¶è Token",-1)),fa={class:"metric-value"},ya=f(()=>a("div",{class:"metric-label"},"æ®é Token ä½é¢",-1)),wa={class:"metric-value"},Ta=f(()=>a("div",{class:"metric-label"},"æå®¢ä¸é¡¹ Token ä½é¢",-1)),xa={class:"metric-value"},Ca={class:"dashboard-grid"},Sa={class:"border-b border-gray-100 px-4 py-3"},Pa=f(()=>a("div",{class:"font-semibold text-gray-800"},"ä»è´¹ç¨æ·",-1)),ka={class:"mt-1 text-xs text-gray-400"},Da={class:"user-list"},Ea=["onClick"],Ia={class:"user-avatar"},Ua={class:"min-w-0 flex-1 text-left"},za={class:"truncate font-medium text-gray-800"},Oa={class:"mt-1 truncate text-xs text-gray-400"},La={class:"mt-2 flex items-center justify-between gap-2 text-xs"},Aa={class:"text-gray-500"},Ja={class:"font-semibold text-gray-700"},Na={class:"mt-1 flex items-center justify-between gap-2 text-xs text-gray-400"},Ra={class:"border-t border-gray-100 px-3 py-3"},Va={class:"border-b border-gray-100 px-5 py-4"},Ma={class:"flex flex-wrap items-start justify-between gap-4"},ja={class:"text-lg font-semibold text-gray-900"},Fa={class:"mt-1 text-sm text-gray-400"},Ba={class:"mt-1 text-xs text-gray-400"},Ha={class:"flex flex-wrap gap-2"},Ya={class:"balance-pill"},Ga=f(()=>a("span",null,"æ®éä½é¢",-1)),$a={class:"balance-pill special"},Ka=f(()=>a("span",null,"æå®¢ä¸é¡¹ä½é¢",-1)),qa={class:"mt-4 grid grid-cols-2 gap-3 md:grid-cols-4"},Xa={class:"detail-stat"},Wa={class:"detail-stat"},Za=f(()=>a("span",null,"æå订å",-1)),Qa={class:"detail-stat"},et=f(()=>a("span",null,"Job æ°",-1)),at={class:"detail-stat"},tt=f(()=>a("span",null,"累计æ¶è Token",-1)),st={class:"truncate font-medium"},lt={class:"mt-1 text-xs text-gray-400"},ot={class:"font-semibold text-gray-800"},nt={class:"mt-1 text-xs text-gray-400"},rt={class:"flex justify-end px-4 py-3"},it={class:"font-medium text-gray-800"},ct={class:"mt-1 text-xs text-gray-400"},dt={class:"font-semibold"},ut={class:"flex justify-end px-4 py-3"},_t=Ke({__name:"PaidUserDashboard",setup(_){const u=new sa,c=la(),A=()=>({paidUserCount:0,totalPaidCents:0,totalConsumedTokens:0,totalGeneralRemainingTokens:0,totalSpecialRemainingTokens:0}),D=r(""),I=r("all"),w=r(null),y=r(1),g=r(20),S=r(0),U=r([]),E=r(A()),i=r(),J=r(!1),X=r("jobs"),N=r([]),R=r(1),W=r(20),H=r(0),Z=r(!1),V=r([]),M=r(1),Q=r(20),Y=r(0),ee=r(!1),ae=qe(()=>w.value?"çéæå
å¼":"累计å
å¼"),Ce=()=>{if(!w.value)return{};const e=new Date(w.value[0]),l=new Date(w.value[1]);return e.setHours(0,0,0,0),l.setHours(23,59,59,999),{paidStartDate:e.getTime(),paidEndDate:l.getTime()}},z=e=>{c.showErrorMessage(e||B.t("common.internalError"))},G=()=>v(this,null,function*(){var l,T;const e=(l=i.value)==null?void 0:l.userId;if(!e){N.value=[],H.value=0;return}Z.value=!0;try{const d=yield u.queryPaidUserJobs(e,{page:R.value-1,pageSize:W.value});if(!d.data){z(d.errorMessage);return}if(((T=i.value)==null?void 0:T.userId)!==e)return;N.value=d.data.jobs||[],H.value=Number(d.data.total||0)}catch(d){z()}finally{Z.value=!1}}),$=()=>v(this,null,function*(){var l,T;const e=(l=i.value)==null?void 0:l.userId;if(!e){V.value=[],Y.value=0;return}ee.value=!0;try{const d=yield u.queryPaidUserTransactions(e,{page:M.value-1,pageSize:Q.value});if(!d.data){z(d.errorMessage);return}if(((T=i.value)==null?void 0:T.userId)!==e)return;V.value=d.data.transactions||[],Y.value=Number(d.data.total||0)}catch(d){z()}finally{ee.value=!1}}),te=e=>v(this,null,function*(){i.value=e,R.value=1,M.value=1,N.value=[],V.value=[],H.value=0,Y.value=0,e&&(X.value==="jobs"?yield G():yield $())}),j=()=>v(this,null,function*(){var e;J.value=!0;try{const l=yield u.queryPaidUsers(we({page:y.value-1,pageSize:g.value,keyword:D.value.trim(),balanceStatus:I.value},Ce()));if(!l.data){z(l.errorMessage),U.value=[],S.value=0,E.value=A(),yield te(void 0);return}U.value=l.data.users||[],S.value=Number(l.data.total||0),E.value=l.data.summary||A();const T=(e=i.value)==null?void 0:e.userId,d=U.value.find(le=>le.userId===T)||U.value[0];yield te(d)}catch(l){z()}finally{J.value=!1}}),ue=()=>v(this,null,function*(){y.value=1,yield j()}),Se=()=>v(this,null,function*(){D.value="",I.value="all",w.value=null,y.value=1,yield j()}),Pe=e=>v(this,null,function*(){e==="transactions"&&V.value.length===0?yield $():e==="jobs"&&N.value.length===0&&(yield G())}),ke=e=>v(this,null,function*(){y.value=e,yield j()}),De=e=>v(this,null,function*(){g.value=e,y.value=1,yield j()}),Ee=e=>v(this,null,function*(){R.value=e,yield G()}),Ie=e=>v(this,null,function*(){W.value=e,R.value=1,yield G()}),Ue=e=>v(this,null,function*(){M.value=e,yield $()}),ze=e=>v(this,null,function*(){Q.value=e,M.value=1,yield $()}),K=e=>
1(Number(e||0)/100).toLocaleString("zh-CN",{style:"currency",currency:"CNY",minimumFractionDigits:2}),P=e=>L(Math.max(0,Math.round(Number(e||0)))),se=e=>e?ra(e):"-",Oe={[b.LEGACY]:"è§é¢ç´è¯",[b.PODCAST]:"å¤è¯è§é¢è½¬ä¸é
",[b.PODCAST_OUT]:"䏿è§é¢è½¬å¤è¯",[b.DEMO_SPEECH]:"é¦é¡µæ¼ç¤º",[b.SUBTITLE_TOOL]:"å广å䏿¦é¤"},Le=e=>e?Oe[e]||e:"-",Ae=e=>{if(!e)return"-";const l=`audiox.dubbing.jobStatus.${e}`;return B.exists(l)?B.t(l):e},_e=e=>{if(!e)return"-";const l=`audiox.language.${e}`;return B.exists(l)?B.t(l):e},Je=e=>e?{reserved:"颿£ä¸",settled:"å·²ç»ç®",refunded:"å·²éå"}[e]||e:"-",Ne=e=>({[m.UNKNOWN]:"æªç¥",[m.CREATED]:"å¾
æ¯ä»",[m.PAID]:"å·²æ¯ä»",[m.REFUNDED]:"已鿬¾",[m.CANCELLED]:"已忶",[m.EXPIRED]:"å·²è¿æ",[m.FAILED]:"æ¯ä»å¤±è´¥",[m.PAYING]:"æ¯ä»ä¸"})[e]||String(e),Re=e=>e===m.PAID?"success":e===m.PAYING||e===m.CREATED?"warning":e===m.FAILED?"danger":"info",Ve=e=>e===1?"微信æ¯ä»":"æªç¥å¹³å°",Me=e=>e.type===b.DEMO_SPEECH||e.type===b.SUBTITLE_TOOL?void 0:(e.type===b.PODCAST_OUT?ce.PODCAST_OUT_PROJECT:e.type===b.PODCAST?ce.PODCAST_PROJECT:ce.PROJECT).replace(":jobId",e._id),ve=e=>{const l=e.status===de.DELETED&&e.prechargeStatus==="settled";return!!e.title&&e.type!==b.DEMO_SPEECH&&e.type!==b.SUBTITLE_TOOL&&(e.status===de.READY_FOR_EDITOR||e.status===de.EXPORTED||l)},je=e=>{if(!ve(e))return;const l=Me(e);l&&window.open(oa.resolve(l).href,"_blank","noopener,noreferrer")};return Xe(j),(e,l)=>{const T=p("el-input"),d=p("el-form-item"),le=p("el-date-picker"),oe=p("el-option"),Fe=p("el-select"),pe=p("el-button"),k=p("el-card"),me=p("el-empty"),ne=p("el-pagination"),h=p("el-table-column"),ge=p("el-table"),he=p("el-tab-pane"),Be=p("el-tag"),He=p("el-tabs"),re=We("loading");return x(),F("div",da,[o(ia),o(k,{shadow:"never",class:"mb-4"},{default:n(()=>[a("div",ua,[o(d,{label:"ç¨æ·",class:"!mb-0"},{default:n(()=>[o(T,{modelValue:D.value,"onUpdate:modelValue":l[0]||(l[0]=t=>D.value=t),clearable:"",class:"w-64",placeholder:"æµç§°ãææºå·æé®ç®±",onKeyup:Ze(ue,["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),o(d,{label:"æ¯ä»æ¶é´",class:"!mb-0"},{default:n(()=>[o(le,{modelValue:w.value,"onUpdate:modelValue":l[1]||(l[1]=t=>w.value=t),type:"daterange","unlink-panels":"","range-separator":"è³","start-placeholder":"å¼å§æ¥æ","end-placeholder":"ç»ææ¥æ",clearable:""},null,8,["modelValue"])]),_:1}),o(d,{label:"ä½é¢",class:"!mb-0"},{default:n(()=>[o(Fe,{modelValue:I.value,"onUpdate:modelValue":l[2]||(l[2]=t=>I.value=t),class:"w-32"},{default:n(()=>[o(oe,{label:"å
¨é¨",value:"all"}),o(oe,{label:"æä½é¢",value:"positive"}),o(oe,{label:"å·²èå°½",value:"depleted"})]),_:1},8,["modelValue"])]),_:1}),o(pe,{type:"primary",loading:J.value,onClick:ue},{default:n(()=>[C("æ¥è¯¢")]),_:1},8,["loading"]),o(pe,{onClick:Se},{default:n(()=>[C("éç½®")]),_:1})]),_a]),_:1}),a("div",va,[o(k,{shadow:"never",class:"metric-card"},{default:n(()=>[pa,a("div",ma,s(O(L)(E.value.paidUserCount)),1)]),_:1}),o(k,{shadow:"never",class:"metric-card"},{default:n(()=>[a("div",ga,s(ae.value),1),a("div",ha,s(K(E.value.totalPaidCents)),1)]),_:1}),o(k,{shadow:"never",class:"metric-card"},{default:n(()=>[ba,a("div",fa,s(P(E.value.totalConsumedTokens)),1)]),_:1}),o(k,{shadow:"never",class:"metric-card"},{default:n(()=>[ya,a("div",wa,s(P(E.value.totalGeneralRemainingTokens)),1)]),_:1}),o(k,{shadow:"never",class:"metric-card special-metric-card"},{default:n(()=>[Ta,a("div",xa,s(P(E.value.totalSpecialRemainingTokens)),1)]),_:1})]),a("div",Ca,[o(k,{shadow:"never",class:"user-panel","body-style":{padding:"0"}},{default:n(()=>[a("div",Sa,[Pa,a("div",ka,"å
± "+s(O(L)(S.value))+" 人",1)]),ie((x(),F("div",Da,[(x(!0),F(Te,null,Qe(U.value,t=>{var be;return x(),F("button",{key:t.userId,type:"button",class:xe(["user-list-item",{active:((be=i.value)==null?void 0:be.userId)===t.userId}]),onClick:vt=>te(t)},[a("div",Ia,s((t.nickname||"?").slice(0,1).toUpperCase()),1),a("div",Ua,[a("div",za,s(t.nickname||"-"),1),a("div",Oa,s(t.phone!=="-"?t.phone:t.email),1),a("div",La,[a("span",Aa,s(ae.value),1),a("span",Ja,s(K(t.totalPaidCents)),1)]),a("div",Na,[a("span",null,"Job "+s(O(L)(t.jobCount)),1),a("span",null,"æ¶è "+s(P(t.totalConsumedTokens)),1)])])],10,Ea)}),128)),!J.value&&U.value.length===0?(x(),q(me,{key:0,description:"ææ ä»è´¹ç¨æ·"})):ea("",!0)])),[[re,J.value]]),a("div",Ra,[o(ne,{small:"",background:"",layout:"prev, pager, next, sizes",total:S.value,"current-page":y.value,"page-size":g.value,"page-sizes":[10,20,50],onCurrentChange:ke,onSizeChange:De},null,8,["total","current-page","page-size"])])]),_:1}),o(k,{shadow:"never",class:"min-w-0","body-style":{padding:"0"}},{default:n(()=>[i.value?(x(),F(Te,{key:0},[a("div",Va,[a("div",Ma,[a("div",null,[a("div",ja,s(i.value.nickname),1),a("div",Fa,s(i.value.phone)+" · "+s(i.value.email),1),a("div",Ba,"ç¨æ· IDï¼"+s(i.value.userId),1)]),a("div",Ha,[a("div",Ya,[Ga,a("strong",null,s(P(i.value.generalRemainingTokens)),1)]),a("div",$a,[Ka,a("strong",null,s(P(i.value.specialRemainingTokens)),1)])])]),a("div",qa,[a("div",Xa,[a("span",null,s(ae.value),1),a("strong",null,s(K(i.value.totalPaidCents)),1)]),a("div",Wa,[Za,a("strong",null,s(O(L)(i.value.paidOrderCount)),1)]),a("div",Qa,[et,a("strong",null,s(O(L)(i.value.jobCount)),1)]),a("div",at,[tt,a("strong",null,s(P(i.value.totalConsumedTokens)),1)])])]),o(He,{modelValue:X.value,"onUpdate:modelValue":l[3]||(l[3]=t=>X.value=t),class:"detail-tabs",onTabChange:Pe},{default:n(()=>[o(he,{label:"Job è®°å½",name:"jobs"},{default:n(()=>[ie((x(),q(ge,{data:N.value,height:"520",stripe:"",onRowClick:je},{default:n(()=>[o(h,{prop:"title",label:"Job","min-width":"190"},{default:n(t=>[a("div",{class:xe({"clickable-job":ve(t.row)})},[a("div",st,s(t.row.title||"-"),1),a("div",lt,s(Le(t.row.type))+" · "+s(_e(t.row.sourceLanguage))+" â "+s(_e(t.row.targetLanguage)),1)],2)]),_:1}),o(h,{label:"æ¶é¿",width:"90"},{default:n(t=>[C(s(O(na)(Number(t.row.duration||0))),1)]),_:1}),o(h,{label:"è±è´¹ Token","min-width":"130",align:"right"},{default:n(t=>[a("span",ot,s(P(t.row.consumedTokens)),1),a("div",nt,s(Je(t.row.prechargeStatus)),1)]),_:1}),o(h,{label:"ç¶æ","min-width":"110"},{default:n(t=>[C(s(Ae(t.row.status)),1)]),_:1}),o(h,{label:"å建æ¶é´",width:"170"},{default:n(t=>[C(s(se(t.row.createTimestamp)),1)]),_:1})]),_:1},8,["data"])),[[re,Z.value]]),a("div",rt,[o(ne,{background:"",layout:"total, prev, pager, next, sizes",total:H.value,"current-page":R.value,"page-size":W.value,"page-sizes":[10,20,50,100],onCurrentChange:Ee,onSizeChange:Ie},null,8,["total","current-page","page-size"])])]),_:1}),o(he,{label:"å
å¼è®°å½",name:"transactions"},{default:n(()=>[ie((x(),q(ge,{data:V.value,height:"520",stripe:""},{default:n(()=>[o(h,{label:"产å","min-width":"210"},{default:n(t=>[a("div",it,s(t.row.productName),1),a("div",ct,s(t.row.productId),1)]),_:1}),o(h,{label:"éé¢",width:"130",align:"right"},{default:n(t=>[a("span",dt,s(K(t.row.totalCents)),1)]),_:1}),o(h,{label:"ç¶æ",width:"100"},{default:n(t=>[o(Be,{size:"small",type:Re(t.row.status)},{default:n(()=>[C(s(Ne(t.row.status)),1)]),_:2},1032,["type"])]),_:1}),o(h,{label:"æ¯ä»å¹³å°",width:"110"},{default:n(t=>
1[C(s(Ve(t.row.platform)),1)]),_:1}),o(h,{label:"å建æ¶é´",width:"170"},{default:n(t=>[C(s(se(t.row.createdAt)),1)]),_:1}),o(h,{label:"宿æ¶é´",width:"170"},{default:n(t=>[C(s(se(t.row.updatedAt)),1)]),_:1})]),_:1},8,["data"])),[[re,ee.value]]),a("div",ut,[o(ne,{background:"",layout:"total, prev, pager, next, sizes",total:Y.value,"current-page":M.value,"page-size":Q.value,"page-sizes":[10,20,50,100],onCurrentChange:Ue,onSizeChange:ze},null,8,["total","current-page","page-size"])])]),_:1})]),_:1},8,["modelValue"])],64)):(x(),q(me,{key:1,description:"è¯·éæ©ä»è´¹ç¨æ·",class:"py-24"}))]),_:1})])])}}});const Tt=ca(_t,[["__scopeId","data-v-87a4a2da"]]);export{Tt as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.