import axios from 'axios' import vue from 'vue' const request = function (loadtip, query) { let loading if (loadtip) { loading = vue.prototype.$loading({ lock: false, text: '正在加载中…', spinner: 'el-icon-loading', background: 'rgba(0, 0, 0, 0.5)' }) } return axios.request(query) .then(res => { if (loadtip) { loading.close() } if (res.data.code === 401) { vue.prototype.$$router.push({ path: '/login' }) return Promise.reject(res.data) } else if (res.data.code === 500) { return Promise.reject(res.data) } else if (res.data.code === 501) { return Promise.reject(res.data) } else if (res.data.code === 502) { vue.prototype.$$router.push({ path: '/login' }) return Promise.reject(res.data) } else if (res.data.code === 999 || res.data.code === 998) { return Promise.reject(res.data) } else { return Promise.resolve(res.data) } }) .catch(e => { if (loadtip) { loading.close() } // vue.prototype.$message.error(e.message) return Promise.reject(e) }) } const post = function (url, params) { const query = { baseURL: process.env.VUE_APP_URL, url: url, method: 'post', withCredentials: true, timeout: 600000, data: params, headers: { 'Content-Type': 'application/json', 'request-ajax': true } } return request(false, query) } const postOts = function (url, params) { const query = { url: url, method: 'post', withCredentials: true, timeout: 600000, // timeout: 5000, data: params, // headers: { 'Content-Type': 'application/json;charset=UTF-8', 'request-ajax': true, 'Access-Control-Allow-Methods': 'GET, POST, OPTIONS', 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Headers': 'Origin, X-Requested-With, Content-Type, Accept' } headers: { 'Content-Type': 'application/json', 'request-ajax': true } } return request(false, query) } const getOts = function (url, params) { const query = { url: url, method: 'get', withCredentials: true, timeout: 600000, data: params, // headers: { 'Content-Type': 'application/json;charset=UTF-8', 'request-ajax': true, 'Access-Control-Allow-Methods': 'GET, POST, OPTIONS', 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Headers': 'Origin, X-Requested-With, Content-Type, Accept' } headers: { 'Content-Type': 'application/json', 'request-ajax': true } } return request(false, query) } const postWithLoadTip = function (url, params) { const query = { baseURL: process.env.VUE_APP_URL, url: url, method: 'post', withCredentials: true, timeout: 600000, data: params, headers: { 'Content-Type': 'application/json', 'request-ajax': true } } return request(true, query) } const postWithLoadTipOts = function (url, params) { const query = { // baseURL: process.env.VUE_APP_URL, url: url, method: 'post', withCredentials: true, timeout: 600000, data: params, headers: { 'Content-Type': 'application/json', 'request-ajax': true } } return request(true, query) } const postWithOutLoadTip = function (url, params) { const query = { baseURL: process.env.VUE_APP_URL, url: url, method: 'post', withCredentials: true, timeout: 600000, data: params, headers: { 'Content-Type': 'application/json', 'request-ajax': true } } return request(false, query) } const get = function (url, params) { const query = { baseURL: process.env.VUE_APP_URL, url: url, method: 'get', withCredentials: true, timeout: 600000, params: params, headers: { 'request-ajax': true } } return request(false, query) } const form = function (url, params) { const query = { baseURL: process.env.VUE_APP_URL, url: url, method: 'post', withCredentials: true, timeout: 600000, data: params, headers: { 'Content-Type': 'multipart/form-data', 'request-ajax': true } } return request(false, query) } export { post, postOts, getOts, postWithLoadTip, postWithOutLoadTip, postWithLoadTipOts, get, form }