焦怡璇 1 рік тому
батько
коміт
a9d17923dd

+ 1 - 1
heartvoice-app/src/app/review-display/review-display.component.html

@@ -7,7 +7,7 @@
 <ion-content *ngIf="!loading; else loadingTemplate">
   <ion-card *ngFor="let review of reviews">
     <ion-card-header>
-      <ion-card-title>{{ review.username }}</ion-card-title>
+      <ion-card-title>{{ review.get('username') }}</ion-card-title>
     </ion-card-header>
     <ion-card-content>
       <p>评论:</p>

+ 25 - 19
heartvoice-app/src/app/review-display/review-display.component.ts

@@ -1,5 +1,5 @@
 import { Component, OnInit ,ViewEncapsulation} from '@angular/core';
-import { CloudObject, CloudQuery } from 'src/lib/ncloud';
+import { CloudObject, CloudQuery} from 'src/lib/ncloud';
 import { IonicModule } from '@ionic/angular';
 import { CommonModule } from '@angular/common';
 import { Router } from '@angular/router';
@@ -19,6 +19,7 @@ export interface Review extends CloudObject {
     imports: [IonicModule, CommonModule, RatingStarComponent],
 })
 export class ReviewDisplayComponent implements OnInit {
+
     reviews: Array<Review> = []; // 使用新的 Review 接口
     loading: boolean = true; // 添加一个加载状态
 
@@ -30,6 +31,11 @@ export class ReviewDisplayComponent implements OnInit {
     }
 
     async loadReviews() {
+        
+    
+
+
+
         this.loading = true; // 开始加载
         let query = new CloudQuery("Review");
         query.include('user'); // 加载关联的 _User 数据
@@ -38,25 +44,25 @@ export class ReviewDisplayComponent implements OnInit {
             this.reviews = await query.find() as Array<Review>;
             console.log(this.reviews); // 输出评论列表,检查每个评论的结构
 
-            // 遍历评论列表,获取每个评论的用户信息
-            for (const review of this.reviews) {
-                const user = review.get('user'); // 获取 user 对象
-                console.log(user); // 检查 user 的内容
+        //     // 遍历评论列表,获取每个评论的用户信息
+        //     for (const review of this.reviews) {
+        //         const user = review.get('user'); // 获取 user 对象
+        //         console.log(user); // 检查 user 的内容
                 
-                if (user) {
-                    // 直接访问 user 对象的 username 属性
-                    review.username = user.username; // 获取 username
-                } else {
-                    review.username = '匿名用户'; // 如果没有用户信息,设置为默认值
-                }
-            }
-
-            console.log(this.reviews); // 输出包含用户名的评论列表
-        } catch (error) {
-            console.error('加载评论时出错:', error);
-        } finally {
-            this.loading = false; // 加载完成
-        }
+        //         if (user) {
+        //             // 直接访问 user 对象的 username 属性
+        //             review.username = user.username; // 获取 username
+        //         } else {
+        //             review.username = '匿名用户'; // 如果没有用户信息,设置为默认值
+        //         }
+        //     }
+
+             console.log(this.reviews); // 输出包含用户名的评论列表
+         } catch (error) {
+             console.error('加载评论时出错:', error);
+         } finally {
+             this.loading = false; // 加载完成
+         }
     }
 
     // 跳转到评价页面的函数

+ 63 - 45
heartvoice-app/src/app/review/review.component.ts

@@ -1,71 +1,89 @@
-import { Component,OnInit } from '@angular/core';
+import { Component, OnInit } from '@angular/core';
 import { ExploreContainerComponent } from '../explore-container/explore-container.component';
 import { EditRatingStarComponent } from '../edit-rating-star/edit-rating-star.component';
 import { IonicModule } from '@ionic/angular';
 import { CommonModule } from '@angular/common';
 import { FormsModule } from '@angular/forms'; // 导入 FormsModule
 import { Router } from '@angular/router';
-import { CloudUser,CloudObject } from 'src/lib/ncloud';
+import { CloudUser, CloudObject, Cloudmy } from 'src/lib/ncloud';
+
 @Component({
   selector: 'app-review',
   templateUrl: './review.component.html',
   styleUrls: ['./review.component.scss'],
   standalone: true,
-  imports: [ExploreContainerComponent,EditRatingStarComponent,IonicModule,CommonModule,FormsModule]
+  imports: [ExploreContainerComponent, EditRatingStarComponent, IonicModule, CommonModule, FormsModule]
 })
-export class ReviewComponent  implements OnInit {
+export class ReviewComponent implements OnInit {
+  data: any;
   userInput: string = '';
-submittedFeedback: string | null = null;
-currentScore: number = 0; // 初始分值
+  submittedFeedback: string | null = null;
+  currentScore: number = 0; // 初始分值
 
-handleScoreChange(newScore: number) {
-  this.currentScore = newScore;
-  console.log('新分值:', newScore); // 处理分值变化
-}
+  handleScoreChange(newScore: number) {
+    this.currentScore = newScore;
+    console.log('新分值:', newScore); // 处理分值变化
+  }
 
-submitFeedback() {
-  this.submittedFeedback = this.userInput;
-  console.log(this.userInput); // 打印输入框的数据
-  
-  let consult = new CloudObject("Review");
-  // 设置聊天记录的基本信息
-  let now = new Date();
-  let currentUser = new CloudUser();
-  let dateStr = `${now.getFullYear()}-${now.getMonth() + 1}-${now.getDate()}`;
-  
-  // 对象权限的精确制定
-  let ACL: any = {
-    "*": { read: true, write: true }
-  };
+  async submitFeedback() { // 将此方法声明为 async
+    this.submittedFeedback = this.userInput;
+    console.log(this.userInput); // 打印输入框的数据
 
-  consult.set({
-    user: currentUser.toPointer(),
-    feedbackContent: this.userInput, 
-    createdAt: dateStr, // 可以加上创建时间
-    star: this.currentScore,
+    let currentUser = new CloudUser();
+    const userId = currentUser.toPointer();
 
+    // 查询 User 表
+    const quer = new Cloudmy('_User');
+    quer.equalTo('objectId', userId);
 
-    // ACL: ACL
-  });
+    try {
+      const latestuser = await quer.first(); // 等待 Promise 解析
 
-  // 调用 save 方法来保存数据
-  consult.save().then(() => {
-    console.log('反馈保存成功');
-    this.userInput = ''; // 清空输入框
-    this.router.navigate(['/tabs/review-display']); // 跳转到显示页面
-  }).catch((error) => {
-    console.error('保存反馈时出错:', error);
-  });
+      if (latestuser && latestuser.username) {
+        this.data = latestuser.username;
+        console.log('用户:', this.data);
+      } else {
+        console.log('没有找到 用户');
+      }
+    } catch (error) {
+      console.error('查询_User时出错:', error);
+    }
 
-      this.userInput = ''; // 清空输入框
-  this.router.navigate(['/tabs/review-display']);
-}
+    let consult = new CloudObject("Review");
+    // 设置聊天记录的基本信息
+    let now = new Date();
+    let dateStr = `${now.getFullYear()}-${now.getMonth() + 1}-${now.getDate()}`;
 
+    // 对象权限的精确制定
+    let ACL: any = {
+      "*": { read: true, write: true }
+    };
 
+    consult.set({
+      user: currentUser.toPointer(),
+      feedbackContent: this.userInput,
+      createdAt: dateStr, // 可以加上创建时间
+      star: this.currentScore,
+      username:this.data,
+      // ACL: ACL
+    });
 
-  ngOnInit() {}
+    // 调用 save 方法来保存数据
+    consult.save().then(() => {
+      console.log('反馈保存成功');
+      this.userInput = ''; // 清空输入框
+      this.router.navigate(['/tabs/review-display']); // 跳转到显示页面
+    }).catch((error) => {
+      console.error('保存反馈时出错:', error);
+    });
 
-  constructor(private router: Router) {}
+    this.userInput = ''; // 清空输入框
+    this.router.navigate(['/tabs/review-display']);
+  }
 
+  ngOnInit() {
+    // 初始化逻辑
+  }
 
-}
+  constructor(private router: Router) {}
+}

+ 2 - 1
heartvoice-app/src/app/tab1/tab1.page.scss

@@ -97,7 +97,8 @@ ion-button:active {
 /* 响应式设计 */
 @media (max-width: 576px) {
   h2 {
-    font-size: 1.2rem; /* 小屏幕主标题字体大小 */
+    font-size: 1.5rem; /* 小屏幕主标题字体大小 */
+    font-family: "宋体";
   }
 
   p {

+ 1 - 1
heartvoice-app/src/app/tab3/tab3.page.scss

@@ -4,7 +4,7 @@ ion-toolbar {
   ion-title{
     font-family: "宋体";
     font-weight: bold;
-    font-size: 20px;
+    font-size: 18px;
     text-align: center; /* 文本居中 */
     color: #333; /* 字体颜色 */
   }