Files
monisuo/monisuo-admin/dist/assets/dashboard-B15-BjPR.js
2026-04-18 10:02:47 +08:00

1 line
8.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{I as e,Q as t,R as n,b as r,g as i,h as a,l as o,m as s,v as c,wt as l,x as u,xt as d,y as f,yt as p}from"./vue.runtime.esm-bundler-DS0mm12S.js";import{I as m,V as ee,X as te,nt as h}from"./index-CzQJleEd.js";import"./Teleport-BFem-E2C.js";import"./button-DrsgHYrz.js";import{f as g,l as _}from"./monisuo-admin.api-B4Uh3IMq.js";import{t as v}from"./Card-CF2bJMB0.js";import{t as y}from"./CardContent-_BI4zg4C.js";import{r as ne}from"./global-layout-CliiddUG.js";import{t as re}from"./Badge-BMYp-tx9.js";import{t as b}from"./decimal-D2wgARr3.js";var ie={key:0,class:`flex items-center justify-center py-20`},x={key:1,class:`grid gap-6`},S={class:`grid gap-4 grid-cols-1 sm:grid-cols-2 lg:grid-cols-4`},C={class:`flex items-center justify-between mb-3`},w={class:`text-xs text-muted-foreground mb-1`},T={class:`grid gap-6 lg:grid-cols-5`},E={class:`lg:col-span-3`},D={class:`text-sm font-medium text-muted-foreground flex items-center gap-2 mb-3`},O={class:`lg:col-span-2`},k={class:`text-sm font-medium text-muted-foreground flex items-center gap-2 mb-3`},A={class:`grid gap-3`},j={class:`flex items-center justify-between`},M={class:`flex items-center gap-3`},N={class:`text-sm text-muted-foreground`},P={class:`grid gap-6 lg:grid-cols-5`},F={class:`lg:col-span-2`},I={class:`text-sm font-medium text-muted-foreground flex items-center gap-2 mb-3`},ae={class:`grid gap-3 grid-cols-2`},L={class:`flex items-center justify-center mb-2`},R={class:`text-xs text-muted-foreground text-center mb-1`},z={class:`text-xl font-bold text-center`},B={class:`lg:col-span-3`},V={class:`text-sm font-medium text-muted-foreground flex items-center gap-2 mb-3`},H={class:`grid gap-3 grid-cols-2 sm:grid-cols-4`},U=u({__name:`dashboard`,setup(u){let U=m(),{data:W,isLoading:G}=g(),{data:K,isLoading:q}=_(6),J=s(()=>G.value||q.value),Y=s(()=>W.value?.data),X=s(()=>K.value?.data||[]);function Z(e){let t=e||0;return t>=1e8?`${(t/1e8).toFixed(2)}亿`:t>=1e4?`${(t/1e4).toFixed(1)}`:t.toLocaleString(`en-US`,{minimumFractionDigits:2,maximumFractionDigits:2})}function Q(e,t){if(t===0)return e>0?{text:`+100%`,up:!0}:{text:`0%`,up:!0};let n=new b(e).minus(t).div(t).mul(100).toDecimalPlaces(1);return{text:`${n.gte(0)?`+`:``}${n}%`,up:n.gte(0)}}let oe=s(()=>{let e=Y.value;if(!e)return[];let t=(e.totalDeposit||0)-(e.totalWithdraw||0),n=Q(e.monthlyDeposit,e.lastMonthDeposit),r=Q(e.monthlyWithdraw,e.lastMonthWithdraw),i=Q(e.monthlyDeposit-e.monthlyWithdraw,e.lastMonthDeposit-e.lastMonthWithdraw);return[{label:`累计充值`,value:e.totalDeposit,icon:`lucide:arrow-down-to-line`,color:`text-emerald-600`,bgColor:`bg-emerald-50 dark:bg-emerald-950/40`,growth:n},{label:`累计提现`,value:e.totalWithdraw,icon:`lucide:arrow-up-from-line`,color:`text-red-500`,bgColor:`bg-red-50 dark:bg-red-950/40`,growth:r},{label:`实际出款`,value:e.totalActualPayout,icon:`lucide:banknote`,color:`text-amber-600`,bgColor:`bg-amber-50 dark:bg-amber-950/40`,growth:r},{label:`净流入`,value:t,icon:`lucide:trending-up`,color:`text-sky-600`,bgColor:`bg-sky-50 dark:bg-sky-950/40`,growth:i}]}),se=s(()=>({tooltip:{trigger:`axis`,formatter(e){let t=Array.isArray(e)?e:[e],n=t.map(e=>`${e.marker} ${e.seriesName}: USDT ${Number(e.value).toLocaleString()}`);return`<div style="font-size:12px"><b>${t[0].axisValue}</b><br/>${n.join(`<br/>`)}</div>`}},legend:{data:[`充值`,`提现`],bottom:0},grid:{left:`3%`,right:`4%`,bottom:`14%`,top:`8%`,containLabel:!0},xAxis:{type:`category`,data:X.value.map(e=>e.month),axisTick:{show:!1},axisLine:{lineStyle:{color:`#e5e7eb`}}},yAxis:{type:`value`,axisLabel:{formatter(e){return e>=1e4?`${(e/1e4).toFixed(0)}`:`${e}`}},splitLine:{lineStyle:{color:`#f3f4f6`,type:`dashed`}}},series:[{name:`充值`,type:`line`,smooth:!0,symbol:`circle`,symbolSize:6,data:X.value.map(e=>e.deposit),itemStyle:{color:`#10b981`},areaStyle:{color:{type:`linear`,x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:`rgba(16, 185, 129, 0.25)`},{offset:1,color:`rgba(16, 185, 129, 0.02)`}]}}},{name:`提现`,type:`line`,smooth:!0,symbol:`circle`,symbolSize:6,data:X.value.map(e=>e.withdraw),itemStyle:{color:`#ef4444`},areaStyle:{color:{type:`linear`,x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:`rgba(239, 68, 68, 0.25)`},{offset:1,color:`rgba(239, 68, 68, 0.02)`}]}}}]})),ce=s(()=>{let e=Y.value;return e?[{label:`平台总资产`,value:(e.fundBalance||0)+(e.tradeValue||0),icon:`lucide:landmark`,color:`text-violet-600`},{label:`在管资金`,value:e.fundBalance,icon:`lucide:wallet`,color:`text-blue-600`},{label:`冻结中`,value:e.totalFrozen,icon:`lucide:lock`,color:`text-slate-500`}]:[]}),le=s(()=>{let e=Y.value;return e?[{label:`用户总数`,value:e.userCount,icon:`lucide:users`,color:`text-blue-600`,bgColor:`bg-blue-50 dark:bg-blue-950/40`},{label:`今日活跃`,value:e.todayActiveUsers,icon:`lucide:activity`,color:`text-green-600`,bgColor:`bg-green-50 dark:bg-green-950/40`},{label:`本月新增`,value:e.monthNewUsers,icon:`lucide:user-plus`,color:`text-purple-600`,bgColor:`bg-purple-50 dark:bg-purple-950/40`},{label:`待审批`,value:e.pendingCount,icon:`lucide:clock`,color:e.pendingCount>0?`text-amber-600`:`text-slate-500`,bgColor:e.pendingCount>0?`bg-amber-50 dark:bg-amber-950/40`:`bg-slate-50 dark:bg-slate-950/40`}]:[]});function $(e){U.push(e)}return(s,u)=>{let m=te,g=re,_=y,b=v;return e(),i(p(ne),{title:`数据看板`,description:`核心业务数据一览`},{default:t(()=>[p(J)?(e(),c(`div`,ie,[r(m,{class:`w-8 h-8`})])):(e(),c(`div`,x,[a(`section`,null,[a(`div`,S,[(e(!0),c(o,null,n(p(oe),n=>(e(),i(b,{key:n.label,class:`hover:shadow-sm transition-shadow`},{default:t(()=>[r(_,{class:`p-5`},{default:t(()=>[a(`div`,C,[a(`div`,{class:d([`p-2 rounded-lg`,[n.bgColor]])},[r(p(h),{icon:n.icon,class:d([`size-4`,n.color])},null,8,[`icon`,`class`])],2),r(g,{variant:n.growth.up?`default`:`destructive`,class:`text-xs font-mono`},{default:t(()=>[f(l(n.growth.text),1)]),_:2},1032,[`variant`])]),a(`p`,w,l(n.label),1),a(`p`,{class:d([`text-xl font-bold font-mono truncate`,n.color])},l(Z(n.value)),3)]),_:2},1024)]),_:2},1024))),128))])]),a(`div`,T,[a(`section`,E,[a(`h2`,D,[r(p(h),{icon:`lucide:trending-up`,class:`size-4`}),u[4]||=f(` 资金流动趋势近6月 `,-1)]),r(b,null,{default:t(()=>[r(_,{class:`p-4`},{default:t(()=>[r(p(ee),{option:p(se),autoresize:``,style:{height:`280px`}},null,8,[`option`])]),_:1})]),_:1})]),a(`section`,O,[a(`h2`,k,[r(p(h),{icon:`lucide:wallet`,class:`size-4`}),u[5]||=f(` 资产状态 `,-1)]),a(`div`,A,[(e(!0),c(o,null,n(p(ce),n=>(e(),i(b,{key:n.label,class:`hover:shadow-sm transition-shadow`},{default:t(()=>[r(_,{class:`p-4`},{default:t(()=>[a(`div`,j,[a(`div`,M,[r(p(h),{icon:n.icon,class:`size-4 text-muted-foreground`},null,8,[`icon`]),a(`span`,N,l(n.label),1)]),a(`span`,{class:d([`text-lg font-bold font-mono`,n.color])},l(Z(n.value)),3)])]),_:2},1024)]),_:2},1024))),128))])])]),a(`div`,P,[a(`section`,F,[a(`h2`,I,[r(p(h),{icon:`lucide:activity`,class:`size-4`}),u[6]||=f(` 运营快报 `,-1)]),a(`div`,ae,[(e(!0),c(o,null,n(p(le),n=>(e(),i(b,{key:n.label,class:d([`hover:shadow-sm transition-shadow`,{"cursor-pointer":n.label===`待审批`}]),onClick:e=>n.label===`待审批`&&$(`/monisuo/orders`)},{default:t(()=>[r(_,{class:`p-4`},{default:t(()=>[a(`div`,L,[a(`div`,{class:d([`p-2 rounded-lg`,[n.bgColor]])},[r(p(h),{icon:n.icon,class:d([`size-4`,n.color])},null,8,[`icon`,`class`])],2)]),a(`p`,R,l(n.label),1),a(`p`,z,l(n.value),1)]),_:2},1024)]),_:2},1032,[`class`,`onClick`]))),128))])]),a(`section`,B,[a(`h2`,V,[r(p(h),{icon:`lucide:zap`,class:`size-4`}),u[7]||=f(` 快捷入口 `,-1)]),a(`div`,H,[r(b,{class:`cursor-pointer hover:shadow-md hover:border-primary/50 transition-all`,onClick:u[0]||=e=>$(`/monisuo/users`)},{default:t(()=>[r(_,{class:`p-4 text-center`},{default:t(()=>[r(p(h),{icon:`lucide:users`,class:`size-6 mx-auto mb-2 text-blue-600`}),u[8]||=a(`p`,{class:`text-sm font-medium`},` 用户管理 `,-1)]),_:1})]),_:1}),r(b,{class:`cursor-pointer hover:shadow-md hover:border-primary/50 transition-all`,onClick:u[1]||=e=>$(`/monisuo/coins`)},{default:t(()=>[r(_,{class:`p-4 text-center`},{default:t(()=>[r(p(h),{icon:`lucide:coins`,class:`size-6 mx-auto mb-2 text-yellow-600`}),u[9]||=a(`p`,{class:`text-sm font-medium`},` 币种管理 `,-1)]),_:1})]),_:1}),r(b,{class:`cursor-pointer hover:shadow-md hover:border-primary/50 transition-all`,onClick:u[2]||=e=>$(`/monisuo/orders`)},{default:t(()=>[r(_,{class:`p-4 text-center`},{default:t(()=>[r(p(h),{icon:`lucide:clipboard-check`,class:`size-6 mx-auto mb-2 text-green-600`}),u[10]||=a(`p`,{class:`text-sm font-medium`},` 订单审批 `,-1)]),_:1})]),_:1}),r(b,{class:`cursor-pointer hover:shadow-md hover:border-primary/50 transition-all`,onClick:u[3]||=e=>$(`/monisuo/analytics`)},{default:t(()=>[r(_,{class:`p-4 text-center`},{default:t(()=>[r(p(h),{icon:`lucide:trending-up`,class:`size-6 mx-auto mb-2 text-purple-600`}),u[11]||=a(`p`,{class:`text-sm font-medium`},` 业务分析 `,-1)]),_:1})]),_:1})])])])]))]),_:1})}}});export{U as default};