hqchart 1.1.12585 → 1.1.12590

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.
@@ -2458,7 +2458,7 @@ lastDataIndex=this.Data.Data.length-1;if(rightSpaceCount>this.RightSpaceCount)ri
2458
2458
  if(xPointCount>rightDataIndex){xPointCount=rightDataIndex;this.XPointCount=xPointCount;this.Data.DataOffset=0;}else{var dataOffset=lastDataIndex-(xPointCount-rightSpaceCount)+1;this.XPointCount=xPointCount;this.Data.DataOffset=dataOffset;if(this.Data.DataOffset<0)this.Data.DataOffset=0;}}else if(xPointCount>=maxDataCount){//xPointCount=maxDataCount;
2459
2459
  //this.XPointCount=xPointCount;
2460
2460
  this.Data.DataOffset=0;this.XPointCount=xPointCount;isShowAll=true;JSConsole.Chart.Log('[KLineFrame::ZoomUp] Show all data. XPointCount='+xPointCount+' ZoomIndex='+this.ZoomIndex+' DataCount= '+dataCount);}else{var dataOffset=lastDataIndex-(xPointCount-rightSpaceCount)+1;if(cursorIndex.ZoomType==1)//以十字光标为中心左右放大
2461
- {var moveOffset=this.XPointCount-xPointCount+1;var leftOffset=parseInt(cursorIndex.Index/this.XPointCount*moveOffset);var rightOffset=moveOffset-leftOffset;var offset=this.Data.DataOffset+leftOffset;if(offset<dataCount)dataOffset=this.Data.DataOffset+leftOffset;}this.XPointCount=xPointCount;this.Data.DataOffset=dataOffset;if(this.Data.DataOffset<0)this.Data.DataOffset=0;JSConsole.Chart.Log('[KLineFrame::ZoomUp] calculate. XPointCount='+xPointCount+' ZoomIndex='+this.ZoomIndex+' DataCount= '+dataCount+' DataOffset='+this.Data.DataOffset);}this.DataWidth=ZOOM_SEED[this.ZoomIndex][0];this.DistanceWidth=ZOOM_SEED[this.ZoomIndex][1];if(!isShowAll){var width=this.GetFrameWidth()-g_JSChartResource.FrameMargin;this.TrimKLineDataWidth(width);}this.LastCalculateStatus.XPointCount=this.XPointCount;cursorIndex.Index=lastCursorIndex-this.Data.DataOffset;return true;};this.SetXShowCount=function(showCount){var index=-1;var width=this.GetFrameWidth()-g_JSChartResource.FrameMargin;for(var i=0;i<ZOOM_SEED.length;++i){var item=ZOOM_SEED[i];var dataWidth=item[0];var distanceWidth=item[1];var width=this.GetFrameWidth()-g_JSChartResource.FrameMargin-distanceWidth/2;var value=parseInt((width-distanceWidth/2)/(dataWidth+distanceWidth));if(value>=showCount){index=i;this.XPointCount=showCount;this.ZoomIndex=index;this.DataWidth=dataWidth;this.DistanceWidth=distanceWidth;if(dataWidth==1&&distanceWidth==0)this.DataWidth=width/this.XPointCount;this.LastCalculateStatus.XPointCount=this.XPointCount;this.LastCalculateStatus.Width=width;return;}}//太多了 就平均分了
2461
+ {var moveOffset=this.XPointCount-xPointCount+1;var leftOffset=parseInt(cursorIndex.Index/this.XPointCount*moveOffset);var rightOffset=moveOffset-leftOffset;var offset=this.Data.DataOffset+leftOffset;if(offset<dataCount)dataOffset=this.Data.DataOffset+leftOffset;}this.XPointCount=xPointCount;this.Data.DataOffset=dataOffset;if(this.Data.DataOffset<0)this.Data.DataOffset=0;JSConsole.Chart.Log('[KLineFrame::ZoomUp] calculate. XPointCount='+xPointCount+' ZoomIndex='+this.ZoomIndex+' DataCount= '+dataCount+' DataOffset='+this.Data.DataOffset);}this.DataWidth=ZOOM_SEED[this.ZoomIndex][0];this.DistanceWidth=ZOOM_SEED[this.ZoomIndex][1];if(!isShowAll){var width=this.GetFrameWidth()-g_JSChartResource.FrameMargin;this.TrimKLineDataWidth(width);}this.LastCalculateStatus.XPointCount=this.XPointCount;cursorIndex.Index=lastCursorIndex-this.Data.DataOffset;return true;};this.SetXShowCount=function(showCount){var index=-1;var width=this.GetFrameWidth()-g_JSChartResource.FrameMargin;for(var i=0;i<ZOOM_SEED.length;++i){var item=ZOOM_SEED[i];var dataWidth=item[0];var distanceWidth=item[1];var width=this.GetFrameWidth()-g_JSChartResource.FrameMargin-distanceWidth/2;var value=parseInt((width-distanceWidth/2)/(dataWidth+distanceWidth));if(value>=showCount){index=i;this.XPointCount=showCount;this.ZoomIndex=index;this.DataWidth=dataWidth;this.DistanceWidth=distanceWidth;if(dataWidth<=1&&distanceWidth==0)this.DataWidth=width/this.XPointCount;this.LastCalculateStatus.XPointCount=this.XPointCount;this.LastCalculateStatus.Width=width;return;}}//太多了 就平均分了
2462
2462
  this.XPointCount=showCount;this.ZoomIndex=ZOOM_SEED.length-1;this.DataWidth=width/this.XPointCount;this.DistanceWidth=0;this.LastCalculateStatus.XPointCount=this.XPointCount;this.LastCalculateStatus.Width=width;};this.XCoordinateZoom=function(isMoveLeft){var oldXPointCount=this.XPointCount;if(isMoveLeft)//放大 右边固定
2463
2463
  {if(this.ZoomIndex<=0)return false;if(this.Data.DataOffset<0)return false;var zoomIndex=this.ZoomIndex-1;var xPointCount=this.CalculateCount(zoomIndex);var dataCount=this.Data.Data.length;var moveOffset=oldXPointCount-xPointCount;if(moveOffset<=0)return false;this.Data.DataOffset+=moveOffset;if(this.Data.DataOffset>dataCount)this.Data.DataOffset=0;}else//缩小
2464
2464
  {if(this.ZoomIndex+1>=ZOOM_SEED.length)return false;if(this.Data.DataOffset<0)return false;var zoomIndex=this.ZoomIndex+1;var xPointCount=this.CalculateCount(zoomIndex);var moveOffset=xPointCount-oldXPointCount;this.Data.DataOffset-=moveOffset;if(this.Data.DataOffset<0)this.Data.DataOffset=0;}//JSConsole.Chart.Log(`[KLineFrame::XCoordinateZoom] old (XPointCount=${oldXPointCount} ZoomIndex=${this.ZoomIndex}) DataCount= ${this.Data.Data.length} `);
@@ -12624,7 +12624,7 @@ if(!IFrameSplitOperator.IsNumber(this.BorderLine)){this.Canvas.strokeStyle=this.
12624
12624
  {this.Canvas.moveTo(left,bottom);this.Canvas.lineTo(right,bottom);}if((this.BorderLine&4)>0)//左
12625
12625
  {this.Canvas.moveTo(left,top);this.Canvas.lineTo(left,bottom);}if((this.BorderLine&8)>0)//右
12626
12626
  {this.Canvas.moveTo(right,top);this.Canvas.lineTo(right,bottom);}this.Canvas.stroke();}};this.GetXFromIndex=function(index){var count=this.XPointCount;if(count==1){if(index==0)return this.ChartBorder.GetLeft();else return this.ChartBorder.GetRight();}else if(count<=0){return this.ChartBorder.GetLeft();}else if(index>=count){return this.ChartBorder.GetRight();}else{var offset=this.ChartBorder.GetLeft()+this.ChartBorder.GetWidth()*index/count;return offset;}};this.GetYFromData=function(value){if(value<=this.HorizontalMin)return this.ChartBorder.GetBottomEx();if(value>=this.HorizontalMax)return this.ChartBorder.GetTopEx();var height=this.ChartBorder.GetHeightEx()*(value-this.HorizontalMin)/(this.HorizontalMax-this.HorizontalMin);return this.ChartBorder.GetBottomEx()-height;};//X坐标转x轴数值
12627
- this.GetXData=function(x){if(x<=this.ChartBorder.GetLeft())return 0;if(x>=this.ChartBorder.GetRight())return this.XPointCount;return(x-this.ChartBorder.GetLeft())*(this.XPointCount*1.0/this.ChartBorder.GetWidth());};this.GetPreSetpWidth=function(){return this.XPointCount*1.0/this.ChartBorder.GetWidth();};this.DrawVertical=function(){if(this.ChartBorder.Bottom<=5)return;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return;var item=this.Data.Data[0];var preYear=parseInt(item.Date/10000);var preDay=item.Date%10000;this.Canvas.font=this.XSplitTextFont;this.Canvas.fillStyle=this.XSplitTextColor;this.Canvas.textBaseline="top";var yText=this.ChartBorder.GetBottom()+2;var top=this.ChartBorder.GetTop();var bottom=this.ChartBorder.GetBottom();var preXText=0;var isMinuteData=ChartData.IsMinutePeriod(this.Data.Period,true);if(isMinuteData){for(var i=0;i<this.Data.Data.length;++i){var item=this.Data.Data[i];var day=item.Date%10000;if(i==0){var text=IFrameSplitOperator.FormatDateString(item.Date,"MM-DD");var x=this.ChartBorder.GetLeft();this.Canvas.textAlign="left";this.Canvas.fillText(text,x,yText);var textWidth=this.Canvas.measureText(text).width+2;preXText=x+textWidth;preDay=day;continue;}if(day!=preDay){var text=IFrameSplitOperator.FormatDateString(item.Date,"MM-DD");var x=this.GetXFromIndex(i);var textWidth=this.Canvas.measureText(text).width+2;if(x-textWidth/2>preXText){this.Canvas.textAlign="center";this.Canvas.fillText(text,x,yText);preXText=x+textWidth/2;}x=ToFixedPoint(x);this.Canvas.strokeStyle=this.XSplitLineColor;this.Canvas.beginPath();this.Canvas.moveTo(x,top);this.Canvas.lineTo(x,bottom);this.Canvas.stroke();preDay=day;}}}else{for(var i=0;i<this.Data.Data.length;++i){var item=this.Data.Data[i];var year=parseInt(item.Date/10000);if(i==0){var text=''+year;var x=this.ChartBorder.GetLeft();var textWidth=this.Canvas.measureText(text).width+2;this.Canvas.textAlign="left";this.Canvas.fillText(text,x,yText);preXText=x+textWidth;preYear=year;continue;}if(year!=preYear){var text=''+year;var x=this.GetXFromIndex(i);var textWidth=this.Canvas.measureText(text).width+2;if(x-textWidth/2>preXText){this.Canvas.textAlign="center";this.Canvas.fillText(text,x,yText);preXText=x+textWidth/2;}x=ToFixedPoint(x);this.Canvas.strokeStyle=this.XSplitLineColor;this.Canvas.beginPath();this.Canvas.moveTo(x,top);this.Canvas.lineTo(x,bottom);this.Canvas.stroke();preYear=year;}}}};}/////////////////////////////////////////////////////////////////////////////////////////////////
12627
+ this.GetXData=function(x){if(x<=this.ChartBorder.GetLeft())return 0;if(x>=this.ChartBorder.GetRight())return this.XPointCount;return(x-this.ChartBorder.GetLeft())*(this.XPointCount*1.0/this.ChartBorder.GetWidth());};this.GetPreSetpWidth=function(){return this.XPointCount*1.0/this.ChartBorder.GetWidth();};this.DrawVertical=function(){if(this.ChartBorder.Bottom<=5)return;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return;var item=this.Data.Data[0];var preYear=parseInt(item.Date/10000);var preDay=item.Date%10000;this.Canvas.font=this.XSplitTextFont;this.Canvas.fillStyle=this.XSplitTextColor;this.Canvas.textBaseline="top";var yText=this.ChartBorder.GetBottom()+2;var top=this.ChartBorder.GetTop();var bottom=this.ChartBorder.GetBottom();var preXText=0;if(ChartData.IsMilliSecondPeriod(this.Data.Period)){preHour=null;for(var i=0;i<this.Data.Data.length;++i){var item=this.Data.Data[i];var day=item.Date%10000;var time=parseInt(item.Time/1000);var hour=parseInt(time/10000);if(i==0){var text=IFrameSplitOperator.FormatDateString(item.Date,"MM-DD");var x=this.ChartBorder.GetLeft();this.Canvas.textAlign="left";this.Canvas.fillText(text,x,yText);var textWidth=this.Canvas.measureText(text).width+2;preXText=x+textWidth;preDay=day;preHour=hour;continue;}if(hour!=preHour){var text=IFrameSplitOperator.FormatTimeString(item.Time,"HH:MM:SS.fff");var x=this.GetXFromIndex(i);var textWidth=this.Canvas.measureText(text).width+2;if(x-textWidth/2>preXText){this.Canvas.textAlign="center";this.Canvas.fillText(text,x,yText);preXText=x+textWidth/2;}x=ToFixedPoint(x);this.Canvas.strokeStyle=this.XSplitLineColor;this.Canvas.beginPath();this.Canvas.moveTo(x,top);this.Canvas.lineTo(x,bottom);this.Canvas.stroke();preHour=hour;}}}else if(ChartData.IsMinutePeriod(this.Data.Period,true)){for(var i=0;i<this.Data.Data.length;++i){var item=this.Data.Data[i];var day=item.Date%10000;if(i==0){var text=IFrameSplitOperator.FormatDateString(item.Date,"MM-DD");var x=this.ChartBorder.GetLeft();this.Canvas.textAlign="left";this.Canvas.fillText(text,x,yText);var textWidth=this.Canvas.measureText(text).width+2;preXText=x+textWidth;preDay=day;continue;}if(day!=preDay){var text=IFrameSplitOperator.FormatDateString(item.Date,"MM-DD");var x=this.GetXFromIndex(i);var textWidth=this.Canvas.measureText(text).width+2;if(x-textWidth/2>preXText){this.Canvas.textAlign="center";this.Canvas.fillText(text,x,yText);preXText=x+textWidth/2;}x=ToFixedPoint(x);this.Canvas.strokeStyle=this.XSplitLineColor;this.Canvas.beginPath();this.Canvas.moveTo(x,top);this.Canvas.lineTo(x,bottom);this.Canvas.stroke();preDay=day;}}}else{for(var i=0;i<this.Data.Data.length;++i){var item=this.Data.Data[i];var year=parseInt(item.Date/10000);if(i==0){var text=''+year;var x=this.ChartBorder.GetLeft();var textWidth=this.Canvas.measureText(text).width+2;this.Canvas.textAlign="left";this.Canvas.fillText(text,x,yText);preXText=x+textWidth;preYear=year;continue;}if(year!=preYear){var text=''+year;var x=this.GetXFromIndex(i);var textWidth=this.Canvas.measureText(text).width+2;if(x-textWidth/2>preXText){this.Canvas.textAlign="center";this.Canvas.fillText(text,x,yText);preXText=x+textWidth/2;}x=ToFixedPoint(x);this.Canvas.strokeStyle=this.XSplitLineColor;this.Canvas.beginPath();this.Canvas.moveTo(x,top);this.Canvas.lineTo(x,bottom);this.Canvas.stroke();preYear=year;}}}};}/////////////////////////////////////////////////////////////////////////////////////////////////
12628
12628
  // 滑块
12629
12629
  //
12630
12630
  /////////////////////////////////////////////////////////////////////////////////////////////////
@@ -12636,7 +12636,7 @@ this.ClassName='SliderChart';//类名
12636
12636
  this.OffsetData;this.Color=g_JSChartResource.ScrollBar.Slider.BarAreaColor;this.BarColor=g_JSChartResource.ScrollBar.Slider.BarColor;this.BarWidth=10;this.BarPadding=10;//上下留白
12637
12637
  this.DateFont=g_JSChartResource.ScrollBar.Slider.DateFont;this.DateColor=g_JSChartResource.ScrollBar.Slider.DateColor;this.AryRect=[];//[{ Rect:{Left, Top, Right:, Bottom:, Width, Height:}, Type:0中间 1=左 2=右 }]
12638
12638
  this.XStart;this.XEnd;this.SizeChange=true;this.DragMode=false;this.ReloadResource=function(resource){this.Color=g_JSChartResource.ScrollBar.Slider.BarAreaColor;this.BarColor=g_JSChartResource.ScrollBar.Slider.BarColor;this.DateFont=g_JSChartResource.ScrollBar.Slider.DateFont;this.DateColor=g_JSChartResource.ScrollBar.Slider.DateColor;};this.Draw=function(){this.AryRect=[];if(!this.OffsetData||!IFrameSplitOperator.IsPlusNumber(this.OffsetData.Count))return;if(!IFrameSplitOperator.IsNumber(this.OffsetData.Start)||!IFrameSplitOperator.IsNumber(this.OffsetData.End))return;var top=this.ChartBorder.GetTop();var bottom=this.ChartBorder.GetBottom();var startData,endData;if(this.DragMode){var xStart=this.XStart;var xEnd=this.XEnd;var startIndex=this.ChartFrame.GetXData(xStart);var endIndx=this.ChartFrame.GetXData(xEnd);startIndex=parseInt(startIndex);endIndx=parseInt(endIndx);startData={Data:this.Data.Data[this.OffsetData.Start],X:xStart,Type:startIndex<endIndx?0:1};endData={Data:this.Data.Data[this.OffsetData.End],X:xEnd,Type:endIndx>startIndex?1:0};}else{var start=this.OffsetData.Start,end=this.OffsetData.End;var xStart=this.ChartFrame.GetXFromIndex(start);var xEnd=this.ChartFrame.GetXFromIndex(end);this.XStart=xStart;this.XEnd=xEnd;startData={Data:this.Data.Data[this.OffsetData.Start],X:xStart,Type:xStart<xEnd?0:1};endData={Data:this.Data.Data[this.OffsetData.End],X:xEnd,Type:xEnd>xStart?1:0};}this.Canvas.fillStyle=this.Color;var rtBar={Left:Math.min(xStart,xEnd),Top:top,Width:Math.abs(xEnd-xStart),Height:bottom-top};rtBar.Right=rtBar.Left+rtBar.Width;rtBar.Bottom=rtBar.Top+rtBar.Height;this.Canvas.fillRect(rtBar.Left,rtBar.Top,rtBar.Width,rtBar.Height);this.AryRect.push({Rect:rtBar,Type:0});//左右拖拽块
12639
- var pixelRatio=GetDevicePixelRatio();var barWidth=this.BarWidth*pixelRatio;var barHeight=bottom-top-this.BarPadding*2*pixelRatio;var xBar=xStart-this.BarWidth/2;var yBar=top+this.BarPadding*pixelRatio;this.Canvas.fillStyle=this.BarColor;var rtBar={Left:xBar,Top:yBar,Width:barWidth,Height:barHeight};rtBar.Right=rtBar.Left+rtBar.Width;rtBar.Bottom=rtBar.Top+rtBar.Height;this.Canvas.fillRect(rtBar.Left,rtBar.Top,rtBar.Width,rtBar.Height);this.AryRect.push({Rect:rtBar,Type:1});var xBar=xEnd-this.BarWidth/2;var rtBar={Left:xBar,Top:yBar,Width:barWidth,Height:barHeight};rtBar.Right=rtBar.Left+rtBar.Width;rtBar.Bottom=rtBar.Top+rtBar.Height;this.Canvas.fillRect(rtBar.Left,rtBar.Top,rtBar.Width,rtBar.Height);this.AryRect.push({Rect:rtBar,Type:2});this.DrawDateTime(startData);this.DrawDateTime(endData);};this.DrawDateTime=function(data){if(!data||!data.Data)return;var text=IFrameSplitOperator.FormatDateString(data.Data.Date);var top=this.ChartBorder.GetTop();var bottom=this.ChartBorder.GetBottom();var isMinuteData=ChartData.IsMinutePeriod(this.Data.Period,true);var timeText=null;if(isMinuteData)timeText=IFrameSplitOperator.FormatTimeString(data.Data.Time,"HH:MM");if(data.Type==0){this.Canvas.textAlign="right";var x=data.X-this.BarWidth/2;}else if(data.Type==1){this.Canvas.textAlign="left";var x=data.X+this.BarWidth/2;}this.Canvas.font=this.DateFont;var fontHeight=this.Canvas.measureText("擎").width;this.Canvas.textBaseline="middle";this.Canvas.fillStyle=this.DateColor;var yText=top+(bottom-top)/2;this.Canvas.fillText(text,x,yText);if(timeText){yText+=fontHeight;this.Canvas.fillText(timeText,x,yText);}};this.PtInChart=function(x,y){if(!IFrameSplitOperator.IsNonEmptyArray(this.AryRect))return null;for(var i=this.AryRect.length-1;i>=0;--i){var item=this.AryRect[i];var rt=item.Rect;if(x>=rt.Left&&x<=rt.Right&&y>=rt.Top&&y<=rt.Bottom){return{Data:item};}}return null;};}///////////////////////////////////////////////////////////////////////////////////////////////
12639
+ var pixelRatio=GetDevicePixelRatio();var barWidth=this.BarWidth*pixelRatio;var barHeight=bottom-top-this.BarPadding*2*pixelRatio;var xBar=xStart-this.BarWidth/2;var yBar=top+this.BarPadding*pixelRatio;this.Canvas.fillStyle=this.BarColor;var rtBar={Left:xBar,Top:yBar,Width:barWidth,Height:barHeight};rtBar.Right=rtBar.Left+rtBar.Width;rtBar.Bottom=rtBar.Top+rtBar.Height;this.Canvas.fillRect(rtBar.Left,rtBar.Top,rtBar.Width,rtBar.Height);this.AryRect.push({Rect:rtBar,Type:1});var xBar=xEnd-this.BarWidth/2;var rtBar={Left:xBar,Top:yBar,Width:barWidth,Height:barHeight};rtBar.Right=rtBar.Left+rtBar.Width;rtBar.Bottom=rtBar.Top+rtBar.Height;this.Canvas.fillRect(rtBar.Left,rtBar.Top,rtBar.Width,rtBar.Height);this.AryRect.push({Rect:rtBar,Type:2});this.DrawDateTime(startData);this.DrawDateTime(endData);};this.DrawDateTime=function(data){if(!data||!data.Data)return;var text=IFrameSplitOperator.FormatDateString(data.Data.Date);var top=this.ChartBorder.GetTop();var bottom=this.ChartBorder.GetBottom();var timeText=null;if(ChartData.IsMilliSecondPeriod(this.Data.Period)){var time=parseInt(data.Data.Time/1000);text=IFrameSplitOperator.FormatTimeString(time,"HH:MM:SS");}else if(ChartData.IsMinutePeriod(this.Data.Period,true)){timeText=IFrameSplitOperator.FormatTimeString(data.Data.Time,"HH:MM");}if(data.Type==0){this.Canvas.textAlign="right";var x=data.X-this.BarWidth/2;}else if(data.Type==1){this.Canvas.textAlign="left";var x=data.X+this.BarWidth/2;}this.Canvas.font=this.DateFont;var fontHeight=this.Canvas.measureText("擎").width;this.Canvas.textBaseline="middle";this.Canvas.fillStyle=this.DateColor;var yText=top+(bottom-top)/2;this.Canvas.fillText(text,x,yText);if(timeText){yText+=fontHeight;this.Canvas.fillText(timeText,x,yText);}};this.PtInChart=function(x,y){if(!IFrameSplitOperator.IsNonEmptyArray(this.AryRect))return null;for(var i=this.AryRect.length-1;i>=0;--i){var item=this.AryRect[i];var rt=item.Rect;if(x>=rt.Left&&x<=rt.Right&&y>=rt.Top&&y<=rt.Bottom){return{Data:item};}}return null;};}///////////////////////////////////////////////////////////////////////////////////////////////
12640
12640
  // 滚动条K线背景色
12641
12641
  //
12642
12642
  //
@@ -12662,7 +12662,7 @@ function HQChartScriptWorker(){this.Create=function(){var _this60=this;addEventL
12662
12662
  hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,Stock:{Symbol:message.Symbol},Request:{MaxDataCount:500,MaxMinuteDayCount:5},Period:message.Period,Right:message.Right,Data:hisData};if(IFrameSplitOperator.IsNumber(message.HQDataType))stockObj.HQDataType=message.HQDataType;indexConsole.ExecuteScript(stockObj);};this.OnRecvMessage=function(message){var data=message.data;if(!data)return;if(data.ID==JSCHART_WORKER_MESSAGE_ID.EXECUTE_SCRIPT){if(!IFrameSplitOperator.IsNonEmptyArray(data.AryIndex))return;for(var i=0;i<data.AryIndex.length;++i){var item=data.AryIndex[i];this.ExecuteScript(item,data);}}};this.OnExecuteFinish=function(data,indexInfo,jsExectute){var message={Data:data,IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.FINISH_EXECUTE_SCRIPT};postMessage(message);};this.OnExecuteError=function(error,indexInfo){var message={IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.ERROR_EXECUTE_SCRIPT,Error:error};postMessage(message);};}/********************************************************************************
12663
12663
  * 版本信息输出
12664
12664
  *
12665
- */var HQCHART_VERSION="1.1.12584";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();//把给外界调用的方法暴露出来
12665
+ */var HQCHART_VERSION="1.1.12589";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();//把给外界调用的方法暴露出来
12666
12666
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
12667
12667
  // BaseIndex:BaseIndex,
12668
12668
  // 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.12585",
5
+ "version": "1.1.12590",
6
6
  "main": "lib/main.js",
7
7
  "private": false,
8
8
  "license": "Apache License 2.0",
@@ -14103,7 +14103,6 @@ function KLineFrame()
14103
14103
  var dataWidth=item[0];
14104
14104
  var distanceWidth=item[1];
14105
14105
  var width=this.GetFrameWidth()-g_JSChartResource.FrameMargin-distanceWidth/2;
14106
-
14107
14106
  var value=parseInt((width-distanceWidth/2)/(dataWidth + distanceWidth));
14108
14107
  if (value>=showCount)
14109
14108
  {
@@ -14112,7 +14111,7 @@ function KLineFrame()
14112
14111
  this.ZoomIndex=index;
14113
14112
  this.DataWidth=dataWidth;
14114
14113
  this.DistanceWidth=distanceWidth;
14115
- if (dataWidth==1 && distanceWidth==0)
14114
+ if (dataWidth<=1 && distanceWidth==0)
14116
14115
  this.DataWidth=width/this.XPointCount;
14117
14116
  this.LastCalculateStatus.XPointCount=this.XPointCount;
14118
14117
  this.LastCalculateStatus.Width=width;
@@ -942,8 +942,53 @@ function JSScrollBarFrame()
942
942
  var top=this.ChartBorder.GetTop();
943
943
  var bottom=this.ChartBorder.GetBottom();
944
944
  var preXText=0;
945
- var isMinuteData=ChartData.IsMinutePeriod(this.Data.Period,true);
946
- if (isMinuteData)
945
+
946
+ if (ChartData.IsMilliSecondPeriod(this.Data.Period))
947
+ {
948
+ preHour=null;
949
+ for(var i=0;i<this.Data.Data.length;++i)
950
+ {
951
+ var item=this.Data.Data[i];
952
+ var day=item.Date%10000;
953
+ var time=parseInt(item.Time/1000);
954
+ var hour=parseInt(time/10000);
955
+ if (i==0)
956
+ {
957
+ var text=IFrameSplitOperator.FormatDateString(item.Date, "MM-DD");
958
+ var x=this.ChartBorder.GetLeft();
959
+ this.Canvas.textAlign="left";
960
+ this.Canvas.fillText(text,x,yText);
961
+ var textWidth=this.Canvas.measureText(text).width+2;
962
+ preXText=x+textWidth;
963
+ preDay=day;
964
+ preHour=hour;
965
+ continue;
966
+ }
967
+
968
+ if (hour!=preHour)
969
+ {
970
+ var text=IFrameSplitOperator.FormatTimeString(item.Time, "HH:MM:SS.fff");
971
+ var x=this.GetXFromIndex(i);
972
+ var textWidth=this.Canvas.measureText(text).width+2;
973
+ if (x-textWidth/2>preXText)
974
+ {
975
+ this.Canvas.textAlign="center";
976
+ this.Canvas.fillText(text,x,yText);
977
+ preXText=x+textWidth/2;
978
+ }
979
+
980
+ x=ToFixedPoint(x);
981
+ this.Canvas.strokeStyle=this.XSplitLineColor;
982
+ this.Canvas.beginPath();
983
+ this.Canvas.moveTo(x,top);
984
+ this.Canvas.lineTo(x,bottom);
985
+ this.Canvas.stroke();
986
+
987
+ preHour=hour;
988
+ }
989
+ }
990
+ }
991
+ else if (ChartData.IsMinutePeriod(this.Data.Period,true))
947
992
  {
948
993
  for(var i=0;i<this.Data.Data.length;++i)
949
994
  {
@@ -1140,9 +1185,17 @@ function SliderChart()
1140
1185
  var text=IFrameSplitOperator.FormatDateString(data.Data.Date);
1141
1186
  var top=this.ChartBorder.GetTop();
1142
1187
  var bottom=this.ChartBorder.GetBottom();
1143
- var isMinuteData=ChartData.IsMinutePeriod(this.Data.Period, true);
1144
1188
  var timeText=null;
1145
- if (isMinuteData) timeText=IFrameSplitOperator.FormatTimeString(data.Data.Time,"HH:MM");
1189
+
1190
+ if (ChartData.IsMilliSecondPeriod(this.Data.Period))
1191
+ {
1192
+ var time=parseInt(data.Data.Time/1000);
1193
+ text=IFrameSplitOperator.FormatTimeString(time,"HH:MM:SS");
1194
+ }
1195
+ else if (ChartData.IsMinutePeriod(this.Data.Period, true))
1196
+ {
1197
+ timeText=IFrameSplitOperator.FormatTimeString(data.Data.Time,"HH:MM");
1198
+ }
1146
1199
 
1147
1200
  if (data.Type==0)
1148
1201
  {
@@ -18183,7 +18183,6 @@ function KLineFrame()
18183
18183
  var dataWidth=item[0];
18184
18184
  var distanceWidth=item[1];
18185
18185
  var width=this.GetFrameWidth()-g_JSChartResource.FrameMargin-distanceWidth/2;
18186
-
18187
18186
  var value=parseInt((width-distanceWidth/2)/(dataWidth + distanceWidth));
18188
18187
  if (value>=showCount)
18189
18188
  {
@@ -18192,7 +18191,7 @@ function KLineFrame()
18192
18191
  this.ZoomIndex=index;
18193
18192
  this.DataWidth=dataWidth;
18194
18193
  this.DistanceWidth=distanceWidth;
18195
- if (dataWidth==1 && distanceWidth==0)
18194
+ if (dataWidth<=1 && distanceWidth==0)
18196
18195
  this.DataWidth=width/this.XPointCount;
18197
18196
  this.LastCalculateStatus.XPointCount=this.XPointCount;
18198
18197
  this.LastCalculateStatus.Width=width;
@@ -129153,8 +129152,53 @@ function JSScrollBarFrame()
129153
129152
  var top=this.ChartBorder.GetTop();
129154
129153
  var bottom=this.ChartBorder.GetBottom();
129155
129154
  var preXText=0;
129156
- var isMinuteData=ChartData.IsMinutePeriod(this.Data.Period,true);
129157
- if (isMinuteData)
129155
+
129156
+ if (ChartData.IsMilliSecondPeriod(this.Data.Period))
129157
+ {
129158
+ preHour=null;
129159
+ for(var i=0;i<this.Data.Data.length;++i)
129160
+ {
129161
+ var item=this.Data.Data[i];
129162
+ var day=item.Date%10000;
129163
+ var time=parseInt(item.Time/1000);
129164
+ var hour=parseInt(time/10000);
129165
+ if (i==0)
129166
+ {
129167
+ var text=IFrameSplitOperator.FormatDateString(item.Date, "MM-DD");
129168
+ var x=this.ChartBorder.GetLeft();
129169
+ this.Canvas.textAlign="left";
129170
+ this.Canvas.fillText(text,x,yText);
129171
+ var textWidth=this.Canvas.measureText(text).width+2;
129172
+ preXText=x+textWidth;
129173
+ preDay=day;
129174
+ preHour=hour;
129175
+ continue;
129176
+ }
129177
+
129178
+ if (hour!=preHour)
129179
+ {
129180
+ var text=IFrameSplitOperator.FormatTimeString(item.Time, "HH:MM:SS.fff");
129181
+ var x=this.GetXFromIndex(i);
129182
+ var textWidth=this.Canvas.measureText(text).width+2;
129183
+ if (x-textWidth/2>preXText)
129184
+ {
129185
+ this.Canvas.textAlign="center";
129186
+ this.Canvas.fillText(text,x,yText);
129187
+ preXText=x+textWidth/2;
129188
+ }
129189
+
129190
+ x=ToFixedPoint(x);
129191
+ this.Canvas.strokeStyle=this.XSplitLineColor;
129192
+ this.Canvas.beginPath();
129193
+ this.Canvas.moveTo(x,top);
129194
+ this.Canvas.lineTo(x,bottom);
129195
+ this.Canvas.stroke();
129196
+
129197
+ preHour=hour;
129198
+ }
129199
+ }
129200
+ }
129201
+ else if (ChartData.IsMinutePeriod(this.Data.Period,true))
129158
129202
  {
129159
129203
  for(var i=0;i<this.Data.Data.length;++i)
129160
129204
  {
@@ -129351,9 +129395,17 @@ function SliderChart()
129351
129395
  var text=IFrameSplitOperator.FormatDateString(data.Data.Date);
129352
129396
  var top=this.ChartBorder.GetTop();
129353
129397
  var bottom=this.ChartBorder.GetBottom();
129354
- var isMinuteData=ChartData.IsMinutePeriod(this.Data.Period, true);
129355
129398
  var timeText=null;
129356
- if (isMinuteData) timeText=IFrameSplitOperator.FormatTimeString(data.Data.Time,"HH:MM");
129399
+
129400
+ if (ChartData.IsMilliSecondPeriod(this.Data.Period))
129401
+ {
129402
+ var time=parseInt(data.Data.Time/1000);
129403
+ text=IFrameSplitOperator.FormatTimeString(time,"HH:MM:SS");
129404
+ }
129405
+ else if (ChartData.IsMinutePeriod(this.Data.Period, true))
129406
+ {
129407
+ timeText=IFrameSplitOperator.FormatTimeString(data.Data.Time,"HH:MM");
129408
+ }
129357
129409
 
129358
129410
  if (data.Type==0)
129359
129411
  {
@@ -129508,7 +129560,7 @@ function ScrollBarBGChart()
129508
129560
 
129509
129561
 
129510
129562
 
129511
- var HQCHART_VERSION="1.1.12584";
129563
+ var HQCHART_VERSION="1.1.12589";
129512
129564
 
129513
129565
  function PrintHQChartVersion()
129514
129566
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.12584";
8
+ var HQCHART_VERSION="1.1.12589";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -18227,7 +18227,6 @@ function KLineFrame()
18227
18227
  var dataWidth=item[0];
18228
18228
  var distanceWidth=item[1];
18229
18229
  var width=this.GetFrameWidth()-g_JSChartResource.FrameMargin-distanceWidth/2;
18230
-
18231
18230
  var value=parseInt((width-distanceWidth/2)/(dataWidth + distanceWidth));
18232
18231
  if (value>=showCount)
18233
18232
  {
@@ -18236,7 +18235,7 @@ function KLineFrame()
18236
18235
  this.ZoomIndex=index;
18237
18236
  this.DataWidth=dataWidth;
18238
18237
  this.DistanceWidth=distanceWidth;
18239
- if (dataWidth==1 && distanceWidth==0)
18238
+ if (dataWidth<=1 && distanceWidth==0)
18240
18239
  this.DataWidth=width/this.XPointCount;
18241
18240
  this.LastCalculateStatus.XPointCount=this.XPointCount;
18242
18241
  this.LastCalculateStatus.Width=width;
@@ -129197,8 +129196,53 @@ function JSScrollBarFrame()
129197
129196
  var top=this.ChartBorder.GetTop();
129198
129197
  var bottom=this.ChartBorder.GetBottom();
129199
129198
  var preXText=0;
129200
- var isMinuteData=ChartData.IsMinutePeriod(this.Data.Period,true);
129201
- if (isMinuteData)
129199
+
129200
+ if (ChartData.IsMilliSecondPeriod(this.Data.Period))
129201
+ {
129202
+ preHour=null;
129203
+ for(var i=0;i<this.Data.Data.length;++i)
129204
+ {
129205
+ var item=this.Data.Data[i];
129206
+ var day=item.Date%10000;
129207
+ var time=parseInt(item.Time/1000);
129208
+ var hour=parseInt(time/10000);
129209
+ if (i==0)
129210
+ {
129211
+ var text=IFrameSplitOperator.FormatDateString(item.Date, "MM-DD");
129212
+ var x=this.ChartBorder.GetLeft();
129213
+ this.Canvas.textAlign="left";
129214
+ this.Canvas.fillText(text,x,yText);
129215
+ var textWidth=this.Canvas.measureText(text).width+2;
129216
+ preXText=x+textWidth;
129217
+ preDay=day;
129218
+ preHour=hour;
129219
+ continue;
129220
+ }
129221
+
129222
+ if (hour!=preHour)
129223
+ {
129224
+ var text=IFrameSplitOperator.FormatTimeString(item.Time, "HH:MM:SS.fff");
129225
+ var x=this.GetXFromIndex(i);
129226
+ var textWidth=this.Canvas.measureText(text).width+2;
129227
+ if (x-textWidth/2>preXText)
129228
+ {
129229
+ this.Canvas.textAlign="center";
129230
+ this.Canvas.fillText(text,x,yText);
129231
+ preXText=x+textWidth/2;
129232
+ }
129233
+
129234
+ x=ToFixedPoint(x);
129235
+ this.Canvas.strokeStyle=this.XSplitLineColor;
129236
+ this.Canvas.beginPath();
129237
+ this.Canvas.moveTo(x,top);
129238
+ this.Canvas.lineTo(x,bottom);
129239
+ this.Canvas.stroke();
129240
+
129241
+ preHour=hour;
129242
+ }
129243
+ }
129244
+ }
129245
+ else if (ChartData.IsMinutePeriod(this.Data.Period,true))
129202
129246
  {
129203
129247
  for(var i=0;i<this.Data.Data.length;++i)
129204
129248
  {
@@ -129395,9 +129439,17 @@ function SliderChart()
129395
129439
  var text=IFrameSplitOperator.FormatDateString(data.Data.Date);
129396
129440
  var top=this.ChartBorder.GetTop();
129397
129441
  var bottom=this.ChartBorder.GetBottom();
129398
- var isMinuteData=ChartData.IsMinutePeriod(this.Data.Period, true);
129399
129442
  var timeText=null;
129400
- if (isMinuteData) timeText=IFrameSplitOperator.FormatTimeString(data.Data.Time,"HH:MM");
129443
+
129444
+ if (ChartData.IsMilliSecondPeriod(this.Data.Period))
129445
+ {
129446
+ var time=parseInt(data.Data.Time/1000);
129447
+ text=IFrameSplitOperator.FormatTimeString(time,"HH:MM:SS");
129448
+ }
129449
+ else if (ChartData.IsMinutePeriod(this.Data.Period, true))
129450
+ {
129451
+ timeText=IFrameSplitOperator.FormatTimeString(data.Data.Time,"HH:MM");
129452
+ }
129401
129453
 
129402
129454
  if (data.Type==0)
129403
129455
  {
@@ -129661,7 +129713,7 @@ function HQChartScriptWorker()
129661
129713
 
129662
129714
 
129663
129715
 
129664
- var HQCHART_VERSION="1.1.12584";
129716
+ var HQCHART_VERSION="1.1.12589";
129665
129717
 
129666
129718
  function PrintHQChartVersion()
129667
129719
  {