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.

2 lines
5.6 KiB

import{d as a,r as e,m as l,o as t,n as s,E as u,G as n,H as i,c,f as r,i as o,b as d,k as v,I as f,v as _,x as m,z as y,F as g,A as p,q as b,l as k,h,t as j,j as w,B as C,e as x,C as A,_ as P}from"./index-CaRitDsG.js";import{g as N,b as V}from"./content.-RRlS2W0.js";import{a as F}from"./venueThemeColors.DRxjaxXI.js";import{f as $,b as z,a as I,d as q,c as B}from"./activity.CPaCOiZ6.js";import{P as E}from"./poster.C6TYC1FC.js";import{s as G}from"./search.BJnl3YRK.js";import{r as H}from"./h5Visit.CvFbxUaM.js";import"./home.BH32jqLd.js";const T=P(a({__name:"index",setup(a){const P=e([]),T=e(null),U=e(1),D=e(0),J=e(!1),K=e(!1),L=e(""),M=e(""),O=[{value:"",label:"全部状态"},{value:"ongoing",label:"进行中"},{value:"not_started",label:"未开始"},{value:"ended",label:"已结束"},{value:"bookable",label:"可预约"}],Q=l(()=>D.value>0&&U.value<D.value);async function R(a,e){if(!J.value||e){if(e){if(K.value||!Q.value)return;K.value=!0}else J.value=!0;try{const l="bookable"===M.value,t=await V({page:a,page_size:10,keyword:L.value.trim()||void 0,schedule_status:l?void 0:M.value||void 0,include_ticket_grab:!0,bookable_only:l||void 0}),{list:s,lastPage:u}=function(a){if(!a||"object"!=typeof a)return{list:[],lastPage:1};const e=a;if(Array.isArray(e))return{list:e,lastPage:1};const l=e.data;if(Array.isArray(l))return{list:l,lastPage:Number(e.last_page??1)||1};if(l&&"object"==typeof l){const a=l;if(Array.isArray(a.data)){const l=Number(a.last_page??e.last_page??1)||1;return{list:a.data,lastPage:l}}}return{list:[],lastPage:1}}(t);D.value=u,P.value=e?[...P.value,...s]:s,U.value=a}catch{e||(P.value=[])}finally{J.value=!1,K.value=!1}}}async function S(){U.value=1,await R(1,!1)}function W(){S()}function X(a){const e=Number(null==a?void 0:a.id);e&&("ticket_grab"!==a.list_kind?A({url:`/pages/activity/detail?id=${e}`}):A({url:`/pages/ticket-grab/detail?id=${e}`}))}function Y(a){const e=null==a?void 0:a.schedule_status;return"not_started"===e||"ongoing"===e||"ended"===e?e:B(null==a?void 0:a.start_at,null==a?void 0:a.end_at)}function Z(a){return z(Y(a))}function aa(a){return I(a)}function ea(a){return q(a)}return t(()=>{!async function(){try{T.value=await N()}catch{T.value=null}U.value=1,await R(1,!1)}()}),s(()=>{H()}),u(()=>{J.value||K.value||!Q.value||R(U.value+1,!0)}),n(async()=>{try{await S()}finally{i()}}),(a,e)=>{const l=f,t=_,s=o,u=k;return d(),c(s,{class:"page"},{default:r(()=>[v(s,{class:"filter-section"},{default:r(()=>[v(s,{class:"toolbar"},{default:r(()=>[v(s,{class:"search-wrap"},{default:r(()=>[v(l,{modelValue:L.value,"onUpdate:modelValue":e[0]||(e[0]=a=>L.value=a),class:"search-input",placeholder:"请输入活动名称","placeholder-class":"ph","confirm-type":"search",onConfirm:W},null,8,["modelValue"]),v(t,{class:"search-icon-img",src:m(G),mode:"aspectFit"},null,8,["src"])]),_:1})]),_:1}),v(s,{class:"filters"},{default:r(()=>[(d(),y(g,null,p(O,a=>v(s,{key:a.value,class:b(["f-item f-item--status",{"f-item--active":M.value===a.value}]),onClick:e=>{return l=a.value,M.value=l,void S();var l}},{default:r(()=>[v(u,{class:"f-item-text"},{default:r(()=>[h(j(a.label),1)]),_:2},1024)]),_:2},1032,["class","onClick"])),64))]),_:1})]),_:1}),v(s,{class:"list-inner"},{default:r(()=>[(d(!0),y(g,null,p(P.value,a=>(d(),c(s,{key:(a.list_kind||"activity")+"-"+a.id,class:"item",onClick:e=>X(a)},{default:r(()=>[v(s,{class:"poster-wrap"},{default:r(()=>{var e,l,n,i;return[v(t,{class:"poster",src:a.image||m(E),mode:"aspectFill"},null,8,["src"]),v(s,{class:b(["status",(i=a,`st-${Y(i)}`)])},{default:r(()=>[h(j(Z(a)),1)]),_:2},1032,["class"]),"ticket_grab"===a.list_kind&&a.can_grab_today?(d(),c(s,{key:0,class:"grab-badge"},{default:r(()=>[h("抢票")]),_:1})):aa(a)?(d(),c(s,{key:1,class:b(["cover-corner-badge",{"cc-brand":"brand"===(null==(e=aa(a))?void 0:e.kind),"cc-muted":"muted"===(null==(l=aa(a))?void 0:l.kind),"cc-accent":"accent"===(null==(n=aa(a))?void 0:n.kind)}])},{default:r(()=>[v(u,null,{default:r(()=>{var e;return[h(j(null==(e=aa(a))?void 0:e.text),1)]}),_:2},1024)]),_:2},1032,["class"])):w("",!0)]}),_:2},1024),v(s,{class:"body"},{default:r(()=>{var e;return[v(s,{class:"title"},{default:r(()=>[h(j(a.title),1)]),_:2},1024),(null==(e=a.tags)?void 0:e.length)?(d(),c(s,{key:0,class:"act-tags"},{default:r(()=>[(d(!0),y(g,null,p((a.tags||[]).slice(0,4),(e,l)=>{var t;return d(),c(u,{key:"t-"+a.id+"-"+l,class:"act-tag-chip",style:C(m(F)(l,null==(t=T.value)?void 0:t.venue_type))},{default:r(()=>[h(j(e),1)]),_:2},1032,["style"])}),128))]),_:2},1024)):w("",!0),v(s,{class:"meta"},{default:r(()=>[h(j(m($)(a.start_at,a.end_at)),1)]),_:2},1024),v(s,{class:"venue-action-row"},{default:r(()=>["ticket_grab"===a.list_kind?(d(),c(u,{key:0,class:"venue-inline"},{default:r(()=>[h(j(Number(a.venue_count)||0)+"家场馆可抢票",1)]),_:2},1024)):(d(),c(u,{key:1,class:"venue-inline"},{default:r(()=>[h(j(a.venue_name||"场馆待定"),1)]),_:2},1024)),ea(a).show?(d(),c(s,{key:2,class:b(["btn",{"btn-muted":ea(a).muted}]),onClick:x(e=>function(a){const e=ea(a);e.show&&!e.muted&&X(a)}(a),["stop"])},{default:r(()=>[h(j(ea(a).text),1)]),_:2},1032,["class","onClick"])):w("",!0)]),_:2},1024)]}),_:2},1024)]),_:2},1032,["onClick"]))),128)),J.value&&!P.value.length?(d(),c(s,{key:0,class:"hint"},{default:r(()=>[h("加载中…")]),_:1})):w("",!0),K.value?(d(),c(s,{key:1,class:"hint"},{default:r(()=>[h("加载更多…")]),_:1})):w("",!0),D.value>0&&!Q.value&&P.value.length&&!J.value?(d(),c(s,{key:2,class:"hint muted"},{default:r(()=>[h("没有更多了")]),_:1})):w("",!0),J.value||P.value.length?w("",!0):(d(),c(s,{key:3,class:"hint muted"},{default:r(()=>[h("暂无活动")]),_:1}))]),_:1})]),_:1})}}}),[["__scopeId","data-v-9e5b305e"]]);export{T as default};