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.6 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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 d,m as f,q as ee,st as p,w as m,x as h}from"./vue.runtime.esm-bundler-OsdSFvn7.js";import{m as g}from"./api-rQwE0AaH.js";import{S as _,f as te,l as ne,n as v,u as y}from"./index-DFPdDGyr.js";import{t as b}from"./_plugin-vue_export-helper-CXTkFu_Z.js";import{n as re}from"./auth-RzcVpi0J.js";import{t as ie}from"./adminCompetition-pM-_JRNe.js";/* empty css *//* empty css */import{i as x,r as S,t as C}from"./competitionBranding-DKFkcrfF.js";import{n as w,r as T,t as E}from"./PortalChangePasswordModal-DBmd4yLD.js";var D={class:`manage-layout-root`},O={class:`navbar navbar-expand-lg layout-header`},k={class:`container-fluid px-4`},A={class:`navbar-brand mb-0 prototype-title`},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`},ae={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`},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=b(d({__name:`CompetitionManageLayout`,setup(d){let b=ne(),G=y(),K=v(),q=ie(),J=l(()=>String(b.params.slug??``).trim()),Y=s(null),X=s(``),Z=s(S()),oe=l(()=>{let e=Z.value.review?.pageTitle?.trim();if(e)return e;let t=X.value.trim();return t?`${t} · 赛事管理`:`赛事管理`}),se=l(()=>{if(x(Z.value.review.footerCopyright))return Z.value.review.footerCopyright;if(x(Z.value.login.footerCopyright))return Z.value.login.footerCopyright;let e=X.value.trim();return e?`版权所有:${e}`:`版权所有:2026江苏省新消费创新创业大赛`});r(`manageCompetitionId`,Y),r(`manageCompetitionSlug`,J),r(`manageCompetitionName`,X);async function ce(){let e=J.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;Y.value=Number(r.id),X.value=String(r.name??``),Z.value=C(r.branding_json??null),Y.value&&q.selectCompetition(Y.value)}catch{Y.value=null,X.value=``,Z.value=S()}}function le(){K.logout(G),G.replace({name:`manage-login`,params:{slug:J.value}})}let Q=s(null),$=s(!1);function ue(){Q.value?.reset();let e=document.getElementById(`managePasswordModal`);e&&_.getOrCreateInstance(e).show()}async function de(e){$.value=!0;try{await re(e),te.success(`密码已更新`);let t=document.getElementById(`managePasswordModal`);t&&_.getOrCreateInstance(t).hide()}catch(e){Q.value?.setError(e instanceof Error?e.message:`修改密码失败`)}finally{$.value=!1}}return c(Z,()=>w(Z.value.login.themePrimary),{deep:!0,immediate:!0}),c(J,()=>void ce(),{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`),T()}),(n,r)=>{let a=o(`router-link`),s=o(`router-view`);return ee(),m(`div`,D,[h(`header`,O,[h(`div`,k,[h(`span`,A,u(oe.value),1),h(`div`,j,[h(`button`,M,[r[0]||=h(`svg`,{width:`22`,height:`22`,viewBox:`0 0 24 24`,fill:`none`,"aria-hidden":`true`},[h(`circle`,{cx:`12`,cy:`12`,r:`9.5`,stroke:`currentColor`,"stroke-width":`2`}),h(`circle`,{cx:`12`,cy:`9`,r:`3.2`,fill:`currentColor`}),h(`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),h(`span`,N,u(t(K).displayName),1)]),h(`ul`,P,[h(`li`,null,[h(`a`,{class:`dropdown-item`,href:`javascript:void(0)`,onClick:f(ue,[`prevent`])},[...r[1]||=[h(`span`,{class:`menu-icon`},`🔒`,-1),e(`修改密码 `,-1)]])]),r[3]||=h(`li`,null,[h(`hr`,{class:`dropdown-divider`})],-1),h(`li`,null,[h(`a`,{class:`dropdown-item text-danger`,href:`javascript:void(0)`,onClick:f(le,[`prevent`])},[...r[2]||=[h(`span`,{class:`menu-icon`},`↪`,-1),e(`退出登录 `,-1)]])])])])])]),h(`div`,F,[h(`div`,I,[i(a,{class:`mobile-nav-link`,to:{name:`manage-dashboard`,params:{slug:J.value}}},{default:p(()=>[...r[4]||=[e(`综合看板`,-1)]]),_:1},8,[`to`]),i(a,{class:`mobile-nav-link`,to:{name:`manage-projects`,params:{slug:J.value}}},{default:p(()=>[...r[5]||=[e(`项目管理`,-1)]]),_:1},8,[`to`]),i(a,{class:`mobile-nav-link`,to:{name:`manage-reviewers`,params:{slug:J.value}}},{default:p(()=>[...r[6]||=[e(`评审员管理`,-1)]]),_:1},8,[`to`])])]),h(`div`,L,[h(`div`,ae,[h(`aside`,R,[h(`div`,z,[h(`div`,B,[h(`nav`,V,[i(a,{class:`nav-link text-start`,to:{name:`manage-dashboard`,params:{slug:J.value}}},{default:p(()=>[...r[7]||=[e(` 综合看板 `,-1)]]),_:1},8,[`to`]),i(a,{class:`nav-link text-start`,to:{name:`manage-projects`,params:{slug:J.value}}},{default:p(()=>[...r[8]||=[e(` 项目管理 `,-1)]]),_:1},8,[`to`]),i(a,{class:`nav-link text-start`,to:{name:`manage-reviewers`,params:{slug:J.value}}},{default:p(()=>[...r[9]||=[e(` 评审员管理 `,-1)]]),_:1},8,[`to`])])])])]),h(`main`,H,[h(`div`,U,[i(s,{class:`manage-main-view`})])])])]),h(`footer`,W,u(se.value),1),i(E,{ref_key:`passwordModalRef`,ref:Q,"modal-id":`managePasswordModal`,submitting:$.value,onSubmit:de},null,8,[`submitting`])])}}}),[[`__scopeId`,`data-v-1eca3824`]]);export{G as default};