tab1.page.html 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <ion-header [translucent]="true">
  2. <ion-toolbar class="custom-header">
  3. <ion-title class="logo">
  4. 🍳 <span>味知星厨</span>
  5. </ion-title>
  6. <ion-buttons slot="end">
  7. <ion-button class="nav-btn" (click)="login()">登录</ion-button>
  8. <ion-button class="nav-btn" (click)="register()">注册</ion-button>
  9. </ion-buttons>
  10. </ion-toolbar>
  11. </ion-header>
  12. <ion-content [fullscreen]="true" class="bg-light">
  13. <!-- 搜索栏 -->
  14. <ion-card class="search-card">
  15. <ion-row class="search-row">
  16. <ion-col size="10">
  17. <ion-input
  18. class="search-input"
  19. type="text"
  20. placeholder="搜索食谱(如:番茄炒蛋、低卡沙拉)"
  21. [(ngModel)]="searchQuery"
  22. autocomplete="food"
  23. spellcheck="false"
  24. aria-label="食谱搜索"
  25. ></ion-input>
  26. </ion-col>
  27. <ion-col size="2">
  28. <ion-button
  29. class="search-btn"
  30. shape="round"
  31. (click)="performSearch()"
  32. aria-label="搜索食谱"
  33. >
  34. <ion-icon name="search" class="icon-md text-white"></ion-icon>
  35. </ion-button>
  36. </ion-col>
  37. </ion-row>
  38. </ion-card>
  39. <!-- 分类网格 -->
  40. <ion-grid class="category-grid" fixed>
  41. <ion-row class="ion-justify-content-around">
  42. <ion-col
  43. size="6"
  44. md="4"
  45. lg="3"
  46. class="category-card"
  47. *ngFor="let category of categories"
  48. (click)="navigateToCategory(category)"
  49. >
  50. <ion-card class="card-hover" (click)="goToTypeList()">
  51. <ion-card-content class="text-center p-4">
  52. <!-- <ion-icon [name]="category.icon" class="category-icon"></ion-icon> -->
  53. <img style="width:64px;border-radius: 10px;" src="/assets/icon/{{category.name}}.jpg" alt="">
  54. <p class="category-title">{{ category.name }}</p>
  55. </ion-card-content>
  56. </ion-card>
  57. </ion-col>
  58. </ion-row>
  59. </ion-grid>
  60. <!-- 推荐食谱 -->
  61. <ion-card class="recommend-card">
  62. <ion-card-header class="px-4 pt-4">
  63. <h2 class="section-title">今日推荐食谱</h2>
  64. </ion-card-header>
  65. <ion-card-content class="px-4">
  66. <ion-grid fixed>
  67. <ion-row class="ion-justify-content-around">
  68. <ion-col
  69. size="12"
  70. md="6"
  71. lg="4"
  72. class="recipe-card"
  73. *ngFor="let recipe of recommendedRecipes"
  74. (click)="goToRecipeDetail(recipe.objectId)"
  75. >
  76. <ion-card class="recipe-card-hover" (click)="goToDetail()">
  77. <ion-img [src]="recipe.image?.url || '/assets/images/default-food.jpg'"></ion-img>
  78. <ion-card-content class="p-4">
  79. <h3 class="recipe-title">{{ recipe.title }}</h3>
  80. <div class="recipe-meta">
  81. <ion-icon name="time" class="icon-md"></ion-icon> {{ recipe.cookingTime || 30 }}分钟
  82. <ion-icon name="star" class="icon-md text-primary"></ion-icon> {{ recipe.rating || 4.5 }}评分
  83. </div>
  84. </ion-card-content>
  85. </ion-card>
  86. </ion-col>
  87. </ion-row>
  88. </ion-grid>
  89. </ion-card-content>
  90. </ion-card>
  91. </ion-content>