gaosp
2024-03-09 15e78fe809e54fde4a8cd31d261f336e400d2440
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
/*
 * @Date: 2022-11-09 12:37:25
 * @LastEditors: Sneed
 * @LastEditTime: 2024-02-02 22:01:56
 * @FilePath: /belleson-frontend/Users/mache/Documents/demo/mdc/src/utils/ajax.js
 */
import axios from 'axios'
import { Message } from 'element-ui'
import store from '../store'
import { getToken, setToken } from '@/utils/auth'
import qs from 'qs'
const URL_CFG = {
  BASE_URL: '/mdc',
  WEB_SOCKET_URL: ''
}
 
// 创建axios实例
const service = axios.create({
  // baseURL: process.env.BASE_API, // api的base_url
  timeout: 30000 // 请求超时时间
})
 
// request拦截器
service.interceptors.request.use(config => {
  config.url = `${URL_CFG.BASE_URL}${config.url}`
  if (getToken().value) {
    config.headers['mdc-token'] = getToken().value // 让每个请求携带自定义token 请根据实际情况自行修改
  }
  if (config.mytype == 'json') {
    config.headers = {
      'Content-Type':'application/json; charset=UTF-8',
      ['mdc-token']: getToken().value
    }
  }
  config.transformRequest = [function(data) {
    // debugger
    if (config.mytype == 'json') {
      return JSON.stringify(data)
    }
    return qs.stringify(data)
  }]
  return config
}, error => {
  // Do something with request error
  // console.log(error) // for debug
  Promise.reject(error)
})
// respone拦截器
service.interceptors.response.use(
  response => {
    // 更新token有效时间与服务端同步
    setToken(getToken().value)
    /**
     * status为非200时抛错 可结合自己业务进行修改
     */
    const status = response.status
    if (status !== 200) {
      // Message({
      //   message: '服务连接异常,请稍后重试或联系管理员',
      //   type: 'error',
      //   duration: 5 * 1000
      // })
      return Promise.reject('error')
    } else {
      // const data = response.data || {}
      // if (data.errCode === '402' || data.errCode === '401') {
      //   store.dispatch('LogOut').then(() => {
      //     Message({
      //       message: '由于您长时间没有操作,需重新登录!',
      //       type: 'error',
      //       duration: 2 * 1000
      //     })
      //   })
      //   setTimeout(() => {
      //     location.reload() // 为了重新实例化vue-router对象 避免bug
      //   }, 2000)
      // } else {
      //   return response.data
      // }
      if (response.data.result === 'SUCCESS') {
        return response.data
      } else {
        Message({
          message: response.data.msg,
          type: 'error',
          duration: 600
        })
        return Promise.reject('error')
      }
    }
  },
  error => {
    // console.log('err' + error)// for debug
    Message({
      message: '服务连接异常,请稍后重试或联系管理员',
      type: 'error',
      duration: 600
    })
    return Promise.reject(error)
  }
)
export default {
  URL_CFG,
  // post请求
  post: function(url, params) {
    console.log(url,'url')
    return service({
      url: url,
      method: 'post',
      data: params
    })
  },
  postJson: function(url, params) {
    console.log(url,'url')
    return service({
      mytype: 'json',
      url: url,
      method: 'post',
      data: params
    })
  },
  // get请求
  get: function(url, params) {
    return service({
      url: url,
      method: 'get',
      params: params
    })
  }
}