user.ts
756 Bytes
import { defineStore } from "pinia";
import { ref } from "vue";
import type { AdminProfile, MenuNode } from "@/api/admin";
import { clearToken, setToken } from "@/utils/request";
export const useUserStore = defineStore("user", () => {
const profile = ref<AdminProfile | null>(null);
const menus = ref<MenuNode[]>([]);
function setProfile(p: AdminProfile | null) {
profile.value = p;
}
function setMenus(m: MenuNode[]) {
menus.value = m;
}
function clearProfile() {
profile.value = null;
menus.value = [];
clearToken();
}
function afterLogin(token: string, admin: AdminProfile) {
setToken(token);
profile.value = admin;
}
return { profile, menus, setProfile, setMenus, clearProfile, afterLogin };
});