router.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import React from 'react';
  2. import { Router, Switch } from 'dva/router';
  3. import { LocaleProvider, Spin } from 'antd';
  4. import zhCN from 'antd/lib/locale-provider/zh_CN';
  5. import dynamic from 'dva/dynamic';
  6. import { getRouterData } from './common/router';
  7. import Authorized from './utils/Authorized';
  8. import styles from './index.less';
  9. const { AuthorizedRoute } = Authorized;
  10. dynamic.setDefaultLoadingComponent(() => {
  11. return <Spin size="large" className={styles.globalSpin} />;
  12. });
  13. function RouterConfig({ history, app }) {
  14. const routerData = getRouterData(app);
  15. const UserLayout = routerData['/user'].component;
  16. const BasicLayout = routerData['/'].component;
  17. return (
  18. <LocaleProvider locale={zhCN}>
  19. <Router history={history}>
  20. <Switch>
  21. <AuthorizedRoute
  22. path="/user"
  23. render={props => <UserLayout {...props} />}
  24. authority="guest"
  25. redirectPath="/"
  26. />
  27. <AuthorizedRoute
  28. path="/"
  29. render={props => <BasicLayout {...props} />}
  30. authority={['admin', 'user']}
  31. redirectPath="/user/login"
  32. />
  33. </Switch>
  34. </Router>
  35. </LocaleProvider>
  36. );
  37. }
  38. export default RouterConfig;