绿满眶商城微信小程序-uniapp
peng
2 天以前 d50a3ed44e2edab2a7a661c43491c3aa42c57794
pages/kitchen/KitchenVideo.vue
@@ -284,6 +284,8 @@
  changeCollect
} from "@/api/collect.js";
import { saveShare, saveShareClickRecord } from "@/api/share.js";
import storage from "@/utils/storage.js";
import { getSessionId, userAction } from "@/api/userAction.js";
export default {
  computed: {
    hasPlayTime() {
@@ -385,10 +387,28 @@
     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"
      }
    }
  },
  onShow() {
     getSessionId().then(res=>{
           this.pageSessionNo = res.data.data
           if(this.pageSessionNo){
           let   param = this.actionParam;
              param.sessionId = this.pageSessionNo
              userAction(param)
           }
     })
    // this.showDrawer('showLeft')
    this.loadVideos()
    // 如果视频按下暂停后切换页面再回到页面时,只算暂停时间(因为暂停时间和离开页面时间是重复的,只算一个)
@@ -397,8 +417,18 @@
      this.totalHidenTime += duration
    }
  },
  onUnload() {
    let   param = this.actionParam;
    if (this.sendOnShow)return
    param.pageStatus = "LEAVE"
    userAction(param)
  },
  onHide() {
    this.startHidenTime = Date.now()
    let   param = this.actionParam;
    this.sendOnShow = true;
    param.pageStatus = "LEAVE"
    userAction(param)
  },
  onLoad(option) {
      this.marginBottom = uni.getSystemInfoSync().safeAreaInsets.bottom;
@@ -427,18 +457,23 @@
         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) {
@@ -447,7 +482,7 @@
            saveShareClickRecord({refId: option.videoId, shareUserId: option.userId})
      }
      this.getKitchenTypeList();
      this.loadVideos();
      this.loadVideos(queryParam);
   }
   
  }, 
@@ -799,14 +834,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)
           // 新增一个字段用于循环时的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 {
@@ -832,6 +901,7 @@
        this.videoQuery.pageNumber++;
      })
     }
    },
    // 滑动切换视频