Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
A
admin-fe
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Sean King
admin-fe
Commits
222c9c07
Commit
222c9c07
authored
7 years ago
by
Pan
Browse files
Options
Downloads
Patches
Plain Diff
add tips
parent
b8068a48
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
src/main.js
+33
-14
33 additions, 14 deletions
src/main.js
src/views/layout/Layout.vue
+0
-6
0 additions, 6 deletions
src/views/layout/Layout.vue
with
33 additions
and
20 deletions
src/main.js
+
33
−
14
View file @
222c9c07
...
@@ -20,8 +20,9 @@ import 'vue-multiselect/dist/vue-multiselect.min.css';
...
@@ -20,8 +20,9 @@ import 'vue-multiselect/dist/vue-multiselect.min.css';
import
vueWaves
from
'
./directive/waves
'
;
import
vueWaves
from
'
./directive/waves
'
;
import
vueSticky
from
'
./directive/sticky
'
;
import
vueSticky
from
'
./directive/sticky
'
;
import
errLog
from
'
store/errLog
'
;
import
errLog
from
'
store/errLog
'
;
import
'
./mock/index.js
'
;
// 使用api请求时请将此行注释,不然将被mock拦截
import
'
./mock/index.js
'
;
// 使用api请求时请将此行注释,不然将被mock拦截
!!
// import './styles/mixin.scss';
// import './styles/mixin.scss';
import
permission
from
'
store/permission
'
;
// register globally
// register globally
Vue
.
component
(
'
multiselect
'
,
Multiselect
);
Vue
.
component
(
'
multiselect
'
,
Multiselect
);
...
@@ -36,40 +37,58 @@ Object.keys(filters).forEach(key => {
...
@@ -36,40 +37,58 @@ Object.keys(filters).forEach(key => {
Vue
.
filter
(
key
,
filters
[
key
])
Vue
.
filter
(
key
,
filters
[
key
])
});
});
// permissiom judge
function
hasPermission
(
roles
,
permissionRoles
)
{
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
)
return
roles
.
some
(
role
=>
permissionRoles
.
indexOf
(
role
)
>=
0
)
}
}
// register global progress.
// register global progress.
const
whiteList
=
[
'
/login
'
,
'
/authredirect
'
,
'
/reset
'
,
'
/sendpwd
'
];
// 不重定向白名单
const
whiteList
=
[
'
/login
'
,
'
/authredirect
'
,
'
/reset
'
,
'
/sendpwd
'
];
// 不重定向白名单
router
.
beforeEach
((
to
,
from
,
next
)
=>
{
router
.
beforeEach
((
to
,
from
,
next
)
=>
{
NProgress
.
start
();
NProgress
.
start
();
// 开启Progress
if
(
store
.
getters
.
token
)
{
if
(
store
.
getters
.
token
)
{
// 判断是否有token
if
(
to
.
path
===
'
/login
'
)
{
if
(
to
.
path
===
'
/login
'
)
{
next
({
path
:
'
/
'
});
next
({
path
:
'
/
'
});
}
else
{
}
else
{
if
(
to
.
meta
&&
to
.
meta
.
role
&&
store
.
getters
.
uid
)
{
if
(
to
.
meta
&&
to
.
meta
.
role
)
{
// 判断即将进入的页面是否需要权限
if
(
hasPermission
(
store
.
getters
.
roles
,
to
.
meta
.
role
))
{
if
(
store
.
getters
.
uid
)
{
// 判断当前用户是否已拉去玩info信息
next
();
if
(
hasPermission
(
store
.
getters
.
roles
,
to
.
meta
.
role
))
{
// 判断权限
}
else
{
next
();
// 有权限
next
(
'
/401
'
);
}
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
();
next
();
}
}
}
}
}
else
{
}
else
{
if
(
whiteList
.
indexOf
(
to
.
path
)
!==
-
1
)
{
if
(
whiteList
.
indexOf
(
to
.
path
)
!==
-
1
)
{
// 在免登入白名单,直接进入
next
()
next
()
}
else
{
}
else
{
next
(
'
/login
'
);
next
(
'
/login
'
);
// 否则全部重定向到登录页
NProgress
.
done
();
// 在hash模式下 改变手动改变hash 不会触发afterEach 暂时hack方案 ps:history模式下无问题,可删除该行!
NProgress
.
done
();
// 在hash模式下 改变手动改变hash
重定向回来
不会触发afterEach 暂时hack方案 ps:history模式下无问题,可删除该行!
}
}
}
}
});
});
router
.
afterEach
(()
=>
{
router
.
afterEach
(()
=>
{
NProgress
.
done
();
NProgress
.
done
();
// 结束Progress
});
});
// window.onunhandledrejection = e => {
// window.onunhandledrejection = e => {
...
...
This diff is collapsed.
Click to expand it.
src/views/layout/Layout.vue
+
0
−
6
View file @
222c9c07
...
@@ -15,8 +15,6 @@
...
@@ -15,8 +15,6 @@
import
store
from
'
store
'
;
import
store
from
'
store
'
;
import
router
from
'
router
'
;
import
router
from
'
router
'
;
import
permission
from
'
store/permission
'
;
import
permission
from
'
store/permission
'
;
// import { Loading } from 'element-ui';
// let loadingInstance;
export
default
{
export
default
{
name
:
'
layout
'
,
name
:
'
layout
'
,
components
:
{
components
:
{
...
@@ -35,17 +33,13 @@
...
@@ -35,17 +33,13 @@
next
();
next
();
return
return
}
}
// loadingInstance = Loading.service({ fullscreen: true, text: '玩命加载中' });
store
.
dispatch
(
'
GetInfo
'
).
then
(()
=>
{
store
.
dispatch
(
'
GetInfo
'
).
then
(()
=>
{
permission
.
init
({
permission
.
init
({
roles
:
store
.
getters
.
roles
,
roles
:
store
.
getters
.
roles
,
router
:
router
.
options
.
routes
router
:
router
.
options
.
routes
});
});
// loadingInstance.close();
next
();
next
();
}).
catch
(
err
=>
{
}).
catch
(
err
=>
{
// loadingInstance.close();
console
.
log
(
err
);
console
.
log
(
err
);
});
});
}
}
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment