| | |
| | | import axios from 'axios'; |
| | | import { AxiosRequestConfig, AxiosError, AxiosResponse } from 'axios'; |
| | | import { MessageBox } from 'element-ui'; |
| | | import ErrorMessageBox from '../errorService'; |
| | | import axios from 'axios'; |
| | | import _ from 'lodash'; |
| | | |
| | | const notRequireInterceptorErrorUrl=[ |
| | | '/otp/verify', |
| | | '/eService/authenticate', |
| | | '/login/validate/get_img_code', |
| | | '/login/validate/verify_img_code', |
| | | ]; |
| | | |
| | | export const service = axios.create({ |
| | | baseURL: process.env.BASE_URL, |
| | | withCredentials: true |
| | | }) |
| | | baseURL: process.env.BASE_URL, |
| | | withCredentials: true |
| | | }); |
| | | |
| | | service.interceptors.request.use( |
| | | (config:AxiosRequestConfig)=>{ |
| | |
| | | }, |
| | | (error:AxiosError)=>{ |
| | | loadingFinish(); |
| | | if (error.config.url !== '/otp/verify') { |
| | | openErrorMessage(); |
| | | } |
| | | showErrorMessageBox(error) |
| | | 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, |
| | | }); |
| | | } |
| | | function showErrorMessageBox(error:AxiosError):void{ |
| | | if(!_.includes(notRequireInterceptorErrorUrl,error.config.url)){ |
| | | ErrorMessageBox(); |
| | | } |
| | | }; |