绿满眶商城微信小程序-uniapp
zxl
19 小时以前 883630c60e9a941d6cf721cfb4b9160ab406a7dd
pages/kitchen/KitchenVideo.vue
@@ -285,7 +285,7 @@
} 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() {
@@ -387,10 +387,35 @@
     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()
    // 如果视频按下暂停后切换页面再回到页面时,只算暂停时间(因为暂停时间和离开页面时间是重复的,只算一个)
@@ -399,10 +424,32 @@
      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();
@@ -429,12 +476,16 @@
         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})
@@ -468,11 +519,43 @@
      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参数