---
quick_id: 260422-vep
description: 在控制台增加特码热力图功能
mode: quick
date: 2026-04-22
---

# Quick Task Plan: 特码热力图功能

## Goal
在控制台（Dashboard）增加特码热力图功能，直观展示特码号码在近 N 期内的出现分布情况。

## Implementation Design

### 热力图数据结构
- X轴：期号（最近30期）
- Y轴：号码 1-49
- 颜色：基于号码的波色（红/蓝/绿），出现时显示颜色，未出现时显示浅灰

### Files to Modify
1. `application/admin/model/History.php` - 添加 `getSpecialHeatmap()` 方法
2. `application/admin/controller/History.php` - 添加 `specialHeatmap` API 接口和权限声明
3. `public/assets/js/backend/dashboard.js` - 添加热力图渲染逻辑
4. `application/admin/view/dashboard/index.html` - 无需修改（热力图容器由 JS 动态生成）

## Tasks

### Task 1: 后端数据模型
**File:** `application/admin/model/History.php`
**Action:** 添加 `getSpecialHeatmap()` 方法
**Verify:** 方法返回热力图数据（expects, heatmap_data, colorMap）
**Done:** 方法可被正确调用并返回结构化数据

### Task 2: API 接口
**File:** `application/admin/controller/History.php`
**Action:** 
1. 在 `$noNeedRight` 数组添加 `specialHeatmap`
2. 添加 `specialHeatmap()` 方法
**Verify:** API 可通过 AJAX 访问并返回正确数据
**Done:** 接口可被前端调用

### Task 3: 前端渲染
**File:** `public/assets/js/backend/dashboard.js`
**Action:** 
1. 在 AJAX 请求中添加热力图数据获取
2. 在 render 函数中添加热力图 HTML 和 ECharts 渲染
**Verify:** 热力图正确显示在 Dashboard 页面
**Done:** 热力图可视化完成