import Cookies from 'js-cookie'
const TokenKey = 'access_token'
const contractNo = 'contractNo'
export function getToken() {
return Cookies.get(TokenKey)
}
export function setToken(token) {
return Cookies.set(TokenKey, token)
}
export function removeToken() {
return Cookies.remove(TokenKey)
}
export function getContractNo() {
return Cookies.get(contractNo)
}
import axios from 'axios'
import { MessageBox,Toast,Indicator} from "mint-ui";
import {getToken,getContractNo} from './auth'
function formdata(obj) {
let data = new FormData();
for (let j in obj) {
data.append(j, obj[j]);
}
return data;
}
let request = axios.create({
baseURL: process.env.NODE_ENV === 'production'?`${window.location.protocol}//${window.location.host}/api`:`http://sitxqy.bndxqc.com/api`,
timeout: 2500,
headers: {
"Content-Type": "application/json",
channel: "XQYH5",
}
});
request.interceptors.request.use(
config => {
Indicator.open();
config.headers.access_token = getToken();
if (config.method === 'post') {
if(!config.data.FLAG){
config.data = formdata(config.data);
}else{
config.data = JSON.stringify(config.data);
}
}
return config;
},
error => {
setTimeout(()=>{
Indicator.close()
},1000);
return Promise.reject(error)
}
)
function layout(){
MessageBox.alert('由于您登录时间过长,为确保您的账户安全,请重新登录', '提示').then(()=>{
window.location.href = `/login?ht=${getContractNo()}`
})
}
request.interceptors.response.use(
response => {
const {status,statusText,data}= response;
const {httpCode,msg} = data;
Indicator.close()
if(status!==200){
if(status==499||status==498){layout();}
return Promise.reject(statusText)
}
if(httpCode == 499 || httpCode== 498){
layout();
return Promise.reject(msg)
} else if (httpCode == 200) {
return Promise.resolve(data)
}else {
MessageBox.alert(msg, "提示");
return Promise.reject(msg)
}
},
error => {
Indicator.close()
error = error?error.toString():"";
if(error.includes('499')||error.includes('498')){
layout();
return Promise.reject(error)
}
Toast({
message: '请重新请求!',
duration: 5000
});
return Promise.reject(error)
}
)
export default request