tab1.page.html 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. <!-- tab1.page.html -->
  2. <ion-header [translucent]="true">
  3. <ion-toolbar class="header-toolbar">
  4. <ion-title class="header-title">
  5. <span class="logo-icon">🍳</span>
  6. <span class="logo-text">味知星厨</span>
  7. </ion-title>
  8. </ion-toolbar>
  9. </ion-header>
  10. <ion-content [fullscreen]="true" class="content-background">
  11. <!-- 搜索栏 -->
  12. <div class="search-container">
  13. <ion-card class="search-card">
  14. <ion-item lines="none" class="search-item">
  15. <ion-input
  16. class="search-input"
  17. type="text"
  18. placeholder="搜索食谱(如:番茄炒蛋、低卡沙拉)"
  19. [(ngModel)]="searchQuery"
  20. clearInput
  21. enterkeyhint="search"
  22. (keyup.enter)="performSearch()"
  23. ></ion-input>
  24. <ion-button
  25. slot="end"
  26. fill="clear"
  27. class="search-button"
  28. (click)="selectRecipe()"
  29. aria-label="搜索"
  30. >
  31. <ion-icon slot="icon-only" name="search"></ion-icon>
  32. </ion-button>
  33. </ion-item>
  34. </ion-card>
  35. </div>
  36. <!-- 分类网格 -->
  37. <div class="section-container">
  38. <h2 class="section-title">美食分类</h2>
  39. <ion-grid class="category-grid">
  40. <ion-row>
  41. <ion-col
  42. size="6"
  43. md="4"
  44. lg="3"
  45. *ngFor="let category of categories"
  46. (click)="navigateToCategory()"
  47. >
  48. <ion-card class="category-card" >
  49. <ion-card-content class="category-content">
  50. <div class="category-icon-container">
  51. <ion-icon [name]="category.icon" class="category-icon"></ion-icon>
  52. <img style="width:64px;border-radius: 50px;" src="/assets/icon/{{category.name}}.jpg" alt="">
  53. </div>
  54. <h3 class="category-title">{{ category.name }}</h3>
  55. </ion-card-content>
  56. </ion-card>
  57. </ion-col>
  58. </ion-row>
  59. </ion-grid>
  60. </div>
  61. <!-- 推荐食谱 -->
  62. <div class="section-container">
  63. <h2 class="section-title">今日推荐</h2>
  64. <ion-grid class="recipe-grid">
  65. <ion-row>
  66. <ion-col
  67. size="12"
  68. md="6"
  69. lg="4"
  70. *ngFor="let recipe of recipeGroup"
  71. (click)="goToDetail(recipe)"
  72. >
  73. <ion-card class="recipe-card" (click)="goToDetail(recipe)">
  74. <div class="recipe-image-container">
  75. <ion-img
  76. [src]="recipe.imageUrl || '/assets/images/default-food.jpg'"
  77. alt="食谱图片"
  78. class="recipe-image"
  79. ></ion-img>
  80. <div class="recipe-overlay">
  81. <ion-badge class="recipe-time">
  82. <ion-icon name="time"></ion-icon>
  83. {{ recipe.cookingTime || 30 }}分钟
  84. </ion-badge>
  85. </div>
  86. </div>
  87. <ion-card-header>
  88. <ion-card-title class="recipe-title">{{ recipe.title }}</ion-card-title>
  89. </ion-card-header>
  90. <ion-card-content class="recipe-content">
  91. <div class="recipe-rating">
  92. <ion-icon name="star" class="rating-icon"></ion-icon>
  93. <span class="rating-value">{{ recipe.rating || 4.5 }}</span>
  94. </div>
  95. </ion-card-content>
  96. </ion-card>
  97. </ion-col>
  98. </ion-row>
  99. </ion-grid>
  100. </div>
  101. </ion-content>