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.

5 lines
7.2 KiB

import{$t as e,C as t,E as n,Et as r,G as i,W as a,_t as o,b as s,ct as c,d as l,in as u,k as d,m as f,q as p,w as m,x as h}from"./vue.runtime.esm-bundler-OsdSFvn7.js";import{p as g}from"./api-Cy3G2Clw.js";import{l as _,n as v,u as y}from"./index-Cygo_v58.js";import{t as b}from"./auth-nimJDZEG.js";/* empty css */import{i as x,r as S,t as C}from"./competitionBranding-DKFkcrfF.js";/* empty css */var w={class:`login-page-wls__wrap`},T={class:`login-page-wls__inner`},E={class:`login-page-wls__brand`,"aria-label":`赛事说明`},D={class:`login-page-wls__logo`,"aria-hidden":`true`},O=[`src`],ee={key:1,viewBox:`0 0 100 100`,width:`72`,height:`72`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`},te={key:0,class:`login-page-wls__mark`},ne=[`innerHTML`],re={key:1,class:`login-page-wls__title`},ie=[`innerHTML`],ae={class:`login-page-wls__panel`},oe={class:`login-page-wls__card`},se={class:`login-page-wls__card-title`},ce=[`disabled`],le={key:0,class:`login-page-wls__footer`},ue={class:`login-page-wls__copyright`},k=d({__name:`ManageLoginView`,setup(d){let k=_(),A=y(),j=v(),M=o(``),N=o(``),P=o(!1),F=o(!1),I=o(!1),L=o(``),R=o(`neutral`),z=s(()=>String(k.params.slug??``).trim()),B=o(``),V=o(S()),H=o(``),de=s(()=>R.value===`error`?`login-page-wls__hint login-page-wls__hint--error`:R.value===`success`?`login-page-wls__hint login-page-wls__hint--success`:`login-page-wls__hint`);function U(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`)}let fe=s(()=>{let e=V.value.login.markLine;return x(e)?U(e):``}),W=s(()=>{let e=V.value.login.headline;if(x(e))return U(e);let t=H.value.trim();return t?U(t):``}),G=s(()=>{if(B.value)return B.value;let e=V.value.login.slogan;return x(e)?e:``}),pe=s(()=>!!B.value),K=s(()=>x(V.value.login.cardWelcome)?V.value.login.cardWelcome.replace(/登陆/g,`登录`):`欢迎登录`),q=s(()=>x(V.value.login.footerCopyright)?V.value.login.footerCopyright:``),J=s(()=>x(V.value.login.logoUrl)?V.value.login.logoUrl:``),Y=null,X=null,Z=!1;function Q(e,t=`neutral`){L.value=e,R.value=t}function $(){L.value=``,R.value=`neutral`}function me(e){return e.replace(/[\u200B-\u200D\uFEFF]/gu,``).trim()}async function he(){B.value=``,V.value=S(),H.value=``;let e=z.value,t=typeof document<`u`?document.title:``;if(!e){B.value=`缺少赛事访问地址,请从正确入口进入`;return}try{let n=await fetch(`${g()}/api/v1/public/competitions/by-slug/${encodeURIComponent(e)}`,{headers:{Accept:`application/json`}});if(!n.ok){B.value=n.status===404?`赛事不存在或未发布,请核对访问地址`:`无法加载赛事信息`;return}let r=await n.json(),i=typeof r==`object`&&r&&`data`in r?r.data:r;H.value=String(i?.name??``),V.value=C(i?.branding_json??i?.branding??null);let a=V.value.documentTitle;typeof document<`u`&&(document.title=x(a)?`${me(a)} · 管理登录`:t||`管理登录`);let o=V.value.login.themePrimary;x(o)&&typeof document<`u`&&(Y===null&&(Y=document.body.style.getPropertyValue(`--primary`)||``),document.body.style.setProperty(`--primary`,o),document.body.style.setProperty(`--primary-soft`,`${o}14`));let s=V.value.login.faviconUrl;if(x(s)&&typeof document<`u`){let e=document.querySelector(`link[rel~="icon"]`);e||(e=document.createElement(`link`),e.rel=`icon`,document.head.appendChild(e)),X===null&&(X=e.getAttribute(`href`)||``),e.href=s}}catch{B.value=`网络错误,无法校验赛事链接`}}async function ge(){let e=M.value.trim(),t=N.value;if(P.value=!e,F.value=!t,!e){Q(`请填写账号`,`error`);return}if(!t){Q(`请填写密码`,`error`);return}if(!z.value){Q(`缺少赛事访问地址`,`error`);return}$(),I.value=!0,Q(`登录中…`,`neutral`);try{let n=await b({username:e,password:t});j.setSession(n.token,n.user&&typeof n.user.id==`number`?{id:n.user.id,username:n.user.username,name:n.user.name}:null),$();let r=typeof k.query.redirect==`string`?k.query.redirect:``;r&&r.includes(`/manage`)&&!r.includes(`/login`)?await A.replace(r):await A.replace({name:`manage-dashboard`,params:{slug:z.value}})}catch(e){Q(e instanceof Error?e.message:`登录失败`,`error`)}finally{I.value=!1}}return a(()=>{typeof document<`u`&&(document.documentElement.classList.add(`cxxfds-login-page`),Z=!0),document.body.classList.add(`login-page-wls`),he()}),i(()=>{if(typeof document<`u`&&Z&&(document.documentElement.classList.remove(`cxxfds-login-page`),Z=!1),document.body.classList.remove(`login-page-wls`),typeof document<`u`&&(Y!==null&&(Y===``?(document.body.style.removeProperty(`--primary`),document.body.style.removeProperty(`--primary-soft`)):document.body.style.setProperty(`--primary`,Y),Y=null),X!==null)){let e=document.querySelector(`link[rel~="icon"]`);e&&(X===``?e.removeAttribute(`href`):e.href=X),X=null}}),(i,a)=>(p(),m(`div`,w,[h(`div`,T,[h(`aside`,E,[h(`div`,D,[J.value?(p(),m(`img`,{key:0,src:J.value,alt:``,class:`login-page-wls__logo-img`,width:`72`,height:`72`},null,8,O)):(p(),m(`svg`,ee,[...a[4]||=[n(`<defs><linearGradient id="manageLoginPetalGrad" x1="0%" y1="0%" x2="100%" y2="100%"><stop offset="0%" stop-color="#dc4a54"></stop><stop offset="45%" stop-color="#b40010"></stop><stop offset="100%" stop-color="#7d070c"></stop></linearGradient><path id="manageLoginPetal" d="M50 50
C46.2 44.2 44.2 34.5 46.2 27.2
C47.3 23.6 48.6 21.2 50 20.2
C51.4 21.2 52.7 23.6 53.8 27.2
C55.8 34.5 53.8 44.2 50 50Z"></path></defs><g fill="url(#manageLoginPetalGrad)" stroke="#8f000c" stroke-width="0.35" stroke-linejoin="round"><use href="#manageLoginPetal"></use><use href="#manageLoginPetal" transform="rotate(90 50 50)"></use><use href="#manageLoginPetal" transform="rotate(180 50 50)"></use><use href="#manageLoginPetal" transform="rotate(270 50 50)"></use></g><circle cx="50" cy="50" r="3.6" fill="#5c6068" stroke="#fdfcfc" stroke-width="0.65"></circle>`,3)]]))]),r(x)(V.value.login.markLine)?(p(),m(`div`,te,[h(`div`,{class:`login-page-wls__mark-cn`,innerHTML:fe.value},null,8,ne)])):t(``,!0),W.value?(p(),m(`h1`,re,[h(`span`,{class:`login-page-wls__title-main`,innerHTML:W.value},null,8,ie)])):t(``,!0),G.value?(p(),m(`p`,{key:2,class:e([`login-page-wls__slogan`,{"login-page-wls__slogan--error":pe.value}])},u(G.value),3)):t(``,!0)]),h(`section`,ae,[h(`div`,oe,[h(`h2`,se,u(K.value),1),h(`form`,{class:`login-page-wls__form`,onSubmit:f(ge,[`prevent`]),novalidate:``},[c(h(`input`,{"onUpdate:modelValue":a[0]||=e=>M.value=e,type:`text`,class:e([`login-page-wls__input`,{"login-page-wls__input--error":P.value}]),name:`username`,autocomplete:`username`,maxlength:`64`,placeholder:`账号`,onInput:a[1]||=e=>P.value=!1},null,34),[[l,M.value,void 0,{trim:!0}]]),c(h(`input`,{"onUpdate:modelValue":a[2]||=e=>N.value=e,type:`password`,class:e([`login-page-wls__input`,{"login-page-wls__input--error":F.value}]),name:`password`,autocomplete:`current-password`,placeholder:`密码`,maxlength:`255`,onInput:a[3]||=e=>F.value=!1},null,34),[[l,N.value]]),h(`button`,{type:`submit`,class:`login-page-wls__submit`,disabled:I.value},u(I.value?`登录中…`:`登录`),9,ce),L.value?(p(),m(`p`,{key:0,class:e(de.value),style:{"margin-top":`0.75rem`}},u(L.value),3)):t(``,!0)],32)])])]),q.value?(p(),m(`footer`,le,[h(`p`,ue,u(q.value),1)])):t(``,!0)]))}});export{k as default};