绿满眶商城微信小程序-uniapp
zxl
2025-07-30 4b0577ff467ea0ce268148f8d1c1bdea3ba66318
厨神,大健康视频分享二维码
2个文件已修改
89 ■■■■ 已修改文件
pages/health/healthVideo.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/kitchen/KitchenVideo.vue 85 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/health/healthVideo.vue
@@ -337,6 +337,7 @@
        },
        loading: false,  // 是否正在加载
        videoQuery: {
            source:'system',
            pageNumber: 1,
            pageSize: 10,
            videoFrom: 'recommend'
@@ -387,7 +388,8 @@
        const videoId = params.videoId;   
        queryParam.videoId = videoId
        queryParam.shareType = shareType
        console.log('解析参数:', { shareType, videoId });
        queryParam.source = source
        console.log('解析参数:', { shareType, videoId,source });
      }
      const token = storage.getAccessToken();
      if (! token) {
pages/kitchen/KitchenVideo.vue
@@ -283,6 +283,7 @@
import {
  changeCollect
} from "@/api/collect.js";
import { saveShare, saveShareClickRecord } from "@/api/share.js";
export default {
  computed: {
    hasPlayTime() {
@@ -367,6 +368,7 @@
      },
      loading: false, // 是否正在加载
      videoQuery: {
        source: 'system',
        pageNumber: 1,
        pageSize: 6,
        videoFrom: 'recommend',
@@ -398,21 +400,56 @@
  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);
            // 解析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('解析参数:', { 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();
    }
  }, 
   onShareAppMessage(e) {
    const userInfo = storage.getUserInfo();
@@ -435,6 +472,24 @@
      }
  },
  methods: {
      // 解析URL参数
      parseUrlParams(url) {
        const params = {};
        // 处理可能存在的hash(如果有的话)
        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();;