hqchart 1.1.12540 → 1.1.12549
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 +35 -21
- package/package.json +1 -1
- package/src/jscommon/umychart.complier.js +2 -1
- package/src/jscommon/umychart.js +306 -6
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +309 -8
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +309 -8
- package/src/jscommon/umychart.wechat/umychart.index.data.wechat.js +1 -1
- package/src/jscommon/umychart.wechat/umychart.version.wechat.js +1 -1
- package/src/jscommon/umychart.wechat/umychart.wechat.3.0.js +13 -1
package/src/jscommon/umychart.js
CHANGED
|
@@ -931,6 +931,9 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
931
931
|
|
|
932
932
|
if (item.TopSpace>=0) chart.Frame.SubFrame[i].Frame.ChartBorder.TopSpace=item.TopSpace;
|
|
933
933
|
if (item.BottomSpace>=0) chart.Frame.SubFrame[i].Frame.ChartBorder.BottomSpace=item.BottomSpace;
|
|
934
|
+
|
|
935
|
+
//是否显示关闭集合竞价按钮
|
|
936
|
+
if (IFrameSplitOperator.IsNumber(item.CloseBeforeButton)) chart.Frame.SubFrame[i].Frame.IsShowCloseButton=item.CloseBeforeButton;
|
|
934
937
|
}
|
|
935
938
|
|
|
936
939
|
chart.UpdateXShowText();
|
|
@@ -20507,6 +20510,14 @@ ChartData.IsSecondPeriod=function(period)
|
|
|
20507
20510
|
return false;
|
|
20508
20511
|
}
|
|
20509
20512
|
|
|
20513
|
+
var CUSTOM_MILLISECOND_PERIOD_START=40000, CUSTOM_MILLISECOND_PERIOD_END=60000;
|
|
20514
|
+
ChartData.IsMilliSecondPeriod=function(period)
|
|
20515
|
+
{
|
|
20516
|
+
if (period>CUSTOM_MILLISECOND_PERIOD_START && period<=CUSTOM_MILLISECOND_PERIOD_END) return true;
|
|
20517
|
+
return false;
|
|
20518
|
+
}
|
|
20519
|
+
|
|
20520
|
+
|
|
20510
20521
|
|
|
20511
20522
|
//是否是分笔图 10=分笔
|
|
20512
20523
|
ChartData.IsTickPeriod=function(period)
|
|
@@ -46947,6 +46958,11 @@ function HQDateStringFormat()
|
|
|
46947
46958
|
var time = IFrameSplitOperator.FormatTimeString(currentData.Time,'HH:MM:SS');
|
|
46948
46959
|
this.Text = this.Text + " " + time;
|
|
46949
46960
|
}
|
|
46961
|
+
else if (ChartData.IsMilliSecondPeriod(this.Data.Period))
|
|
46962
|
+
{
|
|
46963
|
+
var time = IFrameSplitOperator.FormatTimeString(currentData.Time,'HH:MM:SS.fff');
|
|
46964
|
+
this.Text = this.Text + " " + time;
|
|
46965
|
+
}
|
|
46950
46966
|
else if (ChartData.IsTickPeriod(this.Data.Period)) //分笔
|
|
46951
46967
|
{
|
|
46952
46968
|
var time = IFrameSplitOperator.FormatTimeString(currentData.Time);
|
|
@@ -48049,6 +48065,11 @@ function DynamicKLineTitlePainting()
|
|
|
48049
48065
|
var text=IFrameSplitOperator.FormatTimeString(item.Time, "HH:MM:SS");
|
|
48050
48066
|
aryText.push({ Text:text, Color:this.DateTimeColor });
|
|
48051
48067
|
}
|
|
48068
|
+
else if (ChartData.IsMilliSecondPeriod(self.Period) && IFrameSplitOperator.IsNumber(item.Time))
|
|
48069
|
+
{
|
|
48070
|
+
var text=IFrameSplitOperator.FormatTimeString(item.Time, "HH:MM:SS.fff");
|
|
48071
|
+
aryText.push({ Text:text, Color:this.DateTimeColor });
|
|
48072
|
+
}
|
|
48052
48073
|
else if (isTickPeriod)
|
|
48053
48074
|
{
|
|
48054
48075
|
var text=IFrameSplitOperator.FormatTimeString(item.Time, "HH:MM:SS");
|
|
@@ -51324,6 +51345,32 @@ function IChartDrawPicture()
|
|
|
51324
51345
|
this.Canvas.restore();
|
|
51325
51346
|
}
|
|
51326
51347
|
|
|
51348
|
+
this.DrawArrow=function(ptStart,ptEnd)
|
|
51349
|
+
{
|
|
51350
|
+
//计算箭头
|
|
51351
|
+
var theta=35; //三角斜边一直线夹角
|
|
51352
|
+
var headlen=10; //三角斜边长度
|
|
51353
|
+
var angle = Math.atan2(ptStart.Y - ptEnd.Y, ptStart.X - ptEnd.X) * 180 / Math.PI,
|
|
51354
|
+
angle1 = (angle + theta) * Math.PI / 180,
|
|
51355
|
+
angle2 = (angle - theta) * Math.PI / 180,
|
|
51356
|
+
topX = headlen * Math.cos(angle1),
|
|
51357
|
+
topY = headlen * Math.sin(angle1),
|
|
51358
|
+
botX = headlen * Math.cos(angle2),
|
|
51359
|
+
botY = headlen * Math.sin(angle2);
|
|
51360
|
+
|
|
51361
|
+
this.Canvas.beginPath();
|
|
51362
|
+
var arrowX = ptEnd.X + topX;
|
|
51363
|
+
var arrowY = ptEnd.Y + topY;
|
|
51364
|
+
this.Canvas.moveTo(arrowX,arrowY);
|
|
51365
|
+
|
|
51366
|
+
this.Canvas.lineTo(ptEnd.X, ptEnd.Y);
|
|
51367
|
+
|
|
51368
|
+
arrowX = ptEnd.X + botX;
|
|
51369
|
+
arrowY = ptEnd.Y + botY;
|
|
51370
|
+
this.Canvas.lineTo(arrowX,arrowY);
|
|
51371
|
+
this.Canvas.stroke();
|
|
51372
|
+
}
|
|
51373
|
+
|
|
51327
51374
|
//计算2个点线的,左右的延长线的点
|
|
51328
51375
|
this.CalculateExtendLinePoint=function(ptStart,ptEnd)
|
|
51329
51376
|
{
|
|
@@ -52038,7 +52085,9 @@ IChartDrawPicture.ArrayDrawPricture=
|
|
|
52038
52085
|
{ Name:"PriceNote", ClassName:"ChartDrawPriceNote", Create:function() { return new ChartDrawPriceNote();} },
|
|
52039
52086
|
{ Name:"FibWedge", ClassName:"ChartDrawFibWedge", Create:function(){ return new ChartDrawFibWedge(); }},
|
|
52040
52087
|
{ Name:"FibRetracement", ClassName:"ChartFibRetracement", Create:function() { return new ChartFibRetracement(); }}, //斐波那契回测
|
|
52041
|
-
{ Name:"FibSpeedResistanceFan", ClassName:"ChartFibSpeedResistanceFan", Create:function() { return new ChartFibSpeedResistanceFan(); }} //斐波那契扇形
|
|
52088
|
+
{ Name:"FibSpeedResistanceFan", ClassName:"ChartFibSpeedResistanceFan", Create:function() { return new ChartFibSpeedResistanceFan(); }}, //斐波那契扇形
|
|
52089
|
+
{ Name:"PriceRange", ClassName:"ChartPriceRange", Create:function() { return new ChartPriceRange(); }},
|
|
52090
|
+
{ Name:"DateRange", ClassName:"ChartDateRange", Create:function() { return new ChartDateRange(); }}
|
|
52042
52091
|
];
|
|
52043
52092
|
|
|
52044
52093
|
IChartDrawPicture.MapIonFont=new Map(
|
|
@@ -60047,6 +60096,239 @@ function ChartFibSpeedResistanceFan()
|
|
|
60047
60096
|
|
|
60048
60097
|
}
|
|
60049
60098
|
|
|
60099
|
+
|
|
60100
|
+
function ChartPriceRange()
|
|
60101
|
+
{
|
|
60102
|
+
this.newMethod=IChartDrawPicture; //派生
|
|
60103
|
+
this.newMethod();
|
|
60104
|
+
delete this.newMethod;
|
|
60105
|
+
|
|
60106
|
+
this.ClassName='ChartPriceRange';
|
|
60107
|
+
this.PointCount=2;
|
|
60108
|
+
this.Font=12*GetDevicePixelRatio() +"px 微软雅黑";
|
|
60109
|
+
this.TextColor=this.LineColor;
|
|
60110
|
+
this.IsPointIn=this.IsPointIn_XYValue_Line;
|
|
60111
|
+
this.GetXYCoordinate=this.GetXYCoordinate_default;
|
|
60112
|
+
this.PointToValue_Default=this.PointToValue;
|
|
60113
|
+
this.OnlyMoveXIndex=true;
|
|
60114
|
+
this.IsSupportMagnet=true;
|
|
60115
|
+
this.LineWidth=1;
|
|
60116
|
+
this.EnableBGColor=true;
|
|
60117
|
+
this.BGColor=IChartDrawPicture.ColorToRGBA(this.LineColor,0.15);
|
|
60118
|
+
this.ExtendLine={ Left:false, Right: false }; //延长线
|
|
60119
|
+
|
|
60120
|
+
this.Label={ TextColor:"rgb(0,0,0)", BGColor:"rgb(211,211,211)", EnableBGColor:true, LeftMargin:5, RightMargin:5 };
|
|
60121
|
+
|
|
60122
|
+
this.Draw=function()
|
|
60123
|
+
{
|
|
60124
|
+
this.LinePoint=[];
|
|
60125
|
+
if (this.IsFrameMinSize()) return;
|
|
60126
|
+
var bCheckXY=true;
|
|
60127
|
+
if (this.ExtendLine.Left || this.ExtendLine.Right) bCheckXY=false;
|
|
60128
|
+
var drawPoint=this.CalculateDrawPoint( {IsCheckX:bCheckXY, IsCheckY:bCheckXY} );
|
|
60129
|
+
if (!drawPoint) return;
|
|
60130
|
+
if (drawPoint.length!=2) return;
|
|
60131
|
+
|
|
60132
|
+
this.ClipFrame();
|
|
60133
|
+
|
|
60134
|
+
var ptStart=drawPoint[0];
|
|
60135
|
+
var ptEnd=drawPoint[1];
|
|
60136
|
+
|
|
60137
|
+
this.SetLineWidth();
|
|
60138
|
+
this.DrawRange(ptStart,ptEnd);
|
|
60139
|
+
this.RestoreLineWidth();
|
|
60140
|
+
|
|
60141
|
+
this.DrawPoint(drawPoint); //画点
|
|
60142
|
+
this.Canvas.restore();
|
|
60143
|
+
}
|
|
60144
|
+
|
|
60145
|
+
this.DrawRange=function(ptStart, ptEnd)
|
|
60146
|
+
{
|
|
60147
|
+
var yTop=Math.min(ptStart.Y, ptEnd.Y);
|
|
60148
|
+
var yBottom=Math.max(ptStart.Y, ptEnd.Y);
|
|
60149
|
+
var xLeft=Math.min(ptStart.X, ptEnd.X);
|
|
60150
|
+
var xRight=Math.max(ptStart.X, ptEnd.X);
|
|
60151
|
+
var height=yBottom-yTop;
|
|
60152
|
+
var xCenter=ptStart.X+(ptEnd.X-ptStart.X)/2;
|
|
60153
|
+
|
|
60154
|
+
if (this.ExtendLine.Right) xRight=this.Frame.ChartBorder.GetRight();
|
|
60155
|
+
if (this.ExtendLine.Left) xLeft=this.Frame.ChartBorder.GetLeft();
|
|
60156
|
+
|
|
60157
|
+
if (this.EnableBGColor)
|
|
60158
|
+
{
|
|
60159
|
+
var rtBG={ Left:xLeft, Top:yTop, Right:xRight, Bottom:yBottom };
|
|
60160
|
+
rtBG.Width=rtBG.Right-rtBG.Left;
|
|
60161
|
+
rtBG.Height=rtBG.Bottom-rtBG.Top;
|
|
60162
|
+
this.Canvas.fillStyle=this.BGColor;
|
|
60163
|
+
this.Canvas.fillRect(rtBG.Left, rtBG.Top, rtBG.Width, rtBG.Height);
|
|
60164
|
+
}
|
|
60165
|
+
|
|
60166
|
+
|
|
60167
|
+
this.Canvas.strokeStyle=this.LineColor;
|
|
60168
|
+
this.Canvas.beginPath();
|
|
60169
|
+
this.Canvas.moveTo(xLeft,ToFixedPoint(yTop));
|
|
60170
|
+
this.Canvas.lineTo(xRight,ToFixedPoint(yTop));
|
|
60171
|
+
|
|
60172
|
+
this.Canvas.moveTo(xLeft,ToFixedPoint(yBottom));
|
|
60173
|
+
this.Canvas.lineTo(xRight,ToFixedPoint(yBottom));
|
|
60174
|
+
|
|
60175
|
+
this.Canvas.moveTo(ToFixedPoint(xCenter),ToFixedPoint(yTop));
|
|
60176
|
+
this.Canvas.lineTo(ToFixedPoint(xCenter),ToFixedPoint(yBottom));
|
|
60177
|
+
this.Canvas.stroke();
|
|
60178
|
+
|
|
60179
|
+
this.LinePoint.push({ Start:{X:xLeft, Y:yTop}, End:{X:xRight, Y:yTop} });
|
|
60180
|
+
this.LinePoint.push({ Start:{X:xLeft, Y:yBottom}, End:{X:xRight, Y:yBottom} });
|
|
60181
|
+
this.LinePoint.push({ Start:{X:xCenter, Y:yTop}, End:{X:xCenter, Y:yBottom} });
|
|
60182
|
+
|
|
60183
|
+
this.DrawArrow({X:ToFixedPoint(xCenter), Y:ptStart.Y}, {X:ToFixedPoint(xCenter), Y:ptEnd.Y});
|
|
60184
|
+
|
|
60185
|
+
//文字输出
|
|
60186
|
+
var startValue=this.Frame.GetYData(ptStart.Y,false);
|
|
60187
|
+
var endValue=this.Frame.GetYData(ptEnd.Y,false);
|
|
60188
|
+
var diffValue=endValue-startValue;
|
|
60189
|
+
var rate=(diffValue/startValue)*100;
|
|
60190
|
+
var text=`${diffValue.toFixed(2)} (${rate.toFixed(2)}%)`;
|
|
60191
|
+
|
|
60192
|
+
this.Canvas.font=this.Font;
|
|
60193
|
+
var textHeight=this.GetFontHeight();
|
|
60194
|
+
var textWidth=this.Canvas.measureText(text).width+4+(this.Label.LeftMargin+this.Label.RightMargin);
|
|
60195
|
+
var rtTextBG={ Left:xCenter-textWidth/2, Width:textWidth, Height:textHeight+2 };
|
|
60196
|
+
if (diffValue>0) rtTextBG.Top=ptEnd.Y-rtTextBG.Height-4;
|
|
60197
|
+
else rtTextBG.Top=ptEnd.Y+4;
|
|
60198
|
+
rtTextBG.Bottom=rtTextBG.Top+rtTextBG.Height;
|
|
60199
|
+
|
|
60200
|
+
if (this.Label.EnableBGColor)
|
|
60201
|
+
{
|
|
60202
|
+
var path=new Path2D();
|
|
60203
|
+
path.roundRect(ToFixedPoint(rtTextBG.Left), ToFixedPoint(rtTextBG.Top), ToFixedRect(rtTextBG.Width), ToFixedRect(rtTextBG.Height), [3]);
|
|
60204
|
+
this.Canvas.fillStyle=this.Label.BGColor;
|
|
60205
|
+
this.Canvas.fill(path);
|
|
60206
|
+
}
|
|
60207
|
+
|
|
60208
|
+
this.Canvas.fillStyle=this.Label.TextColor;
|
|
60209
|
+
this.Canvas.textAlign="left";
|
|
60210
|
+
this.Canvas.textBaseline="bottom";
|
|
60211
|
+
this.Canvas.fillText(text,rtTextBG.Left+2+this.Label.LeftMargin,rtTextBG.Bottom-2);
|
|
60212
|
+
}
|
|
60213
|
+
|
|
60214
|
+
}
|
|
60215
|
+
|
|
60216
|
+
|
|
60217
|
+
function ChartDateRange()
|
|
60218
|
+
{
|
|
60219
|
+
this.newMethod=IChartDrawPicture; //派生
|
|
60220
|
+
this.newMethod();
|
|
60221
|
+
delete this.newMethod;
|
|
60222
|
+
|
|
60223
|
+
this.ClassName='ChartDateRange';
|
|
60224
|
+
this.PointCount=2;
|
|
60225
|
+
this.Font=12*GetDevicePixelRatio() +"px 微软雅黑";
|
|
60226
|
+
this.TextColor=this.LineColor;
|
|
60227
|
+
this.IsPointIn=this.IsPointIn_XYValue_Line;
|
|
60228
|
+
this.GetXYCoordinate=this.GetXYCoordinate_default;
|
|
60229
|
+
this.PointToValue_Default=this.PointToValue;
|
|
60230
|
+
this.OnlyMoveXIndex=true;
|
|
60231
|
+
this.IsSupportMagnet=true;
|
|
60232
|
+
this.LineWidth=1;
|
|
60233
|
+
this.EnableBGColor=true;
|
|
60234
|
+
this.BGColor=IChartDrawPicture.ColorToRGBA(this.LineColor,0.15);
|
|
60235
|
+
this.ExtendLine={ Top:false, Bottom: false }; //延长线
|
|
60236
|
+
|
|
60237
|
+
this.Label={ TextColor:"rgb(0,0,0)", BGColor:"rgb(211,211,211)", EnableBGColor:true, LeftMargin:5, RightMargin:5 };
|
|
60238
|
+
|
|
60239
|
+
this.Draw=function()
|
|
60240
|
+
{
|
|
60241
|
+
this.LinePoint=[];
|
|
60242
|
+
if (this.IsFrameMinSize()) return;
|
|
60243
|
+
var bCheckXY=true;
|
|
60244
|
+
var drawPoint=this.CalculateDrawPoint( {IsCheckX:bCheckXY, IsCheckY:bCheckXY} );
|
|
60245
|
+
if (!drawPoint) return;
|
|
60246
|
+
if (drawPoint.length!=2) return;
|
|
60247
|
+
|
|
60248
|
+
this.ClipFrame();
|
|
60249
|
+
|
|
60250
|
+
var ptStart=drawPoint[0];
|
|
60251
|
+
var ptEnd=drawPoint[1];
|
|
60252
|
+
|
|
60253
|
+
this.SetLineWidth();
|
|
60254
|
+
this.DrawRange(ptStart,ptEnd);
|
|
60255
|
+
this.RestoreLineWidth();
|
|
60256
|
+
|
|
60257
|
+
this.DrawPoint(drawPoint); //画点
|
|
60258
|
+
this.Canvas.restore();
|
|
60259
|
+
}
|
|
60260
|
+
|
|
60261
|
+
this.DrawRange=function(ptStart, ptEnd)
|
|
60262
|
+
{
|
|
60263
|
+
var yTop=Math.min(ptStart.Y, ptEnd.Y);
|
|
60264
|
+
var yBottom=Math.max(ptStart.Y, ptEnd.Y);
|
|
60265
|
+
var xLeft=Math.min(ptStart.X, ptEnd.X);
|
|
60266
|
+
var xRight=Math.max(ptStart.X, ptEnd.X);
|
|
60267
|
+
var height=yBottom-yTop;
|
|
60268
|
+
var width=xRight-xLeft;
|
|
60269
|
+
var yCenter=ptStart.Y+(ptEnd.Y-ptStart.Y)/2;
|
|
60270
|
+
var xCenter=ptStart.X+(ptEnd.X-ptStart.X)/2;
|
|
60271
|
+
|
|
60272
|
+
if (this.ExtendLine.Top) yTop=this.Frame.ChartBorder.GetTopEx();
|
|
60273
|
+
if (this.ExtendLine.Bottom) yBottom=this.Frame.ChartBorder.GetBottomEx();
|
|
60274
|
+
|
|
60275
|
+
if (this.EnableBGColor)
|
|
60276
|
+
{
|
|
60277
|
+
var rtBG={ Left:xLeft, Top:yTop, Right:xRight, Bottom:yBottom };
|
|
60278
|
+
rtBG.Width=rtBG.Right-rtBG.Left;
|
|
60279
|
+
rtBG.Height=rtBG.Bottom-rtBG.Top;
|
|
60280
|
+
this.Canvas.fillStyle=this.BGColor;
|
|
60281
|
+
this.Canvas.fillRect(rtBG.Left, rtBG.Top, rtBG.Width, rtBG.Height);
|
|
60282
|
+
}
|
|
60283
|
+
|
|
60284
|
+
this.Canvas.strokeStyle=this.LineColor;
|
|
60285
|
+
this.Canvas.beginPath();
|
|
60286
|
+
this.Canvas.moveTo(ToFixedPoint(xLeft),yTop);
|
|
60287
|
+
this.Canvas.lineTo(ToFixedPoint(xLeft),yBottom);
|
|
60288
|
+
|
|
60289
|
+
this.Canvas.moveTo(ToFixedPoint(xRight),yTop);
|
|
60290
|
+
this.Canvas.lineTo(ToFixedPoint(xRight),yBottom);
|
|
60291
|
+
|
|
60292
|
+
this.Canvas.moveTo(ToFixedPoint(xLeft),ToFixedPoint(yCenter));
|
|
60293
|
+
this.Canvas.lineTo(ToFixedPoint(xRight),ToFixedPoint(yCenter));
|
|
60294
|
+
this.Canvas.stroke();
|
|
60295
|
+
|
|
60296
|
+
this.LinePoint.push({ Start:{X:xLeft, Y:yTop}, End:{X:xLeft, Y:yBottom} });
|
|
60297
|
+
this.LinePoint.push({ Start:{X:xRight, Y:yTop}, End:{X:xRight, Y:yBottom} });
|
|
60298
|
+
this.LinePoint.push({ Start:{X:xLeft, Y:yCenter}, End:{X:xRight, Y:yCenter} });
|
|
60299
|
+
|
|
60300
|
+
this.DrawArrow({X:ptStart.X, Y:ToFixedPoint(yCenter)}, {X:ptEnd.X, Y:ToFixedPoint(yCenter)});
|
|
60301
|
+
|
|
60302
|
+
|
|
60303
|
+
//文字输出
|
|
60304
|
+
var startIndex=this.Frame.GetXData(ptStart.X,false);
|
|
60305
|
+
var endIndex=this.Frame.GetXData(ptEnd.X,false);
|
|
60306
|
+
var barCount=endIndex-startIndex+1;
|
|
60307
|
+
var text=`${barCount} bars`;
|
|
60308
|
+
|
|
60309
|
+
this.Canvas.font=this.Font;
|
|
60310
|
+
var textHeight=this.GetFontHeight();
|
|
60311
|
+
var textWidth=this.Canvas.measureText(text).width+4+(this.Label.LeftMargin+this.Label.RightMargin);
|
|
60312
|
+
var rtTextBG={ Left:xCenter-textWidth/2, Top:ptEnd.Y+4, Width:textWidth, Height:textHeight+2 };
|
|
60313
|
+
rtTextBG.Bottom=rtTextBG.Top+rtTextBG.Height;
|
|
60314
|
+
|
|
60315
|
+
if (this.Label.EnableBGColor)
|
|
60316
|
+
{
|
|
60317
|
+
var path=new Path2D();
|
|
60318
|
+
path.roundRect(ToFixedPoint(rtTextBG.Left), ToFixedPoint(rtTextBG.Top), ToFixedRect(rtTextBG.Width), ToFixedRect(rtTextBG.Height), [3]);
|
|
60319
|
+
this.Canvas.fillStyle=this.Label.BGColor;
|
|
60320
|
+
this.Canvas.fill(path);
|
|
60321
|
+
}
|
|
60322
|
+
|
|
60323
|
+
this.Canvas.fillStyle=this.Label.TextColor;
|
|
60324
|
+
this.Canvas.textAlign="left";
|
|
60325
|
+
this.Canvas.textBaseline="bottom";
|
|
60326
|
+
this.Canvas.fillText(text,rtTextBG.Left+2+this.Label.LeftMargin,rtTextBG.Bottom-2);
|
|
60327
|
+
|
|
60328
|
+
}
|
|
60329
|
+
}
|
|
60330
|
+
|
|
60331
|
+
|
|
60050
60332
|
function ChartDrawStorage()
|
|
60051
60333
|
{
|
|
60052
60334
|
this.DrawData=new Map(); //画图工具数据 key=symbol-Period, value=Map() Key:Guid, Value:{Guid, Symbol, Period, ClassName, Value}
|
|
@@ -65462,6 +65744,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
65462
65744
|
if (ChartData.IsDayPeriod(self.Period,true)) self.RecvRealtimeData(data);
|
|
65463
65745
|
else if (ChartData.IsMinutePeriod(self.Period,true)) self.RecvMinuteRealtimeData(data);
|
|
65464
65746
|
else if (ChartData.IsSecondPeriod(self.Period)) self.RecvMinuteRealtimeData(data);
|
|
65747
|
+
else if (ChartData.IsMilliSecondPeriod(self.Period)) self.RecvMinuteRealtimeData(data);
|
|
65465
65748
|
}
|
|
65466
65749
|
}
|
|
65467
65750
|
event.Callback(event,data,this);
|
|
@@ -66966,10 +67249,12 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
66966
67249
|
if (this.SourceData.DataType!=0) isDataTypeChange=true;
|
|
66967
67250
|
}
|
|
66968
67251
|
else if ((period>CUSTOM_MINUTE_PERIOD_START && period<=CUSTOM_MINUTE_PERIOD_END) ||
|
|
66969
|
-
(period>CUSTOM_SECOND_PERIOD_START && period<=CUSTOM_SECOND_PERIOD_END)
|
|
67252
|
+
(period>CUSTOM_SECOND_PERIOD_START && period<=CUSTOM_SECOND_PERIOD_END) ||
|
|
67253
|
+
(period>CUSTOM_MILLISECOND_PERIOD_START && period<=CUSTOM_MILLISECOND_PERIOD_END) )
|
|
66970
67254
|
{
|
|
66971
67255
|
if (this.SourceData.DataType!=1) isDataTypeChange=true;
|
|
66972
67256
|
else if (ChartData.IsSecondPeriod(period)) isDataTypeChange=true;
|
|
67257
|
+
else if (ChartData.IsMilliSecondPeriod(period)) isDataTypeChange=true;
|
|
66973
67258
|
}
|
|
66974
67259
|
else
|
|
66975
67260
|
{
|
|
@@ -67046,7 +67331,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
67046
67331
|
this.RequestHistoryData(); //请求日线数据
|
|
67047
67332
|
//this.ReqeustKLineInfoData();
|
|
67048
67333
|
}
|
|
67049
|
-
else if (ChartData.IsMinutePeriod(this.Period,true) || ChartData.IsSecondPeriod(this.Period))
|
|
67334
|
+
else if (ChartData.IsMinutePeriod(this.Period,true) || ChartData.IsSecondPeriod(this.Period) || ChartData.IsMilliSecondPeriod(this.Period))
|
|
67050
67335
|
{
|
|
67051
67336
|
this.CancelAutoUpdate(); //先停止定时器
|
|
67052
67337
|
this.AutoUpdateEvent(false,'KLineChartContainer::ChangePeriod'); //切换周期先停止更新
|
|
@@ -67095,7 +67380,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
67095
67380
|
this.ResetScrollBar();
|
|
67096
67381
|
this.RequestHistoryData(); //请求日线数据
|
|
67097
67382
|
}
|
|
67098
|
-
else if (ChartData.IsMinutePeriod(this.Period,true) || ChartData.IsSecondPeriod(this.Period))
|
|
67383
|
+
else if (ChartData.IsMinutePeriod(this.Period,true) || ChartData.IsSecondPeriod(this.Period) || ChartData.IsMilliSecondPeriod(this.Period))
|
|
67099
67384
|
{
|
|
67100
67385
|
this.CancelAutoUpdate(); //先停止定时器
|
|
67101
67386
|
this.AutoUpdateEvent(false,'KLineChartContainer::ChangeRight'); //切换复权先停止更新
|
|
@@ -67581,7 +67866,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
67581
67866
|
this.ResetOverlaySymbolStatus();
|
|
67582
67867
|
this.RequestHistoryData(); //请求日线数据
|
|
67583
67868
|
}
|
|
67584
|
-
else if (ChartData.IsMinutePeriod(this.Period,true) || ChartData.IsSecondPeriod(this.Period))
|
|
67869
|
+
else if (ChartData.IsMinutePeriod(this.Period,true) || ChartData.IsSecondPeriod(this.Period) || ChartData.IsMilliSecondPeriod(this.Period))
|
|
67585
67870
|
{
|
|
67586
67871
|
this.ResetOverlaySymbolStatus();
|
|
67587
67872
|
this.ReqeustHistoryMinuteData(); //请求分钟数据
|
|
@@ -68428,7 +68713,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
68428
68713
|
this.RequestHistoryData(); //请求日线数据
|
|
68429
68714
|
//this.ReqeustKLineInfoData();
|
|
68430
68715
|
}
|
|
68431
|
-
else if (ChartData.IsMinutePeriod(this.Period,true) || ChartData.IsSecondPeriod(this.Period))
|
|
68716
|
+
else if (ChartData.IsMinutePeriod(this.Period,true) || ChartData.IsSecondPeriod(this.Period) || ChartData.IsMilliSecondPeriod(this.Period))
|
|
68432
68717
|
{
|
|
68433
68718
|
this.ReqeustHistoryMinuteData(); //请求分钟数据
|
|
68434
68719
|
}
|
|
@@ -71085,6 +71370,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
71085
71370
|
|
|
71086
71371
|
this.DayOffset={ Offset:0, ShowDayCount:-1, DataOffset:0, DayCount:1, }; //Offset 日期偏移 , DataOffset数据偏移
|
|
71087
71372
|
this.PageInfo={ Enable:false, Offset:-8888, ShowDayCount:4 }; //分页配置
|
|
71373
|
+
this.DataStatus={ MultiDay:false, LatestDay:false }; //MultiDay=多日 LatestDay:当天
|
|
71088
71374
|
|
|
71089
71375
|
this.ZoomStepPixel=50;
|
|
71090
71376
|
|
|
@@ -73452,6 +73738,12 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
73452
73738
|
this.DayOffset.PageInfo=null;
|
|
73453
73739
|
}
|
|
73454
73740
|
|
|
73741
|
+
this.ResetDataStatus=function()
|
|
73742
|
+
{
|
|
73743
|
+
this.DataStatus.MultiDay=false;
|
|
73744
|
+
this.DataStatus.LatestDay=false;
|
|
73745
|
+
}
|
|
73746
|
+
|
|
73455
73747
|
//切换股票代码
|
|
73456
73748
|
this.ChangeSymbol=function(symbol,option)
|
|
73457
73749
|
{
|
|
@@ -73460,6 +73752,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
73460
73752
|
this.AutoUpdateEvent(false, "MinuteChartContainer::ChangeSymbol");
|
|
73461
73753
|
this.Symbol=symbol;
|
|
73462
73754
|
this.ResetDayOffset();
|
|
73755
|
+
this.ResetDataStatus();
|
|
73463
73756
|
this.ClearIndexPaint(); //清空指标
|
|
73464
73757
|
this.ResetOverlaySymbolStatus();
|
|
73465
73758
|
this.ReloadChartDrawPicture();
|
|
@@ -73561,6 +73854,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
73561
73854
|
{
|
|
73562
73855
|
this.ReloadChartDrawPicture();
|
|
73563
73856
|
}
|
|
73857
|
+
|
|
73858
|
+
this.ResetDataStatus();
|
|
73564
73859
|
this.ClearIndexPaint(); //清空指标
|
|
73565
73860
|
this.ResetOverlaySymbolStatus();
|
|
73566
73861
|
this.RequestData();
|
|
@@ -73841,6 +74136,9 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
73841
74136
|
this.MultiDayBeforeOpenData=MinuteChartContainer.JosnDataToBeforeOpenDataArray(data);
|
|
73842
74137
|
this.MultiDayAfterCloseData=MinuteChartContainer.JosnDataToAfterCloseDataArray(data);
|
|
73843
74138
|
var updateTime=MinuteChartContainer.JsonDataToHistoryMinuteLastUpdateTime(data);
|
|
74139
|
+
|
|
74140
|
+
this.DataStatus.MultiDay=true;
|
|
74141
|
+
|
|
73844
74142
|
this.CaclutateCallCationYRange();
|
|
73845
74143
|
this.Symbol=data.symbol;
|
|
73846
74144
|
this.Name=data.name;
|
|
@@ -74418,6 +74716,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
74418
74716
|
|
|
74419
74717
|
if (this.IsBeforeData) this.BeforeOpenData=beforeOpenData;
|
|
74420
74718
|
if (this.IsAfterData) this.AfterCloseData=afterCloseData;
|
|
74719
|
+
|
|
74720
|
+
this.DataStatus.LatestDay=true;
|
|
74421
74721
|
|
|
74422
74722
|
if (this.DayCount>1) //多日走势图
|
|
74423
74723
|
{
|