File size: 1,750 Bytes
d757506
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import request from './axiosConfig';
import { sessions } from '@/utils/utils'

interface api { 
  url: string
  data?: any
  header?:any
}

const httpConfig = (method:string,params?:any) => { 
  let token = sessions.get(`token`)
  let data: any = null
  if (method !== 'FILE') { // 非文件上传
    if (method === 'POST' || method === 'PUT') {
      data = {
        data: JSON.stringify(params.data),
      }
    } else if (method === 'GET' || method === 'DELETE') {
      data = {
        params: params.data,
      }
    }
    return new Promise((resolve, reject) => {
      request(params.url, {
        method,
        ...data,
        headers: {
          'Content-Type': 'application/json;charset=UTF-8',
          'Authorization': token ? token : 'Basic aHc6aHc=',
          'with-credentials': true,
          ...params.header
        }
      }).then((res:any) => { 
        resolve(res)
      }).catch((err:any)=>{
        console.log(err,'异常')
      })
    })

  } else { // 文件上传
    return new Promise((resolve, reject) => {
      request(params.url, {
        method: 'post',
        data: params.data,
        requestType: 'form',
        headers: {
          'Authorization': token ? token : 'Basic aHc6aHc='
        }
      }).then((res:any) => { 
        resolve(res)
      }).catch((err:any)=>{
        console.log(err,'异常')
      })
    })
  }

}

export default {
  post: (params: api) => {
    return httpConfig('POST', params)
  },
  get: (params:api) => {
    return httpConfig('GET', params)
  },
  delete: (params:api) => {
    return httpConfig('DELETE', params)
  },
  put: (params:api) => {
    return httpConfig('PUT', params)
  },
  file: (params:api) => {
    return httpConfig('FILE', params)
  },
}