From 4c84a96e07f1c0d8708011e3aac4d69bd2f4e1b1 Mon Sep 17 00:00:00 2001 From: linxi <957440651@qq.com> Date: Fri, 15 May 2026 11:52:59 +0800 Subject: [PATCH] =?UTF-8?q?Fix=EF=BC=9A5286=20=E3=80=90=E5=95=86=E5=9F=8E?= =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E3=80=91=E5=A5=96=E5=93=81=E6=94=B6?= =?UTF-8?q?=E8=B4=A7=E5=9C=B0=E5=9D=80=E9=A1=B5=EF=BC=8C=E6=9C=AA=E8=AF=BB?= =?UTF-8?q?=E5=8F=96=E5=90=8E=E5=8F=B0=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg-video/views/county-claim-address.vue | 38 ++++++++++++++++++------ pkg-video/views/county-my-tickets.vue | 22 +++++++------- pkg-video/views/county-winners.vue | 18 +++++------ 3 files changed, 48 insertions(+), 30 deletions(-) diff --git a/pkg-video/views/county-claim-address.vue b/pkg-video/views/county-claim-address.vue index ce24e78..e5c68ff 100644 --- a/pkg-video/views/county-claim-address.vue +++ b/pkg-video/views/county-claim-address.vue @@ -78,7 +78,7 @@ - *请仔细核对收货信息,提交后不可修改,奖品将在7个工作日内寄出 + *请仔细核对收货信息,提交后不可修改,奖品将在{{ shipDayText }}个工作日内寄出 @@ -152,6 +152,7 @@ export default { showRealnamePopup: false, showSubmitSuccessPopup: false, shipDay: 7, + prizeInfo: {}, prizeOrderId: '', userInfo: {}, realnameStatus: 0, @@ -170,14 +171,21 @@ export default { } }, onLoad(options) { + const routeParams = this.decodeRouteParams(options) this.statusBarHeight = uni.getSystemInfoSync().statusBarHeight || 20 - this.form.lotteryRecordId = options.lotteryRecordId || '' - this.form.prizeName = decodeURIComponent(options.prizeName || '') - this.form.prizeAttrName = decodeURIComponent(options.prizeAttrName || '') - this.form.prizeType = decodeURIComponent(options.prizeType || '') - this.form.prizeTypeName = decodeURIComponent(options.prizeTypeName || '') - this.form.prizeImage = decodeURIComponent(options.prizeImage || '') - this.form.ticketCode = decodeURIComponent(options.ticketCode || '') + this.prizeInfo = routeParams + this.form = { + ...this.form, + ...routeParams, + lotteryRecordId: routeParams.lotteryRecordId || routeParams.id || '', + prizeName: routeParams.prizeName || '', + prizeAttrName: routeParams.prizeAttrName || '', + prizeType: routeParams.prizeType || '', + prizeTypeName: routeParams.prizeTypeName || '', + prizeImage: routeParams.prizeImage || '', + ticketCode: routeParams.ticketCode || '' + } + this.shipDay = Number(routeParams.shipDay || 0) || 7 this.getCityList() this.fetchRealnameStatus() }, @@ -193,6 +201,18 @@ export default { } }, methods: { + decodeRouteParams(options = {}) { + return Object.keys(options).reduce((result, key) => { + const value = options[key] + if (value === undefined || value === null) return result + try { + result[key] = decodeURIComponent(value) + } catch (e) { + result[key] = value + } + return result + }, {}) + }, goBack() { uni.navigateBack() }, @@ -282,7 +302,7 @@ export default { return } await claimCoupon(ticketId) - this.shipDay = 7 + this.shipDay = Number(this.prizeInfo.shipDay || 0) || 7 this.prizeOrderId = '' this.showSubmitSuccessPopup = true }, diff --git a/pkg-video/views/county-my-tickets.vue b/pkg-video/views/county-my-tickets.vue index 678c729..c84a591 100644 --- a/pkg-video/views/county-my-tickets.vue +++ b/pkg-video/views/county-my-tickets.vue @@ -363,15 +363,14 @@ export default { } return } - const query = [ - `lotteryRecordId=${item.id}`, - `ticketCode=${encodeURIComponent(item.ticketCode || '')}`, - `prizeName=${encodeURIComponent(item.prizeName || '')}`, - `prizeAttrName=${encodeURIComponent(item.prizeAttrName || '')}`, - `prizeType=${encodeURIComponent(item.prizeType || '')}`, - `prizeTypeName=${encodeURIComponent(item.prizeTypeName || '')}`, - `prizeImage=${encodeURIComponent(item.prizeImage || '')}` - ].join('&') + const queryParams = { + ...item, + lotteryRecordId: item.lotteryRecordId || item.id || '' + } + const query = Object.keys(queryParams) + .filter((key) => queryParams[key] !== undefined && queryParams[key] !== null && typeof queryParams[key] !== 'object') + .map((key) => `${key}=${encodeURIComponent(queryParams[key])}`) + .join('&') uni.navigateTo({ url: `/pkg-video/views/county-claim-address?${query}` }) @@ -753,11 +752,12 @@ export default { height: 40rpx; border-radius: 50%; border: 2rpx solid #333; - font-size: 40rpx; font-weight: 700; color: #333; - line-height: 40rpx; text-align: center; + display: flex; + align-items: center; + justify-content: center; } .popup-icon-wrap { diff --git a/pkg-video/views/county-winners.vue b/pkg-video/views/county-winners.vue index 1e9833e..fd26c5d 100644 --- a/pkg-video/views/county-winners.vue +++ b/pkg-video/views/county-winners.vue @@ -293,16 +293,14 @@ export default { return prizeType === 3 || prize.prizeType === "coupon" || /券/.test(prizeName) }, navToReceiveInfo(prize = {}) { - const query = [ - `source=lottery`, - `lotteryRecordId=${encodeURIComponent(prize.lotteryRecordId || "")}`, - `ticketCode=${encodeURIComponent(prize.ticketCode || "")}`, - `prizeName=${encodeURIComponent(prize.prizeName || "")}`, - `prizeAttrName=${encodeURIComponent(prize.prizeAttrName || "")}`, - `prizeType=${encodeURIComponent(prize.prizeType || "")}`, - `prizeTypeName=${encodeURIComponent(prize.prizeTypeName || "")}`, - `prizeImage=${encodeURIComponent(prize.prizeImage || "")}` - ].join("&") + const queryParams = { source: "lottery", ...prize } + const query = Object.keys(queryParams) + .filter((key) => { + const value = queryParams[key] + return value !== undefined && value !== null && typeof value !== "object" + }) + .map((key) => `${key}=${encodeURIComponent(queryParams[key])}`) + .join("&") uni.navigateTo({ url: `/pkg-video/views/county-claim-address?${query}` })