perf: 去掉产品权限控制相关逻辑

This commit is contained in:
rd
2025-08-22 09:51:32 +08:00
parent 322101164b
commit f53b697df1
7 changed files with 230 additions and 233 deletions

View File

@ -1,62 +1,62 @@
/*
* @Author: RenXiaoDong
* @Date: 2025-06-19 01:45:53
*/
import type { RouteRecordRaw, RouteRecordNormalized } from 'vue-router';
import { useRouter } from 'vue-router';
import { useSidebarStore } from '@/stores/modules/side-bar';
// /*
// * @Author: RenXiaoDong
// * @Date: 2025-06-19 01:45:53
// */
// import type { RouteRecordRaw, RouteRecordNormalized } from 'vue-router';
// import { useRouter } from 'vue-router';
// import { useSidebarStore } from '@/stores/modules/side-bar';
export default function useMenuTree() {
const router = useRouter();
const appRoutes = router.options?.routes ?? [];
const sidebarStore = useSidebarStore();
const appRoute = computed(() => {
const _filterRoutes = appRoutes.filter((v) => v.meta?.id === sidebarStore.activeMenuKey);
return _filterRoutes;
});
const menuTree = computed(() => {
const copyRouter = cloneDeep(appRoute.value) as RouteRecordNormalized[];
copyRouter.sort((a: RouteRecordNormalized, b: RouteRecordNormalized) => {
return (a.meta.order || 0) - (b.meta.order || 0);
});
function travel(_routes: RouteRecordRaw[], layer: number) {
if (!_routes) return null;
// export default function useMenuTree() {
// const router = useRouter();
// const appRoutes = router.options?.routes ?? [];
// const sidebarStore = useSidebarStore();
// const appRoute = computed(() => {
// const _filterRoutes = appRoutes.filter((v) => v.meta?.id === sidebarStore.activeMenuKey);
// return _filterRoutes;
// });
// const menuTree = computed(() => {
// const copyRouter = cloneDeep(appRoute.value) as RouteRecordNormalized[];
// copyRouter.sort((a: RouteRecordNormalized, b: RouteRecordNormalized) => {
// return (a.meta.order || 0) - (b.meta.order || 0);
// });
// function travel(_routes: RouteRecordRaw[], layer: number) {
// if (!_routes) return null;
const collector: any = _routes.map((element) => {
// leaf node
if (element.meta?.hideChildrenInMenu || !element.children) {
element.children = [];
return element;
}
// const collector: any = _routes.map((element) => {
// // leaf node
// if (element.meta?.hideChildrenInMenu || !element.children) {
// element.children = [];
// return element;
// }
// route filter hideInMenu true
element.children = element.children.filter((x) => x.meta?.hideInMenu !== true);
// // route filter hideInMenu true
// element.children = element.children.filter((x) => x.meta?.hideInMenu !== true);
// Associated child node
const subItem = travel(element.children, layer + 1);
// // Associated child node
// const subItem = travel(element.children, layer + 1);
if (subItem.length) {
element.children = subItem;
return element;
}
// the else logic
if (layer > 1) {
element.children = subItem;
return element;
}
// if (subItem.length) {
// element.children = subItem;
// return element;
// }
// // the else logic
// if (layer > 1) {
// element.children = subItem;
// return element;
// }
if (element.meta?.hideInMenu === false) {
return element;
}
// if (element.meta?.hideInMenu === false) {
// return element;
// }
return null;
});
return collector.filter(Boolean);
}
return travel(copyRouter, 0);
});
// return null;
// });
// return collector.filter(Boolean);
// }
// return travel(copyRouter, 0);
// });
return {
menuTree,
};
}
// return {
// menuTree,
// };
// }