Carousel.vue 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <template>
  2. <div class="carousel">
  3. <div v-swiper:mySwiper="swiperOption">
  4. <div class="swiper-wrapper">
  5. <div class="swiper-slide" v-for="banner in banners">
  6. <a :href="banner.hrefUrl" target="_blank">
  7. <img :src="banner.pictureUrl">
  8. </a>
  9. </div>
  10. </div>
  11. <div class="swiper-pagination swiper-pagination-bullets"></div>
  12. <div class="swiper-button-prev"><i class="iconfont icon-arrow-left"></i></div>
  13. <div class="swiper-button-next"><i class="iconfont icon-arrow-right"></i></div>
  14. </div>
  15. </div>
  16. </template>
  17. <script>
  18. export default {
  19. name: 'carousel',
  20. data () {
  21. return {
  22. activeSlide: 0,
  23. swiperOption: {
  24. autoplay: 5000,
  25. initialSlide: 1,
  26. loop: true,
  27. effect: 'fade',
  28. lazyLoading: true,
  29. pagination: '.swiper-pagination',
  30. paginationClickable: true,
  31. paginationElement: 'li',
  32. prevButton: '.swiper-button-prev',
  33. nextButton: '.swiper-button-next'
  34. }
  35. // banners: {}
  36. }
  37. },
  38. // mounted () {
  39. // this.$http.get('/api/carousel/home%20page%20banner')
  40. // .then(response => {
  41. // this.banners = response.data
  42. // this.x++
  43. // })
  44. // }
  45. computed: {
  46. banners () {
  47. let banner = this.$store.state.carousel.banners
  48. banner.data.sort(function (a, b) {
  49. return a.orderNumber - b.orderNumber
  50. })
  51. return banner.data
  52. }
  53. }
  54. }
  55. </script>
  56. <style lang="scss" scoped>
  57. @import '~assets/scss/variables';
  58. $carousel_width: 668px;
  59. $carousel_height: 358px;
  60. .carousel {
  61. width: $carousel_width;
  62. height: $carousel_height;
  63. transition: background-color .3s;
  64. position: relative;
  65. overflow: hidden;
  66. .swiper-wrapper {
  67. .swiper-slide {
  68. img {
  69. display: block;
  70. width: $carousel_width;
  71. height: $carousel_height;
  72. }
  73. }
  74. }
  75. }
  76. </style>