feat: 首页增加每日练习模块
This commit is contained in:
@@ -48,796 +48,68 @@ export type HomeDisplayDataset = {
|
||||
const HOME_CATEGORY_TABS: HomeDisplayDataset['categoryTabs'] =
|
||||
CATEGORY_LIST_WITH_ALL.map(({ id, name }) => ({ id, name }));
|
||||
|
||||
const HOME_AGE_BANDS = AGE_BANDS.map((item, index) => ({
|
||||
key: item.key,
|
||||
label: item.label,
|
||||
desc: ['启蒙认知', '基础练习', '能力提升', '幼小衔接', '知识拓展'][index],
|
||||
path: '/pages/age/age',
|
||||
}));
|
||||
const HOME_AGE_BANDS: HomeDisplayDataset['ageBands'] = AGE_BANDS.map(
|
||||
(item, index) => ({
|
||||
key: item.key,
|
||||
label: item.label,
|
||||
desc: ['启蒙认知', '基础练习', '能力提升', '幼小衔接', '知识拓展'][
|
||||
index
|
||||
],
|
||||
path: '/pages/age/age',
|
||||
}),
|
||||
);
|
||||
|
||||
export const HOME_PRODUCT_TARGET_DATA: HomeDisplayDataset = {
|
||||
searchPlaceholder: '搜索你喜欢的练习册...',
|
||||
categoryTabs: [...HOME_CATEGORY_TABS],
|
||||
ageBands: HOME_AGE_BANDS,
|
||||
featured: [
|
||||
{
|
||||
id: 'target-featured-1',
|
||||
title: '圣诞主题涂色卡',
|
||||
subtitle: '节日限定创意内容',
|
||||
description: '首页推荐位示例,强调季节热点与真实打印效果。',
|
||||
category: 'craft',
|
||||
ageBand: '3-8岁',
|
||||
difficulty: '入门',
|
||||
icon: '🎄',
|
||||
badge: 'NEW',
|
||||
path: '',
|
||||
available: false,
|
||||
source: '产品设计文档 5.1 今日推荐',
|
||||
},
|
||||
{
|
||||
id: 'target-featured-2',
|
||||
title: '走迷宫大挑战',
|
||||
subtitle: '热门趣味训练',
|
||||
description: '产品规划中的高趣味内容,用于首页焦点推荐。',
|
||||
category: 'puzzle',
|
||||
ageBand: '4-7岁',
|
||||
difficulty: '进阶',
|
||||
icon: '🌀',
|
||||
badge: 'HOT',
|
||||
path: '',
|
||||
available: false,
|
||||
source: '产品设计文档 P2-22',
|
||||
},
|
||||
{
|
||||
id: 'target-featured-3',
|
||||
title: '拼音描红',
|
||||
subtitle: '幼小衔接高频内容',
|
||||
description: '语文模块重点新增内容,适合推荐位曝光。',
|
||||
category: 'chinese',
|
||||
ageBand: '5-7岁',
|
||||
difficulty: '基础',
|
||||
icon: '🔤',
|
||||
badge: '推荐',
|
||||
path: '',
|
||||
available: false,
|
||||
source: '产品设计文档 P1-12',
|
||||
},
|
||||
],
|
||||
hot: [
|
||||
{
|
||||
id: 'target-hot-1',
|
||||
title: '迷宫',
|
||||
subtitle: '高趣味路径探索',
|
||||
category: 'puzzle',
|
||||
ageBand: '4-7岁',
|
||||
difficulty: '进阶',
|
||||
icon: '🧭',
|
||||
badge: '热门',
|
||||
path: '',
|
||||
available: false,
|
||||
source: '产品设计文档 5.1 热门下载',
|
||||
},
|
||||
{
|
||||
id: 'target-hot-2',
|
||||
title: '涂色卡',
|
||||
subtitle: '动物与节日主题',
|
||||
category: 'craft',
|
||||
ageBand: '3-6岁',
|
||||
difficulty: '入门',
|
||||
icon: '🎨',
|
||||
badge: '热门',
|
||||
path: '',
|
||||
available: false,
|
||||
source: '产品设计文档 P3-29',
|
||||
},
|
||||
{
|
||||
id: 'target-hot-3',
|
||||
title: '加减法',
|
||||
subtitle: '家长高频打印内容',
|
||||
category: 'math',
|
||||
ageBand: '5-7岁',
|
||||
difficulty: '基础',
|
||||
icon: '➕',
|
||||
badge: '热门',
|
||||
previewImg: '/assets/entrancePicture/math/addition-5.png',
|
||||
path: '/mathPages/mathDraw/mathDraw?id=addition',
|
||||
available: true,
|
||||
source: '现有加减法页面可承接',
|
||||
},
|
||||
],
|
||||
sections: [
|
||||
{
|
||||
id: 'math',
|
||||
title: '数学启蒙',
|
||||
subtitle: '数字认知、计数练习、加减运算、时钟与形状',
|
||||
morePath: '/pages/category/category?id=math',
|
||||
items: [
|
||||
{
|
||||
id: 'target-math-1',
|
||||
title: '数字认知',
|
||||
subtitle: '认识数字 1-10',
|
||||
category: 'math',
|
||||
ageBand: '3-4岁',
|
||||
difficulty: '入门',
|
||||
icon: '🔢',
|
||||
previewImg: '/assets/entrancePicture/math/number-find.png',
|
||||
path: '/mathPages/mathDraw/mathDraw?id=number-find',
|
||||
available: true,
|
||||
source: '现有 找数字/写数字 能力',
|
||||
},
|
||||
{
|
||||
id: 'target-math-2',
|
||||
title: '计数练习',
|
||||
subtitle: '数一数、连一连、选一选',
|
||||
category: 'math',
|
||||
ageBand: '4-5岁',
|
||||
difficulty: '基础',
|
||||
icon: '🧮',
|
||||
previewImg: '/assets/entrancePicture/math/count-match.png',
|
||||
path: '/mathPages/mathDraw/mathDraw?id=counting-matching',
|
||||
available: true,
|
||||
source: '现有 countMatch/countingSelect',
|
||||
},
|
||||
{
|
||||
id: 'target-math-3',
|
||||
title: '加减运算',
|
||||
subtitle: '从 5 以内到 100 以内',
|
||||
category: 'math',
|
||||
ageBand: '5-7岁',
|
||||
difficulty: '基础',
|
||||
icon: '➕',
|
||||
previewImg: '/assets/entrancePicture/math/addition-5.png',
|
||||
path: '/mathPages/mathDraw/mathDraw?id=addition',
|
||||
available: true,
|
||||
source: '现有 addition/calculationPractice',
|
||||
},
|
||||
{
|
||||
id: 'target-math-4',
|
||||
title: '时钟练习',
|
||||
subtitle: '认识钟表与时间',
|
||||
category: 'math',
|
||||
ageBand: '5-7岁',
|
||||
difficulty: '进阶',
|
||||
icon: '🕒',
|
||||
path: '',
|
||||
available: false,
|
||||
source: '产品设计文档 P1-7',
|
||||
},
|
||||
{
|
||||
id: 'target-math-5',
|
||||
title: '形状认知',
|
||||
subtitle: '图形分类与空间感',
|
||||
category: 'math',
|
||||
ageBand: '3-5岁',
|
||||
difficulty: '入门',
|
||||
icon: '📐',
|
||||
path: '',
|
||||
available: false,
|
||||
source: '产品设计文档 3.1 信息架构',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'chinese',
|
||||
title: '语文启蒙',
|
||||
subtitle: '识字、练字、拼音、表达训练',
|
||||
morePath: '/pages/category/category?id=chinese',
|
||||
items: [
|
||||
{
|
||||
id: 'target-chinese-1',
|
||||
title: '识字卡',
|
||||
subtitle: '自定义汉字卡片',
|
||||
category: 'chinese',
|
||||
ageBand: '3-6岁',
|
||||
difficulty: '入门',
|
||||
icon: '📖',
|
||||
path: '/pages/index/index',
|
||||
available: true,
|
||||
source: '现有识字页',
|
||||
},
|
||||
{
|
||||
id: 'target-chinese-2',
|
||||
title: '练字帖',
|
||||
subtitle: '田字格笔顺练习',
|
||||
category: 'chinese',
|
||||
ageBand: '4-7岁',
|
||||
difficulty: '基础',
|
||||
icon: '✏️',
|
||||
path: '/pages/copyBook/copyBook',
|
||||
available: true,
|
||||
source: '现有练字页',
|
||||
},
|
||||
{
|
||||
id: 'target-chinese-3',
|
||||
title: '拼音练习',
|
||||
subtitle: '声母韵母描红',
|
||||
category: 'chinese',
|
||||
ageBand: '5-7岁',
|
||||
difficulty: '基础',
|
||||
icon: '🔤',
|
||||
path: '',
|
||||
available: false,
|
||||
source: '产品设计文档 P1-12',
|
||||
},
|
||||
{
|
||||
id: 'target-chinese-4',
|
||||
title: '看图说话',
|
||||
subtitle: '图片引导表达',
|
||||
category: 'chinese',
|
||||
ageBand: '5-7岁',
|
||||
difficulty: '进阶',
|
||||
icon: '🗣️',
|
||||
path: '',
|
||||
available: false,
|
||||
source: '产品设计文档 P1-15',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'english',
|
||||
title: '英语启蒙',
|
||||
subtitle: '字母学习、闪卡、描红与自然拼读',
|
||||
morePath: '/pages/category/category?id=english',
|
||||
items: [
|
||||
{
|
||||
id: 'target-english-1',
|
||||
title: '字母描红',
|
||||
subtitle: 'A-Z 大小写练习',
|
||||
category: 'english',
|
||||
ageBand: '4-6岁',
|
||||
difficulty: '入门',
|
||||
icon: '🔠',
|
||||
path: '/englishPages/letterTracing/letterTracing?id=letter-tracing-single',
|
||||
available: true,
|
||||
source: 'letter-tracing-single',
|
||||
},
|
||||
{
|
||||
id: 'target-english-2',
|
||||
title: '字母闪卡',
|
||||
subtitle: '字母与单词联想',
|
||||
category: 'english',
|
||||
ageBand: '3-6岁',
|
||||
difficulty: '入门',
|
||||
icon: '🪪',
|
||||
path: '',
|
||||
available: false,
|
||||
source: '产品设计文档 P1-18',
|
||||
},
|
||||
{
|
||||
id: 'target-english-3',
|
||||
title: '自然拼读练习纸',
|
||||
subtitle: 'CVC 单词启蒙',
|
||||
category: 'english',
|
||||
ageBand: '5-7岁',
|
||||
difficulty: '进阶',
|
||||
icon: '🔡',
|
||||
path: '',
|
||||
available: false,
|
||||
source: '产品设计文档 P1-21',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'puzzle',
|
||||
title: '益智游戏',
|
||||
subtitle: '迷宫、找不同、连线、数独与控笔',
|
||||
morePath: '/pages/category/category?id=puzzle',
|
||||
items: [
|
||||
{
|
||||
id: 'target-puzzle-1',
|
||||
title: '迷宫',
|
||||
subtitle: '不同难度路径挑战',
|
||||
category: 'puzzle',
|
||||
ageBand: '4-7岁',
|
||||
difficulty: '进阶',
|
||||
icon: '🌀',
|
||||
path: '',
|
||||
available: false,
|
||||
source: '产品设计文档 P2-22',
|
||||
},
|
||||
{
|
||||
id: 'target-puzzle-2',
|
||||
title: '找不同',
|
||||
subtitle: '观察力与专注力训练',
|
||||
category: 'puzzle',
|
||||
ageBand: '4-7岁',
|
||||
difficulty: '进阶',
|
||||
icon: '🔍',
|
||||
path: '',
|
||||
available: false,
|
||||
source: '产品设计文档 P2-23',
|
||||
},
|
||||
{
|
||||
id: 'target-puzzle-3',
|
||||
title: '连线题',
|
||||
subtitle: '数字点连线与物品连线',
|
||||
category: 'puzzle',
|
||||
ageBand: '4-6岁',
|
||||
difficulty: '基础',
|
||||
icon: '🧵',
|
||||
previewImg: '/assets/entrancePicture/focus/dot-connect.png',
|
||||
path: '/focusPages/focusDraw/focusDraw?id=dot-connect',
|
||||
available: true,
|
||||
source: '现有 dotConnect/matchConnect',
|
||||
},
|
||||
{
|
||||
id: 'target-puzzle-4',
|
||||
title: '数独入门',
|
||||
subtitle: '4x4 / 6x6 逻辑启蒙',
|
||||
category: 'puzzle',
|
||||
ageBand: '6-8岁',
|
||||
difficulty: '挑战',
|
||||
icon: '🧠',
|
||||
path: '',
|
||||
available: false,
|
||||
source: '产品设计文档 P2-24',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'craft',
|
||||
title: '创意手工',
|
||||
subtitle: '涂色卡、折纸、贴纸和主题手工',
|
||||
items: [
|
||||
{
|
||||
id: 'target-craft-1',
|
||||
title: '涂色卡',
|
||||
subtitle: '动物、交通、节日主题',
|
||||
category: 'craft',
|
||||
ageBand: '3-6岁',
|
||||
difficulty: '入门',
|
||||
icon: '🎨',
|
||||
path: '',
|
||||
available: false,
|
||||
source: '产品设计文档 P3-29',
|
||||
},
|
||||
{
|
||||
id: 'target-craft-2',
|
||||
title: '折纸模板',
|
||||
subtitle: '打印后即可折叠',
|
||||
category: 'craft',
|
||||
ageBand: '4-7岁',
|
||||
difficulty: '基础',
|
||||
icon: '🪭',
|
||||
path: '',
|
||||
available: false,
|
||||
source: '产品设计文档 P3-30',
|
||||
},
|
||||
{
|
||||
id: 'target-craft-3',
|
||||
title: '贴纸打印',
|
||||
subtitle: '奖励贴纸与装饰贴纸',
|
||||
category: 'craft',
|
||||
ageBand: '3-8岁',
|
||||
difficulty: '入门',
|
||||
icon: '⭐',
|
||||
path: '',
|
||||
available: false,
|
||||
source: '产品设计文档 P3-33',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
};
|
||||
/** 首页固定:每日打卡练习(不随云端配置变化) */
|
||||
export const HOME_DAILY_CHECKIN_ITEMS: HomeDisplayItem[] = [
|
||||
{
|
||||
id: 'hanzi-daily-checkin',
|
||||
title: '汉字每日打卡',
|
||||
subtitle: '每日 8 字带拼音笔顺打卡',
|
||||
category: 'chinese',
|
||||
ageBand: '5-8岁',
|
||||
difficulty: '基础',
|
||||
icon: '📝',
|
||||
previewImg:
|
||||
'cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/chinese/hanzi-daily-checkin.jpg',
|
||||
path: '/chinesePages/handwritingSheet/handwritingSheet?id=hanzi-daily-checkin',
|
||||
available: true,
|
||||
},
|
||||
{
|
||||
id: 'pinyin-daily',
|
||||
title: '拼音每日打卡',
|
||||
subtitle: '四宫格每日打卡练习',
|
||||
category: 'pinyin',
|
||||
ageBand: '6-8岁',
|
||||
difficulty: '基础',
|
||||
icon: '🔤',
|
||||
previewImg:
|
||||
'cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/pinyin/pinyin-daily.jpg',
|
||||
path: '/pinyinPages/pinyinDictation/pinyinDictation?id=pinyin-daily',
|
||||
available: true,
|
||||
},
|
||||
{
|
||||
id: 'letter-tracing-daily-checkin',
|
||||
title: '字母每日打卡',
|
||||
subtitle: '四宫格每日字母打卡练习',
|
||||
category: 'english',
|
||||
ageBand: '6-8岁',
|
||||
difficulty: '基础',
|
||||
icon: '🔠',
|
||||
previewImg:
|
||||
'cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/english/letter-tracing-daily-checkin.jpg',
|
||||
path: '/englishPages/letterTracing/letterTracing?id=letter-tracing-daily-checkin',
|
||||
available: true,
|
||||
},
|
||||
];
|
||||
|
||||
export const HOME_CURRENT_CAPABILITY_DATA: HomeDisplayDataset = {
|
||||
searchPlaceholder: '搜索你喜欢的练习册...',
|
||||
categoryTabs: [...HOME_CATEGORY_TABS],
|
||||
ageBands: HOME_AGE_BANDS,
|
||||
featured: [
|
||||
{
|
||||
id: 'current-featured-1',
|
||||
title: '10以内加减法',
|
||||
subtitle: '最适合首页推荐的高频内容',
|
||||
description: '现有数学能力中最接近产品文档“热门下载”的内容。',
|
||||
category: 'math',
|
||||
ageBand: '5-6岁',
|
||||
difficulty: '基础',
|
||||
icon: '➕',
|
||||
badge: 'HOT',
|
||||
previewImg: '/assets/entrancePicture/math/addition-5.png',
|
||||
path: '/mathPages/mathDraw/mathDraw?id=addition',
|
||||
available: true,
|
||||
source: '现有功能清单 addition',
|
||||
},
|
||||
{
|
||||
id: 'current-featured-2',
|
||||
title: '涂色识字卡',
|
||||
subtitle: '兼顾识字与趣味涂色',
|
||||
description: '当前最接近创意内容的主包能力,可承接语文与创意入口。',
|
||||
category: 'chinese',
|
||||
ageBand: '3-6岁',
|
||||
difficulty: '入门',
|
||||
icon: '📚',
|
||||
badge: '推荐',
|
||||
path: '/pages/index/index',
|
||||
available: true,
|
||||
source: '现有识字页',
|
||||
},
|
||||
{
|
||||
id: 'current-featured-3',
|
||||
title: '数字点连线',
|
||||
subtitle: '用连点成图提升专注力',
|
||||
description: '能承担产品文档中“益智游戏”内容氛围。',
|
||||
category: 'puzzle',
|
||||
ageBand: '4-6岁',
|
||||
difficulty: '基础',
|
||||
icon: '🔗',
|
||||
badge: '热门',
|
||||
previewImg: '/assets/entrancePicture/focus/dot-connect.png',
|
||||
path: '/focusPages/focusDraw/focusDraw?id=dot-connect',
|
||||
available: true,
|
||||
source: '现有功能清单 dot-connect',
|
||||
},
|
||||
],
|
||||
hot: [
|
||||
{
|
||||
id: 'current-hot-1',
|
||||
title: '找数字,涂一涂',
|
||||
subtitle: '低龄启蒙高频内容',
|
||||
category: 'math',
|
||||
ageBand: '3-4岁',
|
||||
difficulty: '入门',
|
||||
icon: '🔢',
|
||||
badge: '热门',
|
||||
previewImg: '/assets/entrancePicture/math/number-find.png',
|
||||
path: '/mathPages/mathDraw/mathDraw?id=number-find',
|
||||
available: true,
|
||||
source: 'number-find',
|
||||
},
|
||||
{
|
||||
id: 'current-hot-2',
|
||||
title: '数一数,连一连',
|
||||
subtitle: '点数和数字对应',
|
||||
category: 'math',
|
||||
ageBand: '4-5岁',
|
||||
difficulty: '基础',
|
||||
icon: '🧮',
|
||||
badge: '热门',
|
||||
previewImg: '/assets/entrancePicture/math/count-match.png',
|
||||
path: '/mathPages/mathDraw/mathDraw?id=counting-matching',
|
||||
available: true,
|
||||
source: 'counting-matching',
|
||||
},
|
||||
{
|
||||
id: 'current-hot-3',
|
||||
title: '格子仿画 5×5',
|
||||
subtitle: '图形观察与耐心训练',
|
||||
category: 'puzzle',
|
||||
ageBand: '5-7岁',
|
||||
difficulty: '进阶',
|
||||
icon: '🟨',
|
||||
badge: '热门',
|
||||
previewImg: '/assets/entrancePicture/focus/grid-drawing-5x5.png',
|
||||
path: '/focusPages/focusDraw/focusDraw?id=grid-drawing',
|
||||
available: true,
|
||||
source: 'grid-drawing-5x5',
|
||||
},
|
||||
],
|
||||
sections: [
|
||||
{
|
||||
id: 'math',
|
||||
title: '数感启蒙',
|
||||
subtitle: '优先展示现有高价值、高覆盖的数感与运算内容',
|
||||
morePath: '/pages/category/category?id=math',
|
||||
items: [
|
||||
{
|
||||
id: 'current-math-1',
|
||||
title: '数字认知',
|
||||
subtitle: '找数字、写数字',
|
||||
category: 'math',
|
||||
ageBand: '3-4岁',
|
||||
difficulty: '入门',
|
||||
icon: '🔢',
|
||||
previewImg: '/assets/entrancePicture/math/number-find.png',
|
||||
path: '/mathPages/mathDraw/mathDraw?id=number-find',
|
||||
available: true,
|
||||
source: 'number-find / number-write',
|
||||
},
|
||||
{
|
||||
id: 'current-math-2',
|
||||
title: '计数练习',
|
||||
subtitle: '数一数、连一连、选一选',
|
||||
category: 'math',
|
||||
ageBand: '4-5岁',
|
||||
difficulty: '基础',
|
||||
icon: '🧮',
|
||||
previewImg: '/assets/entrancePicture/math/count-match.png',
|
||||
path: '/mathPages/mathDraw/mathDraw?id=counting-matching',
|
||||
available: true,
|
||||
source: 'countMatch / countingSelect',
|
||||
},
|
||||
{
|
||||
id: 'current-math-3',
|
||||
title: '数字序列',
|
||||
subtitle: '数字排序与缺失填空',
|
||||
category: 'math',
|
||||
ageBand: '4-5岁',
|
||||
difficulty: '基础',
|
||||
icon: '📈',
|
||||
previewImg: '/assets/entrancePicture/math/number-sort.png',
|
||||
path: '/mathPages/mathDraw/mathDraw?id=number-sort',
|
||||
available: true,
|
||||
source: 'numberSort / missingNumber',
|
||||
},
|
||||
{
|
||||
id: 'current-math-4',
|
||||
title: '加减运算',
|
||||
subtitle: '5以内到100以内逐步进阶',
|
||||
category: 'math',
|
||||
ageBand: '5-7岁',
|
||||
difficulty: '基础',
|
||||
icon: '➕',
|
||||
previewImg: '/assets/entrancePicture/math/addition-5.png',
|
||||
path: '/mathPages/mathDraw/mathDraw?id=addition',
|
||||
available: true,
|
||||
source: 'addition / calculationPractice',
|
||||
},
|
||||
{
|
||||
id: 'current-math-5',
|
||||
title: '乘法口诀',
|
||||
subtitle: '九九乘法表启蒙',
|
||||
category: 'math',
|
||||
ageBand: '7-8岁',
|
||||
difficulty: '挑战',
|
||||
icon: '✖️',
|
||||
previewImg:
|
||||
'/assets/entrancePicture/math/multiplication-table.png',
|
||||
path: '/mathPages/mathDraw/mathDraw?id=multiplication-table',
|
||||
available: true,
|
||||
source: 'multiplicationTable',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'chinese',
|
||||
title: '识字练字',
|
||||
subtitle: '用现有识字与练字能力先覆盖核心语文场景',
|
||||
morePath: '/pages/category/category?id=chinese',
|
||||
items: [
|
||||
{
|
||||
id: 'current-chinese-1',
|
||||
title: '识字卡',
|
||||
subtitle: '最多 6 个汉字,自定义颜色',
|
||||
category: 'chinese',
|
||||
ageBand: '3-6岁',
|
||||
difficulty: '入门',
|
||||
icon: '📖',
|
||||
path: '/pages/index/index',
|
||||
available: true,
|
||||
source: 'pages/index/index',
|
||||
},
|
||||
{
|
||||
id: 'current-chinese-2',
|
||||
title: '找一找识字',
|
||||
subtitle: '识字 find 模板,更接近游戏化练习',
|
||||
category: 'chinese',
|
||||
ageBand: '4-6岁',
|
||||
difficulty: '基础',
|
||||
icon: '🔍',
|
||||
path: '/pages/index/index',
|
||||
available: true,
|
||||
source: '识字页 find 模板',
|
||||
},
|
||||
{
|
||||
id: 'current-chinese-3',
|
||||
title: '笔顺练字帖',
|
||||
subtitle: '田字格与笔顺描红',
|
||||
category: 'chinese',
|
||||
ageBand: '4-7岁',
|
||||
difficulty: '基础',
|
||||
icon: '✏️',
|
||||
path: '/pages/copyBook/copyBook',
|
||||
available: true,
|
||||
source: 'pages/copyBook/copyBook',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'puzzle',
|
||||
title: '益智游戏',
|
||||
subtitle: '从现有专注力模块中抽取最符合产品重设计的内容',
|
||||
morePath: '/pages/category/category?id=puzzle',
|
||||
items: [
|
||||
{
|
||||
id: 'current-puzzle-1',
|
||||
title: '数字点连线',
|
||||
subtitle: '按顺序连点成图',
|
||||
category: 'puzzle',
|
||||
ageBand: '4-6岁',
|
||||
difficulty: '基础',
|
||||
icon: '🔗',
|
||||
previewImg: '/assets/entrancePicture/focus/dot-connect.png',
|
||||
path: '/focusPages/focusDraw/focusDraw?id=dot-connect',
|
||||
available: true,
|
||||
source: 'dot-connect',
|
||||
},
|
||||
{
|
||||
id: 'current-puzzle-2',
|
||||
title: '连连看',
|
||||
subtitle: '物品配对与关系匹配',
|
||||
category: 'puzzle',
|
||||
ageBand: '4-6岁',
|
||||
difficulty: '基础',
|
||||
icon: '🧵',
|
||||
previewImg:
|
||||
'/assets/entrancePicture/focus/match-connect.png',
|
||||
path: '/focusPages/focusDraw/focusDraw?id=match-connect',
|
||||
available: true,
|
||||
source: 'match-connect',
|
||||
},
|
||||
{
|
||||
id: 'current-puzzle-3',
|
||||
title: '颜色找规律',
|
||||
subtitle: '模式识别与推理',
|
||||
category: 'puzzle',
|
||||
ageBand: '4-6岁',
|
||||
difficulty: '基础',
|
||||
icon: '🌈',
|
||||
previewImg:
|
||||
'/assets/entrancePicture/focus/color-pattern.png',
|
||||
path: '/focusPages/focusDraw/focusDraw?id=color-pattern',
|
||||
available: true,
|
||||
source: 'color-pattern',
|
||||
},
|
||||
{
|
||||
id: 'current-puzzle-4',
|
||||
title: '方格推理',
|
||||
subtitle: '逻辑关系与观察力',
|
||||
category: 'puzzle',
|
||||
ageBand: '5-7岁',
|
||||
difficulty: '进阶',
|
||||
icon: '🧠',
|
||||
previewImg:
|
||||
'/assets/entrancePicture/focus/grid-reasoning.png',
|
||||
path: '/focusPages/focusDraw/focusDraw?id=grid-reasoning',
|
||||
available: true,
|
||||
source: 'grid-reasoning',
|
||||
},
|
||||
{
|
||||
id: 'current-puzzle-5',
|
||||
title: '格子仿画',
|
||||
subtitle: '3、5、7 逐级挑战',
|
||||
category: 'puzzle',
|
||||
ageBand: '4-7岁',
|
||||
difficulty: '进阶',
|
||||
icon: '🟨',
|
||||
previewImg:
|
||||
'/assets/entrancePicture/focus/grid-drawing-5x5.png',
|
||||
path: '/focusPages/focusDraw/focusDraw?id=grid-drawing',
|
||||
available: true,
|
||||
source: 'grid-drawing',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'english',
|
||||
title: '英语启蒙',
|
||||
subtitle: '多种描红版式,认读与书写循序渐进',
|
||||
morePath: '/pages/category/category?id=english',
|
||||
items: [
|
||||
{
|
||||
id: 'current-english-1',
|
||||
title: '默认字帖',
|
||||
subtitle: '配图例句,逐字描红',
|
||||
category: 'english',
|
||||
ageBand: '4-7岁',
|
||||
difficulty: '入门',
|
||||
icon: '',
|
||||
previewImg:
|
||||
'/assets/entrancePicture/english/letter-tracing-single.jpg',
|
||||
path: '/englishPages/letterTracing/letterTracing?id=letter-tracing-single',
|
||||
available: true,
|
||||
source: 'letter-tracing-single',
|
||||
},
|
||||
{
|
||||
id: 'current-english-2',
|
||||
title: '基础描红',
|
||||
subtitle: '26 字母大小写速览',
|
||||
category: 'english',
|
||||
ageBand: '4-7岁',
|
||||
difficulty: '入门',
|
||||
icon: '',
|
||||
previewImg:
|
||||
'/assets/entrancePicture/english/letter-tracing-upper-lower.jpg',
|
||||
path: '/englishPages/letterTracing/letterTracing?id=letter-tracing-upper-lower',
|
||||
available: true,
|
||||
source: 'letter-tracing-upper-lower',
|
||||
},
|
||||
{
|
||||
id: 'current-english-3',
|
||||
title: '大小写对照',
|
||||
subtitle: '左大右小,逐行对照',
|
||||
category: 'english',
|
||||
ageBand: '4-7岁',
|
||||
difficulty: '入门',
|
||||
icon: '',
|
||||
previewImg:
|
||||
'/assets/entrancePicture/english/letter-tracing-case-pairing.jpg',
|
||||
path: '/englishPages/letterTracing/letterTracing?id=letter-tracing-case-pairing',
|
||||
available: true,
|
||||
source: 'letter-tracing-case-pairing',
|
||||
},
|
||||
{
|
||||
id: 'current-english-4',
|
||||
title: '两列描红',
|
||||
subtitle: 'Aa 配对,左右分列',
|
||||
category: 'english',
|
||||
ageBand: '4-7岁',
|
||||
difficulty: '入门',
|
||||
icon: '',
|
||||
previewImg:
|
||||
'/assets/entrancePicture/english/letter-tracing-two-column.jpg',
|
||||
path: '/englishPages/letterTracing/letterTracing?id=letter-tracing-two-column',
|
||||
available: true,
|
||||
source: 'letter-tracing-two-column',
|
||||
},
|
||||
{
|
||||
id: 'current-english-5',
|
||||
title: '13字母半表',
|
||||
subtitle: '每行一字,逐字专练',
|
||||
category: 'english',
|
||||
ageBand: '4-7岁',
|
||||
difficulty: '入门',
|
||||
icon: '',
|
||||
previewImg:
|
||||
'/assets/entrancePicture/english/letter-tracing-half.jpg',
|
||||
path: '/englishPages/letterTracing/letterTracing?id=letter-tracing-half',
|
||||
available: true,
|
||||
source: 'letter-tracing-half',
|
||||
},
|
||||
{
|
||||
id: 'current-english-6',
|
||||
title: '三字母精练',
|
||||
subtitle: '每页三字,深度书写',
|
||||
category: 'english',
|
||||
ageBand: '4-7岁',
|
||||
difficulty: '入门',
|
||||
icon: '',
|
||||
previewImg:
|
||||
'/assets/entrancePicture/english/letter-tracing-three.jpg',
|
||||
path: '/englishPages/letterTracing/letterTracing?id=letter-tracing-three',
|
||||
available: true,
|
||||
source: 'letter-tracing-three',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'craft',
|
||||
title: '创意手工',
|
||||
subtitle: '暂用最接近创意表达的现有能力承接展示位',
|
||||
morePath: '/pages/category/category?id=craft',
|
||||
items: [
|
||||
{
|
||||
id: 'current-craft-1',
|
||||
title: '涂色识字卡',
|
||||
subtitle: '在识字场景里提供涂色表达',
|
||||
category: 'craft',
|
||||
ageBand: '3-6岁',
|
||||
difficulty: '入门',
|
||||
icon: '🎨',
|
||||
path: '/pages/index/index',
|
||||
available: true,
|
||||
source: '现有识字卡着色能力',
|
||||
},
|
||||
{
|
||||
id: 'current-craft-2',
|
||||
title: '字帖打印',
|
||||
subtitle: '打印后可反复练习',
|
||||
category: 'craft',
|
||||
ageBand: '4-7岁',
|
||||
difficulty: '基础',
|
||||
icon: '🖌️',
|
||||
path: '/pages/copyBook/copyBook',
|
||||
available: true,
|
||||
source: '练字页打印能力',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export const HOME_DISPLAY_DATA = {
|
||||
productTarget: HOME_PRODUCT_TARGET_DATA,
|
||||
currentCapability: HOME_CURRENT_CAPABILITY_DATA,
|
||||
} as const;
|
||||
/** 云端配置不可用时的空首页结构(仅保留 Tab / 分龄导航骨架) */
|
||||
export function createEmptyHomeDataset(): HomeDisplayDataset {
|
||||
return {
|
||||
searchPlaceholder: '搜索你喜欢的练习册...',
|
||||
categoryTabs: [...HOME_CATEGORY_TABS],
|
||||
ageBands: [...HOME_AGE_BANDS],
|
||||
featured: [],
|
||||
hot: [],
|
||||
sections: [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -4,7 +4,8 @@ import {
|
||||
stashPendingCategoryTabId,
|
||||
} from '../../utils/index';
|
||||
import {
|
||||
HOME_CURRENT_CAPABILITY_DATA,
|
||||
HOME_DAILY_CHECKIN_ITEMS,
|
||||
createEmptyHomeDataset,
|
||||
type HomeDisplayItem,
|
||||
type HomeDisplaySection,
|
||||
type HomeDisplayDataset,
|
||||
@@ -133,11 +134,22 @@ let _homeData: HomeDisplayDataset | null = null;
|
||||
|
||||
function applyHomeData(data: HomeDisplayDataset) {
|
||||
_homeData = data;
|
||||
const tabs: HomeTab[] = data.categoryTabs.map((item) => ({
|
||||
id: item.id,
|
||||
name: item.name,
|
||||
}));
|
||||
const sections = sortSectionsByTabs(tabs, data.sections);
|
||||
|
||||
const sectionsWithItems = data.sections.filter(
|
||||
(section) => section.items.length > 0,
|
||||
);
|
||||
const sectionIdsWithItems = new Set(
|
||||
sectionsWithItems.map((section) => section.id),
|
||||
);
|
||||
|
||||
const tabs: HomeTab[] = data.categoryTabs
|
||||
.filter((tab) => tab.id === 'all' || sectionIdsWithItems.has(tab.id))
|
||||
.map((tab) => ({
|
||||
id: tab.id,
|
||||
name: tab.name,
|
||||
}));
|
||||
|
||||
const sections = sortSectionsByTabs(tabs, sectionsWithItems);
|
||||
const ageBands: HomeAgeBandView[] = data.ageBands.map((item, idx) => ({
|
||||
...item,
|
||||
icon: AGE_BAND_ICONS[idx] || '🌟',
|
||||
@@ -156,6 +168,7 @@ Page({
|
||||
heroSwiperCurrent: 0,
|
||||
featuredItems: SKELETON_FEATURED,
|
||||
hotRecommends: SKELETON_HOT,
|
||||
dailyCheckinItems: HOME_DAILY_CHECKIN_ITEMS.map(toItemView),
|
||||
sections: [] as HomeDisplaySectionView[],
|
||||
loading: true,
|
||||
},
|
||||
@@ -185,7 +198,7 @@ Page({
|
||||
sections: (raw.sections || []) as HomeDisplaySection[],
|
||||
};
|
||||
} else {
|
||||
homeData = HOME_CURRENT_CAPABILITY_DATA;
|
||||
homeData = createEmptyHomeDataset();
|
||||
}
|
||||
|
||||
const { tabs, sections, ageBands } = applyHomeData(homeData);
|
||||
|
||||
@@ -164,6 +164,54 @@
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="home-section-panel home-section-panel--hot">
|
||||
<view class="home-section-head">
|
||||
<text class="home-section-head__title">每日练习</text>
|
||||
</view>
|
||||
<view class="home-hot-list">
|
||||
<view
|
||||
wx:for="{{dailyCheckinItems}}"
|
||||
wx:key="id"
|
||||
class="home-hot-card"
|
||||
data-title="{{item.title}}"
|
||||
data-path="{{item.path}}"
|
||||
bindtap="onTapHotRecommend">
|
||||
<view class="home-hot-card__thumb">
|
||||
<image
|
||||
wx:if="{{item.previewImg}}"
|
||||
class="home-hot-card__thumb-img"
|
||||
src="{{item.previewImg}}"
|
||||
mode="aspectFill" />
|
||||
<text
|
||||
wx:if="{{!item.previewImg}}"
|
||||
class="home-hot-card__thumb-emoji"
|
||||
>{{item.icon}}</text
|
||||
>
|
||||
</view>
|
||||
<view class="home-hot-card__content">
|
||||
<text class="home-hot-card__title">{{item.title}}</text>
|
||||
<text class="home-hot-card__desc"
|
||||
>{{item.subtitle}}</text
|
||||
>
|
||||
<view class="home-hot-card__meta">
|
||||
<text class="home-hot-card__tag"
|
||||
>{{item.ageBand}}</text
|
||||
>
|
||||
<text class="home-hot-card__score"
|
||||
>{{item.difficulty}}</text
|
||||
>
|
||||
</view>
|
||||
</view>
|
||||
<view class="home-hot-card__action">
|
||||
<toy-icon
|
||||
name="arrow-right"
|
||||
size="36rpx"
|
||||
color="#2b2b2b" />
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view
|
||||
wx:for="{{sections}}"
|
||||
wx:key="id"
|
||||
|
||||
Reference in New Issue
Block a user