73 lines
1.9 KiB
JavaScript
73 lines
1.9 KiB
JavaScript
import axios from 'axios';
|
|
import { token } from '@/common/token';
|
|
import vm from '@/main';
|
|
|
|
const code = {
|
|
authorization: '00',
|
|
error: '02',
|
|
success: '01',
|
|
}
|
|
|
|
axios.defaults.baseURL = process.env.BASE_URL;
|
|
|
|
/**
|
|
* 最终直接根据url名称调用接口方法
|
|
* 例如
|
|
* import { apis } from '@/api'
|
|
* apis.getItemGroupType(parmas).then(...)
|
|
*/
|
|
import urls from './requests';
|
|
|
|
const apis = {}
|
|
|
|
for (let key in urls) {
|
|
apis[key] = (params = {}) => {
|
|
return new Promise((reslove, reject) => {
|
|
let instance = axios
|
|
.create({
|
|
headers: {
|
|
Authorization: 'Bearer ' + token.value
|
|
}
|
|
});
|
|
|
|
instance.interceptors.response.use((res) => {
|
|
if (res.data.code === code.authorization) {
|
|
token.value = '';
|
|
// vm.$router.replace({
|
|
// path: '/login'
|
|
// }).catch(err => { });
|
|
}
|
|
return res;
|
|
}, (err) => {
|
|
return Promise.reject(err);
|
|
});
|
|
|
|
instance
|
|
.post(urls[key], params)
|
|
.then(({ data }) => {
|
|
if (data.code === code.success) {
|
|
reslove(data);
|
|
} else {
|
|
if (vm.version.beta) {
|
|
alert(data.message);
|
|
}
|
|
reject(data);
|
|
}
|
|
})
|
|
.catch(err => {
|
|
if (process.env.PROD) {
|
|
vm.$dialog.alert({ message: '发生错误,请联系管理员' });
|
|
} else {
|
|
console.warn(err, urls[key]);
|
|
}
|
|
});
|
|
})
|
|
}
|
|
}
|
|
|
|
export {
|
|
axios,
|
|
apis,
|
|
code
|
|
};
|