Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
K
ka-manager-ui
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
QG
ka-manager-ui
Commits
2e8ad844
Commit
2e8ad844
authored
Aug 26, 2020
by
suntao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ee
parent
7e430f28
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
175 additions
and
0 deletions
+175
-0
app.js
src/store/modules/app.js
+43
-0
permission.js
src/store/modules/permission.js
+66
-0
permission33.js
src/store/modules/permission33.js
+66
-0
No files found.
src/store/modules/app.js
0 → 100644
View file @
2e8ad844
import
Cookies
from
'
js-cookie
'
const
app
=
{
state
:
{
sidebar
:
{
opened
:
!+
Cookies
.
get
(
'
sidebarStatus
'
),
withoutAnimation
:
false
},
device
:
'
desktop
'
},
mutations
:
{
TOGGLE_SIDEBAR
:
state
=>
{
if
(
state
.
sidebar
.
opened
)
{
Cookies
.
set
(
'
sidebarStatus
'
,
1
)
}
else
{
Cookies
.
set
(
'
sidebarStatus
'
,
0
)
}
state
.
sidebar
.
opened
=
!
state
.
sidebar
.
opened
state
.
sidebar
.
withoutAnimation
=
false
},
CLOSE_SIDEBAR
:
(
state
,
withoutAnimation
)
=>
{
Cookies
.
set
(
'
sidebarStatus
'
,
1
)
state
.
sidebar
.
opened
=
false
state
.
sidebar
.
withoutAnimation
=
withoutAnimation
},
TOGGLE_DEVICE
:
(
state
,
device
)
=>
{
state
.
device
=
device
}
},
actions
:
{
ToggleSideBar
:
({
commit
})
=>
{
commit
(
'
TOGGLE_SIDEBAR
'
)
},
CloseSideBar
({
commit
},
{
withoutAnimation
})
{
commit
(
'
CLOSE_SIDEBAR
'
,
withoutAnimation
)
},
ToggleDevice
({
commit
},
device
)
{
commit
(
'
TOGGLE_DEVICE
'
,
device
)
}
}
}
export
default
app
src/store/modules/permission.js
0 → 100644
View file @
2e8ad844
import
{
asyncRouterMap
,
constantRouterMap
}
from
'
@/router
'
/**
* 通过meta.role判断是否与当前用户权限匹配
* @param roles
* @param route
*/
function
hasPermission
(
roles
,
route
)
{
if
(
route
.
meta
&&
route
.
meta
.
roles
)
{
return
roles
.
some
(
role
=>
route
.
meta
.
roles
.
includes
(
role
))
}
else
{
return
true
}
}
/**
* 递归过滤异步路由表,返回符合用户角色权限的路由表
* @param routes asyncRouterMap
* @param roles
*/
function
filterAsyncRouter
(
routes
,
roles
)
{
const
res
=
[]
routes
.
forEach
(
route
=>
{
const
tmp
=
{
...
route
}
if
(
hasPermission
(
roles
,
tmp
))
{
if
(
tmp
.
children
)
{
tmp
.
children
=
filterAsyncRouter
(
tmp
.
children
,
roles
)
}
res
.
push
(
tmp
)
}
})
return
res
}
const
permission
=
{
state
:
{
routers
:
[],
addRouters
:
[]
},
mutations
:
{
SET_ROUTERS
:
(
state
,
routers
)
=>
{
state
.
addRouters
=
routers
state
.
routers
=
constantRouterMap
.
concat
(
routers
)
}
},
actions
:
{
GenerateRoutes
({
commit
},
data
)
{
return
new
Promise
(
resolve
=>
{
const
{
roles
}
=
data
let
accessedRouters
if
(
roles
.
includes
(
'
admin
'
))
{
accessedRouters
=
asyncRouterMap
}
else
{
accessedRouters
=
filterAsyncRouter
(
asyncRouterMap
,
roles
)
}
commit
(
'
SET_ROUTERS
'
,
accessedRouters
)
resolve
()
})
}
}
}
export
default
permission
src/store/modules/permission33.js
0 → 100644
View file @
2e8ad844
import
{
asyncRouterMap
,
constantRouterMap
}
from
'
@/router
'
/**
* 通过meta.role判断是否与当前用户权限匹配
* @param roles
* @param route
*/
function
hasPermission
(
roles
,
route
)
{
if
(
route
.
meta
&&
route
.
meta
.
roles
)
{
return
roles
.
some
(
role
=>
route
.
meta
.
roles
.
includes
(
role
))
}
else
{
return
true
}
}
/**
* 递归过滤异步路由表,返回符合用户角色权限的路由表
* @param routes asyncRouterMap
* @param roles
*/
function
filterAsyncRouter
(
routes
,
roles
)
{
const
res
=
[]
routes
.
forEach
(
route
=>
{
const
tmp
=
{
route
}
if
(
hasPermission
(
roles
,
tmp
))
{
if
(
tmp
.
children
)
{
tmp
.
children
=
filterAsyncRouter
(
tmp
.
children
,
roles
)
}
res
.
push
(
tmp
)
}
})
return
res
}
const
permission
=
{
state
:
{
routers
:
[],
addRouters
:
[]
},
mutations
:
{
SET_ROUTERS
:
(
state
,
routers
)
=>
{
state
.
addRouters
=
routers
state
.
routers
=
constantRouterMap
.
concat
(
routers
)
}
},
actions
:
{
GenerateRoutes
({
commit
},
data
)
{
return
new
Promise
(
resolve
=>
{
const
{
roles
}
=
data
let
accessedRouters
if
(
roles
.
includes
(
'
admin
'
))
{
accessedRouters
=
asyncRouterMap
}
else
{
accessedRouters
=
filterAsyncRouter
(
asyncRouterMap
,
roles
)
}
commit
(
'
SET_ROUTERS
'
,
accessedRouters
)
resolve
()
})
}
}
}
export
default
permission
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment