hqchart 1.1.13171 → 1.1.13182
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 +276 -183
- package/package.json +1 -1
- package/src/jscommon/umychart.js +787 -109
- package/src/jscommon/umychart.popMenu.js +266 -0
- package/src/jscommon/umychart.resource/css/umychart.popmenu.css +92 -0
- package/src/jscommon/umychart.resource/font/iconfont.css +7 -3
- package/src/jscommon/umychart.resource/font/iconfont.ttf +0 -0
- package/src/jscommon/umychart.resource/font/iconfont.woff +0 -0
- package/src/jscommon/umychart.resource/font/iconfont.woff2 +0 -0
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +788 -110
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +1056 -110
|
@@ -4211,6 +4211,8 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4211
4211
|
chart.ModifyIndexDialog=this.ModifyIndexDialog;
|
|
4212
4212
|
chart.ChangeIndexDialog=this.ChangeIndexDialog;
|
|
4213
4213
|
chart.MinuteDialog=this.MinuteDialog;
|
|
4214
|
+
|
|
4215
|
+
var pixelRatio=GetDevicePixelRatio();
|
|
4214
4216
|
|
|
4215
4217
|
//右键菜单
|
|
4216
4218
|
if (option.IsShowRightMenu==true) chart.RightMenu=new KLineRightMenu(this.DivElement);
|
|
@@ -4429,8 +4431,8 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4429
4431
|
chart.Frame.SubFrame[i].Frame.IsShowYText[1]=item.IsShowRightText;
|
|
4430
4432
|
chart.Frame.SubFrame[i].Frame.YSplitOperator.IsShowRightText=item.IsShowRightText; //显示右边刻度
|
|
4431
4433
|
}
|
|
4432
|
-
if (item.TopSpace>=0) chart.Frame.SubFrame[i].Frame.ChartBorder.TopSpace=item.TopSpace;
|
|
4433
|
-
if (item.BottomSpace>=0) chart.Frame.SubFrame[i].Frame.ChartBorder.BottomSpace=item.BottomSpace;
|
|
4434
|
+
if (item.TopSpace>=0) chart.Frame.SubFrame[i].Frame.ChartBorder.TopSpace=item.TopSpace*pixelRatio;
|
|
4435
|
+
if (item.BottomSpace>=0) chart.Frame.SubFrame[i].Frame.ChartBorder.BottomSpace=item.BottomSpace*pixelRatio;
|
|
4434
4436
|
|
|
4435
4437
|
if (item.RightTextPosition>0) chart.Frame.SubFrame[i].Frame.YTextPosition[1]=item.RightTextPosition;
|
|
4436
4438
|
if (item.LeftTextPosition>0) chart.Frame.SubFrame[i].Frame.YTextPosition[0]=item.LeftTextPosition;
|
|
@@ -4732,6 +4734,8 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4732
4734
|
chart.ModifyIndexDialog=this.ModifyIndexDialog;
|
|
4733
4735
|
chart.ChangeIndexDialog=this.ChangeIndexDialog;
|
|
4734
4736
|
|
|
4737
|
+
var pixelRatio=GetDevicePixelRatio();
|
|
4738
|
+
|
|
4735
4739
|
var windowsCount=2;
|
|
4736
4740
|
if (option.Windows && option.Windows.length>0) windowsCount+=option.Windows.length; //指标窗口从第3个窗口开始
|
|
4737
4741
|
if (option.EnableScrollUpDown==true) chart.EnableScrollUpDown=option.EnableScrollUpDown;
|
|
@@ -4899,8 +4903,8 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4899
4903
|
if (IFrameSplitOperator.IsNumber(item.YTextBaseline)) chart.Frame.SubFrame[i].Frame.YTextBaseline=item.YTextBaseline;
|
|
4900
4904
|
if (IFrameSplitOperator.IsBool(item.IsShowIndexTitle)) chart.Frame.SubFrame[i].Frame.IsShowIndexTitle=item.IsShowIndexTitle;
|
|
4901
4905
|
|
|
4902
|
-
if (item.TopSpace>=0) chart.Frame.SubFrame[i].Frame.ChartBorder.TopSpace=item.TopSpace;
|
|
4903
|
-
if (item.BottomSpace>=0) chart.Frame.SubFrame[i].Frame.ChartBorder.BottomSpace=item.BottomSpace;
|
|
4906
|
+
if (item.TopSpace>=0) chart.Frame.SubFrame[i].Frame.ChartBorder.TopSpace=item.TopSpace*pixelRatio;
|
|
4907
|
+
if (item.BottomSpace>=0) chart.Frame.SubFrame[i].Frame.ChartBorder.BottomSpace=item.BottomSpace*pixelRatio;
|
|
4904
4908
|
|
|
4905
4909
|
//是否显示关闭集合竞价按钮
|
|
4906
4910
|
if (IFrameSplitOperator.IsNumber(item.CloseBeforeButton)) chart.Frame.SubFrame[i].Frame.IsShowCloseButton=item.CloseBeforeButton;
|
|
@@ -5573,6 +5577,13 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
5573
5577
|
//是否自动更新
|
|
5574
5578
|
if (option.IsAutoUpdate!=null) chart.IsAutoUpdate=option.IsAutoUpdate;
|
|
5575
5579
|
if (option.AutoUpdateFrequency>0) chart.AutoUpdateFrequency=option.AutoUpdateFrequency;
|
|
5580
|
+
//内置菜单
|
|
5581
|
+
if (option.EnablePopMenuV2===true)
|
|
5582
|
+
{
|
|
5583
|
+
chart.JSPopMenu=new JSPopMenu();
|
|
5584
|
+
chart.JSPopMenu.Inital();
|
|
5585
|
+
chart.EnablePopMenuV2=true;
|
|
5586
|
+
}
|
|
5576
5587
|
//注册事件
|
|
5577
5588
|
if (option.EventCallback)
|
|
5578
5589
|
{
|
|
@@ -5599,19 +5610,6 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
5599
5610
|
this.DivElement.JSChart=this; //div中保存一份
|
|
5600
5611
|
this.JSChartContainer.Draw();
|
|
5601
5612
|
}
|
|
5602
|
-
|
|
5603
|
-
if (IFrameSplitOperator.IsBool(option.CheckLatestVerion) && option.CheckLatestVerion==false)
|
|
5604
|
-
{
|
|
5605
|
-
|
|
5606
|
-
}
|
|
5607
|
-
else if (JSChart.LastVersion==null)
|
|
5608
|
-
{
|
|
5609
|
-
if (chart && typeof(chart.GetLatestVersion)=='function')
|
|
5610
|
-
{
|
|
5611
|
-
//由于域名都要备案,获取最新版本接口停止使用
|
|
5612
|
-
//chart.GetLatestVersion();
|
|
5613
|
-
}
|
|
5614
|
-
}
|
|
5615
5613
|
}
|
|
5616
5614
|
|
|
5617
5615
|
//创建工具条
|
|
@@ -6055,6 +6053,15 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
6055
6053
|
return this.JSChartContainer.ChangePriceGap(option);
|
|
6056
6054
|
}
|
|
6057
6055
|
}
|
|
6056
|
+
|
|
6057
|
+
this.PopupMenuByTab=function(menuData, rtTab)
|
|
6058
|
+
{
|
|
6059
|
+
if(this.JSChartContainer && typeof(this.JSChartContainer.PopupMenuByTab)=='function')
|
|
6060
|
+
{
|
|
6061
|
+
JSConsole.Chart.Log('[JSChart:ChangePriceGap] ');
|
|
6062
|
+
return this.JSChartContainer.PopupMenuByTab(menuData, rtTab);
|
|
6063
|
+
}
|
|
6064
|
+
}
|
|
6058
6065
|
}
|
|
6059
6066
|
|
|
6060
6067
|
JSChart.LastVersion=null; //最新的版本号
|
|
@@ -6260,6 +6267,12 @@ JSChart.ToFixedRect=function(value)
|
|
|
6260
6267
|
return ToFixedRect(value);
|
|
6261
6268
|
}
|
|
6262
6269
|
|
|
6270
|
+
JSChart.GetScrollPosition=function()
|
|
6271
|
+
{
|
|
6272
|
+
return GetScrollPosition();
|
|
6273
|
+
}
|
|
6274
|
+
|
|
6275
|
+
|
|
6263
6276
|
|
|
6264
6277
|
|
|
6265
6278
|
var JSCHART_EVENT_ID=
|
|
@@ -6545,6 +6558,36 @@ var JSCHART_WORKER_MESSAGE_ID=
|
|
|
6545
6558
|
ERROR_EXECUTE_SCRIPT:3,
|
|
6546
6559
|
}
|
|
6547
6560
|
|
|
6561
|
+
var JSCHART_MENU_ID=
|
|
6562
|
+
{
|
|
6563
|
+
CMD_CHANGE_PERIOD_ID:1, //切换周期
|
|
6564
|
+
CMD_CHANGE_WINDOW_COUNT_ID:2, //窗口个数
|
|
6565
|
+
CMD_CHANGE_RIGHT_ID:3, //复权
|
|
6566
|
+
CMD_CHANGE_INDEX_ID:4, //切换指标
|
|
6567
|
+
CMD_CHANGE_COLOR_INDEX_ID:5, //五彩K线指标
|
|
6568
|
+
CMD_CHANGE_TRADE_INDEX_ID:6, //专家系统(交易指标)
|
|
6569
|
+
CMD_DELETE_COLOR_INDEX_ID:7, //删除五彩K线指标
|
|
6570
|
+
CMD_DELETE_TRADE_INDEX_ID:8, //删除专家系统(交易指标)
|
|
6571
|
+
CMD_CHANGE_KLINE_TYPE_ID:9, //切换K线类型
|
|
6572
|
+
CMD_CHANGE_PRICE_GAP_ID:10, //缺口提示
|
|
6573
|
+
CMD_OVERLAY_SYMBOL_ID:11, //叠加品种
|
|
6574
|
+
CMD_DELETE_ALL_OVERLAY_SYMBOL_ID:12, //删除所有叠加品种
|
|
6575
|
+
CMD_CHANGE_COORDINATETYPE_ID:13, //切换坐标类型
|
|
6576
|
+
CMD_CHANGE_KLINE_INFO_ID:14, //切换信息地雷
|
|
6577
|
+
CMD_DELETE_ALL_KLINE_INFO_ID:15, //清空信息地雷
|
|
6578
|
+
CMD_CHANGE_DRAG_MODE_ID:16, //切换拖动模式
|
|
6579
|
+
CMD_CHANGE_BG_SPLIT_ID:17, //背景分割
|
|
6580
|
+
|
|
6581
|
+
CMD_SHOW_DRAWTOOL_ID:18, //画图工具
|
|
6582
|
+
CMD_HIDE_DRAWTOOL_ID:19,
|
|
6583
|
+
|
|
6584
|
+
CMD_SHOW_STOCKCHIP_ID:20, //筹码分布
|
|
6585
|
+
CMD_HIDE_STOCKCHIP_ID:21,
|
|
6586
|
+
|
|
6587
|
+
CMD_ENABLE_SELECT_RECT_ID:22, //启动区间选择
|
|
6588
|
+
CMD_CHANGE_DAY_COUNT_ID:23, //切换天数
|
|
6589
|
+
}
|
|
6590
|
+
|
|
6548
6591
|
|
|
6549
6592
|
function PhoneDBClick()
|
|
6550
6593
|
{
|
|
@@ -6630,6 +6673,11 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
6630
6673
|
this.LoadDataSplashTitle="数据加载中"; //下载数据提示信息
|
|
6631
6674
|
this.DefaultCursor="default"; //crosshair , default 默认手型
|
|
6632
6675
|
|
|
6676
|
+
this.EnablePopMenuV2=false;
|
|
6677
|
+
this.JSPopMenu; //内置菜单
|
|
6678
|
+
//this.JSPopMenu=new JSPopMenu(); //内置菜单
|
|
6679
|
+
//this.JSPopMenu.Inital();
|
|
6680
|
+
|
|
6633
6681
|
//绘图缓存
|
|
6634
6682
|
this.CacheCanvas=null;
|
|
6635
6683
|
this.CacheElement=null;
|
|
@@ -6825,61 +6873,10 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
6825
6873
|
{
|
|
6826
6874
|
this.IsDestroy=true;
|
|
6827
6875
|
this.StopAutoUpdate();
|
|
6828
|
-
|
|
6829
|
-
if (this.GetLatestVersionTimer!=null)
|
|
6830
|
-
{
|
|
6831
|
-
clearTimeout(this.GetLatestVersionTimer);
|
|
6832
|
-
this.GetLatestVersionTimer=null;
|
|
6833
|
-
}
|
|
6834
6876
|
}
|
|
6835
6877
|
|
|
6836
6878
|
this.ChartDestory=this.ChartDestroy; //老版本写错了,需要兼容下
|
|
6837
6879
|
|
|
6838
|
-
|
|
6839
|
-
this.GetLatestVersionTimer=null; //获取最新版本
|
|
6840
|
-
this.GetLatestVersion=function()
|
|
6841
|
-
{
|
|
6842
|
-
if (this.GetLatestVersionTimer!=null)
|
|
6843
|
-
{
|
|
6844
|
-
clearTimeout(this.GetLatestVersionTimer);
|
|
6845
|
-
this.GetLatestVersionTimer=null;
|
|
6846
|
-
}
|
|
6847
|
-
|
|
6848
|
-
var roundeTime=Math.floor(Math.random()*50);
|
|
6849
|
-
var waittimer=1000*60*3+(roundeTime*1000);
|
|
6850
|
-
var value="aHR0cHM6Ly9ocWNoYXJ0LnplYWxpbmsuY29tL2FwaS9HZXRWZXJzaW9u";
|
|
6851
|
-
JSConsole.Chart.Log("[JSChartContainer::GetLatestVersion] wait for get hqchart latest version. ",waittimer);
|
|
6852
|
-
this.GetLatestVersionTimer = setTimeout(()=>
|
|
6853
|
-
{
|
|
6854
|
-
var width=0, height=0;
|
|
6855
|
-
if (this.Frame && this.Frame.ChartBorder)
|
|
6856
|
-
{
|
|
6857
|
-
width=this.Frame.ChartBorder.GetChartWidth();
|
|
6858
|
-
height=this.Frame.ChartBorder.GetChartHeight();
|
|
6859
|
-
}
|
|
6860
|
-
|
|
6861
|
-
var url=`${atob(value)}?width=${width}&height=${height}&type=h5`;
|
|
6862
|
-
|
|
6863
|
-
if (JSChart.LastVersion!=null) return; //只请求一次
|
|
6864
|
-
|
|
6865
|
-
JSNetwork.HttpRequest({
|
|
6866
|
-
url: url,
|
|
6867
|
-
type:"get",
|
|
6868
|
-
dataType: "json",
|
|
6869
|
-
async:true,
|
|
6870
|
-
success:function(data)
|
|
6871
|
-
{
|
|
6872
|
-
JSConsole.Chart.Log("[JSChartContainer::GetLatestVersion] hqchart latest version. ",data);
|
|
6873
|
-
JSChart.LastVersion=data;
|
|
6874
|
-
},
|
|
6875
|
-
error:function(request, textStatus, errorThrown)
|
|
6876
|
-
{
|
|
6877
|
-
JSConsole.Chart.Log("[JSChartContainer::GetLatestVersion] Get HQChart latest version failed.", request);
|
|
6878
|
-
}
|
|
6879
|
-
});
|
|
6880
|
-
}, waittimer);
|
|
6881
|
-
}
|
|
6882
|
-
|
|
6883
6880
|
//设置焦点
|
|
6884
6881
|
this.SetFocus=function()
|
|
6885
6882
|
{
|
|
@@ -12938,6 +12935,213 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
12938
12935
|
}
|
|
12939
12936
|
}
|
|
12940
12937
|
}
|
|
12938
|
+
|
|
12939
|
+
this.PopupMenuByTab=function(menuData, rtTab)
|
|
12940
|
+
{
|
|
12941
|
+
if (!this.JSPopMenu) return;
|
|
12942
|
+
|
|
12943
|
+
var pixelRatio=GetDevicePixelRatio();
|
|
12944
|
+
var rtCell={ Left:rtTab.Left/pixelRatio, Right:rtTab.Right/pixelRatio, Bottom:rtTab.Bottom/pixelRatio, Top:rtTab.Top/pixelRatio };
|
|
12945
|
+
rtCell.Width=rtCell.Right-rtCell.Left;
|
|
12946
|
+
rtCell.Height=rtCell.Bottom-rtCell.Top;
|
|
12947
|
+
|
|
12948
|
+
var rtClient=this.UIElement.getBoundingClientRect();
|
|
12949
|
+
var rtScroll=GetScrollPosition();
|
|
12950
|
+
|
|
12951
|
+
var offsetLeft=rtClient.left+rtScroll.Left;
|
|
12952
|
+
var offsetTop=rtClient.top+rtScroll.Top;
|
|
12953
|
+
rtCell.Left+=offsetLeft;
|
|
12954
|
+
rtCell.Right+=offsetLeft;
|
|
12955
|
+
rtCell.Top+=offsetTop;
|
|
12956
|
+
rtCell.Bottom+=offsetTop;
|
|
12957
|
+
|
|
12958
|
+
this.JSPopMenu.CreatePopMenu(menuData);
|
|
12959
|
+
this.JSPopMenu.PopupMenuByTab(rtCell);
|
|
12960
|
+
}
|
|
12961
|
+
|
|
12962
|
+
this.PopuMenuByRClick=function(menuData, x, y)
|
|
12963
|
+
{
|
|
12964
|
+
var rtClient=this.UIElement.getBoundingClientRect();
|
|
12965
|
+
var rtScroll=GetScrollPosition();
|
|
12966
|
+
|
|
12967
|
+
x+=rtClient.left+rtScroll.Left;
|
|
12968
|
+
y+=rtClient.top+rtScroll.Top;
|
|
12969
|
+
|
|
12970
|
+
this.JSPopMenu.CreatePopMenu(menuData);
|
|
12971
|
+
this.JSPopMenu.PopupMenuByRight(x,y);
|
|
12972
|
+
}
|
|
12973
|
+
|
|
12974
|
+
//点击右键菜单
|
|
12975
|
+
this.OnClickRightMenu=function(data)
|
|
12976
|
+
{
|
|
12977
|
+
JSConsole.Chart.Log('[JSChartContainer::OnClickRightMenu] ',data);
|
|
12978
|
+
if (!data || !data.Data) return;
|
|
12979
|
+
|
|
12980
|
+
var cmdID=data.Data.ID; //命令ID
|
|
12981
|
+
var aryArgs=data.Data.Args; //参数
|
|
12982
|
+
var param=null, srcParam=null; //原始值
|
|
12983
|
+
if (IFrameSplitOperator.IsNonEmptyArray(aryArgs))
|
|
12984
|
+
{
|
|
12985
|
+
srcParam=aryArgs[0];
|
|
12986
|
+
if (IFrameSplitOperator.IsNumber(aryArgs[0])) param=aryArgs[0];
|
|
12987
|
+
}
|
|
12988
|
+
|
|
12989
|
+
switch(cmdID)
|
|
12990
|
+
{
|
|
12991
|
+
case JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID:
|
|
12992
|
+
if (this.ChangePeriod && param!=null)
|
|
12993
|
+
this.ChangePeriod(param);
|
|
12994
|
+
break;
|
|
12995
|
+
case JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID:
|
|
12996
|
+
if (this.ChangeIndexWindowCount && param!=null)
|
|
12997
|
+
this.ChangeIndexWindowCount(param);
|
|
12998
|
+
break;
|
|
12999
|
+
case JSCHART_MENU_ID.CMD_CHANGE_RIGHT_ID:
|
|
13000
|
+
if (this.ChangeRight && param!=null)
|
|
13001
|
+
this.ChangeRight(param);
|
|
13002
|
+
break;
|
|
13003
|
+
case JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID:
|
|
13004
|
+
if (this.ChangeIndex && param!=null && aryArgs[1])
|
|
13005
|
+
this.ChangeIndex(param,aryArgs[1]);
|
|
13006
|
+
break;
|
|
13007
|
+
|
|
13008
|
+
case JSCHART_MENU_ID.CMD_CHANGE_COLOR_INDEX_ID:
|
|
13009
|
+
case JSCHART_MENU_ID.CMD_CHANGE_TRADE_INDEX_ID:
|
|
13010
|
+
if (this.ChangeInstructionIndex && aryArgs[0])
|
|
13011
|
+
this.ChangeInstructionIndex(aryArgs[0]);
|
|
13012
|
+
break;
|
|
13013
|
+
case JSCHART_MENU_ID.CMD_DELETE_COLOR_INDEX_ID: //删除五彩K线指标
|
|
13014
|
+
case JSCHART_MENU_ID.CMD_DELETE_TRADE_INDEX_ID: //删除专家系统(交易指标)
|
|
13015
|
+
if (this.CancelInstructionIndex) this.CancelInstructionIndex();
|
|
13016
|
+
break;
|
|
13017
|
+
case JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID: //切换K线类型
|
|
13018
|
+
if (this.ChangeKLineDrawType && param!=null)
|
|
13019
|
+
this.ChangeKLineDrawType(param,aryArgs[1],aryArgs[2]);
|
|
13020
|
+
break;
|
|
13021
|
+
case JSCHART_MENU_ID.CMD_CHANGE_PRICE_GAP_ID: //缺口提示
|
|
13022
|
+
if (this.ChangePriceGap && IFrameSplitOperator.IsBool(aryArgs[0]))
|
|
13023
|
+
{
|
|
13024
|
+
if (aryArgs[0]==false)
|
|
13025
|
+
{
|
|
13026
|
+
this.ChangePriceGap({ Enable:aryArgs[0] });
|
|
13027
|
+
}
|
|
13028
|
+
else
|
|
13029
|
+
{
|
|
13030
|
+
if (IFrameSplitOperator.IsNumber(aryArgs[1]))
|
|
13031
|
+
this.ChangePriceGap({ Enable:aryArgs[0], Count:aryArgs[1] });
|
|
13032
|
+
}
|
|
13033
|
+
}
|
|
13034
|
+
break;
|
|
13035
|
+
case JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID:
|
|
13036
|
+
if (aryArgs[1]===true)
|
|
13037
|
+
{
|
|
13038
|
+
if (this.OverlaySymbol && aryArgs[0]) this.OverlaySymbol(aryArgs[0]);
|
|
13039
|
+
}
|
|
13040
|
+
else if (aryArgs[1]===false)
|
|
13041
|
+
{
|
|
13042
|
+
if (this.DeleteOverlaySymbol && aryArgs[0]) this.DeleteOverlaySymbol(aryArgs[0]);
|
|
13043
|
+
}
|
|
13044
|
+
break;
|
|
13045
|
+
case JSCHART_MENU_ID.CMD_DELETE_ALL_OVERLAY_SYMBOL_ID:
|
|
13046
|
+
if (this.ClearOverlaySymbol) this.ClearOverlaySymbol();
|
|
13047
|
+
break;
|
|
13048
|
+
case JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID:
|
|
13049
|
+
if (this.ChangeCoordinateType && aryArgs[0]) this.ChangeCoordinateType(aryArgs[0]);
|
|
13050
|
+
break;
|
|
13051
|
+
case JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID:
|
|
13052
|
+
if (aryArgs[0] && IFrameSplitOperator.IsBool(aryArgs[1]))
|
|
13053
|
+
{
|
|
13054
|
+
if (aryArgs[1]==true && this.AddKLineInfo) this.AddKLineInfo(aryArgs[0],true);
|
|
13055
|
+
else if (aryArgs[1]==false && this.DeleteKLineInfo) this.DeleteKLineInfo(aryArgs[0]);
|
|
13056
|
+
}
|
|
13057
|
+
break;
|
|
13058
|
+
case JSCHART_MENU_ID.CMD_DELETE_ALL_KLINE_INFO_ID:
|
|
13059
|
+
if (this.ClearKLineInfo) this.ClearKLineInfo();
|
|
13060
|
+
break;
|
|
13061
|
+
case JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID:
|
|
13062
|
+
if (param!=null) this.DragMode=param;
|
|
13063
|
+
break;
|
|
13064
|
+
case JSCHART_MENU_ID.CMD_CHANGE_BG_SPLIT_ID:
|
|
13065
|
+
if (IFrameSplitOperator.IsBool(srcParam))
|
|
13066
|
+
{
|
|
13067
|
+
if (srcParam)
|
|
13068
|
+
{
|
|
13069
|
+
this.CreateExtendChart("SessionBreaksPaint", { });
|
|
13070
|
+
this.Draw();
|
|
13071
|
+
}
|
|
13072
|
+
else
|
|
13073
|
+
{
|
|
13074
|
+
var finder=this.GetExtendChartByClassName("SessionBreaksPaint");
|
|
13075
|
+
if (finder)
|
|
13076
|
+
{
|
|
13077
|
+
this.DeleteExtendChartByID(finder.Chart.ID);
|
|
13078
|
+
this.Draw();
|
|
13079
|
+
}
|
|
13080
|
+
}
|
|
13081
|
+
}
|
|
13082
|
+
break;
|
|
13083
|
+
case JSCHART_MENU_ID.CMD_SHOW_DRAWTOOL_ID:
|
|
13084
|
+
var option={Name:'画图工具', Top:this.Frame.ChartBorder.Top };
|
|
13085
|
+
var extendChart=this.CreateExtendChart(option.Name, option); //创建扩展图形
|
|
13086
|
+
this.SetSizeChange(true);
|
|
13087
|
+
this.Draw();
|
|
13088
|
+
break;
|
|
13089
|
+
case JSCHART_MENU_ID.CMD_HIDE_DRAWTOOL_ID:
|
|
13090
|
+
var drawTools=this.GetExtendChartByClassName('DrawToolsButton');
|
|
13091
|
+
if (drawTools)
|
|
13092
|
+
{
|
|
13093
|
+
var toolsWidth=drawTools.Chart.Width;
|
|
13094
|
+
var toolsIndex=parseInt(drawTools.Index);
|
|
13095
|
+
for(var i=toolsIndex+1; i<this.ExtendChartPaint.length; ++i) //在画图工具后面创建的需要减去工具的宽度
|
|
13096
|
+
{
|
|
13097
|
+
var item=this.ExtendChartPaint[i];
|
|
13098
|
+
if (item.ClassName=='StockChip')
|
|
13099
|
+
{
|
|
13100
|
+
item.Left-=toolsWidth;
|
|
13101
|
+
}
|
|
13102
|
+
}
|
|
13103
|
+
this.DeleteExtendChart(drawTools);
|
|
13104
|
+
this.Frame.ChartBorder.Right-=toolsWidth;
|
|
13105
|
+
this.SetSizeChange(true);
|
|
13106
|
+
this.Draw();
|
|
13107
|
+
}
|
|
13108
|
+
break;
|
|
13109
|
+
case JSCHART_MENU_ID.CMD_SHOW_STOCKCHIP_ID:
|
|
13110
|
+
var option={Name:'筹码分布', ShowType:1, Width:230 };
|
|
13111
|
+
var extendChart=this.CreateExtendChart(option.Name, option); //创建扩展图形
|
|
13112
|
+
this.SetSizeChange(true);
|
|
13113
|
+
this.Draw();
|
|
13114
|
+
break;
|
|
13115
|
+
case JSCHART_MENU_ID.CMD_HIDE_STOCKCHIP_ID:
|
|
13116
|
+
var StockChip=chart.GetExtendChartByClassName('StockChip');
|
|
13117
|
+
if (StockChip)
|
|
13118
|
+
{
|
|
13119
|
+
var chipWidth=StockChip.Chart.Width;
|
|
13120
|
+
var chipIndex=parseInt(StockChip.Index);
|
|
13121
|
+
for(var i=chipIndex+1; i<this.ExtendChartPaint.length; ++i) //在筹码后面创建的需要筹码的宽度
|
|
13122
|
+
{
|
|
13123
|
+
var item=this.ExtendChartPaint[i];
|
|
13124
|
+
if (item.ClassName=='DrawToolsButton')
|
|
13125
|
+
{
|
|
13126
|
+
item.Left-=chipWidth;
|
|
13127
|
+
}
|
|
13128
|
+
}
|
|
13129
|
+
this.DeleteExtendChart(StockChip);
|
|
13130
|
+
this.Frame.ChartBorder.Right-=chipWidth;
|
|
13131
|
+
this.SetSizeChange(true);
|
|
13132
|
+
this.Draw();
|
|
13133
|
+
}
|
|
13134
|
+
break;
|
|
13135
|
+
case JSCHART_MENU_ID.CMD_ENABLE_SELECT_RECT_ID:
|
|
13136
|
+
if (IFrameSplitOperator.IsBool(srcParam))
|
|
13137
|
+
this.EnableSelectRect=srcParam;
|
|
13138
|
+
break;
|
|
13139
|
+
case JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID:
|
|
13140
|
+
if (this.ChangeDayCount && param!=null)
|
|
13141
|
+
this.ChangeDayCount(param);
|
|
13142
|
+
break;
|
|
13143
|
+
}
|
|
13144
|
+
}
|
|
12941
13145
|
}
|
|
12942
13146
|
|
|
12943
13147
|
function GetDevicePixelRatio()
|
|
@@ -13035,11 +13239,12 @@ function GetScrollPosition()
|
|
|
13035
13239
|
var scrollPos={};
|
|
13036
13240
|
var scrollTop=0;
|
|
13037
13241
|
var scrollLeft=0;
|
|
13038
|
-
if(document.documentElement && document.documentElement.scrollTop)
|
|
13242
|
+
if (document.documentElement && (document.documentElement.scrollTop || document.documentElement.scrollLeft))
|
|
13039
13243
|
{
|
|
13040
13244
|
scrollTop=document.documentElement.scrollTop;
|
|
13041
13245
|
scrollLeft=document.documentElement.scrollLeft;
|
|
13042
|
-
}
|
|
13246
|
+
}
|
|
13247
|
+
else if(document.body)
|
|
13043
13248
|
{
|
|
13044
13249
|
scrollTop=document.body.scrollTop;
|
|
13045
13250
|
scrollLeft=document.body.scrollLeft;
|
|
@@ -48003,7 +48208,8 @@ function FrameButtomToolbarPaint()
|
|
|
48003
48208
|
this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);
|
|
48004
48209
|
}
|
|
48005
48210
|
|
|
48006
|
-
var font=this.
|
|
48211
|
+
var font=this.GetTitleFont(rtBG.Height-this.ButtonConfig.Mergin.Top-this.ButtonConfig.Mergin.Bottom);
|
|
48212
|
+
var svgFont=this.GetSVGFont(rtBG.Height-this.ButtonConfig.Mergin.Top-this.ButtonConfig.Mergin.Bottom);
|
|
48007
48213
|
this.Canvas.textBaseline='middle';
|
|
48008
48214
|
this.Canvas.textAlign='center';
|
|
48009
48215
|
this.Canvas.font=font;
|
|
@@ -48011,9 +48217,23 @@ function FrameButtomToolbarPaint()
|
|
|
48011
48217
|
for(var i=0;i<this.AryButton.length;++i)
|
|
48012
48218
|
{
|
|
48013
48219
|
var item=this.AryButton[i];
|
|
48014
|
-
if (!item.Title) return;
|
|
48015
|
-
|
|
48016
|
-
var
|
|
48220
|
+
if (!item.Title && !(item.SVGButton && item.SVGButton.Symbol)) return;
|
|
48221
|
+
|
|
48222
|
+
var textWidth=0;
|
|
48223
|
+
if (item.Title)
|
|
48224
|
+
{
|
|
48225
|
+
textWidth=this.Canvas.measureText(item.Title).width+2;
|
|
48226
|
+
}
|
|
48227
|
+
|
|
48228
|
+
var svgButtonWidth=0;
|
|
48229
|
+
if (item.SVGButton && item.SVGButton.Symbol)
|
|
48230
|
+
{
|
|
48231
|
+
svgButtonWidth=this.ButtonConfig.SVG.Size;
|
|
48232
|
+
if (textWidth>0) svgButtonWidth+=this.ButtonConfig.SVG.MerginLeft;
|
|
48233
|
+
|
|
48234
|
+
}
|
|
48235
|
+
|
|
48236
|
+
var buttonWidth=textWidth+svgButtonWidth+this.ButtonConfig.Mergin.Left+this.ButtonConfig.Mergin.Right;
|
|
48017
48237
|
var rtButton={ Left:xBotton, Top:rtBG.Top, Bottom:rtBG.Bottom, Height:rtBG.Height, Width:buttonWidth };
|
|
48018
48238
|
rtButton.Right=rtButton.Left+rtButton.Width;
|
|
48019
48239
|
|
|
@@ -48050,12 +48270,50 @@ function FrameButtomToolbarPaint()
|
|
|
48050
48270
|
this.Canvas.stroke();
|
|
48051
48271
|
}
|
|
48052
48272
|
|
|
48053
|
-
|
|
48054
|
-
|
|
48055
|
-
|
|
48056
|
-
|
|
48273
|
+
if (item.Title)
|
|
48274
|
+
{
|
|
48275
|
+
this.Canvas.fillStyle=titleColor;
|
|
48276
|
+
var xText=rtButton.Left+(rtButton.Width-svgButtonWidth)/2; //居中
|
|
48277
|
+
var yText=rtButton.Top+this.ButtonConfig.Mergin.Top+(rtButton.Height-this.ButtonConfig.Mergin.Top-this.ButtonConfig.Mergin.Bottom)/2;
|
|
48278
|
+
this.Canvas.fillText(item.Title,xText,yText);
|
|
48279
|
+
}
|
|
48280
|
+
|
|
48281
|
+
|
|
48282
|
+
var rtSVG=null;
|
|
48283
|
+
if (item.SVGButton && item.SVGButton.Symbol)
|
|
48284
|
+
{
|
|
48285
|
+
this.Canvas.font=svgFont;
|
|
48286
|
+
this.Canvas.fillStyle=titleColor;
|
|
48287
|
+
var xText=rtButton.Right-this.ButtonConfig.SVG.Size/2-this.ButtonConfig.Mergin.Right;
|
|
48288
|
+
this.Canvas.fillText(item.SVGButton.Symbol,xText,yText);
|
|
48289
|
+
this.Canvas.font=font;
|
|
48290
|
+
|
|
48291
|
+
rtSVG={Left:rtButton.Right-this.ButtonConfig.Mergin.Right-this.ButtonConfig.SVG.Size, Top:rtButton.Top, Width:this.ButtonConfig.SVG.Size, Height:this.ButtonConfig.SVG.Size};
|
|
48292
|
+
rtSVG.Right=rtSVG.Left+rtSVG.Width;
|
|
48293
|
+
rtSVG.Bottom=rtSVG.Top+rtSVG.Height;
|
|
48294
|
+
}
|
|
48295
|
+
|
|
48296
|
+
//{ Rect:rtButton, ID:item.ID, Data:item, RectSVG:rtSVG }
|
|
48297
|
+
if (textWidth>0 && svgButtonWidth>0)
|
|
48298
|
+
{
|
|
48299
|
+
var rtText={ Left:rtButton.Left, Top:rtButton.Top, Bottom:rtButton.Bottom };
|
|
48300
|
+
rtText.Right=rtText.Left+textWidth+this.ButtonConfig.Mergin.Left+this.ButtonConfig.SVG.MerginLeft/2;
|
|
48301
|
+
var cacheItem={ Rect:rtText, ID:item.ID, Data:item, RectCell:rtButton, ButtonType:0 };
|
|
48302
|
+
this.AryRectButton.push(cacheItem);
|
|
48303
|
+
|
|
48304
|
+
var rtSVG={Left:rtText.Right, Right:rtButton.Right, Top:rtButton.Top, Bottom:rtButton.Bottom };
|
|
48305
|
+
var cacheItem={ Rect:rtSVG, ID:item.ID, Data:item, RectCell:rtButton, ButtonType:1 };
|
|
48306
|
+
this.AryRectButton.push(cacheItem);
|
|
48307
|
+
}
|
|
48308
|
+
else
|
|
48309
|
+
{
|
|
48310
|
+
var cacheItem={ Rect:rtButton, ID:item.ID, Data:item, RectCell:rtButton }; //RectCell 全部的大小
|
|
48311
|
+
if (textWidth>0) cacheItem.ButtonType=0;
|
|
48312
|
+
else if (svgButtonWidth>0) cacheItem.ButtonType=1;
|
|
48313
|
+
this.AryRectButton.push(cacheItem);
|
|
48314
|
+
}
|
|
48315
|
+
|
|
48057
48316
|
|
|
48058
|
-
this.AryRectButton.push({ Rect:rtButton, ID:item.ID, Data:item });
|
|
48059
48317
|
|
|
48060
48318
|
xBotton+=buttonWidth+1;
|
|
48061
48319
|
}
|
|
@@ -48084,13 +48342,22 @@ function FrameButtomToolbarPaint()
|
|
|
48084
48342
|
return null;
|
|
48085
48343
|
}
|
|
48086
48344
|
|
|
48087
|
-
this.
|
|
48345
|
+
this.GetTitleFont=function(height)
|
|
48088
48346
|
{
|
|
48089
48347
|
var config=this.ButtonConfig.Font;
|
|
48090
|
-
var fontSize=height;
|
|
48348
|
+
var fontSize=height*GetDevicePixelRatio();
|
|
48091
48349
|
if (IFrameSplitOperator.IsPlusNumber(config.Size)) fontSize=config.Size;
|
|
48092
48350
|
|
|
48093
|
-
var font=`${fontSize
|
|
48351
|
+
var font=`${fontSize}px ${config.Family}`;
|
|
48352
|
+
return font;
|
|
48353
|
+
}
|
|
48354
|
+
|
|
48355
|
+
this.GetSVGFont=function(height)
|
|
48356
|
+
{
|
|
48357
|
+
var config=this.ButtonConfig.SVG;
|
|
48358
|
+
var fontSize=height*GetDevicePixelRatio();
|
|
48359
|
+
if (IFrameSplitOperator.IsPlusNumber(config.Size)) fontSize=config.Size;
|
|
48360
|
+
var font=`${fontSize}px ${config.Family}`;
|
|
48094
48361
|
return font;
|
|
48095
48362
|
}
|
|
48096
48363
|
|
|
@@ -48103,7 +48370,7 @@ function FrameButtomToolbarPaint()
|
|
|
48103
48370
|
if (x>rect.Left && x<rect.Right && y>rect.Top && y<rect.Bottom)
|
|
48104
48371
|
{
|
|
48105
48372
|
var frame=this.GetFrame();
|
|
48106
|
-
var result={ ID:item.Data.ID, Rect:rect, FrameID:this.FrameID, Frame:frame, Data:item.Data };
|
|
48373
|
+
var result={ ID:item.Data.ID, Rect:rect, FrameID:this.FrameID, Frame:frame, Data:item.Data, ButtonType:item.ButtonType, RectCell:item.RectCell, };
|
|
48107
48374
|
return result;
|
|
48108
48375
|
}
|
|
48109
48376
|
}
|
|
@@ -57444,7 +57711,7 @@ function IChartDrawPicture()
|
|
|
57444
57711
|
if (option.LineWidth>0) this.LineWidth=option.LineWidth;
|
|
57445
57712
|
if (option.AreaColor) this.AreaColor=option.AreaColor;
|
|
57446
57713
|
if (option.PointColor) this.PointColor=option.PointColor;
|
|
57447
|
-
if (option.MoveOnPointColor) this.
|
|
57714
|
+
if (option.MoveOnPointColor) this.MoveOnPointColor=option.MoveOnPointColor;
|
|
57448
57715
|
if (option.PointRadius) this.PointRadius=option.PointRadius;
|
|
57449
57716
|
if (IFrameSplitOperator.IsNumber(option.SquareSize)) this.SquareSize=option.SquareSize;
|
|
57450
57717
|
if (IFrameSplitOperator.IsBool(option.IsShowPoint)) this.IsShowPoint=option.IsShowPoint;
|
|
@@ -57643,8 +57910,8 @@ function IChartDrawPicture()
|
|
|
57643
57910
|
for(var i=0; i<this.Point.length; ++i)
|
|
57644
57911
|
{
|
|
57645
57912
|
var item=this.Point[i];
|
|
57646
|
-
var xValue=parseInt(this.Frame.GetXData(item.Y));
|
|
57647
|
-
var yValue=this.Frame.GetYData(item.X);
|
|
57913
|
+
var xValue=parseInt(this.Frame.GetXData(item.Y,false));
|
|
57914
|
+
var yValue=this.Frame.GetYData(item.X,false);
|
|
57648
57915
|
|
|
57649
57916
|
var valueItem={ XValue:xValue, YValue:yValue };
|
|
57650
57917
|
var minuteItem=data.Data[xValue];
|
|
@@ -57658,8 +57925,8 @@ function IChartDrawPicture()
|
|
|
57658
57925
|
for(var i=0; i<this.Point.length; ++i)
|
|
57659
57926
|
{
|
|
57660
57927
|
var item=this.Point[i];
|
|
57661
|
-
var xValue=parseInt(this.Frame.GetXData(item.X));
|
|
57662
|
-
var yValue=this.Frame.GetYData(item.Y);
|
|
57928
|
+
var xValue=parseInt(this.Frame.GetXData(item.X,false));
|
|
57929
|
+
var yValue=this.Frame.GetYData(item.Y,false);
|
|
57663
57930
|
|
|
57664
57931
|
if (xValue>=data.Data.length) //超过当前数据,直接读固定时间
|
|
57665
57932
|
{
|
|
@@ -57734,7 +58001,7 @@ function IChartDrawPicture()
|
|
|
57734
58001
|
}
|
|
57735
58002
|
|
|
57736
58003
|
data.FindDataIndexByDateTime(aryDateTime);
|
|
57737
|
-
for(var i
|
|
58004
|
+
for(var i=0; i<aryDateTime.length; ++i)
|
|
57738
58005
|
{
|
|
57739
58006
|
var findItem=aryDateTime[i];
|
|
57740
58007
|
var valueItem=this.Value[i];
|
|
@@ -57742,6 +58009,17 @@ function IChartDrawPicture()
|
|
|
57742
58009
|
}
|
|
57743
58010
|
}
|
|
57744
58011
|
|
|
58012
|
+
//重置X索引数据
|
|
58013
|
+
this.ResetXValue=function()
|
|
58014
|
+
{
|
|
58015
|
+
for(var i=0; i<this.Value.length; ++i)
|
|
58016
|
+
{
|
|
58017
|
+
var item=this.Value[i];
|
|
58018
|
+
item.XValue=null;
|
|
58019
|
+
}
|
|
58020
|
+
return true;
|
|
58021
|
+
}
|
|
58022
|
+
|
|
57745
58023
|
//xStep,yStep 移动的偏移量
|
|
57746
58024
|
this.Move=function(xStep,yStep)
|
|
57747
58025
|
{
|
|
@@ -57867,6 +58145,8 @@ function IChartDrawPicture()
|
|
|
57867
58145
|
for(var i=0; i<this.Value.length; ++i)
|
|
57868
58146
|
{
|
|
57869
58147
|
var item=this.Value[i];
|
|
58148
|
+
if (!IFrameSplitOperator.IsNumber(item.XValue)) return null; //无效索引 不显示
|
|
58149
|
+
|
|
57870
58150
|
var dataIndex=item.XValue-data.DataOffset;
|
|
57871
58151
|
if (dataIndex<0 || dataIndex>=showCount) ++invaildX;
|
|
57872
58152
|
|
|
@@ -58937,7 +59217,7 @@ function ChartDrawPictureLine()
|
|
|
58937
59217
|
if (this.IsFrameMinSize()) return;
|
|
58938
59218
|
if (!this.IsShow) return;
|
|
58939
59219
|
|
|
58940
|
-
var drawPoint=this.CalculateDrawPoint( {IsCheckX:true, IsCheckY:
|
|
59220
|
+
var drawPoint=this.CalculateDrawPoint( {IsCheckX:true, IsCheckY:false} );
|
|
58941
59221
|
if (!drawPoint) return;
|
|
58942
59222
|
if (drawPoint.length!=2) return;
|
|
58943
59223
|
|
|
@@ -68770,12 +69050,14 @@ function JSChartResource()
|
|
|
68770
69050
|
BorderColor:"rgb(204,204,204)",
|
|
68771
69051
|
Button:
|
|
68772
69052
|
{
|
|
68773
|
-
Font:{ Family:"微软雅黑" },
|
|
69053
|
+
Font:{ Family:"微软雅黑", Size:12*GetDevicePixelRatio() },
|
|
68774
69054
|
TitleColor: { Selected:"rgb(255,255,255)", Default:"rgb(125,125,125)", MoveOn:"rgb(234,85,4)" },
|
|
68775
69055
|
BGColor: { Selected:"rgb(234,85,4)", Default:"rgb(235,235,235)", MoveOn:"rgb(242,242,242)" },
|
|
68776
69056
|
BorderColor:"rgb(204,204,204)",
|
|
68777
69057
|
|
|
68778
|
-
Mergin: { Left:5*GetDevicePixelRatio(), Right:5*GetDevicePixelRatio(), Top:4*GetDevicePixelRatio(), Bottom:2*GetDevicePixelRatio() }
|
|
69058
|
+
Mergin: { Left:5*GetDevicePixelRatio(), Right:5*GetDevicePixelRatio(), Top:4*GetDevicePixelRatio(), Bottom:2*GetDevicePixelRatio() },
|
|
69059
|
+
|
|
69060
|
+
SVG:{ Family:"iconfont", Size:12*GetDevicePixelRatio(), MerginLeft:4*GetDevicePixelRatio() }
|
|
68779
69061
|
}
|
|
68780
69062
|
}
|
|
68781
69063
|
|
|
@@ -69794,6 +70076,15 @@ function JSChartResource()
|
|
|
69794
70076
|
if (IFrameSplitOperator.IsNumber(item.Top)) destItem.Top=item.Top;
|
|
69795
70077
|
if (IFrameSplitOperator.IsNumber(item.Bottom)) destItem.Bottom=item.Bottom;
|
|
69796
70078
|
}
|
|
70079
|
+
|
|
70080
|
+
if (button.SVG)
|
|
70081
|
+
{
|
|
70082
|
+
var item=button.SVG;
|
|
70083
|
+
var destItem=this.FrameButtomToolbar.Button.SVG;
|
|
70084
|
+
if (IFrameSplitOperator.IsNumber(item.Size)) destItem.Size=item.Size;
|
|
70085
|
+
if (IFrameSplitOperator.IsNumber(item.MerginLeft)) destItem.MerginLeft=item.MerginLeft;
|
|
70086
|
+
if (item.Family) destItem.Family=item.Family;
|
|
70087
|
+
}
|
|
69797
70088
|
}
|
|
69798
70089
|
|
|
69799
70090
|
}
|
|
@@ -76105,12 +76396,16 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
76105
76396
|
}
|
|
76106
76397
|
}
|
|
76107
76398
|
|
|
76108
|
-
|
|
76109
76399
|
//注册鼠标右键事件
|
|
76110
76400
|
this.OnRightMenu=function(x,y,e)
|
|
76111
76401
|
{
|
|
76112
76402
|
var pixelTatio = GetDevicePixelRatio(); //x,y 需要乘以放大倍速
|
|
76113
|
-
if (this.
|
|
76403
|
+
if (this.EnablePopMenuV2)
|
|
76404
|
+
{
|
|
76405
|
+
var frameId=this.Frame.PtInFrame(x*pixelTatio,y*pixelTatio);
|
|
76406
|
+
this.PopuRightMenuV2({X:e.offsetX, Y:e.offsetY, FrameID:frameId}, e);
|
|
76407
|
+
}
|
|
76408
|
+
else if (this.RightMenu)
|
|
76114
76409
|
{
|
|
76115
76410
|
var frameId=this.Frame.PtInFrame(x*pixelTatio,y*pixelTatio);
|
|
76116
76411
|
e.data={ Chart:this, FrameID:frameId };
|
|
@@ -76126,11 +76421,286 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
76126
76421
|
}
|
|
76127
76422
|
}
|
|
76128
76423
|
|
|
76424
|
+
//右键菜单数据
|
|
76425
|
+
this.GetRightMenuData=function(frameID)
|
|
76426
|
+
{
|
|
76427
|
+
var windowCount=this.Frame.SubFrame.length; //窗口个数
|
|
76428
|
+
var klineChart=this.ChartPaint[0];
|
|
76429
|
+
var priceGap=klineChart.PriceGap; //缺口配置信息
|
|
76430
|
+
var coordinateType=null, yCoordinateType=null; //坐标类型
|
|
76431
|
+
var mainFrame=null;
|
|
76432
|
+
if (this.Frame.SubFrame[0] && this.Frame.SubFrame[0].Frame) mainFrame=this.Frame.SubFrame[0].Frame;
|
|
76433
|
+
if (mainFrame)
|
|
76434
|
+
{
|
|
76435
|
+
coordinateType=mainFrame.CoordinateType;
|
|
76436
|
+
if (mainFrame.YSplitOperator) yCoordinateType=mainFrame.YSplitOperator.CoordinateType;
|
|
76437
|
+
}
|
|
76438
|
+
|
|
76439
|
+
var aryKLineInfo=[]; //信息地雷
|
|
76440
|
+
for(var i=0;i<this.ChartInfo.length;++i)
|
|
76441
|
+
{
|
|
76442
|
+
var item=this.ChartInfo[i];
|
|
76443
|
+
if (item && item.ClassName) aryKLineInfo.push(item.ClassName);
|
|
76444
|
+
}
|
|
76445
|
+
|
|
76446
|
+
var aryOverlaySymbol=[]; //叠加的股票列表
|
|
76447
|
+
for(var i=0; i<this.OverlayChartPaint.length; ++i)
|
|
76448
|
+
{
|
|
76449
|
+
var item=this.OverlayChartPaint[i];
|
|
76450
|
+
if (item && item.Symbol) aryOverlaySymbol.push(item.Symbol)
|
|
76451
|
+
}
|
|
76452
|
+
|
|
76453
|
+
var bBGSpit=false, bShowDrawTool=false, bShowStockChip=false;
|
|
76454
|
+
if (this.GetExtendChartByClassName("SessionBreaksPaint")) bBGSpit=true;
|
|
76455
|
+
if (this.GetExtendChartByClassName('DrawToolsButton')) bShowDrawTool=true; //画图工具
|
|
76456
|
+
if (this.GetExtendChartByClassName('StockChip')) bShowStockChip=true; //筹码
|
|
76457
|
+
|
|
76458
|
+
var aryMenu=
|
|
76459
|
+
[
|
|
76460
|
+
{
|
|
76461
|
+
Name:"分析周期",
|
|
76462
|
+
SubMenu:
|
|
76463
|
+
[
|
|
76464
|
+
{ Name:"日线", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID, Args:[0] }, Checked:this.Period==0 },
|
|
76465
|
+
{ Name:"周线", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID, Args:[1] }, Checked:this.Period==1 },
|
|
76466
|
+
{ Name:"双周线", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID, Args:[21]}, Checked:this.Period==21 },
|
|
76467
|
+
{ Name:"月线", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID, Args:[2]}, Checked:this.Period==2 },
|
|
76468
|
+
{ Name:"季线", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID, Args:[9]}, Checked:this.Period==9 },
|
|
76469
|
+
{ Name:"半年", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID, Args:[22]}, Checked:this.Period==22 },
|
|
76470
|
+
{ Name:"年线", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID, Args:[3]}, Checked:this.Period==3 },
|
|
76471
|
+
{ Name:"1分", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID, Args:[4]}, Checked:this.Period==4 },
|
|
76472
|
+
{ Name:"5分", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID, Args:[5]}, Checked:this.Period==5 },
|
|
76473
|
+
{ Name:"15分", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID, Args:[6]}, Checked:this.Period==6 },
|
|
76474
|
+
{ Name:"30分", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID, Args:[7]}, Checked:this.Period==7 },
|
|
76475
|
+
{ Name:"60分", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID, Args:[8]}, Checked:this.Period==8 },
|
|
76476
|
+
{ Name:"2小时", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID, Args:[11]}, Checked:this.Period==11 },
|
|
76477
|
+
{ Name:"4小时", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID, Args:[12]}, Checked:this.Period==12 },
|
|
76478
|
+
{ Name:"分笔", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID, Args:[10]}, Checked:this.Period==10 },
|
|
76479
|
+
{ Name:"自定义周期:3分钟", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID, Args:[20003]}, Checked:this.Period==20003 },
|
|
76480
|
+
{ Name:"自定义周期:35分钟", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID, Args:[20035]}, Checked:this.Period==20035 },
|
|
76481
|
+
{ Name:"自定义周期:8日", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID, Args:[40008]}, Checked:this.Period==40008 },
|
|
76482
|
+
]
|
|
76483
|
+
},
|
|
76484
|
+
{
|
|
76485
|
+
Name:"指标切换",
|
|
76486
|
+
SubMenu:
|
|
76487
|
+
[
|
|
76488
|
+
{ Name:"均线", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID, Args:[frameID, "均线"]}},
|
|
76489
|
+
{ Name:"BOLL", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID, Args:[frameID, "BOLL"]}},
|
|
76490
|
+
{ Name:"MACD", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID, Args:[frameID, "MACD"]}},
|
|
76491
|
+
{ Name:"KDJ", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID, Args:[frameID, "KDJ"]}},
|
|
76492
|
+
{ Name:"VOL", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID, Args:[frameID, "VOL"]}},
|
|
76493
|
+
{ Name:"RSI", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID, Args:[frameID, "RSI"]}},
|
|
76494
|
+
{ Name:"BRAR", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID, Args:[frameID, "BRAR"]}},
|
|
76495
|
+
{ Name:"WR", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID, Args:[frameID, "WR"]}},
|
|
76496
|
+
]
|
|
76497
|
+
},
|
|
76498
|
+
{
|
|
76499
|
+
Name:"五彩K线",
|
|
76500
|
+
SubMenu:
|
|
76501
|
+
[
|
|
76502
|
+
{ Name:"十字星", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_COLOR_INDEX_ID, Args:["五彩K线-十字星"]}},
|
|
76503
|
+
{ Name:"早晨之星", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_COLOR_INDEX_ID, Args:["五彩K线-早晨之星"]}},
|
|
76504
|
+
{ Name:"垂死十字", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_COLOR_INDEX_ID, Args:["五彩K线-垂死十字"]}},
|
|
76505
|
+
{ Name:"三只乌鸦", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_COLOR_INDEX_ID, Args:["五彩K线-三只乌鸦"]}},
|
|
76506
|
+
{ Name:"光脚阴线", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_COLOR_INDEX_ID, Args:["五彩K线-光脚阴线"]}},
|
|
76507
|
+
{ Name:"黄昏之星", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_COLOR_INDEX_ID, Args:["五彩K线-黄昏之星"]}},
|
|
76508
|
+
]
|
|
76509
|
+
|
|
76510
|
+
},
|
|
76511
|
+
{
|
|
76512
|
+
Name:"专家系统",
|
|
76513
|
+
SubMenu:
|
|
76514
|
+
[
|
|
76515
|
+
{ Name:"BIAS", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_TRADE_INDEX_ID, Args:["交易系统-BIAS"]}},
|
|
76516
|
+
{ Name:"CCI", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_TRADE_INDEX_ID, Args:["交易系统-CCI"]}},
|
|
76517
|
+
{ Name:"DMI", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_TRADE_INDEX_ID, Args:["交易系统-DMI"]}},
|
|
76518
|
+
{ Name:"KD", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_TRADE_INDEX_ID, Args:["交易系统-KD"]}},
|
|
76519
|
+
{ Name:"BOLL", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_TRADE_INDEX_ID, Args:["交易系统-BOLL"]}},
|
|
76520
|
+
{ Name:"KDJ", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_TRADE_INDEX_ID, Args:["交易系统-KDJ"]}},
|
|
76521
|
+
]
|
|
76522
|
+
},
|
|
76523
|
+
{
|
|
76524
|
+
Name:"信息地雷",
|
|
76525
|
+
SubMenu:
|
|
76526
|
+
[
|
|
76527
|
+
{ Name:"公告", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID, Args:["公告", !aryKLineInfo.includes("AnnouncementInfo")]}, Checked:aryKLineInfo.includes("AnnouncementInfo") },
|
|
76528
|
+
{ Name:"业绩预告", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID, Args:["业绩预告", !aryKLineInfo.includes("PforecastInfo")]}, Checked:aryKLineInfo.includes("PforecastInfo") },
|
|
76529
|
+
{ Name:"调研", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID, Args:["调研", !aryKLineInfo.includes("ResearchInfo") ]}, Checked:aryKLineInfo.includes("ResearchInfo") },
|
|
76530
|
+
{ Name:"大宗交易", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID, Args:["大宗交易", !aryKLineInfo.includes("BlockTrading")]}, Checked:aryKLineInfo.includes("BlockTrading") },
|
|
76531
|
+
{ Name:"龙虎榜", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID, Args:["龙虎榜", !aryKLineInfo.includes("TradeDetail")]}, Checked:aryKLineInfo.includes("TradeDetail") },
|
|
76532
|
+
{ Name:"互动易", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID, Args:["互动易", !aryKLineInfo.includes("InvestorInfo")]}, Checked:aryKLineInfo.includes("InvestorInfo") },
|
|
76533
|
+
]
|
|
76534
|
+
},
|
|
76535
|
+
{
|
|
76536
|
+
Name:"缺口提示",
|
|
76537
|
+
SubMenu:
|
|
76538
|
+
[
|
|
76539
|
+
{ Name:"显示1个缺口", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_PRICE_GAP_ID, Args:[true, 1]}, Checked:(priceGap.Enable==true && priceGap.Count==1) },
|
|
76540
|
+
{ Name:"显示2个缺口", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_PRICE_GAP_ID, Args:[true, 2]}, Checked:(priceGap.Enable==true && priceGap.Count==2) },
|
|
76541
|
+
{ Name:"显示3个缺口", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_PRICE_GAP_ID, Args:[true, 3]}, Checked:(priceGap.Enable==true && priceGap.Count==3) },
|
|
76542
|
+
{ Name:"隐藏缺口", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_PRICE_GAP_ID, Args:[false]}, Checked:priceGap.Enable==false },
|
|
76543
|
+
]
|
|
76544
|
+
},
|
|
76545
|
+
{
|
|
76546
|
+
Name:"叠加品种",
|
|
76547
|
+
SubMenu:
|
|
76548
|
+
[
|
|
76549
|
+
{ Name:"上证指数", Data:{ ID: JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID, Args:["000001.sh", !aryOverlaySymbol.includes("000001.sh")]}, Checked:aryOverlaySymbol.includes("000001.sh") },
|
|
76550
|
+
{ Name:"深证成指", Data:{ ID: JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID, Args:["399001.sz", !aryOverlaySymbol.includes("399001.sz")]}, Checked:aryOverlaySymbol.includes("399001.sz") },
|
|
76551
|
+
{ Name:"中小板指", Data:{ ID: JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID, Args:["399005.sz", !aryOverlaySymbol.includes("399005.sz")]}, Checked:aryOverlaySymbol.includes("399005.sz") },
|
|
76552
|
+
{ Name:"创业板指", Data:{ ID: JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID, Args:["399006.sz", !aryOverlaySymbol.includes("399006.sz")]}, Checked:aryOverlaySymbol.includes("399006.sz") },
|
|
76553
|
+
{ Name:"沪深300", Data:{ ID: JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID, Args:["000300.sh", !aryOverlaySymbol.includes("000300.sh")]}, Checked:aryOverlaySymbol.includes("000300.sh")},
|
|
76554
|
+
]
|
|
76555
|
+
},
|
|
76556
|
+
{
|
|
76557
|
+
Name:"主图线型",
|
|
76558
|
+
SubMenu:
|
|
76559
|
+
[
|
|
76560
|
+
{ Name:"K线(空心阳线)", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID, Args:[3]} },
|
|
76561
|
+
{ Name:"K线(实心阳线)", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID, Args:[0]} },
|
|
76562
|
+
{ Name:"美国线", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID, Args:[2, true, { IsThinAKBar:false }]} },
|
|
76563
|
+
{ Name:"美国线(细)", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID, Args:[2, true, { IsThinAKBar:true }]} },
|
|
76564
|
+
{ Name:"收盘线", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID, Args:[1]} },
|
|
76565
|
+
{ Name:"收盘面积", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID, Args:[4]} },
|
|
76566
|
+
{ Name:"K线(空心阳线阴线)", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID, Args:[6]} },
|
|
76567
|
+
{ Name:"Heikin Ashi", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID, Args:[11]} },
|
|
76568
|
+
{ Name:"Line Break", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID, Args:[12]} },
|
|
76569
|
+
{ Name:"High-low", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID, Args:[13]} },
|
|
76570
|
+
{ Name:"HLC Area", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID, Args:[15]} },
|
|
76571
|
+
]
|
|
76572
|
+
},
|
|
76573
|
+
{
|
|
76574
|
+
Name:"坐标类型",
|
|
76575
|
+
SubMenu:
|
|
76576
|
+
[
|
|
76577
|
+
{ Name:"反转坐标", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID, Args:[{ IsReverse:coordinateType==0 }]}, Checked:coordinateType==1 },
|
|
76578
|
+
{ Name:JSPopMenu.SEPARATOR_LINE_NAME },
|
|
76579
|
+
|
|
76580
|
+
{ Name:"普通坐标", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID, Args:[{ Type:0 }]}, Checked:yCoordinateType==0 },
|
|
76581
|
+
{ Name:"百分比坐标", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID, Args:[{ Type:1 }]}, Checked:yCoordinateType==1 },
|
|
76582
|
+
{ Name:"对数坐标", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID, Args:[{ Type:2 }]}, Checked:yCoordinateType==2 },
|
|
76583
|
+
{ Name:"等比坐标", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID, Args:[{ Type:3 }]}, Checked:yCoordinateType==3 },
|
|
76584
|
+
{ Name:"等分坐标", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID, Args:[{ Type:4 }]}, Checked:yCoordinateType==4 },
|
|
76585
|
+
{ Name:"黄金分割", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID, Args:[{ Type:5 }]}, Checked:yCoordinateType==5},
|
|
76586
|
+
|
|
76587
|
+
]
|
|
76588
|
+
},
|
|
76589
|
+
{
|
|
76590
|
+
Name:"指标窗口个数",
|
|
76591
|
+
SubMenu:
|
|
76592
|
+
[
|
|
76593
|
+
{ Name:"1个窗口", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID, Args:[2]}, Checked:2==windowCount },
|
|
76594
|
+
{ Name:"2个窗口", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID, Args:[3]}, Checked:3==windowCount },
|
|
76595
|
+
{ Name:"3个窗口", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID, Args:[4]}, Checked:4==windowCount },
|
|
76596
|
+
{ Name:"4个窗口", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID, Args:[5]}, Checked:5==windowCount },
|
|
76597
|
+
{ Name:"5个窗口", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID, Args:[6]}, Checked:6==windowCount },
|
|
76598
|
+
]
|
|
76599
|
+
},
|
|
76600
|
+
{
|
|
76601
|
+
Name:"其他设置",
|
|
76602
|
+
SubMenu:
|
|
76603
|
+
[
|
|
76604
|
+
|
|
76605
|
+
{ Name:"禁止拖拽", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID, Args:[0]}, Checked:0==this.DragMode },
|
|
76606
|
+
{ Name:"启动拖拽", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID, Args:[1]}, Checked:1==this.DragMode },
|
|
76607
|
+
{ Name:"区间选择", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID, Args:[2]}, Checked:2==this.DragMode },
|
|
76608
|
+
{ Name:JSPopMenu.SEPARATOR_LINE_NAME },
|
|
76609
|
+
|
|
76610
|
+
{ Name:"背景分割", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_BG_SPLIT_ID, Args:[!bBGSpit]}, Checked:bBGSpit},
|
|
76611
|
+
|
|
76612
|
+
{ Name:"画图工具", Data:{ ID:bShowDrawTool?JSCHART_MENU_ID.CMD_HIDE_DRAWTOOL_ID:JSCHART_MENU_ID.CMD_SHOW_DRAWTOOL_ID, Args:[]}, Checked:bShowDrawTool},
|
|
76613
|
+
|
|
76614
|
+
{ Name:"移动筹码图", Data:{ ID:bShowStockChip?JSCHART_MENU_ID.CMD_HIDE_STOCKCHIP_ID:JSCHART_MENU_ID.CMD_SHOW_STOCKCHIP_ID, Args:[]}, Checked:bShowStockChip},
|
|
76615
|
+
]
|
|
76616
|
+
}
|
|
76617
|
+
];
|
|
76618
|
+
|
|
76619
|
+
//复权
|
|
76620
|
+
if(!MARKET_SUFFIX_NAME.IsSHSZIndex(this.Symbol) && !MARKET_SUFFIX_NAME.IsBIT(this.Symbol))
|
|
76621
|
+
{
|
|
76622
|
+
var rightMenu=
|
|
76623
|
+
{
|
|
76624
|
+
Name:"复权处理",
|
|
76625
|
+
SubMenu:
|
|
76626
|
+
[
|
|
76627
|
+
{ Name:"不复权", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_RIGHT_ID, Args:[0]}, Checked:0==this.Right },
|
|
76628
|
+
{ Name:"前复权", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_RIGHT_ID, Args:[1]}, Checked:1==this.Right },
|
|
76629
|
+
{ Name:"后复权", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_RIGHT_ID, Args:[2]}, Checked:2==this.Right }
|
|
76630
|
+
]
|
|
76631
|
+
};
|
|
76632
|
+
|
|
76633
|
+
aryMenu.splice(1,0,rightMenu);
|
|
76634
|
+
}
|
|
76635
|
+
|
|
76636
|
+
//删除菜单
|
|
76637
|
+
for(var i=0;i<aryMenu.length;++i)
|
|
76638
|
+
{
|
|
76639
|
+
var item=aryMenu[i];
|
|
76640
|
+
if (item.Name=="五彩K线")
|
|
76641
|
+
{
|
|
76642
|
+
if (this.ColorIndex)
|
|
76643
|
+
{
|
|
76644
|
+
item.SubMenu.push({ Name:JSPopMenu.SEPARATOR_LINE_NAME });
|
|
76645
|
+
item.SubMenu.push({ Name:"删除五彩K线", Data:{ ID: JSCHART_MENU_ID.CMD_DELETE_COLOR_INDEX_ID} });
|
|
76646
|
+
}
|
|
76647
|
+
}
|
|
76648
|
+
else if (item.Name=="专家系统")
|
|
76649
|
+
{
|
|
76650
|
+
if (this.TradeIndex)
|
|
76651
|
+
{
|
|
76652
|
+
item.SubMenu.push({ Name:JSPopMenu.SEPARATOR_LINE_NAME });
|
|
76653
|
+
item.SubMenu.push({ Name:"删除专家系统", Data:{ ID: JSCHART_MENU_ID.CMD_DELETE_TRADE_INDEX_ID} });
|
|
76654
|
+
}
|
|
76655
|
+
}
|
|
76656
|
+
else if (item.Name=="叠加品种")
|
|
76657
|
+
{
|
|
76658
|
+
for(var j=0;j<item.SubMenu.length;++j)
|
|
76659
|
+
{
|
|
76660
|
+
if (item.SubMenu[j].Checked)
|
|
76661
|
+
{
|
|
76662
|
+
item.SubMenu.push({ Name:JSPopMenu.SEPARATOR_LINE_NAME });
|
|
76663
|
+
item.SubMenu.push({ Name:"取消叠加", Data:{ ID: JSCHART_MENU_ID.CMD_DELETE_ALL_OVERLAY_SYMBOL_ID} });
|
|
76664
|
+
break;
|
|
76665
|
+
}
|
|
76666
|
+
}
|
|
76667
|
+
}
|
|
76668
|
+
else if (item.Name=="信息地雷")
|
|
76669
|
+
{
|
|
76670
|
+
for(var j=0;j<item.SubMenu.length;++j)
|
|
76671
|
+
{
|
|
76672
|
+
if (item.SubMenu[j].Checked)
|
|
76673
|
+
{
|
|
76674
|
+
item.SubMenu.push({ Name:JSPopMenu.SEPARATOR_LINE_NAME });
|
|
76675
|
+
item.SubMenu.push({ Name:"删除所有", Data:{ ID: JSCHART_MENU_ID.CMD_DELETE_ALL_KLINE_INFO_ID} });
|
|
76676
|
+
break;
|
|
76677
|
+
}
|
|
76678
|
+
}
|
|
76679
|
+
}
|
|
76680
|
+
}
|
|
76681
|
+
|
|
76682
|
+
return aryMenu;
|
|
76683
|
+
}
|
|
76684
|
+
|
|
76685
|
+
this.PopuRightMenuV2=function(data,e)
|
|
76686
|
+
{
|
|
76687
|
+
if (!this.JSPopMenu) return;
|
|
76688
|
+
var x=data.X, y=data.Y;
|
|
76689
|
+
var frameID=data.FrameID;
|
|
76690
|
+
var menuData={ Menu:this.GetRightMenuData(frameID), Position:JSPopMenu.POSITION_ID.RIGHT_MENU_ID };
|
|
76691
|
+
menuData.ClickCallback=(data)=>{ this.OnClickRightMenu(data); }
|
|
76692
|
+
|
|
76693
|
+
this.PopuMenuByRClick(menuData, x, y);
|
|
76694
|
+
}
|
|
76695
|
+
|
|
76129
76696
|
//重新加载画图工具(切换股票|周期)
|
|
76130
76697
|
this.ReloadChartDrawPicture=function()
|
|
76131
76698
|
{
|
|
76132
76699
|
this.ChartDrawPicture=[];
|
|
76133
|
-
this.
|
|
76700
|
+
if (this.SelectChartDrawPicture) this.SelectChartDrawPicture.IsSelected=false;
|
|
76701
|
+
this.SelectChartDrawPicture=null;
|
|
76702
|
+
this.CurrentChartDrawPicture=null;
|
|
76703
|
+
|
|
76134
76704
|
if (this.ChartDrawStorage)
|
|
76135
76705
|
{
|
|
76136
76706
|
this.ChartDrawStorageCache=this.ChartDrawStorage.GetDrawData( {Symbol:this.Symbol, Period:this.Period} );
|
|
@@ -77521,7 +78091,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
77521
78091
|
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_EXTENDCHART_BUTTON);
|
|
77522
78092
|
if (event && event.Callback)
|
|
77523
78093
|
{
|
|
77524
|
-
var data={ Info:button, PreventDefault:false }; //PreventDefault 是否阻止内置的点击处理
|
|
78094
|
+
var data={ Info:button, PreventDefault:false, e:e }; //PreventDefault 是否阻止内置的点击处理
|
|
77525
78095
|
event.Callback(event,data,this);
|
|
77526
78096
|
if (data.PreventDefault) return;
|
|
77527
78097
|
}
|
|
@@ -79488,7 +80058,13 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
79488
80058
|
//注册鼠标右键事件
|
|
79489
80059
|
this.OnRightMenu=function(x,y,e)
|
|
79490
80060
|
{
|
|
79491
|
-
|
|
80061
|
+
var pixelTatio = GetDevicePixelRatio(); //x,y 需要乘以放大倍速
|
|
80062
|
+
if (this.EnablePopMenuV2)
|
|
80063
|
+
{
|
|
80064
|
+
var frameId=this.Frame.PtInFrame(x*pixelTatio,y*pixelTatio);
|
|
80065
|
+
this.PopuRightMenuV2({X:e.offsetX, Y:e.offsetY, FrameID:frameId}, e);
|
|
80066
|
+
}
|
|
80067
|
+
else if (this.RightMenu)
|
|
79492
80068
|
{
|
|
79493
80069
|
var frameId=this.Frame.PtInFrame(x,y);
|
|
79494
80070
|
e.data={ Chart:this, FrameID:frameId };
|
|
@@ -79504,6 +80080,107 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
79504
80080
|
}
|
|
79505
80081
|
}
|
|
79506
80082
|
|
|
80083
|
+
//右键菜单数据
|
|
80084
|
+
this.GetRightMenuData=function(frameID)
|
|
80085
|
+
{
|
|
80086
|
+
var windowCount=this.Frame.SubFrame.length; //窗口个数
|
|
80087
|
+
|
|
80088
|
+
var aryOverlaySymbol=[]; //叠加的股票列表
|
|
80089
|
+
for(var i=0; i<this.OverlayChartPaint.length; ++i)
|
|
80090
|
+
{
|
|
80091
|
+
var item=this.OverlayChartPaint[i];
|
|
80092
|
+
if (item && item.Symbol) aryOverlaySymbol.push(item.Symbol)
|
|
80093
|
+
}
|
|
80094
|
+
|
|
80095
|
+
var aryMenu=
|
|
80096
|
+
[
|
|
80097
|
+
{
|
|
80098
|
+
Name:"叠加品种",
|
|
80099
|
+
SubMenu:
|
|
80100
|
+
[
|
|
80101
|
+
{ Name:"上证指数", Data:{ ID: JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID, Args:["000001.sh", !aryOverlaySymbol.includes("000001.sh")]}, Checked:aryOverlaySymbol.includes("000001.sh") },
|
|
80102
|
+
{ Name:"深证成指", Data:{ ID: JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID, Args:["399001.sz", !aryOverlaySymbol.includes("399001.sz")]}, Checked:aryOverlaySymbol.includes("399001.sz") },
|
|
80103
|
+
{ Name:"中小板指", Data:{ ID: JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID, Args:["399005.sz", !aryOverlaySymbol.includes("399005.sz")]}, Checked:aryOverlaySymbol.includes("399005.sz") },
|
|
80104
|
+
{ Name:"创业板指", Data:{ ID: JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID, Args:["399006.sz", !aryOverlaySymbol.includes("399006.sz")]}, Checked:aryOverlaySymbol.includes("399006.sz") },
|
|
80105
|
+
{ Name:"沪深300", Data:{ ID: JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID, Args:["000300.sh", !aryOverlaySymbol.includes("000300.sh")]}, Checked:aryOverlaySymbol.includes("000300.sh")},
|
|
80106
|
+
]
|
|
80107
|
+
},
|
|
80108
|
+
{
|
|
80109
|
+
Name:"多日分时图",
|
|
80110
|
+
SubMenu:
|
|
80111
|
+
[
|
|
80112
|
+
{ Name:"当日分时图", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID, Args:[1]}, Checked:this.DayCount==1 },
|
|
80113
|
+
{ Name:"最近2日", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID, Args:[2]}, Checked:this.DayCount==2 },
|
|
80114
|
+
{ Name:"最近3日", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID, Args:[3]}, Checked:this.DayCount==3 },
|
|
80115
|
+
{ Name:"最近4日", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID, Args:[4]}, Checked:this.DayCount==4 },
|
|
80116
|
+
{ Name:"最近5日", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID, Args:[5]}, Checked:this.DayCount==5 },
|
|
80117
|
+
]
|
|
80118
|
+
},
|
|
80119
|
+
{
|
|
80120
|
+
Name:"指标窗口个数",
|
|
80121
|
+
SubMenu:
|
|
80122
|
+
[
|
|
80123
|
+
{ Name:"1个窗口", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID, Args:[2]}, Checked:3==windowCount },
|
|
80124
|
+
{ Name:"2个窗口", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID, Args:[3]}, Checked:4==windowCount },
|
|
80125
|
+
{ Name:"3个窗口", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID, Args:[4]}, Checked:5==windowCount },
|
|
80126
|
+
{ Name:"4个窗口", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID, Args:[5]}, Checked:6==windowCount },
|
|
80127
|
+
{ Name:"5个窗口", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID, Args:[6]}, Checked:7==windowCount },
|
|
80128
|
+
]
|
|
80129
|
+
},
|
|
80130
|
+
{
|
|
80131
|
+
Name:"指标切换",
|
|
80132
|
+
SubMenu:
|
|
80133
|
+
[
|
|
80134
|
+
{ Name:"MACD", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID, Args:[frameID, "MACD"]}},
|
|
80135
|
+
{ Name:"DMI", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID, Args:[frameID, "DMI"]}},
|
|
80136
|
+
{ Name:"DMA", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID, Args:[frameID, "DMA"]}},
|
|
80137
|
+
{ Name:"BRAR", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID, Args:[frameID, "BRAR"]}},
|
|
80138
|
+
{ Name:"KDJ", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID, Args:[frameID, "KDJ"]}},
|
|
80139
|
+
{ Name:"RSI", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID, Args:[frameID, "RSI"]}},
|
|
80140
|
+
{ Name:"WR", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID, Args:[frameID, "WR"]}},
|
|
80141
|
+
{ Name:"CCI", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID, Args:[frameID, "CCI"]}},
|
|
80142
|
+
{ Name:"TRIX", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID, Args:[frameID, "TRIX"]}},
|
|
80143
|
+
]
|
|
80144
|
+
},
|
|
80145
|
+
{
|
|
80146
|
+
Name:"区间选择",Data:{ ID: JSCHART_MENU_ID.CMD_ENABLE_SELECT_RECT_ID, Args:[!this.EnableSelectRect]}, Checked:this.EnableSelectRect
|
|
80147
|
+
}
|
|
80148
|
+
|
|
80149
|
+
];
|
|
80150
|
+
|
|
80151
|
+
|
|
80152
|
+
//删除菜单
|
|
80153
|
+
for(var i=0;i<aryMenu.length;++i)
|
|
80154
|
+
{
|
|
80155
|
+
var item=aryMenu[i];
|
|
80156
|
+
if (item.Name=="叠加品种")
|
|
80157
|
+
{
|
|
80158
|
+
for(var j=0;j<item.SubMenu.length;++j)
|
|
80159
|
+
{
|
|
80160
|
+
if (item.SubMenu[j].Checked)
|
|
80161
|
+
{
|
|
80162
|
+
item.SubMenu.push({ Name:JSPopMenu.SEPARATOR_LINE_NAME });
|
|
80163
|
+
item.SubMenu.push({ Name:"取消叠加", Data:{ ID: JSCHART_MENU_ID.CMD_DELETE_ALL_OVERLAY_SYMBOL_ID} });
|
|
80164
|
+
break;
|
|
80165
|
+
}
|
|
80166
|
+
}
|
|
80167
|
+
}
|
|
80168
|
+
}
|
|
80169
|
+
|
|
80170
|
+
return aryMenu;
|
|
80171
|
+
}
|
|
80172
|
+
|
|
80173
|
+
this.PopuRightMenuV2=function(data,e)
|
|
80174
|
+
{
|
|
80175
|
+
if (!this.JSPopMenu) return;
|
|
80176
|
+
var x=data.X, y=data.Y;
|
|
80177
|
+
var frameID=data.FrameID;
|
|
80178
|
+
var menuData={ Menu:this.GetRightMenuData(frameID), Position:JSPopMenu.POSITION_ID.RIGHT_MENU_ID };
|
|
80179
|
+
menuData.ClickCallback=(data)=>{ this.OnClickRightMenu(data); }
|
|
80180
|
+
|
|
80181
|
+
this.PopuMenuByRClick(menuData, x, y);
|
|
80182
|
+
}
|
|
80183
|
+
|
|
79507
80184
|
this.OnWheel=function(e)
|
|
79508
80185
|
{
|
|
79509
80186
|
JSConsole.Chart.Log('[MinuteChartContainer::OnWheel]',e);
|
|
@@ -80608,15 +81285,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
80608
81285
|
this.ResetDayOffset();
|
|
80609
81286
|
}
|
|
80610
81287
|
|
|
80611
|
-
|
|
80612
|
-
{
|
|
80613
|
-
this.ChartDrawPicture=[];
|
|
80614
|
-
}
|
|
80615
|
-
else
|
|
80616
|
-
{
|
|
80617
|
-
this.ReloadChartDrawPicture();
|
|
80618
|
-
}
|
|
80619
|
-
|
|
81288
|
+
this.ReloadChartDrawPicture();
|
|
80620
81289
|
this.ResetDataStatus();
|
|
80621
81290
|
this.ClearIndexPaint(); //清空指标
|
|
80622
81291
|
this.Frame.ClearYCoordinateMaxMin();
|
|
@@ -81138,6 +81807,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
81138
81807
|
this.TitlePaint[0].IsShowDate=true;
|
|
81139
81808
|
this.UpdateDataOffset();
|
|
81140
81809
|
this.UpdateFrameMaxMin(); //调整坐标最大 最小值
|
|
81810
|
+
this.CreateChartDrawPictureByStorage(); //创建画图工具
|
|
81141
81811
|
|
|
81142
81812
|
//执行脚本
|
|
81143
81813
|
if (this.Frame.SubFrame.length>2)
|
|
@@ -81436,7 +82106,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
81436
82106
|
this.UpdateLatestMinuteDataV2(minuteData);
|
|
81437
82107
|
this.UpdateHistoryMinuteUI(updateTime);
|
|
81438
82108
|
this.RecvMinuteDataEvent({FunctionName:"RecvUpdateMinuteData"} );
|
|
81439
|
-
this.RequestOverlayMinuteData();
|
|
82109
|
+
this.RequestOverlayMinuteData(); //请求叠加数据 (主数据下载完再下载)
|
|
81440
82110
|
this.BindAllOverlayIndexData(this.SourceData);
|
|
81441
82111
|
this.AutoUpdateEvent(true, "MinuteChartContainer::RecvUpdateMinuteData");
|
|
81442
82112
|
this.AutoUpdate();
|
|
@@ -82856,7 +83526,11 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
82856
83526
|
this.ReloadChartDrawPicture=function()
|
|
82857
83527
|
{
|
|
82858
83528
|
this.ChartDrawPicture=[];
|
|
82859
|
-
this.
|
|
83529
|
+
if (this.SelectChartDrawPicture) this.SelectChartDrawPicture.IsSelected=false;
|
|
83530
|
+
this.SelectChartDrawPicture=null;
|
|
83531
|
+
this.CurrentChartDrawPicture=null;
|
|
83532
|
+
this.MoveOnChartDrawPicture=null;
|
|
83533
|
+
|
|
82860
83534
|
if (this.ChartDrawStorage)
|
|
82861
83535
|
{
|
|
82862
83536
|
this.ChartDrawStorageCache=this.ChartDrawStorage.GetDrawData( { Symbol:this.Symbol, Period:888888888 } );
|
|
@@ -82867,7 +83541,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
82867
83541
|
{
|
|
82868
83542
|
if (!this.ChartDrawStorageCache || this.ChartDrawStorageCache.length<=0) return;
|
|
82869
83543
|
|
|
82870
|
-
|
|
83544
|
+
var self=this;
|
|
83545
|
+
for(var i=0; i<this.ChartDrawStorageCache.length; ++i)
|
|
82871
83546
|
{
|
|
82872
83547
|
var item=this.ChartDrawStorageCache[i];
|
|
82873
83548
|
if (item.FrameID<0 || !this.Frame.SubFrame || this.Frame.SubFrame.length<item.FrameID) continue;
|
|
@@ -82878,8 +83553,11 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
82878
83553
|
drawPicture.Canvas=this.Canvas;
|
|
82879
83554
|
drawPicture.Status=10;
|
|
82880
83555
|
drawPicture.Frame=this.Frame.SubFrame[item.FrameID].Frame; //绑定框架坐标
|
|
83556
|
+
if (drawPicture.ImportStorageData) drawPicture.ImportStorageData(item);
|
|
83557
|
+
drawPicture.ResetXValue();
|
|
82881
83558
|
drawPicture.UpdateXValue();
|
|
82882
83559
|
drawPicture.ValueToPoint();
|
|
83560
|
+
drawPicture.GetActiveDrawPicture=()=>{ return this.GetActiveDrawPicture(); }
|
|
82883
83561
|
|
|
82884
83562
|
if (drawPicture.ClassName==='ChartDrawPictureText') drawPicture.IsInitialized=true;
|
|
82885
83563
|
|
|
@@ -134949,6 +135627,272 @@ function ScrollBarBGChart()
|
|
|
134949
135627
|
}
|
|
134950
135628
|
|
|
134951
135629
|
|
|
135630
|
+
/*
|
|
135631
|
+
Copyright (c) 2018 jones
|
|
135632
|
+
|
|
135633
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
135634
|
+
|
|
135635
|
+
开源项目 https://github.com/jones2000/HQChart
|
|
135636
|
+
|
|
135637
|
+
jones_2000@163.com
|
|
135638
|
+
|
|
135639
|
+
内置菜单 使用table模式
|
|
135640
|
+
*/
|
|
135641
|
+
|
|
135642
|
+
function JSPopMenu()
|
|
135643
|
+
{
|
|
135644
|
+
this.Data={ Menu:[], Position:0 }; //{ Name:, SVG, ID, bChecked:, SubMenu:[] } Position 0=右键菜单 1=Tab弹菜单 2=下拉菜单
|
|
135645
|
+
|
|
135646
|
+
this.RootDOM=null;
|
|
135647
|
+
this.TBodyDOM=null;
|
|
135648
|
+
this.ArySubRootDOM=[];
|
|
135649
|
+
|
|
135650
|
+
this.ClickCallback=null; //点击回调
|
|
135651
|
+
this.CheckedClassName="UMyChart_MenuItem_Span_Checked iconfont icon-checked"; //选中图标
|
|
135652
|
+
this.RightArrowClassName="UMyChart_MenuItem_Span_Arrow iconfont icon-menu_arraw_right"; //右侧箭头
|
|
135653
|
+
|
|
135654
|
+
this.AryTDClassName=
|
|
135655
|
+
[
|
|
135656
|
+
"UMyChart_MenuItem_Td_Status", //图标
|
|
135657
|
+
"UMyChart_MenuItem_Td_Content", //文字
|
|
135658
|
+
"UMyChart_MenuItem_Td_Shortcut", //快捷方式
|
|
135659
|
+
"UMyChart_MenuItem_Td_Arrow" //箭头
|
|
135660
|
+
];
|
|
135661
|
+
|
|
135662
|
+
this.Inital=function()
|
|
135663
|
+
{
|
|
135664
|
+
window.addEventListener('mousedown', (e)=>{ this.OnWindowMouseDown(e)});
|
|
135665
|
+
}
|
|
135666
|
+
|
|
135667
|
+
//创建菜单
|
|
135668
|
+
this.CreatePopMenu=function(data)
|
|
135669
|
+
{
|
|
135670
|
+
this.Clear();
|
|
135671
|
+
|
|
135672
|
+
var root=document.createElement("div");
|
|
135673
|
+
root.className="UMyChart_PopMenu";
|
|
135674
|
+
|
|
135675
|
+
var table=document.createElement("table");
|
|
135676
|
+
table.className="UMyChart_PopMenu_Table";
|
|
135677
|
+
root.appendChild(table);
|
|
135678
|
+
|
|
135679
|
+
var tbody=document.createElement("tbody");
|
|
135680
|
+
tbody.className="UMyChart_PopMenu_Tbody";
|
|
135681
|
+
table.appendChild(tbody);
|
|
135682
|
+
|
|
135683
|
+
|
|
135684
|
+
var rootData={ Root:root, TBody:tbody, Table:table };
|
|
135685
|
+
for(var i=0;i<data.Menu.length;++i)
|
|
135686
|
+
{
|
|
135687
|
+
var item=data.Menu[i];
|
|
135688
|
+
var trDom=this.CreateMenu(rootData, item);
|
|
135689
|
+
tbody.appendChild(trDom);
|
|
135690
|
+
}
|
|
135691
|
+
|
|
135692
|
+
document.body.appendChild(root);
|
|
135693
|
+
this.RootDOM=root;
|
|
135694
|
+
this.TBodyDOM=tbody;
|
|
135695
|
+
|
|
135696
|
+
if (IFrameSplitOperator.IsNumber(data.Position)) this.Data.Position=data.Position;
|
|
135697
|
+
if (data.ClickCallback) this.ClickCallback=data.ClickCallback;
|
|
135698
|
+
|
|
135699
|
+
}
|
|
135700
|
+
|
|
135701
|
+
//清除菜单
|
|
135702
|
+
this.Clear=function()
|
|
135703
|
+
{
|
|
135704
|
+
this.Data.Menu=[];
|
|
135705
|
+
this.Data.Position=JSPopMenu.POSITION_ID.RIGHT_MENU_ID;
|
|
135706
|
+
this.ClickCallback=null;
|
|
135707
|
+
|
|
135708
|
+
if (!this.RootDOM) return;
|
|
135709
|
+
|
|
135710
|
+
document.body.removeChild(this.RootDOM);
|
|
135711
|
+
this.RootDOM=null;
|
|
135712
|
+
this.TBodyDOM=null;
|
|
135713
|
+
|
|
135714
|
+
for(var i=0;i<this.ArySubRootDOM.length;++i)
|
|
135715
|
+
{
|
|
135716
|
+
document.body.removeChild(this.ArySubRootDOM[i]);
|
|
135717
|
+
}
|
|
135718
|
+
this.ArySubRootDOM=[]
|
|
135719
|
+
}
|
|
135720
|
+
|
|
135721
|
+
this.CreateMenu=function(parentItem, item)
|
|
135722
|
+
{
|
|
135723
|
+
var trDom=document.createElement("tr");
|
|
135724
|
+
trDom.className='UMyChart_MenuItem_Tr';
|
|
135725
|
+
|
|
135726
|
+
var prtTdDom=null;
|
|
135727
|
+
for(var i=0;i<this.AryTDClassName.length;++i)
|
|
135728
|
+
{
|
|
135729
|
+
var tdDom=document.createElement("td");
|
|
135730
|
+
tdDom.className=this.AryTDClassName[i];
|
|
135731
|
+
|
|
135732
|
+
if (i==0) //图标
|
|
135733
|
+
{
|
|
135734
|
+
if (item.Checked)
|
|
135735
|
+
{
|
|
135736
|
+
var spanDom=document.createElement("span");
|
|
135737
|
+
spanDom.className=this.CheckedClassName;
|
|
135738
|
+
tdDom.appendChild(spanDom);
|
|
135739
|
+
}
|
|
135740
|
+
}
|
|
135741
|
+
else if (i==1) //内容
|
|
135742
|
+
{
|
|
135743
|
+
tdDom.innerText=item.Name;
|
|
135744
|
+
}
|
|
135745
|
+
else if (i==2) //快捷方式
|
|
135746
|
+
{
|
|
135747
|
+
|
|
135748
|
+
}
|
|
135749
|
+
else if (i==3) //箭头
|
|
135750
|
+
{
|
|
135751
|
+
if (IFrameSplitOperator.IsNonEmptyArray(item.SubMenu))
|
|
135752
|
+
{
|
|
135753
|
+
var spanDom=document.createElement("span");
|
|
135754
|
+
spanDom.className=this.RightArrowClassName;
|
|
135755
|
+
tdDom.appendChild(spanDom);
|
|
135756
|
+
}
|
|
135757
|
+
}
|
|
135758
|
+
|
|
135759
|
+
trDom.appendChild(tdDom);
|
|
135760
|
+
}
|
|
135761
|
+
|
|
135762
|
+
if (IFrameSplitOperator.IsNonEmptyArray(item.SubMenu)) //子菜单
|
|
135763
|
+
{
|
|
135764
|
+
var subRoot=document.createElement("div");
|
|
135765
|
+
subRoot.className="UMyChart_PopSubMenu";
|
|
135766
|
+
|
|
135767
|
+
var subTable=document.createElement("table");
|
|
135768
|
+
subTable.className="UMyChart_PopMenu_Table";
|
|
135769
|
+
subRoot.appendChild(subTable);
|
|
135770
|
+
|
|
135771
|
+
var subTbody=document.createElement("tbody");
|
|
135772
|
+
subTbody.className="UMyChart_PopMenu_TBody";
|
|
135773
|
+
subTable.appendChild(subTbody);
|
|
135774
|
+
|
|
135775
|
+
var subRootData={ Root:subRoot, TBody:subTbody, Table:subTable };
|
|
135776
|
+
var preTrDom=null;
|
|
135777
|
+
for(var i=0;i<item.SubMenu.length;++i)
|
|
135778
|
+
{
|
|
135779
|
+
var subItem=item.SubMenu[i];
|
|
135780
|
+
if (subItem.Name==JSPopMenu.SEPARATOR_LINE_NAME)
|
|
135781
|
+
{
|
|
135782
|
+
if (preTrDom) preTrDom.classList.add("border");
|
|
135783
|
+
continue;
|
|
135784
|
+
}
|
|
135785
|
+
|
|
135786
|
+
var subTrDom=this.CreateMenu(subRootData, subItem);
|
|
135787
|
+
preTrDom=subTrDom;
|
|
135788
|
+
subTbody.appendChild(subTrDom);
|
|
135789
|
+
}
|
|
135790
|
+
|
|
135791
|
+
trDom.onmouseover=(e)=>{ this.OnMouseOver(e, parentItem, trDom, subRoot); }
|
|
135792
|
+
document.body.appendChild(subRoot);
|
|
135793
|
+
this.ArySubRootDOM.push(subRoot);
|
|
135794
|
+
}
|
|
135795
|
+
else
|
|
135796
|
+
{
|
|
135797
|
+
trDom.onmousedown=(e)=> { this.OnClickMenu(e, item, false); }; //菜单点击
|
|
135798
|
+
trDom.onmouseover=(e)=>{ this.OnMouseOver(e, parentItem); }
|
|
135799
|
+
}
|
|
135800
|
+
|
|
135801
|
+
return trDom;
|
|
135802
|
+
}
|
|
135803
|
+
|
|
135804
|
+
//弹tab菜单
|
|
135805
|
+
this.PopupMenuByTab=function(rtTab)
|
|
135806
|
+
{
|
|
135807
|
+
if (!this.RootDOM) return;
|
|
135808
|
+
if (!rtTab) return;
|
|
135809
|
+
|
|
135810
|
+
var xLeft=rtTab.Left;
|
|
135811
|
+
var yTop=rtTab.Top-this.RootDOM.offsetHeight;
|
|
135812
|
+
|
|
135813
|
+
this.RootDOM.style.visibility='visible';
|
|
135814
|
+
this.RootDOM.style.top = yTop + "px";
|
|
135815
|
+
this.RootDOM.style.left = xLeft + "px";
|
|
135816
|
+
}
|
|
135817
|
+
|
|
135818
|
+
//弹右键菜单
|
|
135819
|
+
this.PopupMenuByRight=function(x,y)
|
|
135820
|
+
{
|
|
135821
|
+
if (!this.RootDOM) return;
|
|
135822
|
+
if (!IFrameSplitOperator.IsNumber(x) || !IFrameSplitOperator.IsNumber(y)) return;
|
|
135823
|
+
|
|
135824
|
+
this.RootDOM.style.visibility='visible';
|
|
135825
|
+
this.RootDOM.style.top = y + "px";
|
|
135826
|
+
this.RootDOM.style.left = x + "px";
|
|
135827
|
+
}
|
|
135828
|
+
|
|
135829
|
+
this.OnClickMenu=function(e, item, bSubMenu)
|
|
135830
|
+
{
|
|
135831
|
+
console.log("[JSPopMenu::OnClickMenu] e=, item=, bSubMenu", e, item, bSubMenu);
|
|
135832
|
+
if (!this.ClickCallback) return;
|
|
135833
|
+
|
|
135834
|
+
this.ClickCallback(item);
|
|
135835
|
+
}
|
|
135836
|
+
|
|
135837
|
+
this.OnMouseOver=function(e, parentItem, trDom, subMenu)
|
|
135838
|
+
{
|
|
135839
|
+
if (parentItem && parentItem.PopMenu && parentItem.PopMenu!=subMenu)
|
|
135840
|
+
{
|
|
135841
|
+
parentItem.PopMenu.style.visibility="hidden";
|
|
135842
|
+
parentItem.PopMenu=null;
|
|
135843
|
+
parentItem.PopRow=null;
|
|
135844
|
+
}
|
|
135845
|
+
|
|
135846
|
+
if (subMenu)
|
|
135847
|
+
{
|
|
135848
|
+
if (subMenu.style.visibility=="visible")
|
|
135849
|
+
{
|
|
135850
|
+
|
|
135851
|
+
}
|
|
135852
|
+
else
|
|
135853
|
+
{
|
|
135854
|
+
var rtParent=trDom.getBoundingClientRect();
|
|
135855
|
+
subMenu.style.left=`${rtParent.right}px`;
|
|
135856
|
+
subMenu.style.top=`${rtParent.top}px`;
|
|
135857
|
+
|
|
135858
|
+
/*
|
|
135859
|
+
if (this.Data.Position==JSPopMenu.POSITION_ID.TAB_MENU_ID)
|
|
135860
|
+
{
|
|
135861
|
+
var yButton=parentItem.Root.getBoundingClientRect().bottom;
|
|
135862
|
+
var ySubButton=subMenu.getBoundingClientRect().bottom;
|
|
135863
|
+
if (yButton<ySubButton)
|
|
135864
|
+
{
|
|
135865
|
+
var yOffset=yButton-ySubButton;
|
|
135866
|
+
subMenu.style.top=`${yOffset}px`;
|
|
135867
|
+
}
|
|
135868
|
+
}
|
|
135869
|
+
*/
|
|
135870
|
+
|
|
135871
|
+
subMenu.style.visibility="visible";
|
|
135872
|
+
}
|
|
135873
|
+
|
|
135874
|
+
parentItem.PopMenu=subMenu;
|
|
135875
|
+
parentItem.PopRow=trDom;
|
|
135876
|
+
}
|
|
135877
|
+
}
|
|
135878
|
+
|
|
135879
|
+
|
|
135880
|
+
|
|
135881
|
+
this.OnWindowMouseDown=function(e)
|
|
135882
|
+
{
|
|
135883
|
+
if (!this.RootDOM) return;
|
|
135884
|
+
|
|
135885
|
+
console.log("[JSPopMenu::OnWindowMouseDown] e=", e);
|
|
135886
|
+
|
|
135887
|
+
this.Clear();
|
|
135888
|
+
}
|
|
135889
|
+
}
|
|
135890
|
+
|
|
135891
|
+
|
|
135892
|
+
JSPopMenu.POSITION_ID={ };
|
|
135893
|
+
JSPopMenu.POSITION_ID.RIGHT_MENU_ID=0;
|
|
135894
|
+
JSPopMenu.POSITION_ID.TAB_MENU_ID=1;
|
|
135895
|
+
JSPopMenu.SEPARATOR_LINE_NAME="MENU_SEPARATOR"; //分割线
|
|
134952
135896
|
///////////////////////////////////////////////////////////////////////////////////
|
|
134953
135897
|
// 工作线程计算指标示例
|
|
134954
135898
|
//
|
|
@@ -135070,7 +136014,7 @@ function HQChartScriptWorker()
|
|
|
135070
136014
|
|
|
135071
136015
|
|
|
135072
136016
|
|
|
135073
|
-
var HQCHART_VERSION="1.1.
|
|
136017
|
+
var HQCHART_VERSION="1.1.13181";
|
|
135074
136018
|
|
|
135075
136019
|
function PrintHQChartVersion()
|
|
135076
136020
|
{
|
|
@@ -135207,5 +136151,7 @@ export default {
|
|
|
135207
136151
|
|
|
135208
136152
|
|
|
135209
136153
|
HQChartScriptWorker:HQChartScriptWorker, //计算工作线程
|
|
136154
|
+
|
|
136155
|
+
JSPopMenu:JSPopMenu, //弹出菜单
|
|
135210
136156
|
|
|
135211
136157
|
}
|