hqchart 1.1.12387 → 1.1.12389
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/umychart.vue.js
CHANGED
|
@@ -1314,7 +1314,7 @@ this.OffscreenCanvasElement;if(bOffscreen==true)this.OffscreenCanvasElement=docu
|
|
|
1314
1314
|
this.CacheCanvasElement=null;if(bCacheCanvas)this.CacheCanvasElement=document.createElement("canvas");//改参数div
|
|
1315
1315
|
this.ModifyIndexDialog=new ModifyIndexDialog(divElement);this.ChangeIndexDialog=new ChangeIndexDialog(divElement);this.MinuteDialog=new MinuteDialog(divElement);//额外的画布
|
|
1316
1316
|
this.MapExtraCanvasElement=new _map2.default();//key=画布名字, value={ Element:, Canvas:}
|
|
1317
|
-
this.CreateExtraCanvasElement=function(name){if(this.MapExtraCanvasElement.has(name))return this.MapExtraCanvasElement.get(name);var element=document.createElement("canvas");element.className='jschart-drawing-extra';element.id=Guid();if(name==JSChart.CorssCursorCanvasKey)element.setAttribute("tabindex",5);else element.setAttribute("tabindex",1);if(element.style){element.style.outline='none';element.style.position="absolute";element.style.left='0px';element.style.top='0px';element.style["pointer-events"]="none";}divElement.appendChild(element);var item={Element:element,Canvas:null};this.MapExtraCanvasElement.set(name,item);};this.GetExtraCanvas=function(name){if(!this.MapExtraCanvasElement.has(name))return null;var item=this.MapExtraCanvasElement.get(name);if(!item.Element)return null;if(!item.Canvas)item.Canvas=item.Element.getContext("2d");return item;};this.OnSize=function(option)//{ Type:1 新版本OnSize Redraw:是否重绘, XYSplit:是否重新计算分割线 }
|
|
1317
|
+
this.CreateExtraCanvasElement=function(name,option){if(this.MapExtraCanvasElement.has(name))return this.MapExtraCanvasElement.get(name);var element=document.createElement("canvas");element.className='jschart-drawing-extra';element.id=Guid();if(name==JSChart.CorssCursorCanvasKey)element.setAttribute("tabindex",5);else element.setAttribute("tabindex",1);if(element.style){element.style.outline='none';element.style.position="absolute";element.style.left='0px';element.style.top='0px';element.style["pointer-events"]="none";}if(option){if(IFrameSplitOperator.IsNumber(option.TabIndex))element.setAttribute("tabindex",option.TabIndex);}divElement.appendChild(element);var item={Element:element,Canvas:null};this.MapExtraCanvasElement.set(name,item);};this.GetExtraCanvas=function(name){if(!this.MapExtraCanvasElement.has(name))return null;var item=this.MapExtraCanvasElement.get(name);if(!item.Element)return null;if(!item.Canvas)item.Canvas=item.Element.getContext("2d");return item;};this.OnSize=function(option)//{ Type:1 新版本OnSize Redraw:是否重绘, XYSplit:是否重新计算分割线 }
|
|
1318
1318
|
{//画布大小通过div获取
|
|
1319
1319
|
var height=parseInt(this.DivElement.style.height.replace("px",""));if(this.ToolElement){//TODO调整工具条大小
|
|
1320
1320
|
height-=this.ToolElement.style.height.replace("px","");//减去工具条的高度
|
|
@@ -4097,11 +4097,13 @@ this.ArrawAngle=35;//三角斜边一直线夹角
|
|
|
4097
4097
|
this.ArrawLength=10;//三角斜边长度
|
|
4098
4098
|
this.ArrawLineWidth=5;//箭头粗细
|
|
4099
4099
|
this.Arrow={Start:false,End:false};//Start=是否绘制开始箭头 <- End=是否绘制结束箭头 ->
|
|
4100
|
-
this.IsFullRangeMaxMin=false;this.Draw=function(){if(!this.IsShow||this.ChartFrame.IsMinSize)return;if(!this.Data||this.Data.length<=0)return;if(!IFrameSplitOperator.IsNonEmptyArray(this.Lines))return;this.IsHScreen=this.ChartFrame.IsHScreen===true;var xPointCount=this.ChartFrame.XPointCount;var offset=this.Data.DataOffset;var drawLines=[];var arrowLines=[];for(var i=0;i<this.Lines.length;++i){var line=this.Lines[i];var drawPoints={Point:[],Color:line.Color};var drawArrowPoints={Start:[],End:[]};if(line.BGColor)drawPoints.BGColor=line.BGColor;var isExtendLine=false;if(IFrameSplitOperator.IsBool(line.IsExtendLine))isExtendLine=line.IsExtendLine;if(isExtendLine)//左右延申
|
|
4100
|
+
this.IsFullRangeMaxMin=false;this.Draw=function(){if(!this.IsShow||this.ChartFrame.IsMinSize)return;if(!this.Data||this.Data.length<=0)return;if(!IFrameSplitOperator.IsNonEmptyArray(this.Lines))return;this.IsHScreen=this.ChartFrame.IsHScreen===true;var xPointCount=this.ChartFrame.XPointCount;var offset=this.Data.DataOffset;var drawLines=[];var arrowLines=[];for(var i=0;i<this.Lines.length;++i){var line=this.Lines[i];var drawPoints={Point:[],Color:line.Color,AryCircle:null};var drawArrowPoints={Start:[],End:[]};if(line.BGColor)drawPoints.BGColor=line.BGColor;if(IFrameSplitOperator.IsNonEmptyArray(line.Circle))drawPoints.AryCircle=line.Circle;var isExtendLine=false;if(IFrameSplitOperator.IsBool(line.IsExtendLine))isExtendLine=line.IsExtendLine;if(isExtendLine)//左右延申
|
|
4101
4101
|
{var prePoint=null;var bFirstPoint=true;for(var j=0;j<line.Point.length;++j){var point=line.Point[j];if(!IFrameSplitOperator.IsNumber(point.Index))continue;var index=point.Index-offset;if(index>0&&index<xPointCount){if(bFirstPoint){if(prePoint){var preIndex=prePoint.Index-offset;var x=this.ChartFrame.GetXFromIndex(preIndex,false);var y=this.ChartFrame.GetYFromData(prePoint.Value,false);var pointItem={X:x,Y:y,End:false};drawPoints.Point.push(pointItem);}bFirstPoint=false;}var x=this.ChartFrame.GetXFromIndex(index,false);var y=this.ChartFrame.GetYFromData(point.Value,false);var pointItem={X:x,Y:y,End:false};drawPoints.Point.push(pointItem);}else{if(drawPoints.Point.length>0){var x=this.ChartFrame.GetXFromIndex(index,false);var y=this.ChartFrame.GetYFromData(point.Value,false);var pointItem={X:x,Y:y,End:true};drawPoints.Point.push(pointItem);bFirstPoint=true;prePoint=null;}}prePoint=point;}if(drawPoints.Point.length>=2){drawLines.push(drawPoints);arrowLines.push(drawArrowPoints);}}else{for(var j=0;j<line.Point.length;++j){var point=line.Point[j];if(!IFrameSplitOperator.IsNumber(point.Index))continue;var index=point.Index-offset;if(index>=0&&index<xPointCount){var x=this.ChartFrame.GetXFromIndex(index);var y=this.ChartFrame.GetYFromData(point.Value,false);var pointItem={X:x,Y:y,End:false};drawPoints.Point.push(pointItem);if(j==0||j==1)drawArrowPoints.Start.push(pointItem);//起始点
|
|
4102
4102
|
if(j==line.Point.length-1||j==line.Point.length-2)drawArrowPoints.End.push(pointItem);//结束点
|
|
4103
4103
|
}else{if(drawPoints.Point.length>0)drawPoints.Point[drawPoints.Point.length-1].End=true;//点断开
|
|
4104
|
-
}}if(drawPoints.Point.length>=2){drawLines.push(drawPoints);arrowLines.push(drawArrowPoints);}}}var pixelRatio=GetDevicePixelRatio();this.Canvas.save();this.ClipClient(this.IsHScreen)
|
|
4104
|
+
}}if(drawPoints.Point.length>=2){drawLines.push(drawPoints);arrowLines.push(drawArrowPoints);}}}var pixelRatio=GetDevicePixelRatio();this.Canvas.save();this.ClipClient(this.IsHScreen);//绘制线段
|
|
4105
|
+
for(var i=0;i<drawLines.length;++i){if(this.LineDash)this.Canvas.setLineDash(this.LineDash);if(IFrameSplitOperator.IsPlusNumber(this.LineWidth))this.Canvas.lineWidth=this.LineWidth*pixelRatio;else this.Canvas.lineWidth=1*pixelRatio;var item=drawLines[i];this.DrawLine(item,arrowLines[i]);//绘制圆点
|
|
4106
|
+
if(item.AryCircle)this.DrawCircle(item);}this.Canvas.restore();};this.DrawCircle=function(line){var pixelRatio=GetDevicePixelRatio();for(var i=0;i<line.Point.length;++i){var item=line.Point[i];for(var j=0;j<line.AryCircle.length;++j){var circleItem=line.AryCircle[j];var type=0;if(IFrameSplitOperator.IsNumber(circleItem.Type))type=circleItem.Type;this.Canvas.beginPath();this.Canvas.arc(item.X,item.Y,circleItem.Radius,0,2*Math.PI);if(type==1){if(IFrameSplitOperator.IsPlusNumber(circleItem.LineWidth))this.Canvas.lineWidth=circleItem.LineWidth*pixelRatio;this.Canvas.strokeStyle=circleItem.Color;this.Canvas.stroke();}else{this.Canvas.fillStyle=circleItem.Color;this.Canvas.fill();}}}};this.DrawLine=function(line,arrow){if(line.BGColor)//背景色
|
|
4105
4107
|
{this.Canvas.fillStyle=line.BGColor;for(var i=0;i<line.Point.length;++i){var item=line.Point[i];if(i==0){this.Canvas.beginPath();if(this.IsHScreen)this.Canvas.moveTo(item.Y,item.X);else this.Canvas.moveTo(item.X,item.Y);}else{if(this.IsHScreen)this.Canvas.lineTo(item.Y,item.X);else this.Canvas.lineTo(item.X,item.Y);}}this.Canvas.closePath();this.Canvas.fill();}this.Canvas.strokeStyle=line.Color;var drawCount=0;for(var i=0;i<line.Point.length;++i){var item=line.Point[i];if(drawCount==0){this.Canvas.beginPath();if(this.IsHScreen)this.Canvas.moveTo(item.Y,item.X);else this.Canvas.moveTo(item.X,item.Y);++drawCount;}else{if(this.IsHScreen)this.Canvas.lineTo(item.Y,item.X);else this.Canvas.lineTo(item.X,item.Y);++drawCount;}if(item.End==true)//点断了 要重新画
|
|
4106
4108
|
{if(drawCount>0)this.Canvas.stroke();drawCount=0;}}if(drawCount>0)this.Canvas.stroke();//绘制箭头
|
|
4107
4109
|
if(arrow.End.length==2&&this.Arrow.End==true)this.DrawArrow(arrow.End[0],arrow.End[1]);if(arrow.Start.length==2&&this.Arrow.Start==true)this.DrawArrow(arrow.Start[1],arrow.Start[0]);};this.DrawArrow=function(ptStart,ptEnd){//计算箭头
|
|
@@ -12563,7 +12565,7 @@ this.AreaColor=g_JSChartResource.ScrollBar.BGChart.AreaColor;//面积图颜色
|
|
|
12563
12565
|
};this.Draw=function(){if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return;this.Canvas.save();if(this.LineWidth>0)this.Canvas.lineWidth=this.LineWidth*GetDevicePixelRatio();var bottom=this.ChartBorder.GetBottom();this.Canvas.strokeStyle=this.Color;var bFirstPoint=true;var drawCount=0,x,y;var firstPoint={};for(var i=0;i<this.Data.Data.length;++i){var item=this.Data.Data[i];var value=item.Close;if(!IFrameSplitOperator.IsNumber(value))continue;x=this.ChartFrame.GetXFromIndex(i);y=this.ChartFrame.GetYFromData(value);if(bFirstPoint){this.Canvas.beginPath();this.Canvas.moveTo(x,y);bFirstPoint=false;firstPoint={X:x,Y:y};}else{this.Canvas.lineTo(x,y);}++drawCount;}if(drawCount>0){this.Canvas.stroke();this.Canvas.lineTo(x,bottom);this.Canvas.lineTo(firstPoint.X,bottom);this.Canvas.closePath();this.Canvas.fillStyle=this.AreaColor;this.Canvas.fill();}this.Canvas.restore();};this.GetMaxMin=function(){var range={Max:null,Min:null};if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return range;for(var i=0;i<this.Data.Data.length;++i){var item=this.Data.Data[i];var value=item.Close;if(!IFrameSplitOperator.IsNumber(value))continue;if(range.Max==null||range.Max<value)range.Max=value;if(range.Min==null||range.Min>value)range.Min=value;}return range;};}/********************************************************************************
|
|
12564
12566
|
* 版本信息输出
|
|
12565
12567
|
*
|
|
12566
|
-
*/var HQCHART_VERSION="1.1.
|
|
12568
|
+
*/var HQCHART_VERSION="1.1.12388";function PrintHQChartVersion(){var log='*************************************************************************************************************\n*\n* HQChart Ver: '+HQCHART_VERSION+' \n* \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n*************************************************************************************************************\n';console.log(log);}PrintHQChartVersion();//把给外界调用的方法暴露出来
|
|
12567
12569
|
exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
|
|
12568
12570
|
// BaseIndex:BaseIndex,
|
|
12569
12571
|
// ChartLine:ChartLine,
|
package/package.json
CHANGED
package/src/jscommon/umychart.js
CHANGED
|
@@ -56,7 +56,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
56
56
|
//额外的画布
|
|
57
57
|
this.MapExtraCanvasElement=new Map(); //key=画布名字, value={ Element:, Canvas:}
|
|
58
58
|
|
|
59
|
-
this.CreateExtraCanvasElement=function(name)
|
|
59
|
+
this.CreateExtraCanvasElement=function(name, option)
|
|
60
60
|
{
|
|
61
61
|
if (this.MapExtraCanvasElement.has(name)) return this.MapExtraCanvasElement.get(name);
|
|
62
62
|
|
|
@@ -77,6 +77,11 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
77
77
|
element.style["pointer-events"]="none";
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
+
if (option)
|
|
81
|
+
{
|
|
82
|
+
if (IFrameSplitOperator.IsNumber(option.TabIndex)) element.setAttribute("tabindex",option.TabIndex);
|
|
83
|
+
}
|
|
84
|
+
|
|
80
85
|
divElement.appendChild(element);
|
|
81
86
|
|
|
82
87
|
var item={ Element:element, Canvas:null };
|
|
@@ -34046,11 +34051,14 @@ function ChartMultiLine()
|
|
|
34046
34051
|
for(var i=0; i<this.Lines.length; ++i)
|
|
34047
34052
|
{
|
|
34048
34053
|
var line=this.Lines[i];
|
|
34049
|
-
var drawPoints={ Point:[], Color:line.Color };
|
|
34054
|
+
var drawPoints={ Point:[], Color:line.Color, AryCircle:null };
|
|
34050
34055
|
var drawArrowPoints={ Start:[], End:[] };
|
|
34051
34056
|
if (line.BGColor) drawPoints.BGColor=line.BGColor;
|
|
34057
|
+
if (IFrameSplitOperator.IsNonEmptyArray(line.Circle)) drawPoints.AryCircle=line.Circle;
|
|
34058
|
+
|
|
34052
34059
|
var isExtendLine=false;
|
|
34053
34060
|
if (IFrameSplitOperator.IsBool(line.IsExtendLine)) isExtendLine=line.IsExtendLine;
|
|
34061
|
+
|
|
34054
34062
|
if (isExtendLine) //左右延申
|
|
34055
34063
|
{
|
|
34056
34064
|
var prePoint=null;
|
|
@@ -34122,6 +34130,7 @@ function ChartMultiLine()
|
|
|
34122
34130
|
var x=this.ChartFrame.GetXFromIndex(index);
|
|
34123
34131
|
var y=this.ChartFrame.GetYFromData(point.Value, false);
|
|
34124
34132
|
var pointItem={X:x, Y:y, End:false};
|
|
34133
|
+
|
|
34125
34134
|
drawPoints.Point.push(pointItem);
|
|
34126
34135
|
|
|
34127
34136
|
if (j==0 || j==1) drawArrowPoints.Start.push(pointItem); //起始点
|
|
@@ -34144,6 +34153,7 @@ function ChartMultiLine()
|
|
|
34144
34153
|
var pixelRatio=GetDevicePixelRatio();
|
|
34145
34154
|
this.Canvas.save();
|
|
34146
34155
|
this.ClipClient(this.IsHScreen);
|
|
34156
|
+
//绘制线段
|
|
34147
34157
|
for(var i=0; i<drawLines.length; ++i)
|
|
34148
34158
|
{
|
|
34149
34159
|
if (this.LineDash) this.Canvas.setLineDash(this.LineDash);
|
|
@@ -34151,10 +34161,48 @@ function ChartMultiLine()
|
|
|
34151
34161
|
else this.Canvas.lineWidth=1*pixelRatio;
|
|
34152
34162
|
var item=drawLines[i];
|
|
34153
34163
|
this.DrawLine(item, arrowLines[i]);
|
|
34164
|
+
|
|
34165
|
+
//绘制圆点
|
|
34166
|
+
if (item.AryCircle) this.DrawCircle(item)
|
|
34154
34167
|
}
|
|
34168
|
+
|
|
34155
34169
|
this.Canvas.restore();
|
|
34156
34170
|
}
|
|
34157
34171
|
|
|
34172
|
+
this.DrawCircle=function(line)
|
|
34173
|
+
{
|
|
34174
|
+
var pixelRatio=GetDevicePixelRatio();
|
|
34175
|
+
|
|
34176
|
+
for(var i=0; i<line.Point.length; ++i)
|
|
34177
|
+
{
|
|
34178
|
+
var item=line.Point[i];
|
|
34179
|
+
|
|
34180
|
+
for(var j=0;j<line.AryCircle.length;++j)
|
|
34181
|
+
{
|
|
34182
|
+
var circleItem=line.AryCircle[j];
|
|
34183
|
+
|
|
34184
|
+
var type=0;
|
|
34185
|
+
if (IFrameSplitOperator.IsNumber(circleItem.Type)) type=circleItem.Type;
|
|
34186
|
+
|
|
34187
|
+
this.Canvas.beginPath();
|
|
34188
|
+
this.Canvas.arc(item.X, item.Y, circleItem.Radius, 0, 2 * Math.PI);
|
|
34189
|
+
|
|
34190
|
+
if (type==1)
|
|
34191
|
+
{
|
|
34192
|
+
if (IFrameSplitOperator.IsPlusNumber(circleItem.LineWidth)) this.Canvas.lineWidth=circleItem.LineWidth*pixelRatio;
|
|
34193
|
+
this.Canvas.strokeStyle=circleItem.Color;
|
|
34194
|
+
this.Canvas.stroke();
|
|
34195
|
+
}
|
|
34196
|
+
else
|
|
34197
|
+
{
|
|
34198
|
+
this.Canvas.fillStyle=circleItem.Color;
|
|
34199
|
+
this.Canvas.fill()
|
|
34200
|
+
}
|
|
34201
|
+
|
|
34202
|
+
}
|
|
34203
|
+
}
|
|
34204
|
+
}
|
|
34205
|
+
|
|
34158
34206
|
this.DrawLine=function(line, arrow)
|
|
34159
34207
|
{
|
|
34160
34208
|
if (line.BGColor) //背景色
|
|
@@ -4136,7 +4136,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4136
4136
|
//额外的画布
|
|
4137
4137
|
this.MapExtraCanvasElement=new Map(); //key=画布名字, value={ Element:, Canvas:}
|
|
4138
4138
|
|
|
4139
|
-
this.CreateExtraCanvasElement=function(name)
|
|
4139
|
+
this.CreateExtraCanvasElement=function(name, option)
|
|
4140
4140
|
{
|
|
4141
4141
|
if (this.MapExtraCanvasElement.has(name)) return this.MapExtraCanvasElement.get(name);
|
|
4142
4142
|
|
|
@@ -4157,6 +4157,11 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4157
4157
|
element.style["pointer-events"]="none";
|
|
4158
4158
|
}
|
|
4159
4159
|
|
|
4160
|
+
if (option)
|
|
4161
|
+
{
|
|
4162
|
+
if (IFrameSplitOperator.IsNumber(option.TabIndex)) element.setAttribute("tabindex",option.TabIndex);
|
|
4163
|
+
}
|
|
4164
|
+
|
|
4160
4165
|
divElement.appendChild(element);
|
|
4161
4166
|
|
|
4162
4167
|
var item={ Element:element, Canvas:null };
|
|
@@ -38126,11 +38131,14 @@ function ChartMultiLine()
|
|
|
38126
38131
|
for(var i=0; i<this.Lines.length; ++i)
|
|
38127
38132
|
{
|
|
38128
38133
|
var line=this.Lines[i];
|
|
38129
|
-
var drawPoints={ Point:[], Color:line.Color };
|
|
38134
|
+
var drawPoints={ Point:[], Color:line.Color, AryCircle:null };
|
|
38130
38135
|
var drawArrowPoints={ Start:[], End:[] };
|
|
38131
38136
|
if (line.BGColor) drawPoints.BGColor=line.BGColor;
|
|
38137
|
+
if (IFrameSplitOperator.IsNonEmptyArray(line.Circle)) drawPoints.AryCircle=line.Circle;
|
|
38138
|
+
|
|
38132
38139
|
var isExtendLine=false;
|
|
38133
38140
|
if (IFrameSplitOperator.IsBool(line.IsExtendLine)) isExtendLine=line.IsExtendLine;
|
|
38141
|
+
|
|
38134
38142
|
if (isExtendLine) //左右延申
|
|
38135
38143
|
{
|
|
38136
38144
|
var prePoint=null;
|
|
@@ -38202,6 +38210,7 @@ function ChartMultiLine()
|
|
|
38202
38210
|
var x=this.ChartFrame.GetXFromIndex(index);
|
|
38203
38211
|
var y=this.ChartFrame.GetYFromData(point.Value, false);
|
|
38204
38212
|
var pointItem={X:x, Y:y, End:false};
|
|
38213
|
+
|
|
38205
38214
|
drawPoints.Point.push(pointItem);
|
|
38206
38215
|
|
|
38207
38216
|
if (j==0 || j==1) drawArrowPoints.Start.push(pointItem); //起始点
|
|
@@ -38224,6 +38233,7 @@ function ChartMultiLine()
|
|
|
38224
38233
|
var pixelRatio=GetDevicePixelRatio();
|
|
38225
38234
|
this.Canvas.save();
|
|
38226
38235
|
this.ClipClient(this.IsHScreen);
|
|
38236
|
+
//绘制线段
|
|
38227
38237
|
for(var i=0; i<drawLines.length; ++i)
|
|
38228
38238
|
{
|
|
38229
38239
|
if (this.LineDash) this.Canvas.setLineDash(this.LineDash);
|
|
@@ -38231,10 +38241,48 @@ function ChartMultiLine()
|
|
|
38231
38241
|
else this.Canvas.lineWidth=1*pixelRatio;
|
|
38232
38242
|
var item=drawLines[i];
|
|
38233
38243
|
this.DrawLine(item, arrowLines[i]);
|
|
38244
|
+
|
|
38245
|
+
//绘制圆点
|
|
38246
|
+
if (item.AryCircle) this.DrawCircle(item)
|
|
38234
38247
|
}
|
|
38248
|
+
|
|
38235
38249
|
this.Canvas.restore();
|
|
38236
38250
|
}
|
|
38237
38251
|
|
|
38252
|
+
this.DrawCircle=function(line)
|
|
38253
|
+
{
|
|
38254
|
+
var pixelRatio=GetDevicePixelRatio();
|
|
38255
|
+
|
|
38256
|
+
for(var i=0; i<line.Point.length; ++i)
|
|
38257
|
+
{
|
|
38258
|
+
var item=line.Point[i];
|
|
38259
|
+
|
|
38260
|
+
for(var j=0;j<line.AryCircle.length;++j)
|
|
38261
|
+
{
|
|
38262
|
+
var circleItem=line.AryCircle[j];
|
|
38263
|
+
|
|
38264
|
+
var type=0;
|
|
38265
|
+
if (IFrameSplitOperator.IsNumber(circleItem.Type)) type=circleItem.Type;
|
|
38266
|
+
|
|
38267
|
+
this.Canvas.beginPath();
|
|
38268
|
+
this.Canvas.arc(item.X, item.Y, circleItem.Radius, 0, 2 * Math.PI);
|
|
38269
|
+
|
|
38270
|
+
if (type==1)
|
|
38271
|
+
{
|
|
38272
|
+
if (IFrameSplitOperator.IsPlusNumber(circleItem.LineWidth)) this.Canvas.lineWidth=circleItem.LineWidth*pixelRatio;
|
|
38273
|
+
this.Canvas.strokeStyle=circleItem.Color;
|
|
38274
|
+
this.Canvas.stroke();
|
|
38275
|
+
}
|
|
38276
|
+
else
|
|
38277
|
+
{
|
|
38278
|
+
this.Canvas.fillStyle=circleItem.Color;
|
|
38279
|
+
this.Canvas.fill()
|
|
38280
|
+
}
|
|
38281
|
+
|
|
38282
|
+
}
|
|
38283
|
+
}
|
|
38284
|
+
}
|
|
38285
|
+
|
|
38238
38286
|
this.DrawLine=function(line, arrow)
|
|
38239
38287
|
{
|
|
38240
38288
|
if (line.BGColor) //背景色
|
|
@@ -127361,7 +127409,7 @@ function ScrollBarBGChart()
|
|
|
127361
127409
|
|
|
127362
127410
|
|
|
127363
127411
|
|
|
127364
|
-
var HQCHART_VERSION="1.1.
|
|
127412
|
+
var HQCHART_VERSION="1.1.12388";
|
|
127365
127413
|
|
|
127366
127414
|
function PrintHQChartVersion()
|
|
127367
127415
|
{
|
|
@@ -4180,7 +4180,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4180
4180
|
//额外的画布
|
|
4181
4181
|
this.MapExtraCanvasElement=new Map(); //key=画布名字, value={ Element:, Canvas:}
|
|
4182
4182
|
|
|
4183
|
-
this.CreateExtraCanvasElement=function(name)
|
|
4183
|
+
this.CreateExtraCanvasElement=function(name, option)
|
|
4184
4184
|
{
|
|
4185
4185
|
if (this.MapExtraCanvasElement.has(name)) return this.MapExtraCanvasElement.get(name);
|
|
4186
4186
|
|
|
@@ -4201,6 +4201,11 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4201
4201
|
element.style["pointer-events"]="none";
|
|
4202
4202
|
}
|
|
4203
4203
|
|
|
4204
|
+
if (option)
|
|
4205
|
+
{
|
|
4206
|
+
if (IFrameSplitOperator.IsNumber(option.TabIndex)) element.setAttribute("tabindex",option.TabIndex);
|
|
4207
|
+
}
|
|
4208
|
+
|
|
4204
4209
|
divElement.appendChild(element);
|
|
4205
4210
|
|
|
4206
4211
|
var item={ Element:element, Canvas:null };
|
|
@@ -38170,11 +38175,14 @@ function ChartMultiLine()
|
|
|
38170
38175
|
for(var i=0; i<this.Lines.length; ++i)
|
|
38171
38176
|
{
|
|
38172
38177
|
var line=this.Lines[i];
|
|
38173
|
-
var drawPoints={ Point:[], Color:line.Color };
|
|
38178
|
+
var drawPoints={ Point:[], Color:line.Color, AryCircle:null };
|
|
38174
38179
|
var drawArrowPoints={ Start:[], End:[] };
|
|
38175
38180
|
if (line.BGColor) drawPoints.BGColor=line.BGColor;
|
|
38181
|
+
if (IFrameSplitOperator.IsNonEmptyArray(line.Circle)) drawPoints.AryCircle=line.Circle;
|
|
38182
|
+
|
|
38176
38183
|
var isExtendLine=false;
|
|
38177
38184
|
if (IFrameSplitOperator.IsBool(line.IsExtendLine)) isExtendLine=line.IsExtendLine;
|
|
38185
|
+
|
|
38178
38186
|
if (isExtendLine) //左右延申
|
|
38179
38187
|
{
|
|
38180
38188
|
var prePoint=null;
|
|
@@ -38246,6 +38254,7 @@ function ChartMultiLine()
|
|
|
38246
38254
|
var x=this.ChartFrame.GetXFromIndex(index);
|
|
38247
38255
|
var y=this.ChartFrame.GetYFromData(point.Value, false);
|
|
38248
38256
|
var pointItem={X:x, Y:y, End:false};
|
|
38257
|
+
|
|
38249
38258
|
drawPoints.Point.push(pointItem);
|
|
38250
38259
|
|
|
38251
38260
|
if (j==0 || j==1) drawArrowPoints.Start.push(pointItem); //起始点
|
|
@@ -38268,6 +38277,7 @@ function ChartMultiLine()
|
|
|
38268
38277
|
var pixelRatio=GetDevicePixelRatio();
|
|
38269
38278
|
this.Canvas.save();
|
|
38270
38279
|
this.ClipClient(this.IsHScreen);
|
|
38280
|
+
//绘制线段
|
|
38271
38281
|
for(var i=0; i<drawLines.length; ++i)
|
|
38272
38282
|
{
|
|
38273
38283
|
if (this.LineDash) this.Canvas.setLineDash(this.LineDash);
|
|
@@ -38275,10 +38285,48 @@ function ChartMultiLine()
|
|
|
38275
38285
|
else this.Canvas.lineWidth=1*pixelRatio;
|
|
38276
38286
|
var item=drawLines[i];
|
|
38277
38287
|
this.DrawLine(item, arrowLines[i]);
|
|
38288
|
+
|
|
38289
|
+
//绘制圆点
|
|
38290
|
+
if (item.AryCircle) this.DrawCircle(item)
|
|
38278
38291
|
}
|
|
38292
|
+
|
|
38279
38293
|
this.Canvas.restore();
|
|
38280
38294
|
}
|
|
38281
38295
|
|
|
38296
|
+
this.DrawCircle=function(line)
|
|
38297
|
+
{
|
|
38298
|
+
var pixelRatio=GetDevicePixelRatio();
|
|
38299
|
+
|
|
38300
|
+
for(var i=0; i<line.Point.length; ++i)
|
|
38301
|
+
{
|
|
38302
|
+
var item=line.Point[i];
|
|
38303
|
+
|
|
38304
|
+
for(var j=0;j<line.AryCircle.length;++j)
|
|
38305
|
+
{
|
|
38306
|
+
var circleItem=line.AryCircle[j];
|
|
38307
|
+
|
|
38308
|
+
var type=0;
|
|
38309
|
+
if (IFrameSplitOperator.IsNumber(circleItem.Type)) type=circleItem.Type;
|
|
38310
|
+
|
|
38311
|
+
this.Canvas.beginPath();
|
|
38312
|
+
this.Canvas.arc(item.X, item.Y, circleItem.Radius, 0, 2 * Math.PI);
|
|
38313
|
+
|
|
38314
|
+
if (type==1)
|
|
38315
|
+
{
|
|
38316
|
+
if (IFrameSplitOperator.IsPlusNumber(circleItem.LineWidth)) this.Canvas.lineWidth=circleItem.LineWidth*pixelRatio;
|
|
38317
|
+
this.Canvas.strokeStyle=circleItem.Color;
|
|
38318
|
+
this.Canvas.stroke();
|
|
38319
|
+
}
|
|
38320
|
+
else
|
|
38321
|
+
{
|
|
38322
|
+
this.Canvas.fillStyle=circleItem.Color;
|
|
38323
|
+
this.Canvas.fill()
|
|
38324
|
+
}
|
|
38325
|
+
|
|
38326
|
+
}
|
|
38327
|
+
}
|
|
38328
|
+
}
|
|
38329
|
+
|
|
38282
38330
|
this.DrawLine=function(line, arrow)
|
|
38283
38331
|
{
|
|
38284
38332
|
if (line.BGColor) //背景色
|
|
@@ -127405,7 +127453,7 @@ function ScrollBarBGChart()
|
|
|
127405
127453
|
|
|
127406
127454
|
|
|
127407
127455
|
|
|
127408
|
-
var HQCHART_VERSION="1.1.
|
|
127456
|
+
var HQCHART_VERSION="1.1.12388";
|
|
127409
127457
|
|
|
127410
127458
|
function PrintHQChartVersion()
|
|
127411
127459
|
{
|