From cab4e9c33f11f1a8be7cc7841500926faa12fb5d Mon Sep 17 00:00:00 2001 From: R524809 Date: Wed, 20 May 2026 10:18:25 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=8B=BC=E9=9F=B3=E6=8F=8F=E7=BA=A2?= =?UTF-8?q?=E5=92=8C=E9=BB=98=E5=86=99=E4=B8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../debug-publish-tools.ts | 4 ++-- .../pinyinDictation/pinyinDictation.config.ts | 4 ++-- .../pinyinDictation/pinyinDictation.ts | 6 ++--- .../worksheetSync/worksheetSync.ts | 24 ++++++++++--------- miniprogram/utils/favorites.ts | 5 ++-- 5 files changed, 23 insertions(+), 20 deletions(-) diff --git a/miniprogram/components3.0/debug-publish-tools/debug-publish-tools.ts b/miniprogram/components3.0/debug-publish-tools/debug-publish-tools.ts index 874eb33..d5cf766 100644 --- a/miniprogram/components3.0/debug-publish-tools/debug-publish-tools.ts +++ b/miniprogram/components3.0/debug-publish-tools/debug-publish-tools.ts @@ -48,7 +48,7 @@ Component({ formSubtitle: '', formTags: '', formStatus: 'draft', - formCropMode: 'header-footer', + formCropMode: 'header-only', // header-only | header-footer | none formQuality: DEBUG_PUBLISH_DEFAULT_QUALITY, formWidth: DEBUG_PUBLISH_DEFAULT_WIDTH, maxSizeKB: DEBUG_PUBLISH_MAX_SIZE_KB, @@ -83,7 +83,7 @@ Component({ formSubtitle: meta?.subtitle ?? '', formTags: meta?.tags?.join(', ') ?? '', formStatus: meta?.status ?? 'draft', - formCropMode: 'header-footer', + formCropMode: 'header-only', // 默认裁剪头部 formQuality: DEBUG_PUBLISH_DEFAULT_QUALITY, formWidth: DEBUG_PUBLISH_DEFAULT_WIDTH, }); diff --git a/miniprogram/pinyinPages/pinyinDictation/pinyinDictation.config.ts b/miniprogram/pinyinPages/pinyinDictation/pinyinDictation.config.ts index ac2714f..7a800f3 100644 --- a/miniprogram/pinyinPages/pinyinDictation/pinyinDictation.config.ts +++ b/miniprogram/pinyinPages/pinyinDictation/pinyinDictation.config.ts @@ -19,7 +19,7 @@ export const PINYIN_DICTATION_WORKSHEET_DEFINITIONS = [ { id: 'pinyin-tracing', icon: 'draw-o', - title: '描红练习', + title: '拼音描红练习', subtitle: '跟着描红学拼音字母', ageMin: 5, ageMax: 7, @@ -30,7 +30,7 @@ export const PINYIN_DICTATION_WORKSHEET_DEFINITIONS = [ { id: 'pinyin-dictation', icon: 'start-a', - title: '默写练习', + title: '拼音默写练习', subtitle: '空白格子默写拼音字母', ageMin: 6, ageMax: 8, diff --git a/miniprogram/pinyinPages/pinyinDictation/pinyinDictation.ts b/miniprogram/pinyinPages/pinyinDictation/pinyinDictation.ts index 0e0accd..3d38b39 100644 --- a/miniprogram/pinyinPages/pinyinDictation/pinyinDictation.ts +++ b/miniprogram/pinyinPages/pinyinDictation/pinyinDictation.ts @@ -106,7 +106,7 @@ createPage( const next = !this.data.isPreviewFavorite; this.setData({ isPreviewFavorite: next }); const id = this.data.worksheetId; - if (id) { + if (id && this._favoritedMap) { this._favoritedMap[id] = next; if (next) { addFavorite(id); @@ -124,7 +124,7 @@ createPage( const ids = PINYIN_DICTATION_MODE_OPTIONS.map((d) => d.id); this._favoritedMap = await batchCheckFavorited(ids); const currentId = this.data.worksheetId; - if (this._favoritedMap[currentId]) { + if (this._favoritedMap?.[currentId]) { this.setData({ isPreviewFavorite: true }); } }, @@ -145,7 +145,7 @@ createPage( worksheetId, functionId: worksheetId, currentMode: worksheetId as PinyinDictationMode, - isPreviewFavorite: !!this._favoritedMap[worksheetId], + isPreviewFavorite: !!this._favoritedMap?.[worksheetId], }, () => { this.initPageInfo(worksheetId, '拼音字母默写'); diff --git a/miniprogram/supportPages/worksheetSync/worksheetSync.ts b/miniprogram/supportPages/worksheetSync/worksheetSync.ts index aa899f2..163d261 100644 --- a/miniprogram/supportPages/worksheetSync/worksheetSync.ts +++ b/miniprogram/supportPages/worksheetSync/worksheetSync.ts @@ -1,4 +1,8 @@ import { MOCK_SEED_COUNTS } from './mockLikes'; +import { MATH_WORKSHEET_DEFINITIONS } from '../../mathPages/mathDraw/mathDraw.config'; +import { FOCUS_WORKSHEET_DEFINITIONS } from '../../focusPages/focusDraw/focusDraw.config'; +import { LETTER_TRACING_WORKSHEET_DEFINITIONS } from '../../englishPages/letterTracing/letterTracing.config'; +import { PINYIN_DICTATION_MODE_OPTIONS } from '../../pinyinPages/pinyinDictation/pinyinDictation.config'; type CloudFunctionResult = { success?: boolean; @@ -47,29 +51,28 @@ function inferGradeFromAge(ageMin: number, ageMax: number): number { return ageGradeMap[centerAge] ?? 0; } -type ConfigModule = Record; type ConfigSource = { label: string; - modulePath: string; - exportName: string; + data: readonly LocalDef[]; }; const CONFIG_SOURCES: ConfigSource[] = [ { label: 'math', - modulePath: '../../mathPages/mathDraw/mathDraw.config', - exportName: 'MATH_WORKSHEET_DEFINITIONS', + data: MATH_WORKSHEET_DEFINITIONS as unknown as LocalDef[], }, { label: 'focus', - modulePath: '../../focusPages/focusDraw/focusDraw.config', - exportName: 'FOCUS_WORKSHEET_DEFINITIONS', + data: FOCUS_WORKSHEET_DEFINITIONS as unknown as LocalDef[], }, { label: 'letterTracing', - modulePath: '../../englishPages/letterTracing/letterTracing.config', - exportName: 'LETTER_TRACING_WORKSHEET_DEFINITIONS', + data: LETTER_TRACING_WORKSHEET_DEFINITIONS as unknown as LocalDef[], + }, + { + label: 'pinyin', + data: PINYIN_DICTATION_MODE_OPTIONS as unknown as LocalDef[], }, ]; @@ -85,8 +88,7 @@ function isLocalDef(value: unknown): value is LocalDef { } async function loadConfigSource(source: ConfigSource): Promise { - const mod = (await require.async(source.modulePath)) as ConfigModule; - const rows = mod[source.exportName]; + const rows = source.data; if (!Array.isArray(rows) || !rows.every(isLocalDef)) { throw new Error(`${source.label} 配置格式不正确`); diff --git a/miniprogram/utils/favorites.ts b/miniprogram/utils/favorites.ts index 67ef595..83f17b6 100644 --- a/miniprogram/utils/favorites.ts +++ b/miniprogram/utils/favorites.ts @@ -69,7 +69,7 @@ export async function getFavoriteList( data: { action: 'list', page, pageSize }, }); const result = (res?.result as any) || {}; - return result.code === 0 ? result.data : []; + return result.code === 0 ? result.data || [] : []; } catch (e) { console.error('getFavoriteList failed', e); return []; @@ -126,9 +126,10 @@ export async function batchCheckFavorited( data: { action: 'batchCheck', worksheetIds }, }); const result = (res?.result as any) || {}; - return result.code === 0 ? result.data : {}; + return result.code === 0 ? result.data || {} : {}; } catch (e) { console.error('batchCheckFavorited failed', e); return {}; } } +