From cbafbc0a3a704cc48e76ef0862ffcf74433186ff Mon Sep 17 00:00:00 2001 From: peng <peng.com> Date: 星期一, 25 八月 2025 18:48:47 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev_fix_sub' into dev_fix_sub --- pages/tabbar/index/home.vue | 144 +++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 129 insertions(+), 15 deletions(-) diff --git a/pages/tabbar/index/home.vue b/pages/tabbar/index/home.vue index 694bf8e..fe1fcd6 100644 --- a/pages/tabbar/index/home.vue +++ b/pages/tabbar/index/home.vue @@ -202,11 +202,13 @@ </view> <view v-else class="comment-item" v-for="(comment, index) in comments" :key="comment.id"> - <view style="display: flex;"> + <view style="display: flex;" > <image class="comment-avatar" :src="comment.userAvatar || '/static/default-avatar.png'"></image> <view class="comment-content"> - <text class="nickname">{{comment.userNickname}} <text v-if="userId===comment.userId">(鎴�)</text> </text> - <text class="content">{{comment.commentContent}}</text> + <view @click="replyClick(comment)"> + <text class="nickname">{{comment.userNickname}} <text v-if="userId===comment.userId">(鎴�)</text> </text> + <text class="content">{{comment.commentContent}}</text> + </view> <view style="position: relative;"> <text class="time">{{formatTime(comment.createTime)}}</text> <text @click="openReply(comment)" class="reply-btu time">鍥炲</text> @@ -218,7 +220,7 @@ <!-- 鍥炲鍒楄〃 --> <view class="reply-list" v-if="comment.replies && comment.replies.length > 0"> <view class="reply-item" v-for="(reply, replyIndex) in comment.replies" :key="reply.id"> - <view class="reply-content"> + <view class="reply-content" @click="replyClick(reply)"> <view style="display: flex;"> <image class="comment-reply-avatar" :src="reply.replyUserAvatar || '/static/default-avatar.png'"></image> <text class="nickname">{{reply.userNickname}}<text v-if="userId===comment.userId">(鎴�)</text></text> @@ -261,6 +263,16 @@ <custom-tabbar bgColor="#333333" selected="index" selectedTextColor="#ffffff"></custom-tabbar> + + <ActivityPopup + :show="activityPopup.show" + :activityTitle="activityPopup.title" + :activityDesc="activityPopup.desc" + :activityImage="activityPopup.image" + :endTime="activityPopup.endTime" + :prizeActivityId="activityPopup.prizeActivityId" + @close="onClosePopup" + /> </view> </template> @@ -274,8 +286,13 @@ thubmsUpComment, cancelThubmsUpComment, changeThumbsUp, - getGoodsSimilarlyVideos + getGoodsSimilarlyVideos, + removeByIdVideoComment, } from "@/api/video.js"; + +import ActivityPopup from '@/pages/ActivityPopup/ActivityPopup.vue' +import { mapState, mapMutations } from 'vuex' +import {setPopupRedisTime,getPopupAcitivty} from '@/api/popup.js' import { changeCollect } from "@/api/collect.js"; import { saveShare, saveShareClickRecord } from "@/api/share.js"; import { silentLogin } from "@/api/connect.js"; @@ -283,13 +300,15 @@ import storage from "@/utils/storage.js"; import TopBar from "@/components/TopBar.vue"; import { nextTick } from "vue"; - +import {getVideoCover } from "@/api/common.js" export default { - components: {TopBar}, + components: {TopBar,ActivityPopup}, computed: { hasPlayTime() { return this.sliderFormatTime(this.progress > 0 ? this.duration * this.progress / 100 : 0); - } + }, + // 閿欒锛氭病鏈夌敤 ... 灞曞紑锛屽鑷� activityPopup 鏄嚱鏁� + ...mapState(['activityPopup']) }, data() { return { @@ -382,6 +401,10 @@ } }, onShow() { + + this.openActivityPopup() + + if(!this.userId){ this.getUserId() } @@ -463,12 +486,100 @@ shareUser: userInfo.id } saveShare(data) - return { - title: videoInfo.title, - path: `/pages/tabbar/index/home?videoId=${videoInfo.id}&userId=${userInfo.id}`, - } - }, + // getVideoCover(videoInfo.id).then(res =>{ + // if(res.statusCode === 200){ + // imageUrl = res.data.data + // console.log(imageUrl) + // return { + // title: videoInfo.title, + // path: `/pages/tabbar/index/home?videoId=${videoInfo.id}&userId=${userInfo.id}`, + // imageUrl: imageUrl + // } + // } + + // }) + console.log(videoInfo) + return { + title: videoInfo.title, + path: `/pages/tabbar/index/home?videoId=${videoInfo.id}&userId=${userInfo.id}`, + imageUrl: videoInfo.coverUrl + } + // 淇濆瓨鍒嗕韩璁板綍 + }, methods: { + async openActivityPopup() { + await getPopupAcitivty().then(res =>{ + if(res.statusCode === 200){ + let obj = res.data.data; + if(obj.enableStatus === 'ON'){ + setPopupRedisTime().then(res =>{ + if(res.statusCode === 200){ + if(res.data.state){ + this.showActivityPopup({ + title: obj.activityName, + desc: obj.activityDes, + image: obj.activityCoverUrl, + endTime:new Date(obj.endTime).getTime(), + prizeActivityId:obj.id + }) + }else{ + this.hideActivityPopup() + } + + } + }); + } + + } + }) + + }, + ...mapMutations(['showActivityPopup','hideActivityPopup']), // 寮曞叆Vuex鐨勬柟娉� + onClosePopup() { + this.hideActivityPopup() + }, + replyClick(reply){ + + if(this.userId === reply.userId){ + let that = this; + uni.showModal({ + title: '鎻愮ず', + content: '浣犵‘瀹氳鍒犻櫎鍚�', + success: function (res) { + if (res.confirm) { + console.log('纭畾'); + //璋冪敤鍒犻櫎鐨勯�昏緫 + console.log(reply) + removeByIdVideoComment(reply.id).then(res =>{ + const item = { + id:reply.videoId + } + that.commentQuery.pageNumber = 1; + //閲嶆柊鏇存柊璇勮 + that.showComments(item); + }) + + } else if (res.cancel) { + console.log('鍙栨秷'); + } + } + }); + + } + console.log(reply) + }, + // 鎴彇瑙嗛褰撳墠甯� + captureVideoFrame(videoCtx) { + return new Promise((resolve) => { + videoCtx.requestFrame(() => { + wx.canvasToTempFilePath({ + canvasId: 'shareCanvas', + success: (res) => resolve(res), + fail: () => resolve({ tempFilePath: '/assets/default-cover.jpg' }) + }); + }); + }); + }, requestFullScreen(id,item){ console.log(item) @@ -813,6 +924,7 @@ this.commentQuery.pageNumber++; }) }, + // 鏄剧ず璇勮寮圭獥 async showComments(item) { this.commentForm.videoId = item.id; @@ -1230,6 +1342,9 @@ <style scoped> .fullscreen-btn { + position: absolute; + right: 45rpx; + bottom: 70rpx; width: 60rpx; height: 60rpx; border-radius: 50%; @@ -1240,8 +1355,7 @@ z-index: 999; backdrop-filter: blur(10rpx); border: 1rpx solid rgba(255, 255, 255, 0.2); - margin-top: -90rpx; - margin-left: 15rpx; + } /* 鍥炬爣鏍峰紡 */ .fullscreen-icon { -- Gitblit v1.8.0