hqchart 1.1.14084 → 1.1.14097
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 +92 -91
- package/package.json +1 -1
- package/src/jscommon/umychart.DialogSearchIndex.js +429 -5
- package/src/jscommon/umychart.js +133 -270
- package/src/jscommon/umychart.report.js +36 -5
- package/src/jscommon/umychart.resource/css/tools.css +136 -0
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +170 -276
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +599 -281
|
@@ -3978,9 +3978,6 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
3978
3978
|
this.CacheCanvasElement=null;
|
|
3979
3979
|
if (bCacheCanvas) this.CacheCanvasElement=document.createElement("canvas");
|
|
3980
3980
|
|
|
3981
|
-
//改参数div
|
|
3982
|
-
this.ModifyIndexDialog=new ModifyIndexDialog(divElement);
|
|
3983
|
-
|
|
3984
3981
|
//额外的画布
|
|
3985
3982
|
this.MapExtraCanvasElement=new Map(); //key=画布名字, value={ Element:, Canvas:}
|
|
3986
3983
|
|
|
@@ -4213,9 +4210,6 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4213
4210
|
if (option.EventCallback) this.SetEventCallback(chart, option.EventCallback);
|
|
4214
4211
|
if (option.NetworkFilter) chart.NetworkFilter=option.NetworkFilter;
|
|
4215
4212
|
|
|
4216
|
-
//创建改参数div
|
|
4217
|
-
chart.ModifyIndexDialog=this.ModifyIndexDialog;
|
|
4218
|
-
|
|
4219
4213
|
var pixelRatio=GetDevicePixelRatio();
|
|
4220
4214
|
|
|
4221
4215
|
//右键菜单
|
|
@@ -4665,9 +4659,6 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4665
4659
|
{
|
|
4666
4660
|
var chart=new CustomKLineChartContainer(this.CanvasElement);
|
|
4667
4661
|
|
|
4668
|
-
//创建改参数div
|
|
4669
|
-
chart.ModifyIndexDialog=this.ModifyIndexDialog;
|
|
4670
|
-
|
|
4671
4662
|
//右键菜单
|
|
4672
4663
|
if (IFrameSplitOperator.IsBool(option.IsShowRightMenu)) chart.IsShowRightMenu=option.IsShowRightMenu;
|
|
4673
4664
|
|
|
@@ -4768,8 +4759,6 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4768
4759
|
if (option.EventCallback) this.SetEventCallback(chart, option.EventCallback);
|
|
4769
4760
|
if (option.NetworkFilter) chart.NetworkFilter=option.NetworkFilter;
|
|
4770
4761
|
|
|
4771
|
-
chart.ModifyIndexDialog=this.ModifyIndexDialog;
|
|
4772
|
-
|
|
4773
4762
|
var pixelRatio=GetDevicePixelRatio();
|
|
4774
4763
|
|
|
4775
4764
|
var windowsCount=2;
|
|
@@ -5348,9 +5337,6 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
5348
5337
|
if (option.NetworkFilter) chart.NetworkFilter=option.NetworkFilter;
|
|
5349
5338
|
if (option.IsApiPeriod==true) chart.IsApiPeriod=option.IsApiPeriod;
|
|
5350
5339
|
|
|
5351
|
-
//创建改参数div
|
|
5352
|
-
chart.ModifyIndexDialog=this.ModifyIndexDialog;
|
|
5353
|
-
|
|
5354
5340
|
if (option.ScriptError) chart.ScriptErrorCallback=option.ScriptError;
|
|
5355
5341
|
|
|
5356
5342
|
if (option.KLine) //k线图的属性设置
|
|
@@ -5648,6 +5634,9 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
5648
5634
|
if (option.SelectRectDialog && option.SelectRectDialog.Enable)
|
|
5649
5635
|
chart.InitalSelectRectDialog(option.SelectRectDialog);
|
|
5650
5636
|
|
|
5637
|
+
if (option.ModifyIndexParamDialog && option.ModifyIndexParamDialog.Enable)
|
|
5638
|
+
chart.InitalModifyIndexParamDialog(option.ModifyIndexParamDialog);
|
|
5639
|
+
|
|
5651
5640
|
if (option.SearchIndexDialog && option.SearchIndexDialog.Enable)
|
|
5652
5641
|
chart.InitalSearchIndexDialog(option.SearchIndexDialog);
|
|
5653
5642
|
|
|
@@ -6746,6 +6735,9 @@ var JSCHART_MENU_ID=
|
|
|
6746
6735
|
|
|
6747
6736
|
CMD_DIALOG_TOOLTIP_ATTRIBUTE:65, //修改K线信息框属性 Ary:[{ Enable:, Style:}, ]
|
|
6748
6737
|
CMD_KLINE_TOOLTIP_ATTRIBUTE:66, //修改K线提示框属性 Ary:[{ Enable:true/false, EnableKeyDown:true/false}]
|
|
6738
|
+
|
|
6739
|
+
CMD_MODIFY_INDEX_PARAM:67, //指标删除修改 [windowIndex, ]
|
|
6740
|
+
CMD_MODIFY_OVERLAY_INDEX_PARAM:68, //叠加指标修改 [windowIndex, ID ]
|
|
6749
6741
|
}
|
|
6750
6742
|
|
|
6751
6743
|
|
|
@@ -6974,6 +6966,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
6974
6966
|
this.DialogSelectRect; //区间统计
|
|
6975
6967
|
this.FloatTooltip; //浮动tooltip信息
|
|
6976
6968
|
this.DialogSearchIndex; //指标搜索
|
|
6969
|
+
this.DialogModifyIndexParam; //指标参数修改
|
|
6977
6970
|
|
|
6978
6971
|
|
|
6979
6972
|
this.ClearStockCache=function()
|
|
@@ -7043,6 +7036,15 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
7043
7036
|
this.DialogSearchIndex.Create();
|
|
7044
7037
|
}
|
|
7045
7038
|
|
|
7039
|
+
this.InitalModifyIndexParamDialog=function(option)
|
|
7040
|
+
{
|
|
7041
|
+
if (this.DialogModifyIndexParam) return;
|
|
7042
|
+
|
|
7043
|
+
this.DialogModifyIndexParam=new JSDialogModifyIndexParam();
|
|
7044
|
+
this.DialogModifyIndexParam.Inital(this, option);
|
|
7045
|
+
this.DialogModifyIndexParam.Create();
|
|
7046
|
+
}
|
|
7047
|
+
|
|
7046
7048
|
this.ShowChangeIndexDialog=function(data)
|
|
7047
7049
|
{
|
|
7048
7050
|
if (!data) return;
|
|
@@ -7062,6 +7064,46 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
7062
7064
|
this.DialogSearchIndex.SetOpData(data);
|
|
7063
7065
|
this.DialogSearchIndex.Show();
|
|
7064
7066
|
}
|
|
7067
|
+
|
|
7068
|
+
//添加指标窗口
|
|
7069
|
+
this.ShowAddIndexWindowDialog=function(option)
|
|
7070
|
+
{
|
|
7071
|
+
if (!this.DialogSearchIndex) return;
|
|
7072
|
+
var data=option;
|
|
7073
|
+
if (!data) data={ };
|
|
7074
|
+
|
|
7075
|
+
data.OpType=3;
|
|
7076
|
+
|
|
7077
|
+
data.Title=`增加指标窗口`;
|
|
7078
|
+
this.DialogSearchIndex.SetOpData(data);
|
|
7079
|
+
this.DialogSearchIndex.Show();
|
|
7080
|
+
}
|
|
7081
|
+
|
|
7082
|
+
this.ShowModifyIndexParamDialog=function(data)
|
|
7083
|
+
{
|
|
7084
|
+
if (!this.DialogModifyIndexParam) return;
|
|
7085
|
+
|
|
7086
|
+
if (data.Type==1)
|
|
7087
|
+
{
|
|
7088
|
+
var indexScript=this.WindowIndex[data.WindowIndex];
|
|
7089
|
+
if (!indexScript) return;
|
|
7090
|
+
|
|
7091
|
+
data.IndexScript=indexScript;
|
|
7092
|
+
data.Title=`[${indexScript.Name}]参数修改 窗口[${data.WindowIndex+1}]`;
|
|
7093
|
+
}
|
|
7094
|
+
else if (data.Type==2)
|
|
7095
|
+
{
|
|
7096
|
+
var overlayIndex=this.GetOverlayIndexByIdentify(data.Identify);
|
|
7097
|
+
if (!overlayIndex || !overlayIndex.OverlayItem.Script) return;
|
|
7098
|
+
var indexScript=overlayIndex.OverlayItem.Script;
|
|
7099
|
+
|
|
7100
|
+
data.IndexScript=indexScript;
|
|
7101
|
+
data.Title=`[${indexScript.Name}]参数修改 叠加窗口[${data.WindowIndex+1}]`;
|
|
7102
|
+
}
|
|
7103
|
+
|
|
7104
|
+
this.DialogModifyIndexParam.SetIndexData(data);
|
|
7105
|
+
this.DialogModifyIndexParam.Show();
|
|
7106
|
+
}
|
|
7065
7107
|
|
|
7066
7108
|
|
|
7067
7109
|
this.DrawSelectRectDialog=function()
|
|
@@ -12698,6 +12740,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
12698
12740
|
if (IFrameSplitOperator.IsNumber(windowItem.IndexParamSpace)) frame.IndexParamSpace=windowItem.IndexParamSpace;
|
|
12699
12741
|
if (IFrameSplitOperator.IsNumber(windowItem.IndexTitleSpace)) frame.IndexTitleSpace=windowItem.IndexTitleSpace;
|
|
12700
12742
|
if (!IFrameSplitOperator.IsUndefined(windowItem.HorizontalReserved)) frame.HorizontalReserved=windowItem.HorizontalReserved; //Y轴上下预留
|
|
12743
|
+
if (IFrameSplitOperator.IsBool(windowItem.IsShowNameArrow)) frame.IsShowNameArrow=windowItem.IsShowNameArrow;
|
|
12701
12744
|
}
|
|
12702
12745
|
|
|
12703
12746
|
if (frameItem)
|
|
@@ -13937,6 +13980,17 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
13937
13980
|
if (IFrameSplitOperator.IsBool(option.Enable)) this.KLineTooltipConfig.Enable=option.Enable;
|
|
13938
13981
|
if (IFrameSplitOperator.IsBool(option.EnableKeyDown)) this.KLineTooltipConfig.EnableKeyDown=option.EnableKeyDown;
|
|
13939
13982
|
break;
|
|
13983
|
+
case JSCHART_MENU_ID.CMD_MODIFY_INDEX_PARAM:
|
|
13984
|
+
if (param==null) return false;
|
|
13985
|
+
var sendData={ e:null, WindowIndex:param, Type:1 }
|
|
13986
|
+
this.ShowModifyIndexParamDialog(sendData);
|
|
13987
|
+
break;
|
|
13988
|
+
case JSCHART_MENU_ID.CMD_MODIFY_OVERLAY_INDEX_PARAM:
|
|
13989
|
+
if (param==null) return false;
|
|
13990
|
+
if (!aryArgs[1]) return false;
|
|
13991
|
+
var sendData={ e:null, WindowIndex:param, Type:2, Identify:aryArgs[1] };
|
|
13992
|
+
this.ShowModifyIndexParamDialog(sendData);
|
|
13993
|
+
break;
|
|
13940
13994
|
}
|
|
13941
13995
|
}
|
|
13942
13996
|
|
|
@@ -13950,6 +14004,12 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
13950
14004
|
return data;
|
|
13951
14005
|
}
|
|
13952
14006
|
|
|
14007
|
+
this.GetModifyIndexMenuData=function(windowIndex)
|
|
14008
|
+
{
|
|
14009
|
+
var data= { Name:"参数修改", Data:{ ID: JSCHART_MENU_ID.CMD_MODIFY_INDEX_PARAM, Args:[windowIndex] } };
|
|
14010
|
+
return data;
|
|
14011
|
+
}
|
|
14012
|
+
|
|
13953
14013
|
this.GetShowOverlayIndexMenuData=function(indexGuid, showType)
|
|
13954
14014
|
{
|
|
13955
14015
|
var overlay=this.GetOverlayIndexByIdentify(indexGuid);
|
|
@@ -13961,6 +14021,15 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
13961
14021
|
return data;
|
|
13962
14022
|
}
|
|
13963
14023
|
|
|
14024
|
+
this.GetModifyOverlayIndexMenuData=function(indexGuid)
|
|
14025
|
+
{
|
|
14026
|
+
var overlay=this.GetOverlayIndexByIdentify(indexGuid);
|
|
14027
|
+
if (!overlay) return null;
|
|
14028
|
+
|
|
14029
|
+
var data= { Name:"参数修改", Data:{ ID: JSCHART_MENU_ID.CMD_MODIFY_OVERLAY_INDEX_PARAM, Args:[overlay.WindowIndex,indexGuid] } };
|
|
14030
|
+
return data;
|
|
14031
|
+
}
|
|
14032
|
+
|
|
13964
14033
|
this.GetShowOverlayIndexYAxisMenuData=function(indexGuid, showType)
|
|
13965
14034
|
{
|
|
13966
14035
|
var overlay=this.GetOverlayIndexByIdentify(indexGuid);
|
|
@@ -17837,7 +17906,6 @@ function MinuteFrame()
|
|
|
17837
17906
|
this.ExportData=g_JSChartResource.MinuteToolbar.ExportData; //是否显示'导出数据'菜单
|
|
17838
17907
|
this.OverlayIndex=g_JSChartResource.MinuteToolbar.OverlayIndex; //是否显示叠加指标
|
|
17839
17908
|
|
|
17840
|
-
this.ModifyIndexEvent; //改参数 点击事件
|
|
17841
17909
|
this.ToolbarRect=null; //保存工具条的位置
|
|
17842
17910
|
this.IsShowPositionTitle=false; //是否显示持仓标题
|
|
17843
17911
|
|
|
@@ -20266,7 +20334,6 @@ function KLineFrame()
|
|
|
20266
20334
|
|
|
20267
20335
|
this.SelBorderColor=g_JSChartResource.SelFrameBorderColor;
|
|
20268
20336
|
|
|
20269
|
-
this.ModifyIndexEvent; //改参数 点击事件
|
|
20270
20337
|
this.ToolbarRect=null; //保存工具条的位置
|
|
20271
20338
|
this.ReDrawToolbar=false;
|
|
20272
20339
|
|
|
@@ -37986,6 +38053,13 @@ function ChartStickLine()
|
|
|
37986
38053
|
return (this.BarType==1 || this.BarType==-1);
|
|
37987
38054
|
}
|
|
37988
38055
|
|
|
38056
|
+
this.CalculateBarHeight=function(y,y2)
|
|
38057
|
+
{
|
|
38058
|
+
var barHeight=Math.abs(y-y2);
|
|
38059
|
+
if (barHeight<=0) barHeight=1;
|
|
38060
|
+
return barHeight;
|
|
38061
|
+
}
|
|
38062
|
+
|
|
37989
38063
|
this.Draw=function()
|
|
37990
38064
|
{
|
|
37991
38065
|
if (!this.IsShow || this.ChartFrame.IsMinSize || !this.IsVisible) return;
|
|
@@ -38125,7 +38199,7 @@ function ChartStickLine()
|
|
|
38125
38199
|
}
|
|
38126
38200
|
else
|
|
38127
38201
|
{
|
|
38128
|
-
this.Canvas.fillRect(ToFixedRect(left),ToFixedRect(Math.min(y,y2)),ToFixedRect(width),ToFixedRect(
|
|
38202
|
+
this.Canvas.fillRect(ToFixedRect(left),ToFixedRect(Math.min(y,y2)),ToFixedRect(width),ToFixedRect(this.CalculateBarHeight(y,y2)));
|
|
38129
38203
|
}
|
|
38130
38204
|
}
|
|
38131
38205
|
}
|
|
@@ -38152,9 +38226,14 @@ function ChartStickLine()
|
|
|
38152
38226
|
else
|
|
38153
38227
|
{
|
|
38154
38228
|
if (isHScreen)
|
|
38229
|
+
{
|
|
38155
38230
|
this.Canvas.fillRect(ToFixedRect(Math.min(y,y2)),ToFixedRect(xOffset),ToFixedRect(Math.abs(y-y2)),ToFixedRect(dataWidth));
|
|
38231
|
+
}
|
|
38156
38232
|
else
|
|
38157
|
-
|
|
38233
|
+
{
|
|
38234
|
+
this.Canvas.fillRect(ToFixedRect(xOffset),ToFixedRect(Math.min(y,y2)),ToFixedRect(dataWidth),ToFixedRect(this.CalculateBarHeight(y,y2)));
|
|
38235
|
+
}
|
|
38236
|
+
|
|
38158
38237
|
}
|
|
38159
38238
|
}
|
|
38160
38239
|
else
|
|
@@ -38170,8 +38249,9 @@ function ChartStickLine()
|
|
|
38170
38249
|
{
|
|
38171
38250
|
var xFix=parseInt(x.toString())+0.5;
|
|
38172
38251
|
this.Canvas.beginPath();
|
|
38173
|
-
this.Canvas.moveTo(xFix,y);
|
|
38174
|
-
this.Canvas.lineTo(xFix,y2);
|
|
38252
|
+
this.Canvas.moveTo(xFix,y);
|
|
38253
|
+
if (Math.abs(y-y2)>0) this.Canvas.lineTo(xFix,y2);
|
|
38254
|
+
else this.Canvas.lineTo(xFix,y+1); //太窄了,就画一个像素的宽度
|
|
38175
38255
|
this.Canvas.stroke();
|
|
38176
38256
|
}
|
|
38177
38257
|
}
|
|
@@ -52257,6 +52337,17 @@ IFrameSplitOperator.RemoveZero=function(strValue)
|
|
|
52257
52337
|
return strValue;
|
|
52258
52338
|
}
|
|
52259
52339
|
|
|
52340
|
+
//移除代码市场后缀
|
|
52341
|
+
IFrameSplitOperator.RemoveMarketSuffix=function(symbol)
|
|
52342
|
+
{
|
|
52343
|
+
if (!symbol) return symbol;
|
|
52344
|
+
|
|
52345
|
+
var pos=symbol.lastIndexOf(".");
|
|
52346
|
+
if (pos>0) return symbol.substring(0,pos);
|
|
52347
|
+
|
|
52348
|
+
return symbol;
|
|
52349
|
+
}
|
|
52350
|
+
|
|
52260
52351
|
function FrameSplitKLinePriceY()
|
|
52261
52352
|
{
|
|
52262
52353
|
this.newMethod=IFrameSplitOperator; //派生
|
|
@@ -73240,6 +73331,17 @@ function JSChartResource()
|
|
|
73240
73331
|
InputTextColor:"rgb(0,0,0)"
|
|
73241
73332
|
};
|
|
73242
73333
|
|
|
73334
|
+
this.DialogModifyIndexParam=
|
|
73335
|
+
{
|
|
73336
|
+
BGColor:'rgb(250,250,250)', //背景色
|
|
73337
|
+
BorderColor:'rgb(20,20,20)', //边框颜色
|
|
73338
|
+
TitleColor:'rgb(250,250,250)', //标题颜色
|
|
73339
|
+
TitleBGColor:"rgb(200, 66, 69)", //标题背景颜色
|
|
73340
|
+
|
|
73341
|
+
ParamNameColor:"rgb(0,0,0)", //数值名称
|
|
73342
|
+
InputTextColor:"rgb(0,0,0)"
|
|
73343
|
+
};
|
|
73344
|
+
|
|
73243
73345
|
//弹幕
|
|
73244
73346
|
this.Barrage= {
|
|
73245
73347
|
Font:16*GetDevicePixelRatio() +'px 微软雅黑', //字体
|
|
@@ -73654,7 +73756,7 @@ function JSChartResource()
|
|
|
73654
73756
|
SortIcon:
|
|
73655
73757
|
{
|
|
73656
73758
|
Size:12, Family:"iconfont",
|
|
73657
|
-
Arrow:[null, "\ue6b2", "\ue6b1"],
|
|
73759
|
+
Arrow:[null, "\ue6b2", "\ue6b1"], //[0]=默认排序的图标背景色
|
|
73658
73760
|
Color:[null, "rgb(255,0,0)", "rgb(255,0,0)"],
|
|
73659
73761
|
Margin:{ Left:0, Bottom:6 }
|
|
73660
73762
|
},
|
|
@@ -77402,8 +77504,6 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
77402
77504
|
frame.GetEventCallback=(id)=> { return this.GetEventCallback(id); };
|
|
77403
77505
|
frame.GlobalOption=this.GlobalOption;
|
|
77404
77506
|
|
|
77405
|
-
if (this.ModifyIndexDialog) frame.ModifyIndexEvent=this.ModifyIndexDialog.DoModal; //绑定菜单事件
|
|
77406
|
-
|
|
77407
77507
|
frame.HorizontalMax=20;
|
|
77408
77508
|
frame.HorizontalMin=10;
|
|
77409
77509
|
|
|
@@ -77486,8 +77586,6 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
77486
77586
|
frame.GetEventCallback=(id)=> { return this.GetEventCallback(id); };
|
|
77487
77587
|
frame.GlobalOption=this.GlobalOption;
|
|
77488
77588
|
|
|
77489
|
-
if (this.ModifyIndexDialog) frame.ModifyIndexEvent=this.ModifyIndexDialog.DoModal; //绑定菜单事件
|
|
77490
|
-
|
|
77491
77589
|
frame.HorizontalMax=20;
|
|
77492
77590
|
frame.HorizontalMin=10;
|
|
77493
77591
|
frame.YSplitOperator=new FrameSplitY();
|
|
@@ -83472,9 +83570,8 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
83472
83570
|
{
|
|
83473
83571
|
var id=button.IndexID;
|
|
83474
83572
|
var frame=button.Frame;
|
|
83475
|
-
|
|
83476
|
-
|
|
83477
|
-
frame.ModifyIndexEvent(e);
|
|
83573
|
+
var sendData={ e:e, WindowIndex:frame.Identify, Type:2, Identify:id };
|
|
83574
|
+
this.ShowModifyIndexParamDialog(sendData);
|
|
83478
83575
|
}
|
|
83479
83576
|
else if (button.ID==JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW)
|
|
83480
83577
|
{
|
|
@@ -83495,9 +83592,8 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
83495
83592
|
else if (button.ID==JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM)
|
|
83496
83593
|
{
|
|
83497
83594
|
var frame=button.Frame;
|
|
83498
|
-
|
|
83499
|
-
|
|
83500
|
-
frame.ModifyIndexEvent(e);
|
|
83595
|
+
var sendData={ e:e, WindowIndex:frame.Identify, Type:1 }
|
|
83596
|
+
this.ShowModifyIndexParamDialog(sendData);
|
|
83501
83597
|
}
|
|
83502
83598
|
else if (button.ID==JSCHART_BUTTON_ID.OVERLAY_INDEX)
|
|
83503
83599
|
{
|
|
@@ -84309,9 +84405,9 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
84309
84405
|
{
|
|
84310
84406
|
var id=button.IndexID;
|
|
84311
84407
|
var frame=button.Frame;
|
|
84312
|
-
|
|
84313
|
-
|
|
84314
|
-
|
|
84408
|
+
var sendData={ e:e, WindowIndex:frame.Identify, Type:2, Identify:id };
|
|
84409
|
+
this.ShowModifyIndexParamDialog(sendData);
|
|
84410
|
+
|
|
84315
84411
|
}
|
|
84316
84412
|
else if (button.ID==JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW)
|
|
84317
84413
|
{
|
|
@@ -84327,9 +84423,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
84327
84423
|
else if (button.ID==JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM)
|
|
84328
84424
|
{
|
|
84329
84425
|
var frame=button.Frame;
|
|
84330
|
-
|
|
84331
|
-
|
|
84332
|
-
frame.ModifyIndexEvent(e);
|
|
84426
|
+
var sendData={ e:e, WindowIndex:frame.Identify, Type:1 }
|
|
84427
|
+
this.ShowModifyIndexParamDialog(sendData);
|
|
84333
84428
|
}
|
|
84334
84429
|
else if (button.ID==JSCHART_BUTTON_ID.OVERLAY_INDEX)
|
|
84335
84430
|
{
|
|
@@ -86096,7 +86191,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
86096
86191
|
|
|
86097
86192
|
if (i>=2)
|
|
86098
86193
|
{
|
|
86099
|
-
|
|
86194
|
+
|
|
86100
86195
|
}
|
|
86101
86196
|
|
|
86102
86197
|
var DEFAULT_HORIZONTAL=[9,8,7,6,5,4,3,2,1];
|
|
@@ -86183,12 +86278,6 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
86183
86278
|
frame.GlobalOption=this.GlobalOption;
|
|
86184
86279
|
frame.HQChart=this;
|
|
86185
86280
|
frame.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
|
|
86186
|
-
|
|
86187
|
-
|
|
86188
|
-
if (id>=2)
|
|
86189
|
-
{
|
|
86190
|
-
if (this.ModifyIndexDialog) frame.ModifyIndexEvent=this.ModifyIndexDialog.DoModal; //绑定菜单事件
|
|
86191
|
-
}
|
|
86192
86281
|
|
|
86193
86282
|
var DEFAULT_HORIZONTAL=[9,8,7,6,5,4,3,2,1];
|
|
86194
86283
|
frame.HorizontalMax=DEFAULT_HORIZONTAL[0];
|
|
@@ -91761,8 +91850,6 @@ function KLineChartHScreenContainer(uielement)
|
|
|
91761
91850
|
frame.Identify=i; //窗口序号
|
|
91762
91851
|
frame.RightSpaceCount=this.RightSpaceCount; //右边
|
|
91763
91852
|
|
|
91764
|
-
if (this.ModifyIndexDialog) frame.ModifyIndexEvent=this.ModifyIndexDialog.DoModal; //绑定菜单事件
|
|
91765
|
-
|
|
91766
91853
|
frame.HorizontalMax=20;
|
|
91767
91854
|
frame.HorizontalMin=10;
|
|
91768
91855
|
|
|
@@ -94367,230 +94454,6 @@ function IDivDialog(divElement)
|
|
|
94367
94454
|
}
|
|
94368
94455
|
}
|
|
94369
94456
|
|
|
94370
|
-
|
|
94371
|
-
//修改指标
|
|
94372
|
-
function ModifyIndexDialog(divElement)
|
|
94373
|
-
{
|
|
94374
|
-
this.newMethod=IDivDialog; //派生
|
|
94375
|
-
this.newMethod(divElement);
|
|
94376
|
-
delete this.newMethod;
|
|
94377
|
-
|
|
94378
|
-
this.Title={ ID:Guid() }; //标题
|
|
94379
|
-
this.ParamList={ID:Guid() }; //参数列表 class='parameter-content'
|
|
94380
|
-
this.ParamData=[]; //{ ID:参数ID, Value:参数值}
|
|
94381
|
-
this.Identify;
|
|
94382
|
-
this.HQChart;
|
|
94383
|
-
this.IsOverlay=false; //是否是叠加指标
|
|
94384
|
-
|
|
94385
|
-
this.IndexScript;
|
|
94386
|
-
|
|
94387
|
-
//创建
|
|
94388
|
-
this.Create=function()
|
|
94389
|
-
{
|
|
94390
|
-
this.ID=Guid();
|
|
94391
|
-
|
|
94392
|
-
var div=document.createElement('div');
|
|
94393
|
-
div.className='jchart-modifyindex-box';
|
|
94394
|
-
div.id=this.ID;
|
|
94395
|
-
div.innerHTML=
|
|
94396
|
-
"<div class='parameter'>\
|
|
94397
|
-
<div class='parameter-header'>\
|
|
94398
|
-
<span></span>\
|
|
94399
|
-
<strong id='close' class='icon iconfont icon-close'></strong>\
|
|
94400
|
-
</div>\
|
|
94401
|
-
<div class='parameter-content'><input/>MA</div>\
|
|
94402
|
-
<div class='parameter-footer'>\
|
|
94403
|
-
<button class='submit' >确定</button>\
|
|
94404
|
-
<button class='cancel' >取消</button>\
|
|
94405
|
-
</div>\
|
|
94406
|
-
</div>";
|
|
94407
|
-
|
|
94408
|
-
this.DivElement.appendChild(div);
|
|
94409
|
-
|
|
94410
|
-
//确定按钮
|
|
94411
|
-
$("#"+this.ID+" .submit").click(
|
|
94412
|
-
{
|
|
94413
|
-
divBox:this,
|
|
94414
|
-
},
|
|
94415
|
-
function(event)
|
|
94416
|
-
{
|
|
94417
|
-
event.data.divBox.Hide();
|
|
94418
|
-
});
|
|
94419
|
-
|
|
94420
|
-
//给一个id 后面查找方便
|
|
94421
|
-
var titleElement=div.getElementsByTagName('span')[0];
|
|
94422
|
-
titleElement.id=this.Title.ID;
|
|
94423
|
-
|
|
94424
|
-
var paramListElement=div.getElementsByClassName('parameter-content')[0];
|
|
94425
|
-
paramListElement.id=this.ParamList.ID;
|
|
94426
|
-
}
|
|
94427
|
-
|
|
94428
|
-
//设置标题
|
|
94429
|
-
this.SetTitle=function(title)
|
|
94430
|
-
{
|
|
94431
|
-
$("#"+this.Title.ID).html(title);
|
|
94432
|
-
}
|
|
94433
|
-
|
|
94434
|
-
//清空参数
|
|
94435
|
-
this.ClearParamList=function()
|
|
94436
|
-
{
|
|
94437
|
-
$("#"+this.ParamList.ID).empty();
|
|
94438
|
-
this.ParamData=[];
|
|
94439
|
-
}
|
|
94440
|
-
|
|
94441
|
-
this.BindParam=function()
|
|
94442
|
-
{
|
|
94443
|
-
for(var i=0; i<this.IndexScript.Arguments.length; ++i)
|
|
94444
|
-
{
|
|
94445
|
-
var item=this.IndexScript.Arguments[i];
|
|
94446
|
-
if (item.Name==null || isNaN(item.Value)) break;
|
|
94447
|
-
|
|
94448
|
-
var guid=Guid();
|
|
94449
|
-
var param = '<input class="row-line" id="'+guid+'" value="'+item.Value+'" type="number" step="1"/>'+ item.Name +'<br>';
|
|
94450
|
-
$("#"+this.ParamList.ID).append(param);
|
|
94451
|
-
|
|
94452
|
-
this.ParamData.push({ID:guid,Value:item.Value});
|
|
94453
|
-
}
|
|
94454
|
-
|
|
94455
|
-
//绑定参数修改事件
|
|
94456
|
-
var self=this;
|
|
94457
|
-
for(var i=0; i<this.ParamData.length; ++i)
|
|
94458
|
-
{
|
|
94459
|
-
var item=this.ParamData[i];
|
|
94460
|
-
$("#"+item.ID).mouseup(
|
|
94461
|
-
{
|
|
94462
|
-
ParamIndex:i //参数序号
|
|
94463
|
-
},
|
|
94464
|
-
function(event)
|
|
94465
|
-
{
|
|
94466
|
-
var value = parseInt($(this).val()); //获取当前操作的input属性值,转化为整型
|
|
94467
|
-
if (!IFrameSplitOperator.IsNumber(value))
|
|
94468
|
-
{
|
|
94469
|
-
alert("参数不能为空");
|
|
94470
|
-
return;
|
|
94471
|
-
}
|
|
94472
|
-
var chart=self.HQChart;
|
|
94473
|
-
var identify=self.Identify;
|
|
94474
|
-
var paramIndex=event.data.ParamIndex;
|
|
94475
|
-
var script=self.IndexScript;
|
|
94476
|
-
var isOverlay=self.IsOverlay;
|
|
94477
|
-
|
|
94478
|
-
script.Arguments[paramIndex].Value = value; //为参数属性重新赋值
|
|
94479
|
-
if (isOverlay) chart.UpdateOverlayIndex(identify);
|
|
94480
|
-
else chart.UpdateWindowIndex(identify); //调用更新窗口指标函数,参数用来定位窗口
|
|
94481
|
-
}
|
|
94482
|
-
)
|
|
94483
|
-
|
|
94484
|
-
$("#"+item.ID).keyup(
|
|
94485
|
-
{
|
|
94486
|
-
ParamIndex:i //参数序号
|
|
94487
|
-
},
|
|
94488
|
-
function(event)
|
|
94489
|
-
{
|
|
94490
|
-
var value = parseInt($(this).val()); //获取当前操作的input属性值,转化为整型
|
|
94491
|
-
if (!IFrameSplitOperator.IsNumber(value))
|
|
94492
|
-
{
|
|
94493
|
-
alert("参数不能为空");
|
|
94494
|
-
return;
|
|
94495
|
-
}
|
|
94496
|
-
var chart=self.HQChart;
|
|
94497
|
-
var identify=self.Identify;
|
|
94498
|
-
var paramIndex=event.data.ParamIndex;
|
|
94499
|
-
var script=self.IndexScript;
|
|
94500
|
-
var isOverlay=self.IsOverlay;
|
|
94501
|
-
|
|
94502
|
-
script.Arguments[paramIndex].Value = value; //为参数属性重新赋值
|
|
94503
|
-
if (isOverlay) chart.UpdateOverlayIndex(identify);
|
|
94504
|
-
else chart.UpdateWindowIndex(identify); //调用更新窗口指标函数,参数用来定位窗口
|
|
94505
|
-
}
|
|
94506
|
-
)
|
|
94507
|
-
}
|
|
94508
|
-
}
|
|
94509
|
-
|
|
94510
|
-
//绑定取消事件
|
|
94511
|
-
this.BindCancel=function()
|
|
94512
|
-
{
|
|
94513
|
-
//取消按钮事件
|
|
94514
|
-
var self=this;
|
|
94515
|
-
var test=$("#"+this.ID+" .cancel");
|
|
94516
|
-
$("#"+this.ID+" .cancel").unbind("click").click(
|
|
94517
|
-
function(event)
|
|
94518
|
-
{
|
|
94519
|
-
var chart=self.HQChart;
|
|
94520
|
-
var identify=self.Identify;
|
|
94521
|
-
self.RestoreParam();
|
|
94522
|
-
var isOverlay=self.IsOverlay;
|
|
94523
|
-
if (isOverlay) chart.UpdateOverlayIndex(identify);
|
|
94524
|
-
else chart.UpdateWindowIndex(identify);
|
|
94525
|
-
self.IndexScript=null;
|
|
94526
|
-
self.Hide();
|
|
94527
|
-
}
|
|
94528
|
-
);
|
|
94529
|
-
|
|
94530
|
-
//关闭和取消是一样的
|
|
94531
|
-
$("#"+this.ID+" #close").unbind("click").click(
|
|
94532
|
-
function(event)
|
|
94533
|
-
{
|
|
94534
|
-
var chart=self.HQChart;
|
|
94535
|
-
var identify=self.Identify;
|
|
94536
|
-
var isOverlay=self.IsOverlay;
|
|
94537
|
-
self.RestoreParam();
|
|
94538
|
-
if (isOverlay) chart.UpdateOverlayIndex(identify);
|
|
94539
|
-
else chart.UpdateWindowIndex(identify);
|
|
94540
|
-
self.IndexScript=null;
|
|
94541
|
-
self.Hide();
|
|
94542
|
-
}
|
|
94543
|
-
);
|
|
94544
|
-
}
|
|
94545
|
-
|
|
94546
|
-
//还原参数
|
|
94547
|
-
this.RestoreParam=function()
|
|
94548
|
-
{
|
|
94549
|
-
if (!this.IndexScript) return;
|
|
94550
|
-
|
|
94551
|
-
for(var i=0; i<this.ParamData.length; ++i)
|
|
94552
|
-
{
|
|
94553
|
-
var item=this.ParamData[i];
|
|
94554
|
-
this.IndexScript.Arguments[i].Value=item.Value;
|
|
94555
|
-
}
|
|
94556
|
-
}
|
|
94557
|
-
|
|
94558
|
-
//显示
|
|
94559
|
-
this.DoModal=function(event)
|
|
94560
|
-
{
|
|
94561
|
-
var chart=event.data.Chart;
|
|
94562
|
-
var identify=event.data.Identify;
|
|
94563
|
-
var dialog=chart.ModifyIndexDialog;
|
|
94564
|
-
var isOverlay=event.data.IsOverlay===true;
|
|
94565
|
-
|
|
94566
|
-
if(!dialog) return;
|
|
94567
|
-
|
|
94568
|
-
if (dialog.ID==null) dialog.Create(); //第1次 需要创建div
|
|
94569
|
-
dialog.Identify=identify;
|
|
94570
|
-
dialog.HQChart=chart;
|
|
94571
|
-
dialog.IsOverlay=isOverlay
|
|
94572
|
-
|
|
94573
|
-
if (isOverlay)
|
|
94574
|
-
{
|
|
94575
|
-
var overlayIndex=chart.GetOverlayIndexByIdentify(identify);
|
|
94576
|
-
if (!overlayIndex || !overlayIndex.OverlayItem.Script) return;
|
|
94577
|
-
dialog.IndexScript=overlayIndex.OverlayItem.Script;
|
|
94578
|
-
dialog.SetTitle(dialog.IndexScript.Name+" 叠加指标参数设置"); //设置标题
|
|
94579
|
-
}
|
|
94580
|
-
else
|
|
94581
|
-
{
|
|
94582
|
-
dialog.IndexScript=chart.WindowIndex[identify];
|
|
94583
|
-
dialog.SetTitle(dialog.IndexScript.Name+" 指标参数设置"); //设置标题
|
|
94584
|
-
}
|
|
94585
|
-
|
|
94586
|
-
dialog.ClearParamList(); //清空参数
|
|
94587
|
-
dialog.BindParam(chart,identify); //绑定参数
|
|
94588
|
-
dialog.BindCancel(); //绑定取消和关闭事件
|
|
94589
|
-
|
|
94590
|
-
dialog.Show();//显示, 在css里调整居中
|
|
94591
|
-
}
|
|
94592
|
-
}
|
|
94593
|
-
|
|
94594
94457
|
//等待动画窗口
|
|
94595
94458
|
function WaitDialog(divElement)
|
|
94596
94459
|
{
|
|
@@ -132166,6 +132029,7 @@ function ChartReport()
|
|
|
132166
132029
|
var top=this.RectClient.Top;
|
|
132167
132030
|
var y=top+this.HeaderMergin.Top+(this.HeaderHeight-this.HeaderMergin.Top-this.HeaderMergin.Bottom)/2;
|
|
132168
132031
|
var yBottom=top+this.HeaderHeight;
|
|
132032
|
+
var bDrawSortBG=this.IsDrawSortBGIcon();
|
|
132169
132033
|
|
|
132170
132034
|
this.Canvas.font=this.HeaderFont;
|
|
132171
132035
|
|
|
@@ -132207,6 +132071,10 @@ function ChartReport()
|
|
|
132207
132071
|
{
|
|
132208
132072
|
this.DrawSortHeader(item.Title,item.TextAlign,x,yBottom,textWidth,this.SortInfo.Sort, textSize);
|
|
132209
132073
|
}
|
|
132074
|
+
else if (item.Sort>0 && bDrawSortBG)
|
|
132075
|
+
{
|
|
132076
|
+
this.DrawSortHeader(item.Title,item.TextAlign,x,yBottom,textWidth,0,textSize);
|
|
132077
|
+
}
|
|
132210
132078
|
else
|
|
132211
132079
|
{
|
|
132212
132080
|
this.DrawText(item.Title,item.TextAlign,x,yBottom,textWidth,textSize);
|
|
@@ -132260,6 +132128,10 @@ function ChartReport()
|
|
|
132260
132128
|
{
|
|
132261
132129
|
this.DrawSortHeader(item.Title,item.TextAlign,x,yBottom,textWidth,this.SortInfo.Sort,textSize);
|
|
132262
132130
|
}
|
|
132131
|
+
else if (item.Sort>0)
|
|
132132
|
+
{
|
|
132133
|
+
this.DrawSortHeader(item.Title,item.TextAlign,x,yBottom,textWidth,0, textSize);
|
|
132134
|
+
}
|
|
132263
132135
|
else
|
|
132264
132136
|
{
|
|
132265
132137
|
this.DrawText(item.Title,item.TextAlign,x,yBottom,textWidth,textSize);
|
|
@@ -132322,10 +132194,24 @@ function ChartReport()
|
|
|
132322
132194
|
}
|
|
132323
132195
|
}
|
|
132324
132196
|
|
|
132197
|
+
//是否绘制排序背景图标
|
|
132198
|
+
this.IsDrawSortBGIcon=function()
|
|
132199
|
+
{
|
|
132200
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.SortConfig.Arrow)) return false;
|
|
132201
|
+
if (!this.SortConfig.Arrow[0]) return false;
|
|
132202
|
+
|
|
132203
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.SortConfig.Color)) return false;
|
|
132204
|
+
if (!this.SortConfig.Color[0]) return false;
|
|
132205
|
+
|
|
132206
|
+
return true;
|
|
132207
|
+
}
|
|
132208
|
+
|
|
132325
132209
|
this.DrawSortHeader=function(text, textAlign, x, yBottom, width, sortType,textSize)
|
|
132326
132210
|
{
|
|
132327
132211
|
var pixelRatio=GetDevicePixelRatio();
|
|
132328
132212
|
var sortText=this.SortConfig.Arrow[sortType];
|
|
132213
|
+
var sortBGText=this.SortConfig.Arrow[0];
|
|
132214
|
+
var sortBGColor=this.SortConfig.Color[0];
|
|
132329
132215
|
this.Canvas.font=this.HeaderFont;
|
|
132330
132216
|
var textWidth=this.Canvas.measureText(text).width;
|
|
132331
132217
|
var sortTextWidth=this.SortConfig.Size*pixelRatio+this.SortConfig.Margin.Left;
|
|
@@ -132349,8 +132235,17 @@ function ChartReport()
|
|
|
132349
132235
|
|
|
132350
132236
|
xText+=(textWidth+this.SortConfig.Margin.Left);
|
|
132351
132237
|
this.Canvas.font=this.SortFont;
|
|
132352
|
-
|
|
132353
|
-
|
|
132238
|
+
if (sortBGText && sortBGColor)
|
|
132239
|
+
{
|
|
132240
|
+
this.Canvas.fillStyle=sortBGColor;
|
|
132241
|
+
this.Canvas.fillText(sortBGText,xText,yBottom-this.SortConfig.Margin.Bottom);
|
|
132242
|
+
}
|
|
132243
|
+
|
|
132244
|
+
if (sortType>0)
|
|
132245
|
+
{
|
|
132246
|
+
this.Canvas.fillStyle=this.SortConfig.Color[sortType];
|
|
132247
|
+
this.Canvas.fillText(sortText,xText,yBottom-this.SortConfig.Margin.Bottom);
|
|
132248
|
+
}
|
|
132354
132249
|
|
|
132355
132250
|
this.Canvas.font=this.HeaderFont;
|
|
132356
132251
|
this.Canvas.fillStyle=this.HeaderColor;
|
|
@@ -132362,7 +132257,6 @@ function ChartReport()
|
|
|
132362
132257
|
}
|
|
132363
132258
|
}
|
|
132364
132259
|
|
|
132365
|
-
|
|
132366
132260
|
this.DrawBorder=function()
|
|
132367
132261
|
{
|
|
132368
132262
|
if (!this.IsDrawBorder) return;
|
|
@@ -133141,7 +133035,7 @@ function ChartReport()
|
|
|
133141
133035
|
this.DrawSymbolName=function(data, column, left, top, rowType)
|
|
133142
133036
|
{
|
|
133143
133037
|
var stock=data.Stock;
|
|
133144
|
-
var symbol=data.Symbol;
|
|
133038
|
+
var symbol=IFrameSplitOperator.RemoveMarketSuffix(data.Symbol);
|
|
133145
133039
|
var name;
|
|
133146
133040
|
if (stock)
|
|
133147
133041
|
{
|
|
@@ -133198,7 +133092,7 @@ function ChartReport()
|
|
|
133198
133092
|
this.DrawSymbolNameV2=function(data, column, left, top, rowType)
|
|
133199
133093
|
{
|
|
133200
133094
|
var stock=data.Stock;
|
|
133201
|
-
var symbol=data.Symbol;
|
|
133095
|
+
var symbol=IFrameSplitOperator.RemoveMarketSuffix(data.Symbol);
|
|
133202
133096
|
var name;
|
|
133203
133097
|
if (stock)
|
|
133204
133098
|
{
|
|
@@ -139275,7 +139169,7 @@ function ScrollBarBGChart()
|
|
|
139275
139169
|
|
|
139276
139170
|
|
|
139277
139171
|
|
|
139278
|
-
var HQCHART_VERSION="1.1.
|
|
139172
|
+
var HQCHART_VERSION="1.1.14096";
|
|
139279
139173
|
|
|
139280
139174
|
function PrintHQChartVersion()
|
|
139281
139175
|
{
|