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.
@@ -5249,7 +5249,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
5249
5249
  if (item.BottomSpace>=0) chart.Frame.SubFrame[i].Frame.ChartBorder.BottomSpace=item.BottomSpace*pixelRatio;
5250
5250
 
5251
5251
  //是否显示关闭集合竞价按钮
5252
- if (IFrameSplitOperator.IsNumber(item.CloseBeforeButton)) chart.Frame.SubFrame[i].Frame.IsShowCloseButton=item.CloseBeforeButton;
5252
+ if (IFrameSplitOperator.IsBool(item.CloseBeforeButton)) chart.Frame.SubFrame[i].Frame.IsShowCloseButton=item.CloseBeforeButton;
5253
5253
 
5254
5254
  if (item.ClientBGColor) subFrame.ClientBGColor=item.ClientBGColor;
5255
5255
  if (!IFrameSplitOperator.IsUndefined(item.HorizontalReserved)) subFrame.HorizontalReserved=item.HorizontalReserved;
@@ -7124,6 +7124,18 @@ var JSCHART_MENU_ID=
7124
7124
  CMD_REPORT_CHANGE_COLUMN_ID:105, //报价列表 切换列 Arg[Column, ]
7125
7125
  }
7126
7126
 
7127
+ var JSCHART_TRADE_STATUS_ID=
7128
+ {
7129
+ START_ID:1000, //8:45~9:15
7130
+ BEFORE_OPEN_ID:2000, //9:15~9:25 是开盘集合竞价阶段
7131
+ TRADE_ID:3000, //9:25~14:57 是连续竞价阶段
7132
+ AFTER_CLOSE_ID:4000, //14:57~15:00 是收盘集合竞价阶段
7133
+ CLOSE_ID:5000, //15:00 后,首先发 CLOSE 标志
7134
+ ENDTR_ID:6000, //交易结束
7135
+ //上面状态个位数 是停牌状态 如3001 连续交易时间段停牌
7136
+ SUSP_ID:1, //停牌
7137
+ }
7138
+
7127
7139
 
7128
7140
  function PhoneDBClick()
7129
7141
  {
@@ -7340,6 +7352,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
7340
7352
 
7341
7353
  //图形中的单元选中状态
7342
7354
  MapIndexChartCache:new Map(), //key 指标GUID
7355
+
7356
+ TradeStatus:null, //当前交易状态 { Date, Time:数据最后更新的时间, Status: }
7343
7357
  };
7344
7358
 
7345
7359
  this.VerticalDrag; //通过X轴左右拖动数据(手势才有)
@@ -14360,6 +14374,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
14360
14374
  frame.YSplitOperator.ChartBorder=frame.ChartBorder;
14361
14375
  frame.YSplitOperator.SplitCount=subFrame.Frame.YSplitOperator.SplitCount;
14362
14376
  frame.YSplitOperator.GetEventCallback=(id)=> { return this.GetEventCallback(id); };
14377
+ frame.YSplitOperator.HQChart=this;
14363
14378
 
14364
14379
  overlayFrame.Frame=frame;
14365
14380
 
@@ -15293,6 +15308,27 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
15293
15308
  chart.Canvas=this.Canvas;
15294
15309
  chart.ChartBorder=frame.ChartBorder;
15295
15310
  chart.ChartFrame=frame;
15311
+ chart.HQChart=this;
15312
+
15313
+ this.ChartPaintEx.push(chart);
15314
+
15315
+ return true;
15316
+ }
15317
+
15318
+ this.CreateChartPaintExtendV2=function(className, option, windowIndex)
15319
+ {
15320
+ if (windowIndex<0) return false;
15321
+ var subFrame=this.Frame.SubFrame[windowIndex];
15322
+ if (!subFrame || !subFrame.Frame) return false;
15323
+
15324
+ var chart=g_ChartPaintFactory.Create(className, option);
15325
+ if (!chart) return false;
15326
+
15327
+ var frame=subFrame.Frame;
15328
+ chart.Canvas=this.Canvas;
15329
+ chart.ChartBorder=frame.ChartBorder;
15330
+ chart.ChartFrame=frame;
15331
+ chart.HQChart=this;
15296
15332
 
15297
15333
  this.ChartPaintEx.push(chart);
15298
15334
 
@@ -15835,6 +15871,32 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
15835
15871
 
15836
15872
  return true;
15837
15873
  }
15874
+
15875
+ //是否是额外的集合竞价部分
15876
+ this.IsCallAuctionFrame=function(frameID)
15877
+ {
15878
+ return false;
15879
+ }
15880
+
15881
+ //更新交易状态
15882
+ this.UpdateTradeStatusData=function(data, option)
15883
+ {
15884
+ if (option)
15885
+ {
15886
+ //是否清空
15887
+ if (option.IsClear===true) this.GlobalOption.TradeStatus=null;
15888
+ }
15889
+
15890
+ if (!data) return false;
15891
+
15892
+ if (IFrameSplitOperator.IsNumber(data.Date) && IFrameSplitOperator.IsNumber(data.Time) && IFrameSplitOperator.IsNumber(data.Status))
15893
+ {
15894
+ this.GlobalOption.TradeStatus={ Date:data.Date, Time:data.Time, Status:data.Status };
15895
+ return true;
15896
+ }
15897
+
15898
+ return false;
15899
+ }
15838
15900
  }
15839
15901
 
15840
15902
  function GetDevicePixelRatio()
@@ -16370,6 +16432,40 @@ function ChartBorder()
16370
16432
  {
16371
16433
  return this.TitleHeight;
16372
16434
  }
16435
+
16436
+ //是否显示单日集合竞价 盘前
16437
+ this.IsShowBeforeOpen=function()
16438
+ {
16439
+ if (this.LeftExtendWidth<10) return false;
16440
+
16441
+ return true;
16442
+ }
16443
+
16444
+ //是否显示单日集合竞价 盘后
16445
+ this.IsShowAfterClose=function()
16446
+ {
16447
+ if (this.RightExtendWidth<10) return false;
16448
+
16449
+ return true;
16450
+ }
16451
+
16452
+ //是否显示多日集合竞价 盘前
16453
+ this.IsShowMultiDayBeforeOpen=function()
16454
+ {
16455
+ if (!this.MultiDayMinute) return false;
16456
+ if (this.MultiDayMinute.Count<=1 || this.MultiDayMinute.Left<=0) return false;
16457
+
16458
+ return true;
16459
+ }
16460
+
16461
+ //是否显示多日集合竞价 盘后
16462
+ this.IsShowMultiDayAfterClose=function()
16463
+ {
16464
+ if (!this.MultiDayMinute) return false;
16465
+ if (this.MultiDayMinute.Count<=1 || this.MultiDayMinute.Right<=0) return false;
16466
+
16467
+ return true;
16468
+ }
16373
16469
  }
16374
16470
 
16375
16471
  //框架外部挂接
@@ -29863,6 +29959,7 @@ function ChartPaintFactory()
29863
29959
  ["ChartMinuteVolumBar",{ Create:function(option) { return new ChartMinuteVolumBar(); } }], //分时成交量柱子
29864
29960
  ["ChartMinutePriceLine",{ Create:function(option) { return new ChartMinutePriceLine();} }],
29865
29961
  ["ChartMinuteBuySellBar", { Create:function(option){ return new ChartMinuteBuySellBar(); }}],
29962
+ ["ChartMinuteBarCallAuction", { Create:function(option){ return new ChartMinuteBarCallAuction(); }}]
29866
29963
  ]);
29867
29964
 
29868
29965
  this.Create=function(name, option)
@@ -38732,6 +38829,8 @@ function ChartMinuteVolumBar()
38732
38829
  var isHScreen=(this.ChartFrame.IsHScreen===true);
38733
38830
  var yPrice=this.YClose; //上一分钟的价格
38734
38831
  var yBottom=this.ChartFrame.GetYFromData(0);
38832
+ var yBottom=border.BottomEx;
38833
+ if (isHScreen) yBottom=border.LeftEx;
38735
38834
  var unit=this.GetVolUnit();
38736
38835
  if (callAutionData.Ver==1.0)
38737
38836
  {
@@ -38922,6 +39021,28 @@ function ChartMinuteVolumBar()
38922
39021
 
38923
39022
  }
38924
39023
 
39024
+ //只画集合竞价柱子
39025
+ function ChartMinuteBarCallAuction()
39026
+ {
39027
+ this.newMethod=ChartMinuteVolumBar; //派生
39028
+ this.newMethod();
39029
+ delete this.newMethod;
39030
+
39031
+ this.ClassName="ChartMinuteBarCallAuction";
39032
+
39033
+ this.Draw=function()
39034
+ {
39035
+ if (!this.IsShow || this.ChartFrame.IsMinSize || !this.IsVisible) return;
39036
+ if (this.IsShowIndexTitleOnly()) return;
39037
+
39038
+ this.DrawBeforeOpen();
39039
+ this.DrawMultiDayBeforeOpen();
39040
+
39041
+ this.DrawAfterClose();
39042
+ this.DrawMultiDayAfterClose();
39043
+ }
39044
+ }
39045
+
38925
39046
  function ChartErrorMessage()
38926
39047
  {
38927
39048
  this.newMethod=IChartPainting; //派生
@@ -44277,6 +44398,8 @@ function ChartOverlayMinutePriceLine()
44277
44398
  }
44278
44399
 
44279
44400
 
44401
+
44402
+
44280
44403
  //分钟持仓线
44281
44404
  function ChartMinutePositionLine()
44282
44405
  {
@@ -58321,7 +58444,7 @@ function FrameSplitY()
58321
58444
 
58322
58445
  this.RightFrameSplitY();
58323
58446
  this.MainOverlayFrameSplitY(); //主图Y轴绑定叠加Y轴坐标
58324
- this.CallAcutionSplitY(this.SplitCount,splitData);
58447
+ this.CallAcutionSplitYV2(splitData, this.Frame.HorizontalInfo.slice());
58325
58448
 
58326
58449
  if (this.EnableRemoveZero) this.RemoveZero(this.Frame.HorizontalInfo);
58327
58450
 
@@ -58402,9 +58525,177 @@ function FrameSplitY()
58402
58525
  }
58403
58526
  }
58404
58527
 
58528
+ this.CallAcutionSplitYV2=function(splitData, aryHorizontalInfo)
58529
+ {
58530
+ if (!this.IsCallAuctionFrame()) return;
58531
+ if (!IFrameSplitOperator.IsNonEmptyArray(aryHorizontalInfo)) return;
58532
+
58533
+ var aryCallAcution=this.GetCallAcutionSplitYV2(splitData,aryHorizontalInfo);
58534
+ if (!aryCallAcution) return;
58535
+
58536
+ for(var i=0; i<this.Frame.HorizontalInfo.length; ++i) //把显示的数据迁移到 Message[2] Message[3]
58537
+ {
58538
+ var item=this.Frame.HorizontalInfo[i];
58539
+ if (aryCallAcution.IsBeforeData)
58540
+ {
58541
+ item.Message[2]=item.Message[0];
58542
+ item.Message[0]=null;
58543
+ }
58544
+
58545
+ if (aryCallAcution.IsAfterData && (this.ShareAfterVol==0 || this.ShareAfterVol==2) )
58546
+ {
58547
+ item.Message[3]=item.Message[1];
58548
+ item.Message[1]=null;
58549
+ }
58550
+ }
58551
+
58552
+ //集合竞价的坐标插入最后
58553
+ for(var i=0; i<aryCallAcution.HorizontalInfo.length; ++i)
58554
+ {
58555
+ var item=aryCallAcution.HorizontalInfo[i];
58556
+ this.Frame.HorizontalInfo.push(item);
58557
+ }
58558
+ }
58559
+
58560
+ this.GetCallAcutionSplitYV2=function(splitData, arySource)
58561
+ {
58562
+ if (!this.IsCallAuctionFrame()) return null;
58563
+
58564
+ var bBeforeData=(this.IsBeforeData==true && this.BeforeOpenData && (this.BeforeOpenData.Ver==2.0 || this.BeforeOpenData.Ver==3.0));
58565
+ var bAfterData=(this.IsAfterData==true && this.AfterCloseData && (this.AfterCloseData.Ver==2.0 || this.AfterCloseData.Ver==3.0));
58566
+
58567
+ var bottom=this.Frame.ChartBorder.GetBottomEx();
58568
+ var height=this.Frame.ChartBorder.GetHeightEx();
58569
+ var bHScreen=this.Frame.IsHScreen;
58570
+ if (this.Frame.IsHScreen)
58571
+ {
58572
+ var border=this.Frame.GetBorder();
58573
+ var width=border.RightEx-border.LeftEx;
58574
+ }
58575
+
58576
+ if (bBeforeData || bAfterData)
58577
+ {
58578
+ var aryHorizontalInfo=[];
58579
+ for(var i=0;i<arySource.length;++i)
58580
+ {
58581
+ var hItem=arySource[i];
58582
+ if (!hItem || !IFrameSplitOperator.IsNumber(hItem.Value)) continue;
58583
+ var y=this.Frame.GetYFromData(hItem.Value);
58584
+
58585
+ var item=new CoordinateInfo();
58586
+ item.Value=hItem.Value;
58587
+ item.LineType=8;
58588
+ if (bBeforeData)
58589
+ {
58590
+ if (bHScreen)
58591
+ {
58592
+ var value=(y-border.LeftEx)/width*(this.BeforeOpenData.VolMax-this.BeforeOpenData.VolMin)+this.BeforeOpenData.VolMin;
58593
+ }
58594
+ else
58595
+ {
58596
+ var value=(bottom-y)/height*(this.BeforeOpenData.VolMax-this.BeforeOpenData.VolMin)+this.BeforeOpenData.VolMin;
58597
+ }
58598
+
58599
+ item.Message[0]=this.FormatValueString(value);
58600
+ }
58601
+
58602
+ if (bAfterData && (this.ShareAfterVol==0 || this.ShareAfterVol==2) )
58603
+ {
58604
+ if (bHScreen)
58605
+ {
58606
+ var value=(y-border.LeftEx)/width*(this.AfterCloseData.VolMax-this.AfterCloseData.VolMin)+this.AfterCloseData.VolMin;
58607
+ }
58608
+ else
58609
+ {
58610
+ var value=(bottom-y)/height*(this.AfterCloseData.VolMax-this.AfterCloseData.VolMin)+this.AfterCloseData.VolMin;
58611
+ }
58612
+
58613
+ item.Message[1]=this.FormatValueString(value);
58614
+ }
58615
+
58616
+ aryHorizontalInfo.push(item);
58617
+ }
58618
+
58619
+ return { HorizontalInfo:aryHorizontalInfo, IsBeforeData:bBeforeData, IsAfterData:bAfterData };
58620
+ }
58621
+
58622
+ var bMultiDayBeforeData=false, bMultiDayAfterData=false;
58623
+ var beforeDayData=null, afterDayData=null;
58624
+ if (this.MultiDayBeforeOpenData && IFrameSplitOperator.IsNonEmptyArray(this.MultiDayBeforeOpenData))
58625
+ {
58626
+ bMultiDayBeforeData=true;
58627
+ var firstDayData=this.MultiDayBeforeOpenData[0];
58628
+ if (firstDayData.Ver==2.0 || firstDayData.Ver==3.0)
58629
+ beforeDayData=firstDayData;
58630
+ }
58631
+
58632
+ if (this.MultiDayAfterCloseData && IFrameSplitOperator.IsNonEmptyArray(this.MultiDayAfterCloseData))
58633
+ {
58634
+ bMultiDayAfterData=true;
58635
+ var firstDayData=this.MultiDayAfterCloseData[0];
58636
+ if (firstDayData.Ver==2.0 || firstDayData.Ver==3.0)
58637
+ afterDayData=firstDayData;
58638
+ }
58639
+
58640
+ if (bMultiDayBeforeData || bMultiDayAfterData)
58641
+ {
58642
+ var aryHorizontalInfo=[];
58643
+ for(var i=0;i<arySource.length;++i)
58644
+ {
58645
+ var hItem=arySource[i];
58646
+ if (!hItem || !IFrameSplitOperator.IsNumber(hItem.Value)) continue;
58647
+ var y=this.Frame.GetYFromData(hItem.Value);
58648
+
58649
+ var item=new CoordinateInfo();
58650
+ item.Value=hItem.Value;
58651
+ item.LineType=9;
58652
+
58653
+ var isVaild=false;
58654
+ if (beforeDayData)
58655
+ {
58656
+ if (bHScreen)
58657
+ {
58658
+ var value=(y-border.LeftEx)/width*(beforeDayData.VolMax-beforeDayData.VolMin)+beforeDayData.VolMin;
58659
+ }
58660
+ else
58661
+ {
58662
+ var value=(bottom-y)/height*(beforeDayData.VolMax-beforeDayData.VolMin)+beforeDayData.VolMin;
58663
+ }
58664
+
58665
+ item.Message[0]=this.FormatValueString(value);
58666
+ isVaild=true;
58667
+ }
58668
+
58669
+ if (afterDayData && (this.ShareAfterVol==0 || this.ShareAfterVol==2))
58670
+ {
58671
+ if (bHScreen)
58672
+ {
58673
+ var value=(y-border.LeftEx)/width*(afterDayData.VolMax-afterDayData.VolMin)+afterDayData.VolMin;
58674
+ }
58675
+ else
58676
+ {
58677
+ var value=(bottom-y)/height*(afterDayData.VolMax-afterDayData.VolMin)+afterDayData.VolMin;
58678
+ }
58679
+
58680
+ item.Message[1]=this.FormatValueString(value);
58681
+ isVaild=true;
58682
+ }
58683
+
58684
+ if (isVaild) aryHorizontalInfo.push(item);
58685
+ }
58686
+
58687
+ if (IFrameSplitOperator.IsNonEmptyArray(aryHorizontalInfo))
58688
+ return { HorizontalInfo:aryHorizontalInfo, IsBeforeData:bMultiDayBeforeData, IsAfterData:bMultiDayAfterData };
58689
+ }
58690
+
58691
+ return null;
58692
+ }
58693
+
58694
+ /* 废弃 使用 CallAcutionSplitYV2
58405
58695
  this.CallAcutionSplitY=function(count,splitData)
58406
58696
  {
58407
- if (this.Frame.Identify!=1) return null;
58697
+ if (!this.IsCallAuctionFrame()) return;
58698
+
58408
58699
  var aryCallAcution=this.GetCallAcutionSplitY(count,splitData);
58409
58700
  if (!aryCallAcution) return;
58410
58701
 
@@ -58431,10 +58722,21 @@ function FrameSplitY()
58431
58722
  this.Frame.HorizontalInfo.push(item);
58432
58723
  }
58433
58724
  }
58725
+ */
58726
+
58727
+ this.IsCallAuctionFrame=function()
58728
+ {
58729
+ if (this.Frame.Identify==1) return true;
58730
+
58731
+ if (!this.HQChart || !this.HQChart.IsCallAuctionFrame) return false;
58732
+
58733
+ return this.HQChart.IsCallAuctionFrame(this.Frame.Identify);
58734
+ }
58434
58735
 
58736
+ /* 废弃 使用 GetCallAcutionSplitYV2
58435
58737
  this.GetCallAcutionSplitY=function(count,splitData)
58436
58738
  {
58437
- if (this.Frame.Identify!=1) return null;
58739
+ if (!this.IsCallAuctionFrame()) return null;
58438
58740
 
58439
58741
  var isBeforeData=(this.IsBeforeData==true && this.BeforeOpenData && (this.BeforeOpenData.Ver==2.0 || this.BeforeOpenData.Ver==3.0));
58440
58742
  var isAfterData=(this.IsAfterData==true && this.AfterCloseData && (this.AfterCloseData.Ver==2.0 || this.AfterCloseData.Ver==3.0));
@@ -58449,7 +58751,7 @@ function FrameSplitY()
58449
58751
  for(var i=0;i<count;++i)
58450
58752
  {
58451
58753
  var item=new CoordinateInfo();
58452
- var yValue=intervalY*i;
58754
+ var yValue=intervalY*i+splitData.Min;
58453
58755
  item.Value=yValue;
58454
58756
  item.LineType=8;
58455
58757
  if (isBeforeData )
@@ -58499,7 +58801,7 @@ function FrameSplitY()
58499
58801
  for(var i=0;i<count;++i)
58500
58802
  {
58501
58803
  var item=new CoordinateInfo();
58502
- var yValue=intervalY*i;
58804
+ var yValue=intervalY*i+splitData.Min;
58503
58805
  item.Value=yValue;
58504
58806
  item.LineType=9;
58505
58807
  var isVaild=false;
@@ -58526,6 +58828,7 @@ function FrameSplitY()
58526
58828
 
58527
58829
  return null;
58528
58830
  }
58831
+ */
58529
58832
 
58530
58833
  this.RightFrameSplitY=function()
58531
58834
  {
@@ -61843,6 +62146,7 @@ function HQPriceStringFormat()
61843
62146
  this.RComplexText; //{ Space:2 间距, Text:[ {Color:, Text: }] } 支持单行多颜色
61844
62147
  this.Point;
61845
62148
  this.ClientPos=-1;
62149
+ this.HQChart;
61846
62150
 
61847
62151
  this.ExtendChartPaint;
61848
62152
  this.RExtendText=[];
@@ -61995,6 +62299,32 @@ function HQPriceStringFormat()
61995
62299
  if (this.DataFormatType==1) this.Text=IFrameSplitOperator.FormatValueThousandsString(this.Value,defaultfloatPrecision);
61996
62300
  else this.Text=IFrameSplitOperator.FormatValueString(this.Value,defaultfloatPrecision,this.LanguageID);
61997
62301
  if (IFrameSplitOperator.IsNumber(this.RValue)) this.RText=IFrameSplitOperator.FormatValueString(this.RValue,defaultfloatPrecision,this.LanguageID);
62302
+
62303
+ var bCallAuction=false;
62304
+ if (this.HQChart && this.HQChart.IsCallAuctionFrame)
62305
+ bCallAuction=this.HQChart.IsCallAuctionFrame(this.FrameID);
62306
+
62307
+ if (bCallAuction)
62308
+ {
62309
+ if (this.ClientPos==2)
62310
+ {
62311
+ this.GetBeforeOpen();
62312
+ }
62313
+ else if (this.ClientPos==3)
62314
+ {
62315
+ if (this.ShareAfterVol==0 || this.ShareAfterVol==2)
62316
+ this.GetAfterClose();
62317
+ }
62318
+ else if (this.ClientPos>=200 && this.ClientPos<=299)
62319
+ {
62320
+ this.GetMultiDayBeforeOpen();
62321
+ }
62322
+ else if (this.ClientPos>=300 && this.ClientPos<=399 )
62323
+ {
62324
+ if (this.ShareAfterVol==0 || this.ShareAfterVol==2)
62325
+ this.GetMultiDayAfterClose();
62326
+ }
62327
+ }
61998
62328
  }
61999
62329
 
62000
62330
  if (this.GetEventCallback)
@@ -64158,7 +64488,17 @@ function DynamicMinuteTitlePainting()
64158
64488
  {
64159
64489
  this.OnDrawEventCallback(null);
64160
64490
 
64161
- if (this.IsAlwaysShowLastData)
64491
+ var bShowLastData=this.IsAlwaysShowLastData
64492
+ if (this.DrawStatus && this.DrawStatus.IsTitleShowLatestData)
64493
+ {
64494
+ var status=this.DrawStatus;
64495
+ if (!IFrameSplitOperator.IsNumber(status.FrameID) || status.FrameID<0)
64496
+ bShowLastData=true;
64497
+ else if (status.CorssCursorTouchEnd && status.IsOnTouch==false)
64498
+ bShowLastData=true;
64499
+ }
64500
+
64501
+ if (bShowLastData)
64162
64502
  {
64163
64503
  this.Canvas.save();
64164
64504
  this.DrawLastDataItem();
@@ -65133,8 +65473,11 @@ function DynamicChartTitlePainting()
65133
65473
  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) ))
65134
65474
  {
65135
65475
  var result={ PreventDefault:false }
65136
- this.DrawMainCallAuction({ Left:left, Right:right, Bottom:bottom }, rtText, result);
65137
- if (result.PreventDefault===false) this.DrawMainIndexTitle({ Left:left, Right:right, Bottom:bottom }, isShowLastData, rtText);
65476
+ var yRight=right;
65477
+ if (this.Frame.ToolbarCacheSize && this.Frame.ToolbarCacheSize.RToolbar) yRight=this.Frame.ToolbarCacheSize.RToolbar.Left-2; //右侧按钮宽度要去掉
65478
+ this.DrawMainCallAuction({ Left:left, Right:yRight, Bottom:bottom }, rtText, result);
65479
+ if (result.PreventDefault===false) this.DrawMainIndexTitle({ Left:left, Right:yRight, Bottom:bottom }, isShowLastData, rtText);
65480
+ if (IFrameSplitOperator.IsNumber(rtText.Bottom)) bottom=rtText.Bottom;
65138
65481
  }
65139
65482
  else
65140
65483
  {
@@ -83395,6 +83738,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
83395
83738
  this.ChartCorssCursor.StringFormatY.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
83396
83739
  this.ChartCorssCursor.StringFormatY.LanguageID=this.LanguageID;
83397
83740
  this.ChartCorssCursor.StringFormatY.ExtendChartPaint=this.ExtendChartPaint;
83741
+ this.ChartCorssCursor.StringFormatY.HQChart=this;
83398
83742
  this.ChartCorssCursor.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
83399
83743
  this.ChartCorssCursor.OnChangeStatusCallback=(data, obj)=>{ this.OnChangeCorssCursorStatus(data,obj); }
83400
83744
 
@@ -93262,6 +93606,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
93262
93606
  this.ChartCorssCursor.StringFormatY.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
93263
93607
  this.ChartCorssCursor.StringFormatY.LanguageID=this.LanguageID;
93264
93608
  this.ChartCorssCursor.StringFormatY.ShareAfterVol=this.ShareAfterVol;
93609
+ this.ChartCorssCursor.StringFormatY.HQChart=this;
93265
93610
  this.ChartCorssCursor.CallAcutionXOperator=new CallAcutionXOperator();
93266
93611
  this.ChartCorssCursor.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
93267
93612
  this.ChartCorssCursor.OnChangeStatusCallback=(data, obj)=>{ this.OnChangeCorssCursorStatus(data,obj); }
@@ -93379,6 +93724,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
93379
93724
  frame.YSplitOperator.LanguageID=this.LanguageID;
93380
93725
  frame.YSplitOperator.FrameSplitData=this.FrameSplitData.get('double');
93381
93726
  frame.YSplitOperator.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
93727
+ frame.YSplitOperator.HQChart=this;
93382
93728
  if (i==1) frame.YSplitOperator.ShareAfterVol=this.ShareAfterVol;
93383
93729
  }
93384
93730
 
@@ -93454,6 +93800,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
93454
93800
  frame.YSplitOperator.FrameSplitData=this.FrameSplitData.get('double');
93455
93801
  frame.YSplitOperator.Frame=frame;
93456
93802
  frame.YSplitOperator.ChartBorder=border;
93803
+ frame.YSplitOperator.HQChart=this;
93457
93804
  frame.XSplitOperator=new FrameSplitMinuteX();
93458
93805
  frame.XSplitOperator.Frame=frame;
93459
93806
  frame.XSplitOperator.ChartBorder=border;
@@ -95216,6 +95563,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
95216
95563
  this.UpdateCallCationData(beforeOpenData,afterCloseData);
95217
95564
  this.UpdateLineColorData(aryColorData,data.stock[0].date);
95218
95565
  this.UpdateLatestMinuteData(aryMinuteData, data.stock[0].date, data.stock[0]);
95566
+ this.UpdateTradeStatusData(data.TradeStatus);
95219
95567
  this.UpdateHistoryMinuteUI(updateTime);
95220
95568
  this.RecvMinuteDataEvent({FunctionName:"RecvMinuteData"} );
95221
95569
  this.RequestOverlayMinuteData(); //请求叠加数据 (主数据下载完再下载)
@@ -95242,6 +95590,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
95242
95590
 
95243
95591
  this.ColorLineData=aryColorData;
95244
95592
 
95593
+ this.UpdateTradeStatusData(data.TradeStatus);
95245
95594
  this.UpdateMinuteUI(data.stock[0], {FunctionName:"RecvMinuteData", Day:{ IsFirstData:bFirstData} });
95246
95595
 
95247
95596
  if (data.AutoUpdate===false) //不执行自动更新
@@ -95850,6 +96199,20 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
95850
96199
  this.ChartPaint[2].MultiDayBeforeOpenData=multiBeforeOpenData;
95851
96200
  this.ChartPaint[2].MultiDayAfterCloseData=multiAfterCloseData;
95852
96201
 
96202
+ for(var i=0;i<this.ChartPaintEx.length;++i)
96203
+ {
96204
+ var item=this.ChartPaintEx[i];
96205
+ if (item.ClassName=="ChartMinuteBarCallAuction")
96206
+ {
96207
+ item.YClose=yClose;
96208
+ item.Symbol=this.Symbol;
96209
+ item.BeforeOpenData=this.BeforeOpenData;
96210
+ item.AfterCloseData=this.AfterCloseData;
96211
+ item.MultiDayBeforeOpenData=multiBeforeOpenData;
96212
+ item.MultiDayAfterCloseData=multiAfterCloseData;
96213
+ }
96214
+ }
96215
+
95853
96216
  for(var i in this.Frame.SubFrame)
95854
96217
  {
95855
96218
  var item=this.Frame.SubFrame[i];
@@ -95962,6 +96325,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
95962
96325
  frame.YSplitOperator.FrameSplitData=this.FrameSplitData.get('double');
95963
96326
  frame.YSplitOperator.Frame=frame;
95964
96327
  frame.YSplitOperator.ChartBorder=frame.ChartBorder;
96328
+ frame.YSplitOperator.HQChart=this;
95965
96329
  frame.YSplitOperator.SplitCount=subFrame.Frame.YSplitOperator.SplitCount;
95966
96330
  frame.YSplitOperator.GetEventCallback=(id)=> { return this.GetEventCallback(id); };
95967
96331
  frame.YSplitOperator.OverlayIdentify=overlayFrame.Identify;
@@ -96964,6 +97328,25 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
96964
97328
 
96965
97329
  return data;
96966
97330
  }
97331
+
97332
+ this.IsCallAuctionFrame=function(frameID)
97333
+ {
97334
+ if (!IFrameSplitOperator.IsNonEmptyArray(this.ChartPaintEx)) return false;
97335
+ if (!IFrameSplitOperator.IsNonEmptyArray(this.Frame.SubFrame)) return false;
97336
+ if (frameID<0 || frameID>=this.Frame.SubFrame.length) return false;
97337
+ var subItem=this.Frame.SubFrame[frameID];
97338
+ if (!subItem || !subItem.Frame) return false;
97339
+
97340
+ var subFrame=subItem.Frame;
97341
+ for(var i=0;i<this.ChartPaintEx.length;++i)
97342
+ {
97343
+ var item=this.ChartPaintEx[i];
97344
+ if (item.ChartFrame && item.ChartFrame.Guid==subFrame.Guid)
97345
+ return true;
97346
+ }
97347
+
97348
+ return false;
97349
+ }
96967
97350
  }
96968
97351
 
96969
97352
  //盘前数据
@@ -98787,6 +99170,7 @@ function KLineChartHScreenContainer(uielement)
98787
99170
  this.ChartCorssCursor.StringFormatY=g_DivTooltipDataForamt.Create("CorssCursor_YStringFormat");
98788
99171
  this.ChartCorssCursor.StringFormatY.LanguageID=this.LanguageID;
98789
99172
  this.ChartCorssCursor.StringFormatY.ExtendChartPaint=this.ExtendChartPaint;
99173
+ this.ChartCorssCursor.StringFormatY.HQChart=this;
98790
99174
  this.ChartCorssCursor.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
98791
99175
 
98792
99176
  //创建等待提示
@@ -98968,6 +99352,7 @@ function MinuteChartHScreenContainer(uielement)
98968
99352
  this.ChartCorssCursor.StringFormatX.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
98969
99353
  this.ChartCorssCursor.StringFormatY=g_DivTooltipDataForamt.Create("CorssCursor_YStringFormat");
98970
99354
  this.ChartCorssCursor.StringFormatY.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
99355
+ this.ChartCorssCursor.StringFormatY.HQChart=this;
98971
99356
  this.ChartCorssCursor.CallAcutionXOperator=new CallAcutionXOperator();
98972
99357
  this.ChartCorssCursor.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
98973
99358
 
@@ -99045,6 +99430,7 @@ function MinuteChartHScreenContainer(uielement)
99045
99430
  frame.YSplitOperator.LanguageID=this.LanguageID;
99046
99431
  frame.YSplitOperator.FrameSplitData=this.FrameSplitData.get('double');
99047
99432
  frame.YSplitOperator.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
99433
+ frame.YSplitOperator.HQChart=this;
99048
99434
  }
99049
99435
 
99050
99436
  frame.YSplitOperator.Frame=frame;
@@ -158812,7 +159198,7 @@ function HQChartScriptWorker()
158812
159198
 
158813
159199
 
158814
159200
 
158815
- var HQCHART_VERSION="1.1.14730";
159201
+ var HQCHART_VERSION="1.1.14741";
158816
159202
 
158817
159203
  function PrintHQChartVersion()
158818
159204
  {
@@ -158976,7 +159362,8 @@ export default {
158976
159362
  JSCHART_BUTTON_ID:JSCHART_BUTTON_ID,
158977
159363
  JSCHART_DATA_FIELD_ID:JSCHART_DATA_FIELD_ID,
158978
159364
  JSCHART_WORKER_MESSAGE_ID:JSCHART_WORKER_MESSAGE_ID,
158979
- JSCHART_MENU_ID:JSCHART_MENU_ID
159365
+ JSCHART_MENU_ID:JSCHART_MENU_ID,
159366
+ JSCHART_TRADE_STATUS_ID, //交易状态
158980
159367
  },
158981
159368
 
158982
159369