|
1 | 1 | import { asyncRouterMap, constantRouterMap } from '@/config/router.config'
|
| 2 | +import cloneDeep from 'lodash.clonedeep' |
2 | 3 |
|
3 | 4 | /**
|
4 | 5 | * 过滤账户是否拥有某一个权限,并将菜单从加载列表移除
|
@@ -37,35 +38,6 @@ function hasRole(roles, route) {
|
37 | 38 | }
|
38 | 39 | }
|
39 | 40 |
|
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 |
| - |
69 | 41 | function filterAsyncRouter (routerMap, roles) {
|
70 | 42 | const accessedRouters = routerMap.filter(route => {
|
71 | 43 | if (hasPermission(roles.permissionList, route)) {
|
@@ -94,7 +66,7 @@ const permission = {
|
94 | 66 | GenerateRoutes ({ commit }, data) {
|
95 | 67 | return new Promise(resolve => {
|
96 | 68 | const { roles } = data
|
97 |
| - const routerMap = deepClone(asyncRouterMap) |
| 69 | + const routerMap = cloneDeep(asyncRouterMap) |
98 | 70 | const accessedRouters = filterAsyncRouter(routerMap, roles)
|
99 | 71 | commit('SET_ROUTERS', accessedRouters)
|
100 | 72 | resolve()
|
|
0 commit comments