You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
136 lines
2.5 KiB
136 lines
2.5 KiB
import { isUrl } from '../utils/utils';
|
|
|
|
const menuData = [{
|
|
name: 'dashboard',
|
|
icon: 'dashboard',
|
|
path: 'dashboard',
|
|
children: [{
|
|
name: '分析页',
|
|
path: 'analysis',
|
|
}, {
|
|
name: '监控页',
|
|
path: 'monitor',
|
|
}, {
|
|
name: '工作台',
|
|
path: 'workplace',
|
|
// hideInMenu: true,
|
|
}],
|
|
}, {
|
|
name: '表单页',
|
|
icon: 'form',
|
|
path: 'form',
|
|
children: [{
|
|
name: '基础表单',
|
|
path: 'basic-form',
|
|
}, {
|
|
name: '分步表单',
|
|
path: 'step-form',
|
|
}, {
|
|
name: '高级表单',
|
|
authority: 'admin',
|
|
path: 'advanced-form',
|
|
}],
|
|
}, {
|
|
name: '列表页',
|
|
icon: 'table',
|
|
path: 'list',
|
|
children: [{
|
|
name: '查询表格',
|
|
path: 'table-list',
|
|
}, {
|
|
name: '标准列表',
|
|
path: 'basic-list',
|
|
}, {
|
|
name: '卡片列表',
|
|
path: 'card-list',
|
|
}, {
|
|
name: '搜索列表',
|
|
path: 'search',
|
|
children: [{
|
|
name: '搜索列表(文章)',
|
|
path: 'articles',
|
|
}, {
|
|
name: '搜索列表(项目)',
|
|
path: 'projects',
|
|
}, {
|
|
name: '搜索列表(应用)',
|
|
path: 'applications',
|
|
}],
|
|
}],
|
|
}, {
|
|
name: '详情页',
|
|
icon: 'profile',
|
|
path: 'profile',
|
|
children: [{
|
|
name: '基础详情页',
|
|
path: 'basic',
|
|
}, {
|
|
name: '高级详情页',
|
|
path: 'advanced',
|
|
authority: 'admin',
|
|
}],
|
|
}, {
|
|
name: '结果页',
|
|
icon: 'check-circle-o',
|
|
path: 'result',
|
|
children: [{
|
|
name: '成功',
|
|
path: 'success',
|
|
}, {
|
|
name: '失败',
|
|
path: 'fail',
|
|
}],
|
|
}, {
|
|
name: '异常页',
|
|
icon: 'warning',
|
|
path: 'exception',
|
|
children: [{
|
|
name: '403',
|
|
path: '403',
|
|
}, {
|
|
name: '404',
|
|
path: '404',
|
|
}, {
|
|
name: '500',
|
|
path: '500',
|
|
}, {
|
|
name: '触发异常',
|
|
path: 'trigger',
|
|
hideInMenu: true,
|
|
}],
|
|
}, {
|
|
name: '账户',
|
|
icon: 'user',
|
|
path: 'user',
|
|
authority: 'guest',
|
|
children: [{
|
|
name: '登录',
|
|
path: 'login',
|
|
}, {
|
|
name: '注册',
|
|
path: 'register',
|
|
}, {
|
|
name: '注册结果',
|
|
path: 'register-result',
|
|
}],
|
|
}];
|
|
|
|
function formatter(data, parentPath = '/', parentAuthority) {
|
|
return data.map((item) => {
|
|
let { path } = item;
|
|
if (!isUrl(path)) {
|
|
path = parentPath + item.path;
|
|
}
|
|
const result = {
|
|
...item,
|
|
path,
|
|
authority: item.authority || parentAuthority,
|
|
};
|
|
if (item.children) {
|
|
result.children = formatter(item.children, `${parentPath}${item.path}/`, item.authority);
|
|
}
|
|
return result;
|
|
});
|
|
}
|
|
|
|
export const getMenuData = () => formatter(menuData);
|
|
|