diff --git a/.eslintignore b/.eslintignore index c2625557..e6529fc0 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,4 +1,4 @@ build/*.js -config/*.js src/assets public +dist diff --git a/mock/user.js b/mock/user.js index 21366c1e..43f93a04 100644 --- a/mock/user.js +++ b/mock/user.js @@ -30,9 +30,19 @@ export default [ type: 'post', response: config => { const { username } = config.body + const token = tokens[username] + + // mock error + if (!token) { + return { + code: 60204, + message: 'Account and password are incorrect.' + } + } + return { code: 20000, - data: tokens[username] + data: token } } }, @@ -43,9 +53,19 @@ export default [ type: 'get', response: config => { const { token } = config.query + const info = users[token] + + // mock error + if (!info) { + return { + code: 50008, + message: 'Login failed, unable to get user details.' + } + } + return { code: 20000, - data: users[token] + data: info } } }, diff --git a/src/utils/request.js b/src/utils/request.js index 3d1c0980..a9b8c18f 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -1,5 +1,5 @@ import axios from 'axios' -import { Message } from 'element-ui' +import { MessageBox, Message } from 'element-ui' import store from '@/store' import { getToken } from '@/utils/auth' @@ -33,40 +33,39 @@ service.interceptors.response.use( * If you want to get information such as headers or status * Please return response => response */ - response => response.data, /** * 下面的注释为通过在response里,自定义code来标示请求状态 * 当code返回如下情况则说明权限有问题,登出并返回到登录页 - * 如想通过 xmlhttprequest 来状态码标识 逻辑可写在下面error中 + * 如想通过 XMLHttpRequest 来状态码标识 逻辑可写在下面error中 * 以下代码均为样例,请结合自生需求加以修改,若不需要,则可删除 */ - // response => { - // const res = response.data - // if (res.code !== 20000) { - // Message({ - // message: res.message, - // type: 'error', - // duration: 5 * 1000 - // }) - // // 50008:非法的token; 50012:其他客户端登录了; 50014:Token 过期了; - // if (res.code === 50008 || res.code === 50012 || res.code === 50014) { - // // 请自行在引入 MessageBox - // // import { Message, MessageBox } from 'element-ui' - // MessageBox.confirm('你已被登出,可以取消继续留在该页面,或者重新登录', '确定登出', { - // confirmButtonText: '重新登录', - // cancelButtonText: '取消', - // type: 'warning' - // }).then(() => { - // store.dispatch('user/resetToken').then(() => { - // location.reload() // 为了重新实例化vue-router对象 避免bug - // }) - // }) - // } - // return Promise.reject('error') - // } else { - // return response.data - // } - // }, + response => { + const res = response.data + if (res.code !== 20000) { + Message({ + message: res.message, + type: 'error', + duration: 5 * 1000 + }) + // 50008:非法的token; 50012:其他客户端登录了; 50014:Token 过期了; + if (res.code === 50008 || res.code === 50012 || res.code === 50014) { + // 请自行在引入 MessageBox + // import { Message, MessageBox } from 'element-ui' + MessageBox.confirm('你已被登出,可以取消继续留在该页面,或者重新登录', '确定登出', { + confirmButtonText: '重新登录', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + store.dispatch('user/resetToken').then(() => { + location.reload() // 为了重新实例化vue-router对象 避免bug + }) + }) + } + return Promise.reject('error') + } else { + return res + } + }, error => { console.log('err' + error) // for debug Message({