hqchart 1.1.14108 → 1.1.14115
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 +1 -1
- package/src/jscommon/umychart.DialogTooltip.js +7 -3
- package/src/jscommon/umychart.NetworkFilterTest.js +120 -106
- package/src/jscommon/umychart.PopMinuteChart.js +275 -8
- package/src/jscommon/umychart.js +16 -4
- package/src/jscommon/umychart.report.js +86 -3
- package/src/jscommon/umychart.resource/css/tools.css +33 -1
- package/src/jscommon/umychart.style.js +1 -1
- package/src/jscommon/umychart.testdata.js +120 -106
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +104 -9
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.NetworkFilterTest.vue.js +120 -106
- package/src/jscommon/umychart.vue/umychart.vue.js +386 -20
package/package.json
CHANGED
|
@@ -1001,7 +1001,7 @@ function JSFloatTooltip()
|
|
|
1001
1001
|
}
|
|
1002
1002
|
}
|
|
1003
1003
|
|
|
1004
|
-
this.Show=function(x, y)
|
|
1004
|
+
this.Show=function(x, y, option)
|
|
1005
1005
|
{
|
|
1006
1006
|
if (!this.DivDialog) return;
|
|
1007
1007
|
if (!this.HQChart) return;
|
|
@@ -1012,7 +1012,11 @@ function JSFloatTooltip()
|
|
|
1012
1012
|
var bottom=top+this.DivDialog.offsetHeight;
|
|
1013
1013
|
|
|
1014
1014
|
if ((right+5)>=window.innerWidth) left=left-this.DivDialog.offsetWidth;
|
|
1015
|
-
if ((bottom+5)>=window.innerHeight)
|
|
1015
|
+
if ((bottom+5)>=window.innerHeight)
|
|
1016
|
+
{
|
|
1017
|
+
top=(y+rtClient.top)-this.DivDialog.offsetHeight;
|
|
1018
|
+
if (option && IFrameSplitOperator.IsNumber(option.YMove)) top-=option.YMove;
|
|
1019
|
+
}
|
|
1016
1020
|
|
|
1017
1021
|
this.DivDialog.style.top = top + "px";
|
|
1018
1022
|
this.DivDialog.style.left = left + "px";
|
|
@@ -1232,7 +1236,7 @@ function JSFloatTooltip()
|
|
|
1232
1236
|
{
|
|
1233
1237
|
var x=data.Point.X;
|
|
1234
1238
|
var y=data.Point.Y+data.Point.YMove;
|
|
1235
|
-
this.Show(x, y);
|
|
1239
|
+
this.Show(x, y, { YMove:data.Point.YMove });
|
|
1236
1240
|
}
|
|
1237
1241
|
}
|
|
1238
1242
|
|
|
@@ -55701,7 +55701,7 @@ HQData.Minute_RequestMinuteData=function(data, callback)
|
|
|
55701
55701
|
setTimeout(()=>{
|
|
55702
55702
|
var fullData=HQData.GetDayMinuteDataBySymbol(symbol);
|
|
55703
55703
|
var srcStock=fullData[0];
|
|
55704
|
-
var stockItem={ date:srcStock.date, minute:srcStock.minute, yclose:srcStock.yclose, symbol:
|
|
55704
|
+
var stockItem={ date:srcStock.date, minute:srcStock.minute, yclose:srcStock.yclose, symbol:symbol, name:symbol };
|
|
55705
55705
|
if (callcation.Before)
|
|
55706
55706
|
{
|
|
55707
55707
|
var before=
|
|
@@ -55726,7 +55726,10 @@ HQData.Minute_RequestMinuteData=function(data, callback)
|
|
|
55726
55726
|
stockItem.beforeinfo=beforeinfo;
|
|
55727
55727
|
}
|
|
55728
55728
|
|
|
55729
|
-
|
|
55729
|
+
//测试用 这里可以修改数据
|
|
55730
|
+
//var lastItem=srcStock.minute[srcStock.minute.length-1];
|
|
55731
|
+
//lastItem.price+=Math.ceil(Math.random()*10)/1000*lastItem.price;
|
|
55732
|
+
/*
|
|
55730
55733
|
for(var i=0;i<srcStock.minute.length;++i)
|
|
55731
55734
|
{
|
|
55732
55735
|
var item=srcStock.minute[i];
|
|
@@ -56616,125 +56619,132 @@ HQData.Report_RequestStockData=function(data, callback)
|
|
|
56616
56619
|
var stocks=data.Request.Data.stocks; //股票列表
|
|
56617
56620
|
data.PreventDefault=true;
|
|
56618
56621
|
|
|
56619
|
-
|
|
56620
|
-
for(var i=0;i<stocks.length;++i)
|
|
56622
|
+
setTimeout(()=>
|
|
56621
56623
|
{
|
|
56622
|
-
var
|
|
56623
|
-
|
|
56624
|
-
}
|
|
56625
|
-
|
|
56626
|
-
if (IFrameSplitOperator.IsNonEmptyArray(SHSZ_STOCK_LIST_TEST_DATA.symbol))
|
|
56627
|
-
{
|
|
56628
|
-
for(var i=0;i<SHSZ_STOCK_LIST_TEST_DATA.symbol.length;++i)
|
|
56624
|
+
var mapStock=new Map();
|
|
56625
|
+
for(var i=0;i<stocks.length;++i)
|
|
56629
56626
|
{
|
|
56630
|
-
var
|
|
56631
|
-
|
|
56632
|
-
|
|
56633
|
-
var name=SHSZ_STOCK_LIST_TEST_DATA.name[i];
|
|
56634
|
-
var price=SHSZ_STOCK_LIST_TEST_DATA.close[i];
|
|
56635
|
-
var vol=SHSZ_STOCK_LIST_TEST_DATA.vol[i];
|
|
56636
|
-
var newItem=
|
|
56637
|
-
[
|
|
56638
|
-
symbol,
|
|
56639
|
-
name,
|
|
56640
|
-
SHSZ_STOCK_LIST_TEST_DATA.yclose[i],
|
|
56641
|
-
SHSZ_STOCK_LIST_TEST_DATA.open[i],
|
|
56642
|
-
SHSZ_STOCK_LIST_TEST_DATA.high[i],
|
|
56643
|
-
SHSZ_STOCK_LIST_TEST_DATA.low[i],
|
|
56644
|
-
price,
|
|
56645
|
-
vol,
|
|
56646
|
-
SHSZ_STOCK_LIST_TEST_DATA.amount[i],
|
|
56647
|
-
];
|
|
56648
|
-
|
|
56649
|
-
//买价 量
|
|
56650
|
-
newItem[9]=price+0.05;
|
|
56651
|
-
newItem[10]=10;
|
|
56627
|
+
var item=stocks[i];
|
|
56628
|
+
mapStock.set(item.Symbol,{ Symbol:item.Symbol, Data:null });
|
|
56629
|
+
}
|
|
56652
56630
|
|
|
56653
|
-
|
|
56654
|
-
|
|
56655
|
-
|
|
56631
|
+
if (IFrameSplitOperator.IsNonEmptyArray(SHSZ_STOCK_LIST_TEST_DATA.symbol))
|
|
56632
|
+
{
|
|
56633
|
+
for(var i=0;i<SHSZ_STOCK_LIST_TEST_DATA.symbol.length;++i)
|
|
56634
|
+
{
|
|
56635
|
+
var symbol=SHSZ_STOCK_LIST_TEST_DATA.symbol[i];
|
|
56636
|
+
if (!mapStock.has(symbol)) continue;
|
|
56637
|
+
var item=mapStock.get(symbol);
|
|
56638
|
+
var name=SHSZ_STOCK_LIST_TEST_DATA.name[i];
|
|
56639
|
+
var price=SHSZ_STOCK_LIST_TEST_DATA.close[i];
|
|
56640
|
+
var vol=SHSZ_STOCK_LIST_TEST_DATA.vol[i];
|
|
56641
|
+
var newItem=
|
|
56642
|
+
[
|
|
56643
|
+
symbol,
|
|
56644
|
+
name,
|
|
56645
|
+
SHSZ_STOCK_LIST_TEST_DATA.yclose[i],
|
|
56646
|
+
SHSZ_STOCK_LIST_TEST_DATA.open[i],
|
|
56647
|
+
SHSZ_STOCK_LIST_TEST_DATA.high[i],
|
|
56648
|
+
SHSZ_STOCK_LIST_TEST_DATA.low[i],
|
|
56649
|
+
price,
|
|
56650
|
+
vol,
|
|
56651
|
+
SHSZ_STOCK_LIST_TEST_DATA.amount[i],
|
|
56652
|
+
];
|
|
56653
|
+
|
|
56654
|
+
//买价 量
|
|
56655
|
+
newItem[9]=price+0.05;
|
|
56656
|
+
newItem[10]=10;
|
|
56657
|
+
|
|
56658
|
+
//卖价 量
|
|
56659
|
+
newItem[11]=price-0.06;
|
|
56660
|
+
newItem[12]=5;
|
|
56661
|
+
|
|
56662
|
+
//均价
|
|
56663
|
+
newItem[13]=price-0.03;
|
|
56664
|
+
|
|
56665
|
+
//内盘
|
|
56666
|
+
newItem[18]=vol/4;
|
|
56667
|
+
//外盘
|
|
56668
|
+
newItem[19]=vol/5;
|
|
56669
|
+
|
|
56670
|
+
newItem[14]=vol*1.5; //流通股本
|
|
56671
|
+
newItem[15]=vol*1.8; //总股本
|
|
56672
|
+
|
|
56673
|
+
//换手率
|
|
56674
|
+
newItem[23]=(Math.round(Math.random()*60))/100;
|
|
56675
|
+
|
|
56676
|
+
//名字字段
|
|
56677
|
+
var symbolEx={ Text:name };
|
|
56678
|
+
if (i%20==5)
|
|
56679
|
+
symbolEx.Symbol={ Family:'iconfont', Size:16, Data:[ { Text:'\ue629', Color:'rgb(255,165,0)'}, { Text:'\ue627', Color:'#1c65db'} ] };
|
|
56680
|
+
else if (i%20==9)
|
|
56681
|
+
symbolEx.Symbol={ Family:'iconfont', Size:16, Data:[ { Text:'\ue629', Color:'rgb(255,165,0)'}] } ;
|
|
56682
|
+
else if (i%20==18)
|
|
56683
|
+
symbolEx.Symbol={ Family:'iconfont', Size:16, Data:[ { Text:'\ue627', Color:'#1c65db'}] } ;
|
|
56684
|
+
|
|
56685
|
+
newItem[27]=symbolEx;
|
|
56686
|
+
|
|
56687
|
+
|
|
56688
|
+
newItem[38]=HQData.GetRandomTestData(10,20000); //持仓量
|
|
56689
|
+
newItem[39]=HQData.GetRandomTestData(10,100); //结算价
|
|
56690
|
+
newItem[40]=HQData.GetRandomTestData(10,100); //昨结算价
|
|
56691
|
+
newItem[41]=HQData.GetRandomTestData(10,20000); //开仓量
|
|
56692
|
+
newItem[42]=HQData.GetRandomTestData(10,20000); //平仓量
|
|
56693
|
+
|
|
56694
|
+
//1,3,5,10,15 涨速%
|
|
56695
|
+
newItem[43]=HQData.GetRandomTestData(-90,90);
|
|
56696
|
+
newItem[44]=HQData.GetRandomTestData(-90,90);
|
|
56697
|
+
newItem[45]=HQData.GetRandomTestData(-90,90);
|
|
56698
|
+
newItem[46]=HQData.GetRandomTestData(-90,90);
|
|
56699
|
+
newItem[47]=HQData.GetRandomTestData(-90,90);
|
|
56700
|
+
|
|
56701
|
+
|
|
56702
|
+
//扩展数据 (定制数据)
|
|
56703
|
+
var extendData=[];
|
|
56704
|
+
newItem[30]=extendData;
|
|
56705
|
+
|
|
56706
|
+
//行业
|
|
56707
|
+
extendData[0]="行业X";
|
|
56708
|
+
//地区
|
|
56709
|
+
extendData[1]="地区X";
|
|
56710
|
+
|
|
56711
|
+
//PE|PB
|
|
56712
|
+
extendData[2]=(Math.round(Math.random()*60))/100;
|
|
56713
|
+
extendData[3]=(Math.round(Math.random()*60))/100;
|
|
56714
|
+
extendData[4]=(Math.round(Math.random()*60))/100;
|
|
56715
|
+
extendData[5]=(Math.round(Math.random()*60))/100;
|
|
56656
56716
|
|
|
56657
|
-
//均价
|
|
56658
|
-
newItem[13]=price-0.03;
|
|
56659
56717
|
|
|
56660
|
-
|
|
56661
|
-
|
|
56662
|
-
|
|
56663
|
-
|
|
56718
|
+
//周涨幅
|
|
56719
|
+
extendData[6]=(Math.round(Math.random()*60))/100;
|
|
56720
|
+
extendData[7]=(Math.round(Math.random()*60))/100;
|
|
56721
|
+
extendData[8]=(Math.round(Math.random()*60))/100;
|
|
56664
56722
|
|
|
56665
|
-
newItem[14]=vol*1.5; //流通股本
|
|
56666
|
-
newItem[15]=vol*1.8; //总股本
|
|
56667
56723
|
|
|
56668
|
-
|
|
56669
|
-
|
|
56670
|
-
|
|
56671
|
-
//名字字段
|
|
56672
|
-
var symbolEx={ Text:name };
|
|
56673
|
-
if (i%20==5)
|
|
56674
|
-
symbolEx.Symbol={ Family:'iconfont', Size:16, Data:[ { Text:'\ue629', Color:'rgb(255,165,0)'}, { Text:'\ue627', Color:'#1c65db'} ] };
|
|
56675
|
-
else if (i%20==9)
|
|
56676
|
-
symbolEx.Symbol={ Family:'iconfont', Size:16, Data:[ { Text:'\ue629', Color:'rgb(255,165,0)'}] } ;
|
|
56677
|
-
else if (i%20==18)
|
|
56678
|
-
symbolEx.Symbol={ Family:'iconfont', Size:16, Data:[ { Text:'\ue627', Color:'#1c65db'}] } ;
|
|
56679
|
-
|
|
56680
|
-
newItem[27]=symbolEx;
|
|
56681
|
-
|
|
56682
|
-
|
|
56683
|
-
newItem[38]=HQData.GetRandomTestData(10,20000); //持仓量
|
|
56684
|
-
newItem[39]=HQData.GetRandomTestData(10,100); //结算价
|
|
56685
|
-
newItem[40]=HQData.GetRandomTestData(10,100); //昨结算价
|
|
56686
|
-
newItem[41]=HQData.GetRandomTestData(10,20000); //开仓量
|
|
56687
|
-
newItem[42]=HQData.GetRandomTestData(10,20000); //平仓量
|
|
56688
|
-
|
|
56689
|
-
//1,3,5,10,15 涨速%
|
|
56690
|
-
newItem[43]=HQData.GetRandomTestData(-90,90);
|
|
56691
|
-
newItem[44]=HQData.GetRandomTestData(-90,90);
|
|
56692
|
-
newItem[45]=HQData.GetRandomTestData(-90,90);
|
|
56693
|
-
newItem[46]=HQData.GetRandomTestData(-90,90);
|
|
56694
|
-
newItem[47]=HQData.GetRandomTestData(-90,90);
|
|
56695
|
-
|
|
56696
|
-
|
|
56697
|
-
//扩展数据 (定制数据)
|
|
56698
|
-
var extendData=[];
|
|
56699
|
-
newItem[30]=extendData;
|
|
56700
|
-
|
|
56701
|
-
//行业
|
|
56702
|
-
extendData[0]="行业X";
|
|
56703
|
-
//地区
|
|
56704
|
-
extendData[1]="地区X";
|
|
56705
|
-
|
|
56706
|
-
//PE|PB
|
|
56707
|
-
extendData[2]=(Math.round(Math.random()*60))/100;
|
|
56708
|
-
extendData[3]=(Math.round(Math.random()*60))/100;
|
|
56709
|
-
extendData[4]=(Math.round(Math.random()*60))/100;
|
|
56710
|
-
extendData[5]=(Math.round(Math.random()*60))/100;
|
|
56711
|
-
|
|
56712
|
-
|
|
56713
|
-
//周涨幅
|
|
56714
|
-
extendData[6]=(Math.round(Math.random()*60))/100;
|
|
56715
|
-
extendData[7]=(Math.round(Math.random()*60))/100;
|
|
56716
|
-
extendData[8]=(Math.round(Math.random()*60))/100;
|
|
56724
|
+
newItem[101]=105.0;
|
|
56725
|
+
newItem[201]=`A-[${HQData.GetRandomTestData(-90,90)}]-B`;
|
|
56717
56726
|
|
|
56718
56727
|
|
|
56719
|
-
|
|
56720
|
-
|
|
56721
|
-
|
|
56728
|
+
newItem[301]=HQData.GetRandomTestData(0,100)/100;
|
|
56729
|
+
newItem[302]=HQData.GetRandomTestData(0,100)/100;
|
|
56730
|
+
|
|
56722
56731
|
|
|
56723
|
-
|
|
56732
|
+
item.Data=newItem;
|
|
56733
|
+
}
|
|
56724
56734
|
}
|
|
56725
|
-
}
|
|
56726
56735
|
|
|
56727
|
-
|
|
56736
|
+
var hqchartData={ data:[], code:0 };
|
|
56728
56737
|
|
|
56729
|
-
|
|
56730
|
-
|
|
56731
|
-
|
|
56732
|
-
|
|
56738
|
+
for(var mapItem of mapStock)
|
|
56739
|
+
{
|
|
56740
|
+
var item=mapItem[1];
|
|
56741
|
+
if (!item.Data) continue;
|
|
56733
56742
|
|
|
56734
|
-
|
|
56735
|
-
|
|
56743
|
+
hqchartData.data.push(item.Data);
|
|
56744
|
+
}
|
|
56736
56745
|
|
|
56737
|
-
|
|
56746
|
+
callback(hqchartData);
|
|
56747
|
+
}, 500);
|
|
56738
56748
|
}
|
|
56739
56749
|
|
|
56740
56750
|
HQData.Report_RequestStockSortData=function(data, callback)
|
|
@@ -56961,6 +56971,10 @@ HQData.Report_RequestVirtualStockData=function(data, callback)
|
|
|
56961
56971
|
extendData[8]=(Math.round(Math.random()*60))/100;
|
|
56962
56972
|
|
|
56963
56973
|
|
|
56974
|
+
newItem[351]={Title:"启动"};
|
|
56975
|
+
newItem[352]={Title:"加入"};
|
|
56976
|
+
|
|
56977
|
+
|
|
56964
56978
|
aryData.push(newItem);
|
|
56965
56979
|
aryIndex.push(start+i);
|
|
56966
56980
|
}
|
|
@@ -14,12 +14,17 @@
|
|
|
14
14
|
function JSPopMinuteChart()
|
|
15
15
|
{
|
|
16
16
|
this.DivDialog=null;
|
|
17
|
-
this.
|
|
17
|
+
this.TitleBox=null; //{ DivTitle, DivName, DivName }
|
|
18
18
|
this.HQChart=null;
|
|
19
19
|
this.DragTitle=null;
|
|
20
20
|
this.Date=null;
|
|
21
21
|
this.ID=Guid();
|
|
22
22
|
|
|
23
|
+
this.TitleColor=g_JSChartResource.PopMinuteChart.TitleColor;
|
|
24
|
+
this.TitleBGColor=g_JSChartResource.PopMinuteChart.TitleBGColor;
|
|
25
|
+
this.BGColor=g_JSChartResource.PopMinuteChart.BGColor;
|
|
26
|
+
this.BorderColor=g_JSChartResource.PopMinuteChart.BorderColor;
|
|
27
|
+
|
|
23
28
|
this.Minute=
|
|
24
29
|
{
|
|
25
30
|
Option:JSPopMinuteChart.GetMinuteOption(),
|
|
@@ -27,9 +32,18 @@ function JSPopMinuteChart()
|
|
|
27
32
|
Date:null,
|
|
28
33
|
}
|
|
29
34
|
|
|
30
|
-
this.Inital=function(hqchart)
|
|
35
|
+
this.Inital=function(hqchart, option)
|
|
31
36
|
{
|
|
32
37
|
this.HQChart=hqchart;
|
|
38
|
+
|
|
39
|
+
if (option)
|
|
40
|
+
{
|
|
41
|
+
if (IFrameSplitOperator.IsObject(option.Option))
|
|
42
|
+
{
|
|
43
|
+
var item=CloneData(option.Option); //复制一份出来
|
|
44
|
+
this.Minute.Option=Object.assign(this.Minute.Option,item);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
33
47
|
}
|
|
34
48
|
|
|
35
49
|
this.Create=function()
|
|
@@ -37,8 +51,6 @@ function JSPopMinuteChart()
|
|
|
37
51
|
var divDom=document.createElement('div');
|
|
38
52
|
divDom.className='jchart_pop_minute_dailog';
|
|
39
53
|
divDom.id=this.ID;
|
|
40
|
-
divDom.style["background-color"]=g_JSChartResource.PopMinuteChart.BGColor;
|
|
41
|
-
divDom.style["border-color"]=g_JSChartResource.PopMinuteChart.BorderColor;
|
|
42
54
|
|
|
43
55
|
var divTitle=document.createElement("div");
|
|
44
56
|
divTitle.className='jschart_pop_minute_chart_Title_Div';
|
|
@@ -62,6 +74,7 @@ function JSPopMinuteChart()
|
|
|
62
74
|
divChart.className='jschart_pop_minute_chart';
|
|
63
75
|
divDom.appendChild(divChart);
|
|
64
76
|
|
|
77
|
+
this.TitleBox={ DivTitle:divTitle, DivName:divInfoText, DivColor:divClose };
|
|
65
78
|
this.DivDialog=divDom;
|
|
66
79
|
|
|
67
80
|
var chart=JSChart.Init(divChart);
|
|
@@ -73,6 +86,19 @@ function JSPopMinuteChart()
|
|
|
73
86
|
chart.SetOption(this.Minute.Option); //设置K线配置
|
|
74
87
|
|
|
75
88
|
document.body.appendChild(divDom);
|
|
89
|
+
|
|
90
|
+
this.UpdateStyle();
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
this.UpdateStyle=function()
|
|
94
|
+
{
|
|
95
|
+
if (!this.DivDialog) return;
|
|
96
|
+
|
|
97
|
+
if (this.BGColor) this.DivDialog.style['background-color']=this.BGColor;
|
|
98
|
+
if (this.BorderColor) this.DivDialog.style['border-color']=this.BorderColor;
|
|
99
|
+
|
|
100
|
+
if (this.TitleBGColor) this.TitleBox.DivTitle.style['background-color']=this.TitleBGColor;
|
|
101
|
+
if (this.TitleColor) this.TitleBox.DivName.style['color']=this.TitleColor;
|
|
76
102
|
}
|
|
77
103
|
|
|
78
104
|
this.NetworkFilter=function(data, callback)
|
|
@@ -100,7 +126,7 @@ function JSPopMinuteChart()
|
|
|
100
126
|
{
|
|
101
127
|
if (this.DivDialog) document.body.removeChild(this.DivDialog);
|
|
102
128
|
this.DivDialog=null;
|
|
103
|
-
this.
|
|
129
|
+
this.TitleBox=null;
|
|
104
130
|
this.Minute.JSChart=null;
|
|
105
131
|
}
|
|
106
132
|
|
|
@@ -120,7 +146,7 @@ function JSPopMinuteChart()
|
|
|
120
146
|
var name=data.Symbol;
|
|
121
147
|
if (data.Name) name=data.Name;
|
|
122
148
|
var title=`${name} ${IFrameSplitOperator.FormatDateString(data.Date)} 分时图`
|
|
123
|
-
this.
|
|
149
|
+
this.TitleBox.DivName.innerText=title;
|
|
124
150
|
|
|
125
151
|
if (this.Minute.JSChart)
|
|
126
152
|
{
|
|
@@ -188,10 +214,14 @@ function JSPopMinuteChart()
|
|
|
188
214
|
|
|
189
215
|
this.ReloadResource=function(option)
|
|
190
216
|
{
|
|
217
|
+
this.TitleColor=g_JSChartResource.PopMinuteChart.TitleColor;
|
|
218
|
+
this.TitleBGColor=g_JSChartResource.PopMinuteChart.TitleBGColor;
|
|
219
|
+
this.BGColor=g_JSChartResource.PopMinuteChart.BGColor;
|
|
220
|
+
this.BorderColor=g_JSChartResource.PopMinuteChart.BorderColor;
|
|
221
|
+
|
|
191
222
|
if (!this.DivDialog) return;
|
|
192
223
|
|
|
193
|
-
this.
|
|
194
|
-
this.DivDialog.style["border-color"]=g_JSChartResource.PopMinuteChart.BorderColor;
|
|
224
|
+
this.UpdateStyle();
|
|
195
225
|
|
|
196
226
|
if (this.Minute.JSChart) this.Minute.JSChart.ReloadResource(option);
|
|
197
227
|
}
|
|
@@ -276,4 +306,241 @@ JSPopMinuteChart.GetMinuteOption=function()
|
|
|
276
306
|
}
|
|
277
307
|
|
|
278
308
|
|
|
309
|
+
///////////////////////////////////////////////////////
|
|
310
|
+
// 分时图提示信息
|
|
311
|
+
//
|
|
312
|
+
//////////////////////////////////////////////////////
|
|
313
|
+
|
|
314
|
+
function JSTooltipMinuteChart()
|
|
315
|
+
{
|
|
316
|
+
this.DivDialog=null;
|
|
317
|
+
this.HQChart=null;
|
|
318
|
+
this.ID=Guid();
|
|
319
|
+
|
|
320
|
+
this.BGColor=g_JSChartResource.PopMinuteChart.BGColor;
|
|
321
|
+
this.BorderColor=g_JSChartResource.PopMinuteChart.BorderColor;
|
|
322
|
+
|
|
323
|
+
this.Minute=
|
|
324
|
+
{
|
|
325
|
+
Option:JSTooltipMinuteChart.GetMinuteOption(),
|
|
326
|
+
JSChart:null,
|
|
327
|
+
Symbol:null,
|
|
328
|
+
Date:null,
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
this.Inital=function(hqchart, option)
|
|
332
|
+
{
|
|
333
|
+
this.HQChart=hqchart;
|
|
334
|
+
|
|
335
|
+
if (option)
|
|
336
|
+
{
|
|
337
|
+
if (IFrameSplitOperator.IsObject(option.Option))
|
|
338
|
+
{
|
|
339
|
+
var item=CloneData(option.Option); //复制一份出来
|
|
340
|
+
this.Minute.Option=Object.assign(this.Minute.Option,item);
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
this.Create=function()
|
|
346
|
+
{
|
|
347
|
+
var divDom=document.createElement('div');
|
|
348
|
+
divDom.className='UMyChart_Tooltip_Minute_Div';
|
|
349
|
+
divDom.id=this.ID;
|
|
350
|
+
|
|
351
|
+
var divChart=document.createElement('div');
|
|
352
|
+
divChart.className='UMyChart_Tooltip_Minute_Chart_Div';
|
|
353
|
+
divDom.appendChild(divChart);
|
|
354
|
+
|
|
355
|
+
this.DivDialog=divDom;
|
|
356
|
+
|
|
357
|
+
var chart=JSChart.Init(divChart);
|
|
358
|
+
this.Minute.JSChart=chart;
|
|
359
|
+
|
|
360
|
+
//语言跟主图保持一致
|
|
361
|
+
if (this.HQChart) this.Minute.Option.Language=g_JSChartLocalization.GetLanguageName(this.HQChart.LanguageID);
|
|
362
|
+
this.Minute.Option.OnCreatedCallback=(chart)=>{ this.OnCreateHQChart(chart); }
|
|
363
|
+
this.Minute.Option.NetworkFilter=(data, callback)=>{ this.NetworkFilter(data, callback); }
|
|
364
|
+
chart.SetOption(this.Minute.Option); //设置K线配置
|
|
365
|
+
|
|
366
|
+
document.body.appendChild(divDom);
|
|
367
|
+
|
|
368
|
+
this.UpdateStyle();
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
this.UpdateStyle=function()
|
|
372
|
+
{
|
|
373
|
+
if (!this.DivDialog) return;
|
|
374
|
+
|
|
375
|
+
if (this.BGColor) this.DivDialog.style['background-color']=this.BGColor;
|
|
376
|
+
if (this.BorderColor) this.DivDialog.style['border-color']=this.BorderColor;
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
this.NetworkFilter=function(data, callback)
|
|
380
|
+
{
|
|
381
|
+
if (!this.HQChart || !this.HQChart.NetworkFilter) return;
|
|
382
|
+
|
|
383
|
+
/*
|
|
384
|
+
if (data) data.PopMinuteData={ Date:this.Date }; //弹出分时图额外数据
|
|
385
|
+
|
|
386
|
+
if (data.Name== 'MinuteChartContainer::RequestMinuteData') //分时图数据对接
|
|
387
|
+
{
|
|
388
|
+
data.Request.Data.date=this.Date;
|
|
389
|
+
data.Name="MinuteChartContainer::RequestPopMinuteData";
|
|
390
|
+
data.Explain="指定日期分时数据"
|
|
391
|
+
};
|
|
392
|
+
*/
|
|
393
|
+
|
|
394
|
+
this.HQChart.NetworkFilter(data, callback);
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
this.OnCreateHQChart=function(chart)
|
|
398
|
+
{
|
|
399
|
+
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
this.Destroy=function()
|
|
403
|
+
{
|
|
404
|
+
if (this.DivDialog) document.body.removeChild(this.DivDialog);
|
|
405
|
+
this.DivDialog=null;
|
|
406
|
+
this.TitleBox=null;
|
|
407
|
+
if (!this.Minute.JSChart) this.Minute.JSChart.ChartDestory();
|
|
408
|
+
this.Minute.JSChart=null;
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
this.IsShow=function()
|
|
412
|
+
{
|
|
413
|
+
if (!this.DivDialog) return false;
|
|
414
|
+
|
|
415
|
+
return this.DivDialog.style.visibility==='visible';
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
this.Show=function(data, x, y)
|
|
419
|
+
{
|
|
420
|
+
if (!this.DivDialog) this.Create();
|
|
421
|
+
if (!data || !data.Symbol) return;
|
|
422
|
+
|
|
423
|
+
var symbol=data.Symbol;
|
|
424
|
+
var date=null;
|
|
425
|
+
if (IFrameSplitOperator.IsPlusNumber(data.Date)) date=data.Date;
|
|
426
|
+
|
|
427
|
+
if (this.Minute.JSChart)
|
|
428
|
+
{
|
|
429
|
+
if (this.Minute.Symbol!=symbol || this.Minute.Date!=date)
|
|
430
|
+
{
|
|
431
|
+
this.Minute.Symbol=symbol;
|
|
432
|
+
this.Minute.Date=date;
|
|
433
|
+
this.Minute.JSChart.ChangeSymbol(symbol);
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
if (IFrameSplitOperator.IsNumberV2(x,y))
|
|
438
|
+
{
|
|
439
|
+
|
|
440
|
+
}
|
|
441
|
+
else if (data.Rect)
|
|
442
|
+
{
|
|
443
|
+
var rtCell=data.Rect;
|
|
444
|
+
var pixelRatio=GetDevicePixelRatio();
|
|
445
|
+
var rtItem={ Left:rtCell.Left/pixelRatio, Right:rtCell.Right/pixelRatio, Bottom:rtCell.Bottom/pixelRatio, Top:rtCell.Top/pixelRatio };
|
|
446
|
+
rtItem.Width=rtItem.Right-rtItem.Left;
|
|
447
|
+
rtItem.Height=rtItem.Bottom-rtItem.Top;
|
|
448
|
+
|
|
449
|
+
//超出窗口调整位置
|
|
450
|
+
var height=this.DivDialog.offsetHeight;
|
|
451
|
+
var width=this.DivDialog.offsetWidth;
|
|
452
|
+
var x=rtItem.Right+data.Offset.Left;
|
|
453
|
+
var y=rtItem.Bottom+data.Offset.Top;
|
|
454
|
+
|
|
455
|
+
var xRight=window.innerWidth-5;
|
|
456
|
+
var ybottom=window.innerHeight-5;
|
|
457
|
+
if (x+width>xRight) x=xRight-width;
|
|
458
|
+
if (y+height>ybottom) y=(rtItem.Top+data.Offset.Top)-height;
|
|
459
|
+
|
|
460
|
+
this.DivDialog.style.visibility='visible';
|
|
461
|
+
this.DivDialog.style.top = y + "px";
|
|
462
|
+
this.DivDialog.style.left = x + "px";
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
this.Hide=function()
|
|
467
|
+
{
|
|
468
|
+
if (!this.DivDialog) return;
|
|
469
|
+
if (this.DivDialog.style.visibility!='hidden')
|
|
470
|
+
this.DivDialog.style.visibility='hidden';
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
JSTooltipMinuteChart.GetMinuteOption=function()
|
|
476
|
+
{
|
|
477
|
+
var option=
|
|
478
|
+
{
|
|
479
|
+
Type:'分钟走势图', //创建图形类型
|
|
480
|
+
Windows: //窗口指标
|
|
481
|
+
[
|
|
482
|
+
//{ Index:"VOL" },
|
|
483
|
+
//{ Index:"RSI" }
|
|
484
|
+
],
|
|
485
|
+
|
|
486
|
+
Symbol:null, // cf1909.czc
|
|
487
|
+
IsAutoUpdate:false, //是自动更新数据
|
|
488
|
+
AutoUpdateFrequency:10000, //数据更新频率
|
|
489
|
+
DayCount:1, //1 最新交易日数据 >1 多日走势图
|
|
490
|
+
IsShowRightMenu:false, //是否显示右键菜单
|
|
491
|
+
|
|
492
|
+
EnableSelectRect:true,
|
|
493
|
+
EnableZoomIndexWindow:true,
|
|
494
|
+
EnableResize:true,
|
|
495
|
+
|
|
496
|
+
//BeforeOpen:{IsShow:true, Width:120, IsShowMultiDay:true, MulitiDayWidth:100, },
|
|
497
|
+
//AfterClose:{IsShow:true, Width:100, IsShowMultiDay:true, MulitiDayWidth:50, ShareVol:2 }, //ShareVol:0=盘后成交量独立坐标, 1==盘后成交量主图共用 2==盘后成交量盘前共用
|
|
498
|
+
|
|
499
|
+
CorssCursorInfo:{ Left:2, Right:1, Bottom:1 },
|
|
500
|
+
|
|
501
|
+
MinuteLine:
|
|
502
|
+
{
|
|
503
|
+
|
|
504
|
+
},
|
|
505
|
+
|
|
506
|
+
MinuteTitle:
|
|
507
|
+
{
|
|
508
|
+
IsShowTime:true,
|
|
509
|
+
IsShowName:true,
|
|
510
|
+
IsShowDate:true,
|
|
511
|
+
IsShowVolTitle:true,
|
|
512
|
+
//IsAlwaysShowLastData:true,
|
|
513
|
+
IsTitleShowLatestData:true,
|
|
514
|
+
},
|
|
515
|
+
|
|
516
|
+
MinuteVol:
|
|
517
|
+
{
|
|
518
|
+
BarColorType:1,
|
|
519
|
+
},
|
|
520
|
+
|
|
521
|
+
//Language:'EN',
|
|
522
|
+
|
|
523
|
+
Border: //边框
|
|
524
|
+
{
|
|
525
|
+
Left:20, //左边间距
|
|
526
|
+
Right:120, //右边间距
|
|
527
|
+
Top:25,
|
|
528
|
+
Bottom:25,
|
|
529
|
+
|
|
530
|
+
AutoLeft:{ Blank:10, MinWidth:40 },
|
|
531
|
+
AutoRight:{ Blank:10, MinWidth:40 },
|
|
532
|
+
},
|
|
533
|
+
|
|
534
|
+
Frame: //子框架设置
|
|
535
|
+
[
|
|
536
|
+
{ SplitCount:5 },
|
|
537
|
+
{ SplitCount:3 },
|
|
538
|
+
{ SplitCount:3 },
|
|
539
|
+
],
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
return option;
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
|
|
279
546
|
|