master
lion 5 days ago
parent 9647b023bf
commit dd99201628

@ -26,7 +26,7 @@ class H5ReservationController extends Controller
private const BOOKING_MODE_BOTH = 'both';
public function bookingInfo(int $activityId): JsonResponse
public function bookingInfo(Request $request, int $activityId): JsonResponse
{
$activity = Activity::query()
->with(['venue:id,name,address,appointment_type', 'activityDays'])
@ -45,10 +45,29 @@ class H5ReservationController extends Controller
$maxPeople = max($minPeople, (int) ($activity->max_people_per_order ?? $minPeople));
}
$wechatUser = $this->authWechatUser($request);
$myReservedDayIds = [];
if ($wechatUser) {
$myReservedDayIds = Reservation::query()
->where('activity_id', $activity->id)
->where('status', '!=', 'cancelled')
->where(function ($sub) use ($wechatUser) {
$sub->where('wechat_user_id', $wechatUser->id);
$p = trim((string) ($wechatUser->phone ?? ''));
if ($p !== '' && preg_match('/^1\d{10}$/', $p)) {
$sub->orWhere('visitor_phone', $p);
}
})
->pluck('activity_day_id')
->map(fn ($id) => (int) $id)
->all();
}
$mySet = array_fill_keys($myReservedDayIds, true);
$days = $activity->activityDays
->sortBy('activity_date')
->values()
->map(function (ActivityDay $d) {
->map(function (ActivityDay $d) use ($mySet) {
$available = max(0, (int) $d->day_quota - (int) $d->booked_count);
$closesAt = $d->closes_at ?: $d->opens_at->copy()->endOfDay();
$now = now();
@ -62,6 +81,11 @@ class H5ReservationController extends Controller
} elseif ($closesAt->lt($now)) {
$unavailableReason = 'closed';
}
$already = isset($mySet[$d->id]);
if ($already) {
$isBookable = false;
$unavailableReason = 'already_reserved';
}
return [
'id' => $d->id,
'activity_date' => $d->activity_date->format('Y-m-d'),
@ -73,6 +97,7 @@ class H5ReservationController extends Controller
'is_open' => $isOpenWindow,
'is_bookable' => $isBookable,
'unavailable_reason' => $unavailableReason,
'already_reserved' => $already,
];
});
@ -185,7 +210,7 @@ class H5ReservationController extends Controller
->exists();
if ($dup) {
throw ValidationException::withMessages([
'activity_day_id' => ['您在该活动该日期已有未取消的预约,请先取消原预约后再预约'],
'activity_day_id' => ['您已预约过该日期,无需重复预约'],
]);
}

@ -1 +1 @@
import{h as t}from"./index-CN5ORKLy.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(n={}){return t.get("/h5/study-tours",n,{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-BQvUePVO.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(n={}){return t.get("/h5/study-tours",n,{withAuth:!1})}function o(n){return t.get(`/h5/activities/${n}/booking-info`,{},{withAuth:!0})}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

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
b[data-v-c2b352e6],strong[data-v-c2b352e6]{font-weight:400}uni-page-body[data-v-c2b352e6]{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Helvetica Neue,sans-serif;background:#f7f8fa;color:#252525;font-weight:400;--brand-color: #05c9ac;--fs-tag: .625rem;--fs-body: .75rem;--fs-subtitle: .875rem;--fs-title: 1rem;--color-text: #252525;--color-text-sub: #8c8c8c}body[data-v-c2b352e6]{background:#f7f8fa}.font-s[data-v-c2b352e6]{font-size:var(--fs-body)}.font-m[data-v-c2b352e6]{font-size:var(--fs-subtitle)}.font-l[data-v-c2b352e6]{font-size:var(--fs-title)}uni-button[data-v-c2b352e6],.uni-button[data-v-c2b352e6]{font-weight:400}.page[data-v-c2b352e6]{height:100vh;background:#f3f5f7;box-sizing:border-box;padding-top:constant(safe-area-inset-top);padding-top:env(safe-area-inset-top);display:flex;flex-direction:column}.scroll[data-v-c2b352e6]{flex:1;height:0;min-height:0}.map[data-v-c2b352e6]{width:100%;height:21.25rem;display:block}.main-card[data-v-c2b352e6]{margin:-.875rem 0 0;padding:.75rem .75rem .625rem;width:100%;box-sizing:border-box;background:#fff;border-radius:.75rem .75rem 0 0;position:relative;z-index:2;box-shadow:0 -.125rem .75rem rgba(0,0,0,.04)}.tour-title[data-v-c2b352e6]{display:block;font-size:1rem;font-weight:400;color:#252525;line-height:1.35}.act-tags[data-v-c2b352e6]{display:flex;flex-direction:row;flex-wrap:nowrap;gap:.25rem;margin-top:.4375rem;height:1.25rem;overflow:hidden;align-items:center}.act-tag-chip[data-v-c2b352e6]{font-size:.625rem;color:#05c9ac;line-height:.875rem;padding:.125rem .3125rem;background:rgba(5,201,172,.12);border-radius:.1875rem;flex-shrink:0;max-width:5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.venue-row[data-v-c2b352e6]{position:relative;margin-top:.5625rem;padding:.375rem 3.125rem .4375rem 1.375rem;border-bottom:.03125rem dashed #e9edf2}.venue-row[data-v-c2b352e6]:last-child{border-bottom:none}.idx[data-v-c2b352e6]{position:absolute;left:0;top:.4375rem;width:1rem;height:1rem;line-height:1rem;border-radius:.5rem;text-align:center;font-size:.625rem;color:#fff}.venue-mid[data-v-c2b352e6]{min-width:0}.name[data-v-c2b352e6]{font-size:.8125rem;color:#1d2129;font-weight:400;line-height:1.5}.addr[data-v-c2b352e6]{margin-top:.1875rem;font-size:.8125rem;color:#4e5969;line-height:1.5}.go[data-v-c2b352e6]{position:absolute;right:0;top:.4375rem;font-size:.8125rem;color:#05c9ac;font-weight:400}.intro-card[data-v-c2b352e6]{margin:.5rem 0 0;padding:.625rem .75rem;background:#fff;border-radius:0}.sec-title-row[data-v-c2b352e6]{display:flex;flex-direction:row;justify-content:space-between;align-items:center;margin-bottom:.375rem;box-sizing:border-box}.sec-title[data-v-c2b352e6]{font-size:.875rem;font-weight:400;color:#252525}.expand-arrow-tap[data-v-c2b352e6]{flex-shrink:0;padding:.25rem;display:flex;align-items:center;justify-content:center}.expand-arrow-img[data-v-c2b352e6]{width:1.625rem;height:1.625rem;display:block}.intro-rich-wrap[data-v-c2b352e6]{width:100%;box-sizing:border-box;position:relative}.intro-rich-wrap.is-collapsed[data-v-c2b352e6]{max-height:5.84375rem;overflow:hidden}.intro-rich-wrap.is-collapsed[data-v-c2b352e6]:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1.75rem;background:linear-gradient(180deg,rgba(255,255,255,0),#fff)}.intro-rich[data-v-c2b352e6]{display:block;width:100%;font-size:.8125rem;color:#2c2c2c;line-height:1.8;word-break:break-word}.intro-rich[data-v-c2b352e6] p,.intro-rich[data-v-c2b352e6] span,.intro-rich[data-v-c2b352e6] div,.intro-rich[data-v-c2b352e6] li,.intro-rich[data-v-c2b352e6] td,.intro-rich[data-v-c2b352e6] th{font-size:.8125rem!important;color:#2c2c2c!important;line-height:1.8!important}.intro-rich[data-v-c2b352e6] p{text-indent:2em}.safe-bottom[data-v-c2b352e6]{height:1.5rem}

@ -1 +0,0 @@
b[data-v-866085f1],strong[data-v-866085f1]{font-weight:400}uni-page-body[data-v-866085f1]{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Helvetica Neue,sans-serif;background:#f7f8fa;color:#252525;font-weight:400;--brand-color: #05c9ac;--fs-tag: .625rem;--fs-body: .75rem;--fs-subtitle: .875rem;--fs-title: 1rem;--color-text: #252525;--color-text-sub: #8c8c8c}body[data-v-866085f1]{background:#f7f8fa}.font-s[data-v-866085f1]{font-size:var(--fs-body)}.font-m[data-v-866085f1]{font-size:var(--fs-subtitle)}.font-l[data-v-866085f1]{font-size:var(--fs-title)}uni-button[data-v-866085f1],.uni-button[data-v-866085f1]{font-weight:400}.page[data-v-866085f1]{height:100vh;background:#f3f5f7;box-sizing:border-box;padding-top:constant(safe-area-inset-top);padding-top:env(safe-area-inset-top);display:flex;flex-direction:column}.scroll[data-v-866085f1]{flex:1;height:0;min-height:0}.map[data-v-866085f1]{width:100%;height:21.25rem;display:block}.main-card[data-v-866085f1]{margin:-.875rem 0 0;padding:.75rem .75rem .625rem;width:100%;box-sizing:border-box;background:#fff;border-radius:.75rem .75rem 0 0;position:relative;z-index:2;box-shadow:0 -.125rem .75rem rgba(0,0,0,.04)}.tour-title[data-v-866085f1]{display:block;font-size:1rem;font-weight:400;color:#252525;line-height:1.35}.act-tags[data-v-866085f1]{display:flex;flex-direction:row;flex-wrap:nowrap;gap:.25rem;margin-top:.4375rem;height:1.25rem;overflow:hidden;align-items:center}.act-tag-chip[data-v-866085f1]{font-size:.625rem;color:#05c9ac;line-height:.875rem;padding:.125rem .3125rem;background:rgba(5,201,172,.12);border-radius:.1875rem;flex-shrink:0;max-width:5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.venue-row[data-v-866085f1]{position:relative;margin-top:.5625rem;padding:.375rem 3.125rem .4375rem 1.375rem;border-bottom:.03125rem dashed #e9edf2}.venue-row[data-v-866085f1]:last-child{border-bottom:none}.idx[data-v-866085f1]{position:absolute;left:0;top:.4375rem;width:1rem;height:1rem;line-height:1rem;border-radius:.5rem;text-align:center;font-size:.625rem;color:#fff}.venue-mid[data-v-866085f1]{min-width:0}.name[data-v-866085f1]{font-size:.8125rem;color:#1d2129;font-weight:400;line-height:1.5}.addr[data-v-866085f1]{margin-top:.1875rem;font-size:.8125rem;color:#4e5969;line-height:1.5}.go[data-v-866085f1]{position:absolute;right:0;top:.4375rem;font-size:.8125rem;color:#05c9ac;font-weight:400}.intro-card[data-v-866085f1]{margin:.5rem 0 0;padding:.625rem .75rem;background:#fff;border-radius:0}.sec-title-row[data-v-866085f1]{display:flex;flex-direction:row;justify-content:space-between;align-items:center;margin-bottom:.375rem;box-sizing:border-box}.sec-title[data-v-866085f1]{font-size:.875rem;font-weight:400;color:#252525}.expand-arrow-tap[data-v-866085f1]{flex-shrink:0;padding:.25rem;display:flex;align-items:center;justify-content:center}.expand-arrow-img[data-v-866085f1]{width:1.625rem;height:1.625rem;display:block}.intro-rich-wrap[data-v-866085f1]{width:100%;box-sizing:border-box;position:relative}.intro-rich-wrap.is-collapsed[data-v-866085f1]{max-height:5.84375rem;overflow:hidden}.intro-rich-wrap.is-collapsed[data-v-866085f1]:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1.75rem;background:linear-gradient(180deg,rgba(255,255,255,0),#fff)}.intro-rich[data-v-866085f1]{display:block;width:100%;font-size:.8125rem;color:#2c2c2c;line-height:1.8;word-break:break-word}.intro-rich[data-v-866085f1] p,.intro-rich[data-v-866085f1] span,.intro-rich[data-v-866085f1] div,.intro-rich[data-v-866085f1] li,.intro-rich[data-v-866085f1] td,.intro-rich[data-v-866085f1] th{font-size:.8125rem!important;color:#2c2c2c!important;line-height:1.8!important}.safe-bottom[data-v-866085f1]{height:1.5rem}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1 +0,0 @@
$brand: #05c9ac; .page[data-v-55ae1859]{min-height:100vh;padding-top:calc(.75rem + env(safe-area-inset-top));padding-bottom:calc(.75rem + env(safe-area-inset-bottom));background:#f3f3f3;box-sizing:border-box}.toolbar[data-v-55ae1859]{padding:.5rem 1rem;box-sizing:border-box}.toolbar-row[data-v-55ae1859]{display:flex;flex-direction:row;align-items:center;gap:.375rem}.search-wrap[data-v-55ae1859]{flex:1;min-width:0;display:flex;flex-direction:row;align-items:center;background:#fff;border-radius:31.21875rem;padding:0 .625rem;height:2rem;box-sizing:border-box}.status-picker[data-v-55ae1859]{flex-shrink:0;width:6.25rem}.search-icon-img[data-v-55ae1859]{width:.875rem;height:.875rem;margin-right:.375rem;flex-shrink:0}.search-input[data-v-55ae1859]{flex:1;min-width:0;font-size:.8125rem;color:#1d2129;height:2rem;line-height:2rem}.ph[data-v-55ae1859]{color:#c0c4cc}.status-pick[data-v-55ae1859]{display:flex;flex-direction:row;align-items:center;justify-content:space-between;background:#fff;border-radius:31.21875rem;padding:0 .625rem;height:2rem;box-sizing:border-box}.status-pick-text[data-v-55ae1859]{font-size:.75rem;color:#1d2129;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-pick-arrow[data-v-55ae1859]{width:.6875rem;height:.6875rem;flex-shrink:0;margin-left:.25rem}.list-inner[data-v-55ae1859]{padding:0 1rem;box-sizing:border-box}.item[data-v-55ae1859]{background:#fff;border-radius:.375rem;overflow:hidden;margin-bottom:.4375rem}.poster-wrap[data-v-55ae1859]{position:relative;width:100%;aspect-ratio:2 / 1;overflow:hidden}.poster[data-v-55ae1859]{position:absolute;left:0;top:0;width:100%;height:100%;display:block}.status[data-v-55ae1859]{position:absolute;z-index:1;left:0;top:.5625rem;color:#fff;font-size:.75rem;border-radius:0 .75rem .75rem 0;padding:.25rem .5rem}.status.st-ongoing[data-v-55ae1859]{background:rgba(22,194,169,.92)}.status.st-not_started[data-v-55ae1859]{background:rgba(22,93,255,.92)}.status.st-ended[data-v-55ae1859]{background:rgba(134,144,156,.95)}.body[data-v-55ae1859]{padding:.5rem .5625rem .5625rem}.title[data-v-55ae1859]{font-size:.875rem;color:#1d2129;line-height:1.35}.act-tags[data-v-55ae1859]{display:flex;flex-direction:row;flex-wrap:nowrap;gap:.25rem;margin-top:.4375rem;height:1.25rem;overflow:hidden;align-items:center}.act-tag-chip[data-v-55ae1859]{font-size:.625rem;color:#05c9ac;line-height:.875rem;padding:.125rem .3125rem;background:rgba(5,201,172,.12);border-radius:.1875rem;flex-shrink:0;max-width:5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meta[data-v-55ae1859]{margin-top:.25rem;font-size:.75rem;color:#86909c;line-height:1.5}.venue-line[data-v-55ae1859]{color:#4e5969}.action-row[data-v-55ae1859]{margin-top:.3125rem;display:flex;flex-direction:row;align-items:center;justify-content:flex-end;gap:.5rem;min-height:1.625rem}.btn[data-v-55ae1859]{flex-shrink:0;background:#05c9ac;color:#fff;font-size:.75rem;border-radius:.3125rem;padding:.3125rem .8125rem}.hint[data-v-55ae1859]{text-align:center;font-size:.8125rem;color:#86909c;padding:.5rem 0}.hint.muted[data-v-55ae1859]{color:#c0c4cc}

File diff suppressed because one or more lines are too long

@ -1 +0,0 @@
b[data-v-9d02f903],strong[data-v-9d02f903]{font-weight:400}uni-page-body[data-v-9d02f903]{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Helvetica Neue,sans-serif;background:#f7f8fa;color:#252525;font-weight:400;--brand-color: #05c9ac;--fs-tag: .625rem;--fs-body: .75rem;--fs-subtitle: .875rem;--fs-title: 1rem;--color-text: #252525;--color-text-sub: #8c8c8c}body[data-v-9d02f903]{background:#f7f8fa}.font-s[data-v-9d02f903]{font-size:var(--fs-body)}.font-m[data-v-9d02f903]{font-size:var(--fs-subtitle)}.font-l[data-v-9d02f903]{font-size:var(--fs-title)}uni-button[data-v-9d02f903],.uni-button[data-v-9d02f903]{font-weight:400}.page[data-v-9d02f903]{min-height:100vh;padding-top:calc(.375rem + env(safe-area-inset-top));padding-bottom:calc(.75rem + env(safe-area-inset-bottom));background:#f7f8fa;box-sizing:border-box}.map-section[data-v-9d02f903]{margin:.5rem .5rem 0;background:#fff;border-radius:.5rem;padding:.625rem .5rem .5rem;box-shadow:0 .125rem .5rem rgba(0,0,0,.04)}.toolbar[data-v-9d02f903]{display:flex;align-items:center;gap:.3125rem;margin-bottom:.375rem}.search-wrap[data-v-9d02f903]{flex:1;min-width:0;height:1.75rem;background:#f7f8fa;border-radius:.875rem;display:flex;align-items:center;padding:0 .4375rem 0 .5rem;border:.03125rem solid #eceef2;box-sizing:border-box}.search-input[data-v-9d02f903]{flex:1;font-size:.6875rem;height:1.75rem;line-height:1.75rem}.ph[data-v-9d02f903]{color:#c9cdd4;font-size:.6875rem}.search-icon-img[data-v-9d02f903]{width:.875rem;height:.875rem;flex-shrink:0;margin-left:.25rem}.filters[data-v-9d02f903]{display:flex;flex-wrap:nowrap;gap:.1875rem;margin-bottom:.375rem;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:.125rem}.filters uni-picker[data-v-9d02f903]{flex:0 0 auto;display:block}.f-item[data-v-9d02f903]{flex:0 0 auto;min-width:4.125rem;height:1.75rem;padding:0 .1875rem 0 .25rem;display:flex;align-items:center;justify-content:space-between;gap:.125rem;background:#fff;border-radius:.375rem;border:.03125rem solid #e8eaed;box-shadow:0 .0625rem .3125rem rgba(15,23,42,.04);box-sizing:border-box}.f-item-text[data-v-9d02f903]{flex:1;min-width:0;font-size:.625rem;color:#4e5969;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.f-item-arrow[data-v-9d02f903]{width:.5rem;height:.5rem;flex-shrink:0}.list[data-v-9d02f903]{padding:.5rem 1rem 0;box-sizing:border-box}.item[data-v-9d02f903]{display:flex;gap:.5rem;align-items:flex-start;padding:.375rem 0}.img[data-v-9d02f903]{width:6.1875rem;height:3.875rem;border-radius:.375rem;background:#e9edf2;flex-shrink:0}.body[data-v-9d02f903]{flex:1;min-width:0}.name[data-v-9d02f903]{font-size:.875rem;font-weight:400;color:#252525;line-height:1.35}.meta-row[data-v-9d02f903]{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.25rem;align-items:center}.meta-pill[data-v-9d02f903]{font-size:.625rem;font-weight:400;line-height:.875rem;padding:.125rem .3125rem;border-radius:.1875rem;flex-shrink:0}.meta-pill--free[data-v-9d02f903]{color:#00b42a;background:rgba(0,180,42,.1)}.meta-pill--paid[data-v-9d02f903]{color:#f53f3f;background:rgba(245,63,63,.08)}.open-mode-tag[data-v-9d02f903]{font-size:.625rem;font-weight:400;line-height:.875rem;padding:.125rem .3125rem;border-radius:.1875rem;color:#0a826f;background:#e6f7f3}.empty-tip[data-v-9d02f903]{text-align:center;padding:1.5rem 0;font-size:.75rem;color:#86909c}

@ -0,0 +1 @@
$brand: #05c9ac; .page[data-v-510c66b7]{min-height:100vh;padding-top:calc(.75rem + env(safe-area-inset-top));padding-bottom:calc(.75rem + env(safe-area-inset-bottom));background:#f3f3f3;box-sizing:border-box}.toolbar[data-v-510c66b7]{padding:.5rem 1rem;box-sizing:border-box}.toolbar-row[data-v-510c66b7]{display:flex;flex-direction:row;align-items:center;gap:.375rem}.search-wrap[data-v-510c66b7]{flex:1;min-width:0;display:flex;flex-direction:row;align-items:center;background:#fff;border-radius:31.21875rem;padding:0 .625rem;height:2rem;box-sizing:border-box}.status-picker[data-v-510c66b7]{flex-shrink:0;width:6.25rem}.search-icon-img[data-v-510c66b7]{width:.875rem;height:.875rem;margin-right:.375rem;flex-shrink:0}.search-input[data-v-510c66b7]{flex:1;min-width:0;font-size:.8125rem;color:#1d2129;height:2rem;line-height:2rem}.ph[data-v-510c66b7]{color:#c0c4cc}.status-pick[data-v-510c66b7]{display:flex;flex-direction:row;align-items:center;justify-content:space-between;background:#fff;border-radius:31.21875rem;padding:0 .625rem;height:2rem;box-sizing:border-box}.status-pick-text[data-v-510c66b7]{font-size:.75rem;color:#1d2129;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-pick-arrow[data-v-510c66b7]{width:.6875rem;height:.6875rem;flex-shrink:0;margin-left:.25rem}.list-inner[data-v-510c66b7]{padding:0 1rem;box-sizing:border-box}.item[data-v-510c66b7]{background:#fff;border-radius:.375rem;overflow:hidden;margin-bottom:.4375rem}.poster-wrap[data-v-510c66b7]{position:relative;width:100%;aspect-ratio:2 / 1;overflow:hidden}.poster[data-v-510c66b7]{position:absolute;left:0;top:0;width:100%;height:100%;display:block}.status[data-v-510c66b7]{position:absolute;z-index:1;left:0;top:.5625rem;color:#fff;font-size:.75rem;border-radius:0 .75rem .75rem 0;padding:.25rem .5rem}.status.st-ongoing[data-v-510c66b7]{background:rgba(22,194,169,.92)}.status.st-not_started[data-v-510c66b7]{background:rgba(22,93,255,.92)}.status.st-ended[data-v-510c66b7]{background:rgba(134,144,156,.95)}.body[data-v-510c66b7]{padding:.5rem .5625rem .5625rem}.title[data-v-510c66b7]{font-size:.875rem;color:#1d2129;line-height:1.35}.act-tags[data-v-510c66b7]{display:flex;flex-direction:row;flex-wrap:nowrap;gap:.25rem;margin-top:.4375rem;height:1.25rem;overflow:hidden;align-items:center}.act-tag-chip[data-v-510c66b7]{font-size:.625rem;color:#05c9ac;line-height:.875rem;padding:.125rem .3125rem;background:rgba(5,201,172,.12);border-radius:.1875rem;flex-shrink:0;max-width:5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meta[data-v-510c66b7]{margin-top:.25rem;font-size:.75rem;color:#86909c;line-height:1.5}.venue-line[data-v-510c66b7]{color:#4e5969}.action-row[data-v-510c66b7]{margin-top:.3125rem;display:flex;flex-direction:row;align-items:center;justify-content:flex-end;gap:.5rem;min-height:1.625rem}.btn[data-v-510c66b7]{flex-shrink:0;background:#05c9ac;color:#fff;font-size:.75rem;border-radius:.3125rem;padding:.3125rem .8125rem}.hint[data-v-510c66b7]{text-align:center;font-size:.8125rem;color:#86909c;padding:.5rem 0}.hint.muted[data-v-510c66b7]{color:#c0c4cc}

@ -0,0 +1 @@
b[data-v-b1027b29],strong[data-v-b1027b29]{font-weight:400}uni-page-body[data-v-b1027b29]{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Helvetica Neue,sans-serif;background:#f7f8fa;color:#252525;font-weight:400;--brand-color: #05c9ac;--fs-tag: .625rem;--fs-body: .75rem;--fs-subtitle: .875rem;--fs-title: 1rem;--color-text: #252525;--color-text-sub: #8c8c8c}body[data-v-b1027b29]{background:#f7f8fa}.font-s[data-v-b1027b29]{font-size:var(--fs-body)}.font-m[data-v-b1027b29]{font-size:var(--fs-subtitle)}.font-l[data-v-b1027b29]{font-size:var(--fs-title)}uni-button[data-v-b1027b29],.uni-button[data-v-b1027b29]{font-weight:400}.page[data-v-b1027b29]{min-height:100vh;padding-top:calc(.375rem + env(safe-area-inset-top));padding-bottom:calc(.75rem + env(safe-area-inset-bottom));background:#f7f8fa;box-sizing:border-box}.map-section[data-v-b1027b29]{margin:.5rem .5rem 0;background:#fff;border-radius:.5rem;padding:.625rem .5rem .5rem;box-shadow:0 .125rem .5rem rgba(0,0,0,.04)}.toolbar[data-v-b1027b29]{display:flex;align-items:center;gap:.3125rem;margin-bottom:.375rem}.search-wrap[data-v-b1027b29]{flex:1;min-width:0;height:1.75rem;background:#f7f8fa;border-radius:.875rem;display:flex;align-items:center;padding:0 .4375rem 0 .5rem;border:.03125rem solid #eceef2;box-sizing:border-box}.search-input[data-v-b1027b29]{flex:1;font-size:.6875rem;height:1.75rem;line-height:1.75rem}.ph[data-v-b1027b29]{color:#c9cdd4;font-size:.6875rem}.search-icon-img[data-v-b1027b29]{width:.875rem;height:.875rem;flex-shrink:0;margin-left:.25rem}.filters[data-v-b1027b29]{display:flex;flex-wrap:nowrap;gap:.1875rem;margin-bottom:.375rem;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:.125rem}.filters uni-picker[data-v-b1027b29]{flex:0 0 auto;display:block}.f-item[data-v-b1027b29]{flex:0 0 auto;min-width:4.125rem;height:1.75rem;padding:0 .1875rem 0 .25rem;display:flex;align-items:center;justify-content:space-between;gap:.125rem;background:#fff;border-radius:.375rem;border:.03125rem solid #e8eaed;box-shadow:0 .0625rem .3125rem rgba(15,23,42,.04);box-sizing:border-box}.f-item-text[data-v-b1027b29]{flex:1;min-width:0;font-size:.625rem;color:#4e5969;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.f-item-arrow[data-v-b1027b29]{width:.5rem;height:.5rem;flex-shrink:0}.list[data-v-b1027b29]{padding:.5rem 1rem 0;box-sizing:border-box}.item[data-v-b1027b29]{display:flex;gap:.5rem;align-items:flex-start;padding:.375rem 0}.img[data-v-b1027b29]{width:6.1875rem;height:3.875rem;border-radius:.375rem;background:#e9edf2;flex-shrink:0}.body[data-v-b1027b29]{flex:1;min-width:0}.name[data-v-b1027b29]{font-size:.875rem;font-weight:400;color:#252525;line-height:1.35}.meta-row[data-v-b1027b29]{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.25rem;align-items:center}.meta-pill[data-v-b1027b29]{font-size:.625rem;font-weight:400;line-height:.875rem;padding:.125rem .3125rem;border-radius:.1875rem;flex-shrink:0}.meta-pill--free[data-v-b1027b29]{color:#00b42a;background:rgba(0,180,42,.1)}.meta-pill--paid[data-v-b1027b29]{color:#f53f3f;background:rgba(245,63,63,.08)}.open-mode-tag[data-v-b1027b29]{font-size:.625rem;font-weight:400;line-height:.875rem;padding:.125rem .3125rem;border-radius:.1875rem;flex-shrink:0}.empty-tip[data-v-b1027b29]{text-align:center;padding:1.5rem 0;font-size:.75rem;color:#86909c}

@ -1 +1 @@
import{h as t,g as n,S as r,b as e}from"./index-CN5ORKLy.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-BQvUePVO.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};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1 +0,0 @@
import{d as a,e,f as l,o as s,N as t,O as u,P as n,j as i,k as r,m as o,n as c,p as d,D as v,E as f,I as _,G as p,t as m,v as g,x as y,y as h,F as k,z as b,C as j,J as w,B as P,K as C}from"./index-CN5ORKLy.js";import{b as x}from"./content.D8RzmOf9.js";import{f as A,a as F,i as N,c as V}from"./activity.4NBjJ4my.js";import{P as z}from"./poster.DLiVsUXX.js";import{s as I}from"./search.BJnl3YRK.js";import{d as $}from"./down.BCKq9i8s.js";import{_ as B}from"./_plugin-vue_export-helper.BCo6x5W8.js";const D=B(a({__name:"index",setup(a){const B=e([]),D=e(1),E=e(0),G=e(!1),J=e(!1),K=e(""),O=e(""),U=[{value:"",label:"全部状态"},{value:"ongoing",label:"进行中"},{value:"not_started",label:"未开始"},{value:"ended",label:"已结束"}],q=e(0),H=l(()=>E.value>0&&D.value<E.value);async function L(a,e){if(!G.value||e){if(e){if(J.value||!H.value)return;J.value=!0}else G.value=!0;try{const l=await x({page:a,page_size:10,keyword:K.value.trim()||void 0,schedule_status:O.value||void 0}),{list:s,lastPage:t}=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);E.value=t,B.value=e?[...B.value,...s]:s,D.value=a}catch{e||(B.value=[])}finally{G.value=!1,J.value=!1}}}async function M(){D.value=1,await L(1,!1)}function Q(){M()}function R(a){var e;const l=Number((null==(e=null==a?void 0:a.detail)?void 0:e.value)??0);q.value=Number.isFinite(l)?l:0;const s=U[q.value];O.value=(null==s?void 0:s.value)??"",M()}function S(a){C({url:`/pages/activity/detail?id=${a}`})}function T(a){const e=null==a?void 0:a.schedule_status;return"not_started"===e||"ongoing"===e||"ended"===e?e:V(null==a?void 0:a.start_at,null==a?void 0:a.end_at)}function W(a){return F(T(a))}return s(()=>{!async function(){D.value=1,await L(1,!1)}()}),t(()=>{G.value||J.value||!H.value||L(D.value+1,!0)}),u(async()=>{try{await M()}finally{n()}}),(a,e)=>{const l=v,s=_,t=o,u=m,n=p;return c(),i(t,{class:"page"},{default:r(()=>[d(t,{class:"toolbar"},{default:r(()=>[d(t,{class:"toolbar-row"},{default:r(()=>[d(t,{class:"search-wrap"},{default:r(()=>[d(l,{class:"search-icon-img",src:f(I),mode:"aspectFit"},null,8,["src"]),d(s,{modelValue:K.value,"onUpdate:modelValue":e[0]||(e[0]=a=>K.value=a),class:"search-input",placeholder:"搜索活动标题","placeholder-class":"ph","confirm-type":"search",onConfirm:Q},null,8,["modelValue"])]),_:1}),d(n,{mode:"selector",range:U,"range-key":"label",value:q.value,class:"status-picker",onChange:R},{default:r(()=>[d(t,{class:"status-pick"},{default:r(()=>[d(u,{class:"status-pick-text"},{default:r(()=>{var a;return[g(y((null==(a=U[q.value])?void 0:a.label)||"全部"),1)]}),_:1}),d(l,{class:"status-pick-arrow",src:f($),mode:"aspectFit"},null,8,["src"])]),_:1})]),_:1},8,["value"])]),_:1})]),_:1}),d(t,{class:"list-inner"},{default:r(()=>[(c(!0),h(k,null,b(B.value,a=>(c(),i(t,{key:a.id,class:"item",onClick:e=>S(a.id)},{default:r(()=>[d(t,{class:"poster-wrap"},{default:r(()=>{return[d(l,{class:"poster",src:a.image||f(z),mode:"aspectFill"},null,8,["src"]),d(t,{class:j(["status",(e=a,`st-${T(e)}`)])},{default:r(()=>[g(y(W(a)),1)]),_:2},1032,["class"])];var e}),_:2},1024),d(t,{class:"body"},{default:r(()=>{var e,l;return[d(t,{class:"title"},{default:r(()=>[g(y(a.title),1)]),_:2},1024),(null==(e=a.tags)?void 0:e.length)?(c(),i(t,{key:0,class:"act-tags"},{default:r(()=>[(c(!0),h(k,null,b((a.tags||[]).slice(0,4),(e,l)=>(c(),i(u,{key:"t-"+a.id+"-"+l,class:"act-tag-chip"},{default:r(()=>[g(y(e),1)]),_:2},1024))),128))]),_:2},1024)):w("",!0),d(t,{class:"meta"},{default:r(()=>[g(y(f(A)(a.start_at,a.end_at)),1)]),_:2},1024),d(t,{class:"meta venue-line"},{default:r(()=>[g(y(a.venue_name||"场馆待定"),1)]),_:2},1024),(l=a,N(null==l?void 0:l.end_at)||!0!==(null==l?void 0:l.is_bookable)?w("",!0):(c(),i(t,{key:1,class:"action-row"},{default:r(()=>[d(t,{class:"btn",onClick:P(e=>S(a.id),["stop"])},{default:r(()=>[g("立即预约")]),_:2},1032,["onClick"])]),_:2},1024)))]}),_:2},1024)]),_:2},1032,["onClick"]))),128)),G.value&&!B.value.length?(c(),i(t,{key:0,class:"hint"},{default:r(()=>[g("加载中…")]),_:1})):w("",!0),J.value?(c(),i(t,{key:1,class:"hint"},{default:r(()=>[g("加载更多…")]),_:1})):w("",!0),E.value>0&&!H.value&&B.value.length&&!G.value?(c(),i(t,{key:2,class:"hint muted"},{default:r(()=>[g("没有更多了")]),_:1})):w("",!0),G.value||B.value.length?w("",!0):(c(),i(t,{key:3,class:"hint muted"},{default:r(()=>[g("暂无活动")]),_:1}))]),_:1})]),_:1})}}}),[["__scopeId","data-v-55ae1859"]]);export{D as default};

@ -0,0 +1 @@
import{d as a,e,f as l,o as s,N as t,O as u,P as n,j as r,k as i,m as o,n as c,p as d,D as v,E as f,I as p,G as _,t as m,v as y,x as g,y as h,F as b,z as k,C as j,H as w,J as C,B as P,K as x}from"./index-BQvUePVO.js";import{g as A,b as F}from"./content.R922wQQ4.js";import{a as N}from"./venueThemeColors.DRxjaxXI.js";import{f as V,a as z,i as I,c as $}from"./activity.4NBjJ4my.js";import{P as B}from"./poster.DLiVsUXX.js";import{s as D}from"./search.BJnl3YRK.js";import{d as E}from"./down.BCKq9i8s.js";import{_ as G}from"./_plugin-vue_export-helper.BCo6x5W8.js";const H=G(a({__name:"index",setup(a){const G=e([]),H=e(null),J=e(1),K=e(0),O=e(!1),T=e(!1),U=e(""),q=e(""),L=[{value:"",label:"全部状态"},{value:"ongoing",label:"进行中"},{value:"not_started",label:"未开始"},{value:"ended",label:"已结束"}],M=e(0),Q=l(()=>K.value>0&&J.value<K.value);async function R(a,e){if(!O.value||e){if(e){if(T.value||!Q.value)return;T.value=!0}else O.value=!0;try{const l=await F({page:a,page_size:10,keyword:U.value.trim()||void 0,schedule_status:q.value||void 0}),{list:s,lastPage:t}=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);K.value=t,G.value=e?[...G.value,...s]:s,J.value=a}catch{e||(G.value=[])}finally{O.value=!1,T.value=!1}}}async function S(){J.value=1,await R(1,!1)}function W(){S()}function X(a){var e;const l=Number((null==(e=null==a?void 0:a.detail)?void 0:e.value)??0);M.value=Number.isFinite(l)?l:0;const s=L[M.value];q.value=(null==s?void 0:s.value)??"",S()}function Y(a){x({url:`/pages/activity/detail?id=${a}`})}function Z(a){const e=null==a?void 0:a.schedule_status;return"not_started"===e||"ongoing"===e||"ended"===e?e:$(null==a?void 0:a.start_at,null==a?void 0:a.end_at)}function aa(a){return z(Z(a))}return s(()=>{!async function(){try{H.value=await A()}catch{H.value=null}J.value=1,await R(1,!1)}()}),t(()=>{O.value||T.value||!Q.value||R(J.value+1,!0)}),u(async()=>{try{await S()}finally{n()}}),(a,e)=>{const l=v,s=p,t=o,u=m,n=_;return c(),r(t,{class:"page"},{default:i(()=>[d(t,{class:"toolbar"},{default:i(()=>[d(t,{class:"toolbar-row"},{default:i(()=>[d(t,{class:"search-wrap"},{default:i(()=>[d(l,{class:"search-icon-img",src:f(D),mode:"aspectFit"},null,8,["src"]),d(s,{modelValue:U.value,"onUpdate:modelValue":e[0]||(e[0]=a=>U.value=a),class:"search-input",placeholder:"搜索活动标题","placeholder-class":"ph","confirm-type":"search",onConfirm:W},null,8,["modelValue"])]),_:1}),d(n,{mode:"selector",range:L,"range-key":"label",value:M.value,class:"status-picker",onChange:X},{default:i(()=>[d(t,{class:"status-pick"},{default:i(()=>[d(u,{class:"status-pick-text"},{default:i(()=>{var a;return[y(g((null==(a=L[M.value])?void 0:a.label)||"全部"),1)]}),_:1}),d(l,{class:"status-pick-arrow",src:f(E),mode:"aspectFit"},null,8,["src"])]),_:1})]),_:1},8,["value"])]),_:1})]),_:1}),d(t,{class:"list-inner"},{default:i(()=>[(c(!0),h(b,null,k(G.value,a=>(c(),r(t,{key:a.id,class:"item",onClick:e=>Y(a.id)},{default:i(()=>[d(t,{class:"poster-wrap"},{default:i(()=>{return[d(l,{class:"poster",src:a.image||f(B),mode:"aspectFill"},null,8,["src"]),d(t,{class:j(["status",(e=a,`st-${Z(e)}`)])},{default:i(()=>[y(g(aa(a)),1)]),_:2},1032,["class"])];var e}),_:2},1024),d(t,{class:"body"},{default:i(()=>{var e,l;return[d(t,{class:"title"},{default:i(()=>[y(g(a.title),1)]),_:2},1024),(null==(e=a.tags)?void 0:e.length)?(c(),r(t,{key:0,class:"act-tags"},{default:i(()=>[(c(!0),h(b,null,k((a.tags||[]).slice(0,4),(e,l)=>{var s;return c(),r(u,{key:"t-"+a.id+"-"+l,class:"act-tag-chip",style:w(f(N)(l,null==(s=H.value)?void 0:s.venue_type))},{default:i(()=>[y(g(e),1)]),_:2},1032,["style"])}),128))]),_:2},1024)):C("",!0),d(t,{class:"meta"},{default:i(()=>[y(g(f(V)(a.start_at,a.end_at)),1)]),_:2},1024),d(t,{class:"meta venue-line"},{default:i(()=>[y(g(a.venue_name||"场馆待定"),1)]),_:2},1024),(l=a,I(null==l?void 0:l.end_at)||!0!==(null==l?void 0:l.is_bookable)?C("",!0):(c(),r(t,{key:1,class:"action-row"},{default:i(()=>[d(t,{class:"btn",onClick:P(e=>Y(a.id),["stop"])},{default:i(()=>[y("立即预约")]),_:2},1032,["onClick"])]),_:2},1024)))]}),_:2},1024)]),_:2},1032,["onClick"]))),128)),O.value&&!G.value.length?(c(),r(t,{key:0,class:"hint"},{default:i(()=>[y("加载中…")]),_:1})):C("",!0),T.value?(c(),r(t,{key:1,class:"hint"},{default:i(()=>[y("加载更多…")]),_:1})):C("",!0),K.value>0&&!Q.value&&G.value.length&&!O.value?(c(),r(t,{key:2,class:"hint muted"},{default:i(()=>[y("没有更多了")]),_:1})):C("",!0),O.value||G.value.length?C("",!0):(c(),r(t,{key:3,class:"hint muted"},{default:i(()=>[y("暂无活动")]),_:1}))]),_:1})]),_:1})}}}),[["__scopeId","data-v-510c66b7"]]);export{H 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 a,e as s,o as e,O as l,P as t,j as u,k as o,m as r,n as c,p as n,D as d,E as i,I as m,y as f,F as p,z as _,t as v,v as y,x as h,J as g,K as k}from"./index-CN5ORKLy.js";import{c as w}from"./content.D8RzmOf9.js";import{P as j}from"./poster.DLiVsUXX.js";import{s as x}from"./search.BJnl3YRK.js";import{_ as b}from"./_plugin-vue_export-helper.BCo6x5W8.js";const C=b(a({__name:"index",setup(a){const b=s([]),C=s(!1),F=s("");async function V(){C.value=!0;try{b.value=await w({keyword:F.value.trim()||void 0})||[]}catch{b.value=[]}finally{C.value=!1}}function I(){V()}return e(()=>{V()}),l(async()=>{try{await V()}finally{t()}}),(a,s)=>{const e=d,l=m,t=r,w=v;return c(),u(t,{class:"page"},{default:o(()=>[n(t,{class:"toolbar"},{default:o(()=>[n(t,{class:"search-wrap"},{default:o(()=>[n(e,{class:"search-icon-img",src:i(x),mode:"aspectFit"},null,8,["src"]),n(l,{modelValue:F.value,"onUpdate:modelValue":s[0]||(s[0]=a=>F.value=a),class:"search-input",placeholder:"搜索研学路线名称","placeholder-class":"ph","confirm-type":"search",onConfirm:I},null,8,["modelValue"])]),_:1})]),_:1}),n(t,{class:"section"},{default:o(()=>[(c(!0),f(p,null,_(b.value,a=>(c(),u(t,{key:a.id,class:"tour-card",onClick:s=>{return e=a.id,void k({url:`/pages/study-tour/detail?id=${e}`});var e}},{default:o(()=>[n(t,{class:"tour-img-wrap"},{default:o(()=>[n(e,{class:"tour-img",src:a.cover_image||i(j),mode:"aspectFill"},null,8,["src"])]),_:2},1024),n(t,{class:"tour-body"},{default:o(()=>{var s;return[n(w,{class:"tour-title"},{default:o(()=>[y(h(a.name),1)]),_:2},1024),n(t,{class:"tour-stops-timeline"},{default:o(()=>[(c(!0),f(p,null,_(a.venue_names||[],(s,e)=>(c(),u(t,{key:"v-"+a.id+"-"+e,class:"tour-stop-row"},{default:o(()=>[n(t,{class:"tour-timeline-axis"},{default:o(()=>{var s;return[n(t,{class:"tour-dot-cell"},{default:o(()=>[n(t,{class:"tour-tl-dot"})]),_:1}),Number(e)<((null==(s=a.venue_names)?void 0:s.length)||0)-1?(c(),u(t,{key:0,class:"tour-tl-line"})):g("",!0)]}),_:2},1024),n(w,{class:"tour-stop-name"},{default:o(()=>[y(h(s),1)]),_:2},1024)]),_:2},1024))),128))]),_:2},1024),(null==(s=a.tags)?void 0:s.length)?(c(),u(t,{key:0,class:"tour-tags-row"},{default:o(()=>[(c(!0),f(p,null,_(a.tags,(s,e)=>(c(),u(w,{key:"t-"+a.id+"-"+e,class:"tour-tag"},{default:o(()=>[y(h(s),1)]),_:2},1024))),128))]),_:2},1024)):g("",!0)]}),_:2},1024)]),_:2},1032,["onClick"]))),128)),C.value&&!b.value.length?(c(),u(t,{key:0,class:"hint"},{default:o(()=>[y("加载中…")]),_:1})):g("",!0),C.value||b.value.length?g("",!0):(c(),u(t,{key:1,class:"hint muted"},{default:o(()=>[y("暂无研学路线")]),_:1}))]),_:1})]),_:1})}}}),[["__scopeId","data-v-cbf684f4"]]);export{C as default};
import{d as a,e as s,o as e,O as l,P as t,j as u,k as o,m as r,n as c,p as n,D as d,E as i,I as m,y as f,F as p,z as _,t as v,v as y,x as h,J as g,K as k}from"./index-BQvUePVO.js";import{c as w}from"./content.R922wQQ4.js";import{P as j}from"./poster.DLiVsUXX.js";import{s as x}from"./search.BJnl3YRK.js";import{_ as b}from"./_plugin-vue_export-helper.BCo6x5W8.js";const C=b(a({__name:"index",setup(a){const b=s([]),C=s(!1),F=s("");async function V(){C.value=!0;try{b.value=await w({keyword:F.value.trim()||void 0})||[]}catch{b.value=[]}finally{C.value=!1}}function I(){V()}return e(()=>{V()}),l(async()=>{try{await V()}finally{t()}}),(a,s)=>{const e=d,l=m,t=r,w=v;return c(),u(t,{class:"page"},{default:o(()=>[n(t,{class:"toolbar"},{default:o(()=>[n(t,{class:"search-wrap"},{default:o(()=>[n(e,{class:"search-icon-img",src:i(x),mode:"aspectFit"},null,8,["src"]),n(l,{modelValue:F.value,"onUpdate:modelValue":s[0]||(s[0]=a=>F.value=a),class:"search-input",placeholder:"搜索研学路线名称","placeholder-class":"ph","confirm-type":"search",onConfirm:I},null,8,["modelValue"])]),_:1})]),_:1}),n(t,{class:"section"},{default:o(()=>[(c(!0),f(p,null,_(b.value,a=>(c(),u(t,{key:a.id,class:"tour-card",onClick:s=>{return e=a.id,void k({url:`/pages/study-tour/detail?id=${e}`});var e}},{default:o(()=>[n(t,{class:"tour-img-wrap"},{default:o(()=>[n(e,{class:"tour-img",src:a.cover_image||i(j),mode:"aspectFill"},null,8,["src"])]),_:2},1024),n(t,{class:"tour-body"},{default:o(()=>{var s;return[n(w,{class:"tour-title"},{default:o(()=>[y(h(a.name),1)]),_:2},1024),n(t,{class:"tour-stops-timeline"},{default:o(()=>[(c(!0),f(p,null,_(a.venue_names||[],(s,e)=>(c(),u(t,{key:"v-"+a.id+"-"+e,class:"tour-stop-row"},{default:o(()=>[n(t,{class:"tour-timeline-axis"},{default:o(()=>{var s;return[n(t,{class:"tour-dot-cell"},{default:o(()=>[n(t,{class:"tour-tl-dot"})]),_:1}),Number(e)<((null==(s=a.venue_names)?void 0:s.length)||0)-1?(c(),u(t,{key:0,class:"tour-tl-line"})):g("",!0)]}),_:2},1024),n(w,{class:"tour-stop-name"},{default:o(()=>[y(h(s),1)]),_:2},1024)]),_:2},1024))),128))]),_:2},1024),(null==(s=a.tags)?void 0:s.length)?(c(),u(t,{key:0,class:"tour-tags-row"},{default:o(()=>[(c(!0),f(p,null,_(a.tags,(s,e)=>(c(),u(w,{key:"t-"+a.id+"-"+e,class:"tour-tag"},{default:o(()=>[y(h(s),1)]),_:2},1024))),128))]),_:2},1024)):g("",!0)]}),_:2},1024)]),_:2},1032,["onClick"]))),128)),C.value&&!b.value.length?(c(),u(t,{key:0,class:"hint"},{default:o(()=>[y("加载中…")]),_:1})):g("",!0),C.value||b.value.length?g("",!0):(c(),u(t,{key:1,class:"hint muted"},{default:o(()=>[y("暂无研学路线")]),_:1}))]),_:1})]),_:1})}}}),[["__scopeId","data-v-cbf684f4"]]);export{C as default};

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

File diff suppressed because one or more lines are too long

@ -1 +1 @@
import{d as a,e as l,Q as e,j as s,k as n,g as u,S as t,m as o,n as r,p as c,D as i,v as d,x as f,t as p,K as _}from"./index-CN5ORKLy.js";import{g as v,l as m}from"./localProfile.BXuO3t47.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 j(){_({url:"/pages/mine/profile"})}function y(){_({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=p;return r(),s(u,{class:"page"},{default:n(()=>[c(u,{class:"header"},{default:n(()=>[c(u,{class:"profile",onClick:j},{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:j},{default:n(()=>[c(t,null,{default:n(()=>[d("我的信息")]),_:1}),c(t,null,{default:n(()=>[d(">")]),_:1})]),_:1}),c(u,{class:"menu-item",onClick:y},{default:n(()=>[c(t,null,{default:n(()=>[d("预约记录")]),_:1}),c(t,null,{default:n(()=>[d(">")]),_:1})]),_:1})]),_:1})]),_:1})}}}),[["__scopeId","data-v-0d216b84"]]);export{k as default};
import{d as a,e as l,Q as e,j as s,k as n,g as u,S as t,m as o,n as r,p as c,D as i,v as d,x as f,t as p,K as _}from"./index-BQvUePVO.js";import{g as v,l as m}from"./localProfile.nTeK2MPl.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 j(){_({url:"/pages/mine/profile"})}function y(){_({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=p;return r(),s(u,{class:"page"},{default:n(()=>[c(u,{class:"header"},{default:n(()=>[c(u,{class:"profile",onClick:j},{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:j},{default:n(()=>[c(t,null,{default:n(()=>[d("我的信息")]),_:1}),c(t,null,{default:n(()=>[d(">")]),_:1})]),_:1}),c(u,{class:"menu-item",onClick:y},{default:n(()=>[c(t,null,{default:n(()=>[d("预约记录")]),_:1}),c(t,null,{default:n(()=>[d(">")]),_:1})]),_:1})]),_:1})]),_:1})}}}),[["__scopeId","data-v-0d216b84"]]);export{k as default};

@ -1 +1 @@
import{d as e,e as a,f as l,o as t,j as s,k as i,g as n,S as c,s as u,m as o,n as d,p as r,t as v,v as f,I as p,R as _,x as m,C as y,y as k,F as g,z as h,E as x,B as C,J as b,K as $,V as j}from"./index-CN5ORKLy.js";import{d as w,e as V}from"./content.D8RzmOf9.js";import{f as I,a as T,i as R}from"./datetime.BfIJTcZ8.js";import{_ as U}from"./_plugin-vue_export-helper.BCo6x5W8.js";const q=U(e({__name:"orders",setup(e){const U=a(""),q=a([]),z=a(!1),B=a("all"),E=l(()=>"all"===B.value?q.value:q.value.filter(e=>e.status===B.value));function F(){return!!n(c.accessToken)}function J(e){return"pending"===e?"待核销":"verified"===e?"已核销":"cancelled"===e?"已取消":"expired"===e?"已过期":e||"-"}function K(e){var a;return"pending"===(null==e?void 0:e.status)&&!R(null==(a=null==e?void 0:e.activity_day)?void 0:a.activity_date)}async function S(){const e=/^1\d{10}$/.test(U.value);if(e||F()){z.value=!0;try{q.value=await w(e?U.value:void 0)}catch(a){u({title:(null==a?void 0:a.message)||"加载失败",icon:"none"})}finally{z.value=!1}}else u({title:"请输入手机号,或先通过微信登录",icon:"none"})}return t(()=>{F()&&S()}),(e,a)=>{const l=v,t=o,n=p,c=_;return d(),s(t,{class:"page"},{default:i(()=>[r(t,{class:"notice-top"},{default:i(()=>[r(l,{class:"notice-text"},{default:i(()=>[f("请按时到场参与活动,累计 3 次无故未履约,将限制 3 个月预约资格,感谢诚信守约。")]),_:1})]),_:1}),r(t,{class:"card"},{default:i(()=>[r(t,{class:"title"},{default:i(()=>[f("我的活动预约")]),_:1}),r(t,{class:"sub"},{default:i(()=>[f("微信登录后自动展示绑定订单;也可输入预约手机号查询。")]),_:1}),r(t,{class:"row"},{default:i(()=>[r(n,{modelValue:U.value,"onUpdate:modelValue":a[0]||(a[0]=e=>U.value=e),class:"ipt",type:"number",maxlength:"11",placeholder:"预约手机号(可选,与登录二选一)"},null,8,["modelValue"]),r(c,{class:"btn",onClick:S},{default:i(()=>[f(m(z.value?"查询中":"查询"),1)]),_:1})]),_:1}),r(t,{class:"filters"},{default:i(()=>[r(t,{class:y(["chip",{active:"all"===B.value}]),onClick:a[1]||(a[1]=e=>B.value="all")},{default:i(()=>[f("全部")]),_:1},8,["class"]),r(t,{class:y(["chip",{active:"pending"===B.value}]),onClick:a[2]||(a[2]=e=>B.value="pending")},{default:i(()=>[f("待核销")]),_:1},8,["class"]),r(t,{class:y(["chip",{active:"verified"===B.value}]),onClick:a[3]||(a[3]=e=>B.value="verified")},{default:i(()=>[f("已核销")]),_:1},8,["class"]),r(t,{class:y(["chip",{active:"cancelled"===B.value}]),onClick:a[4]||(a[4]=e=>B.value="cancelled")},{default:i(()=>[f("已取消")]),_:1},8,["class"]),r(t,{class:y(["chip",{active:"expired"===B.value}]),onClick:a[5]||(a[5]=e=>B.value="expired")},{default:i(()=>[f("已过期")]),_:1},8,["class"])]),_:1})]),_:1}),(d(!0),k(g,null,h(E.value,e=>(d(),s(t,{key:e.id,class:"order-card"},{default:i(()=>[r(t,{class:"order-top"},{default:i(()=>{return[r(t,{class:"t"},{default:i(()=>{var a;return[f(m((null==(a=e.activity)?void 0:a.title)||"-"),1)]}),_:2},1024),r(t,{class:y(["status",(a=e.status,"pending"===a?"pending":"verified"===a?"verified":"expired"===a?"expired":"cancelled")])},{default:i(()=>[f(m(J(e.status)),1)]),_:2},1032,["class"])];var a}),_:2},1024),r(t,{class:"line"},{default:i(()=>{var a;return[f("订单信息:"+m(x(I)(null==(a=e.activity_day)?void 0:a.activity_date))+" "+m(e.ticket_count||1)+"人",1)]}),_:2},1024),r(t,{class:"line"},{default:i(()=>[f("联系人:"+m(e.visitor_name||"-")+" "+m(e.visitor_phone||"-"),1)]),_:2},1024),r(t,{class:"line"},{default:i(()=>[f("下单时间:"+m(x(T)(e.created_at)),1)]),_:2},1024),r(t,{class:"actions"},{default:i(()=>[K(e)?(d(),s(c,{key:0,class:"btn-light mini",onClick:C(a=>async function(e,a){const l=/^1\d{10}$/.test(U.value);if(!l&&!F())return;if(!K(a))return void u({title:"当前不可取消",icon:"none"});if((await j({title:"取消预约",content:"累计 3 次预约未履约将自动进入灰名单3 个月内将限制预约功能,请合理安排行程。\n\n确认后将取消本次预约并释放名额。",confirmText:"确认取消",cancelText:"返回",confirmColor:"#ff7d00"})).confirm)try{await V(e,l?U.value:void 0),u({title:"取消成功",icon:"success"}),await S()}catch(t){u({title:(null==t?void 0:t.message)||"取消失败",icon:"none"})}}(e.id,e),["stop"])},{default:i(()=>[f("取消")]),_:2},1032,["onClick"])):b("",!0),r(c,{class:"btn-main mini",onClick:C(a=>function(e){const a=/^1\d{10}$/.test(U.value);if(!a&&!F())return void u({title:"请输入手机号或先登录",icon:"none"});const l=a?`&phone=${encodeURIComponent(U.value)}`:"";$({url:`/pages/mine/reservation-detail?id=${e}${l}`})}(e.id),["stop"])},{default:i(()=>[f("查看详情")]),_:2},1032,["onClick"])]),_:2},1024)]),_:2},1024))),128))]),_:1})}}}),[["__scopeId","data-v-ae6fbff3"]]);export{q as default};
import{d as e,e as a,f as l,o as t,j as s,k as i,g as n,S as c,s as u,m as o,n as d,p as r,t as v,v as f,I as p,R as _,x as m,C as y,y as k,F as g,z as h,E as x,B as C,J as b,K as $,V as j}from"./index-BQvUePVO.js";import{d as w,e as V}from"./content.R922wQQ4.js";import{f as I,a as T,i as R}from"./datetime.BfIJTcZ8.js";import{_ as U}from"./_plugin-vue_export-helper.BCo6x5W8.js";const z=U(e({__name:"orders",setup(e){const U=a(""),z=a([]),B=a(!1),E=a("all"),F=l(()=>"all"===E.value?z.value:z.value.filter(e=>e.status===E.value));function J(){return!!n(c.accessToken)}function K(e){return"pending"===e?"待核销":"verified"===e?"已核销":"cancelled"===e?"已取消":"expired"===e?"已过期":e||"-"}function S(e){var a;return"pending"===(null==e?void 0:e.status)&&!R(null==(a=null==e?void 0:e.activity_day)?void 0:a.activity_date)}async function q(){const e=/^1\d{10}$/.test(U.value);if(e||J()){B.value=!0;try{z.value=await w(e?U.value:void 0)}catch(a){u({title:(null==a?void 0:a.message)||"加载失败",icon:"none"})}finally{B.value=!1}}else u({title:"请输入手机号,或先通过微信登录",icon:"none"})}return t(()=>{J()&&q()}),(e,a)=>{const l=v,t=o,n=p,c=_;return d(),s(t,{class:"page"},{default:i(()=>[r(t,{class:"notice-top"},{default:i(()=>[r(l,{class:"notice-text"},{default:i(()=>[f("请按时到场参与活动,累计 3 次无故未履约,将限制 3 个月预约资格,感谢诚信守约。")]),_:1})]),_:1}),r(t,{class:"card"},{default:i(()=>[r(t,{class:"title"},{default:i(()=>[f("我的活动预约")]),_:1}),r(t,{class:"sub"},{default:i(()=>[f("微信登录后自动展示绑定订单;也可输入预约手机号查询。")]),_:1}),r(t,{class:"row"},{default:i(()=>[r(n,{modelValue:U.value,"onUpdate:modelValue":a[0]||(a[0]=e=>U.value=e),class:"ipt",type:"number",maxlength:"11",placeholder:"预约手机号(可选,与登录二选一)"},null,8,["modelValue"]),r(c,{class:"btn",onClick:q},{default:i(()=>[f(m(B.value?"查询中":"查询"),1)]),_:1})]),_:1}),r(t,{class:"filters"},{default:i(()=>[r(t,{class:y(["chip",{active:"all"===E.value}]),onClick:a[1]||(a[1]=e=>E.value="all")},{default:i(()=>[f("全部")]),_:1},8,["class"]),r(t,{class:y(["chip",{active:"pending"===E.value}]),onClick:a[2]||(a[2]=e=>E.value="pending")},{default:i(()=>[f("待核销")]),_:1},8,["class"]),r(t,{class:y(["chip",{active:"verified"===E.value}]),onClick:a[3]||(a[3]=e=>E.value="verified")},{default:i(()=>[f("已核销")]),_:1},8,["class"]),r(t,{class:y(["chip",{active:"cancelled"===E.value}]),onClick:a[4]||(a[4]=e=>E.value="cancelled")},{default:i(()=>[f("已取消")]),_:1},8,["class"]),r(t,{class:y(["chip",{active:"expired"===E.value}]),onClick:a[5]||(a[5]=e=>E.value="expired")},{default:i(()=>[f("已过期")]),_:1},8,["class"])]),_:1})]),_:1}),(d(!0),k(g,null,h(F.value,e=>(d(),s(t,{key:e.id,class:"order-card"},{default:i(()=>[r(t,{class:"order-top"},{default:i(()=>{return[r(t,{class:"t"},{default:i(()=>{var a;return[f(m((null==(a=e.activity)?void 0:a.title)||"-"),1)]}),_:2},1024),r(t,{class:y(["status",(a=e.status,"pending"===a?"pending":"verified"===a?"verified":"expired"===a?"expired":"cancelled")])},{default:i(()=>[f(m(K(e.status)),1)]),_:2},1032,["class"])];var a}),_:2},1024),r(t,{class:"line"},{default:i(()=>{var a;return[f("订单信息:"+m(x(I)(null==(a=e.activity_day)?void 0:a.activity_date))+" "+m(e.ticket_count||1)+"人",1)]}),_:2},1024),r(t,{class:"line"},{default:i(()=>[f("联系人:"+m(e.visitor_name||"-")+" "+m(e.visitor_phone||"-"),1)]),_:2},1024),r(t,{class:"line"},{default:i(()=>[f("下单时间:"+m(x(T)(e.created_at)),1)]),_:2},1024),r(t,{class:"actions"},{default:i(()=>[S(e)?(d(),s(c,{key:0,class:"btn-light mini",onClick:C(a=>async function(e,a){const l=/^1\d{10}$/.test(U.value);if(!l&&!J())return;if(!S(a))return void u({title:"当前不可取消",icon:"none"});if((await j({title:"取消预约",content:"累计 3 次预约未履约将自动进入灰名单3 个月内将限制预约功能,请合理安排行程。\n\n确认后将取消本次预约并释放名额。",confirmText:"确认取消",cancelText:"返回",confirmColor:"#ff7d00"})).confirm)try{await V(e,l?U.value:void 0),u({title:"取消成功",icon:"success"}),await q()}catch(t){u({title:(null==t?void 0:t.message)||"取消失败",icon:"none"})}}(e.id,e),["stop"])},{default:i(()=>[f("取消")]),_:2},1032,["onClick"])):b("",!0),r(c,{class:"btn-main mini",onClick:C(a=>function(e){const a=/^1\d{10}$/.test(U.value);if(!a&&!J())return void u({title:"请输入手机号或先登录",icon:"none"});const l=a?`&phone=${encodeURIComponent(U.value)}`:"";$({url:`/pages/mine/reservation-detail?id=${e}${l}`})}(e.id),["stop"])},{default:i(()=>[f("查看详情")]),_:2},1032,["onClick"])]),_:2},1024)]),_:2},1024))),128))]),_:1})}}}),[["__scopeId","data-v-ae6fbff3"]]);export{z as default};

@ -1 +1 @@
import{d as a,e,o as l,j as s,k as t,g as n,S as u,m as r,n as o,v as c,p as v,D as i,x as p,t as d,I as _,R as m,s as f,T as h,a as y,U as k,c as b}from"./index-CN5ORKLy.js";import{g,l as w,u as V,s as x}from"./localProfile.BXuO3t47.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),C=e({real_name:"",phone:"",avatar_url:""});function F(a){C.value.real_name=a.real_name||"",C.value.phone=a.phone||"",C.value.avatar_url=a.avatar_url||""}function I(){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 k(e);C.value.avatar_url=a}catch(l){f({title:(null==l?void 0:l.message)||"上传失败",icon:"none"})}finally{b()}}}):f({title:"请先通过微信登录后再上传头像",icon:"none"})}async function P(){if(C.value.real_name.trim())if(/^1\d{10}$/.test(C.value.phone.trim())){T.value=!0;try{const a={real_name:C.value.real_name.trim(),phone:C.value.phone.trim(),avatar_url:C.value.avatar_url||void 0};U.value&&await V(a),x({real_name:a.real_name,phone:a.phone,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:"请填写11位手机号",icon:"none"});else f({title:"请填写姓名",icon:"none"})}return l(()=>{!async function(){j.value=!0,U.value=!!n(u.accessToken);try{if(U.value)try{const a=await g();C.value.real_name=a.real_name||"",C.value.phone=a.phone||"",C.value.avatar_url=a.avatar_url||""}catch{const a=w();a&&F(a)}else{const a=w();a&&F(a)}}finally{j.value=!1}}()}),(a,e)=>{const l=r,n=i,u=d,f=_,h=m;return o(),s(l,{class:"page"},{default:t(()=>[j.value?(o(),s(l,{key:0,class:"loading"},{default:t(()=>[c("加载中…")]),_:1})):(o(),s(l,{key:1,class:"content"},{default:t(()=>[v(l,{class:"avatar-block"},{default:t(()=>[v(l,{class:"avatar-wrap",onClick:I},{default:t(()=>[C.value.avatar_url?(o(),s(n,{key:0,class:"avatar",src:C.value.avatar_url,mode:"aspectFill"},null,8,["src"])):(o(),s(l,{key:1,class:"avatar placeholder"})),v(l,{class:"avatar-tip"},{default:t(()=>[c(p(U.value?"点击更换头像":"登录后可上传头像"),1)]),_:1})]),_:1})]),_:1}),v(l,{class:"card"},{default:t(()=>[v(l,{class:"row"},{default:t(()=>[v(u,{class:"label"},{default:t(()=>[c("姓名")]),_:1}),v(f,{modelValue:C.value.real_name,"onUpdate:modelValue":e[0]||(e[0]=a=>C.value.real_name=a),class:"input",placeholder:"必填","placeholder-class":"ph"},null,8,["modelValue"])]),_:1}),v(l,{class:"row last"},{default:t(()=>[v(u,{class:"label"},{default:t(()=>[c("手机号")]),_:1}),v(f,{modelValue:C.value.phone,"onUpdate:modelValue":e[1]||(e[1]=a=>C.value.phone=a),class:"input",type:"number",maxlength:"11",placeholder:"必填","placeholder-class":"ph"},null,8,["modelValue"])]),_:1})]),_:1}),v(h,{class:"btn",disabled:T.value,onClick:P},{default:t(()=>[c(p(T.value?"保存中…":"保存"),1)]),_:1},8,["disabled"])]),_:1}))]),_:1})}}}),[["__scopeId","data-v-ada2a768"]]);export{T as default};
import{d as a,e,o as l,j as s,k as t,g as n,S as u,m as r,n as o,v as c,p as v,D as i,x as d,t as p,I as _,R as m,s as f,T as h,a as y,U as k,c as b}from"./index-BQvUePVO.js";import{g,l as w,u as V,s as x}from"./localProfile.nTeK2MPl.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),C=e({real_name:"",phone:"",avatar_url:""});function F(a){C.value.real_name=a.real_name||"",C.value.phone=a.phone||"",C.value.avatar_url=a.avatar_url||""}function I(){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 k(e);C.value.avatar_url=a}catch(l){f({title:(null==l?void 0:l.message)||"上传失败",icon:"none"})}finally{b()}}}):f({title:"请先通过微信登录后再上传头像",icon:"none"})}async function P(){if(C.value.real_name.trim())if(/^1\d{10}$/.test(C.value.phone.trim())){T.value=!0;try{const a={real_name:C.value.real_name.trim(),phone:C.value.phone.trim(),avatar_url:C.value.avatar_url||void 0};U.value&&await V(a),x({real_name:a.real_name,phone:a.phone,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:"请填写11位手机号",icon:"none"});else f({title:"请填写姓名",icon:"none"})}return l(()=>{!async function(){j.value=!0,U.value=!!n(u.accessToken);try{if(U.value)try{const a=await g();C.value.real_name=a.real_name||"",C.value.phone=a.phone||"",C.value.avatar_url=a.avatar_url||""}catch{const a=w();a&&F(a)}else{const a=w();a&&F(a)}}finally{j.value=!1}}()}),(a,e)=>{const l=r,n=i,u=p,f=_,h=m;return o(),s(l,{class:"page"},{default:t(()=>[j.value?(o(),s(l,{key:0,class:"loading"},{default:t(()=>[c("加载中…")]),_:1})):(o(),s(l,{key:1,class:"content"},{default:t(()=>[v(l,{class:"avatar-block"},{default:t(()=>[v(l,{class:"avatar-wrap",onClick:I},{default:t(()=>[C.value.avatar_url?(o(),s(n,{key:0,class:"avatar",src:C.value.avatar_url,mode:"aspectFill"},null,8,["src"])):(o(),s(l,{key:1,class:"avatar placeholder"})),v(l,{class:"avatar-tip"},{default:t(()=>[c(d(U.value?"点击更换头像":"登录后可上传头像"),1)]),_:1})]),_:1})]),_:1}),v(l,{class:"card"},{default:t(()=>[v(l,{class:"row"},{default:t(()=>[v(u,{class:"label"},{default:t(()=>[c("姓名")]),_:1}),v(f,{modelValue:C.value.real_name,"onUpdate:modelValue":e[0]||(e[0]=a=>C.value.real_name=a),class:"input",placeholder:"必填","placeholder-class":"ph"},null,8,["modelValue"])]),_:1}),v(l,{class:"row last"},{default:t(()=>[v(u,{class:"label"},{default:t(()=>[c("手机号")]),_:1}),v(f,{modelValue:C.value.phone,"onUpdate:modelValue":e[1]||(e[1]=a=>C.value.phone=a),class:"input",type:"number",maxlength:"11",placeholder:"必填","placeholder-class":"ph"},null,8,["modelValue"])]),_:1})]),_:1}),v(h,{class:"btn",disabled:T.value,onClick:P},{default:t(()=>[c(d(T.value?"保存中…":"保存"),1)]),_:1},8,["disabled"])]),_:1}))]),_:1})}}}),[["__scopeId","data-v-ada2a768"]]);export{T 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 a,e as s,o as t,O as l,P as e,j as c,k as n,s as i,m as o,n as u,p as r,t as d,v as f,y as m,F as _,z as v,C as p,x as y,D as k,E as g,J as b,K as C}from"./index-CN5ORKLy.js";import{a as h,g as j}from"./content.D8RzmOf9.js";import{P as w}from"./poster.DLiVsUXX.js";import{_ as x}from"./_plugin-vue_export-helper.BCo6x5W8.js";const P=x(a({__name:"index",setup(a){const x=s(!0),P=s([]);async function A(){x.value=!0;try{const[a,s]=await Promise.all([h(),j().catch(()=>null)]),t=Array.isArray(a)?a:[],l=function(a){const s={};for(const t of(null==a?void 0:a.district)??[]){const a=(t.value||"").trim();a&&(s[a]=(t.label||"").trim()||a)}return s}(s);P.value=function(a,s){return a.map(a=>{const t=(a.district||"").trim(),l=t?s[t]??t:"";return{id:a.id,name:a.name||"未命名场馆",district:l,cover_image:a.cover_image||null,liveCount:0}}).sort((a,s)=>s.liveCount-a.liveCount)}(t,l)}catch(a){i({title:(null==a?void 0:a.message)||"加载失败",icon:"none"}),P.value=[]}finally{x.value=!1}}return t(()=>{A()}),l(async()=>{try{await A()}finally{e()}}),(a,s)=>{const t=o,l=d,e=k;return u(),c(t,{class:"page"},{default:n(()=>[r(t,{class:"section-title"},{default:n(()=>[r(t,{class:"bar"}),r(l,{class:"title"},{default:n(()=>[f("今日客流量统计")]),_:1})]),_:1}),x.value&&!P.value.length?(u(),c(t,{key:0,class:"state"},{default:n(()=>[f("加载中…")]),_:1})):P.value.length?(u(),c(t,{key:2,class:"list"},{default:n(()=>[(u(!0),m(_,null,v(P.value,(a,s)=>(u(),c(t,{key:a.id,class:p(["row",{"is-top1":0===s,"is-top2":1===s,"is-top3":2===s}]),onClick:s=>{var t;(t=a.id)&&C({url:`/pages/venue/detail?id=${t}`})}},{default:n(()=>[r(t,{class:"rank-wrap"},{default:n(()=>[s<3?(u(),c(t,{key:0,class:p(["medal","m"+(s+1)])},{default:n(()=>[f(y(s+1),1)]),_:2},1032,["class"])):(u(),c(l,{key:1,class:"rank-num"},{default:n(()=>[f(y(s+1),1)]),_:2},1024))]),_:2},1024),r(e,{class:"thumb",src:a.cover_image||g(w),mode:"aspectFill"},null,8,["src"]),r(t,{class:"mid"},{default:n(()=>[r(l,{class:"name"},{default:n(()=>[f(y(a.name),1)]),_:2},1024),a.district?(u(),c(l,{key:0,class:"district"},{default:n(()=>[f(y(a.district),1)]),_:2},1024)):b("",!0)]),_:2},1024),r(t,{class:"count-block"},{default:n(()=>[r(l,{class:"count-label"},{default:n(()=>[f("实时人数")]),_:1}),r(t,{class:"count-row"},{default:n(()=>[r(l,{class:"count"},{default:n(()=>[f(y(a.liveCount.toLocaleString()),1)]),_:2},1024),r(l,{class:"unit"},{default:n(()=>[f("人")]),_:1})]),_:2},1024)]),_:2},1024)]),_:2},1032,["class","onClick"]))),128))]),_:1})):(u(),c(t,{key:1,class:"state muted"},{default:n(()=>[f("暂无已上架场馆")]),_:1})),r(t,{class:"bottom-safe"})]),_:1})}}}),[["__scopeId","data-v-925a6b56"]]);export{P as default};
import{d as a,e as s,o as t,O as l,P as e,j as c,k as n,s as i,m as o,n as u,p as r,t as d,v as f,y as m,F as _,z as v,C as p,x as y,D as k,E as g,J as b,K as C}from"./index-BQvUePVO.js";import{a as h,g as j}from"./content.R922wQQ4.js";import{P as w}from"./poster.DLiVsUXX.js";import{_ as x}from"./_plugin-vue_export-helper.BCo6x5W8.js";const P=x(a({__name:"index",setup(a){const x=s(!0),P=s([]);async function A(){x.value=!0;try{const[a,s]=await Promise.all([h(),j().catch(()=>null)]),t=Array.isArray(a)?a:[],l=function(a){const s={};for(const t of(null==a?void 0:a.district)??[]){const a=(t.value||"").trim();a&&(s[a]=(t.label||"").trim()||a)}return s}(s);P.value=function(a,s){return a.map(a=>{const t=(a.district||"").trim(),l=t?s[t]??t:"";return{id:a.id,name:a.name||"未命名场馆",district:l,cover_image:a.cover_image||null,liveCount:0}}).sort((a,s)=>s.liveCount-a.liveCount)}(t,l)}catch(a){i({title:(null==a?void 0:a.message)||"加载失败",icon:"none"}),P.value=[]}finally{x.value=!1}}return t(()=>{A()}),l(async()=>{try{await A()}finally{e()}}),(a,s)=>{const t=o,l=d,e=k;return u(),c(t,{class:"page"},{default:n(()=>[r(t,{class:"section-title"},{default:n(()=>[r(t,{class:"bar"}),r(l,{class:"title"},{default:n(()=>[f("今日客流量统计")]),_:1})]),_:1}),x.value&&!P.value.length?(u(),c(t,{key:0,class:"state"},{default:n(()=>[f("加载中…")]),_:1})):P.value.length?(u(),c(t,{key:2,class:"list"},{default:n(()=>[(u(!0),m(_,null,v(P.value,(a,s)=>(u(),c(t,{key:a.id,class:p(["row",{"is-top1":0===s,"is-top2":1===s,"is-top3":2===s}]),onClick:s=>{var t;(t=a.id)&&C({url:`/pages/venue/detail?id=${t}`})}},{default:n(()=>[r(t,{class:"rank-wrap"},{default:n(()=>[s<3?(u(),c(t,{key:0,class:p(["medal","m"+(s+1)])},{default:n(()=>[f(y(s+1),1)]),_:2},1032,["class"])):(u(),c(l,{key:1,class:"rank-num"},{default:n(()=>[f(y(s+1),1)]),_:2},1024))]),_:2},1024),r(e,{class:"thumb",src:a.cover_image||g(w),mode:"aspectFill"},null,8,["src"]),r(t,{class:"mid"},{default:n(()=>[r(l,{class:"name"},{default:n(()=>[f(y(a.name),1)]),_:2},1024),a.district?(u(),c(l,{key:0,class:"district"},{default:n(()=>[f(y(a.district),1)]),_:2},1024)):b("",!0)]),_:2},1024),r(t,{class:"count-block"},{default:n(()=>[r(l,{class:"count-label"},{default:n(()=>[f("实时人数")]),_:1}),r(t,{class:"count-row"},{default:n(()=>[r(l,{class:"count"},{default:n(()=>[f(y(a.liveCount.toLocaleString()),1)]),_:2},1024),r(l,{class:"unit"},{default:n(()=>[f("人")]),_:1})]),_:2},1024)]),_:2},1024)]),_:2},1032,["class","onClick"]))),128))]),_:1})):(u(),c(t,{key:1,class:"state muted"},{default:n(()=>[f("暂无已上架场馆")]),_:1})),r(t,{class:"bottom-safe"})]),_:1})}}}),[["__scopeId","data-v-925a6b56"]]);export{P 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 a,e,f as l,o as t,a0 as s,w as u,j as d,k as v,a6 as c,m as n,n as r,p as i,t as o,v as f,C as h,x as _,a7 as x,H as y,y as m,F as p,z as g}from"./index-CN5ORKLy.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,a6 as c,m as n,n as o,p as r,t as i,v as f,C as h,x as _,a7 as x,H as y,y as m,F as p,z as g}from"./index-BQvUePVO.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)),o=Math.max(1,n-v),r=680-u-t,i=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+r*t/Math.max(1,a.length-1),y:l+(n-e.value)/o*i,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=i,s=x;return o(),d(l,{class:"page"},{default:v(()=>[r(l,{class:"section-title"},{default:v(()=>[r(l,{class:"bar"}),r(t,{class:"title"},{default:v(()=>[f("全市参观人数")]),_:1}),r(l,{class:"period"},{default:v(()=>[r(t,{class:h({active:"week"===k.value}),onClick:e[0]||(e[0]=a=>k.value="week")},{default:v(()=>[f("周")]),_:1},8,["class"]),r(t,{class:h({active:"month"===k.value}),onClick:e[1]||(e[1]=a=>k.value="month")},{default:v(()=>[f("月")]),_:1},8,["class"]),r(t,{class:h({active:"year"===k.value}),onClick:e[2]||(e[2]=a=>k.value="year")},{default:v(()=>[f("年")]),_:1},8,["class"])]),_:1})]),_:1}),r(l,{class:"date-range"},{default:v(()=>[f(_(C.value),1)]),_:1}),r(l,{class:"chart-card"},{default:v(()=>[r(s,{"canvas-id":S,id:S,class:"chart-canvas",style:y("width:680rpx;height:260rpx;")},null,8,["style"]),r(l,{class:"x-axis"},{default:v(()=>[(o(!0),m(p,null,g(b.value,a=>(o(),d(t,{key:a.date},{default:v(()=>[f(_(a.date),1)]),_:2},1024))),128))]),_:1})]),_:1}),r(l,{class:"list-card"},{default:v(()=>[r(l,{class:"list-title"},{default:v(()=>[f("参观人数列表")]),_:1}),(o(!0),m(p,null,g(b.value,a=>(o(),d(l,{key:a.date,class:"row"},{default:v(()=>{var e;return[r(t,{class:"d"},{default:v(()=>[f(_(a.date),1)]),_:2},1024),r(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};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
.page[data-v-54e24550]{min-height:100vh;background:#f3f5f7;padding-top:env(safe-area-inset-top);padding-bottom:calc(.75rem + env(safe-area-inset-bottom));box-sizing:border-box}.loading[data-v-54e24550]{text-align:center;padding:1.25rem;color:#86909c;font-size:.8125rem;line-height:1.5}.addr-row[data-v-54e24550]{margin-top:.375rem;display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.addr-main[data-v-54e24550]{flex:1;min-width:0}.addr-label[data-v-54e24550]{display:block;font-size:.8125rem;color:#86909c;line-height:1.5;margin-bottom:.1875rem}.addr-text[data-v-54e24550]{font-size:.8125rem;color:#1d2129;line-height:1.5}.nav-btn[data-v-54e24550]{flex-shrink:0;padding:.25rem .5625rem;border-radius:.25rem;background:#05c9ac;color:#fff;font-size:.6875rem;font-weight:400;line-height:1.35}.card[data-v-54e24550]{background:#fff;border-radius:.4375rem;padding:.5625rem;margin:.4375rem .5rem 0;box-sizing:border-box}.title[data-v-54e24550]{font-size:1rem;color:#1d2129;font-weight:400;line-height:1.35}.tags[data-v-54e24550]{margin-top:.375rem;display:flex;flex-wrap:wrap;gap:.25rem}.tag[data-v-54e24550]{font-size:.625rem;line-height:.875rem;color:#05c9ac;background:rgba(5,201,172,.12);padding:.125rem .3125rem;border-radius:.1875rem}.sec-label[data-v-54e24550]{margin-top:.5625rem;font-size:.9375rem;font-weight:400;color:#1d2129;line-height:1.35}.sec-label[data-v-54e24550]:first-of-type{margin-top:.5rem}.meta[data-v-54e24550]{margin-top:.25rem;font-size:.8125rem;color:#4e5969;line-height:1.5}.sub-title[data-v-54e24550]{font-size:.9375rem;font-weight:400;color:#1d2129;line-height:1.35;margin-bottom:.375rem}.ticket[data-v-54e24550]{border-left:.25rem solid #05c9ac;background:#fff;border-radius:.25rem;padding:.375rem;margin-bottom:.375rem;box-shadow:0 .03125rem .125rem rgba(0,0,0,.03)}.ticket-head[data-v-54e24550]{display:flex;justify-content:space-between;align-items:center;font-size:.8125rem;color:#4e5969;line-height:1.5}.copy[data-v-54e24550]{color:#05c9ac}.qr[data-v-54e24550]{width:9.375rem;height:9.375rem;margin:.375rem auto 0;display:block}.qr-name[data-v-54e24550]{text-align:center;margin-top:.25rem;font-size:.8125rem;color:#4e5969;line-height:1.5}.tip[data-v-54e24550]{margin-top:.25rem;text-align:center;font-size:.8125rem;color:#86909c;line-height:1.5}.action[data-v-54e24550]{margin:.625rem .5rem 0;display:flex;justify-content:flex-end}.btn[data-v-54e24550]{min-width:5.625rem;height:2rem;line-height:2rem;border-radius:.3125rem;border:none;background:#05c9ac;color:#fff;font-size:.8125rem;padding:0 .75rem}.btn[disabled][data-v-54e24550]{opacity:.5}

@ -1 +0,0 @@
.page[data-v-6ee0db02]{min-height:100vh;background:#f3f5f7;padding-top:env(safe-area-inset-top);padding-bottom:calc(.75rem + env(safe-area-inset-bottom));box-sizing:border-box}.loading[data-v-6ee0db02]{text-align:center;padding:1.25rem;color:#86909c;font-size:.8125rem;line-height:1.5}.addr-row[data-v-6ee0db02]{margin-top:.375rem;display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.addr-main[data-v-6ee0db02]{flex:1;min-width:0}.addr-label[data-v-6ee0db02]{display:block;font-size:.8125rem;color:#86909c;line-height:1.5;margin-bottom:.1875rem}.addr-text[data-v-6ee0db02]{font-size:.8125rem;color:#1d2129;line-height:1.5}.nav-btn[data-v-6ee0db02]{flex-shrink:0;padding:.25rem .5625rem;border-radius:.25rem;background:#05c9ac;color:#fff;font-size:.6875rem;font-weight:400;line-height:1.35}.card[data-v-6ee0db02]{background:#fff;border-radius:.4375rem;padding:.5625rem;margin:.4375rem .5rem 0;box-sizing:border-box}.title[data-v-6ee0db02]{font-size:1rem;color:#1d2129;font-weight:400;line-height:1.35}.tags[data-v-6ee0db02]{margin-top:.375rem;display:flex;flex-wrap:wrap;gap:.25rem}.tag[data-v-6ee0db02]{font-size:.625rem;line-height:.875rem;color:#05c9ac;background:rgba(5,201,172,.12);padding:.125rem .3125rem;border-radius:.1875rem}.sec-label[data-v-6ee0db02]{margin-top:.5625rem;font-size:.9375rem;font-weight:400;color:#1d2129;line-height:1.35}.sec-label[data-v-6ee0db02]:first-of-type{margin-top:.5rem}.meta[data-v-6ee0db02]{margin-top:.25rem;font-size:.8125rem;color:#4e5969;line-height:1.5}.sub-title[data-v-6ee0db02]{font-size:.9375rem;font-weight:400;color:#1d2129;line-height:1.35;margin-bottom:.375rem}.ticket[data-v-6ee0db02]{border-left:.25rem solid #05c9ac;background:#fff;border-radius:.25rem;padding:.375rem;margin-bottom:.375rem;box-shadow:0 .03125rem .125rem rgba(0,0,0,.03)}.ticket-head[data-v-6ee0db02]{display:flex;justify-content:space-between;align-items:center;font-size:.8125rem;color:#4e5969;line-height:1.5}.copy[data-v-6ee0db02]{color:#05c9ac}.qr[data-v-6ee0db02]{width:9.375rem;height:9.375rem;margin:.375rem auto 0;display:block}.qr-name[data-v-6ee0db02]{text-align:center;margin-top:.25rem;font-size:.8125rem;color:#4e5969;line-height:1.5}.tip[data-v-6ee0db02]{margin-top:.25rem;text-align:center;font-size:.8125rem;color:#86909c;line-height:1.5}.action[data-v-6ee0db02]{margin:.625rem .5rem 0;display:flex;justify-content:flex-end}.btn[data-v-6ee0db02]{min-width:5.625rem;height:2rem;line-height:2rem;border-radius:.3125rem;border:none;background:#05c9ac;color:#fff;font-size:.8125rem;padding:0 .75rem}.btn[disabled][data-v-6ee0db02]{opacity:.5}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1 +0,0 @@
function t(r){if(null==r)return[];if(Array.isArray(r)&&r.length)return r.map(t=>String(t).trim()).filter(t=>t.length>0);if("object"==typeof r&&!Array.isArray(r))return Object.values(r).map(t=>null==t?"":String(t).trim()).filter(t=>t.length>0);if("string"==typeof r){const n=r.trim();if(!n)return[];if(n.startsWith("[")||n.startsWith("{"))try{return t(JSON.parse(n))}catch{}return n.includes(",")||n.includes("")?n.split(/[,]/).map(t=>t.trim()).filter(t=>t.length>0):[n]}return[]}function r(r){if(!r)return[];const n=function(t){const r=new Set,n=[];for(const e of t)r.has(e)||(r.add(e),n.push(e));return n}(t(r.venue_types));return n.length?n:r.venue_type?[String(r.venue_type).trim()].filter(Boolean):[]}function n(t,r){let n=t.replace("#","").trim();if(3===n.length&&(n=n.split("").map(t=>t+t).join("")),6!==n.length)return`rgba(5, 201, 172, ${r})`;const e=parseInt(n,16);return`rgba(${e>>16&255},${e>>8&255},${255&e},${r})`}function e(t,r){const n=null==r?void 0:r.find(r=>r.value===t);return(null==n?void 0:n.color)||"#05c9ac"}function i(t){const r=function(t){let r=(t||"#05c9ac").trim();r.startsWith("#")||(r=`#${r}`);const n=r.match(/^#([0-9a-f]{3}|[0-9a-f]{6})$/i);if(!n)return"#05c9ac";let e=n[1];return 3===e.length&&(e=`${e[0]}${e[0]}${e[1]}${e[1]}${e[2]}${e[2]}`),`#${e.toLowerCase()}`}(t);return{color:r,backgroundColor:n(r,.14)}}export{r as a,e as c,i as v};

@ -0,0 +1 @@
function r(r,o){let t=r.replace("#","").trim();if(3===t.length&&(t=t.split("").map(r=>r+r).join("")),6!==t.length)return`rgba(5, 201, 172, ${o})`;const n=parseInt(t,16);return`rgba(${n>>16&255},${n>>8&255},${255&n},${o})`}function o(r){let o=(r||"#05c9ac").trim();o.startsWith("#")||(o=`#${o}`);const t=o.match(/^#([0-9a-f]{3}|[0-9a-f]{6})$/i);if(!t)return"#05c9ac";let n=t[1];return 3===n.length&&(n=`${n[0]}${n[0]}${n[1]}${n[1]}${n[2]}${n[2]}`),`#${n.toLowerCase()}`}function t(r,o){const t=null==o?void 0:o.find(o=>o.value===r);return(null==t?void 0:t.color)||"#05c9ac"}function n(t){const n=o(t);return{color:n,backgroundColor:r(n,.14)}}function c(t,n){const c=Array.isArray(n)?n:[];if(!c.length)return{color:"#2c2c2c",backgroundColor:"rgba(5, 201, 172, 0.14)"};const a=c[Math.max(0,Math.floor(Number(t))||0)%c.length],l=o(a.color&&String(a.color).trim()||"#05c9ac");return{color:l,backgroundColor:r(l,.14)}}const a=["#05c9ac","#0d9b8a","#126794","#1ec8ae","#0a826f","#2db5a2"];function l(t,n){const c=t&&String(t).trim()||"";if(!c)return{color:"#0a826f",backgroundColor:"rgba(5, 201, 172, 0.12)"};const l=Array.isArray(n)?n:[],e=l.findIndex(r=>r.value===c);if(e>=0){const t=l[e],n=t.color&&String(t.color).trim();if(n){const t=o(n);return{color:t,backgroundColor:r(t,.14)}}const c=o(a[e%a.length]);return{color:c,backgroundColor:r(c,.12)}}const u=o(a[function(r){let o=0;for(let t=0;t<r.length;t+=1)o=Math.imul(31,o)+r.charCodeAt(t)|0;return Math.abs(o)}(c)%a.length]);return{color:u,backgroundColor:r(u,.12)}}export{c as a,t as c,l as o,n as v};

@ -0,0 +1 @@
function t(r){if(null==r)return[];if(Array.isArray(r)&&r.length)return r.map(t=>String(t).trim()).filter(t=>t.length>0);if("object"==typeof r&&!Array.isArray(r))return Object.values(r).map(t=>null==t?"":String(t).trim()).filter(t=>t.length>0);if("string"==typeof r){const e=r.trim();if(!e)return[];if(e.startsWith("[")||e.startsWith("{"))try{return t(JSON.parse(e))}catch{}return e.includes(",")||e.includes("")?e.split(/[,]/).map(t=>t.trim()).filter(t=>t.length>0):[e]}return[]}function r(r){if(!r)return[];const e=function(t){const r=new Set,e=[];for(const n of t)r.has(n)||(r.add(n),e.push(n));return e}(t(r.venue_types));return e.length?e:r.venue_type?[String(r.venue_type).trim()].filter(Boolean):[]}export{r as v};

@ -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-CN5ORKLy.js"></script>
<script type="module" crossorigin src="/h5/assets/index-BQvUePVO.js"></script>
<link rel="stylesheet" crossorigin href="/h5/assets/index-QCOJZRcA.css">
</head>
<body>

@ -42,6 +42,12 @@ 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']);
/**
* 与「wx.config」一致GET/POST 均支持,参数 url=当前页完整 URL不含 hash
* H5 优先 POST body避免 query 过长被截断;生产若出现 404多为未部署本路由需发布 szkp-map-service 后执行 `php artisan route:clear`。
*/
Route::match(['get', 'post'], '/wechat/jssdk-config', [H5WechatController::class, 'jssdkSignature']);
Route::match(['get', 'post'], '/wechat/config', [H5WechatController::class, 'jssdkSignature']);
Route::middleware('auth:sanctum')->group(function () {
Route::get('/h5/me/profile', [H5ProfileController::class, 'show']);

Loading…
Cancel
Save