video.wxml 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. <!--pages/video/video.wxml-->
  2. <view class="container">
  3. <!-- 顶部导航栏 -->
  4. <view class="nav-container">
  5. <scroll-view scroll-x class="nav-category-scroll" show-scrollbar="{{false}}">
  6. <view class="nav-category-list">
  7. <view
  8. wx:for="{{ categoryList }}"
  9. wx:key="id"
  10. class="nav-category-item {{ currentCategoryId === item.id ? 'active' : '' }}"
  11. bindtap="switchCategory"
  12. data-id="{{ item.id }}"
  13. >
  14. {{ item.name }}
  15. </view>
  16. </view>
  17. </scroll-view>
  18. </view>
  19. <!-- 视频列表 -->
  20. <scroll-view
  21. scroll-y
  22. class="list-container"
  23. bindscrolltolower="loadMore"
  24. enable-back-to-top
  25. enhanced="{{ true }}"
  26. show-scrollbar="{{ false }}"
  27. bounces="{{ true }}"
  28. fast-deceleration="{{ true }}"
  29. >
  30. <view class="list">
  31. <block wx:for="{{ videoList }}" wx:key="id">
  32. <view wx:if="{{ item.adType === 'video' }}">
  33. <!-- 视频卡片 -->
  34. <view class="video-item" bindtap="onVideoTap" data-info="{{ item }}" data-id="{{ item.id }}">
  35. <view class="video-cover-container">
  36. <image
  37. class="video-cover"
  38. src="{{ item.cover_image }}"
  39. mode="aspectFill"
  40. />
  41. <view class="play-button-container">
  42. <view class="play-button">
  43. <image
  44. class="play-icon"
  45. src="/assets/images/icon-video-play.png"
  46. ></image>
  47. </view>
  48. </view>
  49. </view>
  50. <view class="video-title">{{ item.title }}</view>
  51. <view class="video-play-count">{{ item.views }}w+人播放</view>
  52. <view class="share-button" catchtap="onShareTap">
  53. <image
  54. class="share-icon"
  55. src="/assets/images/icons/icon-wechat.png"
  56. catchtap="onShareTap"
  57. ></image>
  58. <text>分享</text>
  59. <button class="share-cover-button" open-type="share" data-video="{{ item }}" catchtap></button>
  60. </view>
  61. </view>
  62. </view>
  63. <!-- 卡片原生广告 -->
  64. <view wx:if="{{hasLoadAdConfig && itm.adType === 'templateAd' }}" class="ad-custom-card-1">
  65. <ad-custom unit-id="{{ads.template_card_ads}}" data-field="templateError" data-name="首页页-卡片原生"
  66. data-adId="{{ads.template_card_ads}}" capture-bind:tap="appletsAdClick" bindload="appletsAdLoad"
  67. binderror="appletsAdError"></ad-custom>
  68. </view>
  69. </block>
  70. </view>
  71. <!-- 加载状态 -->
  72. <view class="loading-status">
  73. <!-- loading 提示 -->
  74. <view class="loading" wx:if="{{ loading }}">
  75. <view class="loading-spinner"></view>
  76. <text>加载中...</text>
  77. </view>
  78. <!-- 没有更多 -->
  79. <view
  80. class="finished"
  81. wx:if="{{ !loading && videoList.length > 0 && !hasMore }}"
  82. >
  83. <text>没有更多视频了</text>
  84. </view>
  85. <!-- 空状态 -->
  86. <view class="empty" wx:if="{{ !loading && videoList.length === 0 }}">
  87. <image class="empty-icon" src="/assets/images/empty.png"></image>
  88. <text>暂无视频内容</text>
  89. </view>
  90. </view>
  91. </scroll-view>
  92. <!-- 刷新按钮 -->
  93. <view class="refresh-container" bindtap="refreshList">
  94. <image class="refresh-bg" src="/assets/images/icons/refresh-bg.png"></image>
  95. <image class="refresh-btn" src="/assets/images/icons/refresh.png"></image>
  96. </view>
  97. </view>