|
@@ -2,8 +2,10 @@ import { AxiosWrapper } from '@/utils/axios-wrapper'
|
|
|
import { checkResult } from '@/utils/checkResult'
|
|
|
import { UserStore } from '@/store/user'
|
|
|
import { cloneDeep, omit } from 'lodash-es'
|
|
|
-import { translateRouteTitle } from '@/utils/i18n'
|
|
|
-import i18n from '@/lang/index'
|
|
|
+import NProgress from "nprogress";
|
|
|
+import "nprogress/nprogress.css";
|
|
|
+
|
|
|
+NProgress.configure({ showSpinner: false }); // 进度条
|
|
|
// 检查路由是否存在
|
|
|
const hasNecessaryRoute = (to, router) => {
|
|
|
// 将默认注册的路由平铺成一维数组
|
|
@@ -32,6 +34,7 @@ const getUserMeta = async (token) => {
|
|
|
// 注册前置守卫
|
|
|
export const registerBeforeRouter = async (router) => {
|
|
|
router.beforeEach(async (to, from, next) => {
|
|
|
+ NProgress.start(); //开启进度条
|
|
|
const token = localStorage.getItem('token')
|
|
|
if (to.path === '/login') {
|
|
|
next()
|
|
@@ -52,8 +55,12 @@ export const registerBeforeRouter = async (router) => {
|
|
|
}
|
|
|
} else {
|
|
|
next('/login')
|
|
|
+ NProgress.done()
|
|
|
}
|
|
|
})
|
|
|
+ router.afterEach(() => {
|
|
|
+ NProgress.done(); //完成进度条
|
|
|
+ });
|
|
|
}
|
|
|
/**
|
|
|
* 将路由数组一维化
|
|
@@ -93,7 +100,7 @@ const routesRegister = (menus, defaultRoutes, router) => {
|
|
|
const __def = 'Layout'
|
|
|
const loadComponent = import.meta.glob('../views/**/*.vue')
|
|
|
for (const route of menus) {
|
|
|
- const { type, route_name, path, component, parent_id, i18n_code } = route
|
|
|
+ const { type, route_name, path, component, parent_id } = route
|
|
|
// 检查路由是否已存在,存在跳过
|
|
|
const hasRoute = defaultRoutes.find((f) => f.path === path)
|
|
|
if (hasRoute) continue
|
|
@@ -102,7 +109,7 @@ const routesRegister = (menus, defaultRoutes, router) => {
|
|
|
const route = {
|
|
|
path: `/${route_name}`,
|
|
|
name: route_name,
|
|
|
- meta: { title: i18n_code, type }
|
|
|
+ meta: { title: route_name, type }
|
|
|
}
|
|
|
router.addRoute(__def, route)
|
|
|
} else if (type === '1' || type === '2') {
|
|
@@ -111,7 +118,7 @@ const routesRegister = (menus, defaultRoutes, router) => {
|
|
|
path: path,
|
|
|
name: route_name,
|
|
|
meta: {
|
|
|
- title: i18n_code,
|
|
|
+ title: route_name,
|
|
|
type
|
|
|
},
|
|
|
component: loadComponent[`../views${component}.vue`]
|