hqchart 1.1.14501 → 1.1.14508

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.14501",
3
+ "version": "1.1.14508",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -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
  {
@@ -76642,8 +76715,21 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
76642
76715
  x+=(rtClient.left+rtScroll.Left);
76643
76716
  y+=(rtClient.top+rtScroll.Top);
76644
76717
 
76645
- var date=data.Tooltip.Data.Date;
76646
- 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;
76647
76733
 
76648
76734
  this.PopMinuteChart.Show({ Date:date, Symbol:symbol, Data:data.Tooltip.Data }, x/pixelRatio,y/pixelRatio);
76649
76735
  }
@@ -83365,6 +83451,30 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
83365
83451
 
83366
83452
  return position;
83367
83453
  }
83454
+
83455
+ this.GetDateTimeByPoint=function(x,y)
83456
+ {
83457
+ var clientPos=this.PtInClient(x,y);
83458
+ if (clientPos<0) return null;
83459
+
83460
+ if (!IFrameSplitOperator.IsNumber(x)) return;
83461
+ if (!IFrameSplitOperator.IsNonEmptyArray(this.Frame.SubFrame)) return null;
83462
+ var frame=this.Frame.SubFrame[0].Frame;
83463
+ if (!frame) return null;
83464
+ var kData=this.GetKData();
83465
+ if (!kData || !IFrameSplitOperator.IsNonEmptyArray(kData.Data)) return null;
83466
+
83467
+ var index=parseInt(frame.GetXData(x));
83468
+ var dataIndex=index+kData.DataOffset;
83469
+ if (dataIndex<0 || dataIndex>=kData.Data.length) return null;
83470
+
83471
+ var kItem=kData.Data[dataIndex];
83472
+ if (!kItem) return null;
83473
+
83474
+ var result={ Date:kItem.Date, Time:kItem.Time, DataIndex:dataIndex, Index:index, ClientPos:clientPos };
83475
+
83476
+ return result;
83477
+ }
83368
83478
  }
83369
83479
 
83370
83480
  //API 返回数据 转化为array[]
@@ -84208,6 +84318,9 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
84208
84318
  }
84209
84319
  else if ((bRButtonSelectRect || bLButtonSelectRect) && !this.BorderDrag && this.GetSelectRectData(selectData))
84210
84320
  {
84321
+ this.FinishSelectRect(selectData, e);
84322
+
84323
+ /*
84211
84324
  var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_SELECT_RECT);
84212
84325
  var paint=this.GetRectSelectPaint();
84213
84326
  var isShowDialog=true; //是否显示内置区间选择框
@@ -84245,6 +84358,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
84245
84358
  this.HideSelectRect();
84246
84359
  this.UpdateSelectRect(selectData.Start,selectData.End);
84247
84360
  }
84361
+ */
84248
84362
  }
84249
84363
  else
84250
84364
  {
@@ -8171,6 +8171,10 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8171
8171
  drag.LastMove.X=e.clientX;
8172
8172
  drag.LastMove.Y=e.clientY;
8173
8173
  }
8174
+ else if (drag.Click && drag.Click.IsInFrameBottom)
8175
+ {
8176
+ this.OnDragXCoordinateZoom(drag, {X:moveSetp, Y:moveSetpY}, e);
8177
+ }
8174
8178
  else if ((bLButtonSelectRect || bRButtonSelectRect) && !isDragSelectRect && !isDragSubSelectRect) //左右键区间选择
8175
8179
  {
8176
8180
  var yMoveSetp=Math.abs(drag.LastMove.Y-e.clientY);
@@ -8192,6 +8196,38 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8192
8196
  }
8193
8197
  }
8194
8198
 
8199
+ this.OnDragXCoordinateZoom=function(drag, moveData, e)
8200
+ {
8201
+ var moveSetp=moveData.X;
8202
+ var moveSetpY=moveData.Y;
8203
+ if (moveSetp<5) return;
8204
+
8205
+ var isLeft=true;
8206
+ if (drag.LastMove.X<e.clientX) isLeft=false;//右移数据
8207
+
8208
+ var cursorStatus="ew-resize";
8209
+
8210
+ var oneStepWidth=this.GetMoveOneStepWidth();
8211
+ if (moveSetp<oneStepWidth)
8212
+ {
8213
+ this.SetCursor({Cursor:cursorStatus});
8214
+ return;
8215
+ }
8216
+
8217
+ if (this.XCoordinateZoom(moveSetp,isLeft))
8218
+ {
8219
+ this.UpdataDataoffset();
8220
+ this.UpdateFrameMaxMin();
8221
+ this.ResetFrameXYSplit();
8222
+
8223
+ this.Draw();
8224
+ this.OnKLinePageChange("datamove");
8225
+ }
8226
+
8227
+ drag.LastMove.X=e.clientX;
8228
+ this.SetCursor({Cursor:cursorStatus});
8229
+ }
8230
+
8195
8231
  this.OnDragMode_One=function(moveData, e)
8196
8232
  {
8197
8233
  var moveSetp=moveData.X;
@@ -8252,7 +8288,6 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8252
8288
  if (drag.LastMove.X<e.clientX) isLeft=false;//右移数据
8253
8289
 
8254
8290
  var cursorStatus="pointer";
8255
- if (drag.Click.IsInFrameBottom) cursorStatus="ew-resize";
8256
8291
  var oneStepWidth=this.GetMoveOneStepWidth();
8257
8292
  if (moveSetp<oneStepWidth)
8258
8293
  {
@@ -8263,18 +8298,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8263
8298
  }
8264
8299
  else
8265
8300
  {
8266
- if (drag.Click && drag.Click.IsInFrameBottom)
8267
- {
8268
-
8269
- if (this.XCoordinateZoom(moveSetp,isLeft))
8270
- {
8271
- this.UpdataDataoffset();
8272
- this.UpdateFrameMaxMin();
8273
- this.ResetFrameXYSplit();
8274
- bNeedDraw=true;
8275
- }
8276
- }
8277
- else if(this.DataMove(moveSetp,isLeft))
8301
+ if(this.DataMove(moveSetp,isLeft))
8278
8302
  {
8279
8303
  this.UpdataDataoffset();
8280
8304
  //this.UpdatePointByCursorIndex(); //推拽数据的时候不需要把鼠标位置更新到K线上
@@ -8399,9 +8423,9 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8399
8423
  }
8400
8424
  else if (IsMinuteChart)
8401
8425
  {
8402
- if (this.OnMinuteSelectRectMouseUp) this.OnMinuteSelectRectMouseUp(e);
8426
+ if (this.OnMinuteSelectRectMouseUp) this.OnMinuteSelectRectMouseUp(e); //分时图区间选择
8403
8427
  }
8404
- else if (bLButtonSelectRect || bRButtonSelectRect) //区间选择
8428
+ else if (bLButtonSelectRect || bRButtonSelectRect) //K线图区间选择
8405
8429
  {
8406
8430
  var drag=this.MouseDrag;
8407
8431
  drag.LastMove.X=e.clientX;
@@ -8416,49 +8440,12 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8416
8440
  selectData.YEnd=(drag.LastMove.Y-uielement.getBoundingClientRect().top)*pixelTatio;
8417
8441
  selectData.JSChartContainer=this;
8418
8442
  selectData.Stock={Symbol:this.Symbol, Name:this.Name};
8443
+ selectData.IsLButton=bLButtonSelectRect;
8444
+ selectData.IsRButton=bRButtonSelectRect;
8419
8445
 
8420
8446
  if (!this.BorderDrag && this.GetSelectRectData(selectData))
8421
8447
  {
8422
- var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_SELECT_RECT);
8423
- var paint=this.GetRectSelectPaint();
8424
- var isShowMenu=true;
8425
- if (event && event.Callback)
8426
- {
8427
- var data=
8428
- {
8429
- X:drag.LastMove.X-uielement.getBoundingClientRect().left,
8430
- Y:drag.LastMove.Y-uielement.getBoundingClientRect().top,
8431
- SelectData:selectData, //区间选择的数据
8432
- RectSelectPaint:paint, //区间选择背景
8433
- IsShowMenu:true,
8434
- e,e
8435
- };
8436
- event.Callback(event,data,this);
8437
- isShowMenu=data.IsShowMenu;
8438
- }
8439
-
8440
- if (IsMinuteChart) //分时图直接显示显示区间选择
8441
- {
8442
- this.HideSelectRect();
8443
- this.UpdateSelectRect(selectData.Start,selectData.End);
8444
- }
8445
- else
8446
- {
8447
- if (isShowMenu)
8448
- {
8449
- var data=
8450
- {
8451
- Chart:this,
8452
- X:drag.LastMove.X-uielement.getBoundingClientRect().left,
8453
- Y:drag.LastMove.Y-uielement.getBoundingClientRect().top,
8454
- SelectData:selectData, //区间选择的数据
8455
- RectSelectPaint:paint //区间选择背景
8456
- };
8457
-
8458
- e.data=data;
8459
- this.PopupSelectRectMenuV2(data, e);
8460
- }
8461
- }
8448
+ this.FinishSelectRect(selectData, e);
8462
8449
  }
8463
8450
  else
8464
8451
  {
@@ -8498,6 +8485,92 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8498
8485
  this.ClearDocContextMenuTimer(5000);
8499
8486
  }
8500
8487
 
8488
+ //区间选择完成
8489
+ this.FinishSelectRect=function(selectData, e)
8490
+ {
8491
+ var bMinuteChart=this.IsMinuteContainer();
8492
+ var drag=this.MouseDrag;
8493
+ var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_SELECT_RECT);
8494
+ var paint=this.GetRectSelectPaint();
8495
+
8496
+ var x=drag.LastMove.X-uielement.getBoundingClientRect().left;
8497
+ var y=drag.LastMove.Y-uielement.getBoundingClientRect().top;
8498
+
8499
+ if (e) //往事件里面 写如我们的数据
8500
+ {
8501
+ var data=
8502
+ {
8503
+ Chart:this, X:x,Y:y,
8504
+ SelectData:selectData, //区间选择的数据
8505
+ RectSelectPaint:paint, //区间选择背景
8506
+ IsLButton:selectData.IsLButton, IsRButton:selectData.IsRButton,
8507
+ };
8508
+
8509
+ e.data=data;
8510
+ }
8511
+
8512
+ var aryMenu=null, command=null;
8513
+ if (bMinuteChart) //分时图 默认区间统计
8514
+ {
8515
+ command={ ID:JSCHART_MENU_ID.CMD_SELECTED_SUMMARY_ID, Args:[e,selectData] };
8516
+ }
8517
+ else //K线默认 区间选择K线
8518
+ {
8519
+ aryMenu=
8520
+ [
8521
+ { Name:"区间统计", Data:{ ID:JSCHART_MENU_ID.CMD_SELECTED_SUMMARY_ID, Args:[e,selectData] }},
8522
+ { Name:"区间放大", Data:{ ID:JSCHART_MENU_ID.CMD_SELECTED_ZOOM_ID, Args:[selectData] }}
8523
+ ];
8524
+ }
8525
+
8526
+ if (event && event.Callback)
8527
+
8528
+ var sendData=
8529
+ {
8530
+ X:x, Y:y, e:e,
8531
+ SelectData:selectData, //区间选择的数据
8532
+ RectSelectPaint:paint, //区间选择背景
8533
+ AryMenu:aryMenu, //菜单 填null 不就会弹菜单
8534
+ Command:command, //执行命令
8535
+ IsLButton:selectData.IsLButton, IsRButton:selectData.IsRButton,
8536
+ PreventDefault:false,
8537
+ };
8538
+ if (bMinuteChart) sendData.Command=null; //分时图 调用事件 不做任何事
8539
+
8540
+ event.Callback(event,sendData,this);
8541
+
8542
+ if (sendData.PreventDefault==true) return; //已被上层替换,不调用默认的网络请求
8543
+
8544
+ aryMenu=sendData.AryMenu;
8545
+ command=sendData.Command;
8546
+
8547
+
8548
+ if (aryMenu) //弹菜单
8549
+ {
8550
+ this.PopupSelectRectMenuV3(aryMenu, data, e);
8551
+ return;
8552
+ }
8553
+
8554
+ if (command) //执行命令
8555
+ {
8556
+ this.ExecuteMenuCommand(command.ID, command.Args);
8557
+ return;
8558
+ }
8559
+
8560
+ this.HideSelectRect();
8561
+ this.UpdateSelectRect(selectData.Start,selectData.End);
8562
+ }
8563
+
8564
+ this.PopupSelectRectMenuV3=function(aryMenu, data, e)
8565
+ {
8566
+ if (!aryMenu) return;
8567
+
8568
+ var menuData={ Menu:aryMenu, Position:JSPopMenu.POSITION_ID.RIGHT_MENU_ID };
8569
+ menuData.ClickCallback=(data)=>{ this.OnClickRightMenu(data); }
8570
+ var x=data.X, y=data.Y;
8571
+ this.PopupMenuByRClick(menuData, x, y);
8572
+ }
8573
+
8501
8574
  this.DocContextMenu=function(e)
8502
8575
  {
8503
8576
  e.preventDefault();
@@ -28938,12 +29011,12 @@ function IChartPainting()
28938
29011
  if (valueType==1) //K线收盘价
28939
29012
  {
28940
29013
  var kItem=this.Data.Data[i];
28941
- if (IFrameSplitOperator.IsNumber(kItem.Close)) value=kItem.Close
29014
+ if (kItem && IFrameSplitOperator.IsNumber(kItem.Close)) value=kItem.Close
28942
29015
  }
28943
29016
  else if (valueType==2)
28944
29017
  {
28945
29018
  var kItem=this.Data.Data[i];
28946
- if (IFrameSplitOperator.IsNumber(kItem.Vol)) value=kItem.Vol
29019
+ if (kItem && IFrameSplitOperator.IsNumber(kItem.Vol)) value=kItem.Vol
28947
29020
  }
28948
29021
  else if (valueType==3)
28949
29022
  {
@@ -80567,8 +80640,21 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
80567
80640
  x+=(rtClient.left+rtScroll.Left);
80568
80641
  y+=(rtClient.top+rtScroll.Top);
80569
80642
 
80570
- var date=data.Tooltip.Data.Date;
80571
- var symbol=data.Chart.Symbol;
80643
+ var item=data.Tooltip.Data;
80644
+ var date=item.Date;
80645
+ var symbol=null;
80646
+
80647
+ if (data.Tooltip.ChartPaint && data.Tooltip.ChartPaint.Name=="DRAWKLINE")
80648
+ {
80649
+ if (item.Symbol) symbol=item.Symbol;
80650
+ else if (data.Tooltip.Symbol) symbol=data.Tooltip.Symbol;
80651
+ }
80652
+ else
80653
+ {
80654
+ symbol=data.Chart.Symbol;
80655
+ }
80656
+
80657
+ if (!symbol) return;
80572
80658
 
80573
80659
  this.PopMinuteChart.Show({ Date:date, Symbol:symbol, Data:data.Tooltip.Data }, x/pixelRatio,y/pixelRatio);
80574
80660
  }
@@ -87290,6 +87376,30 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
87290
87376
 
87291
87377
  return position;
87292
87378
  }
87379
+
87380
+ this.GetDateTimeByPoint=function(x,y)
87381
+ {
87382
+ var clientPos=this.PtInClient(x,y);
87383
+ if (clientPos<0) return null;
87384
+
87385
+ if (!IFrameSplitOperator.IsNumber(x)) return;
87386
+ if (!IFrameSplitOperator.IsNonEmptyArray(this.Frame.SubFrame)) return null;
87387
+ var frame=this.Frame.SubFrame[0].Frame;
87388
+ if (!frame) return null;
87389
+ var kData=this.GetKData();
87390
+ if (!kData || !IFrameSplitOperator.IsNonEmptyArray(kData.Data)) return null;
87391
+
87392
+ var index=parseInt(frame.GetXData(x));
87393
+ var dataIndex=index+kData.DataOffset;
87394
+ if (dataIndex<0 || dataIndex>=kData.Data.length) return null;
87395
+
87396
+ var kItem=kData.Data[dataIndex];
87397
+ if (!kItem) return null;
87398
+
87399
+ var result={ Date:kItem.Date, Time:kItem.Time, DataIndex:dataIndex, Index:index, ClientPos:clientPos };
87400
+
87401
+ return result;
87402
+ }
87293
87403
  }
87294
87404
 
87295
87405
  //API 返回数据 转化为array[]
@@ -88133,6 +88243,9 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
88133
88243
  }
88134
88244
  else if ((bRButtonSelectRect || bLButtonSelectRect) && !this.BorderDrag && this.GetSelectRectData(selectData))
88135
88245
  {
88246
+ this.FinishSelectRect(selectData, e);
88247
+
88248
+ /*
88136
88249
  var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_SELECT_RECT);
88137
88250
  var paint=this.GetRectSelectPaint();
88138
88251
  var isShowDialog=true; //是否显示内置区间选择框
@@ -88170,6 +88283,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
88170
88283
  this.HideSelectRect();
88171
88284
  this.UpdateSelectRect(selectData.Start,selectData.End);
88172
88285
  }
88286
+ */
88173
88287
  }
88174
88288
  else
88175
88289
  {
@@ -144319,7 +144433,7 @@ function ScrollBarBGChart()
144319
144433
 
144320
144434
 
144321
144435
 
144322
- var HQCHART_VERSION="1.1.14500";
144436
+ var HQCHART_VERSION="1.1.14507";
144323
144437
 
144324
144438
  function PrintHQChartVersion()
144325
144439
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.14500";
8
+ var HQCHART_VERSION="1.1.14507";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {