post-detail.component.html 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. <!--头部-->
  2. <app-custom-header [param]="['帖子详情',' ']"></app-custom-header>
  3. <!--正文内容-->
  4. <ion-content (click)="notcomment()">
  5. <!--帖子-->
  6. <div class="post">
  7. <div class="post-header">
  8. <div class="avatar">
  9. <img src="{{post?.get('UserID')?.avatar}}" alt="User Avatar" class="avatar-image">
  10. </div>
  11. <div class="user-info">
  12. <span class="username">{{ post?.get('UserID')?.name }}</span>
  13. <!--关注按钮-->
  14. <div [ngClass]="isFollowed ? 'fan-button' : 'follow-button'" (click)="toggleFollow()">
  15. <div *ngIf="!isFollowed" class="distance">+</div>
  16. <span *ngIf="!isFollowed">关注</span>
  17. <span *ngIf="isFollowed">已关注</span>
  18. </div>
  19. </div>
  20. </div>
  21. <h2 class="post-title">{{post?.get('title')}}</h2>
  22. <!--标签-->
  23. <div class="tag-container">
  24. <div class="tag" *ngFor="let tag of post?.data?.tag">
  25. <ion-icon name="bookmark-outline" class="tagpicture"></ion-icon>{{tag}}
  26. </div>
  27. </div>
  28. <p class="post-content-text">{{post?.get('content')}}</p> <!--内容-->
  29. <div class="image-gallery">
  30. <img src="{{image}}" alt="Post Image" class="post-image" *ngFor="let image of post?.data?.image">
  31. </div>
  32. </div>
  33. <!-- 评论区域 -->
  34. <div class="comment-section">
  35. <h3 class="comment-title">全部评论({{comments.length}})</h3>
  36. <div *ngFor="let comment of comments" class="comment">
  37. <div class="comment-box">
  38. <div class="comment-left">
  39. <div class="comment-avatar">
  40. <img src="{{ comment.get('UserID')?.avatar }}" alt="User Avatar" class="comment-avatar-image">
  41. </div>
  42. <span class="floor">{{comments.indexOf(comment) + 1}}L</span>
  43. </div>
  44. <div class="comment-middle">
  45. <div class="comment-content">
  46. <span class="comment-username">{{ comment.get('UserID')?.name }}</span>
  47. <p class="comment-text">{{ comment.get('content') }}</p>
  48. <span class="time-ago">{{ formatTimeAgo(comment.createdAt) }}</span>
  49. </div>
  50. </div>
  51. <div class="comment-right" (click)="toggleLike(comment)">
  52. <ion-icon name="heart-outline" class="like-icon" style=" margin-right:8px"
  53. [name]="comment.commentisLiked ? 'heart' : 'heart-outline'"
  54. [style.color]="comment.commentisLiked ? 'red' : 'black'" ></ion-icon>
  55. <span class="like-count">{{ comment.data['like'] }}</span>
  56. </div>
  57. </div>
  58. </div>
  59. </div>
  60. </ion-content>
  61. <!-- 表情模拟框 -->
  62. <ion-modal [isOpen]="isEmojiPickerOpen" (didDismiss)="closeEmojiPicker()" [initialBreakpoint]="0.71" [breakpoints]="[0, 0.25,0.50,0.71]" handleBehavior="cycle">
  63. <ng-template>
  64. <ion-content class="emoji-picker">
  65. <div class="emoji-container">
  66. <div *ngFor="let emoji of emojis" (click)="addEmoji(emoji)" class="emoji-buttons"> <!-- 表情按钮 -->
  67. {{ emoji }}
  68. </div>
  69. </div>
  70. </ion-content>
  71. </ng-template>
  72. </ion-modal>
  73. <!-- 评论输入框 -->
  74. <ion-footer *ngIf="isfooter">
  75. <div class="comment-input-container">
  76. <ion-icon name="share-social-outline" class="share-icon"></ion-icon>
  77. <ion-textarea [(ngModel)]="newComment" placeholder="写个评论互动下~" class="comment-input" (click)="tocomment()"></ion-textarea>
  78. <div class="comment-buttons">
  79. <ion-button (click)="tocomment()" class="comment-button" >
  80. <ion-icon name="chatbubble-ellipses-outline" style="font-size: 30px; margin-right:8px"></ion-icon>
  81. <span>{{comments.length}}</span>
  82. </ion-button>
  83. <ion-icon class="like-button" [name]="post?.postisLiked ? 'heart' : 'heart-outline'"
  84. [style.color]="post?.postisLiked ? 'red' : 'black'" (click)="toLike()"></ion-icon>
  85. <span>{{post?.data['like']}}</span>
  86. </div>
  87. </div>
  88. </ion-footer>
  89. <ion-footer *ngIf="!isfooter">
  90. <div class="comment-input-container">
  91. <ion-textarea [(ngModel)]="newComment" placeholder="写个评论互动下~" class="comment-input1" >
  92. <div fill="clear" (click)="openEmojiPicker()" class="emoji-button">
  93. <ion-icon name="happy-outline" style="color:#ccc; font-size: 40px;" class="emoji" slot="end"></ion-icon> <!--表情符号-->
  94. </div>
  95. </ion-textarea>
  96. <ion-button [ngClass]="newComment.trim()? 'send-button1':'send-button'" (click)="submitComment()">
  97. 发送
  98. </ion-button>
  99. </div>
  100. </ion-footer>