diff --git a/src/api/oauth/index.ts b/src/api/oauth/index.ts
new file mode 100644
index 0000000..ee38cd0
--- /dev/null
+++ b/src/api/oauth/index.ts
@@ -0,0 +1,37 @@
+import {service} from "@/utils/alova/service.ts";
+
+/**
+ * 生成客户端id
+ */
+export const generateClientId = () => {
+ return service.Get('/api/oauth/generate_client_id',
+ {
+ meta: {
+ ignoreToken: true,
+ }
+ }
+ );
+};
+/**
+ * 获取临时二维码
+ * @param clientId
+ */
+export const generateQrCode = (clientId: string) => {
+ return service.Get('/api/oauth/get_temp_qrcode',
+ {
+ params: {
+ client_id: clientId
+ },
+ meta: {
+ ignoreToken: true,
+ },
+ cacheFor: {
+ // 设置缓存模式为持久化模式
+ mode: 'restore',
+ // 缓存时间
+ expire: 30 * 24 * 60 * 60 * 1000,
+ tag: 'v1'
+ }
+ }
+ );
+};
diff --git a/src/api/user/index.ts b/src/api/user/index.ts
index 6576347..a1853a8 100644
--- a/src/api/user/index.ts
+++ b/src/api/user/index.ts
@@ -1,5 +1,5 @@
import {service} from "@/utils/alova/service.ts";
-import {PhoneLogin} from "@/types/user";
+import {AccountLogin, PhoneLogin, ResetPassword} from "@/types/user";
/**
* 获取用户信息
@@ -64,3 +64,38 @@ export const phoneLoginApi = (param: PhoneLogin) => {
}
);
};
+/**
+ * 账号登录
+ * @param param
+ */
+export const accountLoginApi = (param: AccountLogin) => {
+ return service.Post('/api/user/login', {
+ account: param.account,
+ password: param.password,
+ },
+ {
+ meta: {
+ ignoreToken: true,
+ authRole: 'login'
+ }
+ }
+ );
+};
+/**
+ * 重置密码
+ * @param param
+ */
+export const resetPasswordApi = (param: ResetPassword) => {
+ return service.Post('/api/user/reset_password', {
+ phone: param.phone,
+ captcha: param.captcha,
+ password: param.password,
+ repassword: param.repassword
+ },
+ {
+ meta: {
+ ignoreToken: true,
+ }
+ }
+ );
+};
diff --git a/src/assets/svgs/logo-schisandra.svg b/src/assets/svgs/logo-schisandra.svg
new file mode 100644
index 0000000..089d7a9
--- /dev/null
+++ b/src/assets/svgs/logo-schisandra.svg
@@ -0,0 +1,77 @@
+
diff --git a/src/locales/language/en.ts b/src/locales/language/en.ts
index 4465885..f090fad 100644
--- a/src/locales/language/en.ts
+++ b/src/locales/language/en.ts
@@ -38,6 +38,9 @@ export default {
sendCaptchaError: "captcha sending failed, please try again later",
loginSuccess: "login success!",
loginError: "login failed!",
+ twoPasswordNotSame: "two passwords are not the same, please try again!",
+ resetPasswordSuccess: "reset password success!",
+ resetPasswordError: "reset password failed!",
},
error: {
diff --git a/src/locales/language/zh.ts b/src/locales/language/zh.ts
index 19bd91b..035b4d5 100644
--- a/src/locales/language/zh.ts
+++ b/src/locales/language/zh.ts
@@ -38,6 +38,10 @@ export default {
sendCaptchaError: "验证码发送失败,请稍后再试!",
loginSuccess: "登录成功!",
loginError: "登录失败!",
+ twoPasswordNotSame: "两次密码输入不一致!",
+ resetPasswordSuccess: "密码重置成功!",
+ resetPasswordError: "密码重置失败!",
+
},
diff --git a/src/utils/axios/request.ts b/src/utils/axios/request.ts
index bd35115..4092258 100644
--- a/src/utils/axios/request.ts
+++ b/src/utils/axios/request.ts
@@ -14,7 +14,7 @@ class Request {
this.instance.interceptors.request.use(
(config) => {
const user = useStore().user;
- const token: string | undefined = user.getUser()?.accessToken;
+ const token: string | undefined = user.user.accessToken;
if (token) {
config.headers.Authorization = `${import.meta.env.VITE_APP_TOKEN_KEY} ${token}`;
}
diff --git a/src/views/Forget/ForgetPage.vue b/src/views/Forget/ForgetPage.vue
index 5668baf..e1a7291 100644
--- a/src/views/Forget/ForgetPage.vue
+++ b/src/views/Forget/ForgetPage.vue
@@ -15,7 +15,8 @@
>
{{ t("login.phone") }}
-
+
@@ -26,7 +27,7 @@
{{ t("login.phoneCaptcha") }}
+ allow-clear autocomplete="off">
@@ -44,20 +45,21 @@
{{ t("login.password") }}
-
+
-
+
{{ t("login.repassword") }}
-
+
-
+
{{
@@ -77,6 +79,18 @@
+
+
+
+