diff --git a/src/router/index.ts b/src/router/index.ts index 1fb7df3..8125200 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -1,8 +1,16 @@ import type { App } from 'vue'; import { createRouter, createWebHistory, createWebHashHistory, RouteRecordRaw } from 'vue-router'; import { setupRouterGuard } from './guard'; +import { BasicLayout } from '@/layouts/index'; const routes: RouteRecordRaw[] = [ + { + path: '/', + name: 'root', + redirect: '/test/test1', + component: BasicLayout, + children: [], + }, { path: '/login', name: 'login', diff --git a/src/store/modules/auth.ts b/src/store/modules/auth.ts index f9f5336..c31534a 100644 --- a/src/store/modules/auth.ts +++ b/src/store/modules/auth.ts @@ -50,8 +50,10 @@ export const useAuthStore = defineStore('auth-store', { // 等待数据写入完成 const catchSuccess = await this.catchUserInfo(data); // 初始化侧边菜单 - const { setMenus } = useRouteStore(); + const { setMenus, setUserRoutes } = useRouteStore(); + await setUserRoutes(data.userRoutes); await setMenus(); + // 登录写入信息成功 if (catchSuccess) { // 进行重定向跳转 diff --git a/src/store/modules/route.ts b/src/store/modules/route.ts index c723084..facbaef 100644 --- a/src/store/modules/route.ts +++ b/src/store/modules/route.ts @@ -1,6 +1,7 @@ import { defineStore } from 'pinia'; import { renderIcon, getUserInfo } from '@/utils'; -import type { MenuOption } from 'naive-ui'; +import { MenuOption, radioGroupProps } from 'naive-ui'; +import { setDynamicRoutes } from '@/router/guard/dynamic'; interface RoutesStatus { isInitAuthRoute: boolean; @@ -10,7 +11,7 @@ interface RoutesStatus { export const useRouteStore = defineStore('route-store', { state: (): RoutesStatus => { return { - userRoutes: getUserInfo().userRoutes, + userRoutes: [], isInitAuthRoute: false, menus: [], }; @@ -19,7 +20,9 @@ export const useRouteStore = defineStore('route-store', { async setMenus() { this.menus = this.transformAuthRoutesToMenus(this.userRoutes); }, - + async setUserRoutes(routes: any) { + this.userRoutes = routes; + }, // 将返回的路由表渲染成侧边栏 transformAuthRoutesToMenus(userRoutes: Auth.UserInfoPermissions[]): MenuOption[] { return userRoutes.map((item) => { @@ -57,6 +60,7 @@ export const useRouteStore = defineStore('route-store', { async initAuthRoute() { await this.setMenus(); + await setDynamicRoutes(); this.isInitAuthRoute = true; }, },