From d530ec11e715306cb4f1653be1693158be40d86b Mon Sep 17 00:00:00 2001 From: Zuncle <34310384@qq.com> Date: Thu, 7 May 2026 22:10:15 +0800 Subject: [PATCH] =?UTF-8?q?feat(activity):=20=E6=96=B0=E5=A2=9E=E5=B0=8F?= =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E5=A5=96=E5=93=81=E9=A2=86=E5=8F=96=E5=BC=B9?= =?UTF-8?q?=E7=AA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增首页承载的奖品领取弹窗与领取接口接入,支持待领取检查、会话静默关闭与领取操作展示。 --- App.vue | 3 - api/prizeClaim.js | 9 + components/activity/PrizeClaimPopup.vue | 289 ++++++++++++++++++++++++ components/activity/index.js | 1 + pages/index/index.vue | 70 +++++- 5 files changed, 367 insertions(+), 5 deletions(-) create mode 100644 api/prizeClaim.js create mode 100644 components/activity/PrizeClaimPopup.vue diff --git a/App.vue b/App.vue index 57e2c25..b610ca1 100755 --- a/App.vue +++ b/App.vue @@ -11,7 +11,6 @@ export default { try { uni.setStorageSync('inviter_code', options.query.invite_code) } catch (e) { console.error('Save invite code failed', e) } } - // 加载公开配置 (如订阅消息模板ID) getPublicConfig().then(res => { if (res && res.subscribe_templates) { console.log('Loaded public config:', res) @@ -20,8 +19,6 @@ export default { }).catch(err => { console.warn('Failed to load public config:', err) }) - - // 抖音平台现在也显示首页,不再需要强制跳转 }, onShow: function() { console.log('App Show') diff --git a/api/prizeClaim.js b/api/prizeClaim.js new file mode 100644 index 0000000..fedb649 --- /dev/null +++ b/api/prizeClaim.js @@ -0,0 +1,9 @@ +import { authRequest } from '@/utils/request' + +export function getPendingPrizeGrantActivity() { + return authRequest({ url: '/api/app/prize-grant-activities/pending', method: 'GET' }) +} + +export function claimPrizeGrantActivity(id) { + return authRequest({ url: `/api/app/prize-grant-activities/${id}/claim`, method: 'POST' }) +} diff --git a/components/activity/PrizeClaimPopup.vue b/components/activity/PrizeClaimPopup.vue new file mode 100644 index 0000000..eb2302c --- /dev/null +++ b/components/activity/PrizeClaimPopup.vue @@ -0,0 +1,289 @@ + + + + + diff --git a/components/activity/index.js b/components/activity/index.js index 6d6583d..71917d9 100755 --- a/components/activity/index.js +++ b/components/activity/index.js @@ -8,3 +8,4 @@ export { default as ActivityTabs } from './ActivityTabs.vue' export { default as RewardsPreview } from './RewardsPreview.vue' export { default as RewardsPopup } from './RewardsPopup.vue' export { default as RecordsList } from './RecordsList.vue' +export { default as PrizeClaimPopup } from './PrizeClaimPopup.vue' diff --git a/pages/index/index.vue b/pages/index/index.vue index fae0c1c..163788e 100755 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -140,19 +140,30 @@ + +