| | |
| | | changeCollect |
| | | } from "@/api/collect.js"; |
| | | import { saveShare, saveShareClickRecord } from "@/api/share.js"; |
| | | import storage from "@/utils/storage.js"; |
| | | import { getSessionId, userAction,userShare } from "@/api/userAction.js"; |
| | | export default { |
| | | computed: { |
| | | hasPlayTime() { |
| | |
| | | similarlyNomore: false, // 是否还有更多相似视频 |
| | | similaryVideoIndex: 0, // 相似视频的播放位置 |
| | | similarlyLoading: false, // 相似视频加载 |
| | | marginBottom: 0 // 底部安全区域 |
| | | marginBottom: 0 ,// 底部安全区域 |
| | | pageSessionNo:"", |
| | | actionParam:{ |
| | | sessionId:'', |
| | | actionType:"PAGE", |
| | | joinType:"SELF", |
| | | pageCode:"KITCHEN_VIDEO", |
| | | pageParams:"{}", |
| | | pageStatus:"JOIN", |
| | | pageType:"LIST" |
| | | }, |
| | | shareParam:{ |
| | | pageCode:"KITCHEN_VIDEO", |
| | | shareOption:"{}", |
| | | pageType:"DETAIL" |
| | | }, |
| | | shareId:'', |
| | | |
| | | } |
| | | }, |
| | | onShow() { |
| | | getSessionId().then(res=>{ |
| | | this.pageSessionNo = res.data.data |
| | | if(this.pageSessionNo){ |
| | | let param = Object.assign({}, this.actionParam); |
| | | param.sessionId = this.pageSessionNo |
| | | userAction(param) |
| | | } |
| | | }) |
| | | // this.showDrawer('showLeft') |
| | | this.loadVideos() |
| | | // 如果视频按下暂停后切换页面再回到页面时,只算暂停时间(因为暂停时间和离开页面时间是重复的,只算一个) |
| | |
| | | this.totalHidenTime += duration |
| | | } |
| | | }, |
| | | onUnload() { |
| | | let param = Object.assign({}, this.actionParam); |
| | | if (this.sendOnShow)return |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onHide() { |
| | | 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; |
| | | // 获取状态栏高度 |
| | | const systemInfo = uni.getSystemInfoSync(); |
| | |
| | | queryParam.shareType = shareType |
| | | queryParam.source = source |
| | | console.log('解析参数:', { shareType, videoId,source }); |
| | | this.actionParam.pageParams = JSON.stringify(params) |
| | | this.actionParam.joinType = 'SHARE' |
| | | } |
| | | const token = storage.getAccessToken(); |
| | | if(!token){ |
| | | this.wxSilentLogin(() => { |
| | | // 判断是不是点击分享链接进来的 |
| | | 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.getKitchenTypeList(); |
| | | this.loadVideos(queryParam); |
| | | |
| | | }) |
| | | }else{ |
| | | if (option.userId && option.videoId) { |
| | |
| | | saveShareClickRecord({refId: option.videoId, shareUserId: option.userId}) |
| | | } |
| | | this.getKitchenTypeList(); |
| | | this.loadVideos(); |
| | | this.loadVideos(queryParam); |
| | | } |
| | | |
| | | }, |
| | |
| | | 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后,再resolve分享配置 |
| | | 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: { |
| | | // 解析URL参数 |
| | |
| | | }) |
| | | }, |
| | | // 加载视频数据 |
| | | 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) |
| | | // 新增一个字段用于循环时的key |
| | | 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) |
| | | // 新增一个字段用于循环时的key |
| | | const data = res.data.data.map(item => { |
| | | return { |
| | |
| | | this.videoQuery.pageNumber++; |
| | | |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | // 滑动切换视频 |