topSwiper.vue 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <template>
  2. <view class="carousel">
  3. <swiper :circular="true" duration="400" @change="swiperChange">
  4. <swiper-item class="swiper-item" v-for="(item, index) in imgList" :key="index">
  5. <view class="image-wrapper"><image :src="item" class="loaded" mode="aspectFit"></image></view>
  6. </swiper-item>
  7. </swiper>
  8. <view class="swiper-dots" v-show="isShow">
  9. <text class="num">{{ swiperCurrent + 1 }}</text>
  10. <text class="sign">/</text>
  11. <text class="num">{{ imgList.length || 1 }}</text>
  12. </view>
  13. </view>
  14. </template>
  15. <script>
  16. export default {
  17. props: {
  18. imgList: {
  19. type: Array,
  20. default: function () {
  21. return []
  22. }
  23. },
  24. },
  25. data() {
  26. return {
  27. swiperCurrent: 0,
  28. swiperLength:0,
  29. isShow: true
  30. };
  31. },
  32. methods: {
  33. swiperChange(e) {
  34. console.log('ddd')
  35. const index = e.detail.current;
  36. this.swiperCurrent = index;
  37. // this.titleNViewBackground = this.carouselList[index].background;
  38. }
  39. },
  40. created() {
  41. var pages = getCurrentPages();
  42. var page = (pages[pages.length - 1]).route;
  43. if(page == 'pages/product/groupBooking/productGroup'){
  44. this.isShow = false
  45. }
  46. }
  47. // computed: {
  48. // isShow() {
  49. // return this.$mp.page.route === 'pages/product/groupBooking/productGroup' ? false : true
  50. // }
  51. // }
  52. };
  53. </script>
  54. <style lang="scss">
  55. .carousel {
  56. /* #ifdef APP-PLUS */
  57. padding-top: var(--status-bar-height);
  58. /* #endif */
  59. height: 520rpx;
  60. position: relative;
  61. swiper {
  62. height: 100%;
  63. }
  64. .image-wrapper {
  65. width: 100%;
  66. height: 100%;
  67. }
  68. .swiper-item {
  69. display: flex;
  70. justify-content: center;
  71. align-content: center;
  72. height: 520rpx;
  73. overflow: hidden;
  74. image {
  75. width: 100%;
  76. height: 100%;
  77. }
  78. }
  79. }
  80. .swiper-dots {
  81. display: flex;
  82. position: absolute;
  83. right: 26rpx;
  84. bottom: 30rpx;
  85. width: 72rpx;
  86. height: 36rpx;
  87. background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABkCAYAAADDhn8LAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTMyIDc5LjE1OTI4NCwgMjAxNi8wNC8xOS0xMzoxMzo0MCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OTk4MzlBNjE0NjU1MTFFOUExNjRFQ0I3RTQ0NEExQjMiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OTk4MzlBNjA0NjU1MTFFOUExNjRFQ0I3RTQ0NEExQjMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6Q0E3RUNERkE0NjExMTFFOTg5NzI4MTM2Rjg0OUQwOEUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6Q0E3RUNERkI0NjExMTFFOTg5NzI4MTM2Rjg0OUQwOEUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4Gh5BPAAACTUlEQVR42uzcQW7jQAwFUdN306l1uWwNww5kqdsmm6/2MwtVCp8CosQtP9vg/2+/gY+DRAMBgqnjIp2PaCxCLLldpPARRIiFj1yBbMV+cHZh9PURRLQNhY8kgWyL/WDtwujjI8hoE8rKLqb5CDJaRMJHokC6yKgSCR9JAukmokIknCQJpLOIrJFwMsBJELFcKHwM9BFkLBMKFxNcBCHlQ+FhoocgpVwwnv0Xn30QBJGMC0QcaBVJiAMiec/dcwKuL4j1QMsVCXFAJE4s4NQA3K/8Y6DzO4g40P7UcmIBJxbEesCKWBDg8wWxHrAiFgT4fEGsB/CwIhYE+AeBAAdPLOcV8HRmWRDAiQVcO7GcV8CLM8uCAE4sQCDAlHcQ7x+ABQEEAggEEAggEEAggEAAgQACASAQQCCAQACBAAIBBAIIBBAIIBBAIABe4e9iAe/xd7EAJxYgEGDeO4j3EODp/cOCAE4sYMyJ5cwCHs4rCwI4sYBxJ5YzC84rCwKcXxArAuthQYDzC2JF0H49LAhwYUGsCFqvx5EF2T07dMaJBetx4cRyaqFtHJ8EIhK0i8OJBQxcECuCVutxJhCRoE0cZwMRyRcFefa/ffZBVPogePihhyCnbBhcfMFFEFM+DD4m+ghSlgmDkwlOgpAl4+BkkJMgZdk4+EgaSCcpVX7bmY9kgXQQU+1TgE0c+QJZUUz1b2T4SBbIKmJW+3iMj2SBVBWz+leVfCQLpIqYbp8b85EskIxyfIOfK5Sf+wiCRJEsllQ+oqEkQfBxmD8BBgA5hVjXyrBNUQAAAABJRU5ErkJggg==);
  88. background-size: 100% 100%;
  89. .num {
  90. width: 36rpx;
  91. height: 36rpx;
  92. border-radius: 50px;
  93. font-size: 24rpx;
  94. color: #fff;
  95. text-align: center;
  96. line-height: 36rpx;
  97. }
  98. .sign {
  99. position: absolute;
  100. top: 0;
  101. left: 50%;
  102. line-height: 36rpx;
  103. font-size: 12rpx;
  104. color: #fff;
  105. transform: translateX(-50%);
  106. }
  107. }
  108. </style>