超管编辑

master
lion 14 hours ago
parent b7645e0a83
commit aa9782bfbb

@ -371,13 +371,16 @@ class ActivityController extends Controller
{
$this->ensureVenueOrCreatorPermission($request, $activity);
$this->authorizeActivityFullEdit($request, $activity);
if (
ActivityAuditLog::query()
->where('activity_id', $activity->id)
->where('action', ActivityAuditLog::ACTION_APPROVE)
->exists()
) {
return response()->json(['message' => '该活动曾审核通过,无法删除'], 422);
/** 超管可删除曾审核通过且无报名记录的活动;非超管仍受限 */
if (! $request->user()?->isSuperAdmin()) {
if (
ActivityAuditLog::query()
->where('activity_id', $activity->id)
->where('action', ActivityAuditLog::ACTION_APPROVE)
->exists()
) {
return response()->json(['message' => '该活动曾审核通过,无法删除'], 422);
}
}
$count = $activity->reservations()->count();
if ($count > 0) {

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{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{u as h}from"./index-BOlQ3aX6.js";import{t as g}from"./listTableRowIndex-DDHXZmUA.js";import{t as _}from"./datetime-L1FWbn-9.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(g)(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(_)(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};
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{u as h}from"./index-uLgpWTLu.js";import{t as g}from"./listTableRowIndex-DDHXZmUA.js";import{t as _}from"./datetime-L1FWbn-9.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(g)(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(_)(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,2 +1,2 @@
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dynamicAdminRoutes-BBUaviAO.js","assets/dynamicAdminRoutes-CwUZM9Ro.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{c as p,s as m}from"./index-BOlQ3aX6.js";var h={style:{height:`100vh`,display:`grid`,"place-items":`center`,background:`var(--color-fill-2)`}},g=l({__name:`Login`,setup(l){let g=p(),_=m(),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-BBUaviAO.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};
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dynamicAdminRoutes-Df5fA-Z0.js","assets/dynamicAdminRoutes-4VhKw3dC.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{c as p,s as m}from"./index-uLgpWTLu.js";var h={style:{height:`100vh`,display:`grid`,"place-items":`center`,background:`var(--color-fill-2)`}},g=l({__name:`Login`,setup(l){let g=p(),_=m(),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-Df5fA-Z0.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{u as o}from"./index-BOlQ3aX6.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{u as o}from"./index-uLgpWTLu.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,2 +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{u as x}from"./index-BOlQ3aX6.js";import{t as S}from"./datetime-L1FWbn-9.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(`
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{u as x}from"./index-uLgpWTLu.js";import{t as S}from"./datetime-L1FWbn-9.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};

@ -1 +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{u as h}from"./index-BOlQ3aX6.js";import{t as g}from"./listTableRowIndex-DDHXZmUA.js";import{n as _,t as v}from"./datetime-L1FWbn-9.js";import{t as y}from"./bookingType-DH_-jZfh.js";import{t as b}from"./reservationStatus-Ctx9kE04.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(g)(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(_)(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(v)(e.created_at)),1)]),_:1}),f(L,{title:`核销时间`,width:175},{cell:i(({record:e})=>[a(c(d(v)(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};
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{u as h}from"./index-uLgpWTLu.js";import{t as g}from"./listTableRowIndex-DDHXZmUA.js";import{n as _,t as v}from"./datetime-L1FWbn-9.js";import{t as y}from"./bookingType-DH_-jZfh.js";import{t as b}from"./reservationStatus-Ctx9kE04.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(g)(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(_)(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(v)(e.created_at)),1)]),_:1}),f(L,{title:`核销时间`,width:175},{cell:i(({record:e})=>[a(c(d(v)(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};

File diff suppressed because one or more lines are too long

@ -1 +1 @@
import{n as e,ot as t}from"./axios-CiYFffbI.js";import{I as n,N as r,V as i,Y as a,_ as o,it as s,p as c,u as l,v as u,y as d}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{c as f,s as p,u as m}from"./index-BOlQ3aX6.js";import{i as h,n as g,o as _,r as v,t as y}from"./h5Http-Dev8ozqN.js";var b={class:`m-verify-page`},x={class:`m-verify-card`},S=m(d({__name:`VerifyLogin`,setup(d){let m=f(),S=p(),C=s(!1),w=s(``);function T(){return S.path.startsWith(`/m/`)?`/m/verify`:`/h5/verify/scan`}function E(){w.value=w.value.replace(/\D/g,``).slice(0,6)}async function D(){if(E(),!/^\d{6}$/.test(w.value.trim())){e.warning(`请输入 6 位数字核销口令`);return}C.value=!0;try{let{data:t}=await _.post(`/verify-portal/login`,{password:w.value.trim()});localStorage.setItem(y,t.token),localStorage.setItem(`${y}_saved_at`,String(Date.now())),localStorage.setItem(g,`portal`),e.success(`登录成功`),m.replace(T())}catch(t){e.error(t?.response?.data?.message??`登录失败`)}finally{C.value=!1}}return r(()=>{localStorage.removeItem(v),localStorage.removeItem(h)}),(e,r)=>{let s=i(`a-input`),d=i(`a-button`);return n(),c(`div`,b,[r[4]||=l(`div`,{class:`m-verify-hero`},[l(`div`,{class:`m-verify-title`},`核销入口`)],-1),l(`div`,x,[r[2]||=l(`div`,{class:`m-verify-section-head`},`6 位数字核销口令`,-1),u(s,{modelValue:w.value,"onUpdate:modelValue":r[0]||=e=>w.value=e,maxlength:`6`,size:`large`,placeholder:`6 位数字口令`,class:`m-verify-pin`,style:{"margin-bottom":`12px`},inputmode:`numeric`,autocomplete:`one-time-code`,onInput:E,onKeyup:t(D,[`enter`])},null,8,[`modelValue`]),u(d,{type:`primary`,long:``,size:`large`,loading:C.value,onClick:D},{default:a(()=>[...r[1]||=[o(` 进入核销页 `,-1)]]),_:1},8,[`loading`]),r[3]||=l(`p`,{class:`m-verify-tip`},` 未点击核销页上的「退出」前会一直保持登录;退出后,下次再打开本链接需重新输入 6 位口令。若口令登录态过期或失效,也会自动回到本页。 `,-1)])])}}}),[[`__scopeId`,`data-v-0f087851`]]);export{S as default};
import{n as e,ot as t}from"./axios-CiYFffbI.js";import{I as n,N as r,V as i,Y as a,_ as o,it as s,p as c,u as l,v as u,y as d}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{c as f,s as p,u as m}from"./index-uLgpWTLu.js";import{i as h,n as g,o as _,r as v,t as y}from"./h5Http-Dev8ozqN.js";var b={class:`m-verify-page`},x={class:`m-verify-card`},S=m(d({__name:`VerifyLogin`,setup(d){let m=f(),S=p(),C=s(!1),w=s(``);function T(){return S.path.startsWith(`/m/`)?`/m/verify`:`/h5/verify/scan`}function E(){w.value=w.value.replace(/\D/g,``).slice(0,6)}async function D(){if(E(),!/^\d{6}$/.test(w.value.trim())){e.warning(`请输入 6 位数字核销口令`);return}C.value=!0;try{let{data:t}=await _.post(`/verify-portal/login`,{password:w.value.trim()});localStorage.setItem(y,t.token),localStorage.setItem(`${y}_saved_at`,String(Date.now())),localStorage.setItem(g,`portal`),e.success(`登录成功`),m.replace(T())}catch(t){e.error(t?.response?.data?.message??`登录失败`)}finally{C.value=!1}}return r(()=>{localStorage.removeItem(v),localStorage.removeItem(h)}),(e,r)=>{let s=i(`a-input`),d=i(`a-button`);return n(),c(`div`,b,[r[4]||=l(`div`,{class:`m-verify-hero`},[l(`div`,{class:`m-verify-title`},`核销入口`)],-1),l(`div`,x,[r[2]||=l(`div`,{class:`m-verify-section-head`},`6 位数字核销口令`,-1),u(s,{modelValue:w.value,"onUpdate:modelValue":r[0]||=e=>w.value=e,maxlength:`6`,size:`large`,placeholder:`6 位数字口令`,class:`m-verify-pin`,style:{"margin-bottom":`12px`},inputmode:`numeric`,autocomplete:`one-time-code`,onInput:E,onKeyup:t(D,[`enter`])},null,8,[`modelValue`]),u(d,{type:`primary`,long:``,size:`large`,loading:C.value,onClick:D},{default:a(()=>[...r[1]||=[o(` 进入核销页 `,-1)]]),_:1},8,[`loading`]),r[3]||=l(`p`,{class:`m-verify-tip`},` 未点击核销页上的「退出」前会一直保持登录;退出后,下次再打开本链接需重新输入 6 位口令。若口令登录态过期或失效,也会自动回到本页。 `,-1)])])}}}),[[`__scopeId`,`data-v-0f087851`]]);export{S as default};

@ -1,2 +1,2 @@
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/Dashboard-3lsoSWiQ.js","assets/index-BOlQ3aX6.js","assets/axios-CiYFffbI.js","assets/runtime-core.esm-bundler-CnFWH3R5.js","assets/preload-helper-BIjWqNH5.js","assets/http-LCi9aT1G.js","assets/index-C6I69YBI.css","assets/hikPdcClient-9YlD6z0w.js","assets/Dashboard-CEidEXey.css","assets/VenueList-DS_GF5lR.js","assets/RichEditorField-Vp0Sr5s8.js","assets/RichEditorField-CTiiQMLC.css","assets/adminMediaLimits-D12la4Im.js","assets/listTableRowIndex-DDHXZmUA.js","assets/mediaUrl-bAQURyY9.js","assets/VenueList-guoEuzho.css","assets/ActivityList-DKMv-SSE.js","assets/xlsx-BP_eUM5j.js","assets/h5Http-Dev8ozqN.js","assets/ActivityList-66m6NwbC.css","assets/Registrations-DHR3CRPo.js","assets/bookingType-DH_-jZfh.js","assets/datetime-L1FWbn-9.js","assets/reservationStatus-Ctx9kE04.js","assets/Registrations-D38-egSu.css","assets/Verify-CsQBEhVU.js","assets/Verify-CYgC_s-p.css","assets/Blacklist-CXG0R0qr.js","assets/Blacklist-CtQQ6LfC.css","assets/TicketGrabList-CUYX8n3Q.js","assets/TicketGrabList-4OtVTr5A.css","assets/TicketGrabRegistrations-CsfbaE1Y.js","assets/TicketGrabRegistrations-BkH9w3sn.css","assets/TicketGrabVerify-BBw5Bugk.js","assets/TicketGrabVerify-C99ifrCo.css","assets/StudyTourList-ClNjfnZ_.js","assets/StudyTourList-B-A_zGvm.css","assets/Monitor-BxeI-0N8.js","assets/PagePlaceholder-Bss73Hr0.js","assets/Leaderboard-DvusoWX1.js","assets/Alerts-Bt8G_R48.js","assets/HikPeopleCounting-BuLkR2hD.js","assets/HikPeopleCounting-vcrBFAvB.css","assets/Overview-C7dDVOjU.js","assets/Regions-B6VqE6Af.js","assets/Categories-DchDpYOx.js","assets/Exports-BMzHKwU7.js","assets/Admins-CUkmciRd.js","assets/Roles-tVLWF9w4.js","assets/Menus-Cqz2Ax_8.js","assets/Menus-CIRuEnr6.css","assets/AuditLogs-D64_xY75.js","assets/AuditLogs-Bd90uV6l.css","assets/Wechat-wUNmiA3b.js","assets/Map-fETI81LH.js","assets/Notifications-CMNWXRRX.js","assets/SystemLogs-D78YOqd_.js","assets/SystemLogs-DSVhElsT.css","assets/Dictionaries-CBmPqTh9.js","assets/WechatUsers-_TatYsMK.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-3lsoSWiQ.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8])),"/venues":()=>t(()=>import(`./VenueList-DS_GF5lR.js`),__vite__mapDeps([9,1,2,3,4,5,6,10,11,12,13,14,15])),"/activities":()=>t(()=>import(`./ActivityList-DKMv-SSE.js`),__vite__mapDeps([16,1,2,3,4,5,6,10,11,17,18,12,13,19])),"/activities/registrations":()=>t(()=>import(`./Registrations-DHR3CRPo.js`),__vite__mapDeps([20,1,2,3,4,5,6,17,21,22,13,23,24])),"/activities/verify":()=>t(()=>import(`./Verify-CsQBEhVU.js`),__vite__mapDeps([25,1,2,3,4,5,6,17,21,22,13,23,26])),"/activities/blacklist":()=>t(()=>import(`./Blacklist-CXG0R0qr.js`),__vite__mapDeps([27,1,2,3,4,5,6,22,28])),"/ticket-grab-events":()=>t(()=>import(`./TicketGrabList-CUYX8n3Q.js`),__vite__mapDeps([29,1,2,3,4,5,6,10,11,17,18,13,14,30])),"/ticket-grab-events/registrations":()=>t(()=>import(`./TicketGrabRegistrations-CsfbaE1Y.js`),__vite__mapDeps([31,1,2,3,4,5,6,17,21,22,13,23,32])),"/ticket-grab-events/verify":()=>t(()=>import(`./TicketGrabVerify-BBw5Bugk.js`),__vite__mapDeps([33,1,2,3,4,5,6,21,22,13,23,34])),"/study-tours":()=>t(()=>import(`./StudyTourList-ClNjfnZ_.js`),__vite__mapDeps([35,1,2,3,4,5,6,10,11,12,13,14,36])),"/traffic":()=>t(()=>import(`./Monitor-BxeI-0N8.js`),__vite__mapDeps([37,3,38])),"/traffic/leaderboard":()=>t(()=>import(`./Leaderboard-DvusoWX1.js`),__vite__mapDeps([39,3,38])),"/traffic/alerts":()=>t(()=>import(`./Alerts-Bt8G_R48.js`),__vite__mapDeps([40,3,38])),"/hik-camera":()=>t(()=>import(`./HikPeopleCounting-BuLkR2hD.js`),__vite__mapDeps([41,1,2,3,4,5,6,7,42])),"/hik-camera/HikPeopleCounting":()=>t(()=>import(`./HikPeopleCounting-BuLkR2hD.js`),__vite__mapDeps([41,1,2,3,4,5,6,7,42])),"/stats":()=>t(()=>import(`./Overview-C7dDVOjU.js`),__vite__mapDeps([43,3,38])),"/stats/regions":()=>t(()=>import(`./Regions-B6VqE6Af.js`),__vite__mapDeps([44,3,38])),"/stats/categories":()=>t(()=>import(`./Categories-DchDpYOx.js`),__vite__mapDeps([45,3,38])),"/stats/exports":()=>t(()=>import(`./Exports-BMzHKwU7.js`),__vite__mapDeps([46,3,38])),"/system/admins":()=>t(()=>import(`./Admins-CUkmciRd.js`),__vite__mapDeps([47,2,3,5,13])),"/system/roles":()=>t(()=>import(`./Roles-tVLWF9w4.js`),__vite__mapDeps([48,1,2,3,4,5,6])),"/system/menus":()=>t(()=>import(`./Menus-Cqz2Ax_8.js`),__vite__mapDeps([49,1,2,3,4,5,6,50])),"/system/audit-logs":()=>t(()=>import(`./AuditLogs-D64_xY75.js`),__vite__mapDeps([51,1,2,3,4,5,6,22,13,52])),"/settings/wechat":()=>t(()=>import(`./Wechat-wUNmiA3b.js`),__vite__mapDeps([53,3,38])),"/settings/map":()=>t(()=>import(`./Map-fETI81LH.js`),__vite__mapDeps([54,1,2,3,4,5,6])),"/settings/notifications":()=>t(()=>import(`./Notifications-CMNWXRRX.js`),__vite__mapDeps([55,3,38])),"/settings/system-logs":()=>t(()=>import(`./SystemLogs-D78YOqd_.js`),__vite__mapDeps([56,1,2,3,4,5,6,22,57])),"/settings/dictionaries":()=>t(()=>import(`./Dictionaries-CBmPqTh9.js`),__vite__mapDeps([58,2,3,5])),"/wechat-users":()=>t(()=>import(`./WechatUsers-_TatYsMK.js`),__vite__mapDeps([59,2,3,5,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};
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/Dashboard-g6-lFi8_.js","assets/index-uLgpWTLu.js","assets/axios-CiYFffbI.js","assets/runtime-core.esm-bundler-CnFWH3R5.js","assets/preload-helper-BIjWqNH5.js","assets/http-LCi9aT1G.js","assets/index-C6I69YBI.css","assets/hikPdcClient-9YlD6z0w.js","assets/Dashboard-CEidEXey.css","assets/VenueList-BGOfc7d4.js","assets/RichEditorField-DcMqH_tt.js","assets/RichEditorField-CTiiQMLC.css","assets/adminMediaLimits-D12la4Im.js","assets/listTableRowIndex-DDHXZmUA.js","assets/mediaUrl-bAQURyY9.js","assets/VenueList-guoEuzho.css","assets/ActivityList-MbFrd_Y9.js","assets/xlsx-BP_eUM5j.js","assets/h5Http-Dev8ozqN.js","assets/ActivityList-Dy5exxF2.css","assets/Registrations-UtS3Kwur.js","assets/bookingType-DH_-jZfh.js","assets/datetime-L1FWbn-9.js","assets/reservationStatus-Ctx9kE04.js","assets/Registrations-D38-egSu.css","assets/Verify-DWU1t6oW.js","assets/Verify-CYgC_s-p.css","assets/Blacklist-j_zGZ_ho.js","assets/Blacklist-CtQQ6LfC.css","assets/TicketGrabList-DTaMIb-r.js","assets/TicketGrabList-4OtVTr5A.css","assets/TicketGrabRegistrations-HCmOkrT4.js","assets/TicketGrabRegistrations-BkH9w3sn.css","assets/TicketGrabVerify-BLXJ_vdq.js","assets/TicketGrabVerify-C99ifrCo.css","assets/StudyTourList-i6-iCMdO.js","assets/StudyTourList-B-A_zGvm.css","assets/Monitor-BxeI-0N8.js","assets/PagePlaceholder-Bss73Hr0.js","assets/Leaderboard-DvusoWX1.js","assets/Alerts-Bt8G_R48.js","assets/HikPeopleCounting-B0XeX4IG.js","assets/HikPeopleCounting-vcrBFAvB.css","assets/Overview-C7dDVOjU.js","assets/Regions-B6VqE6Af.js","assets/Categories-DchDpYOx.js","assets/Exports-BMzHKwU7.js","assets/Admins-CUkmciRd.js","assets/Roles-BBDG9rer.js","assets/Menus-DnnwRL_3.js","assets/Menus-CIRuEnr6.css","assets/AuditLogs-j-SdFcbQ.js","assets/AuditLogs-Bd90uV6l.css","assets/Wechat-wUNmiA3b.js","assets/Map-BJRpQmsN.js","assets/Notifications-CMNWXRRX.js","assets/SystemLogs-C9zLqTuV.js","assets/SystemLogs-DSVhElsT.css","assets/Dictionaries-CBmPqTh9.js","assets/WechatUsers-_TatYsMK.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-g6-lFi8_.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8])),"/venues":()=>t(()=>import(`./VenueList-BGOfc7d4.js`),__vite__mapDeps([9,1,2,3,4,5,6,10,11,12,13,14,15])),"/activities":()=>t(()=>import(`./ActivityList-MbFrd_Y9.js`),__vite__mapDeps([16,1,2,3,4,5,6,10,11,17,18,12,13,19])),"/activities/registrations":()=>t(()=>import(`./Registrations-UtS3Kwur.js`),__vite__mapDeps([20,1,2,3,4,5,6,17,21,22,13,23,24])),"/activities/verify":()=>t(()=>import(`./Verify-DWU1t6oW.js`),__vite__mapDeps([25,1,2,3,4,5,6,17,21,22,13,23,26])),"/activities/blacklist":()=>t(()=>import(`./Blacklist-j_zGZ_ho.js`),__vite__mapDeps([27,1,2,3,4,5,6,22,28])),"/ticket-grab-events":()=>t(()=>import(`./TicketGrabList-DTaMIb-r.js`),__vite__mapDeps([29,1,2,3,4,5,6,10,11,17,18,13,14,30])),"/ticket-grab-events/registrations":()=>t(()=>import(`./TicketGrabRegistrations-HCmOkrT4.js`),__vite__mapDeps([31,1,2,3,4,5,6,17,21,22,13,23,32])),"/ticket-grab-events/verify":()=>t(()=>import(`./TicketGrabVerify-BLXJ_vdq.js`),__vite__mapDeps([33,1,2,3,4,5,6,21,22,13,23,34])),"/study-tours":()=>t(()=>import(`./StudyTourList-i6-iCMdO.js`),__vite__mapDeps([35,1,2,3,4,5,6,10,11,12,13,14,36])),"/traffic":()=>t(()=>import(`./Monitor-BxeI-0N8.js`),__vite__mapDeps([37,3,38])),"/traffic/leaderboard":()=>t(()=>import(`./Leaderboard-DvusoWX1.js`),__vite__mapDeps([39,3,38])),"/traffic/alerts":()=>t(()=>import(`./Alerts-Bt8G_R48.js`),__vite__mapDeps([40,3,38])),"/hik-camera":()=>t(()=>import(`./HikPeopleCounting-B0XeX4IG.js`),__vite__mapDeps([41,1,2,3,4,5,6,7,42])),"/hik-camera/HikPeopleCounting":()=>t(()=>import(`./HikPeopleCounting-B0XeX4IG.js`),__vite__mapDeps([41,1,2,3,4,5,6,7,42])),"/stats":()=>t(()=>import(`./Overview-C7dDVOjU.js`),__vite__mapDeps([43,3,38])),"/stats/regions":()=>t(()=>import(`./Regions-B6VqE6Af.js`),__vite__mapDeps([44,3,38])),"/stats/categories":()=>t(()=>import(`./Categories-DchDpYOx.js`),__vite__mapDeps([45,3,38])),"/stats/exports":()=>t(()=>import(`./Exports-BMzHKwU7.js`),__vite__mapDeps([46,3,38])),"/system/admins":()=>t(()=>import(`./Admins-CUkmciRd.js`),__vite__mapDeps([47,2,3,5,13])),"/system/roles":()=>t(()=>import(`./Roles-BBDG9rer.js`),__vite__mapDeps([48,1,2,3,4,5,6])),"/system/menus":()=>t(()=>import(`./Menus-DnnwRL_3.js`),__vite__mapDeps([49,1,2,3,4,5,6,50])),"/system/audit-logs":()=>t(()=>import(`./AuditLogs-j-SdFcbQ.js`),__vite__mapDeps([51,1,2,3,4,5,6,22,13,52])),"/settings/wechat":()=>t(()=>import(`./Wechat-wUNmiA3b.js`),__vite__mapDeps([53,3,38])),"/settings/map":()=>t(()=>import(`./Map-BJRpQmsN.js`),__vite__mapDeps([54,1,2,3,4,5,6])),"/settings/notifications":()=>t(()=>import(`./Notifications-CMNWXRRX.js`),__vite__mapDeps([55,3,38])),"/settings/system-logs":()=>t(()=>import(`./SystemLogs-C9zLqTuV.js`),__vite__mapDeps([56,1,2,3,4,5,6,22,57])),"/settings/dictionaries":()=>t(()=>import(`./Dictionaries-CBmPqTh9.js`),__vite__mapDeps([58,2,3,5])),"/wechat-users":()=>t(()=>import(`./WechatUsers-_TatYsMK.js`),__vite__mapDeps([59,2,3,5,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};

@ -1 +1 @@
import{a as e,i as t,n,o as r,r as i,s as a,t as o}from"./dynamicAdminRoutes-CwUZM9Ro.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-4VhKw3dC.js";export{o as flattenMenuPaths,n as getCachedAllowedPaths,i as getFirstMenuPath,t as isDynamicRoutesRegistered,e as pickDefaultPath,r as registerDynamicAdminRoutes,a as resetDynamicAdminRoutes};

File diff suppressed because one or more lines are too long

@ -5,12 +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-BOlQ3aX6.js"></script>
<script type="module" crossorigin src="/admin/assets/index-uLgpWTLu.js"></script>
<link rel="modulepreload" crossorigin href="/admin/assets/runtime-core.esm-bundler-CnFWH3R5.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-CwUZM9Ro.js">
<link rel="modulepreload" crossorigin href="/admin/assets/dynamicAdminRoutes-4VhKw3dC.js">
<link rel="stylesheet" crossorigin href="/admin/assets/index-C6I69YBI.css">
</head>
<body>

Loading…
Cancel
Save