// import axios from 'axios' // var request = axios.create({ // baseURL: 'http://10.0.0.240:7800/api/v1', // timeout: 5000 // }) // //拦截请求 // request.interceptors.request.use((config)=>{ // console.log(22222,config) // return config // }) // // 拦截响应 // request.interceptors.response.use((response)=>{ // return response // },function (error){ // //对响应的错误做点什么 // return Promise.reject(error); // } // ) // export default request /** * 网络请求配置 */ import axios from 'axios' import { message } from 'antd' import memoryUtils from './memoryUtils' import storageUtils from './storageUtils' // const baseURL = 'http://10.0.0.94:7800/api/v1' // const baseURL = 'http://10.0.0.240:7800/api/v1' // const baseURL = 'http://myip.legu.cc:7800/api/v1' const baseURL = 'http://10.0.0.4:7800/api/v1' axios.defaults.timeout = 600000 axios.defaults.baseURL = baseURL /** * http request 拦截器 */ axios.interceptors.request.use( (config) => { let userInfo = memoryUtils.userInfo const token = userInfo.token_type +" "+ userInfo.token || "" if (config.url.indexOf('/login') == -1) { config.data = JSON.stringify(config.data) config.headers = { 'Content-Type': 'application/json', 'Authorization': token } } else { let data = new FormData() data.append('username', config.data.username) data.append('password', config.data.password) config.data = data config.headers = { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8', } } return config }, (error) => { return Promise.reject(error) } ) /** * http response 拦截器 */ axios.interceptors.response.use( (response) => { if (response.data.errCode === 2) { console.log('过期') } return response }, (error) => { console.log('请求出错:', error) } ) /** * 封装get方法 * @param url 请求url * @param params 请求参数 * @returns {Promise} */ export function get(url, params = {}) { return new Promise((resolve, reject) => { axios .get(url, { params: params, }) .then((response) => { landing(url, params, response.data) resolve(response.data) }) .catch((error) => { msag(error) // reject(error); }) }) } /** * 封装post请求 * @param url * @param data * @returns {Promise} */ export function post(url, data) { return new Promise((resolve, reject) => { axios.post(url, data).then( (response) => { //关闭进度条 if (response) { if (response.data.code === 200) { resolve(response.data) } else { message.error(response.data.msg) //登录信息过期 if(response.data.code === -5){ storageUtils.removerUser() } } } }, (err) => { msag(err) // reject(err); } ) }) } export function hwy(url, data) { return new Promise((resolve, reject) => { // console.log(baseURL+url) resolve(baseURL + url) }) } // 封装文件下载post请求 export function ExportPost(url, data) { return new Promise((resolve, reject) => { axios({ method: 'post', url: url, //后端接口地址 responseType: 'blob', //bolb格式的请求方式 headers: { //Authentication: getToken('Admin-Token') //请求头 'Content-Type': 'application/json', }, data: data, //需要传给后端的请求参数体 }) .then((res) => { console.log('文件导出', res) const BLOB = res.data const fileReader = new FileReader() fileReader.readAsDataURL(BLOB) //对请求返回的文件进行处理 fileReader.onload = (e) => { let a = document.createElement('a') a.download = data.name + '.xlsx' a.href = e.target.result document.body.appendChild(a) a.click() document.body.removeChild(a) } resolve(res.data) }) .catch((err) => { console.log(err.message) }) }) } /** * 封装patch请求 * @param url * @param data * @returns {Promise} */ export function patch(url, data = {}) { return new Promise((resolve, reject) => { axios.patch(url, data).then( (response) => { resolve(response.data) }, (err) => { msag(err) reject(err) } ) }) } /** * 封装put请求 * @param url * @param data * @returns {Promise} */ export function put(url, data = {}) { return new Promise((resolve, reject) => { axios.put(url, data).then( (response) => { resolve(response.data) }, (err) => { msag(err) reject(err) } ) }) } //统一接口处理,返回数据 export default function (fecth, url, param) { let _data = '' return new Promise((resolve, reject) => { switch (fecth) { case 'get': // console.log('begin a get request,and url:', url) get(url, param) .then(function (response) { resolve(response) }) .catch(function (error) { console.log('get request GET failed.', error) reject(error) }) break case 'post': post(url, param) .then(function (response) { resolve(response) }) .catch(function (error) { console.log('get request POST failed.', error) reject(error) }) break case 'ExportPost': ExportPost(url, param) .then(function (response) { resolve(response) }) .catch(function (error) { console.log('get request POST failed.', error) reject(error) }) break case 'hwy': hwy(url, param).then(function (response) { // resolve(url) resolve(baseURL + url) }) break case 'patch': patch(url, param) .then(function (response) { resolve(response) }) .catch(function (error) { console.log('get request POST failed.', error) reject(error) }) break default: break } }) } //失败提示 function msag(err) { if (err && err.response) { switch (err.response.status) { case 400: alert(err.response.data.error.details) break case 401: alert('未授权,请登录') break case 403: alert('拒绝访问') break case 404: alert('请求地址出错') break case 408: alert('请求超时') break case 500: alert('服务器内部错误') break case 501: alert('服务未实现') break case 502: alert('网关错误') break case 503: alert('服务不可用') break case 504: alert('网关超时') break case 505: alert('HTTP版本不受支持') break default: } } } /** * 查看返回的数据 * @param url * @param params * @param data */ function landing(url, params, data) { if (data.code === -1) { } }