hqchart 1.1.14498 → 1.1.14506
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/umychart.vue.js +265 -222
- package/package.json +1 -1
- package/src/jscommon/umychart.NetworkFilterTest.js +53 -11
- package/src/jscommon/umychart.complier.js +33 -0
- package/src/jscommon/umychart.js +193 -65
- package/src/jscommon/umychart.testdata.js +53 -11
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +227 -66
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.NetworkFilterTest.vue.js +53 -11
- package/src/jscommon/umychart.vue/umychart.vue.js +227 -66
package/package.json
CHANGED
|
@@ -57437,6 +57437,8 @@ HQData.Report_APIIndex=function(data, callback)
|
|
|
57437
57437
|
HQData.APIIndex_CHANNEL_V2(data, callback);
|
|
57438
57438
|
else if (request.Data.indexname=="API_DRAWKLINE")
|
|
57439
57439
|
HQData.APIIndex_DRAWKLINE(data, callback);
|
|
57440
|
+
else if (request.Data.indexname=="API_TITLE")
|
|
57441
|
+
HQData.APIIndex_TITLE(data, callback);
|
|
57440
57442
|
}
|
|
57441
57443
|
|
|
57442
57444
|
|
|
@@ -58147,7 +58149,7 @@ HQData.APIIndex_MULTI_BAR=function(data, callback)
|
|
|
58147
58149
|
[
|
|
58148
58150
|
//{Date:20190916, Time: Value:15.5, Value2:0 },
|
|
58149
58151
|
],
|
|
58150
|
-
Width:10
|
|
58152
|
+
//Width:10
|
|
58151
58153
|
};
|
|
58152
58154
|
|
|
58153
58155
|
var point2=
|
|
@@ -58160,19 +58162,22 @@ HQData.APIIndex_MULTI_BAR=function(data, callback)
|
|
|
58160
58162
|
[
|
|
58161
58163
|
//{Date:20190916, Time: Value:15.5, Value2:0 },
|
|
58162
58164
|
],
|
|
58163
|
-
Width:10
|
|
58165
|
+
//Width:10
|
|
58164
58166
|
};
|
|
58165
58167
|
|
|
58166
58168
|
for(var i=0;i<kData.Data.length;++i)
|
|
58167
58169
|
{
|
|
58168
58170
|
var item=kData.Data[i];
|
|
58169
|
-
point.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2, Value2:item.High});
|
|
58170
|
-
point2.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2, Value2:item.Low});
|
|
58171
|
+
///point.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2, Value2:item.High});
|
|
58172
|
+
///point2.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2, Value2:item.Low});
|
|
58173
|
+
|
|
58174
|
+
point.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2+HQData.GetRandomTestData(2,10), Value2:item.High});
|
|
58175
|
+
point2.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2-HQData.GetRandomTestData(2,10), Value2:item.Low});
|
|
58171
58176
|
}
|
|
58172
58177
|
|
|
58173
58178
|
|
|
58174
58179
|
|
|
58175
|
-
|
|
58180
|
+
barData.Draw.DrawData.push(point);
|
|
58176
58181
|
barData.Draw.DrawData.push(point2);
|
|
58177
58182
|
|
|
58178
58183
|
var apiData=
|
|
@@ -58354,9 +58359,6 @@ HQData.APIIndex_DRAWKLINE=function(data, callback)
|
|
|
58354
58359
|
IsShowTitle:true,
|
|
58355
58360
|
};
|
|
58356
58361
|
|
|
58357
|
-
|
|
58358
|
-
var textData={ name:"", type:10, color:"rgb(148,0,211)", data:[], isshow:false }; //名字
|
|
58359
|
-
|
|
58360
58362
|
var aryDate=[];
|
|
58361
58363
|
var aryTime=[];
|
|
58362
58364
|
for(var i=100;i<kData.Data.length-100;++i)
|
|
@@ -58378,15 +58380,13 @@ HQData.APIIndex_DRAWKLINE=function(data, callback)
|
|
|
58378
58380
|
|
|
58379
58381
|
aryDate.push(kItem.Date);
|
|
58380
58382
|
aryTime.push(kItem.Time);
|
|
58381
|
-
|
|
58382
|
-
textData.data.push(kItem.YClose.toFixed(2));
|
|
58383
58383
|
}
|
|
58384
58384
|
|
|
58385
58385
|
var apiData=
|
|
58386
58386
|
{
|
|
58387
58387
|
code:0,
|
|
58388
58388
|
stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
|
|
58389
|
-
outdata: { date:aryDate, time:aryTime, outvar:[
|
|
58389
|
+
outdata: { date:aryDate, time:aryTime, outvar:[ klineData] }
|
|
58390
58390
|
};
|
|
58391
58391
|
|
|
58392
58392
|
console.log('[HQData.APIIndex_DRAWKLINE] apiData ', apiData);
|
|
@@ -58394,3 +58394,45 @@ HQData.APIIndex_DRAWKLINE=function(data, callback)
|
|
|
58394
58394
|
}
|
|
58395
58395
|
|
|
58396
58396
|
|
|
58397
|
+
HQData.APIIndex_TITLE=function(data, callback)
|
|
58398
|
+
{
|
|
58399
|
+
data.PreventDefault=true;
|
|
58400
|
+
var hqchart=data.HQChart;
|
|
58401
|
+
var kData=hqchart.GetKData();
|
|
58402
|
+
|
|
58403
|
+
var textData={ name:"标题", type:10, color:"rgb(0,128,128)", data:[], }; //名字
|
|
58404
|
+
var closeData={ name:"收盘价", type:0, color:"rgb(255,165,0)", data:[] } ; //
|
|
58405
|
+
|
|
58406
|
+
var aryDate=[];
|
|
58407
|
+
var aryTime=[];
|
|
58408
|
+
for(var i=0;i<kData.Data.length-30;++i)
|
|
58409
|
+
{
|
|
58410
|
+
var kItem=kData.Data[i];
|
|
58411
|
+
|
|
58412
|
+
closeData.data.push(kItem.Close);
|
|
58413
|
+
|
|
58414
|
+
textData.data.push(
|
|
58415
|
+
[
|
|
58416
|
+
{ Name:`收`, Text:`${kItem.Close.toFixed(2)}`, Color:"rgb(200,10,10)",},
|
|
58417
|
+
{ Name:`开`, Text:`${kItem.Open.toFixed(2)}`, Color:"rgb(0,200,10)", LeftSpace:2 }
|
|
58418
|
+
]);
|
|
58419
|
+
|
|
58420
|
+
//textData.data.push(`价格:${kItem.Close.toFixed(2)}`);
|
|
58421
|
+
|
|
58422
|
+
aryDate.push(kItem.Date);
|
|
58423
|
+
aryTime.push(kItem.Time);
|
|
58424
|
+
}
|
|
58425
|
+
|
|
58426
|
+
|
|
58427
|
+
var apiData=
|
|
58428
|
+
{
|
|
58429
|
+
code:0,
|
|
58430
|
+
stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
|
|
58431
|
+
outdata: { date:aryDate, time:aryTime, outvar:[ textData, closeData] }
|
|
58432
|
+
};
|
|
58433
|
+
|
|
58434
|
+
console.log('[HQData.APIIndex_TITLE] apiData ', apiData);
|
|
58435
|
+
callback(apiData);
|
|
58436
|
+
}
|
|
58437
|
+
|
|
58438
|
+
|
|
@@ -23021,6 +23021,12 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
23021
23021
|
{
|
|
23022
23022
|
this.CreateLine(hqChart,windowIndex,item,i, item.Type);
|
|
23023
23023
|
}
|
|
23024
|
+
else if (item.Type==10)
|
|
23025
|
+
{
|
|
23026
|
+
this.CreateTitle(hqChart,windowIndex,item,i);
|
|
23027
|
+
}
|
|
23028
|
+
|
|
23029
|
+
|
|
23024
23030
|
|
|
23025
23031
|
var titleData=titleInfo.Data[i];
|
|
23026
23032
|
if (titleData)
|
|
@@ -23588,6 +23594,7 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
23588
23594
|
chart.Name=varItem.Name;
|
|
23589
23595
|
chart.ChartBorder=frame.Frame.ChartBorder;
|
|
23590
23596
|
chart.ChartFrame=frame.Frame;
|
|
23597
|
+
chart.Identify=overlayIndex.Identify;
|
|
23591
23598
|
if (varItem.Draw && varItem.Draw.DrawData)
|
|
23592
23599
|
{
|
|
23593
23600
|
var drawData=varItem.Draw.DrawData;
|
|
@@ -23599,6 +23606,32 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
23599
23606
|
frame.ChartPaint.push(chart);
|
|
23600
23607
|
}
|
|
23601
23608
|
|
|
23609
|
+
this.CreateTitle=function(hqChart,windowIndex,varItem,id)
|
|
23610
|
+
{
|
|
23611
|
+
var overlayIndex=this.OverlayIndex;
|
|
23612
|
+
var frame=overlayIndex.Frame;
|
|
23613
|
+
let chart=new ChartIndexTitle();
|
|
23614
|
+
chart.Canvas=hqChart.Canvas;
|
|
23615
|
+
|
|
23616
|
+
chart.Name=varItem.Name;
|
|
23617
|
+
chart.ChartBorder=frame.Frame.ChartBorder;
|
|
23618
|
+
chart.ChartFrame=frame.Frame;
|
|
23619
|
+
chart.Identify=overlayIndex.Identify;
|
|
23620
|
+
|
|
23621
|
+
if (varItem.Color) chart.Color=this.GetColor(varItem.Color);
|
|
23622
|
+
else chart.Color=this.GetDefaultColor(id);
|
|
23623
|
+
chart.Data.Data=varItem.Data;
|
|
23624
|
+
|
|
23625
|
+
var titleIndex=windowIndex+1;
|
|
23626
|
+
var titlePaint=hqChart.TitlePaint[titleIndex];
|
|
23627
|
+
var titleData=new DynamicTitleData(chart.Data,chart.Name,chart.Color);
|
|
23628
|
+
titleData.DataType="ChartIndexTitle";
|
|
23629
|
+
titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;
|
|
23630
|
+
|
|
23631
|
+
this.SetChartIndexName(chart);
|
|
23632
|
+
frame.ChartPaint.push(chart);
|
|
23633
|
+
}
|
|
23634
|
+
|
|
23602
23635
|
this.CreateStackedBar=function(hqChart,windowIndex,varItem,id)
|
|
23603
23636
|
{
|
|
23604
23637
|
var overlayIndex=this.OverlayIndex;
|
package/src/jscommon/umychart.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
4498
|
-
var paint=this.GetRectSelectPaint();
|
|
4499
|
-
var isShowMenu=true;
|
|
4500
|
-
if (event && event.Callback)
|
|
4501
|
-
{
|
|
4502
|
-
var data=
|
|
4503
|
-
{
|
|
4504
|
-
X:drag.LastMove.X-uielement.getBoundingClientRect().left,
|
|
4505
|
-
Y:drag.LastMove.Y-uielement.getBoundingClientRect().top,
|
|
4506
|
-
SelectData:selectData, //区间选择的数据
|
|
4507
|
-
RectSelectPaint:paint, //区间选择背景
|
|
4508
|
-
IsShowMenu:true,
|
|
4509
|
-
e,e
|
|
4510
|
-
};
|
|
4511
|
-
event.Callback(event,data,this);
|
|
4512
|
-
isShowMenu=data.IsShowMenu;
|
|
4513
|
-
}
|
|
4514
|
-
|
|
4515
|
-
if (IsMinuteChart) //分时图直接显示显示区间选择
|
|
4516
|
-
{
|
|
4517
|
-
this.HideSelectRect();
|
|
4518
|
-
this.UpdateSelectRect(selectData.Start,selectData.End);
|
|
4519
|
-
}
|
|
4520
|
-
else
|
|
4521
|
-
{
|
|
4522
|
-
if (isShowMenu)
|
|
4523
|
-
{
|
|
4524
|
-
var data=
|
|
4525
|
-
{
|
|
4526
|
-
Chart:this,
|
|
4527
|
-
X:drag.LastMove.X-uielement.getBoundingClientRect().left,
|
|
4528
|
-
Y:drag.LastMove.Y-uielement.getBoundingClientRect().top,
|
|
4529
|
-
SelectData:selectData, //区间选择的数据
|
|
4530
|
-
RectSelectPaint:paint //区间选择背景
|
|
4531
|
-
};
|
|
4532
|
-
|
|
4533
|
-
e.data=data;
|
|
4534
|
-
this.PopupSelectRectMenuV2(data, e);
|
|
4535
|
-
}
|
|
4536
|
-
}
|
|
4523
|
+
this.FinishSelectRect(selectData, e);
|
|
4537
4524
|
}
|
|
4538
4525
|
else
|
|
4539
4526
|
{
|
|
@@ -4573,6 +4560,92 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
4573
4560
|
this.ClearDocContextMenuTimer(5000);
|
|
4574
4561
|
}
|
|
4575
4562
|
|
|
4563
|
+
//区间选择完成
|
|
4564
|
+
this.FinishSelectRect=function(selectData, e)
|
|
4565
|
+
{
|
|
4566
|
+
var bMinuteChart=this.IsMinuteContainer();
|
|
4567
|
+
var drag=this.MouseDrag;
|
|
4568
|
+
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_SELECT_RECT);
|
|
4569
|
+
var paint=this.GetRectSelectPaint();
|
|
4570
|
+
|
|
4571
|
+
var x=drag.LastMove.X-uielement.getBoundingClientRect().left;
|
|
4572
|
+
var y=drag.LastMove.Y-uielement.getBoundingClientRect().top;
|
|
4573
|
+
|
|
4574
|
+
if (e) //往事件里面 写如我们的数据
|
|
4575
|
+
{
|
|
4576
|
+
var data=
|
|
4577
|
+
{
|
|
4578
|
+
Chart:this, X:x,Y:y,
|
|
4579
|
+
SelectData:selectData, //区间选择的数据
|
|
4580
|
+
RectSelectPaint:paint, //区间选择背景
|
|
4581
|
+
IsLButton:selectData.IsLButton, IsRButton:selectData.IsRButton,
|
|
4582
|
+
};
|
|
4583
|
+
|
|
4584
|
+
e.data=data;
|
|
4585
|
+
}
|
|
4586
|
+
|
|
4587
|
+
var aryMenu=null, command=null;
|
|
4588
|
+
if (bMinuteChart) //分时图 默认区间统计
|
|
4589
|
+
{
|
|
4590
|
+
command={ ID:JSCHART_MENU_ID.CMD_SELECTED_SUMMARY_ID, Args:[e,selectData] };
|
|
4591
|
+
}
|
|
4592
|
+
else //K线默认 区间选择K线
|
|
4593
|
+
{
|
|
4594
|
+
aryMenu=
|
|
4595
|
+
[
|
|
4596
|
+
{ Name:"区间统计", Data:{ ID:JSCHART_MENU_ID.CMD_SELECTED_SUMMARY_ID, Args:[e,selectData] }},
|
|
4597
|
+
{ Name:"区间放大", Data:{ ID:JSCHART_MENU_ID.CMD_SELECTED_ZOOM_ID, Args:[selectData] }}
|
|
4598
|
+
];
|
|
4599
|
+
}
|
|
4600
|
+
|
|
4601
|
+
if (event && event.Callback)
|
|
4602
|
+
|
|
4603
|
+
var sendData=
|
|
4604
|
+
{
|
|
4605
|
+
X:x, Y:y, e:e,
|
|
4606
|
+
SelectData:selectData, //区间选择的数据
|
|
4607
|
+
RectSelectPaint:paint, //区间选择背景
|
|
4608
|
+
AryMenu:aryMenu, //菜单 填null 不就会弹菜单
|
|
4609
|
+
Command:command, //执行命令
|
|
4610
|
+
IsLButton:selectData.IsLButton, IsRButton:selectData.IsRButton,
|
|
4611
|
+
PreventDefault:false,
|
|
4612
|
+
};
|
|
4613
|
+
if (bMinuteChart) sendData.Command=null; //分时图 调用事件 不做任何事
|
|
4614
|
+
|
|
4615
|
+
event.Callback(event,sendData,this);
|
|
4616
|
+
|
|
4617
|
+
if (sendData.PreventDefault==true) return; //已被上层替换,不调用默认的网络请求
|
|
4618
|
+
|
|
4619
|
+
aryMenu=sendData.AryMenu;
|
|
4620
|
+
command=sendData.Command;
|
|
4621
|
+
|
|
4622
|
+
|
|
4623
|
+
if (aryMenu) //弹菜单
|
|
4624
|
+
{
|
|
4625
|
+
this.PopupSelectRectMenuV3(aryMenu, data, e);
|
|
4626
|
+
return;
|
|
4627
|
+
}
|
|
4628
|
+
|
|
4629
|
+
if (command) //执行命令
|
|
4630
|
+
{
|
|
4631
|
+
this.ExecuteMenuCommand(command.ID, command.Args);
|
|
4632
|
+
return;
|
|
4633
|
+
}
|
|
4634
|
+
|
|
4635
|
+
this.HideSelectRect();
|
|
4636
|
+
this.UpdateSelectRect(selectData.Start,selectData.End);
|
|
4637
|
+
}
|
|
4638
|
+
|
|
4639
|
+
this.PopupSelectRectMenuV3=function(aryMenu, data, e)
|
|
4640
|
+
{
|
|
4641
|
+
if (!aryMenu) return;
|
|
4642
|
+
|
|
4643
|
+
var menuData={ Menu:aryMenu, Position:JSPopMenu.POSITION_ID.RIGHT_MENU_ID };
|
|
4644
|
+
menuData.ClickCallback=(data)=>{ this.OnClickRightMenu(data); }
|
|
4645
|
+
var x=data.X, y=data.Y;
|
|
4646
|
+
this.PopupMenuByRClick(menuData, x, y);
|
|
4647
|
+
}
|
|
4648
|
+
|
|
4576
4649
|
this.DocContextMenu=function(e)
|
|
4577
4650
|
{
|
|
4578
4651
|
e.preventDefault();
|
|
@@ -25013,12 +25086,12 @@ function IChartPainting()
|
|
|
25013
25086
|
if (valueType==1) //K线收盘价
|
|
25014
25087
|
{
|
|
25015
25088
|
var kItem=this.Data.Data[i];
|
|
25016
|
-
if (IFrameSplitOperator.IsNumber(kItem.Close)) value=kItem.Close
|
|
25089
|
+
if (kItem && IFrameSplitOperator.IsNumber(kItem.Close)) value=kItem.Close
|
|
25017
25090
|
}
|
|
25018
25091
|
else if (valueType==2)
|
|
25019
25092
|
{
|
|
25020
25093
|
var kItem=this.Data.Data[i];
|
|
25021
|
-
if (IFrameSplitOperator.IsNumber(kItem.Vol)) value=kItem.Vol
|
|
25094
|
+
if (kItem && IFrameSplitOperator.IsNumber(kItem.Vol)) value=kItem.Vol
|
|
25022
25095
|
}
|
|
25023
25096
|
else if (valueType==3)
|
|
25024
25097
|
{
|
|
@@ -58163,7 +58236,7 @@ function DynamicChartTitlePainting()
|
|
|
58163
58236
|
return aryText;
|
|
58164
58237
|
}
|
|
58165
58238
|
|
|
58166
|
-
this.
|
|
58239
|
+
this.FormatKLineTitle=function(item, dataInfo)
|
|
58167
58240
|
{
|
|
58168
58241
|
var defaultfloatPrecision=GetfloatPrecision(dataInfo.Symbol);//价格小数位数
|
|
58169
58242
|
var upperSymbol="";
|
|
@@ -58241,6 +58314,35 @@ function DynamicChartTitlePainting()
|
|
|
58241
58314
|
return aryText;
|
|
58242
58315
|
}
|
|
58243
58316
|
|
|
58317
|
+
this.FormatIndexTitle=function(value, dataInfo)
|
|
58318
|
+
{
|
|
58319
|
+
if (!value) return null;
|
|
58320
|
+
|
|
58321
|
+
if (IFrameSplitOperator.IsString(value)) return { Text:value, ArrayText:null };
|
|
58322
|
+
|
|
58323
|
+
if (IFrameSplitOperator.IsNonEmptyArray(value))
|
|
58324
|
+
{
|
|
58325
|
+
var aryText=[];
|
|
58326
|
+
for(var i=0;i<value.length;++i)
|
|
58327
|
+
{
|
|
58328
|
+
var item=value[i];
|
|
58329
|
+
if (!item) continue;
|
|
58330
|
+
|
|
58331
|
+
var textItem={ Name:null, Text:null };
|
|
58332
|
+
if (item.Name) textItem.Name=item.Name;
|
|
58333
|
+
if (item.Text) textItem.Text=item.Text;
|
|
58334
|
+
if (item.Color) textItem.Color=item.Color;
|
|
58335
|
+
if (IFrameSplitOperator.IsNumber(item.LeftSpace)) textItem.LeftSpace=item.LeftSpace;
|
|
58336
|
+
|
|
58337
|
+
aryText.push(textItem);
|
|
58338
|
+
}
|
|
58339
|
+
|
|
58340
|
+
return { Text:null, ArrayText:aryText }
|
|
58341
|
+
}
|
|
58342
|
+
|
|
58343
|
+
return null;
|
|
58344
|
+
}
|
|
58345
|
+
|
|
58244
58346
|
this.GetColor=function(price,yClose)
|
|
58245
58347
|
{
|
|
58246
58348
|
if (!IFrameSplitOperator.IsNumber(yClose)) return this.UnchangeColor;
|
|
@@ -58738,15 +58840,14 @@ function DynamicChartTitlePainting()
|
|
|
58738
58840
|
}
|
|
58739
58841
|
else if (item.DataType=="DRAWKLINE")
|
|
58740
58842
|
{
|
|
58741
|
-
aryText=this.
|
|
58843
|
+
aryText=this.FormatKLineTitle(value, item);
|
|
58742
58844
|
if (!aryText) return null;
|
|
58743
58845
|
return { Text:null, ArrayText:aryText };
|
|
58744
58846
|
}
|
|
58745
58847
|
else if (item.DataType=="ChartIndexTitle")
|
|
58746
58848
|
{
|
|
58747
|
-
var
|
|
58748
|
-
|
|
58749
|
-
return { Text:text, ArrayText:null };
|
|
58849
|
+
var outTitle=this.FormatIndexTitle(value, item);
|
|
58850
|
+
return outTitle;
|
|
58750
58851
|
}
|
|
58751
58852
|
else if (g_ScriptIndexChartFactory.Has(item.DataType)) //外部挂接
|
|
58752
58853
|
{
|
|
@@ -59140,9 +59241,17 @@ function DynamicChartTitlePainting()
|
|
|
59140
59241
|
}
|
|
59141
59242
|
else if (item.DataType=="DRAWKLINE")
|
|
59142
59243
|
{
|
|
59143
|
-
aryText=this.
|
|
59244
|
+
aryText=this.FormatKLineTitle(value, item);
|
|
59144
59245
|
if (!aryText) continue;
|
|
59145
59246
|
}
|
|
59247
|
+
else if (item.DataType=="ChartIndexTitle")
|
|
59248
|
+
{
|
|
59249
|
+
var outTitle=this.FormatIndexTitle(value, item);
|
|
59250
|
+
if (!outTitle) continue;
|
|
59251
|
+
|
|
59252
|
+
valueText=outTitle.Text;
|
|
59253
|
+
aryText=outTitle.ArrayText;
|
|
59254
|
+
}
|
|
59146
59255
|
else
|
|
59147
59256
|
{
|
|
59148
59257
|
valueText=this.FormatValue(value,item);
|
|
@@ -59160,6 +59269,8 @@ function DynamicChartTitlePainting()
|
|
|
59160
59269
|
var textWidth=this.Canvas.measureText(text).width+2; //后空2个像素
|
|
59161
59270
|
if ((x+textWidth)>right) break;
|
|
59162
59271
|
|
|
59272
|
+
if (IFrameSplitOperator.IsNumber(titleItem.LeftSpace)) x+=titleItem.LeftSpace*pixelRatio;
|
|
59273
|
+
|
|
59163
59274
|
if (this.OverlayIndexType.BGColor)
|
|
59164
59275
|
{
|
|
59165
59276
|
this.Canvas.fillStyle=this.OverlayIndexType.BGColor;
|
|
@@ -76604,8 +76715,21 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
76604
76715
|
x+=(rtClient.left+rtScroll.Left);
|
|
76605
76716
|
y+=(rtClient.top+rtScroll.Top);
|
|
76606
76717
|
|
|
76607
|
-
var
|
|
76608
|
-
var
|
|
76718
|
+
var item=data.Tooltip.Data;
|
|
76719
|
+
var date=item.Date;
|
|
76720
|
+
var symbol=null;
|
|
76721
|
+
|
|
76722
|
+
if (data.Tooltip.ChartPaint && data.Tooltip.ChartPaint.Name=="DRAWKLINE")
|
|
76723
|
+
{
|
|
76724
|
+
if (item.Symbol) symbol=item.Symbol;
|
|
76725
|
+
else if (data.Tooltip.Symbol) symbol=data.Tooltip.Symbol;
|
|
76726
|
+
}
|
|
76727
|
+
else
|
|
76728
|
+
{
|
|
76729
|
+
symbol=data.Chart.Symbol;
|
|
76730
|
+
}
|
|
76731
|
+
|
|
76732
|
+
if (!symbol) return;
|
|
76609
76733
|
|
|
76610
76734
|
this.PopMinuteChart.Show({ Date:date, Symbol:symbol, Data:data.Tooltip.Data }, x/pixelRatio,y/pixelRatio);
|
|
76611
76735
|
}
|
|
@@ -84170,6 +84294,9 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
84170
84294
|
}
|
|
84171
84295
|
else if ((bRButtonSelectRect || bLButtonSelectRect) && !this.BorderDrag && this.GetSelectRectData(selectData))
|
|
84172
84296
|
{
|
|
84297
|
+
this.FinishSelectRect(selectData, e);
|
|
84298
|
+
|
|
84299
|
+
/*
|
|
84173
84300
|
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_SELECT_RECT);
|
|
84174
84301
|
var paint=this.GetRectSelectPaint();
|
|
84175
84302
|
var isShowDialog=true; //是否显示内置区间选择框
|
|
@@ -84207,6 +84334,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
84207
84334
|
this.HideSelectRect();
|
|
84208
84335
|
this.UpdateSelectRect(selectData.Start,selectData.End);
|
|
84209
84336
|
}
|
|
84337
|
+
*/
|
|
84210
84338
|
}
|
|
84211
84339
|
else
|
|
84212
84340
|
{
|
|
@@ -1923,6 +1923,8 @@ HQData.Report_APIIndex=function(data, callback)
|
|
|
1923
1923
|
HQData.APIIndex_CHANNEL_V2(data, callback);
|
|
1924
1924
|
else if (request.Data.indexname=="API_DRAWKLINE")
|
|
1925
1925
|
HQData.APIIndex_DRAWKLINE(data, callback);
|
|
1926
|
+
else if (request.Data.indexname=="API_TITLE")
|
|
1927
|
+
HQData.APIIndex_TITLE(data, callback);
|
|
1926
1928
|
}
|
|
1927
1929
|
|
|
1928
1930
|
|
|
@@ -2633,7 +2635,7 @@ HQData.APIIndex_MULTI_BAR=function(data, callback)
|
|
|
2633
2635
|
[
|
|
2634
2636
|
//{Date:20190916, Time: Value:15.5, Value2:0 },
|
|
2635
2637
|
],
|
|
2636
|
-
Width:10
|
|
2638
|
+
//Width:10
|
|
2637
2639
|
};
|
|
2638
2640
|
|
|
2639
2641
|
var point2=
|
|
@@ -2646,19 +2648,22 @@ HQData.APIIndex_MULTI_BAR=function(data, callback)
|
|
|
2646
2648
|
[
|
|
2647
2649
|
//{Date:20190916, Time: Value:15.5, Value2:0 },
|
|
2648
2650
|
],
|
|
2649
|
-
Width:10
|
|
2651
|
+
//Width:10
|
|
2650
2652
|
};
|
|
2651
2653
|
|
|
2652
2654
|
for(var i=0;i<kData.Data.length;++i)
|
|
2653
2655
|
{
|
|
2654
2656
|
var item=kData.Data[i];
|
|
2655
|
-
point.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2, Value2:item.High});
|
|
2656
|
-
point2.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2, Value2:item.Low});
|
|
2657
|
+
///point.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2, Value2:item.High});
|
|
2658
|
+
///point2.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2, Value2:item.Low});
|
|
2659
|
+
|
|
2660
|
+
point.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2+HQData.GetRandomTestData(2,10), Value2:item.High});
|
|
2661
|
+
point2.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2-HQData.GetRandomTestData(2,10), Value2:item.Low});
|
|
2657
2662
|
}
|
|
2658
2663
|
|
|
2659
2664
|
|
|
2660
2665
|
|
|
2661
|
-
|
|
2666
|
+
barData.Draw.DrawData.push(point);
|
|
2662
2667
|
barData.Draw.DrawData.push(point2);
|
|
2663
2668
|
|
|
2664
2669
|
var apiData=
|
|
@@ -2840,9 +2845,6 @@ HQData.APIIndex_DRAWKLINE=function(data, callback)
|
|
|
2840
2845
|
IsShowTitle:true,
|
|
2841
2846
|
};
|
|
2842
2847
|
|
|
2843
|
-
|
|
2844
|
-
var textData={ name:"", type:10, color:"rgb(148,0,211)", data:[], isshow:false }; //名字
|
|
2845
|
-
|
|
2846
2848
|
var aryDate=[];
|
|
2847
2849
|
var aryTime=[];
|
|
2848
2850
|
for(var i=100;i<kData.Data.length-100;++i)
|
|
@@ -2864,15 +2866,13 @@ HQData.APIIndex_DRAWKLINE=function(data, callback)
|
|
|
2864
2866
|
|
|
2865
2867
|
aryDate.push(kItem.Date);
|
|
2866
2868
|
aryTime.push(kItem.Time);
|
|
2867
|
-
|
|
2868
|
-
textData.data.push(kItem.YClose.toFixed(2));
|
|
2869
2869
|
}
|
|
2870
2870
|
|
|
2871
2871
|
var apiData=
|
|
2872
2872
|
{
|
|
2873
2873
|
code:0,
|
|
2874
2874
|
stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
|
|
2875
|
-
outdata: { date:aryDate, time:aryTime, outvar:[
|
|
2875
|
+
outdata: { date:aryDate, time:aryTime, outvar:[ klineData] }
|
|
2876
2876
|
};
|
|
2877
2877
|
|
|
2878
2878
|
console.log('[HQData.APIIndex_DRAWKLINE] apiData ', apiData);
|
|
@@ -2880,3 +2880,45 @@ HQData.APIIndex_DRAWKLINE=function(data, callback)
|
|
|
2880
2880
|
}
|
|
2881
2881
|
|
|
2882
2882
|
|
|
2883
|
+
HQData.APIIndex_TITLE=function(data, callback)
|
|
2884
|
+
{
|
|
2885
|
+
data.PreventDefault=true;
|
|
2886
|
+
var hqchart=data.HQChart;
|
|
2887
|
+
var kData=hqchart.GetKData();
|
|
2888
|
+
|
|
2889
|
+
var textData={ name:"标题", type:10, color:"rgb(0,128,128)", data:[], }; //名字
|
|
2890
|
+
var closeData={ name:"收盘价", type:0, color:"rgb(255,165,0)", data:[] } ; //
|
|
2891
|
+
|
|
2892
|
+
var aryDate=[];
|
|
2893
|
+
var aryTime=[];
|
|
2894
|
+
for(var i=0;i<kData.Data.length-30;++i)
|
|
2895
|
+
{
|
|
2896
|
+
var kItem=kData.Data[i];
|
|
2897
|
+
|
|
2898
|
+
closeData.data.push(kItem.Close);
|
|
2899
|
+
|
|
2900
|
+
textData.data.push(
|
|
2901
|
+
[
|
|
2902
|
+
{ Name:`收`, Text:`${kItem.Close.toFixed(2)}`, Color:"rgb(200,10,10)",},
|
|
2903
|
+
{ Name:`开`, Text:`${kItem.Open.toFixed(2)}`, Color:"rgb(0,200,10)", LeftSpace:2 }
|
|
2904
|
+
]);
|
|
2905
|
+
|
|
2906
|
+
//textData.data.push(`价格:${kItem.Close.toFixed(2)}`);
|
|
2907
|
+
|
|
2908
|
+
aryDate.push(kItem.Date);
|
|
2909
|
+
aryTime.push(kItem.Time);
|
|
2910
|
+
}
|
|
2911
|
+
|
|
2912
|
+
|
|
2913
|
+
var apiData=
|
|
2914
|
+
{
|
|
2915
|
+
code:0,
|
|
2916
|
+
stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
|
|
2917
|
+
outdata: { date:aryDate, time:aryTime, outvar:[ textData, closeData] }
|
|
2918
|
+
};
|
|
2919
|
+
|
|
2920
|
+
console.log('[HQData.APIIndex_TITLE] apiData ', apiData);
|
|
2921
|
+
callback(apiData);
|
|
2922
|
+
}
|
|
2923
|
+
|
|
2924
|
+
|