|
|
@ -3,7 +3,7 @@ import { ref } from 'vue' |
|
|
import { useRouter } from 'vue-router' |
|
|
import { useRouter } from 'vue-router' |
|
|
import { useAuthStore } from '@/stores/auth' |
|
|
import { useAuthStore } from '@/stores/auth' |
|
|
import Particles from '@/components/Particles/Particles.vue' |
|
|
import Particles from '@/components/Particles/Particles.vue' |
|
|
import Shuffle from '@/components/Shuffle/Shuffle.vue' |
|
|
import BlurText from '@/components/BlurText/BlurText.vue' |
|
|
import InkButton from '@/components/InkButton/InkButton.vue' |
|
|
import InkButton from '@/components/InkButton/InkButton.vue' |
|
|
import InkInput from '@/components/InkInput/InkInput.vue' |
|
|
import InkInput from '@/components/InkInput/InkInput.vue' |
|
|
|
|
|
|
|
|
@ -86,31 +86,26 @@ const handleRegister = async () => { |
|
|
<div class="register-container"> |
|
|
<div class="register-container"> |
|
|
<div class="register-card"> |
|
|
<div class="register-card"> |
|
|
<div class="register-header"> |
|
|
<div class="register-header"> |
|
|
<Shuffle text="创建账号" shuffle-direction="right" :duration="0.35" animation-mode="evenodd" :shuffle-times="1" |
|
|
<BlurText text="注 册 账 号" animate-by="words" direction="top" :delay="200" class="blur-title" |
|
|
ease="power3.out" :stagger="0.03" :threshold="0.1" :trigger-once="true" :trigger-on-hover="true" |
|
|
class-name="text-2xl font-semibold text-center" /> |
|
|
class="shuffle-title" :respect-reduced-motion="true" /> |
|
|
<!-- <p class="subtitle">开启游戏之旅</p> --> |
|
|
<p class="subtitle">开启游戏之旅</p> |
|
|
|
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<form class="register-form" @submit.prevent="handleRegister"> |
|
|
<form class="register-form" @submit.prevent="handleRegister"> |
|
|
<div class="form-group"> |
|
|
<div class="form-group"> |
|
|
<label class="form-label">用户名</label> |
|
|
<InkInput v-model="username" placeholder="用户名(字母数字下划线)" type="text" autocomplete="username" /> |
|
|
<InkInput v-model="username" placeholder="3-30个字符,仅限字母数字下划线" type="text" autocomplete="username" /> |
|
|
|
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="form-group"> |
|
|
<div class="form-group"> |
|
|
<label class="form-label">邮箱</label> |
|
|
<InkInput v-model="email" placeholder="邮箱地址" type="email" autocomplete="email" /> |
|
|
<InkInput v-model="email" placeholder="请输入邮箱地址" type="email" autocomplete="email" /> |
|
|
|
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="form-group"> |
|
|
<div class="form-group"> |
|
|
<label class="form-label">密码</label> |
|
|
<InkInput v-model="password" placeholder="密码" type="password" autocomplete="new-password" /> |
|
|
<InkInput v-model="password" placeholder="至少4个字符" type="password" autocomplete="new-password" /> |
|
|
|
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="form-group"> |
|
|
<div class="form-group"> |
|
|
<label class="form-label">确认密码</label> |
|
|
<InkInput v-model="confirmPassword" placeholder="确认密码" type="password" autocomplete="new-password" /> |
|
|
<InkInput v-model="confirmPassword" placeholder="请再次输入密码" type="password" autocomplete="new-password" /> |
|
|
|
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div v-if="errorMsg" class="error-message"> |
|
|
<div v-if="errorMsg" class="error-message"> |
|
|
@ -179,14 +174,15 @@ const handleRegister = async () => { |
|
|
color: white; |
|
|
color: white; |
|
|
width: 100%; |
|
|
width: 100%; |
|
|
font-size: 30px; |
|
|
font-size: 30px; |
|
|
|
|
|
font-family: "STKaiti", "KaiTi", "华文楷体", "Microsoft YaHei", cursive; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.title { |
|
|
.blur-title { |
|
|
font-size: 1.5rem; |
|
|
justify-content: center; |
|
|
font-weight: 300; |
|
|
text-align: center; |
|
|
color: #ffffff; |
|
|
color: white; |
|
|
letter-spacing: 0.15em; |
|
|
width: 100%; |
|
|
margin-bottom: 8px; |
|
|
font-family: "STKaiti", "KaiTi", "华文楷体", "Microsoft YaHei", cursive; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.subtitle { |
|
|
.subtitle { |
|
|
@ -259,6 +255,7 @@ const handleRegister = async () => { |
|
|
.footer-text { |
|
|
.footer-text { |
|
|
color: #444444; |
|
|
color: #444444; |
|
|
font-size: 0.8rem; |
|
|
font-size: 0.8rem; |
|
|
|
|
|
font-family: "STKaiti", "KaiTi", "华文楷体", "Microsoft YaHei", cursive; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.footer-link { |
|
|
.footer-link { |
|
|
@ -266,6 +263,7 @@ const handleRegister = async () => { |
|
|
font-size: 0.8rem; |
|
|
font-size: 0.8rem; |
|
|
text-decoration: none; |
|
|
text-decoration: none; |
|
|
transition: color 0.3s ease; |
|
|
transition: color 0.3s ease; |
|
|
|
|
|
font-family: "STKaiti", "KaiTi", "华文楷体", "Microsoft YaHei", cursive; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.footer-link:hover { |
|
|
.footer-link:hover { |
|
|
|