|
@@ -45,28 +45,33 @@ const JpcFigureOutput = {
|
|
|
for (let ctIdx = 0; ctIdx < figure.contents.length; ctIdx++) {
|
|
|
const content = figure.contents[ctIdx];
|
|
|
ctx.beginPath();
|
|
|
+ let firstDraw = true;
|
|
|
for (let idx = 0; idx < content.values.length; idx++) {
|
|
|
- let xPos = figure.area.Left + xStepW * idx + xStepW / 2 + this.offsetX;
|
|
|
- let yPos = figure.area.Bottom - (content.values[idx] / content.maxValue) * height + this.offsetY;
|
|
|
- ctx.lineWidth = 1;
|
|
|
- ctx.strokeStyle = content.color;
|
|
|
- if (content.style === 'dash') ctx.setLineDash([10, 5]);
|
|
|
- switch (figure.config.dispType) {
|
|
|
- case 'line':
|
|
|
- //折线图
|
|
|
- if (idx === 0) {
|
|
|
- ctx.moveTo(xPos, yPos);
|
|
|
- } else {
|
|
|
- ctx.lineTo(xPos, yPos);
|
|
|
- }
|
|
|
- break;
|
|
|
- case 'pole':
|
|
|
- //柱图
|
|
|
- break;
|
|
|
- default:
|
|
|
- //....
|
|
|
- break;
|
|
|
- }
|
|
|
+ if (content.values[idx] !== null && content.values[idx] !== undefined) {
|
|
|
+ let xPos = figure.area.Left + xStepW * idx + xStepW / 2 + this.offsetX;
|
|
|
+ let yPos = figure.area.Bottom - (content.values[idx] / content.maxValue) * height + this.offsetY;
|
|
|
+ ctx.lineWidth = 1;
|
|
|
+ ctx.strokeStyle = content.color;
|
|
|
+ if (content.style === 'dash') ctx.setLineDash([10, 5]);
|
|
|
+ switch (figure.config.dispType) {
|
|
|
+ case 'line':
|
|
|
+ //折线图
|
|
|
+ if (firstDraw) {
|
|
|
+ ctx.moveTo(xPos, yPos);
|
|
|
+ firstDraw = false;
|
|
|
+ } else {
|
|
|
+ ctx.lineTo(xPos, yPos);
|
|
|
+ firstDraw = false;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 'pole':
|
|
|
+ //柱图
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ //....
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
ctx.stroke();
|
|
|
}
|