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.
@@ -4171,9 +4171,8 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4171
4171
  var pixelRatio=GetDevicePixelRatio();
4172
4172
 
4173
4173
  //右键菜单
4174
- if (option.IsShowRightMenu==true) chart.RightMenu=new KLineRightMenu(this.DivElement);
4174
+ if (IFrameSplitOperator.IsBool(option.IsShowRightMenu)) chart.IsShowRightMenu=option.IsShowRightMenu;
4175
4175
  if (option.ScriptError) chart.ScriptErrorCallback=option.ScriptError;
4176
- chart.SelectRectRightMenu=new KLineSelectRightMenu(this.DivElement);
4177
4176
  if (option.EnableScrollUpDown==true) chart.EnableScrollUpDown=option.EnableScrollUpDown;
4178
4177
  if (option.DisableMouse==true) chart.DisableMouse=option.DisableMouse;
4179
4178
  if (option.TouchMoveMinAngle) chart.TouchMoveMinAngle=option.TouchMoveMinAngle;
@@ -4587,7 +4586,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4587
4586
  chart.MinuteDialog=this.MinuteDialog;
4588
4587
 
4589
4588
  //右键菜单
4590
- if (option.IsShowRightMenu==true) chart.RightMenu=new KLineRightMenu(this.DivElement);
4589
+ if (IFrameSplitOperator.IsBool(option.IsShowRightMenu)) chart.IsShowRightMenu=option.IsShowRightMenu;
4591
4590
 
4592
4591
  if (option.KLine) //k线图的属性设置
4593
4592
  {
@@ -4807,7 +4806,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4807
4806
 
4808
4807
  if (option.MinuteInfo) chart.CreateMinuteInfo(option.MinuteInfo);
4809
4808
 
4810
- if (option.IsShowRightMenu==true) chart.RightMenu=new MinuteRightMenu(this.DivElement);
4809
+ if (IFrameSplitOperator.IsBool(option.IsShowRightMenu)) chart.IsShowRightMenu=option.IsShowRightMenu;
4811
4810
 
4812
4811
  if (IFrameSplitOperator.IsNumber(option.DayCount)) chart.DayCount=option.DayCount;
4813
4812
 
@@ -5526,6 +5525,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
5526
5525
  if (!chart) return false;
5527
5526
 
5528
5527
  this.JSChartContainer=chart;
5528
+ chart.DivElement=this.DivElement;
5529
5529
 
5530
5530
  if (option.DefaultCursor) chart.DefaultCursor=option.DefaultCursor;
5531
5531
  if (option.OnCreatedCallback) option.OnCreatedCallback(chart);
@@ -5533,13 +5533,10 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
5533
5533
  //是否自动更新
5534
5534
  if (option.IsAutoUpdate!=null) chart.IsAutoUpdate=option.IsAutoUpdate;
5535
5535
  if (option.AutoUpdateFrequency>0) chart.AutoUpdateFrequency=option.AutoUpdateFrequency;
5536
+
5536
5537
  //内置菜单
5537
- if (option.EnablePopMenuV2===true)
5538
- {
5539
- chart.JSPopMenu=new JSPopMenu();
5540
- chart.JSPopMenu.Inital();
5541
- chart.EnablePopMenuV2=true;
5542
- }
5538
+ if (option.EnablePopMenuV2===true) chart.InitalPopMenu();
5539
+
5543
5540
  //注册事件
5544
5541
  if (option.EventCallback)
5545
5542
  {
@@ -6014,10 +6011,19 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
6014
6011
  {
6015
6012
  if(this.JSChartContainer && typeof(this.JSChartContainer.PopupMenuByTab)=='function')
6016
6013
  {
6017
- JSConsole.Chart.Log('[JSChart:ChangePriceGap] ');
6014
+ JSConsole.Chart.Log('[JSChart:PopupMenuByTab] ');
6018
6015
  return this.JSChartContainer.PopupMenuByTab(menuData, rtTab);
6019
6016
  }
6020
6017
  }
6018
+
6019
+ this.PopupMenuByDrapdown=function(menuData, rtButton)
6020
+ {
6021
+ if(this.JSChartContainer && typeof(this.JSChartContainer.PopupMenuByDrapdown)=='function')
6022
+ {
6023
+ JSConsole.Chart.Log('[JSChart:PopupMenuByDrapdown] ');
6024
+ return this.JSChartContainer.PopupMenuByDrapdown(menuData, rtButton);
6025
+ }
6026
+ }
6021
6027
  }
6022
6028
 
6023
6029
  JSChart.LastVersion=null; //最新的版本号
@@ -6542,6 +6548,10 @@ var JSCHART_MENU_ID=
6542
6548
 
6543
6549
  CMD_ENABLE_SELECT_RECT_ID:22, //启动区间选择
6544
6550
  CMD_CHANGE_DAY_COUNT_ID:23, //切换天数
6551
+ CMD_SHOW_BEFORE_DATA_ID:24, //显示|隐藏集合竞价
6552
+
6553
+ CMD_SELECTED_ZOOM_ID:25, //选中放大
6554
+ CMD_SELECTED_SUMMARY_ID:26, //区间统计
6545
6555
  }
6546
6556
 
6547
6557
 
@@ -6629,11 +6639,6 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
6629
6639
  this.LoadDataSplashTitle="数据加载中"; //下载数据提示信息
6630
6640
  this.DefaultCursor="default"; //crosshair , default 默认手型
6631
6641
 
6632
- this.EnablePopMenuV2=false;
6633
- this.JSPopMenu; //内置菜单
6634
- //this.JSPopMenu=new JSPopMenu(); //内置菜单
6635
- //this.JSPopMenu.Inital();
6636
-
6637
6642
  //绘图缓存
6638
6643
  this.CacheCanvas=null;
6639
6644
  this.CacheElement=null;
@@ -6712,9 +6717,6 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
6712
6717
  this.SelectRect.oncontextmenu=function() { return false; }; //屏蔽选中区域系统右键菜单
6713
6718
  uielement.parentNode.appendChild(this.SelectRect);
6714
6719
 
6715
- //区间选择右键菜单
6716
- this.SelectRectRightMenu;
6717
-
6718
6720
  //坐标轴风格方法 double-更加数值型分割 price-更加股票价格分割
6719
6721
  this.FrameSplitData=new Map();
6720
6722
  this.FrameSplitData.set("double",new SplitData());
@@ -6774,12 +6776,23 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
6774
6776
 
6775
6777
  this.StockCache={ Data:null }; //扩展数据缓存数据
6776
6778
 
6779
+ this.JSPopMenu; //内置菜单
6780
+ this.IsShowRightMenu=true; //显示右键菜单
6781
+
6777
6782
 
6778
6783
  this.ClearStockCache=function()
6779
6784
  {
6780
6785
  this.StockCache.Data=null;
6781
6786
  }
6782
6787
 
6788
+ this.InitalPopMenu=function() //初始化弹出窗口
6789
+ {
6790
+ if (this.JSPopMenu) return;
6791
+
6792
+ this.JSPopMenu=new JSPopMenu(); //内置菜单
6793
+ this.JSPopMenu.Inital();
6794
+ }
6795
+
6783
6796
  //obj={ Element:, Canvas: }
6784
6797
  this.SetCorssCursorElement=function(obj)
6785
6798
  {
@@ -6948,6 +6961,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
6948
6961
  this.UIOnContextMenu=function(e)
6949
6962
  {
6950
6963
  if (this.ChartSplashPaint && this.ChartSplashPaint.IsEnableSplash == true) return;
6964
+ if (!this.IsShowRightMenu) return;
6951
6965
 
6952
6966
  var x = e.clientX-this.UIElement.getBoundingClientRect().left;
6953
6967
  var y = e.clientY-this.UIElement.getBoundingClientRect().top;
@@ -7189,7 +7203,6 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
7189
7203
  }
7190
7204
 
7191
7205
  this.HideSelectRect();
7192
- if (this.SelectRectRightMenu) this.SelectRectRightMenu.Hide();
7193
7206
  if (this.ChartPictureMenu) this.ChartPictureMenu.Hide();
7194
7207
 
7195
7208
  var paint=this.GetRectSelectPaint();
@@ -7829,17 +7842,19 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
7829
7842
  }
7830
7843
  else
7831
7844
  {
7832
- if (isShowMenu && this.SelectRectRightMenu)
7845
+ if (isShowMenu)
7833
7846
  {
7834
- e.data=
7835
- {
7847
+ var data=
7848
+ {
7836
7849
  Chart:this,
7837
7850
  X:drag.LastMove.X-uielement.getBoundingClientRect().left,
7838
7851
  Y:drag.LastMove.Y-uielement.getBoundingClientRect().top,
7839
7852
  SelectData:selectData, //区间选择的数据
7840
7853
  RectSelectPaint:paint //区间选择背景
7841
7854
  };
7842
- this.SelectRectRightMenu.DoModal(e);
7855
+
7856
+ e.data=data;
7857
+ this.PopupSelectRectMenuV2(data, e);
7843
7858
  }
7844
7859
  }
7845
7860
  }
@@ -12892,6 +12907,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
12892
12907
  }
12893
12908
  }
12894
12909
 
12910
+ //点tab弹菜单
12895
12911
  this.PopupMenuByTab=function(menuData, rtTab)
12896
12912
  {
12897
12913
  if (!this.JSPopMenu) return;
@@ -12915,7 +12931,32 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
12915
12931
  this.JSPopMenu.PopupMenuByTab(rtCell);
12916
12932
  }
12917
12933
 
12918
- this.PopuMenuByRClick=function(menuData, x, y)
12934
+ //下拉菜单
12935
+ this.PopupMenuByDrapdown=function(menuData, rtButton)
12936
+ {
12937
+ if (!this.JSPopMenu) return;
12938
+
12939
+ var pixelRatio=GetDevicePixelRatio();
12940
+ var rtCell={ Left:rtButton.Left/pixelRatio, Right:rtButton.Right/pixelRatio, Bottom:rtButton.Bottom/pixelRatio, Top:rtButton.Top/pixelRatio };
12941
+ rtCell.Width=rtCell.Right-rtCell.Left;
12942
+ rtCell.Height=rtCell.Bottom-rtCell.Top;
12943
+
12944
+ var rtClient=this.UIElement.getBoundingClientRect();
12945
+ var rtScroll=GetScrollPosition();
12946
+
12947
+ var offsetLeft=rtClient.left+rtScroll.Left;
12948
+ var offsetTop=rtClient.top+rtScroll.Top;
12949
+ rtCell.Left+=offsetLeft;
12950
+ rtCell.Right+=offsetLeft;
12951
+ rtCell.Top+=offsetTop;
12952
+ rtCell.Bottom+=offsetTop;
12953
+
12954
+ this.JSPopMenu.CreatePopMenu(menuData);
12955
+ this.JSPopMenu.PopupMenuByDrapdown(rtCell);
12956
+ }
12957
+
12958
+ //右键菜单
12959
+ this.PopupMenuByRClick=function(menuData, x, y)
12919
12960
  {
12920
12961
  var rtClient=this.UIElement.getBoundingClientRect();
12921
12962
  var rtScroll=GetScrollPosition();
@@ -13096,6 +13137,18 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
13096
13137
  if (this.ChangeDayCount && param!=null)
13097
13138
  this.ChangeDayCount(param);
13098
13139
  break;
13140
+ case JSCHART_MENU_ID.CMD_SHOW_BEFORE_DATA_ID:
13141
+ if (this.ShowCallAuctionData && IFrameSplitOperator.IsBool(srcParam))
13142
+ this.ShowCallAuctionData({ Left:srcParam, MultiDay:{ Left:srcParam }});
13143
+ break;
13144
+
13145
+ case JSCHART_MENU_ID.CMD_SELECTED_ZOOM_ID:
13146
+ if (this.ShowSelectData && srcParam) this.ShowSelectData(srcParam);
13147
+ break;
13148
+ case JSCHART_MENU_ID.CMD_SELECTED_SUMMARY_ID:
13149
+ var dlg=new KLineSelectRectDialog(this.DivElement);
13150
+ dlg.DoModal(srcParam);
13151
+ break;
13099
13152
  }
13100
13153
  }
13101
13154
  }
@@ -16324,7 +16377,7 @@ function MinuteFrame()
16324
16377
  for(var i=0;i<this.CustomToolbar.length;++i)
16325
16378
  {
16326
16379
  var item=this.CustomToolbar[i];
16327
- if (item.ID && item.Style) aryButton.push({ ID:item.ID, Style:item.Style, TooltipText:item.TooltipText });
16380
+ if (item.ID && item.Style) aryButton.push({ ID:item.ID, Style:item.Style, TooltipText:item.TooltipText, Data:item.Data });
16328
16381
  }
16329
16382
  }
16330
16383
 
@@ -18454,7 +18507,7 @@ function KLineFrame()
18454
18507
  var item=this.CustomToolbar[i];
18455
18508
  if (item.ID && item.Style)
18456
18509
  {
18457
- var btnItem={ ID:item.ID, Style:item.Style, TooltipText:item.TooltipText};
18510
+ var btnItem={ ID:item.ID, Style:item.Style, TooltipText:item.TooltipText, Data:item.Data };
18458
18511
 
18459
18512
  if (item.IsLeft===true) //左侧按钮
18460
18513
  {
@@ -18520,7 +18573,7 @@ function KLineFrame()
18520
18573
  var item=this.CustomToolbar[i];
18521
18574
  if (item.ID && item.Style)
18522
18575
  {
18523
- var btnItem={ ID:item.ID, Style:item.Style, TooltipText:item.TooltipText};
18576
+ var btnItem={ ID:item.ID, Style:item.Style, TooltipText:item.TooltipText, Data:item.Data };
18524
18577
  if (item.IsLeft===true) aryLeftButton.push(btnItem); //左侧按钮
18525
18578
  }
18526
18579
  }
@@ -57526,7 +57579,7 @@ function DynamicChartTitlePainting()
57526
57579
  var rtButton={ Left:left, YCenter:yCenter };
57527
57580
  this.DrawButton(item, rtButton, moveonPoint, mouseStatus);
57528
57581
 
57529
- this.Buttons.push({ ID:item.ID, Rect:rtButton, FrameID:this.Frame.Identify, Type:0 }); //Type 0=主图按钮 1=附图按钮 2=主图指标名字按钮
57582
+ this.Buttons.push({ ID:item.ID, Rect:rtButton, FrameID:this.Frame.Identify, Type:0, Data:item.Data }); //Type 0=主图按钮 1=附图按钮 2=主图指标名字按钮
57530
57583
 
57531
57584
  left=rtButton.Right;
57532
57585
 
@@ -57587,7 +57640,7 @@ function DynamicChartTitlePainting()
57587
57640
  var rect=item.Rect;
57588
57641
  if (x>rect.Left && x<rect.Right && y>rect.Top && y<rect.Bottom)
57589
57642
  {
57590
- var result= { ID:item.ID, Rect:rect, FrameID:item.FrameID, Type:item.Type };
57643
+ var result= { ID:item.ID, Rect:rect, FrameID:item.FrameID, Type:item.Type, Data:item.Data };
57591
57644
  if (item.Type==1)
57592
57645
  {
57593
57646
  result.Title=item.Title;
@@ -59793,8 +59846,9 @@ function ChartDrawHLine()
59793
59846
 
59794
59847
  this.Button=
59795
59848
  {
59796
- CloseIcon: { Text:'\ue62b', Color:'rgb(255,255,255)', Family:"iconfont", Size:16 },
59797
- SettingIcon: { Text:'\ue623',Color:'rgb(255,255,255)', Family:"iconfont", Size:16 }
59849
+ CloseIcon: { Text:'\ue62b', Color:'rgb(255,255,255)', Family:"iconfont", Size:16, ID:JSCHART_BUTTON_ID.DRAW_PICTURE_DELETE, TooltipText:null },
59850
+ SettingIcon: { Text:'\ue623',Color:'rgb(255,255,255)', Family:"iconfont", Size:16, ID:JSCHART_BUTTON_ID.DRAW_PICTURE_SETTING, TooltipText:null }
59851
+ //修改ID, Text , TooltipText 可以外部定制按钮
59798
59852
  }
59799
59853
 
59800
59854
  this.AryButton=[];
@@ -59988,6 +60042,7 @@ function ChartDrawHLine()
59988
60042
  this.CalculateButtonSize();
59989
60043
  this.DrawValueText(drawPoint[0].Y, rtDraw, labInfo);
59990
60044
  if (labInfo) this.DrawRightLab(labInfo, rtDraw);
60045
+ if (labInfo) this.DrawCustomHLine(labInfo, drawPoint[0].Y);
59991
60046
  }
59992
60047
 
59993
60048
 
@@ -60127,6 +60182,53 @@ function ChartDrawHLine()
60127
60182
  }
60128
60183
  }
60129
60184
 
60185
+ this.DrawCustomHLine=function(labInfo, yLine)
60186
+ {
60187
+ if (!labInfo) return;
60188
+ if (!IFrameSplitOperator.IsNonEmptyArray(labInfo.AryLine)) return;
60189
+
60190
+ var left=this.Frame.ChartBorder.GetLeft();
60191
+ var right=this.Frame.ChartBorder.GetRight();
60192
+ var pixelRatio=GetDevicePixelRatio();
60193
+
60194
+ var yMax=yLine, yMin=yLine;
60195
+ for(var i=0;i<labInfo.AryLine.length;++i)
60196
+ {
60197
+ var item=labInfo.AryLine[i];
60198
+ if (!IFrameSplitOperator.IsNumber(item.Value)) continue;
60199
+
60200
+ var y=this.Frame.GetYFromData(item.Value);
60201
+ var yFixed=ToFixedPoint(y);
60202
+ var xRight=right;
60203
+ if (IFrameSplitOperator.IsNumber(item.Width)) xRight=left+item.Width*pixelRatio;
60204
+ if (item.Color) this.Canvas.strokeStyle=item.Color;
60205
+ else this.Canvas.strokeStyle=this.LineColor;
60206
+
60207
+ this.Canvas.beginPath();
60208
+ this.Canvas.moveTo(left,yFixed);
60209
+ this.Canvas.lineTo(xRight,yFixed);
60210
+ this.Canvas.stroke();
60211
+
60212
+ if (yMax<yFixed) yMax=yFixed;
60213
+ if (yMin>yFixed) yMin=yFixed;
60214
+ }
60215
+
60216
+ if (yMax!=yMin && labInfo.VLine)
60217
+ {
60218
+ var item=labInfo.VLine;
60219
+ var x=left+20*pixelRatio;
60220
+ if (IFrameSplitOperator.IsNumber(item.XOffset)) x=left+item.XOffset*pixelRatio;
60221
+ x=ToFixedPoint(x);
60222
+ if (item.Color) this.Canvas.strokeStyle=item.Color;
60223
+ else this.Canvas.strokeStyle=this.LineColor;
60224
+
60225
+ this.Canvas.beginPath();
60226
+ this.Canvas.moveTo(x,yMax);
60227
+ this.Canvas.lineTo(x,yMin);
60228
+ this.Canvas.stroke();
60229
+ }
60230
+ }
60231
+
60130
60232
  this.DrawValueText=function(y, rtDraw, labInfo)
60131
60233
  {
60132
60234
  var left=this.Frame.ChartBorder.GetLeft();
@@ -60271,7 +60373,7 @@ function ChartDrawHLine()
60271
60373
  this.Canvas.fillStyle=icon.Color;
60272
60374
  this.Canvas.fillText(this.Button.SettingIcon.Text,xCenter,yCenter);
60273
60375
 
60274
- this.AryButton.push({Rect:rtButton, ID:JSCHART_BUTTON_ID.DRAW_PICTURE_SETTING});
60376
+ this.AryButton.push({Rect:rtButton, ID:icon.ID, TooltipText:icon.TooltipText});
60275
60377
 
60276
60378
  /*
60277
60379
  if (this.ColseButtonSize>0)
@@ -60303,7 +60405,7 @@ function ChartDrawHLine()
60303
60405
  this.Canvas.fillStyle=icon.Color;
60304
60406
  this.Canvas.fillText(this.Button.CloseIcon.Text,xCenter,yCenter);
60305
60407
 
60306
- this.AryButton.push({Rect:rtButton,ID:JSCHART_BUTTON_ID.DRAW_PICTURE_DELETE });
60408
+ this.AryButton.push({Rect:rtButton,ID:icon.ID, TooltipText:icon.TooltipText });
60307
60409
 
60308
60410
  left=rtButton.Right;
60309
60411
  }
@@ -72303,10 +72405,9 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
72303
72405
  isShowMenu=data.IsShowMenu;
72304
72406
  }
72305
72407
 
72306
-
72307
- if (isShowMenu && this.SelectRectRightMenu)
72408
+ if (isShowMenu)
72308
72409
  {
72309
- e.data=
72410
+ var data=
72310
72411
  {
72311
72412
  Chart:this,
72312
72413
  X:x,
@@ -72314,8 +72415,9 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
72314
72415
  SelectData:selectData, //区间选择的数据
72315
72416
  RectSelectPaint:paint //区间选择背景
72316
72417
  };
72418
+ e.data=data;
72317
72419
 
72318
- this.SelectRectRightMenu.DoModal(e);
72420
+ this.PopupSelectRectMenuV2(data, e);
72319
72421
  }
72320
72422
  }
72321
72423
 
@@ -72350,7 +72452,6 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
72350
72452
  this.ShowSelectData=function(selectData)
72351
72453
  {
72352
72454
  this.HideSelectRect();
72353
- if (this.SelectRectRightMenu) this.SelectRectRightMenu.Hide();
72354
72455
 
72355
72456
  JSConsole.Chart.Log('[KLineChartContainer::ShowSelectData] selectData', selectData);
72356
72457
  var dataOffset=selectData.Start;
@@ -72435,9 +72536,9 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
72435
72536
  isShowMenu=data.IsShowMenu;
72436
72537
  }
72437
72538
 
72438
- if (isShowMenu && this.SelectRectRightMenu)
72539
+ if (isShowMenu)
72439
72540
  {
72440
- e.data=
72541
+ var data=
72441
72542
  {
72442
72543
  Chart:this,
72443
72544
  X:corssCursor.LastPoint.X/pixelTatio,
@@ -72445,7 +72546,9 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
72445
72546
  SelectData:selectData, //区间选择的数据
72446
72547
  RectSelectPaint:paint //区间选择背景
72447
72548
  };
72448
- this.SelectRectRightMenu.DoModal(e);
72549
+ e.data=data
72550
+
72551
+ this.PopupSelectRectMenuV2(data, e);
72449
72552
  }
72450
72553
  }
72451
72554
 
@@ -76356,22 +76459,12 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
76356
76459
  this.OnRightMenu=function(x,y,e)
76357
76460
  {
76358
76461
  var pixelTatio = GetDevicePixelRatio(); //x,y 需要乘以放大倍速
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)
76365
- {
76366
- var frameId=this.Frame.PtInFrame(x*pixelTatio,y*pixelTatio);
76367
- e.data={ Chart:this, FrameID:frameId };
76368
- this.RightMenu.DoModal(e);
76369
- }
76370
-
76462
+ var frameId=this.Frame.PtInFrame(x*pixelTatio,y*pixelTatio);
76463
+ this.PopupRightMenuV2({X:e.offsetX, Y:e.offsetY, FrameID:frameId}, e);
76464
+
76371
76465
  var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CONTEXT_MENU);
76372
76466
  if (event)
76373
76467
  {
76374
- var frameId=this.Frame.PtInFrame(x*pixelTatio,y*pixelTatio);
76375
76468
  var data={ X:x, Y:y, Event:e, FrameID:frameId };
76376
76469
  event.Callback(event,data,this);
76377
76470
  }
@@ -76638,7 +76731,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
76638
76731
  return aryMenu;
76639
76732
  }
76640
76733
 
76641
- this.PopuRightMenuV2=function(data,e)
76734
+ this.PopupRightMenuV2=function(data,e)
76642
76735
  {
76643
76736
  if (!this.JSPopMenu) return;
76644
76737
  var x=data.X, y=data.Y;
@@ -76646,7 +76739,21 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
76646
76739
  var menuData={ Menu:this.GetRightMenuData(frameID), Position:JSPopMenu.POSITION_ID.RIGHT_MENU_ID };
76647
76740
  menuData.ClickCallback=(data)=>{ this.OnClickRightMenu(data); }
76648
76741
 
76649
- this.PopuMenuByRClick(menuData, x, y);
76742
+ this.PopupMenuByRClick(menuData, x, y);
76743
+ }
76744
+
76745
+ this.PopupSelectRectMenuV2=function(data, e)
76746
+ {
76747
+ var aryMenu=
76748
+ [
76749
+ { Name:"区间统计", Data:{ ID:JSCHART_MENU_ID.CMD_SELECTED_SUMMARY_ID, Args:[e] }},
76750
+ { Name:"区间放大", Data:{ ID:JSCHART_MENU_ID.CMD_SELECTED_ZOOM_ID, Args:[data.SelectData] }}
76751
+ ];
76752
+
76753
+ var menuData={ Menu:aryMenu, Position:JSPopMenu.POSITION_ID.RIGHT_MENU_ID };
76754
+ menuData.ClickCallback=(data)=>{ this.OnClickRightMenu(data); }
76755
+ var x=data.X, y=data.Y;
76756
+ this.PopupMenuByRClick(menuData, x, y);
76650
76757
  }
76651
76758
 
76652
76759
  //重新加载画图工具(切换股票|周期)
@@ -78035,7 +78142,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
78035
78142
  var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_TITLE_BUTTON);
78036
78143
  if (event && event.Callback)
78037
78144
  {
78038
- var data={ Info:button, PreventDefault:false }; //PreventDefault 是否阻止内置的点击处理
78145
+ var data={ Info:button, PreventDefault:false, e:e }; //PreventDefault 是否阻止内置的点击处理
78039
78146
  event.Callback(event,data,this);
78040
78147
  if (data.PreventDefault) return;
78041
78148
  }
@@ -80015,22 +80122,12 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
80015
80122
  this.OnRightMenu=function(x,y,e)
80016
80123
  {
80017
80124
  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)
80024
- {
80025
- var frameId=this.Frame.PtInFrame(x,y);
80026
- e.data={ Chart:this, FrameID:frameId };
80027
- this.RightMenu.DoModal(e);
80028
- }
80029
-
80125
+ var frameId=this.Frame.PtInFrame(x*pixelTatio,y*pixelTatio);
80126
+ this.PopupRightMenuV2({X:e.offsetX, Y:e.offsetY, FrameID:frameId}, e);
80127
+
80030
80128
  var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CONTEXT_MENU);
80031
80129
  if (event)
80032
80130
  {
80033
- var frameId=this.Frame.PtInFrame(x,y);
80034
80131
  var data={ X:x, Y:y, Event:e, FrameID:frameId };
80035
80132
  event.Callback(event,data,this);
80036
80133
  }
@@ -80048,6 +80145,9 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
80048
80145
  if (item && item.Symbol) aryOverlaySymbol.push(item.Symbol)
80049
80146
  }
80050
80147
 
80148
+ var bShowDrawTool=false;
80149
+ if (this.GetExtendChartByClassName('DrawToolsButton')) bShowDrawTool=true; //画图工具
80150
+
80051
80151
  var aryMenu=
80052
80152
  [
80053
80153
  {
@@ -80100,10 +80200,23 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
80100
80200
  },
80101
80201
  {
80102
80202
  Name:"区间选择",Data:{ ID: JSCHART_MENU_ID.CMD_ENABLE_SELECT_RECT_ID, Args:[!this.EnableSelectRect]}, Checked:this.EnableSelectRect
80203
+ },
80204
+ {
80205
+ Name:"其他设置",
80206
+ SubMenu:
80207
+ [
80208
+ { Name:"画图工具", Data:{ ID:bShowDrawTool?JSCHART_MENU_ID.CMD_HIDE_DRAWTOOL_ID:JSCHART_MENU_ID.CMD_SHOW_DRAWTOOL_ID, Args:[]}, Checked:bShowDrawTool},
80209
+ ]
80103
80210
  }
80104
80211
 
80105
80212
  ];
80106
80213
 
80214
+ if (MARKET_SUFFIX_NAME.IsSHSZStockA(this.Symbol))
80215
+ {
80216
+ var item={ Name:"集合竞价",Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_BEFORE_DATA_ID, Args:[!this.IsShowBeforeData] }, Checked:this.IsShowBeforeData };
80217
+ aryMenu.splice(4,0,item);
80218
+ }
80219
+
80107
80220
 
80108
80221
  //删除菜单
80109
80222
  for(var i=0;i<aryMenu.length;++i)
@@ -80126,7 +80239,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
80126
80239
  return aryMenu;
80127
80240
  }
80128
80241
 
80129
- this.PopuRightMenuV2=function(data,e)
80242
+ this.PopupRightMenuV2=function(data,e)
80130
80243
  {
80131
80244
  if (!this.JSPopMenu) return;
80132
80245
  var x=data.X, y=data.Y;
@@ -80134,7 +80247,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
80134
80247
  var menuData={ Menu:this.GetRightMenuData(frameID), Position:JSPopMenu.POSITION_ID.RIGHT_MENU_ID };
80135
80248
  menuData.ClickCallback=(data)=>{ this.OnClickRightMenu(data); }
80136
80249
 
80137
- this.PopuMenuByRClick(menuData, x, y);
80250
+ this.PopupMenuByRClick(menuData, x, y);
80138
80251
  }
80139
80252
 
80140
80253
  this.OnWheel=function(e)
@@ -90053,1479 +90166,6 @@ function WaitDialog(divElement)
90053
90166
  }
90054
90167
  }
90055
90168
 
90056
- //K线右键菜单类
90057
- //id:"kline"
90058
- function KLineRightMenu(divElement)
90059
- {
90060
- this.newMethod=IDivDialog; //派生
90061
- this.newMethod(divElement);
90062
- delete this.newMethod;
90063
-
90064
- this.option={};
90065
-
90066
- this.Create = function () {
90067
- var _self = this;
90068
-
90069
- this.ID=Guid();
90070
-
90071
- _self.BindData();
90072
- _self.BindEvent();
90073
- }
90074
- this.BindData=function(){
90075
- var _self = this;
90076
-
90077
- var id=this.DivElement.id;
90078
- var $body = $("#" + id);
90079
-
90080
- $body.find("div[id^='topMenu_']").remove();
90081
- $body.find("div[id^='childMenu_']").remove();
90082
-
90083
- var $topMenu = $("<div />");
90084
- $topMenu.attr("id", "topMenu_"+_self.ID).addClass("context-menu-wrapper topmenu").hide();
90085
- $body.append($topMenu);
90086
-
90087
- var $topTable = $("<table />");
90088
- $topTable.attr({ id: "topTable_" + _self.ID, cellspacing: "0", cellpadding: "0" }).addClass("context-menu");
90089
- $topMenu.append($topTable);
90090
-
90091
- $topTable.append(_self.childrenList(_self.option.data));
90092
-
90093
- for (var i = 0; i < _self.option.data.length; i++) {
90094
- var isHasChildren = typeof _self.option.data[i].children != "undefined";
90095
-
90096
- if (isHasChildren) {
90097
-
90098
- var $childMenu = $("<div />");
90099
- $childMenu.attr({ id: "childMenu_"+_self.ID + i, "data-index": i }).addClass("context-menu-wrapper").hide();
90100
- $body.append($childMenu);
90101
-
90102
- var $childTable = $("<table />");
90103
- $childTable.attr({ id: "childTable_" + _self.ID + i, cellspacing: "0", cellpadding: "0" }).addClass("context-menu");
90104
- $childMenu.append($childTable);
90105
-
90106
- $childTable.append(_self.childrenList(_self.option.data[i].children));
90107
- }
90108
- }
90109
- }
90110
-
90111
- this.Update=function()
90112
- {
90113
- var _self = this;
90114
- //var id=this.DivElement.id;
90115
- //var $body=$("#"+id);
90116
- //
90117
- //var $topTable = $("#topTable_" + _self.ID);
90118
- //$topTable.empty();
90119
- //$topTable.append(_self.childrenList(_self.option.data));
90120
- //
90121
- //for (var i = 0; i < _self.option.data.length; i++) {
90122
- // var isHasChildren = typeof _self.option.data[i].children != "undefined";
90123
- //
90124
- // if (isHasChildren) {
90125
- // var $childTable = $("#childTable_" + _self.ID + i);
90126
- // $childTable.empty();
90127
- // $childTable.append(_self.childrenList(_self.option.data[i].children));
90128
- // }
90129
- //}
90130
-
90131
- _self.BindData();
90132
- _self.BindEvent();
90133
- }
90134
-
90135
- this.childrenList = function(list) {
90136
- var result = [];
90137
-
90138
- for (var i = 0; i < list.length; i++) {
90139
- var isBorder = typeof list[i].isBorder != "undefined" && list[i].isBorder;
90140
-
90141
- var $tr = $("<tr />");
90142
- $tr.addClass("font_Arial context-menu");
90143
- if (isBorder)
90144
- $tr.addClass("border");
90145
-
90146
- var $td1 = $("<td />");
90147
- if(list[i].selected){
90148
- $td1.addClass("spacer context-menu").html("√");
90149
- }else{
90150
- $td1.addClass("spacer context-menu");
90151
- }
90152
-
90153
- var $td2 = $("<td />");
90154
- $td2.addClass("text").html(list[i].text);
90155
-
90156
- var $td3 = $("<td />");
90157
- $td3.addClass("right shortcut");
90158
-
90159
- var $td4 = $("<td />");
90160
- $td4.addClass(typeof list[i].children != "undefined" ? "submenu-arrow" : "context-menu spacer");
90161
-
90162
- $tr.append($td1).append($td2).append($td3).append($td4);
90163
-
90164
- result.push($tr);
90165
- }
90166
- return result;
90167
- }
90168
-
90169
- this.Show=function (obj) {
90170
- var _self = this;
90171
- $.extend(_self.option, obj);
90172
-
90173
- if (!_self.ID) _self.Create(); //判断是否重复创建
90174
- else _self.Update(); //更新菜单状态
90175
-
90176
- var $topMenu = $("#topMenu_"+_self.ID),
90177
- topWidth = $topMenu.outerWidth(),
90178
- topHeight = $topMenu.outerHeight();
90179
-
90180
- var x = _self.option.x,
90181
- y = _self.option.y;
90182
-
90183
- if (topWidth > _self.option.position.X + _self.option.position.W- x) //超过了右边距
90184
- x = x - topWidth;
90185
-
90186
- if (topHeight > _self.option.position.Y +_self.option.position.H - y)//超过了下边距
90187
- y = y - topHeight;
90188
-
90189
- $topMenu.hide();
90190
- $topMenu.css({ position:"absolute",left: x + "px", top: y + "px" }).show();
90191
-
90192
- this.isInit = true;
90193
- }
90194
-
90195
- this.Hide=function () {
90196
- var _self = this;
90197
- if (typeof($)=="undefined") return;
90198
- $("#topMenu_" + _self.ID).hide();
90199
- $("[id^='childMenu_" + _self.ID + "']").hide();
90200
- }
90201
-
90202
- this.BindEvent=function () {
90203
- var _self = this;
90204
- var $childMenu = $("[id^='childMenu_" + _self.ID + "']");
90205
-
90206
- $("#topTable_" + _self.ID).find("tr").mouseenter(function () {
90207
- var $this = $(this),
90208
- index = $this.index(),
90209
- $topMenu = $("#topMenu_" + _self.ID),
90210
- $child = $("#childMenu_" + _self.ID + index),
90211
- trWidth = $this.outerWidth(),
90212
- trHeight = $this.outerHeight();
90213
-
90214
- var left = $topMenu.position().left + trWidth + 1;
90215
- var top = $topMenu.position().top + (trHeight * index);
90216
-
90217
- if (trWidth > _self.option.position.X + _self.option.position.W - left) //超过了右边距
90218
- left = left - trWidth - $topMenu.outerWidth() - 2;
90219
-
90220
- if ($child.outerHeight() > _self.option.position.Y +_self.option.position.H - top)//超过了下边距
90221
- top = $topMenu.position().top + $topMenu.outerHeight() - $child.outerHeight();
90222
-
90223
- $childMenu.hide();
90224
- $child.css({ left: left + "px", top: top + "px" }).show();
90225
- }).mouseleave(function () {
90226
- var index = $(this).index();
90227
- setTimeout(function () {
90228
- if ($("#childMenu_" + _self.ID + index).attr("data-isShow") != 1) {
90229
- $("#childMenu_" + _self.ID + index).hide();
90230
- }
90231
- }, 10)
90232
-
90233
- }).click(function () {
90234
- var $this = $(this);
90235
- var index = $this.index();
90236
-
90237
- if ($.type(_self.option.data[index].click) == "function") {
90238
- _self.option.data[index].click(_self.option.returnData);
90239
- $this.hide();
90240
- }
90241
- }).contextmenu(function()
90242
- {
90243
- return false; //屏蔽系统右键菜单
90244
- });
90245
-
90246
-
90247
- $childMenu.mouseenter(function () {
90248
- $(this).attr("data-isShow", "1");
90249
- }).mouseleave(function () {
90250
- $(this).attr("data-isShow", "0");
90251
- }).contextmenu(function()
90252
- {
90253
- return false; //屏蔽系统右键菜单
90254
- });
90255
-
90256
- $childMenu.find("tr").click(function () {
90257
- var $this = $(this);
90258
- var divIndex = parseInt($this.closest("div").attr("data-index"));
90259
- var trIndex = $this.index();
90260
-
90261
- if ($.type(_self.option.data[divIndex].children[trIndex].click) == "function") {
90262
- _self.option.data[divIndex].children[trIndex].click(_self.option.windowIndex || 1);
90263
- $childMenu.hide();
90264
- }
90265
- });
90266
- }
90267
-
90268
- this.GetPeriod=function (chart)
90269
- {
90270
- var data=
90271
- [
90272
- {
90273
- text: "日线", Value:0,
90274
- click: function () { chart.ChangePeriod(0); }
90275
- },
90276
- {
90277
- text: "周线",Value:1,
90278
- click: function () { chart.ChangePeriod(1); }
90279
- },
90280
- {
90281
- text: "双周线",Value:21,
90282
- click: function () { chart.ChangePeriod(21); }
90283
- },
90284
- {
90285
- text: "月线",Value:2,
90286
- click: function () { chart.ChangePeriod(2); }
90287
- },
90288
- {
90289
- text: "季线",Value:9,
90290
- click: function () { chart.ChangePeriod(9); }
90291
- },
90292
- {
90293
- text: "半年",Value:22,
90294
- click: function () { chart.ChangePeriod(22); }
90295
- },
90296
- {
90297
- text: "年线",Value:3,
90298
- click: function () { chart.ChangePeriod(3); }
90299
- },
90300
- {
90301
- text: "1分",Value:4,
90302
- click: function () { chart.ChangePeriod(4); }
90303
- },
90304
- {
90305
- text: "5分",Value:5,
90306
- click: function () { chart.ChangePeriod(5); }
90307
- },
90308
- {
90309
- text: "15分",Value:6,
90310
- click: function () { chart.ChangePeriod(6); }
90311
- },
90312
- {
90313
- text: "30分",Value:7,
90314
- click: function () { chart.ChangePeriod(7); }
90315
- },
90316
- {
90317
- text: "60分",Value:8,
90318
- click: function () { chart.ChangePeriod(8); }
90319
- },
90320
- {
90321
- text: "2小时",Value:11,
90322
- click: function () { chart.ChangePeriod(11); }
90323
- },
90324
- {
90325
- text: "4小时",Value:12,
90326
- click: function () { chart.ChangePeriod(12); }
90327
- },
90328
- {
90329
- text: "分笔",Value:10,
90330
- click: function () { chart.ChangePeriod(10); }
90331
- },
90332
- {
90333
- text: "自定义周期:3分钟",Value:20003,
90334
- click: function () { chart.ChangePeriod(20003); }
90335
- },
90336
- {
90337
- text: "自定义周期:35分钟",Value:20035,
90338
- click: function () { chart.ChangePeriod(20035); }
90339
- },
90340
- {
90341
- text: "自定义周期:8日",Value:40008,
90342
- click: function () { chart.ChangePeriod(40008); }
90343
- }
90344
- ];
90345
-
90346
- for(var i in data)
90347
- {
90348
- var item=data[i];
90349
- if (item.Value==chart.Period)
90350
- {
90351
- item.selected=true;
90352
- break;
90353
- }
90354
- }
90355
-
90356
- return data;
90357
- }
90358
-
90359
- this.GetRight=function(chart)
90360
- {
90361
- var data=
90362
- [
90363
- {
90364
- text: "不复权",
90365
- click: function () { chart.ChangeRight(0); }
90366
- },
90367
- {
90368
- text: "前复权",
90369
- click: function () { chart.ChangeRight(1); }
90370
- },
90371
- {
90372
- text: "后复权",
90373
- click: function () { chart.ChangeRight(2); }
90374
- }
90375
- ];
90376
-
90377
- if (chart.Right>=0 && chart.Right<data.length) data[chart.Right].selected=true;
90378
-
90379
- return data;
90380
- }
90381
-
90382
- //指标
90383
- this.GetIndex=function (chart)
90384
- {
90385
- return [{
90386
- text: "均线",
90387
- click: function (windowIndex) {
90388
- chart.ChangeIndex(windowIndex, '均线')
90389
- }
90390
- }, {
90391
- text: "BOLL",
90392
- click: function (windowIndex) {
90393
- chart.ChangeIndex(windowIndex, 'BOLL')
90394
- },
90395
- isBorder:true
90396
- }, {
90397
- text: "MACD",
90398
- click: function (windowIndex) {
90399
- chart.ChangeIndex(windowIndex, 'MACD')
90400
- }
90401
- }, {
90402
- text: "KDJ",
90403
- click: function (windowIndex) {
90404
- chart.ChangeIndex(windowIndex, 'KDJ')
90405
- }
90406
- }, {
90407
- text: "VOL",
90408
- click: function (windowIndex) {
90409
- chart.ChangeIndex(windowIndex, 'VOL')
90410
- }
90411
- }, {
90412
- text: "RSI",
90413
- click: function (windowIndex) {
90414
- chart.ChangeIndex(windowIndex, 'RSI')
90415
- }
90416
- }, {
90417
- text: "BRAR",
90418
- click: function (windowIndex) {
90419
- chart.ChangeIndex(windowIndex, 'BRAR')
90420
- }
90421
- }, {
90422
- text: "WR",
90423
- click: function (windowIndex) {
90424
- chart.ChangeIndex(windowIndex, 'WR')
90425
- }
90426
- }, {
90427
- text: "BIAS",
90428
- click: function (windowIndex) {
90429
- chart.ChangeIndex(windowIndex, 'BIAS')
90430
- }
90431
- }, {
90432
- text: "OBV",
90433
- click: function (windowIndex) {
90434
- chart.ChangeIndex(windowIndex, 'OBV')
90435
- }
90436
- }, {
90437
- text: "DMI",
90438
- click: function (windowIndex) {
90439
- chart.ChangeIndex(windowIndex, 'DMI')
90440
- }
90441
- }, {
90442
- text: "CR",
90443
- click: function (windowIndex) {
90444
- chart.ChangeIndex(windowIndex, 'CR')
90445
- }
90446
- }, {
90447
- text: "PSY",
90448
- click: function (windowIndex) {
90449
- chart.ChangeIndex(windowIndex, 'PSY')
90450
- }
90451
- }, {
90452
- text: "CCI",
90453
- click: function (windowIndex) {
90454
- chart.ChangeIndex(windowIndex, 'CCI')
90455
- }
90456
- }, {
90457
- text: "DMA",
90458
- click: function (windowIndex) {
90459
- chart.ChangeIndex(windowIndex, 'DMA')
90460
- }
90461
- }, {
90462
- text: "TRIX",
90463
- click: function (windowIndex) {
90464
- chart.ChangeIndex(windowIndex, 'TRIX')
90465
- }
90466
- }, {
90467
- text: "VR",
90468
- click: function (windowIndex) {
90469
- chart.ChangeIndex(windowIndex, 'VR')
90470
- }
90471
- }, {
90472
- text: "EMV",
90473
- click: function (windowIndex) {
90474
- chart.ChangeIndex(windowIndex, 'EMV')
90475
- }
90476
- }, {
90477
- text: "ROC",
90478
- click: function (windowIndex) {
90479
- chart.ChangeIndex(windowIndex, 'ROC')
90480
- }
90481
- }, {
90482
- text: "MIM",
90483
- click: function (windowIndex) {
90484
- chart.ChangeIndex(windowIndex, 'MIM')
90485
- }
90486
- }, {
90487
- text: "FSL",
90488
- click: function (windowIndex) {
90489
- chart.ChangeIndex(windowIndex, 'FSL')
90490
- }
90491
- } ]
90492
- }
90493
-
90494
- //五彩K线
90495
- this.GetColorIndex=function (chart)
90496
- {
90497
- var data=
90498
- [
90499
- {
90500
- text: "十字星",
90501
- click: function (windowIndex) { chart.ChangeInstructionIndex('五彩K线-十字星') }
90502
- },
90503
- {
90504
- text: "早晨之星",
90505
- click: function (windowIndex) { chart.ChangeInstructionIndex('五彩K线-早晨之星') },
90506
- },
90507
- {
90508
- text: "垂死十字",
90509
- click: function (windowIndex) { chart.ChangeInstructionIndex('五彩K线-垂死十字') },
90510
- },
90511
- {
90512
- text: "三只乌鸦",
90513
- click: function (windowIndex) { chart.ChangeInstructionIndex('五彩K线-三只乌鸦') }
90514
- },
90515
- {
90516
- text: "光脚阴线",
90517
- click: function (windowIndex) { chart.ChangeInstructionIndex('五彩K线-光脚阴线') }
90518
- },
90519
- {
90520
- text: "黄昏之星",
90521
- click: function (windowIndex) { chart.ChangeInstructionIndex('五彩K线-黄昏之星') }
90522
- }
90523
- ];
90524
-
90525
- if (chart.ColorIndex)
90526
- {
90527
- data[data.length-1].isBorder=true;
90528
- data.push(
90529
- {
90530
- text: "删除五彩K线",
90531
- click: function (windowIndex) { chart.CancelInstructionIndex() }
90532
- });
90533
- }
90534
-
90535
- return data;
90536
- }
90537
-
90538
- //专家系统
90539
- this.GetTradeIndex=function(chart)
90540
- {
90541
- var data=
90542
- [
90543
- {
90544
- text: "BIAS",
90545
- click: function (windowIndex) { chart.ChangeInstructionIndex('交易系统-BIAS') }
90546
- },
90547
- {
90548
- text: "CCI",
90549
- click: function (windowIndex) { chart.ChangeInstructionIndex('交易系统-CCI') }
90550
- },
90551
- {
90552
- text: "DMI",
90553
- click: function (windowIndex) { chart.ChangeInstructionIndex('交易系统-DMI') }
90554
- },
90555
- {
90556
- text: "KD",
90557
- click: function (windowIndex) { chart.ChangeInstructionIndex('交易系统-KD') }
90558
- },
90559
- {
90560
- text: "BOLL",
90561
- click: function (windowIndex) { chart.ChangeInstructionIndex('交易系统-BOLL') }
90562
- },
90563
- {
90564
- text: "KDJ",
90565
- click: function (windowIndex) { chart.ChangeInstructionIndex('交易系统-KDJ') }
90566
- }
90567
- ];
90568
-
90569
- if (chart.TradeIndex)
90570
- {
90571
- data[data.length-1].isBorder=true;
90572
- data.push(
90573
- {
90574
- text: "删除专家系统",
90575
- click: function (windowIndex) { chart.CancelInstructionIndex()}
90576
- });
90577
- }
90578
- return data;
90579
- }
90580
-
90581
- //叠加
90582
- this.GetOverlay=function (chart)
90583
- {
90584
- var data=
90585
- [
90586
- {
90587
- text: "上证指数",
90588
- click: function () { chart.OverlaySymbol('000001.sh'); }
90589
- },
90590
- {
90591
- text: "深证成指",
90592
- click: function () { chart.OverlaySymbol('399001.sz'); }
90593
- },
90594
- {
90595
- text: "中小板指",
90596
- click: function () { chart.OverlaySymbol('399005.sz'); }
90597
- },
90598
- {
90599
- text: "创业板指",
90600
- click: function () { chart.OverlaySymbol('399006.sz'); }
90601
- },
90602
- {
90603
- text: "沪深300",
90604
- click: function () { chart.OverlaySymbol('000300.sh'); },
90605
- }
90606
- ];
90607
-
90608
- for(var i in chart.OverlayChartPaint)
90609
- {
90610
- var item=chart.OverlayChartPaint[i];
90611
- var symbol=item.Symbol;
90612
- const mapSymbol=new Map([['000001.sh',0],['399001.sz',1],['399005.sz',2],['399006.sz',3],['000300.sh',4]]);
90613
- if (mapSymbol.has(symbol))
90614
- {
90615
- var menuItem=data[mapSymbol.get(symbol)];
90616
- let delSymbol=symbol;
90617
- menuItem.selected=true;
90618
- menuItem.click=function () { chart.DeleteOverlaySymbol(delSymbol); };
90619
- }
90620
- }
90621
-
90622
- if (chart.OverlayChartPaint && chart.OverlayChartPaint.length>0)
90623
- {
90624
- data[data.length-1].isBorder=true;
90625
- data.push(
90626
- {
90627
- text: "取消叠加",
90628
- click: function () { chart.ClearOverlaySymbol();}
90629
- }
90630
- );
90631
- }
90632
-
90633
- return data;
90634
- }
90635
-
90636
- //K线类型设置
90637
- this.GetKLineType=function(chart)
90638
- {
90639
- var data=
90640
- [
90641
- {
90642
- text: "K线(空心阳线)",
90643
- click: function () { chart.ChangeKLineDrawType(3);}
90644
- },
90645
- {
90646
- text: "K线(实心阳线)",
90647
- click: function () { chart.ChangeKLineDrawType(0); }
90648
- },
90649
- {
90650
- text: "美国线",
90651
- click: function () { chart.ChangeKLineDrawType(2, true ,{ IsThinAKBar:false }); }
90652
- },
90653
- {
90654
- text: "收盘线",
90655
- click: function () { chart.ChangeKLineDrawType(1); }
90656
- },
90657
- {
90658
- text: "收盘面积",
90659
- click: function () { chart.ChangeKLineDrawType(4); }
90660
- },
90661
- {
90662
- text: "K线(空心阳线阴线)",
90663
- click: function () { chart.ChangeKLineDrawType(6);}
90664
- },
90665
- {
90666
- text: "Heikin Ashi",
90667
- click: function () { chart.ChangeKLineDrawType(11);}
90668
- },
90669
- {
90670
- text: "Line Break",
90671
- click: function () { chart.ChangeKLineDrawType(12);}
90672
- },
90673
- {
90674
- text: "High-low",
90675
- click: function () { chart.ChangeKLineDrawType(13);}
90676
- },
90677
- {
90678
- text: "HLC Area",
90679
- click: function () { chart.ChangeKLineDrawType(15);}
90680
- }
90681
- ];
90682
-
90683
- switch(chart.KLineDrawType)
90684
- {
90685
- case 0:
90686
- data[1].selected=true;
90687
- break;
90688
- case 1:
90689
- data[3].selected=true;
90690
- break;
90691
- case 2:
90692
- data[2].selected=true;
90693
- break;
90694
- case 3:
90695
- data[0].selected=true;
90696
- break;
90697
- case 4:
90698
- data[4].selected=true;
90699
- break;
90700
- case 6:
90701
- data[5].selected=true;
90702
- break;
90703
- case 11:
90704
- data[6].selected=true;
90705
- break;
90706
- case 12:
90707
- data[7].selected=true;
90708
- break;
90709
- case 13:
90710
- data[8].selected=true;
90711
- break;
90712
- case 15:
90713
- data[9].selected=true;
90714
- break;
90715
- }
90716
- return data;
90717
- }
90718
-
90719
- //指标窗口个数
90720
- this.GetIndexWindowCount=function(chart)
90721
- {
90722
- var data=
90723
- [
90724
- {
90725
- text: "1个窗口",
90726
- click: function () { chart.ChangeIndexWindowCount(1); }
90727
- },
90728
- {
90729
- text: "2个窗口",
90730
- click: function () { chart.ChangeIndexWindowCount(2); }
90731
- },
90732
- {
90733
- text: "3个窗口",
90734
- click: function () { chart.ChangeIndexWindowCount(3); }
90735
- },
90736
- {
90737
- text: "4个窗口",
90738
- click: function () { chart.ChangeIndexWindowCount(4); }
90739
- },
90740
- {
90741
- text: "5个窗口",
90742
- click: function () { chart.ChangeIndexWindowCount(5); }
90743
- }
90744
- ];
90745
-
90746
- var count=chart.Frame.SubFrame.length;
90747
- if ((count-1)>=0 && (count-1)<data.length) data[count-1].selected=true; //选中
90748
-
90749
- return data;
90750
- }
90751
-
90752
- //坐标类型
90753
- this.GetCoordinateType=function(chart)
90754
- {
90755
- var data=
90756
- [
90757
- {
90758
- text: "普通坐标",
90759
- click: function () { chart.ChangeCoordinateType( {Type:0} ); }
90760
- },
90761
- {
90762
- text: "百分比坐标",
90763
- click: function () { chart.ChangeCoordinateType( {Type:1} ); }
90764
- },
90765
- {
90766
- text: "反转坐标",
90767
- click: function () { chart.ChangeCoordinateType( { IsReverse:true } ); }
90768
- },
90769
- {
90770
- text: "对数坐标",
90771
- click: function () { chart.ChangeCoordinateType( {Type:2} ); }
90772
- },
90773
- {
90774
- text: "等比坐标",
90775
- click: function () { chart.ChangeCoordinateType( {Type:3} ); }
90776
- },
90777
- {
90778
- text: "等分坐标",
90779
- click: function () { chart.ChangeCoordinateType( {Type:4} ); }
90780
- },
90781
- {
90782
- text: "黄金分割",
90783
- click: function () { chart.ChangeCoordinateType( {Type:5} ); }
90784
- }
90785
- ];
90786
-
90787
- if (chart.Frame && chart.Frame.SubFrame && chart.Frame.SubFrame.length>0)
90788
- {
90789
- if (chart.Frame.SubFrame[0].Frame.CoordinateType==1)
90790
- {
90791
- data[2].selected=true;
90792
- data[2].click=function() { chart.ChangeCoordinateType( { IsReverse:false } ); } //取消反转
90793
- }
90794
-
90795
- if (chart.Frame.SubFrame[0].Frame.YSplitOperator.CoordinateType==1) data[1].selected=true; //百分比
90796
- else if (chart.Frame.SubFrame[0].Frame.YSplitOperator.CoordinateType==0) data[0].selected=true; //普通坐标
90797
- else if (chart.Frame.SubFrame[0].Frame.YSplitOperator.CoordinateType==2) data[3].selected=true; //对数
90798
- else if (chart.Frame.SubFrame[0].Frame.YSplitOperator.CoordinateType==3) data[4].selected=true; //等比坐标
90799
- else if (chart.Frame.SubFrame[0].Frame.YSplitOperator.CoordinateType==4) data[5].selected=true; //等分坐标
90800
- else if (chart.Frame.SubFrame[0].Frame.YSplitOperator.CoordinateType==5) data[6].selected=true; //黄金分割
90801
- }
90802
-
90803
- return data;
90804
- }
90805
-
90806
- //拖拽模式
90807
- this.GetDragModeType=function(chart)
90808
- {
90809
- var data=
90810
- [
90811
- {
90812
- text: "禁止拖拽",
90813
- click: function () { chart.DragMode=0; }
90814
- },
90815
- {
90816
- text: "启动拖拽",
90817
- click: function () { chart.DragMode=1; }
90818
- },
90819
- {
90820
- text: "区间选择",
90821
- click: function () { chart.DragMode=2; }
90822
- }
90823
- ];
90824
-
90825
- if (chart.DragMode>=0 && chart.DragMode<data.length) data[chart.DragMode].selected=true; //选中
90826
-
90827
- return data;
90828
- }
90829
-
90830
- //工具
90831
- this.GetTools=function(chart)
90832
- {
90833
- var data=[];
90834
- var drawTools=chart.GetExtendChartByClassName('DrawToolsButton');
90835
- if (drawTools)
90836
- {
90837
- data.push(
90838
- {
90839
- text: "关闭画图工具",
90840
- click: function ()
90841
- {
90842
- var toolsWidth=drawTools.Chart.Width;
90843
- var toolsIndex=parseInt(drawTools.Index);
90844
- for(var i=toolsIndex+1; i<chart.ExtendChartPaint.length; ++i) //在画图工具后面创建的需要减去工具的宽度
90845
- {
90846
- var item=chart.ExtendChartPaint[i];
90847
- if (item.ClassName=='StockChip')
90848
- {
90849
- item.Left-=toolsWidth;
90850
- }
90851
- }
90852
- chart.DeleteExtendChart(drawTools);
90853
- chart.Frame.ChartBorder.Right-=toolsWidth;
90854
- chart.SetSizeChange(true);
90855
- chart.Draw();
90856
- }
90857
- }
90858
- );
90859
- }
90860
- else
90861
- {
90862
- data.push(
90863
- {
90864
- text: "画图工具",
90865
- click: function () {
90866
- var option={Name:'画图工具', Top:chart.Frame.ChartBorder.Top };
90867
- var extendChart=chart.CreateExtendChart(option.Name, option); //创建扩展图形
90868
- chart.SetSizeChange(true);
90869
- chart.Draw();
90870
- }
90871
- }
90872
- );
90873
- }
90874
-
90875
- var StockChip=chart.GetExtendChartByClassName('StockChip');
90876
- if (StockChip)
90877
- {
90878
- data.push(
90879
- {
90880
- text: "关闭移动筹码",
90881
- click: function ()
90882
- {
90883
- var chipWidth=StockChip.Chart.Width;
90884
- var chipIndex=parseInt(StockChip.Index);
90885
- for(var i=chipIndex+1; i<chart.ExtendChartPaint.length; ++i) //在筹码后面创建的需要筹码的宽度
90886
- {
90887
- var item=chart.ExtendChartPaint[i];
90888
- if (item.ClassName=='DrawToolsButton')
90889
- {
90890
- item.Left-=chipWidth;
90891
- }
90892
- }
90893
- chart.DeleteExtendChart(StockChip);
90894
- chart.Frame.ChartBorder.Right-=chipWidth;
90895
- chart.SetSizeChange(true);
90896
- chart.Draw();
90897
- }
90898
-
90899
- }
90900
- );
90901
- }
90902
- else
90903
- {
90904
- data.push(
90905
- {
90906
- text: "移动筹码",
90907
- click: function () {
90908
- var option={Name:'筹码分布', ShowType:1, Width:230 };
90909
- var extendChart=chart.CreateExtendChart(option.Name, option); //创建扩展图形
90910
- chart.SetSizeChange(true);
90911
- chart.Draw();
90912
- }
90913
- }
90914
- );
90915
- }
90916
-
90917
- return data;
90918
- }
90919
-
90920
- //缺口提示
90921
- this.GetPriceGap=function(chart)
90922
- {
90923
- var klineChart=chart.ChartPaint[0];
90924
- var priceGap=klineChart.PriceGap;
90925
- var data=
90926
- [
90927
- {
90928
- text: "显示1个缺口",
90929
- click: function () { chart.ChangePriceGap({ Enable:true, Count:1 }); }
90930
- },
90931
- {
90932
- text: "显示2个缺口",
90933
- click: function () { chart.ChangePriceGap({ Enable:true, Count:2 }); }
90934
- },
90935
- {
90936
- text: "显示3个缺口",
90937
- click: function () { chart.ChangePriceGap({ Enable:true, Count:3 }); }
90938
- },
90939
- {
90940
- text: "隐藏缺口",
90941
- click: function () { chart.ChangePriceGap({ Enable:false }); }
90942
- }
90943
- ];
90944
-
90945
- if (!priceGap.Enable || priceGap.Count<=0)
90946
- {
90947
- data[data.length-1].selected=true; //选中
90948
- }
90949
- else if (priceGap.Enable && priceGap.Count>0)
90950
- {
90951
- var index=priceGap.Count-1;
90952
- if (index>data.length-2) index=data.length-2;
90953
- data[index].selected=true; //选中
90954
- }
90955
-
90956
- return data;
90957
- }
90958
-
90959
- this.GetBGSplit=function(chart)
90960
- {
90961
- var data=
90962
- [
90963
- {
90964
- text: "启用",
90965
- click: function ()
90966
- {
90967
- chart.CreateExtendChart("SessionBreaksPaint", { });
90968
- chart.Draw();
90969
- }
90970
- },
90971
- {
90972
- text: "关闭",
90973
- click: function ()
90974
- {
90975
- var finder=chart.GetExtendChartByClassName("SessionBreaksPaint");
90976
- if (finder)
90977
- {
90978
- chart.DeleteExtendChartByID(finder.Chart.ID);
90979
- chart.Draw();
90980
- }
90981
- }
90982
- },
90983
- ];
90984
-
90985
- var finder=chart.GetExtendChartByClassName("SessionBreaksPaint");
90986
- if (finder) data[0].selected=true;
90987
- else data[1].selected=true;
90988
-
90989
- return data;
90990
- }
90991
-
90992
-
90993
- this.GetKLineInfo=function(chart)
90994
- {
90995
- var setInfo=new Set();
90996
- for(var i in chart.ChartInfo)
90997
- {
90998
- var item=chart.ChartInfo[i];
90999
- setInfo.add(item.ClassName);
91000
- }
91001
-
91002
- var aryKLineInfo=["公告","业绩预告","调研","大宗交易","龙虎榜","互动易"]
91003
-
91004
- var data=[];
91005
- for(var i in aryKLineInfo)
91006
- {
91007
- var infoName=aryKLineInfo[i];
91008
- var classInfo=JSKLineInfoMap.GetClassInfo(infoName);
91009
- if (!classInfo) continue;
91010
-
91011
- var item=this.CreateKlineInfoItem(infoName, setInfo.has(classInfo.ClassName), chart);
91012
- data.push(item);
91013
- }
91014
-
91015
- if (chart.ChartInfo.length>0)
91016
- {
91017
- data[data.length-1].isBorder=true;
91018
- var item={ text:'删除所有', click:function() { chart.ClearKLineInfo()} };
91019
- data.push(item);
91020
-
91021
- }
91022
-
91023
- return data;
91024
- }
91025
-
91026
- this.CreateKlineInfoItem=function(infoName,bExist,chart)
91027
- {
91028
- var item=
91029
- {
91030
- text:infoName,
91031
- selected:bExist
91032
- }
91033
-
91034
- if (bExist) item.click=function() { chart.DeleteKLineInfo(infoName) };
91035
- else item.click=function() { chart.AddKLineInfo(infoName,true) }
91036
-
91037
- return item;
91038
- }
91039
-
91040
- this.DoModal=function(event)
91041
- {
91042
- var chart=event.data.Chart;
91043
- var rightMenu=chart.RightMenu;
91044
- var x = event.offsetX;
91045
- var y = event.offsetY;
91046
-
91047
- var dataList=[{
91048
- text: "分析周期",
91049
- children: this.GetPeriod(chart)
91050
- },
91051
- {
91052
- text: "复权处理",
91053
- children: this.GetRight(chart)
91054
- },
91055
- {
91056
- text: "指标切换",
91057
- children: this.GetIndex(chart)
91058
- },
91059
- {
91060
- text:"五彩K线",
91061
- children: this.GetColorIndex(chart)
91062
- },
91063
- {
91064
- text:'专家系统',
91065
- children: this.GetTradeIndex(chart)
91066
- },
91067
- {
91068
- text:'信息地雷',
91069
- children: this.GetKLineInfo(chart)
91070
- },
91071
- {
91072
- text:'缺口提示',
91073
- children: this.GetPriceGap(chart)
91074
- },
91075
- {
91076
- text: "叠加品种",
91077
- children: this.GetOverlay(chart)
91078
- },
91079
- {
91080
- text:'主图线型',
91081
- children: this.GetKLineType(chart)
91082
- },
91083
- {
91084
- text:"坐标类型",
91085
- children:this.GetCoordinateType(chart)
91086
- },
91087
- {
91088
- text:'指标窗口个数',
91089
- children: this.GetIndexWindowCount(chart)
91090
- },
91091
- {
91092
- text:'鼠标拖拽',
91093
- children: this.GetDragModeType(chart)
91094
- },
91095
- {
91096
- text:"工具",
91097
- children:this.GetTools(chart)
91098
- },
91099
- {
91100
- text:"背景分割",
91101
- children:this.GetBGSplit(chart)
91102
- }
91103
- ];
91104
-
91105
- var upperSymbol=chart.Symbol.toUpperCase();
91106
- if(MARKET_SUFFIX_NAME.IsSHSZIndex(chart.Symbol) || MARKET_SUFFIX_NAME.IsBIT(upperSymbol))
91107
- {
91108
- dataList.splice(1,1);
91109
- }
91110
-
91111
- var identify=event.data.FrameID;
91112
- var overlayIndex=this.GetOverlayIndex(chart,identify);
91113
- if (overlayIndex && overlayIndex.length>0)
91114
- {
91115
- var delOverlayIndexMenu={ text:'删除叠加指标', children:this.GetDeleteOverlayIndex(chart,overlayIndex) }
91116
- dataList.splice(3,0,delOverlayIndexMenu);
91117
- }
91118
-
91119
- JSConsole.Chart.Log('[KLineRightMenu::DoModal]',identify);
91120
- rightMenu.Show({
91121
- windowIndex :identify,
91122
- x:x+chart.UIElement.offsetLeft,
91123
- y:y+chart.UIElement.offsetTop,
91124
- position:chart.Frame.Position,
91125
- data:dataList
91126
- })
91127
-
91128
- $(document).click(function () {
91129
- rightMenu.Hide();
91130
- });
91131
- }
91132
-
91133
- this.GetOverlayIndex=function(chart, windowsIndex)
91134
- {
91135
- if (windowsIndex>=chart.Frame.SubFrame.length || windowsIndex<0) return [];
91136
-
91137
- var result=[];
91138
- var item=chart.Frame.SubFrame[windowsIndex];
91139
- for(var i in item.OverlayIndex)
91140
- {
91141
- var overlayItem=item.OverlayIndex[i];
91142
- result.push({Name:overlayItem.Script.Name, Identify:overlayItem.Identify});
91143
- }
91144
-
91145
- return result;
91146
- }
91147
-
91148
- this.GetDeleteOverlayIndex=function(chart,overlayIndex)
91149
- {
91150
- var data=[];
91151
- for(var i in overlayIndex)
91152
- {
91153
- let identify=overlayIndex[i].Identify;
91154
- data.push({text:overlayIndex[i].Name, click:function()
91155
- {
91156
- chart.DeleteOverlayWindowsIndex(identify)
91157
- }});
91158
- }
91159
-
91160
- return data;
91161
- }
91162
- }
91163
-
91164
- //K线区间选择右键菜单
91165
- function KLineSelectRightMenu(divElement)
91166
- {
91167
- this.newMethod=KLineRightMenu; //派生
91168
- this.newMethod(divElement);
91169
- delete this.newMethod;
91170
-
91171
- this.DoModal=function(event)
91172
- {
91173
- var chart=event.data.Chart;
91174
- var rightMenu=this;
91175
- var x = event.data.X;
91176
- var y = event.data.Y;
91177
-
91178
- var dataList=
91179
- [
91180
- {
91181
- text: "区间统计",
91182
- click: function ()
91183
- {
91184
- JSConsole.Chart.Log('[KLineSelectRightMenu::click] 区间统计');
91185
- rightMenu.Hide();
91186
- var dialog=new KLineSelectRectDialog(divElement);
91187
- dialog.DoModal(event);
91188
- }
91189
- },
91190
- {
91191
- text:'区间放大',
91192
- click:function()
91193
- {
91194
- JSConsole.Chart.Log('[KLineSelectRightMenu::click] 区间放大');
91195
- var chart=event.data.Chart;
91196
- chart.ShowSelectData(event.data.SelectData);
91197
- }
91198
- }
91199
- ];
91200
-
91201
- rightMenu.Show({
91202
- x:x,
91203
- y:y,
91204
- position:chart.Frame.Position,
91205
- data:dataList
91206
- });
91207
- }
91208
-
91209
- this.Show=function (obj)
91210
- {
91211
- var _self = this;
91212
- $.extend(_self.option, obj);
91213
-
91214
- //判断是否重复创建
91215
- if (!_self.ID) _self.Create();
91216
- //判断下如果DOM没了需要重新创建
91217
- var divIdName='topMenu_'+_self.ID;
91218
- var divDom=document.getElementById(divIdName);
91219
- if (!divDom) _self.Create();
91220
-
91221
- var $topMenu = $("#topMenu_"+_self.ID),
91222
- topWidth = $topMenu.outerWidth(),
91223
- topHeight = $topMenu.outerHeight();
91224
-
91225
- $topMenu.contextmenu(function()
91226
- {
91227
- return false; //屏蔽系统右键菜单
91228
- });
91229
-
91230
- var x = _self.option.x,
91231
- y = _self.option.y;
91232
-
91233
- if (topWidth > _self.option.position.X + _self.option.position.W- x) //超过了右边距
91234
- x = x - topWidth;
91235
-
91236
- if (topHeight > _self.option.position.Y +_self.option.position.H - y)//超过了下边距
91237
- y = y - topHeight;
91238
-
91239
- $topMenu.hide();
91240
- $topMenu.css({ position:"absolute",left: x + "px", top: y + "px" }).show();
91241
-
91242
- $("#topMenu_" + _self.ID).find("tr").show(); //把菜单列表显示
91243
-
91244
- this.isInit = true;
91245
- }
91246
- }
91247
-
91248
- //分钟数据右键菜单
91249
- function MinuteRightMenu(divElement)
91250
- {
91251
- this.newMethod=KLineRightMenu; //派生
91252
- this.newMethod(divElement);
91253
- delete this.newMethod;
91254
-
91255
- this.DoModal=function(event)
91256
- {
91257
- var chart=event.data.Chart;
91258
- var rightMenu=chart.RightMenu;
91259
- var x = event.offsetX;
91260
- var y = event.offsetY;
91261
-
91262
- var dataList=
91263
- [
91264
- {
91265
- text: "叠加品种",
91266
- children: this.GetOverlay(chart)
91267
- },
91268
- {
91269
- text: "多日分时图",
91270
- children: this.GetDayCount(chart)
91271
- },
91272
- {
91273
- text:'指标窗口个数',
91274
- children: this.GetIndexWindowCount(chart)
91275
- },
91276
- {
91277
- text: "副图指标切换",
91278
- children: this.GetIndex(chart)
91279
- },
91280
- {
91281
- text:"区间选择",
91282
- children:this.GetSelectRect(chart)
91283
- },
91284
-
91285
- ];
91286
-
91287
- var symbol=chart.Symbol;
91288
- if (MARKET_SUFFIX_NAME.IsSHSZStockA(symbol))
91289
- {
91290
- dataList.push({text:'集合竞价',children: this.GetShowBeforeData(chart)});
91291
- }
91292
-
91293
- dataList.push({text:"工具", children:this.GetTools(chart)});
91294
-
91295
- var identify=event.data.FrameID;
91296
- var overlayIndex=this.GetOverlayIndex(chart,identify);
91297
- if (overlayIndex && overlayIndex.length>0)
91298
- {
91299
- var delOverlayIndexMenu={ text:'删除叠加指标', children:this.GetDeleteOverlayIndex(chart,overlayIndex) }
91300
- dataList.splice(3,0,delOverlayIndexMenu);
91301
- }
91302
-
91303
- var identify=event.data.FrameID;
91304
- JSConsole.Chart.Log('[MinuteRightMenu::DoModal]',identify);
91305
- rightMenu.Show({
91306
- windowIndex :identify,
91307
- x:x+chart.UIElement.offsetLeft,
91308
- y:y+chart.UIElement.offsetTop,
91309
- position:chart.Frame.Position,
91310
- data:dataList
91311
- })
91312
-
91313
- $(document).click(function () {
91314
- rightMenu.Hide();
91315
- });
91316
- }
91317
-
91318
- this.GetDayCount=function(chart)
91319
- {
91320
- var data=
91321
- [
91322
- {
91323
- text: "当日分时图",
91324
- click: function () { chart.ChangeDayCount(1); },
91325
- isBorder:true
91326
- },
91327
- {
91328
- text: "最近2日",
91329
- click: function () { chart.ChangeDayCount(2); }
91330
- },
91331
- {
91332
- text: "最近3日",
91333
- click: function () { chart.ChangeDayCount(3); }
91334
- },
91335
- {
91336
- text: "最近4日",
91337
- click: function () { chart.ChangeDayCount(4); }
91338
- },
91339
- {
91340
- text: "最近5日",
91341
- click: function () { chart.ChangeDayCount(5); }
91342
- },
91343
- {
91344
- text: "最近6日",
91345
- click: function () { chart.ChangeDayCount(6); }
91346
- }
91347
- ];
91348
-
91349
- if ((chart.DayCount-1)>=0 && (chart.DayCount-1)<data.length) data[chart.DayCount-1].selected=true;
91350
-
91351
- return data;
91352
- }
91353
-
91354
- this.GetIndex=function (chart)
91355
- {
91356
- var data=
91357
- [
91358
- {
91359
- text: "MACD",
91360
- click: function (windowIndex) { chart.ChangeIndex(windowIndex, 'MACD') }
91361
- },
91362
- {
91363
- text: "DMI",
91364
- click: function (windowIndex) { chart.ChangeIndex(windowIndex, 'DMI') }
91365
- },
91366
- {
91367
- text: "DMA",
91368
- click: function (windowIndex) { chart.ChangeIndex(windowIndex, 'DMA') }
91369
- },
91370
- {
91371
- text: "BRAR",
91372
- click: function (windowIndex) { chart.ChangeIndex(windowIndex, 'BRAR') }
91373
- },
91374
- {
91375
- text: "KDJ",
91376
- click: function (windowIndex) { chart.ChangeIndex(windowIndex, 'KDJ') }
91377
- },
91378
- {
91379
- text: "RSI",
91380
- click: function (windowIndex) { chart.ChangeIndex(windowIndex, 'RSI') }
91381
- },
91382
- {
91383
- text: "WR",
91384
- click: function (windowIndex) { chart.ChangeIndex(windowIndex, 'WR') }
91385
- },
91386
- {
91387
- text: "CCI",
91388
- click: function (windowIndex) { chart.ChangeIndex(windowIndex, 'CCI') }
91389
- },
91390
- {
91391
- text: "TRIX",
91392
- click: function (windowIndex) { chart.ChangeIndex(windowIndex, 'TRIX') }
91393
- }
91394
- ];
91395
-
91396
- return data;
91397
- }
91398
-
91399
- this.GetShowBeforeData=function(chart) //是否显示集合竞价
91400
- {
91401
- if (chart.IsShowBeforeData)
91402
- {
91403
- var data=
91404
- [
91405
- {
91406
- text: "隐藏",
91407
- click: function () { chart.ShowCallAuctionData( { Left:false, MultiDay:{ Left:false }} ); },
91408
- }
91409
- ];
91410
-
91411
- return data;
91412
- }
91413
- else
91414
- {
91415
- var data=
91416
- [
91417
- {
91418
- text: "显示",
91419
- click: function () { chart.ShowCallAuctionData({Left:true, MultiDay:{ Left:true }}); },
91420
- }
91421
- ];
91422
-
91423
- return data;
91424
- }
91425
- }
91426
-
91427
- this.GetSelectRect=function(chart) //区间选择
91428
- {
91429
- if (chart.EnableSelectRect)
91430
- {
91431
- var data=
91432
- [
91433
- {
91434
- text: "禁用区间选择",
91435
- click: function () { chart.EnableSelectRect=false; },
91436
- }
91437
- ];
91438
-
91439
- return data;
91440
- }
91441
- else
91442
- {
91443
- var data=
91444
- [
91445
- {
91446
- text: "启动区间选择",
91447
- click: function () { chart.EnableSelectRect=true },
91448
- }
91449
- ];
91450
-
91451
- return data;
91452
- }
91453
- }
91454
-
91455
- //指标窗口个数
91456
- this.GetIndexWindowCount=function(chart)
91457
- {
91458
- var data=
91459
- [
91460
- {
91461
- text: "1个窗口",
91462
- click: function () { chart.ChangeIndexWindowCount(2); }
91463
- },
91464
- {
91465
- text: "2个窗口",
91466
- click: function () { chart.ChangeIndexWindowCount(3); }
91467
- },
91468
- {
91469
- text: "3个窗口",
91470
- click: function () { chart.ChangeIndexWindowCount(4); }
91471
- },
91472
- {
91473
- text: "4个窗口",
91474
- click: function () { chart.ChangeIndexWindowCount(5); }
91475
- },
91476
- {
91477
- text: "5个窗口",
91478
- click: function () { chart.ChangeIndexWindowCount(6); }
91479
- }
91480
- ];
91481
-
91482
- var count=chart.Frame.SubFrame.length-1;
91483
- if ((count-1)>=0 && (count-1)<data.length) data[count-1].selected=true; //选中
91484
-
91485
- return data;
91486
- }
91487
-
91488
- //工具
91489
- this.GetTools=function(chart)
91490
- {
91491
- var data=[];
91492
- var drawTools=chart.GetExtendChartByClassName('DrawToolsButton');
91493
- if (drawTools)
91494
- {
91495
- data.push(
91496
- {
91497
- text: "关闭画图工具",
91498
- click: function ()
91499
- {
91500
- var toolsWidth=drawTools.Chart.Width;
91501
- var toolsIndex=parseInt(drawTools.Index);
91502
- chart.DeleteExtendChart(drawTools);
91503
- chart.Frame.ChartBorder.Right-=toolsWidth;
91504
- chart.SetSizeChange(true);
91505
- chart.Draw();
91506
- }
91507
- }
91508
- );
91509
- }
91510
- else
91511
- {
91512
- data.push(
91513
- {
91514
- text: "画图工具",
91515
- click: function () {
91516
- var option={Name:'画图工具', Top:chart.Frame.ChartBorder.Top };
91517
- var extendChart=chart.CreateExtendChart(option.Name, option); //创建扩展图形
91518
- chart.SetSizeChange(true);
91519
- chart.Draw();
91520
- }
91521
- }
91522
- );
91523
- }
91524
-
91525
- return data;
91526
- }
91527
- }
91528
-
91529
90169
  //画图工具 单个图形设置
91530
90170
  function ChartPictureSettingMenu(divElement)
91531
90171
  {
@@ -133184,7 +131824,7 @@ function ScrollBarBGChart()
133184
131824
 
133185
131825
 
133186
131826
 
133187
- var HQCHART_VERSION="1.1.13181";
131827
+ var HQCHART_VERSION="1.1.13193";
133188
131828
 
133189
131829
  function PrintHQChartVersion()
133190
131830
  {