hqchart 1.1.13335 → 1.1.13339
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 +33 -16
- package/package.json +1 -1
- package/src/jscommon/umychart.DialogDrawTool.js +58 -0
- package/src/jscommon/umychart.js +266 -50
- package/src/jscommon/umychart.resource/font/drawtool/demo_index.html +26 -3
- package/src/jscommon/umychart.resource/font/drawtool/iconfont.css +7 -3
- package/src/jscommon/umychart.resource/font/drawtool/iconfont.js +1 -1
- package/src/jscommon/umychart.resource/font/drawtool/iconfont.json +7 -0
- package/src/jscommon/umychart.resource/font/drawtool/iconfont.ttf +0 -0
- package/src/jscommon/umychart.resource/font/drawtool/iconfont.woff +0 -0
- package/src/jscommon/umychart.resource/font/drawtool/iconfont.woff2 +0 -0
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +267 -51
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +325 -51
|
@@ -4041,7 +4041,11 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4041
4041
|
return item;
|
|
4042
4042
|
}
|
|
4043
4043
|
|
|
4044
|
-
|
|
4044
|
+
/*
|
|
4045
|
+
{ Type: 1=K线柱子宽度不变 2=K线全部显示
|
|
4046
|
+
Redraw:是否重绘, XYSplit:是否重新计算分割线 }
|
|
4047
|
+
*/
|
|
4048
|
+
this.OnSize=function(option)
|
|
4045
4049
|
{
|
|
4046
4050
|
//画布大小通过div获取 如果有style里的大小 使用style里的
|
|
4047
4051
|
if (this.DivElement.style.height && this.DivElement.style.width)
|
|
@@ -4102,10 +4106,14 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4102
4106
|
{
|
|
4103
4107
|
if (option && option.XYSplit===true) this.JSChartContainer.ResetFrameXYSplit();
|
|
4104
4108
|
|
|
4105
|
-
if (this.JSChartContainer.OnSize && option && option.Type==1)
|
|
4109
|
+
if (this.JSChartContainer.OnSize && option && option.Type==1) //K线宽度不变
|
|
4106
4110
|
{
|
|
4107
4111
|
this.JSChartContainer.OnSize();
|
|
4108
4112
|
}
|
|
4113
|
+
else if (this.JSChartContainer.ShowAllKLine && option && option.Type==2)
|
|
4114
|
+
{
|
|
4115
|
+
this.JSChartContainer.ShowAllKLine();
|
|
4116
|
+
}
|
|
4109
4117
|
else
|
|
4110
4118
|
{
|
|
4111
4119
|
if (this.JSChartContainer.Frame) this.JSChartContainer.Frame.SetSizeChage(true);
|
|
@@ -13687,6 +13695,16 @@ function IsRecvOverlap(rect1, rect2)
|
|
|
13687
13695
|
return Math.max(rect1.Left,rect2.Left) < Math.min(rect1.Right,rect2.Right) && Math.max(rect1.Top,rect2.Top) < Math.min(rect1.Bottom,rect2.Bottom);
|
|
13688
13696
|
}
|
|
13689
13697
|
|
|
13698
|
+
function CopyMerginConfig(dest,src)
|
|
13699
|
+
{
|
|
13700
|
+
if (!src || !dest) return;
|
|
13701
|
+
|
|
13702
|
+
if (IFrameSplitOperator.IsNumber(src.Left)) dest.Left=src.Left;
|
|
13703
|
+
if (IFrameSplitOperator.IsNumber(src.Top)) dest.Top=src.Top;
|
|
13704
|
+
if (IFrameSplitOperator.IsNumber(src.Right)) dest.Right=src.Right;
|
|
13705
|
+
if (IFrameSplitOperator.IsNumber(src.Bottom)) dest.Bottom=src.Bottom;
|
|
13706
|
+
}
|
|
13707
|
+
|
|
13690
13708
|
|
|
13691
13709
|
function Point()
|
|
13692
13710
|
{
|
|
@@ -59450,6 +59468,79 @@ function IChartDrawPicture()
|
|
|
59450
59468
|
//复制
|
|
59451
59469
|
//this.CopyData=function() { }
|
|
59452
59470
|
//this.PtInButtons=function(x, y) { }
|
|
59471
|
+
|
|
59472
|
+
|
|
59473
|
+
//计算标签页大小
|
|
59474
|
+
this.CalculateLabelSize=function(labelInfo)
|
|
59475
|
+
{
|
|
59476
|
+
var config=labelInfo.Config;
|
|
59477
|
+
this.Canvas.font=config.Font;
|
|
59478
|
+
this.Canvas.textAlign="left";
|
|
59479
|
+
this.Canvas.textBaseline="top";
|
|
59480
|
+
var lineHeight=this.Canvas.measureText("擎").width+2;
|
|
59481
|
+
|
|
59482
|
+
var maxWidth=0, lineCount=0, labelHeight=config.Mergin.Top+config.Mergin.Bottom;
|
|
59483
|
+
for(var i=0;i<labelInfo.AryText.length;++i)
|
|
59484
|
+
{
|
|
59485
|
+
if (i>0) labelHeight+=config.LineSpace;
|
|
59486
|
+
|
|
59487
|
+
var item=labelInfo.AryText[i];
|
|
59488
|
+
item.NameWidth=0;
|
|
59489
|
+
item.TextWidth=0;
|
|
59490
|
+
if (item.Name) item.NameWidth=this.Canvas.measureText(item.Name).width+2;
|
|
59491
|
+
if (item.Text) item.TextWidth=this.Canvas.measureText(item.Text).width+2;
|
|
59492
|
+
|
|
59493
|
+
var itemWidth=item.NameWidth+item.TextWidth;
|
|
59494
|
+
if (maxWidth<itemWidth) maxWidth=itemWidth;
|
|
59495
|
+
++lineCount;
|
|
59496
|
+
|
|
59497
|
+
labelHeight+=lineHeight;
|
|
59498
|
+
}
|
|
59499
|
+
|
|
59500
|
+
var labelWidth=maxWidth+config.Mergin.Left+config.Mergin.Right;
|
|
59501
|
+
|
|
59502
|
+
labelInfo.Width=labelWidth;
|
|
59503
|
+
labelInfo.Height=labelHeight;
|
|
59504
|
+
labelInfo.LineHeight=lineHeight;
|
|
59505
|
+
}
|
|
59506
|
+
|
|
59507
|
+
this.DrawDefaultLabel=function(labelInfo, rtBG)
|
|
59508
|
+
{
|
|
59509
|
+
var config=labelInfo.Config;
|
|
59510
|
+
|
|
59511
|
+
if (config.BGColor)
|
|
59512
|
+
{
|
|
59513
|
+
this.Canvas.fillStyle=config.BGColor
|
|
59514
|
+
this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width),ToFixedRect(rtBG.Height));
|
|
59515
|
+
}
|
|
59516
|
+
|
|
59517
|
+
var xText=rtBG.Left+config.Mergin.Left;
|
|
59518
|
+
var yText=rtBG.Top+config.Mergin.Top;
|
|
59519
|
+
for(var i=0;i<labelInfo.AryText.length;++i)
|
|
59520
|
+
{
|
|
59521
|
+
var item=labelInfo.AryText[i];
|
|
59522
|
+
|
|
59523
|
+
if (i>0) yText+=config.LineSpace;
|
|
59524
|
+
|
|
59525
|
+
if (item.Name)
|
|
59526
|
+
{
|
|
59527
|
+
this.Canvas.fillStyle=item.NameColor;
|
|
59528
|
+
this.Canvas.fillText(item.Name,xText,yText);
|
|
59529
|
+
}
|
|
59530
|
+
|
|
59531
|
+
if (item.Text)
|
|
59532
|
+
{
|
|
59533
|
+
var xOut=xText+item.NameWidth;
|
|
59534
|
+
if (config.TextAlign==1) //右对齐
|
|
59535
|
+
xOut=rtBG.Right-config.Mergin.Right-item.TextWidth;
|
|
59536
|
+
|
|
59537
|
+
this.Canvas.fillStyle=item.TextColor;
|
|
59538
|
+
this.Canvas.fillText(item.Text,xOut ,yText);
|
|
59539
|
+
}
|
|
59540
|
+
|
|
59541
|
+
yText+=labelInfo.LineHeight;
|
|
59542
|
+
}
|
|
59543
|
+
}
|
|
59453
59544
|
}
|
|
59454
59545
|
|
|
59455
59546
|
IChartDrawPicture.ColorToRGBA=function(color,opacity)
|
|
@@ -59588,7 +59679,8 @@ IChartDrawPicture.ArrayDrawPricture=
|
|
|
59588
59679
|
{ Name:"FibRetracement", ClassName:"ChartFibRetracement", Create:function() { return new ChartFibRetracement(); }}, //斐波那契回测
|
|
59589
59680
|
{ Name:"FibSpeedResistanceFan", ClassName:"ChartFibSpeedResistanceFan", Create:function() { return new ChartFibSpeedResistanceFan(); }}, //斐波那契扇形
|
|
59590
59681
|
{ Name:"PriceRange", ClassName:"ChartPriceRange", Create:function() { return new ChartPriceRange(); }},
|
|
59591
|
-
{ Name:"DateRange", ClassName:"ChartDateRange", Create:function() { return new ChartDateRange(); }}
|
|
59682
|
+
{ Name:"DateRange", ClassName:"ChartDateRange", Create:function() { return new ChartDateRange(); }},
|
|
59683
|
+
{ Name:"InfoLine", ClassName:"ChartInfoLine", Create:function() { return new ChartInfoLine(); }},
|
|
59592
59684
|
];
|
|
59593
59685
|
|
|
59594
59686
|
IChartDrawPicture.MapIonFont=new Map(
|
|
@@ -64451,9 +64543,13 @@ function ChartDrawMonitorLine()
|
|
|
64451
64543
|
this.LabelConfig=
|
|
64452
64544
|
{
|
|
64453
64545
|
Font:`${12*GetDevicePixelRatio()}px 微软雅黑`,
|
|
64454
|
-
BGColor:"rgb(30,144,255)",
|
|
64546
|
+
BGColor:"rgb(30,144,255)",
|
|
64455
64547
|
LineColor:"rgba(255,215,0,0.8)",
|
|
64456
64548
|
LineDash:[3,5],
|
|
64549
|
+
|
|
64550
|
+
Mergin:{ Left:5, Right:5, Top:5, Bottom:4 },
|
|
64551
|
+
LineSpace:5, //行间距
|
|
64552
|
+
TextAlign:1, //对齐方式 0=left 1=right
|
|
64457
64553
|
}
|
|
64458
64554
|
|
|
64459
64555
|
this.PointToValue_Backup=this.PointToValue;
|
|
@@ -64487,7 +64583,9 @@ function ChartDrawMonitorLine()
|
|
|
64487
64583
|
if (item.BGColor) dest.BGColor=item.BGColor;
|
|
64488
64584
|
if (item.LineColor) dest.LineColor=item.LineColor;
|
|
64489
64585
|
if (item.LineDash) dest.LineDash=item.LineDash;
|
|
64490
|
-
if (IFrameSplitOperator.IsNumber(item.
|
|
64586
|
+
if (IFrameSplitOperator.IsNumber(item.LineSpace)) dest.LineSpace=item.LineSpace;
|
|
64587
|
+
if (IFrameSplitOperator.IsNumber(item.TextAlign)) dest.TextAlign=item.TextAlign;
|
|
64588
|
+
if (item.Mergin) CopyMerginConfig(dest.Mergin, item.Mergin);
|
|
64491
64589
|
}
|
|
64492
64590
|
|
|
64493
64591
|
if (option.FormatLabelTextCallback) this.FormatLabelTextCallback=option.FormatLabelTextCallback;
|
|
@@ -64601,6 +64699,7 @@ function ChartDrawMonitorLine()
|
|
|
64601
64699
|
this.DrawLabel=function(labelInfo)
|
|
64602
64700
|
{
|
|
64603
64701
|
if (!this.FormatLabelTextCallback) return;
|
|
64702
|
+
labelInfo.Config=this.LabelConfig;
|
|
64604
64703
|
this.FormatLabelTextCallback(labelInfo);
|
|
64605
64704
|
if (!IFrameSplitOperator.IsNonEmptyArray(labelInfo.AryText)) return;
|
|
64606
64705
|
if (!IFrameSplitOperator.IsNumber(labelInfo.YValue)) return;
|
|
@@ -64617,54 +64716,14 @@ function ChartDrawMonitorLine()
|
|
|
64617
64716
|
]
|
|
64618
64717
|
*/
|
|
64619
64718
|
|
|
64620
|
-
|
|
64621
|
-
this.Canvas.font=this.LabelConfig.Font;
|
|
64622
|
-
this.Canvas.textAlign="left";
|
|
64623
|
-
this.Canvas.textBaseline="top";
|
|
64624
|
-
var lineHeight=this.Canvas.measureText("擎").width+2;
|
|
64625
|
-
var maxWidth=0, lineCount=0;
|
|
64626
|
-
for(var i=0;i<labelInfo.AryText.length;++i)
|
|
64627
|
-
{
|
|
64628
|
-
var item=labelInfo.AryText[i];
|
|
64629
|
-
item.NameWidth=0;
|
|
64630
|
-
item.TextWidth=0;
|
|
64631
|
-
if (item.Name) item.NameWidth=this.Canvas.measureText(item.Name).width+2;
|
|
64632
|
-
if (item.Text) item.TextWidth=this.Canvas.measureText(item.Text).width+2;
|
|
64719
|
+
this.CalculateLabelSize(labelInfo);
|
|
64633
64720
|
|
|
64634
|
-
|
|
64635
|
-
|
|
64636
|
-
++lineCount;
|
|
64637
|
-
}
|
|
64638
|
-
|
|
64639
|
-
var rtBG={ Left:labelInfo.Left+1, Top:y, Width:maxWidth+4, Height:lineHeight*lineCount+4 };
|
|
64721
|
+
var y=this.Frame.GetYFromData(labelInfo.YValue,false);
|
|
64722
|
+
var rtBG={ Left:labelInfo.Left+1, Top:y, Width:labelInfo.Width, Height:labelInfo.Height };
|
|
64640
64723
|
rtBG.Right=rtBG.Left+rtBG.Width;
|
|
64641
64724
|
rtBG.Bottom=rtBG.Top+rtBG.Height;
|
|
64642
|
-
|
|
64643
|
-
|
|
64644
|
-
this.Canvas.fillStyle=this.LabelConfig.BGColor
|
|
64645
|
-
this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width),ToFixedRect(rtBG.Height));
|
|
64646
|
-
}
|
|
64647
|
-
|
|
64648
|
-
var xText=rtBG.Left+2;
|
|
64649
|
-
var yText=rtBG.Top+this.LabelConfig.YTextOffset;
|
|
64650
|
-
for(var i=0;i<labelInfo.AryText.length;++i)
|
|
64651
|
-
{
|
|
64652
|
-
var item=labelInfo.AryText[i];
|
|
64653
|
-
|
|
64654
|
-
if (item.Name)
|
|
64655
|
-
{
|
|
64656
|
-
this.Canvas.fillStyle=item.NameColor;
|
|
64657
|
-
this.Canvas.fillText(item.Name,xText,yText);
|
|
64658
|
-
}
|
|
64659
|
-
|
|
64660
|
-
if (item.Text)
|
|
64661
|
-
{
|
|
64662
|
-
this.Canvas.fillStyle=item.TextColor;
|
|
64663
|
-
this.Canvas.fillText(item.Text,xText+item.NameWidth ,yText);
|
|
64664
|
-
}
|
|
64665
|
-
|
|
64666
|
-
yText+=lineHeight;
|
|
64667
|
-
}
|
|
64725
|
+
|
|
64726
|
+
this.DrawDefaultLabel(labelInfo, rtBG);
|
|
64668
64727
|
}
|
|
64669
64728
|
}
|
|
64670
64729
|
|
|
@@ -68486,6 +68545,139 @@ function ChartDateRange()
|
|
|
68486
68545
|
}
|
|
68487
68546
|
}
|
|
68488
68547
|
|
|
68548
|
+
//线段信息统计
|
|
68549
|
+
function ChartInfoLine()
|
|
68550
|
+
{
|
|
68551
|
+
this.newMethod=IChartDrawPicture; //派生
|
|
68552
|
+
this.newMethod();
|
|
68553
|
+
delete this.newMethod;
|
|
68554
|
+
|
|
68555
|
+
this.ClassName='ChartInfoLine';
|
|
68556
|
+
this.PointCount=2;
|
|
68557
|
+
this.Font=12*GetDevicePixelRatio() +"px 微软雅黑";
|
|
68558
|
+
|
|
68559
|
+
this.IsPointIn=this.IsPointIn_XYValue_Line;
|
|
68560
|
+
this.GetXYCoordinate=this.GetXYCoordinate_default;
|
|
68561
|
+
this.IsShowYCoordinate=false;
|
|
68562
|
+
this.CopyData=this.CopyData_default;
|
|
68563
|
+
this.OnlyMoveXIndex=true;
|
|
68564
|
+
this.IsSupportMagnet=true;
|
|
68565
|
+
|
|
68566
|
+
this.LabelConfig=
|
|
68567
|
+
{
|
|
68568
|
+
Font:`${12*GetDevicePixelRatio()}px 微软雅黑`,
|
|
68569
|
+
BGColor:"rgba(135, 206 ,250,0.95)",
|
|
68570
|
+
Mergin:{ Left:10, Right:10, Top:10, Bottom:8 },
|
|
68571
|
+
LineSpace:5, //行间距
|
|
68572
|
+
TextAlign:1, //对齐方式 0=left 1=right
|
|
68573
|
+
}
|
|
68574
|
+
|
|
68575
|
+
this.FormatLabelTextCallback=null;
|
|
68576
|
+
|
|
68577
|
+
this.SetOption=function(option)
|
|
68578
|
+
{
|
|
68579
|
+
if (option.LineColor) this.LineColor=option.LineColor;
|
|
68580
|
+
if (option.Label)
|
|
68581
|
+
{
|
|
68582
|
+
var item=option.Label;
|
|
68583
|
+
var dest=this.LabelConfig
|
|
68584
|
+
if (item.Font) dest.Font=item.Font;
|
|
68585
|
+
if (item.BGColor) dest.BGColor=item.BGColor;
|
|
68586
|
+
if (IFrameSplitOperator.IsNumber(item.LineSpace)) dest.LineSpace=item.LineSpace;
|
|
68587
|
+
if (IFrameSplitOperator.IsNumber(item.TextAlign)) dest.TextAlign=item.TextAlign;
|
|
68588
|
+
if (item.Mergin) CopyMerginConfig(dest.Mergin, item.Mergin);
|
|
68589
|
+
}
|
|
68590
|
+
|
|
68591
|
+
if (option.FormatLabelTextCallback) this.FormatLabelTextCallback=option.FormatLabelTextCallback;
|
|
68592
|
+
}
|
|
68593
|
+
|
|
68594
|
+
this.Draw=function()
|
|
68595
|
+
{
|
|
68596
|
+
this.LinePoint=[];
|
|
68597
|
+
if (this.IsFrameMinSize()) return;
|
|
68598
|
+
if (!this.IsShow) return;
|
|
68599
|
+
|
|
68600
|
+
var drawPoint=this.CalculateDrawPoint( {IsCheckX:true, IsCheckY:false} );
|
|
68601
|
+
if (!drawPoint) return;
|
|
68602
|
+
if (drawPoint.length!=2) return;
|
|
68603
|
+
|
|
68604
|
+
this.ClipFrame();
|
|
68605
|
+
|
|
68606
|
+
var ptStart=drawPoint[0];
|
|
68607
|
+
var ptEnd=drawPoint[1];
|
|
68608
|
+
|
|
68609
|
+
this.SetLineWidth();
|
|
68610
|
+
this.Canvas.strokeStyle=this.LineColor;
|
|
68611
|
+
this.Canvas.beginPath();
|
|
68612
|
+
this.Canvas.moveTo(ptStart.X,ptStart.Y);
|
|
68613
|
+
this.Canvas.lineTo(ptEnd.X,ptEnd.Y);
|
|
68614
|
+
this.Canvas.stroke();
|
|
68615
|
+
this.RestoreLineWidth();
|
|
68616
|
+
|
|
68617
|
+
var line={Start:ptStart, End:ptEnd};
|
|
68618
|
+
this.LinePoint.push(line);
|
|
68619
|
+
|
|
68620
|
+
this.DrawPoint(drawPoint); //画点
|
|
68621
|
+
|
|
68622
|
+
var labelInfo={ };
|
|
68623
|
+
labelInfo.Config=this.LabelConfig;
|
|
68624
|
+
labelInfo.PtStart=ptStart;
|
|
68625
|
+
labelInfo.PtEnd=ptEnd;
|
|
68626
|
+
|
|
68627
|
+
this.DrawLabel(labelInfo);
|
|
68628
|
+
|
|
68629
|
+
this.Canvas.restore();
|
|
68630
|
+
}
|
|
68631
|
+
|
|
68632
|
+
this.DrawLabel=function(labelInfo)
|
|
68633
|
+
{
|
|
68634
|
+
if (!this.FormatLabelTextCallback) return;
|
|
68635
|
+
|
|
68636
|
+
labelInfo.AryPoint=this.Point;
|
|
68637
|
+
if (this.Status!=10)
|
|
68638
|
+
{
|
|
68639
|
+
labelInfo.AryValue=this.PointToKLine(this.Point);
|
|
68640
|
+
}
|
|
68641
|
+
else
|
|
68642
|
+
{
|
|
68643
|
+
labelInfo.AryValue=this.Value;
|
|
68644
|
+
}
|
|
68645
|
+
|
|
68646
|
+
labelInfo.Data=this.Frame.Data; //数据
|
|
68647
|
+
|
|
68648
|
+
this.FormatLabelTextCallback(labelInfo);
|
|
68649
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(labelInfo.AryText)) return;
|
|
68650
|
+
|
|
68651
|
+
this.CalculateLabelSize(labelInfo);
|
|
68652
|
+
|
|
68653
|
+
var ptStart=labelInfo.PtStart;
|
|
68654
|
+
var ptEnd=labelInfo.PtEnd;
|
|
68655
|
+
if (ptStart.X>ptEnd.X)
|
|
68656
|
+
{
|
|
68657
|
+
ptStart=labelInfo.PtEnd;
|
|
68658
|
+
ptEnd=labelInfo.PtStart;
|
|
68659
|
+
}
|
|
68660
|
+
|
|
68661
|
+
var config=labelInfo.Config;
|
|
68662
|
+
var xCenter=labelInfo.PtStart.X+(labelInfo.PtEnd.X-labelInfo.PtStart.X)/2;
|
|
68663
|
+
var yCenter=labelInfo.PtStart.Y+(labelInfo.PtEnd.Y-labelInfo.PtStart.Y)/2;
|
|
68664
|
+
if (ptStart.Y<ptEnd.Y)
|
|
68665
|
+
{
|
|
68666
|
+
var rtBG={ Left:xCenter, Bottom:yCenter, Width:labelInfo.Width, Height:labelInfo.Height };
|
|
68667
|
+
rtBG.Right=rtBG.Left+rtBG.Width;
|
|
68668
|
+
rtBG.Top=rtBG.Bottom-rtBG.Height;
|
|
68669
|
+
}
|
|
68670
|
+
else
|
|
68671
|
+
{
|
|
68672
|
+
var rtBG={ Left:xCenter, Top:yCenter, Width:labelInfo.Width, Height:labelInfo.Height };
|
|
68673
|
+
rtBG.Right=rtBG.Left+rtBG.Width;
|
|
68674
|
+
rtBG.Bottom=rtBG.Top+rtBG.Height;
|
|
68675
|
+
}
|
|
68676
|
+
|
|
68677
|
+
this.DrawDefaultLabel(labelInfo, rtBG);
|
|
68678
|
+
}
|
|
68679
|
+
}
|
|
68680
|
+
|
|
68489
68681
|
|
|
68490
68682
|
function ChartDrawStorage()
|
|
68491
68683
|
{
|
|
@@ -73214,6 +73406,30 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
73214
73406
|
}
|
|
73215
73407
|
}
|
|
73216
73408
|
|
|
73409
|
+
this.ShowAllKLine=function()
|
|
73410
|
+
{
|
|
73411
|
+
var chart=this.ChartPaint[0];
|
|
73412
|
+
if (!chart) return false;
|
|
73413
|
+
var kData=chart.Data;
|
|
73414
|
+
if (!kData || !IFrameSplitOperator.IsNonEmptyArray(kData.Data)) return false;
|
|
73415
|
+
|
|
73416
|
+
var xCount=kData.Data.length+this.RightSpaceCount;
|
|
73417
|
+
for(var i=0;i<this.Frame.SubFrame.length;++i)
|
|
73418
|
+
{
|
|
73419
|
+
var item =this.Frame.SubFrame[i].Frame;
|
|
73420
|
+
item.XPointCount=xCount;
|
|
73421
|
+
}
|
|
73422
|
+
|
|
73423
|
+
kData.DataOffset=0;
|
|
73424
|
+
this.CursorIndex=0;
|
|
73425
|
+
|
|
73426
|
+
this.UpdataDataoffset(); //更新数据偏移
|
|
73427
|
+
this.UpdateFrameMaxMin(); //调整坐标最大 最小值
|
|
73428
|
+
this.Frame.SetSizeChage(true);
|
|
73429
|
+
this.UpdatePointByCursorIndex(2); //取消十字光标
|
|
73430
|
+
this.Draw();
|
|
73431
|
+
}
|
|
73432
|
+
|
|
73217
73433
|
this.UpdateMainData=function(hisData, lastDataCount)
|
|
73218
73434
|
{
|
|
73219
73435
|
var frameHisdata=null;
|
|
@@ -135751,6 +135967,7 @@ function JSDialogDrawTool()
|
|
|
135751
135967
|
AryChart:
|
|
135752
135968
|
[
|
|
135753
135969
|
{ Title: '线段', ClassName: 'hqchart_drawtool icon-draw_line', Type:0, Data:{ ID:"线段" } },
|
|
135970
|
+
{ Title: '线段信息', ClassName: 'hqchart_drawtool icon-infoline', Type:0, Data:{ ID:"InfoLine" } },
|
|
135754
135971
|
{ Title: '射线', ClassName: 'hqchart_drawtool icon-draw_rays', Type:0, Data:{ ID:"射线" } },
|
|
135755
135972
|
{ Title: '标价线', ClassName: 'hqchart_drawtool icon-price_line', Type:0, Data:{ ID:"标价线" } },
|
|
135756
135973
|
{ Title: '垂直线', ClassName: 'hqchart_drawtool icon-vertical_line', Type:0, Data:{ ID:"垂直线" } },
|
|
@@ -136177,6 +136394,9 @@ function JSDialogDrawTool()
|
|
|
136177
136394
|
|
|
136178
136395
|
var name=data.Item.Data.ID;
|
|
136179
136396
|
if (["icon-arrow_up","icon-arrow_down","icon-arrow_left", "icon-arrow_right"].includes(name)) option=null;
|
|
136397
|
+
else if (name=="InfoLine") option.FormatLabelTextCallback=(lableInfo)=>{ this.ChartInfoLine_FormatLabelText(lableInfo); }
|
|
136398
|
+
else if (name=="MonitorLine") option.FormatLabelTextCallback=(lableInfo)=>{ this.ChartDrawMonitorLine_FormatLabelText(lableInfo); }
|
|
136399
|
+
|
|
136180
136400
|
|
|
136181
136401
|
this.HQChart.CreateChartDrawPicture(name, option, (chart)=>{ this.OnFinishDrawPicture(chart, data); });
|
|
136182
136402
|
}
|
|
@@ -136254,6 +136474,60 @@ function JSDialogDrawTool()
|
|
|
136254
136474
|
this.onmousemove = null;
|
|
136255
136475
|
this.onmouseup = null;
|
|
136256
136476
|
}
|
|
136477
|
+
|
|
136478
|
+
this.ChartInfoLine_FormatLabelText=function(labelInfo)
|
|
136479
|
+
{
|
|
136480
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(labelInfo.AryValue)) return;
|
|
136481
|
+
if (!labelInfo.Data || !IFrameSplitOperator.IsNonEmptyArray(labelInfo.Data.Data)) return;
|
|
136482
|
+
for(var i=0;i<labelInfo.AryValue.length;++i)
|
|
136483
|
+
{
|
|
136484
|
+
var item=labelInfo.AryValue[i];
|
|
136485
|
+
if (!IFrameSplitOperator.IsNumber(item.XValue) || item.XValue<0) return;
|
|
136486
|
+
}
|
|
136487
|
+
|
|
136488
|
+
var startIndex=labelInfo.AryValue[0].XValue;
|
|
136489
|
+
var endIndex=labelInfo.AryValue[1].XValue;
|
|
136490
|
+
var startItem=labelInfo.Data.Data[startIndex];
|
|
136491
|
+
var endItem=labelInfo.Data.Data[endIndex];
|
|
136492
|
+
if (!startItem || !endItem) return;
|
|
136493
|
+
|
|
136494
|
+
var isMinutePeriod=ChartData.IsMinutePeriod(labelInfo.Data.Period, true);
|
|
136495
|
+
labelInfo.AryText=[];
|
|
136496
|
+
labelInfo.AryText.push({ Name:"起始日期: ", Text:IFrameSplitOperator.FormatDateString(startItem.Date), NameColor:"rgb(0,0,0)", TextColor:"rgb(30,10,30)" });
|
|
136497
|
+
if (isMinutePeriod) labelInfo.AryText.push({ Name:"起始时间: ", Text:IFrameSplitOperator.FormatTimeString(startItem.Time, "HH:MM"), NameColor:"rgb(0,0,0)", TextColor:"rgb(30,10,30)" });
|
|
136498
|
+
|
|
136499
|
+
labelInfo.AryText.push({ Name:"结束日期: ", Text:IFrameSplitOperator.FormatDateString(endItem.Date), NameColor:"rgb(0,0,0)", TextColor:"rgb(30,10,30)" });
|
|
136500
|
+
if (isMinutePeriod) labelInfo.AryText.push({ Name:"结束时间: ", Text:IFrameSplitOperator.FormatTimeString(endItem.Time, "HH:MM"), NameColor:"rgb(0,0,0)", TextColor:"rgb(30,10,30)" });
|
|
136501
|
+
|
|
136502
|
+
//示例:计算一个斜率数据
|
|
136503
|
+
var x=labelInfo.AryPoint[1].X-labelInfo.AryPoint[0].X;
|
|
136504
|
+
var y=labelInfo.AryPoint[1].Y-labelInfo.AryPoint[0].Y;
|
|
136505
|
+
var text="--";
|
|
136506
|
+
if (x!=0) text=`${(y/x).toFixed(4)}`;
|
|
136507
|
+
labelInfo.AryText.push({ Name:"斜率: ", Text:text, NameColor:"rgb(0,0,0)", TextColor:"rgb(238, 0, 238)"});
|
|
136508
|
+
labelInfo.AryText.push({ Name:"其他: ", Text:'......', NameColor:"rgb(0,0,0)", TextColor:"rgb(156, 156, 156)"});
|
|
136509
|
+
}
|
|
136510
|
+
|
|
136511
|
+
this.ChartDrawMonitorLine_FormatLabelText=function(labelInfo)
|
|
136512
|
+
{
|
|
136513
|
+
if (!labelInfo.Data || !IFrameSplitOperator.IsNonEmptyArray(labelInfo.Data.Data)) return;
|
|
136514
|
+
if (!IFrameSplitOperator.IsNumber(labelInfo.StartIndex) || labelInfo.StartIndex<0) return;
|
|
136515
|
+
|
|
136516
|
+
var startItem=labelInfo.Data.Data[labelInfo.StartIndex];
|
|
136517
|
+
var endItem=labelInfo.Data.Data[labelInfo.Data.Data.length-1];
|
|
136518
|
+
labelInfo.YValue=endItem.Close;
|
|
136519
|
+
var isMinutePeriod=ChartData.IsMinutePeriod(labelInfo.Data.Period, true);
|
|
136520
|
+
|
|
136521
|
+
labelInfo.AryText=[];
|
|
136522
|
+
labelInfo.AryText.push({ Name:"起始: ", Text:IFrameSplitOperator.FormatDateString(startItem.Date,"MM-DD"), NameColor:"rgb(0,0,0)", TextColor:"rgb(30,10,30)" });
|
|
136523
|
+
if (isMinutePeriod) labelInfo.AryText.push({ Name:"起始: ", Text:IFrameSplitOperator.FormatTimeString(startItem.Time, "HH:MM"), NameColor:"rgb(0,0,0)", TextColor:"rgb(30,10,30)" });
|
|
136524
|
+
|
|
136525
|
+
labelInfo.AryText.push({ Name:"最新: ", Text:IFrameSplitOperator.FormatDateString(endItem.Date,"MM-DD"), NameColor:"rgb(0,0,0)", TextColor:"rgb(30,10,30)" });
|
|
136526
|
+
if (isMinutePeriod) labelInfo.AryText.push({ Name:"最新: ", Text:IFrameSplitOperator.FormatTimeString(endItem.Time, "HH:MM"), NameColor:"rgb(0,0,0)", TextColor:"rgb(30,10,30)" });
|
|
136527
|
+
|
|
136528
|
+
labelInfo.AryText.push({ Name:"ɑ: ", Text:"--.--", NameColor:"rgb(0, 0 ,255)", TextColor:"rgb(255, 165, 0)"});
|
|
136529
|
+
labelInfo.AryText.push({ Name:"β: ", Text:"--.--", NameColor:"rgb(0 ,0 ,255)", TextColor:"rgb(238 ,121, 66)"});
|
|
136530
|
+
}
|
|
136257
136531
|
}
|
|
136258
136532
|
|
|
136259
136533
|
|
|
@@ -136715,7 +136989,7 @@ function HQChartScriptWorker()
|
|
|
136715
136989
|
|
|
136716
136990
|
|
|
136717
136991
|
|
|
136718
|
-
var HQCHART_VERSION="1.1.
|
|
136992
|
+
var HQCHART_VERSION="1.1.13338";
|
|
136719
136993
|
|
|
136720
136994
|
function PrintHQChartVersion()
|
|
136721
136995
|
{
|