hqchart 1.1.15066 → 1.1.15070

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.
@@ -2758,7 +2758,7 @@ if(this.YSplitOperator&&this.YSplitOperator.CoordinateType==1)isYPercentage=true
2758
2758
  }if(item.Message[1]!=null&&isDrawRight){if(item.Font!=null)this.Canvas.font=item.Font;if(Array.isArray(item.Message[1])){if(this.MultiTextFormat==1)//显示1行 格式:价格/百分比
2759
2759
  {textWidth=this.GetMulitCoordinateItemTextWidth(item.Message[1]);}else if(this.MultiTextFormat==2)//显示2行
2760
2760
  {textWidth=this.Canvas.measureText(item.Message[1][0]).width;var textWidth2=this.Canvas.measureText(item.Message[1][1]).width;if(textWidth<textWidth2)textWidth=textWidth2;}else if(this.MultiTextFormat==3){textWidth=this.GetMulitTextMaxWidth(item.Message[1]);}else//显示第1行
2761
- {textWidth=this.Canvas.measureText(item.Message[1][0]).width;if(isYPercentage){var perTextWidth=this.Canvas.measureText("-00.00%").width;if(perTextWidth>textWidth)textWidth=perTextWidth;}}}else{textWidth=this.Canvas.measureText(item.Message[1]).width;}if(width.Right==null||width.Right<textWidth)width.Right=textWidth;}}if(IFrameSplitOperator.IsNumber(width.Right))width.Right+=rightExtendWidth;if(IFrameSplitOperator.IsNumber(width.Left))width.Left+=this.YTextPadding[0]+leftExtendLineWidth;if(IFrameSplitOperator.IsNumber(width.Right))width.Right+=this.YTextPadding[1]+rightExtendLineWidth;return{TextWidth:width};};this.CreateDivFrameToolbar=function(hqchart,frameID,divHQChart){if(this.ToolbarButtonStyle==1)return;if(this.DivFrameToolbar)return;if(this.ClassName=="MinuteFrame"||this.ClassName=="KLineFrame"){this.DivFrameToolbar=new JSDivFrameToolbar();this.DivFrameToolbar.HQChart=hqchart;this.DivFrameToolbar.DivHQChart=divHQChart;this.DivFrameToolbar.FrameID=frameID;this.DivFrameToolbar.Create();}};this.ClearToolbar=function(){if(!this.DivFrameToolbar)return;this.DivFrameToolbar.Destroy();this.DivFrameToolbar=null;};this.HideToolbar=function(){if(!this.DivFrameToolbar)return;this.DivFrameToolbar.Hide();};this.GetMainOverlayFrame=function(){if(!this.FrameData||!this.FrameData.SubFrameItem)return null;var subFrame=this.FrameData.SubFrameItem;var leftFrame=null,rightFrame=null;for(var i=0;i<subFrame.OverlayIndex.length;++i){var item=subFrame.OverlayIndex[i];var overlayFrame=item.Frame;if(overlayFrame.IsShowMainFrame==2)rightFrame=overlayFrame;else if(overlayFrame.IsShowMainFrame==1)leftFrame=overlayFrame;}if(!leftFrame&&!rightFrame)return null;return[leftFrame,rightFrame];};}function MinuteFrame(){this.newMethod=AverageWidthFrame;//派生
2761
+ {textWidth=this.Canvas.measureText(item.Message[1][0]).width;if(isYPercentage){var perTextWidth=this.Canvas.measureText("-00.00%").width;if(perTextWidth>textWidth)textWidth=perTextWidth;}}}else{textWidth=this.Canvas.measureText(item.Message[1]).width;}if(width.Right==null||width.Right<textWidth)width.Right=textWidth;}}if(IFrameSplitOperator.IsNumber(width.Right))width.Right+=rightExtendWidth;if(IFrameSplitOperator.IsNumber(width.Left))width.Left+=this.YTextPadding[0]+leftExtendLineWidth;if(IFrameSplitOperator.IsNumber(width.Right))width.Right+=this.YTextPadding[1]+rightExtendLineWidth;return{TextWidth:width};};this.CreateDivFrameToolbar=function(hqchart,frameID,divHQChart){if(this.ToolbarButtonStyle==1)return;if(this.DivFrameToolbar)return;if(this.ClassName=="MinuteFrame"||this.ClassName=="KLineFrame"){this.DivFrameToolbar=new JSDivFrameToolbar();this.DivFrameToolbar.HQChart=hqchart;this.DivFrameToolbar.DivHQChart=divHQChart;this.DivFrameToolbar.FrameID=frameID;this.DivFrameToolbar.Create(this);}};this.ClearToolbar=function(){if(!this.DivFrameToolbar)return;this.DivFrameToolbar.Destroy();this.DivFrameToolbar=null;};this.HideToolbar=function(){if(!this.DivFrameToolbar)return;this.DivFrameToolbar.Hide();};this.GetMainOverlayFrame=function(){if(!this.FrameData||!this.FrameData.SubFrameItem)return null;var subFrame=this.FrameData.SubFrameItem;var leftFrame=null,rightFrame=null;for(var i=0;i<subFrame.OverlayIndex.length;++i){var item=subFrame.OverlayIndex[i];var overlayFrame=item.Frame;if(overlayFrame.IsShowMainFrame==2)rightFrame=overlayFrame;else if(overlayFrame.IsShowMainFrame==1)leftFrame=overlayFrame;}if(!leftFrame&&!rightFrame)return null;return[leftFrame,rightFrame];};}function MinuteFrame(){this.newMethod=AverageWidthFrame;//派生
2762
2762
  this.newMethod();delete this.newMethod;this.ClassName="MinuteFrame";this.DataWidth=1*GetDevicePixelRatio();this.DistanceWidth=1*GetDevicePixelRatio();this.MinuteCount=243;//每天的分钟个数
2763
2763
  this.BeforeBGColor=g_JSChartResource.Minute.Before.BGColor;//集合竞价背景
2764
2764
  this.AfterBGColor=g_JSChartResource.Minute.After.BGColor;this.MultiDayBorderPen=g_JSChartResource.MultiDayBorderPen;this.CustomHorizontalInfo=[];this.RightFrame=null;//右侧多重坐标
@@ -6618,9 +6618,9 @@ this.newMethod();delete this.newMethod;this.ClassName='ChartDrawPictureHaflLine'
6618
6618
  this.Canvas.restore();this.FullLine={Start:drawPoint[0],End:endPoint};};}// 画图工具-水平线 支持横屏
6619
6619
  function ChartDrawPictureHorizontalLine(){this.newMethod=IChartDrawPicture;//派生
6620
6620
  this.newMethod();delete this.newMethod;this.ClassName='ChartDrawPictureHorizontalLine';this.PointCount=1;this.IsPointIn=this.IsPointIn_XYValue_Line;this.IsDrawFirst=true;this.LineWidth=1;this.Super_SetOption=this.SetOption;//父类函数
6621
- this.Super_ExportStorageData=this.ExportStorageData;this.LabelConfig={Left:{IsShow:true,Margin:{Left:5,Top:4,Bottom:2,Right:5}},Right:{IsShow:true,Margin:{Left:5,Top:4,Bottom:2,Right:5}},Font:12*GetDevicePixelRatio()+'px \u5FAE\u8F6F\u96C5\u9ED1',TextColor:"rgb(255,255,255)"};this.InsideLabelConfig={Position:0,//0=左, 1=右
6622
- Font:14*GetDevicePixelRatio()+'px \u5FAE\u8F6F\u96C5\u9ED1',Margin:{Left:5,Top:4,Bottom:2,Right:5},TextColor:"rgb(255,255,255)",BGAlpha:0.8//背景色透明度
6623
- };this.LabelTitle;this.SetOption=function(option){if(this.Super_SetOption)this.Super_SetOption(option);if(option){if(option.LabelTitle)this.LabelTitle=option.LabelTitle;if(option.Label){var item=option.Label;if(item.Left){var subItem=item.Left;if(IFrameSplitOperator.IsBool(subItem.IsShow))this.LabelConfig.Left.IsShow=subItem.IsShow;}if(item.Right){var subItem=item.Right;if(IFrameSplitOperator.IsBool(subItem.IsShow))this.LabelConfig.Right.IsShow=subItem.IsShow;}if(item.Font)this.LabelConfig.Font=item.Font;if(item.TextColor)this.LabelConfig.FoTextColornt=item.TextColor;}if(option.InsideLabel){var item=option.InsideLabel;if(item.Font)this.InsideLabelConfig.Font=item.Font;if(item.TextColor)this.InsideLabelConfig.TextColor=item.TextColor;if(IFrameSplitOperator.IsNumber(item.Position))this.InsideLabelConfig.Position=item.Position;if(IFrameSplitOperator.IsNumber(item.BGAlpha))this.InsideLabelConfig.BGAlpha=item.BGAlpha;}}};this.ExportStorageData=function(){var storageData;if(this.Super_ExportStorageData){storageData=this.Super_ExportStorageData();if(this.LabelTitle)storageData.LabelTitle=this.LabelTitle;}return storageData;};/*
6621
+ this.Super_ExportStorageData=this.ExportStorageData;this.LabelConfig={Left:{IsShow:true,Margin:{Left:5,Top:4,Bottom:2,Right:5}},Right:{IsShow:true,Margin:{Left:5,Top:4,Bottom:2,Right:5}},Font:12*GetDevicePixelRatio()+'px \u5FAE\u8F6F\u96C5\u9ED1',TextColor:"rgb(255,255,255)",BGColor:null};this.InsideLabelConfig={Position:0,//0=左, 1=右
6622
+ Font:14*GetDevicePixelRatio()+'px \u5FAE\u8F6F\u96C5\u9ED1',Margin:{Left:5,Top:4,Bottom:2,Right:5},TextColor:"rgb(255,255,255)",BGAlpha:0.8,//背景色透明度,
6623
+ IsShow:true};this.LabelTitle;this.SetOption=function(option){if(this.Super_SetOption)this.Super_SetOption(option);if(option){if(option.LabelTitle)this.LabelTitle=option.LabelTitle;if(option.Label){var item=option.Label;if(item.Left){var subItem=item.Left;if(IFrameSplitOperator.IsBool(subItem.IsShow))this.LabelConfig.Left.IsShow=subItem.IsShow;}if(item.Right){var subItem=item.Right;if(IFrameSplitOperator.IsBool(subItem.IsShow))this.LabelConfig.Right.IsShow=subItem.IsShow;}if(item.Font)this.LabelConfig.Font=item.Font;if(item.TextColor)this.LabelConfig.TextColor=item.TextColor;if(item.BGColor)this.LabelConfig.BGColor=item.BGColor;}if(option.InsideLabel){var item=option.InsideLabel;if(item.Font)this.InsideLabelConfig.Font=item.Font;if(item.TextColor)this.InsideLabelConfig.TextColor=item.TextColor;if(IFrameSplitOperator.IsNumber(item.Position))this.InsideLabelConfig.Position=item.Position;if(IFrameSplitOperator.IsNumber(item.BGAlpha))this.InsideLabelConfig.BGAlpha=item.BGAlpha;if(IFrameSplitOperator.IsBool(item.IsShow))this.InsideLabelConfig.IsShow=item.IsShow;}}};this.ExportStorageData=function(){var storageData;if(this.Super_ExportStorageData){storageData=this.Super_ExportStorageData();if(this.LabelTitle)storageData.LabelTitle=this.LabelTitle;if(this.LabelConfig)storageData.Label=this.LabelConfig;if(this.InsideLabelConfig)storageData.InsideLabel=this.InsideLabelConfig;}return storageData;};/*
6624
6624
  this.GetXYCoordinate=function()
6625
6625
  {
6626
6626
  if (this.IsFrameMinSize()) return null;
@@ -6631,7 +6631,7 @@ Font:14*GetDevicePixelRatio()+'px \u5FAE\u8F6F\u96C5\u9ED1',Margin:{Left:5,Top:4
6631
6631
  */this.Draw=function(){this.LinePoint=[];if(this.IsFrameMinSize())return;if(!this.IsShow)return;var drawPoint=this.CalculateDrawPoint();if(!drawPoint||drawPoint.length!=1)return;if(!this.Frame)return;if(this.Value.length!=1)return;if(!this.IsYValueInFrame(this.Value[0].YValue))return null;var isHScreen=this.Frame.IsHScreen;var left=this.Frame.ChartBorder.GetLeft();var right=this.Frame.ChartBorder.GetRight();if(isHScreen){left=this.Frame.ChartBorder.GetTop();right=this.Frame.ChartBorder.GetBottom();}this.ClipFrame();this.Canvas.strokeStyle=this.LineColor;this.SetLineWidth();this.Canvas.beginPath();if(isHScreen){this.Canvas.moveTo(drawPoint[0].X,left);this.Canvas.lineTo(drawPoint[0].X,right);}else{var yFixed=ToFixedPoint2(this.LineWidth,drawPoint[0].Y);this.Canvas.moveTo(left,yFixed);this.Canvas.lineTo(right,yFixed);}this.Canvas.stroke();this.RestoreLineWidth();var line={Start:new Point(),End:new Point()};if(isHScreen){line.Start.X=drawPoint[0].X;line.Start.Y=left;line.End.X=drawPoint[0].X;line.End.Y=right;}else{line.Start.X=left;line.Start.Y=drawPoint[0].Y;line.End.X=right;line.End.Y=drawPoint[0].Y;}this.LinePoint.push(line);//画点
6632
6632
  this.DrawPoint(drawPoint);//显示价格
6633
6633
  this.DrawInsideLabel(drawPoint[0]);this.Canvas.restore();this.DrawValueLabel(drawPoint[0]);};this.DrawValueLabel=function(point){if(!point)return;if(this.Frame.IsHScreen)return;//不支持横屏
6634
- var y=point.Y;var yValue=this.Frame.GetYData(y);var text=yValue.toFixed(2);var border=this.Frame.GetBorder();var config=this.LabelConfig;this.Canvas.font=config.Font;var textHeight=this.Canvas.measureText("擎").width;var textWidth=this.Canvas.measureText(text).width;if(config.Left.IsShow&&this.Frame.ChartBorder.Left>5){var margin=config.Left.Margin;var rtBG={Right:border.Left-1,Height:textHeight+margin.Top+margin.Bottom,Width:textWidth+margin.Left+margin.Right};rtBG.Top=y-textHeight/2-margin.Top;rtBG.Bottom=rtBG.Top+rtBG.Height;rtBG.Left=rtBG.Right-rtBG.Width;this.Canvas.fillStyle=this.LineColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);this.Canvas.textAlign="left";this.Canvas.textBaseline="top";var xText=rtBG.Left+margin.Left;var yText=rtBG.Top+margin.Top;this.Canvas.fillStyle=config.TextColor;this.Canvas.fillText(text,xText,yText);}if(config.Right.IsShow&&this.Frame.ChartBorder.Right>5){var margin=config.Right.Margin;var rtBG={Left:border.Right+1,Height:textHeight+margin.Top+margin.Bottom,Width:textWidth+margin.Left+margin.Right};rtBG.Top=y-textHeight/2-margin.Top;rtBG.Bottom=rtBG.Top+rtBG.Height;rtBG.Right=rtBG.Left+rtBG.Width;this.Canvas.fillStyle=this.LineColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);this.Canvas.textAlign="left";this.Canvas.textBaseline="top";var xText=rtBG.Left+margin.Left;var yText=rtBG.Top+margin.Top;this.Canvas.fillStyle=config.TextColor;this.Canvas.fillText(text,xText,yText);}};this.DrawInsideLabel=function(point){if(!point)return;var isHScreen=this.Frame.IsHScreen;var config=this.InsideLabelConfig;if(config.Position!=0&&config.Position!=1)return;var margin=config.Margin;this.Canvas.fillStyle=this.LineColor;this.Canvas.font=config.Font;var textHeight=this.Canvas.measureText("擎").width;var border=this.Frame.GetBorder();if(isHScreen){var yValue=this.Frame.GetYData(point.X);var text=yValue.toFixed(2);if(this.LabelTitle)text=this.LabelTitle+text;var textWidth=this.Canvas.measureText(text).width;var rtBG=null;if(config.Position==0)//左
6634
+ var y=point.Y;var yValue=this.Frame.GetYData(y);var text=yValue.toFixed(2);var border=this.Frame.GetBorder();var config=this.LabelConfig;this.Canvas.font=config.Font;var textHeight=this.Canvas.measureText("擎").width;var textWidth=this.Canvas.measureText(text).width;if(config.Left.IsShow&&this.Frame.ChartBorder.Left>5){var margin=config.Left.Margin;var rtBG={Right:border.Left-1,Height:textHeight+margin.Top+margin.Bottom,Width:textWidth+margin.Left+margin.Right};rtBG.Top=y-textHeight/2-margin.Top;rtBG.Bottom=rtBG.Top+rtBG.Height;rtBG.Left=rtBG.Right-rtBG.Width;if(config.BGColor)this.Canvas.fillStyle=config.BGColor;else this.Canvas.fillStyle=this.LineColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);this.Canvas.textAlign="left";this.Canvas.textBaseline="top";var xText=rtBG.Left+margin.Left;var yText=rtBG.Top+margin.Top;this.Canvas.fillStyle=config.TextColor;this.Canvas.fillText(text,xText,yText);}if(config.Right.IsShow&&this.Frame.ChartBorder.Right>5){var margin=config.Right.Margin;var rtBG={Left:border.Right+1,Height:textHeight+margin.Top+margin.Bottom,Width:textWidth+margin.Left+margin.Right};rtBG.Top=y-textHeight/2-margin.Top;rtBG.Bottom=rtBG.Top+rtBG.Height;rtBG.Right=rtBG.Left+rtBG.Width;if(config.BGColor)this.Canvas.fillStyle=config.BGColor;else this.Canvas.fillStyle=this.LineColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);this.Canvas.textAlign="left";this.Canvas.textBaseline="top";var xText=rtBG.Left+margin.Left;var yText=rtBG.Top+margin.Top;this.Canvas.fillStyle=config.TextColor;this.Canvas.fillText(text,xText,yText);}};this.DrawInsideLabel=function(point){if(!point)return;var isHScreen=this.Frame.IsHScreen;var config=this.InsideLabelConfig;if(!config.IsShow)return;if(config.Position!=0&&config.Position!=1)return;var margin=config.Margin;this.Canvas.fillStyle=this.LineColor;this.Canvas.font=config.Font;var textHeight=this.Canvas.measureText("擎").width;var border=this.Frame.GetBorder();if(isHScreen){var yValue=this.Frame.GetYData(point.X);var text=yValue.toFixed(2);if(this.LabelTitle)text=this.LabelTitle+text;var textWidth=this.Canvas.measureText(text).width;var rtBG=null;if(config.Position==0)//左
6635
6635
  {var rtBG={Top:border.Top+1,Width:textHeight+margin.Top+margin.Bottom,Height:textWidth+margin.Left+margin.Right,Left:point.X};rtBG.Bottom=rtBG.Top+rtBG.Height;rtBG.Right=rtBG.Left+rtBG.Width;}else if(config.Position==1)//右
6636
6636
  {var rtBG={Bottom:border.Bottom-1,Width:textHeight+margin.Top+margin.Bottom,Height:textWidth+margin.Left+margin.Right,Left:point.X};rtBG.Top=rtBG.Bottom-rtBG.Height;rtBG.Right=rtBG.Left+rtBG.Width;}var bgColor=this.LineColor;if(config.BGAlpha<1)bgColor=IChartDrawPicture.ColorToRGBA(this.LineColor,config.BGAlpha);this.Canvas.fillStyle=bgColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);var xText=rtBG.Right-margin.Top;var yText=rtBG.Top+margin.Left;this.Canvas.translate(xText,yText);this.Canvas.rotate(90*Math.PI/180);//数据和框子旋转180度
6637
6637
  this.Canvas.textAlign="left";this.Canvas.textBaseline="top";this.Canvas.fillStyle=config.TextColor;this.Canvas.fillText(text,0,0);}else{var yValue=this.Frame.GetYData(point.Y);var text=yValue.toFixed(2);if(this.LabelTitle)text=this.LabelTitle+text;var textWidth=this.Canvas.measureText(text).width;var rtBG=null;if(config.Position==0)//左
@@ -10416,11 +10416,16 @@ Path2DHelper.FormatRadian=function(angle){angle%=PI2;if(angle<0)angle+=PI2;retur
10416
10416
  //
10417
10417
  ///////////////////////////////////////////////////////////////////////////////////
10418
10418
  function JSDivFrameToolbar(){this.DivToolbar=null;this.DivHQChart=null;this.HQChart=null;this.FrameID=-1;//指标窗口ID
10419
- this.ID=Guid();this.Left=-1;this.Top=-1;this.IconConfig={Color:g_JSChartResource.DivFrameToolbar.Icon.Color,HoverColor:g_JSChartResource.DivFrameToolbar.Icon.HoverColor};this.AryButton=[{ID:JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM,ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-index_param",Tooltip:{Text:"修改参数"},Span:null,Div:null,TooltipSpan:null},{ID:JSCHART_BUTTON_ID.CHANGE_INDEX,ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-change_index",Tooltip:{Text:"切换指标"},Span:null,Div:null,TooltipSpan:null},{ID:JSCHART_BUTTON_ID.OVERLAY_INDEX,ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-overlay_index",Tooltip:{Text:"叠加指标"},Span:null,Div:null,TooltipSpan:null},{ID:JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW,ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-close",Tooltip:{Text:"关闭窗口"},Span:null,Div:null,TooltipSpan:null}];this.SetToolbar=function(aryButton){//清空原来的按钮
10420
- for(var i=0;i<this.AryButton.length;i++){var item=this.AryButton[i];if(item.Div&&this.DivToolbar)this.DivToolbar.removeChild(item.Div);item.Div=null;item.Span=null;item.TooltipSpan=null;}this.AryButton=[];//重新创建
10421
- for(var i=0;i<aryButton.length;i++){var item=aryButton[i];if(!item.ID||!item.ClassName)continue;var newItem={ID:item.ID,ClassName:item.ClassName,Span:null,Div:null,TooltipSpan:null};if(item.Tooltip&&item.Tooltip.Text)newItem.Tooltip={Text:item.Tooltip.Text};this.AryButton.push(newItem);if(this.DivToolbar)this.CreateButton(newItem,this.DivToolbar);}this.UpdateStyle();};this.Destroy=function(){if(this.DivToolbar){if(this.DivHQChart.removeChild)this.DivHQChart.removeChild(this.DivToolbar);this.DivToolbar=null;}this.HQChart=null;this.DivHQChart=null;this.FrameID=-1;};this.Create=function(){var divToolbar=document.createElement("div");divToolbar.className='UMyChart_FrameToolbar_Div';divToolbar.id=this.ID;divToolbar.oncontextmenu=function(){return false;};//屏蔽右键系统菜单
10422
- for(var i=0;i<this.AryButton.length;i++){var item=this.AryButton[i];if(this.FrameID==0&&item.ID==JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW)continue;//第一个指标窗口不显示关闭按钮
10423
- this.CreateButton(item,divToolbar);}this.DivHQChart.appendChild(divToolbar);this.DivToolbar=divToolbar;this.UpdateStyle();if(!this.HQChart.JSToolbarTooltip){this.HQChart.JSToolbarTooltip=new JSToolbarTooltip();this.HQChart.JSToolbarTooltip.DivHQChart=this.DivHQChart;this.HQChart.JSToolbarTooltip.Create();}};this.UpdateStyle=function(){if(!this.DivToolbar)return;for(var i=0;i<this.AryButton.length;i++){var item=this.AryButton[i];if(!item.Span)continue;item.Span.style["color"]=this.IconConfig.Color;}};this.ReloadResource=function(option){this.IconConfig.Color=g_JSChartResource.DivFrameToolbar.Icon.Color,this.IconConfig.HoverColor=g_JSChartResource.DivFrameToolbar.Icon.HoverColor;this.UpdateStyle();};this.CreateButton=function(item,divDom){var _this50=this;var btnDiv=document.createElement("div");btnDiv.className="UMyChart_FrameToolbar_Div_Button";btnDiv.onmouseover=function(e){_this50.OnHoverButton(e,item);};btnDiv.onmouseout=function(e){_this50.OnLeaveButton(e,item);};item.Div=btnDiv;var spanDom=document.createElement("span");spanDom.className=item.ClassName;spanDom.onmousedown=function(e){_this50.OnClickButton(e,item);};item.Span=spanDom;btnDiv.appendChild(spanDom);divDom.appendChild(btnDiv);};this.OnClickButton=function(e,item){if(!this.FrameID<0)return;if(!this.HQChart)return;var frame=this.HQChart.Frame.SubFrame[this.FrameID].Frame;var button={ID:item.ID,Frame:frame};this.HQChart.ClickFrameButton(button,e);};this.OnHoverButton=function(e,item){if(!item.Span)return;item.Span.style["color"]=this.IconConfig.HoverColor;this.ShowTooltip(e,item);};this.OnLeaveButton=function(e,item){if(!item.Span)return;item.Span.style["color"]=this.IconConfig.Color;this.HideTooltip();};this.Show=function(frameID){this.FrameID=frameID;if(!this.FrameID<0)return;if(!IFrameSplitOperator.IsNonEmptyArray(this.HQChart.Frame.SubFrame))return;if(!this.HQChart.Frame.SubFrame[this.FrameID])return;var pixelTatio=GetDevicePixelRatio();var frame=this.HQChart.Frame.SubFrame[this.FrameID].Frame;var border=frame.GetBorder();var top=border.Top/pixelTatio;var right=border.RightEx/pixelTatio;var left=right-this.DivToolbar.offsetWidth-2;if(this.Top!=top||this.Left!=left){this.DivToolbar.style.top=top+"px";this.DivToolbar.style.left=left+"px";this.DivToolbar.style.height=frame.ChartBorder.TitleHeight/pixelTatio+"px";this.Top=top;this.Left=left;}if(this.DivToolbar.style.visibility!='visible')this.DivToolbar.style.visibility='visible';};this.Hide=function(){if(this.DivToolbar)this.DivToolbar.style.visibility="hidden";};this.HideTooltip=function(){if(this.HQChart.JSToolbarTooltip)this.HQChart.JSToolbarTooltip.Hide();};this.ShowTooltip=function(e,item){if(!this.HQChart.JSToolbarTooltip)return;if(!item.Div)return;var rtButton=item.Div.getBoundingClientRect();var rtHQChart=this.DivHQChart.getBoundingClientRect();var left=rtButton.left-rtHQChart.left;var top=rtButton.bottom-rtHQChart.top+2;this.HQChart.JSToolbarTooltip.Show(top,left,{Text:item.Tooltip.Text});};}function JSToolbarTooltip(){this.DivTooltip=null;this.DivHQChart=null;this.Text=null;this.Left=-1;this.Top=-1;this.BGColor=g_JSChartResource.DivFrameToolbar.Tooltip.BGColor;this.TextColor=g_JSChartResource.DivFrameToolbar.Tooltip.TextColor;this.BorderColor=g_JSChartResource.DivFrameToolbar.Tooltip.BorderColor;this.Create=function(){var divDom=document.createElement("div");divDom.className='UMyChart_Toolbar_Tooltip_Div';this.DivHQChart.appendChild(divDom);this.DivTooltip=divDom;this.UpdateStyle();};this.ReloadResource=function(option){this.BGColor=g_JSChartResource.DivFrameToolbar.Tooltip.BGColor;this.TextColor=g_JSChartResource.DivFrameToolbar.Tooltip.TextColor;this.BorderColor=g_JSChartResource.DivFrameToolbar.Tooltip.BorderColor;this.UpdateStyle();};this.UpdateStyle=function(){if(!this.DivTooltip)return;this.DivTooltip.style["background-color"]=this.BGColor;this.DivTooltip.style["color"]=this.TextColor;this.DivTooltip.style["border"]="1px solid "+this.BorderColor;};this.Show=function(top,left,tooltipData){if(!this.DivTooltip)return;if(this.Text!=tooltipData.Text)this.DivTooltip.innerHTML=tooltipData.Text;var right=left+this.DivTooltip.offsetWidth;if(right+5>=window.innerWidth)left=left-this.DivTooltip.offsetWidth;if(this.Top!=top||this.Left!=left){this.DivTooltip.style.top=top+"px";this.DivTooltip.style.left=left+"px";this.Top=top;this.Left=left;}if(this.DivTooltip.style.visibility!='visible')this.DivTooltip.style.visibility='visible';};this.Hide=function(){if(!this.DivTooltip)return;if(this.DivTooltip.style["visibility"]!='hidden')this.DivTooltip.style["visibility"]="hidden";};}/*
10419
+ this.ID=Guid();this.Left=-1;this.Top=-1;this.IconConfig={Color:g_JSChartResource.DivFrameToolbar.Icon.Color,HoverColor:g_JSChartResource.DivFrameToolbar.Icon.HoverColor};this.AryButton=[];//按钮数组
10420
+ //创建按钮
10421
+ this.CreateArrayButton=function(aryButton){for(var i=0;i<aryButton.length;i++){var item=aryButton[i];if(!item.ID||!item.ClassName)continue;var newItem={ID:item.ID,ClassName:item.ClassName,Span:null,Div:null,TooltipSpan:null};if(item.Tooltip&&item.Tooltip.Text)newItem.Tooltip={Text:item.Tooltip.Text};this.AryButton.push(newItem);if(this.DivToolbar)this.CreateButton(newItem,this.DivToolbar);}};//清空原来的按钮
10422
+ this.ClearAllButtons=function(){//清空原来的按钮
10423
+ for(var i=0;i<this.AryButton.length;i++){var item=this.AryButton[i];if(item.Div&&this.DivToolbar)this.DivToolbar.removeChild(item.Div);item.Div=null;item.Span=null;item.TooltipSpan=null;}this.AryButton=[];};this.GetShowButtons=function(subFrame){var frame=subFrame;if(!frame&&this.FrameID>=0&&this.FrameID<this.HQChart.Frame.SubFrame.length)frame=this.HQChart.Frame.SubFrame[this.FrameID].Frame;var aryDefaultButton=JSDivFrameToolbar.GetDfaultButtons();var aryButton=[];for(var i=0;i<aryDefaultButton.length;i++){var item=aryDefaultButton[i];if(this.FrameID==0&&item.ID==JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW)continue;//第一个指标窗口不显示关闭按钮
10424
+ if(item.ID==JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM&&frame&&frame.ModifyIndex===false)continue;if(item.ID==JSCHART_BUTTON_ID.CHANGE_INDEX&&frame&&frame.ChangeIndex===false)continue;if(item.ID==JSCHART_BUTTON_ID.OVERLAY_INDEX&&frame&&frame.OverlayIndex===false)continue;if(item.ID==JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW&&frame&&frame.CloseIndex===false)continue;aryButton.push(item);}return aryButton;};this.SetToolbar=function(aryButton){this.ClearAllButtons();//清空原来的按钮
10425
+ this.CreateArrayButton(aryButton);//重新创建
10426
+ this.UpdateStyle();};this.UpdateButton=function(){if(!this.DivToolbar)return;var aryButton=this.GetShowButtons();var bChange=false;if(aryButton.length!=this.AryButton.length){bChange=true;}else{for(var i=0;i<this.AryButton.length;++i){var leftItem=this.AryButton[i];var rightItem=aryButton[i];if(leftItem.ID!=rightItem.ID||leftItem.ClassName!=rightItem.ClassName){bChange=true;break;}}}if(!bChange)return;this.SetToolbar(aryButton);//重新设置按钮
10427
+ };this.Destroy=function(){if(this.DivToolbar){if(this.DivHQChart.removeChild)this.DivHQChart.removeChild(this.DivToolbar);this.DivToolbar=null;}this.HQChart=null;this.DivHQChart=null;this.FrameID=-1;};this.Create=function(frame){var divToolbar=document.createElement("div");divToolbar.className='UMyChart_FrameToolbar_Div';divToolbar.id=this.ID;divToolbar.oncontextmenu=function(){return false;};//屏蔽右键系统菜单
10428
+ this.DivToolbar=divToolbar;var aryButtons=this.GetShowButtons(frame);this.CreateArrayButton(aryButtons);this.DivHQChart.appendChild(divToolbar);this.UpdateStyle();if(!this.HQChart.JSToolbarTooltip){this.HQChart.JSToolbarTooltip=new JSToolbarTooltip();this.HQChart.JSToolbarTooltip.DivHQChart=this.DivHQChart;this.HQChart.JSToolbarTooltip.Create();}};this.UpdateStyle=function(){if(!this.DivToolbar)return;for(var i=0;i<this.AryButton.length;i++){var item=this.AryButton[i];if(!item.Span)continue;item.Span.style["color"]=this.IconConfig.Color;}};this.ReloadResource=function(option){this.IconConfig.Color=g_JSChartResource.DivFrameToolbar.Icon.Color,this.IconConfig.HoverColor=g_JSChartResource.DivFrameToolbar.Icon.HoverColor;this.UpdateStyle();};this.CreateButton=function(item,divDom){var _this50=this;var btnDiv=document.createElement("div");btnDiv.className="UMyChart_FrameToolbar_Div_Button";btnDiv.onmouseover=function(e){_this50.OnHoverButton(e,item);};btnDiv.onmouseout=function(e){_this50.OnLeaveButton(e,item);};item.Div=btnDiv;var spanDom=document.createElement("span");spanDom.className=item.ClassName;spanDom.onmousedown=function(e){_this50.OnClickButton(e,item);};item.Span=spanDom;btnDiv.appendChild(spanDom);divDom.appendChild(btnDiv);};this.OnClickButton=function(e,item){if(!this.FrameID<0)return;if(!this.HQChart)return;var frame=this.HQChart.Frame.SubFrame[this.FrameID].Frame;var button={ID:item.ID,Frame:frame};this.HQChart.ClickFrameButton(button,e);};this.OnHoverButton=function(e,item){if(!item.Span)return;item.Span.style["color"]=this.IconConfig.HoverColor;this.ShowTooltip(e,item);};this.OnLeaveButton=function(e,item){if(!item.Span)return;item.Span.style["color"]=this.IconConfig.Color;this.HideTooltip();};this.Show=function(frameID){this.FrameID=frameID;if(!this.FrameID<0)return;if(!IFrameSplitOperator.IsNonEmptyArray(this.HQChart.Frame.SubFrame))return;if(!this.HQChart.Frame.SubFrame[this.FrameID])return;var pixelTatio=GetDevicePixelRatio();var frame=this.HQChart.Frame.SubFrame[this.FrameID].Frame;var border=frame.GetBorder();var top=border.Top/pixelTatio;var right=border.RightEx/pixelTatio;var left=right-this.DivToolbar.offsetWidth-2;if(this.Top!=top||this.Left!=left){this.DivToolbar.style.top=top+"px";this.DivToolbar.style.left=left+"px";this.DivToolbar.style.height=frame.ChartBorder.TitleHeight/pixelTatio+"px";this.Top=top;this.Left=left;}if(this.DivToolbar.style.visibility!='visible')this.DivToolbar.style.visibility='visible';};this.Hide=function(){if(this.DivToolbar)this.DivToolbar.style.visibility="hidden";};this.HideTooltip=function(){if(this.HQChart.JSToolbarTooltip)this.HQChart.JSToolbarTooltip.Hide();};this.ShowTooltip=function(e,item){if(!this.HQChart.JSToolbarTooltip)return;if(!item.Div)return;var rtButton=item.Div.getBoundingClientRect();var rtHQChart=this.DivHQChart.getBoundingClientRect();var left=rtButton.left-rtHQChart.left;var top=rtButton.bottom-rtHQChart.top+2;this.HQChart.JSToolbarTooltip.Show(top,left,{Text:item.Tooltip.Text});};}JSDivFrameToolbar.GetDfaultButtons=function(){var aryButton=[{ID:JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM,ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-index_param",Tooltip:{Text:"修改参数"},Span:null,Div:null,TooltipSpan:null},{ID:JSCHART_BUTTON_ID.CHANGE_INDEX,ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-change_index",Tooltip:{Text:"切换指标"},Span:null,Div:null,TooltipSpan:null},{ID:JSCHART_BUTTON_ID.OVERLAY_INDEX,ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-overlay_index",Tooltip:{Text:"叠加指标"},Span:null,Div:null,TooltipSpan:null},{ID:JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW,ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-close",Tooltip:{Text:"关闭窗口"},Span:null,Div:null,TooltipSpan:null}];return aryButton;};function JSToolbarTooltip(){this.DivTooltip=null;this.DivHQChart=null;this.Text=null;this.Left=-1;this.Top=-1;this.BGColor=g_JSChartResource.DivFrameToolbar.Tooltip.BGColor;this.TextColor=g_JSChartResource.DivFrameToolbar.Tooltip.TextColor;this.BorderColor=g_JSChartResource.DivFrameToolbar.Tooltip.BorderColor;this.Create=function(){var divDom=document.createElement("div");divDom.className='UMyChart_Toolbar_Tooltip_Div';this.DivHQChart.appendChild(divDom);this.DivTooltip=divDom;this.UpdateStyle();};this.ReloadResource=function(option){this.BGColor=g_JSChartResource.DivFrameToolbar.Tooltip.BGColor;this.TextColor=g_JSChartResource.DivFrameToolbar.Tooltip.TextColor;this.BorderColor=g_JSChartResource.DivFrameToolbar.Tooltip.BorderColor;this.UpdateStyle();};this.UpdateStyle=function(){if(!this.DivTooltip)return;this.DivTooltip.style["background-color"]=this.BGColor;this.DivTooltip.style["color"]=this.TextColor;this.DivTooltip.style["border"]="1px solid "+this.BorderColor;};this.Show=function(top,left,tooltipData){if(!this.DivTooltip)return;if(this.Text!=tooltipData.Text)this.DivTooltip.innerHTML=tooltipData.Text;var right=left+this.DivTooltip.offsetWidth;if(right+5>=window.innerWidth)left=left-this.DivTooltip.offsetWidth;if(this.Top!=top||this.Left!=left){this.DivTooltip.style.top=top+"px";this.DivTooltip.style.left=left+"px";this.Top=top;this.Left=left;}if(this.DivTooltip.style.visibility!='visible')this.DivTooltip.style.visibility='visible';};this.Hide=function(){if(!this.DivTooltip)return;if(this.DivTooltip.style["visibility"]!='hidden')this.DivTooltip.style["visibility"]="hidden";};}/*
10424
10429
  Copyright (c) 2018 jones
10425
10430
 
10426
10431
  http://www.apache.org/licenses/LICENSE-2.0
@@ -15332,7 +15337,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
15332
15337
  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);};}/********************************************************************************
15333
15338
  * 版本信息输出
15334
15339
  *
15335
- */var HQCHART_VERSION="1.1.15065";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();//把给外界调用的方法暴露出来
15340
+ */var HQCHART_VERSION="1.1.15069";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();//把给外界调用的方法暴露出来
15336
15341
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
15337
15342
  // BaseIndex:BaseIndex,
15338
15343
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.15066",
3
+ "version": "1.1.15070",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -16218,7 +16218,7 @@ function AverageWidthFrame()
16218
16218
  this.DivFrameToolbar.HQChart=hqchart;
16219
16219
  this.DivFrameToolbar.DivHQChart=divHQChart;
16220
16220
  this.DivFrameToolbar.FrameID=frameID;
16221
- this.DivFrameToolbar.Create();
16221
+ this.DivFrameToolbar.Create(this);
16222
16222
  }
16223
16223
  }
16224
16224
 
@@ -66656,7 +66656,7 @@ function ChartDrawPictureHorizontalLine()
66656
66656
  {
66657
66657
  Left:{ IsShow:true, Margin:{ Left:5, Top:4, Bottom:2, Right:5 } },
66658
66658
  Right:{ IsShow:true, Margin:{ Left:5, Top:4, Bottom:2, Right:5 } },
66659
- Font:`${12*GetDevicePixelRatio()}px 微软雅黑`, TextColor:"rgb(255,255,255)"
66659
+ Font:`${12*GetDevicePixelRatio()}px 微软雅黑`, TextColor:"rgb(255,255,255)", BGColor:null
66660
66660
  };
66661
66661
 
66662
66662
  this.InsideLabelConfig=
@@ -66665,7 +66665,8 @@ function ChartDrawPictureHorizontalLine()
66665
66665
  Font:`${14*GetDevicePixelRatio()}px 微软雅黑`,
66666
66666
  Margin:{ Left:5, Top:4, Bottom:2, Right:5 },
66667
66667
  TextColor:"rgb(255,255,255)",
66668
- BGAlpha:0.8, //背景色透明度
66668
+ BGAlpha:0.8, //背景色透明度,
66669
+ IsShow:true
66669
66670
  }
66670
66671
 
66671
66672
  this.LabelTitle;
@@ -66694,7 +66695,8 @@ function ChartDrawPictureHorizontalLine()
66694
66695
  }
66695
66696
 
66696
66697
  if (item.Font) this.LabelConfig.Font=item.Font;
66697
- if (item.TextColor) this.LabelConfig.FoTextColornt=item.TextColor;
66698
+ if (item.TextColor) this.LabelConfig.TextColor=item.TextColor;
66699
+ if (item.BGColor) this.LabelConfig.BGColor=item.BGColor;
66698
66700
  }
66699
66701
 
66700
66702
  if (option.InsideLabel)
@@ -66704,6 +66706,7 @@ function ChartDrawPictureHorizontalLine()
66704
66706
  if (item.TextColor) this.InsideLabelConfig.TextColor=item.TextColor;
66705
66707
  if (IFrameSplitOperator.IsNumber(item.Position)) this.InsideLabelConfig.Position=item.Position;
66706
66708
  if (IFrameSplitOperator.IsNumber(item.BGAlpha)) this.InsideLabelConfig.BGAlpha=item.BGAlpha;
66709
+ if (IFrameSplitOperator.IsBool(item.IsShow)) this.InsideLabelConfig.IsShow=item.IsShow;
66707
66710
  }
66708
66711
  }
66709
66712
  }
@@ -66715,6 +66718,8 @@ function ChartDrawPictureHorizontalLine()
66715
66718
  {
66716
66719
  storageData=this.Super_ExportStorageData();
66717
66720
  if (this.LabelTitle) storageData.LabelTitle=this.LabelTitle;
66721
+ if (this.LabelConfig) storageData.Label=this.LabelConfig;
66722
+ if (this.InsideLabelConfig) storageData.InsideLabel=this.InsideLabelConfig;
66718
66723
  }
66719
66724
 
66720
66725
  return storageData;
@@ -66821,7 +66826,8 @@ function ChartDrawPictureHorizontalLine()
66821
66826
  rtBG.Bottom=rtBG.Top+rtBG.Height;
66822
66827
  rtBG.Left=rtBG.Right-rtBG.Width;
66823
66828
 
66824
- this.Canvas.fillStyle=this.LineColor;
66829
+ if (config.BGColor) this.Canvas.fillStyle=config.BGColor;
66830
+ else this.Canvas.fillStyle=this.LineColor;
66825
66831
  this.Canvas.fillRect(rtBG.Left, rtBG.Top, rtBG.Width, rtBG.Height);
66826
66832
 
66827
66833
  this.Canvas.textAlign="left";
@@ -66839,7 +66845,9 @@ function ChartDrawPictureHorizontalLine()
66839
66845
  rtBG.Top=y-textHeight/2-margin.Top;
66840
66846
  rtBG.Bottom=rtBG.Top+rtBG.Height;
66841
66847
  rtBG.Right=rtBG.Left+rtBG.Width;
66842
- this.Canvas.fillStyle=this.LineColor;
66848
+
66849
+ if (config.BGColor) this.Canvas.fillStyle=config.BGColor;
66850
+ else this.Canvas.fillStyle=this.LineColor;
66843
66851
  this.Canvas.fillRect(rtBG.Left, rtBG.Top, rtBG.Width, rtBG.Height);
66844
66852
 
66845
66853
  this.Canvas.textAlign="left";
@@ -66857,6 +66865,7 @@ function ChartDrawPictureHorizontalLine()
66857
66865
 
66858
66866
  var isHScreen=this.Frame.IsHScreen;
66859
66867
  var config=this.InsideLabelConfig;
66868
+ if (!config.IsShow) return;
66860
66869
  if (config.Position!=0 && config.Position!=1) return;
66861
66870
  var margin=config.Margin;
66862
66871
 
@@ -105278,27 +105287,26 @@ function JSDivFrameToolbar()
105278
105287
  HoverColor:g_JSChartResource.DivFrameToolbar.Icon.HoverColor
105279
105288
  }
105280
105289
 
105281
- this.AryButton=
105282
- [
105283
- {
105284
- ID:JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-index_param", Tooltip:{ Text:"修改参数"},
105285
- Span:null, Div:null, TooltipSpan:null
105286
- },
105287
- {
105288
- ID:JSCHART_BUTTON_ID.CHANGE_INDEX, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-change_index", Tooltip:{ Text:"切换指标"},
105289
- Span:null,Div:null, TooltipSpan:null
105290
- },
105291
- {
105292
- ID:JSCHART_BUTTON_ID.OVERLAY_INDEX, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-overlay_index", Tooltip:{ Text:"叠加指标"},
105293
- Span:null,Div:null, TooltipSpan:null
105294
- },
105295
- {
105296
- ID:JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-close", Tooltip:{ Text:"关闭窗口"},
105297
- Span:null,Div:null, TooltipSpan:null
105298
- },
105299
- ];
105290
+ this.AryButton=[]; //按钮数组
105300
105291
 
105301
- this.SetToolbar=function(aryButton)
105292
+ //创建按钮
105293
+ this.CreateArrayButton=function(aryButton)
105294
+ {
105295
+ for(var i=0;i<aryButton.length; i++)
105296
+ {
105297
+ var item=aryButton[i];
105298
+ if (!item.ID || !item.ClassName) continue;
105299
+ var newItem={ ID:item.ID, ClassName:item.ClassName, Span:null,Div:null, TooltipSpan:null };
105300
+ if (item.Tooltip && item.Tooltip.Text) newItem.Tooltip={ Text:item.Tooltip.Text };
105301
+
105302
+ this.AryButton.push(newItem);
105303
+
105304
+ if (this.DivToolbar) this.CreateButton(newItem, this.DivToolbar);
105305
+ }
105306
+ }
105307
+
105308
+ //清空原来的按钮
105309
+ this.ClearAllButtons=function()
105302
105310
  {
105303
105311
  //清空原来的按钮
105304
105312
  for(var i=0; i<this.AryButton.length; i++)
@@ -105309,24 +105317,75 @@ function JSDivFrameToolbar()
105309
105317
  item.Span=null;
105310
105318
  item.TooltipSpan=null;
105311
105319
  }
105320
+
105312
105321
  this.AryButton=[];
105322
+ }
105313
105323
 
105314
- //重新创建
105315
- for(var i=0;i<aryButton.length; i++)
105324
+ this.GetShowButtons=function(subFrame)
105325
+ {
105326
+ var frame=subFrame;
105327
+ if (!frame && this.FrameID>=0 && this.FrameID<this.HQChart.Frame.SubFrame.length)
105328
+ frame=this.HQChart.Frame.SubFrame[this.FrameID].Frame;
105329
+
105330
+ var aryDefaultButton=JSDivFrameToolbar.GetDfaultButtons();
105331
+ var aryButton=[];
105332
+ for(var i=0;i<aryDefaultButton.length; i++)
105316
105333
  {
105317
- var item=aryButton[i];
105318
- if (!item.ID || !item.ClassName) continue;
105319
- var newItem={ ID:item.ID, ClassName:item.ClassName, Span:null,Div:null, TooltipSpan:null };
105320
- if (item.Tooltip && item.Tooltip.Text) newItem.Tooltip={ Text:item.Tooltip.Text };
105334
+ var item=aryDefaultButton[i];
105335
+ if (this.FrameID==0 && item.ID==JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW) continue; //第一个指标窗口不显示关闭按钮
105321
105336
 
105322
- this.AryButton.push(newItem);
105337
+ if (item.ID==JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM && frame && frame.ModifyIndex===false) continue;
105338
+ if (item.ID==JSCHART_BUTTON_ID.CHANGE_INDEX && frame && frame.ChangeIndex===false) continue;
105339
+ if (item.ID==JSCHART_BUTTON_ID.OVERLAY_INDEX && frame && frame.OverlayIndex===false) continue;
105340
+ if (item.ID==JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW && frame && frame.CloseIndex===false) continue;
105323
105341
 
105324
- if (this.DivToolbar) this.CreateButton(newItem, this.DivToolbar);
105342
+ aryButton.push(item);
105325
105343
  }
105326
105344
 
105345
+ return aryButton;
105346
+ }
105347
+
105348
+ this.SetToolbar=function(aryButton)
105349
+ {
105350
+ this.ClearAllButtons(); //清空原来的按钮
105351
+
105352
+ this.CreateArrayButton(aryButton); //重新创建
105353
+
105327
105354
  this.UpdateStyle();
105328
105355
  }
105329
105356
 
105357
+ this.UpdateButton=function()
105358
+ {
105359
+ if (!this.DivToolbar) return;
105360
+
105361
+ var aryButton=this.GetShowButtons();
105362
+ var bChange=false;
105363
+ if (aryButton.length!=this.AryButton.length)
105364
+ {
105365
+ bChange=true;
105366
+ }
105367
+ else
105368
+ {
105369
+ for(var i=0;i<this.AryButton.length;++i)
105370
+ {
105371
+ var leftItem=this.AryButton[i];
105372
+ var rightItem=aryButton[i];
105373
+
105374
+ if (leftItem.ID!=rightItem.ID || leftItem.ClassName!=rightItem.ClassName)
105375
+ {
105376
+ bChange=true;
105377
+ break;
105378
+ }
105379
+ }
105380
+ }
105381
+
105382
+ if (!bChange) return;
105383
+
105384
+ this.SetToolbar(aryButton); //重新设置按钮
105385
+ }
105386
+
105387
+
105388
+
105330
105389
  this.Destroy=function()
105331
105390
  {
105332
105391
  if (this.DivToolbar)
@@ -105340,24 +105399,19 @@ function JSDivFrameToolbar()
105340
105399
  this.FrameID=-1;
105341
105400
  }
105342
105401
 
105343
- this.Create=function()
105402
+ this.Create=function(frame)
105344
105403
  {
105345
105404
  var divToolbar=document.createElement("div");
105346
105405
  divToolbar.className='UMyChart_FrameToolbar_Div';
105347
105406
  divToolbar.id=this.ID;
105348
105407
  divToolbar.oncontextmenu = function() { return false; }; //屏蔽右键系统菜单
105408
+ this.DivToolbar=divToolbar;
105349
105409
 
105350
- for(var i=0;i<this.AryButton.length; i++)
105351
- {
105352
- var item=this.AryButton[i];
105353
- if (this.FrameID==0 && item.ID==JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW) continue; //第一个指标窗口不显示关闭按钮
105354
- this.CreateButton(item, divToolbar);
105355
- }
105410
+ var aryButtons=this.GetShowButtons(frame);
105411
+ this.CreateArrayButton(aryButtons)
105356
105412
 
105357
105413
  this.DivHQChart.appendChild(divToolbar);
105358
105414
 
105359
- this.DivToolbar=divToolbar;
105360
-
105361
105415
  this.UpdateStyle();
105362
105416
 
105363
105417
  if (!this.HQChart.JSToolbarTooltip)
@@ -105483,6 +105537,32 @@ function JSDivFrameToolbar()
105483
105537
  }
105484
105538
  }
105485
105539
 
105540
+ JSDivFrameToolbar.GetDfaultButtons=function()
105541
+ {
105542
+ var aryButton=
105543
+ [
105544
+
105545
+ {
105546
+ ID:JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-index_param", Tooltip:{ Text:"修改参数"},
105547
+ Span:null, Div:null, TooltipSpan:null
105548
+ },
105549
+ {
105550
+ ID:JSCHART_BUTTON_ID.CHANGE_INDEX, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-change_index", Tooltip:{ Text:"切换指标"},
105551
+ Span:null,Div:null, TooltipSpan:null
105552
+ },
105553
+ {
105554
+ ID:JSCHART_BUTTON_ID.OVERLAY_INDEX, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-overlay_index", Tooltip:{ Text:"叠加指标"},
105555
+ Span:null,Div:null, TooltipSpan:null
105556
+ },
105557
+ {
105558
+ ID:JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-close", Tooltip:{ Text:"关闭窗口"},
105559
+ Span:null,Div:null, TooltipSpan:null
105560
+ },
105561
+ ];
105562
+
105563
+ return aryButton
105564
+ }
105565
+
105486
105566
 
105487
105567
  function JSToolbarTooltip()
105488
105568
  {
@@ -2386,6 +2386,7 @@ input[type="color"] {
2386
2386
 
2387
2387
  .UMyChart_Toolbar_Tooltip_Div
2388
2388
  {
2389
+ visibility:hidden;
2389
2390
  background-color: rgb(220,220,220);
2390
2391
  color: rgb(0,0,0);
2391
2392
  text-align: center;
@@ -20314,7 +20314,7 @@ function AverageWidthFrame()
20314
20314
  this.DivFrameToolbar.HQChart=hqchart;
20315
20315
  this.DivFrameToolbar.DivHQChart=divHQChart;
20316
20316
  this.DivFrameToolbar.FrameID=frameID;
20317
- this.DivFrameToolbar.Create();
20317
+ this.DivFrameToolbar.Create(this);
20318
20318
  }
20319
20319
  }
20320
20320
 
@@ -70752,7 +70752,7 @@ function ChartDrawPictureHorizontalLine()
70752
70752
  {
70753
70753
  Left:{ IsShow:true, Margin:{ Left:5, Top:4, Bottom:2, Right:5 } },
70754
70754
  Right:{ IsShow:true, Margin:{ Left:5, Top:4, Bottom:2, Right:5 } },
70755
- Font:`${12*GetDevicePixelRatio()}px 微软雅黑`, TextColor:"rgb(255,255,255)"
70755
+ Font:`${12*GetDevicePixelRatio()}px 微软雅黑`, TextColor:"rgb(255,255,255)", BGColor:null
70756
70756
  };
70757
70757
 
70758
70758
  this.InsideLabelConfig=
@@ -70761,7 +70761,8 @@ function ChartDrawPictureHorizontalLine()
70761
70761
  Font:`${14*GetDevicePixelRatio()}px 微软雅黑`,
70762
70762
  Margin:{ Left:5, Top:4, Bottom:2, Right:5 },
70763
70763
  TextColor:"rgb(255,255,255)",
70764
- BGAlpha:0.8, //背景色透明度
70764
+ BGAlpha:0.8, //背景色透明度,
70765
+ IsShow:true
70765
70766
  }
70766
70767
 
70767
70768
  this.LabelTitle;
@@ -70790,7 +70791,8 @@ function ChartDrawPictureHorizontalLine()
70790
70791
  }
70791
70792
 
70792
70793
  if (item.Font) this.LabelConfig.Font=item.Font;
70793
- if (item.TextColor) this.LabelConfig.FoTextColornt=item.TextColor;
70794
+ if (item.TextColor) this.LabelConfig.TextColor=item.TextColor;
70795
+ if (item.BGColor) this.LabelConfig.BGColor=item.BGColor;
70794
70796
  }
70795
70797
 
70796
70798
  if (option.InsideLabel)
@@ -70800,6 +70802,7 @@ function ChartDrawPictureHorizontalLine()
70800
70802
  if (item.TextColor) this.InsideLabelConfig.TextColor=item.TextColor;
70801
70803
  if (IFrameSplitOperator.IsNumber(item.Position)) this.InsideLabelConfig.Position=item.Position;
70802
70804
  if (IFrameSplitOperator.IsNumber(item.BGAlpha)) this.InsideLabelConfig.BGAlpha=item.BGAlpha;
70805
+ if (IFrameSplitOperator.IsBool(item.IsShow)) this.InsideLabelConfig.IsShow=item.IsShow;
70803
70806
  }
70804
70807
  }
70805
70808
  }
@@ -70811,6 +70814,8 @@ function ChartDrawPictureHorizontalLine()
70811
70814
  {
70812
70815
  storageData=this.Super_ExportStorageData();
70813
70816
  if (this.LabelTitle) storageData.LabelTitle=this.LabelTitle;
70817
+ if (this.LabelConfig) storageData.Label=this.LabelConfig;
70818
+ if (this.InsideLabelConfig) storageData.InsideLabel=this.InsideLabelConfig;
70814
70819
  }
70815
70820
 
70816
70821
  return storageData;
@@ -70917,7 +70922,8 @@ function ChartDrawPictureHorizontalLine()
70917
70922
  rtBG.Bottom=rtBG.Top+rtBG.Height;
70918
70923
  rtBG.Left=rtBG.Right-rtBG.Width;
70919
70924
 
70920
- this.Canvas.fillStyle=this.LineColor;
70925
+ if (config.BGColor) this.Canvas.fillStyle=config.BGColor;
70926
+ else this.Canvas.fillStyle=this.LineColor;
70921
70927
  this.Canvas.fillRect(rtBG.Left, rtBG.Top, rtBG.Width, rtBG.Height);
70922
70928
 
70923
70929
  this.Canvas.textAlign="left";
@@ -70935,7 +70941,9 @@ function ChartDrawPictureHorizontalLine()
70935
70941
  rtBG.Top=y-textHeight/2-margin.Top;
70936
70942
  rtBG.Bottom=rtBG.Top+rtBG.Height;
70937
70943
  rtBG.Right=rtBG.Left+rtBG.Width;
70938
- this.Canvas.fillStyle=this.LineColor;
70944
+
70945
+ if (config.BGColor) this.Canvas.fillStyle=config.BGColor;
70946
+ else this.Canvas.fillStyle=this.LineColor;
70939
70947
  this.Canvas.fillRect(rtBG.Left, rtBG.Top, rtBG.Width, rtBG.Height);
70940
70948
 
70941
70949
  this.Canvas.textAlign="left";
@@ -70953,6 +70961,7 @@ function ChartDrawPictureHorizontalLine()
70953
70961
 
70954
70962
  var isHScreen=this.Frame.IsHScreen;
70955
70963
  var config=this.InsideLabelConfig;
70964
+ if (!config.IsShow) return;
70956
70965
  if (config.Position!=0 && config.Position!=1) return;
70957
70966
  var margin=config.Margin;
70958
70967
 
@@ -109374,27 +109383,26 @@ function JSDivFrameToolbar()
109374
109383
  HoverColor:g_JSChartResource.DivFrameToolbar.Icon.HoverColor
109375
109384
  }
109376
109385
 
109377
- this.AryButton=
109378
- [
109379
- {
109380
- ID:JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-index_param", Tooltip:{ Text:"修改参数"},
109381
- Span:null, Div:null, TooltipSpan:null
109382
- },
109383
- {
109384
- ID:JSCHART_BUTTON_ID.CHANGE_INDEX, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-change_index", Tooltip:{ Text:"切换指标"},
109385
- Span:null,Div:null, TooltipSpan:null
109386
- },
109387
- {
109388
- ID:JSCHART_BUTTON_ID.OVERLAY_INDEX, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-overlay_index", Tooltip:{ Text:"叠加指标"},
109389
- Span:null,Div:null, TooltipSpan:null
109390
- },
109391
- {
109392
- ID:JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-close", Tooltip:{ Text:"关闭窗口"},
109393
- Span:null,Div:null, TooltipSpan:null
109394
- },
109395
- ];
109386
+ this.AryButton=[]; //按钮数组
109396
109387
 
109397
- this.SetToolbar=function(aryButton)
109388
+ //创建按钮
109389
+ this.CreateArrayButton=function(aryButton)
109390
+ {
109391
+ for(var i=0;i<aryButton.length; i++)
109392
+ {
109393
+ var item=aryButton[i];
109394
+ if (!item.ID || !item.ClassName) continue;
109395
+ var newItem={ ID:item.ID, ClassName:item.ClassName, Span:null,Div:null, TooltipSpan:null };
109396
+ if (item.Tooltip && item.Tooltip.Text) newItem.Tooltip={ Text:item.Tooltip.Text };
109397
+
109398
+ this.AryButton.push(newItem);
109399
+
109400
+ if (this.DivToolbar) this.CreateButton(newItem, this.DivToolbar);
109401
+ }
109402
+ }
109403
+
109404
+ //清空原来的按钮
109405
+ this.ClearAllButtons=function()
109398
109406
  {
109399
109407
  //清空原来的按钮
109400
109408
  for(var i=0; i<this.AryButton.length; i++)
@@ -109405,24 +109413,75 @@ function JSDivFrameToolbar()
109405
109413
  item.Span=null;
109406
109414
  item.TooltipSpan=null;
109407
109415
  }
109416
+
109408
109417
  this.AryButton=[];
109418
+ }
109409
109419
 
109410
- //重新创建
109411
- for(var i=0;i<aryButton.length; i++)
109420
+ this.GetShowButtons=function(subFrame)
109421
+ {
109422
+ var frame=subFrame;
109423
+ if (!frame && this.FrameID>=0 && this.FrameID<this.HQChart.Frame.SubFrame.length)
109424
+ frame=this.HQChart.Frame.SubFrame[this.FrameID].Frame;
109425
+
109426
+ var aryDefaultButton=JSDivFrameToolbar.GetDfaultButtons();
109427
+ var aryButton=[];
109428
+ for(var i=0;i<aryDefaultButton.length; i++)
109412
109429
  {
109413
- var item=aryButton[i];
109414
- if (!item.ID || !item.ClassName) continue;
109415
- var newItem={ ID:item.ID, ClassName:item.ClassName, Span:null,Div:null, TooltipSpan:null };
109416
- if (item.Tooltip && item.Tooltip.Text) newItem.Tooltip={ Text:item.Tooltip.Text };
109430
+ var item=aryDefaultButton[i];
109431
+ if (this.FrameID==0 && item.ID==JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW) continue; //第一个指标窗口不显示关闭按钮
109417
109432
 
109418
- this.AryButton.push(newItem);
109433
+ if (item.ID==JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM && frame && frame.ModifyIndex===false) continue;
109434
+ if (item.ID==JSCHART_BUTTON_ID.CHANGE_INDEX && frame && frame.ChangeIndex===false) continue;
109435
+ if (item.ID==JSCHART_BUTTON_ID.OVERLAY_INDEX && frame && frame.OverlayIndex===false) continue;
109436
+ if (item.ID==JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW && frame && frame.CloseIndex===false) continue;
109419
109437
 
109420
- if (this.DivToolbar) this.CreateButton(newItem, this.DivToolbar);
109438
+ aryButton.push(item);
109421
109439
  }
109422
109440
 
109441
+ return aryButton;
109442
+ }
109443
+
109444
+ this.SetToolbar=function(aryButton)
109445
+ {
109446
+ this.ClearAllButtons(); //清空原来的按钮
109447
+
109448
+ this.CreateArrayButton(aryButton); //重新创建
109449
+
109423
109450
  this.UpdateStyle();
109424
109451
  }
109425
109452
 
109453
+ this.UpdateButton=function()
109454
+ {
109455
+ if (!this.DivToolbar) return;
109456
+
109457
+ var aryButton=this.GetShowButtons();
109458
+ var bChange=false;
109459
+ if (aryButton.length!=this.AryButton.length)
109460
+ {
109461
+ bChange=true;
109462
+ }
109463
+ else
109464
+ {
109465
+ for(var i=0;i<this.AryButton.length;++i)
109466
+ {
109467
+ var leftItem=this.AryButton[i];
109468
+ var rightItem=aryButton[i];
109469
+
109470
+ if (leftItem.ID!=rightItem.ID || leftItem.ClassName!=rightItem.ClassName)
109471
+ {
109472
+ bChange=true;
109473
+ break;
109474
+ }
109475
+ }
109476
+ }
109477
+
109478
+ if (!bChange) return;
109479
+
109480
+ this.SetToolbar(aryButton); //重新设置按钮
109481
+ }
109482
+
109483
+
109484
+
109426
109485
  this.Destroy=function()
109427
109486
  {
109428
109487
  if (this.DivToolbar)
@@ -109436,24 +109495,19 @@ function JSDivFrameToolbar()
109436
109495
  this.FrameID=-1;
109437
109496
  }
109438
109497
 
109439
- this.Create=function()
109498
+ this.Create=function(frame)
109440
109499
  {
109441
109500
  var divToolbar=document.createElement("div");
109442
109501
  divToolbar.className='UMyChart_FrameToolbar_Div';
109443
109502
  divToolbar.id=this.ID;
109444
109503
  divToolbar.oncontextmenu = function() { return false; }; //屏蔽右键系统菜单
109504
+ this.DivToolbar=divToolbar;
109445
109505
 
109446
- for(var i=0;i<this.AryButton.length; i++)
109447
- {
109448
- var item=this.AryButton[i];
109449
- if (this.FrameID==0 && item.ID==JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW) continue; //第一个指标窗口不显示关闭按钮
109450
- this.CreateButton(item, divToolbar);
109451
- }
109506
+ var aryButtons=this.GetShowButtons(frame);
109507
+ this.CreateArrayButton(aryButtons)
109452
109508
 
109453
109509
  this.DivHQChart.appendChild(divToolbar);
109454
109510
 
109455
- this.DivToolbar=divToolbar;
109456
-
109457
109511
  this.UpdateStyle();
109458
109512
 
109459
109513
  if (!this.HQChart.JSToolbarTooltip)
@@ -109579,6 +109633,32 @@ function JSDivFrameToolbar()
109579
109633
  }
109580
109634
  }
109581
109635
 
109636
+ JSDivFrameToolbar.GetDfaultButtons=function()
109637
+ {
109638
+ var aryButton=
109639
+ [
109640
+
109641
+ {
109642
+ ID:JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-index_param", Tooltip:{ Text:"修改参数"},
109643
+ Span:null, Div:null, TooltipSpan:null
109644
+ },
109645
+ {
109646
+ ID:JSCHART_BUTTON_ID.CHANGE_INDEX, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-change_index", Tooltip:{ Text:"切换指标"},
109647
+ Span:null,Div:null, TooltipSpan:null
109648
+ },
109649
+ {
109650
+ ID:JSCHART_BUTTON_ID.OVERLAY_INDEX, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-overlay_index", Tooltip:{ Text:"叠加指标"},
109651
+ Span:null,Div:null, TooltipSpan:null
109652
+ },
109653
+ {
109654
+ ID:JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-close", Tooltip:{ Text:"关闭窗口"},
109655
+ Span:null,Div:null, TooltipSpan:null
109656
+ },
109657
+ ];
109658
+
109659
+ return aryButton
109660
+ }
109661
+
109582
109662
 
109583
109663
  function JSToolbarTooltip()
109584
109664
  {
@@ -153619,7 +153699,7 @@ function ScrollBarBGChart()
153619
153699
 
153620
153700
 
153621
153701
 
153622
- var HQCHART_VERSION="1.1.15065";
153702
+ var HQCHART_VERSION="1.1.15069";
153623
153703
 
153624
153704
  function PrintHQChartVersion()
153625
153705
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.15065";
8
+ var HQCHART_VERSION="1.1.15069";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -20358,7 +20358,7 @@ function AverageWidthFrame()
20358
20358
  this.DivFrameToolbar.HQChart=hqchart;
20359
20359
  this.DivFrameToolbar.DivHQChart=divHQChart;
20360
20360
  this.DivFrameToolbar.FrameID=frameID;
20361
- this.DivFrameToolbar.Create();
20361
+ this.DivFrameToolbar.Create(this);
20362
20362
  }
20363
20363
  }
20364
20364
 
@@ -70796,7 +70796,7 @@ function ChartDrawPictureHorizontalLine()
70796
70796
  {
70797
70797
  Left:{ IsShow:true, Margin:{ Left:5, Top:4, Bottom:2, Right:5 } },
70798
70798
  Right:{ IsShow:true, Margin:{ Left:5, Top:4, Bottom:2, Right:5 } },
70799
- Font:`${12*GetDevicePixelRatio()}px 微软雅黑`, TextColor:"rgb(255,255,255)"
70799
+ Font:`${12*GetDevicePixelRatio()}px 微软雅黑`, TextColor:"rgb(255,255,255)", BGColor:null
70800
70800
  };
70801
70801
 
70802
70802
  this.InsideLabelConfig=
@@ -70805,7 +70805,8 @@ function ChartDrawPictureHorizontalLine()
70805
70805
  Font:`${14*GetDevicePixelRatio()}px 微软雅黑`,
70806
70806
  Margin:{ Left:5, Top:4, Bottom:2, Right:5 },
70807
70807
  TextColor:"rgb(255,255,255)",
70808
- BGAlpha:0.8, //背景色透明度
70808
+ BGAlpha:0.8, //背景色透明度,
70809
+ IsShow:true
70809
70810
  }
70810
70811
 
70811
70812
  this.LabelTitle;
@@ -70834,7 +70835,8 @@ function ChartDrawPictureHorizontalLine()
70834
70835
  }
70835
70836
 
70836
70837
  if (item.Font) this.LabelConfig.Font=item.Font;
70837
- if (item.TextColor) this.LabelConfig.FoTextColornt=item.TextColor;
70838
+ if (item.TextColor) this.LabelConfig.TextColor=item.TextColor;
70839
+ if (item.BGColor) this.LabelConfig.BGColor=item.BGColor;
70838
70840
  }
70839
70841
 
70840
70842
  if (option.InsideLabel)
@@ -70844,6 +70846,7 @@ function ChartDrawPictureHorizontalLine()
70844
70846
  if (item.TextColor) this.InsideLabelConfig.TextColor=item.TextColor;
70845
70847
  if (IFrameSplitOperator.IsNumber(item.Position)) this.InsideLabelConfig.Position=item.Position;
70846
70848
  if (IFrameSplitOperator.IsNumber(item.BGAlpha)) this.InsideLabelConfig.BGAlpha=item.BGAlpha;
70849
+ if (IFrameSplitOperator.IsBool(item.IsShow)) this.InsideLabelConfig.IsShow=item.IsShow;
70847
70850
  }
70848
70851
  }
70849
70852
  }
@@ -70855,6 +70858,8 @@ function ChartDrawPictureHorizontalLine()
70855
70858
  {
70856
70859
  storageData=this.Super_ExportStorageData();
70857
70860
  if (this.LabelTitle) storageData.LabelTitle=this.LabelTitle;
70861
+ if (this.LabelConfig) storageData.Label=this.LabelConfig;
70862
+ if (this.InsideLabelConfig) storageData.InsideLabel=this.InsideLabelConfig;
70858
70863
  }
70859
70864
 
70860
70865
  return storageData;
@@ -70961,7 +70966,8 @@ function ChartDrawPictureHorizontalLine()
70961
70966
  rtBG.Bottom=rtBG.Top+rtBG.Height;
70962
70967
  rtBG.Left=rtBG.Right-rtBG.Width;
70963
70968
 
70964
- this.Canvas.fillStyle=this.LineColor;
70969
+ if (config.BGColor) this.Canvas.fillStyle=config.BGColor;
70970
+ else this.Canvas.fillStyle=this.LineColor;
70965
70971
  this.Canvas.fillRect(rtBG.Left, rtBG.Top, rtBG.Width, rtBG.Height);
70966
70972
 
70967
70973
  this.Canvas.textAlign="left";
@@ -70979,7 +70985,9 @@ function ChartDrawPictureHorizontalLine()
70979
70985
  rtBG.Top=y-textHeight/2-margin.Top;
70980
70986
  rtBG.Bottom=rtBG.Top+rtBG.Height;
70981
70987
  rtBG.Right=rtBG.Left+rtBG.Width;
70982
- this.Canvas.fillStyle=this.LineColor;
70988
+
70989
+ if (config.BGColor) this.Canvas.fillStyle=config.BGColor;
70990
+ else this.Canvas.fillStyle=this.LineColor;
70983
70991
  this.Canvas.fillRect(rtBG.Left, rtBG.Top, rtBG.Width, rtBG.Height);
70984
70992
 
70985
70993
  this.Canvas.textAlign="left";
@@ -70997,6 +71005,7 @@ function ChartDrawPictureHorizontalLine()
70997
71005
 
70998
71006
  var isHScreen=this.Frame.IsHScreen;
70999
71007
  var config=this.InsideLabelConfig;
71008
+ if (!config.IsShow) return;
71000
71009
  if (config.Position!=0 && config.Position!=1) return;
71001
71010
  var margin=config.Margin;
71002
71011
 
@@ -109418,27 +109427,26 @@ function JSDivFrameToolbar()
109418
109427
  HoverColor:g_JSChartResource.DivFrameToolbar.Icon.HoverColor
109419
109428
  }
109420
109429
 
109421
- this.AryButton=
109422
- [
109423
- {
109424
- ID:JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-index_param", Tooltip:{ Text:"修改参数"},
109425
- Span:null, Div:null, TooltipSpan:null
109426
- },
109427
- {
109428
- ID:JSCHART_BUTTON_ID.CHANGE_INDEX, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-change_index", Tooltip:{ Text:"切换指标"},
109429
- Span:null,Div:null, TooltipSpan:null
109430
- },
109431
- {
109432
- ID:JSCHART_BUTTON_ID.OVERLAY_INDEX, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-overlay_index", Tooltip:{ Text:"叠加指标"},
109433
- Span:null,Div:null, TooltipSpan:null
109434
- },
109435
- {
109436
- ID:JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-close", Tooltip:{ Text:"关闭窗口"},
109437
- Span:null,Div:null, TooltipSpan:null
109438
- },
109439
- ];
109430
+ this.AryButton=[]; //按钮数组
109440
109431
 
109441
- this.SetToolbar=function(aryButton)
109432
+ //创建按钮
109433
+ this.CreateArrayButton=function(aryButton)
109434
+ {
109435
+ for(var i=0;i<aryButton.length; i++)
109436
+ {
109437
+ var item=aryButton[i];
109438
+ if (!item.ID || !item.ClassName) continue;
109439
+ var newItem={ ID:item.ID, ClassName:item.ClassName, Span:null,Div:null, TooltipSpan:null };
109440
+ if (item.Tooltip && item.Tooltip.Text) newItem.Tooltip={ Text:item.Tooltip.Text };
109441
+
109442
+ this.AryButton.push(newItem);
109443
+
109444
+ if (this.DivToolbar) this.CreateButton(newItem, this.DivToolbar);
109445
+ }
109446
+ }
109447
+
109448
+ //清空原来的按钮
109449
+ this.ClearAllButtons=function()
109442
109450
  {
109443
109451
  //清空原来的按钮
109444
109452
  for(var i=0; i<this.AryButton.length; i++)
@@ -109449,24 +109457,75 @@ function JSDivFrameToolbar()
109449
109457
  item.Span=null;
109450
109458
  item.TooltipSpan=null;
109451
109459
  }
109460
+
109452
109461
  this.AryButton=[];
109462
+ }
109453
109463
 
109454
- //重新创建
109455
- for(var i=0;i<aryButton.length; i++)
109464
+ this.GetShowButtons=function(subFrame)
109465
+ {
109466
+ var frame=subFrame;
109467
+ if (!frame && this.FrameID>=0 && this.FrameID<this.HQChart.Frame.SubFrame.length)
109468
+ frame=this.HQChart.Frame.SubFrame[this.FrameID].Frame;
109469
+
109470
+ var aryDefaultButton=JSDivFrameToolbar.GetDfaultButtons();
109471
+ var aryButton=[];
109472
+ for(var i=0;i<aryDefaultButton.length; i++)
109456
109473
  {
109457
- var item=aryButton[i];
109458
- if (!item.ID || !item.ClassName) continue;
109459
- var newItem={ ID:item.ID, ClassName:item.ClassName, Span:null,Div:null, TooltipSpan:null };
109460
- if (item.Tooltip && item.Tooltip.Text) newItem.Tooltip={ Text:item.Tooltip.Text };
109474
+ var item=aryDefaultButton[i];
109475
+ if (this.FrameID==0 && item.ID==JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW) continue; //第一个指标窗口不显示关闭按钮
109461
109476
 
109462
- this.AryButton.push(newItem);
109477
+ if (item.ID==JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM && frame && frame.ModifyIndex===false) continue;
109478
+ if (item.ID==JSCHART_BUTTON_ID.CHANGE_INDEX && frame && frame.ChangeIndex===false) continue;
109479
+ if (item.ID==JSCHART_BUTTON_ID.OVERLAY_INDEX && frame && frame.OverlayIndex===false) continue;
109480
+ if (item.ID==JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW && frame && frame.CloseIndex===false) continue;
109463
109481
 
109464
- if (this.DivToolbar) this.CreateButton(newItem, this.DivToolbar);
109482
+ aryButton.push(item);
109465
109483
  }
109466
109484
 
109485
+ return aryButton;
109486
+ }
109487
+
109488
+ this.SetToolbar=function(aryButton)
109489
+ {
109490
+ this.ClearAllButtons(); //清空原来的按钮
109491
+
109492
+ this.CreateArrayButton(aryButton); //重新创建
109493
+
109467
109494
  this.UpdateStyle();
109468
109495
  }
109469
109496
 
109497
+ this.UpdateButton=function()
109498
+ {
109499
+ if (!this.DivToolbar) return;
109500
+
109501
+ var aryButton=this.GetShowButtons();
109502
+ var bChange=false;
109503
+ if (aryButton.length!=this.AryButton.length)
109504
+ {
109505
+ bChange=true;
109506
+ }
109507
+ else
109508
+ {
109509
+ for(var i=0;i<this.AryButton.length;++i)
109510
+ {
109511
+ var leftItem=this.AryButton[i];
109512
+ var rightItem=aryButton[i];
109513
+
109514
+ if (leftItem.ID!=rightItem.ID || leftItem.ClassName!=rightItem.ClassName)
109515
+ {
109516
+ bChange=true;
109517
+ break;
109518
+ }
109519
+ }
109520
+ }
109521
+
109522
+ if (!bChange) return;
109523
+
109524
+ this.SetToolbar(aryButton); //重新设置按钮
109525
+ }
109526
+
109527
+
109528
+
109470
109529
  this.Destroy=function()
109471
109530
  {
109472
109531
  if (this.DivToolbar)
@@ -109480,24 +109539,19 @@ function JSDivFrameToolbar()
109480
109539
  this.FrameID=-1;
109481
109540
  }
109482
109541
 
109483
- this.Create=function()
109542
+ this.Create=function(frame)
109484
109543
  {
109485
109544
  var divToolbar=document.createElement("div");
109486
109545
  divToolbar.className='UMyChart_FrameToolbar_Div';
109487
109546
  divToolbar.id=this.ID;
109488
109547
  divToolbar.oncontextmenu = function() { return false; }; //屏蔽右键系统菜单
109548
+ this.DivToolbar=divToolbar;
109489
109549
 
109490
- for(var i=0;i<this.AryButton.length; i++)
109491
- {
109492
- var item=this.AryButton[i];
109493
- if (this.FrameID==0 && item.ID==JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW) continue; //第一个指标窗口不显示关闭按钮
109494
- this.CreateButton(item, divToolbar);
109495
- }
109550
+ var aryButtons=this.GetShowButtons(frame);
109551
+ this.CreateArrayButton(aryButtons)
109496
109552
 
109497
109553
  this.DivHQChart.appendChild(divToolbar);
109498
109554
 
109499
- this.DivToolbar=divToolbar;
109500
-
109501
109555
  this.UpdateStyle();
109502
109556
 
109503
109557
  if (!this.HQChart.JSToolbarTooltip)
@@ -109623,6 +109677,32 @@ function JSDivFrameToolbar()
109623
109677
  }
109624
109678
  }
109625
109679
 
109680
+ JSDivFrameToolbar.GetDfaultButtons=function()
109681
+ {
109682
+ var aryButton=
109683
+ [
109684
+
109685
+ {
109686
+ ID:JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-index_param", Tooltip:{ Text:"修改参数"},
109687
+ Span:null, Div:null, TooltipSpan:null
109688
+ },
109689
+ {
109690
+ ID:JSCHART_BUTTON_ID.CHANGE_INDEX, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-change_index", Tooltip:{ Text:"切换指标"},
109691
+ Span:null,Div:null, TooltipSpan:null
109692
+ },
109693
+ {
109694
+ ID:JSCHART_BUTTON_ID.OVERLAY_INDEX, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-overlay_index", Tooltip:{ Text:"叠加指标"},
109695
+ Span:null,Div:null, TooltipSpan:null
109696
+ },
109697
+ {
109698
+ ID:JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-close", Tooltip:{ Text:"关闭窗口"},
109699
+ Span:null,Div:null, TooltipSpan:null
109700
+ },
109701
+ ];
109702
+
109703
+ return aryButton
109704
+ }
109705
+
109626
109706
 
109627
109707
  function JSToolbarTooltip()
109628
109708
  {
@@ -165499,7 +165579,7 @@ function HQChartScriptWorker()
165499
165579
 
165500
165580
 
165501
165581
 
165502
- var HQCHART_VERSION="1.1.15065";
165582
+ var HQCHART_VERSION="1.1.15069";
165503
165583
 
165504
165584
  function PrintHQChartVersion()
165505
165585
  {