{{ $t(ruleKey) }}
+{{ $t(ruleKey) }}
+``` + +当前已补充语言文件: + +- `src/locales/en.json` +- `src/locales/zh.json` +- `src/locales/ar.json` +- `src/locales/tr.json` +- `src/locales/bn.json` + +英文文案: + +1. The more coins a user accumulates during the event, the higher their ranking will be. +2. The event will last for 15 days. After the event ends, rewards will be distributed to the top three users on the leaderboard. +3. The top three users should contact the official staff in a timely manner to discuss how to obtain the USD reward. +4. (1) Withdrawal: Please provide your USDT receiving account ID or receiving QR code. +5. (2) No withdrawal: If converted to coins, we will give you an additional 5% gold coins on top of the original amount ($1:10500 coins). + +## 7. 接口和字段映射 + +### 7.1 排行榜接口 + +接口:`getRankingListAndMyRanking` + +请求参数: + +```js +{ + activityType: pageConfig.activity.activityType, + cycleKey: pageConfig.activity.cycleKey, + cycleType: pageConfig.activity.cycleType, +} +``` + +返回字段: + +- 我的排名:`body.currentUserRank` +- 排行榜列表:`body.rankingList` + +字段归一化: + +```js +{ + userId: user.userId || user.uid || user.id || '', + avatar: user.avatar || user.userAvatar || '', + nickname: user.nickname || user.userName || user.userNickname || '', + quantity: user.quantity ?? user.amount ?? user.total ?? 0, + rank: user.rank ?? user.ranking ?? (index === null ? '' : index + 1), + account: user.account || user.specialAccount || '', +} +``` + +### 7.2 奖励接口 + +接口:`getThisWeekRewardsAndGifts` + +请求参数: + +```js +pageConfig.activity.templateId +``` + +返回使用: + +- `resRewards.body.butOneRewards` +- 经过 `appendLegacyDollarRewards()` 追加前三名美元奖励后写入 `rewardsList` + +## 8. 组件依赖 + +| 组件 / 方法 | 来源 | 当前用途 | +| --- | --- | --- | +| itemCenter | `@/components/itemCenter.vue` | 承载背景图和绝对定位内容 | +| maskLayer | `@/components/MaskLayer.vue` | 帮助弹窗遮罩 | +| TopUser | `./components/topUser.vue` | 展示排行榜前三名 | +| LoadingContent | 全局组件 | 页面阻塞加载提示 | +| getPngUrl | `@/config/imagePaths.js` | 生成 OSS 图片路径 | +| preloadImages / preloadImagesIdle | `@/utils/image/imagePreloader.js` | 阻塞和空闲图片预加载 | +| handleAvatarImageError | `@/utils/image/imageHandler.js` | 头像兜底 | +| handleRewardImageError | `@/utils/image/imageHandler.js` | 奖励图片兜底 | +| formatRewardDisplay | `@/utils/rewardFormatter.js` | 奖励文本格式化 | +| useDebounce | `@/utils/useDebounce.js` | 排行榜触底加载防抖 | +| connectToApp / isInApp / viewUserInfo | `@/utils/appBridge.js` / `@/utils/appConnector.js` | App 连接、环境判断、跳转用户信息 | + +## 9. 样式记录 + +- 当前页面开发阶段以“结构附近内联样式”为主。 +- 一次性布局、尺寸、间距、定位基本写在模板内联样式里,方便继续按图微调。 +- 保留 class 的部分: + - `.fullPage` + - `.bg` + - `.timeText` + - `.grayscale-container` + - `.ranking-user` + - `.ranking-rank` + - `.ranking-name-box` + - `.ranking-name` + - `.ranking-account` + - `.ranking-value` + - `.coin-icon` + - `.helpInfo` + - `.UserNickname` + - 响应式基础字号 media query +- 响应式字号: + - `max-width: 360px`:`10px` + - `min-width: 360px`:`14px` + - `min-width: 768px`:`24px` + - `min-width: 1024px`:`32px` + +## 10. 当前已完成 + +- 已按当前 `index.vue` 同步页面创建信息。 +- 已使用 `itemCenter :imgUrl="imageUrl('bg')"` 承载主背景。 +- 已按实际图片宽高比为所有 `itemCenter` 背景设置 `min-height`。 +- 已将模块按钮改为单图置灰策略。 +- 已接入多语言图片规则。 +- 已将帮助弹窗文本改为 `greedy_king_help_rule_*` 多语言 key。 +- 已按 BountyFootball 方式实现倒计时,截止时间为 `2026-06-08 05:00:00`。 +- 已保留旧页面的前三名美元奖励追加逻辑:`50 / 30 / 10`。 + +## 11. 待确认 + +- 活动参数 `templateId`、`activityType`、`cycleType`、`cycleKey` 是否需要替换为新活动真实参数。 +- 当前排行榜和奖励接口字段是否与最终后端返回完全一致。 +- 后续预览后可继续微调: + - 顶部帮助按钮位置 + - 倒计时整体 `margin-top` + - 排行榜前三名布局间距 + - 奖励网格内边距 + - 帮助弹窗文本内边距和滚动区域 + +## 12. 验证记录 + +- 最近一次 `npm run build`:通过。 +- 已验证 locale JSON 可解析。 +- 构建中仍保留项目既有提示: + - `../assets/images/Azizi/secondBg.png` 运行时解析提示 + - `src/utils/http.js` 动态 / 静态导入提示