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
|
@@ -15338,7 +15338,16 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
15338
15338
|
var left=null,right=null;
|
|
15339
15339
|
if (IFrameSplitOperator.IsBool(srcParam.Left)) left=srcParam.Left;
|
|
15340
15340
|
if (IFrameSplitOperator.IsBool(srcParam.Right)) right=srcParam.Right;
|
|
15341
|
-
|
|
15341
|
+
|
|
15342
|
+
var multiDay=null;
|
|
15343
|
+
if (srcParam.MultiDay)
|
|
15344
|
+
{
|
|
15345
|
+
var item=srcParam.MultiDay;
|
|
15346
|
+
multiDay={ };
|
|
15347
|
+
if (IFrameSplitOperator.IsBool(item.Left)) multiDay.Left=item.Left;
|
|
15348
|
+
if (IFrameSplitOperator.IsBool(item.Right)) multiDay.Right=item.Right;
|
|
15349
|
+
}
|
|
15350
|
+
this.ShowCallAuctionData({ Left:left, Right:right, MultiDay:multiDay });
|
|
15342
15351
|
}
|
|
15343
15352
|
|
|
15344
15353
|
break;
|
|
@@ -15914,7 +15923,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
15914
15923
|
{
|
|
15915
15924
|
//清空当前鼠标坐标
|
|
15916
15925
|
this.LastPoint.X=null;
|
|
15917
|
-
this.LastPoint.Y=null
|
|
15926
|
+
this.LastPoint.Y=null;
|
|
15918
15927
|
this.HideTooltip();
|
|
15919
15928
|
this.CloseTooltipDialog();
|
|
15920
15929
|
}
|
|
@@ -15923,7 +15932,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
15923
15932
|
if (IFrameSplitOperator.IsNumber(data.X) && IFrameSplitOperator.IsNumber(data.Y))
|
|
15924
15933
|
{
|
|
15925
15934
|
//设置鼠标位置
|
|
15926
|
-
if (this.LastPoint && !IFrameSplitOperator.IsNumber(this.LastPoint.X)
|
|
15935
|
+
if (this.LastPoint && (!IFrameSplitOperator.IsNumber(this.LastPoint.X) || !IFrameSplitOperator.IsNumber(this.LastPoint.Y)))
|
|
15927
15936
|
{
|
|
15928
15937
|
this.LastPoint.X=data.X;
|
|
15929
15938
|
this.LastPoint.Y=data.Y;
|
|
@@ -39464,10 +39473,10 @@ function ChartMinuteVolumBar()
|
|
|
39464
39473
|
var unit=this.GetVolUnit();
|
|
39465
39474
|
if (callAutionData.Ver==1.0)
|
|
39466
39475
|
{
|
|
39467
|
-
for(var i
|
|
39476
|
+
for(var i=0;i<callAutionData.Data.length;++i)
|
|
39468
39477
|
{
|
|
39469
39478
|
var item=callAutionData.Data[i];
|
|
39470
|
-
if (!item || !IFrameSplitOperator.IsNumber(item.Vol[0])) continue;
|
|
39479
|
+
if (!item || !IFrameSplitOperator.IsNonEmptyArray(item.Vol) || !IFrameSplitOperator.IsNumber(item.Vol[0])) continue;
|
|
39471
39480
|
|
|
39472
39481
|
if (isBeforeOpen)
|
|
39473
39482
|
{
|
|
@@ -39501,11 +39510,11 @@ function ChartMinuteVolumBar()
|
|
|
39501
39510
|
{
|
|
39502
39511
|
var range={ Max: callAutionData.VolMax, Min:callAutionData.VolMin }
|
|
39503
39512
|
|
|
39504
|
-
for(var i
|
|
39513
|
+
for(var i=0; i<callAutionData.Data.length; ++i)
|
|
39505
39514
|
{
|
|
39506
39515
|
var item=callAutionData.Data[i];
|
|
39507
39516
|
if (!item) continue;
|
|
39508
|
-
if (IFrameSplitOperator.IsPlusNumber(item.Vol[0]))
|
|
39517
|
+
if (item.Vol && IFrameSplitOperator.IsPlusNumber(item.Vol[0]))
|
|
39509
39518
|
{
|
|
39510
39519
|
if (isBeforeOpen)
|
|
39511
39520
|
{
|
|
@@ -39535,7 +39544,7 @@ function ChartMinuteVolumBar()
|
|
|
39535
39544
|
this.Canvas.stroke();
|
|
39536
39545
|
}
|
|
39537
39546
|
|
|
39538
|
-
if (IFrameSplitOperator.IsPlusNumber(item.Vol[1]))
|
|
39547
|
+
if (item.Vol && IFrameSplitOperator.IsPlusNumber(item.Vol[1]))
|
|
39539
39548
|
{
|
|
39540
39549
|
if (isBeforeOpen)
|
|
39541
39550
|
{
|
|
@@ -44515,16 +44524,23 @@ function ChartMinutePriceLine()
|
|
|
44515
44524
|
var item=callAutionData.Data[i];
|
|
44516
44525
|
if (!item || !IFrameSplitOperator.IsNumber(item.Price))
|
|
44517
44526
|
{
|
|
44518
|
-
if (i==0 && isBeforeOpen
|
|
44527
|
+
if (i==0 && isBeforeOpen)
|
|
44519
44528
|
{
|
|
44520
|
-
|
|
44521
|
-
var
|
|
44529
|
+
//盘前集合竞价起始点为昨收或昨结算
|
|
44530
|
+
var price=callAutionData.YClose;
|
|
44531
|
+
if (IFrameSplitOperator.IsNumber(callAutionData.YClearing)) price=callAutionData.YClearing;
|
|
44522
44532
|
|
|
44523
|
-
|
|
44524
|
-
|
|
44525
|
-
|
|
44526
|
-
|
|
44527
|
-
|
|
44533
|
+
if (IFrameSplitOperator.IsNumber(price))
|
|
44534
|
+
{
|
|
44535
|
+
var x=this.ChartFrame.GetLeftExtendXFromIndex(i,callAutionData);
|
|
44536
|
+
var y=this.ChartFrame.GetLeftExtendYFromData(price);
|
|
44537
|
+
|
|
44538
|
+
this.Canvas.strokeStyle=this.BeforeLineColor;
|
|
44539
|
+
this.Canvas.beginPath();
|
|
44540
|
+
if (isHScreen) this.Canvas.moveTo(y,x);
|
|
44541
|
+
else this.Canvas.moveTo(x,y);
|
|
44542
|
+
bFirstPoint=false;
|
|
44543
|
+
}
|
|
44528
44544
|
}
|
|
44529
44545
|
|
|
44530
44546
|
continue;
|
|
@@ -94797,7 +94813,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
94797
94813
|
|
|
94798
94814
|
var bShow=(this.IsShowAfterData && this.IsShowBeforeData);
|
|
94799
94815
|
var subItem={ Name:"盘后盘前(单日)",Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID, Args:[{ Left:!bShow, Right:!bShow } ] }, Checked:bShow };
|
|
94800
|
-
|
|
94816
|
+
item.SubMenu.push(subItem);
|
|
94801
94817
|
|
|
94802
94818
|
var subItem={ Name:"盘前(单日)",Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID, Args:[{ Left:!this.IsShowBeforeData} ] }, Checked:this.IsShowBeforeData };
|
|
94803
94819
|
item.SubMenu.push(subItem);
|
|
@@ -94805,6 +94821,16 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
94805
94821
|
var subItem={ Name:"盘后(单日)",Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID, Args:[{ Right:!this.IsShowAfterData} ] }, Checked:this.IsShowAfterData };
|
|
94806
94822
|
item.SubMenu.push(subItem);
|
|
94807
94823
|
|
|
94824
|
+
var bShow=(this.IsShowMultiDayBeforeData && this.IsShowMultiDayAfterData);
|
|
94825
|
+
var subItem={ Name:"盘后盘前(多日)",Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID, Args:[{ MultiDay:{ Left:!bShow, Right:!bShow} } ] }, Checked:bShow };
|
|
94826
|
+
item.SubMenu.push(subItem);
|
|
94827
|
+
|
|
94828
|
+
var subItem={ Name:"盘前(多日)",Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID, Args:[{ MultiDay:{ Left:!this.IsShowMultiDayBeforeData } } ] }, Checked:this.IsShowMultiDayBeforeData };
|
|
94829
|
+
item.SubMenu.push(subItem);
|
|
94830
|
+
|
|
94831
|
+
var subItem={ Name:"盘后(多日)",Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID, Args:[{ MultiDay:{ Right:!this.IsShowMultiDayAfterData } } ] }, Checked:this.IsShowMultiDayAfterData };
|
|
94832
|
+
item.SubMenu.push(subItem);
|
|
94833
|
+
|
|
94808
94834
|
aryMenu.splice(4,0,item);
|
|
94809
94835
|
}
|
|
94810
94836
|
|
|
@@ -96693,6 +96719,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
96693
96719
|
//更新最新的几条数据
|
|
96694
96720
|
this.UpdateLatestMinuteDataV2=function(minuteData)
|
|
96695
96721
|
{
|
|
96722
|
+
if (!minuteData || !IFrameSplitOperator.IsNonEmptyArray(minuteData.Data)) return;
|
|
96723
|
+
|
|
96696
96724
|
if (this.DayCount>1)
|
|
96697
96725
|
{
|
|
96698
96726
|
if (!this.DayData) return;
|
|
@@ -96701,7 +96729,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
96701
96729
|
for(var i=0; i<this.DayData.length; ++i)
|
|
96702
96730
|
{
|
|
96703
96731
|
var item=this.DayData[i];
|
|
96704
|
-
if (item.Date===
|
|
96732
|
+
if (item.Date===minuteData.Date)
|
|
96705
96733
|
{
|
|
96706
96734
|
findItem=item;
|
|
96707
96735
|
break;
|
|
@@ -96812,6 +96840,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
96812
96840
|
|
|
96813
96841
|
var callCation={ Before:this.IsShowBeforeData, After:this.IsShowAfterData } //集合竞价
|
|
96814
96842
|
if (this.DayCount>1) callCation={ Before:this.IsShowMultiDayBeforeData, After:this.IsShowMultiDayAfterData } //多日集合竞价
|
|
96843
|
+
callCation.Latest={ Before:this.GetLatestBeforeOpenItem(), After:this.GetLatestAfterCloseItem() }; //最新一条的盘前盘后数据
|
|
96815
96844
|
|
|
96816
96845
|
var obj=
|
|
96817
96846
|
{
|
|
@@ -96887,24 +96916,50 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
96887
96916
|
this.ColorLineData=aryColorLineData;
|
|
96888
96917
|
}
|
|
96889
96918
|
|
|
96890
|
-
this.UpdateCallCationData=function(beforeOpenData,afterCloseData)
|
|
96919
|
+
this.UpdateCallCationData=function(beforeOpenData,afterCloseData,option)
|
|
96891
96920
|
{
|
|
96892
|
-
|
|
96921
|
+
var dataType=0;
|
|
96922
|
+
if (option && IFrameSplitOperator.IsNumber(option.DataType)) dataType=option.DataType;
|
|
96923
|
+
|
|
96924
|
+
if (dataType==1)
|
|
96893
96925
|
{
|
|
96894
|
-
|
|
96895
|
-
|
|
96896
|
-
this.MultiDayBeforeOpenData[this.MultiDayBeforeOpenData.length-1]
|
|
96897
|
-
|
|
96898
|
-
|
|
96899
|
-
|
|
96926
|
+
if (beforeOpenData && IFrameSplitOperator.IsNonEmptyArray(this.MultiDayBeforeOpenData))
|
|
96927
|
+
{
|
|
96928
|
+
var lastItem=this.MultiDayBeforeOpenData[this.MultiDayBeforeOpenData.length-1];
|
|
96929
|
+
if (lastItem.Date==beforeOpenData.Date) //增量更新
|
|
96930
|
+
{
|
|
96931
|
+
this.UpdateLatestCallCationData(lastItem, beforeOpenData);
|
|
96932
|
+
}
|
|
96933
|
+
}
|
|
96900
96934
|
|
|
96901
|
-
|
|
96935
|
+
if (afterCloseData && IFrameSplitOperator.IsNonEmptyArray(this.MultiDayAfterCloseData))
|
|
96936
|
+
{
|
|
96937
|
+
var lastItem=this.MultiDayAfterCloseData[this.MultiDayAfterCloseData.length-1];
|
|
96938
|
+
if (lastItem.Date==afterCloseData.Date) //增量更新
|
|
96939
|
+
{
|
|
96940
|
+
this.UpdateLatestCallCationData(lastItem, afterCloseData);
|
|
96941
|
+
}
|
|
96942
|
+
}
|
|
96943
|
+
}
|
|
96944
|
+
else
|
|
96902
96945
|
{
|
|
96903
|
-
|
|
96904
|
-
|
|
96905
|
-
this.
|
|
96906
|
-
|
|
96907
|
-
|
|
96946
|
+
if (beforeOpenData && IFrameSplitOperator.IsNonEmptyArray(this.MultiDayBeforeOpenData))
|
|
96947
|
+
{
|
|
96948
|
+
var lastItem=this.MultiDayBeforeOpenData[this.MultiDayBeforeOpenData.length-1];
|
|
96949
|
+
if (lastItem.Date==beforeOpenData.Date) //存在更新
|
|
96950
|
+
this.MultiDayBeforeOpenData[this.MultiDayBeforeOpenData.length-1]=beforeOpenData;
|
|
96951
|
+
else if (lastItem.Date<beforeOpenData.Date) //新的一天插入
|
|
96952
|
+
this.MultiDayBeforeOpenData.push(beforeOpenData);
|
|
96953
|
+
}
|
|
96954
|
+
|
|
96955
|
+
if (afterCloseData && IFrameSplitOperator.IsNonEmptyArray(this.MultiDayAfterCloseData))
|
|
96956
|
+
{
|
|
96957
|
+
var lastItem=this.MultiDayAfterCloseData[this.MultiDayAfterCloseData.length-1];
|
|
96958
|
+
if (lastItem.Date==afterCloseData.Date)
|
|
96959
|
+
this.MultiDayAfterCloseData[this.MultiDayAfterCloseData.length-1]=afterCloseData;
|
|
96960
|
+
else if (lastItem.Date<afterCloseData.Date)
|
|
96961
|
+
this.MultiDayAfterCloseData.push(afterCloseData);
|
|
96962
|
+
}
|
|
96908
96963
|
}
|
|
96909
96964
|
|
|
96910
96965
|
this.CaclutateCallCationYRange();
|
|
@@ -96920,9 +96975,16 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
96920
96975
|
var afterCloseData=MinuteChartContainer.JsonDataToAfterCloseData(data);
|
|
96921
96976
|
var updateTime=MinuteChartContainer.JsonDataToMinuteLastUpdateTime(data); //数据最后的更新时间
|
|
96922
96977
|
|
|
96978
|
+
if (data.LatestPointFlash) //最新数据闪烁
|
|
96979
|
+
{
|
|
96980
|
+
var item=data.LatestPointFlash;
|
|
96981
|
+
if (IFrameSplitOperator.IsNumber(item.FlashCount))
|
|
96982
|
+
this.SetLatestPointFlash(item.FlashCount)
|
|
96983
|
+
}
|
|
96984
|
+
|
|
96923
96985
|
if (this.DayCount>1) //多日走势图
|
|
96924
96986
|
{
|
|
96925
|
-
this.UpdateCallCationData(beforeOpenData,afterCloseData);
|
|
96987
|
+
this.UpdateCallCationData(beforeOpenData,afterCloseData, { DataType:1});
|
|
96926
96988
|
this.UpdateLineColorData(aryColorData,minuteData.date);
|
|
96927
96989
|
this.UpdateLatestMinuteDataV2(minuteData);
|
|
96928
96990
|
this.UpdateHistoryMinuteUI(updateTime);
|
|
@@ -96934,10 +96996,13 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
96934
96996
|
return;
|
|
96935
96997
|
}
|
|
96936
96998
|
|
|
96937
|
-
if (this.IsBeforeData && beforeOpenData) this.BeforeOpenData=beforeOpenData;
|
|
96938
|
-
if (this.IsAfterData && afterCloseData) this.AfterCloseData=afterCloseData;
|
|
96999
|
+
//if (this.IsBeforeData && beforeOpenData) this.BeforeOpenData=beforeOpenData;
|
|
97000
|
+
//if (this.IsAfterData && afterCloseData) this.AfterCloseData=afterCloseData;
|
|
97001
|
+
|
|
97002
|
+
//盘前盘后数据更新
|
|
97003
|
+
if (this.IsBeforeData && beforeOpenData) this.UpdateLatestCallCationData(this.BeforeOpenData, beforeOpenData);
|
|
97004
|
+
if (this.IsAfterData && afterCloseData) this.UpdateLatestCallCationData(this.AfterCloseData, afterCloseData);
|
|
96939
97005
|
|
|
96940
|
-
//原始数据
|
|
96941
97006
|
this.UpdateLatestMinuteDataV2(minuteData);
|
|
96942
97007
|
this.UpdateMinuteUI(data.stock[0], {FunctionName:"RecvUpdateMinuteData"});
|
|
96943
97008
|
|
|
@@ -96952,6 +97017,45 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
96952
97017
|
}
|
|
96953
97018
|
}
|
|
96954
97019
|
|
|
97020
|
+
this.UpdateLatestCallCationData=function(destData, updateData)
|
|
97021
|
+
{
|
|
97022
|
+
if (!destData) return;
|
|
97023
|
+
if (!updateData || !IFrameSplitOperator.IsNonEmptyArray(updateData.Data)) return;
|
|
97024
|
+
|
|
97025
|
+
if (destData.Data.length==0)
|
|
97026
|
+
{
|
|
97027
|
+
destData.Data=updateData.Data;
|
|
97028
|
+
destData.VolMax=updateData.VolMax;
|
|
97029
|
+
destData.VolMin=updateData.VolMin;
|
|
97030
|
+
return;
|
|
97031
|
+
}
|
|
97032
|
+
|
|
97033
|
+
//覆盖历史数据
|
|
97034
|
+
var mapData=new Map(updateData.Data.map((obj) => [obj.Time, obj]));
|
|
97035
|
+
var lastTime=null; //最后的时间
|
|
97036
|
+
for(var i=0;i<destData.Data.length;++i)
|
|
97037
|
+
{
|
|
97038
|
+
var item=destData.Data[i];
|
|
97039
|
+
lastTime=item.Time;
|
|
97040
|
+
if (!mapData.has(item.Time)) continue;
|
|
97041
|
+
var newItem=mapData.get(item.Time);
|
|
97042
|
+
if (!newItem || !IFrameSplitOperator.IsNumber(newItem.Price)) continue; //只覆盖有效数据
|
|
97043
|
+
|
|
97044
|
+
destData.Data[i]=newItem;
|
|
97045
|
+
}
|
|
97046
|
+
|
|
97047
|
+
//新数据往后插
|
|
97048
|
+
for(var i=0;i<updateData.Data.length;++i)
|
|
97049
|
+
{
|
|
97050
|
+
var item=updateData.Data[i];
|
|
97051
|
+
if (item.Time<=lastTime) continue;
|
|
97052
|
+
destData.Data.push(item);
|
|
97053
|
+
}
|
|
97054
|
+
|
|
97055
|
+
if (destData.VolMax<updateData.VolMax) destData.VolMax=updateData.VolMax;
|
|
97056
|
+
if (IFrameSplitOperator.IsNumber(updateData.TotalCount) && updateData.TotalCount>destData.TotalCount) updateData.TotalCount=destData.TotalCount;
|
|
97057
|
+
}
|
|
97058
|
+
|
|
96955
97059
|
this.RecvBuySellData=function(data)
|
|
96956
97060
|
{
|
|
96957
97061
|
if (!data) return;
|
|
@@ -97018,7 +97122,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
97018
97122
|
|
|
97019
97123
|
if (this.DayCount>1) //多日走势图
|
|
97020
97124
|
{
|
|
97021
|
-
this.UpdateCallCationData(beforeOpenData,afterCloseData);
|
|
97125
|
+
this.UpdateCallCationData(beforeOpenData,afterCloseData, { DataType:0});
|
|
97022
97126
|
this.UpdateLineColorData(aryColorData,data.stock[0].date);
|
|
97023
97127
|
this.UpdateLatestMinuteData(aryMinuteData, data.stock[0].date, data.stock[0]);
|
|
97024
97128
|
this.UpdateTradeStatusData(data.TradeStatus);
|
|
@@ -98804,6 +98908,54 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
98804
98908
|
return data;
|
|
98805
98909
|
}
|
|
98806
98910
|
|
|
98911
|
+
//获取最新的一条盘前数据
|
|
98912
|
+
this.GetLatestBeforeOpenItem=function()
|
|
98913
|
+
{
|
|
98914
|
+
var lastItem=null;
|
|
98915
|
+
if (this.DayCount>1)
|
|
98916
|
+
{
|
|
98917
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.MultiDayBeforeOpenData)) return null;
|
|
98918
|
+
var dayItem=this.MultiDayBeforeOpenData[this.MultiDayBeforeOpenData.length-1];
|
|
98919
|
+
if (!dayItem || !IFrameSplitOperator.IsNonEmptyArray(dayItem.Data)) return null;
|
|
98920
|
+
|
|
98921
|
+
var finder = dayItem.Data.findLast((element) => { return element && IFrameSplitOperator.IsNumber(element.Price); });
|
|
98922
|
+
if (finder) lastItem=finder;
|
|
98923
|
+
}
|
|
98924
|
+
else
|
|
98925
|
+
{
|
|
98926
|
+
if (!this.BeforeOpenData || !IFrameSplitOperator.IsNonEmptyArray(this.BeforeOpenData.Data)) return null;
|
|
98927
|
+
|
|
98928
|
+
var finder = this.BeforeOpenData.Data.findLast((element) => { return element && IFrameSplitOperator.IsNumber(element.Price); });
|
|
98929
|
+
if (finder) lastItem=finder;
|
|
98930
|
+
}
|
|
98931
|
+
|
|
98932
|
+
return lastItem;
|
|
98933
|
+
}
|
|
98934
|
+
|
|
98935
|
+
//获取最新的一条盘后数据
|
|
98936
|
+
this.GetLatestAfterCloseItem=function()
|
|
98937
|
+
{
|
|
98938
|
+
if (this.DayCount>1)
|
|
98939
|
+
{
|
|
98940
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.MultiDayAfterCloseData)) return null;
|
|
98941
|
+
var dayItem=this.MultiDayAfterCloseData[this.MultiDayAfterCloseData.length-1];
|
|
98942
|
+
if (!dayItem || !IFrameSplitOperator.IsNonEmptyArray(dayItem.Data)) return null;
|
|
98943
|
+
|
|
98944
|
+
var finder = dayItem.Data.findLast((element) => { return element && IFrameSplitOperator.IsNumber(element.Price); });
|
|
98945
|
+
if (finder) lastItem=finder;
|
|
98946
|
+
}
|
|
98947
|
+
else
|
|
98948
|
+
{
|
|
98949
|
+
if (!this.AfterCloseData || !IFrameSplitOperator.IsNonEmptyArray(this.AfterCloseData.Data)) return null;
|
|
98950
|
+
|
|
98951
|
+
var finder = this.AfterCloseData.Data.findLast((element) => { return element && IFrameSplitOperator.IsNumber(element.Price); });
|
|
98952
|
+
if (finder) lastItem=finder;
|
|
98953
|
+
}
|
|
98954
|
+
|
|
98955
|
+
return lastItem;
|
|
98956
|
+
}
|
|
98957
|
+
|
|
98958
|
+
|
|
98807
98959
|
this.IsCallAuctionFrame=function(frameID)
|
|
98808
98960
|
{
|
|
98809
98961
|
if (!IFrameSplitOperator.IsNonEmptyArray(this.ChartPaintEx)) return false;
|
|
@@ -98835,7 +98987,7 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
|
|
|
98835
98987
|
var preClose=data.stock[0].yclose; //前一个数据价格
|
|
98836
98988
|
var stockData=data.stock[0];
|
|
98837
98989
|
var date=stockData.date; //日期
|
|
98838
|
-
var beforeOpenData={ Data:[], TotalCount:15, Ver:1.0, Date:date };
|
|
98990
|
+
var beforeOpenData={ Data:[], TotalCount:15, Ver:1.0, Date:date, YClose:stockData.yclose, YClearing:stockData.yclearing };
|
|
98839
98991
|
var extendDataIndex=JSCHART_DATA_FIELD_ID.MINUTE_BEFOREOPEN_EXTENDDATA; //扩展数据序号
|
|
98840
98992
|
if (stockData.beforeinfo)
|
|
98841
98993
|
{
|
|
@@ -98871,7 +99023,7 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
|
|
|
98871
99023
|
else if (beforeOpenData.Ver==2.0)
|
|
98872
99024
|
{
|
|
98873
99025
|
var max=0;
|
|
98874
|
-
for(var i
|
|
99026
|
+
for(var i=0;i<stockData.before.length;++i)
|
|
98875
99027
|
{
|
|
98876
99028
|
var item=new BeforeOpenData();
|
|
98877
99029
|
var jsData=stockData.before[i];
|
|
@@ -98883,7 +99035,6 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
|
|
|
98883
99035
|
item.Vol[1]=jsData[3]; //未匹配量
|
|
98884
99036
|
item.ColorID=jsData[4]; //柱子颜色ID
|
|
98885
99037
|
if (IFrameSplitOperator.IsNumber(jsData[6])) item.Date=jsData[6] //日期
|
|
98886
|
-
item.DateTime=`${item.Date} ${item.Time})`;
|
|
98887
99038
|
|
|
98888
99039
|
var totalVol=item.Vol[0]+item.Vol[1];
|
|
98889
99040
|
if (IFrameSplitOperator.IsNumber(jsData[5])) totalVol=jsData[5];
|
|
@@ -98895,12 +99046,14 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
|
|
|
98895
99046
|
|
|
98896
99047
|
beforeOpenData.VolMax=max/unit;
|
|
98897
99048
|
beforeOpenData.VolMin=0;
|
|
99049
|
+
|
|
99050
|
+
if (stockData.beforeinfo && stockData.beforeinfo.TimeConfig) //固定时间
|
|
99051
|
+
MinuteChartContainer.CompleteCallAuctionData(stockData.beforeinfo.TimeConfig, beforeOpenData);
|
|
98898
99052
|
}
|
|
98899
99053
|
else if (beforeOpenData.Ver==3.0)
|
|
98900
99054
|
{
|
|
98901
99055
|
var max=0;
|
|
98902
|
-
|
|
98903
|
-
for(var i in stockData.before)
|
|
99056
|
+
for(var i=0; i<stockData.before.length; ++i)
|
|
98904
99057
|
{
|
|
98905
99058
|
var item=new BeforeOpenData();
|
|
98906
99059
|
var jsData=stockData.before[i];
|
|
@@ -98911,7 +99064,6 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
|
|
|
98911
99064
|
item.AvPrice=jsData[2]; //均价
|
|
98912
99065
|
item.Vol[0]=jsData[3]; //匹配量
|
|
98913
99066
|
item.ColorID=jsData[4]; //柱子颜色ID
|
|
98914
|
-
item.DateTime=date.toString()+" "+item.Time.toString();
|
|
98915
99067
|
|
|
98916
99068
|
var totalVol=item.Vol[0];
|
|
98917
99069
|
if (IFrameSplitOperator.IsNumber(jsData[5])) totalVol=jsData[5];
|
|
@@ -98923,11 +99075,72 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
|
|
|
98923
99075
|
|
|
98924
99076
|
beforeOpenData.VolMax=max/unit;
|
|
98925
99077
|
beforeOpenData.VolMin=0;
|
|
99078
|
+
|
|
99079
|
+
if (stockData.beforeinfo && stockData.beforeinfo.TimeConfig) //固定时间
|
|
99080
|
+
MinuteChartContainer.CompleteCallAuctionData(stockData.beforeinfo.TimeConfig, beforeOpenData);
|
|
98926
99081
|
}
|
|
98927
99082
|
|
|
98928
99083
|
return beforeOpenData;
|
|
98929
99084
|
}
|
|
98930
99085
|
|
|
99086
|
+
|
|
99087
|
+
MinuteChartContainer.CompleteCallAuctionData=function(timeConfig, callAuctionData)
|
|
99088
|
+
{
|
|
99089
|
+
var aryData=MinuteChartContainer.CreateCallAuctionTimeData(timeConfig);
|
|
99090
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(aryData)) return false;
|
|
99091
|
+
|
|
99092
|
+
var mapData=new Map(callAuctionData.Data.map((obj) => [obj.Time, obj]));
|
|
99093
|
+
for(var i=0;i<aryData.length;++i)
|
|
99094
|
+
{
|
|
99095
|
+
var time=aryData[i].Time;
|
|
99096
|
+
if (!mapData.has(time)) continue;
|
|
99097
|
+
|
|
99098
|
+
var item=mapData.get(time);
|
|
99099
|
+
aryData[i]=item;
|
|
99100
|
+
}
|
|
99101
|
+
|
|
99102
|
+
callAuctionData.Data=aryData;
|
|
99103
|
+
callAuctionData.TotalCount=aryData.length;
|
|
99104
|
+
|
|
99105
|
+
return true;
|
|
99106
|
+
}
|
|
99107
|
+
|
|
99108
|
+
//创建集合竞价秒级时间 { AryTime:[ { Start:92500, End:92459, Date:20250101 } ] } hhmmss
|
|
99109
|
+
MinuteChartContainer.CreateCallAuctionTimeData=function(config)
|
|
99110
|
+
{
|
|
99111
|
+
if (!config || !IFrameSplitOperator.IsNonEmptyArray(config.AryTime)) return null;
|
|
99112
|
+
|
|
99113
|
+
var step=1; //1s
|
|
99114
|
+
if (IFrameSplitOperator.IsPlusNumber(config.Step)) step=config.Step;
|
|
99115
|
+
var aryData=[];
|
|
99116
|
+
for(var i=0;i<config.AryTime.length;++i)
|
|
99117
|
+
{
|
|
99118
|
+
var item=config.AryTime[i];
|
|
99119
|
+
|
|
99120
|
+
var value=item.Start;
|
|
99121
|
+
var hour=parseInt(value/10000);
|
|
99122
|
+
var minute=parseInt((value%10000)/100);
|
|
99123
|
+
var second=value%100;
|
|
99124
|
+
var startTime=new Date(2021,5,2, hour,minute, second);
|
|
99125
|
+
|
|
99126
|
+
value=item.End;
|
|
99127
|
+
var hour=parseInt(value/10000);
|
|
99128
|
+
var minute=parseInt((value%10000)/100);
|
|
99129
|
+
var second=value%100;
|
|
99130
|
+
var endTime=new Date(2021,5,2, hour,minute, second);
|
|
99131
|
+
|
|
99132
|
+
for(var j=0; j<5000 && startTime<=endTime; ++j)
|
|
99133
|
+
{
|
|
99134
|
+
var time=startTime.getHours()*10000+startTime.getMinutes()*100+startTime.getSeconds();
|
|
99135
|
+
var secItem={ Time:time, Date:item.Date };
|
|
99136
|
+
aryData.push(secItem);
|
|
99137
|
+
startTime.setSeconds(startTime.getSeconds()+step);
|
|
99138
|
+
}
|
|
99139
|
+
}
|
|
99140
|
+
|
|
99141
|
+
return aryData;
|
|
99142
|
+
}
|
|
99143
|
+
|
|
98931
99144
|
//收盘集合竞价
|
|
98932
99145
|
MinuteChartContainer.JsonDataToAfterCloseData=function(data)
|
|
98933
99146
|
{
|
|
@@ -98938,7 +99151,7 @@ MinuteChartContainer.JsonDataToAfterCloseData=function(data)
|
|
|
98938
99151
|
if (!stockData.afterinfo) return null;
|
|
98939
99152
|
var symbol=data.stock[0].symbol;
|
|
98940
99153
|
var upperSymbol=symbol.toUpperCase();
|
|
98941
|
-
var afterCloseData={ Data:[], TotalCount:3*60, Ver:2.0, Date:date };
|
|
99154
|
+
var afterCloseData={ Data:[], TotalCount:3*60, Ver:2.0, Date:date, YClose:stockData.yclose, YClearing:stockData.yclearing };
|
|
98942
99155
|
var item=stockData.afterinfo;
|
|
98943
99156
|
if (IFrameSplitOperator.IsNumber(item.totalcount)) afterCloseData.TotalCount=item.totalcount;
|
|
98944
99157
|
if (IFrameSplitOperator.IsNumber(item.ver)) afterCloseData.Ver=item.ver;
|
|
@@ -98968,7 +99181,7 @@ MinuteChartContainer.JsonDataToAfterCloseData=function(data)
|
|
|
98968
99181
|
else if (afterCloseData.Ver==2.0)
|
|
98969
99182
|
{
|
|
98970
99183
|
var max=0;
|
|
98971
|
-
for(var i
|
|
99184
|
+
for(var i=0; i<stockData.after.length; ++i)
|
|
98972
99185
|
{
|
|
98973
99186
|
var item=new AfterCloseData();
|
|
98974
99187
|
var jsData=stockData.after[i];
|
|
@@ -98991,6 +99204,9 @@ MinuteChartContainer.JsonDataToAfterCloseData=function(data)
|
|
|
98991
99204
|
|
|
98992
99205
|
afterCloseData.VolMax=max/unit;
|
|
98993
99206
|
afterCloseData.VolMin=0;
|
|
99207
|
+
|
|
99208
|
+
if (stockData.afterinfo && stockData.afterinfo.TimeConfig) //固定时间
|
|
99209
|
+
MinuteChartContainer.CompleteCallAuctionData(stockData.afterinfo.TimeConfig, afterCloseData);
|
|
98994
99210
|
}
|
|
98995
99211
|
else if (afterCloseData.Ver==3.0)
|
|
98996
99212
|
{
|
|
@@ -99018,6 +99234,9 @@ MinuteChartContainer.JsonDataToAfterCloseData=function(data)
|
|
|
99018
99234
|
|
|
99019
99235
|
afterCloseData.VolMax=max/unit;
|
|
99020
99236
|
afterCloseData.VolMin=0;
|
|
99237
|
+
|
|
99238
|
+
if (stockData.afterinfo && stockData.afterinfo.TimeConfig) //固定时间
|
|
99239
|
+
MinuteChartContainer.CompleteCallAuctionData(stockData.afterinfo.TimeConfig, afterCloseData);
|
|
99021
99240
|
}
|
|
99022
99241
|
|
|
99023
99242
|
return afterCloseData;
|
|
@@ -99139,12 +99358,13 @@ MinuteChartContainer.JsonDataToUpdateMinuteData=function(data)
|
|
|
99139
99358
|
|
|
99140
99359
|
item.DateTime=`${item.Date} ${item.Time}`;
|
|
99141
99360
|
|
|
99142
|
-
if (IFrameSplitOperator.IsNumber(minuteData.YClose) && item.Close)
|
|
99143
|
-
|
|
99144
|
-
|
|
99145
|
-
|
|
99146
|
-
|
|
99147
|
-
|
|
99361
|
+
if (!IFrameSplitOperator.IsNumber(item.Increase) && IFrameSplitOperator.IsNumber(minuteData.YClose) && item.Close)
|
|
99362
|
+
{
|
|
99363
|
+
if (isFutures && minuteData.YClearing && item.Close)
|
|
99364
|
+
item.Increase=(item.Close-minuteData.YClearing)/minuteData.YClearing*100; //涨幅 (最新价格-昨结算价)/昨结算价*100;
|
|
99365
|
+
else
|
|
99366
|
+
item.Increase=(item.Close-minuteData.YClose)/minuteData.YClose*100; //涨幅 (最新价格-昨收)/昨收*100;
|
|
99367
|
+
}
|
|
99148
99368
|
|
|
99149
99369
|
minuteData.Data.push(item);
|
|
99150
99370
|
}
|
|
@@ -99308,8 +99528,9 @@ MinuteChartContainer.JsonDataToHistoryMinuteLineColorData=function(data)
|
|
|
99308
99528
|
}
|
|
99309
99529
|
|
|
99310
99530
|
|
|
99311
|
-
MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, isBeforeOpen, symbol)
|
|
99531
|
+
MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, isBeforeOpen, symbol, dataInfo)
|
|
99312
99532
|
{
|
|
99533
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(data)) return;
|
|
99313
99534
|
var upperSymbol=symbol?symbol.toUpperCase():null;
|
|
99314
99535
|
var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
|
|
99315
99536
|
|
|
@@ -99320,7 +99541,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
|
|
|
99320
99541
|
if (callAuctionData.Ver==1.0)
|
|
99321
99542
|
{
|
|
99322
99543
|
var preClose=null;
|
|
99323
|
-
for(var i
|
|
99544
|
+
for(var i=0; i<data.length; ++i)
|
|
99324
99545
|
{
|
|
99325
99546
|
var item=isBeforeOpen? new BeforeOpenData() : new AfterCloseData();
|
|
99326
99547
|
var jsData=data[i];
|
|
@@ -99344,7 +99565,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
|
|
|
99344
99565
|
else if (callAuctionData.Ver==2.0)
|
|
99345
99566
|
{
|
|
99346
99567
|
var max=0;
|
|
99347
|
-
for(var i
|
|
99568
|
+
for(var i=0; i<data.length; ++i)
|
|
99348
99569
|
{
|
|
99349
99570
|
var item=isBeforeOpen? new BeforeOpenData() : new AfterCloseData();
|
|
99350
99571
|
var jsData=data[i];
|
|
@@ -99356,7 +99577,6 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
|
|
|
99356
99577
|
item.Vol[0]=jsData[2]; //匹配量
|
|
99357
99578
|
item.Vol[1]=jsData[3]; //未匹配量
|
|
99358
99579
|
item.ColorID=jsData[4]; //柱子颜色ID
|
|
99359
|
-
item.DateTime=date.toString()+" "+item.Time.toString();
|
|
99360
99580
|
|
|
99361
99581
|
var totalVol=item.Vol[0]+item.Vol[1];
|
|
99362
99582
|
if (IFrameSplitOperator.IsNumber(jsData[5])) totalVol=jsData[5];
|
|
@@ -99368,6 +99588,9 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
|
|
|
99368
99588
|
|
|
99369
99589
|
callAuctionData.VolMax=max/unit;
|
|
99370
99590
|
callAuctionData.VolMin=0;
|
|
99591
|
+
|
|
99592
|
+
if (dataInfo && dataInfo.TimeConfig) //固定时间
|
|
99593
|
+
MinuteChartContainer.CompleteCallAuctionData(dataInfo.TimeConfig, callAuctionData);
|
|
99371
99594
|
}
|
|
99372
99595
|
else if (beforeOpenData.Ver==3.0)
|
|
99373
99596
|
{
|
|
@@ -99384,7 +99607,6 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
|
|
|
99384
99607
|
item.AvPrice=jsData[2]; //均价
|
|
99385
99608
|
item.Vol[0]=jsData[3]; //匹配量
|
|
99386
99609
|
item.ColorID=jsData[4]; //柱子颜色ID
|
|
99387
|
-
item.DateTime=date.toString()+" "+item.Time.toString();
|
|
99388
99610
|
|
|
99389
99611
|
var totalVol=item.Vol[0];
|
|
99390
99612
|
if (IFrameSplitOperator.IsNumber(jsData[5])) totalVol=jsData[5];
|
|
@@ -99396,6 +99618,9 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
|
|
|
99396
99618
|
|
|
99397
99619
|
callAuctionData.VolMax=max/unit;
|
|
99398
99620
|
callAuctionData.VolMin=0;
|
|
99621
|
+
|
|
99622
|
+
if (dataInfo && dataInfo.TimeConfig) //固定时间
|
|
99623
|
+
MinuteChartContainer.CompleteCallAuctionData(dataInfo.TimeConfig, callAuctionData);
|
|
99399
99624
|
}
|
|
99400
99625
|
}
|
|
99401
99626
|
|
|
@@ -99404,7 +99629,7 @@ MinuteChartContainer.JosnDataToBeforeOpenDataArray=function(data)
|
|
|
99404
99629
|
if (!data || !data.data) return null;
|
|
99405
99630
|
|
|
99406
99631
|
var aryDay=[];
|
|
99407
|
-
for(var i
|
|
99632
|
+
for(var i=0; i<data.data.length; ++i)
|
|
99408
99633
|
{
|
|
99409
99634
|
var dayItem=data.data[i];
|
|
99410
99635
|
var beforeOpenData={ Data:[], TotalCount:15, Ver:1.0, Date:dayItem.date, YClose:dayItem.yclose, YClearing:dayItem.YClearing };
|
|
@@ -99414,7 +99639,7 @@ MinuteChartContainer.JosnDataToBeforeOpenDataArray=function(data)
|
|
|
99414
99639
|
if (IFrameSplitOperator.IsNumber(dayItem.beforeinfo.ver)) beforeOpenData.Ver=dayItem.beforeinfo.ver;
|
|
99415
99640
|
}
|
|
99416
99641
|
|
|
99417
|
-
MinuteChartContainer.JsonDataToCallAuctionItem(dayItem.before, beforeOpenData, true, data.symbol);
|
|
99642
|
+
MinuteChartContainer.JsonDataToCallAuctionItem(dayItem.before, beforeOpenData, true, data.symbol, dayItem.beforeinfo);
|
|
99418
99643
|
|
|
99419
99644
|
aryDay.push(beforeOpenData);
|
|
99420
99645
|
}
|
|
@@ -99429,7 +99654,7 @@ MinuteChartContainer.JosnDataToAfterCloseDataArray=function(data)
|
|
|
99429
99654
|
if (!data || !data.data) return null;
|
|
99430
99655
|
|
|
99431
99656
|
var aryDay=[];
|
|
99432
|
-
for(var i
|
|
99657
|
+
for(var i=0; i<data.data.length; ++i)
|
|
99433
99658
|
{
|
|
99434
99659
|
var dayItem=data.data[i];
|
|
99435
99660
|
var afterCloseData={ Data:[], TotalCount:15, Ver:1.0, Date:dayItem.date, YClose:dayItem.yclose, YClearing:dayItem.YClearing };
|
|
@@ -99440,7 +99665,7 @@ MinuteChartContainer.JosnDataToAfterCloseDataArray=function(data)
|
|
|
99440
99665
|
if (IFrameSplitOperator.IsNumber(dayItem.afterinfo.ver)) afterCloseData.Ver=dayItem.afterinfo.ver;
|
|
99441
99666
|
}
|
|
99442
99667
|
|
|
99443
|
-
MinuteChartContainer.JsonDataToCallAuctionItem(dayItem.after, afterCloseData, false, data.symbol);
|
|
99668
|
+
MinuteChartContainer.JsonDataToCallAuctionItem(dayItem.after, afterCloseData, false, data.symbol, dayItem.afterinfo);
|
|
99444
99669
|
|
|
99445
99670
|
aryDay.push(afterCloseData);
|
|
99446
99671
|
}
|
|
@@ -162614,7 +162839,7 @@ function HQChartScriptWorker()
|
|
|
162614
162839
|
|
|
162615
162840
|
|
|
162616
162841
|
|
|
162617
|
-
var HQCHART_VERSION="1.1.
|
|
162842
|
+
var HQCHART_VERSION="1.1.14955";
|
|
162618
162843
|
|
|
162619
162844
|
function PrintHQChartVersion()
|
|
162620
162845
|
{
|