hqchart 1.1.14045 → 1.1.14050

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.
@@ -45,8 +45,9 @@ function JSDialogTooltip()
45
45
 
46
46
  this.KItemCache=null;
47
47
  this.KItemCacheID=null;
48
- this.LastValueCache=null; //最后的鼠标位置对应的数值
49
- this.LastValueCacheID=null;
48
+ this.LastValueCache=null; //最后的鼠标位置对应的数值
49
+ this.LastValueCacheID=null; //鼠标信息
50
+ this.DataID=null; //当前显示的数据时间{ Symbol:, Date:, Time: }
50
51
 
51
52
  this.Inital=function(hqchart, option)
52
53
  {
@@ -86,6 +87,22 @@ function JSDialogTooltip()
86
87
  }
87
88
  }
88
89
 
90
+ //data={ Symbol, Date, Time}
91
+ this.IsEqualDataID=function(data)
92
+ {
93
+ if (!this.DataID) return false;
94
+ if (!data) return false;
95
+
96
+ if (this.DataID.Symbol!=data.Symbol) return false;
97
+ if (this.DataID.Date!=data.Date) return false;
98
+ if (IFrameSplitOperator.IsNumber(this.DataID.Time))
99
+ {
100
+ if (this.DataID.Time!=data.Time) return false;
101
+ }
102
+
103
+ return true;
104
+ }
105
+
89
106
  this.Create=function()
90
107
  {
91
108
  var divDom=document.createElement("div");
@@ -201,9 +218,72 @@ function JSDialogTooltip()
201
218
  this.UpdateStyle();
202
219
  }
203
220
 
221
+ //更新实时数据
222
+ this.UpdateKLineData=function(data)
223
+ {
224
+ if (!data.KItem|| !data.IsShowCorss) return;
225
+
226
+ this.LanguageID=this.HQChart.LanguageID;
227
+
228
+ if (this.HQChart.ClassName=='KLineChartContainer')
229
+ {
230
+ var strKItem=JSON.stringify(data.KItem);
231
+ var bUpdata=false;
232
+ if (this.KItemCacheID!=strKItem) //数据变动的才更新
233
+ {
234
+ this.KItemCache= JSON.parse(strKItem);
235
+ this.KItemCacheID=strKItem;
236
+ bUpdata=true;
237
+ }
238
+
239
+ if (bUpdata)
240
+ {
241
+ this.UpdateTableDOM();
242
+ }
243
+ else
244
+ {
245
+ //JSConsole.Chart.Log(`[JSDialogTooltip::Update] save as KItemCache and KItem`);
246
+ }
247
+ }
248
+ }
249
+
250
+ //更新实时分时数据
251
+ this.UpdateMinuteData=function(data)
252
+ {
253
+ if (!data.MinItem || !data.IsShowCorss) return;
254
+
255
+ var strKItem=JSON.stringify(data.MinItem);
256
+ var bUpdata=false;
257
+ if (this.KItemCacheID!=strKItem) //数据变动的才更新
258
+ {
259
+ this.KItemCache= JSON.parse(strKItem);
260
+ this.KItemCacheID=strKItem;
261
+ bUpdata=true;
262
+ }
263
+
264
+ if (bUpdata)
265
+ {
266
+ this.UpdateTableDOM();
267
+ }
268
+ }
269
+
204
270
  this.Update=function(data)
205
271
  {
206
272
  if (!this.DivDialog || !this.TitleBox) return;
273
+
274
+ //实时数据更新
275
+ if (data.DataType==1)
276
+ {
277
+ this.UpdateKLineData(data);
278
+ return;
279
+ }
280
+ else if (data.DataType==2)
281
+ {
282
+ this.UpdateMinuteData(data);
283
+ return;
284
+ }
285
+
286
+
207
287
  if ((!data.KItem && !data.MinItem) || !data.IsShowCorss || data.ClientPos<0) return;
208
288
 
209
289
  this.LanguageID=this.HQChart.LanguageID;
@@ -228,6 +308,7 @@ function JSDialogTooltip()
228
308
 
229
309
  if (bUpdata)
230
310
  {
311
+ this.UpdateDataID(data);
231
312
  this.UpdateTableDOM();
232
313
  }
233
314
  else
@@ -255,6 +336,7 @@ function JSDialogTooltip()
255
336
 
256
337
  if (bUpdata)
257
338
  {
339
+ this.UpdateDataID(data);
258
340
  this.UpdateTableDOM();
259
341
  }
260
342
  }
@@ -302,6 +384,31 @@ function JSDialogTooltip()
302
384
  }
303
385
  }
304
386
 
387
+ this.UpdateDataID=function(data)
388
+ {
389
+ if (this.HQChart.ClassName=='KLineChartContainer')
390
+ {
391
+ var kItem=data.KItem;
392
+ this.DataID={ Symbol:data.Symbol, Date:kItem.Date, Time:null };
393
+ if (IFrameSplitOperator.IsNumber(kItem.Time)) this.DataID.Time=kItem.Time;
394
+ }
395
+ else if (this.HQChart.ClassName=='MinuteChartContainer')
396
+ {
397
+ var minItem=data.MinItem;
398
+ if (minItem.Type==0) //连续交易
399
+ {
400
+ var item=minItem.Data;
401
+ if (item) this.DataID={ Symbol:data.Symbol, Date:item.Date, Time:item.Time };
402
+ }
403
+ else if (minItem.Type==1) //集合竞价
404
+ {
405
+ var item=minItem.Data.Data;
406
+ if (item) this.DataID={ Symbol:data.Symbol, Date:item.Date, Time:item.Time };
407
+ }
408
+
409
+ }
410
+ }
411
+
305
412
  this.Close=function(e)
306
413
  {
307
414
  if (!this.DivDialog) return;
@@ -447,7 +554,7 @@ function JSDialogTooltip()
447
554
  aryText.push(this.ForamtFClose(data.FClose, defaultfloatPrecision, 'DialogTooltip-FClose'));
448
555
  }
449
556
 
450
- var event=this.HQChart.GetEventCallback(JSCHART_EVENT_ID.ON_FORMAT_DIALOG_TOOLTIP_TEXT);
557
+ var event=this.HQChart.GetEventCallback(JSCHART_EVENT_ID.ON_FORMAT_DIALOG_TOOLTIP);
451
558
  if (event && event.Callback)
452
559
  {
453
560
  var sendData={ AryText:aryText, Data:data, Symbol:this.HQChart.Symbol, HQChart:this.HQChart, IsKLine:true };
@@ -455,7 +562,7 @@ function JSDialogTooltip()
455
562
  }
456
563
 
457
564
  return aryText;
458
- },
565
+ }
459
566
 
460
567
  this.GetFormatMinuteTooltipText=function(data)
461
568
  {
@@ -515,7 +622,7 @@ function JSDialogTooltip()
515
622
 
516
623
  }
517
624
 
518
- var event=this.HQChart.GetEventCallback(JSCHART_EVENT_ID.ON_FORMAT_DIALOG_TOOLTIP_TEXT);
625
+ var event=this.HQChart.GetEventCallback(JSCHART_EVENT_ID.ON_FORMAT_DIALOG_TOOLTIP);
519
626
  if (event && event.Callback)
520
627
  {
521
628
  var sendData={ AryText:aryText, Data:data, Symbol:this.HQChart.Symbol, HQChart:this.HQChart, IsMinute:true };
@@ -829,4 +936,619 @@ function JSDialogTooltip()
829
936
  }
830
937
 
831
938
 
939
+ }
940
+
941
+ //浮动K线提示信息
942
+ function JSFloatTooltip()
943
+ {
944
+ this.DivDialog=null;
945
+ this.Style=0; //0=一行一个, 1=2行一个
946
+
947
+ this.HQChart=null;
948
+ this.MaxRowCount=20;
949
+
950
+ this.UpColor=g_JSChartResource.UpTextColor;
951
+ this.DownColor=g_JSChartResource.DownTextColor;
952
+ this.UnchangeColor=g_JSChartResource.UnchagneTextColor;
953
+
954
+ this.BGColor=g_JSChartResource.FloatTooltip.BGColor;
955
+ this.BorderColor=g_JSChartResource.FloatTooltip.BorderColor;
956
+
957
+ this.TextColor=g_JSChartResource.FloatTooltip.TextColor;
958
+ this.ValueColor=g_JSChartResource.FloatTooltip.ValueColor;
959
+
960
+ this.VolColor=g_JSChartResource.FloatTooltip.VolColor;
961
+ this.AmountColor=g_JSChartResource.FloatTooltip.AmountColor;
962
+ this.TurnoverRateColor=g_JSChartResource.FloatTooltip.TurnoverRateColor;
963
+ this.PositionColor=g_JSChartResource.FloatTooltip.PositionColor;
964
+ this.DateTimeColor=g_JSChartResource.FloatTooltip.DateTimeColor;
965
+ this.LanguageID=JSCHART_LANGUAGE_ID.LANGUAGE_CHINESE_ID;
966
+
967
+ this.AryData=[]; //输出文字信息
968
+ this.AryText=[]; //表格tr
969
+
970
+ this.KItemCache=null; //{ Symbol:, Item:, Name }
971
+ this.KItemCacheID=null;
972
+
973
+ this.Inital=function(hqchart, option)
974
+ {
975
+ this.HQChart=hqchart;
976
+ if (option)
977
+ {
978
+ if (IFrameSplitOperator.IsNumber(option.Style)) this.Style=option.Style;
979
+ }
980
+ }
981
+
982
+ this.Destroy=function()
983
+ {
984
+ this.AryData=[];
985
+ this.AryText=[];
986
+ this.KItemCache=null;
987
+ this.KItemCacheID=null;
988
+
989
+ if (this.DivDialog)
990
+ {
991
+ document.body.removeChild(this.DivDialog);
992
+ this.DivDialog=null;
993
+ }
994
+ }
995
+
996
+ this.Show=function(x, y)
997
+ {
998
+ if (!this.DivDialog) return;
999
+ if (!this.HQChart) return;
1000
+
1001
+ var rtClient=this.HQChart.UIElement.getBoundingClientRect();
1002
+ var left=x+rtClient.left,top=y+rtClient.top;
1003
+ var right=left+this.DivDialog.offsetWidth;
1004
+ var bottom=top+this.DivDialog.offsetHeight;
1005
+
1006
+ if ((right+5)>=window.innerWidth) left=left-this.DivDialog.offsetWidth;
1007
+ if ((bottom+5)>=window.innerHeight) top=0;
1008
+
1009
+ this.DivDialog.style.top = top + "px";
1010
+ this.DivDialog.style.left = left + "px";
1011
+
1012
+ if (this.DivDialog.style.visibility!='visible')
1013
+ this.DivDialog.style.visibility='visible';
1014
+ }
1015
+
1016
+ this.Hide=function()
1017
+ {
1018
+ if (!this.DivDialog) return;
1019
+
1020
+ this.KItemCache=null;
1021
+ this.KItemCacheID=null;
1022
+
1023
+ if (this.DivDialog.style.visibility!='hidden') this.DivDialog.style.visibility='hidden';
1024
+ }
1025
+
1026
+ this.Create=function()
1027
+ {
1028
+ var divDom=document.createElement("div");
1029
+ divDom.className='UMyChart_Tooltip_Float_Div';
1030
+
1031
+ var table=document.createElement("table");
1032
+ table.className="UMyChart_Tooltip_Float_Table";
1033
+ divDom.appendChild(table);
1034
+
1035
+ var tbody=document.createElement("tbody");
1036
+ tbody.className="UMyChart_Tooltip_Float_Tbody";
1037
+ table.appendChild(tbody);
1038
+
1039
+ this.AryData=[];
1040
+
1041
+ for(var i=0;i<this.MaxRowCount;++i)
1042
+ {
1043
+ var rowItem={ Tr:null, TitleSpan:null, TextSpan:null, TitleTd:null, TextTd:null };
1044
+
1045
+ var trDom=document.createElement("tr");
1046
+ trDom.className='UMyChart_Tooltip_Float_Group_Tr';
1047
+ tbody.appendChild(trDom);
1048
+ rowItem.Tr=trDom;
1049
+
1050
+ var tdDom=document.createElement("td");
1051
+ tdDom.className="UMyChart_Tooltip_Float_Title_Td"; //标题
1052
+ trDom.appendChild(tdDom);
1053
+ rowItem.TitleTd=tdDom;
1054
+
1055
+ var spanDom=document.createElement("span");
1056
+ spanDom.className='UMyChart_Tooltip_Float_Title_Span';
1057
+ spanDom.innerText='标题';
1058
+ tdDom.appendChild(spanDom);
1059
+ rowItem.TitleSpan=spanDom;
1060
+
1061
+ var tdDom=document.createElement("td");
1062
+ tdDom.className="UMyChart_Tooltip_Float_Text_Td"; //数值
1063
+ trDom.appendChild(tdDom);
1064
+ rowItem.TextTd=tdDom;
1065
+
1066
+ var spanDom=document.createElement("span");
1067
+ spanDom.className='UMyChart_Tooltip_Float_Text_Span';
1068
+ spanDom.innerText='数值';
1069
+ tdDom.appendChild(spanDom);
1070
+ rowItem.TextSpan=spanDom;
1071
+
1072
+ this.AryData.push(rowItem);
1073
+ }
1074
+
1075
+ document.body.appendChild(divDom);
1076
+
1077
+ this.DivDialog=divDom;
1078
+
1079
+ this.UpdateStyle();
1080
+ }
1081
+
1082
+ this.IsShow=function()
1083
+ {
1084
+ if (!this.DivDialog) return false;
1085
+
1086
+ return this.DivDialog.style.visibility==='visible';
1087
+ }
1088
+
1089
+ //data={ Symbol, Date, Time} 是否是同一条K线
1090
+ this.IsEqualHQID=function(data)
1091
+ {
1092
+ if (!this.KItemCache) return false;
1093
+ if (!data) return false;
1094
+ if (!this.KItemCache.Item) return false;
1095
+
1096
+ var kItem=this.KItemCache.Item;
1097
+ if (this.KItemCache.Symbol!=data.Symbol) return false;
1098
+ if (kItem.Date!=data.Date) return false;
1099
+ if (IFrameSplitOperator.IsNumber(kItem.Time))
1100
+ {
1101
+ if (kItem.Time!=data.Time) return false;
1102
+ }
1103
+
1104
+ return true;
1105
+ }
1106
+
1107
+ this.UpdateStyle=function()
1108
+ {
1109
+ if (!this.DivDialog) return;
1110
+
1111
+ if (this.BGColor) this.DivDialog.style['background-color']=this.BGColor;
1112
+ if (this.BorderColor) this.DivDialog.style['border-color']=this.BorderColor;
1113
+
1114
+ //this.UpdateTableDOM();
1115
+ }
1116
+
1117
+ //更新数据
1118
+ this.Update=function(data)
1119
+ {
1120
+ if (!this.DivDialog) return;
1121
+ this.LanguageID=this.HQChart.LanguageID;
1122
+
1123
+ if (data.DataType==1)
1124
+ {
1125
+ var tooltipData=data.Tooltip;
1126
+ if (!tooltipData) return;
1127
+
1128
+ if (tooltipData.Type==0)
1129
+ {
1130
+ this.UpdateKLineToolitp(data);
1131
+ }
1132
+ }
1133
+ else if (data.DataType==2) //更新实时行情数据
1134
+ {
1135
+ this.UpdateRealtimeHQTooltip(data);
1136
+ }
1137
+ }
1138
+
1139
+ this.UpdateRealtimeHQTooltip=function(data)
1140
+ {
1141
+ if (!this.KItemCache) return;
1142
+
1143
+ var kItem={ Symbol:data.Symbol, Name:this.KItemCache.Name, Item:data.Data, IsOverlay:this.KItemCache.IsOverlay };
1144
+ var strKItem=JSON.stringify(kItem);
1145
+
1146
+ var bUpdata=false;
1147
+ if (this.KItemCacheID!=strKItem) //数据变动的才更新
1148
+ {
1149
+ this.KItemCache= kItem;
1150
+ this.KItemCacheID=strKItem;
1151
+ bUpdata=true;
1152
+ }
1153
+
1154
+ if (bUpdata)
1155
+ {
1156
+ this.UpdateTableDOM();
1157
+ }
1158
+ }
1159
+
1160
+ this.UpdateKLineToolitp=function(data)
1161
+ {
1162
+ var tooltipData=data.Tooltip;
1163
+ var symbol=data.Symbol;
1164
+ var name=data.Name;
1165
+ var bOverlay=false; //是否是叠加指标
1166
+ if (tooltipData.ChartPaint.Name=="Overlay-KLine")
1167
+ {
1168
+ symbol=tooltipData.ChartPaint.Symbol;
1169
+ name=tooltipData.ChartPaint.Title;
1170
+ bOverlay=true;
1171
+ }
1172
+
1173
+ var kItem={ Symbol:symbol, Name:name, Item:CloneData(tooltipData.Data), IsOverlay:bOverlay };
1174
+ var strKItem=JSON.stringify(kItem);
1175
+ var bUpdata=false;
1176
+ if (this.KItemCacheID!=strKItem) //数据变动的才更新
1177
+ {
1178
+ this.KItemCache= kItem;
1179
+ this.KItemCacheID=strKItem;
1180
+ bUpdata=true;
1181
+ }
1182
+
1183
+ if (bUpdata)
1184
+ {
1185
+ this.UpdateTableDOM();
1186
+ }
1187
+
1188
+ if (data.Point)
1189
+ {
1190
+ var x=data.Point.X;
1191
+ var y=data.Point.Y+data.Point.YMove;
1192
+ this.Show(x, y);
1193
+ }
1194
+ }
1195
+
1196
+ this.UpdateTableDOM=function()
1197
+ {
1198
+ if (!this.KItemCache) return;
1199
+
1200
+ if (this.HQChart.ClassName=='KLineChartContainer')
1201
+ this.AryText=this.GetFormatKLineTooltipText(this.KItemCache);
1202
+ else
1203
+ return;
1204
+
1205
+ var index=0;
1206
+ for(index=0;index<this.AryText.length && index<this.MaxRowCount;++index)
1207
+ {
1208
+ var outItem=this.AryText[index];
1209
+ var item=this.AryData[index];
1210
+
1211
+ item.TitleSpan.innerText=outItem.Title;
1212
+ item.TitleSpan.style.color=this.TextColor;
1213
+ item.TextSpan.innerText=outItem.Text;
1214
+ item.TextSpan.style.color=outItem.Color;
1215
+
1216
+ if (outItem.ClassName)
1217
+ {
1218
+ item.TextSpan.className=outItem.ClassName;
1219
+ }
1220
+ else
1221
+ {
1222
+ if (item.TextSpan.className!="UMyChart_Tooltip_Float_Text_Span") item.TextSpan.className="UMyChart_Tooltip_Float_Text_Span"
1223
+ }
1224
+
1225
+ item.Tr.style.display="";
1226
+ if (item.Tr2) item.Tr2.style.display="";
1227
+ }
1228
+
1229
+ for( ; index<this.MaxRowCount; ++index)
1230
+ {
1231
+ var item=this.AryData[index];
1232
+ item.Tr.style.display="none";
1233
+ if (item.Tr2) item.Tr2.style.display="none";
1234
+ }
1235
+ }
1236
+
1237
+ this.GetFormatKLineTooltipText=function(kItem)
1238
+ {
1239
+ var data=kItem.Item;
1240
+ var symbol=kItem.Symbol;
1241
+ var upperSymbol=symbol.toUpperCase();
1242
+ var defaultfloatPrecision=GetfloatPrecision(symbol);//价格小数位数
1243
+
1244
+ //日期
1245
+ var dateItem=this.ForamtDate(data.Date,"YYYY/MM/DD/W",'FloatTooltip-Date' );
1246
+
1247
+ //时间
1248
+ var timeItem=null;
1249
+ if (IFrameSplitOperator.IsNumber(data.Time)) timeItem=this.FormatTime(data.Time, this.HQChart.Period, null, 'FloatTooltip-Time');
1250
+
1251
+ var overlayItem=null;
1252
+ if (kItem.IsOverlay)
1253
+ overlayItem={ Title:"", Text:kItem.Name, Color:this.TextColor, ClassName:"UMyChart_Tooltip_Float_Text2_Span" };
1254
+
1255
+
1256
+ var yClose=data.YClose; //昨收价|昨结算价
1257
+ var aryText=
1258
+ [
1259
+ this.ForamtPrice(data.Open,yClose, defaultfloatPrecision,'FloatTooltip-Open'),
1260
+ this.ForamtPrice(data.High,yClose, defaultfloatPrecision,'FloatTooltip-High'),
1261
+ this.ForamtPrice(data.Low,yClose, defaultfloatPrecision,'FloatTooltip-Low'),
1262
+ this.ForamtPrice(data.Close,yClose, defaultfloatPrecision,'FloatTooltip-Close'),
1263
+ this.ForamtPrice(data.YClose,data.YClose, defaultfloatPrecision,'FloatTooltip-YClose'),
1264
+ this.FormatVol(data.Vol,'FloatTooltip-Vol' ),
1265
+ this.FormatAmount(data.Amount,'FloatTooltip-Amount' ),
1266
+ this.FormatIncrease(data.Close,yClose,defaultfloatPrecision,'FloatTooltip-Increase'),
1267
+ this.FormatAmplitude(data.High,data.Low,yClose,defaultfloatPrecision,'FloatTooltip-Amplitude'),
1268
+ ];
1269
+
1270
+ if (timeItem) aryText.unshift(timeItem);
1271
+ aryText.unshift(dateItem);
1272
+ if (overlayItem) aryText.unshift(overlayItem);
1273
+
1274
+ //换手率
1275
+ if (MARKET_SUFFIX_NAME.IsSHSZStockA(upperSymbol) && data.FlowCapital>0)
1276
+ {
1277
+ aryText.push(this.FormatExchange(data.Vol,data.FlowCapital,'FloatTooltip-Exchange' ));
1278
+ }
1279
+
1280
+ //持仓量 结算价
1281
+ if (MARKET_SUFFIX_NAME.IsFutures(upperSymbol))
1282
+ {
1283
+ aryText.push(this.FormatPosition(data.Position,'FloatTooltip-Position'));
1284
+ aryText.push(this.ForamtFClose(data.FClose, defaultfloatPrecision, 'FloatTooltip-FClose'));
1285
+ aryText.push(this.ForamtFClose(data.YFClose, defaultfloatPrecision, 'FloatTooltip-YSettlePrice'));
1286
+
1287
+ }
1288
+
1289
+ var event=this.HQChart.GetEventCallback(JSCHART_EVENT_ID.ON_FORMAT_KLINE_FLOAT_TOOLTIP);
1290
+ if (event && event.Callback)
1291
+ {
1292
+ var sendData={ AryText:aryText, Data:kItem, HQChart:this.HQChart };
1293
+ event.Callback(event, sendData, this);
1294
+ }
1295
+
1296
+ return aryText;
1297
+ }
1298
+
1299
+
1300
+ /////////////////////////////////////////////////////////////////////////////////////////////
1301
+ //数据格式化
1302
+ this.ForamtPrice=function(price, yClose, defaultfloatPrecision, TitleID)
1303
+ {
1304
+ var item=
1305
+ {
1306
+ Title:g_JSChartLocalization.GetText(TitleID, this.LanguageID),
1307
+ Text:"--.--",
1308
+ Color:this.ValueColor
1309
+ };
1310
+
1311
+ if (!IFrameSplitOperator.IsNumber(price)) return item;
1312
+
1313
+ item.Text=price.toFixed(defaultfloatPrecision);
1314
+ item.Color=this.GetColor(price, yClose);
1315
+
1316
+ return item;
1317
+ }
1318
+
1319
+ this.ForamtValue=function(value, defaultfloatPrecision, TitleID)
1320
+ {
1321
+ var item=
1322
+ {
1323
+ Title:g_JSChartLocalization.GetText(TitleID,this.LanguageID),
1324
+ Text:'--',
1325
+ Color:this.ValueColor
1326
+ };
1327
+
1328
+ if (!IFrameSplitOperator.IsNumber(value)) return item;
1329
+
1330
+ item.Text=IFrameSplitOperator.FormatValueStringV2(value,defaultfloatPrecision,2,this.LanguageID);
1331
+ return item;
1332
+ }
1333
+
1334
+ this.FormatVol=function(vol, TitleID)
1335
+ {
1336
+ var item=
1337
+ {
1338
+ Title:g_JSChartLocalization.GetText(TitleID,this.LanguageID),
1339
+ Text:'--',
1340
+ Color:this.VolColor
1341
+ };
1342
+
1343
+ if (!IFrameSplitOperator.IsNumber(vol)) return item;
1344
+
1345
+ item.Text=IFrameSplitOperator.FormatValueStringV2(vol,0,2,this.LanguageID);
1346
+
1347
+ return item;
1348
+ }
1349
+
1350
+ this.FormatAmount=function(amount, TitleID)
1351
+ {
1352
+ var item=
1353
+ {
1354
+ Title:g_JSChartLocalization.GetText(TitleID,this.LanguageID),
1355
+ Text:'--',
1356
+ Color:this.AmountColor
1357
+ };
1358
+
1359
+ if (!IFrameSplitOperator.IsNumber(amount)) return item;
1360
+
1361
+ item.Text=IFrameSplitOperator.FormatValueString(amount,2,this.LanguageID);
1362
+
1363
+ return item;
1364
+ }
1365
+
1366
+ this.FormatIncrease=function(price, yClose, defaultfloatPrecision, TitleID)
1367
+ {
1368
+ //涨幅
1369
+ var item=
1370
+ {
1371
+ Title:g_JSChartLocalization.GetText(TitleID,this.LanguageID),
1372
+ Text:"--.--",
1373
+ Color:this.ValueColor
1374
+ };
1375
+
1376
+ if (!IFrameSplitOperator.IsNumber(price) || !IFrameSplitOperator.IsNumber(yClose)) return item;
1377
+
1378
+ var diffValue=price-yClose;
1379
+ var value=(price-yClose)/yClose;
1380
+
1381
+ item.Text=`${(value*100).toFixed(2)}%`;
1382
+ item.Color=this.GetColor(value,0);
1383
+
1384
+ return item;
1385
+ }
1386
+
1387
+ this.FormatRisefall=function(price, yClose, defaultfloatPrecision, TitleID)
1388
+ {
1389
+ //涨跌
1390
+ var item=
1391
+ {
1392
+ Title:g_JSChartLocalization.GetText(TitleID,this.LanguageID),
1393
+ Text:"--.--",
1394
+ Color:this.ValueColor
1395
+ };
1396
+
1397
+ if (!IFrameSplitOperator.IsNumber(price) || !IFrameSplitOperator.IsNumber(yClose)) return item;
1398
+
1399
+ var value=price-yClose;
1400
+ item.Text=`${value.toFixed(defaultfloatPrecision)}`;
1401
+ item.Color=this.GetColor(value,0);
1402
+
1403
+ return item;
1404
+ }
1405
+
1406
+ this.FormatAmplitude=function(high, low, yClose, defaultfloatPrecision, TitleID)
1407
+ {
1408
+ //振幅
1409
+ var item=
1410
+ {
1411
+ Title:g_JSChartLocalization.GetText(TitleID,this.LanguageID),
1412
+ Text:"--.--",
1413
+ Color:this.ValueColor
1414
+ };
1415
+
1416
+
1417
+ if (!IFrameSplitOperator.IsNumber(high) || !IFrameSplitOperator.IsNumber(low) || !IFrameSplitOperator.IsNumber(yClose)) return item;
1418
+
1419
+ var diffValue=high-low;
1420
+ var value=(diffValue)/yClose;
1421
+ item.Text=`${(value*100).toFixed(2)}%`;
1422
+ item.Color=this.GetColor(value,0);
1423
+
1424
+ return item;
1425
+ }
1426
+
1427
+ this.ForamtDate=function(date, format, TitleID)
1428
+ {
1429
+ //日期
1430
+ var item=
1431
+ {
1432
+ Title:g_JSChartLocalization.GetText('DialogTooltip-Date',this.LanguageID),
1433
+ Text:"----/--/--",
1434
+ Color:this.DateTimeColor
1435
+ }
1436
+
1437
+ if (!IFrameSplitOperator.IsNumber(date)) return item;
1438
+
1439
+ item.Text=IFrameSplitOperator.FormatDateString(date,format);
1440
+
1441
+ return item;
1442
+ }
1443
+
1444
+ this.FormatTime=function(time, period, format, TitleID)
1445
+ {
1446
+ //时间
1447
+ var item=
1448
+ {
1449
+ Title:g_JSChartLocalization.GetText(TitleID,this.LanguageID),
1450
+ Text:'--:--',
1451
+ Color:this.DateTimeColor
1452
+ };
1453
+
1454
+ if (!IFrameSplitOperator.IsNumber(time)) return item;
1455
+ if (!format)
1456
+ {
1457
+ format="HH:MM";
1458
+ if (ChartData.IsMinutePeriod(period,true)) format='HH:MM'; // 分钟周期
1459
+ else if (ChartData.IsSecondPeriod(period)) format='HH:MM:SS';
1460
+ else if (ChartData.IsMilliSecondPeriod(period)) format='HH:MM:SS.fff';
1461
+ }
1462
+
1463
+ item.Text=IFrameSplitOperator.FormatTimeString(time,format);
1464
+
1465
+ return item;
1466
+ }
1467
+
1468
+ //换手率 成交量/流通股本
1469
+ this.FormatExchange=function(vol, flowCapital, TitleID)
1470
+ {
1471
+ //换手率
1472
+ var item=
1473
+ {
1474
+ Title:g_JSChartLocalization.GetText(TitleID,this.LanguageID),
1475
+ Text:'--.--',
1476
+ Color:this.DateTimeColor
1477
+ };
1478
+
1479
+ if (!IFrameSplitOperator.IsNumber(vol) || !IFrameSplitOperator.IsNumber(flowCapital) || flowCapital==0) return item;
1480
+
1481
+ var value=vol/flowCapital*100;
1482
+ item.Text=value.toFixed(2)+'%';
1483
+
1484
+ return item;
1485
+ }
1486
+
1487
+
1488
+ //持仓
1489
+ this.FormatPosition=function(position, TitleID)
1490
+ {
1491
+ //持仓
1492
+ var item=
1493
+ {
1494
+ Title:g_JSChartLocalization.GetText(TitleID,this.LanguageID),
1495
+ Text:'--.--',
1496
+ Color:this.PositionColor
1497
+ };
1498
+
1499
+ if (!IFrameSplitOperator.IsNumber(position)) return item;
1500
+
1501
+ item.Text=position.toFixed(0);
1502
+
1503
+ return item;
1504
+ }
1505
+
1506
+ //结算价
1507
+ this.ForamtFClose=function(value, defaultfloatPrecision, TitleID)
1508
+ {
1509
+ var item=
1510
+ {
1511
+ Title:g_JSChartLocalization.GetText(TitleID,this.LanguageID),
1512
+ Text:'--.--',
1513
+ Color:this.DateTimeColor
1514
+ };
1515
+
1516
+ if (!IFrameSplitOperator.IsNumber(value)) return item;
1517
+
1518
+ item.Text=value.toFixed(defaultfloatPrecision);
1519
+
1520
+ return item;
1521
+ }
1522
+
1523
+ this.GetColor=function(price,yClose)
1524
+ {
1525
+ if(price>yClose) return this.UpColor;
1526
+ else if (price<yClose) return this.DownColor;
1527
+ else return this.UnchangeColor;
1528
+ }
1529
+
1530
+
1531
+ //配色修改
1532
+ this.ReloadResource=function(option)
1533
+ {
1534
+ this.UpColor=g_JSChartResource.UpTextColor;
1535
+ this.DownColor=g_JSChartResource.DownTextColor;
1536
+ this.UnchangeColor=g_JSChartResource.UnchagneTextColor;
1537
+
1538
+ this.BGColor=g_JSChartResource.FloatTooltip.BGColor;
1539
+ this.BorderColor=g_JSChartResource.FloatTooltip.BorderColor;
1540
+
1541
+ this.TextColor=g_JSChartResource.FloatTooltip.TextColor;
1542
+ this.ValueColor=g_JSChartResource.FloatTooltip.ValueColor;
1543
+
1544
+ this.VolColor=g_JSChartResource.FloatTooltip.VolColor;
1545
+ this.AmountColor=g_JSChartResource.FloatTooltip.AmountColor;
1546
+ this.TurnoverRateColor=g_JSChartResource.FloatTooltip.TurnoverRateColor;
1547
+ this.PositionColor=g_JSChartResource.FloatTooltip.PositionColor;
1548
+ this.DateTimeColor=g_JSChartResource.FloatTooltip.DateTimeColor;
1549
+
1550
+ if (!this.DivDialog) return;
1551
+
1552
+ this.UpdateStyle();
1553
+ }
832
1554
  }