From 5a61434c2453a8bf5607160cb4227a846bc88168 Mon Sep 17 00:00:00 2001 From: nikogu <644506165@qq.com> Date: Thu, 16 Nov 2017 15:15:01 +0800 Subject: [PATCH] fixed dynamic router --- src/common/nav.js | 109 +++++++++++++--------------------------------- 1 file changed, 31 insertions(+), 78 deletions(-) diff --git a/src/common/nav.js b/src/common/nav.js index 4ec8e24a..d32fa0d8 100644 --- a/src/common/nav.js +++ b/src/common/nav.js @@ -1,64 +1,16 @@ import dynamic from 'dva/dynamic'; -// 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({ +const dynamicWrapper = (app, models, component) => dynamic({ app, - models: () => models, + models: () => models.map(m => import(`../models/${m}.js`)), component: () => component, }); // nav data export const getNavData = app => [ { - component: dy(app, [UserModel], BasicLayout), + component: dynamicWrapper(app, ['user'], import('../layouts/BasicLayout')), layout: 'BasicLayout', name: '首页', // for breadcrumb path: '/', @@ -71,17 +23,17 @@ export const getNavData = app => [ { name: '分析页', path: 'analysis', - component: dy(app, [ChartModel], Analysis), + component: dynamicWrapper(app, ['chart'], import('../routes/Dashboard/Analysis')), }, { name: '监控页', path: 'monitor', - component: dy(app, [MonitorModel], Monitor), + component: dynamicWrapper(app, ['monitor'], import('../routes/Dashboard/Monitor')), }, { name: '工作台', path: 'workplace', - component: dy(app, [ProjectModel, ActivitiesModel, ChartModel], Workplace), + component: dynamicWrapper(app, ['project', 'activities', 'chart'], import('../routes/Dashboard/Workplace')), }, ], }, @@ -93,30 +45,31 @@ export const getNavData = app => [ { name: '基础表单', path: 'basic-form', - component: dy(app, [FormModel], BasicForm), + component: dynamicWrapper(app, ['form'], import('../routes/Forms/BasicForm')), }, { name: '分步表单', path: 'step-form', - component: dy(app, [FormModel], StepForm), + component: dynamicWrapper(app, ['form'], import('../routes/Forms/StepForm')), children: [ { path: 'confirm', - component: dy(app, [FormModel], Step2), + component: dynamicWrapper(app, ['form'], import('../routes/Forms/StepForm/Step2')), }, { path: 'result', - component: dy(app, [FormModel], Step3), + component: dynamicWrapper(app, ['form'], import('../routes/Forms/StepForm/Step3')), }, ], }, { name: '高级表单', path: 'advanced-form', - component: dy(app, [FormModel], AdvancedForm), + component: dynamicWrapper(app, ['form'], import('../routes/Forms/AdvancedForm')), }, ], - }, { + }, + { name: '列表页', path: 'list', icon: 'table', @@ -124,32 +77,32 @@ export const getNavData = app => [ { name: '查询表格', path: 'table-list', - component: dy(app, [RuleModel], TableList), + component: dynamicWrapper(app, ['rule'], import('../routes/List/TableList')), }, { name: '标准列表', path: 'basic-list', - component: dy(app, [ListModel], BasicList), + component: dynamicWrapper(app, ['list'], import('../routes/List/BasicList')), }, { name: '卡片列表', path: 'card-list', - component: dy(app, [ListModel], CardList), + component: dynamicWrapper(app, ['list'], import('../routes/List/CardList')), }, { name: '搜索列表(项目)', path: 'cover-card-list', - component: dy(app, [ListModel], CoverCardList), + component: dynamicWrapper(app, ['list'], import('../routes/List/CoverCardList')), }, { name: '搜索列表(应用)', path: 'filter-card-list', - component: dy(app, [ListModel], FilterCardList), + component: dynamicWrapper(app, ['list'], import('../routes/List/FilterCardList')), }, { name: '搜索列表(文章)', path: 'search', - component: dy(app, [ListModel], SearchList), + component: dynamicWrapper(app, ['list'], import('../routes/List/SearchList')), }, ], }, @@ -161,12 +114,12 @@ export const getNavData = app => [ { name: '基础详情页', path: 'basic', - component: dy(app, [ProfileModel], BasicProfile), + component: dynamicWrapper(app, ['profile'], import('../routes/Profile/BasicProfile')), }, { name: '高级详情页', path: 'advanced', - component: dy(app, [ProfileModel], AdvancedProfile), + component: dynamicWrapper(app, ['profile'], import('../routes/Profile/AdvancedProfile')), }, ], }, @@ -178,12 +131,12 @@ export const getNavData = app => [ { name: '成功', path: 'success', - component: dy(app, [], Success), + component: dynamicWrapper(app, [], import('../routes/Result/Success')), }, { name: '失败', path: 'fail', - component: dy(app, [], Error), + component: dynamicWrapper(app, [], import('../routes/Result/Error')), }, ], }, @@ -195,24 +148,24 @@ export const getNavData = app => [ { name: '403', path: '403', - component: dy(app, [], Exception403), + component: dynamicWrapper(app, [], import('../routes/Exception/403')), }, { name: '404', path: '404', - component: dy(app, [], Exception404), + component: dynamicWrapper(app, [], import('../routes/Exception/404')), }, { name: '500', path: '500', - component: dy(app, [], Exception500), + component: dynamicWrapper(app, [], import('../routes/Exception/500')), }, ], }, ], }, { - component: dy(app, [], UserLayout), + component: dynamicWrapper(app, [], import('../layouts/UserLayout')), path: '/user', layout: 'UserLayout', children: [ @@ -224,24 +177,24 @@ export const getNavData = app => [ { name: '登录', path: 'login', - component: dy(app, [LoginModel], Login), + component: dynamicWrapper(app, ['login'], import('../routes/User/Login')), }, { name: '注册', path: 'register', - component: dy(app, [RegisterModel], Register), + component: dynamicWrapper(app, ['register'], import('../routes/User/Register')), }, { name: '注册结果', path: 'register-result', - component: dy(app, [], RegisterResult), + component: dynamicWrapper(app, [], import('../routes/User/RegisterResult')), }, ], }, ], }, { - component: dy(app, [], BlankLayout), + component: dynamicWrapper(app, [], import('../layouts/BlankLayout')), layout: 'BlankLayout', children: { name: '使用文档', -- GitLab