|
|
@@ -0,0 +1,68 @@ |
|
|
|
import axios from '@/utils/request' |
|
|
|
|
|
|
|
|
|
|
|
const service = axios.create({ |
|
|
|
baseURL: process.env.VUE_APP_BASE_URL, |
|
|
|
timeout: 5000 |
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
service.interceptors.request.use( |
|
|
|
config => { |
|
|
|
if (store.getters.token) { |
|
|
|
config.headers['X-Token'] = getToken() |
|
|
|
} |
|
|
|
return config |
|
|
|
}, |
|
|
|
error => { |
|
|
|
return Promise.reject(error) |
|
|
|
} |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
// response interceptor |
|
|
|
service.interceptors.response.use( |
|
|
|
response => { |
|
|
|
const res = response.data |
|
|
|
console.log(res.msg, 'msg') |
|
|
|
// if the custom code is not 20000, it is judged as an error. |
|
|
|
if (res.code !== 0) { |
|
|
|
Message({ |
|
|
|
message: res.message || 'Error', |
|
|
|
type: 'error', |
|
|
|
duration: 5 * 1000 |
|
|
|
}) |
|
|
|
if (res.code === 50008 || res.code === 50012 || res.code === 50014) { |
|
|
|
console.log(res.code, 'res code3') |
|
|
|
// to re-login |
|
|
|
MessageBox.confirm( |
|
|
|
'You have been logged out, you can cancel to stay on this page, or log in again', |
|
|
|
'Confirm logout', |
|
|
|
{ |
|
|
|
confirmButtonText: 'Re-Login', |
|
|
|
cancelButtonText: 'Cancel', |
|
|
|
type: 'warning' |
|
|
|
} |
|
|
|
).then(() => { |
|
|
|
store.dispatch('user/resetToken').then(() => { |
|
|
|
location.reload() |
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
return Promise.reject(new Error(res.message || 'Error')) |
|
|
|
} else { |
|
|
|
return res |
|
|
|
} |
|
|
|
}, |
|
|
|
error => { |
|
|
|
console.log('err' + error) // for debug |
|
|
|
Message({ |
|
|
|
message: error.message, |
|
|
|
type: 'error', |
|
|
|
duration: 5 * 1000 |
|
|
|
}) |
|
|
|
return Promise.reject(error) |
|
|
|
} |
|
|
|
) |
|
|
|
|
|
|
|
export default service |