TopSwiper.vue 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <template>
  2. <div class="swiper">
  3. <swiper
  4. :indicator-dots="true"
  5. indicator-color="#EA5A49"
  6. :autoplay="true"
  7. :interval="6000"
  8. :duration="1000"
  9. :circular="true"
  10. >
  11. <div :key="imgindex" v-for="(top, imgindex) in imgUrls">
  12. <swiper-item>
  13. <!-- img中mode是小程序提供图片大小格式 -->
  14. <img
  15. @click='bookDetail(img)'
  16. class="slide-image"
  17. mode="aspectFit"
  18. v-for="img in top"
  19. :key="img.id"
  20. :src="img.image"
  21. >
  22. </swiper-item>
  23. </div>
  24. </swiper>
  25. </div>
  26. </template>
  27. <script>
  28. export default {
  29. props: ['tops'],
  30. computed: {
  31. imgUrls () {
  32. // 如果通用 请用chunk函数 比如lodash的chunk方法
  33. let res = this.tops
  34. console.log([res.slice(0, 3), res.slice(3, 6), res.slice(6)])
  35. return [res.slice(0, 3), res.slice(3, 6), res.slice(6)]
  36. }
  37. },
  38. methods: {
  39. bookDetail (item) {
  40. // console.log('top options', item);
  41. wx.navigateTo({
  42. url: '/pages/detail/main?id=' + item.id
  43. })
  44. }
  45. }
  46. }
  47. </script>
  48. <style lang="scss">
  49. .swiper{
  50. margin-top:5px;
  51. .slide-image{
  52. width:33%;
  53. height:250rpx;
  54. }
  55. }
  56. </style>