index.vue 4.4 KB

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