hqchart 1.1.14947 → 1.1.14956
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/umychart.vue.js +54 -33
- package/package.json +1 -1
- package/src/jscommon/umychart.NetworkFilterTest.js +287 -33
- package/src/jscommon/umychart.js +285 -60
- package/src/jscommon/umychart.testdata.js +286 -32
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +286 -61
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.NetworkFilterTest.vue.js +287 -33
- package/src/jscommon/umychart.vue/umychart.vue.js +286 -61
package/src/jscommon/umychart.js
CHANGED
|
@@ -11198,7 +11198,16 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
11198
11198
|
var left=null,right=null;
|
|
11199
11199
|
if (IFrameSplitOperator.IsBool(srcParam.Left)) left=srcParam.Left;
|
|
11200
11200
|
if (IFrameSplitOperator.IsBool(srcParam.Right)) right=srcParam.Right;
|
|
11201
|
-
|
|
11201
|
+
|
|
11202
|
+
var multiDay=null;
|
|
11203
|
+
if (srcParam.MultiDay)
|
|
11204
|
+
{
|
|
11205
|
+
var item=srcParam.MultiDay;
|
|
11206
|
+
multiDay={ };
|
|
11207
|
+
if (IFrameSplitOperator.IsBool(item.Left)) multiDay.Left=item.Left;
|
|
11208
|
+
if (IFrameSplitOperator.IsBool(item.Right)) multiDay.Right=item.Right;
|
|
11209
|
+
}
|
|
11210
|
+
this.ShowCallAuctionData({ Left:left, Right:right, MultiDay:multiDay });
|
|
11202
11211
|
}
|
|
11203
11212
|
|
|
11204
11213
|
break;
|
|
@@ -11774,7 +11783,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
11774
11783
|
{
|
|
11775
11784
|
//清空当前鼠标坐标
|
|
11776
11785
|
this.LastPoint.X=null;
|
|
11777
|
-
this.LastPoint.Y=null
|
|
11786
|
+
this.LastPoint.Y=null;
|
|
11778
11787
|
this.HideTooltip();
|
|
11779
11788
|
this.CloseTooltipDialog();
|
|
11780
11789
|
}
|
|
@@ -11783,7 +11792,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
11783
11792
|
if (IFrameSplitOperator.IsNumber(data.X) && IFrameSplitOperator.IsNumber(data.Y))
|
|
11784
11793
|
{
|
|
11785
11794
|
//设置鼠标位置
|
|
11786
|
-
if (this.LastPoint && !IFrameSplitOperator.IsNumber(this.LastPoint.X)
|
|
11795
|
+
if (this.LastPoint && (!IFrameSplitOperator.IsNumber(this.LastPoint.X) || !IFrameSplitOperator.IsNumber(this.LastPoint.Y)))
|
|
11787
11796
|
{
|
|
11788
11797
|
this.LastPoint.X=data.X;
|
|
11789
11798
|
this.LastPoint.Y=data.Y;
|
|
@@ -35324,10 +35333,10 @@ function ChartMinuteVolumBar()
|
|
|
35324
35333
|
var unit=this.GetVolUnit();
|
|
35325
35334
|
if (callAutionData.Ver==1.0)
|
|
35326
35335
|
{
|
|
35327
|
-
for(var i
|
|
35336
|
+
for(var i=0;i<callAutionData.Data.length;++i)
|
|
35328
35337
|
{
|
|
35329
35338
|
var item=callAutionData.Data[i];
|
|
35330
|
-
if (!item || !IFrameSplitOperator.IsNumber(item.Vol[0])) continue;
|
|
35339
|
+
if (!item || !IFrameSplitOperator.IsNonEmptyArray(item.Vol) || !IFrameSplitOperator.IsNumber(item.Vol[0])) continue;
|
|
35331
35340
|
|
|
35332
35341
|
if (isBeforeOpen)
|
|
35333
35342
|
{
|
|
@@ -35361,11 +35370,11 @@ function ChartMinuteVolumBar()
|
|
|
35361
35370
|
{
|
|
35362
35371
|
var range={ Max: callAutionData.VolMax, Min:callAutionData.VolMin }
|
|
35363
35372
|
|
|
35364
|
-
for(var i
|
|
35373
|
+
for(var i=0; i<callAutionData.Data.length; ++i)
|
|
35365
35374
|
{
|
|
35366
35375
|
var item=callAutionData.Data[i];
|
|
35367
35376
|
if (!item) continue;
|
|
35368
|
-
if (IFrameSplitOperator.IsPlusNumber(item.Vol[0]))
|
|
35377
|
+
if (item.Vol && IFrameSplitOperator.IsPlusNumber(item.Vol[0]))
|
|
35369
35378
|
{
|
|
35370
35379
|
if (isBeforeOpen)
|
|
35371
35380
|
{
|
|
@@ -35395,7 +35404,7 @@ function ChartMinuteVolumBar()
|
|
|
35395
35404
|
this.Canvas.stroke();
|
|
35396
35405
|
}
|
|
35397
35406
|
|
|
35398
|
-
if (IFrameSplitOperator.IsPlusNumber(item.Vol[1]))
|
|
35407
|
+
if (item.Vol && IFrameSplitOperator.IsPlusNumber(item.Vol[1]))
|
|
35399
35408
|
{
|
|
35400
35409
|
if (isBeforeOpen)
|
|
35401
35410
|
{
|
|
@@ -40375,16 +40384,23 @@ function ChartMinutePriceLine()
|
|
|
40375
40384
|
var item=callAutionData.Data[i];
|
|
40376
40385
|
if (!item || !IFrameSplitOperator.IsNumber(item.Price))
|
|
40377
40386
|
{
|
|
40378
|
-
if (i==0 && isBeforeOpen
|
|
40387
|
+
if (i==0 && isBeforeOpen)
|
|
40379
40388
|
{
|
|
40380
|
-
|
|
40381
|
-
var
|
|
40389
|
+
//盘前集合竞价起始点为昨收或昨结算
|
|
40390
|
+
var price=callAutionData.YClose;
|
|
40391
|
+
if (IFrameSplitOperator.IsNumber(callAutionData.YClearing)) price=callAutionData.YClearing;
|
|
40382
40392
|
|
|
40383
|
-
|
|
40384
|
-
|
|
40385
|
-
|
|
40386
|
-
|
|
40387
|
-
|
|
40393
|
+
if (IFrameSplitOperator.IsNumber(price))
|
|
40394
|
+
{
|
|
40395
|
+
var x=this.ChartFrame.GetLeftExtendXFromIndex(i,callAutionData);
|
|
40396
|
+
var y=this.ChartFrame.GetLeftExtendYFromData(price);
|
|
40397
|
+
|
|
40398
|
+
this.Canvas.strokeStyle=this.BeforeLineColor;
|
|
40399
|
+
this.Canvas.beginPath();
|
|
40400
|
+
if (isHScreen) this.Canvas.moveTo(y,x);
|
|
40401
|
+
else this.Canvas.moveTo(x,y);
|
|
40402
|
+
bFirstPoint=false;
|
|
40403
|
+
}
|
|
40388
40404
|
}
|
|
40389
40405
|
|
|
40390
40406
|
continue;
|
|
@@ -90657,7 +90673,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
90657
90673
|
|
|
90658
90674
|
var bShow=(this.IsShowAfterData && this.IsShowBeforeData);
|
|
90659
90675
|
var subItem={ Name:"盘后盘前(单日)",Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID, Args:[{ Left:!bShow, Right:!bShow } ] }, Checked:bShow };
|
|
90660
|
-
|
|
90676
|
+
item.SubMenu.push(subItem);
|
|
90661
90677
|
|
|
90662
90678
|
var subItem={ Name:"盘前(单日)",Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID, Args:[{ Left:!this.IsShowBeforeData} ] }, Checked:this.IsShowBeforeData };
|
|
90663
90679
|
item.SubMenu.push(subItem);
|
|
@@ -90665,6 +90681,16 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
90665
90681
|
var subItem={ Name:"盘后(单日)",Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID, Args:[{ Right:!this.IsShowAfterData} ] }, Checked:this.IsShowAfterData };
|
|
90666
90682
|
item.SubMenu.push(subItem);
|
|
90667
90683
|
|
|
90684
|
+
var bShow=(this.IsShowMultiDayBeforeData && this.IsShowMultiDayAfterData);
|
|
90685
|
+
var subItem={ Name:"盘后盘前(多日)",Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID, Args:[{ MultiDay:{ Left:!bShow, Right:!bShow} } ] }, Checked:bShow };
|
|
90686
|
+
item.SubMenu.push(subItem);
|
|
90687
|
+
|
|
90688
|
+
var subItem={ Name:"盘前(多日)",Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID, Args:[{ MultiDay:{ Left:!this.IsShowMultiDayBeforeData } } ] }, Checked:this.IsShowMultiDayBeforeData };
|
|
90689
|
+
item.SubMenu.push(subItem);
|
|
90690
|
+
|
|
90691
|
+
var subItem={ Name:"盘后(多日)",Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID, Args:[{ MultiDay:{ Right:!this.IsShowMultiDayAfterData } } ] }, Checked:this.IsShowMultiDayAfterData };
|
|
90692
|
+
item.SubMenu.push(subItem);
|
|
90693
|
+
|
|
90668
90694
|
aryMenu.splice(4,0,item);
|
|
90669
90695
|
}
|
|
90670
90696
|
|
|
@@ -92553,6 +92579,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
92553
92579
|
//更新最新的几条数据
|
|
92554
92580
|
this.UpdateLatestMinuteDataV2=function(minuteData)
|
|
92555
92581
|
{
|
|
92582
|
+
if (!minuteData || !IFrameSplitOperator.IsNonEmptyArray(minuteData.Data)) return;
|
|
92583
|
+
|
|
92556
92584
|
if (this.DayCount>1)
|
|
92557
92585
|
{
|
|
92558
92586
|
if (!this.DayData) return;
|
|
@@ -92561,7 +92589,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
92561
92589
|
for(var i=0; i<this.DayData.length; ++i)
|
|
92562
92590
|
{
|
|
92563
92591
|
var item=this.DayData[i];
|
|
92564
|
-
if (item.Date===
|
|
92592
|
+
if (item.Date===minuteData.Date)
|
|
92565
92593
|
{
|
|
92566
92594
|
findItem=item;
|
|
92567
92595
|
break;
|
|
@@ -92672,6 +92700,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
92672
92700
|
|
|
92673
92701
|
var callCation={ Before:this.IsShowBeforeData, After:this.IsShowAfterData } //集合竞价
|
|
92674
92702
|
if (this.DayCount>1) callCation={ Before:this.IsShowMultiDayBeforeData, After:this.IsShowMultiDayAfterData } //多日集合竞价
|
|
92703
|
+
callCation.Latest={ Before:this.GetLatestBeforeOpenItem(), After:this.GetLatestAfterCloseItem() }; //最新一条的盘前盘后数据
|
|
92675
92704
|
|
|
92676
92705
|
var obj=
|
|
92677
92706
|
{
|
|
@@ -92747,24 +92776,50 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
92747
92776
|
this.ColorLineData=aryColorLineData;
|
|
92748
92777
|
}
|
|
92749
92778
|
|
|
92750
|
-
this.UpdateCallCationData=function(beforeOpenData,afterCloseData)
|
|
92779
|
+
this.UpdateCallCationData=function(beforeOpenData,afterCloseData,option)
|
|
92751
92780
|
{
|
|
92752
|
-
|
|
92781
|
+
var dataType=0;
|
|
92782
|
+
if (option && IFrameSplitOperator.IsNumber(option.DataType)) dataType=option.DataType;
|
|
92783
|
+
|
|
92784
|
+
if (dataType==1)
|
|
92753
92785
|
{
|
|
92754
|
-
|
|
92755
|
-
|
|
92756
|
-
this.MultiDayBeforeOpenData[this.MultiDayBeforeOpenData.length-1]
|
|
92757
|
-
|
|
92758
|
-
|
|
92759
|
-
|
|
92786
|
+
if (beforeOpenData && IFrameSplitOperator.IsNonEmptyArray(this.MultiDayBeforeOpenData))
|
|
92787
|
+
{
|
|
92788
|
+
var lastItem=this.MultiDayBeforeOpenData[this.MultiDayBeforeOpenData.length-1];
|
|
92789
|
+
if (lastItem.Date==beforeOpenData.Date) //增量更新
|
|
92790
|
+
{
|
|
92791
|
+
this.UpdateLatestCallCationData(lastItem, beforeOpenData);
|
|
92792
|
+
}
|
|
92793
|
+
}
|
|
92760
92794
|
|
|
92761
|
-
|
|
92795
|
+
if (afterCloseData && IFrameSplitOperator.IsNonEmptyArray(this.MultiDayAfterCloseData))
|
|
92796
|
+
{
|
|
92797
|
+
var lastItem=this.MultiDayAfterCloseData[this.MultiDayAfterCloseData.length-1];
|
|
92798
|
+
if (lastItem.Date==afterCloseData.Date) //增量更新
|
|
92799
|
+
{
|
|
92800
|
+
this.UpdateLatestCallCationData(lastItem, afterCloseData);
|
|
92801
|
+
}
|
|
92802
|
+
}
|
|
92803
|
+
}
|
|
92804
|
+
else
|
|
92762
92805
|
{
|
|
92763
|
-
|
|
92764
|
-
|
|
92765
|
-
this.
|
|
92766
|
-
|
|
92767
|
-
|
|
92806
|
+
if (beforeOpenData && IFrameSplitOperator.IsNonEmptyArray(this.MultiDayBeforeOpenData))
|
|
92807
|
+
{
|
|
92808
|
+
var lastItem=this.MultiDayBeforeOpenData[this.MultiDayBeforeOpenData.length-1];
|
|
92809
|
+
if (lastItem.Date==beforeOpenData.Date) //存在更新
|
|
92810
|
+
this.MultiDayBeforeOpenData[this.MultiDayBeforeOpenData.length-1]=beforeOpenData;
|
|
92811
|
+
else if (lastItem.Date<beforeOpenData.Date) //新的一天插入
|
|
92812
|
+
this.MultiDayBeforeOpenData.push(beforeOpenData);
|
|
92813
|
+
}
|
|
92814
|
+
|
|
92815
|
+
if (afterCloseData && IFrameSplitOperator.IsNonEmptyArray(this.MultiDayAfterCloseData))
|
|
92816
|
+
{
|
|
92817
|
+
var lastItem=this.MultiDayAfterCloseData[this.MultiDayAfterCloseData.length-1];
|
|
92818
|
+
if (lastItem.Date==afterCloseData.Date)
|
|
92819
|
+
this.MultiDayAfterCloseData[this.MultiDayAfterCloseData.length-1]=afterCloseData;
|
|
92820
|
+
else if (lastItem.Date<afterCloseData.Date)
|
|
92821
|
+
this.MultiDayAfterCloseData.push(afterCloseData);
|
|
92822
|
+
}
|
|
92768
92823
|
}
|
|
92769
92824
|
|
|
92770
92825
|
this.CaclutateCallCationYRange();
|
|
@@ -92780,9 +92835,16 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
92780
92835
|
var afterCloseData=MinuteChartContainer.JsonDataToAfterCloseData(data);
|
|
92781
92836
|
var updateTime=MinuteChartContainer.JsonDataToMinuteLastUpdateTime(data); //数据最后的更新时间
|
|
92782
92837
|
|
|
92838
|
+
if (data.LatestPointFlash) //最新数据闪烁
|
|
92839
|
+
{
|
|
92840
|
+
var item=data.LatestPointFlash;
|
|
92841
|
+
if (IFrameSplitOperator.IsNumber(item.FlashCount))
|
|
92842
|
+
this.SetLatestPointFlash(item.FlashCount)
|
|
92843
|
+
}
|
|
92844
|
+
|
|
92783
92845
|
if (this.DayCount>1) //多日走势图
|
|
92784
92846
|
{
|
|
92785
|
-
this.UpdateCallCationData(beforeOpenData,afterCloseData);
|
|
92847
|
+
this.UpdateCallCationData(beforeOpenData,afterCloseData, { DataType:1});
|
|
92786
92848
|
this.UpdateLineColorData(aryColorData,minuteData.date);
|
|
92787
92849
|
this.UpdateLatestMinuteDataV2(minuteData);
|
|
92788
92850
|
this.UpdateHistoryMinuteUI(updateTime);
|
|
@@ -92794,10 +92856,13 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
92794
92856
|
return;
|
|
92795
92857
|
}
|
|
92796
92858
|
|
|
92797
|
-
if (this.IsBeforeData && beforeOpenData) this.BeforeOpenData=beforeOpenData;
|
|
92798
|
-
if (this.IsAfterData && afterCloseData) this.AfterCloseData=afterCloseData;
|
|
92859
|
+
//if (this.IsBeforeData && beforeOpenData) this.BeforeOpenData=beforeOpenData;
|
|
92860
|
+
//if (this.IsAfterData && afterCloseData) this.AfterCloseData=afterCloseData;
|
|
92861
|
+
|
|
92862
|
+
//盘前盘后数据更新
|
|
92863
|
+
if (this.IsBeforeData && beforeOpenData) this.UpdateLatestCallCationData(this.BeforeOpenData, beforeOpenData);
|
|
92864
|
+
if (this.IsAfterData && afterCloseData) this.UpdateLatestCallCationData(this.AfterCloseData, afterCloseData);
|
|
92799
92865
|
|
|
92800
|
-
//原始数据
|
|
92801
92866
|
this.UpdateLatestMinuteDataV2(minuteData);
|
|
92802
92867
|
this.UpdateMinuteUI(data.stock[0], {FunctionName:"RecvUpdateMinuteData"});
|
|
92803
92868
|
|
|
@@ -92812,6 +92877,45 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
92812
92877
|
}
|
|
92813
92878
|
}
|
|
92814
92879
|
|
|
92880
|
+
this.UpdateLatestCallCationData=function(destData, updateData)
|
|
92881
|
+
{
|
|
92882
|
+
if (!destData) return;
|
|
92883
|
+
if (!updateData || !IFrameSplitOperator.IsNonEmptyArray(updateData.Data)) return;
|
|
92884
|
+
|
|
92885
|
+
if (destData.Data.length==0)
|
|
92886
|
+
{
|
|
92887
|
+
destData.Data=updateData.Data;
|
|
92888
|
+
destData.VolMax=updateData.VolMax;
|
|
92889
|
+
destData.VolMin=updateData.VolMin;
|
|
92890
|
+
return;
|
|
92891
|
+
}
|
|
92892
|
+
|
|
92893
|
+
//覆盖历史数据
|
|
92894
|
+
var mapData=new Map(updateData.Data.map((obj) => [obj.Time, obj]));
|
|
92895
|
+
var lastTime=null; //最后的时间
|
|
92896
|
+
for(var i=0;i<destData.Data.length;++i)
|
|
92897
|
+
{
|
|
92898
|
+
var item=destData.Data[i];
|
|
92899
|
+
lastTime=item.Time;
|
|
92900
|
+
if (!mapData.has(item.Time)) continue;
|
|
92901
|
+
var newItem=mapData.get(item.Time);
|
|
92902
|
+
if (!newItem || !IFrameSplitOperator.IsNumber(newItem.Price)) continue; //只覆盖有效数据
|
|
92903
|
+
|
|
92904
|
+
destData.Data[i]=newItem;
|
|
92905
|
+
}
|
|
92906
|
+
|
|
92907
|
+
//新数据往后插
|
|
92908
|
+
for(var i=0;i<updateData.Data.length;++i)
|
|
92909
|
+
{
|
|
92910
|
+
var item=updateData.Data[i];
|
|
92911
|
+
if (item.Time<=lastTime) continue;
|
|
92912
|
+
destData.Data.push(item);
|
|
92913
|
+
}
|
|
92914
|
+
|
|
92915
|
+
if (destData.VolMax<updateData.VolMax) destData.VolMax=updateData.VolMax;
|
|
92916
|
+
if (IFrameSplitOperator.IsNumber(updateData.TotalCount) && updateData.TotalCount>destData.TotalCount) updateData.TotalCount=destData.TotalCount;
|
|
92917
|
+
}
|
|
92918
|
+
|
|
92815
92919
|
this.RecvBuySellData=function(data)
|
|
92816
92920
|
{
|
|
92817
92921
|
if (!data) return;
|
|
@@ -92878,7 +92982,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
92878
92982
|
|
|
92879
92983
|
if (this.DayCount>1) //多日走势图
|
|
92880
92984
|
{
|
|
92881
|
-
this.UpdateCallCationData(beforeOpenData,afterCloseData);
|
|
92985
|
+
this.UpdateCallCationData(beforeOpenData,afterCloseData, { DataType:0});
|
|
92882
92986
|
this.UpdateLineColorData(aryColorData,data.stock[0].date);
|
|
92883
92987
|
this.UpdateLatestMinuteData(aryMinuteData, data.stock[0].date, data.stock[0]);
|
|
92884
92988
|
this.UpdateTradeStatusData(data.TradeStatus);
|
|
@@ -94664,6 +94768,54 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
94664
94768
|
return data;
|
|
94665
94769
|
}
|
|
94666
94770
|
|
|
94771
|
+
//获取最新的一条盘前数据
|
|
94772
|
+
this.GetLatestBeforeOpenItem=function()
|
|
94773
|
+
{
|
|
94774
|
+
var lastItem=null;
|
|
94775
|
+
if (this.DayCount>1)
|
|
94776
|
+
{
|
|
94777
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.MultiDayBeforeOpenData)) return null;
|
|
94778
|
+
var dayItem=this.MultiDayBeforeOpenData[this.MultiDayBeforeOpenData.length-1];
|
|
94779
|
+
if (!dayItem || !IFrameSplitOperator.IsNonEmptyArray(dayItem.Data)) return null;
|
|
94780
|
+
|
|
94781
|
+
var finder = dayItem.Data.findLast((element) => { return element && IFrameSplitOperator.IsNumber(element.Price); });
|
|
94782
|
+
if (finder) lastItem=finder;
|
|
94783
|
+
}
|
|
94784
|
+
else
|
|
94785
|
+
{
|
|
94786
|
+
if (!this.BeforeOpenData || !IFrameSplitOperator.IsNonEmptyArray(this.BeforeOpenData.Data)) return null;
|
|
94787
|
+
|
|
94788
|
+
var finder = this.BeforeOpenData.Data.findLast((element) => { return element && IFrameSplitOperator.IsNumber(element.Price); });
|
|
94789
|
+
if (finder) lastItem=finder;
|
|
94790
|
+
}
|
|
94791
|
+
|
|
94792
|
+
return lastItem;
|
|
94793
|
+
}
|
|
94794
|
+
|
|
94795
|
+
//获取最新的一条盘后数据
|
|
94796
|
+
this.GetLatestAfterCloseItem=function()
|
|
94797
|
+
{
|
|
94798
|
+
if (this.DayCount>1)
|
|
94799
|
+
{
|
|
94800
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.MultiDayAfterCloseData)) return null;
|
|
94801
|
+
var dayItem=this.MultiDayAfterCloseData[this.MultiDayAfterCloseData.length-1];
|
|
94802
|
+
if (!dayItem || !IFrameSplitOperator.IsNonEmptyArray(dayItem.Data)) return null;
|
|
94803
|
+
|
|
94804
|
+
var finder = dayItem.Data.findLast((element) => { return element && IFrameSplitOperator.IsNumber(element.Price); });
|
|
94805
|
+
if (finder) lastItem=finder;
|
|
94806
|
+
}
|
|
94807
|
+
else
|
|
94808
|
+
{
|
|
94809
|
+
if (!this.AfterCloseData || !IFrameSplitOperator.IsNonEmptyArray(this.AfterCloseData.Data)) return null;
|
|
94810
|
+
|
|
94811
|
+
var finder = this.AfterCloseData.Data.findLast((element) => { return element && IFrameSplitOperator.IsNumber(element.Price); });
|
|
94812
|
+
if (finder) lastItem=finder;
|
|
94813
|
+
}
|
|
94814
|
+
|
|
94815
|
+
return lastItem;
|
|
94816
|
+
}
|
|
94817
|
+
|
|
94818
|
+
|
|
94667
94819
|
this.IsCallAuctionFrame=function(frameID)
|
|
94668
94820
|
{
|
|
94669
94821
|
if (!IFrameSplitOperator.IsNonEmptyArray(this.ChartPaintEx)) return false;
|
|
@@ -94695,7 +94847,7 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
|
|
|
94695
94847
|
var preClose=data.stock[0].yclose; //前一个数据价格
|
|
94696
94848
|
var stockData=data.stock[0];
|
|
94697
94849
|
var date=stockData.date; //日期
|
|
94698
|
-
var beforeOpenData={ Data:[], TotalCount:15, Ver:1.0, Date:date };
|
|
94850
|
+
var beforeOpenData={ Data:[], TotalCount:15, Ver:1.0, Date:date, YClose:stockData.yclose, YClearing:stockData.yclearing };
|
|
94699
94851
|
var extendDataIndex=JSCHART_DATA_FIELD_ID.MINUTE_BEFOREOPEN_EXTENDDATA; //扩展数据序号
|
|
94700
94852
|
if (stockData.beforeinfo)
|
|
94701
94853
|
{
|
|
@@ -94731,7 +94883,7 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
|
|
|
94731
94883
|
else if (beforeOpenData.Ver==2.0)
|
|
94732
94884
|
{
|
|
94733
94885
|
var max=0;
|
|
94734
|
-
for(var i
|
|
94886
|
+
for(var i=0;i<stockData.before.length;++i)
|
|
94735
94887
|
{
|
|
94736
94888
|
var item=new BeforeOpenData();
|
|
94737
94889
|
var jsData=stockData.before[i];
|
|
@@ -94743,7 +94895,6 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
|
|
|
94743
94895
|
item.Vol[1]=jsData[3]; //未匹配量
|
|
94744
94896
|
item.ColorID=jsData[4]; //柱子颜色ID
|
|
94745
94897
|
if (IFrameSplitOperator.IsNumber(jsData[6])) item.Date=jsData[6] //日期
|
|
94746
|
-
item.DateTime=`${item.Date} ${item.Time})`;
|
|
94747
94898
|
|
|
94748
94899
|
var totalVol=item.Vol[0]+item.Vol[1];
|
|
94749
94900
|
if (IFrameSplitOperator.IsNumber(jsData[5])) totalVol=jsData[5];
|
|
@@ -94755,12 +94906,14 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
|
|
|
94755
94906
|
|
|
94756
94907
|
beforeOpenData.VolMax=max/unit;
|
|
94757
94908
|
beforeOpenData.VolMin=0;
|
|
94909
|
+
|
|
94910
|
+
if (stockData.beforeinfo && stockData.beforeinfo.TimeConfig) //固定时间
|
|
94911
|
+
MinuteChartContainer.CompleteCallAuctionData(stockData.beforeinfo.TimeConfig, beforeOpenData);
|
|
94758
94912
|
}
|
|
94759
94913
|
else if (beforeOpenData.Ver==3.0)
|
|
94760
94914
|
{
|
|
94761
94915
|
var max=0;
|
|
94762
|
-
|
|
94763
|
-
for(var i in stockData.before)
|
|
94916
|
+
for(var i=0; i<stockData.before.length; ++i)
|
|
94764
94917
|
{
|
|
94765
94918
|
var item=new BeforeOpenData();
|
|
94766
94919
|
var jsData=stockData.before[i];
|
|
@@ -94771,7 +94924,6 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
|
|
|
94771
94924
|
item.AvPrice=jsData[2]; //均价
|
|
94772
94925
|
item.Vol[0]=jsData[3]; //匹配量
|
|
94773
94926
|
item.ColorID=jsData[4]; //柱子颜色ID
|
|
94774
|
-
item.DateTime=date.toString()+" "+item.Time.toString();
|
|
94775
94927
|
|
|
94776
94928
|
var totalVol=item.Vol[0];
|
|
94777
94929
|
if (IFrameSplitOperator.IsNumber(jsData[5])) totalVol=jsData[5];
|
|
@@ -94783,11 +94935,72 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
|
|
|
94783
94935
|
|
|
94784
94936
|
beforeOpenData.VolMax=max/unit;
|
|
94785
94937
|
beforeOpenData.VolMin=0;
|
|
94938
|
+
|
|
94939
|
+
if (stockData.beforeinfo && stockData.beforeinfo.TimeConfig) //固定时间
|
|
94940
|
+
MinuteChartContainer.CompleteCallAuctionData(stockData.beforeinfo.TimeConfig, beforeOpenData);
|
|
94786
94941
|
}
|
|
94787
94942
|
|
|
94788
94943
|
return beforeOpenData;
|
|
94789
94944
|
}
|
|
94790
94945
|
|
|
94946
|
+
|
|
94947
|
+
MinuteChartContainer.CompleteCallAuctionData=function(timeConfig, callAuctionData)
|
|
94948
|
+
{
|
|
94949
|
+
var aryData=MinuteChartContainer.CreateCallAuctionTimeData(timeConfig);
|
|
94950
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(aryData)) return false;
|
|
94951
|
+
|
|
94952
|
+
var mapData=new Map(callAuctionData.Data.map((obj) => [obj.Time, obj]));
|
|
94953
|
+
for(var i=0;i<aryData.length;++i)
|
|
94954
|
+
{
|
|
94955
|
+
var time=aryData[i].Time;
|
|
94956
|
+
if (!mapData.has(time)) continue;
|
|
94957
|
+
|
|
94958
|
+
var item=mapData.get(time);
|
|
94959
|
+
aryData[i]=item;
|
|
94960
|
+
}
|
|
94961
|
+
|
|
94962
|
+
callAuctionData.Data=aryData;
|
|
94963
|
+
callAuctionData.TotalCount=aryData.length;
|
|
94964
|
+
|
|
94965
|
+
return true;
|
|
94966
|
+
}
|
|
94967
|
+
|
|
94968
|
+
//创建集合竞价秒级时间 { AryTime:[ { Start:92500, End:92459, Date:20250101 } ] } hhmmss
|
|
94969
|
+
MinuteChartContainer.CreateCallAuctionTimeData=function(config)
|
|
94970
|
+
{
|
|
94971
|
+
if (!config || !IFrameSplitOperator.IsNonEmptyArray(config.AryTime)) return null;
|
|
94972
|
+
|
|
94973
|
+
var step=1; //1s
|
|
94974
|
+
if (IFrameSplitOperator.IsPlusNumber(config.Step)) step=config.Step;
|
|
94975
|
+
var aryData=[];
|
|
94976
|
+
for(var i=0;i<config.AryTime.length;++i)
|
|
94977
|
+
{
|
|
94978
|
+
var item=config.AryTime[i];
|
|
94979
|
+
|
|
94980
|
+
var value=item.Start;
|
|
94981
|
+
var hour=parseInt(value/10000);
|
|
94982
|
+
var minute=parseInt((value%10000)/100);
|
|
94983
|
+
var second=value%100;
|
|
94984
|
+
var startTime=new Date(2021,5,2, hour,minute, second);
|
|
94985
|
+
|
|
94986
|
+
value=item.End;
|
|
94987
|
+
var hour=parseInt(value/10000);
|
|
94988
|
+
var minute=parseInt((value%10000)/100);
|
|
94989
|
+
var second=value%100;
|
|
94990
|
+
var endTime=new Date(2021,5,2, hour,minute, second);
|
|
94991
|
+
|
|
94992
|
+
for(var j=0; j<5000 && startTime<=endTime; ++j)
|
|
94993
|
+
{
|
|
94994
|
+
var time=startTime.getHours()*10000+startTime.getMinutes()*100+startTime.getSeconds();
|
|
94995
|
+
var secItem={ Time:time, Date:item.Date };
|
|
94996
|
+
aryData.push(secItem);
|
|
94997
|
+
startTime.setSeconds(startTime.getSeconds()+step);
|
|
94998
|
+
}
|
|
94999
|
+
}
|
|
95000
|
+
|
|
95001
|
+
return aryData;
|
|
95002
|
+
}
|
|
95003
|
+
|
|
94791
95004
|
//收盘集合竞价
|
|
94792
95005
|
MinuteChartContainer.JsonDataToAfterCloseData=function(data)
|
|
94793
95006
|
{
|
|
@@ -94798,7 +95011,7 @@ MinuteChartContainer.JsonDataToAfterCloseData=function(data)
|
|
|
94798
95011
|
if (!stockData.afterinfo) return null;
|
|
94799
95012
|
var symbol=data.stock[0].symbol;
|
|
94800
95013
|
var upperSymbol=symbol.toUpperCase();
|
|
94801
|
-
var afterCloseData={ Data:[], TotalCount:3*60, Ver:2.0, Date:date };
|
|
95014
|
+
var afterCloseData={ Data:[], TotalCount:3*60, Ver:2.0, Date:date, YClose:stockData.yclose, YClearing:stockData.yclearing };
|
|
94802
95015
|
var item=stockData.afterinfo;
|
|
94803
95016
|
if (IFrameSplitOperator.IsNumber(item.totalcount)) afterCloseData.TotalCount=item.totalcount;
|
|
94804
95017
|
if (IFrameSplitOperator.IsNumber(item.ver)) afterCloseData.Ver=item.ver;
|
|
@@ -94828,7 +95041,7 @@ MinuteChartContainer.JsonDataToAfterCloseData=function(data)
|
|
|
94828
95041
|
else if (afterCloseData.Ver==2.0)
|
|
94829
95042
|
{
|
|
94830
95043
|
var max=0;
|
|
94831
|
-
for(var i
|
|
95044
|
+
for(var i=0; i<stockData.after.length; ++i)
|
|
94832
95045
|
{
|
|
94833
95046
|
var item=new AfterCloseData();
|
|
94834
95047
|
var jsData=stockData.after[i];
|
|
@@ -94851,6 +95064,9 @@ MinuteChartContainer.JsonDataToAfterCloseData=function(data)
|
|
|
94851
95064
|
|
|
94852
95065
|
afterCloseData.VolMax=max/unit;
|
|
94853
95066
|
afterCloseData.VolMin=0;
|
|
95067
|
+
|
|
95068
|
+
if (stockData.afterinfo && stockData.afterinfo.TimeConfig) //固定时间
|
|
95069
|
+
MinuteChartContainer.CompleteCallAuctionData(stockData.afterinfo.TimeConfig, afterCloseData);
|
|
94854
95070
|
}
|
|
94855
95071
|
else if (afterCloseData.Ver==3.0)
|
|
94856
95072
|
{
|
|
@@ -94878,6 +95094,9 @@ MinuteChartContainer.JsonDataToAfterCloseData=function(data)
|
|
|
94878
95094
|
|
|
94879
95095
|
afterCloseData.VolMax=max/unit;
|
|
94880
95096
|
afterCloseData.VolMin=0;
|
|
95097
|
+
|
|
95098
|
+
if (stockData.afterinfo && stockData.afterinfo.TimeConfig) //固定时间
|
|
95099
|
+
MinuteChartContainer.CompleteCallAuctionData(stockData.afterinfo.TimeConfig, afterCloseData);
|
|
94881
95100
|
}
|
|
94882
95101
|
|
|
94883
95102
|
return afterCloseData;
|
|
@@ -94999,12 +95218,13 @@ MinuteChartContainer.JsonDataToUpdateMinuteData=function(data)
|
|
|
94999
95218
|
|
|
95000
95219
|
item.DateTime=`${item.Date} ${item.Time}`;
|
|
95001
95220
|
|
|
95002
|
-
if (IFrameSplitOperator.IsNumber(minuteData.YClose) && item.Close)
|
|
95003
|
-
|
|
95004
|
-
|
|
95005
|
-
|
|
95006
|
-
|
|
95007
|
-
|
|
95221
|
+
if (!IFrameSplitOperator.IsNumber(item.Increase) && IFrameSplitOperator.IsNumber(minuteData.YClose) && item.Close)
|
|
95222
|
+
{
|
|
95223
|
+
if (isFutures && minuteData.YClearing && item.Close)
|
|
95224
|
+
item.Increase=(item.Close-minuteData.YClearing)/minuteData.YClearing*100; //涨幅 (最新价格-昨结算价)/昨结算价*100;
|
|
95225
|
+
else
|
|
95226
|
+
item.Increase=(item.Close-minuteData.YClose)/minuteData.YClose*100; //涨幅 (最新价格-昨收)/昨收*100;
|
|
95227
|
+
}
|
|
95008
95228
|
|
|
95009
95229
|
minuteData.Data.push(item);
|
|
95010
95230
|
}
|
|
@@ -95168,8 +95388,9 @@ MinuteChartContainer.JsonDataToHistoryMinuteLineColorData=function(data)
|
|
|
95168
95388
|
}
|
|
95169
95389
|
|
|
95170
95390
|
|
|
95171
|
-
MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, isBeforeOpen, symbol)
|
|
95391
|
+
MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, isBeforeOpen, symbol, dataInfo)
|
|
95172
95392
|
{
|
|
95393
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(data)) return;
|
|
95173
95394
|
var upperSymbol=symbol?symbol.toUpperCase():null;
|
|
95174
95395
|
var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
|
|
95175
95396
|
|
|
@@ -95180,7 +95401,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
|
|
|
95180
95401
|
if (callAuctionData.Ver==1.0)
|
|
95181
95402
|
{
|
|
95182
95403
|
var preClose=null;
|
|
95183
|
-
for(var i
|
|
95404
|
+
for(var i=0; i<data.length; ++i)
|
|
95184
95405
|
{
|
|
95185
95406
|
var item=isBeforeOpen? new BeforeOpenData() : new AfterCloseData();
|
|
95186
95407
|
var jsData=data[i];
|
|
@@ -95204,7 +95425,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
|
|
|
95204
95425
|
else if (callAuctionData.Ver==2.0)
|
|
95205
95426
|
{
|
|
95206
95427
|
var max=0;
|
|
95207
|
-
for(var i
|
|
95428
|
+
for(var i=0; i<data.length; ++i)
|
|
95208
95429
|
{
|
|
95209
95430
|
var item=isBeforeOpen? new BeforeOpenData() : new AfterCloseData();
|
|
95210
95431
|
var jsData=data[i];
|
|
@@ -95216,7 +95437,6 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
|
|
|
95216
95437
|
item.Vol[0]=jsData[2]; //匹配量
|
|
95217
95438
|
item.Vol[1]=jsData[3]; //未匹配量
|
|
95218
95439
|
item.ColorID=jsData[4]; //柱子颜色ID
|
|
95219
|
-
item.DateTime=date.toString()+" "+item.Time.toString();
|
|
95220
95440
|
|
|
95221
95441
|
var totalVol=item.Vol[0]+item.Vol[1];
|
|
95222
95442
|
if (IFrameSplitOperator.IsNumber(jsData[5])) totalVol=jsData[5];
|
|
@@ -95228,6 +95448,9 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
|
|
|
95228
95448
|
|
|
95229
95449
|
callAuctionData.VolMax=max/unit;
|
|
95230
95450
|
callAuctionData.VolMin=0;
|
|
95451
|
+
|
|
95452
|
+
if (dataInfo && dataInfo.TimeConfig) //固定时间
|
|
95453
|
+
MinuteChartContainer.CompleteCallAuctionData(dataInfo.TimeConfig, callAuctionData);
|
|
95231
95454
|
}
|
|
95232
95455
|
else if (beforeOpenData.Ver==3.0)
|
|
95233
95456
|
{
|
|
@@ -95244,7 +95467,6 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
|
|
|
95244
95467
|
item.AvPrice=jsData[2]; //均价
|
|
95245
95468
|
item.Vol[0]=jsData[3]; //匹配量
|
|
95246
95469
|
item.ColorID=jsData[4]; //柱子颜色ID
|
|
95247
|
-
item.DateTime=date.toString()+" "+item.Time.toString();
|
|
95248
95470
|
|
|
95249
95471
|
var totalVol=item.Vol[0];
|
|
95250
95472
|
if (IFrameSplitOperator.IsNumber(jsData[5])) totalVol=jsData[5];
|
|
@@ -95256,6 +95478,9 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
|
|
|
95256
95478
|
|
|
95257
95479
|
callAuctionData.VolMax=max/unit;
|
|
95258
95480
|
callAuctionData.VolMin=0;
|
|
95481
|
+
|
|
95482
|
+
if (dataInfo && dataInfo.TimeConfig) //固定时间
|
|
95483
|
+
MinuteChartContainer.CompleteCallAuctionData(dataInfo.TimeConfig, callAuctionData);
|
|
95259
95484
|
}
|
|
95260
95485
|
}
|
|
95261
95486
|
|
|
@@ -95264,7 +95489,7 @@ MinuteChartContainer.JosnDataToBeforeOpenDataArray=function(data)
|
|
|
95264
95489
|
if (!data || !data.data) return null;
|
|
95265
95490
|
|
|
95266
95491
|
var aryDay=[];
|
|
95267
|
-
for(var i
|
|
95492
|
+
for(var i=0; i<data.data.length; ++i)
|
|
95268
95493
|
{
|
|
95269
95494
|
var dayItem=data.data[i];
|
|
95270
95495
|
var beforeOpenData={ Data:[], TotalCount:15, Ver:1.0, Date:dayItem.date, YClose:dayItem.yclose, YClearing:dayItem.YClearing };
|
|
@@ -95274,7 +95499,7 @@ MinuteChartContainer.JosnDataToBeforeOpenDataArray=function(data)
|
|
|
95274
95499
|
if (IFrameSplitOperator.IsNumber(dayItem.beforeinfo.ver)) beforeOpenData.Ver=dayItem.beforeinfo.ver;
|
|
95275
95500
|
}
|
|
95276
95501
|
|
|
95277
|
-
MinuteChartContainer.JsonDataToCallAuctionItem(dayItem.before, beforeOpenData, true, data.symbol);
|
|
95502
|
+
MinuteChartContainer.JsonDataToCallAuctionItem(dayItem.before, beforeOpenData, true, data.symbol, dayItem.beforeinfo);
|
|
95278
95503
|
|
|
95279
95504
|
aryDay.push(beforeOpenData);
|
|
95280
95505
|
}
|
|
@@ -95289,7 +95514,7 @@ MinuteChartContainer.JosnDataToAfterCloseDataArray=function(data)
|
|
|
95289
95514
|
if (!data || !data.data) return null;
|
|
95290
95515
|
|
|
95291
95516
|
var aryDay=[];
|
|
95292
|
-
for(var i
|
|
95517
|
+
for(var i=0; i<data.data.length; ++i)
|
|
95293
95518
|
{
|
|
95294
95519
|
var dayItem=data.data[i];
|
|
95295
95520
|
var afterCloseData={ Data:[], TotalCount:15, Ver:1.0, Date:dayItem.date, YClose:dayItem.yclose, YClearing:dayItem.YClearing };
|
|
@@ -95300,7 +95525,7 @@ MinuteChartContainer.JosnDataToAfterCloseDataArray=function(data)
|
|
|
95300
95525
|
if (IFrameSplitOperator.IsNumber(dayItem.afterinfo.ver)) afterCloseData.Ver=dayItem.afterinfo.ver;
|
|
95301
95526
|
}
|
|
95302
95527
|
|
|
95303
|
-
MinuteChartContainer.JsonDataToCallAuctionItem(dayItem.after, afterCloseData, false, data.symbol);
|
|
95528
|
+
MinuteChartContainer.JsonDataToCallAuctionItem(dayItem.after, afterCloseData, false, data.symbol, dayItem.afterinfo);
|
|
95304
95529
|
|
|
95305
95530
|
aryDay.push(afterCloseData);
|
|
95306
95531
|
}
|