refactor: ♻️ 菜单路由优化
This commit is contained in:
@@ -8,12 +8,12 @@ const modules = import.meta.glob("../../views/**/**.vue");
|
||||
const Layout = () => import("@/layout/index.vue");
|
||||
|
||||
export const usePermissionStore = defineStore("permission", () => {
|
||||
// 储所有路由,包括静态路由和动态路由
|
||||
// 存储所有路由,包括静态路由和动态路由
|
||||
const routes = ref<RouteRecordRaw[]>([]);
|
||||
// 混合模式左侧菜单路由
|
||||
const mixedLayoutLeftRoutes = ref<RouteRecordRaw[]>([]);
|
||||
const sideMenuRoutes = ref<RouteRecordRaw[]>([]);
|
||||
// 路由是否加载完成
|
||||
const isRoutesLoaded = ref(false);
|
||||
const routesLoaded = ref(false);
|
||||
|
||||
/**
|
||||
* 获取后台动态路由数据,解析并注册到全局路由
|
||||
@@ -26,7 +26,7 @@ export const usePermissionStore = defineStore("permission", () => {
|
||||
.then((data) => {
|
||||
const dynamicRoutes = parseDynamicRoutes(data);
|
||||
routes.value = [...constantRoutes, ...dynamicRoutes];
|
||||
isRoutesLoaded.value = true;
|
||||
routesLoaded.value = true;
|
||||
resolve(dynamicRoutes);
|
||||
})
|
||||
.catch((error) => {
|
||||
@@ -36,14 +36,14 @@ export const usePermissionStore = defineStore("permission", () => {
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据父菜单路径设置混合模式左侧菜单
|
||||
* 根据父菜单路径设置侧边菜单
|
||||
*
|
||||
* @param parentPath 父菜单的路径,用于查找对应的菜单项
|
||||
*/
|
||||
const setMixedLayoutLeftRoutes = (parentPath: string) => {
|
||||
const updateSideMenu = (parentPath: string) => {
|
||||
const matchedItem = routes.value.find((item) => item.path === parentPath);
|
||||
if (matchedItem && matchedItem.children) {
|
||||
mixedLayoutLeftRoutes.value = matchedItem.children;
|
||||
sideMenuRoutes.value = matchedItem.children;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -60,16 +60,16 @@ export const usePermissionStore = defineStore("permission", () => {
|
||||
|
||||
// 清空本地存储的路由和菜单数据
|
||||
routes.value = [];
|
||||
mixedLayoutLeftRoutes.value = [];
|
||||
isRoutesLoaded.value = false;
|
||||
sideMenuRoutes.value = [];
|
||||
routesLoaded.value = false;
|
||||
};
|
||||
|
||||
return {
|
||||
routes,
|
||||
mixedLayoutLeftRoutes,
|
||||
isRoutesLoaded,
|
||||
sideMenuRoutes,
|
||||
routesLoaded,
|
||||
generateRoutes,
|
||||
setMixedLayoutLeftRoutes,
|
||||
updateSideMenu,
|
||||
resetRouter,
|
||||
};
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user