hqchart 1.1.14056 → 1.1.14064

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.
@@ -6610,6 +6610,7 @@ var JSCHART_EVENT_ID=
6610
6610
  ON_CHANGE_KLINE_RIGHT:160, //切换复权
6611
6611
 
6612
6612
  ON_FORMAT_KLINE_FLOAT_TOOLTIP:161, //格式化k线浮动框显示文字
6613
+ ON_FORMAT_KLINE_INFO_FLOAT_TOOLTIP:162, //格式化信息地雷显示文字
6613
6614
  }
6614
6615
 
6615
6616
  var JSCHART_OPERATOR_ID=
@@ -10998,7 +10999,25 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
10998
10999
 
10999
11000
  this.DrawFloatTooltip=function(point,toolTip)
11000
11001
  {
11002
+ if (!this.FloatTooltip) return;
11003
+
11004
+ this.UpdateFloatTooltip(point, toolTip)
11005
+ }
11006
+
11007
+ this.UpdateFloatTooltip=function(point, toolTip)
11008
+ {
11009
+ if (!this.FloatTooltip) return;
11010
+
11011
+ var sendData=
11012
+ {
11013
+ Tooltip:toolTip,
11014
+ Point:point,
11015
+ Symbol:this.Symbol,
11016
+ Name:this.Name,
11017
+ DataType:1,
11018
+ };
11001
11019
 
11020
+ this.FloatTooltip.Update(sendData);
11002
11021
  }
11003
11022
 
11004
11023
  //更新实时行情到浮动tooltip
@@ -11103,6 +11122,13 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
11103
11122
  }
11104
11123
  else if (toolTip.Type==2) //指标信息
11105
11124
  {
11125
+ if (this.FloatTooltip)
11126
+ {
11127
+ this.DrawFloatTooltip({X:x, Y:y, YMove:20/pixelTatio}, toolTip);
11128
+ bHideFloatToolip=false;
11129
+ return;
11130
+ }
11131
+
11106
11132
  var left = x;
11107
11133
  var top = y;
11108
11134
 
@@ -11124,6 +11150,13 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
11124
11150
  }
11125
11151
  else if (toolTip.Type==3) //分时图异动信息
11126
11152
  {
11153
+ if (this.FloatTooltip)
11154
+ {
11155
+ this.DrawFloatTooltip({X:x, Y:y, YMove:20/pixelTatio}, toolTip);
11156
+ bHideFloatToolip=false;
11157
+ return;
11158
+ }
11159
+
11127
11160
  var left = x;
11128
11161
  var top = y;
11129
11162
 
@@ -11143,8 +11176,15 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
11143
11176
  this.Tooltip.innerHTML=format.Text;;
11144
11177
  this.Tooltip.style.display = "block";
11145
11178
  }
11146
- else if (toolTip.Type==4) //icon图标信息
11179
+ else if (toolTip.Type==4) //ChartMultiSVGIconV2 图标信息
11147
11180
  {
11181
+ if (this.FloatTooltip)
11182
+ {
11183
+ this.DrawFloatTooltip({X:x, Y:y, YMove:20/pixelTatio}, toolTip);
11184
+ bHideFloatToolip=false;
11185
+ return;
11186
+ }
11187
+
11148
11188
  var left = x;
11149
11189
  var top = y;
11150
11190
 
@@ -11166,6 +11206,13 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
11166
11206
  }
11167
11207
  else if (toolTip.Type==5)
11168
11208
  {
11209
+ if (this.FloatTooltip)
11210
+ {
11211
+ this.DrawFloatTooltip({X:x, Y:y, YMove:20/pixelTatio}, toolTip);
11212
+ bHideFloatToolip=false;
11213
+ return;
11214
+ }
11215
+
11169
11216
  var left = x;
11170
11217
  var top = y;
11171
11218
 
@@ -11188,6 +11235,13 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
11188
11235
  }
11189
11236
  else if (toolTip.Type==6) //散点图
11190
11237
  {
11238
+ if (this.FloatTooltip)
11239
+ {
11240
+ this.DrawFloatTooltip({X:x, Y:y, YMove:20/pixelTatio}, toolTip);
11241
+ bHideFloatToolip=false;
11242
+ return;
11243
+ }
11244
+
11191
11245
  var left = x;
11192
11246
  var top = y;
11193
11247
 
@@ -11210,6 +11264,13 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
11210
11264
  }
11211
11265
  else if (toolTip.Type==7) //ChartDrawSVG
11212
11266
  {
11267
+ if (this.FloatTooltip)
11268
+ {
11269
+ this.DrawFloatTooltip({X:x, Y:y, YMove:20/pixelTatio}, toolTip);
11270
+ bHideFloatToolip=false;
11271
+ return;
11272
+ }
11273
+
11213
11274
  var left = x;
11214
11275
  var top = y;
11215
11276
 
@@ -11230,6 +11291,15 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
11230
11291
  this.Tooltip.innerHTML=format.Text;
11231
11292
  this.Tooltip.style.display = "block";
11232
11293
  }
11294
+ else if (toolTip.Type==8) //ChartDrawSVG 新版本
11295
+ {
11296
+ if (this.FloatTooltip)
11297
+ {
11298
+ this.DrawFloatTooltip({X:x, Y:y, YMove:20/pixelTatio}, toolTip);
11299
+ bHideFloatToolip=false;
11300
+ return;
11301
+ }
11302
+ }
11233
11303
 
11234
11304
 
11235
11305
  if (bHideFloatToolip) this.HideFloatTooltip();
@@ -14473,7 +14543,7 @@ function CoordinateInfo()
14473
14543
  this.Font=g_JSChartResource.FrameSplitTextFont; //字体
14474
14544
  this.LineColor=g_JSChartResource.FrameSplitPen; //线段颜色
14475
14545
  this.LineDash=null; //当线段类型==2时 可以设置虚线样式
14476
- this.LineType=1; //线段类型 -1=不画线段 2=虚线, 8,9=集合竞价坐标
14546
+ this.LineType=1; //线段类型 -1=不画线段 0=虚线 1,2=虚线, 3=短线 8,9=集合竞价坐标
14477
14547
  this.LineWidth; //线段宽度
14478
14548
  this.ExtendLine; //延长线长度[ ] { Width:长度 } [0]=左 [1]=右 实例: [null, { Width: 50}];
14479
14549
  this.ExtendData; //扩展属性
@@ -17483,7 +17553,7 @@ function AverageWidthFrame()
17483
17553
  {
17484
17554
  if (lineType==-1) return;
17485
17555
 
17486
- if (lineType==0)
17556
+ if (lineType==0) //直线
17487
17557
  {
17488
17558
  var pixelRatio=GetDevicePixelRatio();
17489
17559
  this.Canvas.strokeStyle=color;
@@ -17529,7 +17599,7 @@ function AverageWidthFrame()
17529
17599
  }
17530
17600
  this.Canvas.stroke();
17531
17601
  }
17532
- else
17602
+ else if (lineType==1 || lineType==2) //虚线
17533
17603
  {
17534
17604
  this.DrawDotLine(left,right,y, color, option);
17535
17605
  }
@@ -43910,203 +43980,6 @@ function ChartMultiText()
43910
43980
  }
43911
43981
  }
43912
43982
 
43913
- // 图标集合 支持横屏
43914
- function ChartMultiSVGIcon()
43915
- {
43916
- this.newMethod=IChartPainting; //派生
43917
- this.newMethod();
43918
- delete this.newMethod;
43919
-
43920
- this.ClassName="ChartMultiSVGIcon";
43921
- this.Icon; //[ {Index:, Value:, Symbol:, Color:, Baseline:, Line:{ Color:, Dash:[虚线点], KData:"H/L", Offset:[5,10], Width:线粗细 } } ]
43922
- this.IconSize={ Max: g_JSChartResource.DRAWICON.Icon.MaxSize, Min:g_JSChartResource.DRAWICON.Icon.MinSize , //图标的最大最小值
43923
- Zoom:{ Type:g_JSChartResource.DRAWICON.Icon.Zoom.Type , Value:g_JSChartResource.DRAWICON.Icon.Zoom.Value } //放大倍数
43924
- };
43925
- this.Family;
43926
- this.Color=g_JSChartResource.DefaultTextColor;
43927
- this.IsHScreen=false;
43928
- this.IconRect=[]; //0=序号,1=区域
43929
-
43930
- this.Draw=function()
43931
- {
43932
- this.IconRect=[];
43933
- if (!this.IsShow || this.ChartFrame.IsMinSize || !this.IsVisible) return;
43934
- if (this.IsShowIndexTitleOnly()) return;
43935
- if (this.IsHideScriptIndex()) return;
43936
- if (!this.Data || this.Data.length<=0) return;
43937
- if (!this.Family || !this.Icon) return;
43938
- if (!IFrameSplitOperator.IsNonEmptyArray(this.Icon)) return;
43939
-
43940
- this.IsHScreen=(this.ChartFrame.IsHScreen===true);
43941
- var xPointCount=this.ChartFrame.XPointCount;
43942
- var offset=this.Data.DataOffset;
43943
- this.DataWidth=this.ChartFrame.DataWidth;
43944
- this.DistanceWidth=this.ChartFrame.DistanceWidth;
43945
-
43946
- var border=this.GetBorder();
43947
- if (this.IsHScreen)
43948
- {
43949
- var left=border.TopEx;
43950
- var right=border.BottomEx;
43951
- }
43952
- else
43953
- {
43954
- var left=border.LeftEx;
43955
- var right=border.RightEx;
43956
- }
43957
-
43958
- var fontSize=this.GetDynamicIconSize(this.DataWidth,this.DistanceWidth,this.IconSize.Max,this.IconSize.Min,this.IconSize.Zoom);
43959
- this.Canvas.font=fontSize+'px '+this.Family;
43960
-
43961
- for(var i=0; i<this.Icon.length; ++i)
43962
- {
43963
- var item=this.Icon[i];
43964
- if (!IFrameSplitOperator.IsNumber(item.Index)) continue;
43965
-
43966
- var index=item.Index-offset;
43967
- if (index>=0 && index<xPointCount)
43968
- {
43969
- var x=this.ChartFrame.GetXFromIndex(index);
43970
- var y=this.ChartFrame.GetYFromData(item.Value);
43971
-
43972
- if (item.Color) this.Canvas.fillStyle = item.Color;
43973
- else this.Canvas.fillStyle = this.Color;
43974
-
43975
- var textWidth=this.Canvas.measureText(item.Symbol).width;
43976
- this.Canvas.textAlign='center';
43977
- var rtIcon=new Rect(x-fontSize/2,y-fontSize/2,fontSize,fontSize);
43978
- if (x+textWidth/2>=right)
43979
- {
43980
- this.Canvas.textAlign='right';
43981
- x+=this.DataWidth/2;
43982
- rtIcon.X=x-fontSize;
43983
- }
43984
- else if (x-textWidth/2<left)
43985
- {
43986
- this.Canvas.textAlign = 'left';
43987
- x-=this.DataWidth/2;
43988
- rtIcon.X=x;
43989
- }
43990
-
43991
- if (item.Baseline==1)
43992
- {
43993
- this.Canvas.textBaseline='top';
43994
- rtIcon.Y=y;
43995
- }
43996
- else if (item.Baseline==2)
43997
- {
43998
- this.Canvas.textBaseline='bottom';
43999
- rtIcon.Y=y-fontSize;
44000
- }
44001
- else
44002
- {
44003
- this.Canvas.textBaseline = 'middle';
44004
- rtIcon.Y=y-fontSize/2;
44005
- }
44006
-
44007
- if (this.IsHScreen)
44008
- {
44009
- this.Canvas.save();
44010
- this.Canvas.translate(y, x);
44011
- this.Canvas.rotate(90 * Math.PI / 180);
44012
- this.Canvas.fillText(item.Symbol,0,0);
44013
- this.Canvas.restore();
44014
- }
44015
- else
44016
- {
44017
- if (IFrameSplitOperator.IsNumber(item.YMove)) y+=item.YMove;
44018
- this.Canvas.fillText(item.Symbol, x, y);
44019
- if (item.Text) this.IconRect.push({ Index:i, Rect:rtIcon , Item:item });
44020
- }
44021
-
44022
- if (item.Line)
44023
- {
44024
- var kItem=this.Data.Data[item.Index];
44025
- var price=item.Line.KData=="H"? kItem.High:kItem.Low;
44026
- var yPrice=this.ChartFrame.GetYFromData(price);
44027
- var yText=y;
44028
- if (Array.isArray(item.Line.Offset) && item.Line.Offset.length==2)
44029
- {
44030
- if (yText>yPrice) //文字在下方
44031
- {
44032
- yText-=item.Line.Offset[1];
44033
- yPrice+=item.Line.Offset[0]
44034
- }
44035
- else if (yText<yPrice)
44036
- {
44037
- yText+=item.Line.Offset[1];
44038
- yPrice-=item.Line.Offset[0]
44039
- }
44040
- }
44041
- this.Canvas.save();
44042
- if (item.Line.Dash) this.Canvas.setLineDash(item.Line.Dash); //虚线
44043
- if (item.Line.Width>0) this.Canvas.lineWidth=item.Line.Width; //线宽
44044
- this.Canvas.strokeStyle = item.Line.Color;
44045
- this.Canvas.beginPath();
44046
- if (this.IsHScreen)
44047
- {
44048
- this.Canvas.moveTo(yText, ToFixedPoint(x));
44049
- this.Canvas.lineTo(yPrice,ToFixedPoint(x));
44050
- }
44051
- else
44052
- {
44053
- this.Canvas.moveTo(ToFixedPoint(x),yText);
44054
- this.Canvas.lineTo(ToFixedPoint(x),yPrice);
44055
- }
44056
-
44057
- this.Canvas.stroke();
44058
- this.Canvas.restore();
44059
- }
44060
- }
44061
- }
44062
- }
44063
-
44064
- this.GetTooltipData=function(x,y,tooltip)
44065
- {
44066
- if (!IFrameSplitOperator.IsNonEmptyArray(this.IconRect)) return false;
44067
- for(var i=0; i<this.IconRect.length; ++i)
44068
- {
44069
- var item=this.IconRect[i];
44070
- if (!item.Rect) continue;
44071
- var rect=item.Rect;
44072
- this.Canvas.beginPath();
44073
- this.Canvas.rect(rect.X,rect.Y,rect.Width,rect.Height);
44074
- if (this.Canvas.isPointInPath(x,y))
44075
- {
44076
- JSConsole.Chart.Log('[ChartMultiSVGIcon::GetTooltipData] icon ', item);
44077
- tooltip.Data=item;
44078
- tooltip.ChartPaint=this;
44079
- tooltip.Type=4; //指标
44080
- return true;
44081
- }
44082
- }
44083
-
44084
- return false;
44085
- }
44086
-
44087
- this.GetMaxMin=function()
44088
- {
44089
- var range={ Min:null, Max:null };
44090
- var xPointCount=this.ChartFrame.XPointCount;
44091
- var start=this.Data.DataOffset;
44092
- var end=start+xPointCount;
44093
-
44094
- for(var i in this.Icon)
44095
- {
44096
- var item=this.Icon[i];
44097
- if (item.Index>=start && item.Index<end)
44098
- {
44099
- if (range.Max==null) range.Max=item.Value;
44100
- else if (range.Max<item.Value) range.Max=item.Value;
44101
- if (range.Min==null) range.Min=item.Value;
44102
- else if (range.Min>item.Value) range.Min=item.Value;
44103
- }
44104
- }
44105
-
44106
- return range;
44107
- }
44108
- }
44109
-
44110
43983
 
44111
43984
  //图标集合(2.0) 支持横屏
44112
43985
  function ChartMultiSVGIconV2()
@@ -44318,6 +44191,7 @@ function ChartMultiSVGIconV2()
44318
44191
  if (IFrameSplitOperator.IsNumber(item.YMove)) y+=item.YMove;
44319
44192
  this.Canvas.fillText(item.Symbol, x, y);
44320
44193
  if (item.Text) this.IconRect.push({ Rect:rtIcon , Item:item, KItem:kItem });
44194
+ else if (IFrameSplitOperator.IsNonEmptyArray(item.AryText)) this.IconRect.push({ Rect:rtIcon , Item:item, KItem:kItem });
44321
44195
  }
44322
44196
 
44323
44197
  if (item.Line)
@@ -45067,6 +44941,7 @@ function ChartDrawSVG()
45067
44941
  tooltip.Data={ Rect:item.Rect, Item:data, Index:item.Index };
45068
44942
  tooltip.ChartPaint=this;
45069
44943
  tooltip.Type=7; //drawsvg
44944
+ if (data.Tooltip && data.Tooltip.Ver==2.0) tooltip.Type=8; //drawsvg 新本版
45070
44945
  return true;
45071
44946
  }
45072
44947
  }
@@ -83856,29 +83731,6 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
83856
83731
  this.DialogSelectRect.Update(sendData);
83857
83732
  }
83858
83733
 
83859
- this.DrawFloatTooltip=function(point,toolTip)
83860
- {
83861
- if (!this.FloatTooltip) return;
83862
-
83863
- this.UpdateFloatTooltip(point, toolTip)
83864
- }
83865
-
83866
- this.UpdateFloatTooltip=function(point, toolTip)
83867
- {
83868
- if (!this.FloatTooltip) return;
83869
-
83870
- var sendData=
83871
- {
83872
- Tooltip:toolTip,
83873
- Point:point,
83874
- Symbol:this.Symbol,
83875
- Name:this.Name,
83876
- DataType:1,
83877
- };
83878
-
83879
- this.FloatTooltip.Update(sendData);
83880
- }
83881
-
83882
83734
  this.UpdateHQFloatTooltip=function(kData)
83883
83735
  {
83884
83736
  if (!this.FloatTooltip) return;
@@ -145385,7 +145237,7 @@ function JSFloatTooltip()
145385
145237
  {
145386
145238
  Left:"UMyChart_Tooltip_Float_Text2_Span", //左对齐
145387
145239
  MarginLeft:'UMyChart_Tooltip_Float_Text3_Span',
145388
- Right:"UMyChart_Tooltip_Float_Text_Span"
145240
+ Right:"UMyChart_Tooltip_Float_Text_Span",
145389
145241
  }
145390
145242
 
145391
145243
  this.AryData=[]; //输出文字信息
@@ -145400,6 +145252,7 @@ function JSFloatTooltip()
145400
145252
  if (option)
145401
145253
  {
145402
145254
  if (IFrameSplitOperator.IsNumber(option.Style)) this.Style=option.Style;
145255
+ if (IFrameSplitOperator.IsNumber(option.MaxRowCount)) this.MaxRowCount=option.MaxRowCount;
145403
145256
  }
145404
145257
  }
145405
145258
 
@@ -145557,6 +145410,34 @@ function JSFloatTooltip()
145557
145410
  {
145558
145411
  this.UpdateKLineInfoTooltip(data);
145559
145412
  }
145413
+ else if (tooltipData.Type==2) //交易指标
145414
+ {
145415
+ this.UpdateTradeIndexTooltip(data);
145416
+ }
145417
+ else if (tooltipData.Type==3) //分时图异动信息
145418
+ {
145419
+ this.UpdateMinuteInfoTooltip(data);
145420
+ }
145421
+ else if (tooltipData.Type==4) //ChartMultiSVGIconV2 图标信息
145422
+ {
145423
+ this.UpdatMultiSVGIconV2Tooltip(data);
145424
+ }
145425
+ else if (tooltipData.Type==5) //ChartOX 信息
145426
+ {
145427
+ this.UpdatChartOXTooltip(data);
145428
+ }
145429
+ else if (tooltipData.Type==6) //散点图
145430
+ {
145431
+ this.UpdatChartScatterPlotTooltip(data);
145432
+ }
145433
+ else if (tooltipData.Type==7) //ChartDrawSVG 老版本 单行
145434
+ {
145435
+ this.UpdateChartDrawSVGTooltip(data);
145436
+ }
145437
+ else if (tooltipData.Type==8) //ChartDrawSVG 新版本
145438
+ {
145439
+ this.UpdateChartDrawSVGV2Tooltip(data);
145440
+ }
145560
145441
  }
145561
145442
  else if (data.DataType==2) //更新实时行情数据
145562
145443
  {
@@ -145624,6 +145505,191 @@ function JSFloatTooltip()
145624
145505
  }
145625
145506
  }
145626
145507
 
145508
+ //ChartDrawSVG 老版本 单行
145509
+ this.UpdateChartDrawSVGTooltip=function(data)
145510
+ {
145511
+ var tooltipData=data.Tooltip;
145512
+ if (!tooltipData.Data || !tooltipData.Data.Item || !tooltipData.Data.Item.Tooltip) return;
145513
+ var item=tooltipData.Data.Item.Tooltip;
145514
+
145515
+ var aryText=[]
145516
+ var rowItem={ Text:"", HTMLTitle:item.Text, Color:this.ValueColor, IsMergeCell:true };
145517
+ aryText.push(rowItem);
145518
+
145519
+ this.AryText=aryText;
145520
+ this.UpdateTableDOM();
145521
+
145522
+ if (data.Point)
145523
+ {
145524
+ var x=data.Point.X;
145525
+ var y=data.Point.Y+data.Point.YMove;
145526
+ this.Show(x, y);
145527
+ }
145528
+ }
145529
+
145530
+ //ChartDrawSVG 新版本
145531
+ this.UpdateChartDrawSVGV2Tooltip=function(data)
145532
+ {
145533
+ var tooltipData=data.Tooltip;
145534
+ if (!tooltipData.Data || !tooltipData.Data.Item || !tooltipData.Data.Item.Tooltip) return;
145535
+ var aryData=tooltipData.Data.Item.Tooltip.AryText;
145536
+ if (!IFrameSplitOperator.IsNonEmptyArray(aryData)) return;
145537
+ var aryText=[];
145538
+ for(var i=0;i<aryData.length;++i)
145539
+ {
145540
+ var item=aryData[i];
145541
+ var rowItem={ Title:"", Text:"", Color:this.ValueColor, ClassName:this.ValueAlign.MarginLeft };
145542
+ if (item.TextColor) rowItem.Color=item.TextColor;
145543
+ if (item.Title) rowItem.Title=item.Title;
145544
+ if (item.Text) rowItem.Text=item.Text;
145545
+
145546
+ aryText.push(rowItem);
145547
+ }
145548
+
145549
+ this.AryText=aryText;
145550
+
145551
+ this.UpdateTableDOM();
145552
+
145553
+ if (data.Point)
145554
+ {
145555
+ var x=data.Point.X;
145556
+ var y=data.Point.Y+data.Point.YMove;
145557
+ this.Show(x, y);
145558
+ }
145559
+ }
145560
+
145561
+ //交易指标
145562
+ this.UpdateTradeIndexTooltip=function(data)
145563
+ {
145564
+ var tooltipData=data.Tooltip;
145565
+ if (!tooltipData.Data || !tooltipData.Data.Data) return;
145566
+
145567
+ var item=tooltipData.Data.Data;
145568
+ var kItem=item.KData;
145569
+ var aryText=[];
145570
+
145571
+ var rowItem={ Title:"日期",Text:IFrameSplitOperator.FormatDateString(kItem.Date,"YYYY-MM-DD"), Color:this.ValueColor };
145572
+ aryText.push(rowItem);
145573
+
145574
+ if (IFrameSplitOperator.IsNumber(kItem.Time))
145575
+ {
145576
+ var format="HH:MM";
145577
+ var rowItem={ Title:"时间",Text:IFrameSplitOperator.FormatTimeString(kItem.Time,format), Color:this.ValueColor };
145578
+ aryText.push(rowItem);
145579
+ }
145580
+
145581
+ var rowItem={ Title:"指标名称:", Text:`${item.Name}${item.Param}`, Color:this.ValueColor };
145582
+ aryText.push(rowItem);
145583
+
145584
+ var rowItem={ Title:"买卖方向:", Text:`${item.Type==1?"买入":"卖出"}`, Color:item.Type==1?this.UpColor:this.DownColor };
145585
+ aryText.push(rowItem);
145586
+
145587
+ var rowItem={ };
145588
+
145589
+ this.AryText=aryText;
145590
+
145591
+ this.UpdateTableDOM();
145592
+
145593
+ if (data.Point)
145594
+ {
145595
+ var x=data.Point.X;
145596
+ var y=data.Point.Y+data.Point.YMove;
145597
+ this.Show(x, y);
145598
+ }
145599
+ }
145600
+
145601
+ //分时图异动信息
145602
+ this.UpdateMinuteInfoTooltip=function(data)
145603
+ {
145604
+ var tooltipData=data.Tooltip;
145605
+ if (!tooltipData.Data || !tooltipData.Data.Data || !tooltipData.Data.Data.Item) return;
145606
+ var item=tooltipData.Data.Data.Item;
145607
+
145608
+ var aryText=[];
145609
+ var rowItem={ Title:"日期",Text:IFrameSplitOperator.FormatDateString(item.Date,"YYYY-MM-DD"), Color:this.ValueColor };
145610
+ aryText.push(rowItem);
145611
+
145612
+ var format="HH:MM";
145613
+ var rowItem={ Title:"时间",Text:IFrameSplitOperator.FormatTimeString(item.Time,format), Color:this.ValueColor };
145614
+ aryText.push(rowItem);
145615
+
145616
+ var rowItem={ Title:"异动", Text:item.Title, Color:this.ValueColor };
145617
+ aryText.push(rowItem);
145618
+
145619
+ this.AryText=aryText;
145620
+ this.UpdateTableDOM();
145621
+
145622
+ if (data.Point)
145623
+ {
145624
+ var x=data.Point.X;
145625
+ var y=data.Point.Y+data.Point.YMove;
145626
+ this.Show(x, y);
145627
+ }
145628
+ }
145629
+
145630
+ //ChartMultiSVGIconV2 图标信息
145631
+ this.UpdatMultiSVGIconV2Tooltip=function(data)
145632
+ {
145633
+ var tooltipData=data.Tooltip;
145634
+ if (!tooltipData.Data || !tooltipData.Data.Item) return;
145635
+
145636
+ var item=tooltipData.Data.Item;
145637
+ var aryText=[];
145638
+
145639
+ var rowItem={ Text:"", HTMLTitle:item.Text, Color:this.ValueColor, IsMergeCell:true };
145640
+ aryText.push(rowItem);
145641
+
145642
+ this.AryText=aryText;
145643
+ this.UpdateTableDOM();
145644
+
145645
+ if (data.Point)
145646
+ {
145647
+ var x=data.Point.X;
145648
+ var y=data.Point.Y+data.Point.YMove;
145649
+ this.Show(x, y);
145650
+ }
145651
+ }
145652
+
145653
+ //ChartOX 信息
145654
+ this.UpdatChartOXTooltip=function(data)
145655
+ {
145656
+ var tooltipData=data.Tooltip;
145657
+ if (!tooltipData.Data || !tooltipData.Data.Data) return;
145658
+
145659
+ var item=tooltipData.Data.Data;
145660
+ var period=this.HQChart.Period;
145661
+ var aryText=[];
145662
+ if (ChartData.IsDayPeriod(period, true))
145663
+ {
145664
+ var strStartDate=IFrameSplitOperator.FormatDateString(item.Start.Date,"YYYY-MM-DD");
145665
+ var strEndDate=IFrameSplitOperator.FormatDateString(item.End.Date,"YYYY-MM-DD");
145666
+
145667
+ aryText.push({ Title:"起始时间",Text:strStartDate, Color:this.ValueColor });
145668
+ aryText.push({ Title:"结束时间",Text:strEndDate, Color:this.ValueColor });
145669
+ }
145670
+ else if (ChartData.IsMinutePeriod(period, true))
145671
+ {
145672
+ var strStartDate=IFrameSplitOperator.FormatDateString(item.Start.Date);
145673
+ var strStartTime=IFrameSplitOperator.FormatTimeString(item.Start.Time,"HH:MM");
145674
+
145675
+ var strEndDate=IFrameSplitOperator.FormatDateString(item.End.Date);
145676
+ var strEndTime=IFrameSplitOperator.FormatTimeString(item.End.Time,"HH:MM");
145677
+
145678
+ aryText.push({ Title:"起始时间",Text:`${strStartDate} ${strStartTime}`, Color:this.ValueColor });
145679
+ aryText.push({ Title:"结束时间",Text:`${strEndDate} ${strEndTime}`, Color:this.ValueColor });
145680
+ }
145681
+
145682
+ this.AryText=aryText;
145683
+ this.UpdateTableDOM();
145684
+
145685
+ if (data.Point)
145686
+ {
145687
+ var x=data.Point.X;
145688
+ var y=data.Point.Y+data.Point.YMove;
145689
+ this.Show(x, y);
145690
+ }
145691
+ }
145692
+
145627
145693
  this.UpdateTableDOM=function()
145628
145694
  {
145629
145695
  var index=0;
@@ -145632,10 +145698,16 @@ function JSFloatTooltip()
145632
145698
  var outItem=this.AryText[index];
145633
145699
  var item=this.AryData[index];
145634
145700
 
145635
- item.TitleSpan.innerText=outItem.Title;
145701
+ if (outItem.HTMLTitle) item.TitleSpan.innerHTML=outItem.HTMLTitle
145702
+ else item.TitleSpan.innerText=outItem.Title;
145703
+
145636
145704
  item.TitleSpan.style.color=this.TextColor;
145637
- item.TextSpan.innerText=outItem.Text;
145705
+
145706
+ if (outItem.HTMLText) item.TextSpan.innerHTML=outItem.HTMLText
145707
+ else item.TextSpan.innerText=outItem.Text;
145708
+
145638
145709
  item.TextSpan.style.color=outItem.Color;
145710
+ item.TextTd.style.color=outItem.Color;
145639
145711
 
145640
145712
  if (outItem.ClassName)
145641
145713
  {
@@ -145645,9 +145717,21 @@ function JSFloatTooltip()
145645
145717
  {
145646
145718
  if (item.TextSpan.className!=this.ValueAlign.Right) item.TextSpan.className=this.ValueAlign.Right;
145647
145719
  }
145720
+
145721
+ if (outItem.IsMergeCell) //合并单元格
145722
+ {
145723
+ item.TitleTd.colspan=2;
145724
+ item.TextTd.style.display="none";
145725
+ }
145726
+ else
145727
+ {
145728
+ if (item.TitleTd.colspan!=1) item.TitleTd.colspan=1;
145729
+ item.TextTd.style.display="";
145730
+ }
145648
145731
 
145649
145732
  item.Tr.style.display="";
145650
- if (item.Tr2) item.Tr2.style.display="";
145733
+ if (item.Tr2) item.Tr2.style.display="none";
145734
+
145651
145735
  }
145652
145736
 
145653
145737
  for( ; index<this.MaxRowCount; ++index)
@@ -145755,6 +145839,13 @@ function JSFloatTooltip()
145755
145839
  }
145756
145840
  }
145757
145841
 
145842
+ var event=this.HQChart.GetEventCallback(JSCHART_EVENT_ID.ON_FORMAT_KLINE_INFO_FLOAT_TOOLTIP);
145843
+ if (event && event.Callback)
145844
+ {
145845
+ var sendData={ AryText:aryText, Data:data, HQChart:this.HQChart };
145846
+ event.Callback(event, sendData, this);
145847
+ }
145848
+
145758
145849
  this.AryText=aryText;
145759
145850
 
145760
145851
  this.UpdateTableDOM();
@@ -145767,6 +145858,36 @@ function JSFloatTooltip()
145767
145858
  }
145768
145859
  }
145769
145860
 
145861
+ this.UpdatChartScatterPlotTooltip=function(data)
145862
+ {
145863
+ var tooltipData=data.Tooltip;
145864
+ if (!tooltipData.Data || !tooltipData.Data.Data || !tooltipData.Data.Data.Tooltip) return;
145865
+ var aryData=tooltipData.Data.Data.Tooltip;
145866
+ var aryText=[]; //输出内容
145867
+
145868
+ for(var i=0;i<aryData.length;++i)
145869
+ {
145870
+ var item=aryData[i];
145871
+ if (!item.Text && !item.Title) continue;
145872
+ var rowItem={ Title:"", Text:"", Color:this.ValueColor };
145873
+ if (item.Title) rowItem.Title=item.Title;
145874
+ if (item.Text) rowItem.Text=item.Text;
145875
+ if (item.TextColor) rowItem.Color=item.TextColor;
145876
+
145877
+ aryText.push(rowItem);
145878
+ }
145879
+
145880
+ this.AryText=aryText;
145881
+ this.UpdateTableDOM();
145882
+
145883
+ if (data.Point)
145884
+ {
145885
+ var x=data.Point.X;
145886
+ var y=data.Point.Y+data.Point.YMove;
145887
+ this.Show(x, y);
145888
+ }
145889
+ }
145890
+
145770
145891
 
145771
145892
  /////////////////////////////////////////////////////////////////////////////////////////////
145772
145893
  // 公告数据格式化
@@ -147164,7 +147285,7 @@ function HQChartScriptWorker()
147164
147285
 
147165
147286
 
147166
147287
 
147167
- var HQCHART_VERSION="1.1.14055";
147288
+ var HQCHART_VERSION="1.1.14063";
147168
147289
 
147169
147290
  function PrintHQChartVersion()
147170
147291
  {