import Vue from 'vue'
import axios from 'axios'
/*
* 全局请求拦截
*/
axios.defaults.baseURL = process.env.API_BASEURL
axios.defaults.headers.common['Content-Type'] = 'application/x-www-form-urlencoded'
axios.defaults.headers.common['Cache-Control'] = 'no-cache'
axios.interceptors.request.use((_config) => {
const config = _config
if (config.loading) {
Vue.$indicator.open({
text: config.loadingText ? config.loadingText : '加载中',
spinnerType: config.loadingAnimate ? config.loadingAnimate : 'double-bounce'
})
}
const loginToken = utilsTool.getItem('loginToken')
if (loginToken) {
config.headers.loginToken = loginToken
}
if (config.method === 'get') {
config.params = { ...config.params }
} else {
config.data = qs.stringify({ ...config.data })
}
return config
}, (error) => {
return Promise.reject(error)
})
var serversDate = Number(new Date())
axios.interceptors.response.use((res) => {
Vue.$indicator.close()
const date = res.headers.date
serversDate = Number(new Date(date)) + 1000
Vue.prototype.$_t = serversDate
return res.data
}, (err) => {
Vue.$indicator.close()
return Promise.reject(err)
})
Vue.prototype.$http = axios