// @ts-nocheck import axios from 'axios' import { message, notification } from 'ant-design-vue' import { getToken, removeToken, getType } from '@/views/utils/auth' import store from '../store' import router from '../router' axios.defaults.timeout = 300000 // axios.defaults.baseURL = 'https://gzky-server.yiboshi.com' axios.defaults.baseURL = '' // type默认为form,如果要在请求体里传json,则传json,如果要上传文件,传file function fetch (url = '', params = {}, method = 'get', contentType = 'form', token) { contentType === 'form' && (contentType = 'application/x-www-form-urlencoded'); contentType === 'json' && (contentType = 'application/json; charset=utf-8') contentType === 'file' && (contentType = 'multipart/form-data') //移除空白参数 let keyArr = []; for (let k in params) { let val = params[k]; if (val === null || val === undefined || val === 'null' || val === '' || val === ' ') { keyArr.push(k); } } keyArr.forEach(x => { delete params[x]; }) let query = []; for (let k in params) { query.push(k + '=' + params[k]) } let qs = query.join('&') if (method.toLowerCase() === 'get' && query.length > 0) { url += (url.indexOf('?') < 0 ? '?' : '&') + qs } if (contentType !== 'application/x-www-form-urlencoded' && method !== 'get') { qs = params } let headers = {} if (getToken()) headers = { Authorization: 'Bearer ' + getToken(), 'Content-Type': contentType, } else headers = { 'Content-Type': contentType, } return new Promise((resolve, reject) => { axios({ method: method, url: url, data: params, headers: headers }) .then(function (response) { if (response.data.code === 'BIZ.BUSSINESS_EXCEPTION') { message.error(response.data.msg); } if (response.data.code === 'PARAM.EXCEPTION') { message.error(response.data.msg); } if (response.data.code === 'SYS.SERVER_ERROR') { message.error('500 Internal Server Error!'); } if (response.data.code === 'BIZ.TOKEN_EXPIRATION') { message.error('登录过期,请重新登录'); removeToken() store.commit('app/clearStore') window.sessionStorage.clear(); router.push(`/login`) } resolve(response.data); }).catch(err => { message.error('500 Internal Server Error!'); reject(err.response) }) }) } export default fetch