hqchart 1.1.15835 → 1.1.15845

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.
@@ -2815,7 +2815,7 @@ this.GetYData=function(y,isLimit){if(this.Logarithmic&&this.GetYLogarithmicFromD
2815
2815
  {if(isLimit==false){return(y-this.ChartBorder.GetTopEx())/this.ChartBorder.GetHeightEx()*(this.HorizontalMax-this.HorizontalMin)+this.HorizontalMin;}else{if(y<this.ChartBorder.GetTopEx())return this.HorizontalMin;if(y>this.ChartBorder.GetBottomEx())return this.HorizontalMax;return(y-this.ChartBorder.GetTopEx())/this.ChartBorder.GetHeightEx()*(this.HorizontalMax-this.HorizontalMin)+this.HorizontalMin;}}else{if(isLimit==false){return(this.ChartBorder.GetBottomEx()-y)/this.ChartBorder.GetHeightEx()*(this.HorizontalMax-this.HorizontalMin)+this.HorizontalMin;}else{if(y<this.ChartBorder.GetTopEx())return this.HorizontalMax;if(y>this.ChartBorder.GetBottomEx())return this.HorizontalMin;return(this.ChartBorder.GetBottomEx()-y)/this.ChartBorder.GetHeightEx()*(this.HorizontalMax-this.HorizontalMin)+this.HorizontalMin;}}};//X坐标转x轴数值
2816
2816
  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());};//选中的画图工具X,Y轴坐标信息
2817
2817
  this.DrawPictureXCoordinate=function(drawPicture,range,option){if(this.IsHScreen)return;if(!range)return;if(!IFrameSplitOperator.IsNonEmptyArray(range.Points))return;var border=this.GetBorder();var left=border.Left;var right=border.Right;this.Canvas.font=this.DrawPicture.Font;var fontHeight=this.GetFontHeight();this.Canvas.textAlign="left";this.Canvas.textBaseline="bottom";if(range.X){var xRange=range.X;var xLeft=xRange.Min.X;var xRight=xRange.Max.X;if(xLeft<left)xLeft=left;if(xRight>right)xRight=right;this.Canvas.fillStyle=this.DrawPicture.BGColor;this.Canvas.fillRect(xLeft,border.Bottom,xRight-xLeft,fontHeight);}for(var i=0;i<range.Points.length;++i){var item=range.Points[i];if(item.X<left||item.X>right)continue;var index=this.GetXData(item.X,false);var index=Math.round(index);var kItem=this.GetKItem(index);if(kItem){var text=IFrameSplitOperator.FormatDateString(kItem.Date,null);if(ChartData.IsMinutePeriod(option.Period))text+=" "+IFrameSplitOperator.FormatTimeString(kItem.Time,"HH:MM");else if(ChartData.IsMilliSecondPeriod(option.Period))text+=" "+IFrameSplitOperator.FormatTimeString(kItem.Time,"HH:MM:SS.fff");var textWidth=this.Canvas.measureText(text).width+2;var textLeft=item.X-textWidth/2;if(textLeft<left)textLeft=left;this.Canvas.fillStyle=this.DrawPicture.TextBGColor;this.Canvas.fillRect(textLeft,border.Bottom,textWidth,fontHeight);this.Canvas.fillStyle=this.DrawPicture.TextColor;var yCenter=border.Bottom+fontHeight;this.Canvas.fillText(text,textLeft+1,yCenter);}}};this.GetKItem=function(currentIndex){if(!this.Data)return null;if(!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return null;var index=this.Data.DataOffset+currentIndex;return this.Data.Data[index];};this.DrawPictureYCoordinate=function(drawPicture,range,option){if(this.IsHScreen)return;if(!range)return;if(!IFrameSplitOperator.IsNonEmptyArray(range.Points))return;var border=this.GetBorder();var top=border.TopEx;var bottom=border.BottomEx;var right=border.Right;this.Canvas.font=this.DrawPicture.Font;var fontHeight=this.GetFontHeight();this.Canvas.textAlign="left";this.Canvas.textBaseline="bottom";var defaultfloatPrecision=2;if(option&&option.Symbol)defaultfloatPrecision=GetfloatPrecision(option.Symbol);var textWidth=0;for(var i=0;i<range.Points.length;++i){var item=range.Points[i];var Value=this.GetYData(item.Y);var text=Value.toFixed(defaultfloatPrecision);var value=this.Canvas.measureText(text).width;if(textWidth<value)textWidth=value;range.Points[i].Text=text;}textWidth+=this.YTextPadding[1]+2;if(range.Y){var yRange=range.Y;var yTop=yRange.Min.Y;var yBottom=yRange.Max.Y;if(yRange.Min.Y<top)yTop=top;if(yRange.Max.Y>bottom)yBottom=bottom;this.Canvas.fillStyle=this.DrawPicture.BGColor;this.Canvas.fillRect(right,yTop,textWidth+5,yBottom-yTop);}for(var i=0;i<range.Points.length;++i){var item=range.Points[i];if(item.Y<top||item.Y>bottom)continue;this.Canvas.fillStyle=this.DrawPicture.TextBGColor;this.Canvas.fillRect(right,item.Y-fontHeight/2,textWidth,fontHeight);this.Canvas.fillStyle=this.DrawPicture.TextColor;var yText=item.Y+fontHeight/2;this.Canvas.fillText(item.Text,right+this.YTextPadding[1],yText);}};this.DrawPicturePointYCoordinate=function(drawPicture,option){if(this.IsHScreen)return;if(!drawPicture.GetYCoordinatePoint)return;var aryPoint=drawPicture.GetYCoordinatePoint();if(!IFrameSplitOperator.IsNonEmptyArray(aryPoint))return;var border=this.GetBorder();var top=border.TopEx;var bottom=border.BottomEx;var right=border.Right;this.Canvas.font=this.DrawPicture.Font;var fontHeight=this.GetFontHeight();this.Canvas.textAlign="left";this.Canvas.textBaseline="bottom";var defaultfloatPrecision=2;if(option&&option.Symbol)defaultfloatPrecision=GetfloatPrecision(option.Symbol);for(var i=0;i<aryPoint.length;++i){var item=aryPoint[i];if(!item)continue;if(item.Y<top||item.Y>bottom)continue;var text=item.YValue.toFixed(defaultfloatPrecision);var textWidth=this.Canvas.measureText(text).width+2;textWidth+=this.YTextPadding[1];this.Canvas.fillStyle=this.DrawPicture.TextBGColor;this.Canvas.fillRect(right,item.Y-fontHeight/2,textWidth,fontHeight);this.Canvas.fillStyle=this.DrawPicture.TextColor;var yText=item.Y+fontHeight/2;this.Canvas.fillText(text,right+this.YTextPadding[1],yText);}};//字体外部设置好
2818
- this.GetCustomItemTextInfo=function(item,bLeft,pixelTatio){var text=bLeft?item.Message[0]:item.Message[1];var aryText=[];var width=0;if(Array.isArray(text)){for(var i=0;i<text.length;++i){var item=text[i];if(item.Type===1){aryText.push({Type:item.Type});}else{var value=this.Canvas.measureText(text[i].Text).width;if(value>width)width=value;var outItem={Text:text[i].Text,Width:value+2*pixelTatio};if(item.TextColor)outItem.TextColor=item.TextColor;if(item.BGColor)outItem.BGColor=item.BGColor;if(IFrameSplitOperator.IsBool(item.EnableBGColor))outItem.EnableBGColor=item.EnableBGColor;//是否启用背景色
2818
+ this.GetCustomItemTextInfo=function(item,bLeft,pixelTatio){var text=bLeft?item.Message[0]:item.Message[1];var aryText=[];var width=0;if(Array.isArray(text)){for(var i=0;i<text.length;++i){var item=text[i];if(item.Type===1){aryText.push({Type:item.Type});}else{var value=this.Canvas.measureText(text[i].Text).width;if(value>width)width=value;var outItem={Text:text[i].Text,Width:value+2*pixelTatio};if(item.TextColor)outItem.TextColor=item.TextColor;if(item.BGColor)outItem.BGColor=item.BGColor;if(item.Border&&item.Border.Color){outItem.Border={Color:item.Border.Color};if(IFrameSplitOperator.IsNumber(item.Border.Width))outItem.Border.Width=item.Border.Width;}if(IFrameSplitOperator.IsBool(item.EnableBGColor))outItem.EnableBGColor=item.EnableBGColor;//是否启用背景色
2819
2819
  aryText.push(outItem);}}if(width>0)width+=2*pixelTatio;}else{width=this.Canvas.measureText(text).width+2*pixelTatio;aryText.push({Text:text,Width:width});}return{MaxWidth:width,Text:aryText};};this.DrawOutRangeCustomItem=function(item,mapTextRect){if(this.IsHScreen===true)return;if(!this.IsShow&&!this.IsYDrawMainFrame)return;if(!item.Message[1]&&!item.Message[0])return;if(!item.OutRange)return;var position=0;//1=top 2=bottom
2820
2820
  if(item.Value>this.HorizontalMax)position=1;else if(item.Value<this.HorizontalMin)position=2;else return;this.Canvas.save();var outRange=item.OutRange;var border=this.GetBorder();var left=border.Left;var right=border.Right;var bottom=border.Bottom;var top=border.Top;var borderRight=this.ChartBorder.Right;var borderLeft=this.ChartBorder.Left;var titleHeight=this.ChartBorder.TitleHeight;if(this.IsHScreen){borderLeft=this.ChartBorder.Top;borderRight=this.ChartBorder.Bottom;top=border.Top;bottom=border.Bottom;}var pixelTatio=GetDevicePixelRatio();var defaultTextHeight=18*pixelTatio;var textHeight=defaultTextHeight;if(item.Message[0]&&borderLeft>=10){if(item.Font!=null)this.Canvas.font=item.Font;var textInfo=this.GetCustomItemTextInfo(item,true,pixelTatio);var textWidth=textInfo.MaxWidth;var itemLeft=left-textWidth;var fontHeight=this.GetFontHeight();var textHeight=fontHeight>defaultTextHeight?fontHeight:defaultTextHeight;this.Canvas.textAlign="right";this.Canvas.textBaseline="middle";var yText=null;if(position==1){yText=border.TopEx;if(IFrameSplitOperator.IsNumber(outRange.TopYOffset))yText+=outRange.TopYOffset;}else if(position==2){yText=border.BottomEx+textHeight;if(IFrameSplitOperator.IsNumber(outRange.BottomYOffset))yText+=outRange.BottomYOffset;}for(var i=0;i<textInfo.Text.length;++i){var itemText=textInfo.Text[i];var rtBG={Left:itemLeft,Width:itemText.Width,Bottom:yText,Height:textHeight};rtBG.Top=rtBG.Bottom-rtBG.Height;rtBG.Right=rtBG.Left+rtBG.Width;if(item.ExtendLine&&item.ExtendLine[0])//右侧延长线
2821
2821
  {var exLine=item.ExtendLine[0];if(IFrameSplitOperator.IsNumber(exLine.Width)){var yLine=rtBG.Bottom;if(position==2)yLine=rtBG.Top;var lineType=item.LineType;if(IFrameSplitOperator.IsNumber(outRange.ExtendLine.Type))lineType=outRange.ExtendLine.Type;if(i==0)this.DrawLine(left,left-exLine.Width,yLine,item.LineColor,lineType,item);rtBG.Left-=exLine.Width;rtBG.Right-=exLine.Width;}}this.Canvas.fillStyle=outRange.BGColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);if(outRange.Border&&outRange.Border.Color){if(IFrameSplitOperator.IsNonEmptyArray(outRange.Border.LineDash))this.Canvas.setLineDash(outRange.Border.LineDash);//虚线
@@ -2837,7 +2837,7 @@ var yText=y;for(var i=0;i<textInfo.Text.length;++i){var itemText=textInfo.Text[i
2837
2837
  if(itemText.TextColor)this.Canvas.fillStyle=itemText.TextColor;else this.Canvas.fillStyle=item.TextColor;this.Canvas.fillText(itemText.Text,textLeft+1*pixelTatio,yText);if(i==0)this.DrawLine(left,textLeft,yText,item.LineColor,item.LineType,item);yText+=textHeight+1*pixelTatio;}}}if(item.Type==3||item.Type==4){if(item.Title){var width=this.Canvas.measureText(item.Title).width+2*pixelTatio;if(this.IsHScreen){var bgTop=bottom-itemText.Width-width;var textLeft=y-textHeight/2-1*pixelTatio;this.Canvas.fillStyle=bgColor;this.Canvas.fillRect(textLeft,bgTop,textHeight,width);this.DrawHScreenText({X:y,Y:bgTop},{Text:item.Title,Color:item.TextColor,XOffset:1*pixelTatio,YOffset:2*pixelTatio});}else{var bgTop=y-textHeight/2-1*pixelTatio;var textLeft=right-textWidth-width-1*pixelTatio;this.Canvas.fillStyle=bgColor;this.Canvas.fillRect(textLeft,bgTop,width,textHeight);this.Canvas.fillStyle=item.TextColor;this.Canvas.fillText(item.Title,textLeft+1*pixelTatio,y);}}}}else{if(item.Font!=null)this.Canvas.font=item.Font;this.Canvas.textAlign="left";this.Canvas.textBaseline="middle";var textInfo=this.GetCustomItemTextInfo(item,false,pixelTatio);var textWidth=textInfo.MaxWidth;var fontHeight=this.GetFontHeight();textHeight=fontHeight>defaultTextHeight?fontHeight:defaultTextHeight;var preTextRect=null;if(mapTextRect&&mapTextRect.has(3))preTextRect=mapTextRect.get(3);var yText=y;var rtText={};for(var i=0;i<textInfo.Text.length;++i){var itemText=textInfo.Text[i];if(this.IsHScreen){var bgTop=bottom;//bgTop+=(textWidth-itemText.Width);
2838
2838
  var textLeft=yText-textHeight/2-1*pixelTatio;this.Canvas.fillStyle=item.LineColor;this.Canvas.fillRect(textLeft,bgTop,textHeight,itemText.Width);this.DrawHScreenText({X:yText,Y:bgTop},{Text:itemText.Text,Color:item.TextColor,XOffset:1*pixelTatio,YOffset:2*pixelTatio});if(i==0)this.DrawLine(top,bgTop,yText,item.LineColor,item.LineType,item);yText-=textHeight+1*pixelTatio;}else{if(itemText.Type===1){if(this.GetEventCallback){var bgTop=yText-textHeight/2-1*pixelTatio;var sendData={Top:bgTop,Left:right,Right:this.ChartBorder.GetChartWidth(),Height:null,IsShow:true,BGColor:item.LineColor,TextColor:item.TextColor,PixelTatio:pixelTatio,Position:"Right",IsInside:false};if(this.SendDrawCountDownEvent(sendData)){if(IFrameSplitOperator.IsPlusNumber(sendData.Height))yText+=textHeight+1*pixelTatio;}}}else{var bgTop=yText-textHeight/2-1*pixelTatio;if(i==0&&textInfo.Text.length==0){var textLeft=right;rtText.Left=textLeft;if(preTextRect&&bgTop<preTextRect.Rect.Bottom){yText=preTextRect.Rect.Bottom;bgTop=yText-textHeight/2-1*pixelTatio;}}else{var textLeft=right+textWidth-itemText.Width;}if(item.ExtendLine&&item.ExtendLine[1])//右侧延长线
2839
2839
  {var exLine=item.ExtendLine[1];if(IFrameSplitOperator.IsNumber(exLine.Width)){var lineType=item.LineType;if(IFrameSplitOperator.IsNumber(exLine.Type))lineType=exLine.Type;//外部设置延长线样式
2840
- if(i==0)this.DrawLine(right,textLeft+exLine.Width,y,item.LineColor,lineType,item);textLeft+=exLine.Width;}}if(emptyBGColor){this.Canvas.fillStyle=emptyBGColor;this.Canvas.fillRect(textLeft,bgTop,itemText.Width+1,textHeight);this.Canvas.strokeStyle=item.LineColor;this.Canvas.strokeRect(ToFixedPoint(textLeft),ToFixedPoint(bgTop),ToFixedRect(itemText.Width+1),ToFixedRect(textHeight));this.Canvas.fillStyle=item.LineColor;this.Canvas.fillText(itemText.Text,textLeft+2*pixelTatio,yText);}else{var textBGColor=item.LineColor;if(itemText.BGColor)textBGColor=itemText.BGColor;this.Canvas.fillStyle=textBGColor;this.Canvas.fillRect(textLeft,bgTop,itemText.Width,textHeight);if(itemText.TextColor)this.Canvas.fillStyle=itemText.TextColor;else this.Canvas.fillStyle=item.TextColor;this.Canvas.fillText(itemText.Text,textLeft+1*pixelTatio,yText);}if(i==0)this.DrawLine(left,right,y,item.LineColor,item.LineType,item);if(item.ClickData)//点击事件
2840
+ if(i==0)this.DrawLine(right,textLeft+exLine.Width,y,item.LineColor,lineType,item);textLeft+=exLine.Width;}}if(emptyBGColor){this.Canvas.fillStyle=emptyBGColor;this.Canvas.fillRect(textLeft,bgTop,itemText.Width+1,textHeight);this.Canvas.strokeStyle=item.LineColor;this.Canvas.strokeRect(ToFixedPoint(textLeft),ToFixedPoint(bgTop),ToFixedRect(itemText.Width+1),ToFixedRect(textHeight));this.Canvas.fillStyle=item.LineColor;this.Canvas.fillText(itemText.Text,textLeft+2*pixelTatio,yText);}else{var textBGColor=item.LineColor;if(itemText.BGColor)textBGColor=itemText.BGColor;this.Canvas.fillStyle=textBGColor;this.Canvas.fillRect(textLeft,bgTop,itemText.Width,textHeight);if(itemText.Border&&itemText.Border.Color){this.Canvas.strokeStyle=itemText.Border.Color;this.Canvas.strokeRect(ToFixedPoint(textLeft),ToFixedPoint(bgTop),ToFixedRect(itemText.Width+1),ToFixedRect(textHeight));}if(itemText.TextColor)this.Canvas.fillStyle=itemText.TextColor;else this.Canvas.fillStyle=item.TextColor;this.Canvas.fillText(itemText.Text,textLeft+1*pixelTatio,yText);}if(i==0)this.DrawLine(left,right,y,item.LineColor,item.LineType,item);if(item.ClickData)//点击事件
2841
2841
  this.AddHorizontalLabel(textLeft,bgTop,itemText.Width,textHeight,item,i);yText+=textHeight+1*pixelTatio;rtText.Bottom=yText;}}}if(mapTextRect&&IFrameSplitOperator.IsNumber(rtText.Left)&&IFrameSplitOperator.IsNumber(rtText.Bottom)){mapTextRect.set(3,{Rect:rtText,Item:item});}if(item.Type==3||item.Type==4){if(item.Title){var bgColor=item.LineColor;var rgb=this.RGBToStruct(item.LineColor);if(rgb)bgColor='rgba('+rgb.R+', '+rgb.G+', '+rgb.B+', '+g_JSChartResource.FrameLatestPrice.BGAlpha+')';//内部刻度 背景增加透明度
2842
2842
  var width=this.Canvas.measureText(item.Title).width+2*pixelTatio;if(this.IsHScreen){var bgTop=bottom-width;var textLeft=y-textHeight/2-1*pixelTatio;this.Canvas.fillStyle=bgColor;this.Canvas.fillRect(textLeft,bgTop,textHeight,width);this.DrawHScreenText({X:y,Y:bgTop},{Text:item.Title,Color:item.TextColor,XOffset:1*pixelTatio,YOffset:2*pixelTatio});}else{var bgTop=y-textHeight/2-1*pixelTatio;var textLeft=right-width-1*pixelTatio;this.Canvas.fillStyle=bgColor;this.Canvas.fillRect(textLeft,bgTop,width,textHeight);this.Canvas.fillStyle=item.TextColor;this.Canvas.fillText(item.Title,textLeft+1*pixelTatio,y);}}}}}};this.AddHorizontalLabel=function(left,top,width,height,item,lineID){var rtLabel={Left:left,Top:top,Width:width,Height:height};rtLabel.Right=rtLabel.Left+rtLabel.Width;rtLabel.Bottom=rtLabel.Top+rtLabel.Height;var lableItem={Rect:rtLabel,Item:item,ID:item.ClickData.ID,Args:item.ClickData.Args,LineID:lineID};this.HorizontalLabel.push(lableItem);};this.DrawCustomAreaItem=function(item)//自定义Y轴区域
2843
2843
  {if(!item.AreaData)return;if(this.IsHScreen)return;//暂时不支持横屏
@@ -2980,6 +2980,7 @@ this.MaxMinWindow=g_JSChartResource.KLineToolbar.MaxMinWindow;this.TitleWindow=g
2980
2980
  this.AddIndexWindow=g_JSChartResource.KLineToolbar.AddIndexWindow;//是否显示'增加指标窗口'菜单
2981
2981
  this.IndexHelp=g_JSChartResource.KLineToolbar.IndexHelp;this.IndexAIAnalyze=g_JSChartResource.KLineToolbar.IndexAIAnalyze;this.SelBorderColor=g_JSChartResource.SelFrameBorderColor;this.ReDrawToolbar=false;this.LastCalculateStatus={Width:0,XPointCount:0};//最后一次计算宽度的状态
2982
2982
  this.CustomHorizontalInfo=[];//定制Y轴刻度
2983
+ this.SystemHorizontalInfo=[];//外部联动系统Y轴刻度
2983
2984
  this.IsDrawTitleBG=g_JSChartResource.KLineToolbar.IsDrawTitleBG;this.IsShowNameArrow=g_JSChartResource.KLineToolbar.IsShowNameArrow;this.CustomVerticalInfo=[];//定制X轴刻度 Type:0, Date:, Time: , Line:{ Color:线段颜色, Type:线段类型 0 直线 1 虚线 }
2984
2985
  // Type:1, Space: 第几个空白间距, Line:{ Color:线段颜色, Type:线段类型 0 直线 1 虚线 }
2985
2986
  this.DrawCustomVerticalEvent;this.RightSpaceCount=0;this.Logarithmic=null;//{Up:上部 , Donw:下部 , OpenPrice:第一个开盘价}
@@ -3045,14 +3046,16 @@ JSConsole.Chart.Log('[KLineFrame::ZoomDown] Show all data. XPointCount='+xPointC
3045
3046
  {var moveOffset=xPointCount-this.XPointCount+1;var leftOffset=parseInt(cursorIndex.Index/this.XPointCount*moveOffset);var rightOffset=moveOffset-leftOffset;var dataOffset=this.Data.DataOffset-leftOffset;if(dataOffset+(xPointCount-this.RightSpaceCount)>=dataCount)dataOffset=this.Data.DataOffset-moveOffset;}this.XPointCount=xPointCount;this.Data.DataOffset=dataOffset;if(this.Data.DataOffset<0)this.Data.DataOffset=0;JSConsole.Chart.Log('[KLineFrame::ZoomDown] 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.GetFrameWidth=function(){if(this.IsHScreen){var border=this.ChartBorder.GetHScreenBorder();return border.BottomEx-border.TopEx;//return this.ChartBorder.GetHeight();
3046
3047
  }else{var border=this.ChartBorder.GetBorder();return border.RightEx-border.LeftEx;//return this.ChartBorder.GetWidth();
3047
3048
  }};this.DrawCustomHorizontal=function()//Y轴刻度定制显示
3048
- {if(this.IsMinSize)return;if(this.ChartBorder.IsShowTitleOnly)return;if(!IFrameSplitOperator.IsNonEmptyArray(this.CustomHorizontalInfo))return;var aryHorizontal=this.CustomHorizontalInfo.slice();aryHorizontal.sort(function(left,right){return right.Value-left.Value;});var mapTextRect=new _map2.default();//key=position(1=左外 2=左内, 3=右外 4=右内), value:{ Rect:, Item: }
3049
+ {if(this.IsMinSize)return;if(this.ChartBorder.IsShowTitleOnly)return;if(IFrameSplitOperator.IsNonEmptyArray(this.CustomHorizontalInfo)){var aryHorizontal=this.CustomHorizontalInfo.slice();aryHorizontal.sort(function(left,right){return right.Value-left.Value;});var mapTextRect=new _map2.default();//key=position(1=左外 2=左内, 3=右外 4=右内), value:{ Rect:, Item: }
3049
3050
  for(var i=0;i<aryHorizontal.length;++i){var item=aryHorizontal[i];switch(item.Type){case 0://最新价格刻度
3050
3051
  case 1://固定价格刻度
3051
3052
  this.DrawCustomItem(item,mapTextRect);break;case 2://当前屏最后一个K线价格刻度
3052
3053
  case 3://主图K线涨幅刻度
3053
3054
  case 4://叠加K线涨幅刻度
3054
3055
  case 10://自定义的
3055
- this.DrawCustomItem(item,mapTextRect);break;}}};//Y轴面积背景
3056
+ this.DrawCustomItem(item,mapTextRect);break;}}}//外部联动Y轴刻度显示
3057
+ if(IFrameSplitOperator.IsNonEmptyArray(this.SystemHorizontalInfo)){for(var i=0;i<this.SystemHorizontalInfo.length;++i){var item=this.SystemHorizontalInfo[i];if(!item.IsShow)continue;switch(item.Type){case 1://固定价格刻度
3058
+ this.DrawCustomItem(item,mapTextRect);break;}}}};//Y轴面积背景
3056
3059
  this.DrawCustomHorizontalArea=function(){if(this.IsMinSize)return;if(this.ChartBorder.IsShowTitleOnly)return;if(!IFrameSplitOperator.IsNonEmptyArray(this.CustomHorizontalInfo))return;for(var i=0;i<this.CustomHorizontalInfo.length;++i){var item=this.CustomHorizontalInfo[i];if(item.Type==5)this.DrawCustomAreaItem(item);}};this.DrawCustomVerticalItem=function(item){this.Canvas.save();if(item.Data.Line.Type==1)this.Canvas.setLineDash([5,5]);//虚线
3057
3060
  this.Canvas.strokeStyle=item.Data.Line.Color;this.Canvas.beginPath();if(item.IsHScreen){this.Canvas.moveTo(item.Top,ToFixedPoint(item.X));this.Canvas.lineTo(item.Bottom,ToFixedPoint(item.X));}else{this.Canvas.moveTo(ToFixedPoint(item.X),item.Top);this.Canvas.lineTo(ToFixedPoint(item.X),item.Bottom);}this.Canvas.stroke();this.Canvas.restore();};this.DrawCustomVertical=function()//X轴定制刻度显示
3058
3061
  {if(!this.CustomVerticalInfo)return;if(this.CustomVerticalInfo.length<=0)return;if(!this.Data)return;var isHScreen=this.IsHScreen;var top=this.ChartBorder.GetTopEx();var bottom=this.ChartBorder.GetBottomEx();var dataWidth=this.DataWidth;var distanceWidth=this.DistanceWidth;var xOffset=this.ChartBorder.GetLeft()+distanceWidth/2.0+2.0;if(isHScreen){xOffset=this.ChartBorder.GetTop()+distanceWidth/2.0+2.0;top=this.ChartBorder.GetLeftEx();bottom=this.ChartBorder.GetRightEx();}var j=0;for(var i=this.Data.DataOffset;i<this.Data.Data.length&&j<this.XPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var kItem=this.Data.Data[i];for(var k in this.CustomVerticalInfo){var item=this.CustomVerticalInfo[k];if(item.Type!=0)continue;if(IFrameSplitOperator.IsNumber(item.Time)){if(kItem.Date!=item.Date||kItem.Time!=item.Time)continue;}else{if(kItem.Date!=item.Date)continue;}var left=xOffset;var right=xOffset+dataWidth;var x=left+(right-left)/2;var DrawData={X:x,Top:top,Bottom:bottom,Data:item,IsHScreen:isHScreen};this.DrawCustomVerticalItem(DrawData);if(this.DrawCustomVerticalEvent)this.DrawCustomVerticalEvent.Callback(this.DrawCustomVerticalEvent,DrawData,this);break;}}for(var i=1;j<this.XPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){for(var k in this.CustomVerticalInfo){var item=this.CustomVerticalInfo[k];if(item.Type!=1)continue;if(item.Space!=i)continue;var left=xOffset;var right=xOffset+dataWidth;var x=left+(right-left)/2;var DrawData={X:x,Top:top,Bottom:bottom,Data:item,IsHScreen:isHScreen};this.DrawCustomVerticalItem(DrawData);if(this.DrawCustomVerticalEvent)this.DrawCustomVerticalEvent.Callback(this.DrawCustomVerticalEvent,DrawData,this);break;}}};this.DrawSelectedBorder=function(option){if(this.Identify===0)return;var border=this.IsHScreen==true?this.ChartBorder.GetHScreenBorder():this.ChartBorder.GetBorder();var left=ToFixedPoint(border.Left);var top=ToFixedPoint(border.Top);var right=ToFixedPoint(border.Right);var bottom=ToFixedPoint(border.Bottom);var height=bottom-top;this.Canvas.strokeStyle=this.SelBorderColor;if(option.Mode==1){var xRight=ToFixedPoint(border.ChartWidth);this.Canvas.strokeRect(right,top,xRight-right-1,height);//少一个像素让边框显示出来
@@ -7849,7 +7852,8 @@ LeftMargin:5*GetDevicePixelRatio(),RightMargin:5*GetDevicePixelRatio(),MoveStep:
7849
7852
  Label:{Color:"rgb(50,50,50)",Font:13*GetDevicePixelRatio()+'px \u5FAE\u8F6F\u96C5\u9ED1',Margin:{Left:10*GetDevicePixelRatio(),Bottom:1,Right:10*GetDevicePixelRatio()}}};this.OrderList={BorderColor:'rgba(192,192,192, 0.3)',//边框线
7850
7853
  Header:{Color:"RGB(60,60,60)",Margin:{Left:5,Right:5,Top:2,Bottom:4},Font:{Size:14,Name:"微软雅黑"}},Item:{Margin:{Top:2,Bottom:4,Left:5,Right:5},//单元格四周间距
7851
7854
  Font:{Size:15,Name:"微软雅黑"}},FieldColor:{Text:"rgb(60,60,60)"//默认文本
7852
- },UpTextColor:"rgb(238,21,21)",//上涨文字颜色
7855
+ },Footer:{Margin:{Top:4,Bottom:4},Font:{Size:14,Name:"微软雅黑"},ItemMargin:{Top:2,Bottom:4,Left:5,Right:5},ResetButton:{Icon:{LockedText:'\uE6CE',Text:'\uE6E6',Color:'rgb(0,0,0)',Family:"iconfont",Size:18},//BGColor:"rgb(30,144,255)",
7856
+ ArcColor:"rgba(255,224,178,0.8)",MoveOnColor:"rgb(242,242,242)",Size:20}},UpTextColor:"rgb(238,21,21)",//上涨文字颜色
7853
7857
  DownTextColor:"rgb(25,158,0)",//下跌文字颜色
7854
7858
  UnchagneTextColor:"rgb(0,0,0)",//平盘文字颜色
7855
7859
  Selected:{BGColor:"rgb(180,240,240)",LineColor:"rgb(128,128,128)",LineWidth:2},MoveOn:{LineColor:"rgb(55, 131, 250)",LineWidth:2},//自定义颜色
@@ -10110,7 +10114,7 @@ PyScriptIndex.prototype.GetDefaultColor=function(id){var COLOR_ARRAY=["rgb(255,1
10110
10114
  *//*
10111
10115
  信息地雷列表
10112
10116
  */function JSKLineInfoMap(){}JSKLineInfoMap.InfoMap=new _map2.default([["互动易",{Create:function Create(){return new InvestorInfo();},ClassName:"InvestorInfo"}],["公告",{Create:function Create(){return new AnnouncementInfo();},ClassName:"AnnouncementInfo"}],["业绩预告",{Create:function Create(){return new PforecastInfo();},ClassName:"PforecastInfo"}],["调研",{Create:function Create(){return new ResearchInfo();},ClassName:"ResearchInfo"}],["大宗交易",{Create:function Create(){return new BlockTrading();},ClassName:"BlockTrading"}],["龙虎榜",{Create:function Create(){return new DragonTigerInfo();},ClassName:"DragonTigerInfo"}],["新闻",{Create:function Create(){return new NewsInfo();},ClassName:"NewsInfo"}],['除权',{Create:function Create(){return new DividendInfo();},ClassName:"DividendInfo"}],["扩展信息",{Create:function Create(){return new ExtendInfo();},ClassName:"ExtendInfo"}]]);JSKLineInfoMap.Get=function(id){return JSKLineInfoMap.InfoMap.get(id);};JSKLineInfoMap.GetClassInfo=function(id){return JSKLineInfoMap.Get(id);};JSKLineInfoMap.GetIconUrl=function(type,item){switch(type){case KLINE_INFO_TYPE.INVESTOR:return g_JSChartResource.KLine.Info.Investor.Icon;break;case KLINE_INFO_TYPE.PFORECAST:return g_JSChartResource.KLine.Info.Pforecast.Icon;case KLINE_INFO_TYPE.ANNOUNCEMENT:return g_JSChartResource.KLine.Info.Announcement.Icon;case KLINE_INFO_TYPE.ANNOUNCEMENT_QUARTER_1:case KLINE_INFO_TYPE.ANNOUNCEMENT_QUARTER_2:case KLINE_INFO_TYPE.ANNOUNCEMENT_QUARTER_3:case KLINE_INFO_TYPE.ANNOUNCEMENT_QUARTER_4:return g_JSChartResource.KLine.Info.Announcement.IconQuarter;case KLINE_INFO_TYPE.RESEARCH:return g_JSChartResource.KLine.Info.Research.Icon;case KLINE_INFO_TYPE.BLOCKTRADING:return g_JSChartResource.KLine.Info.BlockTrading.Icon;case KLINE_INFO_TYPE.DRAGON_TIGER:return g_JSChartResource.KLine.Info.DragonTiger.Icon;case KLINE_INFO_TYPE.NEWS:return g_JSChartResource.KLine.Info.News.Icon;case KLINE_INFO_TYPE.DIVIDEND:return g_JSChartResource.KLine.Info.Dividend.Icon;default:return g_JSChartResource.KLine.Info.Announcement.Icon;}};JSKLineInfoMap.GetIconFont=function(type){//公告扩展数据
10113
- if(type>=KLINE_INFO_TYPE.ANNOUNCEMENT_EX_START&&type<=KLINE_INFO_TYPE.ANNOUNCEMENT_EX_END){var index=type-KLINE_INFO_TYPE.ANNOUNCEMENT_EX_START;var value=g_JSChartResource.KLine.Info.AnnouncementEx.Defalut;var aryData=g_JSChartResource.KLine.Info.AnnouncementEx.AryIconFont;if(IFrameSplitOperator.IsNonEmptyArray(aryData)&&aryData[index])value=aryData[index];return value;}if(type>=KLINE_INFO_TYPE.EXTEND_INFO_START&&type<=KLINE_INFO_TYPE.EXTEND_INFO_END){var index=type-KLINE_INFO_TYPE.EXTEND_INFO_START;var value=g_JSChartResource.KLine.Info.ExtendInfo.Default;var aryData=g_JSChartResource.KLine.Info.ExtendInfo.AryIconFont;if(IFrameSplitOperator.IsNonEmptyArray(aryData)&&aryData[index])value=aryData[index];return value;}if(type>=KLINE_INFO_TYPE.DRAGON_TIGER_EX_START&&type<=KLINE_INFO_TYPE.DRAGON_TIGER_EX_END){var index=type-KLINE_INFO_TYPE.DRAGON_TIGER_EX_START;var value=g_JSChartResource.KLine.Info.DragonTiger.IconFont;var aryData=g_JSChartResource.KLine.Info.DragonTiger.AryIconFont;if(IFrameSplitOperator.IsNonEmptyArray(aryData)&&aryData[index])value=aryData[index];return value;}switch(type){case KLINE_INFO_TYPE.INVESTOR:return g_JSChartResource.KLine.Info.Investor.IconFont;break;case KLINE_INFO_TYPE.PFORECAST:return g_JSChartResource.KLine.Info.Pforecast.IconFont;case KLINE_INFO_TYPE.ANNOUNCEMENT:return g_JSChartResource.KLine.Info.Announcement.IconFont;case KLINE_INFO_TYPE.ANNOUNCEMENT_QUARTER_1:case KLINE_INFO_TYPE.ANNOUNCEMENT_QUARTER_2:case KLINE_INFO_TYPE.ANNOUNCEMENT_QUARTER_3:case KLINE_INFO_TYPE.ANNOUNCEMENT_QUARTER_4:return g_JSChartResource.KLine.Info.Announcement.IconFont2;case KLINE_INFO_TYPE.RESEARCH:return g_JSChartResource.KLine.Info.Research.IconFont;case KLINE_INFO_TYPE.BLOCKTRADING:return g_JSChartResource.KLine.Info.BlockTrading.IconFont;case KLINE_INFO_TYPE.DRAGON_TIGER:return g_JSChartResource.KLine.Info.DragonTiger.IconFont;case KLINE_INFO_TYPE.NEWS:return g_JSChartResource.KLine.Info.News.IconFont;case KLINE_INFO_TYPE.DIVIDEND:return g_JSChartResource.KLine.Info.Dividend.IconFont;default:return g_JSChartResource.KLine.Info.Announcement.IconFont;}};function IKLineInfo(){this.MaxRequestDataCount=1000;this.StartDate=20160101;this.Data;this.ClassName='IKLineInfo';this.Explain="IKLineInfo";this.GetToday=function(){var date=new Date();var today=date.getFullYear()*10000+(date.getMonth()+1)*100+date.getDate();return today;};this.Clear=function(){this.Data=[];};this.RequestData=function(hqChart,obj){var self=this;var param={HQChart:hqChart};this.Data=[];if(this.NetworkFilter(hqChart,obj))return;//已被上层替换,不调用默认的网络请求
10117
+ if(type>=KLINE_INFO_TYPE.ANNOUNCEMENT_EX_START&&type<=KLINE_INFO_TYPE.ANNOUNCEMENT_EX_END){var index=type-KLINE_INFO_TYPE.ANNOUNCEMENT_EX_START;var value=g_JSChartResource.KLine.Info.AnnouncementEx.Default;var aryData=g_JSChartResource.KLine.Info.AnnouncementEx.AryIconFont;if(IFrameSplitOperator.IsNonEmptyArray(aryData)&&aryData[index])value=aryData[index];return value;}if(type>=KLINE_INFO_TYPE.EXTEND_INFO_START&&type<=KLINE_INFO_TYPE.EXTEND_INFO_END){var index=type-KLINE_INFO_TYPE.EXTEND_INFO_START;var value=g_JSChartResource.KLine.Info.ExtendInfo.Default;var aryData=g_JSChartResource.KLine.Info.ExtendInfo.AryIconFont;if(IFrameSplitOperator.IsNonEmptyArray(aryData)&&aryData[index])value=aryData[index];return value;}if(type>=KLINE_INFO_TYPE.DRAGON_TIGER_EX_START&&type<=KLINE_INFO_TYPE.DRAGON_TIGER_EX_END){var index=type-KLINE_INFO_TYPE.DRAGON_TIGER_EX_START;var value=g_JSChartResource.KLine.Info.DragonTiger.IconFont;var aryData=g_JSChartResource.KLine.Info.DragonTiger.AryIconFont;if(IFrameSplitOperator.IsNonEmptyArray(aryData)&&aryData[index])value=aryData[index];return value;}switch(type){case KLINE_INFO_TYPE.INVESTOR:return g_JSChartResource.KLine.Info.Investor.IconFont;break;case KLINE_INFO_TYPE.PFORECAST:return g_JSChartResource.KLine.Info.Pforecast.IconFont;case KLINE_INFO_TYPE.ANNOUNCEMENT:return g_JSChartResource.KLine.Info.Announcement.IconFont;case KLINE_INFO_TYPE.ANNOUNCEMENT_QUARTER_1:case KLINE_INFO_TYPE.ANNOUNCEMENT_QUARTER_2:case KLINE_INFO_TYPE.ANNOUNCEMENT_QUARTER_3:case KLINE_INFO_TYPE.ANNOUNCEMENT_QUARTER_4:return g_JSChartResource.KLine.Info.Announcement.IconFont2;case KLINE_INFO_TYPE.RESEARCH:return g_JSChartResource.KLine.Info.Research.IconFont;case KLINE_INFO_TYPE.BLOCKTRADING:return g_JSChartResource.KLine.Info.BlockTrading.IconFont;case KLINE_INFO_TYPE.DRAGON_TIGER:return g_JSChartResource.KLine.Info.DragonTiger.IconFont;case KLINE_INFO_TYPE.NEWS:return g_JSChartResource.KLine.Info.News.IconFont;case KLINE_INFO_TYPE.DIVIDEND:return g_JSChartResource.KLine.Info.Dividend.IconFont;default:return g_JSChartResource.KLine.Info.Announcement.IconFont;}};function IKLineInfo(){this.MaxRequestDataCount=1000;this.StartDate=20160101;this.Data;this.ClassName='IKLineInfo';this.Explain="IKLineInfo";this.GetToday=function(){var date=new Date();var today=date.getFullYear()*10000+(date.getMonth()+1)*100+date.getDate();return today;};this.Clear=function(){this.Data=[];};this.RequestData=function(hqChart,obj){var self=this;var param={HQChart:hqChart};this.Data=[];if(this.NetworkFilter(hqChart,obj))return;//已被上层替换,不调用默认的网络请求
10114
10118
  JSConsole.Chart.Warn('[IKLineInfo::RequestData] '+this.ClassName+' NetworkFilter error.');};this.GetRequestData=function(hqChart){var obj={Symbol:hqChart.Symbol,MaxRequestDataCount:hqChart.MaxRequestDataCount,//日线数据个数
10115
10119
  MaxRequestMinuteDayCount:hqChart.MaxRequestMinuteDayCount,//分钟数据请求的天数
10116
10120
  Period:hqChart.Period//周期
@@ -16399,7 +16403,7 @@ if(this.MouseOnItem){if(this.MouseOnItem.Data==item)color=this.TextConfig.MouseO
16399
16403
  */this.Canvas.restore();this.ResizeDataCount(endIndex);};this.ResizeDataCount=function(startIndex){if(!IFrameSplitOperator.IsNumber(startIndex))return;if(startIndex<=0)return;if(this.LimitCount<=0)return;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.AryText))return;if(this.Data.AryText.length<=this.LimitCount)return;var delCount=this.Data.AryText.length-this.LimitCount;for(var i=0;i<delCount&&i<startIndex;++i){this.Data.AryText.shift();}};this.GetTooltipData=function(x,y,tooltip){var rtClient=this.GetClientRect();if(x>=rtClient.Left&&x<=rtClient.Right){for(var i=0;i<this.AryRect.length;++i){var item=this.AryRect[i];if(Path2DHelper.PtInRect(x,y,item.Rect)){tooltip.Data=item;tooltip.ChartPaint=this;tooltip.Type=1;return true;}}}return false;};this.ScrollStep=function(defaultStep){if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.AryText))return false;if(!this.FirstItem)return false;var moveStep=this.MoveStep;if(IFrameSplitOperator.IsNumber(defaultStep))moveStep=defaultStep;var rtClient=this.GetClientRect();var left=rtClient.Left;var right=rtClient.Right;var width=this.FirstItem.Move.Width;var xOffset=this.FirstItem.Move.XOffset+moveStep;if(right-xOffset+width<left){var startIndex=this.GetDataIndex(this.FirstItem);nextIndex=startIndex-1;if(nextIndex<0){var index=this.Data.AryText.length-1;this.FirstItem=this.Data.AryText[index];this.FirstItem.Move={XOffset:0};}else{this.FirstItem=this.Data.AryText[nextIndex];this.FirstItem.Move={XOffset:xOffset-width};}}else{this.FirstItem.Move.XOffset=xOffset;}return true;};}/********************************************************************************
16400
16404
  * 版本信息输出
16401
16405
  *
16402
- */var HQCHART_VERSION="1.1.15834";function PrintHQChartVersion(){var logo='\n\n*************************************************************************************************************************************************************************** \n* \n* :%@@- \n* :@@@@- \n* =@@@@ :#@@@ .:+#@@@#=: :=*@@@@@@#+-. *@@@@. \n* :@@@@@ .@@@@@ .#@@@@@@@@@@@- +@@@@@@@@@@@@@+ @@@@@ -%@@* \n* +@@@@% #@@@@# *@@@@@@@@@@@@@@%. =@@@@@@@@@@@@@@@- @@@@@ -@@@@+ \n* %@@@@* @@@@@+ .%@@@@@@@@@@@@@@@@%: #@@@@@@@@@@@@@@@% @@@@# *@@@@= \n* @@@@@= @@@@@- .%@@@@@@@*++*%@@@@@@% .%@@@@@@@%*+==+**= -@@@@+ #@@@@- \n* @@@@@. @@@@@. #@@@@@%= =@@@@@@* %@@@@@@#: *@@@@- :::. .-+*###+: ::: .+##+: -%%@@@@@%%%% \n* .@@@@@ .@@@@@. +@@@@@% .@@@@@@ *@@@@@@: %@@@@: +@@@@@%. :%@@@@@@@@@@: *@@@ :@@@@@* @@@@@@@@@@@@ \n* :@@@@@ :@@@@@ @@@@@% :@@@@@+ @@@@@@: %@@@@-@@@@@@@@@. @@@@@@@@@@@@@. :@@@%-@@@@@@.:@@@@@@@@@@@# \n* -@@@@% -@@@@@ =@@@@@. %@@@@% %@@@@@- %@@@@@@@@@@@@@@* %@@@@@@@@@@@@+ -@@@@@@@@@@# -@@@@@@@@@@@. \n* +@@@@%=========#@@@@% @@@@@# :@@@@@ .@@@@@% @@@@@@@@%@@@@@@@ -%+:. .#@@@@* +@@@@@@@%%@. .::+@@@@#:: \n* #@@@@@@@@@@@@@@@@@@@# .@@@@@ .@@@@@ :@@@@@. @@@@@@#. #@@@@@. -@@@@* #@@@@@@: *@@@@+ \n* %@@@@@@@@@@@@@@@@@@@+ :@@@@@ .@@@@@ -@@@@@ @@@@@+ @@@@@. :@@@@* @@@@@% #@@@@- \n* @@@@@@@@@@@@@@@@@@@@: :@@@@% :@@@@@ +@@@@% -@@@@+ @@@@@ -@@@@+ @@@@@. @@@@@. \n* .@@@@@@@@@@@@@@@@@@@@ :@@@@% -@@@@% *@@@@% #@@@@. @@@@@ .=*#%%%@@@@@= :@@@@# @@@@@. \n* -@@@@@:::::::::=@@@@@ :@@@@@ @@@@@* +@@@@% @@@@@ @@@@% -#@@@@@@@@@@@@: -@@@@* @@@@@ \n* =@@@@% =@@@@% .@@@@@ :@@@@@. -@@@@% @@@@@ .@@@@* +@@@@@@@@@@@@@@. =@@@@+ .@@@@@ \n* +@@@@# +@@@@# @@@@@# %@@@@% :@@@@@ .@@@@% =@@@@= -@@@@@*-:..%@@@@ +@@@@= :@@@@# \n* *@@@@* *@@@@* +@@@@@: #@@@@@+ .@@@@@@ :@@@@% *@@@@- @@@@@. @@@@% #@@@@: =@@@@+ \n* %@@@@= %@@@@+ @@@@@@- .%@@@@@# #@@@@@# :@@@@% #@@@@: @@@@% @@@@* %@@@@. #@@@@- \n* @@@@@- @@@@@= =@@@@@@#=...-*@@@@@@@: @@@@@@%=. :+**. :@@@@* %@@@@. .@@@@* *@@@@= @@@@@ %@@@@+ \n* .@@@@@: .@@@@@: *@@@@@@@@@@@@@@@@@@@# =@@@@@@@@%%%@@@@@@ +@@@@- @@@@@ .@@@@@: :%@@@@@- .@@@@% %@@@@@*+- \n* :@@@@@ :@@@@@ +@@@@@@@@@@@@@@@@@@@# =@@@@@@@@@@@@@@@@% %@@@@ @@@@@ @@@@@@@@@@@@@@@: -@@@@* *@@@@@@@@- \n* =@@@@@ -@@@@@ :@@@@@@@@@@@@@@@@@@@# :@@@@@@@@@@@@@@@% @@@@@ %@@@% #@@@@@@@@@#@@@@. +@@@@- .@@@@@@@@# \n* *@@@@# =@@@@% :#@@@@@@@#: :@@@@@= =@@@@@@@@@@@+. @@@@@ :@@@+ *@@@@@@@- %@@@ *@@@= =@@@@@@@* \n* =++++- -++++= .:::. .=*+: :-=+++=:. ****= .=+. .-++=: :+++ -+=: .-=+=:. \n* \n* \n* HQChart \n* Ver: '+HQCHART_VERSION+' \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n************************************************************************************************************************************************************************** \n ';console.log(logo);}PrintHQChartVersion();//把给外界调用的方法暴露出来
16406
+ */var HQCHART_VERSION="1.1.15844";function PrintHQChartVersion(){var logo='\n\n*************************************************************************************************************************************************************************** \n* \n* :%@@- \n* :@@@@- \n* =@@@@ :#@@@ .:+#@@@#=: :=*@@@@@@#+-. *@@@@. \n* :@@@@@ .@@@@@ .#@@@@@@@@@@@- +@@@@@@@@@@@@@+ @@@@@ -%@@* \n* +@@@@% #@@@@# *@@@@@@@@@@@@@@%. =@@@@@@@@@@@@@@@- @@@@@ -@@@@+ \n* %@@@@* @@@@@+ .%@@@@@@@@@@@@@@@@%: #@@@@@@@@@@@@@@@% @@@@# *@@@@= \n* @@@@@= @@@@@- .%@@@@@@@*++*%@@@@@@% .%@@@@@@@%*+==+**= -@@@@+ #@@@@- \n* @@@@@. @@@@@. #@@@@@%= =@@@@@@* %@@@@@@#: *@@@@- :::. .-+*###+: ::: .+##+: -%%@@@@@%%%% \n* .@@@@@ .@@@@@. +@@@@@% .@@@@@@ *@@@@@@: %@@@@: +@@@@@%. :%@@@@@@@@@@: *@@@ :@@@@@* @@@@@@@@@@@@ \n* :@@@@@ :@@@@@ @@@@@% :@@@@@+ @@@@@@: %@@@@-@@@@@@@@@. @@@@@@@@@@@@@. :@@@%-@@@@@@.:@@@@@@@@@@@# \n* -@@@@% -@@@@@ =@@@@@. %@@@@% %@@@@@- %@@@@@@@@@@@@@@* %@@@@@@@@@@@@+ -@@@@@@@@@@# -@@@@@@@@@@@. \n* +@@@@%=========#@@@@% @@@@@# :@@@@@ .@@@@@% @@@@@@@@%@@@@@@@ -%+:. .#@@@@* +@@@@@@@%%@. .::+@@@@#:: \n* #@@@@@@@@@@@@@@@@@@@# .@@@@@ .@@@@@ :@@@@@. @@@@@@#. #@@@@@. -@@@@* #@@@@@@: *@@@@+ \n* %@@@@@@@@@@@@@@@@@@@+ :@@@@@ .@@@@@ -@@@@@ @@@@@+ @@@@@. :@@@@* @@@@@% #@@@@- \n* @@@@@@@@@@@@@@@@@@@@: :@@@@% :@@@@@ +@@@@% -@@@@+ @@@@@ -@@@@+ @@@@@. @@@@@. \n* .@@@@@@@@@@@@@@@@@@@@ :@@@@% -@@@@% *@@@@% #@@@@. @@@@@ .=*#%%%@@@@@= :@@@@# @@@@@. \n* -@@@@@:::::::::=@@@@@ :@@@@@ @@@@@* +@@@@% @@@@@ @@@@% -#@@@@@@@@@@@@: -@@@@* @@@@@ \n* =@@@@% =@@@@% .@@@@@ :@@@@@. -@@@@% @@@@@ .@@@@* +@@@@@@@@@@@@@@. =@@@@+ .@@@@@ \n* +@@@@# +@@@@# @@@@@# %@@@@% :@@@@@ .@@@@% =@@@@= -@@@@@*-:..%@@@@ +@@@@= :@@@@# \n* *@@@@* *@@@@* +@@@@@: #@@@@@+ .@@@@@@ :@@@@% *@@@@- @@@@@. @@@@% #@@@@: =@@@@+ \n* %@@@@= %@@@@+ @@@@@@- .%@@@@@# #@@@@@# :@@@@% #@@@@: @@@@% @@@@* %@@@@. #@@@@- \n* @@@@@- @@@@@= =@@@@@@#=...-*@@@@@@@: @@@@@@%=. :+**. :@@@@* %@@@@. .@@@@* *@@@@= @@@@@ %@@@@+ \n* .@@@@@: .@@@@@: *@@@@@@@@@@@@@@@@@@@# =@@@@@@@@%%%@@@@@@ +@@@@- @@@@@ .@@@@@: :%@@@@@- .@@@@% %@@@@@*+- \n* :@@@@@ :@@@@@ +@@@@@@@@@@@@@@@@@@@# =@@@@@@@@@@@@@@@@% %@@@@ @@@@@ @@@@@@@@@@@@@@@: -@@@@* *@@@@@@@@- \n* =@@@@@ -@@@@@ :@@@@@@@@@@@@@@@@@@@# :@@@@@@@@@@@@@@@% @@@@@ %@@@% #@@@@@@@@@#@@@@. +@@@@- .@@@@@@@@# \n* *@@@@# =@@@@% :#@@@@@@@#: :@@@@@= =@@@@@@@@@@@+. @@@@@ :@@@+ *@@@@@@@- %@@@ *@@@= =@@@@@@@* \n* =++++- -++++= .:::. .=*+: :-=+++=:. ****= .=+. .-++=: :+++ -+=: .-=+=:. \n* \n* \n* HQChart \n* Ver: '+HQCHART_VERSION+' \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n************************************************************************************************************************************************************************** \n ';console.log(logo);}PrintHQChartVersion();//把给外界调用的方法暴露出来
16403
16407
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
16404
16408
  // BaseIndex:BaseIndex,
16405
16409
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.15835",
3
+ "version": "1.1.15845",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -20325,6 +20325,11 @@ function AverageWidthFrame()
20325
20325
  var outItem={ Text:text[i].Text, Width:value+2*pixelTatio };
20326
20326
  if (item.TextColor) outItem.TextColor=item.TextColor;
20327
20327
  if (item.BGColor) outItem.BGColor=item.BGColor;
20328
+ if (item.Border && item.Border.Color)
20329
+ {
20330
+ outItem.Border={ Color:item.Border.Color };
20331
+ if (IFrameSplitOperator.IsNumber(item.Border.Width)) outItem.Border.Width=item.Border.Width;
20332
+ }
20328
20333
  if (IFrameSplitOperator.IsBool(item.EnableBGColor)) outItem.EnableBGColor=item.EnableBGColor; //是否启用背景色
20329
20334
  aryText.push(outItem);
20330
20335
  }
@@ -20908,6 +20913,12 @@ function AverageWidthFrame()
20908
20913
  if (itemText.BGColor) textBGColor=itemText.BGColor;
20909
20914
  this.Canvas.fillStyle=textBGColor;
20910
20915
  this.Canvas.fillRect(textLeft,bgTop,itemText.Width,textHeight);
20916
+ if (itemText.Border && itemText.Border.Color)
20917
+ {
20918
+ this.Canvas.strokeStyle=itemText.Border.Color;
20919
+ this.Canvas.strokeRect(ToFixedPoint(textLeft),ToFixedPoint(bgTop),ToFixedRect(itemText.Width+1),ToFixedRect(textHeight));
20920
+ }
20921
+
20911
20922
  if (itemText.TextColor) this.Canvas.fillStyle=itemText.TextColor;
20912
20923
  else this.Canvas.fillStyle = item.TextColor;
20913
20924
  this.Canvas.fillText(itemText.Text, textLeft + 1*pixelTatio, yText);
@@ -23786,6 +23797,7 @@ function KLineFrame()
23786
23797
  this.LastCalculateStatus={ Width:0, XPointCount:0 }; //最后一次计算宽度的状态
23787
23798
 
23788
23799
  this.CustomHorizontalInfo=[]; //定制Y轴刻度
23800
+ this.SystemHorizontalInfo=[]; //外部联动系统Y轴刻度
23789
23801
  this.IsDrawTitleBG=g_JSChartResource.KLineToolbar.IsDrawTitleBG;
23790
23802
  this.IsShowNameArrow=g_JSChartResource.KLineToolbar.IsShowNameArrow;
23791
23803
 
@@ -24716,26 +24728,44 @@ function KLineFrame()
24716
24728
  {
24717
24729
  if (this.IsMinSize) return;
24718
24730
  if (this.ChartBorder.IsShowTitleOnly) return;
24719
- if (!IFrameSplitOperator.IsNonEmptyArray(this.CustomHorizontalInfo)) return;
24720
24731
 
24721
- var aryHorizontal=this.CustomHorizontalInfo.slice();
24722
- aryHorizontal.sort((left, right)=>{ return right.Value-left.Value; });
24723
- var mapTextRect=new Map(); //key=position(1=左外 2=左内, 3=右外 4=右内), value:{ Rect:, Item: }
24724
- for(var i=0; i<aryHorizontal.length; ++i)
24732
+ if (IFrameSplitOperator.IsNonEmptyArray(this.CustomHorizontalInfo))
24725
24733
  {
24726
- var item=aryHorizontal[i];
24727
- switch(item.Type)
24734
+ var aryHorizontal=this.CustomHorizontalInfo.slice();
24735
+ aryHorizontal.sort((left, right)=>{ return right.Value-left.Value; });
24736
+ var mapTextRect=new Map(); //key=position(1=左外 2=左内, 3=右外 4=右内), value:{ Rect:, Item: }
24737
+ for(var i=0; i<aryHorizontal.length; ++i)
24728
24738
  {
24729
- case 0: //最新价格刻度
24730
- case 1: //固定价格刻度
24731
- this.DrawCustomItem(item, mapTextRect);
24732
- break;
24733
- case 2: //当前屏最后一个K线价格刻度
24734
- case 3: //主图K线涨幅刻度
24735
- case 4: //叠加K线涨幅刻度
24736
- case 10://自定义的
24737
- this.DrawCustomItem(item, mapTextRect);
24739
+ var item=aryHorizontal[i];
24740
+ switch(item.Type)
24741
+ {
24742
+ case 0: //最新价格刻度
24743
+ case 1: //固定价格刻度
24744
+ this.DrawCustomItem(item, mapTextRect);
24745
+ break;
24746
+ case 2: //当前屏最后一个K线价格刻度
24747
+ case 3: //主图K线涨幅刻度
24748
+ case 4: //叠加K线涨幅刻度
24749
+ case 10://自定义的
24750
+ this.DrawCustomItem(item, mapTextRect);
24751
+ break;
24752
+ }
24753
+ }
24754
+ }
24755
+
24756
+ //外部联动Y轴刻度显示
24757
+ if (IFrameSplitOperator.IsNonEmptyArray(this.SystemHorizontalInfo))
24758
+ {
24759
+ for(var i=0;i<this.SystemHorizontalInfo.length;++i)
24760
+ {
24761
+ var item=this.SystemHorizontalInfo[i];
24762
+ if (!item.IsShow) continue;
24763
+ switch(item.Type)
24764
+ {
24765
+ case 1: //固定价格刻度
24766
+ this.DrawCustomItem(item, mapTextRect);
24738
24767
  break;
24768
+ }
24739
24769
  }
24740
24770
  }
24741
24771
  }
@@ -86452,6 +86482,22 @@ function JSChartResource()
86452
86482
  Text:"rgb(60,60,60)", //默认文本
86453
86483
  },
86454
86484
 
86485
+ Footer:
86486
+ {
86487
+ Margin:{ Top:4, Bottom:4 },
86488
+ Font:{ Size:14, Name:"微软雅黑" },
86489
+ ItemMargin:{ Top:2, Bottom:4,Left:5, Right:5 },
86490
+
86491
+ ResetButton:
86492
+ {
86493
+ Icon: { LockedText:'\ue6ce', Text:"\ue6e6", Color:'rgb(0,0,0)', Family:"iconfont", Size:18 },
86494
+ //BGColor:"rgb(30,144,255)",
86495
+ ArcColor:"rgba(255,224,178,0.8)",
86496
+ MoveOnColor:"rgb(242,242,242)",
86497
+ Size:20,
86498
+ }
86499
+ },
86500
+
86455
86501
  UpTextColor:"rgb(238,21,21)", //上涨文字颜色
86456
86502
  DownTextColor:"rgb(25,158,0)", //下跌文字颜色
86457
86503
  UnchagneTextColor:"rgb(0,0,0)", //平盘文字颜色
@@ -109357,7 +109403,7 @@ JSKLineInfoMap.GetIconFont=function(type)
109357
109403
  if (type>=KLINE_INFO_TYPE.ANNOUNCEMENT_EX_START && type<=KLINE_INFO_TYPE.ANNOUNCEMENT_EX_END)
109358
109404
  {
109359
109405
  var index=type-KLINE_INFO_TYPE.ANNOUNCEMENT_EX_START;
109360
- var value=g_JSChartResource.KLine.Info.AnnouncementEx.Defalut;
109406
+ var value=g_JSChartResource.KLine.Info.AnnouncementEx.Default;
109361
109407
  var aryData=g_JSChartResource.KLine.Info.AnnouncementEx.AryIconFont;
109362
109408
  if (IFrameSplitOperator.IsNonEmptyArray(aryData) && aryData[index]) value=aryData[index];
109363
109409
 
@@ -177379,7 +177425,7 @@ function ChartScrollText()
177379
177425
 
177380
177426
 
177381
177427
 
177382
- var HQCHART_VERSION="1.1.15834";
177428
+ var HQCHART_VERSION="1.1.15844";
177383
177429
 
177384
177430
  function PrintHQChartVersion()
177385
177431
  {