hqchart 1.1.14516 → 1.1.14533
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 +140 -104
- package/package.json +1 -1
- package/src/jscommon/umychart.DialogDrawTool.js +156 -4
- package/src/jscommon/umychart.DialogSearchIndex.js +10 -2
- package/src/jscommon/umychart.NetworkFilterTest.js +69 -1
- package/src/jscommon/umychart.PopKLineChart.js +272 -0
- package/src/jscommon/umychart.js +226 -352
- package/src/jscommon/umychart.report.js +80 -29
- package/src/jscommon/umychart.resource/css/tools.css +35 -0
- package/src/jscommon/umychart.resource/font/drawtool/demo_index.html +95 -3
- package/src/jscommon/umychart.resource/font/drawtool/iconfont.css +19 -3
- package/src/jscommon/umychart.resource/font/drawtool/iconfont.js +1 -1
- package/src/jscommon/umychart.resource/font/drawtool/iconfont.json +28 -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.style.js +6 -1
- package/src/jscommon/umychart.testdata.js +69 -1
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +313 -383
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.NetworkFilterTest.vue.js +69 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +751 -389
package/package.json
CHANGED
|
@@ -24,6 +24,11 @@ var JS_DRAWTOOL_MENU_ID=
|
|
|
24
24
|
CMD_CHANGE_BORDER_COLOR_ID:9, //边框颜色
|
|
25
25
|
|
|
26
26
|
CMD_LOCK_DRAW_CHART_ID:10, //上锁
|
|
27
|
+
|
|
28
|
+
CMD_ZOOM_FONT_ID:11, //字体放大
|
|
29
|
+
CMD_ZOOM_OUT_FONT_ID:12, //字体缩小
|
|
30
|
+
CMD_MODIFY_TEXT_ID:13, //随机生成文字内容
|
|
31
|
+
CMD_ADVANCED_SETTING_ID:14, //高级设置
|
|
27
32
|
};
|
|
28
33
|
|
|
29
34
|
function JSDialogDrawTool()
|
|
@@ -116,6 +121,7 @@ function JSDialogDrawTool()
|
|
|
116
121
|
{ Title: '时间范围', ClassName: 'hqchart_drawtool icon-jiagefanwei', Type:0, Data:{ ID:"DateRange" } },
|
|
117
122
|
{ Title: "价格和时间范围", ClassName:"hqchart_drawtool icon-jiagefanwei", Type:0, Data:{ ID:"DatePriceRange" } },
|
|
118
123
|
{ Title: "监测线", ClassName:"hqchart_drawtool icon-jiance", Type:0, Data:{ ID:"MonitorLine"} },
|
|
124
|
+
{ Title: "固定范围成交量分布图", ClassName:"hqchart_drawtool icon-tubiao_gudingfanweichengjiaoliangfenbutu", Type:0, Data:{ ID:"固定范围成交量分布图"}}
|
|
119
125
|
]
|
|
120
126
|
},
|
|
121
127
|
{
|
|
@@ -625,6 +631,10 @@ function JSDialogModifyDraw()
|
|
|
625
631
|
this.FontColorButton=null;
|
|
626
632
|
this.BorderColorButton=null;
|
|
627
633
|
this.LockButton=null;
|
|
634
|
+
this.FontZoomButton=null;
|
|
635
|
+
this.FontZoomOutButton=null;
|
|
636
|
+
this.ModifyTextButton=null;
|
|
637
|
+
this.AdvancedButton=null;
|
|
628
638
|
|
|
629
639
|
this.RandomLineColor=["rgb(255,69,0)", "rgb(173,255,47)", "rgb(238,154,73)", "rgb(255,105,180)"]; //线段颜色
|
|
630
640
|
this.RandomBGColor=["rgba(210,251,209,0.8)", "rgb(217,217,253)", "rgb(255,208,204)", "rgb(252,249,206)"]; //背景颜色
|
|
@@ -637,9 +647,13 @@ function JSDialogModifyDraw()
|
|
|
637
647
|
{ Title:"修改字体颜色", ClassName: 'hqchart_drawtool icon-zitiyanse', Type:2, Data:{ ID:JS_DRAWTOOL_MENU_ID.CMD_CHANGE_FONT_COLOR_ID }},
|
|
638
648
|
{ Title:"修改背景颜色", ClassName: 'hqchart_drawtool icon-zitibeijingse', Type:2, Data:{ ID:JS_DRAWTOOL_MENU_ID.CMD_CHANGE_BG_COLOR_ID }},
|
|
639
649
|
{ Title:"修改边框颜色", ClassName: 'hqchart_drawtool icon-biankuang', Type:2, Data:{ ID:JS_DRAWTOOL_MENU_ID.CMD_CHANGE_BORDER_COLOR_ID }},
|
|
650
|
+
{ Title:"字体放大", ClassName: 'hqchart_drawtool icon-zoomin', Type:2, Data:{ ID:JS_DRAWTOOL_MENU_ID.CMD_ZOOM_FONT_ID }},
|
|
651
|
+
{ Title:"字体缩小", ClassName: 'hqchart_drawtool icon-zoomout', Type:2, Data:{ ID:JS_DRAWTOOL_MENU_ID.CMD_ZOOM_OUT_FONT_ID }},
|
|
652
|
+
{ Title:"随机生成文字内容", ClassName: 'hqchart_drawtool icon-bianji', Type:2, Data:{ ID:JS_DRAWTOOL_MENU_ID.CMD_MODIFY_TEXT_ID }},
|
|
653
|
+
{ Title:"高级设置", ClassName: 'hqchart_drawtool icon-setting', Type:2, Data:{ ID:JS_DRAWTOOL_MENU_ID.CMD_ADVANCED_SETTING_ID }},
|
|
654
|
+
|
|
640
655
|
{ Title:"上锁", ClassName: 'hqchart_drawtool icon-lock', Type:2, Data:{ ID:JS_DRAWTOOL_MENU_ID.CMD_LOCK_DRAW_CHART_ID }},
|
|
641
656
|
{ Title:"删除图形", ClassName: 'hqchart_drawtool icon-recycle_bin', Type:2, Data:{ ID:JS_DRAWTOOL_MENU_ID.CMD_DELETE_DRAW_CHART_ID }},
|
|
642
|
-
|
|
643
657
|
];
|
|
644
658
|
|
|
645
659
|
this.RestoreFocusDelay=800;
|
|
@@ -729,7 +743,22 @@ function JSDialogModifyDraw()
|
|
|
729
743
|
this.LockButton=data;
|
|
730
744
|
this.LockButton.Span.style['color']="rgb(220,220,220)";
|
|
731
745
|
break;
|
|
732
|
-
|
|
746
|
+
case JS_DRAWTOOL_MENU_ID.CMD_ZOOM_FONT_ID:
|
|
747
|
+
this.FontZoomButton=data;
|
|
748
|
+
divItem.style.display="none";
|
|
749
|
+
break;
|
|
750
|
+
case JS_DRAWTOOL_MENU_ID.CMD_ZOOM_OUT_FONT_ID:
|
|
751
|
+
this.FontZoomOutButton=data;
|
|
752
|
+
divItem.style.display="none";
|
|
753
|
+
break;
|
|
754
|
+
case JS_DRAWTOOL_MENU_ID.CMD_MODIFY_TEXT_ID:
|
|
755
|
+
this.ModifyTextButton=data;
|
|
756
|
+
divItem.style.display="none";
|
|
757
|
+
break;
|
|
758
|
+
case JS_DRAWTOOL_MENU_ID.CMD_ADVANCED_SETTING_ID:
|
|
759
|
+
this.AdvancedButton=data;
|
|
760
|
+
divItem.style.display="none";
|
|
761
|
+
break;
|
|
733
762
|
}
|
|
734
763
|
|
|
735
764
|
parentDivDom.appendChild(divItem);
|
|
@@ -761,6 +790,18 @@ function JSDialogModifyDraw()
|
|
|
761
790
|
case JS_DRAWTOOL_MENU_ID.CMD_LOCK_DRAW_CHART_ID:
|
|
762
791
|
this.ModifyLockChart();
|
|
763
792
|
break;
|
|
793
|
+
case JS_DRAWTOOL_MENU_ID.CMD_ZOOM_FONT_ID:
|
|
794
|
+
this.ModifyFontZoom(1);
|
|
795
|
+
break;
|
|
796
|
+
case JS_DRAWTOOL_MENU_ID.CMD_ZOOM_OUT_FONT_ID:
|
|
797
|
+
this.ModifyFontZoom(-1);
|
|
798
|
+
break;
|
|
799
|
+
case JS_DRAWTOOL_MENU_ID.CMD_MODIFY_TEXT_ID:
|
|
800
|
+
this.ModifyText();
|
|
801
|
+
break;
|
|
802
|
+
case JS_DRAWTOOL_MENU_ID.CMD_ADVANCED_SETTING_ID:
|
|
803
|
+
this.AdvancedSetting();
|
|
804
|
+
break;
|
|
764
805
|
}
|
|
765
806
|
}
|
|
766
807
|
|
|
@@ -802,6 +843,19 @@ function JSDialogModifyDraw()
|
|
|
802
843
|
this.Close();
|
|
803
844
|
}
|
|
804
845
|
|
|
846
|
+
this.OnClearChartDrawPicture=function(drawPicture)
|
|
847
|
+
{
|
|
848
|
+
if (!this.IsShow()) return;
|
|
849
|
+
|
|
850
|
+
if (!drawPicture)
|
|
851
|
+
{
|
|
852
|
+
this.Close();
|
|
853
|
+
return;
|
|
854
|
+
}
|
|
855
|
+
|
|
856
|
+
if (this.ChartPicture && drawPicture.Guid==this.ChartPicture.Guid) this.Close();
|
|
857
|
+
}
|
|
858
|
+
|
|
805
859
|
this.ShowButton=function(dom, diaplay)
|
|
806
860
|
{
|
|
807
861
|
if (dom.style.display==diaplay) return;
|
|
@@ -917,6 +971,65 @@ function JSDialogModifyDraw()
|
|
|
917
971
|
this.HQChart.Draw();
|
|
918
972
|
}
|
|
919
973
|
|
|
974
|
+
this.ModifyFontZoom=function(step)
|
|
975
|
+
{
|
|
976
|
+
if (!this.ChartPicture || !this.HQChart) return;
|
|
977
|
+
if (this.ChartPicture.FontOption.Size+step<=2) return;
|
|
978
|
+
|
|
979
|
+
var chart=this.ChartPicture;
|
|
980
|
+
chart.FontOption.Size+=step;
|
|
981
|
+
|
|
982
|
+
if (chart.ClassName=="ChartDrawNote") chart.NoteFontOption.Size+=step;
|
|
983
|
+
|
|
984
|
+
this.HQChart.Draw();
|
|
985
|
+
}
|
|
986
|
+
|
|
987
|
+
this.ModifyText=function()
|
|
988
|
+
{
|
|
989
|
+
if (!this.ChartPicture || !this.HQChart) return;
|
|
990
|
+
|
|
991
|
+
var chart=this.ChartPicture;
|
|
992
|
+
switch(chart.ClassName)
|
|
993
|
+
{
|
|
994
|
+
case "ChartDrawPictureText":
|
|
995
|
+
chart.Text=this.GetRandomText(chart.Text);
|
|
996
|
+
break;
|
|
997
|
+
case "ChartDrawAnchoredText":
|
|
998
|
+
var text=null;
|
|
999
|
+
if (IFrameSplitOperator.IsNonEmptyArray(chart.AryText)) text=chart.AryText[0].Text;
|
|
1000
|
+
chart.AryText=[ {Text:this.GetRandomText(text)}, {Text:this.GetRandomText(null)}];
|
|
1001
|
+
break;
|
|
1002
|
+
case "ChartDrawNote":
|
|
1003
|
+
var text=null;
|
|
1004
|
+
if (IFrameSplitOperator.IsNonEmptyArray(chart.AryNoteText)) text=chart.AryNoteText[0].Text;
|
|
1005
|
+
chart.AryNoteText=[ {Text:this.GetRandomText(text)}, {Text:this.GetRandomText(null)}];
|
|
1006
|
+
break;
|
|
1007
|
+
default:
|
|
1008
|
+
return;
|
|
1009
|
+
}
|
|
1010
|
+
|
|
1011
|
+
this.HQChart.Draw();
|
|
1012
|
+
}
|
|
1013
|
+
|
|
1014
|
+
this.GetRandomText=function(text)
|
|
1015
|
+
{
|
|
1016
|
+
var ARY_TEXT=["下跌形态","反转十字星","低位档五阳线","倒V型反转","双顶","持续整理形态"];
|
|
1017
|
+
|
|
1018
|
+
var index=this.GetRandomTestData(0, ARY_TEXT.length-1);
|
|
1019
|
+
for(var i=index;i<10;++i)
|
|
1020
|
+
{
|
|
1021
|
+
var value=ARY_TEXT[i%ARY_TEXT.length];
|
|
1022
|
+
if (value!=text) return value;
|
|
1023
|
+
}
|
|
1024
|
+
}
|
|
1025
|
+
|
|
1026
|
+
this.GetRandomTestData=function(min, max) //测试数据
|
|
1027
|
+
{
|
|
1028
|
+
min = Math.ceil(min);
|
|
1029
|
+
max = Math.floor(max);
|
|
1030
|
+
return Math.floor(Math.random() * (max - min + 1)) + min; //含最大值,含最小值
|
|
1031
|
+
}
|
|
1032
|
+
|
|
920
1033
|
this.Show=function(x, y)
|
|
921
1034
|
{
|
|
922
1035
|
if (!this.DivDialog) this.Create();
|
|
@@ -930,27 +1043,42 @@ function JSDialogModifyDraw()
|
|
|
930
1043
|
{
|
|
931
1044
|
this.ChartPicture=chart;
|
|
932
1045
|
|
|
933
|
-
var bShowLineColor=true, bShowBGColor=false, bShowFontColor=false, bShowBorderColor=false
|
|
1046
|
+
var bShowLineColor=true, bShowBGColor=false, bShowFontColor=false, bShowBorderColor=false, bShowFontZoom=false, bModifyText=false, bAdvanced=false;;
|
|
934
1047
|
var bgColor=null, fontColor=null,borderColor=null;
|
|
935
|
-
var ARRAY_TEXT_CHART=['ChartDrawPriceLabel', "ChartDrawAnchoredText","ChartDrawPriceNote"];
|
|
1048
|
+
var ARRAY_TEXT_CHART=['ChartDrawPriceLabel', "ChartDrawAnchoredText","ChartDrawPriceNote", ];
|
|
936
1049
|
if (ARRAY_TEXT_CHART.includes(chart.ClassName))
|
|
937
1050
|
{
|
|
938
1051
|
bShowBGColor=true;
|
|
939
1052
|
bShowFontColor=true;
|
|
940
1053
|
bShowBorderColor=true;
|
|
1054
|
+
bShowFontZoom=true;
|
|
1055
|
+
if (chart.ClassName=="ChartDrawAnchoredText") bModifyText=true;
|
|
941
1056
|
bgColor=chart.BGColor;
|
|
942
1057
|
fontColor=chart.TextColor;
|
|
943
1058
|
borderColor=chart.BorderColor;
|
|
944
1059
|
}
|
|
1060
|
+
else if (chart.ClassName=="ChartDrawPictureText")
|
|
1061
|
+
{
|
|
1062
|
+
bModifyText=true;
|
|
1063
|
+
bShowFontZoom=true;
|
|
1064
|
+
bShowLineColor=true;
|
|
1065
|
+
}
|
|
945
1066
|
else if (chart.ClassName=="ChartDrawNote")
|
|
946
1067
|
{
|
|
947
1068
|
bShowBGColor=true;
|
|
948
1069
|
bShowFontColor=true;
|
|
949
1070
|
bShowBorderColor=true;
|
|
1071
|
+
bModifyText=true;
|
|
1072
|
+
bShowFontZoom=true;
|
|
950
1073
|
bgColor=chart.NoteBGColor;
|
|
951
1074
|
fontColor=chart.NoteTextColor;
|
|
952
1075
|
borderColor=chart.NoteBorderColor;
|
|
953
1076
|
}
|
|
1077
|
+
else if (chart.ClassName=="ChartDrawVolProfile")
|
|
1078
|
+
{
|
|
1079
|
+
bShowLineColor=false;
|
|
1080
|
+
bAdvanced=true;
|
|
1081
|
+
}
|
|
954
1082
|
|
|
955
1083
|
if (this.ColorButton)
|
|
956
1084
|
{
|
|
@@ -997,6 +1125,30 @@ function JSDialogModifyDraw()
|
|
|
997
1125
|
var item=this.LockButton;
|
|
998
1126
|
item.Span.style['color']=this.ChartPicture.EnableMove?"rgb(220,220,220)":"rgb(0,0,0)";
|
|
999
1127
|
}
|
|
1128
|
+
|
|
1129
|
+
if (this.FontZoomButton)
|
|
1130
|
+
{
|
|
1131
|
+
var item=this.FontZoomButton;
|
|
1132
|
+
this.ShowButton(item.Div, bShowFontZoom?"inline":"none");
|
|
1133
|
+
}
|
|
1134
|
+
|
|
1135
|
+
if (this.FontZoomOutButton)
|
|
1136
|
+
{
|
|
1137
|
+
var item=this.FontZoomOutButton;
|
|
1138
|
+
this.ShowButton(item.Div, bShowFontZoom?"inline":"none");
|
|
1139
|
+
}
|
|
1140
|
+
|
|
1141
|
+
if (this.ModifyTextButton)
|
|
1142
|
+
{
|
|
1143
|
+
var item=this.ModifyTextButton;
|
|
1144
|
+
this.ShowButton(item.Div, bModifyText?"inline":"none");
|
|
1145
|
+
}
|
|
1146
|
+
|
|
1147
|
+
if (this.AdvancedButton)
|
|
1148
|
+
{
|
|
1149
|
+
var item=this.AdvancedButton;
|
|
1150
|
+
this.ShowButton(item.Div, bAdvanced?"inline":"none");
|
|
1151
|
+
}
|
|
1000
1152
|
}
|
|
1001
1153
|
|
|
1002
1154
|
this.OnMouseDownTitle=function(e)
|
|
@@ -1110,8 +1110,16 @@ function JSDialogModifyIndexParam()
|
|
|
1110
1110
|
|
|
1111
1111
|
item.Value=value;
|
|
1112
1112
|
|
|
1113
|
-
|
|
1114
|
-
|
|
1113
|
+
|
|
1114
|
+
|
|
1115
|
+
if (this.IndexData.Type==1)
|
|
1116
|
+
{
|
|
1117
|
+
this.HQChart.UpdateWindowIndex(this.IndexData.WindowIndex);
|
|
1118
|
+
}
|
|
1119
|
+
else if (this.IndexData.Type==2)
|
|
1120
|
+
{
|
|
1121
|
+
this.HQChart.UpdateOverlayIndex(this.IndexData.Identify);
|
|
1122
|
+
}
|
|
1115
1123
|
}
|
|
1116
1124
|
}
|
|
1117
1125
|
|
|
@@ -55696,6 +55696,13 @@ HQData.NetworkFilter=function(data, callback)
|
|
|
55696
55696
|
HQData.Report_APIIndex(data, callback);
|
|
55697
55697
|
break;
|
|
55698
55698
|
|
|
55699
|
+
|
|
55700
|
+
/////////////////////////////////////////////////////////////////
|
|
55701
|
+
//
|
|
55702
|
+
case "KLineChartContainer::RequestVolumeProfileData": //成交量分布图
|
|
55703
|
+
HQData.RequestVolumeProfileData(data, callback);
|
|
55704
|
+
break;
|
|
55705
|
+
|
|
55699
55706
|
}
|
|
55700
55707
|
}
|
|
55701
55708
|
|
|
@@ -56794,7 +56801,7 @@ HQData.Report_RequestStockData=function(data, callback)
|
|
|
56794
56801
|
newItem[33]=kData;
|
|
56795
56802
|
|
|
56796
56803
|
|
|
56797
|
-
newItem[101]=HQData.GetRandomTestData(-
|
|
56804
|
+
newItem[101]=HQData.GetRandomTestData(-9990,10000000);
|
|
56798
56805
|
newItem[201]=`A-[${HQData.GetRandomTestData(-90,90)}]-B`;
|
|
56799
56806
|
|
|
56800
56807
|
|
|
@@ -58440,3 +58447,64 @@ HQData.APIIndex_TITLE=function(data, callback)
|
|
|
58440
58447
|
}
|
|
58441
58448
|
|
|
58442
58449
|
|
|
58450
|
+
HQData.RequestVolumeProfileData=function(data, callback)
|
|
58451
|
+
{
|
|
58452
|
+
var request=data.Request;
|
|
58453
|
+
var startIndex=request.Start.DataIndex;
|
|
58454
|
+
var endIndex=request.End.DataIndex;
|
|
58455
|
+
|
|
58456
|
+
var hqchart=data.Self;
|
|
58457
|
+
var kData=hqchart.GetKData();
|
|
58458
|
+
|
|
58459
|
+
var maxPrice=null,minPrice=null;
|
|
58460
|
+
for(var i=startIndex;i<=endIndex && i<kData.Data.length; ++i)
|
|
58461
|
+
{
|
|
58462
|
+
var kItem=kData.Data[i];
|
|
58463
|
+
if (!kItem) continue;
|
|
58464
|
+
|
|
58465
|
+
if (maxPrice==null || maxPrice<kItem.High) maxPrice=kItem.High;
|
|
58466
|
+
if (minPrice==null || minPrice>kItem.Low) minPrice=kItem.Low;
|
|
58467
|
+
}
|
|
58468
|
+
|
|
58469
|
+
var aryData=[];
|
|
58470
|
+
var step=0.1;
|
|
58471
|
+
for(var i=minPrice, j=0;i<=maxPrice; i+=step, ++j)
|
|
58472
|
+
{
|
|
58473
|
+
var item=
|
|
58474
|
+
{
|
|
58475
|
+
Price:i,
|
|
58476
|
+
Vol:
|
|
58477
|
+
[
|
|
58478
|
+
{
|
|
58479
|
+
Value:HQData.GetRandomTestData(0,500)*1000,
|
|
58480
|
+
//Color:"rgba(103,179,238,0.8)",
|
|
58481
|
+
ColorID:0,
|
|
58482
|
+
},
|
|
58483
|
+
{
|
|
58484
|
+
Value:HQData.GetRandomTestData(0,500)*1000,
|
|
58485
|
+
//Color:"rgba(237,208,105,0.8)",
|
|
58486
|
+
ColorID:1,
|
|
58487
|
+
}
|
|
58488
|
+
]
|
|
58489
|
+
};
|
|
58490
|
+
|
|
58491
|
+
item.TotalVol={ Value:item.Vol[0].Value+ item.Vol[1].Value, ColorID:0 };
|
|
58492
|
+
|
|
58493
|
+
if (j>5)
|
|
58494
|
+
{
|
|
58495
|
+
item.Vol[0].ColorID=2;
|
|
58496
|
+
item.Vol[1].ColorID=3;
|
|
58497
|
+
item.TotalVol.ColorID=2;
|
|
58498
|
+
}
|
|
58499
|
+
|
|
58500
|
+
aryData.push(item);
|
|
58501
|
+
}
|
|
58502
|
+
|
|
58503
|
+
var hqchartData={ Data:aryData, MaxPrice:maxPrice, MinPrice:minPrice, PriceOffset:step, code:0 };
|
|
58504
|
+
|
|
58505
|
+
console.log('[HQData.RequestVolumeProfileData] hqchartData=', hqchartData);
|
|
58506
|
+
|
|
58507
|
+
callback(hqchartData);
|
|
58508
|
+
}
|
|
58509
|
+
|
|
58510
|
+
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
Copyright (c) 2018 jones
|
|
5
|
+
|
|
6
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
+
|
|
8
|
+
开源项目 https://github.com/jones2000/HQChart
|
|
9
|
+
|
|
10
|
+
jones_2000@163.com
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
///////////////////////////////////////////////////////
|
|
15
|
+
// K线图提示信息
|
|
16
|
+
//
|
|
17
|
+
//////////////////////////////////////////////////////
|
|
18
|
+
|
|
19
|
+
function JSTooltipKLineChart()
|
|
20
|
+
{
|
|
21
|
+
this.DivDialog=null;
|
|
22
|
+
this.HQChart=null;
|
|
23
|
+
this.ID=Guid();
|
|
24
|
+
|
|
25
|
+
this.BGColor=g_JSChartResource.PopMinuteChart.BGColor;
|
|
26
|
+
this.BorderColor=g_JSChartResource.PopMinuteChart.BorderColor;
|
|
27
|
+
this.OnCreateCallback;
|
|
28
|
+
|
|
29
|
+
this.KLine=
|
|
30
|
+
{
|
|
31
|
+
Option:JSTooltipKLineChart.GetKLineOption(),
|
|
32
|
+
JSChart:null,
|
|
33
|
+
Symbol:null,
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
this.Inital=function(hqchart, option)
|
|
37
|
+
{
|
|
38
|
+
this.HQChart=hqchart;
|
|
39
|
+
|
|
40
|
+
if (option)
|
|
41
|
+
{
|
|
42
|
+
if (IFrameSplitOperator.IsObject(option.Option))
|
|
43
|
+
{
|
|
44
|
+
var item=CloneData(option.Option); //复制一份出来
|
|
45
|
+
this.KLine.Option=Object.assign(this.KLine.Option,item);
|
|
46
|
+
}
|
|
47
|
+
if (option.OnCreateCallback) this.OnCreateCallback=option.OnCreateCallback;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
this.Create=function()
|
|
52
|
+
{
|
|
53
|
+
var divDom=document.createElement('div');
|
|
54
|
+
divDom.className='UMyChart_Tooltip_KLine_Div';
|
|
55
|
+
divDom.id=this.ID;
|
|
56
|
+
|
|
57
|
+
var divChart=document.createElement('div');
|
|
58
|
+
divChart.className='UMyChart_Tooltip_KLine_Chart_Div';
|
|
59
|
+
divDom.appendChild(divChart);
|
|
60
|
+
|
|
61
|
+
this.DivDialog=divDom;
|
|
62
|
+
|
|
63
|
+
var chart=JSChart.Init(divChart);
|
|
64
|
+
this.KLine.JSChart=chart;
|
|
65
|
+
|
|
66
|
+
//语言跟主图保持一致
|
|
67
|
+
if (this.HQChart) this.KLine.Option.Language=g_JSChartLocalization.GetLanguageName(this.HQChart.LanguageID);
|
|
68
|
+
this.KLine.Option.OnCreatedCallback=(chart)=>{ this.OnCreateHQChart(chart); }
|
|
69
|
+
this.KLine.Option.NetworkFilter=(data, callback)=>{ this.NetworkFilter(data, callback); }
|
|
70
|
+
chart.SetOption(this.KLine.Option); //设置K线配置
|
|
71
|
+
|
|
72
|
+
document.body.appendChild(divDom);
|
|
73
|
+
|
|
74
|
+
this.UpdateStyle();
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
this.UpdateStyle=function()
|
|
78
|
+
{
|
|
79
|
+
if (!this.DivDialog) return;
|
|
80
|
+
|
|
81
|
+
if (this.BGColor) this.DivDialog.style['background-color']=this.BGColor;
|
|
82
|
+
if (this.BorderColor) this.DivDialog.style['border-color']=this.BorderColor;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
this.NetworkFilter=function(data, callback)
|
|
86
|
+
{
|
|
87
|
+
if (!this.HQChart || !this.HQChart.NetworkFilter) return;
|
|
88
|
+
|
|
89
|
+
this.HQChart.NetworkFilter(data, callback);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
this.OnCreateHQChart=function(chart)
|
|
93
|
+
{
|
|
94
|
+
if (this.OnCreateCallback) this.OnCreateCallback(chart);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
this.Destroy=function()
|
|
98
|
+
{
|
|
99
|
+
if (this.DivDialog) document.body.removeChild(this.DivDialog);
|
|
100
|
+
this.DivDialog=null;
|
|
101
|
+
this.TitleBox=null;
|
|
102
|
+
if (!this.KLine.JSChart) this.KLine.JSChart.ChartDestory();
|
|
103
|
+
this.KLine.JSChart=null;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
this.IsShow=function()
|
|
107
|
+
{
|
|
108
|
+
if (!this.DivDialog) return false;
|
|
109
|
+
|
|
110
|
+
return this.DivDialog.style.visibility==='visible';
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
this.Show=function(data, x, y)
|
|
114
|
+
{
|
|
115
|
+
if (!this.DivDialog) this.Create();
|
|
116
|
+
if (!data || !data.Symbol) return;
|
|
117
|
+
|
|
118
|
+
var symbol=data.Symbol;
|
|
119
|
+
if (this.KLine.JSChart)
|
|
120
|
+
{
|
|
121
|
+
if (this.KLine.Symbol!=symbol)
|
|
122
|
+
{
|
|
123
|
+
this.KLine.Symbol=symbol;
|
|
124
|
+
this.KLine.JSChart.ChangeSymbol(symbol);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
if (!this.KLine.Option.EnableResize)
|
|
129
|
+
{
|
|
130
|
+
if (this.KLine.JSChart) this.KLine.JSChart.OnSize({ Type:1 });
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
if (IFrameSplitOperator.IsNumberV2(x,y))
|
|
134
|
+
{
|
|
135
|
+
|
|
136
|
+
}
|
|
137
|
+
else if (data.Rect)
|
|
138
|
+
{
|
|
139
|
+
var rtCell=data.Rect;
|
|
140
|
+
var pixelRatio=GetDevicePixelRatio();
|
|
141
|
+
var rtItem={ Left:rtCell.Left/pixelRatio, Right:rtCell.Right/pixelRatio, Bottom:rtCell.Bottom/pixelRatio, Top:rtCell.Top/pixelRatio };
|
|
142
|
+
rtItem.Width=rtItem.Right-rtItem.Left;
|
|
143
|
+
rtItem.Height=rtItem.Bottom-rtItem.Top;
|
|
144
|
+
|
|
145
|
+
//超出窗口调整位置
|
|
146
|
+
var height=this.DivDialog.offsetHeight;
|
|
147
|
+
var width=this.DivDialog.offsetWidth;
|
|
148
|
+
var x=rtItem.Right+data.Offset.Left;
|
|
149
|
+
var y=rtItem.Bottom+data.Offset.Top;
|
|
150
|
+
|
|
151
|
+
var xRight=window.innerWidth-5;
|
|
152
|
+
var ybottom=window.innerHeight-5;
|
|
153
|
+
if (x+width>xRight) x=(rtItem.Left+data.Offset.Left)-width;
|
|
154
|
+
if (y+height>ybottom) y=(rtItem.Top+data.Offset.Top)-height;
|
|
155
|
+
|
|
156
|
+
this.DivDialog.style.visibility='visible';
|
|
157
|
+
this.DivDialog.style.top = y + "px";
|
|
158
|
+
this.DivDialog.style.left = x + "px";
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
this.Hide=function()
|
|
163
|
+
{
|
|
164
|
+
if (!this.DivDialog) return;
|
|
165
|
+
if (this.DivDialog.style.visibility!='hidden')
|
|
166
|
+
this.DivDialog.style.visibility='hidden';
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
this.ReloadResource=function(option)
|
|
171
|
+
{
|
|
172
|
+
this.BGColor=g_JSChartResource.PopMinuteChart.BGColor;
|
|
173
|
+
this.BorderColor=g_JSChartResource.PopMinuteChart.BorderColor;
|
|
174
|
+
|
|
175
|
+
if (!this.DivDialog) return;
|
|
176
|
+
|
|
177
|
+
this.UpdateStyle();
|
|
178
|
+
|
|
179
|
+
if (this.KLine.JSChart) this.KLine.JSChart.ReloadResource(option);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
JSTooltipKLineChart.GetKLineOption=function()
|
|
185
|
+
{
|
|
186
|
+
var option=
|
|
187
|
+
{
|
|
188
|
+
Type:'历史K线图', //创建图形类型
|
|
189
|
+
Windows: //窗口指标
|
|
190
|
+
[
|
|
191
|
+
{ Index:"MA",Change:false, Modify:false },
|
|
192
|
+
{ Index:"MACD", Close:false, Change:false, Modify:false,MaxMin:false,TitleWindow:false },
|
|
193
|
+
],
|
|
194
|
+
|
|
195
|
+
//Language:'EN',
|
|
196
|
+
|
|
197
|
+
Symbol:null,
|
|
198
|
+
IsAutoUpdate:false, //是自动更新数据
|
|
199
|
+
AutoUpdateFrequency:3000, //数据更新频率
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
SplashTitle:'加载数据中......',
|
|
203
|
+
IsShowRightMenu:false, //右键菜单
|
|
204
|
+
CtrlMoveStep:10,
|
|
205
|
+
|
|
206
|
+
KLine: //K线设置
|
|
207
|
+
{
|
|
208
|
+
DragMode:1, //拖拽模式 0=禁止拖拽 1=数据拖拽 2=区间选择
|
|
209
|
+
Right:1, //复权 0 不复权 1 前复权 2 后复权
|
|
210
|
+
Period:0, //周期 0 日线 1 周线 2 月线 3 年线
|
|
211
|
+
MaxRequestDataCount:3000, //数据个数
|
|
212
|
+
MaxRequestMinuteDayCount:5, //分钟数据获取几天数据 默认取5天数据
|
|
213
|
+
IsShowTooltip:false, //是否显示K线提示信息
|
|
214
|
+
DrawType:0, //K线类型 0=实心K线柱子 1=收盘价线 2=美国线 3=空心K线柱子 4=收盘价面积图
|
|
215
|
+
KLineDoubleClick:false, //禁止双击弹框
|
|
216
|
+
RightSpaceCount:0,
|
|
217
|
+
ZoomType:0,
|
|
218
|
+
DataWidth:2,
|
|
219
|
+
},
|
|
220
|
+
|
|
221
|
+
StepPixel:0,
|
|
222
|
+
|
|
223
|
+
Listener:
|
|
224
|
+
{
|
|
225
|
+
KeyDown:false,
|
|
226
|
+
Wheel:false
|
|
227
|
+
},
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
KLineTitle: //标题设置
|
|
232
|
+
{
|
|
233
|
+
IsShowName:true, //不显示股票名称
|
|
234
|
+
IsShowSettingInfo:true, //不显示周期/复权
|
|
235
|
+
//IsTitleShowLatestData:true,
|
|
236
|
+
},
|
|
237
|
+
|
|
238
|
+
Border: //边框
|
|
239
|
+
{
|
|
240
|
+
|
|
241
|
+
Left:1, //左边间距
|
|
242
|
+
Right:20, //右边间距
|
|
243
|
+
Bottom:25, //底部间距
|
|
244
|
+
Top:25, //顶部间距
|
|
245
|
+
|
|
246
|
+
AutoLeft:{ Blank:10, MinWidth:30 },
|
|
247
|
+
AutoRight:{ Blank:5, MinWidth:30 },
|
|
248
|
+
},
|
|
249
|
+
|
|
250
|
+
Frame: //子框架设置
|
|
251
|
+
[
|
|
252
|
+
{
|
|
253
|
+
SplitCount:4,
|
|
254
|
+
IsShowLeftText:false,
|
|
255
|
+
},
|
|
256
|
+
|
|
257
|
+
{ SplitCount:3,IsShowLeftText:false, },
|
|
258
|
+
{ SplitCount:3, IsShowLeftText:false,}
|
|
259
|
+
],
|
|
260
|
+
}
|
|
261
|
+
return option;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
|
|
271
|
+
|
|
272
|
+
|