From 202f69ff07a2840a9746cda72361f0f67a20a85a Mon Sep 17 00:00:00 2001
From: wayne <wayne8692wayne8692@gmail.com>
Date: 星期二, 30 十一月 2021 19:47:10 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

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

diff --git a/PAMapp/assets/ts/api/share.ts b/PAMapp/assets/ts/api/share.ts
index 12fa904..6e92bac 100644
--- a/PAMapp/assets/ts/api/share.ts
+++ b/PAMapp/assets/ts/api/share.ts
@@ -1,31 +1,61 @@
+import { AxiosRequestConfig, AxiosError, AxiosResponse } from 'axios';
+import ErrorMessageBox from '../errorService';
 import axios from 'axios';
-import { AxiosRequestConfig, AxiosError, AxiosResponse } 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(function (config: AxiosRequestConfig) {
-  loadingStart();
+service.interceptors.request.use(
+  (config:AxiosRequestConfig)=>{
+    loadingStart();
     return config;
-}, function (error: AxiosError) {
-  loadingFinish();
-    return Promise.reject(error);
-});
+  }
+);
 
-service.interceptors.response.use(function (response: AxiosResponse) {
-  loadingFinish();
-    return response;
-}, function (error: AxiosError) {
-  loadingFinish();
+service.interceptors.response.use(
+  (response:AxiosResponse)=>{
+    loadingFinish();
+    return response;  // maybe can use response.data
+  },
+  (error:AxiosError)=>{
+    loadingFinish();
+    showErrorMessageBox(error)
     return Promise.reject(error);
-});
+  }
+);
 
 function loadingStart(): void {
-  setTimeout(() => {
     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:
+        ErrorMessageBox('���暹��').then(()=>{
+          window.$nuxt.$store.commit('localStorage/storageClear');
+          location.href='/';
+        });
+        break;
+      default:
+        ErrorMessageBox('', error);
+        break;
+    }
+
+  }
+};

--
Gitblit v1.8.0