modal-user-login.component.ts 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import { Component, OnInit } from '@angular/core';
  2. import { IonicModule } from '@ionic/angular';
  3. import { ModalController } from '@ionic/angular/standalone';
  4. import { CloudUser } from 'src/lib/ncloud';
  5. import { addIcons } from 'ionicons';
  6. import { arrowBackOutline, logoWechat, personOutline, phonePortraitOutline } from 'ionicons/icons';
  7. import { openUserLoginMainModal } from '../modal-user-login-main/modal-user-login-main.component';
  8. addIcons({ arrowBackOutline, logoWechat, phonePortraitOutline, personOutline });
  9. @Component({
  10. selector: 'app-modal-user-login',
  11. templateUrl: './modal-user-login.component.html',
  12. styleUrls: ['./modal-user-login.component.scss'],
  13. standalone: true,
  14. imports: [IonicModule,],
  15. })
  16. export class ModalUserLoginComponent implements OnInit {
  17. constructor(private modalCtrl: ModalController) { }
  18. ngOnInit() { }
  19. goBack() {
  20. this.modalCtrl.dismiss(null, "cancel");
  21. }
  22. /**
  23. * @跳转登录方式功能函数
  24. */
  25. async goPhoneLoginPage() {
  26. const user: CloudUser | null = await openUserLoginMainModal(this.modalCtrl, 'phone');
  27. if (user?.id) {
  28. this.modalCtrl.dismiss(user, "confirm"); // 关闭主模态并返回用户
  29. } else {
  30. this.modalCtrl.dismiss(null, "cancel"); // 关闭主模态
  31. }
  32. }
  33. async goUsernameLoginPage() {
  34. console.warn("-------------------------");
  35. console.warn("即将打开loginMain模态");
  36. const user: CloudUser | null = await openUserLoginMainModal(this.modalCtrl, 'username');
  37. console.log("已接受来自loginMain的返回数据,如下:");
  38. console.log(user);
  39. if (user?.id) {
  40. console.log("即将关闭loginMain模态并返回用户");
  41. setTimeout(async () => {
  42. await this.modalCtrl.dismiss(user, "confirm");
  43. }, 500); // 延迟500毫秒
  44. } else {
  45. await this.modalCtrl.dismiss(null, "cancel"); // 关闭主模态
  46. }
  47. console.warn("模态已关闭,结束login模态流程");
  48. console.warn("-------------------------")
  49. }
  50. }
  51. export async function openUserLoginModal(modalCtrl: ModalController): Promise<CloudUser | null> {
  52. const modal = await modalCtrl.create({
  53. component: ModalUserLoginComponent,
  54. });
  55. await modal.present();
  56. const { data, role } = await modal.onWillDismiss();
  57. if (role === 'confirm') {
  58. return data;
  59. }
  60. return null;
  61. }