1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- import axios from 'axios'
- import qs from 'qs'
- import toolClass from './util'
- import { Toast } from '../../node_modules/vant';
-
- const Axios = axios.create({
- timeout: 60000,
- responseType: 'json',
- withCredentials: true,
- queryData: {},
- urlData: {},
- headers: {
- 'Content-Type': 'multipart/form-data'
- }
- })
-
- Axios.interceptors.request.use((config) => {
- // 处理请求data,若为get请求,拼到url后面,若为post请求,直接添加到body中
- config.urlData = {...config.urlData, org: 'MQ'}
- let urlData = qs.stringify(config.urlData)
- let queryData = qs.stringify(config.queryData)
- // 判断是通过斜杠传参还是通过query传参
- if (config.url.indexOf(':') > -1) {
- if (typeof config.urlData === 'object') {
- config.url = Object.keys(config.urlData).reduce((url, k) => { // 此方法对每个元素进行处理
- const re = new RegExp(`:${k}(?!w)`, 'i')
- return url.replace(re, config.urlData[k])
- }, config.url)
- }
- }
- if (queryData) {
- config.url += '?' + queryData
- }
- let fm = new FormData()
- for (let k in config.data) {
- if (Array.isArray(config.data[k])) {
- fm.append(k, ...config.data[k].map(v => `${k}=${encodeURIComponent(v)}`))
- } else {
- fm.append(k, config.data[k])
- }
- }
- config.data = fm
- return config
- }, (error) => {
- console.log(error)
- })
-
- const ajax = (...args) => {
- return new Promise((resolve, reject) => {
- Axios(...args).then(({ data }) => {
- // console.log(111)
- const { code, message, result } = data
- if (code === 200) {
- resolve(result)
- } else if (code === 401) {
- // reject(code)
- toolClass.getCode()
- } else {
- Toast({
- message: message,
- type: 'error'
- })
- }
- }).catch(reject)
- })
- }
-
- export default ajax
|