instance.ts 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import { axiosFactory } from "./setup";
  2. import { Dialog, Message } from "bill/index";
  3. import { showLoad, hideLoad } from "@/utils";
  4. import * as URL from "./constant";
  5. import { ResCode, ResCodeDesc } from "./constant";
  6. import { baseURL, params } from "@/env";
  7. import GAxios from "axios";
  8. const instance = axiosFactory();
  9. export const {
  10. axios,
  11. addUnsetTokenURLS,
  12. delUnsetTokenURLS,
  13. addReqErrorHandler,
  14. addResErrorHandler,
  15. delReqErrorHandler,
  16. addUnsetResErrorURLS,
  17. delResErrorHandler,
  18. getToken,
  19. setToken,
  20. delToken,
  21. setDefaultURI,
  22. addHook,
  23. delHook,
  24. setHook,
  25. } = instance;
  26. const gotoLogin = () => {
  27. if (import.meta.env.DEV) {
  28. GAxios.post("/service/manage/login", {
  29. password: "MRinIEn3ExMjM0NTY=Q5Lm39urQWzN7k4oCG",
  30. userName: "super-admin",
  31. username: "super-admin",
  32. }).then((res) => {
  33. setToken(res.data.data.token)
  34. setTimeout(() => location.reload())
  35. });
  36. } else {
  37. const loginHref = `/admin/#/statistics/scene`
  38. location.href = loginHref + '?redirect=' + escape(location.href)
  39. }
  40. };
  41. addReqErrorHandler((err) => {
  42. // Message.error(err.message)
  43. console.error(err);
  44. hideLoad();
  45. gotoLogin();
  46. });
  47. addResErrorHandler((response, data) => {
  48. if (response && response.status !== 200) {
  49. Message.error(response.statusText);
  50. } else if (data) {
  51. const msg =
  52. data.code && ResCodeDesc[data.code]
  53. ? ResCodeDesc[data.code]
  54. : data?.message || data?.msg;
  55. if (data.code === ResCode.TOKEN_INVALID) {
  56. gotoLogin();
  57. } else if (data.code === ResCode.UN_AUTH) {
  58. Dialog.alert({content: msg, okText: '我知道了'}).then(() => {
  59. gotoLogin();
  60. })
  61. throw msg
  62. } else {
  63. Message.error(msg || '服务出现异常,请稍后再试');
  64. }
  65. }
  66. });
  67. addHook({
  68. before: (config) => {
  69. if (config.url !== URL.RECORD_STATUS) {
  70. showLoad();
  71. }
  72. },
  73. after: (config) => {
  74. if (!config || config.url !== URL.RECORD_STATUS) {
  75. hideLoad();
  76. }
  77. },
  78. });
  79. setDefaultURI(baseURL);
  80. const token = params.token || localStorage.getItem('token')
  81. token && setToken(token);
  82. export default axios;