t-i-banner.vue 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <template>
  2. <view>
  3. <view class="banner">
  4. <swiper class="box" autoplay circular>
  5. <swiper-item v-for="(item,index) in banners" :key="item.id">
  6. <view class="item">
  7. <view class="img">
  8. <image :src="item.imgURL"></image>
  9. </view>
  10. <view class="title">
  11. <view>{{item.title}}</view>
  12. <view class="num">
  13. - <text> {{index+1}} </text> -
  14. </view>
  15. </view>
  16. </view>
  17. </swiper-item>
  18. </swiper>
  19. </view>
  20. </view>
  21. </template>
  22. <script>
  23. export default {
  24. name:"t-i-banner",
  25. props: [
  26. "base_url"
  27. ],
  28. data() {
  29. return {
  30. banners:[]
  31. }
  32. },
  33. created() {
  34. this.get_banner()
  35. },
  36. methods: {
  37. get_banner(){
  38. uni.request({
  39. url: this.base_url + "/scrollImg/list",
  40. method: "GET",
  41. success: (res) => {
  42. this.banners = res.data.data.data
  43. }
  44. })
  45. }
  46. }
  47. }
  48. </script>
  49. <style lang="scss">
  50. .banner{
  51. .box{
  52. width: 750rpx;
  53. height: 600rpx;
  54. .item{
  55. width: 750rpx;
  56. .img{
  57. image{
  58. width: 750rpx;
  59. height: 500rpx;
  60. }
  61. }
  62. .title{
  63. box-sizing: border-box;
  64. padding: 0 25rpx;
  65. width: 750rpx;
  66. height: 120rpx;
  67. line-height: 1.5;
  68. font-size: 28rpx;
  69. position: relative;
  70. .num{
  71. position: absolute;
  72. bottom: 35rpx;
  73. right: 25rpx;
  74. color: #ACB0AC;
  75. text{
  76. color: #23A2EE;
  77. }
  78. }
  79. }
  80. }
  81. }
  82. }
  83. </style>