master
lion 2 weeks ago
parent e3df6f5e32
commit d79d8164e7

@ -30,9 +30,9 @@ class BlacklistController extends Controller
$sub->selectRaw('1')
->from('blacklists as b')
->join('reservations as r_bl', function ($j) {
$j->on('r_bl.visitor_phone', '=', 'b.visitor_phone')
->whereColumn('r_bl.wechat_user_id', 'wu.id');
$j->on('r_bl.visitor_phone', '=', 'b.visitor_phone');
})
->whereRaw('r_bl.wechat_user_id = wu.id')
->whereNull('b.revoked_at');
if ($request->filled('venue_id')) {
$sub->where('b.venue_id', (int) $request->input('venue_id'));
@ -108,7 +108,7 @@ class BlacklistController extends Controller
'last_reserved_at' => $row->last_reserved_at,
'venues' => $currentVenues,
'blacklisted_venues' => $blacklistedVenues,
'disabled' => !$latest?->visitor_phone,
'disabled' => ! $latest?->visitor_phone,
];
}));
@ -167,7 +167,7 @@ class BlacklistController extends Controller
$venueRows = Reservation::query()
->join('venues', 'venues.id', '=', 'reservations.venue_id')
->whereIn('reservations.visitor_phone', $phones)
->when(!$user->isSuperAdmin(), fn ($q) => $q->whereIn('reservations.venue_id', $allowedVenueIds))
->when(! $user->isSuperAdmin(), fn ($q) => $q->whereIn('reservations.venue_id', $allowedVenueIds))
->selectRaw('reservations.visitor_phone, reservations.venue_id, venues.name')
->groupBy('reservations.visitor_phone', 'reservations.venue_id', 'venues.name')
->get();
@ -176,7 +176,7 @@ class BlacklistController extends Controller
->active()
->join('venues', 'venues.id', '=', 'blacklists.venue_id')
->whereIn('blacklists.visitor_phone', $phones)
->when(!$user->isSuperAdmin(), fn ($q) => $q->whereIn('blacklists.venue_id', $allowedVenueIds))
->when(! $user->isSuperAdmin(), fn ($q) => $q->whereIn('blacklists.venue_id', $allowedVenueIds))
->selectRaw('blacklists.visitor_phone, blacklists.venue_id, venues.name, blacklists.reason, blacklists.created_at as blacklisted_at, blacklists.revoked_at as unblacklisted_at')
->get();
@ -271,6 +271,7 @@ class BlacklistController extends Controller
->orWhere('visitor_name', 'like', "%{$keyword}%");
});
}
return response()->json($query->get());
}
@ -316,6 +317,7 @@ class BlacklistController extends Controller
'reason' => ['nullable', 'string', 'max:255'],
]);
$blacklist->fill($data)->save();
return response()->json($blacklist->fresh()->load('venue:id,name'));
}
@ -338,8 +340,9 @@ class BlacklistController extends Controller
if ($phone === '') {
continue;
}
if (!preg_match('/^1\d{10}$/', $phone)) {
if (! preg_match('/^1\d{10}$/', $phone)) {
$failed[] = ['phone' => $phone, 'reason' => '手机号格式不正确'];
continue;
}
$existing = Blacklist::query()
@ -392,9 +395,9 @@ class BlacklistController extends Controller
}
/**
* @param Collection<int, string> $phones
* @param Collection<int, int> $venueIds
* @param Collection<int, int> $allowedVenueIds
* @param Collection<int, string> $phones
* @param Collection<int, int> $venueIds
* @param Collection<int, int> $allowedVenueIds
* @return array<string, mixed>
*/
private function applyBlacklistAction(
@ -423,13 +426,15 @@ class BlacklistController extends Controller
try {
foreach ($phones as $phone) {
foreach ($venueIds as $venueId) {
if ($allowedVenueIds->isNotEmpty() && !$allowedVenueIds->contains($venueId)) {
if ($allowedVenueIds->isNotEmpty() && ! $allowedVenueIds->contains($venueId)) {
$failed[] = ['phone' => $phone, 'venue_id' => $venueId, 'reason' => '无场馆权限'];
continue;
}
$key = $phone.'#'.$venueId;
if (!isset($pairSet[$key])) {
if (! isset($pairSet[$key])) {
$failed[] = ['phone' => $phone, 'venue_id' => $venueId, 'reason' => '用户未预约该场馆'];
continue;
}

@ -126,6 +126,57 @@ class DashboardController extends Controller
];
})->values()->all();
$pendingAudits = null;
if ($user->isSuperAdmin()) {
$venuePendingCount = (int) Venue::query()->where('audit_status', Venue::AUDIT_PENDING)->count();
$activityPendingCount = (int) Activity::query()
->whereNull('deleted_at')
->where('audit_status', Activity::AUDIT_PENDING)
->count();
$venueItems = Venue::query()
->where('audit_status', Venue::AUDIT_PENDING)
->orderByDesc('updated_at')
->limit(8)
->get(['id', 'name', 'updated_at'])
->map(fn (Venue $v) => [
'id' => $v->id,
'name' => $v->name,
'updated_at' => $v->updated_at,
])
->values()
->all();
$activityItems = Activity::query()
->whereNull('deleted_at')
->where('audit_status', Activity::AUDIT_PENDING)
->with(['venue:id,name'])
->orderByDesc('updated_at')
->limit(8)
->get(['id', 'title', 'venue_id', 'updated_at'])
->map(function (Activity $a) {
return [
'id' => $a->id,
'title' => $a->title,
'venue_name' => (string) ($a->venue?->name ?? ''),
'updated_at' => $a->updated_at,
];
})
->values()
->all();
$pendingAudits = [
'venues' => [
'count' => $venuePendingCount,
'items' => $venueItems,
],
'activities' => [
'count' => $activityPendingCount,
'items' => $activityItems,
],
];
}
return response()->json([
'scope' => [
'role' => $user->role,
@ -138,6 +189,7 @@ class DashboardController extends Controller
'user_count' => (int) $userCount,
'blacklisted_unique' => (int) $blacklistedUnique,
],
'pending_audits' => $pendingAudits,
'activity_stats' => [
'total_view_count' => $totalViews,
],

@ -254,6 +254,7 @@ class VenueController extends Controller
public function index(Request $request): JsonResponse
{
$user = $request->user();
abort_unless($user, 403, '无权限');
$keyword = trim((string) $request->string('keyword'));
$district = trim((string) $request->string('district'));
$venueType = trim((string) $request->string('venue_type'));
@ -457,6 +458,8 @@ class VenueController extends Controller
private function ensureVenuePermission(Request $request, int $venueId): void
{
$user = $request->user();
abort_unless($user, 403, '无权限');
if ($user->isSuperAdmin()) {
return;
}

File diff suppressed because one or more lines are too long

@ -1 +0,0 @@
.activity-address-coord-row[data-v-93c1b4e3]{flex-wrap:wrap;align-items:center;gap:12px;width:100%;display:flex}.activity-address-coord-row__address[data-v-93c1b4e3]{flex:45%;min-width:320px;max-width:100%}.activity-address-coord-row__lng[data-v-93c1b4e3],.activity-address-coord-row__lat[data-v-93c1b4e3]{flex:180px;width:200px;min-width:180px}.activity-address-coord-row__map[data-v-93c1b4e3]{flex-shrink:0}.activity-cover-carousel-wrap[data-v-93c1b4e3]{flex-wrap:wrap;align-items:flex-start;gap:20px;width:100%;display:flex}.activity-cover-carousel-row__col[data-v-93c1b4e3]{flex:320px;min-width:min(100%,320px)}.activity-cover-carousel-row__sub[data-v-93c1b4e3]{color:var(--color-text-1);margin-bottom:8px;font-weight:500}.activity-cover-thumb[data-v-93c1b4e3]{object-fit:cover;cursor:zoom-in;border:1px solid #e5e6eb;border-radius:4px;width:120px;height:70px}.activity-gallery-grid[data-v-93c1b4e3]{flex-wrap:wrap;align-items:flex-start;gap:12px;width:100%;display:flex}.activity-gallery-item[data-v-93c1b4e3]{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.activity-gallery-thumb[data-v-93c1b4e3]{object-fit:cover;cursor:zoom-in;border:1px solid #e5e6eb;border-radius:4px;width:120px;height:70px}.activity-gallery-thumb--video[data-v-93c1b4e3]{display:block}.activity-form-tags[data-v-93c1b4e3]{max-width:520px}.activity-form-tags__line[data-v-93c1b4e3]{flex-flow:row;align-items:center;gap:8px;width:100%;display:flex}.activity-form-tags__input[data-v-93c1b4e3]{flex:auto;min-width:0}.activity-form-tags__input[data-v-93c1b4e3] .arco-input-wrapper{width:100%}.activity-form-tags__save[data-v-93c1b4e3]{flex-shrink:0}.activity-form-tags__chips[data-v-93c1b4e3]{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.activity-form-tags__empty[data-v-93c1b4e3]{color:#86909c;font-size:12px}

@ -0,0 +1 @@
.activity-address-coord-row[data-v-6d92b548]{flex-wrap:wrap;align-items:center;gap:12px;width:100%;display:flex}.activity-address-coord-row__address[data-v-6d92b548]{flex:45%;min-width:320px;max-width:100%}.activity-address-coord-row__lng[data-v-6d92b548],.activity-address-coord-row__lat[data-v-6d92b548]{flex:180px;width:200px;min-width:180px}.activity-address-coord-row__map[data-v-6d92b548]{flex-shrink:0}.activity-cover-carousel-wrap[data-v-6d92b548]{flex-wrap:wrap;align-items:flex-start;gap:20px;width:100%;display:flex}.activity-cover-carousel-row__col[data-v-6d92b548]{flex:320px;min-width:min(100%,320px)}.activity-cover-carousel-row__sub[data-v-6d92b548]{color:var(--color-text-1);margin-bottom:8px;font-weight:500}.activity-cover-thumb[data-v-6d92b548]{object-fit:cover;cursor:zoom-in;border:1px solid #e5e6eb;border-radius:4px;width:120px;height:70px}.activity-gallery-grid[data-v-6d92b548]{flex-wrap:wrap;align-items:flex-start;gap:12px;width:100%;display:flex}.activity-gallery-item[data-v-6d92b548]{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.activity-gallery-thumb[data-v-6d92b548]{object-fit:cover;cursor:zoom-in;border:1px solid #e5e6eb;border-radius:4px;width:120px;height:70px}.activity-gallery-thumb--video[data-v-6d92b548]{display:block}.activity-form-tags[data-v-6d92b548]{max-width:520px}.activity-form-tags__line[data-v-6d92b548]{flex-flow:row;align-items:center;gap:8px;width:100%;display:flex}.activity-form-tags__input[data-v-6d92b548]{flex:auto;min-width:0}.activity-form-tags__input[data-v-6d92b548] .arco-input-wrapper{width:100%}.activity-form-tags__save[data-v-6d92b548]{flex-shrink:0}.activity-form-tags__chips[data-v-6d92b548]{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.activity-form-tags__empty[data-v-6d92b548]{color:#86909c;font-size:12px}

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{I as e,d as t,y as n}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{t as r}from"./PagePlaceholder-C01qW8FK.js";var i=n({__name:`Alerts`,setup(n){return(n,i)=>(e(),t(r,{title:`客流监控 / 异常告警`}))}});export{i as default};
import{I as e,d as t,y as n}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{t as r}from"./PagePlaceholder-Cy4-OO0C.js";var i=n({__name:`Alerts`,setup(n){return(n,i)=>(e(),t(r,{title:`客流监控 / 异常告警`}))}});export{i as default};

@ -0,0 +1 @@
import{n as e}from"./axios-CiYFffbI.js";import{I as t,N as n,V as r,Y as i,_ as a,d as o,it as s,kt as c,nt as l,u,ut as d,v as f,y as p}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{n as m}from"./http-LCi9aT1G.js";import{a as h}from"./index-BI6LL64u.js";import{t as g}from"./datetime-BxHRnH7A.js";import{t as _}from"./listTableRowIndex-Bl-nc9Qt.js";var v={class:`audit-api-endpoint`},y=1280,b=h(p({__name:`AuditLogs`,setup(p){let h=s(!1),b=s([]),x=l({current:1,pageSize:20,total:0}),S=l({keyword:``,method:`all`,status_code:void 0,dateRange:[]});async function C(){h.value=!0;try{let{data:e}=await m.get(`/audit-logs`,{params:{keyword:S.keyword||void 0,method:S.method,status_code:S.status_code||void 0,start_date:S.dateRange?.[0]||void 0,end_date:S.dateRange?.[1]||void 0,page:x.current,page_size:x.pageSize}});b.value=e.data,x.total=e.total}catch(t){e.error(t?.response?.data?.message??`加载操作日志失败`)}finally{h.value=!1}}function w(){x.current=1,C()}function T(e){x.current=e,C()}function E(e){return e.operation_summary&&String(e.operation_summary).trim()!==``?e.operation_summary:e.action&&String(e.action).trim()!==``?e.action:``}function D(e){let t=(e.method||``).toUpperCase()||``,n=(e.path||``).trim();return!n||n===`/`?t+``:(n.startsWith(`/`)||(n=`/`+n),`${t} ${n}`)}return n(C),(e,n)=>{let s=r(`a-alert`),l=r(`a-input`),p=r(`a-option`),m=r(`a-select`),C=r(`a-input-number`),O=r(`a-range-picker`),k=r(`a-button`),A=r(`a-space`),j=r(`a-table-column`),M=r(`a-table`),N=r(`a-card`);return t(),o(N,{title:`用户与权限 / 操作日志`},{default:i(()=>[f(s,{type:`info`,style:{"margin-bottom":`12px`},closable:``},{default:i(()=>[...n[4]||=[a(` 此处为「操作日志」(写操作审计)。系统设置里的「系统日志」页面用于查看服务器 Laravel 日志文件,不是本页。列表不包含 GET 类查询请求。 `,-1)]]),_:1}),f(A,{wrap:``,size:12,style:{"margin-bottom":`12px`}},{default:i(()=>[f(l,{modelValue:S.keyword,"onUpdate:modelValue":n[0]||=e=>S.keyword=e,placeholder:`操作人 / 操作项`,"allow-clear":``,style:{width:`240px`}},null,8,[`modelValue`]),f(m,{modelValue:S.method,"onUpdate:modelValue":n[1]||=e=>S.method=e,style:{width:`120px`}},{default:i(()=>[f(p,{value:`all`},{default:i(()=>[...n[5]||=[a(`全部方法`,-1)]]),_:1}),f(p,{value:`POST`},{default:i(()=>[...n[6]||=[a(`POST`,-1)]]),_:1}),f(p,{value:`PUT`},{default:i(()=>[...n[7]||=[a(`PUT`,-1)]]),_:1}),f(p,{value:`PATCH`},{default:i(()=>[...n[8]||=[a(`PATCH`,-1)]]),_:1}),f(p,{value:`DELETE`},{default:i(()=>[...n[9]||=[a(`DELETE`,-1)]]),_:1})]),_:1},8,[`modelValue`]),f(C,{modelValue:S.status_code,"onUpdate:modelValue":n[2]||=e=>S.status_code=e,min:100,max:599,placeholder:`状态码`,style:{width:`120px`}},null,8,[`modelValue`]),f(O,{modelValue:S.dateRange,"onUpdate:modelValue":n[3]||=e=>S.dateRange=e,style:{width:`260px`}},null,8,[`modelValue`]),f(k,{type:`primary`,onClick:w},{default:i(()=>[...n[10]||=[a(`查询`,-1)]]),_:1})]),_:1}),f(M,{class:`list-data-table`,scroll:{x:y},data:b.value,loading:h.value,"row-key":`id`,pagination:{current:x.current,pageSize:x.pageSize,total:x.total,showTotal:!0},onPageChange:T},{columns:i(()=>[f(j,{title:``,width:52,ellipsis:!0,tooltip:!0},{cell:i(({rowIndex:e})=>[a(c(d(_)(e,x.current,x.pageSize)),1)]),_:1}),f(j,{title:`操作人`,"data-index":`username`,width:140,ellipsis:!0,tooltip:!0},{cell:i(({record:e})=>[a(c(e.username||``),1)]),_:1}),f(j,{title:`操作时间`,width:178},{cell:i(({record:e})=>[a(c(d(g)(e.created_at)),1)]),_:1}),f(j,{title:`接口`,width:320,ellipsis:!0,tooltip:!0},{cell:i(({record:e})=>[u(`span`,v,c(D(e)),1)]),_:1}),f(j,{title:`操作项`,"min-width":320,ellipsis:!0,tooltip:!0},{cell:i(({record:e})=>[a(c(E(e)),1)]),_:1})]),_:1},8,[`scroll`,`data`,`loading`,`pagination`])]),_:1})}}}),[[`__scopeId`,`data-v-f4d2ff07`]]);export{b as default};

@ -1 +0,0 @@
import{I as e,N as t,V as n,Y as r,_ as i,d as a,it as o,kt as s,nt as c,u as l,ut as u,v as d,y as f}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{t as p}from"./message-Dh9377vh.js";import{n as m}from"./http-BWP--XXK.js";import{a as h}from"./index-D-AZ5ijJ.js";import{t as g}from"./datetime-CjmbUMhc.js";import{t as _}from"./listTableRowIndex-ekx2Z6yT.js";var v={class:`audit-api-endpoint`},y=1280,b=h(f({__name:`AuditLogs`,setup(f){let h=o(!1),b=o([]),x=c({current:1,pageSize:20,total:0}),S=c({keyword:``,method:`all`,status_code:void 0,dateRange:[]});async function C(){h.value=!0;try{let{data:e}=await m.get(`/audit-logs`,{params:{keyword:S.keyword||void 0,method:S.method,status_code:S.status_code||void 0,start_date:S.dateRange?.[0]||void 0,end_date:S.dateRange?.[1]||void 0,page:x.current,page_size:x.pageSize}});b.value=e.data,x.total=e.total}catch(e){p.error(e?.response?.data?.message??`加载操作日志失败`)}finally{h.value=!1}}function w(){x.current=1,C()}function T(e){x.current=e,C()}function E(e){return e.operation_summary&&String(e.operation_summary).trim()!==``?e.operation_summary:e.action&&String(e.action).trim()!==``?e.action:``}function D(e){let t=(e.method||``).toUpperCase()||``,n=(e.path||``).trim();return!n||n===`/`?t+``:(n.startsWith(`/`)||(n=`/`+n),`${t} ${n}`)}return t(C),(t,o)=>{let c=n(`a-alert`),f=n(`a-input`),p=n(`a-option`),m=n(`a-select`),C=n(`a-input-number`),O=n(`a-range-picker`),k=n(`a-button`),A=n(`a-space`),j=n(`a-table-column`),M=n(`a-table`),N=n(`a-card`);return e(),a(N,{title:`用户与权限 / 操作日志`},{default:r(()=>[d(c,{type:`info`,style:{"margin-bottom":`12px`},closable:``},{default:r(()=>[...o[4]||=[i(` 此处为「操作日志」(写操作审计)。系统设置里的「系统日志」页面用于查看服务器 Laravel 日志文件,不是本页。列表不包含 GET 类查询请求。 `,-1)]]),_:1}),d(A,{wrap:``,size:12,style:{"margin-bottom":`12px`}},{default:r(()=>[d(f,{modelValue:S.keyword,"onUpdate:modelValue":o[0]||=e=>S.keyword=e,placeholder:`操作人 / 操作项`,"allow-clear":``,style:{width:`240px`}},null,8,[`modelValue`]),d(m,{modelValue:S.method,"onUpdate:modelValue":o[1]||=e=>S.method=e,style:{width:`120px`}},{default:r(()=>[d(p,{value:`all`},{default:r(()=>[...o[5]||=[i(`全部方法`,-1)]]),_:1}),d(p,{value:`POST`},{default:r(()=>[...o[6]||=[i(`POST`,-1)]]),_:1}),d(p,{value:`PUT`},{default:r(()=>[...o[7]||=[i(`PUT`,-1)]]),_:1}),d(p,{value:`PATCH`},{default:r(()=>[...o[8]||=[i(`PATCH`,-1)]]),_:1}),d(p,{value:`DELETE`},{default:r(()=>[...o[9]||=[i(`DELETE`,-1)]]),_:1})]),_:1},8,[`modelValue`]),d(C,{modelValue:S.status_code,"onUpdate:modelValue":o[2]||=e=>S.status_code=e,min:100,max:599,placeholder:`状态码`,style:{width:`120px`}},null,8,[`modelValue`]),d(O,{modelValue:S.dateRange,"onUpdate:modelValue":o[3]||=e=>S.dateRange=e,style:{width:`260px`}},null,8,[`modelValue`]),d(k,{type:`primary`,onClick:w},{default:r(()=>[...o[10]||=[i(`查询`,-1)]]),_:1})]),_:1}),d(M,{class:`list-data-table`,scroll:{x:y},data:b.value,loading:h.value,"row-key":`id`,pagination:{current:x.current,pageSize:x.pageSize,total:x.total,showTotal:!0},onPageChange:T},{columns:r(()=>[d(j,{title:``,width:52,ellipsis:!0,tooltip:!0},{cell:r(({rowIndex:e})=>[i(s(u(_)(e,x.current,x.pageSize)),1)]),_:1}),d(j,{title:`操作人`,"data-index":`username`,width:140,ellipsis:!0,tooltip:!0},{cell:r(({record:e})=>[i(s(e.username||``),1)]),_:1}),d(j,{title:`操作时间`,width:178},{cell:r(({record:e})=>[i(s(u(g)(e.created_at)),1)]),_:1}),d(j,{title:`接口`,width:320,ellipsis:!0,tooltip:!0},{cell:r(({record:e})=>[l(`span`,v,s(D(e)),1)]),_:1}),d(j,{title:`操作项`,"min-width":320,ellipsis:!0,tooltip:!0},{cell:r(({record:e})=>[i(s(E(e)),1)]),_:1})]),_:1},8,[`scroll`,`data`,`loading`,`pagination`])]),_:1})}}}),[[`__scopeId`,`data-v-f4d2ff07`]]);export{b 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{I as e,d as t,y as n}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{t as r}from"./PagePlaceholder-C01qW8FK.js";var i=n({__name:`Categories`,setup(n){return(n,i)=>(e(),t(r,{title:`数据统计 / 类别分析`}))}});export{i as default};
import{I as e,d as t,y as n}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{t as r}from"./PagePlaceholder-Cy4-OO0C.js";var i=n({__name:`Categories`,setup(n){return(n,i)=>(e(),t(r,{title:`数据统计 / 类别分析`}))}});export{i as default};

File diff suppressed because one or more lines are too long

@ -1 +0,0 @@
.dashboard-wrap[data-v-c4ff865f]{gap:14px;display:grid}.stats-cards-flow[data-v-c4ff865f]{grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:10px;width:100%;display:grid}.stats-cards-flow--tg[data-v-c4ff865f]{grid-template-columns:repeat(auto-fit,minmax(124px,1fr));gap:8px;margin-bottom:14px}.stat-card-mini[data-v-c4ff865f]{background:linear-gradient(#fff 0%,#f7faff 100%);border:1px solid #e8edf5;border-radius:10px;min-height:62px;padding:8px 10px;box-shadow:0 2px 8px #0f172a0f}.stat-card-mini--accent[data-v-c4ff865f]{background:linear-gradient(#fff 0%,#f0f6ff 100%);border-color:#c8ddff}.stat-card-mini--tg[data-v-c4ff865f]{background:#fafbfd;border:1px solid #e8ecf2;border-radius:10px;box-shadow:0 2px 8px #0f172a0d}.stat-card-mini__title[data-v-c4ff865f]{color:#4e5969;word-break:break-all;font-size:14px;line-height:1.25}.stat-card-mini__subhint[data-v-c4ff865f]{color:#86909c;margin-top:6px;font-size:10px;line-height:1.35}.stat-card-mini__value[data-v-c4ff865f]{color:#165dff;margin-top:6px;font-size:20px;font-weight:700;line-height:1.1}.stat-card-mini__value--sm[data-v-c4ff865f]{color:#1d2129;font-size:15px;font-weight:600}.stat-card-mini__value--green[data-v-c4ff865f]{color:#00b42a}.stat-card-mini__value--yellow[data-v-c4ff865f]{color:#d89614}.stat-card-mini__value--orange[data-v-c4ff865f]{color:#f77234}.stat-card-mini__value--rate[data-v-c4ff865f]{color:#1d2129;font-size:18px}.stat-card-mini__suffix[data-v-c4ff865f]{color:#86909c;margin-left:2px;font-size:12px;font-weight:500}.stat-card-mini__unit[data-v-c4ff865f]{color:#86909c;margin-left:2px;font-size:11px;font-weight:500}.stat-card-mini--tg-blue .stat-card-mini__value[data-v-c4ff865f]{color:#165dff}.stat-card-mini--tg-green .stat-card-mini__value[data-v-c4ff865f]{color:#00b42a}.stat-card-mini--tg-gold .stat-card-mini__value[data-v-c4ff865f]{color:#d89614}.stat-card-mini--tg-rose .stat-card-mini__value[data-v-c4ff865f]{color:#f53f3f}.activity-stats-table[data-v-c4ff865f]{margin-top:4px}.panel-card[data-v-c4ff865f],.query-card[data-v-c4ff865f]{background:linear-gradient(#fff 0%,#f9fbff 100%);border-radius:12px;box-shadow:0 4px 14px #0f172a14}.panel-hint[data-v-c4ff865f]{color:#86909c;text-align:right;max-width:320px;font-size:12px}.tg-title-row[data-v-c4ff865f]{align-items:center;gap:10px;display:inline-flex}.ticket-grab-panel .tg-subtitle[data-v-c4ff865f]{color:#4e5969;margin-bottom:14px;font-size:13px}.tg-three-col[data-v-c4ff865f]{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}.tg-box[data-v-c4ff865f]{background:#fcfdff;border:1px dashed #c9cdd4;border-radius:10px;min-height:120px;padding:12px 14px}.tg-box-title[data-v-c4ff865f]{color:#1d2129;margin-bottom:8px;font-weight:600}.tg-highlight-line[data-v-c4ff865f],.tg-list-line[data-v-c4ff865f]{color:#1d2129;margin-bottom:4px;font-size:13px;line-height:1.6}.tg-muted[data-v-c4ff865f]{color:#86909c;font-size:13px}.inner-panel[data-v-c4ff865f]{box-shadow:none;background:0 0;margin-bottom:12px}.inner-panel[data-v-c4ff865f] .arco-card-header{padding-left:0}.inner-panel[data-v-c4ff865f] .arco-card-body{padding-left:0;padding-right:0}.verify-cell[data-v-c4ff865f]{color:#1d2129;white-space:nowrap;font-size:12px;line-height:1.35}.verify-cell__pct[data-v-c4ff865f]{color:#86909c;font-size:11px}.daily-verify-panel[data-v-c4ff865f] .arco-card-header{justify-content:space-between;align-items:center}.daily-verify-panel[data-v-c4ff865f] .arco-card-header-title{text-overflow:clip;white-space:normal;flex:1;align-items:center;min-width:0;display:flex;overflow:visible}.daily-verify-header-row[data-v-c4ff865f]{justify-content:space-between;align-items:center;gap:12px;width:100%;display:flex}.daily-verify-header-row__title[data-v-c4ff865f]{color:#1d2129;flex-shrink:0;font-size:16px;font-weight:600;line-height:32px}.daily-verify-header-row[data-v-c4ff865f] .arco-btn{flex-shrink:0}[data-v-c4ff865f] .panel-card .arco-card-header-title{color:#1d2129}[data-v-c4ff865f] .query-card .arco-card-body,[data-v-c4ff865f] .panel-card .arco-card-body{background:0 0}[data-v-c4ff865f] .panel-card .arco-table-container{border-radius:8px;overflow:hidden}@media (width<=1200px){.tg-three-col[data-v-c4ff865f]{grid-template-columns:1fr}}

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{I as e,d as t,y as n}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{t as r}from"./PagePlaceholder-C01qW8FK.js";var i=n({__name:`Exports`,setup(n){return(n,i)=>(e(),t(r,{title:`数据统计 / 报表导出`,desc:`后续接入按时间/区域/类别筛选与 Excel 导出下载。`}))}});export{i as default};
import{I as e,d as t,y as n}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{t as r}from"./PagePlaceholder-Cy4-OO0C.js";var i=n({__name:`Exports`,setup(n){return(n,i)=>(e(),t(r,{title:`数据统计 / 报表导出`,desc:`后续接入按时间/区域/类别筛选与 Excel 导出下载。`}))}});export{i as default};

@ -1 +1 @@
import{I as e,d as t,y as n}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{t as r}from"./PagePlaceholder-C01qW8FK.js";var i=n({__name:`Leaderboard`,setup(n){return(n,i)=>(e(),t(r,{title:`客流监控 / 活跃指数排行榜`}))}});export{i as default};
import{I as e,d as t,y as n}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{t as r}from"./PagePlaceholder-Cy4-OO0C.js";var i=n({__name:`Leaderboard`,setup(n){return(n,i)=>(e(),t(r,{title:`客流监控 / 活跃指数排行榜`}))}});export{i as default};

@ -1,2 +0,0 @@
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dynamicAdminRoutes-D18tTUF_.js","assets/dynamicAdminRoutes-DxTabGxX.js","assets/preload-helper-CII-I4WM.js","assets/http-BWP--XXK.js","assets/axios-DUaTpsmW.js"])))=>i.map(i=>d[i]);
import{I as e,V as t,Y as n,_ as r,it as i,nt as a,p as o,v as s,y as c}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{t as l}from"./message-Dh9377vh.js";import{n as u,t as d}from"./http-BWP--XXK.js";import{t as f}from"./preload-helper-CII-I4WM.js";import{r as p}from"./index-D-AZ5ijJ.js";var m={style:{height:`100vh`,display:`grid`,"place-items":`center`,background:`var(--color-fill-2)`}},h=c({__name:`Login`,setup(c){let h=p(),g=i(!1),_=a({username:`admin`,password:`admin123456`});async function v(){g.value=!0;try{let{data:e}=await u.post(`/auth/login`,_);localStorage.setItem(d,e.token),l.success(`登录成功`);let{getFirstMenuPath:t}=await f(async()=>{let{getFirstMenuPath:e}=await import(`./dynamicAdminRoutes-D18tTUF_.js`);return{getFirstMenuPath:e}},__vite__mapDeps([0,1,2,3,4]));h.replace(await t())}catch(e){l.error(e?.response?.data?.message??`登录失败`)}finally{g.value=!1}}return(i,a)=>{let c=t(`a-input`),l=t(`a-form-item`),u=t(`a-input-password`),d=t(`a-button`),f=t(`a-form`),p=t(`a-card`);return e(),o(`div`,m,[s(p,{title:`苏州市科普场馆地图后台管理系统登录`,style:{width:`380px`}},{default:n(()=>[s(f,{model:_,layout:`vertical`,onSubmitSuccess:v},{default:n(()=>[s(l,{field:`username`,label:`用户名`},{default:n(()=>[s(c,{modelValue:_.username,"onUpdate:modelValue":a[0]||=e=>_.username=e,placeholder:`请输入用户名`},null,8,[`modelValue`])]),_:1}),s(l,{field:`password`,label:`密码`},{default:n(()=>[s(u,{modelValue:_.password,"onUpdate:modelValue":a[1]||=e=>_.password=e,placeholder:`请输入密码`},null,8,[`modelValue`])]),_:1}),s(d,{type:`primary`,long:``,loading:g.value,onClick:v},{default:n(()=>[...a[2]||=[r(`登录`,-1)]]),_:1},8,[`loading`])]),_:1},8,[`model`])]),_:1})])}}});export{h as default};

@ -0,0 +1,2 @@
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dynamicAdminRoutes-uIdwar86.js","assets/dynamicAdminRoutes-hoSIp8h6.js","assets/preload-helper-BIjWqNH5.js","assets/http-LCi9aT1G.js","assets/axios-CiYFffbI.js","assets/runtime-core.esm-bundler-CnFWH3R5.js"])))=>i.map(i=>d[i]);
import{n as e}from"./axios-CiYFffbI.js";import{I as t,V as n,Y as r,_ as i,it as a,nt as o,p as s,v as c,y as l}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{n as u,t as d}from"./http-LCi9aT1G.js";import{t as f}from"./preload-helper-BIjWqNH5.js";import{n as p,r as m}from"./index-BI6LL64u.js";var h={style:{height:`100vh`,display:`grid`,"place-items":`center`,background:`var(--color-fill-2)`}},g=l({__name:`Login`,setup(l){let g=m(),_=p(),v=a(!1),y=o({username:`admin`,password:`admin123456`});async function b(){v.value=!0;try{let{data:t}=await u.post(`/auth/login`,y);localStorage.setItem(d,t.token),e.success(`登录成功`);let{getFirstMenuPath:n}=await f(async()=>{let{getFirstMenuPath:e}=await import(`./dynamicAdminRoutes-uIdwar86.js`);return{getFirstMenuPath:e}},__vite__mapDeps([0,1,2,3,4,5])),r=typeof _.query.redirect==`string`?_.query.redirect.trim():``,i=r&&r.startsWith(`/`)&&!r.startsWith(`//`)?r:await n();g.replace(i)}catch(t){e.error(t?.response?.data?.message??`登录失败`)}finally{v.value=!1}}return(e,a)=>{let o=n(`a-input`),l=n(`a-form-item`),u=n(`a-input-password`),d=n(`a-button`),f=n(`a-form`),p=n(`a-card`);return t(),s(`div`,h,[c(p,{title:`苏州市科普场馆地图后台管理系统登录`,style:{width:`380px`}},{default:r(()=>[c(f,{model:y,layout:`vertical`,onSubmitSuccess:b},{default:r(()=>[c(l,{field:`username`,label:`用户名`},{default:r(()=>[c(o,{modelValue:y.username,"onUpdate:modelValue":a[0]||=e=>y.username=e,placeholder:`请输入用户名`},null,8,[`modelValue`])]),_:1}),c(l,{field:`password`,label:`密码`},{default:r(()=>[c(u,{modelValue:y.password,"onUpdate:modelValue":a[1]||=e=>y.password=e,placeholder:`请输入密码`},null,8,[`modelValue`])]),_:1}),c(d,{type:`primary`,long:``,loading:v.value,onClick:b},{default:r(()=>[...a[2]||=[i(`登录`,-1)]]),_:1},8,[`loading`])]),_:1},8,[`model`])]),_:1})])}}});export{g as default};

@ -1 +1 @@
import{I as e,V as t,Y as n,_ as r,d as i,v as a}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{a as o}from"./index-D-AZ5ijJ.js";var s={};function c(o,s){let c=t(`a-alert`),l=t(`a-descriptions-item`),u=t(`a-descriptions`),d=t(`a-card`);return e(),i(d,{title:`系统设置 / 地图与第三方配置`},{default:n(()=>[a(c,{type:`info`,style:{"margin-bottom":`12px`}},{default:n(()=>[...s[0]||=[r(` 当前后台场馆地图选点已使用腾讯地图,坐标统一为 GCJ-02火星坐标系`,-1)]]),_:1}),a(u,{column:1,bordered:``},{default:n(()=>[a(l,{label:`前端地图Key`},{default:n(()=>[...s[1]||=[r(" 在 `code/szkp-map-web/.env` 配置 `VITE_TENCENT_MAP_KEY=你的腾讯地图JS_KEY` ",-1)]]),_:1}),a(l,{label:`地图外链 referer`},{default:n(()=>[...s[2]||=[r(" 在 `code/szkp-map-web/.env` 配置 `VITE_TENCENT_MAP_REFERER=你的应用标识` ",-1)]]),_:1}),a(l,{label:`后端服务Key`},{default:n(()=>[...s[3]||=[r(" 在 `code/szkp-map-service/.env` 配置 `TENCENT_MAP_SERVER_KEY=你的腾讯地图WebService_KEY` ",-1)]]),_:1})]),_:1})]),_:1})}var l=o(s,[[`render`,c]]);export{l as default};
import{I as e,V as t,Y as n,_ as r,d as i,v as a}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{a as o}from"./index-BI6LL64u.js";var s={};function c(o,s){let c=t(`a-alert`),l=t(`a-descriptions-item`),u=t(`a-descriptions`),d=t(`a-card`);return e(),i(d,{title:`系统设置 / 地图与第三方配置`},{default:n(()=>[a(c,{type:`info`,style:{"margin-bottom":`12px`}},{default:n(()=>[...s[0]||=[r(` 当前后台场馆地图选点已使用腾讯地图,坐标统一为 GCJ-02火星坐标系`,-1)]]),_:1}),a(u,{column:1,bordered:``},{default:n(()=>[a(l,{label:`前端地图Key`},{default:n(()=>[...s[1]||=[r(" 在 `code/szkp-map-web/.env` 配置 `VITE_TENCENT_MAP_KEY=你的腾讯地图JS_KEY` ",-1)]]),_:1}),a(l,{label:`地图外链 referer`},{default:n(()=>[...s[2]||=[r(" 在 `code/szkp-map-web/.env` 配置 `VITE_TENCENT_MAP_REFERER=你的应用标识` ",-1)]]),_:1}),a(l,{label:`后端服务Key`},{default:n(()=>[...s[3]||=[r(" 在 `code/szkp-map-service/.env` 配置 `TENCENT_MAP_SERVER_KEY=你的腾讯地图WebService_KEY` ",-1)]]),_:1})]),_:1})]),_:1})}var l=o(s,[[`render`,c]]);export{l 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{I as e,d as t,y as n}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{t as r}from"./PagePlaceholder-C01qW8FK.js";var i=n({__name:`Monitor`,setup(n){return(n,i)=>(e(),t(r,{title:`客流监控 / 实时客流监控`,desc:`后续接入 50 个重点场馆实时客流数据源。`}))}});export{i as default};
import{I as e,d as t,y as n}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{t as r}from"./PagePlaceholder-Cy4-OO0C.js";var i=n({__name:`Monitor`,setup(n){return(n,i)=>(e(),t(r,{title:`客流监控 / 实时客流监控`,desc:`后续接入 50 个重点场馆实时客流数据源。`}))}});export{i as default};

@ -1 +1 @@
import{I as e,d as t,y as n}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{t as r}from"./PagePlaceholder-C01qW8FK.js";var i=n({__name:`Notifications`,setup(n){return(n,i)=>(e(),t(r,{title:`系统设置 / 消息通知`}))}});export{i as default};
import{I as e,d as t,y as n}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{t as r}from"./PagePlaceholder-Cy4-OO0C.js";var i=n({__name:`Notifications`,setup(n){return(n,i)=>(e(),t(r,{title:`系统设置 / 消息通知`}))}});export{i as default};

@ -1 +1 @@
import{I as e,d as t,y as n}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{t as r}from"./PagePlaceholder-C01qW8FK.js";var i=n({__name:`Overview`,setup(n){return(n,i)=>(e(),t(r,{title:`数据统计 / 综合统计`}))}});export{i as default};
import{I as e,d as t,y as n}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{t as r}from"./PagePlaceholder-Cy4-OO0C.js";var i=n({__name:`Overview`,setup(n){return(n,i)=>(e(),t(r,{title:`数据统计 / 综合统计`}))}});export{i as default};

@ -1 +1 @@
import{I as e,d as t,y as n}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{t as r}from"./PagePlaceholder-C01qW8FK.js";var i=n({__name:`Regions`,setup(n){return(n,i)=>(e(),t(r,{title:`数据统计 / 区域分析`}))}});export{i as default};
import{I as e,d as t,y as n}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{t as r}from"./PagePlaceholder-Cy4-OO0C.js";var i=n({__name:`Regions`,setup(n){return(n,i)=>(e(),t(r,{title:`数据统计 / 区域分析`}))}});export{i 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,2 +0,0 @@
import{I as e,N as t,O as n,V as r,Y as i,_ as a,d as o,f as s,i as c,it as l,kt as u,l as d,p as f,q as p,u as m,ut as h,v as g,y as _,z as v}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{t as y}from"./message-Dh9377vh.js";import{n as b}from"./http-BWP--XXK.js";import{a as x}from"./index-D-AZ5ijJ.js";import{t as S}from"./datetime-CjmbUMhc.js";var C={key:0,class:`system-logs-pre`},w={key:1,class:`system-logs-empty`},T=x(_({__name:`SystemLogs`,setup(_){let x=l(!1),T=l(``),E=l(400),D=l(``),O=l([]),k=l([]),A=l(null),j=l(null),M=l(!1),N=d(()=>{let e=T.value.trim().toLowerCase();return e?k.value.filter(t=>t.toLowerCase().includes(e)):k.value});function P(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(2)} MB`}async function F(){await n();let e=j.value;e&&(e.scrollTop=e.scrollHeight)}async function I(){x.value=!0,A.value=null;try{let{data:e}=await b.get(`/system-logs`,{params:{file:D.value||void 0,lines:E.value}});O.value=e.files??[],M.value=!0,D.value=e.file??``,await n(),M.value=!1,k.value=e.lines??[],A.value=e.error??null,await F()}catch(e){y.error(e?.response?.data?.message??`加载系统日志失败`),k.value=[],M.value=!1}finally{x.value=!1}}return p(D,()=>{M.value||I()}),t(I),(t,n)=>{let l=r(`a-alert`),d=r(`a-option`),p=r(`a-select`),_=r(`a-input-number`),y=r(`a-input`),b=r(`a-button`),k=r(`a-space`),M=r(`a-spin`),F=r(`a-card`);return e(),o(F,{title:`系统设置 / 系统日志`},{default:i(()=>[g(l,{type:`warning`,style:{"margin-bottom":`12px`}},{default:i(()=>[...n[3]||=[a(` 展示服务器 `,-1),m(`code`,null,`storage/logs`,-1),a(` 下 Laravel 应用日志文件尾部(按行)。仅超级管理员可访问;请勿将日志内容外传。 `,-1)]]),_:1}),g(k,{wrap:``,size:12,style:{"margin-bottom":`12px`}},{default:i(()=>[n[5]||=m(`span`,{class:`system-logs-tool-label`},`日志文件`,-1),g(p,{modelValue:D.value,"onUpdate:modelValue":n[0]||=e=>D.value=e,"allow-clear":``,placeholder:`选择文件`,style:{width:`260px`},loading:x.value},{default:i(()=>[(e(!0),f(c,null,v(O.value,t=>(e(),o(d,{key:t.name,value:t.name},{default:i(()=>[a(u(t.name)+``+u(P(t.size_bytes))+``+u(h(S)(t.modified_at))+` `,1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`,`loading`]),n[6]||=m(`span`,{class:`system-logs-tool-label`},`尾部行数`,-1),g(_,{modelValue:E.value,"onUpdate:modelValue":n[1]||=e=>E.value=e,min:50,max:5e3,step:50,style:{width:`120px`}},null,8,[`modelValue`]),g(y,{modelValue:T.value,"onUpdate:modelValue":n[2]||=e=>T.value=e,placeholder:`在行内筛选关键字`,"allow-clear":``,style:{width:`220px`}},null,8,[`modelValue`]),g(b,{type:`primary`,loading:x.value,onClick:I},{default:i(()=>[...n[4]||=[a(`刷新`,-1)]]),_:1},8,[`loading`])]),_:1}),A.value?(e(),o(l,{key:0,type:`error`,style:{"margin-bottom":`8px`}},{default:i(()=>[a(u(A.value),1)]),_:1})):s(``,!0),m(`div`,{ref_key:`scrollEl`,ref:j,class:`system-logs-panel`,tabindex:`0`,role:`region`,"aria-label":`日志内容`},[g(M,{loading:x.value,style:{display:`block`,"min-height":`120px`}},{default:i(()=>[N.value.length?(e(),f(`pre`,C,u(N.value.join(`
`)),1)):x.value?s(``,!0):(e(),f(`div`,w,`暂无日志内容或无权限读取文件`))]),_:1},8,[`loading`])],512)]),_:1})}}}),[[`__scopeId`,`data-v-00758b3f`]]);export{T as default};

@ -0,0 +1,2 @@
import{n as e}from"./axios-CiYFffbI.js";import{I as t,N as n,O as r,V as i,Y as a,_ as o,d as s,f as c,i as l,it as u,kt as d,l as f,p,q as m,u as h,ut as g,v as _,y as v,z as y}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{n as b}from"./http-LCi9aT1G.js";import{a as x}from"./index-BI6LL64u.js";import{t as S}from"./datetime-BxHRnH7A.js";var C={key:0,class:`system-logs-pre`},w={key:1,class:`system-logs-empty`},T=x(v({__name:`SystemLogs`,setup(v){let x=u(!1),T=u(``),E=u(400),D=u(``),O=u([]),k=u([]),A=u(null),j=u(null),M=u(!1),N=f(()=>{let e=T.value.trim().toLowerCase();return e?k.value.filter(t=>t.toLowerCase().includes(e)):k.value});function P(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(2)} MB`}async function F(){await r();let e=j.value;e&&(e.scrollTop=e.scrollHeight)}async function I(){x.value=!0,A.value=null;try{let{data:e}=await b.get(`/system-logs`,{params:{file:D.value||void 0,lines:E.value}});O.value=e.files??[],M.value=!0,D.value=e.file??``,await r(),M.value=!1,k.value=e.lines??[],A.value=e.error??null,await F()}catch(t){e.error(t?.response?.data?.message??`加载系统日志失败`),k.value=[],M.value=!1}finally{x.value=!1}}return m(D,()=>{M.value||I()}),n(I),(e,n)=>{let r=i(`a-alert`),u=i(`a-option`),f=i(`a-select`),m=i(`a-input-number`),v=i(`a-input`),b=i(`a-button`),k=i(`a-space`),M=i(`a-spin`),F=i(`a-card`);return t(),s(F,{title:`系统设置 / 系统日志`},{default:a(()=>[_(r,{type:`warning`,style:{"margin-bottom":`12px`}},{default:a(()=>[...n[3]||=[o(` 展示服务器 `,-1),h(`code`,null,`storage/logs`,-1),o(` 下 Laravel 应用日志文件尾部(按行)。仅超级管理员可访问;请勿将日志内容外传。 `,-1)]]),_:1}),_(k,{wrap:``,size:12,style:{"margin-bottom":`12px`}},{default:a(()=>[n[5]||=h(`span`,{class:`system-logs-tool-label`},`日志文件`,-1),_(f,{modelValue:D.value,"onUpdate:modelValue":n[0]||=e=>D.value=e,"allow-clear":``,placeholder:`选择文件`,style:{width:`260px`},loading:x.value},{default:a(()=>[(t(!0),p(l,null,y(O.value,e=>(t(),s(u,{key:e.name,value:e.name},{default:a(()=>[o(d(e.name)+``+d(P(e.size_bytes))+``+d(g(S)(e.modified_at))+` `,1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`,`loading`]),n[6]||=h(`span`,{class:`system-logs-tool-label`},`尾部行数`,-1),_(m,{modelValue:E.value,"onUpdate:modelValue":n[1]||=e=>E.value=e,min:50,max:5e3,step:50,style:{width:`120px`}},null,8,[`modelValue`]),_(v,{modelValue:T.value,"onUpdate:modelValue":n[2]||=e=>T.value=e,placeholder:`在行内筛选关键字`,"allow-clear":``,style:{width:`220px`}},null,8,[`modelValue`]),_(b,{type:`primary`,loading:x.value,onClick:I},{default:a(()=>[...n[4]||=[o(`刷新`,-1)]]),_:1},8,[`loading`])]),_:1}),A.value?(t(),s(r,{key:0,type:`error`,style:{"margin-bottom":`8px`}},{default:a(()=>[o(d(A.value),1)]),_:1})):c(``,!0),h(`div`,{ref_key:`scrollEl`,ref:j,class:`system-logs-panel`,tabindex:`0`,role:`region`,"aria-label":`日志内容`},[_(M,{loading:x.value,style:{display:`block`,"min-height":`120px`}},{default:a(()=>[N.value.length?(t(),p(`pre`,C,d(N.value.join(`
`)),1)):x.value?c(``,!0):(t(),p(`div`,w,`暂无日志内容或无权限读取文件`))]),_:1},8,[`loading`])],512)]),_:1})}}}),[[`__scopeId`,`data-v-00758b3f`]]);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

@ -0,0 +1 @@
import{n as e}from"./axios-CiYFffbI.js";import{I as t,N as n,V as r,Y as i,_ as a,d as o,i as s,it as c,kt as l,nt as u,p as d,u as f,ut as p,v as m,y as h,z as g}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{n as _}from"./http-LCi9aT1G.js";import{n as v,t as y}from"./datetime-BxHRnH7A.js";import{t as b}from"./listTableRowIndex-Bl-nc9Qt.js";import{t as x}from"./bookingType-kbWaE8S4.js";import{t as S}from"./reservationStatus-B1UqUzhU.js";var C={style:{"font-family":`monospace`,"font-size":`12px`}},w=1680,T=h({__name:`TicketGrabRegistrations`,setup(h){let T=c(!1),E=c(`all`),D=c(``),O=c(void 0),k=c([]),A=u({current:1,pageSize:10,total:0}),j=c([]),M=c([]);async function N(){try{let{data:e}=await _.get(`/ticket-grab-events/options`,{params:{limit:2e3}});M.value=e.data??[]}catch{M.value=[]}}async function P(){T.value=!0;try{let{data:e}=await _.get(`/activity-registrations`,{params:{reservation_kind:`ticket_grab`,ticket_grab_event_id:O.value||void 0,status:E.value,keyword:D.value||void 0,start_date:k.value?.[0]||void 0,end_date:k.value?.[1]||void 0,page:A.current,page_size:A.pageSize}});j.value=e.data,A.total=e.total}catch(t){e.error(t?.response?.data?.message??`加载失败`)}finally{T.value=!1}}function F(e){A.current=e,P()}function I(e){A.pageSize=e,A.current=1,P()}return n(async()=>{await N(),await P()}),(e,n)=>{let c=r(`a-option`),u=r(`a-select`),h=r(`a-radio`),_=r(`a-radio-group`),N=r(`a-input`),L=r(`a-range-picker`),R=r(`a-button`),z=r(`a-space`),B=r(`a-table-column`),V=r(`a-tag`),H=r(`a-table`),U=r(`a-card`);return t(),o(U,{title:`抢票管理 / 抢票报名`,bordered:!1},{default:i(()=>[m(z,{direction:`vertical`,fill:``},{default:i(()=>[m(z,{wrap:``,size:12},{default:i(()=>[m(u,{modelValue:O.value,"onUpdate:modelValue":n[0]||=e=>O.value=e,"allow-clear":``,placeholder:`抢票活动(全部)`,style:{width:`260px`},"allow-search":``,onChange:n[1]||=()=>{A.current=1,P()}},{default:i(()=>[(t(!0),d(s,null,g(M.value,e=>(t(),o(c,{key:e.id,value:e.id},{default:i(()=>[a(l(e.title),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`]),m(_,{modelValue:E.value,"onUpdate:modelValue":n[2]||=e=>E.value=e,type:`button`,size:`small`,onChange:P},{default:i(()=>[m(h,{value:`all`},{default:i(()=>[...n[7]||=[a(`全部`,-1)]]),_:1}),m(h,{value:`pending`},{default:i(()=>[...n[8]||=[a(`待核销`,-1)]]),_:1}),m(h,{value:`verified`},{default:i(()=>[...n[9]||=[a(`已核销`,-1)]]),_:1}),m(h,{value:`cancelled`},{default:i(()=>[...n[10]||=[a(`已取消`,-1)]]),_:1}),m(h,{value:`expired`},{default:i(()=>[...n[11]||=[a(`已过期`,-1)]]),_:1})]),_:1},8,[`modelValue`]),m(N,{modelValue:D.value,"onUpdate:modelValue":n[3]||=e=>D.value=e,placeholder:`姓名 / 身份证 / token`,"allow-clear":``,style:{width:`220px`}},null,8,[`modelValue`]),m(L,{modelValue:k.value,"onUpdate:modelValue":n[4]||=e=>k.value=e,style:{width:`260px`}},null,8,[`modelValue`]),m(R,{type:`primary`,onClick:n[5]||=()=>{A.current=1,P()}},{default:i(()=>[...n[12]||=[a(` 查询 `,-1)]]),_:1}),m(R,{onClick:n[6]||=()=>{E.value=`all`,D.value=``,O.value=void 0,k.value=[],A.current=1,P()}},{default:i(()=>[...n[13]||=[a(` 重置 `,-1)]]),_:1})]),_:1}),m(H,{scroll:{x:w},data:j.value,loading:T.value,"row-key":`id`,pagination:{current:A.current,pageSize:A.pageSize,total:A.total,showTotal:!0,onChange:F,onPageSizeChange:I}},{columns:i(()=>[m(B,{title:``,width:50,ellipsis:!0,tooltip:!0},{cell:i(({rowIndex:e})=>[a(l(p(b)(e,A.current,A.pageSize)),1)]),_:1}),m(B,{title:`抢票活动`,width:200,ellipsis:!0,tooltip:!0},{cell:i(({record:e})=>[a(l(e.ticket_grab_event?.title??`-`),1)]),_:1}),m(B,{title:`场馆`,width:160,ellipsis:!0,tooltip:!0},{cell:i(({record:e})=>[a(l(e.venue?.name??`-`),1)]),_:1}),m(B,{title:`姓名`,"data-index":`visitor_name`,width:100}),m(B,{title:`身份证`,"data-index":`id_card`,width:180,ellipsis:!0,tooltip:!0}),m(B,{title:`入馆日`,width:120},{cell:i(({record:e})=>[a(l(e.entry_date?p(v)(String(e.entry_date)):`-`),1)]),_:1}),m(B,{title:`预约类型`,width:100},{cell:i(({record:e})=>[a(l(p(x)(e.booking_type,e.ticket_count)),1)]),_:1}),m(B,{title:`票数`,width:80},{cell:i(({record:e})=>[a(l(e.ticket_count??1),1)]),_:1}),m(B,{title:`状态`,width:100},{cell:i(({record:e})=>[m(V,{color:e.status===`verified`?`green`:e.status===`pending`?`arcoblue`:`gray`},{default:i(()=>[a(l(p(S)(e.status)),1)]),_:2},1032,[`color`])]),_:1}),m(B,{title:`下单时间`,width:170},{cell:i(({record:e})=>[a(l(p(y)(e.created_at)),1)]),_:1}),m(B,{title:`核销时间`,width:170},{cell:i(({record:e})=>[a(l(e.verified_at?p(y)(String(e.verified_at)):`-`),1)]),_:1}),m(B,{title:`核销 Token`,width:220,ellipsis:!0,tooltip:!0},{cell:i(({record:e})=>[f(`span`,C,l(e.qr_token),1)]),_:1})]),_:1},8,[`scroll`,`data`,`loading`,`pagination`])]),_:1})]),_:1})}}});export{T as default};

@ -1 +0,0 @@
import{I as e,N as t,V as n,Y as r,_ as i,d as a,i as o,it as s,kt as c,nt as l,p as u,u as d,ut as f,v as p,y as m,z as h}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{t as g}from"./message-Dh9377vh.js";import{n as _}from"./http-BWP--XXK.js";import{n as v,t as y}from"./datetime-CjmbUMhc.js";import{t as b}from"./listTableRowIndex-ekx2Z6yT.js";import{t as x}from"./bookingType-sDQIPutU.js";import{t as S}from"./reservationStatus-DPnogIlu.js";var C={style:{"font-family":`monospace`,"font-size":`12px`}},w=1680,T=m({__name:`TicketGrabRegistrations`,setup(m){let T=s(!1),E=s(`all`),D=s(``),O=s(void 0),k=s([]),A=l({current:1,pageSize:10,total:0}),j=s([]),M=s([]);async function N(){try{let{data:e}=await _.get(`/ticket-grab-events/options`,{params:{limit:2e3}});M.value=e.data??[]}catch{M.value=[]}}async function P(){T.value=!0;try{let{data:e}=await _.get(`/activity-registrations`,{params:{reservation_kind:`ticket_grab`,ticket_grab_event_id:O.value||void 0,status:E.value,keyword:D.value||void 0,start_date:k.value?.[0]||void 0,end_date:k.value?.[1]||void 0,page:A.current,page_size:A.pageSize}});j.value=e.data,A.total=e.total}catch(e){g.error(e?.response?.data?.message??`加载失败`)}finally{T.value=!1}}function F(e){A.current=e,P()}function I(e){A.pageSize=e,A.current=1,P()}return t(async()=>{await N(),await P()}),(t,s)=>{let l=n(`a-option`),m=n(`a-select`),g=n(`a-radio`),_=n(`a-radio-group`),N=n(`a-input`),L=n(`a-range-picker`),R=n(`a-button`),z=n(`a-space`),B=n(`a-table-column`),V=n(`a-tag`),H=n(`a-table`),U=n(`a-card`);return e(),a(U,{title:`抢票管理 / 抢票报名`,bordered:!1},{default:r(()=>[p(z,{direction:`vertical`,fill:``},{default:r(()=>[p(z,{wrap:``,size:12},{default:r(()=>[p(m,{modelValue:O.value,"onUpdate:modelValue":s[0]||=e=>O.value=e,"allow-clear":``,placeholder:`抢票活动(全部)`,style:{width:`260px`},"allow-search":``,onChange:s[1]||=()=>{A.current=1,P()}},{default:r(()=>[(e(!0),u(o,null,h(M.value,t=>(e(),a(l,{key:t.id,value:t.id},{default:r(()=>[i(c(t.title),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`]),p(_,{modelValue:E.value,"onUpdate:modelValue":s[2]||=e=>E.value=e,type:`button`,size:`small`,onChange:P},{default:r(()=>[p(g,{value:`all`},{default:r(()=>[...s[7]||=[i(`全部`,-1)]]),_:1}),p(g,{value:`pending`},{default:r(()=>[...s[8]||=[i(`待核销`,-1)]]),_:1}),p(g,{value:`verified`},{default:r(()=>[...s[9]||=[i(`已核销`,-1)]]),_:1}),p(g,{value:`cancelled`},{default:r(()=>[...s[10]||=[i(`已取消`,-1)]]),_:1}),p(g,{value:`expired`},{default:r(()=>[...s[11]||=[i(`已过期`,-1)]]),_:1})]),_:1},8,[`modelValue`]),p(N,{modelValue:D.value,"onUpdate:modelValue":s[3]||=e=>D.value=e,placeholder:`姓名 / 身份证 / token`,"allow-clear":``,style:{width:`220px`}},null,8,[`modelValue`]),p(L,{modelValue:k.value,"onUpdate:modelValue":s[4]||=e=>k.value=e,style:{width:`260px`}},null,8,[`modelValue`]),p(R,{type:`primary`,onClick:s[5]||=()=>{A.current=1,P()}},{default:r(()=>[...s[12]||=[i(` 查询 `,-1)]]),_:1}),p(R,{onClick:s[6]||=()=>{E.value=`all`,D.value=``,O.value=void 0,k.value=[],A.current=1,P()}},{default:r(()=>[...s[13]||=[i(` 重置 `,-1)]]),_:1})]),_:1}),p(H,{scroll:{x:w},data:j.value,loading:T.value,"row-key":`id`,pagination:{current:A.current,pageSize:A.pageSize,total:A.total,showTotal:!0,onChange:F,onPageSizeChange:I}},{columns:r(()=>[p(B,{title:``,width:50,ellipsis:!0,tooltip:!0},{cell:r(({rowIndex:e})=>[i(c(f(b)(e,A.current,A.pageSize)),1)]),_:1}),p(B,{title:`抢票活动`,width:200,ellipsis:!0,tooltip:!0},{cell:r(({record:e})=>[i(c(e.ticket_grab_event?.title??`-`),1)]),_:1}),p(B,{title:`场馆`,width:160,ellipsis:!0,tooltip:!0},{cell:r(({record:e})=>[i(c(e.venue?.name??`-`),1)]),_:1}),p(B,{title:`姓名`,"data-index":`visitor_name`,width:100}),p(B,{title:`身份证`,"data-index":`id_card`,width:180,ellipsis:!0,tooltip:!0}),p(B,{title:`入馆日`,width:120},{cell:r(({record:e})=>[i(c(e.entry_date?f(v)(String(e.entry_date)):`-`),1)]),_:1}),p(B,{title:`预约类型`,width:100},{cell:r(({record:e})=>[i(c(f(x)(e.booking_type,e.ticket_count)),1)]),_:1}),p(B,{title:`票数`,width:80},{cell:r(({record:e})=>[i(c(e.ticket_count??1),1)]),_:1}),p(B,{title:`状态`,width:100},{cell:r(({record:e})=>[p(V,{color:e.status===`verified`?`green`:e.status===`pending`?`arcoblue`:`gray`},{default:r(()=>[i(c(f(S)(e.status)),1)]),_:2},1032,[`color`])]),_:1}),p(B,{title:`下单时间`,width:170},{cell:r(({record:e})=>[i(c(f(y)(e.created_at)),1)]),_:1}),p(B,{title:`核销时间`,width:170},{cell:r(({record:e})=>[i(c(e.verified_at?f(y)(String(e.verified_at)):`-`),1)]),_:1}),p(B,{title:`核销 Token`,width:220,ellipsis:!0,tooltip:!0},{cell:r(({record:e})=>[d(`span`,C,c(e.qr_token),1)]),_:1})]),_:1},8,[`scroll`,`data`,`loading`,`pagination`])]),_:1})]),_:1})}}});export{T as default};

@ -0,0 +1 @@
import{n as e}from"./axios-CiYFffbI.js";import{I as t,N as n,V as r,Y as i,_ as a,d as o,it as s,kt as c,nt as l,u,ut as d,v as f,y as p}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{n as m}from"./http-LCi9aT1G.js";import{a as h}from"./index-BI6LL64u.js";import{n as g,t as _}from"./datetime-BxHRnH7A.js";import{t as v}from"./listTableRowIndex-Bl-nc9Qt.js";import{t as y}from"./bookingType-kbWaE8S4.js";import{t as b}from"./reservationStatus-B1UqUzhU.js";var x={class:`verify-list-toolbar`},S=1780,C=h(p({__name:`TicketGrabVerify`,setup(p){let h=s(!1),C=s([]),w=s(``),T=s(!1),E=s(`all`),D=s(``),O=s([]),k=l({current:1,pageSize:10});async function A(){h.value=!0;try{let e={status:E.value,keyword:D.value||void 0,reservation_kind:`ticket_grab`};O.value?.length===2&&(e.start_date=O.value[0],e.end_date=O.value[1],e.date_field=`entry_date`);let{data:t}=await m.get(`/reservations`,{params:e});C.value=t,k.current=1}catch(t){e.error(t?.response?.data?.message??`加载预约列表失败`)}finally{h.value=!1}}function j(){A()}function M(){E.value=`all`,D.value=``,O.value=[],A()}async function N(){if(!w.value){e.warning(`请输入二维码 token`);return}T.value=!0;try{await m.post(`/reservations/verify`,{qr_token:w.value}),e.success(`核销成功`),w.value=``,await A()}catch(t){e.error(t?.response?.data?.message??`核销失败`)}finally{T.value=!1}}return n(A),(e,n)=>{let s=r(`a-alert`),l=r(`a-input`),p=r(`a-button`),m=r(`a-space`),P=r(`a-radio`),F=r(`a-radio-group`),I=r(`a-range-picker`),L=r(`a-table-column`),R=r(`a-tag`),z=r(`a-table`),B=r(`a-card`);return t(),o(B,{title:`抢票管理 / 抢票核销`,bordered:!1},{default:i(()=>[f(m,{direction:`vertical`,fill:``},{default:i(()=>[f(s,null,{default:i(()=>[...n[5]||=[a(`抢票预约按「入馆日」为当天方可核销。输入二维码 token 核销。`,-1)]]),_:1}),f(m,{wrap:``,size:12},{default:i(()=>[f(l,{modelValue:w.value,"onUpdate:modelValue":n[0]||=e=>w.value=e,style:{width:`min(100%, 420px)`},placeholder:`请输入二维码 token`,"allow-clear":``},null,8,[`modelValue`]),f(p,{type:`primary`,loading:T.value,onClick:N},{default:i(()=>[...n[6]||=[a(`立即核销`,-1)]]),_:1},8,[`loading`])]),_:1}),u(`div`,x,[f(m,{wrap:``,size:12},{default:i(()=>[f(F,{modelValue:E.value,"onUpdate:modelValue":n[1]||=e=>E.value=e,type:`button`,size:`small`,onChange:A},{default:i(()=>[f(P,{value:`all`},{default:i(()=>[...n[7]||=[a(`全部`,-1)]]),_:1}),f(P,{value:`pending`},{default:i(()=>[...n[8]||=[a(`待核销`,-1)]]),_:1}),f(P,{value:`verified`},{default:i(()=>[...n[9]||=[a(`已核销`,-1)]]),_:1}),f(P,{value:`cancelled`},{default:i(()=>[...n[10]||=[a(`已取消`,-1)]]),_:1}),f(P,{value:`expired`},{default:i(()=>[...n[11]||=[a(`已过期`,-1)]]),_:1})]),_:1},8,[`modelValue`]),f(l,{modelValue:D.value,"onUpdate:modelValue":n[2]||=e=>D.value=e,placeholder:`姓名 / 手机 / 身份证 / token`,"allow-clear":``,style:{width:`240px`}},null,8,[`modelValue`]),f(I,{modelValue:O.value,"onUpdate:modelValue":n[3]||=e=>O.value=e,style:{width:`260px`}},null,8,[`modelValue`]),f(p,{type:`primary`,onClick:j},{default:i(()=>[...n[12]||=[a(`查询`,-1)]]),_:1}),f(p,{onClick:M},{default:i(()=>[...n[13]||=[a(`重置`,-1)]]),_:1}),f(p,{onClick:A},{default:i(()=>[...n[14]||=[a(`刷新列表`,-1)]]),_:1})]),_:1})]),f(z,{class:`list-data-table verify-table`,scroll:{x:S},data:C.value,loading:h.value,"row-key":`id`,pagination:{current:k.current,pageSize:k.pageSize,total:C.value.length,showTotal:!0},onPageChange:n[4]||=e=>k.current=e},{columns:i(()=>[f(L,{title:``,width:50,ellipsis:!0,tooltip:!0},{cell:i(({rowIndex:e})=>[a(c(d(v)(e,k.current,k.pageSize)),1)]),_:1}),f(L,{title:`预约场次`,width:220,ellipsis:!0,tooltip:!0},{cell:i(({record:e})=>[a(c(e.ticket_grab_event?.title??`-`),1)]),_:1}),f(L,{title:`场馆`,width:180,ellipsis:!0,tooltip:!0},{cell:i(({record:e})=>[a(c(e.venue?.name??`-`),1)]),_:1}),f(L,{title:`姓名`,"data-index":`visitor_name`,width:100}),f(L,{title:`身份证`,"data-index":`id_card`,width:180,ellipsis:!0,tooltip:!0}),f(L,{title:`手机号`,"data-index":`visitor_phone`,width:120}),f(L,{title:`预约类型`,width:100},{cell:i(({record:e})=>[a(c(d(y)(e.booking_type,e.ticket_count)),1)]),_:1}),f(L,{title:`场次时间`,width:140},{cell:i(({record:e})=>[a(c(e.entry_date?d(g)(String(e.entry_date)):`-`),1)]),_:1}),f(L,{title:`状态`,width:100},{cell:i(({record:e})=>[f(R,{color:e.status===`verified`?`green`:e.status===`pending`?`arcoblue`:e.status===`expired`?`orange`:`gray`},{default:i(()=>[a(c(d(b)(e.status)),1)]),_:2},1032,[`color`])]),_:1}),f(L,{title:`预约时间`,width:175},{cell:i(({record:e})=>[a(c(d(_)(e.created_at)),1)]),_:1}),f(L,{title:`核销时间`,width:175},{cell:i(({record:e})=>[a(c(d(_)(e.verified_at)),1)]),_:1}),f(L,{title:`二维码 token`,"data-index":`qr_token`,width:200,ellipsis:!0,tooltip:!0,fixed:`right`})]),_:1},8,[`scroll`,`data`,`loading`,`pagination`])]),_:1})]),_:1})}}}),[[`__scopeId`,`data-v-f1a484a3`]]);export{C as default};

@ -1 +0,0 @@
import{I as e,N as t,V as n,Y as r,_ as i,d as a,it as o,kt as s,nt as c,u as l,ut as u,v as d,y as f}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{t as p}from"./message-Dh9377vh.js";import{n as m}from"./http-BWP--XXK.js";import{a as h}from"./index-D-AZ5ijJ.js";import{n as g,t as _}from"./datetime-CjmbUMhc.js";import{t as v}from"./listTableRowIndex-ekx2Z6yT.js";import{t as y}from"./bookingType-sDQIPutU.js";import{t as b}from"./reservationStatus-DPnogIlu.js";var x={class:`verify-list-toolbar`},S=1780,C=h(f({__name:`TicketGrabVerify`,setup(f){let h=o(!1),C=o([]),w=o(``),T=o(!1),E=o(`all`),D=o(``),O=o([]),k=c({current:1,pageSize:10});async function A(){h.value=!0;try{let e={status:E.value,keyword:D.value||void 0,reservation_kind:`ticket_grab`};O.value?.length===2&&(e.start_date=O.value[0],e.end_date=O.value[1],e.date_field=`entry_date`);let{data:t}=await m.get(`/reservations`,{params:e});C.value=t,k.current=1}catch(e){p.error(e?.response?.data?.message??`加载预约列表失败`)}finally{h.value=!1}}function j(){A()}function M(){E.value=`all`,D.value=``,O.value=[],A()}async function N(){if(!w.value){p.warning(`请输入二维码 token`);return}T.value=!0;try{await m.post(`/reservations/verify`,{qr_token:w.value}),p.success(`核销成功`),w.value=``,await A()}catch(e){p.error(e?.response?.data?.message??`核销失败`)}finally{T.value=!1}}return t(A),(t,o)=>{let c=n(`a-alert`),f=n(`a-input`),p=n(`a-button`),m=n(`a-space`),P=n(`a-radio`),F=n(`a-radio-group`),I=n(`a-range-picker`),L=n(`a-table-column`),R=n(`a-tag`),z=n(`a-table`),B=n(`a-card`);return e(),a(B,{title:`抢票管理 / 抢票核销`,bordered:!1},{default:r(()=>[d(m,{direction:`vertical`,fill:``},{default:r(()=>[d(c,null,{default:r(()=>[...o[5]||=[i(`抢票预约按「入馆日」为当天方可核销。输入二维码 token 核销。`,-1)]]),_:1}),d(m,{wrap:``,size:12},{default:r(()=>[d(f,{modelValue:w.value,"onUpdate:modelValue":o[0]||=e=>w.value=e,style:{width:`min(100%, 420px)`},placeholder:`请输入二维码 token`,"allow-clear":``},null,8,[`modelValue`]),d(p,{type:`primary`,loading:T.value,onClick:N},{default:r(()=>[...o[6]||=[i(`立即核销`,-1)]]),_:1},8,[`loading`])]),_:1}),l(`div`,x,[d(m,{wrap:``,size:12},{default:r(()=>[d(F,{modelValue:E.value,"onUpdate:modelValue":o[1]||=e=>E.value=e,type:`button`,size:`small`,onChange:A},{default:r(()=>[d(P,{value:`all`},{default:r(()=>[...o[7]||=[i(`全部`,-1)]]),_:1}),d(P,{value:`pending`},{default:r(()=>[...o[8]||=[i(`待核销`,-1)]]),_:1}),d(P,{value:`verified`},{default:r(()=>[...o[9]||=[i(`已核销`,-1)]]),_:1}),d(P,{value:`cancelled`},{default:r(()=>[...o[10]||=[i(`已取消`,-1)]]),_:1}),d(P,{value:`expired`},{default:r(()=>[...o[11]||=[i(`已过期`,-1)]]),_:1})]),_:1},8,[`modelValue`]),d(f,{modelValue:D.value,"onUpdate:modelValue":o[2]||=e=>D.value=e,placeholder:`姓名 / 手机 / 身份证 / token`,"allow-clear":``,style:{width:`240px`}},null,8,[`modelValue`]),d(I,{modelValue:O.value,"onUpdate:modelValue":o[3]||=e=>O.value=e,style:{width:`260px`}},null,8,[`modelValue`]),d(p,{type:`primary`,onClick:j},{default:r(()=>[...o[12]||=[i(`查询`,-1)]]),_:1}),d(p,{onClick:M},{default:r(()=>[...o[13]||=[i(`重置`,-1)]]),_:1}),d(p,{onClick:A},{default:r(()=>[...o[14]||=[i(`刷新列表`,-1)]]),_:1})]),_:1})]),d(z,{class:`list-data-table verify-table`,scroll:{x:S},data:C.value,loading:h.value,"row-key":`id`,pagination:{current:k.current,pageSize:k.pageSize,total:C.value.length,showTotal:!0},onPageChange:o[4]||=e=>k.current=e},{columns:r(()=>[d(L,{title:``,width:50,ellipsis:!0,tooltip:!0},{cell:r(({rowIndex:e})=>[i(s(u(v)(e,k.current,k.pageSize)),1)]),_:1}),d(L,{title:`预约场次`,width:220,ellipsis:!0,tooltip:!0},{cell:r(({record:e})=>[i(s(e.ticket_grab_event?.title??`-`),1)]),_:1}),d(L,{title:`场馆`,width:180,ellipsis:!0,tooltip:!0},{cell:r(({record:e})=>[i(s(e.venue?.name??`-`),1)]),_:1}),d(L,{title:`姓名`,"data-index":`visitor_name`,width:100}),d(L,{title:`身份证`,"data-index":`id_card`,width:180,ellipsis:!0,tooltip:!0}),d(L,{title:`手机号`,"data-index":`visitor_phone`,width:120}),d(L,{title:`预约类型`,width:100},{cell:r(({record:e})=>[i(s(u(y)(e.booking_type,e.ticket_count)),1)]),_:1}),d(L,{title:`场次时间`,width:140},{cell:r(({record:e})=>[i(s(e.entry_date?u(g)(String(e.entry_date)):`-`),1)]),_:1}),d(L,{title:`状态`,width:100},{cell:r(({record:e})=>[d(R,{color:e.status===`verified`?`green`:e.status===`pending`?`arcoblue`:e.status===`expired`?`orange`:`gray`},{default:r(()=>[i(s(u(b)(e.status)),1)]),_:2},1032,[`color`])]),_:1}),d(L,{title:`预约时间`,width:175},{cell:r(({record:e})=>[i(s(u(_)(e.created_at)),1)]),_:1}),d(L,{title:`核销时间`,width:175},{cell:r(({record:e})=>[i(s(u(_)(e.verified_at)),1)]),_:1}),d(L,{title:`二维码 token`,"data-index":`qr_token`,width:200,ellipsis:!0,tooltip:!0,fixed:`right`})]),_:1},8,[`scroll`,`data`,`loading`,`pagination`])]),_:1})]),_:1})}}}),[[`__scopeId`,`data-v-f1a484a3`]]);export{C as default};

@ -1 +0,0 @@
.import-file-label[data-v-db5c7e55]{cursor:pointer;display:inline-block}.import-file-input[data-v-db5c7e55]{opacity:0;width:0;height:0;position:absolute;overflow:hidden}.import-file-btn[data-v-db5c7e55]{border:1px solid var(--color-border-2);border-radius:var(--border-radius-small);padding:0 15px;line-height:32px;display:inline-block}.import-file-label:hover .import-file-btn[data-v-db5c7e55]{border-color:rgb(var(--primary-6));color:rgb(var(--primary-6))}.venue-address-coord-row[data-v-db5c7e55]{flex-wrap:wrap;align-items:center;gap:12px;width:100%;display:flex}.venue-address-coord-row__address[data-v-db5c7e55]{flex:45%;min-width:320px;max-width:100%}.venue-address-coord-row__lng[data-v-db5c7e55],.venue-address-coord-row__lat[data-v-db5c7e55]{flex:180px;width:200px;min-width:180px}.venue-address-coord-row__map[data-v-db5c7e55]{flex-shrink:0}.venue-form-split-label[data-v-db5c7e55]{color:var(--color-text-2);margin-bottom:8px;font-size:13px;font-weight:500}.venue-cover-carousel-wrap[data-v-db5c7e55]{flex-wrap:wrap;align-items:flex-start;gap:20px;width:100%;display:flex}.venue-cover-carousel-row__col[data-v-db5c7e55]{flex:320px;min-width:min(100%,320px)}.venue-cover-carousel-row__sub[data-v-db5c7e55]{color:var(--color-text-1);margin-bottom:8px;font-weight:500}.venue-gallery-grid[data-v-db5c7e55]{flex-wrap:wrap;align-items:flex-start;gap:12px;width:100%;display:flex}.venue-gallery-item[data-v-db5c7e55]{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.venue-gallery-thumb[data-v-db5c7e55]{object-fit:cover;cursor:zoom-in;border:1px solid #e5e6eb;border-radius:4px;width:80px;height:50px}.venue-gallery-thumb--video[data-v-db5c7e55]{display:block}

@ -0,0 +1 @@
.venue-address-coord-row[data-v-3b8704c0]{flex-wrap:wrap;align-items:center;gap:12px;width:100%;display:flex}.venue-address-coord-row__address[data-v-3b8704c0]{flex:45%;min-width:320px;max-width:100%}.venue-address-coord-row__lng[data-v-3b8704c0],.venue-address-coord-row__lat[data-v-3b8704c0]{flex:180px;width:200px;min-width:180px}.venue-address-coord-row__map[data-v-3b8704c0]{flex-shrink:0}.venue-form-split-label[data-v-3b8704c0]{color:var(--color-text-2);margin-bottom:8px;font-size:13px;font-weight:500}.venue-cover-carousel-wrap[data-v-3b8704c0]{flex-wrap:wrap;align-items:flex-start;gap:20px;width:100%;display:flex}.venue-cover-carousel-row__col[data-v-3b8704c0]{flex:320px;min-width:min(100%,320px)}.venue-cover-carousel-row__sub[data-v-3b8704c0]{color:var(--color-text-1);margin-bottom:8px;font-weight:500}.venue-gallery-grid[data-v-3b8704c0]{flex-wrap:wrap;align-items:flex-start;gap:12px;width:100%;display:flex}.venue-gallery-item[data-v-3b8704c0]{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.venue-gallery-thumb[data-v-3b8704c0]{object-fit:cover;cursor:zoom-in;border:1px solid #e5e6eb;border-radius:4px;width:80px;height:50px}.venue-gallery-thumb--video[data-v-3b8704c0]{display:block}

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 @@
import{n as e}from"./axios-CiYFffbI.js";import{I as t,N as n,V as r,Y as i,_ as a,i as o,it as s,kt as c,nt as l,p as u,u as d,v as f,y as p}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{a as m,n as h,r as g}from"./index-BI6LL64u.js";import{i as _,n as v,o as y,r as b,t as x}from"./h5Http-D8vGcHNb.js";var S={class:`m-verify-page`},C={class:`m-verify-hero`},w={class:`m-verify-sub`},T={class:`m-verify-card`},E={key:0,class:`m-verify-tip`},D={key:1,class:`m-verify-tip`},O=m(p({__name:`VerifyLogin`,setup(p){let m=g(),O=h(),k=s(!1),A=s(``),j=s(``),M=s(``),N=s(!1),P=l({username:``,password:``});function F(e){let t=O.query[e];return(typeof t==`string`?t:Array.isArray(t)?String(t[0]??``):``).trim()}async function I(){let e=A.value,t=j.value;if(e.length>=6){N.value=!0;try{let{data:t}=await y.get(`/verify-portal/preview`,{params:{portal_code:e}});M.value=String(t?.event_title||``).trim()||``}catch{M.value=``}finally{N.value=!1}return}if(t.length>=32){N.value=!0;try{let{data:e}=await y.get(`/verify-portal/preview`,{params:{portal_token:t}});M.value=String(e?.event_title||``).trim()||``}catch{M.value=``}finally{N.value=!1}return}M.value=``}n(()=>{let e=F(`v`).toLowerCase(),t=F(`portal`);e.length>=6?(A.value=e,j.value=``,localStorage.setItem(b,e),localStorage.removeItem(_)):t.length>=32?(j.value=t,A.value=``,localStorage.setItem(_,t),localStorage.removeItem(b)):(A.value=localStorage.getItem(`szkp_verify_portal_code`)||``,j.value=localStorage.getItem(`szkp_verify_portal_legacy_token`)||``),I()});function L(){return O.path.startsWith(`/m/`)?`/m/verify`:`/h5/verify/scan`}async function R(){k.value=!0;try{if(A.value.length>=6){let{data:t}=await y.post(`/verify-portal/login`,{portal_code:A.value,username:P.username.trim(),password:P.password});localStorage.setItem(x,t.token),localStorage.setItem(`${x}_saved_at`,String(Date.now())),localStorage.setItem(v,`portal`),e.success(`登录成功`),m.replace(L());return}if(j.value.length>=32){let{data:t}=await y.post(`/verify-portal/login`,{portal_token:j.value,username:P.username.trim(),password:P.password});localStorage.setItem(x,t.token),localStorage.setItem(`${x}_saved_at`,String(Date.now())),localStorage.setItem(v,`portal`),e.success(`登录成功`),m.replace(L());return}let{data:t}=await y.post(`/auth/login`,{...P,client:`h5_verify`});localStorage.setItem(x,t.token),localStorage.setItem(`${x}_saved_at`,String(Date.now())),localStorage.setItem(v,`admin`),localStorage.removeItem(b),localStorage.removeItem(_),e.success(`登录成功`),m.replace(L())}catch(t){e.error(t?.response?.data?.message??`登录失败`)}finally{k.value=!1}}return(e,n)=>{let s=r(`a-input`),l=r(`a-form-item`),p=r(`a-input-password`),m=r(`a-button`),h=r(`a-form`);return t(),u(`div`,S,[d(`div`,C,[n[2]||=d(`div`,{class:`m-verify-title`},`核销入口`,-1),d(`div`,w,[A.value.length>=6||j.value.length>=32?(t(),u(o,{key:0},[a(c(N.value?`活动信息加载中…`:M.value||``),1)],64)):(t(),u(o,{key:1},[a(`超级管理员核销登录`)],64))])]),d(`div`,T,[f(h,{model:P,layout:`vertical`,onSubmitSuccess:R},{default:i(()=>[f(l,{label:`用户名`},{default:i(()=>[f(s,{modelValue:P.username,"onUpdate:modelValue":n[0]||=e=>P.username=e,placeholder:`请输入账号`,size:`large`,"allow-clear":``},null,8,[`modelValue`])]),_:1}),f(l,{label:`密码`},{default:i(()=>[f(p,{modelValue:P.password,"onUpdate:modelValue":n[1]||=e=>P.password=e,placeholder:`请输入密码`,size:`large`,"allow-clear":``},null,8,[`modelValue`])]),_:1}),f(m,{type:`primary`,long:``,size:`large`,loading:k.value,onClick:R},{default:i(()=>[...n[3]||=[a(`登录`,-1)]]),_:1},8,[`loading`])]),_:1},8,[`model`]),A.value.length>=6||j.value.length>=32?(t(),u(`p`,E,` 活动专用核销登录(活动结束后账号失效) `)):(t(),u(`p`,D,[...n[4]||=[a(``,-1),d(`strong`,null,`超级管理员`,-1),a(`可使用后台账号登录本页。场馆工作人员请打开管理员提供的带 `,-1),d(`strong`,null,`?v=短码`,-1),a(` 的专用链接。 `,-1)]])),n[5]||=d(`p`,{class:`m-verify-tip`},`登录状态将保持较长时间;若已失效会自动回到本页。`,-1)])])}}}),[[`__scopeId`,`data-v-54556c3e`]]);export{O as default};

@ -1 +0,0 @@
import{I as e,N as t,V as n,Y as r,_ as i,i as a,it as o,kt as s,nt as c,p as l,u,v as d,y as f}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{t as p}from"./message-Dh9377vh.js";import{a as m,n as h,r as g}from"./index-D-AZ5ijJ.js";import{i as _,n as v,o as y,r as b,t as x}from"./h5Http-DeskuLbk.js";var S={class:`m-verify-page`},C={class:`m-verify-hero`},w={class:`m-verify-sub`},T={class:`m-verify-card`},E={key:0,class:`m-verify-tip`},D={key:1,class:`m-verify-tip`},O=m(f({__name:`VerifyLogin`,setup(f){let m=g(),O=h(),k=o(!1),A=o(``),j=o(``),M=o(``),N=o(!1),P=c({username:``,password:``});function F(e){let t=O.query[e];return(typeof t==`string`?t:Array.isArray(t)?String(t[0]??``):``).trim()}async function I(){let e=A.value,t=j.value;if(e.length>=6){N.value=!0;try{let{data:t}=await y.get(`/verify-portal/preview`,{params:{portal_code:e}});M.value=String(t?.event_title||``).trim()||``}catch{M.value=``}finally{N.value=!1}return}if(t.length>=32){N.value=!0;try{let{data:e}=await y.get(`/verify-portal/preview`,{params:{portal_token:t}});M.value=String(e?.event_title||``).trim()||``}catch{M.value=``}finally{N.value=!1}return}M.value=``}t(()=>{let e=F(`v`).toLowerCase(),t=F(`portal`);e.length>=6?(A.value=e,j.value=``,localStorage.setItem(b,e),localStorage.removeItem(_)):t.length>=32?(j.value=t,A.value=``,localStorage.setItem(_,t),localStorage.removeItem(b)):(A.value=localStorage.getItem(`szkp_verify_portal_code`)||``,j.value=localStorage.getItem(`szkp_verify_portal_legacy_token`)||``),I()});function L(){return O.path.startsWith(`/m/`)?`/m/verify`:`/h5/verify/scan`}async function R(){k.value=!0;try{if(A.value.length>=6){let{data:e}=await y.post(`/verify-portal/login`,{portal_code:A.value,username:P.username.trim(),password:P.password});localStorage.setItem(x,e.token),localStorage.setItem(`${x}_saved_at`,String(Date.now())),localStorage.setItem(v,`portal`),p.success(`登录成功`),m.replace(L());return}if(j.value.length>=32){let{data:e}=await y.post(`/verify-portal/login`,{portal_token:j.value,username:P.username.trim(),password:P.password});localStorage.setItem(x,e.token),localStorage.setItem(`${x}_saved_at`,String(Date.now())),localStorage.setItem(v,`portal`),p.success(`登录成功`),m.replace(L());return}let{data:e}=await y.post(`/auth/login`,{...P,client:`h5_verify`});localStorage.setItem(x,e.token),localStorage.setItem(`${x}_saved_at`,String(Date.now())),localStorage.setItem(v,`admin`),localStorage.removeItem(b),localStorage.removeItem(_),p.success(`登录成功`),m.replace(L())}catch(e){p.error(e?.response?.data?.message??`登录失败`)}finally{k.value=!1}}return(t,o)=>{let c=n(`a-input`),f=n(`a-form-item`),p=n(`a-input-password`),m=n(`a-button`),h=n(`a-form`);return e(),l(`div`,S,[u(`div`,C,[o[2]||=u(`div`,{class:`m-verify-title`},`核销入口`,-1),u(`div`,w,[A.value.length>=6||j.value.length>=32?(e(),l(a,{key:0},[i(s(N.value?`活动信息加载中…`:M.value||``),1)],64)):(e(),l(a,{key:1},[i(`超级管理员核销登录`)],64))])]),u(`div`,T,[d(h,{model:P,layout:`vertical`,onSubmitSuccess:R},{default:r(()=>[d(f,{label:`用户名`},{default:r(()=>[d(c,{modelValue:P.username,"onUpdate:modelValue":o[0]||=e=>P.username=e,placeholder:`请输入账号`,size:`large`,"allow-clear":``},null,8,[`modelValue`])]),_:1}),d(f,{label:`密码`},{default:r(()=>[d(p,{modelValue:P.password,"onUpdate:modelValue":o[1]||=e=>P.password=e,placeholder:`请输入密码`,size:`large`,"allow-clear":``},null,8,[`modelValue`])]),_:1}),d(m,{type:`primary`,long:``,size:`large`,loading:k.value,onClick:R},{default:r(()=>[...o[3]||=[i(`登录`,-1)]]),_:1},8,[`loading`])]),_:1},8,[`model`]),A.value.length>=6||j.value.length>=32?(e(),l(`p`,E,` 活动专用核销登录(活动结束后账号失效) `)):(e(),l(`p`,D,[...o[4]||=[i(``,-1),u(`strong`,null,`超级管理员`,-1),i(`可使用后台账号登录本页。场馆工作人员请打开管理员提供的带 `,-1),u(`strong`,null,`?v=短码`,-1),i(` 的专用链接。 `,-1)]])),o[5]||=u(`p`,{class:`m-verify-tip`},`登录状态将保持较长时间;若已失效会自动回到本页。`,-1)])])}}}),[[`__scopeId`,`data-v-54556c3e`]]);export{O 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{I as e,d as t,y as n}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{t as r}from"./PagePlaceholder-C01qW8FK.js";var i=n({__name:`Wechat`,setup(n){return(n,i)=>(e(),t(r,{title:`系统设置 / 微信配置`}))}});export{i as default};
import{I as e,d as t,y as n}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{t as r}from"./PagePlaceholder-Cy4-OO0C.js";var i=n({__name:`Wechat`,setup(n){return(n,i)=>(e(),t(r,{title:`系统设置 / 微信配置`}))}});export{i as default};

@ -0,0 +1 @@
import{n as e}from"./axios-CiYFffbI.js";import{I as t,N as n,V as r,Y as i,_ as a,d as o,it as s,kt as c,nt as l,p as u,ut as d,v as f,y as p}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{n as m}from"./http-LCi9aT1G.js";import{t as h}from"./listTableRowIndex-Bl-nc9Qt.js";var g=[`src`],_={key:1},v=p({__name:`WechatUsers`,setup(p){let v=s(!1),y=s([]),b=l({current:1,pageSize:15,total:0}),x=s(``);async function S(){v.value=!0;try{let{data:e}=await m.get(`/wechat-users`,{params:{page:b.current,page_size:b.pageSize,keyword:x.value.trim()||void 0}});y.value=e.data??[],b.total=e.total??0}catch(t){e.error(t?.response?.data?.message??`加载失败`)}finally{v.value=!1}}function C(){b.current=1,S()}function w(e){b.current=e,S()}return n(()=>void S()),(e,n)=>{let s=r(`a-input`),l=r(`a-button`),p=r(`a-space`),m=r(`a-table-column`),S=r(`a-avatar`),T=r(`a-table`),E=r(`a-card`);return t(),o(E,{title:`用户管理 / 用户列表`},{default:i(()=>[f(p,{style:{"margin-bottom":`12px`},wrap:``},{default:i(()=>[f(s,{modelValue:x.value,"onUpdate:modelValue":n[0]||=e=>x.value=e,placeholder:`搜索手机号或昵称`,style:{width:`240px`},"allow-clear":``,onPressEnter:C},null,8,[`modelValue`]),f(l,{type:`primary`,onClick:C},{default:i(()=>[...n[1]||=[a(`查询`,-1)]]),_:1})]),_:1}),f(T,{class:`list-data-table`,data:y.value,loading:v.value,"row-key":`id`,pagination:{current:b.current,pageSize:b.pageSize,total:b.total,showTotal:!0},onPageChange:w},{columns:i(()=>[f(m,{title:``,width:52},{cell:i(({rowIndex:e})=>[a(c(d(h)(e,b.current,b.pageSize)),1)]),_:1}),f(m,{title:`头像`,width:72},{cell:i(({record:e})=>[f(S,{size:40},{default:i(()=>[e.avatar_url?(t(),u(`img`,{key:0,src:e.avatar_url,alt:``},null,8,g)):(t(),u(`span`,_,`访`))]),_:2},1024)]),_:1}),f(m,{title:`手机号`,"data-index":`phone`,width:140}),f(m,{title:`昵称`,"data-index":`nickname`,width:140,ellipsis:``,tooltip:``}),f(m,{title:`姓名`,"data-index":`real_name`,width:120,ellipsis:``,tooltip:``}),f(m,{title:`注册时间`,"data-index":`created_at`,width:180})]),_:1},8,[`data`,`loading`,`pagination`])]),_:1})}}});export{v as default};

@ -1 +0,0 @@
import{I as e,N as t,V as n,Y as r,_ as i,d as a,it as o,kt as s,nt as c,p as l,ut as u,v as d,y as f}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{t as p}from"./message-Dh9377vh.js";import{n as m}from"./http-BWP--XXK.js";import{t as h}from"./listTableRowIndex-ekx2Z6yT.js";var g=[`src`],_={key:1},v=f({__name:`WechatUsers`,setup(f){let v=o(!1),y=o([]),b=c({current:1,pageSize:15,total:0}),x=o(``);async function S(){v.value=!0;try{let{data:e}=await m.get(`/wechat-users`,{params:{page:b.current,page_size:b.pageSize,keyword:x.value.trim()||void 0}});y.value=e.data??[],b.total=e.total??0}catch(e){p.error(e?.response?.data?.message??`加载失败`)}finally{v.value=!1}}function C(){b.current=1,S()}function w(e){b.current=e,S()}return t(()=>void S()),(t,o)=>{let c=n(`a-input`),f=n(`a-button`),p=n(`a-space`),m=n(`a-table-column`),S=n(`a-avatar`),T=n(`a-table`),E=n(`a-card`);return e(),a(E,{title:`用户管理 / 用户列表`},{default:r(()=>[d(p,{style:{"margin-bottom":`12px`},wrap:``},{default:r(()=>[d(c,{modelValue:x.value,"onUpdate:modelValue":o[0]||=e=>x.value=e,placeholder:`搜索手机号或昵称`,style:{width:`240px`},"allow-clear":``,onPressEnter:C},null,8,[`modelValue`]),d(f,{type:`primary`,onClick:C},{default:r(()=>[...o[1]||=[i(`查询`,-1)]]),_:1})]),_:1}),d(T,{class:`list-data-table`,data:y.value,loading:v.value,"row-key":`id`,pagination:{current:b.current,pageSize:b.pageSize,total:b.total,showTotal:!0},onPageChange:w},{columns:r(()=>[d(m,{title:``,width:52},{cell:r(({rowIndex:e})=>[i(s(u(h)(e,b.current,b.pageSize)),1)]),_:1}),d(m,{title:`头像`,width:72},{cell:r(({record:t})=>[d(S,{size:40},{default:r(()=>[t.avatar_url?(e(),l(`img`,{key:0,src:t.avatar_url,alt:``},null,8,g)):(e(),l(`span`,_,`访`))]),_:2},1024)]),_:1}),d(m,{title:`手机号`,"data-index":`phone`,width:140}),d(m,{title:`昵称`,"data-index":`nickname`,width:140,ellipsis:``,tooltip:``}),d(m,{title:`姓名`,"data-index":`real_name`,width:120,ellipsis:``,tooltip:``}),d(m,{title:`注册时间`,"data-index":`created_at`,width:180})]),_:1},8,[`data`,`loading`,`pagination`])]),_:1})}}});export{v 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,2 +0,0 @@
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/Dashboard-Btj--O7v.js","assets/index-D-AZ5ijJ.js","assets/axios-DUaTpsmW.js","assets/preload-helper-CII-I4WM.js","assets/message-Dh9377vh.js","assets/runtime-core.esm-bundler-CnFWH3R5.js","assets/http-BWP--XXK.js","assets/index-_Vo8-Dl1.css","assets/datetime-CjmbUMhc.js","assets/Dashboard-Ch3Q41nb.css","assets/VenueList-lba84bXb.js","assets/RichEditorField-BtE8noGA.js","assets/RichEditorField-BSoIk7uU.css","assets/listTableRowIndex-ekx2Z6yT.js","assets/mediaUrl-D5Z8dTjp.js","assets/VenueList-BVmjeAE6.css","assets/ActivityList-BDoBxAUx.js","assets/ActivityList-BWxyWXTX.css","assets/Registrations-BRzLokqm.js","assets/bookingType-sDQIPutU.js","assets/reservationStatus-DPnogIlu.js","assets/Registrations-BFJ7lCw0.css","assets/Verify-h4F4Xn2K.js","assets/Verify-Dw49jI2o.css","assets/Blacklist-Bje93SB-.js","assets/Blacklist-BfL6MrNT.css","assets/TicketGrabList-BqK9YlQZ.js","assets/h5Http-DeskuLbk.js","assets/TicketGrabList-k4CSPQEF.css","assets/TicketGrabRegistrations-DbTTnsjH.js","assets/TicketGrabVerify-CSlOtRmI.js","assets/TicketGrabVerify-C99ifrCo.css","assets/StudyTourList-Dxl4LcRM.js","assets/StudyTourList-zuub63yR.css","assets/Monitor-B6BUMsDE.js","assets/PagePlaceholder-C01qW8FK.js","assets/Leaderboard-QZFxyd89.js","assets/Alerts-BRphCCY2.js","assets/Overview-ZO1-u-AA.js","assets/Regions-BmVdTPcv.js","assets/Categories-BPtv11Kp.js","assets/Exports-DUedK6OK.js","assets/Admins-BTzVFSv7.js","assets/Roles-DwiAaa1-.js","assets/Menus-BMh7jNWJ.js","assets/Menus-CIRuEnr6.css","assets/AuditLogs-JfunWWgI.js","assets/AuditLogs-Bd90uV6l.css","assets/Wechat-BrYzfMbt.js","assets/Map-DRi-jNnk.js","assets/Notifications-DKl56ci_.js","assets/SystemLogs-BOrp-eoh.js","assets/SystemLogs-DSVhElsT.css","assets/Dictionaries-C-IYsGpH.js","assets/WechatUsers-D4EhDlWI.js"])))=>i.map(i=>d[i]);
import{n as e}from"./http-BWP--XXK.js";import{t}from"./preload-helper-CII-I4WM.js";var n={"/dashboard":()=>t(()=>import(`./Dashboard-Btj--O7v.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9])),"/venues":()=>t(()=>import(`./VenueList-lba84bXb.js`),__vite__mapDeps([10,1,2,3,4,5,6,7,11,12,13,14,15])),"/activities":()=>t(()=>import(`./ActivityList-BDoBxAUx.js`),__vite__mapDeps([16,1,2,3,4,5,6,7,11,12,13,17])),"/activities/registrations":()=>t(()=>import(`./Registrations-BRzLokqm.js`),__vite__mapDeps([18,1,2,3,4,5,6,7,19,8,13,20,21])),"/activities/verify":()=>t(()=>import(`./Verify-h4F4Xn2K.js`),__vite__mapDeps([22,1,2,3,4,5,6,7,19,8,13,20,23])),"/activities/blacklist":()=>t(()=>import(`./Blacklist-Bje93SB-.js`),__vite__mapDeps([24,1,2,3,4,5,6,7,8,25])),"/ticket-grab-events":()=>t(()=>import(`./TicketGrabList-BqK9YlQZ.js`),__vite__mapDeps([26,1,2,3,4,5,6,7,11,12,27,13,14,28])),"/ticket-grab-events/registrations":()=>t(()=>import(`./TicketGrabRegistrations-DbTTnsjH.js`),__vite__mapDeps([29,4,5,6,2,19,8,13,20])),"/ticket-grab-events/verify":()=>t(()=>import(`./TicketGrabVerify-CSlOtRmI.js`),__vite__mapDeps([30,1,2,3,4,5,6,7,19,8,13,20,31])),"/study-tours":()=>t(()=>import(`./StudyTourList-Dxl4LcRM.js`),__vite__mapDeps([32,1,2,3,4,5,6,7,11,12,13,14,33])),"/traffic":()=>t(()=>import(`./Monitor-B6BUMsDE.js`),__vite__mapDeps([34,5,35])),"/traffic/leaderboard":()=>t(()=>import(`./Leaderboard-QZFxyd89.js`),__vite__mapDeps([36,5,35])),"/traffic/alerts":()=>t(()=>import(`./Alerts-BRphCCY2.js`),__vite__mapDeps([37,5,35])),"/stats":()=>t(()=>import(`./Overview-ZO1-u-AA.js`),__vite__mapDeps([38,5,35])),"/stats/regions":()=>t(()=>import(`./Regions-BmVdTPcv.js`),__vite__mapDeps([39,5,35])),"/stats/categories":()=>t(()=>import(`./Categories-BPtv11Kp.js`),__vite__mapDeps([40,5,35])),"/stats/exports":()=>t(()=>import(`./Exports-DUedK6OK.js`),__vite__mapDeps([41,5,35])),"/system/admins":()=>t(()=>import(`./Admins-BTzVFSv7.js`),__vite__mapDeps([42,4,5,6,2,13])),"/system/roles":()=>t(()=>import(`./Roles-DwiAaa1-.js`),__vite__mapDeps([43,1,2,3,4,5,6,7])),"/system/menus":()=>t(()=>import(`./Menus-BMh7jNWJ.js`),__vite__mapDeps([44,1,2,3,4,5,6,7,45])),"/system/audit-logs":()=>t(()=>import(`./AuditLogs-JfunWWgI.js`),__vite__mapDeps([46,1,2,3,4,5,6,7,8,13,47])),"/settings/wechat":()=>t(()=>import(`./Wechat-BrYzfMbt.js`),__vite__mapDeps([48,5,35])),"/settings/map":()=>t(()=>import(`./Map-DRi-jNnk.js`),__vite__mapDeps([49,1,2,3,4,5,6,7])),"/settings/notifications":()=>t(()=>import(`./Notifications-DKl56ci_.js`),__vite__mapDeps([50,5,35])),"/settings/system-logs":()=>t(()=>import(`./SystemLogs-BOrp-eoh.js`),__vite__mapDeps([51,1,2,3,4,5,6,7,8,52])),"/settings/dictionaries":()=>t(()=>import(`./Dictionaries-C-IYsGpH.js`),__vite__mapDeps([53,4,5,6,2])),"/wechat-users":()=>t(()=>import(`./WechatUsers-D4EhDlWI.js`),__vite__mapDeps([54,4,5,6,2,13]))};function r(e){let t=[],n=e=>{for(let r of e){let e=r?.path?.trim();e&&t.push(e),Array.isArray(r?.children)&&n(r.children)}};return n(e),t}function i(e){let t=e.trim().replace(/\/+$/,``)||`/`;return t.startsWith(`/`)?t:`/${t}`}function a(e){if(e.size===0)return`/dashboard`;for(let t of[`/dashboard`,`/activities`,`/venues`,`/wechat-users`])if(e.has(t))return t;return[...e].sort()[0]??`/dashboard`}var o=null,s=!1;function c(){return o}async function l(){try{let{data:t}=await e.get(`/admin-menus`),n=r(Array.isArray(t)?t:[]);return a(new Set(n.map(e=>i(e))))}catch{return`/dashboard`}}async function u(t){if(s)return;let{data:a}=await e.get(`/admin-menus`),c=r(Array.isArray(a)?a:[]);o=new Set(c.map(e=>i(e)));for(let e of c){let r=i(e).replace(/\/$/,``)||`/`,a=n[r];if(!a)continue;let o=r.startsWith(`/`)?r.slice(1):r,s=`dyn-${o.replace(/\//g,`-`)}`;t.hasRoute(s)||t.addRoute(`admin-layout`,{path:o,name:s,component:a})}s=!0}function d(e){o=null,s=!1;for(let t of e.getRoutes()){let n=t.name?.toString()??``;n.startsWith(`dyn-`)&&e.removeRoute(n)}}function f(){return s}export{a,f as i,c as n,u as o,l as r,d as s,r as t};

@ -0,0 +1,2 @@
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/Dashboard-DJUlKmSo.js","assets/index-BI6LL64u.js","assets/axios-CiYFffbI.js","assets/runtime-core.esm-bundler-CnFWH3R5.js","assets/preload-helper-BIjWqNH5.js","assets/http-LCi9aT1G.js","assets/index-_Vo8-Dl1.css","assets/datetime-BxHRnH7A.js","assets/Dashboard-Cy9_n9iE.css","assets/VenueList-KhUx2wtF.js","assets/RichEditorField-kyuSl45i.js","assets/RichEditorField-BSoIk7uU.css","assets/listTableRowIndex-Bl-nc9Qt.js","assets/mediaUrl-CPV6u7br.js","assets/VenueList-CLA5TPd_.css","assets/ActivityList-IwOjGSKR.js","assets/ActivityList-BetBDTJU.css","assets/Registrations-CFbp93xq.js","assets/bookingType-kbWaE8S4.js","assets/reservationStatus-B1UqUzhU.js","assets/Registrations-BFJ7lCw0.css","assets/Verify-D9UNJGui.js","assets/Verify-Dw49jI2o.css","assets/Blacklist-wW0x8CNm.js","assets/Blacklist-BfL6MrNT.css","assets/TicketGrabList-CbLMY0Rp.js","assets/h5Http-D8vGcHNb.js","assets/TicketGrabList-k4CSPQEF.css","assets/TicketGrabRegistrations-CYDoA-p5.js","assets/TicketGrabVerify-BHXIX-mm.js","assets/TicketGrabVerify-C99ifrCo.css","assets/StudyTourList-C6AkP7yS.js","assets/StudyTourList-zuub63yR.css","assets/Monitor-CwQryTgE.js","assets/PagePlaceholder-Cy4-OO0C.js","assets/Leaderboard-DpnW60sP.js","assets/Alerts-CLB4PUbf.js","assets/Overview-DWCg_gXr.js","assets/Regions-wTSahatX.js","assets/Categories-C4UExwsU.js","assets/Exports-B2d1jnIW.js","assets/Admins-DC1D747T.js","assets/Roles-DmUjea10.js","assets/Menus-BUAxD871.js","assets/Menus-CIRuEnr6.css","assets/AuditLogs-ClX4fiy2.js","assets/AuditLogs-Bd90uV6l.css","assets/Wechat-GC1DNCzj.js","assets/Map-DiiDxeUu.js","assets/Notifications-CnFkl2pO.js","assets/SystemLogs-DrwGqRb_.js","assets/SystemLogs-DSVhElsT.css","assets/Dictionaries-Cq9OnVyA.js","assets/WechatUsers-CslkSm73.js"])))=>i.map(i=>d[i]);
import{n as e}from"./http-LCi9aT1G.js";import{t}from"./preload-helper-BIjWqNH5.js";var n={"/dashboard":()=>t(()=>import(`./Dashboard-DJUlKmSo.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8])),"/venues":()=>t(()=>import(`./VenueList-KhUx2wtF.js`),__vite__mapDeps([9,1,2,3,4,5,6,10,11,12,13,14])),"/activities":()=>t(()=>import(`./ActivityList-IwOjGSKR.js`),__vite__mapDeps([15,1,2,3,4,5,6,10,11,12,16])),"/activities/registrations":()=>t(()=>import(`./Registrations-CFbp93xq.js`),__vite__mapDeps([17,1,2,3,4,5,6,18,7,12,19,20])),"/activities/verify":()=>t(()=>import(`./Verify-D9UNJGui.js`),__vite__mapDeps([21,1,2,3,4,5,6,18,7,12,19,22])),"/activities/blacklist":()=>t(()=>import(`./Blacklist-wW0x8CNm.js`),__vite__mapDeps([23,1,2,3,4,5,6,7,24])),"/ticket-grab-events":()=>t(()=>import(`./TicketGrabList-CbLMY0Rp.js`),__vite__mapDeps([25,1,2,3,4,5,6,10,11,26,12,13,27])),"/ticket-grab-events/registrations":()=>t(()=>import(`./TicketGrabRegistrations-CYDoA-p5.js`),__vite__mapDeps([28,2,3,5,18,7,12,19])),"/ticket-grab-events/verify":()=>t(()=>import(`./TicketGrabVerify-BHXIX-mm.js`),__vite__mapDeps([29,1,2,3,4,5,6,18,7,12,19,30])),"/study-tours":()=>t(()=>import(`./StudyTourList-C6AkP7yS.js`),__vite__mapDeps([31,1,2,3,4,5,6,10,11,12,13,32])),"/traffic":()=>t(()=>import(`./Monitor-CwQryTgE.js`),__vite__mapDeps([33,3,34])),"/traffic/leaderboard":()=>t(()=>import(`./Leaderboard-DpnW60sP.js`),__vite__mapDeps([35,3,34])),"/traffic/alerts":()=>t(()=>import(`./Alerts-CLB4PUbf.js`),__vite__mapDeps([36,3,34])),"/stats":()=>t(()=>import(`./Overview-DWCg_gXr.js`),__vite__mapDeps([37,3,34])),"/stats/regions":()=>t(()=>import(`./Regions-wTSahatX.js`),__vite__mapDeps([38,3,34])),"/stats/categories":()=>t(()=>import(`./Categories-C4UExwsU.js`),__vite__mapDeps([39,3,34])),"/stats/exports":()=>t(()=>import(`./Exports-B2d1jnIW.js`),__vite__mapDeps([40,3,34])),"/system/admins":()=>t(()=>import(`./Admins-DC1D747T.js`),__vite__mapDeps([41,2,3,5,12])),"/system/roles":()=>t(()=>import(`./Roles-DmUjea10.js`),__vite__mapDeps([42,1,2,3,4,5,6])),"/system/menus":()=>t(()=>import(`./Menus-BUAxD871.js`),__vite__mapDeps([43,1,2,3,4,5,6,44])),"/system/audit-logs":()=>t(()=>import(`./AuditLogs-ClX4fiy2.js`),__vite__mapDeps([45,1,2,3,4,5,6,7,12,46])),"/settings/wechat":()=>t(()=>import(`./Wechat-GC1DNCzj.js`),__vite__mapDeps([47,3,34])),"/settings/map":()=>t(()=>import(`./Map-DiiDxeUu.js`),__vite__mapDeps([48,1,2,3,4,5,6])),"/settings/notifications":()=>t(()=>import(`./Notifications-CnFkl2pO.js`),__vite__mapDeps([49,3,34])),"/settings/system-logs":()=>t(()=>import(`./SystemLogs-DrwGqRb_.js`),__vite__mapDeps([50,1,2,3,4,5,6,7,51])),"/settings/dictionaries":()=>t(()=>import(`./Dictionaries-Cq9OnVyA.js`),__vite__mapDeps([52,2,3,5])),"/wechat-users":()=>t(()=>import(`./WechatUsers-CslkSm73.js`),__vite__mapDeps([53,2,3,5,12]))};function r(e){let t=[],n=e=>{for(let r of e){let e=r?.path?.trim();e&&t.push(e),Array.isArray(r?.children)&&n(r.children)}};return n(e),t}function i(e){let t=e.trim().replace(/\/+$/,``)||`/`;return t.startsWith(`/`)?t:`/${t}`}function a(e){if(e.size===0)return`/dashboard`;for(let t of[`/dashboard`,`/activities`,`/venues`,`/wechat-users`])if(e.has(t))return t;return[...e].sort()[0]??`/dashboard`}var o=null,s=!1;function c(){return o}async function l(){try{let{data:t}=await e.get(`/admin-menus`),n=r(Array.isArray(t)?t:[]);return a(new Set(n.map(e=>i(e))))}catch{return`/dashboard`}}async function u(t){if(s)return;let{data:a}=await e.get(`/admin-menus`),c=r(Array.isArray(a)?a:[]);o=new Set(c.map(e=>i(e)));for(let e of c){let r=i(e).replace(/\/$/,``)||`/`,a=n[r];if(!a)continue;let o=r.startsWith(`/`)?r.slice(1):r,s=`dyn-${o.replace(/\//g,`-`)}`;t.hasRoute(s)||t.addRoute(`admin-layout`,{path:o,name:s,component:a})}s=!0}function d(e){o=null,s=!1;for(let t of e.getRoutes()){let n=t.name?.toString()??``;n.startsWith(`dyn-`)&&e.removeRoute(n)}}function f(){return s}export{a,f as i,c as n,u as o,l as r,d as s,r as t};

@ -1 +1 @@
import{a as e,i as t,n,o as r,r as i,s as a,t as o}from"./dynamicAdminRoutes-DxTabGxX.js";export{o as flattenMenuPaths,n as getCachedAllowedPaths,i as getFirstMenuPath,t as isDynamicRoutesRegistered,e as pickDefaultPath,r as registerDynamicAdminRoutes,a as resetDynamicAdminRoutes};
import{a as e,i as t,n,o as r,r as i,s as a,t as o}from"./dynamicAdminRoutes-hoSIp8h6.js";export{o as flattenMenuPaths,n as getCachedAllowedPaths,i as getFirstMenuPath,t as isDynamicRoutesRegistered,e as pickDefaultPath,r as registerDynamicAdminRoutes,a as resetDynamicAdminRoutes};

@ -1 +1 @@
import{t as e}from"./axios-DUaTpsmW.js";var t=`szkp_h5_verify_token`,n=`szkp_verify_portal_code`,r=`szkp_verify_portal_legacy_token`,i=`szkp_verify_auth_mode`,a=`https://szkp-map.langye.net/api`;function o(){let e=localStorage.getItem(n),t=localStorage.getItem(r),i=(window.location.pathname||``).includes(`/m/verify`)?`m/verify/login`:`h5/verify/login`,a=`/admin/`,o=a.endsWith(`/`)?a:`${a}/`,s=new URL(`${window.location.origin}${o}${i}`);return e?s.searchParams.set(`v`,e):t&&s.searchParams.set(`portal`,t),s.toString()}function s(e){let t=`/admin/`,n=t.endsWith(`/`)?t:`${t}/`,r=new URL(`${window.location.origin}${n}h5/verify/login`);return r.searchParams.set(`v`,String(e).toLowerCase().trim()),r.toString()}var c=e.create({baseURL:a,timeout:2e4});c.interceptors.request.use(e=>{let n=localStorage.getItem(t);return n&&(e.headers.Authorization=`Bearer ${n}`),e}),c.interceptors.response.use(e=>e,e=>{let n=e?.response?.status;if(n===401||n===403){localStorage.removeItem(t);let e=window.location.pathname||``;(e.includes(`/h5/verify`)||e.includes(`/m/verify`))&&window.location.replace(o())}return Promise.reject(e)});export{s as a,r as i,i as n,c as o,n as r,t};
import{t as e}from"./axios-CiYFffbI.js";var t=`szkp_h5_verify_token`,n=`szkp_verify_portal_code`,r=`szkp_verify_portal_legacy_token`,i=`szkp_verify_auth_mode`,a=`https://szkp-map.langye.net/api`;function o(){let e=localStorage.getItem(n),t=localStorage.getItem(r),i=(window.location.pathname||``).includes(`/m/verify`)?`m/verify/login`:`h5/verify/login`,a=`/admin/`,o=a.endsWith(`/`)?a:`${a}/`,s=new URL(`${window.location.origin}${o}${i}`);return e?s.searchParams.set(`v`,e):t&&s.searchParams.set(`portal`,t),s.toString()}function s(e){let t=`/admin/`,n=t.endsWith(`/`)?t:`${t}/`,r=new URL(`${window.location.origin}${n}h5/verify/login`);return r.searchParams.set(`v`,String(e).toLowerCase().trim()),r.toString()}var c=e.create({baseURL:a,timeout:2e4});c.interceptors.request.use(e=>{let n=localStorage.getItem(t);return n&&(e.headers.Authorization=`Bearer ${n}`),e}),c.interceptors.response.use(e=>e,e=>{let n=e?.response?.status;if(n===401||n===403){localStorage.removeItem(t);let e=window.location.pathname||``;(e.includes(`/h5/verify`)||e.includes(`/m/verify`))&&window.location.replace(o())}return Promise.reject(e)});export{s as a,r as i,i as n,c as o,n as r,t};

@ -1 +0,0 @@
import{t as e}from"./axios-DUaTpsmW.js";var t=`szkp_admin_token`,n=e.create({baseURL:`https://szkp-map.langye.net/api`,timeout:1e4});n.interceptors.request.use(e=>{let n=localStorage.getItem(t);return n&&(e.headers.Authorization=`Bearer ${n}`),e});export{n,t};

@ -0,0 +1 @@
import{n as e,t}from"./axios-CiYFffbI.js";var n=`szkp_admin_token`,r=t.create({baseURL:`https://szkp-map.langye.net/api`,timeout:1e4});function i(){let e=`/admin/`;return`${e.endsWith(`/`)?e:`${e}/`}login`}r.interceptors.request.use(e=>{let t=localStorage.getItem(n);return t&&(e.headers.Authorization=`Bearer ${t}`),e}),r.interceptors.response.use(e=>e,t=>{let r=t.response?.status,a=String(t.config?.url??``).includes(`/auth/login`);if(r===401&&!a){localStorage.removeItem(n),e.warning(`登录已过期,请重新登录`);let t=`${i()}?redirect=${encodeURIComponent(window.location.pathname+window.location.search)}`;window.location.replace(t)}return Promise.reject(t)});export{r as n,n as t};

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

@ -5,13 +5,12 @@
<link rel="icon" type="image/svg+xml" href="/admin/favicon.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>苏州市科普场馆地图后台管理系统</title>
<script type="module" crossorigin src="/admin/assets/index-D-AZ5ijJ.js"></script>
<link rel="modulepreload" crossorigin href="/admin/assets/axios-DUaTpsmW.js">
<link rel="modulepreload" crossorigin href="/admin/assets/preload-helper-CII-I4WM.js">
<script type="module" crossorigin src="/admin/assets/index-BI6LL64u.js"></script>
<link rel="modulepreload" crossorigin href="/admin/assets/runtime-core.esm-bundler-CnFWH3R5.js">
<link rel="modulepreload" crossorigin href="/admin/assets/message-Dh9377vh.js">
<link rel="modulepreload" crossorigin href="/admin/assets/http-BWP--XXK.js">
<link rel="modulepreload" crossorigin href="/admin/assets/dynamicAdminRoutes-DxTabGxX.js">
<link rel="modulepreload" crossorigin href="/admin/assets/axios-CiYFffbI.js">
<link rel="modulepreload" crossorigin href="/admin/assets/preload-helper-BIjWqNH5.js">
<link rel="modulepreload" crossorigin href="/admin/assets/http-LCi9aT1G.js">
<link rel="modulepreload" crossorigin href="/admin/assets/dynamicAdminRoutes-hoSIp8h6.js">
<link rel="stylesheet" crossorigin href="/admin/assets/index-_Vo8-Dl1.css">
</head>
<body>

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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

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

@ -1 +1 @@
import{d as a,e,f as t,Y as l,k as s,l as u,n,U as r,p as i,q as c,v as o,y as v,D as d,K as f,t as _,F as g,G as m,H as p,x as y,z as h,B as k,_ as $}from"./index-7lEwBCQE.js";import{i as S}from"./content.O7Pi3gfq.js";import{P as w}from"./poster.C6TYC1FC.js";const b=$(a({__name:"registrations",setup(a){const $=e(0),b=e(""),x=e(!1),N=e(!1),j=e(1),B=e(1),D=e(0),F=e([]);function z(a){const e=(a.session_name||"").trim(),t=(a.session_time_text||"").trim(),l=(a.activity_date||"").trim();return e&&t?`${e} · ${t}`:t||(e&&l?`${e} · ${l}`:e||(l||"场次信息"))}function H(a){if(!a)return"—";const e=new Date(a);return Number.isNaN(e.getTime())?"—":`${e.getFullYear()}/${e.getMonth()+1}/${e.getDate()} ${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}:${String(e.getSeconds()).padStart(2,"0")}`}const I=t(()=>j.value<B.value),M=t(()=>!I.value&&F.value.length>0&&!x.value&&!N.value);async function P(a,e){if($.value){if(e){if(N.value||!I.value)return;N.value=!0}else x.value=!0;try{const t=await S($.value,{page:a,page_size:20});D.value=t.total,B.value=t.last_page||1,t.activity_title&&(b.value=t.activity_title),F.value=e?[...F.value,...t.data||[]]:t.data||[],j.value=a}catch{e||(F.value=[])}finally{x.value=!1,N.value=!1}}}function U(){!I.value||x.value||N.value||P(j.value+1,!0)}return l(a=>{$.value=Number((null==a?void 0:a.id)||0);const e=null==a?void 0:a.title;if(e&&"string"==typeof e)try{b.value=decodeURIComponent(e)}catch{b.value=e}P(1,!1)}),(a,e)=>{const t=r("SubPageBackBtn"),l=o,$=n,S=h,N=_;return i(),s($,{class:"page"},{default:u(()=>[c(t),c($,{class:"body"},{default:u(()=>[b.value?(i(),s($,{key:0,class:"act-hd"},{default:u(()=>[c(l,{class:"act-hd-t"},{default:u(()=>[v(d(b.value),1)]),_:1})]),_:1})):f("",!0),c(N,{"scroll-y":"",class:"scroll","lower-threshold":100,onScrolltolower:U},{default:u(()=>[x.value&&!F.value.length?(i(),s($,{key:0,class:"state-tip"},{default:u(()=>[v("加载中…")]),_:1})):(i(),s($,{key:1,class:"list-outer"},{default:u(()=>[F.value.length?(i(),s($,{key:0,class:"list-wrap"},{default:u(()=>[(i(!0),g(m,null,p(F.value,(a,e)=>(i(),s($,{key:"enr-"+a.id,class:y(["enr-row",{"is-last":e===F.value.length-1}])},{default:u(()=>[c(S,{class:"enr-avatar",src:a.avatar_url||k(w),mode:"aspectFill"},null,8,["src"]),c($,{class:"enr-mid"},{default:u(()=>[c($,{class:"enr-name-row"},{default:u(()=>[c(l,{class:"enr-name"},{default:u(()=>[v(d(a.visitor_name||"—"),1)]),_:2},1024),c(l,{class:"enr-time"},{default:u(()=>[v(d(H(a.created_at)),1)]),_:2},1024)]),_:2},1024),c(l,{class:"enr-session"},{default:u(()=>[v(d(z(a)),1)]),_:2},1024)]),_:2},1024)]),_:2},1032,["class"]))),128))]),_:1})):f("",!0),x.value||F.value.length?f("",!0):(i(),s($,{key:1,class:"state-tip"},{default:u(()=>[v("暂无报名")]),_:1})),M.value?(i(),s($,{key:2,class:"enr-end"},{default:u(()=>[v("这回真没了~")]),_:1})):f("",!0)]),_:1}))]),_:1})]),_:1})]),_:1})}}}),[["__scopeId","data-v-fcaf9d69"]]);export{b as default};
import{d as a,e,f as t,Y as l,k as s,l as u,n,U as r,p as i,q as c,v as o,y as v,D as d,K as f,t as _,F as g,G as m,H as p,x as y,z as h,B as k,_ as $}from"./index-CORBEQVN.js";import{i as S}from"./content.B1S8Su0K.js";import{P as w}from"./poster.C6TYC1FC.js";const b=$(a({__name:"registrations",setup(a){const $=e(0),b=e(""),x=e(!1),N=e(!1),j=e(1),B=e(1),D=e(0),F=e([]);function z(a){const e=(a.session_name||"").trim(),t=(a.session_time_text||"").trim(),l=(a.activity_date||"").trim();return e&&t?`${e} · ${t}`:t||(e&&l?`${e} · ${l}`:e||(l||"场次信息"))}function H(a){if(!a)return"—";const e=new Date(a);return Number.isNaN(e.getTime())?"—":`${e.getFullYear()}/${e.getMonth()+1}/${e.getDate()} ${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}:${String(e.getSeconds()).padStart(2,"0")}`}const I=t(()=>j.value<B.value),M=t(()=>!I.value&&F.value.length>0&&!x.value&&!N.value);async function P(a,e){if($.value){if(e){if(N.value||!I.value)return;N.value=!0}else x.value=!0;try{const t=await S($.value,{page:a,page_size:20});D.value=t.total,B.value=t.last_page||1,t.activity_title&&(b.value=t.activity_title),F.value=e?[...F.value,...t.data||[]]:t.data||[],j.value=a}catch{e||(F.value=[])}finally{x.value=!1,N.value=!1}}}function U(){!I.value||x.value||N.value||P(j.value+1,!0)}return l(a=>{$.value=Number((null==a?void 0:a.id)||0);const e=null==a?void 0:a.title;if(e&&"string"==typeof e)try{b.value=decodeURIComponent(e)}catch{b.value=e}P(1,!1)}),(a,e)=>{const t=r("SubPageBackBtn"),l=o,$=n,S=h,N=_;return i(),s($,{class:"page"},{default:u(()=>[c(t),c($,{class:"body"},{default:u(()=>[b.value?(i(),s($,{key:0,class:"act-hd"},{default:u(()=>[c(l,{class:"act-hd-t"},{default:u(()=>[v(d(b.value),1)]),_:1})]),_:1})):f("",!0),c(N,{"scroll-y":"",class:"scroll","lower-threshold":100,onScrolltolower:U},{default:u(()=>[x.value&&!F.value.length?(i(),s($,{key:0,class:"state-tip"},{default:u(()=>[v("加载中…")]),_:1})):(i(),s($,{key:1,class:"list-outer"},{default:u(()=>[F.value.length?(i(),s($,{key:0,class:"list-wrap"},{default:u(()=>[(i(!0),g(m,null,p(F.value,(a,e)=>(i(),s($,{key:"enr-"+a.id,class:y(["enr-row",{"is-last":e===F.value.length-1}])},{default:u(()=>[c(S,{class:"enr-avatar",src:a.avatar_url||k(w),mode:"aspectFill"},null,8,["src"]),c($,{class:"enr-mid"},{default:u(()=>[c($,{class:"enr-name-row"},{default:u(()=>[c(l,{class:"enr-name"},{default:u(()=>[v(d(a.visitor_name||"—"),1)]),_:2},1024),c(l,{class:"enr-time"},{default:u(()=>[v(d(H(a.created_at)),1)]),_:2},1024)]),_:2},1024),c(l,{class:"enr-session"},{default:u(()=>[v(d(z(a)),1)]),_:2},1024)]),_:2},1024)]),_:2},1032,["class"]))),128))]),_:1})):f("",!0),x.value||F.value.length?f("",!0):(i(),s($,{key:1,class:"state-tip"},{default:u(()=>[v("暂无报名")]),_:1})),M.value?(i(),s($,{key:2,class:"enr-end"},{default:u(()=>[v("这回真没了~")]),_:1})):f("",!0)]),_:1}))]),_:1})]),_:1})]),_:1})}}}),[["__scopeId","data-v-fcaf9d69"]]);export{b as default};

@ -1 +1 @@
import{d as a,e as s,j as e,P as l,Q as t,k as u,l as r,n as o,p as n,q as c,z as d,B as i,I as f,F as m,G as _,H as v,v as p,y as h,D as y,K as g,L as k,R as b,T as w,N as x,_ as j}from"./index-7lEwBCQE.js";import{c as C}from"./content.O7Pi3gfq.js";import{P as F}from"./poster.C6TYC1FC.js";import{s as V}from"./search.BJnl3YRK.js";const I=j(a({__name:"index",setup(a){const j=s([]),I=s(!1),N=s("");async function P(){I.value=!0;try{j.value=await C({keyword:N.value.trim()||void 0})||[]}catch{j.value=[]}finally{I.value=!1}}function q(){P()}function z(){b().length>1?w({fail:()=>{x({url:"/pages/index/index"})}}):x({url:"/pages/index/index"})}return e(()=>{P()}),l(async()=>{try{await P()}finally{t()}}),(a,s)=>{const e=o,l=d,t=f,b=p;return n(),u(e,{class:"page"},{default:r(()=>[c(e,{class:"toolbar"},{default:r(()=>[c(e,{class:"toolbar-row"},{default:r(()=>[c(e,{class:"back-btn","hover-class":"back-btn--hover","hover-stay-time":"80",onClick:z},{default:r(()=>[c(e,{class:"back-btn__icon","aria-hidden":"true"})]),_:1}),c(e,{class:"search-wrap"},{default:r(()=>[c(l,{class:"search-icon-img",src:i(V),mode:"aspectFit"},null,8,["src"]),c(t,{modelValue:N.value,"onUpdate:modelValue":s[0]||(s[0]=a=>N.value=a),class:"search-input",placeholder:"请输入您要搜索的内容","placeholder-class":"ph","confirm-type":"search",onConfirm:q},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),c(e,{class:"section"},{default:r(()=>[(n(!0),m(_,null,v(j.value,a=>(n(),u(e,{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(()=>[c(e,{class:"tour-img-wrap"},{default:r(()=>[c(l,{class:"tour-img",src:a.cover_image||i(F),mode:"aspectFill"},null,8,["src"])]),_:2},1024),c(e,{class:"tour-body"},{default:r(()=>{var s;return[c(b,{class:"tour-title"},{default:r(()=>[h(y(a.name),1)]),_:2},1024),c(e,{class:"tour-stops-timeline"},{default:r(()=>[(n(!0),m(_,null,v(a.venue_names||[],(s,l)=>(n(),u(e,{key:"v-"+a.id+"-"+l,class:"tour-stop-row"},{default:r(()=>[c(e,{class:"tour-timeline-axis"},{default:r(()=>{var s;return[c(e,{class:"tour-dot-cell"},{default:r(()=>[c(e,{class:"tour-tl-dot"})]),_:1}),Number(l)<((null==(s=a.venue_names)?void 0:s.length)||0)-1?(n(),u(e,{key:0,class:"tour-tl-line"})):g("",!0)]}),_:2},1024),c(b,{class:"tour-stop-name"},{default:r(()=>[h(y(s),1)]),_:2},1024)]),_:2},1024))),128))]),_:2},1024),(null==(s=a.tags)?void 0:s.length)?(n(),u(e,{key:0,class:"tour-tags-row"},{default:r(()=>[(n(!0),m(_,null,v(a.tags,(s,e)=>(n(),u(b,{key:"t-"+a.id+"-"+e,class:"tour-tag"},{default:r(()=>[h(y(s),1)]),_:2},1024))),128))]),_:2},1024)):g("",!0)]}),_:2},1024)]),_:2},1032,["onClick"]))),128)),I.value&&!j.value.length?(n(),u(e,{key:0,class:"hint"},{default:r(()=>[h("加载中…")]),_:1})):g("",!0),I.value||j.value.length?g("",!0):(n(),u(e,{key:1,class:"hint muted"},{default:r(()=>[h("暂无科普四季研学线路推荐")]),_:1}))]),_:1})]),_:1})}}}),[["__scopeId","data-v-7241eb4d"]]);export{I as default};
import{d as a,e as s,j as e,P as l,Q as t,k as u,l as r,n as o,p as n,q as c,z as d,B as i,I as f,F as m,G as _,H as v,v as p,y as h,D as y,K as g,L as k,R as b,T as w,N as x,_ as j}from"./index-CORBEQVN.js";import{c as C}from"./content.B1S8Su0K.js";import{P as F}from"./poster.C6TYC1FC.js";import{s as V}from"./search.BJnl3YRK.js";const I=j(a({__name:"index",setup(a){const j=s([]),I=s(!1),N=s("");async function P(){I.value=!0;try{j.value=await C({keyword:N.value.trim()||void 0})||[]}catch{j.value=[]}finally{I.value=!1}}function q(){P()}function z(){b().length>1?w({fail:()=>{x({url:"/pages/index/index"})}}):x({url:"/pages/index/index"})}return e(()=>{P()}),l(async()=>{try{await P()}finally{t()}}),(a,s)=>{const e=o,l=d,t=f,b=p;return n(),u(e,{class:"page"},{default:r(()=>[c(e,{class:"toolbar"},{default:r(()=>[c(e,{class:"toolbar-row"},{default:r(()=>[c(e,{class:"back-btn","hover-class":"back-btn--hover","hover-stay-time":"80",onClick:z},{default:r(()=>[c(e,{class:"back-btn__icon","aria-hidden":"true"})]),_:1}),c(e,{class:"search-wrap"},{default:r(()=>[c(l,{class:"search-icon-img",src:i(V),mode:"aspectFit"},null,8,["src"]),c(t,{modelValue:N.value,"onUpdate:modelValue":s[0]||(s[0]=a=>N.value=a),class:"search-input",placeholder:"请输入您要搜索的内容","placeholder-class":"ph","confirm-type":"search",onConfirm:q},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),c(e,{class:"section"},{default:r(()=>[(n(!0),m(_,null,v(j.value,a=>(n(),u(e,{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(()=>[c(e,{class:"tour-img-wrap"},{default:r(()=>[c(l,{class:"tour-img",src:a.cover_image||i(F),mode:"aspectFill"},null,8,["src"])]),_:2},1024),c(e,{class:"tour-body"},{default:r(()=>{var s;return[c(b,{class:"tour-title"},{default:r(()=>[h(y(a.name),1)]),_:2},1024),c(e,{class:"tour-stops-timeline"},{default:r(()=>[(n(!0),m(_,null,v(a.venue_names||[],(s,l)=>(n(),u(e,{key:"v-"+a.id+"-"+l,class:"tour-stop-row"},{default:r(()=>[c(e,{class:"tour-timeline-axis"},{default:r(()=>{var s;return[c(e,{class:"tour-dot-cell"},{default:r(()=>[c(e,{class:"tour-tl-dot"})]),_:1}),Number(l)<((null==(s=a.venue_names)?void 0:s.length)||0)-1?(n(),u(e,{key:0,class:"tour-tl-line"})):g("",!0)]}),_:2},1024),c(b,{class:"tour-stop-name"},{default:r(()=>[h(y(s),1)]),_:2},1024)]),_:2},1024))),128))]),_:2},1024),(null==(s=a.tags)?void 0:s.length)?(n(),u(e,{key:0,class:"tour-tags-row"},{default:r(()=>[(n(!0),m(_,null,v(a.tags,(s,e)=>(n(),u(b,{key:"t-"+a.id+"-"+e,class:"tour-tag"},{default:r(()=>[h(y(s),1)]),_:2},1024))),128))]),_:2},1024)):g("",!0)]}),_:2},1024)]),_:2},1032,["onClick"]))),128)),I.value&&!j.value.length?(n(),u(e,{key:0,class:"hint"},{default:r(()=>[h("加载中…")]),_:1})):g("",!0),I.value||j.value.length?g("",!0):(n(),u(e,{key:1,class:"hint muted"},{default:r(()=>[h("暂无科普四季研学线路推荐")]),_:1}))]),_:1})]),_:1})}}}),[["__scopeId","data-v-7241eb4d"]]);export{I 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 l,o as e,k as s,l as n,g as u,S as t,n as o,p as c,q as r,z as i,y as d,D as f,v,L as _,_ as p}from"./index-7lEwBCQE.js";import{g as m,l as h}from"./localProfile.CcaLRQd4.js";const k=p(a({__name:"index",setup(a){const p=l("游客"),k=l(""),g=l("");function y(a){return a&&11===a.length?`${a.slice(0,3)}****${a.slice(7)}`:a||""}function x(){_({url:"/pages/mine/profile"})}function C(){_({url:"/pages/mine/orders"})}return e(()=>{!async function(){var a;if(u(t.accessToken))try{const a=await m();return p.value=(a.real_name||a.nickname||"用户").trim()||"用户",k.value=a.phone?y(a.phone):"",void(g.value=a.avatar_url||"")}catch{}const l=h();p.value=(null==(a=null==l?void 0:l.real_name)?void 0:a.trim())||"游客",k.value=(null==l?void 0:l.phone)?y(l.phone):"",g.value=(null==l?void 0:l.avatar_url)||""}()}),(a,l)=>{const e=i,u=o,t=v;return c(),s(u,{class:"page"},{default:n(()=>[r(u,{class:"header"},{default:n(()=>[r(u,{class:"profile",onClick:x},{default:n(()=>[g.value?(c(),s(e,{key:0,class:"avatar",src:g.value,mode:"aspectFill"},null,8,["src"])):(c(),s(u,{key:1,class:"avatar placeholder"})),r(u,{class:"profile-info"},{default:n(()=>[r(u,{class:"name"},{default:n(()=>[d(f(p.value),1)]),_:1}),r(u,{class:"phone"},{default:n(()=>[d(f(k.value||"完善信息方便预约"),1)]),_:1})]),_:1})]),_:1})]),_:1}),r(u,{class:"panel"},{default:n(()=>[r(u,{class:"menu-item",onClick:x},{default:n(()=>[r(t,null,{default:n(()=>[d("我的信息")]),_:1}),r(t,null,{default:n(()=>[d(">")]),_:1})]),_:1}),r(u,{class:"menu-item",onClick:C},{default:n(()=>[r(t,null,{default:n(()=>[d("预约记录")]),_:1}),r(t,null,{default:n(()=>[d(">")]),_:1})]),_:1})]),_:1})]),_:1})}}}),[["__scopeId","data-v-0d216b84"]]);export{k as default};
import{d as a,e as l,o as e,k as s,l as n,g as u,S as t,n as o,p as c,q as r,z as i,y as d,D as f,v,L as _,_ as p}from"./index-CORBEQVN.js";import{g as m,l as h}from"./localProfile.DLI0sDqy.js";const k=p(a({__name:"index",setup(a){const p=l("游客"),k=l(""),g=l("");function y(a){return a&&11===a.length?`${a.slice(0,3)}****${a.slice(7)}`:a||""}function x(){_({url:"/pages/mine/profile"})}function C(){_({url:"/pages/mine/orders"})}return e(()=>{!async function(){var a;if(u(t.accessToken))try{const a=await m();return p.value=(a.real_name||a.nickname||"用户").trim()||"用户",k.value=a.phone?y(a.phone):"",void(g.value=a.avatar_url||"")}catch{}const l=h();p.value=(null==(a=null==l?void 0:l.real_name)?void 0:a.trim())||"游客",k.value=(null==l?void 0:l.phone)?y(l.phone):"",g.value=(null==l?void 0:l.avatar_url)||""}()}),(a,l)=>{const e=i,u=o,t=v;return c(),s(u,{class:"page"},{default:n(()=>[r(u,{class:"header"},{default:n(()=>[r(u,{class:"profile",onClick:x},{default:n(()=>[g.value?(c(),s(e,{key:0,class:"avatar",src:g.value,mode:"aspectFill"},null,8,["src"])):(c(),s(u,{key:1,class:"avatar placeholder"})),r(u,{class:"profile-info"},{default:n(()=>[r(u,{class:"name"},{default:n(()=>[d(f(p.value),1)]),_:1}),r(u,{class:"phone"},{default:n(()=>[d(f(k.value||"完善信息方便预约"),1)]),_:1})]),_:1})]),_:1})]),_:1}),r(u,{class:"panel"},{default:n(()=>[r(u,{class:"menu-item",onClick:x},{default:n(()=>[r(t,null,{default:n(()=>[d("我的信息")]),_:1}),r(t,null,{default:n(()=>[d(">")]),_:1})]),_:1}),r(u,{class:"menu-item",onClick:C},{default:n(()=>[r(t,null,{default:n(()=>[d("预约记录")]),_:1}),r(t,null,{default:n(()=>[d(">")]),_:1})]),_:1})]),_:1})]),_:1})}}}),[["__scopeId","data-v-0d216b84"]]);export{k as default};

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

@ -1 +1 @@
import{d as a,e as s,j as t,a9 as l,o as e,P as n,Q as u,k as i,l as c,s as o,n as r,U as d,p as f,q as _,J as m,v,y as p,F as y,G as g,H as k,x as h,D as C,z as b,B as j,K as w,L as x,_ as B}from"./index-7lEwBCQE.js";import{a as P,g as A}from"./content.O7Pi3gfq.js";import{g as F,l as H}from"./peopleCounting.Bd6LhoOP.js";import{P as L}from"./poster.C6TYC1FC.js";const S=B(a({__name:"index",setup(a){const B=s(!0),S=s([]),q=s(6);async function z(){B.value=!0;try{const[a,s,t]=await Promise.all([P({only_included_in_stats:!0}),A().catch(()=>null),F().catch(()=>null)]),l=Array.isArray(a)?a:[],e=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),n=H(t);S.value=function(a,s,t){const l=a.map(a=>{const l=(a.district||"").trim(),e=l?s[l]??l:"";return{id:a.id,name:a.name||"未命名场馆",district:e,cover_image:a.cover_image||null,liveCount:t.has(a.id)?t.get(a.id):null}}),e=l.filter(a=>null!==a.liveCount),n=l.filter(a=>null===a.liveCount);return e.sort((a,s)=>(s.liveCount??0)-(a.liveCount??0)),[...e,...n]}(l,e,n)}catch(a){o({title:(null==a?void 0:a.message)||"加载失败",icon:"none"}),S.value=[]}finally{B.value=!1}}return t(()=>{try{const a=l();q.value=Number(a.statusBarHeight||0)+6}catch{q.value=6}}),e(()=>{z()}),n(async()=>{try{await z()}finally{u()}}),(a,s)=>{const t=d("SubPageBackBtn"),l=r,e=v,n=b;return f(),i(l,{class:"page"},{default:c(()=>[_(l,{class:"stats-header",style:m({paddingTop:q.value+"px"})},{default:c(()=>[_(l,{class:"stats-header-row"},{default:c(()=>[_(t,{embedded:""}),_(l,{class:"stats-title-line"},{default:c(()=>[_(l,{class:"title-left"},{default:c(()=>[_(l,{class:"bar","aria-hidden":"true"}),_(e,{class:"title"},{default:c(()=>[p("今日客流量统计")]),_:1})]),_:1}),_(e,{class:"title-hint"},{default:c(()=>[p("纳入市科协人数统计系统场馆")]),_:1})]),_:1})]),_:1})]),_:1},8,["style"]),B.value&&!S.value.length?(f(),i(l,{key:0,class:"state"},{default:c(()=>[p("加载中…")]),_:1})):S.value.length?(f(),i(l,{key:2,class:"list"},{default:c(()=>[(f(!0),y(g,null,k(S.value,(a,s)=>(f(),i(l,{key:a.id,class:h(["row",{"is-top1":0===s,"is-top2":1===s,"is-top3":2===s}]),onClick:s=>{var t;(t=a.id)&&x({url:`/pages/venue/detail?id=${t}`})}},{default:c(()=>[_(l,{class:"rank-wrap"},{default:c(()=>[s<3?(f(),i(l,{key:0,class:h(["medal","m"+(s+1)])},{default:c(()=>[p(C(s+1),1)]),_:2},1032,["class"])):(f(),i(e,{key:1,class:"rank-num"},{default:c(()=>[p(C(s+1),1)]),_:2},1024))]),_:2},1024),_(n,{class:"thumb",src:a.cover_image||j(L),mode:"aspectFill"},null,8,["src"]),_(l,{class:"mid"},{default:c(()=>[_(e,{class:"name"},{default:c(()=>[p(C(a.name),1)]),_:2},1024),a.district?(f(),i(e,{key:0,class:"district"},{default:c(()=>[p(C(a.district),1)]),_:2},1024)):w("",!0)]),_:2},1024),_(l,{class:"count-block"},{default:c(()=>[_(e,{class:"count-label"},{default:c(()=>[p("实时人数")]),_:1}),_(l,{class:"count-row"},{default:c(()=>[_(e,{class:h(["count",{"count--na":null===a.liveCount}])},{default:c(()=>[p(C(null===a.liveCount?"—":a.liveCount.toLocaleString()),1)]),_:2},1032,["class"]),_(e,{class:"unit"},{default:c(()=>[p("人")]),_:1})]),_:2},1024)]),_:2},1024)]),_:2},1032,["class","onClick"]))),128))]),_:1})):(f(),i(l,{key:1,class:"state muted"},{default:c(()=>[p("暂无已上架场馆")]),_:1})),_(l,{class:"bottom-safe"})]),_:1})}}}),[["__scopeId","data-v-94e01243"]]);export{S as default};
import{d as a,e as s,j as t,a9 as l,o as e,P as n,Q as u,k as i,l as c,s as o,n as r,U as d,p as f,q as _,J as m,v,y as p,F as y,G as g,H as k,x as h,D as C,z as b,B as j,K as w,L as x,_ as B}from"./index-CORBEQVN.js";import{a as P,g as A}from"./content.B1S8Su0K.js";import{g as F,l as H}from"./peopleCounting.CYkqmkk0.js";import{P as L}from"./poster.C6TYC1FC.js";const S=B(a({__name:"index",setup(a){const B=s(!0),S=s([]),q=s(6);async function z(){B.value=!0;try{const[a,s,t]=await Promise.all([P({only_included_in_stats:!0}),A().catch(()=>null),F().catch(()=>null)]),l=Array.isArray(a)?a:[],e=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),n=H(t);S.value=function(a,s,t){const l=a.map(a=>{const l=(a.district||"").trim(),e=l?s[l]??l:"";return{id:a.id,name:a.name||"未命名场馆",district:e,cover_image:a.cover_image||null,liveCount:t.has(a.id)?t.get(a.id):null}}),e=l.filter(a=>null!==a.liveCount),n=l.filter(a=>null===a.liveCount);return e.sort((a,s)=>(s.liveCount??0)-(a.liveCount??0)),[...e,...n]}(l,e,n)}catch(a){o({title:(null==a?void 0:a.message)||"加载失败",icon:"none"}),S.value=[]}finally{B.value=!1}}return t(()=>{try{const a=l();q.value=Number(a.statusBarHeight||0)+6}catch{q.value=6}}),e(()=>{z()}),n(async()=>{try{await z()}finally{u()}}),(a,s)=>{const t=d("SubPageBackBtn"),l=r,e=v,n=b;return f(),i(l,{class:"page"},{default:c(()=>[_(l,{class:"stats-header",style:m({paddingTop:q.value+"px"})},{default:c(()=>[_(l,{class:"stats-header-row"},{default:c(()=>[_(t,{embedded:""}),_(l,{class:"stats-title-line"},{default:c(()=>[_(l,{class:"title-left"},{default:c(()=>[_(l,{class:"bar","aria-hidden":"true"}),_(e,{class:"title"},{default:c(()=>[p("今日客流量统计")]),_:1})]),_:1}),_(e,{class:"title-hint"},{default:c(()=>[p("纳入市科协人数统计系统场馆")]),_:1})]),_:1})]),_:1})]),_:1},8,["style"]),B.value&&!S.value.length?(f(),i(l,{key:0,class:"state"},{default:c(()=>[p("加载中…")]),_:1})):S.value.length?(f(),i(l,{key:2,class:"list"},{default:c(()=>[(f(!0),y(g,null,k(S.value,(a,s)=>(f(),i(l,{key:a.id,class:h(["row",{"is-top1":0===s,"is-top2":1===s,"is-top3":2===s}]),onClick:s=>{var t;(t=a.id)&&x({url:`/pages/venue/detail?id=${t}`})}},{default:c(()=>[_(l,{class:"rank-wrap"},{default:c(()=>[s<3?(f(),i(l,{key:0,class:h(["medal","m"+(s+1)])},{default:c(()=>[p(C(s+1),1)]),_:2},1032,["class"])):(f(),i(e,{key:1,class:"rank-num"},{default:c(()=>[p(C(s+1),1)]),_:2},1024))]),_:2},1024),_(n,{class:"thumb",src:a.cover_image||j(L),mode:"aspectFill"},null,8,["src"]),_(l,{class:"mid"},{default:c(()=>[_(e,{class:"name"},{default:c(()=>[p(C(a.name),1)]),_:2},1024),a.district?(f(),i(e,{key:0,class:"district"},{default:c(()=>[p(C(a.district),1)]),_:2},1024)):w("",!0)]),_:2},1024),_(l,{class:"count-block"},{default:c(()=>[_(e,{class:"count-label"},{default:c(()=>[p("实时人数")]),_:1}),_(l,{class:"count-row"},{default:c(()=>[_(e,{class:h(["count",{"count--na":null===a.liveCount}])},{default:c(()=>[p(C(null===a.liveCount?"—":a.liveCount.toLocaleString()),1)]),_:2},1032,["class"]),_(e,{class:"unit"},{default:c(()=>[p("人")]),_:1})]),_:2},1024)]),_:2},1024)]),_:2},1032,["class","onClick"]))),128))]),_:1})):(f(),i(l,{key:1,class:"state muted"},{default:c(()=>[p("暂无已上架场馆")]),_:1})),_(l,{class:"bottom-safe"})]),_:1})}}}),[["__scopeId","data-v-94e01243"]]);export{S as default};

@ -1 +1 @@
import{d as a,e,f as l,j as t,a3 as s,w as u,k as d,l as c,ab as v,n,U as i,p as r,q as o,v as f,y as h,x as y,D as x,ac as _,J as g,F as m,G as p,H as k,_ as S}from"./index-7lEwBCQE.js";const w="trafficLineChart",b=S(a({__name:"index",setup(a){const S=e("week"),b={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}]},T=l(()=>b[S.value]),C=l(()=>{var a,e;return`${(null==(a=T.value[0])?void 0:a.date)||"-"} 至 ${(null==(e=T.value[T.value.length-1])?void 0:e.date)||"-"}`}),F=l(()=>T.value.reduce((a,e)=>e.value>a.value?e:a,T.value[0]));function P(){const a=T.value;if(!a.length)return;const e=v(w),l=24,t=18,s=24,u=18,d=260,c=Math.min(...a.map(a=>a.value)),n=Math.max(...a.map(a=>a.value)),i=Math.max(1,n-c),r=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+r*t/Math.max(1,a.length-1),y:l+(n-e.value)/i*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(),P()}),u(S,async()=>{await s(),P()}),(a,e)=>{const l=i("SubPageBackBtn"),t=n,s=f,u=_;return r(),d(t,{class:"page"},{default:c(()=>[o(l),o(t,{class:"section-title"},{default:c(()=>[o(t,{class:"bar"}),o(s,{class:"title"},{default:c(()=>[h("全市参观人数")]),_:1}),o(t,{class:"period"},{default:c(()=>[o(s,{class:y({active:"week"===S.value}),onClick:e[0]||(e[0]=a=>S.value="week")},{default:c(()=>[h("周")]),_:1},8,["class"]),o(s,{class:y({active:"month"===S.value}),onClick:e[1]||(e[1]=a=>S.value="month")},{default:c(()=>[h("月")]),_:1},8,["class"]),o(s,{class:y({active:"year"===S.value}),onClick:e[2]||(e[2]=a=>S.value="year")},{default:c(()=>[h("年")]),_:1},8,["class"])]),_:1})]),_:1}),o(t,{class:"date-range"},{default:c(()=>[h(x(C.value),1)]),_:1}),o(t,{class:"chart-card"},{default:c(()=>[o(u,{"canvas-id":w,id:w,class:"chart-canvas",style:g("width:680rpx;height:260rpx;")},null,8,["style"]),o(t,{class:"x-axis"},{default:c(()=>[(r(!0),m(p,null,k(T.value,a=>(r(),d(s,{key:a.date},{default:c(()=>[h(x(a.date),1)]),_:2},1024))),128))]),_:1})]),_:1}),o(t,{class:"list-card"},{default:c(()=>[o(t,{class:"list-title"},{default:c(()=>[h("参观人数列表")]),_:1}),(r(!0),m(p,null,k(T.value,a=>(r(),d(t,{key:a.date,class:"row"},{default:c(()=>{var e;return[o(s,{class:"d"},{default:c(()=>[h(x(a.date),1)]),_:2},1024),o(s,{class:y(["c",{hot:a.date===(null==(e=F.value)?void 0:e.date)}])},{default:c(()=>{return[h(x((e=a.value,`${e.toLocaleString()}`)),1)];var e}),_:2},1032,["class"])]}),_:2},1024))),128))]),_:1})]),_:1})}}}),[["__scopeId","data-v-90b339fd"]]);export{b as default};
import{d as a,e,f as l,j as t,a3 as s,w as u,k as d,l as c,ab as v,n,U as i,p as r,q as o,v as f,y as h,x as y,D as x,ac as _,J as g,F as m,G as p,H as k,_ as S}from"./index-CORBEQVN.js";const w="trafficLineChart",b=S(a({__name:"index",setup(a){const S=e("week"),b={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}]},T=l(()=>b[S.value]),C=l(()=>{var a,e;return`${(null==(a=T.value[0])?void 0:a.date)||"-"} 至 ${(null==(e=T.value[T.value.length-1])?void 0:e.date)||"-"}`}),F=l(()=>T.value.reduce((a,e)=>e.value>a.value?e:a,T.value[0]));function P(){const a=T.value;if(!a.length)return;const e=v(w),l=24,t=18,s=24,u=18,d=260,c=Math.min(...a.map(a=>a.value)),n=Math.max(...a.map(a=>a.value)),i=Math.max(1,n-c),r=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+r*t/Math.max(1,a.length-1),y:l+(n-e.value)/i*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(),P()}),u(S,async()=>{await s(),P()}),(a,e)=>{const l=i("SubPageBackBtn"),t=n,s=f,u=_;return r(),d(t,{class:"page"},{default:c(()=>[o(l),o(t,{class:"section-title"},{default:c(()=>[o(t,{class:"bar"}),o(s,{class:"title"},{default:c(()=>[h("全市参观人数")]),_:1}),o(t,{class:"period"},{default:c(()=>[o(s,{class:y({active:"week"===S.value}),onClick:e[0]||(e[0]=a=>S.value="week")},{default:c(()=>[h("周")]),_:1},8,["class"]),o(s,{class:y({active:"month"===S.value}),onClick:e[1]||(e[1]=a=>S.value="month")},{default:c(()=>[h("月")]),_:1},8,["class"]),o(s,{class:y({active:"year"===S.value}),onClick:e[2]||(e[2]=a=>S.value="year")},{default:c(()=>[h("年")]),_:1},8,["class"])]),_:1})]),_:1}),o(t,{class:"date-range"},{default:c(()=>[h(x(C.value),1)]),_:1}),o(t,{class:"chart-card"},{default:c(()=>[o(u,{"canvas-id":w,id:w,class:"chart-canvas",style:g("width:680rpx;height:260rpx;")},null,8,["style"]),o(t,{class:"x-axis"},{default:c(()=>[(r(!0),m(p,null,k(T.value,a=>(r(),d(s,{key:a.date},{default:c(()=>[h(x(a.date),1)]),_:2},1024))),128))]),_:1})]),_:1}),o(t,{class:"list-card"},{default:c(()=>[o(t,{class:"list-title"},{default:c(()=>[h("参观人数列表")]),_:1}),(r(!0),m(p,null,k(T.value,a=>(r(),d(t,{key:a.date,class:"row"},{default:c(()=>{var e;return[o(s,{class:"d"},{default:c(()=>[h(x(a.date),1)]),_:2},1024),o(s,{class:y(["c",{hot:a.date===(null==(e=F.value)?void 0:e.date)}])},{default:c(()=>{return[h(x((e=a.value,`${e.toLocaleString()}`)),1)];var e}),_:2},1032,["class"])]}),_:2},1024))),128))]),_:1})]),_:1})}}}),[["__scopeId","data-v-90b339fd"]]);export{b as default};

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save