hqchart 1.1.14336 → 1.1.14349
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/lib/umychart.vue.js +61 -55
- package/package.json +1 -1
- package/src/jscommon/umychart.NetworkFilterTest.js +69 -0
- package/src/jscommon/umychart.complier.js +32 -36
- package/src/jscommon/umychart.js +346 -187
- package/src/jscommon/umychart.testdata.js +69 -0
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +379 -224
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.NetworkFilterTest.vue.js +69 -0
- package/src/jscommon/umychart.vue/umychart.vue.js +379 -224
|
@@ -28443,6 +28443,12 @@ function IChartPainting()
|
|
|
28443
28443
|
|
|
28444
28444
|
}
|
|
28445
28445
|
|
|
28446
|
+
this.BuildKey=function(item)
|
|
28447
|
+
{
|
|
28448
|
+
if (IFrameSplitOperator.IsNumber(item.Time)) return `${item.Date}-${item.Time}`;
|
|
28449
|
+
else return item.Date;
|
|
28450
|
+
}
|
|
28451
|
+
|
|
28446
28452
|
//数据导出 数据格式 [{ Title:数据名称, Data:[] }]
|
|
28447
28453
|
//this.ExportData=function(aryKData) { }
|
|
28448
28454
|
|
|
@@ -35276,15 +35282,7 @@ function ChartOverlayKLine()
|
|
|
35276
35282
|
|
|
35277
35283
|
if (!this.MainData || !this.Data) return range;
|
|
35278
35284
|
|
|
35279
|
-
var firstOpen=
|
|
35280
|
-
for(var i=this.Data.DataOffset,j=0;i<this.MainData.Data.length && j<xPointCount;++i,++j)
|
|
35281
|
-
{
|
|
35282
|
-
var data=this.MainData.Data[i];
|
|
35283
|
-
if (data.Open==null || data.High==null || data.Low==null || data.Close==null) continue;
|
|
35284
|
-
firstOpen=data.Close;
|
|
35285
|
-
break;
|
|
35286
|
-
}
|
|
35287
|
-
|
|
35285
|
+
var firstOpen=this.GetFirstOpen();
|
|
35288
35286
|
if (firstOpen==null) return range;
|
|
35289
35287
|
|
|
35290
35288
|
var firstOverlayOpen=null;
|
|
@@ -44388,159 +44386,285 @@ function ChartMultiBar()
|
|
|
44388
44386
|
delete this.newMethod;
|
|
44389
44387
|
|
|
44390
44388
|
this.ClassName="ChartMultiBar";
|
|
44391
|
-
this.Bars=[]; // [ {Point:[ {
|
|
44389
|
+
this.Bars=[]; // [ {Point:[ {Date, Time, Value, Value2 }, ], Color:, Width: , Type: 0 实心 1 空心 }, ]
|
|
44392
44390
|
this.IsHScreen=false;
|
|
44393
44391
|
|
|
44392
|
+
this.MapCache=null; //key=date/date-time value={ Data:[] }
|
|
44393
|
+
this.GetKValue=ChartData.GetKValue;
|
|
44394
|
+
|
|
44395
|
+
this.GetItem=function(kItem)
|
|
44396
|
+
{
|
|
44397
|
+
if (!this.MapCache || this.MapCache.size<=0) return null;
|
|
44398
|
+
|
|
44399
|
+
var key=this.BuildKey(kItem);
|
|
44400
|
+
if (!this.MapCache.has(key)) return null;
|
|
44401
|
+
|
|
44402
|
+
return this.MapCache.get(key);
|
|
44403
|
+
}
|
|
44404
|
+
|
|
44405
|
+
this.BuildCacheData=function()
|
|
44406
|
+
{
|
|
44407
|
+
var mapData=new Map();
|
|
44408
|
+
this.MapCache=mapData;
|
|
44409
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.Bars)) return;
|
|
44410
|
+
|
|
44411
|
+
for(var i=0; i<this.Bars.length; ++i)
|
|
44412
|
+
{
|
|
44413
|
+
var groupItem=this.Bars[i];
|
|
44414
|
+
if (!groupItem || !IFrameSplitOperator.IsNonEmptyArray(groupItem.Point)) continue;
|
|
44415
|
+
|
|
44416
|
+
var clrConfig= { Color:groupItem.Color, Width:5, Name:groupItem.Name, Type:0 };
|
|
44417
|
+
if (IFrameSplitOperator.IsNumber(groupItem.Width)) clrConfig.Width=groupItem.Width;
|
|
44418
|
+
if (IFrameSplitOperator.IsNumber(groupItem.Type)) clrConfig.Type=groupItem.Type;
|
|
44419
|
+
|
|
44420
|
+
for(var j=0; j<groupItem.Point.length; ++j)
|
|
44421
|
+
{
|
|
44422
|
+
var point=groupItem.Point[j];
|
|
44423
|
+
var key=this.BuildKey(point);
|
|
44424
|
+
|
|
44425
|
+
var item={ Data:point, ColorConfig:clrConfig }
|
|
44426
|
+
if (mapData.has(key))
|
|
44427
|
+
{
|
|
44428
|
+
var mapItem=mapData.get(key);
|
|
44429
|
+
mapItem.Data.push(item);
|
|
44430
|
+
}
|
|
44431
|
+
else
|
|
44432
|
+
{
|
|
44433
|
+
mapData.set(key,{ Data:[item] });
|
|
44434
|
+
}
|
|
44435
|
+
}
|
|
44436
|
+
}
|
|
44437
|
+
}
|
|
44438
|
+
|
|
44394
44439
|
this.Draw=function()
|
|
44395
44440
|
{
|
|
44396
44441
|
if (!this.IsShow || this.ChartFrame.IsMinSize || !this.IsVisible) return;
|
|
44397
44442
|
if (this.IsShowIndexTitleOnly()) return;
|
|
44398
44443
|
if (this.IsHideScriptIndex()) return;
|
|
44399
|
-
if (!this.Data || this.Data.
|
|
44444
|
+
if (!this.Data || !IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return; //k线数据
|
|
44445
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.Bars)) return;
|
|
44446
|
+
if (!this.MapCache || this.MapCache.size<=0) return;
|
|
44400
44447
|
|
|
44401
44448
|
this.IsHScreen=(this.ChartFrame.IsHScreen===true);
|
|
44402
44449
|
var xPointCount=this.ChartFrame.XPointCount;
|
|
44403
|
-
var offset=this.Data.DataOffset;
|
|
44404
44450
|
var dataWidth=this.ChartFrame.DataWidth;
|
|
44405
|
-
var
|
|
44451
|
+
var distanceWidth=this.ChartFrame.DistanceWidth;
|
|
44452
|
+
var isMinute=this.IsMinuteFrame();
|
|
44406
44453
|
|
|
44407
|
-
var
|
|
44408
|
-
|
|
44454
|
+
var border=this.GetBorder();
|
|
44455
|
+
if (this.IsHScreen)
|
|
44409
44456
|
{
|
|
44410
|
-
var
|
|
44411
|
-
var
|
|
44412
|
-
|
|
44413
|
-
if (item.Width>0)
|
|
44414
|
-
{
|
|
44415
|
-
drawPoints.Width=item.Width*pixelRatio;
|
|
44416
|
-
if (drawPoints.Width>dataWidth) drawPoints.Width=dataWidth;
|
|
44417
|
-
}
|
|
44418
|
-
else
|
|
44419
|
-
{
|
|
44420
|
-
if(drawPoints.Width<4) drawPoints.Width=1*pixelRatio;
|
|
44421
|
-
}
|
|
44422
|
-
|
|
44423
|
-
for(var j in item.Point)
|
|
44424
|
-
{
|
|
44425
|
-
var point=item.Point[j];
|
|
44426
|
-
if (!IFrameSplitOperator.IsNumber(point.Index)) continue;
|
|
44427
|
-
|
|
44428
|
-
var index=point.Index-offset;
|
|
44429
|
-
if (index>=0 && index<xPointCount)
|
|
44430
|
-
{
|
|
44431
|
-
var x=this.ChartFrame.GetXFromIndex(index);
|
|
44432
|
-
var y=this.ChartFrame.GetYFromData(point.Value);
|
|
44433
|
-
var y2=this.ChartFrame.GetYFromData(point.Value2);
|
|
44434
|
-
drawPoints.Point.push({X:x, Y:y, Y2:y2});
|
|
44435
|
-
}
|
|
44436
|
-
}
|
|
44437
|
-
|
|
44438
|
-
if (drawPoints.Point.length>0) drawBars.push(drawPoints)
|
|
44457
|
+
var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
|
|
44458
|
+
var chartright=border.BottomEx;
|
|
44459
|
+
var chartLeft=border.TopEx;
|
|
44439
44460
|
}
|
|
44440
|
-
|
|
44441
|
-
for(var i in drawBars)
|
|
44461
|
+
else
|
|
44442
44462
|
{
|
|
44443
|
-
var
|
|
44444
|
-
|
|
44445
|
-
|
|
44446
|
-
if (item.Type==1) this.DrawHollowBar(item);
|
|
44447
|
-
else this.DrawFillBar(item);
|
|
44448
|
-
}
|
|
44449
|
-
else
|
|
44450
|
-
{
|
|
44451
|
-
this.DrawLineBar(item);
|
|
44452
|
-
}
|
|
44463
|
+
var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
|
|
44464
|
+
var chartright=border.RightEx;
|
|
44465
|
+
var chartLeft=border.LeftEx;
|
|
44453
44466
|
}
|
|
44454
|
-
}
|
|
44455
44467
|
|
|
44456
|
-
|
|
44457
|
-
|
|
44458
|
-
this.
|
|
44459
|
-
var backupLineWidth=this.Canvas.lineWidth;
|
|
44460
|
-
this.Canvas.lineWidth=bar.Width;
|
|
44461
|
-
for(var i in bar.Point)
|
|
44468
|
+
//计算所有柱子位置
|
|
44469
|
+
var mapBar=new Map();
|
|
44470
|
+
for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
|
|
44462
44471
|
{
|
|
44463
|
-
var
|
|
44472
|
+
var kItem=this.Data.Data[i];
|
|
44473
|
+
var key=this.BuildKey(kItem);
|
|
44474
|
+
if (!this.MapCache.has(key)) continue;
|
|
44475
|
+
var mapItem=this.MapCache.get(key);
|
|
44476
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(mapItem.Data)) continue;
|
|
44464
44477
|
|
|
44465
|
-
|
|
44466
|
-
if (this.IsHScreen)
|
|
44478
|
+
if (isMinute)
|
|
44467
44479
|
{
|
|
44468
|
-
this.
|
|
44469
|
-
this.Canvas.lineTo(ToFixedPoint(item.Y2),ToFixedPoint(item.X));
|
|
44480
|
+
var x=this.ChartFrame.GetXFromIndex(j);
|
|
44470
44481
|
}
|
|
44471
44482
|
else
|
|
44472
44483
|
{
|
|
44473
|
-
|
|
44474
|
-
|
|
44484
|
+
var left=xOffset;
|
|
44485
|
+
var right=xOffset+dataWidth;
|
|
44486
|
+
if (right>chartright) break;
|
|
44487
|
+
var x=left+(right-left)/2;
|
|
44475
44488
|
}
|
|
44476
|
-
|
|
44477
|
-
this.
|
|
44489
|
+
|
|
44490
|
+
this.CalculateItem(mapItem, kItem, x, mapBar);
|
|
44478
44491
|
}
|
|
44479
44492
|
|
|
44480
|
-
|
|
44493
|
+
if (mapBar.size<=0) return;
|
|
44494
|
+
|
|
44495
|
+
this.Canvas.save();
|
|
44496
|
+
this.ClipClient(this.IsHScreen);
|
|
44497
|
+
|
|
44498
|
+
this.DrawAllBar(mapBar);
|
|
44499
|
+
|
|
44500
|
+
this.Canvas.restore();
|
|
44481
44501
|
}
|
|
44482
44502
|
|
|
44483
|
-
this.
|
|
44503
|
+
this.CalculateItem=function(groupItem, kItem, x, mapBar)
|
|
44484
44504
|
{
|
|
44485
|
-
|
|
44486
|
-
for(var i in bar.Point)
|
|
44505
|
+
for(var i=0; i<groupItem.Data.length; ++i)
|
|
44487
44506
|
{
|
|
44488
|
-
var item=
|
|
44489
|
-
var
|
|
44490
|
-
|
|
44491
|
-
|
|
44492
|
-
|
|
44493
|
-
|
|
44494
|
-
|
|
44495
|
-
|
|
44496
|
-
|
|
44507
|
+
var item=groupItem.Data[i];
|
|
44508
|
+
var value=item.Data.Value;
|
|
44509
|
+
if (IFrameSplitOperator.IsString(item.Data.Value)) value=this.GetKValue(kItem,item.Data.Value);
|
|
44510
|
+
if (!IFrameSplitOperator.IsNumber(value)) continue;
|
|
44511
|
+
|
|
44512
|
+
var value2=item.Data.Value2;
|
|
44513
|
+
if (IFrameSplitOperator.IsString(item.Data.Value2)) value2=this.GetKValue(kItem,item.Data.Value2);
|
|
44514
|
+
if (!IFrameSplitOperator.IsNumber(value2)) continue;
|
|
44515
|
+
|
|
44516
|
+
var y=this.ChartFrame.GetYFromData(value, false);
|
|
44517
|
+
var y2=this.ChartFrame.GetYFromData(value2, false);
|
|
44518
|
+
|
|
44519
|
+
var strConfig=JSON.stringify(item.ColorConfig);
|
|
44520
|
+
if (!mapBar.has(strConfig)) mapBar.set(strConfig, { AryBar:[]});
|
|
44521
|
+
var mapItem=mapBar.get(strConfig);
|
|
44522
|
+
|
|
44523
|
+
mapItem.AryBar.push({ X:x, Y:y, Y2:y2, Data:item });
|
|
44497
44524
|
}
|
|
44498
44525
|
}
|
|
44499
44526
|
|
|
44500
|
-
|
|
44527
|
+
|
|
44528
|
+
this.DrawAllBar=function(mapBar)
|
|
44501
44529
|
{
|
|
44502
|
-
|
|
44503
|
-
|
|
44504
|
-
for(var
|
|
44530
|
+
var pixelRatio=GetDevicePixelRatio();
|
|
44531
|
+
|
|
44532
|
+
for(var mapItem of mapBar)
|
|
44505
44533
|
{
|
|
44506
|
-
|
|
44507
|
-
|
|
44508
|
-
var y=Math.min(item.Y,item.Y2);
|
|
44509
|
-
var barWidth=bar.Width;
|
|
44510
|
-
var barHeight=Math.abs(item.Y-item.Y2);
|
|
44511
|
-
this.Canvas.beginPath();
|
|
44512
|
-
if (this.IsHScreen)
|
|
44513
|
-
this.Canvas.rect(ToFixedPoint(y),ToFixedPoint(x),ToFixedRect(barHeight),ToFixedRect(barWidth));
|
|
44514
|
-
else
|
|
44515
|
-
this.Canvas.rect(ToFixedPoint(x),ToFixedPoint(y),ToFixedRect(barWidth),ToFixedRect(barHeight));
|
|
44534
|
+
aryBar=mapItem[1].AryBar;
|
|
44535
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(aryBar)) continue;
|
|
44516
44536
|
|
|
44517
|
-
|
|
44518
|
-
|
|
44537
|
+
var config=null;
|
|
44538
|
+
var path=new Path2D();
|
|
44539
|
+
var count=0;
|
|
44540
|
+
var drawType=-1; //1=直线 2=实心 3=空心
|
|
44541
|
+
var barWidth=1;
|
|
44542
|
+
for(var i=0;i<aryBar.length;++i)
|
|
44543
|
+
{
|
|
44544
|
+
var item=aryBar[i];
|
|
44545
|
+
if (!config)
|
|
44546
|
+
{
|
|
44547
|
+
config=item.Data.ColorConfig;
|
|
44548
|
+
barWidth=config.Width*pixelRatio;
|
|
44549
|
+
if (barWidth>4)
|
|
44550
|
+
{
|
|
44551
|
+
if (config.Type==0) drawType=2; //实心
|
|
44552
|
+
else if (config.Type==1) drawType=3; //空心
|
|
44553
|
+
else continue;
|
|
44554
|
+
}
|
|
44555
|
+
else //太细了, 直线
|
|
44556
|
+
{
|
|
44557
|
+
drawType=1;
|
|
44558
|
+
}
|
|
44559
|
+
}
|
|
44519
44560
|
|
|
44520
|
-
|
|
44561
|
+
if (drawType<=0) continue;
|
|
44562
|
+
|
|
44563
|
+
if (drawType==1)
|
|
44564
|
+
{
|
|
44565
|
+
this.Canvas.beginPath();
|
|
44566
|
+
if (this.IsHScreen)
|
|
44567
|
+
{
|
|
44568
|
+
this.Canvas.moveTo(ToFixedPoint(item.Y),ToFixedPoint(item.X));
|
|
44569
|
+
this.Canvas.lineTo(ToFixedPoint(item.Y2),ToFixedPoint(item.X));
|
|
44570
|
+
}
|
|
44571
|
+
else
|
|
44572
|
+
{
|
|
44573
|
+
this.Canvas.moveTo(ToFixedPoint(item.X),ToFixedPoint(item.Y));
|
|
44574
|
+
this.Canvas.lineTo(ToFixedPoint(item.X),ToFixedPoint(item.Y2));
|
|
44575
|
+
}
|
|
44576
|
+
++count;
|
|
44577
|
+
}
|
|
44578
|
+
else if (drawType==2) //实心
|
|
44579
|
+
{
|
|
44580
|
+
var x=item.X-(barWidth/2);
|
|
44581
|
+
var y=Math.min(item.Y,item.Y2);
|
|
44582
|
+
var barWidth=barWidth;
|
|
44583
|
+
var barHeight=Math.abs(item.Y-item.Y2);
|
|
44584
|
+
|
|
44585
|
+
var barPath = new Path2D();
|
|
44586
|
+
if (this.IsHScreen)
|
|
44587
|
+
barPath.rect(ToFixedRect(y),ToFixedRect(x),ToFixedRect(barHeight),ToFixedRect(barWidth))
|
|
44588
|
+
else
|
|
44589
|
+
barPath.rect(ToFixedRect(x),ToFixedRect(y),ToFixedRect(barWidth),ToFixedRect(barHeight))
|
|
44590
|
+
|
|
44591
|
+
path.addPath(barPath);
|
|
44592
|
+
++count;
|
|
44593
|
+
}
|
|
44594
|
+
else if (drawType==3) //空心
|
|
44595
|
+
{
|
|
44596
|
+
var x=item.X-(barWidth/2);
|
|
44597
|
+
var y=Math.min(item.Y,item.Y2);
|
|
44598
|
+
var barWidth=barWidth;
|
|
44599
|
+
var barHeight=Math.abs(item.Y-item.Y2);
|
|
44600
|
+
|
|
44601
|
+
var barPath = new Path2D();
|
|
44602
|
+
if (this.IsHScreen)
|
|
44603
|
+
barPath.rect(ToFixedPoint(y),ToFixedPoint(x),ToFixedPoint(barHeight),ToFixedPoint(barWidth))
|
|
44604
|
+
else
|
|
44605
|
+
barPath.rect(ToFixedPoint(x),ToFixedPoint(y),ToFixedPoint(barWidth),ToFixedPoint(barHeight))
|
|
44606
|
+
|
|
44607
|
+
path.addPath(barPath);
|
|
44608
|
+
++count;
|
|
44609
|
+
}
|
|
44610
|
+
}
|
|
44611
|
+
|
|
44612
|
+
|
|
44613
|
+
if (count>0 && drawType>0 && config)
|
|
44614
|
+
{
|
|
44615
|
+
if (drawType==1)
|
|
44616
|
+
{
|
|
44617
|
+
this.Canvas.lineWidth=1*pixelRatio;
|
|
44618
|
+
this.Canvas.strokeStyle=config.Color;
|
|
44619
|
+
this.Canvas.stroke();
|
|
44620
|
+
}
|
|
44621
|
+
else if (drawType==2)
|
|
44622
|
+
{
|
|
44623
|
+
this.Canvas.fillStyle=config.Color; //背景填充颜色
|
|
44624
|
+
this.Canvas.fill(path);
|
|
44625
|
+
}
|
|
44626
|
+
else if (drawType==3)
|
|
44627
|
+
{
|
|
44628
|
+
this.Canvas.lineWidth=1*pixelRatio;
|
|
44629
|
+
this.Canvas.strokeStyle=config.Color;
|
|
44630
|
+
this.Canvas.stroke(path);
|
|
44631
|
+
}
|
|
44632
|
+
}
|
|
44633
|
+
|
|
44634
|
+
}
|
|
44521
44635
|
}
|
|
44522
44636
|
|
|
44523
44637
|
this.GetMaxMin=function()
|
|
44524
44638
|
{
|
|
44525
44639
|
var range={ Min:null, Max:null };
|
|
44640
|
+
if(!this.Data || !IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return range;
|
|
44641
|
+
if (!this.MapCache || this.MapCache.size<=0) return range;
|
|
44526
44642
|
var xPointCount=this.ChartFrame.XPointCount;
|
|
44527
|
-
|
|
44528
|
-
var
|
|
44529
|
-
for(var i in this.Bars)
|
|
44643
|
+
|
|
44644
|
+
for(var i=this.Data.DataOffset,j=0, k=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
|
|
44530
44645
|
{
|
|
44531
|
-
var
|
|
44532
|
-
|
|
44646
|
+
var kItem=this.Data.Data[i];
|
|
44647
|
+
var key=this.BuildKey(kItem);
|
|
44648
|
+
if (!this.MapCache.has(key)) continue;
|
|
44649
|
+
var mapItem=this.MapCache.get(key);
|
|
44650
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(mapItem.Data)) continue;
|
|
44651
|
+
|
|
44652
|
+
for(k=0;k<mapItem.Data.length;++k)
|
|
44533
44653
|
{
|
|
44534
|
-
var
|
|
44535
|
-
|
|
44536
|
-
|
|
44537
|
-
|
|
44538
|
-
|
|
44539
|
-
|
|
44540
|
-
|
|
44541
|
-
|
|
44542
|
-
|
|
44543
|
-
|
|
44654
|
+
var item=mapItem.Data[k];
|
|
44655
|
+
var value=item.Data.Value;
|
|
44656
|
+
if (IFrameSplitOperator.IsString(item.Data.Value)) value=this.GetKValue(kItem,item.Data.Value);
|
|
44657
|
+
if (!IFrameSplitOperator.IsNumber(value)) continue;
|
|
44658
|
+
var value2=item.Data.Value2;
|
|
44659
|
+
if (IFrameSplitOperator.IsString(item.Data.Value2)) value2=this.GetKValue(kItem,item.Data.Value2);
|
|
44660
|
+
if (!IFrameSplitOperator.IsNumber(value2)) continue;
|
|
44661
|
+
|
|
44662
|
+
var minValue=Math.min(value, value2);
|
|
44663
|
+
var maxValue=Math.max(value, value2);
|
|
44664
|
+
if (range.Max==null) range.Max=maxValue;
|
|
44665
|
+
else if (range.Max<maxValue) range.Max=maxValue;
|
|
44666
|
+
if (range.Min==null) range.Min=minValue;
|
|
44667
|
+
else if (range.Min>minValue) range.Min=minValue;
|
|
44544
44668
|
}
|
|
44545
44669
|
}
|
|
44546
44670
|
|
|
@@ -44882,7 +45006,7 @@ function ChartMultiLine()
|
|
|
44882
45006
|
}
|
|
44883
45007
|
}
|
|
44884
45008
|
|
|
44885
|
-
//
|
|
45009
|
+
// 多个点集合2.0 支持横屏
|
|
44886
45010
|
function ChartMultiPoint()
|
|
44887
45011
|
{
|
|
44888
45012
|
this.newMethod=IChartPainting; //派生
|
|
@@ -44900,12 +45024,6 @@ function ChartMultiPoint()
|
|
|
44900
45024
|
this.MapCache=null; //key=date/date-time value={ Data:[] }
|
|
44901
45025
|
this.GetKValue=ChartData.GetKValue;
|
|
44902
45026
|
|
|
44903
|
-
this.BuildKey=function(item)
|
|
44904
|
-
{
|
|
44905
|
-
if (IFrameSplitOperator.IsNumber(item.Time)) return `${item.Date}-${item.Time}`;
|
|
44906
|
-
else return item.Date;
|
|
44907
|
-
}
|
|
44908
|
-
|
|
44909
45027
|
this.GetItem=function(kItem)
|
|
44910
45028
|
{
|
|
44911
45029
|
if (!this.MapCache || this.MapCache.size<=0) return null;
|
|
@@ -44929,6 +45047,7 @@ function ChartMultiPoint()
|
|
|
44929
45047
|
|
|
44930
45048
|
var clrConfig= { Color:groupItem.Color, BGColor:groupItem.BGColor, LineWidth:this.LineWidth, Radius:this.PointRadius, Name:groupItem.Name };
|
|
44931
45049
|
if (IFrameSplitOperator.IsNumber(groupItem.PointRadius)) clrConfig.Radius=groupItem.PointRadius;
|
|
45050
|
+
if (IFrameSplitOperator.IsNumber(groupItem.LineWidth)) clrConfig.LineWidth=groupItem.LineWidth;
|
|
44932
45051
|
|
|
44933
45052
|
for(var j=0; j<groupItem.Point.length; ++j)
|
|
44934
45053
|
{
|
|
@@ -45053,7 +45172,7 @@ function ChartMultiPoint()
|
|
|
45053
45172
|
if (this.IsHScreen)
|
|
45054
45173
|
pointPath.arc(item.Y,item.X,config.Radius*pixelRatio,0,360,false);
|
|
45055
45174
|
else
|
|
45056
|
-
pointPath.arc(item.X,item.Y,config.Radius
|
|
45175
|
+
pointPath.arc(item.X,item.Y,config.Radius*pixelRatio,0,360,false);
|
|
45057
45176
|
|
|
45058
45177
|
path.addPath(pointPath);
|
|
45059
45178
|
++count;
|
|
@@ -45081,7 +45200,7 @@ function ChartMultiPoint()
|
|
|
45081
45200
|
{
|
|
45082
45201
|
var range={ Min:null, Max:null };
|
|
45083
45202
|
if(!this.Data || !IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return range;
|
|
45084
|
-
if (!this.MapCache || this.MapCache.size<=0) return;
|
|
45203
|
+
if (!this.MapCache || this.MapCache.size<=0) return range;
|
|
45085
45204
|
var xPointCount=this.ChartFrame.XPointCount;
|
|
45086
45205
|
|
|
45087
45206
|
for(var i=this.Data.DataOffset,j=0, k=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
|
|
@@ -45110,7 +45229,7 @@ function ChartMultiPoint()
|
|
|
45110
45229
|
}
|
|
45111
45230
|
}
|
|
45112
45231
|
|
|
45113
|
-
// 多文本集合 支持横屏
|
|
45232
|
+
// 多文本集合2.0 支持横屏
|
|
45114
45233
|
function ChartMultiText()
|
|
45115
45234
|
{
|
|
45116
45235
|
this.newMethod=IChartPainting; //派生
|
|
@@ -45118,58 +45237,38 @@ function ChartMultiText()
|
|
|
45118
45237
|
delete this.newMethod;
|
|
45119
45238
|
|
|
45120
45239
|
this.ClassName="ChartMultiText";
|
|
45121
|
-
this.Texts=[]; //[ {
|
|
45240
|
+
this.Texts=[]; //[ {Date:, Time, Value:, Text:, Color:, Font: , Baseline:, Line:{ Color:, Dash:[虚线点], KData:"H/L", Offset:[5,10], Width:线粗细 }} ]
|
|
45122
45241
|
this.Font=g_JSChartResource.DefaultTextFont;
|
|
45123
45242
|
this.Color=g_JSChartResource.DefaultTextColor;
|
|
45124
45243
|
this.IsHScreen=false; //是否横屏
|
|
45125
45244
|
|
|
45126
|
-
this.
|
|
45127
|
-
|
|
45128
|
-
if (IFrameSplitOperator.IsNumber(item.Time))
|
|
45129
|
-
{
|
|
45130
|
-
var key=`${item.Date}-${item.Time}`;
|
|
45131
|
-
}
|
|
45132
|
-
else
|
|
45133
|
-
{
|
|
45134
|
-
var key=`${item.Date}`;
|
|
45135
|
-
}
|
|
45136
|
-
|
|
45137
|
-
return key;
|
|
45138
|
-
}
|
|
45245
|
+
this.MapCache=null; //key=date/date-time value={ Data:[] }
|
|
45246
|
+
this.GetKValue=ChartData.GetKValue;
|
|
45139
45247
|
|
|
45140
|
-
this.
|
|
45248
|
+
this.BuildCacheData=function()
|
|
45141
45249
|
{
|
|
45142
|
-
var
|
|
45143
|
-
|
|
45250
|
+
var mapData=new Map();
|
|
45251
|
+
this.MapCache=mapData;
|
|
45252
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.Texts)) return;
|
|
45144
45253
|
|
|
45145
|
-
var
|
|
45146
|
-
for(var i=0; i<this.Texts.length; ++i)
|
|
45254
|
+
for(var i=0;i<this.Texts.length;++i)
|
|
45147
45255
|
{
|
|
45148
45256
|
var item=this.Texts[i];
|
|
45149
|
-
|
|
45150
|
-
if (
|
|
45151
|
-
|
|
45152
|
-
var index=item.Index-offset;
|
|
45153
|
-
if (index>=0 && index<xPointCount)
|
|
45257
|
+
var key=this.BuildKey(item);
|
|
45258
|
+
if (mapData.has(key))
|
|
45154
45259
|
{
|
|
45155
|
-
var
|
|
45156
|
-
|
|
45157
|
-
|
|
45158
|
-
|
|
45159
|
-
|
|
45160
|
-
}
|
|
45161
|
-
else
|
|
45162
|
-
{
|
|
45163
|
-
var textItem={ Data:[item] };
|
|
45164
|
-
mapText.set(key, textItem);
|
|
45165
|
-
}
|
|
45260
|
+
var mapItem=mapData.get(key);
|
|
45261
|
+
mapItem.Data.push(item);
|
|
45262
|
+
}
|
|
45263
|
+
else
|
|
45264
|
+
{
|
|
45265
|
+
mapData.set(key,{ Data:[item] });
|
|
45166
45266
|
}
|
|
45167
45267
|
}
|
|
45168
|
-
|
|
45169
|
-
return mapText;
|
|
45170
45268
|
}
|
|
45171
45269
|
|
|
45172
|
-
|
|
45270
|
+
|
|
45271
|
+
this.DrawAllText=function()
|
|
45173
45272
|
{
|
|
45174
45273
|
var bHScreen=(this.ChartFrame.IsHScreen===true);
|
|
45175
45274
|
var isMinute=this.IsMinuteFrame();
|
|
@@ -45206,21 +45305,29 @@ function ChartMultiText()
|
|
|
45206
45305
|
if (!kItem) continue;
|
|
45207
45306
|
|
|
45208
45307
|
var key=this.BuildKey(kItem);
|
|
45209
|
-
if (!
|
|
45308
|
+
if (!this.MapCache.has(key)) continue;
|
|
45309
|
+
var mapItem=this.MapCache.get(key);
|
|
45310
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(mapItem.Data)) continue;
|
|
45210
45311
|
|
|
45211
45312
|
var left=xOffset;
|
|
45212
45313
|
var right=xOffset+dataWidth;
|
|
45213
45314
|
if (right>chartright) break;
|
|
45214
45315
|
var x=left+(right-left)/2;
|
|
45215
45316
|
|
|
45216
|
-
var
|
|
45217
|
-
for(var k=0;k<textItem.Data.length;++k)
|
|
45317
|
+
for(var k=0;k<mapItem.Data.length;++k)
|
|
45218
45318
|
{
|
|
45219
|
-
var item=
|
|
45319
|
+
var item=mapItem.Data[k];
|
|
45220
45320
|
var y=top;
|
|
45221
45321
|
if (item.Value=="TOP") y=top;
|
|
45222
45322
|
else if (item.Value=="BOTTOM") y=bottom;
|
|
45223
|
-
else
|
|
45323
|
+
else
|
|
45324
|
+
{
|
|
45325
|
+
var price=item.Value;
|
|
45326
|
+
if (IFrameSplitOperator.IsString(item.Value)) price=this.GetKValue(kItem,item.Value);
|
|
45327
|
+
|
|
45328
|
+
y=this.ChartFrame.GetYFromData(price, false);
|
|
45329
|
+
}
|
|
45330
|
+
|
|
45224
45331
|
|
|
45225
45332
|
if (item.Color) this.Canvas.fillStyle = item.Color;
|
|
45226
45333
|
else this.Canvas.fillStyle = this.Color;
|
|
@@ -45305,18 +45412,16 @@ function ChartMultiText()
|
|
|
45305
45412
|
if (!this.IsShow || this.ChartFrame.IsMinSize || !this.IsVisible) return;
|
|
45306
45413
|
if (this.IsShowIndexTitleOnly()) return;
|
|
45307
45414
|
if (this.IsHideScriptIndex()) return;
|
|
45308
|
-
if (!this.Data || this.Data.
|
|
45309
|
-
if (!this.Texts) return;
|
|
45415
|
+
if (!this.Data || !IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return; //k线数据
|
|
45416
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.Texts)) return;
|
|
45417
|
+
if (!this.MapCache || this.MapCache.size<=0) return;
|
|
45310
45418
|
|
|
45311
45419
|
this.IsHScreen=(this.ChartFrame.IsHScreen===true);
|
|
45312
45420
|
|
|
45313
|
-
var mapText=this.GetShowTextData();
|
|
45314
|
-
if (mapText.size<=0) return;
|
|
45315
|
-
|
|
45316
45421
|
this.Canvas.save();
|
|
45317
45422
|
this.ClipClient(this.IsHScreen);
|
|
45318
45423
|
|
|
45319
|
-
this.DrawAllText(
|
|
45424
|
+
this.DrawAllText();
|
|
45320
45425
|
|
|
45321
45426
|
this.Canvas.restore();
|
|
45322
45427
|
}
|
|
@@ -45326,21 +45431,29 @@ function ChartMultiText()
|
|
|
45326
45431
|
var range={ Min:null, Max:null };
|
|
45327
45432
|
if (!this.Texts) return range;
|
|
45328
45433
|
|
|
45434
|
+
if(!this.Data || !IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return range;
|
|
45435
|
+
if (!this.MapCache || this.MapCache.size<=0) return range;
|
|
45329
45436
|
var xPointCount=this.ChartFrame.XPointCount;
|
|
45330
|
-
var start=this.Data.DataOffset;
|
|
45331
|
-
var end=start+xPointCount;
|
|
45332
45437
|
|
|
45333
|
-
for(var i
|
|
45438
|
+
for(var i=this.Data.DataOffset,j=0, k=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
|
|
45334
45439
|
{
|
|
45335
|
-
var
|
|
45336
|
-
|
|
45440
|
+
var kItem=this.Data.Data[i];
|
|
45441
|
+
var key=this.BuildKey(kItem);
|
|
45442
|
+
if (!this.MapCache.has(key)) continue;
|
|
45443
|
+
var mapItem=this.MapCache.get(key);
|
|
45444
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(mapItem.Data)) continue;
|
|
45337
45445
|
|
|
45338
|
-
|
|
45446
|
+
for(k=0;k<mapItem.Data.length;++k)
|
|
45339
45447
|
{
|
|
45340
|
-
|
|
45341
|
-
|
|
45342
|
-
if (
|
|
45343
|
-
|
|
45448
|
+
var item=mapItem.Data[k];
|
|
45449
|
+
var value=item.Value;
|
|
45450
|
+
if (IFrameSplitOperator.IsString(item.Value)) value=this.GetKValue(kItem,item.Value);
|
|
45451
|
+
if (!IFrameSplitOperator.IsNumber(value)) continue;
|
|
45452
|
+
|
|
45453
|
+
if (range.Max==null) range.Max=value;
|
|
45454
|
+
else if (range.Max<value) range.Max=value;
|
|
45455
|
+
if (range.Min==null) range.Min=value;
|
|
45456
|
+
else if (range.Min>value) range.Min=value;
|
|
45344
45457
|
}
|
|
45345
45458
|
}
|
|
45346
45459
|
|
|
@@ -45857,7 +45970,7 @@ function ChartMultiHtmlDom()
|
|
|
45857
45970
|
}
|
|
45858
45971
|
}
|
|
45859
45972
|
|
|
45860
|
-
//绘制SVG图标
|
|
45973
|
+
//绘制SVG图标 2.0
|
|
45861
45974
|
function ChartDrawSVG()
|
|
45862
45975
|
{
|
|
45863
45976
|
this.newMethod=IChartPainting; //派生
|
|
@@ -61471,6 +61584,41 @@ function DynamicChartTitlePainting()
|
|
|
61471
61584
|
return aryText;
|
|
61472
61585
|
}
|
|
61473
61586
|
|
|
61587
|
+
this.ForamtMultiBarTitle=function(dataIndex, dataInfo)
|
|
61588
|
+
{
|
|
61589
|
+
if (!dataInfo.GetItemCallback) return null;
|
|
61590
|
+
if (!dataInfo.Data || !IFrameSplitOperator.IsNonEmptyArray(dataInfo.Data.Data)) return null;
|
|
61591
|
+
var kItem=dataInfo.Data.Data[dataIndex];
|
|
61592
|
+
if (!kItem) return null;
|
|
61593
|
+
|
|
61594
|
+
var group=dataInfo.GetItemCallback(kItem);
|
|
61595
|
+
if (!group || !IFrameSplitOperator.IsNonEmptyArray(group.Data)) return null;
|
|
61596
|
+
|
|
61597
|
+
var aryText=[];
|
|
61598
|
+
for(var i=0;i<group.Data.length;++i)
|
|
61599
|
+
{
|
|
61600
|
+
var item=group.Data[i];
|
|
61601
|
+
var config=item.ColorConfig;
|
|
61602
|
+
|
|
61603
|
+
var color=null;
|
|
61604
|
+
if (config.BGColor) color=config.BGColor;
|
|
61605
|
+
else if (config.Color) color=config.Color;
|
|
61606
|
+
|
|
61607
|
+
if (config.Name) aryText.push({ Text:`${config.Name}:`, Color:color });
|
|
61608
|
+
|
|
61609
|
+
var value=item.Data.Value;
|
|
61610
|
+
if (IFrameSplitOperator.IsString(item.Data.Value)) value=ChartData.GetKValue(kItem, item.Data.Value);
|
|
61611
|
+
|
|
61612
|
+
var value2=item.Data.Value2;
|
|
61613
|
+
if (IFrameSplitOperator.IsString(item.Data.Value2)) value2=ChartData.GetKValue(kItem, item.Data.Value2);
|
|
61614
|
+
aryText.push({ Text:`[${this.FormatValue(value, dataInfo)}, ${this.FormatValue(value2, dataInfo)}] `, Color:color});
|
|
61615
|
+
}
|
|
61616
|
+
|
|
61617
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(aryText)) return null;
|
|
61618
|
+
|
|
61619
|
+
return aryText;
|
|
61620
|
+
}
|
|
61621
|
+
|
|
61474
61622
|
this.FormatVPVRTitle=function(pt, dataInfo)
|
|
61475
61623
|
{
|
|
61476
61624
|
var chart=dataInfo.Chart;
|
|
@@ -61814,6 +61962,12 @@ function DynamicChartTitlePainting()
|
|
|
61814
61962
|
if (!aryText) return null;
|
|
61815
61963
|
return { Text:null, ArrayText:aryText };
|
|
61816
61964
|
}
|
|
61965
|
+
else if (item.DataType=="ChartMultiBar")
|
|
61966
|
+
{
|
|
61967
|
+
aryText=this.ForamtMultiBarTitle(dataIndex, item);
|
|
61968
|
+
if (!aryText) return null;
|
|
61969
|
+
return { Text:null, ArrayText:aryText };
|
|
61970
|
+
}
|
|
61817
61971
|
|
|
61818
61972
|
value=item.Data.Data[dataIndex];
|
|
61819
61973
|
|
|
@@ -62239,6 +62393,11 @@ function DynamicChartTitlePainting()
|
|
|
62239
62393
|
aryText=this.ForamtMultiPointTitle(dataIndex, item);
|
|
62240
62394
|
if (!aryText) continue;
|
|
62241
62395
|
}
|
|
62396
|
+
else if (item.DataType=="ChartMultiBar")
|
|
62397
|
+
{
|
|
62398
|
+
aryText=this.ForamtMultiBarTitle(dataIndex, item);
|
|
62399
|
+
if (!aryText) continue;
|
|
62400
|
+
}
|
|
62242
62401
|
else
|
|
62243
62402
|
{
|
|
62244
62403
|
valueText=this.FormatValue(value,item);
|
|
@@ -123267,7 +123426,7 @@ function ScriptIndex(name,script,args,option)
|
|
|
123267
123426
|
chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;
|
|
123268
123427
|
chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;
|
|
123269
123428
|
|
|
123270
|
-
chart.Data=hqChart.
|
|
123429
|
+
chart.Data=hqChart.GetKData(); //绑定K线
|
|
123271
123430
|
chart.PointGroup=varItem.Draw.DrawData;
|
|
123272
123431
|
if (varItem.Draw.Name) chart.Name=varItem.Draw.Name;
|
|
123273
123432
|
chart.BuildCacheData();
|
|
@@ -123290,17 +123449,18 @@ function ScriptIndex(name,script,args,option)
|
|
|
123290
123449
|
chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;
|
|
123291
123450
|
chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;
|
|
123292
123451
|
|
|
123293
|
-
chart.Data=hqChart.
|
|
123452
|
+
chart.Data=hqChart.GetKData();//绑定K线
|
|
123294
123453
|
chart.Bars=varItem.Draw.DrawData;
|
|
123295
|
-
|
|
123296
|
-
var titleIndex=windowIndex+1;
|
|
123297
|
-
var titleData=new DynamicTitleData({ KData:chart.Data, BarData:chart.Bars },varItem.Name,null);
|
|
123298
|
-
titleData.IsShow=false;
|
|
123299
|
-
titleData.DataType="MULTI_BAR";
|
|
123300
|
-
hqChart.TitlePaint[titleIndex].Data[id]=titleData;
|
|
123454
|
+
chart.BuildCacheData();
|
|
123301
123455
|
|
|
123302
123456
|
this.SetChartIndexName(chart);
|
|
123303
123457
|
hqChart.ChartPaint.push(chart);
|
|
123458
|
+
|
|
123459
|
+
var titleIndex=windowIndex+1;
|
|
123460
|
+
var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);
|
|
123461
|
+
titleData.DataType="ChartMultiBar";
|
|
123462
|
+
titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
|
|
123463
|
+
hqChart.TitlePaint[titleIndex].Data[id]=titleData;
|
|
123304
123464
|
}
|
|
123305
123465
|
|
|
123306
123466
|
this.CreateMultiText=function(hqChart,windowIndex,varItem,i)
|
|
@@ -123311,8 +123471,10 @@ function ScriptIndex(name,script,args,option)
|
|
|
123311
123471
|
chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;
|
|
123312
123472
|
chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;
|
|
123313
123473
|
|
|
123314
|
-
chart.Data=hqChart.
|
|
123474
|
+
chart.Data=hqChart.GetKData();//绑定K线
|
|
123315
123475
|
chart.Texts=varItem.Draw.DrawData;
|
|
123476
|
+
chart.BuildCacheData();
|
|
123477
|
+
|
|
123316
123478
|
this.SetChartIndexName(chart);
|
|
123317
123479
|
hqChart.ChartPaint.push(chart);
|
|
123318
123480
|
}
|
|
@@ -123325,7 +123487,7 @@ function ScriptIndex(name,script,args,option)
|
|
|
123325
123487
|
chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;
|
|
123326
123488
|
chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;
|
|
123327
123489
|
|
|
123328
|
-
chart.Data=hqChart.
|
|
123490
|
+
chart.Data=hqChart.GetKData();//绑定K线
|
|
123329
123491
|
chart.Family=varItem.Draw.DrawData.Family;
|
|
123330
123492
|
chart.AryIcon= varItem.Draw.DrawData.Icon;
|
|
123331
123493
|
chart.BuildCacheData();
|
|
@@ -123341,10 +123503,8 @@ function ScriptIndex(name,script,args,option)
|
|
|
123341
123503
|
chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;
|
|
123342
123504
|
chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;
|
|
123343
123505
|
|
|
123344
|
-
|
|
123345
|
-
|
|
123346
|
-
else
|
|
123347
|
-
chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
123506
|
+
|
|
123507
|
+
chart.Data=hqChart.GetKData()
|
|
123348
123508
|
if (IFrameSplitOperator.IsBool(varItem.Draw.DrawData.EnableTooltip)) chart.EnableTooltip=varItem.Draw.DrawData.EnableTooltip;
|
|
123349
123509
|
if (IFrameSplitOperator.IsBool(varItem.Draw.DrawData.IsDrawFirst)) chart.IsDrawFirst=varItem.Draw.DrawData.IsDrawFirst;
|
|
123350
123510
|
if (varItem.Draw.BuildKeyCallback) chart.BuildKeyCallback=varItem.Draw.BuildKeyCallback;
|
|
@@ -124852,11 +125012,7 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
124852
125012
|
chart.ChartFrame=frame.Frame;
|
|
124853
125013
|
chart.Identify=overlayIndex.Identify;
|
|
124854
125014
|
|
|
124855
|
-
|
|
124856
|
-
chart.Data=hqChart.SourceData;
|
|
124857
|
-
else
|
|
124858
|
-
chart.Data=hqChart.ChartPaint[0].Data; //绑定K线
|
|
124859
|
-
|
|
125015
|
+
chart.Data=hqChart.GetKData();
|
|
124860
125016
|
chart.Family=varItem.Draw.Icon.Family;
|
|
124861
125017
|
chart.TextFont=g_JSChartResource.TIPICON.TextFont;
|
|
124862
125018
|
|
|
@@ -125004,7 +125160,7 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
125004
125160
|
chart.ChartFrame=frame.Frame;
|
|
125005
125161
|
chart.Identify=overlayIndex.Identify;
|
|
125006
125162
|
|
|
125007
|
-
chart.Data=hqChart.
|
|
125163
|
+
chart.Data=hqChart.GetKData();//绑定K线
|
|
125008
125164
|
chart.PointGroup=varItem.Draw.DrawData;
|
|
125009
125165
|
chart.BuildCacheData();
|
|
125010
125166
|
|
|
@@ -125054,14 +125210,16 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
125054
125210
|
chart.ChartFrame=frame.Frame;
|
|
125055
125211
|
chart.Identify=overlayIndex.Identify;
|
|
125056
125212
|
|
|
125057
|
-
chart.Data=hqChart.
|
|
125213
|
+
chart.Data=hqChart.GetKData();//绑定K线
|
|
125058
125214
|
chart.Bars=varItem.Draw.DrawData;
|
|
125215
|
+
chart.BuildCacheData();
|
|
125059
125216
|
|
|
125060
125217
|
var titleIndex=windowIndex+1;
|
|
125061
125218
|
var titlePaint=hqChart.TitlePaint[titleIndex];
|
|
125062
|
-
var titleData=new DynamicTitleData(
|
|
125063
|
-
titleData.
|
|
125064
|
-
titleData.
|
|
125219
|
+
var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);
|
|
125220
|
+
titleData.DataType="ChartMultiBar";
|
|
125221
|
+
titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
|
|
125222
|
+
|
|
125065
125223
|
titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;
|
|
125066
125224
|
|
|
125067
125225
|
this.SetChartIndexName(chart);
|
|
@@ -125079,8 +125237,10 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
125079
125237
|
chart.ChartFrame=frame.Frame;
|
|
125080
125238
|
chart.Identify=overlayIndex.Identify;
|
|
125081
125239
|
|
|
125082
|
-
chart.Data=hqChart.
|
|
125240
|
+
chart.Data=hqChart.GetKData();//绑定K线
|
|
125083
125241
|
chart.Texts=varItem.Draw.DrawData;
|
|
125242
|
+
chart.BuildCacheData();
|
|
125243
|
+
|
|
125084
125244
|
this.SetChartIndexName(chart);
|
|
125085
125245
|
frame.ChartPaint.push(chart);
|
|
125086
125246
|
}
|
|
@@ -125096,7 +125256,7 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
125096
125256
|
chart.ChartFrame=frame.Frame;
|
|
125097
125257
|
chart.Identify=overlayIndex.Identify;
|
|
125098
125258
|
|
|
125099
|
-
chart.Data=hqChart.
|
|
125259
|
+
chart.Data=hqChart.GetKData();//绑定K线
|
|
125100
125260
|
chart.Family=varItem.Draw.DrawData.Family;
|
|
125101
125261
|
chart.AryIcon= varItem.Draw.DrawData.Icon;
|
|
125102
125262
|
chart.BuildCacheData();
|
|
@@ -125114,11 +125274,8 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
125114
125274
|
chart.ChartBorder=frame.Frame.ChartBorder;
|
|
125115
125275
|
chart.ChartFrame=frame.Frame;
|
|
125116
125276
|
chart.Identify=overlayIndex.Identify;
|
|
125117
|
-
|
|
125118
|
-
|
|
125119
|
-
chart.Data=hqChart.SourceData;
|
|
125120
|
-
else
|
|
125121
|
-
chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
125277
|
+
chart.Data=hqChart.GetKData();
|
|
125278
|
+
|
|
125122
125279
|
|
|
125123
125280
|
if (IFrameSplitOperator.IsBool(varItem.Draw.DrawData.EnableTooltip)) chart.EnableTooltip=varItem.Draw.DrawData.EnableTooltip;
|
|
125124
125281
|
if (IFrameSplitOperator.IsBool(varItem.Draw.DrawData.IsDrawFirst)) chart.IsDrawFirst=varItem.Draw.DrawData.IsDrawFirst;
|
|
@@ -126223,7 +126380,7 @@ function APIScriptIndex(name,script,args,option, isOverlay)
|
|
|
126223
126380
|
drawItem.Text=draw.Text;
|
|
126224
126381
|
drawItem.Name=draw.Name;
|
|
126225
126382
|
drawItem.DrawType=draw.DrawType;
|
|
126226
|
-
drawItem.DrawData=
|
|
126383
|
+
drawItem.DrawData=draw.DrawData;
|
|
126227
126384
|
outVarItem.Draw=drawItem;
|
|
126228
126385
|
|
|
126229
126386
|
result.push(outVarItem);
|
|
@@ -126274,8 +126431,7 @@ function APIScriptIndex(name,script,args,option, isOverlay)
|
|
|
126274
126431
|
drawItem.Text=draw.Text;
|
|
126275
126432
|
drawItem.Name=draw.Name;
|
|
126276
126433
|
drawItem.DrawType=draw.DrawType;
|
|
126277
|
-
drawItem.DrawData=
|
|
126278
|
-
this.GetKLineData(drawItem.DrawData, hqChart);
|
|
126434
|
+
drawItem.DrawData=draw.DrawData;
|
|
126279
126435
|
outVarItem.Draw=drawItem;
|
|
126280
126436
|
result.push(outVarItem);
|
|
126281
126437
|
}
|
|
@@ -126770,8 +126926,7 @@ function APIScriptIndex(name,script,args,option, isOverlay)
|
|
|
126770
126926
|
drawItem.Text=draw.Text;
|
|
126771
126927
|
drawItem.Name=draw.Name;
|
|
126772
126928
|
drawItem.DrawType=draw.DrawType;
|
|
126773
|
-
drawItem.DrawData=
|
|
126774
|
-
this.GetKLineData(drawItem.DrawData, hqChart);
|
|
126929
|
+
drawItem.DrawData=draw.DrawData;
|
|
126775
126930
|
outVarItem.Draw=drawItem;
|
|
126776
126931
|
result.push(outVarItem);
|
|
126777
126932
|
}
|
|
@@ -152220,7 +152375,7 @@ function HQChartScriptWorker()
|
|
|
152220
152375
|
|
|
152221
152376
|
|
|
152222
152377
|
|
|
152223
|
-
var HQCHART_VERSION="1.1.
|
|
152378
|
+
var HQCHART_VERSION="1.1.14348";
|
|
152224
152379
|
|
|
152225
152380
|
function PrintHQChartVersion()
|
|
152226
152381
|
{
|