From a3a8c23b196980732a795713a5eb5fe0c7075bf9 Mon Sep 17 00:00:00 2001
From: fengxiang <110431245@qq.com>
Date: Wed, 11 Jul 2018 21:47:13 +0800
Subject: [PATCH] Revert "提交"
---
src/app/routes/passport/login/login.component.ts | 181 +++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 181 insertions(+), 0 deletions(-)
diff --git a/src/app/routes/passport/login/login.component.ts b/src/app/routes/passport/login/login.component.ts
new file mode 100644
index 0000000..f856d42
--- /dev/null
+++ b/src/app/routes/passport/login/login.component.ts
@@ -0,0 +1,181 @@
+import { SettingsService } from '@delon/theme';
+import { Component, OnDestroy, Inject, Optional } from '@angular/core';
+import { Router } from '@angular/router';
+import { FormGroup, FormBuilder, Validators } from '@angular/forms';
+import { NzMessageService, NzModalService } from 'ng-zorro-antd';
+import {
+ SocialService,
+ SocialOpenType,
+ TokenService,
+ DA_SERVICE_TOKEN,
+} from '@delon/auth';
+import { ReuseTabService } from '@delon/abc';
+import { environment } from '@env/environment';
+import { StartupService } from '@core/startup/startup.service';
+
+@Component({
+ selector: 'passport-login',
+ templateUrl: './login.component.html',
+ styleUrls: ['./login.component.less'],
+ providers: [SocialService],
+})
+export class UserLoginComponent implements OnDestroy {
+ form: FormGroup;
+ error = '';
+ type = 0;
+ loading = false;
+
+ constructor(
+ fb: FormBuilder,
+ private router: Router,
+ public msg: NzMessageService,
+ private modalSrv: NzModalService,
+ private settingsService: SettingsService,
+ private socialService: SocialService,
+ @Optional()
+ @Inject(ReuseTabService)
+ private reuseTabService: ReuseTabService,
+ @Inject(DA_SERVICE_TOKEN) private tokenService: TokenService,
+ private startupSrv: StartupService,
+ ) {
+ this.form = fb.group({
+ userName: [null, [Validators.required, Validators.minLength(5)]],
+ password: [null, Validators.required],
+ mobile: [null, [Validators.required, Validators.pattern(/^1\d{10}$/)]],
+ captcha: [null, [Validators.required]],
+ remember: [true],
+ });
+ modalSrv.closeAll();
+ }
+
+ // region: fields
+
+ get userName() {
+ return this.form.controls.userName;
+ }
+ get password() {
+ return this.form.controls.password;
+ }
+ get mobile() {
+ return this.form.controls.mobile;
+ }
+ get captcha() {
+ return this.form.controls.captcha;
+ }
+
+ // endregion
+
+ switch(ret: any) {
+ this.type = ret.index;
+ }
+
+ // region: get captcha
+
+ count = 0;
+ interval$: any;
+
+ getCaptcha() {
+ this.count = 59;
+ this.interval$ = setInterval(() => {
+ this.count -= 1;
+ if (this.count <= 0) clearInterval(this.interval$);
+ }, 1000);
+ }
+
+ // endregion
+
+ submit() {
+ this.error = '';
+ if (this.type === 0) {
+ this.userName.markAsDirty();
+ this.userName.updateValueAndValidity();
+ this.password.markAsDirty();
+ this.password.updateValueAndValidity();
+ if (this.userName.invalid || this.password.invalid) return;
+ } else {
+ this.mobile.markAsDirty();
+ this.mobile.updateValueAndValidity();
+ this.captcha.markAsDirty();
+ this.captcha.updateValueAndValidity();
+ if (this.mobile.invalid || this.captcha.invalid) return;
+ }
+ // mock http
+ this.loading = true;
+ setTimeout(() => {
+ this.loading = false;
+ if (this.type === 0) {
+ if (
+ this.userName.value !== 'admin' ||
+ this.password.value !== '888888'
+ ) {
+ this.error = `���������������������`;
+ return;
+ }
+ }
+
+ // ������������������������
+ this.reuseTabService.clear();
+ // ������Token������
+ this.tokenService.set({
+ token: '123456789',
+ name: this.userName.value,
+ email: `cipchk@qq.com`,
+ id: 10000,
+ time: +new Date(),
+ });
+ // ������������ StartupService ��������������������� User ���������������������
+ // this.startupSrv.load().then(() => this.router.navigate(['/']));
+ // ������������������
+ this.router.navigate(['/']);
+ }, 1000);
+ }
+
+ // region: social
+
+ open(type: string, openType: SocialOpenType = 'href') {
+ let url = ``;
+ let callback = ``;
+ if (environment.production)
+ callback = 'https://cipchk.github.io/ng-alain/callback/' + type;
+ else callback = 'http://localhost:4200/callback/' + type;
+ switch (type) {
+ case 'auth0':
+ url = `//cipchk.auth0.com/login?client=8gcNydIDzGBYxzqV0Vm1CX_RXH-wsWo5&redirect_uri=${decodeURIComponent(
+ callback,
+ )}`;
+ break;
+ case 'github':
+ url = `//github.com/login/oauth/authorize?client_id=9d6baae4b04a23fcafa2&response_type=code&redirect_uri=${decodeURIComponent(
+ callback,
+ )}`;
+ break;
+ case 'weibo':
+ url = `https://api.weibo.com/oauth2/authorize?client_id=1239507802&response_type=code&redirect_uri=${decodeURIComponent(
+ callback,
+ )}`;
+ break;
+ }
+ if (openType === 'window') {
+ this.socialService
+ .login(url, '/', {
+ type: 'window',
+ })
+ .subscribe(res => {
+ if (res) {
+ this.settingsService.setUser(res);
+ this.router.navigateByUrl('/');
+ }
+ });
+ } else {
+ this.socialService.login(url, '/', {
+ type: 'href',
+ });
+ }
+ }
+
+ // endregion
+
+ ngOnDestroy(): void {
+ if (this.interval$) clearInterval(this.interval$);
+ }
+}
--
Gitblit v1.8.0