hqchart 1.1.15111 → 1.1.15126

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.
@@ -2626,6 +2626,14 @@ JSChart.RegisterChartFrameClass=function(name, option)
2626
2626
  }
2627
2627
 
2628
2628
 
2629
+ //注册DOM对话框类
2630
+ //option:{ Create:创建类方法 }
2631
+ JSChart.RegisterDOMClass=function(name, option)
2632
+ {
2633
+ return g_JSDOMFactory.Add(name, option);
2634
+ }
2635
+
2636
+
2629
2637
  //一些公共函数
2630
2638
  JSChart.ToFixedPoint=function(value)
2631
2639
  {
@@ -10351,6 +10359,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
10351
10359
  if (IFrameSplitOperator.IsBool(windowItem.IsShowTitleArrow)) frame.IsShowTitleArrow=windowItem.IsShowTitleArrow;
10352
10360
  if (IFrameSplitOperator.IsNumber(windowItem.TitleArrowType)) frame.TitleArrowType=windowItem.TitleArrowType;
10353
10361
  if (IFrameSplitOperator.IsBool(windowItem.IsShowIndexName)) frame.IsShowIndexName=windowItem.IsShowIndexName;
10362
+ if (IFrameSplitOperator.IsBool(windowItem.IsSinlgeLine)) frame.IsSinlgeLine=windowItem.IsSinlgeLine;
10354
10363
  if (IFrameSplitOperator.IsBool(windowItem.IsShowOverlayIndexName)) frame.IsShowOverlayIndexName=windowItem.IsShowOverlayIndexName;
10355
10364
  if (IFrameSplitOperator.IsNumber(windowItem.IndexParamSpace)) frame.IndexParamSpace=windowItem.IndexParamSpace;
10356
10365
  if (IFrameSplitOperator.IsNumber(windowItem.IndexTitleSpace)) frame.IndexTitleSpace=windowItem.IndexTitleSpace;
@@ -10474,6 +10483,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
10474
10483
  if (IFrameSplitOperator.IsBool(option.IsShowTitleArrow)) subFrame.Frame.IsShowTitleArrow=option.IsShowTitleArrow;
10475
10484
  if (IFrameSplitOperator.IsNumber(option.TitleArrowType)) subFrame.Frame.TitleArrowType=option.TitleArrowType;
10476
10485
  if (IFrameSplitOperator.IsBool(option.IsShowIndexName)) subFrame.Frame.IsShowIndexName=option.IsShowIndexName;
10486
+ if (IFrameSplitOperator.IsBool(option.IsSinlgeLine)) subFrame.Frame.IsSinlgeLine=option.IsSinlgeLine;
10477
10487
  if (IFrameSplitOperator.IsBool(option.IsShowOverlayIndexName)) subFrame.Frame.IsShowOverlayIndexName=option.IsShowOverlayIndexName;
10478
10488
  if (IFrameSplitOperator.IsNumber(option.IndexParamSpace)) subFrame.Frame.IndexParamSpace=option.IndexParamSpace;
10479
10489
  if (IFrameSplitOperator.IsBool(option.IsShowXLine)) subFrame.Frame.IsShowXLine=option.IsShowXLine;
@@ -12559,6 +12569,36 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
12559
12569
  this.UpdateWindowIndexV2(aryUpdate);
12560
12570
  return true;
12561
12571
  }
12572
+
12573
+ this.TryClickLock=function(x,y)
12574
+ {
12575
+ if (!this.Frame || !IFrameSplitOperator.IsNonEmptyArray(this.Frame.SubFrame)) return false;
12576
+
12577
+ for(var i=0;i<this.Frame.SubFrame.length; ++i)
12578
+ {
12579
+ var item=this.Frame.SubFrame[i];
12580
+ var chartLock=item.Frame.LockPaint;
12581
+ if (!chartLock || !chartLock.LockRect) continue;
12582
+
12583
+ var tooltip=new TooltipData();
12584
+ if (!chartLock.GetTooltipData(x,y,tooltip)) continue;
12585
+
12586
+ tooltip.HQChart=this;
12587
+
12588
+ var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_INDEX_LOCK);
12589
+ if (event && event.Callback)
12590
+ {
12591
+ var sendData={ FrameID:item.Frame.Identify, Data:tooltip };
12592
+ event.Callback(event,sendData,this);
12593
+ }
12594
+
12595
+
12596
+ if (tooltip.Data.Callback) tooltip.Data.Callback(tooltip);
12597
+ return true;
12598
+ }
12599
+
12600
+ return false;
12601
+ }
12562
12602
  }
12563
12603
 
12564
12604
  function GetDevicePixelRatio()
@@ -13213,6 +13253,7 @@ function IChartFramePainting()
13213
13253
  this.IsShowBorder = true; //是否显示边框
13214
13254
  this.IsShowTitleArrow=g_JSChartResource.IndexTitle.EnableIndexArrow; //是否显示指标信息上涨下跌箭头
13215
13255
  this.TitleArrowType=g_JSChartResource.IndexTitle.ArrowType; //指标信息上涨下跌箭头类型 0=独立颜色 1=跟指标名字颜色一致
13256
+ this.IsSinlgeLine=g_JSChartResource.IndexTitle.IsSinlgeLine;
13216
13257
  this.IsShowIndexName=true; //是否显示指标名字
13217
13258
  this.IsShowOverlayIndexName=true; //是否显示叠加指标名字
13218
13259
  //this.OverlayIndexType= { Position:0, LineSpace:5 };
@@ -16314,7 +16355,7 @@ function AverageWidthFrame()
16314
16355
 
16315
16356
  if (this.ClassName=="MinuteFrame" || this.ClassName=="KLineFrame")
16316
16357
  {
16317
- this.DivFrameToolbar=new JSDivFrameToolbar();
16358
+ this.DivFrameToolbar=g_JSDOMFactory.Create('JSDivFrameToolbar');//new JSDivFrameToolbar();
16318
16359
  this.DivFrameToolbar.HQChart=hqchart;
16319
16360
  this.DivFrameToolbar.DivHQChart=divHQChart;
16320
16361
  this.DivFrameToolbar.FrameID=frameID;
@@ -26859,9 +26900,20 @@ function IChartPainting()
26859
26900
  var x=left+width/2;
26860
26901
  var y=top+height/2;
26861
26902
 
26903
+ var bHScreen=this.ChartFrame.IsHScreen;
26904
+ if (bHScreen)
26905
+ {
26906
+ this.Canvas.save();
26907
+ this.Canvas.translate(x, y);
26908
+ this.Canvas.rotate(90 * Math.PI / 180);
26909
+ x=0,y=0;
26910
+ }
26911
+
26862
26912
  this.Canvas.textAlign="center";
26863
26913
  this.Canvas.textBaseline="middle";
26864
26914
  this.Canvas.fillText(this.NotSupportMessage,x,y);
26915
+
26916
+ if (bHScreen) this.Canvas.restore();
26865
26917
  }
26866
26918
 
26867
26919
  this.GetTooltipData=function(x,y,tooltip)
@@ -47903,6 +47955,8 @@ function ChartLock()
47903
47955
  this.IndexName; //指标名字
47904
47956
  this.IndexID; //指标ID
47905
47957
 
47958
+ this.MinWidthText=" 付费指标 "
47959
+
47906
47960
  this.SetData=function(aryData)
47907
47961
  {
47908
47962
  this.AryData=aryData;
@@ -48030,11 +48084,27 @@ function ChartLock()
48030
48084
  }
48031
48085
  }
48032
48086
 
48087
+ this.Canvas.font=this.Font;
48088
+ var minWidth=this.Canvas.measureText(this.MinWidthText).width;
48089
+
48090
+ var aryText=null;
48091
+ if (Array.isArray(this.Title)) aryText=this.Title;
48092
+ else aryText=[{Text:this.Title}];
48093
+
48094
+ var outSize={ };
48095
+ if (!this.CalculateTextSize(aryText, this.Font, outSize)) outSize=null;
48096
+ if (outSize && outSize.Width+8>minWidth) minWidth=outSize.Width+8; //确保文字可以显示
48097
+
48033
48098
  if (bHScreen)
48034
48099
  {
48035
48100
  var rtBG={ Left:border.Left, Right:border.RightEx, Top:left, Bottom:border.Bottom };
48036
48101
  rtBG.Width=rtBG.Right-rtBG.Left;
48037
48102
  rtBG.Height=rtBG.Bottom-rtBG.Top;
48103
+ if (rtBG.Height<minWidth)
48104
+ {
48105
+ rtBG.Height=minWidth;
48106
+ rtBG.Top=rtBG.Bottom-rtBG.Height;
48107
+ }
48038
48108
  this.LockRect=rtBG; //保存上锁区域
48039
48109
 
48040
48110
  if (bDraw)
@@ -48049,6 +48119,11 @@ function ChartLock()
48049
48119
  var rtBG={ Left:left, Right:border.RightEx, Top:border.TopTitle, Bottom:border.Bottom };
48050
48120
  rtBG.Width=rtBG.Right-rtBG.Left;
48051
48121
  rtBG.Height=rtBG.Bottom-rtBG.Top;
48122
+ if (rtBG.Width<minWidth)
48123
+ {
48124
+ rtBG.Width=minWidth;
48125
+ rtBG.Left=rtBG.Right-rtBG.Width;
48126
+ }
48052
48127
  this.LockRect=rtBG; //保存上锁区域
48053
48128
 
48054
48129
  if (bDraw)
@@ -48061,13 +48136,7 @@ function ChartLock()
48061
48136
  }
48062
48137
 
48063
48138
  if (!bDraw) return;
48064
-
48065
- var aryText=null;
48066
- if (Array.isArray(this.Title)) aryText=this.Title;
48067
- else aryText=[{Text:this.Title}];
48068
-
48069
- var outSize={ };
48070
- if (!this.CalculateTextSize(aryText, this.Font, outSize)) return;
48139
+ if (!outSize) return;
48071
48140
 
48072
48141
  this.Canvas.textAlign='left';
48073
48142
  this.Canvas.textBaseline='bottom';
@@ -62578,6 +62647,7 @@ function DynamicChartTitlePainting()
62578
62647
  this.IsShowIndexName=true; //是否显示指标名字
62579
62648
  this.IsShowIndexTitle=true; //是否显示指标标题信息
62580
62649
  this.IsShowNameArrow=false;
62650
+ this.IsSinlgeLine=false; //主图指标标题是否单行显示
62581
62651
  this.NameArrowConfig=CloneData(g_JSChartResource.IndexTitle.NameArrow);
62582
62652
  this.CustomLocation; //自定义位置 { IsShow:, Top:, TitleHeight: }
62583
62653
 
@@ -63316,6 +63386,7 @@ function DynamicChartTitlePainting()
63316
63386
  this.IsShowUpDownArrow=this.Frame.IsShowTitleArrow;
63317
63387
  this.TitleArrowType=this.Frame.TitleArrowType;
63318
63388
  this.IsShowIndexName=this.Frame.IsShowIndexName;
63389
+ this.IsSinlgeLine=this.Frame.IsSinlgeLine;
63319
63390
  this.IsShowOverlayIndexName=this.Frame.IsShowOverlayIndexName;
63320
63391
  this.OverlayIndexType.Position=this.Frame.OverlayIndexType.Position;
63321
63392
  this.OverlayIndexType.LineSpace=this.Frame.OverlayIndexType.LineSpace;
@@ -63722,6 +63793,7 @@ function DynamicChartTitlePainting()
63722
63793
 
63723
63794
  if ((left+textWidth+space)>right)
63724
63795
  {
63796
+ if (this.IsSinlgeLine) break;
63725
63797
  left=newLineLeft;
63726
63798
  bottom+=lineHeight;
63727
63799
  right=this.Frame.ChartBorder.GetRight(); //第2行以后 右侧边框
@@ -63786,6 +63858,7 @@ function DynamicChartTitlePainting()
63786
63858
  var textWidth=this.Canvas.measureText(text).width+space;
63787
63859
  if ((left+textWidth)>right) //换行
63788
63860
  {
63861
+ if (this.IsSinlgeLine) break;
63789
63862
  left=newLineLeft;
63790
63863
  bottom+=lineHeight;
63791
63864
  right=this.Frame.ChartBorder.GetRight(); //第2行以后 右侧边框
@@ -77273,6 +77346,8 @@ function JSChartResource()
77273
77346
  EnableIndexArrow:true, //指标数值是否带上涨下跌箭头
77274
77347
 
77275
77348
  NameArrow:{ Color:"rgb(43,54,69)", Space:2, Symbol:'▼' },
77349
+
77350
+ IsSinlgeLine:false, //主图指标是否单行显示 false=多行显示
77276
77351
  }
77277
77352
 
77278
77353
  this.Title={
@@ -78958,6 +79033,7 @@ function JSChartResource()
78958
79033
 
78959
79034
  if (IFrameSplitOperator.IsNumber(item.ArrowType)) this.IndexTitle.ArrowType=item.ArrowType;
78960
79035
  if (IFrameSplitOperator.IsBool(item.EnableIndexArrow)) this.IndexTitle.EnableIndexArrow=item.EnableIndexArrow;
79036
+ if (IFrameSplitOperator.IsBool(item.IsSinlgeLine)) this.IndexTitle.IsSinlgeLine=item.IsSinlgeLine;
78961
79037
 
78962
79038
  if (item.NameArrow)
78963
79039
  {
@@ -86722,32 +86798,6 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
86722
86798
  }
86723
86799
  }
86724
86800
 
86725
- this.TryClickLock=function(x,y)
86726
- {
86727
- for(var i=0;i<this.Frame.SubFrame.length; ++i)
86728
- {
86729
- var item=this.Frame.SubFrame[i];
86730
- var chartLock=item.Frame.LockPaint;
86731
- if (!chartLock || !chartLock.LockRect) continue;
86732
-
86733
- var tooltip=new TooltipData();
86734
- if (!chartLock.GetTooltipData(x,y,tooltip)) continue;
86735
-
86736
- tooltip.HQChart=this;
86737
- var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_INDEX_LOCK);
86738
- if (event && event.Callback)
86739
- {
86740
- var sendData={ FrameID:item.Frame.Identify, Data:tooltip };
86741
- event.Callback(event,sendData,this);
86742
- }
86743
-
86744
- if (tooltip.Data.Callback) tooltip.Data.Callback(tooltip);
86745
- return true;
86746
- }
86747
-
86748
- return false;
86749
- }
86750
-
86751
86801
  this.TryClickIndexTitle=function(x,y)
86752
86802
  {
86753
86803
  for(var i in this.TitlePaint)
@@ -96554,34 +96604,6 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
96554
96604
 
96555
96605
  return false;
96556
96606
  }
96557
-
96558
- this.TryClickLock=function(x,y)
96559
- {
96560
- for(var i=0;i<this.Frame.SubFrame.length; ++i)
96561
- {
96562
- var item=this.Frame.SubFrame[i];
96563
- var chartLock=item.Frame.LockPaint;
96564
- if (!chartLock || !chartLock.LockRect) continue;
96565
-
96566
- var tooltip=new TooltipData();
96567
- if (!chartLock.GetTooltipData(x,y,tooltip)) continue;
96568
-
96569
- tooltip.HQChart=this;
96570
-
96571
- var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_INDEX_LOCK);
96572
- if (event && event.Callback)
96573
- {
96574
- var sendData={ FrameID:item.Frame.Identify, Data:tooltip };
96575
- event.Callback(event,sendData,this);
96576
- }
96577
-
96578
-
96579
- if (tooltip.Data.Callback) tooltip.Data.Callback(tooltip);
96580
- return true;
96581
- }
96582
-
96583
- return false;
96584
- }
96585
96607
  }
96586
96608
 
96587
96609
  //盘前数据
@@ -98533,6 +98555,7 @@ function KLineChartHScreenContainer(uielement)
98533
98555
  frame.RightSpaceCount=this.RightSpaceCount; //右边
98534
98556
  frame.GetEventCallback=(id)=> { return this.GetEventCallback(id); };
98535
98557
  frame.GlobalOption=this.GlobalOption;
98558
+ frame.CreateLockPaint();
98536
98559
 
98537
98560
  frame.HorizontalMax=20;
98538
98561
  frame.HorizontalMin=10;
@@ -98721,6 +98744,7 @@ function MinuteChartHScreenContainer(uielement)
98721
98744
  frame.XPointCount=243;
98722
98745
  frame.HQChart=this;
98723
98746
  frame.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
98747
+ frame.CreateLockPaint();
98724
98748
 
98725
98749
  var DEFAULT_HORIZONTAL=[9,8,7,6,5,4,3,2,1];
98726
98750
  frame.HorizontalMax=DEFAULT_HORIZONTAL[0];
@@ -105407,7 +105431,7 @@ function JSDivFrameToolbar()
105407
105431
  {
105408
105432
  var item=aryButton[i];
105409
105433
  if (!item.ID || !item.ClassName) continue;
105410
- var newItem={ ID:item.ID, ClassName:item.ClassName, Span:null,Div:null, TooltipSpan:null };
105434
+ var newItem={ ID:item.ID, ClassName:item.ClassName, Span:null,Div:null, TooltipSpan:null, SpanText:item.SpanText };
105411
105435
  if (item.Tooltip && item.Tooltip.Text) newItem.Tooltip={ Text:item.Tooltip.Text };
105412
105436
 
105413
105437
  this.AryButton.push(newItem);
@@ -105438,7 +105462,7 @@ function JSDivFrameToolbar()
105438
105462
  if (!frame && this.FrameID>=0 && this.FrameID<this.HQChart.Frame.SubFrame.length)
105439
105463
  frame=this.HQChart.Frame.SubFrame[this.FrameID].Frame;
105440
105464
 
105441
- var aryDefaultButton=JSDivFrameToolbar.GetDfaultButtons();
105465
+ var aryDefaultButton=JSDivFrameToolbar.GetDfaultButtons(frame);
105442
105466
  var aryButton=[];
105443
105467
  for(var i=0;i<aryDefaultButton.length; i++)
105444
105468
  {
@@ -105496,8 +105520,6 @@ function JSDivFrameToolbar()
105496
105520
  this.SetToolbar(aryButton); //重新设置按钮
105497
105521
  }
105498
105522
 
105499
-
105500
-
105501
105523
  this.Destroy=function()
105502
105524
  {
105503
105525
  if (this.DivToolbar)
@@ -105565,6 +105587,7 @@ function JSDivFrameToolbar()
105565
105587
  var spanDom=document.createElement("span");
105566
105588
  spanDom.className=item.ClassName;
105567
105589
  spanDom.onmousedown=(e)=>{ this.OnClickButton(e, item); };
105590
+ if (item.SpanText) spanDom.innerText=item.SpanText;
105568
105591
  item.Span=spanDom;
105569
105592
  btnDiv.appendChild(spanDom);
105570
105593
 
@@ -105649,7 +105672,7 @@ function JSDivFrameToolbar()
105649
105672
  }
105650
105673
  }
105651
105674
 
105652
- JSDivFrameToolbar.GetDfaultButtons=function()
105675
+ JSDivFrameToolbar.GetDfaultButtons=function(frame)
105653
105676
  {
105654
105677
  var aryButton=
105655
105678
  [
@@ -105673,12 +105696,50 @@ JSDivFrameToolbar.GetDfaultButtons=function()
105673
105696
  ID:JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-close", Tooltip:{ Text:"关闭窗口"},
105674
105697
  Span:null,Div:null, TooltipSpan:null
105675
105698
  },
105699
+
105700
+ /*
105701
+ {
105702
+ ID:"TEST_8889", ClassName:"UMyChart_FrameToolbar_Span_Text", Tooltip:{ Text:"测试按钮提示"}, SpanText:"测试按钮",
105703
+ Span:null, Div:null, TooltipSpan:null
105704
+ },
105705
+ */
105676
105706
  ];
105677
105707
 
105678
105708
  return aryButton
105679
105709
  }
105680
105710
 
105681
105711
 
105712
+
105713
+ //DOM工厂类
105714
+ function JSDOMFactory()
105715
+ {
105716
+ //[key:name, { Create:function(divElement) { return new class(divElement); }} ]
105717
+ this.DataMap=new Map(
105718
+ [
105719
+ ["JSDivFrameToolbar", { Create:function(option) { return new JSDivFrameToolbar(option); } }],
105720
+ ]);
105721
+
105722
+ this.Create=function(name, option)
105723
+ {
105724
+ if (!this.DataMap.has(name))
105725
+ {
105726
+ JSConsole.Chart.Warn(`[JSDOMFactory::Create] can't find class=${name}.`);
105727
+ return null;
105728
+ }
105729
+
105730
+ var item=this.DataMap.get(name);
105731
+ return item.Create(option);
105732
+ }
105733
+
105734
+ this.Add=function(name, option)
105735
+ {
105736
+ this.DataMap.set(name, { Create:option.Create } );
105737
+ }
105738
+ }
105739
+
105740
+ var g_JSDOMFactory=new JSDOMFactory();
105741
+
105742
+
105682
105743
  function JSToolbarTooltip()
105683
105744
  {
105684
105745
  this.DivTooltip=null;
@@ -351,7 +351,7 @@ HQData.Minute_RequestMinuteData=function(data, callback)
351
351
  }
352
352
 
353
353
  //盘中
354
- stockItem.minute.length=50;
354
+ //stockItem.minute.length=50;
355
355
  //测试用 这里可以修改数据
356
356
  //var lastItem=srcStock.minute[srcStock.minute.length-1];
357
357
  //lastItem.price+=Math.ceil(Math.random()*10)/1000*lastItem.price;
@@ -1967,6 +1967,9 @@ HQData.Report_RequestStockData=function(data, callback)
1967
1967
  var testDate=new Date();
1968
1968
  testDate.setHours(testDate.getHours() + i*2)
1969
1969
  newItem[401]={ DateTime:testDate } ;
1970
+
1971
+
1972
+ newItem[JSCHART_DATA_FIELD_ID.REPORT_EXTENDDATA]={ Value:"ddddd" };
1970
1973
 
1971
1974
 
1972
1975
  item.Data=newItem;
@@ -2684,6 +2687,8 @@ HQData.Report_APIIndex=function(data, callback)
2684
2687
  HQData.APIIndex_SCATTER_PLOT_V2(data, callback);
2685
2688
  else if (request.Data.indexname=="API_KLINE_TABLE")
2686
2689
  HQData.APIIndex_KLINE_TABLE(data, callback);
2690
+ else if (request.Data.indexname=="API_MINUTE_TABLE")
2691
+ HQData.APIIndex_MINUTE_TABLE(data, callback);
2687
2692
  else if (request.Data.indexname=="API_DRAWSVG")
2688
2693
  HQData.APIIndex_DRAWSVG(data, callback);
2689
2694
  else if (request.Data.indexname=="API_BASELINE_BAR")
@@ -2691,6 +2696,9 @@ HQData.Report_APIIndex=function(data, callback)
2691
2696
  else if (request.Data.indexname=="API_VERTLINE")
2692
2697
  HQData.APIIndex_VERTLINE(data, callback);
2693
2698
 
2699
+ else if (request.Data.indexname=="API_ERRORMESSAGE")
2700
+ HQData.APIIndex_ErrorMessage(data, callback);
2701
+
2694
2702
 
2695
2703
  //付费图形
2696
2704
  else if (request.Data.indexname=="API_MARK_AREA_V2")
@@ -3886,6 +3894,114 @@ HQData.APIIndex_KLINE_TABLE=function(data, callback)
3886
3894
  }
3887
3895
 
3888
3896
 
3897
+ HQData.APIIndex_MINUTE_TABLE=function(data, callback)
3898
+ {
3899
+ data.PreventDefault=true;
3900
+ var hqchart=data.HQChart;
3901
+ var kData=data.HQChart.GetKData(); //hqchart图形的分钟数据
3902
+
3903
+ var tableData=
3904
+ {
3905
+ name:'JS_CHART_MINUTETABLE_9DFC', type:1,
3906
+ Draw:
3907
+ {
3908
+ DrawType:'JS_CHART_MINUTETABLE_9DFC',
3909
+ DrawData:[ ] , //数据 [ [ { Text, Color: BGColor }, ...... ], [],]
3910
+
3911
+ Config:
3912
+ {
3913
+ //BGColor:"rgba(238,232,205,0.5)",
3914
+ //BorderColor:"rgb(220,220,220)",
3915
+ TextColor:"rgb(250,250,250)",
3916
+ ItemMergin:{ Left:1, Right:1, Top:0, Bottom:0, YOffset:0 },
3917
+ TextFont:{ Family:'微软雅黑' , FontMaxSize:14*GetDevicePixelRatio(), },
3918
+ Style:1,
3919
+ CellWidth:18*GetDevicePixelRatio(),
3920
+ CellHeight:14*GetDevicePixelRatio(),
3921
+ RowCount:2,
3922
+ LineColor:"rgb(5,105,225)",
3923
+ LineDash:[5*GetDevicePixelRatio(),5*GetDevicePixelRatio()],
3924
+ }
3925
+ },
3926
+
3927
+ };
3928
+
3929
+ for(var i=0;i<kData.Data.length;++i)
3930
+ {
3931
+ var kItem=kData.Data[i];
3932
+
3933
+ //一列数据
3934
+ var colItem={ Date:kItem.Date, Time:kItem.Time, Data:[ ] };
3935
+
3936
+ if (kItem.Time==1030 || kItem.Time==1035)
3937
+ {
3938
+ colItem.Data[0]=
3939
+ {
3940
+ Text:"多", Color:"rgb(250,250,250)", BGColor:'rgb(250,0,0)', TextAlign:"center",
3941
+ Tooltip:
3942
+ {
3943
+ AryText:
3944
+ [
3945
+ {Title:"日期", Text:`${kItem.Date} ${kItem.Time}`},
3946
+ {Title:"买入价", Text:`${kItem.Close.toFixed(2)}`, TextColor:"rgb(250,0,0)"},
3947
+ {Title:"数量", Text:`${HQData.GetRandomTestData(100,400).toFixed(0)}`,TextColor:"rgb(255,165,0)" },
3948
+ ]
3949
+ }
3950
+ };
3951
+ }
3952
+ else if (kItem.Time==1033 || kItem.Time==1025)
3953
+ {
3954
+ colItem.Data[0]=
3955
+ {
3956
+ Text:"空", Color:"rgb(250,250,250)", BGColor:'rgb(0,128,0)', TextAlign:"center",
3957
+ Tooltip:
3958
+ {
3959
+ AryText:
3960
+ [
3961
+ {Title:"日期", Text:`${kItem.Date} ${kItem.Time}`},
3962
+ {Title:"买入价", Text:`${kItem.Close.toFixed(2)}`, TextColor:"rgb(250,0,0)"},
3963
+ {Title:"数量", Text:`${HQData.GetRandomTestData(100,400).toFixed(0)}`,TextColor:"rgb(255,165,0)" },
3964
+ ]
3965
+ }
3966
+ };
3967
+ }
3968
+ else if (kItem.Time==1028 || kItem.Time==1032 || kItem.Time==1034 )
3969
+ {
3970
+ colItem.Data[1]=
3971
+ {
3972
+ Text:"平", Color:"rgb(250,250,250)", BGColor:'rgb(255,165,0)', TextAlign:"center",
3973
+ Tooltip:
3974
+ {
3975
+ AryText:
3976
+ [
3977
+ {Title:"日期", Text:`${kItem.Date} ${kItem.Time}`},
3978
+ {Title:"卖入价", Text:`${kItem.Close.toFixed(2)}`, TextColor:"rgb(34,139,34)"},
3979
+ {Title:"数量", Text:`${HQData.GetRandomTestData(100,400).toFixed(0)}`,TextColor:"rgb(255,165,0)" },
3980
+ ]
3981
+ }
3982
+ };
3983
+ }
3984
+ else
3985
+ {
3986
+ continue;
3987
+ }
3988
+
3989
+
3990
+ tableData.Draw.DrawData.push(colItem);
3991
+ }
3992
+
3993
+ var apiData=
3994
+ {
3995
+ code:0,
3996
+ stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
3997
+ outdata: { date:kData.GetDate(), time:kData.GetTime(), outvar:[tableData] }
3998
+ };
3999
+
4000
+ console.log('[KLineChart::APIIndex_KLINE_TABLE2] apiData ', apiData);
4001
+ callback(apiData);
4002
+ }
4003
+
4004
+
3889
4005
  HQData.APIIndex_DRAWSVG=function(data, callback)
3890
4006
  {
3891
4007
  data.PreventDefault=true;
@@ -4274,3 +4390,11 @@ HQData.API_CHART_AREA_TEXT=function(data, callback)
4274
4390
  }
4275
4391
 
4276
4392
 
4393
+ HQData.APIIndex_ErrorMessage=function(data, callback)
4394
+ {
4395
+ var hqchartData={ outdata:{ date:null, time:null, outvar:[] } , code:0};
4396
+ hqchartData.error={ message:"错误提示信息" };
4397
+ callback(hqchartData);
4398
+ }
4399
+
4400
+