hqchart 1.1.14311 → 1.1.14320

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.
@@ -35898,6 +35898,220 @@ function ChartSimplePie()
35898
35898
  }
35899
35899
  }
35900
35900
 
35901
+
35902
+ //雷达图
35903
+ function ChartSimpleRadar()
35904
+ {
35905
+ this.newMethod=IChartPainting; //派生
35906
+ this.newMethod();
35907
+ delete this.newMethod;
35908
+
35909
+ this.ClassName='ChartSimpleRadar'; //类名
35910
+ this.BorderPoint=[]; //边框点
35911
+ this.DataPoint=[]; //数据点
35912
+ this.CenterPoint={};
35913
+ this.StartAngle=0;
35914
+ this.Color='rgb(198,198,198)';
35915
+ this.AreaColor='rgba(242,154,118,0.4)'; //面积图颜色
35916
+ this.AreaLineColor='rgb(242,154,118)';
35917
+ this.TitleFont=24*GetDevicePixelRatio()+'px 微软雅黑';
35918
+ this.TitleColor='rgb(102,102,102)';
35919
+ this.BGColor = ['rgb(255,255,255)', 'rgb(224,224,224)']//背景色
35920
+
35921
+ this.DrawBorder=function() //画边框
35922
+ {
35923
+ if (this.BorderPoint.length<=0) return;
35924
+
35925
+ this.Canvas.font=this.TitleFont;
35926
+ this.Canvas.strokeStyle = this.Color;
35927
+ const aryBorder=[1,0.8,0.6,0.4,0.2];
35928
+ for (let j in aryBorder)
35929
+ {
35930
+ var rate = aryBorder[j];
35931
+ var isFirstDraw=true;
35932
+ for(let i in this.BorderPoint)
35933
+ {
35934
+ var item=this.BorderPoint[i];
35935
+ item.X = this.CenterPoint.X + item.Radius * Math.cos(item.Angle * Math.PI / 180) * rate;
35936
+ item.Y = this.CenterPoint.Y + item.Radius * Math.sin(item.Angle * Math.PI / 180) * rate;
35937
+ if (isFirstDraw)
35938
+ {
35939
+ this.Canvas.beginPath();
35940
+ this.Canvas.moveTo(item.X,item.Y);
35941
+ isFirstDraw=false;
35942
+ }
35943
+ else
35944
+ {
35945
+ this.Canvas.lineTo(item.X,item.Y);
35946
+ }
35947
+ }
35948
+
35949
+ this.Canvas.closePath();
35950
+ this.Canvas.stroke();
35951
+ this.Canvas.fillStyle = this.BGColor[j%2==0?0:1];
35952
+ this.Canvas.fill();
35953
+ }
35954
+
35955
+ this.Canvas.beginPath();
35956
+ for(let i in this.BorderPoint)
35957
+ {
35958
+ var item=this.BorderPoint[i];
35959
+ item.X = this.CenterPoint.X + item.Radius * Math.cos(item.Angle * Math.PI / 180);
35960
+ item.Y = this.CenterPoint.Y + item.Radius * Math.sin(item.Angle * Math.PI / 180);
35961
+ this.Canvas.moveTo(this.CenterPoint.X,this.CenterPoint.Y);
35962
+ this.Canvas.lineTo(item.X,item.Y);
35963
+ this.DrawText(item);
35964
+ }
35965
+ this.Canvas.stroke();
35966
+ }
35967
+
35968
+ this.DrawArea=function()
35969
+ {
35970
+ if (!this.DataPoint || this.DataPoint.length<=0) return;
35971
+
35972
+ this.Canvas.fillStyle = this.AreaColor;
35973
+ this.Canvas.strokeStyle = this.AreaLineColor;
35974
+ this.Canvas.beginPath();
35975
+ var isFirstDraw=true;
35976
+ for(let i in this.DataPoint)
35977
+ {
35978
+ var item=this.DataPoint[i];
35979
+ if (isFirstDraw)
35980
+ {
35981
+ this.Canvas.beginPath();
35982
+ this.Canvas.moveTo(item.X,item.Y);
35983
+ isFirstDraw=false;
35984
+ }
35985
+ else
35986
+ {
35987
+ this.Canvas.lineTo(item.X,item.Y);
35988
+ }
35989
+ }
35990
+
35991
+ this.Canvas.closePath();
35992
+ this.Canvas.fill();
35993
+ this.Canvas.stroke();
35994
+ }
35995
+
35996
+ this.DrawText=function(item)
35997
+ {
35998
+ if (!item.Text) return;
35999
+
36000
+ //JSConsole.Chart.Log(item.Text, item.Angle);
36001
+ this.Canvas.fillStyle = this.TitleColor;
36002
+ var xText = item.X, yText = item.Y;
36003
+
36004
+ //显示每个角度的位置
36005
+ if (item.Angle > 0 && item.Angle < 45) {
36006
+ this.Canvas.textAlign = 'left';
36007
+ this.Canvas.textBaseline = 'middle';
36008
+ xText += 2;
36009
+ }
36010
+ else if (item.Angle >= 0 && item.Angle < 90) {
36011
+ this.Canvas.textAlign = 'left';
36012
+ this.Canvas.textBaseline = 'top';
36013
+ xText += 2;
36014
+ }
36015
+ else if (item.Angle >= 90 && item.Angle < 135) {
36016
+ this.Canvas.textAlign = 'right';
36017
+ this.Canvas.textBaseline = 'top';
36018
+ xText -= 2;
36019
+ }
36020
+ else if (item.Angle >= 135 && item.Angle < 180) {
36021
+ this.Canvas.textAlign = 'right';
36022
+ this.Canvas.textBaseline = 'top';
36023
+ xText -= 2;
36024
+ }
36025
+ else if (item.Angle >= 180 && item.Angle < 225) {
36026
+ this.Canvas.textAlign = 'right';
36027
+ this.Canvas.textBaseline = 'middle';
36028
+ xText -= 2;
36029
+ }
36030
+ else if (item.Angle >= 225 && item.Angle <= 270) {
36031
+ this.Canvas.textAlign = 'center';
36032
+ this.Canvas.textBaseline = 'bottom';
36033
+ }
36034
+ else if (item.Angle > 270 && item.Angle < 315) {
36035
+ this.Canvas.textAlign = 'left';
36036
+ this.Canvas.textBaseline = 'bottom';
36037
+ xText += 2;
36038
+ }
36039
+ else {
36040
+ this.Canvas.textAlign = 'left';
36041
+ this.Canvas.textBaseline = 'middle';
36042
+ xText += 2;
36043
+ }
36044
+
36045
+ this.Canvas.fillText(item.Text, xText, yText);
36046
+ }
36047
+
36048
+ this.Draw=function()
36049
+ {
36050
+ this.BorderPoint=[];
36051
+ this.DataPoint=[];
36052
+ this.CenterPoint={};
36053
+ if (!this.Data || !this.Data.Data || !(this.Data.Data.length>0))
36054
+ this.CalculatePoints(null);
36055
+ else
36056
+ this.CalculatePoints(this.Data.Data);
36057
+
36058
+ this.DrawBorder();
36059
+ this.DrawArea();
36060
+ }
36061
+
36062
+ this.CalculatePoints=function(data)
36063
+ {
36064
+ let left=this.ChartBorder.GetLeft();
36065
+ let right=this.ChartBorder.GetRight();
36066
+ let top=this.ChartBorder.GetTop();
36067
+ let bottom=this.ChartBorder.GetBottom();
36068
+ let width=this.ChartBorder.GetWidth();
36069
+ let height=this.ChartBorder.GetHeight();
36070
+
36071
+ let ptCenter={X:left+width/2, Y:top+height/2}; //中心点
36072
+ let radius=Math.min(width/2,height/2)-2 //半径
36073
+ let count=Math.max(5,data?data.length:0);
36074
+ let averageAngle=360/count;
36075
+ for(let i=0;i<count;++i)
36076
+ {
36077
+ let ptBorder = { Index: i, Radius: radius, Angle: i * averageAngle + this.StartAngle };
36078
+ let angle = ptBorder.Angle;
36079
+
36080
+ if (data && i<data.length)
36081
+ {
36082
+ var item=data[i];
36083
+ let ptData={Index:i,Text:item.Text};
36084
+ ptBorder.Text=item.Name;
36085
+ if (!item.Value)
36086
+ {
36087
+ ptData.X=ptCenter.X;
36088
+ ptData.Y=ptCenter.Y;
36089
+ }
36090
+ else
36091
+ {
36092
+ var value=item.Value;
36093
+ if (value>=1) value=1;
36094
+ var dataRadius=radius*value;
36095
+ ptData.X=ptCenter.X+dataRadius*Math.cos(angle*Math.PI/180);
36096
+ ptData.Y=ptCenter.Y+dataRadius*Math.sin(angle*Math.PI/180);
36097
+ }
36098
+
36099
+ this.DataPoint.push(ptData);
36100
+ }
36101
+
36102
+ this.BorderPoint.push(ptBorder);
36103
+ }
36104
+
36105
+ this.CenterPoint=ptCenter;
36106
+ }
36107
+
36108
+ //空数据
36109
+ this.DrawEmptyData=function()
36110
+ {
36111
+ JSConsole.Chart.Log('[ChartPie::DrawEmptyData]')
36112
+ }
36113
+ }
36114
+
35901
36115
  //分钟成交量 支持横屏
35902
36116
  function ChartMinuteVolumBar()
35903
36117
  {
@@ -45456,6 +45670,7 @@ function ChartDrawSVG()
45456
45670
  {
45457
45671
  var item=this.Texts[i];
45458
45672
  var key=this.BuildKey(item);
45673
+ if (!key) continue;
45459
45674
 
45460
45675
  if (mapData.has(key))
45461
45676
  {
@@ -45761,10 +45976,13 @@ function ChartDrawSVG()
45761
45976
  }
45762
45977
 
45763
45978
  var x,y,price;
45979
+ var setKey=new Set(); //已经画过的Key就不再用了
45764
45980
  for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
45765
45981
  {
45766
45982
  var kItem=this.Data.Data[i];
45767
45983
  var key=this.BuildKey(kItem);
45984
+ if (setKey.has(key)) continue;
45985
+
45768
45986
  if (!this.MapCache.has(key)) continue;
45769
45987
  var mapItem=this.MapCache.get(key);
45770
45988
 
@@ -45922,6 +46140,8 @@ function ChartDrawSVG()
45922
46140
  this.Canvas.setLineDash([]);
45923
46141
  }
45924
46142
  }
46143
+
46144
+ setKey.add(key);
45925
46145
  }
45926
46146
  }
45927
46147
 
@@ -56519,6 +56739,7 @@ function ChartCorssCursor()
56519
56739
  this.TextBGColor=g_JSChartResource.CorssCursorBGColor; //文本背景色
56520
56740
  this.BorderColor=g_JSChartResource.CorssCursorBorderColor; //边框颜色
56521
56741
  this.XRangeBGColor=g_JSChartResource.CorssCursorXRangeBGColor;
56742
+ this.LineDash=g_JSChartResource.CorssCursorLineDash.slice(); //虚线
56522
56743
  this.TextHeight=20; //文本字体高度
56523
56744
  this.LastPoint;
56524
56745
  this.LastValue; //{ Y:{ Value:, Extend: } }
@@ -56574,6 +56795,7 @@ function ChartCorssCursor()
56574
56795
  this.TextBGColor=g_JSChartResource.CorssCursorBGColor; //文本背景色
56575
56796
  this.BorderColor=g_JSChartResource.CorssCursorBorderColor; //边框颜色
56576
56797
  this.XRangeBGColor=g_JSChartResource.CorssCursorXRangeBGColor;
56798
+ this.LineDash=g_JSChartResource.CorssCursorLineDash.slice(); //虚线
56577
56799
  }
56578
56800
 
56579
56801
  this.GetCloseYPoint=function(index)
@@ -56832,10 +57054,10 @@ function ChartCorssCursor()
56832
57054
  }
56833
57055
 
56834
57056
  var pixel=GetDevicePixelRatio();
56835
- if (this.HPenType==1 || this.HPenType==0) //0=实线 1=虚线
57057
+ if (this.HPenType==1 || this.HPenType==0) //0=虚线 1=实线
56836
57058
  {
56837
57059
  this.Canvas.strokeStyle=this.HPenColor;
56838
- if (this.HPenType==0) this.Canvas.setLineDash([3*pixel,2*pixel]); //虚线
57060
+ if (this.HPenType==0) this.Canvas.setLineDash(this.LineDash); //虚线
56839
57061
  //this.Canvas.lineWidth=0.5
56840
57062
  this.Canvas.beginPath();
56841
57063
  this.Canvas.moveTo(left,ToFixedPoint(y));
@@ -56848,7 +57070,7 @@ function ChartCorssCursor()
56848
57070
  this.Canvas.strokeStyle=this.VPenColor;
56849
57071
  if (this.VPenType==0)
56850
57072
  {
56851
- this.Canvas.setLineDash([3*pixel,2*pixel]); //虚线
57073
+ this.Canvas.setLineDash(this.LineDash); //虚线
56852
57074
  }
56853
57075
  else if (this.VPenType==2)
56854
57076
  {
@@ -57443,7 +57665,7 @@ function ChartCorssCursor()
57443
57665
  var pixel=GetDevicePixelRatio();
57444
57666
  this.Canvas.save();
57445
57667
  this.Canvas.strokeStyle=this.HPenColor;
57446
- if (this.HPenType==0) this.Canvas.setLineDash([3*pixel,2*pixel]); //虚线
57668
+ if (this.HPenType==0) this.Canvas.setLineDash(this.LineDash); //虚线
57447
57669
 
57448
57670
  //画竖线
57449
57671
  this.Canvas.beginPath();
@@ -57457,7 +57679,7 @@ function ChartCorssCursor()
57457
57679
  this.Canvas.strokeStyle=this.VPenColor;
57458
57680
  if (this.VPenType==0)
57459
57681
  {
57460
- this.Canvas.setLineDash([3*pixel,2*pixel]); //虚线
57682
+ this.Canvas.setLineDash(this.LineDash); //虚线
57461
57683
  }
57462
57684
  else if (this.VPenType==2)
57463
57685
  {
@@ -60733,7 +60955,12 @@ function DynamicChartTitlePainting()
60733
60955
  {
60734
60956
  this.Font=g_JSChartResource.TitleFont;
60735
60957
  this.TitleColor=g_JSChartResource.DefaultTextColor;
60958
+ this.SelectedColor=g_JSChartResource.IndexTitleSelectedColor;
60736
60959
  this.OverlayIndexType.BGColor=g_JSChartResource.OverlayIndexTitleBGColor;
60960
+
60961
+ this.BGColor=g_JSChartResource.IndexTitleBGColor;
60962
+ this.BGBorderColor=g_JSChartResource.IndexTitleBorderColor;
60963
+ this.BGBorderMoveOnColor=g_JSChartResource.IndexTitleBorderMoveOnColor;
60737
60964
  }
60738
60965
 
60739
60966
  this.SetDynamicTitleData=function(outName, args, data)
@@ -74407,6 +74634,7 @@ function JSChartResource()
74407
74634
  this.CorssCursorHPenColor="rgb(130,130,130)"; //十字光标线段颜色(水平)
74408
74635
  this.CorssCursorVPenColor="rgb(130,130,130)"; //十字光标线段颜色(垂直)
74409
74636
  this.CorssCursorXRangeBGColor="rgba(100,149,237,0.3)"; //十字光标X轴访问背景色
74637
+ this.CorssCursorLineDash=[3*GetDevicePixelRatio(),2*GetDevicePixelRatio()]; //十字光标虚线
74410
74638
 
74411
74639
  this.CorssCursor=
74412
74640
  {
@@ -75827,6 +76055,7 @@ function JSChartResource()
75827
76055
  if (style.CorssCursorHPenColor) this.CorssCursorHPenColor = style.CorssCursorHPenColor;
75828
76056
  if (style.CorssCursorBorderColor) this.CorssCursorBorderColor=style.CorssCursorBorderColor;
75829
76057
  if (style.CorssCursorXRangeBGColor) this.CorssCursorXRangeBGColor=style.CorssCursorXRangeBGColor;
76058
+ if (style.CorssCursorLineDash) this.CorssCursorLineDash=style.CorssCursorLineDash.slice();
75830
76059
  if (style.CorssCursor && style.CorssCursor.RightButton)
75831
76060
  {
75832
76061
  var item=style.CorssCursor.RightButton;
@@ -89866,12 +90095,12 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
89866
90095
  this.CaclutateCallCationYRange();
89867
90096
  }
89868
90097
 
90098
+ //增量更新
89869
90099
  this.RecvUpdateMinuteData=function(data)
89870
90100
  {
89871
90101
  var minuteData=MinuteChartContainer.JsonDataToUpdateMinuteData(data);
89872
90102
  var aryColorData=MinuteChartContainer.JsonDataToMinuteLineColorData(data);
89873
- this.BeforeOpenData=null;
89874
- this.AfterCloseData=null;
90103
+
89875
90104
  var beforeOpenData=MinuteChartContainer.JsonDataToBeforeOpenData(data);
89876
90105
  var afterCloseData=MinuteChartContainer.JsonDataToAfterCloseData(data);
89877
90106
  var updateTime=MinuteChartContainer.JsonDataToMinuteLastUpdateTime(data); //数据最后的更新时间
@@ -89890,92 +90119,22 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
89890
90119
  return;
89891
90120
  }
89892
90121
 
89893
- //原始数据
90122
+ if (this.IsBeforeData && beforeOpenData) this.BeforeOpenData=beforeOpenData;
90123
+ if (this.IsAfterData && afterCloseData) this.AfterCloseData=afterCloseData;
89894
90124
 
90125
+ //原始数据
89895
90126
  this.UpdateLatestMinuteDataV2(minuteData);
89896
- var sourceData=this.SourceData;
89897
- var aryMinuteData=this.SourceData.Data;
89898
- this.ColorLineData=aryColorData;
89899
- this.TradeDate=data.stock[0].date;
89900
- this.Frame.SetDayCount(1); //单日数据
89901
- this.SourceData.UpdateTime=updateTime;
89902
- this.Symbol=minuteData.Symbol;
89903
- this.Name=minuteData.Name;
90127
+ this.UpdateMinuteUI(data.stock[0], {FunctionName:"RecvUpdateMinuteData"});
89904
90128
 
89905
- this.SetCallCationDataBorder( { Left:this.IsBeforeData, Right:this.IsAfterData , MultiDay:{ Left:false, Right:false }} );
89906
-
89907
- if (this.ShareAfterVol==2) //盘前, 盘后成交量公用坐标
89908
- {
89909
- if (this.BeforeOpenData && this.AfterCloseData)
89910
- {
89911
- var max=Math.max(this.BeforeOpenData.VolMax, this.AfterCloseData.VolMax);
89912
- var min=Math.min(this.BeforeOpenData.VolMin, this.AfterCloseData.VolMin);
89913
- this.BeforeOpenData.VolMax=this.AfterCloseData.VolMax=max;
89914
- this.BeforeOpenData.VolMin=this.AfterCloseData.VolMin=min;
89915
- }
89916
- }
89917
-
89918
- var yClose=minuteData.YClose;
89919
- var upperSymbol=this.Symbol.toUpperCase();
89920
- var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol);
89921
- if (minuteData.YClearing>0 && isFutures) yClose=minuteData.YClearing; //期货使用前结算价
89922
- this.CaclutateLimitPrice(yClose, minuteData.LimitPrice); //计算涨停价格
89923
- var extendData=null;
89924
- if (minuteData.High>0 && minuteData.Low>0) extendData={ High:minuteData.High, Low:minuteData.Low };
89925
- this.BindMainData(sourceData,yClose, extendData);
89926
-
89927
- if (this.Frame.SubFrame.length>2)
90129
+ if (data.AutoUpdate===false) //不执行自动更新
89928
90130
  {
89929
- var bindData=new ChartData();
89930
- bindData.Data=aryMinuteData;
89931
- for(var i=2; i<this.Frame.SubFrame.length; ++i)
89932
- {
89933
- this.BindIndexData(i,bindData);
89934
- }
89935
- }
89936
90131
 
89937
- for(let i=0; i<this.Frame.SubFrame.length; ++i)
90132
+ }
90133
+ else
89938
90134
  {
89939
- var item=this.Frame.SubFrame[i];
89940
- item.Frame.XSplitOperator.Symbol=this.Symbol;
89941
- item.Frame.XSplitOperator.DayCount=1;
89942
- item.Frame.XSplitOperator.Operator(); //调整X轴个数
89943
- item.Frame.YSplitOperator.Symbol=this.Symbol;
89944
-
89945
- if (IFrameSplitOperator.IsNonEmptyArray(item.OverlayIndex))
89946
- {
89947
- for(var j=0;j<item.OverlayIndex.length; ++j) //子坐标X轴个数同步
89948
- {
89949
- var overlayItem=item.OverlayIndex[j];
89950
- overlayItem.Frame.XPointCount=item.Frame.XPointCount;
89951
- overlayItem.Frame.MinuteCount=item.Frame.MinuteCount;
89952
- }
89953
- }
90135
+ this.AutoUpdateEvent(true, "MinuteChartContainer::RecvUpdateMinuteData");
90136
+ this.AutoUpdate();
89954
90137
  }
89955
-
89956
- this.ChartCorssCursor.StringFormatY.Symbol=this.Symbol;
89957
- this.ChartCorssCursor.StringFormatX.Symbol=this.Symbol;
89958
-
89959
- if (MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol)) this.TitlePaint[0].IsShowDate=false;
89960
-
89961
- if (data.stock[0].IsHistoryMinute==true) this.TitlePaint[0].IsShowDate=true;
89962
-
89963
- var chartInfo=this.GetChartMinuteInfo();
89964
- if (chartInfo) chartInfo.SourceData=this.SourceData; //数据绑定到信息地雷上
89965
-
89966
- this.RecvMinuteDataEvent( {FunctionName:"RecvUpdateMinuteData"} );
89967
- this.RequestMinuteInfoData();
89968
- this.RequestOverlayMinuteData();//请求叠加数据 (主数据下载完再下载)
89969
- this.CreateChartDrawPictureByStorage(); //创建画图工具
89970
-
89971
- this.UpdateFrameMaxMin(); //调整坐标最大 最小值
89972
- this.Frame.SetSizeChage(true);
89973
- this.Draw();
89974
-
89975
- this.BindAllOverlayIndexData(this.SourceData);
89976
-
89977
- this.AutoUpdateEvent(true, "MinuteChartContainer::RecvUpdateMinuteData");
89978
- this.AutoUpdate();
89979
90138
  }
89980
90139
 
89981
90140
  this.RecvMinuteData=function(data)
@@ -90042,15 +90201,31 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
90042
90201
  var sourceData=new ChartData();
90043
90202
  sourceData.Data=aryMinuteData;
90044
90203
  sourceData.UpdateTime=updateTime;
90204
+ this.SourceData=sourceData;
90045
90205
 
90046
90206
  this.ColorLineData=aryColorData;
90047
90207
 
90048
- this.TradeDate=data.stock[0].date;
90208
+ this.UpdateMinuteUI(data.stock[0], {FunctionName:"RecvMinuteData", Day:{ IsFirstData:bFirstData} });
90209
+
90210
+ if (data.AutoUpdate===false) //不执行自动更新
90211
+ {
90212
+
90213
+ }
90214
+ else
90215
+ {
90216
+ this.AutoUpdateEvent(true, "MinuteChartContainer::RecvMinuteData");
90217
+ this.AutoUpdate();
90218
+ }
90219
+ }
90220
+
90221
+ //更新单日分时图
90222
+ this.UpdateMinuteUI=function(stockData, eventData)
90223
+ {
90224
+ this.TradeDate=stockData.date;
90049
90225
  this.Frame.SetDayCount(1); //单日数据
90050
90226
 
90051
- this.SourceData=sourceData;
90052
- this.Symbol=data.stock[0].symbol;
90053
- this.Name=data.stock[0].name;
90227
+ this.Symbol=stockData.symbol;
90228
+ this.Name=stockData.name;
90054
90229
 
90055
90230
  this.SetCallCationDataBorder( { Left:this.IsBeforeData, Right:this.IsAfterData , MultiDay:{ Left:false, Right:false }} );
90056
90231
 
@@ -90065,26 +90240,26 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
90065
90240
  }
90066
90241
  }
90067
90242
 
90068
- var yClose=data.stock[0].yclose;
90243
+ var yClose=stockData.yclose;
90069
90244
  var upperSymbol=this.Symbol.toUpperCase();
90070
90245
  var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol);
90071
- if (data.stock[0].yclearing>0 && isFutures) yClose=data.stock[0].yclearing; //期货使用前结算价
90072
- this.CaclutateLimitPrice(yClose, data.stock[0].limitprice); //计算涨停价格
90246
+ if (stockData.yclearing>0 && isFutures) yClose=stockData.yclearing; //期货使用前结算价
90247
+ this.CaclutateLimitPrice(yClose, stockData.limitprice); //计算涨停价格
90073
90248
  var extendData=null;
90074
- if (data.stock[0].high>0 && data.stock[0].low>0) extendData={ High:data.stock[0].high, Low:data.stock[0].low };
90075
- this.BindMainData(sourceData,yClose, extendData);
90249
+ if (stockData.high>0 && stockData.low>0) extendData={ High:stockData.high, Low:stockData.low };
90250
+ this.BindMainData(this.SourceData,yClose, extendData);
90076
90251
 
90077
90252
  if (this.Frame.SubFrame.length>2)
90078
90253
  {
90079
90254
  var bindData=new ChartData();
90080
- bindData.Data=aryMinuteData;
90255
+ bindData.Data=this.SourceData.Data;
90081
90256
  for(var i=2; i<this.Frame.SubFrame.length; ++i)
90082
90257
  {
90083
90258
  this.BindIndexData(i,bindData);
90084
90259
  }
90085
90260
  }
90086
90261
 
90087
- for(let i in this.Frame.SubFrame)
90262
+ for(var i=0, j=0; i<this.Frame.SubFrame.length; ++i)
90088
90263
  {
90089
90264
  var item=this.Frame.SubFrame[i];
90090
90265
  item.Frame.XSplitOperator.Symbol=this.Symbol;
@@ -90092,7 +90267,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
90092
90267
  item.Frame.XSplitOperator.Operator(); //调整X轴个数
90093
90268
  item.Frame.YSplitOperator.Symbol=this.Symbol;
90094
90269
 
90095
- for(var j in item.OverlayIndex) //子坐标X轴个数同步
90270
+ for(j=0;j<item.OverlayIndex.length;++j) //子坐标X轴个数同步
90096
90271
  {
90097
90272
  var overlayItem=item.OverlayIndex[j];
90098
90273
  overlayItem.Frame.XPointCount=item.Frame.XPointCount;
@@ -90105,12 +90280,12 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
90105
90280
 
90106
90281
  if (MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol)) this.TitlePaint[0].IsShowDate=false;
90107
90282
 
90108
- if (data.stock[0].IsHistoryMinute==true) this.TitlePaint[0].IsShowDate=true;
90283
+ if (stockData.IsHistoryMinute==true) this.TitlePaint[0].IsShowDate=true;
90109
90284
 
90110
90285
  var chartInfo=this.GetChartMinuteInfo();
90111
90286
  if (chartInfo) chartInfo.SourceData=this.SourceData; //数据绑定到信息地雷上
90112
90287
 
90113
- this.RecvMinuteDataEvent( {FunctionName:"RecvMinuteData", Day:{ IsFirstData:bFirstData} } );
90288
+ if (eventData) this.RecvMinuteDataEvent( eventData );
90114
90289
  this.RequestMinuteInfoData();
90115
90290
  this.RequestOverlayMinuteData();//请求叠加数据 (主数据下载完再下载)
90116
90291
  this.CreateChartDrawPictureByStorage(); //创建画图工具
@@ -90120,16 +90295,6 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
90120
90295
  this.Draw();
90121
90296
 
90122
90297
  this.BindAllOverlayIndexData(this.SourceData);
90123
-
90124
- if (data.AutoUpdate===false) //不执行自动更新
90125
- {
90126
-
90127
- }
90128
- else
90129
- {
90130
- this.AutoUpdateEvent(true, "MinuteChartContainer::RecvMinuteData");
90131
- this.AutoUpdate();
90132
- }
90133
90298
  }
90134
90299
 
90135
90300
  this.CaclutateLimitPrice=function(yClose, limitData)
@@ -112332,8 +112497,24 @@ function JSDraw(errorHandler,symbolData)
112332
112497
  }
112333
112498
 
112334
112499
  //饼图
112335
- this.PIE_CELL=function(value, color, text, textColor, lineColor)
112500
+ this.PIE_CELL=function(data, color, text, textColor, lineColor)
112336
112501
  {
112502
+ var value=null;
112503
+ if (IFrameSplitOperator.IsNumber(data))
112504
+ {
112505
+ value=data;
112506
+ }
112507
+ else if (IFrameSplitOperator.IsString(data))
112508
+ {
112509
+ value=parseFloat(data);
112510
+ }
112511
+ else if (IFrameSplitOperator.IsNonEmptyArray(data))
112512
+ {
112513
+ var lastValue=data[data.length-1];
112514
+ if (IFrameSplitOperator.IsNumber(lastValue)) value=lastValue;
112515
+ else if (IFrameSplitOperator.IsString(lastValue)) value=parseFloat(lastValue);
112516
+ }
112517
+
112337
112518
  var cellItem={ Value:value, Color:color };
112338
112519
  if (text) cellItem.Text=text;
112339
112520
  if (textColor) cellItem.TextColor=textColor;
@@ -151576,7 +151757,7 @@ function HQChartScriptWorker()
151576
151757
 
151577
151758
 
151578
151759
 
151579
- var HQCHART_VERSION="1.1.14310";
151760
+ var HQCHART_VERSION="1.1.14319";
151580
151761
 
151581
151762
  function PrintHQChartVersion()
151582
151763
  {