Files
usernode/internal/webui/dist/assets/LoginView-CTGu112G.js
T

2 lines
4.4 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{d as z,u as D,o as R,c as $,a,w as o,r as m,g as G,b as n,e as V,f as H,h as w,i as I,j as C,k as _,l as B,t as J,m as K,E as g,n as Q,p as W,q as X}from"./index-OD70Gdif.js";import{_ as Y}from"./_plugin-vue_export-helper-DlAUqK2U.js";const Z={class:"login-page"},ee={class:"brand"},ae={class:"captcha-row"},oe={class:"foot"},le=z({__name:"LoginView",setup(te){const k=H(),L=D(),f=m("admin"),u=m(!1),d=K({username:"",password:""}),l=K({username:"",code:"",captcha_id:"",captcha_code:""}),s=m(null),b=m(!1),i=m(0);let x;async function r(){b.value=!0;try{s.value=await G()}catch{s.value=null}finally{b.value=!1}}function O(U){i.value=U,x=window.setInterval(()=>{i.value-=1,i.value<=0&&(window.clearInterval(x),i.value=0)},1e3)}async function h(){if(!d.username||!d.password){g.warning("请输入用户名和密码");return}u.value=!0;try{await Q(d),await L.fetchMe(),k.push("/admin/dashboard")}catch{}finally{u.value=!1}}async function M(){if(!l.username||!l.captcha_code){g.warning("请输入用户名和图形验证码");return}if(!(!s.value&&(await r(),!s.value)))try{await W({username:l.username,captcha_id:s.value.captcha_id,captcha_code:l.captcha_code}),g.success("验证码已发送(邮件或 CLIusernode user otp"),O(60),l.captcha_code="",await r()}catch{await r()}}async function y(){if(!l.username||!l.code){g.warning("请输入用户名和 OTP 验证码");return}u.value=!0;try{await X({username:l.username,code:l.code}),await L.fetchMe(),k.push("/me/profile")}catch{}finally{u.value=!1}}function E(){f.value==="user"&&!s.value&&r()}return R(()=>{f.value==="user"&&r()}),(U,e)=>{const N=n("Monitor"),P=n("el-icon"),c=n("el-input"),p=n("el-form-item"),v=n("el-button"),S=n("el-form"),T=n("el-tab-pane"),A=n("el-image"),F=n("el-tabs"),j=n("router-link"),q=n("el-card");return V(),$("div",Z,[a(q,{class:"login-card",shadow:"always"},{default:o(()=>[w("div",ee,[a(P,{size:30},{default:o(()=>[a(N)]),_:1}),e[6]||(e[6]=w("h2",null,"服务器用户管理节点",-1))]),a(F,{modelValue:f.value,"onUpdate:modelValue":e[5]||(e[5]=t=>f.value=t),stretch:"",onTabChange:E},{default:o(()=>[a(T,{label:"管理员登录",name:"admin"},{default:o(()=>[a(S,{"label-position":"top",onSubmit:I(h,["prevent"])},{default:o(()=>[a(p,{label:"用户名"},{default:o(()=>[a(c,{modelValue:d.username,"onUpdate:modelValue":e[0]||(e[0]=t=>d.username=t),placeholder:"管理员用户名",autocomplete:"username"},null,8,["modelValue"])]),_:1}),a(p,{label:"密码"},{default:o(()=>[a(c,{modelValue:d.password,"onUpdate:modelValue":e[1]||(e[1]=t=>d.password=t),type:"password",placeholder:"密码","show-password":"",autocomplete:"current-password",onKeyup:C(h,["enter"])},null,8,["modelValue"])]),_:1}),a(v,{type:"primary",class:"submit",loading:u.value,onClick:h},{default:o(()=>[...e[7]||(e[7]=[_("登录",-1)])]),_:1},8,["loading"])]),_:1})]),_:1}),a(T,{label:"外部用户登录",name:"user"},{default:o(()=>[a(S,{"label-position":"top",onSubmit:I(y,["prevent"])},{default:o(()=>[a(p,{label:"用户名"},{default:o(()=>[a(c,{modelValue:l.username,"onUpdate:modelValue":e[2]||(e[2]=t=>l.username=t),placeholder:"用户名(可带或不带 ext_ 前缀)",autocomplete:"username"},null,8,["modelValue"])]),_:1}),a(p,{label:"图形验证码"},{default:o(()=>[w("div",ae,[a(c,{modelValue:l.captcha_code,"onUpdate:modelValue":e[3]||(e[3]=t=>l.captcha_code=t),placeholder:"4 位验证码",maxlength:"4",onKeyup:C(M,["enter"])},null,8,["modelValue"]),s.value?(V(),B(A,{key:0,src:s.value.image,fit:"contain",class:"captcha-img",title:"点击刷新",onClick:r},null,8,["src"])):(V(),B(v,{key:1,loading:b.value,onClick:r},{default:o(()=>[...e[8]||(e[8]=[_("获取",-1)])]),_:1},8,["loading"]))])]),_:1}),a(p,{label:"登录验证码(OTP"},{default:o(()=>[a(c,{modelValue:l.code,"onUpdate:modelValue":e[4]||(e[4]=t=>l.code=t),placeholder:"6 位 OTP(邮件或 CLI 获取)",maxlength:"6",onKeyup:C(y,["enter"])},null,8,["modelValue"])]),_:1}),a(v,{type:"primary",class:"submit",loading:u.value,onClick:M,disabled:i.value>0},{default:o(()=>[_(J(i.value>0?`重新发送(${i.value}s`:"发送验证码"),1)]),_:1},8,["loading","disabled"]),a(v,{type:"success",class:"submit",loading:u.value,onClick:y},{default:o(()=>[...e[9]||(e[9]=[_("登录",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),w("div",oe,[a(j,{to:"/apply"},{default:o(()=>[...e[10]||(e[10]=[_("申请新账号",-1)])]),_:1})])]),_:1})])}}}),ue=Y(le,[["__scopeId","data-v-16050750"]]);export{ue as default};