Files
doodle-mini/miniprogram/core/data/pinyin.ts
T
2026-05-19 18:24:43 +08:00

101 lines
2.6 KiB
TypeScript

/**
* 汉语拼音分类数据
* 23 个声母 + 24 个韵母 + 16 个整体认读音节
*/
export interface PinyinCategory {
key: string;
label: string;
count: number;
items: string[];
}
export interface PinyinSubCategory {
key: string;
label: string;
count: number;
items: string[];
}
export interface PinyinSection {
key: string;
title: string;
count: number;
items: string[];
subCategories?: PinyinSubCategory[];
}
// ─── 声母 (23个) ───
export const SHENGMU: string[] = [
'b', 'p', 'm', 'f',
'd', 't', 'n', 'l',
'g', 'k', 'h',
'j', 'q', 'x',
'zh', 'ch', 'sh', 'r',
'z', 'c', 's',
'y', 'w',
];
export const QIAOSHEYIN: string[] = ['zh', 'ch', 'sh', 'r'];
export const PINGSHEYIN: string[] = ['z', 'c', 's'];
// ─── 韵母 (24个) ───
export const DAN_YUNMU: string[] = ['a', 'o', 'e', 'i', 'u', 'ü'];
export const FU_YUNMU: string[] = ['ai', 'ei', 'ui', 'ao', 'ou', 'iu', 'ie', 'üe'];
export const TESHU_YUNMU: string[] = ['er'];
export const QIANBI_YUNMU: string[] = ['an', 'en', 'in', 'un', 'ün'];
export const HOUBI_YUNMU: string[] = ['ang', 'eng', 'ing', 'ong'];
export const YUNMU: string[] = [
...DAN_YUNMU,
...FU_YUNMU,
...TESHU_YUNMU,
...QIANBI_YUNMU,
...HOUBI_YUNMU,
];
// ─── 整体认读音节 (16个) ───
export const ZHENGTI_RENDU: string[] = [
'zhi', 'chi', 'shi', 'ri',
'zi', 'ci', 'si', 'yi',
'wu', 'yu', 'ye', 'yue',
'yuan', 'yin', 'yun', 'ying',
];
// ─── 结构化分类数据(用于绘制) ───
export const PINYIN_SECTIONS: PinyinSection[] = [
{
key: 'shengmu',
title: '一、声母',
count: 23,
items: SHENGMU,
subCategories: [
{ key: 'qiaoshe', label: '翘舌音', count: 4, items: QIAOSHEYIN },
{ key: 'pingshe', label: '平舌音', count: 3, items: PINGSHEYIN },
],
},
{
key: 'yunmu',
title: '二、韵母',
count: 24,
items: YUNMU,
subCategories: [
{ key: 'dan', label: '单韵母', count: 6, items: DAN_YUNMU },
{ key: 'fu', label: '复韵母', count: 8, items: FU_YUNMU },
{ key: 'teshu', label: '特殊韵母', count: 1, items: TESHU_YUNMU },
{ key: 'qianbi', label: '前鼻韵母', count: 5, items: QIANBI_YUNMU },
{ key: 'houbi', label: '后鼻韵母', count: 4, items: HOUBI_YUNMU },
],
},
{
key: 'zhengti',
title: '三、整体认读音节',
count: 16,
items: ZHENGTI_RENDU,
},
];