2 lines
5.5 KiB
JavaScript
2 lines
5.5 KiB
JavaScript
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/DashboardPage-yElaw2BV.js","assets/_plugin-vue_export-helper-BDNMzG2s.js","assets/index-CDcgx9V8.js","assets/chunk-DK3Fl9T5.js","assets/index-BNJe_ogF.css","assets/VCard-pmpQR9O7.js","assets/VCard-BCYbpv-w.css","assets/VSelect-BvR-yyLS.js","assets/VTextField-B-BnrJAQ.js","assets/VTextField-Bl91kSVs.css","assets/VSelect-BmvHN1-i.css","assets/VDataTable-ClfE0-sD.js","assets/VTable-BTftprIQ.js","assets/VTable-Dq_7MYoa.css","assets/VDataTable-D61zAwkI.css","assets/VDialog-nKJcjfNL.js","assets/VDialog-DP-kc9Gx.css","assets/VRow-rmSa_q-C.js","assets/VRow-DIr3-SqU.css","assets/VSkeletonLoader-gL4kF19X.js","assets/VSkeletonLoader-CkAIsbz1.css","assets/StatCardsRow-CdfBB9tI.js","assets/StatCardsRow-snFLCRnD.css","assets/usePageActivateRefresh-CqHSpagO.js","assets/useSnackbar-u_XK4ZNm.js","assets/auditNormalize-xrm2MK_4.js","assets/status-BrGQYcd-.js","assets/DashboardPage-DmG38yGr.css"])))=>i.map(i=>d[i]);
|
|
import{$t as e,Ar as t,Dr as n,Er as r,Gr as i,I as a,L as o,Nr as s,Or as c,Qt as ee,Tr as l,Wr as u,b as d,bi as f,br as p,cn as m,en as h,in as g,jr as _,ln as v,qr as y,ri as b,ti as x,tn as S,ui as C,wr as w,xi as T}from"./index-CDcgx9V8.js";import{t as E}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as D}from"./VCard-pmpQR9O7.js";import{t as O}from"./VTextField-B-BnrJAQ.js";import{t as k}from"./VForm-uEqKaHHF.js";var A={class:`login-page`},j={key:0,class:`login-center`},te={key:2,class:`text-center mt-4`},M=E(s({name:`LoginPage`,__name:`LoginPage`,setup(s){let E=m(),M=v(),N=e(),P=C(`checking`),F=C(``),I=C(``),L=C(``),R=C(!1),z=C(!1),B=C(``),V=C(!1),H=C(0),U=C(null),W=C([]),G=C(0),K=null,q=w(()=>P.value===`checking`?{backgroundColor:`#0a0a12`}:W.value.length===0?{backgroundImage:`linear-gradient(135deg, #1a237e 0%, #0d47a1 40%, #1565c0 100%)`}:{backgroundImage:`url(${W.value[G.value]})`});async function J(){try{let e=await g.get(`/settings/bing-wallpapers`);e?.urls?.length&&(W.value=e.urls,G.value=Math.floor(Math.random()*e.urls.length))}catch{}}function Y(){K&&clearInterval(K),!(W.value.length<=1)&&(K=setInterval(()=>{G.value=(G.value+1)%W.value.length},36e5))}async function X(){P.value=`checking`;try{return await g.get(`/auth/login-access`),P.value=`form`,!0}catch{return P.value=`blocked`,!1}}function Z(){P.value===`form`&&ee(()=>import(`./DashboardPage-yElaw2BV.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27]))}x(P,e=>{e===`form`&&Z()}),u(async()=>{await X(),await J(),Y()}),i(()=>{K&&clearInterval(K),$&&clearInterval($)});let Q=C(Date.now()),$=null,ne=w(()=>{if(!U.value)return 0;let e=new Date(U.value).getTime()-Q.value;return Math.max(0,Math.ceil(e/6e4))});x(U,e=>{$&&=(clearInterval($),null),e&&($=setInterval(()=>{Q.value=Date.now()},3e4))});async function re(){if(!F.value||!I.value){B.value=`请输入用户名和密码`;return}z.value=!0,B.value=``;try{await N.login(F.value,I.value,V.value?L.value:void 0);let e=E.query.redirect||`/`,t=e.startsWith(`/`)&&!e.startsWith(`//`)?e:`/`;await M.replace(t)}catch(e){if(e instanceof S)V.value=!0,B.value=e.message;else if(e instanceof h){if(e.status===403){P.value=`blocked`;return}e.status===429?(U.value=new Date(Date.now()+900*1e3).toISOString(),B.value=`登录尝试过多,账户已锁定 15 分钟`):(H.value++,B.value=e.message)}else B.value=`网络错误,请重试`}finally{z.value=!1}}return(e,i)=>(y(),c(`div`,A,[l(`div`,{class:`wallpaper-bg`,style:f(q.value)},null,4),i[6]||=l(`div`,{class:`wallpaper-overlay`},null,-1),P.value===`form`?(y(),c(`div`,j,[_(D,{elevation:`0`,rounded:`xl`,class:`login-card pa-10`,border:``},{default:b(()=>[B.value?(y(),r(a,{key:0,type:`error`,density:`compact`,class:`mb-4`,closable:``,"onClick:close":i[0]||=e=>B.value=``,rounded:`lg`,variant:`tonal`},{default:b(()=>[t(T(B.value),1)]),_:1})):n(``,!0),U.value?(y(),r(a,{key:1,type:`warning`,density:`compact`,class:`mb-4`,rounded:`lg`,variant:`tonal`},{default:b(()=>[t(` 账户已锁定,请 `+T(ne.value)+` 分钟后重试 `,1)]),_:1})):n(``,!0),_(k,{onSubmit:p(re,[`prevent`])},{default:b(()=>[_(O,{modelValue:F.value,"onUpdate:modelValue":i[1]||=e=>F.value=e,label:`用户名`,variant:`outlined`,density:`comfortable`,"prepend-inner-icon":`mdi-account-outline`,disabled:z.value,class:`mb-4`,autocomplete:`username`,rounded:`lg`,"hide-details":`auto`},null,8,[`modelValue`,`disabled`]),_(O,{modelValue:I.value,"onUpdate:modelValue":i[2]||=e=>I.value=e,label:`密码`,variant:`outlined`,density:`comfortable`,"prepend-inner-icon":`mdi-lock-outline`,"append-inner-icon":R.value?`mdi-eye`:`mdi-eye-off`,type:R.value?`text`:`password`,"onClick:appendInner":i[3]||=e=>R.value=!R.value,disabled:z.value,class:`mb-4`,autocomplete:`current-password`,rounded:`lg`,"hide-details":`auto`},null,8,[`modelValue`,`append-inner-icon`,`type`,`disabled`]),V.value?(y(),r(O,{key:0,modelValue:L.value,"onUpdate:modelValue":i[4]||=e=>L.value=e,label:`TOTP 验证码`,variant:`outlined`,density:`comfortable`,"prepend-inner-icon":`mdi-shield-key-outline`,disabled:z.value,class:`mb-4`,autocomplete:`one-time-code`,rounded:`lg`,"hide-details":`auto`},null,8,[`modelValue`,`disabled`])):n(``,!0),_(o,{type:`submit`,color:`primary`,variant:`flat`,block:``,size:`large`,loading:z.value,disabled:!!U.value,rounded:`lg`,class:`mt-2`,height:`48`},{default:b(()=>[...i[5]||=[t(` 登录 `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1}),H.value>0&&!U.value?(y(),c(`div`,te,[_(d,{size:`small`,variant:`tonal`,color:`warning`,label:``},{default:b(()=>[t(` 已失败 `+T(H.value)+` 次 `,1)]),_:1})])):n(``,!0)]),_:1})])):n(``,!0)]))}}),[[`__scopeId`,`data-v-5c1d22f2`]]);export{M as default}; |