hqchart 1.1.14660 → 1.1.14667
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 +48 -33
- package/package.json +1 -1
- package/src/jscommon/umychart.TReport.js +83 -0
- package/src/jscommon/umychart.js +264 -13
- package/src/jscommon/umychart.style.js +7 -0
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +272 -14
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +355 -14
|
@@ -4728,6 +4728,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4728
4728
|
}
|
|
4729
4729
|
|
|
4730
4730
|
if (IFrameSplitOperator.IsBool(item.EnablePrediction)) klineChart.PredictionConfig.Enable=item.EnablePrediction;
|
|
4731
|
+
if (IFrameSplitOperator.IsBool(item.EnableDaySummary)) klineChart.DaySummary.Enable=item.EnableDaySummary;
|
|
4731
4732
|
}
|
|
4732
4733
|
|
|
4733
4734
|
if(option.KLineTitle)
|
|
@@ -7065,6 +7066,7 @@ var JSCHART_MENU_ID=
|
|
|
7065
7066
|
|
|
7066
7067
|
CMD_FULLSCREEN_SUMMARY_ID:56, //当前屏区间统计
|
|
7067
7068
|
CMD_CORSS_DBCLICK_ID:57, //双击显示隐藏十字光标
|
|
7069
|
+
CMD_ENABLE_KLINE_DAY_SUMMARY_ID:58, //K线底部显示走完剩余时间
|
|
7068
7070
|
|
|
7069
7071
|
|
|
7070
7072
|
|
|
@@ -15038,6 +15040,13 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
15038
15040
|
case JSCHART_MENU_ID.CMD_FULLSCREEN_SUMMARY_ID:
|
|
15039
15041
|
this.FullScreenSummary();
|
|
15040
15042
|
break;
|
|
15043
|
+
case JSCHART_MENU_ID.CMD_ENABLE_KLINE_DAY_SUMMARY_ID:
|
|
15044
|
+
if (IFrameSplitOperator.IsBool(srcParam))
|
|
15045
|
+
{
|
|
15046
|
+
this.ChartPaint[0].DaySummary.Enable=srcParam;
|
|
15047
|
+
this.Draw();
|
|
15048
|
+
}
|
|
15049
|
+
break;
|
|
15041
15050
|
}
|
|
15042
15051
|
}
|
|
15043
15052
|
|
|
@@ -15747,6 +15756,20 @@ function IsRectOverlap(rt, rt2)
|
|
|
15747
15756
|
return false;
|
|
15748
15757
|
}
|
|
15749
15758
|
|
|
15759
|
+
//获取文字高度和宽度
|
|
15760
|
+
function GetTextSize(canvas, text, option)
|
|
15761
|
+
{
|
|
15762
|
+
var data=canvas.measureText(text);
|
|
15763
|
+
var height=Math.abs(Math.abs(data.fontBoundingBoxAscent)+Math.abs(data.fontBoundingBoxDescent));
|
|
15764
|
+
var textBaseline=canvas.textBaseline;
|
|
15765
|
+
|
|
15766
|
+
if (textBaseline=="top") height=data.fontBoundingBoxDescent;
|
|
15767
|
+
else if (textBaseline=="bottom") height=data.fontBoundingBoxAscent;
|
|
15768
|
+
|
|
15769
|
+
var result={ Width:data.width, Height:height};
|
|
15770
|
+
return result;
|
|
15771
|
+
}
|
|
15772
|
+
|
|
15750
15773
|
Number.prototype.toFixed2=Number.prototype.toFixed; //备份下老的
|
|
15751
15774
|
Number.prototype.toFixed = function( precision )
|
|
15752
15775
|
{
|
|
@@ -16273,7 +16296,7 @@ function IChartFramePainting()
|
|
|
16273
16296
|
|
|
16274
16297
|
this.BorderLine=null; //1=上 2=下 4=左 8=右
|
|
16275
16298
|
this.Buttons=[]; //按钮事件
|
|
16276
|
-
this.
|
|
16299
|
+
this.ToolbarCacheSize=null; //缓存工具条宽度{ RToolbar:{ Left:, Right }}
|
|
16277
16300
|
|
|
16278
16301
|
this.IsMinSize=false; //窗口是否最小化
|
|
16279
16302
|
|
|
@@ -16336,6 +16359,7 @@ function IChartFramePainting()
|
|
|
16336
16359
|
{
|
|
16337
16360
|
this.Buttons=[];
|
|
16338
16361
|
this.HorizontalLabel=[];
|
|
16362
|
+
this.ToolbarCacheSize=null;
|
|
16339
16363
|
this.DrawClientBG();
|
|
16340
16364
|
this.DrawFrame();
|
|
16341
16365
|
this.DrawBorder();
|
|
@@ -16855,7 +16879,9 @@ function AverageWidthFrame()
|
|
|
16855
16879
|
var right=border.Right-3;
|
|
16856
16880
|
var left=border.Left;
|
|
16857
16881
|
var yButton=border.Top+this.ChartBorder.TitleHeight/2;
|
|
16858
|
-
|
|
16882
|
+
|
|
16883
|
+
this.ToolbarCacheSize={ RToolbar:{ Right:right, Left:left }}
|
|
16884
|
+
|
|
16859
16885
|
//右往左绘制
|
|
16860
16886
|
for(var i=0;i<aryButton.length;++i)
|
|
16861
16887
|
{
|
|
@@ -16881,8 +16907,12 @@ function AverageWidthFrame()
|
|
|
16881
16907
|
|
|
16882
16908
|
this.Buttons.push({ ID:item.ID, Rect:rtButton });
|
|
16883
16909
|
|
|
16910
|
+
this.ToolbarCacheSize.RToolbar.Left=rtButton.Left;
|
|
16911
|
+
|
|
16884
16912
|
right=xBotton;
|
|
16885
16913
|
}
|
|
16914
|
+
|
|
16915
|
+
|
|
16886
16916
|
}
|
|
16887
16917
|
}
|
|
16888
16918
|
|
|
@@ -21887,7 +21917,6 @@ function KLineFrame()
|
|
|
21887
21917
|
if (g_JSChartResource.IsDOMFrameToolbar===true) return;
|
|
21888
21918
|
|
|
21889
21919
|
this.Buttons=[];
|
|
21890
|
-
this.LeftButtonWidth=0;
|
|
21891
21920
|
if (this.IsMinSize==true) return;
|
|
21892
21921
|
if (this.ChartBorder.TitleHeight<5) return;
|
|
21893
21922
|
|
|
@@ -30705,6 +30734,31 @@ function ChartKLine()
|
|
|
30705
30734
|
//面积图和收盘价线 断开点
|
|
30706
30735
|
this.AryBreakPoint;
|
|
30707
30736
|
|
|
30737
|
+
//天数统计
|
|
30738
|
+
this.DaySummary={ MapDate:new Map(), Enable:false };
|
|
30739
|
+
this.DaySummaryConfig=
|
|
30740
|
+
{
|
|
30741
|
+
Font: g_JSChartResource.DaySummaryKLine.Font,
|
|
30742
|
+
TextColor: g_JSChartResource.DaySummaryKLine.TextColor
|
|
30743
|
+
}
|
|
30744
|
+
|
|
30745
|
+
this.AddToDaySummary=function(kItem)
|
|
30746
|
+
{
|
|
30747
|
+
if (!this.DaySummary.Enable) return false;
|
|
30748
|
+
|
|
30749
|
+
if (!kItem) return false;
|
|
30750
|
+
if (!IFrameSplitOperator.IsPlusNumber(kItem.Date)) return false;
|
|
30751
|
+
|
|
30752
|
+
if (this.DaySummary.MapDate.has(kItem.Date)) return false;
|
|
30753
|
+
|
|
30754
|
+
this.DaySummary.MapDate.set(kItem.Date, { Date:kItem.Date });
|
|
30755
|
+
}
|
|
30756
|
+
|
|
30757
|
+
this.ClearDaySummary=function()
|
|
30758
|
+
{
|
|
30759
|
+
this.DaySummary.MapDate.clear();
|
|
30760
|
+
}
|
|
30761
|
+
|
|
30708
30762
|
this.BuildDateTimeKey=function(item)
|
|
30709
30763
|
{
|
|
30710
30764
|
if (!item) return null;
|
|
@@ -30762,6 +30816,13 @@ function ChartKLine()
|
|
|
30762
30816
|
UnchangeColor:g_JSChartResource.PredictionKLine.Bar.UnchangeColor,
|
|
30763
30817
|
DrawType:g_JSChartResource.PredictionKLine.Bar.DrawType
|
|
30764
30818
|
};
|
|
30819
|
+
|
|
30820
|
+
|
|
30821
|
+
this.DaySummaryConfig=
|
|
30822
|
+
{
|
|
30823
|
+
Font: g_JSChartResource.DaySummaryKLine.Font,
|
|
30824
|
+
TextColor: g_JSChartResource.DaySummaryKLine.TextColor
|
|
30825
|
+
}
|
|
30765
30826
|
|
|
30766
30827
|
}
|
|
30767
30828
|
|
|
@@ -31394,6 +31455,8 @@ function ChartKLine()
|
|
|
31394
31455
|
this.ShowRange.End=i;
|
|
31395
31456
|
if (!data || data.Open==null || data.High==null || data.Low==null || data.Close==null) continue;
|
|
31396
31457
|
|
|
31458
|
+
this.AddToDaySummary(data);
|
|
31459
|
+
|
|
31397
31460
|
var left=xOffset;
|
|
31398
31461
|
var right=xOffset+dataWidth;
|
|
31399
31462
|
if (right>chartright) break;
|
|
@@ -33279,6 +33342,7 @@ function ChartKLine()
|
|
|
33279
33342
|
if (this.IsShowIndexTitleOnly()) return;
|
|
33280
33343
|
if (this.IsHideScriptIndex()) return;
|
|
33281
33344
|
|
|
33345
|
+
this.ClearDaySummary();
|
|
33282
33346
|
this.IsShowOrderText=false;
|
|
33283
33347
|
this.TooltipRect=[];
|
|
33284
33348
|
this.InfoTooltipRect=[];
|
|
@@ -33417,6 +33481,8 @@ function ChartKLine()
|
|
|
33417
33481
|
this.FFKChart.DrawMaxMinPrice();
|
|
33418
33482
|
}
|
|
33419
33483
|
}
|
|
33484
|
+
|
|
33485
|
+
this.DrawDaySummary();
|
|
33420
33486
|
}
|
|
33421
33487
|
|
|
33422
33488
|
this.OnFormatHighLowTitle=function(ptMax, ptMin)
|
|
@@ -33487,8 +33553,33 @@ function ChartKLine()
|
|
|
33487
33553
|
else text=text+rightArrow;
|
|
33488
33554
|
if (ptTop.Y>(top-2))
|
|
33489
33555
|
{
|
|
33556
|
+
var textSize=GetTextSize(this.Canvas,text);
|
|
33557
|
+
var textWidth=textSize.Width;
|
|
33558
|
+
var textHeight=textSize.Height;
|
|
33559
|
+
if (this.ChartFrame.CoordinateType==1) //反转坐标
|
|
33560
|
+
{
|
|
33561
|
+
var rtText={ Width:textWidth, Height:textHeight, Top:ptTop.Y };
|
|
33562
|
+
rtText.Bottom=rtText.Top+rtText.Height;
|
|
33563
|
+
}
|
|
33564
|
+
else
|
|
33565
|
+
{
|
|
33566
|
+
var rtText={ Width:textWidth, Height:textHeight, Bottom:ptTop.Y };
|
|
33567
|
+
rtText.Top=rtText.Bottom-rtText.Height;
|
|
33568
|
+
}
|
|
33569
|
+
|
|
33570
|
+
if (ptTop.Align=="left")
|
|
33571
|
+
{
|
|
33572
|
+
rtText.Left=left;
|
|
33573
|
+
rtText.Right=rtText.Left+rtText.Width;
|
|
33574
|
+
}
|
|
33575
|
+
else
|
|
33576
|
+
{
|
|
33577
|
+
rtText.Right=left;
|
|
33578
|
+
rtText.Left=rtText.Right-rtText.Width;
|
|
33579
|
+
}
|
|
33580
|
+
|
|
33490
33581
|
this.Canvas.fillText(text,left,ptTop.Y);
|
|
33491
|
-
this.ChartFrame.ChartKLine.Max={X:left, Y:ptTop.Y, Text: { BaseLine:'bottom'}};
|
|
33582
|
+
this.ChartFrame.ChartKLine.Max={X:left, Y:ptTop.Y, Text: { BaseLine:'bottom'}, Rect:rtText };
|
|
33492
33583
|
}
|
|
33493
33584
|
|
|
33494
33585
|
var ptBottom=ptMin;
|
|
@@ -33517,8 +33608,33 @@ function ChartKLine()
|
|
|
33517
33608
|
else text=text+rightArrow;
|
|
33518
33609
|
if (ptBottom.Y<(bottom+1))
|
|
33519
33610
|
{
|
|
33611
|
+
var textSize=GetTextSize(this.Canvas,text);
|
|
33612
|
+
var textWidth=textSize.Width;
|
|
33613
|
+
var textHeight=textSize.Height;
|
|
33614
|
+
if (this.ChartFrame.CoordinateType==1) //反转坐标
|
|
33615
|
+
{
|
|
33616
|
+
var rtText={ Width:textWidth, Height:textHeight, Bottom:ptBottom.Y };
|
|
33617
|
+
rtText.Top=rtText.Bottom-rtText.Height;
|
|
33618
|
+
}
|
|
33619
|
+
else
|
|
33620
|
+
{
|
|
33621
|
+
var rtText={ Width:textWidth, Height:textHeight, Top:ptBottom.Y };
|
|
33622
|
+
rtText.Bottom=rtText.Top+rtText.Height;
|
|
33623
|
+
}
|
|
33624
|
+
|
|
33625
|
+
if (ptBottom.Align=="left")
|
|
33626
|
+
{
|
|
33627
|
+
rtText.Left=left;
|
|
33628
|
+
rtText.Right=rtText.Left+rtText.Width;
|
|
33629
|
+
}
|
|
33630
|
+
else
|
|
33631
|
+
{
|
|
33632
|
+
rtText.Right=left;
|
|
33633
|
+
rtText.Left=rtText.Right-rtText.Width;
|
|
33634
|
+
}
|
|
33635
|
+
|
|
33520
33636
|
this.Canvas.fillText(text,left,ptBottom.Y);
|
|
33521
|
-
this.ChartFrame.ChartKLine.Min={X:left, Y:ptBottom.Y, Text:{ BaseLine:'top'}};
|
|
33637
|
+
this.ChartFrame.ChartKLine.Min={X:left, Y:ptBottom.Y, Text:{ BaseLine:'top'}, Rect:rtText };
|
|
33522
33638
|
}
|
|
33523
33639
|
}
|
|
33524
33640
|
|
|
@@ -35605,7 +35721,99 @@ function ChartKLine()
|
|
|
35605
35721
|
}
|
|
35606
35722
|
}
|
|
35607
35723
|
}
|
|
35608
|
-
|
|
35724
|
+
|
|
35725
|
+
this.GetDaySummaryText=function()
|
|
35726
|
+
{
|
|
35727
|
+
var count=this.DaySummary.MapDate.size;
|
|
35728
|
+
if (count<=0) return null;
|
|
35729
|
+
if (!this.HQChart) return null;
|
|
35730
|
+
|
|
35731
|
+
var text;
|
|
35732
|
+
if (ChartData.IsMinutePeriod(this.Data.Period,true))
|
|
35733
|
+
{
|
|
35734
|
+
text=`${count}${g_JSChartLocalization.GetText('天',this.HQChart.LanguageID)}`;
|
|
35735
|
+
return text;
|
|
35736
|
+
}
|
|
35737
|
+
|
|
35738
|
+
if (ChartData.IsDayPeriod(this.Data.Period,true))
|
|
35739
|
+
{
|
|
35740
|
+
switch(this.Data.Period)
|
|
35741
|
+
{
|
|
35742
|
+
case 0:
|
|
35743
|
+
text=`${count}${g_JSChartLocalization.GetText('天',this.HQChart.LanguageID)}`;
|
|
35744
|
+
break;
|
|
35745
|
+
case 1:
|
|
35746
|
+
text=`${count}${g_JSChartLocalization.GetText('周',this.HQChart.LanguageID)}`;
|
|
35747
|
+
break;
|
|
35748
|
+
case 2:
|
|
35749
|
+
text=`${count}${g_JSChartLocalization.GetText('月',this.HQChart.LanguageID)}`;
|
|
35750
|
+
break;
|
|
35751
|
+
case 4:
|
|
35752
|
+
text=`${count}${g_JSChartLocalization.GetText('年',this.HQChart.LanguageID)}`;
|
|
35753
|
+
break;
|
|
35754
|
+
default:
|
|
35755
|
+
return null;
|
|
35756
|
+
}
|
|
35757
|
+
|
|
35758
|
+
return text;
|
|
35759
|
+
}
|
|
35760
|
+
|
|
35761
|
+
return null;
|
|
35762
|
+
}
|
|
35763
|
+
|
|
35764
|
+
this.DrawDaySummary=function()
|
|
35765
|
+
{
|
|
35766
|
+
if (!this.DaySummary.Enable) return;
|
|
35767
|
+
if (this.ChartFrame.IsHScreen===true) return;
|
|
35768
|
+
|
|
35769
|
+
var text=this.GetDaySummaryText();
|
|
35770
|
+
if (!text) return;
|
|
35771
|
+
|
|
35772
|
+
this.Canvas.font=this.DaySummaryConfig.Font;
|
|
35773
|
+
|
|
35774
|
+
this.Canvas.textAlign = 'left';
|
|
35775
|
+
this.Canvas.textBaseline = 'bottom';
|
|
35776
|
+
|
|
35777
|
+
var border=this.ChartBorder.GetBorder();
|
|
35778
|
+
var xText=border.Left+1;
|
|
35779
|
+
var yText=border.Bottom;
|
|
35780
|
+
|
|
35781
|
+
var textSize=GetTextSize(this.Canvas,text);
|
|
35782
|
+
var textWidth=textSize.Width;
|
|
35783
|
+
var textHeight=textSize.Height;
|
|
35784
|
+
|
|
35785
|
+
var rtText={ Left:xText, Bottom:yText, Width:textWidth, Height:textHeight };
|
|
35786
|
+
rtText.Right=rtText.Left+rtText.Width;
|
|
35787
|
+
rtText.Top=rtText.Bottom-rtText.Height;
|
|
35788
|
+
|
|
35789
|
+
if (this.ChartFrame.ChartKLine.Max && this.ChartFrame.ChartKLine.Max.Rect)
|
|
35790
|
+
{
|
|
35791
|
+
var rtMax=this.ChartFrame.ChartKLine.Max.Rect;
|
|
35792
|
+
if (IsRectOverlap(rtText,rtMax))
|
|
35793
|
+
{
|
|
35794
|
+
rtText.Left=rtMax.Right+2;
|
|
35795
|
+
rtText.Right=rtText.Left+rtText.Width;
|
|
35796
|
+
}
|
|
35797
|
+
}
|
|
35798
|
+
|
|
35799
|
+
if (this.ChartFrame.ChartKLine.Min && this.ChartFrame.ChartKLine.Min.Rect)
|
|
35800
|
+
{
|
|
35801
|
+
var rtMin=this.ChartFrame.ChartKLine.Min.Rect;
|
|
35802
|
+
if (IsRectOverlap(rtText,rtMin))
|
|
35803
|
+
{
|
|
35804
|
+
rtText.Left=rtMin.Right+2;
|
|
35805
|
+
rtText.Right=rtText.Left+rtText.Width;
|
|
35806
|
+
}
|
|
35807
|
+
}
|
|
35808
|
+
|
|
35809
|
+
//this.Canvas.fillStyle="rgb(100,0,100)";
|
|
35810
|
+
//this.Canvas.fillRect(rtText.Left,rtText.Top,rtText.Width,rtText.Height);
|
|
35811
|
+
|
|
35812
|
+
this.Canvas.fillStyle=this.DaySummaryConfig.TextColor;
|
|
35813
|
+
this.Canvas.fillText(text,rtText.Left,rtText.Bottom);
|
|
35814
|
+
|
|
35815
|
+
this.ClearDaySummary();
|
|
35816
|
+
}
|
|
35609
35817
|
}
|
|
35610
35818
|
|
|
35611
35819
|
function ChartColorKline()
|
|
@@ -64339,7 +64547,10 @@ function DynamicChartTitlePainting()
|
|
|
64339
64547
|
}
|
|
64340
64548
|
else
|
|
64341
64549
|
{
|
|
64342
|
-
|
|
64550
|
+
var yRight=right;
|
|
64551
|
+
if (this.Frame.ToolbarCacheSize && this.Frame.ToolbarCacheSize.RToolbar) yRight=this.Frame.ToolbarCacheSize.RToolbar.Left-2; //右侧按钮宽度要去掉
|
|
64552
|
+
this.DrawMainIndexTitle({ Left:left, Right:yRight, Bottom:bottom }, isShowLastData, rtText);
|
|
64553
|
+
if (IFrameSplitOperator.IsNumber(rtText.Bottom)) bottom=rtText.Bottom;
|
|
64343
64554
|
}
|
|
64344
64555
|
|
|
64345
64556
|
left=rtText.Left;
|
|
@@ -64377,7 +64588,7 @@ function DynamicChartTitlePainting()
|
|
|
64377
64588
|
if (this.OverlayIndexType.Position==1)
|
|
64378
64589
|
{
|
|
64379
64590
|
if (!this.Frame.ChartBorder.IsShowTitleOnly)
|
|
64380
|
-
this.DrawOverlayIndexSingleLine(moveonPoint, mouseStatus);
|
|
64591
|
+
this.DrawOverlayIndexSingleLine(moveonPoint, mouseStatus, bottom+1);
|
|
64381
64592
|
}
|
|
64382
64593
|
else
|
|
64383
64594
|
{
|
|
@@ -64569,9 +64780,11 @@ function DynamicChartTitlePainting()
|
|
|
64569
64780
|
if (!this.IsShowMainIndexTitle) return;
|
|
64570
64781
|
|
|
64571
64782
|
var left=positionInfo.Left;
|
|
64783
|
+
var newLineLeft=this.Frame.ChartBorder.GetLeft()+this.MerginLeft+5;
|
|
64572
64784
|
var right=positionInfo.Right;
|
|
64573
64785
|
var bottom=positionInfo.Bottom;
|
|
64574
64786
|
var pixelRatio=GetDevicePixelRatio();
|
|
64787
|
+
var lineHeight=this.Canvas.measureText("擎").width+2;
|
|
64575
64788
|
for(var i=0; i<this.Data.length; ++i)
|
|
64576
64789
|
{
|
|
64577
64790
|
var item=this.Data[i];
|
|
@@ -64611,7 +64824,12 @@ function DynamicChartTitlePainting()
|
|
|
64611
64824
|
}
|
|
64612
64825
|
}
|
|
64613
64826
|
|
|
64614
|
-
if ((left+textWidth+space)>right)
|
|
64827
|
+
if ((left+textWidth+space)>right)
|
|
64828
|
+
{
|
|
64829
|
+
left=newLineLeft;
|
|
64830
|
+
bottom+=lineHeight;
|
|
64831
|
+
right=this.Frame.ChartBorder.GetRight(); //第2行以后 右侧边框
|
|
64832
|
+
}
|
|
64615
64833
|
|
|
64616
64834
|
if (titleItem.BG) //背景
|
|
64617
64835
|
{
|
|
@@ -64670,7 +64888,12 @@ function DynamicChartTitlePainting()
|
|
|
64670
64888
|
}
|
|
64671
64889
|
var space=this.ParamSpace*pixelRatio;
|
|
64672
64890
|
var textWidth=this.Canvas.measureText(text).width+space;
|
|
64673
|
-
if ((left+textWidth)>right)
|
|
64891
|
+
if ((left+textWidth)>right) //换行
|
|
64892
|
+
{
|
|
64893
|
+
left=newLineLeft;
|
|
64894
|
+
bottom+=lineHeight;
|
|
64895
|
+
right=this.Frame.ChartBorder.GetRight(); //第2行以后 右侧边框
|
|
64896
|
+
}
|
|
64674
64897
|
|
|
64675
64898
|
this.Canvas.fillText(text,left,bottom,textWidth);
|
|
64676
64899
|
left+=textWidth;
|
|
@@ -64678,6 +64901,7 @@ function DynamicChartTitlePainting()
|
|
|
64678
64901
|
}
|
|
64679
64902
|
|
|
64680
64903
|
rtText.Left=left;
|
|
64904
|
+
rtText.Bottom=bottom;
|
|
64681
64905
|
}
|
|
64682
64906
|
|
|
64683
64907
|
//集合竞价
|
|
@@ -64866,10 +65090,12 @@ function DynamicChartTitlePainting()
|
|
|
64866
65090
|
return { Text:valueText, ArrayText:aryText };
|
|
64867
65091
|
}
|
|
64868
65092
|
|
|
64869
|
-
this.DrawOverlayIndexSingleLine=function(moveonPoint, mouseStatus) //叠加指标1个指标一行
|
|
65093
|
+
this.DrawOverlayIndexSingleLine=function(moveonPoint, mouseStatus, yTop) //叠加指标1个指标一行
|
|
64870
65094
|
{
|
|
64871
65095
|
var pixelRatio=GetDevicePixelRatio();
|
|
64872
65096
|
var border=this.Frame.GetBorder();
|
|
65097
|
+
var fontHeight=GetFontHeight(this.Canvas,this.Font,"擎");
|
|
65098
|
+
|
|
64873
65099
|
if (this.Frame.IsHScreen===true)
|
|
64874
65100
|
{
|
|
64875
65101
|
var left=1;
|
|
@@ -64880,6 +65106,7 @@ function DynamicChartTitlePainting()
|
|
|
64880
65106
|
else
|
|
64881
65107
|
{
|
|
64882
65108
|
var top=border.TopTitle+2*pixelRatio;
|
|
65109
|
+
if (IFrameSplitOperator.IsNumber(yTop) && yTop>top) top=yTop+fontHeight/2+2*pixelRatio;
|
|
64883
65110
|
if (!this.IsShowMainIndexTitle) top=this.Frame.ChartBorder.GetTop()+2*pixelRatio;
|
|
64884
65111
|
var left=this.Frame.ChartBorder.GetLeft()+this.MerginLeft;
|
|
64885
65112
|
var right=border.Right;
|
|
@@ -64889,7 +65116,6 @@ function DynamicChartTitlePainting()
|
|
|
64889
65116
|
|
|
64890
65117
|
var lineSpace=this.OverlayIndexType.LineSpace*pixelRatio;
|
|
64891
65118
|
var x=left, y=top;
|
|
64892
|
-
var fontHeight=GetFontHeight(this.Canvas,this.Font,"擎");
|
|
64893
65119
|
y=top+fontHeight/2;
|
|
64894
65120
|
for(item of this.OverlayIndex)
|
|
64895
65121
|
{
|
|
@@ -77689,6 +77915,12 @@ function JSChartResource()
|
|
|
77689
77915
|
Text:{ Color:"rgb(105,105,105)", Font:`${12*GetDevicePixelRatio()}px 微软雅黑`}
|
|
77690
77916
|
};
|
|
77691
77917
|
|
|
77918
|
+
this.DaySummaryKLine=
|
|
77919
|
+
{
|
|
77920
|
+
Font:`${12*GetDevicePixelRatio()}px 微软雅黑`,
|
|
77921
|
+
TextColor:"rgb(105,105,105)"
|
|
77922
|
+
}
|
|
77923
|
+
|
|
77692
77924
|
//订单流配置
|
|
77693
77925
|
this.OrderFlow=
|
|
77694
77926
|
{
|
|
@@ -79140,6 +79372,14 @@ function JSChartResource()
|
|
|
79140
79372
|
}
|
|
79141
79373
|
}
|
|
79142
79374
|
|
|
79375
|
+
if (style.DaySummaryKLine)
|
|
79376
|
+
{
|
|
79377
|
+
var item=style.DaySummaryKLine;
|
|
79378
|
+
var dest=this.DaySummaryKLine;
|
|
79379
|
+
if (item.Font) dest.Font=item.Font;
|
|
79380
|
+
if (item.TextColor) dest.TextColor=item.TextColor;
|
|
79381
|
+
}
|
|
79382
|
+
|
|
79143
79383
|
if (style.Index)
|
|
79144
79384
|
{
|
|
79145
79385
|
if (style.Index.LineColor) this.Index.LineColor = style.Index.LineColor;
|
|
@@ -80687,7 +80927,14 @@ function JSChartLocalization()
|
|
|
80687
80927
|
|
|
80688
80928
|
//日盘|夜盘
|
|
80689
80929
|
["日盘",{CN:'日盘', EN:'Day', TC:'日盤'}],
|
|
80690
|
-
["夜盘",{CN:'夜盘', EN:'Night', TC:'夜盤'} ]
|
|
80930
|
+
["夜盘",{CN:'夜盘', EN:'Night', TC:'夜盤'} ],
|
|
80931
|
+
|
|
80932
|
+
|
|
80933
|
+
["天", {CN:'天', EN:'Day', TC:'天'} ],
|
|
80934
|
+
["周", {CN:'周', EN:'Week', TC:'周'} ],
|
|
80935
|
+
["月", {CN:'月', EN:'Month', TC:'月'} ],
|
|
80936
|
+
["年", {CN:'年', EN:'Year', TC:'年'} ],
|
|
80937
|
+
|
|
80691
80938
|
]);
|
|
80692
80939
|
|
|
80693
80940
|
this.GetText=function(key,language)
|
|
@@ -82872,6 +83119,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
82872
83119
|
kline.Name="Main-KLine";
|
|
82873
83120
|
kline.DrawType=this.KLineDrawType;
|
|
82874
83121
|
kline.Identify="Main-KLine";
|
|
83122
|
+
kline.HQChart=this;
|
|
82875
83123
|
kline.GetEventCallback=(id)=>{ return this.GetEventCallback(id); };
|
|
82876
83124
|
|
|
82877
83125
|
this.ChartPaint[0]=kline;
|
|
@@ -87431,6 +87679,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
87431
87679
|
var klineType=klineChart.DrawType;
|
|
87432
87680
|
var bThinAKBar=klineChart.IsThinAKBar;
|
|
87433
87681
|
var priceGap=klineChart.PriceGap; //缺口配置信息
|
|
87682
|
+
var bDaySummary=klineChart.DaySummary.Enable;
|
|
87434
87683
|
var infoPosition=klineChart.InfoPosition;
|
|
87435
87684
|
var coordinateType=null, yCoordinateType=null; //坐标类型
|
|
87436
87685
|
var mainFrame=null;
|
|
@@ -87678,6 +87927,8 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
87678
87927
|
|
|
87679
87928
|
{ Name:"双击弹分时图", Data:{ ID:JSCHART_MENU_ID.CMD_ENABLE_POP_MINUTE_CHART_ID, Args:[!bPopMinuteChart]}, Checked:bPopMinuteChart},
|
|
87680
87929
|
|
|
87930
|
+
{ Name:"显示走完剩余时间", Data:{ ID:JSCHART_MENU_ID.CMD_ENABLE_KLINE_DAY_SUMMARY_ID, Args:[!bDaySummary]}, Checked:bDaySummary},
|
|
87931
|
+
|
|
87681
87932
|
{ Name:JSPopMenu.SEPARATOR_LINE_NAME },
|
|
87682
87933
|
{
|
|
87683
87934
|
Name:"鼠标形状",
|
|
@@ -131528,6 +131779,13 @@ function GetBlackStyle()
|
|
|
131528
131779
|
Text:{ Color:"rgb(219,220,220)", Font:`${12*GetDevicePixelRatio()}px 微软雅黑` }
|
|
131529
131780
|
},
|
|
131530
131781
|
|
|
131782
|
+
DaySummaryKLine:
|
|
131783
|
+
{
|
|
131784
|
+
//Font:`${12*GetDevicePixelRatio()}px 微软雅黑`,
|
|
131785
|
+
TextColor:"rgb(255,165,0)"
|
|
131786
|
+
},
|
|
131787
|
+
|
|
131788
|
+
|
|
131531
131789
|
//指标锁
|
|
131532
131790
|
IndexLock:
|
|
131533
131791
|
{
|
|
@@ -146557,6 +146815,89 @@ function ChartTReport()
|
|
|
146557
146815
|
return null;
|
|
146558
146816
|
}
|
|
146559
146817
|
|
|
146818
|
+
//获取一行位置 option={ Symbol:, RowIndex:}
|
|
146819
|
+
this.GetRowRect=function(option)
|
|
146820
|
+
{
|
|
146821
|
+
if (!this.Data) return null;
|
|
146822
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return null;
|
|
146823
|
+
|
|
146824
|
+
var symbol=null;
|
|
146825
|
+
var rowIndex=null;
|
|
146826
|
+
if (option)
|
|
146827
|
+
{
|
|
146828
|
+
if (option.Symbol) symbol=option.Symbol;
|
|
146829
|
+
if (IFrameSplitOperator.IsNumber(option.RowIndex)) rowIndex=option.RowIndex;
|
|
146830
|
+
}
|
|
146831
|
+
var top=this.RectClient.Top+this.HeaderHeight;
|
|
146832
|
+
var left=this.RectClient.Left;
|
|
146833
|
+
var right=this.RectClient.Right;
|
|
146834
|
+
|
|
146835
|
+
var textTop=top+this.FixedRowHeight*this.FixedRowCount;
|
|
146836
|
+
for(var i=this.Data.YOffset, j=0; i<this.Data.Data.length && j<this.RowCount ;++i, ++j, textTop+=this.RowHeight)
|
|
146837
|
+
{
|
|
146838
|
+
var exePrice=this.Data.Data[i];
|
|
146839
|
+
var rtRow={ Left:left, Top:textTop, Right:right, Bottom: textTop+this.RowHeight };
|
|
146840
|
+
rtRow.Height=rtRow.Bottom-rtRow.Top;
|
|
146841
|
+
rtRow.Width=rtRow.Right-rtRow.Left;
|
|
146842
|
+
|
|
146843
|
+
var data={ RectRow:rtRow, DataIndex:i, Index:j, ExePrice:exePrice };
|
|
146844
|
+
var item=this.GetExePriceDataCallback(exePrice);
|
|
146845
|
+
if (!item) continue;
|
|
146846
|
+
|
|
146847
|
+
var bLeftFind=false, bRightFind=false;
|
|
146848
|
+
if (symbol)
|
|
146849
|
+
{
|
|
146850
|
+
if (item.LeftData && item.LeftData.Symbol && item.LeftData.Symbol==symbol) bLeftFind=true;
|
|
146851
|
+
if (item.RightData && item.RightData.Symbol && item.RightData.Symbol==symbol) bRightFind=true;
|
|
146852
|
+
}
|
|
146853
|
+
else if (IFrameSplitOperator.IsNumber(rowIndex))
|
|
146854
|
+
{
|
|
146855
|
+
if (rowIndex==i)
|
|
146856
|
+
{
|
|
146857
|
+
bLeftFind=true;
|
|
146858
|
+
bRightFind=true;
|
|
146859
|
+
}
|
|
146860
|
+
}
|
|
146861
|
+
|
|
146862
|
+
if (bLeftFind || bRightFind)
|
|
146863
|
+
{
|
|
146864
|
+
data.Item=item;
|
|
146865
|
+
data.AryLeftRect=[];
|
|
146866
|
+
data.AryRightRect=[];
|
|
146867
|
+
data.ElementRect=this.UIElement.getBoundingClientRect();
|
|
146868
|
+
data.PixelRatio=GetDevicePixelRatio();
|
|
146869
|
+
|
|
146870
|
+
var rtCenterItem=this.GetCenterItemRect();
|
|
146871
|
+
var rtCenter={Left:rtCenterItem.Left, Right:rtCenterItem.Right, Top:rtRow.Top, Height:rtRow.Height, Bottom:rtRow.Bottom };
|
|
146872
|
+
|
|
146873
|
+
var xLeft=rtCenterItem.Left; //左边
|
|
146874
|
+
var xRight=rtCenterItem.Right; //右边
|
|
146875
|
+
|
|
146876
|
+
var reportleft=this.RectClient.Left;
|
|
146877
|
+
var reportRight=this.RectClient.Right;
|
|
146878
|
+
for(var k=this.Data.XOffset;k<this.Column.length;++k)
|
|
146879
|
+
{
|
|
146880
|
+
var colItem=this.Column[k];
|
|
146881
|
+
var itemWidth=colItem.Width+this.ItemExtraWidth;
|
|
146882
|
+
xLeft-=itemWidth;
|
|
146883
|
+
if (xLeft<reportleft) break;
|
|
146884
|
+
|
|
146885
|
+
var rtItem={ Left:xLeft, Right:xLeft+itemWidth, Top:rtRow.Top, Height:rtRow.Height, Bottom:rtRow.Bottom, Width:itemWidth };
|
|
146886
|
+
data.AryLeftRect.push({ Rect:rtItem, ColumnIndex:k, Column:colItem })
|
|
146887
|
+
|
|
146888
|
+
rtItem={ Left:xRight, Right:xRight+itemWidth, Top:rtRow.Top, Height:rtRow.Height, Bottom:rtRow.Bottom, Width:itemWidth };
|
|
146889
|
+
data.AryRightRect.push({ Rect:rtItem, ColumnIndex:k, Column:colItem });
|
|
146890
|
+
|
|
146891
|
+
xRight+=itemWidth;
|
|
146892
|
+
}
|
|
146893
|
+
|
|
146894
|
+
return data;
|
|
146895
|
+
}
|
|
146896
|
+
}
|
|
146897
|
+
|
|
146898
|
+
return null;
|
|
146899
|
+
}
|
|
146900
|
+
|
|
146560
146901
|
this.PtInBody=function(x,y)
|
|
146561
146902
|
{
|
|
146562
146903
|
if (!this.Data) return null;
|
|
@@ -157558,7 +157899,7 @@ function HQChartScriptWorker()
|
|
|
157558
157899
|
|
|
157559
157900
|
|
|
157560
157901
|
|
|
157561
|
-
var HQCHART_VERSION="1.1.
|
|
157902
|
+
var HQCHART_VERSION="1.1.14666";
|
|
157562
157903
|
|
|
157563
157904
|
function PrintHQChartVersion()
|
|
157564
157905
|
{
|