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

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import{n as e}from"./axios-CiYFffbI.js";import{I as t,N as n,Tt as r,V as i,Y as a,_ as o,d as s,f as c,i as l,it as u,kt as d,l as f,nt as p,p as m,u as h,ut as g,v as _,y as v,z as y}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{n as b}from"./http-LCi9aT1G.js";import{a as ee,c as x,f as te,i as S,n as ne,o as re,r as ie,u as C}from"./index-CPuyxNxo.js";import{o as w,r as T}from"./hikPdcClient-9YlD6z0w.js";import{n as E,t as D}from"./xlsx-C0ANE5gA.js";var ae={class:`dashboard-page`},oe={class:`dashboard-page__inner`},se={class:`dashboard-page__header`},ce={class:`dash-bundle`,"aria-label":`数据统计`},le={class:`dash-core-pack`},ue={class:`dash-metric-card dash-metric-card--core`},de={class:`dash-metric-card__head`},fe={class:`dash-metric-card__icon`,"aria-hidden":`true`},pe={class:`dash-metric-card__body`},me={class:`dash-stat-grid dash-stat-grid--core`},he={class:`dash-stat-cell dash-stat-cell--violet`},ge={class:`dash-stat-cell__value`},_e={class:`dash-stat-cell dash-stat-cell--mint`},ve={class:`dash-stat-cell__value`},ye={key:0,class:`dash-stat-cell dash-stat-cell--gold`},be={class:`dash-stat-cell__value`},xe={class:`dash-stat-cell dash-stat-cell--sky`},Se={class:`dash-stat-cell__value`},Ce={key:1,class:`dash-stat-cell dash-stat-cell--rose`},we={class:`dash-stat-cell__value`},Te={key:2,class:`dash-stat-cell dash-stat-cell--teal`},Ee={class:`dash-stat-cell__value`},De={key:0,class:`dash-metric-card dash-metric-card--todo`},Oe={class:`dash-metric-card__head dash-metric-card__head--todo`},ke={class:`dash-metric-card__icon dash-metric-card__icon--todo`,"aria-hidden":`true`},Ae={class:`dash-metric-card__body`},je={key:0,class:`dash-todo-sheet dash-todo-sheet--loading`},Me={key:1,class:`dash-todo-sheet`},Ne={key:0,class:`dash-todo-sheet--empty-inner`},Pe={class:`dash-todo-placeholder`},Fe={class:`dash-todo-line__kind`},Ie={class:`dash-todo-line__name`},Le={class:`dash-todo-line__name`},Re={class:`dash-schedule-dual`},ze={class:`dash-metric-card`},Be={class:`dash-metric-card__head`},Ve={class:`dash-metric-card__icon`,"aria-hidden":`true`},He={class:`dash-metric-card__body`},Ue={class:`dash-stat-grid dash-stat-grid--schedule-act`},We={class:`dash-stat-cell dash-stat-cell--rose`},Ge={class:`dash-stat-cell__value`},Ke={class:`dash-stat-cell dash-stat-cell--violet`},qe={class:`dash-stat-cell__value`},Je={class:`dash-stat-cell dash-stat-cell--amber`},Ye={class:`dash-stat-cell__value`},Xe={class:`dash-stat-cell dash-stat-cell--sky`},Ze={class:`dash-stat-cell__value`},Qe={class:`dash-stat-cell dash-stat-cell--mint`},$e={class:`dash-stat-cell__value`},et={class:`dash-stat-cell dash-stat-cell--indigo`},tt={class:`dash-stat-cell__value`},nt={class:`dash-metric-card`},rt={class:`dash-metric-card__head`},it={class:`dash-metric-card__icon dash-metric-card__icon--schedule-tg`,"aria-hidden":`true`},at={class:`dash-metric-card__body`},ot={class:`dash-stat-grid dash-stat-grid--schedule-tg`},st={class:`dash-stat-cell dash-stat-cell--rose`},ct={class:`dash-stat-cell__value`},lt={class:`dash-stat-cell dash-stat-cell--amber`},ut={class:`dash-stat-cell__value`},dt={class:`dash-stat-cell dash-stat-cell--sky`},ft={class:`dash-stat-cell__value`},pt={class:`dash-stat-cell dash-stat-cell--mint`},mt={class:`dash-stat-cell__value`},ht={class:`dash-stat-cell dash-stat-cell--violet dash-stat-cell--verify-rate`},gt={class:`dash-stat-cell__value dash-stat-cell__value--pct`},_t={class:`dash-stat-cell__hint`},vt={class:`dash-rank-dual`},yt={class:`dash-metric-card dash-metric-card--rank`},bt={class:`dash-metric-card__head`},xt={class:`dash-metric-card__icon dash-metric-card__icon--rank-pub`,"aria-hidden":`true`},St={class:`dash-metric-card__body dash-rank-card__body`},Ct={class:`dash-metric-card dash-metric-card--rank`},wt={class:`dash-metric-card__head`},Tt={class:`dash-metric-card__icon dash-metric-card__icon--rank-live`,"aria-hidden":`true`},Et={class:`dash-metric-card__body dash-rank-card__body`},Dt={class:`dash-venue-pc-bundle`},Ot={class:`dash-metric-card dash-metric-card--venue-pc`},kt={class:`dash-metric-card__head`},At={class:`dash-metric-card__icon dash-metric-card__icon--venue-pc`,"aria-hidden":`true`},jt={class:`dash-metric-card__body dash-metric-card__body--venue-pc`},Mt={class:`dash-venue-pc-filters`},Nt={key:1,class:`dash-venue-pc-table-wrap`},O=300,k=C(v({__name:`Dashboard`,setup(v){let C=x(),k=u(!1),A=u(!1),j=u(!1),M=u({scope:{role:``,venue_id:void 0,activity_id:void 0},summary:{activity_sessions:0,venues_count:0,ticket_grab_sessions:0,user_count:0,reservation_order_count:0,wechat_user_count:0,home_visit_total:0,home_visit_today:0},activity_schedule_counts:{total:0,total_sessions:0,not_started:0,ongoing:0,ended:0,published_venues_count: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,activity_publish_ranking:[],live_people_ranking:[],live_people_counting_ok:!1}),Pt=f(()=>!!w()),N=u([]),P=u(!1),F=u(null),I=u(null),Ft=[{title:`场馆ID`,dataIndex:`venueId`,minWidth:110,ellipsis:!0,tooltip:!0},{title:`场馆名称`,dataIndex:`venueName`,minWidth:140,ellipsis:!0,tooltip:!0},{title:`入馆总人数`,dataIndex:`enter`,minWidth:120}];function L(e){let t=e=>String(e).padStart(2,`0`);return`${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())}`}function R(e){let t=new Date(e.getFullYear(),e.getMonth(),e.getDate()),n=t.getDay(),r=n===0?-6:1-n;return t.setDate(t.getDate()+r),t}function z(e){let t=new Date(e.getFullYear(),e.getMonth(),e.getDate());return t.setDate(t.getDate()+6),t}function B(){let e=new Date;return new Date(e.getFullYear(),e.getMonth(),e.getDate())}function V(e,t){return e.getTime()<=t.getTime()?e:t}function It(e){let t=B(),n,r;if(e===`week`){let e=R(t),i=z(e);n=L(e),r=L(V(i,t))}else if(e===`month`){let e=new Date(t.getFullYear(),t.getMonth(),1),i=new Date(t.getFullYear(),t.getMonth()+1,0);n=L(e),r=L(V(i,t))}else{let e=new Date(t.getFullYear(),0,1),i=new Date(t.getFullYear(),11,31);n=L(e),r=L(V(i,t))}N.value=[n,r]}function Lt(){let e=L(B());N.value=[e,e]}function H(e){if(!e||e.code!==200)return[];let t=[],n=e.venuesRangeTotals;if(Array.isArray(n)&&n.length>0)t=n.map(e=>({venueId:e.venueId,venueName:e.venueName,enter:Number(e.enter)||0}));else{let n=e.venues;if(!Array.isArray(n)||n.length===0)return[];t=n.map(e=>({venueId:e.venueId,venueName:e.venueName,enter:Number(e.enter)||0}))}return t.sort((e,t)=>{let n=(Number(t.enter)||0)-(Number(e.enter)||0);return n===0?String(e.venueId).localeCompare(String(t.venueId),void 0,{numeric:!0}):n})}let U=f(()=>H(I.value));function Rt(e){let t=Array.isArray(e.data)?e.data:[],n=0;for(let e of t)n+=Number(e.enter)||0;return[{venueId:`合计`,venueName:``,enter:n}]}function W(){let e=N.value;if(!Array.isArray(e)||e.length<2)return null;let t=String(e[0]??``).trim(),n=String(e[1]??``).trim();return!/^\d{4}-\d{2}-\d{2}$/.test(t)||!/^\d{4}-\d{2}-\d{2}$/.test(n)||n<t?null:{start:t,end:n}}async function G(t){if(!w())return;let n=W();if(!n){e.warning(`请选择合法的日期时间段(起止 yyyy-MM-dd`);return}let{start:r,end:i}=n;P.value=!0,F.value=null;let a=t?.silentSuccess===!0;try{I.value=await T(r,i),I.value.code===200?a||e.success(`客流统计已刷新`):(F.value=I.value.message||`接口返回错误码 ${I.value.code}`,a||e.warning(F.value))}catch(t){I.value=null,F.value=(t&&typeof t==`object`&&`message`in t?String(t.message):String(t))||`客流接口请求失败`,e.error(F.value||`客流接口请求失败`)}finally{P.value=!1}}function zt(){G({silentSuccess:!1})}u([]),u(!1),p({eventId:void 0,date:void 0});let K=u(null);f(()=>K.value?.daily_verify_matrix?.date_labels??[]),f(()=>K.value?.daily_verify_matrix?.rows??[]);let q=u(!1),J=u(!1);function Bt(e){return e.replace(/[\\/?*[\]:]/g,`_`).slice(0,31)||`Sheet1`}function Y(e,t,n){let r=Bt(n),i=r,a=2;for(;e.SheetNames.includes(i);){let e=`(${a})`;i=Bt(`${r.slice(0,Math.max(1,31-e.length))}${e}`),a+=1}D.book_append_sheet(e,t,i)}function Vt(){let e=new Date,t=e=>String(e).padStart(2,`0`);return`${e.getFullYear()}${t(e.getMonth()+1)}${t(e.getDate())}${t(e.getHours())}${t(e.getMinutes())}${t(e.getSeconds())}统计.xlsx`}function X(e){return D.aoa_to_sheet([[`指标`,`数值`],...e.map(([e,t])=>[e,t])])}function Z(e,t,n){if(n)return D.aoa_to_sheet([[`统计区间`,e],[`说明`,n]]);if(!t.length)return D.aoa_to_sheet([[`统计区间`,e],[],[`说明`,`暂无数据`]]);let r=t.reduce((e,t)=>e+(Number(t.enter)||0),0);return D.aoa_to_sheet([[`统计区间`,e],[],[`场馆ID`,`场馆名称`,`入馆总人数`],...t.map(e=>[e.venueId,e.venueName,e.enter]),[`合计`,``,r]])}function Ht(e){let t=B(),n=L(t);if(e===`today`)return{start:n,end:n,periodLabel:n,sheetName:`各场馆人数统计-当天(${n})`};if(e===`week`){let e=R(t),n=L(e),r=L(V(z(e),t));return{start:n,end:r,periodLabel:`${n}${r}`,sheetName:`各场馆人数统计-本周(${n}${r})`}}if(e===`month`){let e=new Date(t.getFullYear(),t.getMonth(),1),n=new Date(t.getFullYear(),t.getMonth()+1,0),r=L(e),i=L(V(n,t));return{start:r,end:i,periodLabel:`${r}${i}`,sheetName:`各场馆人数统计-本月(${r}${i})`}}let r=new Date(t.getFullYear(),0,1),i=new Date(t.getFullYear(),11,31),a=L(r),o=L(V(i,t));return{start:a,end:o,periodLabel:`${a}${o}`,sheetName:`各场馆人数统计-本年(${a}${o})`}}function Ut(){let e=M.value.ticket_grab_schedule_counts;return!e||e.booked_people<=0?`0%`:`${e.verify_rate_pct??0}%`}async function Wt(){if(!J.value){J.value=!0;try{let t=D.book_new(),n=M.value,r=n.summary??{},i=n.activity_schedule_counts??{},a=n.ticket_grab_schedule_counts??{},o=Array.isArray(n.activity_publish_ranking)?n.activity_publish_ranking:[],s=Array.isArray(n.live_people_ranking)?n.live_people_ranking:[],c=[[`现有场馆`,r.venues_count??0],[`总预约次数`,r.reservation_order_count??0]];A.value&&c.push([`总用户数`,r.wechat_user_count??0]),c.push([`预约用户数`,r.user_count??0]),A.value&&(c.push([`总访问量`,r.home_visit_total??0]),c.push([`今日访问量`,r.home_visit_today??0])),Y(t,X(c),`核心数据统计`),Y(t,X([[`活动数`,i.total??0],[`总场次`,i.total_sessions??0],[`未开始`,i.not_started??0],[`进行中`,i.ongoing??0],[`已结束`,i.ended??0],[`已发布活动场馆`,i.published_venues_count??0]]),`活动统计`),Y(t,X([[`总场数`,a.total??0],[`未开始`,a.not_started??0],[`进行中`,a.ongoing??0],[`已结束`,a.ended??0],[`核销率`,Ut()],[`已核销人数`,a.verified_people??0],[`已约人数`,a.booked_people??0]]),`抢票统计`);let l=o.map((e,t)=>[t+1,e.venue_id,e.venue_name,e.published_count,e.published_sessions_count]);Y(t,D.aoa_to_sheet([[`排名`,`场馆ID`,`场馆名称`,`发布活动数`,`发布场次数`],...l]),`活动发布排行`);let u=s.map((e,t)=>[t+1,e.venue_id,e.venue_name,e.live_count]);Y(t,D.aoa_to_sheet([[`排名`,`场馆ID`,`场馆名称`,`在馆人数`],...u]),`实时人数排行`);let d=[`today`,`week`,`month`,`year`].map(e=>Ht(e));if(w()){let e=await Promise.all(d.map(e=>T(e.start,e.end).catch(()=>null)));d.forEach((n,r)=>{let i=e[r],a=H(i),o=i&&i.code!==200?i.message||`接口返回错误码 ${i.code}`:void 0;Y(t,Z(n.periodLabel,a,o),n.sheetName)})}else for(let e of d)Y(t,Z(e.periodLabel,[],`未配置客流统计接口`),e.sheetName);E(t,Vt()),e.success(`数据看板已导出`)}catch(t){console.error(`[工作台] 导出数据看板失败`,t);let n=t instanceof Error?t.message:typeof t==`string`?t:`导出失败`;e.error(n.includes(`already exists`)?`导出失败Sheet 名称重复,请刷新后重试`:n||`导出失败`)}finally{J.value=!1}}}function Gt(){let t=W();if(!t){e.warning(`请先选择日期区间并查询数据`);return}let n=U.value;if(!n.length){e.warning(`暂无数据可导出`);return}q.value=!0;try{let r=[[`场馆ID`,`场馆名称`,`入馆总人数`],...n.map(e=>[e.venueId,e.venueName,e.enter])],i=n.reduce((e,t)=>e+(Number(t.enter)||0),0);r.push([`合计`,``,i]);let a=D.aoa_to_sheet(r),o=D.book_new();D.book_append_sheet(o,a,`各场馆人数统计`),E(o,`${t.start}${t.end}各场馆人数统计.xlsx`),e.success(`已导出`)}finally{q.value=!1}}u(!1);let Kt=f(()=>M.value.pending_audits?.activities.count??0),qt=f(()=>M.value.pending_audits?.venues?.count??0),Jt=f(()=>Kt.value+qt.value),Yt=f(()=>M.value.pending_audits?.activities.items??[]),Xt=f(()=>M.value.pending_audits?.venues?.items??[]),Zt=f(()=>Yt.value.length>0||Xt.value.length>0),Qt=f(()=>A.value||j.value),$t=f(()=>j.value?`暂无已退回活动`:`暂无待审核事项`),en=f(()=>j.value?`活动退回`:`活动审核`);function tn(){C.push({path:`/activities`,query:{audit_status:`pending`}})}function nn(){C.push({path:`/activities`,query:{audit_status:`rejected`}})}function rn(){C.push({path:`/venues`,query:{audit_status:`pending`}})}function Q(e){if(e===`venue`){rn();return}j.value?nn():tn()}let an=f(()=>{let e=M.value.ticket_grab_schedule_counts;return!e||e.booked_people<=0?`0%`:`${e.verify_rate_pct??0}%`}),on=f(()=>{let e=M.value.ticket_grab_schedule_counts;return`已核销 ${e?.verified_people??0} / 已约 ${e?.booked_people??0}`});async function sn(){k.value=!0;try{let{data:e}=await b.get(`/dashboard/stats`),{live_people_counting_debug:t,...n}=e;n.live_people_counting_ok===!1&&console.warn(`[工作台] 客流统计接口异常`,t??{}),M.value={...M.value,...n,summary:e.summary??M.value.summary,activity_schedule_counts:{...M.value.activity_schedule_counts,...e.activity_schedule_counts??{}},ticket_grab_schedule_counts:{...M.value.ticket_grab_schedule_counts,...e.ticket_grab_schedule_counts??{}},pending_audits:e.pending_audits??null,activity_publish_ranking:Array.isArray(e.activity_publish_ranking)?e.activity_publish_ranking:M.value.activity_publish_ranking,live_people_ranking:Array.isArray(e.live_people_ranking)?e.live_people_ranking:M.value.live_people_ranking,live_people_counting_ok:typeof e.live_people_counting_ok==`boolean`?e.live_people_counting_ok:M.value.live_people_counting_ok}}catch(t){e.error(t?.response?.data?.message??`加载统计失败`)}finally{k.value=!1}}async function cn(){let{data:e}=await b.get(`/me`);A.value=e?.full_admin_access===!0,j.value=e?.role===`venue_admin`}function $(e){It(e),G({silentSuccess:!0})}return n(async()=>{await cn(),await sn(),w()&&(Lt(),await G({silentSuccess:!0}))}),(e,n)=>{let u=i(`a-button`),f=i(`a-table-column`),p=i(`a-table`),v=i(`a-typography-text`),b=i(`a-range-picker`),x=i(`a-divider`),C=i(`a-space`),w=i(`a-alert`),T=i(`a-empty`),E=i(`a-spin`);return i(`a-tag`),i(`a-option`),i(`a-select`),i(`a-date-picker`),i(`a-card`),t(),m(`div`,ae,[h(`div`,oe,[h(`header`,se,[n[9]||=h(`div`,{class:`dashboard-page__heading`},[h(`h1`,{class:`dashboard-page__title`},`工作台`),h(`span`,{class:`dashboard-page__subtitle`},`数据看板`)],-1),_(u,{type:`primary`,size:`small`,loading:J.value,onClick:Wt},{default:a(()=>[...n[8]||=[o(` 导出数据 `,-1)]]),_:1},8,[`loading`])]),h(`section`,ce,[h(`div`,{class:r([`dash-overview-dual`,{"dash-overview-dual--split":Qt.value}])},[h(`div`,le,[h(`article`,ue,[h(`header`,de,[h(`div`,fe,[_(g(S))]),n[10]||=h(`div`,{class:`dash-metric-card__head-main`},[h(`h2`,{class:`dash-metric-card__title`},`核心数据统计`)],-1)]),h(`div`,pe,[h(`div`,me,[h(`div`,he,[h(`div`,ge,d(M.value.summary.venues_count??0),1),n[11]||=h(`div`,{class:`dash-stat-cell__label`},`现有场馆`,-1)]),h(`div`,_e,[h(`div`,ve,d(M.value.summary.reservation_order_count??0),1),n[12]||=h(`div`,{class:`dash-stat-cell__label`},`总预约次数`,-1)]),A.value?(t(),m(`div`,ye,[h(`div`,be,d(M.value.summary.wechat_user_count??0),1),n[13]||=h(`div`,{class:`dash-stat-cell__label`},`总用户数`,-1)])):c(``,!0),h(`div`,xe,[h(`div`,Se,d(M.value.summary.user_count),1),n[14]||=h(`div`,{class:`dash-stat-cell__label`},`预约用户数`,-1)]),A.value?(t(),m(`div`,Ce,[h(`div`,we,d(M.value.summary.home_visit_total??0),1),n[15]||=h(`div`,{class:`dash-stat-cell__label`},`总访问量`,-1)])):c(``,!0),A.value?(t(),m(`div`,Te,[h(`div`,Ee,d(M.value.summary.home_visit_today??0),1),n[16]||=h(`div`,{class:`dash-stat-cell__label`},`今日访问量`,-1)])):c(``,!0)])])])]),A.value||j.value?(t(),m(`article`,De,[h(`header`,Oe,[h(`div`,ke,[_(g(re))]),n[17]||=h(`h2`,{class:`dash-metric-card__title dash-metric-card__title--inline`},`待办事项`,-1),h(`span`,{class:r([`dash-todo-count-badge`,{"dash-todo-count-badge--zero":Jt.value===0}])},d(Jt.value),3)]),h(`div`,Ae,[k.value&&M.value.pending_audits==null?(t(),m(`div`,je,[...n[18]||=[h(`span`,{class:`dash-todo-placeholder`},`加载中…`,-1)]])):(t(),m(`div`,Me,[Zt.value?(t(),m(l,{key:1},[(t(!0),m(l,null,y(Yt.value,e=>(t(),m(`button`,{key:`pa-`+e.id,type:`button`,class:`dash-todo-line`,onClick:n[0]||=e=>Q(`activity`)},[h(`span`,Fe,d(en.value),1),h(`span`,Ie,d(e.title),1),n[19]||=h(`span`,{class:`dash-todo-line__action`},`去处理`,-1)]))),128)),(t(!0),m(l,null,y(Xt.value,e=>(t(),m(`button`,{key:`pv-`+e.id,type:`button`,class:`dash-todo-line`,onClick:n[1]||=e=>Q(`venue`)},[n[20]||=h(`span`,{class:`dash-todo-line__kind`},`场馆审核`,-1),h(`span`,Le,d(e.name),1),n[21]||=h(`span`,{class:`dash-todo-line__action`},`去处理`,-1)]))),128))],64)):(t(),m(`div`,Ne,[h(`span`,Pe,d($t.value),1)]))]))])])):c(``,!0)],2),h(`div`,Re,[h(`article`,ze,[h(`header`,Be,[h(`div`,Ve,[_(g(te))]),n[22]||=h(`div`,{class:`dash-metric-card__head-main`},[h(`h2`,{class:`dash-metric-card__title`},`活动统计`)],-1)]),h(`div`,He,[h(`div`,Ue,[h(`div`,We,[h(`div`,Ge,d(M.value.activity_schedule_counts.total),1),n[23]||=h(`div`,{class:`dash-stat-cell__label`},`活动数`,-1)]),h(`div`,Ke,[h(`div`,qe,d(M.value.activity_schedule_counts.total_sessions),1),n[24]||=h(`div`,{class:`dash-stat-cell__label`},`总场次`,-1)]),h(`div`,Je,[h(`div`,Ye,d(M.value.activity_schedule_counts.not_started),1),n[25]||=h(`div`,{class:`dash-stat-cell__label`},`未开始`,-1)]),h(`div`,Xe,[h(`div`,Ze,d(M.value.activity_schedule_counts.ongoing),1),n[26]||=h(`div`,{class:`dash-stat-cell__label`},`进行中`,-1)]),h(`div`,Qe,[h(`div`,$e,d(M.value.activity_schedule_counts.ended),1),n[27]||=h(`div`,{class:`dash-stat-cell__label`},`已结束`,-1)]),h(`div`,et,[h(`div`,tt,d(M.value.activity_schedule_counts.published_venues_count??0),1),n[28]||=h(`div`,{class:`dash-stat-cell__label`},`已发布活动场馆`,-1)])])])]),h(`article`,nt,[h(`header`,rt,[h(`div`,it,[_(g(ie))]),n[29]||=h(`div`,{class:`dash-metric-card__head-main`},[h(`h2`,{class:`dash-metric-card__title`},`抢票统计`)],-1)]),h(`div`,at,[h(`div`,ot,[h(`div`,st,[h(`div`,ct,d(M.value.ticket_grab_schedule_counts.total),1),n[30]||=h(`div`,{class:`dash-stat-cell__label`},`总场数`,-1)]),h(`div`,lt,[h(`div`,ut,d(M.value.ticket_grab_schedule_counts.not_started),1),n[31]||=h(`div`,{class:`dash-stat-cell__label`},`未开始`,-1)]),h(`div`,dt,[h(`div`,ft,d(M.value.ticket_grab_schedule_counts.ongoing),1),n[32]||=h(`div`,{class:`dash-stat-cell__label`},`进行中`,-1)]),h(`div`,pt,[h(`div`,mt,d(M.value.ticket_grab_schedule_counts.ended),1),n[33]||=h(`div`,{class:`dash-stat-cell__label`},`已结束`,-1)]),h(`div`,ht,[h(`div`,gt,d(an.value),1),n[34]||=h(`div`,{class:`dash-stat-cell__label`},`核销率`,-1),h(`div`,_t,d(on.value),1)])])])])]),h(`div`,vt,[h(`article`,yt,[h(`header`,bt,[h(`div`,xt,[_(g(ee))]),n[35]||=h(`div`,{class:`dash-metric-card__head-main`},[h(`h2`,{class:`dash-metric-card__title`},`活动发布排行`)],-1)]),h(`div`,St,[_(p,{class:`dash-table dash-rank-table`,data:M.value.activity_publish_ranking,loading:k.value,pagination:!1,scroll:{y:O},"row-key":`venue_id`,size:`small`},{columns:a(()=>[_(f,{title:`#`,width:52},{cell:a(({rowIndex:e})=>[o(d(e+1),1)]),_:1}),_(f,{title:`场馆名称`,"data-index":`venue_name`,ellipsis:!0,tooltip:!0}),_(f,{title:`发布活动数`,"data-index":`published_count`,width:108,align:`right`}),_(f,{title:`发布场次数`,"data-index":`published_sessions_count`,width:108,align:`right`})]),_:1},8,[`data`,`loading`,`scroll`])])]),h(`article`,Ct,[h(`header`,wt,[h(`div`,Tt,[_(g(ne))]),n[36]||=h(`div`,{class:`dash-metric-card__head-main`},[h(`h2`,{class:`dash-metric-card__title`},`实时人数排行`)],-1)]),h(`div`,Et,[_(p,{class:`dash-table dash-rank-table`,data:M.value.live_people_ranking,loading:k.value,pagination:!1,scroll:{y:O},"row-key":`venue_id`,size:`small`},{columns:a(()=>[_(f,{title:`#`,width:52},{cell:a(({rowIndex:e})=>[o(d(e+1),1)]),_:1}),_(f,{title:`场馆名称`,"data-index":`venue_name`,ellipsis:!0,tooltip:!0}),_(f,{title:`在馆人数`,"data-index":`live_count`,width:100,align:`right`})]),_:1},8,[`data`,`loading`,`scroll`])])])]),h(`div`,Dt,[h(`article`,Ot,[h(`header`,kt,[h(`div`,At,[_(g(S))]),n[37]||=h(`div`,{class:`dash-metric-card__head-main`},[h(`h2`,{class:`dash-metric-card__title`},`各场馆人数统计`)],-1)]),h(`div`,jt,[Pt.value?(t(),m(l,{key:1},[h(`div`,Mt,[_(C,{wrap:``,size:`small`},{default:a(()=>[n[44]||=h(`span`,{class:`dash-venue-pc-filters__label`},`时间段`,-1),_(b,{modelValue:N.value,"onUpdate:modelValue":n[2]||=e=>N.value=e,format:`YYYY-MM-DD`,"value-format":`YYYY-MM-DD`,"exchange-time":!1,"allow-clear":``,style:{width:`260px`},size:`small`},null,8,[`modelValue`]),_(u,{type:`primary`,size:`small`,loading:P.value,onClick:zt},{default:a(()=>[...n[39]||=[o(`查询`,-1)]]),_:1},8,[`loading`]),_(u,{size:`small`,loading:q.value,disabled:!U.value.length,onClick:Gt},{default:a(()=>[...n[40]||=[o(` 导出 Excel `,-1)]]),_:1},8,[`loading`,`disabled`]),_(x,{direction:`vertical`,class:`dash-venue-pc-filters__vdiv`}),_(u,{size:`small`,disabled:P.value,onClick:n[3]||=e=>$(`week`)},{default:a(()=>[...n[41]||=[o(`本周`,-1)]]),_:1},8,[`disabled`]),_(u,{size:`small`,disabled:P.value,onClick:n[4]||=e=>$(`month`)},{default:a(()=>[...n[42]||=[o(`本月`,-1)]]),_:1},8,[`disabled`]),_(u,{size:`small`,disabled:P.value,onClick:n[5]||=e=>$(`year`)},{default:a(()=>[...n[43]||=[o(`本年`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_(E,{loading:P.value},{default:a(()=>[F.value?(t(),s(w,{key:0,type:`warning`,"show-icon":``,style:{"margin-bottom":`10px`}},{default:a(()=>[o(d(F.value),1)]),_:1})):c(``,!0),U.value.length?(t(),m(`div`,Nt,[_(p,{class:`dash-table dash-venue-pc-table`,"row-key":`venueId`,columns:Ft,data:U.value,pagination:!1,size:`small`,"table-layout-fixed":``,scroll:{y:260},summary:Rt},null,8,[`data`])])):!P.value&&!F.value?(t(),s(T,{key:2,description:`暂无数据,可调时间段或检查客流归档与场馆映射`})):c(``,!0)]),_:1},8,[`loading`])],64)):(t(),s(v,{key:0,type:`warning`},{default:a(()=>[...n[38]||=[o(` 未配置 VITE_PEOPLE_COUNTING_URL 时无法加载该项。请在构建环境变量中配置海康客流 people-counting 完整接口地址。 `,-1)]]),_:1}))])])])]),c(``,!0)])])}}}),[[`__scopeId`,`data-v-ca5a6b72`]]);export{k as default};