import axios from 'axios';
|
import { AxiosRequestConfig, AxiosError, AxiosResponse } from 'axios';
|
import { MessageBox } from 'element-ui';
|
|
export const service = axios.create({
|
baseURL: process.env.BASE_URL,
|
withCredentials: true
|
})
|
|
service.interceptors.request.use(
|
(config:AxiosRequestConfig)=>{
|
loadingStart();
|
return config;
|
}
|
);
|
|
service.interceptors.response.use(
|
(response:AxiosResponse)=>{
|
loadingFinish();
|
return response; // maybe can use response.data
|
},
|
(error:AxiosError)=>{
|
loadingFinish();
|
if (error.config.url !== '/otp/verify') {
|
openErrorMessage();
|
}
|
return Promise.reject(error);
|
}
|
);
|
|
|
|
function loadingStart(): void {
|
window.$nuxt.$loading.start();
|
}
|
|
function loadingFinish(): void {
|
window.$nuxt.$loading.finish();
|
}
|
|
function openErrorMessage():void{
|
MessageBox({
|
message: '系統發生錯誤',
|
showClose:false,
|
showConfirmButton:true,
|
confirmButtonText:'確認',
|
customClass:'pam-message-box',
|
closeOnClickModal:false,
|
});
|
}
|