feat:架构代码优化

This commit is contained in:
R524809
2025-12-11 13:02:44 +08:00
parent 2c32235568
commit 3c0e2af10d
89 changed files with 2774 additions and 2816 deletions
@@ -0,0 +1,67 @@
import { BaseDrawService } from '../../../service/baseDraw';
import { drawNumberDecomposeContent } from './numberDecomposeContentDraw';
/**
* 10以内数的分与合绘制服务
* 组合使用基础绘制服务和内容区域绘制服务
*/
class NumberDecomposeDraw extends BaseDrawService {
decomposeData: {
problems: Array<{
whole: number | null;
part1: number | null;
part2: number | null;
imageIndex?: number;
imageType?: 'fruits' | 'twelve-animals';
}>;
mode: 'with-image' | 'decompose' | 'compose';
} | null;
constructor(
canvas: Canvas,
ctx: RenderingContext,
options?: Record<string, any>,
) {
super(canvas, ctx, options);
this.decomposeData = null;
}
async draw(decomposeData: {
problems: Array<{
whole: number | null;
part1: number | null;
part2: number | null;
imageIndex?: number;
imageType?: 'fruits' | 'twelve-animals';
}>;
mode: 'with-image' | 'decompose' | 'compose';
}) {
if (!decomposeData || !decomposeData.problems) {
return;
}
this.setPrintConfig();
this.decomposeData = decomposeData;
this.clear();
this.setPaper();
// 绘制Header
if (this.headerType !== 'minimal') {
await this.drawHeader();
} else {
this.drawMiniHeader();
}
// 绘制内容区域
this.drawDivider();
await drawNumberDecomposeContent({
canvas: this.canvas,
ctx: this.ctx,
decomposeData: this.decomposeData,
canvasWidth: this.canvasWidth,
startY: this.currentY,
});
}
}
export default NumberDecomposeDraw;