hqchart 1.1.14905 → 1.1.14912

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.
@@ -45867,7 +45867,10 @@ function ChartBaseLineBar()
45867
45867
  this.ClassName="ChartBaseLineBar";
45868
45868
  this.UpColor=g_JSChartResource.ChartBaseLineBar.UpColor;
45869
45869
  this.DownColor=g_JSChartResource.ChartBaseLineBar.DownColor;
45870
+ this.UpName;
45871
+ this.DownName;
45870
45872
  this.LineWidth=1;
45873
+ this.Style=0; //0=坐标使用主图坐标 1=独立坐标
45871
45874
  this.IsDrawFirst=true;
45872
45875
  this.AryData=[]; //{ Date, Time, Up, Down }
45873
45876
  this.DefaultMax; //默认最大值
@@ -45876,6 +45879,74 @@ function ChartBaseLineBar()
45876
45879
  this.YBaseLine;
45877
45880
  this.BarMaxHeight; //{ Up:, Down: }
45878
45881
 
45882
+ this.DrawStyle2=function()
45883
+ {
45884
+ var bHScreen=(this.ChartFrame.IsHScreen===true);
45885
+ var bMinute=this.IsMinuteFrame();
45886
+ var dataWidth=this.ChartFrame.DataWidth;
45887
+ var distanceWidth=this.ChartFrame.DistanceWidth;
45888
+ var xPointCount=this.ChartFrame.XPointCount;
45889
+ var border=this.ChartFrame.GetBorder();
45890
+
45891
+ if (bHScreen)
45892
+ {
45893
+ var chartright=border.BottomEx;
45894
+ var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
45895
+ }
45896
+ else
45897
+ {
45898
+ var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
45899
+ var chartright=border.RightEx;
45900
+ }
45901
+
45902
+ this.Canvas.save();
45903
+ this.ClipClient(bHScreen);
45904
+
45905
+ this.YBaseLine=this.ChartFrame.GetYFromData(0, false);
45906
+ var aryUpBar=[], aryDownBar=[];
45907
+ for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
45908
+ {
45909
+ var kItem=this.Data.Data[i];
45910
+ if (!kItem) continue;
45911
+ var key=this.BuildKey(kItem);
45912
+ if (!this.MapCache.has(key)) continue;
45913
+
45914
+ var item=this.MapCache.get(key);
45915
+
45916
+ if (bMinute)
45917
+ {
45918
+ var x=this.ChartFrame.GetXFromIndex(j);
45919
+ }
45920
+ else
45921
+ {
45922
+ var left=xOffset;
45923
+ var right=xOffset+dataWidth;
45924
+ if (right>chartright) break;
45925
+ var x=left+(right-left)/2;
45926
+ }
45927
+
45928
+ if (IFrameSplitOperator.IsNumber(item.Up))
45929
+ {
45930
+ var value=Math.abs(item.Up);
45931
+ var y=this.ChartFrame.GetYFromData(value, false);
45932
+
45933
+ aryUpBar.push({ X:x, Y:y});
45934
+ }
45935
+
45936
+ if (IFrameSplitOperator.IsNumber(item.Down))
45937
+ {
45938
+ var value=Math.abs(item.Down)*-1;
45939
+ var y=this.ChartFrame.GetYFromData(value, false);
45940
+ aryDownBar.push({X:x, Y:y});
45941
+ }
45942
+ }
45943
+
45944
+ this.DrawBars(aryUpBar, this.UpColor);
45945
+ this.DrawBars(aryDownBar,this.DownColor);
45946
+
45947
+ this.Canvas.restore();
45948
+ }
45949
+
45879
45950
  this.Draw=function()
45880
45951
  {
45881
45952
  this.YBaseLine=null;
@@ -45886,6 +45957,14 @@ function ChartBaseLineBar()
45886
45957
  if (!this.HQChart) return;
45887
45958
  if(!this.Data || !IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return;
45888
45959
  if (!IFrameSplitOperator.IsNumber(this.MaxValue)) return;
45960
+
45961
+ if (this.Style==1)
45962
+ {
45963
+ this.DrawStyle2();
45964
+ return;
45965
+ }
45966
+
45967
+
45889
45968
  this.CalculateBaseLine();
45890
45969
 
45891
45970
  if (!IFrameSplitOperator.IsNumber(this.YBaseLine)) return;
@@ -46053,7 +46132,39 @@ function ChartBaseLineBar()
46053
46132
 
46054
46133
  this.GetMaxMin=function()
46055
46134
  {
46056
- return {Min:null, Max:null};
46135
+ var range={Min:null, Max:null};
46136
+
46137
+ if (this.Style==1) //独立坐标
46138
+ {
46139
+ if (IFrameSplitOperator.IsNumber(this.DefaultMax)) range.Max=this.DefaultMax;
46140
+ range.Min=0;
46141
+
46142
+ var xPointCount=this.ChartFrame.XPointCount;
46143
+ for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
46144
+ {
46145
+ var kItem=this.Data.Data[i];
46146
+ if (!kItem) continue;
46147
+ var key=this.BuildKey(kItem);
46148
+ if (!this.MapCache.has(key)) continue;
46149
+
46150
+ var item=this.MapCache.get(key);
46151
+ var value=Math.abs(item.Up);
46152
+ if (range.Max==null || range.Max<value) range.Max=value;
46153
+ var value=Math.abs(item.Down)*-1;
46154
+ if (range.Min>value) range.Min=value;
46155
+ }
46156
+ }
46157
+
46158
+ return range;
46159
+ }
46160
+
46161
+ this.GetItem=function(kItem)
46162
+ {
46163
+ if (!this.MapCache || this.MapCache.size<=0) return null;
46164
+ var key=this.BuildKey(kItem);
46165
+ if (!this.MapCache.has(key)) return null;
46166
+
46167
+ return this.MapCache.get(key);
46057
46168
  }
46058
46169
  }
46059
46170
 
@@ -65996,6 +66107,45 @@ function DynamicChartTitlePainting()
65996
66107
  return aryText;
65997
66108
  }
65998
66109
 
66110
+ this.FormatBaseLineBarTitle=function(kItem, dataInfo)
66111
+ {
66112
+ var result=null;
66113
+ var aryText=[];
66114
+
66115
+ if (!kItem) return result;
66116
+ if (!dataInfo.Chart) return result;
66117
+
66118
+ var chart=dataInfo.Chart;
66119
+ var item=chart.GetItem(kItem);
66120
+ if (!item) return result;
66121
+ if (!IFrameSplitOperator.IsNumber(item.Up) && !IFrameSplitOperator.IsNumber(item.Down)) return result;
66122
+
66123
+ result={ Text:null, ArrayText:aryText };
66124
+ if (IFrameSplitOperator.IsNumber(item.Up))
66125
+ {
66126
+ var textItem={ Name:null, Text:null };
66127
+ textItem.Text=this.FormatValue(item.Up, dataInfo);
66128
+
66129
+ if (chart.UpName) textItem.Name=chart.UpName;
66130
+ if (chart.UpColor) textItem.Color=chart.UpColor;
66131
+ aryText.push(textItem);
66132
+ }
66133
+
66134
+ if (IFrameSplitOperator.IsNumber(item.Down))
66135
+ {
66136
+ var textItem={ Name:null, Text:null };
66137
+ textItem.Text=this.FormatValue(item.Down,dataInfo);
66138
+ if (chart.DownName) textItem.Name=chart.DownName;
66139
+ if (chart.DownColor) textItem.Color=chart.DownColor;
66140
+
66141
+ if (aryText.length>0) textItem.LeftSpace=3;
66142
+
66143
+ aryText.push(textItem);
66144
+ }
66145
+
66146
+ return result;
66147
+ }
66148
+
65999
66149
  this.FormatKLineTitle=function(item, dataInfo)
66000
66150
  {
66001
66151
  if (!item) return null;
@@ -66641,6 +66791,11 @@ function DynamicChartTitlePainting()
66641
66791
  {
66642
66792
  return null;
66643
66793
  }
66794
+ else if (item.DataType=="ChartBaseLineBar")
66795
+ {
66796
+ var outTitle=this.FormatBaseLineBarTitle(value, item);
66797
+ return outTitle;
66798
+ }
66644
66799
  else if (g_ScriptIndexChartFactory.Has(item.DataType)) //外部挂接
66645
66800
  {
66646
66801
  var find=g_ScriptIndexChartFactory.Get(item.DataType);
@@ -129851,7 +130006,7 @@ function ScriptIndex(name,script,args,option)
129851
130006
  hqChart.ChartPaint.push(chart);
129852
130007
  }
129853
130008
 
129854
- this.CreateBaseLineBar=function(hqChart,windowIndex,varItem,id)
130009
+ this.CreateBaseLineBar=function(hqChart,windowIndex,varItem,i)
129855
130010
  {
129856
130011
  var chart=new ChartBaseLineBar();
129857
130012
  chart.Canvas=hqChart.Canvas;
@@ -129863,6 +130018,7 @@ function ScriptIndex(name,script,args,option)
129863
130018
 
129864
130019
  chart.Data=hqChart.GetKData(); //绑定K线
129865
130020
  chart.AryData=varItem.Draw.DrawData;
130021
+ chart.Style=1; //主图使用独立坐标模式
129866
130022
 
129867
130023
  var config=varItem.Draw.Config;
129868
130024
  if (config)
@@ -129870,11 +130026,20 @@ function ScriptIndex(name,script,args,option)
129870
130026
  if (config.UpColor) chart.UpColor=config.UpColor;
129871
130027
  if (config.DownColor) chart.DownColor=config.DownColor;
129872
130028
  if (IFrameSplitOperator.IsNumber(config.DefaultMax)) chart.DefaultMax=config.DefaultMax;
130029
+ if (IFrameSplitOperator.IsNumber(config.Style)) chart.Style=config.Style;
130030
+ if (config.UpName) chart.UpName=config.UpName;
130031
+ if (config.DownName) chart.DownName=config.DownName;
129873
130032
  }
129874
130033
 
129875
130034
  chart.BuildCacheData();
129876
130035
  this.SetChartIndexName(chart);
129877
130036
  hqChart.ChartPaint.push(chart);
130037
+
130038
+ var titleIndex=windowIndex+1;
130039
+ var titleData=new DynamicTitleData(chart.Data,null,chart.Color);
130040
+ titleData.DataType="ChartBaseLineBar";
130041
+ titleData.Chart=chart;
130042
+ hqChart.TitlePaint[titleIndex].Data[i]=titleData;
129878
130043
  }
129879
130044
 
129880
130045
 
@@ -131445,6 +131610,7 @@ function OverlayScriptIndex(name,script,args,option)
131445
131610
  if (config.UpColor) chart.UpColor=config.UpColor;
131446
131611
  if (config.DownColor) chart.DownColor=config.DownColor;
131447
131612
  if (IFrameSplitOperator.IsNumber(config.DefaultMax)) chart.DefaultMax=config.DefaultMax;
131613
+ if (IFrameSplitOperator.IsNumber(config.Style)) chart.Style=config.Style;
131448
131614
  }
131449
131615
 
131450
131616
  chart.BuildCacheData();
@@ -142672,7 +142838,7 @@ function ChartReport()
142672
142838
  this.RectClient={};
142673
142839
 
142674
142840
  //{ Rect:rtItem, Stock:stock, Index:index, Column:column, RowType:rowType, Type:drawInfo.Tooltip.Type, Data:{ AryText:[ {Text:xx} ]} };
142675
- //Type:1=数据截断 2=表头提示信息 20=分时图
142841
+ //Type:1=数据截断 2=表头提示信息 4=提示信息 20=分时图 21=K线
142676
142842
  // { Text, Color, Title:, TitleColor, Space, Margin:{ Left, Top, Right, Bottom }}
142677
142843
  this.TooltipRect=[];
142678
142844
 
@@ -144556,7 +144722,7 @@ function ChartReport()
144556
144722
  //tooltip提示
144557
144723
  if (drawInfo.Tooltip)
144558
144724
  {
144559
- //Type:1=数据截断
144725
+ //Type:1=数据截断 4=提示信息
144560
144726
  var tooltipData={ Rect:rtItem, Stock:stock, Index:index, Column:column, RowType:rowType, Type:drawInfo.Tooltip.Type, Data:drawInfo.Tooltip.Data };
144561
144727
  this.TooltipRect.push(tooltipData);
144562
144728
  }
@@ -144699,10 +144865,13 @@ function ChartReport()
144699
144865
  this.Canvas.clip();
144700
144866
 
144701
144867
  //数据截断提示信息
144702
- drawInfo.Tooltip=
144703
- {
144704
- Type:1,
144705
- Data:{ AryText:[ {Text:drawInfo.Text} ] }
144868
+ if (!drawInfo.Tooltip)
144869
+ {
144870
+ drawInfo.Tooltip=
144871
+ {
144872
+ Type:1,
144873
+ Data:{ AryText:[ {Text:drawInfo.Text} ] }
144874
+ }
144706
144875
  }
144707
144876
  }
144708
144877
 
@@ -145074,6 +145243,15 @@ function ChartReport()
145074
145243
  if (item.Text) drawInfo.Text=item.Text;
145075
145244
  if (item.TextColor) drawInfo.TextColor=item.TextColor;
145076
145245
  if (item.BGColor) drawInfo.BGColor=item.BGColor;
145246
+
145247
+ if (item.Tooltip && IFrameSplitOperator.IsNonEmptyArray(item.Tooltip.AryText))
145248
+ {
145249
+ drawInfo.Tooltip=
145250
+ {
145251
+ Type:4,
145252
+ Data:{ AryText:item.Tooltip.AryText }
145253
+ }
145254
+ }
145077
145255
  }
145078
145256
  else if (IFrameSplitOperator.IsString(item))
145079
145257
  {
@@ -156886,6 +157064,10 @@ function JSTooltipKLineChart()
156886
157064
 
156887
157065
  this.BGColor=g_JSChartResource.PopMinuteChart.BGColor;
156888
157066
  this.BorderColor=g_JSChartResource.PopMinuteChart.BorderColor;
157067
+ this.TitleFont=g_JSChartResource.PopMinuteChart.Title.Font; //指标标题字体
157068
+ this.CorssCursorFont=g_JSChartResource.PopMinuteChart.CorssCursor.Font; //十字光标
157069
+ this.FrameSplitTextFont=g_JSChartResource.PopMinuteChart.Frame.Font; //刻度文字
157070
+
156889
157071
  this.OnCreatedCallback=null;
156890
157072
 
156891
157073
  this.KLine=
@@ -156931,6 +157113,35 @@ function JSTooltipKLineChart()
156931
157113
  if (this.HQChart) this.KLine.Option.Language=g_JSChartLocalization.GetLanguageName(this.HQChart.LanguageID);
156932
157114
  this.KLine.Option.OnCreatedCallback=(chart)=>{ this.OnCreateHQChart(chart); }
156933
157115
  this.KLine.Option.NetworkFilter=(data, callback)=>{ this.NetworkFilter(data, callback); }
157116
+
157117
+ var reloadResourceEvent=
157118
+ {
157119
+ event:JSCHART_EVENT_ID.ON_RELOAD_RESOURCE,
157120
+ callback:(event, data, obj)=>{ this.LoadChartResource(obj); }
157121
+ }
157122
+
157123
+ var splitXEvent=
157124
+ {
157125
+ event:JSCHART_EVENT_ID.ON_SPLIT_XCOORDINATE,
157126
+ callback:(event, data, obj)=>{ this.OnSplitXCoordinate(event, data, obj); }
157127
+ };
157128
+
157129
+ var splitYEvent=
157130
+ {
157131
+ event:JSCHART_EVENT_ID.ON_SPLIT_YCOORDINATE,
157132
+ callback:(event, data, obj)=>{ this.OnSplitYCoordinate(event, data, obj); }
157133
+ }
157134
+
157135
+ if (Array.isArray(this.KLine.Option.EventCallback))
157136
+ {
157137
+ this.KLine.Option.EventCallback.unshift(reloadResourceEvent,splitYEvent,splitYEvent);
157138
+ }
157139
+ else
157140
+ {
157141
+ this.KLine.Option.EventCallback=[reloadResourceEvent,splitXEvent,splitYEvent];
157142
+ }
157143
+
157144
+
156934
157145
  chart.SetOption(this.KLine.Option); //设置K线配置
156935
157146
 
156936
157147
  document.body.appendChild(divDom);
@@ -156960,6 +157171,8 @@ function JSTooltipKLineChart()
156960
157171
 
156961
157172
  this.OnCreateHQChart=function(chart)
156962
157173
  {
157174
+ this.LoadChartResource(chart);
157175
+
156963
157176
  if (this.OnCreatedCallback) this.OnCreatedCallback(chart);
156964
157177
  }
156965
157178
 
@@ -157041,6 +157254,10 @@ function JSTooltipKLineChart()
157041
157254
  this.BGColor=g_JSChartResource.PopMinuteChart.BGColor;
157042
157255
  this.BorderColor=g_JSChartResource.PopMinuteChart.BorderColor;
157043
157256
 
157257
+ this.TitleFont=g_JSChartResource.PopMinuteChart.Title.Font; //指标标题字体
157258
+ this.CorssCursorFont=g_JSChartResource.PopMinuteChart.CorssCursor.Font; //十字光标
157259
+ this.FrameSplitTextFont=g_JSChartResource.PopMinuteChart.Frame.Font; //刻度文字
157260
+
157044
157261
  if (!this.DivDialog) return;
157045
157262
 
157046
157263
  this.UpdateStyle();
@@ -157048,6 +157265,63 @@ function JSTooltipKLineChart()
157048
157265
  if (this.KLine.JSChart) this.KLine.JSChart.ReloadResource(option);
157049
157266
  }
157050
157267
 
157268
+ this.LoadChartResource=function(chart)
157269
+ {
157270
+ if (IFrameSplitOperator.IsNonEmptyArray(chart.TitlePaint))
157271
+ {
157272
+ for(var i=0;i<chart.TitlePaint.length;++i)
157273
+ {
157274
+ var item=chart.TitlePaint[i];
157275
+ if (!item) continue;
157276
+
157277
+ item.Font=this.TitleFont;
157278
+ }
157279
+ }
157280
+
157281
+ if (IFrameSplitOperator.IsNonEmptyArray(chart.WindowIndex))
157282
+ {
157283
+ for(var i=0;i<chart.WindowIndex.length;++i) //去掉指标里面的字体
157284
+ {
157285
+ var item=chart.WindowIndex[i];
157286
+ if (!item) continue;
157287
+ item.TitleFont=null;
157288
+ }
157289
+ }
157290
+
157291
+ if (chart.ChartCorssCursor)
157292
+ {
157293
+ chart.ChartCorssCursor.Font=this.CorssCursorFont;
157294
+ }
157295
+ }
157296
+
157297
+ this.OnSplitXCoordinate=function(event, data, obj)
157298
+ {
157299
+ var frame=data.Frame;
157300
+ if (IFrameSplitOperator.IsNonEmptyArray(frame.VerticalInfo))
157301
+ {
157302
+ for(var i=0;i<frame.VerticalInfo.length;++i)
157303
+ {
157304
+ var item=frame.VerticalInfo[i];
157305
+ if (!item) continue;
157306
+ if (item.Font) item.Font=this.FrameSplitTextFont;
157307
+ }
157308
+ }
157309
+ }
157310
+
157311
+ this.OnSplitYCoordinate=function(event, data, obj)
157312
+ {
157313
+ var frame=data.Frame;
157314
+ if (IFrameSplitOperator.IsNonEmptyArray(frame.HorizontalInfo))
157315
+ {
157316
+ for(var i=0;i<frame.HorizontalInfo.length;++i)
157317
+ {
157318
+ var item=frame.HorizontalInfo[i];
157319
+ if (!item) continue;
157320
+ if (item.Font) item.Font=this.FrameSplitTextFont;
157321
+ }
157322
+ }
157323
+ }
157324
+
157051
157325
  }
157052
157326
 
157053
157327
  JSTooltipKLineChart.GetKLineOption=function()
@@ -158908,6 +159182,10 @@ function JSFloatTooltip()
158908
159182
  {
158909
159183
  this.ReportCellTruncateTooltip(data);
158910
159184
  }
159185
+ else if (tooltipData.Type==4) //单元格提示信息
159186
+ {
159187
+ this.ReportCellTooltip(data);
159188
+ }
158911
159189
  }
158912
159190
  else if (data.DataType==4) //T型报价
158913
159191
  {
@@ -159194,6 +159472,18 @@ function JSFloatTooltip()
159194
159472
  this.ShowTooltip(data);
159195
159473
  }
159196
159474
 
159475
+ //单元格提示信息
159476
+ this.ReportCellTooltip=function(data)
159477
+ {
159478
+ var tooltipData=data.Tooltip;
159479
+ if (!tooltipData.Data || !IFrameSplitOperator.IsNonEmptyArray(tooltipData.Data.AryText)) return;
159480
+
159481
+ this.AryText=tooltipData.Data.AryText;
159482
+ this.UpdateTableDOM();
159483
+
159484
+ this.ShowTooltip(data);
159485
+ }
159486
+
159197
159487
  //表格单元格截断内容
159198
159488
  this.ReportCellTruncateTooltip=function(data)
159199
159489
  {
@@ -159244,7 +159534,8 @@ function JSFloatTooltip()
159244
159534
  if (outItem.HTMLTitle) item.TitleSpan.innerHTML=outItem.HTMLTitle
159245
159535
  else item.TitleSpan.innerText=outItem.Title;
159246
159536
 
159247
- item.TitleSpan.style.color=this.TextColor;
159537
+ if (outItem.TitleColor) item.TitleSpan.style.color=outItem.TitleColor;
159538
+ else item.TitleSpan.style.color=this.TextColor;
159248
159539
 
159249
159540
  if (outItem.HTMLText) item.TextSpan.innerHTML=outItem.HTMLText
159250
159541
  else item.TextSpan.innerText=outItem.Text;
@@ -162135,7 +162426,7 @@ function HQChartScriptWorker()
162135
162426
 
162136
162427
 
162137
162428
 
162138
- var HQCHART_VERSION="1.1.14904";
162429
+ var HQCHART_VERSION="1.1.14911";
162139
162430
 
162140
162431
  function PrintHQChartVersion()
162141
162432
  {