hqchart 1.1.12822 → 1.1.12827

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.
@@ -1794,7 +1794,7 @@ var bDraw=false;if(drawPictureActive.Select.Guid&&drawPictureActive.Select.Chart
1794
1794
  this.SelectChartDrawPicture.DragInfo={Click:{X:e.clientX,Y:e.clientY}};}else{this.CurrentChartDrawPicture=null;this.SelectChartDrawPicture=null;}var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_DRAWPICTURE);//选中画图工具事件
1795
1795
  if(event&&event.Callback){var sendData={DrawPicture:drawPictrueData.ChartDrawPicture};event.Callback(event,sendData,this);}else{this.OnSelectChartPicture(drawPictrueData.ChartDrawPicture);//选中画图工具事件
1796
1796
  }}else{if(this.ClickChartTimer!=null){clearTimeout(this.ClickChartTimer);this.ClickChartTimer=null;}var self=this;var ptClick={X:this.ClickDownPoint.X,Y:this.ClickDownPoint.Y};this.ClickChartTimer=setTimeout(function(){self.TryClickPaintEvent(JSCHART_EVENT_ID.ON_CLICK_CHART_PAINT,ptClick,e);},250);var bSelectedChartChanged=false;if(this.SelectedChart.EnableSelected){var selectChart=this.PtInChart(x,y);if(selectChart){if(this.SelectedChart.Selected.Identify!=selectChart.Identify){this.SelectedChart.Selected.Identify=selectChart.Identify;this.SelectedChart.Selected.Chart=selectChart.Chart;bSelectedChartChanged=true;}if(this.EnableIndexChartDrag){this.IndexChartDrag={SelectedChart:selectChart,LastMove:{X:x,Y:y},Click:{X:x,Y:y}};this.IndexChartDrag.Info=this.GetSelectedChartInfo(selectChart);if(this.IndexChartDrag.Info)this.IndexChartDrag.Info.FrameID=this.Frame.PtInFrame(x,y);}}else{if(this.SelectedChart.Selected.Identify){this.SelectedChart.Selected.Identify=null;this.SelectedChart.Selected.Chart=null;bSelectedChartChanged=true;}}}else{if(this.SelectedChart.Selected.Identify){this.SelectedChart.Selected.Identify=null;bSelectedChartChanged=true;}}if(drawPictureActive.Select.Guid!=null&&this.SelectChartDrawPicture==null||bSelectedChartChanged){var drawType=0;if(drawPictureActive.Select.Guid&&drawPictureActive.Select.Chart&&drawPictureActive.Select.Chart.IsDrawMain)drawType=1;if(bSelectedChartChanged){var chart=selectedChart.Chart;if(chart&&chart.SetSelectedStatus){chart.SetSelectedStatus(0);drawType=1;}chart=this.SelectedChart.Selected.Chart;if(chart&&chart.SetSelectedStatus){chart.SetSelectedStatus(1);drawType=1;}}if(drawType==1)this.Draw();else this.DrawDynamicInfo();}else if(bDrawDynamicInfo){this.DrawDynamicInfo();}}}document.onmousemove=function(e){_this7.DocOnMouseMove(e);};document.onmouseup=function(e){_this7.DocOnMouseUp(e);};};this.DocOnMouseMove=function(e){//加载数据中,禁用鼠标事件
1797
- if(this.ChartSplashPaint&&this.IsEnableSplash==true)return;var drag=this.MouseDrag;if(!drag)return;var moveSetp=Math.abs(drag.LastMove.X-e.clientX);var moveSetpY=Math.abs(drag.LastMove.Y-e.clientY);var isDragSelectRect=this.RectSelectDrag&&this.RectSelectDrag.Index>=0;var isDragSubSelectRect=this.RectSelectDrag&&this.RectSelectDrag.Type==4;if(drag.CurrentMove){drag.CurrentMove.X=e.clientX;drag.CurrentMove.Y=e.clientY;}if(this.BorderDrag&&this.BorderDrag.Index>=0)//边框拖动
1797
+ if(this.ChartSplashPaint&&this.ChartSplashPaint.IsEnableSplash)return;var drag=this.MouseDrag;if(!drag)return;var moveSetp=Math.abs(drag.LastMove.X-e.clientX);var moveSetpY=Math.abs(drag.LastMove.Y-e.clientY);var isDragSelectRect=this.RectSelectDrag&&this.RectSelectDrag.Index>=0;var isDragSubSelectRect=this.RectSelectDrag&&this.RectSelectDrag.Type==4;if(drag.CurrentMove){drag.CurrentMove.X=e.clientX;drag.CurrentMove.Y=e.clientY;}if(this.BorderDrag&&this.BorderDrag.Index>=0)//边框拖动
1798
1798
  {if(Math.abs(drag.LastMove.Y-e.clientY)<5)return;var yMove=e.clientY-drag.LastMove.Y;this.OnMoveFromeBorder(this.BorderDrag.Index,yMove);drag.LastMove.X=e.clientX;drag.LastMove.Y=e.clientY;}else if(this.YDrag&&this.YDrag.Index>=0)//Y轴缩放
1799
1799
  {if(moveSetpY<5)return;var yMove=e.clientY-drag.LastMove.Y;//this.UIElement.style.cursor="n-resize";
1800
1800
  JSConsole.Chart.Log("[JSChartContainer::DocOnMouseMove] YDrag ",this.YDrag,yMove);this.OnZoomUpDownFrameY(this.YDrag,yMove);drag.LastMove.X=e.clientX;drag.LastMove.Y=e.clientY;}else if(this.IndexChartDrag&&this.IndexChartDrag.SelectedChart){if(Math.abs(drag.LastMove.Y-e.clientY)<2&&Math.abs(drag.LastMove.X-e.clientX)<2)return;var chartMove=this.GetExtendChartByClassName("DragMovePaint");if(chartMove&&chartMove.Chart){var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;chartMove.Chart.Point={X:x,Y:y};chartMove.Chart.IsShow=true;chartMove.Chart.Info=this.IndexChartDrag.Info;this.DrawDynamicInfo();}this.IndexChartDrag.LastMove.X=x;this.IndexChartDrag.LastMove.Y=y;drag.LastMove.X=e.clientX;drag.LastMove.Y=e.clientY;}else if(this.CustomChartDrag){var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;var sendData={X:x,Y:y,e:e,ChartDrag:this.CustomChartDrag,Drag:drag};this.TryDragMove_CustomChartDrag(sendData);}else if(this.CurrentChartDrawPicture){var drawPicture=this.CurrentChartDrawPicture;if(drawPicture.Status==1||drawPicture.Status==2){if(Math.abs(drag.LastMove.X-e.clientX)<5&&Math.abs(drag.LastMove.Y-e.clientY)<5)return;if(this.SetChartDrawPictureSecondPoint(e.clientX,e.clientY)){this.DrawDynamicInfo();}}else if(drawPicture.Status==3){if(this.SetChartDrawPictureThirdPoint(e.clientX,e.clientY)){this.DrawDynamicInfo();}}else if(drawPicture.Status==20)//画图工具移动
@@ -1805,7 +1805,7 @@ this.SetCursor({Cursor:"default"});var x=drag.Click.X-uielement.getBoundingClien
1805
1805
  this.SetCursor({Cursor:"pointer"});if(this.OnUpDonwFrameY(this.UpDownDrag,yMove)){bNeedDraw=true;bUpDownY=true;}drag.LastMove.Y=e.clientY;}}if(moveSetp>=5){if(this.RectSelectDrag){if(this.RectSelectDrag.Index>=0){var obj={X:e.clientX,Y:e.clientY,PointIndex:this.RectSelectDrag.Index,Name:"MoveRectSelectLine"};if(this.MoveRectSelectPoint(obj))bNeedDraw=true;}else if(this.RectSelectDrag.Type===4){var obj={X:e.clientX};if(!this.GetXDataIndex(obj))return;if(obj.DataIndex==this.RectSelectDrag.DataIndex)return;var step=obj.DataIndex-this.RectSelectDrag.DataIndex;var isLeft=true;if(step>0)isLeft=false;if(!this.MoveSubRectSelect({Step:Math.abs(step),IsLeft:isLeft,X:e.clientX,Y:e.clientY}))return;this.RectSelectDrag.DataIndex=obj.DataIndex;this.RectSelectDrag.X=e.clientX;bNeedDraw=true;}}else{var isLeft=true;if(drag.LastMove.X<e.clientX)isLeft=false;//右移数据
1806
1806
  var cursorStatus="pointer";if(drag.Click.IsInFrameBottom)cursorStatus="ew-resize";var oneStepWidth=this.GetMoveOneStepWidth();if(moveSetp<oneStepWidth){//this.UIElement.style.cursor=cursorStatus;
1807
1807
  this.SetCursor({Cursor:cursorStatus});if(bNeedDraw)this.Draw();return;}else{if(drag.Click&&drag.Click.IsInFrameBottom){if(this.XCoordinateZoom(moveSetp,isLeft)){this.UpdataDataoffset();this.UpdateFrameMaxMin();this.ResetFrameXYSplit();bNeedDraw=true;}}else if(this.DataMove(moveSetp,isLeft)){this.UpdataDataoffset();//this.UpdatePointByCursorIndex(); //推拽数据的时候不需要把鼠标位置更新到K线上
1808
- this.UpdateFrameMaxMin();this.ResetFrameXYSplit();bNeedDraw=true;}else if(!bUpDownY){if(this.DragDownloadData)this.DragDownloadData();}}//this.UIElement.style.cursor=cursorStatus;
1808
+ this.UpdateFrameMaxMin();this.ResetFrameXYSplit();bNeedDraw=true;}else if(!bUpDownY){if(this.DragDownloadData){this.DragDownloadData();if(this.ChartSplashPaint&&this.ChartSplashPaint.IsEnableSplash)return;}}}//this.UIElement.style.cursor=cursorStatus;
1809
1809
  this.SetCursor({Cursor:cursorStatus});}drag.LastMove.X=e.clientX;}if(bNeedDraw){this.Draw();this.OnKLinePageChange("datamove");}};this.GetXDataIndex=function(obj){if(!this.ChartPaint[0]||!this.ChartPaint[0].Data)return false;var kData=this.ChartPaint[0].Data;if(!this.Frame.SubFrame[0])return false;var subFrame=this.Frame.SubFrame[0].Frame;if(!subFrame)false;var pixelTatio=GetDevicePixelRatio();var x=(obj.X-uielement.getBoundingClientRect().left)*pixelTatio;var index=subFrame.GetXData(x);index=parseInt(index.toFixed(0));var dataIndex=index+kData.DataOffset;if(dataIndex>=kData.Data.length)dataIndex=kData.Data.length-1;var item=kData.Data[dataIndex];obj.DataIndex=dataIndex;obj.Item=item;//JSConsole.Chart.Log("[JSChartContainer::GetXDataIndex] point, item", obj.PointIndex, item);
1810
1810
  return true;};this.DocOnMouseUp=function(e){//清空事件
1811
1811
  document.onmousemove=null;document.onmouseup=null;var IsMinuteChart=this.ClassName=="MinuteChartContainer"||this.ClassName=="MinuteChartHScreenContainer"?true:false;var isDragSelectRect=this.RectSelectDrag&&this.RectSelectDrag.Index>=0;var isDragSubSelectRect=this.RectSelectDrag&&this.RectSelectDrag.Type==4;var bClearDrawPicture=true;if(this.CurrentChartDrawPicture){var drawPicture=this.CurrentChartDrawPicture;if(drawPicture.Status==2||drawPicture.Status==1||drawPicture.Status==3){drawPicture.PointStatus=drawPicture.Status;if(this.FinishChartDrawPicturePoint())this.DrawDynamicInfo();else bClearDrawPicture=false;}else if(drawPicture.Status==20){if(this.FinishMoveChartDrawPicture())this.DrawDynamicInfo();}}else if(this.IndexChartDrag&&this.IndexChartDrag.SelectedChart){var chartMove=this.GetExtendChartByClassName("DragMovePaint");if(chartMove&&chartMove.Chart)chartMove.Chart.Clear();if(!this.OnDragChart(this.IndexChartDrag))this.DrawDynamicInfo();//this.UIElement.style.cursor="default";
@@ -3927,7 +3927,7 @@ if(range.Max==null)range.Max=value;if(range.Min==null)range.Min=value;if(range.M
3927
3927
  function ChartPartLine(){this.newMethod=IChartPainting;//派生
3928
3928
  this.newMethod();delete this.newMethod;this.ClassName='ChartPartLine';//类名
3929
3929
  this.LineWidth;//线段宽度
3930
- this.Draw=function(){if(!this.IsShow||this.ChartFrame.IsMinSize)return;if(this.IsShowIndexTitleOnly())return;if(this.IsHideScriptIndex())return;if(this.NotSupportMessage){this.DrawNotSupportmessage();return;}if(!this.Data||!this.Data.Data)return;this.DrawLine();};this.DrawLine=function(){var bHScreen=this.ChartFrame.IsHScreen===true;var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var chartright=this.ChartBorder.GetRight();if(bHScreen)chartright=this.ChartBorder.GetBottom();var xPointCount=this.ChartFrame.XPointCount;this.Canvas.save();if(this.LineWidth>0)this.Canvas.lineWidth=this.LineWidth*GetDevicePixelRatio();var bFirstPoint=true;var drawCount=0;var lastColor;var lastPoint={X:null,Y:null};var isPerNull=false;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var item=this.Data.Data[i];if(item==null||item.Value==null){lastPoint.X=null;lastPoint.Y=null;isPerNull=true;continue;}var value=item.Value;var color=item.RGB;var x=this.ChartFrame.GetXFromIndex(j);var y=this.ChartFrame.GetYFromData(value);if(x>chartright)break;if(color!=lastColor||isPerNull==true){if(lastColor&&drawCount>0)this.Canvas.stroke();drawCount=0;lastColor=color;this.Canvas.strokeStyle=color;this.Canvas.beginPath();if(lastPoint.X!=null&&lastPoint.Y!=null)//接着上一个点连线
3930
+ this.Draw=function(){if(!this.IsShow||this.ChartFrame.IsMinSize)return;if(this.IsShowIndexTitleOnly())return;if(this.IsHideScriptIndex())return;if(this.NotSupportMessage){this.DrawNotSupportmessage();return;}if(!this.Data||!this.Data.Data)return;this.DrawLine();};this.DrawLine=function(){var bHScreen=this.ChartFrame.IsHScreen===true;var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;if(bHScreen){var border=this.ChartBorder.GetHScreenBorder();var chartright=border.BottomEx;var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;}else{var border=this.ChartBorder.GetBorder();var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;}var xPointCount=this.ChartFrame.XPointCount;var isMinute=this.IsMinuteFrame();this.Canvas.save();if(this.LineWidth>0)this.Canvas.lineWidth=this.LineWidth*GetDevicePixelRatio();var bFirstPoint=true;var drawCount=0;var lastColor;var lastPoint={X:null,Y:null};var isPerNull=false;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var item=this.Data.Data[i];if(item==null||item.Value==null){lastPoint.X=null;lastPoint.Y=null;isPerNull=true;continue;}if(isMinute){var x=this.ChartFrame.GetXFromIndex(j);}else{var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;var x=left+(right-left)/2;}var value=item.Value;var color=item.RGB;var y=this.ChartFrame.GetYFromData(value);if(x>chartright)break;if(color!=lastColor||isPerNull==true){if(lastColor&&drawCount>0)this.Canvas.stroke();drawCount=0;lastColor=color;this.Canvas.strokeStyle=color;this.Canvas.beginPath();if(lastPoint.X!=null&&lastPoint.Y!=null)//接着上一个点连线
3931
3931
  {if(bHScreen)this.Canvas.moveTo(lastPoint.Y,lastPoint.X);//横屏坐标轴对调
3932
3932
  else this.Canvas.moveTo(lastPoint.X,lastPoint.Y);if(bHScreen)this.Canvas.lineTo(y,x);else this.Canvas.lineTo(x,y);++drawCount;}else{if(bHScreen)this.Canvas.moveTo(y,x);//横屏坐标轴对调
3933
3933
  else this.Canvas.moveTo(x,y);}}else{if(bHScreen)this.Canvas.lineTo(y,x);else this.Canvas.lineTo(x,y);++drawCount;}lastPoint.X=x;lastPoint.Y=y;isPerNull=false;}if(drawCount>0)this.Canvas.stroke();this.Canvas.restore();};this.GetMaxMin=function(){var xPointCount=this.ChartFrame.XPointCount;var range={};range.Min=null;range.Max=null;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var item=this.Data.Data[i];if(!item||!item.Value)continue;if(range.Max==null||range.Max<item.Value)range.Max=item.Value;if(range.Min==null||range.Min>item.Value)range.Min=item.Value;}return range;};this.ExportData=function(aryKData,option){var aryValue=[],aryColor=[];if(IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)){var start=0,end=this.Data.length-1;//限制范围
@@ -4173,7 +4173,7 @@ for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++
4173
4173
  var height=ToFixedRect(Math.abs(yBottom-y));if(yBottom-y>0)y=yBottom-height;else y=yBottom+height;this.Canvas.fillRect(ToFixedRect(left),y,ToFixedRect(dataWidth),height);}}else//太细了 直接画柱子
4174
4174
  {for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var value=this.Data.Data[i];if(value==null||value==0)continue;var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;var x=this.ChartFrame.GetXFromIndex(j);var y=this.ChartFrame.GetYFromData(value);if(value>0)this.Canvas.strokeStyle=this.UpBarColor;else this.Canvas.strokeStyle=this.DownBarColor;this.Canvas.beginPath();this.Canvas.moveTo(ToFixedPoint(x),y);this.Canvas.lineTo(ToFixedPoint(x),yBottom);this.Canvas.stroke();}}};this.GetMaxMin=function(){var xPointCount=this.ChartFrame.XPointCount;var range={};range.Min=0;range.Max=null;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var value=this.Data.Data[i];if(range.Max==null)range.Max=value;if(range.Max<value)range.Max=value;}return range;};}// 面积图 支持横屏
4175
4175
  function ChartBand(){this.newMethod=IChartPainting;//派生
4176
- this.newMethod();delete this.newMethod;this.IsDrawFirst=true;this.ClassName="ChartBand";this.FirstColor=g_JSChartResource.Index.LineColor[0];this.SecondColor=g_JSChartResource.Index.LineColor[1];this.Draw=function(){if(this.ChartFrame.IsMinSize)return;if(this.NotSupportMessage){this.DrawNotSupportmessage();return;}var isHScreen=this.ChartFrame.IsHScreen;var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var xPointCount=this.ChartFrame.XPointCount;var xOffset=this.ChartBorder.GetLeft()+distanceWidth/2.0+2.0;var x=0;var y=0;var y2=0;var firstlinePoints=[];var secondlinePoints=[];for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){firstlinePoints=[];secondlinePoints=[];for(;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var value=this.Data.Data[i];if(value==null||value.Value==null||value.Value2==null)break;x=this.ChartFrame.GetXFromIndex(j);y=this.ChartFrame.GetYFromData(value.Value);y2=this.ChartFrame.GetYFromData(value.Value2);if(isHScreen){firstlinePoints.push({x:y,y:x});secondlinePoints.push({x:y2,y:x});}else{firstlinePoints.push({x:x,y:y});secondlinePoints.push({x:x,y:y2});}}if(firstlinePoints.length>1&&secondlinePoints.length>1){this.DrawBand(firstlinePoints,secondlinePoints);}}};this.ClipTop=function(aryFrist){var isHScreen=this.ChartFrame.IsHScreen;this.Canvas.beginPath();for(var i=0;i<aryFrist.length;++i){if(i==0)this.Canvas.moveTo(aryFrist[i].x,aryFrist[i].y);else this.Canvas.lineTo(aryFrist[i].x,aryFrist[i].y);}var ptStart=aryFrist[0];var ptEnd=aryFrist[aryFrist.length-1];if(isHScreen){var xLeft=this.ChartBorder.GetRightEx();this.Canvas.lineTo(xLeft,ptEnd.y);this.Canvas.lineTo(xLeft,ptStart.y);}else{var yTop=this.ChartBorder.GetTopEx();this.Canvas.lineTo(ptEnd.x,yTop);this.Canvas.lineTo(ptStart.x,yTop);}this.Canvas.closePath();this.Canvas.clip();};this.ClipBottom=function(aryFrist){var isHScreen=this.ChartFrame.IsHScreen;this.Canvas.beginPath();for(var i=0;i<aryFrist.length;++i){if(i==0)this.Canvas.moveTo(aryFrist[i].x,aryFrist[i].y);else this.Canvas.lineTo(aryFrist[i].x,aryFrist[i].y);}var ptStart=aryFrist[0];var ptEnd=aryFrist[aryFrist.length-1];if(isHScreen){var xLeft=this.ChartBorder.GetLeftEx();this.Canvas.lineTo(xLeft,ptEnd.y);this.Canvas.lineTo(xLeft,ptStart.y);}else{var yBottom=this.ChartBorder.GetBottomEx();this.Canvas.lineTo(ptEnd.x,yBottom);this.Canvas.lineTo(ptStart.x,yBottom);}this.Canvas.closePath();//this.Canvas.fillStyle = "rgb(255,0,0)";
4176
+ this.newMethod();delete this.newMethod;this.IsDrawFirst=true;this.ClassName="ChartBand";this.FirstColor=g_JSChartResource.Index.LineColor[0];this.SecondColor=g_JSChartResource.Index.LineColor[1];this.Draw=function(){if(this.ChartFrame.IsMinSize)return;if(this.NotSupportMessage){this.DrawNotSupportmessage();return;}var isMinute=this.IsMinuteFrame();var isHScreen=this.ChartFrame.IsHScreen;var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var xPointCount=this.ChartFrame.XPointCount;var xOffset=this.ChartBorder.GetLeft()+distanceWidth/2.0+2.0;var x=0;var y=0;var y2=0;var firstlinePoints=[];var secondlinePoints=[];for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){firstlinePoints=[];secondlinePoints=[];for(;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var value=this.Data.Data[i];if(value==null||value.Value==null||value.Value2==null)break;if(isMinute){x=this.ChartFrame.GetXFromIndex(j);}else{var left=xOffset;var right=xOffset+dataWidth;x=left+(right-left)/2;}y=this.ChartFrame.GetYFromData(value.Value);y2=this.ChartFrame.GetYFromData(value.Value2);if(isHScreen){firstlinePoints.push({x:y,y:x});secondlinePoints.push({x:y2,y:x});}else{firstlinePoints.push({x:x,y:y});secondlinePoints.push({x:x,y:y2});}}if(firstlinePoints.length>1&&secondlinePoints.length>1){this.DrawBand(firstlinePoints,secondlinePoints);}}};this.ClipTop=function(aryFrist){var isHScreen=this.ChartFrame.IsHScreen;this.Canvas.beginPath();for(var i=0;i<aryFrist.length;++i){if(i==0)this.Canvas.moveTo(aryFrist[i].x,aryFrist[i].y);else this.Canvas.lineTo(aryFrist[i].x,aryFrist[i].y);}var ptStart=aryFrist[0];var ptEnd=aryFrist[aryFrist.length-1];if(isHScreen){var xLeft=this.ChartBorder.GetRightEx();this.Canvas.lineTo(xLeft,ptEnd.y);this.Canvas.lineTo(xLeft,ptStart.y);}else{var yTop=this.ChartBorder.GetTopEx();this.Canvas.lineTo(ptEnd.x,yTop);this.Canvas.lineTo(ptStart.x,yTop);}this.Canvas.closePath();this.Canvas.clip();};this.ClipBottom=function(aryFrist){var isHScreen=this.ChartFrame.IsHScreen;this.Canvas.beginPath();for(var i=0;i<aryFrist.length;++i){if(i==0)this.Canvas.moveTo(aryFrist[i].x,aryFrist[i].y);else this.Canvas.lineTo(aryFrist[i].x,aryFrist[i].y);}var ptStart=aryFrist[0];var ptEnd=aryFrist[aryFrist.length-1];if(isHScreen){var xLeft=this.ChartBorder.GetLeftEx();this.Canvas.lineTo(xLeft,ptEnd.y);this.Canvas.lineTo(xLeft,ptStart.y);}else{var yBottom=this.ChartBorder.GetBottomEx();this.Canvas.lineTo(ptEnd.x,yBottom);this.Canvas.lineTo(ptStart.x,yBottom);}this.Canvas.closePath();//this.Canvas.fillStyle = "rgb(255,0,0)";
4177
4177
  //this.Canvas.fill();
4178
4178
  this.Canvas.clip();};this.DrawArea=function(aryFrist,arySecond,clrArea){this.Canvas.beginPath();for(var i=0;i<aryFrist.length;++i){if(i==0)this.Canvas.moveTo(aryFrist[i].x,aryFrist[i].y);else this.Canvas.lineTo(aryFrist[i].x,aryFrist[i].y);}for(var i=arySecond.length-1;i>=0;--i){this.Canvas.lineTo(arySecond[i].x,arySecond[i].y);}this.Canvas.closePath();this.Canvas.fillStyle=clrArea;this.Canvas.fill();};this.DrawBand=function(aryFrist,arySecond){if(this.FirstColor){this.Canvas.save();this.ClipTop(aryFrist);this.DrawArea(aryFrist,arySecond,this.FirstColor);this.Canvas.restore();}if(this.SecondColor){this.Canvas.save();this.ClipBottom(aryFrist);this.DrawArea(aryFrist,arySecond,this.SecondColor);this.Canvas.restore();}};this.GetMaxMin=function(){var xPointCount=this.ChartFrame.XPointCount;var range={};range.Min=null;range.Max=null;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var value=this.Data.Data[i];if(value==null||value.Value==null||value.Value2==null)continue;var maxData=value.Value>value.Value2?value.Value:value.Value2;var minData=value.Value<value.Value2?value.Value:value.Value2;if(range.Max==null)range.Max=maxData;else if(range.Max<maxData)range.Max=maxData;if(range.Min==null)range.Min=minData;else if(range.Min>minData)range.Min=minData;}return range;};}// 线段围成的面积图 支持横屏
4179
4179
  function ChartLineArea(){this.newMethod=IChartPainting;//派生
@@ -13028,7 +13028,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
13028
13028
  this.ExecuteScript(item,data);}this.Status=0;}};this.OnExecuteFinish=function(data,indexInfo,jsExectute,jobInfo){var message={Data:data,IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.FINISH_EXECUTE_SCRIPT,JobInfo:jobInfo};postMessage(message);};this.OnExecuteError=function(error,indexInfo,jobData){var message={IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.ERROR_EXECUTE_SCRIPT,Error:error};postMessage(message);};}/********************************************************************************
13029
13029
  * 版本信息输出
13030
13030
  *
13031
- */var HQCHART_VERSION="1.1.12821";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();//把给外界调用的方法暴露出来
13031
+ */var HQCHART_VERSION="1.1.12826";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();//把给外界调用的方法暴露出来
13032
13032
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
13033
13033
  // BaseIndex:BaseIndex,
13034
13034
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.12822",
3
+ "version": "1.1.12827",
4
4
  "description": "stock chart",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -3607,7 +3607,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
3607
3607
  this.DocOnMouseMove=function(e)
3608
3608
  {
3609
3609
  //加载数据中,禁用鼠标事件
3610
- if (this.ChartSplashPaint && this.IsEnableSplash == true) return;
3610
+ if (this.ChartSplashPaint && this.ChartSplashPaint.IsEnableSplash) return;
3611
3611
 
3612
3612
  var drag=this.MouseDrag;
3613
3613
  if (!drag) return;
@@ -3835,7 +3835,11 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
3835
3835
  }
3836
3836
  else if (!bUpDownY)
3837
3837
  {
3838
- if (this.DragDownloadData) this.DragDownloadData();
3838
+ if (this.DragDownloadData)
3839
+ {
3840
+ this.DragDownloadData();
3841
+ if (this.ChartSplashPaint && this.ChartSplashPaint.IsEnableSplash) return;
3842
+ }
3839
3843
  }
3840
3844
  }
3841
3845
  //this.UIElement.style.cursor=cursorStatus;
@@ -29362,10 +29366,22 @@ function ChartPartLine()
29362
29366
  var bHScreen=(this.ChartFrame.IsHScreen===true);
29363
29367
  var dataWidth=this.ChartFrame.DataWidth;
29364
29368
  var distanceWidth=this.ChartFrame.DistanceWidth;
29365
- var chartright=this.ChartBorder.GetRight();
29366
- if (bHScreen) chartright=this.ChartBorder.GetBottom();
29369
+ if (bHScreen)
29370
+ {
29371
+ var border=this.ChartBorder.GetHScreenBorder();
29372
+ var chartright=border.BottomEx;
29373
+ var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
29374
+ }
29375
+ else
29376
+ {
29377
+ var border=this.ChartBorder.GetBorder();
29378
+ var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
29379
+ var chartright=border.RightEx;
29380
+ }
29381
+
29367
29382
  var xPointCount=this.ChartFrame.XPointCount;
29368
-
29383
+ var isMinute=this.IsMinuteFrame();
29384
+
29369
29385
  this.Canvas.save();
29370
29386
  if (this.LineWidth>0) this.Canvas.lineWidth=this.LineWidth * GetDevicePixelRatio();
29371
29387
  var bFirstPoint=true;
@@ -29373,7 +29389,7 @@ function ChartPartLine()
29373
29389
  var lastColor;
29374
29390
  var lastPoint={X:null,Y:null};
29375
29391
  var isPerNull=false;
29376
- for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
29392
+ for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
29377
29393
  {
29378
29394
  var item=this.Data.Data[i];
29379
29395
  if (item==null || item.Value==null)
@@ -29384,9 +29400,20 @@ function ChartPartLine()
29384
29400
  continue;
29385
29401
  }
29386
29402
 
29403
+ if (isMinute)
29404
+ {
29405
+ var x=this.ChartFrame.GetXFromIndex(j);
29406
+ }
29407
+ else
29408
+ {
29409
+ var left=xOffset;
29410
+ var right=xOffset+dataWidth;
29411
+ if (right>chartright) break;
29412
+ var x=left+(right-left)/2;
29413
+ }
29414
+
29387
29415
  var value=item.Value;
29388
29416
  var color=item.RGB;
29389
- var x=this.ChartFrame.GetXFromIndex(j);
29390
29417
  var y=this.ChartFrame.GetYFromData(value);
29391
29418
 
29392
29419
  if (x>chartright) break;
@@ -33777,6 +33804,7 @@ function ChartBand()
33777
33804
  return;
33778
33805
  }
33779
33806
 
33807
+ var isMinute=this.IsMinuteFrame();
33780
33808
  var isHScreen=this.ChartFrame.IsHScreen;
33781
33809
  var dataWidth=this.ChartFrame.DataWidth;
33782
33810
  var distanceWidth=this.ChartFrame.DistanceWidth;
@@ -33795,7 +33823,18 @@ function ChartBand()
33795
33823
  {
33796
33824
  var value=this.Data.Data[i];
33797
33825
  if (value==null || value.Value==null || value.Value2 == null) break;
33798
- x=this.ChartFrame.GetXFromIndex(j);
33826
+
33827
+ if (isMinute)
33828
+ {
33829
+ x=this.ChartFrame.GetXFromIndex(j);
33830
+ }
33831
+ else
33832
+ {
33833
+ var left=xOffset;
33834
+ var right=xOffset+dataWidth;
33835
+ x=left+(right-left)/2;
33836
+ }
33837
+
33799
33838
  y=this.ChartFrame.GetYFromData(value.Value);
33800
33839
  y2 = this.ChartFrame.GetYFromData(value.Value2);
33801
33840
 
@@ -7774,7 +7774,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
7774
7774
  this.DocOnMouseMove=function(e)
7775
7775
  {
7776
7776
  //加载数据中,禁用鼠标事件
7777
- if (this.ChartSplashPaint && this.IsEnableSplash == true) return;
7777
+ if (this.ChartSplashPaint && this.ChartSplashPaint.IsEnableSplash) return;
7778
7778
 
7779
7779
  var drag=this.MouseDrag;
7780
7780
  if (!drag) return;
@@ -8002,7 +8002,11 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8002
8002
  }
8003
8003
  else if (!bUpDownY)
8004
8004
  {
8005
- if (this.DragDownloadData) this.DragDownloadData();
8005
+ if (this.DragDownloadData)
8006
+ {
8007
+ this.DragDownloadData();
8008
+ if (this.ChartSplashPaint && this.ChartSplashPaint.IsEnableSplash) return;
8009
+ }
8006
8010
  }
8007
8011
  }
8008
8012
  //this.UIElement.style.cursor=cursorStatus;
@@ -33529,10 +33533,22 @@ function ChartPartLine()
33529
33533
  var bHScreen=(this.ChartFrame.IsHScreen===true);
33530
33534
  var dataWidth=this.ChartFrame.DataWidth;
33531
33535
  var distanceWidth=this.ChartFrame.DistanceWidth;
33532
- var chartright=this.ChartBorder.GetRight();
33533
- if (bHScreen) chartright=this.ChartBorder.GetBottom();
33536
+ if (bHScreen)
33537
+ {
33538
+ var border=this.ChartBorder.GetHScreenBorder();
33539
+ var chartright=border.BottomEx;
33540
+ var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
33541
+ }
33542
+ else
33543
+ {
33544
+ var border=this.ChartBorder.GetBorder();
33545
+ var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
33546
+ var chartright=border.RightEx;
33547
+ }
33548
+
33534
33549
  var xPointCount=this.ChartFrame.XPointCount;
33535
-
33550
+ var isMinute=this.IsMinuteFrame();
33551
+
33536
33552
  this.Canvas.save();
33537
33553
  if (this.LineWidth>0) this.Canvas.lineWidth=this.LineWidth * GetDevicePixelRatio();
33538
33554
  var bFirstPoint=true;
@@ -33540,7 +33556,7 @@ function ChartPartLine()
33540
33556
  var lastColor;
33541
33557
  var lastPoint={X:null,Y:null};
33542
33558
  var isPerNull=false;
33543
- for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
33559
+ for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
33544
33560
  {
33545
33561
  var item=this.Data.Data[i];
33546
33562
  if (item==null || item.Value==null)
@@ -33551,9 +33567,20 @@ function ChartPartLine()
33551
33567
  continue;
33552
33568
  }
33553
33569
 
33570
+ if (isMinute)
33571
+ {
33572
+ var x=this.ChartFrame.GetXFromIndex(j);
33573
+ }
33574
+ else
33575
+ {
33576
+ var left=xOffset;
33577
+ var right=xOffset+dataWidth;
33578
+ if (right>chartright) break;
33579
+ var x=left+(right-left)/2;
33580
+ }
33581
+
33554
33582
  var value=item.Value;
33555
33583
  var color=item.RGB;
33556
- var x=this.ChartFrame.GetXFromIndex(j);
33557
33584
  var y=this.ChartFrame.GetYFromData(value);
33558
33585
 
33559
33586
  if (x>chartright) break;
@@ -37944,6 +37971,7 @@ function ChartBand()
37944
37971
  return;
37945
37972
  }
37946
37973
 
37974
+ var isMinute=this.IsMinuteFrame();
37947
37975
  var isHScreen=this.ChartFrame.IsHScreen;
37948
37976
  var dataWidth=this.ChartFrame.DataWidth;
37949
37977
  var distanceWidth=this.ChartFrame.DistanceWidth;
@@ -37962,7 +37990,18 @@ function ChartBand()
37962
37990
  {
37963
37991
  var value=this.Data.Data[i];
37964
37992
  if (value==null || value.Value==null || value.Value2 == null) break;
37965
- x=this.ChartFrame.GetXFromIndex(j);
37993
+
37994
+ if (isMinute)
37995
+ {
37996
+ x=this.ChartFrame.GetXFromIndex(j);
37997
+ }
37998
+ else
37999
+ {
38000
+ var left=xOffset;
38001
+ var right=xOffset+dataWidth;
38002
+ x=left+(right-left)/2;
38003
+ }
38004
+
37966
38005
  y=this.ChartFrame.GetYFromData(value.Value);
37967
38006
  y2 = this.ChartFrame.GetYFromData(value.Value2);
37968
38007
 
@@ -131754,7 +131793,7 @@ function ScrollBarBGChart()
131754
131793
 
131755
131794
 
131756
131795
 
131757
- var HQCHART_VERSION="1.1.12821";
131796
+ var HQCHART_VERSION="1.1.12826";
131758
131797
 
131759
131798
  function PrintHQChartVersion()
131760
131799
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.12821";
8
+ var HQCHART_VERSION="1.1.12826";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -7818,7 +7818,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
7818
7818
  this.DocOnMouseMove=function(e)
7819
7819
  {
7820
7820
  //加载数据中,禁用鼠标事件
7821
- if (this.ChartSplashPaint && this.IsEnableSplash == true) return;
7821
+ if (this.ChartSplashPaint && this.ChartSplashPaint.IsEnableSplash) return;
7822
7822
 
7823
7823
  var drag=this.MouseDrag;
7824
7824
  if (!drag) return;
@@ -8046,7 +8046,11 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8046
8046
  }
8047
8047
  else if (!bUpDownY)
8048
8048
  {
8049
- if (this.DragDownloadData) this.DragDownloadData();
8049
+ if (this.DragDownloadData)
8050
+ {
8051
+ this.DragDownloadData();
8052
+ if (this.ChartSplashPaint && this.ChartSplashPaint.IsEnableSplash) return;
8053
+ }
8050
8054
  }
8051
8055
  }
8052
8056
  //this.UIElement.style.cursor=cursorStatus;
@@ -33573,10 +33577,22 @@ function ChartPartLine()
33573
33577
  var bHScreen=(this.ChartFrame.IsHScreen===true);
33574
33578
  var dataWidth=this.ChartFrame.DataWidth;
33575
33579
  var distanceWidth=this.ChartFrame.DistanceWidth;
33576
- var chartright=this.ChartBorder.GetRight();
33577
- if (bHScreen) chartright=this.ChartBorder.GetBottom();
33580
+ if (bHScreen)
33581
+ {
33582
+ var border=this.ChartBorder.GetHScreenBorder();
33583
+ var chartright=border.BottomEx;
33584
+ var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
33585
+ }
33586
+ else
33587
+ {
33588
+ var border=this.ChartBorder.GetBorder();
33589
+ var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
33590
+ var chartright=border.RightEx;
33591
+ }
33592
+
33578
33593
  var xPointCount=this.ChartFrame.XPointCount;
33579
-
33594
+ var isMinute=this.IsMinuteFrame();
33595
+
33580
33596
  this.Canvas.save();
33581
33597
  if (this.LineWidth>0) this.Canvas.lineWidth=this.LineWidth * GetDevicePixelRatio();
33582
33598
  var bFirstPoint=true;
@@ -33584,7 +33600,7 @@ function ChartPartLine()
33584
33600
  var lastColor;
33585
33601
  var lastPoint={X:null,Y:null};
33586
33602
  var isPerNull=false;
33587
- for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
33603
+ for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
33588
33604
  {
33589
33605
  var item=this.Data.Data[i];
33590
33606
  if (item==null || item.Value==null)
@@ -33595,9 +33611,20 @@ function ChartPartLine()
33595
33611
  continue;
33596
33612
  }
33597
33613
 
33614
+ if (isMinute)
33615
+ {
33616
+ var x=this.ChartFrame.GetXFromIndex(j);
33617
+ }
33618
+ else
33619
+ {
33620
+ var left=xOffset;
33621
+ var right=xOffset+dataWidth;
33622
+ if (right>chartright) break;
33623
+ var x=left+(right-left)/2;
33624
+ }
33625
+
33598
33626
  var value=item.Value;
33599
33627
  var color=item.RGB;
33600
- var x=this.ChartFrame.GetXFromIndex(j);
33601
33628
  var y=this.ChartFrame.GetYFromData(value);
33602
33629
 
33603
33630
  if (x>chartright) break;
@@ -37988,6 +38015,7 @@ function ChartBand()
37988
38015
  return;
37989
38016
  }
37990
38017
 
38018
+ var isMinute=this.IsMinuteFrame();
37991
38019
  var isHScreen=this.ChartFrame.IsHScreen;
37992
38020
  var dataWidth=this.ChartFrame.DataWidth;
37993
38021
  var distanceWidth=this.ChartFrame.DistanceWidth;
@@ -38006,7 +38034,18 @@ function ChartBand()
38006
38034
  {
38007
38035
  var value=this.Data.Data[i];
38008
38036
  if (value==null || value.Value==null || value.Value2 == null) break;
38009
- x=this.ChartFrame.GetXFromIndex(j);
38037
+
38038
+ if (isMinute)
38039
+ {
38040
+ x=this.ChartFrame.GetXFromIndex(j);
38041
+ }
38042
+ else
38043
+ {
38044
+ var left=xOffset;
38045
+ var right=xOffset+dataWidth;
38046
+ x=left+(right-left)/2;
38047
+ }
38048
+
38010
38049
  y=this.ChartFrame.GetYFromData(value.Value);
38011
38050
  y2 = this.ChartFrame.GetYFromData(value.Value2);
38012
38051
 
@@ -131912,7 +131951,7 @@ function HQChartScriptWorker()
131912
131951
 
131913
131952
 
131914
131953
 
131915
- var HQCHART_VERSION="1.1.12821";
131954
+ var HQCHART_VERSION="1.1.12826";
131916
131955
 
131917
131956
  function PrintHQChartVersion()
131918
131957
  {