master
lion 5 days ago
parent 023fc5c45d
commit 73596136a4

@ -6,7 +6,9 @@ use App\Http\Controllers\Controller;
use App\Models\WechatUser;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Str;
use Illuminate\Validation\ValidationException;
class H5WechatController extends Controller
@ -85,4 +87,103 @@ class H5WechatController extends Controller
],
]);
}
/**
* 公众号 JS-SDK 签名分享、getLocation 等),与前端 wx.config 字段一致。
*
* @see https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html
*/
public function jssdkSignature(Request $request): JsonResponse
{
$data = $request->validate([
'url' => ['required', 'string', 'max:2048'],
]);
$appId = (string) config('wechat.app_id');
$secret = (string) config('wechat.app_secret');
if ($appId === '' || $secret === '') {
return response()->json(['message' => '服务端未配置微信公众号 AppId/AppSecret'], 503);
}
$url = $data['url'];
$ticket = $this->getWechatJsapiTicket($appId, $secret);
if ($ticket === '') {
return response()->json(['message' => '获取微信 jsapi_ticket 失败,请检查 AppId/AppSecret 与网络'], 503);
}
$timestamp = time();
$nonceStr = Str::random(16);
$plain = "jsapi_ticket={$ticket}&noncestr={$nonceStr}&timestamp={$timestamp}&url={$url}";
$signature = sha1($plain);
return response()->json([
'appId' => $appId,
'timestamp' => $timestamp,
'nonceStr' => $nonceStr,
'signature' => $signature,
]);
}
private function getWechatJsapiTicket(string $appId, string $secret): string
{
try {
return Cache::remember('wechat_jsapi_ticket_'.$appId, 7000, function () use ($appId, $secret) {
$token = $this->getWechatAccessToken($appId, $secret);
if ($token === '') {
throw new \RuntimeException('empty access_token');
}
$res = Http::timeout(15)
->get('https://api.weixin.qq.com/cgi-bin/ticket/getticket', [
'access_token' => $token,
'type' => 'jsapi',
])
->json();
if (! empty($res['errcode']) && (int) $res['errcode'] !== 0) {
throw new \RuntimeException($res['errmsg'] ?? 'getticket failed');
}
$ticket = (string) ($res['ticket'] ?? '');
if ($ticket === '') {
throw new \RuntimeException('empty ticket');
}
return $ticket;
});
} catch (\Throwable) {
Cache::forget('wechat_jsapi_ticket_'.$appId);
return '';
}
}
private function getWechatAccessToken(string $appId, string $secret): string
{
try {
return Cache::remember('wechat_access_token_'.$appId, 7000, function () use ($appId, $secret) {
$res = Http::timeout(15)
->get('https://api.weixin.qq.com/cgi-bin/token', [
'grant_type' => 'client_credential',
'appid' => $appId,
'secret' => $secret,
])
->json();
if (! empty($res['errcode'])) {
throw new \RuntimeException($res['errmsg'] ?? 'access_token failed');
}
$token = (string) ($res['access_token'] ?? '');
if ($token === '') {
throw new \RuntimeException('empty access_token');
}
return $token;
});
} catch (\Throwable) {
Cache::forget('wechat_access_token_'.$appId);
return '';
}
}
}

@ -1 +1 @@
import{h as t}from"./index-BIGEiPev.js";function n(n={}){return t.get("/h5/activities",n,{withAuth:!1})}function i(n){return t.get(`/h5/activities/${n}`,{},{withAuth:!1})}function e(){return t.get("/h5/venues",{},{withAuth:!1})}function s(){return t.get("/h5/venue-dicts",{},{withAuth:!1})}function u(n){return t.get(`/h5/venues/${n}`,{},{withAuth:!1})}function h(n){return t.get(`/h5/study-tours/${n}`,{},{withAuth:!1})}function r(){return t.get("/h5/study-tours",{},{withAuth:!1})}function o(n){return t.get(`/h5/activities/${n}/booking-info`,{},{withAuth:!1})}function a(n,i){return t.post(`/h5/activities/${n}/reservations`,i,{withAuth:!0})}function c(n){const i={};return n&&/^1\d{10}$/.test(n)&&(i.visitor_phone=n),t.get("/h5/my/reservations",i,{withAuth:!0})}function f(n,i){const e={};return i&&/^1\d{10}$/.test(i)&&(e.visitor_phone=i),t.get(`/h5/my/reservations/${n}`,e,{withAuth:!0})}function v(n,i){const e={};return i&&/^1\d{10}$/.test(i)&&(e.visitor_phone=i),t.post(`/h5/my/reservations/${n}/cancel`,e,{withAuth:!0})}export{e as a,n as b,r as c,c as d,v as e,i as f,s as g,o as h,a as i,f as j,h as k,u as l};
import{h as t}from"./index-Eh15aD7L.js";function n(n={}){return t.get("/h5/activities",n,{withAuth:!1})}function i(n){return t.get(`/h5/activities/${n}`,{},{withAuth:!1})}function e(){return t.get("/h5/venues",{},{withAuth:!1})}function s(){return t.get("/h5/venue-dicts",{},{withAuth:!1})}function u(n){return t.get(`/h5/venues/${n}`,{},{withAuth:!1})}function h(n){return t.get(`/h5/study-tours/${n}`,{},{withAuth:!1})}function r(){return t.get("/h5/study-tours",{},{withAuth:!1})}function o(n){return t.get(`/h5/activities/${n}/booking-info`,{},{withAuth:!1})}function a(n,i){return t.post(`/h5/activities/${n}/reservations`,i,{withAuth:!0})}function c(n){const i={};return n&&/^1\d{10}$/.test(n)&&(i.visitor_phone=n),t.get("/h5/my/reservations",i,{withAuth:!0})}function f(n,i){const e={};return i&&/^1\d{10}$/.test(i)&&(e.visitor_phone=i),t.get(`/h5/my/reservations/${n}`,e,{withAuth:!0})}function v(n,i){const e={};return i&&/^1\d{10}$/.test(i)&&(e.visitor_phone=i),t.post(`/h5/my/reservations/${n}/cancel`,e,{withAuth:!0})}export{e as a,n as b,r as c,c as d,v as e,i as f,s as g,o as h,a as i,f as j,h as k,u as l};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1 +1 @@
import{h as t,g as n,S as r,b as e}from"./index-BIGEiPev.js";function o(){return t.get("/h5/me/profile",{},{withAuth:!0})}function i(n){return t.put("/h5/me/profile",n,{withAuth:!0})}function u(){try{const t=n(r.localProfile);if(!t)return null;const e="string"==typeof t?JSON.parse(t):t;return e&&"object"==typeof e?e:null}catch{return null}}function l(t){e(r.localProfile,JSON.stringify(t))}export{o as g,u as l,l as s,i as u};
import{h as t,g as n,S as r,b as e}from"./index-Eh15aD7L.js";function o(){return t.get("/h5/me/profile",{},{withAuth:!0})}function i(n){return t.put("/h5/me/profile",n,{withAuth:!0})}function u(){try{const t=n(r.localProfile);if(!t)return null;const e="string"==typeof t?JSON.parse(t):t;return e&&"object"==typeof e?e:null}catch{return null}}function l(t){e(r.localProfile,JSON.stringify(t))}export{o as g,u as l,l as s,i as u};

@ -1 +1 @@
import{d as a,e as t,f as e,o as l,O as s,P as n,Q as u,j as i,k as r,q as c,v as o,t as d,u as v,B as f,F as _,C as y,H as g,y as m,z as p,x as h,G as k,J as w,D as b,L as M}from"./index-BIGEiPev.js";import{b as j}from"./content.Dr3GDAI4.js";import{f as P,i as x}from"./activity.k1jR9V-B.js";import{_ as A}from"./_plugin-vue_export-helper.BCo6x5W8.js";const F=A(a({__name:"index",setup(a){const A=t([]),F=t(null),N=t(1),C=t(0),D=t(!1),q=t(!1),T=e(()=>C.value>0&&N.value<C.value);async function z(a,t){if(!D.value||t){if(t){if(q.value||!T.value)return;q.value=!0}else D.value=!0;try{const e=await j({page:a,page_size:10}),{list:l,lastPage:s}=function(a){if(!a||"object"!=typeof a)return{list:[],lastPage:1};const t=a;if(Array.isArray(t))return{list:t,lastPage:1};const e=t.data;if(Array.isArray(e))return{list:e,lastPage:Number(t.last_page??1)||1};if(e&&"object"==typeof e){const a=e;if(Array.isArray(a.data)){const e=Number(a.last_page??t.last_page??1)||1;return{list:a.data,lastPage:e}}}return{list:[],lastPage:1}}(e);C.value=s,A.value=t?[...A.value,...l]:l,N.value=a}catch{t||(A.value=[])}finally{D.value=!1,q.value=!1}}}function I(a){M({url:`/pages/activity/detail?id=${a}`})}function $(a){if(!(null==a?void 0:a.start_at))return"活动进行中";const t=(new Date).getTime(),e=new Date(a.start_at).getTime(),l=a.end_at?new Date(a.end_at).getTime():e;return Number.isFinite(l)&&l<t?"活动已结束":e>t?"活动即将开始":"活动进行中"}function B(a){const t=Number(a);return Number.isFinite(t)?t:0}function G(a){if(!F.value)return"距离 --";const t=B((null==a?void 0:a.lat)||(null==a?void 0:a.venue_lat)),e=B((null==a?void 0:a.lng)||(null==a?void 0:a.venue_lng));if(!t||!e)return"距离 --";const l=function(a,t,e,l){const s=a=>a*Math.PI/180,n=s(e-a),u=s(l-t),i=Math.sin(n/2)*Math.sin(n/2)+Math.cos(s(a))*Math.cos(s(e))*Math.sin(u/2)*Math.sin(u/2);return 12742*Math.atan2(Math.sqrt(i),Math.sqrt(1-i))}(F.value.lat,F.value.lng,t,e);return Number.isFinite(l)?`距离 ${l.toFixed(1)}km`:"距离 --"}return l(()=>{!async function(){N.value=1,await z(1,!1)}(),async function(){try{const a=await new Promise((a,t)=>{c({type:"gcj02",success:a,fail:t})});F.value={lat:a.latitude,lng:a.longitude}}catch{F.value=null}}()}),s(()=>{D.value||q.value||!T.value||z(N.value+1,!0)}),n(async()=>{try{await async function(){N.value=1,await z(1,!1)}()}finally{u()}}),(a,t)=>{const e=g,l=o,s=h;return d(),i(l,{class:"page"},{default:r(()=>[v(l,{class:"list-inner"},{default:r(()=>[(d(!0),f(_,null,y(A.value,a=>(d(),i(l,{key:a.id,class:"item",onClick:t=>I(a.id)},{default:r(()=>[v(l,{class:"poster-wrap"},{default:r(()=>[a.image?(d(),i(e,{key:0,class:"poster",src:a.image,mode:"aspectFill"},null,8,["src"])):(d(),i(l,{key:1,class:"poster placeholder"})),v(l,{class:"status"},{default:r(()=>[m(p($(a)),1)]),_:2},1024),v(l,{class:"joined"},{default:r(()=>[m("已报名 "+p(a.registered_count||0),1)]),_:2},1024)]),_:2},1024),v(l,{class:"body"},{default:r(()=>{var t;return[v(l,{class:"title"},{default:r(()=>[m(p(a.title),1)]),_:2},1024),(null==(t=a.tags)?void 0:t.length)?(d(),i(l,{key:0,class:"chip-row"},{default:r(()=>[(d(!0),f(_,null,y(a.tags,(t,e)=>(d(),i(s,{key:"t-"+a.id+"-"+e,class:"chip"},{default:r(()=>[m(p(t),1)]),_:2},1024))),128))]),_:2},1024)):k("",!0),v(l,{class:"meta"},{default:r(()=>[m(p(w(P)(a.start_at,a.end_at)),1)]),_:2},1024),v(l,{class:"meta venue-line"},{default:r(()=>[m(p(a.venue_name||"场馆待定"),1)]),_:2},1024),v(l,{class:"action-row"},{default:r(()=>{return[v(s,{class:"meta distance"},{default:r(()=>[m(p(G(a)),1)]),_:2},1024),(t=a,x(null==t?void 0:t.end_at)?k("",!0):(d(),i(l,{key:0,class:"btn",onClick:b(t=>I(a.id),["stop"])},{default:r(()=>[m("立即报名")]),_:2},1032,["onClick"])))];var t}),_:2},1024)]}),_:2},1024)]),_:2},1032,["onClick"]))),128)),D.value&&!A.value.length?(d(),i(l,{key:0,class:"hint"},{default:r(()=>[m("加载中…")]),_:1})):k("",!0),q.value?(d(),i(l,{key:1,class:"hint"},{default:r(()=>[m("加载更多…")]),_:1})):k("",!0),T.value||!A.value.length||D.value?k("",!0):(d(),i(l,{key:2,class:"hint muted"},{default:r(()=>[m("没有更多了")]),_:1})),D.value||A.value.length?k("",!0):(d(),i(l,{key:3,class:"hint muted"},{default:r(()=>[m("暂无活动")]),_:1}))]),_:1})]),_:1})}}}),[["__scopeId","data-v-437981e0"]]);export{F as default};
import{d as a,e as t,f as e,o as l,O as s,P as n,Q as u,j as i,k as r,q as c,v as o,t as d,u as v,B as f,F as _,C as y,H as g,y as m,z as p,x as h,G as k,J as w,D as b,L as M}from"./index-Eh15aD7L.js";import{b as j}from"./content.CjHSnJMf.js";import{f as P,i as x}from"./activity.k1jR9V-B.js";import{_ as A}from"./_plugin-vue_export-helper.BCo6x5W8.js";const F=A(a({__name:"index",setup(a){const A=t([]),F=t(null),N=t(1),C=t(0),D=t(!1),q=t(!1),T=e(()=>C.value>0&&N.value<C.value);async function z(a,t){if(!D.value||t){if(t){if(q.value||!T.value)return;q.value=!0}else D.value=!0;try{const e=await j({page:a,page_size:10}),{list:l,lastPage:s}=function(a){if(!a||"object"!=typeof a)return{list:[],lastPage:1};const t=a;if(Array.isArray(t))return{list:t,lastPage:1};const e=t.data;if(Array.isArray(e))return{list:e,lastPage:Number(t.last_page??1)||1};if(e&&"object"==typeof e){const a=e;if(Array.isArray(a.data)){const e=Number(a.last_page??t.last_page??1)||1;return{list:a.data,lastPage:e}}}return{list:[],lastPage:1}}(e);C.value=s,A.value=t?[...A.value,...l]:l,N.value=a}catch{t||(A.value=[])}finally{D.value=!1,q.value=!1}}}function I(a){M({url:`/pages/activity/detail?id=${a}`})}function $(a){if(!(null==a?void 0:a.start_at))return"活动进行中";const t=(new Date).getTime(),e=new Date(a.start_at).getTime(),l=a.end_at?new Date(a.end_at).getTime():e;return Number.isFinite(l)&&l<t?"活动已结束":e>t?"活动即将开始":"活动进行中"}function B(a){const t=Number(a);return Number.isFinite(t)?t:0}function G(a){if(!F.value)return"距离 --";const t=B((null==a?void 0:a.lat)||(null==a?void 0:a.venue_lat)),e=B((null==a?void 0:a.lng)||(null==a?void 0:a.venue_lng));if(!t||!e)return"距离 --";const l=function(a,t,e,l){const s=a=>a*Math.PI/180,n=s(e-a),u=s(l-t),i=Math.sin(n/2)*Math.sin(n/2)+Math.cos(s(a))*Math.cos(s(e))*Math.sin(u/2)*Math.sin(u/2);return 12742*Math.atan2(Math.sqrt(i),Math.sqrt(1-i))}(F.value.lat,F.value.lng,t,e);return Number.isFinite(l)?`距离 ${l.toFixed(1)}km`:"距离 --"}return l(()=>{!async function(){N.value=1,await z(1,!1)}(),async function(){try{const a=await new Promise((a,t)=>{c({type:"gcj02",success:a,fail:t})});F.value={lat:a.latitude,lng:a.longitude}}catch{F.value=null}}()}),s(()=>{D.value||q.value||!T.value||z(N.value+1,!0)}),n(async()=>{try{await async function(){N.value=1,await z(1,!1)}()}finally{u()}}),(a,t)=>{const e=g,l=o,s=h;return d(),i(l,{class:"page"},{default:r(()=>[v(l,{class:"list-inner"},{default:r(()=>[(d(!0),f(_,null,y(A.value,a=>(d(),i(l,{key:a.id,class:"item",onClick:t=>I(a.id)},{default:r(()=>[v(l,{class:"poster-wrap"},{default:r(()=>[a.image?(d(),i(e,{key:0,class:"poster",src:a.image,mode:"aspectFill"},null,8,["src"])):(d(),i(l,{key:1,class:"poster placeholder"})),v(l,{class:"status"},{default:r(()=>[m(p($(a)),1)]),_:2},1024),v(l,{class:"joined"},{default:r(()=>[m("已报名 "+p(a.registered_count||0),1)]),_:2},1024)]),_:2},1024),v(l,{class:"body"},{default:r(()=>{var t;return[v(l,{class:"title"},{default:r(()=>[m(p(a.title),1)]),_:2},1024),(null==(t=a.tags)?void 0:t.length)?(d(),i(l,{key:0,class:"chip-row"},{default:r(()=>[(d(!0),f(_,null,y(a.tags,(t,e)=>(d(),i(s,{key:"t-"+a.id+"-"+e,class:"chip"},{default:r(()=>[m(p(t),1)]),_:2},1024))),128))]),_:2},1024)):k("",!0),v(l,{class:"meta"},{default:r(()=>[m(p(w(P)(a.start_at,a.end_at)),1)]),_:2},1024),v(l,{class:"meta venue-line"},{default:r(()=>[m(p(a.venue_name||"场馆待定"),1)]),_:2},1024),v(l,{class:"action-row"},{default:r(()=>{return[v(s,{class:"meta distance"},{default:r(()=>[m(p(G(a)),1)]),_:2},1024),(t=a,x(null==t?void 0:t.end_at)?k("",!0):(d(),i(l,{key:0,class:"btn",onClick:b(t=>I(a.id),["stop"])},{default:r(()=>[m("立即报名")]),_:2},1032,["onClick"])))];var t}),_:2},1024)]}),_:2},1024)]),_:2},1032,["onClick"]))),128)),D.value&&!A.value.length?(d(),i(l,{key:0,class:"hint"},{default:r(()=>[m("加载中…")]),_:1})):k("",!0),q.value?(d(),i(l,{key:1,class:"hint"},{default:r(()=>[m("加载更多…")]),_:1})):k("",!0),T.value||!A.value.length||D.value?k("",!0):(d(),i(l,{key:2,class:"hint muted"},{default:r(()=>[m("没有更多了")]),_:1})),D.value||A.value.length?k("",!0):(d(),i(l,{key:3,class:"hint muted"},{default:r(()=>[m("暂无活动")]),_:1}))]),_:1})]),_:1})}}}),[["__scopeId","data-v-437981e0"]]);export{F as default};

@ -1 +1 @@
import{d as a,e as t,o as s,P as e,Q as l,j as u,k as r,v as o,t as n,u as c,B as i,F as d,C as _,H as f,x as v,y as m,z as y,G as p,L as g}from"./index-BIGEiPev.js";import{c as k}from"./content.Dr3GDAI4.js";import{_ as h}from"./_plugin-vue_export-helper.BCo6x5W8.js";const w=h(a({__name:"index",setup(a){const h=t([]),w=t(!1);async function x(){w.value=!0;try{h.value=await k()||[]}catch{h.value=[]}finally{w.value=!1}}return s(()=>{x()}),e(async()=>{try{await x()}finally{l()}}),(a,t)=>{const s=f,e=o,l=v;return n(),u(e,{class:"page"},{default:r(()=>[c(e,{class:"section"},{default:r(()=>[(n(!0),i(d,null,_(h.value,a=>(n(),u(e,{key:a.id,class:"tour-card",onClick:t=>{return s=a.id,void g({url:`/pages/study-tour/detail?id=${s}`});var s}},{default:r(()=>[c(e,{class:"tour-img-wrap"},{default:r(()=>[a.cover_image?(n(),u(s,{key:0,class:"tour-img",src:a.cover_image,mode:"aspectFill"},null,8,["src"])):(n(),u(e,{key:1,class:"tour-img tour-ph"})),c(e,{class:"tour-overlay-title-wrap"},{default:r(()=>[c(l,{class:"tour-overlay-title"},{default:r(()=>[m(y(a.name),1)]),_:2},1024)]),_:2},1024)]),_:2},1024),c(e,{class:"tour-body"},{default:r(()=>{var t;return[c(l,{class:"tour-title"},{default:r(()=>[m(y(a.name),1)]),_:2},1024),c(e,{class:"tour-stops-timeline"},{default:r(()=>[(n(!0),i(d,null,_(a.venue_names||[],(t,s)=>(n(),u(e,{key:"v-"+a.id+"-"+s,class:"tour-stop-row"},{default:r(()=>[c(e,{class:"tour-timeline-axis"},{default:r(()=>{var t;return[c(e,{class:"tour-dot-cell"},{default:r(()=>[c(e,{class:"tour-tl-dot"})]),_:1}),Number(s)<((null==(t=a.venue_names)?void 0:t.length)||0)-1?(n(),u(e,{key:0,class:"tour-tl-line"})):p("",!0)]}),_:2},1024),c(l,{class:"tour-stop-name"},{default:r(()=>[m(y(t),1)]),_:2},1024)]),_:2},1024))),128))]),_:2},1024),(null==(t=a.tags)?void 0:t.length)?(n(),u(e,{key:0,class:"tour-tags-row"},{default:r(()=>[(n(!0),i(d,null,_(a.tags,(t,s)=>(n(),u(l,{key:"t-"+a.id+"-"+s,class:"tour-tag"},{default:r(()=>[m(y(t),1)]),_:2},1024))),128))]),_:2},1024)):p("",!0)]}),_:2},1024)]),_:2},1032,["onClick"]))),128)),w.value&&!h.value.length?(n(),u(e,{key:0,class:"hint"},{default:r(()=>[m("加载中…")]),_:1})):p("",!0),w.value||h.value.length?p("",!0):(n(),u(e,{key:1,class:"hint muted"},{default:r(()=>[m("暂无研学线路")]),_:1}))]),_:1}),c(e,{class:"bottom-safe"})]),_:1})}}}),[["__scopeId","data-v-6f1b91a9"]]);export{w as default};
import{d as a,e as t,o as s,P as e,Q as l,j as u,k as r,v as o,t as n,u as c,B as i,F as d,C as _,H as f,x as v,y as m,z as y,G as p,L as g}from"./index-Eh15aD7L.js";import{c as k}from"./content.CjHSnJMf.js";import{_ as h}from"./_plugin-vue_export-helper.BCo6x5W8.js";const w=h(a({__name:"index",setup(a){const h=t([]),w=t(!1);async function x(){w.value=!0;try{h.value=await k()||[]}catch{h.value=[]}finally{w.value=!1}}return s(()=>{x()}),e(async()=>{try{await x()}finally{l()}}),(a,t)=>{const s=f,e=o,l=v;return n(),u(e,{class:"page"},{default:r(()=>[c(e,{class:"section"},{default:r(()=>[(n(!0),i(d,null,_(h.value,a=>(n(),u(e,{key:a.id,class:"tour-card",onClick:t=>{return s=a.id,void g({url:`/pages/study-tour/detail?id=${s}`});var s}},{default:r(()=>[c(e,{class:"tour-img-wrap"},{default:r(()=>[a.cover_image?(n(),u(s,{key:0,class:"tour-img",src:a.cover_image,mode:"aspectFill"},null,8,["src"])):(n(),u(e,{key:1,class:"tour-img tour-ph"})),c(e,{class:"tour-overlay-title-wrap"},{default:r(()=>[c(l,{class:"tour-overlay-title"},{default:r(()=>[m(y(a.name),1)]),_:2},1024)]),_:2},1024)]),_:2},1024),c(e,{class:"tour-body"},{default:r(()=>{var t;return[c(l,{class:"tour-title"},{default:r(()=>[m(y(a.name),1)]),_:2},1024),c(e,{class:"tour-stops-timeline"},{default:r(()=>[(n(!0),i(d,null,_(a.venue_names||[],(t,s)=>(n(),u(e,{key:"v-"+a.id+"-"+s,class:"tour-stop-row"},{default:r(()=>[c(e,{class:"tour-timeline-axis"},{default:r(()=>{var t;return[c(e,{class:"tour-dot-cell"},{default:r(()=>[c(e,{class:"tour-tl-dot"})]),_:1}),Number(s)<((null==(t=a.venue_names)?void 0:t.length)||0)-1?(n(),u(e,{key:0,class:"tour-tl-line"})):p("",!0)]}),_:2},1024),c(l,{class:"tour-stop-name"},{default:r(()=>[m(y(t),1)]),_:2},1024)]),_:2},1024))),128))]),_:2},1024),(null==(t=a.tags)?void 0:t.length)?(n(),u(e,{key:0,class:"tour-tags-row"},{default:r(()=>[(n(!0),i(d,null,_(a.tags,(t,s)=>(n(),u(l,{key:"t-"+a.id+"-"+s,class:"tour-tag"},{default:r(()=>[m(y(t),1)]),_:2},1024))),128))]),_:2},1024)):p("",!0)]}),_:2},1024)]),_:2},1032,["onClick"]))),128)),w.value&&!h.value.length?(n(),u(e,{key:0,class:"hint"},{default:r(()=>[m("加载中…")]),_:1})):p("",!0),w.value||h.value.length?p("",!0):(n(),u(e,{key:1,class:"hint muted"},{default:r(()=>[m("暂无研学线路")]),_:1}))]),_:1}),c(e,{class:"bottom-safe"})]),_:1})}}}),[["__scopeId","data-v-6f1b91a9"]]);export{w as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1 +1 @@
import{d as e,e as a,f as l,o as s,j as t,k as u,q as r,v as c,t as i,u as n,I as o,H as d,J as v,x as m,y as f,z as p,B as _,F as b,C as g,G as y,K as k,L as h}from"./index-BIGEiPev.js";import{g as x,a as j}from"./content.Dr3GDAI4.js";import{s as w}from"./search.BJnl3YRK.js";import{d as C}from"./down.BCKq9i8s.js";import{h as F,f as N}from"./geo.BHVFNtB7.js";import{_ as I}from"./_plugin-vue_export-helper.BCo6x5W8.js";const L=I(e({__name:"index",setup(e){const I=a([]),L=a(null),$=a(""),V=a("全部区域"),q=a(""),z=a("全部类型"),B=a(""),G=a("收费类型"),H=a(""),J=a(null),K=l(()=>{var e;return[{label:"全部区域",value:""},...((null==(e=L.value)?void 0:e.district)??[]).map(e=>({label:e.label,value:e.value}))]}),P=l(()=>{var e;return[{label:"全部类型",value:""},...((null==(e=L.value)?void 0:e.venue_type)??[]).map(e=>({label:e.label,value:e.value}))]}),U=l(()=>{var e;return[{label:"收费类型",value:""},...((null==(e=L.value)?void 0:e.ticket_type)??[]).map(e=>({label:e.label,value:e.value}))]}),A=l(()=>{const e=$.value.trim();return I.value.filter(a=>{if(q.value&&(a.district||"")!==q.value)return!1;if(B.value&&(a.venue_type||"")!==B.value)return!1;if("free"===H.value&&"free"!==(a.ticket_type||""))return!1;if("paid"===H.value&&"paid"!==(a.ticket_type||""))return!1;if(e){if(!`${a.name||""}${a.address||""}`.includes(e))return!1}return!0})}),D=l(()=>{const e=[...A.value],a=J.value;return a?e.sort((e,l)=>{const s=Number(e.lat),t=Number(e.lng),u=Number(l.lat),r=Number(l.lng);if(!s||!t)return 1;if(!u||!r)return-1;return F(a.lat,a.lng,s,t)-F(a.lat,a.lng,u,r)}):e});function E(e){if("district"===e){const e=K.value;k({itemList:e.map(e=>e.label),success:a=>{const l=e[a.tapIndex];V.value=l.label,q.value=l.value}})}else if("type"===e){const e=P.value;k({itemList:e.map(e=>e.label),success:a=>{const l=e[a.tapIndex];z.value=l.label,B.value=l.value}})}else{const e=U.value;k({itemList:e.map(e=>e.label),success:a=>{const l=e[a.tapIndex];G.value=l.label,H.value=l.value}})}}function M(e){const a=J.value;if(!a)return"距离 --";const l=Number(e.lat),s=Number(e.lng);if(!l||!s)return"距离 --";const t=F(a.lat,a.lng,l,s);return`距您 ${N(t)}`}return s(()=>{!async function(){const[e,a]=await Promise.all([x(),j()]);L.value=e,I.value=a||[]}(),r({type:"gcj02",success:e=>{J.value={lat:e.latitude,lng:e.longitude}},fail:()=>{J.value=null}})}),(e,a)=>{const l=o,s=d,r=c,k=m;return i(),t(r,{class:"page"},{default:u(()=>[n(r,{class:"map-section"},{default:u(()=>[n(r,{class:"toolbar"},{default:u(()=>[n(r,{class:"search-wrap"},{default:u(()=>[n(l,{modelValue:$.value,"onUpdate:modelValue":a[0]||(a[0]=e=>$.value=e),class:"search-input",placeholder:"请输入你要搜索的内容","placeholder-class":"ph"},null,8,["modelValue"]),n(s,{class:"search-icon-img",src:v(w),mode:"aspectFit"},null,8,["src"])]),_:1})]),_:1}),n(r,{class:"filters"},{default:u(()=>[n(r,{class:"f-item",onClick:a[1]||(a[1]=e=>E("district"))},{default:u(()=>[n(k,{class:"f-item-text"},{default:u(()=>[f(p(V.value),1)]),_:1}),n(s,{class:"f-item-arrow",src:v(C),mode:"aspectFit"},null,8,["src"])]),_:1}),n(r,{class:"f-item",onClick:a[2]||(a[2]=e=>E("type"))},{default:u(()=>[n(k,{class:"f-item-text"},{default:u(()=>[f(p(z.value),1)]),_:1}),n(s,{class:"f-item-arrow",src:v(C),mode:"aspectFit"},null,8,["src"])]),_:1}),n(r,{class:"f-item",onClick:a[3]||(a[3]=e=>E("ticket"))},{default:u(()=>[n(k,{class:"f-item-text"},{default:u(()=>[f(p(G.value),1)]),_:1}),n(s,{class:"f-item-arrow",src:v(C),mode:"aspectFit"},null,8,["src"])]),_:1})]),_:1})]),_:1}),n(r,{class:"list"},{default:u(()=>[(i(!0),_(b,null,g(D.value,e=>(i(),t(r,{key:e.id,class:"item",onClick:a=>{return l=e.id,void h({url:`/pages/venue/detail?id=${l}`});var l}},{default:u(()=>[e.cover_image?(i(),t(s,{key:0,class:"img",src:e.cover_image,mode:"aspectFill"},null,8,["src"])):(i(),t(r,{key:1,class:"img placeholder"})),n(r,{class:"body"},{default:u(()=>[n(r,{class:"name"},{default:u(()=>[f(p(e.name),1)]),_:2},1024),n(r,{class:"addr"},{default:u(()=>[f(p(e.address||"-"),1)]),_:2},1024),n(r,{class:"dist"},{default:u(()=>[f(p(M(e)),1)]),_:2},1024)]),_:2},1024)]),_:2},1032,["onClick"]))),128)),D.value.length?y("",!0):(i(),t(r,{key:0,class:"empty-tip"},{default:u(()=>[f("暂无符合条件的场馆")]),_:1}))]),_:1})]),_:1})}}}),[["__scopeId","data-v-ba778cf3"]]);export{L as default};
import{d as e,e as a,f as l,o as s,j as t,k as u,q as r,v as c,t as i,u as n,I as o,H as d,J as v,x as m,y as f,z as p,B as _,F as b,C as g,G as y,K as k,L as h}from"./index-Eh15aD7L.js";import{g as x,a as j}from"./content.CjHSnJMf.js";import{s as w}from"./search.BJnl3YRK.js";import{d as C}from"./down.BCKq9i8s.js";import{h as F,f as N}from"./geo.BHVFNtB7.js";import{_ as I}from"./_plugin-vue_export-helper.BCo6x5W8.js";const L=I(e({__name:"index",setup(e){const I=a([]),L=a(null),$=a(""),V=a("全部区域"),q=a(""),z=a("全部类型"),B=a(""),G=a("收费类型"),H=a(""),J=a(null),K=l(()=>{var e;return[{label:"全部区域",value:""},...((null==(e=L.value)?void 0:e.district)??[]).map(e=>({label:e.label,value:e.value}))]}),P=l(()=>{var e;return[{label:"全部类型",value:""},...((null==(e=L.value)?void 0:e.venue_type)??[]).map(e=>({label:e.label,value:e.value}))]}),U=l(()=>{var e;return[{label:"收费类型",value:""},...((null==(e=L.value)?void 0:e.ticket_type)??[]).map(e=>({label:e.label,value:e.value}))]}),A=l(()=>{const e=$.value.trim();return I.value.filter(a=>{if(q.value&&(a.district||"")!==q.value)return!1;if(B.value&&(a.venue_type||"")!==B.value)return!1;if("free"===H.value&&"free"!==(a.ticket_type||""))return!1;if("paid"===H.value&&"paid"!==(a.ticket_type||""))return!1;if(e){if(!`${a.name||""}${a.address||""}`.includes(e))return!1}return!0})}),D=l(()=>{const e=[...A.value],a=J.value;return a?e.sort((e,l)=>{const s=Number(e.lat),t=Number(e.lng),u=Number(l.lat),r=Number(l.lng);if(!s||!t)return 1;if(!u||!r)return-1;return F(a.lat,a.lng,s,t)-F(a.lat,a.lng,u,r)}):e});function E(e){if("district"===e){const e=K.value;k({itemList:e.map(e=>e.label),success:a=>{const l=e[a.tapIndex];V.value=l.label,q.value=l.value}})}else if("type"===e){const e=P.value;k({itemList:e.map(e=>e.label),success:a=>{const l=e[a.tapIndex];z.value=l.label,B.value=l.value}})}else{const e=U.value;k({itemList:e.map(e=>e.label),success:a=>{const l=e[a.tapIndex];G.value=l.label,H.value=l.value}})}}function M(e){const a=J.value;if(!a)return"距离 --";const l=Number(e.lat),s=Number(e.lng);if(!l||!s)return"距离 --";const t=F(a.lat,a.lng,l,s);return`距您 ${N(t)}`}return s(()=>{!async function(){const[e,a]=await Promise.all([x(),j()]);L.value=e,I.value=a||[]}(),r({type:"gcj02",success:e=>{J.value={lat:e.latitude,lng:e.longitude}},fail:()=>{J.value=null}})}),(e,a)=>{const l=o,s=d,r=c,k=m;return i(),t(r,{class:"page"},{default:u(()=>[n(r,{class:"map-section"},{default:u(()=>[n(r,{class:"toolbar"},{default:u(()=>[n(r,{class:"search-wrap"},{default:u(()=>[n(l,{modelValue:$.value,"onUpdate:modelValue":a[0]||(a[0]=e=>$.value=e),class:"search-input",placeholder:"请输入你要搜索的内容","placeholder-class":"ph"},null,8,["modelValue"]),n(s,{class:"search-icon-img",src:v(w),mode:"aspectFit"},null,8,["src"])]),_:1})]),_:1}),n(r,{class:"filters"},{default:u(()=>[n(r,{class:"f-item",onClick:a[1]||(a[1]=e=>E("district"))},{default:u(()=>[n(k,{class:"f-item-text"},{default:u(()=>[f(p(V.value),1)]),_:1}),n(s,{class:"f-item-arrow",src:v(C),mode:"aspectFit"},null,8,["src"])]),_:1}),n(r,{class:"f-item",onClick:a[2]||(a[2]=e=>E("type"))},{default:u(()=>[n(k,{class:"f-item-text"},{default:u(()=>[f(p(z.value),1)]),_:1}),n(s,{class:"f-item-arrow",src:v(C),mode:"aspectFit"},null,8,["src"])]),_:1}),n(r,{class:"f-item",onClick:a[3]||(a[3]=e=>E("ticket"))},{default:u(()=>[n(k,{class:"f-item-text"},{default:u(()=>[f(p(G.value),1)]),_:1}),n(s,{class:"f-item-arrow",src:v(C),mode:"aspectFit"},null,8,["src"])]),_:1})]),_:1})]),_:1}),n(r,{class:"list"},{default:u(()=>[(i(!0),_(b,null,g(D.value,e=>(i(),t(r,{key:e.id,class:"item",onClick:a=>{return l=e.id,void h({url:`/pages/venue/detail?id=${l}`});var l}},{default:u(()=>[e.cover_image?(i(),t(s,{key:0,class:"img",src:e.cover_image,mode:"aspectFill"},null,8,["src"])):(i(),t(r,{key:1,class:"img placeholder"})),n(r,{class:"body"},{default:u(()=>[n(r,{class:"name"},{default:u(()=>[f(p(e.name),1)]),_:2},1024),n(r,{class:"addr"},{default:u(()=>[f(p(e.address||"-"),1)]),_:2},1024),n(r,{class:"dist"},{default:u(()=>[f(p(M(e)),1)]),_:2},1024)]),_:2},1024)]),_:2},1032,["onClick"]))),128)),D.value.length?y("",!0):(i(),t(r,{key:0,class:"empty-tip"},{default:u(()=>[f("暂无符合条件的场馆")]),_:1}))]),_:1})]),_:1})}}}),[["__scopeId","data-v-ba778cf3"]]);export{L as default};

@ -1 +1 @@
import{d as a,e as l,R as e,j as s,k as n,g as u,S as t,v as o,t as r,u as c,H as i,y as d,z as f,x as _,L as p}from"./index-BIGEiPev.js";import{g as v,l as m}from"./localProfile.CWOnWJub.js";import{_ as h}from"./_plugin-vue_export-helper.BCo6x5W8.js";const k=h(a({__name:"index",setup(a){const h=l("游客"),k=l(""),g=l("");function x(a){return a&&11===a.length?`${a.slice(0,3)}****${a.slice(7)}`:a||""}function y(){p({url:"/pages/mine/profile"})}function j(){p({url:"/pages/mine/orders"})}return e(()=>{!async function(){var a;if(u(t.accessToken))try{const a=await v();return h.value=(a.real_name||a.nickname||"用户").trim()||"用户",k.value=a.phone?x(a.phone):"",void(g.value=a.avatar_url||"")}catch{}const l=m();h.value=(null==(a=null==l?void 0:l.real_name)?void 0:a.trim())||"游客",k.value=(null==l?void 0:l.phone)?x(l.phone):"",g.value=(null==l?void 0:l.avatar_url)||""}()}),(a,l)=>{const e=i,u=o,t=_;return r(),s(u,{class:"page"},{default:n(()=>[c(u,{class:"header"},{default:n(()=>[c(u,{class:"profile",onClick:y},{default:n(()=>[g.value?(r(),s(e,{key:0,class:"avatar",src:g.value,mode:"aspectFill"},null,8,["src"])):(r(),s(u,{key:1,class:"avatar placeholder"})),c(u,{class:"profile-info"},{default:n(()=>[c(u,{class:"name"},{default:n(()=>[d(f(h.value),1)]),_:1}),c(u,{class:"phone"},{default:n(()=>[d(f(k.value||"完善信息方便预约"),1)]),_:1})]),_:1})]),_:1})]),_:1}),c(u,{class:"panel"},{default:n(()=>[c(u,{class:"menu-item",onClick:y},{default:n(()=>[c(t,null,{default:n(()=>[d("我的信息")]),_:1}),c(t,null,{default:n(()=>[d(">")]),_:1})]),_:1}),c(u,{class:"menu-item",onClick:j},{default:n(()=>[c(t,null,{default:n(()=>[d("预约记录")]),_:1}),c(t,null,{default:n(()=>[d(">")]),_:1})]),_:1})]),_:1})]),_:1})}}}),[["__scopeId","data-v-8b642866"]]);export{k as default};
import{d as a,e as l,R as e,j as s,k as n,g as u,S as t,v as o,t as r,u as c,H as i,y as d,z as f,x as _,L as p}from"./index-Eh15aD7L.js";import{g as v,l as m}from"./localProfile.B1_MnO3g.js";import{_ as h}from"./_plugin-vue_export-helper.BCo6x5W8.js";const k=h(a({__name:"index",setup(a){const h=l("游客"),k=l(""),g=l("");function x(a){return a&&11===a.length?`${a.slice(0,3)}****${a.slice(7)}`:a||""}function y(){p({url:"/pages/mine/profile"})}function j(){p({url:"/pages/mine/orders"})}return e(()=>{!async function(){var a;if(u(t.accessToken))try{const a=await v();return h.value=(a.real_name||a.nickname||"用户").trim()||"用户",k.value=a.phone?x(a.phone):"",void(g.value=a.avatar_url||"")}catch{}const l=m();h.value=(null==(a=null==l?void 0:l.real_name)?void 0:a.trim())||"游客",k.value=(null==l?void 0:l.phone)?x(l.phone):"",g.value=(null==l?void 0:l.avatar_url)||""}()}),(a,l)=>{const e=i,u=o,t=_;return r(),s(u,{class:"page"},{default:n(()=>[c(u,{class:"header"},{default:n(()=>[c(u,{class:"profile",onClick:y},{default:n(()=>[g.value?(r(),s(e,{key:0,class:"avatar",src:g.value,mode:"aspectFill"},null,8,["src"])):(r(),s(u,{key:1,class:"avatar placeholder"})),c(u,{class:"profile-info"},{default:n(()=>[c(u,{class:"name"},{default:n(()=>[d(f(h.value),1)]),_:1}),c(u,{class:"phone"},{default:n(()=>[d(f(k.value||"完善信息方便预约"),1)]),_:1})]),_:1})]),_:1})]),_:1}),c(u,{class:"panel"},{default:n(()=>[c(u,{class:"menu-item",onClick:y},{default:n(()=>[c(t,null,{default:n(()=>[d("我的信息")]),_:1}),c(t,null,{default:n(()=>[d(">")]),_:1})]),_:1}),c(u,{class:"menu-item",onClick:j},{default:n(()=>[c(t,null,{default:n(()=>[d("预约记录")]),_:1}),c(t,null,{default:n(()=>[d(">")]),_:1})]),_:1})]),_:1})]),_:1})}}}),[["__scopeId","data-v-8b642866"]]);export{k as default};

@ -1 +1 @@
import{d as a,e,f as l,o as s,j as t,k as i,g as n,S as c,s as u,v as o,t as d,u as r,y as v,I as f,T as _,z as p,E as m,B as g,F as k,C as h,J as y,D as C,L as b,m as $}from"./index-BIGEiPev.js";import{d as j,e as w}from"./content.Dr3GDAI4.js";import{f as x,a as I}from"./datetime.DReAHQ1x.js";import{_ as T}from"./_plugin-vue_export-helper.BCo6x5W8.js";const V=T(a({__name:"orders",setup(a){const T=e(""),V=e([]),U=e(!1),z=e("all"),B=l(()=>"all"===z.value?V.value:V.value.filter(a=>a.status===z.value));function D(){return!!n(c.accessToken)}function E(a){return"pending"===a?"待核销":"verified"===a?"已核销":"cancelled"===a?"已取消":a||"-"}async function F(){const a=/^1\d{10}$/.test(T.value);if(a||D()){U.value=!0;try{V.value=await j(a?T.value:void 0)}catch(e){u({title:(null==e?void 0:e.message)||"加载失败",icon:"none"})}finally{U.value=!1}}else u({title:"请输入手机号,或先通过微信登录",icon:"none"})}return s(()=>{D()&&F()}),(a,e)=>{const l=o,s=f,n=_;return d(),t(l,{class:"page"},{default:i(()=>[r(l,{class:"card"},{default:i(()=>[r(l,{class:"title"},{default:i(()=>[v("我的活动预约")]),_:1}),r(l,{class:"sub"},{default:i(()=>[v("微信登录后自动展示绑定订单;也可输入预约手机号查询。")]),_:1}),r(l,{class:"row"},{default:i(()=>[r(s,{modelValue:T.value,"onUpdate:modelValue":e[0]||(e[0]=a=>T.value=a),class:"ipt",type:"number",maxlength:"11",placeholder:"预约手机号(可选,与登录二选一)"},null,8,["modelValue"]),r(n,{class:"btn",onClick:F},{default:i(()=>[v(p(U.value?"查询中":"查询"),1)]),_:1})]),_:1}),r(l,{class:"filters"},{default:i(()=>[r(l,{class:m(["chip",{active:"all"===z.value}]),onClick:e[1]||(e[1]=a=>z.value="all")},{default:i(()=>[v("全部")]),_:1},8,["class"]),r(l,{class:m(["chip",{active:"pending"===z.value}]),onClick:e[2]||(e[2]=a=>z.value="pending")},{default:i(()=>[v("待核销")]),_:1},8,["class"]),r(l,{class:m(["chip",{active:"verified"===z.value}]),onClick:e[3]||(e[3]=a=>z.value="verified")},{default:i(()=>[v("已核销")]),_:1},8,["class"]),r(l,{class:m(["chip",{active:"cancelled"===z.value}]),onClick:e[4]||(e[4]=a=>z.value="cancelled")},{default:i(()=>[v("已取消")]),_:1},8,["class"])]),_:1})]),_:1}),(d(!0),g(k,null,h(B.value,a=>(d(),t(l,{key:a.id,class:"order-card"},{default:i(()=>[r(l,{class:"order-top"},{default:i(()=>{return[r(l,{class:"t"},{default:i(()=>{var e;return[v(p((null==(e=a.activity)?void 0:e.title)||"-"),1)]}),_:2},1024),r(l,{class:m(["status",(e=a.status,"pending"===e?"pending":"verified"===e?"verified":"cancelled")])},{default:i(()=>[v(p(E(a.status)),1)]),_:2},1032,["class"])];var e}),_:2},1024),r(l,{class:"line"},{default:i(()=>{var e;return[v("订单信息:"+p(y(x)(null==(e=a.activity_day)?void 0:e.activity_date))+" "+p(a.ticket_count||1)+"人",1)]}),_:2},1024),r(l,{class:"line"},{default:i(()=>[v("联系人:"+p(a.visitor_name||"-")+" "+p(a.visitor_phone||"-"),1)]),_:2},1024),r(l,{class:"line"},{default:i(()=>[v("下单时间:"+p(y(I)(a.created_at)),1)]),_:2},1024),r(l,{class:"actions"},{default:i(()=>[r(n,{class:"btn-light mini",disabled:"pending"!==a.status,onClick:C(e=>async function(a){const e=/^1\d{10}$/.test(T.value);if(!e&&!D())return;if((await $({title:"确认取消预约",content:"取消后将释放该日期名额,是否继续?",confirmText:"确认取消",confirmColor:"#ff7d00"})).confirm)try{await w(a,e?T.value:void 0),u({title:"取消成功",icon:"success"}),await F()}catch(l){u({title:(null==l?void 0:l.message)||"取消失败",icon:"none"})}}(a.id),["stop"])},{default:i(()=>[v("取消")]),_:2},1032,["disabled","onClick"]),r(n,{class:"btn-main mini",onClick:C(e=>function(a){const e=/^1\d{10}$/.test(T.value);if(!e&&!D())return void u({title:"请输入手机号或先登录",icon:"none"});const l=e?`&phone=${encodeURIComponent(T.value)}`:"";b({url:`/pages/mine/reservation-detail?id=${a}${l}`})}(a.id),["stop"])},{default:i(()=>[v("查看详情")]),_:2},1032,["onClick"])]),_:2},1024)]),_:2},1024))),128))]),_:1})}}}),[["__scopeId","data-v-d22418a2"]]);export{V as default};
import{d as a,e,f as l,o as s,j as t,k as i,g as n,S as c,s as u,v as o,t as d,u as r,y as v,I as f,T as _,z as p,E as m,B as g,F as k,C as h,J as y,D as C,L as b,m as $}from"./index-Eh15aD7L.js";import{d as j,e as w}from"./content.CjHSnJMf.js";import{f as x,a as I}from"./datetime.DReAHQ1x.js";import{_ as T}from"./_plugin-vue_export-helper.BCo6x5W8.js";const V=T(a({__name:"orders",setup(a){const T=e(""),V=e([]),U=e(!1),z=e("all"),B=l(()=>"all"===z.value?V.value:V.value.filter(a=>a.status===z.value));function D(){return!!n(c.accessToken)}function E(a){return"pending"===a?"待核销":"verified"===a?"已核销":"cancelled"===a?"已取消":a||"-"}async function F(){const a=/^1\d{10}$/.test(T.value);if(a||D()){U.value=!0;try{V.value=await j(a?T.value:void 0)}catch(e){u({title:(null==e?void 0:e.message)||"加载失败",icon:"none"})}finally{U.value=!1}}else u({title:"请输入手机号,或先通过微信登录",icon:"none"})}return s(()=>{D()&&F()}),(a,e)=>{const l=o,s=f,n=_;return d(),t(l,{class:"page"},{default:i(()=>[r(l,{class:"card"},{default:i(()=>[r(l,{class:"title"},{default:i(()=>[v("我的活动预约")]),_:1}),r(l,{class:"sub"},{default:i(()=>[v("微信登录后自动展示绑定订单;也可输入预约手机号查询。")]),_:1}),r(l,{class:"row"},{default:i(()=>[r(s,{modelValue:T.value,"onUpdate:modelValue":e[0]||(e[0]=a=>T.value=a),class:"ipt",type:"number",maxlength:"11",placeholder:"预约手机号(可选,与登录二选一)"},null,8,["modelValue"]),r(n,{class:"btn",onClick:F},{default:i(()=>[v(p(U.value?"查询中":"查询"),1)]),_:1})]),_:1}),r(l,{class:"filters"},{default:i(()=>[r(l,{class:m(["chip",{active:"all"===z.value}]),onClick:e[1]||(e[1]=a=>z.value="all")},{default:i(()=>[v("全部")]),_:1},8,["class"]),r(l,{class:m(["chip",{active:"pending"===z.value}]),onClick:e[2]||(e[2]=a=>z.value="pending")},{default:i(()=>[v("待核销")]),_:1},8,["class"]),r(l,{class:m(["chip",{active:"verified"===z.value}]),onClick:e[3]||(e[3]=a=>z.value="verified")},{default:i(()=>[v("已核销")]),_:1},8,["class"]),r(l,{class:m(["chip",{active:"cancelled"===z.value}]),onClick:e[4]||(e[4]=a=>z.value="cancelled")},{default:i(()=>[v("已取消")]),_:1},8,["class"])]),_:1})]),_:1}),(d(!0),g(k,null,h(B.value,a=>(d(),t(l,{key:a.id,class:"order-card"},{default:i(()=>[r(l,{class:"order-top"},{default:i(()=>{return[r(l,{class:"t"},{default:i(()=>{var e;return[v(p((null==(e=a.activity)?void 0:e.title)||"-"),1)]}),_:2},1024),r(l,{class:m(["status",(e=a.status,"pending"===e?"pending":"verified"===e?"verified":"cancelled")])},{default:i(()=>[v(p(E(a.status)),1)]),_:2},1032,["class"])];var e}),_:2},1024),r(l,{class:"line"},{default:i(()=>{var e;return[v("订单信息:"+p(y(x)(null==(e=a.activity_day)?void 0:e.activity_date))+" "+p(a.ticket_count||1)+"人",1)]}),_:2},1024),r(l,{class:"line"},{default:i(()=>[v("联系人:"+p(a.visitor_name||"-")+" "+p(a.visitor_phone||"-"),1)]),_:2},1024),r(l,{class:"line"},{default:i(()=>[v("下单时间:"+p(y(I)(a.created_at)),1)]),_:2},1024),r(l,{class:"actions"},{default:i(()=>[r(n,{class:"btn-light mini",disabled:"pending"!==a.status,onClick:C(e=>async function(a){const e=/^1\d{10}$/.test(T.value);if(!e&&!D())return;if((await $({title:"确认取消预约",content:"取消后将释放该日期名额,是否继续?",confirmText:"确认取消",confirmColor:"#ff7d00"})).confirm)try{await w(a,e?T.value:void 0),u({title:"取消成功",icon:"success"}),await F()}catch(l){u({title:(null==l?void 0:l.message)||"取消失败",icon:"none"})}}(a.id),["stop"])},{default:i(()=>[v("取消")]),_:2},1032,["disabled","onClick"]),r(n,{class:"btn-main mini",onClick:C(e=>function(a){const e=/^1\d{10}$/.test(T.value);if(!e&&!D())return void u({title:"请输入手机号或先登录",icon:"none"});const l=e?`&phone=${encodeURIComponent(T.value)}`:"";b({url:`/pages/mine/reservation-detail?id=${a}${l}`})}(a.id),["stop"])},{default:i(()=>[v("查看详情")]),_:2},1032,["onClick"])]),_:2},1024)]),_:2},1024))),128))]),_:1})}}}),[["__scopeId","data-v-d22418a2"]]);export{V as default};

@ -1 +1 @@
import{d as a,e,o as l,j as s,k as t,g as u,S as r,v as n,t as c,y as o,u as d,H as i,z as v,x as _,I as p,T as m,s as f,U as h,a as y,V,c as b}from"./index-BIGEiPev.js";import{g,l as k,u as w,s as x}from"./localProfile.CWOnWJub.js";import{_ as j}from"./_plugin-vue_export-helper.BCo6x5W8.js";const T=j(a({__name:"profile",setup(a){const j=e(!0),T=e(!1),U=e(!1),z=e({real_name:"",phone:"",id_card:"",avatar_url:""});function C(a){z.value.real_name=a.real_name||"",z.value.phone=a.phone||"",z.value.id_card=a.id_card||"",z.value.avatar_url=a.avatar_url||""}function F(){U.value?h({count:1,sizeType:["compressed"],sourceType:["album","camera"],success:async a=>{const e=a.tempFilePaths[0];if(e)try{y({title:"上传中"});const{url:a}=await V(e);z.value.avatar_url=a}catch(l){f({title:(null==l?void 0:l.message)||"上传失败",icon:"none"})}finally{b()}}}):f({title:"请先通过微信登录后再上传头像",icon:"none"})}async function I(){if(z.value.real_name.trim())if(/^1\d{10}$/.test(z.value.phone.trim()))if(!z.value.id_card||/^\d{17}[\dXx]$/.test(z.value.id_card.trim())){T.value=!0;try{const a={real_name:z.value.real_name.trim(),phone:z.value.phone.trim(),id_card:z.value.id_card.trim()||void 0,avatar_url:z.value.avatar_url||void 0};U.value&&await w(a),x({real_name:a.real_name,phone:a.phone,id_card:a.id_card,avatar_url:a.avatar_url}),f({title:"保存成功",icon:"success"})}catch(a){f({title:(null==a?void 0:a.message)||"保存失败",icon:"none"})}finally{T.value=!1}}else f({title:"身份证号格式不正确",icon:"none"});else f({title:"请填写11位手机号",icon:"none"});else f({title:"请填写姓名",icon:"none"})}return l(()=>{!async function(){j.value=!0,U.value=!!u(r.accessToken);try{if(U.value)try{const a=await g();z.value.real_name=a.real_name||"",z.value.phone=a.phone||"",z.value.id_card=a.id_card||"",z.value.avatar_url=a.avatar_url||""}catch{const a=k();a&&C(a)}else{const a=k();a&&C(a)}}finally{j.value=!1}}()}),(a,e)=>{const l=n,u=i,r=_,f=p,h=m;return c(),s(l,{class:"page"},{default:t(()=>[j.value?(c(),s(l,{key:0,class:"loading"},{default:t(()=>[o("加载中…")]),_:1})):(c(),s(l,{key:1,class:"content"},{default:t(()=>[d(l,{class:"avatar-block"},{default:t(()=>[d(l,{class:"avatar-wrap",onClick:F},{default:t(()=>[z.value.avatar_url?(c(),s(u,{key:0,class:"avatar",src:z.value.avatar_url,mode:"aspectFill"},null,8,["src"])):(c(),s(l,{key:1,class:"avatar placeholder"})),d(l,{class:"avatar-tip"},{default:t(()=>[o(v(U.value?"点击更换头像":"登录后可上传头像"),1)]),_:1})]),_:1})]),_:1}),d(l,{class:"card"},{default:t(()=>[d(l,{class:"row"},{default:t(()=>[d(r,{class:"label"},{default:t(()=>[o("姓名")]),_:1}),d(f,{modelValue:z.value.real_name,"onUpdate:modelValue":e[0]||(e[0]=a=>z.value.real_name=a),class:"input",placeholder:"必填","placeholder-class":"ph"},null,8,["modelValue"])]),_:1}),d(l,{class:"row"},{default:t(()=>[d(r,{class:"label"},{default:t(()=>[o("手机号")]),_:1}),d(f,{modelValue:z.value.phone,"onUpdate:modelValue":e[1]||(e[1]=a=>z.value.phone=a),class:"input",type:"number",maxlength:"11",placeholder:"必填","placeholder-class":"ph"},null,8,["modelValue"])]),_:1}),d(l,{class:"row last"},{default:t(()=>[d(r,{class:"label"},{default:t(()=>[o("身份证")]),_:1}),d(f,{modelValue:z.value.id_card,"onUpdate:modelValue":e[2]||(e[2]=a=>z.value.id_card=a),class:"input",maxlength:"18",placeholder:"选填","placeholder-class":"ph"},null,8,["modelValue"])]),_:1})]),_:1}),d(h,{class:"btn",disabled:T.value,onClick:I},{default:t(()=>[o(v(T.value?"保存中…":"保存"),1)]),_:1},8,["disabled"])]),_:1}))]),_:1})}}}),[["__scopeId","data-v-569d5554"]]);export{T as default};
import{d as a,e,o as l,j as s,k as t,g as u,S as r,v as n,t as c,y as o,u as d,H as i,z as v,x as _,I as p,T as m,s as f,U as h,a as y,V,c as b}from"./index-Eh15aD7L.js";import{g,l as k,u as w,s as x}from"./localProfile.B1_MnO3g.js";import{_ as j}from"./_plugin-vue_export-helper.BCo6x5W8.js";const T=j(a({__name:"profile",setup(a){const j=e(!0),T=e(!1),U=e(!1),z=e({real_name:"",phone:"",id_card:"",avatar_url:""});function C(a){z.value.real_name=a.real_name||"",z.value.phone=a.phone||"",z.value.id_card=a.id_card||"",z.value.avatar_url=a.avatar_url||""}function F(){U.value?h({count:1,sizeType:["compressed"],sourceType:["album","camera"],success:async a=>{const e=a.tempFilePaths[0];if(e)try{y({title:"上传中"});const{url:a}=await V(e);z.value.avatar_url=a}catch(l){f({title:(null==l?void 0:l.message)||"上传失败",icon:"none"})}finally{b()}}}):f({title:"请先通过微信登录后再上传头像",icon:"none"})}async function I(){if(z.value.real_name.trim())if(/^1\d{10}$/.test(z.value.phone.trim()))if(!z.value.id_card||/^\d{17}[\dXx]$/.test(z.value.id_card.trim())){T.value=!0;try{const a={real_name:z.value.real_name.trim(),phone:z.value.phone.trim(),id_card:z.value.id_card.trim()||void 0,avatar_url:z.value.avatar_url||void 0};U.value&&await w(a),x({real_name:a.real_name,phone:a.phone,id_card:a.id_card,avatar_url:a.avatar_url}),f({title:"保存成功",icon:"success"})}catch(a){f({title:(null==a?void 0:a.message)||"保存失败",icon:"none"})}finally{T.value=!1}}else f({title:"身份证号格式不正确",icon:"none"});else f({title:"请填写11位手机号",icon:"none"});else f({title:"请填写姓名",icon:"none"})}return l(()=>{!async function(){j.value=!0,U.value=!!u(r.accessToken);try{if(U.value)try{const a=await g();z.value.real_name=a.real_name||"",z.value.phone=a.phone||"",z.value.id_card=a.id_card||"",z.value.avatar_url=a.avatar_url||""}catch{const a=k();a&&C(a)}else{const a=k();a&&C(a)}}finally{j.value=!1}}()}),(a,e)=>{const l=n,u=i,r=_,f=p,h=m;return c(),s(l,{class:"page"},{default:t(()=>[j.value?(c(),s(l,{key:0,class:"loading"},{default:t(()=>[o("加载中…")]),_:1})):(c(),s(l,{key:1,class:"content"},{default:t(()=>[d(l,{class:"avatar-block"},{default:t(()=>[d(l,{class:"avatar-wrap",onClick:F},{default:t(()=>[z.value.avatar_url?(c(),s(u,{key:0,class:"avatar",src:z.value.avatar_url,mode:"aspectFill"},null,8,["src"])):(c(),s(l,{key:1,class:"avatar placeholder"})),d(l,{class:"avatar-tip"},{default:t(()=>[o(v(U.value?"点击更换头像":"登录后可上传头像"),1)]),_:1})]),_:1})]),_:1}),d(l,{class:"card"},{default:t(()=>[d(l,{class:"row"},{default:t(()=>[d(r,{class:"label"},{default:t(()=>[o("姓名")]),_:1}),d(f,{modelValue:z.value.real_name,"onUpdate:modelValue":e[0]||(e[0]=a=>z.value.real_name=a),class:"input",placeholder:"必填","placeholder-class":"ph"},null,8,["modelValue"])]),_:1}),d(l,{class:"row"},{default:t(()=>[d(r,{class:"label"},{default:t(()=>[o("手机号")]),_:1}),d(f,{modelValue:z.value.phone,"onUpdate:modelValue":e[1]||(e[1]=a=>z.value.phone=a),class:"input",type:"number",maxlength:"11",placeholder:"必填","placeholder-class":"ph"},null,8,["modelValue"])]),_:1}),d(l,{class:"row last"},{default:t(()=>[d(r,{class:"label"},{default:t(()=>[o("身份证")]),_:1}),d(f,{modelValue:z.value.id_card,"onUpdate:modelValue":e[2]||(e[2]=a=>z.value.id_card=a),class:"input",maxlength:"18",placeholder:"选填","placeholder-class":"ph"},null,8,["modelValue"])]),_:1})]),_:1}),d(h,{class:"btn",disabled:T.value,onClick:I},{default:t(()=>[o(v(T.value?"保存中…":"保存"),1)]),_:1},8,["disabled"])]),_:1}))]),_:1})}}}),[["__scopeId","data-v-569d5554"]]);export{T as default};

@ -1 +1 @@
import{d as a,j as s,k as e,v as r,t as n,u as l,B as t,F as c,C as o,y as u,z as d}from"./index-BIGEiPev.js";import{_}from"./_plugin-vue_export-helper.BCo6x5W8.js";const f=_(a({__name:"index",setup(a){const _=[{rank:1,name:"苏州青少年科技馆",score:4912},{rank:2,name:"苏州科普体验中心",score:4911},{rank:3,name:"苏州未来科幻馆",score:4860},{rank:4,name:"苏州自然资源馆",score:4720},{rank:5,name:"苏州农业科普园",score:4618}];return(a,f)=>{const m=r;return n(),s(m,{class:"page"},{default:e(()=>[l(m,{class:"list"},{default:e(()=>[(n(),t(c,null,o(_,a=>l(m,{key:a.rank,class:"row"},{default:e(()=>[l(m,{class:"left"},{default:e(()=>[l(m,{class:"rank"},{default:e(()=>[u("TOP"+d(a.rank),1)]),_:2},1024),l(m,{class:"name"},{default:e(()=>[u(d(a.name),1)]),_:2},1024)]),_:2},1024),l(m,{class:"score"},{default:e(()=>[u(d(a.score),1)]),_:2},1024)]),_:2},1024)),64))]),_:1})]),_:1})}}}),[["__scopeId","data-v-8df1afeb"]]);export{f as default};
import{d as a,j as s,k as e,v as r,t as n,u as l,B as t,F as c,C as o,y as u,z as d}from"./index-Eh15aD7L.js";import{_}from"./_plugin-vue_export-helper.BCo6x5W8.js";const f=_(a({__name:"index",setup(a){const _=[{rank:1,name:"苏州青少年科技馆",score:4912},{rank:2,name:"苏州科普体验中心",score:4911},{rank:3,name:"苏州未来科幻馆",score:4860},{rank:4,name:"苏州自然资源馆",score:4720},{rank:5,name:"苏州农业科普园",score:4618}];return(a,f)=>{const m=r;return n(),s(m,{class:"page"},{default:e(()=>[l(m,{class:"list"},{default:e(()=>[(n(),t(c,null,o(_,a=>l(m,{key:a.rank,class:"row"},{default:e(()=>[l(m,{class:"left"},{default:e(()=>[l(m,{class:"rank"},{default:e(()=>[u("TOP"+d(a.rank),1)]),_:2},1024),l(m,{class:"name"},{default:e(()=>[u(d(a.name),1)]),_:2},1024)]),_:2},1024),l(m,{class:"score"},{default:e(()=>[u(d(a.score),1)]),_:2},1024)]),_:2},1024)),64))]),_:1})]),_:1})}}}),[["__scopeId","data-v-8df1afeb"]]);export{f as default};

@ -1 +1 @@
import{d as a,e,f as l,o as t,a0 as s,w as u,j as d,k as v,a7 as c,v as n,t as r,u as i,x as o,y as f,E as h,z as _,a8 as x,a6 as y,B as m,F as p,C as g}from"./index-BIGEiPev.js";import{_ as k}from"./_plugin-vue_export-helper.BCo6x5W8.js";const S="trafficLineChart",w=k(a({__name:"index",setup(a){const k=e("week"),w={week:[{date:"04-03",value:12358},{date:"04-04",value:15540},{date:"04-05",value:14200},{date:"04-06",value:18680},{date:"04-07",value:14820},{date:"04-08",value:20550},{date:"04-09",value:32100}],month:[{date:"04-01",value:12800},{date:"04-05",value:18800},{date:"04-10",value:17600},{date:"04-15",value:22900},{date:"04-20",value:19600},{date:"04-25",value:26400},{date:"04-30",value:30100}],year:[{date:"01月",value:268e3},{date:"03月",value:292e3},{date:"05月",value:318e3},{date:"07月",value:346e3},{date:"09月",value:332e3},{date:"11月",value:368e3},{date:"12月",value:392e3}]},b=l(()=>w[k.value]),C=l(()=>{var a,e;return`${(null==(a=b.value[0])?void 0:a.date)||"-"} 至 ${(null==(e=b.value[b.value.length-1])?void 0:e.date)||"-"}`}),T=l(()=>b.value.reduce((a,e)=>e.value>a.value?e:a,b.value[0]));function F(){const a=b.value;if(!a.length)return;const e=c(S),l=24,t=18,s=24,u=18,d=260,v=Math.min(...a.map(a=>a.value)),n=Math.max(...a.map(a=>a.value)),r=Math.max(1,n-v),i=680-u-t,o=d-l-s;e.clearRect(0,0,680,d);const f=e.createLinearGradient(0,l,0,d);f.addColorStop(0,"rgba(5,201,172,0.35)"),f.addColorStop(1,"rgba(5,201,172,0.02)");const h=a.map((e,t)=>({x:u+i*t/Math.max(1,a.length-1),y:l+(n-e.value)/r*o,value:e.value,date:e.date}));e.beginPath(),h.forEach((a,l)=>0===l?e.moveTo(a.x,a.y):e.lineTo(a.x,a.y)),e.lineTo(h[h.length-1].x,252),e.lineTo(h[0].x,252),e.closePath(),e.setFillStyle(f),e.fill(),e.beginPath(),h.forEach((a,l)=>0===l?e.moveTo(a.x,a.y):e.lineTo(a.x,a.y)),e.setStrokeStyle("#05c9ac"),e.setLineWidth(5),e.stroke(),e.setFillStyle("#ff7d00"),h.forEach(a=>{e.beginPath(),e.arc(a.x,a.y,6,0,2*Math.PI),e.fill(),e.setFillStyle("#4e5969"),e.setFontSize(20),e.fillText(a.value.toLocaleString(),a.x-34,a.y-12),e.setFillStyle("#ff7d00")}),e.draw()}return t(async()=>{await s(),F()}),u(k,async()=>{await s(),F()}),(a,e)=>{const l=n,t=o,s=x;return r(),d(l,{class:"page"},{default:v(()=>[i(l,{class:"section-title"},{default:v(()=>[i(l,{class:"bar"}),i(t,{class:"title"},{default:v(()=>[f("全市参观人数")]),_:1}),i(l,{class:"period"},{default:v(()=>[i(t,{class:h({active:"week"===k.value}),onClick:e[0]||(e[0]=a=>k.value="week")},{default:v(()=>[f("周")]),_:1},8,["class"]),i(t,{class:h({active:"month"===k.value}),onClick:e[1]||(e[1]=a=>k.value="month")},{default:v(()=>[f("月")]),_:1},8,["class"]),i(t,{class:h({active:"year"===k.value}),onClick:e[2]||(e[2]=a=>k.value="year")},{default:v(()=>[f("年")]),_:1},8,["class"])]),_:1})]),_:1}),i(l,{class:"date-range"},{default:v(()=>[f(_(C.value),1)]),_:1}),i(l,{class:"chart-card"},{default:v(()=>[i(s,{"canvas-id":S,id:S,class:"chart-canvas",style:y("width:680rpx;height:260rpx;")},null,8,["style"]),i(l,{class:"x-axis"},{default:v(()=>[(r(!0),m(p,null,g(b.value,a=>(r(),d(t,{key:a.date},{default:v(()=>[f(_(a.date),1)]),_:2},1024))),128))]),_:1})]),_:1}),i(l,{class:"list-card"},{default:v(()=>[i(l,{class:"list-title"},{default:v(()=>[f("参观人数列表")]),_:1}),(r(!0),m(p,null,g(b.value,a=>(r(),d(l,{key:a.date,class:"row"},{default:v(()=>{var e;return[i(t,{class:"d"},{default:v(()=>[f(_(a.date),1)]),_:2},1024),i(t,{class:h(["c",{hot:a.date===(null==(e=T.value)?void 0:e.date)}])},{default:v(()=>{return[f(_((e=a.value,`${e.toLocaleString()}`)),1)];var e}),_:2},1032,["class"])]}),_:2},1024))),128))]),_:1})]),_:1})}}}),[["__scopeId","data-v-bc58d322"]]);export{w as default};
import{d as a,e,f as l,o as t,a0 as s,w as u,j as d,k as v,a7 as c,v as n,t as r,u as i,x as o,y as f,E as h,z as _,a8 as x,a6 as y,B as m,F as p,C as g}from"./index-Eh15aD7L.js";import{_ as k}from"./_plugin-vue_export-helper.BCo6x5W8.js";const S="trafficLineChart",w=k(a({__name:"index",setup(a){const k=e("week"),w={week:[{date:"04-03",value:12358},{date:"04-04",value:15540},{date:"04-05",value:14200},{date:"04-06",value:18680},{date:"04-07",value:14820},{date:"04-08",value:20550},{date:"04-09",value:32100}],month:[{date:"04-01",value:12800},{date:"04-05",value:18800},{date:"04-10",value:17600},{date:"04-15",value:22900},{date:"04-20",value:19600},{date:"04-25",value:26400},{date:"04-30",value:30100}],year:[{date:"01月",value:268e3},{date:"03月",value:292e3},{date:"05月",value:318e3},{date:"07月",value:346e3},{date:"09月",value:332e3},{date:"11月",value:368e3},{date:"12月",value:392e3}]},b=l(()=>w[k.value]),C=l(()=>{var a,e;return`${(null==(a=b.value[0])?void 0:a.date)||"-"} 至 ${(null==(e=b.value[b.value.length-1])?void 0:e.date)||"-"}`}),T=l(()=>b.value.reduce((a,e)=>e.value>a.value?e:a,b.value[0]));function F(){const a=b.value;if(!a.length)return;const e=c(S),l=24,t=18,s=24,u=18,d=260,v=Math.min(...a.map(a=>a.value)),n=Math.max(...a.map(a=>a.value)),r=Math.max(1,n-v),i=680-u-t,o=d-l-s;e.clearRect(0,0,680,d);const f=e.createLinearGradient(0,l,0,d);f.addColorStop(0,"rgba(5,201,172,0.35)"),f.addColorStop(1,"rgba(5,201,172,0.02)");const h=a.map((e,t)=>({x:u+i*t/Math.max(1,a.length-1),y:l+(n-e.value)/r*o,value:e.value,date:e.date}));e.beginPath(),h.forEach((a,l)=>0===l?e.moveTo(a.x,a.y):e.lineTo(a.x,a.y)),e.lineTo(h[h.length-1].x,252),e.lineTo(h[0].x,252),e.closePath(),e.setFillStyle(f),e.fill(),e.beginPath(),h.forEach((a,l)=>0===l?e.moveTo(a.x,a.y):e.lineTo(a.x,a.y)),e.setStrokeStyle("#05c9ac"),e.setLineWidth(5),e.stroke(),e.setFillStyle("#ff7d00"),h.forEach(a=>{e.beginPath(),e.arc(a.x,a.y,6,0,2*Math.PI),e.fill(),e.setFillStyle("#4e5969"),e.setFontSize(20),e.fillText(a.value.toLocaleString(),a.x-34,a.y-12),e.setFillStyle("#ff7d00")}),e.draw()}return t(async()=>{await s(),F()}),u(k,async()=>{await s(),F()}),(a,e)=>{const l=n,t=o,s=x;return r(),d(l,{class:"page"},{default:v(()=>[i(l,{class:"section-title"},{default:v(()=>[i(l,{class:"bar"}),i(t,{class:"title"},{default:v(()=>[f("全市参观人数")]),_:1}),i(l,{class:"period"},{default:v(()=>[i(t,{class:h({active:"week"===k.value}),onClick:e[0]||(e[0]=a=>k.value="week")},{default:v(()=>[f("周")]),_:1},8,["class"]),i(t,{class:h({active:"month"===k.value}),onClick:e[1]||(e[1]=a=>k.value="month")},{default:v(()=>[f("月")]),_:1},8,["class"]),i(t,{class:h({active:"year"===k.value}),onClick:e[2]||(e[2]=a=>k.value="year")},{default:v(()=>[f("年")]),_:1},8,["class"])]),_:1})]),_:1}),i(l,{class:"date-range"},{default:v(()=>[f(_(C.value),1)]),_:1}),i(l,{class:"chart-card"},{default:v(()=>[i(s,{"canvas-id":S,id:S,class:"chart-canvas",style:y("width:680rpx;height:260rpx;")},null,8,["style"]),i(l,{class:"x-axis"},{default:v(()=>[(r(!0),m(p,null,g(b.value,a=>(r(),d(t,{key:a.date},{default:v(()=>[f(_(a.date),1)]),_:2},1024))),128))]),_:1})]),_:1}),i(l,{class:"list-card"},{default:v(()=>[i(l,{class:"list-title"},{default:v(()=>[f("参观人数列表")]),_:1}),(r(!0),m(p,null,g(b.value,a=>(r(),d(l,{key:a.date,class:"row"},{default:v(()=>{var e;return[i(t,{class:"d"},{default:v(()=>[f(_(a.date),1)]),_:2},1024),i(t,{class:h(["c",{hot:a.date===(null==(e=T.value)?void 0:e.date)}])},{default:v(()=>{return[f(_((e=a.value,`${e.toLocaleString()}`)),1)];var e}),_:2},1032,["class"])]}),_:2},1024))),128))]),_:1})]),_:1})}}}),[["__scopeId","data-v-bc58d322"]]);export{w as default};

@ -6,7 +6,7 @@
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>苏州科普</title>
<script type="module" crossorigin src="/h5/assets/index-BIGEiPev.js"></script>
<script type="module" crossorigin src="/h5/assets/index-Eh15aD7L.js"></script>
<link rel="stylesheet" crossorigin href="/h5/assets/index-BeIsAeG8.css">
</head>
<body>

@ -40,6 +40,7 @@ use App\Http\Controllers\Api\H5UploadController;
Route::post('/auth/login', [AuthController::class, 'login']);
Route::get('/h5/home', [H5HomeController::class, 'index']);
Route::post('/h5/wechat/oauth', [H5WechatController::class, 'oauth']);
Route::get('/wechat/jssdk-signature', [H5WechatController::class, 'jssdkSignature']);
Route::middleware('auth:sanctum')->group(function () {
Route::get('/h5/me/profile', [H5ProfileController::class, 'show']);

Loading…
Cancel
Save