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.
- package/lib/umychart.vue.js +42 -46
- package/package.json +1 -1
- package/src/jscommon/umychart.PopKeyboard.js +12 -2
- package/src/jscommon/umychart.PopMinuteChart.js +8 -1
- package/src/jscommon/umychart.js +183 -267
- package/src/jscommon/umychart.resource/css/tools.css +2 -0
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +184 -268
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +204 -271
|
@@ -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;
|
|
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
|
|
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
|
-
|
|
52626
|
-
|
|
52627
|
-
|
|
52628
|
-
if (!
|
|
52629
|
-
|
|
52630
|
-
this.
|
|
52631
|
-
|
|
52632
|
-
this.
|
|
52633
|
-
this.
|
|
52634
|
-
if (!this.
|
|
52635
|
-
|
|
52636
|
-
var
|
|
52637
|
-
|
|
52638
|
-
|
|
52639
|
-
|
|
52640
|
-
|
|
52641
|
-
var
|
|
52642
|
-
|
|
52643
|
-
var
|
|
52644
|
-
var
|
|
52645
|
-
|
|
52646
|
-
|
|
52647
|
-
|
|
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
|
-
|
|
52654
|
-
|
|
52655
|
-
|
|
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
|
-
|
|
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
|
|
52661
|
-
var
|
|
52662
|
-
if (!
|
|
52679
|
+
var kItem=kData.Data[i];
|
|
52680
|
+
var aryFind=this.FindMatchData(kItem);
|
|
52681
|
+
if (!aryFind) continue;
|
|
52663
52682
|
|
|
52664
|
-
if (
|
|
52683
|
+
if (isMinute)
|
|
52665
52684
|
{
|
|
52666
|
-
var
|
|
52667
|
-
|
|
52668
|
-
|
|
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
|
-
|
|
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
|
-
|
|
52682
|
-
|
|
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.
|
|
52724
|
+
this.FindMatchData=function(kItem)
|
|
52687
52725
|
{
|
|
52688
|
-
|
|
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
|
|
52695
|
-
|
|
52696
|
-
|
|
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
|
-
|
|
52701
|
-
|
|
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
|
-
|
|
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
|
-
|
|
52713
|
-
|
|
52760
|
+
if (aryFind.Length<=0) return null;
|
|
52761
|
+
|
|
52762
|
+
return aryFind;
|
|
52714
52763
|
}
|
|
52715
52764
|
|
|
52716
|
-
this.
|
|
52765
|
+
this.DrawBG=function(mapBG)
|
|
52717
52766
|
{
|
|
52718
|
-
var
|
|
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
|
|
52730
|
-
|
|
52731
|
-
|
|
52732
|
-
|
|
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
|
|
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.
|
|
52783
|
+
this.DrawBGItem=function(frame, bgItem)
|
|
52760
52784
|
{
|
|
52761
|
-
var
|
|
52762
|
-
|
|
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
|
-
|
|
52791
|
-
|
|
52792
|
-
|
|
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
|
-
|
|
52794
|
+
var top=border.TopEx;
|
|
52795
|
+
var bottom=border.BottomEx;
|
|
52796
|
+
var left=border.Left;
|
|
52845
52797
|
}
|
|
52846
52798
|
|
|
52847
|
-
if (
|
|
52799
|
+
if (this.IsHScreen)
|
|
52848
52800
|
{
|
|
52849
|
-
|
|
52850
|
-
|
|
52851
|
-
|
|
52852
|
-
|
|
52853
|
-
|
|
52854
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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*
|
|
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:
|
|
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:
|
|
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.
|
|
153168
|
+
var HQCHART_VERSION="1.1.14431";
|
|
153236
153169
|
|
|
153237
153170
|
function PrintHQChartVersion()
|
|
153238
153171
|
{
|