index.vue 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. <template>
  2. <div class="group-list">
  3. <div class="group-warp">
  4. <div class="title">
  5. <label>
  6. <img class="title-img" src="../../../static/images/price/img-title.png" alt="组合优惠" mode="widthFix"/>
  7. </label>
  8. <div class="price-text">
  9. <swiper class="swiper" :autoplay="true" :vertical="true">
  10. <swiper-item v-for="(item,index) in productData.rules" :key="index">
  11. {{item.price}}元任选{{item.number}}件
  12. </swiper-item>
  13. </swiper>
  14. </div>
  15. <a v-show="componentContent.showMore" class="btn-all a-link" @click="jumpCombination(productData)">更多<i class="iconfont icon-arrow-right"></i></a>
  16. </div>
  17. <div>
  18. <swiper class="swiper pro-box" :indicator-dots="true" :autoplay="true" :display-multiple-items="2">
  19. <swiper-item class="pro-item-warp" v-for="(item,index) in productData.composeProducts" :key="index" @click="jumpProductDetail(item)">
  20. <div class="pro-item-inner">
  21. <div class="pro-item">
  22. <div class="pro-item-img">
  23. <img v-show="item.image" class="img" :src="item.image">
  24. </div>
  25. <div class="pro-item-info">
  26. <h3 class="name">
  27. {{item.productName}}
  28. </h3>
  29. <div class="stock">
  30. 还剩{{item.stockNumber}}件
  31. </div>
  32. <div class="price-warp">
  33. <div class="price">
  34. ¥ {{item.price}}
  35. </div>
  36. <div class="original-price">
  37. ¥ {{item.originalPrice}}
  38. </div>
  39. </div>
  40. </div>
  41. </div>
  42. </div>
  43. </swiper-item>
  44. </swiper>
  45. </div>
  46. </div>
  47. </div>
  48. </template>
  49. <script>
  50. import {commonMixin} from '../mixin'
  51. export default {
  52. mixins: [commonMixin],
  53. // data () {
  54. // return {
  55. // swiperOption: {
  56. // slidesPerView: 2, // 显示数量
  57. // spaceBetween: 20, // 间隔
  58. // autoplay: false, // 可选选项,自动滑动
  59. // loop: true,
  60. // pagination: {
  61. // el: '.price-pagination'
  62. // },
  63. // navigation: {
  64. // nextEl: '.swiper-button-next',
  65. // prevEl: '.swiper-button-prev'
  66. // }
  67. // }
  68. // }
  69. // }
  70. }
  71. </script>
  72. <style lang="scss" scoped>
  73. .group-list{
  74. padding: 30upx 20upx 60upx;
  75. .group-warp{
  76. height: 544upx;
  77. padding: 0 10upx;
  78. background: #333333;
  79. box-shadow: 0 20upx 30upx rgba(0, 0, 0, 0.3);
  80. opacity: 1;
  81. border-radius: 20upx;
  82. }
  83. .title{
  84. display: flex;
  85. align-items:center;
  86. position: relative;
  87. padding: 32upx 0 20upx 20upx;
  88. .title-img{
  89. width: 203upx;
  90. }
  91. .price-text{
  92. width: 300upx;
  93. height: 50upx;
  94. background: linear-gradient(90deg, #C83732 0%, #E25C44 100%);
  95. box-shadow: 0 6upx 12upx rgba(233, 0, 0, 0.3);
  96. border-radius: 26upx;
  97. font-size: 24upx;
  98. color: #fff;
  99. text-align: center;
  100. line-height: 50upx;
  101. margin-left: 20upx;
  102. .swiper{
  103. height: 50upx;
  104. }
  105. }
  106. .btn-all{
  107. position: absolute;
  108. right: 8upx;
  109. top: 40upx;
  110. line-height: 33upx;
  111. padding-right: 25upx;
  112. font-size: 24upx;
  113. color: #FFEBC4;
  114. .iconfont{
  115. content: '';
  116. font-size: 26upx;
  117. position: absolute;
  118. right: 0;
  119. top: 0;
  120. }
  121. }
  122. }
  123. .pro-box{
  124. padding-bottom: 20upx;
  125. height: 450upx;
  126. .pro-item-inner{
  127. padding: 0 10upx;
  128. }
  129. .pro-item{
  130. width: 100%;
  131. height: 412upx;
  132. background: #FFFFFF;
  133. .pro-item-img{
  134. .img{
  135. width: 100%;
  136. height: 236upx;
  137. }
  138. }
  139. .pro-item-info{
  140. padding: 0 20upx;
  141. .name{
  142. font-size: 24upx;
  143. line-height: 40upx;
  144. color: #333333;
  145. overflow: hidden;
  146. text-overflow:ellipsis;
  147. white-space: nowrap;
  148. }
  149. .stock{
  150. padding: 0 8upx;
  151. height: 40upx;
  152. border: 2upx solid #E4E5E6;
  153. line-height: 40upx;
  154. margin: 10upx 0;
  155. display: inline-block;
  156. font-size: 20upx;
  157. color: #C5AA7B;
  158. }
  159. .price{
  160. font-size: 32upx;
  161. font-weight: bold;
  162. line-height: 44upx;
  163. color: #C83732;
  164. padding-right: 10upx;
  165. display: inline-block;
  166. }
  167. .original-price{
  168. font-size: 20upx;
  169. line-height: 28upx;
  170. color: #CCCCCC;
  171. display: inline-block;
  172. }
  173. }
  174. }
  175. }
  176. .pagination{
  177. display: flex;
  178. justify-content: center;
  179. ::v-deep .swiper-pagination-bullet{
  180. width: 24upx;
  181. height: 4upx;
  182. background: #fff;
  183. opacity: 0.5;
  184. border-radius: 2upx;
  185. margin: 0 5upx;
  186. }
  187. ::v-deep .swiper-pagination-bullet-active{
  188. opacity: 1;
  189. }
  190. }
  191. }
  192. </style>