diff --git a/public/index.html b/public/index.html
index 7027717..a89db15 100644
--- a/public/index.html
+++ b/public/index.html
@@ -38,8 +38,8 @@
<% if (process.env.VUE_APP_NODE_ENV === 'dev') { %>
diff --git a/src/router/index.js b/src/router/index.js
index 1182441..8d5b302 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -9,6 +9,7 @@ import Vue from 'vue'
import Router from 'vue-router'
import http from '@/utils/request'
import { isURL } from '@/utils/validate'
+import { isAuthentcated } from '../utils'
Vue.use(Router)
@@ -19,7 +20,7 @@ export const pageRoutes = [
component: () => import('@/views/pages/404'),
name: '404',
meta: { title: '404未找到' },
- beforeEnter (to, from, next) {
+ beforeEnter(to, from, next) {
// 拦截处理特殊业务场景
// 如果, 重定向路由包含__双下划线, 为临时添加路由
if (/__.*/.test(to.redirectedFrom)) {
@@ -43,7 +44,7 @@ export const moduleRoutes = {
]
}
-export function addDynamicRoute (routeParams, router) {
+export function addDynamicRoute(routeParams, router) {
// 组装路由名称, 并判断是否已添加, 如是: 则直接跳转
var routeName = routeParams.routeName
var dynamicRoute = window.SITE_CONFIG['dynamicRoutes'].filter(item => item.name === routeName)[0]
@@ -82,27 +83,39 @@ router.beforeEach((to, from, next) => {
// 添加动态(菜单)路由
// 已添加或者当前路由为页面路由, 可直接访问
if (window.SITE_CONFIG['dynamicMenuRoutesHasAdded'] || fnCurrentRouteIsPageRoute(to, pageRoutes)) {
+ // 如果是在已认证的情况下直接访问登录界面
+ if (to.name === 'login') {
+ return next('/')
+ }
return next()
}
- // 获取字典列表, 添加并全局变量保存
- http.get('/sys/dict/type/all').then(({ data: res }) => {
- if (res.code !== 0) {
- return
- }
- window.SITE_CONFIG['dictList'] = res.data
- }).catch(() => {})
- // 获取菜单列表, 添加并全局变量保存
- http.get('/sys/menu/nav').then(({ data: res }) => {
- if (res.code !== 0) {
- Vue.prototype.$message.error(res.msg)
- return next({ name: 'login' })
- }
- window.SITE_CONFIG['menuList'] = res.data
- fnAddDynamicMenuRoutes(window.SITE_CONFIG['menuList'])
- next({ ...to, replace: true })
- }).catch(() => {
+
+ if (isAuthentcated()) {
+ // 获取字典列表, 添加并全局变量保存
+ http.get('/sys/dict/type/all').then(({ data: res }) => {
+ if (res.code !== 0) {
+ return
+ }
+ window.SITE_CONFIG['dictList'] = res.data
+ }).catch(() => { })
+
+ // 获取菜单列表, 添加并全局变量保存
+ http.get('/sys/menu/nav').then(({ data: res }) => {
+ if (res.code !== 0) {
+ Vue.prototype.$message.error(res.msg)
+ return next({ name: 'login' })
+ }
+ window.SITE_CONFIG['menuList'] = res.data
+ fnAddDynamicMenuRoutes(window.SITE_CONFIG['menuList'])
+ next({ ...to, replace: true })
+ }).catch(() => {
+ next({ name: 'login' })
+ })
+
+ } else {
next({ name: 'login' })
- })
+ }
+
})
/**
@@ -110,7 +123,7 @@ router.beforeEach((to, from, next) => {
* @param {*} route 当前路由
* @param {*} pageRoutes 页面路由
*/
-function fnCurrentRouteIsPageRoute (route, pageRoutes = []) {
+function fnCurrentRouteIsPageRoute(route, pageRoutes = []) {
var temp = []
for (var i = 0; i < pageRoutes.length; i++) {
if (route.path === pageRoutes[i].path) {
@@ -128,7 +141,7 @@ function fnCurrentRouteIsPageRoute (route, pageRoutes = []) {
* @param {*} menuList 菜单列表
* @param {*} routes 递归创建的动态(菜单)路由
*/
-function fnAddDynamicMenuRoutes (menuList = [], routes = []) {
+function fnAddDynamicMenuRoutes(menuList = [], routes = []) {
var temp = []
for (var i = 0; i < menuList.length; i++) {
if (menuList[i].children && menuList[i].children.length >= 1) {
diff --git a/src/utils/index.js b/src/utils/index.js
index bf8bb9b..b2ee02a 100644
--- a/src/utils/index.js
+++ b/src/utils/index.js
@@ -97,3 +97,7 @@ export function treeDataTranslate (data, id = 'id', pid = 'pid') {
}
return res
}
+
+export function isAuthentcated() {
+ return Cookies.get('token')
+}
\ No newline at end of file