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(null); const menus = ref([]); 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 }; });