diff --git a/src/api/account.js b/src/api/account.js
index 09813e5..cf3c517 100644
--- a/src/api/account.js
+++ b/src/api/account.js
@@ -149,4 +149,12 @@ export function queryPkDetail(data) {
//退出登录
export function logout(data) {
return postAxios({ url: 'user/logout',data})
+}
+//忘记密码
+export function forgetPassword(data) {
+ return postAxios({ url: 'user/forgetMail', data })
+}
+//重设密码
+export function resetPassword(data) {
+ return postAxios({ url: 'user/resetPassword', data })
}
\ No newline at end of file
diff --git a/src/router/index.js b/src/router/index.js
index e6b04ac..307cd54 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -2,6 +2,9 @@ import { createRouter, createWebHashHistory, createWebHistory } from 'vue-router
import HomeView from '../views/HomeView.vue'
import emailRegistration from '../views/emailRegistration.vue'
import ActivateEmail from '../views/ActivateEmail.vue'
+import activationSuccessful from '../views/activationSuccessful.vue'
+import forgetPassword from '../views/forgetPassword.vue'
+import resetPassword from '../views/resetPassword.vue'
import { setStorage , getStorage } from '@/utils/storage.js';
const routes = [
{
@@ -19,6 +22,22 @@ const routes = [
name: 'ActivateEmail',
component: ActivateEmail
},
+ {
+ path: '/activationSuccessful',
+ name: 'activationSuccessful',
+ component: activationSuccessful
+ },
+ {
+ path: '/forgetPassword',
+ name: 'forgetPassword',
+ component: forgetPassword
+ },
+ {
+ path: '/resetPassword',
+ name: 'resetPassword',
+ component: resetPassword
+ },
+
{
path: '/nav',
name: 'nav',
diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue
index ea6813a..ec1a0ed 100644
--- a/src/views/HomeView.vue
+++ b/src/views/HomeView.vue
@@ -53,9 +53,15 @@
@@ -144,7 +150,9 @@ function fuSWitch() {
function register() {
router.push("/emailRegistration");
}
-
+function forgetPassword() {
+ router.push("/forgetPassword");
+}
// 获取二维码
function fetchQrcode() {
getVxQrcode().then((res) => {
@@ -226,7 +234,7 @@ onUnmounted(() => {
width: 627px;
height: 40px;
display: flex;
- justify-content: flex-end;
+ justify-content:space-between;
}
.register-text {
font-size: 18px;
@@ -234,6 +242,9 @@ onUnmounted(() => {
font-weight: bold;
margin-right: 10px;
}
+.register-content{
+ display: flex;
+}
.register-btn {
font-size: 18px;
color: #5fdbde;
diff --git a/src/views/activationSuccessful.vue b/src/views/activationSuccessful.vue
new file mode 100644
index 0000000..315b3b6
--- /dev/null
+++ b/src/views/activationSuccessful.vue
@@ -0,0 +1,49 @@
+
+
+
+
+
+
diff --git a/src/views/emailRegistration.vue b/src/views/emailRegistration.vue
index 462d8b6..5afdd7d 100644
--- a/src/views/emailRegistration.vue
+++ b/src/views/emailRegistration.vue
@@ -38,9 +38,13 @@
已向您的{{Email}}邮箱发送了一封验证邮件,请点击邮件中的链接完成注册。
-
- 重发邮件
-
+
+ {{ isCounting ? `${countdown}秒后重发` : '重发邮件' }}
+
@@ -67,6 +71,23 @@ const ConfirmPassword = ref("");// 确认密码
const token = tokenStore()
const user = UserStore()
const userNamebtn = ref(false)
+const countdown = ref(0); // 倒计时秒数
+const isCounting = ref(false); // 是否正在倒计时
+let timer = null; // 定时器
+
+function startCountdown() {
+ countdown.value = 60;
+ isCounting.value = true;
+ timer = setInterval(() => {
+ countdown.value--;
+ if (countdown.value <= 0) {
+ clearInterval(timer);
+ isCounting.value = false;
+ }
+ }, 1000);
+}
+
+
// 用户名失去焦点
function userNameBlur() {
if (userName.value.length < 6 || userName.value.length > 16 || userName.value == '' || userName.value == null) {
@@ -121,6 +142,7 @@ function nextStep() {
check(res.id);
token.setToken(res.token);
setStorage('token', res.token)
+ startCountdown();
}).catch(err => {});
}
@@ -146,6 +168,7 @@ function pollstop() {
function ResendEmail() {
resendEmail({mailAddress: Email.value,type:1}).then(res => {
ElMessage.success('邮件已重新发送');
+ startCountdown();
}).catch(err => {});
}
//返回登录页
diff --git a/src/views/forgetPassword.vue b/src/views/forgetPassword.vue
new file mode 100644
index 0000000..7b20bfb
--- /dev/null
+++ b/src/views/forgetPassword.vue
@@ -0,0 +1,334 @@
+
+
+
+
+
+
+
diff --git a/src/views/resetPassword.vue b/src/views/resetPassword.vue
new file mode 100644
index 0000000..d157847
--- /dev/null
+++ b/src/views/resetPassword.vue
@@ -0,0 +1,300 @@
+
+
+
+
+
+
+
+
+