hqchart 1.1.14425 → 1.1.14439
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 +54 -58
- 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 +190 -281
- package/src/jscommon/umychart.report.js +56 -5
- package/src/jscommon/umychart.resource/css/tools.css +2 -0
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +247 -287
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +267 -290
|
@@ -3950,7 +3950,6 @@ if (!JSConsole)
|
|
|
3950
3950
|
function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
3951
3951
|
{
|
|
3952
3952
|
this.DivElement=divElement;
|
|
3953
|
-
this.DivToolElement=null; //工具条
|
|
3954
3953
|
this.JSChartContainer; //画图控件
|
|
3955
3954
|
this.ResizeListener;
|
|
3956
3955
|
|
|
@@ -4046,6 +4045,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4046
4045
|
//画布大小通过div获取 如果有style里的大小 使用style里的
|
|
4047
4046
|
var height=this.DivElement.offsetHeight;
|
|
4048
4047
|
var width=this.DivElement.offsetWidth;
|
|
4048
|
+
var pixelTatio = GetDevicePixelRatio(); //获取设备的分辨率s
|
|
4049
4049
|
if (this.DivElement.style.height && this.DivElement.style.width)
|
|
4050
4050
|
{
|
|
4051
4051
|
if (this.DivElement.style.height.includes("px"))
|
|
@@ -4053,21 +4053,12 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4053
4053
|
if (this.DivElement.style.width.includes("px"))
|
|
4054
4054
|
width=parseInt(this.DivElement.style.width.replace("px",""));
|
|
4055
4055
|
}
|
|
4056
|
-
|
|
4057
|
-
if (this.ToolElement)
|
|
4058
|
-
{
|
|
4059
|
-
//TODO调整工具条大小
|
|
4060
|
-
height-=this.ToolElement.style.height.replace("px",""); //减去工具条的高度
|
|
4061
|
-
}
|
|
4062
4056
|
|
|
4063
|
-
this.CanvasElement.
|
|
4064
|
-
this.CanvasElement.
|
|
4065
|
-
this.CanvasElement.style.width=this.CanvasElement.width+'px';
|
|
4066
|
-
this.CanvasElement.style.height=this.CanvasElement.height+'px';
|
|
4057
|
+
this.CanvasElement.style.width=`${width}px`;
|
|
4058
|
+
this.CanvasElement.style.height=`${height}px`;
|
|
4067
4059
|
|
|
4068
|
-
|
|
4069
|
-
this.CanvasElement.
|
|
4070
|
-
this.CanvasElement.width*=pixelTatio;
|
|
4060
|
+
this.CanvasElement.height=parseInt(pixelTatio*height); //根据分辨率缩放
|
|
4061
|
+
this.CanvasElement.width=parseInt(pixelTatio*width);
|
|
4071
4062
|
|
|
4072
4063
|
if (this.OffscreenCanvasElement)
|
|
4073
4064
|
{
|
|
@@ -9870,6 +9861,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
9870
9861
|
for(var i=0;i<this.ExtendChartPaint.length;++i)
|
|
9871
9862
|
{
|
|
9872
9863
|
var item=this.ExtendChartPaint[i];
|
|
9864
|
+
|
|
9873
9865
|
if (item.IsCallbackDraw)
|
|
9874
9866
|
{
|
|
9875
9867
|
if (["KLineYAxisBGPaint","DepthMapPaint","BackgroundPaint","MinuteBackgroundPaint", "SessionBreaksPaint"].includes(item.ClassName))
|
|
@@ -48371,6 +48363,25 @@ function IExtendChartPainting()
|
|
|
48371
48363
|
{
|
|
48372
48364
|
return GetFontHeight(this.Canvas, font, "擎");
|
|
48373
48365
|
}
|
|
48366
|
+
|
|
48367
|
+
this.SetFillStyle=function(color, x0, y0, x1, y1)
|
|
48368
|
+
{
|
|
48369
|
+
if (Array.isArray(color))
|
|
48370
|
+
{
|
|
48371
|
+
let gradient = this.Canvas.createLinearGradient(x0, y0, x1, y1);
|
|
48372
|
+
var offset=1/(color.length-1);
|
|
48373
|
+
for(var i=0; i<color.length; ++i)
|
|
48374
|
+
{
|
|
48375
|
+
var value=i*offset;
|
|
48376
|
+
gradient.addColorStop(value, color[i]);
|
|
48377
|
+
}
|
|
48378
|
+
this.Canvas.fillStyle=gradient;
|
|
48379
|
+
}
|
|
48380
|
+
else
|
|
48381
|
+
{
|
|
48382
|
+
this.Canvas.fillStyle=color;
|
|
48383
|
+
}
|
|
48384
|
+
}
|
|
48374
48385
|
}
|
|
48375
48386
|
|
|
48376
48387
|
//K线Tooltip, 显示在左边或右边
|
|
@@ -52540,7 +52551,7 @@ function KLineYAxisBGPaint()
|
|
|
52540
52551
|
}
|
|
52541
52552
|
|
|
52542
52553
|
|
|
52543
|
-
//背景图 支持横屏
|
|
52554
|
+
//背景图 支持横屏 新版本
|
|
52544
52555
|
function BackgroundPaint()
|
|
52545
52556
|
{
|
|
52546
52557
|
this.newMethod=IExtendChartPainting; //派生
|
|
@@ -52552,327 +52563,210 @@ function BackgroundPaint()
|
|
|
52552
52563
|
this.IsDynamic=false;
|
|
52553
52564
|
this.IsCallbackDraw=true; //在回调函数里绘制, 不在Draw()中绘制
|
|
52554
52565
|
|
|
52566
|
+
this.IsDrawAllFrame=false; //全部的指标框都画
|
|
52567
|
+
this.SetDrawFrameID=new Set([0]); //指定几个指标框画
|
|
52568
|
+
|
|
52555
52569
|
this.FrameID=0;
|
|
52556
|
-
this.Data;
|
|
52570
|
+
this.Data; //背景数据[ { Start:{ Date:, Time: }, End:{ Date:, Time }, Color:['rgb(44,55,255)','rgb(200,55,255)'] }]
|
|
52571
|
+
this.IsShow=true;
|
|
52572
|
+
this.SubFrame=null;
|
|
52573
|
+
|
|
52557
52574
|
this.ID=Guid(); //唯一的ID
|
|
52558
|
-
|
|
52559
|
-
/*
|
|
52560
|
-
this.Data=
|
|
52561
|
-
[
|
|
52562
|
-
{ Start:{ Date:20181201 }, End:{ Date:20181230 }, Color:'rgb(44,55,44)' } ,
|
|
52563
|
-
{ Start:{ Date:20190308 }, End:{ Date:20190404 }, Color:['rgb(44,55,255)','rgb(200,55,255)'] }
|
|
52564
|
-
]
|
|
52565
|
-
*/
|
|
52566
|
-
|
|
52567
|
-
this.ChartSubFrame;
|
|
52568
|
-
this.ChartBorder;
|
|
52569
|
-
this.KData;
|
|
52570
|
-
this.Period;
|
|
52571
|
-
this.XPointCount=0;
|
|
52575
|
+
this.HQChart;
|
|
52572
52576
|
|
|
52573
52577
|
this.SetOption=function(option) //设置
|
|
52574
52578
|
{
|
|
52575
|
-
if (option
|
|
52579
|
+
if (!option) return;
|
|
52580
|
+
|
|
52581
|
+
if (IFrameSplitOperator.IsNumber(option.FrameID)) this.FrameID=option.FrameID;
|
|
52576
52582
|
if (IFrameSplitOperator.IsObjectExist(option.ID)) this.ID=option.ID;
|
|
52583
|
+
if (IFrameSplitOperator.IsBool(option.IsDrawAllFrame)) this.IsDrawAllFrame=option.IsDrawAllFrame;
|
|
52584
|
+
if (IFrameSplitOperator.IsNonEmptyArray(option.AryFrameID)) this.SetDrawFrameID=new Set(option.AryFrameID);
|
|
52577
52585
|
}
|
|
52578
52586
|
|
|
52579
52587
|
this.Draw=function()
|
|
52580
52588
|
{
|
|
52581
|
-
|
|
52582
|
-
|
|
52583
|
-
|
|
52584
|
-
if (!
|
|
52585
|
-
|
|
52586
|
-
this.
|
|
52587
|
-
|
|
52588
|
-
this.
|
|
52589
|
-
this.
|
|
52590
|
-
if (!this.
|
|
52591
|
-
|
|
52592
|
-
var
|
|
52593
|
-
|
|
52594
|
-
|
|
52595
|
-
|
|
52596
|
-
|
|
52597
|
-
var
|
|
52598
|
-
|
|
52599
|
-
var
|
|
52600
|
-
var
|
|
52601
|
-
|
|
52602
|
-
|
|
52603
|
-
|
|
52604
|
-
var bottom=this.ChartBorder.GetBottomEx();
|
|
52605
|
-
var top=this.ChartBorder.GetTopEx();
|
|
52606
|
-
var height=this.ChartBorder.GetHeightEx();
|
|
52607
|
-
if (isHScreen)
|
|
52589
|
+
this.SubFrame=null;
|
|
52590
|
+
|
|
52591
|
+
if (this.FrameID<0) return;
|
|
52592
|
+
if (!this.HQChart) return;
|
|
52593
|
+
if (!this.ChartFrame || !IFrameSplitOperator.IsNonEmptyArray(this.ChartFrame.SubFrame)) return;
|
|
52594
|
+
if (!this.IsShow) return;
|
|
52595
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.Data)) return;
|
|
52596
|
+
if (!this.ChartFrame.SubFrame[this.FrameID]) return;
|
|
52597
|
+
this.SubFrame=this.ChartFrame.SubFrame[this.FrameID].Frame;
|
|
52598
|
+
if (!this.SubFrame) return;
|
|
52599
|
+
|
|
52600
|
+
var kData=this.HQChart.GetKData();
|
|
52601
|
+
if (!kData || !IFrameSplitOperator.IsNonEmptyArray(kData.Data)) return;
|
|
52602
|
+
|
|
52603
|
+
var bHScreen=(this.SubFrame.IsHScreen===true);
|
|
52604
|
+
this.IsHScreen=bHScreen;
|
|
52605
|
+
var isMinute=this.SubFrame.IsMinuteFrame();
|
|
52606
|
+
var dataWidth=this.SubFrame.DataWidth;
|
|
52607
|
+
var distanceWidth=this.SubFrame.DistanceWidth;
|
|
52608
|
+
var xPointCount=this.SubFrame.XPointCount;
|
|
52609
|
+
|
|
52610
|
+
var border=this.SubFrame.GetBorder();
|
|
52611
|
+
if (bHScreen)
|
|
52608
52612
|
{
|
|
52609
|
-
|
|
52610
|
-
|
|
52611
|
-
|
|
52613
|
+
var chartright=border.BottomEx;
|
|
52614
|
+
var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
|
|
52615
|
+
}
|
|
52616
|
+
else
|
|
52617
|
+
{
|
|
52618
|
+
var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
|
|
52619
|
+
var chartright=border.RightEx;
|
|
52612
52620
|
}
|
|
52613
52621
|
|
|
52614
|
-
|
|
52622
|
+
var mapBG=new Map(); //key= index, Value={ Start:{Left, Center, Right, Item:}, End:{ Left, Center, Right, Item:} }
|
|
52623
|
+
var startIndex=kData.DataOffset;
|
|
52624
|
+
for(var i=startIndex,j=0;i<kData.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
|
|
52615
52625
|
{
|
|
52616
|
-
var
|
|
52617
|
-
var
|
|
52618
|
-
if (!
|
|
52626
|
+
var kItem=kData.Data[i];
|
|
52627
|
+
var aryFind=this.FindMatchData(kItem);
|
|
52628
|
+
if (!aryFind) continue;
|
|
52619
52629
|
|
|
52620
|
-
if (
|
|
52630
|
+
if (isMinute)
|
|
52621
52631
|
{
|
|
52622
|
-
var
|
|
52623
|
-
|
|
52624
|
-
|
|
52625
|
-
var offset=1/item.Color.length;
|
|
52626
|
-
for(var i in item.Color)
|
|
52627
|
-
{
|
|
52628
|
-
gradient.addColorStop(i*offset, item.Color[i]);
|
|
52629
|
-
}
|
|
52630
|
-
this.Canvas.fillStyle=gradient;
|
|
52632
|
+
var x=this.ChartFrame.GetXFromIndex(j);
|
|
52633
|
+
var left=x;
|
|
52634
|
+
var right=x;
|
|
52631
52635
|
}
|
|
52632
52636
|
else
|
|
52633
52637
|
{
|
|
52634
|
-
|
|
52638
|
+
var left=xOffset;
|
|
52639
|
+
var right=xOffset+dataWidth;
|
|
52640
|
+
var x=left+(right-left)/2;
|
|
52635
52641
|
}
|
|
52636
52642
|
|
|
52637
|
-
|
|
52638
|
-
|
|
52643
|
+
for(var k=0;k<aryFind.length;++k)
|
|
52644
|
+
{
|
|
52645
|
+
var findItem=aryFind[k];
|
|
52646
|
+
if (mapBG.has(findItem.Index))
|
|
52647
|
+
{
|
|
52648
|
+
var bgItem=mapBG.get(findItem.Index);
|
|
52649
|
+
bgItem.End.Left=left;
|
|
52650
|
+
bgItem.End.Right=right;
|
|
52651
|
+
bgItem.End.Item=findItem.Item;
|
|
52652
|
+
}
|
|
52653
|
+
else
|
|
52654
|
+
{
|
|
52655
|
+
mapBG.set(findItem.Index, { Item:findItem.Item, Start:{ Left:left, Right:right, Item:findItem.Item }, End:{ Left:left, Right:right, Item:findItem.Item }})
|
|
52656
|
+
}
|
|
52657
|
+
}
|
|
52658
|
+
}
|
|
52659
|
+
|
|
52660
|
+
if (mapBG.size>0)
|
|
52661
|
+
{
|
|
52662
|
+
this.Canvas.save();
|
|
52663
|
+
//this.ClipClient(bHScreen);
|
|
52664
|
+
|
|
52665
|
+
this.DrawBG(mapBG);
|
|
52666
|
+
|
|
52667
|
+
this.Canvas.restore();
|
|
52639
52668
|
}
|
|
52640
52669
|
}
|
|
52641
52670
|
|
|
52642
|
-
this.
|
|
52671
|
+
this.FindMatchData=function(kItem)
|
|
52643
52672
|
{
|
|
52644
|
-
|
|
52645
|
-
|
|
52646
|
-
var aryData=[];
|
|
52673
|
+
var aryFind=[];
|
|
52647
52674
|
for(var i=0;i<this.Data.length;++i)
|
|
52648
52675
|
{
|
|
52649
52676
|
var item=this.Data[i];
|
|
52650
|
-
var
|
|
52651
|
-
|
|
52652
|
-
|
|
52653
|
-
|
|
52654
|
-
if (item.Start.Date<first.Date && item.End.Date>end.Date)
|
|
52677
|
+
var start=item.Start;
|
|
52678
|
+
var end=item.End;
|
|
52679
|
+
var bMatch=false;
|
|
52680
|
+
if (IFrameSplitOperator.IsNumber(kItem.Date) && IFrameSplitOperator.IsNumber(kItem.Time))
|
|
52655
52681
|
{
|
|
52656
|
-
|
|
52657
|
-
|
|
52682
|
+
if (kItem.Date>start.Date && kItem.Date<end.Date)
|
|
52683
|
+
{
|
|
52684
|
+
bMatch=true;
|
|
52685
|
+
}
|
|
52686
|
+
else if (kItem.Date==start.Date && kItem.Date==end.Date)
|
|
52687
|
+
{
|
|
52688
|
+
if (kItem.Time>=start.Time && kItem.Time<=end.Time)bMatch=true;
|
|
52689
|
+
}
|
|
52690
|
+
else if (kItem.Date==start.Date)
|
|
52691
|
+
{
|
|
52692
|
+
if (kItem.Time>=start.Time) bMatch=true;
|
|
52693
|
+
}
|
|
52694
|
+
else if (kItem.Date==end.Date)
|
|
52695
|
+
{
|
|
52696
|
+
if ((kItem.Time<=end.Time)) bMatch=true;
|
|
52697
|
+
}
|
|
52658
52698
|
}
|
|
52659
|
-
|
|
52660
|
-
|
|
52661
|
-
if (showItem.Start || showItem.End)
|
|
52699
|
+
else if (IFrameSplitOperator.IsNumber(kItem.Date) && !IFrameSplitOperator.IsNumber(kItem.Time))
|
|
52662
52700
|
{
|
|
52663
|
-
|
|
52664
|
-
aryData.push(showItem);
|
|
52701
|
+
if (kItem.Date>=start.Date && kItem.Date<=end.Date) bMatch=true;
|
|
52665
52702
|
}
|
|
52703
|
+
|
|
52704
|
+
if (bMatch) aryFind.push({ Index:i, Item:item });
|
|
52666
52705
|
}
|
|
52667
52706
|
|
|
52668
|
-
|
|
52669
|
-
|
|
52707
|
+
if (aryFind.Length<=0) return null;
|
|
52708
|
+
|
|
52709
|
+
return aryFind;
|
|
52670
52710
|
}
|
|
52671
52711
|
|
|
52672
|
-
this.
|
|
52712
|
+
this.DrawBG=function(mapBG)
|
|
52673
52713
|
{
|
|
52674
|
-
var
|
|
52675
|
-
var dataWidth=this.ChartSubFrame.DataWidth;
|
|
52676
|
-
var distanceWidth=this.ChartSubFrame.DistanceWidth;
|
|
52677
|
-
var xOffset=this.ChartBorder.GetLeft()+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
|
|
52678
|
-
if (isHScreen) xOffset=this.ChartBorder.GetTop()+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
|
|
52679
|
-
var chartright=this.ChartBorder.GetRight();
|
|
52680
|
-
if (isHScreen) chartright=this.ChartBorder.GetBottom();
|
|
52681
|
-
|
|
52682
|
-
var mapKLine={ Data:new Map() ,Start:null, End:null } ; //Key: date / date time, Value:索引
|
|
52683
|
-
for(var i=this.KData.DataOffset,j=0; i<this.KData.Data.length && j<this.XPointCount; ++i,++j,xOffset+=(dataWidth+distanceWidth))
|
|
52714
|
+
for(var mapItem of mapBG)
|
|
52684
52715
|
{
|
|
52685
|
-
var
|
|
52686
|
-
|
|
52687
|
-
|
|
52688
|
-
|
|
52689
|
-
var x=left+(right-left)/2;
|
|
52690
|
-
|
|
52691
|
-
if (j==0) mapKLine.XLeft=left;
|
|
52692
|
-
mapKLine.XRight=right;
|
|
52693
|
-
|
|
52694
|
-
var value={ Index:i, ShowIndex:j , X:x, Right:right, Left:left, Date:kItem.Date };
|
|
52695
|
-
if (ChartData.IsMinutePeriod(this.Period,true))
|
|
52696
|
-
{
|
|
52697
|
-
var key=`Date:${kItem.Date} Time:${kItem.Time}`;
|
|
52698
|
-
value.Time=kItem.Time;
|
|
52699
|
-
}
|
|
52700
|
-
else
|
|
52716
|
+
var bgItem=mapItem[1];
|
|
52717
|
+
//this.DrawBGItem(this.SubFrame, bgItem);
|
|
52718
|
+
|
|
52719
|
+
for(var i=0;i<this.ChartFrame.SubFrame.length;++i)
|
|
52701
52720
|
{
|
|
52702
|
-
var
|
|
52721
|
+
var subFrame=this.ChartFrame.SubFrame[i].Frame;
|
|
52722
|
+
if (this.IsDrawAllFrame || this.SetDrawFrameID.has(i))
|
|
52723
|
+
{
|
|
52724
|
+
this.DrawBGItem(subFrame, bgItem);
|
|
52725
|
+
}
|
|
52703
52726
|
}
|
|
52704
|
-
|
|
52705
|
-
mapKLine.Data.set(key,value);
|
|
52706
|
-
|
|
52707
|
-
//保存下起始和结束位置
|
|
52708
|
-
if (j==0) mapKLine.Start=value;
|
|
52709
|
-
mapKLine.End=value;
|
|
52710
52727
|
}
|
|
52711
|
-
|
|
52712
|
-
return mapKLine;
|
|
52713
52728
|
}
|
|
52714
52729
|
|
|
52715
|
-
this.
|
|
52730
|
+
this.DrawBGItem=function(frame, bgItem)
|
|
52716
52731
|
{
|
|
52717
|
-
var
|
|
52718
|
-
|
|
52719
|
-
var bSingleDate=false;
|
|
52720
|
-
//JSConsole.Chart.Log('[BackgroundPaint::GetBGCoordinate] item ', item);
|
|
52721
|
-
if (isMinutePeriod)
|
|
52722
|
-
{
|
|
52723
|
-
if (item.Start && item.End && item.Start.Date==item.End.Date && item.Start.Time==item.End.Time) bSingleDate=true;
|
|
52724
|
-
}
|
|
52725
|
-
else
|
|
52726
|
-
{
|
|
52727
|
-
if (item.Start && item.End && item.Start.Date==item.End.Date) bSingleDate=true;
|
|
52728
|
-
}
|
|
52729
|
-
|
|
52730
|
-
if (bSingleDate)
|
|
52731
|
-
{
|
|
52732
|
-
if (isMinutePeriod)
|
|
52733
|
-
var key=`Date:${item.Start.Date} Time:${item.Start.Time}`;
|
|
52734
|
-
else
|
|
52735
|
-
var key=`Date:${item.Start.Date}`;
|
|
52736
|
-
|
|
52737
|
-
if (!kLineMap.Data.has(key)) return null;
|
|
52738
|
-
var findItem=kLineMap.Data.get(key);
|
|
52739
|
-
xLeft=findItem.Left;
|
|
52740
|
-
xRight=findItem.Right;
|
|
52741
|
-
return { Left:xLeft, Right:xRight, Width:xRight-xLeft };
|
|
52742
|
-
}
|
|
52743
|
-
|
|
52744
|
-
if (item.Start)
|
|
52732
|
+
var border=frame.GetBorder();
|
|
52733
|
+
if (this.IsHScreen)
|
|
52745
52734
|
{
|
|
52746
|
-
|
|
52747
|
-
|
|
52748
|
-
|
|
52749
|
-
var key=`Date:${item.Start.Date}`;
|
|
52750
|
-
|
|
52751
|
-
if (kLineMap.Data.has(key))
|
|
52752
|
-
{
|
|
52753
|
-
var findItem=kLineMap.Data.get(key);
|
|
52754
|
-
xLeft=findItem.Left;
|
|
52755
|
-
}
|
|
52756
|
-
else
|
|
52757
|
-
{
|
|
52758
|
-
if (isMinutePeriod)
|
|
52759
|
-
{
|
|
52760
|
-
if (item.Start.Date<kLineMap.Start.Date || (item.Start.Date==kLineMap.Start.Date && item.Start.Time<=kLineMap.Start.Time) )
|
|
52761
|
-
{
|
|
52762
|
-
xLeft=kLineMap.Start.Left;
|
|
52763
|
-
}
|
|
52764
|
-
else
|
|
52765
|
-
{
|
|
52766
|
-
for(var kItem of kLineMap.Data)
|
|
52767
|
-
{
|
|
52768
|
-
var value=kItem[1];
|
|
52769
|
-
if (value.Date>item.Start.Date || (value.Date==item.Start.Date && value.Time>item.Start.Time))
|
|
52770
|
-
{
|
|
52771
|
-
xLeft=value.Left;
|
|
52772
|
-
break;
|
|
52773
|
-
}
|
|
52774
|
-
}
|
|
52775
|
-
}
|
|
52776
|
-
}
|
|
52777
|
-
else
|
|
52778
|
-
{
|
|
52779
|
-
if (item.Start.Date<=kLineMap.Start.Date)
|
|
52780
|
-
{
|
|
52781
|
-
xLeft=kLineMap.Start.Left;
|
|
52782
|
-
}
|
|
52783
|
-
else
|
|
52784
|
-
{
|
|
52785
|
-
for(var kItem of kLineMap.Data)
|
|
52786
|
-
{
|
|
52787
|
-
var value=kItem[1];
|
|
52788
|
-
if (value.Date>item.Start.Date)
|
|
52789
|
-
{
|
|
52790
|
-
xLeft=value.Left;
|
|
52791
|
-
break;
|
|
52792
|
-
}
|
|
52793
|
-
}
|
|
52794
|
-
}
|
|
52795
|
-
}
|
|
52796
|
-
}
|
|
52735
|
+
var top=border.RightEx;
|
|
52736
|
+
var bottom=border.LeftEx;
|
|
52737
|
+
var left=border.Top;
|
|
52797
52738
|
}
|
|
52798
52739
|
else
|
|
52799
52740
|
{
|
|
52800
|
-
|
|
52741
|
+
var top=border.TopEx;
|
|
52742
|
+
var bottom=border.BottomEx;
|
|
52743
|
+
var left=border.Left;
|
|
52801
52744
|
}
|
|
52802
52745
|
|
|
52803
|
-
if (
|
|
52746
|
+
if (this.IsHScreen)
|
|
52804
52747
|
{
|
|
52805
|
-
|
|
52806
|
-
|
|
52807
|
-
|
|
52808
|
-
|
|
52809
|
-
|
|
52810
|
-
|
|
52811
|
-
|
|
52812
|
-
var findItem=kLineMap.Data.get(key);
|
|
52813
|
-
xRight=findItem.Right;
|
|
52814
|
-
}
|
|
52815
|
-
else
|
|
52816
|
-
{
|
|
52817
|
-
if (isMinutePeriod)
|
|
52818
|
-
{
|
|
52819
|
-
if (item.End.Date<kLineMap.Start.Date || (item.End.Date==kLineMap.Start.Date && item.End.Time<kLineMap.Start.Time)) return null;
|
|
52820
|
-
|
|
52821
|
-
if (item.End.Date<kLineMap.End.Date || (item.End.Date==kLineMap.End.Date && item.End.Time>=kLineMap.End.Time) )
|
|
52822
|
-
{
|
|
52823
|
-
xRight=kLineMap.End.Right;
|
|
52824
|
-
}
|
|
52825
|
-
else
|
|
52826
|
-
{
|
|
52827
|
-
var previousX=null;
|
|
52828
|
-
for(var kItem of kLineMap.Data)
|
|
52829
|
-
{
|
|
52830
|
-
var value=kItem[1];
|
|
52831
|
-
if (value.Date>item.End.Date || (value.Date==item.End.Date && value.Time>item.End.Time) )
|
|
52832
|
-
{
|
|
52833
|
-
xRight=previousX;
|
|
52834
|
-
break;
|
|
52835
|
-
}
|
|
52836
|
-
previousX=value.Right;
|
|
52837
|
-
}
|
|
52838
|
-
}
|
|
52839
|
-
}
|
|
52840
|
-
else
|
|
52841
|
-
{
|
|
52842
|
-
if (item.End.Date<kLineMap.Start.Date) return null;
|
|
52843
|
-
|
|
52844
|
-
if (item.End.Date<=kLineMap.End.Date)
|
|
52845
|
-
{
|
|
52846
|
-
xRight=kLineMap.End.Right;
|
|
52847
|
-
}
|
|
52848
|
-
else
|
|
52849
|
-
{
|
|
52850
|
-
var previousX=null;
|
|
52851
|
-
for(var kItem of kLineMap.Data)
|
|
52852
|
-
{
|
|
52853
|
-
var value=kItem[1];
|
|
52854
|
-
if (value.Date>item.End.Date)
|
|
52855
|
-
{
|
|
52856
|
-
xRight=previousX;
|
|
52857
|
-
break;
|
|
52858
|
-
}
|
|
52859
|
-
previousX=value.Right;
|
|
52860
|
-
}
|
|
52861
|
-
}
|
|
52862
|
-
}
|
|
52863
|
-
}
|
|
52748
|
+
this.SetFillStyle(bgItem.Item.Color,top,left,bottom,left);
|
|
52749
|
+
var start=bgItem.Start;
|
|
52750
|
+
var end=bgItem.End;
|
|
52751
|
+
var rtBG={ Left:bottom, Right:top, Top:start.Left, Bottom:end.Right };
|
|
52752
|
+
rtBG.Width=rtBG.Right-rtBG.Left;
|
|
52753
|
+
rtBG.Height=rtBG.Bottom-rtBG.Top;
|
|
52754
|
+
this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width),ToFixedRect(rtBG.Height));
|
|
52864
52755
|
}
|
|
52865
52756
|
else
|
|
52866
52757
|
{
|
|
52867
|
-
|
|
52758
|
+
this.SetFillStyle(bgItem.Item.Color, left,top, left,bottom);
|
|
52759
|
+
var start=bgItem.Start;
|
|
52760
|
+
var end=bgItem.End;
|
|
52761
|
+
var rtBG={ Left:start.Left, Right:end.Right, Top:top, Bottom:bottom };
|
|
52762
|
+
rtBG.Width=rtBG.Right-rtBG.Left;
|
|
52763
|
+
rtBG.Height=rtBG.Bottom-rtBG.Top;
|
|
52764
|
+
this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width),ToFixedRect(rtBG.Height));
|
|
52868
52765
|
}
|
|
52869
|
-
|
|
52870
|
-
if (xLeft==null || xRight==null) return null;
|
|
52871
|
-
|
|
52872
|
-
return { Left:xLeft, Right:xRight, Width:xRight-xLeft };
|
|
52873
52766
|
}
|
|
52874
52767
|
}
|
|
52875
52768
|
|
|
52769
|
+
|
|
52876
52770
|
function MinuteBackgroundPaint()
|
|
52877
52771
|
{
|
|
52878
52772
|
this.newMethod=IExtendChartPainting; //派生
|
|
@@ -62472,7 +62366,7 @@ function DynamicChartTitlePainting()
|
|
|
62472
62366
|
var left=positionInfo.Left;
|
|
62473
62367
|
var right=positionInfo.Right;
|
|
62474
62368
|
var bottom=positionInfo.Bottom;
|
|
62475
|
-
|
|
62369
|
+
var pixelRatio=GetDevicePixelRatio();
|
|
62476
62370
|
for(var i=0; i<this.Data.length; ++i)
|
|
62477
62371
|
{
|
|
62478
62372
|
var item=this.Data[i];
|
|
@@ -62491,7 +62385,9 @@ function DynamicChartTitlePainting()
|
|
|
62491
62385
|
if (titleItem.Name) text=titleItem.Name+":"+titleItem.Text;
|
|
62492
62386
|
else text=titleItem.Text;
|
|
62493
62387
|
|
|
62494
|
-
|
|
62388
|
+
if (IFrameSplitOperator.IsNumber(titleItem.LeftSpace)) left+=titleItem.LeftSpace*pixelRatio;
|
|
62389
|
+
|
|
62390
|
+
var space=this.ParamSpace*pixelRatio;
|
|
62495
62391
|
var indexTextWidth=this.Canvas.measureText(text).width; //标题+数值长度
|
|
62496
62392
|
var textWidth=indexTextWidth;
|
|
62497
62393
|
|
|
@@ -62567,7 +62463,7 @@ function DynamicChartTitlePainting()
|
|
|
62567
62463
|
if (dyTitle) text=dyTitle+":"+valueText;
|
|
62568
62464
|
else text=item.Name+":"+valueText;
|
|
62569
62465
|
}
|
|
62570
|
-
var space=this.ParamSpace*
|
|
62466
|
+
var space=this.ParamSpace*pixelRatio;
|
|
62571
62467
|
var textWidth=this.Canvas.measureText(text).width+space;
|
|
62572
62468
|
if ((left+textWidth)>right) break;
|
|
62573
62469
|
|
|
@@ -80143,12 +80039,14 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
80143
80039
|
var item=option.PopMinuteChart;
|
|
80144
80040
|
this.PopMinuteChart=new JSPopMinuteChart();
|
|
80145
80041
|
this.PopMinuteChart.Inital(this, item);
|
|
80042
|
+
this.PopMinuteChart.Create();
|
|
80146
80043
|
return true;
|
|
80147
80044
|
}
|
|
80148
80045
|
else if (option.KLine && option.KLine.KLineDoubleClick===true) //旧的格式 不要使用了
|
|
80149
80046
|
{
|
|
80150
80047
|
this.PopMinuteChart=new JSPopMinuteChart();
|
|
80151
80048
|
this.PopMinuteChart.Inital(this);
|
|
80049
|
+
this.PopMinuteChart.Create();
|
|
80152
80050
|
return true;
|
|
80153
80051
|
}
|
|
80154
80052
|
|
|
@@ -83730,6 +83628,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
83730
83628
|
chart.SetOption(option);
|
|
83731
83629
|
this.ExtendChartPaint.push(chart);
|
|
83732
83630
|
return chart;
|
|
83631
|
+
case "BackgroundPaint":
|
|
83733
83632
|
case '背景图':
|
|
83734
83633
|
chart=new BackgroundPaint();
|
|
83735
83634
|
chart.Canvas=this.Canvas;
|
|
@@ -92330,6 +92229,16 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
92330
92229
|
chart.SetOption(option);
|
|
92331
92230
|
this.ExtendChartPaint.push(chart);
|
|
92332
92231
|
return chart;
|
|
92232
|
+
case "BackgroundPaint":
|
|
92233
|
+
case "背景图":
|
|
92234
|
+
chart=new BackgroundPaint();
|
|
92235
|
+
chart.Canvas=this.Canvas;
|
|
92236
|
+
chart.ChartBorder=this.Frame.ChartBorder;
|
|
92237
|
+
chart.ChartFrame=this.Frame;
|
|
92238
|
+
chart.HQChart=this;
|
|
92239
|
+
chart.SetOption(option);
|
|
92240
|
+
this.ExtendChartPaint.push(chart);
|
|
92241
|
+
return chart;
|
|
92333
92242
|
default:
|
|
92334
92243
|
chart=g_ExtendChartPaintFactory.Create(name);
|
|
92335
92244
|
if (!chart) return null;
|
|
@@ -132580,19 +132489,21 @@ function JSReportChartContainer(uielement)
|
|
|
132580
132489
|
}
|
|
132581
132490
|
break;
|
|
132582
132491
|
case 38: //up
|
|
132583
|
-
var result=this.MoveSelectedRow(-1);
|
|
132492
|
+
var result=this.MoveSelectedRow(-1, {EnablePageCycle: this.PageUpDownCycle});
|
|
132584
132493
|
if (result)
|
|
132585
132494
|
{
|
|
132586
132495
|
if (result.Redraw) this.Draw();
|
|
132587
132496
|
if (result.Update) this.DelayUpdateStockData();
|
|
132497
|
+
this.MoveSelectedRowEvent(result.OldIndex, result.NewIndex);
|
|
132588
132498
|
}
|
|
132589
132499
|
break;
|
|
132590
132500
|
case 40: //down
|
|
132591
|
-
var result=this.MoveSelectedRow(1)
|
|
132501
|
+
var result=this.MoveSelectedRow(1, {EnablePageCycle: this.PageUpDownCycle})
|
|
132592
132502
|
if (result)
|
|
132593
132503
|
{
|
|
132594
132504
|
if (result.Redraw) this.Draw();
|
|
132595
132505
|
if (result.Update) this.DelayUpdateStockData();
|
|
132506
|
+
this.MoveSelectedRowEvent(result.OldIndex, result.NewIndex);
|
|
132596
132507
|
}
|
|
132597
132508
|
break;
|
|
132598
132509
|
case 37: //left
|
|
@@ -133753,13 +133664,19 @@ function JSReportChartContainer(uielement)
|
|
|
133753
133664
|
return false;
|
|
133754
133665
|
}
|
|
133755
133666
|
|
|
133756
|
-
|
|
133667
|
+
// option={ EnablePageCycle: true/false(是否循环翻页) }
|
|
133668
|
+
this.MoveSelectedRow=function(step, option)
|
|
133757
133669
|
{
|
|
133758
133670
|
var chart=this.ChartPaint[0];
|
|
133759
133671
|
if (!chart) return null;
|
|
133760
133672
|
if (!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return null;
|
|
133673
|
+
var bPageCycle=false;
|
|
133674
|
+
if (option)
|
|
133675
|
+
{
|
|
133676
|
+
if (IFrameSplitOperator.IsBool(option.EnablePageCycle)) bPageCycle=option.EnablePageCycle;
|
|
133677
|
+
}
|
|
133761
133678
|
|
|
133762
|
-
var result={ Redraw:false, Update:false }; //Redraw=重绘, Update=更新数据
|
|
133679
|
+
var result={ Redraw:false, Update:false, OldIndex:-1, NewIndex:-1 }; //Redraw=重绘, Update=更新数据
|
|
133763
133680
|
|
|
133764
133681
|
if (chart.MultiSelectModel==1)
|
|
133765
133682
|
{
|
|
@@ -133861,6 +133778,7 @@ function JSReportChartContainer(uielement)
|
|
|
133861
133778
|
var pageStatus=chart.GetCurrentPageStatus();
|
|
133862
133779
|
var pageSize=pageStatus.End-pageStatus.Start+1;
|
|
133863
133780
|
var selected=pageStatus.SelectedRow;
|
|
133781
|
+
result.OldIndex=this.Data.YOffset+selected;
|
|
133864
133782
|
if (step>0)
|
|
133865
133783
|
{
|
|
133866
133784
|
selected+=step;
|
|
@@ -133868,6 +133786,7 @@ function JSReportChartContainer(uielement)
|
|
|
133868
133786
|
chart.SelectedRow=selected;
|
|
133869
133787
|
chart.SelectedFixedRow=-1;
|
|
133870
133788
|
result.Redraw=true;
|
|
133789
|
+
result.NewIndex=this.Data.YOffset+selected;
|
|
133871
133790
|
return result;
|
|
133872
133791
|
}
|
|
133873
133792
|
else if (step<0)
|
|
@@ -133881,6 +133800,7 @@ function JSReportChartContainer(uielement)
|
|
|
133881
133800
|
|
|
133882
133801
|
chart.SelectedRow=selected;
|
|
133883
133802
|
chart.SelectedFixedRow=-1;
|
|
133803
|
+
result.NewIndex=this.Data.YOffset+selected;
|
|
133884
133804
|
result.Redraw=true;
|
|
133885
133805
|
return result;
|
|
133886
133806
|
}
|
|
@@ -133890,18 +133810,23 @@ function JSReportChartContainer(uielement)
|
|
|
133890
133810
|
var pageStatus=chart.GetCurrentPageStatus();
|
|
133891
133811
|
var pageSize=pageStatus.PageSize;
|
|
133892
133812
|
var selected=pageStatus.SelectedRow;
|
|
133813
|
+
result.OldIndex=pageStatus.SelectedRow;
|
|
133893
133814
|
if (step>0)
|
|
133894
133815
|
{
|
|
133895
133816
|
if (selected<0 || selected<pageStatus.Start || selected>pageStatus.End)
|
|
133896
133817
|
{
|
|
133897
133818
|
chart.SelectedRow=pageStatus.Start;
|
|
133898
133819
|
result.Redraw=true;
|
|
133820
|
+
result.NewIndex=pageStatus.Start;
|
|
133899
133821
|
return result;
|
|
133900
133822
|
}
|
|
133901
133823
|
|
|
133902
133824
|
var offset=this.Data.YOffset;
|
|
133903
133825
|
for(var i=0;i<step;++i)
|
|
133904
133826
|
{
|
|
133827
|
+
if (selected+1>=this.Data.Data.length && !bPageCycle)
|
|
133828
|
+
break;
|
|
133829
|
+
|
|
133905
133830
|
++selected;
|
|
133906
133831
|
if (selected>pageStatus.End) ++offset;
|
|
133907
133832
|
|
|
@@ -133917,7 +133842,7 @@ function JSReportChartContainer(uielement)
|
|
|
133917
133842
|
|
|
133918
133843
|
chart.SelectedRow=selected;
|
|
133919
133844
|
this.Data.YOffset=offset;
|
|
133920
|
-
|
|
133845
|
+
result.NewIndex=selected;
|
|
133921
133846
|
return result;
|
|
133922
133847
|
}
|
|
133923
133848
|
else if (step<0)
|
|
@@ -133926,6 +133851,7 @@ function JSReportChartContainer(uielement)
|
|
|
133926
133851
|
{
|
|
133927
133852
|
chart.SelectedRow=pageStatus.End;
|
|
133928
133853
|
result.Redraw=true;
|
|
133854
|
+
result.NewIndex=pageStatus.End;
|
|
133929
133855
|
return result;
|
|
133930
133856
|
}
|
|
133931
133857
|
|
|
@@ -133933,6 +133859,9 @@ function JSReportChartContainer(uielement)
|
|
|
133933
133859
|
var offset=this.Data.YOffset;
|
|
133934
133860
|
for(var i=0;i<step;++i)
|
|
133935
133861
|
{
|
|
133862
|
+
if (selected<=0 && !bPageCycle) //不能循环翻页
|
|
133863
|
+
break;
|
|
133864
|
+
|
|
133936
133865
|
--selected;
|
|
133937
133866
|
if (selected<pageStatus.Start) --offset;
|
|
133938
133867
|
|
|
@@ -133949,6 +133878,7 @@ function JSReportChartContainer(uielement)
|
|
|
133949
133878
|
|
|
133950
133879
|
chart.SelectedRow=selected;
|
|
133951
133880
|
this.Data.YOffset=offset;
|
|
133881
|
+
result.NewIndex=selected;
|
|
133952
133882
|
|
|
133953
133883
|
return result;
|
|
133954
133884
|
}
|
|
@@ -133957,6 +133887,36 @@ function JSReportChartContainer(uielement)
|
|
|
133957
133887
|
return null;
|
|
133958
133888
|
}
|
|
133959
133889
|
|
|
133890
|
+
this.MoveSelectedRowEvent=function(oldIndex, newIndex)
|
|
133891
|
+
{
|
|
133892
|
+
var chart=this.ChartPaint[0];
|
|
133893
|
+
if (!chart) return null;
|
|
133894
|
+
|
|
133895
|
+
if (oldIndex==newIndex) return;
|
|
133896
|
+
|
|
133897
|
+
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_MOVE_SELECTED_REPORT_ROW);
|
|
133898
|
+
if (!event || !event.Callback) return;
|
|
133899
|
+
|
|
133900
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(chart.Data.Data)) return;
|
|
133901
|
+
var arySymbol=chart.Data.Data;
|
|
133902
|
+
|
|
133903
|
+
var oldData=null, newData=null;
|
|
133904
|
+
if (oldIndex>=0 && oldIndex<arySymbol.length)
|
|
133905
|
+
{
|
|
133906
|
+
var symbol=arySymbol[oldIndex];
|
|
133907
|
+
oldData={ Symbol:symbol, Index:oldIndex };
|
|
133908
|
+
}
|
|
133909
|
+
|
|
133910
|
+
if (newIndex>=0 && newIndex<arySymbol.length)
|
|
133911
|
+
{
|
|
133912
|
+
var symbol=arySymbol[newIndex];
|
|
133913
|
+
newData={ Symbol:symbol, Index:newIndex };
|
|
133914
|
+
}
|
|
133915
|
+
|
|
133916
|
+
var endData={ Old:oldData, Now:newData };
|
|
133917
|
+
event.Callback(event, endData, this);
|
|
133918
|
+
}
|
|
133919
|
+
|
|
133960
133920
|
//左右移动
|
|
133961
133921
|
this.MoveXOffset=function(step)
|
|
133962
133922
|
{
|
|
@@ -143437,7 +143397,7 @@ function ScrollBarBGChart()
|
|
|
143437
143397
|
|
|
143438
143398
|
|
|
143439
143399
|
|
|
143440
|
-
var HQCHART_VERSION="1.1.
|
|
143400
|
+
var HQCHART_VERSION="1.1.14438";
|
|
143441
143401
|
|
|
143442
143402
|
function PrintHQChartVersion()
|
|
143443
143403
|
{
|