hqchart 1.1.13278 → 1.1.13286
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 +77 -61
- package/package.json +1 -1
- package/src/jscommon/umychart.DialogDrawTool.js +3 -0
- package/src/jscommon/umychart.complier.js +9 -10
- package/src/jscommon/umychart.js +286 -130
- package/src/jscommon/umychart.resource/font/drawtool/demo_index.html +49 -3
- package/src/jscommon/umychart.resource/font/drawtool/iconfont.css +11 -3
- package/src/jscommon/umychart.resource/font/drawtool/iconfont.js +1 -1
- package/src/jscommon/umychart.resource/font/drawtool/iconfont.json +14 -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 +296 -141
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +299 -141
package/package.json
CHANGED
|
@@ -105,6 +105,9 @@ function JSDialogDrawTool()
|
|
|
105
105
|
Title:"文字",
|
|
106
106
|
AryChart:
|
|
107
107
|
[
|
|
108
|
+
{ Title:"文字", ClassName: 'hqchart_drawtool icon-draw_text', Type:0, Data:{ ID:"文本" } },
|
|
109
|
+
{ Title:"锚点文字", ClassName: 'hqchart_drawtool icon-maodianwenzi', Type:0, Data:{ ID:"AnchoredText" } },
|
|
110
|
+
{ Title:"注释", ClassName: 'hqchart_drawtool icon-maodian ', Type:0, Data:{ ID:"Note"} },
|
|
108
111
|
{ Title: '价格标签', ClassName: 'hqchart_drawtool icon-Tooltip', Type:0, Data:{ ID:"PriceLabel" } },
|
|
109
112
|
{ Title: '价格注释', ClassName: 'hqchart_drawtool icon-tooltiptext', Type:0, Data:{ ID:"PriceNote" } },
|
|
110
113
|
{ Title: '向上箭头', ClassName: 'iconfont icon-arrow_up', Type:0, Data:{ ID:"icon-arrow_up" } },
|
|
@@ -18812,15 +18812,9 @@ function JSExplainer(ast,option)
|
|
|
18812
18812
|
|
|
18813
18813
|
if (g_JSComplierResource.IsCustomFunction(funcName))
|
|
18814
18814
|
{
|
|
18815
|
-
var
|
|
18816
|
-
node.Out
|
|
18817
|
-
node.
|
|
18818
|
-
|
|
18819
|
-
if (data)
|
|
18820
|
-
{
|
|
18821
|
-
if (data.Out) node.Out=data.Out;
|
|
18822
|
-
if (data.Draw) node.Draw=data.Draw;
|
|
18823
|
-
}
|
|
18815
|
+
var functionInfo=g_JSComplierResource.CustomFunction.Data.get(funcName);
|
|
18816
|
+
if (!functionInfo.Description) node.Out=`自定义函数${funcName}`;
|
|
18817
|
+
else node.Out=functionInfo.Description;
|
|
18824
18818
|
|
|
18825
18819
|
return node.Out;
|
|
18826
18820
|
}
|
|
@@ -19439,7 +19433,12 @@ function JSExplainer(ast,option)
|
|
|
19439
19433
|
return data;
|
|
19440
19434
|
}
|
|
19441
19435
|
|
|
19442
|
-
if (g_JSComplierResource.IsCustomVariant(name))
|
|
19436
|
+
if (g_JSComplierResource.IsCustomVariant(name))
|
|
19437
|
+
{
|
|
19438
|
+
var variantInfo=g_JSComplierResource.CustomVariant.Data.get(name); //读取自定义变量
|
|
19439
|
+
if (variantInfo.Description) return variantInfo.Description;
|
|
19440
|
+
else return name;
|
|
19441
|
+
}
|
|
19443
19442
|
|
|
19444
19443
|
if (this.VarTable.has(name)) return this.VarTable.get(name);
|
|
19445
19444
|
|
package/src/jscommon/umychart.js
CHANGED
|
@@ -2523,6 +2523,8 @@ var JSCHART_EVENT_ID=
|
|
|
2523
2523
|
ON_CHANGE_INDEX:150, //切换指标
|
|
2524
2524
|
ON_MENU_COMMAND:151, //菜单时间回调
|
|
2525
2525
|
ON_CREATE_RIGHT_MENU:152, //创建右键菜单
|
|
2526
|
+
|
|
2527
|
+
ON_FORMAT_CALL_AUCTION_INDEX_TITLE:153, //集合竞价指标窗口标题内容
|
|
2526
2528
|
}
|
|
2527
2529
|
|
|
2528
2530
|
var JSCHART_OPERATOR_ID=
|
|
@@ -5718,14 +5720,11 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
5718
5720
|
}
|
|
5719
5721
|
item.DrawStatus=drawStatus;
|
|
5720
5722
|
|
|
5721
|
-
|
|
5722
|
-
|
|
5723
|
-
|
|
5724
|
-
|
|
5725
|
-
|
|
5726
|
-
item.PointInfo=null;
|
|
5727
|
-
}
|
|
5728
|
-
|
|
5723
|
+
var pointInfo=null;
|
|
5724
|
+
if (option && IFrameSplitOperator.IsNumber(option.ClientPos) && option.Point) //当前鼠标所在位置的详细信息 包含盘前盘后
|
|
5725
|
+
pointInfo={ ClientPos:option.ClientPos, Point:{ X:option.Point.X, Y:option.Point.Y }};
|
|
5726
|
+
item.PointInfo=pointInfo;
|
|
5727
|
+
|
|
5729
5728
|
item.Draw(moveonPoint, this.LastMouseStatus);
|
|
5730
5729
|
}
|
|
5731
5730
|
|
|
@@ -6485,9 +6484,6 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
6485
6484
|
for(var i=0;i<border.DayBorder.length;++i)
|
|
6486
6485
|
{
|
|
6487
6486
|
var client=border.DayBorder[i];
|
|
6488
|
-
this.Canvas.beginPath();
|
|
6489
|
-
this.Canvas.rect(client.LeftEx,border.TopEx,client.RightEx-client.LeftEx,border.BottomEx-border.TopEx);
|
|
6490
|
-
if (this.Canvas.isPointInPath(x,y)) return 1;
|
|
6491
6487
|
|
|
6492
6488
|
//盘前
|
|
6493
6489
|
this.Canvas.beginPath();
|
|
@@ -6495,6 +6491,11 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
6495
6491
|
if (this.Canvas.isPointInPath(x,y))
|
|
6496
6492
|
return 200+parseInt(i);
|
|
6497
6493
|
|
|
6494
|
+
//盘中
|
|
6495
|
+
this.Canvas.beginPath();
|
|
6496
|
+
this.Canvas.rect(client.LeftEx,border.TopEx,client.RightEx-client.LeftEx,border.BottomEx-border.TopEx);
|
|
6497
|
+
if (this.Canvas.isPointInPath(x,y)) return 1;
|
|
6498
|
+
|
|
6498
6499
|
//盘后
|
|
6499
6500
|
this.Canvas.beginPath();
|
|
6500
6501
|
this.Canvas.rect(client.RightEx,border.TopEx,client.Right-client.RightEx,border.BottomEx-border.TopEx);
|
|
@@ -9774,6 +9775,8 @@ function ChartBorder()
|
|
|
9774
9775
|
var item={ Left:this.Left+dayWidth*i, Right:this.Left+dayWidth*(i+1) };
|
|
9775
9776
|
item.LeftEx=item.Left+this.MultiDayMinute.Left;
|
|
9776
9777
|
item.RightEx=item.Right-this.MultiDayMinute.Right;
|
|
9778
|
+
if (i>0) item.Left+=1; //第2天的盘前 移到一个像素,跟上一天分开
|
|
9779
|
+
|
|
9777
9780
|
dayBorder.push(item);
|
|
9778
9781
|
}
|
|
9779
9782
|
|
|
@@ -10443,6 +10446,26 @@ function IChartFramePainting()
|
|
|
10443
10446
|
{
|
|
10444
10447
|
|
|
10445
10448
|
}
|
|
10449
|
+
|
|
10450
|
+
//bIncludeOverlay =false不包含叠加框架 true=主框架+叠加框架 默认true
|
|
10451
|
+
this.IsMinuteFrame=function(bIncludeOverlay)
|
|
10452
|
+
{
|
|
10453
|
+
var aryName=["MinuteFrame", "MinuteHScreenFrame", "OverlayMinuteFrame", "OverlayMinuteHScreenFrame"];
|
|
10454
|
+
if (bIncludeOverlay===false) aryName=["MinuteFrame", "MinuteHScreenFrame"];
|
|
10455
|
+
|
|
10456
|
+
var isMinute=aryName.includes(this.ClassName);
|
|
10457
|
+
return isMinute;
|
|
10458
|
+
}
|
|
10459
|
+
|
|
10460
|
+
//bIncludeOverlay =false不包含叠加框架 true=主框架+叠加框架 默认true
|
|
10461
|
+
this.IsKLineFrame=function(bIncludeOverlay)
|
|
10462
|
+
{
|
|
10463
|
+
var aryName=["KLineFrame", "KLineHScreenFrame", "KLineHScreenFrame", "OverlayKLineHScreenFrame"];
|
|
10464
|
+
if (bIncludeOverlay===false) aryName=["KLineFrame", "KLineHScreenFrame"];
|
|
10465
|
+
|
|
10466
|
+
var isKline=aryName.includes(this.ClassName);
|
|
10467
|
+
return isKline;
|
|
10468
|
+
}
|
|
10446
10469
|
}
|
|
10447
10470
|
|
|
10448
10471
|
//空框架只画边框
|
|
@@ -18914,18 +18937,31 @@ function HQTradeFrame()
|
|
|
18914
18937
|
}
|
|
18915
18938
|
|
|
18916
18939
|
//清空Y轴坐标的最大最小值
|
|
18917
|
-
this.ClearYCoordinateMaxMin=function()
|
|
18940
|
+
this.ClearYCoordinateMaxMin=function(windowIndex)
|
|
18918
18941
|
{
|
|
18919
|
-
|
|
18942
|
+
if (IFrameSplitOperator.IsNumber(windowIndex))
|
|
18920
18943
|
{
|
|
18921
|
-
var subItem=this.SubFrame[
|
|
18922
|
-
|
|
18944
|
+
var subItem=this.SubFrame[windowIndex];
|
|
18945
|
+
if (!subItem || !subItem.Frame) return;
|
|
18923
18946
|
if (frame.YMaxMin)
|
|
18924
18947
|
{
|
|
18925
18948
|
frame.YMaxMin.Max=null;
|
|
18926
18949
|
frame.YMaxMin.Min=null;
|
|
18927
18950
|
}
|
|
18928
18951
|
}
|
|
18952
|
+
else
|
|
18953
|
+
{
|
|
18954
|
+
for(var i=0;i<this.SubFrame.length;++i)
|
|
18955
|
+
{
|
|
18956
|
+
var subItem=this.SubFrame[i];
|
|
18957
|
+
var frame=subItem.Frame;
|
|
18958
|
+
if (frame.YMaxMin)
|
|
18959
|
+
{
|
|
18960
|
+
frame.YMaxMin.Max=null;
|
|
18961
|
+
frame.YMaxMin.Min=null;
|
|
18962
|
+
}
|
|
18963
|
+
}
|
|
18964
|
+
}
|
|
18929
18965
|
}
|
|
18930
18966
|
|
|
18931
18967
|
this.SetLanguage=function(languageID)
|
|
@@ -52520,6 +52556,7 @@ function DynamicChartTitlePainting()
|
|
|
52520
52556
|
this.SelectedColor=g_JSChartResource.IndexTitleSelectedColor;
|
|
52521
52557
|
|
|
52522
52558
|
this.IsKLineFrame=false; //是否是K线框架标题
|
|
52559
|
+
this.IsMinuteFrame=false;
|
|
52523
52560
|
this.Identify; //指标ID
|
|
52524
52561
|
this.SelectedChart; //选中的图形
|
|
52525
52562
|
this.ArgumentsText; //参数信息
|
|
@@ -52542,6 +52579,7 @@ function DynamicChartTitlePainting()
|
|
|
52542
52579
|
this.OverlayDynamicTitle=new Map(); //key , value={ OutName, OutValue }
|
|
52543
52580
|
|
|
52544
52581
|
this.IsShowMainIndexTitle=true; //是否显示主图指标标题
|
|
52582
|
+
this.MainTitlePaint=null; //主标题
|
|
52545
52583
|
|
|
52546
52584
|
this.ReloadResource=function()
|
|
52547
52585
|
{
|
|
@@ -52956,7 +52994,8 @@ function DynamicChartTitlePainting()
|
|
|
52956
52994
|
this.Buttons=[];
|
|
52957
52995
|
if (this.Frame.IsMinSize) return;
|
|
52958
52996
|
|
|
52959
|
-
this.IsKLineFrame= this.Frame.
|
|
52997
|
+
this.IsKLineFrame= this.Frame.IsKLineFrame(false);
|
|
52998
|
+
this.IsMinuteFrame=this.Frame.IsMinuteFrame(false);
|
|
52960
52999
|
this.IsDrawTitleBG=this.Frame.IsDrawTitleBG;
|
|
52961
53000
|
this.IsShowNameArrow=this.Frame.IsShowNameArrow;
|
|
52962
53001
|
this.IsShowUpDownArrow=this.Frame.IsShowTitleArrow;
|
|
@@ -53055,108 +53094,19 @@ function DynamicChartTitlePainting()
|
|
|
53055
53094
|
if (isShowLastData) return;
|
|
53056
53095
|
}
|
|
53057
53096
|
|
|
53058
|
-
|
|
53097
|
+
var rtText={ Left:left, Right:left };
|
|
53098
|
+
if (this.IsMinuteFrame && this.PointInfo && ( this.PointInfo.ClientPos==2 || this.PointInfo.ClientPos==3 || (this.PointInfo.ClientPos>=200&& this.PointInfo.ClientPos<=299) || (this.PointInfo.ClientPos>=300&& this.PointInfo.ClientPos<=399) ))
|
|
53059
53099
|
{
|
|
53060
|
-
var
|
|
53061
|
-
|
|
53062
|
-
if (
|
|
53063
|
-
|
|
53064
|
-
var valueText=outText.Text;
|
|
53065
|
-
var aryText=outText.ArrayText;
|
|
53066
|
-
|
|
53067
|
-
if (aryText) //多变量输出
|
|
53068
|
-
{
|
|
53069
|
-
var text;
|
|
53070
|
-
for(var k=0;k<aryText.length;++k)
|
|
53071
|
-
{
|
|
53072
|
-
var titleItem=aryText[k];
|
|
53073
|
-
if (titleItem.Name) text=titleItem.Name+":"+titleItem.Text;
|
|
53074
|
-
else text=titleItem.Text;
|
|
53075
|
-
|
|
53076
|
-
var space=this.ParamSpace*GetDevicePixelRatio();
|
|
53077
|
-
var indexTextWidth=this.Canvas.measureText(text).width; //标题+数值长度
|
|
53078
|
-
var textWidth=indexTextWidth;
|
|
53079
|
-
|
|
53080
|
-
if (IFrameSplitOperator.IsNonEmptyArray(titleItem.TextEx))
|
|
53081
|
-
{
|
|
53082
|
-
var xLeft=left;
|
|
53083
|
-
for(var n=0; n<titleItem.TextEx.length; ++n)
|
|
53084
|
-
{
|
|
53085
|
-
var outItem=titleItem.TextEx[n];
|
|
53086
|
-
var outTextWidth=this.Canvas.measureText(outItem.Text).width+2;
|
|
53087
|
-
outItem.Width=outTextWidth;
|
|
53088
|
-
outItem.Left=xLeft;
|
|
53089
|
-
|
|
53090
|
-
textWidth+=outTextWidth;
|
|
53091
|
-
xLeft+=outTextWidth;
|
|
53092
|
-
}
|
|
53093
|
-
}
|
|
53094
|
-
|
|
53095
|
-
if ((left+textWidth+space)>right) break;
|
|
53096
|
-
|
|
53097
|
-
if (titleItem.BG) //背景
|
|
53098
|
-
{
|
|
53099
|
-
var textHeight=this.Canvas.measureText("擎").width+2;
|
|
53100
|
-
var rtBG={ Left:left, Top:bottom-textHeight/2, Width:textWidth, Height:textHeight };
|
|
53101
|
-
this.Canvas.fillStyle=titleItem.BG;
|
|
53102
|
-
this.Canvas.fillRect(rtBG.Left,rtBG.Top-1, rtBG.Width, rtBG.Height);
|
|
53103
|
-
|
|
53104
|
-
this.Canvas.fillStyle=titleItem.Color;
|
|
53105
|
-
this.Canvas.fillText(text,rtBG.Left+1,bottom,indexTextWidth);
|
|
53106
|
-
left+=indexTextWidth;
|
|
53107
|
-
|
|
53108
|
-
if (IFrameSplitOperator.IsNonEmptyArray(titleItem.TextEx))
|
|
53109
|
-
{
|
|
53110
|
-
for(var n=0; n<titleItem.TextEx.length; ++n)
|
|
53111
|
-
{
|
|
53112
|
-
var outItem=titleItem.TextEx[n];
|
|
53113
|
-
this.Canvas.fillStyle=outItem.TextColor;
|
|
53114
|
-
this.Canvas.fillText(outItem.Text,left,bottom,outItem.Width);
|
|
53115
|
-
left+=outItem.Width;
|
|
53116
|
-
}
|
|
53117
|
-
}
|
|
53118
|
-
|
|
53119
|
-
left+=space;
|
|
53120
|
-
}
|
|
53121
|
-
else
|
|
53122
|
-
{
|
|
53123
|
-
this.Canvas.fillStyle=titleItem.Color;
|
|
53124
|
-
this.Canvas.fillText(text,left,bottom,indexTextWidth);
|
|
53125
|
-
left+=indexTextWidth;
|
|
53126
|
-
|
|
53127
|
-
if (IFrameSplitOperator.IsNonEmptyArray(titleItem.TextEx))
|
|
53128
|
-
{
|
|
53129
|
-
for(var n=0; n<titleItem.TextEx.length; ++n)
|
|
53130
|
-
{
|
|
53131
|
-
var outItem=titleItem.TextEx[n];
|
|
53132
|
-
this.Canvas.fillStyle=outItem.TextColor;
|
|
53133
|
-
this.Canvas.fillText(outItem.Text,left,bottom,outItem.Width);
|
|
53134
|
-
left+=outItem.Width;
|
|
53135
|
-
}
|
|
53136
|
-
}
|
|
53137
|
-
|
|
53138
|
-
left+=space;
|
|
53139
|
-
}
|
|
53140
|
-
}
|
|
53141
|
-
}
|
|
53142
|
-
else
|
|
53143
|
-
{
|
|
53144
|
-
this.Canvas.fillStyle=item.Color;
|
|
53145
|
-
var text=valueText;
|
|
53146
|
-
if (item.Name)
|
|
53147
|
-
{
|
|
53148
|
-
var dyTitle=this.GetDynamicOutName(item.Name);
|
|
53149
|
-
if (dyTitle) text=dyTitle+":"+valueText;
|
|
53150
|
-
else text=item.Name+":"+valueText;
|
|
53151
|
-
}
|
|
53152
|
-
var space=this.ParamSpace*GetDevicePixelRatio();
|
|
53153
|
-
var textWidth=this.Canvas.measureText(text).width+space;
|
|
53154
|
-
if ((left+textWidth)>right) break;
|
|
53155
|
-
|
|
53156
|
-
this.Canvas.fillText(text,left,bottom,textWidth);
|
|
53157
|
-
left+=textWidth;
|
|
53158
|
-
}
|
|
53100
|
+
var result={ PreventDefault:false }
|
|
53101
|
+
this.DrawMainCallAuction({ Left:left, Right:right, Bottom:bottom }, rtText, result);
|
|
53102
|
+
if (result.PreventDefault===false) this.DrawMainIndexTitle({ Left:left, Right:right, Bottom:bottom }, isShowLastData, rtText);
|
|
53159
53103
|
}
|
|
53104
|
+
else
|
|
53105
|
+
{
|
|
53106
|
+
this.DrawMainIndexTitle({ Left:left, Right:right, Bottom:bottom }, isShowLastData, rtText);
|
|
53107
|
+
}
|
|
53108
|
+
|
|
53109
|
+
left=rtText.Left;
|
|
53160
53110
|
|
|
53161
53111
|
if (this.Explain) //说明信息
|
|
53162
53112
|
{
|
|
@@ -53360,6 +53310,185 @@ function DynamicChartTitlePainting()
|
|
|
53360
53310
|
return { Text:valueText, ArrayText:aryText };
|
|
53361
53311
|
}
|
|
53362
53312
|
|
|
53313
|
+
//绘制主图指标 rtText 返回画完以后的区域
|
|
53314
|
+
this.DrawMainIndexTitle=function(positionInfo, isShowLastData, rtText)
|
|
53315
|
+
{
|
|
53316
|
+
if (!this.IsShowMainIndexTitle) return;
|
|
53317
|
+
|
|
53318
|
+
var left=positionInfo.Left;
|
|
53319
|
+
var right=positionInfo.Right;
|
|
53320
|
+
var bottom=positionInfo.Bottom;
|
|
53321
|
+
|
|
53322
|
+
for(var i=0; i<this.Data.length; ++i)
|
|
53323
|
+
{
|
|
53324
|
+
var item=this.Data[i];
|
|
53325
|
+
var outText=this.GetTitleItem(item, isShowLastData, i);
|
|
53326
|
+
if (!outText) continue;
|
|
53327
|
+
|
|
53328
|
+
var valueText=outText.Text;
|
|
53329
|
+
var aryText=outText.ArrayText;
|
|
53330
|
+
|
|
53331
|
+
if (aryText) //多变量输出
|
|
53332
|
+
{
|
|
53333
|
+
var text;
|
|
53334
|
+
for(var k=0;k<aryText.length;++k)
|
|
53335
|
+
{
|
|
53336
|
+
var titleItem=aryText[k];
|
|
53337
|
+
if (titleItem.Name) text=titleItem.Name+":"+titleItem.Text;
|
|
53338
|
+
else text=titleItem.Text;
|
|
53339
|
+
|
|
53340
|
+
var space=this.ParamSpace*GetDevicePixelRatio();
|
|
53341
|
+
var indexTextWidth=this.Canvas.measureText(text).width; //标题+数值长度
|
|
53342
|
+
var textWidth=indexTextWidth;
|
|
53343
|
+
|
|
53344
|
+
if (IFrameSplitOperator.IsNonEmptyArray(titleItem.TextEx))
|
|
53345
|
+
{
|
|
53346
|
+
var xLeft=left;
|
|
53347
|
+
for(var n=0; n<titleItem.TextEx.length; ++n)
|
|
53348
|
+
{
|
|
53349
|
+
var outItem=titleItem.TextEx[n];
|
|
53350
|
+
var outTextWidth=this.Canvas.measureText(outItem.Text).width+2;
|
|
53351
|
+
outItem.Width=outTextWidth;
|
|
53352
|
+
outItem.Left=xLeft;
|
|
53353
|
+
|
|
53354
|
+
textWidth+=outTextWidth;
|
|
53355
|
+
xLeft+=outTextWidth;
|
|
53356
|
+
}
|
|
53357
|
+
}
|
|
53358
|
+
|
|
53359
|
+
if ((left+textWidth+space)>right) break;
|
|
53360
|
+
|
|
53361
|
+
if (titleItem.BG) //背景
|
|
53362
|
+
{
|
|
53363
|
+
var textHeight=this.Canvas.measureText("擎").width+2;
|
|
53364
|
+
var rtBG={ Left:left, Top:bottom-textHeight/2, Width:textWidth, Height:textHeight };
|
|
53365
|
+
this.Canvas.fillStyle=titleItem.BG;
|
|
53366
|
+
this.Canvas.fillRect(rtBG.Left,rtBG.Top-1, rtBG.Width, rtBG.Height);
|
|
53367
|
+
|
|
53368
|
+
this.Canvas.fillStyle=titleItem.Color;
|
|
53369
|
+
this.Canvas.fillText(text,rtBG.Left+1,bottom,indexTextWidth);
|
|
53370
|
+
left+=indexTextWidth;
|
|
53371
|
+
|
|
53372
|
+
if (IFrameSplitOperator.IsNonEmptyArray(titleItem.TextEx))
|
|
53373
|
+
{
|
|
53374
|
+
for(var n=0; n<titleItem.TextEx.length; ++n)
|
|
53375
|
+
{
|
|
53376
|
+
var outItem=titleItem.TextEx[n];
|
|
53377
|
+
this.Canvas.fillStyle=outItem.TextColor;
|
|
53378
|
+
this.Canvas.fillText(outItem.Text,left,bottom,outItem.Width);
|
|
53379
|
+
left+=outItem.Width;
|
|
53380
|
+
}
|
|
53381
|
+
}
|
|
53382
|
+
|
|
53383
|
+
left+=space;
|
|
53384
|
+
}
|
|
53385
|
+
else
|
|
53386
|
+
{
|
|
53387
|
+
this.Canvas.fillStyle=titleItem.Color;
|
|
53388
|
+
this.Canvas.fillText(text,left,bottom,indexTextWidth);
|
|
53389
|
+
left+=indexTextWidth;
|
|
53390
|
+
|
|
53391
|
+
if (IFrameSplitOperator.IsNonEmptyArray(titleItem.TextEx))
|
|
53392
|
+
{
|
|
53393
|
+
for(var n=0; n<titleItem.TextEx.length; ++n)
|
|
53394
|
+
{
|
|
53395
|
+
var outItem=titleItem.TextEx[n];
|
|
53396
|
+
this.Canvas.fillStyle=outItem.TextColor;
|
|
53397
|
+
this.Canvas.fillText(outItem.Text,left,bottom,outItem.Width);
|
|
53398
|
+
left+=outItem.Width;
|
|
53399
|
+
}
|
|
53400
|
+
}
|
|
53401
|
+
|
|
53402
|
+
left+=space;
|
|
53403
|
+
}
|
|
53404
|
+
}
|
|
53405
|
+
}
|
|
53406
|
+
else
|
|
53407
|
+
{
|
|
53408
|
+
this.Canvas.fillStyle=item.Color;
|
|
53409
|
+
var text=valueText;
|
|
53410
|
+
if (item.Name)
|
|
53411
|
+
{
|
|
53412
|
+
var dyTitle=this.GetDynamicOutName(item.Name);
|
|
53413
|
+
if (dyTitle) text=dyTitle+":"+valueText;
|
|
53414
|
+
else text=item.Name+":"+valueText;
|
|
53415
|
+
}
|
|
53416
|
+
var space=this.ParamSpace*GetDevicePixelRatio();
|
|
53417
|
+
var textWidth=this.Canvas.measureText(text).width+space;
|
|
53418
|
+
if ((left+textWidth)>right) break;
|
|
53419
|
+
|
|
53420
|
+
this.Canvas.fillText(text,left,bottom,textWidth);
|
|
53421
|
+
left+=textWidth;
|
|
53422
|
+
}
|
|
53423
|
+
}
|
|
53424
|
+
|
|
53425
|
+
rtText.Left=left;
|
|
53426
|
+
}
|
|
53427
|
+
|
|
53428
|
+
//集合竞价
|
|
53429
|
+
this.DrawMainCallAuction=function(positionInfo, rtText, result)
|
|
53430
|
+
{
|
|
53431
|
+
if (!this.IsShowMainIndexTitle) return;
|
|
53432
|
+
if (!this.MainTitlePaint) return;
|
|
53433
|
+
var auctionData=this.MainTitlePaint.GetCurrentAuctionData(); //集合竞价分时数据
|
|
53434
|
+
if (!auctionData || !auctionData.Data) return;
|
|
53435
|
+
if (!this.GetEventCallback) return;
|
|
53436
|
+
|
|
53437
|
+
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_FORMAT_CALL_AUCTION_INDEX_TITLE);
|
|
53438
|
+
if (!event) return;
|
|
53439
|
+
|
|
53440
|
+
var data={ AuctionData:auctionData, Data:this.Data, FrameID:this.Frame.Identify, Out:null, PreventDefault:false };
|
|
53441
|
+
event.Callback(event,data,this);
|
|
53442
|
+
result.PreventDefault=data.PreventDefault;
|
|
53443
|
+
|
|
53444
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(data.Out)) return;
|
|
53445
|
+
|
|
53446
|
+
var left=positionInfo.Left;
|
|
53447
|
+
var right=positionInfo.Right;
|
|
53448
|
+
var bottom=positionInfo.Bottom;
|
|
53449
|
+
var pixelRatio=GetDevicePixelRatio();
|
|
53450
|
+
|
|
53451
|
+
var aryText=data.Out; //[{Text:, Color, Space:间距 }]
|
|
53452
|
+
for(var i=0; i<aryText.length; ++i)
|
|
53453
|
+
{
|
|
53454
|
+
var item=aryText[i];
|
|
53455
|
+
if (!item.Text) continue;
|
|
53456
|
+
var textWidth=this.Canvas.measureText(item.Text).width+2;
|
|
53457
|
+
if (left+textWidth>right) break;
|
|
53458
|
+
|
|
53459
|
+
if (item.BGColor) //背景
|
|
53460
|
+
{
|
|
53461
|
+
var textHeight=this.Canvas.measureText("擎").width+2;
|
|
53462
|
+
var rtBG={ Left:left, Top:bottom-textHeight/2, Width:textWidth, Height:textHeight };
|
|
53463
|
+
this.Canvas.fillStyle=item.BGColor;
|
|
53464
|
+
this.Canvas.fillRect(rtBG.Left,rtBG.Top-1, rtBG.Width, rtBG.Height);
|
|
53465
|
+
left+=1;
|
|
53466
|
+
}
|
|
53467
|
+
|
|
53468
|
+
this.Canvas.fillStyle=item.Color;
|
|
53469
|
+
this.Canvas.fillText(item.Text,left,bottom,textWidth);
|
|
53470
|
+
left+=textWidth;
|
|
53471
|
+
|
|
53472
|
+
if (IFrameSplitOperator.IsPlusNumber(item.Space)) left+=item.Space*pixelRatio;
|
|
53473
|
+
}
|
|
53474
|
+
|
|
53475
|
+
rtText.Left=left;
|
|
53476
|
+
}
|
|
53477
|
+
|
|
53478
|
+
this.GetCallAuctionTitleItem=function(item, titleIndex, auctionData)
|
|
53479
|
+
{
|
|
53480
|
+
if (item.IsShow===false) return null;
|
|
53481
|
+
if (item.IsVisible===false) return null;
|
|
53482
|
+
if (!item || !item.Data || !item.Data.Data) return null;
|
|
53483
|
+
|
|
53484
|
+
if (g_ScriptIndexChartFactory.Has(item.DataType)) //外部挂接
|
|
53485
|
+
{
|
|
53486
|
+
var find=g_ScriptIndexChartFactory.Get(item.DataType);
|
|
53487
|
+
if (find && find.FormatTitleCallback)
|
|
53488
|
+
return find.FormatTitleCallback(value, item, dataIndex);
|
|
53489
|
+
}
|
|
53490
|
+
}
|
|
53491
|
+
|
|
53363
53492
|
//获取上一个有效数据
|
|
53364
53493
|
this.GetPreVaildItem=function(data, start)
|
|
53365
53494
|
{
|
|
@@ -68678,8 +68807,10 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
68678
68807
|
}
|
|
68679
68808
|
|
|
68680
68809
|
//绑定主图K线数据
|
|
68681
|
-
this.BindMainData=function(hisData,showCount)
|
|
68810
|
+
this.BindMainData=function(hisData, showCount, chartOperator)
|
|
68682
68811
|
{
|
|
68812
|
+
var isShowAll=false; //全部显示
|
|
68813
|
+
if (chartOperator && chartOperator.IsShowAll===true) isShowAll=true;
|
|
68683
68814
|
this.ChartPaint[0].Data=hisData;
|
|
68684
68815
|
this.ChartPaint[0].Symbol=this.Symbol;
|
|
68685
68816
|
|
|
@@ -68700,9 +68831,10 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
68700
68831
|
for(var i=0;i<this.Frame.SubFrame.length;++i)
|
|
68701
68832
|
{
|
|
68702
68833
|
var item =this.Frame.SubFrame[i].Frame;
|
|
68703
|
-
item.XPointCount=
|
|
68704
|
-
item.
|
|
68834
|
+
if (isShowAll) item.XPointCount=hisData.Data.length+this.RightSpaceCount;
|
|
68835
|
+
else item.XPointCount=showCount+this.RightSpaceCount;
|
|
68705
68836
|
|
|
68837
|
+
item.Data=this.ChartPaint[0].Data;
|
|
68706
68838
|
item.XSplitOperator.Symbol=this.Symbol;
|
|
68707
68839
|
item.XSplitOperator.Period=this.Period;
|
|
68708
68840
|
}
|
|
@@ -68721,17 +68853,25 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
68721
68853
|
item.MainData=this.ChartPaint[0].Data;
|
|
68722
68854
|
}
|
|
68723
68855
|
|
|
68724
|
-
|
|
68725
|
-
|
|
68726
|
-
|
|
68727
|
-
|
|
68856
|
+
if (isShowAll)
|
|
68857
|
+
{
|
|
68858
|
+
var dataOffset=0;
|
|
68859
|
+
this.CursorIndex=0;
|
|
68860
|
+
}
|
|
68861
|
+
else
|
|
68862
|
+
{
|
|
68863
|
+
var dataOffset=hisData.Data.length-showCount;
|
|
68864
|
+
if (dataOffset<0) dataOffset=0;
|
|
68865
|
+
this.ChartPaint[0].Data.DataOffset=dataOffset;
|
|
68866
|
+
|
|
68867
|
+
this.CursorIndex=showCount;
|
|
68868
|
+
if (this.CursorIndex+dataOffset>=hisData.Data.length) this.CursorIndex=hisData.Data.length-1-dataOffset;
|
|
68869
|
+
if (this.CursorIndex<0) this.CursorIndex=0; //不一定对啊
|
|
68870
|
+
}
|
|
68728
68871
|
|
|
68872
|
+
this.ChartPaint[0].Period=this.Period;
|
|
68729
68873
|
this.ChartCorssCursor.StringFormatY.Symbol=this.Symbol;
|
|
68730
68874
|
|
|
68731
|
-
this.CursorIndex=showCount;
|
|
68732
|
-
if (this.CursorIndex+dataOffset>=hisData.Data.length) this.CursorIndex=hisData.Data.length-1-dataOffset;
|
|
68733
|
-
if (this.CursorIndex<0) this.CursorIndex=0; //不一定对啊
|
|
68734
|
-
|
|
68735
68875
|
if (this.CustomShow) //定制显示 1次有效
|
|
68736
68876
|
{
|
|
68737
68877
|
this.SetCustomShow(this.CustomShow,hisData);
|
|
@@ -69600,8 +69740,16 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
69600
69740
|
//绑定数据
|
|
69601
69741
|
this.Symbol=data.symbol;
|
|
69602
69742
|
this.Name=data.name;
|
|
69743
|
+
|
|
69744
|
+
var chartOperator=null; //额外的图形控制
|
|
69745
|
+
if (data && data.ChartOperator)
|
|
69746
|
+
{
|
|
69747
|
+
var item=data.ChartOperator;
|
|
69748
|
+
chartOperator={ };
|
|
69749
|
+
if (item.IsShowAll===true) chartOperator.IsShowAll=true; //全部显示
|
|
69750
|
+
}
|
|
69603
69751
|
|
|
69604
|
-
this.BindMainData(bindData,this.PageSize);
|
|
69752
|
+
this.BindMainData(bindData,this.PageSize,chartOperator);
|
|
69605
69753
|
if (this.AfterBindMainData) this.AfterBindMainData("RecvMinuteHistoryData");
|
|
69606
69754
|
this.Frame.SetSizeChage(true);
|
|
69607
69755
|
|
|
@@ -76860,6 +77008,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
76860
77008
|
titlePaint.LanguageID=this.LanguageID;
|
|
76861
77009
|
titlePaint.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
|
|
76862
77010
|
titlePaint.SelectedChart=this.SelectedChart;
|
|
77011
|
+
titlePaint.MainTitlePaint=this.TitlePaint[0];
|
|
76863
77012
|
this.TitlePaint.push(titlePaint);
|
|
76864
77013
|
}
|
|
76865
77014
|
|
|
@@ -77071,7 +77220,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
77071
77220
|
titlePaint.Frame=this.Frame.SubFrame[index].Frame;
|
|
77072
77221
|
titlePaint.Canvas=this.Canvas;
|
|
77073
77222
|
titlePaint.LanguageID=this.LanguageID;
|
|
77074
|
-
titlePaint.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
|
|
77223
|
+
titlePaint.GetEventCallback=(id)=> { return this.GetEventCallback(id); };
|
|
77224
|
+
titlePaint.MainTitlePaint=this.TitlePaint[0];
|
|
77075
77225
|
this.TitlePaint[index+1]=titlePaint;
|
|
77076
77226
|
|
|
77077
77227
|
this.SetSubFrameOption(subFrame,option);
|
|
@@ -77308,6 +77458,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
77308
77458
|
titlePaint.LanguageID=this.LanguageID;
|
|
77309
77459
|
titlePaint.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
|
|
77310
77460
|
titlePaint.SelectedChart=this.SelectedChart;
|
|
77461
|
+
titlePaint.MainTitlePaint=this.TitlePaint[0];
|
|
77311
77462
|
this.TitlePaint[i+1]=titlePaint;
|
|
77312
77463
|
}
|
|
77313
77464
|
|
|
@@ -77394,6 +77545,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
77394
77545
|
titlePaint.LanguageID=this.LanguageID;
|
|
77395
77546
|
titlePaint.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
|
|
77396
77547
|
titlePaint.SelectedChart=this.SelectedChart;
|
|
77548
|
+
titlePaint.MainTitlePaint=this.TitlePaint[0];
|
|
77397
77549
|
this.TitlePaint[i+1]=titlePaint;
|
|
77398
77550
|
}
|
|
77399
77551
|
}
|
|
@@ -78047,7 +78199,11 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
78047
78199
|
}
|
|
78048
78200
|
}
|
|
78049
78201
|
|
|
78050
|
-
if (optionChanged)
|
|
78202
|
+
if (optionChanged)
|
|
78203
|
+
{
|
|
78204
|
+
this.Frame.ClearYCoordinateMaxMin();
|
|
78205
|
+
this.RequestData();
|
|
78206
|
+
}
|
|
78051
78207
|
}
|
|
78052
78208
|
|
|
78053
78209
|
this.RequestData=function()
|