From 0270abc763a1a2ca1162f2fd49b1734d6c5652b2 Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期三, 15 十月 2025 00:42:24 +0800
Subject: [PATCH] 首页视频优化
---
pages/kitchen/KitchenVideo.vue | 149 +++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 131 insertions(+), 18 deletions(-)
diff --git a/pages/kitchen/KitchenVideo.vue b/pages/kitchen/KitchenVideo.vue
index 84bc77d..f69b41b 100644
--- a/pages/kitchen/KitchenVideo.vue
+++ b/pages/kitchen/KitchenVideo.vue
@@ -39,7 +39,7 @@
@click="togglePlay(index)"
v-show="!currentVideoIsPlaying"
>
- <image src="/static/video/play.png" style="width: 45px;height: 45px" mode="aspectFit"></image>
+ <image src="/pages/subComponents/static/video/play.png" style="width: 45px;height: 45px" mode="aspectFit"></image>
</view>
<video
v-if="index >= currentIndex - videoLiveOffset && index <= currentIndex + videoLiveOffset"
@@ -283,6 +283,9 @@
import {
changeCollect
} from "@/api/collect.js";
+import { saveShare, saveShareClickRecord } from "@/api/share.js";
+import storage from "@/utils/storage.js";
+
export default {
computed: {
hasPlayTime() {
@@ -367,6 +370,7 @@
},
loading: false, // 鏄惁姝e湪鍔犺浇
videoQuery: {
+ source: 'system',
pageNumber: 1,
pageSize: 6,
videoFrom: 'recommend',
@@ -398,23 +402,97 @@
onHide() {
this.startHidenTime = Date.now()
},
- onLoad() {
- this.marginBottom = uni.getSystemInfoSync().safeAreaInsets.bottom
- // 鑾峰彇鐘舵�佹爮楂樺害
- const systemInfo = uni.getSystemInfoSync();
- console.log('systemInfo------------------------>',systemInfo.windowHeight)
- const menuButtonInfo = uni.getMenuButtonBoundingClientRect()
- console.log('menuButtonInfo--------------------------->',menuButtonInfo)
- const {top,height} = menuButtonInfo
- this.buttonHeight = systemInfo.statusBarHeight+height;
- this.menueButton = top;
- console.log('systemInfo.safeAreaInsets.bottom>',systemInfo.safeAreaInsets.bottom)
- this.leftHeight = systemInfo.windowHeight - top -50 - systemInfo.safeAreaInsets.bottom -22;
- console.log('-------------leftHeight------------------------>',this.leftHeight)
- this.getKitchenTypeList();
- this.loadVideos();
+ onLoad(option) {
+ this.marginBottom = uni.getSystemInfoSync().safeAreaInsets.bottom;
+ // 鑾峰彇鐘舵�佹爮楂樺害
+ const systemInfo = uni.getSystemInfoSync();
+ console.log('systemInfo------------------------>',systemInfo.windowHeight)
+ const menuButtonInfo = uni.getMenuButtonBoundingClientRect()
+ console.log('menuButtonInfo--------------------------->',menuButtonInfo)
+ const {top,height} = menuButtonInfo
+ this.buttonHeight = systemInfo.statusBarHeight+height;
+ this.menueButton = top;
+ console.log('systemInfo.safeAreaInsets.bottom>',systemInfo.safeAreaInsets.bottom)
+ this.leftHeight = systemInfo.windowHeight - top -50 - systemInfo.safeAreaInsets.bottom -22;
+ console.log('-------------leftHeight------------------------>',this.leftHeight)
+ let queryParam = this.videoQuery;
+ if(option.q){
+ const decodedUrl = decodeURIComponent(decodeURIComponent(option.q));
+ console.log('鍘熷URL:', decodedUrl);
+
+ // 瑙f瀽URL涓殑鏌ヨ鍙傛暟
+ const params = this.parseUrlParams(decodedUrl);
+ const shareType = params.shareType;
+ const videoId = params.videoId;
+ const source = params.source;
+ queryParam.videoId = videoId
+ queryParam.shareType = shareType
+ queryParam.source = source
+ console.log('瑙f瀽鍙傛暟:', { shareType, videoId,source });
+ }
+ const token = storage.getAccessToken();
+ if(!token){
+ this.wxSilentLogin(() => {
+ // 鍒ゆ柇鏄笉鏄偣鍑诲垎浜摼鎺ヨ繘鏉ョ殑
+ if (option.userId && option.videoId) {
+ queryParam.videoId = option.videoId
+ // 淇濆瓨鍒嗕韩鐐瑰嚮璁板綍
+ saveShareClickRecord({refId: option.videoId, shareUserId: option.userId})
+ }
+ this.getKitchenTypeList();
+ this.loadVideos(queryParam);
+
+ })
+ }else{
+ if (option.userId && option.videoId) {
+ queryParam.videoId = option.videoId
+ // 淇濆瓨鍒嗕韩鐐瑰嚮璁板綍
+ saveShareClickRecord({refId: option.videoId, shareUserId: option.userId})
+ }
+ this.getKitchenTypeList();
+ this.loadVideos(queryParam);
+ }
+
+ },
+ onShareAppMessage(e) {
+ const userInfo = storage.getUserInfo();
+ if(!userInfo) {
+ console.log("鏈櫥褰曚笉鑳藉垎浜�");
+ return
+ }
+ const videoInfo = e.target.dataset.obj;
+ // 淇濆瓨鍒嗕韩璁板綍
+ const data = {
+ shareType: 'video',
+ refId: videoInfo.id,
+ shareUser: userInfo.id
+ }
+ saveShare(data)
+ return {
+ title: videoInfo.title,
+ path: `/pages/tabbar/index/home?videoId=${videoInfo.id}&userId=${userInfo.id}`,
+ imageUrl: videoInfo.coverUrl
+ }
},
methods: {
+ // 瑙f瀽URL鍙傛暟
+ parseUrlParams(url) {
+ const params = {};
+ // 澶勭悊鍙兘瀛樺湪鐨刪ash锛堝鏋滄湁鐨勮瘽锛�
+ const cleanUrl = url.split('#')[0];
+ const queryStr = cleanUrl.split('?')[1] || '';
+
+ queryStr.split('&').forEach(pair => {
+ const [key, value] = pair.split('=');
+ if (key) {
+ // 濡傛灉鍊煎瓨鍦紝鍒欒В鐮侊紝鍚﹀垯璁句负绌哄瓧绗︿覆
+ params[key] = value ? decodeURIComponent(value) : '';
+ }
+ });
+
+ return params;
+ },
+
// 鏌ヨ褰撳墠瑙嗛鐨勫叧鑱旇棰戯紙鎸備簡鍚屼竴鍟嗗搧鐨勶級
async getGoodsSimilarly() {
if (this.similarlyLoading || this.similarlyNomore) return Promise.resolve();;
@@ -724,14 +802,48 @@
})
},
// 鍔犺浇瑙嗛鏁版嵁
- async loadVideos() {
+ async loadVideos(param) {
console.log(this.loading, this.videoNoMore,this.videoQuery)
if (this.videoQuery.pageNumber == 1) {
} else if (this.loading || this.videoNoMore) return;
this.loading = true;
-
+ if(param){
+ console.log("浜岀淮鐮佹壂鐮佹暟鎹墽琛屽湪姝ゅ1")
+ console.log(this.videoQuery)
+ getkitchenVideoList(this.videoQuery).then(res => {
+ console.log(res)
+ // 鏂板涓�涓瓧娈电敤浜庡惊鐜椂鐨刱ey
+ const data = res.data.data.map(item => {
+ return {
+ ...item,
+ updateKey: item.id
+ }
+ })
+ if (this.videoQuery.pageNumber === 1) {
+ this.videoList = data;
+ } else {
+ this.videoList = [
+ ...this.videoList,
+ ...data.filter(
+ (newItem) => !this.videoList.some((oldItem) => oldItem.id === newItem.id)
+ ),
+ ];
+ }
+ this.loading = false;
+ if (data.length < this.videoQuery.pageSize) {
+ this.videoNoMore = true;
+ return;
+ }
+ this.videoQuery.pageNumber++;
+
+ })
+ }else{
+
+ console.log("浜岀淮鐮佹壂鐮佹暟鎹墽琛屽湪姝ゅ2")
+ console.log(this.videoQuery)
getkitchenVideoList(this.videoQuery).then(res => {
+ console.log(res)
// 鏂板涓�涓瓧娈电敤浜庡惊鐜椂鐨刱ey
const data = res.data.data.map(item => {
return {
@@ -757,6 +869,7 @@
this.videoQuery.pageNumber++;
})
+ }
},
// 婊戝姩鍒囨崲瑙嗛
--
Gitblit v1.8.0