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