feat(projects): 迁移多页签

This commit is contained in:
Soybean
2022-01-20 00:56:59 +08:00
parent cc290accc2
commit 28efbdbc70
26 changed files with 868 additions and 20 deletions

View File

@ -3,10 +3,13 @@ import { defineStore } from 'pinia';
import { fetchUserRoutes } from '@/service';
import { transformAuthRouteToMenu, transformAuthRoutesToVueRoutes } from '@/utils';
import type { GlobalMenuOption } from '@/interface';
import { useTabStore } from '../tab';
interface RouteState {
/** 是否添加过动态路由 */
isAddedDynamicRoute: boolean;
/** 路由首页name */
routeHomeName: AuthRoute.RouteKey;
/** 菜单 */
menus: GlobalMenuOption[];
}
@ -14,6 +17,7 @@ interface RouteState {
export const useRouteStore = defineStore('route-store', {
state: (): RouteState => ({
isAddedDynamicRoute: false,
routeHomeName: 'dashboard_analysis',
menus: []
}),
actions: {
@ -22,8 +26,11 @@ export const useRouteStore = defineStore('route-store', {
* @param router - 路由实例
*/
async initDynamicRoute(router: Router) {
const { initHomeTab } = useTabStore();
const { data } = await fetchUserRoutes();
if (data) {
this.routeHomeName = data.home;
this.menus = transformAuthRouteToMenu(data.routes);
const vueRoutes = transformAuthRoutesToVueRoutes(data.routes);
@ -31,6 +38,7 @@ export const useRouteStore = defineStore('route-store', {
router.addRoute(route);
});
initHomeTab(data.home, router);
this.isAddedDynamicRoute = true;
}
}