hqchart 1.1.13199 → 1.1.13204

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.
@@ -6010,11 +6010,11 @@ this.LineWidth=1;this.Precision=2;//小数位数
6010
6010
  this.ValueTextColor='rgb(250,250,250)';this.IsShowCorssCursor=true;//画的时候是否显示十字光标
6011
6011
  this.GetLabelCallback;//绘制标题回调函数
6012
6012
  this.PointCount=1;this.ClassName='ChartDrawHLine';this.Font=14*GetDevicePixelRatio()+"px 微软雅黑";this.TextFont=12*GetDevicePixelRatio()+"px 微软雅黑";this.RightSpaceWidth=50;this.ButtonPosition=0;//按钮位置, 0=价格后面, 1=价格上面
6013
- this.ButtonBGColor='rgb(190,190,190)';this.ButtonSpace=3;this.Button={CloseIcon:{Text:'\uE62B',Color:'rgb(255,255,255)',Family:"iconfont",Size:16,ID:JSCHART_BUTTON_ID.DRAW_PICTURE_DELETE,TooltipText:null},SettingIcon:{Text:'\uE623',Color:'rgb(255,255,255)',Family:"iconfont",Size:16,ID:JSCHART_BUTTON_ID.DRAW_PICTURE_SETTING,TooltipText:null//修改ID, Text , TooltipText 可以外部定制按钮
6013
+ this.ButtonBGColor='rgb(190,190,190)';this.ButtonSpace=3;this.TextMargin={Left:0,Right:0};this.Button={CloseIcon:{Text:'\uE62B',Color:'rgb(255,255,255)',Family:"iconfont",Size:16,ID:JSCHART_BUTTON_ID.DRAW_PICTURE_DELETE,TooltipText:null},SettingIcon:{Text:'\uE623',Color:'rgb(255,255,255)',Family:"iconfont",Size:16,ID:JSCHART_BUTTON_ID.DRAW_PICTURE_SETTING,TooltipText:null//修改ID, Text , TooltipText 可以外部定制按钮
6014
6014
  }};this.AryButton=[];this.ExtendData;//扩展数据
6015
6015
  this.ShowPriceTextConfig={IsShow:[false,false,true],//[0]=left内 [1]=right内 [2]=right外
6016
6016
  Font:[12*GetDevicePixelRatio()+'px \u5FAE\u8F6F\u96C5\u9ED1',12*GetDevicePixelRatio()+'px \u5FAE\u8F6F\u96C5\u9ED1']};//内部变量
6017
- this.ColseButtonSize=0;this.SettingButtonSize=0;this.ButtonBGWidth=0;this.SetOption=function(option){if(this.Super_SetOption)this.Super_SetOption(option);if(option){if(option.GetLabelCallback){this.GetLabelCallback=option.GetLabelCallback;}if(IFrameSplitOperator.IsNumber(option.Precision))this.Precision=option.Precision;if(IFrameSplitOperator.IsNumber(option.Precision))this.Precision=option.Precision;if(option.Font)this.Font=option.Font;if(option.ValueTextColor)this.ValueTextColor=option.ValueTextColor;if(IFrameSplitOperator.IsNumber(option.ButtonPosition))this.ButtonPosition=option.ButtonPosition;if(IFrameSplitOperator.IsNumber(option.RightSpaceWidth))this.RightSpaceWidth=option.RightSpaceWidth;if(option.Button){var item=option.Button;if(item.CloseIcon)this.Button.CloseIcon=CloneData(item.CloseIcon);else if(item.CloseIcon===null)this.Button.CloseIcon=null;if(item.SettingIcon)this.Button.SettingIcon=CloneData(item.SettingIcon);else if(item.SettingIcon===null)this.Button.SettingIcon=null;}if(option.ExtendData)this.ExtendData=option.ExtendData;if(IFrameSplitOperator.IsNonEmptyArray(option.IsShowPriceText)){for(var i=0;i<option.IsShowPriceText.length&&i<3;++i){var value=option.IsShowPriceText[i];if(IFrameSplitOperator.IsBool(value))this.ShowPriceTextConfig.IsShow[i]=value;}}}};this.ExportStorageData=function(){var storageData;if(this.Super_ExportStorageData){storageData=this.Super_ExportStorageData();if(this.Label)storageData.Label=this.Label;}return storageData;};this.IsPointIn=this.IsPointIn_XYValue_Line;/*
6017
+ this.ColseButtonSize=0;this.SettingButtonSize=0;this.ButtonBGWidth=0;this.SetOption=function(option){if(this.Super_SetOption)this.Super_SetOption(option);if(option){if(option.GetLabelCallback){this.GetLabelCallback=option.GetLabelCallback;}if(IFrameSplitOperator.IsNumber(option.Precision))this.Precision=option.Precision;if(IFrameSplitOperator.IsNumber(option.Precision))this.Precision=option.Precision;if(option.Font)this.Font=option.Font;if(option.ValueTextColor)this.ValueTextColor=option.ValueTextColor;if(IFrameSplitOperator.IsNumber(option.ButtonPosition))this.ButtonPosition=option.ButtonPosition;if(IFrameSplitOperator.IsNumber(option.RightSpaceWidth))this.RightSpaceWidth=option.RightSpaceWidth;if(option.Button){var item=option.Button;if(item.CloseIcon)this.Button.CloseIcon=CloneData(item.CloseIcon);else if(item.CloseIcon===null)this.Button.CloseIcon=null;if(item.SettingIcon)this.Button.SettingIcon=CloneData(item.SettingIcon);else if(item.SettingIcon===null)this.Button.SettingIcon=null;}if(option.ExtendData)this.ExtendData=option.ExtendData;if(IFrameSplitOperator.IsNonEmptyArray(option.IsShowPriceText)){for(var i=0;i<option.IsShowPriceText.length&&i<3;++i){var value=option.IsShowPriceText[i];if(IFrameSplitOperator.IsBool(value))this.ShowPriceTextConfig.IsShow[i]=value;}}if(option.TextMargin){var item=option.TextMargin;if(IFrameSplitOperator.IsNumber(item.Left))this.TextMargin.Left=item.Left;if(IFrameSplitOperator.IsNumber(item.Right))this.TextMargin.Right=item.Right;}}};this.ExportStorageData=function(){var storageData;if(this.Super_ExportStorageData){storageData=this.Super_ExportStorageData();if(this.Label)storageData.Label=this.Label;}return storageData;};this.IsPointIn=this.IsPointIn_XYValue_Line;/*
6018
6018
  this.GetXYCoordinate=function()
6019
6019
  {
6020
6020
  if (this.IsFrameMinSize()) return null;
@@ -6030,8 +6030,9 @@ if(labInfo)this.DrawLab(labInfo,drawPoint[0].Y);//画中心点
6030
6030
  var xCenter=left+(right-left)/2;var point={X:xCenter,Y:drawPoint[0].Y};this.DrawPoint([point]);this.Canvas.restore();//外部右侧显示价格
6031
6031
  if(this.ShowPriceTextConfig.IsShow[2]){var rtDraw={};this.CalculateButtonSize();this.DrawValueText(drawPoint[0].Y,rtDraw,labInfo);if(labInfo)this.DrawRightLab(labInfo,rtDraw);if(labInfo)this.DrawCustomHLine(labInfo,drawPoint[0].Y);}//鼠标是否在按钮上
6032
6032
  if(moveonPoint&&mouseStatus){for(var i=0;i<this.AryButton.length;++i){var item=this.AryButton[i];var rtButton=item.Rect;if(moveonPoint.X>=rtButton.Left&&moveonPoint.X<rtButton.Right&&moveonPoint.Y>=rtButton.Top&&moveonPoint.Y<=rtButton.Bottom){mouseStatus.MouseOnToolbar={Rect:rtButton,Item:item,Frame:this.Frame,Point:{X:moveonPoint.X,Y:moveonPoint.Y}};break;}}}};this.CalculateLabSize=function(labInfo){this.Canvas.textAlign="left";this.Canvas.textBaseline="top";this.Canvas.font=this.TextFont;var lineHeight=this.Canvas.measureText("擎").width+2;var maxNameWidth=0,maxTextWidth=0;var lineCount=0;var lineSpace=0;if(IFrameSplitOperator.IsNumber(labInfo.LineSpace))lineSpace=labInfo.LineSpace;var maxNameWidth=0,maxTextWidth=0;var lineCount=0;var maxWidth=0;for(var i=0;i<labInfo.AryText.length;++i){var item=labInfo.AryText[i];item.NameWidth=0;item.TextWidth=0;if(item.Name)item.NameWidth=this.Canvas.measureText(item.Name).width+2;if(item.Text)item.TextWidth=this.Canvas.measureText(item.Text).width+2;if(maxNameWidth<item.NameWidth)maxNameWidth=item.NameWidth;if(maxTextWidth<item.TextWidth)maxTextWidth=item.TextWidth;var itemWidth=item.NameWidth+item.TextWidth;if(maxWidth<itemWidth)maxWidth=itemWidth;++lineCount;}var size={Width:maxWidth,Height:lineCount*(lineHeight+lineSpace)+lineSpace,NameWidth:maxNameWidth,TextWidth:maxTextWidth,LineHeight:lineHeight};return size;};this.DrawLab=function(labInfo,y){if(!labInfo)return;if(!IFrameSplitOperator.IsNonEmptyArray(labInfo.AryText))return;if(labInfo.Position===2)return;var left=this.Frame.ChartBorder.GetLeft();var right=this.Frame.ChartBorder.GetRight();var labSize=this.CalculateLabSize(labInfo);var drawLeft=right-labSize.Width;var drawTop=y-labSize.Height-1;//背景色
6033
- if(labInfo.BGColor){this.Canvas.fillStyle=labInfo.BGColor;var rtTop=y-labSize.Height-4;this.Canvas.fillRect(ToFixedRect(drawLeft),ToFixedRect(rtTop),ToFixedRect(right+drawLeft),ToFixedRect(y-rtTop));}var yText=drawTop;for(var i=0;i<labInfo.AryText.length;++i){var item=labInfo.AryText[i];if(item.Name){this.Canvas.fillStyle=item.NameColor;this.Canvas.fillText(item.Name,drawLeft+1,yText+1);}if(item.Text){this.Canvas.fillStyle=item.TextColor;this.Canvas.fillText(item.Text,drawLeft+labSize.NameWidth+1,yText+1);}yText+=labSize.LineHeight;}};this.DrawRightLab=function(labInfo,rtLeftDraw){if(!labInfo)return;if(!IFrameSplitOperator.IsNonEmptyArray(labInfo.AryText))return;if(labInfo.Position!=2)return;var labSize=this.CalculateLabSize(labInfo);var drawLeft=rtLeftDraw.Right-labSize.Width;var drawTop=rtLeftDraw.Bottom;var lineSpace=0;if(IFrameSplitOperator.IsNumber(labInfo.LineSpace))lineSpace=labInfo.LineSpace;//背景色
6034
- if(labInfo.BGColor){this.Canvas.fillStyle=labInfo.BGColor;var rtTop=drawTop;this.Canvas.fillRect(ToFixedRect(drawLeft),ToFixedRect(rtTop),ToFixedRect(labSize.Width),ToFixedRect(labSize.Height));}var yText=drawTop+1+lineSpace;this.Canvas.textBaseline="top";for(var i=0;i<labInfo.AryText.length;++i){var item=labInfo.AryText[i];if(item.Name){this.Canvas.textAlign="left";this.Canvas.fillStyle=item.NameColor;this.Canvas.fillText(item.Name,drawLeft+1,yText+1);}if(item.Text){this.Canvas.textAlign="right";this.Canvas.fillStyle=item.TextColor;this.Canvas.fillText(item.Text,rtLeftDraw.Right-1,yText+1);}yText+=labSize.LineHeight+lineSpace;}};this.DrawCustomHLine=function(labInfo,yLine){if(!labInfo)return;if(!IFrameSplitOperator.IsNonEmptyArray(labInfo.AryLine))return;var left=this.Frame.ChartBorder.GetLeft();var right=this.Frame.ChartBorder.GetRight();var pixelRatio=GetDevicePixelRatio();var yMax=yLine,yMin=yLine;for(var i=0;i<labInfo.AryLine.length;++i){var item=labInfo.AryLine[i];if(!IFrameSplitOperator.IsNumber(item.Value))continue;var y=this.Frame.GetYFromData(item.Value);var yFixed=ToFixedPoint(y);var xRight=right;if(IFrameSplitOperator.IsNumber(item.Width))xRight=left+item.Width*pixelRatio;if(item.Color)this.Canvas.strokeStyle=item.Color;else this.Canvas.strokeStyle=this.LineColor;this.Canvas.beginPath();this.Canvas.moveTo(left,yFixed);this.Canvas.lineTo(xRight,yFixed);this.Canvas.stroke();if(yMax<yFixed)yMax=yFixed;if(yMin>yFixed)yMin=yFixed;}if(yMax!=yMin&&labInfo.VLine){var item=labInfo.VLine;var x=left+20*pixelRatio;if(IFrameSplitOperator.IsNumber(item.XOffset))x=left+item.XOffset*pixelRatio;x=ToFixedPoint(x);if(item.Color)this.Canvas.strokeStyle=item.Color;else this.Canvas.strokeStyle=this.LineColor;this.Canvas.beginPath();this.Canvas.moveTo(x,yMax);this.Canvas.lineTo(x,yMin);this.Canvas.stroke();}};this.DrawValueText=function(y,rtDraw,labInfo){var left=this.Frame.ChartBorder.GetLeft();var right=this.Frame.ChartBorder.GetRight();if(this.RightSpaceWidth>0){this.Canvas.strokeStyle=this.LineColor;this.Canvas.beginPath();this.Canvas.moveTo(right,ToFixedPoint(y));this.Canvas.lineTo(right+this.RightSpaceWidth,ToFixedPoint(y));this.Canvas.stroke();}var yValue=this.Frame.GetYData(y);var strValue=yValue.toFixed(this.Precision);if(labInfo&&labInfo.PriceSuffixText)strValue+=labInfo.PriceSuffixText;this.Canvas.fillStyle=this.LineColor;this.Canvas.font=this.Font;var textWidth=this.Canvas.measureText(strValue).width;var lineHeight=this.GetFontHeight();var rtBG={Left:right+this.RightSpaceWidth,Top:y-lineHeight/2,Width:textWidth+4,Height:lineHeight};rtBG.Right=rtBG.Left+rtBG.Width;rtBG.Bottom=rtBG.Top+rtBG.Height;if(this.ButtonPosition==1)this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width+this.ButtonBGWidth),ToFixedRect(rtBG.Height));else this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width),ToFixedRect(rtBG.Height));this.Canvas.fillStyle=this.ValueTextColor;this.Canvas.textAlign="left";this.Canvas.textBaseline="middle";this.Canvas.fillText(strValue,rtBG.Left+2,y);rtDraw.Left=rtBG.Left;rtDraw.Top=rtBG.Top;rtDraw.Bottom=rtBG.Bottom;rtDraw.Right=rtBG.Right;this.DrawButton(rtBG.Top,rtBG.Right,lineHeight,rtDraw);};this.DrawPriceText=function(text,ptStart,ptEnd,position){if(position!=1&&position!=0)return;var font=this.ShowPriceTextConfig.Font[position];this.Canvas.fillStyle=this.LineColor;this.Canvas.font=font;var textWidth=this.Canvas.measureText(text).width;var lineHeight=this.GetFontHeight();var rtBG=null;if(position==1){var rtBG={Left:ptStart.X,Top:ptStart.Y-lineHeight/2,Width:textWidth+4,Height:lineHeight};rtBG.Right=rtBG.Left+rtBG.Width;rtBG.Bottom=rtBG.Top+rtBG.Height;}else if(position==0){var rtBG={Right:ptEnd.X,Top:ptEnd.Y-lineHeight/2,Width:textWidth+4,Height:lineHeight};rtBG.Left=rtBG.Right-rtBG.Width;rtBG.Bottom=rtBG.Top+rtBG.Height;}this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width+this.ButtonBGWidth),ToFixedRect(rtBG.Height));this.Canvas.fillStyle=this.ValueTextColor;this.Canvas.textAlign="left";this.Canvas.textBaseline="middle";this.Canvas.fillText(text,rtBG.Left+2,ptStart.Y);};this.CalculateButtonSize=function(){var pixelRatio=GetDevicePixelRatio();if(this.Button.SettingIcon){var icon=this.Button.SettingIcon;var font=icon.Size*pixelRatio+'px '+icon.Family;this.Canvas.font=font;var width=this.Canvas.measureText(icon.Text).width;this.SettingButtonSize=width;}if(this.Button.CloseIcon){var icon=this.Button.CloseIcon;var font=icon.Size*pixelRatio+'px '+icon.Family;this.Canvas.font=font;var width=this.Canvas.measureText(icon.Text).width;this.ColseButtonSize=width;}if(this.ColseButtonSize<=0&&this.SettingButtonSize<=0)return;var buttonWidth=0;if(this.SettingButtonSize>0)buttonWidth+=this.SettingButtonSize;if(this.ColseButtonSize>0){if(buttonWidth>0)buttonWidth+=this.ButtonSpace;buttonWidth+=this.ColseButtonSize;}buttonWidth+=4;this.ButtonBGWidth=buttonWidth;};this.DrawButton=function(drawTop,drawLeft,drawHeight,rtDraw){if(this.ColseButtonSize<=0&&this.SettingButtonSize<=0)return;if(this.ButtonPosition==1)drawTop-=drawHeight;this.Canvas.fillStyle=this.LineColor;var left=drawLeft;var rtBG={Left:drawLeft,Top:drawTop,Width:this.ButtonBGWidth,Height:drawHeight};rtBG.Right=rtBG.Left+rtBG.Width;rtBG.Bottom=rtBG.Top+rtBG.Height;this.Canvas.fillStyle=this.ButtonBGColor;this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width),ToFixedRect(rtBG.Height));left+=1;var pixelRatio=GetDevicePixelRatio();if(this.Button.SettingIcon&&this.Button.SettingIcon.Text){var rtButton={Left:left,Top:drawTop,Width:this.SettingButtonSize,Height:drawHeight};rtButton.Right=rtButton.Left+rtButton.Width;rtButton.Bottom=rtButton.Top+rtButton.Height;var yCenter=rtButton.Top+rtButton.Height/2;var xCenter=rtButton.Left+rtButton.Width/2;var icon=this.Button.SettingIcon;this.Canvas.font=icon.Size*pixelRatio+'px '+icon.Family;this.Canvas.textAlign="center";this.Canvas.textBaseline="middle";this.Canvas.fillStyle=icon.Color;this.Canvas.fillText(this.Button.SettingIcon.Text,xCenter,yCenter);this.AryButton.push({Rect:rtButton,ID:icon.ID,TooltipText:icon.TooltipText});/*
6033
+ if(labInfo.BGColor){this.Canvas.fillStyle=labInfo.BGColor;var rtTop=y-labSize.Height-4;this.Canvas.fillRect(ToFixedRect(drawLeft),ToFixedRect(rtTop),ToFixedRect(right+drawLeft),ToFixedRect(y-rtTop));}var yText=drawTop;for(var i=0;i<labInfo.AryText.length;++i){var item=labInfo.AryText[i];if(item.Name){this.Canvas.fillStyle=item.NameColor;this.Canvas.fillText(item.Name,drawLeft+1,yText+1);}if(item.Text){this.Canvas.fillStyle=item.TextColor;this.Canvas.fillText(item.Text,drawLeft+labSize.NameWidth+1,yText+1);}yText+=labSize.LineHeight;}};this.DrawRightLab=function(labInfo,rtLeftDraw){if(!labInfo)return;if(!IFrameSplitOperator.IsNonEmptyArray(labInfo.AryText))return;if(labInfo.Position!=2)return;var labSize=this.CalculateLabSize(labInfo);var drawLeft=rtLeftDraw.Right-labSize.Width;if(drawLeft<rtLeftDraw.Left)drawLeft=rtLeftDraw.Left;var drawRight=drawLeft+labSize.Width;var drawTop=rtLeftDraw.Bottom;var lineSpace=0;if(IFrameSplitOperator.IsNumber(labInfo.LineSpace))lineSpace=labInfo.LineSpace;//背景色
6034
+ if(labInfo.BGColor){this.Canvas.fillStyle=labInfo.BGColor;var rtTop=drawTop;this.Canvas.fillRect(ToFixedRect(drawLeft),ToFixedRect(rtTop),ToFixedRect(labSize.Width),ToFixedRect(labSize.Height));}var yText=drawTop+1+lineSpace;this.Canvas.textBaseline="top";for(var i=0;i<labInfo.AryText.length;++i){var item=labInfo.AryText[i];if(item.Name){this.Canvas.textAlign="left";this.Canvas.fillStyle=item.NameColor;this.Canvas.fillText(item.Name,drawLeft+1,yText+1);}if(item.Text){this.Canvas.textAlign="right";this.Canvas.fillStyle=item.TextColor;this.Canvas.fillText(item.Text,drawRight-1,yText+1);}yText+=labSize.LineHeight+lineSpace;}};this.DrawCustomHLine=function(labInfo,yLine){if(!labInfo)return;if(!IFrameSplitOperator.IsNonEmptyArray(labInfo.AryLine))return;var left=this.Frame.ChartBorder.GetLeft();var right=this.Frame.ChartBorder.GetRight();var pixelRatio=GetDevicePixelRatio();var yMax=yLine,yMin=yLine;for(var i=0;i<labInfo.AryLine.length;++i){var item=labInfo.AryLine[i];if(!IFrameSplitOperator.IsNumber(item.Value))continue;var y=this.Frame.GetYFromData(item.Value);var yFixed=ToFixedPoint(y);var xRight=right;if(IFrameSplitOperator.IsNumber(item.Width))xRight=left+item.Width*pixelRatio;if(item.Color)this.Canvas.strokeStyle=item.Color;else this.Canvas.strokeStyle=this.LineColor;this.Canvas.beginPath();this.Canvas.moveTo(left,yFixed);this.Canvas.lineTo(xRight,yFixed);this.Canvas.stroke();if(yMax<yFixed)yMax=yFixed;if(yMin>yFixed)yMin=yFixed;}if(yMax!=yMin&&labInfo.VLine){var item=labInfo.VLine;var x=left+20*pixelRatio;if(IFrameSplitOperator.IsNumber(item.XOffset))x=left+item.XOffset*pixelRatio;x=ToFixedPoint(x);if(item.Color)this.Canvas.strokeStyle=item.Color;else this.Canvas.strokeStyle=this.LineColor;this.Canvas.beginPath();this.Canvas.moveTo(x,yMax);this.Canvas.lineTo(x,yMin);this.Canvas.stroke();}};this.DrawValueText=function(y,rtDraw,labInfo){var left=this.Frame.ChartBorder.GetLeft();var right=this.Frame.ChartBorder.GetRight();if(this.RightSpaceWidth>0){this.Canvas.strokeStyle=this.LineColor;this.Canvas.beginPath();this.Canvas.moveTo(right,ToFixedPoint(y));this.Canvas.lineTo(right+this.RightSpaceWidth,ToFixedPoint(y));this.Canvas.stroke();}var yValue=this.Frame.GetYData(y);var strValue=yValue.toFixed(this.Precision);if(labInfo&&labInfo.PriceSuffixText)strValue+=labInfo.PriceSuffixText;this.Canvas.fillStyle=this.LineColor;this.Canvas.font=this.Font;var textWidth=this.Canvas.measureText(strValue).width;var lineHeight=this.GetFontHeight();var rtBG={Left:right+this.RightSpaceWidth,Top:y-lineHeight/2,Width:textWidth+4,Height:lineHeight};//rtBG.Right=rtBG.Left+rtBG.Width;
6035
+ rtBG.Bottom=rtBG.Top+rtBG.Height;rtBG.Width+=this.TextMargin.Left+this.TextMargin.Right;rtBG.Right=rtBG.Left+rtBG.Width;var xText=rtBG.Left+this.TextMargin.Left+2;if(this.ButtonPosition==1){this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width+this.ButtonBGWidth),ToFixedRect(rtBG.Height));}else{this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width),ToFixedRect(rtBG.Height));}this.Canvas.fillStyle=this.ValueTextColor;this.Canvas.textAlign="left";this.Canvas.textBaseline="middle";this.Canvas.fillText(strValue,xText,y);rtDraw.Left=rtBG.Left;rtDraw.Top=rtBG.Top;rtDraw.Bottom=rtBG.Bottom;rtDraw.Right=rtBG.Right;this.DrawButton(rtBG.Top,rtBG.Right,lineHeight,rtDraw);};this.DrawPriceText=function(text,ptStart,ptEnd,position){if(position!=1&&position!=0)return;var font=this.ShowPriceTextConfig.Font[position];this.Canvas.fillStyle=this.LineColor;this.Canvas.font=font;var textWidth=this.Canvas.measureText(text).width;var lineHeight=this.GetFontHeight();var rtBG=null;if(position==1){var rtBG={Left:ptStart.X,Top:ptStart.Y-lineHeight/2,Width:textWidth+4,Height:lineHeight};rtBG.Right=rtBG.Left+rtBG.Width;rtBG.Bottom=rtBG.Top+rtBG.Height;}else if(position==0){var rtBG={Right:ptEnd.X,Top:ptEnd.Y-lineHeight/2,Width:textWidth+4,Height:lineHeight};rtBG.Left=rtBG.Right-rtBG.Width;rtBG.Bottom=rtBG.Top+rtBG.Height;}this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width+this.ButtonBGWidth),ToFixedRect(rtBG.Height));this.Canvas.fillStyle=this.ValueTextColor;this.Canvas.textAlign="left";this.Canvas.textBaseline="middle";this.Canvas.fillText(text,rtBG.Left+2,ptStart.Y);};this.CalculateButtonSize=function(){var pixelRatio=GetDevicePixelRatio();if(this.Button.SettingIcon){var icon=this.Button.SettingIcon;var font=icon.Size*pixelRatio+'px '+icon.Family;this.Canvas.font=font;var width=this.Canvas.measureText(icon.Text).width;this.SettingButtonSize=width;}if(this.Button.CloseIcon){var icon=this.Button.CloseIcon;var font=icon.Size*pixelRatio+'px '+icon.Family;this.Canvas.font=font;var width=this.Canvas.measureText(icon.Text).width;this.ColseButtonSize=width;}if(this.ColseButtonSize<=0&&this.SettingButtonSize<=0)return;var buttonWidth=0;if(this.SettingButtonSize>0)buttonWidth+=this.SettingButtonSize;if(this.ColseButtonSize>0){if(buttonWidth>0)buttonWidth+=this.ButtonSpace;buttonWidth+=this.ColseButtonSize;}buttonWidth+=4;this.ButtonBGWidth=buttonWidth;};this.DrawButton=function(drawTop,drawLeft,drawHeight,rtDraw){if(this.ColseButtonSize<=0&&this.SettingButtonSize<=0)return;if(this.ButtonPosition==1)drawTop-=drawHeight;this.Canvas.fillStyle=this.LineColor;var left=drawLeft;var rtBG={Left:drawLeft,Top:drawTop,Width:this.ButtonBGWidth,Height:drawHeight};rtBG.Right=rtBG.Left+rtBG.Width;rtBG.Bottom=rtBG.Top+rtBG.Height;this.Canvas.fillStyle=this.ButtonBGColor;this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width),ToFixedRect(rtBG.Height));left+=1;var pixelRatio=GetDevicePixelRatio();if(this.Button.SettingIcon&&this.Button.SettingIcon.Text){var rtButton={Left:left,Top:drawTop,Width:this.SettingButtonSize,Height:drawHeight};rtButton.Right=rtButton.Left+rtButton.Width;rtButton.Bottom=rtButton.Top+rtButton.Height;var yCenter=rtButton.Top+rtButton.Height/2;var xCenter=rtButton.Left+rtButton.Width/2;var icon=this.Button.SettingIcon;this.Canvas.font=icon.Size*pixelRatio+'px '+icon.Family;this.Canvas.textAlign="center";this.Canvas.textBaseline="middle";this.Canvas.fillStyle=icon.Color;this.Canvas.fillText(this.Button.SettingIcon.Text,xCenter,yCenter);this.AryButton.push({Rect:rtButton,ID:icon.ID,TooltipText:icon.TooltipText});/*
6035
6036
  if (this.ColseButtonSize>0)
6036
6037
  {
6037
6038
  var xLine=rtButton.Right+this.ButtonSpace/2;
@@ -7773,7 +7774,7 @@ this.SelectRectDialog=null;//区间选择对话框
7773
7774
  this.CorssCursorIndex={DayIndex:-1,DataIndex:-1,Point:{X:-1,Y:-1},Type:-1};this.EnableNewIndex=false;//是否使用新的索引版本
7774
7775
  this.DayOffset={Offset:0,ShowDayCount:-1,DataOffset:0,DayCount:1};//Offset 日期偏移 , DataOffset数据偏移
7775
7776
  this.PageInfo={Enable:false,Offset:-8888,ShowDayCount:4};//分页配置
7776
- this.DataStatus={MultiDay:false,LatestDay:false};//MultiDay=多日 LatestDay:当天
7777
+ this.DataStatus={MultiDay:false,LatestDay:false,LatestDate:null};//MultiDay=多日 LatestDay:当天 LatestDate:最后的日期
7777
7778
  this.ZoomStepPixel=50;//集合竞价设置 obj={ Left:true/false, Right:true/false, MultiDay:{Left:, Right:} }
7778
7779
  this.SetCallCationDataBorder=function(obj){if(!obj)return;var extendWidth={Left:obj.Left?this.ExtendWidth.Left:0,Right:obj.Right?this.ExtendWidth.Right:0};this.Frame.SetExtendWidth(extendWidth);if(obj.MultiDay){var item=obj.MultiDay;var DayMinuteWidth={Left:item.Left?this.MultiDayExtendWidth.Left:0,Right:item.Right?this.MultiDayExtendWidth.Right:0};this.Frame.SetMultiDayMinuteWidth(DayMinuteWidth);}};this.ReloadChartPaint=function(resource){for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(!item)continue;if(item.ReloadResource)item.ReloadResource(resource);if(i==0){if(item.Name=="Minute-Line"){item.Color=g_JSChartResource.Minute.PriceColor;item.AreaColor=g_JSChartResource.Minute.AreaPriceColor;}}else if(i==1){if(item.Name=="Minute-Average-Line"){item.Color=g_JSChartResource.Minute.AvPriceColor;}}else if(i==2){if(item.Name=="Minute-Vol-Bar"){item.Color=g_JSChartResource.Minute.VolBarColor;}}}};this.StopAutoUpdate=function(){this.CancelAutoUpdate();if(!this.IsAutoUpdate)return;this.IsAutoUpdate=false;};this.ClickFrameButton=function(button,e){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_FRAME_TOOLBAR);if(event&&event.Callback){var data={Info:button,PreventDefault:false};//PreventDefault 是否阻止内置的点击处理
7779
7780
  event.Callback(event,data,this);if(data.PreventDefault)return;}if(button.ID==JSCHART_BUTTON_ID.CLOSE_BEFOREOPEN_ID){this.ShowCallAuctionData({Left:false,Right:false,MultiDay:{Left:false,Right:false}});}if(button.ID==JSCHART_BUTTON_ID.CLOSE_OVERLAY_INDEX){var id=button.IndexID;if(id)this.DeleteOverlayWindowsIndex(id);}else if(button.ID==JSCHART_BUTTON_ID.MODIFY_OVERLAY_INDEX_PARAM){var id=button.IndexID;var frame=button.Frame;e.data={Chart:this,Identify:id,IsOverlay:true};if(frame.ModifyIndexEvent)frame.ModifyIndexEvent(e);}else if(button.ID==JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW){var frame=button.Frame;this.RemoveIndexWindow(frame.Identify);}else if(button.ID==JSCHART_BUTTON_ID.CHANGE_INDEX){var frame=button.Frame;e.data={Chart:this,Identify:frame.Identify,IsOverlay:false};if(frame.ChangeIndexEvent)frame.ChangeIndexEvent(e);}else if(button.ID==JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM){var frame=button.Frame;e.data={Chart:this,Identify:frame.Identify,IsOverlay:false};if(frame.ModifyIndexEvent)frame.ModifyIndexEvent(e);}else if(button.ID==JSCHART_BUTTON_ID.OVERLAY_INDEX){var frame=button.Frame;e.data={Chart:this,Identify:frame.Identify,IsOverlay:true};if(frame.ChangeIndexEvent)frame.ChangeIndexEvent(e);}else if(button.ID==JSCHART_BUTTON_ID.MAX_MIN_WINDOW){var id=button.IndexID;var frame=button.Frame;var frameId=button.FrameID;if(frameId>=this.Frame.ZoomStartWindowIndex){if(this.ZoomIndexWindow(frameId,null)){this.Frame.SetSizeChage(true);this.Draw();}}}else if(button.ID==JSCHART_BUTTON_ID.TITLE_WINDOW)//标题模式
@@ -7937,7 +7938,7 @@ for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i].Fr
7937
7938
  {self.RecvMinuteData(data);};}event.Callback(event,data,this);};this.ClearIndexPaint=function(){//清空指标
7938
7939
  if(this.Frame&&this.Frame.SubFrame){for(var i=0;i<this.Frame.SubFrame.length;++i){if(i>=2)this.DeleteIndexPaint(i,true);var item=this.Frame.SubFrame[i];if(IFrameSplitOperator.IsNonEmptyArray(item.OverlayIndex)){for(var j=0;j<item.OverlayIndex.length;++j)//清空叠加指标
7939
7940
  {var overlayItem=item.OverlayIndex[j];for(var k=0;k<overlayItem.ChartPaint.length;++k){var overlayChart=overlayItem.ChartPaint[k];if(overlayChart&&overlayChart.OnDestroy)overlayChart.OnDestroy();}overlayItem.ChartPaint=[];}}}}//清空叠加标题
7940
- for(var i=1;i<this.TitlePaint.length;++i){var item=this.TitlePaint[i];item.OverlayIndex=new _map2.default();}};this.ResetDayOffset=function(){if(this.PageInfo.Enable){this.DayOffset.Offset=this.PageInfo.Offset;this.DayOffset.ShowDayCount=this.PageInfo.ShowDayCount;}else{this.DayOffset.Offset=0;this.DayOffset.ShowDayCount=-1;}this.DayOffset.PageInfo=null;};this.ResetDataStatus=function(){this.DataStatus.MultiDay=false;this.DataStatus.LatestDay=false;};this.ClearOverlaySymbolData=function(){for(var i=0;i<this.OverlayChartPaint.length;++i){var chart=this.OverlayChartPaint[i];chart.Status=OVERLAY_STATUS_ID.STATUS_NONE_ID;//重置状态
7941
+ for(var i=1;i<this.TitlePaint.length;++i){var item=this.TitlePaint[i];item.OverlayIndex=new _map2.default();}};this.ResetDayOffset=function(){if(this.PageInfo.Enable){this.DayOffset.Offset=this.PageInfo.Offset;this.DayOffset.ShowDayCount=this.PageInfo.ShowDayCount;}else{this.DayOffset.Offset=0;this.DayOffset.ShowDayCount=-1;}this.DayOffset.PageInfo=null;};this.ResetDataStatus=function(){this.DataStatus.MultiDay=false;this.DataStatus.LatestDay=false;this.DataStatus.LatestDate=null;};this.ClearOverlaySymbolData=function(){for(var i=0;i<this.OverlayChartPaint.length;++i){var chart=this.OverlayChartPaint[i];chart.Status=OVERLAY_STATUS_ID.STATUS_NONE_ID;//重置状态
7941
7942
  chart.Data.Data=[];//清空数据
7942
7943
  }};//切换股票代码
7943
7944
  this.ChangeSymbol=function(symbol,option){this.StopDisplayLatest();this.CancelAutoUpdate();this.AutoUpdateEvent(false,"MinuteChartContainer::ChangeSymbol");this.Symbol=symbol;this.ResetDayOffset();this.ResetDataStatus();this.ClearIndexPaint();//清空指标
@@ -8017,6 +8018,7 @@ this.UpdateFrameMaxMin();//调整坐标最大 最小值
8017
8018
  this.Frame.SetSizeChage(true);this.Draw();this.BindAllOverlayIndexData(this.SourceData);this.AutoUpdateEvent(true,"MinuteChartContainer::RecvUpdateMinuteData");this.AutoUpdate();};this.RecvMinuteData=function(data){if(!data){JSConsole.Chart.Warn("[MinuteChartContainer::RecvMinuteData] recv data is null");return;}if(data.dataType==1)//增量更新数据模式
8018
8019
  {this.RecvUpdateMinuteData(data);return;}if(!data.stock[0])return;if(data.stock[0].symbol!=this.Symbol&&this.EnableVerifyRecvData){JSConsole.Chart.Warn('[MinuteChartContainer::RecvMinuteData] recv data symbol not match. HQChart['+this.Symbol+'] , Recv['+data.stock[0].symbol+']');return;}var aryMinuteData=MinuteChartContainer.JsonDataToMinuteData(data);var aryColorData=MinuteChartContainer.JsonDataToMinuteLineColorData(data);this.BeforeOpenData=null;this.AfterCloseData=null;var beforeOpenData=MinuteChartContainer.JsonDataToBeforeOpenData(data);var afterCloseData=MinuteChartContainer.JsonDataToAfterCloseData(data);var updateTime=MinuteChartContainer.JsonDataToMinuteLastUpdateTime(data);//数据最后的更新时间
8019
8020
  if(this.IsBeforeData)this.BeforeOpenData=beforeOpenData;if(this.IsAfterData)this.AfterCloseData=afterCloseData;var bFirstData=this.DataStatus.LatestDay==false;//首条单日数据
8021
+ this.DataStatus.LatestDate=data.stock[0].date;//保存下最后一天的日期
8020
8022
  this.DataStatus.LatestDay=true;if(this.DayCount>1)//多日走势图
8021
8023
  {this.UpdateCallCationData(beforeOpenData,afterCloseData);this.UpdateLineColorData(aryColorData,data.stock[0].date);this.UpdateLatestMinuteData(aryMinuteData,data.stock[0].date,data.stock[0]);this.UpdateHistoryMinuteUI(updateTime);this.RecvMinuteDataEvent({FunctionName:"RecvMinuteData"});this.RequestOverlayMinuteData();//请求叠加数据 (主数据下载完再下载)
8022
8024
  this.BindAllOverlayIndexData(this.SourceData);this.AutoUpdateEvent(true,"MinuteChartContainer::RecvMinuteData");this.AutoUpdate();return;}//原始数据
@@ -13177,7 +13179,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
13177
13179
  this.ExecuteScript(item,data);}this.Status=0;}};this.OnExecuteFinish=function(data,indexInfo,jsExectute,jobInfo){var message={Data:data,IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.FINISH_EXECUTE_SCRIPT,JobInfo:jobInfo};postMessage(message);};this.OnExecuteError=function(error,indexInfo,jobData){var message={IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.ERROR_EXECUTE_SCRIPT,Error:error};postMessage(message);};}/********************************************************************************
13178
13180
  * 版本信息输出
13179
13181
  *
13180
- */var HQCHART_VERSION="1.1.13198";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();//把给外界调用的方法暴露出来
13182
+ */var HQCHART_VERSION="1.1.13203";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();//把给外界调用的方法暴露出来
13181
13183
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
13182
13184
  // BaseIndex:BaseIndex,
13183
13185
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.13199",
3
+ "version": "1.1.13204",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -55989,6 +55989,8 @@ function ChartDrawHLine()
55989
55989
  this.ButtonBGColor='rgb(190,190,190)';
55990
55990
  this.ButtonSpace=3;
55991
55991
 
55992
+ this.TextMargin={ Left:0, Right:0 };
55993
+
55992
55994
  this.Button=
55993
55995
  {
55994
55996
  CloseIcon: { Text:'\ue62b', Color:'rgb(255,255,255)', Family:"iconfont", Size:16, ID:JSCHART_BUTTON_ID.DRAW_PICTURE_DELETE, TooltipText:null },
@@ -56050,6 +56052,13 @@ function ChartDrawHLine()
56050
56052
  if (IFrameSplitOperator.IsBool(value)) this.ShowPriceTextConfig.IsShow[i]=value;
56051
56053
  }
56052
56054
  }
56055
+
56056
+ if (option.TextMargin)
56057
+ {
56058
+ var item=option.TextMargin;
56059
+ if (IFrameSplitOperator.IsNumber(item.Left)) this.TextMargin.Left=item.Left;
56060
+ if (IFrameSplitOperator.IsNumber(item.Right)) this.TextMargin.Right=item.Right;
56061
+ }
56053
56062
  }
56054
56063
  }
56055
56064
 
@@ -56294,6 +56303,8 @@ function ChartDrawHLine()
56294
56303
  var labSize=this.CalculateLabSize(labInfo);
56295
56304
 
56296
56305
  var drawLeft=rtLeftDraw.Right-labSize.Width;
56306
+ if (drawLeft<rtLeftDraw.Left) drawLeft=rtLeftDraw.Left;
56307
+ var drawRight=drawLeft+labSize.Width;
56297
56308
  var drawTop=rtLeftDraw.Bottom;
56298
56309
  var lineSpace=0;
56299
56310
  if (IFrameSplitOperator.IsNumber(labInfo.LineSpace)) lineSpace=labInfo.LineSpace;
@@ -56323,7 +56334,7 @@ function ChartDrawHLine()
56323
56334
  {
56324
56335
  this.Canvas.textAlign="right";
56325
56336
  this.Canvas.fillStyle=item.TextColor;
56326
- this.Canvas.fillText(item.Text,rtLeftDraw.Right-1,yText+1);
56337
+ this.Canvas.fillText(item.Text,drawRight-1,yText+1);
56327
56338
  }
56328
56339
 
56329
56340
  yText+=labSize.LineHeight+lineSpace;
@@ -56400,17 +56411,25 @@ function ChartDrawHLine()
56400
56411
  var textWidth=this.Canvas.measureText(strValue).width;
56401
56412
  var lineHeight=this.GetFontHeight();
56402
56413
  var rtBG={ Left:right+this.RightSpaceWidth, Top:y- lineHeight/2, Width:textWidth+4, Height:lineHeight };
56403
- rtBG.Right=rtBG.Left+rtBG.Width;
56414
+ //rtBG.Right=rtBG.Left+rtBG.Width;
56404
56415
  rtBG.Bottom=rtBG.Top+rtBG.Height;
56416
+ rtBG.Width+=(this.TextMargin.Left+this.TextMargin.Right);
56417
+ rtBG.Right=rtBG.Left+rtBG.Width;
56418
+ var xText=rtBG.Left+this.TextMargin.Left+2;
56419
+
56405
56420
  if (this.ButtonPosition==1)
56421
+ {
56406
56422
  this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top), ToFixedRect(rtBG.Width+this.ButtonBGWidth),ToFixedRect(rtBG.Height));
56423
+ }
56407
56424
  else
56425
+ {
56408
56426
  this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top), ToFixedRect(rtBG.Width),ToFixedRect(rtBG.Height));
56427
+ }
56409
56428
 
56410
56429
  this.Canvas.fillStyle=this.ValueTextColor
56411
56430
  this.Canvas.textAlign="left";
56412
56431
  this.Canvas.textBaseline="middle";
56413
- this.Canvas.fillText(strValue,rtBG.Left+2,y);
56432
+ this.Canvas.fillText(strValue,xText,y);
56414
56433
 
56415
56434
  rtDraw.Left=rtBG.Left;
56416
56435
  rtDraw.Top=rtBG.Top;
@@ -56436,6 +56455,7 @@ function ChartDrawHLine()
56436
56455
  var rtBG={ Left:ptStart.X, Top:ptStart.Y-lineHeight/2, Width:textWidth+4, Height:lineHeight };
56437
56456
  rtBG.Right=rtBG.Left+rtBG.Width;
56438
56457
  rtBG.Bottom=rtBG.Top+rtBG.Height;
56458
+
56439
56459
  }
56440
56460
  else if (position==0)
56441
56461
  {
@@ -74829,7 +74849,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
74829
74849
 
74830
74850
  this.DayOffset={ Offset:0, ShowDayCount:-1, DataOffset:0, DayCount:1, }; //Offset 日期偏移 , DataOffset数据偏移
74831
74851
  this.PageInfo={ Enable:false, Offset:-8888, ShowDayCount:4 }; //分页配置
74832
- this.DataStatus={ MultiDay:false, LatestDay:false }; //MultiDay=多日 LatestDay:当天
74852
+ this.DataStatus={ MultiDay:false, LatestDay:false, LatestDate:null}; //MultiDay=多日 LatestDay:当天 LatestDate:最后的日期
74833
74853
 
74834
74854
  this.ZoomStepPixel=50;
74835
74855
 
@@ -77320,6 +77340,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
77320
77340
  {
77321
77341
  this.DataStatus.MultiDay=false;
77322
77342
  this.DataStatus.LatestDay=false;
77343
+ this.DataStatus.LatestDate=null;
77323
77344
  }
77324
77345
 
77325
77346
  this.ClearOverlaySymbolData=function()
@@ -78432,6 +78453,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
78432
78453
  if (this.IsAfterData) this.AfterCloseData=afterCloseData;
78433
78454
 
78434
78455
  var bFirstData=(this.DataStatus.LatestDay==false); //首条单日数据
78456
+
78457
+ this.DataStatus.LatestDate=data.stock[0].date; //保存下最后一天的日期
78435
78458
  this.DataStatus.LatestDay=true;
78436
78459
 
78437
78460
  if (this.DayCount>1) //多日走势图
@@ -59881,6 +59881,8 @@ function ChartDrawHLine()
59881
59881
  this.ButtonBGColor='rgb(190,190,190)';
59882
59882
  this.ButtonSpace=3;
59883
59883
 
59884
+ this.TextMargin={ Left:0, Right:0 };
59885
+
59884
59886
  this.Button=
59885
59887
  {
59886
59888
  CloseIcon: { Text:'\ue62b', Color:'rgb(255,255,255)', Family:"iconfont", Size:16, ID:JSCHART_BUTTON_ID.DRAW_PICTURE_DELETE, TooltipText:null },
@@ -59942,6 +59944,13 @@ function ChartDrawHLine()
59942
59944
  if (IFrameSplitOperator.IsBool(value)) this.ShowPriceTextConfig.IsShow[i]=value;
59943
59945
  }
59944
59946
  }
59947
+
59948
+ if (option.TextMargin)
59949
+ {
59950
+ var item=option.TextMargin;
59951
+ if (IFrameSplitOperator.IsNumber(item.Left)) this.TextMargin.Left=item.Left;
59952
+ if (IFrameSplitOperator.IsNumber(item.Right)) this.TextMargin.Right=item.Right;
59953
+ }
59945
59954
  }
59946
59955
  }
59947
59956
 
@@ -60186,6 +60195,8 @@ function ChartDrawHLine()
60186
60195
  var labSize=this.CalculateLabSize(labInfo);
60187
60196
 
60188
60197
  var drawLeft=rtLeftDraw.Right-labSize.Width;
60198
+ if (drawLeft<rtLeftDraw.Left) drawLeft=rtLeftDraw.Left;
60199
+ var drawRight=drawLeft+labSize.Width;
60189
60200
  var drawTop=rtLeftDraw.Bottom;
60190
60201
  var lineSpace=0;
60191
60202
  if (IFrameSplitOperator.IsNumber(labInfo.LineSpace)) lineSpace=labInfo.LineSpace;
@@ -60215,7 +60226,7 @@ function ChartDrawHLine()
60215
60226
  {
60216
60227
  this.Canvas.textAlign="right";
60217
60228
  this.Canvas.fillStyle=item.TextColor;
60218
- this.Canvas.fillText(item.Text,rtLeftDraw.Right-1,yText+1);
60229
+ this.Canvas.fillText(item.Text,drawRight-1,yText+1);
60219
60230
  }
60220
60231
 
60221
60232
  yText+=labSize.LineHeight+lineSpace;
@@ -60292,17 +60303,25 @@ function ChartDrawHLine()
60292
60303
  var textWidth=this.Canvas.measureText(strValue).width;
60293
60304
  var lineHeight=this.GetFontHeight();
60294
60305
  var rtBG={ Left:right+this.RightSpaceWidth, Top:y- lineHeight/2, Width:textWidth+4, Height:lineHeight };
60295
- rtBG.Right=rtBG.Left+rtBG.Width;
60306
+ //rtBG.Right=rtBG.Left+rtBG.Width;
60296
60307
  rtBG.Bottom=rtBG.Top+rtBG.Height;
60308
+ rtBG.Width+=(this.TextMargin.Left+this.TextMargin.Right);
60309
+ rtBG.Right=rtBG.Left+rtBG.Width;
60310
+ var xText=rtBG.Left+this.TextMargin.Left+2;
60311
+
60297
60312
  if (this.ButtonPosition==1)
60313
+ {
60298
60314
  this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top), ToFixedRect(rtBG.Width+this.ButtonBGWidth),ToFixedRect(rtBG.Height));
60315
+ }
60299
60316
  else
60317
+ {
60300
60318
  this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top), ToFixedRect(rtBG.Width),ToFixedRect(rtBG.Height));
60319
+ }
60301
60320
 
60302
60321
  this.Canvas.fillStyle=this.ValueTextColor
60303
60322
  this.Canvas.textAlign="left";
60304
60323
  this.Canvas.textBaseline="middle";
60305
- this.Canvas.fillText(strValue,rtBG.Left+2,y);
60324
+ this.Canvas.fillText(strValue,xText,y);
60306
60325
 
60307
60326
  rtDraw.Left=rtBG.Left;
60308
60327
  rtDraw.Top=rtBG.Top;
@@ -60328,6 +60347,7 @@ function ChartDrawHLine()
60328
60347
  var rtBG={ Left:ptStart.X, Top:ptStart.Y-lineHeight/2, Width:textWidth+4, Height:lineHeight };
60329
60348
  rtBG.Right=rtBG.Left+rtBG.Width;
60330
60349
  rtBG.Bottom=rtBG.Top+rtBG.Height;
60350
+
60331
60351
  }
60332
60352
  else if (position==0)
60333
60353
  {
@@ -78721,7 +78741,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
78721
78741
 
78722
78742
  this.DayOffset={ Offset:0, ShowDayCount:-1, DataOffset:0, DayCount:1, }; //Offset 日期偏移 , DataOffset数据偏移
78723
78743
  this.PageInfo={ Enable:false, Offset:-8888, ShowDayCount:4 }; //分页配置
78724
- this.DataStatus={ MultiDay:false, LatestDay:false }; //MultiDay=多日 LatestDay:当天
78744
+ this.DataStatus={ MultiDay:false, LatestDay:false, LatestDate:null}; //MultiDay=多日 LatestDay:当天 LatestDate:最后的日期
78725
78745
 
78726
78746
  this.ZoomStepPixel=50;
78727
78747
 
@@ -81212,6 +81232,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
81212
81232
  {
81213
81233
  this.DataStatus.MultiDay=false;
81214
81234
  this.DataStatus.LatestDay=false;
81235
+ this.DataStatus.LatestDate=null;
81215
81236
  }
81216
81237
 
81217
81238
  this.ClearOverlaySymbolData=function()
@@ -82324,6 +82345,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
82324
82345
  if (this.IsAfterData) this.AfterCloseData=afterCloseData;
82325
82346
 
82326
82347
  var bFirstData=(this.DataStatus.LatestDay==false); //首条单日数据
82348
+
82349
+ this.DataStatus.LatestDate=data.stock[0].date; //保存下最后一天的日期
82327
82350
  this.DataStatus.LatestDay=true;
82328
82351
 
82329
82352
  if (this.DayCount>1) //多日走势图
@@ -131846,7 +131869,7 @@ function ScrollBarBGChart()
131846
131869
 
131847
131870
 
131848
131871
 
131849
- var HQCHART_VERSION="1.1.13198";
131872
+ var HQCHART_VERSION="1.1.13203";
131850
131873
 
131851
131874
  function PrintHQChartVersion()
131852
131875
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.13198";
8
+ var HQCHART_VERSION="1.1.13203";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -59925,6 +59925,8 @@ function ChartDrawHLine()
59925
59925
  this.ButtonBGColor='rgb(190,190,190)';
59926
59926
  this.ButtonSpace=3;
59927
59927
 
59928
+ this.TextMargin={ Left:0, Right:0 };
59929
+
59928
59930
  this.Button=
59929
59931
  {
59930
59932
  CloseIcon: { Text:'\ue62b', Color:'rgb(255,255,255)', Family:"iconfont", Size:16, ID:JSCHART_BUTTON_ID.DRAW_PICTURE_DELETE, TooltipText:null },
@@ -59986,6 +59988,13 @@ function ChartDrawHLine()
59986
59988
  if (IFrameSplitOperator.IsBool(value)) this.ShowPriceTextConfig.IsShow[i]=value;
59987
59989
  }
59988
59990
  }
59991
+
59992
+ if (option.TextMargin)
59993
+ {
59994
+ var item=option.TextMargin;
59995
+ if (IFrameSplitOperator.IsNumber(item.Left)) this.TextMargin.Left=item.Left;
59996
+ if (IFrameSplitOperator.IsNumber(item.Right)) this.TextMargin.Right=item.Right;
59997
+ }
59989
59998
  }
59990
59999
  }
59991
60000
 
@@ -60230,6 +60239,8 @@ function ChartDrawHLine()
60230
60239
  var labSize=this.CalculateLabSize(labInfo);
60231
60240
 
60232
60241
  var drawLeft=rtLeftDraw.Right-labSize.Width;
60242
+ if (drawLeft<rtLeftDraw.Left) drawLeft=rtLeftDraw.Left;
60243
+ var drawRight=drawLeft+labSize.Width;
60233
60244
  var drawTop=rtLeftDraw.Bottom;
60234
60245
  var lineSpace=0;
60235
60246
  if (IFrameSplitOperator.IsNumber(labInfo.LineSpace)) lineSpace=labInfo.LineSpace;
@@ -60259,7 +60270,7 @@ function ChartDrawHLine()
60259
60270
  {
60260
60271
  this.Canvas.textAlign="right";
60261
60272
  this.Canvas.fillStyle=item.TextColor;
60262
- this.Canvas.fillText(item.Text,rtLeftDraw.Right-1,yText+1);
60273
+ this.Canvas.fillText(item.Text,drawRight-1,yText+1);
60263
60274
  }
60264
60275
 
60265
60276
  yText+=labSize.LineHeight+lineSpace;
@@ -60336,17 +60347,25 @@ function ChartDrawHLine()
60336
60347
  var textWidth=this.Canvas.measureText(strValue).width;
60337
60348
  var lineHeight=this.GetFontHeight();
60338
60349
  var rtBG={ Left:right+this.RightSpaceWidth, Top:y- lineHeight/2, Width:textWidth+4, Height:lineHeight };
60339
- rtBG.Right=rtBG.Left+rtBG.Width;
60350
+ //rtBG.Right=rtBG.Left+rtBG.Width;
60340
60351
  rtBG.Bottom=rtBG.Top+rtBG.Height;
60352
+ rtBG.Width+=(this.TextMargin.Left+this.TextMargin.Right);
60353
+ rtBG.Right=rtBG.Left+rtBG.Width;
60354
+ var xText=rtBG.Left+this.TextMargin.Left+2;
60355
+
60341
60356
  if (this.ButtonPosition==1)
60357
+ {
60342
60358
  this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top), ToFixedRect(rtBG.Width+this.ButtonBGWidth),ToFixedRect(rtBG.Height));
60359
+ }
60343
60360
  else
60361
+ {
60344
60362
  this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top), ToFixedRect(rtBG.Width),ToFixedRect(rtBG.Height));
60363
+ }
60345
60364
 
60346
60365
  this.Canvas.fillStyle=this.ValueTextColor
60347
60366
  this.Canvas.textAlign="left";
60348
60367
  this.Canvas.textBaseline="middle";
60349
- this.Canvas.fillText(strValue,rtBG.Left+2,y);
60368
+ this.Canvas.fillText(strValue,xText,y);
60350
60369
 
60351
60370
  rtDraw.Left=rtBG.Left;
60352
60371
  rtDraw.Top=rtBG.Top;
@@ -60372,6 +60391,7 @@ function ChartDrawHLine()
60372
60391
  var rtBG={ Left:ptStart.X, Top:ptStart.Y-lineHeight/2, Width:textWidth+4, Height:lineHeight };
60373
60392
  rtBG.Right=rtBG.Left+rtBG.Width;
60374
60393
  rtBG.Bottom=rtBG.Top+rtBG.Height;
60394
+
60375
60395
  }
60376
60396
  else if (position==0)
60377
60397
  {
@@ -78765,7 +78785,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
78765
78785
 
78766
78786
  this.DayOffset={ Offset:0, ShowDayCount:-1, DataOffset:0, DayCount:1, }; //Offset 日期偏移 , DataOffset数据偏移
78767
78787
  this.PageInfo={ Enable:false, Offset:-8888, ShowDayCount:4 }; //分页配置
78768
- this.DataStatus={ MultiDay:false, LatestDay:false }; //MultiDay=多日 LatestDay:当天
78788
+ this.DataStatus={ MultiDay:false, LatestDay:false, LatestDate:null}; //MultiDay=多日 LatestDay:当天 LatestDate:最后的日期
78769
78789
 
78770
78790
  this.ZoomStepPixel=50;
78771
78791
 
@@ -81256,6 +81276,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
81256
81276
  {
81257
81277
  this.DataStatus.MultiDay=false;
81258
81278
  this.DataStatus.LatestDay=false;
81279
+ this.DataStatus.LatestDate=null;
81259
81280
  }
81260
81281
 
81261
81282
  this.ClearOverlaySymbolData=function()
@@ -82368,6 +82389,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
82368
82389
  if (this.IsAfterData) this.AfterCloseData=afterCloseData;
82369
82390
 
82370
82391
  var bFirstData=(this.DataStatus.LatestDay==false); //首条单日数据
82392
+
82393
+ this.DataStatus.LatestDate=data.stock[0].date; //保存下最后一天的日期
82371
82394
  this.DataStatus.LatestDay=true;
82372
82395
 
82373
82396
  if (this.DayCount>1) //多日走势图
@@ -134759,7 +134782,7 @@ function HQChartScriptWorker()
134759
134782
 
134760
134783
 
134761
134784
 
134762
- var HQCHART_VERSION="1.1.13198";
134785
+ var HQCHART_VERSION="1.1.13203";
134763
134786
 
134764
134787
  function PrintHQChartVersion()
134765
134788
  {