动态菜单和动态路由的 antd pro

index.js 1.1KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import React, { createElement } from 'react';
  2. import classNames from 'classnames';
  3. import { Button } from 'antd';
  4. import config from './typeConfig';
  5. import styles from './index.less';
  6. const Exception = ({ className, linkElement = 'a', type, title, desc, img, actions, ...rest }) => {
  7. const pageType = type in config ? type : '404';
  8. const clsString = classNames(styles.exception, className);
  9. return (
  10. <div className={clsString} {...rest}>
  11. <div className={styles.imgBlock}>
  12. <div
  13. className={styles.imgEle}
  14. style={{ backgroundImage: `url(${img || config[pageType].img})` }}
  15. />
  16. </div>
  17. <div className={styles.content}>
  18. <h1>{title || config[pageType].title}</h1>
  19. <div className={styles.desc}>{desc || config[pageType].desc}</div>
  20. <div className={styles.actions}>
  21. {actions ||
  22. createElement(
  23. linkElement,
  24. {
  25. to: '/',
  26. href: '/',
  27. },
  28. <Button type="primary">返回首页</Button>
  29. )}
  30. </div>
  31. </div>
  32. </div>
  33. );
  34. };
  35. export default Exception;