hqchart 1.1.13182 → 1.1.13194
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 +154 -211
- package/package.json +1 -1
- package/src/jscommon/umychart.js +186 -1546
- package/src/jscommon/umychart.popMenu.js +67 -4
- package/src/jscommon/umychart.resource/css/tools.css +135 -0
- package/src/jscommon/umychart.resource/css/umychart.popmenu.css +47 -10
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +187 -1547
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +256 -1552
package/src/jscommon/umychart.js
CHANGED
|
@@ -279,9 +279,8 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
279
279
|
var pixelRatio=GetDevicePixelRatio();
|
|
280
280
|
|
|
281
281
|
//右键菜单
|
|
282
|
-
if (option.IsShowRightMenu
|
|
282
|
+
if (IFrameSplitOperator.IsBool(option.IsShowRightMenu)) chart.IsShowRightMenu=option.IsShowRightMenu;
|
|
283
283
|
if (option.ScriptError) chart.ScriptErrorCallback=option.ScriptError;
|
|
284
|
-
chart.SelectRectRightMenu=new KLineSelectRightMenu(this.DivElement);
|
|
285
284
|
if (option.EnableScrollUpDown==true) chart.EnableScrollUpDown=option.EnableScrollUpDown;
|
|
286
285
|
if (option.DisableMouse==true) chart.DisableMouse=option.DisableMouse;
|
|
287
286
|
if (option.TouchMoveMinAngle) chart.TouchMoveMinAngle=option.TouchMoveMinAngle;
|
|
@@ -695,7 +694,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
695
694
|
chart.MinuteDialog=this.MinuteDialog;
|
|
696
695
|
|
|
697
696
|
//右键菜单
|
|
698
|
-
if (option.IsShowRightMenu
|
|
697
|
+
if (IFrameSplitOperator.IsBool(option.IsShowRightMenu)) chart.IsShowRightMenu=option.IsShowRightMenu;
|
|
699
698
|
|
|
700
699
|
if (option.KLine) //k线图的属性设置
|
|
701
700
|
{
|
|
@@ -915,7 +914,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
915
914
|
|
|
916
915
|
if (option.MinuteInfo) chart.CreateMinuteInfo(option.MinuteInfo);
|
|
917
916
|
|
|
918
|
-
if (option.IsShowRightMenu
|
|
917
|
+
if (IFrameSplitOperator.IsBool(option.IsShowRightMenu)) chart.IsShowRightMenu=option.IsShowRightMenu;
|
|
919
918
|
|
|
920
919
|
if (IFrameSplitOperator.IsNumber(option.DayCount)) chart.DayCount=option.DayCount;
|
|
921
920
|
|
|
@@ -1634,6 +1633,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
1634
1633
|
if (!chart) return false;
|
|
1635
1634
|
|
|
1636
1635
|
this.JSChartContainer=chart;
|
|
1636
|
+
chart.DivElement=this.DivElement;
|
|
1637
1637
|
|
|
1638
1638
|
if (option.DefaultCursor) chart.DefaultCursor=option.DefaultCursor;
|
|
1639
1639
|
if (option.OnCreatedCallback) option.OnCreatedCallback(chart);
|
|
@@ -1641,13 +1641,10 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
1641
1641
|
//是否自动更新
|
|
1642
1642
|
if (option.IsAutoUpdate!=null) chart.IsAutoUpdate=option.IsAutoUpdate;
|
|
1643
1643
|
if (option.AutoUpdateFrequency>0) chart.AutoUpdateFrequency=option.AutoUpdateFrequency;
|
|
1644
|
+
|
|
1644
1645
|
//内置菜单
|
|
1645
|
-
if (option.EnablePopMenuV2===true)
|
|
1646
|
-
|
|
1647
|
-
chart.JSPopMenu=new JSPopMenu();
|
|
1648
|
-
chart.JSPopMenu.Inital();
|
|
1649
|
-
chart.EnablePopMenuV2=true;
|
|
1650
|
-
}
|
|
1646
|
+
if (option.EnablePopMenuV2===true) chart.InitalPopMenu();
|
|
1647
|
+
|
|
1651
1648
|
//注册事件
|
|
1652
1649
|
if (option.EventCallback)
|
|
1653
1650
|
{
|
|
@@ -2122,10 +2119,19 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
2122
2119
|
{
|
|
2123
2120
|
if(this.JSChartContainer && typeof(this.JSChartContainer.PopupMenuByTab)=='function')
|
|
2124
2121
|
{
|
|
2125
|
-
JSConsole.Chart.Log('[JSChart:
|
|
2122
|
+
JSConsole.Chart.Log('[JSChart:PopupMenuByTab] ');
|
|
2126
2123
|
return this.JSChartContainer.PopupMenuByTab(menuData, rtTab);
|
|
2127
2124
|
}
|
|
2128
2125
|
}
|
|
2126
|
+
|
|
2127
|
+
this.PopupMenuByDrapdown=function(menuData, rtButton)
|
|
2128
|
+
{
|
|
2129
|
+
if(this.JSChartContainer && typeof(this.JSChartContainer.PopupMenuByDrapdown)=='function')
|
|
2130
|
+
{
|
|
2131
|
+
JSConsole.Chart.Log('[JSChart:PopupMenuByDrapdown] ');
|
|
2132
|
+
return this.JSChartContainer.PopupMenuByDrapdown(menuData, rtButton);
|
|
2133
|
+
}
|
|
2134
|
+
}
|
|
2129
2135
|
}
|
|
2130
2136
|
|
|
2131
2137
|
JSChart.LastVersion=null; //最新的版本号
|
|
@@ -2650,6 +2656,10 @@ var JSCHART_MENU_ID=
|
|
|
2650
2656
|
|
|
2651
2657
|
CMD_ENABLE_SELECT_RECT_ID:22, //启动区间选择
|
|
2652
2658
|
CMD_CHANGE_DAY_COUNT_ID:23, //切换天数
|
|
2659
|
+
CMD_SHOW_BEFORE_DATA_ID:24, //显示|隐藏集合竞价
|
|
2660
|
+
|
|
2661
|
+
CMD_SELECTED_ZOOM_ID:25, //选中放大
|
|
2662
|
+
CMD_SELECTED_SUMMARY_ID:26, //区间统计
|
|
2653
2663
|
}
|
|
2654
2664
|
|
|
2655
2665
|
|
|
@@ -2737,11 +2747,6 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
2737
2747
|
this.LoadDataSplashTitle="数据加载中"; //下载数据提示信息
|
|
2738
2748
|
this.DefaultCursor="default"; //crosshair , default 默认手型
|
|
2739
2749
|
|
|
2740
|
-
this.EnablePopMenuV2=false;
|
|
2741
|
-
this.JSPopMenu; //内置菜单
|
|
2742
|
-
//this.JSPopMenu=new JSPopMenu(); //内置菜单
|
|
2743
|
-
//this.JSPopMenu.Inital();
|
|
2744
|
-
|
|
2745
2750
|
//绘图缓存
|
|
2746
2751
|
this.CacheCanvas=null;
|
|
2747
2752
|
this.CacheElement=null;
|
|
@@ -2820,9 +2825,6 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
2820
2825
|
this.SelectRect.oncontextmenu=function() { return false; }; //屏蔽选中区域系统右键菜单
|
|
2821
2826
|
uielement.parentNode.appendChild(this.SelectRect);
|
|
2822
2827
|
|
|
2823
|
-
//区间选择右键菜单
|
|
2824
|
-
this.SelectRectRightMenu;
|
|
2825
|
-
|
|
2826
2828
|
//坐标轴风格方法 double-更加数值型分割 price-更加股票价格分割
|
|
2827
2829
|
this.FrameSplitData=new Map();
|
|
2828
2830
|
this.FrameSplitData.set("double",new SplitData());
|
|
@@ -2882,12 +2884,23 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
2882
2884
|
|
|
2883
2885
|
this.StockCache={ Data:null }; //扩展数据缓存数据
|
|
2884
2886
|
|
|
2887
|
+
this.JSPopMenu; //内置菜单
|
|
2888
|
+
this.IsShowRightMenu=true; //显示右键菜单
|
|
2889
|
+
|
|
2885
2890
|
|
|
2886
2891
|
this.ClearStockCache=function()
|
|
2887
2892
|
{
|
|
2888
2893
|
this.StockCache.Data=null;
|
|
2889
2894
|
}
|
|
2890
2895
|
|
|
2896
|
+
this.InitalPopMenu=function() //初始化弹出窗口
|
|
2897
|
+
{
|
|
2898
|
+
if (this.JSPopMenu) return;
|
|
2899
|
+
|
|
2900
|
+
this.JSPopMenu=new JSPopMenu(); //内置菜单
|
|
2901
|
+
this.JSPopMenu.Inital();
|
|
2902
|
+
}
|
|
2903
|
+
|
|
2891
2904
|
//obj={ Element:, Canvas: }
|
|
2892
2905
|
this.SetCorssCursorElement=function(obj)
|
|
2893
2906
|
{
|
|
@@ -3056,6 +3069,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
3056
3069
|
this.UIOnContextMenu=function(e)
|
|
3057
3070
|
{
|
|
3058
3071
|
if (this.ChartSplashPaint && this.ChartSplashPaint.IsEnableSplash == true) return;
|
|
3072
|
+
if (!this.IsShowRightMenu) return;
|
|
3059
3073
|
|
|
3060
3074
|
var x = e.clientX-this.UIElement.getBoundingClientRect().left;
|
|
3061
3075
|
var y = e.clientY-this.UIElement.getBoundingClientRect().top;
|
|
@@ -3297,7 +3311,6 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
3297
3311
|
}
|
|
3298
3312
|
|
|
3299
3313
|
this.HideSelectRect();
|
|
3300
|
-
if (this.SelectRectRightMenu) this.SelectRectRightMenu.Hide();
|
|
3301
3314
|
if (this.ChartPictureMenu) this.ChartPictureMenu.Hide();
|
|
3302
3315
|
|
|
3303
3316
|
var paint=this.GetRectSelectPaint();
|
|
@@ -3937,17 +3950,19 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
3937
3950
|
}
|
|
3938
3951
|
else
|
|
3939
3952
|
{
|
|
3940
|
-
if (isShowMenu
|
|
3953
|
+
if (isShowMenu)
|
|
3941
3954
|
{
|
|
3942
|
-
|
|
3943
|
-
{
|
|
3955
|
+
var data=
|
|
3956
|
+
{
|
|
3944
3957
|
Chart:this,
|
|
3945
3958
|
X:drag.LastMove.X-uielement.getBoundingClientRect().left,
|
|
3946
3959
|
Y:drag.LastMove.Y-uielement.getBoundingClientRect().top,
|
|
3947
3960
|
SelectData:selectData, //区间选择的数据
|
|
3948
3961
|
RectSelectPaint:paint //区间选择背景
|
|
3949
3962
|
};
|
|
3950
|
-
|
|
3963
|
+
|
|
3964
|
+
e.data=data;
|
|
3965
|
+
this.PopupSelectRectMenuV2(data, e);
|
|
3951
3966
|
}
|
|
3952
3967
|
}
|
|
3953
3968
|
}
|
|
@@ -9000,6 +9015,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
9000
9015
|
}
|
|
9001
9016
|
}
|
|
9002
9017
|
|
|
9018
|
+
//点tab弹菜单
|
|
9003
9019
|
this.PopupMenuByTab=function(menuData, rtTab)
|
|
9004
9020
|
{
|
|
9005
9021
|
if (!this.JSPopMenu) return;
|
|
@@ -9023,7 +9039,32 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
9023
9039
|
this.JSPopMenu.PopupMenuByTab(rtCell);
|
|
9024
9040
|
}
|
|
9025
9041
|
|
|
9026
|
-
|
|
9042
|
+
//下拉菜单
|
|
9043
|
+
this.PopupMenuByDrapdown=function(menuData, rtButton)
|
|
9044
|
+
{
|
|
9045
|
+
if (!this.JSPopMenu) return;
|
|
9046
|
+
|
|
9047
|
+
var pixelRatio=GetDevicePixelRatio();
|
|
9048
|
+
var rtCell={ Left:rtButton.Left/pixelRatio, Right:rtButton.Right/pixelRatio, Bottom:rtButton.Bottom/pixelRatio, Top:rtButton.Top/pixelRatio };
|
|
9049
|
+
rtCell.Width=rtCell.Right-rtCell.Left;
|
|
9050
|
+
rtCell.Height=rtCell.Bottom-rtCell.Top;
|
|
9051
|
+
|
|
9052
|
+
var rtClient=this.UIElement.getBoundingClientRect();
|
|
9053
|
+
var rtScroll=GetScrollPosition();
|
|
9054
|
+
|
|
9055
|
+
var offsetLeft=rtClient.left+rtScroll.Left;
|
|
9056
|
+
var offsetTop=rtClient.top+rtScroll.Top;
|
|
9057
|
+
rtCell.Left+=offsetLeft;
|
|
9058
|
+
rtCell.Right+=offsetLeft;
|
|
9059
|
+
rtCell.Top+=offsetTop;
|
|
9060
|
+
rtCell.Bottom+=offsetTop;
|
|
9061
|
+
|
|
9062
|
+
this.JSPopMenu.CreatePopMenu(menuData);
|
|
9063
|
+
this.JSPopMenu.PopupMenuByDrapdown(rtCell);
|
|
9064
|
+
}
|
|
9065
|
+
|
|
9066
|
+
//右键菜单
|
|
9067
|
+
this.PopupMenuByRClick=function(menuData, x, y)
|
|
9027
9068
|
{
|
|
9028
9069
|
var rtClient=this.UIElement.getBoundingClientRect();
|
|
9029
9070
|
var rtScroll=GetScrollPosition();
|
|
@@ -9204,6 +9245,18 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
9204
9245
|
if (this.ChangeDayCount && param!=null)
|
|
9205
9246
|
this.ChangeDayCount(param);
|
|
9206
9247
|
break;
|
|
9248
|
+
case JSCHART_MENU_ID.CMD_SHOW_BEFORE_DATA_ID:
|
|
9249
|
+
if (this.ShowCallAuctionData && IFrameSplitOperator.IsBool(srcParam))
|
|
9250
|
+
this.ShowCallAuctionData({ Left:srcParam, MultiDay:{ Left:srcParam }});
|
|
9251
|
+
break;
|
|
9252
|
+
|
|
9253
|
+
case JSCHART_MENU_ID.CMD_SELECTED_ZOOM_ID:
|
|
9254
|
+
if (this.ShowSelectData && srcParam) this.ShowSelectData(srcParam);
|
|
9255
|
+
break;
|
|
9256
|
+
case JSCHART_MENU_ID.CMD_SELECTED_SUMMARY_ID:
|
|
9257
|
+
var dlg=new KLineSelectRectDialog(this.DivElement);
|
|
9258
|
+
dlg.DoModal(srcParam);
|
|
9259
|
+
break;
|
|
9207
9260
|
}
|
|
9208
9261
|
}
|
|
9209
9262
|
}
|
|
@@ -12432,7 +12485,7 @@ function MinuteFrame()
|
|
|
12432
12485
|
for(var i=0;i<this.CustomToolbar.length;++i)
|
|
12433
12486
|
{
|
|
12434
12487
|
var item=this.CustomToolbar[i];
|
|
12435
|
-
if (item.ID && item.Style) aryButton.push({ ID:item.ID, Style:item.Style, TooltipText:item.TooltipText });
|
|
12488
|
+
if (item.ID && item.Style) aryButton.push({ ID:item.ID, Style:item.Style, TooltipText:item.TooltipText, Data:item.Data });
|
|
12436
12489
|
}
|
|
12437
12490
|
}
|
|
12438
12491
|
|
|
@@ -14562,7 +14615,7 @@ function KLineFrame()
|
|
|
14562
14615
|
var item=this.CustomToolbar[i];
|
|
14563
14616
|
if (item.ID && item.Style)
|
|
14564
14617
|
{
|
|
14565
|
-
var btnItem={ ID:item.ID, Style:item.Style, TooltipText:item.TooltipText};
|
|
14618
|
+
var btnItem={ ID:item.ID, Style:item.Style, TooltipText:item.TooltipText, Data:item.Data };
|
|
14566
14619
|
|
|
14567
14620
|
if (item.IsLeft===true) //左侧按钮
|
|
14568
14621
|
{
|
|
@@ -14628,7 +14681,7 @@ function KLineFrame()
|
|
|
14628
14681
|
var item=this.CustomToolbar[i];
|
|
14629
14682
|
if (item.ID && item.Style)
|
|
14630
14683
|
{
|
|
14631
|
-
var btnItem={ ID:item.ID, Style:item.Style, TooltipText:item.TooltipText};
|
|
14684
|
+
var btnItem={ ID:item.ID, Style:item.Style, TooltipText:item.TooltipText, Data:item.Data };
|
|
14632
14685
|
if (item.IsLeft===true) aryLeftButton.push(btnItem); //左侧按钮
|
|
14633
14686
|
}
|
|
14634
14687
|
}
|
|
@@ -53634,7 +53687,7 @@ function DynamicChartTitlePainting()
|
|
|
53634
53687
|
var rtButton={ Left:left, YCenter:yCenter };
|
|
53635
53688
|
this.DrawButton(item, rtButton, moveonPoint, mouseStatus);
|
|
53636
53689
|
|
|
53637
|
-
this.Buttons.push({ ID:item.ID, Rect:rtButton, FrameID:this.Frame.Identify, Type:0 }); //Type 0=主图按钮 1=附图按钮 2=主图指标名字按钮
|
|
53690
|
+
this.Buttons.push({ ID:item.ID, Rect:rtButton, FrameID:this.Frame.Identify, Type:0, Data:item.Data }); //Type 0=主图按钮 1=附图按钮 2=主图指标名字按钮
|
|
53638
53691
|
|
|
53639
53692
|
left=rtButton.Right;
|
|
53640
53693
|
|
|
@@ -53695,7 +53748,7 @@ function DynamicChartTitlePainting()
|
|
|
53695
53748
|
var rect=item.Rect;
|
|
53696
53749
|
if (x>rect.Left && x<rect.Right && y>rect.Top && y<rect.Bottom)
|
|
53697
53750
|
{
|
|
53698
|
-
var result= { ID:item.ID, Rect:rect, FrameID:item.FrameID, Type:item.Type };
|
|
53751
|
+
var result= { ID:item.ID, Rect:rect, FrameID:item.FrameID, Type:item.Type, Data:item.Data };
|
|
53699
53752
|
if (item.Type==1)
|
|
53700
53753
|
{
|
|
53701
53754
|
result.Title=item.Title;
|
|
@@ -55901,8 +55954,9 @@ function ChartDrawHLine()
|
|
|
55901
55954
|
|
|
55902
55955
|
this.Button=
|
|
55903
55956
|
{
|
|
55904
|
-
CloseIcon: { Text:'\ue62b', Color:'rgb(255,255,255)', Family:"iconfont", Size:16 },
|
|
55905
|
-
SettingIcon: { Text:'\ue623',Color:'rgb(255,255,255)', Family:"iconfont", Size:16 }
|
|
55957
|
+
CloseIcon: { Text:'\ue62b', Color:'rgb(255,255,255)', Family:"iconfont", Size:16, ID:JSCHART_BUTTON_ID.DRAW_PICTURE_DELETE, TooltipText:null },
|
|
55958
|
+
SettingIcon: { Text:'\ue623',Color:'rgb(255,255,255)', Family:"iconfont", Size:16, ID:JSCHART_BUTTON_ID.DRAW_PICTURE_SETTING, TooltipText:null }
|
|
55959
|
+
//修改ID, Text , TooltipText 可以外部定制按钮
|
|
55906
55960
|
}
|
|
55907
55961
|
|
|
55908
55962
|
this.AryButton=[];
|
|
@@ -56096,6 +56150,7 @@ function ChartDrawHLine()
|
|
|
56096
56150
|
this.CalculateButtonSize();
|
|
56097
56151
|
this.DrawValueText(drawPoint[0].Y, rtDraw, labInfo);
|
|
56098
56152
|
if (labInfo) this.DrawRightLab(labInfo, rtDraw);
|
|
56153
|
+
if (labInfo) this.DrawCustomHLine(labInfo, drawPoint[0].Y);
|
|
56099
56154
|
}
|
|
56100
56155
|
|
|
56101
56156
|
|
|
@@ -56235,6 +56290,53 @@ function ChartDrawHLine()
|
|
|
56235
56290
|
}
|
|
56236
56291
|
}
|
|
56237
56292
|
|
|
56293
|
+
this.DrawCustomHLine=function(labInfo, yLine)
|
|
56294
|
+
{
|
|
56295
|
+
if (!labInfo) return;
|
|
56296
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(labInfo.AryLine)) return;
|
|
56297
|
+
|
|
56298
|
+
var left=this.Frame.ChartBorder.GetLeft();
|
|
56299
|
+
var right=this.Frame.ChartBorder.GetRight();
|
|
56300
|
+
var pixelRatio=GetDevicePixelRatio();
|
|
56301
|
+
|
|
56302
|
+
var yMax=yLine, yMin=yLine;
|
|
56303
|
+
for(var i=0;i<labInfo.AryLine.length;++i)
|
|
56304
|
+
{
|
|
56305
|
+
var item=labInfo.AryLine[i];
|
|
56306
|
+
if (!IFrameSplitOperator.IsNumber(item.Value)) continue;
|
|
56307
|
+
|
|
56308
|
+
var y=this.Frame.GetYFromData(item.Value);
|
|
56309
|
+
var yFixed=ToFixedPoint(y);
|
|
56310
|
+
var xRight=right;
|
|
56311
|
+
if (IFrameSplitOperator.IsNumber(item.Width)) xRight=left+item.Width*pixelRatio;
|
|
56312
|
+
if (item.Color) this.Canvas.strokeStyle=item.Color;
|
|
56313
|
+
else this.Canvas.strokeStyle=this.LineColor;
|
|
56314
|
+
|
|
56315
|
+
this.Canvas.beginPath();
|
|
56316
|
+
this.Canvas.moveTo(left,yFixed);
|
|
56317
|
+
this.Canvas.lineTo(xRight,yFixed);
|
|
56318
|
+
this.Canvas.stroke();
|
|
56319
|
+
|
|
56320
|
+
if (yMax<yFixed) yMax=yFixed;
|
|
56321
|
+
if (yMin>yFixed) yMin=yFixed;
|
|
56322
|
+
}
|
|
56323
|
+
|
|
56324
|
+
if (yMax!=yMin && labInfo.VLine)
|
|
56325
|
+
{
|
|
56326
|
+
var item=labInfo.VLine;
|
|
56327
|
+
var x=left+20*pixelRatio;
|
|
56328
|
+
if (IFrameSplitOperator.IsNumber(item.XOffset)) x=left+item.XOffset*pixelRatio;
|
|
56329
|
+
x=ToFixedPoint(x);
|
|
56330
|
+
if (item.Color) this.Canvas.strokeStyle=item.Color;
|
|
56331
|
+
else this.Canvas.strokeStyle=this.LineColor;
|
|
56332
|
+
|
|
56333
|
+
this.Canvas.beginPath();
|
|
56334
|
+
this.Canvas.moveTo(x,yMax);
|
|
56335
|
+
this.Canvas.lineTo(x,yMin);
|
|
56336
|
+
this.Canvas.stroke();
|
|
56337
|
+
}
|
|
56338
|
+
}
|
|
56339
|
+
|
|
56238
56340
|
this.DrawValueText=function(y, rtDraw, labInfo)
|
|
56239
56341
|
{
|
|
56240
56342
|
var left=this.Frame.ChartBorder.GetLeft();
|
|
@@ -56379,7 +56481,7 @@ function ChartDrawHLine()
|
|
|
56379
56481
|
this.Canvas.fillStyle=icon.Color;
|
|
56380
56482
|
this.Canvas.fillText(this.Button.SettingIcon.Text,xCenter,yCenter);
|
|
56381
56483
|
|
|
56382
|
-
this.AryButton.push({Rect:rtButton, ID:
|
|
56484
|
+
this.AryButton.push({Rect:rtButton, ID:icon.ID, TooltipText:icon.TooltipText});
|
|
56383
56485
|
|
|
56384
56486
|
/*
|
|
56385
56487
|
if (this.ColseButtonSize>0)
|
|
@@ -56411,7 +56513,7 @@ function ChartDrawHLine()
|
|
|
56411
56513
|
this.Canvas.fillStyle=icon.Color;
|
|
56412
56514
|
this.Canvas.fillText(this.Button.CloseIcon.Text,xCenter,yCenter);
|
|
56413
56515
|
|
|
56414
|
-
this.AryButton.push({Rect:rtButton,ID:
|
|
56516
|
+
this.AryButton.push({Rect:rtButton,ID:icon.ID, TooltipText:icon.TooltipText });
|
|
56415
56517
|
|
|
56416
56518
|
left=rtButton.Right;
|
|
56417
56519
|
}
|
|
@@ -68411,10 +68513,9 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
68411
68513
|
isShowMenu=data.IsShowMenu;
|
|
68412
68514
|
}
|
|
68413
68515
|
|
|
68414
|
-
|
|
68415
|
-
if (isShowMenu && this.SelectRectRightMenu)
|
|
68516
|
+
if (isShowMenu)
|
|
68416
68517
|
{
|
|
68417
|
-
|
|
68518
|
+
var data=
|
|
68418
68519
|
{
|
|
68419
68520
|
Chart:this,
|
|
68420
68521
|
X:x,
|
|
@@ -68422,8 +68523,9 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
68422
68523
|
SelectData:selectData, //区间选择的数据
|
|
68423
68524
|
RectSelectPaint:paint //区间选择背景
|
|
68424
68525
|
};
|
|
68526
|
+
e.data=data;
|
|
68425
68527
|
|
|
68426
|
-
this.
|
|
68528
|
+
this.PopupSelectRectMenuV2(data, e);
|
|
68427
68529
|
}
|
|
68428
68530
|
}
|
|
68429
68531
|
|
|
@@ -68458,7 +68560,6 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
68458
68560
|
this.ShowSelectData=function(selectData)
|
|
68459
68561
|
{
|
|
68460
68562
|
this.HideSelectRect();
|
|
68461
|
-
if (this.SelectRectRightMenu) this.SelectRectRightMenu.Hide();
|
|
68462
68563
|
|
|
68463
68564
|
JSConsole.Chart.Log('[KLineChartContainer::ShowSelectData] selectData', selectData);
|
|
68464
68565
|
var dataOffset=selectData.Start;
|
|
@@ -68543,9 +68644,9 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
68543
68644
|
isShowMenu=data.IsShowMenu;
|
|
68544
68645
|
}
|
|
68545
68646
|
|
|
68546
|
-
if (isShowMenu
|
|
68647
|
+
if (isShowMenu)
|
|
68547
68648
|
{
|
|
68548
|
-
|
|
68649
|
+
var data=
|
|
68549
68650
|
{
|
|
68550
68651
|
Chart:this,
|
|
68551
68652
|
X:corssCursor.LastPoint.X/pixelTatio,
|
|
@@ -68553,7 +68654,9 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
68553
68654
|
SelectData:selectData, //区间选择的数据
|
|
68554
68655
|
RectSelectPaint:paint //区间选择背景
|
|
68555
68656
|
};
|
|
68556
|
-
|
|
68657
|
+
e.data=data
|
|
68658
|
+
|
|
68659
|
+
this.PopupSelectRectMenuV2(data, e);
|
|
68557
68660
|
}
|
|
68558
68661
|
}
|
|
68559
68662
|
|
|
@@ -72464,22 +72567,12 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
72464
72567
|
this.OnRightMenu=function(x,y,e)
|
|
72465
72568
|
{
|
|
72466
72569
|
var pixelTatio = GetDevicePixelRatio(); //x,y 需要乘以放大倍速
|
|
72467
|
-
|
|
72468
|
-
{
|
|
72469
|
-
|
|
72470
|
-
this.PopuRightMenuV2({X:e.offsetX, Y:e.offsetY, FrameID:frameId}, e);
|
|
72471
|
-
}
|
|
72472
|
-
else if (this.RightMenu)
|
|
72473
|
-
{
|
|
72474
|
-
var frameId=this.Frame.PtInFrame(x*pixelTatio,y*pixelTatio);
|
|
72475
|
-
e.data={ Chart:this, FrameID:frameId };
|
|
72476
|
-
this.RightMenu.DoModal(e);
|
|
72477
|
-
}
|
|
72478
|
-
|
|
72570
|
+
var frameId=this.Frame.PtInFrame(x*pixelTatio,y*pixelTatio);
|
|
72571
|
+
this.PopupRightMenuV2({X:e.offsetX, Y:e.offsetY, FrameID:frameId}, e);
|
|
72572
|
+
|
|
72479
72573
|
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CONTEXT_MENU);
|
|
72480
72574
|
if (event)
|
|
72481
72575
|
{
|
|
72482
|
-
var frameId=this.Frame.PtInFrame(x*pixelTatio,y*pixelTatio);
|
|
72483
72576
|
var data={ X:x, Y:y, Event:e, FrameID:frameId };
|
|
72484
72577
|
event.Callback(event,data,this);
|
|
72485
72578
|
}
|
|
@@ -72746,7 +72839,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
72746
72839
|
return aryMenu;
|
|
72747
72840
|
}
|
|
72748
72841
|
|
|
72749
|
-
this.
|
|
72842
|
+
this.PopupRightMenuV2=function(data,e)
|
|
72750
72843
|
{
|
|
72751
72844
|
if (!this.JSPopMenu) return;
|
|
72752
72845
|
var x=data.X, y=data.Y;
|
|
@@ -72754,7 +72847,21 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
72754
72847
|
var menuData={ Menu:this.GetRightMenuData(frameID), Position:JSPopMenu.POSITION_ID.RIGHT_MENU_ID };
|
|
72755
72848
|
menuData.ClickCallback=(data)=>{ this.OnClickRightMenu(data); }
|
|
72756
72849
|
|
|
72757
|
-
this.
|
|
72850
|
+
this.PopupMenuByRClick(menuData, x, y);
|
|
72851
|
+
}
|
|
72852
|
+
|
|
72853
|
+
this.PopupSelectRectMenuV2=function(data, e)
|
|
72854
|
+
{
|
|
72855
|
+
var aryMenu=
|
|
72856
|
+
[
|
|
72857
|
+
{ Name:"区间统计", Data:{ ID:JSCHART_MENU_ID.CMD_SELECTED_SUMMARY_ID, Args:[e] }},
|
|
72858
|
+
{ Name:"区间放大", Data:{ ID:JSCHART_MENU_ID.CMD_SELECTED_ZOOM_ID, Args:[data.SelectData] }}
|
|
72859
|
+
];
|
|
72860
|
+
|
|
72861
|
+
var menuData={ Menu:aryMenu, Position:JSPopMenu.POSITION_ID.RIGHT_MENU_ID };
|
|
72862
|
+
menuData.ClickCallback=(data)=>{ this.OnClickRightMenu(data); }
|
|
72863
|
+
var x=data.X, y=data.Y;
|
|
72864
|
+
this.PopupMenuByRClick(menuData, x, y);
|
|
72758
72865
|
}
|
|
72759
72866
|
|
|
72760
72867
|
//重新加载画图工具(切换股票|周期)
|
|
@@ -74143,7 +74250,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
74143
74250
|
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_TITLE_BUTTON);
|
|
74144
74251
|
if (event && event.Callback)
|
|
74145
74252
|
{
|
|
74146
|
-
var data={ Info:button, PreventDefault:false
|
|
74253
|
+
var data={ Info:button, PreventDefault:false, e:e }; //PreventDefault 是否阻止内置的点击处理
|
|
74147
74254
|
event.Callback(event,data,this);
|
|
74148
74255
|
if (data.PreventDefault) return;
|
|
74149
74256
|
}
|
|
@@ -76123,22 +76230,12 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
76123
76230
|
this.OnRightMenu=function(x,y,e)
|
|
76124
76231
|
{
|
|
76125
76232
|
var pixelTatio = GetDevicePixelRatio(); //x,y 需要乘以放大倍速
|
|
76126
|
-
|
|
76127
|
-
{
|
|
76128
|
-
|
|
76129
|
-
this.PopuRightMenuV2({X:e.offsetX, Y:e.offsetY, FrameID:frameId}, e);
|
|
76130
|
-
}
|
|
76131
|
-
else if (this.RightMenu)
|
|
76132
|
-
{
|
|
76133
|
-
var frameId=this.Frame.PtInFrame(x,y);
|
|
76134
|
-
e.data={ Chart:this, FrameID:frameId };
|
|
76135
|
-
this.RightMenu.DoModal(e);
|
|
76136
|
-
}
|
|
76137
|
-
|
|
76233
|
+
var frameId=this.Frame.PtInFrame(x*pixelTatio,y*pixelTatio);
|
|
76234
|
+
this.PopupRightMenuV2({X:e.offsetX, Y:e.offsetY, FrameID:frameId}, e);
|
|
76235
|
+
|
|
76138
76236
|
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CONTEXT_MENU);
|
|
76139
76237
|
if (event)
|
|
76140
76238
|
{
|
|
76141
|
-
var frameId=this.Frame.PtInFrame(x,y);
|
|
76142
76239
|
var data={ X:x, Y:y, Event:e, FrameID:frameId };
|
|
76143
76240
|
event.Callback(event,data,this);
|
|
76144
76241
|
}
|
|
@@ -76156,6 +76253,9 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
76156
76253
|
if (item && item.Symbol) aryOverlaySymbol.push(item.Symbol)
|
|
76157
76254
|
}
|
|
76158
76255
|
|
|
76256
|
+
var bShowDrawTool=false;
|
|
76257
|
+
if (this.GetExtendChartByClassName('DrawToolsButton')) bShowDrawTool=true; //画图工具
|
|
76258
|
+
|
|
76159
76259
|
var aryMenu=
|
|
76160
76260
|
[
|
|
76161
76261
|
{
|
|
@@ -76208,10 +76308,23 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
76208
76308
|
},
|
|
76209
76309
|
{
|
|
76210
76310
|
Name:"区间选择",Data:{ ID: JSCHART_MENU_ID.CMD_ENABLE_SELECT_RECT_ID, Args:[!this.EnableSelectRect]}, Checked:this.EnableSelectRect
|
|
76311
|
+
},
|
|
76312
|
+
{
|
|
76313
|
+
Name:"其他设置",
|
|
76314
|
+
SubMenu:
|
|
76315
|
+
[
|
|
76316
|
+
{ Name:"画图工具", Data:{ ID:bShowDrawTool?JSCHART_MENU_ID.CMD_HIDE_DRAWTOOL_ID:JSCHART_MENU_ID.CMD_SHOW_DRAWTOOL_ID, Args:[]}, Checked:bShowDrawTool},
|
|
76317
|
+
]
|
|
76211
76318
|
}
|
|
76212
76319
|
|
|
76213
76320
|
];
|
|
76214
76321
|
|
|
76322
|
+
if (MARKET_SUFFIX_NAME.IsSHSZStockA(this.Symbol))
|
|
76323
|
+
{
|
|
76324
|
+
var item={ Name:"集合竞价",Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_BEFORE_DATA_ID, Args:[!this.IsShowBeforeData] }, Checked:this.IsShowBeforeData };
|
|
76325
|
+
aryMenu.splice(4,0,item);
|
|
76326
|
+
}
|
|
76327
|
+
|
|
76215
76328
|
|
|
76216
76329
|
//删除菜单
|
|
76217
76330
|
for(var i=0;i<aryMenu.length;++i)
|
|
@@ -76234,7 +76347,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
76234
76347
|
return aryMenu;
|
|
76235
76348
|
}
|
|
76236
76349
|
|
|
76237
|
-
this.
|
|
76350
|
+
this.PopupRightMenuV2=function(data,e)
|
|
76238
76351
|
{
|
|
76239
76352
|
if (!this.JSPopMenu) return;
|
|
76240
76353
|
var x=data.X, y=data.Y;
|
|
@@ -76242,7 +76355,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
76242
76355
|
var menuData={ Menu:this.GetRightMenuData(frameID), Position:JSPopMenu.POSITION_ID.RIGHT_MENU_ID };
|
|
76243
76356
|
menuData.ClickCallback=(data)=>{ this.OnClickRightMenu(data); }
|
|
76244
76357
|
|
|
76245
|
-
this.
|
|
76358
|
+
this.PopupMenuByRClick(menuData, x, y);
|
|
76246
76359
|
}
|
|
76247
76360
|
|
|
76248
76361
|
this.OnWheel=function(e)
|
|
@@ -86161,1479 +86274,6 @@ function WaitDialog(divElement)
|
|
|
86161
86274
|
}
|
|
86162
86275
|
}
|
|
86163
86276
|
|
|
86164
|
-
//K线右键菜单类
|
|
86165
|
-
//id:"kline"
|
|
86166
|
-
function KLineRightMenu(divElement)
|
|
86167
|
-
{
|
|
86168
|
-
this.newMethod=IDivDialog; //派生
|
|
86169
|
-
this.newMethod(divElement);
|
|
86170
|
-
delete this.newMethod;
|
|
86171
|
-
|
|
86172
|
-
this.option={};
|
|
86173
|
-
|
|
86174
|
-
this.Create = function () {
|
|
86175
|
-
var _self = this;
|
|
86176
|
-
|
|
86177
|
-
this.ID=Guid();
|
|
86178
|
-
|
|
86179
|
-
_self.BindData();
|
|
86180
|
-
_self.BindEvent();
|
|
86181
|
-
}
|
|
86182
|
-
this.BindData=function(){
|
|
86183
|
-
var _self = this;
|
|
86184
|
-
|
|
86185
|
-
var id=this.DivElement.id;
|
|
86186
|
-
var $body = $("#" + id);
|
|
86187
|
-
|
|
86188
|
-
$body.find("div[id^='topMenu_']").remove();
|
|
86189
|
-
$body.find("div[id^='childMenu_']").remove();
|
|
86190
|
-
|
|
86191
|
-
var $topMenu = $("<div />");
|
|
86192
|
-
$topMenu.attr("id", "topMenu_"+_self.ID).addClass("context-menu-wrapper topmenu").hide();
|
|
86193
|
-
$body.append($topMenu);
|
|
86194
|
-
|
|
86195
|
-
var $topTable = $("<table />");
|
|
86196
|
-
$topTable.attr({ id: "topTable_" + _self.ID, cellspacing: "0", cellpadding: "0" }).addClass("context-menu");
|
|
86197
|
-
$topMenu.append($topTable);
|
|
86198
|
-
|
|
86199
|
-
$topTable.append(_self.childrenList(_self.option.data));
|
|
86200
|
-
|
|
86201
|
-
for (var i = 0; i < _self.option.data.length; i++) {
|
|
86202
|
-
var isHasChildren = typeof _self.option.data[i].children != "undefined";
|
|
86203
|
-
|
|
86204
|
-
if (isHasChildren) {
|
|
86205
|
-
|
|
86206
|
-
var $childMenu = $("<div />");
|
|
86207
|
-
$childMenu.attr({ id: "childMenu_"+_self.ID + i, "data-index": i }).addClass("context-menu-wrapper").hide();
|
|
86208
|
-
$body.append($childMenu);
|
|
86209
|
-
|
|
86210
|
-
var $childTable = $("<table />");
|
|
86211
|
-
$childTable.attr({ id: "childTable_" + _self.ID + i, cellspacing: "0", cellpadding: "0" }).addClass("context-menu");
|
|
86212
|
-
$childMenu.append($childTable);
|
|
86213
|
-
|
|
86214
|
-
$childTable.append(_self.childrenList(_self.option.data[i].children));
|
|
86215
|
-
}
|
|
86216
|
-
}
|
|
86217
|
-
}
|
|
86218
|
-
|
|
86219
|
-
this.Update=function()
|
|
86220
|
-
{
|
|
86221
|
-
var _self = this;
|
|
86222
|
-
//var id=this.DivElement.id;
|
|
86223
|
-
//var $body=$("#"+id);
|
|
86224
|
-
//
|
|
86225
|
-
//var $topTable = $("#topTable_" + _self.ID);
|
|
86226
|
-
//$topTable.empty();
|
|
86227
|
-
//$topTable.append(_self.childrenList(_self.option.data));
|
|
86228
|
-
//
|
|
86229
|
-
//for (var i = 0; i < _self.option.data.length; i++) {
|
|
86230
|
-
// var isHasChildren = typeof _self.option.data[i].children != "undefined";
|
|
86231
|
-
//
|
|
86232
|
-
// if (isHasChildren) {
|
|
86233
|
-
// var $childTable = $("#childTable_" + _self.ID + i);
|
|
86234
|
-
// $childTable.empty();
|
|
86235
|
-
// $childTable.append(_self.childrenList(_self.option.data[i].children));
|
|
86236
|
-
// }
|
|
86237
|
-
//}
|
|
86238
|
-
|
|
86239
|
-
_self.BindData();
|
|
86240
|
-
_self.BindEvent();
|
|
86241
|
-
}
|
|
86242
|
-
|
|
86243
|
-
this.childrenList = function(list) {
|
|
86244
|
-
var result = [];
|
|
86245
|
-
|
|
86246
|
-
for (var i = 0; i < list.length; i++) {
|
|
86247
|
-
var isBorder = typeof list[i].isBorder != "undefined" && list[i].isBorder;
|
|
86248
|
-
|
|
86249
|
-
var $tr = $("<tr />");
|
|
86250
|
-
$tr.addClass("font_Arial context-menu");
|
|
86251
|
-
if (isBorder)
|
|
86252
|
-
$tr.addClass("border");
|
|
86253
|
-
|
|
86254
|
-
var $td1 = $("<td />");
|
|
86255
|
-
if(list[i].selected){
|
|
86256
|
-
$td1.addClass("spacer context-menu").html("√");
|
|
86257
|
-
}else{
|
|
86258
|
-
$td1.addClass("spacer context-menu");
|
|
86259
|
-
}
|
|
86260
|
-
|
|
86261
|
-
var $td2 = $("<td />");
|
|
86262
|
-
$td2.addClass("text").html(list[i].text);
|
|
86263
|
-
|
|
86264
|
-
var $td3 = $("<td />");
|
|
86265
|
-
$td3.addClass("right shortcut");
|
|
86266
|
-
|
|
86267
|
-
var $td4 = $("<td />");
|
|
86268
|
-
$td4.addClass(typeof list[i].children != "undefined" ? "submenu-arrow" : "context-menu spacer");
|
|
86269
|
-
|
|
86270
|
-
$tr.append($td1).append($td2).append($td3).append($td4);
|
|
86271
|
-
|
|
86272
|
-
result.push($tr);
|
|
86273
|
-
}
|
|
86274
|
-
return result;
|
|
86275
|
-
}
|
|
86276
|
-
|
|
86277
|
-
this.Show=function (obj) {
|
|
86278
|
-
var _self = this;
|
|
86279
|
-
$.extend(_self.option, obj);
|
|
86280
|
-
|
|
86281
|
-
if (!_self.ID) _self.Create(); //判断是否重复创建
|
|
86282
|
-
else _self.Update(); //更新菜单状态
|
|
86283
|
-
|
|
86284
|
-
var $topMenu = $("#topMenu_"+_self.ID),
|
|
86285
|
-
topWidth = $topMenu.outerWidth(),
|
|
86286
|
-
topHeight = $topMenu.outerHeight();
|
|
86287
|
-
|
|
86288
|
-
var x = _self.option.x,
|
|
86289
|
-
y = _self.option.y;
|
|
86290
|
-
|
|
86291
|
-
if (topWidth > _self.option.position.X + _self.option.position.W- x) //超过了右边距
|
|
86292
|
-
x = x - topWidth;
|
|
86293
|
-
|
|
86294
|
-
if (topHeight > _self.option.position.Y +_self.option.position.H - y)//超过了下边距
|
|
86295
|
-
y = y - topHeight;
|
|
86296
|
-
|
|
86297
|
-
$topMenu.hide();
|
|
86298
|
-
$topMenu.css({ position:"absolute",left: x + "px", top: y + "px" }).show();
|
|
86299
|
-
|
|
86300
|
-
this.isInit = true;
|
|
86301
|
-
}
|
|
86302
|
-
|
|
86303
|
-
this.Hide=function () {
|
|
86304
|
-
var _self = this;
|
|
86305
|
-
if (typeof($)=="undefined") return;
|
|
86306
|
-
$("#topMenu_" + _self.ID).hide();
|
|
86307
|
-
$("[id^='childMenu_" + _self.ID + "']").hide();
|
|
86308
|
-
}
|
|
86309
|
-
|
|
86310
|
-
this.BindEvent=function () {
|
|
86311
|
-
var _self = this;
|
|
86312
|
-
var $childMenu = $("[id^='childMenu_" + _self.ID + "']");
|
|
86313
|
-
|
|
86314
|
-
$("#topTable_" + _self.ID).find("tr").mouseenter(function () {
|
|
86315
|
-
var $this = $(this),
|
|
86316
|
-
index = $this.index(),
|
|
86317
|
-
$topMenu = $("#topMenu_" + _self.ID),
|
|
86318
|
-
$child = $("#childMenu_" + _self.ID + index),
|
|
86319
|
-
trWidth = $this.outerWidth(),
|
|
86320
|
-
trHeight = $this.outerHeight();
|
|
86321
|
-
|
|
86322
|
-
var left = $topMenu.position().left + trWidth + 1;
|
|
86323
|
-
var top = $topMenu.position().top + (trHeight * index);
|
|
86324
|
-
|
|
86325
|
-
if (trWidth > _self.option.position.X + _self.option.position.W - left) //超过了右边距
|
|
86326
|
-
left = left - trWidth - $topMenu.outerWidth() - 2;
|
|
86327
|
-
|
|
86328
|
-
if ($child.outerHeight() > _self.option.position.Y +_self.option.position.H - top)//超过了下边距
|
|
86329
|
-
top = $topMenu.position().top + $topMenu.outerHeight() - $child.outerHeight();
|
|
86330
|
-
|
|
86331
|
-
$childMenu.hide();
|
|
86332
|
-
$child.css({ left: left + "px", top: top + "px" }).show();
|
|
86333
|
-
}).mouseleave(function () {
|
|
86334
|
-
var index = $(this).index();
|
|
86335
|
-
setTimeout(function () {
|
|
86336
|
-
if ($("#childMenu_" + _self.ID + index).attr("data-isShow") != 1) {
|
|
86337
|
-
$("#childMenu_" + _self.ID + index).hide();
|
|
86338
|
-
}
|
|
86339
|
-
}, 10)
|
|
86340
|
-
|
|
86341
|
-
}).click(function () {
|
|
86342
|
-
var $this = $(this);
|
|
86343
|
-
var index = $this.index();
|
|
86344
|
-
|
|
86345
|
-
if ($.type(_self.option.data[index].click) == "function") {
|
|
86346
|
-
_self.option.data[index].click(_self.option.returnData);
|
|
86347
|
-
$this.hide();
|
|
86348
|
-
}
|
|
86349
|
-
}).contextmenu(function()
|
|
86350
|
-
{
|
|
86351
|
-
return false; //屏蔽系统右键菜单
|
|
86352
|
-
});
|
|
86353
|
-
|
|
86354
|
-
|
|
86355
|
-
$childMenu.mouseenter(function () {
|
|
86356
|
-
$(this).attr("data-isShow", "1");
|
|
86357
|
-
}).mouseleave(function () {
|
|
86358
|
-
$(this).attr("data-isShow", "0");
|
|
86359
|
-
}).contextmenu(function()
|
|
86360
|
-
{
|
|
86361
|
-
return false; //屏蔽系统右键菜单
|
|
86362
|
-
});
|
|
86363
|
-
|
|
86364
|
-
$childMenu.find("tr").click(function () {
|
|
86365
|
-
var $this = $(this);
|
|
86366
|
-
var divIndex = parseInt($this.closest("div").attr("data-index"));
|
|
86367
|
-
var trIndex = $this.index();
|
|
86368
|
-
|
|
86369
|
-
if ($.type(_self.option.data[divIndex].children[trIndex].click) == "function") {
|
|
86370
|
-
_self.option.data[divIndex].children[trIndex].click(_self.option.windowIndex || 1);
|
|
86371
|
-
$childMenu.hide();
|
|
86372
|
-
}
|
|
86373
|
-
});
|
|
86374
|
-
}
|
|
86375
|
-
|
|
86376
|
-
this.GetPeriod=function (chart)
|
|
86377
|
-
{
|
|
86378
|
-
var data=
|
|
86379
|
-
[
|
|
86380
|
-
{
|
|
86381
|
-
text: "日线", Value:0,
|
|
86382
|
-
click: function () { chart.ChangePeriod(0); }
|
|
86383
|
-
},
|
|
86384
|
-
{
|
|
86385
|
-
text: "周线",Value:1,
|
|
86386
|
-
click: function () { chart.ChangePeriod(1); }
|
|
86387
|
-
},
|
|
86388
|
-
{
|
|
86389
|
-
text: "双周线",Value:21,
|
|
86390
|
-
click: function () { chart.ChangePeriod(21); }
|
|
86391
|
-
},
|
|
86392
|
-
{
|
|
86393
|
-
text: "月线",Value:2,
|
|
86394
|
-
click: function () { chart.ChangePeriod(2); }
|
|
86395
|
-
},
|
|
86396
|
-
{
|
|
86397
|
-
text: "季线",Value:9,
|
|
86398
|
-
click: function () { chart.ChangePeriod(9); }
|
|
86399
|
-
},
|
|
86400
|
-
{
|
|
86401
|
-
text: "半年",Value:22,
|
|
86402
|
-
click: function () { chart.ChangePeriod(22); }
|
|
86403
|
-
},
|
|
86404
|
-
{
|
|
86405
|
-
text: "年线",Value:3,
|
|
86406
|
-
click: function () { chart.ChangePeriod(3); }
|
|
86407
|
-
},
|
|
86408
|
-
{
|
|
86409
|
-
text: "1分",Value:4,
|
|
86410
|
-
click: function () { chart.ChangePeriod(4); }
|
|
86411
|
-
},
|
|
86412
|
-
{
|
|
86413
|
-
text: "5分",Value:5,
|
|
86414
|
-
click: function () { chart.ChangePeriod(5); }
|
|
86415
|
-
},
|
|
86416
|
-
{
|
|
86417
|
-
text: "15分",Value:6,
|
|
86418
|
-
click: function () { chart.ChangePeriod(6); }
|
|
86419
|
-
},
|
|
86420
|
-
{
|
|
86421
|
-
text: "30分",Value:7,
|
|
86422
|
-
click: function () { chart.ChangePeriod(7); }
|
|
86423
|
-
},
|
|
86424
|
-
{
|
|
86425
|
-
text: "60分",Value:8,
|
|
86426
|
-
click: function () { chart.ChangePeriod(8); }
|
|
86427
|
-
},
|
|
86428
|
-
{
|
|
86429
|
-
text: "2小时",Value:11,
|
|
86430
|
-
click: function () { chart.ChangePeriod(11); }
|
|
86431
|
-
},
|
|
86432
|
-
{
|
|
86433
|
-
text: "4小时",Value:12,
|
|
86434
|
-
click: function () { chart.ChangePeriod(12); }
|
|
86435
|
-
},
|
|
86436
|
-
{
|
|
86437
|
-
text: "分笔",Value:10,
|
|
86438
|
-
click: function () { chart.ChangePeriod(10); }
|
|
86439
|
-
},
|
|
86440
|
-
{
|
|
86441
|
-
text: "自定义周期:3分钟",Value:20003,
|
|
86442
|
-
click: function () { chart.ChangePeriod(20003); }
|
|
86443
|
-
},
|
|
86444
|
-
{
|
|
86445
|
-
text: "自定义周期:35分钟",Value:20035,
|
|
86446
|
-
click: function () { chart.ChangePeriod(20035); }
|
|
86447
|
-
},
|
|
86448
|
-
{
|
|
86449
|
-
text: "自定义周期:8日",Value:40008,
|
|
86450
|
-
click: function () { chart.ChangePeriod(40008); }
|
|
86451
|
-
}
|
|
86452
|
-
];
|
|
86453
|
-
|
|
86454
|
-
for(var i in data)
|
|
86455
|
-
{
|
|
86456
|
-
var item=data[i];
|
|
86457
|
-
if (item.Value==chart.Period)
|
|
86458
|
-
{
|
|
86459
|
-
item.selected=true;
|
|
86460
|
-
break;
|
|
86461
|
-
}
|
|
86462
|
-
}
|
|
86463
|
-
|
|
86464
|
-
return data;
|
|
86465
|
-
}
|
|
86466
|
-
|
|
86467
|
-
this.GetRight=function(chart)
|
|
86468
|
-
{
|
|
86469
|
-
var data=
|
|
86470
|
-
[
|
|
86471
|
-
{
|
|
86472
|
-
text: "不复权",
|
|
86473
|
-
click: function () { chart.ChangeRight(0); }
|
|
86474
|
-
},
|
|
86475
|
-
{
|
|
86476
|
-
text: "前复权",
|
|
86477
|
-
click: function () { chart.ChangeRight(1); }
|
|
86478
|
-
},
|
|
86479
|
-
{
|
|
86480
|
-
text: "后复权",
|
|
86481
|
-
click: function () { chart.ChangeRight(2); }
|
|
86482
|
-
}
|
|
86483
|
-
];
|
|
86484
|
-
|
|
86485
|
-
if (chart.Right>=0 && chart.Right<data.length) data[chart.Right].selected=true;
|
|
86486
|
-
|
|
86487
|
-
return data;
|
|
86488
|
-
}
|
|
86489
|
-
|
|
86490
|
-
//指标
|
|
86491
|
-
this.GetIndex=function (chart)
|
|
86492
|
-
{
|
|
86493
|
-
return [{
|
|
86494
|
-
text: "均线",
|
|
86495
|
-
click: function (windowIndex) {
|
|
86496
|
-
chart.ChangeIndex(windowIndex, '均线')
|
|
86497
|
-
}
|
|
86498
|
-
}, {
|
|
86499
|
-
text: "BOLL",
|
|
86500
|
-
click: function (windowIndex) {
|
|
86501
|
-
chart.ChangeIndex(windowIndex, 'BOLL')
|
|
86502
|
-
},
|
|
86503
|
-
isBorder:true
|
|
86504
|
-
}, {
|
|
86505
|
-
text: "MACD",
|
|
86506
|
-
click: function (windowIndex) {
|
|
86507
|
-
chart.ChangeIndex(windowIndex, 'MACD')
|
|
86508
|
-
}
|
|
86509
|
-
}, {
|
|
86510
|
-
text: "KDJ",
|
|
86511
|
-
click: function (windowIndex) {
|
|
86512
|
-
chart.ChangeIndex(windowIndex, 'KDJ')
|
|
86513
|
-
}
|
|
86514
|
-
}, {
|
|
86515
|
-
text: "VOL",
|
|
86516
|
-
click: function (windowIndex) {
|
|
86517
|
-
chart.ChangeIndex(windowIndex, 'VOL')
|
|
86518
|
-
}
|
|
86519
|
-
}, {
|
|
86520
|
-
text: "RSI",
|
|
86521
|
-
click: function (windowIndex) {
|
|
86522
|
-
chart.ChangeIndex(windowIndex, 'RSI')
|
|
86523
|
-
}
|
|
86524
|
-
}, {
|
|
86525
|
-
text: "BRAR",
|
|
86526
|
-
click: function (windowIndex) {
|
|
86527
|
-
chart.ChangeIndex(windowIndex, 'BRAR')
|
|
86528
|
-
}
|
|
86529
|
-
}, {
|
|
86530
|
-
text: "WR",
|
|
86531
|
-
click: function (windowIndex) {
|
|
86532
|
-
chart.ChangeIndex(windowIndex, 'WR')
|
|
86533
|
-
}
|
|
86534
|
-
}, {
|
|
86535
|
-
text: "BIAS",
|
|
86536
|
-
click: function (windowIndex) {
|
|
86537
|
-
chart.ChangeIndex(windowIndex, 'BIAS')
|
|
86538
|
-
}
|
|
86539
|
-
}, {
|
|
86540
|
-
text: "OBV",
|
|
86541
|
-
click: function (windowIndex) {
|
|
86542
|
-
chart.ChangeIndex(windowIndex, 'OBV')
|
|
86543
|
-
}
|
|
86544
|
-
}, {
|
|
86545
|
-
text: "DMI",
|
|
86546
|
-
click: function (windowIndex) {
|
|
86547
|
-
chart.ChangeIndex(windowIndex, 'DMI')
|
|
86548
|
-
}
|
|
86549
|
-
}, {
|
|
86550
|
-
text: "CR",
|
|
86551
|
-
click: function (windowIndex) {
|
|
86552
|
-
chart.ChangeIndex(windowIndex, 'CR')
|
|
86553
|
-
}
|
|
86554
|
-
}, {
|
|
86555
|
-
text: "PSY",
|
|
86556
|
-
click: function (windowIndex) {
|
|
86557
|
-
chart.ChangeIndex(windowIndex, 'PSY')
|
|
86558
|
-
}
|
|
86559
|
-
}, {
|
|
86560
|
-
text: "CCI",
|
|
86561
|
-
click: function (windowIndex) {
|
|
86562
|
-
chart.ChangeIndex(windowIndex, 'CCI')
|
|
86563
|
-
}
|
|
86564
|
-
}, {
|
|
86565
|
-
text: "DMA",
|
|
86566
|
-
click: function (windowIndex) {
|
|
86567
|
-
chart.ChangeIndex(windowIndex, 'DMA')
|
|
86568
|
-
}
|
|
86569
|
-
}, {
|
|
86570
|
-
text: "TRIX",
|
|
86571
|
-
click: function (windowIndex) {
|
|
86572
|
-
chart.ChangeIndex(windowIndex, 'TRIX')
|
|
86573
|
-
}
|
|
86574
|
-
}, {
|
|
86575
|
-
text: "VR",
|
|
86576
|
-
click: function (windowIndex) {
|
|
86577
|
-
chart.ChangeIndex(windowIndex, 'VR')
|
|
86578
|
-
}
|
|
86579
|
-
}, {
|
|
86580
|
-
text: "EMV",
|
|
86581
|
-
click: function (windowIndex) {
|
|
86582
|
-
chart.ChangeIndex(windowIndex, 'EMV')
|
|
86583
|
-
}
|
|
86584
|
-
}, {
|
|
86585
|
-
text: "ROC",
|
|
86586
|
-
click: function (windowIndex) {
|
|
86587
|
-
chart.ChangeIndex(windowIndex, 'ROC')
|
|
86588
|
-
}
|
|
86589
|
-
}, {
|
|
86590
|
-
text: "MIM",
|
|
86591
|
-
click: function (windowIndex) {
|
|
86592
|
-
chart.ChangeIndex(windowIndex, 'MIM')
|
|
86593
|
-
}
|
|
86594
|
-
}, {
|
|
86595
|
-
text: "FSL",
|
|
86596
|
-
click: function (windowIndex) {
|
|
86597
|
-
chart.ChangeIndex(windowIndex, 'FSL')
|
|
86598
|
-
}
|
|
86599
|
-
} ]
|
|
86600
|
-
}
|
|
86601
|
-
|
|
86602
|
-
//五彩K线
|
|
86603
|
-
this.GetColorIndex=function (chart)
|
|
86604
|
-
{
|
|
86605
|
-
var data=
|
|
86606
|
-
[
|
|
86607
|
-
{
|
|
86608
|
-
text: "十字星",
|
|
86609
|
-
click: function (windowIndex) { chart.ChangeInstructionIndex('五彩K线-十字星') }
|
|
86610
|
-
},
|
|
86611
|
-
{
|
|
86612
|
-
text: "早晨之星",
|
|
86613
|
-
click: function (windowIndex) { chart.ChangeInstructionIndex('五彩K线-早晨之星') },
|
|
86614
|
-
},
|
|
86615
|
-
{
|
|
86616
|
-
text: "垂死十字",
|
|
86617
|
-
click: function (windowIndex) { chart.ChangeInstructionIndex('五彩K线-垂死十字') },
|
|
86618
|
-
},
|
|
86619
|
-
{
|
|
86620
|
-
text: "三只乌鸦",
|
|
86621
|
-
click: function (windowIndex) { chart.ChangeInstructionIndex('五彩K线-三只乌鸦') }
|
|
86622
|
-
},
|
|
86623
|
-
{
|
|
86624
|
-
text: "光脚阴线",
|
|
86625
|
-
click: function (windowIndex) { chart.ChangeInstructionIndex('五彩K线-光脚阴线') }
|
|
86626
|
-
},
|
|
86627
|
-
{
|
|
86628
|
-
text: "黄昏之星",
|
|
86629
|
-
click: function (windowIndex) { chart.ChangeInstructionIndex('五彩K线-黄昏之星') }
|
|
86630
|
-
}
|
|
86631
|
-
];
|
|
86632
|
-
|
|
86633
|
-
if (chart.ColorIndex)
|
|
86634
|
-
{
|
|
86635
|
-
data[data.length-1].isBorder=true;
|
|
86636
|
-
data.push(
|
|
86637
|
-
{
|
|
86638
|
-
text: "删除五彩K线",
|
|
86639
|
-
click: function (windowIndex) { chart.CancelInstructionIndex() }
|
|
86640
|
-
});
|
|
86641
|
-
}
|
|
86642
|
-
|
|
86643
|
-
return data;
|
|
86644
|
-
}
|
|
86645
|
-
|
|
86646
|
-
//专家系统
|
|
86647
|
-
this.GetTradeIndex=function(chart)
|
|
86648
|
-
{
|
|
86649
|
-
var data=
|
|
86650
|
-
[
|
|
86651
|
-
{
|
|
86652
|
-
text: "BIAS",
|
|
86653
|
-
click: function (windowIndex) { chart.ChangeInstructionIndex('交易系统-BIAS') }
|
|
86654
|
-
},
|
|
86655
|
-
{
|
|
86656
|
-
text: "CCI",
|
|
86657
|
-
click: function (windowIndex) { chart.ChangeInstructionIndex('交易系统-CCI') }
|
|
86658
|
-
},
|
|
86659
|
-
{
|
|
86660
|
-
text: "DMI",
|
|
86661
|
-
click: function (windowIndex) { chart.ChangeInstructionIndex('交易系统-DMI') }
|
|
86662
|
-
},
|
|
86663
|
-
{
|
|
86664
|
-
text: "KD",
|
|
86665
|
-
click: function (windowIndex) { chart.ChangeInstructionIndex('交易系统-KD') }
|
|
86666
|
-
},
|
|
86667
|
-
{
|
|
86668
|
-
text: "BOLL",
|
|
86669
|
-
click: function (windowIndex) { chart.ChangeInstructionIndex('交易系统-BOLL') }
|
|
86670
|
-
},
|
|
86671
|
-
{
|
|
86672
|
-
text: "KDJ",
|
|
86673
|
-
click: function (windowIndex) { chart.ChangeInstructionIndex('交易系统-KDJ') }
|
|
86674
|
-
}
|
|
86675
|
-
];
|
|
86676
|
-
|
|
86677
|
-
if (chart.TradeIndex)
|
|
86678
|
-
{
|
|
86679
|
-
data[data.length-1].isBorder=true;
|
|
86680
|
-
data.push(
|
|
86681
|
-
{
|
|
86682
|
-
text: "删除专家系统",
|
|
86683
|
-
click: function (windowIndex) { chart.CancelInstructionIndex()}
|
|
86684
|
-
});
|
|
86685
|
-
}
|
|
86686
|
-
return data;
|
|
86687
|
-
}
|
|
86688
|
-
|
|
86689
|
-
//叠加
|
|
86690
|
-
this.GetOverlay=function (chart)
|
|
86691
|
-
{
|
|
86692
|
-
var data=
|
|
86693
|
-
[
|
|
86694
|
-
{
|
|
86695
|
-
text: "上证指数",
|
|
86696
|
-
click: function () { chart.OverlaySymbol('000001.sh'); }
|
|
86697
|
-
},
|
|
86698
|
-
{
|
|
86699
|
-
text: "深证成指",
|
|
86700
|
-
click: function () { chart.OverlaySymbol('399001.sz'); }
|
|
86701
|
-
},
|
|
86702
|
-
{
|
|
86703
|
-
text: "中小板指",
|
|
86704
|
-
click: function () { chart.OverlaySymbol('399005.sz'); }
|
|
86705
|
-
},
|
|
86706
|
-
{
|
|
86707
|
-
text: "创业板指",
|
|
86708
|
-
click: function () { chart.OverlaySymbol('399006.sz'); }
|
|
86709
|
-
},
|
|
86710
|
-
{
|
|
86711
|
-
text: "沪深300",
|
|
86712
|
-
click: function () { chart.OverlaySymbol('000300.sh'); },
|
|
86713
|
-
}
|
|
86714
|
-
];
|
|
86715
|
-
|
|
86716
|
-
for(var i in chart.OverlayChartPaint)
|
|
86717
|
-
{
|
|
86718
|
-
var item=chart.OverlayChartPaint[i];
|
|
86719
|
-
var symbol=item.Symbol;
|
|
86720
|
-
const mapSymbol=new Map([['000001.sh',0],['399001.sz',1],['399005.sz',2],['399006.sz',3],['000300.sh',4]]);
|
|
86721
|
-
if (mapSymbol.has(symbol))
|
|
86722
|
-
{
|
|
86723
|
-
var menuItem=data[mapSymbol.get(symbol)];
|
|
86724
|
-
let delSymbol=symbol;
|
|
86725
|
-
menuItem.selected=true;
|
|
86726
|
-
menuItem.click=function () { chart.DeleteOverlaySymbol(delSymbol); };
|
|
86727
|
-
}
|
|
86728
|
-
}
|
|
86729
|
-
|
|
86730
|
-
if (chart.OverlayChartPaint && chart.OverlayChartPaint.length>0)
|
|
86731
|
-
{
|
|
86732
|
-
data[data.length-1].isBorder=true;
|
|
86733
|
-
data.push(
|
|
86734
|
-
{
|
|
86735
|
-
text: "取消叠加",
|
|
86736
|
-
click: function () { chart.ClearOverlaySymbol();}
|
|
86737
|
-
}
|
|
86738
|
-
);
|
|
86739
|
-
}
|
|
86740
|
-
|
|
86741
|
-
return data;
|
|
86742
|
-
}
|
|
86743
|
-
|
|
86744
|
-
//K线类型设置
|
|
86745
|
-
this.GetKLineType=function(chart)
|
|
86746
|
-
{
|
|
86747
|
-
var data=
|
|
86748
|
-
[
|
|
86749
|
-
{
|
|
86750
|
-
text: "K线(空心阳线)",
|
|
86751
|
-
click: function () { chart.ChangeKLineDrawType(3);}
|
|
86752
|
-
},
|
|
86753
|
-
{
|
|
86754
|
-
text: "K线(实心阳线)",
|
|
86755
|
-
click: function () { chart.ChangeKLineDrawType(0); }
|
|
86756
|
-
},
|
|
86757
|
-
{
|
|
86758
|
-
text: "美国线",
|
|
86759
|
-
click: function () { chart.ChangeKLineDrawType(2, true ,{ IsThinAKBar:false }); }
|
|
86760
|
-
},
|
|
86761
|
-
{
|
|
86762
|
-
text: "收盘线",
|
|
86763
|
-
click: function () { chart.ChangeKLineDrawType(1); }
|
|
86764
|
-
},
|
|
86765
|
-
{
|
|
86766
|
-
text: "收盘面积",
|
|
86767
|
-
click: function () { chart.ChangeKLineDrawType(4); }
|
|
86768
|
-
},
|
|
86769
|
-
{
|
|
86770
|
-
text: "K线(空心阳线阴线)",
|
|
86771
|
-
click: function () { chart.ChangeKLineDrawType(6);}
|
|
86772
|
-
},
|
|
86773
|
-
{
|
|
86774
|
-
text: "Heikin Ashi",
|
|
86775
|
-
click: function () { chart.ChangeKLineDrawType(11);}
|
|
86776
|
-
},
|
|
86777
|
-
{
|
|
86778
|
-
text: "Line Break",
|
|
86779
|
-
click: function () { chart.ChangeKLineDrawType(12);}
|
|
86780
|
-
},
|
|
86781
|
-
{
|
|
86782
|
-
text: "High-low",
|
|
86783
|
-
click: function () { chart.ChangeKLineDrawType(13);}
|
|
86784
|
-
},
|
|
86785
|
-
{
|
|
86786
|
-
text: "HLC Area",
|
|
86787
|
-
click: function () { chart.ChangeKLineDrawType(15);}
|
|
86788
|
-
}
|
|
86789
|
-
];
|
|
86790
|
-
|
|
86791
|
-
switch(chart.KLineDrawType)
|
|
86792
|
-
{
|
|
86793
|
-
case 0:
|
|
86794
|
-
data[1].selected=true;
|
|
86795
|
-
break;
|
|
86796
|
-
case 1:
|
|
86797
|
-
data[3].selected=true;
|
|
86798
|
-
break;
|
|
86799
|
-
case 2:
|
|
86800
|
-
data[2].selected=true;
|
|
86801
|
-
break;
|
|
86802
|
-
case 3:
|
|
86803
|
-
data[0].selected=true;
|
|
86804
|
-
break;
|
|
86805
|
-
case 4:
|
|
86806
|
-
data[4].selected=true;
|
|
86807
|
-
break;
|
|
86808
|
-
case 6:
|
|
86809
|
-
data[5].selected=true;
|
|
86810
|
-
break;
|
|
86811
|
-
case 11:
|
|
86812
|
-
data[6].selected=true;
|
|
86813
|
-
break;
|
|
86814
|
-
case 12:
|
|
86815
|
-
data[7].selected=true;
|
|
86816
|
-
break;
|
|
86817
|
-
case 13:
|
|
86818
|
-
data[8].selected=true;
|
|
86819
|
-
break;
|
|
86820
|
-
case 15:
|
|
86821
|
-
data[9].selected=true;
|
|
86822
|
-
break;
|
|
86823
|
-
}
|
|
86824
|
-
return data;
|
|
86825
|
-
}
|
|
86826
|
-
|
|
86827
|
-
//指标窗口个数
|
|
86828
|
-
this.GetIndexWindowCount=function(chart)
|
|
86829
|
-
{
|
|
86830
|
-
var data=
|
|
86831
|
-
[
|
|
86832
|
-
{
|
|
86833
|
-
text: "1个窗口",
|
|
86834
|
-
click: function () { chart.ChangeIndexWindowCount(1); }
|
|
86835
|
-
},
|
|
86836
|
-
{
|
|
86837
|
-
text: "2个窗口",
|
|
86838
|
-
click: function () { chart.ChangeIndexWindowCount(2); }
|
|
86839
|
-
},
|
|
86840
|
-
{
|
|
86841
|
-
text: "3个窗口",
|
|
86842
|
-
click: function () { chart.ChangeIndexWindowCount(3); }
|
|
86843
|
-
},
|
|
86844
|
-
{
|
|
86845
|
-
text: "4个窗口",
|
|
86846
|
-
click: function () { chart.ChangeIndexWindowCount(4); }
|
|
86847
|
-
},
|
|
86848
|
-
{
|
|
86849
|
-
text: "5个窗口",
|
|
86850
|
-
click: function () { chart.ChangeIndexWindowCount(5); }
|
|
86851
|
-
}
|
|
86852
|
-
];
|
|
86853
|
-
|
|
86854
|
-
var count=chart.Frame.SubFrame.length;
|
|
86855
|
-
if ((count-1)>=0 && (count-1)<data.length) data[count-1].selected=true; //选中
|
|
86856
|
-
|
|
86857
|
-
return data;
|
|
86858
|
-
}
|
|
86859
|
-
|
|
86860
|
-
//坐标类型
|
|
86861
|
-
this.GetCoordinateType=function(chart)
|
|
86862
|
-
{
|
|
86863
|
-
var data=
|
|
86864
|
-
[
|
|
86865
|
-
{
|
|
86866
|
-
text: "普通坐标",
|
|
86867
|
-
click: function () { chart.ChangeCoordinateType( {Type:0} ); }
|
|
86868
|
-
},
|
|
86869
|
-
{
|
|
86870
|
-
text: "百分比坐标",
|
|
86871
|
-
click: function () { chart.ChangeCoordinateType( {Type:1} ); }
|
|
86872
|
-
},
|
|
86873
|
-
{
|
|
86874
|
-
text: "反转坐标",
|
|
86875
|
-
click: function () { chart.ChangeCoordinateType( { IsReverse:true } ); }
|
|
86876
|
-
},
|
|
86877
|
-
{
|
|
86878
|
-
text: "对数坐标",
|
|
86879
|
-
click: function () { chart.ChangeCoordinateType( {Type:2} ); }
|
|
86880
|
-
},
|
|
86881
|
-
{
|
|
86882
|
-
text: "等比坐标",
|
|
86883
|
-
click: function () { chart.ChangeCoordinateType( {Type:3} ); }
|
|
86884
|
-
},
|
|
86885
|
-
{
|
|
86886
|
-
text: "等分坐标",
|
|
86887
|
-
click: function () { chart.ChangeCoordinateType( {Type:4} ); }
|
|
86888
|
-
},
|
|
86889
|
-
{
|
|
86890
|
-
text: "黄金分割",
|
|
86891
|
-
click: function () { chart.ChangeCoordinateType( {Type:5} ); }
|
|
86892
|
-
}
|
|
86893
|
-
];
|
|
86894
|
-
|
|
86895
|
-
if (chart.Frame && chart.Frame.SubFrame && chart.Frame.SubFrame.length>0)
|
|
86896
|
-
{
|
|
86897
|
-
if (chart.Frame.SubFrame[0].Frame.CoordinateType==1)
|
|
86898
|
-
{
|
|
86899
|
-
data[2].selected=true;
|
|
86900
|
-
data[2].click=function() { chart.ChangeCoordinateType( { IsReverse:false } ); } //取消反转
|
|
86901
|
-
}
|
|
86902
|
-
|
|
86903
|
-
if (chart.Frame.SubFrame[0].Frame.YSplitOperator.CoordinateType==1) data[1].selected=true; //百分比
|
|
86904
|
-
else if (chart.Frame.SubFrame[0].Frame.YSplitOperator.CoordinateType==0) data[0].selected=true; //普通坐标
|
|
86905
|
-
else if (chart.Frame.SubFrame[0].Frame.YSplitOperator.CoordinateType==2) data[3].selected=true; //对数
|
|
86906
|
-
else if (chart.Frame.SubFrame[0].Frame.YSplitOperator.CoordinateType==3) data[4].selected=true; //等比坐标
|
|
86907
|
-
else if (chart.Frame.SubFrame[0].Frame.YSplitOperator.CoordinateType==4) data[5].selected=true; //等分坐标
|
|
86908
|
-
else if (chart.Frame.SubFrame[0].Frame.YSplitOperator.CoordinateType==5) data[6].selected=true; //黄金分割
|
|
86909
|
-
}
|
|
86910
|
-
|
|
86911
|
-
return data;
|
|
86912
|
-
}
|
|
86913
|
-
|
|
86914
|
-
//拖拽模式
|
|
86915
|
-
this.GetDragModeType=function(chart)
|
|
86916
|
-
{
|
|
86917
|
-
var data=
|
|
86918
|
-
[
|
|
86919
|
-
{
|
|
86920
|
-
text: "禁止拖拽",
|
|
86921
|
-
click: function () { chart.DragMode=0; }
|
|
86922
|
-
},
|
|
86923
|
-
{
|
|
86924
|
-
text: "启动拖拽",
|
|
86925
|
-
click: function () { chart.DragMode=1; }
|
|
86926
|
-
},
|
|
86927
|
-
{
|
|
86928
|
-
text: "区间选择",
|
|
86929
|
-
click: function () { chart.DragMode=2; }
|
|
86930
|
-
}
|
|
86931
|
-
];
|
|
86932
|
-
|
|
86933
|
-
if (chart.DragMode>=0 && chart.DragMode<data.length) data[chart.DragMode].selected=true; //选中
|
|
86934
|
-
|
|
86935
|
-
return data;
|
|
86936
|
-
}
|
|
86937
|
-
|
|
86938
|
-
//工具
|
|
86939
|
-
this.GetTools=function(chart)
|
|
86940
|
-
{
|
|
86941
|
-
var data=[];
|
|
86942
|
-
var drawTools=chart.GetExtendChartByClassName('DrawToolsButton');
|
|
86943
|
-
if (drawTools)
|
|
86944
|
-
{
|
|
86945
|
-
data.push(
|
|
86946
|
-
{
|
|
86947
|
-
text: "关闭画图工具",
|
|
86948
|
-
click: function ()
|
|
86949
|
-
{
|
|
86950
|
-
var toolsWidth=drawTools.Chart.Width;
|
|
86951
|
-
var toolsIndex=parseInt(drawTools.Index);
|
|
86952
|
-
for(var i=toolsIndex+1; i<chart.ExtendChartPaint.length; ++i) //在画图工具后面创建的需要减去工具的宽度
|
|
86953
|
-
{
|
|
86954
|
-
var item=chart.ExtendChartPaint[i];
|
|
86955
|
-
if (item.ClassName=='StockChip')
|
|
86956
|
-
{
|
|
86957
|
-
item.Left-=toolsWidth;
|
|
86958
|
-
}
|
|
86959
|
-
}
|
|
86960
|
-
chart.DeleteExtendChart(drawTools);
|
|
86961
|
-
chart.Frame.ChartBorder.Right-=toolsWidth;
|
|
86962
|
-
chart.SetSizeChange(true);
|
|
86963
|
-
chart.Draw();
|
|
86964
|
-
}
|
|
86965
|
-
}
|
|
86966
|
-
);
|
|
86967
|
-
}
|
|
86968
|
-
else
|
|
86969
|
-
{
|
|
86970
|
-
data.push(
|
|
86971
|
-
{
|
|
86972
|
-
text: "画图工具",
|
|
86973
|
-
click: function () {
|
|
86974
|
-
var option={Name:'画图工具', Top:chart.Frame.ChartBorder.Top };
|
|
86975
|
-
var extendChart=chart.CreateExtendChart(option.Name, option); //创建扩展图形
|
|
86976
|
-
chart.SetSizeChange(true);
|
|
86977
|
-
chart.Draw();
|
|
86978
|
-
}
|
|
86979
|
-
}
|
|
86980
|
-
);
|
|
86981
|
-
}
|
|
86982
|
-
|
|
86983
|
-
var StockChip=chart.GetExtendChartByClassName('StockChip');
|
|
86984
|
-
if (StockChip)
|
|
86985
|
-
{
|
|
86986
|
-
data.push(
|
|
86987
|
-
{
|
|
86988
|
-
text: "关闭移动筹码",
|
|
86989
|
-
click: function ()
|
|
86990
|
-
{
|
|
86991
|
-
var chipWidth=StockChip.Chart.Width;
|
|
86992
|
-
var chipIndex=parseInt(StockChip.Index);
|
|
86993
|
-
for(var i=chipIndex+1; i<chart.ExtendChartPaint.length; ++i) //在筹码后面创建的需要筹码的宽度
|
|
86994
|
-
{
|
|
86995
|
-
var item=chart.ExtendChartPaint[i];
|
|
86996
|
-
if (item.ClassName=='DrawToolsButton')
|
|
86997
|
-
{
|
|
86998
|
-
item.Left-=chipWidth;
|
|
86999
|
-
}
|
|
87000
|
-
}
|
|
87001
|
-
chart.DeleteExtendChart(StockChip);
|
|
87002
|
-
chart.Frame.ChartBorder.Right-=chipWidth;
|
|
87003
|
-
chart.SetSizeChange(true);
|
|
87004
|
-
chart.Draw();
|
|
87005
|
-
}
|
|
87006
|
-
|
|
87007
|
-
}
|
|
87008
|
-
);
|
|
87009
|
-
}
|
|
87010
|
-
else
|
|
87011
|
-
{
|
|
87012
|
-
data.push(
|
|
87013
|
-
{
|
|
87014
|
-
text: "移动筹码",
|
|
87015
|
-
click: function () {
|
|
87016
|
-
var option={Name:'筹码分布', ShowType:1, Width:230 };
|
|
87017
|
-
var extendChart=chart.CreateExtendChart(option.Name, option); //创建扩展图形
|
|
87018
|
-
chart.SetSizeChange(true);
|
|
87019
|
-
chart.Draw();
|
|
87020
|
-
}
|
|
87021
|
-
}
|
|
87022
|
-
);
|
|
87023
|
-
}
|
|
87024
|
-
|
|
87025
|
-
return data;
|
|
87026
|
-
}
|
|
87027
|
-
|
|
87028
|
-
//缺口提示
|
|
87029
|
-
this.GetPriceGap=function(chart)
|
|
87030
|
-
{
|
|
87031
|
-
var klineChart=chart.ChartPaint[0];
|
|
87032
|
-
var priceGap=klineChart.PriceGap;
|
|
87033
|
-
var data=
|
|
87034
|
-
[
|
|
87035
|
-
{
|
|
87036
|
-
text: "显示1个缺口",
|
|
87037
|
-
click: function () { chart.ChangePriceGap({ Enable:true, Count:1 }); }
|
|
87038
|
-
},
|
|
87039
|
-
{
|
|
87040
|
-
text: "显示2个缺口",
|
|
87041
|
-
click: function () { chart.ChangePriceGap({ Enable:true, Count:2 }); }
|
|
87042
|
-
},
|
|
87043
|
-
{
|
|
87044
|
-
text: "显示3个缺口",
|
|
87045
|
-
click: function () { chart.ChangePriceGap({ Enable:true, Count:3 }); }
|
|
87046
|
-
},
|
|
87047
|
-
{
|
|
87048
|
-
text: "隐藏缺口",
|
|
87049
|
-
click: function () { chart.ChangePriceGap({ Enable:false }); }
|
|
87050
|
-
}
|
|
87051
|
-
];
|
|
87052
|
-
|
|
87053
|
-
if (!priceGap.Enable || priceGap.Count<=0)
|
|
87054
|
-
{
|
|
87055
|
-
data[data.length-1].selected=true; //选中
|
|
87056
|
-
}
|
|
87057
|
-
else if (priceGap.Enable && priceGap.Count>0)
|
|
87058
|
-
{
|
|
87059
|
-
var index=priceGap.Count-1;
|
|
87060
|
-
if (index>data.length-2) index=data.length-2;
|
|
87061
|
-
data[index].selected=true; //选中
|
|
87062
|
-
}
|
|
87063
|
-
|
|
87064
|
-
return data;
|
|
87065
|
-
}
|
|
87066
|
-
|
|
87067
|
-
this.GetBGSplit=function(chart)
|
|
87068
|
-
{
|
|
87069
|
-
var data=
|
|
87070
|
-
[
|
|
87071
|
-
{
|
|
87072
|
-
text: "启用",
|
|
87073
|
-
click: function ()
|
|
87074
|
-
{
|
|
87075
|
-
chart.CreateExtendChart("SessionBreaksPaint", { });
|
|
87076
|
-
chart.Draw();
|
|
87077
|
-
}
|
|
87078
|
-
},
|
|
87079
|
-
{
|
|
87080
|
-
text: "关闭",
|
|
87081
|
-
click: function ()
|
|
87082
|
-
{
|
|
87083
|
-
var finder=chart.GetExtendChartByClassName("SessionBreaksPaint");
|
|
87084
|
-
if (finder)
|
|
87085
|
-
{
|
|
87086
|
-
chart.DeleteExtendChartByID(finder.Chart.ID);
|
|
87087
|
-
chart.Draw();
|
|
87088
|
-
}
|
|
87089
|
-
}
|
|
87090
|
-
},
|
|
87091
|
-
];
|
|
87092
|
-
|
|
87093
|
-
var finder=chart.GetExtendChartByClassName("SessionBreaksPaint");
|
|
87094
|
-
if (finder) data[0].selected=true;
|
|
87095
|
-
else data[1].selected=true;
|
|
87096
|
-
|
|
87097
|
-
return data;
|
|
87098
|
-
}
|
|
87099
|
-
|
|
87100
|
-
|
|
87101
|
-
this.GetKLineInfo=function(chart)
|
|
87102
|
-
{
|
|
87103
|
-
var setInfo=new Set();
|
|
87104
|
-
for(var i in chart.ChartInfo)
|
|
87105
|
-
{
|
|
87106
|
-
var item=chart.ChartInfo[i];
|
|
87107
|
-
setInfo.add(item.ClassName);
|
|
87108
|
-
}
|
|
87109
|
-
|
|
87110
|
-
var aryKLineInfo=["公告","业绩预告","调研","大宗交易","龙虎榜","互动易"]
|
|
87111
|
-
|
|
87112
|
-
var data=[];
|
|
87113
|
-
for(var i in aryKLineInfo)
|
|
87114
|
-
{
|
|
87115
|
-
var infoName=aryKLineInfo[i];
|
|
87116
|
-
var classInfo=JSKLineInfoMap.GetClassInfo(infoName);
|
|
87117
|
-
if (!classInfo) continue;
|
|
87118
|
-
|
|
87119
|
-
var item=this.CreateKlineInfoItem(infoName, setInfo.has(classInfo.ClassName), chart);
|
|
87120
|
-
data.push(item);
|
|
87121
|
-
}
|
|
87122
|
-
|
|
87123
|
-
if (chart.ChartInfo.length>0)
|
|
87124
|
-
{
|
|
87125
|
-
data[data.length-1].isBorder=true;
|
|
87126
|
-
var item={ text:'删除所有', click:function() { chart.ClearKLineInfo()} };
|
|
87127
|
-
data.push(item);
|
|
87128
|
-
|
|
87129
|
-
}
|
|
87130
|
-
|
|
87131
|
-
return data;
|
|
87132
|
-
}
|
|
87133
|
-
|
|
87134
|
-
this.CreateKlineInfoItem=function(infoName,bExist,chart)
|
|
87135
|
-
{
|
|
87136
|
-
var item=
|
|
87137
|
-
{
|
|
87138
|
-
text:infoName,
|
|
87139
|
-
selected:bExist
|
|
87140
|
-
}
|
|
87141
|
-
|
|
87142
|
-
if (bExist) item.click=function() { chart.DeleteKLineInfo(infoName) };
|
|
87143
|
-
else item.click=function() { chart.AddKLineInfo(infoName,true) }
|
|
87144
|
-
|
|
87145
|
-
return item;
|
|
87146
|
-
}
|
|
87147
|
-
|
|
87148
|
-
this.DoModal=function(event)
|
|
87149
|
-
{
|
|
87150
|
-
var chart=event.data.Chart;
|
|
87151
|
-
var rightMenu=chart.RightMenu;
|
|
87152
|
-
var x = event.offsetX;
|
|
87153
|
-
var y = event.offsetY;
|
|
87154
|
-
|
|
87155
|
-
var dataList=[{
|
|
87156
|
-
text: "分析周期",
|
|
87157
|
-
children: this.GetPeriod(chart)
|
|
87158
|
-
},
|
|
87159
|
-
{
|
|
87160
|
-
text: "复权处理",
|
|
87161
|
-
children: this.GetRight(chart)
|
|
87162
|
-
},
|
|
87163
|
-
{
|
|
87164
|
-
text: "指标切换",
|
|
87165
|
-
children: this.GetIndex(chart)
|
|
87166
|
-
},
|
|
87167
|
-
{
|
|
87168
|
-
text:"五彩K线",
|
|
87169
|
-
children: this.GetColorIndex(chart)
|
|
87170
|
-
},
|
|
87171
|
-
{
|
|
87172
|
-
text:'专家系统',
|
|
87173
|
-
children: this.GetTradeIndex(chart)
|
|
87174
|
-
},
|
|
87175
|
-
{
|
|
87176
|
-
text:'信息地雷',
|
|
87177
|
-
children: this.GetKLineInfo(chart)
|
|
87178
|
-
},
|
|
87179
|
-
{
|
|
87180
|
-
text:'缺口提示',
|
|
87181
|
-
children: this.GetPriceGap(chart)
|
|
87182
|
-
},
|
|
87183
|
-
{
|
|
87184
|
-
text: "叠加品种",
|
|
87185
|
-
children: this.GetOverlay(chart)
|
|
87186
|
-
},
|
|
87187
|
-
{
|
|
87188
|
-
text:'主图线型',
|
|
87189
|
-
children: this.GetKLineType(chart)
|
|
87190
|
-
},
|
|
87191
|
-
{
|
|
87192
|
-
text:"坐标类型",
|
|
87193
|
-
children:this.GetCoordinateType(chart)
|
|
87194
|
-
},
|
|
87195
|
-
{
|
|
87196
|
-
text:'指标窗口个数',
|
|
87197
|
-
children: this.GetIndexWindowCount(chart)
|
|
87198
|
-
},
|
|
87199
|
-
{
|
|
87200
|
-
text:'鼠标拖拽',
|
|
87201
|
-
children: this.GetDragModeType(chart)
|
|
87202
|
-
},
|
|
87203
|
-
{
|
|
87204
|
-
text:"工具",
|
|
87205
|
-
children:this.GetTools(chart)
|
|
87206
|
-
},
|
|
87207
|
-
{
|
|
87208
|
-
text:"背景分割",
|
|
87209
|
-
children:this.GetBGSplit(chart)
|
|
87210
|
-
}
|
|
87211
|
-
];
|
|
87212
|
-
|
|
87213
|
-
var upperSymbol=chart.Symbol.toUpperCase();
|
|
87214
|
-
if(MARKET_SUFFIX_NAME.IsSHSZIndex(chart.Symbol) || MARKET_SUFFIX_NAME.IsBIT(upperSymbol))
|
|
87215
|
-
{
|
|
87216
|
-
dataList.splice(1,1);
|
|
87217
|
-
}
|
|
87218
|
-
|
|
87219
|
-
var identify=event.data.FrameID;
|
|
87220
|
-
var overlayIndex=this.GetOverlayIndex(chart,identify);
|
|
87221
|
-
if (overlayIndex && overlayIndex.length>0)
|
|
87222
|
-
{
|
|
87223
|
-
var delOverlayIndexMenu={ text:'删除叠加指标', children:this.GetDeleteOverlayIndex(chart,overlayIndex) }
|
|
87224
|
-
dataList.splice(3,0,delOverlayIndexMenu);
|
|
87225
|
-
}
|
|
87226
|
-
|
|
87227
|
-
JSConsole.Chart.Log('[KLineRightMenu::DoModal]',identify);
|
|
87228
|
-
rightMenu.Show({
|
|
87229
|
-
windowIndex :identify,
|
|
87230
|
-
x:x+chart.UIElement.offsetLeft,
|
|
87231
|
-
y:y+chart.UIElement.offsetTop,
|
|
87232
|
-
position:chart.Frame.Position,
|
|
87233
|
-
data:dataList
|
|
87234
|
-
})
|
|
87235
|
-
|
|
87236
|
-
$(document).click(function () {
|
|
87237
|
-
rightMenu.Hide();
|
|
87238
|
-
});
|
|
87239
|
-
}
|
|
87240
|
-
|
|
87241
|
-
this.GetOverlayIndex=function(chart, windowsIndex)
|
|
87242
|
-
{
|
|
87243
|
-
if (windowsIndex>=chart.Frame.SubFrame.length || windowsIndex<0) return [];
|
|
87244
|
-
|
|
87245
|
-
var result=[];
|
|
87246
|
-
var item=chart.Frame.SubFrame[windowsIndex];
|
|
87247
|
-
for(var i in item.OverlayIndex)
|
|
87248
|
-
{
|
|
87249
|
-
var overlayItem=item.OverlayIndex[i];
|
|
87250
|
-
result.push({Name:overlayItem.Script.Name, Identify:overlayItem.Identify});
|
|
87251
|
-
}
|
|
87252
|
-
|
|
87253
|
-
return result;
|
|
87254
|
-
}
|
|
87255
|
-
|
|
87256
|
-
this.GetDeleteOverlayIndex=function(chart,overlayIndex)
|
|
87257
|
-
{
|
|
87258
|
-
var data=[];
|
|
87259
|
-
for(var i in overlayIndex)
|
|
87260
|
-
{
|
|
87261
|
-
let identify=overlayIndex[i].Identify;
|
|
87262
|
-
data.push({text:overlayIndex[i].Name, click:function()
|
|
87263
|
-
{
|
|
87264
|
-
chart.DeleteOverlayWindowsIndex(identify)
|
|
87265
|
-
}});
|
|
87266
|
-
}
|
|
87267
|
-
|
|
87268
|
-
return data;
|
|
87269
|
-
}
|
|
87270
|
-
}
|
|
87271
|
-
|
|
87272
|
-
//K线区间选择右键菜单
|
|
87273
|
-
function KLineSelectRightMenu(divElement)
|
|
87274
|
-
{
|
|
87275
|
-
this.newMethod=KLineRightMenu; //派生
|
|
87276
|
-
this.newMethod(divElement);
|
|
87277
|
-
delete this.newMethod;
|
|
87278
|
-
|
|
87279
|
-
this.DoModal=function(event)
|
|
87280
|
-
{
|
|
87281
|
-
var chart=event.data.Chart;
|
|
87282
|
-
var rightMenu=this;
|
|
87283
|
-
var x = event.data.X;
|
|
87284
|
-
var y = event.data.Y;
|
|
87285
|
-
|
|
87286
|
-
var dataList=
|
|
87287
|
-
[
|
|
87288
|
-
{
|
|
87289
|
-
text: "区间统计",
|
|
87290
|
-
click: function ()
|
|
87291
|
-
{
|
|
87292
|
-
JSConsole.Chart.Log('[KLineSelectRightMenu::click] 区间统计');
|
|
87293
|
-
rightMenu.Hide();
|
|
87294
|
-
var dialog=new KLineSelectRectDialog(divElement);
|
|
87295
|
-
dialog.DoModal(event);
|
|
87296
|
-
}
|
|
87297
|
-
},
|
|
87298
|
-
{
|
|
87299
|
-
text:'区间放大',
|
|
87300
|
-
click:function()
|
|
87301
|
-
{
|
|
87302
|
-
JSConsole.Chart.Log('[KLineSelectRightMenu::click] 区间放大');
|
|
87303
|
-
var chart=event.data.Chart;
|
|
87304
|
-
chart.ShowSelectData(event.data.SelectData);
|
|
87305
|
-
}
|
|
87306
|
-
}
|
|
87307
|
-
];
|
|
87308
|
-
|
|
87309
|
-
rightMenu.Show({
|
|
87310
|
-
x:x,
|
|
87311
|
-
y:y,
|
|
87312
|
-
position:chart.Frame.Position,
|
|
87313
|
-
data:dataList
|
|
87314
|
-
});
|
|
87315
|
-
}
|
|
87316
|
-
|
|
87317
|
-
this.Show=function (obj)
|
|
87318
|
-
{
|
|
87319
|
-
var _self = this;
|
|
87320
|
-
$.extend(_self.option, obj);
|
|
87321
|
-
|
|
87322
|
-
//判断是否重复创建
|
|
87323
|
-
if (!_self.ID) _self.Create();
|
|
87324
|
-
//判断下如果DOM没了需要重新创建
|
|
87325
|
-
var divIdName='topMenu_'+_self.ID;
|
|
87326
|
-
var divDom=document.getElementById(divIdName);
|
|
87327
|
-
if (!divDom) _self.Create();
|
|
87328
|
-
|
|
87329
|
-
var $topMenu = $("#topMenu_"+_self.ID),
|
|
87330
|
-
topWidth = $topMenu.outerWidth(),
|
|
87331
|
-
topHeight = $topMenu.outerHeight();
|
|
87332
|
-
|
|
87333
|
-
$topMenu.contextmenu(function()
|
|
87334
|
-
{
|
|
87335
|
-
return false; //屏蔽系统右键菜单
|
|
87336
|
-
});
|
|
87337
|
-
|
|
87338
|
-
var x = _self.option.x,
|
|
87339
|
-
y = _self.option.y;
|
|
87340
|
-
|
|
87341
|
-
if (topWidth > _self.option.position.X + _self.option.position.W- x) //超过了右边距
|
|
87342
|
-
x = x - topWidth;
|
|
87343
|
-
|
|
87344
|
-
if (topHeight > _self.option.position.Y +_self.option.position.H - y)//超过了下边距
|
|
87345
|
-
y = y - topHeight;
|
|
87346
|
-
|
|
87347
|
-
$topMenu.hide();
|
|
87348
|
-
$topMenu.css({ position:"absolute",left: x + "px", top: y + "px" }).show();
|
|
87349
|
-
|
|
87350
|
-
$("#topMenu_" + _self.ID).find("tr").show(); //把菜单列表显示
|
|
87351
|
-
|
|
87352
|
-
this.isInit = true;
|
|
87353
|
-
}
|
|
87354
|
-
}
|
|
87355
|
-
|
|
87356
|
-
//分钟数据右键菜单
|
|
87357
|
-
function MinuteRightMenu(divElement)
|
|
87358
|
-
{
|
|
87359
|
-
this.newMethod=KLineRightMenu; //派生
|
|
87360
|
-
this.newMethod(divElement);
|
|
87361
|
-
delete this.newMethod;
|
|
87362
|
-
|
|
87363
|
-
this.DoModal=function(event)
|
|
87364
|
-
{
|
|
87365
|
-
var chart=event.data.Chart;
|
|
87366
|
-
var rightMenu=chart.RightMenu;
|
|
87367
|
-
var x = event.offsetX;
|
|
87368
|
-
var y = event.offsetY;
|
|
87369
|
-
|
|
87370
|
-
var dataList=
|
|
87371
|
-
[
|
|
87372
|
-
{
|
|
87373
|
-
text: "叠加品种",
|
|
87374
|
-
children: this.GetOverlay(chart)
|
|
87375
|
-
},
|
|
87376
|
-
{
|
|
87377
|
-
text: "多日分时图",
|
|
87378
|
-
children: this.GetDayCount(chart)
|
|
87379
|
-
},
|
|
87380
|
-
{
|
|
87381
|
-
text:'指标窗口个数',
|
|
87382
|
-
children: this.GetIndexWindowCount(chart)
|
|
87383
|
-
},
|
|
87384
|
-
{
|
|
87385
|
-
text: "副图指标切换",
|
|
87386
|
-
children: this.GetIndex(chart)
|
|
87387
|
-
},
|
|
87388
|
-
{
|
|
87389
|
-
text:"区间选择",
|
|
87390
|
-
children:this.GetSelectRect(chart)
|
|
87391
|
-
},
|
|
87392
|
-
|
|
87393
|
-
];
|
|
87394
|
-
|
|
87395
|
-
var symbol=chart.Symbol;
|
|
87396
|
-
if (MARKET_SUFFIX_NAME.IsSHSZStockA(symbol))
|
|
87397
|
-
{
|
|
87398
|
-
dataList.push({text:'集合竞价',children: this.GetShowBeforeData(chart)});
|
|
87399
|
-
}
|
|
87400
|
-
|
|
87401
|
-
dataList.push({text:"工具", children:this.GetTools(chart)});
|
|
87402
|
-
|
|
87403
|
-
var identify=event.data.FrameID;
|
|
87404
|
-
var overlayIndex=this.GetOverlayIndex(chart,identify);
|
|
87405
|
-
if (overlayIndex && overlayIndex.length>0)
|
|
87406
|
-
{
|
|
87407
|
-
var delOverlayIndexMenu={ text:'删除叠加指标', children:this.GetDeleteOverlayIndex(chart,overlayIndex) }
|
|
87408
|
-
dataList.splice(3,0,delOverlayIndexMenu);
|
|
87409
|
-
}
|
|
87410
|
-
|
|
87411
|
-
var identify=event.data.FrameID;
|
|
87412
|
-
JSConsole.Chart.Log('[MinuteRightMenu::DoModal]',identify);
|
|
87413
|
-
rightMenu.Show({
|
|
87414
|
-
windowIndex :identify,
|
|
87415
|
-
x:x+chart.UIElement.offsetLeft,
|
|
87416
|
-
y:y+chart.UIElement.offsetTop,
|
|
87417
|
-
position:chart.Frame.Position,
|
|
87418
|
-
data:dataList
|
|
87419
|
-
})
|
|
87420
|
-
|
|
87421
|
-
$(document).click(function () {
|
|
87422
|
-
rightMenu.Hide();
|
|
87423
|
-
});
|
|
87424
|
-
}
|
|
87425
|
-
|
|
87426
|
-
this.GetDayCount=function(chart)
|
|
87427
|
-
{
|
|
87428
|
-
var data=
|
|
87429
|
-
[
|
|
87430
|
-
{
|
|
87431
|
-
text: "当日分时图",
|
|
87432
|
-
click: function () { chart.ChangeDayCount(1); },
|
|
87433
|
-
isBorder:true
|
|
87434
|
-
},
|
|
87435
|
-
{
|
|
87436
|
-
text: "最近2日",
|
|
87437
|
-
click: function () { chart.ChangeDayCount(2); }
|
|
87438
|
-
},
|
|
87439
|
-
{
|
|
87440
|
-
text: "最近3日",
|
|
87441
|
-
click: function () { chart.ChangeDayCount(3); }
|
|
87442
|
-
},
|
|
87443
|
-
{
|
|
87444
|
-
text: "最近4日",
|
|
87445
|
-
click: function () { chart.ChangeDayCount(4); }
|
|
87446
|
-
},
|
|
87447
|
-
{
|
|
87448
|
-
text: "最近5日",
|
|
87449
|
-
click: function () { chart.ChangeDayCount(5); }
|
|
87450
|
-
},
|
|
87451
|
-
{
|
|
87452
|
-
text: "最近6日",
|
|
87453
|
-
click: function () { chart.ChangeDayCount(6); }
|
|
87454
|
-
}
|
|
87455
|
-
];
|
|
87456
|
-
|
|
87457
|
-
if ((chart.DayCount-1)>=0 && (chart.DayCount-1)<data.length) data[chart.DayCount-1].selected=true;
|
|
87458
|
-
|
|
87459
|
-
return data;
|
|
87460
|
-
}
|
|
87461
|
-
|
|
87462
|
-
this.GetIndex=function (chart)
|
|
87463
|
-
{
|
|
87464
|
-
var data=
|
|
87465
|
-
[
|
|
87466
|
-
{
|
|
87467
|
-
text: "MACD",
|
|
87468
|
-
click: function (windowIndex) { chart.ChangeIndex(windowIndex, 'MACD') }
|
|
87469
|
-
},
|
|
87470
|
-
{
|
|
87471
|
-
text: "DMI",
|
|
87472
|
-
click: function (windowIndex) { chart.ChangeIndex(windowIndex, 'DMI') }
|
|
87473
|
-
},
|
|
87474
|
-
{
|
|
87475
|
-
text: "DMA",
|
|
87476
|
-
click: function (windowIndex) { chart.ChangeIndex(windowIndex, 'DMA') }
|
|
87477
|
-
},
|
|
87478
|
-
{
|
|
87479
|
-
text: "BRAR",
|
|
87480
|
-
click: function (windowIndex) { chart.ChangeIndex(windowIndex, 'BRAR') }
|
|
87481
|
-
},
|
|
87482
|
-
{
|
|
87483
|
-
text: "KDJ",
|
|
87484
|
-
click: function (windowIndex) { chart.ChangeIndex(windowIndex, 'KDJ') }
|
|
87485
|
-
},
|
|
87486
|
-
{
|
|
87487
|
-
text: "RSI",
|
|
87488
|
-
click: function (windowIndex) { chart.ChangeIndex(windowIndex, 'RSI') }
|
|
87489
|
-
},
|
|
87490
|
-
{
|
|
87491
|
-
text: "WR",
|
|
87492
|
-
click: function (windowIndex) { chart.ChangeIndex(windowIndex, 'WR') }
|
|
87493
|
-
},
|
|
87494
|
-
{
|
|
87495
|
-
text: "CCI",
|
|
87496
|
-
click: function (windowIndex) { chart.ChangeIndex(windowIndex, 'CCI') }
|
|
87497
|
-
},
|
|
87498
|
-
{
|
|
87499
|
-
text: "TRIX",
|
|
87500
|
-
click: function (windowIndex) { chart.ChangeIndex(windowIndex, 'TRIX') }
|
|
87501
|
-
}
|
|
87502
|
-
];
|
|
87503
|
-
|
|
87504
|
-
return data;
|
|
87505
|
-
}
|
|
87506
|
-
|
|
87507
|
-
this.GetShowBeforeData=function(chart) //是否显示集合竞价
|
|
87508
|
-
{
|
|
87509
|
-
if (chart.IsShowBeforeData)
|
|
87510
|
-
{
|
|
87511
|
-
var data=
|
|
87512
|
-
[
|
|
87513
|
-
{
|
|
87514
|
-
text: "隐藏",
|
|
87515
|
-
click: function () { chart.ShowCallAuctionData( { Left:false, MultiDay:{ Left:false }} ); },
|
|
87516
|
-
}
|
|
87517
|
-
];
|
|
87518
|
-
|
|
87519
|
-
return data;
|
|
87520
|
-
}
|
|
87521
|
-
else
|
|
87522
|
-
{
|
|
87523
|
-
var data=
|
|
87524
|
-
[
|
|
87525
|
-
{
|
|
87526
|
-
text: "显示",
|
|
87527
|
-
click: function () { chart.ShowCallAuctionData({Left:true, MultiDay:{ Left:true }}); },
|
|
87528
|
-
}
|
|
87529
|
-
];
|
|
87530
|
-
|
|
87531
|
-
return data;
|
|
87532
|
-
}
|
|
87533
|
-
}
|
|
87534
|
-
|
|
87535
|
-
this.GetSelectRect=function(chart) //区间选择
|
|
87536
|
-
{
|
|
87537
|
-
if (chart.EnableSelectRect)
|
|
87538
|
-
{
|
|
87539
|
-
var data=
|
|
87540
|
-
[
|
|
87541
|
-
{
|
|
87542
|
-
text: "禁用区间选择",
|
|
87543
|
-
click: function () { chart.EnableSelectRect=false; },
|
|
87544
|
-
}
|
|
87545
|
-
];
|
|
87546
|
-
|
|
87547
|
-
return data;
|
|
87548
|
-
}
|
|
87549
|
-
else
|
|
87550
|
-
{
|
|
87551
|
-
var data=
|
|
87552
|
-
[
|
|
87553
|
-
{
|
|
87554
|
-
text: "启动区间选择",
|
|
87555
|
-
click: function () { chart.EnableSelectRect=true },
|
|
87556
|
-
}
|
|
87557
|
-
];
|
|
87558
|
-
|
|
87559
|
-
return data;
|
|
87560
|
-
}
|
|
87561
|
-
}
|
|
87562
|
-
|
|
87563
|
-
//指标窗口个数
|
|
87564
|
-
this.GetIndexWindowCount=function(chart)
|
|
87565
|
-
{
|
|
87566
|
-
var data=
|
|
87567
|
-
[
|
|
87568
|
-
{
|
|
87569
|
-
text: "1个窗口",
|
|
87570
|
-
click: function () { chart.ChangeIndexWindowCount(2); }
|
|
87571
|
-
},
|
|
87572
|
-
{
|
|
87573
|
-
text: "2个窗口",
|
|
87574
|
-
click: function () { chart.ChangeIndexWindowCount(3); }
|
|
87575
|
-
},
|
|
87576
|
-
{
|
|
87577
|
-
text: "3个窗口",
|
|
87578
|
-
click: function () { chart.ChangeIndexWindowCount(4); }
|
|
87579
|
-
},
|
|
87580
|
-
{
|
|
87581
|
-
text: "4个窗口",
|
|
87582
|
-
click: function () { chart.ChangeIndexWindowCount(5); }
|
|
87583
|
-
},
|
|
87584
|
-
{
|
|
87585
|
-
text: "5个窗口",
|
|
87586
|
-
click: function () { chart.ChangeIndexWindowCount(6); }
|
|
87587
|
-
}
|
|
87588
|
-
];
|
|
87589
|
-
|
|
87590
|
-
var count=chart.Frame.SubFrame.length-1;
|
|
87591
|
-
if ((count-1)>=0 && (count-1)<data.length) data[count-1].selected=true; //选中
|
|
87592
|
-
|
|
87593
|
-
return data;
|
|
87594
|
-
}
|
|
87595
|
-
|
|
87596
|
-
//工具
|
|
87597
|
-
this.GetTools=function(chart)
|
|
87598
|
-
{
|
|
87599
|
-
var data=[];
|
|
87600
|
-
var drawTools=chart.GetExtendChartByClassName('DrawToolsButton');
|
|
87601
|
-
if (drawTools)
|
|
87602
|
-
{
|
|
87603
|
-
data.push(
|
|
87604
|
-
{
|
|
87605
|
-
text: "关闭画图工具",
|
|
87606
|
-
click: function ()
|
|
87607
|
-
{
|
|
87608
|
-
var toolsWidth=drawTools.Chart.Width;
|
|
87609
|
-
var toolsIndex=parseInt(drawTools.Index);
|
|
87610
|
-
chart.DeleteExtendChart(drawTools);
|
|
87611
|
-
chart.Frame.ChartBorder.Right-=toolsWidth;
|
|
87612
|
-
chart.SetSizeChange(true);
|
|
87613
|
-
chart.Draw();
|
|
87614
|
-
}
|
|
87615
|
-
}
|
|
87616
|
-
);
|
|
87617
|
-
}
|
|
87618
|
-
else
|
|
87619
|
-
{
|
|
87620
|
-
data.push(
|
|
87621
|
-
{
|
|
87622
|
-
text: "画图工具",
|
|
87623
|
-
click: function () {
|
|
87624
|
-
var option={Name:'画图工具', Top:chart.Frame.ChartBorder.Top };
|
|
87625
|
-
var extendChart=chart.CreateExtendChart(option.Name, option); //创建扩展图形
|
|
87626
|
-
chart.SetSizeChange(true);
|
|
87627
|
-
chart.Draw();
|
|
87628
|
-
}
|
|
87629
|
-
}
|
|
87630
|
-
);
|
|
87631
|
-
}
|
|
87632
|
-
|
|
87633
|
-
return data;
|
|
87634
|
-
}
|
|
87635
|
-
}
|
|
87636
|
-
|
|
87637
86277
|
//画图工具 单个图形设置
|
|
87638
86278
|
function ChartPictureSettingMenu(divElement)
|
|
87639
86279
|
{
|