# 页面创建信息

## 1. 基础信息

- 页面类型：Activities
- 页面名称：LuckyDollars Season6
- 页面目录：src/views/Activities/LuckyDollars/Season6
- 参考页面：src/views/Activities/LuckyDollars/Season5
- 备注：作为新页面处理，初版效果参考 Season5，接口参数和图片可先沿用 Season5/Season6 测试数据。

## 2. 路由和权限

- route path：/activities/lucky-dollars-season6
- route name：lucky-dollars-season6
- 是否需要登录：是
- 是否加入 `src/config/security.js`：是
- 是否加入 `src/utils/permissionManager.js`：是

### 2.1 路由代码片段

```js
{
  path: '/activities/lucky-dollars-season6',
  name: 'lucky-dollars-season6',
  component: () => import('../views/Activities/LuckyDollars/Season6/index.vue'),
  meta: { requiresAuth: true },
}
```

### 2.2 安全白名单片段

建页时由 Codex 使用上面的 route path 补充到 `src/config/security.js`。

```js
'/activities/lucky-dollars-season6'
```

### 2.3 权限页面片段

建页时由 Codex 使用上面的 route path 补充到 `src/utils/permissionManager.js`，后面的注释使用页面名称。

```js
'/activities/lucky-dollars-season6' // 幸运美金第 6 季
```

## 3. OSS 图片目录

- OSS 相对路径：Activities/LuckyDollars/Season6/
- 本地开发目录：public/oss/h5/Azizi/Activities/LuckyDollars/Season6/
- 是否需要 Codex 自动创建本地开发目录：是
- 图片是否已放入本地目录：是

说明：OSS 相对路径和本地开发目录由 Codex 根据页面类型和页面目录自动生成。如果“是否需要 Codex 自动创建本地开发目录”填“是”，Codex 建页时会先创建这个目录。

### 3.1 多语言图片清单

说明：下面清单由 Codex 扫描本地开发目录自动生成。`en` 表示无后缀原图，`ar` 表示存在 `_ar` 图片。页面生成时以这张清单为准处理多语言图片。

| 图片名 | 支持语言 | 备注 |
| --- | --- | --- |
| bg0 | en | 页面背景第 0 段 |
| bg1 | en | 页面背景第 1 段 |
| bg2 | en | 页面背景第 2 段 |
| bg3 | en | 页面背景第 3 段 |
| helpInfo | en, ar | 帮助说明图 |
| historyBg | en, ar | 历史弹窗背景 |
| historyBt | en, ar | 历史按钮 |
| lottery | en | 抽奖机背景 |
| lotteryBt | en, ar | 抽奖按钮 |
| lotteryBtActive | en, ar | 抽奖选中按钮 |
| myAvatarFrame | en | 我的头像框 |
| myInfoBg | en | 我的信息背景 |
| myRankingBg | en | 我的排名背景 |
| prizeActiveFrame | en | 抽奖高亮框 |
| rankBt | en, ar | 排行榜按钮 |
| rankBtActive | en, ar | 排行榜选中按钮 |
| RankingItem | en | 排行榜列表项背景 |
| rechargehidden | en | 充值隐藏图标 |
| rechargeShow | en | 充值显示图标 |
| reward_frame | en | 头像框奖励图标 |
| reward_gift | en | 礼物奖励图标 |
| reward_ride | en | 座驾奖励图标 |
| rewardBack | en | 奖励上一页 |
| rewardBg | en | 奖励背景 |
| rewardNext | en | 奖励下一页 |
| rewardReceive | en, ar | 奖励领取按钮 |
| rewardReceived | en, ar | 奖励已领取按钮 |
| rewardReceiveNot | en, ar | 奖励不可领取按钮 |
| RewardRecharge100 | en | 充值奖励 100 |
| RewardRecharge1000 | en | 充值奖励 1000 |
| RewardRecharge10000 | en | 充值奖励 10000 |
| RewardRecharge3000 | en | 充值奖励 3000 |
| RewardRecharge500 | en | 充值奖励 500 |
| RewardRecharge5000 | en | 充值奖励 5000 |
| ruleInfo | en, ar | 规则说明图 |
| rulesBt | en, ar | 规则按钮 |
| tagBtBg | en | 标签选中底图 |
| tagsBg | en | 标签背景 |
| taskBtGo | en | 任务去完成按钮 |
| taskBtReceive | en | 任务领取按钮 |
| taskBtReceived | en | 任务已领取按钮 |
| taskGame | en | 游戏任务图标 |
| taskGift | en | 礼物任务图标 |
| taskRecharge | en | 充值任务图标 |
| taskTalk | en | 聊天任务图标 |
| ticket | en | 抽奖券图标 |
| timeBg | en | 时间背景 |
| top1 | en | 第一名装饰 |
| top2 | en | 第二名装饰 |
| top3 | en | 第三名装饰 |

### 3.2 进入页面前同步预加载图片

说明：这里放进入页面后首屏和默认标签页马上会用到的图片。Season6 参考默认把长背景、顶部时间、标签页、用户信息、奖励模块图片放在同步预加载里。

| 图片名 | 是否包含多语言 | 备注 |
| --- | --- | --- |
| bg0 | 否 | 首屏长背景 |
| bg1 | 否 | 长背景第 1 段 |
| bg2 | 否 | 长背景第 2 段 |
| bg3 | 否 | 长背景第 3 段 |
| timeBg | 否 | 顶部时间模块 |
| tagsBg | 否 | 标签背景 |
| tagBtBg | 否 | 标签选中底图 |
| rankBt | 是 | 首屏标签按钮 |
| rankBtActive | 是 | 首屏标签按钮 |
| lotteryBt | 是 | 首屏标签按钮 |
| lotteryBtActive | 是 | 首屏标签按钮 |
| myInfoBg | 否 | 我的信息背景 |
| myAvatarFrame | 否 | 我的头像框 |
| rechargehidden | 否 | 充值金额隐藏图标 |
| rechargeShow | 否 | 充值金额显示图标 |
| rewardBg | 否 | 默认奖励模块背景 |
| rewardBack | 否 | 奖励上一页按钮 |
| rewardNext | 否 | 奖励下一页按钮 |
| rewardReceive | 是 | 奖励领取按钮 |
| rewardReceived | 是 | 奖励已领取按钮 |
| rewardReceiveNot | 是 | 奖励不可领取按钮 |
| RewardRecharge100 | 否 | 充值 100 奖励图 |
| RewardRecharge500 | 否 | 充值 500 奖励图 |
| RewardRecharge1000 | 否 | 充值 1000 奖励图 |
| RewardRecharge3000 | 否 | 充值 3000 奖励图 |
| RewardRecharge5000 | 否 | 充值 5000 奖励图 |
| RewardRecharge10000 | 否 | 充值 10000 奖励图 |

### 3.3 进入页面后后台预加载图片

说明：这里放非默认标签页、下方列表、弹窗、抽奖和任务相关图片。它们不阻塞进入页面动画，页面进入后后台继续加载。

| 图片名 | 是否包含多语言 | 备注 |
| --- | --- | --- |
| lottery | 否 | 切到抽奖页时使用 |
| prizeActiveFrame | 否 | 抽奖高亮框 |
| ticket | 否 | 抽奖券图标 |
| historyBt | 是 | 抽奖历史按钮 |
| historyBg | 是 | 历史弹窗背景 |
| helpInfo | 是 | 帮助弹窗说明图 |
| ruleInfo | 是 | 规则弹窗说明图 |
| rulesBt | 是 | 规则按钮 |
| RankingItem | 否 | 排行榜列表项背景 |
| myRankingBg | 否 | 我的排名背景 |
| top1 | 否 | 第一名装饰 |
| top2 | 否 | 第二名装饰 |
| top3 | 否 | 第三名装饰 |
| reward_frame | 否 | 头像框奖励图标 |
| reward_gift | 否 | 礼物奖励图标 |
| reward_ride | 否 | 座驾奖励图标 |
| taskBtGo | 否 | 任务去完成按钮 |
| taskBtReceive | 否 | 任务领取按钮 |
| taskBtReceived | 否 | 任务已领取按钮 |
| taskGame | 否 | 游戏任务图标 |
| taskGift | 否 | 礼物任务图标 |
| taskRecharge | 否 | 充值任务图标 |
| taskTalk | 否 | 聊天任务图标 |

## 4. 模块配置

### 4.1 标签页模块

```json
{
  "enabled": true,
  "defaultValue": "reward",
  "items": [
    {
      "value": "reward",
      "labelKey": "recharge_reward",
      "buttonImage": "rankBt",
      "activeButtonImage": "rankBtActive",
      "remark": "奖励组内的充值奖励页"
    },
    {
      "value": "ranking",
      "labelKey": "ranking",
      "buttonImage": "rankBt",
      "activeButtonImage": "rankBtActive",
      "remark": "奖励组内的排行榜页"
    },
    {
      "value": "lottery",
      "labelKey": "lottery",
      "buttonImage": "lotteryBt",
      "activeButtonImage": "lotteryBtActive",
      "remark": "抽奖组内的抽奖页"
    },
    {
      "value": "withdraw",
      "labelKey": "withdraw",
      "buttonImage": "lotteryBt",
      "activeButtonImage": "lotteryBtActive",
      "remark": "抽奖组内的提现页"
    }
  ]
}
```

### 4.2 页面区块模块

```json
[
  {
    "name": "reward",
    "enabled": true,
    "apis": ["activityRewardConfigs", "myRecharge", "receiveRechargeReward"],
    "images": ["rewardBg", "rewardReceive", "rewardReceived", "rewardReceiveNot"],
    "remark": "充值奖励"
  },
  {
    "name": "ranking",
    "enabled": true,
    "apis": ["ranklist"],
    "images": ["RankingItem", "myRankingBg", "top1", "top2", "top3"],
    "remark": "服务端分页排行榜"
  },
  {
    "name": "lottery",
    "enabled": true,
    "apis": ["activityDetail", "onceDraw", "multiDraw", "myTickets", "myTotalDrawCount"],
    "images": ["lottery", "prizeActiveFrame", "ticket"],
    "remark": "抽奖机"
  },
  {
    "name": "task",
    "enabled": true,
    "apis": ["ActTaskList", "receiveTickets"],
    "images": ["taskBtGo", "taskBtReceive", "taskBtReceived"],
    "remark": "任务列表"
  },
  {
    "name": "withdraw",
    "enabled": true,
    "apis": ["withdrawableAmount", "transferActivityDollar", "exchangeCoin"],
    "images": [],
    "remark": "提现、转账、兑换；本地图片清单未扫描到 earningInfoBg，图片待确认"
  },
  {
    "name": "countdown",
    "enabled": true,
    "apis": [],
    "images": ["timeBg"],
    "remark": "倒计时"
  }
]
```

### 4.3 弹窗模块

```json
[
  {
    "name": "rule",
    "triggerImage": "rulesBt",
    "backgroundImage": "",
    "contentImage": "ruleInfo",
    "apis": [],
    "remark": "规则说明"
  },
  {
    "name": "help",
    "triggerImage": "",
    "backgroundImage": "",
    "contentImage": "helpInfo",
    "apis": [],
    "remark": "帮助说明；本地图片清单未扫描到 helpBt，触发按钮待确认"
  },
  {
    "name": "history",
    "triggerImage": "historyBt",
    "backgroundImage": "historyBg",
    "contentImage": "",
    "apis": ["drawRecords"],
    "remark": "中奖历史"
  },
  {
    "name": "result",
    "triggerImage": "",
    "backgroundImage": "",
    "contentImage": "",
    "apis": ["onceDraw", "multiDraw"],
    "remark": "中奖结果；本地图片清单未扫描到 resultBg，背景图待确认"
  },
  {
    "name": "rewardDetail",
    "triggerImage": "",
    "backgroundImage": "rewardBg",
    "contentImage": "",
    "apis": ["activityRewardConfigs"],
    "remark": "奖励详情"
  }
]
```

### 4.4 排行榜模块

```json
{
  "enabled": true,
  "api": "ranklist",
  "loadMode": "remote",
  "pageSize": 20,
  "topCount": 3,
  "myRankingPath": "ranklist.body.currentUser",
  "fieldMap": {
    "avatar": "userAvatar",
    "name": "userName",
    "value": "amount",
    "userId": "userId",
    "rank": "rank"
  }
}
```

### 4.5 抽奖模块

```json
{
  "enabled": true,
  "drawApis": ["onceDraw", "multiDraw"],
  "prizePoolApi": "activityDetail",
  "drawCountApi": "myTickets",
  "extraApis": ["myTotalDrawCount", "rewardConfigsBadge", "winnerHistory"],
  "displayMode": "track-only",
  "slotCount": 8,
  "centerButtonPosition": "grid-area: 2 / 2",
  "historyButtonPosition": "inside",
  "images": {
    "background": "lottery",
    "activeFrame": "prizeActiveFrame",
    "singleDrawButton": "无，按钮区域在背景图上",
    "multiDrawButton": "无，按钮区域在背景图上",
    "historyButton": "historyBt",
    "resultBackground": ""
  },
  "remark": "奖品内容已画在抽奖背景图上，接口奖品只用于计算高亮框停靠位置；本地图片清单未扫描到 resultBg。"
}
```

## 5. 接口参数

```json
{
  "activityId": "2007771533999124198",
  "activityCode": "24198",
  "activityType": "CONSUMPTION_ACTIVITY",
  "rankingActivityType": "USER_RECHARGE_DRAW",
  "rewardActivityType": "CONSUMPTION_ACTIVITY",
  "otherParams": {
    "drawCount": [1, 10]
  }
}
```

## 6. 组件需求

```json
[
  {
    "name": "BackgroundLayer",
    "enabled": true,
    "remark": "使用 bg0/bg1/bg2/bg3 长背景"
  },
  {
    "name": "itemCenter",
    "enabled": true,
    "remark": "图片容器"
  },
  {
    "name": "topUser / TopUser",
    "enabled": true,
    "remark": "从参考页面组件复制后微调"
  },
  {
    "name": "Barrage",
    "enabled": true,
    "remark": "从参考页面组件复制后微调"
  },
  {
    "name": "ActivityTabs",
    "enabled": "可选",
    "remark": "如果重做标签页，优先用通用组件"
  },
  {
    "name": "ActivityLotteryGrid",
    "enabled": true,
    "remark": "抽奖格子和高亮框"
  }
]
```

## 7. 建页后记录

这部分由 Codex 建页后填写。

### 7.1 已完成

-

### 7.2 未填写所以跳过

-

### 7.3 待你微调

-

### 7.4 验证结果

- `npm run build`：
- 备注：
