index.ts 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import service from './service'
  2. import { CONTENT_TYPE } from '../constants'
  3. import { useUserStoreWithOut } from '../store/modules/user'
  4. const request = (option: AxiosConfig) => {
  5. const { url, method, params, data, headers, responseType } = option
  6. const userStore = useUserStoreWithOut()
  7. return service.request({
  8. url: url,
  9. method,
  10. params,
  11. data: data,
  12. responseType: responseType,
  13. headers: {
  14. 'Content-Type': CONTENT_TYPE,
  15. [userStore.getTokenKey ?? 'Authorization']: userStore.getToken ?? '',
  16. ...headers
  17. }
  18. })
  19. }
  20. export default {
  21. get: <T = any>(option: AxiosConfig) => {
  22. return request({ method: 'get', ...option }) as Promise<IResponse<T>>
  23. },
  24. post: <T = any>(option: AxiosConfig) => {
  25. return request({ method: 'post', ...option }) as Promise<IResponse<T>>
  26. },
  27. delete: <T = any>(option: AxiosConfig) => {
  28. return request({ method: 'delete', ...option }) as Promise<IResponse<T>>
  29. },
  30. put: <T = any>(option: AxiosConfig) => {
  31. return request({ method: 'put', ...option }) as Promise<IResponse<T>>
  32. },
  33. cancelRequest: (url: string | string[]) => {
  34. return service.cancelRequest(url)
  35. },
  36. cancelAllRequest: () => {
  37. return service.cancelAllRequest()
  38. }
  39. }