hqchart 1.1.14943 → 1.1.14953
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 +58 -36
- package/package.json +1 -1
- package/src/jscommon/umychart.NetworkFilterTest.js +287 -33
- package/src/jscommon/umychart.js +252 -58
- package/src/jscommon/umychart.testdata.js +286 -32
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +253 -59
- 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 +253 -59
package/src/jscommon/umychart.js
CHANGED
|
@@ -11772,9 +11772,24 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
11772
11772
|
{
|
|
11773
11773
|
if (!data.IsShowCorss) //十字光标隐藏
|
|
11774
11774
|
{
|
|
11775
|
+
//清空当前鼠标坐标
|
|
11776
|
+
this.LastPoint.X=null;
|
|
11777
|
+
this.LastPoint.Y=null;
|
|
11775
11778
|
this.HideTooltip();
|
|
11776
11779
|
this.CloseTooltipDialog();
|
|
11777
11780
|
}
|
|
11781
|
+
else
|
|
11782
|
+
{
|
|
11783
|
+
if (IFrameSplitOperator.IsNumber(data.X) && IFrameSplitOperator.IsNumber(data.Y))
|
|
11784
|
+
{
|
|
11785
|
+
//设置鼠标位置
|
|
11786
|
+
if (this.LastPoint && (!IFrameSplitOperator.IsNumber(this.LastPoint.X) || !IFrameSplitOperator.IsNumber(this.LastPoint.Y)))
|
|
11787
|
+
{
|
|
11788
|
+
this.LastPoint.X=data.X;
|
|
11789
|
+
this.LastPoint.Y=data.Y;
|
|
11790
|
+
}
|
|
11791
|
+
}
|
|
11792
|
+
}
|
|
11778
11793
|
}
|
|
11779
11794
|
}
|
|
11780
11795
|
|
|
@@ -35309,10 +35324,10 @@ function ChartMinuteVolumBar()
|
|
|
35309
35324
|
var unit=this.GetVolUnit();
|
|
35310
35325
|
if (callAutionData.Ver==1.0)
|
|
35311
35326
|
{
|
|
35312
|
-
for(var i
|
|
35327
|
+
for(var i=0;i<callAutionData.Data.length;++i)
|
|
35313
35328
|
{
|
|
35314
35329
|
var item=callAutionData.Data[i];
|
|
35315
|
-
if (!item || !IFrameSplitOperator.IsNumber(item.Vol[0])) continue;
|
|
35330
|
+
if (!item || !IFrameSplitOperator.IsNonEmptyArray(item.Vol) || !IFrameSplitOperator.IsNumber(item.Vol[0])) continue;
|
|
35316
35331
|
|
|
35317
35332
|
if (isBeforeOpen)
|
|
35318
35333
|
{
|
|
@@ -35346,11 +35361,11 @@ function ChartMinuteVolumBar()
|
|
|
35346
35361
|
{
|
|
35347
35362
|
var range={ Max: callAutionData.VolMax, Min:callAutionData.VolMin }
|
|
35348
35363
|
|
|
35349
|
-
for(var i
|
|
35364
|
+
for(var i=0; i<callAutionData.Data.length; ++i)
|
|
35350
35365
|
{
|
|
35351
35366
|
var item=callAutionData.Data[i];
|
|
35352
35367
|
if (!item) continue;
|
|
35353
|
-
if (IFrameSplitOperator.IsPlusNumber(item.Vol[0]))
|
|
35368
|
+
if (item.Vol && IFrameSplitOperator.IsPlusNumber(item.Vol[0]))
|
|
35354
35369
|
{
|
|
35355
35370
|
if (isBeforeOpen)
|
|
35356
35371
|
{
|
|
@@ -35380,7 +35395,7 @@ function ChartMinuteVolumBar()
|
|
|
35380
35395
|
this.Canvas.stroke();
|
|
35381
35396
|
}
|
|
35382
35397
|
|
|
35383
|
-
if (IFrameSplitOperator.IsPlusNumber(item.Vol[1]))
|
|
35398
|
+
if (item.Vol && IFrameSplitOperator.IsPlusNumber(item.Vol[1]))
|
|
35384
35399
|
{
|
|
35385
35400
|
if (isBeforeOpen)
|
|
35386
35401
|
{
|
|
@@ -40360,16 +40375,23 @@ function ChartMinutePriceLine()
|
|
|
40360
40375
|
var item=callAutionData.Data[i];
|
|
40361
40376
|
if (!item || !IFrameSplitOperator.IsNumber(item.Price))
|
|
40362
40377
|
{
|
|
40363
|
-
if (i==0 && isBeforeOpen
|
|
40378
|
+
if (i==0 && isBeforeOpen)
|
|
40364
40379
|
{
|
|
40365
|
-
|
|
40366
|
-
var
|
|
40380
|
+
//盘前集合竞价起始点为昨收或昨结算
|
|
40381
|
+
var price=callAutionData.YClose;
|
|
40382
|
+
if (IFrameSplitOperator.IsNumber(callAutionData.YClearing)) price=callAutionData.YClearing;
|
|
40367
40383
|
|
|
40368
|
-
|
|
40369
|
-
|
|
40370
|
-
|
|
40371
|
-
|
|
40372
|
-
|
|
40384
|
+
if (IFrameSplitOperator.IsNumber(price))
|
|
40385
|
+
{
|
|
40386
|
+
var x=this.ChartFrame.GetLeftExtendXFromIndex(i,callAutionData);
|
|
40387
|
+
var y=this.ChartFrame.GetLeftExtendYFromData(price);
|
|
40388
|
+
|
|
40389
|
+
this.Canvas.strokeStyle=this.BeforeLineColor;
|
|
40390
|
+
this.Canvas.beginPath();
|
|
40391
|
+
if (isHScreen) this.Canvas.moveTo(y,x);
|
|
40392
|
+
else this.Canvas.moveTo(x,y);
|
|
40393
|
+
bFirstPoint=false;
|
|
40394
|
+
}
|
|
40373
40395
|
}
|
|
40374
40396
|
|
|
40375
40397
|
continue;
|
|
@@ -57513,6 +57535,7 @@ function ChartCorssCursor()
|
|
|
57513
57535
|
this.LastValue=null;
|
|
57514
57536
|
|
|
57515
57537
|
if (!this.LastPoint) return;
|
|
57538
|
+
if (!this.IsShow) return;
|
|
57516
57539
|
|
|
57517
57540
|
this.Close=null;
|
|
57518
57541
|
var x=this.LastPoint.X;
|
|
@@ -58635,8 +58658,7 @@ function ChartCorssCursor()
|
|
|
58635
58658
|
{
|
|
58636
58659
|
this.IsShowCorss=!this.IsShowCorss
|
|
58637
58660
|
data.Draw=true;
|
|
58638
|
-
|
|
58639
|
-
if (this.OnChangeStatusCallback) this.OnChangeStatusCallback({ Type:1, IsShowCorss:this.IsShowCorss }, this);
|
|
58661
|
+
if (this.OnChangeStatusCallback) this.OnChangeStatusCallback({ Type:1, IsShowCorss:this.IsShowCorss, X:x, Y:y }, this);
|
|
58640
58662
|
}
|
|
58641
58663
|
}
|
|
58642
58664
|
|
|
@@ -60428,6 +60450,14 @@ function DynamicKLineTitlePainting()
|
|
|
60428
60450
|
this.OnMouseMoveEvent;
|
|
60429
60451
|
this.HQChart;
|
|
60430
60452
|
|
|
60453
|
+
//十字线是否显示
|
|
60454
|
+
this.IsShowCorssLine=function()
|
|
60455
|
+
{
|
|
60456
|
+
if (!this.HQChart || !this.HQChart.ChartCorssCursor) return false;
|
|
60457
|
+
|
|
60458
|
+
return this.HQChart.ChartCorssCursor.IsShowCorss;
|
|
60459
|
+
}
|
|
60460
|
+
|
|
60431
60461
|
this.ReloadResource=function()
|
|
60432
60462
|
{
|
|
60433
60463
|
this.Font=g_JSChartResource.TitleFont;
|
|
@@ -60919,6 +60949,8 @@ function DynamicKLineTitlePainting()
|
|
|
60919
60949
|
isShow=true;
|
|
60920
60950
|
else if (status.CorssCursorTouchEnd && status.IsOnTouch==false)
|
|
60921
60951
|
isShow=true;
|
|
60952
|
+
else if (!this.IsShowCorssLine())
|
|
60953
|
+
isShow=true;
|
|
60922
60954
|
}
|
|
60923
60955
|
|
|
60924
60956
|
return isShow;
|
|
@@ -61518,6 +61550,8 @@ function DynamicMinuteTitlePainting()
|
|
|
61518
61550
|
isShowLastData=true;
|
|
61519
61551
|
else if (status.CorssCursorTouchEnd && status.IsOnTouch==false)
|
|
61520
61552
|
isShowLastData=true;
|
|
61553
|
+
else if (!this.IsShowCorssLine())
|
|
61554
|
+
isShowLastData=true;
|
|
61521
61555
|
}
|
|
61522
61556
|
else if (this.GlobalOption && this.GlobalOption.IsDisplayLatest)
|
|
61523
61557
|
{
|
|
@@ -61730,6 +61764,14 @@ function DynamicChartTitlePainting()
|
|
|
61730
61764
|
this.IsShowMainIndexTitle=true; //是否显示主图指标标题
|
|
61731
61765
|
this.MainTitlePaint=null; //主标题
|
|
61732
61766
|
|
|
61767
|
+
//十字线是否显示
|
|
61768
|
+
this.IsShowCorssLine=function()
|
|
61769
|
+
{
|
|
61770
|
+
if (!this.HQChart || !this.HQChart.ChartCorssCursor) return false;
|
|
61771
|
+
|
|
61772
|
+
return this.HQChart.ChartCorssCursor.IsShowCorss;
|
|
61773
|
+
}
|
|
61774
|
+
|
|
61733
61775
|
this.ReloadResource=function()
|
|
61734
61776
|
{
|
|
61735
61777
|
this.Font=g_JSChartResource.TitleFont;
|
|
@@ -62321,6 +62363,8 @@ function DynamicChartTitlePainting()
|
|
|
62321
62363
|
isShowLastData=true;
|
|
62322
62364
|
else if (status.CorssCursorTouchEnd && status.IsOnTouch==false)
|
|
62323
62365
|
isShowLastData=true;
|
|
62366
|
+
else if (!this.IsShowCorssLine())
|
|
62367
|
+
isShowLastData=true;
|
|
62324
62368
|
}
|
|
62325
62369
|
else if (this.GlobalOption && this.GlobalOption.IsDisplayLatest)
|
|
62326
62370
|
{
|
|
@@ -92516,6 +92560,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
92516
92560
|
//更新最新的几条数据
|
|
92517
92561
|
this.UpdateLatestMinuteDataV2=function(minuteData)
|
|
92518
92562
|
{
|
|
92563
|
+
if (!minuteData || !IFrameSplitOperator.IsNonEmptyArray(minuteData.Data)) return;
|
|
92564
|
+
|
|
92519
92565
|
if (this.DayCount>1)
|
|
92520
92566
|
{
|
|
92521
92567
|
if (!this.DayData) return;
|
|
@@ -92524,7 +92570,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
92524
92570
|
for(var i=0; i<this.DayData.length; ++i)
|
|
92525
92571
|
{
|
|
92526
92572
|
var item=this.DayData[i];
|
|
92527
|
-
if (item.Date===
|
|
92573
|
+
if (item.Date===minuteData.Date)
|
|
92528
92574
|
{
|
|
92529
92575
|
findItem=item;
|
|
92530
92576
|
break;
|
|
@@ -92710,24 +92756,50 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
92710
92756
|
this.ColorLineData=aryColorLineData;
|
|
92711
92757
|
}
|
|
92712
92758
|
|
|
92713
|
-
this.UpdateCallCationData=function(beforeOpenData,afterCloseData)
|
|
92759
|
+
this.UpdateCallCationData=function(beforeOpenData,afterCloseData,option)
|
|
92714
92760
|
{
|
|
92715
|
-
|
|
92761
|
+
var dataType=0;
|
|
92762
|
+
if (option && IFrameSplitOperator.IsNumber(option.DataType)) dataType=option.DataType;
|
|
92763
|
+
|
|
92764
|
+
if (dataType==1)
|
|
92716
92765
|
{
|
|
92717
|
-
|
|
92718
|
-
|
|
92719
|
-
this.MultiDayBeforeOpenData[this.MultiDayBeforeOpenData.length-1]
|
|
92720
|
-
|
|
92721
|
-
|
|
92722
|
-
|
|
92766
|
+
if (beforeOpenData && IFrameSplitOperator.IsNonEmptyArray(this.MultiDayBeforeOpenData))
|
|
92767
|
+
{
|
|
92768
|
+
var lastItem=this.MultiDayBeforeOpenData[this.MultiDayBeforeOpenData.length-1];
|
|
92769
|
+
if (lastItem.Date==beforeOpenData.Date) //增量更新
|
|
92770
|
+
{
|
|
92771
|
+
this.UpdateLatestCallCationData(lastItem, beforeOpenData);
|
|
92772
|
+
}
|
|
92773
|
+
}
|
|
92723
92774
|
|
|
92724
|
-
|
|
92775
|
+
if (afterCloseData && IFrameSplitOperator.IsNonEmptyArray(this.MultiDayAfterCloseData))
|
|
92776
|
+
{
|
|
92777
|
+
var lastItem=this.MultiDayAfterCloseData[this.MultiDayAfterCloseData.length-1];
|
|
92778
|
+
if (lastItem.Date==afterCloseData.Date) //增量更新
|
|
92779
|
+
{
|
|
92780
|
+
this.UpdateLatestCallCationData(lastItem, afterCloseData);
|
|
92781
|
+
}
|
|
92782
|
+
}
|
|
92783
|
+
}
|
|
92784
|
+
else
|
|
92725
92785
|
{
|
|
92726
|
-
|
|
92727
|
-
|
|
92728
|
-
this.
|
|
92729
|
-
|
|
92730
|
-
|
|
92786
|
+
if (beforeOpenData && IFrameSplitOperator.IsNonEmptyArray(this.MultiDayBeforeOpenData))
|
|
92787
|
+
{
|
|
92788
|
+
var lastItem=this.MultiDayBeforeOpenData[this.MultiDayBeforeOpenData.length-1];
|
|
92789
|
+
if (lastItem.Date==beforeOpenData.Date) //存在更新
|
|
92790
|
+
this.MultiDayBeforeOpenData[this.MultiDayBeforeOpenData.length-1]=beforeOpenData;
|
|
92791
|
+
else if (lastItem.Date<beforeOpenData.Date) //新的一天插入
|
|
92792
|
+
this.MultiDayBeforeOpenData.push(beforeOpenData);
|
|
92793
|
+
}
|
|
92794
|
+
|
|
92795
|
+
if (afterCloseData && IFrameSplitOperator.IsNonEmptyArray(this.MultiDayAfterCloseData))
|
|
92796
|
+
{
|
|
92797
|
+
var lastItem=this.MultiDayAfterCloseData[this.MultiDayAfterCloseData.length-1];
|
|
92798
|
+
if (lastItem.Date==afterCloseData.Date)
|
|
92799
|
+
this.MultiDayAfterCloseData[this.MultiDayAfterCloseData.length-1]=afterCloseData;
|
|
92800
|
+
else if (lastItem.Date<afterCloseData.Date)
|
|
92801
|
+
this.MultiDayAfterCloseData.push(afterCloseData);
|
|
92802
|
+
}
|
|
92731
92803
|
}
|
|
92732
92804
|
|
|
92733
92805
|
this.CaclutateCallCationYRange();
|
|
@@ -92743,9 +92815,16 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
92743
92815
|
var afterCloseData=MinuteChartContainer.JsonDataToAfterCloseData(data);
|
|
92744
92816
|
var updateTime=MinuteChartContainer.JsonDataToMinuteLastUpdateTime(data); //数据最后的更新时间
|
|
92745
92817
|
|
|
92818
|
+
if (data.LatestPointFlash) //最新数据闪烁
|
|
92819
|
+
{
|
|
92820
|
+
var item=data.LatestPointFlash;
|
|
92821
|
+
if (IFrameSplitOperator.IsNumber(item.FlashCount))
|
|
92822
|
+
this.SetLatestPointFlash(item.FlashCount)
|
|
92823
|
+
}
|
|
92824
|
+
|
|
92746
92825
|
if (this.DayCount>1) //多日走势图
|
|
92747
92826
|
{
|
|
92748
|
-
this.UpdateCallCationData(beforeOpenData,afterCloseData);
|
|
92827
|
+
this.UpdateCallCationData(beforeOpenData,afterCloseData, { DataType:1});
|
|
92749
92828
|
this.UpdateLineColorData(aryColorData,minuteData.date);
|
|
92750
92829
|
this.UpdateLatestMinuteDataV2(minuteData);
|
|
92751
92830
|
this.UpdateHistoryMinuteUI(updateTime);
|
|
@@ -92757,10 +92836,13 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
92757
92836
|
return;
|
|
92758
92837
|
}
|
|
92759
92838
|
|
|
92760
|
-
if (this.IsBeforeData && beforeOpenData) this.BeforeOpenData=beforeOpenData;
|
|
92761
|
-
if (this.IsAfterData && afterCloseData) this.AfterCloseData=afterCloseData;
|
|
92839
|
+
//if (this.IsBeforeData && beforeOpenData) this.BeforeOpenData=beforeOpenData;
|
|
92840
|
+
//if (this.IsAfterData && afterCloseData) this.AfterCloseData=afterCloseData;
|
|
92841
|
+
|
|
92842
|
+
//盘前盘后数据更新
|
|
92843
|
+
if (this.IsBeforeData && beforeOpenData) this.UpdateLatestCallCationData(this.BeforeOpenData, beforeOpenData);
|
|
92844
|
+
if (this.IsAfterData && afterCloseData) this.UpdateLatestCallCationData(this.AfterCloseData, afterCloseData);
|
|
92762
92845
|
|
|
92763
|
-
//原始数据
|
|
92764
92846
|
this.UpdateLatestMinuteDataV2(minuteData);
|
|
92765
92847
|
this.UpdateMinuteUI(data.stock[0], {FunctionName:"RecvUpdateMinuteData"});
|
|
92766
92848
|
|
|
@@ -92775,6 +92857,45 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
92775
92857
|
}
|
|
92776
92858
|
}
|
|
92777
92859
|
|
|
92860
|
+
this.UpdateLatestCallCationData=function(destData, updateData)
|
|
92861
|
+
{
|
|
92862
|
+
if (!destData) return;
|
|
92863
|
+
if (!updateData || !IFrameSplitOperator.IsNonEmptyArray(updateData.Data)) return;
|
|
92864
|
+
|
|
92865
|
+
if (destData.Data.length==0)
|
|
92866
|
+
{
|
|
92867
|
+
destData.Data=updateData.Data;
|
|
92868
|
+
destData.VolMax=updateData.VolMax;
|
|
92869
|
+
destData.VolMin=updateData.VolMin;
|
|
92870
|
+
return;
|
|
92871
|
+
}
|
|
92872
|
+
|
|
92873
|
+
//覆盖历史数据
|
|
92874
|
+
var mapData=new Map(updateData.Data.map((obj) => [obj.Time, obj]));
|
|
92875
|
+
var lastTime=null; //最后的时间
|
|
92876
|
+
for(var i=0;i<destData.Data.length;++i)
|
|
92877
|
+
{
|
|
92878
|
+
var item=destData.Data[i];
|
|
92879
|
+
lastTime=item.Time;
|
|
92880
|
+
if (!mapData.has(item.Time)) continue;
|
|
92881
|
+
var newItem=mapData.get(item.Time);
|
|
92882
|
+
if (!newItem || !IFrameSplitOperator.IsNumber(newItem.Price)) continue; //只覆盖有效数据
|
|
92883
|
+
|
|
92884
|
+
destData.Data[i]=newItem;
|
|
92885
|
+
}
|
|
92886
|
+
|
|
92887
|
+
//新数据往后插
|
|
92888
|
+
for(var i=0;i<updateData.Data.length;++i)
|
|
92889
|
+
{
|
|
92890
|
+
var item=updateData.Data[i];
|
|
92891
|
+
if (item.Time<=lastTime) continue;
|
|
92892
|
+
destData.Data.push(item);
|
|
92893
|
+
}
|
|
92894
|
+
|
|
92895
|
+
if (destData.VolMax<updateData.VolMax) destData.VolMax=updateData.VolMax;
|
|
92896
|
+
if (IFrameSplitOperator.IsNumber(updateData.TotalCount) && updateData.TotalCount>destData.TotalCount) updateData.TotalCount=destData.TotalCount;
|
|
92897
|
+
}
|
|
92898
|
+
|
|
92778
92899
|
this.RecvBuySellData=function(data)
|
|
92779
92900
|
{
|
|
92780
92901
|
if (!data) return;
|
|
@@ -92841,7 +92962,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
92841
92962
|
|
|
92842
92963
|
if (this.DayCount>1) //多日走势图
|
|
92843
92964
|
{
|
|
92844
|
-
this.UpdateCallCationData(beforeOpenData,afterCloseData);
|
|
92965
|
+
this.UpdateCallCationData(beforeOpenData,afterCloseData, { DataType:0});
|
|
92845
92966
|
this.UpdateLineColorData(aryColorData,data.stock[0].date);
|
|
92846
92967
|
this.UpdateLatestMinuteData(aryMinuteData, data.stock[0].date, data.stock[0]);
|
|
92847
92968
|
this.UpdateTradeStatusData(data.TradeStatus);
|
|
@@ -94658,7 +94779,7 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
|
|
|
94658
94779
|
var preClose=data.stock[0].yclose; //前一个数据价格
|
|
94659
94780
|
var stockData=data.stock[0];
|
|
94660
94781
|
var date=stockData.date; //日期
|
|
94661
|
-
var beforeOpenData={ Data:[], TotalCount:15, Ver:1.0, Date:date };
|
|
94782
|
+
var beforeOpenData={ Data:[], TotalCount:15, Ver:1.0, Date:date, YClose:stockData.yclose, YClearing:stockData.yclearing };
|
|
94662
94783
|
var extendDataIndex=JSCHART_DATA_FIELD_ID.MINUTE_BEFOREOPEN_EXTENDDATA; //扩展数据序号
|
|
94663
94784
|
if (stockData.beforeinfo)
|
|
94664
94785
|
{
|
|
@@ -94694,7 +94815,7 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
|
|
|
94694
94815
|
else if (beforeOpenData.Ver==2.0)
|
|
94695
94816
|
{
|
|
94696
94817
|
var max=0;
|
|
94697
|
-
for(var i
|
|
94818
|
+
for(var i=0;i<stockData.before.length;++i)
|
|
94698
94819
|
{
|
|
94699
94820
|
var item=new BeforeOpenData();
|
|
94700
94821
|
var jsData=stockData.before[i];
|
|
@@ -94706,7 +94827,6 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
|
|
|
94706
94827
|
item.Vol[1]=jsData[3]; //未匹配量
|
|
94707
94828
|
item.ColorID=jsData[4]; //柱子颜色ID
|
|
94708
94829
|
if (IFrameSplitOperator.IsNumber(jsData[6])) item.Date=jsData[6] //日期
|
|
94709
|
-
item.DateTime=`${item.Date} ${item.Time})`;
|
|
94710
94830
|
|
|
94711
94831
|
var totalVol=item.Vol[0]+item.Vol[1];
|
|
94712
94832
|
if (IFrameSplitOperator.IsNumber(jsData[5])) totalVol=jsData[5];
|
|
@@ -94718,12 +94838,14 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
|
|
|
94718
94838
|
|
|
94719
94839
|
beforeOpenData.VolMax=max/unit;
|
|
94720
94840
|
beforeOpenData.VolMin=0;
|
|
94841
|
+
|
|
94842
|
+
if (stockData.beforeinfo && stockData.beforeinfo.TimeConfig) //固定时间
|
|
94843
|
+
MinuteChartContainer.CompleteCallAuctionData(stockData.beforeinfo.TimeConfig, beforeOpenData);
|
|
94721
94844
|
}
|
|
94722
94845
|
else if (beforeOpenData.Ver==3.0)
|
|
94723
94846
|
{
|
|
94724
94847
|
var max=0;
|
|
94725
|
-
|
|
94726
|
-
for(var i in stockData.before)
|
|
94848
|
+
for(var i=0; i<stockData.before.length; ++i)
|
|
94727
94849
|
{
|
|
94728
94850
|
var item=new BeforeOpenData();
|
|
94729
94851
|
var jsData=stockData.before[i];
|
|
@@ -94734,7 +94856,6 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
|
|
|
94734
94856
|
item.AvPrice=jsData[2]; //均价
|
|
94735
94857
|
item.Vol[0]=jsData[3]; //匹配量
|
|
94736
94858
|
item.ColorID=jsData[4]; //柱子颜色ID
|
|
94737
|
-
item.DateTime=date.toString()+" "+item.Time.toString();
|
|
94738
94859
|
|
|
94739
94860
|
var totalVol=item.Vol[0];
|
|
94740
94861
|
if (IFrameSplitOperator.IsNumber(jsData[5])) totalVol=jsData[5];
|
|
@@ -94746,11 +94867,72 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
|
|
|
94746
94867
|
|
|
94747
94868
|
beforeOpenData.VolMax=max/unit;
|
|
94748
94869
|
beforeOpenData.VolMin=0;
|
|
94870
|
+
|
|
94871
|
+
if (stockData.beforeinfo && stockData.beforeinfo.TimeConfig) //固定时间
|
|
94872
|
+
MinuteChartContainer.CompleteCallAuctionData(stockData.beforeinfo.TimeConfig, beforeOpenData);
|
|
94749
94873
|
}
|
|
94750
94874
|
|
|
94751
94875
|
return beforeOpenData;
|
|
94752
94876
|
}
|
|
94753
94877
|
|
|
94878
|
+
|
|
94879
|
+
MinuteChartContainer.CompleteCallAuctionData=function(timeConfig, callAuctionData)
|
|
94880
|
+
{
|
|
94881
|
+
var aryData=MinuteChartContainer.CreateCallAuctionTimeData(timeConfig);
|
|
94882
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(aryData)) return false;
|
|
94883
|
+
|
|
94884
|
+
var mapData=new Map(callAuctionData.Data.map((obj) => [obj.Time, obj]));
|
|
94885
|
+
for(var i=0;i<aryData.length;++i)
|
|
94886
|
+
{
|
|
94887
|
+
var time=aryData[i].Time;
|
|
94888
|
+
if (!mapData.has(time)) continue;
|
|
94889
|
+
|
|
94890
|
+
var item=mapData.get(time);
|
|
94891
|
+
aryData[i]=item;
|
|
94892
|
+
}
|
|
94893
|
+
|
|
94894
|
+
callAuctionData.Data=aryData;
|
|
94895
|
+
callAuctionData.TotalCount=aryData.length;
|
|
94896
|
+
|
|
94897
|
+
return true;
|
|
94898
|
+
}
|
|
94899
|
+
|
|
94900
|
+
//创建集合竞价秒级时间 { AryTime:[ { Start:92500, End:92459, Date:20250101 } ] } hhmmss
|
|
94901
|
+
MinuteChartContainer.CreateCallAuctionTimeData=function(config)
|
|
94902
|
+
{
|
|
94903
|
+
if (!config || !IFrameSplitOperator.IsNonEmptyArray(config.AryTime)) return null;
|
|
94904
|
+
|
|
94905
|
+
var step=1; //1s
|
|
94906
|
+
if (IFrameSplitOperator.IsPlusNumber(config.Step)) step=config.Step;
|
|
94907
|
+
var aryData=[];
|
|
94908
|
+
for(var i=0;i<config.AryTime.length;++i)
|
|
94909
|
+
{
|
|
94910
|
+
var item=config.AryTime[i];
|
|
94911
|
+
|
|
94912
|
+
var value=item.Start;
|
|
94913
|
+
var hour=parseInt(value/10000);
|
|
94914
|
+
var minute=parseInt((value%10000)/100);
|
|
94915
|
+
var second=value%100;
|
|
94916
|
+
var startTime=new Date(2021,5,2, hour,minute, second);
|
|
94917
|
+
|
|
94918
|
+
value=item.End;
|
|
94919
|
+
var hour=parseInt(value/10000);
|
|
94920
|
+
var minute=parseInt((value%10000)/100);
|
|
94921
|
+
var second=value%100;
|
|
94922
|
+
var endTime=new Date(2021,5,2, hour,minute, second);
|
|
94923
|
+
|
|
94924
|
+
for(var j=0; j<5000 && startTime<=endTime; ++j)
|
|
94925
|
+
{
|
|
94926
|
+
var time=startTime.getHours()*10000+startTime.getMinutes()*100+startTime.getSeconds();
|
|
94927
|
+
var secItem={ Time:time, Date:item.Date };
|
|
94928
|
+
aryData.push(secItem);
|
|
94929
|
+
startTime.setSeconds(startTime.getSeconds()+step);
|
|
94930
|
+
}
|
|
94931
|
+
}
|
|
94932
|
+
|
|
94933
|
+
return aryData;
|
|
94934
|
+
}
|
|
94935
|
+
|
|
94754
94936
|
//收盘集合竞价
|
|
94755
94937
|
MinuteChartContainer.JsonDataToAfterCloseData=function(data)
|
|
94756
94938
|
{
|
|
@@ -94761,7 +94943,7 @@ MinuteChartContainer.JsonDataToAfterCloseData=function(data)
|
|
|
94761
94943
|
if (!stockData.afterinfo) return null;
|
|
94762
94944
|
var symbol=data.stock[0].symbol;
|
|
94763
94945
|
var upperSymbol=symbol.toUpperCase();
|
|
94764
|
-
var afterCloseData={ Data:[], TotalCount:3*60, Ver:2.0, Date:date };
|
|
94946
|
+
var afterCloseData={ Data:[], TotalCount:3*60, Ver:2.0, Date:date, YClose:stockData.yclose, YClearing:stockData.yclearing };
|
|
94765
94947
|
var item=stockData.afterinfo;
|
|
94766
94948
|
if (IFrameSplitOperator.IsNumber(item.totalcount)) afterCloseData.TotalCount=item.totalcount;
|
|
94767
94949
|
if (IFrameSplitOperator.IsNumber(item.ver)) afterCloseData.Ver=item.ver;
|
|
@@ -94791,7 +94973,7 @@ MinuteChartContainer.JsonDataToAfterCloseData=function(data)
|
|
|
94791
94973
|
else if (afterCloseData.Ver==2.0)
|
|
94792
94974
|
{
|
|
94793
94975
|
var max=0;
|
|
94794
|
-
for(var i
|
|
94976
|
+
for(var i=0; i<stockData.after.length; ++i)
|
|
94795
94977
|
{
|
|
94796
94978
|
var item=new AfterCloseData();
|
|
94797
94979
|
var jsData=stockData.after[i];
|
|
@@ -94814,6 +94996,9 @@ MinuteChartContainer.JsonDataToAfterCloseData=function(data)
|
|
|
94814
94996
|
|
|
94815
94997
|
afterCloseData.VolMax=max/unit;
|
|
94816
94998
|
afterCloseData.VolMin=0;
|
|
94999
|
+
|
|
95000
|
+
if (stockData.afterinfo && stockData.afterinfo.TimeConfig) //固定时间
|
|
95001
|
+
MinuteChartContainer.CompleteCallAuctionData(stockData.afterinfo.TimeConfig, afterCloseData);
|
|
94817
95002
|
}
|
|
94818
95003
|
else if (afterCloseData.Ver==3.0)
|
|
94819
95004
|
{
|
|
@@ -94841,6 +95026,9 @@ MinuteChartContainer.JsonDataToAfterCloseData=function(data)
|
|
|
94841
95026
|
|
|
94842
95027
|
afterCloseData.VolMax=max/unit;
|
|
94843
95028
|
afterCloseData.VolMin=0;
|
|
95029
|
+
|
|
95030
|
+
if (stockData.afterinfo && stockData.afterinfo.TimeConfig) //固定时间
|
|
95031
|
+
MinuteChartContainer.CompleteCallAuctionData(stockData.afterinfo.TimeConfig, afterCloseData);
|
|
94844
95032
|
}
|
|
94845
95033
|
|
|
94846
95034
|
return afterCloseData;
|
|
@@ -94962,12 +95150,13 @@ MinuteChartContainer.JsonDataToUpdateMinuteData=function(data)
|
|
|
94962
95150
|
|
|
94963
95151
|
item.DateTime=`${item.Date} ${item.Time}`;
|
|
94964
95152
|
|
|
94965
|
-
if (IFrameSplitOperator.IsNumber(minuteData.YClose) && item.Close)
|
|
94966
|
-
|
|
94967
|
-
|
|
94968
|
-
|
|
94969
|
-
|
|
94970
|
-
|
|
95153
|
+
if (!IFrameSplitOperator.IsNumber(item.Increase) && IFrameSplitOperator.IsNumber(minuteData.YClose) && item.Close)
|
|
95154
|
+
{
|
|
95155
|
+
if (isFutures && minuteData.YClearing && item.Close)
|
|
95156
|
+
item.Increase=(item.Close-minuteData.YClearing)/minuteData.YClearing*100; //涨幅 (最新价格-昨结算价)/昨结算价*100;
|
|
95157
|
+
else
|
|
95158
|
+
item.Increase=(item.Close-minuteData.YClose)/minuteData.YClose*100; //涨幅 (最新价格-昨收)/昨收*100;
|
|
95159
|
+
}
|
|
94971
95160
|
|
|
94972
95161
|
minuteData.Data.push(item);
|
|
94973
95162
|
}
|
|
@@ -95131,8 +95320,9 @@ MinuteChartContainer.JsonDataToHistoryMinuteLineColorData=function(data)
|
|
|
95131
95320
|
}
|
|
95132
95321
|
|
|
95133
95322
|
|
|
95134
|
-
MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, isBeforeOpen, symbol)
|
|
95323
|
+
MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, isBeforeOpen, symbol, dataInfo)
|
|
95135
95324
|
{
|
|
95325
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(data)) return;
|
|
95136
95326
|
var upperSymbol=symbol?symbol.toUpperCase():null;
|
|
95137
95327
|
var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
|
|
95138
95328
|
|
|
@@ -95143,7 +95333,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
|
|
|
95143
95333
|
if (callAuctionData.Ver==1.0)
|
|
95144
95334
|
{
|
|
95145
95335
|
var preClose=null;
|
|
95146
|
-
for(var i
|
|
95336
|
+
for(var i=0; i<data.length; ++i)
|
|
95147
95337
|
{
|
|
95148
95338
|
var item=isBeforeOpen? new BeforeOpenData() : new AfterCloseData();
|
|
95149
95339
|
var jsData=data[i];
|
|
@@ -95167,7 +95357,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
|
|
|
95167
95357
|
else if (callAuctionData.Ver==2.0)
|
|
95168
95358
|
{
|
|
95169
95359
|
var max=0;
|
|
95170
|
-
for(var i
|
|
95360
|
+
for(var i=0; i<data.length; ++i)
|
|
95171
95361
|
{
|
|
95172
95362
|
var item=isBeforeOpen? new BeforeOpenData() : new AfterCloseData();
|
|
95173
95363
|
var jsData=data[i];
|
|
@@ -95179,7 +95369,6 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
|
|
|
95179
95369
|
item.Vol[0]=jsData[2]; //匹配量
|
|
95180
95370
|
item.Vol[1]=jsData[3]; //未匹配量
|
|
95181
95371
|
item.ColorID=jsData[4]; //柱子颜色ID
|
|
95182
|
-
item.DateTime=date.toString()+" "+item.Time.toString();
|
|
95183
95372
|
|
|
95184
95373
|
var totalVol=item.Vol[0]+item.Vol[1];
|
|
95185
95374
|
if (IFrameSplitOperator.IsNumber(jsData[5])) totalVol=jsData[5];
|
|
@@ -95191,6 +95380,9 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
|
|
|
95191
95380
|
|
|
95192
95381
|
callAuctionData.VolMax=max/unit;
|
|
95193
95382
|
callAuctionData.VolMin=0;
|
|
95383
|
+
|
|
95384
|
+
if (dataInfo && dataInfo.TimeConfig) //固定时间
|
|
95385
|
+
MinuteChartContainer.CompleteCallAuctionData(dataInfo.TimeConfig, callAuctionData);
|
|
95194
95386
|
}
|
|
95195
95387
|
else if (beforeOpenData.Ver==3.0)
|
|
95196
95388
|
{
|
|
@@ -95207,7 +95399,6 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
|
|
|
95207
95399
|
item.AvPrice=jsData[2]; //均价
|
|
95208
95400
|
item.Vol[0]=jsData[3]; //匹配量
|
|
95209
95401
|
item.ColorID=jsData[4]; //柱子颜色ID
|
|
95210
|
-
item.DateTime=date.toString()+" "+item.Time.toString();
|
|
95211
95402
|
|
|
95212
95403
|
var totalVol=item.Vol[0];
|
|
95213
95404
|
if (IFrameSplitOperator.IsNumber(jsData[5])) totalVol=jsData[5];
|
|
@@ -95219,6 +95410,9 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
|
|
|
95219
95410
|
|
|
95220
95411
|
callAuctionData.VolMax=max/unit;
|
|
95221
95412
|
callAuctionData.VolMin=0;
|
|
95413
|
+
|
|
95414
|
+
if (dataInfo && dataInfo.TimeConfig) //固定时间
|
|
95415
|
+
MinuteChartContainer.CompleteCallAuctionData(dataInfo.TimeConfig, callAuctionData);
|
|
95222
95416
|
}
|
|
95223
95417
|
}
|
|
95224
95418
|
|
|
@@ -95227,7 +95421,7 @@ MinuteChartContainer.JosnDataToBeforeOpenDataArray=function(data)
|
|
|
95227
95421
|
if (!data || !data.data) return null;
|
|
95228
95422
|
|
|
95229
95423
|
var aryDay=[];
|
|
95230
|
-
for(var i
|
|
95424
|
+
for(var i=0; i<data.data.length; ++i)
|
|
95231
95425
|
{
|
|
95232
95426
|
var dayItem=data.data[i];
|
|
95233
95427
|
var beforeOpenData={ Data:[], TotalCount:15, Ver:1.0, Date:dayItem.date, YClose:dayItem.yclose, YClearing:dayItem.YClearing };
|
|
@@ -95237,7 +95431,7 @@ MinuteChartContainer.JosnDataToBeforeOpenDataArray=function(data)
|
|
|
95237
95431
|
if (IFrameSplitOperator.IsNumber(dayItem.beforeinfo.ver)) beforeOpenData.Ver=dayItem.beforeinfo.ver;
|
|
95238
95432
|
}
|
|
95239
95433
|
|
|
95240
|
-
MinuteChartContainer.JsonDataToCallAuctionItem(dayItem.before, beforeOpenData, true, data.symbol);
|
|
95434
|
+
MinuteChartContainer.JsonDataToCallAuctionItem(dayItem.before, beforeOpenData, true, data.symbol, dayItem.beforeinfo);
|
|
95241
95435
|
|
|
95242
95436
|
aryDay.push(beforeOpenData);
|
|
95243
95437
|
}
|
|
@@ -95252,7 +95446,7 @@ MinuteChartContainer.JosnDataToAfterCloseDataArray=function(data)
|
|
|
95252
95446
|
if (!data || !data.data) return null;
|
|
95253
95447
|
|
|
95254
95448
|
var aryDay=[];
|
|
95255
|
-
for(var i
|
|
95449
|
+
for(var i=0; i<data.data.length; ++i)
|
|
95256
95450
|
{
|
|
95257
95451
|
var dayItem=data.data[i];
|
|
95258
95452
|
var afterCloseData={ Data:[], TotalCount:15, Ver:1.0, Date:dayItem.date, YClose:dayItem.yclose, YClearing:dayItem.YClearing };
|
|
@@ -95263,7 +95457,7 @@ MinuteChartContainer.JosnDataToAfterCloseDataArray=function(data)
|
|
|
95263
95457
|
if (IFrameSplitOperator.IsNumber(dayItem.afterinfo.ver)) afterCloseData.Ver=dayItem.afterinfo.ver;
|
|
95264
95458
|
}
|
|
95265
95459
|
|
|
95266
|
-
MinuteChartContainer.JsonDataToCallAuctionItem(dayItem.after, afterCloseData, false, data.symbol);
|
|
95460
|
+
MinuteChartContainer.JsonDataToCallAuctionItem(dayItem.after, afterCloseData, false, data.symbol, dayItem.afterinfo);
|
|
95267
95461
|
|
|
95268
95462
|
aryDay.push(afterCloseData);
|
|
95269
95463
|
}
|