hqchart 1.1.14978 → 1.1.14986

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.
@@ -7365,6 +7365,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
7365
7365
  var mouseStatus=null; //鼠标状态
7366
7366
  var button=null; //当前鼠标所在按钮
7367
7367
  var frameID=this.Frame.PtInFrame(x,y);
7368
+ this.LastPoint.FrameID=frameID;
7368
7369
  if (IFrameSplitOperator.IsNumber(frameID) && frameID>=0) //在K线内部移动,调整K线索引
7369
7370
  this.CursorIndex=this.Frame.GetXData(x);
7370
7371
 
@@ -8260,40 +8261,45 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8260
8261
 
8261
8262
  this.UpdatePointByCursorIndex=function(type) //type 1=根据十字光标更新 2=强制取消十字光标
8262
8263
  {
8263
- var pt={X:null, Y:null};
8264
- pt.X=this.Frame.GetXFromIndex(this.CursorIndex);
8265
- var index=Math.abs(this.CursorIndex-0.5);
8266
- if (this.IsKLineContainer()) index=this.CursorIndex;
8264
+ if (type==1) //根据十字光标更新
8265
+ {
8266
+ if (this.LastPoint.FrameID<0) return;
8267
8267
 
8268
- var data=this.Frame.Data;
8269
- if (data.DataOffset+index<data.Data.length)
8270
- {
8271
- var close=data.Data[data.DataOffset+index].Close;
8272
- pt.Y=this.Frame.GetYFromData(close);
8273
- }
8274
-
8275
- if (type==1 && this.ChartCorssCursor)
8276
- {
8277
- if (this.ChartCorssCursor.Status==1) //十字光标显示中, 不调整位置
8268
+ var pt={ X:null, Y:this.LastPoint.Y };
8269
+ pt.X=this.Frame.GetXFromIndex(this.CursorIndex); //X轴动态变的
8270
+ if (this.ChartCorssCursor)
8278
8271
  {
8272
+ if (this.ChartCorssCursor.Status==1)
8273
+ {
8279
8274
 
8275
+ }
8276
+ else
8277
+ {
8278
+ pt.Y=null;
8279
+ pt.X=null;
8280
+ }
8280
8281
  }
8281
- else
8282
- {
8283
- this.LastPoint.X=this.Frame.GetXFromIndex(this.CursorIndex);
8284
- var index=Math.abs(this.CursorIndex-0.5);
8285
- index=parseInt(index.toFixed(0));
8286
- if (this.IsKLineContainer()) index=this.CursorIndex;
8287
- this.LastPoint.Y=null;
8288
- }
8282
+ this.LastPoint.X=pt.X;
8283
+ this.LastPoint.Y=pt.Y;
8289
8284
  }
8290
- else if (type==2 && this.ChartCorssCursor) //取消鼠标位置,十字光标就不显示了
8285
+ else if (type==2)
8291
8286
  {
8292
8287
  this.LastPoint.Y=null;
8293
8288
  this.LastPoint.X=null;
8289
+ this.LastPoint.FrameID=-1;
8294
8290
  }
8295
8291
  else
8296
8292
  {
8293
+ var pt={ X:null, Y:null };
8294
+ pt.X=this.Frame.GetXFromIndex(this.CursorIndex);
8295
+ var index=this.CursorIndex;
8296
+ var data=this.GetKData();
8297
+ if (IFrameSplitOperator.IsGTEZero(index) && data.DataOffset+index<data.Data.length)
8298
+ {
8299
+ var close=data.Data[data.DataOffset+index].Close;
8300
+ pt.Y=this.Frame.GetYFromData(close);
8301
+ this.LastPoint.FrameID=0;
8302
+ }
8297
8303
  this.LastPoint.X=pt.X;
8298
8304
  this.LastPoint.Y=pt.Y;
8299
8305
  }
@@ -54289,6 +54295,12 @@ IFrameSplitOperator.FormatDateTimeStringV2=function(datetime, format, languageID
54289
54295
  return `${IFrameSplitOperator.NumberToString(datetime.getHours())}:${IFrameSplitOperator.NumberToString(datetime.getMinutes())}`;
54290
54296
  case "HH:MM:SS.fff":
54291
54297
  return `${IFrameSplitOperator.NumberToString(datetime.getHours())}:${IFrameSplitOperator.NumberToString(datetime.getMinutes())}:${IFrameSplitOperator.NumberToString(datetime.getSeconds())}.${IFrameSplitOperator.MillisecondToString(datetime.getMilliseconds())}`;
54298
+
54299
+ case "YYYY-MM-DD HH:MM":
54300
+ return `${datetime.getFullYear()}-${IFrameSplitOperator.NumberToString(datetime.getMonth()+1)}-${IFrameSplitOperator.NumberToString(datetime.getDate())} ${IFrameSplitOperator.NumberToString(datetime.getHours())}:${IFrameSplitOperator.NumberToString(datetime.getMinutes())}`;
54301
+ case "MM-DD HH:MM":
54302
+ return `${IFrameSplitOperator.NumberToString(datetime.getMonth()+1)}-${IFrameSplitOperator.NumberToString(datetime.getDate())} ${IFrameSplitOperator.NumberToString(datetime.getHours())}:${IFrameSplitOperator.NumberToString(datetime.getMinutes())}`;
54303
+
54292
54304
  default:
54293
54305
  return null;
54294
54306
  }
@@ -54344,6 +54356,15 @@ IFrameSplitOperator.IsPlusNumber=function(value)
54344
54356
  return value>0;
54345
54357
  }
54346
54358
 
54359
+ //>=0
54360
+ IFrameSplitOperator.IsGTEZero=function(value)
54361
+ {
54362
+ if (value==null) return false;
54363
+ if (isNaN(value)) return false;
54364
+
54365
+ return value>=0;
54366
+ }
54367
+
54347
54368
  //是否是整形
54348
54369
  IFrameSplitOperator.IsInteger=function(x)
54349
54370
  {
@@ -91528,7 +91549,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
91528
91549
 
91529
91550
  var index=this.CursorIndex;
91530
91551
  index=parseInt(index.toFixed(0));
91531
- var data=this.Frame.SourceData;
91552
+ var data=this.GetKData();
91532
91553
  if (data.DataOffset+index>=data.Data.length)
91533
91554
  {
91534
91555
  return;
@@ -91539,6 +91560,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
91539
91560
  else close=item.Close
91540
91561
 
91541
91562
  this.LastPoint.Y=this.Frame.GetYFromData(close);
91563
+ this.LastPoint.FrameID=0;
91542
91564
  }
91543
91565
 
91544
91566
 
@@ -1803,6 +1803,16 @@ function JSReportChartContainer(uielement)
1803
1803
  if (IFrameSplitOperator.IsNumber(item[108])) stock.ReserveNumber8=item[108];
1804
1804
  if (IFrameSplitOperator.IsNumber(item[109])) stock.ReserveNumber9=item[109];
1805
1805
  if (IFrameSplitOperator.IsNumber(item[110])) stock.ReserveNumber10=item[110];
1806
+ if (IFrameSplitOperator.IsNumber(item[111])) stock.ReserveNumber11=item[111];
1807
+ if (IFrameSplitOperator.IsNumber(item[112])) stock.ReserveNumber12=item[112];
1808
+ if (IFrameSplitOperator.IsNumber(item[113])) stock.ReserveNumber13=item[113];
1809
+ if (IFrameSplitOperator.IsNumber(item[114])) stock.ReserveNumber14=item[114];
1810
+ if (IFrameSplitOperator.IsNumber(item[115])) stock.ReserveNumber15=item[115];
1811
+ if (IFrameSplitOperator.IsNumber(item[116])) stock.ReserveNumber16=item[116];
1812
+ if (IFrameSplitOperator.IsNumber(item[117])) stock.ReserveNumber17=item[117];
1813
+ if (IFrameSplitOperator.IsNumber(item[118])) stock.ReserveNumber18=item[118];
1814
+ if (IFrameSplitOperator.IsNumber(item[119])) stock.ReserveNumber19=item[119];
1815
+ if (IFrameSplitOperator.IsNumber(item[120])) stock.ReserveNumber20=item[120];
1806
1816
 
1807
1817
  //10个字符型 201-299
1808
1818
  if (IFrameSplitOperator.IsString(item[201]) || IFrameSplitOperator.IsObject(item[201])) stock.ReserveString1=item[201];
@@ -4197,6 +4207,16 @@ function JSReportChartContainer(uielement)
4197
4207
  case REPORT_COLUMN_ID.RESERVE_NUMBER8_ID:
4198
4208
  case REPORT_COLUMN_ID.RESERVE_NUMBER9_ID:
4199
4209
  case REPORT_COLUMN_ID.RESERVE_NUMBER10_ID:
4210
+ case REPORT_COLUMN_ID.RESERVE_NUMBER11_ID:
4211
+ case REPORT_COLUMN_ID.RESERVE_NUMBER12_ID:
4212
+ case REPORT_COLUMN_ID.RESERVE_NUMBER13_ID:
4213
+ case REPORT_COLUMN_ID.RESERVE_NUMBER14_ID:
4214
+ case REPORT_COLUMN_ID.RESERVE_NUMBER15_ID:
4215
+ case REPORT_COLUMN_ID.RESERVE_NUMBER16_ID:
4216
+ case REPORT_COLUMN_ID.RESERVE_NUMBER17_ID:
4217
+ case REPORT_COLUMN_ID.RESERVE_NUMBER18_ID:
4218
+ case REPORT_COLUMN_ID.RESERVE_NUMBER19_ID:
4219
+ case REPORT_COLUMN_ID.RESERVE_NUMBER20_ID:
4200
4220
 
4201
4221
  return this.LocalNumberSort(left, right, column, sortType);
4202
4222
 
@@ -4859,7 +4879,7 @@ var REPORT_COLUMN_ID=
4859
4879
  MULTI_LINE_CONTAINER:108, //多行组合输出
4860
4880
 
4861
4881
 
4862
- //预留数值类型 10
4882
+ //预留数值类型 20
4863
4883
  RESERVE_NUMBER1_ID:201, //ReserveNumber1:
4864
4884
  RESERVE_NUMBER2_ID:202,
4865
4885
  RESERVE_NUMBER3_ID:203,
@@ -4870,6 +4890,16 @@ var REPORT_COLUMN_ID=
4870
4890
  RESERVE_NUMBER8_ID:208,
4871
4891
  RESERVE_NUMBER9_ID:209,
4872
4892
  RESERVE_NUMBER10_ID:210,
4893
+ RESERVE_NUMBER11_ID:211,
4894
+ RESERVE_NUMBER12_ID:212,
4895
+ RESERVE_NUMBER13_ID:213,
4896
+ RESERVE_NUMBER14_ID:214,
4897
+ RESERVE_NUMBER15_ID:215,
4898
+ RESERVE_NUMBER16_ID:216,
4899
+ RESERVE_NUMBER17_ID:217,
4900
+ RESERVE_NUMBER18_ID:218,
4901
+ RESERVE_NUMBER19_ID:219,
4902
+ RESERVE_NUMBER20_ID:220,
4873
4903
 
4874
4904
 
4875
4905
  //预留字符串类型 10个 301-399
@@ -4982,6 +5012,16 @@ var MAP_COLUMN_FIELD=new Map([
4982
5012
  [REPORT_COLUMN_ID.RESERVE_NUMBER8_ID,"ReserveNumber8"],
4983
5013
  [REPORT_COLUMN_ID.RESERVE_NUMBER9_ID,"ReserveNumber9"],
4984
5014
  [REPORT_COLUMN_ID.RESERVE_NUMBER10_ID,"ReserveNumber10"],
5015
+ [REPORT_COLUMN_ID.RESERVE_NUMBER11_ID,"ReserveNumber11"],
5016
+ [REPORT_COLUMN_ID.RESERVE_NUMBER12_ID,"ReserveNumber12"],
5017
+ [REPORT_COLUMN_ID.RESERVE_NUMBER13_ID,"ReserveNumber13"],
5018
+ [REPORT_COLUMN_ID.RESERVE_NUMBER14_ID,"ReserveNumber14"],
5019
+ [REPORT_COLUMN_ID.RESERVE_NUMBER15_ID,"ReserveNumber15"],
5020
+ [REPORT_COLUMN_ID.RESERVE_NUMBER16_ID,"ReserveNumber16"],
5021
+ [REPORT_COLUMN_ID.RESERVE_NUMBER17_ID,"ReserveNumber17"],
5022
+ [REPORT_COLUMN_ID.RESERVE_NUMBER18_ID,"ReserveNumber18"],
5023
+ [REPORT_COLUMN_ID.RESERVE_NUMBER19_ID,"ReserveNumber19"],
5024
+ [REPORT_COLUMN_ID.RESERVE_NUMBER20_ID,"ReserveNumber20"],
4985
5025
 
4986
5026
  [REPORT_COLUMN_ID.RESERVE_STRING1_ID,"ReserveString1"],
4987
5027
  [REPORT_COLUMN_ID.RESERVE_STRING2_ID,"ReserveString2"],
@@ -5226,6 +5266,9 @@ function ChartReport()
5226
5266
 
5227
5267
  this.LastMouseStatus;
5228
5268
 
5269
+ //绘图过程中的缓存数据 绘制完清空的
5270
+ this.TempCache=null; //
5271
+
5229
5272
  this.ReloadResource=function(resource)
5230
5273
  {
5231
5274
  this.DevicePixelRatio=GetDevicePixelRatio()
@@ -5427,6 +5470,7 @@ function ChartReport()
5427
5470
  else if (this.IsReserveDateTime(item.Type))
5428
5471
  {
5429
5472
  if (item.DateTimeFormat) colItem.DateTimeFormat=item.DateTimeFormat; //日期格式化
5473
+ if (item.SubDateTimeFormat) colItem.SubDateTimeFormat=item.SubDateTimeFormat;
5430
5474
  }
5431
5475
  else if (item.Type==REPORT_COLUMN_ID.CUSTOM_PROGRESS_ID)
5432
5476
  {
@@ -5637,6 +5681,16 @@ function ChartReport()
5637
5681
  { Type:REPORT_COLUMN_ID.RESERVE_NUMBER8_ID, Title:"数值8", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"9999.99", FloatPrecision:2 },
5638
5682
  { Type:REPORT_COLUMN_ID.RESERVE_NUMBER9_ID, Title:"数值9", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"9999.99", FloatPrecision:2 },
5639
5683
  { Type:REPORT_COLUMN_ID.RESERVE_NUMBER10_ID, Title:"数值10", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"9999.99", FloatPrecision:2 },
5684
+ { Type:REPORT_COLUMN_ID.RESERVE_NUMBER11_ID, Title:"数值11", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"9999.99", FloatPrecision:2 },
5685
+ { Type:REPORT_COLUMN_ID.RESERVE_NUMBER12_ID, Title:"数值12", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"9999.99", FloatPrecision:2 },
5686
+ { Type:REPORT_COLUMN_ID.RESERVE_NUMBER13_ID, Title:"数值13", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"9999.99", FloatPrecision:2 },
5687
+ { Type:REPORT_COLUMN_ID.RESERVE_NUMBER14_ID, Title:"数值14", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"9999.99", FloatPrecision:2 },
5688
+ { Type:REPORT_COLUMN_ID.RESERVE_NUMBER15_ID, Title:"数值15", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"9999.99", FloatPrecision:2 },
5689
+ { Type:REPORT_COLUMN_ID.RESERVE_NUMBER16_ID, Title:"数值16", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"9999.99", FloatPrecision:2 },
5690
+ { Type:REPORT_COLUMN_ID.RESERVE_NUMBER17_ID, Title:"数值17", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"9999.99", FloatPrecision:2 },
5691
+ { Type:REPORT_COLUMN_ID.RESERVE_NUMBER18_ID, Title:"数值18", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"9999.99", FloatPrecision:2 },
5692
+ { Type:REPORT_COLUMN_ID.RESERVE_NUMBER19_ID, Title:"数值19", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"9999.99", FloatPrecision:2 },
5693
+ { Type:REPORT_COLUMN_ID.RESERVE_NUMBER20_ID, Title:"数值20", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"9999.99", FloatPrecision:2 },
5640
5694
 
5641
5695
  { Type:REPORT_COLUMN_ID.RESERVE_STRING1_ID, Title:"文字1", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
5642
5696
  { Type:REPORT_COLUMN_ID.RESERVE_STRING2_ID, Title:"文字2", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
@@ -5704,6 +5758,11 @@ function ChartReport()
5704
5758
  this.Canvas.clip();
5705
5759
  }
5706
5760
 
5761
+ this.CreateTempCache=function()
5762
+ {
5763
+ this.TempCache={ MapReserveDateTime:new Map() }; //MapReserveDateTime:key=colindex, Value:{ PreDate }
5764
+ }
5765
+
5707
5766
  this.Draw=function(lastMouseStatus)
5708
5767
  {
5709
5768
  this.ShowSymbol=[];
@@ -5712,6 +5771,7 @@ function ChartReport()
5712
5771
  this.AryFullSelectedRow=[];
5713
5772
  this.DevicePixelRatio=GetDevicePixelRatio()
5714
5773
  this.LastMouseStatus=lastMouseStatus;
5774
+ this.CreateTempCache();
5715
5775
 
5716
5776
  if (this.GlobalOption) this.GlobalOption.FlashBGCount=0;
5717
5777
 
@@ -5750,6 +5810,7 @@ function ChartReport()
5750
5810
  this.LastMouseStatus=null;
5751
5811
  this.SizeChange=false;
5752
5812
  this.AryFullSelectedRow=[];
5813
+ this.TempCache=null;
5753
5814
  }
5754
5815
 
5755
5816
  this.DrawDragHeaderBG=function()
@@ -7164,7 +7225,11 @@ function ChartReport()
7164
7225
  [
7165
7226
  REPORT_COLUMN_ID.RESERVE_NUMBER1_ID,REPORT_COLUMN_ID.RESERVE_NUMBER2_ID,REPORT_COLUMN_ID.RESERVE_NUMBER3_ID,
7166
7227
  REPORT_COLUMN_ID.RESERVE_NUMBER4_ID,REPORT_COLUMN_ID.RESERVE_NUMBER5_ID,REPORT_COLUMN_ID.RESERVE_NUMBER6_ID,REPORT_COLUMN_ID.RESERVE_NUMBER7_ID,
7167
- REPORT_COLUMN_ID.RESERVE_NUMBER8_ID,REPORT_COLUMN_ID.RESERVE_NUMBER9_ID,REPORT_COLUMN_ID.RESERVE_NUMBER10_ID
7228
+ REPORT_COLUMN_ID.RESERVE_NUMBER8_ID,REPORT_COLUMN_ID.RESERVE_NUMBER9_ID,REPORT_COLUMN_ID.RESERVE_NUMBER10_ID,
7229
+
7230
+ REPORT_COLUMN_ID.RESERVE_NUMBER11_ID,REPORT_COLUMN_ID.RESERVE_NUMBER12_ID,REPORT_COLUMN_ID.RESERVE_NUMBER13_ID,
7231
+ REPORT_COLUMN_ID.RESERVE_NUMBER14_ID,REPORT_COLUMN_ID.RESERVE_NUMBER15_ID,REPORT_COLUMN_ID.RESERVE_NUMBER16_ID,REPORT_COLUMN_ID.RESERVE_NUMBER17_ID,
7232
+ REPORT_COLUMN_ID.RESERVE_NUMBER18_ID,REPORT_COLUMN_ID.RESERVE_NUMBER19_ID,REPORT_COLUMN_ID.RESERVE_NUMBER20_ID
7168
7233
  ];
7169
7234
 
7170
7235
  return ARARY_TYPE.includes(value);
@@ -7638,6 +7703,36 @@ function ChartReport()
7638
7703
  }
7639
7704
  }
7640
7705
 
7706
+ this.GetReserveDateTimePreItem=function(colIndex)
7707
+ {
7708
+ if (!this.CreateTempCache) return null;
7709
+ if (!this.TempCache.MapReserveDateTime) return null;
7710
+
7711
+ var mapData=this.TempCache.MapReserveDateTime;
7712
+ if (!mapData.has(colIndex)) return null;
7713
+
7714
+ return mapData.get(colIndex);
7715
+ }
7716
+
7717
+ this.SetReserveDateTimePreItem=function(colIndex,data)
7718
+ {
7719
+ if (!this.CreateTempCache) return false;
7720
+ if (!this.TempCache.MapReserveDateTime) return false;
7721
+
7722
+ var mapData=this.TempCache.MapReserveDateTime;
7723
+ if (mapData.has(colIndex))
7724
+ {
7725
+ var item=mapData.get(colIndex);
7726
+ item.PreItem.Date=data.Date;
7727
+ }
7728
+ else
7729
+ {
7730
+ mapData.set(colIndex, { PreItem:{ Date:data.Date } })
7731
+ }
7732
+
7733
+ return true;
7734
+ }
7735
+
7641
7736
  this.FormatReserveDateTime=function(column, data, drawInfo)
7642
7737
  {
7643
7738
  if (column.DefaultText) drawInfo.Text=column.DefaultText;
@@ -7648,7 +7743,24 @@ function ChartReport()
7648
7743
  var item=data[fieldName];
7649
7744
  if (!IFrameSplitOperator.IsObject(item)) return;
7650
7745
 
7651
- if (item.DateTime) drawInfo.Text=IFrameSplitOperator.FormatDateTimeStringV2(item.DateTime,column.DateTimeFormat);
7746
+ var cacheItem=this.GetReserveDateTimePreItem(drawInfo.ColumnIndex);
7747
+ if (item.DateTime)
7748
+ {
7749
+ var date=item.DateTime.getFullYear()*10000+(item.DateTime.getMonth()+1)*100+item.DateTime.getDate();
7750
+ var format=column.DateTimeFormat;
7751
+ if (cacheItem && cacheItem.PreItem && date==cacheItem.PreItem.Date)
7752
+ {
7753
+ if (column.SubDateTimeFormat) format=column.SubDateTimeFormat
7754
+ }
7755
+ else
7756
+ {
7757
+
7758
+ this.SetReserveDateTimePreItem(drawInfo.ColumnIndex, {Date:date});
7759
+ }
7760
+
7761
+ drawInfo.Text=IFrameSplitOperator.FormatDateTimeStringV2(item.DateTime, format);
7762
+ }
7763
+
7652
7764
  if (item.TextColor) drawInfo.TextColor=item.TextColor;
7653
7765
  if (item.BGColor) drawInfo.BGColor=item.BGColor;
7654
7766
  }
@@ -1844,6 +1844,10 @@ HQData.Report_RequestStockData=function(data, callback)
1844
1844
 
1845
1845
  newItem[301]=HQData.GetRandomTestData(0,100)/100;
1846
1846
  newItem[302]=HQData.GetRandomTestData(0,100)/100;
1847
+
1848
+ var testDate=new Date();
1849
+ testDate.setHours(testDate.getHours() + i*2)
1850
+ newItem[401]={ DateTime:testDate } ;
1847
1851
 
1848
1852
 
1849
1853
  item.Data=newItem;
@@ -1999,6 +2003,9 @@ HQData.Report_RequestStockSortData=function(data, callback)
1999
2003
  extendData[7]=(Math.round(Math.random()*60))/100;
2000
2004
  extendData[8]=(Math.round(Math.random()*60))/100;
2001
2005
 
2006
+ var testDate=new Date();
2007
+ testDate.setHours(testDate.getHours() + i*2)
2008
+ newItem[401]={ DateTime:testDate } ;
2002
2009
 
2003
2010
  item.Data=newItem;
2004
2011
  }
@@ -2571,6 +2578,8 @@ HQData.Report_APIIndex=function(data, callback)
2571
2578
  HQData.APIIndex_MARK_AREA_V2(data, callback);
2572
2579
  else if (request.Data.indexname=="API_CHANNELV2")
2573
2580
  HQData.APIIndex_CHANNEL_V2(data, callback);
2581
+ else if (request.Data.indexname=="API_CHART_AREA_TEXT")
2582
+ HQData.API_CHART_AREA_TEXT(data, callback);
2574
2583
  }
2575
2584
 
2576
2585
 
@@ -4065,3 +4074,84 @@ HQData.APIIndex_MARK_AREA_V2=function(data, callback)
4065
4074
  }
4066
4075
 
4067
4076
 
4077
+ HQData.API_CHART_AREA_TEXT=function(data, callback)
4078
+ {
4079
+ data.PreventDefault=true;
4080
+ var hqchart=data.HQChart;
4081
+ var kData=hqchart.GetKData();
4082
+
4083
+ var markData=
4084
+ {
4085
+ name:'区域文字', type:1,
4086
+ Draw:
4087
+ {
4088
+ DrawType:'JS_CHART_AREA_TEXT',
4089
+ DrawData:
4090
+ {
4091
+ AryData:[], //[ { Start:{ }, End:{ }, AreaColor:, Text:"", BarColor:, TextColor:, ID: }]
4092
+ },
4093
+
4094
+ Config:{ },
4095
+ }
4096
+ };
4097
+
4098
+ var markItem=null;
4099
+ for(var i=0;i<kData.Data.length;++i)
4100
+ {
4101
+ var kItem=kData.Data[i];
4102
+ if (!markItem)
4103
+ {
4104
+ markItem=
4105
+ {
4106
+ Start:{ Date:kItem.Date, Time:kItem.Time },
4107
+ End:{ Date:kItem.Date, Time:kItem.Time },
4108
+ BGColor:"rgba(186,85,211,0.5)",
4109
+ TextColor:"rgb(255,215,0)",
4110
+ ID:i,
4111
+ Count:1,
4112
+ AryText:
4113
+ [
4114
+ {
4115
+ AryText:
4116
+ [
4117
+ { Text:`日期: ${kItem.Date} `, Color:"rgb(220,220,220)"},
4118
+ { Text:`ID: ${i} `, Color:"rgb(255,165,0)" }
4119
+ ],
4120
+ },
4121
+ {
4122
+ AryText:
4123
+ [
4124
+ { Text:`数据1: -- `, Color:"rgb(30,144,255)"},
4125
+ { Text:`数据2: -- `, Color:"rgb(255,0,255)" }
4126
+ ],
4127
+ }
4128
+ ]
4129
+ }
4130
+ }
4131
+ else
4132
+ {
4133
+ markItem.End.Date=kItem.Date;
4134
+ markItem.End.Time=kItem.Time;
4135
+ markItem.Count++;
4136
+
4137
+ if (markItem.Count>150)
4138
+ {
4139
+ markData.Draw.DrawData.AryData.push(markItem);
4140
+ markItem=null;
4141
+ }
4142
+ }
4143
+
4144
+ }
4145
+
4146
+ var apiData=
4147
+ {
4148
+ code:0,
4149
+ stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
4150
+ outdata: { date:kData.GetDate(), time:kData.GetTime(), outvar:[markData] }
4151
+ };
4152
+
4153
+ console.log('[HQData.API_CHART_AREA_TEXT] apiData ', apiData);
4154
+ callback(apiData);
4155
+ }
4156
+
4157
+