| | |
| | | > |
| | | 作品{{`(${videoTotal})`}} |
| | | </view> |
| | | <view |
| | | <view |
| | | class="tab-item" |
| | | :class="{active: currentTab === 'collect'}" |
| | | @click="switchTab('collect')" |
| | |
| | | 喜欢 |
| | | </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"> |
| | |
| | | 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"> |
| | |
| | | </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" |
| | |
| | | :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"> |
| | |
| | | </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 |
| | |
| | | :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"> |
| | |
| | | |
| | | 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: [ |
| | |
| | | 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: '', |