index.js 1.1 KB

123456789101112131415161718192021222324252627282930313233
  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. export default ({ 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. {
  22. actions ||
  23. createElement(linkElement, {
  24. to: '/',
  25. href: '/',
  26. }, <Button type="primary">返回首页</Button>)
  27. }
  28. </div>
  29. </div>
  30. </div>
  31. );
  32. };