diff --git a/src/api/userApi.ts b/src/api/userApi.ts index 364a29d..ed7b8d8 100644 --- a/src/api/userApi.ts +++ b/src/api/userApi.ts @@ -1,9 +1,10 @@ import http from "@/utils/request"; +import type { UserInfo } from "@/store/user"; // 获取用户信息 -export const getUserInfo = () => { - return http({ - url:'/api/v1/UserControllers/My', - method:'GET' - }) +export const getUserInfo = (): Promise => { + return http({ + url: "/api/v1/UserControllers/My", + method: "GET", + }); }; diff --git a/src/store/app.ts b/src/store/app.ts index 225b64b..7fa073c 100644 --- a/src/store/app.ts +++ b/src/store/app.ts @@ -1,6 +1,6 @@ import { defineStore } from "pinia"; -export const useAppStore = defineStore('User', () => { +export const useAppStore = defineStore('App', () => { //左侧菜单相关 const menuApp = reactive({ diff --git a/src/store/user.ts b/src/store/user.ts new file mode 100644 index 0000000..5dcc47a --- /dev/null +++ b/src/store/user.ts @@ -0,0 +1,42 @@ +import { defineStore } from "pinia"; + +export interface UserInfo { + birthday?: undefined | string | Date; // Adjust the type based on what you expect + config?: undefined | any; // Replace 'any' with a more specific type if possible + description?: undefined | string; + email: string; + id: string; + jobCode?: undefined | string; + jobName?: undefined | string; + menuName?: undefined | string; + sex: string; + userName: string; +} + +export const useUserStore = defineStore( + "User", + () => { + //用户信息 + const userInfo = reactive({ + birthday: void 0, + config: void 0, + description: void 0, + email: "", + id: "", + jobCode: void 0, + jobName: void 0, + menuName: void 0, + sex: "", + userName: "", + }); + // 赋值 + const setUserInfo = (data: UserInfo) => { + Object.assign(userInfo, data); + }; + return { + userInfo, + setUserInfo + }; + }, + { persist: true } +); diff --git a/src/views/login/OauthCallBack.vue b/src/views/login/OauthCallBack.vue index 2a60bfc..ac5ca79 100644 --- a/src/views/login/OauthCallBack.vue +++ b/src/views/login/OauthCallBack.vue @@ -8,17 +8,19 @@ import { removeToken, setToken } from '@/utils/auth'; import { useMessage } from 'naive-ui'; import { getUserInfo } from '@/api/userApi'; +import { useUserStore } from '@/store/user'; +import type { UserInfo } from '@/store/user'; const router = useRouter(); const message = useMessage(); +const userStore = useUserStore(); const init = async () => { try { const route = useRoute(); const token = route.query.token as string; // 获取token参数 console.log('Token:', token); setToken(token) - // const result = await getUserInfo(); - // console.log(result, 'result'); //后面userInfo要存到store里面 - //TODO + const result = await getUserInfo(); + userStore.setUserInfo(result); message.success('登录成功!'); router.push('/layout'); } catch (error) { diff --git a/src/views/role/pages/Auth.vue b/src/views/role/pages/Auth.vue index ebd24aa..a651efa 100644 --- a/src/views/role/pages/Auth.vue +++ b/src/views/role/pages/Auth.vue @@ -2,7 +2,7 @@
- + 搜索