astrion-website/demo/static/dist/assets/register.js

2 lines
2.7 KiB
JavaScript

import{d as f,o as h,b as w,c as g,g as t,h as d,j as p,z as c,t as y,i as b,k as o,m as T}from"./runtime-dom.esm-bundler.js";import{a as k,l as C}from"./auth.js";const V={class:"auth-page"},x={class:"auth-card"},_={class:"auth-form-group"},j={class:"auth-form-group"},U={class:"auth-form-group"},B={class:"auth-form-group"},K=["disabled"],N={class:"auth-error"},S=f({__name:"RegisterApp",setup(A){const n=o(""),i=o(""),r=o(""),u=o(""),l=o(""),m=o(!1),v=async()=>{if(!n.value||!i.value||!r.value||!u.value){l.value="请完整填写所有字段";return}m.value=!0,l.value="";try{const e=await(await fetch("/register",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:n.value,email:i.value,password:r.value,invite_code:u.value})})).json();if(e.success){window.location.href="/login";return}l.value=e.error||"注册失败"}catch{l.value="网络错误,请稍后再试"}finally{m.value=!1}};return h(async()=>{if(k(C()),window.ensureCsrfToken)try{await window.ensureCsrfToken()}catch{}try{const e=await(await fetch("/api/session-status",{credentials:"same-origin"})).json()}catch(s){console.warn("[auth-debug] register page session-status failed:",s)}}),(s,e)=>(w(),g("main",V,[t("section",x,[e[8]||(e[8]=t("h1",{class:"auth-title"},"创建账号",-1)),e[9]||(e[9]=t("p",{class:"auth-subtitle"},"完成注册后即可登录使用",-1)),t("div",_,[e[4]||(e[4]=t("label",{class:"auth-label",for:"username"},"用户名",-1)),d(t("input",{id:"username","onUpdate:modelValue":e[0]||(e[0]=a=>n.value=a),type:"text",class:"auth-input",placeholder:"仅限小写字母/数字/下划线",autocomplete:"username"},null,512),[[p,n.value,void 0,{trim:!0}]])]),t("div",j,[e[5]||(e[5]=t("label",{class:"auth-label",for:"email"},"邮箱",-1)),d(t("input",{id:"email","onUpdate:modelValue":e[1]||(e[1]=a=>i.value=a),type:"email",class:"auth-input",autocomplete:"email"},null,512),[[p,i.value,void 0,{trim:!0}]])]),t("div",U,[e[6]||(e[6]=t("label",{class:"auth-label",for:"password"},"密码",-1)),d(t("input",{id:"password","onUpdate:modelValue":e[2]||(e[2]=a=>r.value=a),type:"password",class:"auth-input",autocomplete:"new-password",onKeydown:c(v,["enter"])},null,544),[[p,r.value]])]),t("div",B,[e[7]||(e[7]=t("label",{class:"auth-label",for:"invite"},"邀请码",-1)),d(t("input",{id:"invite","onUpdate:modelValue":e[3]||(e[3]=a=>u.value=a),type:"text",class:"auth-input",placeholder:"必填",autocomplete:"off",onKeydown:c(v,["enter"])},null,544),[[p,u.value,void 0,{trim:!0}]])]),t("button",{class:"auth-button",disabled:m.value,onClick:v},"注册",8,K),t("div",N,y(l.value),1),e[10]||(e[10]=t("div",{class:"auth-link"},[b("已有账号?"),t("a",{href:"/login"},"返回登录")],-1))])]))}});T(S).mount("#auth-app");