| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- import { Component } from '@angular/core';
- import { IonContent, IonHeader, IonToolbar, IonTitle, IonButtons, IonButton,
- IonItem, IonLabel, IonInput, IonSegment, IonSegmentButton,
- IonCard, IonCardHeader, IonCardTitle, IonCardSubtitle,
- IonCardContent } from '@ionic/angular/standalone';
- import { ModalController, AlertController } from '@ionic/angular/standalone';
- import { FormsModule } from '@angular/forms';
- import { CommonModule } from '@angular/common';
- import { CloudUser } from '../../ncloud';
- import * as Parse from 'parse';
- @Component({
- selector: 'app-modal-user-login',
- templateUrl: './modal-user-login.component.html',
- styleUrls: ['./modal-user-login.component.scss'],
- standalone: true,
- imports: [
- CommonModule,
- FormsModule,
- IonContent,
- IonHeader,
- IonToolbar,
- IonTitle,
- IonButtons,
- IonButton,
- IonItem,
- IonLabel,
- IonInput,
- IonSegment,
- IonSegmentButton,
- IonCard,
- IonCardHeader,
- IonCardTitle,
- IonCardSubtitle,
- IonCardContent
- ]
- })
- export class ModalUserLoginComponent {
- username: string = '';
- password: string = '';
- password2: string = '';
- type: 'login' | 'signup' = 'login';
- constructor(
- private modalCtrl: ModalController,
- private alertController: AlertController
- ) {}
- typeChange(event: any) {
- this.type = event.detail.value;
- }
- usernameChange(event: any) {
- this.username = event.detail.value;
- }
- passwordChange(event: any) {
- this.password = event.detail.value;
- }
- password2Change(event: any) {
- this.password2 = event.detail.value;
- }
- async login() {
- if (!this.username || !this.password) {
- await this.showAlert('提示', '请输入完整的用户名和密码');
- return;
- }
- try {
- const user = await Parse.User.logIn(this.username, this.password);
- if (user) {
- await Parse.User.become(user.getSessionToken());
- const cloudUser = new CloudUser();
- cloudUser.setParseObject(user);
- this.modalCtrl.dismiss(cloudUser, "confirm");
- } else {
- await this.showAlert('登录失败', '用户名或密码错误');
- }
- } catch (error) {
- console.error("Login error:", error);
- await this.showAlert('错误', '登录过程中发生错误,请稍后重试');
- }
- }
- async signup() {
- if (!this.username || !this.password || !this.password2) {
- await this.showAlert('提示', '请输入完整信息');
- return;
- }
- if (this.password !== this.password2) {
- await this.showAlert('提示', '两次输入的密码不一致');
- return;
- }
- try {
- const user = new Parse.User();
- user.set("username", this.username);
- user.set("password", this.password);
- await user.signUp();
- const cloudUser = new CloudUser();
- cloudUser.setParseObject(user);
- this.modalCtrl.dismiss(cloudUser, "confirm");
- } catch (error) {
- console.error("Signup error:", error);
- await this.showAlert('错误', '注册失败,请稍后重试');
- }
- }
- private async showAlert(header: string, message: string) {
- const alert = await this.alertController.create({
- header,
- message,
- buttons: ['确定']
- });
- await alert.present();
- }
- }
- // 导出打开模态框的函数
- export async function openUserLoginModal(modalController: ModalController) {
- const modal = await modalController.create({
- component: ModalUserLoginComponent
- });
- await modal.present();
- return modal.onDidDismiss();
- }
|