page-home.html 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. <!-- page-home.component.html -->
  2. <div class="container">
  3. <!-- Header -->
  4. <header>
  5. <div class="header-container">
  6. <div class="logo">
  7. <i class="fas fa-cat"></i>
  8. <span>点菜喵</span>
  9. </div>
  10. <div class="user-actions">
  11. <button class="icon-btn">
  12. <i class="fas fa-bell"></i>
  13. </button>
  14. <button class="icon-btn">
  15. <i class="fas fa-user"></i>
  16. </button>
  17. </div>
  18. </div>
  19. <div class="search-bar">
  20. <i class="fas fa-search"></i>
  21. <input type="text" placeholder="搜索菜品、商家、分类...">
  22. </div>
  23. </header>
  24. <!-- 更新后的 Swiper 部分 -->
  25. <swiper-container #swiperContainer class="swiper-container" [init]="false">
  26. <swiper-slide class="swiper-slide slide-1">
  27. <h2>新店开业全场8折</h2>
  28. <p>仅限今日,限时优惠</p>
  29. </swiper-slide>
  30. <swiper-slide class="swiper-slide slide-2">
  31. <h2>点菜喵会员专享福利</h2>
  32. <p>积分兑换免单券</p>
  33. </swiper-slide>
  34. <swiper-slide class="swiper-slide slide-3">
  35. <h2>周末限定套餐</h2>
  36. <p>双人套餐仅需¥168</p>
  37. </swiper-slide>
  38. </swiper-container>
  39. <!-- Category Navigation -->
  40. <div class="category-nav">
  41. <div class="category-item" (click)="handleCategoryClick($event)">
  42. <div class="category-icon">
  43. <i class="fas fa-fire"></i>
  44. </div>
  45. <div class="category-text">热销</div>
  46. </div>
  47. <div class="category-item" (click)="handleCategoryClick($event)">
  48. <div class="category-icon">
  49. <i class="fas fa-percent"></i>
  50. </div>
  51. <div class="category-text">折扣</div>
  52. </div>
  53. <div class="category-item" (click)="handleCategoryClick($event)">
  54. <div class="category-icon">
  55. <i class="fas fa-box"></i>
  56. </div>
  57. <div class="category-text">套餐</div>
  58. </div>
  59. <div class="category-item" (click)="handleCategoryClick($event)">
  60. <div class="category-icon">
  61. <i class="fas fa-tag"></i>
  62. </div>
  63. <div class="category-text">优惠</div>
  64. </div>
  65. <div class="category-item" (click)="handleCategoryClick($event)">
  66. <div class="category-icon">
  67. <i class="fas fa-utensils"></i>
  68. </div>
  69. <div class="category-text">小吃</div>
  70. </div>
  71. </div>
  72. <!-- IP Entry -->
  73. <div class="ip-entry">
  74. <div class="ip-circle" (click)="handleIPClick()">
  75. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#fff" width="40px" height="40px">
  76. <path d="M0 0h24v24H0z" fill="none"/>
  77. <path d="M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"/>
  78. </svg>
  79. </div>
  80. <div class="ip-text">点菜喵</div>
  81. </div>
  82. <!-- Shop Info Card -->
  83. <div class="shop-card">
  84. <div class="shop-header">
  85. <div class="shop-logo">喵</div>
  86. <div class="shop-info">
  87. <div class="shop-name">
  88. <h2>点菜喵主题餐厅</h2>
  89. <div class="rating">
  90. <i class="fas fa-star"></i>
  91. <span>4.9</span>
  92. </div>
  93. </div>
  94. <div class="shop-tags">
  95. <span class="shop-tag">网红打卡</span>
  96. <span class="shop-tag">人气爆款</span>
  97. <span class="shop-tag">宠物友好</span>
  98. </div>
  99. </div>
  100. </div>
  101. <div class="shop-stats">
  102. <div class="stat-item">
  103. <div class="stat-value">¥3.5</div>
  104. <div class="stat-label">配送费</div>
  105. </div>
  106. <div class="stat-item">
  107. <div class="stat-value">30min</div>
  108. <div class="stat-label">配送时间</div>
  109. </div>
  110. <div class="stat-item">
  111. <div class="stat-value">营业中</div>
  112. <div class="stat-label">09:00-22:00</div>
  113. </div>
  114. </div>
  115. </div>
  116. <!-- Story Section -->
  117. <div class="story-section">
  118. <div class="story-header">
  119. <h2>菜品故事</h2>
  120. <a href="#" class="more">更多故事</a>
  121. </div>
  122. <div class="story-content">
  123. <div class="story-image">
  124. 酸菜鱼<br>传统工艺
  125. </div>
  126. <div class="story-details">
  127. <div class="story-title">
  128. <i class="fas fa-utensils"></i> 酸菜鱼的传奇故事
  129. </div>
  130. <div class="story-text">
  131. 酸菜鱼源于重庆江津,已有百年历史。传说清朝末年,一位渔夫将刚捕获的鱼与自家腌制的酸菜同煮,意外发现其美味。这道菜融合了川菜的麻辣与酸菜的酸爽,鱼肉鲜嫩,汤汁醇厚...
  132. </div>
  133. <div class="story-meta">
  134. <span>阅读 2,856</span>
  135. <span>点赞 1,203</span>
  136. </div>
  137. </div>
  138. </div>
  139. <div class="story-actions">
  140. <div class="story-btn read-btn" (click)="handleReadStory()">阅读完整故事</div>
  141. <div class="story-btn share-btn" (click)="handleShareStory()">分享故事</div>
  142. </div>
  143. </div>
  144. <!-- Menu Section -->
  145. <div class="section">
  146. <div class="section-title">
  147. <h2>热销菜品</h2>
  148. <a href="#" class="more">查看全部</a>
  149. </div>
  150. <div class="menu-list">
  151. <div class="menu-item" *ngFor="let item of menuItems">
  152. <div class="menu-img">
  153. <div class="menu-badge">{{item.badge}}</div>
  154. </div>
  155. <div class="menu-info">
  156. <div class="menu-name">
  157. <h3>{{item.name}}</h3>
  158. <div class="menu-price">
  159. ¥{{item.price}}
  160. <span *ngIf="item.discountPrice" style="text-decoration:line-through;color:#999;font-size:12px;margin-left:5px">
  161. ¥{{item.discountPrice}}
  162. </span>
  163. </div>
  164. </div>
  165. <div class="menu-desc">{{item.description}}</div>
  166. <div class="menu-stats">
  167. <span>月售 {{item.sales}}份</span>
  168. <span>好评率 {{item.rating}}</span>
  169. </div>
  170. <div class="menu-actions">
  171. <button class="add-btn" (click)="handleAddToCart($event, item.id)">
  172. <i class="fas fa-plus"></i> 加入
  173. </button>
  174. </div>
  175. </div>
  176. </div>
  177. </div>
  178. </div>
  179. </div>
  180. <!-- Bottom Navigation -->
  181. <div class="bottom-nav">
  182. <div class="nav-item" [class.active]="activeTab === 'home'" (click)="setActiveTab('home')">
  183. <i class="fas fa-home"></i>
  184. <div>首页</div>
  185. </div>
  186. <div class="nav-item" [class.active]="activeTab === 'discover'" (click)="setActiveTab('discover')">
  187. <i class="fas fa-search"></i>
  188. <div>发现</div>
  189. </div>
  190. <div class="nav-item" [class.active]="activeTab === 'story'" (click)="setActiveTab('story')">
  191. <i class="fas fa-book-open"></i>
  192. <div>故事</div>
  193. </div>
  194. <div class="nav-item" [class.active]="activeTab === 'cart'" (click)="setActiveTab('cart')">
  195. <i class="fas fa-shopping-cart"></i>
  196. <div>购物车</div>
  197. </div>
  198. <div class="nav-item" [class.active]="activeTab === 'profile'" (click)="setActiveTab('profile')">
  199. <i class="fas fa-user"></i>
  200. <div>我的</div>
  201. </div>
  202. </div>