web/src/store/user/index.ts

62 lines
1.1 KiB
TypeScript

import { LoginedUserVo } from "@/api";
import { defineStore } from "pinia";
export const useUserStore = defineStore({
id: "user",
state: () => {
return {
/**
* 用户ID
*/
id: 0,
/**
* 登录用户名
*/
username: "juetan",
/**
* 用户昵称
*/
nickname: "绝弹",
/** `
* 用户头像地址
*/
avatar: "https://github.com/juetan.png",
/**
* JWT令牌
*/
accessToken: "",
/**
* 刷新令牌
*/
refreshToken: undefined,
};
},
actions: {
/**
* 设置令牌
*/
setToken(token: string) {
this.accessToken = token;
},
/**
* 清除用户信息
*/
clearUser() {
this.$reset()
},
/**
* 设置用户信息
*/
setUser(user: LoginedUserVo) {
this.id = user.id;
this.username = user.username;
this.nickname = user.nickname;
this.avatar = user.avatar;
this.accessToken = user.token;
},
},
persist: true,
});