index.ts 1.0 KB

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