checkStatus.ts 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. import type { ErrorMessageMode } from 'types/axios'
  2. import { ElMessage, ElMessageBox } from 'element-plus'
  3. import { useI18n } from '@/hooks/web/useI18n'
  4. import { useCache } from '@/hooks/web/useCache'
  5. const { wsCache } = useCache()
  6. export function checkStatus(
  7. status: number,
  8. msg: string,
  9. errorMessageMode: ErrorMessageMode = 'message'
  10. ): void {
  11. const { t } = useI18n()
  12. let errMessage = ''
  13. switch (status) {
  14. case 400:
  15. errMessage = `${msg}`
  16. break
  17. // 401: Not logged in
  18. // 如果未登录,跳转到登录页面,并携带当前页面的路径
  19. // 成功登录后返回当前页面。此步骤需要在登录页面上操作。
  20. case 401:
  21. wsCache.clear()
  22. errMessage = msg || t('sys.api.errMsg401')
  23. break
  24. case 403:
  25. errMessage = t('sys.api.errMsg403')
  26. break
  27. // 404请求不存在
  28. case 404:
  29. errMessage = t('sys.api.errMsg404')
  30. break
  31. case 405:
  32. errMessage = t('sys.api.errMsg405')
  33. break
  34. case 408:
  35. errMessage = t('sys.api.errMsg408')
  36. break
  37. case 500:
  38. errMessage = t('sys.api.errMsg500')
  39. break
  40. case 501:
  41. errMessage = t('sys.api.errMsg501')
  42. break
  43. case 502:
  44. errMessage = t('sys.api.errMsg502')
  45. break
  46. case 503:
  47. errMessage = t('sys.api.errMsg503')
  48. break
  49. case 504:
  50. errMessage = t('sys.api.errMsg504')
  51. break
  52. case 505:
  53. errMessage = t('sys.api.errMsg505')
  54. break
  55. case 901:
  56. errMessage = t('sys.api.errMsg505')
  57. break
  58. default:
  59. }
  60. if (errMessage) {
  61. if (errorMessageMode === 'modal') {
  62. ElMessageBox.confirm(errMessage, {
  63. cancelButtonText: t('common.cancel'),
  64. type: 'warning'
  65. })
  66. } else if (errorMessageMode === 'message') {
  67. ElMessage.error(errMessage)
  68. }
  69. }
  70. }