user-evaluate.component.ts 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import { Component, OnInit } from '@angular/core';
  2. import { ModalController } from '@ionic/angular/standalone';
  3. import { IonButton, IonCard, IonCardContent, IonCardHeader, IonCardSubtitle, IonCardTitle,
  4. IonContent, IonHeader, IonInput, IonItem, IonLabel, IonSegment, IonSegmentButton,
  5. IonTitle, IonToolbar } from '@ionic/angular/standalone';
  6. import { CloudUser } from 'src/lib/ncloud';
  7. import { CloudEvaluate } from 'src/lib/cloud.evaluate';
  8. @Component({
  9. selector: 'app-user-evaluate',
  10. templateUrl: './user-evaluate.component.html',
  11. styleUrls: ['./user-evaluate.component.scss'],
  12. standalone: true,
  13. imports: [IonHeader, IonToolbar, IonTitle, IonContent,
  14. IonCard,IonCardContent,IonButton,IonCardHeader,IonCardTitle,IonCardSubtitle,
  15. IonInput,IonItem,
  16. IonSegment,IonSegmentButton,IonLabel
  17. ],
  18. })
  19. export class UserEvaluateComponent implements OnInit {
  20. currentUser: CloudUser | undefined;
  21. userData: any = {
  22. content: '',
  23. rating: 0,
  24. };
  25. constructor(private modalCtrl: ModalController) {
  26. this.currentUser = new CloudUser();
  27. }
  28. userDataChange(key: string, ev: any) {
  29. let value = ev?.detail?.value;
  30. if (value) {
  31. this.userData[key] = value;
  32. }
  33. }
  34. async save() {
  35. // 确保 currentUser 是有效的 CloudUser 实例
  36. if (!this.currentUser) {
  37. console.error('当前用户未登录或未定义');
  38. return; // 退出保存方法
  39. }
  40. const cloudEvaluate = new CloudEvaluate(this.userData, this.currentUser, this.modalCtrl);
  41. const result = await cloudEvaluate.save(); // 调用 CloudEvaluate 的 save 方法
  42. if (!result) {
  43. console.error('评价保存失败');
  44. }
  45. }
  46. cancel() {
  47. this.modalCtrl.dismiss(null, "cancel");
  48. }
  49. ngOnInit() {}
  50. }
  51. export async function openUserEvaModal(modalCtrl:ModalController):Promise<CloudUser|null>{
  52. const modal = await modalCtrl.create({
  53. component: UserEvaluateComponent,
  54. breakpoints:[0.5,0.7],
  55. initialBreakpoint:0.5
  56. });
  57. modal.present();
  58. const { data, role } = await modal.onWillDismiss();
  59. if (role === 'confirm') {
  60. return data;
  61. }
  62. return null
  63. }