upload.ts 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import { Upload } from "@/api/interface/index";
  2. import { PORT1 } from "@/api/config/servicePort";
  3. import { PORT_NONE } from "@/api/config/servicePort";
  4. import httpStore from "@/api/indexStore";
  5. import http from "@/api";
  6. import axios from "axios";
  7. import { ResultEnum } from "@/enums/httpEnum";
  8. import { useUserStore } from "@/stores/modules/user";
  9. import { ElMessage } from "element-plus";
  10. import { LOGIN_URL } from "@/config";
  11. import router from "@/routers";
  12. // 使用 alienStore 前缀的 axios 实例(用于价目表等页面上传)
  13. const httpStoreAlienStore = axios.create({
  14. baseURL: import.meta.env.VITE_API_URL_STORE as string,
  15. timeout: ResultEnum.TIMEOUT as number,
  16. withCredentials: true
  17. });
  18. httpStoreAlienStore.interceptors.request.use(
  19. config => {
  20. const userStore = useUserStore();
  21. if (config.headers) (config.headers as any).Authorization = userStore.token;
  22. return config;
  23. },
  24. error => Promise.reject(error)
  25. );
  26. httpStoreAlienStore.interceptors.response.use(
  27. response => {
  28. const data = response.data;
  29. const userStore = useUserStore();
  30. if (data.code == ResultEnum.OVERDUE) {
  31. userStore.setToken("");
  32. router.replace(LOGIN_URL);
  33. ElMessage.error(data.msg);
  34. return Promise.reject(data);
  35. }
  36. if (data.code && data.code !== ResultEnum.SUCCESS) {
  37. ElMessage.error(data.msg);
  38. return Promise.reject(data);
  39. }
  40. return data;
  41. },
  42. error => Promise.reject(error)
  43. );
  44. /**
  45. * @name 文件上传模块
  46. */
  47. // 图片上传(默认使用 alienStorePlatform)
  48. export const uploadImg = (params: FormData) => {
  49. return httpStore.post<Upload.ResFileUrl>(PORT_NONE + `/file/uploadMore`, params, { cancel: false });
  50. };
  51. // 图片上传(使用 alienStore 前缀,用于价目表等页面)
  52. export const uploadImgStore = (params: FormData) => {
  53. return httpStoreAlienStore.post<Upload.ResFileUrl>(PORT_NONE + `/file/uploadMore`, params, { cancel: false });
  54. };
  55. // 视频上传
  56. export const uploadVideo = (params: FormData) => {
  57. return http.post<Upload.ResFileUrl>(PORT_NONE + `/file/upload/video`, params, { cancel: false });
  58. };