调整下逻辑
先绘制以前的内容,再根据条件绘制三角
后调用oldPaint会覆盖画好的内容。
-
- /*将图案应用至设置好的画布*/
- oldPaint.apply(this, [ctx, value, x, y, w, h, style, context]);
-
- var sheet = context.sheet,
- row = context.row,
- col = context.col;
- /*根据单元格的tag值来判断绘制什么颜色*/
- if (sheet.getTag(row, col) == 'true') {
-
- /*绘制图案*/
- ctx.save();
- ctx.rect(x, y, w, h);
- ctx.clip();
- ctx.beginPath();
- ctx.fillStyle = 'red';
-
- var r = 10;
- var startX = x + w - 10;
- var startY = y + h / 2 - 3;
- ctx.beginPath();
- ctx.moveTo(startX, startY + r * Math.cos(Math.PI / 6));
- ctx.lineTo(startX + r * Math.sin(Math.PI / 6), startY);
- ctx.lineTo(startX - r * Math.sin(Math.PI / 6), startY);
- ctx.lineTo(startX, startY + r * Math.cos(Math.PI / 6));
- ctx.closePath();
- ctx.fill();
- ctx.restore();
- }
复制代码 |