import { BaseDrawService } from '../../../service/baseDraw'; import { drawMissingNumberContent } from './missingNumberContentDraw'; /** * 填上缺少的数字绘制服务 * 组合使用基础绘制服务和内容区域绘制服务 */ class MissingNumberDraw extends BaseDrawService { missingNumberData: { grids: Array<{ numbers: (number | null)[]; colors: (string | null)[]; }>; maxNumber: number; } | null; constructor( canvas: Canvas, ctx: RenderingContext, options?: Record, ) { super(canvas, ctx, options); this.missingNumberData = null; } async draw( missingNumberData: { grids: Array<{ numbers: (number | null)[]; colors: (string | null)[]; }>; maxNumber: number; }, rangeType: string = 'within-10', ) { if (!missingNumberData || !missingNumberData.grids) { return; } this.setPrintConfig(); this.missingNumberData = missingNumberData; this.clear(); this.setPaper(); // 绘制Header if (this.headerType !== 'minimal') { await this.drawHeader(); } else { this.drawMiniHeader(); } // 绘制内容区域(填上缺少的数字) this.drawDivider(); await drawMissingNumberContent({ canvas: this.canvas, ctx: this.ctx, missingNumberData: this.missingNumberData, canvasWidth: this.canvasWidth, startY: this.currentY, }); } } export default MissingNumberDraw;