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.
- package/lib/umychart.vue.js +11 -23
- package/package.json +1 -1
- package/src/jscommon/umychart.NetworkFilterTest.js +1 -0
- package/src/jscommon/umychart.js +33 -151
- package/src/jscommon/umychart.testdata.js +1 -0
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +34 -152
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.NetworkFilterTest.vue.js +1 -0
- package/src/jscommon/umychart.vue/umychart.vue.js +34 -152
package/lib/umychart.vue.js
CHANGED
|
@@ -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;}}}
|
|
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
|
-
}
|
|
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);
|
|
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.
|
|
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
|
@@ -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);
|
package/src/jscommon/umychart.js
CHANGED
|
@@ -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.
|
|
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.
|
|
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.
|
|
153778
|
+
var HQCHART_VERSION="1.1.15137";
|
|
153897
153779
|
|
|
153898
153780
|
function PrintHQChartVersion()
|
|
153899
153781
|
{
|
|
@@ -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.
|
|
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.
|
|
165807
|
+
var HQCHART_VERSION="1.1.15137";
|
|
165926
165808
|
|
|
165927
165809
|
function PrintHQChartVersion()
|
|
165928
165810
|
{
|