index.vue 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. <template>
  2. <div class="spike">
  3. <div class="spike-card" v-if="productData.products && productData.products.length>0">
  4. <div class="spike-card-top">
  5. <h2 class="spike-card-top-title">
  6. <img class="title-img" src="../../../static/images/spike/img-title.png" alt="秒杀专区" mode="widthFix"/>
  7. </h2>
  8. <div class="spike-card-top-time" v-if="state===2">
  9. 活动已结束
  10. </div>
  11. <div class="spike-card-top-time" v-else>
  12. 距离{{count[0]}}还有 <div class="span">{{count[1]}}:{{count[2]}}:{{count[3]}}</div>
  13. </div>
  14. <a class="btn-more" @click="jumpSeckills(productData)">更多<i class="iconfont icon-arrow-right"></i></a>
  15. </div>
  16. <div class="spike-card-list">
  17. <div class="spike-card-item" v-for='item in productData.products.slice(0,4)' :key='item.productId' @click="jumpProductDetail(item)">
  18. <div class="spike-card-item-img">
  19. <img :src="item.image" alt="">
  20. </div>
  21. <div class="spike-card-item-info">
  22. <h3 class="name">
  23. {{item.productName}}
  24. </h3>
  25. <div class="stock">
  26. 还剩{{item.stockNumber}}件
  27. </div>
  28. <div class="price-warp">
  29. <div class="price">
  30. ¥ {{item.price}}
  31. </div>
  32. <div class="original-price">
  33. ¥ {{item.originalPrice}}
  34. </div>
  35. </div>
  36. </div>
  37. </div>
  38. </div>
  39. </div>
  40. </div>
  41. </template>
  42. <script>
  43. import {commonMixin} from '../mixin'
  44. export default {
  45. mixins: [commonMixin]
  46. }
  47. </script>
  48. <style lang="scss" scoped>
  49. .spike{
  50. background: #F8F8F8;
  51. padding: 20upx;
  52. &-card{
  53. height: 498upx;
  54. background: #FFFFFF;
  55. border-radius: 20upx;
  56. &-top{
  57. position: relative;
  58. padding: 32upx 0 22upx;
  59. display: flex;
  60. &-title{
  61. padding: 9upx 20upx 9upx 30upx;
  62. .title-img{
  63. width: 204upx;
  64. display: block;
  65. }
  66. }
  67. &-time{
  68. padding: 0 18upx;
  69. height: 50upx;
  70. background: linear-gradient(90deg, #C83732 0%, #E25C44 100%);
  71. box-shadow: 0px 6upx 12upx rgba(233, 0, 0, 0.3);
  72. opacity: 1;
  73. border-radius: 26upx;
  74. font-size: 24upx;
  75. line-height: 50upx;
  76. color: #fff;
  77. text-align: center;
  78. .span{
  79. display: inline;
  80. }
  81. }
  82. .btn-more{
  83. position: absolute;
  84. right: 8upx;
  85. top: 40upx;
  86. line-height: 33upx;
  87. padding-right: 25upx;
  88. font-size: 24upx;
  89. color: #333;
  90. .iconfont{
  91. content: '';
  92. font-size: 26upx;
  93. position: absolute;
  94. right: 0;
  95. top: 0;
  96. }
  97. }
  98. }
  99. &-list{}
  100. &-item{
  101. width: 50%;
  102. border-top: 1px solid #F3F4F5;
  103. border-left: 1px solid #F3F4F5;
  104. float: left;
  105. align-items: center;
  106. box-sizing: border-box;
  107. &:nth-child(2n+1){
  108. border-left: 0px;
  109. }
  110. &-img{
  111. width: 162upx;
  112. height: 196upx;
  113. margin-right: 10upx;
  114. float: left;
  115. img {
  116. width: 100%;
  117. height: 100%;
  118. object-fit: contain;
  119. }
  120. }
  121. &-info{
  122. height: 100%;
  123. margin-left: 172upx;
  124. width: 168upx;
  125. .name{
  126. font-size: 24upx;
  127. line-height: 40upx;
  128. color: #333333;
  129. overflow: hidden;
  130. text-overflow:ellipsis;
  131. white-space: nowrap;
  132. }
  133. .stock{
  134. padding: 0 8upx;
  135. height: 40upx;
  136. border: 2upx solid #E4E5E6;
  137. line-height: 40upx;
  138. margin: 10upx 0;
  139. display: inline-block;
  140. font-size: 20upx;
  141. color: #C5AA7B;
  142. }
  143. .price{
  144. font-size: 32upx;
  145. font-weight: bold;
  146. line-height: 44upx;
  147. color: #C83732;
  148. padding-right: 10upx;
  149. display: inline-block;
  150. }
  151. .original-price{
  152. font-size: 20upx;
  153. line-height: 28upx;
  154. color: #CCCCCC;
  155. display: inline-block;
  156. }
  157. }
  158. }
  159. }
  160. }
  161. </style>