hqchart 1.1.13278 → 1.1.13286

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.
@@ -6459,6 +6459,8 @@ var JSCHART_EVENT_ID=
6459
6459
  ON_CHANGE_INDEX:150, //切换指标
6460
6460
  ON_MENU_COMMAND:151, //菜单时间回调
6461
6461
  ON_CREATE_RIGHT_MENU:152, //创建右键菜单
6462
+
6463
+ ON_FORMAT_CALL_AUCTION_INDEX_TITLE:153, //集合竞价指标窗口标题内容
6462
6464
  }
6463
6465
 
6464
6466
  var JSCHART_OPERATOR_ID=
@@ -9654,14 +9656,11 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
9654
9656
  }
9655
9657
  item.DrawStatus=drawStatus;
9656
9658
 
9657
- if (item.ClassName=="DynamicMinuteTitlePainting")
9658
- {
9659
- if (option && IFrameSplitOperator.IsNumber(option.ClientPos) && option.Point)
9660
- item.PointInfo={ ClientPos:option.ClientPos, Point:{ X:option.Point.X, Y:option.Point.Y }};
9661
- else
9662
- item.PointInfo=null;
9663
- }
9664
-
9659
+ var pointInfo=null;
9660
+ if (option && IFrameSplitOperator.IsNumber(option.ClientPos) && option.Point) //当前鼠标所在位置的详细信息 包含盘前盘后
9661
+ pointInfo={ ClientPos:option.ClientPos, Point:{ X:option.Point.X, Y:option.Point.Y }};
9662
+ item.PointInfo=pointInfo;
9663
+
9665
9664
  item.Draw(moveonPoint, this.LastMouseStatus);
9666
9665
  }
9667
9666
 
@@ -10421,9 +10420,6 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
10421
10420
  for(var i=0;i<border.DayBorder.length;++i)
10422
10421
  {
10423
10422
  var client=border.DayBorder[i];
10424
- this.Canvas.beginPath();
10425
- this.Canvas.rect(client.LeftEx,border.TopEx,client.RightEx-client.LeftEx,border.BottomEx-border.TopEx);
10426
- if (this.Canvas.isPointInPath(x,y)) return 1;
10427
10423
 
10428
10424
  //盘前
10429
10425
  this.Canvas.beginPath();
@@ -10431,6 +10427,11 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
10431
10427
  if (this.Canvas.isPointInPath(x,y))
10432
10428
  return 200+parseInt(i);
10433
10429
 
10430
+ //盘中
10431
+ this.Canvas.beginPath();
10432
+ this.Canvas.rect(client.LeftEx,border.TopEx,client.RightEx-client.LeftEx,border.BottomEx-border.TopEx);
10433
+ if (this.Canvas.isPointInPath(x,y)) return 1;
10434
+
10434
10435
  //盘后
10435
10436
  this.Canvas.beginPath();
10436
10437
  this.Canvas.rect(client.RightEx,border.TopEx,client.Right-client.RightEx,border.BottomEx-border.TopEx);
@@ -13710,6 +13711,8 @@ function ChartBorder()
13710
13711
  var item={ Left:this.Left+dayWidth*i, Right:this.Left+dayWidth*(i+1) };
13711
13712
  item.LeftEx=item.Left+this.MultiDayMinute.Left;
13712
13713
  item.RightEx=item.Right-this.MultiDayMinute.Right;
13714
+ if (i>0) item.Left+=1; //第2天的盘前 移到一个像素,跟上一天分开
13715
+
13713
13716
  dayBorder.push(item);
13714
13717
  }
13715
13718
 
@@ -14379,6 +14382,26 @@ function IChartFramePainting()
14379
14382
  {
14380
14383
 
14381
14384
  }
14385
+
14386
+ //bIncludeOverlay =false不包含叠加框架 true=主框架+叠加框架 默认true
14387
+ this.IsMinuteFrame=function(bIncludeOverlay)
14388
+ {
14389
+ var aryName=["MinuteFrame", "MinuteHScreenFrame", "OverlayMinuteFrame", "OverlayMinuteHScreenFrame"];
14390
+ if (bIncludeOverlay===false) aryName=["MinuteFrame", "MinuteHScreenFrame"];
14391
+
14392
+ var isMinute=aryName.includes(this.ClassName);
14393
+ return isMinute;
14394
+ }
14395
+
14396
+ //bIncludeOverlay =false不包含叠加框架 true=主框架+叠加框架 默认true
14397
+ this.IsKLineFrame=function(bIncludeOverlay)
14398
+ {
14399
+ var aryName=["KLineFrame", "KLineHScreenFrame", "KLineHScreenFrame", "OverlayKLineHScreenFrame"];
14400
+ if (bIncludeOverlay===false) aryName=["KLineFrame", "KLineHScreenFrame"];
14401
+
14402
+ var isKline=aryName.includes(this.ClassName);
14403
+ return isKline;
14404
+ }
14382
14405
  }
14383
14406
 
14384
14407
  //空框架只画边框
@@ -22850,18 +22873,31 @@ function HQTradeFrame()
22850
22873
  }
22851
22874
 
22852
22875
  //清空Y轴坐标的最大最小值
22853
- this.ClearYCoordinateMaxMin=function()
22876
+ this.ClearYCoordinateMaxMin=function(windowIndex)
22854
22877
  {
22855
- for(var i=0;i<this.SubFrame.length;++i)
22878
+ if (IFrameSplitOperator.IsNumber(windowIndex))
22856
22879
  {
22857
- var subItem=this.SubFrame[i];
22858
- var frame=subItem.Frame;
22880
+ var subItem=this.SubFrame[windowIndex];
22881
+ if (!subItem || !subItem.Frame) return;
22859
22882
  if (frame.YMaxMin)
22860
22883
  {
22861
22884
  frame.YMaxMin.Max=null;
22862
22885
  frame.YMaxMin.Min=null;
22863
22886
  }
22864
22887
  }
22888
+ else
22889
+ {
22890
+ for(var i=0;i<this.SubFrame.length;++i)
22891
+ {
22892
+ var subItem=this.SubFrame[i];
22893
+ var frame=subItem.Frame;
22894
+ if (frame.YMaxMin)
22895
+ {
22896
+ frame.YMaxMin.Max=null;
22897
+ frame.YMaxMin.Min=null;
22898
+ }
22899
+ }
22900
+ }
22865
22901
  }
22866
22902
 
22867
22903
  this.SetLanguage=function(languageID)
@@ -56456,6 +56492,7 @@ function DynamicChartTitlePainting()
56456
56492
  this.SelectedColor=g_JSChartResource.IndexTitleSelectedColor;
56457
56493
 
56458
56494
  this.IsKLineFrame=false; //是否是K线框架标题
56495
+ this.IsMinuteFrame=false;
56459
56496
  this.Identify; //指标ID
56460
56497
  this.SelectedChart; //选中的图形
56461
56498
  this.ArgumentsText; //参数信息
@@ -56478,6 +56515,7 @@ function DynamicChartTitlePainting()
56478
56515
  this.OverlayDynamicTitle=new Map(); //key , value={ OutName, OutValue }
56479
56516
 
56480
56517
  this.IsShowMainIndexTitle=true; //是否显示主图指标标题
56518
+ this.MainTitlePaint=null; //主标题
56481
56519
 
56482
56520
  this.ReloadResource=function()
56483
56521
  {
@@ -56892,7 +56930,8 @@ function DynamicChartTitlePainting()
56892
56930
  this.Buttons=[];
56893
56931
  if (this.Frame.IsMinSize) return;
56894
56932
 
56895
- this.IsKLineFrame= this.Frame.ClassName=='KLineFrame' || this.Frame.ClassName=='KLineHScreenFrame';
56933
+ this.IsKLineFrame= this.Frame.IsKLineFrame(false);
56934
+ this.IsMinuteFrame=this.Frame.IsMinuteFrame(false);
56896
56935
  this.IsDrawTitleBG=this.Frame.IsDrawTitleBG;
56897
56936
  this.IsShowNameArrow=this.Frame.IsShowNameArrow;
56898
56937
  this.IsShowUpDownArrow=this.Frame.IsShowTitleArrow;
@@ -56991,108 +57030,19 @@ function DynamicChartTitlePainting()
56991
57030
  if (isShowLastData) return;
56992
57031
  }
56993
57032
 
56994
- for(var i=0; i<this.Data.length && this.IsShowMainIndexTitle; ++i)
57033
+ var rtText={ Left:left, Right:left };
57034
+ if (this.IsMinuteFrame && this.PointInfo && ( this.PointInfo.ClientPos==2 || this.PointInfo.ClientPos==3 || (this.PointInfo.ClientPos>=200&& this.PointInfo.ClientPos<=299) || (this.PointInfo.ClientPos>=300&& this.PointInfo.ClientPos<=399) ))
56995
57035
  {
56996
- var item=this.Data[i];
56997
- var outText=this.GetTitleItem(item, isShowLastData, i);
56998
- if (!outText) continue;
56999
-
57000
- var valueText=outText.Text;
57001
- var aryText=outText.ArrayText;
57002
-
57003
- if (aryText) //多变量输出
57004
- {
57005
- var text;
57006
- for(var k=0;k<aryText.length;++k)
57007
- {
57008
- var titleItem=aryText[k];
57009
- if (titleItem.Name) text=titleItem.Name+":"+titleItem.Text;
57010
- else text=titleItem.Text;
57011
-
57012
- var space=this.ParamSpace*GetDevicePixelRatio();
57013
- var indexTextWidth=this.Canvas.measureText(text).width; //标题+数值长度
57014
- var textWidth=indexTextWidth;
57015
-
57016
- if (IFrameSplitOperator.IsNonEmptyArray(titleItem.TextEx))
57017
- {
57018
- var xLeft=left;
57019
- for(var n=0; n<titleItem.TextEx.length; ++n)
57020
- {
57021
- var outItem=titleItem.TextEx[n];
57022
- var outTextWidth=this.Canvas.measureText(outItem.Text).width+2;
57023
- outItem.Width=outTextWidth;
57024
- outItem.Left=xLeft;
57025
-
57026
- textWidth+=outTextWidth;
57027
- xLeft+=outTextWidth;
57028
- }
57029
- }
57030
-
57031
- if ((left+textWidth+space)>right) break;
57032
-
57033
- if (titleItem.BG) //背景
57034
- {
57035
- var textHeight=this.Canvas.measureText("擎").width+2;
57036
- var rtBG={ Left:left, Top:bottom-textHeight/2, Width:textWidth, Height:textHeight };
57037
- this.Canvas.fillStyle=titleItem.BG;
57038
- this.Canvas.fillRect(rtBG.Left,rtBG.Top-1, rtBG.Width, rtBG.Height);
57039
-
57040
- this.Canvas.fillStyle=titleItem.Color;
57041
- this.Canvas.fillText(text,rtBG.Left+1,bottom,indexTextWidth);
57042
- left+=indexTextWidth;
57043
-
57044
- if (IFrameSplitOperator.IsNonEmptyArray(titleItem.TextEx))
57045
- {
57046
- for(var n=0; n<titleItem.TextEx.length; ++n)
57047
- {
57048
- var outItem=titleItem.TextEx[n];
57049
- this.Canvas.fillStyle=outItem.TextColor;
57050
- this.Canvas.fillText(outItem.Text,left,bottom,outItem.Width);
57051
- left+=outItem.Width;
57052
- }
57053
- }
57054
-
57055
- left+=space;
57056
- }
57057
- else
57058
- {
57059
- this.Canvas.fillStyle=titleItem.Color;
57060
- this.Canvas.fillText(text,left,bottom,indexTextWidth);
57061
- left+=indexTextWidth;
57062
-
57063
- if (IFrameSplitOperator.IsNonEmptyArray(titleItem.TextEx))
57064
- {
57065
- for(var n=0; n<titleItem.TextEx.length; ++n)
57066
- {
57067
- var outItem=titleItem.TextEx[n];
57068
- this.Canvas.fillStyle=outItem.TextColor;
57069
- this.Canvas.fillText(outItem.Text,left,bottom,outItem.Width);
57070
- left+=outItem.Width;
57071
- }
57072
- }
57073
-
57074
- left+=space;
57075
- }
57076
- }
57077
- }
57078
- else
57079
- {
57080
- this.Canvas.fillStyle=item.Color;
57081
- var text=valueText;
57082
- if (item.Name)
57083
- {
57084
- var dyTitle=this.GetDynamicOutName(item.Name);
57085
- if (dyTitle) text=dyTitle+":"+valueText;
57086
- else text=item.Name+":"+valueText;
57087
- }
57088
- var space=this.ParamSpace*GetDevicePixelRatio();
57089
- var textWidth=this.Canvas.measureText(text).width+space;
57090
- if ((left+textWidth)>right) break;
57091
-
57092
- this.Canvas.fillText(text,left,bottom,textWidth);
57093
- left+=textWidth;
57094
- }
57036
+ var result={ PreventDefault:false }
57037
+ this.DrawMainCallAuction({ Left:left, Right:right, Bottom:bottom }, rtText, result);
57038
+ if (result.PreventDefault===false) this.DrawMainIndexTitle({ Left:left, Right:right, Bottom:bottom }, isShowLastData, rtText);
57095
57039
  }
57040
+ else
57041
+ {
57042
+ this.DrawMainIndexTitle({ Left:left, Right:right, Bottom:bottom }, isShowLastData, rtText);
57043
+ }
57044
+
57045
+ left=rtText.Left;
57096
57046
 
57097
57047
  if (this.Explain) //说明信息
57098
57048
  {
@@ -57296,6 +57246,185 @@ function DynamicChartTitlePainting()
57296
57246
  return { Text:valueText, ArrayText:aryText };
57297
57247
  }
57298
57248
 
57249
+ //绘制主图指标 rtText 返回画完以后的区域
57250
+ this.DrawMainIndexTitle=function(positionInfo, isShowLastData, rtText)
57251
+ {
57252
+ if (!this.IsShowMainIndexTitle) return;
57253
+
57254
+ var left=positionInfo.Left;
57255
+ var right=positionInfo.Right;
57256
+ var bottom=positionInfo.Bottom;
57257
+
57258
+ for(var i=0; i<this.Data.length; ++i)
57259
+ {
57260
+ var item=this.Data[i];
57261
+ var outText=this.GetTitleItem(item, isShowLastData, i);
57262
+ if (!outText) continue;
57263
+
57264
+ var valueText=outText.Text;
57265
+ var aryText=outText.ArrayText;
57266
+
57267
+ if (aryText) //多变量输出
57268
+ {
57269
+ var text;
57270
+ for(var k=0;k<aryText.length;++k)
57271
+ {
57272
+ var titleItem=aryText[k];
57273
+ if (titleItem.Name) text=titleItem.Name+":"+titleItem.Text;
57274
+ else text=titleItem.Text;
57275
+
57276
+ var space=this.ParamSpace*GetDevicePixelRatio();
57277
+ var indexTextWidth=this.Canvas.measureText(text).width; //标题+数值长度
57278
+ var textWidth=indexTextWidth;
57279
+
57280
+ if (IFrameSplitOperator.IsNonEmptyArray(titleItem.TextEx))
57281
+ {
57282
+ var xLeft=left;
57283
+ for(var n=0; n<titleItem.TextEx.length; ++n)
57284
+ {
57285
+ var outItem=titleItem.TextEx[n];
57286
+ var outTextWidth=this.Canvas.measureText(outItem.Text).width+2;
57287
+ outItem.Width=outTextWidth;
57288
+ outItem.Left=xLeft;
57289
+
57290
+ textWidth+=outTextWidth;
57291
+ xLeft+=outTextWidth;
57292
+ }
57293
+ }
57294
+
57295
+ if ((left+textWidth+space)>right) break;
57296
+
57297
+ if (titleItem.BG) //背景
57298
+ {
57299
+ var textHeight=this.Canvas.measureText("擎").width+2;
57300
+ var rtBG={ Left:left, Top:bottom-textHeight/2, Width:textWidth, Height:textHeight };
57301
+ this.Canvas.fillStyle=titleItem.BG;
57302
+ this.Canvas.fillRect(rtBG.Left,rtBG.Top-1, rtBG.Width, rtBG.Height);
57303
+
57304
+ this.Canvas.fillStyle=titleItem.Color;
57305
+ this.Canvas.fillText(text,rtBG.Left+1,bottom,indexTextWidth);
57306
+ left+=indexTextWidth;
57307
+
57308
+ if (IFrameSplitOperator.IsNonEmptyArray(titleItem.TextEx))
57309
+ {
57310
+ for(var n=0; n<titleItem.TextEx.length; ++n)
57311
+ {
57312
+ var outItem=titleItem.TextEx[n];
57313
+ this.Canvas.fillStyle=outItem.TextColor;
57314
+ this.Canvas.fillText(outItem.Text,left,bottom,outItem.Width);
57315
+ left+=outItem.Width;
57316
+ }
57317
+ }
57318
+
57319
+ left+=space;
57320
+ }
57321
+ else
57322
+ {
57323
+ this.Canvas.fillStyle=titleItem.Color;
57324
+ this.Canvas.fillText(text,left,bottom,indexTextWidth);
57325
+ left+=indexTextWidth;
57326
+
57327
+ if (IFrameSplitOperator.IsNonEmptyArray(titleItem.TextEx))
57328
+ {
57329
+ for(var n=0; n<titleItem.TextEx.length; ++n)
57330
+ {
57331
+ var outItem=titleItem.TextEx[n];
57332
+ this.Canvas.fillStyle=outItem.TextColor;
57333
+ this.Canvas.fillText(outItem.Text,left,bottom,outItem.Width);
57334
+ left+=outItem.Width;
57335
+ }
57336
+ }
57337
+
57338
+ left+=space;
57339
+ }
57340
+ }
57341
+ }
57342
+ else
57343
+ {
57344
+ this.Canvas.fillStyle=item.Color;
57345
+ var text=valueText;
57346
+ if (item.Name)
57347
+ {
57348
+ var dyTitle=this.GetDynamicOutName(item.Name);
57349
+ if (dyTitle) text=dyTitle+":"+valueText;
57350
+ else text=item.Name+":"+valueText;
57351
+ }
57352
+ var space=this.ParamSpace*GetDevicePixelRatio();
57353
+ var textWidth=this.Canvas.measureText(text).width+space;
57354
+ if ((left+textWidth)>right) break;
57355
+
57356
+ this.Canvas.fillText(text,left,bottom,textWidth);
57357
+ left+=textWidth;
57358
+ }
57359
+ }
57360
+
57361
+ rtText.Left=left;
57362
+ }
57363
+
57364
+ //集合竞价
57365
+ this.DrawMainCallAuction=function(positionInfo, rtText, result)
57366
+ {
57367
+ if (!this.IsShowMainIndexTitle) return;
57368
+ if (!this.MainTitlePaint) return;
57369
+ var auctionData=this.MainTitlePaint.GetCurrentAuctionData(); //集合竞价分时数据
57370
+ if (!auctionData || !auctionData.Data) return;
57371
+ if (!this.GetEventCallback) return;
57372
+
57373
+ var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_FORMAT_CALL_AUCTION_INDEX_TITLE);
57374
+ if (!event) return;
57375
+
57376
+ var data={ AuctionData:auctionData, Data:this.Data, FrameID:this.Frame.Identify, Out:null, PreventDefault:false };
57377
+ event.Callback(event,data,this);
57378
+ result.PreventDefault=data.PreventDefault;
57379
+
57380
+ if (!IFrameSplitOperator.IsNonEmptyArray(data.Out)) return;
57381
+
57382
+ var left=positionInfo.Left;
57383
+ var right=positionInfo.Right;
57384
+ var bottom=positionInfo.Bottom;
57385
+ var pixelRatio=GetDevicePixelRatio();
57386
+
57387
+ var aryText=data.Out; //[{Text:, Color, Space:间距 }]
57388
+ for(var i=0; i<aryText.length; ++i)
57389
+ {
57390
+ var item=aryText[i];
57391
+ if (!item.Text) continue;
57392
+ var textWidth=this.Canvas.measureText(item.Text).width+2;
57393
+ if (left+textWidth>right) break;
57394
+
57395
+ if (item.BGColor) //背景
57396
+ {
57397
+ var textHeight=this.Canvas.measureText("擎").width+2;
57398
+ var rtBG={ Left:left, Top:bottom-textHeight/2, Width:textWidth, Height:textHeight };
57399
+ this.Canvas.fillStyle=item.BGColor;
57400
+ this.Canvas.fillRect(rtBG.Left,rtBG.Top-1, rtBG.Width, rtBG.Height);
57401
+ left+=1;
57402
+ }
57403
+
57404
+ this.Canvas.fillStyle=item.Color;
57405
+ this.Canvas.fillText(item.Text,left,bottom,textWidth);
57406
+ left+=textWidth;
57407
+
57408
+ if (IFrameSplitOperator.IsPlusNumber(item.Space)) left+=item.Space*pixelRatio;
57409
+ }
57410
+
57411
+ rtText.Left=left;
57412
+ }
57413
+
57414
+ this.GetCallAuctionTitleItem=function(item, titleIndex, auctionData)
57415
+ {
57416
+ if (item.IsShow===false) return null;
57417
+ if (item.IsVisible===false) return null;
57418
+ if (!item || !item.Data || !item.Data.Data) return null;
57419
+
57420
+ if (g_ScriptIndexChartFactory.Has(item.DataType)) //外部挂接
57421
+ {
57422
+ var find=g_ScriptIndexChartFactory.Get(item.DataType);
57423
+ if (find && find.FormatTitleCallback)
57424
+ return find.FormatTitleCallback(value, item, dataIndex);
57425
+ }
57426
+ }
57427
+
57299
57428
  //获取上一个有效数据
57300
57429
  this.GetPreVaildItem=function(data, start)
57301
57430
  {
@@ -72614,8 +72743,10 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
72614
72743
  }
72615
72744
 
72616
72745
  //绑定主图K线数据
72617
- this.BindMainData=function(hisData,showCount)
72746
+ this.BindMainData=function(hisData, showCount, chartOperator)
72618
72747
  {
72748
+ var isShowAll=false; //全部显示
72749
+ if (chartOperator && chartOperator.IsShowAll===true) isShowAll=true;
72619
72750
  this.ChartPaint[0].Data=hisData;
72620
72751
  this.ChartPaint[0].Symbol=this.Symbol;
72621
72752
 
@@ -72636,9 +72767,10 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
72636
72767
  for(var i=0;i<this.Frame.SubFrame.length;++i)
72637
72768
  {
72638
72769
  var item =this.Frame.SubFrame[i].Frame;
72639
- item.XPointCount=showCount+this.RightSpaceCount;
72640
- item.Data=this.ChartPaint[0].Data;
72770
+ if (isShowAll) item.XPointCount=hisData.Data.length+this.RightSpaceCount;
72771
+ else item.XPointCount=showCount+this.RightSpaceCount;
72641
72772
 
72773
+ item.Data=this.ChartPaint[0].Data;
72642
72774
  item.XSplitOperator.Symbol=this.Symbol;
72643
72775
  item.XSplitOperator.Period=this.Period;
72644
72776
  }
@@ -72657,17 +72789,25 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
72657
72789
  item.MainData=this.ChartPaint[0].Data;
72658
72790
  }
72659
72791
 
72660
- var dataOffset=hisData.Data.length-showCount;
72661
- if (dataOffset<0) dataOffset=0;
72662
- this.ChartPaint[0].Data.DataOffset=dataOffset;
72663
- this.ChartPaint[0].Period=this.Period;
72792
+ if (isShowAll)
72793
+ {
72794
+ var dataOffset=0;
72795
+ this.CursorIndex=0;
72796
+ }
72797
+ else
72798
+ {
72799
+ var dataOffset=hisData.Data.length-showCount;
72800
+ if (dataOffset<0) dataOffset=0;
72801
+ this.ChartPaint[0].Data.DataOffset=dataOffset;
72802
+
72803
+ this.CursorIndex=showCount;
72804
+ if (this.CursorIndex+dataOffset>=hisData.Data.length) this.CursorIndex=hisData.Data.length-1-dataOffset;
72805
+ if (this.CursorIndex<0) this.CursorIndex=0; //不一定对啊
72806
+ }
72664
72807
 
72808
+ this.ChartPaint[0].Period=this.Period;
72665
72809
  this.ChartCorssCursor.StringFormatY.Symbol=this.Symbol;
72666
72810
 
72667
- this.CursorIndex=showCount;
72668
- if (this.CursorIndex+dataOffset>=hisData.Data.length) this.CursorIndex=hisData.Data.length-1-dataOffset;
72669
- if (this.CursorIndex<0) this.CursorIndex=0; //不一定对啊
72670
-
72671
72811
  if (this.CustomShow) //定制显示 1次有效
72672
72812
  {
72673
72813
  this.SetCustomShow(this.CustomShow,hisData);
@@ -73536,8 +73676,16 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
73536
73676
  //绑定数据
73537
73677
  this.Symbol=data.symbol;
73538
73678
  this.Name=data.name;
73679
+
73680
+ var chartOperator=null; //额外的图形控制
73681
+ if (data && data.ChartOperator)
73682
+ {
73683
+ var item=data.ChartOperator;
73684
+ chartOperator={ };
73685
+ if (item.IsShowAll===true) chartOperator.IsShowAll=true; //全部显示
73686
+ }
73539
73687
 
73540
- this.BindMainData(bindData,this.PageSize);
73688
+ this.BindMainData(bindData,this.PageSize,chartOperator);
73541
73689
  if (this.AfterBindMainData) this.AfterBindMainData("RecvMinuteHistoryData");
73542
73690
  this.Frame.SetSizeChage(true);
73543
73691
 
@@ -80796,6 +80944,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
80796
80944
  titlePaint.LanguageID=this.LanguageID;
80797
80945
  titlePaint.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
80798
80946
  titlePaint.SelectedChart=this.SelectedChart;
80947
+ titlePaint.MainTitlePaint=this.TitlePaint[0];
80799
80948
  this.TitlePaint.push(titlePaint);
80800
80949
  }
80801
80950
 
@@ -81007,7 +81156,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
81007
81156
  titlePaint.Frame=this.Frame.SubFrame[index].Frame;
81008
81157
  titlePaint.Canvas=this.Canvas;
81009
81158
  titlePaint.LanguageID=this.LanguageID;
81010
- titlePaint.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
81159
+ titlePaint.GetEventCallback=(id)=> { return this.GetEventCallback(id); };
81160
+ titlePaint.MainTitlePaint=this.TitlePaint[0];
81011
81161
  this.TitlePaint[index+1]=titlePaint;
81012
81162
 
81013
81163
  this.SetSubFrameOption(subFrame,option);
@@ -81244,6 +81394,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
81244
81394
  titlePaint.LanguageID=this.LanguageID;
81245
81395
  titlePaint.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
81246
81396
  titlePaint.SelectedChart=this.SelectedChart;
81397
+ titlePaint.MainTitlePaint=this.TitlePaint[0];
81247
81398
  this.TitlePaint[i+1]=titlePaint;
81248
81399
  }
81249
81400
 
@@ -81330,6 +81481,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
81330
81481
  titlePaint.LanguageID=this.LanguageID;
81331
81482
  titlePaint.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
81332
81483
  titlePaint.SelectedChart=this.SelectedChart;
81484
+ titlePaint.MainTitlePaint=this.TitlePaint[0];
81333
81485
  this.TitlePaint[i+1]=titlePaint;
81334
81486
  }
81335
81487
  }
@@ -81983,7 +82135,11 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
81983
82135
  }
81984
82136
  }
81985
82137
 
81986
- if (optionChanged) this.RequestData();
82138
+ if (optionChanged)
82139
+ {
82140
+ this.Frame.ClearYCoordinateMaxMin();
82141
+ this.RequestData();
82142
+ }
81987
82143
  }
81988
82144
 
81989
82145
  this.RequestData=function()
@@ -113751,15 +113907,9 @@ function JSExplainer(ast,option)
113751
113907
 
113752
113908
  if (g_JSComplierResource.IsCustomFunction(funcName))
113753
113909
  {
113754
- var data=this.Algorithm.CallCustomFunction(funcName, args, this.SymbolData, node);
113755
- node.Out=[];
113756
- node.Draw=null;
113757
-
113758
- if (data)
113759
- {
113760
- if (data.Out) node.Out=data.Out;
113761
- if (data.Draw) node.Draw=data.Draw;
113762
- }
113910
+ var functionInfo=g_JSComplierResource.CustomFunction.Data.get(funcName);
113911
+ if (!functionInfo.Description) node.Out=`自定义函数${funcName}`;
113912
+ else node.Out=functionInfo.Description;
113763
113913
 
113764
113914
  return node.Out;
113765
113915
  }
@@ -114378,7 +114528,12 @@ function JSExplainer(ast,option)
114378
114528
  return data;
114379
114529
  }
114380
114530
 
114381
- if (g_JSComplierResource.IsCustomVariant(name)) return this.ReadCustomVariant(name,node); //读取自定义变量
114531
+ if (g_JSComplierResource.IsCustomVariant(name))
114532
+ {
114533
+ var variantInfo=g_JSComplierResource.CustomVariant.Data.get(name); //读取自定义变量
114534
+ if (variantInfo.Description) return variantInfo.Description;
114535
+ else return name;
114536
+ }
114382
114537
 
114383
114538
  if (this.VarTable.has(name)) return this.VarTable.get(name);
114384
114539
 
@@ -135118,6 +135273,9 @@ function JSDialogDrawTool()
135118
135273
  Title:"文字",
135119
135274
  AryChart:
135120
135275
  [
135276
+ { Title:"文字", ClassName: 'hqchart_drawtool icon-draw_text', Type:0, Data:{ ID:"文本" } },
135277
+ { Title:"锚点文字", ClassName: 'hqchart_drawtool icon-maodianwenzi', Type:0, Data:{ ID:"AnchoredText" } },
135278
+ { Title:"注释", ClassName: 'hqchart_drawtool icon-maodian ', Type:0, Data:{ ID:"Note"} },
135121
135279
  { Title: '价格标签', ClassName: 'hqchart_drawtool icon-Tooltip', Type:0, Data:{ ID:"PriceLabel" } },
135122
135280
  { Title: '价格注释', ClassName: 'hqchart_drawtool icon-tooltiptext', Type:0, Data:{ ID:"PriceNote" } },
135123
135281
  { Title: '向上箭头', ClassName: 'iconfont icon-arrow_up', Type:0, Data:{ ID:"icon-arrow_up" } },
@@ -135630,7 +135788,7 @@ function HQChartScriptWorker()
135630
135788
 
135631
135789
 
135632
135790
 
135633
- var HQCHART_VERSION="1.1.13277";
135791
+ var HQCHART_VERSION="1.1.13285";
135634
135792
 
135635
135793
  function PrintHQChartVersion()
135636
135794
  {