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
3.0 KiB
1 line
3.0 KiB
import{C as e,G as t,W as n,_t as r,at as i,b as a,ct as o,d as s,in as c,k as l,m as u,q as d,w as f,x as p}from"./vue.runtime.esm-bundler-OsdSFvn7.js";import{p as m}from"./api-Cy3G2Clw.js";import{n as h,o as g,s as _}from"./index-PEbsCnZM.js";import{t as v}from"./_plugin-vue_export-helper-CXTkFu_Z.js";import{t as y}from"./auth-DhzAFLu1.js";/* empty css *//* empty css */import{r as b,t as x}from"./competitionBranding-DKFkcrfF.js";import{n as S,t as C}from"./participantTheme-Dv_K0myG.js";var w={class:`manage-login-page`},T={class:`card shadow-sm manage-login-card`},E={class:`card-body p-4`},D={class:`manage-login-title mb-1`},O={class:`small text-secondary mb-4`},k={class:`mb-3`},A={class:`mb-3`},j={key:0,class:`small text-danger mb-3`},M=[`disabled`],N=v(l({__name:`ManageLoginView`,setup(l){let v=g(),N=_(),P=h(),F=a(()=>String(v.params.slug??``).trim()),I=r(``),L=r(``),R=r(!1),z=r(``),B=r(b()),V=r(``),H=a(()=>{let e=V.value.trim();return e?`${e} · 管理登录`:`赛事管理登录`}),U=a(()=>B.value.login.slogan||`请使用后台管理员账号登录`);async function W(){let e=F.value;if(e)try{let t=await fetch(`${m()}/api/v1/public/competitions/by-slug/${encodeURIComponent(e)}`,{headers:{Accept:`application/json`}});if(!t.ok)return;let n=await t.json(),r=n.data!=null&&typeof n.data==`object`&&!Array.isArray(n.data)?n.data:n;V.value=String(r.name??``),B.value=x(r.branding_json??null)}catch{B.value=b()}}async function G(){if(z.value=``,!I.value.trim()||!L.value.trim()){z.value=`请输入账号和密码`;return}R.value=!0;try{let e=await y({username:I.value.trim(),password:L.value.trim()});P.setSession(e.token,e.user&&typeof e.user.id==`number`?{id:e.user.id,username:e.user.username,name:e.user.name}:null);let t=typeof v.query.redirect==`string`?v.query.redirect:``;t&&t.includes(`/manage`)&&!t.includes(`/login`)?await N.replace(t):await N.replace({name:`manage-dashboard`,params:{slug:F.value}})}catch(e){z.value=e instanceof Error?e.message:`登录失败`}finally{R.value=!1}}return n(()=>{document.body.classList.add(`prototype-page`,`participant-portal-theme`,`admin-desktop-page`),W()}),i(B,()=>C(B.value.login.themePrimary),{deep:!0,immediate:!0}),t(()=>{document.body.classList.remove(`prototype-page`,`participant-portal-theme`,`admin-desktop-page`),S()}),(t,n)=>(d(),f(`div`,w,[p(`div`,T,[p(`div`,E,[p(`h5`,D,c(H.value),1),p(`p`,O,c(U.value),1),p(`form`,{onSubmit:u(G,[`prevent`])},[p(`div`,k,[n[2]||=p(`label`,{class:`form-label`},`账号`,-1),o(p(`input`,{"onUpdate:modelValue":n[0]||=e=>I.value=e,class:`form-control`,autocomplete:`username`},null,512),[[s,I.value,void 0,{trim:!0}]])]),p(`div`,A,[n[3]||=p(`label`,{class:`form-label`},`密码`,-1),o(p(`input`,{"onUpdate:modelValue":n[1]||=e=>L.value=e,type:`password`,class:`form-control`,autocomplete:`current-password`},null,512),[[s,L.value]])]),z.value?(d(),f(`p`,j,c(z.value),1)):e(``,!0),p(`button`,{type:`submit`,class:`btn btn-primary w-100`,disabled:R.value},c(R.value?`登录中…`:`登录`),9,M)],32)])])]))}}),[[`__scopeId`,`data-v-5613db28`]]);export{N as default}; |