import axios from 'axios' import qs from 'qs' import auth from './auth' import { Toast } from 'vant' export function request(request, isFile) { // console.log('get token:', request.headers, store.getters.token, getToken()) if (!request.headers) { request.headers = {} // request.headers = { 'Content-Type': 'application/json' } } // console.log('token:', auth.getToken()) if (request.headers && auth.getToken()) { // ['RC-Token'] is a custom headers key request.headers['RC-Token'] = auth.getToken() } const requestBody = { method: request.method, url: request.url, data: qs.stringify(request.data) } if (isFile) { requestBody.data = request.data } if (request.headers) { requestBody.headers = request.headers } console.log('request: ', request) return new Promise((resolve, reject) => { axios(requestBody).then((res) => { console.log('response:', res) if (res && res.data && res.status === 200) { const resData = res.data switch (resData.errno) { case 501: Toast(resData.errmsg) reject(resData.errmsg) break case 401: case 402: case 502: case 503: case 504: case 505: case 506: case 507: case 508: case 801: Toast(resData.errmsg) reject(resData.errmsg) break } resolve(resData) } else { console.log(res) reject(res) } }).catch((err, x) => { console.log(request.url + ' fail', err, x) Toast(err) reject(err, x) }) }) }