1234567891011121314151617181920212223242526272829303132333435363738394041 |
- import { defineStore, acceptHMRUpdate } from "pinia";
- import { RouteRecordRaw } from "vue-router";
- export const useStore = defineStore({
- id: "storeInfo",
- state: () => ({
- userInfo: { id: '' }, // 当前的用户信息
- routers: [], // 返回的所有路由
- asyncRoutesMark: false, // 是否添加过路由
- }),
- getters: {
- getRoutersList(): RouteRecordRaw[] { // 取值
- return this.routers;
- },
- getToken(): string {
- return this.userInfo?.id || ''
- }
- },
- actions: {
- // 方法
- setRouters(arr: any) {
- this.routers = arr;
- },
- setAsyncRoutesMark(val: boolean) {
- this.asyncRoutesMark = val;
- },
- setValue(val: any, key: 'userInfo' | 'routers' | 'asyncRoutesMark') {
- this[key] = val;
- },
- clearStore() {
- localStorage.clear();
- sessionStorage.clear();
- this.userInfo = { id: '' };
- this.routers = [];
- this.asyncRoutesMark = false;
- }
- },
- persist: true, // 是否持久化
- });
- if (import.meta.hot) {
- import.meta.hot.accept(acceptHMRUpdate(useStore, import.meta.hot));
- }
|