42 lines
1.0 KiB
JavaScript
42 lines
1.0 KiB
JavaScript
/**
|
||
* 路由全局工具
|
||
* 包括系统的完整目录菜单
|
||
*/
|
||
import router from './index' /** 挂载到全局方便操作 */
|
||
|
||
/**
|
||
* 系统完整目录配置列表
|
||
* 目录的name表示唯一名称
|
||
* 注意,目录名是唯一区分目录的标识,因为path是属于memu的子集
|
||
* 就是说,一个目录可能产生多个不同的path(使用的组件相同)
|
||
* */
|
||
export let sysMeluConfigList = router
|
||
.getRoutes()
|
||
.filter((item) => {
|
||
return !!item.name || !!item.path
|
||
})
|
||
.map((item) => {
|
||
return Object.assign(
|
||
{},
|
||
{
|
||
name: item.name,
|
||
path: item.path,
|
||
},
|
||
item.meta || {},
|
||
)
|
||
})
|
||
/** 目录name的map,方便查询 */
|
||
export let sysMeluConfigNameMap = sysMeluConfigList.reduce((c, i) => {
|
||
if (i.name) {
|
||
c[i.name] = i
|
||
}
|
||
return c
|
||
}, {})
|
||
/** 目录path的map,方便查询 */
|
||
export let sysMeluConfigPathMap = sysMeluConfigList.reduce((c, i) => {
|
||
if (i.path) {
|
||
c[i.path] = i
|
||
}
|
||
return c
|
||
}, {})
|