绿满眶商城微信小程序-uniapp
peng
13 小时以前 89efee9a2e20fc04b4537d859917b47cf68a814c
pages/product/goods.vue
@@ -155,7 +155,7 @@
          <!-- 配置地址 如果是虚拟产品的时候不展示 -->
          <view class="card-box" v-if="goodsDetail.goodsType != 'VIRTUAL_GOODS'">
            <view class="card-flex" @click="shutMask(4)">
              <view class="card-title"> 已选 </view>
              <view class="card-title"> 可选规格 </view>
              <view class="card-content">
                <span v-if="selectedGoods.spec">{{ selectedGoods.spec.specName }}-{{
                  selectedGoods.spec.specValue
@@ -184,14 +184,14 @@
          <Evaluation id="main5" :goodsDetail="goodsDetail" />
          <!-- 店铺推荐 -->
          <!-- <storeLayout id="main7" :storeDetail="storeDetail" :goodsDetail="goodsDetail" :res="recommendList" /> -->
          <storeLayout v-if="false" id="main7" :storeDetail="storeDetail" :goodsDetail="goodsDetail" :res="recommendList" />
          <!-- 宝贝详情 -->
          <GoodsIntro id="main9" :res="goodsDetail" :goodsParams="goodsParams" :goodsId="goodsDetail.goodsId"
         <GoodsIntro id="main9" :res="goodsDetail" :goodsParams="goodsParams" :goodsId="goodsDetail.goodsId"
            v-if="goodsDetail.id" />
          <!-- 宝贝推荐 -->
          <!-- <GoodsRecommend id="main11" :res="likeGoodsList" /> -->
          <GoodsRecommend id="main11" :res="likeGoodsList" v-if="false" />
        </view>
      </scroll-view>
@@ -289,22 +289,23 @@
import storage from "@/utils/storage.js";
/************组件***************/
import PromotionLayout from "./product/promotion/-promotion"; //促销组件
import PromotionDetailsLayout from "./product/promotion/-promotion-details"; //促销活动详情
import PromotionAssembleLayout from "./product/promotion/-promotion-assemble-promotions"; //促销活动条
import PromotionAssembleListLayout from "./product/promotion/-promotion-assemble-list"; //拼团用户列表
import PromotionCoupon from "./product/promotion/-promotion-coupon"; //优惠券组件
import GoodsIntro from "./product/goods/-goods-intro"; //商品介绍组件
import GoodsRecommend from "./product/goods/-goods-recommend"; //宝贝推荐
import storeLayout from "./product/shop/-shop"; //店铺组件
import Evaluation from "./product/evaluation/-evaluation"; //评价组件
import GoodsSwiper from "./product/goods/-goods-swiper"; //轮播图组件
import PromotionLayout from "@/pages/product/product/promotion/-promotion.vue"; //促销组件
import PromotionDetailsLayout from "@/pages/product/product/promotion/-promotion-details.vue"; //促销活动详情
import PromotionAssembleLayout from "@/pages/product/product/promotion/-promotion-assemble-promotions.vue"; //促销活动条
import PromotionAssembleListLayout from "@/pages/product/product/promotion/-promotion-assemble-list.vue"; //拼团用户列表
import PromotionCoupon from "@/pages/product/product/promotion/-promotion-coupon.vue"; //优惠券组件
import GoodsIntro from "@/pages/product/product/goods/-goods-intro.vue"; //商品介绍组件
import GoodsRecommend from "@/pages/product/product/goods/-goods-recommend.vue"; //宝贝推荐
import storeLayout from "@/pages/product/product/shop/-shop.vue"; //店铺组件
import Evaluation from "@/pages/product/product/evaluation/-evaluation"; //评价组件
import GoodsSwiper from "@/pages/product/product/goods/-goods-swiper.vue"; //轮播图组件
import popupGoods from "@/pages/product/m-buy/goods.vue"; //购物车商品的模块
import popupAddress from "./product/popup/address"; //地址选择模块
import popupAddress from "@/pages/product/product/popup/address.vue"; //地址选择模块
import shares from "@/pages/product/m-share/index.vue"; //分享
import popups from "@/pages/product/popups/popups.vue"; //气泡框
import takeDownFormSaleGoods from "@/pages/product/m-take-down-sale-goods/index"; //下架框
import takeDownFormSaleGoods from "@/pages/product/m-take-down-sale-goods/index.vue"; //下架框
import setup from "./product/popup/popup";
import { getSessionId, userAction } from "@/api/userAction.js";
   import {
      getSTSToken
   } from '@/api/common.js'
@@ -444,6 +445,23 @@
      IMLink: "", // IM地址
      wholesaleList: [],
      takeDownFromSale: false, // 下架销售状态
     pageSessionNo:"",
    sendOnShow:false,
     actionParam:{
           sessionId:'',
           actionType:"PAGE",
           joinType:"SELF",
           pageCode:"GOODS_DETAILS",
           pageParams:"{}",
           pageStatus:"JOIN",
           pageType:"DETAIL",
         shareId:null,
        },
      shareParam:{
         pageCode:"GOODS_DETAILS",
         shareOption:"{}",
         pageType:"DETAIL"
      }
    };
  },
@@ -497,7 +515,31 @@
    this.productRefHeight = windowHeight - bottomHeight + "px";
  },
  async onLoad (options) {
    this.routerVal = options;
     if(options.q){
        const queryParam = {
           id:'',
           goodsId:'',
           distributionId:''
        };
        const decodedUrl = decodeURIComponent(decodeURIComponent(options.q));
        console.log('原始URL:', decodedUrl);
        const params = this.parseUrlParams(decodedUrl);
        const id = params.id;
        const gooodsId = params.goodsId;
        queryParam.id = id;
        queryParam.goodsId = gooodsId;
        this.routerVal = queryParam;
        this.actionParam.pageParams = JSON.stringify(params)
        this.actionParam.joinType = 'SCAN'
     }else{
        this.routerVal = options;
        this.actionParam.pageParams = JSON.stringify(options)
     }
     console.log('打印信息')
      console.log(options)
     console.log(this.routerVal)
    // #ifdef MP-WEIXIN
    // 小程序默认分享
    uni.showShareMenu({
@@ -506,7 +548,28 @@
    });
    // #endif
  },
  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)
  },
  async onShow () {
     getSessionId().then(res=>{
        this.pageSessionNo = res.data.data
        if(this.pageSessionNo){
        let   param = this.actionParam;
           param.sessionId = this.pageSessionNo
           userAction(param)
        }
     })
    this.goodsDetail = {};
    //如果有参数ids说明事分销短连接,需要获取参数
    if (this.routerVal.scene) {
@@ -522,6 +585,23 @@
  },
  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;
     },
    // 重新打开下架
    reStartTakeDownSale(){
      this.$refs.takeDownSale.show = true
@@ -555,6 +635,8 @@
     * 初始化信息
     */
    async init (id, goodsId, distributionId = "") {
      console.log('打印id:' + id)
      console.log('打印goodsId:'+ goodsId)
      this.isGroup = false; //初始化拼团
      this.productId = id; // skuId
      // 这里请求获取到页面数据  解析数据
@@ -611,7 +693,7 @@
      this.goodsSpec = response.data.result.specs;
      this.PromotionList = response.data.result.promotionMap;
      this.goodsParams = response.data.result.goodsParamsDTOList || [];
   console.log('优惠卷活动--------------------》',response.data.result.promotionMap)
      // 判断是否拼团活动或者积分商品 如果有则显示拼团活动信息
      this.PromotionList &&
        Object.keys(this.PromotionList).forEach((item) => {
@@ -759,8 +841,8 @@
     */
    back () {
      if (getCurrentPages().length == 1) {
        uni.switchTab({
          url: "/pages/tabbar/home/index",
        uni.redirectTo({
            url: "/pages/commodity-square/commoditySquare",
        });
      } else {
        uni.navigateBack();