From 2656c7ab687d3e3b6f704b9d87ce20ff9c805bb0 Mon Sep 17 00:00:00 2001
From: fengxiang <110431245@qq.com>
Date: Thu, 07 Jun 2018 16:02:31 +0800
Subject: [PATCH] 过时弹窗完善测试
---
src/app/core/net/default.interceptor.ts | 55 ++++++++++++++++++++++++++++---------------------------
1 files changed, 28 insertions(+), 27 deletions(-)
diff --git a/src/app/core/net/default.interceptor.ts b/src/app/core/net/default.interceptor.ts
index e1b947f..2a3a6dc 100644
--- a/src/app/core/net/default.interceptor.ts
+++ b/src/app/core/net/default.interceptor.ts
@@ -21,35 +21,36 @@
*/
@Injectable()
export class DefaultInterceptor implements HttpInterceptor {
- // private unLoginHandle: Subject<HttpErrorResponse> = new Subject<HttpErrorResponse>();
+ private unLoginHandle: Subject<HttpErrorResponse> = new Subject<HttpErrorResponse>();
constructor(private injector: Injector) {
- }
- private isExpireModelShow = false;
- private unLoginHandle(event: HttpErrorResponse) {
- if (!!event.error) {
- let errorMsg = '';
- const erroCode = !!event.error['errorCode'] ? Number.parseInt(event.error['errorCode']) : 0;
- switch (erroCode) {
- case 10: errorMsg = '���������,���������'; break;
- case 11: errorMsg = '������������,���������������'; break;
- case 12: errorMsg = '������������,������������������'; break;
- case 0: errorMsg = '���������������������������'; break;
- default: errorMsg = '������������,���������������'; break;
+ let isExpireModelShow = false;
+ this.unLoginHandle.debounceTime(1000).delay(1000).filter(
+ () => !isExpireModelShow
+ ).subscribe( (event: HttpErrorResponse) => {
+ isExpireModelShow = true;
+ if (!!event.error) {
+ let errorMsg = '';
+ const erroCode = !!event.error['errorCode'] ? Number.parseInt(event.error['errorCode']) : 0;
+ switch (erroCode) {
+ case 10: errorMsg = '���������,���������'; break;
+ case 11: errorMsg = '������������,���������������'; break;
+ case 12: errorMsg = '������������,������������������'; break;
+ case 0: errorMsg = '���������������������������'; break;
+ default: errorMsg = '������������,���������������'; break;
+ }
+ // ������refresh���������������������
+ this.loginService.clearRefreshToken();
+ this.model.info({
+ maskClosable: false,
+ title: errorMsg,
+ onOk: () => {
+ isExpireModelShow = false;
+ this.goTo('/passport/login');
+ }
+ });
}
- if (!this.isExpireModelShow) {
- this.isExpireModelShow = true;
- // ������refresh���������������������
- this.loginService.clearRefreshToken();
- this.model.info({
- title: errorMsg,
- onOk: () => {
- this.isExpireModelShow = false;
- this.goTo('/passport/login');
- }
- });
- }
- }
+ });
}
get loginService(): LoginService {
return this.injector.get<LoginService>(LoginService);
@@ -85,7 +86,7 @@
case 401: // ������������������
// this.goTo('/passport/login');
if (!this.isLoginPage) {
- this.unLoginHandle(<HttpErrorResponse>event);
+ this.unLoginHandle.next(<HttpErrorResponse>event);
}
break;
case 403:
--
Gitblit v1.8.0