/* eslint-disable */ import axios from 'axios'; import { message } from 'antd'; import { NetworkState, BASE_URL, MockUrl } from './httpurl'; const CODE_SUCCESS = '200'; let recognitionParams = [].reduce((p, n) => { if (eval(n)) { p[n] = eval(n); return p; } else { return p; } }, {}); //过滤掉为undefined的值,避免组装到接口url里面 // 将携带参数转换成参数字符串 let recognitionParamsTransferStr = Object.keys(recognitionParams).length > 0 ? '?' + Object.entries(recognitionParams) .map(([k, v]) => `${k}=${v}`) .join('&') : ''; export default function fetch(options) { const { mock = false, url, data, params, method = 'get', showToast = true, autoLogin = true, headers = {}, } = options; let token = window.localStorage.getItem('token') || undefined; headers['Content-type'] = 'application/json'; headers['Accept'] = 'application/json'; if (token) { headers['Authorization'] = token; //将token放入请求头 } return axios({ url: mock ? MockUrl + url + recognitionParamsTransferStr : BASE_URL + url + recognitionParamsTransferStr, method, data, params, headers, }) .then((res) => { // Taro.hideLoading(); const { code, data, msg } = res.data; if (code == '0') { return data || true; } else if ( code == '10005' || code == '401' || code == '10002' || code == '10003' ) { // token失效重新返回登录页面 // this.props.history.push({ pathname: '/login' }); window.location.href = window.location.origin + '#/login'; } else { message.warning(msg); return false; } }) .catch((err) => { console.log(err); window.location.href = window.location.origin + '#/login'; }); }