完成注册页面和操作

This commit is contained in:
柏码の讲师 2024-11-09 18:01:42 +08:00
parent 7f179a48f0
commit 54a8ad02d2
4 changed files with 142 additions and 1 deletions

View File

@ -25,7 +25,12 @@
</ul>
</div>
<div class="contact-info">
<a class="login-btn" href="#"><span class="icon-user-plus-solid-1"></span> 注册</a>
<a class="login-btn" style="margin-left: 10px" href="/login">
<span class="icon-user-notes"></span> 登录</a>
</div>
<div class="contact-info">
<a class="login-btn" style="margin-left: 10px" href="/register">
<span class="icon-user-plus-solid-1"></span> 注册</a>
</div>
</div>
</div>

View File

@ -29,6 +29,10 @@ const router = createRouter({
path: '/login',
name: 'login',
component: () => import('@/views/auth/Login.vue'),
}, {
path: '/register',
name: 'register',
component: () => import('@/views/auth/Register.vue'),
}
],
})

View File

@ -98,6 +98,9 @@ onMounted(refreshImage)
记住我
</label>
</div>
<div class="forgot-pass">
<a href="/register">还没有账号?立即注册</a>
</div>
</div>
<button type="submit" class="auth-btn w-100 mt-5" @click="login">立即登录</button>

129
src/views/auth/Register.vue Normal file
View File

@ -0,0 +1,129 @@
<script setup>
import {onMounted, reactive} from "vue";
import request from "@/net/index.js";
import Swal from "sweetalert2";
import router from "@/router/index.js";
const verify = reactive({
img: '',
uuid: ''
})
const visible = reactive({
password: false,
confirm: false,
})
const form = reactive({
username: '',
password: '',
confirm: '',
code: ''
})
function register() {
if (form.password === '' || form.username === '') {
Swal.fire({ title: "注册失败", text: "请填写您的用户和密码", icon: "warning" })
return
}
if (form.password !== form.confirm) {
Swal.fire({ title: "注册失败", text: "两次输入的密码不一致", icon: "warning" })
return
}
request.post('/register', {
code: form.code,
password: form.password,
confirmPassword: form.confirm,
username: form.username,
uuid: verify.uuid
}).then(({ data }) => {
if (data.code === 200) {
Swal.fire({ title: "注册成功" , icon: "success",
text: `恭喜您的账户 ${form.username} 注册成功,即将为您跳转到登录也进行登录` }).then(() => {
router.push('/login')
})
} else {
refreshImage()
Swal.fire({ title: "注册失败", text: data.msg, icon: "error" })
}
})
}
function refreshImage() {
request.get('/captchaImage').then(({ data }) => {
verify.img = data.img
verify.uuid = data.uuid
})
}
onMounted(refreshImage)
</script>
<template>
<div>
<div class="log-regi-area" style="height: 100vh;padding: 0">
<div class="container" style="height: 100%;display: flex;align-items: center;justify-content: center">
<div class="row">
<div style="width: 500px">
<div class="log-area" style="padding: 30px 60px;border-radius: 10px">
<h2>注册</h2>
<div class="form-floating mb-4">
<input v-model="form.username"
type="text" class="form-control" id="floatingInput6" placeholder="Username *">
<label class="lable-text" for="floatingInput6">用户名 *</label>
</div>
<div class="form-floating mb-4">
<input :type="visible.password ? 'text' : 'password'"
v-model="form.password"
class="form-control" id="floatingInput3" placeholder="Email address *">
<label class="lable-text" for="floatingInput3">密码 *</label>
<div class="password-key" @click="visible.password = !visible.password">
<i class="icon-eye"></i>
</div>
</div>
<div class="form-floating relative mb-4">
<input :type="visible.confirm ? 'text' : 'password'"
v-model="form.confirm"
class="form-control relative" id="floatingPassword4" placeholder="Password *">
<label class="lable-text" for="floatingPassword4">确认密码 *</label>
<div class="password-key" @click="visible.confirm = !visible.confirm">
<i class="icon-eye"></i>
</div>
</div>
<div class="row">
<div class="form-floating mb-5 col-8">
<input type="email" class="form-control" id="floatingInput3"
v-model="form.code"
placeholder="Username Or Email address *">
<label class="lable-text" for="floatingInput1">验证码
*</label>
</div>
<div class="col-4">
<img data-v-d0e06bca="" :src="`data:image/gif;base64,${verify.img}`" class="login-code-img">
</div>
</div>
<div class="mb-20 rem-forgot-btn">
<div class="forgot-pass">
<a href="/login">已有账户立即登录</a>
</div>
</div>
<p class="auth-desc">
本网站是xxx公司社交产品注册即代表您同意我们的 <a href="#">隐私政策</a>
</p>
<button type="submit" @click="register" class="auth-btn w-100 mt-5">立即注册</button>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<style scoped>
</style>