hqchart 1.1.15084 → 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;
@@ -4932,6 +4937,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4932
4937
  if (IFrameSplitOperator.IsNumber(item.OverlayIndexType.Position)) chart.Frame.SubFrame[i].Frame.OverlayIndexType.Position=item.OverlayIndexType.Position;
4933
4938
  if (IFrameSplitOperator.IsNumber(item.OverlayIndexType.LineSpace)) chart.Frame.SubFrame[i].Frame.OverlayIndexType.LineSpace=item.OverlayIndexType.LineSpace;
4934
4939
  }
4940
+ */
4935
4941
  }
4936
4942
 
4937
4943
  //叠加指标宽度
@@ -5287,6 +5293,10 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
5287
5293
  {
5288
5294
  var item=option.Frame[i];
5289
5295
  if (!chart.Frame.SubFrame[i]) continue;
5296
+
5297
+ chart.SetSubFrameAttribute(chart.Frame.SubFrame[i],null,item);
5298
+
5299
+ /*
5290
5300
  var subFrame=chart.Frame.SubFrame[i].Frame;
5291
5301
 
5292
5302
  if (IFrameSplitOperator.IsNumber(item.SplitCount)) chart.Frame.SubFrame[i].Frame.YSplitOperator.SplitCount=item.SplitCount;
@@ -5344,6 +5354,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
5344
5354
  if (subItem.Percentage && IFrameSplitOperator.IsNumber(subItem.Percentage.Dec)) subFrame.YSplitOperator.RightTextConfig.Percentage.Dec=subItem.Percentage.Dec;
5345
5355
  }
5346
5356
  }
5357
+ */
5347
5358
  }
5348
5359
 
5349
5360
  chart.UpdateXShowText();
@@ -5459,6 +5470,9 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
5459
5470
  }
5460
5471
  }
5461
5472
 
5473
+ chart.SetSubFrameAttribute(chart.Frame.SubFrame[index],item, null);
5474
+
5475
+ /*
5462
5476
  var frame=chart.Frame.SubFrame[index].Frame;
5463
5477
  if (IFrameSplitOperator.IsBool(item.Modify)) frame.ModifyIndex=item.Modify;
5464
5478
  if (IFrameSplitOperator.IsBool(item.Change)) frame.ChangeIndex=item.Change;
@@ -5481,6 +5495,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
5481
5495
  if (item.IsShowIndexName==false) chart.Frame.SubFrame[index].Frame.IsShowIndexName=false;
5482
5496
  if (item.IsShowOverlayIndexName==false) chart.Frame.SubFrame[index].Frame.IsShowOverlayIndexName=false;
5483
5497
  if (!IFrameSplitOperator.IsUndefined(item.HorizontalReserved)) frame.HorizontalReserved=item.HorizontalReserved;
5498
+ */
5484
5499
  }
5485
5500
  }
5486
5501
 
@@ -14459,10 +14474,14 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
14459
14474
  if (IFrameSplitOperator.IsBool(windowItem.Change)) frame.ChangeIndex=windowItem.Change;
14460
14475
  if (IFrameSplitOperator.IsBool(windowItem.Close)) frame.CloseIndex=windowItem.Close;
14461
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;
14462
14480
  if (IFrameSplitOperator.IsBool(windowItem.AddIndexWindow)) frame.AddIndexWindow=windowItem.AddIndexWindow;
14463
14481
  if (IFrameSplitOperator.IsBool(windowItem.IndexHelp)) frame.IndexHelp=windowItem.IndexHelp;
14464
14482
 
14465
14483
  if (IFrameSplitOperator.IsBool(windowItem.IsDrawTitleBG)) frame.IsDrawTitleBG=windowItem.IsDrawTitleBG;
14484
+ if (IFrameSplitOperator.IsBool(windowItem.IsShowNameArrow)) frame.IsShowNameArrow=windowItem.IsShowNameArrow;
14466
14485
 
14467
14486
  if (IFrameSplitOperator.IsNumber(windowItem.TitleHeight)) frame.ChartBorder.TitleHeight=windowItem.TitleHeight;
14468
14487
  else windowItem.TitleHeight=frame.ChartBorder.TitleHeight;
@@ -14470,21 +14489,33 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
14470
14489
  if (IFrameSplitOperator.IsBool(windowItem.IsShowTitleArrow)) frame.IsShowTitleArrow=windowItem.IsShowTitleArrow;
14471
14490
  if (IFrameSplitOperator.IsNumber(windowItem.TitleArrowType)) frame.TitleArrowType=windowItem.TitleArrowType;
14472
14491
  if (IFrameSplitOperator.IsBool(windowItem.IsShowIndexName)) frame.IsShowIndexName=windowItem.IsShowIndexName;
14492
+ if (IFrameSplitOperator.IsBool(windowItem.IsShowOverlayIndexName)) frame.IsShowOverlayIndexName=windowItem.IsShowOverlayIndexName;
14473
14493
  if (IFrameSplitOperator.IsNumber(windowItem.IndexParamSpace)) frame.IndexParamSpace=windowItem.IndexParamSpace;
14474
14494
  if (IFrameSplitOperator.IsNumber(windowItem.IndexTitleSpace)) frame.IndexTitleSpace=windowItem.IndexTitleSpace;
14475
14495
  if (!IFrameSplitOperator.IsUndefined(windowItem.HorizontalReserved)) frame.HorizontalReserved=windowItem.HorizontalReserved; //Y轴上下预留
14476
- 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
+ }
14477
14502
  }
14478
14503
 
14479
14504
  if (frameItem)
14480
14505
  {
14481
- 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
+
14482
14511
  if (IFrameSplitOperator.IsNumber(frameItem.SplitType))
14483
14512
  {
14484
14513
  frame.YSplitOperator.SplitType=frameItem.SplitType;
14485
14514
  frame.YSplitOperator.DefaultSplitType=frameItem.SplitType;
14486
14515
  }
14487
14516
 
14517
+ if (IFrameSplitOperator.IsNumber(frameItem.FilterType)) frame.YSplitOperator.FilterType=frameItem.FilterType;
14518
+
14488
14519
  if (IFrameSplitOperator.IsBool(frameItem.IsShowXLine)) frame.IsShowXLine=frameItem.IsShowXLine;
14489
14520
  if (IFrameSplitOperator.IsBool(frameItem.IsShowYLine)) frame.IsShowYLine=frameItem.IsShowYLine;
14490
14521
 
@@ -14502,6 +14533,41 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
14502
14533
  if (IFrameSplitOperator.IsNumber(frameItem.Height) && frameItem.Height>=0) subFrame.Height = frameItem.Height;
14503
14534
  if (IFrameSplitOperator.IsNumber(frameItem.TopSpace)) frame.ChartBorder.TopSpace=frameItem.TopSpace*pixelRatio;
14504
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
+ }
14505
14571
  }
14506
14572
 
14507
14573
  }
@@ -51873,6 +51939,31 @@ function ChartLock()
51873
51939
  this.IndexID; //指标ID
51874
51940
  this.MinWidth=null; //最小宽度
51875
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
+
51876
51967
  this.Draw=function(isDraw)
51877
51968
  {
51878
51969
  this.LockRect=null;
@@ -51928,24 +52019,39 @@ function ChartLock()
51928
52019
  var rtBG={ Left:lLeft, Top:border.TopTitle, Bottom:border.Bottom, Width:lWidth };
51929
52020
  rtBG.Right=rtBG.Width+rtBG.Left;
51930
52021
  rtBG.Height=rtBG.Bottom-rtBG.Top;
52022
+ this.LockRect=rtBG; //保存上锁区域
51931
52023
 
51932
- if (isDraw)
51933
- {
51934
- //上下渐变
51935
- var bgColor=this.SetFillStyle(this.BGColor, rtBG.Left, rtBG.Top, rtBG.Left, rtBG.Bottom);
51936
- this.Canvas.fillStyle =bgColor;
51937
- 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);
51938
52030
 
51939
- var xCenter = rtBG.Left + rtBG.Width / 2;
51940
- var yCenter = rtBG.Top + rtBG.Height / 2;
51941
- this.Canvas.textAlign = 'center';
51942
- this.Canvas.textBaseline = 'middle';
51943
- this.Canvas.fillStyle = this.TextColor;
51944
- this.Canvas.font = this.Font;
51945
- this.Canvas.fillText(this.Title, xCenter, yCenter);
51946
- }
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;
51947
52037
 
51948
- this.LockRect=rtBG; //保存上锁区域
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;
52051
+
52052
+ yText+=item.Height;
52053
+ this.Canvas.fillText(item.Text, left, yText);
52054
+ }
51949
52055
  }
51950
52056
 
51951
52057
  this.HScreenDraw=function(isDraw)
@@ -54383,6 +54489,20 @@ function StockChipPhone()
54383
54489
 
54384
54490
  this.CloseButtonConfig=CloneData(g_JSChartResource.StockChip.PhoneCloseButton);
54385
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
+ }
54386
54506
 
54387
54507
  this.Draw=function()
54388
54508
  {
@@ -54797,6 +54917,8 @@ function StockChipPhone()
54797
54917
  this.DrawCloseButton=function()
54798
54918
  {
54799
54919
  var config=this.CloseButtonConfig;
54920
+ if (!config.IsShow) return;
54921
+
54800
54922
  var font=`${config.Size}px ${config.Family}`;
54801
54923
  var rtButton=null;
54802
54924
  if (this.IsHScreen)
@@ -82138,7 +82260,8 @@ function JSChartResource()
82138
82260
  Size:16*GetDevicePixelRatio(),
82139
82261
  Text:"\ue60c",
82140
82262
  Color:"rgb(255,255,255)",
82141
- Border:{ BGColor:"rgb(169,169,169)" }
82263
+ Border:{ BGColor:"rgb(169,169,169)" },
82264
+ IsShow:true,
82142
82265
  }
82143
82266
  }
82144
82267
 
@@ -83200,6 +83323,7 @@ function JSChartResource()
83200
83323
  if (subItem.Text) this.StockChip.PhoneCloseButton.Text=subItem.Text;
83201
83324
  if (subItem.Color) this.StockChip.PhoneCloseButton.Color=subItem.Color;
83202
83325
  if (IFrameSplitOperator.IsNumber(subItem.Size)) this.StockChip.PhoneCloseButton.Size=subItem.Size;
83326
+ if (IFrameSplitOperator.IsBool(subItem.IsShow)) this.StockChip.PhoneCloseButton.IsShow=subItem.IsShow;
83203
83327
  if (subItem.Border)
83204
83328
  {
83205
83329
  if (subItem.Border.BGColor) this.StockChip.PhoneCloseButton.Border.BGColor=subItem.Border.BGColor;
@@ -109517,6 +109641,7 @@ function JSDivFrameToolbar()
109517
109641
  if (item.ID==JSCHART_BUTTON_ID.CHANGE_INDEX && frame && frame.ChangeIndex===false) continue;
109518
109642
  if (item.ID==JSCHART_BUTTON_ID.OVERLAY_INDEX && frame && frame.OverlayIndex===false) continue;
109519
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;
109520
109645
 
109521
109646
  aryButton.push(item);
109522
109647
  }
@@ -109720,7 +109845,10 @@ JSDivFrameToolbar.GetDfaultButtons=function()
109720
109845
  {
109721
109846
  var aryButton=
109722
109847
  [
109723
-
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
+ },
109724
109852
  {
109725
109853
  ID:JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM, ClassName:"UMyChart_FrameToolbar_Span_Button icon iconfont icon-index_param", Tooltip:{ Text:"修改参数"},
109726
109854
  Span:null, Div:null, TooltipSpan:null
@@ -165624,7 +165752,7 @@ function HQChartScriptWorker()
165624
165752
 
165625
165753
 
165626
165754
 
165627
- var HQCHART_VERSION="1.1.15083";
165755
+ var HQCHART_VERSION="1.1.15088";
165628
165756
 
165629
165757
  function PrintHQChartVersion()
165630
165758
  {