hqchart 1.1.15037 → 1.1.15043
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
package/src/jscommon/umychart.js
CHANGED
|
@@ -422,7 +422,13 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
422
422
|
|
|
423
423
|
if (option.DrawTool) //画图工具
|
|
424
424
|
{
|
|
425
|
-
|
|
425
|
+
var item=option.DrawTool;
|
|
426
|
+
if (chart.ChartDrawStorage)
|
|
427
|
+
{
|
|
428
|
+
if (item.StorageKey) chart.ChartDrawStorage.Load(item.StorageKey);
|
|
429
|
+
if (IFrameSplitOperator.IsBool(item.EnableCrossPeriod)) chart.ChartDrawStorage.EnableCrossPeriod=item.EnableCrossPeriod;
|
|
430
|
+
}
|
|
431
|
+
|
|
426
432
|
}
|
|
427
433
|
|
|
428
434
|
if (option.KeyboardMove)
|
|
@@ -3316,7 +3322,11 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
3316
3322
|
this.EnableVerticalDrag=false;
|
|
3317
3323
|
|
|
3318
3324
|
//十字光标长留(手势才有)
|
|
3319
|
-
this.ClickModel=
|
|
3325
|
+
this.ClickModel=
|
|
3326
|
+
{
|
|
3327
|
+
IsShowCorssCursor:false, PreventHide:false, IsClickButton:false,
|
|
3328
|
+
AutoClose:{ Enable:false, Timer:null, DelayTime:3000 },
|
|
3329
|
+
}; //PreventHide 阻止隐藏十字光标 AutoClose=延迟关闭
|
|
3320
3330
|
this.EnableClickModel=false;
|
|
3321
3331
|
|
|
3322
3332
|
//标题栏显示最新数据
|
|
@@ -5703,6 +5713,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
5703
5713
|
|
|
5704
5714
|
|
|
5705
5715
|
this.StopDragTimer();
|
|
5716
|
+
this.StopAutoCloseCorssCursor();
|
|
5706
5717
|
|
|
5707
5718
|
var isSingleTouch=this.IsSingleTouch(e);
|
|
5708
5719
|
if (this.EnableScrollUpDown==false || !isSingleTouch || //多点触屏
|
|
@@ -6220,6 +6231,29 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
6220
6231
|
return true;
|
|
6221
6232
|
}
|
|
6222
6233
|
|
|
6234
|
+
this.StopAutoCloseCorssCursor=function()
|
|
6235
|
+
{
|
|
6236
|
+
if (!this.ClickModel.AutoClose.Timer) return;
|
|
6237
|
+
|
|
6238
|
+
clearTimeout(this.ClickModel.AutoClose.Timer);
|
|
6239
|
+
this.ClickModel.AutoClose.Timer=null;
|
|
6240
|
+
}
|
|
6241
|
+
|
|
6242
|
+
//自动关闭十字光标
|
|
6243
|
+
this.DelayAutoCloseCorssCursor=function()
|
|
6244
|
+
{
|
|
6245
|
+
if (!this.ClickModel.AutoClose.Enable) return false;
|
|
6246
|
+
|
|
6247
|
+
this.StopAutoCloseCorssCursor();
|
|
6248
|
+
|
|
6249
|
+
this.ClickModel.AutoClose.Timer=setTimeout(()=>
|
|
6250
|
+
{
|
|
6251
|
+
this.ClickModel.IsShowCorssCursor=false;
|
|
6252
|
+
this.DrawDynamicInfo();
|
|
6253
|
+
|
|
6254
|
+
}, this.ClickModel.AutoClose.DelayTime)
|
|
6255
|
+
}
|
|
6256
|
+
|
|
6223
6257
|
this.MoveCorssCursor=function(point,e)
|
|
6224
6258
|
{
|
|
6225
6259
|
var pixelTatio = GetDevicePixelRatio();
|
|
@@ -64602,10 +64636,89 @@ function IChartDrawPicture()
|
|
|
64602
64636
|
}
|
|
64603
64637
|
}
|
|
64604
64638
|
|
|
64605
|
-
this.
|
|
64639
|
+
this.GetkData=function()
|
|
64606
64640
|
{
|
|
64607
|
-
if (!this.Frame) return
|
|
64641
|
+
if (!this.Frame) return null;
|
|
64608
64642
|
var data=this.Frame.Data;
|
|
64643
|
+
if (!data) return null;
|
|
64644
|
+
|
|
64645
|
+
return data;
|
|
64646
|
+
}
|
|
64647
|
+
|
|
64648
|
+
//周期变动 X重新定位
|
|
64649
|
+
this.ChangePeriod=function(period)
|
|
64650
|
+
{
|
|
64651
|
+
var kData=this.GetkData();
|
|
64652
|
+
if (!kData) return;
|
|
64653
|
+
|
|
64654
|
+
var aryDateTime=[];
|
|
64655
|
+
for(var i=0; i<this.Value.length; ++i)
|
|
64656
|
+
{
|
|
64657
|
+
var item=this.Value[i];
|
|
64658
|
+
if (!item.DateTime) break;
|
|
64659
|
+
var dateTime={ Date:item.DateTime.Date, Time:0, Match:null };
|
|
64660
|
+
if (IFrameSplitOperator.IsNumber(item.DateTime.Time)) dateTime.Time=item.DateTime.Time;
|
|
64661
|
+
aryDateTime[i]=dateTime;
|
|
64662
|
+
}
|
|
64663
|
+
|
|
64664
|
+
var findCount=0;
|
|
64665
|
+
var perData=null;
|
|
64666
|
+
var perIndex=-1;
|
|
64667
|
+
for(var i=0, j=0;i<kData.Data.length;++i)
|
|
64668
|
+
{
|
|
64669
|
+
var kItem=kData.Data[i];
|
|
64670
|
+
|
|
64671
|
+
for(j=0;j<aryDateTime.length;++j)
|
|
64672
|
+
{
|
|
64673
|
+
var item=aryDateTime[j];
|
|
64674
|
+
if (item.Match) continue;
|
|
64675
|
+
|
|
64676
|
+
if (ChartData.IsDayPeriod(period, true))
|
|
64677
|
+
{
|
|
64678
|
+
if (kItem.Date>item.Date)
|
|
64679
|
+
{
|
|
64680
|
+
item.Match={ KItem:perData, Index:perIndex };
|
|
64681
|
+
++findCount;
|
|
64682
|
+
}
|
|
64683
|
+
}
|
|
64684
|
+
else if (ChartData.IsMinutePeriod(period, true))
|
|
64685
|
+
{
|
|
64686
|
+
if (kItem.Date>item.Date || (kItem.Date==item.Date && kItem.Time>item.Time))
|
|
64687
|
+
{
|
|
64688
|
+
item.Match={ KItem:perData, Index:perIndex };
|
|
64689
|
+
++findCount;
|
|
64690
|
+
}
|
|
64691
|
+
}
|
|
64692
|
+
}
|
|
64693
|
+
|
|
64694
|
+
perData=kItem;
|
|
64695
|
+
perIndex=i;
|
|
64696
|
+
|
|
64697
|
+
if (findCount>=aryDateTime.length) break;
|
|
64698
|
+
}
|
|
64699
|
+
|
|
64700
|
+
for(var i=0;i<aryDateTime.length;++i)
|
|
64701
|
+
{
|
|
64702
|
+
var item=aryDateTime[i];
|
|
64703
|
+
var valueItem=this.Value[i];
|
|
64704
|
+
if (item.Match && item.Match.KItem)
|
|
64705
|
+
{
|
|
64706
|
+
valueItem.DateTime={ Date:item.Match.Date, Time:item.Match.Time };
|
|
64707
|
+
valueItem.XValue=item.Match.Index;
|
|
64708
|
+
}
|
|
64709
|
+
else
|
|
64710
|
+
{
|
|
64711
|
+
valueItem.DateTime=null;
|
|
64712
|
+
valueItem.XValue=null;
|
|
64713
|
+
}
|
|
64714
|
+
}
|
|
64715
|
+
|
|
64716
|
+
this.Period=period;
|
|
64717
|
+
}
|
|
64718
|
+
|
|
64719
|
+
this.UpdateXValue=function() //通过datetime更新x的索引
|
|
64720
|
+
{
|
|
64721
|
+
var data=this.GetkData();
|
|
64609
64722
|
if (!data) return false;
|
|
64610
64723
|
|
|
64611
64724
|
var aryDateTime=[];
|
|
@@ -76315,9 +76428,12 @@ function ChartDrawTVShortPosition()
|
|
|
76315
76428
|
|
|
76316
76429
|
function ChartDrawStorage()
|
|
76317
76430
|
{
|
|
76318
|
-
this.DrawData=new Map();
|
|
76431
|
+
//this.DrawData=new Map(); //画图工具数据 key=symbol-Period, value=Map() Key:Guid, Value:{ Guid, Symbol, Period, ClassName, Value }
|
|
76432
|
+
this.DrawDataV2=new Map(); //画图工具数据 key=symbol, value=Map() Key:Guid, Value:{ Guid, Symbol, Period, ClassName, Value }
|
|
76433
|
+
|
|
76319
76434
|
this.StorageKey;
|
|
76320
|
-
this.GetEventCallback;
|
|
76435
|
+
this.GetEventCallback; //事件回调
|
|
76436
|
+
this.EnableCrossPeriod=false; //跨周期
|
|
76321
76437
|
|
|
76322
76438
|
this.Load=function(key) //从本地读取画图工具
|
|
76323
76439
|
{
|
|
@@ -76330,18 +76446,39 @@ function ChartDrawStorage()
|
|
|
76330
76446
|
if (typeof(cacheValue) != "string") return;
|
|
76331
76447
|
|
|
76332
76448
|
var saveData=JSON.parse(cacheValue);
|
|
76333
|
-
|
|
76334
|
-
{
|
|
76335
|
-
var item=saveData[i];
|
|
76336
|
-
var drawMap=new Map();
|
|
76449
|
+
if (!saveData) return;
|
|
76337
76450
|
|
|
76338
|
-
|
|
76451
|
+
if (IFrameSplitOperator.IsNonEmptyArray(saveData)) //老版本 key=symbol-Period
|
|
76452
|
+
{
|
|
76453
|
+
for(var i=0;i<saveData.length;++i)
|
|
76339
76454
|
{
|
|
76340
|
-
var
|
|
76341
|
-
|
|
76455
|
+
var item=saveData[i];
|
|
76456
|
+
for(var j=0;j<item.Value.length;++j)
|
|
76457
|
+
{
|
|
76458
|
+
var drawItem=item.Value[j];
|
|
76459
|
+
var symbol=drawItem.Value.Symbol;
|
|
76460
|
+
if (!this.DrawDataV2.has(symbol))
|
|
76461
|
+
this.DrawDataV2.set(symbol, {Symbol:symbol, MapPicture: new Map() });
|
|
76462
|
+
|
|
76463
|
+
var stockItem=this.DrawDataV2.get(symbol);
|
|
76464
|
+
stockItem.MapPicture.set(drawItem.Value.Guid, drawItem.Value);
|
|
76465
|
+
}
|
|
76342
76466
|
}
|
|
76467
|
+
}
|
|
76468
|
+
else if (saveData.Ver==2.0 && IFrameSplitOperator.IsNonEmptyArray(saveData.Data))
|
|
76469
|
+
{
|
|
76470
|
+
for(var i=0;i<saveData.Data.length;++i)
|
|
76471
|
+
{
|
|
76472
|
+
var item=saveData.Data[i]; //{ Symbol:, AryPicture:[ { Guid, Symbol, Period, ClassName, Value }, ] }
|
|
76473
|
+
var stockItem={ Symbol:item.Symbol, MapPicture:new Map() };
|
|
76474
|
+
for(var j=0; j<item.AryPicture.length;++j)
|
|
76475
|
+
{
|
|
76476
|
+
var drawItem=item.AryPicture[j];
|
|
76477
|
+
stockItem.MapPicture.set(drawItem.Guid, drawItem);
|
|
76478
|
+
}
|
|
76343
76479
|
|
|
76344
|
-
|
|
76480
|
+
this.DrawDataV2.set(stockItem.Symbol,stockItem);
|
|
76481
|
+
}
|
|
76345
76482
|
}
|
|
76346
76483
|
}
|
|
76347
76484
|
|
|
@@ -76350,89 +76487,95 @@ function ChartDrawStorage()
|
|
|
76350
76487
|
if (!this.StorageKey) return;
|
|
76351
76488
|
|
|
76352
76489
|
var saveData=[];
|
|
76353
|
-
for(var
|
|
76490
|
+
for(var mapItem of this.DrawDataV2)
|
|
76354
76491
|
{
|
|
76355
|
-
var
|
|
76356
|
-
var
|
|
76357
|
-
var itemData={ Key:key, Value:[]};
|
|
76492
|
+
var symbol=mapItem[0];
|
|
76493
|
+
var stockItem=mapItem[1];
|
|
76358
76494
|
|
|
76359
|
-
|
|
76495
|
+
var itemData={ Symbol:symbol, AryPicture:[] };
|
|
76496
|
+
|
|
76497
|
+
for(var pictureItem of stockItem.MapPicture)
|
|
76360
76498
|
{
|
|
76361
|
-
|
|
76499
|
+
var drawItem=pictureItem[1];
|
|
76500
|
+
if (drawItem.EnableSave===false) continue;
|
|
76362
76501
|
|
|
76363
|
-
itemData.
|
|
76502
|
+
itemData.AryPicture.push(drawItem);
|
|
76364
76503
|
}
|
|
76365
76504
|
|
|
76366
|
-
if (IFrameSplitOperator.IsNonEmptyArray(itemData.
|
|
76505
|
+
if (IFrameSplitOperator.IsNonEmptyArray(itemData.AryPicture))
|
|
76367
76506
|
saveData.push(itemData);
|
|
76368
76507
|
}
|
|
76369
76508
|
|
|
76370
76509
|
JSConsole.Chart.Log(`[ChartDrawStorage::Save] save to localStorage, key=${this.StorageKey}`);
|
|
76371
|
-
var strData=JSON.stringify(saveData);
|
|
76510
|
+
var strData=JSON.stringify({Ver:2.0, Data:saveData});
|
|
76372
76511
|
localStorage[this.StorageKey]=strData;
|
|
76373
76512
|
}
|
|
76374
76513
|
|
|
76375
|
-
this.GetItemKey=function(obj) //生成每个画图工具的key
|
|
76376
|
-
{
|
|
76377
|
-
var strKey=`${obj.Symbol}-${obj.Period}`;
|
|
76378
|
-
return strKey;
|
|
76379
|
-
}
|
|
76380
|
-
|
|
76381
76514
|
this.SaveDrawData=function(drawPicture) //保存一个画图工具
|
|
76382
76515
|
{
|
|
76383
|
-
var
|
|
76516
|
+
var symbol=drawPicture.Symbol;
|
|
76384
76517
|
var data=drawPicture.ExportStorageData();
|
|
76385
76518
|
if (!data) return;
|
|
76386
76519
|
|
|
76387
|
-
if (this.
|
|
76520
|
+
if (this.DrawDataV2.has(symbol)) //更新
|
|
76388
76521
|
{
|
|
76389
|
-
JSConsole.Chart.Log('[ChartDrawStorage::SaveDrawData] Upate:
|
|
76390
|
-
this.
|
|
76522
|
+
JSConsole.Chart.Log('[ChartDrawStorage::SaveDrawData] Upate: symbol, drawPicture, data', symbol, drawPicture, data);
|
|
76523
|
+
var stockItem=this.DrawDataV2.get(symbol);
|
|
76524
|
+
stockItem.MapPicture.set(data.Guid, data);
|
|
76391
76525
|
}
|
|
76392
76526
|
else //新增
|
|
76393
76527
|
{
|
|
76394
|
-
JSConsole.Chart.Log('[ChartDrawStorage::SaveDrawData] Insert:
|
|
76395
|
-
var
|
|
76396
|
-
|
|
76397
|
-
this.
|
|
76528
|
+
JSConsole.Chart.Log('[ChartDrawStorage::SaveDrawData] Insert: symbol, drawPicture, data', symbol, drawPicture,data);
|
|
76529
|
+
var stockItem={ Symbol:symbol, MapPicture:new Map() } ;
|
|
76530
|
+
stockItem.set(data.Guid, data);
|
|
76531
|
+
this.DrawDataV2.set(symbol,newData);
|
|
76398
76532
|
}
|
|
76399
76533
|
|
|
76400
|
-
JSConsole.Chart.Log('[ChartDrawStorage::SaveDrawData] All draw data: ', this.
|
|
76534
|
+
JSConsole.Chart.Log('[ChartDrawStorage::SaveDrawData] All draw data: ', this.DrawDataV2);
|
|
76401
76535
|
|
|
76402
76536
|
this.Save();
|
|
76403
76537
|
}
|
|
76404
76538
|
|
|
76405
76539
|
this.DeleteDrawData=function(drawPicture) //删除一个画图工具
|
|
76406
76540
|
{
|
|
76407
|
-
var
|
|
76408
|
-
if (!this.
|
|
76541
|
+
var symbol=drawPicture.Symbol;
|
|
76542
|
+
if (!this.DrawDataV2.has(symbol)) return;
|
|
76409
76543
|
|
|
76410
|
-
var
|
|
76411
|
-
if (!
|
|
76544
|
+
var stockItem=this.DrawDataV2.get(symbol);
|
|
76545
|
+
if (!stockItem.MapPicture.has(drawPicture.Guid)) return;
|
|
76412
76546
|
|
|
76413
|
-
|
|
76547
|
+
stockItem.MapPicture.delete(drawPicture.Guid);
|
|
76414
76548
|
this.Save();
|
|
76415
76549
|
}
|
|
76416
76550
|
|
|
76417
76551
|
this.Clear=function()
|
|
76418
76552
|
{
|
|
76419
|
-
this.
|
|
76553
|
+
this.DrawDataV2=new Map();
|
|
76420
76554
|
this.Save();
|
|
76421
76555
|
}
|
|
76422
76556
|
|
|
76423
|
-
this.GetDrawData=function(obj) //获取已有的画图工具数据{Symbol: , Period:, }
|
|
76557
|
+
this.GetDrawData=function(obj) //获取已有的画图工具数据{ Symbol: , Period:, }
|
|
76424
76558
|
{
|
|
76425
|
-
var
|
|
76426
|
-
var
|
|
76427
|
-
|
|
76559
|
+
var aryData=[];
|
|
76560
|
+
var symbol=obj.Symbol;
|
|
76561
|
+
|
|
76562
|
+
if (!this.DrawDataV2.has(symbol)) return aryData;
|
|
76428
76563
|
|
|
76429
|
-
var
|
|
76430
|
-
for(var
|
|
76564
|
+
var stockItem=this.DrawDataV2.get(symbol);
|
|
76565
|
+
for(var mapItem of stockItem.MapPicture)
|
|
76431
76566
|
{
|
|
76432
|
-
|
|
76567
|
+
var drawItem=mapItem[1];
|
|
76568
|
+
if (this.EnableCrossPeriod)
|
|
76569
|
+
{
|
|
76570
|
+
aryData.push(drawItem);
|
|
76571
|
+
}
|
|
76572
|
+
else
|
|
76573
|
+
{
|
|
76574
|
+
if (drawItem.Period==obj.Period) aryData.push(drawItem);
|
|
76575
|
+
}
|
|
76433
76576
|
}
|
|
76434
76577
|
|
|
76435
|
-
return
|
|
76578
|
+
return aryData;
|
|
76436
76579
|
}
|
|
76437
76580
|
}
|
|
76438
76581
|
|
|
@@ -86196,8 +86339,15 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
86196
86339
|
|
|
86197
86340
|
if (this.EnableClickModel===true)
|
|
86198
86341
|
{
|
|
86199
|
-
|
|
86200
|
-
if (this.ClickModel.IsShowCorssCursor==true && this.
|
|
86342
|
+
var bShowCorssCursor=false;
|
|
86343
|
+
if (this.ClickModel.IsShowCorssCursor==true && this.ClickModel.PreventHide) bShowCorssCursor=true; //阻止隐藏
|
|
86344
|
+
if (this.ClickModel.IsShowCorssCursor==true && this.TouchDrawCount>0 ) bShowCorssCursor=true;
|
|
86345
|
+
|
|
86346
|
+
if (bShowCorssCursor)
|
|
86347
|
+
{
|
|
86348
|
+
this.DelayAutoCloseCorssCursor(); //自动延迟关闭十字光标
|
|
86349
|
+
return;
|
|
86350
|
+
}
|
|
86201
86351
|
|
|
86202
86352
|
this.ClickModel.IsShowCorssCursor=false;
|
|
86203
86353
|
this.DrawDynamicInfo();
|
|
@@ -86210,7 +86360,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
86210
86360
|
return;
|
|
86211
86361
|
}
|
|
86212
86362
|
|
|
86213
|
-
for(var i
|
|
86363
|
+
for(var i=0; i<this.ExtendChartPaint.length; ++i)
|
|
86214
86364
|
{
|
|
86215
86365
|
var item=this.ExtendChartPaint[i];
|
|
86216
86366
|
if (item.ClassName==='KLineTooltipPaint')
|
|
@@ -87746,7 +87896,16 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
87746
87896
|
drawPicture.Option=this.ChartDrawOption;
|
|
87747
87897
|
|
|
87748
87898
|
if (drawPicture.ImportStorageData) drawPicture.ImportStorageData(item);
|
|
87749
|
-
drawPicture.
|
|
87899
|
+
if (drawPicture.Period!=this.Period)
|
|
87900
|
+
{
|
|
87901
|
+
drawPicture.ChangePeriod(this.Period);
|
|
87902
|
+
}
|
|
87903
|
+
else
|
|
87904
|
+
{
|
|
87905
|
+
drawPicture.UpdateXValue();
|
|
87906
|
+
}
|
|
87907
|
+
|
|
87908
|
+
|
|
87750
87909
|
drawPicture.ValueToPoint();
|
|
87751
87910
|
|
|
87752
87911
|
var self=this;
|
|
@@ -95544,7 +95703,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
95544
95703
|
{
|
|
95545
95704
|
if (!this.ChartDrawStorageCache || this.ChartDrawStorageCache.length<=0) return;
|
|
95546
95705
|
|
|
95547
|
-
var
|
|
95706
|
+
var kData=this.GetKData();
|
|
95548
95707
|
for(var i=0; i<this.ChartDrawStorageCache.length; ++i)
|
|
95549
95708
|
{
|
|
95550
95709
|
var item=this.ChartDrawStorageCache[i];
|