From a7b7bc7f3a29dd6d435ff3320211e7edbba81bdf Mon Sep 17 00:00:00 2001 From: 劉鈞霖 <benson@gmail.com> Date: 星期三, 01 十二月 2021 11:34:15 +0800 Subject: [PATCH] [ Update ] : 修正錯誤訊息 css ,新增顧問登入查看帳號資訊 --- PAMapp/assets/ts/api/share.ts | 66 +++++++++++++++++++++++++++------ 1 files changed, 54 insertions(+), 12 deletions(-) diff --git a/PAMapp/assets/ts/api/share.ts b/PAMapp/assets/ts/api/share.ts index 680c065..cd6084e 100644 --- a/PAMapp/assets/ts/api/share.ts +++ b/PAMapp/assets/ts/api/share.ts @@ -1,18 +1,60 @@ -import axios from 'axios'; import { AxiosRequestConfig, AxiosError, AxiosResponse } from 'axios'; +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 -}) - -service.interceptors.request.use(function (config: AxiosRequestConfig) { - return config; -}, function (error: AxiosError) { - return Promise.reject(error); + baseURL: process.env.BASE_URL, + withCredentials: true }); -service.interceptors.response.use(function (response: AxiosResponse) { - return response; -}, function (error: AxiosError) { +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(); + showErrorMessageBox(error) return Promise.reject(error); -}); \ No newline at end of file + } +); + +function loadingStart(): void { + window.$nuxt.$loading.start(); +}; + +function loadingFinish(): void { + window.$nuxt.$loading.finish(); +}; + +function showErrorMessageBox(error:any):void{ + // console.log('error', error, error.response); + if(!_.includes(notRequireInterceptorErrorUrl,error.config.url)){ + switch (error.response.status) { + case 401: + Promise.all([ErrorMessageBox('���暹��'),window.$nuxt.$store.dispatch('localStorage/actionStorageClear')]).then(()=>{ + location.href='/'; + }); + break; + + default: + ErrorMessageBox('', error); + break; + } + } +}; -- Gitblit v1.8.0