modal-user-edit.component.ts 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. import { Input, OnInit } from '@angular/core';
  2. import { Component } from '@angular/core';
  3. import { ModalController } from '@ionic/angular';
  4. import { IonHeader, IonToolbar, IonTitle, IonContent, IonCard, IonCardContent, IonButton, IonCardHeader, IonCardTitle, IonCardSubtitle, IonInput, IonItem, IonLabel, IonList } from '@ionic/angular/standalone';
  5. import { CloudUser } from 'src/lib/ncloud';
  6. import { CommonModule } from '@angular/common'; // 导入 CommonModule
  7. @Component({
  8. selector: 'app-modal-user-edit',
  9. templateUrl: './modal-user-edit.component.html',
  10. styleUrls: ['./modal-user-edit.component.scss'],
  11. standalone: true,
  12. imports: [
  13. IonHeader,
  14. IonToolbar,
  15. IonTitle,
  16. IonContent,
  17. IonCard,
  18. IonCardContent,
  19. IonButton,
  20. IonCardHeader,
  21. IonCardTitle,
  22. IonCardSubtitle,
  23. IonInput,
  24. IonItem,
  25. IonLabel,
  26. IonList,
  27. IonCard,
  28. CommonModule // 添加 CommonModule
  29. ],
  30. })
  31. export class ModalUserEditComponent implements OnInit {
  32. currentUser:CloudUser|undefined
  33. userData:any = {}
  34. userDataChange(key:string,ev:any){
  35. let value = ev?.detail?.value
  36. if(value){
  37. this.userData[key] = value
  38. }
  39. }
  40. constructor(private modalCtrl:ModalController) {
  41. this.currentUser = new CloudUser();
  42. this.userData = this.currentUser.data;
  43. }
  44. ngOnInit() {}
  45. async save() {
  46. Object.keys(this.userData).forEach(key => {
  47. if (key === "age") {
  48. this.userData[key] = Number(this.userData[key]);
  49. }
  50. });
  51. this.currentUser?.set(this.userData);
  52. // 这里使用 PUT 方法更新用户信息
  53. const updatedUser = await this.currentUser?.save();
  54. if (updatedUser) {
  55. this.modalCtrl.dismiss(updatedUser, "confirm");
  56. } else {
  57. console.error("Failed to save user data");
  58. }
  59. }
  60. cancel(){
  61. this.modalCtrl.dismiss(null,"cancel")
  62. }
  63. }
  64. export async function openUserEditModal(modalCtrl:ModalController):Promise<CloudUser|null>{
  65. const modal = await modalCtrl.create({
  66. component: ModalUserEditComponent,
  67. breakpoints:[0.7,1.0],
  68. initialBreakpoint:0.7
  69. });
  70. modal.present();
  71. const { data, role } = await modal.onWillDismiss();
  72. if (role === 'confirm') {
  73. return data;
  74. }
  75. return null
  76. }