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
7.7 KiB

import{n as e}from"./axios-CiYFffbI.js";import{I as t,N as n,Tt as r,V as i,f as a,i as ee,it as o,kt as s,l as c,nt as te,p as l,u,ut as d,v as f,y as ne,z as re}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{n as p}from"./http-LCi9aT1G.js";import{c as m,i as ie,n as ae,o as oe,r as se,u as h}from"./index-DtDFIu4i.js";var g={class:`dashboard-page`},_={class:`dashboard-page__inner`},v={class:`dash-bundle`,"aria-label":`数据统计`},y={class:`dash-core-pack`},b={class:`dash-metric-card dash-metric-card--core`},x={class:`dash-metric-card__head`},S={class:`dash-metric-card__icon`,"aria-hidden":`true`},C={class:`dash-metric-card__body`},w={class:`dash-stat-grid dash-stat-grid--core`},T={class:`dash-stat-cell dash-stat-cell--violet`},E={class:`dash-stat-cell__value`},D={class:`dash-stat-cell dash-stat-cell--sky`},O={class:`dash-stat-cell__value`},k={key:0,class:`dash-metric-card dash-metric-card--todo`},A={class:`dash-metric-card__head dash-metric-card__head--todo`},j={class:`dash-metric-card__icon dash-metric-card__icon--todo`,"aria-hidden":`true`},M={class:`dash-metric-card__body`},N={key:0,class:`dash-todo-sheet dash-todo-sheet--loading`},P={key:1,class:`dash-todo-sheet`},F={key:0,class:`dash-todo-sheet--empty-inner`},I={class:`dash-todo-line__name`},L={class:`dash-schedule-dual`},R={class:`dash-metric-card`},z={class:`dash-metric-card__head`},B={class:`dash-metric-card__icon`,"aria-hidden":`true`},V={class:`dash-metric-card__body`},H={class:`dash-stat-grid dash-stat-grid--schedule-act`},U={class:`dash-stat-cell dash-stat-cell--rose`},W={class:`dash-stat-cell__value`},G={class:`dash-stat-cell dash-stat-cell--amber`},K={class:`dash-stat-cell__value`},q={class:`dash-stat-cell dash-stat-cell--sky`},ce={class:`dash-stat-cell__value`},le={class:`dash-stat-cell dash-stat-cell--mint`},ue={class:`dash-stat-cell__value`},de={class:`dash-metric-card`},fe={class:`dash-metric-card__head`},pe={class:`dash-metric-card__icon dash-metric-card__icon--schedule-tg`,"aria-hidden":`true`},me={class:`dash-metric-card__body`},he={class:`dash-stat-grid dash-stat-grid--schedule-tg`},ge={class:`dash-stat-cell dash-stat-cell--rose`},_e={class:`dash-stat-cell__value`},ve={class:`dash-stat-cell dash-stat-cell--amber`},ye={class:`dash-stat-cell__value`},be={class:`dash-stat-cell dash-stat-cell--sky`},xe={class:`dash-stat-cell__value`},Se={class:`dash-stat-cell dash-stat-cell--mint`},Ce={class:`dash-stat-cell__value`},we={class:`dash-stat-cell dash-stat-cell--violet dash-stat-cell--verify-rate`},Te={class:`dash-stat-cell__value dash-stat-cell__value--pct`},Ee={class:`dash-stat-cell__hint`},J=m(ne({__name:`Dashboard`,setup(ne){let m=oe(),J=o(!1),Y=o(!1),X=o({scope:{role:``,venue_id:void 0,activity_id:void 0},summary:{activity_sessions:0,venues_count:0,ticket_grab_sessions:0,user_count:0},activity_schedule_counts:{total:0,not_started:0,ongoing:0,ended:0},ticket_grab_schedule_counts:{total:0,not_started:0,ongoing:0,ended:0,verify_rate_pct:null,verified_people:0,booked_people:0},pending_audits:null});o([]),o(!1),te({eventId:void 0,date:void 0});let Z=o(null);c(()=>Z.value?.daily_verify_matrix?.date_labels??[]),c(()=>Z.value?.daily_verify_matrix?.rows??[]),o(!1);let De=c(()=>X.value.pending_audits?.activities.count??0),Q=c(()=>De.value),$=c(()=>X.value.pending_audits?.activities.items??[]),Oe=c(()=>$.value.length>0);function ke(){m.push({path:`/activities`,query:{audit_status:`pending`}})}let Ae=c(()=>{let e=X.value.ticket_grab_schedule_counts;return!e||e.booked_people<=0?`0%`:`${e.verify_rate_pct??0}%`}),je=c(()=>{let e=X.value.ticket_grab_schedule_counts;return`已核销 ${e?.verified_people??0} / 已约 ${e?.booked_people??0}`});async function Me(){J.value=!0;try{let{data:e}=await p.get(`/dashboard/stats`);X.value={...X.value,...e,summary:e.summary??X.value.summary,activity_schedule_counts:{...X.value.activity_schedule_counts,...e.activity_schedule_counts??{}},ticket_grab_schedule_counts:{...X.value.ticket_grab_schedule_counts,...e.ticket_grab_schedule_counts??{}},pending_audits:e.pending_audits??null}}catch(t){e.error(t?.response?.data?.message??`加载统计失败`)}finally{J.value=!1}}async function Ne(){let{data:e}=await p.get(`/me`);Y.value=e?.full_admin_access===!0}return n(async()=>{await Ne(),await Me()}),(e,n)=>(i(`a-tag`),i(`a-option`),i(`a-select`),i(`a-date-picker`),i(`a-button`),i(`a-space`),i(`a-table-column`),i(`a-table`),i(`a-card`),i(`a-empty`),i(`a-spin`),t(),l(`div`,g,[u(`div`,_,[n[37]||=u(`header`,{class:`dashboard-page__header`},[u(`div`,{class:`dashboard-page__heading`},[u(`h1`,{class:`dashboard-page__title`},`工作台`),u(`span`,{class:`dashboard-page__subtitle`},`数据看板`)])],-1),u(`section`,v,[u(`div`,{class:r([`dash-overview-dual`,{"dash-overview-dual--split":Y.value}])},[u(`div`,y,[u(`article`,b,[u(`header`,x,[u(`div`,S,[f(d(se))]),n[2]||=u(`div`,{class:`dash-metric-card__head-main`},[u(`h2`,{class:`dash-metric-card__title`},`核心数据统计`)],-1)]),u(`div`,C,[u(`div`,w,[u(`div`,T,[u(`div`,E,s(X.value.summary.venues_count??0),1),n[3]||=u(`div`,{class:`dash-stat-cell__label`},`现有场馆`,-1)]),u(`div`,D,[u(`div`,O,s(X.value.summary.user_count),1),n[4]||=u(`div`,{class:`dash-stat-cell__label`},`用户数`,-1),n[5]||=u(`div`,{class:`dash-stat-cell__hint`},`预约用户`,-1)])])])])]),Y.value?(t(),l(`article`,k,[u(`header`,A,[u(`div`,j,[f(d(ie))]),n[6]||=u(`h2`,{class:`dash-metric-card__title dash-metric-card__title--inline`},`待办事项`,-1),u(`span`,{class:r([`dash-todo-count-badge`,{"dash-todo-count-badge--zero":Q.value===0}])},s(Q.value),3)]),u(`div`,M,[J.value&&X.value.pending_audits==null?(t(),l(`div`,N,[...n[7]||=[u(`span`,{class:`dash-todo-placeholder`},`加载中…`,-1)]])):(t(),l(`div`,P,[Oe.value?(t(!0),l(ee,{key:1},re($.value,e=>(t(),l(`button`,{key:`pa-`+e.id,type:`button`,class:`dash-todo-line`,onClick:ke},[n[9]||=u(`span`,{class:`dash-todo-line__kind`},`活动审核`,-1),u(`span`,I,s(e.title),1),n[10]||=u(`span`,{class:`dash-todo-line__action`},`去处理`,-1)]))),128)):(t(),l(`div`,F,[...n[8]||=[u(`span`,{class:`dash-todo-placeholder`},`暂无待审核事项`,-1)]]))]))])])):a(``,!0)],2),u(`div`,L,[u(`article`,R,[u(`header`,z,[u(`div`,B,[f(d(h))]),n[11]||=u(`div`,{class:`dash-metric-card__head-main`},[u(`h2`,{class:`dash-metric-card__title`},`活动统计`)],-1)]),u(`div`,V,[u(`div`,H,[u(`div`,U,[u(`div`,W,s(X.value.activity_schedule_counts.total),1),n[12]||=u(`div`,{class:`dash-stat-cell__label`},`总场数`,-1)]),u(`div`,G,[u(`div`,K,s(X.value.activity_schedule_counts.not_started),1),n[13]||=u(`div`,{class:`dash-stat-cell__label`},`未开始`,-1)]),u(`div`,q,[u(`div`,ce,s(X.value.activity_schedule_counts.ongoing),1),n[14]||=u(`div`,{class:`dash-stat-cell__label`},`进行中`,-1)]),u(`div`,le,[u(`div`,ue,s(X.value.activity_schedule_counts.ended),1),n[15]||=u(`div`,{class:`dash-stat-cell__label`},`已结束`,-1)])])])]),u(`article`,de,[u(`header`,fe,[u(`div`,pe,[f(d(ae))]),n[16]||=u(`div`,{class:`dash-metric-card__head-main`},[u(`h2`,{class:`dash-metric-card__title`},`抢票统计`)],-1)]),u(`div`,me,[u(`div`,he,[u(`div`,ge,[u(`div`,_e,s(X.value.ticket_grab_schedule_counts.total),1),n[17]||=u(`div`,{class:`dash-stat-cell__label`},`总场数`,-1)]),u(`div`,ve,[u(`div`,ye,s(X.value.ticket_grab_schedule_counts.not_started),1),n[18]||=u(`div`,{class:`dash-stat-cell__label`},`未开始`,-1)]),u(`div`,be,[u(`div`,xe,s(X.value.ticket_grab_schedule_counts.ongoing),1),n[19]||=u(`div`,{class:`dash-stat-cell__label`},`进行中`,-1)]),u(`div`,Se,[u(`div`,Ce,s(X.value.ticket_grab_schedule_counts.ended),1),n[20]||=u(`div`,{class:`dash-stat-cell__label`},`已结束`,-1)]),u(`div`,we,[u(`div`,Te,s(Ae.value),1),n[21]||=u(`div`,{class:`dash-stat-cell__label`},`核销率`,-1),u(`div`,Ee,s(je.value),1)])])])])])]),a(``,!0)])]))}}),[[`__scopeId`,`data-v-15c4ef04`]]);export{J as default};