hqchart 1.1.13606 → 1.1.13623

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.
@@ -4661,7 +4661,8 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4661
4661
 
4662
4662
  if (IFrameSplitOperator.IsNumber(item.TitleHeight)) chart.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;
4663
4663
  else item.TitleHeight=chart.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight;
4664
- if (IFrameSplitOperator.IsBool(item.IsShowTitleArrow)) chart.Frame.SubFrame[i].Frame.IsShowTitleArrow=item.IsShowTitleArrow;
4664
+ if (IFrameSplitOperator.IsBool(item.IsShowTitleArrow)) frame.IsShowTitleArrow=item.IsShowTitleArrow;
4665
+ if (IFrameSplitOperator.IsNumber(item.TitleArrowType)) frame.TitleArrowType=item.TitleArrowType;
4665
4666
  if (item.IsShowIndexName==false) chart.Frame.SubFrame[i].Frame.IsShowIndexName=false;
4666
4667
  if (item.IsShowOverlayIndexName==false) chart.Frame.SubFrame[i].Frame.IsShowOverlayIndexName=false;
4667
4668
  if (IFrameSplitOperator.IsNumber(item.IndexParamSpace)) chart.Frame.SubFrame[i].Frame.IndexParamSpace=item.IndexParamSpace;
@@ -5130,7 +5131,8 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
5130
5131
  if (IFrameSplitOperator.IsBool(item.IsDrawTitleBG)) chart.Frame.SubFrame[index].Frame.IsDrawTitleBG=item.IsDrawTitleBG;
5131
5132
  if (IFrameSplitOperator.IsBool(item.IsShowNameArrow)) chart.Frame.SubFrame[index].Frame.IsShowNameArrow=item.IsShowNameArrow;
5132
5133
 
5133
- if (IFrameSplitOperator.IsBool(item.IsShowTitleArrow)) chart.Frame.SubFrame[index].Frame.IsShowTitleArrow=item.IsShowTitleArrow;
5134
+ if (IFrameSplitOperator.IsBool(item.IsShowTitleArrow)) frame.IsShowTitleArrow=item.IsShowTitleArrow;
5135
+ if (IFrameSplitOperator.IsNumber(item.TitleArrowType)) frame.TitleArrowType=item.TitleArrowType;
5134
5136
  if (item.IsShowIndexName==false) chart.Frame.SubFrame[index].Frame.IsShowIndexName=false;
5135
5137
  if (item.IsShowOverlayIndexName==false) chart.Frame.SubFrame[index].Frame.IsShowOverlayIndexName=false;
5136
5138
  if (!IFrameSplitOperator.IsUndefined(item.HorizontalReserved)) frame.HorizontalReserved=item.HorizontalReserved;
@@ -5541,7 +5543,6 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
5541
5543
  if (IFrameSplitOperator.IsBool(item.IsShowNameArrow)) chart.Frame.SubFrame[i].Frame.IsShowNameArrow=item.IsShowNameArrow;
5542
5544
 
5543
5545
  if (IFrameSplitOperator.IsNumber(item.TitleHeight)) chart.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;
5544
-
5545
5546
  if (IFrameSplitOperator.IsBool(item.IsShowTitleArrow)) chart.Frame.SubFrame[i].Frame.IsShowTitleArrow=item.IsShowTitleArrow;
5546
5547
  if (item.IsShowIndexName==false) chart.Frame.SubFrame[i].Frame.IsShowIndexName=false;
5547
5548
  if (item.IsShowOverlayIndexName==false) chart.Frame.SubFrame[i].Frame.IsShowOverlayIndexName=false;
@@ -6581,6 +6582,7 @@ var JSCHART_EVENT_ID=
6581
6582
  ON_FORMAT_CALL_AUCTION_INDEX_TITLE:153, //集合竞价指标窗口标题内容
6582
6583
 
6583
6584
  ON_FORMAT_KLINE_HIGH_LOW_TITLE:154, //K线最高最低价格式化内容
6585
+ ON_CUSTOM_CORSSCURSOR_POSITION:155, //自定义十字光标X轴的输出的位置
6584
6586
  }
6585
6587
 
6586
6588
  var JSCHART_OPERATOR_ID=
@@ -12365,6 +12367,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
12365
12367
  else windowItem.TitleHeight=frame.ChartBorder.TitleHeight;
12366
12368
 
12367
12369
  if (IFrameSplitOperator.IsBool(windowItem.IsShowTitleArrow)) frame.IsShowTitleArrow=windowItem.IsShowTitleArrow;
12370
+ if (IFrameSplitOperator.IsNumber(windowItem.TitleArrowType)) frame.TitleArrowType=windowItem.TitleArrowType;
12368
12371
  if (IFrameSplitOperator.IsBool(windowItem.IsShowIndexName)) frame.IsShowIndexName=windowItem.IsShowIndexName;
12369
12372
  if (IFrameSplitOperator.IsNumber(windowItem.IndexParamSpace)) frame.IndexParamSpace=windowItem.IndexParamSpace;
12370
12373
  if (IFrameSplitOperator.IsNumber(windowItem.IndexTitleSpace)) frame.IndexTitleSpace=windowItem.IndexTitleSpace;
@@ -12427,6 +12430,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
12427
12430
  if (IFrameSplitOperator.IsNumber(option.SplitCount)) subFrame.Frame.YSplitOperator.SplitCount=option.SplitCount;
12428
12431
  if (IFrameSplitOperator.IsNumber(option.TitleHeight)) subFrame.Frame.ChartBorder.TitleHeight=option.TitleHeight;
12429
12432
  if (IFrameSplitOperator.IsBool(option.IsShowTitleArrow)) subFrame.Frame.IsShowTitleArrow=option.IsShowTitleArrow;
12433
+ if (IFrameSplitOperator.IsNumber(option.TitleArrowType)) subFrame.Frame.TitleArrowType=option.TitleArrowType;
12430
12434
  if (IFrameSplitOperator.IsBool(option.IsShowIndexName)) subFrame.Frame.IsShowIndexName=option.IsShowIndexName;
12431
12435
  if (IFrameSplitOperator.IsBool(option.IsShowOverlayIndexName)) subFrame.Frame.IsShowOverlayIndexName=option.IsShowOverlayIndexName;
12432
12436
  if (IFrameSplitOperator.IsNumber(option.IndexParamSpace)) subFrame.Frame.IndexParamSpace=option.IndexParamSpace;
@@ -14266,7 +14270,8 @@ function IChartFramePainting()
14266
14270
 
14267
14271
  this.YSpecificMaxMin=null; //指定Y轴最大最小值
14268
14272
  this.IsShowBorder = true; //是否显示边框
14269
- this.IsShowTitleArrow=true; //是否显示指标信息上涨下跌箭头
14273
+ this.IsShowTitleArrow=g_JSChartResource.IndexTitle.EnableIndexArrow; //是否显示指标信息上涨下跌箭头
14274
+ this.TitleArrowType=g_JSChartResource.IndexTitle.ArrowType; //指标信息上涨下跌箭头类型 0=独立颜色 1=跟指标名字颜色一致
14270
14275
  this.IsShowIndexName=true; //是否显示指标名字
14271
14276
  this.IsShowOverlayIndexName=true; //是否显示叠加指标名字
14272
14277
  //this.OverlayIndexType= { Position:0, LineSpace:5 };
@@ -50399,6 +50404,22 @@ IFrameSplitOperator.IsNumber=function(value)
50399
50404
  return typeof(value)=='number';
50400
50405
  }
50401
50406
 
50407
+ //批量判断是否是数值类型
50408
+ IFrameSplitOperator.IsNumberV2=function(...aryValue)
50409
+ {
50410
+ if (!aryValue) return false;
50411
+ if (aryValue.length==0) return false;
50412
+
50413
+ for(const value of aryValue)
50414
+ {
50415
+ if (value==null) return false;
50416
+ if (isNaN(value)) return false;
50417
+ if (typeof(value)!='number') return false;
50418
+ }
50419
+
50420
+ return true;
50421
+ }
50422
+
50402
50423
  //判断是否是正数
50403
50424
  IFrameSplitOperator.IsPlusNumber=function(value)
50404
50425
  {
@@ -53689,8 +53710,8 @@ function ChartCorssCursor()
53689
53710
  }
53690
53711
  }
53691
53712
 
53692
- //X轴 Bottom=10 使用第1个指标框位置
53693
- if ((this.ShowTextMode.Bottom==1 || this.ShowTextMode.Bottom==2 || this.ShowTextMode.Bottom==10) && this.StringFormatX.Operator())
53713
+ //X轴 Bottom==8 自定义
53714
+ if ((this.ShowTextMode.Bottom==1 || this.ShowTextMode.Bottom==2 || this.ShowTextMode.Bottom==8) && this.StringFormatX.Operator())
53694
53715
  {
53695
53716
  var text=this.StringFormatX.Text;
53696
53717
  this.Canvas.font=this.Font;
@@ -53699,49 +53720,53 @@ function ChartCorssCursor()
53699
53720
 
53700
53721
  var yCenter=bottom+2+this.TextHeight/2;
53701
53722
  var yTop=bottom+2;
53723
+ var bShowText=true;
53702
53724
  if (this.ShowTextMode.Bottom==2)
53703
53725
  {
53704
53726
  yCenter=bottom-this.TextHeight/2-2;
53705
53727
  yTop=bottom-this.TextHeight-2;
53706
53728
  }
53707
- else if (this.ShowTextMode.Bottom==10)
53729
+ else if (this.ShowTextMode.Bottom==8)
53708
53730
  {
53709
- var frame=this.Frame.SubFrame[0].Frame;
53710
- if (frame.GetCorssCursorTop)
53731
+ var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CUSTOM_CORSSCURSOR_POSITION);
53732
+ if (event && event.Callback)
53711
53733
  {
53712
- var value=frame.GetCorssCursorTop();
53713
- if (IFrameSplitOperator.IsNumber(value))
53714
- {
53715
- yCenter=value+this.TextHeight/2;
53716
- yTop=value;
53717
- }
53734
+ var sendData={ YCenter:yCenter, YTop:yTop, Height:this.TextHeight, IsShowText:bShowText };
53735
+ event.Callback(event, sendData, this);
53736
+
53737
+ yCenter=sendData.YCenter;
53738
+ yTop=sendData.YTop;
53739
+ bShowText=sendData.IsShowText;
53718
53740
  }
53719
53741
  }
53720
53742
 
53721
53743
  //JSConsole.Chart.Log('[ChartCorssCursor::Draw] ',yCenter);
53722
- if (x-textWidth/2<3) //左边位置不够了, 顶着左边画
53744
+ if (bShowText)
53723
53745
  {
53724
- this.DrawTextBGRect(x-1,yTop,textWidth,this.TextHeight);
53725
- this.Canvas.textAlign="left";
53726
- this.Canvas.textBaseline="middle";
53727
- this.Canvas.fillStyle=this.TextColor;
53728
- this.Canvas.fillText(text,x+1,yCenter,textWidth);
53729
- }
53730
- else if (x+textWidth/2>=right)
53731
- {
53732
- this.DrawTextBGRect(right-textWidth,yTop,textWidth,this.TextHeight);
53733
- this.Canvas.textAlign="right";
53734
- this.Canvas.textBaseline="middle";
53735
- this.Canvas.fillStyle=this.TextColor;
53736
- this.Canvas.fillText(text,right-2,yCenter,textWidth);
53737
- }
53738
- else
53739
- {
53740
- this.DrawTextBGRect(x-textWidth/2,yTop,textWidth,this.TextHeight);
53741
- this.Canvas.textAlign="center";
53742
- this.Canvas.textBaseline="middle";
53743
- this.Canvas.fillStyle=this.TextColor;
53744
- this.Canvas.fillText(text,x,yCenter,textWidth);
53746
+ if (x-textWidth/2<3) //左边位置不够了, 顶着左边画
53747
+ {
53748
+ this.DrawTextBGRect(x-1,yTop,textWidth,this.TextHeight);
53749
+ this.Canvas.textAlign="left";
53750
+ this.Canvas.textBaseline="middle";
53751
+ this.Canvas.fillStyle=this.TextColor;
53752
+ this.Canvas.fillText(text,x+1,yCenter,textWidth);
53753
+ }
53754
+ else if (x+textWidth/2>=right)
53755
+ {
53756
+ this.DrawTextBGRect(right-textWidth,yTop,textWidth,this.TextHeight);
53757
+ this.Canvas.textAlign="right";
53758
+ this.Canvas.textBaseline="middle";
53759
+ this.Canvas.fillStyle=this.TextColor;
53760
+ this.Canvas.fillText(text,right-2,yCenter,textWidth);
53761
+ }
53762
+ else
53763
+ {
53764
+ this.DrawTextBGRect(x-textWidth/2,yTop,textWidth,this.TextHeight);
53765
+ this.Canvas.textAlign="center";
53766
+ this.Canvas.textBaseline="middle";
53767
+ this.Canvas.fillStyle=this.TextColor;
53768
+ this.Canvas.fillText(text,x,yCenter,textWidth);
53769
+ }
53745
53770
  }
53746
53771
  }
53747
53772
 
@@ -54245,7 +54270,7 @@ function ChartCorssCursor()
54245
54270
  }
54246
54271
 
54247
54272
  //X轴 Bottom=10 使用第1个指标框位置
54248
- if ((this.ShowTextMode.Bottom===1 || this.ShowTextMode.Bottom==10) && this.StringFormatX.Operator())
54273
+ if ((this.ShowTextMode.Bottom===1 || this.ShowTextMode.Bottom==8) && this.StringFormatX.Operator())
54249
54274
  {
54250
54275
  var text=this.StringFormatX.Text;
54251
54276
  this.Canvas.font=this.Font;
@@ -54253,64 +54278,67 @@ function ChartCorssCursor()
54253
54278
  this.Canvas.fillStyle=this.TextBGColor;
54254
54279
  var textWidth=this.Canvas.measureText(text).width+4; //前后各空2个像素
54255
54280
  var xText=left;
54256
-
54257
- if (this.ShowTextMode.Bottom==10)
54281
+ var bShowText=true;
54282
+ if (this.ShowTextMode.Bottom==8)
54258
54283
  {
54259
- var frame=this.Frame.SubFrame[0].Frame;
54260
- if (frame.GetCorssCursorTop)
54284
+ var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CUSTOM_CORSSCURSOR_POSITION);
54285
+ if (event && event.Callback)
54261
54286
  {
54262
- var value=frame.GetCorssCursorTop();
54263
- if (IFrameSplitOperator.IsNumber(value))
54264
- {
54265
- xText=value;
54266
- }
54287
+ var sendData={ XText:xText, Height:this.TextHeight, IsShowText:bShowText };
54288
+ event.Callback(event, sendData, this);
54289
+
54290
+ xText=sendData.XText;
54291
+ bShowText=sendData.IsShowText;
54267
54292
  }
54268
54293
  }
54269
54294
 
54270
- if (y-textWidth/2<3) //左边位置不够了, 顶着左边画
54295
+ if (bShowText)
54271
54296
  {
54272
- var yText=y;
54273
- this.Canvas.save();
54274
- this.Canvas.translate(xText, yText);
54275
- this.Canvas.rotate(90 * Math.PI / 180); //数据和框子旋转180度
54297
+ if (y-textWidth/2<3) //左边位置不够了, 顶着左边画
54298
+ {
54299
+ var yText=y;
54300
+ this.Canvas.save();
54301
+ this.Canvas.translate(xText, yText);
54302
+ this.Canvas.rotate(90 * Math.PI / 180); //数据和框子旋转180度
54276
54303
 
54277
- this.Canvas.fillRect(0,0,textWidth,this.TextHeight);
54278
- this.Canvas.textAlign="left";
54279
- this.Canvas.textBaseline="middle";
54280
- this.Canvas.fillStyle=this.TextColor;
54281
- this.Canvas.fillText(text,2,this.TextHeight/2,textWidth);
54304
+ this.Canvas.fillRect(0,0,textWidth,this.TextHeight);
54305
+ this.Canvas.textAlign="left";
54306
+ this.Canvas.textBaseline="middle";
54307
+ this.Canvas.fillStyle=this.TextColor;
54308
+ this.Canvas.fillText(text,2,this.TextHeight/2,textWidth);
54282
54309
 
54283
- this.Canvas.restore();
54284
- }
54285
- else if (y+textWidth/2>=bottom)
54286
- {
54287
- var yText=y;
54288
- this.Canvas.save();
54289
- this.Canvas.translate(xText, yText);
54290
- this.Canvas.rotate(90 * Math.PI / 180); //数据和框子旋转180度
54310
+ this.Canvas.restore();
54311
+ }
54312
+ else if (y+textWidth/2>=bottom)
54313
+ {
54314
+ var yText=y;
54315
+ this.Canvas.save();
54316
+ this.Canvas.translate(xText, yText);
54317
+ this.Canvas.rotate(90 * Math.PI / 180); //数据和框子旋转180度
54291
54318
 
54292
- this.Canvas.fillRect(-textWidth,0,textWidth,this.TextHeight);
54293
- this.Canvas.textAlign="right";
54294
- this.Canvas.textBaseline="middle";
54295
- this.Canvas.fillStyle=this.TextColor;
54296
- this.Canvas.fillText(text,-2,this.TextHeight/2,textWidth);
54319
+ this.Canvas.fillRect(-textWidth,0,textWidth,this.TextHeight);
54320
+ this.Canvas.textAlign="right";
54321
+ this.Canvas.textBaseline="middle";
54322
+ this.Canvas.fillStyle=this.TextColor;
54323
+ this.Canvas.fillText(text,-2,this.TextHeight/2,textWidth);
54297
54324
 
54298
- this.Canvas.restore();
54299
- }
54300
- else
54301
- {
54302
- var yText=y;
54303
- this.Canvas.save();
54304
- this.Canvas.translate(xText, yText);
54305
- this.Canvas.rotate(90 * Math.PI / 180); //数据和框子旋转180度
54325
+ this.Canvas.restore();
54326
+ }
54327
+ else
54328
+ {
54329
+ var yText=y;
54330
+ this.Canvas.save();
54331
+ this.Canvas.translate(xText, yText);
54332
+ this.Canvas.rotate(90 * Math.PI / 180); //数据和框子旋转180度
54306
54333
 
54307
- this.Canvas.fillRect(-textWidth/2,0,textWidth,this.TextHeight);
54308
- this.Canvas.textAlign="center";
54309
- this.Canvas.textBaseline="middle";
54310
- this.Canvas.fillStyle=this.TextColor;
54311
- this.Canvas.fillText(text,0,this.TextHeight/2,textWidth);
54334
+ this.Canvas.fillRect(-textWidth/2,0,textWidth,this.TextHeight);
54335
+ this.Canvas.textAlign="center";
54336
+ this.Canvas.textBaseline="middle";
54337
+ this.Canvas.fillStyle=this.TextColor;
54338
+ this.Canvas.fillText(text,0,this.TextHeight/2,textWidth);
54312
54339
 
54313
- this.Canvas.restore();
54340
+ this.Canvas.restore();
54341
+ }
54314
54342
  }
54315
54343
  }
54316
54344
 
@@ -57279,9 +57307,11 @@ function DynamicChartTitlePainting()
57279
57307
  this.ColorIndex; //五彩K线名字 {Name:'名字'}
57280
57308
  this.IsShowColorIndexTitle=true;
57281
57309
  this.IsShowUpDownArrow=true; //指标数据是否显示 上涨下跌箭头
57310
+ this.TitleArrowType=0; //指标数据上涨下跌箭头类型 0=独立颜色 1=跟指标颜色一致
57282
57311
  this.IsShowIndexName=true; //是否显示指标名字
57283
57312
  this.IsShowIndexTitle=true; //是否显示指标标题信息
57284
57313
  this.IsShowNameArrow=false;
57314
+ this.NameArrowConfig=CloneData(g_JSChartResource.IndexTitle.NameArrow);
57285
57315
 
57286
57316
  this.TradeIndex; //专家系统名字{Name:'名字', Param:'参数'}
57287
57317
  this.IsShowTradeIndexTitle=true;
@@ -57750,6 +57780,7 @@ function DynamicChartTitlePainting()
57750
57780
  this.IsDrawTitleBG=this.Frame.IsDrawTitleBG;
57751
57781
  this.IsShowNameArrow=this.Frame.IsShowNameArrow;
57752
57782
  this.IsShowUpDownArrow=this.Frame.IsShowTitleArrow;
57783
+ this.TitleArrowType=this.Frame.TitleArrowType;
57753
57784
  this.IsShowIndexName=this.Frame.IsShowIndexName;
57754
57785
  this.IsShowOverlayIndexName=this.Frame.IsShowOverlayIndexName;
57755
57786
  this.OverlayIndexType.Position=this.Frame.OverlayIndexType.Position;
@@ -58034,6 +58065,8 @@ function DynamicChartTitlePainting()
58034
58065
  if (preValue>value) arrowSuper={ Text:'↓', TextColor:this.UpDownArrowConfig.DownColor };
58035
58066
  else if (preValue<value) arrowSuper={ Text:'↑', TextColor:this.UpDownArrowConfig.UpColor};
58036
58067
  else arrowSuper={ Text:'→', TextColor:this.UpDownArrowConfig.UnchangeColor };
58068
+
58069
+ if (this.TitleArrowType==1) arrowSuper.TextColor=item.Color;
58037
58070
  }
58038
58071
  }
58039
58072
 
@@ -58541,10 +58574,16 @@ function DynamicChartTitlePainting()
58541
58574
  if (this.IsDrawTitleBG)
58542
58575
  {
58543
58576
  var title=this.Title;
58544
- if (this.IsShowNameArrow) title+='▼';
58545
58577
  var textWidth=this.Canvas.measureText(title).width;
58578
+ var arrowWidth=0;
58579
+ if (this.IsShowNameArrow && this.NameArrowConfig)
58580
+ {
58581
+ arrowWidth=this.Canvas.measureText(this.NameArrowConfig.Symbol).width;
58582
+ if (IFrameSplitOperator.IsNumber(this.NameArrowConfig.Space)) arrowWidth+=this.NameArrowConfig.Space;
58583
+ }
58584
+
58546
58585
  var bgHeight=this.Canvas.measureText("擎").width+4*pixelRatio;
58547
- var bgWidth=textWidth+4*pixelRatio;
58586
+ var bgWidth=textWidth+arrowWidth+4*pixelRatio;
58548
58587
 
58549
58588
  this.TitleRect=
58550
58589
  {
@@ -58564,15 +58603,24 @@ function DynamicChartTitlePainting()
58564
58603
  this.Canvas.strokeRect(ToFixedPoint(drawRect.Left),ToFixedPoint(drawRect.Top),ToFixedRect(drawRect.Width),ToFixedRect(drawRect.Height));
58565
58604
  }
58566
58605
 
58606
+ var xText=left+2*pixelRatio;
58567
58607
  this.Canvas.fillStyle=this.TitleColor;
58568
- this.Canvas.fillText(title,left+2*pixelRatio,bottom,textWidth);
58608
+ this.Canvas.fillText(title,xText,bottom);
58609
+ xText+=textWidth;
58610
+ if (this.IsShowNameArrow && this.NameArrowConfig)
58611
+ {
58612
+ if (IFrameSplitOperator.IsNumber(this.NameArrowConfig.Space)) xText+=this.NameArrowConfig.Space;
58613
+ this.Canvas.fillStyle=this.NameArrowConfig.Color;
58614
+ this.Canvas.fillText(this.NameArrowConfig.Symbol,xText,bottom);
58615
+ }
58616
+
58569
58617
  left+=bgWidth+2*pixelRatio;
58570
58618
  left+=this.TitleSpace;
58571
58619
  }
58572
58620
  else
58573
58621
  {
58574
58622
  this.Canvas.fillStyle=this.TitleColor;
58575
- this.Canvas.fillText(this.Title,left,bottom,textWidth);
58623
+ this.Canvas.fillText(this.Title,left,bottom);
58576
58624
  left+=textWidth;
58577
58625
  left+=this.TitleSpace;
58578
58626
  }
@@ -58685,11 +58733,17 @@ function DynamicChartTitlePainting()
58685
58733
  {
58686
58734
  var pixelRatio=GetDevicePixelRatio();
58687
58735
  var title=this.Title;
58688
- if (this.IsShowNameArrow) title+='▼';
58689
58736
  var textWidth=this.Canvas.measureText(title).width;
58737
+ var arrowWidth=0;
58738
+ if (this.IsShowNameArrow && this.NameArrowConfig)
58739
+ {
58740
+ arrowWidth=this.Canvas.measureText(this.NameArrowConfig.Symbol).width;
58741
+ if (IFrameSplitOperator.IsNumber(this.NameArrowConfig.Space)) arrowWidth+=this.NameArrowConfig.Space;
58742
+ }
58743
+
58690
58744
  var bgHeight=this.Canvas.measureText("擎").width+4*pixelRatio;
58691
58745
  var roundRadius=this.BorderRoundRadius*pixelRatio;
58692
- var bgWidth=textWidth+4*pixelRatio+roundRadius*2;
58746
+ var bgWidth=textWidth+arrowWidth+4*pixelRatio+roundRadius*2;
58693
58747
 
58694
58748
  rtButton.Top=rtButton.YCenter-bgHeight/2-1,
58695
58749
  rtButton.Width=bgWidth;
@@ -58735,8 +58789,16 @@ function DynamicChartTitlePainting()
58735
58789
  }
58736
58790
  }
58737
58791
 
58792
+ var xText=rtButton.Left+roundRadius+2*pixelRatio;
58738
58793
  this.Canvas.fillStyle=this.TitleColor;
58739
- this.Canvas.fillText(title,rtButton.Left+roundRadius+2*pixelRatio,rtButton.YCenter,textWidth);
58794
+ this.Canvas.fillText(title,xText,rtButton.YCenter);
58795
+ xText+=textWidth;
58796
+ if (this.IsShowNameArrow && this.NameArrowConfig)
58797
+ {
58798
+ if (IFrameSplitOperator.IsNumber(this.NameArrowConfig.Space)) xText+=this.NameArrowConfig.Space;
58799
+ this.Canvas.fillStyle=this.NameArrowConfig.Color;
58800
+ this.Canvas.fillText(this.NameArrowConfig.Symbol,xText,rtButton.YCenter);
58801
+ }
58740
58802
  }
58741
58803
 
58742
58804
  //绘制按钮
@@ -70759,7 +70821,12 @@ function JSChartResource()
70759
70821
  UpColor:"rgb(238,21,21)", //上涨
70760
70822
  DownColor:"rgb(25,158,0)", //下跌
70761
70823
  UnchangeColor:"rgb(0,0,0)" //不变
70762
- }
70824
+ },
70825
+
70826
+ ArrowType:0,
70827
+ EnableIndexArrow:true, //指标数值是否带上涨下跌箭头
70828
+
70829
+ NameArrow:{ Color:"rgb(43,54,69)", Space:2, Symbol:'▼' },
70763
70830
  }
70764
70831
 
70765
70832
  this.Title={
@@ -72057,6 +72124,17 @@ function JSChartResource()
72057
72124
  if (subItem.DownColor) this.IndexTitle.UpDownArrow.DownColor = subItem.DownColor;
72058
72125
  if (subItem.UnchangeColor) this.IndexTitle.UpDownArrow.UnchangeColor = subItem.UnchangeColor;
72059
72126
  }
72127
+
72128
+ if (IFrameSplitOperator.IsNumber(item.ArrowType)) this.IndexTitle.ArrowType=item.ArrowType;
72129
+ if (IFrameSplitOperator.IsBool(item.EnableIndexArrow)) this.IndexTitle.EnableIndexArrow=item.EnableIndexArrow;
72130
+
72131
+ if (item.NameArrow)
72132
+ {
72133
+ var subItem=item.NameArrow;
72134
+ if (subItem.Color) this.IndexTitle.NameArrow.Color = subItem.Color;
72135
+ if (subItem.Symbol) this.IndexTitle.NameArrow.Symbol = subItem.Symbol;
72136
+ if (IFrameSplitOperator.IsNumber(subItem.Space)) this.IndexTitle.NameArrow.Space = subItem.Space;
72137
+ }
72060
72138
  }
72061
72139
 
72062
72140
  if (style.Frame)
@@ -74832,6 +74910,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
74832
74910
  this.ChartCorssCursor.StringFormatY.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
74833
74911
  this.ChartCorssCursor.StringFormatY.LanguageID=this.LanguageID;
74834
74912
  this.ChartCorssCursor.StringFormatY.ExtendChartPaint=this.ExtendChartPaint;
74913
+ this.ChartCorssCursor.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
74835
74914
 
74836
74915
  //创建等待提示
74837
74916
  this.ChartSplashPaint = new ChartSplashPaint();
@@ -78028,7 +78107,8 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
78028
78107
 
78029
78108
  if (IFrameSplitOperator.IsNumber(item.TitleHeight)) this.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;
78030
78109
  else item.TitleHeight=this.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight;
78031
- if (IFrameSplitOperator.IsBool(item.IsShowTitleArrow)) this.Frame.SubFrame[i].Frame.IsShowTitleArrow=item.IsShowTitleArrow;
78110
+ if (IFrameSplitOperator.IsBool(item.IsShowTitleArrow)) subFrame.Frame.IsShowTitleArrow=item.IsShowTitleArrow;
78111
+ if (IFrameSplitOperator.IsNumber(item.TitleArrowType)) subFrame.Frame.TitleArrowType=item.TitleArrowType;
78032
78112
  if (item.IsShowIndexName==false) this.Frame.SubFrame[i].Frame.IsShowIndexName=false;
78033
78113
  if (item.IsShowOverlayIndexName==false) this.Frame.SubFrame[i].Frame.IsShowOverlayIndexName=false;
78034
78114
  if (IFrameSplitOperator.IsNumber(item.IndexParamSpace)) this.Frame.SubFrame[i].Frame.IndexParamSpace=item.IndexParamSpace;
@@ -83438,6 +83518,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
83438
83518
  this.ChartCorssCursor.StringFormatY.LanguageID=this.LanguageID;
83439
83519
  this.ChartCorssCursor.StringFormatY.ShareAfterVol=this.ShareAfterVol;
83440
83520
  this.ChartCorssCursor.CallAcutionXOperator=new CallAcutionXOperator();
83521
+ this.ChartCorssCursor.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
83441
83522
 
83442
83523
 
83443
83524
  //创建等待提示
@@ -89047,6 +89128,7 @@ function KLineChartHScreenContainer(uielement)
89047
89128
  this.ChartCorssCursor.StringFormatY=g_DivTooltipDataForamt.Create("CorssCursor_YStringFormat");
89048
89129
  this.ChartCorssCursor.StringFormatY.LanguageID=this.LanguageID;
89049
89130
  this.ChartCorssCursor.StringFormatY.ExtendChartPaint=this.ExtendChartPaint;
89131
+ this.ChartCorssCursor.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
89050
89132
 
89051
89133
  //创建等待提示
89052
89134
  this.ChartSplashPaint = new ChartSplashPaint();
@@ -89192,6 +89274,7 @@ function MinuteChartHScreenContainer(uielement)
89192
89274
  this.ChartCorssCursor.StringFormatY=g_DivTooltipDataForamt.Create("CorssCursor_YStringFormat");
89193
89275
  this.ChartCorssCursor.StringFormatY.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
89194
89276
  this.ChartCorssCursor.CallAcutionXOperator=new CallAcutionXOperator();
89277
+ this.ChartCorssCursor.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
89195
89278
 
89196
89279
  //创建等待提示
89197
89280
  this.ChartSplashPaint = new ChartSplashPaint();
@@ -123798,7 +123881,9 @@ function GetBlackStyle()
123798
123881
  UpColor:"rgb(238,21,21)", //上涨
123799
123882
  DownColor:"rgb(25,158,0)", //下跌
123800
123883
  UnchangeColor:"rgb(190, 190 ,190)" //不变
123801
- }
123884
+ },
123885
+
123886
+ NameArrow:{ Color:"rgb(190, 190 ,190)", Space:2, Symbol:'▼' },
123802
123887
  },
123803
123888
 
123804
123889
  Title:
@@ -141054,7 +141139,7 @@ function HQChartScriptWorker()
141054
141139
 
141055
141140
 
141056
141141
 
141057
- var HQCHART_VERSION="1.1.13605";
141142
+ var HQCHART_VERSION="1.1.13622";
141058
141143
 
141059
141144
  function PrintHQChartVersion()
141060
141145
  {