import axios from 'axios' import router from '@/router' import store from '@/store' import {Message} from 'element-ui' import { baseUrl,webLoginType,ssoLoginUrlDev } from '@/sysConfig' import isMobile from "../../store/isMobile"; import domMessage from '../messageOnce/messageOnce' // import 'element-ui/lib/theme-chalk/index.css' const messageOnce = new domMessage() /** * @description: FormData * @author: xx * @date: 2018-08-14 16:57:48 */ let formData = (data) => { let _formData = new FormData() for (let i in data) { _formData.append(i, data[i]) } return _formData } const service = axios.create({ baseURL: process.env.NODE_ENV === 'production' ? baseUrl : '/' }) service.defaults.timeout = 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 service.defaults.headers['Content-type'] = 'application/json' /** * @description: axios请求拦截器 * liuyan */ service.interceptors.request.use( config => { if (config.params) { // 解决IE请求不刷新 config.params._t = new Date().getTime() } let token = store.state.token; if (!config.headers.hasOwnProperty('token') && token != null && token) { config.headers.token = token; } return config }, error => { return Promise.reject(error.response) }) /** * @description: axios响应拦截器 * liuyan */ service.interceptors.response.use( res => { // IE 8-9 if (res.data == null && res.config.responseType === 'json' && res.request.responseText != null) { try { res.data = JSON.parse(res.request.responseText); } catch (e) { // ignored } } if(res.data && res.data.respCode != undefined && res.data.respCode === 'LE505'){ if (isMobile()) { localStorage.removeItem('token') return router.push('/phoneIndex') }else { window.sessionStorage.clear() messageOnce.warning({ message: '登录超时,请重新登录', type: 'warning' }) if(webLoginType != null && webLoginType === 'idm' ) { // idm 统一认证登录页面 return window.location.href = ssoLoginUrlDev }else if(webLoginType != null && webLoginType === 'dev'){ return router.push('/login') } } } return res.data }, error => { // 登录超时 if (error.response.data.path === '/a/login' && store.state.isTimeOut === false) { for (let key in store.state) { if (key !== 'isTimeOut' && key !== 'laws_urm' && key !== 'laws_prm') { store.state[key] = '' } } Message.warning('登录超时,请重新登录') router.push('/login') store.state.isTimeOut = true } }) export default service