cm-coupon-area.vue 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <template>
  2. <view class="coupon-area">
  3. <cm-simple-swiper
  4. @change="onChange"
  5. :current="current"
  6. :circular="true"
  7. :swiperHeight="swiperHeight"
  8. :data="couponList"
  9. :rows="swiperRows"
  10. :columns="1"
  11. :gapY="16"
  12. :autoplay="false"
  13. >
  14. <template v-slot:slide="{ row }">
  15. <view class="swiper-slide"><cm-coupon :couponData="row" controlType="receive"></cm-coupon></view>
  16. </template>
  17. </cm-simple-swiper>
  18. </view>
  19. </template>
  20. <script>
  21. // 测试数据
  22. import { fetchReceivedCouponList } from '@/services/api/coupon.js'
  23. export default {
  24. name: 'cm-coupon-area',
  25. props: {
  26. couponList: {
  27. type: Array,
  28. default: () => []
  29. }
  30. },
  31. data() {
  32. return {
  33. current: 0
  34. }
  35. },
  36. computed: {
  37. swiperRows() {
  38. return this.couponList.length === 1 ? 1 : 2
  39. },
  40. swiperHeight() {
  41. return 250 * this.swiperRows
  42. }
  43. },
  44. methods: {
  45. onChange(e) {
  46. this.current = e.current
  47. }
  48. }
  49. }
  50. </script>
  51. <style lang="scss" scoped>
  52. .swiper-slide {
  53. box-sizing: border-box;
  54. padding: 12rpx 0;
  55. }
  56. </style>