|
|
|
|
|
import{C as e,D as t,Et as n,O as r,S as i,W as a,Y as o,Z as s,_t as c,b as l,ct as u,f as d,g as f,ht as p,in as m,k as h,m as g,q as _,st as v,w as y,x as b}from"./vue.runtime.esm-bundler-OsdSFvn7.js";import{b as x,f as S,l as C,n as w,r as T,u as E}from"./index-CpTiFmNV.js";import{t as D}from"./_plugin-vue_export-helper-CXTkFu_Z.js";import{n as O}from"./auth-Caz6fjbW.js";import{a as k}from"./competitions-B2lNEUkv.js";import{t as A}from"./adminCompetition-BXo69CdG.js";import{i as j}from"./site-j0hHE9UV.js";var M={key:0,class:`menu-section-label`},N=D(h({__name:`AdminMenuNest`,props:{nodes:{}},setup(n){return(a,c)=>{let l=s(`el-sub-menu`),u=s(`el-menu-item`);return _(!0),y(f,null,o(n.nodes,(n,a)=>(_(),y(f,{key:n.section||n.name||String(a)},[n.section&&!n.name?(_(),y(`div`,M,m(n.section),1)):n.children?.length&&n.name?(_(),i(l,{key:1,index:n.name},{title:v(()=>[b(`span`,null,m(n.title),1)]),default:v(()=>[r(N,{nodes:n.children},null,8,[`nodes`])]),_:2},1032,[`index`])):n.name?(_(),i(u,{key:2,index:n.name},{default:v(()=>[t(m(n.title),1)]),_:2},1032,[`index`])):e(``,!0)],64))),128)}}}),[[`__scopeId`,`data-v-346ecfd3`]]),P=D(h({__name:`AdminMenuTree`,props:{nodes:{}},setup(e){let t=C(),n=E(),a=l(()=>t.name==null?``:String(t.name));function o(e){if(!n.hasRoute(e)){S.warning(`该菜单对应的前端页面尚未发布,请刷新或重新部署前端资源`);return}n.push({name:e}).catch(()=>{})}return(t,n)=>{let c=s(`el-menu`);return _(),i(c,{"default-active":a.value,class:`admin-side-menu`,onSelect:o},{default:v(()=>[r(N,{nodes:e.nodes},null,8,[`nodes`])]),_:1},8,[`default-active`])}}}),[[`__scopeId`,`data-v-982feb37`]]),F={class:`header-inner`},I={key:0,class:`muted`},L={class:`switcher-item`},R={class:`truncate`},z={class:`slug truncate`},B={type:`button`,class:`admin-user-trigger`,"aria-label":`账号菜单`},V={class:`admin-user-name`},H=D(h({__name:`AdminLayout`,setup(l){let h=E(),C=w(),D=T(),M=A(),{menus:N}=x(D),{competitions:H,selectedCompetitionId:U}=x(M),{displayName:W}=x(C),G=c(!1),K=c(!1),q=c(!1),J=c(),Y=p({current_password:``,password:``,password_confirmation:``}),X={current_password:[{required:!0,message:`请输入当前密码`,trigger:`blur`}],password:[{required:!0,message:`请输入新密码`,trigger:`blur`},{min:6,max:255,message:`新密码长度为 6–255 个字符`,trigger:`blur`}],password_confirmation:[{required:!0,message:`请再次输入新密码`,trigger:`blur`},{validator:(e,t,n)=>{if(t!==Y.password){n(Error(`两次输入的新密码不一致`));return}n()},trigger:`blur`}]};async function Z(){try{let e=await k({page:1,per_page:100});M.setCompetitionList(e.data)}catch(e){S.warning(e instanceof Error?e.message:`赛事列表加载失败,请检查网络与权限`)}}function ee(){G.value=!G.value}function te(e){M.selectCompetition(e)}function Q(){Y.current_password=``,Y.password=``,Y.password_confirmation=``,J.value?.clearValidate()}function ne(){Q(),K.value=!0}function re(){C.logout(h),h.replace(`/admin/login`)}function ie(e){if(e===`password`){ne();return}e===`logout`&&re()}async function $(){let e=J.value;if(e&&await e.validate().catch(()=>!1)){q.value=!0;try{await O({current_password:Y.current_password,password:Y.password,password_confirmation:Y.password_confirmation}),K.value=!1,S.success(`密码已更新`)}catch(e){S.error(e instanceof Error?e.message:`修改密码失败`)}finally{q.value=!1}}}return a(()=>{j(),Z()}),(a,c)=>{let l=s(`el-button`),p=s(`el-dropdown-item`),h=s(`el-dropdown-menu`),x=s(`el-dropdown`),S=s(`el-header`),C=s(`el-scrollbar`),w=s(`el-aside`),T=s(`router-view`),E=s(`el-main`),D=s(`el-container`),O=s(`el-input`),k=s(`el-form-item`),A=s(`el-form`),j=s(`el-dialog`);return _(),i(D,{class:`admin-shell`},{default:v(()=>[r(S,{class:`admin-header`,height:`56px`},{default:v(()=>[b(`div`,F,[r(l,{circle:``,plain:``,size:`small`,"aria-label":`收起或展开侧栏`,onClick:ee},{default:v(()=>[t(m(G.value?`☰`:`⟨`),1)]),_:1}),c[10]||=b(`span`,{class:`admin-brand`},`管理后台`,-1),c[11]||=b(`div`,{class:`header-spacer`},null,-1),r(x,{trigger:`click`,placement:`bottom-end`},{drop
|