HomeView.vue 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. <template>
  2. <div class="container home">
  3. <header>
  4. <nav>
  5. <ul>
  6. <li><router-link to="/">首页</router-link></li>
  7. <li><router-link to="/products">全部商品</router-link></li>
  8. <li><router-link to="/cart">购物车</router-link></li>
  9. <li><router-link to="/orders">我的订单</router-link></li>
  10. <li><router-link to="/profile">个人中心</router-link></li>
  11. </ul>
  12. </nav>
  13. </header>
  14. <main>
  15. <section class="carousel">
  16. <h2>热门商品轮播</h2>
  17. <div class="carousel-images">
  18. <img src="@/assets/img/project_view.png" alt="Product 1" />
  19. <img src="@/assets/img/prompt_view.png" alt="Product 2" />
  20. <img src="@/assets/img/upload_view.png" alt="Product 3" />
  21. </div>
  22. </section>
  23. <section class="featured-products">
  24. <h2>推荐商品</h2>
  25. <div class="product-list">
  26. <div class="product-item">
  27. <img src="@/assets/img/project_view.png" alt="Product 1" />
  28. <p>产品1 - 描述</p>
  29. <button @click="addToCart({ id: 1, name: '产品1', description: '这是产品1的描述', price: '100元' })">加入购物车</button>
  30. </div>
  31. <div class="product-item">
  32. <img src="@/assets/img/prompt_view.png" alt="Product 2" />
  33. <p>产品2 - 描述</p>
  34. <button @click="addToCart({ id: 2, name: '产品2', description: '这是产品2的描述', price: '200元' })">加入购物车</button>
  35. </div>
  36. <div class="product-item">
  37. <img src="@/assets/img/upload_view.png" alt="Product 3" />
  38. <p>产品3 - 描述</p>
  39. <button @click="addToCart({ id: 3, name: '产品3', description: '这是产品3的描述', price: '300元' })">加入购物车</button>
  40. </div>
  41. </div>
  42. </section>
  43. <section class="categories">
  44. <h2>商品分类</h2>
  45. <!-- 商品分类导航 -->
  46. </section>
  47. </main>
  48. <footer>
  49. <p>&copy; 2025 Prototype Design. All rights reserved.</p>
  50. </footer>
  51. </div>
  52. </template>
  53. <script setup>
  54. import { ref } from 'vue'
  55. const addToCart = (product) => {
  56. // 在这里实现添加到购物车的逻辑
  57. }
  58. </script>
  59. <style scoped>
  60. .home {
  61. display: flex;
  62. flex-direction: column;
  63. min-height: 100vh;
  64. }
  65. header nav ul {
  66. list-style-type: none;
  67. padding: 0;
  68. display: flex;
  69. justify-content: space-around;
  70. background-color: #f8f8f8;
  71. }
  72. header nav ul li a {
  73. text-decoration: none;
  74. color: #333;
  75. padding: 10px 20px;
  76. display: block;
  77. }
  78. header nav ul li a:hover {
  79. background-color: #ddd;
  80. }
  81. main {
  82. flex: 1;
  83. padding: 20px;
  84. }
  85. .carousel,
  86. .featured-products,
  87. .categories {
  88. margin-bottom: 20px;
  89. }
  90. .carousel-images {
  91. display: flex;
  92. overflow-x: scroll;
  93. white-space: nowrap;
  94. }
  95. .carousel-images img {
  96. width: 300px;
  97. height: auto;
  98. margin-right: 10px;
  99. }
  100. .product-list {
  101. display: flex;
  102. flex-wrap: wrap;
  103. gap: 10px;
  104. }
  105. .product-item {
  106. border: 1px solid #ddd;
  107. padding: 10px;
  108. width: 200px;
  109. box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  110. }
  111. .product-item img {
  112. width: 100%;
  113. height: auto;
  114. }
  115. .product-item p {
  116. margin-top: 5px;
  117. }
  118. footer {
  119. text-align: center;
  120. padding: 10px;
  121. background-color: #f8f8f8;
  122. }
  123. </style>