From 41c7557b6ba2db6c48a9ebbad232b4fb6407f6d6 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期五, 27 六月 2025 16:13:11 +0800
Subject: [PATCH] 神厨页面同步视频推荐
---
pages/kitchen/KitchenVideo.vue | 179 +++++++++++++++++++++-----------------------
pages/health/healthVideo.vue | 2
pages/video/video-play.vue | 2
pages/tabbar/index/home.vue | 2
4 files changed, 88 insertions(+), 97 deletions(-)
diff --git a/pages/health/healthVideo.vue b/pages/health/healthVideo.vue
index 3bf49d0..f10e1e8 100644
--- a/pages/health/healthVideo.vue
+++ b/pages/health/healthVideo.vue
@@ -1354,7 +1354,7 @@
.progress-text {
margin-top: 10px;
font-size: 14px;
- color: #666;
+ color: #fff;
}
.swiper-box {
width: 100%;
diff --git a/pages/kitchen/KitchenVideo.vue b/pages/kitchen/KitchenVideo.vue
index 0223187..43b3432 100644
--- a/pages/kitchen/KitchenVideo.vue
+++ b/pages/kitchen/KitchenVideo.vue
@@ -248,7 +248,7 @@
</scroll-view>
</uni-drawer>
<view v-if="videoList.length===0" style="display: flex;align-items: center;justify-content: center;background-color: #fff;height: 100%">褰撳墠娌℃湁鍙互鏌ョ湅鐨勮棰�</view>
-
+
<custom-tabbar bgColor="#ffffff" selected="kitchen"></custom-tabbar>
</view>
</template>
@@ -342,8 +342,6 @@
startY: 0,
endY: 0
},
-
- videoContexts: [], // 瑙嗛涓婁笅鏂囧璞¢泦鍚�
loading: false, // 鏄惁姝e湪鍔犺浇
videoQuery: {
pageNumber: 1,
@@ -374,10 +372,6 @@
this.getKitchenTypeList();
this.loadVideos();
},
- onReady() {
- // 鍒濆鍖栬棰戜笂涓嬫枃
- this.initVideoContexts();
- },
methods: {
async chooseCategory(id) {
if (this.currentCategort === id) return
@@ -386,7 +380,7 @@
this.videoQuery.kitchenTypeId = id;
this.videoLoading = false;
this.currentIndex = 0;
-
+
await this.loadVideos()
},
getKitchenTypeList() {
@@ -658,14 +652,6 @@
}
})
},
- // 鍒濆鍖栬棰戜笂涓嬫枃
- initVideoContexts() {
- this.videoContexts = this.videoList.map((_, index) => {
- let videoContent = uni.createVideoContext(`video${index}`, this);
- return videoContent;
- });
- },
-
// 鍔犺浇瑙嗛鏁版嵁
async loadVideos() {
console.log(this.loading, this.videoNoMore,this.videoQuery)
@@ -686,9 +672,6 @@
),
];
}
- this.$nextTick(() => {
- this.initVideoContexts();
- });
this.loading = false;
if (res.data.data.length < this.videoQuery.pageSize) {
this.videoNoMore = true;
@@ -701,29 +684,75 @@
// 婊戝姩鍒囨崲瑙嗛
onSwiperChange(e) {
+ this.videoLoading = false
// 濡傛灉瑙嗛澶勪簬鏆傚仠鐘舵�佸線涓嬪埛瑙嗛锛岄偅涔堥渶瑕佸啀璁$畻涓�娆℃殏鍋滄椂闂�
- if (!this.currentVideoIsPlaying) {
- if (this.startPauseTime !== 0) {
- const duration = Date.now() - this.startPauseTime
- this.totalPauseTime += duration
- }
+ if(!this.currentVideoIsPlaying) {
+ if(this.startPauseTime !== 0) {
+ const duration = Date.now() - this.startPauseTime
+ this.totalPauseTime += duration
+ }
}
// 淇濆瓨涓婁竴涓棰戠殑鎾斁璁板綍
this.savePlayRecord()
const oldIndex = this.currentIndex;
this.currentIndex = e.detail.current;
-
+ const videoContext = uni.createVideoContext(`video${oldIndex}`, this);
// 鏆傚仠涓婁竴涓棰�
- if (this.videoContexts[oldIndex]) {
- this.videoContexts[oldIndex].pause();
- }
-
+ videoContext.pause();
this.startPauseTime = 0;
+
+ // 璁剧疆褰撳墠鎾斁瑙嗛鐨勬�绘椂闀�
+ this.duration = this.videoList[this.currentIndex].videoDuration;
+ this.formartDuration = this.sliderFormatTime(this.duration);
+
// 鎾斁褰撳墠瑙嗛
- if (this.videoContexts[this.currentIndex]) {
- this.videoContexts[this.currentIndex].play();
- }
+ const videoContext1 = uni.createVideoContext(`video${this.currentIndex}`, this);
+ videoContext1.play()
+ // 濡傛灉鍓╀綑瑙嗛涓嶈冻锛岃Е鍙戣姹傝幏鍙栨洿澶氳棰�
+ if (this.videoList.length - 1 < this.currentIndex + this.videoLiveOffset) {
+ this.loadVideos()
+ }
},
+
+ // 寮�濮嬭Е鎽�
+ handleSwiperStart(e) {
+ console.log("寮�濮嬭Е鎽�", e);
+ this.touchXY.startX = e.touches[0].pageX
+ this.touchXY.startY = e.touches[0].pageY
+ },
+ // 瑙︽懜涓�
+ handleSwiperMove(e) {
+ this.touchXY.endX = e.touches[0].pageX
+ this.touchXY.endY = e.touches[0].pageY
+ },
+ // 缁撴潫瑙︽懜
+ handleSwiperEnd(item) {
+ // 闃叉婊戝姩婊氬姩鏉′篃瑙﹀彂璺宠浆
+ if (this.showProcess) {
+ return
+ }
+ const diffX = this.touchXY.endX - this.touchXY.startX
+ const diffY = this.touchXY.endY - this.touchXY.startY
+
+ // 鍒ゆ柇鏄惁鏄í鍚戞粦鍔紙X杞村彉鍖栧ぇ浜嶻杞村彉鍖栵級
+ if (Math.abs(diffX) > Math.abs(diffY)) {
+ if (diffX > 0) {
+ console.log('鍙虫粦')
+ if (item.goodsList && item.goodsList.length > 0) {
+ this.jumpToPay(item.id)
+ }
+ } else {
+ console.log('宸︽粦')
+ }
+ }
+ // 閲嶇疆鍧愭爣
+ this.touchXY = {
+ startX: 0,
+ endX: 0,
+ startY: 0,
+ endY: 0
+ }
+ },
// 鏀惰棌/鍙栨秷鏀惰棌
toggleCollect(item, index) {
@@ -804,7 +833,7 @@
onTimeUpdate(e) {
this.videoLoading = false
this.playRecord.playAt = e.detail.currentTime;
-
+
this.currentTime = e.detail.currentTime;
this.progress = (e.detail.currentTime / this.duration) * 100
},
@@ -815,53 +844,15 @@
this.startProgress = this.progress; // 璁板綍寮�濮嬫椂鐨勮繘搴�
this.startX = e.touches[0].pageX;
console.log("璁板綍寮�濮嬫椂鐨勮繘搴�", this.startProgress);
- this.videoContexts[this.currentIndex].pause()
+ const videoContext = uni.createVideoContext(`video${this.currentIndex}`, this);
+ videoContext.pause()
// this.updateProgress(e);
},
- // 寮�濮嬭Е鎽�
- handleSwiperStart(e) {
- console.log("寮�濮嬭Е鎽�", e);
- this.touchXY.startX = e.touches[0].pageX
- this.touchXY.startY = e.touches[0].pageY
- },
- // 瑙︽懜涓�
- handleSwiperMove(e) {
- this.touchXY.endX = e.touches[0].pageX
- this.touchXY.endY = e.touches[0].pageY
- },
- // 缁撴潫瑙︽懜
- handleSwiperEnd(item) {
- // 闃叉婊戝姩婊氬姩鏉′篃瑙﹀彂璺宠浆
- if (this.showProcess) {
- return
- }
- const diffX = this.touchXY.endX - this.touchXY.startX
- const diffY = this.touchXY.endY - this.touchXY.startY
- // 鍒ゆ柇鏄惁鏄í鍚戞粦鍔紙X杞村彉鍖栧ぇ浜嶻杞村彉鍖栵級
- if (Math.abs(diffX) > Math.abs(diffY)) {
- if (diffX > 0) {
- console.log('鍙虫粦')
- if (item.goodsList && item.goodsList.length > 0) {
- this.jumpToPay(item.id)
- }
- } else {
- console.log('宸︽粦')
- }
- }
- // 閲嶇疆鍧愭爣
- this.touchXY = {
- startX: 0,
- endX: 0,
- startY: 0,
- endY: 0
- }
- },
// 瑙︽懜绉诲姩
handleTouchMove(e) {
if (!this.isDragging || !this.barWidth) return;
clearTimeout(this.processHidenTimer)
- this.videoContexts[this.currentIndex].pause()
this.updateProgress(e);
},
@@ -869,31 +860,31 @@
handleTouchEnd() {
this.isDragging = false;
console.log("婊戝姩缁撴潫", this.duration * this.progress);
- this.videoContexts[this.currentIndex].seek(this.duration * this.progress / 100)
- this.videoContexts[this.currentIndex].play()
+ const videoContext = uni.createVideoContext(`video${this.currentIndex}`, this);
+ videoContext.seek(this.duration * this.progress / 100)
+ videoContext.play()
this.processHidenTimer = setTimeout(() => {
- this.showProcess = false;
- }, 1000);
+ this.showProcess = false;
+ }, 1000);
},
// 鏇存柊杩涘害
updateProgress(e) {
- // 鑾峰彇褰撳墠瑙︽懜鐐筙鍧愭爣
- const currentX = e.touches[0].pageX;
+ // 鑾峰彇褰撳墠瑙︽懜鐐筙鍧愭爣
+ const currentX = e.touches[0].pageX;
- // 璁$畻婊戝姩璺濈(鍍忕礌)
- const deltaX = currentX - this.startX;
+ // 璁$畻婊戝姩璺濈(鍍忕礌)
+ const deltaX = currentX - this.startX;
- // 灏嗗儚绱犺窛绂昏浆鎹负杩涘害澧為噺
- const deltaProgress = (deltaX / this.barWidth) * 100;
- console.log("杩涘害澧為噺", deltaProgress);
- // 璁$畻鏂拌繘搴� = 寮�濮嬫椂鐨勮繘搴� + 婊戝姩澧為噺
- let newProgress = this.startProgress + deltaProgress;
+ // 灏嗗儚绱犺窛绂昏浆鎹负杩涘害澧為噺
+ const deltaProgress = (deltaX / this.barWidth) * 100;
+ // 璁$畻鏂拌繘搴� = 寮�濮嬫椂鐨勮繘搴� + 婊戝姩澧為噺
+ let newProgress = this.startProgress + deltaProgress;
- // 闄愬埗鑼冨洿鍦�0-100涔嬮棿
- newProgress = Math.max(0, Math.min(100, newProgress));
+ // 闄愬埗鑼冨洿鍦�0-100涔嬮棿
+ newProgress = Math.max(0, Math.min(100, newProgress));
- this.progress = newProgress;
+ this.progress = newProgress;
},
// 瑙嗛缂撳啿
videoWaiting(index) {
@@ -904,9 +895,9 @@
},
// 鑾峰彇瑙嗛鎬绘椂闀�
onLoadedMetadata(e) {
- this.duration = e.detail.duration;
- this.formartDuration.push(this.sliderFormatTime(this.duration));
- console.log("瑙嗛鎬绘椂闀�", this.duration);
+ // this.duration = e.detail.duration;
+ // this.formartDuration.push(this.sliderFormatTime(this.duration));
+ // console.log("瑙嗛鎬绘椂闀�", this.duration);
},
// 淇濆瓨鎾斁璁板綍
async savePlayRecord() {
@@ -1385,7 +1376,7 @@
.progress-text {
margin-top: 10px;
font-size: 14px;
- color: #666;
+ color: #fff;
}
.swiper-box {
@@ -1432,4 +1423,4 @@
background-color: lightpink !important;
}
-</style>
\ No newline at end of file
+</style>
diff --git a/pages/tabbar/index/home.vue b/pages/tabbar/index/home.vue
index 078a1bb..3f1ecb8 100644
--- a/pages/tabbar/index/home.vue
+++ b/pages/tabbar/index/home.vue
@@ -1355,7 +1355,7 @@
.progress-text {
margin-top: 10px;
font-size: 14px;
- color: #666;
+ color: #fff;
}
.swiper-box {
width: 100%;
diff --git a/pages/video/video-play.vue b/pages/video/video-play.vue
index 157db00..6601c76 100644
--- a/pages/video/video-play.vue
+++ b/pages/video/video-play.vue
@@ -1327,7 +1327,7 @@
.progress-text {
margin-top: 10px;
font-size: 14px;
- color: #666;
+ color: #fff;
}
.swiper-box {
width: 100%;
--
Gitblit v1.8.0