Skip to content

Commit

Permalink
multiple loads route
Browse files Browse the repository at this point in the history
  • Loading branch information
MrAccle authored and sendya committed Jul 22, 2021
1 parent d6f24f7 commit 2e3bad6
Showing 1 changed file with 2 additions and 30 deletions.
32 changes: 2 additions & 30 deletions src/store/modules/permission.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { asyncRouterMap, constantRouterMap } from '@/config/router.config'
import cloneDeep from 'lodash.clonedeep'

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

/**
* 简易深拷贝
* @param target
* @returns {Object}
*/
function deepClone (target) {
let result
if (typeof target === 'object') {
if (Array.isArray(target)) {
result = []
for (const i in target) {
result.push(deepClone(target[i]))
}
} else if (target === null) {
result = null
} else if (target.constructor === RegExp) {
result = target
} else {
result = {}
for (const i in target) {
result[i] = deepClone(target[i])
}
}
} else {
result = target
}
return result
}

function filterAsyncRouter (routerMap, roles) {
const accessedRouters = routerMap.filter(route => {
if (hasPermission(roles.permissionList, route)) {
Expand Down Expand Up @@ -94,7 +66,7 @@ const permission = {
GenerateRoutes ({ commit }, data) {
return new Promise(resolve => {
const { roles } = data
const routerMap = deepClone(asyncRouterMap)
const routerMap = cloneDeep(asyncRouterMap)
const accessedRouters = filterAsyncRouter(routerMap, roles)
commit('SET_ROUTERS', accessedRouters)
resolve()
Expand Down

0 comments on commit 2e3bad6

Please sign in to comment.