hqchart 1.1.14498 → 1.1.14506

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.14498",
3
+ "version": "1.1.14506",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -57437,6 +57437,8 @@ HQData.Report_APIIndex=function(data, callback)
57437
57437
  HQData.APIIndex_CHANNEL_V2(data, callback);
57438
57438
  else if (request.Data.indexname=="API_DRAWKLINE")
57439
57439
  HQData.APIIndex_DRAWKLINE(data, callback);
57440
+ else if (request.Data.indexname=="API_TITLE")
57441
+ HQData.APIIndex_TITLE(data, callback);
57440
57442
  }
57441
57443
 
57442
57444
 
@@ -58147,7 +58149,7 @@ HQData.APIIndex_MULTI_BAR=function(data, callback)
58147
58149
  [
58148
58150
  //{Date:20190916, Time: Value:15.5, Value2:0 },
58149
58151
  ],
58150
- Width:10
58152
+ //Width:10
58151
58153
  };
58152
58154
 
58153
58155
  var point2=
@@ -58160,19 +58162,22 @@ HQData.APIIndex_MULTI_BAR=function(data, callback)
58160
58162
  [
58161
58163
  //{Date:20190916, Time: Value:15.5, Value2:0 },
58162
58164
  ],
58163
- Width:10
58165
+ //Width:10
58164
58166
  };
58165
58167
 
58166
58168
  for(var i=0;i<kData.Data.length;++i)
58167
58169
  {
58168
58170
  var item=kData.Data[i];
58169
- point.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2, Value2:item.High});
58170
- point2.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2, Value2:item.Low});
58171
+ ///point.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2, Value2:item.High});
58172
+ ///point2.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2, Value2:item.Low});
58173
+
58174
+ point.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2+HQData.GetRandomTestData(2,10), Value2:item.High});
58175
+ point2.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2-HQData.GetRandomTestData(2,10), Value2:item.Low});
58171
58176
  }
58172
58177
 
58173
58178
 
58174
58179
 
58175
- //barData.Draw.DrawData.push(point);
58180
+ barData.Draw.DrawData.push(point);
58176
58181
  barData.Draw.DrawData.push(point2);
58177
58182
 
58178
58183
  var apiData=
@@ -58354,9 +58359,6 @@ HQData.APIIndex_DRAWKLINE=function(data, callback)
58354
58359
  IsShowTitle:true,
58355
58360
  };
58356
58361
 
58357
-
58358
- var textData={ name:"", type:10, color:"rgb(148,0,211)", data:[], isshow:false }; //名字
58359
-
58360
58362
  var aryDate=[];
58361
58363
  var aryTime=[];
58362
58364
  for(var i=100;i<kData.Data.length-100;++i)
@@ -58378,15 +58380,13 @@ HQData.APIIndex_DRAWKLINE=function(data, callback)
58378
58380
 
58379
58381
  aryDate.push(kItem.Date);
58380
58382
  aryTime.push(kItem.Time);
58381
-
58382
- textData.data.push(kItem.YClose.toFixed(2));
58383
58383
  }
58384
58384
 
58385
58385
  var apiData=
58386
58386
  {
58387
58387
  code:0,
58388
58388
  stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
58389
- outdata: { date:aryDate, time:aryTime, outvar:[textData, klineData] }
58389
+ outdata: { date:aryDate, time:aryTime, outvar:[ klineData] }
58390
58390
  };
58391
58391
 
58392
58392
  console.log('[HQData.APIIndex_DRAWKLINE] apiData ', apiData);
@@ -58394,3 +58394,45 @@ HQData.APIIndex_DRAWKLINE=function(data, callback)
58394
58394
  }
58395
58395
 
58396
58396
 
58397
+ HQData.APIIndex_TITLE=function(data, callback)
58398
+ {
58399
+ data.PreventDefault=true;
58400
+ var hqchart=data.HQChart;
58401
+ var kData=hqchart.GetKData();
58402
+
58403
+ var textData={ name:"标题", type:10, color:"rgb(0,128,128)", data:[], }; //名字
58404
+ var closeData={ name:"收盘价", type:0, color:"rgb(255,165,0)", data:[] } ; //
58405
+
58406
+ var aryDate=[];
58407
+ var aryTime=[];
58408
+ for(var i=0;i<kData.Data.length-30;++i)
58409
+ {
58410
+ var kItem=kData.Data[i];
58411
+
58412
+ closeData.data.push(kItem.Close);
58413
+
58414
+ textData.data.push(
58415
+ [
58416
+ { Name:`收`, Text:`${kItem.Close.toFixed(2)}`, Color:"rgb(200,10,10)",},
58417
+ { Name:`开`, Text:`${kItem.Open.toFixed(2)}`, Color:"rgb(0,200,10)", LeftSpace:2 }
58418
+ ]);
58419
+
58420
+ //textData.data.push(`价格:${kItem.Close.toFixed(2)}`);
58421
+
58422
+ aryDate.push(kItem.Date);
58423
+ aryTime.push(kItem.Time);
58424
+ }
58425
+
58426
+
58427
+ var apiData=
58428
+ {
58429
+ code:0,
58430
+ stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
58431
+ outdata: { date:aryDate, time:aryTime, outvar:[ textData, closeData] }
58432
+ };
58433
+
58434
+ console.log('[HQData.APIIndex_TITLE] apiData ', apiData);
58435
+ callback(apiData);
58436
+ }
58437
+
58438
+
@@ -23021,6 +23021,12 @@ function OverlayScriptIndex(name,script,args,option)
23021
23021
  {
23022
23022
  this.CreateLine(hqChart,windowIndex,item,i, item.Type);
23023
23023
  }
23024
+ else if (item.Type==10)
23025
+ {
23026
+ this.CreateTitle(hqChart,windowIndex,item,i);
23027
+ }
23028
+
23029
+
23024
23030
 
23025
23031
  var titleData=titleInfo.Data[i];
23026
23032
  if (titleData)
@@ -23588,6 +23594,7 @@ function OverlayScriptIndex(name,script,args,option)
23588
23594
  chart.Name=varItem.Name;
23589
23595
  chart.ChartBorder=frame.Frame.ChartBorder;
23590
23596
  chart.ChartFrame=frame.Frame;
23597
+ chart.Identify=overlayIndex.Identify;
23591
23598
  if (varItem.Draw && varItem.Draw.DrawData)
23592
23599
  {
23593
23600
  var drawData=varItem.Draw.DrawData;
@@ -23599,6 +23606,32 @@ function OverlayScriptIndex(name,script,args,option)
23599
23606
  frame.ChartPaint.push(chart);
23600
23607
  }
23601
23608
 
23609
+ this.CreateTitle=function(hqChart,windowIndex,varItem,id)
23610
+ {
23611
+ var overlayIndex=this.OverlayIndex;
23612
+ var frame=overlayIndex.Frame;
23613
+ let chart=new ChartIndexTitle();
23614
+ chart.Canvas=hqChart.Canvas;
23615
+
23616
+ chart.Name=varItem.Name;
23617
+ chart.ChartBorder=frame.Frame.ChartBorder;
23618
+ chart.ChartFrame=frame.Frame;
23619
+ chart.Identify=overlayIndex.Identify;
23620
+
23621
+ if (varItem.Color) chart.Color=this.GetColor(varItem.Color);
23622
+ else chart.Color=this.GetDefaultColor(id);
23623
+ chart.Data.Data=varItem.Data;
23624
+
23625
+ var titleIndex=windowIndex+1;
23626
+ var titlePaint=hqChart.TitlePaint[titleIndex];
23627
+ var titleData=new DynamicTitleData(chart.Data,chart.Name,chart.Color);
23628
+ titleData.DataType="ChartIndexTitle";
23629
+ titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;
23630
+
23631
+ this.SetChartIndexName(chart);
23632
+ frame.ChartPaint.push(chart);
23633
+ }
23634
+
23602
23635
  this.CreateStackedBar=function(hqChart,windowIndex,varItem,id)
23603
23636
  {
23604
23637
  var overlayIndex=this.OverlayIndex;
@@ -4246,6 +4246,10 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
4246
4246
  drag.LastMove.X=e.clientX;
4247
4247
  drag.LastMove.Y=e.clientY;
4248
4248
  }
4249
+ else if (drag.Click && drag.Click.IsInFrameBottom)
4250
+ {
4251
+ this.OnDragXCoordinateZoom(drag, {X:moveSetp, Y:moveSetpY}, e);
4252
+ }
4249
4253
  else if ((bLButtonSelectRect || bRButtonSelectRect) && !isDragSelectRect && !isDragSubSelectRect) //左右键区间选择
4250
4254
  {
4251
4255
  var yMoveSetp=Math.abs(drag.LastMove.Y-e.clientY);
@@ -4267,6 +4271,38 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
4267
4271
  }
4268
4272
  }
4269
4273
 
4274
+ this.OnDragXCoordinateZoom=function(drag, moveData, e)
4275
+ {
4276
+ var moveSetp=moveData.X;
4277
+ var moveSetpY=moveData.Y;
4278
+ if (moveSetp<5) return;
4279
+
4280
+ var isLeft=true;
4281
+ if (drag.LastMove.X<e.clientX) isLeft=false;//右移数据
4282
+
4283
+ var cursorStatus="ew-resize";
4284
+
4285
+ var oneStepWidth=this.GetMoveOneStepWidth();
4286
+ if (moveSetp<oneStepWidth)
4287
+ {
4288
+ this.SetCursor({Cursor:cursorStatus});
4289
+ return;
4290
+ }
4291
+
4292
+ if (this.XCoordinateZoom(moveSetp,isLeft))
4293
+ {
4294
+ this.UpdataDataoffset();
4295
+ this.UpdateFrameMaxMin();
4296
+ this.ResetFrameXYSplit();
4297
+
4298
+ this.Draw();
4299
+ this.OnKLinePageChange("datamove");
4300
+ }
4301
+
4302
+ drag.LastMove.X=e.clientX;
4303
+ this.SetCursor({Cursor:cursorStatus});
4304
+ }
4305
+
4270
4306
  this.OnDragMode_One=function(moveData, e)
4271
4307
  {
4272
4308
  var moveSetp=moveData.X;
@@ -4327,7 +4363,6 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
4327
4363
  if (drag.LastMove.X<e.clientX) isLeft=false;//右移数据
4328
4364
 
4329
4365
  var cursorStatus="pointer";
4330
- if (drag.Click.IsInFrameBottom) cursorStatus="ew-resize";
4331
4366
  var oneStepWidth=this.GetMoveOneStepWidth();
4332
4367
  if (moveSetp<oneStepWidth)
4333
4368
  {
@@ -4338,18 +4373,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
4338
4373
  }
4339
4374
  else
4340
4375
  {
4341
- if (drag.Click && drag.Click.IsInFrameBottom)
4342
- {
4343
-
4344
- if (this.XCoordinateZoom(moveSetp,isLeft))
4345
- {
4346
- this.UpdataDataoffset();
4347
- this.UpdateFrameMaxMin();
4348
- this.ResetFrameXYSplit();
4349
- bNeedDraw=true;
4350
- }
4351
- }
4352
- else if(this.DataMove(moveSetp,isLeft))
4376
+ if(this.DataMove(moveSetp,isLeft))
4353
4377
  {
4354
4378
  this.UpdataDataoffset();
4355
4379
  //this.UpdatePointByCursorIndex(); //推拽数据的时候不需要把鼠标位置更新到K线上
@@ -4474,9 +4498,9 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
4474
4498
  }
4475
4499
  else if (IsMinuteChart)
4476
4500
  {
4477
- if (this.OnMinuteSelectRectMouseUp) this.OnMinuteSelectRectMouseUp(e);
4501
+ if (this.OnMinuteSelectRectMouseUp) this.OnMinuteSelectRectMouseUp(e); //分时图区间选择
4478
4502
  }
4479
- else if (bLButtonSelectRect || bRButtonSelectRect) //区间选择
4503
+ else if (bLButtonSelectRect || bRButtonSelectRect) //K线图区间选择
4480
4504
  {
4481
4505
  var drag=this.MouseDrag;
4482
4506
  drag.LastMove.X=e.clientX;
@@ -4491,49 +4515,12 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
4491
4515
  selectData.YEnd=(drag.LastMove.Y-uielement.getBoundingClientRect().top)*pixelTatio;
4492
4516
  selectData.JSChartContainer=this;
4493
4517
  selectData.Stock={Symbol:this.Symbol, Name:this.Name};
4518
+ selectData.IsLButton=bLButtonSelectRect;
4519
+ selectData.IsRButton=bRButtonSelectRect;
4494
4520
 
4495
4521
  if (!this.BorderDrag && this.GetSelectRectData(selectData))
4496
4522
  {
4497
- var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_SELECT_RECT);
4498
- var paint=this.GetRectSelectPaint();
4499
- var isShowMenu=true;
4500
- if (event && event.Callback)
4501
- {
4502
- var data=
4503
- {
4504
- X:drag.LastMove.X-uielement.getBoundingClientRect().left,
4505
- Y:drag.LastMove.Y-uielement.getBoundingClientRect().top,
4506
- SelectData:selectData, //区间选择的数据
4507
- RectSelectPaint:paint, //区间选择背景
4508
- IsShowMenu:true,
4509
- e,e
4510
- };
4511
- event.Callback(event,data,this);
4512
- isShowMenu=data.IsShowMenu;
4513
- }
4514
-
4515
- if (IsMinuteChart) //分时图直接显示显示区间选择
4516
- {
4517
- this.HideSelectRect();
4518
- this.UpdateSelectRect(selectData.Start,selectData.End);
4519
- }
4520
- else
4521
- {
4522
- if (isShowMenu)
4523
- {
4524
- var data=
4525
- {
4526
- Chart:this,
4527
- X:drag.LastMove.X-uielement.getBoundingClientRect().left,
4528
- Y:drag.LastMove.Y-uielement.getBoundingClientRect().top,
4529
- SelectData:selectData, //区间选择的数据
4530
- RectSelectPaint:paint //区间选择背景
4531
- };
4532
-
4533
- e.data=data;
4534
- this.PopupSelectRectMenuV2(data, e);
4535
- }
4536
- }
4523
+ this.FinishSelectRect(selectData, e);
4537
4524
  }
4538
4525
  else
4539
4526
  {
@@ -4573,6 +4560,92 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
4573
4560
  this.ClearDocContextMenuTimer(5000);
4574
4561
  }
4575
4562
 
4563
+ //区间选择完成
4564
+ this.FinishSelectRect=function(selectData, e)
4565
+ {
4566
+ var bMinuteChart=this.IsMinuteContainer();
4567
+ var drag=this.MouseDrag;
4568
+ var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_SELECT_RECT);
4569
+ var paint=this.GetRectSelectPaint();
4570
+
4571
+ var x=drag.LastMove.X-uielement.getBoundingClientRect().left;
4572
+ var y=drag.LastMove.Y-uielement.getBoundingClientRect().top;
4573
+
4574
+ if (e) //往事件里面 写如我们的数据
4575
+ {
4576
+ var data=
4577
+ {
4578
+ Chart:this, X:x,Y:y,
4579
+ SelectData:selectData, //区间选择的数据
4580
+ RectSelectPaint:paint, //区间选择背景
4581
+ IsLButton:selectData.IsLButton, IsRButton:selectData.IsRButton,
4582
+ };
4583
+
4584
+ e.data=data;
4585
+ }
4586
+
4587
+ var aryMenu=null, command=null;
4588
+ if (bMinuteChart) //分时图 默认区间统计
4589
+ {
4590
+ command={ ID:JSCHART_MENU_ID.CMD_SELECTED_SUMMARY_ID, Args:[e,selectData] };
4591
+ }
4592
+ else //K线默认 区间选择K线
4593
+ {
4594
+ aryMenu=
4595
+ [
4596
+ { Name:"区间统计", Data:{ ID:JSCHART_MENU_ID.CMD_SELECTED_SUMMARY_ID, Args:[e,selectData] }},
4597
+ { Name:"区间放大", Data:{ ID:JSCHART_MENU_ID.CMD_SELECTED_ZOOM_ID, Args:[selectData] }}
4598
+ ];
4599
+ }
4600
+
4601
+ if (event && event.Callback)
4602
+
4603
+ var sendData=
4604
+ {
4605
+ X:x, Y:y, e:e,
4606
+ SelectData:selectData, //区间选择的数据
4607
+ RectSelectPaint:paint, //区间选择背景
4608
+ AryMenu:aryMenu, //菜单 填null 不就会弹菜单
4609
+ Command:command, //执行命令
4610
+ IsLButton:selectData.IsLButton, IsRButton:selectData.IsRButton,
4611
+ PreventDefault:false,
4612
+ };
4613
+ if (bMinuteChart) sendData.Command=null; //分时图 调用事件 不做任何事
4614
+
4615
+ event.Callback(event,sendData,this);
4616
+
4617
+ if (sendData.PreventDefault==true) return; //已被上层替换,不调用默认的网络请求
4618
+
4619
+ aryMenu=sendData.AryMenu;
4620
+ command=sendData.Command;
4621
+
4622
+
4623
+ if (aryMenu) //弹菜单
4624
+ {
4625
+ this.PopupSelectRectMenuV3(aryMenu, data, e);
4626
+ return;
4627
+ }
4628
+
4629
+ if (command) //执行命令
4630
+ {
4631
+ this.ExecuteMenuCommand(command.ID, command.Args);
4632
+ return;
4633
+ }
4634
+
4635
+ this.HideSelectRect();
4636
+ this.UpdateSelectRect(selectData.Start,selectData.End);
4637
+ }
4638
+
4639
+ this.PopupSelectRectMenuV3=function(aryMenu, data, e)
4640
+ {
4641
+ if (!aryMenu) return;
4642
+
4643
+ var menuData={ Menu:aryMenu, Position:JSPopMenu.POSITION_ID.RIGHT_MENU_ID };
4644
+ menuData.ClickCallback=(data)=>{ this.OnClickRightMenu(data); }
4645
+ var x=data.X, y=data.Y;
4646
+ this.PopupMenuByRClick(menuData, x, y);
4647
+ }
4648
+
4576
4649
  this.DocContextMenu=function(e)
4577
4650
  {
4578
4651
  e.preventDefault();
@@ -25013,12 +25086,12 @@ function IChartPainting()
25013
25086
  if (valueType==1) //K线收盘价
25014
25087
  {
25015
25088
  var kItem=this.Data.Data[i];
25016
- if (IFrameSplitOperator.IsNumber(kItem.Close)) value=kItem.Close
25089
+ if (kItem && IFrameSplitOperator.IsNumber(kItem.Close)) value=kItem.Close
25017
25090
  }
25018
25091
  else if (valueType==2)
25019
25092
  {
25020
25093
  var kItem=this.Data.Data[i];
25021
- if (IFrameSplitOperator.IsNumber(kItem.Vol)) value=kItem.Vol
25094
+ if (kItem && IFrameSplitOperator.IsNumber(kItem.Vol)) value=kItem.Vol
25022
25095
  }
25023
25096
  else if (valueType==3)
25024
25097
  {
@@ -58163,7 +58236,7 @@ function DynamicChartTitlePainting()
58163
58236
  return aryText;
58164
58237
  }
58165
58238
 
58166
- this.FromatKLineTitle=function(item, dataInfo)
58239
+ this.FormatKLineTitle=function(item, dataInfo)
58167
58240
  {
58168
58241
  var defaultfloatPrecision=GetfloatPrecision(dataInfo.Symbol);//价格小数位数
58169
58242
  var upperSymbol="";
@@ -58241,6 +58314,35 @@ function DynamicChartTitlePainting()
58241
58314
  return aryText;
58242
58315
  }
58243
58316
 
58317
+ this.FormatIndexTitle=function(value, dataInfo)
58318
+ {
58319
+ if (!value) return null;
58320
+
58321
+ if (IFrameSplitOperator.IsString(value)) return { Text:value, ArrayText:null };
58322
+
58323
+ if (IFrameSplitOperator.IsNonEmptyArray(value))
58324
+ {
58325
+ var aryText=[];
58326
+ for(var i=0;i<value.length;++i)
58327
+ {
58328
+ var item=value[i];
58329
+ if (!item) continue;
58330
+
58331
+ var textItem={ Name:null, Text:null };
58332
+ if (item.Name) textItem.Name=item.Name;
58333
+ if (item.Text) textItem.Text=item.Text;
58334
+ if (item.Color) textItem.Color=item.Color;
58335
+ if (IFrameSplitOperator.IsNumber(item.LeftSpace)) textItem.LeftSpace=item.LeftSpace;
58336
+
58337
+ aryText.push(textItem);
58338
+ }
58339
+
58340
+ return { Text:null, ArrayText:aryText }
58341
+ }
58342
+
58343
+ return null;
58344
+ }
58345
+
58244
58346
  this.GetColor=function(price,yClose)
58245
58347
  {
58246
58348
  if (!IFrameSplitOperator.IsNumber(yClose)) return this.UnchangeColor;
@@ -58738,15 +58840,14 @@ function DynamicChartTitlePainting()
58738
58840
  }
58739
58841
  else if (item.DataType=="DRAWKLINE")
58740
58842
  {
58741
- aryText=this.FromatKLineTitle(value, item);
58843
+ aryText=this.FormatKLineTitle(value, item);
58742
58844
  if (!aryText) return null;
58743
58845
  return { Text:null, ArrayText:aryText };
58744
58846
  }
58745
58847
  else if (item.DataType=="ChartIndexTitle")
58746
58848
  {
58747
- var text=item.Data.Data[dataIndex];
58748
- if (!IFrameSplitOperator.IsString(text)) return null;
58749
- return { Text:text, ArrayText:null };
58849
+ var outTitle=this.FormatIndexTitle(value, item);
58850
+ return outTitle;
58750
58851
  }
58751
58852
  else if (g_ScriptIndexChartFactory.Has(item.DataType)) //外部挂接
58752
58853
  {
@@ -59140,9 +59241,17 @@ function DynamicChartTitlePainting()
59140
59241
  }
59141
59242
  else if (item.DataType=="DRAWKLINE")
59142
59243
  {
59143
- aryText=this.FromatKLineTitle(value, item);
59244
+ aryText=this.FormatKLineTitle(value, item);
59144
59245
  if (!aryText) continue;
59145
59246
  }
59247
+ else if (item.DataType=="ChartIndexTitle")
59248
+ {
59249
+ var outTitle=this.FormatIndexTitle(value, item);
59250
+ if (!outTitle) continue;
59251
+
59252
+ valueText=outTitle.Text;
59253
+ aryText=outTitle.ArrayText;
59254
+ }
59146
59255
  else
59147
59256
  {
59148
59257
  valueText=this.FormatValue(value,item);
@@ -59160,6 +59269,8 @@ function DynamicChartTitlePainting()
59160
59269
  var textWidth=this.Canvas.measureText(text).width+2; //后空2个像素
59161
59270
  if ((x+textWidth)>right) break;
59162
59271
 
59272
+ if (IFrameSplitOperator.IsNumber(titleItem.LeftSpace)) x+=titleItem.LeftSpace*pixelRatio;
59273
+
59163
59274
  if (this.OverlayIndexType.BGColor)
59164
59275
  {
59165
59276
  this.Canvas.fillStyle=this.OverlayIndexType.BGColor;
@@ -76604,8 +76715,21 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
76604
76715
  x+=(rtClient.left+rtScroll.Left);
76605
76716
  y+=(rtClient.top+rtScroll.Top);
76606
76717
 
76607
- var date=data.Tooltip.Data.Date;
76608
- var symbol=data.Chart.Symbol;
76718
+ var item=data.Tooltip.Data;
76719
+ var date=item.Date;
76720
+ var symbol=null;
76721
+
76722
+ if (data.Tooltip.ChartPaint && data.Tooltip.ChartPaint.Name=="DRAWKLINE")
76723
+ {
76724
+ if (item.Symbol) symbol=item.Symbol;
76725
+ else if (data.Tooltip.Symbol) symbol=data.Tooltip.Symbol;
76726
+ }
76727
+ else
76728
+ {
76729
+ symbol=data.Chart.Symbol;
76730
+ }
76731
+
76732
+ if (!symbol) return;
76609
76733
 
76610
76734
  this.PopMinuteChart.Show({ Date:date, Symbol:symbol, Data:data.Tooltip.Data }, x/pixelRatio,y/pixelRatio);
76611
76735
  }
@@ -84170,6 +84294,9 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
84170
84294
  }
84171
84295
  else if ((bRButtonSelectRect || bLButtonSelectRect) && !this.BorderDrag && this.GetSelectRectData(selectData))
84172
84296
  {
84297
+ this.FinishSelectRect(selectData, e);
84298
+
84299
+ /*
84173
84300
  var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_SELECT_RECT);
84174
84301
  var paint=this.GetRectSelectPaint();
84175
84302
  var isShowDialog=true; //是否显示内置区间选择框
@@ -84207,6 +84334,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
84207
84334
  this.HideSelectRect();
84208
84335
  this.UpdateSelectRect(selectData.Start,selectData.End);
84209
84336
  }
84337
+ */
84210
84338
  }
84211
84339
  else
84212
84340
  {
@@ -1923,6 +1923,8 @@ HQData.Report_APIIndex=function(data, callback)
1923
1923
  HQData.APIIndex_CHANNEL_V2(data, callback);
1924
1924
  else if (request.Data.indexname=="API_DRAWKLINE")
1925
1925
  HQData.APIIndex_DRAWKLINE(data, callback);
1926
+ else if (request.Data.indexname=="API_TITLE")
1927
+ HQData.APIIndex_TITLE(data, callback);
1926
1928
  }
1927
1929
 
1928
1930
 
@@ -2633,7 +2635,7 @@ HQData.APIIndex_MULTI_BAR=function(data, callback)
2633
2635
  [
2634
2636
  //{Date:20190916, Time: Value:15.5, Value2:0 },
2635
2637
  ],
2636
- Width:10
2638
+ //Width:10
2637
2639
  };
2638
2640
 
2639
2641
  var point2=
@@ -2646,19 +2648,22 @@ HQData.APIIndex_MULTI_BAR=function(data, callback)
2646
2648
  [
2647
2649
  //{Date:20190916, Time: Value:15.5, Value2:0 },
2648
2650
  ],
2649
- Width:10
2651
+ //Width:10
2650
2652
  };
2651
2653
 
2652
2654
  for(var i=0;i<kData.Data.length;++i)
2653
2655
  {
2654
2656
  var item=kData.Data[i];
2655
- point.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2, Value2:item.High});
2656
- point2.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2, Value2:item.Low});
2657
+ ///point.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2, Value2:item.High});
2658
+ ///point2.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2, Value2:item.Low});
2659
+
2660
+ point.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2+HQData.GetRandomTestData(2,10), Value2:item.High});
2661
+ point2.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2-HQData.GetRandomTestData(2,10), Value2:item.Low});
2657
2662
  }
2658
2663
 
2659
2664
 
2660
2665
 
2661
- //barData.Draw.DrawData.push(point);
2666
+ barData.Draw.DrawData.push(point);
2662
2667
  barData.Draw.DrawData.push(point2);
2663
2668
 
2664
2669
  var apiData=
@@ -2840,9 +2845,6 @@ HQData.APIIndex_DRAWKLINE=function(data, callback)
2840
2845
  IsShowTitle:true,
2841
2846
  };
2842
2847
 
2843
-
2844
- var textData={ name:"", type:10, color:"rgb(148,0,211)", data:[], isshow:false }; //名字
2845
-
2846
2848
  var aryDate=[];
2847
2849
  var aryTime=[];
2848
2850
  for(var i=100;i<kData.Data.length-100;++i)
@@ -2864,15 +2866,13 @@ HQData.APIIndex_DRAWKLINE=function(data, callback)
2864
2866
 
2865
2867
  aryDate.push(kItem.Date);
2866
2868
  aryTime.push(kItem.Time);
2867
-
2868
- textData.data.push(kItem.YClose.toFixed(2));
2869
2869
  }
2870
2870
 
2871
2871
  var apiData=
2872
2872
  {
2873
2873
  code:0,
2874
2874
  stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
2875
- outdata: { date:aryDate, time:aryTime, outvar:[textData, klineData] }
2875
+ outdata: { date:aryDate, time:aryTime, outvar:[ klineData] }
2876
2876
  };
2877
2877
 
2878
2878
  console.log('[HQData.APIIndex_DRAWKLINE] apiData ', apiData);
@@ -2880,3 +2880,45 @@ HQData.APIIndex_DRAWKLINE=function(data, callback)
2880
2880
  }
2881
2881
 
2882
2882
 
2883
+ HQData.APIIndex_TITLE=function(data, callback)
2884
+ {
2885
+ data.PreventDefault=true;
2886
+ var hqchart=data.HQChart;
2887
+ var kData=hqchart.GetKData();
2888
+
2889
+ var textData={ name:"标题", type:10, color:"rgb(0,128,128)", data:[], }; //名字
2890
+ var closeData={ name:"收盘价", type:0, color:"rgb(255,165,0)", data:[] } ; //
2891
+
2892
+ var aryDate=[];
2893
+ var aryTime=[];
2894
+ for(var i=0;i<kData.Data.length-30;++i)
2895
+ {
2896
+ var kItem=kData.Data[i];
2897
+
2898
+ closeData.data.push(kItem.Close);
2899
+
2900
+ textData.data.push(
2901
+ [
2902
+ { Name:`收`, Text:`${kItem.Close.toFixed(2)}`, Color:"rgb(200,10,10)",},
2903
+ { Name:`开`, Text:`${kItem.Open.toFixed(2)}`, Color:"rgb(0,200,10)", LeftSpace:2 }
2904
+ ]);
2905
+
2906
+ //textData.data.push(`价格:${kItem.Close.toFixed(2)}`);
2907
+
2908
+ aryDate.push(kItem.Date);
2909
+ aryTime.push(kItem.Time);
2910
+ }
2911
+
2912
+
2913
+ var apiData=
2914
+ {
2915
+ code:0,
2916
+ stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
2917
+ outdata: { date:aryDate, time:aryTime, outvar:[ textData, closeData] }
2918
+ };
2919
+
2920
+ console.log('[HQData.APIIndex_TITLE] apiData ', apiData);
2921
+ callback(apiData);
2922
+ }
2923
+
2924
+