ErrorResult.tsx 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import { Result } from "antd";
  2. import type { ResultStatusType } from "antd/lib/result"
  3. import { useIntl } from "react-intl";
  4. interface IWidget {
  5. code: number;
  6. message?: string;
  7. }
  8. const ErrorResultWidget = ({ code, message }: IWidget) => {
  9. const intl = useIntl();
  10. let strStatus: ResultStatusType;
  11. let strTitle: string = "";
  12. switch (code) {
  13. case 401:
  14. strStatus = 403;
  15. strTitle = intl.formatMessage({ id: "labels.error.401" });
  16. break;
  17. case 403:
  18. strStatus = 403;
  19. strTitle = intl.formatMessage({ id: "labels.error.403" });
  20. break;
  21. case 404:
  22. strStatus = 404;
  23. strTitle = intl.formatMessage({ id: "labels.error.404" });
  24. break;
  25. case 500:
  26. strStatus = 500;
  27. strTitle = intl.formatMessage({ id: "labels.error.500" });
  28. break;
  29. case 429:
  30. strStatus = "error";
  31. strTitle = intl.formatMessage({ id: "labels.error.429" });
  32. break;
  33. default:
  34. strStatus = "error";
  35. strTitle = "无法识别的错误代码" + code;
  36. break;
  37. }
  38. return (
  39. <Result
  40. status={strStatus}
  41. title={strTitle}
  42. subTitle={message ? message : "Sorry, something went wrong."}
  43. />
  44. );
  45. };
  46. export default ErrorResultWidget;