/* * @Author: 田鑫 * @Date: 2023-03-05 14:46:43 * @LastEditors: 田鑫 * @LastEditTime: 2023-03-05 15:55:36 * @Description: 路由权限守卫 */ import type { Router, RouteRecordNormalized } from 'vue-router'; import NProgress from 'nprogress'; // progress bar import { useAppStore } from '@/stores'; export default function setupPermissionGuard(router: Router) { router.beforeEach(async (to, from, next) => { console.log('access permission router guard'); const appStore = useAppStore(); //* 菜单是否为服务端渲染 if (appStore.menuFromServer) { //* 没有服务端渲染的菜单 if(!appStore.appAsyncMenus) { // todo 请求服务端渲染菜单的接口,当前为mock数据 await appStore.fetchServerMenuConfig(); } next(); } else { next(); } NProgress.done(); }); }