hqchart 1.1.14718 → 1.1.14722

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.
@@ -5688,9 +5688,12 @@ this.IsShow=true;this.IsShowClose=false;//Y轴始终显示收盘价
5688
5688
  this.ClientPos=-1;this.CallAcutionXOperator;this.EnableKeyboard=false;//是否支持键盘隐藏显示
5689
5689
  this.EnableDBClick=false;//是否允许双击显示|隐藏十字光标
5690
5690
  this.OnChangeStatusCallback;//状态切换以后回调
5691
- this.RightButton={Enable:false,Rect:null,BGColor:g_JSChartResource.CorssCursor.RightButton.BGColor,PenColor:g_JSChartResource.CorssCursor.RightButton.PenColor,Icon:g_JSChartResource.CorssCursor.RightButton.Icon};//底部按钮
5692
- this.BottomButton={Enable:false,Rect:null};this.RightMargin=CloneData(g_JSChartResource.CorssCursor.RightMargin);this.BottomConfig=CloneData(g_JSChartResource.CorssCursor.BottomText);//底部输出配置
5693
- this.LeftConfig=CloneData(g_JSChartResource.CorssCursor.LeftText);//内部使用
5691
+ this.RightButton={Enable:false,Rect:null,BGColor:g_JSChartResource.CorssCursor.RightButton.BGColor,PenColor:g_JSChartResource.CorssCursor.RightButton.PenColor,Icon:CloneData(g_JSChartResource.CorssCursor.RightButton.Icon)};//底部按钮
5692
+ this.BottomButton={Enable:false,Rect:null};this.BottomConfig=CloneData(g_JSChartResource.CorssCursor.BottomText);//底部输出配置
5693
+ this.LeftConfig=CloneData(g_JSChartResource.CorssCursor.LeftText);//左侧输出配置
5694
+ this.RightConfig=CloneData(g_JSChartResource.CorssCursor.RightText);//右侧输出配置
5695
+ this.RightOverlayConfig=CloneData(g_JSChartResource.CorssCursor.RightOverlayText);//右侧叠加指标输出配置
5696
+ //内部使用
5694
5697
  this.Close=null;//收盘价格
5695
5698
  this.Status=0;//当前状态 0=隐藏 1=显示
5696
5699
  this.ReloadResource=function(resource){this.Font=g_JSChartResource.CorssCursorTextFont;//字体
@@ -5700,7 +5703,7 @@ this.TextColor=g_JSChartResource.CorssCursorTextColor;//文本颜色
5700
5703
  this.TextBGColor=g_JSChartResource.CorssCursorBGColor;//文本背景色
5701
5704
  this.BorderColor=g_JSChartResource.CorssCursorBorderColor;//边框颜色
5702
5705
  this.XRangeBGColor=g_JSChartResource.CorssCursorXRangeBGColor;this.LineDash=g_JSChartResource.CorssCursorLineDash.slice();//虚线
5703
- this.CorssPointConfig.Center=CloneData(g_JSChartResource.CorssCursor.CorssPoint.Center);this.CorssPointConfig.Border=CloneData(g_JSChartResource.CorssCursor.CorssPoint.Border);};this.GetCloseYPoint=function(index){if(!this.StringFormatX.Data)return null;var data=this.StringFormatX.Data;if(!data.Data||data.Data.length<=0)return null;var dataIndex=data.DataOffset+index;if(dataIndex>=data.Data.length)dataIndex=data.Data.length-1;if(dataIndex<0)return null;var klineData=data.Data[dataIndex];if(!klineData)return null;this.Close=klineData.Close;var yPoint=this.Frame.GetYFromData(this.Close);return yPoint;};this.GetMinuteCloseYPoint=function(index){if(this.EnableNewIndex&&this.CorssCursorIndex){if(!this.StringFormatX||!this.StringFormatX.GetMinuteCloseYPoint)return null;var closeData=this.StringFormatX.GetMinuteCloseYPoint(this.CorssCursorIndex);if(!closeData)return null;this.Close=closeData.Price;return closeData.Y;}else{if(!IFrameSplitOperator.IsNumber(index))return null;index=parseInt(index.toFixed(0));//index=parseInt(index);
5706
+ this.RightButton.BGColor=g_JSChartResource.CorssCursor.RightButton.BGColor;this.RightButton.PenColor=g_JSChartResource.CorssCursor.RightButton.PenColor;this.RightButton.Icon=CloneData(g_JSChartResource.CorssCursor.RightButton.Icon);this.RightOverlayConfig=CloneData(g_JSChartResource.CorssCursor.RightOverlayText);this.CorssPointConfig.Center=CloneData(g_JSChartResource.CorssCursor.CorssPoint.Center);this.CorssPointConfig.Border=CloneData(g_JSChartResource.CorssCursor.CorssPoint.Border);};this.GetCloseYPoint=function(index){if(!this.StringFormatX.Data)return null;var data=this.StringFormatX.Data;if(!data.Data||data.Data.length<=0)return null;var dataIndex=data.DataOffset+index;if(dataIndex>=data.Data.length)dataIndex=data.Data.length-1;if(dataIndex<0)return null;var klineData=data.Data[dataIndex];if(!klineData)return null;this.Close=klineData.Close;var yPoint=this.Frame.GetYFromData(this.Close);return yPoint;};this.GetMinuteCloseYPoint=function(index){if(this.EnableNewIndex&&this.CorssCursorIndex){if(!this.StringFormatX||!this.StringFormatX.GetMinuteCloseYPoint)return null;var closeData=this.StringFormatX.GetMinuteCloseYPoint(this.CorssCursorIndex);if(!closeData)return null;this.Close=closeData.Price;return closeData.Y;}else{if(!IFrameSplitOperator.IsNumber(index))return null;index=parseInt(index.toFixed(0));//index=parseInt(index);
5704
5707
  if(!this.StringFormatX.Data)return null;var data=this.StringFormatX.Data;if(!data.Data||data.Data.length<=0)return null;var dataIndex=data.DataOffset+index;if(dataIndex>=data.Data.length)dataIndex=data.Data.length-1;if(dataIndex<0)return null;var close=data.Data[dataIndex];if(!IFrameSplitOperator.IsNumber(index))return null;this.Close=close;var yPoint=this.Frame.GetYFromData(this.Close);return yPoint;}};this.GetDateTimeRange=function(index,option){if(!IFrameSplitOperator.IsNumber(index))return null;index=parseInt(index);var data=this.StringFormatX.Data;if(!data.Data||data.Data.length<=0)return null;var dataIndex=data.DataOffset+index;if(dataIndex>=data.Data.length||dataIndex<0)return null;if(!this.Frame||!this.Frame.SubFrame[0]||!this.Frame.SubFrame[0].Frame)return null;var frame=this.Frame.SubFrame[0].Frame;var dataWidth=frame.DataWidth;var distanceWidth=frame.DistanceWidth;var xPointCount=frame.XPointCount;var kItem=data.Data[dataIndex];if(!kItem)return null;var date=kItem.Date*1000000;var time=parseInt(kItem.Time/100)*100;var startTime=date+time;var endTime=date+time+59;var endIndex=dataIndex;for(var i=dataIndex;i<data.Data.length;++i){var item=data.Data[i];var dateTime=item.Date*1000000+item.Time;if(dateTime>endTime)break;if(i-data.DataOffset>=xPointCount)break;endIndex=i;}var startIndex=dataIndex;for(var i=dataIndex;i>=0&&i>=data.DataOffset;--i){var item=data.Data[i];var dateTime=item.Date*1000000+item.Time;if(dateTime<startTime)break;startIndex=i;}var range={StartIndex:startIndex,EndIndex:endIndex};range.XStart=this.Frame.GetXFromIndex(startIndex-data.DataOffset);range.XEnd=this.Frame.GetXFromIndex(endIndex-data.DataOffset);range.XStart-=(distanceWidth+dataWidth)/2;range.XEnd+=(distanceWidth+dataWidth)/2;return range;};this.FixMinuteLastTimeXPoint=function(index){if(!IFrameSplitOperator.IsNumber(index))return null;index=parseInt(index);if(!this.StringFormatX.Data)return null;var data=this.StringFormatX.Data;if(!data.Data||data.Data.length<=0)return null;var dataIndex=data.DataOffset+index;if(dataIndex<data.Data.length)return null;dataIndex=data.Data.length-1;dataIndex-=data.DataOffset;var xPoint=this.Frame.GetXFromIndex(dataIndex);return{X:xPoint,Index:dataIndex};};//返回 -1=不在客户区 1=在主区域 2=左边扩展 3=右边扩展
5705
5708
  this.PtInClient=function(x,y){this.Canvas.beginPath();if(this.Frame.IsHScreen===true){var border=this.Frame.ChartBorder.GetHScreenBorder();this.Canvas.rect(border.Left,border.TopEx,border.Right-border.Left,border.BottomEx-border.TopEx);}else{var border=this.Frame.ChartBorder.GetBorder();this.Canvas.rect(border.LeftEx,border.Top,border.RightEx-border.LeftEx,border.Bottom-border.Top);}if(this.Canvas.isPointInPath(x,y))return 1;if(this.Frame.ChartBorder.LeftExtendWidth>10){this.Canvas.beginPath();if(this.Frame.IsHScreen===true){this.Canvas.rect(border.Left,border.Top,border.Right-border.Left,border.TopEx-border.Top);}else{this.Canvas.rect(border.Left,border.Top,border.LeftEx-border.Left,border.Bottom-border.Top);}if(this.Canvas.isPointInPath(x,y))return 2;}if(this.Frame.ChartBorder.RightExtendWidth>10){this.Canvas.beginPath();if(this.Frame.IsHScreen===true){this.Canvas.rect(border.Left,border.BottomEx,border.Right-border.Left,border.Bottom-border.BottomEx);}else{this.Canvas.rect(border.RightEx,border.Top,border.Right-border.RightEx,border.Bottom-border.Top);}if(this.Canvas.isPointInPath(x,y))return 3;}return-1;};this.GetFontHeight=function(font){return GetFontHeight(this.Canvas,font,"擎");};this.Draw=function(){this.Status=0;this.RightButton.Rect=null;this.BottomButton.Rect=null;this.LastValue=null;if(!this.LastPoint)return;this.Close=null;var x=this.LastPoint.X;var y=this.LastPoint.Y;var clientPos=this.PtInClient(x,y);this.PointY=null;this.PointY==null;this.ClientPos=clientPos;if(clientPos<=0)return;if(this.Frame.IsHScreen===true){this.HScreenDraw();return;}var border=this.Frame.ChartBorder.GetBorder();var left=border.Left;var right=border.Right;var top=border.TopTitle;var bottom=border.Bottom;var rightWidth=this.Frame.ChartBorder.Right;var chartRight=border.ChartWidth;if(this.IsOnlyDrawKLine)//手机端 十字只能画在K线上
5706
5709
  {x=this.Frame.GetXFromIndex(this.CursorIndex);if(this.IsShowClose){var yPoint=this.GetCloseYPoint(this.CursorIndex);if(yPoint!=null)y=yPoint;}}else if(this.IsOnlyDrawMinute){var yPoint=this.GetMinuteCloseYPoint(this.CursorIndex);if(yPoint!=null)y=yPoint;}if(this.CallAcutionXOperator){this.CallAcutionXOperator.Value=x;this.CallAcutionXOperator.Point={X:x,Y:y};this.CallAcutionXOperator.ClientPos=clientPos;if(this.CallAcutionXOperator.Operator()){x=this.CallAcutionXOperator.X;}}if(this.IsFixXLastTime){var value=this.FixMinuteLastTimeXPoint(this.CursorIndex);if(value){x=value.X;this.CursorIndex=value.Index;}}this.PointY=[[left,y],[right,y]];this.PointX=[[x,top],[x,bottom]];//十字线
@@ -5717,66 +5720,36 @@ if((this.ShowTextMode.Left==1&&this.Frame.ChartBorder.Left>=30||this.ShowTextMod
5717
5720
  var textSize={Width:textWidth+4,Height:this.TextHeight,Text:[]};var buttonData={Y:y,YValue:yValue,FrameID:yValueExtend.FrameID};var margin=this.LeftConfig.Margin;var textOffset=this.LeftConfig.TextOffset;var rtBG=null;if(this.Frame.ChartBorder.Left>=30&&this.ShowTextMode.Left==1)//左边
5718
5721
  {var rtBG={Right:left,Width:textWidth+margin.Left+margin.Right,YCenter:y,Height:textHeight+margin.Top+margin.Bottom};rtBG.Left=rtBG.Right-rtBG.Width;rtBG.Top=rtBG.YCenter-rtBG.Height/2;rtBG.Bottom=rtBG.Top+rtBG.Height;if(rtBG.Left<0){rtBG.Left=0;rtBG.Right=rtBG.Left+rtBG.Width;}}else if(this.ShowTextMode.Left==2)//在框架内显示
5719
5722
  {var rtBG={Left:left,Width:textWidth+margin.Left+margin.Right,YCenter:y,Height:textHeight+margin.Top+margin.Bottom};rtBG.Right=rtBG.Left+rtBG.Width;rtBG.Top=rtBG.YCenter-rtBG.Height/2;rtBG.Bottom=rtBG.Top+rtBG.Height;}if(rtBG){this.DrawTextBGRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);this.Canvas.textAlign="left";this.Canvas.textBaseline="bottom";this.Canvas.fillStyle=this.TextColor;this.Canvas.fillText(text,rtBG.Left+textOffset.X,rtBG.Bottom+textOffset.Y);}var complexText={ShowType:0,//0=单行(默认) 1=多行
5720
- Font:this.Font,Color:this.TextColor,Text:[{Text:text,Margin:this.RightMargin}]};var yTop=y-this.TextHeight/2;if(this.StringFormatY.PercentageText){if(this.TextFormat.Right==0){text=this.StringFormatY.PercentageText+'%';complexText.Text[0].Text=text;}}if(this.StringFormatY.RText){text=this.StringFormatY.RText;complexText.Text[0].Text=text;}if(this.StringFormatY.RComplexText&&IFrameSplitOperator.IsNonEmptyArray(this.StringFormatY.RComplexText.Text)){complexText=this.StringFormatY.RComplexText;if(!complexText.Font)complexText.Font=this.Font;if(!complexText.Color)complexText.Color=this.TextColor;}this.CalculateComplexTextSize(complexText,textSize);if(this.Frame.ChartBorder.Right>=30&&this.ShowTextMode.Right==1){var isOverlayIndex=false;//是否有叠加子坐标
5723
+ Font:this.Font,Color:this.TextColor,Text:[{Text:text,Margin:this.RightConfig.Margin,TextOffset:this.RightConfig.TextOffset}]};var yTop=y-this.TextHeight/2;if(this.StringFormatY.PercentageText){if(this.TextFormat.Right==0){text=this.StringFormatY.PercentageText+'%';complexText.Text[0].Text=text;}}if(this.StringFormatY.RText){text=this.StringFormatY.RText;complexText.Text[0].Text=text;}if(this.StringFormatY.RComplexText&&IFrameSplitOperator.IsNonEmptyArray(this.StringFormatY.RComplexText.Text)){complexText=this.StringFormatY.RComplexText;if(!complexText.Font)complexText.Font=this.Font;if(!complexText.Color)complexText.Color=this.TextColor;}this.CalculateComplexTextSize(complexText,textSize);if(this.Frame.ChartBorder.Right>=30&&this.ShowTextMode.Right==1){var isOverlayIndex=false;//是否有叠加子坐标
5721
5724
  var overlayIndexInterval=null;//子坐标间距
5722
5725
  if(yValueExtend.FrameID>=0){var frame=this.Frame.SubFrame[yValueExtend.FrameID];isOverlayIndex=frame.OverlayIndex.length>0;overlayIndexInterval=null;if(isOverlayIndex){for(var i=0;i<=frame.OverlayIndex.length;++i){var item=frame.OverlayIndex[i];if(!item||!item.Frame)continue;if(item.Frame.IsShow===false)continue;if(!item.Frame.GetXHorizontal)continue;var overlayLeft=item.Frame.GetXHorizontal();overlayIndexInterval=overlayLeft-right;break;}}}//叠加坐标
5723
5726
  if(isOverlayIndex&&textSize.Width>overlayIndexInterval&&overlayIndexInterval>0)//大于子坐标宽度
5724
- {var drawRight=right+overlayIndexInterval;if(drawRight>chartRight)drawRight=chartRight;var itemLeft=drawRight-2-textSize.Width;this.DrawTextBGRect(itemLeft,yTop,textSize.Width,textSize.Height);this.DrawComplexTextV2(itemLeft,yTop,complexText,textSize);if(this.RightButton.Enable)this.DrawRightButton(yTop,itemLeft,this.TextHeight,this.TextHeight,buttonData);}else if(rightWidth<textSize.Width)//右边空白显示不下,
5725
- {var itemLeft=chartRight-2-textSize.Width;this.DrawTextBGRect(itemLeft,yTop,textSize.Width,textSize.Height);this.DrawComplexTextV2(itemLeft,yTop,complexText,textSize);if(this.RightButton.Enable)this.DrawRightButton(yTop,chartRight-2-textSize.Width,this.TextHeight,this.TextHeight,buttonData);}else{var itemLeft=right+2;this.DrawTextBGRect(itemLeft,yTop,textSize.Width,textSize.Height);this.DrawComplexTextV2(itemLeft,yTop,complexText,textSize);if(this.RightButton.Enable)this.DrawRightButton(yTop,right+2,this.TextHeight,this.TextHeight,buttonData);}/*
5726
- if (this.StringFormatY.RExtendText && this.StringFormatY.RExtendText.length>0)
5727
- {
5728
- var yOffset=0;
5729
- for(var i in this.StringFormatY.RExtendText)
5730
- {
5731
- var item=this.StringFormatY.RExtendText[i];
5732
- var rText='--.--'
5733
- if (item.YText) rText=item.YText;
5734
- else if (IFrameSplitOperator.IsNumber(item.Y)) rText=item.Y.toFixed(0);
5735
- var rTextWidth=this.Canvas.measureText(rText).width+4; //前后各空2个像素
5736
-
5737
- if (rightWidth<rTextWidth)
5738
- {
5739
- this.DrawTextBGRect(chartRight-2-rTextWidth,y+yOffset+this.TextHeight/2,rTextWidth,this.TextHeight);
5740
- this.Canvas.textAlign="right";
5741
- this.Canvas.textBaseline="middle";
5742
- this.Canvas.fillStyle=item.TextColor;
5743
- this.Canvas.fillText(rText,chartRight-4,y+yOffset+this.TextHeight,rTextWidth);
5744
- }
5745
- else
5746
- {
5747
- this.DrawTextBGRect(right+2,y+yOffset+this.TextHeight/2,rTextWidth,this.TextHeight);
5748
- this.Canvas.textAlign="left";
5749
- this.Canvas.textBaseline="middle";
5750
- this.Canvas.fillStyle=item.TextColor;
5751
- this.Canvas.fillText(rText,right+4,y+yOffset+this.TextHeight,rTextWidth);
5752
- }
5753
-
5754
- yOffset+=this.TextHeight;
5755
- }
5756
- }
5757
- */}else if(this.ShowTextMode.Right==2){this.Canvas.fillStyle=this.TextBGColor;var showLeft=right-textSize.Width;this.DrawTextBGRect(showLeft,yTop,textSize.Width,textSize.Height);this.DrawComplexTextV2(showLeft,yTop,complexText,textSize);if(this.RightButton.Enable)this.DrawRightButton(yTop,showLeft,this.TextHeight,this.TextHeight,buttonData);}}//X轴 Bottom==8 自定义
5727
+ {var rtBG={Right:right+overlayIndexInterval,Width:textSize.Width,YCenter:y,Height:textSize.Height};rtBG.Left=rtBG.Right-rtBG.Width;if(complexText.ShowType==1){rtBG.Top=rtBG.YCenter-this.TextHeight/2;rtBG.Bottom=rtBG.Top+rtBG.Height;}else{rtBG.Top=rtBG.YCenter-rtBG.Height/2;rtBG.Bottom=rtBG.Top+rtBG.Height;}if(rtBG.Right>chartRight){rtBG.Right=chartRight;rtBG.Left=rtBG.Right-rtBG.Width;}var drawRight=right+overlayIndexInterval;if(drawRight>chartRight)drawRight=chartRight;this.DrawTextBGRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);this.DrawComplexRightText(rtBG,complexText,textSize);if(this.RightButton.Enable)this.DrawRightButtonV2(rtBG,complexText,textSize,buttonData);}else{var rtBG={Left:right+1,Width:textSize.Width,YCenter:y,Height:textSize.Height};rtBG.Right=rtBG.Left+rtBG.Width;if(complexText.ShowType==1){rtBG.Top=rtBG.YCenter-this.TextHeight/2;rtBG.Bottom=rtBG.Top+rtBG.Height;}else{rtBG.Top=rtBG.YCenter-rtBG.Height/2;rtBG.Bottom=rtBG.Top+rtBG.Height;}if(rtBG.Right>chartRight){rtBG.Right=chartRight;rtBG.Left=rtBG.Right-rtBG.Width;}this.DrawTextBGRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);this.DrawComplexRightText(rtBG,complexText,textSize);if(this.RightButton.Enable)this.DrawRightButtonV2(rtBG,complexText,textSize,buttonData);}}else if(this.ShowTextMode.Right==2)//框架内侧显示
5728
+ {var rtBG={Right:right,Width:textSize.Width,YCenter:y,Height:textSize.Height};rtBG.Left=rtBG.Right-rtBG.Width;rtBG.Top=rtBG.YCenter-rtBG.Height/2;rtBG.Bottom=rtBG.Top+rtBG.Height;this.Canvas.fillStyle=this.TextBGColor;var showLeft=right-textSize.Width;this.DrawTextBGRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);this.DrawComplexRightText(rtBG,complexText,textSize);if(this.RightButton.Enable)this.DrawRightButtonV2(rtBG,complexText,textSize,buttonData);}}//X轴 Bottom==8 自定义
5758
5729
  if((this.ShowTextMode.Bottom==1||this.ShowTextMode.Bottom==2||this.ShowTextMode.Bottom==8)&&this.StringFormatX.Operator()){var text=this.StringFormatX.Text;this.Canvas.font=this.Font;this.Canvas.fillStyle=this.TextBGColor;var textWidth=this.Canvas.measureText(text).width;//前后各空2个像素
5759
5730
  var margin=this.BottomConfig.Margin;var textOffset=this.BottomConfig.TextOffset;var rtBG={Top:bottom,Height:margin.Top+margin.Bottom+textHeight,XCenter:x,Width:textWidth+margin.Left+margin.Right};rtBG.Bottom=rtBG.Top+rtBG.Height;rtBG.Left=rtBG.XCenter-rtBG.Width/2;rtBG.Right=rtBG.Left+rtBG.Width;if(rtBG.Left<=0){rtBG.Left=0;rtBG.Right=rtBG.Left+rtBG.Width;}else if(rtBG.Right>=right){rtBG.Right=right;rtBG.Left=rtBG.Right-rtBG.Width;}var bShowText=true;if(this.ShowTextMode.Bottom==2){rtBG.Bottom=bottom;rtBG.Top=rtBG.Bottom-rtBG.Height;}else if(this.ShowTextMode.Bottom==8){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CUSTOM_CORSSCURSOR_POSITION);if(event&&event.Callback){var sendData={RectText:rtBG,IsShowText:bShowText,X:x,Y:y};event.Callback(event,sendData,this);bShowText=sendData.IsShowText;}}//JSConsole.Chart.Log('[ChartCorssCursor::Draw] ',yCenter);
5760
5731
  if(bShowText){this.DrawTextBGRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);this.Canvas.textAlign="left";this.Canvas.textBaseline="bottom";this.Canvas.fillStyle=this.TextColor;this.Canvas.fillText(text,rtBG.Left+textOffset.X,rtBG.Bottom+textOffset.Y,textWidth);var buttonData={X:x,Y:y,XValue:xValue,FrameID:yValueExtend.FrameID};if(this.StringFormatX.KItem)buttonData.KItem=this.StringFormatX.KItem;this.BottomButton.Rect=rtBG;this.BottomButton.Data=buttonData;}}//子坐标Y轴
5761
5732
  if(yValueExtend.FrameID>=0){var frame=this.Frame.SubFrame[yValueExtend.FrameID];var overlayLeft=right;this.Canvas.font=this.Font;for(var i=0;i<frame.OverlayIndex.length;++i){var item=frame.OverlayIndex[i];if(item.Frame.IsShow===false)continue;if(!item.Frame.GetXHorizontal)continue;overlayLeft=item.Frame.GetXHorizontal();//if (overlayLeft+30>chartRight) break;
5762
- var yValue=item.Frame.GetYData(y);var text=IFrameSplitOperator.FormatValueString(yValue,2);var textWidth=this.Canvas.measureText(text).width+4;//前后各空2个像素
5763
- /*
5733
+ var yValue=item.Frame.GetYData(y);var text=IFrameSplitOperator.FormatValueString(yValue,2);var textWidth=this.Canvas.measureText(text).width;//前后各空2个像素
5734
+ var margin=this.RightOverlayConfig.Margin;var textOffset=this.RightOverlayConfig.TextOffset;var rtBG={Left:overlayLeft+1,Width:textWidth+margin.Left+margin.Right,YCenter:y,Height:textHeight+margin.Top+margin.Bottom};rtBG.Right=rtBG.Left-rtBG.Width;rtBG.Top=rtBG.YCenter-rtBG.Height/2;rtBG.Bottom=rtBG.Top+rtBG.Height;this.DrawTextBGRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);/*
5764
5735
  for(var j=2;j>=0;--j)
5765
5736
  {
5766
5737
  var text=IFrameSplitOperator.FormatValueString(yValue,j);
5767
5738
  var textWidth=this.Canvas.measureText(text).width+4; //前后各空2个像素
5768
5739
  if (textWidth<frame.Interval) break;
5769
5740
  }
5770
- */this.Canvas.fillStyle=this.TextBGColor;this.Canvas.fillRect(overlayLeft+1,y-this.TextHeight/2,textWidth,this.TextHeight);this.Canvas.textAlign="left";this.Canvas.textBaseline="middle";this.Canvas.fillStyle=this.TextColor;this.Canvas.fillText(text,overlayLeft+4,y,textWidth);}}this.Status=1;};this.DrawComplexTextV2=function(left,yTop,complexText,size){this.Canvas.textAlign="left";this.Canvas.textBaseline="bottom";var showType=0;if(complexText.ShowType==1)showType=complexText.ShowType;if(showType==1)//多行
5771
- {var xLeft=left;var yText=yTop;//顶
5772
- for(var i=0;i<complexText.Text.length;++i){var item=complexText.Text[i];var itemSize=size.Text[i];if(item.Font)this.Canvas.font=item.Font;else this.Canvas.font=complexText.Font;if(item.Color)this.Canvas.fillStyle=item.Color;else this.Canvas.fillStyle=complexText.Color;var y=yText+itemSize.Height;var x=xLeft;if(item.Margin){var margin=item.Margin;if(IFrameSplitOperator.IsNumber(margin.Bottom))y-=margin.Bottom;if(IFrameSplitOperator.IsNumber(margin.Left))x+=margin.Left;}this.Canvas.fillText(item.Text,x,y,itemSize.Width);yText+=itemSize.Height;}}else//水平 单行
5773
- {var xText=left;var yBottom=yTop+size.Height;for(var i=0;i<complexText.Text.length;++i){var item=complexText.Text[i];var itemSize=size.Text[i];if(item.Font)this.Canvas.font=item.Font;else this.Canvas.font=complexText.Font;if(item.Color)this.Canvas.fillStyle=item.Color;else this.Canvas.fillStyle=complexText.Color;var y=yBottom;var x=xText;if(item.Margin){var margin=item.Margin;if(IFrameSplitOperator.IsNumber(margin.Bottom))y-=margin.Bottom;if(IFrameSplitOperator.IsNumber(margin.Left))x+=margin.Left;}this.Canvas.fillText(item.Text,x,y,itemSize.Width);xText+=itemSize.Width;}}};this.CalculateComplexTextSize=function(complexText,size){if(!complexText||!IFrameSplitOperator.IsNonEmptyArray(complexText.Text))return;var showType=0;if(complexText.ShowType==1)showType=complexText.ShowType;if(showType==1)//多行
5741
+ */this.Canvas.textAlign="left";this.Canvas.textBaseline="bottom";this.Canvas.fillStyle=this.TextColor;this.Canvas.fillText(text,rtBG.Left+textOffset.X,rtBG.Bottom+textOffset.Y);}}this.Status=1;};this.DrawComplexRightText=function(rtBG,complexText,size){this.Canvas.textAlign="left";this.Canvas.textBaseline="bottom";var showType=0;if(complexText.ShowType==1)showType=complexText.ShowType;if(showType==1)//多行
5742
+ {var xLeft=rtBG.Left;var yTop=rtBG.Top;//顶
5743
+ for(var i=0;i<complexText.Text.length;++i){var item=complexText.Text[i];var itemSize=size.Text[i];if(item.Font)this.Canvas.font=item.Font;else this.Canvas.font=complexText.Font;if(item.Color)this.Canvas.fillStyle=item.Color;else this.Canvas.fillStyle=complexText.Color;var y=yTop+itemSize.Height;var x=xLeft;if(item.TextOffset){var textOffset=item.TextOffset;if(IFrameSplitOperator.IsNumber(textOffset.X))x+=textOffset.X;if(IFrameSplitOperator.IsNumber(textOffset.Y))y+=textOffset.Y;}this.Canvas.fillText(item.Text,x,y,itemSize.Width);yTop+=itemSize.Height;}}else//水平 单行
5744
+ {var xText=rtBG.Left;var yBottom=rtBG.Bottom;for(var i=0;i<complexText.Text.length;++i){var item=complexText.Text[i];var itemSize=size.Text[i];if(item.Font)this.Canvas.font=item.Font;else this.Canvas.font=complexText.Font;if(item.Color)this.Canvas.fillStyle=item.Color;else this.Canvas.fillStyle=complexText.Color;var x=xText;var y=yBottom;if(item.TextOffset){var textOffset=item.TextOffset;if(IFrameSplitOperator.IsNumber(textOffset.X))x+=textOffset.X;if(IFrameSplitOperator.IsNumber(textOffset.Y))y+=textOffset.Y;}this.Canvas.fillText(item.Text,x,y,itemSize.Width);xText+=itemSize.Width;}}};this.CalculateComplexTextSize=function(complexText,size){if(!complexText||!IFrameSplitOperator.IsNonEmptyArray(complexText.Text))return;var showType=0;if(complexText.ShowType==1)showType=complexText.ShowType;if(showType==1)//多行
5774
5745
  {var textWidth=0,textHeight=0;for(var i=0;i<complexText.Text.length;++i){var item=complexText.Text[i];if(item.Font)this.Canvas.font=item.Font;else this.Canvas.font=complexText.Font;var itemWidth=this.Canvas.measureText(item.Text).width;//前后各空2个像素
5775
- var itemHeight=this.Canvas.measureText("擎").width;if(item.Margin){var margin=item.Margin;if(IFrameSplitOperator.IsNumber(margin.Left))itemWidth+=margin.Left;if(IFrameSplitOperator.IsNumber(margin.Right))itemWidth+=margin.Right;if(IFrameSplitOperator.IsNumber(margin.Top))itemHeight+=margin.Top;if(IFrameSplitOperator.IsNumber(margin.Bottom))itemHeight+=margin.Bottom;}size.Text[i]={Width:itemWidth,Height:itemHeight};//保存所有文字的大小信息
5746
+ var itemHeight=this.GetFontHeight();if(item.Margin){var margin=item.Margin;if(IFrameSplitOperator.IsNumber(margin.Left))itemWidth+=margin.Left;if(IFrameSplitOperator.IsNumber(margin.Right))itemWidth+=margin.Right;if(IFrameSplitOperator.IsNumber(margin.Top))itemHeight+=margin.Top;if(IFrameSplitOperator.IsNumber(margin.Bottom))itemHeight+=margin.Bottom;}size.Text[i]={Width:itemWidth,Height:itemHeight};//保存所有文字的大小信息
5776
5747
  if(textWidth<itemWidth)textWidth=itemWidth;textHeight+=itemHeight;}size.Width=textWidth;size.Height=textHeight;}else//水平 单行
5777
- {var textWidth=0,textHeight=0;for(var i=0;i<complexText.Text.length;++i){var item=complexText.Text[i];if(item.Font)this.Canvas.font=item.Font;else this.Canvas.font=complexText.Font;var itemWidth=this.Canvas.measureText(item.Text).width;//前后各空2个像素
5748
+ {var textWidth=0,textHeight=this.GetFontHeight();for(var i=0;i<complexText.Text.length;++i){var item=complexText.Text[i];if(item.Font)this.Canvas.font=item.Font;else this.Canvas.font=complexText.Font;var itemWidth=this.Canvas.measureText(item.Text).width;//前后各空2个像素
5778
5749
  var itemHeight=this.Canvas.measureText("擎").width;if(item.Margin){var margin=item.Margin;if(IFrameSplitOperator.IsNumber(margin.Left))itemWidth+=margin.Left;if(IFrameSplitOperator.IsNumber(margin.Right))itemWidth+=margin.Right;if(IFrameSplitOperator.IsNumber(margin.Top))itemHeight+=margin.Top;if(IFrameSplitOperator.IsNumber(margin.Bottom))itemHeight+=margin.Bottom;}size.Text[i]={Width:itemWidth,Height:itemHeight};//保存所有文字的大小信息
5779
- textWidth+=itemWidth;if(textHeight<itemHeight)textHeight=itemHeight;}size.Width=textWidth;size.Height=textHeight;}};this.DrawRightButton=function(drawTop,drawRight,drawWidth,drawHeight,data){this.Canvas.fillStyle=this.RightButton.BGColor;var rtButton={Left:drawRight-drawWidth,Top:drawTop,Width:drawWidth,Height:drawHeight};rtButton.Right=rtButton.Left+rtButton.Width;rtButton.Bottom=rtButton.Top+rtButton.Height;this.RightButton.Rect=rtButton;this.RightButton.Data=data;this.Canvas.fillRect(ToFixedPoint(rtButton.Left+1),ToFixedPoint(rtButton.Top),ToFixedRect(rtButton.Width),ToFixedRect(rtButton.Height));var pixelRatio=GetDevicePixelRatio();var spaceWidth=3;var yCenter=rtButton.Top+spaceWidth+(rtButton.Height-spaceWidth*2)/2;var xCenter=rtButton.Left+spaceWidth+(rtButton.Width-spaceWidth*2)/2;if(this.RightButton.Icon){var icon=this.RightButton.Icon;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('\uE6A3',xCenter,yCenter);}else{//画加号
5750
+ textWidth+=itemWidth;if(textHeight<itemHeight)textHeight=itemHeight;}size.Width=textWidth;size.Height=textHeight;}};this.DrawRightButtonV2=function(rtTextBG,complexText,textSize,data){this.Canvas.fillStyle=this.RightButton.BGColor;var drawHeight=rtTextBG.Height;var drawWidth=rtTextBG.Height;if(complexText.ShowType==1)//多行 取第1行高度
5751
+ {var itemSize=textSize.Text[0];drawHeight=itemSize.Height;drawWidth=itemSize.Height;}var rtButton={Left:rtTextBG.Left-drawHeight,Top:rtTextBG.Top,Width:drawWidth,Height:drawHeight};rtButton.Right=rtButton.Left+rtButton.Width;rtButton.Bottom=rtButton.Top+rtButton.Height;this.RightButton.Rect=rtButton;this.RightButton.Data=data;this.Canvas.fillRect(ToFixedPoint(rtButton.Left+1),ToFixedPoint(rtButton.Top),ToFixedRect(rtButton.Width),ToFixedRect(rtButton.Height));var pixelRatio=GetDevicePixelRatio();var spaceWidth=3;var yCenter=rtButton.Top+spaceWidth+(rtButton.Height-spaceWidth*2)/2;var xCenter=rtButton.Left+spaceWidth+(rtButton.Width-spaceWidth*2)/2;if(this.RightButton.Icon){var icon=this.RightButton.Icon;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('\uE6A3',xCenter,yCenter);}else{//画加号
5752
+ this.Canvas.strokeStyle=this.RightButton.PenColor;var x=rtButtom.Left+spaceWidth;var y=rtButtom.Top+spaceWidth;this.Canvas.save();this.Canvas.linewidth=1*pixelRatio;this.Canvas.beginPath();this.Canvas.moveTo(ToFixedPoint(x),ToFixedPoint(yCenter));this.Canvas.lineTo(ToFixedPoint(x+rtButton.Width-spaceWidth*2),ToFixedPoint(yCenter));this.Canvas.moveTo(ToFixedPoint(xCenter),ToFixedPoint(y));this.Canvas.lineTo(ToFixedPoint(xCenter),ToFixedPoint(y+rtButton.Height-spaceWidth*2));this.Canvas.stroke();this.Canvas.restore();}};this.DrawRightButton=function(drawTop,drawRight,drawWidth,drawHeight,data){this.Canvas.fillStyle=this.RightButton.BGColor;var rtButton={Left:drawRight-drawWidth,Top:drawTop,Width:drawWidth,Height:drawHeight};rtButton.Right=rtButton.Left+rtButton.Width;rtButton.Bottom=rtButton.Top+rtButton.Height;this.RightButton.Rect=rtButton;this.RightButton.Data=data;this.Canvas.fillRect(ToFixedPoint(rtButton.Left+1),ToFixedPoint(rtButton.Top),ToFixedRect(rtButton.Width),ToFixedRect(rtButton.Height));var pixelRatio=GetDevicePixelRatio();var spaceWidth=3;var yCenter=rtButton.Top+spaceWidth+(rtButton.Height-spaceWidth*2)/2;var xCenter=rtButton.Left+spaceWidth+(rtButton.Width-spaceWidth*2)/2;if(this.RightButton.Icon){var icon=this.RightButton.Icon;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('\uE6A3',xCenter,yCenter);}else{//画加号
5780
5753
  this.Canvas.strokeStyle=this.RightButton.PenColor;var x=rtButtom.Left+spaceWidth;var y=rtButtom.Top+spaceWidth;this.Canvas.save();this.Canvas.linewidth=1*pixelRatio;this.Canvas.beginPath();this.Canvas.moveTo(ToFixedPoint(x),ToFixedPoint(yCenter));this.Canvas.lineTo(ToFixedPoint(x+rtButton.Width-spaceWidth*2),ToFixedPoint(yCenter));this.Canvas.moveTo(ToFixedPoint(xCenter),ToFixedPoint(y));this.Canvas.lineTo(ToFixedPoint(xCenter),ToFixedPoint(y+rtButton.Height-spaceWidth*2));this.Canvas.stroke();this.Canvas.restore();}};this.PtInButton=function(x,y){var item=this.PtInRightButton(x,y);if(item)return item;item=this.PtInButtomButton(x,y);if(item)return item;return null;};this.PtInRightButton=function(x,y){if(!this.RightButton.Enable)return null;if(!this.RightButton.Rect)return null;var rect=this.RightButton.Rect;if(x>=rect.Left&&x<=rect.Right&&y>=rect.Top&&y<=rect.Bottom){return{Data:this.RightButton.Data,Rect:rect,Type:1};//Type:1=右侧 2=底部
5781
5754
  }return null;};this.PtInButtomButton=function(x,y){if(!this.BottomButton.Enable)return null;if(!this.BottomButton.Rect)return null;var rect=this.BottomButton.Rect;if(x>=rect.Left&&x<=rect.Right&&y>=rect.Top&&y<=rect.Bottom){return{Data:this.BottomButton.Data,Rect:rect,Type:2};//Type:1=右侧 2=底部
5782
5755
  }return null;};this.DrawTextBGRect=function(x,y,height,width){this.Canvas.fillStyle=this.TextBGColor;this.Canvas.fillRect(ToFixedPoint(x),ToFixedPoint(y),ToFixedRect(height),ToFixedRect(width));if(this.BorderColor){this.Canvas.strokeStyle=this.BorderColor;this.Canvas.strokeRect(ToFixedPoint(x),ToFixedPoint(y),ToFixedRect(height),ToFixedRect(width));}};this.HScreenDraw=function(){var x=this.LastPoint.X;var y=this.LastPoint.Y;if(this.IsOnlyDrawKLine)//手机端 十字只能画在K线上
@@ -6996,7 +6969,8 @@ this.CorssCursorTextFont=14*GetDevicePixelRatio()+"px 微软雅黑";this.CorssCu
6996
6969
  this.CorssCursorVPenColor="rgb(130,130,130)";//十字光标线段颜色(垂直)
6997
6970
  this.CorssCursorXRangeBGColor="rgba(100,149,237,0.3)";//十字光标X轴访问背景色
6998
6971
  this.CorssCursorLineDash=[3*GetDevicePixelRatio(),2*GetDevicePixelRatio()];//十字光标虚线
6999
- this.CorssCursor={RightButton:{BGColor:'rgb(43,54,69)',PenColor:'rgb(255,255,255)',Icon:{Text:'\uE6A3',Color:'rgb(255,255,255)',Family:"iconfont",Size:18}},RightMargin:{Left:2,Right:2,Top:5,Bottom:3},BottomText:{Margin:{Left:4,Right:4,Top:0,Bottom:0},TextOffset:{X:4,Y:-1}},LeftText:{Margin:{Left:4,Right:4,Top:0,Bottom:0},TextOffset:{X:4,Y:-1}},CorssPoint:{Center:{Radius:5*GetDevicePixelRatio(),Color:"rgb(50,171,205)"},Border:{Color:'rgb(255,255,255)',Width:1*GetDevicePixelRatio()}}};//指标锁
6972
+ this.CorssCursor={RightButton:{BGColor:'rgb(43,54,69)',PenColor:'rgb(255,255,255)',Icon:{Text:'\uE6A3',Color:'rgb(255,255,255)',Family:"iconfont",Size:14}},BottomText:{Margin:{Left:4,Right:4,Top:0,Bottom:0},TextOffset:{X:4,Y:-1}},LeftText:{Margin:{Left:4,Right:4,Top:0,Bottom:0},TextOffset:{X:4,Y:-1}},RightText:{Margin:{Left:4,Right:4,Top:0,Bottom:0},TextOffset:{X:4,Y:-1}},RightOverlayText:{Margin:{Left:2,Right:2,Top:0,Bottom:0},TextOffset:{X:2,Y:-1}},//右侧叠加坐标
6973
+ CorssPoint:{Center:{Radius:5*GetDevicePixelRatio(),Color:"rgb(50,171,205)"},Border:{Color:'rgb(255,255,255)',Width:1*GetDevicePixelRatio()}}};//指标锁
7000
6974
  this.IndexLock={BGColor:"rgb(220, 220, 220)",TextColor:"rgb(210, 34, 34)",Font:14*GetDevicePixelRatio()+'px \u5FAE\u8F6F\u96C5\u9ED1',Title:'🔒开通权限'};this.Domain="http://127.0.0.1:8080";//API域名
7001
6975
  this.CacheDomain="http://127.0.0.1:8087";//缓存域名
7002
6976
  this.PyIndexDomain='http://127.0.0.1:8088';//py指标计算域名
@@ -12558,7 +12532,7 @@ UnchagneBarColor:"rgb(190,190,190)",//平盘
12558
12532
  BGAlpha:0.6,EmptyBGColor:"rgb(0,0,0)"},CorssCursorBGColor:"rgb(43,54,69)",//十字光标背景
12559
12533
  CorssCursorTextColor:"rgb(255,255,255)",CorssCursorTextFont:12*GetDevicePixelRatio()+"px 微软雅黑",CorssCursorHPenColor:"rgb(130,130,130)",//十字光标线段颜色
12560
12534
  CorssCursorVPenColor:"rgb(130,130,130)",//十字光标线段颜色
12561
- CorssCursor:{RightButton:{BGColor:'rgb(43,54,69)',PenColor:'rgb(255,255,255)',Icon:{Text:'\uE6A3',Color:'rgb(255,255,255)',Family:"iconfont",Size:18}},CorssPoint:{Center:{Color:"rgb(50,171,205)"},Border:{Color:'rgba(0,0,0,0.8)',Width:1*GetDevicePixelRatio()}}},//订单流配置
12535
+ CorssCursor:{RightButton:{BGColor:'rgb(43,54,69)',PenColor:'rgb(255,255,255)',Icon:{Text:'\uE6A3',Color:'rgb(255,255,255)',Family:"iconfont",Size:12}},CorssPoint:{Center:{Color:"rgb(50,171,205)"},Border:{Color:'rgba(0,0,0,0.8)',Width:1*GetDevicePixelRatio()}}},//订单流配置
12562
12536
  OrderFlow:{UpColor:{BG:'rgb(223,191,180)',Border:"rgb(196,84,86)"},//阳线
12563
12537
  DownColor:{BG:"rgb(176,212,184)",Border:'rgb(66,94,74)'},//阴线
12564
12538
  UnchagneColor:{BG:"rgb(216,221,177)",Border:"rgb(209,172,129)"},//平盘
@@ -14792,7 +14766,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
14792
14766
  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);};}/********************************************************************************
14793
14767
  * 版本信息输出
14794
14768
  *
14795
- */var HQCHART_VERSION="1.1.14717";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();//把给外界调用的方法暴露出来
14769
+ */var HQCHART_VERSION="1.1.14721";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();//把给外界调用的方法暴露出来
14796
14770
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
14797
14771
  // BaseIndex:BaseIndex,
14798
14772
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.14718",
3
+ "version": "1.1.14722",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -55899,7 +55899,7 @@ function ChartCorssCursor()
55899
55899
  Enable:false, Rect:null,
55900
55900
  BGColor:g_JSChartResource.CorssCursor.RightButton.BGColor ,
55901
55901
  PenColor:g_JSChartResource.CorssCursor.RightButton.PenColor,
55902
- Icon:g_JSChartResource.CorssCursor.RightButton.Icon
55902
+ Icon:CloneData(g_JSChartResource.CorssCursor.RightButton.Icon)
55903
55903
  };
55904
55904
 
55905
55905
  //底部按钮
@@ -55908,9 +55908,11 @@ function ChartCorssCursor()
55908
55908
  Enable:false, Rect:null,
55909
55909
  }
55910
55910
 
55911
- this.RightMargin=CloneData(g_JSChartResource.CorssCursor.RightMargin);
55912
- this.BottomConfig=CloneData(g_JSChartResource.CorssCursor.BottomText); //底部输出配置
55913
- this.LeftConfig=CloneData(g_JSChartResource.CorssCursor.LeftText);
55911
+ this.BottomConfig=CloneData(g_JSChartResource.CorssCursor.BottomText); //底部输出配置
55912
+ this.LeftConfig=CloneData(g_JSChartResource.CorssCursor.LeftText); //左侧输出配置
55913
+ this.RightConfig=CloneData(g_JSChartResource.CorssCursor.RightText); //右侧输出配置
55914
+ this.RightOverlayConfig=CloneData(g_JSChartResource.CorssCursor.RightOverlayText); //右侧叠加指标输出配置
55915
+
55914
55916
 
55915
55917
  //内部使用
55916
55918
  this.Close=null; //收盘价格
@@ -55928,6 +55930,10 @@ function ChartCorssCursor()
55928
55930
  this.XRangeBGColor=g_JSChartResource.CorssCursorXRangeBGColor;
55929
55931
  this.LineDash=g_JSChartResource.CorssCursorLineDash.slice(); //虚线
55930
55932
 
55933
+ this.RightButton.BGColor=g_JSChartResource.CorssCursor.RightButton.BGColor;
55934
+ this.RightButton.PenColor=g_JSChartResource.CorssCursor.RightButton.PenColor;
55935
+ this.RightButton.Icon=CloneData(g_JSChartResource.CorssCursor.RightButton.Icon);
55936
+ this.RightOverlayConfig=CloneData(g_JSChartResource.CorssCursor.RightOverlayText);
55931
55937
 
55932
55938
  this.CorssPointConfig.Center=CloneData(g_JSChartResource.CorssCursor.CorssPoint.Center);
55933
55939
  this.CorssPointConfig.Border=CloneData(g_JSChartResource.CorssCursor.CorssPoint.Border);
@@ -56333,7 +56339,7 @@ function ChartCorssCursor()
56333
56339
  {
56334
56340
  ShowType:0, //0=单行(默认) 1=多行
56335
56341
  Font:this.Font, Color:this.TextColor,
56336
- Text:[ { Text:text, Margin:this.RightMargin } ],
56342
+ Text:[ { Text:text, Margin:this.RightConfig.Margin, TextOffset:this.RightConfig.TextOffset } ],
56337
56343
  };
56338
56344
 
56339
56345
  var yTop=y-this.TextHeight/2;
@@ -56392,74 +56398,73 @@ function ChartCorssCursor()
56392
56398
  //叠加坐标
56393
56399
  if (isOverlayIndex && textSize.Width>overlayIndexInterval && overlayIndexInterval>0) //大于子坐标宽度
56394
56400
  {
56401
+ var rtBG={ Right:right+overlayIndexInterval, Width:textSize.Width, YCenter:y, Height:textSize.Height };
56402
+ rtBG.Left=rtBG.Right-rtBG.Width;
56403
+ if (complexText.ShowType==1)
56404
+ {
56405
+ rtBG.Top=rtBG.YCenter-this.TextHeight/2;
56406
+ rtBG.Bottom=rtBG.Top+rtBG.Height;
56407
+ }
56408
+ else
56409
+ {
56410
+ rtBG.Top=rtBG.YCenter-rtBG.Height/2;
56411
+ rtBG.Bottom=rtBG.Top+rtBG.Height;
56412
+ }
56413
+
56414
+ if (rtBG.Right>chartRight)
56415
+ {
56416
+ rtBG.Right=chartRight;
56417
+ rtBG.Left=rtBG.Right-rtBG.Width;
56418
+ }
56419
+
56395
56420
  var drawRight=right+overlayIndexInterval;
56396
56421
  if (drawRight>chartRight) drawRight=chartRight;
56397
56422
 
56398
- var itemLeft=drawRight-2-textSize.Width;
56399
- this.DrawTextBGRect(itemLeft,yTop,textSize.Width,textSize.Height);
56400
- this.DrawComplexTextV2(itemLeft, yTop, complexText, textSize);
56423
+ this.DrawTextBGRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);
56424
+ this.DrawComplexRightText(rtBG,complexText,textSize);
56401
56425
 
56402
- if (this.RightButton.Enable) this.DrawRightButton(yTop, itemLeft,this.TextHeight,this.TextHeight,buttonData);
56403
- }
56404
- else if (rightWidth<textSize.Width) //右边空白显示不下,
56405
- {
56406
- var itemLeft=chartRight-2-textSize.Width;
56407
- this.DrawTextBGRect(itemLeft,yTop,textSize.Width,textSize.Height);
56408
- this.DrawComplexTextV2(itemLeft, yTop ,complexText, textSize);
56409
-
56410
- if (this.RightButton.Enable) this.DrawRightButton(yTop, chartRight-2-textSize.Width,this.TextHeight,this.TextHeight,buttonData);
56426
+ if (this.RightButton.Enable) this.DrawRightButtonV2(rtBG, complexText, textSize, buttonData);
56411
56427
  }
56412
56428
  else
56413
56429
  {
56414
- var itemLeft=right+2;
56415
- this.DrawTextBGRect(itemLeft,yTop,textSize.Width,textSize.Height);
56416
- this.DrawComplexTextV2(itemLeft,yTop,complexText,textSize);
56417
-
56418
- if (this.RightButton.Enable) this.DrawRightButton(yTop, right+2,this.TextHeight,this.TextHeight,buttonData);
56419
- }
56420
-
56421
- /*
56422
- if (this.StringFormatY.RExtendText && this.StringFormatY.RExtendText.length>0)
56423
- {
56424
- var yOffset=0;
56425
- for(var i in this.StringFormatY.RExtendText)
56430
+ var rtBG={ Left:right+1, Width:textSize.Width, YCenter:y, Height:textSize.Height };
56431
+ rtBG.Right=rtBG.Left+rtBG.Width;
56432
+ if (complexText.ShowType==1)
56426
56433
  {
56427
- var item=this.StringFormatY.RExtendText[i];
56428
- var rText='--.--'
56429
- if (item.YText) rText=item.YText;
56430
- else if (IFrameSplitOperator.IsNumber(item.Y)) rText=item.Y.toFixed(0);
56431
- var rTextWidth=this.Canvas.measureText(rText).width+4; //前后各空2个像素
56432
-
56433
- if (rightWidth<rTextWidth)
56434
- {
56435
- this.DrawTextBGRect(chartRight-2-rTextWidth,y+yOffset+this.TextHeight/2,rTextWidth,this.TextHeight);
56436
- this.Canvas.textAlign="right";
56437
- this.Canvas.textBaseline="middle";
56438
- this.Canvas.fillStyle=item.TextColor;
56439
- this.Canvas.fillText(rText,chartRight-4,y+yOffset+this.TextHeight,rTextWidth);
56440
- }
56441
- else
56442
- {
56443
- this.DrawTextBGRect(right+2,y+yOffset+this.TextHeight/2,rTextWidth,this.TextHeight);
56444
- this.Canvas.textAlign="left";
56445
- this.Canvas.textBaseline="middle";
56446
- this.Canvas.fillStyle=item.TextColor;
56447
- this.Canvas.fillText(rText,right+4,y+yOffset+this.TextHeight,rTextWidth);
56448
- }
56449
-
56450
- yOffset+=this.TextHeight;
56434
+ rtBG.Top=rtBG.YCenter-this.TextHeight/2;
56435
+ rtBG.Bottom=rtBG.Top+rtBG.Height;
56451
56436
  }
56437
+ else
56438
+ {
56439
+ rtBG.Top=rtBG.YCenter-rtBG.Height/2;
56440
+ rtBG.Bottom=rtBG.Top+rtBG.Height;
56441
+ }
56442
+
56443
+ if (rtBG.Right>chartRight)
56444
+ {
56445
+ rtBG.Right=chartRight;
56446
+ rtBG.Left=rtBG.Right-rtBG.Width;
56447
+ }
56448
+
56449
+ this.DrawTextBGRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);
56450
+ this.DrawComplexRightText(rtBG,complexText,textSize);
56451
+
56452
+ if (this.RightButton.Enable) this.DrawRightButtonV2(rtBG, complexText, textSize, buttonData);
56452
56453
  }
56453
- */
56454
56454
  }
56455
- else if (this.ShowTextMode.Right==2)
56455
+ else if (this.ShowTextMode.Right==2) //框架内侧显示
56456
56456
  {
56457
+ var rtBG={ Right:right, Width:textSize.Width, YCenter:y, Height:textSize.Height };
56458
+ rtBG.Left=rtBG.Right-rtBG.Width;
56459
+ rtBG.Top=rtBG.YCenter-rtBG.Height/2;
56460
+ rtBG.Bottom=rtBG.Top+rtBG.Height;
56461
+
56457
56462
  this.Canvas.fillStyle=this.TextBGColor;
56458
56463
  var showLeft=right-textSize.Width;
56459
- this.DrawTextBGRect(showLeft,yTop,textSize.Width,textSize.Height);
56460
- this.DrawComplexTextV2(showLeft,yTop,complexText,textSize);
56464
+ this.DrawTextBGRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);
56465
+ this.DrawComplexRightText(rtBG,complexText,textSize);
56461
56466
 
56462
- if (this.RightButton.Enable) this.DrawRightButton(yTop, showLeft,this.TextHeight,this.TextHeight,buttonData);
56467
+ if (this.RightButton.Enable) this.DrawRightButtonV2(rtBG, complexText, textSize, buttonData);
56463
56468
  }
56464
56469
  }
56465
56470
 
@@ -56542,8 +56547,19 @@ function ChartCorssCursor()
56542
56547
  //if (overlayLeft+30>chartRight) break;
56543
56548
  var yValue=item.Frame.GetYData(y);
56544
56549
  var text=IFrameSplitOperator.FormatValueString(yValue,2);
56545
- var textWidth=this.Canvas.measureText(text).width+4; //前后各空2个像素
56550
+ var textWidth=this.Canvas.measureText(text).width; //前后各空2个像素
56551
+
56552
+
56553
+ var margin=this.RightOverlayConfig.Margin;
56554
+ var textOffset=this.RightOverlayConfig.TextOffset;
56555
+
56556
+ var rtBG={ Left:overlayLeft+1, Width:textWidth+margin.Left+margin.Right, YCenter:y, Height:textHeight+margin.Top+margin.Bottom };
56557
+ rtBG.Right=rtBG.Left-rtBG.Width;
56558
+ rtBG.Top=rtBG.YCenter-rtBG.Height/2;
56559
+ rtBG.Bottom=rtBG.Top+rtBG.Height;
56546
56560
 
56561
+ this.DrawTextBGRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);
56562
+
56547
56563
  /*
56548
56564
  for(var j=2;j>=0;--j)
56549
56565
  {
@@ -56553,19 +56569,17 @@ function ChartCorssCursor()
56553
56569
  }
56554
56570
  */
56555
56571
 
56556
- this.Canvas.fillStyle=this.TextBGColor;
56557
- this.Canvas.fillRect(overlayLeft+1,y-this.TextHeight/2,textWidth,this.TextHeight);
56558
56572
  this.Canvas.textAlign="left";
56559
- this.Canvas.textBaseline="middle";
56573
+ this.Canvas.textBaseline="bottom";
56560
56574
  this.Canvas.fillStyle=this.TextColor;
56561
- this.Canvas.fillText(text,overlayLeft+4,y,textWidth);
56575
+ this.Canvas.fillText(text,rtBG.Left+textOffset.X, rtBG.Bottom+textOffset.Y);
56562
56576
  }
56563
56577
  }
56564
56578
 
56565
56579
  this.Status=1;
56566
56580
  }
56567
56581
 
56568
- this.DrawComplexTextV2=function(left, yTop, complexText, size)
56582
+ this.DrawComplexRightText=function(rtBG, complexText, size)
56569
56583
  {
56570
56584
  this.Canvas.textAlign="left";
56571
56585
  this.Canvas.textBaseline="bottom";
@@ -56573,8 +56587,8 @@ function ChartCorssCursor()
56573
56587
  if (complexText.ShowType==1) showType=complexText.ShowType;
56574
56588
  if (showType==1) //多行
56575
56589
  {
56576
- var xLeft=left;
56577
- var yText=yTop; //顶
56590
+ var xLeft=rtBG.Left;
56591
+ var yTop=rtBG.Top; //顶
56578
56592
  for(var i=0; i<complexText.Text.length; ++i)
56579
56593
  {
56580
56594
  var item=complexText.Text[i];
@@ -56586,24 +56600,25 @@ function ChartCorssCursor()
56586
56600
  if (item.Color) this.Canvas.fillStyle=item.Color;
56587
56601
  else this.Canvas.fillStyle=complexText.Color;
56588
56602
 
56589
- var y=yText+itemSize.Height;
56603
+ var y=yTop+itemSize.Height;
56590
56604
  var x=xLeft;
56591
- if (item.Margin)
56605
+
56606
+ if (item.TextOffset)
56592
56607
  {
56593
- var margin=item.Margin;
56594
- if (IFrameSplitOperator.IsNumber(margin.Bottom)) y-=margin.Bottom;
56595
- if (IFrameSplitOperator.IsNumber(margin.Left)) x+=margin.Left;
56608
+ var textOffset=item.TextOffset;
56609
+ if (IFrameSplitOperator.IsNumber(textOffset.X)) x+=textOffset.X;
56610
+ if (IFrameSplitOperator.IsNumber(textOffset.Y)) y+=textOffset.Y;
56596
56611
  }
56597
56612
 
56598
56613
  this.Canvas.fillText(item.Text,x,y,itemSize.Width);
56599
56614
 
56600
- yText+=itemSize.Height;
56615
+ yTop+=itemSize.Height;
56601
56616
  }
56602
56617
  }
56603
56618
  else //水平 单行
56604
56619
  {
56605
- var xText=left;
56606
- var yBottom=yTop+size.Height;
56620
+ var xText=rtBG.Left;
56621
+ var yBottom=rtBG.Bottom;
56607
56622
  for(var i=0; i<complexText.Text.length; ++i)
56608
56623
  {
56609
56624
  var item=complexText.Text[i];
@@ -56615,15 +56630,16 @@ function ChartCorssCursor()
56615
56630
  if (item.Color) this.Canvas.fillStyle=item.Color;
56616
56631
  else this.Canvas.fillStyle=complexText.Color;
56617
56632
 
56618
- var y=yBottom;
56619
56633
  var x=xText;
56620
- if (item.Margin)
56634
+ var y=yBottom;
56635
+
56636
+ if (item.TextOffset)
56621
56637
  {
56622
- var margin=item.Margin;
56623
- if (IFrameSplitOperator.IsNumber(margin.Bottom)) y-=margin.Bottom;
56624
- if (IFrameSplitOperator.IsNumber(margin.Left)) x+=margin.Left;
56638
+ var textOffset=item.TextOffset;
56639
+ if (IFrameSplitOperator.IsNumber(textOffset.X)) x+=textOffset.X;
56640
+ if (IFrameSplitOperator.IsNumber(textOffset.Y)) y+=textOffset.Y;
56625
56641
  }
56626
-
56642
+
56627
56643
  this.Canvas.fillText(item.Text,x,y,itemSize.Width);
56628
56644
 
56629
56645
  xText+=itemSize.Width;
@@ -56646,7 +56662,7 @@ function ChartCorssCursor()
56646
56662
  if (item.Font) this.Canvas.font=item.Font;
56647
56663
  else this.Canvas.font=complexText.Font;
56648
56664
  var itemWidth=this.Canvas.measureText(item.Text).width; //前后各空2个像素
56649
- var itemHeight=this.Canvas.measureText("擎").width;
56665
+ var itemHeight=this.GetFontHeight();
56650
56666
  if (item.Margin)
56651
56667
  {
56652
56668
  var margin=item.Margin;
@@ -56667,7 +56683,7 @@ function ChartCorssCursor()
56667
56683
  }
56668
56684
  else //水平 单行
56669
56685
  {
56670
- var textWidth=0, textHeight=0;
56686
+ var textWidth=0, textHeight=this.GetFontHeight();
56671
56687
  for(var i=0; i<complexText.Text.length; ++i)
56672
56688
  {
56673
56689
  var item=complexText.Text[i];
@@ -56696,6 +56712,61 @@ function ChartCorssCursor()
56696
56712
  }
56697
56713
  }
56698
56714
 
56715
+
56716
+ this.DrawRightButtonV2=function(rtTextBG, complexText, textSize, data)
56717
+ {
56718
+ this.Canvas.fillStyle=this.RightButton.BGColor;
56719
+ var drawHeight=rtTextBG.Height;
56720
+ var drawWidth=rtTextBG.Height;
56721
+
56722
+ if (complexText.ShowType==1) //多行 取第1行高度
56723
+ {
56724
+ var itemSize=textSize.Text[0];
56725
+ drawHeight=itemSize.Height;
56726
+ drawWidth=itemSize.Height;
56727
+ }
56728
+
56729
+ var rtButton={Left:rtTextBG.Left-drawHeight, Top:rtTextBG.Top, Width:drawWidth, Height:drawHeight };
56730
+ rtButton.Right=rtButton.Left+rtButton.Width;
56731
+ rtButton.Bottom=rtButton.Top+rtButton.Height;
56732
+ this.RightButton.Rect=rtButton;
56733
+ this.RightButton.Data=data;
56734
+ this.Canvas.fillRect(ToFixedPoint(rtButton.Left+1),ToFixedPoint(rtButton.Top),ToFixedRect(rtButton.Width),ToFixedRect(rtButton.Height));
56735
+
56736
+ var pixelRatio=GetDevicePixelRatio();
56737
+ var spaceWidth=3;
56738
+ var yCenter=(rtButton.Top+spaceWidth)+(rtButton.Height-spaceWidth*2)/2;
56739
+ var xCenter=(rtButton.Left+spaceWidth)+(rtButton.Width-spaceWidth*2)/2;
56740
+
56741
+ if (this.RightButton.Icon)
56742
+ {
56743
+ var icon=this.RightButton.Icon;
56744
+ this.Canvas.font=`${icon.Size*pixelRatio}px ${icon.Family}`;
56745
+ this.Canvas.textAlign="center";
56746
+ this.Canvas.textBaseline="middle";
56747
+ this.Canvas.fillStyle=icon.Color;
56748
+ this.Canvas.fillText("\ue6a3",xCenter,yCenter);
56749
+ }
56750
+ else
56751
+ {
56752
+ //画加号
56753
+ this.Canvas.strokeStyle=this.RightButton.PenColor;
56754
+ var x=rtButtom.Left+spaceWidth;
56755
+ var y=rtButtom.Top+spaceWidth;
56756
+ this.Canvas.save();
56757
+ this.Canvas.linewidth=1*pixelRatio;
56758
+ this.Canvas.beginPath();
56759
+ this.Canvas.moveTo(ToFixedPoint(x), ToFixedPoint(yCenter));
56760
+ this.Canvas.lineTo(ToFixedPoint(x+rtButton.Width-spaceWidth*2), ToFixedPoint(yCenter));
56761
+
56762
+ this.Canvas.moveTo(ToFixedPoint(xCenter),ToFixedPoint(y));
56763
+ this.Canvas.lineTo(ToFixedPoint(xCenter), ToFixedPoint(y+rtButton.Height-spaceWidth*2));
56764
+
56765
+ this.Canvas.stroke();
56766
+ this.Canvas.restore();
56767
+ }
56768
+ }
56769
+
56699
56770
  this.DrawRightButton=function(drawTop, drawRight, drawWidth, drawHeight, data)
56700
56771
  {
56701
56772
  this.Canvas.fillStyle=this.RightButton.BGColor;
@@ -74184,13 +74255,13 @@ function JSChartResource()
74184
74255
  {
74185
74256
  BGColor:'rgb(43,54,69)',
74186
74257
  PenColor:'rgb(255,255,255)',
74187
- Icon: { Text:'\ue6a3', Color:'rgb(255,255,255)', Family:"iconfont", Size:18 }
74258
+ Icon: { Text:'\ue6a3', Color:'rgb(255,255,255)', Family:"iconfont", Size:14 }
74188
74259
  },
74189
74260
 
74190
- RightMargin: { Left:2, Right:2, Top:5, Bottom:3 },
74191
-
74192
74261
  BottomText:{ Margin: { Left:4, Right:4, Top:0, Bottom:0 }, TextOffset:{X:4, Y:-1 } },
74193
74262
  LeftText:{ Margin: { Left:4, Right:4, Top:0, Bottom:0 }, TextOffset:{X:4, Y:-1 } },
74263
+ RightText:{ Margin: { Left:4, Right:4, Top:0, Bottom:0 }, TextOffset:{X:4, Y:-1 } },
74264
+ RightOverlayText:{ Margin: { Left:2, Right:2, Top:0, Bottom:0 }, TextOffset:{X:2, Y:-1 } }, //右侧叠加坐标
74194
74265
 
74195
74266
  CorssPoint:{ Center:{ Radius:5*GetDevicePixelRatio(), Color:"rgb(50,171,205)"}, Border:{ Color:'rgb(255,255,255)', Width:1*GetDevicePixelRatio() } }
74196
74267
  };
@@ -205,7 +205,7 @@ function GetBlackStyle()
205
205
  {
206
206
  BGColor:'rgb(43,54,69)',
207
207
  PenColor:'rgb(255,255,255)',
208
- Icon: { Text:'\ue6a3', Color:'rgb(255,255,255)', Family:"iconfont", Size:18 }
208
+ Icon: { Text:'\ue6a3', Color:'rgb(255,255,255)', Family:"iconfont", Size:12 }
209
209
  },
210
210
 
211
211
  CorssPoint:{ Center:{ Color:"rgb(50,171,205)" }, Border:{ Color:'rgba(0,0,0,0.8)', Width:1*GetDevicePixelRatio() } }