instance.ts 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. import { axiosFactory } from './setup'
  2. import { message } from 'ant-design-vue'
  3. import { showLoading, hideLoading } from '@/components/loading'
  4. import {
  5. ResCode,
  6. ResCodeDesc,
  7. POST_LOGIN,
  8. GET_PROJECT,
  9. GET_TAGGING_TOTAL
  10. } from './constant'
  11. import { baseURL } from '@/env'
  12. import { router, RoutesName } from '@/router'
  13. import { ui18n } from '@/lang'
  14. const instance = axiosFactory()
  15. export const {
  16. axios,
  17. addUnsetTokenURLS,
  18. delUnsetTokenURLS,
  19. addReqErrorHandler,
  20. addResErrorHandler,
  21. delReqErrorHandler,
  22. delResErrorHandler,
  23. getToken,
  24. setToken,
  25. delToken,
  26. setDefaultURI,
  27. addHook,
  28. delHook,
  29. setHook
  30. } = instance
  31. export const gotoLogin = () => {
  32. router.replace({ name: RoutesName.login })
  33. }
  34. addReqErrorHandler(err => {
  35. // showLoading()
  36. gotoLogin()
  37. })
  38. addResErrorHandler((response, data) => {
  39. if (response && response.status && response.status !== 200) {
  40. message.error(ui18n.t('sys.ERROR'))
  41. } else if (data) {
  42. const msg =
  43. data.code && ResCodeDesc[data.code]
  44. ? ResCodeDesc[data.code]
  45. : data?.message || data?.msg
  46. console.log(ResCodeDesc, data.code)
  47. if (data.code === ResCode.TOKEN_INVALID) {
  48. gotoLogin()
  49. } else if (data.code === ResCode.NO_ACCESS) {
  50. router.replace({ name: RoutesName.projects })
  51. } else {
  52. message.error(msg)
  53. }
  54. }
  55. })
  56. addHook({
  57. before: config => {
  58. if (![GET_TAGGING_TOTAL, GET_PROJECT].includes(config?.url as any)) {
  59. showLoading()
  60. }
  61. },
  62. after: config => {
  63. if (![GET_TAGGING_TOTAL, GET_PROJECT].includes(config?.url as any)) {
  64. hideLoading()
  65. }
  66. }
  67. })
  68. setDefaultURI(baseURL)
  69. addUnsetTokenURLS(POST_LOGIN)
  70. // if (!token) {
  71. // tokenInvalid()
  72. // } else {
  73. // setToken(token)
  74. // }
  75. export default axios