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.
@@ -35854,6 +35854,220 @@ function ChartSimplePie()
35854
35854
  }
35855
35855
  }
35856
35856
 
35857
+
35858
+ //雷达图
35859
+ function ChartSimpleRadar()
35860
+ {
35861
+ this.newMethod=IChartPainting; //派生
35862
+ this.newMethod();
35863
+ delete this.newMethod;
35864
+
35865
+ this.ClassName='ChartSimpleRadar'; //类名
35866
+ this.BorderPoint=[]; //边框点
35867
+ this.DataPoint=[]; //数据点
35868
+ this.CenterPoint={};
35869
+ this.StartAngle=0;
35870
+ this.Color='rgb(198,198,198)';
35871
+ this.AreaColor='rgba(242,154,118,0.4)'; //面积图颜色
35872
+ this.AreaLineColor='rgb(242,154,118)';
35873
+ this.TitleFont=24*GetDevicePixelRatio()+'px 微软雅黑';
35874
+ this.TitleColor='rgb(102,102,102)';
35875
+ this.BGColor = ['rgb(255,255,255)', 'rgb(224,224,224)']//背景色
35876
+
35877
+ this.DrawBorder=function() //画边框
35878
+ {
35879
+ if (this.BorderPoint.length<=0) return;
35880
+
35881
+ this.Canvas.font=this.TitleFont;
35882
+ this.Canvas.strokeStyle = this.Color;
35883
+ const aryBorder=[1,0.8,0.6,0.4,0.2];
35884
+ for (let j in aryBorder)
35885
+ {
35886
+ var rate = aryBorder[j];
35887
+ var isFirstDraw=true;
35888
+ for(let i in this.BorderPoint)
35889
+ {
35890
+ var item=this.BorderPoint[i];
35891
+ item.X = this.CenterPoint.X + item.Radius * Math.cos(item.Angle * Math.PI / 180) * rate;
35892
+ item.Y = this.CenterPoint.Y + item.Radius * Math.sin(item.Angle * Math.PI / 180) * rate;
35893
+ if (isFirstDraw)
35894
+ {
35895
+ this.Canvas.beginPath();
35896
+ this.Canvas.moveTo(item.X,item.Y);
35897
+ isFirstDraw=false;
35898
+ }
35899
+ else
35900
+ {
35901
+ this.Canvas.lineTo(item.X,item.Y);
35902
+ }
35903
+ }
35904
+
35905
+ this.Canvas.closePath();
35906
+ this.Canvas.stroke();
35907
+ this.Canvas.fillStyle = this.BGColor[j%2==0?0:1];
35908
+ this.Canvas.fill();
35909
+ }
35910
+
35911
+ this.Canvas.beginPath();
35912
+ for(let i in this.BorderPoint)
35913
+ {
35914
+ var item=this.BorderPoint[i];
35915
+ item.X = this.CenterPoint.X + item.Radius * Math.cos(item.Angle * Math.PI / 180);
35916
+ item.Y = this.CenterPoint.Y + item.Radius * Math.sin(item.Angle * Math.PI / 180);
35917
+ this.Canvas.moveTo(this.CenterPoint.X,this.CenterPoint.Y);
35918
+ this.Canvas.lineTo(item.X,item.Y);
35919
+ this.DrawText(item);
35920
+ }
35921
+ this.Canvas.stroke();
35922
+ }
35923
+
35924
+ this.DrawArea=function()
35925
+ {
35926
+ if (!this.DataPoint || this.DataPoint.length<=0) return;
35927
+
35928
+ this.Canvas.fillStyle = this.AreaColor;
35929
+ this.Canvas.strokeStyle = this.AreaLineColor;
35930
+ this.Canvas.beginPath();
35931
+ var isFirstDraw=true;
35932
+ for(let i in this.DataPoint)
35933
+ {
35934
+ var item=this.DataPoint[i];
35935
+ if (isFirstDraw)
35936
+ {
35937
+ this.Canvas.beginPath();
35938
+ this.Canvas.moveTo(item.X,item.Y);
35939
+ isFirstDraw=false;
35940
+ }
35941
+ else
35942
+ {
35943
+ this.Canvas.lineTo(item.X,item.Y);
35944
+ }
35945
+ }
35946
+
35947
+ this.Canvas.closePath();
35948
+ this.Canvas.fill();
35949
+ this.Canvas.stroke();
35950
+ }
35951
+
35952
+ this.DrawText=function(item)
35953
+ {
35954
+ if (!item.Text) return;
35955
+
35956
+ //JSConsole.Chart.Log(item.Text, item.Angle);
35957
+ this.Canvas.fillStyle = this.TitleColor;
35958
+ var xText = item.X, yText = item.Y;
35959
+
35960
+ //显示每个角度的位置
35961
+ if (item.Angle > 0 && item.Angle < 45) {
35962
+ this.Canvas.textAlign = 'left';
35963
+ this.Canvas.textBaseline = 'middle';
35964
+ xText += 2;
35965
+ }
35966
+ else if (item.Angle >= 0 && item.Angle < 90) {
35967
+ this.Canvas.textAlign = 'left';
35968
+ this.Canvas.textBaseline = 'top';
35969
+ xText += 2;
35970
+ }
35971
+ else if (item.Angle >= 90 && item.Angle < 135) {
35972
+ this.Canvas.textAlign = 'right';
35973
+ this.Canvas.textBaseline = 'top';
35974
+ xText -= 2;
35975
+ }
35976
+ else if (item.Angle >= 135 && item.Angle < 180) {
35977
+ this.Canvas.textAlign = 'right';
35978
+ this.Canvas.textBaseline = 'top';
35979
+ xText -= 2;
35980
+ }
35981
+ else if (item.Angle >= 180 && item.Angle < 225) {
35982
+ this.Canvas.textAlign = 'right';
35983
+ this.Canvas.textBaseline = 'middle';
35984
+ xText -= 2;
35985
+ }
35986
+ else if (item.Angle >= 225 && item.Angle <= 270) {
35987
+ this.Canvas.textAlign = 'center';
35988
+ this.Canvas.textBaseline = 'bottom';
35989
+ }
35990
+ else if (item.Angle > 270 && item.Angle < 315) {
35991
+ this.Canvas.textAlign = 'left';
35992
+ this.Canvas.textBaseline = 'bottom';
35993
+ xText += 2;
35994
+ }
35995
+ else {
35996
+ this.Canvas.textAlign = 'left';
35997
+ this.Canvas.textBaseline = 'middle';
35998
+ xText += 2;
35999
+ }
36000
+
36001
+ this.Canvas.fillText(item.Text, xText, yText);
36002
+ }
36003
+
36004
+ this.Draw=function()
36005
+ {
36006
+ this.BorderPoint=[];
36007
+ this.DataPoint=[];
36008
+ this.CenterPoint={};
36009
+ if (!this.Data || !this.Data.Data || !(this.Data.Data.length>0))
36010
+ this.CalculatePoints(null);
36011
+ else
36012
+ this.CalculatePoints(this.Data.Data);
36013
+
36014
+ this.DrawBorder();
36015
+ this.DrawArea();
36016
+ }
36017
+
36018
+ this.CalculatePoints=function(data)
36019
+ {
36020
+ let left=this.ChartBorder.GetLeft();
36021
+ let right=this.ChartBorder.GetRight();
36022
+ let top=this.ChartBorder.GetTop();
36023
+ let bottom=this.ChartBorder.GetBottom();
36024
+ let width=this.ChartBorder.GetWidth();
36025
+ let height=this.ChartBorder.GetHeight();
36026
+
36027
+ let ptCenter={X:left+width/2, Y:top+height/2}; //中心点
36028
+ let radius=Math.min(width/2,height/2)-2 //半径
36029
+ let count=Math.max(5,data?data.length:0);
36030
+ let averageAngle=360/count;
36031
+ for(let i=0;i<count;++i)
36032
+ {
36033
+ let ptBorder = { Index: i, Radius: radius, Angle: i * averageAngle + this.StartAngle };
36034
+ let angle = ptBorder.Angle;
36035
+
36036
+ if (data && i<data.length)
36037
+ {
36038
+ var item=data[i];
36039
+ let ptData={Index:i,Text:item.Text};
36040
+ ptBorder.Text=item.Name;
36041
+ if (!item.Value)
36042
+ {
36043
+ ptData.X=ptCenter.X;
36044
+ ptData.Y=ptCenter.Y;
36045
+ }
36046
+ else
36047
+ {
36048
+ var value=item.Value;
36049
+ if (value>=1) value=1;
36050
+ var dataRadius=radius*value;
36051
+ ptData.X=ptCenter.X+dataRadius*Math.cos(angle*Math.PI/180);
36052
+ ptData.Y=ptCenter.Y+dataRadius*Math.sin(angle*Math.PI/180);
36053
+ }
36054
+
36055
+ this.DataPoint.push(ptData);
36056
+ }
36057
+
36058
+ this.BorderPoint.push(ptBorder);
36059
+ }
36060
+
36061
+ this.CenterPoint=ptCenter;
36062
+ }
36063
+
36064
+ //空数据
36065
+ this.DrawEmptyData=function()
36066
+ {
36067
+ JSConsole.Chart.Log('[ChartPie::DrawEmptyData]')
36068
+ }
36069
+ }
36070
+
35857
36071
  //分钟成交量 支持横屏
35858
36072
  function ChartMinuteVolumBar()
35859
36073
  {
@@ -45412,6 +45626,7 @@ function ChartDrawSVG()
45412
45626
  {
45413
45627
  var item=this.Texts[i];
45414
45628
  var key=this.BuildKey(item);
45629
+ if (!key) continue;
45415
45630
 
45416
45631
  if (mapData.has(key))
45417
45632
  {
@@ -45717,10 +45932,13 @@ function ChartDrawSVG()
45717
45932
  }
45718
45933
 
45719
45934
  var x,y,price;
45935
+ var setKey=new Set(); //已经画过的Key就不再用了
45720
45936
  for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
45721
45937
  {
45722
45938
  var kItem=this.Data.Data[i];
45723
45939
  var key=this.BuildKey(kItem);
45940
+ if (setKey.has(key)) continue;
45941
+
45724
45942
  if (!this.MapCache.has(key)) continue;
45725
45943
  var mapItem=this.MapCache.get(key);
45726
45944
 
@@ -45878,6 +46096,8 @@ function ChartDrawSVG()
45878
46096
  this.Canvas.setLineDash([]);
45879
46097
  }
45880
46098
  }
46099
+
46100
+ setKey.add(key);
45881
46101
  }
45882
46102
  }
45883
46103
 
@@ -56475,6 +56695,7 @@ function ChartCorssCursor()
56475
56695
  this.TextBGColor=g_JSChartResource.CorssCursorBGColor; //文本背景色
56476
56696
  this.BorderColor=g_JSChartResource.CorssCursorBorderColor; //边框颜色
56477
56697
  this.XRangeBGColor=g_JSChartResource.CorssCursorXRangeBGColor;
56698
+ this.LineDash=g_JSChartResource.CorssCursorLineDash.slice(); //虚线
56478
56699
  this.TextHeight=20; //文本字体高度
56479
56700
  this.LastPoint;
56480
56701
  this.LastValue; //{ Y:{ Value:, Extend: } }
@@ -56530,6 +56751,7 @@ function ChartCorssCursor()
56530
56751
  this.TextBGColor=g_JSChartResource.CorssCursorBGColor; //文本背景色
56531
56752
  this.BorderColor=g_JSChartResource.CorssCursorBorderColor; //边框颜色
56532
56753
  this.XRangeBGColor=g_JSChartResource.CorssCursorXRangeBGColor;
56754
+ this.LineDash=g_JSChartResource.CorssCursorLineDash.slice(); //虚线
56533
56755
  }
56534
56756
 
56535
56757
  this.GetCloseYPoint=function(index)
@@ -56788,10 +57010,10 @@ function ChartCorssCursor()
56788
57010
  }
56789
57011
 
56790
57012
  var pixel=GetDevicePixelRatio();
56791
- if (this.HPenType==1 || this.HPenType==0) //0=实线 1=虚线
57013
+ if (this.HPenType==1 || this.HPenType==0) //0=虚线 1=实线
56792
57014
  {
56793
57015
  this.Canvas.strokeStyle=this.HPenColor;
56794
- if (this.HPenType==0) this.Canvas.setLineDash([3*pixel,2*pixel]); //虚线
57016
+ if (this.HPenType==0) this.Canvas.setLineDash(this.LineDash); //虚线
56795
57017
  //this.Canvas.lineWidth=0.5
56796
57018
  this.Canvas.beginPath();
56797
57019
  this.Canvas.moveTo(left,ToFixedPoint(y));
@@ -56804,7 +57026,7 @@ function ChartCorssCursor()
56804
57026
  this.Canvas.strokeStyle=this.VPenColor;
56805
57027
  if (this.VPenType==0)
56806
57028
  {
56807
- this.Canvas.setLineDash([3*pixel,2*pixel]); //虚线
57029
+ this.Canvas.setLineDash(this.LineDash); //虚线
56808
57030
  }
56809
57031
  else if (this.VPenType==2)
56810
57032
  {
@@ -57399,7 +57621,7 @@ function ChartCorssCursor()
57399
57621
  var pixel=GetDevicePixelRatio();
57400
57622
  this.Canvas.save();
57401
57623
  this.Canvas.strokeStyle=this.HPenColor;
57402
- if (this.HPenType==0) this.Canvas.setLineDash([3*pixel,2*pixel]); //虚线
57624
+ if (this.HPenType==0) this.Canvas.setLineDash(this.LineDash); //虚线
57403
57625
 
57404
57626
  //画竖线
57405
57627
  this.Canvas.beginPath();
@@ -57413,7 +57635,7 @@ function ChartCorssCursor()
57413
57635
  this.Canvas.strokeStyle=this.VPenColor;
57414
57636
  if (this.VPenType==0)
57415
57637
  {
57416
- this.Canvas.setLineDash([3*pixel,2*pixel]); //虚线
57638
+ this.Canvas.setLineDash(this.LineDash); //虚线
57417
57639
  }
57418
57640
  else if (this.VPenType==2)
57419
57641
  {
@@ -60689,7 +60911,12 @@ function DynamicChartTitlePainting()
60689
60911
  {
60690
60912
  this.Font=g_JSChartResource.TitleFont;
60691
60913
  this.TitleColor=g_JSChartResource.DefaultTextColor;
60914
+ this.SelectedColor=g_JSChartResource.IndexTitleSelectedColor;
60692
60915
  this.OverlayIndexType.BGColor=g_JSChartResource.OverlayIndexTitleBGColor;
60916
+
60917
+ this.BGColor=g_JSChartResource.IndexTitleBGColor;
60918
+ this.BGBorderColor=g_JSChartResource.IndexTitleBorderColor;
60919
+ this.BGBorderMoveOnColor=g_JSChartResource.IndexTitleBorderMoveOnColor;
60693
60920
  }
60694
60921
 
60695
60922
  this.SetDynamicTitleData=function(outName, args, data)
@@ -74363,6 +74590,7 @@ function JSChartResource()
74363
74590
  this.CorssCursorHPenColor="rgb(130,130,130)"; //十字光标线段颜色(水平)
74364
74591
  this.CorssCursorVPenColor="rgb(130,130,130)"; //十字光标线段颜色(垂直)
74365
74592
  this.CorssCursorXRangeBGColor="rgba(100,149,237,0.3)"; //十字光标X轴访问背景色
74593
+ this.CorssCursorLineDash=[3*GetDevicePixelRatio(),2*GetDevicePixelRatio()]; //十字光标虚线
74366
74594
 
74367
74595
  this.CorssCursor=
74368
74596
  {
@@ -75783,6 +76011,7 @@ function JSChartResource()
75783
76011
  if (style.CorssCursorHPenColor) this.CorssCursorHPenColor = style.CorssCursorHPenColor;
75784
76012
  if (style.CorssCursorBorderColor) this.CorssCursorBorderColor=style.CorssCursorBorderColor;
75785
76013
  if (style.CorssCursorXRangeBGColor) this.CorssCursorXRangeBGColor=style.CorssCursorXRangeBGColor;
76014
+ if (style.CorssCursorLineDash) this.CorssCursorLineDash=style.CorssCursorLineDash.slice();
75786
76015
  if (style.CorssCursor && style.CorssCursor.RightButton)
75787
76016
  {
75788
76017
  var item=style.CorssCursor.RightButton;
@@ -89822,12 +90051,12 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
89822
90051
  this.CaclutateCallCationYRange();
89823
90052
  }
89824
90053
 
90054
+ //增量更新
89825
90055
  this.RecvUpdateMinuteData=function(data)
89826
90056
  {
89827
90057
  var minuteData=MinuteChartContainer.JsonDataToUpdateMinuteData(data);
89828
90058
  var aryColorData=MinuteChartContainer.JsonDataToMinuteLineColorData(data);
89829
- this.BeforeOpenData=null;
89830
- this.AfterCloseData=null;
90059
+
89831
90060
  var beforeOpenData=MinuteChartContainer.JsonDataToBeforeOpenData(data);
89832
90061
  var afterCloseData=MinuteChartContainer.JsonDataToAfterCloseData(data);
89833
90062
  var updateTime=MinuteChartContainer.JsonDataToMinuteLastUpdateTime(data); //数据最后的更新时间
@@ -89846,92 +90075,22 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
89846
90075
  return;
89847
90076
  }
89848
90077
 
89849
- //原始数据
90078
+ if (this.IsBeforeData && beforeOpenData) this.BeforeOpenData=beforeOpenData;
90079
+ if (this.IsAfterData && afterCloseData) this.AfterCloseData=afterCloseData;
89850
90080
 
90081
+ //原始数据
89851
90082
  this.UpdateLatestMinuteDataV2(minuteData);
89852
- var sourceData=this.SourceData;
89853
- var aryMinuteData=this.SourceData.Data;
89854
- this.ColorLineData=aryColorData;
89855
- this.TradeDate=data.stock[0].date;
89856
- this.Frame.SetDayCount(1); //单日数据
89857
- this.SourceData.UpdateTime=updateTime;
89858
- this.Symbol=minuteData.Symbol;
89859
- this.Name=minuteData.Name;
89860
-
89861
- this.SetCallCationDataBorder( { Left:this.IsBeforeData, Right:this.IsAfterData , MultiDay:{ Left:false, Right:false }} );
90083
+ this.UpdateMinuteUI(data.stock[0], {FunctionName:"RecvUpdateMinuteData"});
89862
90084
 
89863
- if (this.ShareAfterVol==2) //盘前, 盘后成交量公用坐标
90085
+ if (data.AutoUpdate===false) //不执行自动更新
89864
90086
  {
89865
- if (this.BeforeOpenData && this.AfterCloseData)
89866
- {
89867
- var max=Math.max(this.BeforeOpenData.VolMax, this.AfterCloseData.VolMax);
89868
- var min=Math.min(this.BeforeOpenData.VolMin, this.AfterCloseData.VolMin);
89869
- this.BeforeOpenData.VolMax=this.AfterCloseData.VolMax=max;
89870
- this.BeforeOpenData.VolMin=this.AfterCloseData.VolMin=min;
89871
- }
89872
- }
89873
90087
 
89874
- var yClose=minuteData.YClose;
89875
- var upperSymbol=this.Symbol.toUpperCase();
89876
- var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol);
89877
- if (minuteData.YClearing>0 && isFutures) yClose=minuteData.YClearing; //期货使用前结算价
89878
- this.CaclutateLimitPrice(yClose, minuteData.LimitPrice); //计算涨停价格
89879
- var extendData=null;
89880
- if (minuteData.High>0 && minuteData.Low>0) extendData={ High:minuteData.High, Low:minuteData.Low };
89881
- this.BindMainData(sourceData,yClose, extendData);
89882
-
89883
- if (this.Frame.SubFrame.length>2)
89884
- {
89885
- var bindData=new ChartData();
89886
- bindData.Data=aryMinuteData;
89887
- for(var i=2; i<this.Frame.SubFrame.length; ++i)
89888
- {
89889
- this.BindIndexData(i,bindData);
89890
- }
89891
- }
89892
-
89893
- for(let i=0; i<this.Frame.SubFrame.length; ++i)
90088
+ }
90089
+ else
89894
90090
  {
89895
- var item=this.Frame.SubFrame[i];
89896
- item.Frame.XSplitOperator.Symbol=this.Symbol;
89897
- item.Frame.XSplitOperator.DayCount=1;
89898
- item.Frame.XSplitOperator.Operator(); //调整X轴个数
89899
- item.Frame.YSplitOperator.Symbol=this.Symbol;
89900
-
89901
- if (IFrameSplitOperator.IsNonEmptyArray(item.OverlayIndex))
89902
- {
89903
- for(var j=0;j<item.OverlayIndex.length; ++j) //子坐标X轴个数同步
89904
- {
89905
- var overlayItem=item.OverlayIndex[j];
89906
- overlayItem.Frame.XPointCount=item.Frame.XPointCount;
89907
- overlayItem.Frame.MinuteCount=item.Frame.MinuteCount;
89908
- }
89909
- }
90091
+ this.AutoUpdateEvent(true, "MinuteChartContainer::RecvUpdateMinuteData");
90092
+ this.AutoUpdate();
89910
90093
  }
89911
-
89912
- this.ChartCorssCursor.StringFormatY.Symbol=this.Symbol;
89913
- this.ChartCorssCursor.StringFormatX.Symbol=this.Symbol;
89914
-
89915
- if (MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol)) this.TitlePaint[0].IsShowDate=false;
89916
-
89917
- if (data.stock[0].IsHistoryMinute==true) this.TitlePaint[0].IsShowDate=true;
89918
-
89919
- var chartInfo=this.GetChartMinuteInfo();
89920
- if (chartInfo) chartInfo.SourceData=this.SourceData; //数据绑定到信息地雷上
89921
-
89922
- this.RecvMinuteDataEvent( {FunctionName:"RecvUpdateMinuteData"} );
89923
- this.RequestMinuteInfoData();
89924
- this.RequestOverlayMinuteData();//请求叠加数据 (主数据下载完再下载)
89925
- this.CreateChartDrawPictureByStorage(); //创建画图工具
89926
-
89927
- this.UpdateFrameMaxMin(); //调整坐标最大 最小值
89928
- this.Frame.SetSizeChage(true);
89929
- this.Draw();
89930
-
89931
- this.BindAllOverlayIndexData(this.SourceData);
89932
-
89933
- this.AutoUpdateEvent(true, "MinuteChartContainer::RecvUpdateMinuteData");
89934
- this.AutoUpdate();
89935
90094
  }
89936
90095
 
89937
90096
  this.RecvMinuteData=function(data)
@@ -89998,15 +90157,31 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
89998
90157
  var sourceData=new ChartData();
89999
90158
  sourceData.Data=aryMinuteData;
90000
90159
  sourceData.UpdateTime=updateTime;
90160
+ this.SourceData=sourceData;
90001
90161
 
90002
90162
  this.ColorLineData=aryColorData;
90003
90163
 
90004
- this.TradeDate=data.stock[0].date;
90164
+ this.UpdateMinuteUI(data.stock[0], {FunctionName:"RecvMinuteData", Day:{ IsFirstData:bFirstData} });
90165
+
90166
+ if (data.AutoUpdate===false) //不执行自动更新
90167
+ {
90168
+
90169
+ }
90170
+ else
90171
+ {
90172
+ this.AutoUpdateEvent(true, "MinuteChartContainer::RecvMinuteData");
90173
+ this.AutoUpdate();
90174
+ }
90175
+ }
90176
+
90177
+ //更新单日分时图
90178
+ this.UpdateMinuteUI=function(stockData, eventData)
90179
+ {
90180
+ this.TradeDate=stockData.date;
90005
90181
  this.Frame.SetDayCount(1); //单日数据
90006
90182
 
90007
- this.SourceData=sourceData;
90008
- this.Symbol=data.stock[0].symbol;
90009
- this.Name=data.stock[0].name;
90183
+ this.Symbol=stockData.symbol;
90184
+ this.Name=stockData.name;
90010
90185
 
90011
90186
  this.SetCallCationDataBorder( { Left:this.IsBeforeData, Right:this.IsAfterData , MultiDay:{ Left:false, Right:false }} );
90012
90187
 
@@ -90021,26 +90196,26 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
90021
90196
  }
90022
90197
  }
90023
90198
 
90024
- var yClose=data.stock[0].yclose;
90199
+ var yClose=stockData.yclose;
90025
90200
  var upperSymbol=this.Symbol.toUpperCase();
90026
90201
  var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol);
90027
- if (data.stock[0].yclearing>0 && isFutures) yClose=data.stock[0].yclearing; //期货使用前结算价
90028
- this.CaclutateLimitPrice(yClose, data.stock[0].limitprice); //计算涨停价格
90202
+ if (stockData.yclearing>0 && isFutures) yClose=stockData.yclearing; //期货使用前结算价
90203
+ this.CaclutateLimitPrice(yClose, stockData.limitprice); //计算涨停价格
90029
90204
  var extendData=null;
90030
- if (data.stock[0].high>0 && data.stock[0].low>0) extendData={ High:data.stock[0].high, Low:data.stock[0].low };
90031
- this.BindMainData(sourceData,yClose, extendData);
90205
+ if (stockData.high>0 && stockData.low>0) extendData={ High:stockData.high, Low:stockData.low };
90206
+ this.BindMainData(this.SourceData,yClose, extendData);
90032
90207
 
90033
90208
  if (this.Frame.SubFrame.length>2)
90034
90209
  {
90035
90210
  var bindData=new ChartData();
90036
- bindData.Data=aryMinuteData;
90211
+ bindData.Data=this.SourceData.Data;
90037
90212
  for(var i=2; i<this.Frame.SubFrame.length; ++i)
90038
90213
  {
90039
90214
  this.BindIndexData(i,bindData);
90040
90215
  }
90041
90216
  }
90042
90217
 
90043
- for(let i in this.Frame.SubFrame)
90218
+ for(var i=0, j=0; i<this.Frame.SubFrame.length; ++i)
90044
90219
  {
90045
90220
  var item=this.Frame.SubFrame[i];
90046
90221
  item.Frame.XSplitOperator.Symbol=this.Symbol;
@@ -90048,7 +90223,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
90048
90223
  item.Frame.XSplitOperator.Operator(); //调整X轴个数
90049
90224
  item.Frame.YSplitOperator.Symbol=this.Symbol;
90050
90225
 
90051
- for(var j in item.OverlayIndex) //子坐标X轴个数同步
90226
+ for(j=0;j<item.OverlayIndex.length;++j) //子坐标X轴个数同步
90052
90227
  {
90053
90228
  var overlayItem=item.OverlayIndex[j];
90054
90229
  overlayItem.Frame.XPointCount=item.Frame.XPointCount;
@@ -90061,12 +90236,12 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
90061
90236
 
90062
90237
  if (MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol)) this.TitlePaint[0].IsShowDate=false;
90063
90238
 
90064
- if (data.stock[0].IsHistoryMinute==true) this.TitlePaint[0].IsShowDate=true;
90239
+ if (stockData.IsHistoryMinute==true) this.TitlePaint[0].IsShowDate=true;
90065
90240
 
90066
90241
  var chartInfo=this.GetChartMinuteInfo();
90067
90242
  if (chartInfo) chartInfo.SourceData=this.SourceData; //数据绑定到信息地雷上
90068
90243
 
90069
- this.RecvMinuteDataEvent( {FunctionName:"RecvMinuteData", Day:{ IsFirstData:bFirstData} } );
90244
+ if (eventData) this.RecvMinuteDataEvent( eventData );
90070
90245
  this.RequestMinuteInfoData();
90071
90246
  this.RequestOverlayMinuteData();//请求叠加数据 (主数据下载完再下载)
90072
90247
  this.CreateChartDrawPictureByStorage(); //创建画图工具
@@ -90076,16 +90251,6 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
90076
90251
  this.Draw();
90077
90252
 
90078
90253
  this.BindAllOverlayIndexData(this.SourceData);
90079
-
90080
- if (data.AutoUpdate===false) //不执行自动更新
90081
- {
90082
-
90083
- }
90084
- else
90085
- {
90086
- this.AutoUpdateEvent(true, "MinuteChartContainer::RecvMinuteData");
90087
- this.AutoUpdate();
90088
- }
90089
90254
  }
90090
90255
 
90091
90256
  this.CaclutateLimitPrice=function(yClose, limitData)
@@ -112288,8 +112453,24 @@ function JSDraw(errorHandler,symbolData)
112288
112453
  }
112289
112454
 
112290
112455
  //饼图
112291
- this.PIE_CELL=function(value, color, text, textColor, lineColor)
112456
+ this.PIE_CELL=function(data, color, text, textColor, lineColor)
112292
112457
  {
112458
+ var value=null;
112459
+ if (IFrameSplitOperator.IsNumber(data))
112460
+ {
112461
+ value=data;
112462
+ }
112463
+ else if (IFrameSplitOperator.IsString(data))
112464
+ {
112465
+ value=parseFloat(data);
112466
+ }
112467
+ else if (IFrameSplitOperator.IsNonEmptyArray(data))
112468
+ {
112469
+ var lastValue=data[data.length-1];
112470
+ if (IFrameSplitOperator.IsNumber(lastValue)) value=lastValue;
112471
+ else if (IFrameSplitOperator.IsString(lastValue)) value=parseFloat(lastValue);
112472
+ }
112473
+
112293
112474
  var cellItem={ Value:value, Color:color };
112294
112475
  if (text) cellItem.Text=text;
112295
112476
  if (textColor) cellItem.TextColor=textColor;
@@ -141928,7 +142109,7 @@ function ScrollBarBGChart()
141928
142109
 
141929
142110
 
141930
142111
 
141931
- var HQCHART_VERSION="1.1.14310";
142112
+ var HQCHART_VERSION="1.1.14319";
141932
142113
 
141933
142114
  function PrintHQChartVersion()
141934
142115
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.14310";
8
+ var HQCHART_VERSION="1.1.14319";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {