import axios from 'axios' import { Dialog } from './utils.js' import store from '../vuex/store' import router from '@/router' import i18n from '../i18n/i18n' axios.defaults.timeout = 50000 axios.defaults.headers.post['Content-Type'] = 'application/json;charset=UTF-8' axios.interceptors.request.use( config => { let token = '' if (store.getters.userInfo !== '') { token = JSON.parse(store.getters.userInfo).token } token && (config.headers.Authorization = token) if (config.method === 'post') { if (!config.data.flag) { config.data = config.data } else { config.data = config.data.formData } } config.headers.post['Accept-Language'] = i18n.locale === 'en-us' ? 'en' : 'zh' return config }, error => { Dialog('错误的传参') return Promise.reject(error) } ) axios.interceptors.response.use( response => { return Promise.resolve(response) }, error => { if (error && error.response) { switch (error.response.status) { case 400: break case 401: store.dispatch('setSignOut') router.push('/login') break } return Promise.reject(error.response.data) } else { return Promise.reject(error) } } ) export const post = (sevmethod, params) => { return new Promise((resolve, reject) => { axios.post(`${store.getters.baseUrl}/` + sevmethod, params) .then(response => { resolve(response.data) }, error => { // Dialog(error.message) reject(error.message) }) .catch((error) => { reject(error) }) }) }