Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
gyf5267218
vue-element-admin
提交
222c9c07
V
vue-element-admin
项目概览
gyf5267218
/
vue-element-admin
与 Fork 源项目一致
从无法访问的项目Fork
通知
4
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vue-element-admin
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
222c9c07
编写于
5月 11, 2017
作者:
P
Pan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add tips
上级
b8068a48
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
33 addition
and
20 deletion
+33
-20
src/main.js
src/main.js
+33
-14
src/views/layout/Layout.vue
src/views/layout/Layout.vue
+0
-6
未找到文件。
src/main.js
浏览文件 @
222c9c07
...
...
@@ -20,8 +20,9 @@ import 'vue-multiselect/dist/vue-multiselect.min.css';
import
vueWaves
from
'
./directive/waves
'
;
import
vueSticky
from
'
./directive/sticky
'
;
import
errLog
from
'
store/errLog
'
;
import
'
./mock/index.js
'
;
// 使用api请求时请将此行注释,不然将被mock拦截
import
'
./mock/index.js
'
;
// 使用api请求时请将此行注释,不然将被mock拦截
!!
// import './styles/mixin.scss';
import
permission
from
'
store/permission
'
;
// register globally
Vue
.
component
(
'
multiselect
'
,
Multiselect
);
...
...
@@ -36,40 +37,58 @@ Object.keys(filters).forEach(key => {
Vue
.
filter
(
key
,
filters
[
key
])
});
// permissiom judge
function
hasPermission
(
roles
,
permissionRoles
)
{
if
(
roles
.
indexOf
(
'
admin
'
)
>=
0
)
return
true
;
if
(
roles
.
indexOf
(
'
admin
'
)
>=
0
)
return
true
;
// admin权限 直接通过
return
roles
.
some
(
role
=>
permissionRoles
.
indexOf
(
role
)
>=
0
)
}
// register global progress.
const
whiteList
=
[
'
/login
'
,
'
/authredirect
'
,
'
/reset
'
,
'
/sendpwd
'
];
// 不重定向白名单
router
.
beforeEach
((
to
,
from
,
next
)
=>
{
NProgress
.
start
();
if
(
store
.
getters
.
token
)
{
NProgress
.
start
();
// 开启Progress
if
(
store
.
getters
.
token
)
{
// 判断是否有token
if
(
to
.
path
===
'
/login
'
)
{
next
({
path
:
'
/
'
});
}
else
{
if
(
to
.
meta
&&
to
.
meta
.
role
&&
store
.
getters
.
uid
)
{
if
(
hasPermission
(
store
.
getters
.
roles
,
to
.
meta
.
role
))
{
next
();
}
else
{
next
(
'
/401
'
);
if
(
to
.
meta
&&
to
.
meta
.
role
)
{
// 判断即将进入的页面是否需要权限
if
(
store
.
getters
.
uid
)
{
// 判断当前用户是否已拉去玩info信息
if
(
hasPermission
(
store
.
getters
.
roles
,
to
.
meta
.
role
))
{
// 判断权限
next
();
// 有权限
}
else
{
next
(
'
/401
'
);
// 无权限
}
}
else
{
// 未拉去info信息
store
.
dispatch
(
'
GetInfo
'
).
then
(()
=>
{
// 拉取info
permission
.
init
({
// 初始化权限
roles
:
store
.
getters
.
roles
,
router
:
router
.
options
.
routes
});
if
(
hasPermission
(
store
.
getters
.
roles
,
to
.
meta
.
role
))
{
// 判断权限
next
();
// 有权限
}
else
{
next
(
'
/401
'
);
// 无权限
}
}).
catch
(
err
=>
{
console
.
log
(
err
);
});
}
}
else
{
}
else
{
// 页面不需要权限 直接进入
next
();
}
}
}
else
{
if
(
whiteList
.
indexOf
(
to
.
path
)
!==
-
1
)
{
if
(
whiteList
.
indexOf
(
to
.
path
)
!==
-
1
)
{
// 在免登入白名单,直接进入
next
()
}
else
{
next
(
'
/login
'
);
NProgress
.
done
();
// 在hash模式下 改变手动改变hash 不会触发afterEach 暂时hack方案 ps:history模式下无问题,可删除该行!
next
(
'
/login
'
);
// 否则全部重定向到登录页
NProgress
.
done
();
// 在hash模式下 改变手动改变hash
重定向回来
不会触发afterEach 暂时hack方案 ps:history模式下无问题,可删除该行!
}
}
});
router
.
afterEach
(()
=>
{
NProgress
.
done
();
NProgress
.
done
();
// 结束Progress
});
// window.onunhandledrejection = e => {
...
...
src/views/layout/Layout.vue
浏览文件 @
222c9c07
...
...
@@ -15,8 +15,6 @@
import
store
from
'
store
'
;
import
router
from
'
router
'
;
import
permission
from
'
store/permission
'
;
// import { Loading } from 'element-ui';
// let loadingInstance;
export
default
{
name
:
'
layout
'
,
components
:
{
...
...
@@ -35,17 +33,13 @@
next
();
return
}
// loadingInstance = Loading.service({ fullscreen: true, text: '玩命加载中' });
store
.
dispatch
(
'
GetInfo
'
).
then
(()
=>
{
permission
.
init
({
roles
:
store
.
getters
.
roles
,
router
:
router
.
options
.
routes
});
// loadingInstance.close();
next
();
}).
catch
(
err
=>
{
// loadingInstance.close();
console
.
log
(
err
);
});
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录