hqchart 1.1.14731 → 1.1.14742

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.
@@ -1109,7 +1109,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
1109
1109
  if (item.BottomSpace>=0) chart.Frame.SubFrame[i].Frame.ChartBorder.BottomSpace=item.BottomSpace*pixelRatio;
1110
1110
 
1111
1111
  //是否显示关闭集合竞价按钮
1112
- if (IFrameSplitOperator.IsNumber(item.CloseBeforeButton)) chart.Frame.SubFrame[i].Frame.IsShowCloseButton=item.CloseBeforeButton;
1112
+ if (IFrameSplitOperator.IsBool(item.CloseBeforeButton)) chart.Frame.SubFrame[i].Frame.IsShowCloseButton=item.CloseBeforeButton;
1113
1113
 
1114
1114
  if (item.ClientBGColor) subFrame.ClientBGColor=item.ClientBGColor;
1115
1115
  if (!IFrameSplitOperator.IsUndefined(item.HorizontalReserved)) subFrame.HorizontalReserved=item.HorizontalReserved;
@@ -2984,6 +2984,18 @@ var JSCHART_MENU_ID=
2984
2984
  CMD_REPORT_CHANGE_COLUMN_ID:105, //报价列表 切换列 Arg[Column, ]
2985
2985
  }
2986
2986
 
2987
+ var JSCHART_TRADE_STATUS_ID=
2988
+ {
2989
+ START_ID:1000, //8:45~9:15
2990
+ BEFORE_OPEN_ID:2000, //9:15~9:25 是开盘集合竞价阶段
2991
+ TRADE_ID:3000, //9:25~14:57 是连续竞价阶段
2992
+ AFTER_CLOSE_ID:4000, //14:57~15:00 是收盘集合竞价阶段
2993
+ CLOSE_ID:5000, //15:00 后,首先发 CLOSE 标志
2994
+ ENDTR_ID:6000, //交易结束
2995
+ //上面状态个位数 是停牌状态 如3001 连续交易时间段停牌
2996
+ SUSP_ID:1, //停牌
2997
+ }
2998
+
2987
2999
 
2988
3000
  function PhoneDBClick()
2989
3001
  {
@@ -3200,6 +3212,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
3200
3212
 
3201
3213
  //图形中的单元选中状态
3202
3214
  MapIndexChartCache:new Map(), //key 指标GUID
3215
+
3216
+ TradeStatus:null, //当前交易状态 { Date, Time:数据最后更新的时间, Status: }
3203
3217
  };
3204
3218
 
3205
3219
  this.VerticalDrag; //通过X轴左右拖动数据(手势才有)
@@ -10220,6 +10234,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
10220
10234
  frame.YSplitOperator.ChartBorder=frame.ChartBorder;
10221
10235
  frame.YSplitOperator.SplitCount=subFrame.Frame.YSplitOperator.SplitCount;
10222
10236
  frame.YSplitOperator.GetEventCallback=(id)=> { return this.GetEventCallback(id); };
10237
+ frame.YSplitOperator.HQChart=this;
10223
10238
 
10224
10239
  overlayFrame.Frame=frame;
10225
10240
 
@@ -11153,6 +11168,27 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
11153
11168
  chart.Canvas=this.Canvas;
11154
11169
  chart.ChartBorder=frame.ChartBorder;
11155
11170
  chart.ChartFrame=frame;
11171
+ chart.HQChart=this;
11172
+
11173
+ this.ChartPaintEx.push(chart);
11174
+
11175
+ return true;
11176
+ }
11177
+
11178
+ this.CreateChartPaintExtendV2=function(className, option, windowIndex)
11179
+ {
11180
+ if (windowIndex<0) return false;
11181
+ var subFrame=this.Frame.SubFrame[windowIndex];
11182
+ if (!subFrame || !subFrame.Frame) return false;
11183
+
11184
+ var chart=g_ChartPaintFactory.Create(className, option);
11185
+ if (!chart) return false;
11186
+
11187
+ var frame=subFrame.Frame;
11188
+ chart.Canvas=this.Canvas;
11189
+ chart.ChartBorder=frame.ChartBorder;
11190
+ chart.ChartFrame=frame;
11191
+ chart.HQChart=this;
11156
11192
 
11157
11193
  this.ChartPaintEx.push(chart);
11158
11194
 
@@ -11695,6 +11731,32 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
11695
11731
 
11696
11732
  return true;
11697
11733
  }
11734
+
11735
+ //是否是额外的集合竞价部分
11736
+ this.IsCallAuctionFrame=function(frameID)
11737
+ {
11738
+ return false;
11739
+ }
11740
+
11741
+ //更新交易状态
11742
+ this.UpdateTradeStatusData=function(data, option)
11743
+ {
11744
+ if (option)
11745
+ {
11746
+ //是否清空
11747
+ if (option.IsClear===true) this.GlobalOption.TradeStatus=null;
11748
+ }
11749
+
11750
+ if (!data) return false;
11751
+
11752
+ if (IFrameSplitOperator.IsNumber(data.Date) && IFrameSplitOperator.IsNumber(data.Time) && IFrameSplitOperator.IsNumber(data.Status))
11753
+ {
11754
+ this.GlobalOption.TradeStatus={ Date:data.Date, Time:data.Time, Status:data.Status };
11755
+ return true;
11756
+ }
11757
+
11758
+ return false;
11759
+ }
11698
11760
  }
11699
11761
 
11700
11762
  function GetDevicePixelRatio()
@@ -12230,6 +12292,40 @@ function ChartBorder()
12230
12292
  {
12231
12293
  return this.TitleHeight;
12232
12294
  }
12295
+
12296
+ //是否显示单日集合竞价 盘前
12297
+ this.IsShowBeforeOpen=function()
12298
+ {
12299
+ if (this.LeftExtendWidth<10) return false;
12300
+
12301
+ return true;
12302
+ }
12303
+
12304
+ //是否显示单日集合竞价 盘后
12305
+ this.IsShowAfterClose=function()
12306
+ {
12307
+ if (this.RightExtendWidth<10) return false;
12308
+
12309
+ return true;
12310
+ }
12311
+
12312
+ //是否显示多日集合竞价 盘前
12313
+ this.IsShowMultiDayBeforeOpen=function()
12314
+ {
12315
+ if (!this.MultiDayMinute) return false;
12316
+ if (this.MultiDayMinute.Count<=1 || this.MultiDayMinute.Left<=0) return false;
12317
+
12318
+ return true;
12319
+ }
12320
+
12321
+ //是否显示多日集合竞价 盘后
12322
+ this.IsShowMultiDayAfterClose=function()
12323
+ {
12324
+ if (!this.MultiDayMinute) return false;
12325
+ if (this.MultiDayMinute.Count<=1 || this.MultiDayMinute.Right<=0) return false;
12326
+
12327
+ return true;
12328
+ }
12233
12329
  }
12234
12330
 
12235
12331
  //框架外部挂接
@@ -25723,6 +25819,7 @@ function ChartPaintFactory()
25723
25819
  ["ChartMinuteVolumBar",{ Create:function(option) { return new ChartMinuteVolumBar(); } }], //分时成交量柱子
25724
25820
  ["ChartMinutePriceLine",{ Create:function(option) { return new ChartMinutePriceLine();} }],
25725
25821
  ["ChartMinuteBuySellBar", { Create:function(option){ return new ChartMinuteBuySellBar(); }}],
25822
+ ["ChartMinuteBarCallAuction", { Create:function(option){ return new ChartMinuteBarCallAuction(); }}]
25726
25823
  ]);
25727
25824
 
25728
25825
  this.Create=function(name, option)
@@ -34592,6 +34689,8 @@ function ChartMinuteVolumBar()
34592
34689
  var isHScreen=(this.ChartFrame.IsHScreen===true);
34593
34690
  var yPrice=this.YClose; //上一分钟的价格
34594
34691
  var yBottom=this.ChartFrame.GetYFromData(0);
34692
+ var yBottom=border.BottomEx;
34693
+ if (isHScreen) yBottom=border.LeftEx;
34595
34694
  var unit=this.GetVolUnit();
34596
34695
  if (callAutionData.Ver==1.0)
34597
34696
  {
@@ -34782,6 +34881,28 @@ function ChartMinuteVolumBar()
34782
34881
 
34783
34882
  }
34784
34883
 
34884
+ //只画集合竞价柱子
34885
+ function ChartMinuteBarCallAuction()
34886
+ {
34887
+ this.newMethod=ChartMinuteVolumBar; //派生
34888
+ this.newMethod();
34889
+ delete this.newMethod;
34890
+
34891
+ this.ClassName="ChartMinuteBarCallAuction";
34892
+
34893
+ this.Draw=function()
34894
+ {
34895
+ if (!this.IsShow || this.ChartFrame.IsMinSize || !this.IsVisible) return;
34896
+ if (this.IsShowIndexTitleOnly()) return;
34897
+
34898
+ this.DrawBeforeOpen();
34899
+ this.DrawMultiDayBeforeOpen();
34900
+
34901
+ this.DrawAfterClose();
34902
+ this.DrawMultiDayAfterClose();
34903
+ }
34904
+ }
34905
+
34785
34906
  function ChartErrorMessage()
34786
34907
  {
34787
34908
  this.newMethod=IChartPainting; //派生
@@ -40137,6 +40258,8 @@ function ChartOverlayMinutePriceLine()
40137
40258
  }
40138
40259
 
40139
40260
 
40261
+
40262
+
40140
40263
  //分钟持仓线
40141
40264
  function ChartMinutePositionLine()
40142
40265
  {
@@ -54181,7 +54304,7 @@ function FrameSplitY()
54181
54304
 
54182
54305
  this.RightFrameSplitY();
54183
54306
  this.MainOverlayFrameSplitY(); //主图Y轴绑定叠加Y轴坐标
54184
- this.CallAcutionSplitY(this.SplitCount,splitData);
54307
+ this.CallAcutionSplitYV2(splitData, this.Frame.HorizontalInfo.slice());
54185
54308
 
54186
54309
  if (this.EnableRemoveZero) this.RemoveZero(this.Frame.HorizontalInfo);
54187
54310
 
@@ -54262,9 +54385,177 @@ function FrameSplitY()
54262
54385
  }
54263
54386
  }
54264
54387
 
54388
+ this.CallAcutionSplitYV2=function(splitData, aryHorizontalInfo)
54389
+ {
54390
+ if (!this.IsCallAuctionFrame()) return;
54391
+ if (!IFrameSplitOperator.IsNonEmptyArray(aryHorizontalInfo)) return;
54392
+
54393
+ var aryCallAcution=this.GetCallAcutionSplitYV2(splitData,aryHorizontalInfo);
54394
+ if (!aryCallAcution) return;
54395
+
54396
+ for(var i=0; i<this.Frame.HorizontalInfo.length; ++i) //把显示的数据迁移到 Message[2] Message[3]
54397
+ {
54398
+ var item=this.Frame.HorizontalInfo[i];
54399
+ if (aryCallAcution.IsBeforeData)
54400
+ {
54401
+ item.Message[2]=item.Message[0];
54402
+ item.Message[0]=null;
54403
+ }
54404
+
54405
+ if (aryCallAcution.IsAfterData && (this.ShareAfterVol==0 || this.ShareAfterVol==2) )
54406
+ {
54407
+ item.Message[3]=item.Message[1];
54408
+ item.Message[1]=null;
54409
+ }
54410
+ }
54411
+
54412
+ //集合竞价的坐标插入最后
54413
+ for(var i=0; i<aryCallAcution.HorizontalInfo.length; ++i)
54414
+ {
54415
+ var item=aryCallAcution.HorizontalInfo[i];
54416
+ this.Frame.HorizontalInfo.push(item);
54417
+ }
54418
+ }
54419
+
54420
+ this.GetCallAcutionSplitYV2=function(splitData, arySource)
54421
+ {
54422
+ if (!this.IsCallAuctionFrame()) return null;
54423
+
54424
+ var bBeforeData=(this.IsBeforeData==true && this.BeforeOpenData && (this.BeforeOpenData.Ver==2.0 || this.BeforeOpenData.Ver==3.0));
54425
+ var bAfterData=(this.IsAfterData==true && this.AfterCloseData && (this.AfterCloseData.Ver==2.0 || this.AfterCloseData.Ver==3.0));
54426
+
54427
+ var bottom=this.Frame.ChartBorder.GetBottomEx();
54428
+ var height=this.Frame.ChartBorder.GetHeightEx();
54429
+ var bHScreen=this.Frame.IsHScreen;
54430
+ if (this.Frame.IsHScreen)
54431
+ {
54432
+ var border=this.Frame.GetBorder();
54433
+ var width=border.RightEx-border.LeftEx;
54434
+ }
54435
+
54436
+ if (bBeforeData || bAfterData)
54437
+ {
54438
+ var aryHorizontalInfo=[];
54439
+ for(var i=0;i<arySource.length;++i)
54440
+ {
54441
+ var hItem=arySource[i];
54442
+ if (!hItem || !IFrameSplitOperator.IsNumber(hItem.Value)) continue;
54443
+ var y=this.Frame.GetYFromData(hItem.Value);
54444
+
54445
+ var item=new CoordinateInfo();
54446
+ item.Value=hItem.Value;
54447
+ item.LineType=8;
54448
+ if (bBeforeData)
54449
+ {
54450
+ if (bHScreen)
54451
+ {
54452
+ var value=(y-border.LeftEx)/width*(this.BeforeOpenData.VolMax-this.BeforeOpenData.VolMin)+this.BeforeOpenData.VolMin;
54453
+ }
54454
+ else
54455
+ {
54456
+ var value=(bottom-y)/height*(this.BeforeOpenData.VolMax-this.BeforeOpenData.VolMin)+this.BeforeOpenData.VolMin;
54457
+ }
54458
+
54459
+ item.Message[0]=this.FormatValueString(value);
54460
+ }
54461
+
54462
+ if (bAfterData && (this.ShareAfterVol==0 || this.ShareAfterVol==2) )
54463
+ {
54464
+ if (bHScreen)
54465
+ {
54466
+ var value=(y-border.LeftEx)/width*(this.AfterCloseData.VolMax-this.AfterCloseData.VolMin)+this.AfterCloseData.VolMin;
54467
+ }
54468
+ else
54469
+ {
54470
+ var value=(bottom-y)/height*(this.AfterCloseData.VolMax-this.AfterCloseData.VolMin)+this.AfterCloseData.VolMin;
54471
+ }
54472
+
54473
+ item.Message[1]=this.FormatValueString(value);
54474
+ }
54475
+
54476
+ aryHorizontalInfo.push(item);
54477
+ }
54478
+
54479
+ return { HorizontalInfo:aryHorizontalInfo, IsBeforeData:bBeforeData, IsAfterData:bAfterData };
54480
+ }
54481
+
54482
+ var bMultiDayBeforeData=false, bMultiDayAfterData=false;
54483
+ var beforeDayData=null, afterDayData=null;
54484
+ if (this.MultiDayBeforeOpenData && IFrameSplitOperator.IsNonEmptyArray(this.MultiDayBeforeOpenData))
54485
+ {
54486
+ bMultiDayBeforeData=true;
54487
+ var firstDayData=this.MultiDayBeforeOpenData[0];
54488
+ if (firstDayData.Ver==2.0 || firstDayData.Ver==3.0)
54489
+ beforeDayData=firstDayData;
54490
+ }
54491
+
54492
+ if (this.MultiDayAfterCloseData && IFrameSplitOperator.IsNonEmptyArray(this.MultiDayAfterCloseData))
54493
+ {
54494
+ bMultiDayAfterData=true;
54495
+ var firstDayData=this.MultiDayAfterCloseData[0];
54496
+ if (firstDayData.Ver==2.0 || firstDayData.Ver==3.0)
54497
+ afterDayData=firstDayData;
54498
+ }
54499
+
54500
+ if (bMultiDayBeforeData || bMultiDayAfterData)
54501
+ {
54502
+ var aryHorizontalInfo=[];
54503
+ for(var i=0;i<arySource.length;++i)
54504
+ {
54505
+ var hItem=arySource[i];
54506
+ if (!hItem || !IFrameSplitOperator.IsNumber(hItem.Value)) continue;
54507
+ var y=this.Frame.GetYFromData(hItem.Value);
54508
+
54509
+ var item=new CoordinateInfo();
54510
+ item.Value=hItem.Value;
54511
+ item.LineType=9;
54512
+
54513
+ var isVaild=false;
54514
+ if (beforeDayData)
54515
+ {
54516
+ if (bHScreen)
54517
+ {
54518
+ var value=(y-border.LeftEx)/width*(beforeDayData.VolMax-beforeDayData.VolMin)+beforeDayData.VolMin;
54519
+ }
54520
+ else
54521
+ {
54522
+ var value=(bottom-y)/height*(beforeDayData.VolMax-beforeDayData.VolMin)+beforeDayData.VolMin;
54523
+ }
54524
+
54525
+ item.Message[0]=this.FormatValueString(value);
54526
+ isVaild=true;
54527
+ }
54528
+
54529
+ if (afterDayData && (this.ShareAfterVol==0 || this.ShareAfterVol==2))
54530
+ {
54531
+ if (bHScreen)
54532
+ {
54533
+ var value=(y-border.LeftEx)/width*(afterDayData.VolMax-afterDayData.VolMin)+afterDayData.VolMin;
54534
+ }
54535
+ else
54536
+ {
54537
+ var value=(bottom-y)/height*(afterDayData.VolMax-afterDayData.VolMin)+afterDayData.VolMin;
54538
+ }
54539
+
54540
+ item.Message[1]=this.FormatValueString(value);
54541
+ isVaild=true;
54542
+ }
54543
+
54544
+ if (isVaild) aryHorizontalInfo.push(item);
54545
+ }
54546
+
54547
+ if (IFrameSplitOperator.IsNonEmptyArray(aryHorizontalInfo))
54548
+ return { HorizontalInfo:aryHorizontalInfo, IsBeforeData:bMultiDayBeforeData, IsAfterData:bMultiDayAfterData };
54549
+ }
54550
+
54551
+ return null;
54552
+ }
54553
+
54554
+ /* 废弃 使用 CallAcutionSplitYV2
54265
54555
  this.CallAcutionSplitY=function(count,splitData)
54266
54556
  {
54267
- if (this.Frame.Identify!=1) return null;
54557
+ if (!this.IsCallAuctionFrame()) return;
54558
+
54268
54559
  var aryCallAcution=this.GetCallAcutionSplitY(count,splitData);
54269
54560
  if (!aryCallAcution) return;
54270
54561
 
@@ -54291,10 +54582,21 @@ function FrameSplitY()
54291
54582
  this.Frame.HorizontalInfo.push(item);
54292
54583
  }
54293
54584
  }
54585
+ */
54586
+
54587
+ this.IsCallAuctionFrame=function()
54588
+ {
54589
+ if (this.Frame.Identify==1) return true;
54590
+
54591
+ if (!this.HQChart || !this.HQChart.IsCallAuctionFrame) return false;
54592
+
54593
+ return this.HQChart.IsCallAuctionFrame(this.Frame.Identify);
54594
+ }
54294
54595
 
54596
+ /* 废弃 使用 GetCallAcutionSplitYV2
54295
54597
  this.GetCallAcutionSplitY=function(count,splitData)
54296
54598
  {
54297
- if (this.Frame.Identify!=1) return null;
54599
+ if (!this.IsCallAuctionFrame()) return null;
54298
54600
 
54299
54601
  var isBeforeData=(this.IsBeforeData==true && this.BeforeOpenData && (this.BeforeOpenData.Ver==2.0 || this.BeforeOpenData.Ver==3.0));
54300
54602
  var isAfterData=(this.IsAfterData==true && this.AfterCloseData && (this.AfterCloseData.Ver==2.0 || this.AfterCloseData.Ver==3.0));
@@ -54309,7 +54611,7 @@ function FrameSplitY()
54309
54611
  for(var i=0;i<count;++i)
54310
54612
  {
54311
54613
  var item=new CoordinateInfo();
54312
- var yValue=intervalY*i;
54614
+ var yValue=intervalY*i+splitData.Min;
54313
54615
  item.Value=yValue;
54314
54616
  item.LineType=8;
54315
54617
  if (isBeforeData )
@@ -54359,7 +54661,7 @@ function FrameSplitY()
54359
54661
  for(var i=0;i<count;++i)
54360
54662
  {
54361
54663
  var item=new CoordinateInfo();
54362
- var yValue=intervalY*i;
54664
+ var yValue=intervalY*i+splitData.Min;
54363
54665
  item.Value=yValue;
54364
54666
  item.LineType=9;
54365
54667
  var isVaild=false;
@@ -54386,6 +54688,7 @@ function FrameSplitY()
54386
54688
 
54387
54689
  return null;
54388
54690
  }
54691
+ */
54389
54692
 
54390
54693
  this.RightFrameSplitY=function()
54391
54694
  {
@@ -57703,6 +58006,7 @@ function HQPriceStringFormat()
57703
58006
  this.RComplexText; //{ Space:2 间距, Text:[ {Color:, Text: }] } 支持单行多颜色
57704
58007
  this.Point;
57705
58008
  this.ClientPos=-1;
58009
+ this.HQChart;
57706
58010
 
57707
58011
  this.ExtendChartPaint;
57708
58012
  this.RExtendText=[];
@@ -57855,6 +58159,32 @@ function HQPriceStringFormat()
57855
58159
  if (this.DataFormatType==1) this.Text=IFrameSplitOperator.FormatValueThousandsString(this.Value,defaultfloatPrecision);
57856
58160
  else this.Text=IFrameSplitOperator.FormatValueString(this.Value,defaultfloatPrecision,this.LanguageID);
57857
58161
  if (IFrameSplitOperator.IsNumber(this.RValue)) this.RText=IFrameSplitOperator.FormatValueString(this.RValue,defaultfloatPrecision,this.LanguageID);
58162
+
58163
+ var bCallAuction=false;
58164
+ if (this.HQChart && this.HQChart.IsCallAuctionFrame)
58165
+ bCallAuction=this.HQChart.IsCallAuctionFrame(this.FrameID);
58166
+
58167
+ if (bCallAuction)
58168
+ {
58169
+ if (this.ClientPos==2)
58170
+ {
58171
+ this.GetBeforeOpen();
58172
+ }
58173
+ else if (this.ClientPos==3)
58174
+ {
58175
+ if (this.ShareAfterVol==0 || this.ShareAfterVol==2)
58176
+ this.GetAfterClose();
58177
+ }
58178
+ else if (this.ClientPos>=200 && this.ClientPos<=299)
58179
+ {
58180
+ this.GetMultiDayBeforeOpen();
58181
+ }
58182
+ else if (this.ClientPos>=300 && this.ClientPos<=399 )
58183
+ {
58184
+ if (this.ShareAfterVol==0 || this.ShareAfterVol==2)
58185
+ this.GetMultiDayAfterClose();
58186
+ }
58187
+ }
57858
58188
  }
57859
58189
 
57860
58190
  if (this.GetEventCallback)
@@ -60018,7 +60348,17 @@ function DynamicMinuteTitlePainting()
60018
60348
  {
60019
60349
  this.OnDrawEventCallback(null);
60020
60350
 
60021
- if (this.IsAlwaysShowLastData)
60351
+ var bShowLastData=this.IsAlwaysShowLastData
60352
+ if (this.DrawStatus && this.DrawStatus.IsTitleShowLatestData)
60353
+ {
60354
+ var status=this.DrawStatus;
60355
+ if (!IFrameSplitOperator.IsNumber(status.FrameID) || status.FrameID<0)
60356
+ bShowLastData=true;
60357
+ else if (status.CorssCursorTouchEnd && status.IsOnTouch==false)
60358
+ bShowLastData=true;
60359
+ }
60360
+
60361
+ if (bShowLastData)
60022
60362
  {
60023
60363
  this.Canvas.save();
60024
60364
  this.DrawLastDataItem();
@@ -60993,8 +61333,11 @@ function DynamicChartTitlePainting()
60993
61333
  if (this.IsMinuteFrame && this.PointInfo && ( this.PointInfo.ClientPos==2 || this.PointInfo.ClientPos==3 || (this.PointInfo.ClientPos>=200&& this.PointInfo.ClientPos<=299) || (this.PointInfo.ClientPos>=300&& this.PointInfo.ClientPos<=399) ))
60994
61334
  {
60995
61335
  var result={ PreventDefault:false }
60996
- this.DrawMainCallAuction({ Left:left, Right:right, Bottom:bottom }, rtText, result);
60997
- if (result.PreventDefault===false) this.DrawMainIndexTitle({ Left:left, Right:right, Bottom:bottom }, isShowLastData, rtText);
61336
+ var yRight=right;
61337
+ if (this.Frame.ToolbarCacheSize && this.Frame.ToolbarCacheSize.RToolbar) yRight=this.Frame.ToolbarCacheSize.RToolbar.Left-2; //右侧按钮宽度要去掉
61338
+ this.DrawMainCallAuction({ Left:left, Right:yRight, Bottom:bottom }, rtText, result);
61339
+ if (result.PreventDefault===false) this.DrawMainIndexTitle({ Left:left, Right:yRight, Bottom:bottom }, isShowLastData, rtText);
61340
+ if (IFrameSplitOperator.IsNumber(rtText.Bottom)) bottom=rtText.Bottom;
60998
61341
  }
60999
61342
  else
61000
61343
  {
@@ -79255,6 +79598,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
79255
79598
  this.ChartCorssCursor.StringFormatY.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
79256
79599
  this.ChartCorssCursor.StringFormatY.LanguageID=this.LanguageID;
79257
79600
  this.ChartCorssCursor.StringFormatY.ExtendChartPaint=this.ExtendChartPaint;
79601
+ this.ChartCorssCursor.StringFormatY.HQChart=this;
79258
79602
  this.ChartCorssCursor.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
79259
79603
  this.ChartCorssCursor.OnChangeStatusCallback=(data, obj)=>{ this.OnChangeCorssCursorStatus(data,obj); }
79260
79604
 
@@ -89122,6 +89466,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
89122
89466
  this.ChartCorssCursor.StringFormatY.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
89123
89467
  this.ChartCorssCursor.StringFormatY.LanguageID=this.LanguageID;
89124
89468
  this.ChartCorssCursor.StringFormatY.ShareAfterVol=this.ShareAfterVol;
89469
+ this.ChartCorssCursor.StringFormatY.HQChart=this;
89125
89470
  this.ChartCorssCursor.CallAcutionXOperator=new CallAcutionXOperator();
89126
89471
  this.ChartCorssCursor.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
89127
89472
  this.ChartCorssCursor.OnChangeStatusCallback=(data, obj)=>{ this.OnChangeCorssCursorStatus(data,obj); }
@@ -89239,6 +89584,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
89239
89584
  frame.YSplitOperator.LanguageID=this.LanguageID;
89240
89585
  frame.YSplitOperator.FrameSplitData=this.FrameSplitData.get('double');
89241
89586
  frame.YSplitOperator.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
89587
+ frame.YSplitOperator.HQChart=this;
89242
89588
  if (i==1) frame.YSplitOperator.ShareAfterVol=this.ShareAfterVol;
89243
89589
  }
89244
89590
 
@@ -89314,6 +89660,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
89314
89660
  frame.YSplitOperator.FrameSplitData=this.FrameSplitData.get('double');
89315
89661
  frame.YSplitOperator.Frame=frame;
89316
89662
  frame.YSplitOperator.ChartBorder=border;
89663
+ frame.YSplitOperator.HQChart=this;
89317
89664
  frame.XSplitOperator=new FrameSplitMinuteX();
89318
89665
  frame.XSplitOperator.Frame=frame;
89319
89666
  frame.XSplitOperator.ChartBorder=border;
@@ -91076,6 +91423,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
91076
91423
  this.UpdateCallCationData(beforeOpenData,afterCloseData);
91077
91424
  this.UpdateLineColorData(aryColorData,data.stock[0].date);
91078
91425
  this.UpdateLatestMinuteData(aryMinuteData, data.stock[0].date, data.stock[0]);
91426
+ this.UpdateTradeStatusData(data.TradeStatus);
91079
91427
  this.UpdateHistoryMinuteUI(updateTime);
91080
91428
  this.RecvMinuteDataEvent({FunctionName:"RecvMinuteData"} );
91081
91429
  this.RequestOverlayMinuteData(); //请求叠加数据 (主数据下载完再下载)
@@ -91102,6 +91450,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
91102
91450
 
91103
91451
  this.ColorLineData=aryColorData;
91104
91452
 
91453
+ this.UpdateTradeStatusData(data.TradeStatus);
91105
91454
  this.UpdateMinuteUI(data.stock[0], {FunctionName:"RecvMinuteData", Day:{ IsFirstData:bFirstData} });
91106
91455
 
91107
91456
  if (data.AutoUpdate===false) //不执行自动更新
@@ -91710,6 +92059,20 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
91710
92059
  this.ChartPaint[2].MultiDayBeforeOpenData=multiBeforeOpenData;
91711
92060
  this.ChartPaint[2].MultiDayAfterCloseData=multiAfterCloseData;
91712
92061
 
92062
+ for(var i=0;i<this.ChartPaintEx.length;++i)
92063
+ {
92064
+ var item=this.ChartPaintEx[i];
92065
+ if (item.ClassName=="ChartMinuteBarCallAuction")
92066
+ {
92067
+ item.YClose=yClose;
92068
+ item.Symbol=this.Symbol;
92069
+ item.BeforeOpenData=this.BeforeOpenData;
92070
+ item.AfterCloseData=this.AfterCloseData;
92071
+ item.MultiDayBeforeOpenData=multiBeforeOpenData;
92072
+ item.MultiDayAfterCloseData=multiAfterCloseData;
92073
+ }
92074
+ }
92075
+
91713
92076
  for(var i in this.Frame.SubFrame)
91714
92077
  {
91715
92078
  var item=this.Frame.SubFrame[i];
@@ -91822,6 +92185,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
91822
92185
  frame.YSplitOperator.FrameSplitData=this.FrameSplitData.get('double');
91823
92186
  frame.YSplitOperator.Frame=frame;
91824
92187
  frame.YSplitOperator.ChartBorder=frame.ChartBorder;
92188
+ frame.YSplitOperator.HQChart=this;
91825
92189
  frame.YSplitOperator.SplitCount=subFrame.Frame.YSplitOperator.SplitCount;
91826
92190
  frame.YSplitOperator.GetEventCallback=(id)=> { return this.GetEventCallback(id); };
91827
92191
  frame.YSplitOperator.OverlayIdentify=overlayFrame.Identify;
@@ -92824,6 +93188,25 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
92824
93188
 
92825
93189
  return data;
92826
93190
  }
93191
+
93192
+ this.IsCallAuctionFrame=function(frameID)
93193
+ {
93194
+ if (!IFrameSplitOperator.IsNonEmptyArray(this.ChartPaintEx)) return false;
93195
+ if (!IFrameSplitOperator.IsNonEmptyArray(this.Frame.SubFrame)) return false;
93196
+ if (frameID<0 || frameID>=this.Frame.SubFrame.length) return false;
93197
+ var subItem=this.Frame.SubFrame[frameID];
93198
+ if (!subItem || !subItem.Frame) return false;
93199
+
93200
+ var subFrame=subItem.Frame;
93201
+ for(var i=0;i<this.ChartPaintEx.length;++i)
93202
+ {
93203
+ var item=this.ChartPaintEx[i];
93204
+ if (item.ChartFrame && item.ChartFrame.Guid==subFrame.Guid)
93205
+ return true;
93206
+ }
93207
+
93208
+ return false;
93209
+ }
92827
93210
  }
92828
93211
 
92829
93212
  //盘前数据
@@ -94647,6 +95030,7 @@ function KLineChartHScreenContainer(uielement)
94647
95030
  this.ChartCorssCursor.StringFormatY=g_DivTooltipDataForamt.Create("CorssCursor_YStringFormat");
94648
95031
  this.ChartCorssCursor.StringFormatY.LanguageID=this.LanguageID;
94649
95032
  this.ChartCorssCursor.StringFormatY.ExtendChartPaint=this.ExtendChartPaint;
95033
+ this.ChartCorssCursor.StringFormatY.HQChart=this;
94650
95034
  this.ChartCorssCursor.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
94651
95035
 
94652
95036
  //创建等待提示
@@ -94828,6 +95212,7 @@ function MinuteChartHScreenContainer(uielement)
94828
95212
  this.ChartCorssCursor.StringFormatX.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
94829
95213
  this.ChartCorssCursor.StringFormatY=g_DivTooltipDataForamt.Create("CorssCursor_YStringFormat");
94830
95214
  this.ChartCorssCursor.StringFormatY.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
95215
+ this.ChartCorssCursor.StringFormatY.HQChart=this;
94831
95216
  this.ChartCorssCursor.CallAcutionXOperator=new CallAcutionXOperator();
94832
95217
  this.ChartCorssCursor.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
94833
95218
 
@@ -94905,6 +95290,7 @@ function MinuteChartHScreenContainer(uielement)
94905
95290
  frame.YSplitOperator.LanguageID=this.LanguageID;
94906
95291
  frame.YSplitOperator.FrameSplitData=this.FrameSplitData.get('double');
94907
95292
  frame.YSplitOperator.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
95293
+ frame.YSplitOperator.HQChart=this;
94908
95294
  }
94909
95295
 
94910
95296
  frame.YSplitOperator.Frame=frame;