menu.js 2.6 KB
Newer Older
1 2
import { isUrl } from '../utils/utils';

ddcat1115's avatar
ddcat1115 committed
3
const menuData = [{
Arun Kumar T K's avatar
Arun Kumar T K committed
4
  name: 'dashboard',
ddcat1115's avatar
ddcat1115 committed
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
  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: '高级表单',
ddcat1115's avatar
ddcat1115 committed
30
    authority: 'admin',
ddcat1115's avatar
ddcat1115 committed
31 32 33 34 35 36 37
    path: 'advanced-form',
  }],
}, {
  name: '列表页',
  icon: 'table',
  path: 'list',
  children: [{
陈帅's avatar
陈帅 committed
38 39 40 41 42 43 44 45 46
    name: '查询表格',
    path: 'table-list',
  }, {
    name: '标准列表',
    path: 'basic-list',
  }, {
    name: '卡片列表',
    path: 'card-list',
  }, {
ddcat1115's avatar
ddcat1115 committed
47 48 49
    name: '搜索列表',
    path: 'search',
    children: [{
陈帅's avatar
陈帅 committed
50 51 52
      name: '搜索列表(文章)',
      path: 'articles',
    }, {
ddcat1115's avatar
ddcat1115 committed
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
      name: '搜索列表(项目)',
      path: 'projects',
    }, {
      name: '搜索列表(应用)',
      path: 'applications',
    }],
  }],
}, {
  name: '详情页',
  icon: 'profile',
  path: 'profile',
  children: [{
    name: '基础详情页',
    path: 'basic',
  }, {
    name: '高级详情页',
    path: 'advanced',
ddcat1115's avatar
ddcat1115 committed
70
    authority: 'admin',
ddcat1115's avatar
ddcat1115 committed
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
  }],
}, {
  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',
陈帅's avatar
陈帅 committed
96 97 98
  }, {
    name: '触发异常',
    path: 'trigger',
99
    hideInMenu: true,
ddcat1115's avatar
ddcat1115 committed
100 101 102 103 104
  }],
}, {
  name: '账户',
  icon: 'user',
  path: 'user',
ddcat1115's avatar
ddcat1115 committed
105
  authority: 'guest',
ddcat1115's avatar
ddcat1115 committed
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
  children: [{
    name: '登录',
    path: 'login',
  }, {
    name: '注册',
    path: 'register',
  }, {
    name: '注册结果',
    path: 'register-result',
  }],
}, {
  name: '使用文档',
  icon: 'book',
  path: 'http://pro.ant.design/docs/getting-started',
  target: '_blank',
}];

ddcat1115's avatar
ddcat1115 committed
123
function formatter(data, parentPath = '', parentAuthority) {
afc163's avatar
afc163 committed
124
  return data.map((item) => {
125 126 127 128
    let { path } = item;
    if (!isUrl(path)) {
      path = parentPath + item.path;
    }
afc163's avatar
afc163 committed
129 130
    const result = {
      ...item,
131
      path,
ddcat1115's avatar
ddcat1115 committed
132
      authority: item.authority || parentAuthority,
afc163's avatar
afc163 committed
133
    };
ddcat1115's avatar
ddcat1115 committed
134
    if (item.children) {
ddcat1115's avatar
ddcat1115 committed
135
      result.children = formatter(item.children, `${parentPath}${item.path}/`, item.authority);
ddcat1115's avatar
ddcat1115 committed
136
    }
afc163's avatar
afc163 committed
137
    return result;
ddcat1115's avatar
ddcat1115 committed
138 139 140 141
  });
}

export const getMenuData = () => formatter(menuData);