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
7.2 KiB

4 weeks ago
import{$t as e,D 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 te,q as ne,st as f,x as p}from"./vue.runtime.esm-bundler-CACvpnko.js";import{_ as m,f as re,h,k as g}from"./api-Dpfxb1ca.js";import{T as _,d as v,f as ie,h as ae,p as y}from"./index-D5exsJys.js";import{t as b}from"./_plugin-vue_export-helper-CXTkFu_Z.js";/* empty css */import{n as oe,t as se}from"./participantTheme-HEHn5JJn.js";import{c as x,d as ce,r as le,s as S}from"./competitionBranding-CAjogVRl.js";import{t as C}from"./PortalHeaderBrand-Q03Xrd7K.js";import{t as w}from"./PortalChangePasswordModal-dT2ISJhC.js";async function T(e){let{token:t}=g();if(!t)throw Error(`未登录`);let n=await fetch(`${m()}/api/v1/review/auth/password`,{method:`POST`,headers:{Authorization:`Bearer ${t}`,Accept:`application/json`,"Content-Type":`application/json`},body:JSON.stringify(e)});if(!n.ok){let e=await n.json().catch(()=>({})),t=e.errors?.current_password?.[0]||e.errors?.password?.[0]||e.message||`修改密码失败`;throw Error(t)}}var E={class:`reviewer-layout-root`},D={class:`navbar navbar-expand-lg layout-header`},O={class:`container-fluid px-4 layout-header-inner`},k={class:`dropdown`},A={class:`header-user dropdown-toggle`,type:`button`,"data-bs-toggle":`dropdown`,"aria-expanded":`false`},j={class:`header-user-name`},M={class:`dropdown-menu dropdown-menu-end header-user-menu`},N={id:`mobileNavSection`,class:`container-fluid px-4 pt-2 pb-1 d-lg-none`},P={class:`mobile-nav-wrap`},F={class:`container-fluid px-4 py-3 layout-main`},I={class:`row g-3 portal-layout-row`},L={class:`col-12 col-md-3 col-lg-2 layout-sider`},R={class:`card h-100 portal-sider-card`},z={class:`card-body`},B={class:`nav flex-column gap-2`},V={class:`col-12 col-md-9 col-lg-10 reviewer-main-column portal-main-column`},H={class:`reviewer-main-surface border rounded-3 bg-white h-100`},U={class:`border-top bg-white text-center py-2 small text-secondary prototype-subtitle`},W={id:`reviewerProfileModal`,class:`modal fade`,tabindex:`-1`,"aria-hidden":`true`},ue={class:`modal-dialog modal-dialog-centered profile-modal-dialog`},de={class:`modal-content profile-modal-content`},fe={class:`modal-body profile-modal-body`},pe={class:`row g-3`},me={class:`col-md-6`},he={class:`profile-field`},ge={class:`profile-field-value`},_e={class:`col-md-6`},ve={class:`profile-field`},ye={class:`profile-field-value`},be={class:`col-12`},xe={class:`profile-field`},Se={class:`profile-field-value`},G=b(te({__name:`ReviewerLayout`,setup(te){let b=y(),G=ie(),K=p(()=>String(G.params.slug??``).trim()),q=p(()=>[`reviewer-projects`,`reviewer-application-detail`].includes(String(G.name??``))),J=c(S()),Y=c(``),X=c(`评审员`),Ce=p(()=>ce(J.value,Y.value)),we=p(()=>{if(x(J.value.review.footerCopyright))return J.value.review.footerCopyright;if(x(J.value.login.footerCopyright))return J.value.login.footerCopyright;let e=Y.value.trim();return e?`版权所有:${e}`:`版权所有`});async function Te(){let e=K.value;if(!e){J.value=S(),Y.value=``;return}try{let t=await fetch(`${m()}/api/v1/public/competitions/by-slug/${encodeURIComponent(e)}`,{headers:{Accept:`application/json`}});if(!t.ok){J.value=S(),Y.value=``;return}let n=await t.json(),r=n.data!=null&&typeof n.data==`object`&&!Array.isArray(n.data)?n.data:n;if(!v(r).enabled){h(),e&&b.replace({name:`reviewer-login`,params:{slug:e}});return}Y.value=String(r.name??``),J.value=le(r.branding_json??null)}catch{J.value=S(),Y.value=``}}l(J,()=>se(J.value.login.themePrimary),{deep:!0,immediate:!0}),l(K,()=>void Te(),{immediate:!0}),r(`reviewerCompetitionName`,Y);let Z=c({name:`—`,mobile:`—`,username:`—`});async function Ee(){let{token:e}=g();if(e)try{let t=await fetch(`${m()}${re}`,{headers:{Authorization:`Bearer ${e}`,Accept:`application/json`}});if(!t.ok)return;let n=(await t.json()).reviewer;X.value=n?.name?.trim()||n?.username?.trim()||`评审员`,Z.value={name:n?.name??`—`,mobile:n?.mobile??`—`,username:n?.username??`—`}}catch{}}function De(){h();let e=K.value;e?b.replace({name:`reviewer-login`,params:{slug:e}}