feat: 完成四种字母描红开发

This commit is contained in:
R524809
2026-04-17 17:03:36 +08:00
parent 15ad5cce75
commit 9febf7da4f
16 changed files with 479 additions and 480 deletions
@@ -30,14 +30,14 @@ const MODES = [
desc: 'Uppercase / Lowercase 总览',
},
{
id: 'letter-tracing-two-column',
label: '大小写配对',
desc: '左 AM、右 NZ 配对描红',
id: 'letter-tracing-case-pairing',
label: '大小写练习',
desc: '半组字母左大写右小写',
},
{
id: 'letter-tracing-full',
label: '分栏对照',
desc: '半组字母左大写右小写',
id: 'letter-tracing-two-column',
label: '两列练习',
desc: '左 AM、右 NZ 配对描红',
},
{
id: 'letter-tracing-triple',
@@ -89,7 +89,7 @@ createPage(
hasContent: false,
showShareDialog: false,
worksheetId: 'letter-tracing-single',
traceMode: 'picture-tracing',
traceMode: 'letter-tracing-single',
selectedLetter: 'A',
letterCaseLower: false,
showLetterPicker: true,
@@ -166,14 +166,14 @@ createPage(
const base = (def?.generatorConfig ??
{}) as Partial<LetterTracingGeneratorConfig>;
const letterCase =
this.data.traceMode === 'picture-tracing'
this.data.traceMode === 'letter-tracing-single'
? (base.letterCase ?? 'upper')
: this.data.letterCaseLower
? 'lower'
: 'upper';
const needsHalf =
this.data.traceMode === 'column-compare' ||
this.data.traceMode === 'single-line';
this.data.traceMode === 'letter-tracing-case-pairing' ||
this.data.traceMode === 'letter-tracing-single-line';
return mergeLetterTracingConfig(base, {
selectedLetter: this.data.selectedLetter,
letterCase,
@@ -254,17 +254,20 @@ createPage(
const traceMode = merged.mode;
const showLetterPicker =
traceMode === 'picture-tracing' || traceMode === 'triple-focus';
traceMode === 'letter-tracing-single' ||
traceMode === 'letter-tracing-triple';
const showCaseToggle =
traceMode === 'column-compare' || traceMode === 'single-line';
const showNextLetter = traceMode === 'picture-tracing';
traceMode === 'letter-tracing-case-pairing' ||
traceMode === 'letter-tracing-single-line';
const showNextLetter = traceMode === 'letter-tracing-single';
const selectedLetter = options?.preserveLetter
? (this.data.selectedLetter ?? 'A')
: normalizeLetter(merged.selectedLetter ?? '');
const letterCaseLower =
traceMode === 'column-compare' || traceMode === 'single-line'
traceMode === 'letter-tracing-case-pairing' ||
traceMode === 'letter-tracing-single-line'
? merged.alphabetHalf === 'N-Z'
: traceMode === 'picture-tracing'
: traceMode === 'letter-tracing-single'
? merged.letterCase === 'lower'
: false;