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
|
@@ -4167,6 +4167,8 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4167
4167
|
chart.ModifyIndexDialog=this.ModifyIndexDialog;
|
|
4168
4168
|
chart.ChangeIndexDialog=this.ChangeIndexDialog;
|
|
4169
4169
|
chart.MinuteDialog=this.MinuteDialog;
|
|
4170
|
+
|
|
4171
|
+
var pixelRatio=GetDevicePixelRatio();
|
|
4170
4172
|
|
|
4171
4173
|
//右键菜单
|
|
4172
4174
|
if (option.IsShowRightMenu==true) chart.RightMenu=new KLineRightMenu(this.DivElement);
|
|
@@ -4385,8 +4387,8 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4385
4387
|
chart.Frame.SubFrame[i].Frame.IsShowYText[1]=item.IsShowRightText;
|
|
4386
4388
|
chart.Frame.SubFrame[i].Frame.YSplitOperator.IsShowRightText=item.IsShowRightText; //显示右边刻度
|
|
4387
4389
|
}
|
|
4388
|
-
if (item.TopSpace>=0) chart.Frame.SubFrame[i].Frame.ChartBorder.TopSpace=item.TopSpace;
|
|
4389
|
-
if (item.BottomSpace>=0) chart.Frame.SubFrame[i].Frame.ChartBorder.BottomSpace=item.BottomSpace;
|
|
4390
|
+
if (item.TopSpace>=0) chart.Frame.SubFrame[i].Frame.ChartBorder.TopSpace=item.TopSpace*pixelRatio;
|
|
4391
|
+
if (item.BottomSpace>=0) chart.Frame.SubFrame[i].Frame.ChartBorder.BottomSpace=item.BottomSpace*pixelRatio;
|
|
4390
4392
|
|
|
4391
4393
|
if (item.RightTextPosition>0) chart.Frame.SubFrame[i].Frame.YTextPosition[1]=item.RightTextPosition;
|
|
4392
4394
|
if (item.LeftTextPosition>0) chart.Frame.SubFrame[i].Frame.YTextPosition[0]=item.LeftTextPosition;
|
|
@@ -4688,6 +4690,8 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4688
4690
|
chart.ModifyIndexDialog=this.ModifyIndexDialog;
|
|
4689
4691
|
chart.ChangeIndexDialog=this.ChangeIndexDialog;
|
|
4690
4692
|
|
|
4693
|
+
var pixelRatio=GetDevicePixelRatio();
|
|
4694
|
+
|
|
4691
4695
|
var windowsCount=2;
|
|
4692
4696
|
if (option.Windows && option.Windows.length>0) windowsCount+=option.Windows.length; //指标窗口从第3个窗口开始
|
|
4693
4697
|
if (option.EnableScrollUpDown==true) chart.EnableScrollUpDown=option.EnableScrollUpDown;
|
|
@@ -4855,8 +4859,8 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4855
4859
|
if (IFrameSplitOperator.IsNumber(item.YTextBaseline)) chart.Frame.SubFrame[i].Frame.YTextBaseline=item.YTextBaseline;
|
|
4856
4860
|
if (IFrameSplitOperator.IsBool(item.IsShowIndexTitle)) chart.Frame.SubFrame[i].Frame.IsShowIndexTitle=item.IsShowIndexTitle;
|
|
4857
4861
|
|
|
4858
|
-
if (item.TopSpace>=0) chart.Frame.SubFrame[i].Frame.ChartBorder.TopSpace=item.TopSpace;
|
|
4859
|
-
if (item.BottomSpace>=0) chart.Frame.SubFrame[i].Frame.ChartBorder.BottomSpace=item.BottomSpace;
|
|
4862
|
+
if (item.TopSpace>=0) chart.Frame.SubFrame[i].Frame.ChartBorder.TopSpace=item.TopSpace*pixelRatio;
|
|
4863
|
+
if (item.BottomSpace>=0) chart.Frame.SubFrame[i].Frame.ChartBorder.BottomSpace=item.BottomSpace*pixelRatio;
|
|
4860
4864
|
|
|
4861
4865
|
//是否显示关闭集合竞价按钮
|
|
4862
4866
|
if (IFrameSplitOperator.IsNumber(item.CloseBeforeButton)) chart.Frame.SubFrame[i].Frame.IsShowCloseButton=item.CloseBeforeButton;
|
|
@@ -5529,6 +5533,13 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
5529
5533
|
//是否自动更新
|
|
5530
5534
|
if (option.IsAutoUpdate!=null) chart.IsAutoUpdate=option.IsAutoUpdate;
|
|
5531
5535
|
if (option.AutoUpdateFrequency>0) chart.AutoUpdateFrequency=option.AutoUpdateFrequency;
|
|
5536
|
+
//内置菜单
|
|
5537
|
+
if (option.EnablePopMenuV2===true)
|
|
5538
|
+
{
|
|
5539
|
+
chart.JSPopMenu=new JSPopMenu();
|
|
5540
|
+
chart.JSPopMenu.Inital();
|
|
5541
|
+
chart.EnablePopMenuV2=true;
|
|
5542
|
+
}
|
|
5532
5543
|
//注册事件
|
|
5533
5544
|
if (option.EventCallback)
|
|
5534
5545
|
{
|
|
@@ -5555,19 +5566,6 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
5555
5566
|
this.DivElement.JSChart=this; //div中保存一份
|
|
5556
5567
|
this.JSChartContainer.Draw();
|
|
5557
5568
|
}
|
|
5558
|
-
|
|
5559
|
-
if (IFrameSplitOperator.IsBool(option.CheckLatestVerion) && option.CheckLatestVerion==false)
|
|
5560
|
-
{
|
|
5561
|
-
|
|
5562
|
-
}
|
|
5563
|
-
else if (JSChart.LastVersion==null)
|
|
5564
|
-
{
|
|
5565
|
-
if (chart && typeof(chart.GetLatestVersion)=='function')
|
|
5566
|
-
{
|
|
5567
|
-
//由于域名都要备案,获取最新版本接口停止使用
|
|
5568
|
-
//chart.GetLatestVersion();
|
|
5569
|
-
}
|
|
5570
|
-
}
|
|
5571
5569
|
}
|
|
5572
5570
|
|
|
5573
5571
|
//创建工具条
|
|
@@ -6011,6 +6009,15 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
6011
6009
|
return this.JSChartContainer.ChangePriceGap(option);
|
|
6012
6010
|
}
|
|
6013
6011
|
}
|
|
6012
|
+
|
|
6013
|
+
this.PopupMenuByTab=function(menuData, rtTab)
|
|
6014
|
+
{
|
|
6015
|
+
if(this.JSChartContainer && typeof(this.JSChartContainer.PopupMenuByTab)=='function')
|
|
6016
|
+
{
|
|
6017
|
+
JSConsole.Chart.Log('[JSChart:ChangePriceGap] ');
|
|
6018
|
+
return this.JSChartContainer.PopupMenuByTab(menuData, rtTab);
|
|
6019
|
+
}
|
|
6020
|
+
}
|
|
6014
6021
|
}
|
|
6015
6022
|
|
|
6016
6023
|
JSChart.LastVersion=null; //最新的版本号
|
|
@@ -6216,6 +6223,12 @@ JSChart.ToFixedRect=function(value)
|
|
|
6216
6223
|
return ToFixedRect(value);
|
|
6217
6224
|
}
|
|
6218
6225
|
|
|
6226
|
+
JSChart.GetScrollPosition=function()
|
|
6227
|
+
{
|
|
6228
|
+
return GetScrollPosition();
|
|
6229
|
+
}
|
|
6230
|
+
|
|
6231
|
+
|
|
6219
6232
|
|
|
6220
6233
|
|
|
6221
6234
|
var JSCHART_EVENT_ID=
|
|
@@ -6501,6 +6514,36 @@ var JSCHART_WORKER_MESSAGE_ID=
|
|
|
6501
6514
|
ERROR_EXECUTE_SCRIPT:3,
|
|
6502
6515
|
}
|
|
6503
6516
|
|
|
6517
|
+
var JSCHART_MENU_ID=
|
|
6518
|
+
{
|
|
6519
|
+
CMD_CHANGE_PERIOD_ID:1, //切换周期
|
|
6520
|
+
CMD_CHANGE_WINDOW_COUNT_ID:2, //窗口个数
|
|
6521
|
+
CMD_CHANGE_RIGHT_ID:3, //复权
|
|
6522
|
+
CMD_CHANGE_INDEX_ID:4, //切换指标
|
|
6523
|
+
CMD_CHANGE_COLOR_INDEX_ID:5, //五彩K线指标
|
|
6524
|
+
CMD_CHANGE_TRADE_INDEX_ID:6, //专家系统(交易指标)
|
|
6525
|
+
CMD_DELETE_COLOR_INDEX_ID:7, //删除五彩K线指标
|
|
6526
|
+
CMD_DELETE_TRADE_INDEX_ID:8, //删除专家系统(交易指标)
|
|
6527
|
+
CMD_CHANGE_KLINE_TYPE_ID:9, //切换K线类型
|
|
6528
|
+
CMD_CHANGE_PRICE_GAP_ID:10, //缺口提示
|
|
6529
|
+
CMD_OVERLAY_SYMBOL_ID:11, //叠加品种
|
|
6530
|
+
CMD_DELETE_ALL_OVERLAY_SYMBOL_ID:12, //删除所有叠加品种
|
|
6531
|
+
CMD_CHANGE_COORDINATETYPE_ID:13, //切换坐标类型
|
|
6532
|
+
CMD_CHANGE_KLINE_INFO_ID:14, //切换信息地雷
|
|
6533
|
+
CMD_DELETE_ALL_KLINE_INFO_ID:15, //清空信息地雷
|
|
6534
|
+
CMD_CHANGE_DRAG_MODE_ID:16, //切换拖动模式
|
|
6535
|
+
CMD_CHANGE_BG_SPLIT_ID:17, //背景分割
|
|
6536
|
+
|
|
6537
|
+
CMD_SHOW_DRAWTOOL_ID:18, //画图工具
|
|
6538
|
+
CMD_HIDE_DRAWTOOL_ID:19,
|
|
6539
|
+
|
|
6540
|
+
CMD_SHOW_STOCKCHIP_ID:20, //筹码分布
|
|
6541
|
+
CMD_HIDE_STOCKCHIP_ID:21,
|
|
6542
|
+
|
|
6543
|
+
CMD_ENABLE_SELECT_RECT_ID:22, //启动区间选择
|
|
6544
|
+
CMD_CHANGE_DAY_COUNT_ID:23, //切换天数
|
|
6545
|
+
}
|
|
6546
|
+
|
|
6504
6547
|
|
|
6505
6548
|
function PhoneDBClick()
|
|
6506
6549
|
{
|
|
@@ -6586,6 +6629,11 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
6586
6629
|
this.LoadDataSplashTitle="数据加载中"; //下载数据提示信息
|
|
6587
6630
|
this.DefaultCursor="default"; //crosshair , default 默认手型
|
|
6588
6631
|
|
|
6632
|
+
this.EnablePopMenuV2=false;
|
|
6633
|
+
this.JSPopMenu; //内置菜单
|
|
6634
|
+
//this.JSPopMenu=new JSPopMenu(); //内置菜单
|
|
6635
|
+
//this.JSPopMenu.Inital();
|
|
6636
|
+
|
|
6589
6637
|
//绘图缓存
|
|
6590
6638
|
this.CacheCanvas=null;
|
|
6591
6639
|
this.CacheElement=null;
|
|
@@ -6781,61 +6829,10 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
6781
6829
|
{
|
|
6782
6830
|
this.IsDestroy=true;
|
|
6783
6831
|
this.StopAutoUpdate();
|
|
6784
|
-
|
|
6785
|
-
if (this.GetLatestVersionTimer!=null)
|
|
6786
|
-
{
|
|
6787
|
-
clearTimeout(this.GetLatestVersionTimer);
|
|
6788
|
-
this.GetLatestVersionTimer=null;
|
|
6789
|
-
}
|
|
6790
6832
|
}
|
|
6791
6833
|
|
|
6792
6834
|
this.ChartDestory=this.ChartDestroy; //老版本写错了,需要兼容下
|
|
6793
6835
|
|
|
6794
|
-
|
|
6795
|
-
this.GetLatestVersionTimer=null; //获取最新版本
|
|
6796
|
-
this.GetLatestVersion=function()
|
|
6797
|
-
{
|
|
6798
|
-
if (this.GetLatestVersionTimer!=null)
|
|
6799
|
-
{
|
|
6800
|
-
clearTimeout(this.GetLatestVersionTimer);
|
|
6801
|
-
this.GetLatestVersionTimer=null;
|
|
6802
|
-
}
|
|
6803
|
-
|
|
6804
|
-
var roundeTime=Math.floor(Math.random()*50);
|
|
6805
|
-
var waittimer=1000*60*3+(roundeTime*1000);
|
|
6806
|
-
var value="aHR0cHM6Ly9ocWNoYXJ0LnplYWxpbmsuY29tL2FwaS9HZXRWZXJzaW9u";
|
|
6807
|
-
JSConsole.Chart.Log("[JSChartContainer::GetLatestVersion] wait for get hqchart latest version. ",waittimer);
|
|
6808
|
-
this.GetLatestVersionTimer = setTimeout(()=>
|
|
6809
|
-
{
|
|
6810
|
-
var width=0, height=0;
|
|
6811
|
-
if (this.Frame && this.Frame.ChartBorder)
|
|
6812
|
-
{
|
|
6813
|
-
width=this.Frame.ChartBorder.GetChartWidth();
|
|
6814
|
-
height=this.Frame.ChartBorder.GetChartHeight();
|
|
6815
|
-
}
|
|
6816
|
-
|
|
6817
|
-
var url=`${atob(value)}?width=${width}&height=${height}&type=h5`;
|
|
6818
|
-
|
|
6819
|
-
if (JSChart.LastVersion!=null) return; //只请求一次
|
|
6820
|
-
|
|
6821
|
-
JSNetwork.HttpRequest({
|
|
6822
|
-
url: url,
|
|
6823
|
-
type:"get",
|
|
6824
|
-
dataType: "json",
|
|
6825
|
-
async:true,
|
|
6826
|
-
success:function(data)
|
|
6827
|
-
{
|
|
6828
|
-
JSConsole.Chart.Log("[JSChartContainer::GetLatestVersion] hqchart latest version. ",data);
|
|
6829
|
-
JSChart.LastVersion=data;
|
|
6830
|
-
},
|
|
6831
|
-
error:function(request, textStatus, errorThrown)
|
|
6832
|
-
{
|
|
6833
|
-
JSConsole.Chart.Log("[JSChartContainer::GetLatestVersion] Get HQChart latest version failed.", request);
|
|
6834
|
-
}
|
|
6835
|
-
});
|
|
6836
|
-
}, waittimer);
|
|
6837
|
-
}
|
|
6838
|
-
|
|
6839
6836
|
//设置焦点
|
|
6840
6837
|
this.SetFocus=function()
|
|
6841
6838
|
{
|
|
@@ -12894,6 +12891,213 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
12894
12891
|
}
|
|
12895
12892
|
}
|
|
12896
12893
|
}
|
|
12894
|
+
|
|
12895
|
+
this.PopupMenuByTab=function(menuData, rtTab)
|
|
12896
|
+
{
|
|
12897
|
+
if (!this.JSPopMenu) return;
|
|
12898
|
+
|
|
12899
|
+
var pixelRatio=GetDevicePixelRatio();
|
|
12900
|
+
var rtCell={ Left:rtTab.Left/pixelRatio, Right:rtTab.Right/pixelRatio, Bottom:rtTab.Bottom/pixelRatio, Top:rtTab.Top/pixelRatio };
|
|
12901
|
+
rtCell.Width=rtCell.Right-rtCell.Left;
|
|
12902
|
+
rtCell.Height=rtCell.Bottom-rtCell.Top;
|
|
12903
|
+
|
|
12904
|
+
var rtClient=this.UIElement.getBoundingClientRect();
|
|
12905
|
+
var rtScroll=GetScrollPosition();
|
|
12906
|
+
|
|
12907
|
+
var offsetLeft=rtClient.left+rtScroll.Left;
|
|
12908
|
+
var offsetTop=rtClient.top+rtScroll.Top;
|
|
12909
|
+
rtCell.Left+=offsetLeft;
|
|
12910
|
+
rtCell.Right+=offsetLeft;
|
|
12911
|
+
rtCell.Top+=offsetTop;
|
|
12912
|
+
rtCell.Bottom+=offsetTop;
|
|
12913
|
+
|
|
12914
|
+
this.JSPopMenu.CreatePopMenu(menuData);
|
|
12915
|
+
this.JSPopMenu.PopupMenuByTab(rtCell);
|
|
12916
|
+
}
|
|
12917
|
+
|
|
12918
|
+
this.PopuMenuByRClick=function(menuData, x, y)
|
|
12919
|
+
{
|
|
12920
|
+
var rtClient=this.UIElement.getBoundingClientRect();
|
|
12921
|
+
var rtScroll=GetScrollPosition();
|
|
12922
|
+
|
|
12923
|
+
x+=rtClient.left+rtScroll.Left;
|
|
12924
|
+
y+=rtClient.top+rtScroll.Top;
|
|
12925
|
+
|
|
12926
|
+
this.JSPopMenu.CreatePopMenu(menuData);
|
|
12927
|
+
this.JSPopMenu.PopupMenuByRight(x,y);
|
|
12928
|
+
}
|
|
12929
|
+
|
|
12930
|
+
//点击右键菜单
|
|
12931
|
+
this.OnClickRightMenu=function(data)
|
|
12932
|
+
{
|
|
12933
|
+
JSConsole.Chart.Log('[JSChartContainer::OnClickRightMenu] ',data);
|
|
12934
|
+
if (!data || !data.Data) return;
|
|
12935
|
+
|
|
12936
|
+
var cmdID=data.Data.ID; //命令ID
|
|
12937
|
+
var aryArgs=data.Data.Args; //参数
|
|
12938
|
+
var param=null, srcParam=null; //原始值
|
|
12939
|
+
if (IFrameSplitOperator.IsNonEmptyArray(aryArgs))
|
|
12940
|
+
{
|
|
12941
|
+
srcParam=aryArgs[0];
|
|
12942
|
+
if (IFrameSplitOperator.IsNumber(aryArgs[0])) param=aryArgs[0];
|
|
12943
|
+
}
|
|
12944
|
+
|
|
12945
|
+
switch(cmdID)
|
|
12946
|
+
{
|
|
12947
|
+
case JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID:
|
|
12948
|
+
if (this.ChangePeriod && param!=null)
|
|
12949
|
+
this.ChangePeriod(param);
|
|
12950
|
+
break;
|
|
12951
|
+
case JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID:
|
|
12952
|
+
if (this.ChangeIndexWindowCount && param!=null)
|
|
12953
|
+
this.ChangeIndexWindowCount(param);
|
|
12954
|
+
break;
|
|
12955
|
+
case JSCHART_MENU_ID.CMD_CHANGE_RIGHT_ID:
|
|
12956
|
+
if (this.ChangeRight && param!=null)
|
|
12957
|
+
this.ChangeRight(param);
|
|
12958
|
+
break;
|
|
12959
|
+
case JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID:
|
|
12960
|
+
if (this.ChangeIndex && param!=null && aryArgs[1])
|
|
12961
|
+
this.ChangeIndex(param,aryArgs[1]);
|
|
12962
|
+
break;
|
|
12963
|
+
|
|
12964
|
+
case JSCHART_MENU_ID.CMD_CHANGE_COLOR_INDEX_ID:
|
|
12965
|
+
case JSCHART_MENU_ID.CMD_CHANGE_TRADE_INDEX_ID:
|
|
12966
|
+
if (this.ChangeInstructionIndex && aryArgs[0])
|
|
12967
|
+
this.ChangeInstructionIndex(aryArgs[0]);
|
|
12968
|
+
break;
|
|
12969
|
+
case JSCHART_MENU_ID.CMD_DELETE_COLOR_INDEX_ID: //删除五彩K线指标
|
|
12970
|
+
case JSCHART_MENU_ID.CMD_DELETE_TRADE_INDEX_ID: //删除专家系统(交易指标)
|
|
12971
|
+
if (this.CancelInstructionIndex) this.CancelInstructionIndex();
|
|
12972
|
+
break;
|
|
12973
|
+
case JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID: //切换K线类型
|
|
12974
|
+
if (this.ChangeKLineDrawType && param!=null)
|
|
12975
|
+
this.ChangeKLineDrawType(param,aryArgs[1],aryArgs[2]);
|
|
12976
|
+
break;
|
|
12977
|
+
case JSCHART_MENU_ID.CMD_CHANGE_PRICE_GAP_ID: //缺口提示
|
|
12978
|
+
if (this.ChangePriceGap && IFrameSplitOperator.IsBool(aryArgs[0]))
|
|
12979
|
+
{
|
|
12980
|
+
if (aryArgs[0]==false)
|
|
12981
|
+
{
|
|
12982
|
+
this.ChangePriceGap({ Enable:aryArgs[0] });
|
|
12983
|
+
}
|
|
12984
|
+
else
|
|
12985
|
+
{
|
|
12986
|
+
if (IFrameSplitOperator.IsNumber(aryArgs[1]))
|
|
12987
|
+
this.ChangePriceGap({ Enable:aryArgs[0], Count:aryArgs[1] });
|
|
12988
|
+
}
|
|
12989
|
+
}
|
|
12990
|
+
break;
|
|
12991
|
+
case JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID:
|
|
12992
|
+
if (aryArgs[1]===true)
|
|
12993
|
+
{
|
|
12994
|
+
if (this.OverlaySymbol && aryArgs[0]) this.OverlaySymbol(aryArgs[0]);
|
|
12995
|
+
}
|
|
12996
|
+
else if (aryArgs[1]===false)
|
|
12997
|
+
{
|
|
12998
|
+
if (this.DeleteOverlaySymbol && aryArgs[0]) this.DeleteOverlaySymbol(aryArgs[0]);
|
|
12999
|
+
}
|
|
13000
|
+
break;
|
|
13001
|
+
case JSCHART_MENU_ID.CMD_DELETE_ALL_OVERLAY_SYMBOL_ID:
|
|
13002
|
+
if (this.ClearOverlaySymbol) this.ClearOverlaySymbol();
|
|
13003
|
+
break;
|
|
13004
|
+
case JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID:
|
|
13005
|
+
if (this.ChangeCoordinateType && aryArgs[0]) this.ChangeCoordinateType(aryArgs[0]);
|
|
13006
|
+
break;
|
|
13007
|
+
case JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID:
|
|
13008
|
+
if (aryArgs[0] && IFrameSplitOperator.IsBool(aryArgs[1]))
|
|
13009
|
+
{
|
|
13010
|
+
if (aryArgs[1]==true && this.AddKLineInfo) this.AddKLineInfo(aryArgs[0],true);
|
|
13011
|
+
else if (aryArgs[1]==false && this.DeleteKLineInfo) this.DeleteKLineInfo(aryArgs[0]);
|
|
13012
|
+
}
|
|
13013
|
+
break;
|
|
13014
|
+
case JSCHART_MENU_ID.CMD_DELETE_ALL_KLINE_INFO_ID:
|
|
13015
|
+
if (this.ClearKLineInfo) this.ClearKLineInfo();
|
|
13016
|
+
break;
|
|
13017
|
+
case JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID:
|
|
13018
|
+
if (param!=null) this.DragMode=param;
|
|
13019
|
+
break;
|
|
13020
|
+
case JSCHART_MENU_ID.CMD_CHANGE_BG_SPLIT_ID:
|
|
13021
|
+
if (IFrameSplitOperator.IsBool(srcParam))
|
|
13022
|
+
{
|
|
13023
|
+
if (srcParam)
|
|
13024
|
+
{
|
|
13025
|
+
this.CreateExtendChart("SessionBreaksPaint", { });
|
|
13026
|
+
this.Draw();
|
|
13027
|
+
}
|
|
13028
|
+
else
|
|
13029
|
+
{
|
|
13030
|
+
var finder=this.GetExtendChartByClassName("SessionBreaksPaint");
|
|
13031
|
+
if (finder)
|
|
13032
|
+
{
|
|
13033
|
+
this.DeleteExtendChartByID(finder.Chart.ID);
|
|
13034
|
+
this.Draw();
|
|
13035
|
+
}
|
|
13036
|
+
}
|
|
13037
|
+
}
|
|
13038
|
+
break;
|
|
13039
|
+
case JSCHART_MENU_ID.CMD_SHOW_DRAWTOOL_ID:
|
|
13040
|
+
var option={Name:'画图工具', Top:this.Frame.ChartBorder.Top };
|
|
13041
|
+
var extendChart=this.CreateExtendChart(option.Name, option); //创建扩展图形
|
|
13042
|
+
this.SetSizeChange(true);
|
|
13043
|
+
this.Draw();
|
|
13044
|
+
break;
|
|
13045
|
+
case JSCHART_MENU_ID.CMD_HIDE_DRAWTOOL_ID:
|
|
13046
|
+
var drawTools=this.GetExtendChartByClassName('DrawToolsButton');
|
|
13047
|
+
if (drawTools)
|
|
13048
|
+
{
|
|
13049
|
+
var toolsWidth=drawTools.Chart.Width;
|
|
13050
|
+
var toolsIndex=parseInt(drawTools.Index);
|
|
13051
|
+
for(var i=toolsIndex+1; i<this.ExtendChartPaint.length; ++i) //在画图工具后面创建的需要减去工具的宽度
|
|
13052
|
+
{
|
|
13053
|
+
var item=this.ExtendChartPaint[i];
|
|
13054
|
+
if (item.ClassName=='StockChip')
|
|
13055
|
+
{
|
|
13056
|
+
item.Left-=toolsWidth;
|
|
13057
|
+
}
|
|
13058
|
+
}
|
|
13059
|
+
this.DeleteExtendChart(drawTools);
|
|
13060
|
+
this.Frame.ChartBorder.Right-=toolsWidth;
|
|
13061
|
+
this.SetSizeChange(true);
|
|
13062
|
+
this.Draw();
|
|
13063
|
+
}
|
|
13064
|
+
break;
|
|
13065
|
+
case JSCHART_MENU_ID.CMD_SHOW_STOCKCHIP_ID:
|
|
13066
|
+
var option={Name:'筹码分布', ShowType:1, Width:230 };
|
|
13067
|
+
var extendChart=this.CreateExtendChart(option.Name, option); //创建扩展图形
|
|
13068
|
+
this.SetSizeChange(true);
|
|
13069
|
+
this.Draw();
|
|
13070
|
+
break;
|
|
13071
|
+
case JSCHART_MENU_ID.CMD_HIDE_STOCKCHIP_ID:
|
|
13072
|
+
var StockChip=chart.GetExtendChartByClassName('StockChip');
|
|
13073
|
+
if (StockChip)
|
|
13074
|
+
{
|
|
13075
|
+
var chipWidth=StockChip.Chart.Width;
|
|
13076
|
+
var chipIndex=parseInt(StockChip.Index);
|
|
13077
|
+
for(var i=chipIndex+1; i<this.ExtendChartPaint.length; ++i) //在筹码后面创建的需要筹码的宽度
|
|
13078
|
+
{
|
|
13079
|
+
var item=this.ExtendChartPaint[i];
|
|
13080
|
+
if (item.ClassName=='DrawToolsButton')
|
|
13081
|
+
{
|
|
13082
|
+
item.Left-=chipWidth;
|
|
13083
|
+
}
|
|
13084
|
+
}
|
|
13085
|
+
this.DeleteExtendChart(StockChip);
|
|
13086
|
+
this.Frame.ChartBorder.Right-=chipWidth;
|
|
13087
|
+
this.SetSizeChange(true);
|
|
13088
|
+
this.Draw();
|
|
13089
|
+
}
|
|
13090
|
+
break;
|
|
13091
|
+
case JSCHART_MENU_ID.CMD_ENABLE_SELECT_RECT_ID:
|
|
13092
|
+
if (IFrameSplitOperator.IsBool(srcParam))
|
|
13093
|
+
this.EnableSelectRect=srcParam;
|
|
13094
|
+
break;
|
|
13095
|
+
case JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID:
|
|
13096
|
+
if (this.ChangeDayCount && param!=null)
|
|
13097
|
+
this.ChangeDayCount(param);
|
|
13098
|
+
break;
|
|
13099
|
+
}
|
|
13100
|
+
}
|
|
12897
13101
|
}
|
|
12898
13102
|
|
|
12899
13103
|
function GetDevicePixelRatio()
|
|
@@ -12991,11 +13195,12 @@ function GetScrollPosition()
|
|
|
12991
13195
|
var scrollPos={};
|
|
12992
13196
|
var scrollTop=0;
|
|
12993
13197
|
var scrollLeft=0;
|
|
12994
|
-
if(document.documentElement && document.documentElement.scrollTop)
|
|
13198
|
+
if (document.documentElement && (document.documentElement.scrollTop || document.documentElement.scrollLeft))
|
|
12995
13199
|
{
|
|
12996
13200
|
scrollTop=document.documentElement.scrollTop;
|
|
12997
13201
|
scrollLeft=document.documentElement.scrollLeft;
|
|
12998
|
-
}
|
|
13202
|
+
}
|
|
13203
|
+
else if(document.body)
|
|
12999
13204
|
{
|
|
13000
13205
|
scrollTop=document.body.scrollTop;
|
|
13001
13206
|
scrollLeft=document.body.scrollLeft;
|
|
@@ -47959,7 +48164,8 @@ function FrameButtomToolbarPaint()
|
|
|
47959
48164
|
this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);
|
|
47960
48165
|
}
|
|
47961
48166
|
|
|
47962
|
-
var font=this.
|
|
48167
|
+
var font=this.GetTitleFont(rtBG.Height-this.ButtonConfig.Mergin.Top-this.ButtonConfig.Mergin.Bottom);
|
|
48168
|
+
var svgFont=this.GetSVGFont(rtBG.Height-this.ButtonConfig.Mergin.Top-this.ButtonConfig.Mergin.Bottom);
|
|
47963
48169
|
this.Canvas.textBaseline='middle';
|
|
47964
48170
|
this.Canvas.textAlign='center';
|
|
47965
48171
|
this.Canvas.font=font;
|
|
@@ -47967,9 +48173,23 @@ function FrameButtomToolbarPaint()
|
|
|
47967
48173
|
for(var i=0;i<this.AryButton.length;++i)
|
|
47968
48174
|
{
|
|
47969
48175
|
var item=this.AryButton[i];
|
|
47970
|
-
if (!item.Title) return;
|
|
47971
|
-
|
|
47972
|
-
var
|
|
48176
|
+
if (!item.Title && !(item.SVGButton && item.SVGButton.Symbol)) return;
|
|
48177
|
+
|
|
48178
|
+
var textWidth=0;
|
|
48179
|
+
if (item.Title)
|
|
48180
|
+
{
|
|
48181
|
+
textWidth=this.Canvas.measureText(item.Title).width+2;
|
|
48182
|
+
}
|
|
48183
|
+
|
|
48184
|
+
var svgButtonWidth=0;
|
|
48185
|
+
if (item.SVGButton && item.SVGButton.Symbol)
|
|
48186
|
+
{
|
|
48187
|
+
svgButtonWidth=this.ButtonConfig.SVG.Size;
|
|
48188
|
+
if (textWidth>0) svgButtonWidth+=this.ButtonConfig.SVG.MerginLeft;
|
|
48189
|
+
|
|
48190
|
+
}
|
|
48191
|
+
|
|
48192
|
+
var buttonWidth=textWidth+svgButtonWidth+this.ButtonConfig.Mergin.Left+this.ButtonConfig.Mergin.Right;
|
|
47973
48193
|
var rtButton={ Left:xBotton, Top:rtBG.Top, Bottom:rtBG.Bottom, Height:rtBG.Height, Width:buttonWidth };
|
|
47974
48194
|
rtButton.Right=rtButton.Left+rtButton.Width;
|
|
47975
48195
|
|
|
@@ -48006,12 +48226,50 @@ function FrameButtomToolbarPaint()
|
|
|
48006
48226
|
this.Canvas.stroke();
|
|
48007
48227
|
}
|
|
48008
48228
|
|
|
48009
|
-
|
|
48010
|
-
|
|
48011
|
-
|
|
48012
|
-
|
|
48229
|
+
if (item.Title)
|
|
48230
|
+
{
|
|
48231
|
+
this.Canvas.fillStyle=titleColor;
|
|
48232
|
+
var xText=rtButton.Left+(rtButton.Width-svgButtonWidth)/2; //居中
|
|
48233
|
+
var yText=rtButton.Top+this.ButtonConfig.Mergin.Top+(rtButton.Height-this.ButtonConfig.Mergin.Top-this.ButtonConfig.Mergin.Bottom)/2;
|
|
48234
|
+
this.Canvas.fillText(item.Title,xText,yText);
|
|
48235
|
+
}
|
|
48236
|
+
|
|
48237
|
+
|
|
48238
|
+
var rtSVG=null;
|
|
48239
|
+
if (item.SVGButton && item.SVGButton.Symbol)
|
|
48240
|
+
{
|
|
48241
|
+
this.Canvas.font=svgFont;
|
|
48242
|
+
this.Canvas.fillStyle=titleColor;
|
|
48243
|
+
var xText=rtButton.Right-this.ButtonConfig.SVG.Size/2-this.ButtonConfig.Mergin.Right;
|
|
48244
|
+
this.Canvas.fillText(item.SVGButton.Symbol,xText,yText);
|
|
48245
|
+
this.Canvas.font=font;
|
|
48246
|
+
|
|
48247
|
+
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};
|
|
48248
|
+
rtSVG.Right=rtSVG.Left+rtSVG.Width;
|
|
48249
|
+
rtSVG.Bottom=rtSVG.Top+rtSVG.Height;
|
|
48250
|
+
}
|
|
48251
|
+
|
|
48252
|
+
//{ Rect:rtButton, ID:item.ID, Data:item, RectSVG:rtSVG }
|
|
48253
|
+
if (textWidth>0 && svgButtonWidth>0)
|
|
48254
|
+
{
|
|
48255
|
+
var rtText={ Left:rtButton.Left, Top:rtButton.Top, Bottom:rtButton.Bottom };
|
|
48256
|
+
rtText.Right=rtText.Left+textWidth+this.ButtonConfig.Mergin.Left+this.ButtonConfig.SVG.MerginLeft/2;
|
|
48257
|
+
var cacheItem={ Rect:rtText, ID:item.ID, Data:item, RectCell:rtButton, ButtonType:0 };
|
|
48258
|
+
this.AryRectButton.push(cacheItem);
|
|
48259
|
+
|
|
48260
|
+
var rtSVG={Left:rtText.Right, Right:rtButton.Right, Top:rtButton.Top, Bottom:rtButton.Bottom };
|
|
48261
|
+
var cacheItem={ Rect:rtSVG, ID:item.ID, Data:item, RectCell:rtButton, ButtonType:1 };
|
|
48262
|
+
this.AryRectButton.push(cacheItem);
|
|
48263
|
+
}
|
|
48264
|
+
else
|
|
48265
|
+
{
|
|
48266
|
+
var cacheItem={ Rect:rtButton, ID:item.ID, Data:item, RectCell:rtButton }; //RectCell 全部的大小
|
|
48267
|
+
if (textWidth>0) cacheItem.ButtonType=0;
|
|
48268
|
+
else if (svgButtonWidth>0) cacheItem.ButtonType=1;
|
|
48269
|
+
this.AryRectButton.push(cacheItem);
|
|
48270
|
+
}
|
|
48271
|
+
|
|
48013
48272
|
|
|
48014
|
-
this.AryRectButton.push({ Rect:rtButton, ID:item.ID, Data:item });
|
|
48015
48273
|
|
|
48016
48274
|
xBotton+=buttonWidth+1;
|
|
48017
48275
|
}
|
|
@@ -48040,13 +48298,22 @@ function FrameButtomToolbarPaint()
|
|
|
48040
48298
|
return null;
|
|
48041
48299
|
}
|
|
48042
48300
|
|
|
48043
|
-
this.
|
|
48301
|
+
this.GetTitleFont=function(height)
|
|
48044
48302
|
{
|
|
48045
48303
|
var config=this.ButtonConfig.Font;
|
|
48046
|
-
var fontSize=height;
|
|
48304
|
+
var fontSize=height*GetDevicePixelRatio();
|
|
48047
48305
|
if (IFrameSplitOperator.IsPlusNumber(config.Size)) fontSize=config.Size;
|
|
48048
48306
|
|
|
48049
|
-
var font=`${fontSize
|
|
48307
|
+
var font=`${fontSize}px ${config.Family}`;
|
|
48308
|
+
return font;
|
|
48309
|
+
}
|
|
48310
|
+
|
|
48311
|
+
this.GetSVGFont=function(height)
|
|
48312
|
+
{
|
|
48313
|
+
var config=this.ButtonConfig.SVG;
|
|
48314
|
+
var fontSize=height*GetDevicePixelRatio();
|
|
48315
|
+
if (IFrameSplitOperator.IsPlusNumber(config.Size)) fontSize=config.Size;
|
|
48316
|
+
var font=`${fontSize}px ${config.Family}`;
|
|
48050
48317
|
return font;
|
|
48051
48318
|
}
|
|
48052
48319
|
|
|
@@ -48059,7 +48326,7 @@ function FrameButtomToolbarPaint()
|
|
|
48059
48326
|
if (x>rect.Left && x<rect.Right && y>rect.Top && y<rect.Bottom)
|
|
48060
48327
|
{
|
|
48061
48328
|
var frame=this.GetFrame();
|
|
48062
|
-
var result={ ID:item.Data.ID, Rect:rect, FrameID:this.FrameID, Frame:frame, Data:item.Data };
|
|
48329
|
+
var result={ ID:item.Data.ID, Rect:rect, FrameID:this.FrameID, Frame:frame, Data:item.Data, ButtonType:item.ButtonType, RectCell:item.RectCell, };
|
|
48063
48330
|
return result;
|
|
48064
48331
|
}
|
|
48065
48332
|
}
|
|
@@ -57400,7 +57667,7 @@ function IChartDrawPicture()
|
|
|
57400
57667
|
if (option.LineWidth>0) this.LineWidth=option.LineWidth;
|
|
57401
57668
|
if (option.AreaColor) this.AreaColor=option.AreaColor;
|
|
57402
57669
|
if (option.PointColor) this.PointColor=option.PointColor;
|
|
57403
|
-
if (option.MoveOnPointColor) this.
|
|
57670
|
+
if (option.MoveOnPointColor) this.MoveOnPointColor=option.MoveOnPointColor;
|
|
57404
57671
|
if (option.PointRadius) this.PointRadius=option.PointRadius;
|
|
57405
57672
|
if (IFrameSplitOperator.IsNumber(option.SquareSize)) this.SquareSize=option.SquareSize;
|
|
57406
57673
|
if (IFrameSplitOperator.IsBool(option.IsShowPoint)) this.IsShowPoint=option.IsShowPoint;
|
|
@@ -57599,8 +57866,8 @@ function IChartDrawPicture()
|
|
|
57599
57866
|
for(var i=0; i<this.Point.length; ++i)
|
|
57600
57867
|
{
|
|
57601
57868
|
var item=this.Point[i];
|
|
57602
|
-
var xValue=parseInt(this.Frame.GetXData(item.Y));
|
|
57603
|
-
var yValue=this.Frame.GetYData(item.X);
|
|
57869
|
+
var xValue=parseInt(this.Frame.GetXData(item.Y,false));
|
|
57870
|
+
var yValue=this.Frame.GetYData(item.X,false);
|
|
57604
57871
|
|
|
57605
57872
|
var valueItem={ XValue:xValue, YValue:yValue };
|
|
57606
57873
|
var minuteItem=data.Data[xValue];
|
|
@@ -57614,8 +57881,8 @@ function IChartDrawPicture()
|
|
|
57614
57881
|
for(var i=0; i<this.Point.length; ++i)
|
|
57615
57882
|
{
|
|
57616
57883
|
var item=this.Point[i];
|
|
57617
|
-
var xValue=parseInt(this.Frame.GetXData(item.X));
|
|
57618
|
-
var yValue=this.Frame.GetYData(item.Y);
|
|
57884
|
+
var xValue=parseInt(this.Frame.GetXData(item.X,false));
|
|
57885
|
+
var yValue=this.Frame.GetYData(item.Y,false);
|
|
57619
57886
|
|
|
57620
57887
|
if (xValue>=data.Data.length) //超过当前数据,直接读固定时间
|
|
57621
57888
|
{
|
|
@@ -57690,7 +57957,7 @@ function IChartDrawPicture()
|
|
|
57690
57957
|
}
|
|
57691
57958
|
|
|
57692
57959
|
data.FindDataIndexByDateTime(aryDateTime);
|
|
57693
|
-
for(var i
|
|
57960
|
+
for(var i=0; i<aryDateTime.length; ++i)
|
|
57694
57961
|
{
|
|
57695
57962
|
var findItem=aryDateTime[i];
|
|
57696
57963
|
var valueItem=this.Value[i];
|
|
@@ -57698,6 +57965,17 @@ function IChartDrawPicture()
|
|
|
57698
57965
|
}
|
|
57699
57966
|
}
|
|
57700
57967
|
|
|
57968
|
+
//重置X索引数据
|
|
57969
|
+
this.ResetXValue=function()
|
|
57970
|
+
{
|
|
57971
|
+
for(var i=0; i<this.Value.length; ++i)
|
|
57972
|
+
{
|
|
57973
|
+
var item=this.Value[i];
|
|
57974
|
+
item.XValue=null;
|
|
57975
|
+
}
|
|
57976
|
+
return true;
|
|
57977
|
+
}
|
|
57978
|
+
|
|
57701
57979
|
//xStep,yStep 移动的偏移量
|
|
57702
57980
|
this.Move=function(xStep,yStep)
|
|
57703
57981
|
{
|
|
@@ -57823,6 +58101,8 @@ function IChartDrawPicture()
|
|
|
57823
58101
|
for(var i=0; i<this.Value.length; ++i)
|
|
57824
58102
|
{
|
|
57825
58103
|
var item=this.Value[i];
|
|
58104
|
+
if (!IFrameSplitOperator.IsNumber(item.XValue)) return null; //无效索引 不显示
|
|
58105
|
+
|
|
57826
58106
|
var dataIndex=item.XValue-data.DataOffset;
|
|
57827
58107
|
if (dataIndex<0 || dataIndex>=showCount) ++invaildX;
|
|
57828
58108
|
|
|
@@ -58893,7 +59173,7 @@ function ChartDrawPictureLine()
|
|
|
58893
59173
|
if (this.IsFrameMinSize()) return;
|
|
58894
59174
|
if (!this.IsShow) return;
|
|
58895
59175
|
|
|
58896
|
-
var drawPoint=this.CalculateDrawPoint( {IsCheckX:true, IsCheckY:
|
|
59176
|
+
var drawPoint=this.CalculateDrawPoint( {IsCheckX:true, IsCheckY:false} );
|
|
58897
59177
|
if (!drawPoint) return;
|
|
58898
59178
|
if (drawPoint.length!=2) return;
|
|
58899
59179
|
|
|
@@ -68726,12 +69006,14 @@ function JSChartResource()
|
|
|
68726
69006
|
BorderColor:"rgb(204,204,204)",
|
|
68727
69007
|
Button:
|
|
68728
69008
|
{
|
|
68729
|
-
Font:{ Family:"微软雅黑" },
|
|
69009
|
+
Font:{ Family:"微软雅黑", Size:12*GetDevicePixelRatio() },
|
|
68730
69010
|
TitleColor: { Selected:"rgb(255,255,255)", Default:"rgb(125,125,125)", MoveOn:"rgb(234,85,4)" },
|
|
68731
69011
|
BGColor: { Selected:"rgb(234,85,4)", Default:"rgb(235,235,235)", MoveOn:"rgb(242,242,242)" },
|
|
68732
69012
|
BorderColor:"rgb(204,204,204)",
|
|
68733
69013
|
|
|
68734
|
-
Mergin: { Left:5*GetDevicePixelRatio(), Right:5*GetDevicePixelRatio(), Top:4*GetDevicePixelRatio(), Bottom:2*GetDevicePixelRatio() }
|
|
69014
|
+
Mergin: { Left:5*GetDevicePixelRatio(), Right:5*GetDevicePixelRatio(), Top:4*GetDevicePixelRatio(), Bottom:2*GetDevicePixelRatio() },
|
|
69015
|
+
|
|
69016
|
+
SVG:{ Family:"iconfont", Size:12*GetDevicePixelRatio(), MerginLeft:4*GetDevicePixelRatio() }
|
|
68735
69017
|
}
|
|
68736
69018
|
}
|
|
68737
69019
|
|
|
@@ -69750,6 +70032,15 @@ function JSChartResource()
|
|
|
69750
70032
|
if (IFrameSplitOperator.IsNumber(item.Top)) destItem.Top=item.Top;
|
|
69751
70033
|
if (IFrameSplitOperator.IsNumber(item.Bottom)) destItem.Bottom=item.Bottom;
|
|
69752
70034
|
}
|
|
70035
|
+
|
|
70036
|
+
if (button.SVG)
|
|
70037
|
+
{
|
|
70038
|
+
var item=button.SVG;
|
|
70039
|
+
var destItem=this.FrameButtomToolbar.Button.SVG;
|
|
70040
|
+
if (IFrameSplitOperator.IsNumber(item.Size)) destItem.Size=item.Size;
|
|
70041
|
+
if (IFrameSplitOperator.IsNumber(item.MerginLeft)) destItem.MerginLeft=item.MerginLeft;
|
|
70042
|
+
if (item.Family) destItem.Family=item.Family;
|
|
70043
|
+
}
|
|
69753
70044
|
}
|
|
69754
70045
|
|
|
69755
70046
|
}
|
|
@@ -76061,12 +76352,16 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
76061
76352
|
}
|
|
76062
76353
|
}
|
|
76063
76354
|
|
|
76064
|
-
|
|
76065
76355
|
//注册鼠标右键事件
|
|
76066
76356
|
this.OnRightMenu=function(x,y,e)
|
|
76067
76357
|
{
|
|
76068
76358
|
var pixelTatio = GetDevicePixelRatio(); //x,y 需要乘以放大倍速
|
|
76069
|
-
if (this.
|
|
76359
|
+
if (this.EnablePopMenuV2)
|
|
76360
|
+
{
|
|
76361
|
+
var frameId=this.Frame.PtInFrame(x*pixelTatio,y*pixelTatio);
|
|
76362
|
+
this.PopuRightMenuV2({X:e.offsetX, Y:e.offsetY, FrameID:frameId}, e);
|
|
76363
|
+
}
|
|
76364
|
+
else if (this.RightMenu)
|
|
76070
76365
|
{
|
|
76071
76366
|
var frameId=this.Frame.PtInFrame(x*pixelTatio,y*pixelTatio);
|
|
76072
76367
|
e.data={ Chart:this, FrameID:frameId };
|
|
@@ -76082,11 +76377,286 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
76082
76377
|
}
|
|
76083
76378
|
}
|
|
76084
76379
|
|
|
76380
|
+
//右键菜单数据
|
|
76381
|
+
this.GetRightMenuData=function(frameID)
|
|
76382
|
+
{
|
|
76383
|
+
var windowCount=this.Frame.SubFrame.length; //窗口个数
|
|
76384
|
+
var klineChart=this.ChartPaint[0];
|
|
76385
|
+
var priceGap=klineChart.PriceGap; //缺口配置信息
|
|
76386
|
+
var coordinateType=null, yCoordinateType=null; //坐标类型
|
|
76387
|
+
var mainFrame=null;
|
|
76388
|
+
if (this.Frame.SubFrame[0] && this.Frame.SubFrame[0].Frame) mainFrame=this.Frame.SubFrame[0].Frame;
|
|
76389
|
+
if (mainFrame)
|
|
76390
|
+
{
|
|
76391
|
+
coordinateType=mainFrame.CoordinateType;
|
|
76392
|
+
if (mainFrame.YSplitOperator) yCoordinateType=mainFrame.YSplitOperator.CoordinateType;
|
|
76393
|
+
}
|
|
76394
|
+
|
|
76395
|
+
var aryKLineInfo=[]; //信息地雷
|
|
76396
|
+
for(var i=0;i<this.ChartInfo.length;++i)
|
|
76397
|
+
{
|
|
76398
|
+
var item=this.ChartInfo[i];
|
|
76399
|
+
if (item && item.ClassName) aryKLineInfo.push(item.ClassName);
|
|
76400
|
+
}
|
|
76401
|
+
|
|
76402
|
+
var aryOverlaySymbol=[]; //叠加的股票列表
|
|
76403
|
+
for(var i=0; i<this.OverlayChartPaint.length; ++i)
|
|
76404
|
+
{
|
|
76405
|
+
var item=this.OverlayChartPaint[i];
|
|
76406
|
+
if (item && item.Symbol) aryOverlaySymbol.push(item.Symbol)
|
|
76407
|
+
}
|
|
76408
|
+
|
|
76409
|
+
var bBGSpit=false, bShowDrawTool=false, bShowStockChip=false;
|
|
76410
|
+
if (this.GetExtendChartByClassName("SessionBreaksPaint")) bBGSpit=true;
|
|
76411
|
+
if (this.GetExtendChartByClassName('DrawToolsButton')) bShowDrawTool=true; //画图工具
|
|
76412
|
+
if (this.GetExtendChartByClassName('StockChip')) bShowStockChip=true; //筹码
|
|
76413
|
+
|
|
76414
|
+
var aryMenu=
|
|
76415
|
+
[
|
|
76416
|
+
{
|
|
76417
|
+
Name:"分析周期",
|
|
76418
|
+
SubMenu:
|
|
76419
|
+
[
|
|
76420
|
+
{ Name:"日线", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID, Args:[0] }, Checked:this.Period==0 },
|
|
76421
|
+
{ Name:"周线", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID, Args:[1] }, Checked:this.Period==1 },
|
|
76422
|
+
{ Name:"双周线", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID, Args:[21]}, Checked:this.Period==21 },
|
|
76423
|
+
{ Name:"月线", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID, Args:[2]}, Checked:this.Period==2 },
|
|
76424
|
+
{ Name:"季线", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID, Args:[9]}, Checked:this.Period==9 },
|
|
76425
|
+
{ Name:"半年", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID, Args:[22]}, Checked:this.Period==22 },
|
|
76426
|
+
{ Name:"年线", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID, Args:[3]}, Checked:this.Period==3 },
|
|
76427
|
+
{ Name:"1分", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID, Args:[4]}, Checked:this.Period==4 },
|
|
76428
|
+
{ Name:"5分", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID, Args:[5]}, Checked:this.Period==5 },
|
|
76429
|
+
{ Name:"15分", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID, Args:[6]}, Checked:this.Period==6 },
|
|
76430
|
+
{ Name:"30分", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID, Args:[7]}, Checked:this.Period==7 },
|
|
76431
|
+
{ Name:"60分", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID, Args:[8]}, Checked:this.Period==8 },
|
|
76432
|
+
{ Name:"2小时", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID, Args:[11]}, Checked:this.Period==11 },
|
|
76433
|
+
{ Name:"4小时", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID, Args:[12]}, Checked:this.Period==12 },
|
|
76434
|
+
{ Name:"分笔", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID, Args:[10]}, Checked:this.Period==10 },
|
|
76435
|
+
{ Name:"自定义周期:3分钟", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID, Args:[20003]}, Checked:this.Period==20003 },
|
|
76436
|
+
{ Name:"自定义周期:35分钟", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID, Args:[20035]}, Checked:this.Period==20035 },
|
|
76437
|
+
{ Name:"自定义周期:8日", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID, Args:[40008]}, Checked:this.Period==40008 },
|
|
76438
|
+
]
|
|
76439
|
+
},
|
|
76440
|
+
{
|
|
76441
|
+
Name:"指标切换",
|
|
76442
|
+
SubMenu:
|
|
76443
|
+
[
|
|
76444
|
+
{ Name:"均线", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID, Args:[frameID, "均线"]}},
|
|
76445
|
+
{ Name:"BOLL", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID, Args:[frameID, "BOLL"]}},
|
|
76446
|
+
{ Name:"MACD", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID, Args:[frameID, "MACD"]}},
|
|
76447
|
+
{ Name:"KDJ", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID, Args:[frameID, "KDJ"]}},
|
|
76448
|
+
{ Name:"VOL", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID, Args:[frameID, "VOL"]}},
|
|
76449
|
+
{ Name:"RSI", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID, Args:[frameID, "RSI"]}},
|
|
76450
|
+
{ Name:"BRAR", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID, Args:[frameID, "BRAR"]}},
|
|
76451
|
+
{ Name:"WR", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID, Args:[frameID, "WR"]}},
|
|
76452
|
+
]
|
|
76453
|
+
},
|
|
76454
|
+
{
|
|
76455
|
+
Name:"五彩K线",
|
|
76456
|
+
SubMenu:
|
|
76457
|
+
[
|
|
76458
|
+
{ Name:"十字星", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_COLOR_INDEX_ID, Args:["五彩K线-十字星"]}},
|
|
76459
|
+
{ Name:"早晨之星", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_COLOR_INDEX_ID, Args:["五彩K线-早晨之星"]}},
|
|
76460
|
+
{ Name:"垂死十字", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_COLOR_INDEX_ID, Args:["五彩K线-垂死十字"]}},
|
|
76461
|
+
{ Name:"三只乌鸦", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_COLOR_INDEX_ID, Args:["五彩K线-三只乌鸦"]}},
|
|
76462
|
+
{ Name:"光脚阴线", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_COLOR_INDEX_ID, Args:["五彩K线-光脚阴线"]}},
|
|
76463
|
+
{ Name:"黄昏之星", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_COLOR_INDEX_ID, Args:["五彩K线-黄昏之星"]}},
|
|
76464
|
+
]
|
|
76465
|
+
|
|
76466
|
+
},
|
|
76467
|
+
{
|
|
76468
|
+
Name:"专家系统",
|
|
76469
|
+
SubMenu:
|
|
76470
|
+
[
|
|
76471
|
+
{ Name:"BIAS", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_TRADE_INDEX_ID, Args:["交易系统-BIAS"]}},
|
|
76472
|
+
{ Name:"CCI", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_TRADE_INDEX_ID, Args:["交易系统-CCI"]}},
|
|
76473
|
+
{ Name:"DMI", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_TRADE_INDEX_ID, Args:["交易系统-DMI"]}},
|
|
76474
|
+
{ Name:"KD", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_TRADE_INDEX_ID, Args:["交易系统-KD"]}},
|
|
76475
|
+
{ Name:"BOLL", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_TRADE_INDEX_ID, Args:["交易系统-BOLL"]}},
|
|
76476
|
+
{ Name:"KDJ", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_TRADE_INDEX_ID, Args:["交易系统-KDJ"]}},
|
|
76477
|
+
]
|
|
76478
|
+
},
|
|
76479
|
+
{
|
|
76480
|
+
Name:"信息地雷",
|
|
76481
|
+
SubMenu:
|
|
76482
|
+
[
|
|
76483
|
+
{ Name:"公告", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID, Args:["公告", !aryKLineInfo.includes("AnnouncementInfo")]}, Checked:aryKLineInfo.includes("AnnouncementInfo") },
|
|
76484
|
+
{ Name:"业绩预告", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID, Args:["业绩预告", !aryKLineInfo.includes("PforecastInfo")]}, Checked:aryKLineInfo.includes("PforecastInfo") },
|
|
76485
|
+
{ Name:"调研", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID, Args:["调研", !aryKLineInfo.includes("ResearchInfo") ]}, Checked:aryKLineInfo.includes("ResearchInfo") },
|
|
76486
|
+
{ Name:"大宗交易", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID, Args:["大宗交易", !aryKLineInfo.includes("BlockTrading")]}, Checked:aryKLineInfo.includes("BlockTrading") },
|
|
76487
|
+
{ Name:"龙虎榜", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID, Args:["龙虎榜", !aryKLineInfo.includes("TradeDetail")]}, Checked:aryKLineInfo.includes("TradeDetail") },
|
|
76488
|
+
{ Name:"互动易", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID, Args:["互动易", !aryKLineInfo.includes("InvestorInfo")]}, Checked:aryKLineInfo.includes("InvestorInfo") },
|
|
76489
|
+
]
|
|
76490
|
+
},
|
|
76491
|
+
{
|
|
76492
|
+
Name:"缺口提示",
|
|
76493
|
+
SubMenu:
|
|
76494
|
+
[
|
|
76495
|
+
{ Name:"显示1个缺口", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_PRICE_GAP_ID, Args:[true, 1]}, Checked:(priceGap.Enable==true && priceGap.Count==1) },
|
|
76496
|
+
{ Name:"显示2个缺口", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_PRICE_GAP_ID, Args:[true, 2]}, Checked:(priceGap.Enable==true && priceGap.Count==2) },
|
|
76497
|
+
{ Name:"显示3个缺口", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_PRICE_GAP_ID, Args:[true, 3]}, Checked:(priceGap.Enable==true && priceGap.Count==3) },
|
|
76498
|
+
{ Name:"隐藏缺口", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_PRICE_GAP_ID, Args:[false]}, Checked:priceGap.Enable==false },
|
|
76499
|
+
]
|
|
76500
|
+
},
|
|
76501
|
+
{
|
|
76502
|
+
Name:"叠加品种",
|
|
76503
|
+
SubMenu:
|
|
76504
|
+
[
|
|
76505
|
+
{ Name:"上证指数", Data:{ ID: JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID, Args:["000001.sh", !aryOverlaySymbol.includes("000001.sh")]}, Checked:aryOverlaySymbol.includes("000001.sh") },
|
|
76506
|
+
{ Name:"深证成指", Data:{ ID: JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID, Args:["399001.sz", !aryOverlaySymbol.includes("399001.sz")]}, Checked:aryOverlaySymbol.includes("399001.sz") },
|
|
76507
|
+
{ Name:"中小板指", Data:{ ID: JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID, Args:["399005.sz", !aryOverlaySymbol.includes("399005.sz")]}, Checked:aryOverlaySymbol.includes("399005.sz") },
|
|
76508
|
+
{ Name:"创业板指", Data:{ ID: JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID, Args:["399006.sz", !aryOverlaySymbol.includes("399006.sz")]}, Checked:aryOverlaySymbol.includes("399006.sz") },
|
|
76509
|
+
{ Name:"沪深300", Data:{ ID: JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID, Args:["000300.sh", !aryOverlaySymbol.includes("000300.sh")]}, Checked:aryOverlaySymbol.includes("000300.sh")},
|
|
76510
|
+
]
|
|
76511
|
+
},
|
|
76512
|
+
{
|
|
76513
|
+
Name:"主图线型",
|
|
76514
|
+
SubMenu:
|
|
76515
|
+
[
|
|
76516
|
+
{ Name:"K线(空心阳线)", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID, Args:[3]} },
|
|
76517
|
+
{ Name:"K线(实心阳线)", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID, Args:[0]} },
|
|
76518
|
+
{ Name:"美国线", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID, Args:[2, true, { IsThinAKBar:false }]} },
|
|
76519
|
+
{ Name:"美国线(细)", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID, Args:[2, true, { IsThinAKBar:true }]} },
|
|
76520
|
+
{ Name:"收盘线", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID, Args:[1]} },
|
|
76521
|
+
{ Name:"收盘面积", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID, Args:[4]} },
|
|
76522
|
+
{ Name:"K线(空心阳线阴线)", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID, Args:[6]} },
|
|
76523
|
+
{ Name:"Heikin Ashi", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID, Args:[11]} },
|
|
76524
|
+
{ Name:"Line Break", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID, Args:[12]} },
|
|
76525
|
+
{ Name:"High-low", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID, Args:[13]} },
|
|
76526
|
+
{ Name:"HLC Area", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID, Args:[15]} },
|
|
76527
|
+
]
|
|
76528
|
+
},
|
|
76529
|
+
{
|
|
76530
|
+
Name:"坐标类型",
|
|
76531
|
+
SubMenu:
|
|
76532
|
+
[
|
|
76533
|
+
{ Name:"反转坐标", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID, Args:[{ IsReverse:coordinateType==0 }]}, Checked:coordinateType==1 },
|
|
76534
|
+
{ Name:JSPopMenu.SEPARATOR_LINE_NAME },
|
|
76535
|
+
|
|
76536
|
+
{ Name:"普通坐标", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID, Args:[{ Type:0 }]}, Checked:yCoordinateType==0 },
|
|
76537
|
+
{ Name:"百分比坐标", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID, Args:[{ Type:1 }]}, Checked:yCoordinateType==1 },
|
|
76538
|
+
{ Name:"对数坐标", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID, Args:[{ Type:2 }]}, Checked:yCoordinateType==2 },
|
|
76539
|
+
{ Name:"等比坐标", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID, Args:[{ Type:3 }]}, Checked:yCoordinateType==3 },
|
|
76540
|
+
{ Name:"等分坐标", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID, Args:[{ Type:4 }]}, Checked:yCoordinateType==4 },
|
|
76541
|
+
{ Name:"黄金分割", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID, Args:[{ Type:5 }]}, Checked:yCoordinateType==5},
|
|
76542
|
+
|
|
76543
|
+
]
|
|
76544
|
+
},
|
|
76545
|
+
{
|
|
76546
|
+
Name:"指标窗口个数",
|
|
76547
|
+
SubMenu:
|
|
76548
|
+
[
|
|
76549
|
+
{ Name:"1个窗口", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID, Args:[2]}, Checked:2==windowCount },
|
|
76550
|
+
{ Name:"2个窗口", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID, Args:[3]}, Checked:3==windowCount },
|
|
76551
|
+
{ Name:"3个窗口", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID, Args:[4]}, Checked:4==windowCount },
|
|
76552
|
+
{ Name:"4个窗口", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID, Args:[5]}, Checked:5==windowCount },
|
|
76553
|
+
{ Name:"5个窗口", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID, Args:[6]}, Checked:6==windowCount },
|
|
76554
|
+
]
|
|
76555
|
+
},
|
|
76556
|
+
{
|
|
76557
|
+
Name:"其他设置",
|
|
76558
|
+
SubMenu:
|
|
76559
|
+
[
|
|
76560
|
+
|
|
76561
|
+
{ Name:"禁止拖拽", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID, Args:[0]}, Checked:0==this.DragMode },
|
|
76562
|
+
{ Name:"启动拖拽", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID, Args:[1]}, Checked:1==this.DragMode },
|
|
76563
|
+
{ Name:"区间选择", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID, Args:[2]}, Checked:2==this.DragMode },
|
|
76564
|
+
{ Name:JSPopMenu.SEPARATOR_LINE_NAME },
|
|
76565
|
+
|
|
76566
|
+
{ Name:"背景分割", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_BG_SPLIT_ID, Args:[!bBGSpit]}, Checked:bBGSpit},
|
|
76567
|
+
|
|
76568
|
+
{ Name:"画图工具", Data:{ ID:bShowDrawTool?JSCHART_MENU_ID.CMD_HIDE_DRAWTOOL_ID:JSCHART_MENU_ID.CMD_SHOW_DRAWTOOL_ID, Args:[]}, Checked:bShowDrawTool},
|
|
76569
|
+
|
|
76570
|
+
{ Name:"移动筹码图", Data:{ ID:bShowStockChip?JSCHART_MENU_ID.CMD_HIDE_STOCKCHIP_ID:JSCHART_MENU_ID.CMD_SHOW_STOCKCHIP_ID, Args:[]}, Checked:bShowStockChip},
|
|
76571
|
+
]
|
|
76572
|
+
}
|
|
76573
|
+
];
|
|
76574
|
+
|
|
76575
|
+
//复权
|
|
76576
|
+
if(!MARKET_SUFFIX_NAME.IsSHSZIndex(this.Symbol) && !MARKET_SUFFIX_NAME.IsBIT(this.Symbol))
|
|
76577
|
+
{
|
|
76578
|
+
var rightMenu=
|
|
76579
|
+
{
|
|
76580
|
+
Name:"复权处理",
|
|
76581
|
+
SubMenu:
|
|
76582
|
+
[
|
|
76583
|
+
{ Name:"不复权", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_RIGHT_ID, Args:[0]}, Checked:0==this.Right },
|
|
76584
|
+
{ Name:"前复权", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_RIGHT_ID, Args:[1]}, Checked:1==this.Right },
|
|
76585
|
+
{ Name:"后复权", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_RIGHT_ID, Args:[2]}, Checked:2==this.Right }
|
|
76586
|
+
]
|
|
76587
|
+
};
|
|
76588
|
+
|
|
76589
|
+
aryMenu.splice(1,0,rightMenu);
|
|
76590
|
+
}
|
|
76591
|
+
|
|
76592
|
+
//删除菜单
|
|
76593
|
+
for(var i=0;i<aryMenu.length;++i)
|
|
76594
|
+
{
|
|
76595
|
+
var item=aryMenu[i];
|
|
76596
|
+
if (item.Name=="五彩K线")
|
|
76597
|
+
{
|
|
76598
|
+
if (this.ColorIndex)
|
|
76599
|
+
{
|
|
76600
|
+
item.SubMenu.push({ Name:JSPopMenu.SEPARATOR_LINE_NAME });
|
|
76601
|
+
item.SubMenu.push({ Name:"删除五彩K线", Data:{ ID: JSCHART_MENU_ID.CMD_DELETE_COLOR_INDEX_ID} });
|
|
76602
|
+
}
|
|
76603
|
+
}
|
|
76604
|
+
else if (item.Name=="专家系统")
|
|
76605
|
+
{
|
|
76606
|
+
if (this.TradeIndex)
|
|
76607
|
+
{
|
|
76608
|
+
item.SubMenu.push({ Name:JSPopMenu.SEPARATOR_LINE_NAME });
|
|
76609
|
+
item.SubMenu.push({ Name:"删除专家系统", Data:{ ID: JSCHART_MENU_ID.CMD_DELETE_TRADE_INDEX_ID} });
|
|
76610
|
+
}
|
|
76611
|
+
}
|
|
76612
|
+
else if (item.Name=="叠加品种")
|
|
76613
|
+
{
|
|
76614
|
+
for(var j=0;j<item.SubMenu.length;++j)
|
|
76615
|
+
{
|
|
76616
|
+
if (item.SubMenu[j].Checked)
|
|
76617
|
+
{
|
|
76618
|
+
item.SubMenu.push({ Name:JSPopMenu.SEPARATOR_LINE_NAME });
|
|
76619
|
+
item.SubMenu.push({ Name:"取消叠加", Data:{ ID: JSCHART_MENU_ID.CMD_DELETE_ALL_OVERLAY_SYMBOL_ID} });
|
|
76620
|
+
break;
|
|
76621
|
+
}
|
|
76622
|
+
}
|
|
76623
|
+
}
|
|
76624
|
+
else if (item.Name=="信息地雷")
|
|
76625
|
+
{
|
|
76626
|
+
for(var j=0;j<item.SubMenu.length;++j)
|
|
76627
|
+
{
|
|
76628
|
+
if (item.SubMenu[j].Checked)
|
|
76629
|
+
{
|
|
76630
|
+
item.SubMenu.push({ Name:JSPopMenu.SEPARATOR_LINE_NAME });
|
|
76631
|
+
item.SubMenu.push({ Name:"删除所有", Data:{ ID: JSCHART_MENU_ID.CMD_DELETE_ALL_KLINE_INFO_ID} });
|
|
76632
|
+
break;
|
|
76633
|
+
}
|
|
76634
|
+
}
|
|
76635
|
+
}
|
|
76636
|
+
}
|
|
76637
|
+
|
|
76638
|
+
return aryMenu;
|
|
76639
|
+
}
|
|
76640
|
+
|
|
76641
|
+
this.PopuRightMenuV2=function(data,e)
|
|
76642
|
+
{
|
|
76643
|
+
if (!this.JSPopMenu) return;
|
|
76644
|
+
var x=data.X, y=data.Y;
|
|
76645
|
+
var frameID=data.FrameID;
|
|
76646
|
+
var menuData={ Menu:this.GetRightMenuData(frameID), Position:JSPopMenu.POSITION_ID.RIGHT_MENU_ID };
|
|
76647
|
+
menuData.ClickCallback=(data)=>{ this.OnClickRightMenu(data); }
|
|
76648
|
+
|
|
76649
|
+
this.PopuMenuByRClick(menuData, x, y);
|
|
76650
|
+
}
|
|
76651
|
+
|
|
76085
76652
|
//重新加载画图工具(切换股票|周期)
|
|
76086
76653
|
this.ReloadChartDrawPicture=function()
|
|
76087
76654
|
{
|
|
76088
76655
|
this.ChartDrawPicture=[];
|
|
76089
|
-
this.
|
|
76656
|
+
if (this.SelectChartDrawPicture) this.SelectChartDrawPicture.IsSelected=false;
|
|
76657
|
+
this.SelectChartDrawPicture=null;
|
|
76658
|
+
this.CurrentChartDrawPicture=null;
|
|
76659
|
+
|
|
76090
76660
|
if (this.ChartDrawStorage)
|
|
76091
76661
|
{
|
|
76092
76662
|
this.ChartDrawStorageCache=this.ChartDrawStorage.GetDrawData( {Symbol:this.Symbol, Period:this.Period} );
|
|
@@ -77477,7 +78047,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
77477
78047
|
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_EXTENDCHART_BUTTON);
|
|
77478
78048
|
if (event && event.Callback)
|
|
77479
78049
|
{
|
|
77480
|
-
var data={ Info:button, PreventDefault:false }; //PreventDefault 是否阻止内置的点击处理
|
|
78050
|
+
var data={ Info:button, PreventDefault:false, e:e }; //PreventDefault 是否阻止内置的点击处理
|
|
77481
78051
|
event.Callback(event,data,this);
|
|
77482
78052
|
if (data.PreventDefault) return;
|
|
77483
78053
|
}
|
|
@@ -79444,7 +80014,13 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
79444
80014
|
//注册鼠标右键事件
|
|
79445
80015
|
this.OnRightMenu=function(x,y,e)
|
|
79446
80016
|
{
|
|
79447
|
-
|
|
80017
|
+
var pixelTatio = GetDevicePixelRatio(); //x,y 需要乘以放大倍速
|
|
80018
|
+
if (this.EnablePopMenuV2)
|
|
80019
|
+
{
|
|
80020
|
+
var frameId=this.Frame.PtInFrame(x*pixelTatio,y*pixelTatio);
|
|
80021
|
+
this.PopuRightMenuV2({X:e.offsetX, Y:e.offsetY, FrameID:frameId}, e);
|
|
80022
|
+
}
|
|
80023
|
+
else if (this.RightMenu)
|
|
79448
80024
|
{
|
|
79449
80025
|
var frameId=this.Frame.PtInFrame(x,y);
|
|
79450
80026
|
e.data={ Chart:this, FrameID:frameId };
|
|
@@ -79460,6 +80036,107 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
79460
80036
|
}
|
|
79461
80037
|
}
|
|
79462
80038
|
|
|
80039
|
+
//右键菜单数据
|
|
80040
|
+
this.GetRightMenuData=function(frameID)
|
|
80041
|
+
{
|
|
80042
|
+
var windowCount=this.Frame.SubFrame.length; //窗口个数
|
|
80043
|
+
|
|
80044
|
+
var aryOverlaySymbol=[]; //叠加的股票列表
|
|
80045
|
+
for(var i=0; i<this.OverlayChartPaint.length; ++i)
|
|
80046
|
+
{
|
|
80047
|
+
var item=this.OverlayChartPaint[i];
|
|
80048
|
+
if (item && item.Symbol) aryOverlaySymbol.push(item.Symbol)
|
|
80049
|
+
}
|
|
80050
|
+
|
|
80051
|
+
var aryMenu=
|
|
80052
|
+
[
|
|
80053
|
+
{
|
|
80054
|
+
Name:"叠加品种",
|
|
80055
|
+
SubMenu:
|
|
80056
|
+
[
|
|
80057
|
+
{ Name:"上证指数", Data:{ ID: JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID, Args:["000001.sh", !aryOverlaySymbol.includes("000001.sh")]}, Checked:aryOverlaySymbol.includes("000001.sh") },
|
|
80058
|
+
{ Name:"深证成指", Data:{ ID: JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID, Args:["399001.sz", !aryOverlaySymbol.includes("399001.sz")]}, Checked:aryOverlaySymbol.includes("399001.sz") },
|
|
80059
|
+
{ Name:"中小板指", Data:{ ID: JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID, Args:["399005.sz", !aryOverlaySymbol.includes("399005.sz")]}, Checked:aryOverlaySymbol.includes("399005.sz") },
|
|
80060
|
+
{ Name:"创业板指", Data:{ ID: JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID, Args:["399006.sz", !aryOverlaySymbol.includes("399006.sz")]}, Checked:aryOverlaySymbol.includes("399006.sz") },
|
|
80061
|
+
{ Name:"沪深300", Data:{ ID: JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID, Args:["000300.sh", !aryOverlaySymbol.includes("000300.sh")]}, Checked:aryOverlaySymbol.includes("000300.sh")},
|
|
80062
|
+
]
|
|
80063
|
+
},
|
|
80064
|
+
{
|
|
80065
|
+
Name:"多日分时图",
|
|
80066
|
+
SubMenu:
|
|
80067
|
+
[
|
|
80068
|
+
{ Name:"当日分时图", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID, Args:[1]}, Checked:this.DayCount==1 },
|
|
80069
|
+
{ Name:"最近2日", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID, Args:[2]}, Checked:this.DayCount==2 },
|
|
80070
|
+
{ Name:"最近3日", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID, Args:[3]}, Checked:this.DayCount==3 },
|
|
80071
|
+
{ Name:"最近4日", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID, Args:[4]}, Checked:this.DayCount==4 },
|
|
80072
|
+
{ Name:"最近5日", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID, Args:[5]}, Checked:this.DayCount==5 },
|
|
80073
|
+
]
|
|
80074
|
+
},
|
|
80075
|
+
{
|
|
80076
|
+
Name:"指标窗口个数",
|
|
80077
|
+
SubMenu:
|
|
80078
|
+
[
|
|
80079
|
+
{ Name:"1个窗口", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID, Args:[2]}, Checked:3==windowCount },
|
|
80080
|
+
{ Name:"2个窗口", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID, Args:[3]}, Checked:4==windowCount },
|
|
80081
|
+
{ Name:"3个窗口", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID, Args:[4]}, Checked:5==windowCount },
|
|
80082
|
+
{ Name:"4个窗口", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID, Args:[5]}, Checked:6==windowCount },
|
|
80083
|
+
{ Name:"5个窗口", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID, Args:[6]}, Checked:7==windowCount },
|
|
80084
|
+
]
|
|
80085
|
+
},
|
|
80086
|
+
{
|
|
80087
|
+
Name:"指标切换",
|
|
80088
|
+
SubMenu:
|
|
80089
|
+
[
|
|
80090
|
+
{ Name:"MACD", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID, Args:[frameID, "MACD"]}},
|
|
80091
|
+
{ Name:"DMI", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID, Args:[frameID, "DMI"]}},
|
|
80092
|
+
{ Name:"DMA", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID, Args:[frameID, "DMA"]}},
|
|
80093
|
+
{ Name:"BRAR", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID, Args:[frameID, "BRAR"]}},
|
|
80094
|
+
{ Name:"KDJ", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID, Args:[frameID, "KDJ"]}},
|
|
80095
|
+
{ Name:"RSI", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID, Args:[frameID, "RSI"]}},
|
|
80096
|
+
{ Name:"WR", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID, Args:[frameID, "WR"]}},
|
|
80097
|
+
{ Name:"CCI", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID, Args:[frameID, "CCI"]}},
|
|
80098
|
+
{ Name:"TRIX", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID, Args:[frameID, "TRIX"]}},
|
|
80099
|
+
]
|
|
80100
|
+
},
|
|
80101
|
+
{
|
|
80102
|
+
Name:"区间选择",Data:{ ID: JSCHART_MENU_ID.CMD_ENABLE_SELECT_RECT_ID, Args:[!this.EnableSelectRect]}, Checked:this.EnableSelectRect
|
|
80103
|
+
}
|
|
80104
|
+
|
|
80105
|
+
];
|
|
80106
|
+
|
|
80107
|
+
|
|
80108
|
+
//删除菜单
|
|
80109
|
+
for(var i=0;i<aryMenu.length;++i)
|
|
80110
|
+
{
|
|
80111
|
+
var item=aryMenu[i];
|
|
80112
|
+
if (item.Name=="叠加品种")
|
|
80113
|
+
{
|
|
80114
|
+
for(var j=0;j<item.SubMenu.length;++j)
|
|
80115
|
+
{
|
|
80116
|
+
if (item.SubMenu[j].Checked)
|
|
80117
|
+
{
|
|
80118
|
+
item.SubMenu.push({ Name:JSPopMenu.SEPARATOR_LINE_NAME });
|
|
80119
|
+
item.SubMenu.push({ Name:"取消叠加", Data:{ ID: JSCHART_MENU_ID.CMD_DELETE_ALL_OVERLAY_SYMBOL_ID} });
|
|
80120
|
+
break;
|
|
80121
|
+
}
|
|
80122
|
+
}
|
|
80123
|
+
}
|
|
80124
|
+
}
|
|
80125
|
+
|
|
80126
|
+
return aryMenu;
|
|
80127
|
+
}
|
|
80128
|
+
|
|
80129
|
+
this.PopuRightMenuV2=function(data,e)
|
|
80130
|
+
{
|
|
80131
|
+
if (!this.JSPopMenu) return;
|
|
80132
|
+
var x=data.X, y=data.Y;
|
|
80133
|
+
var frameID=data.FrameID;
|
|
80134
|
+
var menuData={ Menu:this.GetRightMenuData(frameID), Position:JSPopMenu.POSITION_ID.RIGHT_MENU_ID };
|
|
80135
|
+
menuData.ClickCallback=(data)=>{ this.OnClickRightMenu(data); }
|
|
80136
|
+
|
|
80137
|
+
this.PopuMenuByRClick(menuData, x, y);
|
|
80138
|
+
}
|
|
80139
|
+
|
|
79463
80140
|
this.OnWheel=function(e)
|
|
79464
80141
|
{
|
|
79465
80142
|
JSConsole.Chart.Log('[MinuteChartContainer::OnWheel]',e);
|
|
@@ -80564,15 +81241,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
80564
81241
|
this.ResetDayOffset();
|
|
80565
81242
|
}
|
|
80566
81243
|
|
|
80567
|
-
|
|
80568
|
-
{
|
|
80569
|
-
this.ChartDrawPicture=[];
|
|
80570
|
-
}
|
|
80571
|
-
else
|
|
80572
|
-
{
|
|
80573
|
-
this.ReloadChartDrawPicture();
|
|
80574
|
-
}
|
|
80575
|
-
|
|
81244
|
+
this.ReloadChartDrawPicture();
|
|
80576
81245
|
this.ResetDataStatus();
|
|
80577
81246
|
this.ClearIndexPaint(); //清空指标
|
|
80578
81247
|
this.Frame.ClearYCoordinateMaxMin();
|
|
@@ -81094,6 +81763,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
81094
81763
|
this.TitlePaint[0].IsShowDate=true;
|
|
81095
81764
|
this.UpdateDataOffset();
|
|
81096
81765
|
this.UpdateFrameMaxMin(); //调整坐标最大 最小值
|
|
81766
|
+
this.CreateChartDrawPictureByStorage(); //创建画图工具
|
|
81097
81767
|
|
|
81098
81768
|
//执行脚本
|
|
81099
81769
|
if (this.Frame.SubFrame.length>2)
|
|
@@ -81392,7 +82062,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
81392
82062
|
this.UpdateLatestMinuteDataV2(minuteData);
|
|
81393
82063
|
this.UpdateHistoryMinuteUI(updateTime);
|
|
81394
82064
|
this.RecvMinuteDataEvent({FunctionName:"RecvUpdateMinuteData"} );
|
|
81395
|
-
this.RequestOverlayMinuteData();
|
|
82065
|
+
this.RequestOverlayMinuteData(); //请求叠加数据 (主数据下载完再下载)
|
|
81396
82066
|
this.BindAllOverlayIndexData(this.SourceData);
|
|
81397
82067
|
this.AutoUpdateEvent(true, "MinuteChartContainer::RecvUpdateMinuteData");
|
|
81398
82068
|
this.AutoUpdate();
|
|
@@ -82812,7 +83482,11 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
82812
83482
|
this.ReloadChartDrawPicture=function()
|
|
82813
83483
|
{
|
|
82814
83484
|
this.ChartDrawPicture=[];
|
|
82815
|
-
this.
|
|
83485
|
+
if (this.SelectChartDrawPicture) this.SelectChartDrawPicture.IsSelected=false;
|
|
83486
|
+
this.SelectChartDrawPicture=null;
|
|
83487
|
+
this.CurrentChartDrawPicture=null;
|
|
83488
|
+
this.MoveOnChartDrawPicture=null;
|
|
83489
|
+
|
|
82816
83490
|
if (this.ChartDrawStorage)
|
|
82817
83491
|
{
|
|
82818
83492
|
this.ChartDrawStorageCache=this.ChartDrawStorage.GetDrawData( { Symbol:this.Symbol, Period:888888888 } );
|
|
@@ -82823,7 +83497,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
82823
83497
|
{
|
|
82824
83498
|
if (!this.ChartDrawStorageCache || this.ChartDrawStorageCache.length<=0) return;
|
|
82825
83499
|
|
|
82826
|
-
|
|
83500
|
+
var self=this;
|
|
83501
|
+
for(var i=0; i<this.ChartDrawStorageCache.length; ++i)
|
|
82827
83502
|
{
|
|
82828
83503
|
var item=this.ChartDrawStorageCache[i];
|
|
82829
83504
|
if (item.FrameID<0 || !this.Frame.SubFrame || this.Frame.SubFrame.length<item.FrameID) continue;
|
|
@@ -82834,8 +83509,11 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
82834
83509
|
drawPicture.Canvas=this.Canvas;
|
|
82835
83510
|
drawPicture.Status=10;
|
|
82836
83511
|
drawPicture.Frame=this.Frame.SubFrame[item.FrameID].Frame; //绑定框架坐标
|
|
83512
|
+
if (drawPicture.ImportStorageData) drawPicture.ImportStorageData(item);
|
|
83513
|
+
drawPicture.ResetXValue();
|
|
82837
83514
|
drawPicture.UpdateXValue();
|
|
82838
83515
|
drawPicture.ValueToPoint();
|
|
83516
|
+
drawPicture.GetActiveDrawPicture=()=>{ return this.GetActiveDrawPicture(); }
|
|
82839
83517
|
|
|
82840
83518
|
if (drawPicture.ClassName==='ChartDrawPictureText') drawPicture.IsInitialized=true;
|
|
82841
83519
|
|
|
@@ -132506,7 +133184,7 @@ function ScrollBarBGChart()
|
|
|
132506
133184
|
|
|
132507
133185
|
|
|
132508
133186
|
|
|
132509
|
-
var HQCHART_VERSION="1.1.
|
|
133187
|
+
var HQCHART_VERSION="1.1.13181";
|
|
132510
133188
|
|
|
132511
133189
|
function PrintHQChartVersion()
|
|
132512
133190
|
{
|