From e026b4e0d4c9164ed9c618b64b109d4aefe6abc1 Mon Sep 17 00:00:00 2001 From: "pikachu1995@126.com" Date: Wed, 26 Aug 2026 11:01:59 +0800 Subject: [PATCH] =?UTF-8?q?feat(miniprogram):=20=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E4=B8=AA=E4=BA=BA=E8=B5=84=E6=96=99?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E5=8A=9F=E8=83=BD=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/mine/set/personMsg.vue | 228 ++++++++++++++++++++++++++++++++--- pages/product/shopPage.vue | 42 +++++-- 2 files changed, 247 insertions(+), 23 deletions(-) diff --git a/pages/mine/set/personMsg.vue b/pages/mine/set/personMsg.vue index 3042c3d..dc4254d 100644 --- a/pages/mine/set/personMsg.vue +++ b/pages/mine/set/personMsg.vue @@ -1,9 +1,32 @@ @@ -239,6 +396,22 @@ page { } } +.avatar-btn { + width: 100%; + padding: 40rpx 0 20rpx; + margin: 0; + background: transparent; + border: none; + border-radius: 0; + line-height: 2em; + font-size: $font-sm; + color: $font-color-light; + + &::after { + border: none; + } +} + .form { background: #fff; } @@ -274,6 +447,22 @@ page { color: #666 !important; } +.wx-nickname { + width: 100%; + height: 100%; + min-height: 44rpx; + text-align: right; + font-size: 28rpx; + color: #666; + background: transparent; +} + +.wx-nickname-placeholder { + color: #c0c4cc; + font-size: 28rpx; + text-align: right; +} + .sex-row { width: 100%; display: flex; @@ -322,6 +511,13 @@ page { font-size: 30rpx; background: $light-color; color: #fff; + border: none; + padding: 0; + margin: 0; + + &::after { + border: none; + } } .submit + .submit { diff --git a/pages/product/shopPage.vue b/pages/product/shopPage.vue index e1d66dc..9b4326d 100644 --- a/pages/product/shopPage.vue +++ b/pages/product/shopPage.vue @@ -234,7 +234,7 @@ import { getStoreIsCollect, } from '@/api/members.js' import config from '@/config/config' -import { getGoodsList } from '@/api/goods.js' +import { getGoodsList, getMpScene } from '@/api/goods.js' import { getAllCoupons } from '@/api/promotions.js' import { getFloorStoreData } from '@/api/home' import { @@ -504,12 +504,41 @@ function getCoupon(item: any) { }) } -onLoad((options: any) => { - storeId.value = options.id - console.log(storeId.value, 'this.storeId') +function parseShopIdFromScene(raw: string) { + const scene = decodeURIComponent(String(raw || '')) + if (!scene) return '' + if (scene.includes('id=')) { + return scene.split('id=')[1].split('&')[0] + } + return scene +} - goodsParams.storeId = options.id - couponParams.storeId = options.id +async function resolveShopId(options: any) { + if (options?.id) return String(options.id) + if (!options?.scene) return '' + const scene = decodeURIComponent(String(options.scene)) + if (scene.includes('id=')) { + return parseShopIdFromScene(scene) + } + try { + const res = await getMpScene(scene) + const payload = res?.data != null ? res.data : res + if (payload?.success && payload.result) { + return parseShopIdFromScene(String(payload.result)) + } + } catch (e) { + // 短链解析失败时,把 scene 当店铺ID用 + } + return scene +} + +onLoad(async (options: any) => { + storeId.value = await resolveShopId(options) + goodsParams.storeId = storeId.value + couponParams.storeId = storeId.value + if (storeId.value) { + init() + } }) onPageScroll((e) => { @@ -531,7 +560,6 @@ onMounted(() => { withShareTicket: true, }) // #endif - init() })