tab1.page.html 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <ion-toolbar>
  2. <ion-searchbar
  3. class="custom-searchbar"
  4. placeholder="搜索食物、食谱、餐厅"
  5. show-clear-button="focus"
  6. (ionInput)="setSearchQuery($event.target.value || '')"
  7. (ionClear)="searchQuery = ''"
  8. (ionCancel)="searchQuery = ''"
  9. (ionSearch)="search()">
  10. </ion-searchbar>
  11. <ion-buttons slot="end">
  12. <ion-button (click)="search()">搜索
  13. <ion-icon slot="icon-only" name="search"></ion-icon>
  14. </ion-button>
  15. </ion-buttons>
  16. </ion-toolbar>
  17. <ion-content [fullscreen]="true">
  18. <!-- 轮播图区域 -->
  19. <div class="carousel-container" style="border-radius: 25px; margin: 5px auto;">
  20. <div class="carousel" [style.transform]="'translateX(-' + currentSlide * 100 + '%)'">
  21. <div class="slide" *ngFor="let image of images; let i = index">
  22. <img [src]="image" (click)="onImageClick(i)" style="width: 100%; height: auto;" />
  23. <!-- 显示图片对应的描述 -->
  24. <div class="description" [innerHTML]="descriptions[i]" [class.active]="i === currentSlide"></div>
  25. </div>
  26. </div>
  27. <button class="prev" (click)="prevSlide()">&#10094;</button>
  28. <button class="next" (click)="nextSlide()">&#10095;</button>
  29. <div class="dots">
  30. <span class="dot" *ngFor="let image of images; let i = index"
  31. [class.active]="i === currentSlide"
  32. (click)="goToSlide(i)"></span>
  33. </div>
  34. </div>
  35. <!-- 推荐健康建议 -->
  36. <ion-card>
  37. <ion-card-header>
  38. <ion-card-title>
  39. <ion-icon slot="start" name="leaf-outline"></ion-icon>
  40. 健康建议
  41. </ion-card-title>
  42. </ion-card-header>
  43. <ion-card-content>
  44. <div>
  45. @if(currentUser?.id){
  46. @if(!responseMsg){
  47. <p>加载中...</p>
  48. }
  49. <p>{{ responseMsg }}</p>
  50. }
  51. </div>
  52. <!-- 如果用户未登录,显示登录按钮 -->
  53. @if(!currentUser?.id){
  54. <ion-button (click)="login()" fill="outline" color="primary">
  55. 请登录后使用该功能
  56. </ion-button>
  57. }
  58. </ion-card-content>
  59. </ion-card>
  60. <!-- 快速入口 -->
  61. <ion-grid>
  62. <ion-row>
  63. <ion-col size="12">
  64. <ion-button>
  65. <ion-icon slot="start" name="document-outline"></ion-icon>
  66. 健康目标管理
  67. </ion-button>
  68. </ion-col>
  69. </ion-row>
  70. <ion-row>
  71. <ion-col size="12">
  72. <ion-button>
  73. <ion-icon slot="start" name="storefront-outline"></ion-icon>
  74. 外卖推荐
  75. </ion-button>
  76. </ion-col>
  77. </ion-row>
  78. </ion-grid>
  79. <!-- 推荐食谱 -->
  80. <ion-card>
  81. <ion-card-header>
  82. <ion-card-title>
  83. <ion-icon slot="start" name="albums-outline"></ion-icon>
  84. 今日推荐食谱
  85. </ion-card-title>
  86. </ion-card-header>
  87. <ion-card-content>
  88. <ion-button (click)="viewRecommendedRecipes()">
  89. 查看推荐食谱
  90. </ion-button>
  91. <p>{{ recipeMsg }}</p> <!-- 显示 AI 生成的推荐食谱 -->
  92. </ion-card-content>
  93. </ion-card>
  94. </ion-content>