hqchart 1.1.14313 → 1.1.14330
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 +219 -203
- package/package.json +1 -1
- package/src/jscommon/umychart.NetworkFilterTest.js +72 -0
- package/src/jscommon/umychart.complier.js +149 -3
- package/src/jscommon/umychart.js +401 -110
- package/src/jscommon/umychart.style.js +14 -0
- package/src/jscommon/umychart.testdata.js +72 -0
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +565 -114
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.NetworkFilterTest.vue.js +72 -0
- package/src/jscommon/umychart.vue/umychart.vue.js +565 -114
|
@@ -35898,6 +35898,313 @@ function ChartSimplePie()
|
|
|
35898
35898
|
}
|
|
35899
35899
|
}
|
|
35900
35900
|
|
|
35901
|
+
|
|
35902
|
+
//雷达图
|
|
35903
|
+
function ChartSimpleRadar()
|
|
35904
|
+
{
|
|
35905
|
+
this.newMethod=IChartPainting; //派生
|
|
35906
|
+
this.newMethod();
|
|
35907
|
+
delete this.newMethod;
|
|
35908
|
+
|
|
35909
|
+
this.ClassName='ChartSimpleRadar'; //类名
|
|
35910
|
+
|
|
35911
|
+
this.AreaColor='rgba(242,154,118,0.4)'; //
|
|
35912
|
+
this.AreaLineColor='rgb(242,154,118)';
|
|
35913
|
+
|
|
35914
|
+
this.TitleColor=g_JSChartResource.ChartSimpleRadar.TextColor;
|
|
35915
|
+
this.TextFontConfig=CloneData(g_JSChartResource.ChartSimpleRadar.TextFont);
|
|
35916
|
+
this.Offset=CloneData(g_JSChartResource.ChartSimpleRadar.Offset);
|
|
35917
|
+
this.BorderColor=g_JSChartResource.ChartSimpleRadar.BorderColor;
|
|
35918
|
+
this.AryBGColor=g_JSChartResource.ChartSimpleRadar.AryBGColor.slice();//背景色
|
|
35919
|
+
this.AryAreaConfig=g_JSChartResource.ChartSimpleRadar.AryArea.slice(); //面积图颜色
|
|
35920
|
+
|
|
35921
|
+
this.StartAngle=270;
|
|
35922
|
+
this.Radius=50;
|
|
35923
|
+
this.AryBorder=[1, 0.75, 0.5, 0.25];
|
|
35924
|
+
this.AryIndex; //指标{ Name:, Max:100, Min:0 },
|
|
35925
|
+
|
|
35926
|
+
this.CenterPoint={};
|
|
35927
|
+
this.RectClient={ };
|
|
35928
|
+
this.AryIndexCache=[];
|
|
35929
|
+
this.MapDataCache=new Map(); //key=name value={ Data:[] }
|
|
35930
|
+
this.TextFont;
|
|
35931
|
+
|
|
35932
|
+
|
|
35933
|
+
this.ReloadResource=function(resource)
|
|
35934
|
+
{
|
|
35935
|
+
this.TitleColor=g_JSChartResource.ChartSimpleRadar.TextColor;
|
|
35936
|
+
this.TextFontConfig=CloneData(g_JSChartResource.ChartSimpleRadar.TextFont);
|
|
35937
|
+
this.Offset=CloneData(g_JSChartResource.ChartSimpleRadar.Offset);
|
|
35938
|
+
this.BorderColor=g_JSChartResource.ChartSimpleRadar.BorderColor;
|
|
35939
|
+
this.AryBGColor=g_JSChartResource.ChartSimpleRadar.AryBGColor.slice();//背景色
|
|
35940
|
+
this.AryAreaConfig=g_JSChartResource.ChartSimpleRadar.AryArea.slice(); //面积图颜色
|
|
35941
|
+
}
|
|
35942
|
+
|
|
35943
|
+
this.DrawBorder=function() //画边框
|
|
35944
|
+
{
|
|
35945
|
+
this.Canvas.strokeStyle = this.BorderColor;
|
|
35946
|
+
this.Canvas.font=this.TextFont;
|
|
35947
|
+
for(var i=0;i<this.AryBorder.length;++i)
|
|
35948
|
+
{
|
|
35949
|
+
var rate = this.AryBorder[i];
|
|
35950
|
+
var radius=this.RectClient.Radius*rate;
|
|
35951
|
+
var bFirstDraw=true;
|
|
35952
|
+
for(var j=0;j<this.AryIndexCache.length;++j)
|
|
35953
|
+
{
|
|
35954
|
+
var item=this.AryIndexCache[j];
|
|
35955
|
+
var x = this.CenterPoint.X + radius * Math.cos(item.Angle * Math.PI / 180);
|
|
35956
|
+
var y = this.CenterPoint.Y + radius * Math.sin(item.Angle * Math.PI / 180);
|
|
35957
|
+
if (bFirstDraw)
|
|
35958
|
+
{
|
|
35959
|
+
this.Canvas.beginPath();
|
|
35960
|
+
this.Canvas.moveTo(x,y);
|
|
35961
|
+
bFirstDraw=false;
|
|
35962
|
+
}
|
|
35963
|
+
else
|
|
35964
|
+
{
|
|
35965
|
+
this.Canvas.lineTo(x,y);
|
|
35966
|
+
}
|
|
35967
|
+
}
|
|
35968
|
+
|
|
35969
|
+
this.Canvas.closePath();
|
|
35970
|
+
this.Canvas.stroke();
|
|
35971
|
+
|
|
35972
|
+
if (IFrameSplitOperator.IsNonEmptyArray(this.AryBGColor))
|
|
35973
|
+
{
|
|
35974
|
+
this.Canvas.fillStyle = this.AryBGColor[i%this.AryBGColor.length];
|
|
35975
|
+
this.Canvas.fill();
|
|
35976
|
+
}
|
|
35977
|
+
}
|
|
35978
|
+
|
|
35979
|
+
this.Canvas.beginPath();
|
|
35980
|
+
for(var i=0;i<this.AryIndexCache.length;++i)
|
|
35981
|
+
{
|
|
35982
|
+
var item=this.AryIndexCache[i];
|
|
35983
|
+
var x = this.CenterPoint.X + item.Radius * Math.cos(item.Angle * Math.PI / 180);
|
|
35984
|
+
var y = this.CenterPoint.Y + item.Radius * Math.sin(item.Angle * Math.PI / 180);
|
|
35985
|
+
this.Canvas.moveTo(this.CenterPoint.X,this.CenterPoint.Y);
|
|
35986
|
+
this.Canvas.lineTo(x,y);
|
|
35987
|
+
this.DrawText(item, x, y);
|
|
35988
|
+
}
|
|
35989
|
+
this.Canvas.stroke();
|
|
35990
|
+
|
|
35991
|
+
}
|
|
35992
|
+
|
|
35993
|
+
this.GetRadarRate=function(indexItem, value)
|
|
35994
|
+
{
|
|
35995
|
+
var range={ Max:100, Min:0 };
|
|
35996
|
+
if (IFrameSplitOperator.IsNumber(indexItem.Max)) range.Max=indexItem.Max;
|
|
35997
|
+
if (IFrameSplitOperator.IsNumber(indexItem.Min)) range.Min=indexItem.Min;
|
|
35998
|
+
|
|
35999
|
+
if (value>range.Max) value=range.Max;
|
|
36000
|
+
else if (value<range.Min) value=range.Min;
|
|
36001
|
+
|
|
36002
|
+
return (value-range.Min)/(range.Max-range.Min);
|
|
36003
|
+
}
|
|
36004
|
+
|
|
36005
|
+
this.DrawArea=function()
|
|
36006
|
+
{
|
|
36007
|
+
if (this.MapDataCache.size<=0) return;
|
|
36008
|
+
|
|
36009
|
+
var index=0;
|
|
36010
|
+
for(var mapItem of this.MapDataCache)
|
|
36011
|
+
{
|
|
36012
|
+
var mapData=mapItem[1].MapData;
|
|
36013
|
+
|
|
36014
|
+
var bFirstDraw=true;
|
|
36015
|
+
var pointCount=0;
|
|
36016
|
+
for(var i=0;i<this.AryIndexCache.length;++i)
|
|
36017
|
+
{
|
|
36018
|
+
var indexItem=this.AryIndexCache[i];
|
|
36019
|
+
if (!indexItem.Data || !indexItem.Data.Name) continue;
|
|
36020
|
+
if (!mapData.has(indexItem.Data.Name)) continue;
|
|
36021
|
+
var item=mapData.get(indexItem.Data.Name);
|
|
36022
|
+
if (!item.Data && !IFrameSplitOperator.IsNumber(item.Data.Value)) conintue;
|
|
36023
|
+
|
|
36024
|
+
var widthRate=this.GetRadarRate(indexItem, item.Data.Value);
|
|
36025
|
+
var x = this.CenterPoint.X+indexItem.Radius*widthRate*Math.cos(indexItem.Angle * Math.PI / 180);
|
|
36026
|
+
var y = this.CenterPoint.Y+indexItem.Radius*widthRate*Math.sin(indexItem.Angle * Math.PI / 180);
|
|
36027
|
+
|
|
36028
|
+
if (bFirstDraw)
|
|
36029
|
+
{
|
|
36030
|
+
this.Canvas.beginPath();
|
|
36031
|
+
this.Canvas.moveTo(x,y);
|
|
36032
|
+
bFirstDraw=false;
|
|
36033
|
+
++pointCount;
|
|
36034
|
+
}
|
|
36035
|
+
else
|
|
36036
|
+
{
|
|
36037
|
+
this.Canvas.lineTo(x,y);
|
|
36038
|
+
++pointCount;
|
|
36039
|
+
}
|
|
36040
|
+
}
|
|
36041
|
+
|
|
36042
|
+
if (pointCount>0)
|
|
36043
|
+
{
|
|
36044
|
+
this.Canvas.closePath();
|
|
36045
|
+
|
|
36046
|
+
var config=this.AryAreaConfig[index%this.AryAreaConfig.length];
|
|
36047
|
+
if (config.Color)
|
|
36048
|
+
{
|
|
36049
|
+
this.Canvas.fillStyle = config.Color;
|
|
36050
|
+
this.Canvas.fill();
|
|
36051
|
+
}
|
|
36052
|
+
|
|
36053
|
+
if (config.LineColor)
|
|
36054
|
+
{
|
|
36055
|
+
this.Canvas.strokeStyle = config.LineColor;
|
|
36056
|
+
this.Canvas.stroke();
|
|
36057
|
+
}
|
|
36058
|
+
}
|
|
36059
|
+
|
|
36060
|
+
++index;
|
|
36061
|
+
}
|
|
36062
|
+
}
|
|
36063
|
+
|
|
36064
|
+
this.DrawText=function(item, x, y)
|
|
36065
|
+
{
|
|
36066
|
+
if (!item.Data || !item.Data.Name) return;
|
|
36067
|
+
|
|
36068
|
+
//JSConsole.Chart.Log(item.Text, item.Angle);
|
|
36069
|
+
this.Canvas.fillStyle = this.TitleColor;
|
|
36070
|
+
var xText = x, yText =y;
|
|
36071
|
+
|
|
36072
|
+
var angle=item.Angle%360;
|
|
36073
|
+
|
|
36074
|
+
//显示每个角度的位置
|
|
36075
|
+
if (angle > 0 && angle < 45) {
|
|
36076
|
+
this.Canvas.textAlign = 'left';
|
|
36077
|
+
this.Canvas.textBaseline = 'middle';
|
|
36078
|
+
xText += 2;
|
|
36079
|
+
}
|
|
36080
|
+
else if (angle >= 45 && angle < 90) {
|
|
36081
|
+
this.Canvas.textAlign = 'left';
|
|
36082
|
+
this.Canvas.textBaseline = 'top';
|
|
36083
|
+
xText += 2;
|
|
36084
|
+
}
|
|
36085
|
+
else if (angle==90)
|
|
36086
|
+
{
|
|
36087
|
+
this.Canvas.textAlign = 'center';
|
|
36088
|
+
this.Canvas.textBaseline = 'top';
|
|
36089
|
+
yText+=2;
|
|
36090
|
+
}
|
|
36091
|
+
else if (angle >= 90 && angle < 135) {
|
|
36092
|
+
this.Canvas.textAlign = 'right';
|
|
36093
|
+
this.Canvas.textBaseline = 'top';
|
|
36094
|
+
xText -= 2;
|
|
36095
|
+
}
|
|
36096
|
+
else if (angle >= 135 && angle < 180) {
|
|
36097
|
+
this.Canvas.textAlign = 'right';
|
|
36098
|
+
this.Canvas.textBaseline = 'top';
|
|
36099
|
+
xText -= 2;
|
|
36100
|
+
}
|
|
36101
|
+
else if (angle >= 180 && angle < 225) {
|
|
36102
|
+
this.Canvas.textAlign = 'right';
|
|
36103
|
+
this.Canvas.textBaseline = 'middle';
|
|
36104
|
+
xText -= 2;
|
|
36105
|
+
}
|
|
36106
|
+
else if (angle >= 225 && angle <= 270) {
|
|
36107
|
+
this.Canvas.textAlign = 'center';
|
|
36108
|
+
this.Canvas.textBaseline = 'bottom';
|
|
36109
|
+
}
|
|
36110
|
+
else if (angle > 270 && angle < 315) {
|
|
36111
|
+
this.Canvas.textAlign = 'left';
|
|
36112
|
+
this.Canvas.textBaseline = 'bottom';
|
|
36113
|
+
xText += 2;
|
|
36114
|
+
}
|
|
36115
|
+
else
|
|
36116
|
+
{
|
|
36117
|
+
this.Canvas.textAlign = 'left';
|
|
36118
|
+
this.Canvas.textBaseline = 'middle';
|
|
36119
|
+
xText += 2;
|
|
36120
|
+
}
|
|
36121
|
+
|
|
36122
|
+
this.Canvas.fillText(item.Data.Name, xText, yText);
|
|
36123
|
+
}
|
|
36124
|
+
|
|
36125
|
+
this.Draw=function()
|
|
36126
|
+
{
|
|
36127
|
+
this.AryIndexCache=[];
|
|
36128
|
+
this.MapData=new Map();
|
|
36129
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.AryIndex)) return;
|
|
36130
|
+
|
|
36131
|
+
this.CalculateSize();
|
|
36132
|
+
|
|
36133
|
+
this.DrawBorder();
|
|
36134
|
+
|
|
36135
|
+
this.DrawArea();
|
|
36136
|
+
}
|
|
36137
|
+
|
|
36138
|
+
this.BuildCacheData=function()
|
|
36139
|
+
{
|
|
36140
|
+
this.MapDataCache=new Map();
|
|
36141
|
+
|
|
36142
|
+
for(var i=0;i<this.Data.Data.length;++i)
|
|
36143
|
+
{
|
|
36144
|
+
var item=this.Data.Data[i];
|
|
36145
|
+
if (!this.MapDataCache.has(item.Group))
|
|
36146
|
+
{
|
|
36147
|
+
this.MapDataCache.set(item.Group, { MapData:new Map() })
|
|
36148
|
+
}
|
|
36149
|
+
|
|
36150
|
+
var mpaItem=this.MapDataCache.get(item.Group);
|
|
36151
|
+
mpaItem.MapData.set(item.Name, { Data:item });
|
|
36152
|
+
}
|
|
36153
|
+
}
|
|
36154
|
+
|
|
36155
|
+
this.CalculateSize=function(data)
|
|
36156
|
+
{
|
|
36157
|
+
var border=this.ChartBorder.GetBorder();
|
|
36158
|
+
var pixelRatio=GetDevicePixelRatio();
|
|
36159
|
+
this.TextFont=`${this.TextFontConfig.Size*pixelRatio}px ${ this.TextFontConfig.Name}`;
|
|
36160
|
+
var fontHeight=this.GetFontHeight(this.TextFont,"擎")+1;
|
|
36161
|
+
|
|
36162
|
+
var maxTextWidth=0;
|
|
36163
|
+
if (IFrameSplitOperator.IsNonEmptyArray(this.AryIndex))
|
|
36164
|
+
{
|
|
36165
|
+
for(var i=0;i<this.AryIndex.length;++i)
|
|
36166
|
+
{
|
|
36167
|
+
var item=this.AryIndex[i];
|
|
36168
|
+
if (!item.Name) continue;
|
|
36169
|
+
var textWidth=this.Canvas.measureText(item.Name).width;
|
|
36170
|
+
if (maxTextWidth<textWidth) maxTextWidth=textWidth;
|
|
36171
|
+
}
|
|
36172
|
+
}
|
|
36173
|
+
|
|
36174
|
+
var radius=this.Radius*2*pixelRatio; //半径
|
|
36175
|
+
this.RectClient={ Width:radius*2, Height:radius*2, Radius:radius };
|
|
36176
|
+
this.RectClient.Right=border.Right+this.Offset.X-maxTextWidth;
|
|
36177
|
+
this.RectClient.Top=border.TopEx+this.Offset.Y+fontHeight;
|
|
36178
|
+
this.RectClient.Left=this.RectClient.Right-this.RectClient.Width;
|
|
36179
|
+
this.RectClient.Bottom=this.RectClient.Top+this.RectClient.Height;
|
|
36180
|
+
|
|
36181
|
+
var ptCenter={X:this.RectClient.Left+this.RectClient.Width/2, Y:this.RectClient.Top+this.RectClient.Height/2}; //中心点
|
|
36182
|
+
|
|
36183
|
+
var count=Math.max(5,this.AryIndex.length);
|
|
36184
|
+
var averageAngle=360/count;
|
|
36185
|
+
for(var i=0;i<count;++i)
|
|
36186
|
+
{
|
|
36187
|
+
var angle=i*averageAngle+this.StartAngle;
|
|
36188
|
+
|
|
36189
|
+
var indexItem={ Data:null, Index:i, Angle:angle, Radius:radius };
|
|
36190
|
+
if (this.AryIndex && this.AryIndex[i])
|
|
36191
|
+
{
|
|
36192
|
+
indexItem.Data=this.AryIndex[i];
|
|
36193
|
+
}
|
|
36194
|
+
|
|
36195
|
+
this.AryIndexCache.push(indexItem);
|
|
36196
|
+
}
|
|
36197
|
+
|
|
36198
|
+
this.CenterPoint=ptCenter;
|
|
36199
|
+
}
|
|
36200
|
+
|
|
36201
|
+
//空数据
|
|
36202
|
+
this.DrawEmptyData=function()
|
|
36203
|
+
{
|
|
36204
|
+
JSConsole.Chart.Log('[ChartSimpleRadar::DrawEmptyData]')
|
|
36205
|
+
}
|
|
36206
|
+
}
|
|
36207
|
+
|
|
35901
36208
|
//分钟成交量 支持横屏
|
|
35902
36209
|
function ChartMinuteVolumBar()
|
|
35903
36210
|
{
|
|
@@ -56525,6 +56832,7 @@ function ChartCorssCursor()
|
|
|
56525
56832
|
this.TextBGColor=g_JSChartResource.CorssCursorBGColor; //文本背景色
|
|
56526
56833
|
this.BorderColor=g_JSChartResource.CorssCursorBorderColor; //边框颜色
|
|
56527
56834
|
this.XRangeBGColor=g_JSChartResource.CorssCursorXRangeBGColor;
|
|
56835
|
+
this.LineDash=g_JSChartResource.CorssCursorLineDash.slice(); //虚线
|
|
56528
56836
|
this.TextHeight=20; //文本字体高度
|
|
56529
56837
|
this.LastPoint;
|
|
56530
56838
|
this.LastValue; //{ Y:{ Value:, Extend: } }
|
|
@@ -56580,6 +56888,7 @@ function ChartCorssCursor()
|
|
|
56580
56888
|
this.TextBGColor=g_JSChartResource.CorssCursorBGColor; //文本背景色
|
|
56581
56889
|
this.BorderColor=g_JSChartResource.CorssCursorBorderColor; //边框颜色
|
|
56582
56890
|
this.XRangeBGColor=g_JSChartResource.CorssCursorXRangeBGColor;
|
|
56891
|
+
this.LineDash=g_JSChartResource.CorssCursorLineDash.slice(); //虚线
|
|
56583
56892
|
}
|
|
56584
56893
|
|
|
56585
56894
|
this.GetCloseYPoint=function(index)
|
|
@@ -56838,10 +57147,10 @@ function ChartCorssCursor()
|
|
|
56838
57147
|
}
|
|
56839
57148
|
|
|
56840
57149
|
var pixel=GetDevicePixelRatio();
|
|
56841
|
-
if (this.HPenType==1 || this.HPenType==0) //0
|
|
57150
|
+
if (this.HPenType==1 || this.HPenType==0) //0=虚线 1=实线
|
|
56842
57151
|
{
|
|
56843
57152
|
this.Canvas.strokeStyle=this.HPenColor;
|
|
56844
|
-
if (this.HPenType==0) this.Canvas.setLineDash(
|
|
57153
|
+
if (this.HPenType==0) this.Canvas.setLineDash(this.LineDash); //虚线
|
|
56845
57154
|
//this.Canvas.lineWidth=0.5
|
|
56846
57155
|
this.Canvas.beginPath();
|
|
56847
57156
|
this.Canvas.moveTo(left,ToFixedPoint(y));
|
|
@@ -56854,7 +57163,7 @@ function ChartCorssCursor()
|
|
|
56854
57163
|
this.Canvas.strokeStyle=this.VPenColor;
|
|
56855
57164
|
if (this.VPenType==0)
|
|
56856
57165
|
{
|
|
56857
|
-
this.Canvas.setLineDash(
|
|
57166
|
+
this.Canvas.setLineDash(this.LineDash); //虚线
|
|
56858
57167
|
}
|
|
56859
57168
|
else if (this.VPenType==2)
|
|
56860
57169
|
{
|
|
@@ -57449,7 +57758,7 @@ function ChartCorssCursor()
|
|
|
57449
57758
|
var pixel=GetDevicePixelRatio();
|
|
57450
57759
|
this.Canvas.save();
|
|
57451
57760
|
this.Canvas.strokeStyle=this.HPenColor;
|
|
57452
|
-
if (this.HPenType==0) this.Canvas.setLineDash(
|
|
57761
|
+
if (this.HPenType==0) this.Canvas.setLineDash(this.LineDash); //虚线
|
|
57453
57762
|
|
|
57454
57763
|
//画竖线
|
|
57455
57764
|
this.Canvas.beginPath();
|
|
@@ -57463,7 +57772,7 @@ function ChartCorssCursor()
|
|
|
57463
57772
|
this.Canvas.strokeStyle=this.VPenColor;
|
|
57464
57773
|
if (this.VPenType==0)
|
|
57465
57774
|
{
|
|
57466
|
-
this.Canvas.setLineDash(
|
|
57775
|
+
this.Canvas.setLineDash(this.LineDash); //虚线
|
|
57467
57776
|
}
|
|
57468
57777
|
else if (this.VPenType==2)
|
|
57469
57778
|
{
|
|
@@ -60739,7 +61048,12 @@ function DynamicChartTitlePainting()
|
|
|
60739
61048
|
{
|
|
60740
61049
|
this.Font=g_JSChartResource.TitleFont;
|
|
60741
61050
|
this.TitleColor=g_JSChartResource.DefaultTextColor;
|
|
61051
|
+
this.SelectedColor=g_JSChartResource.IndexTitleSelectedColor;
|
|
60742
61052
|
this.OverlayIndexType.BGColor=g_JSChartResource.OverlayIndexTitleBGColor;
|
|
61053
|
+
|
|
61054
|
+
this.BGColor=g_JSChartResource.IndexTitleBGColor;
|
|
61055
|
+
this.BGBorderColor=g_JSChartResource.IndexTitleBorderColor;
|
|
61056
|
+
this.BGBorderMoveOnColor=g_JSChartResource.IndexTitleBorderMoveOnColor;
|
|
60743
61057
|
}
|
|
60744
61058
|
|
|
60745
61059
|
this.SetDynamicTitleData=function(outName, args, data)
|
|
@@ -74413,6 +74727,7 @@ function JSChartResource()
|
|
|
74413
74727
|
this.CorssCursorHPenColor="rgb(130,130,130)"; //十字光标线段颜色(水平)
|
|
74414
74728
|
this.CorssCursorVPenColor="rgb(130,130,130)"; //十字光标线段颜色(垂直)
|
|
74415
74729
|
this.CorssCursorXRangeBGColor="rgba(100,149,237,0.3)"; //十字光标X轴访问背景色
|
|
74730
|
+
this.CorssCursorLineDash=[3*GetDevicePixelRatio(),2*GetDevicePixelRatio()]; //十字光标虚线
|
|
74416
74731
|
|
|
74417
74732
|
this.CorssCursor=
|
|
74418
74733
|
{
|
|
@@ -74783,6 +75098,20 @@ function JSChartResource()
|
|
|
74783
75098
|
Offset:{ X:-5, Y:5 }
|
|
74784
75099
|
}
|
|
74785
75100
|
|
|
75101
|
+
this.ChartSimpleRadar=
|
|
75102
|
+
{
|
|
75103
|
+
TextFont:{ Family:'微软雅黑' , Size:12 },
|
|
75104
|
+
BorderColor:"rgb(169,169,169)",
|
|
75105
|
+
Offset:{ X:-5, Y:5 },
|
|
75106
|
+
TextColor:"rgb(105,105,105)",
|
|
75107
|
+
AryBGColor:['rgba(255,255,255,0.9)', 'rgba(230, 234, 242,0.9)'],
|
|
75108
|
+
AryArea:
|
|
75109
|
+
[
|
|
75110
|
+
{ Color:"rgba(242,154,118,0.4)", LineColor:"rgb(242,154,118)"},
|
|
75111
|
+
{ Color:"rgba(121,197,228,0.4)", LineColor:"rgb(92,165,196)"},
|
|
75112
|
+
],
|
|
75113
|
+
}
|
|
75114
|
+
|
|
74786
75115
|
//手机端tooltip
|
|
74787
75116
|
this.TooltipPaint = {
|
|
74788
75117
|
BGColor:'rgba(250,250,250,0.8)', //背景色
|
|
@@ -75833,6 +76162,7 @@ function JSChartResource()
|
|
|
75833
76162
|
if (style.CorssCursorHPenColor) this.CorssCursorHPenColor = style.CorssCursorHPenColor;
|
|
75834
76163
|
if (style.CorssCursorBorderColor) this.CorssCursorBorderColor=style.CorssCursorBorderColor;
|
|
75835
76164
|
if (style.CorssCursorXRangeBGColor) this.CorssCursorXRangeBGColor=style.CorssCursorXRangeBGColor;
|
|
76165
|
+
if (style.CorssCursorLineDash) this.CorssCursorLineDash=style.CorssCursorLineDash.slice();
|
|
75836
76166
|
if (style.CorssCursor && style.CorssCursor.RightButton)
|
|
75837
76167
|
{
|
|
75838
76168
|
var item=style.CorssCursor.RightButton;
|
|
@@ -76013,6 +76343,7 @@ function JSChartResource()
|
|
|
76013
76343
|
|
|
76014
76344
|
if (style.ChartSimpleTable) this.SetChartSimpleTable(style.ChartSimpleTable);
|
|
76015
76345
|
if (style.ChartSimplePie) this.SetChartSimplePie(style.ChartSimplePie);
|
|
76346
|
+
if (style.ChartSimpleRadar) this.SetChartSimpleRadar(style.ChartSimpleRadar);
|
|
76016
76347
|
|
|
76017
76348
|
if (style.DRAWICON)
|
|
76018
76349
|
{
|
|
@@ -77106,6 +77437,30 @@ function JSChartResource()
|
|
|
77106
77437
|
}
|
|
77107
77438
|
}
|
|
77108
77439
|
|
|
77440
|
+
this.SetChartSimpleRadar=function(style)
|
|
77441
|
+
{
|
|
77442
|
+
var dest=this.ChartSimpleRadar;
|
|
77443
|
+
if (style.TextFont)
|
|
77444
|
+
{
|
|
77445
|
+
var item=style.TextFont;
|
|
77446
|
+
if (item.Name) dest.TextFont.Name=item.Name;
|
|
77447
|
+
if (IFrameSplitOperator.IsNumber(item.Size)) dest.TextFont.Size=item.Size;
|
|
77448
|
+
}
|
|
77449
|
+
|
|
77450
|
+
if (style.BorderColor) dest.BorderColor=style.BorderColor;
|
|
77451
|
+
if (style.TextColor) dest.TextColor=style.TextColor;
|
|
77452
|
+
|
|
77453
|
+
if (style.Offset)
|
|
77454
|
+
{
|
|
77455
|
+
var item=style.Offset;
|
|
77456
|
+
if (IFrameSplitOperator.IsNumber(item.X)) dest.Offset.X=item.X;
|
|
77457
|
+
if (IFrameSplitOperator.IsNumber(item.Y)) dest.Offset.Y=item.Y;
|
|
77458
|
+
}
|
|
77459
|
+
|
|
77460
|
+
if (IFrameSplitOperator.IsNonEmptyArray(style.AryBGColor)) dest.AryBGColor=style.AryBGColor.slice();
|
|
77461
|
+
if (IFrameSplitOperator.IsNonEmptyArray(style.AryArea)) dest.AryArea=style.AryArea.slice();
|
|
77462
|
+
}
|
|
77463
|
+
|
|
77109
77464
|
}
|
|
77110
77465
|
|
|
77111
77466
|
var g_JSChartResource=new JSChartResource();
|
|
@@ -89872,12 +90227,12 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
89872
90227
|
this.CaclutateCallCationYRange();
|
|
89873
90228
|
}
|
|
89874
90229
|
|
|
90230
|
+
//增量更新
|
|
89875
90231
|
this.RecvUpdateMinuteData=function(data)
|
|
89876
90232
|
{
|
|
89877
90233
|
var minuteData=MinuteChartContainer.JsonDataToUpdateMinuteData(data);
|
|
89878
90234
|
var aryColorData=MinuteChartContainer.JsonDataToMinuteLineColorData(data);
|
|
89879
|
-
|
|
89880
|
-
this.AfterCloseData=null;
|
|
90235
|
+
|
|
89881
90236
|
var beforeOpenData=MinuteChartContainer.JsonDataToBeforeOpenData(data);
|
|
89882
90237
|
var afterCloseData=MinuteChartContainer.JsonDataToAfterCloseData(data);
|
|
89883
90238
|
var updateTime=MinuteChartContainer.JsonDataToMinuteLastUpdateTime(data); //数据最后的更新时间
|
|
@@ -89896,92 +90251,22 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
89896
90251
|
return;
|
|
89897
90252
|
}
|
|
89898
90253
|
|
|
89899
|
-
|
|
90254
|
+
if (this.IsBeforeData && beforeOpenData) this.BeforeOpenData=beforeOpenData;
|
|
90255
|
+
if (this.IsAfterData && afterCloseData) this.AfterCloseData=afterCloseData;
|
|
89900
90256
|
|
|
90257
|
+
//原始数据
|
|
89901
90258
|
this.UpdateLatestMinuteDataV2(minuteData);
|
|
89902
|
-
|
|
89903
|
-
var aryMinuteData=this.SourceData.Data;
|
|
89904
|
-
this.ColorLineData=aryColorData;
|
|
89905
|
-
this.TradeDate=data.stock[0].date;
|
|
89906
|
-
this.Frame.SetDayCount(1); //单日数据
|
|
89907
|
-
this.SourceData.UpdateTime=updateTime;
|
|
89908
|
-
this.Symbol=minuteData.Symbol;
|
|
89909
|
-
this.Name=minuteData.Name;
|
|
89910
|
-
|
|
89911
|
-
this.SetCallCationDataBorder( { Left:this.IsBeforeData, Right:this.IsAfterData , MultiDay:{ Left:false, Right:false }} );
|
|
89912
|
-
|
|
89913
|
-
if (this.ShareAfterVol==2) //盘前, 盘后成交量公用坐标
|
|
89914
|
-
{
|
|
89915
|
-
if (this.BeforeOpenData && this.AfterCloseData)
|
|
89916
|
-
{
|
|
89917
|
-
var max=Math.max(this.BeforeOpenData.VolMax, this.AfterCloseData.VolMax);
|
|
89918
|
-
var min=Math.min(this.BeforeOpenData.VolMin, this.AfterCloseData.VolMin);
|
|
89919
|
-
this.BeforeOpenData.VolMax=this.AfterCloseData.VolMax=max;
|
|
89920
|
-
this.BeforeOpenData.VolMin=this.AfterCloseData.VolMin=min;
|
|
89921
|
-
}
|
|
89922
|
-
}
|
|
90259
|
+
this.UpdateMinuteUI(data.stock[0], {FunctionName:"RecvUpdateMinuteData"});
|
|
89923
90260
|
|
|
89924
|
-
|
|
89925
|
-
var upperSymbol=this.Symbol.toUpperCase();
|
|
89926
|
-
var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol);
|
|
89927
|
-
if (minuteData.YClearing>0 && isFutures) yClose=minuteData.YClearing; //期货使用前结算价
|
|
89928
|
-
this.CaclutateLimitPrice(yClose, minuteData.LimitPrice); //计算涨停价格
|
|
89929
|
-
var extendData=null;
|
|
89930
|
-
if (minuteData.High>0 && minuteData.Low>0) extendData={ High:minuteData.High, Low:minuteData.Low };
|
|
89931
|
-
this.BindMainData(sourceData,yClose, extendData);
|
|
89932
|
-
|
|
89933
|
-
if (this.Frame.SubFrame.length>2)
|
|
90261
|
+
if (data.AutoUpdate===false) //不执行自动更新
|
|
89934
90262
|
{
|
|
89935
|
-
var bindData=new ChartData();
|
|
89936
|
-
bindData.Data=aryMinuteData;
|
|
89937
|
-
for(var i=2; i<this.Frame.SubFrame.length; ++i)
|
|
89938
|
-
{
|
|
89939
|
-
this.BindIndexData(i,bindData);
|
|
89940
|
-
}
|
|
89941
|
-
}
|
|
89942
90263
|
|
|
89943
|
-
|
|
90264
|
+
}
|
|
90265
|
+
else
|
|
89944
90266
|
{
|
|
89945
|
-
|
|
89946
|
-
|
|
89947
|
-
item.Frame.XSplitOperator.DayCount=1;
|
|
89948
|
-
item.Frame.XSplitOperator.Operator(); //调整X轴个数
|
|
89949
|
-
item.Frame.YSplitOperator.Symbol=this.Symbol;
|
|
89950
|
-
|
|
89951
|
-
if (IFrameSplitOperator.IsNonEmptyArray(item.OverlayIndex))
|
|
89952
|
-
{
|
|
89953
|
-
for(var j=0;j<item.OverlayIndex.length; ++j) //子坐标X轴个数同步
|
|
89954
|
-
{
|
|
89955
|
-
var overlayItem=item.OverlayIndex[j];
|
|
89956
|
-
overlayItem.Frame.XPointCount=item.Frame.XPointCount;
|
|
89957
|
-
overlayItem.Frame.MinuteCount=item.Frame.MinuteCount;
|
|
89958
|
-
}
|
|
89959
|
-
}
|
|
90267
|
+
this.AutoUpdateEvent(true, "MinuteChartContainer::RecvUpdateMinuteData");
|
|
90268
|
+
this.AutoUpdate();
|
|
89960
90269
|
}
|
|
89961
|
-
|
|
89962
|
-
this.ChartCorssCursor.StringFormatY.Symbol=this.Symbol;
|
|
89963
|
-
this.ChartCorssCursor.StringFormatX.Symbol=this.Symbol;
|
|
89964
|
-
|
|
89965
|
-
if (MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol)) this.TitlePaint[0].IsShowDate=false;
|
|
89966
|
-
|
|
89967
|
-
if (data.stock[0].IsHistoryMinute==true) this.TitlePaint[0].IsShowDate=true;
|
|
89968
|
-
|
|
89969
|
-
var chartInfo=this.GetChartMinuteInfo();
|
|
89970
|
-
if (chartInfo) chartInfo.SourceData=this.SourceData; //数据绑定到信息地雷上
|
|
89971
|
-
|
|
89972
|
-
this.RecvMinuteDataEvent( {FunctionName:"RecvUpdateMinuteData"} );
|
|
89973
|
-
this.RequestMinuteInfoData();
|
|
89974
|
-
this.RequestOverlayMinuteData();//请求叠加数据 (主数据下载完再下载)
|
|
89975
|
-
this.CreateChartDrawPictureByStorage(); //创建画图工具
|
|
89976
|
-
|
|
89977
|
-
this.UpdateFrameMaxMin(); //调整坐标最大 最小值
|
|
89978
|
-
this.Frame.SetSizeChage(true);
|
|
89979
|
-
this.Draw();
|
|
89980
|
-
|
|
89981
|
-
this.BindAllOverlayIndexData(this.SourceData);
|
|
89982
|
-
|
|
89983
|
-
this.AutoUpdateEvent(true, "MinuteChartContainer::RecvUpdateMinuteData");
|
|
89984
|
-
this.AutoUpdate();
|
|
89985
90270
|
}
|
|
89986
90271
|
|
|
89987
90272
|
this.RecvMinuteData=function(data)
|
|
@@ -90048,15 +90333,31 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
90048
90333
|
var sourceData=new ChartData();
|
|
90049
90334
|
sourceData.Data=aryMinuteData;
|
|
90050
90335
|
sourceData.UpdateTime=updateTime;
|
|
90336
|
+
this.SourceData=sourceData;
|
|
90051
90337
|
|
|
90052
90338
|
this.ColorLineData=aryColorData;
|
|
90053
90339
|
|
|
90054
|
-
this.
|
|
90340
|
+
this.UpdateMinuteUI(data.stock[0], {FunctionName:"RecvMinuteData", Day:{ IsFirstData:bFirstData} });
|
|
90341
|
+
|
|
90342
|
+
if (data.AutoUpdate===false) //不执行自动更新
|
|
90343
|
+
{
|
|
90344
|
+
|
|
90345
|
+
}
|
|
90346
|
+
else
|
|
90347
|
+
{
|
|
90348
|
+
this.AutoUpdateEvent(true, "MinuteChartContainer::RecvMinuteData");
|
|
90349
|
+
this.AutoUpdate();
|
|
90350
|
+
}
|
|
90351
|
+
}
|
|
90352
|
+
|
|
90353
|
+
//更新单日分时图
|
|
90354
|
+
this.UpdateMinuteUI=function(stockData, eventData)
|
|
90355
|
+
{
|
|
90356
|
+
this.TradeDate=stockData.date;
|
|
90055
90357
|
this.Frame.SetDayCount(1); //单日数据
|
|
90056
90358
|
|
|
90057
|
-
this.
|
|
90058
|
-
this.
|
|
90059
|
-
this.Name=data.stock[0].name;
|
|
90359
|
+
this.Symbol=stockData.symbol;
|
|
90360
|
+
this.Name=stockData.name;
|
|
90060
90361
|
|
|
90061
90362
|
this.SetCallCationDataBorder( { Left:this.IsBeforeData, Right:this.IsAfterData , MultiDay:{ Left:false, Right:false }} );
|
|
90062
90363
|
|
|
@@ -90071,26 +90372,26 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
90071
90372
|
}
|
|
90072
90373
|
}
|
|
90073
90374
|
|
|
90074
|
-
var yClose=
|
|
90375
|
+
var yClose=stockData.yclose;
|
|
90075
90376
|
var upperSymbol=this.Symbol.toUpperCase();
|
|
90076
90377
|
var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol);
|
|
90077
|
-
if (
|
|
90078
|
-
this.CaclutateLimitPrice(yClose,
|
|
90378
|
+
if (stockData.yclearing>0 && isFutures) yClose=stockData.yclearing; //期货使用前结算价
|
|
90379
|
+
this.CaclutateLimitPrice(yClose, stockData.limitprice); //计算涨停价格
|
|
90079
90380
|
var extendData=null;
|
|
90080
|
-
if (
|
|
90081
|
-
this.BindMainData(
|
|
90381
|
+
if (stockData.high>0 && stockData.low>0) extendData={ High:stockData.high, Low:stockData.low };
|
|
90382
|
+
this.BindMainData(this.SourceData,yClose, extendData);
|
|
90082
90383
|
|
|
90083
90384
|
if (this.Frame.SubFrame.length>2)
|
|
90084
90385
|
{
|
|
90085
90386
|
var bindData=new ChartData();
|
|
90086
|
-
bindData.Data=
|
|
90387
|
+
bindData.Data=this.SourceData.Data;
|
|
90087
90388
|
for(var i=2; i<this.Frame.SubFrame.length; ++i)
|
|
90088
90389
|
{
|
|
90089
90390
|
this.BindIndexData(i,bindData);
|
|
90090
90391
|
}
|
|
90091
90392
|
}
|
|
90092
90393
|
|
|
90093
|
-
for(
|
|
90394
|
+
for(var i=0, j=0; i<this.Frame.SubFrame.length; ++i)
|
|
90094
90395
|
{
|
|
90095
90396
|
var item=this.Frame.SubFrame[i];
|
|
90096
90397
|
item.Frame.XSplitOperator.Symbol=this.Symbol;
|
|
@@ -90098,7 +90399,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
90098
90399
|
item.Frame.XSplitOperator.Operator(); //调整X轴个数
|
|
90099
90400
|
item.Frame.YSplitOperator.Symbol=this.Symbol;
|
|
90100
90401
|
|
|
90101
|
-
for(
|
|
90402
|
+
for(j=0;j<item.OverlayIndex.length;++j) //子坐标X轴个数同步
|
|
90102
90403
|
{
|
|
90103
90404
|
var overlayItem=item.OverlayIndex[j];
|
|
90104
90405
|
overlayItem.Frame.XPointCount=item.Frame.XPointCount;
|
|
@@ -90111,12 +90412,12 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
90111
90412
|
|
|
90112
90413
|
if (MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol)) this.TitlePaint[0].IsShowDate=false;
|
|
90113
90414
|
|
|
90114
|
-
if (
|
|
90415
|
+
if (stockData.IsHistoryMinute==true) this.TitlePaint[0].IsShowDate=true;
|
|
90115
90416
|
|
|
90116
90417
|
var chartInfo=this.GetChartMinuteInfo();
|
|
90117
90418
|
if (chartInfo) chartInfo.SourceData=this.SourceData; //数据绑定到信息地雷上
|
|
90118
90419
|
|
|
90119
|
-
this.RecvMinuteDataEvent(
|
|
90420
|
+
if (eventData) this.RecvMinuteDataEvent( eventData );
|
|
90120
90421
|
this.RequestMinuteInfoData();
|
|
90121
90422
|
this.RequestOverlayMinuteData();//请求叠加数据 (主数据下载完再下载)
|
|
90122
90423
|
this.CreateChartDrawPictureByStorage(); //创建画图工具
|
|
@@ -90126,16 +90427,6 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
90126
90427
|
this.Draw();
|
|
90127
90428
|
|
|
90128
90429
|
this.BindAllOverlayIndexData(this.SourceData);
|
|
90129
|
-
|
|
90130
|
-
if (data.AutoUpdate===false) //不执行自动更新
|
|
90131
|
-
{
|
|
90132
|
-
|
|
90133
|
-
}
|
|
90134
|
-
else
|
|
90135
|
-
{
|
|
90136
|
-
this.AutoUpdateEvent(true, "MinuteChartContainer::RecvMinuteData");
|
|
90137
|
-
this.AutoUpdate();
|
|
90138
|
-
}
|
|
90139
90430
|
}
|
|
90140
90431
|
|
|
90141
90432
|
this.CaclutateLimitPrice=function(yClose, limitData)
|
|
@@ -112338,8 +112629,24 @@ function JSDraw(errorHandler,symbolData)
|
|
|
112338
112629
|
}
|
|
112339
112630
|
|
|
112340
112631
|
//饼图
|
|
112341
|
-
this.PIE_CELL=function(
|
|
112632
|
+
this.PIE_CELL=function(data, color, text, textColor, lineColor)
|
|
112342
112633
|
{
|
|
112634
|
+
var value=null;
|
|
112635
|
+
if (IFrameSplitOperator.IsNumber(data))
|
|
112636
|
+
{
|
|
112637
|
+
value=data;
|
|
112638
|
+
}
|
|
112639
|
+
else if (IFrameSplitOperator.IsString(data))
|
|
112640
|
+
{
|
|
112641
|
+
value=parseFloat(data);
|
|
112642
|
+
}
|
|
112643
|
+
else if (IFrameSplitOperator.IsNonEmptyArray(data))
|
|
112644
|
+
{
|
|
112645
|
+
var lastValue=data[data.length-1];
|
|
112646
|
+
if (IFrameSplitOperator.IsNumber(lastValue)) value=lastValue;
|
|
112647
|
+
else if (IFrameSplitOperator.IsString(lastValue)) value=parseFloat(lastValue);
|
|
112648
|
+
}
|
|
112649
|
+
|
|
112343
112650
|
var cellItem={ Value:value, Color:color };
|
|
112344
112651
|
if (text) cellItem.Text=text;
|
|
112345
112652
|
if (textColor) cellItem.TextColor=textColor;
|
|
@@ -112360,6 +112667,48 @@ function JSDraw(errorHandler,symbolData)
|
|
|
112360
112667
|
|
|
112361
112668
|
return result={ DrawData:{ Data:aryCell, Radius:radius }, DrawType:"DRAW_SIMPLE_PIE" };
|
|
112362
112669
|
}
|
|
112670
|
+
|
|
112671
|
+
this.RADAR_CELL=function(name, data, max, min)
|
|
112672
|
+
{
|
|
112673
|
+
var cellItem={ Name:name, Max:100, Min:0, Value:null };
|
|
112674
|
+
if (IFrameSplitOperator.IsNumber(data))
|
|
112675
|
+
{
|
|
112676
|
+
cellItem.Value=data;
|
|
112677
|
+
}
|
|
112678
|
+
else if (IFrameSplitOperator.IsString(data))
|
|
112679
|
+
{
|
|
112680
|
+
cellItem.Value=parseFloat(data);
|
|
112681
|
+
}
|
|
112682
|
+
else if (IFrameSplitOperator.IsNonEmptyArray(data))
|
|
112683
|
+
{
|
|
112684
|
+
var lastValue=data[data.length-1];
|
|
112685
|
+
if (IFrameSplitOperator.IsNumber(lastValue)) cellItem.Value=lastValue;
|
|
112686
|
+
else if (IFrameSplitOperator.IsString(lastValue)) cellItem.Value=parseFloat(lastValue);
|
|
112687
|
+
}
|
|
112688
|
+
|
|
112689
|
+
if (IFrameSplitOperator.IsNumber(max)) cellItem.Max=max;
|
|
112690
|
+
if (IFrameSplitOperator.IsNumber(min)) cellItem.Min=min;
|
|
112691
|
+
|
|
112692
|
+
return cellItem;
|
|
112693
|
+
}
|
|
112694
|
+
|
|
112695
|
+
this.DRAWRADAR=function(args)
|
|
112696
|
+
{
|
|
112697
|
+
var radius=args[0];
|
|
112698
|
+
var color=args[1];
|
|
112699
|
+
|
|
112700
|
+
var aryIndex=[];
|
|
112701
|
+
var aryData=[];
|
|
112702
|
+
for(var i=2;i<args.length;++i)
|
|
112703
|
+
{
|
|
112704
|
+
var item=args[i];
|
|
112705
|
+
|
|
112706
|
+
aryIndex.push({ Name:item.Name, Max:item.Max, Min:item.Min });
|
|
112707
|
+
aryData.push({ Value:item.Value, Name:item.Name, Group:"Default"});
|
|
112708
|
+
}
|
|
112709
|
+
|
|
112710
|
+
return result={ DrawData:{ Data:aryData, AryIndex:aryIndex, Radius:radius, AryArea:[{ LineColor:color }] }, DrawType:"DRAW_SIMPLE_RADAR" };
|
|
112711
|
+
}
|
|
112363
112712
|
}
|
|
112364
112713
|
|
|
112365
112714
|
|
|
@@ -112414,7 +112763,7 @@ JSDraw.prototype.IsDrawFunction=function(name)
|
|
|
112414
112763
|
'DRAWOVERLAYLINE',"FILLRGN", "FILLRGN2","FILLTOPRGN", "FILLBOTTOMRGN", "FILLVERTICALRGN","FLOATRGN","DRAWSL", "DRAWGBK2","DRAWGBK_DIV",
|
|
112415
112764
|
"VERTLINE","HORLINE","TIPICON",
|
|
112416
112765
|
"BUY","SELL","SELLSHORT","BUYSHORT",
|
|
112417
|
-
"DRAWLASTBARICON","DRAWLASTBARNUMBER", "DRAWLASTBARTEXT","DRAWTABLE","DRAWPIE",
|
|
112766
|
+
"DRAWLASTBARICON","DRAWLASTBARNUMBER", "DRAWLASTBARTEXT","DRAWTABLE","DRAWPIE","DRAWRADAR",
|
|
112418
112767
|
]);
|
|
112419
112768
|
if (setFunctionName.has(name)) return true;
|
|
112420
112769
|
|
|
@@ -119303,6 +119652,14 @@ function JSExecute(ast,option)
|
|
|
119303
119652
|
node.Draw=this.Draw.DRAWPIE(args);
|
|
119304
119653
|
node.Out=[];
|
|
119305
119654
|
break;
|
|
119655
|
+
//雷达图
|
|
119656
|
+
case "RADAR_CELL":
|
|
119657
|
+
node.Out=this.Draw.RADAR_CELL(args[0],args[1],args[2],args[3]);
|
|
119658
|
+
break;
|
|
119659
|
+
case "DRAWRADAR":
|
|
119660
|
+
node.Draw=this.Draw.DRAWRADAR(args);
|
|
119661
|
+
node.Out=[];
|
|
119662
|
+
break;
|
|
119306
119663
|
|
|
119307
119664
|
default:
|
|
119308
119665
|
node.Out=this.Algorithm.CallFunction(funcName, args, node, this.SymbolData);
|
|
@@ -122319,6 +122676,35 @@ function ScriptIndex(name,script,args,option)
|
|
|
122319
122676
|
hqChart.ChartPaint.push(chart);
|
|
122320
122677
|
}
|
|
122321
122678
|
|
|
122679
|
+
this.CreateSimpleRadar=function(hqChart,windowIndex,varItem,id)
|
|
122680
|
+
{
|
|
122681
|
+
var chart=new ChartSimpleRadar();
|
|
122682
|
+
chart.Canvas=hqChart.Canvas;
|
|
122683
|
+
chart.Name=varItem.Name;
|
|
122684
|
+
chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;
|
|
122685
|
+
chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;
|
|
122686
|
+
|
|
122687
|
+
if (varItem.Draw && varItem.Draw.DrawData)
|
|
122688
|
+
{
|
|
122689
|
+
var drawData=varItem.Draw.DrawData;
|
|
122690
|
+
if (drawData.Data) chart.Data.Data=drawData.Data;
|
|
122691
|
+
if (drawData.AryIndex) chart.AryIndex=drawData.AryIndex;
|
|
122692
|
+
if (IFrameSplitOperator.IsPlusNumber(drawData.Radius)) chart.Radius=drawData.Radius;
|
|
122693
|
+
if (drawData.BorderColor) chart.BorderColor=drawData.BorderColor;
|
|
122694
|
+
|
|
122695
|
+
if (drawData.TextFont) chart.TextFontConfig=drawData.TextFont;
|
|
122696
|
+
if (drawData.TextColor) chart.TextColor=drawData.TextColor;
|
|
122697
|
+
if (drawData.BorderColor) chart.BorderColor=drawData.BorderColor;
|
|
122698
|
+
if (IFrameSplitOperator.IsNumber(drawData.XOffset)) chart.Offset.X=drawData.XOffset;
|
|
122699
|
+
if (IFrameSplitOperator.IsNumber(drawData.YOffset)) chart.Offset.Y=drawData.YOffset;
|
|
122700
|
+
if (IFrameSplitOperator.IsNonEmptyArray(drawData.AryArea)) chart.AryAreaConfig=drawData.AryArea;
|
|
122701
|
+
|
|
122702
|
+
chart.BuildCacheData();
|
|
122703
|
+
}
|
|
122704
|
+
|
|
122705
|
+
hqChart.ChartPaint.push(chart);
|
|
122706
|
+
}
|
|
122707
|
+
|
|
122322
122708
|
this.CreateTradeIcon=function(hqChart,windowIndex,varItem,id)
|
|
122323
122709
|
{
|
|
122324
122710
|
var chart=new ChartTradeIcon();
|
|
@@ -123194,6 +123580,10 @@ function ScriptIndex(name,script,args,option)
|
|
|
123194
123580
|
break;
|
|
123195
123581
|
case "DRAW_SIMPLE_PIE":
|
|
123196
123582
|
this.CreateSimplePie(hqChart,windowIndex,item,i);
|
|
123583
|
+
break;
|
|
123584
|
+
case "DRAW_SIMPLE_RADAR":
|
|
123585
|
+
this.CreateSimpleRadar(hqChart,windowIndex,item,i);
|
|
123586
|
+
break;
|
|
123197
123587
|
case "BUY":
|
|
123198
123588
|
case "SELL":
|
|
123199
123589
|
case "SELLSHORT":
|
|
@@ -123546,7 +123936,10 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
123546
123936
|
break;
|
|
123547
123937
|
case "DRAW_SIMPLE_PIE":
|
|
123548
123938
|
this.CreateSimplePie(hqChart,windowIndex,item,i);
|
|
123549
|
-
|
|
123939
|
+
break;
|
|
123940
|
+
case "DRAW_SIMPLE_RADAR":
|
|
123941
|
+
this.CreateSimpleRadar(hqChart,windowIndex,item,i);
|
|
123942
|
+
break;
|
|
123550
123943
|
case "KLINE_BG":
|
|
123551
123944
|
this.CreateBackgroud(hqChart,windowIndex,item,i);
|
|
123552
123945
|
break;
|
|
@@ -124614,6 +125007,39 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
124614
125007
|
frame.ChartPaint.push(chart);
|
|
124615
125008
|
}
|
|
124616
125009
|
|
|
125010
|
+
this.CreateSimpleRadar=function(hqChart,windowIndex,varItem,id)
|
|
125011
|
+
{
|
|
125012
|
+
var overlayIndex=this.OverlayIndex;
|
|
125013
|
+
var frame=overlayIndex.Frame;
|
|
125014
|
+
var chart=new ChartSimpleRadar();
|
|
125015
|
+
chart.Canvas=hqChart.Canvas;
|
|
125016
|
+
chart.Name=varItem.Name;
|
|
125017
|
+
chart.ChartBorder=frame.Frame.ChartBorder;
|
|
125018
|
+
chart.ChartFrame=frame.Frame;
|
|
125019
|
+
chart.Identify=overlayIndex.Identify;
|
|
125020
|
+
chart.HQChart=hqChart;
|
|
125021
|
+
|
|
125022
|
+
if (varItem.Draw && varItem.Draw.DrawData)
|
|
125023
|
+
{
|
|
125024
|
+
var drawData=varItem.Draw.DrawData;
|
|
125025
|
+
if (drawData.Data) chart.Data.Data=drawData.Data;
|
|
125026
|
+
if (drawData.AryIndex) chart.AryIndex=drawData.AryIndex;
|
|
125027
|
+
if (IFrameSplitOperator.IsPlusNumber(drawData.Radius)) chart.Radius=drawData.Radius;
|
|
125028
|
+
if (drawData.BorderColor) chart.BorderColor=drawData.BorderColor;
|
|
125029
|
+
|
|
125030
|
+
if (drawData.TextFont) chart.TextFontConfig=drawData.TextFont;
|
|
125031
|
+
if (drawData.TextColor) chart.TextColor=drawData.TextColor;
|
|
125032
|
+
if (drawData.BorderColor) chart.BorderColor=drawData.BorderColor;
|
|
125033
|
+
if (IFrameSplitOperator.IsNumber(drawData.XOffset)) chart.Offset.X=drawData.XOffset;
|
|
125034
|
+
if (IFrameSplitOperator.IsNumber(drawData.YOffset)) chart.Offset.Y=drawData.YOffset;
|
|
125035
|
+
if (IFrameSplitOperator.IsNonEmptyArray(drawData.AryArea)) chart.AryAreaConfig=drawData.AryArea;
|
|
125036
|
+
|
|
125037
|
+
chart.BuildCacheData();
|
|
125038
|
+
}
|
|
125039
|
+
|
|
125040
|
+
frame.ChartPaint.push(chart);
|
|
125041
|
+
}
|
|
125042
|
+
|
|
124617
125043
|
this.CreateChartVericaltLine=function(hqChart,windowIndex,varItem,id)
|
|
124618
125044
|
{
|
|
124619
125045
|
var overlayIndex=this.OverlayIndex;
|
|
@@ -125827,6 +126253,17 @@ function APIScriptIndex(name,script,args,option, isOverlay)
|
|
|
125827
126253
|
outVarItem.Draw=drawItem;
|
|
125828
126254
|
result.push(outVarItem);
|
|
125829
126255
|
}
|
|
126256
|
+
else if (draw.DrawType=="DRAW_SIMPLE_RADAR")
|
|
126257
|
+
{
|
|
126258
|
+
drawItem.Name=draw.Name;
|
|
126259
|
+
drawItem.Type=draw.Type;
|
|
126260
|
+
|
|
126261
|
+
drawItem.DrawType=draw.DrawType;
|
|
126262
|
+
drawItem.DrawData=draw.DrawData; //{ AryIndex:[ ], Data:[] };
|
|
126263
|
+
|
|
126264
|
+
outVarItem.Draw=drawItem;
|
|
126265
|
+
result.push(outVarItem);
|
|
126266
|
+
}
|
|
125830
126267
|
else
|
|
125831
126268
|
{
|
|
125832
126269
|
var find=g_ScriptIndexChartFactory.Get(draw.DrawType); //外部挂接
|
|
@@ -127443,6 +127880,20 @@ function GetBlackStyle()
|
|
|
127443
127880
|
BorderColor:"rgb(220,220,220)",
|
|
127444
127881
|
},
|
|
127445
127882
|
|
|
127883
|
+
ChartSimpleRadar:
|
|
127884
|
+
{
|
|
127885
|
+
//TextFont:{ Family:'微软雅黑' , Size:12 },
|
|
127886
|
+
BorderColor:"rgb(230, 230, 230)",
|
|
127887
|
+
//Offset:{ X:-5, Y:5 },
|
|
127888
|
+
TextColor:"rgb(250, 250, 250)",
|
|
127889
|
+
AryBGColor:['rgba(63,61,82,0.9)','rgba(56,55,80,0.9)'],
|
|
127890
|
+
AryArea:
|
|
127891
|
+
[
|
|
127892
|
+
{ Color:"rgba(242,154,118,0.4)", LineColor:"rgb(242,154,118)"},
|
|
127893
|
+
{ Color:"rgba(121,197,228,0.4)", LineColor:"rgb(92,165,196)"},
|
|
127894
|
+
],
|
|
127895
|
+
},
|
|
127896
|
+
|
|
127446
127897
|
ChartDrawVolProfile:
|
|
127447
127898
|
{
|
|
127448
127899
|
BGColor:"rgba(244,250,254,0.3)",
|
|
@@ -151582,7 +152033,7 @@ function HQChartScriptWorker()
|
|
|
151582
152033
|
|
|
151583
152034
|
|
|
151584
152035
|
|
|
151585
|
-
var HQCHART_VERSION="1.1.
|
|
152036
|
+
var HQCHART_VERSION="1.1.14329";
|
|
151586
152037
|
|
|
151587
152038
|
function PrintHQChartVersion()
|
|
151588
152039
|
{
|