绿满眶商城微信小程序-uniapp
peng
2025-09-01 f438257c5ab266170ead5de47e966a72d67411e0
pages/video/home-page.vue
@@ -50,7 +50,7 @@
          >
            作品{{`(${videoTotal})`}}
          </view>
          <view
         <view
            class="tab-item"
            :class="{active: currentTab === 'collect'}"
            @click="switchTab('collect')"
@@ -65,7 +65,9 @@
          喜欢
        </view>
        </view>
        <!-- 视频列表 -->
      <scroll-view class="video-list" scroll-y :show-scrollbar="false" @scrolltolower="getPage" v-show="currentTab === 'works' && videoList.length > 0">
         <view class="video-container">
@@ -74,7 +76,16 @@
              v-for="(item, index) in videoList"
              :key="item.id"
            >
              <image class="video-cover" @click="playAuthorVideo(index)" :src="item.videoContentType === 'video' ? item.coverUrl : item.imgs[0]" mode="aspectFill"></image>
              <image v-if="item.videoContentType === 'img'" class="video-cover" @click="playAuthorVideo(index)" :src="item.imgs[0]" mode="aspectFill"></image>
              <!-- <image class="video-cover" @click="playAuthorVideo(index)" :src="item.videoContentType === 'video' ? item.coverUrl : item.imgs[0]" mode="aspectFill"></image> -->
              <video v-else :src="item.videoUrl"
              :poster-for-crawler='item.coverUrl'
              object-fit='"cover"'
              :show-fullscreen-btn='false'
              :show-play-btn='false'
              :show-center-play-btn='false'
              :enable-progress-gesture='false'
               class="video-cover" @click="playAuthorVideo(index)"></video>
              <view class="video-info">
                <view class="video-stats">
                  <view class="stat">
@@ -95,7 +106,10 @@
            </view>
         </view>
      </scroll-view>
      <scroll-view class="video-list" scroll-y :show-scrollbar="false" @scrolltolower="getPage" v-show="currentTab === 'collect' && collectVideoList.length > 0">
      <view>
         <mycollect v-show ="currentTab ==='collect'"></mycollect>
      </view>
   <!--    <scroll-view class="video-list" scroll-y :show-scrollbar="false" @scrolltolower="getPage" v-show="currentTab === 'collect' && collectVideoList.length > 0">
         <view class="video-container">
            <view
              class="video-item"
@@ -103,7 +117,16 @@
              :key="item.id"
              @click="playCollectVideo(index)"
            >
              <image class="video-cover" :src="item.videoContentType === 'video' ? item.coverUrl : item.imgs[0]" mode="aspectFill"></image>
            <image v-if="tem.videoContentType === 'img'" class="video-cover" :src="item.imgs[0]" mode="aspectFill"></image>
               <video v-else class="video-cover"
               :src="item.videoUrl"
               initial-time='0.01'
               muted
               :controls="false"
               :show-center-play-btn="false"
               object-fit="cover"></video>
              <view class="video-info">
                <view class="video-stats">
                  <view class="stat">
@@ -114,7 +137,7 @@
              </view>
            </view>
         </view>
      </scroll-view>
      </scroll-view> -->
      <scroll-view class="video-list" scroll-y :show-scrollbar="false" @scrolltolower="getPage" v-show="currentTab === 'likes' && likeVideoList.length > 0">
         <view class="video-container">
            <view
@@ -123,7 +146,13 @@
              :key="item.id"
              @click="playLikeVideo(index)"
            >
              <image class="video-cover" :src="item.videoContentType === 'video' ? item.coverUrl : item.imgs[0]" mode="aspectFill"></image>
              <video class="video-cover"
              :src="item.videoContentType === 'video' ? item.videoUrl : item.imgs[0]" mode="aspectFill"
              initial-time='0.01'
              muted
              :controls="false"
              :show-center-play-btn="false"
              object-fit="cover"></video>
              <view class="video-info">
                <view class="video-stats">
                  <view class="stat">
@@ -167,12 +196,14 @@
</template>
<script>
import DropdownMenu from '@/components/dropdown-menu.vue'
import DropdownMenu from '@/pages/video/dropdown-menu.vue'
import {getAuthorInfo, getAuthorVideoPage, getAuthorCollectVideoPage, getAuthorLikeVideoPage} from '@/api/user.js'
import {subscribe, unSubscribe, delVideo, updateVideo, userDownVideo} from '@/api/video.js'
import mycollect from '@/pages/video/myCollect.vue'
export default {
  components: {DropdownMenu},
  components: {DropdownMenu,
  mycollect},
  data() {
    return {
     options: [
@@ -246,6 +277,13 @@
   this.getAuthorVideoPage();
  },
  methods: {
      getCoverUrl(item) {
           if (item.videoContentType === 'video') {
             // OSS视频封面参数(完整格式)
             return `${item.videoUrl}?x-oss-process=video/snapshot,t_1000,f_jpg,m_fast`
           }
           return item.imgs?.[0]
         },
   dialogClose() {
      this.opVideo = {
         id: '',