rewrite axios && mock data

This commit is contained in:
Pan
2017-05-15 17:56:45 +08:00
parent 1d05d661bc
commit 5aa22731c8
17 changed files with 137 additions and 204 deletions

View File

@@ -3,69 +3,44 @@ import { Message } from 'element-ui';
import store from '../store';
import router from '../router';
export default function _fetch(options) {
return new Promise((resolve, reject) => {
const instance = axios.create({
baseURL: process.env.BASE_API,
// timeout: 2000,
headers: { 'X-Ivanka-Token': store.getters.token }
});
instance(options)
.then(response => {
const res = response.data;
if (res.code !== 20000) {
console.log(options); // for debug
Message({
message: res.message,
type: 'error',
duration: 5 * 1000
});
// 50014:Token 过期了 50012:其他客户端登录了 50008:非法的token
if (res.code === 50008 || res.code === 50014 || res.code === 50012) {
Message({
message: res.message,
type: 'error',
duration: 5 * 1000
});
// 登出
store.dispatch('FedLogOut').then(() => {
router.push({ path: '/login' })
});
}
reject(res);
}
resolve(res);
})
.catch(error => {
Message({
message: '发生异常错误,请刷新页面重试,或联系程序员',
type: 'error',
duration: 5 * 1000
});
console.log(error); // for debug
reject(error);
});
});
}
export function fetch(options) {
return new Promise((resolve, reject) => {
const instance = axios.create({
timeout: 2000 // 超时
});
instance(options)
.then(response => {
const res = response.data;
resolve(res);
})
.catch(error => {
Message({
message: error,
type: 'error',
duration: 5 * 1000
});
console.log(error); // for debug
reject(error);
});
});
}
const service = axios.create({
baseURL: process.env.BASE_API
});
service.interceptors.request.use(config => {
// Do something before request is sent
if (store.state.token) {
config.headers.Token = store.state.token;
}
return config;
}, error => {
// Do something with request error
console.log(error); // for debug
Promise.reject(error);
})
service.interceptors.response.use(
response => {
console.log(response)
return response;
},
error => {
console.log('err' + error);// for debug
const code = error.response.data;
if (code === 50008 || code === 50014 || code === 50012) {
Message({
message: res.message,
type: 'error',
duration: 5 * 1000
});
// 登出
store.dispatch('FedLogOut').then(() => {
router.push({ path: '/login' })
});
}
return Promise.reject(error);
}
)
export default service;

View File

@@ -110,6 +110,11 @@
})).join('&');
}
export function param2Obj(url) {
const search = url.split('?')[1];
return JSON.parse('{"' + decodeURIComponent(search).replace(/"/g, '\\"').replace(/&/g, '","').replace(/=/g, '":"') + '"}')
}
export function html2Text(val) {
const div = document.createElement('div');
div.innerHTML = val;