1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
| import { login, logout, getInfo } from "@/api/login";
| import { getToken, setToken, removeToken } from "@/utils/auth";
| import defAva from "@/assets/images/profile.jpg";
|
| const useUserStore = defineStore("user", {
| state: () => ({
| token: getToken(),
| name: "",
| avatar: "",
| roles: [] as string[],
| permissions: [],
| userId: "", //用户id
| }),
| actions: {
| // 登录
| login(userInfo: any) {
| const username = userInfo.username.trim();
| const password = userInfo.password;
| const code = userInfo.code;
| const uuid = userInfo.uuid;
| return new Promise((resolve, reject) => {
| login(username, password, code, uuid)
| .then((res) => {
| setToken(res.token);
| this.token = res.token;
| resolve(res);
| })
| .catch((error) => {
| reject(error);
| });
| });
| },
| // 获取用户信息
| getInfo() {
| return new Promise((resolve, reject) => {
| getInfo()
| .then((res) => {
| const user = res.user;
| const avatar = user.avatar == "" || user.avatar == null ? defAva : import.meta.env.VITE_APP_BASE_API + user.avatar;
|
| if (res.roles && res.roles.length > 0) {
| // 验证返回的roles是否是一个非空数组
| this.roles = res.roles;
| this.permissions = res.permissions;
| } else {
| this.roles = ["ROLE_DEFAULT"];
| }
| this.userId = user.userId;
| this.name = user.userName;
| this.avatar = avatar;
| resolve(res);
| })
| .catch((error) => {
| reject(error);
| });
| });
| },
| // 退出系统
| logOut() {
| return new Promise<void>((resolve, reject) => {
| logout()
| .then(() => {
| this.token = "";
| this.roles = [];
| this.permissions = [];
| removeToken();
| resolve();
| })
| .catch((error) => {
| reject(error);
| });
| });
| },
| },
| });
|
| export default useUserStore;
|
|