hqchart 1.1.13059 → 1.1.13065
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.NetworkFilterTest.vue.js +2 -2
- package/lib/umychart.vue.js +34 -13
- package/package.json +1 -1
- package/src/jscommon/umychart.NetworkFilterTest.js +37 -0
- package/src/jscommon/umychart.js +436 -4
- package/src/jscommon/umychart.style.js +6 -0
- package/src/jscommon/umychart.testdata.js +37 -0
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +443 -5
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.NetworkFilterTest.vue.js +37 -0
- package/src/jscommon/umychart.vue/umychart.vue.js +443 -5
package/src/jscommon/umychart.js
CHANGED
|
@@ -2799,7 +2799,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
2799
2799
|
{
|
|
2800
2800
|
IsValueFullRange:false ,
|
|
2801
2801
|
IsDisplayLatest:false,
|
|
2802
|
-
SelectedBorder:{ Mode:0, SelFrame:0 }
|
|
2802
|
+
SelectedBorder:{ Mode:0, SelFrame:0 }, //边框选中模式 Mode:0=禁用 1=右侧标记选中 2=指标窗口标记选中
|
|
2803
|
+
SelectedXBorder: { Mode:0, Date:null } //X边框选中模式 Mode:0=禁用 分时图图有效
|
|
2803
2804
|
//XDateFormat (多日分时图x轴底部日期格式)
|
|
2804
2805
|
};
|
|
2805
2806
|
|
|
@@ -3252,6 +3253,20 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
3252
3253
|
}
|
|
3253
3254
|
}
|
|
3254
3255
|
|
|
3256
|
+
if (this.GlobalOption.SelectedXBorder && this.GlobalOption.SelectedXBorder.Mode>=1)
|
|
3257
|
+
{
|
|
3258
|
+
if (this.PtInMulitDayMinute)
|
|
3259
|
+
{
|
|
3260
|
+
var item=this.GlobalOption.SelectedXBorder;
|
|
3261
|
+
var selectedDate=this.PtInMulitDayMinute(x,y);
|
|
3262
|
+
if (item.Date!=selectedDate)
|
|
3263
|
+
{
|
|
3264
|
+
item.Date=selectedDate
|
|
3265
|
+
bDrawDynamicInfo=true;
|
|
3266
|
+
}
|
|
3267
|
+
}
|
|
3268
|
+
}
|
|
3269
|
+
|
|
3255
3270
|
if (this.TryClickCrossCursor(x,y, e))
|
|
3256
3271
|
{
|
|
3257
3272
|
return;
|
|
@@ -5056,6 +5071,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
5056
5071
|
this.DrawSelectedStatus();
|
|
5057
5072
|
|
|
5058
5073
|
this.DrawSelectedBorder();
|
|
5074
|
+
if (this.DrawSelectedXBorder) this.DrawSelectedXBorder();
|
|
5059
5075
|
|
|
5060
5076
|
var moveonPoint=null;
|
|
5061
5077
|
if (this.LastMouseStatus && this.LastMouseStatus.MoveOnPoint) moveonPoint=this.LastMouseStatus.MoveOnPoint;
|
|
@@ -5260,7 +5276,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
5260
5276
|
var item=this.ExtendChartPaint[i];
|
|
5261
5277
|
if (item.IsCallbackDraw)
|
|
5262
5278
|
{
|
|
5263
|
-
if (["KLineYAxisBGPaint","DepthMapPaint","BackgroundPaint","MinuteBackgroundPaint"].includes(item.ClassName))
|
|
5279
|
+
if (["KLineYAxisBGPaint","DepthMapPaint","BackgroundPaint","MinuteBackgroundPaint", "SessionBreaksPaint"].includes(item.ClassName))
|
|
5264
5280
|
{
|
|
5265
5281
|
if (item.FrameID==frame.Identify) item.Draw();
|
|
5266
5282
|
}
|
|
@@ -5482,6 +5498,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
5482
5498
|
|
|
5483
5499
|
this.DrawSelectedStatus();
|
|
5484
5500
|
this.DrawSelectedBorder();
|
|
5501
|
+
if (this.DrawSelectedXBorder) this.DrawSelectedXBorder();
|
|
5485
5502
|
|
|
5486
5503
|
var moveonPoint=null;
|
|
5487
5504
|
if (this.LastMouseStatus && this.LastMouseStatus.MoveOnPoint) moveonPoint=this.LastMouseStatus.MoveOnPoint;
|
|
@@ -38968,7 +38985,8 @@ function ExtendChartPaintFactory()
|
|
|
38968
38985
|
[
|
|
38969
38986
|
["FrameSplitPaint", { Create:function() { return new FrameSplitPaint(); } }],
|
|
38970
38987
|
["RectSelectPaint", { Create:function() { return new RectSelectPaint(); } }],
|
|
38971
|
-
["DragMovePaint", { Create:function() { return new DragMovePaint(); } }]
|
|
38988
|
+
["DragMovePaint", { Create:function() { return new DragMovePaint(); } }],
|
|
38989
|
+
["SessionBreaksPaint", { Create:function() { return new SessionBreaksPaint(); }}]
|
|
38972
38990
|
]
|
|
38973
38991
|
);
|
|
38974
38992
|
|
|
@@ -43226,6 +43244,266 @@ function DragMovePaint()
|
|
|
43226
43244
|
}
|
|
43227
43245
|
|
|
43228
43246
|
|
|
43247
|
+
function SessionBreaksPaint()
|
|
43248
|
+
{
|
|
43249
|
+
this.newMethod=IExtendChartPainting; //派生
|
|
43250
|
+
this.newMethod();
|
|
43251
|
+
delete this.newMethod;
|
|
43252
|
+
|
|
43253
|
+
this.ClassName='SessionBreaksPaint';
|
|
43254
|
+
this.IsDynamic=false;
|
|
43255
|
+
this.IsCallbackDraw=true; //在回调函数里绘制, 不在Draw()中绘制
|
|
43256
|
+
this.FrameID=0;
|
|
43257
|
+
this.KDataFeature; //数据特征 { Symbol, Period, DataCount }
|
|
43258
|
+
this.Data;
|
|
43259
|
+
this.ChartFrame;
|
|
43260
|
+
|
|
43261
|
+
this.BGColor=g_JSChartResource.SessionBreaksPaint.BGColor.slice();
|
|
43262
|
+
this.SplitLine=
|
|
43263
|
+
{
|
|
43264
|
+
Color:g_JSChartResource.SessionBreaksPaint.SplitLine.Color,
|
|
43265
|
+
Width:g_JSChartResource.SessionBreaksPaint.SplitLine.Width,
|
|
43266
|
+
Dash:g_JSChartResource.SessionBreaksPaint.SplitLine.Dash
|
|
43267
|
+
};
|
|
43268
|
+
|
|
43269
|
+
this.MapPeriod=new Map(
|
|
43270
|
+
[
|
|
43271
|
+
[0, { SplitType:1 }], //日
|
|
43272
|
+
[1, { SplitType:1 }], //周
|
|
43273
|
+
[2, { SplitType:2 }], //月
|
|
43274
|
+
[21, { SplitType:2 }], //双周
|
|
43275
|
+
|
|
43276
|
+
[4, { SplitType:3 }], //1分钟
|
|
43277
|
+
[5, { SplitType:3 }], //5分钟
|
|
43278
|
+
[6, { SplitType:3 }], //15分钟
|
|
43279
|
+
[7, { SplitType:3 }],
|
|
43280
|
+
[8, { SplitType:3 }],
|
|
43281
|
+
]); //周期和分割对应关系
|
|
43282
|
+
|
|
43283
|
+
this.SetOption=function(option) //设置
|
|
43284
|
+
{
|
|
43285
|
+
if (option.FrameID>0) this.FrameID=option.FrameID;
|
|
43286
|
+
}
|
|
43287
|
+
|
|
43288
|
+
this.Draw=function()
|
|
43289
|
+
{
|
|
43290
|
+
if (!this.HQChart) return;
|
|
43291
|
+
var hisData=this.HQChart.ChartOperator_Temp_GetHistroyData();;
|
|
43292
|
+
if (!hisData) return; //数据还没有到达
|
|
43293
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(hisData.Data)) return;
|
|
43294
|
+
|
|
43295
|
+
if (this.IsKDataChange(hisData))
|
|
43296
|
+
{
|
|
43297
|
+
this.BuildCacheData(hisData);
|
|
43298
|
+
}
|
|
43299
|
+
|
|
43300
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.Data)) return;
|
|
43301
|
+
|
|
43302
|
+
var mainFrame=this.HQChart.Frame.SubFrame[0].Frame;
|
|
43303
|
+
var bHScreen=(this.ChartFrame.IsHScreen===true);
|
|
43304
|
+
var dataWidth=mainFrame.DataWidth;
|
|
43305
|
+
var distanceWidth=mainFrame.DistanceWidth;
|
|
43306
|
+
var xPointCount=mainFrame.XPointCount;
|
|
43307
|
+
|
|
43308
|
+
if (bHScreen)
|
|
43309
|
+
{
|
|
43310
|
+
var border=this.ChartBorder.GetHScreenBorder();
|
|
43311
|
+
var chartright=border.BottomEx;
|
|
43312
|
+
var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
|
|
43313
|
+
}
|
|
43314
|
+
else
|
|
43315
|
+
{
|
|
43316
|
+
var border=this.ChartBorder.GetBorder();
|
|
43317
|
+
var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
|
|
43318
|
+
var chartright=border.RightEx;
|
|
43319
|
+
}
|
|
43320
|
+
|
|
43321
|
+
var preID=null;
|
|
43322
|
+
var aryBG=[];
|
|
43323
|
+
var bgItem=null;
|
|
43324
|
+
for(var i=hisData.DataOffset,j=0;i<hisData.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
|
|
43325
|
+
{
|
|
43326
|
+
var item=this.Data[i];
|
|
43327
|
+
if (!item) continue;
|
|
43328
|
+
|
|
43329
|
+
var left=xOffset;
|
|
43330
|
+
var right=xOffset+dataWidth;
|
|
43331
|
+
if (right>chartright) break;
|
|
43332
|
+
var x=left+(right-left)/2;
|
|
43333
|
+
|
|
43334
|
+
var xStart=left-distanceWidth/2;
|
|
43335
|
+
var xEnd=right+distanceWidth/2;
|
|
43336
|
+
|
|
43337
|
+
var id=item.ID;
|
|
43338
|
+
if (!IFrameSplitOperator.IsNumber(id)) continue;
|
|
43339
|
+
|
|
43340
|
+
if (preID==null)
|
|
43341
|
+
{
|
|
43342
|
+
bgItem={ Start:{ X:xStart }, End:{ X:xEnd }, ColorIndex:id, Count:1, IsStart:false, IsEnd:false };
|
|
43343
|
+
preID=id;
|
|
43344
|
+
if (i-1>=0)
|
|
43345
|
+
{
|
|
43346
|
+
var preItem=this.Data[i-1];
|
|
43347
|
+
if (preItem && preItem.ID!=id) bgItem.IsStart=true;
|
|
43348
|
+
}
|
|
43349
|
+
}
|
|
43350
|
+
else if (preID!=id)
|
|
43351
|
+
{
|
|
43352
|
+
bgItem.End.X=xStart;
|
|
43353
|
+
bgItem.IsEnd=true;
|
|
43354
|
+
aryBG.push(bgItem);
|
|
43355
|
+
|
|
43356
|
+
bgItem={ Start:{ X:xStart }, End:{ X:xEnd }, ColorIndex:id, Count:1, IsStart:true, IsEnd:false };
|
|
43357
|
+
preID=id;
|
|
43358
|
+
}
|
|
43359
|
+
else
|
|
43360
|
+
{
|
|
43361
|
+
bgItem.End.X=xEnd;
|
|
43362
|
+
++bgItem.Count;
|
|
43363
|
+
}
|
|
43364
|
+
}
|
|
43365
|
+
|
|
43366
|
+
if (bgItem && bgItem.Count>=2) aryBG.push(bgItem);
|
|
43367
|
+
|
|
43368
|
+
this.Canvas.save();
|
|
43369
|
+
this.DrawBG(aryBG);
|
|
43370
|
+
this.Canvas.restore();
|
|
43371
|
+
}
|
|
43372
|
+
|
|
43373
|
+
this.DrawBG=function(aryBG)
|
|
43374
|
+
{
|
|
43375
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(aryBG)) return;
|
|
43376
|
+
|
|
43377
|
+
var bHScreen=(this.ChartFrame.IsHScreen===true);
|
|
43378
|
+
if (bHScreen)
|
|
43379
|
+
{
|
|
43380
|
+
var border=this.ChartBorder.GetHScreenBorder();
|
|
43381
|
+
var top=border.RightEx;
|
|
43382
|
+
var bottom=border.Left;
|
|
43383
|
+
var height=bottom-top;
|
|
43384
|
+
}
|
|
43385
|
+
else
|
|
43386
|
+
{
|
|
43387
|
+
var border=this.ChartBorder.GetBorder();
|
|
43388
|
+
var top=border.TopEx;
|
|
43389
|
+
var bottom=border.BottomEx;
|
|
43390
|
+
var height=bottom-top;
|
|
43391
|
+
}
|
|
43392
|
+
|
|
43393
|
+
|
|
43394
|
+
var bDrawSplitLine=false;
|
|
43395
|
+
if (this.SplitLine.Color) bDrawSplitLine=true;
|
|
43396
|
+
var lineCount=0;
|
|
43397
|
+
for(var i=0;i<aryBG.length;++i)
|
|
43398
|
+
{
|
|
43399
|
+
var item=aryBG[i];
|
|
43400
|
+
var xLeft=item.Start.X;
|
|
43401
|
+
var xRight=item.End.X;
|
|
43402
|
+
|
|
43403
|
+
var index=item.ColorIndex%this.BGColor.length;
|
|
43404
|
+
var bgColor=this.BGColor[index];
|
|
43405
|
+
if (bgColor)
|
|
43406
|
+
{
|
|
43407
|
+
this.Canvas.fillStyle=bgColor;
|
|
43408
|
+
if (bHScreen)
|
|
43409
|
+
this.Canvas.fillRect(ToFixedPoint(top),ToFixedPoint(xLeft),ToFixedRect(height),ToFixedRect(xRight-xLeft));
|
|
43410
|
+
else
|
|
43411
|
+
this.Canvas.fillRect(ToFixedPoint(xLeft),ToFixedPoint(top),ToFixedRect(xRight-xLeft),ToFixedRect(height));
|
|
43412
|
+
}
|
|
43413
|
+
|
|
43414
|
+
if (bDrawSplitLine && item.IsStart)
|
|
43415
|
+
{
|
|
43416
|
+
if (lineCount==0) this.Canvas.beginPath();
|
|
43417
|
+
if (bHScreen)
|
|
43418
|
+
{
|
|
43419
|
+
this.Canvas.moveTo(top, ToFixedPoint(xLeft));
|
|
43420
|
+
this.Canvas.lineTo(bottom, ToFixedPoint(xLeft));
|
|
43421
|
+
}
|
|
43422
|
+
else
|
|
43423
|
+
{
|
|
43424
|
+
this.Canvas.moveTo(ToFixedPoint(xLeft), top);
|
|
43425
|
+
this.Canvas.lineTo(ToFixedPoint(xLeft), bottom);
|
|
43426
|
+
}
|
|
43427
|
+
|
|
43428
|
+
++lineCount;
|
|
43429
|
+
}
|
|
43430
|
+
}
|
|
43431
|
+
|
|
43432
|
+
if (bDrawSplitLine && lineCount>=1)
|
|
43433
|
+
{
|
|
43434
|
+
if (this.SplitLine.Width>=1) this.Canvas.linewidth=this.SplitLine.Width;
|
|
43435
|
+
if (this.SplitLine.Dash) this.Canvas.setLineDash(this.SplitLine.Dash);
|
|
43436
|
+
if (this.SplitLine.Color) this.Canvas.strokeStyle=this.SplitLine.Color;
|
|
43437
|
+
|
|
43438
|
+
this.Canvas.stroke();
|
|
43439
|
+
}
|
|
43440
|
+
}
|
|
43441
|
+
|
|
43442
|
+
this.IsKDataChange=function(hisData)
|
|
43443
|
+
{
|
|
43444
|
+
if (!this.KDataFeature) return true;
|
|
43445
|
+
|
|
43446
|
+
if (this.KDataFeature.Symbol!=this.HQChart.Symbol) return true;
|
|
43447
|
+
if (this.KDataFeature.Period!=this.HQChart.Period) return true;
|
|
43448
|
+
if (this.KDataFeature.DataCount!=hisData.Data.length) return true;
|
|
43449
|
+
|
|
43450
|
+
return false;
|
|
43451
|
+
}
|
|
43452
|
+
|
|
43453
|
+
this.BuildCacheData=function(hisData)
|
|
43454
|
+
{
|
|
43455
|
+
var period=this.HQChart.Period;
|
|
43456
|
+
if (!this.MapPeriod.has(period))
|
|
43457
|
+
{
|
|
43458
|
+
this.Data=[];
|
|
43459
|
+
this.KDataFeature={ Symbol:this.HQChart.Symbol, Period:period, DataCount:hisData.Data.length };
|
|
43460
|
+
return;
|
|
43461
|
+
}
|
|
43462
|
+
|
|
43463
|
+
var splitType=this.MapPeriod.get(period).SplitType; //1=month 2=year 3=day 4=1hour
|
|
43464
|
+
|
|
43465
|
+
var startDate=0;
|
|
43466
|
+
var index=-1;
|
|
43467
|
+
this.Data=[];
|
|
43468
|
+
for(var i=0;i<hisData.Data.length;++i)
|
|
43469
|
+
{
|
|
43470
|
+
var item=hisData.Data[i];
|
|
43471
|
+
switch(splitType)
|
|
43472
|
+
{
|
|
43473
|
+
case 1: //月
|
|
43474
|
+
if (parseInt(item.Date/100)!=parseInt(startDate/100))
|
|
43475
|
+
{
|
|
43476
|
+
startDate=item.Date;
|
|
43477
|
+
++index;
|
|
43478
|
+
}
|
|
43479
|
+
this.Data.push({ ID:index, Date:item.Date });
|
|
43480
|
+
break;
|
|
43481
|
+
case 2: //年
|
|
43482
|
+
if (parseInt(item.Date/10000)!=parseInt(startDate/10000))
|
|
43483
|
+
{
|
|
43484
|
+
startDate=item.Date;
|
|
43485
|
+
++index;
|
|
43486
|
+
}
|
|
43487
|
+
this.Data.push({ ID:index, Date:item.Date });
|
|
43488
|
+
break;
|
|
43489
|
+
case 3: //日
|
|
43490
|
+
if (item.Date!=startDate)
|
|
43491
|
+
{
|
|
43492
|
+
startDate=item.Date;
|
|
43493
|
+
++index;
|
|
43494
|
+
}
|
|
43495
|
+
this.Data.push({ ID:index, Date:item.Date });
|
|
43496
|
+
break;
|
|
43497
|
+
}
|
|
43498
|
+
|
|
43499
|
+
}
|
|
43500
|
+
|
|
43501
|
+
|
|
43502
|
+
this.KDataFeature={ Symbol:this.HQChart.Symbol, Period:period, DataCount:hisData.Data.length };
|
|
43503
|
+
}
|
|
43504
|
+
}
|
|
43505
|
+
|
|
43506
|
+
|
|
43229
43507
|
|
|
43230
43508
|
//弹幕数据 { X:X偏移, Y:Y偏移, Text:内容, Color:颜色 }
|
|
43231
43509
|
function BarrageList()
|
|
@@ -63471,6 +63749,12 @@ function JSChartResource()
|
|
|
63471
63749
|
Font:14*GetDevicePixelRatio() +"px 微软雅黑"
|
|
63472
63750
|
}
|
|
63473
63751
|
|
|
63752
|
+
this.SessionBreaksPaint=
|
|
63753
|
+
{
|
|
63754
|
+
BGColor:[null, "rgb(245,246,246)"],
|
|
63755
|
+
SplitLine:{ Color:'rgb(73,133,231)', Width:1*GetDevicePixelRatio(), Dash:[5*GetDevicePixelRatio(),5*GetDevicePixelRatio()] }
|
|
63756
|
+
}
|
|
63757
|
+
|
|
63474
63758
|
|
|
63475
63759
|
//成交明细
|
|
63476
63760
|
this.DealList=
|
|
@@ -64415,6 +64699,19 @@ function JSChartResource()
|
|
|
64415
64699
|
if (item.Font) this.DragMovePaint.Font=item.Font;
|
|
64416
64700
|
}
|
|
64417
64701
|
|
|
64702
|
+
if (style.SessionBreaksPaint)
|
|
64703
|
+
{
|
|
64704
|
+
var item=style.SessionBreaksPaint;
|
|
64705
|
+
if (IFrameSplitOperator.IsNonEmptyArray(item.BGColor)) this.SessionBreaksPaint.BGColor=item.BGColor.slice();
|
|
64706
|
+
if (item.SplitLine)
|
|
64707
|
+
{
|
|
64708
|
+
var subItem=item.SplitLine;
|
|
64709
|
+
if (subItem.Color) this.SessionBreaksPaint.SplitLine.Color=subItem.Color;
|
|
64710
|
+
if (IFrameSplitOperator.IsNumber(subItem.Width)) this.SessionBreaksPaint.SplitLine.Width=subItem.Width;
|
|
64711
|
+
this.SessionBreaksPaint.SplitLine.Dash=subItem.Dash;
|
|
64712
|
+
}
|
|
64713
|
+
}
|
|
64714
|
+
|
|
64418
64715
|
if (IFrameSplitOperator.IsNumber(style.ToolbarButtonStyle)) this.ToolbarButtonStyle=style.ToolbarButtonStyle;
|
|
64419
64716
|
|
|
64420
64717
|
if (style.Buttons)
|
|
@@ -72547,7 +72844,6 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
72547
72844
|
this.DataStatus={ MultiDay:false, LatestDay:false }; //MultiDay=多日 LatestDay:当天
|
|
72548
72845
|
|
|
72549
72846
|
this.ZoomStepPixel=50;
|
|
72550
|
-
|
|
72551
72847
|
|
|
72552
72848
|
//集合竞价设置 obj={ Left:true/false, Right:true/false, MultiDay:{Left:, Right:} }
|
|
72553
72849
|
this.SetCallCationDataBorder=function(obj)
|
|
@@ -77535,6 +77831,105 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
77535
77831
|
|
|
77536
77832
|
return false;
|
|
77537
77833
|
}
|
|
77834
|
+
|
|
77835
|
+
this.ClearSelectedXBorder=function()
|
|
77836
|
+
{
|
|
77837
|
+
if (!this.GlobalOption || !this.GlobalOption.SelectedXBorder) return;
|
|
77838
|
+
var item=this.GlobalOption.SelectedXBorder;
|
|
77839
|
+
item.Date=null;
|
|
77840
|
+
}
|
|
77841
|
+
|
|
77842
|
+
this.DrawSelectedXBorder=function()
|
|
77843
|
+
{
|
|
77844
|
+
if (this.DayCount<=1) return null;
|
|
77845
|
+
if (this.Frame.IsHScreen===true) return null;
|
|
77846
|
+
|
|
77847
|
+
if (!this.GlobalOption || !this.GlobalOption.SelectedXBorder) return;
|
|
77848
|
+
var item=this.GlobalOption.SelectedXBorder;
|
|
77849
|
+
if (!IFrameSplitOperator.IsPlusNumber(item.Mode)) return;
|
|
77850
|
+
if (!IFrameSplitOperator.IsPlusNumber(item.Date)) return;
|
|
77851
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.DayData)) return;
|
|
77852
|
+
|
|
77853
|
+
var rtSelected=null;
|
|
77854
|
+
var dayIndex=item.DayIndex;
|
|
77855
|
+
var border=this.Frame.ChartBorder.GetBorder();
|
|
77856
|
+
var rtClient={ Left:border.Left, Top:border.Top, Right:border.Right, Bottom: border.Bottom };
|
|
77857
|
+
rtClient.Width=rtClient.Right-rtClient.Left;
|
|
77858
|
+
var mainFrame=this.Frame.SubFrame[0].Frame; //主图框架
|
|
77859
|
+
var xPointCount=mainFrame.XPointCount;
|
|
77860
|
+
var minuteCount=mainFrame.MinuteCount;
|
|
77861
|
+
var lDayCount=xPointCount/minuteCount;
|
|
77862
|
+
var dayWidth=rtClient.Width/lDayCount;
|
|
77863
|
+
|
|
77864
|
+
if (border.DayBorder)
|
|
77865
|
+
{
|
|
77866
|
+
|
|
77867
|
+
}
|
|
77868
|
+
else
|
|
77869
|
+
{
|
|
77870
|
+
var dayIndex=-1;
|
|
77871
|
+
for(var i=0;i<this.DayData.length;++i)
|
|
77872
|
+
{
|
|
77873
|
+
var dayItem=this.DayData[i];
|
|
77874
|
+
if (dayItem.Date==item.Date)
|
|
77875
|
+
{
|
|
77876
|
+
dayIndex=this.DayData.length-1-i;
|
|
77877
|
+
break;
|
|
77878
|
+
}
|
|
77879
|
+
}
|
|
77880
|
+
|
|
77881
|
+
if (dayIndex<0) return;
|
|
77882
|
+
|
|
77883
|
+
rtSelected={ Left:border.Left+dayIndex*dayWidth, Width:dayWidth, Top:border.Bottom, Bottom:border.ChartHeight };
|
|
77884
|
+
rtSelected.Right=rtSelected.Left+rtSelected.Width;
|
|
77885
|
+
rtSelected.Height=rtSelected.Bottom-rtSelected.Top;
|
|
77886
|
+
}
|
|
77887
|
+
|
|
77888
|
+
|
|
77889
|
+
mainFrame.Canvas.strokeStyle=g_JSChartResource.SelFrameBorderColor;
|
|
77890
|
+
mainFrame.Canvas.strokeRect(ToFixedPoint(rtSelected.Left),ToFixedPoint(rtSelected.Top),ToFixedRect(rtSelected.Width),ToFixedRect(rtSelected.Height)-1);
|
|
77891
|
+
}
|
|
77892
|
+
|
|
77893
|
+
this.PtInMulitDayMinute=function(x,y)
|
|
77894
|
+
{
|
|
77895
|
+
if (this.DayCount<=1) return null;
|
|
77896
|
+
if (this.Frame.IsHScreen===true) return null;
|
|
77897
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.DayData)) return null;
|
|
77898
|
+
|
|
77899
|
+
var border=this.Frame.ChartBorder.GetBorder();
|
|
77900
|
+
var rtClient={ Left:border.Left, Top:border.Top, Right:border.Right, Bottom: border.Bottom };
|
|
77901
|
+
rtClient.Width=rtClient.Right-rtClient.Left;
|
|
77902
|
+
if (!(x>rtClient.Left && x<rtClient.Right && y>rtClient.Top && y<rtClient.Bottom)) return null; //不在窗口里面
|
|
77903
|
+
|
|
77904
|
+
if (border.DayBorder)
|
|
77905
|
+
{
|
|
77906
|
+
|
|
77907
|
+
}
|
|
77908
|
+
else
|
|
77909
|
+
{
|
|
77910
|
+
var mainFrame=this.Frame.SubFrame[0].Frame; //主图框架
|
|
77911
|
+
var xPointCount=mainFrame.XPointCount;
|
|
77912
|
+
var minuteCount=mainFrame.MinuteCount;
|
|
77913
|
+
var lDayCount=xPointCount/minuteCount;
|
|
77914
|
+
var dayWidth=rtClient.Width/lDayCount;
|
|
77915
|
+
var rtDay={ Left:rtClient.Left, Right:dayWidth+rtClient.Left };
|
|
77916
|
+
for(var i=0;i<lDayCount;++i)
|
|
77917
|
+
{
|
|
77918
|
+
if (x>=rtDay.Left && x<=rtDay.Right)
|
|
77919
|
+
{
|
|
77920
|
+
var dayItem=this.DayData[this.DayData.length-1-i];
|
|
77921
|
+
if (!dayItem) return null;
|
|
77922
|
+
|
|
77923
|
+
return dayItem.Date;
|
|
77924
|
+
}
|
|
77925
|
+
|
|
77926
|
+
rtDay.Left+=dayWidth;
|
|
77927
|
+
rtDay.Right+=dayWidth;
|
|
77928
|
+
}
|
|
77929
|
+
}
|
|
77930
|
+
|
|
77931
|
+
return null;
|
|
77932
|
+
}
|
|
77538
77933
|
}
|
|
77539
77934
|
|
|
77540
77935
|
//盘前数据
|
|
@@ -84703,6 +85098,39 @@ function KLineRightMenu(divElement)
|
|
|
84703
85098
|
return data;
|
|
84704
85099
|
}
|
|
84705
85100
|
|
|
85101
|
+
this.GetBGSplit=function(chart)
|
|
85102
|
+
{
|
|
85103
|
+
var data=
|
|
85104
|
+
[
|
|
85105
|
+
{
|
|
85106
|
+
text: "启用",
|
|
85107
|
+
click: function ()
|
|
85108
|
+
{
|
|
85109
|
+
chart.CreateExtendChart("SessionBreaksPaint", { });
|
|
85110
|
+
chart.Draw();
|
|
85111
|
+
}
|
|
85112
|
+
},
|
|
85113
|
+
{
|
|
85114
|
+
text: "关闭",
|
|
85115
|
+
click: function ()
|
|
85116
|
+
{
|
|
85117
|
+
var finder=chart.GetExtendChartByClassName("SessionBreaksPaint");
|
|
85118
|
+
if (finder)
|
|
85119
|
+
{
|
|
85120
|
+
chart.DeleteExtendChartByID(finder.Chart.ID);
|
|
85121
|
+
chart.Draw();
|
|
85122
|
+
}
|
|
85123
|
+
}
|
|
85124
|
+
},
|
|
85125
|
+
];
|
|
85126
|
+
|
|
85127
|
+
var finder=chart.GetExtendChartByClassName("SessionBreaksPaint");
|
|
85128
|
+
if (finder) data[0].selected=true;
|
|
85129
|
+
else data[1].selected=true;
|
|
85130
|
+
|
|
85131
|
+
return data;
|
|
85132
|
+
}
|
|
85133
|
+
|
|
84706
85134
|
|
|
84707
85135
|
this.GetKLineInfo=function(chart)
|
|
84708
85136
|
{
|
|
@@ -84809,6 +85237,10 @@ function KLineRightMenu(divElement)
|
|
|
84809
85237
|
{
|
|
84810
85238
|
text:"工具",
|
|
84811
85239
|
children:this.GetTools(chart)
|
|
85240
|
+
},
|
|
85241
|
+
{
|
|
85242
|
+
text:"背景分割",
|
|
85243
|
+
children:this.GetBGSplit(chart)
|
|
84812
85244
|
}
|
|
84813
85245
|
];
|
|
84814
85246
|
|
|
@@ -460,6 +460,12 @@ function GetBlackStyle()
|
|
|
460
460
|
TextColor:"rgb(255,255,255)",
|
|
461
461
|
//Font:14*GetDevicePixelRatio() +"px 微软雅黑"
|
|
462
462
|
},
|
|
463
|
+
|
|
464
|
+
SessionBreaksPaint:
|
|
465
|
+
{
|
|
466
|
+
BGColor:[null, "rgb(42,46,57)"],
|
|
467
|
+
SplitLine:{ Color:'rgb(73,133,231)', Width:1*GetDevicePixelRatio(), Dash:[5*GetDevicePixelRatio(),5*GetDevicePixelRatio()] }
|
|
468
|
+
},
|
|
463
469
|
|
|
464
470
|
//成交明细
|
|
465
471
|
DealList:
|
|
@@ -51,6 +51,10 @@ HQData.NetworkFilter=function(data, callback)
|
|
|
51
51
|
HQData.AnnouncementInfo_RequestData(data,callback);
|
|
52
52
|
break;
|
|
53
53
|
|
|
54
|
+
case "JSSymbolData::GetLatestData":
|
|
55
|
+
HQData.RequestLatestData(data,callback);
|
|
56
|
+
break;
|
|
57
|
+
|
|
54
58
|
|
|
55
59
|
|
|
56
60
|
|
|
@@ -282,3 +286,36 @@ HQData.TradeDetail_RequestData=function(data,callback)
|
|
|
282
286
|
|
|
283
287
|
callback(TEST_TRADE_DETAL_DATA);
|
|
284
288
|
}
|
|
289
|
+
|
|
290
|
+
HQData.RequestLatestData=function(data,callback)
|
|
291
|
+
{
|
|
292
|
+
data.PreventDefault=true;
|
|
293
|
+
var symbol=data.Request.Data.symbol[0];
|
|
294
|
+
var id=data.Args[0];
|
|
295
|
+
var value=1;
|
|
296
|
+
switch(id)
|
|
297
|
+
{
|
|
298
|
+
case 3:
|
|
299
|
+
value=KLINE_1DAY_DATA.stock[0].yclose;
|
|
300
|
+
break;
|
|
301
|
+
case 4:
|
|
302
|
+
value=KLINE_1DAY_DATA.stock[0].open;
|
|
303
|
+
break;
|
|
304
|
+
case 5:
|
|
305
|
+
value=KLINE_1DAY_DATA.stock[0].high;
|
|
306
|
+
break;
|
|
307
|
+
case 6:
|
|
308
|
+
value=KLINE_1DAY_DATA.stock[0].low;
|
|
309
|
+
break;
|
|
310
|
+
case 7:
|
|
311
|
+
value=KLINE_1DAY_DATA.stock[0].price;
|
|
312
|
+
break;
|
|
313
|
+
case 8:
|
|
314
|
+
value=KLINE_1DAY_DATA.stock[0].vol;
|
|
315
|
+
break;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
var hqchartData={ symbol:symbol, ver:2.0, data:[ {id:id, value:value }]};
|
|
319
|
+
|
|
320
|
+
callback(hqchartData);
|
|
321
|
+
}
|