From b076f355b7b438b45e430cbd1c441ef5ff34b6fe Mon Sep 17 00:00:00 2001
From: fengxiang <110431245@qq.com>
Date: Mon, 28 May 2018 17:14:19 +0800
Subject: [PATCH] 登录过期相应
---
src/app/core/net/default.interceptor.ts | 35 +++++++++++++++++++++++++++++------
1 files changed, 29 insertions(+), 6 deletions(-)
diff --git a/src/app/core/net/default.interceptor.ts b/src/app/core/net/default.interceptor.ts
index cd954e0..e91ae6e 100644
--- a/src/app/core/net/default.interceptor.ts
+++ b/src/app/core/net/default.interceptor.ts
@@ -7,22 +7,44 @@
import { of } from 'rxjs/observable/of';
import { ErrorObservable } from 'rxjs/observable/ErrorObservable';
import { mergeMap, catchError } from 'rxjs/operators';
-import { NzMessageService } from 'ng-zorro-antd';
+import { NzMessageService, NzModalService } from 'ng-zorro-antd';
import { _HttpClient } from '@delon/theme';
import { environment } from '@env/environment';
import { LoginService } from '@business/services/http/login.service';
+import { Subject } from 'rxjs/Subject';
+import { error } from 'protractor';
+import { debug } from 'util';
/**
* ������HTTP������������������������������ `app.module.ts`
*/
@Injectable()
export class DefaultInterceptor implements HttpInterceptor {
- constructor(private injector: Injector) {}
+ private unLoginHandle: Subject<HttpErrorResponse> = new Subject<HttpErrorResponse>();
+ constructor(private injector: Injector) {
+ this.unLoginHandle.debounceTime(100).subscribe(event => {
+ if (!!event.error) {
+ let errorMsg = '';
+ const erroCode = <number>event.error['errorCode'];
+ switch (erroCode) {
+ case 10: errorMsg = '���������,���������'; break;
+ case 11: errorMsg = '������������,���������������'; break;
+ case 12: errorMsg = '������������,������������������'; break;
+ }
+ this.model.info({
+ title: errorMsg,
+ onOk: () => this.goTo('/passport/login')
+ });
+ }
+ });
+ }
get msg(): NzMessageService {
return this.injector.get(NzMessageService);
}
-
+ get model(): NzModalService {
+ return this.injector.get(NzModalService);
+ }
private goTo(url: string) {
setTimeout(() => this.injector.get(Router).navigateByUrl(url));
}
@@ -45,7 +67,8 @@
// }
break;
case 401: // ������������������
- this.goTo('/passport/login');
+ // this.goTo('/passport/login');
+ this.unLoginHandle.next(<HttpErrorResponse>event);
break;
case 403:
case 404:
@@ -69,9 +92,9 @@
}
// ���������������������������
let url = req.url;
- if (!url.startsWith('https://') && !url.startsWith('http://')&& !url.startsWith('assets')) {
+ if (!url.startsWith('https://') && !url.startsWith('http://') && !url.startsWith('assets')) {
// url = environment.SERVER_URL + url;
- url = environment.SERVER_BASH_URL+url;
+ url = environment.SERVER_BASH_URL + url;
}
const newReq = req.clone({
--
Gitblit v1.8.0