hqchart 1.1.15018 → 1.1.15029
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 +37 -18
- package/package.json +1 -1
- package/src/jscommon/umychart.DialogTooltip.js +269 -2
- package/src/jscommon/umychart.TReport.js +39 -7
- package/src/jscommon/umychart.complier.js +1 -1
- package/src/jscommon/umychart.js +36 -3
- package/src/jscommon/umychart.resource/css/tools.css +71 -1
- package/src/jscommon/umychart.style.js +11 -1
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +49 -6
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +357 -15
package/package.json
CHANGED
|
@@ -2358,6 +2358,7 @@ function JSSmallFloatTooltip()
|
|
|
2358
2358
|
this.DivDialog=null;
|
|
2359
2359
|
this.DivContent=null;
|
|
2360
2360
|
this.HQChart=null;
|
|
2361
|
+
this.ClassName="JSSmallFloatTooltip";
|
|
2361
2362
|
|
|
2362
2363
|
this.Destroy=function()
|
|
2363
2364
|
{
|
|
@@ -2445,23 +2446,242 @@ function JSSmallFloatTooltip()
|
|
|
2445
2446
|
}
|
|
2446
2447
|
}
|
|
2447
2448
|
|
|
2449
|
+
|
|
2450
|
+
function JSSmallFloatTooltipV2()
|
|
2451
|
+
{
|
|
2452
|
+
this.newMethod=JSSmallFloatTooltip; //派生
|
|
2453
|
+
this.newMethod();
|
|
2454
|
+
delete this.newMethod;
|
|
2455
|
+
|
|
2456
|
+
this.ClassName="JSSmallFloatTooltipV2";
|
|
2457
|
+
|
|
2458
|
+
this.AryData=[]; //输出文字信息
|
|
2459
|
+
this.AryText=[]; //表格tr
|
|
2460
|
+
this.MaxRowCount=25;
|
|
2461
|
+
|
|
2462
|
+
this.BGColor=g_JSChartResource.SmallFloatTooltipV2.BGColor;
|
|
2463
|
+
this.BorderColor=g_JSChartResource.SmallFloatTooltipV2.BorderColor;
|
|
2464
|
+
|
|
2465
|
+
this.TextColor=g_JSChartResource.SmallFloatTooltipV2.TextColor;
|
|
2466
|
+
this.ValueColor=g_JSChartResource.SmallFloatTooltipV2.ValueColor;
|
|
2467
|
+
|
|
2468
|
+
this.ValueAlign=
|
|
2469
|
+
{
|
|
2470
|
+
Left:"UMyChart_Small_Tooltip_V2_Text2_Span", //左对齐
|
|
2471
|
+
MarginLeft:'UMyChart_Small_Tooltip_V2_Text3_Span',
|
|
2472
|
+
Right:"UMyChart_Small_Tooltip_V2_Text_Span",
|
|
2473
|
+
}
|
|
2474
|
+
|
|
2475
|
+
this.TitleAlign=
|
|
2476
|
+
{
|
|
2477
|
+
Default:"UMyChart_Small_Tooltip_V2_Title_Span", //标题默认
|
|
2478
|
+
}
|
|
2479
|
+
|
|
2480
|
+
this.Destroy=function()
|
|
2481
|
+
{
|
|
2482
|
+
this.AryData=[];
|
|
2483
|
+
this.AryText=[];
|
|
2484
|
+
this.HQChart=null;
|
|
2485
|
+
|
|
2486
|
+
if (this.DivDialog)
|
|
2487
|
+
{
|
|
2488
|
+
document.body.removeChild(this.DivDialog);
|
|
2489
|
+
this.DivDialog=null;
|
|
2490
|
+
}
|
|
2491
|
+
}
|
|
2492
|
+
|
|
2493
|
+
this.Create=function()
|
|
2494
|
+
{
|
|
2495
|
+
var divDom=document.createElement("div");
|
|
2496
|
+
divDom.className='UMyChart_Small_Tooltip_V2_Div';
|
|
2497
|
+
|
|
2498
|
+
var table=document.createElement("table");
|
|
2499
|
+
table.className="UMyChart_Small_Tooltip_V2_Table";
|
|
2500
|
+
divDom.appendChild(table);
|
|
2501
|
+
|
|
2502
|
+
var tbody=document.createElement("tbody");
|
|
2503
|
+
tbody.className="UMyChart_Small_Tooltip_V2_Tbody";
|
|
2504
|
+
table.appendChild(tbody);
|
|
2505
|
+
|
|
2506
|
+
this.AryData=[];
|
|
2507
|
+
|
|
2508
|
+
for(var i=0;i<this.MaxRowCount;++i)
|
|
2509
|
+
{
|
|
2510
|
+
var rowItem={ Tr:null, TitleSpan:null, TextSpan:null, TitleTd:null, TextTd:null };
|
|
2511
|
+
|
|
2512
|
+
var trDom=document.createElement("tr");
|
|
2513
|
+
trDom.className='UMyChart_Small_Tooltip_V2_Group_Tr';
|
|
2514
|
+
tbody.appendChild(trDom);
|
|
2515
|
+
rowItem.Tr=trDom;
|
|
2516
|
+
|
|
2517
|
+
var tdDom=document.createElement("td");
|
|
2518
|
+
tdDom.className="UMyChart_Small_Tooltip_V2_Title_Td"; //标题
|
|
2519
|
+
trDom.appendChild(tdDom);
|
|
2520
|
+
rowItem.TitleTd=tdDom;
|
|
2521
|
+
|
|
2522
|
+
var spanDom=document.createElement("span");
|
|
2523
|
+
spanDom.className=this.TitleAlign.Default;
|
|
2524
|
+
spanDom.innerText='标题';
|
|
2525
|
+
tdDom.appendChild(spanDom);
|
|
2526
|
+
rowItem.TitleSpan=spanDom;
|
|
2527
|
+
|
|
2528
|
+
var tdDom=document.createElement("td");
|
|
2529
|
+
tdDom.className="UMyChart_Small_Tooltip_V2_Text_Td"; //数值
|
|
2530
|
+
trDom.appendChild(tdDom);
|
|
2531
|
+
rowItem.TextTd=tdDom;
|
|
2532
|
+
|
|
2533
|
+
var spanDom=document.createElement("span");
|
|
2534
|
+
spanDom.className='UMyChart_Small_Tooltip_V2_Text_Span';
|
|
2535
|
+
spanDom.innerText='数值';
|
|
2536
|
+
tdDom.appendChild(spanDom);
|
|
2537
|
+
rowItem.TextSpan=spanDom;
|
|
2538
|
+
|
|
2539
|
+
this.AryData.push(rowItem);
|
|
2540
|
+
}
|
|
2541
|
+
|
|
2542
|
+
document.body.appendChild(divDom);
|
|
2543
|
+
|
|
2544
|
+
this.DivDialog=divDom;
|
|
2545
|
+
|
|
2546
|
+
this.UpdateStyle();
|
|
2547
|
+
}
|
|
2548
|
+
|
|
2549
|
+
this.UpdateStyle=function()
|
|
2550
|
+
{
|
|
2551
|
+
if (!this.DivDialog) return;
|
|
2552
|
+
|
|
2553
|
+
if (this.BGColor) this.DivDialog.style['background-color']=this.BGColor;
|
|
2554
|
+
if (this.BorderColor) this.DivDialog.style['border-color']=this.BorderColor;
|
|
2555
|
+
}
|
|
2556
|
+
|
|
2557
|
+
this.Update=function(data)
|
|
2558
|
+
{
|
|
2559
|
+
if (!this.DivDialog) return;
|
|
2560
|
+
|
|
2561
|
+
this.AryText=[];
|
|
2562
|
+
for(var i=0;i<data.AryData.length;++i)
|
|
2563
|
+
{
|
|
2564
|
+
var item=data.AryData[i];
|
|
2565
|
+
if (item.Type==1) this.UpdateDefaultTooltip(item);
|
|
2566
|
+
//else if (item.Type==2) this.Updateddd();
|
|
2567
|
+
}
|
|
2568
|
+
|
|
2569
|
+
this.UpdateTableDOM();
|
|
2570
|
+
this.ShowTooltip(data);
|
|
2571
|
+
}
|
|
2572
|
+
|
|
2573
|
+
this.UpdateDefaultTooltip=function(data)
|
|
2574
|
+
{
|
|
2575
|
+
var text=data.Data.Text;
|
|
2576
|
+
var rowItem={ Text:"", HTMLTitle:text, Color:this.ValueColor, IsMergeCell:true };
|
|
2577
|
+
this.AryText.push(rowItem);
|
|
2578
|
+
}
|
|
2579
|
+
|
|
2580
|
+
this.UpdateTableDOM=function()
|
|
2581
|
+
{
|
|
2582
|
+
var index=0;
|
|
2583
|
+
for(index=0;index<this.AryText.length && index<this.MaxRowCount;++index)
|
|
2584
|
+
{
|
|
2585
|
+
var outItem=this.AryText[index];
|
|
2586
|
+
var item=this.AryData[index];
|
|
2587
|
+
|
|
2588
|
+
if (outItem.HTMLTitle) item.TitleSpan.innerHTML=outItem.HTMLTitle
|
|
2589
|
+
else item.TitleSpan.innerText=outItem.Title;
|
|
2590
|
+
|
|
2591
|
+
if (outItem.TitleColor) item.TitleSpan.style.color=outItem.TitleColor;
|
|
2592
|
+
else item.TitleSpan.style.color=this.TextColor;
|
|
2593
|
+
|
|
2594
|
+
if (outItem.HTMLText) item.TextSpan.innerHTML=outItem.HTMLText
|
|
2595
|
+
else item.TextSpan.innerText=outItem.Text;
|
|
2596
|
+
|
|
2597
|
+
item.TextSpan.style.color=outItem.Color;
|
|
2598
|
+
item.TextTd.style.color=outItem.Color;
|
|
2599
|
+
|
|
2600
|
+
if (outItem.ClassName)
|
|
2601
|
+
{
|
|
2602
|
+
item.TextSpan.className=outItem.ClassName;
|
|
2603
|
+
}
|
|
2604
|
+
else
|
|
2605
|
+
{
|
|
2606
|
+
if (item.TextSpan.className!=this.ValueAlign.Right) item.TextSpan.className=this.ValueAlign.Right;
|
|
2607
|
+
}
|
|
2608
|
+
|
|
2609
|
+
if (outItem.TitleClassName)
|
|
2610
|
+
{
|
|
2611
|
+
item.TitleSpan.className=outItem.TitleClassName;
|
|
2612
|
+
}
|
|
2613
|
+
else
|
|
2614
|
+
{
|
|
2615
|
+
if (item.TitleSpan.className!=this.TitleAlign.Default) item.TitleSpan.className=this.TitleAlign.Default;
|
|
2616
|
+
}
|
|
2617
|
+
|
|
2618
|
+
if (outItem.IsMergeCell) //合并单元格
|
|
2619
|
+
{
|
|
2620
|
+
item.TitleTd.colspan=2;
|
|
2621
|
+
item.TextTd.style.display="none";
|
|
2622
|
+
}
|
|
2623
|
+
else
|
|
2624
|
+
{
|
|
2625
|
+
if (item.TitleTd.colspan!=1) item.TitleTd.colspan=1;
|
|
2626
|
+
item.TextTd.style.display="";
|
|
2627
|
+
}
|
|
2628
|
+
|
|
2629
|
+
item.Tr.style.display="";
|
|
2630
|
+
if (item.Tr2) item.Tr2.style.display="none";
|
|
2631
|
+
|
|
2632
|
+
}
|
|
2633
|
+
|
|
2634
|
+
for( ; index<this.MaxRowCount; ++index)
|
|
2635
|
+
{
|
|
2636
|
+
var item=this.AryData[index];
|
|
2637
|
+
item.Tr.style.display="none";
|
|
2638
|
+
if (item.Tr2) item.Tr2.style.display="none";
|
|
2639
|
+
}
|
|
2640
|
+
}
|
|
2641
|
+
}
|
|
2642
|
+
|
|
2448
2643
|
function JSSmallFloatTooltipGroup()
|
|
2449
2644
|
{
|
|
2450
2645
|
this.AryTooltip=[];
|
|
2451
2646
|
this.HQChart=null;
|
|
2452
2647
|
this.MaxCount=5;
|
|
2648
|
+
this.MaxRowCount=15;
|
|
2649
|
+
this.Style=0;
|
|
2453
2650
|
|
|
2454
2651
|
this.Inital=function(hqchart, option)
|
|
2455
2652
|
{
|
|
2456
2653
|
this.HQChart=hqchart;
|
|
2654
|
+
if (option)
|
|
2655
|
+
{
|
|
2656
|
+
if (IFrameSplitOperator.IsNumber(option.Style)) this.Style=option.Style;
|
|
2657
|
+
if (IFrameSplitOperator.IsNumber(option.MaxRowCount)) this.Style=option.MaxRowCount;
|
|
2658
|
+
if (IFrameSplitOperator.IsNumber(option.MaxCount)) this.Style=option.MaxCount;
|
|
2659
|
+
}
|
|
2660
|
+
}
|
|
2661
|
+
|
|
2662
|
+
this.CreateTooltipDom=function()
|
|
2663
|
+
{
|
|
2664
|
+
var item=null;
|
|
2665
|
+
if (this.Style==1)
|
|
2666
|
+
{
|
|
2667
|
+
item=new JSSmallFloatTooltipV2();
|
|
2668
|
+
item.MaxRowCount=this.MaxRowCount;
|
|
2669
|
+
}
|
|
2670
|
+
else
|
|
2671
|
+
{
|
|
2672
|
+
item=new JSSmallFloatTooltip();
|
|
2673
|
+
}
|
|
2674
|
+
|
|
2675
|
+
item.HQChart=this.HQChart;
|
|
2676
|
+
return item;
|
|
2457
2677
|
}
|
|
2458
2678
|
|
|
2459
2679
|
this.Create=function()
|
|
2460
2680
|
{
|
|
2461
2681
|
for(var i=0;i<this.MaxCount;++i)
|
|
2462
2682
|
{
|
|
2463
|
-
var item=
|
|
2464
|
-
|
|
2683
|
+
var item=this.CreateTooltipDom();
|
|
2684
|
+
|
|
2465
2685
|
item.Create();
|
|
2466
2686
|
this.AryTooltip.push(item);
|
|
2467
2687
|
}
|
|
@@ -2480,6 +2700,12 @@ function JSSmallFloatTooltipGroup()
|
|
|
2480
2700
|
|
|
2481
2701
|
this.Update=function(data)
|
|
2482
2702
|
{
|
|
2703
|
+
if (this.Style==1)
|
|
2704
|
+
{
|
|
2705
|
+
this.UpdateV2(data);
|
|
2706
|
+
return;
|
|
2707
|
+
}
|
|
2708
|
+
|
|
2483
2709
|
var tooltipData=data.Tooltip;
|
|
2484
2710
|
var pixelTatio = GetDevicePixelRatio();
|
|
2485
2711
|
if (pixelTatio===0) pixelTatio=1;
|
|
@@ -2501,6 +2727,47 @@ function JSSmallFloatTooltipGroup()
|
|
|
2501
2727
|
}
|
|
2502
2728
|
}
|
|
2503
2729
|
|
|
2730
|
+
//Style==1 同价格合并输出
|
|
2731
|
+
this.UpdateV2=function(data)
|
|
2732
|
+
{
|
|
2733
|
+
var tooltipData=data.Tooltip;
|
|
2734
|
+
var pixelTatio = GetDevicePixelRatio();
|
|
2735
|
+
if (pixelTatio===0) pixelTatio=1;
|
|
2736
|
+
|
|
2737
|
+
var x=tooltipData.X/pixelTatio;
|
|
2738
|
+
var mapTooltip=new Map(); //根据Y轴 归类
|
|
2739
|
+
for(var i=0; i<tooltipData.AryData.length;++i)
|
|
2740
|
+
{
|
|
2741
|
+
var item=tooltipData.AryData[i];
|
|
2742
|
+
var key=parseInt(item.Y);
|
|
2743
|
+
if (mapTooltip.has(key))
|
|
2744
|
+
{
|
|
2745
|
+
var mapItem=mapTooltip.get(key);
|
|
2746
|
+
mapItem.AryData.push(item);
|
|
2747
|
+
}
|
|
2748
|
+
else
|
|
2749
|
+
{
|
|
2750
|
+
mapTooltip.set(key, { Key:key, Point:{ X:x, Y:item.Y/pixelTatio }, AryData:[ item ] });
|
|
2751
|
+
}
|
|
2752
|
+
}
|
|
2753
|
+
|
|
2754
|
+
var aryData=[];
|
|
2755
|
+
for(var mapItem of mapTooltip) aryData.push(mapItem[1]);
|
|
2756
|
+
|
|
2757
|
+
for(var i=0; i<aryData.length && i<this.AryTooltip.length; ++i)
|
|
2758
|
+
{
|
|
2759
|
+
var item=aryData[i];
|
|
2760
|
+
var tooltipItem=this.AryTooltip[i];
|
|
2761
|
+
tooltipItem.Update(item);
|
|
2762
|
+
}
|
|
2763
|
+
|
|
2764
|
+
for(var i=tooltipData.AryData.length; i<this.AryTooltip.length; ++i)
|
|
2765
|
+
{
|
|
2766
|
+
var item=this.AryTooltip[i];
|
|
2767
|
+
item.Hide();
|
|
2768
|
+
}
|
|
2769
|
+
}
|
|
2770
|
+
|
|
2504
2771
|
this.Hide=function()
|
|
2505
2772
|
{
|
|
2506
2773
|
for(var i=0;i<this.AryTooltip.length;++i)
|
|
@@ -291,7 +291,7 @@ function JSTReportChartContainer(uielement)
|
|
|
291
291
|
this.Symbol; //期权对应的品种代码
|
|
292
292
|
this.Name; //期权对应的品种名称
|
|
293
293
|
this.NetworkFilter; //数据回调接口
|
|
294
|
-
this.Data={ XOffset:0, YOffset:0, Data:[], Price:null }; //股票列表 Price=标的物市场价格
|
|
294
|
+
this.Data={ XOffset:0, YOffset:0, Data:[], Price:null, MatchExePrice:null }; //股票列表 Price=标的物市场价格 MatchExePrice=标的物市场价格匹配的行权价格
|
|
295
295
|
this.BorderData={ MapData:null }; //key=Field Value:[null, {ExePrice} ,{ExePrice} ]
|
|
296
296
|
this.SourceData={ Data:[] } ; //原始股票顺序(排序还原用) {ExePrice=行权价格 LeftData:, RightData}
|
|
297
297
|
|
|
@@ -841,7 +841,11 @@ function JSTReportChartContainer(uielement)
|
|
|
841
841
|
}
|
|
842
842
|
}
|
|
843
843
|
|
|
844
|
-
if (IFrameSplitOperator.IsNumber(data.price))
|
|
844
|
+
if (IFrameSplitOperator.IsNumber(data.price))
|
|
845
|
+
{
|
|
846
|
+
this.Data.Price=data.price;
|
|
847
|
+
this.Data.MatchExePrice=null;
|
|
848
|
+
}
|
|
845
849
|
|
|
846
850
|
if (IFrameSplitOperator.IsNonEmptyArray(data.fixedRowData))
|
|
847
851
|
{
|
|
@@ -880,11 +884,13 @@ function JSTReportChartContainer(uielement)
|
|
|
880
884
|
//计算统计数据
|
|
881
885
|
this.CalculateData=function()
|
|
882
886
|
{
|
|
887
|
+
this.Data.MatchExePrice=null;
|
|
883
888
|
if (!this.MapExePriceData || this.MapExePriceData.size<=0) return;
|
|
884
889
|
|
|
885
890
|
var leftMaxPosition={ Max:null, ExePrice:null, CellType:1 };
|
|
886
891
|
var rightMaxPosition={ Max:null,ExePrice:null, CellType:2 };
|
|
887
892
|
this.BorderData.MapData=new Map();
|
|
893
|
+
var aryPrice=[];
|
|
888
894
|
for(var mapItem of this.MapExePriceData)
|
|
889
895
|
{
|
|
890
896
|
var item=mapItem[1];
|
|
@@ -907,6 +913,8 @@ function JSTReportChartContainer(uielement)
|
|
|
907
913
|
rightMaxPosition.ExePrice=mapItem[0];
|
|
908
914
|
}
|
|
909
915
|
}
|
|
916
|
+
|
|
917
|
+
aryPrice.push(item.ExePrice);
|
|
910
918
|
}
|
|
911
919
|
|
|
912
920
|
var aryData=[null, null, null];
|
|
@@ -914,6 +922,24 @@ function JSTReportChartContainer(uielement)
|
|
|
914
922
|
if (rightMaxPosition.ExePrice) aryData[2]=rightMaxPosition;
|
|
915
923
|
|
|
916
924
|
this.BorderData.MapData.set(TREPORT_COLUMN_ID.POSITION_ID, { Data:aryData });
|
|
925
|
+
|
|
926
|
+
if (IFrameSplitOperator.IsNumber(this.Data.Price))
|
|
927
|
+
{
|
|
928
|
+
aryPrice.sort((left, right)=>{ return left-right;});
|
|
929
|
+
var prePrice=null;
|
|
930
|
+
for(var i=0;i<aryPrice.length;++i)
|
|
931
|
+
{
|
|
932
|
+
var value=aryPrice[i];
|
|
933
|
+
if (value>this.Data.Price)
|
|
934
|
+
{
|
|
935
|
+
this.Data.MatchExePrice=prePrice
|
|
936
|
+
break;
|
|
937
|
+
}
|
|
938
|
+
|
|
939
|
+
prePrice=value;
|
|
940
|
+
}
|
|
941
|
+
}
|
|
942
|
+
|
|
917
943
|
}
|
|
918
944
|
|
|
919
945
|
//读取单条股票json数据
|
|
@@ -1968,7 +1994,8 @@ function ChartTReport()
|
|
|
1968
1994
|
{
|
|
1969
1995
|
TextColor:g_JSChartResource.TReport.CenterItem.TextColor,
|
|
1970
1996
|
BaseTextColor:g_JSChartResource.TReport.CenterItem.BaseTextColor,
|
|
1971
|
-
BGColor: g_JSChartResource.TReport.CenterItem.BGColor
|
|
1997
|
+
BGColor: g_JSChartResource.TReport.CenterItem.BGColor,
|
|
1998
|
+
MatchTextColor:g_JSChartResource.TReport.CenterItem.MatchTextColor,
|
|
1972
1999
|
};
|
|
1973
2000
|
|
|
1974
2001
|
//缓存
|
|
@@ -2487,13 +2514,13 @@ function ChartTReport()
|
|
|
2487
2514
|
var leftBGColor=null, rightBGColor=null;
|
|
2488
2515
|
if (exePrice>this.Data.Price)
|
|
2489
2516
|
{
|
|
2490
|
-
leftBGColor=this.
|
|
2491
|
-
rightBGColor=this.
|
|
2517
|
+
leftBGColor=this.DownBGColor;
|
|
2518
|
+
rightBGColor=this.UpBGColor;
|
|
2492
2519
|
}
|
|
2493
2520
|
else
|
|
2494
2521
|
{
|
|
2495
|
-
leftBGColor=this.
|
|
2496
|
-
rightBGColor=this.
|
|
2522
|
+
leftBGColor=this.UpBGColor;
|
|
2523
|
+
rightBGColor=this.DownBGColor;
|
|
2497
2524
|
}
|
|
2498
2525
|
|
|
2499
2526
|
if (leftBGColor)
|
|
@@ -2612,6 +2639,11 @@ function ChartTReport()
|
|
|
2612
2639
|
var drawInfo={ Text:null, TextColor:this.CenterItemConfig.TextColor, BGColor:this.CenterItemConfig.BGColor, TextAlign:column.TextAlign, Rect:rtItem, RectText:rtText };
|
|
2613
2640
|
drawInfo.Text=`${data.ExePrice.toFixed(data.Decimal)}`;
|
|
2614
2641
|
|
|
2642
|
+
if (IFrameSplitOperator.IsNumber(this.Data.MatchExePrice) && this.Data.MatchExePrice==data.ExePrice)
|
|
2643
|
+
{
|
|
2644
|
+
drawInfo.TextColor=this.CenterItemConfig.MatchTextColor;
|
|
2645
|
+
}
|
|
2646
|
+
|
|
2615
2647
|
this.FormatCenterItem(data,drawInfo);
|
|
2616
2648
|
|
|
2617
2649
|
this.DrawCell(drawInfo);
|
|
@@ -3292,7 +3292,7 @@ function JSAlgorithm(errorHandler,symbolData)
|
|
|
3292
3292
|
this.EMA=function(data,dayCount)
|
|
3293
3293
|
{
|
|
3294
3294
|
var result = [];
|
|
3295
|
-
if (data.length<=0) return result;
|
|
3295
|
+
if (!data || data.length<=0) return result;
|
|
3296
3296
|
|
|
3297
3297
|
if (Array.isArray(dayCount))
|
|
3298
3298
|
{
|
package/src/jscommon/umychart.js
CHANGED
|
@@ -6372,12 +6372,20 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
6372
6372
|
canvas.clearRect(0,0,this.UIElement.width,this.UIElement.height);
|
|
6373
6373
|
}
|
|
6374
6374
|
|
|
6375
|
+
this.ClearCorssCursorCanvas=function()
|
|
6376
|
+
{
|
|
6377
|
+
if (!this.CorssCursorCanvas) return;
|
|
6378
|
+
|
|
6379
|
+
this.CorssCursorCanvas.clearRect(0,0,this.CorssCursorElement.width,this.CorssCursorElement.height);
|
|
6380
|
+
}
|
|
6381
|
+
|
|
6375
6382
|
this.Draw=function()
|
|
6376
6383
|
{
|
|
6377
6384
|
if (this.ChartCorssCursor) this.ChartCorssCursor.Status=0;
|
|
6378
6385
|
if (this.UIElement.width<=0 || this.UIElement.height<=0) return;
|
|
6379
6386
|
|
|
6380
6387
|
this.StopDrawDynamicInfo();
|
|
6388
|
+
this.ClearCorssCursorCanvas();
|
|
6381
6389
|
|
|
6382
6390
|
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_BEFORE_DRAW);
|
|
6383
6391
|
if (event && event.Callback)
|
|
@@ -6551,7 +6559,6 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
6551
6559
|
if (this.CorssCursorCanvas) //独立的十字光标层
|
|
6552
6560
|
{
|
|
6553
6561
|
this.ChartCorssCursor.Canvas=this.CorssCursorCanvas;
|
|
6554
|
-
this.ChartCorssCursor.Canvas.clearRect(0,0,this.CorssCursorElement.width,this.CorssCursorElement.height)
|
|
6555
6562
|
bRestoreCanvas=true;
|
|
6556
6563
|
}
|
|
6557
6564
|
|
|
@@ -7355,6 +7362,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
7355
7362
|
{
|
|
7356
7363
|
if (!this.ChartCorssCursor) return null;
|
|
7357
7364
|
if (this.ChartCorssCursor.Status===0) return null;
|
|
7365
|
+
if (!this.ChartCorssCursor.IsShowCorss) return null;
|
|
7358
7366
|
|
|
7359
7367
|
var kItem=this.ChartCorssCursor.StringFormatX.KItem;
|
|
7360
7368
|
if (!kItem) return null;
|
|
@@ -54793,6 +54801,8 @@ IFrameSplitOperator.FormatDateTimeStringV2=function(datetime, format, languageID
|
|
|
54793
54801
|
|
|
54794
54802
|
case "HH:MM:SS":
|
|
54795
54803
|
return `${IFrameSplitOperator.NumberToString(datetime.getHours())}:${IFrameSplitOperator.NumberToString(datetime.getMinutes())}:${IFrameSplitOperator.NumberToString(datetime.getSeconds())}`;
|
|
54804
|
+
case "MM:SS":
|
|
54805
|
+
return `${IFrameSplitOperator.NumberToString(datetime.getMinutes())}:${IFrameSplitOperator.NumberToString(datetime.getSeconds())}`;
|
|
54796
54806
|
case "HH:MM":
|
|
54797
54807
|
return `${IFrameSplitOperator.NumberToString(datetime.getHours())}:${IFrameSplitOperator.NumberToString(datetime.getMinutes())}`;
|
|
54798
54808
|
case "HH:MM:SS.fff":
|
|
@@ -57882,7 +57892,7 @@ function ChartCorssCursor()
|
|
|
57882
57892
|
|
|
57883
57893
|
//内部使用
|
|
57884
57894
|
this.Close=null; //收盘价格
|
|
57885
|
-
this.Status=0; //当前状态 0=隐藏 1
|
|
57895
|
+
this.Status=0; //当前状态 0=隐藏 1=显示底部 2=十字线
|
|
57886
57896
|
|
|
57887
57897
|
this.ReloadResource=function(resource)
|
|
57888
57898
|
{
|
|
@@ -77453,6 +77463,15 @@ function JSChartResource()
|
|
|
77453
77463
|
ValueColor:"rgb(0,0,0)", //数值
|
|
77454
77464
|
};
|
|
77455
77465
|
|
|
77466
|
+
this.SmallFloatTooltipV2=
|
|
77467
|
+
{
|
|
77468
|
+
BGColor:'rgb(250,250,250)', //背景色
|
|
77469
|
+
BorderColor:'rgb(20,20,20)', //边框颜色
|
|
77470
|
+
|
|
77471
|
+
TextColor:"rgb(0,0,0)", //数值名称
|
|
77472
|
+
ValueColor:"rgb(0,0,0)", //数值
|
|
77473
|
+
};
|
|
77474
|
+
|
|
77456
77475
|
//区间统计
|
|
77457
77476
|
this.DialogSelectRect=
|
|
77458
77477
|
{
|
|
@@ -78164,7 +78183,8 @@ function JSChartResource()
|
|
|
78164
78183
|
{
|
|
78165
78184
|
TextColor:"rgb(60,60,83)",
|
|
78166
78185
|
BaseTextColor:"rgb(60,60,83)",
|
|
78167
|
-
BGColor:"rgb(180,180,180)"
|
|
78186
|
+
BGColor:"rgb(180,180,180)",
|
|
78187
|
+
MatchTextColor:"rgb(60,60,83)",
|
|
78168
78188
|
},
|
|
78169
78189
|
|
|
78170
78190
|
FieldColor:
|
|
@@ -79238,8 +79258,20 @@ function JSChartResource()
|
|
|
79238
79258
|
|
|
79239
79259
|
if (style.ChartDrawTVLongPosition) this.SetChartDrawTVLongPosition(style.ChartDrawTVLongPosition);
|
|
79240
79260
|
if (style.KLineCountDownPaint) this.SetKLineCountDownPaint(style.KLineCountDownPaint);
|
|
79261
|
+
|
|
79262
|
+
if (style.SmallFloatTooltipV2) this.SetSmallFloatTooltipV2(style.SmallFloatTooltipV2);
|
|
79241
79263
|
}
|
|
79242
79264
|
|
|
79265
|
+
this.SetSmallFloatTooltipV2=function(style)
|
|
79266
|
+
{
|
|
79267
|
+
var dest=this.SmallFloatTooltipV2;
|
|
79268
|
+
|
|
79269
|
+
if (style.BGColor) dest.BGColor=style.BGColor;
|
|
79270
|
+
if (style.BorderColor) dest.BorderColor=style.BorderColor;
|
|
79271
|
+
|
|
79272
|
+
if (style.TextColor) dest.TextColor=style.TextColor;
|
|
79273
|
+
if (style.ValueColor) dest.ValueColor=style.ValueColor;
|
|
79274
|
+
}
|
|
79243
79275
|
|
|
79244
79276
|
this.SetKLineCountDownPaint=function(style)
|
|
79245
79277
|
{
|
|
@@ -79774,6 +79806,7 @@ function JSChartResource()
|
|
|
79774
79806
|
if (cell.TextColor) dest.CenterItem.TextColor=cell.TextColor;
|
|
79775
79807
|
if (cell.BaseTextColor) dest.CenterItem.BaseTextColor=cell.BaseTextColor;
|
|
79776
79808
|
if (cell.BGColor) dest.CenterItem.BGColor=cell.BGColor;
|
|
79809
|
+
if (cell.MatchTextColor) dest.CenterItem.MatchTextColor=cell.MatchTextColor;
|
|
79777
79810
|
}
|
|
79778
79811
|
|
|
79779
79812
|
if (item.Item)
|
|
@@ -2000,7 +2000,7 @@ input[type="color"] {
|
|
|
2000
2000
|
|
|
2001
2001
|
|
|
2002
2002
|
/*
|
|
2003
|
-
|
|
2003
|
+
十字光标小浮窗
|
|
2004
2004
|
*/
|
|
2005
2005
|
.UMyChart_Small_Tooltip_Div
|
|
2006
2006
|
{
|
|
@@ -2024,6 +2024,76 @@ input[type="color"] {
|
|
|
2024
2024
|
margin: 5px 5px 5px 5px;
|
|
2025
2025
|
}
|
|
2026
2026
|
|
|
2027
|
+
/*
|
|
2028
|
+
十字光标小浮窗V2
|
|
2029
|
+
*/
|
|
2030
|
+
.UMyChart_Small_Tooltip_V2_Div
|
|
2031
|
+
{
|
|
2032
|
+
font-family: "微软雅黑";
|
|
2033
|
+
/*display: flex;*/
|
|
2034
|
+
border: 1px solid;
|
|
2035
|
+
width:fit-content;
|
|
2036
|
+
border-color: rgb(204,204,204);
|
|
2037
|
+
visibility:hidden;
|
|
2038
|
+
position: absolute;
|
|
2039
|
+
background-color: rgba(20,20,20,1);
|
|
2040
|
+
left:1px;
|
|
2041
|
+
top:1px;
|
|
2042
|
+
pointer-events:none;
|
|
2043
|
+
z-index: 98;
|
|
2044
|
+
}
|
|
2045
|
+
|
|
2046
|
+
|
|
2047
|
+
.UMyChart_Small_Tooltip_V2_Table
|
|
2048
|
+
{
|
|
2049
|
+
border-spacing: 3px;
|
|
2050
|
+
user-select: none;
|
|
2051
|
+
font-size:12px;
|
|
2052
|
+
}
|
|
2053
|
+
|
|
2054
|
+
.UMyChart_Small_Tooltip_V2_Group_Tr
|
|
2055
|
+
{
|
|
2056
|
+
|
|
2057
|
+
}
|
|
2058
|
+
|
|
2059
|
+
.UMyChart_Small_Tooltip_V2_Title_Td
|
|
2060
|
+
{
|
|
2061
|
+
min-width: 40px;
|
|
2062
|
+
}
|
|
2063
|
+
|
|
2064
|
+
.UMyChart_Small_Tooltip_V2_Text_Td
|
|
2065
|
+
{
|
|
2066
|
+
min-width:80px;
|
|
2067
|
+
max-width: 500px;
|
|
2068
|
+
|
|
2069
|
+
white-space: nowrap;
|
|
2070
|
+
overflow: hidden;
|
|
2071
|
+
text-overflow: ellipsis;
|
|
2072
|
+
}
|
|
2073
|
+
|
|
2074
|
+
.UMyChart_Tooltip_Float_Title_Span
|
|
2075
|
+
{
|
|
2076
|
+
color: rgb(230,230,230);
|
|
2077
|
+
}
|
|
2078
|
+
|
|
2079
|
+
.UMyChart_Small_Tooltip_V2_Text_Span
|
|
2080
|
+
{
|
|
2081
|
+
float: right;
|
|
2082
|
+
margin-right: 1px;
|
|
2083
|
+
color: rgb(230,230,230);
|
|
2084
|
+
}
|
|
2085
|
+
|
|
2086
|
+
.UMyChart_Tooltip_Float_Text2_Span
|
|
2087
|
+
{
|
|
2088
|
+
margin-left: 1px;
|
|
2089
|
+
}
|
|
2090
|
+
|
|
2091
|
+
.UMyChart_Tooltip_Float_Text3_Span
|
|
2092
|
+
{
|
|
2093
|
+
margin-left: 5px;
|
|
2094
|
+
|
|
2095
|
+
}
|
|
2096
|
+
|
|
2027
2097
|
/*
|
|
2028
2098
|
Copyright (c) 2018 jones
|
|
2029
2099
|
|
|
@@ -483,6 +483,15 @@ function GetBlackStyle()
|
|
|
483
483
|
ValueColor:"rgb(210,210,210)", //数值
|
|
484
484
|
},
|
|
485
485
|
|
|
486
|
+
SmallFloatTooltipV2:
|
|
487
|
+
{
|
|
488
|
+
BGColor:'rgb(20,20,20)', //背景色
|
|
489
|
+
BorderColor:'rgb(170,170,170)', //边框颜色
|
|
490
|
+
|
|
491
|
+
TextColor:"rgb(210,210,210)", //数值名称
|
|
492
|
+
ValueColor:"rgb(210,210,210)", //数值
|
|
493
|
+
},
|
|
494
|
+
|
|
486
495
|
DialogSelectRect:
|
|
487
496
|
{
|
|
488
497
|
BGColor:'rgb(20,20,20)', //背景色
|
|
@@ -913,7 +922,8 @@ function GetBlackStyle()
|
|
|
913
922
|
{
|
|
914
923
|
TextColor:"rgb(16,226,217)",
|
|
915
924
|
BaseTextColor:"rgb(60,60,83)",
|
|
916
|
-
BGColor:"rgb(65,65,65)"
|
|
925
|
+
BGColor:"rgb(65,65,65)",
|
|
926
|
+
MatchTextColor:"rgb(210,210,210)"
|
|
917
927
|
},
|
|
918
928
|
|
|
919
929
|
FieldColor:
|