hqchart 1.1.15080 → 1.1.15089

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.
@@ -4704,8 +4704,6 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4704
4704
  if (IFrameSplitOperator.IsNumber(subItem.Formula)) chart.ChartCorssCursor.StringFormatX.RangeIncrease.Formula=subItem.Formula;
4705
4705
 
4706
4706
  }
4707
-
4708
-
4709
4707
  }
4710
4708
 
4711
4709
  //保存十字光标文字高度
@@ -4724,8 +4722,11 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4724
4722
  {
4725
4723
  var item=option.Frame[i];
4726
4724
  if (!chart.Frame.SubFrame[i]) continue;
4727
- var subFrame=chart.Frame.SubFrame[i].Frame;
4728
4725
 
4726
+ chart.SetSubFrameAttribute(chart.Frame.SubFrame[i], null, item);
4727
+
4728
+ /* 窗口设置全部移动到 SetSubFrameAttribute
4729
+ var subFrame=chart.Frame.SubFrame[i].Frame;
4729
4730
  if (IFrameSplitOperator.IsNumber(item.SplitCount)) chart.Frame.SubFrame[i].Frame.YSplitOperator.SplitCount=item.SplitCount;
4730
4731
  if (item.StringFormat) chart.Frame.SubFrame[i].Frame.YSplitOperator.StringFormat=item.StringFormat;
4731
4732
  if (IFrameSplitOperator.IsNumber(item.FloatPrecision)) chart.Frame.SubFrame[i].Frame.YSplitOperator.FloatPrecision=item.FloatPrecision;
@@ -4771,6 +4772,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4771
4772
  if (IFrameSplitOperator.IsBool(item.IsShowNameArrow)) chart.Frame.SubFrame[i].Frame.IsShowNameArrow=item.IsShowNameArrow;
4772
4773
 
4773
4774
  if (item.ClientBGColor) subFrame.ClientBGColor=item.ClientBGColor;
4775
+ */
4774
4776
  }
4775
4777
  }
4776
4778
 
@@ -4903,6 +4905,9 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4903
4905
 
4904
4906
  }
4905
4907
 
4908
+ chart.SetSubFrameAttribute(chart.Frame.SubFrame[i],item, null)
4909
+
4910
+ /* 窗口设置全部移动到 SetSubFrameAttribute
4906
4911
  var frame=chart.Frame.SubFrame[i].Frame;
4907
4912
  if (IFrameSplitOperator.IsBool(item.Modify)) frame.ModifyIndex=item.Modify;
4908
4913
  if (IFrameSplitOperator.IsBool(item.Change)) frame.ChangeIndex=item.Change;
@@ -4912,6 +4917,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4912
4917
  if (IFrameSplitOperator.IsBool(item.MaxMin)) chart.Frame.SubFrame[i].Frame.MaxMinWindow=item.MaxMin;
4913
4918
  if (IFrameSplitOperator.IsBool(item.TitleWindow)) chart.Frame.SubFrame[i].Frame.TitleWindow=item.TitleWindow;
4914
4919
  if (IFrameSplitOperator.IsBool(item.AddIndexWindow)) frame.AddIndexWindow=item.AddIndexWindow;
4920
+ if (IFrameSplitOperator.IsBool(item.IndexHelp)) frame.IndexHelp=item.IndexHelp;
4915
4921
 
4916
4922
  if (item.IsDrawTitleBG==true) chart.Frame.SubFrame[i].Frame.IsDrawTitleBG=item.IsDrawTitleBG;
4917
4923
  if (IFrameSplitOperator.IsBool(item.IsShowNameArrow)) chart.Frame.SubFrame[i].Frame.IsShowNameArrow=item.IsShowNameArrow;
@@ -4931,6 +4937,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4931
4937
  if (IFrameSplitOperator.IsNumber(item.OverlayIndexType.Position)) chart.Frame.SubFrame[i].Frame.OverlayIndexType.Position=item.OverlayIndexType.Position;
4932
4938
  if (IFrameSplitOperator.IsNumber(item.OverlayIndexType.LineSpace)) chart.Frame.SubFrame[i].Frame.OverlayIndexType.LineSpace=item.OverlayIndexType.LineSpace;
4933
4939
  }
4940
+ */
4934
4941
  }
4935
4942
 
4936
4943
  //叠加指标宽度
@@ -5286,6 +5293,10 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
5286
5293
  {
5287
5294
  var item=option.Frame[i];
5288
5295
  if (!chart.Frame.SubFrame[i]) continue;
5296
+
5297
+ chart.SetSubFrameAttribute(chart.Frame.SubFrame[i],null,item);
5298
+
5299
+ /*
5289
5300
  var subFrame=chart.Frame.SubFrame[i].Frame;
5290
5301
 
5291
5302
  if (IFrameSplitOperator.IsNumber(item.SplitCount)) chart.Frame.SubFrame[i].Frame.YSplitOperator.SplitCount=item.SplitCount;
@@ -5343,6 +5354,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
5343
5354
  if (subItem.Percentage && IFrameSplitOperator.IsNumber(subItem.Percentage.Dec)) subFrame.YSplitOperator.RightTextConfig.Percentage.Dec=subItem.Percentage.Dec;
5344
5355
  }
5345
5356
  }
5357
+ */
5346
5358
  }
5347
5359
 
5348
5360
  chart.UpdateXShowText();
@@ -5458,6 +5470,9 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
5458
5470
  }
5459
5471
  }
5460
5472
 
5473
+ chart.SetSubFrameAttribute(chart.Frame.SubFrame[index],item, null);
5474
+
5475
+ /*
5461
5476
  var frame=chart.Frame.SubFrame[index].Frame;
5462
5477
  if (IFrameSplitOperator.IsBool(item.Modify)) frame.ModifyIndex=item.Modify;
5463
5478
  if (IFrameSplitOperator.IsBool(item.Change)) frame.ChangeIndex=item.Change;
@@ -5467,6 +5482,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
5467
5482
  if (IFrameSplitOperator.IsBool(item.MaxMin)) frame.MaxMinWindow=item.MaxMin;
5468
5483
  if (IFrameSplitOperator.IsBool(item.TitleWindow)) frame.TitleWindow=item.TitleWindow;
5469
5484
  if (IFrameSplitOperator.IsBool(item.AddIndexWindow)) frame.AddIndexWindow=item.AddIndexWindow;
5485
+ if (IFrameSplitOperator.IsBool(item.IndexHelp)) frame.IndexHelp=item.IndexHelp;
5470
5486
 
5471
5487
  if (IFrameSplitOperator.IsNumber(item.YSplitType)) chart.Frame.SubFrame[index].Frame.YSplitOperator.SplitType=item.YSplitType;
5472
5488
  if (IFrameSplitOperator.IsNumber(item.FilterType)) chart.Frame.SubFrame[index].Frame.YSplitOperator.FilterType=item.FilterType;
@@ -5479,6 +5495,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
5479
5495
  if (item.IsShowIndexName==false) chart.Frame.SubFrame[index].Frame.IsShowIndexName=false;
5480
5496
  if (item.IsShowOverlayIndexName==false) chart.Frame.SubFrame[index].Frame.IsShowOverlayIndexName=false;
5481
5497
  if (!IFrameSplitOperator.IsUndefined(item.HorizontalReserved)) frame.HorizontalReserved=item.HorizontalReserved;
5498
+ */
5482
5499
  }
5483
5500
  }
5484
5501
 
@@ -7120,6 +7137,7 @@ var JSCHART_BUTTON_ID=
7120
7137
  ADD_INDEX_WINDOW:44, //增加指标窗口
7121
7138
 
7122
7139
  CHIP_CLOSE:45, //关闭筹码图
7140
+ INDEX_HELP:46, //指标帮助
7123
7141
  }
7124
7142
 
7125
7143
  var JSCHART_DATA_FIELD_ID=
@@ -14456,9 +14474,14 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
14456
14474
  if (IFrameSplitOperator.IsBool(windowItem.Change)) frame.ChangeIndex=windowItem.Change;
14457
14475
  if (IFrameSplitOperator.IsBool(windowItem.Close)) frame.CloseIndex=windowItem.Close;
14458
14476
  if (IFrameSplitOperator.IsBool(windowItem.Overlay)) frame.OverlayIndex=windowItem.Overlay;
14477
+ if (IFrameSplitOperator.IsBool(windowItem.Export)) frame.ExportData=windowItem.Export;
14478
+ if (IFrameSplitOperator.IsBool(windowItem.MaxMin)) frame.MaxMinWindow=windowItem.MaxMin;
14479
+ if (IFrameSplitOperator.IsBool(windowItem.TitleWindow)) frame.TitleWindow=windowItem.TitleWindow;
14459
14480
  if (IFrameSplitOperator.IsBool(windowItem.AddIndexWindow)) frame.AddIndexWindow=windowItem.AddIndexWindow;
14481
+ if (IFrameSplitOperator.IsBool(windowItem.IndexHelp)) frame.IndexHelp=windowItem.IndexHelp;
14460
14482
 
14461
14483
  if (IFrameSplitOperator.IsBool(windowItem.IsDrawTitleBG)) frame.IsDrawTitleBG=windowItem.IsDrawTitleBG;
14484
+ if (IFrameSplitOperator.IsBool(windowItem.IsShowNameArrow)) frame.IsShowNameArrow=windowItem.IsShowNameArrow;
14462
14485
 
14463
14486
  if (IFrameSplitOperator.IsNumber(windowItem.TitleHeight)) frame.ChartBorder.TitleHeight=windowItem.TitleHeight;
14464
14487
  else windowItem.TitleHeight=frame.ChartBorder.TitleHeight;
@@ -14466,21 +14489,33 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
14466
14489
  if (IFrameSplitOperator.IsBool(windowItem.IsShowTitleArrow)) frame.IsShowTitleArrow=windowItem.IsShowTitleArrow;
14467
14490
  if (IFrameSplitOperator.IsNumber(windowItem.TitleArrowType)) frame.TitleArrowType=windowItem.TitleArrowType;
14468
14491
  if (IFrameSplitOperator.IsBool(windowItem.IsShowIndexName)) frame.IsShowIndexName=windowItem.IsShowIndexName;
14492
+ if (IFrameSplitOperator.IsBool(windowItem.IsShowOverlayIndexName)) frame.IsShowOverlayIndexName=windowItem.IsShowOverlayIndexName;
14469
14493
  if (IFrameSplitOperator.IsNumber(windowItem.IndexParamSpace)) frame.IndexParamSpace=windowItem.IndexParamSpace;
14470
14494
  if (IFrameSplitOperator.IsNumber(windowItem.IndexTitleSpace)) frame.IndexTitleSpace=windowItem.IndexTitleSpace;
14471
14495
  if (!IFrameSplitOperator.IsUndefined(windowItem.HorizontalReserved)) frame.HorizontalReserved=windowItem.HorizontalReserved; //Y轴上下预留
14472
- if (IFrameSplitOperator.IsBool(windowItem.IsShowNameArrow)) frame.IsShowNameArrow=windowItem.IsShowNameArrow;
14496
+
14497
+ if (windowItem.OverlayIndexType)
14498
+ {
14499
+ if (IFrameSplitOperator.IsNumber(windowItem.OverlayIndexType.Position)) frame.OverlayIndexType.Position=windowItem.OverlayIndexType.Position;
14500
+ if (IFrameSplitOperator.IsNumber(windowItem.OverlayIndexType.LineSpace)) frame.OverlayIndexType.LineSpace=windowItem.OverlayIndexType.LineSpace;
14501
+ }
14473
14502
  }
14474
14503
 
14475
14504
  if (frameItem)
14476
14505
  {
14477
- if (frameItem.SplitCount) frame.YSplitOperator.SplitCount=frameItem.SplitCount;
14506
+ if (frameItem.SplitCount) frame.YSplitOperator.SplitCount=frameItem.SplitCount; //Y轴刻度线个数
14507
+ if (frameItem.StringFormat) frame.YSplitOperator.StringFormat=frameItem.StringFormat; //Y轴文字格式
14508
+ if (IFrameSplitOperator.IsNumber(frameItem.FloatPrecision)) frame.YSplitOperator.FloatPrecision=frameItem.FloatPrecision; //Y轴小数位数
14509
+ if (frameItem.Custom) frame.YSplitOperator.Custom=frameItem.Custom; //Y轴自定义刻度
14510
+
14478
14511
  if (IFrameSplitOperator.IsNumber(frameItem.SplitType))
14479
14512
  {
14480
14513
  frame.YSplitOperator.SplitType=frameItem.SplitType;
14481
14514
  frame.YSplitOperator.DefaultSplitType=frameItem.SplitType;
14482
14515
  }
14483
14516
 
14517
+ if (IFrameSplitOperator.IsNumber(frameItem.FilterType)) frame.YSplitOperator.FilterType=frameItem.FilterType;
14518
+
14484
14519
  if (IFrameSplitOperator.IsBool(frameItem.IsShowXLine)) frame.IsShowXLine=frameItem.IsShowXLine;
14485
14520
  if (IFrameSplitOperator.IsBool(frameItem.IsShowYLine)) frame.IsShowYLine=frameItem.IsShowYLine;
14486
14521
 
@@ -14498,6 +14533,41 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
14498
14533
  if (IFrameSplitOperator.IsNumber(frameItem.Height) && frameItem.Height>=0) subFrame.Height = frameItem.Height;
14499
14534
  if (IFrameSplitOperator.IsNumber(frameItem.TopSpace)) frame.ChartBorder.TopSpace=frameItem.TopSpace*pixelRatio;
14500
14535
  if (IFrameSplitOperator.IsNumber(frameItem.BottomSpace)) frame.ChartBorder.BottomSpace=frameItem.BottomSpace*pixelRatio;
14536
+
14537
+ if (IFrameSplitOperator.IsNumber(frameItem.RightTextPosition)) frame.YTextPosition[1]=frameItem.RightTextPosition;
14538
+ if (IFrameSplitOperator.IsNumber(frameItem.LeftTextPosition)) frame.YTextPosition[0]=frameItem.LeftTextPosition;
14539
+ if (IFrameSplitOperator.IsNumber(frameItem.YTextBaseline)) frame.YTextBaseline=frameItem.YTextBaseline;
14540
+
14541
+ if (IFrameSplitOperator.IsNumber(frameItem.YCoordinateType)) frame.YSplitOperator.CoordinateType=frameItem.YCoordinateType; //坐标类型
14542
+ if (frameItem.IsYReverse===true) frame.CoordinateType=1; //反转坐标
14543
+
14544
+ if (IFrameSplitOperator.IsNumber(frameItem.PercentageTextFormat)) frame.YSplitOperator.PercentageTextFormat=frameItem.PercentageTextFormat; //百分比坐标格式
14545
+ if (frameItem.DefaultYMaxMin) frame.YSplitOperator.DefaultYMaxMin=frameItem.DefaultYMaxMin; //指定最大最小值
14546
+ if (IFrameSplitOperator.IsBool(frameItem.EnableRemoveZero)) frame.YSplitOperator.EnableRemoveZero=frameItem.EnableRemoveZero; //Y轴文字小数位是否自动抹0
14547
+ if (IFrameSplitOperator.IsPlusNumber(frameItem.MinYDistance)) frame.MinYDistance=frameItem.MinYDistance;
14548
+ if (IFrameSplitOperator.IsNumber(frameItem.BorderLine)) frame.BorderLine=frameItem.BorderLine;
14549
+ if (IFrameSplitOperator.IsBool(frameItem.IsDrawTitleBottomLine)) frame.IsDrawTitleBottomLine=frameItem.IsDrawTitleBottomLine;
14550
+ if (IFrameSplitOperator.IsBool(frameItem.IsShowIndexTitle)) frame.IsShowIndexTitle=frameItem.IsShowIndexTitle;
14551
+ if (frameItem.ClientBGColor) frame.ClientBGColor=frameItem.ClientBGColor;
14552
+
14553
+ //分时图属性
14554
+ if (IFrameSplitOperator.IsBool(frameItem.CloseBeforeButton)) frameItem.IsShowCloseButton=frameItem.CloseBeforeButton;
14555
+ if (frame.YSplitOperator.RightTextConfig) //主图右侧坐标设置
14556
+ {
14557
+ if (IFrameSplitOperator.IsNumber(frameItem.RightTextFormat)) //废弃(兼容版本)
14558
+ {
14559
+ frame.YSplitOperator.RightTextConfig.Format=frameItem.RightTextFormat;
14560
+ if (frameItem.RightTextFormat==2) frame.MultiTextFormat=1;
14561
+ }
14562
+
14563
+ if (frameItem.RightText) //主图右侧坐标设置(新版本)
14564
+ {
14565
+ var subItem=frameItem.RightText;
14566
+ if (IFrameSplitOperator.IsNumber(subItem.Format)) frame.YSplitOperator.RightTextConfig.Format=subItem.Format;
14567
+ if (subItem.Format==2) frame.MultiTextFormat=1;
14568
+ if (subItem.Percentage && IFrameSplitOperator.IsNumber(subItem.Percentage.Dec)) frame.YSplitOperator.RightTextConfig.Percentage.Dec=subItem.Percentage.Dec;
14569
+ }
14570
+ }
14501
14571
  }
14502
14572
 
14503
14573
  }
@@ -14520,6 +14590,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
14520
14590
  if (IFrameSplitOperator.IsBool(item.MaxMin)) frame.MaxMinWindow=item.MaxMin;
14521
14591
  if (IFrameSplitOperator.IsBool(item.TitleWindow)) frame.TitleWindow=item.TitleWindow;
14522
14592
  if (IFrameSplitOperator.IsBool(item.AddIndexWindow)) frame.AddIndexWindow=item.AddIndexWindow;
14593
+ if (IFrameSplitOperator.IsBool(item.IndexHelp)) frame.IndexHelp=item.IndexHelp;
14523
14594
 
14524
14595
  if (IFrameSplitOperator.IsBool(item.IsDrawTitleBG)) frame.IsDrawTitleBG=item.IsDrawTitleBG;
14525
14596
  if (IFrameSplitOperator.IsBool(item.IsShowNameArrow)) frame.IsShowNameArrow=item.IsShowNameArrow;
@@ -17731,6 +17802,7 @@ function AverageWidthFrame()
17731
17802
  this.TitleWindowButton=CloneData(g_JSChartResource.Buttons.TitleWindow);
17732
17803
  this.ExportDataButton=CloneData(g_JSChartResource.Buttons.ExportData);
17733
17804
  this.AddIndexWindowButton=CloneData(g_JSChartResource.Buttons.AddIndexWindow);
17805
+ this.IndexHelpButton=CloneData(g_JSChartResource.Buttons.IndexHelp);
17734
17806
 
17735
17807
  this.ButtonTooltip=CloneData(g_JSChartResource.Buttons.Tooltip);
17736
17808
 
@@ -17769,6 +17841,7 @@ function AverageWidthFrame()
17769
17841
  this.TitleWindowButton=CloneData(g_JSChartResource.Buttons.TitleWindow);
17770
17842
  this.ButtonTooltip=CloneData(g_JSChartResource.Buttons.Tooltip);
17771
17843
  this.AddIndexWindowButton=CloneData(g_JSChartResource.Buttons.AddIndexWindow);
17844
+ this.IndexHelpButton=CloneData(g_JSChartResource.Buttons.IndexHelp);
17772
17845
  }
17773
17846
 
17774
17847
  if (this.DivFrameToolbar) this.DivFrameToolbar.ReloadResource(resource);
@@ -20424,6 +20497,7 @@ function MinuteFrame()
20424
20497
  this.ExportData=g_JSChartResource.MinuteToolbar.ExportData; //是否显示'导出数据'菜单
20425
20498
  this.OverlayIndex=g_JSChartResource.MinuteToolbar.OverlayIndex; //是否显示叠加指标
20426
20499
  this.AddIndexWindow=g_JSChartResource.MinuteToolbar.AddIndexWindow; //是否显示'增加指标窗口'菜单
20500
+ this.IndexHelp=g_JSChartResource.MinuteToolbar.IndexHelp;
20427
20501
 
20428
20502
  this.IsShowPositionTitle=false; //是否显示持仓标题
20429
20503
 
@@ -20580,6 +20654,7 @@ function MinuteFrame()
20580
20654
  if (this.ChangeIndex) aryButton.push( { ID:JSCHART_BUTTON_ID.CHANGE_INDEX, Style:this.ChangeIndexButton });
20581
20655
  if (this.ModifyIndex) aryButton.push( { ID:JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM, Style:this.ModifyIndexParamButton });
20582
20656
  if (this.AddIndexWindow) aryButton.push({ ID:JSCHART_BUTTON_ID.ADD_INDEX_WINDOW, Style:this.AddIndexWindowButton} );
20657
+ if (this.IndexHelp) aryButton.push({ ID:JSCHART_BUTTON_ID.INDEX_HELP, Style:this.IndexHelpButton} );
20583
20658
  }
20584
20659
 
20585
20660
  if (IFrameSplitOperator.IsNonEmptyArray(this.CustomToolbar))
@@ -22748,6 +22823,7 @@ function KLineFrame()
22748
22823
  this.TitleWindow=g_JSChartResource.KLineToolbar.TitleWindow;
22749
22824
  this.ExportData=g_JSChartResource.KLineToolbar.ExportData; //是否显示'导出数据'菜单
22750
22825
  this.AddIndexWindow=g_JSChartResource.KLineToolbar.AddIndexWindow; //是否显示'增加指标窗口'菜单
22826
+ this.IndexHelp=g_JSChartResource.KLineToolbar.IndexHelp;
22751
22827
 
22752
22828
  this.SelBorderColor=g_JSChartResource.SelFrameBorderColor;
22753
22829
 
@@ -22947,6 +23023,7 @@ function KLineFrame()
22947
23023
  if (this.ChangeIndex) aryButton.push( { ID:JSCHART_BUTTON_ID.CHANGE_INDEX, Style:this.ChangeIndexButton });
22948
23024
  if (this.ModifyIndex) aryButton.push( { ID:JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM, Style:this.ModifyIndexParamButton });
22949
23025
  if (this.AddIndexWindow) aryButton.push({ ID:JSCHART_BUTTON_ID.ADD_INDEX_WINDOW, Style:this.AddIndexWindowButton} );
23026
+ if (this.IndexHelp) aryButton.push({ ID:JSCHART_BUTTON_ID.INDEX_HELP, Style:this.IndexHelpButton} );
22950
23027
 
22951
23028
  if (IFrameSplitOperator.IsNonEmptyArray(this.CustomToolbar))
22952
23029
  {
@@ -51862,6 +51939,31 @@ function ChartLock()
51862
51939
  this.IndexID; //指标ID
51863
51940
  this.MinWidth=null; //最小宽度
51864
51941
 
51942
+
51943
+ this.CalculateTextSize=function(aryText, defaultFont, out)
51944
+ {
51945
+ if (!out || !IFrameSplitOperator.IsNonEmptyArray(aryText)) return false;
51946
+
51947
+ this.Canvas.font=defaultFont;
51948
+ var lineHeight=this.Canvas.measureText("擎").width; //行高
51949
+ var height=0, width=0;
51950
+ out.AryText=[];
51951
+ for(var i=0;i<aryText.length;++i)
51952
+ {
51953
+ var item=aryText[i];
51954
+ if (!item || !item.Text) continue;
51955
+ var textWidth=this.Canvas.measureText(item.Text).width;
51956
+ if (width<textWidth) width=textWidth;
51957
+ out.AryText.push({ Text:item.Text, Width:textWidth, Height:lineHeight, Color:item.Color });
51958
+ height+=lineHeight;
51959
+ }
51960
+
51961
+ out.Width=width;
51962
+ out.Height=height;
51963
+
51964
+ return true;
51965
+ }
51966
+
51865
51967
  this.Draw=function(isDraw)
51866
51968
  {
51867
51969
  this.LockRect=null;
@@ -51878,6 +51980,7 @@ function ChartLock()
51878
51980
  }
51879
51981
 
51880
51982
  var xOffset = this.ChartBorder.GetRight();
51983
+ var border=this.ChartBorder.GetBorder();
51881
51984
  var lOffsetWidth = 0;
51882
51985
  if (this.ChartFrame.Data != null)
51883
51986
  {
@@ -51904,7 +52007,6 @@ function ChartLock()
51904
52007
  var lLeft = xOffset - lOffsetWidth;
51905
52008
  if (lLeft < this.ChartBorder.GetLeft())
51906
52009
  lLeft = this.ChartBorder.GetLeft();
51907
- var lHeight = this.ChartBorder.GetBottom() - this.ChartBorder.GetTop();
51908
52010
  var lWidth = this.ChartBorder.GetRight() - lLeft;
51909
52011
 
51910
52012
  if (this.MinWidth>10 && lWidth<this.MinWidth)
@@ -51914,27 +52016,42 @@ function ChartLock()
51914
52016
  if (lLeft < this.ChartBorder.GetLeft()) lLeft = this.ChartBorder.GetLeft();
51915
52017
  }
51916
52018
 
51917
- if (isDraw)
51918
- {
51919
- var rtBG={ Left:lLeft, Top:this.ChartBorder.GetTop(), Width:lWidth, Height:lHeight };
51920
- rtBG.Right=rtBG.Width+rtBG.Left;
51921
- rtBG.Bottom=rtBG.Height+rtBG.Top;
52019
+ var rtBG={ Left:lLeft, Top:border.TopTitle, Bottom:border.Bottom, Width:lWidth };
52020
+ rtBG.Right=rtBG.Width+rtBG.Left;
52021
+ rtBG.Height=rtBG.Bottom-rtBG.Top;
52022
+ this.LockRect=rtBG; //保存上锁区域
51922
52023
 
51923
- //上下渐变
51924
- var bgColor=this.SetFillStyle(this.BGColor, rtBG.Left, rtBG.Top, rtBG.Left, rtBG.Bottom);
51925
- this.Canvas.fillStyle =bgColor;
51926
- this.Canvas.fillRect(rtBG.Left, rtBG.Top, rtBG.Width, rtBG.Height);
52024
+ if (!isDraw) return;
52025
+
52026
+ //上下渐变
52027
+ var bgColor=this.SetFillStyle(this.BGColor, rtBG.Left, rtBG.Top, rtBG.Left, rtBG.Bottom);
52028
+ this.Canvas.fillStyle =bgColor;
52029
+ this.Canvas.fillRect(rtBG.Left, rtBG.Top, rtBG.Width, rtBG.Height);
51927
52030
 
51928
- var xCenter = rtBG.Left + rtBG.Width / 2;
51929
- var yCenter = rtBG.Top + lHeight / 2;
51930
- this.Canvas.textAlign = 'center';
51931
- this.Canvas.textBaseline = 'middle';
51932
- this.Canvas.fillStyle = this.TextColor;
51933
- this.Canvas.font = this.Font;
51934
- this.Canvas.fillText(this.Title, xCenter, yCenter);
51935
- }
52031
+ var aryText=null;
52032
+ if (Array.isArray(this.Title)) aryText=this.Title;
52033
+ else aryText=[{Text:this.Title}];
52034
+
52035
+ var outSize={ };
52036
+ if (!this.CalculateTextSize(aryText, this.Font, outSize)) return;
52037
+
52038
+ var left=rtBG.Left+(rtBG.Width-outSize.Width)/2;
52039
+ if (outSize.Width>rtBG.Width) left=rtBG.Right-outSize.Width;
52040
+ var top=rtBG.Top+(rtBG.Height-outSize.Height)/2;
52041
+
52042
+ this.Canvas.textAlign='left';
52043
+ this.Canvas.textBaseline='bottom';
52044
+ this.Canvas.font = this.Font;
52045
+ var yText=top;
52046
+ for(var i=0;i<outSize.AryText.length;++i)
52047
+ {
52048
+ var item=outSize.AryText[i];
52049
+ if (item.Color) this.Canvas.fillStyle=item.Color;
52050
+ else this.Canvas.fillStyle=this.TextColor;
51936
52051
 
51937
- this.LockRect={Left:lLeft,Top:this.ChartBorder.GetTop(),Width:lWidth,Heigh:lHeight}; //保存上锁区域
52052
+ yText+=item.Height;
52053
+ this.Canvas.fillText(item.Text, left, yText);
52054
+ }
51938
52055
  }
51939
52056
 
51940
52057
  this.HScreenDraw=function(isDraw)
@@ -51995,7 +52112,7 @@ function ChartLock()
51995
52112
  if (this.LockRect==null) return false;
51996
52113
 
51997
52114
  this.Canvas.beginPath();
51998
- this.Canvas.rect(this.LockRect.Left,this.LockRect.Top,this.LockRect.Width,this.LockRect.Heigh);
52115
+ this.Canvas.rect(this.LockRect.Left,this.LockRect.Top,this.LockRect.Width,this.LockRect.Height);
51999
52116
  if (this.Canvas.isPointInPath(x,y))
52000
52117
  {
52001
52118
  tooltip.Data={ ID:this.LockID, Callback:this.Callback, IndexName:this.IndexName, IndexID:this.IndexID };
@@ -54372,6 +54489,20 @@ function StockChipPhone()
54372
54489
 
54373
54490
  this.CloseButtonConfig=CloneData(g_JSChartResource.StockChip.PhoneCloseButton);
54374
54491
 
54492
+ this.Super_SetOption=this.SetOption;
54493
+
54494
+ this.SetOption=function(option)
54495
+ {
54496
+ this.Super_SetOption(option);
54497
+
54498
+ if (!option) return;
54499
+
54500
+ if (option.PhoneCloseButton)
54501
+ {
54502
+ var item=option.PhoneCloseButton;
54503
+ if (IFrameSplitOperator.IsBool(item.IsShow)) this.CloseButtonConfig.IsShow=item.IsShow;
54504
+ }
54505
+ }
54375
54506
 
54376
54507
  this.Draw=function()
54377
54508
  {
@@ -54786,6 +54917,8 @@ function StockChipPhone()
54786
54917
  this.DrawCloseButton=function()
54787
54918
  {
54788
54919
  var config=this.CloseButtonConfig;
54920
+ if (!config.IsShow) return;
54921
+
54789
54922
  var font=`${config.Size}px ${config.Family}`;
54790
54923
  var rtButton=null;
54791
54924
  if (this.IsHScreen)
@@ -80925,6 +81058,7 @@ function JSChartResource()
80925
81058
  TitleWindow:true, //标题模式
80926
81059
  ExportData:false, //数据导出
80927
81060
  AddIndexWindow:false, //增加指标窗口
81061
+ IndexHelp:false, //指标帮助
80928
81062
 
80929
81063
  IsShowOverlayToolbar:true, //是否显示叠加坐标工具栏按钮
80930
81064
  IsShowOverlayFrame:true, //是否显示右侧叠加坐标
@@ -80941,6 +81075,7 @@ function JSChartResource()
80941
81075
  TitleWindow:true, //标题模式
80942
81076
  ExportData:false, //数据导出
80943
81077
  AddIndexWindow:false, //增加指标窗口
81078
+ IndexHelp:false, //指标帮助
80944
81079
  }
80945
81080
 
80946
81081
  this.TooltipBGColor="rgb(255, 255, 255)"; //背景色
@@ -81545,6 +81680,16 @@ function JSChartResource()
81545
81680
  MerginLeft:4
81546
81681
  },
81547
81682
 
81683
+ IndexHelp:
81684
+ {
81685
+ Color:"rgb(0,0,0)",
81686
+ MoveOnColor:'rgb(30,144,255)',
81687
+ Family:"iconfont",
81688
+ Text:"\ue6ca",
81689
+ Size:13*GetDevicePixelRatio(),
81690
+ MerginLeft:4
81691
+ },
81692
+
81548
81693
  Tooltip:
81549
81694
  {
81550
81695
  Font:13*GetDevicePixelRatio() +"px 微软雅黑",
@@ -82115,7 +82260,8 @@ function JSChartResource()
82115
82260
  Size:16*GetDevicePixelRatio(),
82116
82261
  Text:"\ue60c",
82117
82262
  Color:"rgb(255,255,255)",
82118
- Border:{ BGColor:"rgb(169,169,169)" }
82263
+ Border:{ BGColor:"rgb(169,169,169)" },
82264
+ IsShow:true,
82119
82265
  }
82120
82266
  }
82121
82267
 
@@ -83177,6 +83323,7 @@ function JSChartResource()
83177
83323
  if (subItem.Text) this.StockChip.PhoneCloseButton.Text=subItem.Text;
83178
83324
  if (subItem.Color) this.StockChip.PhoneCloseButton.Color=subItem.Color;
83179
83325
  if (IFrameSplitOperator.IsNumber(subItem.Size)) this.StockChip.PhoneCloseButton.Size=subItem.Size;
83326
+ if (IFrameSplitOperator.IsBool(subItem.IsShow)) this.StockChip.PhoneCloseButton.IsShow=subItem.IsShow;
83180
83327
  if (subItem.Border)
83181
83328
  {
83182
83329
  if (subItem.Border.BGColor) this.StockChip.PhoneCloseButton.Border.BGColor=subItem.Border.BGColor;
@@ -83447,6 +83594,8 @@ function JSChartResource()
83447
83594
  T_SetButtonStyle(buttons.TitleWindow, this.Buttons.TitleWindow);
83448
83595
  T_SetButtonStyle(buttons.ExportData, this.Buttons.ExportData);
83449
83596
  T_SetButtonStyle(buttons.AddIndexWindow, this.Buttons.AddIndexWindow);
83597
+ T_SetButtonStyle(buttons.IndexHelp, this.Buttons.IndexHelp);
83598
+
83450
83599
 
83451
83600
  if (buttons.Tooltip)
83452
83601
  {
@@ -84246,6 +84395,7 @@ function JSChartResource()
84246
84395
  if (IFrameSplitOperator.IsBool(style.TitleWindow)) dest.ModifyIndex=style.TitleWindow;
84247
84396
  if (IFrameSplitOperator.IsBool(style.ExportData)) dest.ModifyIndex=style.ExportData;
84248
84397
  if (IFrameSplitOperator.IsBool(style.AddIndexWindow)) dest.AddIndexWindow=style.AddIndexWindow;
84398
+ if (IFrameSplitOperator.IsBool(style.IndexHelp)) dest.IndexHelp=style.IndexHelp;
84249
84399
 
84250
84400
  if (IFrameSplitOperator.IsBool(style.IsShowOverlayToolbar)) dest.IsShowOverlayToolbar=style.IsShowOverlayToolbar;
84251
84401
  if (IFrameSplitOperator.IsBool(style.IsShowOverlayFrame)) dest.IsShowOverlayFrame=style.IsShowOverlayFrame;
@@ -84263,6 +84413,7 @@ function JSChartResource()
84263
84413
  if (IFrameSplitOperator.IsBool(style.TitleWindow)) dest.ModifyIndex=style.TitleWindow;
84264
84414
  if (IFrameSplitOperator.IsBool(style.ExportData)) dest.ModifyIndex=style.ExportData;
84265
84415
  if (IFrameSplitOperator.IsBool(style.AddIndexWindow)) dest.AddIndexWindow=style.AddIndexWindow;
84416
+ if (IFrameSplitOperator.IsBool(style.IndexHelp)) dest.IndexHelp=style.IndexHelp;
84266
84417
  }
84267
84418
 
84268
84419
 
@@ -84598,6 +84749,7 @@ function JSChartLocalization()
84598
84749
  ["Toolbar-"+JSCHART_BUTTON_ID.TITLE_WINDOW, {CN:"折叠窗口", EN:"Collapse window", TC:"折叠窗口"}],
84599
84750
  ["Toolbar-"+JSCHART_BUTTON_ID.EXPORT_DATA, {CN:"数据导出", EN:"Export data", TC:"数据导出"}],
84600
84751
  ["Toolbar-"+JSCHART_BUTTON_ID.ADD_INDEX_WINDOW, {CN:"增加指标窗口", EN:"Add index window", TC:"增加指标窗口"}],
84752
+ ["Toolbar-"+JSCHART_BUTTON_ID.INDEX_HELP, {CN:"指标帮助", EN:"Help", TC:"指标帮助"}],
84601
84753
 
84602
84754
  ["Toolbar-"+JSCHART_BUTTON_ID.CLOSE_BEFOREOPEN_ID, {CN:"关闭集合竞价", EN:"Close call auction", TC:"关闭集合竞价"}],
84603
84755
  ["Toolbar-"+JSCHART_BUTTON_ID.CLOSE_OVERLAY_INDEX, {CN:"关闭叠加指标", EN:"Delte overlay indicator", TC:"关闭叠加指标"}],
@@ -109489,6 +109641,7 @@ function JSDivFrameToolbar()
109489
109641
  if (item.ID==JSCHART_BUTTON_ID.CHANGE_INDEX && frame && frame.ChangeIndex===false) continue;
109490
109642
  if (item.ID==JSCHART_BUTTON_ID.OVERLAY_INDEX && frame && frame.OverlayIndex===false) continue;
109491
109643
  if (item.ID==JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW && frame && frame.CloseIndex===false) continue;
109644
+ if (item.ID==JSCHART_BUTTON_ID.INDEX_HELP && frame && frame.IndexHelp===false) continue;
109492
109645
 
109493
109646
  aryButton.push(item);
109494
109647
  }
@@ -109692,7 +109845,10 @@ JSDivFrameToolbar.GetDfaultButtons=function()
109692
109845
  {
109693
109846
  var aryButton=
109694
109847
  [
109695
-
109848
+ {
109849
+ ID:JSCHART_BUTTON_ID.INDEX_HELP, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-help", Tooltip:{ Text:"帮助"},
109850
+ Span:null, Div:null, TooltipSpan:null
109851
+ },
109696
109852
  {
109697
109853
  ID:JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-index_param", Tooltip:{ Text:"修改参数"},
109698
109854
  Span:null, Div:null, TooltipSpan:null
@@ -137000,6 +137156,12 @@ function GetBlackStyle()
137000
137156
  Color:"rgb(156,156,156)"
137001
137157
  },
137002
137158
 
137159
+ IndexHelp:
137160
+ {
137161
+ MoveOnColor:"rgb(255,255,255)",
137162
+ Color:"rgb(156,156,156)"
137163
+ },
137164
+
137003
137165
  Tooltip:
137004
137166
  {
137005
137167
  //Font:12*GetDevicePixelRatio() +"px 微软雅黑",
@@ -165590,7 +165752,7 @@ function HQChartScriptWorker()
165590
165752
 
165591
165753
 
165592
165754
 
165593
- var HQCHART_VERSION="1.1.15079";
165755
+ var HQCHART_VERSION="1.1.15088";
165594
165756
 
165595
165757
  function PrintHQChartVersion()
165596
165758
  {