From cba25fbcd73aab004797447a46c94faa69b205c4 Mon Sep 17 00:00:00 2001
From: 劉鈞霖 <benson@gmail.com>
Date: 星期二, 30 十一月 2021 13:30:35 +0800
Subject: [PATCH] [ Fix ] 修正上個commit 應當確認關閉後才 reload 頁面

---
 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..52b6218 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{
+  if(!_.includes(notRequireInterceptorErrorUrl,error.config.url)){
+    switch (error.response.status) {
+      case 401:
+        ErrorMessageBox('���暹��').then(()=>{
+          location.href='/';
+          window.$nuxt.$store.commit('localStorage/storageClear');
+        });
+        break;
+      default:
+        ErrorMessageBox();
+        break;
+    }
+
+  }
+};

--
Gitblit v1.8.0