73 lines
2.5 KiB
TypeScript
73 lines
2.5 KiB
TypeScript
import type { WorksheetDefinition } from './types';
|
|
|
|
/** 业务条目与绘制方式分离;颜色等用户参数不另建 worksheet。 */
|
|
export const PAPER_TYPES = [
|
|
{ id: 'tian', name: '田字格', desc: '汉字练习' },
|
|
{ id: 'mi', name: '米字格', desc: '书法练习' },
|
|
{ id: 'square', name: '方格', desc: '书法练字纸' },
|
|
{ id: 'four-line', name: '四线三格', desc: '拼音 / 字母' },
|
|
{ id: 'letter', name: '信纸', desc: '横线信笺' },
|
|
{ id: 'horizontal', name: '横线', desc: '横线本' },
|
|
{ id: 'vertical', name: '竖线', desc: '竖排书写' },
|
|
{ id: 'dictation-hanzi', name: '汉字听写', desc: '田字格 + 订正栏' },
|
|
{
|
|
id: 'dictation-pinyin',
|
|
name: '拼音/英语听写',
|
|
desc: '四线三格 + 订正栏',
|
|
},
|
|
{ id: 'homework-log', name: '作业登记表', desc: '分科登记' },
|
|
] as const;
|
|
|
|
export type PaperType = (typeof PAPER_TYPES)[number]['id'];
|
|
|
|
/** 原综合入口始终保留,不重分配历史收藏和统计。 */
|
|
export const PAPER_SHEET_WORKSHEET_ID = 'paper-sheet';
|
|
|
|
export interface PaperSheetDefinition extends WorksheetDefinition {
|
|
rendererKey: 'paper-sheet';
|
|
renderConfig: { paperType?: PaperType };
|
|
}
|
|
|
|
export const PAPER_SHEET_WORKSHEET_DEFINITIONS: ReadonlyArray<PaperSheetDefinition> =
|
|
[
|
|
{
|
|
id: PAPER_SHEET_WORKSHEET_ID,
|
|
rendererKey: 'paper-sheet',
|
|
renderConfig: {},
|
|
icon: 'draw-o',
|
|
title: '作业纸',
|
|
subtitle: '田字格 / 方格 / 信纸等多种作业纸一键打印',
|
|
ageMin: 3,
|
|
ageMax: 12,
|
|
difficulty: 1,
|
|
tags: [
|
|
'作业纸',
|
|
'田字格',
|
|
'米字格',
|
|
'方格',
|
|
'四线三格',
|
|
'信纸',
|
|
'横线',
|
|
'竖线',
|
|
'听写',
|
|
'作业登记表',
|
|
],
|
|
sortOrder: 50,
|
|
},
|
|
...PAPER_TYPES.map(
|
|
(paper, index): PaperSheetDefinition => ({
|
|
id: `paper-${paper.id}`,
|
|
rendererKey: 'paper-sheet',
|
|
renderConfig: { paperType: paper.id },
|
|
icon: 'draw-o',
|
|
title: paper.name,
|
|
subtitle: `${paper.desc},一键生成打印`,
|
|
ageMin: 3,
|
|
ageMax: 12,
|
|
difficulty: 1,
|
|
tags: ['作业纸', paper.name, paper.desc],
|
|
sortOrder: 51 + index,
|
|
}),
|
|
),
|
|
];
|