hqchart 1.1.13204 → 1.1.13210
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 +26 -23
- package/package.json +1 -1
- package/src/jscommon/umychart.complier.js +2 -0
- package/src/jscommon/umychart.js +151 -69
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +154 -70
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +154 -70
package/lib/umychart.vue.js
CHANGED
|
@@ -1482,7 +1482,11 @@ CMD_HIDE_STOCKCHIP_ID:21,CMD_ENABLE_SELECT_RECT_ID:22,//启动区间选择
|
|
|
1482
1482
|
CMD_CHANGE_DAY_COUNT_ID:23,//切换天数
|
|
1483
1483
|
CMD_SHOW_BEFORE_DATA_ID:24,//显示|隐藏集合竞价
|
|
1484
1484
|
CMD_SELECTED_ZOOM_ID:25,//选中放大
|
|
1485
|
-
CMD_SELECTED_SUMMARY_ID:26
|
|
1485
|
+
CMD_SELECTED_SUMMARY_ID:26,//区间统计
|
|
1486
|
+
CMD_SHOW_INDEX_ID:27,//显示隐藏指标
|
|
1487
|
+
CMD_SHOW_OVERLAY_INDEX_ID:28,//显示隐藏叠加指标
|
|
1488
|
+
CMD_DELETE_OVERLAY_INDEX_ID:29,//删除叠加指标
|
|
1489
|
+
CMD_SHOW_OVERLAY_Y_AXIS_ID:30//显示隐藏Y轴叠加指标
|
|
1486
1490
|
};function PhoneDBClick(){this.Start=[];this.Clear=function(){this.Start=[];};this.AddTouchStart=function(x,y,time){if(this.Start.length>0){var item=this.Start[this.Start.length-1];var spanTime=time-item.Time;if(spanTime>0&&spanTime<300){this.Start.push({X:x,Y:y,Time:time});}else{this.Start=[];}}else{this.Start.push({X:x,Y:y,Time:time});}};this.IsVaildDBClick=function(){if(this.Start.length==2)return true;return false;};this.AddTouchEnd=function(time){if(this.Start.length<=0)return;var item=this.Start[this.Start.length-1];var spanTime=time-item.Time;if(spanTime>=0&&spanTime<150){}else{this.Start=[];}};}/*
|
|
1487
1491
|
图形控件
|
|
1488
1492
|
*/function JSChartContainer(uielement,OffscreenElement,cacheElement){var _this5=this;this.ClassName='JSChartContainer';var _self=this;this.Frame;//框架画法
|
|
@@ -1979,7 +1983,11 @@ if(this.ChangePriceGap&&IFrameSplitOperator.IsBool(aryArgs[0])){if(aryArgs[0]==f
|
|
|
1979
1983
|
this.SetSizeChange(true);this.Draw();break;case JSCHART_MENU_ID.CMD_HIDE_DRAWTOOL_ID:var drawTools=this.GetExtendChartByClassName('DrawToolsButton');if(drawTools){var toolsWidth=drawTools.Chart.Width;var toolsIndex=parseInt(drawTools.Index);for(var i=toolsIndex+1;i<this.ExtendChartPaint.length;++i)//在画图工具后面创建的需要减去工具的宽度
|
|
1980
1984
|
{var item=this.ExtendChartPaint[i];if(item.ClassName=='StockChip'){item.Left-=toolsWidth;}}this.DeleteExtendChart(drawTools);this.Frame.ChartBorder.Right-=toolsWidth;this.SetSizeChange(true);this.Draw();}break;case JSCHART_MENU_ID.CMD_SHOW_STOCKCHIP_ID:var option={Name:'筹码分布',ShowType:1,Width:230};var extendChart=this.CreateExtendChart(option.Name,option);//创建扩展图形
|
|
1981
1985
|
this.SetSizeChange(true);this.Draw();break;case JSCHART_MENU_ID.CMD_HIDE_STOCKCHIP_ID:var StockChip=chart.GetExtendChartByClassName('StockChip');if(StockChip){var chipWidth=StockChip.Chart.Width;var chipIndex=parseInt(StockChip.Index);for(var i=chipIndex+1;i<this.ExtendChartPaint.length;++i)//在筹码后面创建的需要筹码的宽度
|
|
1982
|
-
{var item=this.ExtendChartPaint[i];if(item.ClassName=='DrawToolsButton'){item.Left-=chipWidth;}}this.DeleteExtendChart(StockChip);this.Frame.ChartBorder.Right-=chipWidth;this.SetSizeChange(true);this.Draw();}break;case JSCHART_MENU_ID.CMD_ENABLE_SELECT_RECT_ID:if(IFrameSplitOperator.IsBool(srcParam))this.EnableSelectRect=srcParam;break;case JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID:if(this.ChangeDayCount&¶m!=null)this.ChangeDayCount(param);break;case JSCHART_MENU_ID.CMD_SHOW_BEFORE_DATA_ID:if(this.ShowCallAuctionData&&IFrameSplitOperator.IsBool(srcParam))this.ShowCallAuctionData({Left:srcParam,MultiDay:{Left:srcParam}});break;case JSCHART_MENU_ID.CMD_SELECTED_ZOOM_ID:if(this.ShowSelectData&&srcParam)this.ShowSelectData(srcParam);break;case JSCHART_MENU_ID.CMD_SELECTED_SUMMARY_ID:var dlg=new KLineSelectRectDialog(this.DivElement);dlg.DoModal(srcParam);break;
|
|
1986
|
+
{var item=this.ExtendChartPaint[i];if(item.ClassName=='DrawToolsButton'){item.Left-=chipWidth;}}this.DeleteExtendChart(StockChip);this.Frame.ChartBorder.Right-=chipWidth;this.SetSizeChange(true);this.Draw();}break;case JSCHART_MENU_ID.CMD_ENABLE_SELECT_RECT_ID:if(IFrameSplitOperator.IsBool(srcParam))this.EnableSelectRect=srcParam;break;case JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID:if(this.ChangeDayCount&¶m!=null)this.ChangeDayCount(param);break;case JSCHART_MENU_ID.CMD_SHOW_BEFORE_DATA_ID:if(this.ShowCallAuctionData&&IFrameSplitOperator.IsBool(srcParam))this.ShowCallAuctionData({Left:srcParam,MultiDay:{Left:srcParam}});break;case JSCHART_MENU_ID.CMD_SELECTED_ZOOM_ID:if(this.ShowSelectData&&srcParam)this.ShowSelectData(srcParam);break;case JSCHART_MENU_ID.CMD_SELECTED_SUMMARY_ID:var dlg=new KLineSelectRectDialog(this.DivElement);dlg.DoModal(srcParam);break;case JSCHART_MENU_ID.CMD_SHOW_INDEX_ID://显示隐藏指标 [0]=windowIndex [1]=0=自动 1=隐藏 2=显示
|
|
1987
|
+
if(param==null||!IFrameSplitOperator.IsNumber(aryArgs[1]))return false;var windowIndex=param,showType=aryArgs[1];var script=this.WindowIndex[windowIndex];if(!script)return false;if(showType==1)script.IsShow=false;else if(showType==2)script.IsShow=true;else script.IsShow=!script.IsShow;this.UpdateWindowIndex(windowIndex);break;case JSCHART_MENU_ID.CMD_SHOW_OVERLAY_INDEX_ID://显示隐藏叠加指标 [0]=indexGuid [1]=0=自动 1=隐藏 2=显示
|
|
1988
|
+
if(!srcParam||!IFrameSplitOperator.IsNumber(aryArgs[1]))return false;var indexGuid=srcParam,showType=aryArgs[1];var overlay=this.GetOverlayIndexByIdentify(indexGuid);if(!overlay||!overlay.OverlayItem||!overlay.OverlayItem.Script)return false;var script=overlay.OverlayItem.Script;if(showType==1)script.IsShow=false;else if(showType==2)script.IsShow==true;else script.IsShow=!script.IsShow;this.UpdateOverlayIndex(indexGuid);break;case JSCHART_MENU_ID.CMD_DELETE_OVERLAY_INDEX_ID:if(srcParam&&this.DeleteOverlayWindowsIndex)this.DeleteOverlayWindowsIndex(srcParam);break;case JSCHART_MENU_ID.CMD_SHOW_OVERLAY_Y_AXIS_ID:if(!srcParam||!IFrameSplitOperator.IsNumber(aryArgs[1]))return false;if(!this.GetOverlayIndexByIdentify)return false;var indexGuid=srcParam,showType=aryArgs[1];var finder=this.GetOverlayIndexByIdentify(indexGuid);if(!finder||!finder.OverlayItem)return false;var frame=finder.OverlayItem.Frame;if(showType==1)frame.IsShow=false;else if(showType==2)frame.IsShow==true;else frame.IsShow=!frame.IsShow;this.UpdataDataoffset();//更新数据偏移
|
|
1989
|
+
this.UpdateFrameMaxMin();//调整坐标最大 最小值
|
|
1990
|
+
this.Draw();break;}};this.GetShowIndexMenuData=function(windowIndex,showType){var script=this.WindowIndex[windowIndex];if(!script)return null;var data={Name:script.IsShow?"隐藏指标":"显示指标",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_INDEX_ID,Args:[windowIndex,0]}};return data;};this.GetShowOverlayIndexMenuData=function(indexGuid,showType){var overlay=this.GetOverlayIndexByIdentify(indexGuid);if(!overlay||!overlay.OverlayItem||!overlay.OverlayItem.Script)return null;var script=overlay.OverlayItem.Script;var data={Name:script.IsShow?"隐藏指标":"显示指标",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_OVERLAY_INDEX_ID,Args:[indexGuid,0]}};return data;};this.GetShowOverlayIndexYAxisMenuData=function(indexGuid,showType){var overlay=this.GetOverlayIndexByIdentify(indexGuid);if(!overlay||!overlay.OverlayItem||!overlay.OverlayItem.Script)return null;var frame=overlay.OverlayItem.Frame;var data={Name:frame.IsShow?"隐藏Y轴":"显示Y轴",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_OVERLAY_Y_AXIS_ID,Args:[indexGuid,0]}};return data;};//点击右键菜单
|
|
1983
1991
|
this.OnClickRightMenu=function(data){JSConsole.Chart.Log('[JSChartContainer::OnClickRightMenu] ',data);if(!data||!data.Data)return;var cmdID=data.Data.ID;//命令ID
|
|
1984
1992
|
var aryArgs=data.Data.Args;//参数
|
|
1985
1993
|
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_MENU_COMMAND);//回调通知外部
|
|
@@ -5805,7 +5813,7 @@ if(left+textWidth>right)break;this.Canvas.fillText(text,left,bottom,textWidth);l
|
|
|
5805
5813
|
}};this.OnDrawEventCallback=function(drawData){if(!this.OnDrawEvent||!this.OnDrawEvent.Callback)return;var data={Draw:drawData,Name:'DynamicChartTitlePainting'};this.OnDrawEvent.Callback(this.OnDrawEvent,data,this);};this.GetFontHeight=function(font){return GetFontHeight(this.Canvas,font,"擎");};//指标名字按钮
|
|
5806
5814
|
this.DrawNameButton=function(rtButton,moveonPoint,mouseStatus){var pixelRatio=GetDevicePixelRatio();var title=this.Title;if(this.IsShowNameArrow)title+='▼';var textWidth=this.Canvas.measureText(title).width;var bgHeight=this.Canvas.measureText("擎").width+4*pixelRatio;var roundRadius=this.BorderRoundRadius*pixelRatio;var bgWidth=textWidth+4*pixelRatio+roundRadius*2;rtButton.Top=rtButton.YCenter-bgHeight/2-1,rtButton.Width=bgWidth;rtButton.Height=bgHeight;rtButton.Right=rtButton.Left+rtButton.Width;rtButton.Bottom=rtButton.Top+rtButton.Height;var borderColor=this.BGBorderColor;if(moveonPoint&&moveonPoint.X>=rtButton.Left&&moveonPoint.X<rtButton.Right&&moveonPoint.Y>=rtButton.Top&&moveonPoint.Y<=rtButton.Bottom){if(this.BGBorderMoveOnColor)borderColor=this.BGBorderMoveOnColor;if(mouseStatus){var btnItem={ID:JSCHART_BUTTON_ID.INDEX_NAME_BUTTON};mouseStatus.MouseOnToolbar={ID:"IndexNameButton",Rect:rtButton,Item:btnItem,Frame:this.Frame,Point:{X:moveonPoint.X,Y:moveonPoint.Y}};}}if(this.NameButtonStyle==1){this.Canvas.beginPath();this.Canvas.roundRect(ToFixedPoint(rtButton.Left),ToFixedPoint(rtButton.Top),ToFixedRect(rtButton.Width),ToFixedRect(rtButton.Height),[roundRadius]);this.Canvas.closePath();this.Canvas.fillStyle=this.BGColor;this.Canvas.fill();if(borderColor){this.Canvas.strokeStyle=borderColor;this.Canvas.stroke();}}else{this.Canvas.fillStyle=this.BGColor;this.Canvas.fillRect(rtButton.Left,rtButton.Top,rtButton.Width,rtButton.Height);if(borderColor){this.Canvas.strokeStyle=borderColor;this.Canvas.strokeRect(ToFixedPoint(rtButton.Left),ToFixedPoint(rtButton.Top),ToFixedRect(rtButton.Width),ToFixedRect(rtButton.Height),[roundRadius]);}}this.Canvas.fillStyle=this.TitleColor;this.Canvas.fillText(title,rtButton.Left+roundRadius+2*pixelRatio,rtButton.YCenter,textWidth);};//绘制按钮
|
|
5807
5815
|
this.DrawButton=function(item,rtButton,moveonPoint,mouseStatus){var size=item.Style.Size;if(IFrameSplitOperator.IsNumber(item.Style.YMoveOffset))rtButton.YCenter+=item.Style.YMoveOffset;var font=size+'px '+item.Style.Family;rtButton.Top=rtButton.YCenter-size/2;rtButton.Width=size+item.Style.MerginLeft;rtButton.Height=size;rtButton.Bottom=rtButton.Top+rtButton.Height;rtButton.Right=rtButton.Left+rtButton.Width;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={ID:"TitleButton",Rect:rtButton,Item:item,Frame:this.Frame,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,rtButton.Left,rtButton.YCenter);return true;};this.DrawToolbar=function(toolbarInfo,moveonPoint,mouseStatus){toolbarInfo.Width=0;if(!this.Frame||!this.Frame.GetLeftToolbar)return;var aryButton=this.Frame.GetLeftToolbar();if(!IFrameSplitOperator.IsNonEmptyArray(aryButton))return;if(this.Frame.IsHScreen===true){}else{var border=this.Frame.GetBorder();var right=border.Right-3;var left=border.Left+3;var yCenter=toolbarInfo.YCenter;for(var i=0;i<aryButton.length;++i){var item=aryButton[i];var rtButton={Left:left,YCenter:yCenter};this.DrawButton(item,rtButton,moveonPoint,mouseStatus);this.Buttons.push({ID:item.ID,Rect:rtButton,FrameID:this.Frame.Identify,Type:0,Data:item.Data});//Type 0=主图按钮 1=附图按钮 2=主图指标名字按钮
|
|
5808
|
-
left=rtButton.Right;toolbarInfo.Width+=rtButton.Width;}if(toolbarInfo.Width>0)toolbarInfo.Width+=3;}};this.DrawOverlayToolbar=function(overlayItem,toolbarInfo,moveonPoint,mouseStatus){toolbarInfo.Width=0;if(!overlayItem||!overlayItem.Frame||!overlayItem.Frame.GetLeftToolbar)return;var frame=overlayItem.Frame;var aryButton=frame.GetLeftToolbar({Overlay:overlayItem,OverlayID:toolbarInfo.ID});if(!IFrameSplitOperator.IsNonEmptyArray(aryButton))return;if(this.Frame.IsHScreen===true){}else{var border=frame.GetBorder();var right=border.Right-3;var left=border.Left+3;var yCenter=toolbarInfo.YCenter;for(var i=0;i<aryButton.length;++i){var item=aryButton[i];var rtButton={Left:left,YCenter:yCenter};this.DrawButton(item,rtButton,moveonPoint,mouseStatus);this.Buttons.push({ID:item.ID,Rect:rtButton,FrameID:this.Frame.Identify,Type:1,OverlayID:toolbarInfo.ID,Title:overlayItem.Title});left=rtButton.Right;toolbarInfo.Width+=rtButton.Width;}if(toolbarInfo.Width>0)toolbarInfo.Width+=3;}};this.PtInButtons=function(x,y){for(var i=0;i<this.Buttons.length;++i){var item=this.Buttons[i];if(!item.Rect)continue;var rect=item.Rect;if(x>rect.Left&&x<rect.Right&&y>rect.Top&&y<rect.Bottom){var result={ID:item.ID,Rect:rect,FrameID:item.FrameID,Type:item.Type,Data:item.Data};if(item.Type==1){result.Title=item.Title;result.OverlayID=item.OverlayID;}return result;}}return null;};}//画图工具
|
|
5816
|
+
left=rtButton.Right;toolbarInfo.Width+=rtButton.Width;}if(toolbarInfo.Width>0)toolbarInfo.Width+=3;}};this.DrawOverlayToolbar=function(overlayItem,toolbarInfo,moveonPoint,mouseStatus){toolbarInfo.Width=0;if(!overlayItem||!overlayItem.Frame||!overlayItem.Frame.GetLeftToolbar)return;var frame=overlayItem.Frame;var aryButton=frame.GetLeftToolbar({Overlay:overlayItem,OverlayID:toolbarInfo.ID});if(!IFrameSplitOperator.IsNonEmptyArray(aryButton))return;if(this.Frame.IsHScreen===true){}else{var border=frame.GetBorder();var right=border.Right-3;var left=border.Left+3;var yCenter=toolbarInfo.YCenter;for(var i=0;i<aryButton.length;++i){var item=aryButton[i];var rtButton={Left:left,YCenter:yCenter};this.DrawButton(item,rtButton,moveonPoint,mouseStatus);this.Buttons.push({ID:item.ID,Rect:rtButton,FrameID:this.Frame.Identify,Type:1,OverlayID:toolbarInfo.ID,Title:overlayItem.Title,Data:item.Data});left=rtButton.Right;toolbarInfo.Width+=rtButton.Width;}if(toolbarInfo.Width>0)toolbarInfo.Width+=3;}};this.PtInButtons=function(x,y){for(var i=0;i<this.Buttons.length;++i){var item=this.Buttons[i];if(!item.Rect)continue;var rect=item.Rect;if(x>rect.Left&&x<rect.Right&&y>rect.Top&&y<rect.Bottom){var result={ID:item.ID,Rect:rect,FrameID:item.FrameID,Type:item.Type,Data:item.Data};if(item.Type==1){result.Title=item.Title;result.OverlayID=item.OverlayID;}return result;}}return null;};}//画图工具
|
|
5809
5817
|
function IChartDrawPicture(){this.Frame;this.Canvas;this.Point=new Array();//画图的点
|
|
5810
5818
|
this.Value=new Array();//XValue,YValue
|
|
5811
5819
|
this.LinePoint=[];this.PointCount=2;//画点的个数
|
|
@@ -6010,8 +6018,10 @@ this.LineWidth=1;this.Precision=2;//小数位数
|
|
|
6010
6018
|
this.ValueTextColor='rgb(250,250,250)';this.IsShowCorssCursor=true;//画的时候是否显示十字光标
|
|
6011
6019
|
this.GetLabelCallback;//绘制标题回调函数
|
|
6012
6020
|
this.PointCount=1;this.ClassName='ChartDrawHLine';this.Font=14*GetDevicePixelRatio()+"px 微软雅黑";this.TextFont=12*GetDevicePixelRatio()+"px 微软雅黑";this.RightSpaceWidth=50;this.ButtonPosition=0;//按钮位置, 0=价格后面, 1=价格上面
|
|
6013
|
-
this.ButtonBGColor='rgb(190,190,190)';this.ButtonSpace=3;this.TextMargin={Left:0,Right:0};this.Button={CloseIcon:{Text:'\uE62B',Color:'rgb(255,255,255)',Family:"iconfont",Size:16,ID:JSCHART_BUTTON_ID.DRAW_PICTURE_DELETE,TooltipText:null},SettingIcon:{Text:'\uE623',Color:'rgb(255,255,255)',Family:"iconfont",Size:16,ID:JSCHART_BUTTON_ID.DRAW_PICTURE_SETTING,TooltipText:null//修改ID, Text , TooltipText 可以外部定制按钮
|
|
6014
|
-
}};this.
|
|
6021
|
+
this.ButtonBGColor='rgb(190,190,190)';this.ButtonSpace=3;this.TextMargin={Left:0,Right:0};this.Button={CloseIcon:{Text:'\uE62B',Color:'rgb(255,255,255)',Family:"iconfont",Size:16,ID:JSCHART_BUTTON_ID.DRAW_PICTURE_DELETE,TooltipText:null,Margin:{Left:2,Right:2}},SettingIcon:{Text:'\uE623',Color:'rgb(255,255,255)',Family:"iconfont",Size:16,ID:JSCHART_BUTTON_ID.DRAW_PICTURE_SETTING,TooltipText:null,Margin:{Left:2,Right:2}//修改ID, Text , TooltipText 可以外部定制按钮
|
|
6022
|
+
}};this.CustomButton=[];//自定义的按钮 { Text:'\ue62b', Color:'rgb(255,255,255)', Family:"iconfont", Size:16, ID:JSCHART_BUTTON_ID.DRAW_PICTURE_BUTTON_1, TooltipText:null }
|
|
6023
|
+
this.AryShowButton=[];//需要显示的按钮 { Data:, Width }
|
|
6024
|
+
this.AryButton=[];this.ExtendData;//扩展数据
|
|
6015
6025
|
this.ShowPriceTextConfig={IsShow:[false,false,true],//[0]=left内 [1]=right内 [2]=right外
|
|
6016
6026
|
Font:[12*GetDevicePixelRatio()+'px \u5FAE\u8F6F\u96C5\u9ED1',12*GetDevicePixelRatio()+'px \u5FAE\u8F6F\u96C5\u9ED1']};//内部变量
|
|
6017
6027
|
this.ColseButtonSize=0;this.SettingButtonSize=0;this.ButtonBGWidth=0;this.SetOption=function(option){if(this.Super_SetOption)this.Super_SetOption(option);if(option){if(option.GetLabelCallback){this.GetLabelCallback=option.GetLabelCallback;}if(IFrameSplitOperator.IsNumber(option.Precision))this.Precision=option.Precision;if(IFrameSplitOperator.IsNumber(option.Precision))this.Precision=option.Precision;if(option.Font)this.Font=option.Font;if(option.ValueTextColor)this.ValueTextColor=option.ValueTextColor;if(IFrameSplitOperator.IsNumber(option.ButtonPosition))this.ButtonPosition=option.ButtonPosition;if(IFrameSplitOperator.IsNumber(option.RightSpaceWidth))this.RightSpaceWidth=option.RightSpaceWidth;if(option.Button){var item=option.Button;if(item.CloseIcon)this.Button.CloseIcon=CloneData(item.CloseIcon);else if(item.CloseIcon===null)this.Button.CloseIcon=null;if(item.SettingIcon)this.Button.SettingIcon=CloneData(item.SettingIcon);else if(item.SettingIcon===null)this.Button.SettingIcon=null;}if(option.ExtendData)this.ExtendData=option.ExtendData;if(IFrameSplitOperator.IsNonEmptyArray(option.IsShowPriceText)){for(var i=0;i<option.IsShowPriceText.length&&i<3;++i){var value=option.IsShowPriceText[i];if(IFrameSplitOperator.IsBool(value))this.ShowPriceTextConfig.IsShow[i]=value;}}if(option.TextMargin){var item=option.TextMargin;if(IFrameSplitOperator.IsNumber(item.Left))this.TextMargin.Left=item.Left;if(IFrameSplitOperator.IsNumber(item.Right))this.TextMargin.Right=item.Right;}}};this.ExportStorageData=function(){var storageData;if(this.Super_ExportStorageData){storageData=this.Super_ExportStorageData();if(this.Label)storageData.Label=this.Label;}return storageData;};this.IsPointIn=this.IsPointIn_XYValue_Line;/*
|
|
@@ -6023,27 +6033,20 @@ this.ColseButtonSize=0;this.SettingButtonSize=0;this.ButtonBGWidth=0;this.SetOpt
|
|
|
6023
6033
|
return this.PointRange(drawPoint);
|
|
6024
6034
|
}
|
|
6025
6035
|
*/this.IsDrawMain=function()//选中绘制在动态绘图上, 没有选中绘制在背景上
|
|
6026
|
-
{if(!this.GetActiveDrawPicture)return true;var active=this.GetActiveDrawPicture();if(active.Select.Guid==this.Guid)return false;return true;};this.MainDraw=function(){this.Draw();}
|
|
6036
|
+
{if(!this.GetActiveDrawPicture)return true;var active=this.GetActiveDrawPicture();if(active.Select.Guid==this.Guid)return false;return true;};this.MainDraw=function(){this.Draw();};//获取需要显示的按钮 系统按钮+自定义按钮
|
|
6037
|
+
this.GetShowButton=function(){var aryButton=[];var item=this.Button.SettingIcon;if(item&&item.Text)aryButton.push({Data:item,Width:null});item=this.Button.CloseIcon;if(item&&item.Text)aryButton.push({Data:item,Width:null});if(IFrameSplitOperator.IsNonEmptyArray(this.CustomButton)){for(var i=0;i<this.CustomButton.length;++i){item=this.CustomButton[i];if(item&&item.Text)aryButton.push({Data:item,Width:null});}}return aryButton;};this.Draw=function(moveonPoint,mouseStatus){this.AryShowButton=[];this.LinePoint=[];this.AryButton=[];this.ColseButtonSize=0;this.SettingButtonSize=0;this.ButtonBGWidth=0;if(this.IsFrameMinSize())return;if(!this.IsShow)return;var drawPoint=this.CalculateDrawPoint();if(!drawPoint||drawPoint.length!=1)return;if(!this.Frame)return;if(this.Value.length!=1)return;if(!this.IsYValueInFrame(this.Value[0].YValue))return null;var isHScreen=this.Frame.IsHScreen;var left=this.Frame.ChartBorder.GetLeft();var right=this.Frame.ChartBorder.GetRight();if(isHScreen){left=this.Frame.ChartBorder.GetTop();right=this.Frame.ChartBorder.GetBottom();}this.ClipFrame();//画线段
|
|
6027
6038
|
this.Canvas.strokeStyle=this.LineColor;this.SetLineWidth();this.Canvas.beginPath();if(isHScreen){this.Canvas.moveTo(drawPoint[0].X,left);this.Canvas.lineTo(drawPoint[0].X,right);}else{this.Canvas.moveTo(left,ToFixedPoint(drawPoint[0].Y));this.Canvas.lineTo(right,ToFixedPoint(drawPoint[0].Y));}this.Canvas.stroke();this.RestoreLineWidth();//画水平线段
|
|
6028
|
-
var line={Start:new Point(),End:new Point()};if(isHScreen){line.Start.X=drawPoint[0].X;line.Start.Y=left;line.End.X=drawPoint[0].X;line.End.Y=right;}else{line.Start.X=left;line.Start.Y=drawPoint[0].Y;line.End.X=right;line.End.Y=drawPoint[0].Y;}this.LinePoint.push(line);var yValue=this.Frame.GetYData(drawPoint[0].Y);var strPrice=yValue.toFixed(this.Precision);if(this.ShowPriceTextConfig.IsShow[0]){this.DrawPriceText(strPrice,line.Start,line.End,0);}if(this.ShowPriceTextConfig.IsShow[1]){this.DrawPriceText(strPrice,line.Start,line.End,1);}var labInfo;if(this.GetLabelCallback)labInfo=this.GetLabelCallback(this)
|
|
6039
|
+
var line={Start:new Point(),End:new Point()};if(isHScreen){line.Start.X=drawPoint[0].X;line.Start.Y=left;line.End.X=drawPoint[0].X;line.End.Y=right;}else{line.Start.X=left;line.Start.Y=drawPoint[0].Y;line.End.X=right;line.End.Y=drawPoint[0].Y;}this.LinePoint.push(line);var yValue=this.Frame.GetYData(drawPoint[0].Y);var strPrice=yValue.toFixed(this.Precision);if(this.ShowPriceTextConfig.IsShow[0]){this.DrawPriceText(strPrice,line.Start,line.End,0);}if(this.ShowPriceTextConfig.IsShow[1]){this.DrawPriceText(strPrice,line.Start,line.End,1);}var labInfo;if(this.GetLabelCallback)labInfo=this.GetLabelCallback(this);this.AryShowButton=this.GetShowButton();//获取按钮
|
|
6040
|
+
//描述信息
|
|
6029
6041
|
if(labInfo)this.DrawLab(labInfo,drawPoint[0].Y);//画中心点
|
|
6030
6042
|
var xCenter=left+(right-left)/2;var point={X:xCenter,Y:drawPoint[0].Y};this.DrawPoint([point]);this.Canvas.restore();//外部右侧显示价格
|
|
6031
6043
|
if(this.ShowPriceTextConfig.IsShow[2]){var rtDraw={};this.CalculateButtonSize();this.DrawValueText(drawPoint[0].Y,rtDraw,labInfo);if(labInfo)this.DrawRightLab(labInfo,rtDraw);if(labInfo)this.DrawCustomHLine(labInfo,drawPoint[0].Y);}//鼠标是否在按钮上
|
|
6032
6044
|
if(moveonPoint&&mouseStatus){for(var i=0;i<this.AryButton.length;++i){var item=this.AryButton[i];var rtButton=item.Rect;if(moveonPoint.X>=rtButton.Left&&moveonPoint.X<rtButton.Right&&moveonPoint.Y>=rtButton.Top&&moveonPoint.Y<=rtButton.Bottom){mouseStatus.MouseOnToolbar={Rect:rtButton,Item:item,Frame:this.Frame,Point:{X:moveonPoint.X,Y:moveonPoint.Y}};break;}}}};this.CalculateLabSize=function(labInfo){this.Canvas.textAlign="left";this.Canvas.textBaseline="top";this.Canvas.font=this.TextFont;var lineHeight=this.Canvas.measureText("擎").width+2;var maxNameWidth=0,maxTextWidth=0;var lineCount=0;var lineSpace=0;if(IFrameSplitOperator.IsNumber(labInfo.LineSpace))lineSpace=labInfo.LineSpace;var maxNameWidth=0,maxTextWidth=0;var lineCount=0;var maxWidth=0;for(var i=0;i<labInfo.AryText.length;++i){var item=labInfo.AryText[i];item.NameWidth=0;item.TextWidth=0;if(item.Name)item.NameWidth=this.Canvas.measureText(item.Name).width+2;if(item.Text)item.TextWidth=this.Canvas.measureText(item.Text).width+2;if(maxNameWidth<item.NameWidth)maxNameWidth=item.NameWidth;if(maxTextWidth<item.TextWidth)maxTextWidth=item.TextWidth;var itemWidth=item.NameWidth+item.TextWidth;if(maxWidth<itemWidth)maxWidth=itemWidth;++lineCount;}var size={Width:maxWidth,Height:lineCount*(lineHeight+lineSpace)+lineSpace,NameWidth:maxNameWidth,TextWidth:maxTextWidth,LineHeight:lineHeight};return size;};this.DrawLab=function(labInfo,y){if(!labInfo)return;if(!IFrameSplitOperator.IsNonEmptyArray(labInfo.AryText))return;if(labInfo.Position===2)return;var left=this.Frame.ChartBorder.GetLeft();var right=this.Frame.ChartBorder.GetRight();var labSize=this.CalculateLabSize(labInfo);var drawLeft=right-labSize.Width;var drawTop=y-labSize.Height-1;//背景色
|
|
6033
6045
|
if(labInfo.BGColor){this.Canvas.fillStyle=labInfo.BGColor;var rtTop=y-labSize.Height-4;this.Canvas.fillRect(ToFixedRect(drawLeft),ToFixedRect(rtTop),ToFixedRect(right+drawLeft),ToFixedRect(y-rtTop));}var yText=drawTop;for(var i=0;i<labInfo.AryText.length;++i){var item=labInfo.AryText[i];if(item.Name){this.Canvas.fillStyle=item.NameColor;this.Canvas.fillText(item.Name,drawLeft+1,yText+1);}if(item.Text){this.Canvas.fillStyle=item.TextColor;this.Canvas.fillText(item.Text,drawLeft+labSize.NameWidth+1,yText+1);}yText+=labSize.LineHeight;}};this.DrawRightLab=function(labInfo,rtLeftDraw){if(!labInfo)return;if(!IFrameSplitOperator.IsNonEmptyArray(labInfo.AryText))return;if(labInfo.Position!=2)return;var labSize=this.CalculateLabSize(labInfo);var drawLeft=rtLeftDraw.Right-labSize.Width;if(drawLeft<rtLeftDraw.Left)drawLeft=rtLeftDraw.Left;var drawRight=drawLeft+labSize.Width;var drawTop=rtLeftDraw.Bottom;var lineSpace=0;if(IFrameSplitOperator.IsNumber(labInfo.LineSpace))lineSpace=labInfo.LineSpace;//背景色
|
|
6034
|
-
if(labInfo.BGColor){this.Canvas.fillStyle=labInfo.BGColor;var rtTop=drawTop;this.Canvas.fillRect(ToFixedRect(drawLeft),ToFixedRect(rtTop),ToFixedRect(labSize.Width),ToFixedRect(labSize.Height));}var yText=drawTop+1+lineSpace;this.Canvas.textBaseline="top";for(var i=0;i<labInfo.AryText.length;++i){var item=labInfo.AryText[i];if(item.Name){this.Canvas.textAlign="left";this.Canvas.fillStyle=item.NameColor;this.Canvas.fillText(item.Name,drawLeft+1,yText+1);}if(item.Text){this.Canvas.textAlign="right";this.Canvas.fillStyle=item.TextColor;this.Canvas.fillText(item.Text,drawRight-1,yText+1);}yText+=labSize.LineHeight+lineSpace;}};this.DrawCustomHLine=function(labInfo,yLine){if(!labInfo)return;if(!IFrameSplitOperator.IsNonEmptyArray(labInfo.AryLine))return;var left=this.Frame.ChartBorder.GetLeft();var right=this.Frame.ChartBorder.GetRight();var pixelRatio=GetDevicePixelRatio();var yMax=yLine,yMin=yLine;for(var i=0;i<labInfo.AryLine.length;++i){var item=labInfo.AryLine[i];if(!IFrameSplitOperator.IsNumber(item.Value))continue;var y=this.Frame.GetYFromData(item.Value);var yFixed=ToFixedPoint(y);var xRight=right;if(IFrameSplitOperator.
|
|
6035
|
-
|
|
6036
|
-
|
|
6037
|
-
|
|
6038
|
-
var xLine=rtButton.Right+this.ButtonSpace/2;
|
|
6039
|
-
xLine=ToFixedPoint(xLine);
|
|
6040
|
-
this.Canvas.strokeStyle=this.ButtonSplitLineColor;
|
|
6041
|
-
this.Canvas.beginPath();
|
|
6042
|
-
this.Canvas.moveTo(xLine,rtButton.Top);
|
|
6043
|
-
this.Canvas.lineTo(xLine,rtButton.Bottom);
|
|
6044
|
-
this.Canvas.stroke();
|
|
6045
|
-
}
|
|
6046
|
-
*/left=rtButton.Right+this.ButtonSpace;}if(this.Button.CloseIcon&&this.Button.CloseIcon.Text){var rtButton={Left:left,Top:drawTop,Width:this.ColseButtonSize,Height:drawHeight};rtButton.Right=rtButton.Left+rtButton.Width;rtButton.Bottom=rtButton.Top+rtButton.Height;var yCenter=rtButton.Top+rtButton.Height/2;var xCenter=rtButton.Left+rtButton.Width/2;var icon=this.Button.CloseIcon;this.Canvas.font=icon.Size*pixelRatio+'px '+icon.Family;this.Canvas.textAlign="center";this.Canvas.textBaseline="middle";this.Canvas.fillStyle=icon.Color;this.Canvas.fillText(this.Button.CloseIcon.Text,xCenter,yCenter);this.AryButton.push({Rect:rtButton,ID:icon.ID,TooltipText:icon.TooltipText});left=rtButton.Right;}rtDraw.Right=rtBG.Right;};this.PtInButtons=function(x,y){for(var i=0;i<this.AryButton.length;++i){var item=this.AryButton[i];if(!item.Rect)continue;var rect=item.Rect;this.Canvas.beginPath();this.Canvas.rect(rect.Left,rect.Top,rect.Width,rect.Height);if(this.Canvas.isPointInPath(x,y)){return{ID:item.ID,Rect:rect};}}return null;};}//趋势线
|
|
6046
|
+
if(labInfo.BGColor){this.Canvas.fillStyle=labInfo.BGColor;var rtTop=drawTop;this.Canvas.fillRect(ToFixedRect(drawLeft),ToFixedRect(rtTop),ToFixedRect(labSize.Width),ToFixedRect(labSize.Height));}var yText=drawTop+1+lineSpace;this.Canvas.textBaseline="top";for(var i=0;i<labInfo.AryText.length;++i){var item=labInfo.AryText[i];if(item.Name){this.Canvas.textAlign="left";this.Canvas.fillStyle=item.NameColor;this.Canvas.fillText(item.Name,drawLeft+1,yText+1);}if(item.Text){this.Canvas.textAlign="right";this.Canvas.fillStyle=item.TextColor;this.Canvas.fillText(item.Text,drawRight-1,yText+1);}yText+=labSize.LineHeight+lineSpace;}};this.DrawCustomHLine=function(labInfo,yLine){if(!labInfo)return;if(!IFrameSplitOperator.IsNonEmptyArray(labInfo.AryLine))return;var left=this.Frame.ChartBorder.GetLeft();var right=this.Frame.ChartBorder.GetRight();var pixelRatio=GetDevicePixelRatio();var yMax=yLine,yMin=yLine;for(var i=0;i<labInfo.AryLine.length;++i){var item=labInfo.AryLine[i];if(!IFrameSplitOperator.IsNumber(item.Value))continue;if(item.Width<0)continue;var y=this.Frame.GetYFromData(item.Value);var yFixed=ToFixedPoint(y);var xRight=right;if(IFrameSplitOperator.IsPlusNumber(item.Width)){if(item.Width<1)xRight=left+item.Width*(right-left);//0.3 百分比
|
|
6047
|
+
else xRight=left+item.Width*pixelRatio;//>1 实际数值就是长度
|
|
6048
|
+
}if(item.Color)this.Canvas.strokeStyle=item.Color;else this.Canvas.strokeStyle=this.LineColor;this.Canvas.beginPath();this.Canvas.moveTo(left,yFixed);this.Canvas.lineTo(xRight,yFixed);this.Canvas.stroke();if(yMax<yFixed)yMax=yFixed;if(yMin>yFixed)yMin=yFixed;}if(yMax!=yMin&&labInfo.VLine){var item=labInfo.VLine;var x=left+20*pixelRatio;if(IFrameSplitOperator.IsNumber(item.XOffset))x=left+item.XOffset*pixelRatio;x=ToFixedPoint(x);if(item.Color)this.Canvas.strokeStyle=item.Color;else this.Canvas.strokeStyle=this.LineColor;this.Canvas.beginPath();this.Canvas.moveTo(x,yMax);this.Canvas.lineTo(x,yMin);this.Canvas.stroke();}};this.DrawValueText=function(y,rtDraw,labInfo){var left=this.Frame.ChartBorder.GetLeft();var right=this.Frame.ChartBorder.GetRight();if(this.RightSpaceWidth>0){this.Canvas.strokeStyle=this.LineColor;this.Canvas.beginPath();this.Canvas.moveTo(right,ToFixedPoint(y));this.Canvas.lineTo(right+this.RightSpaceWidth,ToFixedPoint(y));this.Canvas.stroke();}var yValue=this.Frame.GetYData(y);var strValue=yValue.toFixed(this.Precision);if(labInfo&&labInfo.PriceSuffixText)strValue+=labInfo.PriceSuffixText;this.Canvas.fillStyle=this.LineColor;this.Canvas.font=this.Font;var textWidth=this.Canvas.measureText(strValue).width;var lineHeight=this.GetFontHeight();var rtBG={Left:right+this.RightSpaceWidth,Top:y-lineHeight/2,Width:textWidth+4,Height:lineHeight};//rtBG.Right=rtBG.Left+rtBG.Width;
|
|
6049
|
+
rtBG.Bottom=rtBG.Top+rtBG.Height;rtBG.Width+=this.TextMargin.Left+this.TextMargin.Right;rtBG.Right=rtBG.Left+rtBG.Width;var xText=rtBG.Left+this.TextMargin.Left+2;if(this.ButtonPosition==1){this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width+this.ButtonBGWidth),ToFixedRect(rtBG.Height));}else{this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width),ToFixedRect(rtBG.Height));}this.Canvas.fillStyle=this.ValueTextColor;this.Canvas.textAlign="left";this.Canvas.textBaseline="middle";this.Canvas.fillText(strValue,xText,y);rtDraw.Left=rtBG.Left;rtDraw.Top=rtBG.Top;rtDraw.Bottom=rtBG.Bottom;rtDraw.Right=rtBG.Right;this.DrawButton(rtBG.Top,rtBG.Right,lineHeight,rtDraw);};this.DrawPriceText=function(text,ptStart,ptEnd,position){if(position!=1&&position!=0)return;var font=this.ShowPriceTextConfig.Font[position];this.Canvas.fillStyle=this.LineColor;this.Canvas.font=font;var textWidth=this.Canvas.measureText(text).width;var lineHeight=this.GetFontHeight();var rtBG=null;if(position==1){var rtBG={Left:ptStart.X,Top:ptStart.Y-lineHeight/2,Width:textWidth+4,Height:lineHeight};rtBG.Right=rtBG.Left+rtBG.Width;rtBG.Bottom=rtBG.Top+rtBG.Height;}else if(position==0){var rtBG={Right:ptEnd.X,Top:ptEnd.Y-lineHeight/2,Width:textWidth+4,Height:lineHeight};rtBG.Left=rtBG.Right-rtBG.Width;rtBG.Bottom=rtBG.Top+rtBG.Height;}this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width+this.ButtonBGWidth),ToFixedRect(rtBG.Height));this.Canvas.fillStyle=this.ValueTextColor;this.Canvas.textAlign="left";this.Canvas.textBaseline="middle";this.Canvas.fillText(text,rtBG.Left+2,ptStart.Y);};this.CalculateButtonSize=function(){var pixelRatio=GetDevicePixelRatio();if(!IFrameSplitOperator.IsNonEmptyArray(this.AryShowButton))return;var totalWidth=0;for(var i=0;i<this.AryShowButton.length;++i){var item=this.AryShowButton[i];var icon=item.Data;var font=icon.Size*pixelRatio+'px '+icon.Family;this.Canvas.font=font;item.Width=this.Canvas.measureText(icon.Text).width+2;if(icon.Margin){var margin=icon.Margin;if(IFrameSplitOperator.IsNumber(margin.Left))item.Width+=margin.Left;if(IFrameSplitOperator.IsNumber(margin.Right))item.Width+=margin.Right;}totalWidth+=item.Width;}this.ButtonBGWidth=totalWidth;};this.DrawButton=function(drawTop,drawLeft,drawHeight,rtDraw){if(!IFrameSplitOperator.IsNonEmptyArray(this.AryShowButton))return;if(this.ButtonPosition==1)drawTop-=drawHeight;this.Canvas.fillStyle=this.LineColor;var left=drawLeft;var rtBG={Left:drawLeft,Top:drawTop,Width:this.ButtonBGWidth,Height:drawHeight};rtBG.Right=rtBG.Left+rtBG.Width;rtBG.Bottom=rtBG.Top+rtBG.Height;this.Canvas.fillStyle=this.ButtonBGColor;this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width),ToFixedRect(rtBG.Height));var pixelRatio=GetDevicePixelRatio();for(var i=0;i<this.AryShowButton.length;++i){var item=this.AryShowButton[i];var icon=item.Data;var rtButton={Left:left,Top:drawTop,Width:item.Width,Height:drawHeight};rtButton.Right=rtButton.Left+rtButton.Width;rtButton.Bottom=rtButton.Top+rtButton.Height;var yCenter=rtButton.Top+rtButton.Height/2;var xCenter=rtButton.Left+rtButton.Width/2;var font=icon.Size*pixelRatio+'px '+icon.Family;this.Canvas.font=font;this.Canvas.textAlign="center";this.Canvas.textBaseline="middle";this.Canvas.fillStyle=icon.Color;this.Canvas.fillText(icon.Text,xCenter,yCenter);this.AryButton.push({Rect:rtButton,ID:icon.ID,TooltipText:icon.TooltipText});left=rtButton.Right;}};this.PtInButtons=function(x,y){for(var i=0;i<this.AryButton.length;++i){var item=this.AryButton[i];if(!item.Rect)continue;var rect=item.Rect;this.Canvas.beginPath();this.Canvas.rect(rect.Left,rect.Top,rect.Width,rect.Height);if(this.Canvas.isPointInPath(x,y)){return{ID:item.ID,Rect:rect};}}return null;};}//趋势线
|
|
6047
6050
|
function ChartDrawPictureTrendLine(){this.newMethod=IChartDrawPicture;//派生
|
|
6048
6051
|
this.newMethod();delete this.newMethod;this.ClassName='ChartDrawPictureTrendLine';this.IsPointIn=this.IsPointIn_XYValue_Line;this.GetXYCoordinate=this.GetXYCoordinate_default;this.OnlyMoveXIndex=true;this.IsSupportMagnet=true;this.Draw=function(){this.LinePoint=[];if(this.IsFrameMinSize())return;if(!this.IsShow)return;var drawPoint=this.CalculateDrawPoint({IsCheckX:false,IsCheckY:false});if(!drawPoint||drawPoint.length!=2)return;var ptStart=drawPoint[0];var ptEnd=drawPoint[1];var extendLine=this.CalculateExtendLinePoint(ptStart,ptEnd);this.ClipFrame();this.Canvas.strokeStyle=this.LineColor;this.SetLineWidth();this.Canvas.beginPath();this.Canvas.moveTo(extendLine.Start.X,extendLine.Start.Y);this.Canvas.lineTo(extendLine.End.X,extendLine.End.Y);this.Canvas.stroke();this.RestoreLineWidth();var line={Start:ptStart,End:ptEnd};this.LinePoint.push(line);this.DrawPoint(drawPoint);//画点
|
|
6049
6052
|
this.Canvas.restore();};}//画图工具-矩形
|
|
@@ -11600,7 +11603,7 @@ frame.ChartPaint.push(chartText);};//创建文本
|
|
|
11600
11603
|
this.CreateText=function(hqChart,windowIndex,varItem,id,drawName){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartSingleText();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.ReloadResource();if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);var titleIndex=windowIndex+1;if(varItem.Draw.Position)chart.Position=varItem.Draw.Position;//赋值坐标
|
|
11601
11604
|
if(varItem.Draw.DrawData)chart.Data.Data=varItem.Draw.DrawData;chart.Text=varItem.Draw.Text;if(varItem.Draw.Direction>0)chart.Direction=varItem.Draw.Direction;if(varItem.Draw.YOffset>0)chart.YOffset=varItem.Draw.YOffset;if(varItem.Draw.TextAlign)chart.TextAlign=varItem.Draw.TextAlign;//hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(bar.Data,varItem.Name,bar.Color);
|
|
11602
11605
|
frame.ChartPaint.push(chart);};//COLORSTICK
|
|
11603
|
-
this.CreateMACD=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartMACD();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;var titleIndex=windowIndex+1;chart.Data.Data=varItem.Data;var titlePaint=hqChart.TitlePaint[titleIndex];var clrTitle=this.GetDefaultColor(id);if(varItem.Color)clrTitle=this.GetColor(varItem.Color);if(varItem.UpColor)chart.UpColor=varItem.UpColor;if(varItem.DownColor)chart.DownColor=varItem.DownColor;this.ReloadChartResource(hqChart,windowIndex,chart);titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=new DynamicTitleData(chart.Data,varItem.Name,clrTitle);frame.ChartPaint.push(chart);};this.CreatePointDot=function(hqChart,windowIndex,varItem,id,hisData){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartPointDot();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);if(varItem.Radius)chart.Radius=varItem.Radius;if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)chart.Radius=width;}if(IFrameSplitOperator.IsBool(varItem.UpDownDot)){chart.EnableUpDownColor=varItem.UpDownDot;chart.HistoryData=hisData;}var titleIndex=windowIndex+1;chart.Data.Data=varItem.Data;var titlePaint=hqChart.TitlePaint[titleIndex];titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateStick=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartStick();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)chart.LineWidth=width;}var titleIndex=windowIndex+1;chart.Data.Data=varItem.Data;this.ReloadChartResource(hqChart,windowIndex,chart);var titlePaint=hqChart.TitlePaint[titleIndex];titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);frame.ChartPaint.push(chart);};this.CreateLineStick=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartLineStick();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)chart.LineWidth=width;}var titleIndex=windowIndex+1;chart.Data.Data=varItem.Data;var titlePaint=hqChart.TitlePaint[titleIndex];titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);frame.ChartPaint.push(chart);};this.CreateStraightLine=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartLine();chart.DrawType=1;chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)chart.LineWidth=width;}var titleIndex=windowIndex+1;chart.Data.Data=varItem.Draw.DrawData;//hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(line.Data,varItem.Name,line.Color);
|
|
11606
|
+
this.CreateMACD=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartMACD();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;var titleIndex=windowIndex+1;chart.Data.Data=varItem.Data;var titlePaint=hqChart.TitlePaint[titleIndex];var clrTitle=this.GetDefaultColor(id);if(varItem.Color)clrTitle=this.GetColor(varItem.Color);if(varItem.UpColor)chart.UpColor=varItem.UpColor;if(varItem.DownColor)chart.DownColor=varItem.DownColor;this.ReloadChartResource(hqChart,windowIndex,chart);titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=new DynamicTitleData(chart.Data,varItem.Name,clrTitle);this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreatePointDot=function(hqChart,windowIndex,varItem,id,hisData){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartPointDot();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);if(varItem.Radius)chart.Radius=varItem.Radius;if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)chart.Radius=width;}if(IFrameSplitOperator.IsBool(varItem.UpDownDot)){chart.EnableUpDownColor=varItem.UpDownDot;chart.HistoryData=hisData;}var titleIndex=windowIndex+1;chart.Data.Data=varItem.Data;var titlePaint=hqChart.TitlePaint[titleIndex];titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateStick=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartStick();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)chart.LineWidth=width;}var titleIndex=windowIndex+1;chart.Data.Data=varItem.Data;this.ReloadChartResource(hqChart,windowIndex,chart);var titlePaint=hqChart.TitlePaint[titleIndex];titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);frame.ChartPaint.push(chart);};this.CreateLineStick=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartLineStick();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)chart.LineWidth=width;}var titleIndex=windowIndex+1;chart.Data.Data=varItem.Data;var titlePaint=hqChart.TitlePaint[titleIndex];titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);frame.ChartPaint.push(chart);};this.CreateStraightLine=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartLine();chart.DrawType=1;chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)chart.LineWidth=width;}var titleIndex=windowIndex+1;chart.Data.Data=varItem.Draw.DrawData;//hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(line.Data,varItem.Name,line.Color);
|
|
11604
11607
|
frame.ChartPaint.push(chart);};this.CreateVolStick=function(hqChart,windowIndex,varItem,id,hisData){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartVolStick();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.KLineDrawType=hqChart.KLineDrawType;//设置K线显示类型
|
|
11605
11608
|
if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);if(varItem.UpColor)chart.UpColor=varItem.UpColor;if(varItem.DownColor)chart.DownColor=varItem.DownColor;if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(IFrameSplitOperator.IsPlusNumber(width))chart.BarWidth=width;}var titleIndex=windowIndex+1;chart.Data.Data=varItem.Data;chart.HistoryData=hisData;this.ReloadChartResource(hqChart,windowIndex,chart);var titlePaint=hqChart.TitlePaint[titleIndex];var titleData=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;this.SetTitleData(titleData,chart);this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateBand=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartBand();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.FirstColor=varItem.Draw.Color[0];chart.SecondColor=varItem.Draw.Color[1];chart.Data.Data=varItem.Draw.DrawData;if(IFrameSplitOperator.IsBool(varItem.IsFirstDraw))chart.IsDrawFirst=varItem.IsFirstDraw;frame.ChartPaint.push(chart);};//创建K线图
|
|
11606
11609
|
this.CreateKLine=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartKLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.Data.Data=varItem.Draw.DrawData;chart.IsShowMaxMinPrice=false;chart.IsShowKTooltip=false;if(varItem.Color)//如果设置了颜色,使用外面设置的颜色
|
|
@@ -11610,7 +11613,7 @@ var titleIndex=windowIndex+1;chart.Data.Data=varItem.Draw.DrawData.Value;chart.T
|
|
|
11610
11613
|
this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateTextLine=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartTextLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;if(varItem.Draw&&varItem.Draw.DrawData){var drawData=varItem.Draw.DrawData;chart.Text=drawData.Text;chart.Line=drawData.Line;chart.Price=drawData.Price;}frame.ChartPaint.push(chart);};this.CreateStackedBar=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartStackedBar();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.BarColor))chart.BarColor=varItem.Draw.BarColor;if(IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.BarName))chart.BarName=varItem.Draw.BarName;if(IFrameSplitOperator.IsNumber(varItem.Draw.LineWidth))chart.LineWidth=varItem.Draw.LineWidth;if(IFrameSplitOperator.IsNumber(varItem.Draw.BarType))chart.BarType=varItem.Draw.BarType;chart.Data.Data=varItem.Draw.DrawData;var titleIndex=windowIndex+1;var titlePaint=hqChart.TitlePaint[titleIndex];var titleData=new DynamicTitleData(chart.Data,chart.BarName,chart.BarColor);titleData.DataType="ChartStackedBar";titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;frame.ChartPaint.push(chart);};//创建图标
|
|
11611
11614
|
this.CreateIcon=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartSingleText();chart.Canvas=hqChart.Canvas;chart.TextAlign='center';chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.DrawVAlign>=0){if(varItem.DrawVAlign==0)chart.Direction=1;else if(varItem.DrawVAlign==1)chart.Direction=0;else if(varItem.DrawVAlign==2)chart.Direction=2;}if(varItem.DrawAlign>=0){if(varItem.DrawAlign==0)chart.TextAlign="left";else if(varItem.DrawAlign==1)chart.TextAlign="center";else if(varItem.DrawAlign==2)chart.TextAlign='right';}if(IFrameSplitOperator.IsNumber(varItem.XOffset))chart.ShowOffset.X=varItem.XOffset;if(IFrameSplitOperator.IsNumber(varItem.YOffset))chart.ShowOffset.Y=varItem.YOffset;chart.Data.Data=varItem.Draw.DrawData;var icon=varItem.Draw.Icon;if(icon.IconFont==true){chart.IconFont={Family:icon.Family,Text:icon.Symbol,Color:icon.Color};}else{chart.Text=icon.Symbol;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else if(icon.Color)chart.Color=icon.Color;else chart.Color='rgb(0,0,0)';}//var titleIndex=windowIndex+1;
|
|
11612
11615
|
//hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(bar.Data,varItem.Name,bar.Color);
|
|
11613
|
-
frame.ChartPaint.push(chart);};this.CreateTipIcon=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartDrawSVG();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(hqChart.ChartPaint[0].IsMinuteFrame())chart.Data=hqChart.SourceData;else chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
11616
|
+
this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateTipIcon=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartDrawSVG();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(hqChart.ChartPaint[0].IsMinuteFrame())chart.Data=hqChart.SourceData;else chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
11614
11617
|
chart.Family=varItem.Draw.Icon.Family;chart.TextFont=g_JSChartResource.TIPICON.TextFont;var svgSize=g_JSChartResource.TIPICON.Size;var svgColor=g_JSChartResource.TIPICON.Color;var svgYOffset=0;var svgVAlign=2;//上下对齐方式
|
|
11615
11618
|
if(IFrameSplitOperator.IsNumber(varItem.YOffset))svgYOffset=varItem.YOffset;if(varItem.Color)svgColor=this.GetColor(varItem.Color);if(varItem.DrawFontSize>0)svgSize=varItem.DrawFontSize;if(varItem.DrawVAlign>=0)svgVAlign=varItem.DrawVAlign;if(varItem.Draw&&IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.DrawData)&&varItem.Draw.Icon){var drawData=varItem.Draw.DrawData;var aryData=[];var isArrayTip=Array.isArray(varItem.Draw.Text);var singleTip=null;if(!isArrayTip&&varItem.Draw.Text)singleTip={Text:varItem.Draw.Text};for(var j=0;j<drawData.length;++j){var item=drawData[j];if(!IFrameSplitOperator.IsNumber(item))continue;var svgItem={Index:j,Value:item,SVG:{Symbol:varItem.Draw.Icon.Symbol,Size:svgSize,Color:svgColor,YOffset:svgYOffset,VAlign:svgVAlign}};if(isArrayTip){var text=varItem.Draw.Text[j];if(text)svgItem.Tooltip={Text:text};}else{svgItem.Tooltip=singleTip;}aryData.push(svgItem);}chart.Texts=aryData;}frame.ChartPaint.push(chart);};//创建通道
|
|
11616
11619
|
this.CreateChannel=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartChannel();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.Draw.AreaColor)chart.AreaColor=varItem.Draw.AreaColor;else if(varItem.Color)chart.AreaColor=this.GetColor(varItem.Color);else chart.AreaColor=this.GetDefaultColor(id);if(varItem.Draw.Border.Color)chart.LineColor=varItem.Draw.Border.Color;else chart.LineColor=null;if(varItem.Draw.Border.Dotted)chart.LineDotted=varItem.Draw.Border.Dotted;if(varItem.Draw.Border.Width>0)chart.LineWidth=varItem.Draw.Border.Width;//let titleIndex=windowIndex+1;
|
|
@@ -13179,7 +13182,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
|
|
|
13179
13182
|
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);};}/********************************************************************************
|
|
13180
13183
|
* 版本信息输出
|
|
13181
13184
|
*
|
|
13182
|
-
*/var HQCHART_VERSION="1.1.
|
|
13185
|
+
*/var HQCHART_VERSION="1.1.13209";function PrintHQChartVersion(){var log='*************************************************************************************************************\n*\n* HQChart Ver: '+HQCHART_VERSION+' \n* \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n*************************************************************************************************************\n';console.log(log);}PrintHQChartVersion();//把给外界调用的方法暴露出来
|
|
13183
13186
|
exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
|
|
13184
13187
|
// BaseIndex:BaseIndex,
|
|
13185
13188
|
// ChartLine:ChartLine,
|
package/package.json
CHANGED
|
@@ -22360,6 +22360,7 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
22360
22360
|
|
|
22361
22361
|
titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=new DynamicTitleData(chart.Data,varItem.Name,clrTitle);
|
|
22362
22362
|
|
|
22363
|
+
this.SetChartIndexName(chart);
|
|
22363
22364
|
frame.ChartPaint.push(chart);
|
|
22364
22365
|
}
|
|
22365
22366
|
|
|
@@ -22714,6 +22715,7 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
22714
22715
|
|
|
22715
22716
|
//var titleIndex=windowIndex+1;
|
|
22716
22717
|
//hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(bar.Data,varItem.Name,bar.Color);
|
|
22718
|
+
this.SetChartIndexName(chart);
|
|
22717
22719
|
frame.ChartPaint.push(chart);
|
|
22718
22720
|
}
|
|
22719
22721
|
|
package/src/jscommon/umychart.js
CHANGED
|
@@ -2661,7 +2661,12 @@ var JSCHART_MENU_ID=
|
|
|
2661
2661
|
CMD_SHOW_BEFORE_DATA_ID:24, //显示|隐藏集合竞价
|
|
2662
2662
|
|
|
2663
2663
|
CMD_SELECTED_ZOOM_ID:25, //选中放大
|
|
2664
|
-
CMD_SELECTED_SUMMARY_ID:26,
|
|
2664
|
+
CMD_SELECTED_SUMMARY_ID:26, //区间统计
|
|
2665
|
+
|
|
2666
|
+
CMD_SHOW_INDEX_ID:27, //显示隐藏指标
|
|
2667
|
+
CMD_SHOW_OVERLAY_INDEX_ID:28, //显示隐藏叠加指标
|
|
2668
|
+
CMD_DELETE_OVERLAY_INDEX_ID:29, //删除叠加指标
|
|
2669
|
+
CMD_SHOW_OVERLAY_Y_AXIS_ID:30, //显示隐藏Y轴叠加指标
|
|
2665
2670
|
}
|
|
2666
2671
|
|
|
2667
2672
|
|
|
@@ -9256,9 +9261,92 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
9256
9261
|
var dlg=new KLineSelectRectDialog(this.DivElement);
|
|
9257
9262
|
dlg.DoModal(srcParam);
|
|
9258
9263
|
break;
|
|
9264
|
+
|
|
9265
|
+
case JSCHART_MENU_ID.CMD_SHOW_INDEX_ID: //显示隐藏指标 [0]=windowIndex [1]=0=自动 1=隐藏 2=显示
|
|
9266
|
+
if (param==null || !IFrameSplitOperator.IsNumber(aryArgs[1])) return false;
|
|
9267
|
+
var windowIndex=param, showType=aryArgs[1];
|
|
9268
|
+
var script=this.WindowIndex[windowIndex];
|
|
9269
|
+
if (!script) return false;
|
|
9270
|
+
|
|
9271
|
+
if (showType==1) script.IsShow=false;
|
|
9272
|
+
else if (showType==2) script.IsShow=true;
|
|
9273
|
+
else script.IsShow=!script.IsShow;
|
|
9274
|
+
|
|
9275
|
+
this.UpdateWindowIndex(windowIndex);
|
|
9276
|
+
break;
|
|
9277
|
+
|
|
9278
|
+
case JSCHART_MENU_ID.CMD_SHOW_OVERLAY_INDEX_ID: //显示隐藏叠加指标 [0]=indexGuid [1]=0=自动 1=隐藏 2=显示
|
|
9279
|
+
if (!srcParam || !IFrameSplitOperator.IsNumber(aryArgs[1])) return false;
|
|
9280
|
+
var indexGuid=srcParam,showType=aryArgs[1];
|
|
9281
|
+
|
|
9282
|
+
var overlay=this.GetOverlayIndexByIdentify(indexGuid);
|
|
9283
|
+
if (!overlay || !overlay.OverlayItem || !overlay.OverlayItem.Script) return false;
|
|
9284
|
+
|
|
9285
|
+
var script=overlay.OverlayItem.Script;
|
|
9286
|
+
|
|
9287
|
+
if (showType==1) script.IsShow=false;
|
|
9288
|
+
else if (showType==2) script.IsShow==true;
|
|
9289
|
+
else script.IsShow=!script.IsShow;
|
|
9290
|
+
|
|
9291
|
+
this.UpdateOverlayIndex(indexGuid);
|
|
9292
|
+
break;
|
|
9293
|
+
case JSCHART_MENU_ID.CMD_DELETE_OVERLAY_INDEX_ID:
|
|
9294
|
+
if (srcParam && this.DeleteOverlayWindowsIndex)
|
|
9295
|
+
this.DeleteOverlayWindowsIndex(srcParam);
|
|
9296
|
+
break;
|
|
9297
|
+
case JSCHART_MENU_ID.CMD_SHOW_OVERLAY_Y_AXIS_ID:
|
|
9298
|
+
if (!srcParam || !IFrameSplitOperator.IsNumber(aryArgs[1])) return false;
|
|
9299
|
+
if (!this.GetOverlayIndexByIdentify) return false;
|
|
9300
|
+
|
|
9301
|
+
var indexGuid=srcParam,showType=aryArgs[1];
|
|
9302
|
+
var finder=this.GetOverlayIndexByIdentify(indexGuid);
|
|
9303
|
+
if (!finder || !finder.OverlayItem) return false;
|
|
9304
|
+
|
|
9305
|
+
var frame=finder.OverlayItem.Frame;
|
|
9306
|
+
if (showType==1) frame.IsShow=false;
|
|
9307
|
+
else if (showType==2) frame.IsShow==true;
|
|
9308
|
+
else frame.IsShow=!frame.IsShow;
|
|
9309
|
+
|
|
9310
|
+
this.UpdataDataoffset(); //更新数据偏移
|
|
9311
|
+
this.UpdateFrameMaxMin(); //调整坐标最大 最小值
|
|
9312
|
+
this.Draw();
|
|
9313
|
+
|
|
9314
|
+
break;
|
|
9259
9315
|
}
|
|
9260
9316
|
}
|
|
9261
9317
|
|
|
9318
|
+
this.GetShowIndexMenuData=function(windowIndex, showType)
|
|
9319
|
+
{
|
|
9320
|
+
var script=this.WindowIndex[windowIndex];
|
|
9321
|
+
if (!script) return null;
|
|
9322
|
+
|
|
9323
|
+
var data= { Name:script.IsShow?"隐藏指标":"显示指标", Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_INDEX_ID, Args:[windowIndex, 0] } };
|
|
9324
|
+
|
|
9325
|
+
return data;
|
|
9326
|
+
}
|
|
9327
|
+
|
|
9328
|
+
this.GetShowOverlayIndexMenuData=function(indexGuid, showType)
|
|
9329
|
+
{
|
|
9330
|
+
var overlay=this.GetOverlayIndexByIdentify(indexGuid);
|
|
9331
|
+
if (!overlay || !overlay.OverlayItem || !overlay.OverlayItem.Script) return null;
|
|
9332
|
+
|
|
9333
|
+
var script=overlay.OverlayItem.Script;
|
|
9334
|
+
var data= { Name:script.IsShow?"隐藏指标":"显示指标", Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_OVERLAY_INDEX_ID, Args:[indexGuid, 0] } };
|
|
9335
|
+
|
|
9336
|
+
return data;
|
|
9337
|
+
}
|
|
9338
|
+
|
|
9339
|
+
this.GetShowOverlayIndexYAxisMenuData=function(indexGuid, showType)
|
|
9340
|
+
{
|
|
9341
|
+
var overlay=this.GetOverlayIndexByIdentify(indexGuid);
|
|
9342
|
+
if (!overlay || !overlay.OverlayItem || !overlay.OverlayItem.Script) return null;
|
|
9343
|
+
|
|
9344
|
+
var frame=overlay.OverlayItem.Frame;
|
|
9345
|
+
var data= { Name:frame.IsShow?"隐藏Y轴":"显示Y轴", Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_OVERLAY_Y_AXIS_ID, Args:[indexGuid, 0] } };
|
|
9346
|
+
|
|
9347
|
+
return data;
|
|
9348
|
+
}
|
|
9349
|
+
|
|
9262
9350
|
//点击右键菜单
|
|
9263
9351
|
this.OnClickRightMenu=function(data)
|
|
9264
9352
|
{
|
|
@@ -53763,7 +53851,7 @@ function DynamicChartTitlePainting()
|
|
|
53763
53851
|
var rtButton={ Left:left, YCenter:yCenter };
|
|
53764
53852
|
this.DrawButton(item, rtButton, moveonPoint, mouseStatus);
|
|
53765
53853
|
|
|
53766
|
-
this.Buttons.push({ ID:item.ID, Rect:rtButton, FrameID:this.Frame.Identify, Type:1, OverlayID:toolbarInfo.ID, Title:overlayItem.Title });
|
|
53854
|
+
this.Buttons.push({ ID:item.ID, Rect:rtButton, FrameID:this.Frame.Identify, Type:1, OverlayID:toolbarInfo.ID, Title:overlayItem.Title, Data:item.Data });
|
|
53767
53855
|
|
|
53768
53856
|
left=rtButton.Right;
|
|
53769
53857
|
|
|
@@ -55993,11 +56081,14 @@ function ChartDrawHLine()
|
|
|
55993
56081
|
|
|
55994
56082
|
this.Button=
|
|
55995
56083
|
{
|
|
55996
|
-
CloseIcon: { Text:'\ue62b', Color:'rgb(255,255,255)', Family:"iconfont", Size:16, ID:JSCHART_BUTTON_ID.DRAW_PICTURE_DELETE, TooltipText:null },
|
|
55997
|
-
SettingIcon: { Text:'\ue623',Color:'rgb(255,255,255)', Family:"iconfont", Size:16, ID:JSCHART_BUTTON_ID.DRAW_PICTURE_SETTING, TooltipText:null }
|
|
56084
|
+
CloseIcon: { Text:'\ue62b', Color:'rgb(255,255,255)', Family:"iconfont", Size:16, ID:JSCHART_BUTTON_ID.DRAW_PICTURE_DELETE, TooltipText:null, Margin:{ Left:2, Right:2 } },
|
|
56085
|
+
SettingIcon: { Text:'\ue623',Color:'rgb(255,255,255)', Family:"iconfont", Size:16, ID:JSCHART_BUTTON_ID.DRAW_PICTURE_SETTING, TooltipText:null, Margin:{ Left:2, Right:2 } }
|
|
55998
56086
|
//修改ID, Text , TooltipText 可以外部定制按钮
|
|
55999
56087
|
}
|
|
56000
56088
|
|
|
56089
|
+
this.CustomButton=[]; //自定义的按钮 { Text:'\ue62b', Color:'rgb(255,255,255)', Family:"iconfont", Size:16, ID:JSCHART_BUTTON_ID.DRAW_PICTURE_BUTTON_1, TooltipText:null }
|
|
56090
|
+
|
|
56091
|
+
this.AryShowButton=[]; //需要显示的按钮 { Data:, Width }
|
|
56001
56092
|
this.AryButton=[];
|
|
56002
56093
|
this.ExtendData; //扩展数据
|
|
56003
56094
|
this.ShowPriceTextConfig=
|
|
@@ -56103,8 +56194,32 @@ function ChartDrawHLine()
|
|
|
56103
56194
|
this.Draw();
|
|
56104
56195
|
}
|
|
56105
56196
|
|
|
56197
|
+
//获取需要显示的按钮 系统按钮+自定义按钮
|
|
56198
|
+
this.GetShowButton=function()
|
|
56199
|
+
{
|
|
56200
|
+
var aryButton=[];
|
|
56201
|
+
|
|
56202
|
+
var item=this.Button.SettingIcon;
|
|
56203
|
+
if (item && item.Text) aryButton.push({ Data:item, Width:null });
|
|
56204
|
+
|
|
56205
|
+
item=this.Button.CloseIcon;
|
|
56206
|
+
if (item && item.Text) aryButton.push({ Data:item, Width:null });
|
|
56207
|
+
|
|
56208
|
+
if (IFrameSplitOperator.IsNonEmptyArray(this.CustomButton))
|
|
56209
|
+
{
|
|
56210
|
+
for(var i=0;i<this.CustomButton.length;++i)
|
|
56211
|
+
{
|
|
56212
|
+
item=this.CustomButton[i];
|
|
56213
|
+
if (item && item.Text) aryButton.push({ Data:item, Width:null });
|
|
56214
|
+
}
|
|
56215
|
+
}
|
|
56216
|
+
|
|
56217
|
+
return aryButton;
|
|
56218
|
+
}
|
|
56219
|
+
|
|
56106
56220
|
this.Draw=function(moveonPoint, mouseStatus)
|
|
56107
56221
|
{
|
|
56222
|
+
this.AryShowButton=[];
|
|
56108
56223
|
this.LinePoint=[];
|
|
56109
56224
|
this.AryButton=[];
|
|
56110
56225
|
this.ColseButtonSize=0;
|
|
@@ -56180,6 +56295,8 @@ function ChartDrawHLine()
|
|
|
56180
56295
|
var labInfo;
|
|
56181
56296
|
if (this.GetLabelCallback) labInfo=this.GetLabelCallback(this);
|
|
56182
56297
|
|
|
56298
|
+
this.AryShowButton=this.GetShowButton(); //获取按钮
|
|
56299
|
+
|
|
56183
56300
|
//描述信息
|
|
56184
56301
|
if (labInfo)
|
|
56185
56302
|
this.DrawLab(labInfo, drawPoint[0].Y);
|
|
@@ -56355,11 +56472,17 @@ function ChartDrawHLine()
|
|
|
56355
56472
|
{
|
|
56356
56473
|
var item=labInfo.AryLine[i];
|
|
56357
56474
|
if (!IFrameSplitOperator.IsNumber(item.Value)) continue;
|
|
56475
|
+
if (item.Width<0) continue;
|
|
56358
56476
|
|
|
56359
56477
|
var y=this.Frame.GetYFromData(item.Value);
|
|
56360
56478
|
var yFixed=ToFixedPoint(y);
|
|
56361
56479
|
var xRight=right;
|
|
56362
|
-
if (IFrameSplitOperator.
|
|
56480
|
+
if (IFrameSplitOperator.IsPlusNumber(item.Width))
|
|
56481
|
+
{
|
|
56482
|
+
if (item.Width<1) xRight=left+(item.Width*(right-left)); //0.3 百分比
|
|
56483
|
+
else xRight=left+item.Width*pixelRatio; //>1 实际数值就是长度
|
|
56484
|
+
}
|
|
56485
|
+
|
|
56363
56486
|
if (item.Color) this.Canvas.strokeStyle=item.Color;
|
|
56364
56487
|
else this.Canvas.strokeStyle=this.LineColor;
|
|
56365
56488
|
|
|
@@ -56477,42 +56600,33 @@ function ChartDrawHLine()
|
|
|
56477
56600
|
{
|
|
56478
56601
|
var pixelRatio=GetDevicePixelRatio();
|
|
56479
56602
|
|
|
56480
|
-
if (this.
|
|
56481
|
-
{
|
|
56482
|
-
var icon=this.Button.SettingIcon;
|
|
56483
|
-
var font=`${icon.Size*pixelRatio}px ${icon.Family}`;
|
|
56484
|
-
this.Canvas.font=font;
|
|
56485
|
-
var width=this.Canvas.measureText(icon.Text).width;
|
|
56486
|
-
this.SettingButtonSize=width;
|
|
56487
|
-
}
|
|
56603
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.AryShowButton)) return;
|
|
56488
56604
|
|
|
56489
|
-
|
|
56605
|
+
var totalWidth=0;
|
|
56606
|
+
for(var i=0;i<this.AryShowButton.length;++i)
|
|
56490
56607
|
{
|
|
56491
|
-
var
|
|
56608
|
+
var item=this.AryShowButton[i];
|
|
56609
|
+
var icon=item.Data;
|
|
56492
56610
|
var font=`${icon.Size*pixelRatio}px ${icon.Family}`;
|
|
56493
56611
|
this.Canvas.font=font;
|
|
56494
|
-
|
|
56495
|
-
this.ColseButtonSize=width;
|
|
56496
|
-
}
|
|
56612
|
+
item.Width=this.Canvas.measureText(icon.Text).width+2;
|
|
56497
56613
|
|
|
56498
|
-
|
|
56614
|
+
if (icon.Margin)
|
|
56615
|
+
{
|
|
56616
|
+
var margin=icon.Margin;
|
|
56617
|
+
if (IFrameSplitOperator.IsNumber(margin.Left)) item.Width+=margin.Left;
|
|
56618
|
+
if (IFrameSplitOperator.IsNumber(margin.Right)) item.Width+=margin.Right;
|
|
56619
|
+
}
|
|
56499
56620
|
|
|
56500
|
-
|
|
56501
|
-
if (this.SettingButtonSize>0) buttonWidth+=this.SettingButtonSize;
|
|
56502
|
-
if (this.ColseButtonSize>0)
|
|
56503
|
-
{
|
|
56504
|
-
if (buttonWidth>0) buttonWidth+=this.ButtonSpace;
|
|
56505
|
-
buttonWidth+=this.ColseButtonSize;
|
|
56621
|
+
totalWidth+=item.Width;
|
|
56506
56622
|
}
|
|
56507
56623
|
|
|
56508
|
-
|
|
56509
|
-
|
|
56510
|
-
this.ButtonBGWidth=buttonWidth;
|
|
56624
|
+
this.ButtonBGWidth=totalWidth;
|
|
56511
56625
|
}
|
|
56512
56626
|
|
|
56513
56627
|
this.DrawButton=function(drawTop, drawLeft, drawHeight, rtDraw)
|
|
56514
56628
|
{
|
|
56515
|
-
if (
|
|
56629
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.AryShowButton)) return;
|
|
56516
56630
|
|
|
56517
56631
|
if (this.ButtonPosition==1) drawTop-=drawHeight;
|
|
56518
56632
|
|
|
@@ -56524,61 +56638,29 @@ function ChartDrawHLine()
|
|
|
56524
56638
|
this.Canvas.fillStyle=this.ButtonBGColor;
|
|
56525
56639
|
this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top), ToFixedRect(rtBG.Width),ToFixedRect(rtBG.Height));
|
|
56526
56640
|
|
|
56527
|
-
left+=1;
|
|
56528
56641
|
var pixelRatio=GetDevicePixelRatio();
|
|
56529
|
-
|
|
56642
|
+
for(var i=0;i<this.AryShowButton.length;++i)
|
|
56530
56643
|
{
|
|
56531
|
-
var
|
|
56532
|
-
|
|
56533
|
-
rtButton.Bottom=rtButton.Top+rtButton.Height;
|
|
56534
|
-
var yCenter=rtButton.Top+rtButton.Height/2;
|
|
56535
|
-
var xCenter=rtButton.Left+rtButton.Width/2;
|
|
56644
|
+
var item=this.AryShowButton[i];
|
|
56645
|
+
var icon=item.Data;
|
|
56536
56646
|
|
|
56537
|
-
var
|
|
56538
|
-
this.Canvas.font=`${icon.Size*pixelRatio}px ${icon.Family}`;
|
|
56539
|
-
this.Canvas.textAlign="center";
|
|
56540
|
-
this.Canvas.textBaseline="middle";
|
|
56541
|
-
this.Canvas.fillStyle=icon.Color;
|
|
56542
|
-
this.Canvas.fillText(this.Button.SettingIcon.Text,xCenter,yCenter);
|
|
56543
|
-
|
|
56544
|
-
this.AryButton.push({Rect:rtButton, ID:icon.ID, TooltipText:icon.TooltipText});
|
|
56545
|
-
|
|
56546
|
-
/*
|
|
56547
|
-
if (this.ColseButtonSize>0)
|
|
56548
|
-
{
|
|
56549
|
-
var xLine=rtButton.Right+this.ButtonSpace/2;
|
|
56550
|
-
xLine=ToFixedPoint(xLine);
|
|
56551
|
-
this.Canvas.strokeStyle=this.ButtonSplitLineColor;
|
|
56552
|
-
this.Canvas.beginPath();
|
|
56553
|
-
this.Canvas.moveTo(xLine,rtButton.Top);
|
|
56554
|
-
this.Canvas.lineTo(xLine,rtButton.Bottom);
|
|
56555
|
-
this.Canvas.stroke();
|
|
56556
|
-
}
|
|
56557
|
-
*/
|
|
56558
|
-
|
|
56559
|
-
left=rtButton.Right+this.ButtonSpace;
|
|
56560
|
-
}
|
|
56561
|
-
|
|
56562
|
-
if (this.Button.CloseIcon && this.Button.CloseIcon.Text)
|
|
56563
|
-
{
|
|
56564
|
-
var rtButton={Left:left, Top:drawTop, Width:this.ColseButtonSize, Height:drawHeight };
|
|
56647
|
+
var rtButton={Left:left, Top:drawTop, Width:item.Width, Height:drawHeight };
|
|
56565
56648
|
rtButton.Right=rtButton.Left+rtButton.Width;
|
|
56566
56649
|
rtButton.Bottom=rtButton.Top+rtButton.Height;
|
|
56567
56650
|
var yCenter=rtButton.Top+rtButton.Height/2;
|
|
56568
56651
|
var xCenter=rtButton.Left+rtButton.Width/2;
|
|
56569
|
-
|
|
56570
|
-
|
|
56652
|
+
|
|
56653
|
+
var font=`${icon.Size*pixelRatio}px ${icon.Family}`;
|
|
56654
|
+
this.Canvas.font=font;
|
|
56571
56655
|
this.Canvas.textAlign="center";
|
|
56572
56656
|
this.Canvas.textBaseline="middle";
|
|
56573
56657
|
this.Canvas.fillStyle=icon.Color;
|
|
56574
|
-
this.Canvas.fillText(
|
|
56658
|
+
this.Canvas.fillText(icon.Text,xCenter,yCenter);
|
|
56575
56659
|
|
|
56576
56660
|
this.AryButton.push({Rect:rtButton,ID:icon.ID, TooltipText:icon.TooltipText });
|
|
56577
56661
|
|
|
56578
56662
|
left=rtButton.Right;
|
|
56579
56663
|
}
|
|
56580
|
-
|
|
56581
|
-
rtDraw.Right=rtBG.Right;
|
|
56582
56664
|
}
|
|
56583
56665
|
|
|
56584
56666
|
this.PtInButtons=function(x,y)
|
|
@@ -6553,7 +6553,12 @@ var JSCHART_MENU_ID=
|
|
|
6553
6553
|
CMD_SHOW_BEFORE_DATA_ID:24, //显示|隐藏集合竞价
|
|
6554
6554
|
|
|
6555
6555
|
CMD_SELECTED_ZOOM_ID:25, //选中放大
|
|
6556
|
-
CMD_SELECTED_SUMMARY_ID:26,
|
|
6556
|
+
CMD_SELECTED_SUMMARY_ID:26, //区间统计
|
|
6557
|
+
|
|
6558
|
+
CMD_SHOW_INDEX_ID:27, //显示隐藏指标
|
|
6559
|
+
CMD_SHOW_OVERLAY_INDEX_ID:28, //显示隐藏叠加指标
|
|
6560
|
+
CMD_DELETE_OVERLAY_INDEX_ID:29, //删除叠加指标
|
|
6561
|
+
CMD_SHOW_OVERLAY_Y_AXIS_ID:30, //显示隐藏Y轴叠加指标
|
|
6557
6562
|
}
|
|
6558
6563
|
|
|
6559
6564
|
|
|
@@ -13148,9 +13153,92 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
13148
13153
|
var dlg=new KLineSelectRectDialog(this.DivElement);
|
|
13149
13154
|
dlg.DoModal(srcParam);
|
|
13150
13155
|
break;
|
|
13156
|
+
|
|
13157
|
+
case JSCHART_MENU_ID.CMD_SHOW_INDEX_ID: //显示隐藏指标 [0]=windowIndex [1]=0=自动 1=隐藏 2=显示
|
|
13158
|
+
if (param==null || !IFrameSplitOperator.IsNumber(aryArgs[1])) return false;
|
|
13159
|
+
var windowIndex=param, showType=aryArgs[1];
|
|
13160
|
+
var script=this.WindowIndex[windowIndex];
|
|
13161
|
+
if (!script) return false;
|
|
13162
|
+
|
|
13163
|
+
if (showType==1) script.IsShow=false;
|
|
13164
|
+
else if (showType==2) script.IsShow=true;
|
|
13165
|
+
else script.IsShow=!script.IsShow;
|
|
13166
|
+
|
|
13167
|
+
this.UpdateWindowIndex(windowIndex);
|
|
13168
|
+
break;
|
|
13169
|
+
|
|
13170
|
+
case JSCHART_MENU_ID.CMD_SHOW_OVERLAY_INDEX_ID: //显示隐藏叠加指标 [0]=indexGuid [1]=0=自动 1=隐藏 2=显示
|
|
13171
|
+
if (!srcParam || !IFrameSplitOperator.IsNumber(aryArgs[1])) return false;
|
|
13172
|
+
var indexGuid=srcParam,showType=aryArgs[1];
|
|
13173
|
+
|
|
13174
|
+
var overlay=this.GetOverlayIndexByIdentify(indexGuid);
|
|
13175
|
+
if (!overlay || !overlay.OverlayItem || !overlay.OverlayItem.Script) return false;
|
|
13176
|
+
|
|
13177
|
+
var script=overlay.OverlayItem.Script;
|
|
13178
|
+
|
|
13179
|
+
if (showType==1) script.IsShow=false;
|
|
13180
|
+
else if (showType==2) script.IsShow==true;
|
|
13181
|
+
else script.IsShow=!script.IsShow;
|
|
13182
|
+
|
|
13183
|
+
this.UpdateOverlayIndex(indexGuid);
|
|
13184
|
+
break;
|
|
13185
|
+
case JSCHART_MENU_ID.CMD_DELETE_OVERLAY_INDEX_ID:
|
|
13186
|
+
if (srcParam && this.DeleteOverlayWindowsIndex)
|
|
13187
|
+
this.DeleteOverlayWindowsIndex(srcParam);
|
|
13188
|
+
break;
|
|
13189
|
+
case JSCHART_MENU_ID.CMD_SHOW_OVERLAY_Y_AXIS_ID:
|
|
13190
|
+
if (!srcParam || !IFrameSplitOperator.IsNumber(aryArgs[1])) return false;
|
|
13191
|
+
if (!this.GetOverlayIndexByIdentify) return false;
|
|
13192
|
+
|
|
13193
|
+
var indexGuid=srcParam,showType=aryArgs[1];
|
|
13194
|
+
var finder=this.GetOverlayIndexByIdentify(indexGuid);
|
|
13195
|
+
if (!finder || !finder.OverlayItem) return false;
|
|
13196
|
+
|
|
13197
|
+
var frame=finder.OverlayItem.Frame;
|
|
13198
|
+
if (showType==1) frame.IsShow=false;
|
|
13199
|
+
else if (showType==2) frame.IsShow==true;
|
|
13200
|
+
else frame.IsShow=!frame.IsShow;
|
|
13201
|
+
|
|
13202
|
+
this.UpdataDataoffset(); //更新数据偏移
|
|
13203
|
+
this.UpdateFrameMaxMin(); //调整坐标最大 最小值
|
|
13204
|
+
this.Draw();
|
|
13205
|
+
|
|
13206
|
+
break;
|
|
13151
13207
|
}
|
|
13152
13208
|
}
|
|
13153
13209
|
|
|
13210
|
+
this.GetShowIndexMenuData=function(windowIndex, showType)
|
|
13211
|
+
{
|
|
13212
|
+
var script=this.WindowIndex[windowIndex];
|
|
13213
|
+
if (!script) return null;
|
|
13214
|
+
|
|
13215
|
+
var data= { Name:script.IsShow?"隐藏指标":"显示指标", Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_INDEX_ID, Args:[windowIndex, 0] } };
|
|
13216
|
+
|
|
13217
|
+
return data;
|
|
13218
|
+
}
|
|
13219
|
+
|
|
13220
|
+
this.GetShowOverlayIndexMenuData=function(indexGuid, showType)
|
|
13221
|
+
{
|
|
13222
|
+
var overlay=this.GetOverlayIndexByIdentify(indexGuid);
|
|
13223
|
+
if (!overlay || !overlay.OverlayItem || !overlay.OverlayItem.Script) return null;
|
|
13224
|
+
|
|
13225
|
+
var script=overlay.OverlayItem.Script;
|
|
13226
|
+
var data= { Name:script.IsShow?"隐藏指标":"显示指标", Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_OVERLAY_INDEX_ID, Args:[indexGuid, 0] } };
|
|
13227
|
+
|
|
13228
|
+
return data;
|
|
13229
|
+
}
|
|
13230
|
+
|
|
13231
|
+
this.GetShowOverlayIndexYAxisMenuData=function(indexGuid, showType)
|
|
13232
|
+
{
|
|
13233
|
+
var overlay=this.GetOverlayIndexByIdentify(indexGuid);
|
|
13234
|
+
if (!overlay || !overlay.OverlayItem || !overlay.OverlayItem.Script) return null;
|
|
13235
|
+
|
|
13236
|
+
var frame=overlay.OverlayItem.Frame;
|
|
13237
|
+
var data= { Name:frame.IsShow?"隐藏Y轴":"显示Y轴", Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_OVERLAY_Y_AXIS_ID, Args:[indexGuid, 0] } };
|
|
13238
|
+
|
|
13239
|
+
return data;
|
|
13240
|
+
}
|
|
13241
|
+
|
|
13154
13242
|
//点击右键菜单
|
|
13155
13243
|
this.OnClickRightMenu=function(data)
|
|
13156
13244
|
{
|
|
@@ -57655,7 +57743,7 @@ function DynamicChartTitlePainting()
|
|
|
57655
57743
|
var rtButton={ Left:left, YCenter:yCenter };
|
|
57656
57744
|
this.DrawButton(item, rtButton, moveonPoint, mouseStatus);
|
|
57657
57745
|
|
|
57658
|
-
this.Buttons.push({ ID:item.ID, Rect:rtButton, FrameID:this.Frame.Identify, Type:1, OverlayID:toolbarInfo.ID, Title:overlayItem.Title });
|
|
57746
|
+
this.Buttons.push({ ID:item.ID, Rect:rtButton, FrameID:this.Frame.Identify, Type:1, OverlayID:toolbarInfo.ID, Title:overlayItem.Title, Data:item.Data });
|
|
57659
57747
|
|
|
57660
57748
|
left=rtButton.Right;
|
|
57661
57749
|
|
|
@@ -59885,11 +59973,14 @@ function ChartDrawHLine()
|
|
|
59885
59973
|
|
|
59886
59974
|
this.Button=
|
|
59887
59975
|
{
|
|
59888
|
-
CloseIcon: { Text:'\ue62b', Color:'rgb(255,255,255)', Family:"iconfont", Size:16, ID:JSCHART_BUTTON_ID.DRAW_PICTURE_DELETE, TooltipText:null },
|
|
59889
|
-
SettingIcon: { Text:'\ue623',Color:'rgb(255,255,255)', Family:"iconfont", Size:16, ID:JSCHART_BUTTON_ID.DRAW_PICTURE_SETTING, TooltipText:null }
|
|
59976
|
+
CloseIcon: { Text:'\ue62b', Color:'rgb(255,255,255)', Family:"iconfont", Size:16, ID:JSCHART_BUTTON_ID.DRAW_PICTURE_DELETE, TooltipText:null, Margin:{ Left:2, Right:2 } },
|
|
59977
|
+
SettingIcon: { Text:'\ue623',Color:'rgb(255,255,255)', Family:"iconfont", Size:16, ID:JSCHART_BUTTON_ID.DRAW_PICTURE_SETTING, TooltipText:null, Margin:{ Left:2, Right:2 } }
|
|
59890
59978
|
//修改ID, Text , TooltipText 可以外部定制按钮
|
|
59891
59979
|
}
|
|
59892
59980
|
|
|
59981
|
+
this.CustomButton=[]; //自定义的按钮 { Text:'\ue62b', Color:'rgb(255,255,255)', Family:"iconfont", Size:16, ID:JSCHART_BUTTON_ID.DRAW_PICTURE_BUTTON_1, TooltipText:null }
|
|
59982
|
+
|
|
59983
|
+
this.AryShowButton=[]; //需要显示的按钮 { Data:, Width }
|
|
59893
59984
|
this.AryButton=[];
|
|
59894
59985
|
this.ExtendData; //扩展数据
|
|
59895
59986
|
this.ShowPriceTextConfig=
|
|
@@ -59995,8 +60086,32 @@ function ChartDrawHLine()
|
|
|
59995
60086
|
this.Draw();
|
|
59996
60087
|
}
|
|
59997
60088
|
|
|
60089
|
+
//获取需要显示的按钮 系统按钮+自定义按钮
|
|
60090
|
+
this.GetShowButton=function()
|
|
60091
|
+
{
|
|
60092
|
+
var aryButton=[];
|
|
60093
|
+
|
|
60094
|
+
var item=this.Button.SettingIcon;
|
|
60095
|
+
if (item && item.Text) aryButton.push({ Data:item, Width:null });
|
|
60096
|
+
|
|
60097
|
+
item=this.Button.CloseIcon;
|
|
60098
|
+
if (item && item.Text) aryButton.push({ Data:item, Width:null });
|
|
60099
|
+
|
|
60100
|
+
if (IFrameSplitOperator.IsNonEmptyArray(this.CustomButton))
|
|
60101
|
+
{
|
|
60102
|
+
for(var i=0;i<this.CustomButton.length;++i)
|
|
60103
|
+
{
|
|
60104
|
+
item=this.CustomButton[i];
|
|
60105
|
+
if (item && item.Text) aryButton.push({ Data:item, Width:null });
|
|
60106
|
+
}
|
|
60107
|
+
}
|
|
60108
|
+
|
|
60109
|
+
return aryButton;
|
|
60110
|
+
}
|
|
60111
|
+
|
|
59998
60112
|
this.Draw=function(moveonPoint, mouseStatus)
|
|
59999
60113
|
{
|
|
60114
|
+
this.AryShowButton=[];
|
|
60000
60115
|
this.LinePoint=[];
|
|
60001
60116
|
this.AryButton=[];
|
|
60002
60117
|
this.ColseButtonSize=0;
|
|
@@ -60072,6 +60187,8 @@ function ChartDrawHLine()
|
|
|
60072
60187
|
var labInfo;
|
|
60073
60188
|
if (this.GetLabelCallback) labInfo=this.GetLabelCallback(this);
|
|
60074
60189
|
|
|
60190
|
+
this.AryShowButton=this.GetShowButton(); //获取按钮
|
|
60191
|
+
|
|
60075
60192
|
//描述信息
|
|
60076
60193
|
if (labInfo)
|
|
60077
60194
|
this.DrawLab(labInfo, drawPoint[0].Y);
|
|
@@ -60247,11 +60364,17 @@ function ChartDrawHLine()
|
|
|
60247
60364
|
{
|
|
60248
60365
|
var item=labInfo.AryLine[i];
|
|
60249
60366
|
if (!IFrameSplitOperator.IsNumber(item.Value)) continue;
|
|
60367
|
+
if (item.Width<0) continue;
|
|
60250
60368
|
|
|
60251
60369
|
var y=this.Frame.GetYFromData(item.Value);
|
|
60252
60370
|
var yFixed=ToFixedPoint(y);
|
|
60253
60371
|
var xRight=right;
|
|
60254
|
-
if (IFrameSplitOperator.
|
|
60372
|
+
if (IFrameSplitOperator.IsPlusNumber(item.Width))
|
|
60373
|
+
{
|
|
60374
|
+
if (item.Width<1) xRight=left+(item.Width*(right-left)); //0.3 百分比
|
|
60375
|
+
else xRight=left+item.Width*pixelRatio; //>1 实际数值就是长度
|
|
60376
|
+
}
|
|
60377
|
+
|
|
60255
60378
|
if (item.Color) this.Canvas.strokeStyle=item.Color;
|
|
60256
60379
|
else this.Canvas.strokeStyle=this.LineColor;
|
|
60257
60380
|
|
|
@@ -60369,42 +60492,33 @@ function ChartDrawHLine()
|
|
|
60369
60492
|
{
|
|
60370
60493
|
var pixelRatio=GetDevicePixelRatio();
|
|
60371
60494
|
|
|
60372
|
-
if (this.
|
|
60373
|
-
{
|
|
60374
|
-
var icon=this.Button.SettingIcon;
|
|
60375
|
-
var font=`${icon.Size*pixelRatio}px ${icon.Family}`;
|
|
60376
|
-
this.Canvas.font=font;
|
|
60377
|
-
var width=this.Canvas.measureText(icon.Text).width;
|
|
60378
|
-
this.SettingButtonSize=width;
|
|
60379
|
-
}
|
|
60495
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.AryShowButton)) return;
|
|
60380
60496
|
|
|
60381
|
-
|
|
60497
|
+
var totalWidth=0;
|
|
60498
|
+
for(var i=0;i<this.AryShowButton.length;++i)
|
|
60382
60499
|
{
|
|
60383
|
-
var
|
|
60500
|
+
var item=this.AryShowButton[i];
|
|
60501
|
+
var icon=item.Data;
|
|
60384
60502
|
var font=`${icon.Size*pixelRatio}px ${icon.Family}`;
|
|
60385
60503
|
this.Canvas.font=font;
|
|
60386
|
-
|
|
60387
|
-
this.ColseButtonSize=width;
|
|
60388
|
-
}
|
|
60504
|
+
item.Width=this.Canvas.measureText(icon.Text).width+2;
|
|
60389
60505
|
|
|
60390
|
-
|
|
60506
|
+
if (icon.Margin)
|
|
60507
|
+
{
|
|
60508
|
+
var margin=icon.Margin;
|
|
60509
|
+
if (IFrameSplitOperator.IsNumber(margin.Left)) item.Width+=margin.Left;
|
|
60510
|
+
if (IFrameSplitOperator.IsNumber(margin.Right)) item.Width+=margin.Right;
|
|
60511
|
+
}
|
|
60391
60512
|
|
|
60392
|
-
|
|
60393
|
-
if (this.SettingButtonSize>0) buttonWidth+=this.SettingButtonSize;
|
|
60394
|
-
if (this.ColseButtonSize>0)
|
|
60395
|
-
{
|
|
60396
|
-
if (buttonWidth>0) buttonWidth+=this.ButtonSpace;
|
|
60397
|
-
buttonWidth+=this.ColseButtonSize;
|
|
60513
|
+
totalWidth+=item.Width;
|
|
60398
60514
|
}
|
|
60399
60515
|
|
|
60400
|
-
|
|
60401
|
-
|
|
60402
|
-
this.ButtonBGWidth=buttonWidth;
|
|
60516
|
+
this.ButtonBGWidth=totalWidth;
|
|
60403
60517
|
}
|
|
60404
60518
|
|
|
60405
60519
|
this.DrawButton=function(drawTop, drawLeft, drawHeight, rtDraw)
|
|
60406
60520
|
{
|
|
60407
|
-
if (
|
|
60521
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.AryShowButton)) return;
|
|
60408
60522
|
|
|
60409
60523
|
if (this.ButtonPosition==1) drawTop-=drawHeight;
|
|
60410
60524
|
|
|
@@ -60416,61 +60530,29 @@ function ChartDrawHLine()
|
|
|
60416
60530
|
this.Canvas.fillStyle=this.ButtonBGColor;
|
|
60417
60531
|
this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top), ToFixedRect(rtBG.Width),ToFixedRect(rtBG.Height));
|
|
60418
60532
|
|
|
60419
|
-
left+=1;
|
|
60420
60533
|
var pixelRatio=GetDevicePixelRatio();
|
|
60421
|
-
|
|
60534
|
+
for(var i=0;i<this.AryShowButton.length;++i)
|
|
60422
60535
|
{
|
|
60423
|
-
var
|
|
60424
|
-
|
|
60425
|
-
rtButton.Bottom=rtButton.Top+rtButton.Height;
|
|
60426
|
-
var yCenter=rtButton.Top+rtButton.Height/2;
|
|
60427
|
-
var xCenter=rtButton.Left+rtButton.Width/2;
|
|
60536
|
+
var item=this.AryShowButton[i];
|
|
60537
|
+
var icon=item.Data;
|
|
60428
60538
|
|
|
60429
|
-
var
|
|
60430
|
-
this.Canvas.font=`${icon.Size*pixelRatio}px ${icon.Family}`;
|
|
60431
|
-
this.Canvas.textAlign="center";
|
|
60432
|
-
this.Canvas.textBaseline="middle";
|
|
60433
|
-
this.Canvas.fillStyle=icon.Color;
|
|
60434
|
-
this.Canvas.fillText(this.Button.SettingIcon.Text,xCenter,yCenter);
|
|
60435
|
-
|
|
60436
|
-
this.AryButton.push({Rect:rtButton, ID:icon.ID, TooltipText:icon.TooltipText});
|
|
60437
|
-
|
|
60438
|
-
/*
|
|
60439
|
-
if (this.ColseButtonSize>0)
|
|
60440
|
-
{
|
|
60441
|
-
var xLine=rtButton.Right+this.ButtonSpace/2;
|
|
60442
|
-
xLine=ToFixedPoint(xLine);
|
|
60443
|
-
this.Canvas.strokeStyle=this.ButtonSplitLineColor;
|
|
60444
|
-
this.Canvas.beginPath();
|
|
60445
|
-
this.Canvas.moveTo(xLine,rtButton.Top);
|
|
60446
|
-
this.Canvas.lineTo(xLine,rtButton.Bottom);
|
|
60447
|
-
this.Canvas.stroke();
|
|
60448
|
-
}
|
|
60449
|
-
*/
|
|
60450
|
-
|
|
60451
|
-
left=rtButton.Right+this.ButtonSpace;
|
|
60452
|
-
}
|
|
60453
|
-
|
|
60454
|
-
if (this.Button.CloseIcon && this.Button.CloseIcon.Text)
|
|
60455
|
-
{
|
|
60456
|
-
var rtButton={Left:left, Top:drawTop, Width:this.ColseButtonSize, Height:drawHeight };
|
|
60539
|
+
var rtButton={Left:left, Top:drawTop, Width:item.Width, Height:drawHeight };
|
|
60457
60540
|
rtButton.Right=rtButton.Left+rtButton.Width;
|
|
60458
60541
|
rtButton.Bottom=rtButton.Top+rtButton.Height;
|
|
60459
60542
|
var yCenter=rtButton.Top+rtButton.Height/2;
|
|
60460
60543
|
var xCenter=rtButton.Left+rtButton.Width/2;
|
|
60461
|
-
|
|
60462
|
-
|
|
60544
|
+
|
|
60545
|
+
var font=`${icon.Size*pixelRatio}px ${icon.Family}`;
|
|
60546
|
+
this.Canvas.font=font;
|
|
60463
60547
|
this.Canvas.textAlign="center";
|
|
60464
60548
|
this.Canvas.textBaseline="middle";
|
|
60465
60549
|
this.Canvas.fillStyle=icon.Color;
|
|
60466
|
-
this.Canvas.fillText(
|
|
60550
|
+
this.Canvas.fillText(icon.Text,xCenter,yCenter);
|
|
60467
60551
|
|
|
60468
60552
|
this.AryButton.push({Rect:rtButton,ID:icon.ID, TooltipText:icon.TooltipText });
|
|
60469
60553
|
|
|
60470
60554
|
left=rtButton.Right;
|
|
60471
60555
|
}
|
|
60472
|
-
|
|
60473
|
-
rtDraw.Right=rtBG.Right;
|
|
60474
60556
|
}
|
|
60475
60557
|
|
|
60476
60558
|
this.PtInButtons=function(x,y)
|
|
@@ -116967,6 +117049,7 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
116967
117049
|
|
|
116968
117050
|
titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=new DynamicTitleData(chart.Data,varItem.Name,clrTitle);
|
|
116969
117051
|
|
|
117052
|
+
this.SetChartIndexName(chart);
|
|
116970
117053
|
frame.ChartPaint.push(chart);
|
|
116971
117054
|
}
|
|
116972
117055
|
|
|
@@ -117321,6 +117404,7 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
117321
117404
|
|
|
117322
117405
|
//var titleIndex=windowIndex+1;
|
|
117323
117406
|
//hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(bar.Data,varItem.Name,bar.Color);
|
|
117407
|
+
this.SetChartIndexName(chart);
|
|
117324
117408
|
frame.ChartPaint.push(chart);
|
|
117325
117409
|
}
|
|
117326
117410
|
|
|
@@ -131869,7 +131953,7 @@ function ScrollBarBGChart()
|
|
|
131869
131953
|
|
|
131870
131954
|
|
|
131871
131955
|
|
|
131872
|
-
var HQCHART_VERSION="1.1.
|
|
131956
|
+
var HQCHART_VERSION="1.1.13209";
|
|
131873
131957
|
|
|
131874
131958
|
function PrintHQChartVersion()
|
|
131875
131959
|
{
|
|
@@ -6597,7 +6597,12 @@ var JSCHART_MENU_ID=
|
|
|
6597
6597
|
CMD_SHOW_BEFORE_DATA_ID:24, //显示|隐藏集合竞价
|
|
6598
6598
|
|
|
6599
6599
|
CMD_SELECTED_ZOOM_ID:25, //选中放大
|
|
6600
|
-
CMD_SELECTED_SUMMARY_ID:26,
|
|
6600
|
+
CMD_SELECTED_SUMMARY_ID:26, //区间统计
|
|
6601
|
+
|
|
6602
|
+
CMD_SHOW_INDEX_ID:27, //显示隐藏指标
|
|
6603
|
+
CMD_SHOW_OVERLAY_INDEX_ID:28, //显示隐藏叠加指标
|
|
6604
|
+
CMD_DELETE_OVERLAY_INDEX_ID:29, //删除叠加指标
|
|
6605
|
+
CMD_SHOW_OVERLAY_Y_AXIS_ID:30, //显示隐藏Y轴叠加指标
|
|
6601
6606
|
}
|
|
6602
6607
|
|
|
6603
6608
|
|
|
@@ -13192,9 +13197,92 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
13192
13197
|
var dlg=new KLineSelectRectDialog(this.DivElement);
|
|
13193
13198
|
dlg.DoModal(srcParam);
|
|
13194
13199
|
break;
|
|
13200
|
+
|
|
13201
|
+
case JSCHART_MENU_ID.CMD_SHOW_INDEX_ID: //显示隐藏指标 [0]=windowIndex [1]=0=自动 1=隐藏 2=显示
|
|
13202
|
+
if (param==null || !IFrameSplitOperator.IsNumber(aryArgs[1])) return false;
|
|
13203
|
+
var windowIndex=param, showType=aryArgs[1];
|
|
13204
|
+
var script=this.WindowIndex[windowIndex];
|
|
13205
|
+
if (!script) return false;
|
|
13206
|
+
|
|
13207
|
+
if (showType==1) script.IsShow=false;
|
|
13208
|
+
else if (showType==2) script.IsShow=true;
|
|
13209
|
+
else script.IsShow=!script.IsShow;
|
|
13210
|
+
|
|
13211
|
+
this.UpdateWindowIndex(windowIndex);
|
|
13212
|
+
break;
|
|
13213
|
+
|
|
13214
|
+
case JSCHART_MENU_ID.CMD_SHOW_OVERLAY_INDEX_ID: //显示隐藏叠加指标 [0]=indexGuid [1]=0=自动 1=隐藏 2=显示
|
|
13215
|
+
if (!srcParam || !IFrameSplitOperator.IsNumber(aryArgs[1])) return false;
|
|
13216
|
+
var indexGuid=srcParam,showType=aryArgs[1];
|
|
13217
|
+
|
|
13218
|
+
var overlay=this.GetOverlayIndexByIdentify(indexGuid);
|
|
13219
|
+
if (!overlay || !overlay.OverlayItem || !overlay.OverlayItem.Script) return false;
|
|
13220
|
+
|
|
13221
|
+
var script=overlay.OverlayItem.Script;
|
|
13222
|
+
|
|
13223
|
+
if (showType==1) script.IsShow=false;
|
|
13224
|
+
else if (showType==2) script.IsShow==true;
|
|
13225
|
+
else script.IsShow=!script.IsShow;
|
|
13226
|
+
|
|
13227
|
+
this.UpdateOverlayIndex(indexGuid);
|
|
13228
|
+
break;
|
|
13229
|
+
case JSCHART_MENU_ID.CMD_DELETE_OVERLAY_INDEX_ID:
|
|
13230
|
+
if (srcParam && this.DeleteOverlayWindowsIndex)
|
|
13231
|
+
this.DeleteOverlayWindowsIndex(srcParam);
|
|
13232
|
+
break;
|
|
13233
|
+
case JSCHART_MENU_ID.CMD_SHOW_OVERLAY_Y_AXIS_ID:
|
|
13234
|
+
if (!srcParam || !IFrameSplitOperator.IsNumber(aryArgs[1])) return false;
|
|
13235
|
+
if (!this.GetOverlayIndexByIdentify) return false;
|
|
13236
|
+
|
|
13237
|
+
var indexGuid=srcParam,showType=aryArgs[1];
|
|
13238
|
+
var finder=this.GetOverlayIndexByIdentify(indexGuid);
|
|
13239
|
+
if (!finder || !finder.OverlayItem) return false;
|
|
13240
|
+
|
|
13241
|
+
var frame=finder.OverlayItem.Frame;
|
|
13242
|
+
if (showType==1) frame.IsShow=false;
|
|
13243
|
+
else if (showType==2) frame.IsShow==true;
|
|
13244
|
+
else frame.IsShow=!frame.IsShow;
|
|
13245
|
+
|
|
13246
|
+
this.UpdataDataoffset(); //更新数据偏移
|
|
13247
|
+
this.UpdateFrameMaxMin(); //调整坐标最大 最小值
|
|
13248
|
+
this.Draw();
|
|
13249
|
+
|
|
13250
|
+
break;
|
|
13195
13251
|
}
|
|
13196
13252
|
}
|
|
13197
13253
|
|
|
13254
|
+
this.GetShowIndexMenuData=function(windowIndex, showType)
|
|
13255
|
+
{
|
|
13256
|
+
var script=this.WindowIndex[windowIndex];
|
|
13257
|
+
if (!script) return null;
|
|
13258
|
+
|
|
13259
|
+
var data= { Name:script.IsShow?"隐藏指标":"显示指标", Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_INDEX_ID, Args:[windowIndex, 0] } };
|
|
13260
|
+
|
|
13261
|
+
return data;
|
|
13262
|
+
}
|
|
13263
|
+
|
|
13264
|
+
this.GetShowOverlayIndexMenuData=function(indexGuid, showType)
|
|
13265
|
+
{
|
|
13266
|
+
var overlay=this.GetOverlayIndexByIdentify(indexGuid);
|
|
13267
|
+
if (!overlay || !overlay.OverlayItem || !overlay.OverlayItem.Script) return null;
|
|
13268
|
+
|
|
13269
|
+
var script=overlay.OverlayItem.Script;
|
|
13270
|
+
var data= { Name:script.IsShow?"隐藏指标":"显示指标", Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_OVERLAY_INDEX_ID, Args:[indexGuid, 0] } };
|
|
13271
|
+
|
|
13272
|
+
return data;
|
|
13273
|
+
}
|
|
13274
|
+
|
|
13275
|
+
this.GetShowOverlayIndexYAxisMenuData=function(indexGuid, showType)
|
|
13276
|
+
{
|
|
13277
|
+
var overlay=this.GetOverlayIndexByIdentify(indexGuid);
|
|
13278
|
+
if (!overlay || !overlay.OverlayItem || !overlay.OverlayItem.Script) return null;
|
|
13279
|
+
|
|
13280
|
+
var frame=overlay.OverlayItem.Frame;
|
|
13281
|
+
var data= { Name:frame.IsShow?"隐藏Y轴":"显示Y轴", Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_OVERLAY_Y_AXIS_ID, Args:[indexGuid, 0] } };
|
|
13282
|
+
|
|
13283
|
+
return data;
|
|
13284
|
+
}
|
|
13285
|
+
|
|
13198
13286
|
//点击右键菜单
|
|
13199
13287
|
this.OnClickRightMenu=function(data)
|
|
13200
13288
|
{
|
|
@@ -57699,7 +57787,7 @@ function DynamicChartTitlePainting()
|
|
|
57699
57787
|
var rtButton={ Left:left, YCenter:yCenter };
|
|
57700
57788
|
this.DrawButton(item, rtButton, moveonPoint, mouseStatus);
|
|
57701
57789
|
|
|
57702
|
-
this.Buttons.push({ ID:item.ID, Rect:rtButton, FrameID:this.Frame.Identify, Type:1, OverlayID:toolbarInfo.ID, Title:overlayItem.Title });
|
|
57790
|
+
this.Buttons.push({ ID:item.ID, Rect:rtButton, FrameID:this.Frame.Identify, Type:1, OverlayID:toolbarInfo.ID, Title:overlayItem.Title, Data:item.Data });
|
|
57703
57791
|
|
|
57704
57792
|
left=rtButton.Right;
|
|
57705
57793
|
|
|
@@ -59929,11 +60017,14 @@ function ChartDrawHLine()
|
|
|
59929
60017
|
|
|
59930
60018
|
this.Button=
|
|
59931
60019
|
{
|
|
59932
|
-
CloseIcon: { Text:'\ue62b', Color:'rgb(255,255,255)', Family:"iconfont", Size:16, ID:JSCHART_BUTTON_ID.DRAW_PICTURE_DELETE, TooltipText:null },
|
|
59933
|
-
SettingIcon: { Text:'\ue623',Color:'rgb(255,255,255)', Family:"iconfont", Size:16, ID:JSCHART_BUTTON_ID.DRAW_PICTURE_SETTING, TooltipText:null }
|
|
60020
|
+
CloseIcon: { Text:'\ue62b', Color:'rgb(255,255,255)', Family:"iconfont", Size:16, ID:JSCHART_BUTTON_ID.DRAW_PICTURE_DELETE, TooltipText:null, Margin:{ Left:2, Right:2 } },
|
|
60021
|
+
SettingIcon: { Text:'\ue623',Color:'rgb(255,255,255)', Family:"iconfont", Size:16, ID:JSCHART_BUTTON_ID.DRAW_PICTURE_SETTING, TooltipText:null, Margin:{ Left:2, Right:2 } }
|
|
59934
60022
|
//修改ID, Text , TooltipText 可以外部定制按钮
|
|
59935
60023
|
}
|
|
59936
60024
|
|
|
60025
|
+
this.CustomButton=[]; //自定义的按钮 { Text:'\ue62b', Color:'rgb(255,255,255)', Family:"iconfont", Size:16, ID:JSCHART_BUTTON_ID.DRAW_PICTURE_BUTTON_1, TooltipText:null }
|
|
60026
|
+
|
|
60027
|
+
this.AryShowButton=[]; //需要显示的按钮 { Data:, Width }
|
|
59937
60028
|
this.AryButton=[];
|
|
59938
60029
|
this.ExtendData; //扩展数据
|
|
59939
60030
|
this.ShowPriceTextConfig=
|
|
@@ -60039,8 +60130,32 @@ function ChartDrawHLine()
|
|
|
60039
60130
|
this.Draw();
|
|
60040
60131
|
}
|
|
60041
60132
|
|
|
60133
|
+
//获取需要显示的按钮 系统按钮+自定义按钮
|
|
60134
|
+
this.GetShowButton=function()
|
|
60135
|
+
{
|
|
60136
|
+
var aryButton=[];
|
|
60137
|
+
|
|
60138
|
+
var item=this.Button.SettingIcon;
|
|
60139
|
+
if (item && item.Text) aryButton.push({ Data:item, Width:null });
|
|
60140
|
+
|
|
60141
|
+
item=this.Button.CloseIcon;
|
|
60142
|
+
if (item && item.Text) aryButton.push({ Data:item, Width:null });
|
|
60143
|
+
|
|
60144
|
+
if (IFrameSplitOperator.IsNonEmptyArray(this.CustomButton))
|
|
60145
|
+
{
|
|
60146
|
+
for(var i=0;i<this.CustomButton.length;++i)
|
|
60147
|
+
{
|
|
60148
|
+
item=this.CustomButton[i];
|
|
60149
|
+
if (item && item.Text) aryButton.push({ Data:item, Width:null });
|
|
60150
|
+
}
|
|
60151
|
+
}
|
|
60152
|
+
|
|
60153
|
+
return aryButton;
|
|
60154
|
+
}
|
|
60155
|
+
|
|
60042
60156
|
this.Draw=function(moveonPoint, mouseStatus)
|
|
60043
60157
|
{
|
|
60158
|
+
this.AryShowButton=[];
|
|
60044
60159
|
this.LinePoint=[];
|
|
60045
60160
|
this.AryButton=[];
|
|
60046
60161
|
this.ColseButtonSize=0;
|
|
@@ -60116,6 +60231,8 @@ function ChartDrawHLine()
|
|
|
60116
60231
|
var labInfo;
|
|
60117
60232
|
if (this.GetLabelCallback) labInfo=this.GetLabelCallback(this);
|
|
60118
60233
|
|
|
60234
|
+
this.AryShowButton=this.GetShowButton(); //获取按钮
|
|
60235
|
+
|
|
60119
60236
|
//描述信息
|
|
60120
60237
|
if (labInfo)
|
|
60121
60238
|
this.DrawLab(labInfo, drawPoint[0].Y);
|
|
@@ -60291,11 +60408,17 @@ function ChartDrawHLine()
|
|
|
60291
60408
|
{
|
|
60292
60409
|
var item=labInfo.AryLine[i];
|
|
60293
60410
|
if (!IFrameSplitOperator.IsNumber(item.Value)) continue;
|
|
60411
|
+
if (item.Width<0) continue;
|
|
60294
60412
|
|
|
60295
60413
|
var y=this.Frame.GetYFromData(item.Value);
|
|
60296
60414
|
var yFixed=ToFixedPoint(y);
|
|
60297
60415
|
var xRight=right;
|
|
60298
|
-
if (IFrameSplitOperator.
|
|
60416
|
+
if (IFrameSplitOperator.IsPlusNumber(item.Width))
|
|
60417
|
+
{
|
|
60418
|
+
if (item.Width<1) xRight=left+(item.Width*(right-left)); //0.3 百分比
|
|
60419
|
+
else xRight=left+item.Width*pixelRatio; //>1 实际数值就是长度
|
|
60420
|
+
}
|
|
60421
|
+
|
|
60299
60422
|
if (item.Color) this.Canvas.strokeStyle=item.Color;
|
|
60300
60423
|
else this.Canvas.strokeStyle=this.LineColor;
|
|
60301
60424
|
|
|
@@ -60413,42 +60536,33 @@ function ChartDrawHLine()
|
|
|
60413
60536
|
{
|
|
60414
60537
|
var pixelRatio=GetDevicePixelRatio();
|
|
60415
60538
|
|
|
60416
|
-
if (this.
|
|
60417
|
-
{
|
|
60418
|
-
var icon=this.Button.SettingIcon;
|
|
60419
|
-
var font=`${icon.Size*pixelRatio}px ${icon.Family}`;
|
|
60420
|
-
this.Canvas.font=font;
|
|
60421
|
-
var width=this.Canvas.measureText(icon.Text).width;
|
|
60422
|
-
this.SettingButtonSize=width;
|
|
60423
|
-
}
|
|
60539
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.AryShowButton)) return;
|
|
60424
60540
|
|
|
60425
|
-
|
|
60541
|
+
var totalWidth=0;
|
|
60542
|
+
for(var i=0;i<this.AryShowButton.length;++i)
|
|
60426
60543
|
{
|
|
60427
|
-
var
|
|
60544
|
+
var item=this.AryShowButton[i];
|
|
60545
|
+
var icon=item.Data;
|
|
60428
60546
|
var font=`${icon.Size*pixelRatio}px ${icon.Family}`;
|
|
60429
60547
|
this.Canvas.font=font;
|
|
60430
|
-
|
|
60431
|
-
this.ColseButtonSize=width;
|
|
60432
|
-
}
|
|
60548
|
+
item.Width=this.Canvas.measureText(icon.Text).width+2;
|
|
60433
60549
|
|
|
60434
|
-
|
|
60550
|
+
if (icon.Margin)
|
|
60551
|
+
{
|
|
60552
|
+
var margin=icon.Margin;
|
|
60553
|
+
if (IFrameSplitOperator.IsNumber(margin.Left)) item.Width+=margin.Left;
|
|
60554
|
+
if (IFrameSplitOperator.IsNumber(margin.Right)) item.Width+=margin.Right;
|
|
60555
|
+
}
|
|
60435
60556
|
|
|
60436
|
-
|
|
60437
|
-
if (this.SettingButtonSize>0) buttonWidth+=this.SettingButtonSize;
|
|
60438
|
-
if (this.ColseButtonSize>0)
|
|
60439
|
-
{
|
|
60440
|
-
if (buttonWidth>0) buttonWidth+=this.ButtonSpace;
|
|
60441
|
-
buttonWidth+=this.ColseButtonSize;
|
|
60557
|
+
totalWidth+=item.Width;
|
|
60442
60558
|
}
|
|
60443
60559
|
|
|
60444
|
-
|
|
60445
|
-
|
|
60446
|
-
this.ButtonBGWidth=buttonWidth;
|
|
60560
|
+
this.ButtonBGWidth=totalWidth;
|
|
60447
60561
|
}
|
|
60448
60562
|
|
|
60449
60563
|
this.DrawButton=function(drawTop, drawLeft, drawHeight, rtDraw)
|
|
60450
60564
|
{
|
|
60451
|
-
if (
|
|
60565
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.AryShowButton)) return;
|
|
60452
60566
|
|
|
60453
60567
|
if (this.ButtonPosition==1) drawTop-=drawHeight;
|
|
60454
60568
|
|
|
@@ -60460,61 +60574,29 @@ function ChartDrawHLine()
|
|
|
60460
60574
|
this.Canvas.fillStyle=this.ButtonBGColor;
|
|
60461
60575
|
this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top), ToFixedRect(rtBG.Width),ToFixedRect(rtBG.Height));
|
|
60462
60576
|
|
|
60463
|
-
left+=1;
|
|
60464
60577
|
var pixelRatio=GetDevicePixelRatio();
|
|
60465
|
-
|
|
60578
|
+
for(var i=0;i<this.AryShowButton.length;++i)
|
|
60466
60579
|
{
|
|
60467
|
-
var
|
|
60468
|
-
|
|
60469
|
-
rtButton.Bottom=rtButton.Top+rtButton.Height;
|
|
60470
|
-
var yCenter=rtButton.Top+rtButton.Height/2;
|
|
60471
|
-
var xCenter=rtButton.Left+rtButton.Width/2;
|
|
60580
|
+
var item=this.AryShowButton[i];
|
|
60581
|
+
var icon=item.Data;
|
|
60472
60582
|
|
|
60473
|
-
var
|
|
60474
|
-
this.Canvas.font=`${icon.Size*pixelRatio}px ${icon.Family}`;
|
|
60475
|
-
this.Canvas.textAlign="center";
|
|
60476
|
-
this.Canvas.textBaseline="middle";
|
|
60477
|
-
this.Canvas.fillStyle=icon.Color;
|
|
60478
|
-
this.Canvas.fillText(this.Button.SettingIcon.Text,xCenter,yCenter);
|
|
60479
|
-
|
|
60480
|
-
this.AryButton.push({Rect:rtButton, ID:icon.ID, TooltipText:icon.TooltipText});
|
|
60481
|
-
|
|
60482
|
-
/*
|
|
60483
|
-
if (this.ColseButtonSize>0)
|
|
60484
|
-
{
|
|
60485
|
-
var xLine=rtButton.Right+this.ButtonSpace/2;
|
|
60486
|
-
xLine=ToFixedPoint(xLine);
|
|
60487
|
-
this.Canvas.strokeStyle=this.ButtonSplitLineColor;
|
|
60488
|
-
this.Canvas.beginPath();
|
|
60489
|
-
this.Canvas.moveTo(xLine,rtButton.Top);
|
|
60490
|
-
this.Canvas.lineTo(xLine,rtButton.Bottom);
|
|
60491
|
-
this.Canvas.stroke();
|
|
60492
|
-
}
|
|
60493
|
-
*/
|
|
60494
|
-
|
|
60495
|
-
left=rtButton.Right+this.ButtonSpace;
|
|
60496
|
-
}
|
|
60497
|
-
|
|
60498
|
-
if (this.Button.CloseIcon && this.Button.CloseIcon.Text)
|
|
60499
|
-
{
|
|
60500
|
-
var rtButton={Left:left, Top:drawTop, Width:this.ColseButtonSize, Height:drawHeight };
|
|
60583
|
+
var rtButton={Left:left, Top:drawTop, Width:item.Width, Height:drawHeight };
|
|
60501
60584
|
rtButton.Right=rtButton.Left+rtButton.Width;
|
|
60502
60585
|
rtButton.Bottom=rtButton.Top+rtButton.Height;
|
|
60503
60586
|
var yCenter=rtButton.Top+rtButton.Height/2;
|
|
60504
60587
|
var xCenter=rtButton.Left+rtButton.Width/2;
|
|
60505
|
-
|
|
60506
|
-
|
|
60588
|
+
|
|
60589
|
+
var font=`${icon.Size*pixelRatio}px ${icon.Family}`;
|
|
60590
|
+
this.Canvas.font=font;
|
|
60507
60591
|
this.Canvas.textAlign="center";
|
|
60508
60592
|
this.Canvas.textBaseline="middle";
|
|
60509
60593
|
this.Canvas.fillStyle=icon.Color;
|
|
60510
|
-
this.Canvas.fillText(
|
|
60594
|
+
this.Canvas.fillText(icon.Text,xCenter,yCenter);
|
|
60511
60595
|
|
|
60512
60596
|
this.AryButton.push({Rect:rtButton,ID:icon.ID, TooltipText:icon.TooltipText });
|
|
60513
60597
|
|
|
60514
60598
|
left=rtButton.Right;
|
|
60515
60599
|
}
|
|
60516
|
-
|
|
60517
|
-
rtDraw.Right=rtBG.Right;
|
|
60518
60600
|
}
|
|
60519
60601
|
|
|
60520
60602
|
this.PtInButtons=function(x,y)
|
|
@@ -117011,6 +117093,7 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
117011
117093
|
|
|
117012
117094
|
titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=new DynamicTitleData(chart.Data,varItem.Name,clrTitle);
|
|
117013
117095
|
|
|
117096
|
+
this.SetChartIndexName(chart);
|
|
117014
117097
|
frame.ChartPaint.push(chart);
|
|
117015
117098
|
}
|
|
117016
117099
|
|
|
@@ -117365,6 +117448,7 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
117365
117448
|
|
|
117366
117449
|
//var titleIndex=windowIndex+1;
|
|
117367
117450
|
//hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(bar.Data,varItem.Name,bar.Color);
|
|
117451
|
+
this.SetChartIndexName(chart);
|
|
117368
117452
|
frame.ChartPaint.push(chart);
|
|
117369
117453
|
}
|
|
117370
117454
|
|
|
@@ -134782,7 +134866,7 @@ function HQChartScriptWorker()
|
|
|
134782
134866
|
|
|
134783
134867
|
|
|
134784
134868
|
|
|
134785
|
-
var HQCHART_VERSION="1.1.
|
|
134869
|
+
var HQCHART_VERSION="1.1.13209";
|
|
134786
134870
|
|
|
134787
134871
|
function PrintHQChartVersion()
|
|
134788
134872
|
{
|