diff --git a/cache/page-config.json b/cache/page-config.json index ed9a27d..5b5fc4b 100644 --- a/cache/page-config.json +++ b/cache/page-config.json @@ -1 +1,539 @@ -{"_id":"current","home":{"searchPlaceholder":"搜索你喜欢的练习册...","categoryTabs":[{"id":"all","name":"全部"},{"id":"math","name":"数感启蒙"},{"id":"puzzle","name":"益智游戏"},{"id":"pinyin","name":"汉语拼音"},{"id":"chinese","name":"识字练字"},{"id":"english","name":"英语启蒙"},{"id":"craft","name":"创意手工"}],"ageBands":[{"key":"3-4","label":"3-4 岁","desc":"启蒙认知","path":"/pages/age/age"},{"key":"4-5","label":"4-5 岁","desc":"基础练习","path":"/pages/age/age"},{"key":"5-6","label":"5-6 岁","desc":"能力提升","path":"/pages/age/age"},{"key":"6-7","label":"6-7 岁","desc":"幼小衔接","path":"/pages/age/age"},{"key":"7-8","label":"7-8 岁","desc":"知识拓展","path":"/pages/age/age"}],"featured":[{"id":"number-coloring","title":"按数字,涂颜色","subtitle":"按指定数字涂色","category":"math","ageBand":"3-5岁","difficulty":"入门","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/math/number-coloring.jpg","badge":"","path":"/mathPages/mathDraw/mathDraw?id=number-coloring","available":true},{"id":"number-sort","title":"数字排序","subtitle":"写出正确的数字顺序","category":"math","ageBand":"4-6岁","difficulty":"基础","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/math/number-sort.jpg","badge":"","path":"/mathPages/mathDraw/mathDraw?id=number-sort","available":true},{"id":"code-connect","title":"译码连线","subtitle":"按数字顺序连线","category":"puzzle","ageBand":"5-7岁","difficulty":"进阶","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/puzzle/code-connect.jpg","badge":"","path":"/focusPages/focusDraw/focusDraw?id=code-connect","available":true},{"id":"handwriting-sheet","title":"自定义练字帖","subtitle":"自定义田字格练字帖","category":"chinese","ageBand":"4-8岁","difficulty":"基础","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/chinese/handwriting-sheet.jpg","badge":"","path":"/chinesePages/handwritingSheet/handwritingSheet?id=handwriting-sheet","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","badge":"","path":"/englishPages/letterTracing/letterTracing?id=letter-tracing-daily-checkin","available":true},{"id":"dot-connect","title":"数字点连线","subtitle":"按数字顺序连点成图","category":"puzzle","ageBand":"4-6岁","difficulty":"入门","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/puzzle/dot-connect.jpg","badge":"","path":"/focusPages/focusDraw/focusDraw?id=dot-connect","available":true}],"hot":[{"id":"number-sort","title":"数字排序","subtitle":"写出正确的数字顺序","category":"math","ageBand":"4-6岁","difficulty":"基础","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/math/number-sort.jpg","badge":"","path":"/mathPages/mathDraw/mathDraw?id=number-sort","available":true},{"id":"number-coloring","title":"按数字,涂颜色","subtitle":"按指定数字涂色","category":"math","ageBand":"3-5岁","difficulty":"入门","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/math/number-coloring.jpg","badge":"","path":"/mathPages/mathDraw/mathDraw?id=number-coloring","available":true},{"id":"make-ten","title":"凑十法练习","subtitle":"20以内进位加法","category":"math","ageBand":"5-7岁","difficulty":"进阶","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/math/make-ten.jpg","badge":"","path":"/mathPages/mathDraw/mathDraw?id=make-ten","available":true},{"id":"code-connect","title":"译码连线","subtitle":"按数字顺序连线","category":"puzzle","ageBand":"5-7岁","difficulty":"进阶","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/puzzle/code-connect.jpg","badge":"","path":"/focusPages/focusDraw/focusDraw?id=code-connect","available":true},{"id":"counting-matching","title":"数一数,连一连","subtitle":"连线配对数字和数量","category":"math","ageBand":"3-5岁","difficulty":"入门","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/math/counting-matching.jpg","badge":"","path":"/mathPages/mathDraw/mathDraw?id=counting-matching","available":true}],"sections":[{"id":"math","title":"数感启蒙","subtitle":"","morePath":"/pages/category/category?id=math","items":[{"id":"number-sort","title":"数字排序","subtitle":"写出正确的数字顺序","category":"math","ageBand":"4-6岁","difficulty":"基础","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/math/number-sort.jpg","badge":"","path":"/mathPages/mathDraw/mathDraw?id=number-sort","available":true},{"id":"number-coloring","title":"按数字,涂颜色","subtitle":"按指定数字涂色","category":"math","ageBand":"3-5岁","difficulty":"入门","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/math/number-coloring.jpg","badge":"","path":"/mathPages/mathDraw/mathDraw?id=number-coloring","available":true},{"id":"make-ten","title":"凑十法练习","subtitle":"20以内进位加法","category":"math","ageBand":"5-7岁","difficulty":"进阶","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/math/make-ten.jpg","badge":"","path":"/mathPages/mathDraw/mathDraw?id=make-ten","available":true},{"id":"number-decompose","title":"10以内数的分与合","subtitle":"把数字分一分,合一合","category":"math","ageBand":"5-7岁","difficulty":"入门","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/math/number-decompose.jpg","badge":"","path":"/mathPages/mathDraw/mathDraw?id=number-decompose","available":true},{"id":"number-find","title":"找数字,涂一涂","subtitle":"找出目标数字并涂色","category":"math","ageBand":"3-5岁","difficulty":"入门","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/math/number-find.jpg","badge":"","path":"/mathPages/mathDraw/mathDraw?id=number-find","available":true}]},{"id":"puzzle","title":"益智游戏","subtitle":"","morePath":"/pages/category/category?id=puzzle","items":[{"id":"position-coloring","title":"方位涂涂乐","subtitle":"观察位置,在方格中涂色","category":"puzzle","ageBand":"4-6岁","difficulty":"基础","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/puzzle/position-coloring.jpg","badge":"","path":"/focusPages/focusDraw/focusDraw?id=position-coloring","available":true},{"id":"line-recognition","title":"线条识别","subtitle":"认识不同线条,画对应线条","category":"puzzle","ageBand":"3-6岁","difficulty":"入门","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/puzzle/line-recognition.jpg","badge":"","path":"/focusPages/focusDraw/focusDraw?id=line-recognition","available":true},{"id":"grid-reasoning","title":"方格推理","subtitle":"推理出合并方格并连线","category":"puzzle","ageBand":"5-7岁","difficulty":"进阶","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/puzzle/grid-reasoning.jpg","badge":"","path":"/focusPages/focusDraw/focusDraw?id=grid-reasoning","available":true},{"id":"code-connect","title":"译码连线","subtitle":"按数字顺序连线","category":"puzzle","ageBand":"5-7岁","difficulty":"进阶","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/puzzle/code-connect.jpg","badge":"","path":"/focusPages/focusDraw/focusDraw?id=code-connect","available":true},{"id":"shape-symbol","title":"图形符号配对","subtitle":"根据图形画对应符号","category":"puzzle","ageBand":"4-6岁","difficulty":"基础","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/puzzle/shape-symbol.jpg","badge":"","path":"/focusPages/focusDraw/focusDraw?id=shape-symbol","available":true}]},{"id":"pinyin","title":"汉语拼音","subtitle":"","morePath":"/pages/category/category?id=pinyin","items":[{"id":"pinyin-tracing","title":"拼音描红练习","subtitle":"跟着描红学拼音字母","category":"pinyin","ageBand":"5-7岁","difficulty":"入门","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/pinyin/pinyin-tracing.jpg","badge":"","path":"/pinyinPages/pinyinDictation/pinyinDictation?id=pinyin-tracing","available":true},{"id":"pinyin-dictation","title":"拼音默写练习","subtitle":"空白格子默写拼音字母","category":"pinyin","ageBand":"6-8岁","difficulty":"基础","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/pinyin/pinyin-dictation.jpg","badge":"","path":"/pinyinPages/pinyinDictation/pinyinDictation?id=pinyin-dictation","available":true},{"id":"pinyin-tracing-v2","title":"拼音描红 8 列","subtitle":"跟写描红,声韵分块","category":"pinyin","ageBand":"5-7岁","difficulty":"入门","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/pinyin/pinyin-tracing-v2.jpg","badge":"","path":"/pinyinPages/pinyinDictation/pinyinDictation?id=pinyin-tracing-v2","available":true},{"id":"pinyin-dictation-v2","title":"拼音默写 8 列","subtitle":"空白默写,声韵分块","category":"pinyin","ageBand":"6-8岁","difficulty":"基础","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/pinyin/pinyin-dictation-v2.jpg","badge":"","path":"/pinyinPages/pinyinDictation/pinyinDictation?id=pinyin-dictation-v2","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","badge":"","path":"/pinyinPages/pinyinDictation/pinyinDictation?id=pinyin-daily","available":true}]},{"id":"chinese","title":"识字练字","subtitle":"","morePath":"/pages/category/category?id=chinese","items":[{"id":"word-coloring-grid","title":"网格涂色","subtitle":"田字格涂色识字练习","category":"chinese","ageBand":"3-6岁","difficulty":"入门","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/chinese/word-coloring-grid.jpg","badge":"","path":"/chinesePages/wordColoring/wordColoring?id=word-coloring-grid","available":true},{"id":"word-coloring-find","title":"找字涂色","subtitle":"在字海中找到目标字并涂色","category":"chinese","ageBand":"3-6岁","difficulty":"入门","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/chinese/word-coloring-find.jpg","badge":"","path":"/chinesePages/wordColoring/wordColoring?id=word-coloring-find","available":true},{"id":"handwriting-sheet","title":"自定义练字帖","subtitle":"自定义田字格练字帖","category":"chinese","ageBand":"4-8岁","difficulty":"基础","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/chinese/handwriting-sheet.jpg","badge":"","path":"/chinesePages/handwritingSheet/handwritingSheet?id=handwriting-sheet","available":true}]},{"id":"english","title":"英语启蒙","subtitle":"","morePath":"/pages/category/category?id=english","items":[{"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","badge":"","path":"/englishPages/letterTracing/letterTracing?id=letter-tracing-daily-checkin","available":true},{"id":"letter-tracing-single","title":"默认字帖","subtitle":"配图、例句与描红","category":"english","ageBand":"4-7岁","difficulty":"入门","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/english/letter-tracing-single.jpg","badge":"","path":"/englishPages/letterTracing/letterTracing?id=letter-tracing-single","available":true},{"id":"letter-tracing-case-pairing","title":"大小写对照","subtitle":"半组字母左大写右小写","category":"english","ageBand":"5-7岁","difficulty":"入门","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/english/letter-tracing-case-pairing.jpg","badge":"","path":"/englishPages/letterTracing/letterTracing?id=letter-tracing-case-pairing","available":true},{"id":"letter-tracing-half","title":"13字母半表","subtitle":"每行一个字母,13 字母半表","category":"english","ageBand":"5-8岁","difficulty":"基础","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/english/letter-tracing-half.jpg","badge":"","path":"/englishPages/letterTracing/letterTracing?id=letter-tracing-half","available":true},{"id":"letter-tracing-two-column","title":"两列描红","subtitle":"左 A–M、右 N–Z 配对描红","category":"english","ageBand":"5-7岁","difficulty":"入门","icon":"","previewImg":"cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/english/letter-tracing-two-column.jpg","badge":"","path":"/englishPages/letterTracing/letterTracing?id=letter-tracing-two-column","available":true}]}]},"category":null,"age":null,"version":20,"updatedAt":"2026-05-20T07:32:13.444Z"} \ No newline at end of file +{ + "_id": "current", + "home": { + "searchPlaceholder": "搜索你喜欢的练习册...", + "categoryTabs": [ + { "id": "all", "name": "全部" }, + { "id": "math", "name": "数感启蒙" }, + { "id": "puzzle", "name": "益智游戏" }, + { "id": "pinyin", "name": "汉语拼音" }, + { "id": "chinese", "name": "识字练字" }, + { "id": "english", "name": "英语启蒙" }, + { "id": "craft", "name": "创意手工" } + ], + "ageBands": [ + { + "key": "3-4", + "label": "3-4 岁", + "desc": "启蒙认知", + "path": "/pages/age/age" + }, + { + "key": "4-5", + "label": "4-5 岁", + "desc": "基础练习", + "path": "/pages/age/age" + }, + { + "key": "5-6", + "label": "5-6 岁", + "desc": "能力提升", + "path": "/pages/age/age" + }, + { + "key": "6-7", + "label": "6-7 岁", + "desc": "幼小衔接", + "path": "/pages/age/age" + }, + { + "key": "7-8", + "label": "7-8 岁", + "desc": "知识拓展", + "path": "/pages/age/age" + } + ], + "featured": [ + { + "id": "number-coloring", + "title": "按数字,涂颜色", + "subtitle": "按指定数字涂色", + "category": "math", + "ageBand": "3-5岁", + "difficulty": "入门", + "icon": "", + "previewImg": "cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/math/number-coloring.jpg", + "badge": "", + "path": "/mathPages/mathDraw/mathDraw?id=number-coloring", + "available": true + }, + { + "id": "number-sort", + "title": "数字排序", + "subtitle": "写出正确的数字顺序", + "category": "math", + "ageBand": "4-6岁", + "difficulty": "基础", + "icon": "", + "previewImg": "cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/math/number-sort.jpg", + "badge": "", + "path": "/mathPages/mathDraw/mathDraw?id=number-sort", + "available": true + }, + { + "id": "code-connect", + "title": "译码连线", + "subtitle": "按数字顺序连线", + "category": "puzzle", + "ageBand": "5-7岁", + "difficulty": "进阶", + "icon": "", + "previewImg": "cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/puzzle/code-connect.jpg", + "badge": "", + "path": "/focusPages/focusDraw/focusDraw?id=code-connect", + "available": true + }, + { + "id": "hanzi-sheet", + "title": "自定义练字帖", + "subtitle": "自定义田字格练字帖", + "category": "chinese", + "ageBand": "4-8岁", + "difficulty": "基础", + "icon": "", + "previewImg": "cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/chinese/hanzi-sheet.jpg", + "badge": "", + "path": "/chinesePages/handwritingSheet/handwritingSheet?id=hanzi-sheet", + "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", + "badge": "", + "path": "/englishPages/letterTracing/letterTracing?id=letter-tracing-daily-checkin", + "available": true + }, + { + "id": "dot-connect", + "title": "数字点连线", + "subtitle": "按数字顺序连点成图", + "category": "puzzle", + "ageBand": "4-6岁", + "difficulty": "入门", + "icon": "", + "previewImg": "cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/puzzle/dot-connect.jpg", + "badge": "", + "path": "/focusPages/focusDraw/focusDraw?id=dot-connect", + "available": true + } + ], + "hot": [ + { + "id": "number-sort", + "title": "数字排序", + "subtitle": "写出正确的数字顺序", + "category": "math", + "ageBand": "4-6岁", + "difficulty": "基础", + "icon": "", + "previewImg": "cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/math/number-sort.jpg", + "badge": "", + "path": "/mathPages/mathDraw/mathDraw?id=number-sort", + "available": true + }, + { + "id": "number-coloring", + "title": "按数字,涂颜色", + "subtitle": "按指定数字涂色", + "category": "math", + "ageBand": "3-5岁", + "difficulty": "入门", + "icon": "", + "previewImg": "cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/math/number-coloring.jpg", + "badge": "", + "path": "/mathPages/mathDraw/mathDraw?id=number-coloring", + "available": true + }, + { + "id": "make-ten", + "title": "凑十法练习", + "subtitle": "20以内进位加法", + "category": "math", + "ageBand": "5-7岁", + "difficulty": "进阶", + "icon": "", + "previewImg": "cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/math/make-ten.jpg", + "badge": "", + "path": "/mathPages/mathDraw/mathDraw?id=make-ten", + "available": true + }, + { + "id": "code-connect", + "title": "译码连线", + "subtitle": "按数字顺序连线", + "category": "puzzle", + "ageBand": "5-7岁", + "difficulty": "进阶", + "icon": "", + "previewImg": "cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/puzzle/code-connect.jpg", + "badge": "", + "path": "/focusPages/focusDraw/focusDraw?id=code-connect", + "available": true + }, + { + "id": "counting-matching", + "title": "数一数,连一连", + "subtitle": "连线配对数字和数量", + "category": "math", + "ageBand": "3-5岁", + "difficulty": "入门", + "icon": "", + "previewImg": "cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/math/counting-matching.jpg", + "badge": "", + "path": "/mathPages/mathDraw/mathDraw?id=counting-matching", + "available": true + } + ], + "sections": [ + { + "id": "math", + "title": "数感启蒙", + "subtitle": "", + "morePath": "/pages/category/category?id=math", + "items": [ + { + "id": "number-sort", + "title": "数字排序", + "subtitle": "写出正确的数字顺序", + "category": "math", + "ageBand": "4-6岁", + "difficulty": "基础", + "icon": "", + "previewImg": "cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/math/number-sort.jpg", + "badge": "", + "path": "/mathPages/mathDraw/mathDraw?id=number-sort", + "available": true + }, + { + "id": "number-coloring", + "title": "按数字,涂颜色", + "subtitle": "按指定数字涂色", + "category": "math", + "ageBand": "3-5岁", + "difficulty": "入门", + "icon": "", + "previewImg": "cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/math/number-coloring.jpg", + "badge": "", + "path": "/mathPages/mathDraw/mathDraw?id=number-coloring", + "available": true + }, + { + "id": "make-ten", + "title": "凑十法练习", + "subtitle": "20以内进位加法", + "category": "math", + "ageBand": "5-7岁", + "difficulty": "进阶", + "icon": "", + "previewImg": "cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/math/make-ten.jpg", + "badge": "", + "path": "/mathPages/mathDraw/mathDraw?id=make-ten", + "available": true + }, + { + "id": "number-decompose", + "title": "10以内数的分与合", + "subtitle": "把数字分一分,合一合", + "category": "math", + "ageBand": "5-7岁", + "difficulty": "入门", + "icon": "", + "previewImg": "cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/math/number-decompose.jpg", + "badge": "", + "path": "/mathPages/mathDraw/mathDraw?id=number-decompose", + "available": true + }, + { + "id": "number-find", + "title": "找数字,涂一涂", + "subtitle": "找出目标数字并涂色", + "category": "math", + "ageBand": "3-5岁", + "difficulty": "入门", + "icon": "", + "previewImg": "cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/math/number-find.jpg", + "badge": "", + "path": "/mathPages/mathDraw/mathDraw?id=number-find", + "available": true + } + ] + }, + { + "id": "puzzle", + "title": "益智游戏", + "subtitle": "", + "morePath": "/pages/category/category?id=puzzle", + "items": [ + { + "id": "position-coloring", + "title": "方位涂涂乐", + "subtitle": "观察位置,在方格中涂色", + "category": "puzzle", + "ageBand": "4-6岁", + "difficulty": "基础", + "icon": "", + "previewImg": "cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/puzzle/position-coloring.jpg", + "badge": "", + "path": "/focusPages/focusDraw/focusDraw?id=position-coloring", + "available": true + }, + { + "id": "line-recognition", + "title": "线条识别", + "subtitle": "认识不同线条,画对应线条", + "category": "puzzle", + "ageBand": "3-6岁", + "difficulty": "入门", + "icon": "", + "previewImg": "cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/puzzle/line-recognition.jpg", + "badge": "", + "path": "/focusPages/focusDraw/focusDraw?id=line-recognition", + "available": true + }, + { + "id": "grid-reasoning", + "title": "方格推理", + "subtitle": "推理出合并方格并连线", + "category": "puzzle", + "ageBand": "5-7岁", + "difficulty": "进阶", + "icon": "", + "previewImg": "cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/puzzle/grid-reasoning.jpg", + "badge": "", + "path": "/focusPages/focusDraw/focusDraw?id=grid-reasoning", + "available": true + }, + { + "id": "code-connect", + "title": "译码连线", + "subtitle": "按数字顺序连线", + "category": "puzzle", + "ageBand": "5-7岁", + "difficulty": "进阶", + "icon": "", + "previewImg": "cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/puzzle/code-connect.jpg", + "badge": "", + "path": "/focusPages/focusDraw/focusDraw?id=code-connect", + "available": true + }, + { + "id": "shape-symbol", + "title": "图形符号配对", + "subtitle": "根据图形画对应符号", + "category": "puzzle", + "ageBand": "4-6岁", + "difficulty": "基础", + "icon": "", + "previewImg": "cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/puzzle/shape-symbol.jpg", + "badge": "", + "path": "/focusPages/focusDraw/focusDraw?id=shape-symbol", + "available": true + } + ] + }, + { + "id": "pinyin", + "title": "汉语拼音", + "subtitle": "", + "morePath": "/pages/category/category?id=pinyin", + "items": [ + { + "id": "pinyin-tracing", + "title": "拼音描红练习", + "subtitle": "跟着描红学拼音字母", + "category": "pinyin", + "ageBand": "5-7岁", + "difficulty": "入门", + "icon": "", + "previewImg": "cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/pinyin/pinyin-tracing.jpg", + "badge": "", + "path": "/pinyinPages/pinyinDictation/pinyinDictation?id=pinyin-tracing", + "available": true + }, + { + "id": "pinyin-dictation", + "title": "拼音默写练习", + "subtitle": "空白格子默写拼音字母", + "category": "pinyin", + "ageBand": "6-8岁", + "difficulty": "基础", + "icon": "", + "previewImg": "cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/pinyin/pinyin-dictation.jpg", + "badge": "", + "path": "/pinyinPages/pinyinDictation/pinyinDictation?id=pinyin-dictation", + "available": true + }, + { + "id": "pinyin-tracing-v2", + "title": "拼音描红 8 列", + "subtitle": "跟写描红,声韵分块", + "category": "pinyin", + "ageBand": "5-7岁", + "difficulty": "入门", + "icon": "", + "previewImg": "cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/pinyin/pinyin-tracing-v2.jpg", + "badge": "", + "path": "/pinyinPages/pinyinDictation/pinyinDictation?id=pinyin-tracing-v2", + "available": true + }, + { + "id": "pinyin-dictation-v2", + "title": "拼音默写 8 列", + "subtitle": "空白默写,声韵分块", + "category": "pinyin", + "ageBand": "6-8岁", + "difficulty": "基础", + "icon": "", + "previewImg": "cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/pinyin/pinyin-dictation-v2.jpg", + "badge": "", + "path": "/pinyinPages/pinyinDictation/pinyinDictation?id=pinyin-dictation-v2", + "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", + "badge": "", + "path": "/pinyinPages/pinyinDictation/pinyinDictation?id=pinyin-daily", + "available": true + } + ] + }, + { + "id": "chinese", + "title": "识字练字", + "subtitle": "", + "morePath": "/pages/category/category?id=chinese", + "items": [ + { + "id": "word-coloring-grid", + "title": "网格涂色", + "subtitle": "田字格涂色识字练习", + "category": "chinese", + "ageBand": "3-6岁", + "difficulty": "入门", + "icon": "", + "previewImg": "cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/chinese/word-coloring-grid.jpg", + "badge": "", + "path": "/chinesePages/wordColoring/wordColoring?id=word-coloring-grid", + "available": true + }, + { + "id": "word-coloring-find", + "title": "找字涂色", + "subtitle": "在字海中找到目标字并涂色", + "category": "chinese", + "ageBand": "3-6岁", + "difficulty": "入门", + "icon": "", + "previewImg": "cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/chinese/word-coloring-find.jpg", + "badge": "", + "path": "/chinesePages/wordColoring/wordColoring?id=word-coloring-find", + "available": true + }, + { + "id": "hanzi-sheet", + "title": "自定义练字帖", + "subtitle": "自定义田字格练字帖", + "category": "chinese", + "ageBand": "4-8岁", + "difficulty": "基础", + "icon": "", + "previewImg": "cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/chinese/hanzi-sheet.jpg", + "badge": "", + "path": "/chinesePages/handwritingSheet/handwritingSheet?id=hanzi-sheet", + "available": true + } + ] + }, + { + "id": "english", + "title": "英语启蒙", + "subtitle": "", + "morePath": "/pages/category/category?id=english", + "items": [ + { + "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", + "badge": "", + "path": "/englishPages/letterTracing/letterTracing?id=letter-tracing-daily-checkin", + "available": true + }, + { + "id": "letter-tracing-single", + "title": "默认字帖", + "subtitle": "配图、例句与描红", + "category": "english", + "ageBand": "4-7岁", + "difficulty": "入门", + "icon": "", + "previewImg": "cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/english/letter-tracing-single.jpg", + "badge": "", + "path": "/englishPages/letterTracing/letterTracing?id=letter-tracing-single", + "available": true + }, + { + "id": "letter-tracing-case-pairing", + "title": "大小写对照", + "subtitle": "半组字母左大写右小写", + "category": "english", + "ageBand": "5-7岁", + "difficulty": "入门", + "icon": "", + "previewImg": "cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/english/letter-tracing-case-pairing.jpg", + "badge": "", + "path": "/englishPages/letterTracing/letterTracing?id=letter-tracing-case-pairing", + "available": true + }, + { + "id": "letter-tracing-half", + "title": "13字母半表", + "subtitle": "每行一个字母,13 字母半表", + "category": "english", + "ageBand": "5-8岁", + "difficulty": "基础", + "icon": "", + "previewImg": "cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/english/letter-tracing-half.jpg", + "badge": "", + "path": "/englishPages/letterTracing/letterTracing?id=letter-tracing-half", + "available": true + }, + { + "id": "letter-tracing-two-column", + "title": "两列描红", + "subtitle": "左 A–M、右 N–Z 配对描红", + "category": "english", + "ageBand": "5-7岁", + "difficulty": "入门", + "icon": "", + "previewImg": "cloud://cloud1-9gifs7a2756e2c87.636c-cloud1-9gifs7a2756e2c87-1351593184/assets/previews/english/letter-tracing-two-column.jpg", + "badge": "", + "path": "/englishPages/letterTracing/letterTracing?id=letter-tracing-two-column", + "available": true + } + ] + } + ] + }, + "category": null, + "age": null, + "version": 20, + "updatedAt": "2026-05-20T07:32:13.444Z" +} diff --git a/miniprogram/chinesePages/handwritingSheet/handwritingSheet.config.ts b/miniprogram/chinesePages/handwritingSheet/handwritingSheet.config.ts index 1da2ecf..b2d8b7f 100644 --- a/miniprogram/chinesePages/handwritingSheet/handwritingSheet.config.ts +++ b/miniprogram/chinesePages/handwritingSheet/handwritingSheet.config.ts @@ -1,9 +1,7 @@ import type { DebugPublishMeta } from '../../utils/debugPublish'; import { inferGradeFromAge } from '../../utils/debugPublish'; -export type HandwritingSheetMode = - | 'handwriting-sheet' - | 'handwriting-daily-checkin'; +export type HandwritingSheetMode = 'hanzi-sheet' | 'hanzi-daily-checkin'; interface HandwritingSheetWorksheetDefinition { id: HandwritingSheetMode; @@ -20,7 +18,7 @@ interface HandwritingSheetWorksheetDefinition { export const HANDWRITING_SHEET_WORKSHEET_DEFINITIONS: HandwritingSheetWorksheetDefinition[] = [ { - id: 'handwriting-sheet', + id: 'hanzi-sheet', icon: 'draw-o', title: '自定义练字帖', subtitle: '自定义田字格练字帖', @@ -31,7 +29,7 @@ export const HANDWRITING_SHEET_WORKSHEET_DEFINITIONS: HandwritingSheetWorksheetD sortOrder: 35, }, { - id: 'handwriting-daily-checkin', + id: 'hanzi-daily-checkin', icon: 'task-o', title: '汉字每日打卡', subtitle: '每日 8 字带拼音笔顺打卡', @@ -74,7 +72,7 @@ export function getPublishMetaByMode(id: string): DebugPublishMeta | null { title: item.title, subtitle: item.subtitle, category: 'chinese', - subcategory: 'handwriting-sheet', + subcategory: 'hanzi-sheet', path: `/chinesePages/handwritingSheet/handwritingSheet?id=${item.id}`, ageMin: item.ageMin, ageMax: item.ageMax, diff --git a/miniprogram/chinesePages/handwritingSheet/handwritingSheet.ts b/miniprogram/chinesePages/handwritingSheet/handwritingSheet.ts index d31ce39..6d8ca8d 100644 --- a/miniprogram/chinesePages/handwritingSheet/handwritingSheet.ts +++ b/miniprogram/chinesePages/handwritingSheet/handwritingSheet.ts @@ -33,6 +33,8 @@ const CUSTOM_MAX_WORDS = 11; const CHECKIN_MAX_WORDS = 8; const RANDOM_WORD_COUNT = 8; const CUSTOM_DEFAULT_WORDS = '东西南北日月山河风雨'; +/** 汉字每日打卡默认文案(8 字,与 CHECKIN_MAX_WORDS 一致) */ +const CHECKIN_DEFAULT_WORDS = '日拱一卒不期而至'; const CUSTOM_CATEGORY_TAGS = WORDS.slice(0, 3).map((cat) => ({ categoryId: cat.categoryId, icon: cat.icon, @@ -65,8 +67,7 @@ createPage( data: { pageTitle: HANDWRITING_SHEET_WORKSHEET_DEFINITIONS[0].title, functionId: HANDWRITING_SHEET_WORKSHEET_ID, - currentMode: - HANDWRITING_SHEET_WORKSHEET_ID as HandwritingSheetMode, + currentMode: HANDWRITING_SHEET_WORKSHEET_ID as HandwritingSheetMode, modeOptions: HANDWRITING_SHEET_MODE_OPTIONS, hasContent: false, words: [] as string[], @@ -155,7 +156,7 @@ createPage( async prepareCanvasForCurrentMode() { if (!this.canvas) return; - if (this.data.currentMode === 'handwriting-sheet') { + if (this.data.currentMode === 'hanzi-sheet') { if (!this.wordDrawService) return; await this.wordDrawService.drawLayout(); const { maxRow, maxCol } = @@ -167,11 +168,8 @@ createPage( } }, - applyMode( - mode: HandwritingSheetMode, - options?: { redraw?: boolean }, - ) { - const isCheckin = mode === 'handwriting-daily-checkin'; + applyMode(mode: HandwritingSheetMode, options?: { redraw?: boolean }) { + const isCheckin = mode === 'hanzi-daily-checkin'; const max = isCheckin ? CHECKIN_MAX_WORDS : CUSTOM_MAX_WORDS; this.setData( @@ -253,7 +251,7 @@ createPage( }, getMaxWordsForMode(): number { - return this.data.currentMode === 'handwriting-daily-checkin' + return this.data.currentMode === 'hanzi-daily-checkin' ? CHECKIN_MAX_WORDS : CUSTOM_MAX_WORDS; }, @@ -375,8 +373,25 @@ createPage( }, initDefaultWords() { - if (this.data.currentMode === 'handwriting-daily-checkin') { - this.refreshWords(); + if (this.data.currentMode === 'hanzi-daily-checkin') { + const defaults = this.getSupportedWords( + this.splitToSingleChars(CHECKIN_DEFAULT_WORDS), + ).slice(0, CHECKIN_MAX_WORDS); + + if (defaults.length === 0) { + this.refreshWords(); + return; + } + + this.setData( + { + words: defaults, + inputWords: defaults, + selectedWords: [], + inputValue: defaults.join(''), + }, + () => this.renderPracticeContent().catch(console.error), + ); return; } @@ -401,8 +416,7 @@ createPage( }, refreshWords() { - const isCheckin = - this.data.currentMode === 'handwriting-daily-checkin'; + const isCheckin = this.data.currentMode === 'hanzi-daily-checkin'; const candidates = isCheckin ? collectFirstGradeWords() : WORDS.slice(0, 3).reduce( @@ -446,7 +460,7 @@ createPage( const words = this.data.words as string[]; - if (this.data.currentMode === 'handwriting-daily-checkin') { + if (this.data.currentMode === 'hanzi-daily-checkin') { await this.renderCheckinContent(words); return; } diff --git a/miniprogram/core/data/categories.ts b/miniprogram/core/data/categories.ts index 7a010b8..efaec3a 100644 --- a/miniprogram/core/data/categories.ts +++ b/miniprogram/core/data/categories.ts @@ -38,12 +38,12 @@ export const CATEGORY_LIST: CategoryType[] = [ icon: '🔤', path: '/pages/category/category?id=english', }, - { - id: 'craft', - name: '创意手工', - icon: '🌈', - path: '/pages/category/category?id=craft', - }, + // { + // id: 'craft', + // name: '创意手工', + // icon: '🌈', + // path: '/pages/category/category?id=craft', + // }, ]; export const CATEGORY_LIST_WITH_ALL: CategoryType[] = [ diff --git a/miniprogram/englishPages/letterTracing/letterTracing.config.ts b/miniprogram/englishPages/letterTracing/letterTracing.config.ts index 864604b..3c0b022 100644 --- a/miniprogram/englishPages/letterTracing/letterTracing.config.ts +++ b/miniprogram/englishPages/letterTracing/letterTracing.config.ts @@ -87,8 +87,8 @@ export const LETTER_TRACING_WORKSHEET_DEFINITIONS = [ icon: 'task-o', title: '字母每日打卡', subtitle: '四宫格每日字母打卡练习', - ageMin: 6, - ageMax: 8, + ageMin: 5, + ageMax: 7, difficulty: 2, tags: ['字母', '描红', '每日打卡'], sortOrder: 48, diff --git a/miniprogram/pages/age/age.config.ts b/miniprogram/pages/age/age.config.ts index 0067c9e..2671793 100644 --- a/miniprogram/pages/age/age.config.ts +++ b/miniprogram/pages/age/age.config.ts @@ -148,10 +148,10 @@ export const AGE_WEEK_PLANS: Record = { path: '/mathPages/mathDraw/mathDraw?id=number-sort', }, { - _id: 'handwriting-sheet', + _id: 'hanzi-sheet', title: '自定义练字帖', subtitle: '自定义田字格练字帖', - path: '/chinesePages/handwritingSheet/handwritingSheet?id=handwriting-sheet', + path: '/chinesePages/handwritingSheet/handwritingSheet?id=hanzi-sheet', }, { _id: 'letter-tracing-single', @@ -252,10 +252,10 @@ export const AGE_WEEK_PLANS: Record = { path: '/englishPages/letterTracing/letterTracing?id=letter-tracing-single', }, { - _id: 'handwriting-sheet', + _id: 'hanzi-sheet', title: '自定义练字帖', subtitle: '自定义田字格练字帖', - path: '/chinesePages/handwritingSheet/handwritingSheet?id=handwriting-sheet', + path: '/chinesePages/handwritingSheet/handwritingSheet?id=hanzi-sheet', }, ], }, @@ -400,10 +400,10 @@ export const AGE_WEEK_PLANS: Record = { path: '/pinyinPages/pinyinDictation/pinyinDictation?id=pinyin-dictation', }, { - _id: 'handwriting-sheet', + _id: 'hanzi-sheet', title: '自定义练字帖', subtitle: '自定义田字格练字帖', - path: '/chinesePages/handwritingSheet/handwritingSheet?id=handwriting-sheet', + path: '/chinesePages/handwritingSheet/handwritingSheet?id=hanzi-sheet', }, ], }, @@ -546,10 +546,10 @@ export const AGE_WEEK_PLANS: Record = { path: '/englishPages/letterTracing/letterTracing?id=letter-tracing-daily-checkin', }, { - _id: 'handwriting-sheet', + _id: 'hanzi-sheet', title: '自定义练字帖', subtitle: '自定义田字格练字帖', - path: '/chinesePages/handwritingSheet/handwritingSheet?id=handwriting-sheet', + path: '/chinesePages/handwritingSheet/handwritingSheet?id=hanzi-sheet', }, ], }, diff --git a/miniprogram/pages/home/home.data.ts b/miniprogram/pages/home/home.data.ts index 924299a..883a52f 100644 --- a/miniprogram/pages/home/home.data.ts +++ b/miniprogram/pages/home/home.data.ts @@ -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: [], + }; +} diff --git a/miniprogram/pages/home/home.ts b/miniprogram/pages/home/home.ts index 20fa496..d87675e 100644 --- a/miniprogram/pages/home/home.ts +++ b/miniprogram/pages/home/home.ts @@ -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); diff --git a/miniprogram/pages/home/home.wxml b/miniprogram/pages/home/home.wxml index 1fb7424..fc2389c 100644 --- a/miniprogram/pages/home/home.wxml +++ b/miniprogram/pages/home/home.wxml @@ -164,6 +164,54 @@ + + + 每日练习 + + + + + + {{item.icon}} + + + {{item.title}} + {{item.subtitle}} + + {{item.ageBand}} + {{item.difficulty}} + + + + + + + + +