hqchart 1.1.15000 → 1.1.15006

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.
@@ -13525,6 +13525,7 @@ function AverageWidthFrame()
13525
13525
  {
13526
13526
  var x=mouseOnToolbar.Point.X;
13527
13527
  var y=mouseOnToolbar.Point.Y+20;
13528
+ if (y+textHeight>border.ChartHeight) y=mouseOnToolbar.Point.Y-5-textHeight;
13528
13529
  }
13529
13530
  else if (JSCHART_BUTTON_ID.CLOSE_BEFOREOPEN_ID==mouseOnToolbar.Item.ID)
13530
13531
  {
@@ -13937,7 +13938,7 @@ function AverageWidthFrame()
13937
13938
  if (isDrawRight && this.IsDrawRightBorder && this.YRightTextInfo)
13938
13939
  {
13939
13940
  var xRight=this.YRightTextInfo.MainTextWidth+right;
13940
- xLine=ToFixedPoint(xRight);
13941
+ var xLine=ToFixedPoint(xRight);
13941
13942
  this.Canvas.strokeStyle=this.PenBorder;
13942
13943
  this.Canvas.beginPath();
13943
13944
  this.Canvas.moveTo(xLine,top);
@@ -48958,6 +48959,7 @@ function MinuteLeftTooltipPaint()
48958
48959
  {
48959
48960
  var item=drawData.Data.Data;
48960
48961
  if (!item) return;
48962
+ var version=drawData.Data.Ver;
48961
48963
 
48962
48964
  this.YClose=item.YClose;
48963
48965
  if (isFutures && IFrameSplitOperator.IsNumber(item.YClearing)) this.YClose=item.YClearing;
@@ -48965,7 +48967,7 @@ function MinuteLeftTooltipPaint()
48965
48967
  if (titleItem) aryText.push(titleItem);
48966
48968
 
48967
48969
  var timeForamt="HH:MM:SS";
48968
- if (item.Ver===1) timeForamt="HH:MM"
48970
+ if (version===1) timeForamt="HH:MM"
48969
48971
 
48970
48972
  var titleItem=this.ForamtTime(item.Time,timeForamt,'PCTooltip-Time');
48971
48973
  if (titleItem) aryText.push(titleItem);
@@ -91283,7 +91285,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
91283
91285
 
91284
91286
  ];
91285
91287
 
91286
- if (MARKET_SUFFIX_NAME.IsSHSZStockA(this.Symbol))
91288
+ if (MARKET_SUFFIX_NAME.IsEnableCallAuction(this.Symbol))
91287
91289
  {
91288
91290
  var item=
91289
91291
  {
@@ -93295,16 +93297,17 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
93295
93297
 
93296
93298
  // 盘前数据(A股)
93297
93299
  this.IsBeforeData=false;
93298
- if (this.IsShowBeforeData && this.DayCount===1 && MARKET_SUFFIX_NAME.IsSHSZStockA(self.Symbol))
93300
+ if (this.IsShowBeforeData && this.DayCount===1 && MARKET_SUFFIX_NAME.IsEnableCallAuction(self.Symbol))
93299
93301
  {
93300
93302
  this.IsBeforeData=true;
93301
93303
  fields.push('before');
93302
93304
  }
93303
93305
 
93304
93306
  this.IsAfterData=false;
93305
- if (this.IsShowAfterData && this.DayCount===1 && MARKET_SUFFIX_NAME.IsSHSZStockA(self.Symbol))
93307
+ if (this.IsShowAfterData && this.DayCount===1 && MARKET_SUFFIX_NAME.IsEnableCallAuction(self.Symbol))
93306
93308
  {
93307
93309
  this.IsAfterData=true;
93310
+ fields.push('after');
93308
93311
  }
93309
93312
 
93310
93313
  //5档买卖盘
@@ -101078,6 +101081,15 @@ var MARKET_SUFFIX_NAME=
101078
101081
  return true;
101079
101082
  },
101080
101083
 
101084
+ IsEnableCallAuction:function(symbol) //是否支持集合竞价
101085
+ {
101086
+ if (MARKET_SUFFIX_NAME.IsSHSZStockA(symbol)) return true; //A股
101087
+ if (MARKET_SUFFIX_NAME.IsBJStock(symbol)) return true; //北交所
101088
+ if (MARKET_SUFFIX_NAME.IsSHSZIndex(symbol)) return true; //指数
101089
+
101090
+ return false;
101091
+ },
101092
+
101081
101093
  //获取成交量单位
101082
101094
  GetVolUnit:function(upperSymbol)
101083
101095
  {
@@ -190,10 +190,18 @@ function JSReportChart(divElement)
190
190
  if (IFrameSplitOperator.IsBool(option.EnableDragRow)) chart.EnableDragRow=option.EnableDragRow;
191
191
  if (IFrameSplitOperator.IsNumber(option.DragRowType)) chart.DragRowType=option.DragRowType;
192
192
  if (IFrameSplitOperator.IsBool(option.EnableDragHeader)) chart.EnableDragHeader=option.EnableDragHeader;
193
- if (IFrameSplitOperator.IsNumber(option.WheelPageType)) chart.WheelPageType=option.WheelPageType;
193
+ if (IFrameSplitOperator.IsNumber(option.WheelPageType)) chart.WheelPageConfig.Type=option.WheelPageType;
194
194
  if (IFrameSplitOperator.IsBool(option.PageUpDownCycle)) chart.PageUpDownCycle=option.PageUpDownCycle;
195
195
  if (IFrameSplitOperator.IsBool(option.EnablePageUpdate)) chart.EnablePageUpdate=option.EnablePageUpdate;
196
196
 
197
+ if (option.WheelPage)
198
+ {
199
+ var item=option.WheelPage;
200
+ if (IFrameSplitOperator.IsNumber(item.Type)) chart.WheelPageConfig.Type=item.Type;
201
+ if (IFrameSplitOperator.IsPlusNumber(item.RowStep)) chart.WheelPageConfig.RowStep=item.RowStep;
202
+ if (IFrameSplitOperator.IsBool(item.EnableCtrlTurn)) chart.WheelPageConfig.EnableCtrlTurn=item.EnableCtrlTurn;
203
+ }
204
+
197
205
  //数据下载提示信息
198
206
  if (IFrameSplitOperator.IsObject(option.SplashTitle))
199
207
  {
@@ -484,7 +492,13 @@ function JSReportChartContainer(uielement)
484
492
 
485
493
  this.PageUpDownCycle=true; //翻页循环
486
494
  this.DragPageCycle=true; //手机翻页循环
487
- this.WheelPageType=0; //鼠标滚轴翻页模式 0=一页一页翻 1=一条一条翻
495
+ //this.WheelPageType=0; //鼠标滚轴翻页模式 0=一页一页翻 1=一条一条翻
496
+
497
+ //鼠标滚轴配置
498
+ // Type:0=一页一页翻 1=一条一条翻,
499
+ // RowStep:单条数据滚动步长
500
+ // EnableCtrlTurn Ctrl+滚轴翻页
501
+ this.WheelPageConfig={ Type:0, RowStep:1, EnableCtrlTurn:false }
488
502
 
489
503
  //拖拽滚动条
490
504
  this.DragXScroll=null; //{Start:{x,y}, End:{x, y}}
@@ -1999,14 +2013,17 @@ function JSReportChartContainer(uielement)
1999
2013
  if (!IFrameSplitOperator.IsObjectExist(e.wheelDelta))
2000
2014
  wheelValue=e.deltaY* -0.01;
2001
2015
 
2002
- if (this.WheelPageType==1)
2016
+ var type=this.WheelPageConfig.Type;
2017
+ if (this.WheelPageConfig.EnableCtrlTurn && e && e.ctrlKey) type=0; //ctrl 翻页
2018
+
2019
+ if (type)
2003
2020
  {
2004
- console.log(`[OnWheel] wheelValue=${wheelValue}`);
2021
+ var step=this.WheelPageConfig.RowStep;
2005
2022
  if (wheelValue<0) //下
2006
2023
  {
2007
2024
  this.LastMouseStatus.TooltipStatus=null;
2008
2025
  this.HideAllTooltip();
2009
- if (this.GotoNextItem(1))
2026
+ if (this.GotoNextItem(step))
2010
2027
  {
2011
2028
  this.Draw();
2012
2029
  this.DelayUpdateStockData();
@@ -2016,7 +2033,7 @@ function JSReportChartContainer(uielement)
2016
2033
  {
2017
2034
  this.LastMouseStatus.TooltipStatus=null;
2018
2035
  this.HideAllTooltip();
2019
- if (this.GotoNextItem(-1))
2036
+ if (this.GotoNextItem(step*-1))
2020
2037
  {
2021
2038
  this.Draw();
2022
2039
  this.DelayUpdateStockData();
@@ -282,35 +282,69 @@ HQData.Minute_RequestMinuteData=function(data, callback)
282
282
  }
283
283
  */
284
284
 
285
- var before=[];
286
- var beforeinfo={ totalcount:60*10, ver:2.0, TimeConfig:{ AryTime:[{ Start:91500, End:92459, Date:srcStock.date }]} }; //9:15-9:25 集合竞价15分钟 1s一个数据
287
- var price=srcStock.yclose+0.01;
285
+ if (symbol=="000001.sh") //指数
286
+ {
287
+ var before=[];
288
+ var beforeinfo={ totalcount:60*10, ver:3.0, TimeConfig:{ AryTime:[{ Start:91500, End:92459, Date:srcStock.date }]} }; //9:15-9:25 集合竞价15分钟 1s一个数据
289
+ var price=srcStock.yclose+0.01;
290
+ var vol=0;
288
291
 
289
- var date=new Date(2021,5,2, 9,15, 0);
290
- before=
291
- [
292
- [91505,price+0.01, 400, 300, 1, 800],
293
- [91550,price+0.02, 550, 600, 0, 1500],
294
- [91603,price+0.03, 300, 600, 1, 3600],
295
- [91613,price+0.03, 150, 320, 1, 3600],
296
- [91623,price+0.04, 200, 400, 1, 3600],
297
- [91635,price+0.05, 100, 100, 1, 3600],
298
- [91640,price+0.03, 350, 210, 2, 1600],
299
- [91711,price+0.02, 3210, 350, 2, 3700],
300
- [91731,price+0.04, 110, 450, 1, 3700],
301
- [91825,price-0.01, 210, 650, 2, 3700],
302
- [91855,price-0.02, 330, 440, 1, 1000],
303
- [91915,price-0.03, 630, 640, 1, 1200],
304
- [92022,price+0.01, 260, 550, 2, 1000],
305
- [92304,price-0.02, 300, 100, 2, 1000],
306
- [92314,price-0.03, 550, 150, 2, 1000],
307
- [92344,price-0.04, 550, 150, 1, 1000],
308
- [92357,price-0.05, 250, 750, 1, 1500],
309
- [92405,price-0.07, 450, 50, 2, 1000],
310
- [92435,price-0.08, 650, 250, 1, 1000],
311
- [92458,price-0.12, 350, 350, 2, 1000],
312
- ];
313
-
292
+ var date=new Date(2021,5,2, 9,15, 0);
293
+ var testData={ Up:1, Max:srcStock.yclose*1.02, Min:srcStock.yclose*0.98 };
294
+
295
+ for(var i=0;i<beforeinfo.totalcount; ++i) //3s一个数据
296
+ {
297
+ var time=date.getHours()*10000+date.getMinutes()*100+date.getSeconds();
298
+ vol=HQData.GetRandomTestData(100,500)*1000;
299
+ var item=[ time, price, price+0.04, vol, 3, vol*1.3 ];
300
+ before.push(item);
301
+
302
+ if (price>testData.Max && testData.Up===1)
303
+ testData.Up=0;
304
+ else if (price<testData.Min && testData.Up===0)
305
+ testData.Up=1;
306
+
307
+ var value=HQData.GetRandomTestData(1,10)/100;
308
+ if (testData.Up==1) price+=value;
309
+ else price-=value;
310
+
311
+ date.setSeconds(date.getSeconds()+3);
312
+ time=date.getHours()*10000+date.getMinutes()*100+date.getSeconds();
313
+ if (time>92500) break;
314
+ }
315
+
316
+ }
317
+ else //股票
318
+ {
319
+ var before=[];
320
+ var beforeinfo={ totalcount:60*10, ver:2.0, TimeConfig:{ AryTime:[{ Start:91500, End:92459, Date:srcStock.date }]} }; //9:15-9:25 集合竞价15分钟 1s一个数据
321
+ var price=srcStock.yclose+0.01;
322
+
323
+ var date=new Date(2021,5,2, 9,15, 0);
324
+ before=
325
+ [
326
+ [91505,price+0.01, 400, 300, 1, 800],
327
+ [91550,price+0.02, 550, 600, 0, 1500],
328
+ [91603,price+0.03, 300, 600, 1, 3600],
329
+ [91613,price+0.03, 150, 320, 1, 3600],
330
+ [91623,price+0.04, 200, 400, 1, 3600],
331
+ [91635,price+0.05, 100, 100, 1, 3600],
332
+ [91640,price+0.03, 350, 210, 2, 1600],
333
+ [91711,price+0.02, 3210, 350, 2, 3700],
334
+ [91731,price+0.04, 110, 450, 1, 3700],
335
+ [91825,price-0.01, 210, 650, 2, 3700],
336
+ [91855,price-0.02, 330, 440, 1, 1000],
337
+ [91915,price-0.03, 630, 640, 1, 1200],
338
+ [92022,price+0.01, 260, 550, 2, 1000],
339
+ [92304,price-0.02, 300, 100, 2, 1000],
340
+ [92314,price-0.03, 550, 150, 2, 1000],
341
+ [92344,price-0.04, 550, 150, 1, 1000],
342
+ [92357,price-0.05, 250, 750, 1, 1500],
343
+ [92405,price-0.07, 450, 50, 2, 1000],
344
+ [92435,price-0.08, 650, 250, 1, 1000],
345
+ [92458,price-0.12, 350, 350, 2, 1000],
346
+ ];
347
+ }
314
348
 
315
349
  stockItem.before=before;
316
350
  stockItem.beforeinfo=beforeinfo;
@@ -393,27 +427,51 @@ HQData.Minute_RequestMinuteData=function(data, callback)
393
427
  }
394
428
  */
395
429
 
396
- var afterData=[]
397
- var afterInfo={ ver:2.0, totalcount:60*3, TimeConfig:{ AryTime:[{ Start:145700, End:145959, Date:srcStock.date }]} } //14:57-15:00
398
- if (stockItem.minute.length>=240)
430
+ if (symbol=="000001.sh") //指数
399
431
  {
400
- afterData=
401
- [
402
- [145708,price+0.01, 400, 300, 1, 800],
403
- [145718,price+0.02, 550, 600, 0, 1500],
404
- [145738,price+0.02, 150, 800, 0, 1500],
405
- [145748,price+0.02, 150, 800, 0, 1500],
406
- [145803,price+0.03, 300, 600, 1, 3600],
407
- [145815,price+0.03, 350, 210, 2, 1600],
408
- [145826,price+0.02, 1210, 350, 2, 2700],
409
- [145833,price+0.01, 260, 550, 2, 1000],
410
- [145845,price+0.02, 160, 750, 2, 1000],
411
- [145858,price-0.01, 460, 650, 2, 1500],
412
- [145905,price-0.02, 160, 450, 1, 1500],
413
- [145928,price-0.02, 260, 250, 1, 1500],
414
- [145948,price-0.02, 860, 150, 1, 1500],
415
- ];
432
+ var afterData=[]
433
+ var afterInfo={ ver:3.0, totalcount:60*3, TimeConfig:{ AryTime:[{ Start:145700, End:145959, Date:srcStock.date }]} } //14:57-15:00
434
+ var date=new Date(2021,5,2, 14,57, 0);
435
+ var vol=0;
436
+ for(var i=0;i<afterInfo.totalcount; ++i) //1s一个数据
437
+ {
438
+ var time=date.getHours()*10000+date.getMinutes()*100+date.getSeconds();
439
+
440
+ vol=HQData.GetRandomTestData(100,500)*1000;
441
+ var item=[ time, price, price+0.04, vol, 3, vol*1.3 ];
442
+
443
+ afterData.push(item);
444
+
445
+ date.setSeconds(date.getSeconds()+3);
446
+ var time=date.getHours()*10000+date.getMinutes()*100+date.getSeconds();
447
+ if (time>145959) break;
448
+ }
449
+ }
450
+ else
451
+ {
452
+ var afterData=[]
453
+ var afterInfo={ ver:2.0, totalcount:60*3, TimeConfig:{ AryTime:[{ Start:145700, End:145959, Date:srcStock.date }]} } //14:57-15:00
454
+ if (stockItem.minute.length>=240)
455
+ {
456
+ afterData=
457
+ [
458
+ [145708,price+0.01, 400, 300, 1, 800],
459
+ [145718,price+0.02, 550, 600, 0, 1500],
460
+ [145738,price+0.02, 150, 800, 0, 1500],
461
+ [145748,price+0.02, 150, 800, 0, 1500],
462
+ [145803,price+0.03, 300, 600, 1, 3600],
463
+ [145815,price+0.03, 350, 210, 2, 1600],
464
+ [145826,price+0.02, 1210, 350, 2, 2700],
465
+ [145833,price+0.01, 260, 550, 2, 1000],
466
+ [145845,price+0.02, 160, 750, 2, 1000],
467
+ [145858,price-0.01, 460, 650, 2, 1500],
468
+ [145905,price-0.02, 160, 450, 1, 1500],
469
+ [145928,price-0.02, 260, 250, 1, 1500],
470
+ [145948,price-0.02, 860, 150, 1, 1500],
471
+ ];
472
+ }
416
473
  }
474
+
417
475
  stockItem.after=afterData;
418
476
  stockItem.afterinfo=afterInfo;
419
477
  }
@@ -467,16 +525,50 @@ HQData.Minute_RequestMinuteUpdateData=function(data, callback)
467
525
 
468
526
  if (callcation.Before)
469
527
  {
470
- var beforeinfo={ totalcount:60*10, ver:2.0, TimeConfig:{ AryTime:[{ Start:91500, End:92459, Date:srcStock.date }]} }; //9:15-9:25 集合竞价15分钟 1s一个数据
471
- var price=srcStock.yclose-0.01;
472
- var before=
473
- [
474
- [92344,price-0.03, 150, 150, 2, 1000],
475
- [92357,price-0.04, 250, 250, 2, 1500],
476
- [92405,price-0.05, 350, 350, 1, 1000],
477
- [92435,price-0.06, 450, 450, 1, 1000],
478
- [92458,price-0.07, 550, 550, 2, 1000],
479
- ];
528
+ if (symbol=="000001.sh") //指数
529
+ {
530
+ var before=[];
531
+ var beforeinfo={ totalcount:60*10, ver:3.0, TimeConfig:{ AryTime:[{ Start:91500, End:92459, Date:srcStock.date }]} }; //9:15-9:25 集合竞价15分钟 1s一个数据
532
+ var price=srcStock.yclose+0.01;
533
+ var vol=0;
534
+
535
+ var date=new Date(2021,5,2, 9,15, 0);
536
+ var testData={ Value:0.01, Up:1, Max:srcStock.yclose*1.02, Min:srcStock.yclose*0.98 };
537
+
538
+ for(var i=0;i<beforeinfo.totalcount; ++i) //3s一个数据
539
+ {
540
+ vol=HQData.GetRandomTestData(100,500)*1000;
541
+ var time=date.getHours()*10000+date.getMinutes()*100+date.getSeconds();
542
+ var item=[ time, price, price+0.04, vol, 3, vol*1.3 ];
543
+ before.push(item);
544
+
545
+ if (price>testData.Max && testData.Up===1)
546
+ testData.Up=0;
547
+ else if (price<testData.Min && testData.Up===0)
548
+ testData.Up=1;
549
+
550
+ var value=HQData.GetRandomTestData(1,10)/100;
551
+ if (testData.Up==1) price+=value;
552
+ else price-=value;
553
+
554
+ date.setSeconds(date.getSeconds()+3);
555
+ time=date.getHours()*10000+date.getMinutes()*100+date.getSeconds();
556
+ if (time>92500) break;
557
+ }
558
+ }
559
+ else
560
+ {
561
+ var beforeinfo={ totalcount:60*10, ver:2.0, TimeConfig:{ AryTime:[{ Start:91500, End:92459, Date:srcStock.date }]} }; //9:15-9:25 集合竞价15分钟 1s一个数据
562
+ var price=srcStock.yclose-0.01;
563
+ var before=
564
+ [
565
+ [92344,price-0.03, 150, 150, 2, 1000],
566
+ [92357,price-0.04, 250, 250, 2, 1500],
567
+ [92405,price-0.05, 350, 350, 1, 1000],
568
+ [92435,price-0.06, 450, 450, 1, 1000],
569
+ [92458,price-0.07, 550, 550, 2, 1000],
570
+ ];
571
+ }
480
572
 
481
573
  stockItem.before=before;
482
574
  stockItem.beforeinfo=beforeinfo;
@@ -484,30 +576,57 @@ HQData.Minute_RequestMinuteUpdateData=function(data, callback)
484
576
 
485
577
  if (callcation.After)
486
578
  {
487
- var afterInfo={ totalcount:60*10, ver:2.0, TimeConfig:{ AryTime:[{ Start:145700, End:145959, Date:srcStock.date }]} }; //9:15-9:25 集合竞价15分钟 1s一个数据
488
- var afterData=[];
489
-
490
- if (IFrameSplitOperator.IsNonEmptyArray(lastItem) && lastItem[1]>=1457)
579
+ if (symbol=="000001.sh") //指数
491
580
  {
492
- var price=lastItem[5];
493
- afterData=
494
- [
495
- [145708,price+0.01, 400, 300, 1, 800],
496
- [145718,price+0.02, 550, 600, 0, 1500],
497
- [145738,price+0.02, 150, 800, 0, 1500],
498
- [145748,price+0.02, 150, 800, 0, 1500],
499
- [145803,price+0.03, 300, 600, 1, 3600],
500
- [145815,price+0.03, 350, 210, 2, 1600],
501
- [145826,price+0.02, 1210, 350, 2, 2700],
502
- [145833,price+0.01, 260, 550, 2, 1000],
503
- [145845,price+0.02, 160, 750, 2, 1000],
504
- [145858,price-0.01, 460, 650, 2, 1500],
505
- [145905,price-0.02, 160, 450, 1, 1500],
506
- [145928,price-0.02, 260, 250, 1, 1500],
507
- [145948,price-0.02, 860, 150, 1, 1500],
508
- ];
581
+ var afterData=[]
582
+ var afterInfo={ ver:3.0, totalcount:60*3, TimeConfig:{ AryTime:[{ Start:145700, End:145959, Date:srcStock.date }]} } //14:57-15:00
583
+ if (IFrameSplitOperator.IsNonEmptyArray(lastItem) && lastItem[1]>=1457)
584
+ {
585
+ var price=lastItem[5];
586
+ var date=new Date(2021,5,2, 14,57, 0);
587
+ var vol=0;
588
+ for(var i=0;i<afterInfo.totalcount; ++i) //1s一个数据
589
+ {
590
+ var time=date.getHours()*10000+date.getMinutes()*100+date.getSeconds();
591
+
592
+ vol=HQData.GetRandomTestData(100,500)*1000;
593
+ var item=[ time, price, price+0.04, vol, 3, vol*1.3 ];
594
+
595
+ afterData.push(item);
596
+
597
+ date.setSeconds(date.getSeconds()+3);
598
+ var time=date.getHours()*10000+date.getMinutes()*100+date.getSeconds();
599
+ if (time>145959) break;
600
+ }
601
+ }
509
602
  }
603
+ else
604
+ {
605
+ var afterInfo={ totalcount:60*10, ver:2.0, TimeConfig:{ AryTime:[{ Start:145700, End:145959, Date:srcStock.date }]} }; //9:15-9:25 集合竞价15分钟 1s一个数据
606
+ var afterData=[];
510
607
 
608
+ if (IFrameSplitOperator.IsNonEmptyArray(lastItem) && lastItem[1]>=1457)
609
+ {
610
+ var price=lastItem[5];
611
+ afterData=
612
+ [
613
+ [145708,price+0.01, 400, 300, 1, 800],
614
+ [145718,price+0.02, 550, 600, 0, 1500],
615
+ [145738,price+0.02, 150, 800, 0, 1500],
616
+ [145748,price+0.02, 150, 800, 0, 1500],
617
+ [145803,price+0.03, 300, 600, 1, 3600],
618
+ [145815,price+0.03, 350, 210, 2, 1600],
619
+ [145826,price+0.02, 1210, 350, 2, 2700],
620
+ [145833,price+0.01, 260, 550, 2, 1000],
621
+ [145845,price+0.02, 160, 750, 2, 1000],
622
+ [145858,price-0.01, 460, 650, 2, 1500],
623
+ [145905,price-0.02, 160, 450, 1, 1500],
624
+ [145928,price-0.02, 260, 250, 1, 1500],
625
+ [145948,price-0.02, 860, 150, 1, 1500],
626
+ ];
627
+ }
628
+ }
629
+
511
630
  stockItem.after=afterData;
512
631
  stockItem.afterinfo=afterInfo;
513
632
  }
@@ -17621,6 +17621,7 @@ function AverageWidthFrame()
17621
17621
  {
17622
17622
  var x=mouseOnToolbar.Point.X;
17623
17623
  var y=mouseOnToolbar.Point.Y+20;
17624
+ if (y+textHeight>border.ChartHeight) y=mouseOnToolbar.Point.Y-5-textHeight;
17624
17625
  }
17625
17626
  else if (JSCHART_BUTTON_ID.CLOSE_BEFOREOPEN_ID==mouseOnToolbar.Item.ID)
17626
17627
  {
@@ -18033,7 +18034,7 @@ function AverageWidthFrame()
18033
18034
  if (isDrawRight && this.IsDrawRightBorder && this.YRightTextInfo)
18034
18035
  {
18035
18036
  var xRight=this.YRightTextInfo.MainTextWidth+right;
18036
- xLine=ToFixedPoint(xRight);
18037
+ var xLine=ToFixedPoint(xRight);
18037
18038
  this.Canvas.strokeStyle=this.PenBorder;
18038
18039
  this.Canvas.beginPath();
18039
18040
  this.Canvas.moveTo(xLine,top);
@@ -53054,6 +53055,7 @@ function MinuteLeftTooltipPaint()
53054
53055
  {
53055
53056
  var item=drawData.Data.Data;
53056
53057
  if (!item) return;
53058
+ var version=drawData.Data.Ver;
53057
53059
 
53058
53060
  this.YClose=item.YClose;
53059
53061
  if (isFutures && IFrameSplitOperator.IsNumber(item.YClearing)) this.YClose=item.YClearing;
@@ -53061,7 +53063,7 @@ function MinuteLeftTooltipPaint()
53061
53063
  if (titleItem) aryText.push(titleItem);
53062
53064
 
53063
53065
  var timeForamt="HH:MM:SS";
53064
- if (item.Ver===1) timeForamt="HH:MM"
53066
+ if (version===1) timeForamt="HH:MM"
53065
53067
 
53066
53068
  var titleItem=this.ForamtTime(item.Time,timeForamt,'PCTooltip-Time');
53067
53069
  if (titleItem) aryText.push(titleItem);
@@ -95379,7 +95381,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
95379
95381
 
95380
95382
  ];
95381
95383
 
95382
- if (MARKET_SUFFIX_NAME.IsSHSZStockA(this.Symbol))
95384
+ if (MARKET_SUFFIX_NAME.IsEnableCallAuction(this.Symbol))
95383
95385
  {
95384
95386
  var item=
95385
95387
  {
@@ -97391,16 +97393,17 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
97391
97393
 
97392
97394
  // 盘前数据(A股)
97393
97395
  this.IsBeforeData=false;
97394
- if (this.IsShowBeforeData && this.DayCount===1 && MARKET_SUFFIX_NAME.IsSHSZStockA(self.Symbol))
97396
+ if (this.IsShowBeforeData && this.DayCount===1 && MARKET_SUFFIX_NAME.IsEnableCallAuction(self.Symbol))
97395
97397
  {
97396
97398
  this.IsBeforeData=true;
97397
97399
  fields.push('before');
97398
97400
  }
97399
97401
 
97400
97402
  this.IsAfterData=false;
97401
- if (this.IsShowAfterData && this.DayCount===1 && MARKET_SUFFIX_NAME.IsSHSZStockA(self.Symbol))
97403
+ if (this.IsShowAfterData && this.DayCount===1 && MARKET_SUFFIX_NAME.IsEnableCallAuction(self.Symbol))
97402
97404
  {
97403
97405
  this.IsAfterData=true;
97406
+ fields.push('after');
97404
97407
  }
97405
97408
 
97406
97409
  //5档买卖盘
@@ -105174,6 +105177,15 @@ var MARKET_SUFFIX_NAME=
105174
105177
  return true;
105175
105178
  },
105176
105179
 
105180
+ IsEnableCallAuction:function(symbol) //是否支持集合竞价
105181
+ {
105182
+ if (MARKET_SUFFIX_NAME.IsSHSZStockA(symbol)) return true; //A股
105183
+ if (MARKET_SUFFIX_NAME.IsBJStock(symbol)) return true; //北交所
105184
+ if (MARKET_SUFFIX_NAME.IsSHSZIndex(symbol)) return true; //指数
105185
+
105186
+ return false;
105187
+ },
105188
+
105177
105189
  //获取成交量单位
105178
105190
  GetVolUnit:function(upperSymbol)
105179
105191
  {
@@ -138882,10 +138894,18 @@ function JSReportChart(divElement)
138882
138894
  if (IFrameSplitOperator.IsBool(option.EnableDragRow)) chart.EnableDragRow=option.EnableDragRow;
138883
138895
  if (IFrameSplitOperator.IsNumber(option.DragRowType)) chart.DragRowType=option.DragRowType;
138884
138896
  if (IFrameSplitOperator.IsBool(option.EnableDragHeader)) chart.EnableDragHeader=option.EnableDragHeader;
138885
- if (IFrameSplitOperator.IsNumber(option.WheelPageType)) chart.WheelPageType=option.WheelPageType;
138897
+ if (IFrameSplitOperator.IsNumber(option.WheelPageType)) chart.WheelPageConfig.Type=option.WheelPageType;
138886
138898
  if (IFrameSplitOperator.IsBool(option.PageUpDownCycle)) chart.PageUpDownCycle=option.PageUpDownCycle;
138887
138899
  if (IFrameSplitOperator.IsBool(option.EnablePageUpdate)) chart.EnablePageUpdate=option.EnablePageUpdate;
138888
138900
 
138901
+ if (option.WheelPage)
138902
+ {
138903
+ var item=option.WheelPage;
138904
+ if (IFrameSplitOperator.IsNumber(item.Type)) chart.WheelPageConfig.Type=item.Type;
138905
+ if (IFrameSplitOperator.IsPlusNumber(item.RowStep)) chart.WheelPageConfig.RowStep=item.RowStep;
138906
+ if (IFrameSplitOperator.IsBool(item.EnableCtrlTurn)) chart.WheelPageConfig.EnableCtrlTurn=item.EnableCtrlTurn;
138907
+ }
138908
+
138889
138909
  //数据下载提示信息
138890
138910
  if (IFrameSplitOperator.IsObject(option.SplashTitle))
138891
138911
  {
@@ -139176,7 +139196,13 @@ function JSReportChartContainer(uielement)
139176
139196
 
139177
139197
  this.PageUpDownCycle=true; //翻页循环
139178
139198
  this.DragPageCycle=true; //手机翻页循环
139179
- this.WheelPageType=0; //鼠标滚轴翻页模式 0=一页一页翻 1=一条一条翻
139199
+ //this.WheelPageType=0; //鼠标滚轴翻页模式 0=一页一页翻 1=一条一条翻
139200
+
139201
+ //鼠标滚轴配置
139202
+ // Type:0=一页一页翻 1=一条一条翻,
139203
+ // RowStep:单条数据滚动步长
139204
+ // EnableCtrlTurn Ctrl+滚轴翻页
139205
+ this.WheelPageConfig={ Type:0, RowStep:1, EnableCtrlTurn:false }
139180
139206
 
139181
139207
  //拖拽滚动条
139182
139208
  this.DragXScroll=null; //{Start:{x,y}, End:{x, y}}
@@ -140691,14 +140717,17 @@ function JSReportChartContainer(uielement)
140691
140717
  if (!IFrameSplitOperator.IsObjectExist(e.wheelDelta))
140692
140718
  wheelValue=e.deltaY* -0.01;
140693
140719
 
140694
- if (this.WheelPageType==1)
140720
+ var type=this.WheelPageConfig.Type;
140721
+ if (this.WheelPageConfig.EnableCtrlTurn && e && e.ctrlKey) type=0; //ctrl 翻页
140722
+
140723
+ if (type)
140695
140724
  {
140696
- console.log(`[OnWheel] wheelValue=${wheelValue}`);
140725
+ var step=this.WheelPageConfig.RowStep;
140697
140726
  if (wheelValue<0) //下
140698
140727
  {
140699
140728
  this.LastMouseStatus.TooltipStatus=null;
140700
140729
  this.HideAllTooltip();
140701
- if (this.GotoNextItem(1))
140730
+ if (this.GotoNextItem(step))
140702
140731
  {
140703
140732
  this.Draw();
140704
140733
  this.DelayUpdateStockData();
@@ -140708,7 +140737,7 @@ function JSReportChartContainer(uielement)
140708
140737
  {
140709
140738
  this.LastMouseStatus.TooltipStatus=null;
140710
140739
  this.HideAllTooltip();
140711
- if (this.GotoNextItem(-1))
140740
+ if (this.GotoNextItem(step*-1))
140712
140741
  {
140713
140742
  this.Draw();
140714
140743
  this.DelayUpdateStockData();
@@ -152470,7 +152499,7 @@ function ScrollBarBGChart()
152470
152499
 
152471
152500
 
152472
152501
 
152473
- var HQCHART_VERSION="1.1.14999";
152502
+ var HQCHART_VERSION="1.1.15005";
152474
152503
 
152475
152504
  function PrintHQChartVersion()
152476
152505
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.14999";
8
+ var HQCHART_VERSION="1.1.15005";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {