From 4f118047c4724e966226a4fd79af79d97b3055ec Mon Sep 17 00:00:00 2001
From: lq <121091329@qq.com>
Date: Sat, 21 Jun 2025 15:31:21 +0800
Subject: [PATCH] =?UTF-8?q?=E7=99=BB=E5=BD=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/api/all/login.ts | 2 +-
src/router/guard/userLoginInfo.ts | 9 +--
src/stores/modules/user/index.ts | 77 +++++++++++++++++--
src/utils/user.ts | 2 +
.../login/components/PuzzleVerification.vue | 6 ++
src/views/components/login/index.vue | 32 ++++++--
6 files changed, 106 insertions(+), 22 deletions(-)
diff --git a/src/api/all/login.ts b/src/api/all/login.ts
index bc2fd4c..cc33772 100644
--- a/src/api/all/login.ts
+++ b/src/api/all/login.ts
@@ -26,7 +26,7 @@ export const fetchLogOut = (params = {}) => {
// 导出一个名为fetchProfileInfo的函数,用于获取用户信息
export const fetchProfileInfo = (params = {}) => {
// 使用Http.put方法,向/v1/me接口发送put请求,并将params作为参数传递
- return Http.put('/v1/me', params);
+ return Http.get('/v1/me', params);
};
// 导出一个函数,用于获取编辑手机号的验证码
diff --git a/src/router/guard/userLoginInfo.ts b/src/router/guard/userLoginInfo.ts
index 3e3297f..d89cc51 100644
--- a/src/router/guard/userLoginInfo.ts
+++ b/src/router/guard/userLoginInfo.ts
@@ -30,14 +30,7 @@ export default function setupUserLoginInfoGuard(router: Router) {
}
} else {
clearAllLocalStorage();
- // todo 跳转回登录鉴权页,当前为mock路由地址
- next({
- name: 'auth',
- query: {
- redirect: to.name,
- ...to.query,
- } as LocationQueryRaw,
- });
+ next({ name: 'UserLogin' }); // 添加缺失的next调用
}
});
}
diff --git a/src/stores/modules/user/index.ts b/src/stores/modules/user/index.ts
index c3cf6c1..a7c57cb 100644
--- a/src/stores/modules/user/index.ts
+++ b/src/stores/modules/user/index.ts
@@ -1,29 +1,92 @@
import { defineStore } from 'pinia';
+interface UserInfo {
+ id: number;
+ name: string;
+ head_image: String;
+ current_enterprise_id: number;
+ mobile: string;
+ // 添加其他用户属性...
+}
+
+interface CompanyInfo {
+ id: number;
+ name: string;
+ // 添加其他公司属性...
+}
+
interface UserState {
- token: String;
+ token: string;
+ userInfo: UserInfo | null;
+ companyInfo: CompanyInfo | null;
}
export const useUserStore = defineStore('user', {
state: (): UserState => ({
token: localStorage.getItem('accessToken') || '',
+ userInfo: null,
+ companyInfo: null,
}),
- getters: {},
-
actions: {
setToken(token: String) {
const _token = `Bearer ${token}`;
this.token = _token;
localStorage.setItem('accessToken', _token);
},
+
+ // 存储用户信息
+ setUserInfo(userInfo: UserInfo | null) {
+ this.userInfo = userInfo;
+ if (userInfo) {
+ localStorage.setItem('userInfo', JSON.stringify(userInfo));
+ } else {
+ localStorage.removeItem('userInfo');
+ }
+ },
+
+ // 获取用户信息
+ getUserInfo(): UserInfo | null {
+ const userInfoStr = localStorage.getItem('userInfo');
+ if (userInfoStr) {
+ try {
+ return JSON.parse(userInfoStr);
+ } catch (error) {
+ console.error('解析用户信息失败:', error);
+ return null;
+ }
+ }
+ return null;
+ },
+
+ // 存储公司信息
+ setCompanyInfo(companyInfo: CompanyInfo | null) {
+ this.companyInfo = companyInfo;
+ if (companyInfo) {
+ localStorage.setItem('companyInfo', JSON.stringify(companyInfo));
+ } else {
+ localStorage.removeItem('companyInfo');
+ }
+ },
+
+ // 获取公司信息
+ getCompanyInfo(): CompanyInfo | null {
+ const companyInfoStr = localStorage.getItem('companyInfo');
+ if (companyInfoStr) {
+ try {
+ return JSON.parse(companyInfoStr);
+ } catch (error) {
+ console.error('解析公司信息失败:', error);
+ return null;
+ }
+ }
+ return null;
+ },
+
+ // 删除 token
deleteToken() {
this.token = '';
localStorage.removeItem('accessToken');
},
- async getUserInfo() {
- // todo 调用获取用户信息接口,当前用mock数据表示
- // AMessage.success(`当前用户角色为:ENTERPRISE`);
- },
},
});
diff --git a/src/utils/user.ts b/src/utils/user.ts
index 89a97c5..993b8c6 100644
--- a/src/utils/user.ts
+++ b/src/utils/user.ts
@@ -16,6 +16,8 @@ export async function handleUserLogin() {
handleUserHome();
}
+
+
// 首页
export function handleUserHome() {
router.push({ name: 'Home' });
diff --git a/src/views/components/login/components/PuzzleVerification.vue b/src/views/components/login/components/PuzzleVerification.vue
index 51849c6..8fc9611 100644
--- a/src/views/components/login/components/PuzzleVerification.vue
+++ b/src/views/components/login/components/PuzzleVerification.vue
@@ -522,6 +522,12 @@ function reset() {
const emit = defineEmits(['submit']);
+
+