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.
@@ -5945,6 +5945,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
5945
5945
  for(var i=0;i<this.ExtendChartPaint.length;++i)
5946
5946
  {
5947
5947
  var item=this.ExtendChartPaint[i];
5948
+
5948
5949
  if (item.IsCallbackDraw)
5949
5950
  {
5950
5951
  if (["KLineYAxisBGPaint","DepthMapPaint","BackgroundPaint","MinuteBackgroundPaint", "SessionBreaksPaint"].includes(item.ClassName))
@@ -44446,6 +44447,25 @@ function IExtendChartPainting()
44446
44447
  {
44447
44448
  return GetFontHeight(this.Canvas, font, "擎");
44448
44449
  }
44450
+
44451
+ this.SetFillStyle=function(color, x0, y0, x1, y1)
44452
+ {
44453
+ if (Array.isArray(color))
44454
+ {
44455
+ let gradient = this.Canvas.createLinearGradient(x0, y0, x1, y1);
44456
+ var offset=1/(color.length-1);
44457
+ for(var i=0; i<color.length; ++i)
44458
+ {
44459
+ var value=i*offset;
44460
+ gradient.addColorStop(value, color[i]);
44461
+ }
44462
+ this.Canvas.fillStyle=gradient;
44463
+ }
44464
+ else
44465
+ {
44466
+ this.Canvas.fillStyle=color;
44467
+ }
44468
+ }
44449
44469
  }
44450
44470
 
44451
44471
  //K线Tooltip, 显示在左边或右边
@@ -48615,7 +48635,7 @@ function KLineYAxisBGPaint()
48615
48635
  }
48616
48636
 
48617
48637
 
48618
- //背景图 支持横屏
48638
+ //背景图 支持横屏 新版本
48619
48639
  function BackgroundPaint()
48620
48640
  {
48621
48641
  this.newMethod=IExtendChartPainting; //派生
@@ -48627,327 +48647,210 @@ function BackgroundPaint()
48627
48647
  this.IsDynamic=false;
48628
48648
  this.IsCallbackDraw=true; //在回调函数里绘制, 不在Draw()中绘制
48629
48649
 
48650
+ this.IsDrawAllFrame=false; //全部的指标框都画
48651
+ this.SetDrawFrameID=new Set([0]); //指定几个指标框画
48652
+
48630
48653
  this.FrameID=0;
48631
- this.Data; //背景数据 { Start:, End:, Color:[] }
48654
+ this.Data; //背景数据[ { Start:{ Date:, Time: }, End:{ Date:, Time }, Color:['rgb(44,55,255)','rgb(200,55,255)'] }]
48655
+ this.IsShow=true;
48656
+ this.SubFrame=null;
48657
+
48632
48658
  this.ID=Guid(); //唯一的ID
48633
-
48634
- /*
48635
- this.Data=
48636
- [
48637
- { Start:{ Date:20181201 }, End:{ Date:20181230 }, Color:'rgb(44,55,44)' } ,
48638
- { Start:{ Date:20190308 }, End:{ Date:20190404 }, Color:['rgb(44,55,255)','rgb(200,55,255)'] }
48639
- ]
48640
- */
48641
-
48642
- this.ChartSubFrame;
48643
- this.ChartBorder;
48644
- this.KData;
48645
- this.Period;
48646
- this.XPointCount=0;
48659
+ this.HQChart;
48647
48660
 
48648
48661
  this.SetOption=function(option) //设置
48649
48662
  {
48650
- if (option.FrameID>0) this.FrameID=option.FrameID;
48663
+ if (!option) return;
48664
+
48665
+ if (IFrameSplitOperator.IsNumber(option.FrameID)) this.FrameID=option.FrameID;
48651
48666
  if (IFrameSplitOperator.IsObjectExist(option.ID)) this.ID=option.ID;
48667
+ if (IFrameSplitOperator.IsBool(option.IsDrawAllFrame)) this.IsDrawAllFrame=option.IsDrawAllFrame;
48668
+ if (IFrameSplitOperator.IsNonEmptyArray(option.AryFrameID)) this.SetDrawFrameID=new Set(option.AryFrameID);
48652
48669
  }
48653
48670
 
48654
48671
  this.Draw=function()
48655
48672
  {
48656
- if (!this.Data || !this.HQChart) return;
48657
- if (!this.ChartFrame || !this.ChartFrame.SubFrame || this.ChartFrame.SubFrame.length<=this.FrameID) return;
48658
- var klineChart=this.HQChart.ChartPaint[0];
48659
- if (!klineChart || !klineChart.Data) return;
48660
-
48661
- this.ChartSubFrame=this.ChartFrame.SubFrame[this.FrameID].Frame;
48662
- this.ChartBorder=this.ChartSubFrame.ChartBorder;
48663
- this.KData=klineChart.Data;
48664
- this.Period=this.HQChart.Period;
48665
- if (!this.KData || this.KData.Data.length<=0) return;
48666
-
48667
- var isHScreen=(this.ChartSubFrame.IsHScreen===true);
48668
- this.XPointCount=this.ChartSubFrame.XPointCount;
48669
- var xPointCount=this.ChartSubFrame.XPointCount;
48670
-
48671
- var firstKItem=this.KData.Data[this.KData.DataOffset];
48672
- var endIndex=this.KData.DataOffset+xPointCount-1;
48673
- if (endIndex>=this.KData.Data.length) endIndex=this.KData.Data.length-1;
48674
- var endKItem=this.KData.Data[endIndex];
48675
- var showData=this.GetShowData(firstKItem,endKItem);
48676
- if (!showData || showData.length<=0) return;
48677
-
48678
- var kLineMap=this.BuildKLineMap();
48679
- var bottom=this.ChartBorder.GetBottomEx();
48680
- var top=this.ChartBorder.GetTopEx();
48681
- var height=this.ChartBorder.GetHeightEx();
48682
- if (isHScreen)
48673
+ this.SubFrame=null;
48674
+
48675
+ if (this.FrameID<0) return;
48676
+ if (!this.HQChart) return;
48677
+ if (!this.ChartFrame || !IFrameSplitOperator.IsNonEmptyArray(this.ChartFrame.SubFrame)) return;
48678
+ if (!this.IsShow) return;
48679
+ if (!IFrameSplitOperator.IsNonEmptyArray(this.Data)) return;
48680
+ if (!this.ChartFrame.SubFrame[this.FrameID]) return;
48681
+ this.SubFrame=this.ChartFrame.SubFrame[this.FrameID].Frame;
48682
+ if (!this.SubFrame) return;
48683
+
48684
+ var kData=this.HQChart.GetKData();
48685
+ if (!kData || !IFrameSplitOperator.IsNonEmptyArray(kData.Data)) return;
48686
+
48687
+ var bHScreen=(this.SubFrame.IsHScreen===true);
48688
+ this.IsHScreen=bHScreen;
48689
+ var isMinute=this.SubFrame.IsMinuteFrame();
48690
+ var dataWidth=this.SubFrame.DataWidth;
48691
+ var distanceWidth=this.SubFrame.DistanceWidth;
48692
+ var xPointCount=this.SubFrame.XPointCount;
48693
+
48694
+ var border=this.SubFrame.GetBorder();
48695
+ if (bHScreen)
48683
48696
  {
48684
- top=this.ChartBorder.GetRightEx();
48685
- bottom=this.ChartBorder.GetLeftEx();
48686
- height=this.ChartBorder.GetWidthEx();
48697
+ var chartright=border.BottomEx;
48698
+ var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
48699
+ }
48700
+ else
48701
+ {
48702
+ var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
48703
+ var chartright=border.RightEx;
48687
48704
  }
48688
48705
 
48689
- for(var i in showData)
48706
+ var mapBG=new Map(); //key= index, Value={ Start:{Left, Center, Right, Item:}, End:{ Left, Center, Right, Item:} }
48707
+ var startIndex=kData.DataOffset;
48708
+ for(var i=startIndex,j=0;i<kData.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
48690
48709
  {
48691
- var item=showData[i];
48692
- var rt=this.GetBGCoordinate(item,kLineMap);
48693
- if (!rt) continue;
48710
+ var kItem=kData.Data[i];
48711
+ var aryFind=this.FindMatchData(kItem);
48712
+ if (!aryFind) continue;
48694
48713
 
48695
- if (Array.isArray(item.Color))
48714
+ if (isMinute)
48696
48715
  {
48697
- var gradient;
48698
- if (isHScreen) gradient = this.Canvas.createLinearGradient(bottom,rt.Left, top, rt.Left);
48699
- else gradient = this.Canvas.createLinearGradient(rt.Left,top, rt.Left,bottom);
48700
- var offset=1/item.Color.length;
48701
- for(var i in item.Color)
48702
- {
48703
- gradient.addColorStop(i*offset, item.Color[i]);
48704
- }
48705
- this.Canvas.fillStyle=gradient;
48716
+ var x=this.ChartFrame.GetXFromIndex(j);
48717
+ var left=x;
48718
+ var right=x;
48706
48719
  }
48707
48720
  else
48708
48721
  {
48709
- this.Canvas.fillStyle=item.Color;
48722
+ var left=xOffset;
48723
+ var right=xOffset+dataWidth;
48724
+ var x=left+(right-left)/2;
48725
+ }
48726
+
48727
+ for(var k=0;k<aryFind.length;++k)
48728
+ {
48729
+ var findItem=aryFind[k];
48730
+ if (mapBG.has(findItem.Index))
48731
+ {
48732
+ var bgItem=mapBG.get(findItem.Index);
48733
+ bgItem.End.Left=left;
48734
+ bgItem.End.Right=right;
48735
+ bgItem.End.Item=findItem.Item;
48736
+ }
48737
+ else
48738
+ {
48739
+ mapBG.set(findItem.Index, { Item:findItem.Item, Start:{ Left:left, Right:right, Item:findItem.Item }, End:{ Left:left, Right:right, Item:findItem.Item }})
48740
+ }
48710
48741
  }
48742
+ }
48711
48743
 
48712
- if (isHScreen) this.Canvas.fillRect(ToFixedRect(bottom),ToFixedRect(rt.Left),ToFixedRect(height),ToFixedRect(rt.Width));
48713
- else this.Canvas.fillRect(ToFixedRect(rt.Left),ToFixedRect(top),ToFixedRect(rt.Width),ToFixedRect(height));
48744
+ if (mapBG.size>0)
48745
+ {
48746
+ this.Canvas.save();
48747
+ //this.ClipClient(bHScreen);
48748
+
48749
+ this.DrawBG(mapBG);
48750
+
48751
+ this.Canvas.restore();
48714
48752
  }
48715
48753
  }
48716
48754
 
48717
- this.GetShowData=function(first, end)
48755
+ this.FindMatchData=function(kItem)
48718
48756
  {
48719
- if (!IFrameSplitOperator.IsNonEmptyArray(this.Data)) return null;
48720
-
48721
- var aryData=[];
48757
+ var aryFind=[];
48722
48758
  for(var i=0;i<this.Data.length;++i)
48723
48759
  {
48724
48760
  var item=this.Data[i];
48725
- var showItem={ };
48726
- if (item.Start.Date>=first.Date && item.Start.Date<=end.Date) showItem.Start=item.Start;
48727
- if (item.End.Date>=first.Date && item.End.Date<=end.Date) showItem.End=item.End;
48728
-
48729
- if (item.Start.Date<first.Date && item.End.Date>end.Date)
48761
+ var start=item.Start;
48762
+ var end=item.End;
48763
+ var bMatch=false;
48764
+ if (IFrameSplitOperator.IsNumber(kItem.Date) && IFrameSplitOperator.IsNumber(kItem.Time))
48730
48765
  {
48731
- showItem.Start=first;
48732
- showItem.End=end;
48766
+ if (kItem.Date>start.Date && kItem.Date<end.Date)
48767
+ {
48768
+ bMatch=true;
48769
+ }
48770
+ else if (kItem.Date==start.Date && kItem.Date==end.Date)
48771
+ {
48772
+ if (kItem.Time>=start.Time && kItem.Time<=end.Time)bMatch=true;
48773
+ }
48774
+ else if (kItem.Date==start.Date)
48775
+ {
48776
+ if (kItem.Time>=start.Time) bMatch=true;
48777
+ }
48778
+ else if (kItem.Date==end.Date)
48779
+ {
48780
+ if ((kItem.Time<=end.Time)) bMatch=true;
48781
+ }
48733
48782
  }
48734
-
48735
-
48736
- if (showItem.Start || showItem.End)
48783
+ else if (IFrameSplitOperator.IsNumber(kItem.Date) && !IFrameSplitOperator.IsNumber(kItem.Time))
48737
48784
  {
48738
- showItem.Color=item.Color;
48739
- aryData.push(showItem);
48785
+ if (kItem.Date>=start.Date && kItem.Date<=end.Date) bMatch=true;
48740
48786
  }
48787
+
48788
+ if (bMatch) aryFind.push({ Index:i, Item:item });
48741
48789
  }
48742
48790
 
48743
- //JSConsole.Chart.Log('[BackgroundPaint::GetShowData] aryData ', aryData);
48744
- return aryData;
48791
+ if (aryFind.Length<=0) return null;
48792
+
48793
+ return aryFind;
48745
48794
  }
48746
48795
 
48747
- this.BuildKLineMap=function()
48796
+ this.DrawBG=function(mapBG)
48748
48797
  {
48749
- var isHScreen=(this.ChartSubFrame.IsHScreen===true);
48750
- var dataWidth=this.ChartSubFrame.DataWidth;
48751
- var distanceWidth=this.ChartSubFrame.DistanceWidth;
48752
- var xOffset=this.ChartBorder.GetLeft()+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
48753
- if (isHScreen) xOffset=this.ChartBorder.GetTop()+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
48754
- var chartright=this.ChartBorder.GetRight();
48755
- if (isHScreen) chartright=this.ChartBorder.GetBottom();
48756
-
48757
- var mapKLine={ Data:new Map() ,Start:null, End:null } ; //Key: date / date time, Value:索引
48758
- for(var i=this.KData.DataOffset,j=0; i<this.KData.Data.length && j<this.XPointCount; ++i,++j,xOffset+=(dataWidth+distanceWidth))
48798
+ for(var mapItem of mapBG)
48759
48799
  {
48760
- var kItem=this.KData.Data[i];
48761
- var left=xOffset;
48762
- var right=xOffset+dataWidth;
48763
- if (right>chartright) break;
48764
- var x=left+(right-left)/2;
48765
-
48766
- if (j==0) mapKLine.XLeft=left;
48767
- mapKLine.XRight=right;
48768
-
48769
- var value={ Index:i, ShowIndex:j , X:x, Right:right, Left:left, Date:kItem.Date };
48770
- if (ChartData.IsMinutePeriod(this.Period,true))
48771
- {
48772
- var key=`Date:${kItem.Date} Time:${kItem.Time}`;
48773
- value.Time=kItem.Time;
48774
- }
48775
- else
48800
+ var bgItem=mapItem[1];
48801
+ //this.DrawBGItem(this.SubFrame, bgItem);
48802
+
48803
+ for(var i=0;i<this.ChartFrame.SubFrame.length;++i)
48776
48804
  {
48777
- var key=`Date:${kItem.Date}`;
48805
+ var subFrame=this.ChartFrame.SubFrame[i].Frame;
48806
+ if (this.IsDrawAllFrame || this.SetDrawFrameID.has(i))
48807
+ {
48808
+ this.DrawBGItem(subFrame, bgItem);
48809
+ }
48778
48810
  }
48779
-
48780
- mapKLine.Data.set(key,value);
48781
-
48782
- //保存下起始和结束位置
48783
- if (j==0) mapKLine.Start=value;
48784
- mapKLine.End=value;
48785
48811
  }
48786
-
48787
- return mapKLine;
48788
48812
  }
48789
48813
 
48790
- this.GetBGCoordinate=function(item,kLineMap)
48814
+ this.DrawBGItem=function(frame, bgItem)
48791
48815
  {
48792
- var xLeft=null, xRight=null;
48793
- var isMinutePeriod=ChartData.IsMinutePeriod(this.Period,true);
48794
- var bSingleDate=false;
48795
- //JSConsole.Chart.Log('[BackgroundPaint::GetBGCoordinate] item ', item);
48796
- if (isMinutePeriod)
48797
- {
48798
- if (item.Start && item.End && item.Start.Date==item.End.Date && item.Start.Time==item.End.Time) bSingleDate=true;
48799
- }
48800
- else
48801
- {
48802
- if (item.Start && item.End && item.Start.Date==item.End.Date) bSingleDate=true;
48803
- }
48804
-
48805
- if (bSingleDate)
48806
- {
48807
- if (isMinutePeriod)
48808
- var key=`Date:${item.Start.Date} Time:${item.Start.Time}`;
48809
- else
48810
- var key=`Date:${item.Start.Date}`;
48811
-
48812
- if (!kLineMap.Data.has(key)) return null;
48813
- var findItem=kLineMap.Data.get(key);
48814
- xLeft=findItem.Left;
48815
- xRight=findItem.Right;
48816
- return { Left:xLeft, Right:xRight, Width:xRight-xLeft };
48817
- }
48818
-
48819
- if (item.Start)
48816
+ var border=frame.GetBorder();
48817
+ if (this.IsHScreen)
48820
48818
  {
48821
- if (isMinutePeriod)
48822
- var key=`Date:${item.Start.Date} Time:${item.Start.Time}`;
48823
- else
48824
- var key=`Date:${item.Start.Date}`;
48825
-
48826
- if (kLineMap.Data.has(key))
48827
- {
48828
- var findItem=kLineMap.Data.get(key);
48829
- xLeft=findItem.Left;
48830
- }
48831
- else
48832
- {
48833
- if (isMinutePeriod)
48834
- {
48835
- if (item.Start.Date<kLineMap.Start.Date || (item.Start.Date==kLineMap.Start.Date && item.Start.Time<=kLineMap.Start.Time) )
48836
- {
48837
- xLeft=kLineMap.Start.Left;
48838
- }
48839
- else
48840
- {
48841
- for(var kItem of kLineMap.Data)
48842
- {
48843
- var value=kItem[1];
48844
- if (value.Date>item.Start.Date || (value.Date==item.Start.Date && value.Time>item.Start.Time))
48845
- {
48846
- xLeft=value.Left;
48847
- break;
48848
- }
48849
- }
48850
- }
48851
- }
48852
- else
48853
- {
48854
- if (item.Start.Date<=kLineMap.Start.Date)
48855
- {
48856
- xLeft=kLineMap.Start.Left;
48857
- }
48858
- else
48859
- {
48860
- for(var kItem of kLineMap.Data)
48861
- {
48862
- var value=kItem[1];
48863
- if (value.Date>item.Start.Date)
48864
- {
48865
- xLeft=value.Left;
48866
- break;
48867
- }
48868
- }
48869
- }
48870
- }
48871
- }
48819
+ var top=border.RightEx;
48820
+ var bottom=border.LeftEx;
48821
+ var left=border.Top;
48872
48822
  }
48873
48823
  else
48874
48824
  {
48875
- xLeft=kLineMap.XLeft;
48825
+ var top=border.TopEx;
48826
+ var bottom=border.BottomEx;
48827
+ var left=border.Left;
48876
48828
  }
48877
48829
 
48878
- if (item.End)
48830
+ if (this.IsHScreen)
48879
48831
  {
48880
- if (isMinutePeriod)
48881
- var key=`Date:${item.End.Date} Time:${item.End.Time}`;
48882
- else
48883
- var key=`Date:${item.End.Date}`;
48884
-
48885
- if (kLineMap.Data.has(key))
48886
- {
48887
- var findItem=kLineMap.Data.get(key);
48888
- xRight=findItem.Right;
48889
- }
48890
- else
48891
- {
48892
- if (isMinutePeriod)
48893
- {
48894
- if (item.End.Date<kLineMap.Start.Date || (item.End.Date==kLineMap.Start.Date && item.End.Time<kLineMap.Start.Time)) return null;
48895
-
48896
- if (item.End.Date<kLineMap.End.Date || (item.End.Date==kLineMap.End.Date && item.End.Time>=kLineMap.End.Time) )
48897
- {
48898
- xRight=kLineMap.End.Right;
48899
- }
48900
- else
48901
- {
48902
- var previousX=null;
48903
- for(var kItem of kLineMap.Data)
48904
- {
48905
- var value=kItem[1];
48906
- if (value.Date>item.End.Date || (value.Date==item.End.Date && value.Time>item.End.Time) )
48907
- {
48908
- xRight=previousX;
48909
- break;
48910
- }
48911
- previousX=value.Right;
48912
- }
48913
- }
48914
- }
48915
- else
48916
- {
48917
- if (item.End.Date<kLineMap.Start.Date) return null;
48918
-
48919
- if (item.End.Date<=kLineMap.End.Date)
48920
- {
48921
- xRight=kLineMap.End.Right;
48922
- }
48923
- else
48924
- {
48925
- var previousX=null;
48926
- for(var kItem of kLineMap.Data)
48927
- {
48928
- var value=kItem[1];
48929
- if (value.Date>item.End.Date)
48930
- {
48931
- xRight=previousX;
48932
- break;
48933
- }
48934
- previousX=value.Right;
48935
- }
48936
- }
48937
- }
48938
- }
48832
+ this.SetFillStyle(bgItem.Item.Color,top,left,bottom,left);
48833
+ var start=bgItem.Start;
48834
+ var end=bgItem.End;
48835
+ var rtBG={ Left:bottom, Right:top, Top:start.Left, Bottom:end.Right };
48836
+ rtBG.Width=rtBG.Right-rtBG.Left;
48837
+ rtBG.Height=rtBG.Bottom-rtBG.Top;
48838
+ this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width),ToFixedRect(rtBG.Height));
48939
48839
  }
48940
48840
  else
48941
48841
  {
48942
- xRight=kLineMap.XRight;
48842
+ this.SetFillStyle(bgItem.Item.Color, left,top, left,bottom);
48843
+ var start=bgItem.Start;
48844
+ var end=bgItem.End;
48845
+ var rtBG={ Left:start.Left, Right:end.Right, Top:top, Bottom:bottom };
48846
+ rtBG.Width=rtBG.Right-rtBG.Left;
48847
+ rtBG.Height=rtBG.Bottom-rtBG.Top;
48848
+ this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width),ToFixedRect(rtBG.Height));
48943
48849
  }
48944
-
48945
- if (xLeft==null || xRight==null) return null;
48946
-
48947
- return { Left:xLeft, Right:xRight, Width:xRight-xLeft };
48948
48850
  }
48949
48851
  }
48950
48852
 
48853
+
48951
48854
  function MinuteBackgroundPaint()
48952
48855
  {
48953
48856
  this.newMethod=IExtendChartPainting; //派生
@@ -58547,7 +58450,7 @@ function DynamicChartTitlePainting()
58547
58450
  var left=positionInfo.Left;
58548
58451
  var right=positionInfo.Right;
58549
58452
  var bottom=positionInfo.Bottom;
58550
-
58453
+ var pixelRatio=GetDevicePixelRatio();
58551
58454
  for(var i=0; i<this.Data.length; ++i)
58552
58455
  {
58553
58456
  var item=this.Data[i];
@@ -58566,7 +58469,9 @@ function DynamicChartTitlePainting()
58566
58469
  if (titleItem.Name) text=titleItem.Name+":"+titleItem.Text;
58567
58470
  else text=titleItem.Text;
58568
58471
 
58569
- var space=this.ParamSpace*GetDevicePixelRatio();
58472
+ if (IFrameSplitOperator.IsNumber(titleItem.LeftSpace)) left+=titleItem.LeftSpace*pixelRatio;
58473
+
58474
+ var space=this.ParamSpace*pixelRatio;
58570
58475
  var indexTextWidth=this.Canvas.measureText(text).width; //标题+数值长度
58571
58476
  var textWidth=indexTextWidth;
58572
58477
 
@@ -58642,7 +58547,7 @@ function DynamicChartTitlePainting()
58642
58547
  if (dyTitle) text=dyTitle+":"+valueText;
58643
58548
  else text=item.Name+":"+valueText;
58644
58549
  }
58645
- var space=this.ParamSpace*GetDevicePixelRatio();
58550
+ var space=this.ParamSpace*pixelRatio;
58646
58551
  var textWidth=this.Canvas.measureText(text).width+space;
58647
58552
  if ((left+textWidth)>right) break;
58648
58553
 
@@ -76218,12 +76123,14 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
76218
76123
  var item=option.PopMinuteChart;
76219
76124
  this.PopMinuteChart=new JSPopMinuteChart();
76220
76125
  this.PopMinuteChart.Inital(this, item);
76126
+ this.PopMinuteChart.Create();
76221
76127
  return true;
76222
76128
  }
76223
76129
  else if (option.KLine && option.KLine.KLineDoubleClick===true) //旧的格式 不要使用了
76224
76130
  {
76225
76131
  this.PopMinuteChart=new JSPopMinuteChart();
76226
76132
  this.PopMinuteChart.Inital(this);
76133
+ this.PopMinuteChart.Create();
76227
76134
  return true;
76228
76135
  }
76229
76136
 
@@ -88405,6 +88312,15 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
88405
88312
  chart.SetOption(option);
88406
88313
  this.ExtendChartPaint.push(chart);
88407
88314
  return chart;
88315
+ case "背景图":
88316
+ chart=new BackgroundPaint();
88317
+ chart.Canvas=this.Canvas;
88318
+ chart.ChartBorder=this.Frame.ChartBorder;
88319
+ chart.ChartFrame=this.Frame;
88320
+ chart.HQChart=this;
88321
+ chart.SetOption(option);
88322
+ this.ExtendChartPaint.push(chart);
88323
+ return chart;
88408
88324
  default:
88409
88325
  chart=g_ExtendChartPaintFactory.Create(name);
88410
88326
  if (!chart) return null;
@@ -1505,6 +1505,8 @@ input[type="color"] {
1505
1505
  .jchart_pop_minute_dailog
1506
1506
  {
1507
1507
  position: absolute;
1508
+ left: 1px;
1509
+ top: 1px;
1508
1510
  height: 500px;
1509
1511
  width: 600px;
1510
1512
  z-index: 809;