hqchart 1.1.14425 → 1.1.14432

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.
@@ -9914,6 +9914,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
9914
9914
  for(var i=0;i<this.ExtendChartPaint.length;++i)
9915
9915
  {
9916
9916
  var item=this.ExtendChartPaint[i];
9917
+
9917
9918
  if (item.IsCallbackDraw)
9918
9919
  {
9919
9920
  if (["KLineYAxisBGPaint","DepthMapPaint","BackgroundPaint","MinuteBackgroundPaint", "SessionBreaksPaint"].includes(item.ClassName))
@@ -48415,6 +48416,25 @@ function IExtendChartPainting()
48415
48416
  {
48416
48417
  return GetFontHeight(this.Canvas, font, "擎");
48417
48418
  }
48419
+
48420
+ this.SetFillStyle=function(color, x0, y0, x1, y1)
48421
+ {
48422
+ if (Array.isArray(color))
48423
+ {
48424
+ let gradient = this.Canvas.createLinearGradient(x0, y0, x1, y1);
48425
+ var offset=1/(color.length-1);
48426
+ for(var i=0; i<color.length; ++i)
48427
+ {
48428
+ var value=i*offset;
48429
+ gradient.addColorStop(value, color[i]);
48430
+ }
48431
+ this.Canvas.fillStyle=gradient;
48432
+ }
48433
+ else
48434
+ {
48435
+ this.Canvas.fillStyle=color;
48436
+ }
48437
+ }
48418
48438
  }
48419
48439
 
48420
48440
  //K线Tooltip, 显示在左边或右边
@@ -52584,7 +52604,7 @@ function KLineYAxisBGPaint()
52584
52604
  }
52585
52605
 
52586
52606
 
52587
- //背景图 支持横屏
52607
+ //背景图 支持横屏 新版本
52588
52608
  function BackgroundPaint()
52589
52609
  {
52590
52610
  this.newMethod=IExtendChartPainting; //派生
@@ -52596,327 +52616,210 @@ function BackgroundPaint()
52596
52616
  this.IsDynamic=false;
52597
52617
  this.IsCallbackDraw=true; //在回调函数里绘制, 不在Draw()中绘制
52598
52618
 
52619
+ this.IsDrawAllFrame=false; //全部的指标框都画
52620
+ this.SetDrawFrameID=new Set([0]); //指定几个指标框画
52621
+
52599
52622
  this.FrameID=0;
52600
- this.Data; //背景数据 { Start:, End:, Color:[] }
52623
+ this.Data; //背景数据[ { Start:{ Date:, Time: }, End:{ Date:, Time }, Color:['rgb(44,55,255)','rgb(200,55,255)'] }]
52624
+ this.IsShow=true;
52625
+ this.SubFrame=null;
52626
+
52601
52627
  this.ID=Guid(); //唯一的ID
52602
-
52603
- /*
52604
- this.Data=
52605
- [
52606
- { Start:{ Date:20181201 }, End:{ Date:20181230 }, Color:'rgb(44,55,44)' } ,
52607
- { Start:{ Date:20190308 }, End:{ Date:20190404 }, Color:['rgb(44,55,255)','rgb(200,55,255)'] }
52608
- ]
52609
- */
52610
-
52611
- this.ChartSubFrame;
52612
- this.ChartBorder;
52613
- this.KData;
52614
- this.Period;
52615
- this.XPointCount=0;
52628
+ this.HQChart;
52616
52629
 
52617
52630
  this.SetOption=function(option) //设置
52618
52631
  {
52619
- if (option.FrameID>0) this.FrameID=option.FrameID;
52632
+ if (!option) return;
52633
+
52634
+ if (IFrameSplitOperator.IsNumber(option.FrameID)) this.FrameID=option.FrameID;
52620
52635
  if (IFrameSplitOperator.IsObjectExist(option.ID)) this.ID=option.ID;
52636
+ if (IFrameSplitOperator.IsBool(option.IsDrawAllFrame)) this.IsDrawAllFrame=option.IsDrawAllFrame;
52637
+ if (IFrameSplitOperator.IsNonEmptyArray(option.AryFrameID)) this.SetDrawFrameID=new Set(option.AryFrameID);
52621
52638
  }
52622
52639
 
52623
52640
  this.Draw=function()
52624
52641
  {
52625
- if (!this.Data || !this.HQChart) return;
52626
- if (!this.ChartFrame || !this.ChartFrame.SubFrame || this.ChartFrame.SubFrame.length<=this.FrameID) return;
52627
- var klineChart=this.HQChart.ChartPaint[0];
52628
- if (!klineChart || !klineChart.Data) return;
52629
-
52630
- this.ChartSubFrame=this.ChartFrame.SubFrame[this.FrameID].Frame;
52631
- this.ChartBorder=this.ChartSubFrame.ChartBorder;
52632
- this.KData=klineChart.Data;
52633
- this.Period=this.HQChart.Period;
52634
- if (!this.KData || this.KData.Data.length<=0) return;
52635
-
52636
- var isHScreen=(this.ChartSubFrame.IsHScreen===true);
52637
- this.XPointCount=this.ChartSubFrame.XPointCount;
52638
- var xPointCount=this.ChartSubFrame.XPointCount;
52639
-
52640
- var firstKItem=this.KData.Data[this.KData.DataOffset];
52641
- var endIndex=this.KData.DataOffset+xPointCount-1;
52642
- if (endIndex>=this.KData.Data.length) endIndex=this.KData.Data.length-1;
52643
- var endKItem=this.KData.Data[endIndex];
52644
- var showData=this.GetShowData(firstKItem,endKItem);
52645
- if (!showData || showData.length<=0) return;
52646
-
52647
- var kLineMap=this.BuildKLineMap();
52648
- var bottom=this.ChartBorder.GetBottomEx();
52649
- var top=this.ChartBorder.GetTopEx();
52650
- var height=this.ChartBorder.GetHeightEx();
52651
- if (isHScreen)
52642
+ this.SubFrame=null;
52643
+
52644
+ if (this.FrameID<0) return;
52645
+ if (!this.HQChart) return;
52646
+ if (!this.ChartFrame || !IFrameSplitOperator.IsNonEmptyArray(this.ChartFrame.SubFrame)) return;
52647
+ if (!this.IsShow) return;
52648
+ if (!IFrameSplitOperator.IsNonEmptyArray(this.Data)) return;
52649
+ if (!this.ChartFrame.SubFrame[this.FrameID]) return;
52650
+ this.SubFrame=this.ChartFrame.SubFrame[this.FrameID].Frame;
52651
+ if (!this.SubFrame) return;
52652
+
52653
+ var kData=this.HQChart.GetKData();
52654
+ if (!kData || !IFrameSplitOperator.IsNonEmptyArray(kData.Data)) return;
52655
+
52656
+ var bHScreen=(this.SubFrame.IsHScreen===true);
52657
+ this.IsHScreen=bHScreen;
52658
+ var isMinute=this.SubFrame.IsMinuteFrame();
52659
+ var dataWidth=this.SubFrame.DataWidth;
52660
+ var distanceWidth=this.SubFrame.DistanceWidth;
52661
+ var xPointCount=this.SubFrame.XPointCount;
52662
+
52663
+ var border=this.SubFrame.GetBorder();
52664
+ if (bHScreen)
52652
52665
  {
52653
- top=this.ChartBorder.GetRightEx();
52654
- bottom=this.ChartBorder.GetLeftEx();
52655
- height=this.ChartBorder.GetWidthEx();
52666
+ var chartright=border.BottomEx;
52667
+ var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
52668
+ }
52669
+ else
52670
+ {
52671
+ var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
52672
+ var chartright=border.RightEx;
52656
52673
  }
52657
52674
 
52658
- for(var i in showData)
52675
+ var mapBG=new Map(); //key= index, Value={ Start:{Left, Center, Right, Item:}, End:{ Left, Center, Right, Item:} }
52676
+ var startIndex=kData.DataOffset;
52677
+ for(var i=startIndex,j=0;i<kData.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
52659
52678
  {
52660
- var item=showData[i];
52661
- var rt=this.GetBGCoordinate(item,kLineMap);
52662
- if (!rt) continue;
52679
+ var kItem=kData.Data[i];
52680
+ var aryFind=this.FindMatchData(kItem);
52681
+ if (!aryFind) continue;
52663
52682
 
52664
- if (Array.isArray(item.Color))
52683
+ if (isMinute)
52665
52684
  {
52666
- var gradient;
52667
- if (isHScreen) gradient = this.Canvas.createLinearGradient(bottom,rt.Left, top, rt.Left);
52668
- else gradient = this.Canvas.createLinearGradient(rt.Left,top, rt.Left,bottom);
52669
- var offset=1/item.Color.length;
52670
- for(var i in item.Color)
52671
- {
52672
- gradient.addColorStop(i*offset, item.Color[i]);
52673
- }
52674
- this.Canvas.fillStyle=gradient;
52685
+ var x=this.ChartFrame.GetXFromIndex(j);
52686
+ var left=x;
52687
+ var right=x;
52675
52688
  }
52676
52689
  else
52677
52690
  {
52678
- this.Canvas.fillStyle=item.Color;
52691
+ var left=xOffset;
52692
+ var right=xOffset+dataWidth;
52693
+ var x=left+(right-left)/2;
52694
+ }
52695
+
52696
+ for(var k=0;k<aryFind.length;++k)
52697
+ {
52698
+ var findItem=aryFind[k];
52699
+ if (mapBG.has(findItem.Index))
52700
+ {
52701
+ var bgItem=mapBG.get(findItem.Index);
52702
+ bgItem.End.Left=left;
52703
+ bgItem.End.Right=right;
52704
+ bgItem.End.Item=findItem.Item;
52705
+ }
52706
+ else
52707
+ {
52708
+ mapBG.set(findItem.Index, { Item:findItem.Item, Start:{ Left:left, Right:right, Item:findItem.Item }, End:{ Left:left, Right:right, Item:findItem.Item }})
52709
+ }
52679
52710
  }
52711
+ }
52680
52712
 
52681
- if (isHScreen) this.Canvas.fillRect(ToFixedRect(bottom),ToFixedRect(rt.Left),ToFixedRect(height),ToFixedRect(rt.Width));
52682
- else this.Canvas.fillRect(ToFixedRect(rt.Left),ToFixedRect(top),ToFixedRect(rt.Width),ToFixedRect(height));
52713
+ if (mapBG.size>0)
52714
+ {
52715
+ this.Canvas.save();
52716
+ //this.ClipClient(bHScreen);
52717
+
52718
+ this.DrawBG(mapBG);
52719
+
52720
+ this.Canvas.restore();
52683
52721
  }
52684
52722
  }
52685
52723
 
52686
- this.GetShowData=function(first, end)
52724
+ this.FindMatchData=function(kItem)
52687
52725
  {
52688
- if (!IFrameSplitOperator.IsNonEmptyArray(this.Data)) return null;
52689
-
52690
- var aryData=[];
52726
+ var aryFind=[];
52691
52727
  for(var i=0;i<this.Data.length;++i)
52692
52728
  {
52693
52729
  var item=this.Data[i];
52694
- var showItem={ };
52695
- if (item.Start.Date>=first.Date && item.Start.Date<=end.Date) showItem.Start=item.Start;
52696
- if (item.End.Date>=first.Date && item.End.Date<=end.Date) showItem.End=item.End;
52697
-
52698
- if (item.Start.Date<first.Date && item.End.Date>end.Date)
52730
+ var start=item.Start;
52731
+ var end=item.End;
52732
+ var bMatch=false;
52733
+ if (IFrameSplitOperator.IsNumber(kItem.Date) && IFrameSplitOperator.IsNumber(kItem.Time))
52699
52734
  {
52700
- showItem.Start=first;
52701
- showItem.End=end;
52735
+ if (kItem.Date>start.Date && kItem.Date<end.Date)
52736
+ {
52737
+ bMatch=true;
52738
+ }
52739
+ else if (kItem.Date==start.Date && kItem.Date==end.Date)
52740
+ {
52741
+ if (kItem.Time>=start.Time && kItem.Time<=end.Time)bMatch=true;
52742
+ }
52743
+ else if (kItem.Date==start.Date)
52744
+ {
52745
+ if (kItem.Time>=start.Time) bMatch=true;
52746
+ }
52747
+ else if (kItem.Date==end.Date)
52748
+ {
52749
+ if ((kItem.Time<=end.Time)) bMatch=true;
52750
+ }
52702
52751
  }
52703
-
52704
-
52705
- if (showItem.Start || showItem.End)
52752
+ else if (IFrameSplitOperator.IsNumber(kItem.Date) && !IFrameSplitOperator.IsNumber(kItem.Time))
52706
52753
  {
52707
- showItem.Color=item.Color;
52708
- aryData.push(showItem);
52754
+ if (kItem.Date>=start.Date && kItem.Date<=end.Date) bMatch=true;
52709
52755
  }
52756
+
52757
+ if (bMatch) aryFind.push({ Index:i, Item:item });
52710
52758
  }
52711
52759
 
52712
- //JSConsole.Chart.Log('[BackgroundPaint::GetShowData] aryData ', aryData);
52713
- return aryData;
52760
+ if (aryFind.Length<=0) return null;
52761
+
52762
+ return aryFind;
52714
52763
  }
52715
52764
 
52716
- this.BuildKLineMap=function()
52765
+ this.DrawBG=function(mapBG)
52717
52766
  {
52718
- var isHScreen=(this.ChartSubFrame.IsHScreen===true);
52719
- var dataWidth=this.ChartSubFrame.DataWidth;
52720
- var distanceWidth=this.ChartSubFrame.DistanceWidth;
52721
- var xOffset=this.ChartBorder.GetLeft()+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
52722
- if (isHScreen) xOffset=this.ChartBorder.GetTop()+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
52723
- var chartright=this.ChartBorder.GetRight();
52724
- if (isHScreen) chartright=this.ChartBorder.GetBottom();
52725
-
52726
- var mapKLine={ Data:new Map() ,Start:null, End:null } ; //Key: date / date time, Value:索引
52727
- for(var i=this.KData.DataOffset,j=0; i<this.KData.Data.length && j<this.XPointCount; ++i,++j,xOffset+=(dataWidth+distanceWidth))
52767
+ for(var mapItem of mapBG)
52728
52768
  {
52729
- var kItem=this.KData.Data[i];
52730
- var left=xOffset;
52731
- var right=xOffset+dataWidth;
52732
- if (right>chartright) break;
52733
- var x=left+(right-left)/2;
52734
-
52735
- if (j==0) mapKLine.XLeft=left;
52736
- mapKLine.XRight=right;
52737
-
52738
- var value={ Index:i, ShowIndex:j , X:x, Right:right, Left:left, Date:kItem.Date };
52739
- if (ChartData.IsMinutePeriod(this.Period,true))
52740
- {
52741
- var key=`Date:${kItem.Date} Time:${kItem.Time}`;
52742
- value.Time=kItem.Time;
52743
- }
52744
- else
52769
+ var bgItem=mapItem[1];
52770
+ //this.DrawBGItem(this.SubFrame, bgItem);
52771
+
52772
+ for(var i=0;i<this.ChartFrame.SubFrame.length;++i)
52745
52773
  {
52746
- var key=`Date:${kItem.Date}`;
52774
+ var subFrame=this.ChartFrame.SubFrame[i].Frame;
52775
+ if (this.IsDrawAllFrame || this.SetDrawFrameID.has(i))
52776
+ {
52777
+ this.DrawBGItem(subFrame, bgItem);
52778
+ }
52747
52779
  }
52748
-
52749
- mapKLine.Data.set(key,value);
52750
-
52751
- //保存下起始和结束位置
52752
- if (j==0) mapKLine.Start=value;
52753
- mapKLine.End=value;
52754
52780
  }
52755
-
52756
- return mapKLine;
52757
52781
  }
52758
52782
 
52759
- this.GetBGCoordinate=function(item,kLineMap)
52783
+ this.DrawBGItem=function(frame, bgItem)
52760
52784
  {
52761
- var xLeft=null, xRight=null;
52762
- var isMinutePeriod=ChartData.IsMinutePeriod(this.Period,true);
52763
- var bSingleDate=false;
52764
- //JSConsole.Chart.Log('[BackgroundPaint::GetBGCoordinate] item ', item);
52765
- if (isMinutePeriod)
52766
- {
52767
- if (item.Start && item.End && item.Start.Date==item.End.Date && item.Start.Time==item.End.Time) bSingleDate=true;
52768
- }
52769
- else
52770
- {
52771
- if (item.Start && item.End && item.Start.Date==item.End.Date) bSingleDate=true;
52772
- }
52773
-
52774
- if (bSingleDate)
52775
- {
52776
- if (isMinutePeriod)
52777
- var key=`Date:${item.Start.Date} Time:${item.Start.Time}`;
52778
- else
52779
- var key=`Date:${item.Start.Date}`;
52780
-
52781
- if (!kLineMap.Data.has(key)) return null;
52782
- var findItem=kLineMap.Data.get(key);
52783
- xLeft=findItem.Left;
52784
- xRight=findItem.Right;
52785
- return { Left:xLeft, Right:xRight, Width:xRight-xLeft };
52786
- }
52787
-
52788
- if (item.Start)
52785
+ var border=frame.GetBorder();
52786
+ if (this.IsHScreen)
52789
52787
  {
52790
- if (isMinutePeriod)
52791
- var key=`Date:${item.Start.Date} Time:${item.Start.Time}`;
52792
- else
52793
- var key=`Date:${item.Start.Date}`;
52794
-
52795
- if (kLineMap.Data.has(key))
52796
- {
52797
- var findItem=kLineMap.Data.get(key);
52798
- xLeft=findItem.Left;
52799
- }
52800
- else
52801
- {
52802
- if (isMinutePeriod)
52803
- {
52804
- if (item.Start.Date<kLineMap.Start.Date || (item.Start.Date==kLineMap.Start.Date && item.Start.Time<=kLineMap.Start.Time) )
52805
- {
52806
- xLeft=kLineMap.Start.Left;
52807
- }
52808
- else
52809
- {
52810
- for(var kItem of kLineMap.Data)
52811
- {
52812
- var value=kItem[1];
52813
- if (value.Date>item.Start.Date || (value.Date==item.Start.Date && value.Time>item.Start.Time))
52814
- {
52815
- xLeft=value.Left;
52816
- break;
52817
- }
52818
- }
52819
- }
52820
- }
52821
- else
52822
- {
52823
- if (item.Start.Date<=kLineMap.Start.Date)
52824
- {
52825
- xLeft=kLineMap.Start.Left;
52826
- }
52827
- else
52828
- {
52829
- for(var kItem of kLineMap.Data)
52830
- {
52831
- var value=kItem[1];
52832
- if (value.Date>item.Start.Date)
52833
- {
52834
- xLeft=value.Left;
52835
- break;
52836
- }
52837
- }
52838
- }
52839
- }
52840
- }
52788
+ var top=border.RightEx;
52789
+ var bottom=border.LeftEx;
52790
+ var left=border.Top;
52841
52791
  }
52842
52792
  else
52843
52793
  {
52844
- xLeft=kLineMap.XLeft;
52794
+ var top=border.TopEx;
52795
+ var bottom=border.BottomEx;
52796
+ var left=border.Left;
52845
52797
  }
52846
52798
 
52847
- if (item.End)
52799
+ if (this.IsHScreen)
52848
52800
  {
52849
- if (isMinutePeriod)
52850
- var key=`Date:${item.End.Date} Time:${item.End.Time}`;
52851
- else
52852
- var key=`Date:${item.End.Date}`;
52853
-
52854
- if (kLineMap.Data.has(key))
52855
- {
52856
- var findItem=kLineMap.Data.get(key);
52857
- xRight=findItem.Right;
52858
- }
52859
- else
52860
- {
52861
- if (isMinutePeriod)
52862
- {
52863
- if (item.End.Date<kLineMap.Start.Date || (item.End.Date==kLineMap.Start.Date && item.End.Time<kLineMap.Start.Time)) return null;
52864
-
52865
- if (item.End.Date<kLineMap.End.Date || (item.End.Date==kLineMap.End.Date && item.End.Time>=kLineMap.End.Time) )
52866
- {
52867
- xRight=kLineMap.End.Right;
52868
- }
52869
- else
52870
- {
52871
- var previousX=null;
52872
- for(var kItem of kLineMap.Data)
52873
- {
52874
- var value=kItem[1];
52875
- if (value.Date>item.End.Date || (value.Date==item.End.Date && value.Time>item.End.Time) )
52876
- {
52877
- xRight=previousX;
52878
- break;
52879
- }
52880
- previousX=value.Right;
52881
- }
52882
- }
52883
- }
52884
- else
52885
- {
52886
- if (item.End.Date<kLineMap.Start.Date) return null;
52887
-
52888
- if (item.End.Date<=kLineMap.End.Date)
52889
- {
52890
- xRight=kLineMap.End.Right;
52891
- }
52892
- else
52893
- {
52894
- var previousX=null;
52895
- for(var kItem of kLineMap.Data)
52896
- {
52897
- var value=kItem[1];
52898
- if (value.Date>item.End.Date)
52899
- {
52900
- xRight=previousX;
52901
- break;
52902
- }
52903
- previousX=value.Right;
52904
- }
52905
- }
52906
- }
52907
- }
52801
+ this.SetFillStyle(bgItem.Item.Color,top,left,bottom,left);
52802
+ var start=bgItem.Start;
52803
+ var end=bgItem.End;
52804
+ var rtBG={ Left:bottom, Right:top, Top:start.Left, Bottom:end.Right };
52805
+ rtBG.Width=rtBG.Right-rtBG.Left;
52806
+ rtBG.Height=rtBG.Bottom-rtBG.Top;
52807
+ this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width),ToFixedRect(rtBG.Height));
52908
52808
  }
52909
52809
  else
52910
52810
  {
52911
- xRight=kLineMap.XRight;
52811
+ this.SetFillStyle(bgItem.Item.Color, left,top, left,bottom);
52812
+ var start=bgItem.Start;
52813
+ var end=bgItem.End;
52814
+ var rtBG={ Left:start.Left, Right:end.Right, Top:top, Bottom:bottom };
52815
+ rtBG.Width=rtBG.Right-rtBG.Left;
52816
+ rtBG.Height=rtBG.Bottom-rtBG.Top;
52817
+ this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width),ToFixedRect(rtBG.Height));
52912
52818
  }
52913
-
52914
- if (xLeft==null || xRight==null) return null;
52915
-
52916
- return { Left:xLeft, Right:xRight, Width:xRight-xLeft };
52917
52819
  }
52918
52820
  }
52919
52821
 
52822
+
52920
52823
  function MinuteBackgroundPaint()
52921
52824
  {
52922
52825
  this.newMethod=IExtendChartPainting; //派生
@@ -62516,7 +62419,7 @@ function DynamicChartTitlePainting()
62516
62419
  var left=positionInfo.Left;
62517
62420
  var right=positionInfo.Right;
62518
62421
  var bottom=positionInfo.Bottom;
62519
-
62422
+ var pixelRatio=GetDevicePixelRatio();
62520
62423
  for(var i=0; i<this.Data.length; ++i)
62521
62424
  {
62522
62425
  var item=this.Data[i];
@@ -62535,7 +62438,9 @@ function DynamicChartTitlePainting()
62535
62438
  if (titleItem.Name) text=titleItem.Name+":"+titleItem.Text;
62536
62439
  else text=titleItem.Text;
62537
62440
 
62538
- var space=this.ParamSpace*GetDevicePixelRatio();
62441
+ if (IFrameSplitOperator.IsNumber(titleItem.LeftSpace)) left+=titleItem.LeftSpace*pixelRatio;
62442
+
62443
+ var space=this.ParamSpace*pixelRatio;
62539
62444
  var indexTextWidth=this.Canvas.measureText(text).width; //标题+数值长度
62540
62445
  var textWidth=indexTextWidth;
62541
62446
 
@@ -62611,7 +62516,7 @@ function DynamicChartTitlePainting()
62611
62516
  if (dyTitle) text=dyTitle+":"+valueText;
62612
62517
  else text=item.Name+":"+valueText;
62613
62518
  }
62614
- var space=this.ParamSpace*GetDevicePixelRatio();
62519
+ var space=this.ParamSpace*pixelRatio;
62615
62520
  var textWidth=this.Canvas.measureText(text).width+space;
62616
62521
  if ((left+textWidth)>right) break;
62617
62522
 
@@ -80187,12 +80092,14 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
80187
80092
  var item=option.PopMinuteChart;
80188
80093
  this.PopMinuteChart=new JSPopMinuteChart();
80189
80094
  this.PopMinuteChart.Inital(this, item);
80095
+ this.PopMinuteChart.Create();
80190
80096
  return true;
80191
80097
  }
80192
80098
  else if (option.KLine && option.KLine.KLineDoubleClick===true) //旧的格式 不要使用了
80193
80099
  {
80194
80100
  this.PopMinuteChart=new JSPopMinuteChart();
80195
80101
  this.PopMinuteChart.Inital(this);
80102
+ this.PopMinuteChart.Create();
80196
80103
  return true;
80197
80104
  }
80198
80105
 
@@ -92374,6 +92281,15 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
92374
92281
  chart.SetOption(option);
92375
92282
  this.ExtendChartPaint.push(chart);
92376
92283
  return chart;
92284
+ case "背景图":
92285
+ chart=new BackgroundPaint();
92286
+ chart.Canvas=this.Canvas;
92287
+ chart.ChartBorder=this.Frame.ChartBorder;
92288
+ chart.ChartFrame=this.Frame;
92289
+ chart.HQChart=this;
92290
+ chart.SetOption(option);
92291
+ this.ExtendChartPaint.push(chart);
92292
+ return chart;
92377
92293
  default:
92378
92294
  chart=g_ExtendChartPaintFactory.Create(name);
92379
92295
  if (!chart) return null;
@@ -148230,6 +148146,13 @@ function JSPopMinuteChart()
148230
148146
  this.Minute.JSChart.ChangeSymbol(data.Symbol);
148231
148147
  }
148232
148148
 
148149
+ if (!this.Minute.Option.EnableResize)
148150
+ {
148151
+ if (this.Minute.JSChart) this.Minute.JSChart.OnSize();
148152
+ }
148153
+
148154
+
148155
+
148233
148156
  //超出窗口调整位置
148234
148157
  var height=this.DivDialog.offsetHeight;
148235
148158
  var width=this.DivDialog.offsetWidth;
@@ -148331,7 +148254,7 @@ JSPopMinuteChart.GetMinuteOption=function()
148331
148254
 
148332
148255
  EnableSelectRect:true,
148333
148256
  EnableZoomIndexWindow:true,
148334
- EnableResize:true,
148257
+ EnableResize:false,
148335
148258
 
148336
148259
  //BeforeOpen:{IsShow:true, Width:120, IsShowMultiDay:true, MulitiDayWidth:100, },
148337
148260
  //AfterClose:{IsShow:true, Width:100, IsShowMultiDay:true, MulitiDayWidth:50, ShareVol:2 }, //ShareVol:0=盘后成交量独立坐标, 1==盘后成交量主图共用 2==盘后成交量盘前共用
@@ -148679,8 +148602,13 @@ function JSPopKeyboard()
148679
148602
  JSChart:null,
148680
148603
  }
148681
148604
 
148682
- this.Inital=function()
148605
+ this.Inital=function(option)
148683
148606
  {
148607
+ if (option)
148608
+ {
148609
+ if (IFrameSplitOperator.IsBool(option.EnableResize)) this.Keyboard.Option.EnableResize=option.EnableResize;
148610
+ }
148611
+
148684
148612
  window.addEventListener('mousedown', (e)=>{ this.OnWindowMouseDown(e)});
148685
148613
  }
148686
148614
 
@@ -148880,6 +148808,11 @@ function JSPopKeyboard()
148880
148808
  {
148881
148809
  if (!this.DivDialog) return;
148882
148810
 
148811
+ if (!this.Keyboard.Option.EnableResize) //自动调整大小
148812
+ {
148813
+ if (this.Keyboard.JSChart) this.Keyboard.JSChart.OnSize();
148814
+ }
148815
+
148883
148816
  //显示在右下方
148884
148817
  var height=this.DivDialog.offsetHeight;
148885
148818
  var width=this.DivDialog.offsetWidth;
@@ -149011,7 +148944,7 @@ JSPopKeyboard.GetOption=function()
149011
148944
  },
149012
148945
 
149013
148946
  BorderLine:1|2|4|8,
149014
- EnableResize:true,
148947
+ EnableResize:false,
149015
148948
 
149016
148949
  //{ Type:列id, Title:标题, TextAlign:文字对齐方式, MaxText:文字最大宽度 , TextColor:文字颜色, Sort:0=不支持排序 1=本地排序 0=远程排序 }
149017
148950
  Column:
@@ -153232,7 +153165,7 @@ function HQChartScriptWorker()
153232
153165
 
153233
153166
 
153234
153167
 
153235
- var HQCHART_VERSION="1.1.14424";
153168
+ var HQCHART_VERSION="1.1.14431";
153236
153169
 
153237
153170
  function PrintHQChartVersion()
153238
153171
  {