instance.ts 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import { axiosFactory } from './setup'
  2. import { Message } from 'bill/index'
  3. import { showLoad, hideLoad } from '@/utils'
  4. import * as URL from './constant'
  5. import { ResCode, ResCodeDesc } from './constant'
  6. import { appType, baseURL, params } from '@/env'
  7. const instance = axiosFactory()
  8. export const {
  9. axios,
  10. addUnsetTokenURLS,
  11. delUnsetTokenURLS,
  12. addReqErrorHandler,
  13. addResErrorHandler,
  14. delReqErrorHandler,
  15. delResErrorHandler,
  16. getToken,
  17. setToken,
  18. delToken,
  19. setDefaultURI,
  20. addHook,
  21. delHook,
  22. setHook
  23. } = instance
  24. const gotoLogin = () => {
  25. const loginHref = import.meta.env.DEV ? 'http://localhost:5174' : (params.app === appType.fire ? '/fire' : '/criminal')
  26. console.error(loginHref + '?redirect=' + escape(location.href) + '#/login')
  27. // location.href = loginHref + '?redirect=' + escape(location.href) + '#/login'
  28. }
  29. addReqErrorHandler(err => {
  30. // Message.error(err.message)
  31. console.error(err)
  32. hideLoad()
  33. // gotoLogin()
  34. })
  35. addResErrorHandler(
  36. (response, data) => {
  37. if (response && response.status !== 200) {
  38. Message.error(response.statusText)
  39. } else if (data) {
  40. const msg = data.code && ResCodeDesc[data.code] ? ResCodeDesc[data.code] : (data?.message || data?.msg)
  41. if (data.code === ResCode.TOKEN_INVALID) {
  42. gotoLogin()
  43. } else {
  44. Message.error(msg)
  45. }
  46. }
  47. }
  48. )
  49. addHook({
  50. before: (config) => {
  51. if (config.url !== URL.RECORD_STATUS) {
  52. showLoad()
  53. }
  54. },
  55. after: (config) => {
  56. if (!config || config.url !== URL.RECORD_STATUS) {
  57. hideLoad()
  58. }
  59. }
  60. })
  61. setDefaultURI(baseURL)
  62. params.token && setToken(params.token)
  63. export default axios