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.
@@ -4660,8 +4660,6 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4660
4660
  if (IFrameSplitOperator.IsNumber(subItem.Formula)) chart.ChartCorssCursor.StringFormatX.RangeIncrease.Formula=subItem.Formula;
4661
4661
 
4662
4662
  }
4663
-
4664
-
4665
4663
  }
4666
4664
 
4667
4665
  //保存十字光标文字高度
@@ -4680,8 +4678,11 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4680
4678
  {
4681
4679
  var item=option.Frame[i];
4682
4680
  if (!chart.Frame.SubFrame[i]) continue;
4683
- var subFrame=chart.Frame.SubFrame[i].Frame;
4684
4681
 
4682
+ chart.SetSubFrameAttribute(chart.Frame.SubFrame[i], null, item);
4683
+
4684
+ /* 窗口设置全部移动到 SetSubFrameAttribute
4685
+ var subFrame=chart.Frame.SubFrame[i].Frame;
4685
4686
  if (IFrameSplitOperator.IsNumber(item.SplitCount)) chart.Frame.SubFrame[i].Frame.YSplitOperator.SplitCount=item.SplitCount;
4686
4687
  if (item.StringFormat) chart.Frame.SubFrame[i].Frame.YSplitOperator.StringFormat=item.StringFormat;
4687
4688
  if (IFrameSplitOperator.IsNumber(item.FloatPrecision)) chart.Frame.SubFrame[i].Frame.YSplitOperator.FloatPrecision=item.FloatPrecision;
@@ -4727,6 +4728,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4727
4728
  if (IFrameSplitOperator.IsBool(item.IsShowNameArrow)) chart.Frame.SubFrame[i].Frame.IsShowNameArrow=item.IsShowNameArrow;
4728
4729
 
4729
4730
  if (item.ClientBGColor) subFrame.ClientBGColor=item.ClientBGColor;
4731
+ */
4730
4732
  }
4731
4733
  }
4732
4734
 
@@ -4859,6 +4861,9 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4859
4861
 
4860
4862
  }
4861
4863
 
4864
+ chart.SetSubFrameAttribute(chart.Frame.SubFrame[i],item, null)
4865
+
4866
+ /* 窗口设置全部移动到 SetSubFrameAttribute
4862
4867
  var frame=chart.Frame.SubFrame[i].Frame;
4863
4868
  if (IFrameSplitOperator.IsBool(item.Modify)) frame.ModifyIndex=item.Modify;
4864
4869
  if (IFrameSplitOperator.IsBool(item.Change)) frame.ChangeIndex=item.Change;
@@ -4868,6 +4873,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4868
4873
  if (IFrameSplitOperator.IsBool(item.MaxMin)) chart.Frame.SubFrame[i].Frame.MaxMinWindow=item.MaxMin;
4869
4874
  if (IFrameSplitOperator.IsBool(item.TitleWindow)) chart.Frame.SubFrame[i].Frame.TitleWindow=item.TitleWindow;
4870
4875
  if (IFrameSplitOperator.IsBool(item.AddIndexWindow)) frame.AddIndexWindow=item.AddIndexWindow;
4876
+ if (IFrameSplitOperator.IsBool(item.IndexHelp)) frame.IndexHelp=item.IndexHelp;
4871
4877
 
4872
4878
  if (item.IsDrawTitleBG==true) chart.Frame.SubFrame[i].Frame.IsDrawTitleBG=item.IsDrawTitleBG;
4873
4879
  if (IFrameSplitOperator.IsBool(item.IsShowNameArrow)) chart.Frame.SubFrame[i].Frame.IsShowNameArrow=item.IsShowNameArrow;
@@ -4887,6 +4893,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4887
4893
  if (IFrameSplitOperator.IsNumber(item.OverlayIndexType.Position)) chart.Frame.SubFrame[i].Frame.OverlayIndexType.Position=item.OverlayIndexType.Position;
4888
4894
  if (IFrameSplitOperator.IsNumber(item.OverlayIndexType.LineSpace)) chart.Frame.SubFrame[i].Frame.OverlayIndexType.LineSpace=item.OverlayIndexType.LineSpace;
4889
4895
  }
4896
+ */
4890
4897
  }
4891
4898
 
4892
4899
  //叠加指标宽度
@@ -5242,6 +5249,10 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
5242
5249
  {
5243
5250
  var item=option.Frame[i];
5244
5251
  if (!chart.Frame.SubFrame[i]) continue;
5252
+
5253
+ chart.SetSubFrameAttribute(chart.Frame.SubFrame[i],null,item);
5254
+
5255
+ /*
5245
5256
  var subFrame=chart.Frame.SubFrame[i].Frame;
5246
5257
 
5247
5258
  if (IFrameSplitOperator.IsNumber(item.SplitCount)) chart.Frame.SubFrame[i].Frame.YSplitOperator.SplitCount=item.SplitCount;
@@ -5299,6 +5310,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
5299
5310
  if (subItem.Percentage && IFrameSplitOperator.IsNumber(subItem.Percentage.Dec)) subFrame.YSplitOperator.RightTextConfig.Percentage.Dec=subItem.Percentage.Dec;
5300
5311
  }
5301
5312
  }
5313
+ */
5302
5314
  }
5303
5315
 
5304
5316
  chart.UpdateXShowText();
@@ -5414,6 +5426,9 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
5414
5426
  }
5415
5427
  }
5416
5428
 
5429
+ chart.SetSubFrameAttribute(chart.Frame.SubFrame[index],item, null);
5430
+
5431
+ /*
5417
5432
  var frame=chart.Frame.SubFrame[index].Frame;
5418
5433
  if (IFrameSplitOperator.IsBool(item.Modify)) frame.ModifyIndex=item.Modify;
5419
5434
  if (IFrameSplitOperator.IsBool(item.Change)) frame.ChangeIndex=item.Change;
@@ -5423,6 +5438,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
5423
5438
  if (IFrameSplitOperator.IsBool(item.MaxMin)) frame.MaxMinWindow=item.MaxMin;
5424
5439
  if (IFrameSplitOperator.IsBool(item.TitleWindow)) frame.TitleWindow=item.TitleWindow;
5425
5440
  if (IFrameSplitOperator.IsBool(item.AddIndexWindow)) frame.AddIndexWindow=item.AddIndexWindow;
5441
+ if (IFrameSplitOperator.IsBool(item.IndexHelp)) frame.IndexHelp=item.IndexHelp;
5426
5442
 
5427
5443
  if (IFrameSplitOperator.IsNumber(item.YSplitType)) chart.Frame.SubFrame[index].Frame.YSplitOperator.SplitType=item.YSplitType;
5428
5444
  if (IFrameSplitOperator.IsNumber(item.FilterType)) chart.Frame.SubFrame[index].Frame.YSplitOperator.FilterType=item.FilterType;
@@ -5435,6 +5451,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
5435
5451
  if (item.IsShowIndexName==false) chart.Frame.SubFrame[index].Frame.IsShowIndexName=false;
5436
5452
  if (item.IsShowOverlayIndexName==false) chart.Frame.SubFrame[index].Frame.IsShowOverlayIndexName=false;
5437
5453
  if (!IFrameSplitOperator.IsUndefined(item.HorizontalReserved)) frame.HorizontalReserved=item.HorizontalReserved;
5454
+ */
5438
5455
  }
5439
5456
  }
5440
5457
 
@@ -7076,6 +7093,7 @@ var JSCHART_BUTTON_ID=
7076
7093
  ADD_INDEX_WINDOW:44, //增加指标窗口
7077
7094
 
7078
7095
  CHIP_CLOSE:45, //关闭筹码图
7096
+ INDEX_HELP:46, //指标帮助
7079
7097
  }
7080
7098
 
7081
7099
  var JSCHART_DATA_FIELD_ID=
@@ -14412,9 +14430,14 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
14412
14430
  if (IFrameSplitOperator.IsBool(windowItem.Change)) frame.ChangeIndex=windowItem.Change;
14413
14431
  if (IFrameSplitOperator.IsBool(windowItem.Close)) frame.CloseIndex=windowItem.Close;
14414
14432
  if (IFrameSplitOperator.IsBool(windowItem.Overlay)) frame.OverlayIndex=windowItem.Overlay;
14433
+ if (IFrameSplitOperator.IsBool(windowItem.Export)) frame.ExportData=windowItem.Export;
14434
+ if (IFrameSplitOperator.IsBool(windowItem.MaxMin)) frame.MaxMinWindow=windowItem.MaxMin;
14435
+ if (IFrameSplitOperator.IsBool(windowItem.TitleWindow)) frame.TitleWindow=windowItem.TitleWindow;
14415
14436
  if (IFrameSplitOperator.IsBool(windowItem.AddIndexWindow)) frame.AddIndexWindow=windowItem.AddIndexWindow;
14437
+ if (IFrameSplitOperator.IsBool(windowItem.IndexHelp)) frame.IndexHelp=windowItem.IndexHelp;
14416
14438
 
14417
14439
  if (IFrameSplitOperator.IsBool(windowItem.IsDrawTitleBG)) frame.IsDrawTitleBG=windowItem.IsDrawTitleBG;
14440
+ if (IFrameSplitOperator.IsBool(windowItem.IsShowNameArrow)) frame.IsShowNameArrow=windowItem.IsShowNameArrow;
14418
14441
 
14419
14442
  if (IFrameSplitOperator.IsNumber(windowItem.TitleHeight)) frame.ChartBorder.TitleHeight=windowItem.TitleHeight;
14420
14443
  else windowItem.TitleHeight=frame.ChartBorder.TitleHeight;
@@ -14422,21 +14445,33 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
14422
14445
  if (IFrameSplitOperator.IsBool(windowItem.IsShowTitleArrow)) frame.IsShowTitleArrow=windowItem.IsShowTitleArrow;
14423
14446
  if (IFrameSplitOperator.IsNumber(windowItem.TitleArrowType)) frame.TitleArrowType=windowItem.TitleArrowType;
14424
14447
  if (IFrameSplitOperator.IsBool(windowItem.IsShowIndexName)) frame.IsShowIndexName=windowItem.IsShowIndexName;
14448
+ if (IFrameSplitOperator.IsBool(windowItem.IsShowOverlayIndexName)) frame.IsShowOverlayIndexName=windowItem.IsShowOverlayIndexName;
14425
14449
  if (IFrameSplitOperator.IsNumber(windowItem.IndexParamSpace)) frame.IndexParamSpace=windowItem.IndexParamSpace;
14426
14450
  if (IFrameSplitOperator.IsNumber(windowItem.IndexTitleSpace)) frame.IndexTitleSpace=windowItem.IndexTitleSpace;
14427
14451
  if (!IFrameSplitOperator.IsUndefined(windowItem.HorizontalReserved)) frame.HorizontalReserved=windowItem.HorizontalReserved; //Y轴上下预留
14428
- if (IFrameSplitOperator.IsBool(windowItem.IsShowNameArrow)) frame.IsShowNameArrow=windowItem.IsShowNameArrow;
14452
+
14453
+ if (windowItem.OverlayIndexType)
14454
+ {
14455
+ if (IFrameSplitOperator.IsNumber(windowItem.OverlayIndexType.Position)) frame.OverlayIndexType.Position=windowItem.OverlayIndexType.Position;
14456
+ if (IFrameSplitOperator.IsNumber(windowItem.OverlayIndexType.LineSpace)) frame.OverlayIndexType.LineSpace=windowItem.OverlayIndexType.LineSpace;
14457
+ }
14429
14458
  }
14430
14459
 
14431
14460
  if (frameItem)
14432
14461
  {
14433
- if (frameItem.SplitCount) frame.YSplitOperator.SplitCount=frameItem.SplitCount;
14462
+ if (frameItem.SplitCount) frame.YSplitOperator.SplitCount=frameItem.SplitCount; //Y轴刻度线个数
14463
+ if (frameItem.StringFormat) frame.YSplitOperator.StringFormat=frameItem.StringFormat; //Y轴文字格式
14464
+ if (IFrameSplitOperator.IsNumber(frameItem.FloatPrecision)) frame.YSplitOperator.FloatPrecision=frameItem.FloatPrecision; //Y轴小数位数
14465
+ if (frameItem.Custom) frame.YSplitOperator.Custom=frameItem.Custom; //Y轴自定义刻度
14466
+
14434
14467
  if (IFrameSplitOperator.IsNumber(frameItem.SplitType))
14435
14468
  {
14436
14469
  frame.YSplitOperator.SplitType=frameItem.SplitType;
14437
14470
  frame.YSplitOperator.DefaultSplitType=frameItem.SplitType;
14438
14471
  }
14439
14472
 
14473
+ if (IFrameSplitOperator.IsNumber(frameItem.FilterType)) frame.YSplitOperator.FilterType=frameItem.FilterType;
14474
+
14440
14475
  if (IFrameSplitOperator.IsBool(frameItem.IsShowXLine)) frame.IsShowXLine=frameItem.IsShowXLine;
14441
14476
  if (IFrameSplitOperator.IsBool(frameItem.IsShowYLine)) frame.IsShowYLine=frameItem.IsShowYLine;
14442
14477
 
@@ -14454,6 +14489,41 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
14454
14489
  if (IFrameSplitOperator.IsNumber(frameItem.Height) && frameItem.Height>=0) subFrame.Height = frameItem.Height;
14455
14490
  if (IFrameSplitOperator.IsNumber(frameItem.TopSpace)) frame.ChartBorder.TopSpace=frameItem.TopSpace*pixelRatio;
14456
14491
  if (IFrameSplitOperator.IsNumber(frameItem.BottomSpace)) frame.ChartBorder.BottomSpace=frameItem.BottomSpace*pixelRatio;
14492
+
14493
+ if (IFrameSplitOperator.IsNumber(frameItem.RightTextPosition)) frame.YTextPosition[1]=frameItem.RightTextPosition;
14494
+ if (IFrameSplitOperator.IsNumber(frameItem.LeftTextPosition)) frame.YTextPosition[0]=frameItem.LeftTextPosition;
14495
+ if (IFrameSplitOperator.IsNumber(frameItem.YTextBaseline)) frame.YTextBaseline=frameItem.YTextBaseline;
14496
+
14497
+ if (IFrameSplitOperator.IsNumber(frameItem.YCoordinateType)) frame.YSplitOperator.CoordinateType=frameItem.YCoordinateType; //坐标类型
14498
+ if (frameItem.IsYReverse===true) frame.CoordinateType=1; //反转坐标
14499
+
14500
+ if (IFrameSplitOperator.IsNumber(frameItem.PercentageTextFormat)) frame.YSplitOperator.PercentageTextFormat=frameItem.PercentageTextFormat; //百分比坐标格式
14501
+ if (frameItem.DefaultYMaxMin) frame.YSplitOperator.DefaultYMaxMin=frameItem.DefaultYMaxMin; //指定最大最小值
14502
+ if (IFrameSplitOperator.IsBool(frameItem.EnableRemoveZero)) frame.YSplitOperator.EnableRemoveZero=frameItem.EnableRemoveZero; //Y轴文字小数位是否自动抹0
14503
+ if (IFrameSplitOperator.IsPlusNumber(frameItem.MinYDistance)) frame.MinYDistance=frameItem.MinYDistance;
14504
+ if (IFrameSplitOperator.IsNumber(frameItem.BorderLine)) frame.BorderLine=frameItem.BorderLine;
14505
+ if (IFrameSplitOperator.IsBool(frameItem.IsDrawTitleBottomLine)) frame.IsDrawTitleBottomLine=frameItem.IsDrawTitleBottomLine;
14506
+ if (IFrameSplitOperator.IsBool(frameItem.IsShowIndexTitle)) frame.IsShowIndexTitle=frameItem.IsShowIndexTitle;
14507
+ if (frameItem.ClientBGColor) frame.ClientBGColor=frameItem.ClientBGColor;
14508
+
14509
+ //分时图属性
14510
+ if (IFrameSplitOperator.IsBool(frameItem.CloseBeforeButton)) frameItem.IsShowCloseButton=frameItem.CloseBeforeButton;
14511
+ if (frame.YSplitOperator.RightTextConfig) //主图右侧坐标设置
14512
+ {
14513
+ if (IFrameSplitOperator.IsNumber(frameItem.RightTextFormat)) //废弃(兼容版本)
14514
+ {
14515
+ frame.YSplitOperator.RightTextConfig.Format=frameItem.RightTextFormat;
14516
+ if (frameItem.RightTextFormat==2) frame.MultiTextFormat=1;
14517
+ }
14518
+
14519
+ if (frameItem.RightText) //主图右侧坐标设置(新版本)
14520
+ {
14521
+ var subItem=frameItem.RightText;
14522
+ if (IFrameSplitOperator.IsNumber(subItem.Format)) frame.YSplitOperator.RightTextConfig.Format=subItem.Format;
14523
+ if (subItem.Format==2) frame.MultiTextFormat=1;
14524
+ if (subItem.Percentage && IFrameSplitOperator.IsNumber(subItem.Percentage.Dec)) frame.YSplitOperator.RightTextConfig.Percentage.Dec=subItem.Percentage.Dec;
14525
+ }
14526
+ }
14457
14527
  }
14458
14528
 
14459
14529
  }
@@ -14476,6 +14546,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
14476
14546
  if (IFrameSplitOperator.IsBool(item.MaxMin)) frame.MaxMinWindow=item.MaxMin;
14477
14547
  if (IFrameSplitOperator.IsBool(item.TitleWindow)) frame.TitleWindow=item.TitleWindow;
14478
14548
  if (IFrameSplitOperator.IsBool(item.AddIndexWindow)) frame.AddIndexWindow=item.AddIndexWindow;
14549
+ if (IFrameSplitOperator.IsBool(item.IndexHelp)) frame.IndexHelp=item.IndexHelp;
14479
14550
 
14480
14551
  if (IFrameSplitOperator.IsBool(item.IsDrawTitleBG)) frame.IsDrawTitleBG=item.IsDrawTitleBG;
14481
14552
  if (IFrameSplitOperator.IsBool(item.IsShowNameArrow)) frame.IsShowNameArrow=item.IsShowNameArrow;
@@ -17687,6 +17758,7 @@ function AverageWidthFrame()
17687
17758
  this.TitleWindowButton=CloneData(g_JSChartResource.Buttons.TitleWindow);
17688
17759
  this.ExportDataButton=CloneData(g_JSChartResource.Buttons.ExportData);
17689
17760
  this.AddIndexWindowButton=CloneData(g_JSChartResource.Buttons.AddIndexWindow);
17761
+ this.IndexHelpButton=CloneData(g_JSChartResource.Buttons.IndexHelp);
17690
17762
 
17691
17763
  this.ButtonTooltip=CloneData(g_JSChartResource.Buttons.Tooltip);
17692
17764
 
@@ -17725,6 +17797,7 @@ function AverageWidthFrame()
17725
17797
  this.TitleWindowButton=CloneData(g_JSChartResource.Buttons.TitleWindow);
17726
17798
  this.ButtonTooltip=CloneData(g_JSChartResource.Buttons.Tooltip);
17727
17799
  this.AddIndexWindowButton=CloneData(g_JSChartResource.Buttons.AddIndexWindow);
17800
+ this.IndexHelpButton=CloneData(g_JSChartResource.Buttons.IndexHelp);
17728
17801
  }
17729
17802
 
17730
17803
  if (this.DivFrameToolbar) this.DivFrameToolbar.ReloadResource(resource);
@@ -20380,6 +20453,7 @@ function MinuteFrame()
20380
20453
  this.ExportData=g_JSChartResource.MinuteToolbar.ExportData; //是否显示'导出数据'菜单
20381
20454
  this.OverlayIndex=g_JSChartResource.MinuteToolbar.OverlayIndex; //是否显示叠加指标
20382
20455
  this.AddIndexWindow=g_JSChartResource.MinuteToolbar.AddIndexWindow; //是否显示'增加指标窗口'菜单
20456
+ this.IndexHelp=g_JSChartResource.MinuteToolbar.IndexHelp;
20383
20457
 
20384
20458
  this.IsShowPositionTitle=false; //是否显示持仓标题
20385
20459
 
@@ -20536,6 +20610,7 @@ function MinuteFrame()
20536
20610
  if (this.ChangeIndex) aryButton.push( { ID:JSCHART_BUTTON_ID.CHANGE_INDEX, Style:this.ChangeIndexButton });
20537
20611
  if (this.ModifyIndex) aryButton.push( { ID:JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM, Style:this.ModifyIndexParamButton });
20538
20612
  if (this.AddIndexWindow) aryButton.push({ ID:JSCHART_BUTTON_ID.ADD_INDEX_WINDOW, Style:this.AddIndexWindowButton} );
20613
+ if (this.IndexHelp) aryButton.push({ ID:JSCHART_BUTTON_ID.INDEX_HELP, Style:this.IndexHelpButton} );
20539
20614
  }
20540
20615
 
20541
20616
  if (IFrameSplitOperator.IsNonEmptyArray(this.CustomToolbar))
@@ -22704,6 +22779,7 @@ function KLineFrame()
22704
22779
  this.TitleWindow=g_JSChartResource.KLineToolbar.TitleWindow;
22705
22780
  this.ExportData=g_JSChartResource.KLineToolbar.ExportData; //是否显示'导出数据'菜单
22706
22781
  this.AddIndexWindow=g_JSChartResource.KLineToolbar.AddIndexWindow; //是否显示'增加指标窗口'菜单
22782
+ this.IndexHelp=g_JSChartResource.KLineToolbar.IndexHelp;
22707
22783
 
22708
22784
  this.SelBorderColor=g_JSChartResource.SelFrameBorderColor;
22709
22785
 
@@ -22903,6 +22979,7 @@ function KLineFrame()
22903
22979
  if (this.ChangeIndex) aryButton.push( { ID:JSCHART_BUTTON_ID.CHANGE_INDEX, Style:this.ChangeIndexButton });
22904
22980
  if (this.ModifyIndex) aryButton.push( { ID:JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM, Style:this.ModifyIndexParamButton });
22905
22981
  if (this.AddIndexWindow) aryButton.push({ ID:JSCHART_BUTTON_ID.ADD_INDEX_WINDOW, Style:this.AddIndexWindowButton} );
22982
+ if (this.IndexHelp) aryButton.push({ ID:JSCHART_BUTTON_ID.INDEX_HELP, Style:this.IndexHelpButton} );
22906
22983
 
22907
22984
  if (IFrameSplitOperator.IsNonEmptyArray(this.CustomToolbar))
22908
22985
  {
@@ -51818,6 +51895,31 @@ function ChartLock()
51818
51895
  this.IndexID; //指标ID
51819
51896
  this.MinWidth=null; //最小宽度
51820
51897
 
51898
+
51899
+ this.CalculateTextSize=function(aryText, defaultFont, out)
51900
+ {
51901
+ if (!out || !IFrameSplitOperator.IsNonEmptyArray(aryText)) return false;
51902
+
51903
+ this.Canvas.font=defaultFont;
51904
+ var lineHeight=this.Canvas.measureText("擎").width; //行高
51905
+ var height=0, width=0;
51906
+ out.AryText=[];
51907
+ for(var i=0;i<aryText.length;++i)
51908
+ {
51909
+ var item=aryText[i];
51910
+ if (!item || !item.Text) continue;
51911
+ var textWidth=this.Canvas.measureText(item.Text).width;
51912
+ if (width<textWidth) width=textWidth;
51913
+ out.AryText.push({ Text:item.Text, Width:textWidth, Height:lineHeight, Color:item.Color });
51914
+ height+=lineHeight;
51915
+ }
51916
+
51917
+ out.Width=width;
51918
+ out.Height=height;
51919
+
51920
+ return true;
51921
+ }
51922
+
51821
51923
  this.Draw=function(isDraw)
51822
51924
  {
51823
51925
  this.LockRect=null;
@@ -51834,6 +51936,7 @@ function ChartLock()
51834
51936
  }
51835
51937
 
51836
51938
  var xOffset = this.ChartBorder.GetRight();
51939
+ var border=this.ChartBorder.GetBorder();
51837
51940
  var lOffsetWidth = 0;
51838
51941
  if (this.ChartFrame.Data != null)
51839
51942
  {
@@ -51860,7 +51963,6 @@ function ChartLock()
51860
51963
  var lLeft = xOffset - lOffsetWidth;
51861
51964
  if (lLeft < this.ChartBorder.GetLeft())
51862
51965
  lLeft = this.ChartBorder.GetLeft();
51863
- var lHeight = this.ChartBorder.GetBottom() - this.ChartBorder.GetTop();
51864
51966
  var lWidth = this.ChartBorder.GetRight() - lLeft;
51865
51967
 
51866
51968
  if (this.MinWidth>10 && lWidth<this.MinWidth)
@@ -51870,27 +51972,42 @@ function ChartLock()
51870
51972
  if (lLeft < this.ChartBorder.GetLeft()) lLeft = this.ChartBorder.GetLeft();
51871
51973
  }
51872
51974
 
51873
- if (isDraw)
51874
- {
51875
- var rtBG={ Left:lLeft, Top:this.ChartBorder.GetTop(), Width:lWidth, Height:lHeight };
51876
- rtBG.Right=rtBG.Width+rtBG.Left;
51877
- rtBG.Bottom=rtBG.Height+rtBG.Top;
51975
+ var rtBG={ Left:lLeft, Top:border.TopTitle, Bottom:border.Bottom, Width:lWidth };
51976
+ rtBG.Right=rtBG.Width+rtBG.Left;
51977
+ rtBG.Height=rtBG.Bottom-rtBG.Top;
51978
+ this.LockRect=rtBG; //保存上锁区域
51878
51979
 
51879
- //上下渐变
51880
- var bgColor=this.SetFillStyle(this.BGColor, rtBG.Left, rtBG.Top, rtBG.Left, rtBG.Bottom);
51881
- this.Canvas.fillStyle =bgColor;
51882
- this.Canvas.fillRect(rtBG.Left, rtBG.Top, rtBG.Width, rtBG.Height);
51980
+ if (!isDraw) return;
51981
+
51982
+ //上下渐变
51983
+ var bgColor=this.SetFillStyle(this.BGColor, rtBG.Left, rtBG.Top, rtBG.Left, rtBG.Bottom);
51984
+ this.Canvas.fillStyle =bgColor;
51985
+ this.Canvas.fillRect(rtBG.Left, rtBG.Top, rtBG.Width, rtBG.Height);
51883
51986
 
51884
- var xCenter = rtBG.Left + rtBG.Width / 2;
51885
- var yCenter = rtBG.Top + lHeight / 2;
51886
- this.Canvas.textAlign = 'center';
51887
- this.Canvas.textBaseline = 'middle';
51888
- this.Canvas.fillStyle = this.TextColor;
51889
- this.Canvas.font = this.Font;
51890
- this.Canvas.fillText(this.Title, xCenter, yCenter);
51891
- }
51987
+ var aryText=null;
51988
+ if (Array.isArray(this.Title)) aryText=this.Title;
51989
+ else aryText=[{Text:this.Title}];
51990
+
51991
+ var outSize={ };
51992
+ if (!this.CalculateTextSize(aryText, this.Font, outSize)) return;
51993
+
51994
+ var left=rtBG.Left+(rtBG.Width-outSize.Width)/2;
51995
+ if (outSize.Width>rtBG.Width) left=rtBG.Right-outSize.Width;
51996
+ var top=rtBG.Top+(rtBG.Height-outSize.Height)/2;
51997
+
51998
+ this.Canvas.textAlign='left';
51999
+ this.Canvas.textBaseline='bottom';
52000
+ this.Canvas.font = this.Font;
52001
+ var yText=top;
52002
+ for(var i=0;i<outSize.AryText.length;++i)
52003
+ {
52004
+ var item=outSize.AryText[i];
52005
+ if (item.Color) this.Canvas.fillStyle=item.Color;
52006
+ else this.Canvas.fillStyle=this.TextColor;
51892
52007
 
51893
- this.LockRect={Left:lLeft,Top:this.ChartBorder.GetTop(),Width:lWidth,Heigh:lHeight}; //保存上锁区域
52008
+ yText+=item.Height;
52009
+ this.Canvas.fillText(item.Text, left, yText);
52010
+ }
51894
52011
  }
51895
52012
 
51896
52013
  this.HScreenDraw=function(isDraw)
@@ -51951,7 +52068,7 @@ function ChartLock()
51951
52068
  if (this.LockRect==null) return false;
51952
52069
 
51953
52070
  this.Canvas.beginPath();
51954
- this.Canvas.rect(this.LockRect.Left,this.LockRect.Top,this.LockRect.Width,this.LockRect.Heigh);
52071
+ this.Canvas.rect(this.LockRect.Left,this.LockRect.Top,this.LockRect.Width,this.LockRect.Height);
51955
52072
  if (this.Canvas.isPointInPath(x,y))
51956
52073
  {
51957
52074
  tooltip.Data={ ID:this.LockID, Callback:this.Callback, IndexName:this.IndexName, IndexID:this.IndexID };
@@ -54328,6 +54445,20 @@ function StockChipPhone()
54328
54445
 
54329
54446
  this.CloseButtonConfig=CloneData(g_JSChartResource.StockChip.PhoneCloseButton);
54330
54447
 
54448
+ this.Super_SetOption=this.SetOption;
54449
+
54450
+ this.SetOption=function(option)
54451
+ {
54452
+ this.Super_SetOption(option);
54453
+
54454
+ if (!option) return;
54455
+
54456
+ if (option.PhoneCloseButton)
54457
+ {
54458
+ var item=option.PhoneCloseButton;
54459
+ if (IFrameSplitOperator.IsBool(item.IsShow)) this.CloseButtonConfig.IsShow=item.IsShow;
54460
+ }
54461
+ }
54331
54462
 
54332
54463
  this.Draw=function()
54333
54464
  {
@@ -54742,6 +54873,8 @@ function StockChipPhone()
54742
54873
  this.DrawCloseButton=function()
54743
54874
  {
54744
54875
  var config=this.CloseButtonConfig;
54876
+ if (!config.IsShow) return;
54877
+
54745
54878
  var font=`${config.Size}px ${config.Family}`;
54746
54879
  var rtButton=null;
54747
54880
  if (this.IsHScreen)
@@ -80881,6 +81014,7 @@ function JSChartResource()
80881
81014
  TitleWindow:true, //标题模式
80882
81015
  ExportData:false, //数据导出
80883
81016
  AddIndexWindow:false, //增加指标窗口
81017
+ IndexHelp:false, //指标帮助
80884
81018
 
80885
81019
  IsShowOverlayToolbar:true, //是否显示叠加坐标工具栏按钮
80886
81020
  IsShowOverlayFrame:true, //是否显示右侧叠加坐标
@@ -80897,6 +81031,7 @@ function JSChartResource()
80897
81031
  TitleWindow:true, //标题模式
80898
81032
  ExportData:false, //数据导出
80899
81033
  AddIndexWindow:false, //增加指标窗口
81034
+ IndexHelp:false, //指标帮助
80900
81035
  }
80901
81036
 
80902
81037
  this.TooltipBGColor="rgb(255, 255, 255)"; //背景色
@@ -81501,6 +81636,16 @@ function JSChartResource()
81501
81636
  MerginLeft:4
81502
81637
  },
81503
81638
 
81639
+ IndexHelp:
81640
+ {
81641
+ Color:"rgb(0,0,0)",
81642
+ MoveOnColor:'rgb(30,144,255)',
81643
+ Family:"iconfont",
81644
+ Text:"\ue6ca",
81645
+ Size:13*GetDevicePixelRatio(),
81646
+ MerginLeft:4
81647
+ },
81648
+
81504
81649
  Tooltip:
81505
81650
  {
81506
81651
  Font:13*GetDevicePixelRatio() +"px 微软雅黑",
@@ -82071,7 +82216,8 @@ function JSChartResource()
82071
82216
  Size:16*GetDevicePixelRatio(),
82072
82217
  Text:"\ue60c",
82073
82218
  Color:"rgb(255,255,255)",
82074
- Border:{ BGColor:"rgb(169,169,169)" }
82219
+ Border:{ BGColor:"rgb(169,169,169)" },
82220
+ IsShow:true,
82075
82221
  }
82076
82222
  }
82077
82223
 
@@ -83133,6 +83279,7 @@ function JSChartResource()
83133
83279
  if (subItem.Text) this.StockChip.PhoneCloseButton.Text=subItem.Text;
83134
83280
  if (subItem.Color) this.StockChip.PhoneCloseButton.Color=subItem.Color;
83135
83281
  if (IFrameSplitOperator.IsNumber(subItem.Size)) this.StockChip.PhoneCloseButton.Size=subItem.Size;
83282
+ if (IFrameSplitOperator.IsBool(subItem.IsShow)) this.StockChip.PhoneCloseButton.IsShow=subItem.IsShow;
83136
83283
  if (subItem.Border)
83137
83284
  {
83138
83285
  if (subItem.Border.BGColor) this.StockChip.PhoneCloseButton.Border.BGColor=subItem.Border.BGColor;
@@ -83403,6 +83550,8 @@ function JSChartResource()
83403
83550
  T_SetButtonStyle(buttons.TitleWindow, this.Buttons.TitleWindow);
83404
83551
  T_SetButtonStyle(buttons.ExportData, this.Buttons.ExportData);
83405
83552
  T_SetButtonStyle(buttons.AddIndexWindow, this.Buttons.AddIndexWindow);
83553
+ T_SetButtonStyle(buttons.IndexHelp, this.Buttons.IndexHelp);
83554
+
83406
83555
 
83407
83556
  if (buttons.Tooltip)
83408
83557
  {
@@ -84202,6 +84351,7 @@ function JSChartResource()
84202
84351
  if (IFrameSplitOperator.IsBool(style.TitleWindow)) dest.ModifyIndex=style.TitleWindow;
84203
84352
  if (IFrameSplitOperator.IsBool(style.ExportData)) dest.ModifyIndex=style.ExportData;
84204
84353
  if (IFrameSplitOperator.IsBool(style.AddIndexWindow)) dest.AddIndexWindow=style.AddIndexWindow;
84354
+ if (IFrameSplitOperator.IsBool(style.IndexHelp)) dest.IndexHelp=style.IndexHelp;
84205
84355
 
84206
84356
  if (IFrameSplitOperator.IsBool(style.IsShowOverlayToolbar)) dest.IsShowOverlayToolbar=style.IsShowOverlayToolbar;
84207
84357
  if (IFrameSplitOperator.IsBool(style.IsShowOverlayFrame)) dest.IsShowOverlayFrame=style.IsShowOverlayFrame;
@@ -84219,6 +84369,7 @@ function JSChartResource()
84219
84369
  if (IFrameSplitOperator.IsBool(style.TitleWindow)) dest.ModifyIndex=style.TitleWindow;
84220
84370
  if (IFrameSplitOperator.IsBool(style.ExportData)) dest.ModifyIndex=style.ExportData;
84221
84371
  if (IFrameSplitOperator.IsBool(style.AddIndexWindow)) dest.AddIndexWindow=style.AddIndexWindow;
84372
+ if (IFrameSplitOperator.IsBool(style.IndexHelp)) dest.IndexHelp=style.IndexHelp;
84222
84373
  }
84223
84374
 
84224
84375
 
@@ -84554,6 +84705,7 @@ function JSChartLocalization()
84554
84705
  ["Toolbar-"+JSCHART_BUTTON_ID.TITLE_WINDOW, {CN:"折叠窗口", EN:"Collapse window", TC:"折叠窗口"}],
84555
84706
  ["Toolbar-"+JSCHART_BUTTON_ID.EXPORT_DATA, {CN:"数据导出", EN:"Export data", TC:"数据导出"}],
84556
84707
  ["Toolbar-"+JSCHART_BUTTON_ID.ADD_INDEX_WINDOW, {CN:"增加指标窗口", EN:"Add index window", TC:"增加指标窗口"}],
84708
+ ["Toolbar-"+JSCHART_BUTTON_ID.INDEX_HELP, {CN:"指标帮助", EN:"Help", TC:"指标帮助"}],
84557
84709
 
84558
84710
  ["Toolbar-"+JSCHART_BUTTON_ID.CLOSE_BEFOREOPEN_ID, {CN:"关闭集合竞价", EN:"Close call auction", TC:"关闭集合竞价"}],
84559
84711
  ["Toolbar-"+JSCHART_BUTTON_ID.CLOSE_OVERLAY_INDEX, {CN:"关闭叠加指标", EN:"Delte overlay indicator", TC:"关闭叠加指标"}],
@@ -109445,6 +109597,7 @@ function JSDivFrameToolbar()
109445
109597
  if (item.ID==JSCHART_BUTTON_ID.CHANGE_INDEX && frame && frame.ChangeIndex===false) continue;
109446
109598
  if (item.ID==JSCHART_BUTTON_ID.OVERLAY_INDEX && frame && frame.OverlayIndex===false) continue;
109447
109599
  if (item.ID==JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW && frame && frame.CloseIndex===false) continue;
109600
+ if (item.ID==JSCHART_BUTTON_ID.INDEX_HELP && frame && frame.IndexHelp===false) continue;
109448
109601
 
109449
109602
  aryButton.push(item);
109450
109603
  }
@@ -109648,7 +109801,10 @@ JSDivFrameToolbar.GetDfaultButtons=function()
109648
109801
  {
109649
109802
  var aryButton=
109650
109803
  [
109651
-
109804
+ {
109805
+ ID:JSCHART_BUTTON_ID.INDEX_HELP, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-help", Tooltip:{ Text:"帮助"},
109806
+ Span:null, Div:null, TooltipSpan:null
109807
+ },
109652
109808
  {
109653
109809
  ID:JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-index_param", Tooltip:{ Text:"修改参数"},
109654
109810
  Span:null, Div:null, TooltipSpan:null
@@ -136956,6 +137112,12 @@ function GetBlackStyle()
136956
137112
  Color:"rgb(156,156,156)"
136957
137113
  },
136958
137114
 
137115
+ IndexHelp:
137116
+ {
137117
+ MoveOnColor:"rgb(255,255,255)",
137118
+ Color:"rgb(156,156,156)"
137119
+ },
137120
+
136959
137121
  Tooltip:
136960
137122
  {
136961
137123
  //Font:12*GetDevicePixelRatio() +"px 微软雅黑",
@@ -153710,7 +153872,7 @@ function ScrollBarBGChart()
153710
153872
 
153711
153873
 
153712
153874
 
153713
- var HQCHART_VERSION="1.1.15079";
153875
+ var HQCHART_VERSION="1.1.15088";
153714
153876
 
153715
153877
  function PrintHQChartVersion()
153716
153878
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.15079";
8
+ var HQCHART_VERSION="1.1.15088";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {