hqchart 1.1.12685 → 1.1.12693

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.
@@ -4821,7 +4821,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4821
4821
  }
4822
4822
 
4823
4823
  //叠加指标宽度
4824
- if (option.OverlayIndexFrameWidth>40) chart.OverlayIndexFrameWidth=option.OverlayIndexFrameWidth;
4824
+ if (option.OverlayIndexFrameWidth>40) chart.Frame.FixedRightWidth.Overlay=option.OverlayIndexFrameWidth;
4825
4825
 
4826
4826
  //叠加指标
4827
4827
  if (IFrameSplitOperator.IsNonEmptyArray(option.OverlayIndex))
@@ -6705,7 +6705,9 @@ var JSCHART_EVENT_ID=
6705
6705
  ON_CUSTOM_DRAG_DOC_MOUSE_UP:115,
6706
6706
  ON_CUSTOM_DRAG_MOUSE_MOVE:116,
6707
6707
 
6708
- ON_KEYDOWN:117
6708
+ ON_KEYDOWN:117,
6709
+
6710
+ ON_CREATE_OVERLAY_FRAME:118, //创建叠加框架回调
6709
6711
  }
6710
6712
 
6711
6713
  var JSCHART_OPERATOR_ID=
@@ -8818,6 +8820,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8818
8820
  this.UpdatePointByCursorIndex();
8819
8821
  this.UpdataDataoffset();
8820
8822
  this.UpdateFrameMaxMin();
8823
+ //this.ResetFrameXSplit();
8821
8824
  this.Draw();
8822
8825
  this.ShowTooltipByKeyDown();
8823
8826
  this.StopDragTimer();
@@ -8832,6 +8835,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8832
8835
  this.UpdataDataoffset();
8833
8836
  this.UpdatePointByCursorIndex();
8834
8837
  this.UpdateFrameMaxMin();
8838
+ //this.ResetFrameXSplit();
8835
8839
  this.Draw();
8836
8840
  this.ShowTooltipByKeyDown();
8837
8841
  this.StopDragTimer();
@@ -10978,6 +10982,10 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
10978
10982
  frame.HorizontalMax=max;
10979
10983
  frame.HorizontalMin=min;
10980
10984
  }
10985
+ else
10986
+ {
10987
+ frame.XSplit=true;
10988
+ }
10981
10989
 
10982
10990
  //共享Y轴叠加指标同步下坐标
10983
10991
  for(var j=0;j<item.OverlayFrame.length;++j)
@@ -12540,7 +12548,6 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
12540
12548
  else
12541
12549
  {
12542
12550
  var subFrame=this.Frame.SubFrame[dest.WindowIndex];
12543
- subFrame.Interval=this.OverlayIndexFrameWidth;
12544
12551
  var overlayFrame=new OverlayIndexItem();
12545
12552
  var frame=this.CreateOverlayFrame();
12546
12553
  frame.Canvas=this.Canvas;
@@ -12557,6 +12564,15 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
12557
12564
  frame.YSplitOperator.GetEventCallback=(id)=> { return this.GetEventCallback(id); };
12558
12565
 
12559
12566
  overlayFrame.Frame=frame;
12567
+
12568
+ var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CREATE_OVERLAY_FRAME);
12569
+ if (event && event.Callback)
12570
+ {
12571
+ var sendData={ OverlayFrame:overlayFrame, WindowIndex:dest.WindowIndex, SubFrame:subFrame };
12572
+ event.Callback(event, sendData, this);
12573
+ }
12574
+
12575
+
12560
12576
  var scriptIndex;
12561
12577
  if (findItem)
12562
12578
  {
@@ -13047,7 +13063,7 @@ function CoordinateInfo()
13047
13063
  this.Font=g_JSChartResource.FrameSplitTextFont; //字体
13048
13064
  this.LineColor=g_JSChartResource.FrameSplitPen; //线段颜色
13049
13065
  this.LineDash=null; //当线段类型==2时 可以设置虚线样式
13050
- this.LineType=1; //线段类型 -1 不画线段 2 虚线 8,9=集合竞价坐标
13066
+ this.LineType=1; //线段类型 -1=不画线段 2=虚线, 8,9=集合竞价坐标
13051
13067
  this.LineWidth; //线段宽度
13052
13068
  this.ExtendData; //扩展属性
13053
13069
  //百分比 { PriceColor:, PercentageColor:, SplitColor:, Font: }
@@ -13407,6 +13423,9 @@ function IChartFramePainting()
13407
13423
  this.LogoBGColor=g_JSChartResource.FrameLogo.BGColor;
13408
13424
  this.GlobalOption;
13409
13425
 
13426
+ //this.IsDrawLeftBorder;
13427
+ this.IsDrawRightBorder=false; //是否绘制右侧刻度空白的边框
13428
+
13410
13429
  this.PtInButtons=function(x,y) //坐标是否在按钮上
13411
13430
  {
13412
13431
  for(var i=0;i<this.Buttons.length;++i)
@@ -13486,8 +13505,22 @@ function IChartFramePainting()
13486
13505
  //JSConsole.Chart.Log(`[IChartFramePainting.DrawBorder] left=${left} `);
13487
13506
  if (this.BorderLine==null)
13488
13507
  {
13489
- this.Canvas.strokeStyle=this.PenBorder;
13490
- this.Canvas.strokeRect(left,top,width,height);
13508
+ if (this.IsDrawRightBorder)
13509
+ {
13510
+ var xRight=ToFixedPoint(border.ChartWidth);
13511
+ this.Canvas.strokeStyle=this.PenBorder;
13512
+ this.Canvas.strokeRect(left,top,xRight-left,height);
13513
+
13514
+ this.Canvas.beginPath();
13515
+ this.Canvas.moveTo(right,top);
13516
+ this.Canvas.lineTo(right,bottom);
13517
+ this.Canvas.stroke();
13518
+ }
13519
+ else
13520
+ {
13521
+ this.Canvas.strokeStyle=this.PenBorder;
13522
+ this.Canvas.strokeRect(left,top,width,height);
13523
+ }
13491
13524
  }
13492
13525
  else if (IFrameSplitOperator.IsPlusNumber(this.BorderLine)) //单独绘制每个边框
13493
13526
  {
@@ -13521,7 +13554,20 @@ function IChartFramePainting()
13521
13554
  this.Canvas.stroke();
13522
13555
  }
13523
13556
 
13524
-
13557
+ /*
13558
+ if (this.IsDrawRightBorder)
13559
+ {
13560
+ var xRight=ToFixedPoint(border.ChartWidth);
13561
+ var xLeft=right;
13562
+ this.Canvas.beginPath();
13563
+ this.Canvas.moveTo(xLeft,top);
13564
+ this.Canvas.lineTo(xRight,top);
13565
+ this.Canvas.lineTo(xRight,bottom);
13566
+ this.Canvas.lineTo(xLeft,bottom);
13567
+
13568
+ this.Canvas.stroke();
13569
+ }
13570
+ */
13525
13571
  }
13526
13572
 
13527
13573
  //画标题背景色
@@ -13766,6 +13812,11 @@ function AverageWidthFrame()
13766
13812
 
13767
13813
  this.ButtonTooltip=CloneData(g_JSChartResource.Buttons.Tooltip);
13768
13814
 
13815
+ //Y轴刻度长线
13816
+ this.YLineExtend; //[0]=左 [1]=右 { Width:5, Color:颜色, }
13817
+ this.YTextExtend; //[0]=左 [1]=右 { Align:0=默认 1=左对齐 2=右对齐 }
13818
+ this.YRightTextInfo;
13819
+
13769
13820
  //画图工具刻度
13770
13821
 
13771
13822
  this.DrawPicture={
@@ -14004,6 +14055,18 @@ function AverageWidthFrame()
14004
14055
  var isDrawLeft=borderLeft>10 && this.IsShowYText[0]===true && this.YTextPosition[0]!=2;
14005
14056
  var isDrawRight=borderRight>10 && this.IsShowYText[1]===true && this.YTextPosition[1]!=2;
14006
14057
 
14058
+ var rightExtendLine=null; //右侧延长线
14059
+ if (IFrameSplitOperator.IsNonEmptyArray(this.YLineExtend))
14060
+ {
14061
+ rightExtendLine=this.YLineExtend[1];
14062
+ }
14063
+
14064
+ var rightExtendText=null; //右侧文字设置
14065
+ if (IFrameSplitOperator.IsNonEmptyArray(this.YTextExtend))
14066
+ {
14067
+ rightExtendText=this.YTextExtend[1];
14068
+ }
14069
+
14007
14070
  var yPrev=null; //上一个坐标y的值
14008
14071
  var pixelRatio=GetDevicePixelRatio();
14009
14072
  var itemHeight=(border.BottomEx-border.TopEx)/this.HorizontalInfo.length;
@@ -14017,6 +14080,7 @@ function AverageWidthFrame()
14017
14080
  if (y!=null && yPrev!=null && Math.abs(y-yPrev)<this.MinYDistance) continue; //两个坐标在近了 就不画了
14018
14081
 
14019
14082
  var yFixed=ToFixedPoint(y);
14083
+ //绘制刻度线
14020
14084
  if (y!=bottom && this.IsShowYLine)
14021
14085
  {
14022
14086
  var bChangeLineWidth=false;
@@ -14093,7 +14157,7 @@ function AverageWidthFrame()
14093
14157
  textBaseline=1;
14094
14158
  }
14095
14159
 
14096
- //坐标信息 左边 间距小于10 不画坐标
14160
+ //左边 坐标信息 间距小于10 不画坐标
14097
14161
  this.Canvas.strokeStyle=item.TextColor;
14098
14162
  this.Canvas.fillStyle=item.TextColor;
14099
14163
 
@@ -14110,7 +14174,7 @@ function AverageWidthFrame()
14110
14174
  }
14111
14175
  }
14112
14176
 
14113
- //坐标信息 右边 间距小于10 不画坐标
14177
+ //右边 坐标信息 间距小于10 不画坐标
14114
14178
  if (item.Message[1]!=null && isDrawRight)
14115
14179
  {
14116
14180
  if (item.Font!=null) this.Canvas.font=item.Font;
@@ -14127,6 +14191,21 @@ function AverageWidthFrame()
14127
14191
  xText+=lineLength;
14128
14192
  }
14129
14193
 
14194
+ //右侧延长线
14195
+ if (rightExtendLine && rightExtendLine.Width>1)
14196
+ {
14197
+ var lineLength=rightExtendLine.Width;
14198
+ if (rightExtendLine.Color) this.Canvas.strokeStyle=rightExtendLine.Color;
14199
+ else this.Canvas.strokeStyle=item.LineColor;
14200
+ this.Canvas.beginPath();
14201
+ this.Canvas.moveTo(xText,yFixed);
14202
+ this.Canvas.lineTo(xText+lineLength,yFixed);
14203
+ this.Canvas.stroke();
14204
+
14205
+ xText+=lineLength+2;
14206
+ }
14207
+
14208
+
14130
14209
  this.Canvas.textAlign="left";
14131
14210
  if (Array.isArray(item.Message[1]))
14132
14211
  {
@@ -14169,7 +14248,17 @@ function AverageWidthFrame()
14169
14248
  if (!rtPreRight || (rtRight && !this.IsTextTopBottomOverlap(rtRight,rtPreRight)))
14170
14249
  {
14171
14250
  if (item.TextColor2) this.Canvas.fillStyle=item.TextColor2;
14172
- this.Canvas.fillText(item.Message[1],xText+this.YTextPadding[1],yText);
14251
+ if (rightExtendText && rightExtendText.Align && this.YRightTextInfo)
14252
+ {
14253
+ this.Canvas.textAlign="right";
14254
+ var xRight=this.YRightTextInfo.MainTextWidth+right-this.YTextPadding[1];
14255
+ this.Canvas.fillText(item.Message[1],xRight,yText);
14256
+ }
14257
+ else
14258
+ {
14259
+ this.Canvas.fillText(item.Message[1],xText+this.YTextPadding[1],yText);
14260
+ }
14261
+
14173
14262
  rtPreRight=rtRight;
14174
14263
  }
14175
14264
  }
@@ -14178,7 +14267,33 @@ function AverageWidthFrame()
14178
14267
  yPrev=y;
14179
14268
  }
14180
14269
 
14181
- if (IFrameSplitOperator.IsNonEmptyArray(aryMultiText) && this.MultiTextFormat==1) this.DrawHorizontalMuText(aryMultiText)
14270
+ if (IFrameSplitOperator.IsNonEmptyArray(aryMultiText) && this.MultiTextFormat==1) this.DrawHorizontalMuText(aryMultiText);
14271
+
14272
+ if (isDrawRight && this.IsDrawRightBorder && this.YRightTextInfo)
14273
+ {
14274
+ var xRight=this.YRightTextInfo.MainTextWidth+right;
14275
+ xLine=ToFixedPoint(xRight);
14276
+ this.Canvas.strokeStyle=this.PenBorder;
14277
+ this.Canvas.beginPath();
14278
+ this.Canvas.moveTo(xLine,top);
14279
+ this.Canvas.lineTo(xLine,bottom);
14280
+ this.Canvas.stroke();
14281
+
14282
+ if (IFrameSplitOperator.IsNonEmptyArray(this.YRightTextInfo.AryOverlayWidth))
14283
+ {
14284
+ this.Canvas.beginPath();
14285
+ for(var i=0;i<this.YRightTextInfo.AryOverlayWidth.length;++i)
14286
+ {
14287
+ var width=this.YRightTextInfo.AryOverlayWidth[i];
14288
+ xRight+=width;
14289
+ xLine=ToFixedPoint(xRight);
14290
+ this.Canvas.moveTo(xLine,top);
14291
+ this.Canvas.lineTo(xLine,bottom);
14292
+ }
14293
+ this.Canvas.stroke();
14294
+
14295
+ }
14296
+ }
14182
14297
  }
14183
14298
 
14184
14299
  //上下区域是否重叠
@@ -14842,7 +14957,9 @@ function AverageWidthFrame()
14842
14957
  {
14843
14958
  var value=this.Canvas.measureText(text[i].Text).width;
14844
14959
  if (value>width) width=value;
14845
- aryText.push({Text:text[i].Text, Width:value+2*pixelTatio});
14960
+ var outItem={ Text:text[i].Text, Width:value+2*pixelTatio };
14961
+ if (item.TextColor) outItem.TextColor=item.TextColor;
14962
+ aryText.push(outItem);
14846
14963
  }
14847
14964
  }
14848
14965
 
@@ -15067,7 +15184,8 @@ function AverageWidthFrame()
15067
15184
  var textLeft=right-itemText.Width;
15068
15185
  this.Canvas.fillStyle=bgColor;
15069
15186
  this.Canvas.fillRect(textLeft,bgTop,itemText.Width,textHeight); //文本背景区域
15070
- this.Canvas.fillStyle = item.TextColor;
15187
+ if (itemText.TextColor) this.Canvas.fillStyle=itemText.TextColor;
15188
+ else this.Canvas.fillStyle = item.TextColor;
15071
15189
  this.Canvas.fillText(itemText.Text, textLeft + 1*pixelTatio, yText);
15072
15190
  if (i==0) this.DrawLine(left,textLeft,yText,item.LineColor,item.LineType,item);
15073
15191
  yText+=textHeight+1*pixelTatio;
@@ -15179,7 +15297,8 @@ function AverageWidthFrame()
15179
15297
  {
15180
15298
  this.Canvas.fillStyle=item.LineColor;
15181
15299
  this.Canvas.fillRect(textLeft,bgTop,itemText.Width,textHeight);
15182
- this.Canvas.fillStyle = item.TextColor;
15300
+ if (itemText.TextColor) this.Canvas.fillStyle=itemText.TextColor;
15301
+ else this.Canvas.fillStyle = item.TextColor;
15183
15302
  this.Canvas.fillText(itemText.Text, textLeft + 1*pixelTatio, yText);
15184
15303
  }
15185
15304
 
@@ -18773,8 +18892,13 @@ function OverlayKLineFrame()
18773
18892
  this.Title=null;
18774
18893
  this.TitleColor=g_JSChartResource.OverlayFrame.TitleColor;
18775
18894
  this.TitleFont=g_JSChartResource.OverlayFrame.TitleFont;
18895
+ this.IsShowTitle=true;
18776
18896
 
18777
18897
  this.IsYDrawMainFrame=false; //Y轴自定刻度绘制在主图框架上
18898
+ this.BlankWidth=0;
18899
+ this.Style=0; //0=Y轴在BlankWidth 1=Y轴在左边
18900
+
18901
+ this.YLineExtend=[ { Width:2 }, null]; //[0]=左 [1]=右 { Width:5, Color:颜色, }
18778
18902
 
18779
18903
  this.Buttons=[];
18780
18904
 
@@ -18814,21 +18938,69 @@ function OverlayKLineFrame()
18814
18938
  this.XSplit=false;
18815
18939
  }
18816
18940
 
18941
+
18942
+ //Y轴刻度线 x坐标
18943
+ this.GetXHorizontal=function()
18944
+ {
18945
+ var border=this.ChartBorder.GetBorder();
18946
+ var x=border.Right;
18947
+ x+=this.RightOffset;
18948
+
18949
+ if (this.Style==1)
18950
+ {
18951
+
18952
+ }
18953
+ else
18954
+ {
18955
+ x+=this.BlankWidth;
18956
+ }
18957
+
18958
+ return x;
18959
+ }
18960
+
18961
+ this.GetHorizontalWidth=function()
18962
+ {
18963
+ var width=null;
18964
+ if (this.YRightTextInfo && IFrameSplitOperator.IsNumber(this.TextWidthIndex))
18965
+ width=this.YRightTextInfo.AryOverlayWidth[this.TextWidthIndex];
18966
+
18967
+ return width;
18968
+ }
18969
+
18817
18970
  this.DrawTitle=function() //画标题
18818
18971
  {
18972
+ if (!this.IsShowTitle) return;
18819
18973
  if (!this.Title) return;
18820
18974
  var border=this.ChartBorder.GetBorder();
18821
18975
  var top = this.ChartBorder.GetTopTitle();
18822
18976
  var bottom = border.Bottom;
18823
- var right=border.Right;
18824
- right+=this.RightOffset;
18825
-
18977
+
18978
+ var xText=this.GetXHorizontal();
18979
+ var leftLine=null, rightLine=null;
18980
+ if (IFrameSplitOperator.IsNonEmptyArray(this.YLineExtend))
18981
+ {
18982
+ rightLine=this.YLineExtend[1];
18983
+ leftLine=this.YLineExtend[0];
18984
+ }
18985
+
18986
+ if (this.Style==1)
18987
+ {
18988
+ this.Canvas.textBaseline="bottom";
18989
+ if (rightLine && rightLine.Width>0) xText+=rightLine.Width+1;
18990
+ else xText+=1;
18991
+ }
18992
+ else
18993
+ {
18994
+ this.Canvas.textBaseline="top";
18995
+ if (leftLine && leftLine.Width>0) xText-=leftLine.Width;
18996
+ else xText-=2;
18997
+ }
18998
+
18999
+ var yText=top+(bottom-top)/2;
18826
19000
  this.Canvas.fillStyle=this.TitleColor;
18827
19001
  this.Canvas.font=this.TitleFont;
18828
19002
  this.Canvas.textAlign="center";
18829
- this.Canvas.textBaseline="top";
18830
-
18831
- var xText=right-2,yText=top+(bottom-top)/2;
19003
+
18832
19004
  this.Canvas.save();
18833
19005
  this.Canvas.translate(xText, yText);
18834
19006
  this.Canvas.rotate(90 * Math.PI / 180);
@@ -18867,10 +19039,18 @@ function OverlayKLineFrame()
18867
19039
  if (item.Font!=null) this.Canvas.font=item.Font;
18868
19040
 
18869
19041
  textWidth=this.Canvas.measureText(item.Message[1]).width;
19042
+ if (this.YTextPadding && IFrameSplitOperator.IsNumber(this.YTextPadding[1]))
19043
+ textWidth+=this.YTextPadding[1];
18870
19044
  if (width.Right<textWidth) width.Right=textWidth;
18871
19045
  }
18872
19046
  }
18873
19047
 
19048
+ if (IFrameSplitOperator.IsNonEmptyArray(this.YLineExtend))
19049
+ {
19050
+ var line=this.YLineExtend[1];
19051
+ if (line && line.Width>0) width.Right+=line.Width;
19052
+ }
19053
+
18874
19054
  return { TextWidth:width };
18875
19055
  }
18876
19056
 
@@ -18910,7 +19090,23 @@ function OverlayKLineFrame()
18910
19090
  var top = this.ChartBorder.GetTopTitle();
18911
19091
  var borderRight=this.ChartBorder.Right;
18912
19092
  right+=this.RightOffset;
19093
+ var xLine=this.GetXHorizontal();
19094
+ if (IFrameSplitOperator.IsNumber(this.BlankWidth)) right+=this.BlankWidth;
19095
+
19096
+ var rightExtendText=null; //右侧文字设置
19097
+ if (IFrameSplitOperator.IsNonEmptyArray(this.YTextExtend))
19098
+ {
19099
+ rightExtendText=this.YTextExtend[1];
19100
+ }
19101
+
19102
+ var leftLine=null, rightLine=null;
19103
+ if (IFrameSplitOperator.IsNonEmptyArray(this.YLineExtend))
19104
+ {
19105
+ rightLine=this.YLineExtend[1];
19106
+ leftLine=this.YLineExtend[0];
19107
+ }
18913
19108
 
19109
+ var rightWidth=this.GetHorizontalWidth(); //右侧宽度
18914
19110
  var yPrev=null; //上一个坐标y的值
18915
19111
  for(var i=this.HorizontalInfo.length-1; i>=0; --i) //从上往下画分割线
18916
19112
  {
@@ -18922,11 +19118,24 @@ function OverlayKLineFrame()
18922
19118
  else if (y <= top + 2) this.Canvas.textBaseline = 'top';
18923
19119
  else this.Canvas.textBaseline = "middle";
18924
19120
 
18925
- this.Canvas.strokeStyle=this.PenBorder;
18926
- this.Canvas.beginPath();
18927
- this.Canvas.moveTo(right-2,ToFixedPoint(y));
18928
- this.Canvas.lineTo(right,ToFixedPoint(y));
18929
- this.Canvas.stroke();
19121
+
19122
+ if (leftLine && leftLine.Width>0) //左边
19123
+ {
19124
+ this.Canvas.strokeStyle=this.PenBorder;
19125
+ this.Canvas.beginPath();
19126
+ this.Canvas.moveTo(xLine-leftLine.Width,ToFixedPoint(y));
19127
+ this.Canvas.lineTo(xLine,ToFixedPoint(y));
19128
+ this.Canvas.stroke();
19129
+ }
19130
+
19131
+ if (rightLine && rightLine.Width>0)
19132
+ {
19133
+ this.Canvas.strokeStyle=this.PenBorder;
19134
+ this.Canvas.beginPath();
19135
+ this.Canvas.moveTo(xLine+rightLine.Width,ToFixedPoint(y));
19136
+ this.Canvas.lineTo(xLine,ToFixedPoint(y));
19137
+ this.Canvas.stroke();
19138
+ }
18930
19139
 
18931
19140
  //坐标信息 右边 间距小于10 不画坐标
18932
19141
  if (item.Message[1]!=null && borderRight>10)
@@ -18935,10 +19144,22 @@ function OverlayKLineFrame()
18935
19144
 
18936
19145
  var text=item.Message[1];
18937
19146
  if (Array.isArray(item.Message[1])) text=item.Message[1][0];
18938
-
18939
- this.Canvas.fillStyle=item.TextColor;
18940
- this.Canvas.textAlign="left";
18941
- this.Canvas.fillText(text,right+2,y);
19147
+
19148
+ if (rightExtendText && rightExtendText.Align)
19149
+ {
19150
+ var textWidth=rightWidth;
19151
+ this.Canvas.textAlign="right";
19152
+ var xRight=border.Right+this.RightOffset+textWidth-this.YTextPadding[1];
19153
+ this.Canvas.fillText(text,xRight,y);
19154
+ }
19155
+ else
19156
+ {
19157
+ var xText=right+2;
19158
+ if (rightLine && rightLine.Width>0) xText+=rightLine.Width;
19159
+ this.Canvas.fillStyle=item.TextColor;
19160
+ this.Canvas.textAlign="left";
19161
+ this.Canvas.fillText(text,xText,y);
19162
+ }
18942
19163
  }
18943
19164
 
18944
19165
  yPrev=y;
@@ -18950,10 +19171,8 @@ function OverlayKLineFrame()
18950
19171
  {
18951
19172
  var border=this.ChartBorder.GetBorder();
18952
19173
  var top=border.TopEx;
18953
- //var left=this.ChartBorder.GetLeft();
18954
- var right=border.Right;
18955
19174
  var bottom=border.BottomEx;
18956
- right+=this.RightOffset;
19175
+ var right=this.GetXHorizontal();
18957
19176
 
18958
19177
  this.Canvas.strokeStyle=this.PenBorder;
18959
19178
  this.Canvas.beginPath();
@@ -18999,14 +19218,15 @@ function OverlayKLineFrame()
18999
19218
 
19000
19219
  var border=this.ChartBorder.GetBorder();
19001
19220
  var yButton=border.Top+this.ChartBorder.TitleHeight/2;
19002
- var xBotton=border.Right+this.RightOffset+this.CloseButton.MerginLeft;
19221
+ var rightWidth=this.GetHorizontalWidth();
19222
+ var xBotton=border.Right+this.RightOffset+rightWidth-this.CloseButton.MerginLeft;
19003
19223
 
19004
- for(var i=0;i<aryButton.length;++i)
19224
+ for(var i=aryButton.length-1;i>=0;--i)
19005
19225
  {
19006
19226
  var item=aryButton[i];
19007
19227
  var size=item.Style.Size;
19008
19228
  var font=`${size}px ${item.Style.Family}`;
19009
- var rtButton={ Left:xBotton, Top:yButton-size/2, Right:xBotton+size+item.Style.MerginLeft, Bottom:yButton+size/2, Width:size+item.Style.MerginLeft, Height:size };
19229
+ var rtButton={ Left:xBotton-size-item.Style.MerginLeft, Top:yButton-size/2, Right:xBotton, Bottom:yButton+size/2, Width:size+item.Style.MerginLeft, Height:size };
19010
19230
  var color=this.CloseButton.Color;
19011
19231
  if (moveonPoint && (moveonPoint.X>=rtButton.Left && moveonPoint.X<rtButton.Right && moveonPoint.Y>=rtButton.Top && moveonPoint.Y<=rtButton.Bottom))
19012
19232
  {
@@ -19017,13 +19237,13 @@ function OverlayKLineFrame()
19017
19237
 
19018
19238
  this.Canvas.fillStyle=color;
19019
19239
  this.Canvas.font=font;
19020
- this.Canvas.textAlign="left";
19240
+ this.Canvas.textAlign="right";
19021
19241
  this.Canvas.textBaseline="middle";
19022
19242
  this.Canvas.fillText(item.Style.Text, xBotton, yButton);
19023
19243
 
19024
19244
  this.Buttons.push({ ID:item.ID, Rect:rtButton });
19025
19245
 
19026
- xBotton=rtButton.Right;
19246
+ xBotton=rtButton.Left;
19027
19247
  }
19028
19248
  }
19029
19249
 
@@ -20100,7 +20320,7 @@ function SubFrameItem()
20100
20320
  this.Frame;
20101
20321
  this.Height;
20102
20322
  this.OverlayIndex=[]; //叠加指标
20103
- this.Interval=60; //子坐标间间距
20323
+ //this.Interval=60; //子坐标间间距
20104
20324
  }
20105
20325
 
20106
20326
  function OverlayIndexItem()
@@ -20168,8 +20388,11 @@ function HQTradeFrame()
20168
20388
 
20169
20389
  this.AutoLeftBorder=null; //{ Blank:10 留白宽度, MinWidth:最小宽度 }
20170
20390
  this.AutoRightBorder=null; //{ Blank:10 留白宽度, MinWidth:最小宽度 }
20171
- this.OverlayBlankWidth=40;
20172
- this.AuotRightWidth; //右边主坐标刻度宽度
20391
+ this.OverlayBlankWidth=30;
20392
+ this.AuotRightWidth; //右边主坐标刻度宽度 (自动模式)
20393
+
20394
+ //固定模式右侧宽度
20395
+ this.FixedRightWidth={ Main:60, Overlay:80 };
20173
20396
 
20174
20397
  this.ZoomWindowsInfo=null; //附图指标缩放,备份信息
20175
20398
  this.ZoomStartWindowIndex=1; //允许缩放窗口起始位置
@@ -20678,7 +20901,7 @@ function HQTradeFrame()
20678
20901
 
20679
20902
  overlayItem.Frame.YSplitOperator.Operator();
20680
20903
  var value=overlayItem.Frame.GetScaleTextWidth();
20681
-
20904
+
20682
20905
  overlayItem.Frame.HorizontalMax=maxValue;
20683
20906
  overlayItem.Frame.HorizontalMin=minValue;
20684
20907
 
@@ -20735,6 +20958,8 @@ function HQTradeFrame()
20735
20958
  width.OverlayRight+=value;
20736
20959
  }
20737
20960
 
20961
+ width.AryOverlayWidth=overlayWidth;
20962
+
20738
20963
  return width;
20739
20964
  }
20740
20965
 
@@ -20789,59 +21014,104 @@ function HQTradeFrame()
20789
21014
  }
20790
21015
  }
20791
21016
 
20792
- if (IFrameSplitOperator.IsNumber(textWidth.Right) && this.AutoRightBorder)
21017
+ if (IFrameSplitOperator.IsNumber(textWidth.Right))
20793
21018
  {
20794
- var blank=0;
20795
- if (IFrameSplitOperator.IsNumber(this.AutoRightBorder.Blank)) blank=this.AutoRightBorder.Blank;
20796
- var value=textWidth.Right+blank;
20797
- if (IFrameSplitOperator.IsNumber(this.AutoRightBorder.MinWidth))
21019
+ if (this.AutoRightBorder) //自动调整右侧间距
20798
21020
  {
20799
- if (this.AutoRightBorder.MinWidth>value) value=this.AutoRightBorder.MinWidth;
20800
- }
21021
+ var rightTextInfo={ };
21022
+ var blank=0;
21023
+ if (IFrameSplitOperator.IsNumber(this.AutoRightBorder.Blank)) blank=this.AutoRightBorder.Blank;
21024
+ var value=textWidth.Right+blank;
21025
+ if (IFrameSplitOperator.IsNumber(this.AutoRightBorder.MinWidth))
21026
+ {
21027
+ if (this.AutoRightBorder.MinWidth>value) value=this.AutoRightBorder.MinWidth;
21028
+ }
20801
21029
 
20802
- this.AuotRightWidth=value;
20803
- if (IFrameSplitOperator.IsPlusNumber(textWidth.OverlayRight))
20804
- {
20805
- value+=this.OverlayBlankWidth;
20806
21030
  this.AuotRightWidth=value;
20807
- value+=textWidth.OverlayRight;
20808
- }
21031
+ rightTextInfo.MainTextWidth=value; //主图坐标宽度
21032
+ if (IFrameSplitOperator.IsNonEmptyArray(textWidth.AryOverlayWidth)) rightTextInfo.AryOverlayWidth=textWidth.AryOverlayWidth;
20809
21033
 
20810
- if (this.GetExtendChartRightWidth)
20811
- {
20812
- var extendWidth=this.GetExtendChartRightWidth();
21034
+ if (IFrameSplitOperator.IsPlusNumber(textWidth.OverlayRight))
21035
+ {
21036
+ this.AuotRightWidth=value;
21037
+ value+=textWidth.OverlayRight;
21038
+ }
20813
21039
 
20814
- if (this.GetExtendChartByClassName)
21040
+ if (this.GetExtendChartRightWidth)
20815
21041
  {
20816
- var finder=this.GetExtendChartByClassName("StockChip");
20817
- if (finder && finder.Chart)
21042
+ var extendWidth=this.GetExtendChartRightWidth();
21043
+
21044
+ if (this.GetExtendChartByClassName)
20818
21045
  {
20819
- finder.Chart.Left=value;
21046
+ var finder=this.GetExtendChartByClassName("StockChip");
21047
+ if (finder && finder.Chart)
21048
+ {
21049
+ finder.Chart.Left=value;
21050
+ }
20820
21051
  }
21052
+
21053
+ value+=extendWidth;
20821
21054
  }
20822
21055
 
20823
- value+=extendWidth;
20824
- }
21056
+ if (this.IsHScreen)
21057
+ {
21058
+ if (this.ChartBorder.Bottom!=value) bSizeChange=true;
21059
+ this.ChartBorder.Bottom=value;
21060
+ }
21061
+ else
21062
+ {
21063
+ if (this.ChartBorder.Right!=value) bSizeChange=true;
21064
+ this.ChartBorder.Right=value;
21065
+ }
20825
21066
 
20826
- if (this.IsHScreen)
20827
- {
20828
- if (this.ChartBorder.Bottom!=value) bSizeChange=true;
20829
- this.ChartBorder.Bottom=value;
21067
+ for(var i=0; i<this.SubFrame.length; ++i)
21068
+ {
21069
+ var item=this.SubFrame[i];
21070
+ if (this.IsHScreen) item.Frame.ChartBorder.Bottom=value;
21071
+ else item.Frame.ChartBorder.Right=value;
21072
+
21073
+ item.Frame.ReDrawToolbar=true;
21074
+ item.Frame.YRightTextInfo=rightTextInfo;
21075
+
21076
+ for(var j=0;j<item.OverlayIndex.length;++j)
21077
+ {
21078
+ var overlayItem=item.OverlayIndex[j];
21079
+ overlayItem.Frame.YRightTextInfo=rightTextInfo;
21080
+ }
21081
+ }
20830
21082
  }
20831
- else
21083
+ else
20832
21084
  {
20833
- if (this.ChartBorder.Right!=value) bSizeChange=true;
20834
- this.ChartBorder.Right=value;
20835
- }
21085
+ var rightTextInfo={ };
21086
+ rightTextInfo.MainTextWidth=this.FixedRightWidth.Main;
21087
+ if (textWidth.OverlayRight==0) //无叠加直接最右边
21088
+ {
21089
+ if (this.IsHScreen)
21090
+ rightTextInfo.MainTextWidth=this.ChartBorder.Bottom;
21091
+ else
21092
+ rightTextInfo.MainTextWidth=this.ChartBorder.Right;
21093
+ }
21094
+ else if (IFrameSplitOperator.IsNonEmptyArray(textWidth.AryOverlayWidth))
21095
+ {
21096
+ for(var i=0;i<textWidth.AryOverlayWidth.length;++i)
21097
+ textWidth.AryOverlayWidth[i]=this.FixedRightWidth.Overlay;
20836
21098
 
20837
- for(var i=0; i<this.SubFrame.length; ++i)
20838
- {
20839
- var item=this.SubFrame[i];
20840
- if (this.IsHScreen) item.Frame.ChartBorder.Bottom=value;
20841
- else item.Frame.ChartBorder.Right=value;
21099
+ rightTextInfo.AryOverlayWidth=textWidth.AryOverlayWidth;
21100
+ }
21101
+
21102
+ for(var i=0; i<this.SubFrame.length; ++i)
21103
+ {
21104
+ var item=this.SubFrame[i];
21105
+
21106
+ item.Frame.ReDrawToolbar=true;
21107
+ item.Frame.YRightTextInfo=rightTextInfo;
20842
21108
 
20843
- item.Frame.ReDrawToolbar=true;
20844
- item.Interval=this.AuotRightWidth;
21109
+ for(var j=0;j<item.OverlayIndex.length;++j)
21110
+ {
21111
+ var overlayItem=item.OverlayIndex[j];
21112
+ overlayItem.Frame.YRightTextInfo=rightTextInfo;
21113
+ }
21114
+ }
20845
21115
  }
20846
21116
  }
20847
21117
 
@@ -20859,39 +21129,47 @@ function HQTradeFrame()
20859
21129
  {
20860
21130
  var rightOffset=this.AuotRightWidth;
20861
21131
 
20862
- for(var j=0; j<item.OverlayIndex.length; ++j)
21132
+ for(var j=0, index=0; j<item.OverlayIndex.length; ++j)
20863
21133
  {
20864
21134
  var overlayItem=item.OverlayIndex[j];
20865
21135
  //把主坐标部分设置给子坐标下来
20866
21136
  overlayItem.Frame.DataWidth=item.Frame.DataWidth;
20867
21137
  overlayItem.Frame.DistanceWidth=item.Frame.DistanceWidth;
20868
21138
  overlayItem.Frame.XPointCount=item.Frame.XPointCount;
20869
- if (overlayItem.ChartPaint.length>0 && overlayItem.Frame)
20870
- {
20871
- overlayItem.Frame.RightOffset=rightOffset;
20872
- overlayItem.Frame.Draw();
20873
- rightOffset+=overlayItem.RightWidth.Width;
20874
- }
21139
+ overlayItem.Frame.RightOffset=rightOffset;
21140
+ overlayItem.Frame.BlankWidth=0;
21141
+ overlayItem.Frame.TextWidthIndex=index;
21142
+ if (IFrameSplitOperator.IsNumber(this.OverlayBlankWidth)) overlayItem.Frame.BlankWidth=this.OverlayBlankWidth;
21143
+
21144
+ overlayItem.Frame.Draw();
21145
+ rightOffset+=overlayItem.RightWidth.Width;
21146
+ if (overlayItem.Frame.IsShow) ++index;
20875
21147
  }
20876
-
20877
21148
  }
20878
21149
  else
20879
21150
  {
20880
- var rightOffset=item.Interval;
21151
+ var rightOffset=this.FixedRightWidth.Main;
20881
21152
  if (item.Frame.RightTextMaxWidth>rightOffset) rightOffset=item.Frame.RightTextMaxWidth;
20882
- for(var j in item.OverlayIndex)
21153
+
21154
+ for(var j =0, index=0; j<item.OverlayIndex.length;++j)
20883
21155
  {
20884
21156
  var overlayItem=item.OverlayIndex[j];
20885
21157
  //把主坐标部分设置给子坐标下来
20886
21158
  overlayItem.Frame.DataWidth=item.Frame.DataWidth;
20887
21159
  overlayItem.Frame.DistanceWidth=item.Frame.DistanceWidth;
20888
21160
  overlayItem.Frame.XPointCount=item.Frame.XPointCount;
20889
- if (overlayItem.ChartPaint.length>0 && overlayItem.Frame)
21161
+ overlayItem.Frame.RightOffset=rightOffset;
21162
+ overlayItem.Frame.BlankWidth=0;
21163
+ overlayItem.Frame.TextWidthIndex=index;
21164
+ if (IFrameSplitOperator.IsNumber(this.OverlayBlankWidth)) overlayItem.Frame.BlankWidth=this.OverlayBlankWidth;
21165
+
21166
+ overlayItem.Frame.Draw();
21167
+ if (overlayItem.Frame.IsShow)
20890
21168
  {
20891
- overlayItem.Frame.RightOffset=rightOffset;
20892
- overlayItem.Frame.Draw();
20893
- if (overlayItem.Frame.IsShow) rightOffset+=item.Interval;
21169
+ rightOffset+=this.FixedRightWidth.Overlay;
21170
+ ++index;
20894
21171
  }
21172
+
20895
21173
  }
20896
21174
  }
20897
21175
  }
@@ -21098,6 +21376,7 @@ function HQTradeFrame()
21098
21376
  {
21099
21377
  var overlayItem=item.OverlayIndex[j];
21100
21378
  var overlayFrame=overlayItem.Frame;
21379
+ if (!overlayFrame.IsShow) continue;
21101
21380
  if (overlayFrame.DrawToolbar) overlayFrame.DrawToolbar(moveonPoint, frame.IsMinSize, mouseStatus);
21102
21381
  }
21103
21382
  }
@@ -50583,36 +50862,35 @@ function ChartCorssCursor()
50583
50862
  if (yValueExtend.FrameID>=0)
50584
50863
  {
50585
50864
  var frame=this.Frame.SubFrame[yValueExtend.FrameID];
50586
- var isAutoRightBorder=false;
50587
- if (this.Frame.AutoRightBorder) isAutoRightBorder=true;
50588
50865
  var overlayLeft=right;
50589
- if (isAutoRightBorder) overlayLeft=right+this.Frame.AuotRightWidth;
50590
50866
  this.Canvas.font=this.Font;
50591
- for(var i in frame.OverlayIndex)
50867
+ for(var i=0; i<frame.OverlayIndex.length; ++i)
50592
50868
  {
50593
50869
  var item=frame.OverlayIndex[i];
50594
50870
  if (item.Frame.IsShow===false) continue;
50595
50871
 
50596
- if (!isAutoRightBorder) overlayLeft+=frame.Interval;
50872
+ overlayLeft=item.Frame.GetXHorizontal();
50597
50873
 
50598
- if (overlayLeft+30>chartRight) break;
50874
+ //if (overlayLeft+30>chartRight) break;
50599
50875
  var yValue=item.Frame.GetYData(y);
50600
-
50601
- for(var i=2;i>=0;--i)
50876
+ var text=IFrameSplitOperator.FormatValueString(yValue,2);
50877
+ var textWidth=this.Canvas.measureText(text).width+4; //前后各空2个像素
50878
+
50879
+ /*
50880
+ for(var j=2;j>=0;--j)
50602
50881
  {
50603
- var text=IFrameSplitOperator.FormatValueString(yValue,i);
50882
+ var text=IFrameSplitOperator.FormatValueString(yValue,j);
50604
50883
  var textWidth=this.Canvas.measureText(text).width+4; //前后各空2个像素
50605
50884
  if (textWidth<frame.Interval) break;
50606
50885
  }
50886
+ */
50607
50887
 
50608
50888
  this.Canvas.fillStyle=this.TextBGColor;
50609
- this.Canvas.fillRect(overlayLeft+2,y-this.TextHeight/2,textWidth,this.TextHeight);
50889
+ this.Canvas.fillRect(overlayLeft+1,y-this.TextHeight/2,textWidth,this.TextHeight);
50610
50890
  this.Canvas.textAlign="left";
50611
50891
  this.Canvas.textBaseline="middle";
50612
50892
  this.Canvas.fillStyle=this.TextColor;
50613
50893
  this.Canvas.fillText(text,overlayLeft+4,y,textWidth);
50614
-
50615
- if (isAutoRightBorder) overlayLeft+=item.RightWidth.Width;
50616
50894
  }
50617
50895
  }
50618
50896
 
@@ -66669,6 +66947,14 @@ function JSChartResource()
66669
66947
  if (item.EmptyBGColor) this.FrameLatestPrice.EmptyBGColor = item.EmptyBGColor;
66670
66948
  }
66671
66949
 
66950
+ if (style.OverlayFrame)
66951
+ {
66952
+ var item=style.OverlayFrame;
66953
+ if (style.OverlayFrame.BolderPen) this.OverlayFrame.BolderPen = style.OverlayFrame.BolderPen;
66954
+ if (style.OverlayFrame.TitleColor) this.OverlayFrame.TitleColor = style.OverlayFrame.TitleColor;
66955
+ if (style.OverlayFrame.TitleFont) this.OverlayFrame.TitleFont = style.OverlayFrame.TitleFont;
66956
+ }
66957
+
66672
66958
  if (style.CorssCursorBGColor) this.CorssCursorBGColor = style.CorssCursorBGColor;
66673
66959
  if (style.CorssCursorTextColor) this.CorssCursorTextColor = style.CorssCursorTextColor;
66674
66960
  if (style.CorssCursorTextFont) this.CorssCursorTextFont = style.CorssCursorTextFont;
@@ -68956,7 +69242,6 @@ function KLineChartContainer(uielement,OffscreenElement)
68956
69242
  this.CtrlMoveStep=5; //Ctrl+(Left/Right) 移动数据个数
68957
69243
 
68958
69244
  this.CustomShow=null; //首先显示的K线的起始日期 { Date:日期 PageSize:}
68959
- this.OverlayIndexFrameWidth=60; //叠加指标框架宽度
68960
69245
  this.ZoomType=0; //缩放模式 0=最右边固定缩放, 1=十字光标两边缩放
68961
69246
  this.IsZoomLockRight=false;
68962
69247
  this.KLineSize=null; //{ DataWidth:, }
@@ -69240,6 +69525,7 @@ function KLineChartContainer(uielement,OffscreenElement)
69240
69525
  this.UpdataDataoffset();
69241
69526
  this.UpdatePointByCursorIndex();
69242
69527
  this.UpdateFrameMaxMin();
69528
+ this.ResetFrameXSplit();
69243
69529
  this.Draw();
69244
69530
  }
69245
69531
  else if (id===JSCHART_OPERATOR_ID.OP_GOTO_HOME)
@@ -69695,6 +69981,7 @@ function KLineChartContainer(uielement,OffscreenElement)
69695
69981
  {
69696
69982
  this.UpdataDataoffset(); //更新数据偏移
69697
69983
  this.UpdateFrameMaxMin(); //调整坐标最大 最小值
69984
+ this.ResetFrameXSplit();
69698
69985
  this.Frame.SetSizeChage(true);
69699
69986
  this.Draw();
69700
69987
  this.UpdatePointByCursorIndex(); //更新十字光标位子
@@ -72565,10 +72852,10 @@ function KLineChartContainer(uielement,OffscreenElement)
72565
72852
  }
72566
72853
 
72567
72854
  var subFrame=this.Frame.SubFrame[windowIndex];
72568
- subFrame.Interval=this.OverlayIndexFrameWidth;
72569
72855
  var overlayFrame=new OverlayIndexItem();
72570
72856
  if (obj.Identify) overlayFrame.Identify=obj.Identify; //由外部指定id
72571
- var frame= this.ClassName==='KLineChartHScreenContainer' ? new OverlayKLineHScreenFrame() : new OverlayKLineFrame();
72857
+ //var frame= this.ClassName==='KLineChartHScreenContainer' ? new OverlayKLineHScreenFrame() : new OverlayKLineFrame();
72858
+ var frame=this.CreateOverlayFrame();
72572
72859
  frame.Canvas=this.Canvas;
72573
72860
  frame.MainFrame=subFrame.Frame;
72574
72861
  frame.ChartBorder=subFrame.Frame.ChartBorder;
@@ -72597,11 +72884,18 @@ function KLineChartContainer(uielement,OffscreenElement)
72597
72884
  var item=obj.Frame;
72598
72885
  if (item.Custom) frame.YSplitOperator.Custom=item.Custom;
72599
72886
  if (IFrameSplitOperator.IsBool(item.IsYDrawMainFrame)) frame.IsYDrawMainFrame=item.IsYDrawMainFrame; //自定义刻度绘制在主图上
72600
- if (IFrameSplitOperator.IsBool(item.IsShowToolbar)) frame.IsShowToolbar=item.IsShowToolbar; //自定义刻度绘制在主图上
72887
+ if (IFrameSplitOperator.IsBool(item.IsShowToolbar)) frame.IsShowToolbar=item.IsShowToolbar; //是否显示工具栏
72601
72888
  }
72602
72889
 
72603
72890
  overlayFrame.Frame=frame;
72604
72891
 
72892
+ var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CREATE_OVERLAY_FRAME);
72893
+ if (event && event.Callback)
72894
+ {
72895
+ var sendData={ OverlayFrame:overlayFrame, WindowIndex:windowIndex, SubFrame:subFrame };
72896
+ event.Callback(event, sendData, this);
72897
+ }
72898
+
72605
72899
  if (apiItem)
72606
72900
  {
72607
72901
  var apiIndex=new APIScriptIndex(apiItem.Name,apiItem.Script,apiItem.Args,obj, true);
@@ -80408,7 +80702,6 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
80408
80702
  }
80409
80703
 
80410
80704
  var subFrame=this.Frame.SubFrame[windowIndex];
80411
- subFrame.Interval=this.OverlayIndexFrameWidth;
80412
80705
  var overlayFrame=new OverlayIndexItem();
80413
80706
  if (obj.Identify) overlayFrame.Identify=obj.Identify; //由外部指定id
80414
80707
  var frame=null;
@@ -115958,12 +116251,14 @@ function OverlayScriptIndex(name,script,args,option)
115958
116251
  var titleIndex=windowIndex+1;
115959
116252
  var titlePaint=hqChart.TitlePaint[titleIndex];
115960
116253
  titlePaint.OverlayIndex.set(this.OverlayIndex.Identify,titleInfo);
115961
- this.OverlayIndex.Frame.Frame.Title=titleInfo.Title; //给子框架设置标题
116254
+
115962
116255
  if (this.OutName && this.OutName.length>0 && this.Arguments && this.Arguments.length>0)
115963
116256
  {
115964
116257
  titlePaint.SetDynamicTitle(this.OutName,this.Arguments, this.OverlayIndex.Identify);
115965
116258
  }
115966
116259
 
116260
+ this.OverlayIndex.Frame.Frame.Title=this.Name; //给子框架设置标题
116261
+
115967
116262
  for(var i=0; i<this.OutVar.length; ++i)
115968
116263
  {
115969
116264
  let item=this.OutVar[i];
@@ -119834,10 +120129,10 @@ function GetBlackStyle()
119834
120129
  PositionColor:"rgb(101,104,112)" //持仓
119835
120130
  },
119836
120131
 
119837
- FrameBorderPen: "rgba(236,236,236,0.13)", //边框
120132
+ FrameBorderPen: "rgb(47,51,62)", //边框
119838
120133
  MultiDayBorderPen:"rgba(236,236,236,0.5)",
119839
120134
  FrameSplitPen: "rgba(236,236,236,0.13)", //分割线
119840
- FrameSplitTextColor: "rgb(101,104,112)", //刻度文字颜色
120135
+ FrameSplitTextColor: "rgb(220,220,220)", //刻度文字颜色
119841
120136
  FrameSplitTextFont: 12*GetDevicePixelRatio() +"px 微软雅黑", //坐标刻度文字字体
119842
120137
  FrameTitleBGColor: "rgb(0,0,0)", //标题栏背景色
119843
120138
  OverlayIndexTitleBGColor:'rgba(0,0,0,0.7)', //叠加指标背景色
@@ -119853,8 +120148,15 @@ function GetBlackStyle()
119853
120148
  SplitColor:"rgb(101,104,112)",
119854
120149
  Font:14*GetDevicePixelRatio() +"px 微软雅黑"
119855
120150
  }
119856
- },
119857
-
120151
+ },
120152
+
120153
+ //叠加指标框架
120154
+ OverlayFrame:
120155
+ {
120156
+ BolderPen:'rgb(130,130,130)', //指标边框线
120157
+ TitleColor:'rgb(181,181,181)', //指标名字颜色
120158
+ TitleFont:11*GetDevicePixelRatio() +'px arial', //指标名字字体
120159
+ },
119858
120160
 
119859
120161
  FrameLatestPrice : {
119860
120162
  TextColor:'rgb(255,255,255)', //最新价格文字颜色
@@ -130724,7 +131026,7 @@ function HQChartScriptWorker()
130724
131026
 
130725
131027
 
130726
131028
 
130727
- var HQCHART_VERSION="1.1.12684";
131029
+ var HQCHART_VERSION="1.1.12692";
130728
131030
 
130729
131031
  function PrintHQChartVersion()
130730
131032
  {