register page frame
This commit is contained in:
parent
c6704627fc
commit
838ff0fe14
|
@ -1,8 +1,8 @@
|
||||||
<!-- App -->
|
<!-- App -->
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
// 导入通知和提示组件
|
// 导入通知和提示组件
|
||||||
import Alert from '@/components/KUNGalgameAlert/Alert.vue'
|
import Alert from '@/components/alert/Alert.vue'
|
||||||
import Info from '@/components/KUNGalgameAlert/Info.vue'
|
import Info from '@/components/alert/Info.vue'
|
||||||
|
|
||||||
import { onBeforeMount } from 'vue'
|
import { onBeforeMount } from 'vue'
|
||||||
// 导入设置面板 store
|
// 导入设置面板 store
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
<script setup lang="ts"></script>
|
<script setup lang="ts">
|
||||||
|
import BackToPrevious from '@/components/BackToPrevious.vue'
|
||||||
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div class="root">
|
<div class="root">
|
||||||
|
@ -18,6 +20,7 @@
|
||||||
<p>4. 因用户账号被盗等造成的损失,KUNGalgame 概不承担</p>
|
<p>4. 因用户账号被盗等造成的损失,KUNGalgame 概不承担</p>
|
||||||
<p>协议版本 2019/10/07</p>
|
<p>协议版本 2019/10/07</p>
|
||||||
</div>
|
</div>
|
||||||
|
<BackToPrevious />
|
||||||
<!-- 版权 -->
|
<!-- 版权 -->
|
||||||
<div class="copyright">
|
<div class="copyright">
|
||||||
<span>Copyright © 2023 KUNgalgame</span>
|
<span>Copyright © 2023 KUNgalgame</span>
|
||||||
|
|
|
@ -1,46 +1,135 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { reactive } from 'vue'
|
import { ref, reactive } from 'vue'
|
||||||
|
import { useKUNGalgamerStore } from '@/store/modules/kungalgamer'
|
||||||
|
import { useRouter } from 'vue-router'
|
||||||
|
// 使用全局通知
|
||||||
|
import { useKUNGalgameMessageStore } from '@/store/modules/message'
|
||||||
|
|
||||||
const loginForm = reactive({
|
// 导入人机验证组件
|
||||||
|
import Capture from '@/components/capture/Capture.vue'
|
||||||
|
|
||||||
|
// 导入验证表单是否合法的函数
|
||||||
|
import { isValidEmail, isValidName, isValidPassword } from '@/utils/validate'
|
||||||
|
|
||||||
|
// 导入 i18n
|
||||||
|
import { useI18n } from 'vue-i18n'
|
||||||
|
const { t } = useI18n()
|
||||||
|
|
||||||
|
// 定义人机验证的标志
|
||||||
|
const isShowValidate = ref(false)
|
||||||
|
// 定义人机验证是否完成的标志
|
||||||
|
const isCaptureComplete = ref(false)
|
||||||
|
|
||||||
|
const router = useRouter()
|
||||||
|
|
||||||
|
const info = useKUNGalgameMessageStore()
|
||||||
|
|
||||||
|
const useStore = useKUNGalgamerStore()
|
||||||
|
|
||||||
|
const registerForm = reactive({
|
||||||
username: '',
|
username: '',
|
||||||
email: '',
|
email: '',
|
||||||
password: '',
|
password: '',
|
||||||
code: '',
|
code: '',
|
||||||
})
|
})
|
||||||
|
|
||||||
const handleRegister = () => {}
|
const handleVerify = (result: boolean) => {
|
||||||
|
if (result) {
|
||||||
|
// 处理人机校验完成后的逻辑
|
||||||
|
isShowValidate.value = false
|
||||||
|
info.info(t('AlertInfo.capture.success'))
|
||||||
|
isCaptureComplete.value = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const isEmptyInput = () => {
|
||||||
|
// 如果输入的字段为空
|
||||||
|
if (!registerForm.username.trim()) {
|
||||||
|
// 提示用户输入的名字为空
|
||||||
|
info.info(t('AlertInfo.login.emptyUsername'))
|
||||||
|
return false
|
||||||
|
} else if (!registerForm.password.trim()) {
|
||||||
|
// 提示用户输入的密码为空
|
||||||
|
info.info(t('AlertInfo.login.emptyPassword'))
|
||||||
|
return false
|
||||||
|
} else {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 判断输入的用户名和密码字段是否合法
|
||||||
|
const isValidInput = (): boolean => {
|
||||||
|
// 如果输入为空直接返回 false
|
||||||
|
if (!isEmptyInput()) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if (
|
||||||
|
isValidEmail(registerForm.username) ||
|
||||||
|
isValidName(registerForm.username)
|
||||||
|
) {
|
||||||
|
// 输入的用户名正确时(为用户名或邮箱)
|
||||||
|
if (isValidPassword(registerForm.password)) {
|
||||||
|
return true
|
||||||
|
} else {
|
||||||
|
// 如果密码非法的话返回非法密码
|
||||||
|
info.info(t('AlertInfo.login.invalidPassword'))
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 输入的用户名或邮箱错误时的逻辑
|
||||||
|
info.info(t('AlertInfo.login.invalidUsername'))
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 处理用户点击登陆时的逻辑
|
||||||
|
const handleRegister = () => {
|
||||||
|
// 保证输入格式和人机验证通过才能发送登录请求
|
||||||
|
if (isValidInput()) {
|
||||||
|
// 未完成人机身份验证提示信息,直接返回
|
||||||
|
if (!isCaptureComplete.value) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// 所有的验证都通过了再向后端发送请求
|
||||||
|
// TODO:在这里执行注册函数
|
||||||
|
}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<!-- 注册 -->
|
<!-- 注册 -->
|
||||||
<div class="register">
|
<div class="register">
|
||||||
|
<Capture @validate="handleVerify" :isShowValidate="isShowValidate" />
|
||||||
<form action="#" class="form" id="form2" @submit.prevent="handleRegister">
|
<form action="#" class="form" id="form2" @submit.prevent="handleRegister">
|
||||||
<h2 class="title">注册</h2>
|
<h2 class="title">注册</h2>
|
||||||
<input
|
<input
|
||||||
v-model="loginForm.username"
|
v-model="registerForm.username"
|
||||||
type="text"
|
type="text"
|
||||||
placeholder="用户名"
|
placeholder="用户名"
|
||||||
class="input"
|
class="input"
|
||||||
/>
|
/>
|
||||||
<input
|
<input
|
||||||
v-model="loginForm.email"
|
v-model="registerForm.email"
|
||||||
type="email"
|
type="email"
|
||||||
placeholder="邮箱"
|
placeholder="邮箱"
|
||||||
class="input"
|
class="input"
|
||||||
/>
|
/>
|
||||||
<input
|
<input
|
||||||
v-model="loginForm.password"
|
v-model="registerForm.password"
|
||||||
type="password"
|
type="password"
|
||||||
placeholder="密码"
|
placeholder="密码"
|
||||||
class="input"
|
class="input"
|
||||||
/>
|
/>
|
||||||
<input
|
<input
|
||||||
v-model="loginForm.code"
|
v-model="registerForm.code"
|
||||||
type="text"
|
type="text"
|
||||||
placeholder="邮箱验证码"
|
placeholder="邮箱验证码"
|
||||||
class="input"
|
class="input"
|
||||||
/>
|
/>
|
||||||
<button class="mail-confirm">发送验证码</button>
|
<!-- 发送时进行人机验证 -->
|
||||||
|
<button @click="isShowValidate = true" class="mail-confirm">
|
||||||
|
发送验证码
|
||||||
|
</button>
|
||||||
<button class="btn" type="submit">注册</button>
|
<button class="btn" type="submit">注册</button>
|
||||||
<span class="user-agreement"
|
<span class="user-agreement"
|
||||||
>点击注册表示您已经同意我们的<router-link to="/licence"
|
>点击注册表示您已经同意我们的<router-link to="/licence"
|
||||||
|
@ -64,15 +153,15 @@ const handleRegister = () => {}
|
||||||
position: absolute;
|
position: absolute;
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
height: 30px;
|
height: 30px;
|
||||||
bottom: 22%;
|
bottom: 23%;
|
||||||
right: 15%;
|
right: 15%;
|
||||||
border: 1px solid var(--kungalgame-blue-1);
|
border: 1px solid var(--kungalgame-blue-1);
|
||||||
|
color: var(--kungalgame-font-color-2);
|
||||||
background-color: var(--kungalgame-white);
|
background-color: var(--kungalgame-white);
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
.mail-confirm:hover {
|
.mail-confirm:hover {
|
||||||
background-color: var(--kungalgame-blue-4);
|
color: var(--kungalgame-blue-4);
|
||||||
color: var(--kungalgame-white);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 用户协议 */
|
/* 用户协议 */
|
||||||
|
|
|
@ -25,7 +25,7 @@ import KUNGalgameFooter from '@/components/KUNGalgameFooter.vue'
|
||||||
<li>Github(github) - 配色</li>
|
<li>Github(github) - 配色</li>
|
||||||
<li>bbs.kfmax.com(绯月) - 用户信息分类</li>
|
<li>bbs.kfmax.com(绯月) - 用户信息分类</li>
|
||||||
<li>StackOverflow (StackOverflow) - 页面板块的阴影</li>
|
<li>StackOverflow (StackOverflow) - 页面板块的阴影</li>
|
||||||
<li>ChatGPT (Open AIChatGPT) - 各种技术问题</li>
|
<li>ChatGPT (OpenAI ChatGPT) - 各种技术问题</li>
|
||||||
<li>Google(谷歌) - 帖子详情页面</li>
|
<li>Google(谷歌) - 帖子详情页面</li>
|
||||||
<li>YouTube (油管) - 技术交流页面</li>
|
<li>YouTube (油管) - 技术交流页面</li>
|
||||||
<li>Adobe (Adobe) - 底部 Footer</li>
|
<li>Adobe (Adobe) - 底部 Footer</li>
|
||||||
|
|
Loading…
Reference in a new issue