hqchart 1.1.13057 → 1.1.13062

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.
@@ -6691,7 +6691,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
6691
6691
  {
6692
6692
  IsValueFullRange:false ,
6693
6693
  IsDisplayLatest:false,
6694
- SelectedBorder:{ Mode:0, SelFrame:0 } //边框选中模式 Mode:0=禁用 1=右侧标记选中 2=指标窗口标记选中
6694
+ SelectedBorder:{ Mode:0, SelFrame:0 }, //边框选中模式 Mode:0=禁用 1=右侧标记选中 2=指标窗口标记选中
6695
+ SelectedXBorder: { Mode:0, Date:null } //X边框选中模式 Mode:0=禁用 分时图图有效
6695
6696
  //XDateFormat (多日分时图x轴底部日期格式)
6696
6697
  };
6697
6698
 
@@ -7144,6 +7145,20 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
7144
7145
  }
7145
7146
  }
7146
7147
 
7148
+ if (this.GlobalOption.SelectedXBorder && this.GlobalOption.SelectedXBorder.Mode>=1)
7149
+ {
7150
+ if (this.PtInMulitDayMinute)
7151
+ {
7152
+ var item=this.GlobalOption.SelectedXBorder;
7153
+ var selectedDate=this.PtInMulitDayMinute(x,y);
7154
+ if (item.Date!=selectedDate)
7155
+ {
7156
+ item.Date=selectedDate
7157
+ bDrawDynamicInfo=true;
7158
+ }
7159
+ }
7160
+ }
7161
+
7147
7162
  if (this.TryClickCrossCursor(x,y, e))
7148
7163
  {
7149
7164
  return;
@@ -8948,6 +8963,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8948
8963
  this.DrawSelectedStatus();
8949
8964
 
8950
8965
  this.DrawSelectedBorder();
8966
+ if (this.DrawSelectedXBorder) this.DrawSelectedXBorder();
8951
8967
 
8952
8968
  var moveonPoint=null;
8953
8969
  if (this.LastMouseStatus && this.LastMouseStatus.MoveOnPoint) moveonPoint=this.LastMouseStatus.MoveOnPoint;
@@ -9374,6 +9390,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
9374
9390
 
9375
9391
  this.DrawSelectedStatus();
9376
9392
  this.DrawSelectedBorder();
9393
+ if (this.DrawSelectedXBorder) this.DrawSelectedXBorder();
9377
9394
 
9378
9395
  var moveonPoint=null;
9379
9396
  if (this.LastMouseStatus && this.LastMouseStatus.MoveOnPoint) moveonPoint=this.LastMouseStatus.MoveOnPoint;
@@ -54880,6 +54897,13 @@ function DynamicChartTitlePainting()
54880
54897
  this.MerginLeft=g_JSChartResource.IndexTitleMerginLeft; //标题输出左边间距
54881
54898
 
54882
54899
  this.Buttons=[]; //按钮
54900
+
54901
+ this.UpDownArrowConfig=
54902
+ {
54903
+ UpColor:g_JSChartResource.IndexTitle.UpDownArrow.UpColor,
54904
+ DownColor:g_JSChartResource.IndexTitle.UpDownArrow.DownColor,
54905
+ UnchangeColor:g_JSChartResource.IndexTitle.UpDownArrow.UnchangeColor
54906
+ };
54883
54907
 
54884
54908
 
54885
54909
  //动态标题
@@ -55420,27 +55444,68 @@ function DynamicChartTitlePainting()
55420
55444
  else text=titleItem.Text;
55421
55445
 
55422
55446
  var space=this.ParamSpace*GetDevicePixelRatio();
55423
- var textWidth=this.Canvas.measureText(text).width+space;
55424
- if ((left+textWidth)>right) break;
55447
+ var indexTextWidth=this.Canvas.measureText(text).width; //标题+数值长度
55448
+ var textWidth=indexTextWidth;
55449
+
55450
+ if (IFrameSplitOperator.IsNonEmptyArray(titleItem.TextEx))
55451
+ {
55452
+ var xLeft=left;
55453
+ for(var n=0; n<titleItem.TextEx.length; ++n)
55454
+ {
55455
+ var outItem=titleItem.TextEx[n];
55456
+ var outTextWidth=this.Canvas.measureText(outItem.Text).width+2;
55457
+ outItem.Width=outTextWidth;
55458
+ outItem.Left=xLeft;
55459
+
55460
+ textWidth+=outTextWidth;
55461
+ xLeft+=outTextWidth;
55462
+ }
55463
+ }
55464
+
55465
+ if ((left+textWidth+space)>right) break;
55425
55466
 
55426
55467
  if (titleItem.BG) //背景
55427
55468
  {
55428
55469
  var textHeight=this.Canvas.measureText("擎").width+2;
55429
- var textWidth=this.Canvas.measureText(text).width+2;
55430
55470
  var rtBG={ Left:left, Top:bottom-textHeight/2, Width:textWidth, Height:textHeight };
55431
55471
  this.Canvas.fillStyle=titleItem.BG;
55432
55472
  this.Canvas.fillRect(rtBG.Left,rtBG.Top-1, rtBG.Width, rtBG.Height);
55433
55473
 
55434
55474
  this.Canvas.fillStyle=titleItem.Color;
55435
- this.Canvas.fillText(text,rtBG.Left+1,bottom,textWidth);
55475
+ this.Canvas.fillText(text,rtBG.Left+1,bottom,indexTextWidth);
55476
+ left+=indexTextWidth;
55436
55477
 
55437
- left+=(textWidth+space);
55478
+ if (IFrameSplitOperator.IsNonEmptyArray(titleItem.TextEx))
55479
+ {
55480
+ for(var n=0; n<titleItem.TextEx.length; ++n)
55481
+ {
55482
+ var outItem=titleItem.TextEx[n];
55483
+ this.Canvas.fillStyle=outItem.TextColor;
55484
+ this.Canvas.fillText(outItem.Text,left,bottom,outItem.Width);
55485
+ left+=outItem.Width;
55486
+ }
55487
+ }
55488
+
55489
+ left+=space;
55438
55490
  }
55439
55491
  else
55440
55492
  {
55441
55493
  this.Canvas.fillStyle=titleItem.Color;
55442
- this.Canvas.fillText(text,left,bottom,textWidth);
55443
- left+=textWidth;
55494
+ this.Canvas.fillText(text,left,bottom,indexTextWidth);
55495
+ left+=indexTextWidth;
55496
+
55497
+ if (IFrameSplitOperator.IsNonEmptyArray(titleItem.TextEx))
55498
+ {
55499
+ for(var n=0; n<titleItem.TextEx.length; ++n)
55500
+ {
55501
+ var outItem=titleItem.TextEx[n];
55502
+ this.Canvas.fillStyle=outItem.TextColor;
55503
+ this.Canvas.fillText(outItem.Text,left,bottom,outItem.Width);
55504
+ left+=outItem.Width;
55505
+ }
55506
+ }
55507
+
55508
+ left+=space;
55444
55509
  }
55445
55510
  }
55446
55511
  }
@@ -55623,7 +55688,7 @@ function DynamicChartTitlePainting()
55623
55688
  }
55624
55689
  }
55625
55690
 
55626
- var arrow=null;
55691
+ var arrowSuper=null; //独立颜色
55627
55692
 
55628
55693
  if (this.IsShowUpDownArrow)
55629
55694
  {
@@ -55631,9 +55696,9 @@ function DynamicChartTitlePainting()
55631
55696
  if (dataIndex-1>=0) preValue=item.Data.Data[dataIndex-1];
55632
55697
  if (IFrameSplitOperator.IsNumber(preValue))
55633
55698
  {
55634
- if (preValue>value) arrow='↓';
55635
- else if (preValue<value) arrow='↑';
55636
- else arrow='→';
55699
+ if (preValue>value) arrowSuper={ Text:'↓', TextColor:this.UpDownArrowConfig.DownColor };
55700
+ else if (preValue<value) arrowSuper={ Text:'↑', TextColor:this.UpDownArrowConfig.UpColor};
55701
+ else arrowSuper={ Text:'→', TextColor:this.UpDownArrowConfig.UnchangeColor };
55637
55702
  }
55638
55703
  }
55639
55704
 
@@ -55644,7 +55709,21 @@ function DynamicChartTitlePainting()
55644
55709
  if (dyValue) valueText=dyValue;
55645
55710
  }
55646
55711
 
55647
- if (arrow) valueText+=arrow;
55712
+ if (arrowSuper)
55713
+ {
55714
+ var outItem={ Name:null, Text:valueText, Color:item.Color, TextEx:[arrowSuper] };
55715
+ if (item.Name)
55716
+ {
55717
+ var text=item.Name;
55718
+ var dyTitle=this.GetDynamicOutName(item.Name); //动态标题
55719
+ if (dyTitle) text=dyTitle;
55720
+ outItem.Name=text;
55721
+ }
55722
+ //outItem.BG='rgb(100,100,100)';
55723
+
55724
+ aryText=[outItem];
55725
+ valueText=null;
55726
+ }
55648
55727
  }
55649
55728
  }
55650
55729
 
@@ -66483,6 +66562,16 @@ function JSChartResource()
66483
66562
  this.OverlayIndexTitleBGColor='rgba(255,255,255,0.7)';
66484
66563
  this.IndexTitleMerginLeft=1; //指标输出左边间距
66485
66564
 
66565
+ this.IndexTitle=
66566
+ {
66567
+ UpDownArrow: //数值涨跌箭头
66568
+ {
66569
+ UpColor:"rgb(238,21,21)", //上涨
66570
+ DownColor:"rgb(25,158,0)", //下跌
66571
+ UnchangeColor:"rgb(0,0,0)" //不变
66572
+ }
66573
+ }
66574
+
66486
66575
  this.Title={
66487
66576
  TradeIndexColor:'rgb(105,105,105)', //交易指标颜色
66488
66577
  ColorIndexColor:'rgb(112,128,144)', //五彩K线颜色
@@ -67591,6 +67680,18 @@ function JSChartResource()
67591
67680
  if (style.SelFrameBorderColor) this.SelFrameBorderColor=style.SelFrameBorderColor;
67592
67681
  if (IFrameSplitOperator.IsNumber(style.IndexTitleMerginLeft)) this.IndexTitleMerginLeft = style.IndexTitleMerginLeft;
67593
67682
 
67683
+ if (style.IndexTitle)
67684
+ {
67685
+ var item=style.IndexTitle;
67686
+ if (item.UpDownArrow)
67687
+ {
67688
+ var subItem=item.UpDownArrow;
67689
+ if (subItem.UpColor) this.IndexTitle.UpDownArrow.UpColor = subItem.UpColor;
67690
+ if (subItem.DownColor) this.IndexTitle.UpDownArrow.DownColor = subItem.DownColor;
67691
+ if (subItem.UnchangeColor) this.IndexTitle.UpDownArrow.UnchangeColor = subItem.UnchangeColor;
67692
+ }
67693
+ }
67694
+
67594
67695
  if (style.Frame)
67595
67696
  {
67596
67697
  if (style.Frame.XBottomOffset) this.Frame.XBottomOffset=style.Frame.XBottomOffset;
@@ -76355,7 +76456,6 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
76355
76456
  this.DataStatus={ MultiDay:false, LatestDay:false }; //MultiDay=多日 LatestDay:当天
76356
76457
 
76357
76458
  this.ZoomStepPixel=50;
76358
-
76359
76459
 
76360
76460
  //集合竞价设置 obj={ Left:true/false, Right:true/false, MultiDay:{Left:, Right:} }
76361
76461
  this.SetCallCationDataBorder=function(obj)
@@ -81343,6 +81443,105 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
81343
81443
 
81344
81444
  return false;
81345
81445
  }
81446
+
81447
+ this.ClearSelectedXBorder=function()
81448
+ {
81449
+ if (!this.GlobalOption || !this.GlobalOption.SelectedXBorder) return;
81450
+ var item=this.GlobalOption.SelectedXBorder;
81451
+ item.Date=null;
81452
+ }
81453
+
81454
+ this.DrawSelectedXBorder=function()
81455
+ {
81456
+ if (this.DayCount<=1) return null;
81457
+ if (this.Frame.IsHScreen===true) return null;
81458
+
81459
+ if (!this.GlobalOption || !this.GlobalOption.SelectedXBorder) return;
81460
+ var item=this.GlobalOption.SelectedXBorder;
81461
+ if (!IFrameSplitOperator.IsPlusNumber(item.Mode)) return;
81462
+ if (!IFrameSplitOperator.IsPlusNumber(item.Date)) return;
81463
+ if (!IFrameSplitOperator.IsNonEmptyArray(this.DayData)) return;
81464
+
81465
+ var rtSelected=null;
81466
+ var dayIndex=item.DayIndex;
81467
+ var border=this.Frame.ChartBorder.GetBorder();
81468
+ var rtClient={ Left:border.Left, Top:border.Top, Right:border.Right, Bottom: border.Bottom };
81469
+ rtClient.Width=rtClient.Right-rtClient.Left;
81470
+ var mainFrame=this.Frame.SubFrame[0].Frame; //主图框架
81471
+ var xPointCount=mainFrame.XPointCount;
81472
+ var minuteCount=mainFrame.MinuteCount;
81473
+ var lDayCount=xPointCount/minuteCount;
81474
+ var dayWidth=rtClient.Width/lDayCount;
81475
+
81476
+ if (border.DayBorder)
81477
+ {
81478
+
81479
+ }
81480
+ else
81481
+ {
81482
+ var dayIndex=-1;
81483
+ for(var i=0;i<this.DayData.length;++i)
81484
+ {
81485
+ var dayItem=this.DayData[i];
81486
+ if (dayItem.Date==item.Date)
81487
+ {
81488
+ dayIndex=this.DayData.length-1-i;
81489
+ break;
81490
+ }
81491
+ }
81492
+
81493
+ if (dayIndex<0) return;
81494
+
81495
+ rtSelected={ Left:border.Left+dayIndex*dayWidth, Width:dayWidth, Top:border.Bottom, Bottom:border.ChartHeight };
81496
+ rtSelected.Right=rtSelected.Left+rtSelected.Width;
81497
+ rtSelected.Height=rtSelected.Bottom-rtSelected.Top;
81498
+ }
81499
+
81500
+
81501
+ mainFrame.Canvas.strokeStyle=g_JSChartResource.SelFrameBorderColor;
81502
+ mainFrame.Canvas.strokeRect(ToFixedPoint(rtSelected.Left),ToFixedPoint(rtSelected.Top),ToFixedRect(rtSelected.Width),ToFixedRect(rtSelected.Height)-1);
81503
+ }
81504
+
81505
+ this.PtInMulitDayMinute=function(x,y)
81506
+ {
81507
+ if (this.DayCount<=1) return null;
81508
+ if (this.Frame.IsHScreen===true) return null;
81509
+ if (!IFrameSplitOperator.IsNonEmptyArray(this.DayData)) return null;
81510
+
81511
+ var border=this.Frame.ChartBorder.GetBorder();
81512
+ var rtClient={ Left:border.Left, Top:border.Top, Right:border.Right, Bottom: border.Bottom };
81513
+ rtClient.Width=rtClient.Right-rtClient.Left;
81514
+ if (!(x>rtClient.Left && x<rtClient.Right && y>rtClient.Top && y<rtClient.Bottom)) return null; //不在窗口里面
81515
+
81516
+ if (border.DayBorder)
81517
+ {
81518
+
81519
+ }
81520
+ else
81521
+ {
81522
+ var mainFrame=this.Frame.SubFrame[0].Frame; //主图框架
81523
+ var xPointCount=mainFrame.XPointCount;
81524
+ var minuteCount=mainFrame.MinuteCount;
81525
+ var lDayCount=xPointCount/minuteCount;
81526
+ var dayWidth=rtClient.Width/lDayCount;
81527
+ var rtDay={ Left:rtClient.Left, Right:dayWidth+rtClient.Left };
81528
+ for(var i=0;i<lDayCount;++i)
81529
+ {
81530
+ if (x>=rtDay.Left && x<=rtDay.Right)
81531
+ {
81532
+ var dayItem=this.DayData[this.DayData.length-1-i];
81533
+ if (!dayItem) return null;
81534
+
81535
+ return dayItem.Date;
81536
+ }
81537
+
81538
+ rtDay.Left+=dayWidth;
81539
+ rtDay.Right+=dayWidth;
81540
+ }
81541
+ }
81542
+
81543
+ return null;
81544
+ }
81346
81545
  }
81347
81546
 
81348
81547
  //盘前数据
@@ -119330,6 +119529,16 @@ function GetBlackStyle()
119330
119529
  DownTextColor: "rgb(25,158,0)",
119331
119530
  UnchagneTextColor: "rgb(190, 190 ,190)",
119332
119531
  CloseLineColor: 'rgb(250,250,250)',
119532
+
119533
+ IndexTitle:
119534
+ {
119535
+ UpDownArrow: //数值涨跌箭头
119536
+ {
119537
+ UpColor:"rgb(238,21,21)", //上涨
119538
+ DownColor:"rgb(25,158,0)", //下跌
119539
+ UnchangeColor:"rgb(190, 190 ,190)" //不变
119540
+ }
119541
+ },
119333
119542
 
119334
119543
  Title:
119335
119544
  {
@@ -130141,7 +130350,7 @@ function ScrollBarBGChart()
130141
130350
 
130142
130351
 
130143
130352
 
130144
- var HQCHART_VERSION="1.1.13056";
130353
+ var HQCHART_VERSION="1.1.13061";
130145
130354
 
130146
130355
  function PrintHQChartVersion()
130147
130356
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.13056";
8
+ var HQCHART_VERSION="1.1.13061";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -48726,6 +48726,10 @@ HQData.NetworkFilter=function(data, callback)
48726
48726
  HQData.AnnouncementInfo_RequestData(data,callback);
48727
48727
  break;
48728
48728
 
48729
+ case "JSSymbolData::GetLatestData":
48730
+ HQData.RequestLatestData(data,callback);
48731
+ break;
48732
+
48729
48733
 
48730
48734
 
48731
48735
 
@@ -48958,6 +48962,39 @@ HQData.TradeDetail_RequestData=function(data,callback)
48958
48962
  callback(TEST_TRADE_DETAL_DATA);
48959
48963
  }
48960
48964
 
48965
+ HQData.RequestLatestData=function(data,callback)
48966
+ {
48967
+ data.PreventDefault=true;
48968
+ var symbol=data.Request.Data.symbol[0];
48969
+ var id=data.Args[0];
48970
+ var value=1;
48971
+ switch(id)
48972
+ {
48973
+ case 3:
48974
+ value=KLINE_1DAY_DATA.stock[0].yclose;
48975
+ break;
48976
+ case 4:
48977
+ value=KLINE_1DAY_DATA.stock[0].open;
48978
+ break;
48979
+ case 5:
48980
+ value=KLINE_1DAY_DATA.stock[0].high;
48981
+ break;
48982
+ case 6:
48983
+ value=KLINE_1DAY_DATA.stock[0].low;
48984
+ break;
48985
+ case 7:
48986
+ value=KLINE_1DAY_DATA.stock[0].price;
48987
+ break;
48988
+ case 8:
48989
+ value=KLINE_1DAY_DATA.stock[0].vol;
48990
+ break;
48991
+ }
48992
+
48993
+ var hqchartData={ symbol:symbol, ver:2.0, data:[ {id:id, value:value }]};
48994
+
48995
+ callback(hqchartData);
48996
+ }
48997
+
48961
48998
 
48962
48999
  /*暴露外部用的方法*/
48963
49000
  export default