music.component.html 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <ion-header class="ion-no-border">
  2. <ion-toolbar>
  3. <ion-buttons slot="start">
  4. <ion-back-button defaultHref="/tabs/tab1" text=""></ion-back-button>
  5. </ion-buttons>
  6. <ion-title>音乐资讯</ion-title>
  7. </ion-toolbar>
  8. </ion-header>
  9. <ion-content>
  10. <!-- 搜索栏 -->
  11. <div class="search-container">
  12. <ion-searchbar placeholder="搜索音乐资讯" mode="ios" animated="true"></ion-searchbar>
  13. </div>
  14. <!-- 精选文章 -->
  15. <div class="featured-section">
  16. <h2 class="section-title">精选文章</h2>
  17. <div class="featured-card" *ngFor="let article of featuredArticles" (click)="openArticle(article)">
  18. <div class="featured-image">
  19. <img [src]="article.image" [alt]="article.title">
  20. <div class="featured-overlay">
  21. <div class="category-badge">{{article.category}}</div>
  22. <div class="featured-content">
  23. <h3>{{article.title}}</h3>
  24. <p>{{article.summary}}</p>
  25. </div>
  26. </div>
  27. </div>
  28. </div>
  29. </div>
  30. <!-- 最新资讯 -->
  31. <div class="latest-section">
  32. <div class="section-header">
  33. <h2 class="section-title">最新资讯</h2>
  34. <ion-button fill="clear" size="small">
  35. 查看全部
  36. <ion-icon name="chevron-forward-outline" slot="end"></ion-icon>
  37. </ion-button>
  38. </div>
  39. <div class="articles-grid">
  40. @for(article of articles; track article.id) {
  41. <div class="article-card" (click)="openArticle(article)">
  42. <div class="article-image">
  43. <img [src]="article.image" [alt]="article.title">
  44. <div class="category-tag">{{article.category}}</div>
  45. </div>
  46. <div class="article-content">
  47. <h3>{{article.title}}</h3>
  48. <p class="summary">{{article.summary}}</p>
  49. <div class="article-meta">
  50. <span class="date">
  51. <ion-icon name="calendar-outline"></ion-icon>
  52. {{article.date}}
  53. </span>
  54. <span class="views">
  55. <ion-icon name="eye-outline"></ion-icon>
  56. {{article.views}}
  57. </span>
  58. </div>
  59. </div>
  60. </div>
  61. }
  62. </div>
  63. <!-- 加载更多 -->
  64. <ion-infinite-scroll (ionInfinite)="loadMoreArticles($event)">
  65. <ion-infinite-scroll-content loadingSpinner="bubbles" loadingText="加载更多文章...">
  66. </ion-infinite-scroll-content>
  67. </ion-infinite-scroll>
  68. </div>
  69. </ion-content>