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.
@@ -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);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]);}this.Canvas.restore();};this.DrawLine=function(line,arrow){if(line.BGColor)//背景色
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.12386";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();//把给外界调用的方法暴露出来
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
@@ -2,7 +2,7 @@
2
2
  "name": "hqchart",
3
3
  "description": "stock chart",
4
4
  "author": "jones2000",
5
- "version": "1.1.12387",
5
+ "version": "1.1.12389",
6
6
  "main": "lib/main.js",
7
7
  "private": false,
8
8
  "license": "Apache License 2.0",
@@ -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.12386";
127412
+ var HQCHART_VERSION="1.1.12388";
127365
127413
 
127366
127414
  function PrintHQChartVersion()
127367
127415
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.12386";
8
+ var HQCHART_VERSION="1.1.12388";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -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.12386";
127456
+ var HQCHART_VERSION="1.1.12388";
127409
127457
 
127410
127458
  function PrintHQChartVersion()
127411
127459
  {