hqchart 1.1.12557 → 1.1.12565

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.
@@ -1327,7 +1327,7 @@ for(var i=0;i<chart.Frame.SubFrame.length;++i){chart.Frame.SubFrame[i].Frame.Cha
1327
1327
  };this.SetChartBorder=function(chart,option){if(!option.Border)return;var item=option.Border;if(IFrameSplitOperator.IsNumber(option.Border.Left))chart.Frame.ChartBorder.Left=option.Border.Left;else option.Border.Left=chart.Frame.ChartBorder.Left;if(IFrameSplitOperator.IsNumber(option.Border.Right))chart.Frame.ChartBorder.Right=option.Border.Right;else option.Border.Right=chart.Frame.ChartBorder.Right;if(IFrameSplitOperator.IsNumber(option.Border.Top))chart.Frame.ChartBorder.Top=option.Border.Top;else option.Border.Top=chart.Frame.ChartBorder.Top;if(IFrameSplitOperator.IsNumber(option.Border.Bottom))chart.Frame.ChartBorder.Bottom=option.Border.Bottom;else option.Border.Bottom=chart.Frame.ChartBorder.Bottom;if(item.AutoLeft){chart.Frame.AutoLeftBorder={};if(IFrameSplitOperator.IsNumber(item.AutoLeft.Blank))chart.Frame.AutoLeftBorder.Blank=item.AutoLeft.Blank;if(IFrameSplitOperator.IsNumber(item.AutoLeft.MinWidth))chart.Frame.AutoLeftBorder.MinWidth=item.AutoLeft.MinWidth;}if(item.AutoRight){chart.Frame.AutoRightBorder={};if(IFrameSplitOperator.IsNumber(item.AutoRight.Blank))chart.Frame.AutoRightBorder.Blank=item.AutoRight.Blank;if(IFrameSplitOperator.IsNumber(item.AutoRight.MinWidth))chart.Frame.AutoRightBorder.MinWidth=item.AutoRight.MinWidth;}};this.SetEventCallback=function(chart,aryCallback){if(!chart)return;if(!IFrameSplitOperator.IsNonEmptyArray(aryCallback))return;for(var i=0;i<aryCallback.length;++i){var item=aryCallback[i];chart.AddEventCallback(item);}};//历史K线图
1328
1328
  this.CreateKLineChartContainer=function(option){var _this2=this;var chart=null;if(option.Type==="历史K线图横屏")chart=new KLineChartHScreenContainer(this.CanvasElement);else chart=new KLineChartContainer(this.CanvasElement,this.OffscreenCanvasElement,this.CacheCanvasElement);chart.GetExtraCanvas=function(name){return _this2.GetExtraCanvas(name);};var extraElement=this.GetExtraCanvas(JSChart.CorssCursorCanvasKey);if(extraElement)chart.SetCorssCursorElement(extraElement);if(option.EventCallback)this.SetEventCallback(chart,option.EventCallback);if(option.NetworkFilter)chart.NetworkFilter=option.NetworkFilter;//创建改参数div
1329
1329
  chart.ModifyIndexDialog=this.ModifyIndexDialog;chart.ChangeIndexDialog=this.ChangeIndexDialog;chart.MinuteDialog=this.MinuteDialog;//右键菜单
1330
- if(option.IsShowRightMenu==true)chart.RightMenu=new KLineRightMenu(this.DivElement);if(option.ScriptError)chart.ScriptErrorCallback=option.ScriptError;chart.SelectRectRightMenu=new KLineSelectRightMenu(this.DivElement);if(option.EnableScrollUpDown==true)chart.EnableScrollUpDown=option.EnableScrollUpDown;if(option.DisableMouse==true)chart.DisableMouse=option.DisableMouse;if(option.TouchMoveMinAngle)chart.TouchMoveMinAngle=option.TouchMoveMinAngle;if(option.EnableZoomUpDown)chart.EnableZoomUpDown=option.EnableZoomUpDown;if(IFrameSplitOperator.IsString(option.SplashTitle))chart.LoadDataSplashTitle=option.SplashTitle;if(IFrameSplitOperator.IsBool(option.EnableZoomIndexWindow))chart.EnableZoomIndexWindow=option.EnableZoomIndexWindow;if(IFrameSplitOperator.IsBool(option.IsDrawPictureXY))chart.IsDrawPictureXY=option.IsDrawPictureXY;if(IFrameSplitOperator.IsNumber(option.CtrlMoveStep))chart.CtrlMoveStep=option.CtrlMoveStep;if(IFrameSplitOperator.IsBool(option.EnableIndexChartDrag))chart.EnableIndexChartDrag=option.EnableIndexChartDrag;if(IFrameSplitOperator.IsBool(option.EnableVerifyRecvData))chart.EnableVerifyRecvData=option.EnableVerifyRecvData;if(option.EnableYDrag){var item=option.EnableYDrag;if(IFrameSplitOperator.IsBool(item.Left))chart.EnableYDrag.Left=item.Left;if(IFrameSplitOperator.IsBool(item.Right))chart.EnableYDrag.Right=item.Right;}if(option.KLine)//k线图的属性设置
1330
+ if(option.IsShowRightMenu==true)chart.RightMenu=new KLineRightMenu(this.DivElement);if(option.ScriptError)chart.ScriptErrorCallback=option.ScriptError;chart.SelectRectRightMenu=new KLineSelectRightMenu(this.DivElement);if(option.EnableScrollUpDown==true)chart.EnableScrollUpDown=option.EnableScrollUpDown;if(option.DisableMouse==true)chart.DisableMouse=option.DisableMouse;if(option.TouchMoveMinAngle)chart.TouchMoveMinAngle=option.TouchMoveMinAngle;if(option.EnableZoomUpDown)chart.EnableZoomUpDown=option.EnableZoomUpDown;if(IFrameSplitOperator.IsString(option.SplashTitle))chart.LoadDataSplashTitle=option.SplashTitle;if(IFrameSplitOperator.IsBool(option.EnableZoomIndexWindow))chart.EnableZoomIndexWindow=option.EnableZoomIndexWindow;if(IFrameSplitOperator.IsBool(option.IsDrawPictureXY))chart.IsDrawPictureXY=option.IsDrawPictureXY;if(IFrameSplitOperator.IsNumber(option.CtrlMoveStep))chart.CtrlMoveStep=option.CtrlMoveStep;if(IFrameSplitOperator.IsBool(option.EnableIndexChartDrag))chart.EnableIndexChartDrag=option.EnableIndexChartDrag;if(IFrameSplitOperator.IsBool(option.EnableVerifyRecvData))chart.EnableVerifyRecvData=option.EnableVerifyRecvData;if(option.GlobalOption){var item=option.GlobalOption;if(IFrameSplitOperator.IsBool(item.IsValueFullRange))chart.GlobalOption.IsValueFullRange=item.IsValueFullRange;}if(option.EnableYDrag){var item=option.EnableYDrag;if(IFrameSplitOperator.IsBool(item.Left))chart.EnableYDrag.Left=item.Left;if(IFrameSplitOperator.IsBool(item.Right))chart.EnableYDrag.Right=item.Right;}if(option.KLine)//k线图的属性设置
1331
1331
  {if(option.KLine.DragMode>=0)chart.DragMode=option.KLine.DragMode;if(option.KLine.Right>=0)chart.Right=option.KLine.Right;if(option.KLine.Period>=0)chart.Period=option.KLine.Period;if(option.KLine.MaxReqeustDataCount>0)chart.MaxRequestDataCount=option.KLine.MaxReqeustDataCount;//兼容老版本
1332
1332
  if(option.KLine.MaxRequestDataCount>0)chart.MaxRequestDataCount=option.KLine.MaxRequestDataCount;if(option.KLine.Info&&option.KLine.Info.length>0)chart.SetKLineInfo(option.KLine.Info,false);if(option.KLine.KLineDoubleClick==false)chart.MinuteDialog=this.MinuteDialog=null;if(option.KLine.IsShowTooltip==false)chart.IsShowTooltip=false;if(option.KLine.MaxRequestMinuteDayCount>0)chart.MaxRequestMinuteDayCount=option.KLine.MaxRequestMinuteDayCount;if(option.KLine.DrawType)chart.KLineDrawType=option.KLine.DrawType;if(option.KLine.FirstShowDate>19910101)chart.CustomShow={Date:option.KLine.FirstShowDate,PageSize:option.KLine.PageSize};if(option.KLine.RightSpaceCount>0)chart.RightSpaceCount=option.KLine.RightSpaceCount;if(option.KLine.ZoomType>0)chart.ZoomType=option.KLine.ZoomType;if(option.KLine.DataWidth>=1)chart.KLineSize={DataWidth:option.KLine.DataWidth};if(IFrameSplitOperator.IsNumber(option.KLine.RightFormula))chart.RightFormula=option.KLine.RightFormula;}if(option.EnableFlowCapital){var item=option.EnableFlowCapital;if(item.BIT==true)chart.EnableFlowCapital.BIT=item.BIT;}if(IFrameSplitOperator.IsBool(option.EnableBorderDrag)){chart.EnableBorderDrag=option.EnableBorderDrag;}if(option.Page){if(option.Page.Day&&option.Page.Day.Enable==true)chart.Page.Day.Enable=true;if(option.Page.Minute&&option.Page.Minute.Enable==true)chart.Page.Minute.Enable=true;}if(option.DragDownload){if(option.DragDownload.Day&&option.DragDownload.Day.Enable==true)chart.DragDownload.Day.Enable=true;if(option.DragDownload.Minute&&option.DragDownload.Minute.Enable==true)chart.DragDownload.Minute.Enable=true;}if(option.ZoomDownload){if(option.ZoomDownload.Day&&IFrameSplitOperator.IsBool(option.ZoomDownload.Day.Enable))chart.ZoomDownload.Day.Enable=option.ZoomDownload.Day.Enable;if(option.ZoomDownload.Minute&&IFrameSplitOperator.IsBool(option.ZoomDownload.Minute.Enable))chart.ZoomDownload.Minute.Enable=option.ZoomDownload.Minute.Enable;}if(option.Language){var value=g_JSChartLocalization.GetLanguageID(option.Language);if(IFrameSplitOperator.IsNumber(value))chart.LanguageID=value;}if(option.SourceDatatLimit)chart.SetSourceDatatLimit(option.SourceDatatLimit);if(option.DrawPicture)//画图工具
1333
1333
  {if(option.DrawPicture.StorageKey&&chart.ChartDrawStorage)chart.ChartDrawStorage.Load(option.DrawPicture.StorageKey);}if(option.DrawTool)//画图工具
@@ -2436,8 +2436,9 @@ this.GetXData=function(x,isLimit){var distanceWidth=this.DistanceWidth;var dataW
2436
2436
  return index;}};//计算数据宽度
2437
2437
  this.CalculateDataWidth=function(){if(this.XPointCount<2)return;//JSConsole.Chart.Log(`[KLineFrame::CalculateDataWidth] ZoomIndex=${this.ZoomIndex}, XPointCount=${this.XPointCount}, DataWidth=${this.DataWidth}, DistanceWidth=${this.DistanceWidth}`);
2438
2438
  var width=this.GetFrameWidth()-g_JSChartResource.FrameMargin;if(this.ZoomIndex>=0&&this.LastCalculateStatus.Width==width&&this.LastCalculateStatus.XPointCount==this.XPointCount)//宽度没变 尝试使用原来的柱子宽度
2439
- {var caclWidth=this.DistanceWidth/2+g_JSChartResource.FrameLeftMargin+(this.DataWidth+this.DistanceWidth)*(this.XPointCount-1);var caclWidth2=(this.DataWidth+this.DistanceWidth)*this.XPointCount;if(caclWidth<=width)//当前的柱子宽度够用 就不调整了
2440
- return;}this.LastCalculateStatus.Width=width;this.LastCalculateStatus.XPointCount=this.XPointCount;for(var i=0;i<ZOOM_SEED.length;++i){if((ZOOM_SEED[i][0]+ZOOM_SEED[i][1])*this.XPointCount<width){this.ZoomIndex=i;this.DataWidth=ZOOM_SEED[i][0];this.DistanceWidth=ZOOM_SEED[i][1];this.TrimKLineDataWidth(width);JSConsole.Chart.Log('[KLineFrame::CalculateDataWidth] ZOOM_SEED, DataWidth, DistanceWidth, XPointCount',ZOOM_SEED[this.ZoomIndex],this.DataWidth,this.DistanceWidth,this.XPointCount);return;}}//太多了 就平均分了
2439
+ {var caclWidth=this.DistanceWidth/2+g_JSChartResource.FrameLeftMargin+(this.DataWidth+this.DistanceWidth)*(this.XPointCount-1);var caclWidth2=(this.DataWidth+this.DistanceWidth)*this.XPointCount;if(this.DataWidth<2){if(caclWidth2<=width)//当前的柱子宽度够用 就不调整了
2440
+ return;}else{if(caclWidth<=width)//当前的柱子宽度够用 就不调整了
2441
+ return;}}this.LastCalculateStatus.Width=width;this.LastCalculateStatus.XPointCount=this.XPointCount;for(var i=0;i<ZOOM_SEED.length;++i){if((ZOOM_SEED[i][0]+ZOOM_SEED[i][1])*this.XPointCount<width){this.ZoomIndex=i;this.DataWidth=ZOOM_SEED[i][0];this.DistanceWidth=ZOOM_SEED[i][1];this.TrimKLineDataWidth(width);JSConsole.Chart.Log('[KLineFrame::CalculateDataWidth] ZOOM_SEED, DataWidth, DistanceWidth, XPointCount',ZOOM_SEED[this.ZoomIndex],this.DataWidth,this.DistanceWidth,this.XPointCount);return;}}//太多了 就平均分了
2441
2442
  this.ZoomIndex=ZOOM_SEED.length-1;this.DataWidth=width/this.XPointCount;this.DistanceWidth=0;};this.OnSize=function(obj){var width=this.GetFrameWidth()-g_JSChartResource.FrameMargin;var xPointCount=0;var y=this.DistanceWidth/2+g_JSChartResource.FrameLeftMargin+(this.DataWidth+this.DistanceWidth);for(;y<width;y+=this.DataWidth+this.DistanceWidth,++xPointCount){}obj.CurCount=this.XPointCount;obj.CalcCount=xPointCount;obj.DataWidth=this.DataWidth;obj.DistanceWidth=this.DistanceWidth;obj.Changed=false;this.LastCalculateStatus.Width=width;if(obj.CurCount==obj.CalcCount)return obj;this.XPointCount=xPointCount;this.LastCalculateStatus.XPointCount=this.XPointCount;if(this.Data){this.Data.DataOffset+=obj.CurCount-obj.CalcCount;if(this.Data.DataOffset<0)this.Data.DataOffset=0;obj.Changed=true;}return obj;};this.SetDataWidth=function(dataWidth){var zoomIndex=ZOOM_SEED.length-1;for(var i in ZOOM_SEED){var item=ZOOM_SEED[i];if(item[0]<=dataWidth){zoomIndex=parseInt(i)-1;break;}}this.ZoomIndex=zoomIndex;this.DataWidth=ZOOM_SEED[this.ZoomIndex][0];this.DistanceWidth=ZOOM_SEED[this.ZoomIndex][1];var width=this.GetFrameWidth()-g_JSChartResource.FrameMargin;var xPointCount=0;var y=this.DistanceWidth/2+g_JSChartResource.FrameLeftMargin+(this.DataWidth+this.DistanceWidth);for(;y<=width;y+=this.DataWidth+this.DistanceWidth,++xPointCount){}this.XPointCount=xPointCount;this.LastCalculateStatus.XPointCount=this.XPointCount;this.LastCalculateStatus.Width=width;var obj={XPointCount:this.XPointCount,DataWidth:this.DataWidth,DistanceWidth:this.DistanceWidth};return obj;};this.TrimKLineDataWidth=function(width){var dataWidth=ZOOM_SEED[this.ZoomIndex][0];var distanceWidth=ZOOM_SEED[this.ZoomIndex][1];if(dataWidth==1&&distanceWidth==0){this.DataWidth=width/this.XPointCount;return;}while(true){if((this.DistanceWidth+this.DataWidth)*this.XPointCount+this.DistanceWidth>width){this.DistanceWidth-=0.01;break;}this.DistanceWidth+=0.01;}};//当前坐标信息 是否覆盖最大 最小值输出
2442
2443
  this.IsOverlayMaxMin=function(obj){if(!this.ChartKLine)return false;if(!this.ChartKLine.Max||!this.ChartKLine.Min)return false;var textWidth=this.Canvas.measureText(obj.Text.Value).width+4;//刻度文字宽度
2443
2444
  if(obj.Text.TextAlign==='right')obj.X-=textWidth;var max=this.ChartKLine.Max,min=this.ChartKLine.Min;var isOverlayMax=false,isOverlayMin=false;var textHeight=20;//字体高度
@@ -3564,8 +3565,8 @@ return true;}}for(var i in this.InfoTooltipRect){var item=this.InfoTooltipRect[i
3564
3565
  tooltip.Data=item;tooltip.ChartPaint=this;tooltip.Type=1;//信息地雷
3565
3566
  return true;}}for(var i in this.TooltipRect){var rect=this.TooltipRect[i][1];this.Canvas.beginPath();this.Canvas.rect(rect.X,rect.Y,rect.Width,rect.Height);if(this.Canvas.isPointInPath(x,y)){var index=this.TooltipRect[i][0];tooltip.Data=this.Data.Data[index];tooltip.ChartPaint=this;tooltip.Type=0;//K线信息
3566
3567
  return true;}}return false;};//计算当天显示数据的最大最小值
3567
- this.GetMaxMin=function(){if(this.DrawType==14){if(this.FFKChart&&this.FFKChart.GetMaxMin){return this.FFKChart.GetMaxMin(this);}}var xPointCount=this.ChartFrame.XPointCount;var range={};range.Max=null;range.Min=null;if(this.DrawType==1||this.DrawType==4)// 1=收盘价线 4=收盘价面积图
3568
- {for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var data=this.Data.Data[i];if(!IFrameSplitOperator.IsNumber(data.Close))continue;if(range.Max==null)range.Max=data.Close;if(range.Min==null)range.Min=data.Close;if(range.Max<data.Close)range.Max=data.Close;if(range.Min>data.Close)range.Min=data.Close;}}else{for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var data=this.Data.Data[i];if(data.Open==null||data.High==null||data.Low==null||data.Close==null)continue;if(this.DrawType==5&&data.OrderFlow&&IFrameSplitOperator.IsNumber(data.OrderFlow.PriceOffset)){var high=data.High;var low=data.Low;if(IFrameSplitOperator.IsNonEmptyArray(data.OrderFlow.High)){for(var k=0;k<data.OrderFlow.High.length;++k){var item=data.OrderFlow.High[k];if(high<item.Price)high=item.Price;}}if(IFrameSplitOperator.IsNonEmptyArray(data.OrderFlow.Low)){for(var k=0;k<data.OrderFlow.Low.length;++k){var item=data.OrderFlow.Low[k];if(low>item.Price)low=item.Price;}}high+=data.OrderFlow.PriceOffset;low-=data.OrderFlow.PriceOffset;if(range.Max==null)range.Max=high;if(range.Min==null)range.Min=low;if(range.Max<high)range.Max=high;if(range.Min>low)range.Min=low;}else{if(range.Max==null)range.Max=data.High;if(range.Min==null)range.Min=data.Low;if(range.Max<data.High)range.Max=data.High;if(range.Min>data.Low)range.Min=data.Low;}}}return range;};//获取所有的价格
3568
+ this.GetMaxMin=function(){if(this.DrawType==14){if(this.FFKChart&&this.FFKChart.GetMaxMin){return this.FFKChart.GetMaxMin(this);}}var xPointCount=this.ChartFrame.XPointCount;var start=this.Data.DataOffset;if(this.ChartFrame.GlobalOption&&this.ChartFrame.GlobalOption.IsValueFullRange){start=0;xPointCount=this.Data.Data.length;}var range={Max:null,Min:null};if(this.DrawType==1||this.DrawType==4)// 1=收盘价线 4=收盘价面积图
3569
+ {for(var i=start,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var data=this.Data.Data[i];if(!IFrameSplitOperator.IsNumber(data.Close))continue;if(range.Max==null)range.Max=data.Close;if(range.Min==null)range.Min=data.Close;if(range.Max<data.Close)range.Max=data.Close;if(range.Min>data.Close)range.Min=data.Close;}}else{for(var i=start,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var data=this.Data.Data[i];if(data.Open==null||data.High==null||data.Low==null||data.Close==null)continue;if(this.DrawType==5&&data.OrderFlow&&IFrameSplitOperator.IsNumber(data.OrderFlow.PriceOffset)){var high=data.High;var low=data.Low;if(IFrameSplitOperator.IsNonEmptyArray(data.OrderFlow.High)){for(var k=0;k<data.OrderFlow.High.length;++k){var item=data.OrderFlow.High[k];if(high<item.Price)high=item.Price;}}if(IFrameSplitOperator.IsNonEmptyArray(data.OrderFlow.Low)){for(var k=0;k<data.OrderFlow.Low.length;++k){var item=data.OrderFlow.Low[k];if(low>item.Price)low=item.Price;}}high+=data.OrderFlow.PriceOffset;low-=data.OrderFlow.PriceOffset;if(range.Max==null)range.Max=high;if(range.Min==null)range.Min=low;if(range.Max<high)range.Max=high;if(range.Min>low)range.Min=low;}else{if(range.Max==null)range.Max=data.High;if(range.Min==null)range.Min=data.Low;if(range.Max<data.High)range.Max=data.High;if(range.Min>data.Low)range.Min=data.Low;}}}return range;};//获取所有的价格
3569
3570
  this.GetAllPrice=function(){var xPointCount=this.ChartFrame.XPointCount;var setPrice=new _set2.default();for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var data=this.Data.Data[i];if(data.Open==null||data.High==null||data.Low==null||data.Close==null)continue;var value=data.Close;setPrice.add(value);}var aryPrice=[];var _iteratorNormalCompletion4=true;var _didIteratorError4=false;var _iteratorError4=undefined;try{for(var _iterator4=(0,_getIterator3.default)(setPrice),_step4;!(_iteratorNormalCompletion4=(_step4=_iterator4.next()).done);_iteratorNormalCompletion4=true){var item=_step4.value;aryPrice.push(item);}}catch(err){_didIteratorError4=true;_iteratorError4=err;}finally{try{if(!_iteratorNormalCompletion4&&_iterator4.return){_iterator4.return();}}finally{if(_didIteratorError4){throw _iteratorError4;}}}aryPrice.sort(function(a,b){return a-b;});//排序 升序
3570
3571
  return aryPrice;};this.DrawLastPointEvent=function(ptLast){if(!this.GetEventCallback)return;//通知外部绘制最后一个点
3571
3572
  var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DRAW_KLINE_LAST_POINT);if(event){var kWidth={Data:this.ChartFrame.DataWidth,Distance:this.ChartFrame.DistanceWidth};if(ptLast)var data={LastPoint:{X:ptLast.X,Y:ptLast.Y,XLeft:ptLast.XLeft,XRight:ptLast.XRight},KItem:ptLast.KItem,DrawType:this.DrawType,KWidth:kWidth,ChartRight:ptLast.ChartRight};else var data={LastPoint:null,KItem:null,KWidth:kWidth};event.Callback(event,data,this);}};this.DrawOrderFlow=function(){var isHScreen=this.ChartFrame.IsHScreen===true;var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var border=this.ChartBorder.GetBorder();var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;var xPointCount=this.ChartFrame.XPointCount;if(isHScreen){var border=this.ChartBorder.GetHScreenBorder();xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;chartright=border.BottomEx;}var upColor=this.UpColor;var downColor=this.DownColor;var unchagneColor=this.UnchagneColor;this.ShowRange.Start=this.Data.DataOffset;this.ShowRange.End=this.ShowRange.Start;this.ShowRange.DataCount=0;this.ShowRange.ShowCount=xPointCount;this.DrawKRange.Start=this.Data.DataOffset;var ptLast=null;this.DrawOrderFlowHBar();//横向柱子
@@ -3871,7 +3872,7 @@ if(bUp&&(this.KLineDrawType==1||this.KLineDrawType==2||this.KLineDrawType==3))//
3871
3872
  {this.Canvas.strokeStyle=this.UpColor;this.Canvas.beginPath();this.Canvas.rect(ToFixedPoint(yBottom),ToFixedPoint(left),height,ToFixedRect(dataWidth));this.Canvas.stroke();}else{this.Canvas.fillRect(yBottom,ToFixedRect(left),height,ToFixedRect(dataWidth));}}}else//太细了直接话线
3872
3873
  {var preKItem=null;var barColor=null;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];var kItem=this.HistoryData.Data[i];if(value==null||kItem==null)continue;var y=this.ChartFrame.GetYFromData(value);if(isMinute){var x=this.ChartFrame.GetXFromIndex(j);}else{var left=xOffset;var right=xOffset+dataWidth;var x=left+(right-left)/2;}if(x>chartBottom)break;if(isMinute)barColor=this.GetMinuteBarColor(kItem,preKItem);//分时图颜色单独计算
3873
3874
  else barColor=this.GetBarColor(kItem);var bUp=barColor.IsUp;this.Canvas.strokeStyle=barColor.Color;//var x=this.ChartFrame.GetXFromIndex(j);
3874
- this.Canvas.beginPath();this.Canvas.moveTo(y,ToFixedPoint(x));this.Canvas.lineTo(yBottom,ToFixedPoint(x));this.Canvas.stroke();preKItem=kItem;}}};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(!IFrameSplitOperator.IsNumber(range.Max)||range.Max<value)range.Max=value;if(!IFrameSplitOperator.IsNumber(range.Min)||range.Min>value)range.Min=value;}if(range.Max>0&&range.Min>0)range.Min=0;else if(range.Max<0&&range.Min<0)range.Max=0;return range;};this.GetBarColor=function(kItem){if(kItem.Close>=kItem.Open)return{Color:this.UpColor,IsUp:true};//颜色, 是否是上涨
3875
+ this.Canvas.beginPath();this.Canvas.moveTo(y,ToFixedPoint(x));this.Canvas.lineTo(yBottom,ToFixedPoint(x));this.Canvas.stroke();preKItem=kItem;}}};this.GetMaxMin=function(){var xPointCount=this.ChartFrame.XPointCount;var start=this.Data.DataOffset;if(this.ChartFrame.GlobalOption&&this.ChartFrame.GlobalOption.IsValueFullRange){start=0;xPointCount=this.Data.Data.length;}var range={Min:null,Max:null};for(var i=start,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var value=this.Data.Data[i];if(!IFrameSplitOperator.IsNumber(range.Max)||range.Max<value)range.Max=value;if(!IFrameSplitOperator.IsNumber(range.Min)||range.Min>value)range.Min=value;}if(range.Max>0&&range.Min>0)range.Min=0;else if(range.Max<0&&range.Min<0)range.Max=0;return range;};this.GetBarColor=function(kItem){if(kItem.Close>=kItem.Open)return{Color:this.UpColor,IsUp:true};//颜色, 是否是上涨
3875
3876
  else return{Color:this.DownColor,IsUp:false};};this.GetMinuteBarColor=function(kItem,preItem){var prePrice=kItem.YClose;if(preItem)prePrice=preItem.Close;if(kItem.Close>=prePrice)return{Color:this.UpColor,IsUp:true};//颜色, 是否是上涨
3876
3877
  else return{Color:this.DownColor,IsUp:false};};this.GetItemData=function(indexData){if(!indexData)return null;if(!IFrameSplitOperator.IsNumber(indexData.Index))return null;if(!this.HistoryData||!IFrameSplitOperator.IsNonEmptyArray(this.HistoryData.Data))return null;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return null;var index=indexData.Index;if(index<0||index>=this.Data.Data.length||index>=this.HistoryData.Data.length)return null;var item=this.Data.Data[index];var kItem=this.HistoryData.Data[index];return[{Value:item,Color:this.GetBarColor(kItem).Color,Name:this.Name}];};}// VERTLINE(HIGH>=HHV(HIGH,20),1)表示在创20天新高画垂直虚线。
3877
3878
  // 支持横屏
@@ -6763,12 +6764,12 @@ if(this.CursorIndex+step+data.DataOffset+1>data.Data.length)//数据不够步长
6763
6764
  this.GetKLineChart=function(){if(!this.ChartPaint[0])return null;return this.ChartPaint[0];};//创建子窗口
6764
6765
  this.CreateChildWindow=function(windowCount){var _this18=this;var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CREATE_FRAME);for(var i=0;i<windowCount;++i){var border=new ChartBorder();border.UIElement=this.UIElement;var frame=g_ChartFrameFactory.Create("KLineFrame",{ID:i});frame.Canvas=this.Canvas;frame.ChartBorder=border;frame.Identify=i;//窗口序号
6765
6766
  frame.RightSpaceCount=this.RightSpaceCount;//右边
6766
- frame.GetEventCallback=function(id){return _this18.GetEventCallback(id);};if(this.ModifyIndexDialog)frame.ModifyIndexEvent=this.ModifyIndexDialog.DoModal;//绑定菜单事件
6767
+ frame.GetEventCallback=function(id){return _this18.GetEventCallback(id);};frame.GlobalOption=this.GlobalOption;if(this.ModifyIndexDialog)frame.ModifyIndexEvent=this.ModifyIndexDialog.DoModal;//绑定菜单事件
6767
6768
  if(this.ChangeIndexDialog)frame.ChangeIndexEvent=this.ChangeIndexDialog.DoModal;frame.HorizontalMax=20;frame.HorizontalMin=10;if(i==0){frame.YSplitOperator=new FrameSplitKLinePriceY();frame.YSplitOperator.FrameSplitData=this.FrameSplitData.get('price');frame.YSplitOperator.FrameSplitData2=this.FrameSplitData.get('double');frame.YSplitOperator.GetEventCallback=function(id){return _this18.GetEventCallback(id);};frame.YSplitOperator.GetKLineChartCallback=function(){return _this18.GetKLineChart();};frame.YSplitOperator.HQChart=this;var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
6768
6769
  border.BottomSpace=15*pixelTatio;//主图上下留空间
6769
6770
  border.TopSpace=15*pixelTatio;frame.GetEventCallback=function(id){return _this18.GetEventCallback(id);};}else{frame.YSplitOperator=new FrameSplitY();frame.YSplitOperator.FrameSplitData=this.FrameSplitData.get('double');frame.YSplitOperator.LanguageID=this.LanguageID;frame.YSplitOperator.GetEventCallback=function(id){return _this18.GetEventCallback(id);};frame.YSplitOperator.GetKLineChartCallback=function(){return _this18.GetKLineChart();};frame.YSplitOperator.HQChart=this;//frame.IsLocked = true;
6770
6771
  }frame.YSplitOperator.Frame=frame;frame.YSplitOperator.ChartBorder=border;frame.XSplitOperator=new FrameSplitKLineX();frame.XSplitOperator.Frame=frame;frame.XSplitOperator.ChartBorder=border;frame.XSplitOperator.LanguageID=this.LanguageID;frame.XSplitOperator.GetEventCallback=function(id){return _this18.GetEventCallback(id);};if(i!=windowCount-1)frame.XSplitOperator.ShowText=false;for(var j=frame.HorizontalMin;j<=frame.HorizontalMax;j+=1){frame.HorizontalInfo[j]=new CoordinateInfo();frame.HorizontalInfo[j].Value=j;if(i==0&&j==frame.HorizontalMin)continue;frame.HorizontalInfo[j].Message[1]=j.toString();frame.HorizontalInfo[j].Font="14px 微软雅黑";}var subFrame=new SubFrameItem();subFrame.Frame=frame;if(i==0)subFrame.Height=20;else subFrame.Height=10;this.Frame.SubFrame[i]=subFrame;if(event&&event.Callback){var sendData={SubFrame:this.Frame.SubFrame[i],WindowIndex:i};event.Callback(event,sendData,this);}}};this.CreateSubFrameItem=function(id){var _this19=this;var border=new ChartBorder();border.UIElement=this.UIElement;var frameClassName="KLineFrame";if(this.ClassName=="KLineChartHScreenContainer")frameClassName="KLineHScreenFrame";var frame=g_ChartFrameFactory.Create(frameClassName,{ID:id});frame.Canvas=this.Canvas;frame.ChartBorder=border;frame.Identify=id;//窗口序号
6771
- frame.GetEventCallback=function(id){return _this19.GetEventCallback(id);};if(this.ModifyIndexDialog)frame.ModifyIndexEvent=this.ModifyIndexDialog.DoModal;//绑定菜单事件
6772
+ frame.GetEventCallback=function(id){return _this19.GetEventCallback(id);};frame.GlobalOption=this.GlobalOption;if(this.ModifyIndexDialog)frame.ModifyIndexEvent=this.ModifyIndexDialog.DoModal;//绑定菜单事件
6772
6773
  if(this.ChangeIndexDialog)frame.ChangeIndexEvent=this.ChangeIndexDialog.DoModal;frame.HorizontalMax=20;frame.HorizontalMin=10;frame.YSplitOperator=new FrameSplitY();frame.YSplitOperator.LanguageID=this.LanguageID;frame.YSplitOperator.FrameSplitData=this.FrameSplitData.get('double');frame.YSplitOperator.Frame=frame;frame.YSplitOperator.ChartBorder=border;frame.XSplitOperator=new FrameSplitKLineX();frame.XSplitOperator.Frame=frame;frame.XSplitOperator.ChartBorder=border;frame.XSplitOperator.ShowText=false;frame.YSplitOperator.GetEventCallback=function(id){return _this19.GetEventCallback(id);};frame.YSplitOperator.GetKLineChartCallback=function(){return _this19.GetKLineChart();};frame.YSplitOperator.HQChart=this;frame.XSplitOperator.Symbol=this.Symbol;frame.XSplitOperator.Period=this.Period;//K线数据绑定
6773
6774
  var xPointCouont=this.Frame.SubFrame[0].Frame.XPointCount;frame.XPointCount=xPointCouont;frame.Data=this.ChartPaint[0].Data;for(var j=frame.HorizontalMin;j<=frame.HorizontalMax;j+=1){frame.HorizontalInfo[j]=new CoordinateInfo();frame.HorizontalInfo[j].Value=j;frame.HorizontalInfo[j].Message[1]=j.toString();frame.HorizontalInfo[j].Font="14px 微软雅黑";}var subFrame=new SubFrameItem();subFrame.Frame=frame;subFrame.Height=10;var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CREATE_FRAME);if(event&&event.Callback){var sendData={SubFrame:subFrame,WindowIndex:id};event.Callback(event,sendData,this);}return subFrame;};//创建主图K线画法
6774
6775
  this.CreateMainKLine=function(){var _this20=this;var kline=g_ChartPaintFactory.Create("ChartKLine");kline.Canvas=this.Canvas;kline.ChartBorder=this.Frame.SubFrame[0].Frame.ChartBorder;kline.ChartFrame=this.Frame.SubFrame[0].Frame;kline.Name="Main-KLine";kline.DrawType=this.KLineDrawType;kline.Identify="Main-KLine";kline.GetEventCallback=function(id){return _this20.GetEventCallback(id);};this.ChartPaint[0]=kline;this.TitlePaint[0]=new DynamicKLineTitlePainting();this.TitlePaint[0].Frame=this.Frame.SubFrame[0].Frame;this.TitlePaint[0].Canvas=this.Canvas;this.TitlePaint[0].OverlayChartPaint=this.OverlayChartPaint;//绑定叠加
@@ -12656,7 +12657,7 @@ function HQChartScriptWorker(){this.Create=function(){var _this60=this;addEventL
12656
12657
  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);};}/********************************************************************************
12657
12658
  * 版本信息输出
12658
12659
  *
12659
- */var HQCHART_VERSION="1.1.12556";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();//把给外界调用的方法暴露出来
12660
+ */var HQCHART_VERSION="1.1.12564";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();//把给外界调用的方法暴露出来
12660
12661
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
12661
12662
  // BaseIndex:BaseIndex,
12662
12663
  // 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.12557",
5
+ "version": "1.1.12565",
6
6
  "main": "lib/main.js",
7
7
  "private": false,
8
8
  "license": "Apache License 2.0",
@@ -281,6 +281,12 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
281
281
  if (IFrameSplitOperator.IsBool(option.EnableIndexChartDrag)) chart.EnableIndexChartDrag=option.EnableIndexChartDrag;
282
282
  if (IFrameSplitOperator.IsBool(option.EnableVerifyRecvData)) chart.EnableVerifyRecvData=option.EnableVerifyRecvData;
283
283
 
284
+ if (option.GlobalOption)
285
+ {
286
+ var item=option.GlobalOption;
287
+ if (IFrameSplitOperator.IsBool(item.IsValueFullRange)) chart.GlobalOption.IsValueFullRange=item.IsValueFullRange;
288
+ }
289
+
284
290
  if (option.EnableYDrag)
285
291
  {
286
292
  var item=option.EnableYDrag;
@@ -13620,8 +13626,16 @@ function KLineFrame()
13620
13626
  {
13621
13627
  var caclWidth=(this.DistanceWidth/2+g_JSChartResource.FrameLeftMargin)+(this.DataWidth + this.DistanceWidth)*(this.XPointCount-1);
13622
13628
  var caclWidth2=(this.DataWidth + this.DistanceWidth) * this.XPointCount;
13623
- if (caclWidth<= width) //当前的柱子宽度够用 就不调整了
13624
- return;
13629
+ if (this.DataWidth<2)
13630
+ {
13631
+ if (caclWidth2<= width) //当前的柱子宽度够用 就不调整了
13632
+ return;
13633
+ }
13634
+ else
13635
+ {
13636
+ if (caclWidth<= width) //当前的柱子宽度够用 就不调整了
13637
+ return;
13638
+ }
13625
13639
  }
13626
13640
 
13627
13641
  this.LastCalculateStatus.Width=width;
@@ -24321,12 +24335,18 @@ function ChartKLine()
24321
24335
  }
24322
24336
 
24323
24337
  var xPointCount=this.ChartFrame.XPointCount;
24324
- var range={};
24325
- range.Max=null;
24326
- range.Min=null;
24338
+ var start=this.Data.DataOffset;
24339
+ if (this.ChartFrame.GlobalOption && this.ChartFrame.GlobalOption.IsValueFullRange)
24340
+ {
24341
+ start=0;
24342
+ xPointCount=this.Data.Data.length;
24343
+ }
24344
+
24345
+ var range={ Max:null, Min:null };
24346
+
24327
24347
  if (this.DrawType==1 || this.DrawType==4 ) // 1=收盘价线 4=收盘价面积图
24328
24348
  {
24329
- for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
24349
+ for(var i=start,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
24330
24350
  {
24331
24351
  var data=this.Data.Data[i];
24332
24352
  if (!IFrameSplitOperator.IsNumber(data.Close)) continue;
@@ -24340,7 +24360,7 @@ function ChartKLine()
24340
24360
  }
24341
24361
  else
24342
24362
  {
24343
- for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
24363
+ for(var i=start,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
24344
24364
  {
24345
24365
  var data=this.Data.Data[i];
24346
24366
  if (data.Open==null || data.High==null || data.Low==null || data.Close==null) continue;
@@ -29280,10 +29300,15 @@ function ChartVolStick()
29280
29300
  this.GetMaxMin=function()
29281
29301
  {
29282
29302
  var xPointCount=this.ChartFrame.XPointCount;
29283
- var range={};
29284
- range.Min=null;
29285
- range.Max=null;
29286
- for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
29303
+ var start=this.Data.DataOffset;
29304
+ if (this.ChartFrame.GlobalOption && this.ChartFrame.GlobalOption.IsValueFullRange)
29305
+ {
29306
+ start=0;
29307
+ xPointCount=this.Data.Data.length;
29308
+ }
29309
+
29310
+ var range={ Min:null, Max:null };
29311
+ for(var i=start,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
29287
29312
  {
29288
29313
  var value=this.Data.Data[i];
29289
29314
  if (!IFrameSplitOperator.IsNumber(range.Max) || range.Max<value) range.Max=value;
@@ -65213,6 +65238,7 @@ function KLineChartContainer(uielement,OffscreenElement)
65213
65238
  frame.Identify=i; //窗口序号
65214
65239
  frame.RightSpaceCount=this.RightSpaceCount; //右边
65215
65240
  frame.GetEventCallback=(id)=> { return this.GetEventCallback(id); };
65241
+ frame.GlobalOption=this.GlobalOption;
65216
65242
 
65217
65243
  if (this.ModifyIndexDialog) frame.ModifyIndexEvent=this.ModifyIndexDialog.DoModal; //绑定菜单事件
65218
65244
  if (this.ChangeIndexDialog) frame.ChangeIndexEvent=this.ChangeIndexDialog.DoModal;
@@ -65295,6 +65321,7 @@ function KLineChartContainer(uielement,OffscreenElement)
65295
65321
  frame.ChartBorder=border;
65296
65322
  frame.Identify=id; //窗口序号
65297
65323
  frame.GetEventCallback=(id)=> { return this.GetEventCallback(id); };
65324
+ frame.GlobalOption=this.GlobalOption;
65298
65325
 
65299
65326
  if (this.ModifyIndexDialog) frame.ModifyIndexEvent=this.ModifyIndexDialog.DoModal; //绑定菜单事件
65300
65327
  if (this.ChangeIndexDialog) frame.ChangeIndexEvent=this.ChangeIndexDialog.DoModal;
@@ -4361,6 +4361,12 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4361
4361
  if (IFrameSplitOperator.IsBool(option.EnableIndexChartDrag)) chart.EnableIndexChartDrag=option.EnableIndexChartDrag;
4362
4362
  if (IFrameSplitOperator.IsBool(option.EnableVerifyRecvData)) chart.EnableVerifyRecvData=option.EnableVerifyRecvData;
4363
4363
 
4364
+ if (option.GlobalOption)
4365
+ {
4366
+ var item=option.GlobalOption;
4367
+ if (IFrameSplitOperator.IsBool(item.IsValueFullRange)) chart.GlobalOption.IsValueFullRange=item.IsValueFullRange;
4368
+ }
4369
+
4364
4370
  if (option.EnableYDrag)
4365
4371
  {
4366
4372
  var item=option.EnableYDrag;
@@ -17700,8 +17706,16 @@ function KLineFrame()
17700
17706
  {
17701
17707
  var caclWidth=(this.DistanceWidth/2+g_JSChartResource.FrameLeftMargin)+(this.DataWidth + this.DistanceWidth)*(this.XPointCount-1);
17702
17708
  var caclWidth2=(this.DataWidth + this.DistanceWidth) * this.XPointCount;
17703
- if (caclWidth<= width) //当前的柱子宽度够用 就不调整了
17704
- return;
17709
+ if (this.DataWidth<2)
17710
+ {
17711
+ if (caclWidth2<= width) //当前的柱子宽度够用 就不调整了
17712
+ return;
17713
+ }
17714
+ else
17715
+ {
17716
+ if (caclWidth<= width) //当前的柱子宽度够用 就不调整了
17717
+ return;
17718
+ }
17705
17719
  }
17706
17720
 
17707
17721
  this.LastCalculateStatus.Width=width;
@@ -28401,12 +28415,18 @@ function ChartKLine()
28401
28415
  }
28402
28416
 
28403
28417
  var xPointCount=this.ChartFrame.XPointCount;
28404
- var range={};
28405
- range.Max=null;
28406
- range.Min=null;
28418
+ var start=this.Data.DataOffset;
28419
+ if (this.ChartFrame.GlobalOption && this.ChartFrame.GlobalOption.IsValueFullRange)
28420
+ {
28421
+ start=0;
28422
+ xPointCount=this.Data.Data.length;
28423
+ }
28424
+
28425
+ var range={ Max:null, Min:null };
28426
+
28407
28427
  if (this.DrawType==1 || this.DrawType==4 ) // 1=收盘价线 4=收盘价面积图
28408
28428
  {
28409
- for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
28429
+ for(var i=start,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
28410
28430
  {
28411
28431
  var data=this.Data.Data[i];
28412
28432
  if (!IFrameSplitOperator.IsNumber(data.Close)) continue;
@@ -28420,7 +28440,7 @@ function ChartKLine()
28420
28440
  }
28421
28441
  else
28422
28442
  {
28423
- for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
28443
+ for(var i=start,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
28424
28444
  {
28425
28445
  var data=this.Data.Data[i];
28426
28446
  if (data.Open==null || data.High==null || data.Low==null || data.Close==null) continue;
@@ -33360,10 +33380,15 @@ function ChartVolStick()
33360
33380
  this.GetMaxMin=function()
33361
33381
  {
33362
33382
  var xPointCount=this.ChartFrame.XPointCount;
33363
- var range={};
33364
- range.Min=null;
33365
- range.Max=null;
33366
- for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
33383
+ var start=this.Data.DataOffset;
33384
+ if (this.ChartFrame.GlobalOption && this.ChartFrame.GlobalOption.IsValueFullRange)
33385
+ {
33386
+ start=0;
33387
+ xPointCount=this.Data.Data.length;
33388
+ }
33389
+
33390
+ var range={ Min:null, Max:null };
33391
+ for(var i=start,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
33367
33392
  {
33368
33393
  var value=this.Data.Data[i];
33369
33394
  if (!IFrameSplitOperator.IsNumber(range.Max) || range.Max<value) range.Max=value;
@@ -69293,6 +69318,7 @@ function KLineChartContainer(uielement,OffscreenElement)
69293
69318
  frame.Identify=i; //窗口序号
69294
69319
  frame.RightSpaceCount=this.RightSpaceCount; //右边
69295
69320
  frame.GetEventCallback=(id)=> { return this.GetEventCallback(id); };
69321
+ frame.GlobalOption=this.GlobalOption;
69296
69322
 
69297
69323
  if (this.ModifyIndexDialog) frame.ModifyIndexEvent=this.ModifyIndexDialog.DoModal; //绑定菜单事件
69298
69324
  if (this.ChangeIndexDialog) frame.ChangeIndexEvent=this.ChangeIndexDialog.DoModal;
@@ -69375,6 +69401,7 @@ function KLineChartContainer(uielement,OffscreenElement)
69375
69401
  frame.ChartBorder=border;
69376
69402
  frame.Identify=id; //窗口序号
69377
69403
  frame.GetEventCallback=(id)=> { return this.GetEventCallback(id); };
69404
+ frame.GlobalOption=this.GlobalOption;
69378
69405
 
69379
69406
  if (this.ModifyIndexDialog) frame.ModifyIndexEvent=this.ModifyIndexDialog.DoModal; //绑定菜单事件
69380
69407
  if (this.ChangeIndexDialog) frame.ChangeIndexEvent=this.ChangeIndexDialog.DoModal;
@@ -129422,7 +129449,7 @@ function ScrollBarBGChart()
129422
129449
 
129423
129450
 
129424
129451
 
129425
- var HQCHART_VERSION="1.1.12556";
129452
+ var HQCHART_VERSION="1.1.12564";
129426
129453
 
129427
129454
  function PrintHQChartVersion()
129428
129455
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.12556";
8
+ var HQCHART_VERSION="1.1.12564";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -4405,6 +4405,12 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4405
4405
  if (IFrameSplitOperator.IsBool(option.EnableIndexChartDrag)) chart.EnableIndexChartDrag=option.EnableIndexChartDrag;
4406
4406
  if (IFrameSplitOperator.IsBool(option.EnableVerifyRecvData)) chart.EnableVerifyRecvData=option.EnableVerifyRecvData;
4407
4407
 
4408
+ if (option.GlobalOption)
4409
+ {
4410
+ var item=option.GlobalOption;
4411
+ if (IFrameSplitOperator.IsBool(item.IsValueFullRange)) chart.GlobalOption.IsValueFullRange=item.IsValueFullRange;
4412
+ }
4413
+
4408
4414
  if (option.EnableYDrag)
4409
4415
  {
4410
4416
  var item=option.EnableYDrag;
@@ -17744,8 +17750,16 @@ function KLineFrame()
17744
17750
  {
17745
17751
  var caclWidth=(this.DistanceWidth/2+g_JSChartResource.FrameLeftMargin)+(this.DataWidth + this.DistanceWidth)*(this.XPointCount-1);
17746
17752
  var caclWidth2=(this.DataWidth + this.DistanceWidth) * this.XPointCount;
17747
- if (caclWidth<= width) //当前的柱子宽度够用 就不调整了
17748
- return;
17753
+ if (this.DataWidth<2)
17754
+ {
17755
+ if (caclWidth2<= width) //当前的柱子宽度够用 就不调整了
17756
+ return;
17757
+ }
17758
+ else
17759
+ {
17760
+ if (caclWidth<= width) //当前的柱子宽度够用 就不调整了
17761
+ return;
17762
+ }
17749
17763
  }
17750
17764
 
17751
17765
  this.LastCalculateStatus.Width=width;
@@ -28445,12 +28459,18 @@ function ChartKLine()
28445
28459
  }
28446
28460
 
28447
28461
  var xPointCount=this.ChartFrame.XPointCount;
28448
- var range={};
28449
- range.Max=null;
28450
- range.Min=null;
28462
+ var start=this.Data.DataOffset;
28463
+ if (this.ChartFrame.GlobalOption && this.ChartFrame.GlobalOption.IsValueFullRange)
28464
+ {
28465
+ start=0;
28466
+ xPointCount=this.Data.Data.length;
28467
+ }
28468
+
28469
+ var range={ Max:null, Min:null };
28470
+
28451
28471
  if (this.DrawType==1 || this.DrawType==4 ) // 1=收盘价线 4=收盘价面积图
28452
28472
  {
28453
- for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
28473
+ for(var i=start,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
28454
28474
  {
28455
28475
  var data=this.Data.Data[i];
28456
28476
  if (!IFrameSplitOperator.IsNumber(data.Close)) continue;
@@ -28464,7 +28484,7 @@ function ChartKLine()
28464
28484
  }
28465
28485
  else
28466
28486
  {
28467
- for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
28487
+ for(var i=start,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
28468
28488
  {
28469
28489
  var data=this.Data.Data[i];
28470
28490
  if (data.Open==null || data.High==null || data.Low==null || data.Close==null) continue;
@@ -33404,10 +33424,15 @@ function ChartVolStick()
33404
33424
  this.GetMaxMin=function()
33405
33425
  {
33406
33426
  var xPointCount=this.ChartFrame.XPointCount;
33407
- var range={};
33408
- range.Min=null;
33409
- range.Max=null;
33410
- for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
33427
+ var start=this.Data.DataOffset;
33428
+ if (this.ChartFrame.GlobalOption && this.ChartFrame.GlobalOption.IsValueFullRange)
33429
+ {
33430
+ start=0;
33431
+ xPointCount=this.Data.Data.length;
33432
+ }
33433
+
33434
+ var range={ Min:null, Max:null };
33435
+ for(var i=start,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
33411
33436
  {
33412
33437
  var value=this.Data.Data[i];
33413
33438
  if (!IFrameSplitOperator.IsNumber(range.Max) || range.Max<value) range.Max=value;
@@ -69337,6 +69362,7 @@ function KLineChartContainer(uielement,OffscreenElement)
69337
69362
  frame.Identify=i; //窗口序号
69338
69363
  frame.RightSpaceCount=this.RightSpaceCount; //右边
69339
69364
  frame.GetEventCallback=(id)=> { return this.GetEventCallback(id); };
69365
+ frame.GlobalOption=this.GlobalOption;
69340
69366
 
69341
69367
  if (this.ModifyIndexDialog) frame.ModifyIndexEvent=this.ModifyIndexDialog.DoModal; //绑定菜单事件
69342
69368
  if (this.ChangeIndexDialog) frame.ChangeIndexEvent=this.ChangeIndexDialog.DoModal;
@@ -69419,6 +69445,7 @@ function KLineChartContainer(uielement,OffscreenElement)
69419
69445
  frame.ChartBorder=border;
69420
69446
  frame.Identify=id; //窗口序号
69421
69447
  frame.GetEventCallback=(id)=> { return this.GetEventCallback(id); };
69448
+ frame.GlobalOption=this.GlobalOption;
69422
69449
 
69423
69450
  if (this.ModifyIndexDialog) frame.ModifyIndexEvent=this.ModifyIndexDialog.DoModal; //绑定菜单事件
69424
69451
  if (this.ChangeIndexDialog) frame.ChangeIndexEvent=this.ChangeIndexDialog.DoModal;
@@ -129575,7 +129602,7 @@ function HQChartScriptWorker()
129575
129602
 
129576
129603
 
129577
129604
 
129578
- var HQCHART_VERSION="1.1.12556";
129605
+ var HQCHART_VERSION="1.1.12564";
129579
129606
 
129580
129607
  function PrintHQChartVersion()
129581
129608
  {