|
@@ -0,0 +1,69 @@
|
|
|
|
|
+# 成长页小游戏入口设计
|
|
|
|
|
+
|
|
|
|
|
+- 日期:2026-11-05
|
|
|
|
|
+- 状态:设计定稿(待派发)
|
|
|
|
|
+- 需求方:廖总
|
|
|
|
|
+- 来源:「普通用户在成长页面也可以加小游戏入口」
|
|
|
|
|
+
|
|
|
|
|
+## 0. 现状核查(只读)
|
|
|
|
|
+
|
|
|
|
|
+- **入口断裂**(2026-11-05 全库核查结论):
|
|
|
|
|
+ - `pages/games/list.vue`(🎮 益智小游戏大厅,标题「小游戏」)**已存在且已注册**(pages.json `pages/games/list`,title「小游戏」),从 `getMiniGameList()` 拉列表,点击游戏跳 `schulte`/`1a2b`/`sudoku`。
|
|
|
|
|
+ - 但**全库无任何页面跳转到 `/pages/games/list`**(零引用)→ 大厅无法从界面进入(孤儿页)。
|
|
|
|
|
+ - 游戏本体 `schulte`/`1a2b`/`sudoku` 页面文件都在、已注册,但只能从大厅 list 进入。
|
|
|
|
|
+- **死链**:`pages/home-pages/child-index.vue:739` `goToGames()` → `/pages/games/games`(**页面文件不存在**、pages.json 未注册)→ 孩子首页「小游戏」按钮点开是坏的。
|
|
|
|
|
+- **成长页** `pages/growth-main/index.vue`(tabBar 页):
|
|
|
|
|
+ - 登录态(`isLoggedIn=true`,133 行 `v-else` 分支)有「今日成长」progress-card、「饮食推荐」action-card(201 行,`@click="goToFoods"`,样式类 `.action-card` 定义于 756 行)等。
|
|
|
|
|
+ - **无任何小游戏入口**(grep `goToGames`/`games/list` 零命中)。
|
|
|
|
|
+ - 未登录态(4 行 `v-if="!isLoggedIn"`)为游客预览(gg-page)。
|
|
|
|
|
+
|
|
|
|
|
+## 1. 方案
|
|
|
|
|
+
|
|
|
|
|
+### 1.1 成长页登录态加「小游戏」入口卡(主)
|
|
|
|
|
+- 位置:登录态「饮食推荐」`action-card`(201 行)**之后**,新增一个同款 `action-card`。
|
|
|
|
|
+- 样式:**完全复用**既有 `.action-card` / `.action-icon-wrap` / `.action-info` / `.action-title` / `.action-desc` / `.action-arrow`(756 行起,不新增样式,避免视觉不一致)。
|
|
|
|
|
+- 内容:
|
|
|
|
|
+ - 图标 `🎮`(`action-icon-wrap`,`warm` 或默认色均可,建议 `warm` 与饮食推荐区分)
|
|
|
|
|
+ - 标题 `益智小游戏`
|
|
|
|
|
+ - 描述 `舒尔特方格 · 猜数字 · 数独`
|
|
|
|
|
+ - 右箭头 `›`
|
|
|
|
|
+- 事件:`@click="goToGames"`。
|
|
|
|
|
+
|
|
|
|
|
+### 1.2 新增方法 `goToGames`
|
|
|
|
|
+```js
|
|
|
|
|
+goToGames: function() {
|
|
|
|
|
+ uni.navigateTo({ url: '/pages/games/list' })
|
|
|
|
|
+}
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+### 1.3 修复 child-index 死链(辅,打通孩子页入口)
|
|
|
|
|
+- `pages/home-pages/child-index.vue:739`:`goToGames()` 的跳转目标 `/pages/games/games` → `/pages/games/list`。
|
|
|
|
|
+- 理由:孩子首页「小游戏」按钮已存在,但指向不存在的 `games/games`;统一改为大厅 `games/list`,孩子页与成长页都能进。
|
|
|
|
|
+
|
|
|
|
|
+## 2. 约束与边界(开发必读)
|
|
|
|
|
+
|
|
|
|
|
+1. **只改前端**,不涉及后端/数据库。
|
|
|
|
|
+2. **不新增样式**:完全复用既有 `.action-card` 系列,避免视觉回归。
|
|
|
|
|
+3. **不改**成长页其他逻辑(打卡/活动/推荐阅读/商品等),仅新增一个入口卡 + 一个方法。
|
|
|
|
|
+4. child-index 改动**仅一行**(跳转路径),不动其他。
|
|
|
|
|
+5. 遵守 cfc-frontend 既有规范(不用可选链 `?.`、不用 CSS grid、不用 `:key` 表达式等)。
|
|
|
|
|
+6. 编译通过(uni-app build:mp-weixin 或既有 build 命令)。
|
|
|
|
|
+
|
|
|
|
|
+## 3. 验收
|
|
|
|
|
+
|
|
|
|
|
+- 成长页登录态可见「🎮 益智小游戏」卡,点击进入 `games/list` 大厅,再点游戏进入 `schulte`/`1a2b`/`sudoku`。
|
|
|
|
|
+- 孩子首页「小游戏」按钮点击进入 `games/list` 大厅(死链修复)。
|
|
|
|
|
+- 大厅列表从 `getMiniGameList()` 正常加载;无游戏时显示「暂无小游戏,请联系管理员添加」。
|
|
|
|
|
+
|
|
|
|
|
+## 4. 任务书
|
|
|
|
|
+
|
|
|
|
|
+- 编号 **T41**(P1,module=cfc-frontend)
|
|
|
|
|
+- spec = 本文件
|
|
|
|
|
+- 改动文件:
|
|
|
|
|
+ - `cfc-frontend/pages/growth-main/index.vue`(+1 入口卡 +1 方法)
|
|
|
|
|
+ - `cfc-frontend/pages/home-pages/child-index.vue`(1 行跳转修正)
|
|
|
|
|
+- 验收:编译通过;成长页/孩子页均可进入 `games/list` 大厅。
|
|
|
|
|
+
|
|
|
|
|
+## 5. 备注
|
|
|
|
|
+
|
|
|
|
|
+- 本任务不处理:任务相关 6 处死链(`index-home.vue:1710/1712`、`child/tasks.vue:300/304`、`tasks/tasks.vue:578/580` 跳 `/pages/games/index`、`/pages/games/focus-timer`),这些页面不存在,属另一问题(若「做游戏得积分」场景需要,应另立页面或改指向),待主理人拍板。
|