From d7b8298e174d39256beb3803d120de191b60621f Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期五, 04 七月 2025 15:32:21 +0800
Subject: [PATCH] 上传调整
---
pages/video/home-page.vue | 131 ++++++++++++++++++++++++++++++++++++++++---
1 files changed, 120 insertions(+), 11 deletions(-)
diff --git a/pages/video/home-page.vue b/pages/video/home-page.vue
index 4aebb07..4188a83 100644
--- a/pages/video/home-page.vue
+++ b/pages/video/home-page.vue
@@ -52,11 +52,18 @@
</view>
<view
class="tab-item"
- :class="{active: currentTab === 'likes'}"
- @click="switchTab('likes')"
+ :class="{active: currentTab === 'collect'}"
+ @click="switchTab('collect')"
>
- 鍠滄
+ 鏀惰棌
</view>
+ <view
+ class="tab-item"
+ :class="{active: currentTab === 'likes'}"
+ @click="switchTab('likes')"
+ >
+ 鍠滄
+ </view>
</view>
<!-- 瑙嗛鍒楄〃 -->
@@ -88,13 +95,33 @@
</view>
</view>
</scroll-view>
- <scroll-view class="video-list" scroll-y :show-scrollbar="false" @scrolltolower="getPage" v-show="currentTab === 'likes' && collectVideoList.length > 0">
+ <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"
v-for="(item, index) in collectVideoList"
:key="item.id"
@click="playCollectVideo(index)"
+ >
+ <image class="video-cover" :src="item.videoContentType === 'video' ? item.coverUrl : item.imgs[0]" mode="aspectFill"></image>
+ <view class="video-info">
+ <view class="video-stats">
+ <view class="stat">
+ <uni-icons type="heart" size="16" color="#fff"></uni-icons>
+ <text>{{item.collectNum}}</text>
+ </view>
+ </view>
+ </view>
+ </view>
+ </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
+ class="video-item"
+ v-for="(item, index) in likeVideoList"
+ :key="item.id"
+ @click="playLikeVideo(index)"
>
<image class="video-cover" :src="item.videoContentType === 'video' ? item.coverUrl : item.imgs[0]" mode="aspectFill"></image>
<view class="video-info">
@@ -115,7 +142,12 @@
<text class="empty-text">杩樻湭鍙戝竷浣滃搧鍝</text>
</view>
<!-- 绌虹姸鎬� -->
- <view class="empty-state" v-if="collectVideoList.length === 0 && currentTab === 'likes'">
+ <view class="empty-state" v-if="collectVideoList.length === 0 && currentTab === 'collect'">
+ <!-- <image src="/static/images/empty.png" mode="aspectFit" class="empty-image"></image> -->
+ <text class="empty-text">杩樻病鏈夋敹钘忎綔鍝佸摝~</text>
+ </view>
+ <!-- 绌虹姸鎬� -->
+ <view class="empty-state" v-if="likeVideoList.length === 0 && currentTab === 'likes'">
<!-- <image src="/static/images/empty.png" mode="aspectFit" class="empty-image"></image> -->
<text class="empty-text">杩樻病鏈夌偣璧炰綔鍝佸摝~</text>
</view>
@@ -137,7 +169,7 @@
<script>
import DropdownMenu from '@/components/dropdown-menu.vue'
-import {getAuthorInfo, getAuthorVideoPage, getAuthorCollectVideoPage} from '@/api/user.js'
+import {getAuthorInfo, getAuthorVideoPage, getAuthorCollectVideoPage, getAuthorLikeVideoPage} from '@/api/user.js'
import {subscribe, unSubscribe, delVideo, updateVideo, userDownVideo} from '@/api/video.js'
export default {
components: {DropdownMenu},
@@ -175,17 +207,40 @@
pageNumber: 1,
pageSize: 10
},
+ likeVideoQuery: {
+ authorId: '',
+ pageNumber: 1,
+ pageSize: 10
+ },
videoTotal: 0,
videoList: [], // 浣滃搧
collectVideoList: [], // 鏀惰棌
+ likeVideoList: [], // 鐐硅禐
nomoreVideo: false,
- nomoreCollectVideo: false
+ nomoreCollectVideo: false,
+ nomoreLikeVideo: false,
}
},
onShow() {
- this.getAuthorInfo();
+ if (this.authorId) {
+ this.getAuthorInfo();
+ if (this.currentTab === 'works') {
+ this.videoQuery.pageNumber = 1
+ this.nomoreVideo = false
+ this.getAuthorVideoPage();
+ } else if (this.currentTab === 'collect') {
+ this.collectVideoQuery.pageNumber = 1
+ this.nomoreCollectVideo = false
+ this.getAuthorCollectVideoPage()
+ } else if (this.currentTab === 'likes') {
+ this.likeVideoQuery.pageNumber = 1
+ this.nomoreLikeVideo = false
+ this.getAuthorLikeVideoPage()
+ }
+ }
},
onLoad(option) {
+ console.log("鏀跺埌鍙傛暟", option);
this.authorId = option.authorId;
this.getAuthorInfo();
this.getAuthorVideoPage();
@@ -261,7 +316,7 @@
this.videoQuery.pageNumber += 1;
}
})
- } else if(this.currentTab === 'likes') {
+ } else if(this.currentTab === 'collect') {
if(this.nomoreCollectVideo) {
return;
}
@@ -280,6 +335,27 @@
this.nomoreCollectVideo = true;
} else {
this.collectVideoQuery.pageNumber += 1;
+ }
+ })
+ } else if(this.currentTab === 'likes') {
+ if(this.nomoreLikeVideo) {
+ return;
+ }
+ getAuthorLikeVideoPage(this.likeVideoQuery).then(res => {
+ if(this.likeVideoQuery.pageNumber === 1) {
+ this.likeVideoList = res.data.data
+ } else {
+ this.likeVideoList = [
+ ...this.likeVideoList,
+ ...res.data.data.filter(
+ (newItem) => !this.likeVideoList.some((oldItem) => oldItem.id === newItem.id)
+ ),
+ ];
+ }
+ if(res.data.data.length < this.likeVideoQuery.pageSize) {
+ this.nomoreLikeVideo = true;
+ } else {
+ this.likeVideoQuery.pageNumber += 1;
}
})
}
@@ -333,14 +409,34 @@
this.currentTab = tab;
if(tab === 'works') {
this.collectVideoList = []
+ this.likeVideoList = []
this.videoQuery.pageNumber = 1
+ this.nomoreVideo = false
this.getAuthorVideoPage()
+ } else if(tab === 'collect') {
+ this.videoList = []
+ this.likeVideoList = []
+ this.collectVideoQuery.pageNumber = 1
+ this.nomoreCollectVideo = false
+ this.getAuthorCollectVideoPage()
} else if(tab === 'likes') {
this.videoList = []
- this.collectVideoQuery.pageNumber = 1
- this.getAuthorCollectVideoPage()
+ this.collectVideoList = []
+ this.likeVideoQuery.pageNumber = 1
+ this.nomoreLikeVideo = false
+ this.getAuthorLikeVideoPage()
}
},
+ // 鑾峰彇浣滆�呭枩娆㈢殑瑙嗛
+ async getAuthorLikeVideoPage() {
+ this.likeVideoQuery.authorId = this.authorId
+ getAuthorLikeVideoPage(this.likeVideoQuery).then(res => {
+ this.likeVideoList = res.data.data
+ if(res.data.data.length < this.likeVideoQuery.pageSize) {
+ this.nomoreLikeVideo = true;
+ }
+ })
+ },
// 鑾峰彇浣滆�呯殑鏀惰棌瑙嗛
async getAuthorCollectVideoPage() {
this.collectVideoQuery.authorId = this.authorId
@@ -377,6 +473,19 @@
url: `/pages/video/video-play?authorId=${this.authorId}&videoFrom=collect`
});
},
+ // 鎾斁鐐硅禐瑙嗛
+ playLikeVideo(index) {
+ const playInfo = {
+ videoList: this.likeVideoList,
+ nomore: this.nomoreLikeVideo,
+ pageNumber: this.likeVideoQuery.pageNumber,
+ playIndex: index
+ }
+ uni.setStorageSync("playInfo", playInfo)
+ uni.navigateTo({
+ url: `/pages/video/video-play?authorId=${this.authorId}&videoFrom=like`
+ });
+ },
// 缂栬緫涓汉璧勬枡
editInfo() {
uni.navigateTo({
--
Gitblit v1.8.0