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.
- package/lib/umychart.vue.js +41 -31
- package/package.json +1 -1
- package/src/jscommon/umychart.DialogTooltip.js +273 -4
- package/src/jscommon/umychart.js +76 -224
- package/src/jscommon/umychart.resource/css/tools.css +6 -1
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +77 -225
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +350 -229
|
@@ -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) //
|
|
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.
|
|
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
|
-
|
|
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.
|
|
147288
|
+
var HQCHART_VERSION="1.1.14063";
|
|
147168
147289
|
|
|
147169
147290
|
function PrintHQChartVersion()
|
|
147170
147291
|
{
|