Files
monisuo/monisuo-admin/dist/assets/analytics-6feOrkzj.js

1 line
8.5 KiB
JavaScript
Raw Normal View History

2026-03-22 23:32:23 +08:00
import{Ct as e,Ot as t,S as n,Tt as r,V as i,_ as a,b as o,d as s,g as c,nt as l,v as u,w as d,x as f,y as ee,z as p}from"./vue.runtime.esm-bundler-DQjudA8G.js";import{t as te}from"./Spinner-BbvbfTgK.js";import{W as m}from"./index-CcML0o3b.js";import"./Teleport-CLYBkdRb.js";import"./Button-2mdP_ygs.js";import{c as h,d as g,i as _,l as v,u as ne}from"./monisuo-admin.api-BMEy8kfy.js";import{t as y}from"./iconify-B5QdRg7l.js";import{r as re}from"./global-layout-BuXj6D-T.js";import{t as ie}from"./Card-Cv6HQPiQ.js";import{t as b}from"./CardContent-cvoMlP3H.js";import{t as x}from"./Badge-Df1MwAP1.js";var S={key:0,class:`flex items-center justify-center py-20`},C={key:1,class:`space-y-6`},w={class:`text-sm font-medium text-muted-foreground mb-3 flex items-center gap-2`},T={class:`grid gap-3 sm:grid-cols-2 lg:grid-cols-4`},E={class:`flex items-center justify-between mb-3`},D={class:`text-xs text-muted-foreground`},O={class:`text-xs text-muted-foreground`},k={class:`text-sm font-medium text-muted-foreground mb-3 flex items-center gap-2`},A={class:`grid gap-4 lg:grid-cols-3`},j={class:`text-sm font-medium text-muted-foreground mb-3 flex items-center gap-2`},M={class:`lg:col-span-2`},N={class:`text-sm font-medium text-muted-foreground mb-3 flex items-center gap-2`},P={class:`grid gap-4`},F={class:`grid gap-3 sm:grid-cols-4`},I={class:`text-xs text-muted-foreground`},L={class:`text-xl font-bold mt-1`},R={class:`grid gap-4 lg:grid-cols-2`},z={class:`text-sm font-medium text-muted-foreground mb-3 flex items-center gap-2`},ae={class:`grid gap-3 sm:grid-cols-2`},B={class:`flex items-center justify-between mb-2`},V={class:`text-sm font-medium`},H={class:`text-xs text-muted-foreground`},U={class:`flex items-baseline gap-2`},W={class:`text-sm font-medium text-muted-foreground mb-3 flex items-center gap-2`},G={class:`space-y-3`},K={class:`flex items-start gap-3`},q={class:`font-medium`},J={class:`text-sm text-muted-foreground mt-1`},Y=d({__name:`analytics`,setup(d){let{data:Y,isLoading:oe}=h(`month`),se=c(()=>{let e=Y.value?.data;return e?[{label:`交易手续费`,value:e.tradeFee,rate:e.tradeFeeRate,icon:`lucide:percent`,color:`text-green-600`},{label:`充提手续费`,value:e.fundFee,rate:e.fundFeeRate,icon:`lucide:credit-card`,color:`text-blue-600`},{label:`资金利差`,value:e.interestProfit,rate:e.interestRate,icon:`lucide:trending-up`,color:`text-purple-600`},{label:`本月收益`,value:e.totalProfit,rate:`+18.5%`,icon:`lucide:dollar-sign`,color:`text-orange-600`}]:[]}),{data:X,isLoading:ce}=ne(`week`),Z=c(()=>{let e=X.value?.data?.trend||[];return{tooltip:{trigger:`axis`},legend:{data:[`买入`,`卖出`],bottom:0},grid:{left:`3%`,right:`4%`,bottom:`15%`,top:`5%`,containLabel:!0},xAxis:{type:`category`,data:e.map(e=>e.date)},yAxis:{type:`value`},series:[{name:`买入`,type:`line`,smooth:!0,data:e.map(e=>e.buy),itemStyle:{color:`#10b981`}},{name:`卖出`,type:`line`,smooth:!0,data:e.map(e=>e.sell),itemStyle:{color:`#ef4444`}}]}}),{data:le}=_(`month`),ue=c(()=>{let e=le.value?.data||[],t=[`#f7931a`,`#627eea`,`#26a17b`,`#9ca3af`];return{tooltip:{trigger:`item`,formatter:`{b}: {d}%`},legend:{orient:`vertical`,right:`5%`,top:`center`},series:[{type:`pie`,radius:[`50%`,`75%`],center:[`35%`,`50%`],itemStyle:{borderRadius:8,borderColor:`#fff`,borderWidth:2},label:{show:!0,position:`inside`,formatter:`{d}%`,fontSize:11},data:e.map((e,n)=>({value:e.amount,name:e.coinCode,itemStyle:{color:t[n%t.length]}}))}]}}),{data:Q}=g(6),de=c(()=>{let e=Q.value?.data;return e?[{label:`新增用户`,value:e.monthNewUsers,change:`+15.3%`,up:!0},{label:`活跃用户`,value:e.activeUsersToday,change:`+8.7%`,up:!0},{label:`总用户`,value:e.totalUsers,change:`+12.1%`,up:!0},{label:`留存率`,value:`68%`,change:`+5.2%`,up:!0}]:[]}),fe=c(()=>{let e=Q.value?.data?.trend||[];return{tooltip:{trigger:`axis`},legend:{data:[`新增`,`活跃`],bottom:0},grid:{left:`3%`,right:`4%`,bottom:`15%`,top:`5%`,containLabel:!0},xAxis:{type:`category`,boundaryGap:!1,data:e.map(e=>e.month)},yAxis:{type:`value`},series:[{name:`新增`,type:`line`,smooth:!0,data:e.map(e=>e.newUsers