You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 line
5.8 KiB

4 weeks ago
import{D as e,Et as t,G as n,J as r,O as i,S as a,T as ee,W as o,Z as s,_t as c,at as l,h as u,in as d,k as f,q as p,st as m,x as h}from"./vue.runtime.esm-bundler-CACvpnko.js";import{_ as g}from"./api-Dpfxb1ca.js";import{T as _,a as v,f as te,h as ne,p as re}from"./index-D5exsJys.js";import{t as y}from"./_plugin-vue_export-helper-CXTkFu_Z.js";import{r as ie}from"./auth-Dp3MNaAu.js";import{t as ae}from"./adminCompetition-D_kJwSx5.js";import{r as oe}from"./site-BxiJvB6v.js";/* empty css */import{n as b,t as x}from"./participantTheme-HEHn5JJn.js";import{c as S,d as C,r as w,s as T}from"./competitionBranding-CAjogVRl.js";import{t as E}from"./PortalHeaderBrand-Q03Xrd7K.js";import{t as D}from"./PortalChangePasswordModal-dT2ISJhC.js";var O={class:`manage-layout-root`},k={class:`navbar navbar-expand-lg layout-header`},A={class:`container-fluid px-4 layout-header-inner`},j={class:`dropdown`},M={class:`header-user dropdown-toggle`,type:`button`,"data-bs-toggle":`dropdown`,"aria-expanded":`false`},N={class:`header-user-name`},P={class:`dropdown-menu dropdown-menu-end header-user-menu`},F={class:`container-fluid px-4 pt-2 pb-1 d-lg-none`},I={class:`mobile-nav-wrap`},L={class:`container-fluid px-4 py-3 layout-main`},R={class:`row g-3 portal-layout-row`},z={class:`col-12 col-md-3 col-lg-2 layout-sider`},se={class:`card h-100 portal-sider-card`},B={class:`card-body`},V={class:`nav flex-column gap-2`},H={class:`col-12 col-md-9 col-lg-10 portal-main-column`},U={class:`manage-main-surface border rounded-3 bg-white h-100`},W={class:`border-top bg-white text-center py-2 small text-secondary prototype-subtitle`},G=y(f({__name:`CompetitionManageLayout`,setup(f){let y=te(),G=re(),K=v(),ce=ae(),q=h(()=>String(y.params.slug??``).trim()),J=c(null),Y=c(``),X=c(T()),le=h(()=>C(X.value,Y.value)),ue=h(()=>{if(S(X.value.review.footerCopyright))return X.value.review.footerCopyright;if(S(X.value.login.footerCopyright))return X.value.login.footerCopyright;let e=Y.value.trim();return e?`版权所有:${e}`:`版权所有:${oe}`});r(`manageCompetitionId`,J),r(`manageCompetitionSlug`,q),r(`manageCompetitionName`,Y);async function de(){let e=q.value;if(e)try{let t=await fetch(`${g()}/api/v1/public/competitions/by-slug/${encodeURIComponent(e)}`,{headers:{Accept:`application/json`}});if(!t.ok)throw Error(`赛事不存在`);let n=await t.json(),r=n.data!=null&&typeof n.data==`object`&&!Array.isArray(n.data)?n.data:n;J.value=Number(r.id),Y.value=String(r.name??``),X.value=w(r.branding_json??null),J.value&&ce.selectCompetition(J.value)}catch{J.value=null,Y.value=``,X.value=T()}}function Z(){K.logout(G),G.replace({name:`manage-login`,params:{slug:q.value}})}let Q=c(null),$=c(!1);function fe(){Q.value?.reset();let e=document.getElementById(`managePasswordModal`);e&&_.getOrCreateInstance(e).show()}async function pe(e){$.value=!0;try{await ie(e),ne.success(`密码已更新`);let t=document.getElementById(`managePasswordModal`);t&&_.getOrCreateInstance(t).hide()}catch(e){Q.value?.setError(e instanceof Error?e.message:`修改密码失败`)}finally{$.value=!1}}return l(X,()=>x(X.value.login.themePrimary),{deep:!0,immediate:!0}),l(q,()=>void de(),{immediate:!0}),o(()=>{document.body.classList.add(`prototype-page`,`participant-portal-theme`,`admin-desktop-page`)}),n(()=>{document.body.classList.remove(`prototype-page`,`participant-portal-theme`,`admin-desktop-page`),b()}),(n,r)=>{let o=s(`router-link`),c=s(`router-view`);return p(),ee(`div`,O,[a(`header`,k,[a(`div`,A,[i(E,{"logo-url":X.value.login.logoUrl,name:le.value},null,8,[`logo-url`,`name`]),a(`div`,j,[a(`button`,M,[r[0]||=a(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,fill:`none`,"aria-hidden":`true`},[a(`circle`,{cx:`12`,cy:`12`,r:`9.5`,stroke:`currentColor`,"stroke-width":`2`}),a(`circle`,{cx:`12`,cy:`9`,r:`3.2`,fill:`currentColor`}),a(`path`,{d:`M6.8 18.2c1.1-2.4 3-3.6 5.2-3.6s4.1 1.2 5.2 3.6`,fill:`currentColor`})],-1),a(`span`,N,d(t(K).displayName),1)]),a(`ul`,P,[a(`li`,null,[a(`a`,{class:`dropdown-item`,href:`javascript:void(0)`,onClick:u(fe,[`prevent`])},[...r[1]||=[a(`span`,{cla