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
2.7 KiB
2 lines
2.7 KiB
import{d as a,r as t,o as e,a as s,b as l,k as n,p as u,m as i,n as r,t as c,v as o,F as d,x as _,A as f,u as m,E as p}from"./index-Cu9ZRBys.js";import{a as v}from"./content.SYmDdoIV.js";import{_ as g}from"./_plugin-vue_export-helper.BCo6x5W8.js";const h=g(a({__name:"index",setup(a){const g=t([]),h=t(null);function M(a){if(!(null==a?void 0:a.start_at))return"活动进行中";const t=(new Date).getTime(),e=new Date(a.start_at).getTime(),s=a.end_at?new Date(a.end_at).getTime():e;return Number.isFinite(s)&&s<t?"活动已结束":e>t?"活动即将开始":"活动进行中"}function y(a){const t=Number(a);return Number.isFinite(t)?t:0}function b(a){if(!h.value)return"距离 --";const t=y((null==a?void 0:a.lat)||(null==a?void 0:a.venue_lat)),e=y((null==a?void 0:a.lng)||(null==a?void 0:a.venue_lng));if(!t||!e)return"距离 --";const s=function(a,t,e,s){const l=a=>a*Math.PI/180,n=l(e-a),u=l(s-t),i=Math.sin(n/2)*Math.sin(n/2)+Math.cos(l(a))*Math.cos(l(e))*Math.sin(u/2)*Math.sin(u/2);return 12742*Math.atan2(Math.sqrt(i),Math.sqrt(1-i))}(h.value.lat,h.value.lng,t,e);return Number.isFinite(s)?`距离 ${s.toFixed(1)}km`:"距离 --"}return e(async function(){const a=await v({page:1,page_size:20});g.value=(null==a?void 0:a.data)||[]}),e(async function(){try{const a=await new Promise((a,t)=>{n({type:"gcj02",success:a,fail:t})});h.value={lat:a.latitude,lng:a.longitude}}catch{h.value=null}}),(a,t)=>{const e=u,n=f;return i(),s(e,{class:"page"},{default:l(()=>[r(e,{class:"head"},{default:l(()=>[c("活动列表")]),_:1}),r(e,{class:"list"},{default:l(()=>[(i(!0),o(d,null,_(g.value,a=>(i(),s(e,{key:a.id,class:"item",onClick:t=>{return e=a.id,void p({url:`/pages/activity/detail?id=${e}`});var e}},{default:l(()=>[r(e,{class:"poster-wrap"},{default:l(()=>[a.image?(i(),s(n,{key:0,class:"poster",src:a.image,mode:"aspectFill"},null,8,["src"])):(i(),s(e,{key:1,class:"poster placeholder"})),r(e,{class:"status"},{default:l(()=>[c(m(M(a)),1)]),_:2},1024),r(e,{class:"joined"},{default:l(()=>[c("已报名 "+m(a.registered_count||0),1)]),_:2},1024)]),_:2},1024),r(e,{class:"body"},{default:l(()=>[r(e,{class:"title"},{default:l(()=>[c(m(a.title),1)]),_:2},1024),r(e,{class:"meta"},{default:l(()=>{return[c(m((t=a.start_at,t?String(t).slice(0,16).replace("T"," "):"时间待定")),1)];var t}),_:2},1024),r(e,{class:"meta"},{default:l(()=>[c(m(a.address||a.venue_name||"-"),1)]),_:2},1024),r(e,{class:"meta"},{default:l(()=>[c(m(b(a)),1)]),_:2},1024),r(e,{class:"bottom"},{default:l(()=>[r(e,{class:"price"},{default:l(()=>[c("免费")]),_:1}),r(e,{class:"btn"},{default:l(()=>[c("立即报名")]),_:1})]),_:1})]),_:2},1024)]),_:2},1032,["onClick"]))),128))]),_:1})]),_:1})}}}),[["__scopeId","data-v-f10e1a23"]]);export{h as default};
|