hqchart 1.1.15128 → 1.1.15138

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.
@@ -2421,11 +2421,13 @@ if(IFrameSplitOperator.IsPlusNumber(frameItem.MinYDistance))frame.MinYDistance=f
2421
2421
  if(IFrameSplitOperator.IsBool(frameItem.CloseBeforeButton))frameItem.IsShowCloseButton=frameItem.CloseBeforeButton;if(frame.YSplitOperator.RightTextConfig)//主图右侧坐标设置
2422
2422
  {if(IFrameSplitOperator.IsNumber(frameItem.RightTextFormat))//废弃(兼容版本)
2423
2423
  {frame.YSplitOperator.RightTextConfig.Format=frameItem.RightTextFormat;if(frameItem.RightTextFormat==2)frame.MultiTextFormat=1;}if(frameItem.RightText)//主图右侧坐标设置(新版本)
2424
- {var subItem=frameItem.RightText;if(IFrameSplitOperator.IsNumber(subItem.Format))frame.YSplitOperator.RightTextConfig.Format=subItem.Format;if(subItem.Format==2)frame.MultiTextFormat=1;if(subItem.Percentage&&IFrameSplitOperator.IsNumber(subItem.Percentage.Dec))frame.YSplitOperator.RightTextConfig.Percentage.Dec=subItem.Percentage.Dec;}}}};this.SetSubFrameOption=function(subFrame,option){if(!option)return;var frame=subFrame.Frame;var pixelRatio=GetDevicePixelRatio();if(option.Window){var item=option.Window;if(IFrameSplitOperator.IsBool(item.Modify))frame.ModifyIndex=item.Modify;if(IFrameSplitOperator.IsBool(item.Change))frame.ChangeIndex=item.Change;if(IFrameSplitOperator.IsBool(item.Close))frame.CloseIndex=item.Close;if(IFrameSplitOperator.IsBool(item.Overlay))frame.OverlayIndex=item.Overlay;if(IFrameSplitOperator.IsBool(item.Export))frame.ExportData=item.Export;if(IFrameSplitOperator.IsBool(item.MaxMin))frame.MaxMinWindow=item.MaxMin;if(IFrameSplitOperator.IsBool(item.TitleWindow))frame.TitleWindow=item.TitleWindow;if(IFrameSplitOperator.IsBool(item.AddIndexWindow))frame.AddIndexWindow=item.AddIndexWindow;if(IFrameSplitOperator.IsBool(item.IndexHelp))frame.IndexHelp=item.IndexHelp;if(IFrameSplitOperator.IsBool(item.IsDrawTitleBG))frame.IsDrawTitleBG=item.IsDrawTitleBG;if(IFrameSplitOperator.IsBool(item.IsShowNameArrow))frame.IsShowNameArrow=item.IsShowNameArrow;if(item.OverlayIndexType){if(IFrameSplitOperator.IsNumber(item.OverlayIndexType.Position))frame.OverlayIndexType.Position=item.OverlayIndexType.Position;if(IFrameSplitOperator.IsNumber(item.OverlayIndexType.LineSpace))frame.OverlayIndexType.LineSpace=item.OverlayIndexType.LineSpace;}if(IFrameSplitOperator.IsNonEmptyArray(item.CustomToolbar))//自定义工具按钮
2424
+ {var subItem=frameItem.RightText;if(IFrameSplitOperator.IsNumber(subItem.Format))frame.YSplitOperator.RightTextConfig.Format=subItem.Format;if(subItem.Format==2)frame.MultiTextFormat=1;if(subItem.Percentage&&IFrameSplitOperator.IsNumber(subItem.Percentage.Dec))frame.YSplitOperator.RightTextConfig.Percentage.Dec=subItem.Percentage.Dec;}}}if(frame.DivFrameToolbar)frame.DivFrameToolbar.UpdateButton();//更新div工具条
2425
+ };this.SetSubFrameOption=function(subFrame,option){if(!option)return;var frame=subFrame.Frame;var pixelRatio=GetDevicePixelRatio();if(option.Window){var item=option.Window;if(IFrameSplitOperator.IsBool(item.Modify))frame.ModifyIndex=item.Modify;if(IFrameSplitOperator.IsBool(item.Change))frame.ChangeIndex=item.Change;if(IFrameSplitOperator.IsBool(item.Close))frame.CloseIndex=item.Close;if(IFrameSplitOperator.IsBool(item.Overlay))frame.OverlayIndex=item.Overlay;if(IFrameSplitOperator.IsBool(item.Export))frame.ExportData=item.Export;if(IFrameSplitOperator.IsBool(item.MaxMin))frame.MaxMinWindow=item.MaxMin;if(IFrameSplitOperator.IsBool(item.TitleWindow))frame.TitleWindow=item.TitleWindow;if(IFrameSplitOperator.IsBool(item.AddIndexWindow))frame.AddIndexWindow=item.AddIndexWindow;if(IFrameSplitOperator.IsBool(item.IndexHelp))frame.IndexHelp=item.IndexHelp;if(IFrameSplitOperator.IsBool(item.IsDrawTitleBG))frame.IsDrawTitleBG=item.IsDrawTitleBG;if(IFrameSplitOperator.IsBool(item.IsShowNameArrow))frame.IsShowNameArrow=item.IsShowNameArrow;if(item.OverlayIndexType){if(IFrameSplitOperator.IsNumber(item.OverlayIndexType.Position))frame.OverlayIndexType.Position=item.OverlayIndexType.Position;if(IFrameSplitOperator.IsNumber(item.OverlayIndexType.LineSpace))frame.OverlayIndexType.LineSpace=item.OverlayIndexType.LineSpace;}if(IFrameSplitOperator.IsNonEmptyArray(item.CustomToolbar))//自定义工具按钮
2425
2426
  {frame.CustomToolbar=item.CustomToolbar.slice();}}if(IFrameSplitOperator.IsNumber(option.SplitCount))subFrame.Frame.YSplitOperator.SplitCount=option.SplitCount;if(IFrameSplitOperator.IsNumber(option.TitleHeight))subFrame.Frame.ChartBorder.TitleHeight=option.TitleHeight;if(IFrameSplitOperator.IsBool(option.IsShowTitleArrow))subFrame.Frame.IsShowTitleArrow=option.IsShowTitleArrow;if(IFrameSplitOperator.IsNumber(option.TitleArrowType))subFrame.Frame.TitleArrowType=option.TitleArrowType;if(IFrameSplitOperator.IsBool(option.IsShowIndexName))subFrame.Frame.IsShowIndexName=option.IsShowIndexName;if(IFrameSplitOperator.IsBool(option.IsSinlgeLine))subFrame.Frame.IsSinlgeLine=option.IsSinlgeLine;if(IFrameSplitOperator.IsBool(option.IsShowOverlayIndexName))subFrame.Frame.IsShowOverlayIndexName=option.IsShowOverlayIndexName;if(IFrameSplitOperator.IsNumber(option.IndexParamSpace))subFrame.Frame.IndexParamSpace=option.IndexParamSpace;if(IFrameSplitOperator.IsBool(option.IsShowXLine))subFrame.Frame.IsShowXLine=option.IsShowXLine;if(IFrameSplitOperator.IsBool(option.IsShowYLine))subFrame.Frame.IsShowYLine=option.IsShowYLine;if(IFrameSplitOperator.IsBool(option.IsShowIndexTitle))subFrame.Frame.IsShowIndexTitle=option.IsShowIndexTitle;if(IFrameSplitOperator.IsNumber(option.Height))subFrame.Height=option.Height;//高度
2426
2427
  if(IFrameSplitOperator.IsNumber(option.TopSpace))frame.ChartBorder.TopSpace=option.TopSpace*pixelRatio;if(IFrameSplitOperator.IsNumber(option.BottomSpace))frame.ChartBorder.BottomSpace=option.BottomSpace*pixelRatio;if(IFrameSplitOperator.IsBool(option.IsShowLeftText)){subFrame.Frame.IsShowYText[0]=option.IsShowLeftText;subFrame.Frame.YSplitOperator.IsShowLeftText=option.IsShowLeftText;//显示左边刻度
2427
2428
  }if(IFrameSplitOperator.IsBool(option.IsShowRightText)){subFrame.Frame.IsShowYText[1]=option.IsShowRightText;subFrame.Frame.YSplitOperator.IsShowRightText=option.IsShowRightText;//显示右边刻度
2428
- }};this.AddNewSubFrame=function(option){var _this20=this;var index=this.Frame.SubFrame.length;var subFrame=this.CreateSubFrameItem(index);var pixelRatio=GetDevicePixelRatio();subFrame.Frame.ChartBorder.TitleHeight*=pixelRatio;this.Frame.SubFrame[index]=subFrame;var titlePaint=new DynamicChartTitlePainting();titlePaint.Frame=this.Frame.SubFrame[index].Frame;titlePaint.Canvas=this.Canvas;titlePaint.LanguageID=this.LanguageID;titlePaint.GetEventCallback=function(id){return _this20.GetEventCallback(id);};titlePaint.HQChart=this;this.TitlePaint[index+1]=titlePaint;this.SetSubFrameOption(subFrame,option);this.UpdateSubFrameDataWidth(subFrame.Frame);//最后一个显示X轴坐标
2429
+ }if(frame.DivFrameToolbar)frame.DivFrameToolbar.UpdateButton();//更新div工具条
2430
+ };this.AddNewSubFrame=function(option){var _this20=this;var index=this.Frame.SubFrame.length;var subFrame=this.CreateSubFrameItem(index);var pixelRatio=GetDevicePixelRatio();subFrame.Frame.ChartBorder.TitleHeight*=pixelRatio;this.Frame.SubFrame[index]=subFrame;var titlePaint=new DynamicChartTitlePainting();titlePaint.Frame=this.Frame.SubFrame[index].Frame;titlePaint.Canvas=this.Canvas;titlePaint.LanguageID=this.LanguageID;titlePaint.GetEventCallback=function(id){return _this20.GetEventCallback(id);};titlePaint.HQChart=this;this.TitlePaint[index+1]=titlePaint;this.SetSubFrameOption(subFrame,option);this.UpdateSubFrameDataWidth(subFrame.Frame);//最后一个显示X轴坐标
2429
2431
  for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i].Frame;if(i==this.Frame.SubFrame.length-1)item.XSplitOperator.ShowText=true;else item.XSplitOperator.ShowText=false;}this.UpdataDataoffset();//更新数据偏移
2430
2432
  this.Frame.SetSizeChage(true);if(this.UpdateXShowText)this.UpdateXShowText();this.ResetFrameXYSplit();this.UpdateFrameMaxMin();//调整坐标最大 最小值
2431
2433
  this.Draw();return index;};this.UpdateSubFrameDataWidth=function(frame){//同步柱子宽度
@@ -2437,7 +2439,7 @@ if(this.ClassName=="MinuteChartContainer"||this.ClassName=="MinuteChartHScreenCo
2437
2439
  };this.AddAPIIndexWindow=function(indexData,option){if(!indexData.API)return;this.Frame.RestoreIndexWindows();//还原隐藏的窗口
2438
2440
  var index=this.AddNewSubFrame(option);//使用API挂接指标数据 API:{ Name:指标名字, Script:指标脚本可以为空, Args:参数可以为空, Url:指标执行地址 }
2439
2441
  var apiItem=indexData.API;this.WindowIndex[index]=new APIScriptIndex(apiItem.Name,apiItem.Script,apiItem.Args,indexData);if(this.ClassName=="MinuteChartContainer"||this.ClassName=="MinuteChartHScreenContainer")var bindData=this.SourceData;else var bindData=this.ChartPaint[0].Data;this.BindIndexData(index,bindData);//执行脚本
2440
- };//增加一个自定义指标窗口
2442
+ if(option&&option.Draw===true)this.Draw();};//增加一个自定义指标窗口
2441
2443
  this.AddScriptIndexWindow=function(indexInfo,option){if(!indexInfo||!indexInfo.Script||!indexInfo.Name)return;this.Frame.RestoreIndexWindows();//还原隐藏的窗口
2442
2444
  var index=this.AddNewSubFrame(option);var indexData={Name:indexInfo.Name,Script:indexInfo.Script,Args:indexInfo.Args,ID:indexInfo.Name,//扩展属性 可以是空
2443
2445
  KLineType:indexInfo.KLineType,YSpecificMaxMin:indexInfo.YSpecificMaxMin,YSplitScale:indexInfo.YSplitScale,FloatPrecision:indexInfo.FloatPrecision,Condition:indexInfo.Condition,StringFormat:indexInfo.StringFormat,OutName:indexInfo.OutName};if(indexInfo.ID)indexData.ID=indexInfo.ID;this.WindowIndex[index]=new ScriptIndex(indexData.Name,indexData.Script,indexData.Args,indexData);//脚本执行
@@ -2724,7 +2726,7 @@ if(this.BorderLine==null){if(this.IsDrawRightBorder||this.IsDrawLeftBorder){this
2724
2726
  this.Canvas.stroke();
2725
2727
  }
2726
2728
  */};//画标题背景色
2727
- this.DrawTitleBG=function(){if(this.ChartBorder.TitleHeight<=0)return;var border=this.GetBorder();var left=ToFixedPoint(border.Left);var top=ToFixedPoint(border.Top);var right=ToFixedPoint(border.Right);var bottom=ToFixedPoint(this.ChartBorder.GetTopTitle());var width=right-left;var height=bottom-top;this.Canvas.fillStyle=this.TitleBGColor;this.Canvas.fillRect(left,top,width,height);if(this.IsDrawTitleBottomLine){this.Canvas.strokeStyle=this.PenBorder;this.Canvas.beginPath();this.Canvas.moveTo(left,ToFixedPoint(border.TopTitle));this.Canvas.lineTo(right,ToFixedPoint(border.TopTitle));this.Canvas.stroke();}};this.DrawLock=function(){if(!this.LockPaint)return;this.LockPaint.Draw(true);};this.DrawLogo=function(){var border=this.GetBorder();var text=g_JSChartResource.FrameLogo.Text;if(!IFrameSplitOperator.IsString(text))return;this.Canvas.font=this.LogoTextFont;this.Canvas.textAlign='left';this.Canvas.textBaseline='bottom';var height=this.Canvas.measureText("擎").width;var width=this.Canvas.measureText(text).width;if(this.IsHScreen){var x=border.Left+5;var y=border.Top+5;this.Canvas.save();this.Canvas.translate(x,y);this.Canvas.rotate(90*Math.PI/180);var rtBG={Left:0,Bottom:0,Width:width+4,Height:height+4};rtBG.Top=rtBG.Bottom-rtBG.Height;rtBG.Right=rtBG.Left+rtBG.Width;if(this.LogoBGColor){this.Canvas.fillStyle=this.LogoBGColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}this.Canvas.fillStyle=this.LogoTextColor;this.Canvas.fillText(text,1,0);this.Canvas.restore();}else{var rtBG={Left:border.Left+5,Bottom:border.Bottom-5,Width:width+4,Height:height+4};rtBG.Top=rtBG.Bottom-rtBG.Height;rtBG.Right=rtBG.Left+rtBG.Width;if(this.LogoBGColor){this.Canvas.fillStyle=this.LogoBGColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}var x=rtBG.Left+1;var y=rtBG.Bottom-1;this.Canvas.fillStyle=this.LogoTextColor;this.Canvas.fillText(text,x,y);}};this.CalculateLock=function(aryData){this.LockPaint.SetData(aryData);this.LockPaint.Draw(false);};//创建锁图形
2729
+ this.DrawTitleBG=function(){if(this.ChartBorder.TitleHeight<=0)return;var border=this.GetBorder();var left=ToFixedPoint(border.Left);var top=ToFixedPoint(border.Top);var right=ToFixedPoint(border.Right);var bottom=ToFixedPoint(this.ChartBorder.GetTopTitle());var width=right-left;var height=bottom-top;this.Canvas.fillStyle=this.TitleBGColor;this.Canvas.fillRect(left,top,width,height);if(this.IsDrawTitleBottomLine){this.Canvas.strokeStyle=this.PenBorder;this.Canvas.beginPath();this.Canvas.moveTo(left,ToFixedPoint(border.TopTitle));this.Canvas.lineTo(right,ToFixedPoint(border.TopTitle));this.Canvas.stroke();}};this.DrawLock=function(){if(!this.LockPaint)return;this.LockPaint.Draw(true);};this.DrawLogo=function(){var border=this.GetBorder();var text=g_JSChartResource.FrameLogo.Text;if(!IFrameSplitOperator.IsString(text))return;this.Canvas.font=this.LogoTextFont;this.Canvas.textAlign='left';this.Canvas.textBaseline='bottom';var height=this.Canvas.measureText("擎").width;var width=this.Canvas.measureText(text).width;if(this.IsHScreen){var x=border.Left+5;var y=border.Top+5;this.Canvas.save();this.Canvas.translate(x,y);this.Canvas.rotate(90*Math.PI/180);var rtBG={Left:0,Bottom:0,Width:width+4,Height:height+4};rtBG.Top=rtBG.Bottom-rtBG.Height;rtBG.Right=rtBG.Left+rtBG.Width;if(this.LogoBGColor){this.Canvas.fillStyle=this.LogoBGColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}this.Canvas.fillStyle=this.LogoTextColor;this.Canvas.fillText(text,1,0);this.Canvas.restore();}else{var rtBG={Left:border.Left+5,Bottom:border.Bottom-5,Width:width+4,Height:height+4};rtBG.Top=rtBG.Bottom-rtBG.Height;rtBG.Right=rtBG.Left+rtBG.Width;if(this.LogoBGColor){this.Canvas.fillStyle=this.LogoBGColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}var x=rtBG.Left+1;var y=rtBG.Bottom-1;this.Canvas.fillStyle=this.LogoTextColor;this.Canvas.fillText(text,x,y);}};this.CalculateLock=function(aryData){if(!this.LockPaint)return;this.LockPaint.SetData(aryData);this.LockPaint.Draw(false);};//创建锁图形
2728
2730
  this.CreateLockPaint=function(){this.LockPaint=g_ChartPaintFactory.Create("ChartLock");// new ChartLock();
2729
2731
  this.LockPaint.Canvas=this.Canvas;this.LockPaint.ChartBorder=this.ChartBorder;this.LockPaint.ChartFrame=this;};this.SetLock=function(lockData){this.IndexLock.SetData(lockData);};this.GetLockRect=function(){if(!this.LockPaint)return null;return this.LockPaint.LockRect;};this.ReloadResource=function(resource){if(!resource){this.PenBorder=g_JSChartResource.FrameBorderPen;//边框颜色
2730
2732
  this.TitleBGColor=g_JSChartResource.FrameTitleBGColor;//标题背景色
@@ -2763,7 +2765,7 @@ this.XTextExtend;//[0]=底部 { Align:0=默认(居中), 1=左对齐 }
2763
2765
  this.XLineExtend;//[0]=底部 { Mode:1, Color: } Mode=1 分割线 Mode=2短线
2764
2766
  this.FrameData={SubFrameItem:null};//窗口框架信息
2765
2767
  //画图工具刻度
2766
- this.DrawPicture={BGColor:g_JSChartResource.DrawPicture.XYCoordinate.BGColor,TextBGColor:g_JSChartResource.DrawPicture.XYCoordinate.TextBGColor,TextColor:g_JSChartResource.DrawPicture.XYCoordinate.TextColor,Font:g_JSChartResource.DrawPicture.XYCoordinate.Font};this.IChartFramePainting_ReloadResource=this.ReloadResource;this.ReloadResource=function(resource){this.IChartFramePainting_ReloadResource(resource);if(!resource){this.ToolbarButtonStyle=g_JSChartResource.ToolbarButtonStyle;this.CloseWindowButton=CloneData(g_JSChartResource.Buttons.CloseWindow);this.OverlayIndexButton=CloneData(g_JSChartResource.Buttons.OverlayIndex);this.ChangeIndexButton=CloneData(g_JSChartResource.Buttons.ChangeIndex);this.ModifyIndexParamButton=CloneData(g_JSChartResource.Buttons.ModifyIndexParam);this.MaxMinWindowButton=CloneData(g_JSChartResource.Buttons.MaxMinWindow);this.TitleWindowButton=CloneData(g_JSChartResource.Buttons.TitleWindow);this.ButtonTooltip=CloneData(g_JSChartResource.Buttons.Tooltip);this.AddIndexWindowButton=CloneData(g_JSChartResource.Buttons.AddIndexWindow);this.IndexHelpButton=CloneData(g_JSChartResource.Buttons.IndexHelp);}if(this.DivFrameToolbar)this.DivFrameToolbar.ReloadResource(resource);};this.DrawFrame=function(){if(this.XPointCount>0){var dInterval=this.ChartBorder.GetWidth()/(6*this.XPointCount);//分6份, 数据4 间距2
2768
+ this.DrawPicture={BGColor:g_JSChartResource.DrawPicture.XYCoordinate.BGColor,TextBGColor:g_JSChartResource.DrawPicture.XYCoordinate.TextBGColor,TextColor:g_JSChartResource.DrawPicture.XYCoordinate.TextColor,Font:g_JSChartResource.DrawPicture.XYCoordinate.Font};this.IChartFramePainting_ReloadResource=this.ReloadResource;this.ReloadResource=function(resource){this.IChartFramePainting_ReloadResource(resource);if(!resource){this.ToolbarButtonStyle=g_JSChartResource.ToolbarButtonStyle;this.CloseWindowButton=CloneData(g_JSChartResource.Buttons.CloseWindow);this.OverlayIndexButton=CloneData(g_JSChartResource.Buttons.OverlayIndex);this.ChangeIndexButton=CloneData(g_JSChartResource.Buttons.ChangeIndex);this.ModifyIndexParamButton=CloneData(g_JSChartResource.Buttons.ModifyIndexParam);this.MaxMinWindowButton=CloneData(g_JSChartResource.Buttons.MaxMinWindow);this.TitleWindowButton=CloneData(g_JSChartResource.Buttons.TitleWindow);this.ButtonTooltip=CloneData(g_JSChartResource.Buttons.Tooltip);this.AddIndexWindowButton=CloneData(g_JSChartResource.Buttons.AddIndexWindow);this.IndexHelpButton=CloneData(g_JSChartResource.Buttons.IndexHelp);}if(this.ToolbarButtonStyle==1){this.ClearToolbar();}else{if(this.DivFrameToolbar)this.DivFrameToolbar.ReloadResource(resource);}};this.DrawFrame=function(){if(this.XPointCount>0){var dInterval=this.ChartBorder.GetWidth()/(6*this.XPointCount);//分6份, 数据4 间距2
2767
2769
  this.DistanceWidth=2*dInterval;this.DataWidth=4*dInterval;}this.DrawHorizontal();this.DrawVertical();};this.DrawTitleButton=function(aryButton,moveonPoint,mouseStatus){var border=this.GetBorder();if(this.IsHScreen){var y=border.Bottom-3;var x=border.RightTitle+this.ChartBorder.TitleHeight/2;this.Canvas.save();this.Canvas.translate(x,y);this.Canvas.rotate(90*Math.PI/180);//底部开始画
2768
2770
  var yButton=0,xButton=0,bottom=0;for(var i=0;i<aryButton.length;++i){var item=aryButton[i];var size=item.Style.Size;var xButton=bottom-size-item.Style.MerginLeft;var font=size+'px '+item.Style.Family;var color=item.Style.Color;this.Canvas.fillStyle=color;this.Canvas.font=font;this.Canvas.textAlign="left";this.Canvas.textBaseline="middle";this.Canvas.fillText(item.Style.Text,xButton,0);var rtButton={Left:x-size/2,Right:x+size/2,Bottom:y,Width:size,Height:size+item.Style.MerginLeft};rtButton.Top=rtButton.Bottom-size-item.Style.MerginLeft;this.Buttons.push({ID:item.ID,Rect:rtButton});bottom=xButton;y=rtButton.Top;}this.Canvas.restore();}else{var right=border.RightEx-3;var left=border.Left;var yButton=border.Top+this.ChartBorder.TitleHeight/2;this.ToolbarCacheSize={RToolbar:{Right:right,Left:right}//右往左绘制
2769
2771
  };for(var i=0;i<aryButton.length;++i){var item=aryButton[i];var size=item.Style.Size;var xBotton=right-size-item.Style.MerginLeft;var font=size+'px '+item.Style.Family;var rtButton={Left:xBotton,Top:yButton-size/2,Right:xBotton+size+item.Style.MerginLeft,Bottom:yButton+size/2,Width:size+item.Style.MerginLeft,Height:size};var color=item.Style.Color;if(moveonPoint&&moveonPoint.X>=rtButton.Left&&moveonPoint.X<rtButton.Right&&moveonPoint.Y>=rtButton.Top&&moveonPoint.Y<=rtButton.Bottom){color=item.Style.MoveOnColor;if(mouseStatus)mouseStatus.MouseOnToolbar={Rect:rtButton,Item:item,Frame:this,Point:{X:moveonPoint.X,Y:moveonPoint.Y}};}this.Canvas.fillStyle=color;this.Canvas.font=font;this.Canvas.textAlign="left";this.Canvas.textBaseline="middle";this.Canvas.fillText(item.Style.Text,xBotton,yButton);this.Buttons.push({ID:item.ID,Rect:rtButton});this.ToolbarCacheSize.RToolbar.Left=rtButton.Left;right=xBotton;}}};this.DrawToolbarTooltip=function(mouseOnToolbar){if(!mouseOnToolbar)return;var border=this.GetBorder();var text=null;if(mouseOnToolbar.Item.TooltipText){text=mouseOnToolbar.Item.TooltipText;}else{var key='Toolbar-'+mouseOnToolbar.Item.ID;text=g_JSChartLocalization.GetText(key,0);}if(!text)return;var pixelRatio=GetDevicePixelRatio();var canvas=this.Canvas;if(this.GetExtraCanvas){var finder=this.GetExtraCanvas(JSChart.TooltipCursorCanvasKey);if(finder)canvas=finder.Canvas;}var xCenter=mouseOnToolbar.Rect.Left+mouseOnToolbar.Rect.Width/2;canvas.font=this.ButtonTooltip.Font;canvas.textAlign="left";canvas.textBaseline="bottom";var mergin=this.ButtonTooltip.Mergin;var textWidth=canvas.measureText(text).width+mergin.Left+mergin.Right;var textHeight=this.GetFontHeight();var bgHeight=textHeight+mergin.Top+mergin.Bottom;if(mouseOnToolbar.ID=="TitleButton"){var x=mouseOnToolbar.Point.X;var y=mouseOnToolbar.Point.Y+20;if(y+textHeight>border.ChartHeight)y=mouseOnToolbar.Point.Y-5-textHeight;}else if(JSCHART_BUTTON_ID.CLOSE_BEFOREOPEN_ID==mouseOnToolbar.Item.ID){var x=mouseOnToolbar.Rect.Right+5;var y=mouseOnToolbar.Rect.Top;}else if(JSCHART_BUTTON_ID.DRAW_PICTURE_DELETE==mouseOnToolbar.Item.ID||JSCHART_BUTTON_ID.DRAW_PICTURE_SETTING==mouseOnToolbar.Item.ID||mouseOnToolbar.Item.ID>=JSCHART_BUTTON_ID.DRAW_PICTURE_BUTTON_1&&mouseOnToolbar.Item.ID<=JSCHART_BUTTON_ID.DRAW_PICTURE_BUTTON_18){var x=mouseOnToolbar.Point.X;var y=mouseOnToolbar.Point.Y+20;if(x+textWidth>=border.ChartWidth)x=border.ChartWidth-textWidth-2;}else{var x=xCenter-textWidth/2;var y=border.Top-bgHeight;if(y<0)y=border.TopEx+1;if(x+textWidth>border.ChartWidth)x=border.ChartWidth-textWidth-2;}if(IFrameSplitOperator.IsNumber(this.ButtonTooltip.BorderRadius))//圆角
@@ -3012,21 +3014,7 @@ this.IsDrawTitleBG=false;this.IsShowNameArrow=false;this.CustomVerticalInfo=[];/
3012
3014
  // Type:1, Space: 第几个空白间距, Line:{ Color:线段颜色, Type:线段类型 0 直线 1 虚线 }
3013
3015
  this.DrawCustomVerticalEvent;this.RightSpaceCount=0;this.Logarithmic=null;//{Up:上部 , Donw:下部 , OpenPrice:第一个开盘价}
3014
3016
  this.CustomToolbar=[];//自定义toolbar按钮 { ID:, Html:, Click } 2.0版本 { ID, Style:{ 见 g_JSChartResource.Buttons.CloseWindow}}
3015
- this.ToolbarType=0;this.DrawToolbar=function(){if(this.ToolbarButtonStyle==1)return;if(g_JSChartResource.IsDOMFrameToolbar===true)return;if(!this.DivFrameToolbar)return;this.DivFrameToolbar.Show(this.Identify);return;if(typeof _jquery2.default=="undefined")return;if(!this.ChartBorder.UIElement||!this.ChartBorder.UIElement.parentNode)return;var divToolbar=document.getElementById(this.ToolbarID);if(divToolbar&&this.SizeChange==false&&this.ReDrawToolbar==false)return;if(!divToolbar){divToolbar=document.createElement("div");divToolbar.className='klineframe-toolbar';divToolbar.id=this.ToolbarID;divToolbar.oncontextmenu=function(){return false;};//屏蔽右键系统菜单
3016
- //为divToolbar添加属性identify
3017
- divToolbar.setAttribute("identify",this.Identify.toString());this.ChartBorder.UIElement.parentNode.appendChild(divToolbar);}if(!this.ModifyIndex&&!this.ChangeIndex&&!this.OverlayIndex&&!this.CloseIndex&&!IFrameSplitOperator.IsNonEmptyArray(this.CustomToolbar)){if(divToolbar.style.display!='none')divToolbar.style.display='none';return;}//使用外城div尺寸 画图尺寸是被放大的
3018
- var pixelTatio=GetDevicePixelRatio();var chartWidth=parseInt(this.ChartBorder.UIElement.parentElement.style.width.replace("px",""));var chartHeight=parseInt(this.ChartBorder.UIElement.parentElement.style.height.replace("px",""));//JSConsole.Chart.Log('[KLineFrame::DrawToolbar] ',chartWidth,chartHeight,pixelTatio);
3019
- var toolbarWidth=100;var toolbarHeight=this.ChartBorder.GetTitleHeight();var left=chartWidth-this.ChartBorder.Right/pixelTatio-toolbarWidth;var top=this.ChartBorder.GetTop()/pixelTatio;if(this.ToolbarRect){//尺寸变动移动才重新设置DOM
3020
- if(this.ToolbarRect.Left==left&&this.ToolbarRect.Top==top&&this.ToolbarRect.Width==toolbarWidth&&this.ToolbarRect.Height==toolbarHeight/pixelTatio){return;}}this.ToolbarRect={Left:left,Top:top,Width:toolbarWidth,Height:toolbarHeight/pixelTatio};var modifyButton='<span class=\'index_param icon iconfont icon-index_param\' id=\'modifyindex\' style=\'cursor:pointer;margin-left:2px;margin-right:2px;\' title=\'\u8C03\u6574\u6307\u6807\u53C2\u6570\'></span>';var changeButton='<span class=\'index_change icon iconfont icon-change_index\' id=\'changeindex\' style=\'cursor:pointer;margin-left:2px;margin-right:2px;\' title=\'\u5207\u6362\u6307\u6807\'></span>';var overlayButton='<span class=\'index_overlay icon iconfont icon-overlay_index\' id=\'overlayindex\' style=\'cursor:pointer;margin-left:2px;margin-right:2px;\' title=\'\u53E0\u52A0\u6307\u6807\'></span>';var closeButton='<span class=\'index_close icon iconfont icon-close\' id=\'closeindex\' style=\'cursor:pointer;margin-left:2px;margin-right:2px;\' title=\'\u5173\u95ED\u6307\u6807\u7A97\u53E3\'></span>';var spanIcon=modifyButton+changeButton+overlayButton;if(this.Identify!==0&&this.CloseIndex)//第1个窗口不能关闭
3021
- {spanIcon+=closeButton;}if(IFrameSplitOperator.IsNonEmptyArray(this.CustomToolbar)){for(var i=0;i<this.CustomToolbar.length;++i){var item=this.CustomToolbar[i];spanIcon+=item.Html;}}//var scrollPos=GetScrollPosition();
3022
- //left = left+scrollPos.Left;
3023
- //top = top+scrollPos.Top;
3024
- divToolbar.style.left=left+"px";divToolbar.style.top=top+"px";divToolbar.style.width=toolbarWidth+"px";//宽度先不调整吧
3025
- divToolbar.style.height=toolbarHeight/pixelTatio+'px';//只调整高度
3026
- divToolbar.innerHTML=spanIcon;var chart=this.ChartBorder.UIElement.JSChartContainer;var identify=this.Identify;if(!this.ModifyIndex)//隐藏'改参数'
3027
- (0,_jquery2.default)("#"+divToolbar.id+" .index_param").hide();else if(typeof this.ModifyIndexEvent=='function')//绑定点击事件
3028
- (0,_jquery2.default)("#"+divToolbar.id+" .index_param").click({Chart:this.ChartBorder.UIElement.JSChartContainer,Identify:this.Identify},this.ModifyIndexEvent);if(!this.ChangeIndex)//隐藏'换指标'
3029
- {(0,_jquery2.default)("#"+divToolbar.id+" .index_change").hide();}else if(typeof this.ChangeIndexEvent=='function'){(0,_jquery2.default)("#"+divToolbar.id+" .index_change").click({Chart:this.ChartBorder.UIElement.JSChartContainer,Identify:this.Identify,IsOverlay:false},this.ChangeIndexEvent);}if(!this.OverlayIndex){(0,_jquery2.default)("#"+divToolbar.id+" .index_overlay").hide();}else{(0,_jquery2.default)("#"+divToolbar.id+" .index_overlay").click({Chart:this.ChartBorder.UIElement.JSChartContainer,Identify:this.Identify,IsOverlay:true},this.ChangeIndexEvent);}(0,_jquery2.default)("#"+divToolbar.id+" .index_close").click({Chart:this.ChartBorder.UIElement.JSChartContainer,Identify:this.Identify},function(event){var hqChart=event.data.Chart;var id=event.data.Identify;hqChart.RemoveIndexWindow(id);});if(IFrameSplitOperator.IsNonEmptyArray(this.CustomToolbar)){for(var i=0;i<this.CustomToolbar.length;++i){var item=this.CustomToolbar[i];(0,_jquery2.default)("#"+item.ID).click({Chart:this.ChartBorder.UIElement.JSChartContainer,Identify:this.Identify,ID:item.ID},item.Click);}}divToolbar.style.display="block";};//手绘,不用DOM,使用DOM太麻烦了
3017
+ this.ToolbarType=0;this.DrawToolbar=function(){if(this.ToolbarButtonStyle==1)return;if(g_JSChartResource.IsDOMFrameToolbar===true)return;if(!this.DivFrameToolbar)return;this.DivFrameToolbar.Show(this.Identify);};//手绘,不用DOM,使用DOM太麻烦了
3030
3018
  this.DrawToolbarV2=function(moveonPoint,mouseStatus){if(g_JSChartResource.IsDOMFrameToolbar===true)return;this.Buttons=[];if(this.IsMinSize==true)return;if(this.ChartBorder.TitleHeight<5)return;var aryButton=[];//第1个窗口不能关闭
3031
3019
  if(this.CloseIndex&&this.Identify!==0)aryButton.push({ID:JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW,Style:this.CloseWindowButton});if(this.MaxMinWindow&&this.Identify!=0)aryButton.push({ID:JSCHART_BUTTON_ID.MAX_MIN_WINDOW,Style:this.MaxMinWindowButton});if(this.TitleWindow&&this.Identify!=0)aryButton.push({ID:JSCHART_BUTTON_ID.TITLE_WINDOW,Style:this.TitleWindowButton});if(this.ExportData)aryButton.push({ID:JSCHART_BUTTON_ID.EXPORT_DATA,Style:this.ExportDataButton});if(this.OverlayIndex)aryButton.push({ID:JSCHART_BUTTON_ID.OVERLAY_INDEX,Style:this.OverlayIndexButton});if(this.ChangeIndex)aryButton.push({ID:JSCHART_BUTTON_ID.CHANGE_INDEX,Style:this.ChangeIndexButton});if(this.ModifyIndex)aryButton.push({ID:JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM,Style:this.ModifyIndexParamButton});if(this.AddIndexWindow)aryButton.push({ID:JSCHART_BUTTON_ID.ADD_INDEX_WINDOW,Style:this.AddIndexWindowButton});if(this.IndexHelp)aryButton.push({ID:JSCHART_BUTTON_ID.INDEX_HELP,Style:this.IndexHelpButton});if(IFrameSplitOperator.IsNonEmptyArray(this.CustomToolbar)){for(var i=0;i<this.CustomToolbar.length;++i){var item=this.CustomToolbar[i];if(item.ID&&item.Style){var btnItem={ID:item.ID,Style:item.Style,TooltipText:item.TooltipText,Data:item.Data};if(item.IsLeft===true)//左侧按钮
3032
3020
  {}else{aryButton.push(btnItem);//右侧按钮
@@ -10634,11 +10622,11 @@ this.ID=Guid();this.Left=-1;this.Top=-1;this.IconConfig={Color:g_JSChartResource
10634
10622
  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,SpanText:item.SpanText};if(item.Tooltip&&item.Tooltip.Text)newItem.Tooltip={Text:item.Tooltip.Text};this.AryButton.push(newItem);if(this.DivToolbar)this.CreateButton(newItem,this.DivToolbar);}};//清空原来的按钮
10635
10623
  this.ClearAllButtons=function(){//清空原来的按钮
10636
10624
  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(frame);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;//第一个指标窗口不显示关闭按钮
10637
- 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;if(item.ID==JSCHART_BUTTON_ID.INDEX_HELP&&frame&&frame.IndexHelp===false)continue;aryButton.push(item);}return aryButton;};this.SetToolbar=function(aryButton){this.ClearAllButtons();//清空原来的按钮
10625
+ 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;if(item.ID==JSCHART_BUTTON_ID.INDEX_HELP&&frame&&frame.IndexHelp===false)continue;if(item.ID==JSCHART_BUTTON_ID.MAX_MIN_WINDOW&&frame&&frame.MaxMinWindow===false)continue;if(item.ID==JSCHART_BUTTON_ID.TITLE_WINDOW&&frame&&frame.TitleWindow===false)continue;if(item.ID==JSCHART_BUTTON_ID.ADD_INDEX_WINDOW&&frame&&frame.AddIndexWindow===false)continue;aryButton.push(item);}return aryButton;};this.SetToolbar=function(aryButton){this.ClearAllButtons();//清空原来的按钮
10638
10626
  this.CreateArrayButton(aryButton);//重新创建
10639
10627
  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);//重新设置按钮
10640
10628
  };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;};//屏蔽右键系统菜单
10641
- 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);};if(item.SpanText)spanDom.innerText=item.SpanText;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(frame){var aryButton=[{ID:JSCHART_BUTTON_ID.INDEX_HELP,ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-help",Tooltip:{Text:"帮助"},Span:null,Div:null,TooltipSpan:null},{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;};//DOM工厂类
10629
+ 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);};if(item.SpanText)spanDom.innerText=item.SpanText;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,FrameID:this.FrameID};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(frame){var aryButton=[{ID:JSCHART_BUTTON_ID.INDEX_HELP,ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-help",Tooltip:{Text:"帮助"},Span:null,Div:null,TooltipSpan:null},{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.ADD_INDEX_WINDOW,ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-add",Tooltip:{Text:"增加指标窗口"},Span:null,Div:null,TooltipSpan:null},{ID:JSCHART_BUTTON_ID.TITLE_WINDOW,ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-Title",Tooltip:{Text:"标题模式"},Span:null,Div:null,TooltipSpan:null},{ID:JSCHART_BUTTON_ID.MAX_MIN_WINDOW,ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-maxmize-",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;};//DOM工厂类
10642
10630
  function JSDOMFactory(){//[key:name, { Create:function(divElement) { return new class(divElement); }} ]
10643
10631
  this.DataMap=new _map2.default([["JSDivFrameToolbar",{Create:function Create(option){return new JSDivFrameToolbar(option);}}]]);this.Create=function(name,option){if(!this.DataMap.has(name)){JSConsole.Chart.Warn('[JSDOMFactory::Create] can\'t find class='+name+'.');return null;}var item=this.DataMap.get(name);return item.Create(option);};this.Add=function(name,option){this.DataMap.set(name,{Create:option.Create});};}var g_JSDOMFactory=new JSDOMFactory();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";};}/*
10644
10632
  Copyright (c) 2018 jones
@@ -15562,7 +15550,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
15562
15550
  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);};}/********************************************************************************
15563
15551
  * 版本信息输出
15564
15552
  *
15565
- */var HQCHART_VERSION="1.1.15127";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();//把给外界调用的方法暴露出来
15553
+ */var HQCHART_VERSION="1.1.15137";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();//把给外界调用的方法暴露出来
15566
15554
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
15567
15555
  // BaseIndex:BaseIndex,
15568
15556
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.15128",
3
+ "version": "1.1.15138",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -59906,6 +59906,7 @@ HQData.API_CHART_AREA_TEXT=function(data, callback)
59906
59906
 
59907
59907
  HQData.APIIndex_ErrorMessage=function(data, callback)
59908
59908
  {
59909
+ data.PreventDefault=true;
59909
59910
  var hqchartData={ outdata:{ date:null, time:null, outvar:[] } , code:0};
59910
59911
  hqchartData.error={ message:"错误提示信息" };
59911
59912
  callback(hqchartData);
@@ -10441,6 +10441,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
10441
10441
  }
10442
10442
  }
10443
10443
 
10444
+ if (frame.DivFrameToolbar) frame.DivFrameToolbar.UpdateButton(); //更新div工具条
10444
10445
  }
10445
10446
 
10446
10447
  this.SetSubFrameOption=function(subFrame, option)
@@ -10504,6 +10505,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
10504
10505
  subFrame.Frame.IsShowYText[1]=option.IsShowRightText;
10505
10506
  subFrame.Frame.YSplitOperator.IsShowRightText=option.IsShowRightText; //显示右边刻度
10506
10507
  }
10508
+
10509
+ if (frame.DivFrameToolbar) frame.DivFrameToolbar.UpdateButton(); //更新div工具条
10507
10510
  }
10508
10511
 
10509
10512
  this.AddNewSubFrame=function(option)
@@ -10592,6 +10595,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
10592
10595
  var bindData=this.ChartPaint[0].Data;
10593
10596
 
10594
10597
  this.BindIndexData(index,bindData); //执行脚本
10598
+
10599
+ if (option && option.Draw===true) this.Draw();
10595
10600
  }
10596
10601
 
10597
10602
  //增加一个自定义指标窗口
@@ -13579,6 +13584,8 @@ function IChartFramePainting()
13579
13584
 
13580
13585
  this.CalculateLock=function(aryData)
13581
13586
  {
13587
+ if (!this.LockPaint) return;
13588
+
13582
13589
  this.LockPaint.SetData(aryData);
13583
13590
  this.LockPaint.Draw(false);
13584
13591
  }
@@ -13771,7 +13778,14 @@ function AverageWidthFrame()
13771
13778
  this.IndexHelpButton=CloneData(g_JSChartResource.Buttons.IndexHelp);
13772
13779
  }
13773
13780
 
13774
- if (this.DivFrameToolbar) this.DivFrameToolbar.ReloadResource(resource);
13781
+ if (this.ToolbarButtonStyle==1)
13782
+ {
13783
+ this.ClearToolbar();
13784
+ }
13785
+ else
13786
+ {
13787
+ if (this.DivFrameToolbar) this.DivFrameToolbar.ReloadResource(resource);
13788
+ }
13775
13789
  }
13776
13790
 
13777
13791
  this.DrawFrame=function()
@@ -18794,155 +18808,6 @@ function KLineFrame()
18794
18808
  if (!this.DivFrameToolbar) return;
18795
18809
 
18796
18810
  this.DivFrameToolbar.Show(this.Identify);
18797
-
18798
- return;
18799
-
18800
- if (typeof($)=="undefined") return;
18801
-
18802
- if (!this.ChartBorder.UIElement || !this.ChartBorder.UIElement.parentNode) return;
18803
-
18804
- var divToolbar=document.getElementById(this.ToolbarID);
18805
- if (divToolbar && this.SizeChange==false && this.ReDrawToolbar==false) return;
18806
-
18807
- if (!divToolbar)
18808
- {
18809
-
18810
- divToolbar=document.createElement("div");
18811
- divToolbar.className='klineframe-toolbar';
18812
- divToolbar.id=this.ToolbarID;
18813
- divToolbar.oncontextmenu = function() { return false;}; //屏蔽右键系统菜单
18814
- //为divToolbar添加属性identify
18815
- divToolbar.setAttribute("identify",this.Identify.toString());
18816
- this.ChartBorder.UIElement.parentNode.appendChild(divToolbar);
18817
- }
18818
-
18819
- if (!this.ModifyIndex && !this.ChangeIndex && !this.OverlayIndex && !this.CloseIndex && !IFrameSplitOperator.IsNonEmptyArray(this.CustomToolbar))
18820
- {
18821
- if (divToolbar.style.display!='none')
18822
- divToolbar.style.display='none';
18823
- return;
18824
- }
18825
-
18826
- //使用外城div尺寸 画图尺寸是被放大的
18827
- var pixelTatio = GetDevicePixelRatio();
18828
- var chartWidth=parseInt(this.ChartBorder.UIElement.parentElement.style.width.replace("px",""));
18829
- var chartHeight=parseInt(this.ChartBorder.UIElement.parentElement.style.height.replace("px",""));
18830
- //JSConsole.Chart.Log('[KLineFrame::DrawToolbar] ',chartWidth,chartHeight,pixelTatio);
18831
-
18832
- var toolbarWidth=100;
18833
- var toolbarHeight=this.ChartBorder.GetTitleHeight();
18834
- var left=chartWidth-(this.ChartBorder.Right/pixelTatio)-toolbarWidth;
18835
- var top=this.ChartBorder.GetTop()/pixelTatio;
18836
-
18837
- if (this.ToolbarRect)
18838
- {
18839
- //尺寸变动移动才重新设置DOM
18840
- if (this.ToolbarRect.Left==left && this.ToolbarRect.Top==top &&
18841
- this.ToolbarRect.Width==toolbarWidth && this.ToolbarRect.Height==toolbarHeight/pixelTatio)
18842
- {
18843
- return;
18844
- }
18845
- }
18846
-
18847
- this.ToolbarRect={ Left:left, Top:top, Width:toolbarWidth, Height:toolbarHeight/pixelTatio };
18848
-
18849
- const modifyButton=`<span class='index_param icon iconfont icon-index_param' id='modifyindex' style='cursor:pointer;margin-left:2px;margin-right:2px;' title='调整指标参数'></span>`;
18850
- const changeButton=`<span class='index_change icon iconfont icon-change_index' id='changeindex' style='cursor:pointer;margin-left:2px;margin-right:2px;' title='切换指标'></span>`;
18851
- const overlayButton=`<span class='index_overlay icon iconfont icon-overlay_index' id='overlayindex' style='cursor:pointer;margin-left:2px;margin-right:2px;' title='叠加指标'></span>`;
18852
- const closeButton=`<span class='index_close icon iconfont icon-close' id='closeindex' style='cursor:pointer;margin-left:2px;margin-right:2px;' title='关闭指标窗口'></span>`;
18853
-
18854
- var spanIcon=modifyButton+changeButton+overlayButton;
18855
-
18856
- if (this.Identify!==0 && this.CloseIndex) //第1个窗口不能关闭
18857
- {
18858
- spanIcon+=closeButton;
18859
- }
18860
-
18861
- if (IFrameSplitOperator.IsNonEmptyArray(this.CustomToolbar))
18862
- {
18863
- for(var i=0;i<this.CustomToolbar.length;++i)
18864
- {
18865
- var item=this.CustomToolbar[i];
18866
- spanIcon+=item.Html;
18867
- }
18868
- }
18869
-
18870
- //var scrollPos=GetScrollPosition();
18871
- //left = left+scrollPos.Left;
18872
- //top = top+scrollPos.Top;
18873
- divToolbar.style.left = left + "px";
18874
- divToolbar.style.top = top + "px";
18875
- divToolbar.style.width=toolbarWidth+"px"; //宽度先不调整吧
18876
- divToolbar.style.height=(toolbarHeight/pixelTatio)+'px'; //只调整高度
18877
- divToolbar.innerHTML=spanIcon;
18878
-
18879
- var chart=this.ChartBorder.UIElement.JSChartContainer;
18880
- var identify=this.Identify;
18881
- if (!this.ModifyIndex) //隐藏'改参数'
18882
- $("#"+divToolbar.id+" .index_param").hide();
18883
- else if (typeof(this.ModifyIndexEvent)=='function') //绑定点击事件
18884
- $("#"+divToolbar.id+" .index_param").click(
18885
- {
18886
- Chart:this.ChartBorder.UIElement.JSChartContainer,
18887
- Identify:this.Identify
18888
- },this.ModifyIndexEvent);
18889
-
18890
- if (!this.ChangeIndex) //隐藏'换指标'
18891
- {
18892
- $("#"+divToolbar.id+" .index_change").hide();
18893
- }
18894
- else if (typeof(this.ChangeIndexEvent)=='function')
18895
- {
18896
- $("#"+divToolbar.id+" .index_change").click(
18897
- {
18898
- Chart:this.ChartBorder.UIElement.JSChartContainer,
18899
- Identify:this.Identify,
18900
- IsOverlay:false
18901
- },this.ChangeIndexEvent);
18902
- }
18903
-
18904
- if (!this.OverlayIndex)
18905
- {
18906
- $("#"+divToolbar.id+" .index_overlay").hide();
18907
- }
18908
- else
18909
- {
18910
- $("#"+divToolbar.id+" .index_overlay").click(
18911
- {
18912
- Chart:this.ChartBorder.UIElement.JSChartContainer,
18913
- Identify:this.Identify,
18914
- IsOverlay:true
18915
- },this.ChangeIndexEvent);
18916
- }
18917
-
18918
- $("#"+divToolbar.id+" .index_close").click(
18919
- {
18920
- Chart:this.ChartBorder.UIElement.JSChartContainer,
18921
- Identify:this.Identify
18922
- },
18923
- function(event)
18924
- {
18925
- var hqChart=event.data.Chart;
18926
- var id=event.data.Identify;
18927
- hqChart.RemoveIndexWindow(id);
18928
- });
18929
-
18930
-
18931
- if (IFrameSplitOperator.IsNonEmptyArray(this.CustomToolbar))
18932
- {
18933
- for(var i=0;i<this.CustomToolbar.length;++i)
18934
- {
18935
- var item=this.CustomToolbar[i];
18936
- $("#"+item.ID).click(
18937
- {
18938
- Chart:this.ChartBorder.UIElement.JSChartContainer,
18939
- Identify:this.Identify,
18940
- ID:item.ID
18941
- },item.Click);
18942
- }
18943
- }
18944
-
18945
- divToolbar.style.display = "block";
18946
18811
  }
18947
18812
 
18948
18813
  //手绘,不用DOM,使用DOM太麻烦了
@@ -105475,6 +105340,10 @@ function JSDivFrameToolbar()
105475
105340
  if (item.ID==JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW && frame && frame.CloseIndex===false) continue;
105476
105341
  if (item.ID==JSCHART_BUTTON_ID.INDEX_HELP && frame && frame.IndexHelp===false) continue;
105477
105342
 
105343
+ if (item.ID==JSCHART_BUTTON_ID.MAX_MIN_WINDOW && frame && frame.MaxMinWindow===false) continue;
105344
+ if (item.ID==JSCHART_BUTTON_ID.TITLE_WINDOW && frame && frame.TitleWindow===false) continue;
105345
+ if (item.ID==JSCHART_BUTTON_ID.ADD_INDEX_WINDOW && frame && frame.AddIndexWindow===false) continue;
105346
+
105478
105347
  aryButton.push(item);
105479
105348
  }
105480
105349
 
@@ -105601,7 +105470,7 @@ function JSDivFrameToolbar()
105601
105470
 
105602
105471
  var frame=this.HQChart.Frame.SubFrame[this.FrameID].Frame;
105603
105472
 
105604
- var button={ ID:item.ID, Frame:frame };
105473
+ var button={ ID:item.ID, Frame:frame, FrameID:this.FrameID };
105605
105474
  this.HQChart.ClickFrameButton(button, e);
105606
105475
  }
105607
105476
 
@@ -105692,6 +105561,19 @@ JSDivFrameToolbar.GetDfaultButtons=function(frame)
105692
105561
  ID:JSCHART_BUTTON_ID.OVERLAY_INDEX, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-overlay_index", Tooltip:{ Text:"叠加指标"},
105693
105562
  Span:null,Div:null, TooltipSpan:null
105694
105563
  },
105564
+ {
105565
+ ID:JSCHART_BUTTON_ID.ADD_INDEX_WINDOW, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-add", Tooltip:{ Text:"增加指标窗口"},
105566
+ Span:null,Div:null, TooltipSpan:null
105567
+ },
105568
+
105569
+ {
105570
+ ID:JSCHART_BUTTON_ID.TITLE_WINDOW, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-Title", Tooltip:{ Text:"标题模式"},
105571
+ Span:null,Div:null, TooltipSpan:null
105572
+ },
105573
+ {
105574
+ ID:JSCHART_BUTTON_ID.MAX_MIN_WINDOW, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-maxmize-", Tooltip:{ Text:"放大缩小"},
105575
+ Span:null,Div:null, TooltipSpan:null
105576
+ },
105695
105577
  {
105696
105578
  ID:JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-close", Tooltip:{ Text:"关闭窗口"},
105697
105579
  Span:null,Div:null, TooltipSpan:null
@@ -4392,6 +4392,7 @@ HQData.API_CHART_AREA_TEXT=function(data, callback)
4392
4392
 
4393
4393
  HQData.APIIndex_ErrorMessage=function(data, callback)
4394
4394
  {
4395
+ data.PreventDefault=true;
4395
4396
  var hqchartData={ outdata:{ date:null, time:null, outvar:[] } , code:0};
4396
4397
  hqchartData.error={ message:"错误提示信息" };
4397
4398
  callback(hqchartData);
@@ -14537,6 +14537,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
14537
14537
  }
14538
14538
  }
14539
14539
 
14540
+ if (frame.DivFrameToolbar) frame.DivFrameToolbar.UpdateButton(); //更新div工具条
14540
14541
  }
14541
14542
 
14542
14543
  this.SetSubFrameOption=function(subFrame, option)
@@ -14600,6 +14601,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
14600
14601
  subFrame.Frame.IsShowYText[1]=option.IsShowRightText;
14601
14602
  subFrame.Frame.YSplitOperator.IsShowRightText=option.IsShowRightText; //显示右边刻度
14602
14603
  }
14604
+
14605
+ if (frame.DivFrameToolbar) frame.DivFrameToolbar.UpdateButton(); //更新div工具条
14603
14606
  }
14604
14607
 
14605
14608
  this.AddNewSubFrame=function(option)
@@ -14688,6 +14691,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
14688
14691
  var bindData=this.ChartPaint[0].Data;
14689
14692
 
14690
14693
  this.BindIndexData(index,bindData); //执行脚本
14694
+
14695
+ if (option && option.Draw===true) this.Draw();
14691
14696
  }
14692
14697
 
14693
14698
  //增加一个自定义指标窗口
@@ -17675,6 +17680,8 @@ function IChartFramePainting()
17675
17680
 
17676
17681
  this.CalculateLock=function(aryData)
17677
17682
  {
17683
+ if (!this.LockPaint) return;
17684
+
17678
17685
  this.LockPaint.SetData(aryData);
17679
17686
  this.LockPaint.Draw(false);
17680
17687
  }
@@ -17867,7 +17874,14 @@ function AverageWidthFrame()
17867
17874
  this.IndexHelpButton=CloneData(g_JSChartResource.Buttons.IndexHelp);
17868
17875
  }
17869
17876
 
17870
- if (this.DivFrameToolbar) this.DivFrameToolbar.ReloadResource(resource);
17877
+ if (this.ToolbarButtonStyle==1)
17878
+ {
17879
+ this.ClearToolbar();
17880
+ }
17881
+ else
17882
+ {
17883
+ if (this.DivFrameToolbar) this.DivFrameToolbar.ReloadResource(resource);
17884
+ }
17871
17885
  }
17872
17886
 
17873
17887
  this.DrawFrame=function()
@@ -22890,155 +22904,6 @@ function KLineFrame()
22890
22904
  if (!this.DivFrameToolbar) return;
22891
22905
 
22892
22906
  this.DivFrameToolbar.Show(this.Identify);
22893
-
22894
- return;
22895
-
22896
- if (typeof($)=="undefined") return;
22897
-
22898
- if (!this.ChartBorder.UIElement || !this.ChartBorder.UIElement.parentNode) return;
22899
-
22900
- var divToolbar=document.getElementById(this.ToolbarID);
22901
- if (divToolbar && this.SizeChange==false && this.ReDrawToolbar==false) return;
22902
-
22903
- if (!divToolbar)
22904
- {
22905
-
22906
- divToolbar=document.createElement("div");
22907
- divToolbar.className='klineframe-toolbar';
22908
- divToolbar.id=this.ToolbarID;
22909
- divToolbar.oncontextmenu = function() { return false;}; //屏蔽右键系统菜单
22910
- //为divToolbar添加属性identify
22911
- divToolbar.setAttribute("identify",this.Identify.toString());
22912
- this.ChartBorder.UIElement.parentNode.appendChild(divToolbar);
22913
- }
22914
-
22915
- if (!this.ModifyIndex && !this.ChangeIndex && !this.OverlayIndex && !this.CloseIndex && !IFrameSplitOperator.IsNonEmptyArray(this.CustomToolbar))
22916
- {
22917
- if (divToolbar.style.display!='none')
22918
- divToolbar.style.display='none';
22919
- return;
22920
- }
22921
-
22922
- //使用外城div尺寸 画图尺寸是被放大的
22923
- var pixelTatio = GetDevicePixelRatio();
22924
- var chartWidth=parseInt(this.ChartBorder.UIElement.parentElement.style.width.replace("px",""));
22925
- var chartHeight=parseInt(this.ChartBorder.UIElement.parentElement.style.height.replace("px",""));
22926
- //JSConsole.Chart.Log('[KLineFrame::DrawToolbar] ',chartWidth,chartHeight,pixelTatio);
22927
-
22928
- var toolbarWidth=100;
22929
- var toolbarHeight=this.ChartBorder.GetTitleHeight();
22930
- var left=chartWidth-(this.ChartBorder.Right/pixelTatio)-toolbarWidth;
22931
- var top=this.ChartBorder.GetTop()/pixelTatio;
22932
-
22933
- if (this.ToolbarRect)
22934
- {
22935
- //尺寸变动移动才重新设置DOM
22936
- if (this.ToolbarRect.Left==left && this.ToolbarRect.Top==top &&
22937
- this.ToolbarRect.Width==toolbarWidth && this.ToolbarRect.Height==toolbarHeight/pixelTatio)
22938
- {
22939
- return;
22940
- }
22941
- }
22942
-
22943
- this.ToolbarRect={ Left:left, Top:top, Width:toolbarWidth, Height:toolbarHeight/pixelTatio };
22944
-
22945
- const modifyButton=`<span class='index_param icon iconfont icon-index_param' id='modifyindex' style='cursor:pointer;margin-left:2px;margin-right:2px;' title='调整指标参数'></span>`;
22946
- const changeButton=`<span class='index_change icon iconfont icon-change_index' id='changeindex' style='cursor:pointer;margin-left:2px;margin-right:2px;' title='切换指标'></span>`;
22947
- const overlayButton=`<span class='index_overlay icon iconfont icon-overlay_index' id='overlayindex' style='cursor:pointer;margin-left:2px;margin-right:2px;' title='叠加指标'></span>`;
22948
- const closeButton=`<span class='index_close icon iconfont icon-close' id='closeindex' style='cursor:pointer;margin-left:2px;margin-right:2px;' title='关闭指标窗口'></span>`;
22949
-
22950
- var spanIcon=modifyButton+changeButton+overlayButton;
22951
-
22952
- if (this.Identify!==0 && this.CloseIndex) //第1个窗口不能关闭
22953
- {
22954
- spanIcon+=closeButton;
22955
- }
22956
-
22957
- if (IFrameSplitOperator.IsNonEmptyArray(this.CustomToolbar))
22958
- {
22959
- for(var i=0;i<this.CustomToolbar.length;++i)
22960
- {
22961
- var item=this.CustomToolbar[i];
22962
- spanIcon+=item.Html;
22963
- }
22964
- }
22965
-
22966
- //var scrollPos=GetScrollPosition();
22967
- //left = left+scrollPos.Left;
22968
- //top = top+scrollPos.Top;
22969
- divToolbar.style.left = left + "px";
22970
- divToolbar.style.top = top + "px";
22971
- divToolbar.style.width=toolbarWidth+"px"; //宽度先不调整吧
22972
- divToolbar.style.height=(toolbarHeight/pixelTatio)+'px'; //只调整高度
22973
- divToolbar.innerHTML=spanIcon;
22974
-
22975
- var chart=this.ChartBorder.UIElement.JSChartContainer;
22976
- var identify=this.Identify;
22977
- if (!this.ModifyIndex) //隐藏'改参数'
22978
- $("#"+divToolbar.id+" .index_param").hide();
22979
- else if (typeof(this.ModifyIndexEvent)=='function') //绑定点击事件
22980
- $("#"+divToolbar.id+" .index_param").click(
22981
- {
22982
- Chart:this.ChartBorder.UIElement.JSChartContainer,
22983
- Identify:this.Identify
22984
- },this.ModifyIndexEvent);
22985
-
22986
- if (!this.ChangeIndex) //隐藏'换指标'
22987
- {
22988
- $("#"+divToolbar.id+" .index_change").hide();
22989
- }
22990
- else if (typeof(this.ChangeIndexEvent)=='function')
22991
- {
22992
- $("#"+divToolbar.id+" .index_change").click(
22993
- {
22994
- Chart:this.ChartBorder.UIElement.JSChartContainer,
22995
- Identify:this.Identify,
22996
- IsOverlay:false
22997
- },this.ChangeIndexEvent);
22998
- }
22999
-
23000
- if (!this.OverlayIndex)
23001
- {
23002
- $("#"+divToolbar.id+" .index_overlay").hide();
23003
- }
23004
- else
23005
- {
23006
- $("#"+divToolbar.id+" .index_overlay").click(
23007
- {
23008
- Chart:this.ChartBorder.UIElement.JSChartContainer,
23009
- Identify:this.Identify,
23010
- IsOverlay:true
23011
- },this.ChangeIndexEvent);
23012
- }
23013
-
23014
- $("#"+divToolbar.id+" .index_close").click(
23015
- {
23016
- Chart:this.ChartBorder.UIElement.JSChartContainer,
23017
- Identify:this.Identify
23018
- },
23019
- function(event)
23020
- {
23021
- var hqChart=event.data.Chart;
23022
- var id=event.data.Identify;
23023
- hqChart.RemoveIndexWindow(id);
23024
- });
23025
-
23026
-
23027
- if (IFrameSplitOperator.IsNonEmptyArray(this.CustomToolbar))
23028
- {
23029
- for(var i=0;i<this.CustomToolbar.length;++i)
23030
- {
23031
- var item=this.CustomToolbar[i];
23032
- $("#"+item.ID).click(
23033
- {
23034
- Chart:this.ChartBorder.UIElement.JSChartContainer,
23035
- Identify:this.Identify,
23036
- ID:item.ID
23037
- },item.Click);
23038
- }
23039
- }
23040
-
23041
- divToolbar.style.display = "block";
23042
22907
  }
23043
22908
 
23044
22909
  //手绘,不用DOM,使用DOM太麻烦了
@@ -109571,6 +109436,10 @@ function JSDivFrameToolbar()
109571
109436
  if (item.ID==JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW && frame && frame.CloseIndex===false) continue;
109572
109437
  if (item.ID==JSCHART_BUTTON_ID.INDEX_HELP && frame && frame.IndexHelp===false) continue;
109573
109438
 
109439
+ if (item.ID==JSCHART_BUTTON_ID.MAX_MIN_WINDOW && frame && frame.MaxMinWindow===false) continue;
109440
+ if (item.ID==JSCHART_BUTTON_ID.TITLE_WINDOW && frame && frame.TitleWindow===false) continue;
109441
+ if (item.ID==JSCHART_BUTTON_ID.ADD_INDEX_WINDOW && frame && frame.AddIndexWindow===false) continue;
109442
+
109574
109443
  aryButton.push(item);
109575
109444
  }
109576
109445
 
@@ -109697,7 +109566,7 @@ function JSDivFrameToolbar()
109697
109566
 
109698
109567
  var frame=this.HQChart.Frame.SubFrame[this.FrameID].Frame;
109699
109568
 
109700
- var button={ ID:item.ID, Frame:frame };
109569
+ var button={ ID:item.ID, Frame:frame, FrameID:this.FrameID };
109701
109570
  this.HQChart.ClickFrameButton(button, e);
109702
109571
  }
109703
109572
 
@@ -109788,6 +109657,19 @@ JSDivFrameToolbar.GetDfaultButtons=function(frame)
109788
109657
  ID:JSCHART_BUTTON_ID.OVERLAY_INDEX, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-overlay_index", Tooltip:{ Text:"叠加指标"},
109789
109658
  Span:null,Div:null, TooltipSpan:null
109790
109659
  },
109660
+ {
109661
+ ID:JSCHART_BUTTON_ID.ADD_INDEX_WINDOW, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-add", Tooltip:{ Text:"增加指标窗口"},
109662
+ Span:null,Div:null, TooltipSpan:null
109663
+ },
109664
+
109665
+ {
109666
+ ID:JSCHART_BUTTON_ID.TITLE_WINDOW, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-Title", Tooltip:{ Text:"标题模式"},
109667
+ Span:null,Div:null, TooltipSpan:null
109668
+ },
109669
+ {
109670
+ ID:JSCHART_BUTTON_ID.MAX_MIN_WINDOW, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-maxmize-", Tooltip:{ Text:"放大缩小"},
109671
+ Span:null,Div:null, TooltipSpan:null
109672
+ },
109791
109673
  {
109792
109674
  ID:JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-close", Tooltip:{ Text:"关闭窗口"},
109793
109675
  Span:null,Div:null, TooltipSpan:null
@@ -153893,7 +153775,7 @@ function ScrollBarBGChart()
153893
153775
 
153894
153776
 
153895
153777
 
153896
- var HQCHART_VERSION="1.1.15127";
153778
+ var HQCHART_VERSION="1.1.15137";
153897
153779
 
153898
153780
  function PrintHQChartVersion()
153899
153781
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.15127";
8
+ var HQCHART_VERSION="1.1.15137";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -59924,6 +59924,7 @@ HQData.API_CHART_AREA_TEXT=function(data, callback)
59924
59924
 
59925
59925
  HQData.APIIndex_ErrorMessage=function(data, callback)
59926
59926
  {
59927
+ data.PreventDefault=true;
59927
59928
  var hqchartData={ outdata:{ date:null, time:null, outvar:[] } , code:0};
59928
59929
  hqchartData.error={ message:"错误提示信息" };
59929
59930
  callback(hqchartData);
@@ -14581,6 +14581,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
14581
14581
  }
14582
14582
  }
14583
14583
 
14584
+ if (frame.DivFrameToolbar) frame.DivFrameToolbar.UpdateButton(); //更新div工具条
14584
14585
  }
14585
14586
 
14586
14587
  this.SetSubFrameOption=function(subFrame, option)
@@ -14644,6 +14645,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
14644
14645
  subFrame.Frame.IsShowYText[1]=option.IsShowRightText;
14645
14646
  subFrame.Frame.YSplitOperator.IsShowRightText=option.IsShowRightText; //显示右边刻度
14646
14647
  }
14648
+
14649
+ if (frame.DivFrameToolbar) frame.DivFrameToolbar.UpdateButton(); //更新div工具条
14647
14650
  }
14648
14651
 
14649
14652
  this.AddNewSubFrame=function(option)
@@ -14732,6 +14735,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
14732
14735
  var bindData=this.ChartPaint[0].Data;
14733
14736
 
14734
14737
  this.BindIndexData(index,bindData); //执行脚本
14738
+
14739
+ if (option && option.Draw===true) this.Draw();
14735
14740
  }
14736
14741
 
14737
14742
  //增加一个自定义指标窗口
@@ -17719,6 +17724,8 @@ function IChartFramePainting()
17719
17724
 
17720
17725
  this.CalculateLock=function(aryData)
17721
17726
  {
17727
+ if (!this.LockPaint) return;
17728
+
17722
17729
  this.LockPaint.SetData(aryData);
17723
17730
  this.LockPaint.Draw(false);
17724
17731
  }
@@ -17911,7 +17918,14 @@ function AverageWidthFrame()
17911
17918
  this.IndexHelpButton=CloneData(g_JSChartResource.Buttons.IndexHelp);
17912
17919
  }
17913
17920
 
17914
- if (this.DivFrameToolbar) this.DivFrameToolbar.ReloadResource(resource);
17921
+ if (this.ToolbarButtonStyle==1)
17922
+ {
17923
+ this.ClearToolbar();
17924
+ }
17925
+ else
17926
+ {
17927
+ if (this.DivFrameToolbar) this.DivFrameToolbar.ReloadResource(resource);
17928
+ }
17915
17929
  }
17916
17930
 
17917
17931
  this.DrawFrame=function()
@@ -22934,155 +22948,6 @@ function KLineFrame()
22934
22948
  if (!this.DivFrameToolbar) return;
22935
22949
 
22936
22950
  this.DivFrameToolbar.Show(this.Identify);
22937
-
22938
- return;
22939
-
22940
- if (typeof($)=="undefined") return;
22941
-
22942
- if (!this.ChartBorder.UIElement || !this.ChartBorder.UIElement.parentNode) return;
22943
-
22944
- var divToolbar=document.getElementById(this.ToolbarID);
22945
- if (divToolbar && this.SizeChange==false && this.ReDrawToolbar==false) return;
22946
-
22947
- if (!divToolbar)
22948
- {
22949
-
22950
- divToolbar=document.createElement("div");
22951
- divToolbar.className='klineframe-toolbar';
22952
- divToolbar.id=this.ToolbarID;
22953
- divToolbar.oncontextmenu = function() { return false;}; //屏蔽右键系统菜单
22954
- //为divToolbar添加属性identify
22955
- divToolbar.setAttribute("identify",this.Identify.toString());
22956
- this.ChartBorder.UIElement.parentNode.appendChild(divToolbar);
22957
- }
22958
-
22959
- if (!this.ModifyIndex && !this.ChangeIndex && !this.OverlayIndex && !this.CloseIndex && !IFrameSplitOperator.IsNonEmptyArray(this.CustomToolbar))
22960
- {
22961
- if (divToolbar.style.display!='none')
22962
- divToolbar.style.display='none';
22963
- return;
22964
- }
22965
-
22966
- //使用外城div尺寸 画图尺寸是被放大的
22967
- var pixelTatio = GetDevicePixelRatio();
22968
- var chartWidth=parseInt(this.ChartBorder.UIElement.parentElement.style.width.replace("px",""));
22969
- var chartHeight=parseInt(this.ChartBorder.UIElement.parentElement.style.height.replace("px",""));
22970
- //JSConsole.Chart.Log('[KLineFrame::DrawToolbar] ',chartWidth,chartHeight,pixelTatio);
22971
-
22972
- var toolbarWidth=100;
22973
- var toolbarHeight=this.ChartBorder.GetTitleHeight();
22974
- var left=chartWidth-(this.ChartBorder.Right/pixelTatio)-toolbarWidth;
22975
- var top=this.ChartBorder.GetTop()/pixelTatio;
22976
-
22977
- if (this.ToolbarRect)
22978
- {
22979
- //尺寸变动移动才重新设置DOM
22980
- if (this.ToolbarRect.Left==left && this.ToolbarRect.Top==top &&
22981
- this.ToolbarRect.Width==toolbarWidth && this.ToolbarRect.Height==toolbarHeight/pixelTatio)
22982
- {
22983
- return;
22984
- }
22985
- }
22986
-
22987
- this.ToolbarRect={ Left:left, Top:top, Width:toolbarWidth, Height:toolbarHeight/pixelTatio };
22988
-
22989
- const modifyButton=`<span class='index_param icon iconfont icon-index_param' id='modifyindex' style='cursor:pointer;margin-left:2px;margin-right:2px;' title='调整指标参数'></span>`;
22990
- const changeButton=`<span class='index_change icon iconfont icon-change_index' id='changeindex' style='cursor:pointer;margin-left:2px;margin-right:2px;' title='切换指标'></span>`;
22991
- const overlayButton=`<span class='index_overlay icon iconfont icon-overlay_index' id='overlayindex' style='cursor:pointer;margin-left:2px;margin-right:2px;' title='叠加指标'></span>`;
22992
- const closeButton=`<span class='index_close icon iconfont icon-close' id='closeindex' style='cursor:pointer;margin-left:2px;margin-right:2px;' title='关闭指标窗口'></span>`;
22993
-
22994
- var spanIcon=modifyButton+changeButton+overlayButton;
22995
-
22996
- if (this.Identify!==0 && this.CloseIndex) //第1个窗口不能关闭
22997
- {
22998
- spanIcon+=closeButton;
22999
- }
23000
-
23001
- if (IFrameSplitOperator.IsNonEmptyArray(this.CustomToolbar))
23002
- {
23003
- for(var i=0;i<this.CustomToolbar.length;++i)
23004
- {
23005
- var item=this.CustomToolbar[i];
23006
- spanIcon+=item.Html;
23007
- }
23008
- }
23009
-
23010
- //var scrollPos=GetScrollPosition();
23011
- //left = left+scrollPos.Left;
23012
- //top = top+scrollPos.Top;
23013
- divToolbar.style.left = left + "px";
23014
- divToolbar.style.top = top + "px";
23015
- divToolbar.style.width=toolbarWidth+"px"; //宽度先不调整吧
23016
- divToolbar.style.height=(toolbarHeight/pixelTatio)+'px'; //只调整高度
23017
- divToolbar.innerHTML=spanIcon;
23018
-
23019
- var chart=this.ChartBorder.UIElement.JSChartContainer;
23020
- var identify=this.Identify;
23021
- if (!this.ModifyIndex) //隐藏'改参数'
23022
- $("#"+divToolbar.id+" .index_param").hide();
23023
- else if (typeof(this.ModifyIndexEvent)=='function') //绑定点击事件
23024
- $("#"+divToolbar.id+" .index_param").click(
23025
- {
23026
- Chart:this.ChartBorder.UIElement.JSChartContainer,
23027
- Identify:this.Identify
23028
- },this.ModifyIndexEvent);
23029
-
23030
- if (!this.ChangeIndex) //隐藏'换指标'
23031
- {
23032
- $("#"+divToolbar.id+" .index_change").hide();
23033
- }
23034
- else if (typeof(this.ChangeIndexEvent)=='function')
23035
- {
23036
- $("#"+divToolbar.id+" .index_change").click(
23037
- {
23038
- Chart:this.ChartBorder.UIElement.JSChartContainer,
23039
- Identify:this.Identify,
23040
- IsOverlay:false
23041
- },this.ChangeIndexEvent);
23042
- }
23043
-
23044
- if (!this.OverlayIndex)
23045
- {
23046
- $("#"+divToolbar.id+" .index_overlay").hide();
23047
- }
23048
- else
23049
- {
23050
- $("#"+divToolbar.id+" .index_overlay").click(
23051
- {
23052
- Chart:this.ChartBorder.UIElement.JSChartContainer,
23053
- Identify:this.Identify,
23054
- IsOverlay:true
23055
- },this.ChangeIndexEvent);
23056
- }
23057
-
23058
- $("#"+divToolbar.id+" .index_close").click(
23059
- {
23060
- Chart:this.ChartBorder.UIElement.JSChartContainer,
23061
- Identify:this.Identify
23062
- },
23063
- function(event)
23064
- {
23065
- var hqChart=event.data.Chart;
23066
- var id=event.data.Identify;
23067
- hqChart.RemoveIndexWindow(id);
23068
- });
23069
-
23070
-
23071
- if (IFrameSplitOperator.IsNonEmptyArray(this.CustomToolbar))
23072
- {
23073
- for(var i=0;i<this.CustomToolbar.length;++i)
23074
- {
23075
- var item=this.CustomToolbar[i];
23076
- $("#"+item.ID).click(
23077
- {
23078
- Chart:this.ChartBorder.UIElement.JSChartContainer,
23079
- Identify:this.Identify,
23080
- ID:item.ID
23081
- },item.Click);
23082
- }
23083
- }
23084
-
23085
- divToolbar.style.display = "block";
23086
22951
  }
23087
22952
 
23088
22953
  //手绘,不用DOM,使用DOM太麻烦了
@@ -109615,6 +109480,10 @@ function JSDivFrameToolbar()
109615
109480
  if (item.ID==JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW && frame && frame.CloseIndex===false) continue;
109616
109481
  if (item.ID==JSCHART_BUTTON_ID.INDEX_HELP && frame && frame.IndexHelp===false) continue;
109617
109482
 
109483
+ if (item.ID==JSCHART_BUTTON_ID.MAX_MIN_WINDOW && frame && frame.MaxMinWindow===false) continue;
109484
+ if (item.ID==JSCHART_BUTTON_ID.TITLE_WINDOW && frame && frame.TitleWindow===false) continue;
109485
+ if (item.ID==JSCHART_BUTTON_ID.ADD_INDEX_WINDOW && frame && frame.AddIndexWindow===false) continue;
109486
+
109618
109487
  aryButton.push(item);
109619
109488
  }
109620
109489
 
@@ -109741,7 +109610,7 @@ function JSDivFrameToolbar()
109741
109610
 
109742
109611
  var frame=this.HQChart.Frame.SubFrame[this.FrameID].Frame;
109743
109612
 
109744
- var button={ ID:item.ID, Frame:frame };
109613
+ var button={ ID:item.ID, Frame:frame, FrameID:this.FrameID };
109745
109614
  this.HQChart.ClickFrameButton(button, e);
109746
109615
  }
109747
109616
 
@@ -109832,6 +109701,19 @@ JSDivFrameToolbar.GetDfaultButtons=function(frame)
109832
109701
  ID:JSCHART_BUTTON_ID.OVERLAY_INDEX, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-overlay_index", Tooltip:{ Text:"叠加指标"},
109833
109702
  Span:null,Div:null, TooltipSpan:null
109834
109703
  },
109704
+ {
109705
+ ID:JSCHART_BUTTON_ID.ADD_INDEX_WINDOW, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-add", Tooltip:{ Text:"增加指标窗口"},
109706
+ Span:null,Div:null, TooltipSpan:null
109707
+ },
109708
+
109709
+ {
109710
+ ID:JSCHART_BUTTON_ID.TITLE_WINDOW, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-Title", Tooltip:{ Text:"标题模式"},
109711
+ Span:null,Div:null, TooltipSpan:null
109712
+ },
109713
+ {
109714
+ ID:JSCHART_BUTTON_ID.MAX_MIN_WINDOW, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-maxmize-", Tooltip:{ Text:"放大缩小"},
109715
+ Span:null,Div:null, TooltipSpan:null
109716
+ },
109835
109717
  {
109836
109718
  ID:JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-close", Tooltip:{ Text:"关闭窗口"},
109837
109719
  Span:null,Div:null, TooltipSpan:null
@@ -165922,7 +165804,7 @@ function HQChartScriptWorker()
165922
165804
 
165923
165805
 
165924
165806
 
165925
- var HQCHART_VERSION="1.1.15127";
165807
+ var HQCHART_VERSION="1.1.15137";
165926
165808
 
165927
165809
  function PrintHQChartVersion()
165928
165810
  {