hqchart 1.1.13905 → 1.1.13911

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.
@@ -4464,6 +4464,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4464
4464
 
4465
4465
  if (IFrameSplitOperator.IsNumber(item.PriceFormatType)) chart.ChartCorssCursor.StringFormatY.PriceFormatType=item.PriceFormatType;
4466
4466
  if (IFrameSplitOperator.IsNumber(item.DataFormatType)) chart.ChartCorssCursor.StringFormatY.DataFormatType=item.DataFormatType;
4467
+ if (IFrameSplitOperator.IsBool(item.EnableKeyboard)) chart.ChartCorssCursor.EnableKeyboard=item.EnableKeyboard;
4467
4468
 
4468
4469
  }
4469
4470
 
@@ -5687,6 +5688,9 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
5687
5688
  if (option.EnableDrawToolDialogV2===true) chart.InitalDrawToolDialog();
5688
5689
  if (option.EnableModifyDrawDialogV2===true) chart.InitalModifyDrawDialog();
5689
5690
 
5691
+ //K线tooltip
5692
+ if (option.EnableTooltipDialog===true) chart.InitalTooltipDialog();
5693
+
5690
5694
  //注册事件
5691
5695
  if (option.EventCallback)
5692
5696
  {
@@ -6988,6 +6992,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
6988
6992
  this.DialogDrawTool; //画图工具
6989
6993
  this.DialogModifyDraw; //画图修改
6990
6994
 
6995
+ this.DialogTooltip; //tooltip信息
6996
+
6991
6997
 
6992
6998
  this.ClearStockCache=function()
6993
6999
  {
@@ -7011,6 +7017,15 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
7011
7017
  this.DialogDrawTool.Create();
7012
7018
  }
7013
7019
 
7020
+ this.InitalTooltipDialog=function()
7021
+ {
7022
+ if (this.DialogTooltip) return;
7023
+
7024
+ this.DialogTooltip=new JSDialogTooltip();
7025
+ this.DialogTooltip.Inital(this);
7026
+ this.DialogTooltip.Create();
7027
+ }
7028
+
7014
7029
  this.InitalModifyDrawDialog=function()
7015
7030
  {
7016
7031
  if ( this.DialogModifyDraw) return;
@@ -7067,6 +7082,22 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
7067
7082
  this.DialogModifyDraw.Close();
7068
7083
  }
7069
7084
 
7085
+ this.IsShowTooltipDialog=function()
7086
+ {
7087
+ if (!this.DialogTooltip) return false;
7088
+
7089
+ return this.DialogTooltip.IsShow();
7090
+ }
7091
+
7092
+ this.CloseTooltipDialog=function()
7093
+ {
7094
+ if (!this.DialogTooltip) return;
7095
+
7096
+ this.DialogTooltip.Close();
7097
+ }
7098
+
7099
+
7100
+
7070
7101
  //obj={ Element:, Canvas: }
7071
7102
  this.SetCorssCursorElement=function(obj)
7072
7103
  {
@@ -9436,6 +9467,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
9436
9467
  {
9437
9468
  this.ChartCorssCursor.Canvas=this.Canvas;
9438
9469
  }
9470
+
9471
+ this.DrawTooltipDialog();
9439
9472
  }
9440
9473
 
9441
9474
  ptPosition=this.Frame.PtInFrame(this.LastPoint.X, this.LastPoint.Y);
@@ -9885,6 +9918,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
9885
9918
  {
9886
9919
  this.ChartCorssCursor.Canvas=this.Canvas;
9887
9920
  }
9921
+
9922
+ this.DrawTooltipDialog();
9888
9923
  }
9889
9924
 
9890
9925
  var ptPosition=null; //鼠标位置 null 无效 -1 在外面 >=0 对应的指标窗口中ID
@@ -10407,6 +10442,15 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
10407
10442
  }
10408
10443
 
10409
10444
  var keyID = e.keyCode ? e.keyCode :e.which;
10445
+
10446
+ var draw=false;
10447
+ if (this.ChartCorssCursor && this.ChartCorssCursor.OnKeyDown) //十字光标 隐藏显示
10448
+ {
10449
+ var sendData={ e:e, KeyID:keyID, Draw:false, PreventDefault:false };
10450
+ this.ChartCorssCursor.OnKeyDown(sendData);
10451
+ draw=sendData.Draw;
10452
+ }
10453
+
10410
10454
  switch(keyID)
10411
10455
  {
10412
10456
  case 37: //left
@@ -10549,6 +10593,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
10549
10593
  return;
10550
10594
  }
10551
10595
 
10596
+ if (draw) this.DrawDynamicInfo();
10597
+
10552
10598
  //不让滚动条滚动
10553
10599
  if(e.preventDefault) e.preventDefault();
10554
10600
  else e.returnValue = false;
@@ -10856,6 +10902,11 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
10856
10902
  this.ShowTooltip(this.LastPoint.X/pixelTatio,this.LastPoint.Y/pixelTatio,toolTip);
10857
10903
  }
10858
10904
 
10905
+ this.DrawTooltipDialog=function()
10906
+ {
10907
+
10908
+ }
10909
+
10859
10910
  this.ShowTooltip=function(x,y,toolTip)
10860
10911
  {
10861
10912
  if (!this.IsShowTooltip) return;
@@ -11965,6 +12016,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
11965
12016
  else if (option.Draw==true) this.Draw(); //是否立即重绘
11966
12017
 
11967
12018
  if (this.PopMinuteChart) this.PopMinuteChart.ReloadResource(option);
12019
+ if (this.DialogTooltip) this.DialogTooltip.ReloadResource(option);
11968
12020
  }
11969
12021
 
11970
12022
  this.ReloadBorder=function(option) //根据页面缩放调整对应边框的尺长
@@ -13954,6 +14006,19 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
13954
14006
  item.Status=OVERLAY_STATUS_ID.STATUS_NONE_ID;
13955
14007
  }
13956
14008
  }
14009
+
14010
+ //十字光标状态变动
14011
+ this.OnChangeCorssCursorStatus=function(data, obj)
14012
+ {
14013
+ if (data.Type==1)
14014
+ {
14015
+ if (!data.IsShowCorss) //十字光标隐藏
14016
+ {
14017
+ this.HideTooltip();
14018
+ this.CloseTooltipDialog();
14019
+ }
14020
+ }
14021
+ }
13957
14022
  }
13958
14023
 
13959
14024
  function GetDevicePixelRatio()
@@ -17464,6 +17529,20 @@ function MinuteFrame()
17464
17529
 
17465
17530
  this.NightDayConfig=CloneData(g_JSChartResource.Minute.NightDay);
17466
17531
 
17532
+
17533
+ this.MinuteFrame_ReloadResource=this.ReloadResource;
17534
+
17535
+
17536
+ this.ReloadResource=function(resource)
17537
+ {
17538
+ this.MinuteFrame_ReloadResource(resource);
17539
+
17540
+ //集合竞价配色修改
17541
+ this.BeforeBGColor=g_JSChartResource.Minute.Before.BGColor;
17542
+ this.AfterBGColor=g_JSChartResource.Minute.After.BGColor;
17543
+ this.MultiDayBorderPen=g_JSChartResource.MultiDayBorderPen;
17544
+ }
17545
+
17467
17546
  this.DrawFrame=function()
17468
17547
  {
17469
17548
  if (!this.IsMinSize)
@@ -46952,6 +47031,22 @@ function MinuteLeftTooltipPaint()
46952
47031
  if (IFrameSplitOperator.IsNumber(option.FixedWidth)) this.FixedWidth=option.FixedWidth;
46953
47032
  }
46954
47033
 
47034
+ this.ReloadResource=function(resource)
47035
+ {
47036
+ this.BorderColor=g_JSChartResource.PCTooltipPaint.BorderColor; //边框颜色
47037
+ this.BGColor=g_JSChartResource.PCTooltipPaint.BGColor; //背景色
47038
+ this.TitleColor=g_JSChartResource.PCTooltipPaint.TitleColor; //标题颜色
47039
+ this.DateTimeColor=g_JSChartResource.PCTooltipPaint.DateTimeColor; //日期时间颜色
47040
+ this.VolColor=g_JSChartResource.PCTooltipPaint.VolColor; //标题成交量
47041
+ this.AmountColor=g_JSChartResource.PCTooltipPaint.AmountColor; //成交金额
47042
+
47043
+ this.UpColor=g_JSChartResource.UpTextColor;
47044
+ this.DownColor=g_JSChartResource.DownTextColor;
47045
+ this.UnchagneColor=g_JSChartResource.UnchagneTextColor;
47046
+
47047
+ this.Font=g_JSChartResource.PCTooltipPaint.TitleFont;
47048
+ }
47049
+
46955
47050
  this.IsEnableDraw=function()
46956
47051
  {
46957
47052
  if (!this.HQChart || !this.HQChart.TitlePaint || !this.HQChart.TitlePaint[0]) return false;
@@ -54608,6 +54703,9 @@ function ChartCorssCursor()
54608
54703
  this.IsShowClose=false; //Y轴始终显示收盘价
54609
54704
  this.ClientPos=-1;
54610
54705
  this.CallAcutionXOperator;
54706
+
54707
+ this.EnableKeyboard=false; //是否支持键盘隐藏显示
54708
+ this.OnChangeStatusCallback; //状态切换以后回调
54611
54709
 
54612
54710
 
54613
54711
  this.RightButton=
@@ -55786,6 +55884,29 @@ function ChartCorssCursor()
55786
55884
 
55787
55885
  this.Status=1;
55788
55886
  }
55887
+
55888
+ //data={ e:e, PreventDefault:false, KeyID, Draw:是否需要重绘 }
55889
+ this.OnKeyDown=function(data)
55890
+ {
55891
+ if (!this.EnableKeyboard) return;
55892
+
55893
+ var keyID=data.KeyID;
55894
+ if (keyID==27) //ESC 隐藏十字线
55895
+ {
55896
+ if (!this.IsShowCorss) return;
55897
+ this.IsShowCorss=false;
55898
+ data.Draw=true;
55899
+ if (this.OnChangeStatusCallback) this.OnChangeStatusCallback({ Type:1, IsShowCorss:this.IsShowCorss }, this);
55900
+ }
55901
+ else if (keyID==37 || keyID==39) //left, right 显示十字线
55902
+ {
55903
+ if (this.IsShowCorss) return;
55904
+ this.IsShowCorss=true;
55905
+ data.Draw=true;
55906
+ if (this.OnChangeStatusCallback) this.OnChangeStatusCallback({ Type:1, IsShowCorss:this.IsShowCorss }, this);
55907
+ }
55908
+ }
55909
+
55789
55910
  }
55790
55911
 
55791
55912
 
@@ -72836,6 +72957,18 @@ function JSChartResource()
72836
72957
  LineHeight:25 //单行高度
72837
72958
  };
72838
72959
 
72960
+ this.DialogTooltip=
72961
+ {
72962
+ BGColor:'rgb(250,250,250)', //背景色
72963
+ BorderColor:'rgb(20,20,20)', //边框颜色
72964
+ TitleColor:'rgb(0,0,0)', //标题颜色
72965
+ VolColor:"rgb(255, 185, 15)", //标题成交量
72966
+ AmountColor:"rgb(79, 79, 79)", //成交金额
72967
+ DateTimeColor:'rgb(60,60,60)',
72968
+ TurnoverRateColor:'rgb(43,54,69)', //换手率
72969
+ PositionColor:"rgb(43,54,69)" //持仓
72970
+ }
72971
+
72839
72972
  //弹幕
72840
72973
  this.Barrage= {
72841
72974
  Font:16*GetDevicePixelRatio() +'px 微软雅黑', //字体
@@ -73818,6 +73951,21 @@ function JSChartResource()
73818
73951
  if (item.AmountColor) this.PCTooltipPaint.AmountColor=item.AmountColor;
73819
73952
  }
73820
73953
 
73954
+ if (style.DialogTooltip)
73955
+ {
73956
+ var item=style.DialogTooltip;
73957
+ if (item.BGColor) this.DialogTooltip.BGColor=item.BGColor;
73958
+ if (item.BorderColor) this.DialogTooltip.BorderColor=item.BorderColor;
73959
+ if (item.TitleColor) this.DialogTooltip.TitleColor=item.TitleColor;
73960
+ if (item.DateTimeColor) this.DialogTooltip.DateTimeColor=item.DateTimeColor;
73961
+
73962
+ if (item.VolColor) this.DialogTooltip.VolColor=item.VolColor;
73963
+ if (item.AmountColor) this.DialogTooltip.AmountColor=item.AmountColor;
73964
+ if (item.TurnoverRateColor) this.DialogTooltip.TurnoverRateColor=item.TurnoverRateColor;
73965
+ if (item.PositionColor) this.DialogTooltip.PositionColor=item.PositionColor;
73966
+
73967
+ }
73968
+
73821
73969
  if (style.MinuteInfo)
73822
73970
  {
73823
73971
  var item=style.MinuteInfo;
@@ -74761,6 +74909,20 @@ function JSChartLocalization()
74761
74909
  ['DivTooltip-Position', {CN:'持仓:', EN:'Position:', TC:'持倉'}],
74762
74910
  ['DivTooltip-Price', {CN:'价格:', EN:'Open:', TC:'價格'}],
74763
74911
 
74912
+ ['DialogTooltip-Date', {CN:'日期', EN:'Date', TC:'日期'}],
74913
+ ['DialogTooltip-Time', {CN:'时间', EN:'Time', TC:'時間'}],
74914
+ ['DialogTooltip-Open', {CN:'开盘价', EN:'Open', TC:'開盤價'}],
74915
+ ['DialogTooltip-High', {CN:'最高价', EN:'High', TC:'最高價'}],
74916
+ ['DialogTooltip-Low', {CN:'最低价', EN:'Low', TC:'最低價'}],
74917
+ ['DialogTooltip-Close', {CN:'收盘价', EN:'Close', TC:'收盤價'}],
74918
+ ['DialogTooltip-Increase', {CN:'涨幅', EN:'Increase', TC:'漲幅'}],
74919
+ ['DialogTooltip-Vol', {CN:'成交量', EN:'Volume', TC:'數量'}],
74920
+ ['DialogTooltip-Amount', {CN:'成交额', EN:'Amount', TC:'金額'}],
74921
+ ['DialogTooltip-Exchange', {CN:'换手率', EN:'Exchange', TC:'換手'}],
74922
+ ['DialogTooltip-Position', {CN:'持仓量', EN:'Position', TC:'持倉'}],
74923
+ ['DialogTooltip-Price', {CN:'价格', EN:'Open', TC:'價格'}],
74924
+ ['DialogTooltip-Amplitude', {CN:'振幅', EN:'amplitude', TC:'價格'}],
74925
+
74764
74926
  //走势图PC tooltip
74765
74927
  ['PCTooltip-Date', {CN:'日期', EN:'Date', TC:"日期"}],
74766
74928
  ['PCTooltip-Time', {CN:'时间', EN:'Time', TC:"時間"}],
@@ -76511,6 +76673,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
76511
76673
  this.ChartCorssCursor.StringFormatY.LanguageID=this.LanguageID;
76512
76674
  this.ChartCorssCursor.StringFormatY.ExtendChartPaint=this.ExtendChartPaint;
76513
76675
  this.ChartCorssCursor.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
76676
+ this.ChartCorssCursor.OnChangeStatusCallback=(data, obj)=>{ this.OnChangeCorssCursorStatus(data,obj); }
76514
76677
 
76515
76678
  //创建等待提示
76516
76679
  this.ChartSplashPaint = new ChartSplashPaint();
@@ -83045,6 +83208,42 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
83045
83208
 
83046
83209
  this.Draw();
83047
83210
  }
83211
+
83212
+ this.DrawTooltipDialog=function()
83213
+ {
83214
+ if (!this.DialogTooltip) return;
83215
+
83216
+ this.UpdateTooltipDialog();
83217
+ }
83218
+
83219
+ this.UpdateTooltipDialog=function()
83220
+ {
83221
+ if (!this.DialogTooltip) return false;
83222
+ if (!this.ChartCorssCursor) return false;
83223
+
83224
+ var kItem=null;
83225
+ if (this.ChartCorssCursor.ClientPos>=0)
83226
+ {
83227
+ var hisData=this.ChartOperator_Temp_GetHistroyData();;
83228
+ if (!hisData) return false; //数据还没有到达
83229
+
83230
+ var dataIndex=hisData.DataOffset+this.ChartCorssCursor.CursorIndex;
83231
+ var kItem=hisData.Data[dataIndex];
83232
+ }
83233
+
83234
+ var sendData=
83235
+ {
83236
+ ClientPos:this.ChartCorssCursor.ClientPos, //位置
83237
+ IsShowCorss:this.ChartCorssCursor.IsShowCorss, //是否显示十字线
83238
+ KItem:kItem,
83239
+ Symbol:this.Symbol, Name:this.Name,
83240
+ };
83241
+
83242
+
83243
+ this.DialogTooltip.Update(sendData);
83244
+
83245
+ return true;
83246
+ }
83048
83247
  }
83049
83248
 
83050
83249
  //API 返回数据 转化为array[]
@@ -84725,6 +84924,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
84725
84924
  }
84726
84925
 
84727
84926
  var keyID = e.keyCode ? e.keyCode :e.which;
84927
+
84728
84928
  switch(keyID)
84729
84929
  {
84730
84930
  case 37: //left
@@ -125079,7 +125279,19 @@ function GetBlackStyle()
125079
125279
  VolColor:"rgb(161,154,3)", //标题成交量
125080
125280
  AmountColor:"rgb(161,154,3)", //成交金额
125081
125281
  },
125082
-
125282
+
125283
+ DialogTooltip:
125284
+ {
125285
+ BGColor:'rgb(20,20,20)', //背景色
125286
+ BorderColor:'rgb(170,170,170)', //边框颜色
125287
+ TitleColor:'rgb(210,210,210)', //标题颜色
125288
+ VolColor:"rgb(255, 185, 15)", //标题成交量
125289
+ AmountColor:"rgb(210,210,210)", //成交金额
125290
+ DateTimeColor:'rgb(210,210,210)',
125291
+ TurnoverRateColor:'rgb(43,54,69)', //换手率
125292
+ PositionColor:"rgb(43,54,69)" //持仓
125293
+ },
125294
+
125083
125295
  //走势图 信息地雷
125084
125296
  MinuteInfo:
125085
125297
  {
@@ -142912,7 +143124,428 @@ JSPopKeyboard.GetOption=function()
142912
143124
 
142913
143125
 
142914
143126
 
142915
- ///////////////////////////////////////////////////////////////////////////////////
143127
+ /*
143128
+ Copyright (c) 2018 jones
143129
+
143130
+ http://www.apache.org/licenses/LICENSE-2.0
143131
+
143132
+ 开源项目 https://github.com/jones2000/HQChart
143133
+
143134
+ jones_2000@163.com
143135
+
143136
+ 内置K线提示信息
143137
+ */
143138
+
143139
+
143140
+ function JSDialogTooltip()
143141
+ {
143142
+ this.DivDialog=null;
143143
+ this.DragTitle=null;
143144
+ this.TitleBox=null; //{ DivTitle, DivName, DivName }
143145
+
143146
+ this.HQChart=null;
143147
+
143148
+ this.UpColor=g_JSChartResource.UpTextColor;
143149
+ this.DownColor=g_JSChartResource.DownTextColor;
143150
+ this.UnchangeColor=g_JSChartResource.UnchagneTextColor;
143151
+
143152
+ this.TitleColor=g_JSChartResource.DialogTooltip.TitleColor;
143153
+ this.TitleBGColor=g_JSChartResource.DialogTooltip.TitleBGColor;
143154
+ this.BGColor=g_JSChartResource.DialogTooltip.BGColor;
143155
+ this.BorderColor=g_JSChartResource.DialogTooltip.BorderColor;
143156
+
143157
+ this.VolColor=g_JSChartResource.DialogTooltip.VolColor;
143158
+ this.AmountColor=g_JSChartResource.DialogTooltip.AmountColor;
143159
+ this.TurnoverRateColor=g_JSChartResource.DialogTooltip.TurnoverRateColor;
143160
+ this.PositionColor=g_JSChartResource.DialogTooltip.PositionColor;
143161
+ this.DateTimeColor=g_JSChartResource.DialogTooltip.DateTimeColor;
143162
+ this.LanguageID=JSCHART_LANGUAGE_ID.LANGUAGE_CHINESE_ID;
143163
+ this.MaxRowCount=10;
143164
+
143165
+ this.AryData=[];
143166
+ this.AryText=[];
143167
+
143168
+ this.KItemCache=null;
143169
+ this.KItemCacheID=null;
143170
+
143171
+ this.Inital=function(hqchart)
143172
+ {
143173
+ this.HQChart=hqchart;
143174
+ }
143175
+
143176
+ this.Destroy=function()
143177
+ {
143178
+ this.AryData=[];
143179
+ this.AryText=[];
143180
+ this.KItemCache=null;
143181
+ this.KItemCacheID=null;
143182
+
143183
+ if (this.DivDialog)
143184
+ {
143185
+ document.body.removeChild(this.DivDialog);
143186
+ this.DivDialog=null;
143187
+ }
143188
+ }
143189
+
143190
+ this.OnClickColseButton=function(e)
143191
+ {
143192
+ this.Close(e);
143193
+
143194
+ if (this.HQChart && this.HQChart.ChartCorssCursor)
143195
+ {
143196
+ var chart=this.HQChart.ChartCorssCursor;
143197
+ if (!chart.IsShowCorss) return;
143198
+
143199
+ chart.IsShowCorss=false;
143200
+ this.HQChart.Draw();
143201
+ this.HQChart.SetFocus();
143202
+ }
143203
+ }
143204
+
143205
+ this.Create=function()
143206
+ {
143207
+ var divDom=document.createElement("div");
143208
+ divDom.className='UMyChart_Tooltip_Dialog_Div';
143209
+
143210
+ var divTitle=document.createElement("div");
143211
+ divTitle.className='UMyChart_Tooltip_Title_Div';
143212
+ divTitle.onmousedown=(e)=>{ this.OnMouseDownTitle(e);}
143213
+
143214
+ var divName=document.createElement("div");
143215
+ divName.className='UMyChart_Tooltip_Name_Div';
143216
+ divName.innerText="----";
143217
+ divTitle.appendChild(divName);
143218
+
143219
+ var divClose=document.createElement("div");
143220
+ divClose.className='UMyChart_Tooltip_Close_Div';
143221
+ divClose.innerText="x";
143222
+ divClose.onmousedown=(e)=>{ this.OnClickColseButton(e); }
143223
+ divTitle.appendChild(divClose);
143224
+
143225
+ divDom.appendChild(divTitle);
143226
+
143227
+ var table=document.createElement("table");
143228
+ table.className="UMyChart_Tooltip_Table";
143229
+ divDom.appendChild(table);
143230
+
143231
+ var tbody=document.createElement("tbody");
143232
+ tbody.className="UMyChart_Tooltip_Tbody";
143233
+ table.appendChild(tbody);
143234
+
143235
+ this.AryData=[];
143236
+ for(var i=0;i<this.MaxRowCount;++i)
143237
+ {
143238
+ var rowItem={ Tr:null, TitleSpan:null, TextSpan:null };
143239
+
143240
+ var trDom=document.createElement("tr");
143241
+ trDom.className='UMyChart_Tooltip_Group_Tr';
143242
+ tbody.appendChild(trDom);
143243
+ rowItem.Tr=trDom;
143244
+
143245
+ var tdDom=document.createElement("td");
143246
+ tdDom.className="UMyChart_Tooltip_Title_Td"; //标题
143247
+ trDom.appendChild(tdDom);
143248
+
143249
+ var spanDom=document.createElement("span");
143250
+ spanDom.className='UMyChart_Tooltip_Title_Span';
143251
+ spanDom.innerText='标题';
143252
+ tdDom.appendChild(spanDom);
143253
+ rowItem.TitleSpan=spanDom;
143254
+
143255
+ var tdDom=document.createElement("td");
143256
+ tdDom.className="UMyChart_Tooltip_Text_Td"; //数值
143257
+ trDom.appendChild(tdDom);
143258
+
143259
+ var spanDom=document.createElement("span");
143260
+ spanDom.className='UMyChart_Tooltip_Text_Span';
143261
+ spanDom.innerText='数值';
143262
+ tdDom.appendChild(spanDom);
143263
+ rowItem.TextSpan=spanDom;
143264
+
143265
+ this.AryData.push(rowItem);
143266
+ }
143267
+
143268
+
143269
+ document.body.appendChild(divDom);
143270
+
143271
+ this.DivName=divName;
143272
+ this.DivDialog=divDom;
143273
+ this.TitleBox={ DivTitle:divTitle, DivName:divName, DivColor:divClose };
143274
+
143275
+ this.UpdateStyle();
143276
+ }
143277
+
143278
+ this.Update=function(data)
143279
+ {
143280
+ if (!this.DivDialog || !this.TitleBox) return;
143281
+ if (!data.KItem || !data.IsShowCorss || data.ClientPos<0) return;
143282
+
143283
+ this.LanguageID=this.HQChart.LanguageID;
143284
+ this.TitleBox.DivName.innerText=data.Name;
143285
+
143286
+ var strKItem=JSON.stringify(data.KItem);
143287
+ if (this.KItemCacheID!=strKItem) //数据变动的才更新
143288
+ {
143289
+ this.KItemCache= JSON.parse(strKItem);
143290
+ this.KItemCacheID=strKItem;
143291
+ this.UpdateTableDOM();
143292
+ }
143293
+ else
143294
+ {
143295
+ //JSConsole.Chart.Log(`[JSDialogTooltip::Update] save as KItemCache and KItem`);
143296
+ }
143297
+
143298
+ if (!this.IsShow()) this.Show();
143299
+ }
143300
+
143301
+ this.UpdateTableDOM=function()
143302
+ {
143303
+ if (!this.KItemCache) return;
143304
+
143305
+ this.AryText=this.GetFormatKlineTooltipText(this.KItemCache);
143306
+
143307
+ var index=0;
143308
+ for(index=0;index<this.AryText.length && index<this.MaxRowCount;++index)
143309
+ {
143310
+ var outItem=this.AryText[index];
143311
+ var item=this.AryData[index];
143312
+
143313
+ item.TitleSpan.innerText=outItem.Title;
143314
+ item.TitleSpan.style.color=this.TitleColor;
143315
+ item.TextSpan.innerText=outItem.Text;
143316
+ item.TextSpan.style.color=outItem.Color;
143317
+ item.Tr.style.display="";
143318
+ }
143319
+
143320
+ for( ; index<this.MaxRowCount; ++index)
143321
+ {
143322
+ var item=this.AryData[index];
143323
+ item.Tr.style.display="none";
143324
+ }
143325
+ }
143326
+
143327
+ this.Close=function(e)
143328
+ {
143329
+ if (!this.DivDialog) return;
143330
+
143331
+ this.DivDialog.style.visibility='hidden';
143332
+ }
143333
+
143334
+ this.OnMouseDownTitle=function(e)
143335
+ {
143336
+ if (!this.DivDialog) return;
143337
+
143338
+ var dragData={ X:e.clientX, Y:e.clientY };
143339
+ dragData.YOffset=e.clientX - this.DivDialog.offsetLeft;
143340
+ dragData.XOffset=e.clientY - this.DivDialog.offsetTop;
143341
+ this.DragTitle=dragData;
143342
+
143343
+ document.onmousemove=(e)=>{ this.DocOnMouseMoveTitle(e); }
143344
+ document.onmouseup=(e)=>{ this.DocOnMouseUpTitle(e); }
143345
+ }
143346
+
143347
+ this.DocOnMouseMoveTitle=function(e)
143348
+ {
143349
+ if (!this.DragTitle) return;
143350
+
143351
+ var left = e.clientX - this.DragTitle.YOffset;
143352
+ var top = e.clientY - this.DragTitle.XOffset;
143353
+
143354
+ var right=left+this.DivDialog.offsetWidth;
143355
+ var bottom=top+ this.DivDialog.offsetHeight;
143356
+
143357
+ if ((right+5)>=window.innerWidth) left=window.innerWidth-this.DivDialog.offsetWidth-5;
143358
+ if ((bottom+5)>=window.innerHeight) top=window.innerHeight-this.DivDialog.offsetHeight-5;
143359
+
143360
+ this.DivDialog.style.left = left + 'px';
143361
+ this.DivDialog.style.top = top + 'px';
143362
+
143363
+ if(e.preventDefault) e.preventDefault();
143364
+ }
143365
+
143366
+ this.DocOnMouseUpTitle=function(e)
143367
+ {
143368
+ this.DragTitle=null;
143369
+ this.onmousemove = null;
143370
+ this.onmouseup = null;
143371
+ }
143372
+
143373
+ this.Show=function()
143374
+ {
143375
+ if (!this.DivDialog) return;
143376
+ if (!this.HQChart) return;
143377
+
143378
+ if (!this.DivDialog.style.top || !this.DivDialog.style.left) //上一次显示的位置
143379
+ {
143380
+ var top=this.HQChart.Frame.ChartBorder.GetTop();
143381
+ var left=this.HQChart.Frame.ChartBorder.GetLeft();
143382
+ var rtClient=this.HQChart.UIElement.getBoundingClientRect();
143383
+
143384
+ var x=left+rtClient.left+5;
143385
+ var y=top+rtClient.top+10;
143386
+ this.DivDialog.style.top = y + "px";
143387
+ this.DivDialog.style.left = x + "px";
143388
+ }
143389
+
143390
+ this.DivDialog.style.visibility='visible';
143391
+ }
143392
+
143393
+ this.IsShow=function()
143394
+ {
143395
+ if (!this.DivDialog) return false;
143396
+
143397
+ return this.DivDialog.style.visibility==='visible';
143398
+ }
143399
+
143400
+
143401
+ this.GetFormatKlineTooltipText=function(data)
143402
+ {
143403
+ var defaultfloatPrecision=GetfloatPrecision(this.HQChart.Symbol);//价格小数位数
143404
+
143405
+ //日期
143406
+ var dateItem=
143407
+ {
143408
+ Title:g_JSChartLocalization.GetText('DialogTooltip-Date',this.LanguageID),
143409
+ Text:IFrameSplitOperator.FormatDateString(data.Date,"YYYY/MM/DD/W"),
143410
+ Color:this.DateTimeColor
143411
+ }
143412
+
143413
+ //时间
143414
+ var timeItem=null;
143415
+ var timeFormat=null;
143416
+ if (ChartData.IsMinutePeriod(this.HQChart.Period,true)) timeFormat='HH:MM'; // 分钟周期
143417
+ else if (ChartData.IsSecondPeriod(this.HQChart.Period)) timeFormat='HH:MM:SS';
143418
+ else if (ChartData.IsMilliSecondPeriod(this.HQChart.Period)) timeFormat='HH:MM:SS.fff';
143419
+
143420
+ if (timeFormat)
143421
+ {
143422
+ timeItem=
143423
+ {
143424
+ Title:g_JSChartLocalization.GetText('DialogTooltip-Time',this.LanguageID),
143425
+ Text:IFrameSplitOperator.FormatTimeString(data.Time,timeFormat),
143426
+ Color:this.DateTimeColor
143427
+ }
143428
+ }
143429
+
143430
+ //涨幅
143431
+ var increaseItem=
143432
+ {
143433
+ Title:g_JSChartLocalization.GetText('DialogTooltip-Increase',this.LanguageID),
143434
+ Text:"--.--",
143435
+ Color:this.TitleColor
143436
+ };
143437
+ if (IFrameSplitOperator.IsNumber(data.YClose) && IFrameSplitOperator.IsNumber(data.Close))
143438
+ {
143439
+ var value=(data.Close-data.YClose)/data.YClose;
143440
+ increaseItem.Text=`${(value*100).toFixed(2)}%`;
143441
+ increaseItem.Color=this.GetColor(value,0);
143442
+ }
143443
+
143444
+ //涨幅
143445
+ var amplitudeItem=
143446
+ {
143447
+ Title:g_JSChartLocalization.GetText('DialogTooltip-Amplitude',this.LanguageID),
143448
+ Text:"--.--",
143449
+ Color:this.TitleColor
143450
+ }
143451
+ if (IFrameSplitOperator.IsNumber(data.YClose) && IFrameSplitOperator.IsNumber(data.High) && IFrameSplitOperator.IsNumber(data.Low))
143452
+ {
143453
+ var value=(data.High-data.Low)/data.YClose;
143454
+ amplitudeItem.Text=`${(value*100).toFixed(2)}%`;
143455
+ amplitudeItem.Color=this.GetColor(value,0);
143456
+ }
143457
+
143458
+ var aryText=
143459
+ [
143460
+ {
143461
+ Title:g_JSChartLocalization.GetText('DialogTooltip-Open',this.LanguageID),
143462
+ Text:IFrameSplitOperator.IsNumber(data.Open)? data.Open.toFixed(defaultfloatPrecision):'--',
143463
+ Color:this.GetPriceColor(data.Open,data.YClose),
143464
+ },
143465
+ {
143466
+ Title:g_JSChartLocalization.GetText('DialogTooltip-High',this.LanguageID),
143467
+ Text:IFrameSplitOperator.IsNumber(data.High)? data.High.toFixed(defaultfloatPrecision):'--',
143468
+ Color:this.GetPriceColor(data.High,data.YClose)
143469
+ },
143470
+ {
143471
+ Title:g_JSChartLocalization.GetText('DialogTooltip-Low',this.LanguageID),
143472
+ Text:IFrameSplitOperator.IsNumber(data.Low)? data.Low.toFixed(defaultfloatPrecision):'--',
143473
+ Color:this.GetPriceColor(data.Low,data.YClose)
143474
+ },
143475
+ {
143476
+ Title:g_JSChartLocalization.GetText('DialogTooltip-Close',this.LanguageID),
143477
+ Text:IFrameSplitOperator.IsNumber(data.Close)? data.Close.toFixed(defaultfloatPrecision):'--',
143478
+ Color:this.GetPriceColor(data.Close,data.YClose)
143479
+ },
143480
+ {
143481
+ Title:g_JSChartLocalization.GetText('DialogTooltip-Vol',this.LanguageID),
143482
+ Text:IFrameSplitOperator.IsNumber(data.Vol)? IFrameSplitOperator.FormatValueString(data.Vol,2,this.LanguageID):'--',
143483
+ Color:this.VolColor
143484
+ },
143485
+ {
143486
+ Title:g_JSChartLocalization.GetText('DialogTooltip-Amount',this.LanguageID),
143487
+ Text:IFrameSplitOperator.IsNumber(data.Amount)? IFrameSplitOperator.FormatValueString(data.Amount,2,this.LanguageID):'--',
143488
+ Color:this.AmountColor
143489
+ },
143490
+ increaseItem,
143491
+ amplitudeItem
143492
+ ];
143493
+
143494
+ if (timeItem) aryText.unshift(timeItem);
143495
+ aryText.unshift(dateItem);
143496
+
143497
+ return aryText;
143498
+ },
143499
+
143500
+ this.GetColor=function(price,yClose)
143501
+ {
143502
+ if(price>yClose) return this.UpColor;
143503
+ else if (price<yClose) return this.DownColor;
143504
+ else return this.UnchangeColor;
143505
+ }
143506
+
143507
+ this.GetPriceColor=function(price, yClose)
143508
+ {
143509
+ var color=this.GetColor(price, yClose);
143510
+ return color;
143511
+ }
143512
+
143513
+ //配色修改
143514
+ this.ReloadResource=function(option)
143515
+ {
143516
+ this.UpColor=g_JSChartResource.UpTextColor;
143517
+ this.DownColor=g_JSChartResource.DownTextColor;
143518
+ this.UnchangeColor=g_JSChartResource.UnchagneTextColor;
143519
+
143520
+ this.TitleColor=g_JSChartResource.DialogTooltip.TitleColor;
143521
+ this.TitleBGColor=g_JSChartResource.DialogTooltip.TitleBGColor;
143522
+ this.BGColor=g_JSChartResource.DialogTooltip.BGColor;
143523
+ this.BorderColor=g_JSChartResource.DialogTooltip.BorderColor;
143524
+
143525
+ this.VolColor=g_JSChartResource.DialogTooltip.VolColor;
143526
+ this.AmountColor=g_JSChartResource.DialogTooltip.AmountColor;
143527
+ this.TurnoverRateColor=g_JSChartResource.DialogTooltip.TurnoverRateColor;
143528
+ this.PositionColor=g_JSChartResource.DialogTooltip.PositionColor;
143529
+ this.DateTimeColor=g_JSChartResource.DialogTooltip.DateTimeColor;
143530
+
143531
+ if (!this.DivDialog) return;
143532
+
143533
+ this.UpdateStyle();
143534
+ }
143535
+
143536
+ this.UpdateStyle=function()
143537
+ {
143538
+ if (!this.DivDialog) return;
143539
+
143540
+ if (this.BGColor) this.DivDialog.style['background-color']=this.BGColor;
143541
+ if (this.BorderColor) this.DivDialog.style['border-color']=this.BorderColor;
143542
+
143543
+ if (this.TitleBGColor) this.TitleBox.DivTitle.style['background-color']=this.TitleBGColor;
143544
+
143545
+ this.UpdateTableDOM();
143546
+ }
143547
+
143548
+ }///////////////////////////////////////////////////////////////////////////////////
142916
143549
  // 工作线程计算指标示例
142917
143550
  //
142918
143551
  //
@@ -143033,7 +143666,7 @@ function HQChartScriptWorker()
143033
143666
 
143034
143667
 
143035
143668
 
143036
- var HQCHART_VERSION="1.1.13904";
143669
+ var HQCHART_VERSION="1.1.13910";
143037
143670
 
143038
143671
  function PrintHQChartVersion()
143039
143672
  {