hqchart 1.1.14258 → 1.1.14274

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.14258",
3
+ "version": "1.1.14274",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -1178,11 +1178,26 @@ function JSFloatTooltip()
1178
1178
  {
1179
1179
  this.UpdateChartDrawSVGV2Tooltip(data);
1180
1180
  }
1181
+
1181
1182
  }
1182
1183
  else if (data.DataType==2) //更新实时行情数据
1183
1184
  {
1184
1185
  this.UpdateRealtimeHQTooltip(data);
1185
1186
  }
1187
+ else if (data.DataType==3) //报价列表
1188
+ {
1189
+ var tooltipData=data.Tooltip;
1190
+ if (!tooltipData) return;
1191
+
1192
+ if (tooltipData.Type==2) //报价列表表头图标提示信息
1193
+ {
1194
+ this.ReportHeaderIconTooltip(data);
1195
+ }
1196
+ else if (tooltipData.Type==1) //单元格截断内容
1197
+ {
1198
+ this.ReportCellTruncateTooltip(data);
1199
+ }
1200
+ }
1186
1201
  }
1187
1202
 
1188
1203
  this.UpdateRealtimeHQTooltip=function(data)
@@ -1422,6 +1437,34 @@ function JSFloatTooltip()
1422
1437
 
1423
1438
  this.ShowTooltip(data);
1424
1439
  }
1440
+
1441
+ //表头图标
1442
+ this.ReportHeaderIconTooltip=function(data)
1443
+ {
1444
+ var tooltipData=data.Tooltip;
1445
+ if (!tooltipData.Data || !IFrameSplitOperator.IsNonEmptyArray(tooltipData.Data.AryText)) return;
1446
+
1447
+ this.AryText=tooltipData.Data.AryText;
1448
+ this.UpdateTableDOM();
1449
+
1450
+ this.ShowTooltip(data);
1451
+ }
1452
+
1453
+ //表格单元格截断内容
1454
+ this.ReportCellTruncateTooltip=function(data)
1455
+ {
1456
+ var tooltipData=data.Tooltip;
1457
+ if (!tooltipData.Data || !IFrameSplitOperator.IsNonEmptyArray(tooltipData.Data.AryText)) return;
1458
+
1459
+ var item=tooltipData.Data.AryText[0];
1460
+ if (!item.Text) return;
1461
+
1462
+ this.AryText=[ { Title:item.Text, IsMergeCell:true } ];
1463
+
1464
+ this.UpdateTableDOM();
1465
+
1466
+ this.ShowTooltip(data);
1467
+ }
1425
1468
 
1426
1469
  this.UpdateTableDOM=function()
1427
1470
  {
@@ -55692,6 +55692,10 @@ HQData.NetworkFilter=function(data, callback)
55692
55692
  HQData.Report_RequestVirtualStockData(data, callback); //股票数据 虚拟表格
55693
55693
  break;
55694
55694
 
55695
+ case "APIScriptIndex::ExecuteScript": //测试指标
55696
+ HQData.Report_APIIndex(data, callback);
55697
+ break;
55698
+
55695
55699
  }
55696
55700
  }
55697
55701
 
@@ -56756,7 +56760,7 @@ HQData.Report_RequestStockData=function(data, callback)
56756
56760
  newItem[33]=kData;
56757
56761
 
56758
56762
 
56759
- newItem[101]=105.0;
56763
+ newItem[101]=HQData.GetRandomTestData(-90,1000);
56760
56764
  newItem[201]=`A-[${HQData.GetRandomTestData(-90,90)}]-B`;
56761
56765
 
56762
56766
 
@@ -57349,3 +57353,404 @@ HQData.GetMulitDayMinuteDataByDate=function(aryDay, aryDate)
57349
57353
  }
57350
57354
 
57351
57355
 
57356
+ HQData.Report_APIIndex=function(data, callback)
57357
+ {
57358
+ var request=data.Request;
57359
+ if (request.Data.indexname=='API-MULTI_POINT')
57360
+ HQData.APIIndex_MULTI_POINT(data, callback);
57361
+ else if (request.Data.indexname=="API-DRAWTEXTREL")
57362
+ HQData.APIIndex_DRAWTEXTREL(data, callback);
57363
+ else if (request.Data.indexname=="API-DRAWCOLORKLINE")
57364
+ HQData.APIIndex_DRAWCOLORKLINE(data, callback);
57365
+ else if (request.Data.indexname=="API-DRAWBAND")
57366
+ HQData.APIIndex_DRAWBAND(data, callback);
57367
+ else if (request.Data.indexname=="API-MULTI_LINE")
57368
+ HQData.APIIndex_MULTI_LINE(data, callback);
57369
+ else if (request.Data.indexname=="API-MULTI_SVGICON")
57370
+ HQData.APIIndex_MULTI_SVGICON(data, callback);
57371
+ }
57372
+
57373
+
57374
+ HQData.APIIndex_MULTI_POINT=function(data, callback)
57375
+ {
57376
+ data.PreventDefault=true;
57377
+ var hqchart=data.HQChart;
57378
+ var kData=hqchart.GetKData();
57379
+
57380
+ var pointData=
57381
+ {
57382
+ name:'MULTI_POINT', type:1,
57383
+ Draw:
57384
+ {
57385
+ DrawType:'MULTI_POINT',
57386
+ DrawData:[],
57387
+ }
57388
+ };
57389
+
57390
+ var point=
57391
+ {
57392
+ Color:'rgb(211,211,211)',
57393
+ BGColor:"rgb(255,215,0)",
57394
+ PointRadius:10,
57395
+ LineWidth:2,
57396
+ Point:[ ]
57397
+ };
57398
+
57399
+ for(var i=kData.Data.length-1, j=0; i>=0 && j<6; i-=5, ++j)
57400
+ {
57401
+ var item=kData.Data[i];
57402
+ point.Point.push({Date:item.Date, Time:item.Time, Value:item.Low});
57403
+ }
57404
+
57405
+ pointData.Draw.DrawData.push(point);
57406
+
57407
+
57408
+ var point=
57409
+ {
57410
+ Color:'rgb(148,0,211)',
57411
+ BGColor:"rgb(30,144,255)",
57412
+ PointRadius:5,
57413
+ LineWidth:1,
57414
+ Point:[ ]
57415
+ };
57416
+
57417
+ for(var i=kData.Data.length-3, j=0; i>=0 && j<5; i-=6, ++j)
57418
+ {
57419
+ var item=kData.Data[i];
57420
+ point.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2});
57421
+ }
57422
+
57423
+ pointData.Draw.DrawData.push(point);
57424
+
57425
+ var apiData=
57426
+ {
57427
+ code:0, stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
57428
+ outdata: { date:kData.GetDate(), time:kData.GetTime(), outvar: [pointData] }
57429
+ };
57430
+
57431
+ console.log('[HQData.APIIndex_MULTI_POINT] apiData ', apiData);
57432
+ callback(apiData);
57433
+ }
57434
+
57435
+ HQData.APIIndex_DRAWTEXTREL=function(data, callback)
57436
+ {
57437
+ data.PreventDefault=true;
57438
+ var hqchart=data.HQChart;
57439
+ var kData=hqchart.GetKData();
57440
+
57441
+ var closeLine={ name:'价', type:0, data:kData.GetClose(), color:"rgb(255, 52, 179)" };
57442
+
57443
+ var divText=
57444
+ {
57445
+ name:'DRAWTEXTREL', type:1,
57446
+ Draw:
57447
+ {
57448
+ DrawType:'DRAWTEXTREL',
57449
+ DrawData:
57450
+ {
57451
+ Point: {X: 500, Y: 500 },
57452
+ Text: "!!!!前方高能!!!!"
57453
+ },
57454
+
57455
+ Font:"20px 微软雅黑"
57456
+ },
57457
+ color:"rgb(255,0,0)",
57458
+
57459
+ DrawVAlign:1,
57460
+ DrawAlign:1,
57461
+ }
57462
+
57463
+ var divText2=
57464
+ {
57465
+ name:'DRAWTEXTABS', type:1,
57466
+ Draw:
57467
+ {
57468
+ DrawType:'DRAWTEXTABS',
57469
+ DrawData:
57470
+ {
57471
+ Point: {X: 5, Y: 5 },
57472
+ Text: "后台指标示例"
57473
+ },
57474
+
57475
+ Font:"24px 微软雅黑"
57476
+ },
57477
+ color:"rgb(255,200,0)",
57478
+
57479
+ DrawVAlign:2,
57480
+ }
57481
+
57482
+ var apiData=
57483
+ {
57484
+ code:0,
57485
+ stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
57486
+ outdata: { date:kData.GetDate() ,time:kData.GetTime(), outvar:[closeLine,divText, divText2] }
57487
+ };
57488
+
57489
+ console.log('[HQData::APIIndex_DRAWTEXTREL] apiData ', apiData);
57490
+ callback(apiData);
57491
+ }
57492
+
57493
+
57494
+ HQData.APIIndex_DRAWCOLORKLINE=function(data, callback)
57495
+ {
57496
+ data.PreventDefault=true;
57497
+ var hqchart=data.HQChart;
57498
+ var kData=hqchart.GetKData();
57499
+
57500
+ var aryTestKData=[];
57501
+ var aryTestkData2=[];
57502
+ for(var i=0;i<kData.Data.length;++i)
57503
+ {
57504
+ var item=kData.Data[i];
57505
+ if (i%5==3) aryTestKData[i]={ Open:item.Open, High:item.High, Low:item.Low, Close:item.Close };
57506
+ else aryTestKData[i]=null;
57507
+
57508
+ if (i%13==5) aryTestkData2[i]={ Open:item.Open, High:item.High, Low:item.Low, Close:item.Close };
57509
+ else aryTestkData2[i]=null;
57510
+ }
57511
+
57512
+ var varKLine={ type:1, name:"条件K线", Draw:{ DrawData:aryTestKData, DrawType:'DRAWCOLORKLINE', IsEmptyBar:false, Color:"rgb(100,0,100)"} };
57513
+ var varKLine2={ type:1, name:"条件K线2", Draw:{ DrawData:aryTestkData2, DrawType:'DRAWCOLORKLINE', IsEmptyBar:false, Color:"rgb(255, 140, 0)"} };
57514
+
57515
+ var hqchartData=
57516
+ {
57517
+ outdata:
57518
+ {
57519
+ date:kData.GetDate(), time:kData.GetTime(),
57520
+ outvar:[ varKLine, varKLine2]
57521
+ } ,
57522
+ code:0
57523
+ };
57524
+
57525
+ console.log("[HQData.APIIndex_DRAWCOLORKLINE] DRAWCOLORKLINE=",hqchartData);
57526
+
57527
+ callback(hqchartData);
57528
+ }
57529
+
57530
+
57531
+ HQData.APIIndex_DRAWBAND=function(data, callback)
57532
+ {
57533
+ data.PreventDefault=true;
57534
+ var hqchart=data.HQChart;
57535
+ var kData=hqchart.GetKData();
57536
+
57537
+
57538
+ var bandData=
57539
+ {
57540
+ name:"DRAWBAND", type:1,
57541
+ Draw:
57542
+ {
57543
+ Name:"DRAWBAND",
57544
+ DrawType:"DRAWBAND",
57545
+ DrawData:[],
57546
+ Color:["rgb(220,20,60)","rgb(34,139,34)"]
57547
+ }
57548
+ };
57549
+
57550
+ for(var i=0;i<kData.Data.length;++i)
57551
+ {
57552
+ var kItem=kData.Data[i];
57553
+ bandData.Draw.DrawData[i]={ Value:kItem.Close, Value2:kItem.Open };
57554
+ }
57555
+
57556
+ //var closeLine={ Name:'收', Type:0, Data:aryClose };
57557
+ //var openLine={ Name:'开', Type:0, Data:aryOpen};
57558
+
57559
+ var hqchartData=
57560
+ {
57561
+ outdata:{ date:kData.GetDate(), time:kData.GetTime(), outvar:[ bandData, ] } ,
57562
+ code:0
57563
+ };
57564
+
57565
+ callback(hqchartData);
57566
+ }
57567
+
57568
+
57569
+ HQData.APIIndex_MULTI_LINE=function(data, callback)
57570
+ {
57571
+ data.PreventDefault=true;
57572
+ var hqchart=data.HQChart;
57573
+ var kData=hqchart.GetKData();
57574
+
57575
+ var line3=
57576
+ {
57577
+ name:'MULTI_LINE', type:1,
57578
+
57579
+ Draw:
57580
+ {
57581
+ DrawType:'MULTI_LINE', DrawData:[],
57582
+ LineWidth:5,
57583
+ Arrow:
57584
+ {
57585
+ Start:true, //是否绘制开始箭头 <-
57586
+ End:true, //是否绘制结束箭头 ->
57587
+ Angle:30, //三角斜边一直线夹角
57588
+ Length:10, //三角斜边长度
57589
+ LineWidth:4, //箭头粗细
57590
+ }
57591
+ }, //绘制线段数组
57592
+
57593
+ IsShowTitle:false
57594
+ };
57595
+
57596
+ var point3=
57597
+ {
57598
+ Color:'rgb(255,0,255)',
57599
+ Point:[]
57600
+ }
57601
+
57602
+ for(var i=kData.Data.length-10;i<kData.Data.length;++i)
57603
+ {
57604
+ var item=kData.Data[i];
57605
+ point3.Point.push({Date:item.Date, Time:item.Time, Value:item.High});
57606
+ }
57607
+ line3.Draw.DrawData.push(point3);
57608
+
57609
+ var apiData=
57610
+ {
57611
+ code:0,
57612
+ stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
57613
+ outdata: { date:kData.GetDate(), time:kData.GetTime(), outvar:[line3] }
57614
+ };
57615
+
57616
+ console.log('[HQData.APIIndex_MULTI_LINE] apiData ', apiData);
57617
+ callback(apiData);
57618
+ }
57619
+
57620
+
57621
+ HQData.APIIndex_MULTI_SVGICON=function(data, callback)
57622
+ {
57623
+ data.PreventDefault=true;
57624
+ var hqchart=data.HQChart;
57625
+ var kData=hqchart.GetKData();
57626
+
57627
+ var iconData=
57628
+ {
57629
+ name:'MULTI_SVGICON', type:1,
57630
+ Draw:
57631
+ {
57632
+ DrawType:'MULTI_SVGICON',
57633
+ DrawData:
57634
+ {
57635
+ Family:'iconfont',
57636
+ Icon:
57637
+ [
57638
+ //{ Date:20190916, Value:"High", Symbol:'\ue611', Color:'rgb(240,0,0)', Baseline:2 , YMove:-5}, //0 居中 1 上 2 下
57639
+ //{ Date:20190919, Value:15.3, Symbol:'\ue615', Color:'rgb(240,240,0)', Baseline:2 },
57640
+ //{ Date:20190909, Value:15.4, Symbol:'\ue615', Color:'rgb(240,100,30)'}
57641
+ ]
57642
+ }
57643
+ } //绘制图标数组
57644
+ };
57645
+
57646
+ var TEST_ICON_SYMBOL=['\ue678', '\ue66e', "\ue66b"];
57647
+ var TEST_ICON_COLOR=["'rgb(240,0,0)", "rgb(240,100,30)", "rgb(138,43, 226)", "rgb(151,255,255)", "rgb(255, 20, 147)"];
57648
+
57649
+ for(var i=kData.Data.length-20, j=0;i<kData.Data.length;++i)
57650
+ {
57651
+ var item=kData.Data[i];
57652
+
57653
+ if (i%3!=1) continue;
57654
+
57655
+ var iconIndex=Math.ceil(Math.random()*10) % TEST_ICON_SYMBOL.length;
57656
+ var colorIndex=Math.ceil(Math.random()*10) % TEST_ICON_COLOR.length;
57657
+
57658
+ if (j==2)
57659
+ {
57660
+ var iconItem=
57661
+ {
57662
+ Date:item.Date, Time:item.Time,
57663
+ Value:item.High,
57664
+ Symbol:TEST_ICON_SYMBOL[iconIndex],
57665
+ Color:TEST_ICON_COLOR[colorIndex],
57666
+ Baseline:2,
57667
+ YMove:-35,
57668
+ Line:{ Color:"rgb(153,50,204)", KData:"H", Width:1, Offset:[3,10], Dash:[5,5] },
57669
+ };
57670
+
57671
+ var iconItem2=
57672
+ {
57673
+ Date:item.Date, Time:item.Time,
57674
+ Value:item.Low,
57675
+ Symbol:TEST_ICON_SYMBOL[iconIndex],
57676
+ Color:TEST_ICON_COLOR[colorIndex],
57677
+ Baseline:2,
57678
+ YMove:50,
57679
+ };
57680
+
57681
+ iconData.Draw.DrawData.Icon.push(iconItem2);
57682
+ }
57683
+ else if (j==3)
57684
+ {
57685
+ var iconItem=
57686
+ {
57687
+ Date:item.Date, Time:item.Time,
57688
+ Value:"L",
57689
+ Symbol:TEST_ICON_SYMBOL[iconIndex],
57690
+ Color:TEST_ICON_COLOR[colorIndex],
57691
+ Baseline:1,
57692
+ YMove:5,
57693
+ };
57694
+ }
57695
+ else if (j==4)
57696
+ {
57697
+ var iconItem=
57698
+ {
57699
+ Date:item.Date, Time:item.Time,
57700
+ Value:item.Low*0.95,
57701
+ Symbol:TEST_ICON_SYMBOL[iconIndex],
57702
+ Color:TEST_ICON_COLOR[colorIndex],
57703
+ Baseline:1,
57704
+ YMove:5,
57705
+ Line:{ Color:"rgb(153,50,204)", KData:"L", Width:1, Offset:[3,10], Dash:[5,5] },
57706
+ Text:"提示信息:<br>这个是提示信息"
57707
+ };
57708
+ }
57709
+ else
57710
+ {
57711
+ var iconItem=
57712
+ {
57713
+ Date:item.Date, Time:item.Time,
57714
+ Value:item.High,
57715
+ Symbol:TEST_ICON_SYMBOL[iconIndex],
57716
+ Color:TEST_ICON_COLOR[colorIndex],
57717
+ Baseline:2,
57718
+ YMove:-20,
57719
+ Text:
57720
+ {
57721
+ AryText:
57722
+ [
57723
+ { Title:"日期:", Text:`${item.Date}`, Color:"rgb(230,230,230)", Align:"Left"},
57724
+ { Title:"提示:", Text:"提示信息xxxxx", Color:"rgb(250,0,0)",Align:"Left"}
57725
+ ]
57726
+ },
57727
+
57728
+ //Line:{ Color:"rgb(153,50,204)", KData:"H", Width:1, Offset:[3,10], Dash:[5,5] },
57729
+ };
57730
+
57731
+
57732
+ /*
57733
+ if (j%5==1)
57734
+ iconItem.Image={ Data:image1, Width:32, Height:32 };
57735
+ else if (j%5==3)
57736
+ iconItem.Image={ Data:image2, Width:32, Height:32 };
57737
+ */
57738
+ }
57739
+
57740
+ iconData.Draw.DrawData.Icon.push(iconItem);
57741
+ ++j;
57742
+ }
57743
+
57744
+ var apiData=
57745
+ {
57746
+ code:0,
57747
+ stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
57748
+ outdata: { date:kData.GetDate() , outvar:[iconData] }
57749
+ };
57750
+
57751
+
57752
+ console.log('[HQData.APIIndex_MULTI_SVGICON] apiData ', apiData);
57753
+ callback(apiData);
57754
+ }
57755
+
57756
+
@@ -16889,9 +16889,6 @@ function JSExecute(ast,option)
16889
16889
 
16890
16890
  case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_OTHER_SYMBOL_DATA: //指定股票数据
16891
16891
  return this.SymbolData.GetOtherSymbolData(jobItem);
16892
-
16893
- case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_RELEASE_DATE_DATA:
16894
- return this.SymbolData.GetCompanyReleaseDate(jobItem.ID);
16895
16892
 
16896
16893
  case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_BALANCE:
16897
16894
  case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_RATE: