master
lion 3 weeks ago
parent e735df847b
commit f4d1b3ed8c

@ -54,20 +54,14 @@ class H5HomeController extends Controller
->where('is_active', true)
->pluck('item_remark', 'item_value');
// 地图场馆:一次性返回全部有效坐标点(体量约百级,无需分页
$mapVenues = Venue::query()
// 全部场馆列表(不过滤经纬度,用于列表展示
$allVenues = Venue::query()
->visibleOnH5()
->orderBy('sort')
->orderByDesc('id')
->get()
->map(function ($v) use ($venueTypeColors) {
$p = $v->toArray();
$lat = $p['lat'] ?? null;
$lng = $p['lng'] ?? null;
// 地图需要经纬度,没有则跳过
if ($lat === null || $lng === null || $lat === '' || $lng === '') {
return null;
}
$types = $p['venue_types'] ?? null;
$firstType = (is_array($types) && count($types)) ? (string) ($types[0] ?? '') : ($p['venue_type'] ?? '');
$raw = $venueTypeColors->get($firstType);
@ -88,8 +82,8 @@ class H5HomeController extends Controller
'sort' => (int) ($p['sort'] ?? 0),
'district' => $p['district'],
'address' => $p['address'],
'lat' => (float) $lat,
'lng' => (float) $lng,
'lat' => $p['lat'] ? (float) $p['lat'] : null,
'lng' => $p['lng'] ? (float) $p['lng'] : null,
'image' => $p['cover_image'],
'venue_type' => $p['venue_type'],
'venue_types' => is_array($types) ? array_values($types) : [],
@ -101,9 +95,13 @@ class H5HomeController extends Controller
'venue_type_color' => $color,
];
})
->filter()
->values();
// 地图场馆:只返回有经纬度的(用于地图标点)
$mapVenues = $allVenues->filter(function ($v) {
return $v['lat'] !== null && $v['lng'] !== null;
})->values();
$actRows = Activity::query()
->with('venue:id,name')
->with('activityDays')
@ -217,6 +215,7 @@ class H5HomeController extends Controller
'stats' => $stats,
'banners' => $banners,
'top_live_venues' => $topLiveVenues,
'all_venues' => $allVenues,
'map_venues' => $mapVenues,
'rankings' => $rankings,
'hot_activities' => $hotActivities,

@ -137,7 +137,8 @@ class VenueController extends Controller
}
if ($isIncludedInStats !== null && $isIncludedInStats !== '') {
$query->where('is_included_in_stats', (int) $isIncludedInStats === 1);
$isIncluded = in_array($isIncludedInStats, [1, '1', true, 'true'], true);
$query->where('is_included_in_stats', $isIncluded);
}
if ($auditStatus !== '') {

@ -279,9 +279,6 @@ class VenueImportService
$sort = $g(13) === '' ? 0 : (int) $g(13);
$district = trim($g(2));
if ($district === '高新区') {
$district = '虎丘区';
}
return [
'name' => $g(0),

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

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-d0076c97]{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-d0076c97]{padding:.5rem 1rem;box-sizing:border-box}.toolbar-row[data-v-d0076c97]{display:flex;flex-direction:row;align-items:center;gap:.375rem}.search-wrap[data-v-d0076c97]{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-tabs[data-v-d0076c97]{display:flex;flex-direction:row;align-items:center;gap:.5rem;margin-bottom:.5rem}.status-tab[data-v-d0076c97]{font-size:.8125rem;color:#86909c;padding:.25rem 0;position:relative;white-space:nowrap}.status-tab.active[data-v-d0076c97]{color:#05c9ac;font-weight:500}.status-tab.active[data-v-d0076c97]:after{content:"";position:absolute;bottom:0;left:0;right:0;height:.125rem;background:#05c9ac;border-radius:.0625rem}.search-icon-img[data-v-d0076c97]{width:.875rem;height:.875rem;margin-right:.375rem;flex-shrink:0}.search-input[data-v-d0076c97]{flex:1;min-width:0;font-size:.8125rem;color:#1d2129;height:2rem;line-height:2rem}.ph[data-v-d0076c97]{color:#c0c4cc}.list-inner[data-v-d0076c97]{padding:0 1rem;box-sizing:border-box}.item[data-v-d0076c97]{background:#fff;border-radius:.375rem;overflow:hidden;margin-bottom:.4375rem}.poster-wrap[data-v-d0076c97]{position:relative;width:100%;aspect-ratio:2 / 1;overflow:hidden}.poster[data-v-d0076c97]{position:absolute;left:0;top:0;width:100%;height:100%;display:block}.status[data-v-d0076c97]{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-d0076c97]{background:rgba(22,194,169,.92)}.status.st-not_started[data-v-d0076c97]{background:rgba(22,93,255,.92)}.status.st-ended[data-v-d0076c97]{background:rgba(134,144,156,.95)}.grab-badge[data-v-d0076c97]{position:absolute;z-index:2;right:.5rem;bottom:.5rem;font-size:.6875rem;color:#fff;background:linear-gradient(135deg,#ff8a4c,#ff6b35);padding:.125rem .375rem;border-radius:.25rem;line-height:1.3}.body[data-v-d0076c97]{padding:.5rem .5625rem .5625rem}.title[data-v-d0076c97]{font-size:.875rem;color:#1d2129;line-height:1.35}.act-tags[data-v-d0076c97]{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-d0076c97]{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-d0076c97]{margin-top:.25rem;font-size:.75rem;color:#86909c;line-height:1.5}.date-action-row[data-v-d0076c97]{margin-top:.3125rem;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.375rem;min-height:1.625rem}.date-inline[data-v-d0076c97]{flex:1;min-width:0;font-size:.75rem;color:#4e5969;line-height:1.5}.venue-action-row[data-v-d0076c97]{margin-top:.3125rem;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.375rem;min-height:1.625rem}.venue-inline[data-v-d0076c97]{flex:1;min-width:0;font-size:.75rem;color:#4e5969;line-height:1.5;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.btn[data-v-d0076c97]{flex-shrink:0;background:#05c9ac;color:#fff;font-size:.75rem;border-radius:.3125rem;padding:.3125rem .8125rem}.hint[data-v-d0076c97]{text-align:center;font-size:.8125rem;color:#86909c;padding:.5rem 0}.hint.muted[data-v-d0076c97]{color:#c0c4cc}

@ -0,0 +1 @@
$brand: #05c9ac; .page[data-v-e2293825]{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-e2293825]{padding:.5rem 1rem;box-sizing:border-box}.toolbar-row[data-v-e2293825]{display:flex;flex-direction:row;align-items:center;gap:.5rem}.search-wrap[data-v-e2293825]{flex-shrink:0;width:7.5rem;display:flex;flex-direction:row;align-items:center;background:#fff;border-radius:31.21875rem;padding:0 .5rem;height:1.75rem;box-sizing:border-box}.status-tabs[data-v-e2293825]{flex:1;display:flex;flex-direction:row;align-items:center;gap:.5rem;overflow-x:auto}.status-tab[data-v-e2293825]{font-size:.8125rem;color:#86909c;padding:.25rem 0;position:relative;white-space:nowrap}.status-tab.active[data-v-e2293825]{color:#05c9ac;font-weight:500}.status-tab.active[data-v-e2293825]:after{content:"";position:absolute;bottom:0;left:0;right:0;height:.125rem;background:#05c9ac;border-radius:.0625rem}.search-icon-img[data-v-e2293825]{width:.875rem;height:.875rem;margin-right:.375rem;flex-shrink:0}.search-input[data-v-e2293825]{flex:1;min-width:0;font-size:.8125rem;color:#1d2129;height:2rem;line-height:2rem}.ph[data-v-e2293825]{color:#c0c4cc}.list-inner[data-v-e2293825]{padding:0 1rem;box-sizing:border-box}.item[data-v-e2293825]{background:#fff;border-radius:.375rem;overflow:hidden;margin-bottom:.4375rem}.poster-wrap[data-v-e2293825]{position:relative;width:100%;aspect-ratio:2 / 1;overflow:hidden}.poster[data-v-e2293825]{position:absolute;left:0;top:0;width:100%;height:100%;display:block}.status[data-v-e2293825]{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-e2293825]{background:rgba(22,194,169,.92)}.status.st-not_started[data-v-e2293825]{background:rgba(22,93,255,.92)}.status.st-ended[data-v-e2293825]{background:rgba(134,144,156,.95)}.grab-badge[data-v-e2293825]{position:absolute;z-index:2;right:.5rem;bottom:.5rem;font-size:.6875rem;color:#fff;background:linear-gradient(135deg,#ff8a4c,#ff6b35);padding:.125rem .375rem;border-radius:.25rem;line-height:1.3}.body[data-v-e2293825]{padding:.5rem .5625rem .5625rem}.title[data-v-e2293825]{font-size:.875rem;color:#1d2129;line-height:1.35}.act-tags[data-v-e2293825]{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-e2293825]{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-e2293825]{margin-top:.25rem;font-size:.75rem;color:#86909c;line-height:1.5}.date-action-row[data-v-e2293825]{margin-top:.3125rem;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.375rem;min-height:1.625rem}.date-inline[data-v-e2293825]{flex:1;min-width:0;font-size:.75rem;color:#4e5969;line-height:1.5}.venue-action-row[data-v-e2293825]{margin-top:.3125rem;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.375rem;min-height:1.625rem}.venue-inline[data-v-e2293825]{flex:1;min-width:0;font-size:.75rem;color:#4e5969;line-height:1.5;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.btn[data-v-e2293825]{flex-shrink:0;background:#05c9ac;color:#fff;font-size:.75rem;border-radius:.3125rem;padding:.3125rem .8125rem}.hint[data-v-e2293825]{text-align:center;font-size:.8125rem;color:#86909c;padding:.5rem 0}.hint.muted[data-v-e2293825]{color:#c0c4cc}

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-CCfg2zYz.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-vWMsuv5c.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 +1 @@
import{d as a,e as s,o as e,O as l,P as t,j as u,k as r,m as o,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-CCfg2zYz.js";import{c as j}from"./content.enM9SF-c.js";import{P as w}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 j({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=o,j=v;return c(),u(t,{class:"page"},{default:r(()=>[n(t,{class:"toolbar"},{default:r(()=>[n(t,{class:"search-wrap"},{default:r(()=>[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:r(()=>[(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:r(()=>[n(t,{class:"tour-img-wrap"},{default:r(()=>[n(e,{class:"tour-img",src:a.cover_image||i(w),mode:"aspectFill"},null,8,["src"])]),_:2},1024),n(t,{class:"tour-body"},{default:r(()=>{var s;return[n(j,{class:"tour-title"},{default:r(()=>[y(h(a.name),1)]),_:2},1024),n(t,{class:"tour-stops-timeline"},{default:r(()=>[(c(!0),f(p,null,_(a.venue_names||[],(s,e)=>(c(),u(t,{key:"v-"+a.id+"-"+e,class:"tour-stop-row"},{default:r(()=>[n(t,{class:"tour-timeline-axis"},{default:r(()=>{var s;return[n(t,{class:"tour-dot-cell"},{default:r(()=>[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(j,{class:"tour-stop-name"},{default:r(()=>[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:r(()=>[(c(!0),f(p,null,_(a.tags,(s,e)=>(c(),u(j,{key:"t-"+a.id+"-"+e,class:"tour-tag"},{default:r(()=>[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:r(()=>[y("加载中…")]),_:1})):g("",!0),C.value||b.value.length?g("",!0):(c(),u(t,{key:1,class:"hint muted"},{default:r(()=>[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 r,m as o,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-vWMsuv5c.js";import{c as j}from"./content.DqghtGSR.js";import{P as w}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 j({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=o,j=v;return c(),u(t,{class:"page"},{default:r(()=>[n(t,{class:"toolbar"},{default:r(()=>[n(t,{class:"search-wrap"},{default:r(()=>[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:r(()=>[(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:r(()=>[n(t,{class:"tour-img-wrap"},{default:r(()=>[n(e,{class:"tour-img",src:a.cover_image||i(w),mode:"aspectFill"},null,8,["src"])]),_:2},1024),n(t,{class:"tour-body"},{default:r(()=>{var s;return[n(j,{class:"tour-title"},{default:r(()=>[y(h(a.name),1)]),_:2},1024),n(t,{class:"tour-stops-timeline"},{default:r(()=>[(c(!0),f(p,null,_(a.venue_names||[],(s,e)=>(c(),u(t,{key:"v-"+a.id+"-"+e,class:"tour-stop-row"},{default:r(()=>[n(t,{class:"tour-timeline-axis"},{default:r(()=>{var s;return[n(t,{class:"tour-dot-cell"},{default:r(()=>[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(j,{class:"tour-stop-name"},{default:r(()=>[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:r(()=>[(c(!0),f(p,null,_(a.tags,(s,e)=>(c(),u(j,{key:"t-"+a.id+"-"+e,class:"tour-tag"},{default:r(()=>[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:r(()=>[y("加载中…")]),_:1})):g("",!0),C.value||b.value.length?g("",!0):(c(),u(t,{key:1,class:"hint muted"},{default:r(()=>[y("暂无研学路线")]),_:1}))]),_:1})]),_:1})}}}),[["__scopeId","data-v-cbf684f4"]]);export{C as default};

@ -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 r,n as o,p as c,D as i,v as d,x as f,t as p,K as _}from"./index-CCfg2zYz.js";import{g as v,l as m}from"./localProfile.ysXHnEWj.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=r,t=p;return o(),s(u,{class:"page"},{default:n(()=>[c(u,{class:"header"},{default:n(()=>[c(u,{class:"profile",onClick:j},{default:n(()=>[g.value?(o(),s(e,{key:0,class:"avatar",src:g.value,mode:"aspectFill"},null,8,["src"])):(o(),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 r,n as o,p as c,D as i,v as d,x as f,t as p,K as _}from"./index-vWMsuv5c.js";import{g as v,l as m}from"./localProfile.Yi6askBk.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=r,t=p;return o(),s(u,{class:"page"},{default:n(()=>[c(u,{class:"header"},{default:n(()=>[c(u,{class:"profile",onClick:j},{default:n(()=>[g.value?(o(),s(e,{key:0,class:"avatar",src:g.value,mode:"aspectFill"},null,8,["src"])):(o(),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 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-CCfg2zYz.js";import{g,l as w,u as V,s as x}from"./localProfile.ysXHnEWj.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 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-vWMsuv5c.js";import{g,l as w,u as V,s as x}from"./localProfile.Yi6askBk.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};

@ -1 +1 @@
import{d as a,e as s,o as t,O as l,P as e,j as c,k as i,s as n,m as u,n as o,p as r,t as d,v as f,y as _,F as m,z as v,C as p,x as y,D as k,E as g,J as h,K as C}from"./index-CCfg2zYz.js";import{a as b,g as j}from"./content.enM9SF-c.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([b({only_included_in_stats:!0}),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){n({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=u,l=d,e=k;return o(),c(t,{class:"page"},{default:i(()=>[r(t,{class:"section-title"},{default:i(()=>[r(t,{class:"section-title-left"},{default:i(()=>[r(t,{class:"bar"}),r(l,{class:"title"},{default:i(()=>[f("今日客流量统计")]),_:1})]),_:1}),r(l,{class:"title-hint"},{default:i(()=>[f("纳入市科协人数统计系统场馆")]),_:1})]),_:1}),x.value&&!P.value.length?(o(),c(t,{key:0,class:"state"},{default:i(()=>[f("加载中…")]),_:1})):P.value.length?(o(),c(t,{key:2,class:"list"},{default:i(()=>[(o(!0),_(m,null,v(P.value,(a,s)=>(o(),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:i(()=>[r(t,{class:"rank-wrap"},{default:i(()=>[s<3?(o(),c(t,{key:0,class:p(["medal","m"+(s+1)])},{default:i(()=>[f(y(s+1),1)]),_:2},1032,["class"])):(o(),c(l,{key:1,class:"rank-num"},{default:i(()=>[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:i(()=>[r(l,{class:"name"},{default:i(()=>[f(y(a.name),1)]),_:2},1024),a.district?(o(),c(l,{key:0,class:"district"},{default:i(()=>[f(y(a.district),1)]),_:2},1024)):h("",!0)]),_:2},1024),r(t,{class:"count-block"},{default:i(()=>[r(l,{class:"count-label"},{default:i(()=>[f("实时人数")]),_:1}),r(t,{class:"count-row"},{default:i(()=>[r(l,{class:"count"},{default:i(()=>[f(y(a.liveCount.toLocaleString()),1)]),_:2},1024),r(l,{class:"unit"},{default:i(()=>[f("人")]),_:1})]),_:2},1024)]),_:2},1024)]),_:2},1032,["class","onClick"]))),128))]),_:1})):(o(),c(t,{key:1,class:"state muted"},{default:i(()=>[f("暂无已上架场馆")]),_:1})),r(t,{class:"bottom-safe"})]),_:1})}}}),[["__scopeId","data-v-923f27fc"]]);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 i,s as n,m as u,n as o,p as r,t as d,v as f,y as _,F as m,z as v,C as p,x as y,D as k,E as g,J as h,K as C}from"./index-vWMsuv5c.js";import{a as b,g as j}from"./content.DqghtGSR.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([b({only_included_in_stats:!0}),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){n({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=u,l=d,e=k;return o(),c(t,{class:"page"},{default:i(()=>[r(t,{class:"section-title"},{default:i(()=>[r(t,{class:"section-title-left"},{default:i(()=>[r(t,{class:"bar"}),r(l,{class:"title"},{default:i(()=>[f("今日客流量统计")]),_:1})]),_:1}),r(l,{class:"title-hint"},{default:i(()=>[f("纳入市科协人数统计系统场馆")]),_:1})]),_:1}),x.value&&!P.value.length?(o(),c(t,{key:0,class:"state"},{default:i(()=>[f("加载中…")]),_:1})):P.value.length?(o(),c(t,{key:2,class:"list"},{default:i(()=>[(o(!0),_(m,null,v(P.value,(a,s)=>(o(),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:i(()=>[r(t,{class:"rank-wrap"},{default:i(()=>[s<3?(o(),c(t,{key:0,class:p(["medal","m"+(s+1)])},{default:i(()=>[f(y(s+1),1)]),_:2},1032,["class"])):(o(),c(l,{key:1,class:"rank-num"},{default:i(()=>[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:i(()=>[r(l,{class:"name"},{default:i(()=>[f(y(a.name),1)]),_:2},1024),a.district?(o(),c(l,{key:0,class:"district"},{default:i(()=>[f(y(a.district),1)]),_:2},1024)):h("",!0)]),_:2},1024),r(t,{class:"count-block"},{default:i(()=>[r(l,{class:"count-label"},{default:i(()=>[f("实时人数")]),_:1}),r(t,{class:"count-row"},{default:i(()=>[r(l,{class:"count"},{default:i(()=>[f(y(a.liveCount.toLocaleString()),1)]),_:2},1024),r(l,{class:"unit"},{default:i(()=>[f("人")]),_:1})]),_:2},1024)]),_:2},1024)]),_:2},1032,["class","onClick"]))),128))]),_:1})):(o(),c(t,{key:1,class:"state muted"},{default:i(()=>[f("暂无已上架场馆")]),_:1})),r(t,{class:"bottom-safe"})]),_:1})}}}),[["__scopeId","data-v-923f27fc"]]);export{P 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,m as n,n as r,p as i,t as o,v as f,C as h,x as _,a8 as x,H as y,y as p,F as m,z as g}from"./index-CCfg2zYz.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),p(m,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),p(m,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,m as n,n as r,p as i,t as o,v as f,C as h,x as _,a8 as x,H as y,y as p,F as m,z as g}from"./index-vWMsuv5c.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),p(m,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),p(m,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-CCfg2zYz.js"></script>
<script type="module" crossorigin src="/h5/assets/index-vWMsuv5c.js"></script>
<link rel="stylesheet" crossorigin href="/h5/assets/index-QCOJZRcA.css">
</head>
<body>

Loading…
Cancel
Save