diff --git a/backend/dvadmin/system/views/menu.py b/backend/dvadmin/system/views/menu.py index 28dce62..c0c6b65 100644 --- a/backend/dvadmin/system/views/menu.py +++ b/backend/dvadmin/system/views/menu.py @@ -120,11 +120,11 @@ class MenuViewSet(CustomModelViewSet): """用于前端获取当前角色的路由""" user = request.user if user.is_superuser: - queryset = self.queryset.filter(status=1) + queryset = self.queryset.filter(status=1).order_by("id") else: role_list = user.role.values_list('id', flat=True) menu_list = RoleMenuPermission.objects.filter(role__in=role_list).values_list('menu_id', flat=True) - queryset = Menu.objects.filter(id__in=menu_list) + queryset = Menu.objects.filter(id__in=menu_list).order_by("id") serializer = WebRouterSerializer(queryset, many=True, request=request) data = serializer.data return SuccessResponse(data=data, total=len(data), msg="获取成功") diff --git a/web/src/router/index.ts b/web/src/router/index.ts index 3f564eb..dbb3073 100644 --- a/web/src/router/index.ts +++ b/web/src/router/index.ts @@ -93,6 +93,8 @@ export function formatTwoStageRoutes(arr: any) { return newArr; } +const frameOutRoutes = staticRoutes.map(item => item.path) + // 路由加载前 router.beforeEach(async (to, from, next) => { NProgress.configure({showSpinner: false}); @@ -109,8 +111,9 @@ router.beforeEach(async (to, from, next) => { } else if (token && to.path === '/login') { next('/home'); NProgress.done(); + }else if(token && frameOutRoutes.includes(to.path) ){ + next() } else { - const storesRoutesList = useRoutesList(pinia); const {routesList} = storeToRefs(storesRoutesList); if (routesList.value.length === 0) {