From 796977e24baa7c1d3a333e2c1c8e06ca73fd9a56 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期三, 19 十一月 2025 18:08:35 +0800
Subject: [PATCH] 优惠劵
---
pages/health/healthVideo.vue | 199 ++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 187 insertions(+), 12 deletions(-)
diff --git a/pages/health/healthVideo.vue b/pages/health/healthVideo.vue
index d565009..78fca9c 100644
--- a/pages/health/healthVideo.vue
+++ b/pages/health/healthVideo.vue
@@ -26,7 +26,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"
@@ -264,6 +264,15 @@
import { silentLogin } from "@/api/connect.js";
import { getUserInfo } from "@/api/members";
import storage from "@/utils/storage.js";
+import { getSessionId, userAction,userShare } from "@/api/userAction.js";
+ import {
+ prizeInfo,
+ prizeNum,
+ prize,
+ grantRecord,
+ addPrizeNum,
+ getPrizeRule
+ } from '@/api/prize.js'
export default {
components: {TopBar},
computed: {
@@ -337,6 +346,7 @@
},
loading: false, // 鏄惁姝e湪鍔犺浇
videoQuery: {
+ source:'system',
pageNumber: 1,
pageSize: 10,
videoFrom: 'recommend'
@@ -352,10 +362,44 @@
similarlyNomore: false, // 鏄惁杩樻湁鏇村鐩镐技瑙嗛
similaryVideoIndex: 0, // 鐩镐技瑙嗛鐨勬挱鏀句綅缃�
similarlyLoading: false, // 鐩镐技瑙嗛鍔犺浇
- marginBottom: 0 // 搴曢儴瀹夊叏鍖哄煙
+ marginBottom: 0 ,// 搴曢儴瀹夊叏鍖哄煙
+ pageSessionNo:"",
+ actionParam:{
+ sessionId:'',
+ actionType:"PAGE",
+ joinType:"SELF",
+ pageCode:"HEALTH_VIDEO",
+ pageParams:"{}",
+ pageStatus:"JOIN",
+ pageType:"DETAIL"
+ },
+ shareParam:{
+ pageCode:"HEALTH_VIDEO",
+ shareOption:"{}",
+ pageType:"DETAIL"
+ },
+ shareId:'',
}
},
onShow() {
+ getSessionId().then(res=>{
+ this.pageSessionNo = res.data.data
+ this.actionParam.sessionId = this.pageSessionNo
+ if(this.pageSessionNo){
+ let param = Object.assign({}, this.actionParam);
+ userAction(param)
+ }
+ })
+ const shareId = uni.getStorageSync("shareId");
+ if(shareId){
+ let param = {
+ addType:"SHARE_USER_REGISTRY",
+ extend:"",
+ }
+ let extend = {shareId:shareId}
+ param.extend = JSON.stringify(extend)
+ addPrizeNum(param);
+ }
// const token = storage.getAccessToken();
// if (! token) {
// this.wxSilentLogin(() => {
@@ -370,23 +414,72 @@
this.totalHidenTime += duration
}
},
+ onUnload() {
+ let param = Object.assign({}, this.actionParam);
+ if (this.sendOnShow)return
+ param.pageStatus = "LEAVE"
+ userAction(param)
+ },
onHide() {
- this.startHidenTime = Date.now()
+ this.startHidenTime = Date.now()
+ let param = Object.assign({}, this.actionParam);
+ this.sendOnShow = true;
+ param.pageStatus = "LEAVE"
+ userAction(param)
},
onLoad(option) {
+ if(option.shareId){
+ console.log('瑙﹀彂onLoad')
+ this.actionParam.shareId = option.shareId;
+ this.actionParam.joinType = 'SHARE'
+ uni.setStorage({
+ key: 'shareId',
+ data: option.shareId,
+ success: function () {
+ console.log('缂撳瓨shareId鎴愬姛');
+ }
+ });
+ }
this.marginBottom = uni.getSystemInfoSync().safeAreaInsets.bottom
+ let queryParam = this.videoQuery;
+ if (option.q) {
+ // 鍙岄噸瑙g爜锛氬井淇″URL杩涜浜嗕袱娆$紪鐮�
+ 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 });
+ this.actionParam.pageParams = JSON.stringify(params)
+ this.actionParam.joinType = 'SHARE'
+ }
const token = storage.getAccessToken();
if (! token) {
this.wxSilentLogin(() => {
- this.loadVideos();
// 鍒ゆ柇鏄笉鏄偣鍑诲垎浜摼鎺ヨ繘鏉ョ殑
if (option.userId && option.videoId) {
+ this.actionParam.pageParams = JSON.stringify(option)
+ this.actionParam.joinType = 'SCAN'
+ queryParam.videoId = option.videoId
// 淇濆瓨鍒嗕韩鐐瑰嚮璁板綍
saveShareClickRecord({refId: option.videoId, shareUserId: option.userId})
}
+ this.loadVideos(queryParam);
})
} else {
- this.loadVideos();
+ if (option.userId && option.videoId) {
+ queryParam.videoId = option.videoId
+ // 淇濆瓨鍒嗕韩鐐瑰嚮璁板綍
+ saveShareClickRecord({refId: option.videoId, shareUserId: option.userId})
+ }
+ this.loadVideos(queryParam);
}
},
onShareAppMessage(e) {
@@ -403,13 +496,61 @@
shareUser: userInfo.id
}
saveShare(data)
- return {
- title: videoInfo.title,
- path: `/pages/tabbar/index/home?videoId=${videoInfo.id}&userId=${userInfo.id}`,
- imageUrl: videoInfo.coverUrl
- }
+ // return {
+ // title: videoInfo.title,
+ // path: `/pages/tabbar/index/home?videoId=${videoInfo.id}&userId=${userInfo.id}`,
+ // imageUrl: videoInfo.coverUrl
+ // }
+ return new Promise((resolve) => {
+ this.shareId = '';
+ let shareObj ={
+ videoId:videoInfo.id,
+ userId:userInfo.id
+ }
+ this.shareParam.shareOption = JSON.stringify(shareObj)
+ userShare(this.shareParam).then(res => {
+ this.shareId = res.data.data;
+ // 褰撹幏鍙栧埌shareId鍚庯紝鍐峳esolve鍒嗕韩閰嶇疆
+ resolve({
+ title: videoInfo.title,
+ path: `/pages/tabbar/index/home?videoId=${videoInfo.id}&userId=${userInfo.id}&shareId=${this.shareId}`,
+ imageUrl: videoInfo.coverUrl,
+ success(e) {
+ console.log("鍒嗕韩鎴愬姛", e);
+ },
+ fail(e) {
+ console.log('鍒嗕韩澶辫触', e);
+ }
+ });
+ }).catch(err => {
+ // 澶勭悊閿欒鎯呭喌锛屼緥濡備娇鐢ㄩ粯璁ゅ弬鏁�
+ console.error('鑾峰彇鍒嗕韩ID澶辫触', err);
+ resolve({
+ 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();;
@@ -739,11 +880,45 @@
},
// 鍔犺浇瑙嗛鏁版嵁
- async loadVideos() {
+ async loadVideos(param) {
if (this.loading || this.videoNoMore) return;
this.loading = true;
+ if(param){
+ console.log("浜岀淮鐮佹壂鐮佹暟鎹墽琛屽湪姝ゅ1")
+ console.log(this.videoQuery)
+ getHealthRecommendVideos(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)
getHealthRecommendVideos(this.videoQuery).then(res => {
+ console.log(res)
// 鏂板涓�涓瓧娈电敤浜庡惊鐜椂鐨刱ey
const data = res.data.data.map(item => {
return {
@@ -768,7 +943,7 @@
}
this.videoQuery.pageNumber++;
- })
+ })}
},
// 婊戝姩鍒囨崲瑙嗛
--
Gitblit v1.8.0