presellList.vue 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. <template>
  2. <view v-if="presellList.length > 0" class="presell-wrapper" :style="'margin-top:'+mbConfig+'rpx;'">
  3. <view class="presell-count" :class="'wrapper-count'+styleType" :style="'border-radius:'+bgStyle+'rpx'">
  4. <view class="spike-bd title-bd" :style="'border-radius:'+bgStyle+'rpx '+bgStyle+' 0 0'">
  5. <view class="title line1"><image class="title-img" src="/static/images/presell_title.png"></image></view>
  6. <navigator v-if="!merId" url="/pages/activity/presell/index" class="more-btn" hover-class="none">
  7. 进去逛逛
  8. <text class="iconfont icon-jiantou" hover-class="none"></text>
  9. </navigator>
  10. </view>
  11. <view class="wapper_count">
  12. <view class="spike-wrapper" :class="'wrapper'+styleType">
  13. <scroll-view v-if="styleType != 2" :class="'colum'+styleType" :scroll-x="styleType == 0 ? true : false" show-scrollbar="false">
  14. <navigator
  15. class="spike-item presell-item"
  16. v-for="(item, index) in presellList"
  17. :key="index"
  18. :url="'/pages/activity/presell_details/index?id=' + item.product_presell_id"
  19. hover-class="none"
  20. >
  21. <view class="img-box presell_imgBox" :class="'img-box'+conStyle">
  22. <easy-loadimage mode="widthFix" :image-src="item.product.image"></easy-loadimage>
  23. <view v-if="presellShow" class="box_bg">火热预定中</view>
  24. </view>
  25. <view v-if="priceShow || titleShow" class="info">
  26. <view class="price-box presell-price">
  27. <text :style="'color:'+themeColor" v-if="priceShow" class="price">
  28. <text>预售价:¥</text>
  29. {{ item.price }}
  30. </text>
  31. <view v-if="titleShow" class="name line1">{{ item.store_name }}</view>
  32. </view>
  33. </view>
  34. </navigator>
  35. </scroll-view>
  36. <block v-else class="acea-row row-between-wrapper combination">
  37. <navigator
  38. class="combination-item"
  39. v-for="(item, index) in presellList"
  40. :key="index"
  41. :url="'/pages/activity/presell_details/index?id=' + item.product_presell_id"
  42. hover-class="none" :style="'border-radius:'+conStyle">
  43. <view class="info">
  44. <view class="price-box combination-price">
  45. <view v-if="titleShow" class="name line1">{{ item.product.store_name }}</view>
  46. <text :style="'color:'+themeColor" v-if="priceShow" class="price">
  47. <text>¥</text>
  48. {{ item.price }}
  49. </text>
  50. <text v-if="presellShow" class="gocom_btn">
  51. 去预定
  52. <text class="iconfont icon-jiantou"></text>
  53. </text>
  54. </view>
  55. </view>
  56. <view class="img-box">
  57. <easy-loadimage mode="widthFix" :image-src="item.product.image"></easy-loadimage>
  58. </view>
  59. </navigator>
  60. <navigator v-if="presellList.length == 1"
  61. class="combination-item"
  62. hover-class="none"
  63. :url="'/pages/activity/presell_details/index?id=' + presellList[0].product_presell_id"
  64. :style="'border-radius:'+conStyle">
  65. <view class="info">
  66. <view class="price-box combination-price">
  67. <view v-if="titleShow" class="name line1">{{ presellList[0].product.store_name }}</view>
  68. <text :style="'color:'+themeColor" v-if="priceShow" class="price">
  69. <text>¥</text>
  70. {{ presellList[0].price }}
  71. </text>
  72. <text v-if="presellShow" class="gocom_btn">
  73. 去预定
  74. <text class="iconfont icon-jiantou"></text>
  75. </text>
  76. </view>
  77. </view>
  78. <view class="img-box">
  79. <easy-loadimage mode="widthFix" :image-src="presellList[0].product.image"></easy-loadimage>
  80. </view>
  81. </navigator>
  82. <navigator v-if="presellList.length == 1"
  83. class="combination-item"
  84. hover-class="none"
  85. :url="'/pages/activity/presell_details/index?id=' + presellList[1].product_presell_id"
  86. :style="'border-radius:'+conStyle">
  87. <view class="info">
  88. <view class="price-box combination-price">
  89. <view v-if="titleShow" class="name line1">{{ presellList[0].product.store_name }}</view>
  90. <text :style="'color:'+themeColor" v-if="priceShow" class="price">
  91. <text>¥</text>
  92. {{ presellList[0].price }}
  93. </text>
  94. <text v-if="presellShow" class="gocom_btn">
  95. 去预定
  96. <text class="iconfont icon-jiantou"></text>
  97. </text>
  98. </view>
  99. </view>
  100. <view class="img-box">
  101. <easy-loadimage mode="widthFix" :image-src="presellList[0].product.image"></easy-loadimage>
  102. </view>
  103. </navigator>
  104. <navigator v-if="presellList.length == 2"
  105. class="combination-item"
  106. hover-class="none"
  107. :url="'/pages/activity/presell_details/index?id=' + presellList[1].product_presell_id"
  108. :style="'border-radius:'+conStyle">
  109. <view class="info">
  110. <view class="price-box combination-price">
  111. <view v-if="titleShow" class="name line1">{{ presellList[1].product.store_name }}</view>
  112. <text :style="'color:'+themeColor" v-if="priceShow" class="price">
  113. <text>¥</text>
  114. {{ presellList[1].price }}
  115. </text>
  116. <text v-if="presellShow" class="gocom_btn">
  117. 去预定
  118. <text class="iconfont icon-jiantou"></text>
  119. </text>
  120. </view>
  121. </view>
  122. <view class="img-box">
  123. <easy-loadimage mode="widthFix" :image-src="presellList[1].product.image"></easy-loadimage>
  124. </view>
  125. </navigator>
  126. </block>
  127. </view>
  128. </view>
  129. </view>
  130. </view>
  131. </template>
  132. <script>
  133. import easyLoadimage from '@/components/easy-loadimage/easy-loadimage.vue';
  134. import { getPresellList } from '@/api/activity.js';
  135. export default {
  136. components:{
  137. easyLoadimage
  138. },
  139. name: 'presellList',
  140. props: {
  141. dataConfig: {
  142. type: Object,
  143. default: () => {}
  144. },
  145. merId: {
  146. type: String || Number,
  147. default: ''
  148. }
  149. },
  150. data() {
  151. return {
  152. presellList: [],
  153. mbConfig: this.dataConfig.mbConfig.val*2, //页面间距
  154. styleType: this.dataConfig.tabConfig.tabVal, //单行,多行,板块
  155. bgStyle: this.dataConfig.bgStyle.type ? 20 : 0,
  156. conStyle: this.dataConfig.conStyle.type ? 16 : 0,
  157. titleShow: this.dataConfig.titleShow.val,
  158. priceShow: this.dataConfig.priceShow.val,
  159. themeColor: this.dataConfig.themeColor && this.dataConfig.themeColor.color[0].item,
  160. presellShow: this.dataConfig.presellShow.val
  161. };
  162. },
  163. created() {},
  164. mounted() {
  165. console.log(this.dataConfig)
  166. this.getPresellProduct()
  167. },
  168. methods: {
  169. // 预售
  170. getPresellProduct() {
  171. let that = this;
  172. getPresellList({
  173. mer_id: that.merId,limit: that.styleType == 2 ? 3 : 12
  174. }).then(res => {
  175. that.presellList = res.data.list;
  176. }).catch(e => {});
  177. },
  178. }
  179. };
  180. </script>
  181. <style scoped lang="scss">
  182. @import '../style/main.scss';
  183. .presell-wrapper{
  184. margin: 0 20rpx;
  185. }
  186. .spike-wrapper {
  187. &.wrapper2{
  188. padding: 0 20rpx 20rpx;
  189. }
  190. }
  191. .presell-count {
  192. background-color: #fff;
  193. border-radius: 16rpx;
  194. box-shadow: 4rpx 2rpx 12rpx 2rpx rgba(0, 0, 0, 0.03);
  195. }
  196. .title-bd {
  197. margin-bottom: 0;
  198. padding: 24rpx 30rpx 30rpx 30rpx;
  199. border-radius: 16rpx 16rpx 0 0;
  200. background-image: url('data:image/png;base64,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');
  201. background-size: 100%;
  202. background-repeat: no-repeat;
  203. .more-btn {
  204. top: 23rpx;
  205. }
  206. }
  207. .wapper_count {
  208. padding-left: 20rpx;
  209. }
  210. .wrapper-count2{
  211. .wapper_count{
  212. padding: 0;
  213. }
  214. }
  215. </style>