# Roadmap: amlhc 遗漏号码分析

## Overview

为 FastAdmin 后台 history 页面新增遗漏号码分析功能——点击按钮弹窗展示最近 X 期未出现的冷门号码，附带波色球和遗漏期数，辅助投注决策。

## Phases

- [x] **Phase 1: 遗漏号码分析** - 在 history 页面添加"遗漏号码"按钮，弹窗支持输入期数查询并展示遗漏号码、遗漏期数及波色球
- [ ] **Phase 2: 走势图分析** - 可视化展示号码在连续期次中的出现趋势
- [ ] **Phase 3: 冷热号码分析** - 统计某段时间内出现频率最高和最少的号码
- [ ] **Phase 4: 波色分析** - 统计红蓝绿波的出现比例和趋势
- [ ] **Phase 5: 生肖分析** - 统计各生肖出现频率和遗漏情况
- [ ] **Phase 6: 奇偶分析** - 统计每期奇数/偶数的比例
- [ ] **Phase 7: 大小分析** - 按号码大小（1-24为小，25-49为大）统计
- [ ] **Phase 8: 和值分析** - 每期号码之和的趋势
- [ ] **Phase 9: 连号分析** - 连续出现的号码对/三连号统计
- [ ] **Phase 10: 尾数分析** - 按尾数（0-9）分组统计

## Phase Details

### Phase 1: 遗漏号码分析
**Goal**: 用户可在 history 页面通过弹窗查询并查看遗漏号码及其波色和遗漏期数
**Depends on**: Nothing (first phase)
**Requirements**: OMIT-01, OMIT-02, OMIT-03, OMIT-04, OMIT-05
**Success Criteria** (what must be TRUE):
  1. 用户在 history 页面能看到"遗漏号码"按钮，点击后弹出模态窗口
  2. 用户可在弹窗内输入期数 X（默认 10），点击查询后看到结果
  3. 结果展示包含遗漏号码、遗漏期数和对应颜色的波色球，按遗漏期数从大到小排序
**Plans**: 3 plans

Plans:
- [x] 01-01-PLAN.md — 后端遗漏号码查询接口（History::missingNum() + History::getMissingNumbers()，查询最近 X 期并计算 1-49 遗漏号码、遗漏期数及波色，按 omit 降序返回）
- [x] 01-02-PLAN.md — history 页面"遗漏号码"按钮及 Layer 弹窗 UI（toolbar 按钮、期数输入框、查询按钮、flex 网格结果渲染、复用 getColorByNum() 波色球着色）
- [x] 01-03-PLAN.md — 前后端联调验证（AJAX 链路测试、边界情况处理：颜色映射未就绪/空数据/请求失败/按钮防重复、人工验证完整功能）

**UI hint**: yes

### Phase 2: 走势图分析
**Goal**: 以折线图或网格形式可视化展示各号码在最近期次中的出现情况，辅助发现规律
**Depends on**: 1 (使用已有的 history.js 和 History 模型)
**Success Criteria** (what must be TRUE):
  1. 用户可通过新按钮打开走势图弹窗
  2. 可选择期数范围（默认 30 期）
  3. 图表展示 1-49 号码在各期的出现/未出现状态
  4. 支持 num1~num7 全部号码或仅特码筛选
**Plans**: TBD

**UI hint**: yes

### Phase 3: 冷热号码分析
**Goal**: 统计某段时间内出现频率最高（热）和最少（冷）的号码
**Depends on**: 1 (复用数据查询逻辑)
**Success Criteria** (what must be TRUE):
  1. 用户可选择统计期数范围
  2. 展示热号（高频）和冷号（低频）列表
  3. 显示每个号码的出现次数和百分比
**Plans**: TBD

**UI hint**: yes

### Phase 4: 波色分析
**Goal**: 统计红、蓝、绿波的出现比例和趋势
**Depends on**: 1 (复用 Num 模型和颜色映射)
**Success Criteria** (what must be TRUE):
  1. 展示三种波色的出现次数和占比
  2. 可视化展示波色在最近期次中的分布
  3. 支持特码波色单独统计
**Plans**: TBD

**UI hint**: yes

### Phase 5: 生肖分析
**Goal**: 统计各生肖出现频率和遗漏情况
**Depends on**: 1 (复用 getAnimalMap 接口)
**Success Criteria** (what must be TRUE):
  1. 展示 12 生肖的出现次数排名
  2. 显示各生肖遗漏期数
  3. 支持特码生肖单独统计
**Plans**: TBD

**UI hint**: yes

### Phase 6: 奇偶分析
**Goal**: 统计每期奇数/偶数的比例
**Depends on**: 1 (复用 history 数据)
**Success Criteria** (what must be TRUE):
  1. 展示总体奇偶比例
  2. 展示每期奇偶数量
  3. 支持特码奇偶单独统计
**Plans**: TBD

**UI hint**: yes

### Phase 7: 大小分析
**Goal**: 按号码大小（1-24为小，25-49为大）统计
**Depends on**: 1 (复用 history 数据)
**Success Criteria** (what must be TRUE):
  1. 展示总体大小比例
  2. 展示每期大小数量
  3. 支持特码大小单独统计
**Plans**: TBD

**UI hint**: yes

### Phase 8: 和值分析
**Goal**: 每期号码之和的趋势
**Depends on**: 1 (复用 history 数据)
**Success Criteria** (what must be TRUE):
  1. 展示每期和值折线图
  2. 显示和值的平均值和极值
  3. 可过滤特码和值
**Plans**: TBD

**UI hint**: yes

### Phase 9: 连号分析
**Goal**: 连续出现的号码对/三连号统计
**Depends on**: 1 (复用 history 数据)
**Success Criteria** (what must be TRUE):
  1. 展示历史中出现过的连号组合
  2. 按出现频率排序
  3. 支持查询特定连号的历史
**Plans**: TBD

**UI hint**: yes

### Phase 10: 尾数分析
**Goal**: 按尾数（0-9）分组统计
**Depends on**: 1 (复用 history 数据)
**Success Criteria** (what must be TRUE):
  1. 展示 0-9 尾数的出现频率
  2. 展示每期尾数分布
  3. 支持特码尾数单独统计
**Plans**: TBD

**UI hint**: yes

## Progress

**Execution Order:**
Phases execute in numeric order: 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 → 9 → 10

| Phase | Plans Complete | Status | Completed |
|-------|----------------|--------|-----------|
| 1. 遗漏号码分析 | 3/3 | Complete | 2026-04-21 |
| 2. 走势图分析 | 0/0 | Not planned | - |
| 3. 冷热号码分析 | 0/0 | Not planned | - |
| 4. 波色分析 | 0/0 | Not planned | - |
| 5. 生肖分析 | 0/0 | Not planned | - |
| 6. 奇偶分析 | 0/0 | Not planned | - |
| 7. 大小分析 | 0/0 | Not planned | - |
| 8. 和值分析 | 0/0 | Not planned | - |
| 9. 连号分析 | 0/0 | Not planned | - |
| 10. 尾数分析 | 0/0 | Not planned | - |
