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.1 KiB
1 line
5.1 KiB
import{D as e,Et as t,G as n,J as r,O as i,S as a,T as o,W as s,Z as c,_t as l,at as u,h as d,in as f,k as p,q as m,st as h,x as g}from"./vue.runtime.esm-bundler-CACvpnko.js";import{_}from"./api-Dpfxb1ca.js";import{T as v,a as y,f as ee,h as te,p as ne}from"./index-D5exsJys.js";import{r as re}from"./auth-Dp3MNaAu.js";import{t as ie}from"./adminCompetition-D_kJwSx5.js";import{r as ae}from"./site-BxiJvB6v.js";/* empty css */import{n as oe,t as b}from"./participantTheme-HEHn5JJn.js";import{c as x,d as S,r as C,s as w}from"./competitionBranding-CAjogVRl.js";import{t as T}from"./PortalHeaderBrand-Q03Xrd7K.js";import{t as E}from"./PortalChangePasswordModal-dT2ISJhC.js";var D={class:`manage-layout-root`},O={class:`navbar navbar-expand-lg layout-header`},k={class:`container-fluid px-4 layout-header-inner`},A={class:`dropdown`},j={class:`header-user dropdown-toggle`,type:`button`,"data-bs-toggle":`dropdown`,"aria-expanded":`false`},M={class:`header-user-name`},N={class:`dropdown-menu dropdown-menu-end header-user-menu`},P={class:`container-fluid px-4 pt-2 pb-1 d-lg-none`},F={class:`mobile-nav-wrap`},I={class:`container-fluid px-4 py-3 layout-main`},L={class:`row g-3 portal-layout-row`},R={class:`col-12 col-md-3 col-lg-2 layout-sider`},z={class:`card h-100 portal-sider-card`},se={class:`card-body`},B={class:`nav flex-column gap-2`},V={class:`col-12 col-md-9 col-lg-10 portal-main-column`},H={class:`manage-main-surface border rounded-3 bg-white h-100 p-3`},U={class:`border-top bg-white text-center py-2 small text-secondary prototype-subtitle`},W=p({__name:`AudienceManageLayout`,setup(p){let W=ee(),G=ne(),K=y(),ce=ie(),q=g(()=>String(W.params.slug??``).trim()),J=l(null),Y=l(``),X=l(w()),le=g(()=>S(X.value,Y.value)),ue=g(()=>{if(x(X.value.review.footerCopyright))return X.value.review.footerCopyright;if(x(X.value.login.footerCopyright))return X.value.login.footerCopyright;let e=Y.value.trim();return e?`版权所有:${e}`:`版权所有:${ae}`});r(`audienceManageCompetitionId`,J),r(`audienceManageCompetitionSlug`,q);async function de(){let e=q.value;if(e)try{let t=await fetch(`${_()}/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=C(r.branding_json??null),J.value&&ce.selectCompetition(J.value)}catch{J.value=null,Y.value=``,X.value=w()}}function Z(){K.logout(G),G.replace({name:`audience-manage-login`,params:{slug:q.value}})}let Q=l(null),$=l(!1);function fe(){Q.value?.reset();let e=document.getElementById(`audienceManagePasswordModal`);e&&v.getOrCreateInstance(e).show()}async function pe(e){$.value=!0;try{await re(e),te.success(`密码已更新`);let t=document.getElementById(`audienceManagePasswordModal`);t&&v.getOrCreateInstance(t).hide()}catch(e){Q.value?.setError(e instanceof Error?e.message:`修改密码失败`)}finally{$.value=!1}}return u(X,()=>b(X.value.login.themePrimary),{deep:!0,immediate:!0}),u(q,()=>void de(),{immediate:!0}),s(()=>{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`),oe()}),(n,r)=>{let s=c(`router-link`),l=c(`router-view`);return m(),o(`div`,D,[a(`header`,O,[a(`div`,k,[i(T,{"logo-url":X.value.login.logoUrl,name:le.value},null,8,[`logo-url`,`name`]),a(`div`,A,[a(`button`,j,[a(`span`,M,f(t(K).displayName),1)]),a(`ul`,N,[a(`li`,null,[a(`a`,{class:`dropdown-item`,href:`javascript:void(0)`,onClick:d(fe,[`prevent`])},`修改密码`)]),r[0]||=a(`li`,null,[a(`hr`,{class:`dropdown-divider`})],-1),a(`li`,null,[a(`a`,{class:`dropdown-item text-danger`,href:`javascript:void(0)`,onClick:d(Z,[`prevent`])},`退出登录`)])])])])]),a(`div`,P,[a(`div`,F,[i(s,{class:`mobile-nav-link`,to:{name:`audience-manage-registrations`,params:{slug:q.value}}},{default:h(()=>[...r[1]||=[e(` 观众报名 `,-1)]]),_:1},8,[`to`]),i(s,{class:`mobile-nav-link`,to:{name:`audience-manage-sessions`,params:{slug:q.value}}},{default:h(()=>[...r[2]||=[e(` 观众场次 `,-1)]]),_:1},8,[`to`]),i(s,{class:`mobile-nav-link`,to:{name:`audience-checkin`,params:{slug:q.value}}},{default:h(()=>[...r[3]||=[e(` 现场核销 `,-1)]]),_:1},8,[`to`])])]),a(`div`,I,[a(`div`,L,[a(`aside`,R,[a(`div`,z,[a(`div`,se,[a(`nav`,B,[i(s,{class:`nav-link text-start`,to:{name:`audience-manage-registrations`,params:{slug:q.value}}},{default:h(()=>[...r[4]||=[e(` 观众报名 `,-1)]]),_:1},8,[`to`]),i(s,{class:`nav-link text-start`,to:{name:`audience-manage-sessions`,params:{slug:q.value}}},{default:h(()=>[...r[5]||=[e(` 观众场次 `,-1)]]),_:1},8,[`to`]),i(s,{class:`nav-link text-start`,to:{name:`audience-checkin`,params:{slug:q.value}}},{default:h(()=>[...r[6]||=[e(` 现场核销 `,-1)]]),_:1},8,[`to`])])])])]),a(`main`,V,[a(`div`,H,[i(l)])])])]),a(`footer`,U,f(ue.value),1),i(E,{ref_key:`passwordModalRef`,ref:Q,"modal-id":`audienceManagePasswordModal`,submitting:$.value,onSubmit:pe},null,8,[`submitting`])])}}});export{W as default}; |