hqchart 1.1.14734 → 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.
@@ -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轴左右拖动数据(手势才有)
@@ -15863,6 +15877,26 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
15863
15877
  {
15864
15878
  return false;
15865
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
+ }
15866
15900
  }
15867
15901
 
15868
15902
  function GetDevicePixelRatio()
@@ -16398,6 +16432,40 @@ function ChartBorder()
16398
16432
  {
16399
16433
  return this.TitleHeight;
16400
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
+ }
16401
16469
  }
16402
16470
 
16403
16471
  //框架外部挂接
@@ -58376,7 +58444,7 @@ function FrameSplitY()
58376
58444
 
58377
58445
  this.RightFrameSplitY();
58378
58446
  this.MainOverlayFrameSplitY(); //主图Y轴绑定叠加Y轴坐标
58379
- this.CallAcutionSplitY(this.SplitCount,splitData);
58447
+ this.CallAcutionSplitYV2(splitData, this.Frame.HorizontalInfo.slice());
58380
58448
 
58381
58449
  if (this.EnableRemoveZero) this.RemoveZero(this.Frame.HorizontalInfo);
58382
58450
 
@@ -58457,6 +58525,173 @@ function FrameSplitY()
58457
58525
  }
58458
58526
  }
58459
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
58460
58695
  this.CallAcutionSplitY=function(count,splitData)
58461
58696
  {
58462
58697
  if (!this.IsCallAuctionFrame()) return;
@@ -58487,6 +58722,7 @@ function FrameSplitY()
58487
58722
  this.Frame.HorizontalInfo.push(item);
58488
58723
  }
58489
58724
  }
58725
+ */
58490
58726
 
58491
58727
  this.IsCallAuctionFrame=function()
58492
58728
  {
@@ -58497,6 +58733,7 @@ function FrameSplitY()
58497
58733
  return this.HQChart.IsCallAuctionFrame(this.Frame.Identify);
58498
58734
  }
58499
58735
 
58736
+ /* 废弃 使用 GetCallAcutionSplitYV2
58500
58737
  this.GetCallAcutionSplitY=function(count,splitData)
58501
58738
  {
58502
58739
  if (!this.IsCallAuctionFrame()) return null;
@@ -58591,6 +58828,7 @@ function FrameSplitY()
58591
58828
 
58592
58829
  return null;
58593
58830
  }
58831
+ */
58594
58832
 
58595
58833
  this.RightFrameSplitY=function()
58596
58834
  {
@@ -64250,7 +64488,17 @@ function DynamicMinuteTitlePainting()
64250
64488
  {
64251
64489
  this.OnDrawEventCallback(null);
64252
64490
 
64253
- 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)
64254
64502
  {
64255
64503
  this.Canvas.save();
64256
64504
  this.DrawLastDataItem();
@@ -95315,6 +95563,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
95315
95563
  this.UpdateCallCationData(beforeOpenData,afterCloseData);
95316
95564
  this.UpdateLineColorData(aryColorData,data.stock[0].date);
95317
95565
  this.UpdateLatestMinuteData(aryMinuteData, data.stock[0].date, data.stock[0]);
95566
+ this.UpdateTradeStatusData(data.TradeStatus);
95318
95567
  this.UpdateHistoryMinuteUI(updateTime);
95319
95568
  this.RecvMinuteDataEvent({FunctionName:"RecvMinuteData"} );
95320
95569
  this.RequestOverlayMinuteData(); //请求叠加数据 (主数据下载完再下载)
@@ -95341,6 +95590,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
95341
95590
 
95342
95591
  this.ColorLineData=aryColorData;
95343
95592
 
95593
+ this.UpdateTradeStatusData(data.TradeStatus);
95344
95594
  this.UpdateMinuteUI(data.stock[0], {FunctionName:"RecvMinuteData", Day:{ IsFirstData:bFirstData} });
95345
95595
 
95346
95596
  if (data.AutoUpdate===false) //不执行自动更新
@@ -158948,7 +159198,7 @@ function HQChartScriptWorker()
158948
159198
 
158949
159199
 
158950
159200
 
158951
- var HQCHART_VERSION="1.1.14733";
159201
+ var HQCHART_VERSION="1.1.14741";
158952
159202
 
158953
159203
  function PrintHQChartVersion()
158954
159204
  {
@@ -159112,7 +159362,8 @@ export default {
159112
159362
  JSCHART_BUTTON_ID:JSCHART_BUTTON_ID,
159113
159363
  JSCHART_DATA_FIELD_ID:JSCHART_DATA_FIELD_ID,
159114
159364
  JSCHART_WORKER_MESSAGE_ID:JSCHART_WORKER_MESSAGE_ID,
159115
- JSCHART_MENU_ID:JSCHART_MENU_ID
159365
+ JSCHART_MENU_ID:JSCHART_MENU_ID,
159366
+ JSCHART_TRADE_STATUS_ID, //交易状态
159116
159367
  },
159117
159368
 
159118
159369