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