hqchart 1.1.14416 → 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 +61 -59
- 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 +256 -308
- package/src/jscommon/umychart.resource/css/tools.css +2 -0
- package/src/jscommon/umychart.testdata/DayMinute/im2503.cf.1day.minute.export.js +6 -0
- package/src/jscommon/umychart.testdata/DayMinute/im2503.cf.1day.minute.js +1348 -0
- package/src/jscommon/umychart.testdata/DayMinute/im2503.cf.1day.minute.json +1348 -0
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +257 -309
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +277 -312
|
@@ -4246,6 +4246,12 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4246
4246
|
if (IFrameSplitOperator.IsNumber(item.WheelYMove)) chart.EnableYDrag.WheelYMove=item.WheelYMove;
|
|
4247
4247
|
}
|
|
4248
4248
|
|
|
4249
|
+
if (option.EnableXDrag)
|
|
4250
|
+
{
|
|
4251
|
+
var item=option.EnableXDrag;
|
|
4252
|
+
if (IFrameSplitOperator.IsBool(item.Bottom)) chart.EnableXDrag.Bottom=item.Bottom;
|
|
4253
|
+
}
|
|
4254
|
+
|
|
4249
4255
|
if (option.KLineTooltip)
|
|
4250
4256
|
{
|
|
4251
4257
|
var item=option.KLineTooltip;
|
|
@@ -5810,6 +5816,13 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
5810
5816
|
return [];
|
|
5811
5817
|
}
|
|
5812
5818
|
|
|
5819
|
+
//手动更新指标 aryIndex=[ {ID:主图指标ID, OverlayID:叠加指标ID }] ,option={ Draw:true/false }
|
|
5820
|
+
this.UpdateWindowIndexV2=function(aryIndex, option)
|
|
5821
|
+
{
|
|
5822
|
+
if (this.JSChartContainer && typeof(this.JSChartContainer.UpdateWindowIndexV2)=='function')
|
|
5823
|
+
return this.JSChartContainer.UpdateWindowIndexV2(aryIndex, option);
|
|
5824
|
+
}
|
|
5825
|
+
|
|
5813
5826
|
this.ChangeInstructionIndex=function(indexName, option)
|
|
5814
5827
|
{
|
|
5815
5828
|
if (this.JSChartContainer && typeof(this.JSChartContainer.ChangeInstructionIndex)=='function')
|
|
@@ -6981,7 +6994,9 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
6981
6994
|
{
|
|
6982
6995
|
Left:false, Right:false, //是否可以拖拽缩放Y轴最大最小值
|
|
6983
6996
|
Wheel:false, WheelYMove:5 //是否可以滚轴缩放Y轴最大最小值
|
|
6984
|
-
};
|
|
6997
|
+
};
|
|
6998
|
+
|
|
6999
|
+
this.EnableXDrag={ Bottom:true }; //X轴拖动缩放
|
|
6985
7000
|
|
|
6986
7001
|
this.EnableZoomIndexWindow=false; //是否支持双击缩放附图窗口
|
|
6987
7002
|
this.EnableVerifyRecvData=false; //是否检测接收到的数据
|
|
@@ -7817,14 +7832,17 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
7817
7832
|
|
|
7818
7833
|
var drag=
|
|
7819
7834
|
{
|
|
7820
|
-
|
|
7821
|
-
|
|
7835
|
+
Click:{},
|
|
7836
|
+
LastMove:{}, //最后移动的位置
|
|
7822
7837
|
CurrentMove:{}, //当前的移动
|
|
7838
|
+
IsInFrameBottom:false,
|
|
7823
7839
|
};
|
|
7824
7840
|
|
|
7841
|
+
|
|
7842
|
+
|
|
7825
7843
|
drag.Click.X=e.clientX;
|
|
7826
7844
|
drag.Click.Y=e.clientY;
|
|
7827
|
-
drag.Click.IsInFrameBottom=this.Frame.PtInFrameBottom(x,y); //是否点击在X轴上
|
|
7845
|
+
if (this.EnableXDrag.Bottom) drag.Click.IsInFrameBottom=this.Frame.PtInFrameBottom(x,y); //是否点击在X轴上
|
|
7828
7846
|
drag.LastMove.X=e.clientX;
|
|
7829
7847
|
drag.LastMove.Y=e.clientY;
|
|
7830
7848
|
|
|
@@ -9852,6 +9870,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
9852
9870
|
for(var i=0;i<this.ExtendChartPaint.length;++i)
|
|
9853
9871
|
{
|
|
9854
9872
|
var item=this.ExtendChartPaint[i];
|
|
9873
|
+
|
|
9855
9874
|
if (item.IsCallbackDraw)
|
|
9856
9875
|
{
|
|
9857
9876
|
if (["KLineYAxisBGPaint","DepthMapPaint","BackgroundPaint","MinuteBackgroundPaint", "SessionBreaksPaint"].includes(item.ClassName))
|
|
@@ -10526,7 +10545,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
10526
10545
|
}
|
|
10527
10546
|
}
|
|
10528
10547
|
|
|
10529
|
-
|
|
10548
|
+
//X轴拖动缩放
|
|
10549
|
+
if (this.ClassName=="KLineChartContainer" && this.EnableXDrag.Bottom && this.Frame.PtInFrameBottom(x,y))
|
|
10530
10550
|
{
|
|
10531
10551
|
mouseStatus={ Cursor:"ew-resize", Name:"FrameButtom"};
|
|
10532
10552
|
JSConsole.Chart.Log("[JSChartContainer::OnMouseMove] frame bottom ");
|
|
@@ -14498,69 +14518,82 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
14498
14518
|
}
|
|
14499
14519
|
}
|
|
14500
14520
|
|
|
14501
|
-
|
|
14521
|
+
//手动更新指标 [ {ID:主图指标ID, OverlayID:叠加指标ID }]
|
|
14522
|
+
this.UpdateWindowIndexV2=function(aryIndex, option)
|
|
14502
14523
|
{
|
|
14524
|
+
if (!this.Frame || !this.Frame.SubFrame) return false;
|
|
14525
|
+
|
|
14526
|
+
var kData=this.GetKData();
|
|
14527
|
+
if (!kData || !IFrameSplitOperator.IsNonEmptyArray(kData.Data)) return false;
|
|
14528
|
+
|
|
14503
14529
|
if (!IFrameSplitOperator.IsNonEmptyArray(aryIndex)) return false;
|
|
14504
14530
|
|
|
14505
|
-
var
|
|
14506
|
-
|
|
14531
|
+
var setMainIndex=new Set(); //主图指标
|
|
14532
|
+
var setOverlayIndex=new Set(); //附图指标
|
|
14533
|
+
|
|
14534
|
+
for(var i=0;aryIndex.length;++i)
|
|
14507
14535
|
{
|
|
14508
|
-
var item=
|
|
14536
|
+
var item=aryIndex[i];
|
|
14509
14537
|
if (!item) continue;
|
|
14510
|
-
if (!item.ID) continue;
|
|
14511
14538
|
|
|
14512
|
-
if (
|
|
14513
|
-
|
|
14514
|
-
aryID.push(i);
|
|
14515
|
-
}
|
|
14539
|
+
if (item.ID) setMainIndex.set(item.ID);
|
|
14540
|
+
if (item.OverlayID) setOverlayIndex.set(item.OverlayID);
|
|
14516
14541
|
}
|
|
14517
14542
|
|
|
14518
|
-
if (
|
|
14543
|
+
if (setMainIndex.size<=0 && setOverlayIndex.size<0) return false;
|
|
14519
14544
|
|
|
14545
|
+
//K线数据
|
|
14546
|
+
var bindData=new ChartData();
|
|
14547
|
+
if (kData) bindData.Data=kData.Data;
|
|
14520
14548
|
if (this.IsKLineContainer()) //K线
|
|
14521
14549
|
{
|
|
14522
|
-
var bindData=new ChartData();
|
|
14523
|
-
bindData.Data=this.SourceData.Data;
|
|
14524
14550
|
bindData.Period=this.Period;
|
|
14525
14551
|
bindData.Right=this.Right;
|
|
14552
|
+
}
|
|
14526
14553
|
|
|
14527
|
-
|
|
14554
|
+
//主图指标
|
|
14555
|
+
if (setMainIndex.size>0)
|
|
14556
|
+
{
|
|
14557
|
+
for(var i=0;i<this.WindowIndex.length;++i)
|
|
14528
14558
|
{
|
|
14559
|
+
var item=this.WindowIndex[i];
|
|
14560
|
+
if (!item) continue;
|
|
14529
14561
|
|
|
14562
|
+
if (setMainIndex.has(item.ID))
|
|
14563
|
+
{
|
|
14564
|
+
this.BindIndexData(i,bindData);
|
|
14565
|
+
}
|
|
14530
14566
|
}
|
|
14531
|
-
|
|
14567
|
+
}
|
|
14568
|
+
|
|
14569
|
+
//叠加指标
|
|
14570
|
+
if (setOverlayIndex.size>0)
|
|
14571
|
+
{
|
|
14572
|
+
for(var i=0;i<this.Frame.SubFrame.length;++i)
|
|
14532
14573
|
{
|
|
14533
|
-
|
|
14574
|
+
var item=this.Frame.SubFrame[i];
|
|
14575
|
+
for(var j=0; j<item.OverlayIndex.length; ++j)
|
|
14534
14576
|
{
|
|
14535
|
-
var
|
|
14536
|
-
bindData.Data=rightData;
|
|
14537
|
-
}
|
|
14577
|
+
var overlayItem=item.OverlayIndex[j];
|
|
14538
14578
|
|
|
14539
|
-
|
|
14540
|
-
|
|
14541
|
-
|
|
14542
|
-
|
|
14579
|
+
if (setOverlayIndex.has(overlayItem.Identify))
|
|
14580
|
+
{
|
|
14581
|
+
this.BindOverlayIndexData(overlayItem,i,hisData)
|
|
14582
|
+
}
|
|
14543
14583
|
}
|
|
14544
14584
|
}
|
|
14545
14585
|
}
|
|
14546
|
-
else if (this.IsMinuteContainer()) //分时图
|
|
14547
|
-
{
|
|
14548
|
-
var bindData=this.SourceData;
|
|
14549
|
-
}
|
|
14550
|
-
else
|
|
14551
|
-
{
|
|
14552
|
-
return;
|
|
14553
|
-
}
|
|
14554
14586
|
|
|
14555
|
-
|
|
14556
|
-
|
|
14587
|
+
var bDraw=true;
|
|
14588
|
+
if (option && option.Draw===false) bDraw=false;
|
|
14589
|
+
if (bDraw)
|
|
14557
14590
|
{
|
|
14558
|
-
this.
|
|
14591
|
+
this.UpdataDataoffset(); //更新数据偏移
|
|
14592
|
+
this.UpdateFrameMaxMin(); //调整坐标最大 最小值
|
|
14593
|
+
this.Draw();
|
|
14559
14594
|
}
|
|
14560
14595
|
|
|
14561
|
-
|
|
14562
|
-
this.UpdateFrameMaxMin(); //调整坐标最大 最小值
|
|
14563
|
-
this.Draw();
|
|
14596
|
+
return true;
|
|
14564
14597
|
}
|
|
14565
14598
|
|
|
14566
14599
|
this.GetKData=function()
|
|
@@ -48339,6 +48372,25 @@ function IExtendChartPainting()
|
|
|
48339
48372
|
{
|
|
48340
48373
|
return GetFontHeight(this.Canvas, font, "擎");
|
|
48341
48374
|
}
|
|
48375
|
+
|
|
48376
|
+
this.SetFillStyle=function(color, x0, y0, x1, y1)
|
|
48377
|
+
{
|
|
48378
|
+
if (Array.isArray(color))
|
|
48379
|
+
{
|
|
48380
|
+
let gradient = this.Canvas.createLinearGradient(x0, y0, x1, y1);
|
|
48381
|
+
var offset=1/(color.length-1);
|
|
48382
|
+
for(var i=0; i<color.length; ++i)
|
|
48383
|
+
{
|
|
48384
|
+
var value=i*offset;
|
|
48385
|
+
gradient.addColorStop(value, color[i]);
|
|
48386
|
+
}
|
|
48387
|
+
this.Canvas.fillStyle=gradient;
|
|
48388
|
+
}
|
|
48389
|
+
else
|
|
48390
|
+
{
|
|
48391
|
+
this.Canvas.fillStyle=color;
|
|
48392
|
+
}
|
|
48393
|
+
}
|
|
48342
48394
|
}
|
|
48343
48395
|
|
|
48344
48396
|
//K线Tooltip, 显示在左边或右边
|
|
@@ -52508,7 +52560,7 @@ function KLineYAxisBGPaint()
|
|
|
52508
52560
|
}
|
|
52509
52561
|
|
|
52510
52562
|
|
|
52511
|
-
//背景图 支持横屏
|
|
52563
|
+
//背景图 支持横屏 新版本
|
|
52512
52564
|
function BackgroundPaint()
|
|
52513
52565
|
{
|
|
52514
52566
|
this.newMethod=IExtendChartPainting; //派生
|
|
@@ -52520,327 +52572,210 @@ function BackgroundPaint()
|
|
|
52520
52572
|
this.IsDynamic=false;
|
|
52521
52573
|
this.IsCallbackDraw=true; //在回调函数里绘制, 不在Draw()中绘制
|
|
52522
52574
|
|
|
52575
|
+
this.IsDrawAllFrame=false; //全部的指标框都画
|
|
52576
|
+
this.SetDrawFrameID=new Set([0]); //指定几个指标框画
|
|
52577
|
+
|
|
52523
52578
|
this.FrameID=0;
|
|
52524
|
-
this.Data;
|
|
52579
|
+
this.Data; //背景数据[ { Start:{ Date:, Time: }, End:{ Date:, Time }, Color:['rgb(44,55,255)','rgb(200,55,255)'] }]
|
|
52580
|
+
this.IsShow=true;
|
|
52581
|
+
this.SubFrame=null;
|
|
52582
|
+
|
|
52525
52583
|
this.ID=Guid(); //唯一的ID
|
|
52526
|
-
|
|
52527
|
-
/*
|
|
52528
|
-
this.Data=
|
|
52529
|
-
[
|
|
52530
|
-
{ Start:{ Date:20181201 }, End:{ Date:20181230 }, Color:'rgb(44,55,44)' } ,
|
|
52531
|
-
{ Start:{ Date:20190308 }, End:{ Date:20190404 }, Color:['rgb(44,55,255)','rgb(200,55,255)'] }
|
|
52532
|
-
]
|
|
52533
|
-
*/
|
|
52534
|
-
|
|
52535
|
-
this.ChartSubFrame;
|
|
52536
|
-
this.ChartBorder;
|
|
52537
|
-
this.KData;
|
|
52538
|
-
this.Period;
|
|
52539
|
-
this.XPointCount=0;
|
|
52584
|
+
this.HQChart;
|
|
52540
52585
|
|
|
52541
52586
|
this.SetOption=function(option) //设置
|
|
52542
52587
|
{
|
|
52543
|
-
if (option
|
|
52588
|
+
if (!option) return;
|
|
52589
|
+
|
|
52590
|
+
if (IFrameSplitOperator.IsNumber(option.FrameID)) this.FrameID=option.FrameID;
|
|
52544
52591
|
if (IFrameSplitOperator.IsObjectExist(option.ID)) this.ID=option.ID;
|
|
52592
|
+
if (IFrameSplitOperator.IsBool(option.IsDrawAllFrame)) this.IsDrawAllFrame=option.IsDrawAllFrame;
|
|
52593
|
+
if (IFrameSplitOperator.IsNonEmptyArray(option.AryFrameID)) this.SetDrawFrameID=new Set(option.AryFrameID);
|
|
52545
52594
|
}
|
|
52546
52595
|
|
|
52547
52596
|
this.Draw=function()
|
|
52548
52597
|
{
|
|
52549
|
-
|
|
52550
|
-
|
|
52551
|
-
|
|
52552
|
-
if (!
|
|
52553
|
-
|
|
52554
|
-
this.
|
|
52555
|
-
|
|
52556
|
-
this.
|
|
52557
|
-
this.
|
|
52558
|
-
if (!this.
|
|
52559
|
-
|
|
52560
|
-
var
|
|
52561
|
-
|
|
52562
|
-
|
|
52563
|
-
|
|
52564
|
-
|
|
52565
|
-
var
|
|
52566
|
-
|
|
52567
|
-
var
|
|
52568
|
-
var
|
|
52569
|
-
|
|
52570
|
-
|
|
52571
|
-
|
|
52572
|
-
var bottom=this.ChartBorder.GetBottomEx();
|
|
52573
|
-
var top=this.ChartBorder.GetTopEx();
|
|
52574
|
-
var height=this.ChartBorder.GetHeightEx();
|
|
52575
|
-
if (isHScreen)
|
|
52598
|
+
this.SubFrame=null;
|
|
52599
|
+
|
|
52600
|
+
if (this.FrameID<0) return;
|
|
52601
|
+
if (!this.HQChart) return;
|
|
52602
|
+
if (!this.ChartFrame || !IFrameSplitOperator.IsNonEmptyArray(this.ChartFrame.SubFrame)) return;
|
|
52603
|
+
if (!this.IsShow) return;
|
|
52604
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.Data)) return;
|
|
52605
|
+
if (!this.ChartFrame.SubFrame[this.FrameID]) return;
|
|
52606
|
+
this.SubFrame=this.ChartFrame.SubFrame[this.FrameID].Frame;
|
|
52607
|
+
if (!this.SubFrame) return;
|
|
52608
|
+
|
|
52609
|
+
var kData=this.HQChart.GetKData();
|
|
52610
|
+
if (!kData || !IFrameSplitOperator.IsNonEmptyArray(kData.Data)) return;
|
|
52611
|
+
|
|
52612
|
+
var bHScreen=(this.SubFrame.IsHScreen===true);
|
|
52613
|
+
this.IsHScreen=bHScreen;
|
|
52614
|
+
var isMinute=this.SubFrame.IsMinuteFrame();
|
|
52615
|
+
var dataWidth=this.SubFrame.DataWidth;
|
|
52616
|
+
var distanceWidth=this.SubFrame.DistanceWidth;
|
|
52617
|
+
var xPointCount=this.SubFrame.XPointCount;
|
|
52618
|
+
|
|
52619
|
+
var border=this.SubFrame.GetBorder();
|
|
52620
|
+
if (bHScreen)
|
|
52576
52621
|
{
|
|
52577
|
-
|
|
52578
|
-
|
|
52579
|
-
|
|
52622
|
+
var chartright=border.BottomEx;
|
|
52623
|
+
var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
|
|
52624
|
+
}
|
|
52625
|
+
else
|
|
52626
|
+
{
|
|
52627
|
+
var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
|
|
52628
|
+
var chartright=border.RightEx;
|
|
52580
52629
|
}
|
|
52581
52630
|
|
|
52582
|
-
|
|
52631
|
+
var mapBG=new Map(); //key= index, Value={ Start:{Left, Center, Right, Item:}, End:{ Left, Center, Right, Item:} }
|
|
52632
|
+
var startIndex=kData.DataOffset;
|
|
52633
|
+
for(var i=startIndex,j=0;i<kData.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
|
|
52583
52634
|
{
|
|
52584
|
-
var
|
|
52585
|
-
var
|
|
52586
|
-
if (!
|
|
52635
|
+
var kItem=kData.Data[i];
|
|
52636
|
+
var aryFind=this.FindMatchData(kItem);
|
|
52637
|
+
if (!aryFind) continue;
|
|
52587
52638
|
|
|
52588
|
-
if (
|
|
52639
|
+
if (isMinute)
|
|
52589
52640
|
{
|
|
52590
|
-
var
|
|
52591
|
-
|
|
52592
|
-
|
|
52593
|
-
var offset=1/item.Color.length;
|
|
52594
|
-
for(var i in item.Color)
|
|
52595
|
-
{
|
|
52596
|
-
gradient.addColorStop(i*offset, item.Color[i]);
|
|
52597
|
-
}
|
|
52598
|
-
this.Canvas.fillStyle=gradient;
|
|
52641
|
+
var x=this.ChartFrame.GetXFromIndex(j);
|
|
52642
|
+
var left=x;
|
|
52643
|
+
var right=x;
|
|
52599
52644
|
}
|
|
52600
52645
|
else
|
|
52601
52646
|
{
|
|
52602
|
-
|
|
52647
|
+
var left=xOffset;
|
|
52648
|
+
var right=xOffset+dataWidth;
|
|
52649
|
+
var x=left+(right-left)/2;
|
|
52650
|
+
}
|
|
52651
|
+
|
|
52652
|
+
for(var k=0;k<aryFind.length;++k)
|
|
52653
|
+
{
|
|
52654
|
+
var findItem=aryFind[k];
|
|
52655
|
+
if (mapBG.has(findItem.Index))
|
|
52656
|
+
{
|
|
52657
|
+
var bgItem=mapBG.get(findItem.Index);
|
|
52658
|
+
bgItem.End.Left=left;
|
|
52659
|
+
bgItem.End.Right=right;
|
|
52660
|
+
bgItem.End.Item=findItem.Item;
|
|
52661
|
+
}
|
|
52662
|
+
else
|
|
52663
|
+
{
|
|
52664
|
+
mapBG.set(findItem.Index, { Item:findItem.Item, Start:{ Left:left, Right:right, Item:findItem.Item }, End:{ Left:left, Right:right, Item:findItem.Item }})
|
|
52665
|
+
}
|
|
52603
52666
|
}
|
|
52667
|
+
}
|
|
52604
52668
|
|
|
52605
|
-
|
|
52606
|
-
|
|
52669
|
+
if (mapBG.size>0)
|
|
52670
|
+
{
|
|
52671
|
+
this.Canvas.save();
|
|
52672
|
+
//this.ClipClient(bHScreen);
|
|
52673
|
+
|
|
52674
|
+
this.DrawBG(mapBG);
|
|
52675
|
+
|
|
52676
|
+
this.Canvas.restore();
|
|
52607
52677
|
}
|
|
52608
52678
|
}
|
|
52609
52679
|
|
|
52610
|
-
this.
|
|
52680
|
+
this.FindMatchData=function(kItem)
|
|
52611
52681
|
{
|
|
52612
|
-
|
|
52613
|
-
|
|
52614
|
-
var aryData=[];
|
|
52682
|
+
var aryFind=[];
|
|
52615
52683
|
for(var i=0;i<this.Data.length;++i)
|
|
52616
52684
|
{
|
|
52617
52685
|
var item=this.Data[i];
|
|
52618
|
-
var
|
|
52619
|
-
|
|
52620
|
-
|
|
52621
|
-
|
|
52622
|
-
if (item.Start.Date<first.Date && item.End.Date>end.Date)
|
|
52686
|
+
var start=item.Start;
|
|
52687
|
+
var end=item.End;
|
|
52688
|
+
var bMatch=false;
|
|
52689
|
+
if (IFrameSplitOperator.IsNumber(kItem.Date) && IFrameSplitOperator.IsNumber(kItem.Time))
|
|
52623
52690
|
{
|
|
52624
|
-
|
|
52625
|
-
|
|
52691
|
+
if (kItem.Date>start.Date && kItem.Date<end.Date)
|
|
52692
|
+
{
|
|
52693
|
+
bMatch=true;
|
|
52694
|
+
}
|
|
52695
|
+
else if (kItem.Date==start.Date && kItem.Date==end.Date)
|
|
52696
|
+
{
|
|
52697
|
+
if (kItem.Time>=start.Time && kItem.Time<=end.Time)bMatch=true;
|
|
52698
|
+
}
|
|
52699
|
+
else if (kItem.Date==start.Date)
|
|
52700
|
+
{
|
|
52701
|
+
if (kItem.Time>=start.Time) bMatch=true;
|
|
52702
|
+
}
|
|
52703
|
+
else if (kItem.Date==end.Date)
|
|
52704
|
+
{
|
|
52705
|
+
if ((kItem.Time<=end.Time)) bMatch=true;
|
|
52706
|
+
}
|
|
52626
52707
|
}
|
|
52627
|
-
|
|
52628
|
-
|
|
52629
|
-
if (showItem.Start || showItem.End)
|
|
52708
|
+
else if (IFrameSplitOperator.IsNumber(kItem.Date) && !IFrameSplitOperator.IsNumber(kItem.Time))
|
|
52630
52709
|
{
|
|
52631
|
-
|
|
52632
|
-
aryData.push(showItem);
|
|
52710
|
+
if (kItem.Date>=start.Date && kItem.Date<=end.Date) bMatch=true;
|
|
52633
52711
|
}
|
|
52712
|
+
|
|
52713
|
+
if (bMatch) aryFind.push({ Index:i, Item:item });
|
|
52634
52714
|
}
|
|
52635
52715
|
|
|
52636
|
-
|
|
52637
|
-
|
|
52716
|
+
if (aryFind.Length<=0) return null;
|
|
52717
|
+
|
|
52718
|
+
return aryFind;
|
|
52638
52719
|
}
|
|
52639
52720
|
|
|
52640
|
-
this.
|
|
52721
|
+
this.DrawBG=function(mapBG)
|
|
52641
52722
|
{
|
|
52642
|
-
var
|
|
52643
|
-
var dataWidth=this.ChartSubFrame.DataWidth;
|
|
52644
|
-
var distanceWidth=this.ChartSubFrame.DistanceWidth;
|
|
52645
|
-
var xOffset=this.ChartBorder.GetLeft()+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
|
|
52646
|
-
if (isHScreen) xOffset=this.ChartBorder.GetTop()+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
|
|
52647
|
-
var chartright=this.ChartBorder.GetRight();
|
|
52648
|
-
if (isHScreen) chartright=this.ChartBorder.GetBottom();
|
|
52649
|
-
|
|
52650
|
-
var mapKLine={ Data:new Map() ,Start:null, End:null } ; //Key: date / date time, Value:索引
|
|
52651
|
-
for(var i=this.KData.DataOffset,j=0; i<this.KData.Data.length && j<this.XPointCount; ++i,++j,xOffset+=(dataWidth+distanceWidth))
|
|
52723
|
+
for(var mapItem of mapBG)
|
|
52652
52724
|
{
|
|
52653
|
-
var
|
|
52654
|
-
|
|
52655
|
-
|
|
52656
|
-
|
|
52657
|
-
var x=left+(right-left)/2;
|
|
52658
|
-
|
|
52659
|
-
if (j==0) mapKLine.XLeft=left;
|
|
52660
|
-
mapKLine.XRight=right;
|
|
52661
|
-
|
|
52662
|
-
var value={ Index:i, ShowIndex:j , X:x, Right:right, Left:left, Date:kItem.Date };
|
|
52663
|
-
if (ChartData.IsMinutePeriod(this.Period,true))
|
|
52664
|
-
{
|
|
52665
|
-
var key=`Date:${kItem.Date} Time:${kItem.Time}`;
|
|
52666
|
-
value.Time=kItem.Time;
|
|
52667
|
-
}
|
|
52668
|
-
else
|
|
52725
|
+
var bgItem=mapItem[1];
|
|
52726
|
+
//this.DrawBGItem(this.SubFrame, bgItem);
|
|
52727
|
+
|
|
52728
|
+
for(var i=0;i<this.ChartFrame.SubFrame.length;++i)
|
|
52669
52729
|
{
|
|
52670
|
-
var
|
|
52730
|
+
var subFrame=this.ChartFrame.SubFrame[i].Frame;
|
|
52731
|
+
if (this.IsDrawAllFrame || this.SetDrawFrameID.has(i))
|
|
52732
|
+
{
|
|
52733
|
+
this.DrawBGItem(subFrame, bgItem);
|
|
52734
|
+
}
|
|
52671
52735
|
}
|
|
52672
|
-
|
|
52673
|
-
mapKLine.Data.set(key,value);
|
|
52674
|
-
|
|
52675
|
-
//保存下起始和结束位置
|
|
52676
|
-
if (j==0) mapKLine.Start=value;
|
|
52677
|
-
mapKLine.End=value;
|
|
52678
52736
|
}
|
|
52679
|
-
|
|
52680
|
-
return mapKLine;
|
|
52681
52737
|
}
|
|
52682
52738
|
|
|
52683
|
-
this.
|
|
52739
|
+
this.DrawBGItem=function(frame, bgItem)
|
|
52684
52740
|
{
|
|
52685
|
-
var
|
|
52686
|
-
|
|
52687
|
-
var bSingleDate=false;
|
|
52688
|
-
//JSConsole.Chart.Log('[BackgroundPaint::GetBGCoordinate] item ', item);
|
|
52689
|
-
if (isMinutePeriod)
|
|
52690
|
-
{
|
|
52691
|
-
if (item.Start && item.End && item.Start.Date==item.End.Date && item.Start.Time==item.End.Time) bSingleDate=true;
|
|
52692
|
-
}
|
|
52693
|
-
else
|
|
52694
|
-
{
|
|
52695
|
-
if (item.Start && item.End && item.Start.Date==item.End.Date) bSingleDate=true;
|
|
52696
|
-
}
|
|
52697
|
-
|
|
52698
|
-
if (bSingleDate)
|
|
52699
|
-
{
|
|
52700
|
-
if (isMinutePeriod)
|
|
52701
|
-
var key=`Date:${item.Start.Date} Time:${item.Start.Time}`;
|
|
52702
|
-
else
|
|
52703
|
-
var key=`Date:${item.Start.Date}`;
|
|
52704
|
-
|
|
52705
|
-
if (!kLineMap.Data.has(key)) return null;
|
|
52706
|
-
var findItem=kLineMap.Data.get(key);
|
|
52707
|
-
xLeft=findItem.Left;
|
|
52708
|
-
xRight=findItem.Right;
|
|
52709
|
-
return { Left:xLeft, Right:xRight, Width:xRight-xLeft };
|
|
52710
|
-
}
|
|
52711
|
-
|
|
52712
|
-
if (item.Start)
|
|
52741
|
+
var border=frame.GetBorder();
|
|
52742
|
+
if (this.IsHScreen)
|
|
52713
52743
|
{
|
|
52714
|
-
|
|
52715
|
-
|
|
52716
|
-
|
|
52717
|
-
var key=`Date:${item.Start.Date}`;
|
|
52718
|
-
|
|
52719
|
-
if (kLineMap.Data.has(key))
|
|
52720
|
-
{
|
|
52721
|
-
var findItem=kLineMap.Data.get(key);
|
|
52722
|
-
xLeft=findItem.Left;
|
|
52723
|
-
}
|
|
52724
|
-
else
|
|
52725
|
-
{
|
|
52726
|
-
if (isMinutePeriod)
|
|
52727
|
-
{
|
|
52728
|
-
if (item.Start.Date<kLineMap.Start.Date || (item.Start.Date==kLineMap.Start.Date && item.Start.Time<=kLineMap.Start.Time) )
|
|
52729
|
-
{
|
|
52730
|
-
xLeft=kLineMap.Start.Left;
|
|
52731
|
-
}
|
|
52732
|
-
else
|
|
52733
|
-
{
|
|
52734
|
-
for(var kItem of kLineMap.Data)
|
|
52735
|
-
{
|
|
52736
|
-
var value=kItem[1];
|
|
52737
|
-
if (value.Date>item.Start.Date || (value.Date==item.Start.Date && value.Time>item.Start.Time))
|
|
52738
|
-
{
|
|
52739
|
-
xLeft=value.Left;
|
|
52740
|
-
break;
|
|
52741
|
-
}
|
|
52742
|
-
}
|
|
52743
|
-
}
|
|
52744
|
-
}
|
|
52745
|
-
else
|
|
52746
|
-
{
|
|
52747
|
-
if (item.Start.Date<=kLineMap.Start.Date)
|
|
52748
|
-
{
|
|
52749
|
-
xLeft=kLineMap.Start.Left;
|
|
52750
|
-
}
|
|
52751
|
-
else
|
|
52752
|
-
{
|
|
52753
|
-
for(var kItem of kLineMap.Data)
|
|
52754
|
-
{
|
|
52755
|
-
var value=kItem[1];
|
|
52756
|
-
if (value.Date>item.Start.Date)
|
|
52757
|
-
{
|
|
52758
|
-
xLeft=value.Left;
|
|
52759
|
-
break;
|
|
52760
|
-
}
|
|
52761
|
-
}
|
|
52762
|
-
}
|
|
52763
|
-
}
|
|
52764
|
-
}
|
|
52744
|
+
var top=border.RightEx;
|
|
52745
|
+
var bottom=border.LeftEx;
|
|
52746
|
+
var left=border.Top;
|
|
52765
52747
|
}
|
|
52766
52748
|
else
|
|
52767
52749
|
{
|
|
52768
|
-
|
|
52750
|
+
var top=border.TopEx;
|
|
52751
|
+
var bottom=border.BottomEx;
|
|
52752
|
+
var left=border.Left;
|
|
52769
52753
|
}
|
|
52770
52754
|
|
|
52771
|
-
if (
|
|
52755
|
+
if (this.IsHScreen)
|
|
52772
52756
|
{
|
|
52773
|
-
|
|
52774
|
-
|
|
52775
|
-
|
|
52776
|
-
|
|
52777
|
-
|
|
52778
|
-
|
|
52779
|
-
|
|
52780
|
-
var findItem=kLineMap.Data.get(key);
|
|
52781
|
-
xRight=findItem.Right;
|
|
52782
|
-
}
|
|
52783
|
-
else
|
|
52784
|
-
{
|
|
52785
|
-
if (isMinutePeriod)
|
|
52786
|
-
{
|
|
52787
|
-
if (item.End.Date<kLineMap.Start.Date || (item.End.Date==kLineMap.Start.Date && item.End.Time<kLineMap.Start.Time)) return null;
|
|
52788
|
-
|
|
52789
|
-
if (item.End.Date<kLineMap.End.Date || (item.End.Date==kLineMap.End.Date && item.End.Time>=kLineMap.End.Time) )
|
|
52790
|
-
{
|
|
52791
|
-
xRight=kLineMap.End.Right;
|
|
52792
|
-
}
|
|
52793
|
-
else
|
|
52794
|
-
{
|
|
52795
|
-
var previousX=null;
|
|
52796
|
-
for(var kItem of kLineMap.Data)
|
|
52797
|
-
{
|
|
52798
|
-
var value=kItem[1];
|
|
52799
|
-
if (value.Date>item.End.Date || (value.Date==item.End.Date && value.Time>item.End.Time) )
|
|
52800
|
-
{
|
|
52801
|
-
xRight=previousX;
|
|
52802
|
-
break;
|
|
52803
|
-
}
|
|
52804
|
-
previousX=value.Right;
|
|
52805
|
-
}
|
|
52806
|
-
}
|
|
52807
|
-
}
|
|
52808
|
-
else
|
|
52809
|
-
{
|
|
52810
|
-
if (item.End.Date<kLineMap.Start.Date) return null;
|
|
52811
|
-
|
|
52812
|
-
if (item.End.Date<=kLineMap.End.Date)
|
|
52813
|
-
{
|
|
52814
|
-
xRight=kLineMap.End.Right;
|
|
52815
|
-
}
|
|
52816
|
-
else
|
|
52817
|
-
{
|
|
52818
|
-
var previousX=null;
|
|
52819
|
-
for(var kItem of kLineMap.Data)
|
|
52820
|
-
{
|
|
52821
|
-
var value=kItem[1];
|
|
52822
|
-
if (value.Date>item.End.Date)
|
|
52823
|
-
{
|
|
52824
|
-
xRight=previousX;
|
|
52825
|
-
break;
|
|
52826
|
-
}
|
|
52827
|
-
previousX=value.Right;
|
|
52828
|
-
}
|
|
52829
|
-
}
|
|
52830
|
-
}
|
|
52831
|
-
}
|
|
52757
|
+
this.SetFillStyle(bgItem.Item.Color,top,left,bottom,left);
|
|
52758
|
+
var start=bgItem.Start;
|
|
52759
|
+
var end=bgItem.End;
|
|
52760
|
+
var rtBG={ Left:bottom, Right:top, Top:start.Left, Bottom:end.Right };
|
|
52761
|
+
rtBG.Width=rtBG.Right-rtBG.Left;
|
|
52762
|
+
rtBG.Height=rtBG.Bottom-rtBG.Top;
|
|
52763
|
+
this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width),ToFixedRect(rtBG.Height));
|
|
52832
52764
|
}
|
|
52833
52765
|
else
|
|
52834
52766
|
{
|
|
52835
|
-
|
|
52767
|
+
this.SetFillStyle(bgItem.Item.Color, left,top, left,bottom);
|
|
52768
|
+
var start=bgItem.Start;
|
|
52769
|
+
var end=bgItem.End;
|
|
52770
|
+
var rtBG={ Left:start.Left, Right:end.Right, Top:top, Bottom:bottom };
|
|
52771
|
+
rtBG.Width=rtBG.Right-rtBG.Left;
|
|
52772
|
+
rtBG.Height=rtBG.Bottom-rtBG.Top;
|
|
52773
|
+
this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width),ToFixedRect(rtBG.Height));
|
|
52836
52774
|
}
|
|
52837
|
-
|
|
52838
|
-
if (xLeft==null || xRight==null) return null;
|
|
52839
|
-
|
|
52840
|
-
return { Left:xLeft, Right:xRight, Width:xRight-xLeft };
|
|
52841
52775
|
}
|
|
52842
52776
|
}
|
|
52843
52777
|
|
|
52778
|
+
|
|
52844
52779
|
function MinuteBackgroundPaint()
|
|
52845
52780
|
{
|
|
52846
52781
|
this.newMethod=IExtendChartPainting; //派生
|
|
@@ -62440,7 +62375,7 @@ function DynamicChartTitlePainting()
|
|
|
62440
62375
|
var left=positionInfo.Left;
|
|
62441
62376
|
var right=positionInfo.Right;
|
|
62442
62377
|
var bottom=positionInfo.Bottom;
|
|
62443
|
-
|
|
62378
|
+
var pixelRatio=GetDevicePixelRatio();
|
|
62444
62379
|
for(var i=0; i<this.Data.length; ++i)
|
|
62445
62380
|
{
|
|
62446
62381
|
var item=this.Data[i];
|
|
@@ -62459,7 +62394,9 @@ function DynamicChartTitlePainting()
|
|
|
62459
62394
|
if (titleItem.Name) text=titleItem.Name+":"+titleItem.Text;
|
|
62460
62395
|
else text=titleItem.Text;
|
|
62461
62396
|
|
|
62462
|
-
|
|
62397
|
+
if (IFrameSplitOperator.IsNumber(titleItem.LeftSpace)) left+=titleItem.LeftSpace*pixelRatio;
|
|
62398
|
+
|
|
62399
|
+
var space=this.ParamSpace*pixelRatio;
|
|
62463
62400
|
var indexTextWidth=this.Canvas.measureText(text).width; //标题+数值长度
|
|
62464
62401
|
var textWidth=indexTextWidth;
|
|
62465
62402
|
|
|
@@ -62535,7 +62472,7 @@ function DynamicChartTitlePainting()
|
|
|
62535
62472
|
if (dyTitle) text=dyTitle+":"+valueText;
|
|
62536
62473
|
else text=item.Name+":"+valueText;
|
|
62537
62474
|
}
|
|
62538
|
-
var space=this.ParamSpace*
|
|
62475
|
+
var space=this.ParamSpace*pixelRatio;
|
|
62539
62476
|
var textWidth=this.Canvas.measureText(text).width+space;
|
|
62540
62477
|
if ((left+textWidth)>right) break;
|
|
62541
62478
|
|
|
@@ -80111,12 +80048,14 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
80111
80048
|
var item=option.PopMinuteChart;
|
|
80112
80049
|
this.PopMinuteChart=new JSPopMinuteChart();
|
|
80113
80050
|
this.PopMinuteChart.Inital(this, item);
|
|
80051
|
+
this.PopMinuteChart.Create();
|
|
80114
80052
|
return true;
|
|
80115
80053
|
}
|
|
80116
80054
|
else if (option.KLine && option.KLine.KLineDoubleClick===true) //旧的格式 不要使用了
|
|
80117
80055
|
{
|
|
80118
80056
|
this.PopMinuteChart=new JSPopMinuteChart();
|
|
80119
80057
|
this.PopMinuteChart.Inital(this);
|
|
80058
|
+
this.PopMinuteChart.Create();
|
|
80120
80059
|
return true;
|
|
80121
80060
|
}
|
|
80122
80061
|
|
|
@@ -92298,6 +92237,15 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
92298
92237
|
chart.SetOption(option);
|
|
92299
92238
|
this.ExtendChartPaint.push(chart);
|
|
92300
92239
|
return chart;
|
|
92240
|
+
case "背景图":
|
|
92241
|
+
chart=new BackgroundPaint();
|
|
92242
|
+
chart.Canvas=this.Canvas;
|
|
92243
|
+
chart.ChartBorder=this.Frame.ChartBorder;
|
|
92244
|
+
chart.ChartFrame=this.Frame;
|
|
92245
|
+
chart.HQChart=this;
|
|
92246
|
+
chart.SetOption(option);
|
|
92247
|
+
this.ExtendChartPaint.push(chart);
|
|
92248
|
+
return chart;
|
|
92301
92249
|
default:
|
|
92302
92250
|
chart=g_ExtendChartPaintFactory.Create(name);
|
|
92303
92251
|
if (!chart) return null;
|
|
@@ -143405,7 +143353,7 @@ function ScrollBarBGChart()
|
|
|
143405
143353
|
|
|
143406
143354
|
|
|
143407
143355
|
|
|
143408
|
-
var HQCHART_VERSION="1.1.
|
|
143356
|
+
var HQCHART_VERSION="1.1.14431";
|
|
143409
143357
|
|
|
143410
143358
|
function PrintHQChartVersion()
|
|
143411
143359
|
{
|