From 7dbe13ff4c1b5784aa285faf6b5248d2de25e9ce Mon Sep 17 00:00:00 2001
From: peng <peng.com>
Date: 星期五, 10 十月 2025 16:22:45 +0800
Subject: [PATCH] 获取定制模板信息
---
pages/product/goods.vue | 249 ++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 203 insertions(+), 46 deletions(-)
diff --git a/pages/product/goods.vue b/pages/product/goods.vue
index b905084..ae818f0 100644
--- a/pages/product/goods.vue
+++ b/pages/product/goods.vue
@@ -6,13 +6,15 @@
<!-- 浠卙5鏈夋晥 鎵撳紑App -->
<!-- 鍒嗕韩 -->
- <shares v-if="enableShare && goodsDetail.id" :skuId="this.routerVal.id" :goodsId="this.routerVal.goodsId" :link="
+<!-- <shares v-if="enableShare && goodsDetail.id" :skuId="this.routerVal.id" :goodsId="this.routerVal.goodsId" :link="
'/pages/product/goods?id=' +
this.routerVal.id +
'&goodsId=' +
this.routerVal.goodsId
" :thumbnail="goodsDetail.thumbnail" :goodsName="goodsDetail.goodsName" type="goods"
@close="enableShare = false" />
+ -->
+
<popups v-model="popupsSwitch" @tapPopup="handleNavbarList" :popData="navbarListData" :x="navbarListX"
:y="navbarListY" placement="top-start" />
<view class="index">
@@ -114,10 +116,18 @@
</span>
</view>
- <view class="icons share" @click="shareChange()">
+ <!-- <view class="icons share" @click="shareChange()">
<u-icon size="30" name="share-fill"></u-icon>
<view>鍒嗕韩</view>
- </view>
+ </view> -->
+ <view class="icons share" style="margin-top: -15px;">
+ <button open-type="share" class="custom-share-btn" plain="true" style="border: none;">
+ <u-icon size="30" name="share-fill"></u-icon>
+ </button>
+ <view style="margin-top: -14px;">鍒嗕韩</view>
+ </view>
+
+
<view class="icons" @click="clickFavorite(goodsDetail.id)">
<u-icon size="30" :color="favorite ? '#f2270c' : '#262626'"
:name="favorite ? 'heart-fill' : 'heart'"></u-icon>
@@ -155,7 +165,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,21 +194,21 @@
<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>
@@ -213,13 +223,13 @@
</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> -->
<!-- 姝e父缁撶畻椤甸潰 -->
<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)">
+ <view class="to-store-car to-store-btn" v-if="goodsDetail.goodsType != 'VIRTUAL_GOODS'&& goodsDetail.customizeFlag!=='CUSTOMIZE'" @click="shutMask(4)">
鍔犲叆璐墿杞�</view>
<view class="to-buy to-store-btn" @click="shutMask(4, 'buy')">绔嬪嵆璐拱</view>
<view class="to-store-car to-store-btn" v-if="startTimer">鏆傛湭寮�濮�</view>
@@ -262,7 +272,7 @@
<!-- 鍟嗗搧瑙勬牸 鍟嗗搧璇︽儏锛屼互鍙婇粯璁ゅ弬涓庢椿鍔ㄧ殑id-->
<popupGoods :addr="delivery" ref="popupGoods" @changed="changedGoods" @closeBuy="closePopupBuy"
- @queryCart="cartCount()" :goodsDetail="goodsDetail" :goodsSpec="goodsSpec" :isGroup="isGroup" :id="productId"
+ @queryCart="cartCount()" :goodsDetail="goodsDetail" :consumizetemplateInfo="consumizetemplateInfo" :goodsSpec="goodsSpec" :isGroup="isGroup" :id="productId"
v-if="goodsDetail.id" :pointDetail="pointDetail" :wholesaleList="wholesaleList" @handleClickSku="selectSku"
:buyMask="buyMask" />
@@ -279,7 +289,7 @@
/************鎺ュ彛API***************/
-import { getGoods, getGoodsList, getMpScene, getGoodsDistribution } from "@/api/goods.js";
+import { getGoods, getGoodsList, getMpScene, getGoodsDistribution,getTemplate } from "@/api/goods.js";
import * as API_trade from "@/api/trade.js";
import * as API_Members from "@/api/members.js";
import * as API_store from "@/api/store.js";
@@ -289,29 +299,28 @@
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 shares from "@/pages/product/m-share/index.vue"; //鍒嗕韩
+import popupAddress from "@/pages/product/product/popup/address.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 {
- getSTSToken
- } from '@/api/common.js'
+import { getSessionId, userAction,userShare } from "@/api/userAction.js";
+import { getSTSToken } from '@/api/common.js'
+import {addPrizeNum} from '@/api/prize.js'
export default {
components: {
popups,
- shares,
PromotionLayout,
PromotionDetailsLayout,
PromotionAssembleLayout,
@@ -365,6 +374,7 @@
___type: "other",
},
],
+ consumizetemplateInfo:{},
popupsSwitch: false, //瀵艰埅鏍忓垪琛ㄦ爮寮�鍏�
enableShare: false,
selectedGoods: "", //閫夋嫨鐨勫晢鍝佽鏍兼樀绉�
@@ -400,10 +410,10 @@
text: "璇︽儏",
id: "3",
},
- {
- text: "鎺ㄨ崘",
- id: "4",
- },
+ // {
+ // text: "鎺ㄨ崘",
+ // id: "4",
+ // },
],
tabScrollTop: null,
scrollArr: [],
@@ -444,6 +454,24 @@
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"
+ },
+ shareId:'',
};
},
@@ -496,17 +524,116 @@
this.productRefHeight = windowHeight - bottomHeight + "px";
},
+
+
+
+ onShareAppMessage(e) {
+ console.log("寮�濮嬪垎浜�")
+ console.log(this.goodsDetail)
+ // 杩斿洖涓�涓狿romise
+ return new Promise((resolve) => {
+
+ this.shareId = '';
+ this.shareParam.shareOption = JSON.stringify(this.routerVal)
+ userShare(this.shareParam).then(res => {
+ this.shareId = res.data.data;
+ let param = {
+ addType:"SHARE_GOODS_VIDEO",
+ extend:"",
+ }
+ let extend = {shareId:this.shareId}
+ param.extend = JSON.stringify(extend)
+ addPrizeNum(param);
+
+ // 褰撹幏鍙栧埌shareId鍚庯紝鍐峳esolve鍒嗕韩閰嶇疆
+ resolve({
+ title: this.goodsDetail.goodsName,
+ path: '/pages/product/goods' +'?id='+ this.routerVal.id + '&goodsId=' + this.routerVal.goodsId +'&shareId=' + this.shareId,
+ imageUrl: this.goodsDetail.goodsGalleryList[0],
+ success(e) {
+ console.log("鍒嗕韩鎴愬姛", e);
+ },
+ fail(e) {
+ console.log('鍒嗕韩澶辫触', e);
+ }
+ });
+ }).catch(err => {
+ // 澶勭悊閿欒鎯呭喌锛屼緥濡備娇鐢ㄩ粯璁ゅ弬鏁�
+ console.error('鑾峰彇鍒嗕韩ID澶辫触', err);
+ resolve({
+ title: this.goodsDetail.goodsName,
+ path: '/pages/product/goods' +'?id='+ this.routerVal.id + '&goodsId=' + this.routerVal.goodsId,
+ imageUrl: this.goodsDetail.goodsGalleryList[0],
+ });
+ });
+ });
+ },
async onLoad (options) {
- this.routerVal = options;
+ if(options.shareId){
+ this.actionParam.shareId = options.shareId;
+ this.actionParam.joinType = 'SHARE'
+ console.log('瑙﹀彂onLoad')
+ uni.setStorage({
+ key: 'shareId',
+ data: options.shareId,
+ success: function () {
+ console.log('缂撳瓨shareId鎴愬姛');
+ }
+ });
+ }
+ this.actionParam.pageParams = JSON.stringify(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({
- withShareTicket: true,
- menus: ["shareAppMessage", "shareTimeline"],
- });
+
// #endif
},
+
+ 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)
+ },
async onShow () {
+ getSessionId().then(res=>{
+ this.pageSessionNo = res.data.data
+ this.actionParam.sessionId = this.pageSessionNo
+ this.actionParam.sessionId = res.data.data
+ if(this.pageSessionNo){
+ let param = Object.assign({}, this.actionParam);
+ userAction(param)
+ }
+ })
this.goodsDetail = {};
//濡傛灉鏈夊弬鏁癷ds璇存槑浜嬪垎閿�鐭繛鎺ワ紝闇�瑕佽幏鍙栧弬鏁�
if (this.routerVal.scene) {
@@ -522,6 +649,23 @@
},
methods: {
+ // 瑙f瀽URL鍙傛暟
+ parseUrlParams(url) {
+ const params = {};
+ // 澶勭悊鍙兘瀛樺湪鐨刪ash锛堝鏋滄湁鐨勮瘽锛�
+ 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 +699,8 @@
* 鍒濆鍖栦俊鎭�
*/
async init (id, goodsId, distributionId = "") {
+ console.log('鎵撳嵃id:' + id)
+ console.log('鎵撳嵃goodsId:'+ goodsId)
this.isGroup = false; //鍒濆鍖栨嫾鍥�
this.productId = id; // skuId
// 杩欓噷璇锋眰鑾峰彇鍒伴〉闈㈡暟鎹� 瑙f瀽鏁版嵁
@@ -611,7 +757,17 @@
this.goodsSpec = response.data.result.specs;
this.PromotionList = response.data.result.promotionMap;
this.goodsParams = response.data.result.goodsParamsDTOList || [];
-
+ console.log('浼樻儬鍗锋椿鍔�--------------------銆�',response.data.result.promotionMap)
+
+ if(this.goodsDetail.goodsType == 'PHYSICAL_GOODS'&& this.goodsDetail.customizeFlag ==='CUSTOMIZE'){
+ //鑾峰彇妯℃澘淇℃伅
+ this.consumizetemplateInfo = null;
+ console.log('鏄ā鏉胯幏鍙栭渶瑕佽幏鍙栦俊鎭�-------------銆�',this.goodsDetail.id)
+ const template = await getTemplate(this.goodsDetail.id)
+ this.consumizetemplateInfo = template.data.data
+ console.log('鑾峰彇鍒扮殑妯℃澘淇℃伅----------------->',template.data.data)
+
+ }
// 鍒ゆ柇鏄惁鎷煎洟娲诲姩鎴栬�呯Н鍒嗗晢鍝� 濡傛灉鏈夊垯鏄剧ず鎷煎洟娲诲姩淇℃伅
this.PromotionList &&
Object.keys(this.PromotionList).forEach((item) => {
@@ -627,7 +783,6 @@
});
// 杞挱鍥�
this.imgList = this.goodsDetail.goodsGalleryList.filter(i => i.indexOf("\"url\":") === -1 && i.indexOf("\"status\":") === -1);
-
// 鑾峰彇搴楅摵鍩烘湰淇℃伅
this.getStoreBaseInfoFun(this.goodsDetail.storeId);
@@ -644,6 +799,7 @@
if (this.$options.filters.isLogin("auth")) {
this.getGoodsCollectionFun(this.goodsDetail.id);
}
+
// 鑾峰彇IM 闇�瑕佺殑璇濅娇鐢�
// this.getIMDetailMethods();
},
@@ -732,13 +888,14 @@
* 鏌ョ湅璐墿杞�
*/
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",
});
},
@@ -758,8 +915,8 @@
*/
back () {
if (getCurrentPages().length == 1) {
- uni.switchTab({
- url: "/pages/tabbar/home/index",
+ uni.redirectTo({
+ url: "/pages/commodity-square/commoditySquare",
});
} else {
uni.navigateBack();
--
Gitblit v1.8.0