You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 line
11 KiB

3 days ago
import{n as e}from"./axios-CiYFffbI.js";import{I as t,N as n,Ot as r,V as i,Y as a,_ as o,d as s,f as c,i as ee,it as l,kt as u,l as d,nt as f,p,u as m,ut as h,v as g,y as _,z as te}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{n as v,o as y}from"./index-DscUIWPJ.js";import{n as b}from"./datetime-3T8f3S0H.js";var ne={class:`dashboard-wrap`},re={class:`stats-grid-5`},ie={class:`hero-stat-card`},ae={class:`hero-value`},oe={class:`hero-stat-card`},se={class:`hero-value`},ce={class:`hero-stat-card`},le={class:`hero-value hero-green`},ue={class:`hero-stat-card`},de={class:`hero-value hero-yellow`},fe={class:`hero-stat-card`},pe={class:`hero-value`},me={class:`stats-grid-4`},he={class:`metric-stat-card`},ge={class:`metric-value`},_e={class:`metric-stat-card`},ve={class:`metric-value`},x={class:`metric-stat-card`},S={class:`metric-value`},C={class:`metric-stat-card`},w={class:`metric-value`},T={key:0,class:`single-trend-card`},E={class:`single-trend-date`},D={class:`single-trend-grid`},O={class:`single-item`},k={class:`single-value`},A={class:`single-item`},j={class:`single-value`},M={class:`single-item`},N={class:`single-value`},P={class:`single-item`},F={class:`single-value`},ye={key:1,class:`trend-wrap`},be={class:`trend-scroll`},xe=[`x1`,`y1`,`x2`,`y2`],Se=[`x1`,`y1`,`x2`,`y2`],Ce=[`points`],we=[`points`],Te=[`x1`,`x2`,`y1`,`y2`],Ee=[`cx`,`cy`],De=[`cx`,`cy`],I=[`x`,`y`],Oe=[`x`,`y`],ke=[`x`,`y`],Ae=[`y`],je={key:2},L=860,R=210,z=y(_({__name:`Dashboard`,setup(_){let y=l(!1),z=l(!1),B=l([]);function V(){let e=new Date;return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}let H=f({venue_id:void 0,dateRange:[V(),V()]}),Me=[{label:`今天`,value:()=>{let e=new Date,t=`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`;return[t,t]}},{label:`本月`,value:()=>{let e=new Date;return[`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-01`,`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(new Date(e.getFullYear(),e.getMonth()+1,0).getDate()).padStart(2,`0`)}`]}},{label:`近三月`,value:()=>{let e=new Date,t=new Date;return t.setMonth(t.getMonth()-3),[`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,`0`)}-${String(t.getDate()).padStart(2,`0`)}`,`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`]}},{label:`今年`,value:()=>{let e=new Date;return[`${e.getFullYear()}-01-01`,`${e.getFullYear()}-12-31`]}},{label:`去年`,value:()=>{let e=new Date().getFullYear()-1;return[`${e}-01-01`,`${e}-12-31`]}}],U=l({scope:{role:``,venue_id:void 0,start_date:``,end_date:``},summary:{total_count:0,verified_count:0,cancelled_count:0,pending_count:0,effective_count:0,verify_rate:0,blacklisted_unique:0,activity_sessions:0,active_venue_count:0},trends:[],compare_venues:[],realtime:{city_total:0,venues:[]}}),Ne=d(()=>Number((U.value.summary.verify_rate*100).toFixed(2))),Pe=d(()=>{if(!q.value)return{display:`none`};let e=Math.min(L-182,Math.max(8,q.value.x+10)),t=Math.max(8,q.value.y-84);return{position:`absolute`,left:`${e}px`,top:`${t}px`,background:`#fff`,border:`1px solid #e5e6eb`,borderRadius:`6px`,padding:`8px 10px`,fontSize:`12px`,boxShadow:`0 4px 16px rgba(0,0,0,0.14)`,zIndex:3,pointerEvents:`none`,minWidth:`170px`}}),W={top:16,right:20,bottom:24,left:28},G=L-W.left-W.right,K=R-W.top-W.bottom,q=l(null),J=d(()=>{let e=U.value.trends||[];if(!e.length)return null;let t=G,n=K,r=Math.max(1,...e.map(e=>Math.max(e.total_count,e.verified_count))),i=n=>W.left+t*n/Math.max(1,e.length-1),a=e=>W.top+n-n*e/r;return{totalPoints:e.map((e,t)=>`${i(t)},${a(e.total_count)}`).join(` `),verifiedPoints:e.map((e,t)=>`${i(t)},${a(e.verified_count)}`).join(` `),points:e.map((e,t)=>({index:t,x:i(t),y:a(e.verified_count),yTotal:a(e.total_count),...e})),firstDate:e[0].date,lastDate:e[e.length-1].date,maxY:r}}),Y=d(()=>{let e=U.value.trends||[];return e.length===1?e[0]:null});function X(e){let t=J.value;if(!t||!t.points[e])return;let n=t.points[e];q.value={index:e,x:n.x,y:n.y,da