From 3fae583242df9d3c6599b4c0ff350cca0d66a061 Mon Sep 17 00:00:00 2001
From: 劉鈞霖 <benson@gmail.com>
Date: 星期二, 30 十一月 2021 13:06:11 +0800
Subject: [PATCH] [ Update ] 修正除了登入 api 以外 401 錯誤訊息並清掉 localStorage

---
 PAMapp/assets/ts/api/share.ts |   50 +++++++++++++++++++++++++++++++-------------------
 1 files changed, 31 insertions(+), 19 deletions(-)

diff --git a/PAMapp/assets/ts/api/share.ts b/PAMapp/assets/ts/api/share.ts
index 3ded86e..fe55bb2 100644
--- a/PAMapp/assets/ts/api/share.ts
+++ b/PAMapp/assets/ts/api/share.ts
@@ -1,10 +1,20 @@
-import axios from 'axios';
 import { AxiosRequestConfig, AxiosError, AxiosResponse } from 'axios';
-import { MessageBox } from 'element-ui';
+import ErrorMessageBox from '../errorService';
+import LocalStorage from '~/store/localStorage';
+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
-})
+  baseURL: process.env.BASE_URL,
+  withCredentials: true
+});
 
 service.interceptors.request.use(
   (config:AxiosRequestConfig)=>{
@@ -20,28 +30,30 @@
   },
   (error:AxiosError)=>{
     loadingFinish();
-    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,
-  });
-}
\ No newline at end of file
+function showErrorMessageBox(error:any):void{
+  if(!_.includes(notRequireInterceptorErrorUrl,error.config.url)){
+    switch (error.response.status) {
+      case 401:
+        ErrorMessageBox('���暹��');
+        window.$nuxt.$store.commit('localStorage/storageClear');
+        break;
+      default:
+        ErrorMessageBox();
+        break;
+    }
+
+  }
+};

--
Gitblit v1.8.0