local.ts 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import { AxiosStatic, setSpliceUrl } from "./setup";
  2. import { stylelist, hotlist } from "./url";
  3. import { useParams } from "@/hook/useParams";
  4. import { paramsToStr } from "@/utils";
  5. import { setStaticPrefix } from "@/sdk";
  6. import Interfaces from "./interfaces";
  7. const params = useParams();
  8. params.m = params.m || (window as any).num || "SS-t-4pMXagRDjk";
  9. export const baseURL = import.meta.env.VITE_API_BASE_URL ? `/${import.meta.env.VITE_API_BASE_URL}/${params.m}` : "";
  10. const spliceUrl = "---";
  11. setSpliceUrl(spliceUrl);
  12. setStaticPrefix(" ");
  13. // setStaticPrefix(baseURL);
  14. // baseURL
  15. export default (axiosInstance: AxiosStatic<Interfaces>) => {
  16. axiosInstance.defaults.baseURL = baseURL;
  17. axiosInstance.interceptors.request.use((config) => {
  18. let url = config.url;
  19. let params = (config as any).params;
  20. if ("params" in config && params && Object.keys(params).length) {
  21. url += `${spliceUrl}${paramsToStr(params).substring(1)}`;
  22. params = void 0;
  23. }
  24. return {
  25. ...config,
  26. url,
  27. params,
  28. method: "GET",
  29. };
  30. });
  31. axiosInstance.addIntercept({
  32. resHandler(config) {
  33. (config as any).list.forEach((item) => {
  34. item.icon = baseURL + "/" + item.icon;
  35. });
  36. return config;
  37. },
  38. urls: [stylelist],
  39. });
  40. axiosInstance.addIntercept({
  41. resHandler(config) {
  42. (config as any).list.forEach((item) => {
  43. if (item.meta && item.type !== "WEB") {
  44. item.meta.forEach((m) => {
  45. m.name;
  46. m.url = baseURL + "/" + m.url;
  47. });
  48. }
  49. });
  50. return config;
  51. },
  52. urls: [hotlist],
  53. });
  54. };