mock平台

ErrMsg.js 2.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. import React, { PureComponent as Component } from 'react';
  2. import PropTypes from 'prop-types';
  3. import { Icon } from 'antd';
  4. import './ErrMsg.scss';
  5. import { withRouter } from 'react-router';
  6. /**
  7. * 错误信息提示
  8. *
  9. * @component ErrMsg
  10. * @examplelanguage js
  11. *
  12. * * 错误信息提示组件
  13. * * 错误信息提示组件
  14. *
  15. *
  16. */
  17. /**
  18. * 标题
  19. * 一般用于描述错误信息名称
  20. * @property title
  21. * @type string
  22. * @description 一般用于描述错误信息名称
  23. * @returns {object}
  24. */
  25. @withRouter
  26. class ErrMsg extends Component {
  27. constructor(props) {
  28. super(props);
  29. }
  30. static propTypes = {
  31. type: PropTypes.string,
  32. history: PropTypes.object,
  33. title: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),
  34. desc: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),
  35. opration: PropTypes.oneOfType([PropTypes.string, PropTypes.object])
  36. };
  37. render() {
  38. let { type, title, desc, opration } = this.props;
  39. let icon = 'frown-o';
  40. if (type) {
  41. switch (type) {
  42. case 'noFollow':
  43. title = '你还没有关注项目呢';
  44. desc = (
  45. <span>
  46. 先去 <a onClick={() => this.props.history.push('/group')}>“项目广场”</a> 逛逛吧,
  47. 那里可以添加关注。
  48. </span>
  49. );
  50. break;
  51. case 'noInterface':
  52. title = '该项目还没有接口呢';
  53. desc = '在左侧 “接口列表” 中添加接口';
  54. break;
  55. case 'noMemberInProject':
  56. title = '该项目还没有成员呢';
  57. break;
  58. case 'noMemberInGroup':
  59. title = '该分组还没有成员呢';
  60. break;
  61. case 'noProject':
  62. title = '该分组还没有项目呢';
  63. desc = <span>请点击右上角添加项目按钮新建项目</span>;
  64. break;
  65. case 'noData':
  66. title = '暂无数据';
  67. desc = '先去别处逛逛吧';
  68. break;
  69. case 'noChange':
  70. title = '没有改动';
  71. desc = '该操作未改动 Api 数据';
  72. icon = 'meh-o';
  73. break;
  74. default:
  75. console.log('default');
  76. }
  77. }
  78. return (
  79. <div className="err-msg">
  80. <Icon type={icon} className="icon" />
  81. <p className="title">{title}</p>
  82. <p className="desc">{desc}</p>
  83. <p className="opration">{opration}</p>
  84. </div>
  85. );
  86. }
  87. }
  88. export default ErrMsg;