template-book-Banner.vue 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <template>
  2. <view class="book-Banner-content">
  3. <swiper class="swiper"
  4. :indicator-dots="true"
  5. :autoplay="true"
  6. :interval="3000"
  7. :duration="500"
  8. :circular="true"
  9. indicator-color='#ffffff'
  10. indicator-active-color='#dc5656'>
  11. <swiper-item v-for="(item, index) in templateData.list" :key="index" @click="clickItem(item)">
  12. <image class="image" :src="item.cover" mode=""></image>
  13. </swiper-item>
  14. </swiper>
  15. </view>
  16. </template>
  17. <script setup lang="ts">
  18. import { banner_data, book_item_data } from '../../../data/data';
  19. defineProps({
  20. templateData:Object,
  21. })
  22. const emits = defineEmits(['clickBook'])
  23. function clickItem(data:banner_data) {
  24. // 跳转类型 0 不跳转 1 小说 2 公告
  25. if(data.jump_type==1) {
  26. let book_data = new book_item_data()
  27. book_data.book_id = data.jump_id
  28. emits('clickBook',book_data)
  29. }
  30. }
  31. </script>
  32. <style lang="scss">
  33. .book-Banner-content{
  34. display: flex;
  35. justify-content: center; //水平居中
  36. align-items: center; //垂直居中
  37. overflow: hidden;//内容超出隐藏
  38. padding: 0px 20rpx;
  39. margin-bottom: 36rpx;
  40. .swiper{
  41. width: 100%;
  42. height: 314rpx;
  43. .image{
  44. width: 100%;
  45. height: 100%;
  46. // background-color: orange;
  47. }
  48. }
  49. }
  50. </style>