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
|
@@ -28399,6 +28399,12 @@ function IChartPainting()
|
|
|
28399
28399
|
|
|
28400
28400
|
}
|
|
28401
28401
|
|
|
28402
|
+
this.BuildKey=function(item)
|
|
28403
|
+
{
|
|
28404
|
+
if (IFrameSplitOperator.IsNumber(item.Time)) return `${item.Date}-${item.Time}`;
|
|
28405
|
+
else return item.Date;
|
|
28406
|
+
}
|
|
28407
|
+
|
|
28402
28408
|
//数据导出 数据格式 [{ Title:数据名称, Data:[] }]
|
|
28403
28409
|
//this.ExportData=function(aryKData) { }
|
|
28404
28410
|
|
|
@@ -35232,15 +35238,7 @@ function ChartOverlayKLine()
|
|
|
35232
35238
|
|
|
35233
35239
|
if (!this.MainData || !this.Data) return range;
|
|
35234
35240
|
|
|
35235
|
-
var firstOpen=
|
|
35236
|
-
for(var i=this.Data.DataOffset,j=0;i<this.MainData.Data.length && j<xPointCount;++i,++j)
|
|
35237
|
-
{
|
|
35238
|
-
var data=this.MainData.Data[i];
|
|
35239
|
-
if (data.Open==null || data.High==null || data.Low==null || data.Close==null) continue;
|
|
35240
|
-
firstOpen=data.Close;
|
|
35241
|
-
break;
|
|
35242
|
-
}
|
|
35243
|
-
|
|
35241
|
+
var firstOpen=this.GetFirstOpen();
|
|
35244
35242
|
if (firstOpen==null) return range;
|
|
35245
35243
|
|
|
35246
35244
|
var firstOverlayOpen=null;
|
|
@@ -44344,159 +44342,285 @@ function ChartMultiBar()
|
|
|
44344
44342
|
delete this.newMethod;
|
|
44345
44343
|
|
|
44346
44344
|
this.ClassName="ChartMultiBar";
|
|
44347
|
-
this.Bars=[]; // [ {Point:[ {
|
|
44345
|
+
this.Bars=[]; // [ {Point:[ {Date, Time, Value, Value2 }, ], Color:, Width: , Type: 0 实心 1 空心 }, ]
|
|
44348
44346
|
this.IsHScreen=false;
|
|
44349
44347
|
|
|
44348
|
+
this.MapCache=null; //key=date/date-time value={ Data:[] }
|
|
44349
|
+
this.GetKValue=ChartData.GetKValue;
|
|
44350
|
+
|
|
44351
|
+
this.GetItem=function(kItem)
|
|
44352
|
+
{
|
|
44353
|
+
if (!this.MapCache || this.MapCache.size<=0) return null;
|
|
44354
|
+
|
|
44355
|
+
var key=this.BuildKey(kItem);
|
|
44356
|
+
if (!this.MapCache.has(key)) return null;
|
|
44357
|
+
|
|
44358
|
+
return this.MapCache.get(key);
|
|
44359
|
+
}
|
|
44360
|
+
|
|
44361
|
+
this.BuildCacheData=function()
|
|
44362
|
+
{
|
|
44363
|
+
var mapData=new Map();
|
|
44364
|
+
this.MapCache=mapData;
|
|
44365
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.Bars)) return;
|
|
44366
|
+
|
|
44367
|
+
for(var i=0; i<this.Bars.length; ++i)
|
|
44368
|
+
{
|
|
44369
|
+
var groupItem=this.Bars[i];
|
|
44370
|
+
if (!groupItem || !IFrameSplitOperator.IsNonEmptyArray(groupItem.Point)) continue;
|
|
44371
|
+
|
|
44372
|
+
var clrConfig= { Color:groupItem.Color, Width:5, Name:groupItem.Name, Type:0 };
|
|
44373
|
+
if (IFrameSplitOperator.IsNumber(groupItem.Width)) clrConfig.Width=groupItem.Width;
|
|
44374
|
+
if (IFrameSplitOperator.IsNumber(groupItem.Type)) clrConfig.Type=groupItem.Type;
|
|
44375
|
+
|
|
44376
|
+
for(var j=0; j<groupItem.Point.length; ++j)
|
|
44377
|
+
{
|
|
44378
|
+
var point=groupItem.Point[j];
|
|
44379
|
+
var key=this.BuildKey(point);
|
|
44380
|
+
|
|
44381
|
+
var item={ Data:point, ColorConfig:clrConfig }
|
|
44382
|
+
if (mapData.has(key))
|
|
44383
|
+
{
|
|
44384
|
+
var mapItem=mapData.get(key);
|
|
44385
|
+
mapItem.Data.push(item);
|
|
44386
|
+
}
|
|
44387
|
+
else
|
|
44388
|
+
{
|
|
44389
|
+
mapData.set(key,{ Data:[item] });
|
|
44390
|
+
}
|
|
44391
|
+
}
|
|
44392
|
+
}
|
|
44393
|
+
}
|
|
44394
|
+
|
|
44350
44395
|
this.Draw=function()
|
|
44351
44396
|
{
|
|
44352
44397
|
if (!this.IsShow || this.ChartFrame.IsMinSize || !this.IsVisible) return;
|
|
44353
44398
|
if (this.IsShowIndexTitleOnly()) return;
|
|
44354
44399
|
if (this.IsHideScriptIndex()) return;
|
|
44355
|
-
if (!this.Data || this.Data.
|
|
44400
|
+
if (!this.Data || !IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return; //k线数据
|
|
44401
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.Bars)) return;
|
|
44402
|
+
if (!this.MapCache || this.MapCache.size<=0) return;
|
|
44356
44403
|
|
|
44357
44404
|
this.IsHScreen=(this.ChartFrame.IsHScreen===true);
|
|
44358
44405
|
var xPointCount=this.ChartFrame.XPointCount;
|
|
44359
|
-
var offset=this.Data.DataOffset;
|
|
44360
44406
|
var dataWidth=this.ChartFrame.DataWidth;
|
|
44361
|
-
var
|
|
44407
|
+
var distanceWidth=this.ChartFrame.DistanceWidth;
|
|
44408
|
+
var isMinute=this.IsMinuteFrame();
|
|
44362
44409
|
|
|
44363
|
-
var
|
|
44364
|
-
|
|
44410
|
+
var border=this.GetBorder();
|
|
44411
|
+
if (this.IsHScreen)
|
|
44365
44412
|
{
|
|
44366
|
-
var
|
|
44367
|
-
var
|
|
44368
|
-
|
|
44369
|
-
if (item.Width>0)
|
|
44370
|
-
{
|
|
44371
|
-
drawPoints.Width=item.Width*pixelRatio;
|
|
44372
|
-
if (drawPoints.Width>dataWidth) drawPoints.Width=dataWidth;
|
|
44373
|
-
}
|
|
44374
|
-
else
|
|
44375
|
-
{
|
|
44376
|
-
if(drawPoints.Width<4) drawPoints.Width=1*pixelRatio;
|
|
44377
|
-
}
|
|
44378
|
-
|
|
44379
|
-
for(var j in item.Point)
|
|
44380
|
-
{
|
|
44381
|
-
var point=item.Point[j];
|
|
44382
|
-
if (!IFrameSplitOperator.IsNumber(point.Index)) continue;
|
|
44383
|
-
|
|
44384
|
-
var index=point.Index-offset;
|
|
44385
|
-
if (index>=0 && index<xPointCount)
|
|
44386
|
-
{
|
|
44387
|
-
var x=this.ChartFrame.GetXFromIndex(index);
|
|
44388
|
-
var y=this.ChartFrame.GetYFromData(point.Value);
|
|
44389
|
-
var y2=this.ChartFrame.GetYFromData(point.Value2);
|
|
44390
|
-
drawPoints.Point.push({X:x, Y:y, Y2:y2});
|
|
44391
|
-
}
|
|
44392
|
-
}
|
|
44393
|
-
|
|
44394
|
-
if (drawPoints.Point.length>0) drawBars.push(drawPoints)
|
|
44413
|
+
var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
|
|
44414
|
+
var chartright=border.BottomEx;
|
|
44415
|
+
var chartLeft=border.TopEx;
|
|
44395
44416
|
}
|
|
44396
|
-
|
|
44397
|
-
for(var i in drawBars)
|
|
44417
|
+
else
|
|
44398
44418
|
{
|
|
44399
|
-
var
|
|
44400
|
-
|
|
44401
|
-
|
|
44402
|
-
if (item.Type==1) this.DrawHollowBar(item);
|
|
44403
|
-
else this.DrawFillBar(item);
|
|
44404
|
-
}
|
|
44405
|
-
else
|
|
44406
|
-
{
|
|
44407
|
-
this.DrawLineBar(item);
|
|
44408
|
-
}
|
|
44419
|
+
var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
|
|
44420
|
+
var chartright=border.RightEx;
|
|
44421
|
+
var chartLeft=border.LeftEx;
|
|
44409
44422
|
}
|
|
44410
|
-
}
|
|
44411
44423
|
|
|
44412
|
-
|
|
44413
|
-
|
|
44414
|
-
this.
|
|
44415
|
-
var backupLineWidth=this.Canvas.lineWidth;
|
|
44416
|
-
this.Canvas.lineWidth=bar.Width;
|
|
44417
|
-
for(var i in bar.Point)
|
|
44424
|
+
//计算所有柱子位置
|
|
44425
|
+
var mapBar=new Map();
|
|
44426
|
+
for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
|
|
44418
44427
|
{
|
|
44419
|
-
var
|
|
44428
|
+
var kItem=this.Data.Data[i];
|
|
44429
|
+
var key=this.BuildKey(kItem);
|
|
44430
|
+
if (!this.MapCache.has(key)) continue;
|
|
44431
|
+
var mapItem=this.MapCache.get(key);
|
|
44432
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(mapItem.Data)) continue;
|
|
44420
44433
|
|
|
44421
|
-
|
|
44422
|
-
if (this.IsHScreen)
|
|
44434
|
+
if (isMinute)
|
|
44423
44435
|
{
|
|
44424
|
-
this.
|
|
44425
|
-
this.Canvas.lineTo(ToFixedPoint(item.Y2),ToFixedPoint(item.X));
|
|
44436
|
+
var x=this.ChartFrame.GetXFromIndex(j);
|
|
44426
44437
|
}
|
|
44427
44438
|
else
|
|
44428
44439
|
{
|
|
44429
|
-
|
|
44430
|
-
|
|
44440
|
+
var left=xOffset;
|
|
44441
|
+
var right=xOffset+dataWidth;
|
|
44442
|
+
if (right>chartright) break;
|
|
44443
|
+
var x=left+(right-left)/2;
|
|
44431
44444
|
}
|
|
44432
|
-
|
|
44433
|
-
this.
|
|
44445
|
+
|
|
44446
|
+
this.CalculateItem(mapItem, kItem, x, mapBar);
|
|
44434
44447
|
}
|
|
44435
44448
|
|
|
44436
|
-
|
|
44449
|
+
if (mapBar.size<=0) return;
|
|
44450
|
+
|
|
44451
|
+
this.Canvas.save();
|
|
44452
|
+
this.ClipClient(this.IsHScreen);
|
|
44453
|
+
|
|
44454
|
+
this.DrawAllBar(mapBar);
|
|
44455
|
+
|
|
44456
|
+
this.Canvas.restore();
|
|
44437
44457
|
}
|
|
44438
44458
|
|
|
44439
|
-
this.
|
|
44459
|
+
this.CalculateItem=function(groupItem, kItem, x, mapBar)
|
|
44440
44460
|
{
|
|
44441
|
-
|
|
44442
|
-
for(var i in bar.Point)
|
|
44461
|
+
for(var i=0; i<groupItem.Data.length; ++i)
|
|
44443
44462
|
{
|
|
44444
|
-
var item=
|
|
44445
|
-
var
|
|
44446
|
-
|
|
44447
|
-
|
|
44448
|
-
|
|
44449
|
-
|
|
44450
|
-
|
|
44451
|
-
|
|
44452
|
-
|
|
44463
|
+
var item=groupItem.Data[i];
|
|
44464
|
+
var value=item.Data.Value;
|
|
44465
|
+
if (IFrameSplitOperator.IsString(item.Data.Value)) value=this.GetKValue(kItem,item.Data.Value);
|
|
44466
|
+
if (!IFrameSplitOperator.IsNumber(value)) continue;
|
|
44467
|
+
|
|
44468
|
+
var value2=item.Data.Value2;
|
|
44469
|
+
if (IFrameSplitOperator.IsString(item.Data.Value2)) value2=this.GetKValue(kItem,item.Data.Value2);
|
|
44470
|
+
if (!IFrameSplitOperator.IsNumber(value2)) continue;
|
|
44471
|
+
|
|
44472
|
+
var y=this.ChartFrame.GetYFromData(value, false);
|
|
44473
|
+
var y2=this.ChartFrame.GetYFromData(value2, false);
|
|
44474
|
+
|
|
44475
|
+
var strConfig=JSON.stringify(item.ColorConfig);
|
|
44476
|
+
if (!mapBar.has(strConfig)) mapBar.set(strConfig, { AryBar:[]});
|
|
44477
|
+
var mapItem=mapBar.get(strConfig);
|
|
44478
|
+
|
|
44479
|
+
mapItem.AryBar.push({ X:x, Y:y, Y2:y2, Data:item });
|
|
44453
44480
|
}
|
|
44454
44481
|
}
|
|
44455
44482
|
|
|
44456
|
-
|
|
44483
|
+
|
|
44484
|
+
this.DrawAllBar=function(mapBar)
|
|
44457
44485
|
{
|
|
44458
|
-
|
|
44459
|
-
|
|
44460
|
-
for(var
|
|
44486
|
+
var pixelRatio=GetDevicePixelRatio();
|
|
44487
|
+
|
|
44488
|
+
for(var mapItem of mapBar)
|
|
44461
44489
|
{
|
|
44462
|
-
|
|
44463
|
-
|
|
44464
|
-
var y=Math.min(item.Y,item.Y2);
|
|
44465
|
-
var barWidth=bar.Width;
|
|
44466
|
-
var barHeight=Math.abs(item.Y-item.Y2);
|
|
44467
|
-
this.Canvas.beginPath();
|
|
44468
|
-
if (this.IsHScreen)
|
|
44469
|
-
this.Canvas.rect(ToFixedPoint(y),ToFixedPoint(x),ToFixedRect(barHeight),ToFixedRect(barWidth));
|
|
44470
|
-
else
|
|
44471
|
-
this.Canvas.rect(ToFixedPoint(x),ToFixedPoint(y),ToFixedRect(barWidth),ToFixedRect(barHeight));
|
|
44490
|
+
aryBar=mapItem[1].AryBar;
|
|
44491
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(aryBar)) continue;
|
|
44472
44492
|
|
|
44473
|
-
|
|
44474
|
-
|
|
44493
|
+
var config=null;
|
|
44494
|
+
var path=new Path2D();
|
|
44495
|
+
var count=0;
|
|
44496
|
+
var drawType=-1; //1=直线 2=实心 3=空心
|
|
44497
|
+
var barWidth=1;
|
|
44498
|
+
for(var i=0;i<aryBar.length;++i)
|
|
44499
|
+
{
|
|
44500
|
+
var item=aryBar[i];
|
|
44501
|
+
if (!config)
|
|
44502
|
+
{
|
|
44503
|
+
config=item.Data.ColorConfig;
|
|
44504
|
+
barWidth=config.Width*pixelRatio;
|
|
44505
|
+
if (barWidth>4)
|
|
44506
|
+
{
|
|
44507
|
+
if (config.Type==0) drawType=2; //实心
|
|
44508
|
+
else if (config.Type==1) drawType=3; //空心
|
|
44509
|
+
else continue;
|
|
44510
|
+
}
|
|
44511
|
+
else //太细了, 直线
|
|
44512
|
+
{
|
|
44513
|
+
drawType=1;
|
|
44514
|
+
}
|
|
44515
|
+
}
|
|
44475
44516
|
|
|
44476
|
-
|
|
44517
|
+
if (drawType<=0) continue;
|
|
44518
|
+
|
|
44519
|
+
if (drawType==1)
|
|
44520
|
+
{
|
|
44521
|
+
this.Canvas.beginPath();
|
|
44522
|
+
if (this.IsHScreen)
|
|
44523
|
+
{
|
|
44524
|
+
this.Canvas.moveTo(ToFixedPoint(item.Y),ToFixedPoint(item.X));
|
|
44525
|
+
this.Canvas.lineTo(ToFixedPoint(item.Y2),ToFixedPoint(item.X));
|
|
44526
|
+
}
|
|
44527
|
+
else
|
|
44528
|
+
{
|
|
44529
|
+
this.Canvas.moveTo(ToFixedPoint(item.X),ToFixedPoint(item.Y));
|
|
44530
|
+
this.Canvas.lineTo(ToFixedPoint(item.X),ToFixedPoint(item.Y2));
|
|
44531
|
+
}
|
|
44532
|
+
++count;
|
|
44533
|
+
}
|
|
44534
|
+
else if (drawType==2) //实心
|
|
44535
|
+
{
|
|
44536
|
+
var x=item.X-(barWidth/2);
|
|
44537
|
+
var y=Math.min(item.Y,item.Y2);
|
|
44538
|
+
var barWidth=barWidth;
|
|
44539
|
+
var barHeight=Math.abs(item.Y-item.Y2);
|
|
44540
|
+
|
|
44541
|
+
var barPath = new Path2D();
|
|
44542
|
+
if (this.IsHScreen)
|
|
44543
|
+
barPath.rect(ToFixedRect(y),ToFixedRect(x),ToFixedRect(barHeight),ToFixedRect(barWidth))
|
|
44544
|
+
else
|
|
44545
|
+
barPath.rect(ToFixedRect(x),ToFixedRect(y),ToFixedRect(barWidth),ToFixedRect(barHeight))
|
|
44546
|
+
|
|
44547
|
+
path.addPath(barPath);
|
|
44548
|
+
++count;
|
|
44549
|
+
}
|
|
44550
|
+
else if (drawType==3) //空心
|
|
44551
|
+
{
|
|
44552
|
+
var x=item.X-(barWidth/2);
|
|
44553
|
+
var y=Math.min(item.Y,item.Y2);
|
|
44554
|
+
var barWidth=barWidth;
|
|
44555
|
+
var barHeight=Math.abs(item.Y-item.Y2);
|
|
44556
|
+
|
|
44557
|
+
var barPath = new Path2D();
|
|
44558
|
+
if (this.IsHScreen)
|
|
44559
|
+
barPath.rect(ToFixedPoint(y),ToFixedPoint(x),ToFixedPoint(barHeight),ToFixedPoint(barWidth))
|
|
44560
|
+
else
|
|
44561
|
+
barPath.rect(ToFixedPoint(x),ToFixedPoint(y),ToFixedPoint(barWidth),ToFixedPoint(barHeight))
|
|
44562
|
+
|
|
44563
|
+
path.addPath(barPath);
|
|
44564
|
+
++count;
|
|
44565
|
+
}
|
|
44566
|
+
}
|
|
44567
|
+
|
|
44568
|
+
|
|
44569
|
+
if (count>0 && drawType>0 && config)
|
|
44570
|
+
{
|
|
44571
|
+
if (drawType==1)
|
|
44572
|
+
{
|
|
44573
|
+
this.Canvas.lineWidth=1*pixelRatio;
|
|
44574
|
+
this.Canvas.strokeStyle=config.Color;
|
|
44575
|
+
this.Canvas.stroke();
|
|
44576
|
+
}
|
|
44577
|
+
else if (drawType==2)
|
|
44578
|
+
{
|
|
44579
|
+
this.Canvas.fillStyle=config.Color; //背景填充颜色
|
|
44580
|
+
this.Canvas.fill(path);
|
|
44581
|
+
}
|
|
44582
|
+
else if (drawType==3)
|
|
44583
|
+
{
|
|
44584
|
+
this.Canvas.lineWidth=1*pixelRatio;
|
|
44585
|
+
this.Canvas.strokeStyle=config.Color;
|
|
44586
|
+
this.Canvas.stroke(path);
|
|
44587
|
+
}
|
|
44588
|
+
}
|
|
44589
|
+
|
|
44590
|
+
}
|
|
44477
44591
|
}
|
|
44478
44592
|
|
|
44479
44593
|
this.GetMaxMin=function()
|
|
44480
44594
|
{
|
|
44481
44595
|
var range={ Min:null, Max:null };
|
|
44596
|
+
if(!this.Data || !IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return range;
|
|
44597
|
+
if (!this.MapCache || this.MapCache.size<=0) return range;
|
|
44482
44598
|
var xPointCount=this.ChartFrame.XPointCount;
|
|
44483
|
-
|
|
44484
|
-
var
|
|
44485
|
-
for(var i in this.Bars)
|
|
44599
|
+
|
|
44600
|
+
for(var i=this.Data.DataOffset,j=0, k=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
|
|
44486
44601
|
{
|
|
44487
|
-
var
|
|
44488
|
-
|
|
44602
|
+
var kItem=this.Data.Data[i];
|
|
44603
|
+
var key=this.BuildKey(kItem);
|
|
44604
|
+
if (!this.MapCache.has(key)) continue;
|
|
44605
|
+
var mapItem=this.MapCache.get(key);
|
|
44606
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(mapItem.Data)) continue;
|
|
44607
|
+
|
|
44608
|
+
for(k=0;k<mapItem.Data.length;++k)
|
|
44489
44609
|
{
|
|
44490
|
-
var
|
|
44491
|
-
|
|
44492
|
-
|
|
44493
|
-
|
|
44494
|
-
|
|
44495
|
-
|
|
44496
|
-
|
|
44497
|
-
|
|
44498
|
-
|
|
44499
|
-
|
|
44610
|
+
var item=mapItem.Data[k];
|
|
44611
|
+
var value=item.Data.Value;
|
|
44612
|
+
if (IFrameSplitOperator.IsString(item.Data.Value)) value=this.GetKValue(kItem,item.Data.Value);
|
|
44613
|
+
if (!IFrameSplitOperator.IsNumber(value)) continue;
|
|
44614
|
+
var value2=item.Data.Value2;
|
|
44615
|
+
if (IFrameSplitOperator.IsString(item.Data.Value2)) value2=this.GetKValue(kItem,item.Data.Value2);
|
|
44616
|
+
if (!IFrameSplitOperator.IsNumber(value2)) continue;
|
|
44617
|
+
|
|
44618
|
+
var minValue=Math.min(value, value2);
|
|
44619
|
+
var maxValue=Math.max(value, value2);
|
|
44620
|
+
if (range.Max==null) range.Max=maxValue;
|
|
44621
|
+
else if (range.Max<maxValue) range.Max=maxValue;
|
|
44622
|
+
if (range.Min==null) range.Min=minValue;
|
|
44623
|
+
else if (range.Min>minValue) range.Min=minValue;
|
|
44500
44624
|
}
|
|
44501
44625
|
}
|
|
44502
44626
|
|
|
@@ -44838,7 +44962,7 @@ function ChartMultiLine()
|
|
|
44838
44962
|
}
|
|
44839
44963
|
}
|
|
44840
44964
|
|
|
44841
|
-
//
|
|
44965
|
+
// 多个点集合2.0 支持横屏
|
|
44842
44966
|
function ChartMultiPoint()
|
|
44843
44967
|
{
|
|
44844
44968
|
this.newMethod=IChartPainting; //派生
|
|
@@ -44856,12 +44980,6 @@ function ChartMultiPoint()
|
|
|
44856
44980
|
this.MapCache=null; //key=date/date-time value={ Data:[] }
|
|
44857
44981
|
this.GetKValue=ChartData.GetKValue;
|
|
44858
44982
|
|
|
44859
|
-
this.BuildKey=function(item)
|
|
44860
|
-
{
|
|
44861
|
-
if (IFrameSplitOperator.IsNumber(item.Time)) return `${item.Date}-${item.Time}`;
|
|
44862
|
-
else return item.Date;
|
|
44863
|
-
}
|
|
44864
|
-
|
|
44865
44983
|
this.GetItem=function(kItem)
|
|
44866
44984
|
{
|
|
44867
44985
|
if (!this.MapCache || this.MapCache.size<=0) return null;
|
|
@@ -44885,6 +45003,7 @@ function ChartMultiPoint()
|
|
|
44885
45003
|
|
|
44886
45004
|
var clrConfig= { Color:groupItem.Color, BGColor:groupItem.BGColor, LineWidth:this.LineWidth, Radius:this.PointRadius, Name:groupItem.Name };
|
|
44887
45005
|
if (IFrameSplitOperator.IsNumber(groupItem.PointRadius)) clrConfig.Radius=groupItem.PointRadius;
|
|
45006
|
+
if (IFrameSplitOperator.IsNumber(groupItem.LineWidth)) clrConfig.LineWidth=groupItem.LineWidth;
|
|
44888
45007
|
|
|
44889
45008
|
for(var j=0; j<groupItem.Point.length; ++j)
|
|
44890
45009
|
{
|
|
@@ -45009,7 +45128,7 @@ function ChartMultiPoint()
|
|
|
45009
45128
|
if (this.IsHScreen)
|
|
45010
45129
|
pointPath.arc(item.Y,item.X,config.Radius*pixelRatio,0,360,false);
|
|
45011
45130
|
else
|
|
45012
|
-
pointPath.arc(item.X,item.Y,config.Radius
|
|
45131
|
+
pointPath.arc(item.X,item.Y,config.Radius*pixelRatio,0,360,false);
|
|
45013
45132
|
|
|
45014
45133
|
path.addPath(pointPath);
|
|
45015
45134
|
++count;
|
|
@@ -45037,7 +45156,7 @@ function ChartMultiPoint()
|
|
|
45037
45156
|
{
|
|
45038
45157
|
var range={ Min:null, Max:null };
|
|
45039
45158
|
if(!this.Data || !IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return range;
|
|
45040
|
-
if (!this.MapCache || this.MapCache.size<=0) return;
|
|
45159
|
+
if (!this.MapCache || this.MapCache.size<=0) return range;
|
|
45041
45160
|
var xPointCount=this.ChartFrame.XPointCount;
|
|
45042
45161
|
|
|
45043
45162
|
for(var i=this.Data.DataOffset,j=0, k=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
|
|
@@ -45066,7 +45185,7 @@ function ChartMultiPoint()
|
|
|
45066
45185
|
}
|
|
45067
45186
|
}
|
|
45068
45187
|
|
|
45069
|
-
// 多文本集合 支持横屏
|
|
45188
|
+
// 多文本集合2.0 支持横屏
|
|
45070
45189
|
function ChartMultiText()
|
|
45071
45190
|
{
|
|
45072
45191
|
this.newMethod=IChartPainting; //派生
|
|
@@ -45074,58 +45193,38 @@ function ChartMultiText()
|
|
|
45074
45193
|
delete this.newMethod;
|
|
45075
45194
|
|
|
45076
45195
|
this.ClassName="ChartMultiText";
|
|
45077
|
-
this.Texts=[]; //[ {
|
|
45196
|
+
this.Texts=[]; //[ {Date:, Time, Value:, Text:, Color:, Font: , Baseline:, Line:{ Color:, Dash:[虚线点], KData:"H/L", Offset:[5,10], Width:线粗细 }} ]
|
|
45078
45197
|
this.Font=g_JSChartResource.DefaultTextFont;
|
|
45079
45198
|
this.Color=g_JSChartResource.DefaultTextColor;
|
|
45080
45199
|
this.IsHScreen=false; //是否横屏
|
|
45081
45200
|
|
|
45082
|
-
this.
|
|
45083
|
-
|
|
45084
|
-
if (IFrameSplitOperator.IsNumber(item.Time))
|
|
45085
|
-
{
|
|
45086
|
-
var key=`${item.Date}-${item.Time}`;
|
|
45087
|
-
}
|
|
45088
|
-
else
|
|
45089
|
-
{
|
|
45090
|
-
var key=`${item.Date}`;
|
|
45091
|
-
}
|
|
45092
|
-
|
|
45093
|
-
return key;
|
|
45094
|
-
}
|
|
45201
|
+
this.MapCache=null; //key=date/date-time value={ Data:[] }
|
|
45202
|
+
this.GetKValue=ChartData.GetKValue;
|
|
45095
45203
|
|
|
45096
|
-
this.
|
|
45204
|
+
this.BuildCacheData=function()
|
|
45097
45205
|
{
|
|
45098
|
-
var
|
|
45099
|
-
|
|
45206
|
+
var mapData=new Map();
|
|
45207
|
+
this.MapCache=mapData;
|
|
45208
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.Texts)) return;
|
|
45100
45209
|
|
|
45101
|
-
var
|
|
45102
|
-
for(var i=0; i<this.Texts.length; ++i)
|
|
45210
|
+
for(var i=0;i<this.Texts.length;++i)
|
|
45103
45211
|
{
|
|
45104
45212
|
var item=this.Texts[i];
|
|
45105
|
-
|
|
45106
|
-
if (
|
|
45107
|
-
|
|
45108
|
-
var index=item.Index-offset;
|
|
45109
|
-
if (index>=0 && index<xPointCount)
|
|
45213
|
+
var key=this.BuildKey(item);
|
|
45214
|
+
if (mapData.has(key))
|
|
45110
45215
|
{
|
|
45111
|
-
var
|
|
45112
|
-
|
|
45113
|
-
|
|
45114
|
-
|
|
45115
|
-
|
|
45116
|
-
}
|
|
45117
|
-
else
|
|
45118
|
-
{
|
|
45119
|
-
var textItem={ Data:[item] };
|
|
45120
|
-
mapText.set(key, textItem);
|
|
45121
|
-
}
|
|
45216
|
+
var mapItem=mapData.get(key);
|
|
45217
|
+
mapItem.Data.push(item);
|
|
45218
|
+
}
|
|
45219
|
+
else
|
|
45220
|
+
{
|
|
45221
|
+
mapData.set(key,{ Data:[item] });
|
|
45122
45222
|
}
|
|
45123
45223
|
}
|
|
45124
|
-
|
|
45125
|
-
return mapText;
|
|
45126
45224
|
}
|
|
45127
45225
|
|
|
45128
|
-
|
|
45226
|
+
|
|
45227
|
+
this.DrawAllText=function()
|
|
45129
45228
|
{
|
|
45130
45229
|
var bHScreen=(this.ChartFrame.IsHScreen===true);
|
|
45131
45230
|
var isMinute=this.IsMinuteFrame();
|
|
@@ -45162,21 +45261,29 @@ function ChartMultiText()
|
|
|
45162
45261
|
if (!kItem) continue;
|
|
45163
45262
|
|
|
45164
45263
|
var key=this.BuildKey(kItem);
|
|
45165
|
-
if (!
|
|
45264
|
+
if (!this.MapCache.has(key)) continue;
|
|
45265
|
+
var mapItem=this.MapCache.get(key);
|
|
45266
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(mapItem.Data)) continue;
|
|
45166
45267
|
|
|
45167
45268
|
var left=xOffset;
|
|
45168
45269
|
var right=xOffset+dataWidth;
|
|
45169
45270
|
if (right>chartright) break;
|
|
45170
45271
|
var x=left+(right-left)/2;
|
|
45171
45272
|
|
|
45172
|
-
var
|
|
45173
|
-
for(var k=0;k<textItem.Data.length;++k)
|
|
45273
|
+
for(var k=0;k<mapItem.Data.length;++k)
|
|
45174
45274
|
{
|
|
45175
|
-
var item=
|
|
45275
|
+
var item=mapItem.Data[k];
|
|
45176
45276
|
var y=top;
|
|
45177
45277
|
if (item.Value=="TOP") y=top;
|
|
45178
45278
|
else if (item.Value=="BOTTOM") y=bottom;
|
|
45179
|
-
else
|
|
45279
|
+
else
|
|
45280
|
+
{
|
|
45281
|
+
var price=item.Value;
|
|
45282
|
+
if (IFrameSplitOperator.IsString(item.Value)) price=this.GetKValue(kItem,item.Value);
|
|
45283
|
+
|
|
45284
|
+
y=this.ChartFrame.GetYFromData(price, false);
|
|
45285
|
+
}
|
|
45286
|
+
|
|
45180
45287
|
|
|
45181
45288
|
if (item.Color) this.Canvas.fillStyle = item.Color;
|
|
45182
45289
|
else this.Canvas.fillStyle = this.Color;
|
|
@@ -45261,18 +45368,16 @@ function ChartMultiText()
|
|
|
45261
45368
|
if (!this.IsShow || this.ChartFrame.IsMinSize || !this.IsVisible) return;
|
|
45262
45369
|
if (this.IsShowIndexTitleOnly()) return;
|
|
45263
45370
|
if (this.IsHideScriptIndex()) return;
|
|
45264
|
-
if (!this.Data || this.Data.
|
|
45265
|
-
if (!this.Texts) return;
|
|
45371
|
+
if (!this.Data || !IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return; //k线数据
|
|
45372
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.Texts)) return;
|
|
45373
|
+
if (!this.MapCache || this.MapCache.size<=0) return;
|
|
45266
45374
|
|
|
45267
45375
|
this.IsHScreen=(this.ChartFrame.IsHScreen===true);
|
|
45268
45376
|
|
|
45269
|
-
var mapText=this.GetShowTextData();
|
|
45270
|
-
if (mapText.size<=0) return;
|
|
45271
|
-
|
|
45272
45377
|
this.Canvas.save();
|
|
45273
45378
|
this.ClipClient(this.IsHScreen);
|
|
45274
45379
|
|
|
45275
|
-
this.DrawAllText(
|
|
45380
|
+
this.DrawAllText();
|
|
45276
45381
|
|
|
45277
45382
|
this.Canvas.restore();
|
|
45278
45383
|
}
|
|
@@ -45282,21 +45387,29 @@ function ChartMultiText()
|
|
|
45282
45387
|
var range={ Min:null, Max:null };
|
|
45283
45388
|
if (!this.Texts) return range;
|
|
45284
45389
|
|
|
45390
|
+
if(!this.Data || !IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return range;
|
|
45391
|
+
if (!this.MapCache || this.MapCache.size<=0) return range;
|
|
45285
45392
|
var xPointCount=this.ChartFrame.XPointCount;
|
|
45286
|
-
var start=this.Data.DataOffset;
|
|
45287
|
-
var end=start+xPointCount;
|
|
45288
45393
|
|
|
45289
|
-
for(var i
|
|
45394
|
+
for(var i=this.Data.DataOffset,j=0, k=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
|
|
45290
45395
|
{
|
|
45291
|
-
var
|
|
45292
|
-
|
|
45396
|
+
var kItem=this.Data.Data[i];
|
|
45397
|
+
var key=this.BuildKey(kItem);
|
|
45398
|
+
if (!this.MapCache.has(key)) continue;
|
|
45399
|
+
var mapItem=this.MapCache.get(key);
|
|
45400
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(mapItem.Data)) continue;
|
|
45293
45401
|
|
|
45294
|
-
|
|
45402
|
+
for(k=0;k<mapItem.Data.length;++k)
|
|
45295
45403
|
{
|
|
45296
|
-
|
|
45297
|
-
|
|
45298
|
-
if (
|
|
45299
|
-
|
|
45404
|
+
var item=mapItem.Data[k];
|
|
45405
|
+
var value=item.Value;
|
|
45406
|
+
if (IFrameSplitOperator.IsString(item.Value)) value=this.GetKValue(kItem,item.Value);
|
|
45407
|
+
if (!IFrameSplitOperator.IsNumber(value)) continue;
|
|
45408
|
+
|
|
45409
|
+
if (range.Max==null) range.Max=value;
|
|
45410
|
+
else if (range.Max<value) range.Max=value;
|
|
45411
|
+
if (range.Min==null) range.Min=value;
|
|
45412
|
+
else if (range.Min>value) range.Min=value;
|
|
45300
45413
|
}
|
|
45301
45414
|
}
|
|
45302
45415
|
|
|
@@ -45813,7 +45926,7 @@ function ChartMultiHtmlDom()
|
|
|
45813
45926
|
}
|
|
45814
45927
|
}
|
|
45815
45928
|
|
|
45816
|
-
//绘制SVG图标
|
|
45929
|
+
//绘制SVG图标 2.0
|
|
45817
45930
|
function ChartDrawSVG()
|
|
45818
45931
|
{
|
|
45819
45932
|
this.newMethod=IChartPainting; //派生
|
|
@@ -61427,6 +61540,41 @@ function DynamicChartTitlePainting()
|
|
|
61427
61540
|
return aryText;
|
|
61428
61541
|
}
|
|
61429
61542
|
|
|
61543
|
+
this.ForamtMultiBarTitle=function(dataIndex, dataInfo)
|
|
61544
|
+
{
|
|
61545
|
+
if (!dataInfo.GetItemCallback) return null;
|
|
61546
|
+
if (!dataInfo.Data || !IFrameSplitOperator.IsNonEmptyArray(dataInfo.Data.Data)) return null;
|
|
61547
|
+
var kItem=dataInfo.Data.Data[dataIndex];
|
|
61548
|
+
if (!kItem) return null;
|
|
61549
|
+
|
|
61550
|
+
var group=dataInfo.GetItemCallback(kItem);
|
|
61551
|
+
if (!group || !IFrameSplitOperator.IsNonEmptyArray(group.Data)) return null;
|
|
61552
|
+
|
|
61553
|
+
var aryText=[];
|
|
61554
|
+
for(var i=0;i<group.Data.length;++i)
|
|
61555
|
+
{
|
|
61556
|
+
var item=group.Data[i];
|
|
61557
|
+
var config=item.ColorConfig;
|
|
61558
|
+
|
|
61559
|
+
var color=null;
|
|
61560
|
+
if (config.BGColor) color=config.BGColor;
|
|
61561
|
+
else if (config.Color) color=config.Color;
|
|
61562
|
+
|
|
61563
|
+
if (config.Name) aryText.push({ Text:`${config.Name}:`, Color:color });
|
|
61564
|
+
|
|
61565
|
+
var value=item.Data.Value;
|
|
61566
|
+
if (IFrameSplitOperator.IsString(item.Data.Value)) value=ChartData.GetKValue(kItem, item.Data.Value);
|
|
61567
|
+
|
|
61568
|
+
var value2=item.Data.Value2;
|
|
61569
|
+
if (IFrameSplitOperator.IsString(item.Data.Value2)) value2=ChartData.GetKValue(kItem, item.Data.Value2);
|
|
61570
|
+
aryText.push({ Text:`[${this.FormatValue(value, dataInfo)}, ${this.FormatValue(value2, dataInfo)}] `, Color:color});
|
|
61571
|
+
}
|
|
61572
|
+
|
|
61573
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(aryText)) return null;
|
|
61574
|
+
|
|
61575
|
+
return aryText;
|
|
61576
|
+
}
|
|
61577
|
+
|
|
61430
61578
|
this.FormatVPVRTitle=function(pt, dataInfo)
|
|
61431
61579
|
{
|
|
61432
61580
|
var chart=dataInfo.Chart;
|
|
@@ -61770,6 +61918,12 @@ function DynamicChartTitlePainting()
|
|
|
61770
61918
|
if (!aryText) return null;
|
|
61771
61919
|
return { Text:null, ArrayText:aryText };
|
|
61772
61920
|
}
|
|
61921
|
+
else if (item.DataType=="ChartMultiBar")
|
|
61922
|
+
{
|
|
61923
|
+
aryText=this.ForamtMultiBarTitle(dataIndex, item);
|
|
61924
|
+
if (!aryText) return null;
|
|
61925
|
+
return { Text:null, ArrayText:aryText };
|
|
61926
|
+
}
|
|
61773
61927
|
|
|
61774
61928
|
value=item.Data.Data[dataIndex];
|
|
61775
61929
|
|
|
@@ -62195,6 +62349,11 @@ function DynamicChartTitlePainting()
|
|
|
62195
62349
|
aryText=this.ForamtMultiPointTitle(dataIndex, item);
|
|
62196
62350
|
if (!aryText) continue;
|
|
62197
62351
|
}
|
|
62352
|
+
else if (item.DataType=="ChartMultiBar")
|
|
62353
|
+
{
|
|
62354
|
+
aryText=this.ForamtMultiBarTitle(dataIndex, item);
|
|
62355
|
+
if (!aryText) continue;
|
|
62356
|
+
}
|
|
62198
62357
|
else
|
|
62199
62358
|
{
|
|
62200
62359
|
valueText=this.FormatValue(value,item);
|
|
@@ -123223,7 +123382,7 @@ function ScriptIndex(name,script,args,option)
|
|
|
123223
123382
|
chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;
|
|
123224
123383
|
chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;
|
|
123225
123384
|
|
|
123226
|
-
chart.Data=hqChart.
|
|
123385
|
+
chart.Data=hqChart.GetKData(); //绑定K线
|
|
123227
123386
|
chart.PointGroup=varItem.Draw.DrawData;
|
|
123228
123387
|
if (varItem.Draw.Name) chart.Name=varItem.Draw.Name;
|
|
123229
123388
|
chart.BuildCacheData();
|
|
@@ -123246,17 +123405,18 @@ function ScriptIndex(name,script,args,option)
|
|
|
123246
123405
|
chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;
|
|
123247
123406
|
chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;
|
|
123248
123407
|
|
|
123249
|
-
chart.Data=hqChart.
|
|
123408
|
+
chart.Data=hqChart.GetKData();//绑定K线
|
|
123250
123409
|
chart.Bars=varItem.Draw.DrawData;
|
|
123251
|
-
|
|
123252
|
-
var titleIndex=windowIndex+1;
|
|
123253
|
-
var titleData=new DynamicTitleData({ KData:chart.Data, BarData:chart.Bars },varItem.Name,null);
|
|
123254
|
-
titleData.IsShow=false;
|
|
123255
|
-
titleData.DataType="MULTI_BAR";
|
|
123256
|
-
hqChart.TitlePaint[titleIndex].Data[id]=titleData;
|
|
123410
|
+
chart.BuildCacheData();
|
|
123257
123411
|
|
|
123258
123412
|
this.SetChartIndexName(chart);
|
|
123259
123413
|
hqChart.ChartPaint.push(chart);
|
|
123414
|
+
|
|
123415
|
+
var titleIndex=windowIndex+1;
|
|
123416
|
+
var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);
|
|
123417
|
+
titleData.DataType="ChartMultiBar";
|
|
123418
|
+
titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
|
|
123419
|
+
hqChart.TitlePaint[titleIndex].Data[id]=titleData;
|
|
123260
123420
|
}
|
|
123261
123421
|
|
|
123262
123422
|
this.CreateMultiText=function(hqChart,windowIndex,varItem,i)
|
|
@@ -123267,8 +123427,10 @@ function ScriptIndex(name,script,args,option)
|
|
|
123267
123427
|
chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;
|
|
123268
123428
|
chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;
|
|
123269
123429
|
|
|
123270
|
-
chart.Data=hqChart.
|
|
123430
|
+
chart.Data=hqChart.GetKData();//绑定K线
|
|
123271
123431
|
chart.Texts=varItem.Draw.DrawData;
|
|
123432
|
+
chart.BuildCacheData();
|
|
123433
|
+
|
|
123272
123434
|
this.SetChartIndexName(chart);
|
|
123273
123435
|
hqChart.ChartPaint.push(chart);
|
|
123274
123436
|
}
|
|
@@ -123281,7 +123443,7 @@ function ScriptIndex(name,script,args,option)
|
|
|
123281
123443
|
chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;
|
|
123282
123444
|
chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;
|
|
123283
123445
|
|
|
123284
|
-
chart.Data=hqChart.
|
|
123446
|
+
chart.Data=hqChart.GetKData();//绑定K线
|
|
123285
123447
|
chart.Family=varItem.Draw.DrawData.Family;
|
|
123286
123448
|
chart.AryIcon= varItem.Draw.DrawData.Icon;
|
|
123287
123449
|
chart.BuildCacheData();
|
|
@@ -123297,10 +123459,8 @@ function ScriptIndex(name,script,args,option)
|
|
|
123297
123459
|
chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;
|
|
123298
123460
|
chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;
|
|
123299
123461
|
|
|
123300
|
-
|
|
123301
|
-
|
|
123302
|
-
else
|
|
123303
|
-
chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
123462
|
+
|
|
123463
|
+
chart.Data=hqChart.GetKData()
|
|
123304
123464
|
if (IFrameSplitOperator.IsBool(varItem.Draw.DrawData.EnableTooltip)) chart.EnableTooltip=varItem.Draw.DrawData.EnableTooltip;
|
|
123305
123465
|
if (IFrameSplitOperator.IsBool(varItem.Draw.DrawData.IsDrawFirst)) chart.IsDrawFirst=varItem.Draw.DrawData.IsDrawFirst;
|
|
123306
123466
|
if (varItem.Draw.BuildKeyCallback) chart.BuildKeyCallback=varItem.Draw.BuildKeyCallback;
|
|
@@ -124808,11 +124968,7 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
124808
124968
|
chart.ChartFrame=frame.Frame;
|
|
124809
124969
|
chart.Identify=overlayIndex.Identify;
|
|
124810
124970
|
|
|
124811
|
-
|
|
124812
|
-
chart.Data=hqChart.SourceData;
|
|
124813
|
-
else
|
|
124814
|
-
chart.Data=hqChart.ChartPaint[0].Data; //绑定K线
|
|
124815
|
-
|
|
124971
|
+
chart.Data=hqChart.GetKData();
|
|
124816
124972
|
chart.Family=varItem.Draw.Icon.Family;
|
|
124817
124973
|
chart.TextFont=g_JSChartResource.TIPICON.TextFont;
|
|
124818
124974
|
|
|
@@ -124960,7 +125116,7 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
124960
125116
|
chart.ChartFrame=frame.Frame;
|
|
124961
125117
|
chart.Identify=overlayIndex.Identify;
|
|
124962
125118
|
|
|
124963
|
-
chart.Data=hqChart.
|
|
125119
|
+
chart.Data=hqChart.GetKData();//绑定K线
|
|
124964
125120
|
chart.PointGroup=varItem.Draw.DrawData;
|
|
124965
125121
|
chart.BuildCacheData();
|
|
124966
125122
|
|
|
@@ -125010,14 +125166,16 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
125010
125166
|
chart.ChartFrame=frame.Frame;
|
|
125011
125167
|
chart.Identify=overlayIndex.Identify;
|
|
125012
125168
|
|
|
125013
|
-
chart.Data=hqChart.
|
|
125169
|
+
chart.Data=hqChart.GetKData();//绑定K线
|
|
125014
125170
|
chart.Bars=varItem.Draw.DrawData;
|
|
125171
|
+
chart.BuildCacheData();
|
|
125015
125172
|
|
|
125016
125173
|
var titleIndex=windowIndex+1;
|
|
125017
125174
|
var titlePaint=hqChart.TitlePaint[titleIndex];
|
|
125018
|
-
var titleData=new DynamicTitleData(
|
|
125019
|
-
titleData.
|
|
125020
|
-
titleData.
|
|
125175
|
+
var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);
|
|
125176
|
+
titleData.DataType="ChartMultiBar";
|
|
125177
|
+
titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
|
|
125178
|
+
|
|
125021
125179
|
titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;
|
|
125022
125180
|
|
|
125023
125181
|
this.SetChartIndexName(chart);
|
|
@@ -125035,8 +125193,10 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
125035
125193
|
chart.ChartFrame=frame.Frame;
|
|
125036
125194
|
chart.Identify=overlayIndex.Identify;
|
|
125037
125195
|
|
|
125038
|
-
chart.Data=hqChart.
|
|
125196
|
+
chart.Data=hqChart.GetKData();//绑定K线
|
|
125039
125197
|
chart.Texts=varItem.Draw.DrawData;
|
|
125198
|
+
chart.BuildCacheData();
|
|
125199
|
+
|
|
125040
125200
|
this.SetChartIndexName(chart);
|
|
125041
125201
|
frame.ChartPaint.push(chart);
|
|
125042
125202
|
}
|
|
@@ -125052,7 +125212,7 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
125052
125212
|
chart.ChartFrame=frame.Frame;
|
|
125053
125213
|
chart.Identify=overlayIndex.Identify;
|
|
125054
125214
|
|
|
125055
|
-
chart.Data=hqChart.
|
|
125215
|
+
chart.Data=hqChart.GetKData();//绑定K线
|
|
125056
125216
|
chart.Family=varItem.Draw.DrawData.Family;
|
|
125057
125217
|
chart.AryIcon= varItem.Draw.DrawData.Icon;
|
|
125058
125218
|
chart.BuildCacheData();
|
|
@@ -125070,11 +125230,8 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
125070
125230
|
chart.ChartBorder=frame.Frame.ChartBorder;
|
|
125071
125231
|
chart.ChartFrame=frame.Frame;
|
|
125072
125232
|
chart.Identify=overlayIndex.Identify;
|
|
125073
|
-
|
|
125074
|
-
|
|
125075
|
-
chart.Data=hqChart.SourceData;
|
|
125076
|
-
else
|
|
125077
|
-
chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
125233
|
+
chart.Data=hqChart.GetKData();
|
|
125234
|
+
|
|
125078
125235
|
|
|
125079
125236
|
if (IFrameSplitOperator.IsBool(varItem.Draw.DrawData.EnableTooltip)) chart.EnableTooltip=varItem.Draw.DrawData.EnableTooltip;
|
|
125080
125237
|
if (IFrameSplitOperator.IsBool(varItem.Draw.DrawData.IsDrawFirst)) chart.IsDrawFirst=varItem.Draw.DrawData.IsDrawFirst;
|
|
@@ -126179,7 +126336,7 @@ function APIScriptIndex(name,script,args,option, isOverlay)
|
|
|
126179
126336
|
drawItem.Text=draw.Text;
|
|
126180
126337
|
drawItem.Name=draw.Name;
|
|
126181
126338
|
drawItem.DrawType=draw.DrawType;
|
|
126182
|
-
drawItem.DrawData=
|
|
126339
|
+
drawItem.DrawData=draw.DrawData;
|
|
126183
126340
|
outVarItem.Draw=drawItem;
|
|
126184
126341
|
|
|
126185
126342
|
result.push(outVarItem);
|
|
@@ -126230,8 +126387,7 @@ function APIScriptIndex(name,script,args,option, isOverlay)
|
|
|
126230
126387
|
drawItem.Text=draw.Text;
|
|
126231
126388
|
drawItem.Name=draw.Name;
|
|
126232
126389
|
drawItem.DrawType=draw.DrawType;
|
|
126233
|
-
drawItem.DrawData=
|
|
126234
|
-
this.GetKLineData(drawItem.DrawData, hqChart);
|
|
126390
|
+
drawItem.DrawData=draw.DrawData;
|
|
126235
126391
|
outVarItem.Draw=drawItem;
|
|
126236
126392
|
result.push(outVarItem);
|
|
126237
126393
|
}
|
|
@@ -126726,8 +126882,7 @@ function APIScriptIndex(name,script,args,option, isOverlay)
|
|
|
126726
126882
|
drawItem.Text=draw.Text;
|
|
126727
126883
|
drawItem.Name=draw.Name;
|
|
126728
126884
|
drawItem.DrawType=draw.DrawType;
|
|
126729
|
-
drawItem.DrawData=
|
|
126730
|
-
this.GetKLineData(drawItem.DrawData, hqChart);
|
|
126885
|
+
drawItem.DrawData=draw.DrawData;
|
|
126731
126886
|
outVarItem.Draw=drawItem;
|
|
126732
126887
|
result.push(outVarItem);
|
|
126733
126888
|
}
|
|
@@ -142572,7 +142727,7 @@ function ScrollBarBGChart()
|
|
|
142572
142727
|
|
|
142573
142728
|
|
|
142574
142729
|
|
|
142575
|
-
var HQCHART_VERSION="1.1.
|
|
142730
|
+
var HQCHART_VERSION="1.1.14348";
|
|
142576
142731
|
|
|
142577
142732
|
function PrintHQChartVersion()
|
|
142578
142733
|
{
|