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.0 KiB
1 line
5.0 KiB
import{D as e,Et as t,G as n,J as r,O as i,W as a,Z as o,_t as s,at as c,b as l,in as u,k as ee,m as d,q as te,st as f,w as p,x as m}from"./vue.runtime.esm-bundler-OsdSFvn7.js";import{_ as ne}from"./api-Dpfxb1ca.js";import{S as h,f as g,l as _,n as v,u as y}from"./index-CpTiFmNV.js";import{r as b}from"./auth-Caz6fjbW.js";import{t as x}from"./adminCompetition-BXo69CdG.js";import{n as re}from"./site-j0hHE9UV.js";/* empty css */import{n as ie,t as ae}from"./participantTheme-BMONOrEx.js";import{i as S,r as C,t as w}from"./competitionBranding-BjQScvy4.js";import{t as T}from"./PortalChangePasswordModal-DCTlY5aw.js";var E={class:`manage-layout-root`},D={class:`navbar navbar-expand-lg layout-header`},O={class:`container-fluid px-4`},k={class:`navbar-brand mb-0 prototype-title`},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`},B={class:`card-body`},oe={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=ee({__name:`AudienceManageLayout`,setup(ee){let W=_(),G=y(),K=v(),q=x(),J=l(()=>String(W.params.slug??``).trim()),Y=s(null),X=s(``),Z=s(C()),se=l(()=>{let e=X.value.trim();return e?`${e} · 观众信息管理`:`观众信息管理`}),ce=l(()=>{if(S(Z.value.review.footerCopyright))return Z.value.review.footerCopyright;if(S(Z.value.login.footerCopyright))return Z.value.login.footerCopyright;let e=X.value.trim();return e?`版权所有:${e}`:`版权所有:${re}`});r(`audienceManageCompetitionId`,Y),r(`audienceManageCompetitionSlug`,J);async function le(){let e=J.value;if(e)try{let t=await fetch(`${ne()}/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;Y.value=Number(r.id),X.value=String(r.name??``),Z.value=w(r.branding_json??null),Y.value&&q.selectCompetition(Y.value)}catch{Y.value=null,X.value=``,Z.value=C()}}function ue(){K.logout(G),G.replace({name:`audience-manage-login`,params:{slug:J.value}})}let Q=s(null),$=s(!1);function de(){Q.value?.reset();let e=document.getElementById(`audienceManagePasswordModal`);e&&h.getOrCreateInstance(e).show()}async function fe(e){$.value=!0;try{await b(e),g.success(`密码已更新`);let t=document.getElementById(`audienceManagePasswordModal`);t&&h.getOrCreateInstance(t).hide()}catch(e){Q.value?.setError(e instanceof Error?e.message:`修改密码失败`)}finally{$.value=!1}}return c(Z,()=>ae(Z.value.login.themePrimary),{deep:!0,immediate:!0}),c(J,()=>void le(),{immediate:!0}),a(()=>{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`),ie()}),(n,r)=>{let a=o(`router-link`),s=o(`router-view`);return te(),p(`div`,E,[m(`header`,D,[m(`div`,O,[m(`span`,k,u(se.value),1),m(`div`,A,[m(`button`,j,[m(`span`,M,u(t(K).displayName),1)]),m(`ul`,N,[m(`li`,null,[m(`a`,{class:`dropdown-item`,href:`javascript:void(0)`,onClick:d(de,[`prevent`])},`修改密码`)]),r[0]||=m(`li`,null,[m(`hr`,{class:`dropdown-divider`})],-1),m(`li`,null,[m(`a`,{class:`dropdown-item text-danger`,href:`javascript:void(0)`,onClick:d(ue,[`prevent`])},`退出登录`)])])])])]),m(`div`,P,[m(`div`,F,[i(a,{class:`mobile-nav-link`,to:{name:`audience-manage-registrations`,params:{slug:J.value}}},{default:f(()=>[...r[1]||=[e(` 观众报名 `,-1)]]),_:1},8,[`to`]),i(a,{class:`mobile-nav-link`,to:{name:`audience-manage-sessions`,params:{slug:J.value}}},{default:f(()=>[...r[2]||=[e(` 观众场次 `,-1)]]),_:1},8,[`to`]),i(a,{class:`mobile-nav-link`,to:{name:`audience-checkin`,params:{slug:J.value}}},{default:f(()=>[...r[3]||=[e(` 现场核销 `,-1)]]),_:1},8,[`to`])])]),m(`div`,I,[m(`div`,L,[m(`aside`,R,[m(`div`,z,[m(`div`,B,[m(`nav`,oe,[i(a,{class:`nav-link text-start`,to:{name:`audience-manage-registrations`,params:{slug:J.value}}},{default:f(()=>[...r[4]||=[e(` 观众报名 `,-1)]]),_:1},8,[`to`]),i(a,{class:`nav-link text-start`,to:{name:`audience-manage-sessions`,params:{slug:J.value}}},{default:f(()=>[...r[5]||=[e(` 观众场次 `,-1)]]),_:1},8,[`to`]),i(a,{class:`nav-link text-start`,to:{name:`audience-checkin`,params:{slug:J.value}}},{default:f(()=>[...r[6]||=[e(` 现场核销 `,-1)]]),_:1},8,[`to`])])])])]),m(`main`,V,[m(`div`,H,[i(s)])])])]),m(`footer`,U,u(ce.value),1),i(T,{ref_key:`passwordModalRef`,ref:Q,"modal-id":`audienceManagePasswordModal`,submitting:$.value,onSubmit:fe},null,8,[`submitting`])])}}});export{W as default}; |