1 line
9.1 KiB
JavaScript
1 line
9.1 KiB
JavaScript
|
|
import{I as e,Q as t,R as n,_ as r,b as i,g as a,h as o,l as s,m as c,v as l,wt as u,x as d,xt as f,y as p,yt as m}from"./vue.runtime.esm-bundler-DS0mm12S.js";import{$ as h,q as ee,z as g}from"./index-De70L21J.js";import"./Teleport-DzgMZwe8.js";import"./button-DveXNdlZ.js";import{d as _,f as v,m as y,p as b,s as te}from"./monisuo-admin.api-fJhTc-_0.js";import{t as ne}from"./Card-P0ucPgP6.js";import{t as re}from"./CardContent-CVpAbhEk.js";import{r as ie}from"./global-layout-DGjukABd.js";import{t as ae}from"./Badge-C_vv39Gz.js";import{t as x}from"./decimal-D2wgARr3.js";var S={key:0,class:`flex items-center justify-center py-20`},C={key:1,class:`grid gap-6`},w={class:`space-y-3`},T={class:`text-sm font-medium text-muted-foreground flex items-center gap-2`},E={class:`grid gap-3 grid-cols-2 sm:grid-cols-4`},D={class:`flex items-center justify-between mb-2`},O={class:`text-xs text-muted-foreground`},k={class:`text-xs text-muted-foreground truncate`},A={class:`space-y-3`},j={class:`text-sm font-medium text-muted-foreground flex items-center gap-2`},M={class:`grid gap-6 lg:grid-cols-5`},N={class:`space-y-3 lg:col-span-2`},P={class:`text-sm font-medium text-muted-foreground flex items-center gap-2`},F={class:`space-y-3 lg:col-span-3`},I={class:`text-sm font-medium text-muted-foreground flex items-center gap-2`},L={class:`space-y-3`},R={class:`grid gap-3 grid-cols-2 sm:grid-cols-4`},z={class:`text-xs text-muted-foreground truncate`},B={class:`text-lg sm:text-xl font-bold mt-1`},V={class:`grid gap-6 lg:grid-cols-2`},H={class:`space-y-3`},U={class:`text-sm font-medium text-muted-foreground flex items-center gap-2`},W={class:`grid gap-3 grid-cols-2`},oe={class:`flex items-center justify-between mb-2`},G={class:`text-xs font-medium truncate`},K={class:`text-xs text-muted-foreground shrink-0`},q={class:`flex items-baseline gap-2`},se={class:`space-y-3`},ce={class:`text-sm font-medium text-muted-foreground flex items-center gap-2`},le={class:`space-y-3`},ue={class:`flex items-start gap-3`},de={class:`min-w-0`},fe={class:`font-medium text-sm`},pe={class:`text-xs sm:text-sm text-muted-foreground mt-1`},J=d({__name:`analytics`,setup(d){function J(e,t){if(t===0)return e>0?`+100%`:`0%`;let n=new x(e).minus(t).div(t).mul(100).toDecimalPlaces(1);return`${n.gte(0)?`+`:``}${n}%`}let{data:Y,isLoading:me}=_(`month`),he=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:`本月`,icon:`lucide:dollar-sign`,color:`text-orange-600`}]:[]}),{data:X,isLoading:ge}=b(`week`),_e=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:ve}=te(`month`),Z=c(()=>{let e=ve.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}=y(6),ye=c(()=>{let e=Q.value?.data;if(!e)return[];let t=e.trend||[],n=t.length,r=n>=1?t[n-1]:null,i=n>=2?t[n-2]:null,a=r&&i?J(r.newUsers,i.newUsers):`+0%`,o=r&&i?J(r.activeUsers,i.activeUsers):`+0%`,s=n>=2&&r?e.totalUsers-r.newUsers:e.totalUsers,c=J(e.totalUsers,s);return[{label:`新增用户`,value:e.monthNewUsers,cha
|