Skip to content

Commit 2e3bad6

Browse files
MrAcclesendya
authored andcommitted
multiple loads route
1 parent d6f24f7 commit 2e3bad6

File tree

1 file changed

+2
-30
lines changed

1 file changed

+2
-30
lines changed

src/store/modules/permission.js

+2-30
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { asyncRouterMap, constantRouterMap } from '@/config/router.config'
2+
import cloneDeep from 'lodash.clonedeep'
23

34
/**
45
* 过滤账户是否拥有某一个权限,并将菜单从加载列表移除
@@ -37,35 +38,6 @@ function hasRole(roles, route) {
3738
}
3839
}
3940

40-
/**
41-
* 简易深拷贝
42-
* @param target
43-
* @returns {Object}
44-
*/
45-
function deepClone (target) {
46-
let result
47-
if (typeof target === 'object') {
48-
if (Array.isArray(target)) {
49-
result = []
50-
for (const i in target) {
51-
result.push(deepClone(target[i]))
52-
}
53-
} else if (target === null) {
54-
result = null
55-
} else if (target.constructor === RegExp) {
56-
result = target
57-
} else {
58-
result = {}
59-
for (const i in target) {
60-
result[i] = deepClone(target[i])
61-
}
62-
}
63-
} else {
64-
result = target
65-
}
66-
return result
67-
}
68-
6941
function filterAsyncRouter (routerMap, roles) {
7042
const accessedRouters = routerMap.filter(route => {
7143
if (hasPermission(roles.permissionList, route)) {
@@ -94,7 +66,7 @@ const permission = {
9466
GenerateRoutes ({ commit }, data) {
9567
return new Promise(resolve => {
9668
const { roles } = data
97-
const routerMap = deepClone(asyncRouterMap)
69+
const routerMap = cloneDeep(asyncRouterMap)
9870
const accessedRouters = filterAsyncRouter(routerMap, roles)
9971
commit('SET_ROUTERS', accessedRouters)
10072
resolve()

0 commit comments

Comments
 (0)