| | |
| | | <!-- 配置地址 如果是虚拟产品的时候不展示 --> |
| | | <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 |
| | |
| | | <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> |
| | | |
| | | |
| | | <view class="page-bottom mp-iphonex-bottom" id="pageBottom"> |
| | | <view class="icon-btn"> |
| | | <view class="icon-btn-item" @click="navigateToStore(goodsDetail.storeId)"> |
| | | <view class="icon-btn-item" @click="navigateToStore(goodsDetail.storeId)"> |
| | | <u-icon size="34" class="red" name="home-fill"></u-icon> |
| | | <view class="red icon-btn-name">店铺</view> |
| | | </view> |
| | |
| | | </view> |
| | | </view> |
| | | <!-- 下架展示 --> |
| | | <div class="detail-btn" v-if="takeDownFromSale"> |
| | | <!-- <div class="detail-btn" v-if="takeDownFromSale"> |
| | | <view class="to-store-car to-store-btn" @click="reStartTakeDownSale"> |
| | | 查看类似商品</view> |
| | | </div> |
| | | </div> --> |
| | | <!-- 正常结算页面 --> |
| | | <view class="detail-btn" v-if="!isGroup && !takeDownFromSale"> |
| | | <view class="to-store-car to-store-btn" v-if="goodsDetail.goodsType != 'VIRTUAL_GOODS'" @click="shutMask(4)"> |
| | |
| | | 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' |
| | |
| | | text: "详情", |
| | | id: "3", |
| | | }, |
| | | { |
| | | text: "推荐", |
| | | id: "4", |
| | | }, |
| | | // { |
| | | // text: "推荐", |
| | | // id: "4", |
| | | // }, |
| | | ], |
| | | tabScrollTop: null, |
| | | scrollArr: [], |
| | |
| | | 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" |
| | | } |
| | | }; |
| | | }, |
| | | |
| | |
| | | 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({ |
| | |
| | | }); |
| | | // #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) { |
| | |
| | | }, |
| | | |
| | | 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 |
| | |
| | | * 初始化信息 |
| | | */ |
| | | async init (id, goodsId, distributionId = "") { |
| | | console.log('打印id:' + id) |
| | | console.log('打印goodsId:'+ goodsId) |
| | | this.isGroup = false; //初始化拼团 |
| | | this.productId = id; // skuId |
| | | // 这里请求获取到页面数据 解析数据 |
| | |
| | | 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) => { |
| | |
| | | * 查看购物车 |
| | | */ |
| | | reluchToCart () { |
| | | console.log('点击了购物车-----------------------》') |
| | | let obj = { |
| | | from: "product", |
| | | id: this.productId, |
| | | }; |
| | | storage.setCartBackbtn(obj); |
| | | uni.switchTab({ |
| | | url: "/pages/tabbar/cart/cartList", |
| | | uni.redirectTo({ |
| | | url: "/pages/cusbar/cart/cartList", |
| | | }); |
| | | }, |
| | | |
| | |
| | | */ |
| | | back () { |
| | | if (getCurrentPages().length == 1) { |
| | | uni.switchTab({ |
| | | url: "/pages/tabbar/home/index", |
| | | uni.redirectTo({ |
| | | url: "/pages/commodity-square/commoditySquare", |
| | | }); |
| | | } else { |
| | | uni.navigateBack(); |