diff --git a/src/common/nav.js b/src/common/nav.js index 5446c6b9c0b1c0124e5b870afe9c329ae58cab7e..4ec8e24a444d2f658cf2923c0113620a2db36620 100644 --- a/src/common/nav.js +++ b/src/common/nav.js @@ -1,293 +1,253 @@ import dynamic from 'dva/dynamic'; -export const getNavData = app => [{ - component: dynamic({ - app, - models: () => [ - import('../models/user'), - ], - component: () => import('../layouts/BasicLayout'), - }), - layout: 'BasicLayout', - name: '首页', // for breadcrumb - path: '/', - children: [{ - name: 'Dashboard', - icon: 'dashboard', - path: 'dashboard', - children: [{ - name: '分析页', - path: 'analysis', - component: dynamic({ - app, - models: () => [ - import('../models/chart'), - ], - component: () => import('../routes/Dashboard/Analysis'), - }), - }, { - name: '监控页', - path: 'monitor', - component: dynamic({ - app, - models: () => [ - import('../models/monitor'), - ], - component: () => import('../routes/Dashboard/Monitor'), - }), - }, { - name: '工作台', - path: 'workplace', - component: dynamic({ - app, - models: () => [ - import('../models/project'), - import('../models/activities'), - import('../models/chart'), - ], - component: () => import('../routes/Dashboard/Workplace'), - }), - }], - }, { - name: '表单页', - path: 'form', - icon: 'form', - children: [{ - name: '基础表单', - path: 'basic-form', - component: dynamic({ - app, - models: () => [ - import('../models/form'), - ], - component: () => import('../routes/Forms/BasicForm'), - }), - }, { - name: '分步表单', - path: 'step-form', - component: dynamic({ - app, - models: () => [ - import('../models/form'), +// models +import UserModel from '../models/user'; +import ChartModel from '../models/chart'; +import MonitorModel from '../models/monitor'; +import ProjectModel from '../models/project'; +import ActivitiesModel from '../models/activities'; +import FormModel from '../models/form'; +import RuleModel from '../models/rule'; +import ListModel from '../models/list'; +import ProfileModel from '../models/profile'; +import LoginModel from '../models/login'; +import RegisterModel from '../models/register'; + +// components +import BasicLayout from '../layouts/BasicLayout'; +import UserLayout from '../layouts/UserLayout'; +import BlankLayout from '../layouts/BlankLayout'; + +import Analysis from '../routes/Dashboard/Analysis'; +import Monitor from '../routes/Dashboard/Monitor'; +import Workplace from '../routes/Dashboard/Workplace'; + +import BasicForm from '../routes/Forms/BasicForm'; +import AdvancedForm from '../routes/Forms/AdvancedForm'; +import StepForm from '../routes/Forms/StepForm'; +import Step2 from '../routes/Forms/StepForm/Step2'; +import Step3 from '../routes/Forms/StepForm/Step3'; + +import TableList from '../routes/List/TableList'; +import BasicList from '../routes/List/BasicList'; +import CardList from '../routes/List/CardList'; +import CoverCardList from '../routes/List/CoverCardList'; +import FilterCardList from '../routes/List/FilterCardList'; +import SearchList from '../routes/List/SearchList'; + +import BasicProfile from '../routes/Profile/BasicProfile'; +import AdvancedProfile from '../routes/Profile/AdvancedProfile'; + +import Success from '../routes/Result/Success'; +import Error from '../routes/Result/Error'; +import Exception403 from '../routes/Exception/403'; +import Exception404 from '../routes/Exception/404'; +import Exception500 from '../routes/Exception/500'; + +import Login from '../routes/User/Login'; +import Register from '../routes/User/Register'; +import RegisterResult from '../routes/User/RegisterResult'; + +// wrapper of dynamic +const dy = (app, models, component) => dynamic({ + app, + models: () => models, + component: () => component, +}); + +// nav data +export const getNavData = app => [ + { + component: dy(app, [UserModel], BasicLayout), + layout: 'BasicLayout', + name: '首页', // for breadcrumb + path: '/', + children: [ + { + name: 'Dashboard', + icon: 'dashboard', + path: 'dashboard', + children: [ + { + name: '分析页', + path: 'analysis', + component: dy(app, [ChartModel], Analysis), + }, + { + name: '监控页', + path: 'monitor', + component: dy(app, [MonitorModel], Monitor), + }, + { + name: '工作台', + path: 'workplace', + component: dy(app, [ProjectModel, ActivitiesModel, ChartModel], Workplace), + }, + ], + }, + { + name: '表单页', + path: 'form', + icon: 'form', + children: [ + { + name: '基础表单', + path: 'basic-form', + component: dy(app, [FormModel], BasicForm), + }, + { + name: '分步表单', + path: 'step-form', + component: dy(app, [FormModel], StepForm), + children: [ + { + path: 'confirm', + component: dy(app, [FormModel], Step2), + }, + { + path: 'result', + component: dy(app, [FormModel], Step3), + }, + ], + }, + { + name: '高级表单', + path: 'advanced-form', + component: dy(app, [FormModel], AdvancedForm), + }, ], - component: () => import('../routes/Forms/StepForm'), - }), - children: [{ - path: 'confirm', - component: dynamic({ - app, - models: () => [ - import('../models/form'), - ], - component: () => import('../routes/Forms/StepForm/Step2'), - }), }, { + name: '列表页', + path: 'list', + icon: 'table', + children: [ + { + name: '查询表格', + path: 'table-list', + component: dy(app, [RuleModel], TableList), + }, + { + name: '标准列表', + path: 'basic-list', + component: dy(app, [ListModel], BasicList), + }, + { + name: '卡片列表', + path: 'card-list', + component: dy(app, [ListModel], CardList), + }, + { + name: '搜索列表(项目)', + path: 'cover-card-list', + component: dy(app, [ListModel], CoverCardList), + }, + { + name: '搜索列表(应用)', + path: 'filter-card-list', + component: dy(app, [ListModel], FilterCardList), + }, + { + name: '搜索列表(文章)', + path: 'search', + component: dy(app, [ListModel], SearchList), + }, + ], + }, + { + name: '详情页', + path: 'profile', + icon: 'profile', + children: [ + { + name: '基础详情页', + path: 'basic', + component: dy(app, [ProfileModel], BasicProfile), + }, + { + name: '高级详情页', + path: 'advanced', + component: dy(app, [ProfileModel], AdvancedProfile), + }, + ], + }, + { + name: '结果', path: 'result', - component: dynamic({ - app, - models: () => [ - import('../models/form'), - ], - component: () => import('../routes/Forms/StepForm/Step3'), - }), - }], - }, { - name: '高级表单', - path: 'advanced-form', - component: dynamic({ - app, - models: () => [ - import('../models/form'), - ], - component: () => import('../routes/Forms/AdvancedForm'), - }), - }], - }, { - name: '列表页', - path: 'list', - icon: 'table', - children: [{ - name: '查询表格', - path: 'table-list', - component: dynamic({ - app, - models: () => [ - import('../models/rule'), - ], - component: () => import('../routes/List/TableList'), - }), - }, { - name: '标准列表', - path: 'basic-list', - component: dynamic({ - app, - models: () => [ - import('../models/list'), - ], - component: () => import('../routes/List/BasicList'), - }), - }, { - name: '卡片列表', - path: 'card-list', - component: dynamic({ - app, - models: () => [ - import('../models/list'), - ], - component: () => import('../routes/List/CardList'), - }), - }, { - name: '搜索列表(项目)', - path: 'cover-card-list', - component: dynamic({ - app, - models: () => [ - import('../models/list'), - ], - component: () => import('../routes/List/CoverCardList'), - }), - }, { - name: '搜索列表(应用)', - path: 'filter-card-list', - component: dynamic({ - app, - models: () => [ - import('../models/list'), - ], - component: () => import('../routes/List/FilterCardList'), - }), - }, { - name: '搜索列表(文章)', - path: 'search', - component: dynamic({ - app, - models: () => [ - import('../models/list'), - ], - component: () => import('../routes/List/SearchList'), - }), - }], - }, { - name: '详情页', - path: 'profile', - icon: 'profile', - children: [{ - name: '基础详情页', - path: 'basic', - component: dynamic({ - app, - models: () => [ - import('../models/profile'), - ], - component: () => import('../routes/Profile/BasicProfile'), - }), - }, { - name: '高级详情页', - path: 'advanced', - component: dynamic({ - app, - models: () => [ - import('../models/profile'), - ], - component: () => import('../routes/Profile/AdvancedProfile'), - }), - }], - }, { - name: '结果', - path: 'result', - icon: 'check-circle-o', - children: [{ - name: '成功', - path: 'success', - component: dynamic({ - app, - component: () => import('../routes/Result/Success'), - }), - }, { - name: '失败', - path: 'fail', - component: dynamic({ - app, - component: () => import('../routes/Result/Error'), - }), - }], - }, { - name: '异常', - path: 'exception', - icon: 'warning', - children: [{ - name: '403', - path: '403', - component: dynamic({ - app, - component: () => import('../routes/Exception/403'), - }), - }, { - name: '404', - path: '404', - component: dynamic({ - app, - component: () => import('../routes/Exception/404'), - }), - }, { - name: '500', - path: '500', - component: dynamic({ - app, - component: () => import('../routes/Exception/500'), - }), - }], - }], -}, { - component: dynamic({ - app, - component: () => import('../layouts/UserLayout'), - }), - path: '/user', - layout: 'UserLayout', - children: [{ - name: '帐户', - icon: 'user', - path: 'user', - children: [{ - name: '登录', - path: 'login', - component: dynamic({ - app, - models: () => [ - import('../models/login'), - ], - component: () => import('../routes/User/Login'), - }), - }, { - name: '注册', - path: 'register', - component: dynamic({ - app, - models: () => [ - import('../models/register'), - ], - component: () => import('../routes/User/Register'), - }), - }, { - name: '注册结果', - path: 'register-result', - component: dynamic({ - app, - component: () => import('../routes/User/RegisterResult'), - }), - }], - }], -}, { - component: dynamic({ - app, - component: () => import('../layouts/BlankLayout'), - }), - layout: 'BlankLayout', - children: { - name: '使用文档', - path: 'http://pro.ant.design/docs/getting-started', - target: '_blank', - icon: 'book', + icon: 'check-circle-o', + children: [ + { + name: '成功', + path: 'success', + component: dy(app, [], Success), + }, + { + name: '失败', + path: 'fail', + component: dy(app, [], Error), + }, + ], + }, + { + name: '异常', + path: 'exception', + icon: 'warning', + children: [ + { + name: '403', + path: '403', + component: dy(app, [], Exception403), + }, + { + name: '404', + path: '404', + component: dy(app, [], Exception404), + }, + { + name: '500', + path: '500', + component: dy(app, [], Exception500), + }, + ], + }, + ], + }, + { + component: dy(app, [], UserLayout), + path: '/user', + layout: 'UserLayout', + children: [ + { + name: '帐户', + icon: 'user', + path: 'user', + children: [ + { + name: '登录', + path: 'login', + component: dy(app, [LoginModel], Login), + }, + { + name: '注册', + path: 'register', + component: dy(app, [RegisterModel], Register), + }, + { + name: '注册结果', + path: 'register-result', + component: dy(app, [], RegisterResult), + }, + ], + }, + ], + }, + { + component: dy(app, [], BlankLayout), + layout: 'BlankLayout', + children: { + name: '使用文档', + path: 'http://pro.ant.design/docs/getting-started', + target: '_blank', + icon: 'book', + }, }, -}]; +];