mirror of
https://gitee.com/xiangheng/x_admin.git
synced 2025-09-27 04:26:24 +08:00
80 lines
1.9 KiB
TypeScript
80 lines
1.9 KiB
TypeScript
import { defineStore } from "pinia";
|
|
import { logout, getInfo } from "@/api/user";
|
|
|
|
import { getLocalStorage, removeLocalStorage } from "@/utils/storage";
|
|
|
|
export const useUserStore = defineStore("user", {
|
|
state: () => {
|
|
return {
|
|
nickname: "",
|
|
username: "",
|
|
avatar: "",
|
|
userInfo: {},
|
|
menu: [],
|
|
auth: [],
|
|
};
|
|
},
|
|
// 也可以这样定义
|
|
// state: () => ({ count: 0 })
|
|
actions: {
|
|
// get user info
|
|
getInfo() {
|
|
return new Promise((resolve, reject) => {
|
|
let token = getLocalStorage("token");
|
|
if (!token) {
|
|
return reject(new Error("需要登录"));
|
|
}
|
|
getInfo(token)
|
|
.then((res) => {
|
|
if (res.code === 200) {
|
|
const { data } = res;
|
|
this.nickname = data.user.nickname;
|
|
this.username = data.user.username;
|
|
|
|
this.avatar = data.user.avatar ||"";
|
|
// this.menu = data.menu;
|
|
// this.auth = data.auth;
|
|
this.userInfo = data.user;
|
|
resolve(data);
|
|
} else {
|
|
reject(new Error(res.message));
|
|
}
|
|
|
|
// addRoutes(result.menu);
|
|
})
|
|
.catch((error) => {
|
|
reject(error);
|
|
});
|
|
});
|
|
},
|
|
|
|
// user logout
|
|
logout() {
|
|
return new Promise((resolve, reject) => {
|
|
logout()
|
|
.then(() => {
|
|
// resetRouter();
|
|
this.resetToken();
|
|
resolve(true);
|
|
})
|
|
.catch((error) => {
|
|
reject(error);
|
|
});
|
|
});
|
|
},
|
|
|
|
// remove token
|
|
resetToken() {
|
|
return new Promise((resolve) => {
|
|
// this.token = "";
|
|
this.nickname = '';
|
|
this.username = "";
|
|
|
|
this.avatar = "";
|
|
removeLocalStorage("token");
|
|
resolve(true);
|
|
});
|
|
},
|
|
},
|
|
});
|