feat: 完成分龄页开发

This commit is contained in:
R524809
2026-05-06 17:28:51 +08:00
parent 50394154f7
commit 9bdf850f20
54 changed files with 3499 additions and 1021 deletions
+17 -36
View File
@@ -368,41 +368,18 @@ type CategoryPageData = {
## 五、分龄页内容管理
### 5.1 新增 `age.config.ts`
> 详细方案已独立为 [分龄页内容管理方案](./分龄页内容管理方案.md)
`miniprogram/pages/age/` 下新增 `age.config.ts`,将年龄段划分、能力目标、默认 worksheet 写死在配置中,作为兜底数据和管理页的基础结构。
分龄页内容分为四部分,通过 `age.config.ts` 统一管理:
```ts
export type AgeBandConfig = {
key: AgeBandKey;
label: string;
subLabel: string;
abilities: AbilityItem[];
weeks: WeekPlan[];
};
```
| 部分 | 名称 | 管理方式 |
| --- | --- | --- |
| 第一部分 | 年龄段设置 | 写死在 `age.config.ts`,几乎不变 |
| 第二部分 | 能力目标 | AI Skill `generate-age-abilities` 生成 |
| 第三部分 | 4 周学习路线 | AI Skill `generate-age-weekly-plans` 生成 |
| 第四部分 | 为你推荐 | 运行时动态计算(取收藏/下载最高的 6 个 worksheet |
> `worksheetIds` 初始为空数组,由分龄管理页选择后填入。`worksheetTitles` 作为兜底展示
### 5.2 管理 UI
分龄管理按年龄段切换:`3-4 岁 | 4-5 岁 | 5-6 岁 | 6-7 岁 | 7-8 岁`
| 模块 | 操作 | 说明 |
| ---- | ------------ | -------------------------------- |
| 能力目标 | 只读展示 | 来自 `age.config.ts`,不需要在管理页修改 |
| 四周路线 | 选择 worksheet | 每周选择 4 个 worksheet,主题来自 config |
| 推荐内容 | 选择 worksheet | 动态数据,展示 likes 数量最高的 6 个worksheet |
### 5.3 更新流程
```
分龄管理 → 选择年龄段 → 为每周选择 worksheet → 选择推荐内容
→ 点击「更新分龄数据」
→ 合并 age.config.ts 的能力目标 + 管理页选择的 worksheet 详情
→ 调用 pageContentBuild({ page: 'age', data: ... })
→ 云函数更新 page_configs/current 中的 age 字段 + 同步云存储
```
AI Skill 位于 `skills/` 目录,在开发时通过 Cursor 运行,以早教专家视角结合最新 worksheet 数据生成内容
---
@@ -443,9 +420,11 @@ supportPages/debug/debug
### Phase 4:分龄页管理(待开发)
1. 新增 `age.config.ts` 配置文件
2. 实现分龄管理页(年龄段切换、周 worksheet 选择)
3. 实现「更新分龄数据」→ 合并 config + worksheet 详情
> 详见 [分龄页内容管理方案](./分龄页内容管理方案.md)
1. 新增 `age.config.ts` 配置文件,将静态配置与 AI 生成数据分离
2. 开发 AI Skill`generate-age-abilities` + `generate-age-weekly-plans`
3. 分龄页接入 pageConfig 数据源,实现「为你推荐」动态计算
---
@@ -475,7 +454,9 @@ supportPages/debug/debug
| `cloudfunctions/worksheetsQuery/` | 查询 worksheet 列表 |
| `cloudfunctions/worksheetsUpdateStatus/` | 更新 worksheet 状态 |
| `pages/category/category.ts` | 分类页,支持 `?id=xxx` 参数选中分类 |
| `pages/age/age.config.ts` | 分龄页兜底配置 |
| `pages/age/age.config.ts` | 分龄页配置(详见 [分龄页方案](./分龄页内容管理方案.md) |
| `skills/generate-age-abilities/SKILL.md` | AI Skill:生成分龄页能力目标 |
| `skills/generate-age-weekly-plans/SKILL.md` | AI Skill:生成分龄页学习路线 |
| `pages/home/home.data.ts` | 首页兜底数据 |
| `pages/category/category.data.ts` | 分类页兜底数据 |
| `core/data/categories.ts` | CATEGORY_LIST 分类定义(id/name/icon/path |