hqchart 1.1.14473 → 1.1.14482
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 +43 -38
- package/package.json +1 -1
- package/src/jscommon/umychart.DialogTooltip.js +10 -2
- package/src/jscommon/umychart.NetworkFilterTest.js +124 -10
- package/src/jscommon/umychart.complier.js +66 -25
- package/src/jscommon/umychart.deal.js +151 -1
- package/src/jscommon/umychart.js +24 -7
- package/src/jscommon/umychart.report.js +1 -1
- package/src/jscommon/umychart.style.js +6 -1
- package/src/jscommon/umychart.testdata.js +124 -10
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +249 -36
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.NetworkFilterTest.vue.js +124 -10
- package/src/jscommon/umychart.vue/umychart.vue.js +259 -38
package/package.json
CHANGED
|
@@ -1252,14 +1252,21 @@ function JSFloatTooltip()
|
|
|
1252
1252
|
var symbol=data.Symbol;
|
|
1253
1253
|
var name=data.Name;
|
|
1254
1254
|
var bOverlay=false; //是否是叠加指标
|
|
1255
|
+
var bIndexKLine=false;
|
|
1255
1256
|
if (tooltipData.ChartPaint.Name=="Overlay-KLine")
|
|
1256
1257
|
{
|
|
1257
1258
|
symbol=tooltipData.ChartPaint.Symbol;
|
|
1258
1259
|
name=tooltipData.ChartPaint.Title;
|
|
1259
1260
|
bOverlay=true;
|
|
1260
1261
|
}
|
|
1262
|
+
else if (tooltipData.ChartPaint.Name=="DRAWKLINE")
|
|
1263
|
+
{
|
|
1264
|
+
symbol=tooltipData.ChartPaint.Symbol;
|
|
1265
|
+
name=tooltipData.ChartPaint.Title;
|
|
1266
|
+
bIndexKLine=true;
|
|
1267
|
+
}
|
|
1261
1268
|
|
|
1262
|
-
var kItem={ Symbol:symbol, Name:name, Item:CloneData(tooltipData.Data), IsOverlay:bOverlay };
|
|
1269
|
+
var kItem={ Symbol:symbol, Name:name, Item:CloneData(tooltipData.Data), IsOverlay:bOverlay, IsIndexKLine:bIndexKLine };
|
|
1263
1270
|
var strKItem=JSON.stringify(kItem);
|
|
1264
1271
|
var bUpdata=false;
|
|
1265
1272
|
if (this.KItemCacheID!=strKItem) //数据变动的才更新
|
|
@@ -1560,10 +1567,11 @@ function JSFloatTooltip()
|
|
|
1560
1567
|
if (IFrameSplitOperator.IsNumber(data.Time)) timeItem=this.FormatTime(data.Time, this.HQChart.Period, null, 'FloatTooltip-Time');
|
|
1561
1568
|
|
|
1562
1569
|
var overlayItem=null;
|
|
1563
|
-
if (kItem.IsOverlay)
|
|
1570
|
+
if (kItem.IsOverlay || (kItem.IsIndexKLine && kItem.Name))
|
|
1564
1571
|
overlayItem={ Title:"", Text:kItem.Name, Color:this.TextColor, ClassName:this.ValueAlign.Left };
|
|
1565
1572
|
|
|
1566
1573
|
|
|
1574
|
+
|
|
1567
1575
|
var yClose=data.YClose; //昨收价|昨结算价
|
|
1568
1576
|
var aryText=
|
|
1569
1577
|
[
|
|
@@ -55882,6 +55882,8 @@ HQData.Minute_RequestHistoryMinuteData=function(data, callback)
|
|
|
55882
55882
|
|
|
55883
55883
|
var hqchartData={code:0, data:aryDay, name:symbol, symbol: symbol};
|
|
55884
55884
|
|
|
55885
|
+
//hqchartData.data[0].minute.length=45;
|
|
55886
|
+
|
|
55885
55887
|
callback(hqchartData);
|
|
55886
55888
|
}
|
|
55887
55889
|
|
|
@@ -57280,17 +57282,22 @@ HQData.GetKLineDataByDate=function(fullData, startDate, endDate)
|
|
|
57280
57282
|
HQData.GetDayMinuteDataBySymbol=function(symbol)
|
|
57281
57283
|
{
|
|
57282
57284
|
var data=null;
|
|
57283
|
-
|
|
57285
|
+
var upperSymbol=null;
|
|
57286
|
+
if (symbol) upperSymbol=symbol.toUpperCase();
|
|
57287
|
+
switch(upperSymbol)
|
|
57284
57288
|
{
|
|
57285
|
-
case "000001.
|
|
57289
|
+
case "000001.SZ":
|
|
57286
57290
|
data=SZ_000001_1DAY_MINUTE;
|
|
57287
57291
|
break;
|
|
57288
|
-
case "600000.
|
|
57292
|
+
case "600000.SH":
|
|
57289
57293
|
data=SH_600000_1DAY_MINUTE;
|
|
57290
57294
|
break;
|
|
57291
|
-
case "000151.
|
|
57295
|
+
case "000151.SZ":
|
|
57292
57296
|
data=SZ_000151_1DAY_MINUTE;
|
|
57293
57297
|
break;
|
|
57298
|
+
case "IM2503.CF":
|
|
57299
|
+
data=CF_IM2503_1DAY_MINUTE;
|
|
57300
|
+
break;
|
|
57294
57301
|
default:
|
|
57295
57302
|
data=SZ_000151_1DAY_MINUTE;
|
|
57296
57303
|
break;
|
|
@@ -57426,7 +57433,10 @@ HQData.Report_APIIndex=function(data, callback)
|
|
|
57426
57433
|
HQData.APIIndex_MULTI_TEXT(data, callback);
|
|
57427
57434
|
else if (request.Data.indexname=="API_PARTLINE")
|
|
57428
57435
|
HQData.APIIndex_PARTLINE(data, callback);
|
|
57429
|
-
|
|
57436
|
+
else if (request.Data.indexname=="API_CHANNELV2")
|
|
57437
|
+
HQData.APIIndex_CHANNEL_V2(data, callback);
|
|
57438
|
+
else if (request.Data.indexname=="API_DRAWKLINE")
|
|
57439
|
+
HQData.APIIndex_DRAWKLINE(data, callback);
|
|
57430
57440
|
}
|
|
57431
57441
|
|
|
57432
57442
|
|
|
@@ -58123,7 +58133,8 @@ HQData.APIIndex_MULTI_BAR=function(data, callback)
|
|
|
58123
58133
|
{
|
|
58124
58134
|
DrawType:'MULTI_BAR',
|
|
58125
58135
|
DrawData:[]
|
|
58126
|
-
}
|
|
58136
|
+
}, //绘制柱子数组\
|
|
58137
|
+
IsShowTitle:false,
|
|
58127
58138
|
};
|
|
58128
58139
|
|
|
58129
58140
|
//第一组柱子
|
|
@@ -58141,14 +58152,15 @@ HQData.APIIndex_MULTI_BAR=function(data, callback)
|
|
|
58141
58152
|
|
|
58142
58153
|
var point2=
|
|
58143
58154
|
{
|
|
58144
|
-
Color:'rgb(55,228,181)',
|
|
58145
|
-
|
|
58155
|
+
Color:'rgb(55,228,181)', //颜色
|
|
58156
|
+
BorderColor:"rgb(255,165,0)", //边框景色
|
|
58157
|
+
Type:2,
|
|
58146
58158
|
Name:"柱子下部",
|
|
58147
58159
|
Point:
|
|
58148
58160
|
[
|
|
58149
58161
|
//{Date:20190916, Time: Value:15.5, Value2:0 },
|
|
58150
58162
|
],
|
|
58151
|
-
Width:
|
|
58163
|
+
Width:10
|
|
58152
58164
|
};
|
|
58153
58165
|
|
|
58154
58166
|
for(var i=0;i<kData.Data.length;++i)
|
|
@@ -58160,7 +58172,7 @@ HQData.APIIndex_MULTI_BAR=function(data, callback)
|
|
|
58160
58172
|
|
|
58161
58173
|
|
|
58162
58174
|
|
|
58163
|
-
barData.Draw.DrawData.push(point);
|
|
58175
|
+
//barData.Draw.DrawData.push(point);
|
|
58164
58176
|
barData.Draw.DrawData.push(point2);
|
|
58165
58177
|
|
|
58166
58178
|
var apiData=
|
|
@@ -58274,3 +58286,105 @@ HQData.APIIndex_PARTLINE=function(data, callback)
|
|
|
58274
58286
|
}
|
|
58275
58287
|
|
|
58276
58288
|
|
|
58289
|
+
HQData.APIIndex_CHANNEL_V2=function(data, callback)
|
|
58290
|
+
{
|
|
58291
|
+
data.PreventDefault=true;
|
|
58292
|
+
var hqchart=data.HQChart;
|
|
58293
|
+
var kData=hqchart.GetKData();
|
|
58294
|
+
|
|
58295
|
+
var channelData=
|
|
58296
|
+
{
|
|
58297
|
+
name:'通道示例', type:1,
|
|
58298
|
+
Draw:
|
|
58299
|
+
{
|
|
58300
|
+
DrawType:'JS_CHART_CHANNEL_V2',
|
|
58301
|
+
DrawData:
|
|
58302
|
+
{
|
|
58303
|
+
AryData:[]
|
|
58304
|
+
}
|
|
58305
|
+
}
|
|
58306
|
+
};
|
|
58307
|
+
|
|
58308
|
+
var aryTestData=kData.GetCloseMA(10);
|
|
58309
|
+
var ARRAY_COLOR=["rgb(0, 0 ,255)", "rgb(255,0,255)", "rgb(255,165,0)"];
|
|
58310
|
+
var colorIndex=0;
|
|
58311
|
+
for(var i=20;i<kData.Data.length;++i)
|
|
58312
|
+
{
|
|
58313
|
+
var index=i%15;
|
|
58314
|
+
var kItem=kData.Data[i];
|
|
58315
|
+
var value=aryTestData[i];
|
|
58316
|
+
var value2=value*1.03;
|
|
58317
|
+
var item={ Date:kItem.Date, Time:kItem.Time, Value: value, Value2:value2 };
|
|
58318
|
+
//var item={ Date:kItem.Date, Time:kItem.Time, Value: kItem.Close*(1.05), Value2:kItem.Close };
|
|
58319
|
+
|
|
58320
|
+
item.Color=ARRAY_COLOR[colorIndex%ARRAY_COLOR.length];
|
|
58321
|
+
channelData.Draw.DrawData.AryData.push(item);
|
|
58322
|
+
|
|
58323
|
+
if (index==0 && i>0) ++colorIndex;
|
|
58324
|
+
}
|
|
58325
|
+
|
|
58326
|
+
var apiData=
|
|
58327
|
+
{
|
|
58328
|
+
code:0,
|
|
58329
|
+
stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
|
|
58330
|
+
outdata: { date:kData.GetDate(), time:kData.GetTime(), outvar:[channelData] }
|
|
58331
|
+
};
|
|
58332
|
+
|
|
58333
|
+
console.log('[HQData.APIIndex_CHANNEL_V2] apiData ', apiData);
|
|
58334
|
+
callback(apiData);
|
|
58335
|
+
}
|
|
58336
|
+
|
|
58337
|
+
|
|
58338
|
+
HQData.APIIndex_DRAWKLINE=function(data, callback)
|
|
58339
|
+
{
|
|
58340
|
+
data.PreventDefault=true;
|
|
58341
|
+
var hqchart=data.HQChart;
|
|
58342
|
+
var kData=hqchart.GetKData();
|
|
58343
|
+
|
|
58344
|
+
var klineData=
|
|
58345
|
+
{
|
|
58346
|
+
name:"DRAWKLINE", type:1,
|
|
58347
|
+
Draw:
|
|
58348
|
+
{
|
|
58349
|
+
Name:"DRAWKLINE",
|
|
58350
|
+
DrawType:"DRAWKLINE",
|
|
58351
|
+
DrawData:[],
|
|
58352
|
+
Config:{ IsShowMaxMinPrice:true, IsShowKTooltip:true, Symbol:"000001.sh", Name:"上证指数11" }
|
|
58353
|
+
}
|
|
58354
|
+
};
|
|
58355
|
+
|
|
58356
|
+
var aryDate=[];
|
|
58357
|
+
var aryTime=[];
|
|
58358
|
+
for(var i=100;i<kData.Data.length-100;++i)
|
|
58359
|
+
{
|
|
58360
|
+
var kItem=kData.Data[i];
|
|
58361
|
+
var newItem=
|
|
58362
|
+
{
|
|
58363
|
+
YClose:kItem.YClose,
|
|
58364
|
+
Open:kItem.Open,
|
|
58365
|
+
High:kItem.High,
|
|
58366
|
+
Low:kItem.Low,
|
|
58367
|
+
Close:kItem.Close,
|
|
58368
|
+
Date:kItem.Date,
|
|
58369
|
+
Time:kItem.Time,
|
|
58370
|
+
Vol:kItem.Vol,
|
|
58371
|
+
};
|
|
58372
|
+
|
|
58373
|
+
klineData.Draw.DrawData.push(newItem);
|
|
58374
|
+
|
|
58375
|
+
aryDate.push(kItem.Date);
|
|
58376
|
+
aryTime.push(kItem.Time)
|
|
58377
|
+
}
|
|
58378
|
+
|
|
58379
|
+
var apiData=
|
|
58380
|
+
{
|
|
58381
|
+
code:0,
|
|
58382
|
+
stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
|
|
58383
|
+
outdata: { date:aryDate, time:aryTime, outvar:[klineData] }
|
|
58384
|
+
};
|
|
58385
|
+
|
|
58386
|
+
console.log('[HQData.APIIndex_DRAWKLINE] apiData ', apiData);
|
|
58387
|
+
callback(apiData);
|
|
58388
|
+
}
|
|
58389
|
+
|
|
58390
|
+
|
|
@@ -20257,6 +20257,8 @@ var SCRIPT_CHART_NAME=
|
|
|
20257
20257
|
SCATTER_PLOT:"SCATTER_PLOT", //散点图
|
|
20258
20258
|
|
|
20259
20259
|
CLIP_COLOR_STICK:"CLIP_COLOR_STICK", //上下柱子 裁剪
|
|
20260
|
+
|
|
20261
|
+
DRAW_KLINE:"DRAWKLINE"
|
|
20260
20262
|
}
|
|
20261
20263
|
|
|
20262
20264
|
|
|
@@ -21325,6 +21327,15 @@ function ScriptIndex(name,script,args,option)
|
|
|
21325
21327
|
if (varItem.Color) //如果设置了颜色,使用外面设置的颜色
|
|
21326
21328
|
chart.UnchagneColor=chart.DownColor=chart.UpColor=this.GetColor(varItem.Color);
|
|
21327
21329
|
|
|
21330
|
+
if (varItem.Draw.Config)
|
|
21331
|
+
{
|
|
21332
|
+
var config=varItem.Draw.Config;
|
|
21333
|
+
if (IFrameSplitOperator.IsBool(config.IsShowMaxMinPrice)) chart.IsShowMaxMinPrice=config.IsShowMaxMinPrice;
|
|
21334
|
+
if (IFrameSplitOperator.IsBool(config.IsShowKTooltip)) chart.IsShowKTooltip=config.IsShowKTooltip;
|
|
21335
|
+
if (config.Symbol) chart.Symbol=config.Symbol;
|
|
21336
|
+
if (config.Name) chart.Title=config.Name;
|
|
21337
|
+
}
|
|
21338
|
+
|
|
21328
21339
|
this.SetChartIndexName(chart);
|
|
21329
21340
|
hqChart.ChartPaint.push(chart);
|
|
21330
21341
|
}
|
|
@@ -22013,12 +22024,10 @@ function ScriptIndex(name,script,args,option)
|
|
|
22013
22024
|
this.SetChartIndexName(chart);
|
|
22014
22025
|
hqChart.ChartPaint.push(chart);
|
|
22015
22026
|
|
|
22016
|
-
|
|
22017
|
-
|
|
22018
|
-
|
|
22019
|
-
|
|
22020
|
-
}
|
|
22021
|
-
else
|
|
22027
|
+
var titleIndex=windowIndex+1;
|
|
22028
|
+
var bShowTitle=true;
|
|
22029
|
+
if (varItem.IsShowTitle===false) bShowTitle=false;
|
|
22030
|
+
if (bShowTitle)
|
|
22022
22031
|
{
|
|
22023
22032
|
var titleData=new DynamicTitleData(chart.Data,chart.Name, null);
|
|
22024
22033
|
titleData.DataType="ChartMultiLine";
|
|
@@ -22044,10 +22053,15 @@ function ScriptIndex(name,script,args,option)
|
|
|
22044
22053
|
hqChart.ChartPaint.push(chart);
|
|
22045
22054
|
|
|
22046
22055
|
var titleIndex=windowIndex+1;
|
|
22047
|
-
var
|
|
22048
|
-
|
|
22049
|
-
|
|
22050
|
-
|
|
22056
|
+
var bShowTitle=true;
|
|
22057
|
+
if (varItem.IsShowTitle===false) bShowTitle=false;
|
|
22058
|
+
if (bShowTitle)
|
|
22059
|
+
{
|
|
22060
|
+
var titleData=new DynamicTitleData(chart.Data,chart.Name, null);
|
|
22061
|
+
titleData.DataType="ChartMultiPoint";
|
|
22062
|
+
titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
|
|
22063
|
+
hqChart.TitlePaint[titleIndex].Data[i]=titleData;
|
|
22064
|
+
}
|
|
22051
22065
|
}
|
|
22052
22066
|
|
|
22053
22067
|
this.CreateMultiBar=function(hqChart,windowIndex,varItem,id)
|
|
@@ -22066,10 +22080,17 @@ function ScriptIndex(name,script,args,option)
|
|
|
22066
22080
|
hqChart.ChartPaint.push(chart);
|
|
22067
22081
|
|
|
22068
22082
|
var titleIndex=windowIndex+1;
|
|
22069
|
-
|
|
22070
|
-
|
|
22071
|
-
|
|
22072
|
-
|
|
22083
|
+
|
|
22084
|
+
var bShowTitle=true;
|
|
22085
|
+
if (varItem.IsShowTitle===false) bShowTitle=false;
|
|
22086
|
+
if (bShowTitle)
|
|
22087
|
+
{
|
|
22088
|
+
var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);
|
|
22089
|
+
titleData.DataType="ChartMultiBar";
|
|
22090
|
+
titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
|
|
22091
|
+
hqChart.TitlePaint[titleIndex].Data[id]=titleData;
|
|
22092
|
+
}
|
|
22093
|
+
|
|
22073
22094
|
}
|
|
22074
22095
|
|
|
22075
22096
|
this.CreateMultiText=function(hqChart,windowIndex,varItem,i)
|
|
@@ -23783,11 +23804,16 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
23783
23804
|
chart.BuildCacheData();
|
|
23784
23805
|
|
|
23785
23806
|
var titleIndex=windowIndex+1;
|
|
23786
|
-
var
|
|
23787
|
-
|
|
23788
|
-
|
|
23789
|
-
|
|
23790
|
-
|
|
23807
|
+
var bShowTitle=true;
|
|
23808
|
+
if (varItem.IsShowTitle===false) bShowTitle=false;
|
|
23809
|
+
if (bShowTitle)
|
|
23810
|
+
{
|
|
23811
|
+
var titlePaint=hqChart.TitlePaint[titleIndex];
|
|
23812
|
+
var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);
|
|
23813
|
+
titleData.DataType="ChartMultiPoint";
|
|
23814
|
+
titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
|
|
23815
|
+
titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;
|
|
23816
|
+
}
|
|
23791
23817
|
|
|
23792
23818
|
this.SetChartIndexName(chart);
|
|
23793
23819
|
|
|
@@ -23833,12 +23859,16 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
23833
23859
|
chart.BuildCacheData();
|
|
23834
23860
|
|
|
23835
23861
|
var titleIndex=windowIndex+1;
|
|
23836
|
-
var
|
|
23837
|
-
|
|
23838
|
-
|
|
23839
|
-
|
|
23840
|
-
|
|
23841
|
-
|
|
23862
|
+
var bShowTitle=true;
|
|
23863
|
+
if (varItem.IsShowTitle===false) bShowTitle=false;
|
|
23864
|
+
if (bShowTitle)
|
|
23865
|
+
{
|
|
23866
|
+
var titlePaint=hqChart.TitlePaint[titleIndex];
|
|
23867
|
+
var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);
|
|
23868
|
+
titleData.DataType="ChartMultiBar";
|
|
23869
|
+
titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
|
|
23870
|
+
titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;
|
|
23871
|
+
}
|
|
23842
23872
|
|
|
23843
23873
|
this.SetChartIndexName(chart);
|
|
23844
23874
|
frame.ChartPaint.push(chart);
|
|
@@ -25265,6 +25295,17 @@ function APIScriptIndex(name,script,args,option, isOverlay)
|
|
|
25265
25295
|
outVarItem.Draw=drawItem;
|
|
25266
25296
|
result.push(outVarItem);
|
|
25267
25297
|
}
|
|
25298
|
+
else if (draw.DrawType==SCRIPT_CHART_NAME.DRAW_KLINE)
|
|
25299
|
+
{
|
|
25300
|
+
drawItem.Name=draw.Name;
|
|
25301
|
+
drawItem.Type=draw.Type;
|
|
25302
|
+
drawItem.DrawType=draw.DrawType;
|
|
25303
|
+
|
|
25304
|
+
drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart,1);
|
|
25305
|
+
drawItem.Config=draw.Config;
|
|
25306
|
+
outVarItem.Draw=drawItem;
|
|
25307
|
+
result.push(outVarItem);
|
|
25308
|
+
}
|
|
25268
25309
|
else
|
|
25269
25310
|
{
|
|
25270
25311
|
var find=g_ScriptIndexChartFactory.Get(draw.DrawType); //外部挂接
|
|
@@ -60,6 +60,17 @@ function JSDealChart(divElement)
|
|
|
60
60
|
|
|
61
61
|
this.JSChartContainer=chart;
|
|
62
62
|
this.DivElement.JSChart=this; //div中保存一份
|
|
63
|
+
|
|
64
|
+
//注册事件
|
|
65
|
+
if (option.EventCallback)
|
|
66
|
+
{
|
|
67
|
+
for(var i=0;i<option.EventCallback.length;++i)
|
|
68
|
+
{
|
|
69
|
+
var item=option.EventCallback[i];
|
|
70
|
+
chart.AddEventCallback(item);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
63
74
|
if (!option.Symbol)
|
|
64
75
|
{
|
|
65
76
|
chart.Draw();
|
|
@@ -284,6 +295,7 @@ function JSDealChartContainer(uielement)
|
|
|
284
295
|
chart.Frame=this.Frame;
|
|
285
296
|
chart.ChartBorder=this.Frame.ChartBorder;
|
|
286
297
|
chart.Canvas=this.Canvas;
|
|
298
|
+
chart.UIElement=this.UIElement;
|
|
287
299
|
chart.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
|
|
288
300
|
this.ChartPaint[0]=chart;
|
|
289
301
|
|
|
@@ -311,10 +323,16 @@ function JSDealChartContainer(uielement)
|
|
|
311
323
|
bRegisterWheel=false;
|
|
312
324
|
JSConsole.Chart.Log('[JSDealChartContainer::Create] not register wheel event.');
|
|
313
325
|
}
|
|
326
|
+
|
|
327
|
+
if (IFrameSplitOperator.IsBool(option.EnableSelected)) chart.SelectedData.Enable=option.EnableSelected;
|
|
314
328
|
}
|
|
315
329
|
|
|
316
330
|
if (bRegisterKeydown) this.UIElement.addEventListener("keydown", (e)=>{ this.OnKeyDown(e); }, true); //键盘消息
|
|
317
331
|
if (bRegisterWheel) this.UIElement.addEventListener("wheel", (e)=>{ this.OnWheel(e); }, true); //上下滚动消息
|
|
332
|
+
|
|
333
|
+
this.UIElement.onmousedown=(e)=> { this.UIOnMouseDown(e); }
|
|
334
|
+
this.UIElement.ondblclick=(e)=>{ this.UIOnDblClick(e); }
|
|
335
|
+
this.UIElement.oncontextmenu=(e)=> { this.UIOnContextMenu(e); }
|
|
318
336
|
}
|
|
319
337
|
|
|
320
338
|
this.Draw=function()
|
|
@@ -688,6 +706,40 @@ function JSDealChartContainer(uielement)
|
|
|
688
706
|
else e.returnValue = false;
|
|
689
707
|
}
|
|
690
708
|
|
|
709
|
+
this.UIOnMouseDown=function(e)
|
|
710
|
+
{
|
|
711
|
+
var pixelTatio = GetDevicePixelRatio();
|
|
712
|
+
var x = (e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;
|
|
713
|
+
var y = (e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;
|
|
714
|
+
|
|
715
|
+
|
|
716
|
+
var chart=this.ChartPaint[0];
|
|
717
|
+
if (!chart) return;
|
|
718
|
+
|
|
719
|
+
var clickData=chart.OnMouseDown(x,y,e);
|
|
720
|
+
if (!clickData) return;
|
|
721
|
+
|
|
722
|
+
if ((clickData.Type==1) && (e.button==0 || e.button==2)) //点击行
|
|
723
|
+
{
|
|
724
|
+
if (clickData.Redraw==true) this.Draw();
|
|
725
|
+
}
|
|
726
|
+
}
|
|
727
|
+
|
|
728
|
+
this.UIOnDblClick=function(e)
|
|
729
|
+
{
|
|
730
|
+
var pixelTatio = GetDevicePixelRatio();
|
|
731
|
+
var x = (e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;
|
|
732
|
+
var y = (e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;
|
|
733
|
+
|
|
734
|
+
var chart=this.ChartPaint[0];
|
|
735
|
+
if (chart) chart.OnDblClick(x,y,e);
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
this.UIOnContextMenu=function(e)
|
|
739
|
+
{
|
|
740
|
+
e.preventDefault();
|
|
741
|
+
}
|
|
742
|
+
|
|
691
743
|
this.GotoNextPage=function()
|
|
692
744
|
{
|
|
693
745
|
if (!this.Data || !IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return false;
|
|
@@ -781,7 +833,7 @@ JSDealChartContainer.JsonDataToDealData=function(data)
|
|
|
781
833
|
{
|
|
782
834
|
var item=data.detail[i];
|
|
783
835
|
|
|
784
|
-
var dealItem={ Time:item[0], Price:item[1], Vol:item[2], BS:item[4], Amount:item[3] };
|
|
836
|
+
var dealItem={ Time:item[0], Price:item[1], Vol:item[2], BS:item[4], Amount:item[3], Guid:Guid() };
|
|
785
837
|
dealItem.Source=item;
|
|
786
838
|
|
|
787
839
|
if (item[5]) dealItem.StrTime=item[5];
|
|
@@ -907,6 +959,7 @@ function ChartDealList()
|
|
|
907
959
|
this.IsSingleTable=false; //单表模式
|
|
908
960
|
this.IsShowHeader=true; //是否显示表头
|
|
909
961
|
this.ShowOrder=1; //0=顺序 1=倒序
|
|
962
|
+
this.SelectedData={ Index:null, Guid:null, Enable:false }; //{ Index:序号, Guid, Enable:是否启动 }
|
|
910
963
|
|
|
911
964
|
this.SizeChange=true;
|
|
912
965
|
|
|
@@ -917,6 +970,8 @@ function ChartDealList()
|
|
|
917
970
|
|
|
918
971
|
this.BorderColor=g_JSChartResource.DealList.BorderColor; //边框线
|
|
919
972
|
|
|
973
|
+
this.SelectedConfig={ BGColor:g_JSChartResource.DealList.Selected.BGColor };
|
|
974
|
+
|
|
920
975
|
//表头配置
|
|
921
976
|
this.HeaderFontConfig={ Size:g_JSChartResource.DealList.Header.Font.Size, Name:g_JSChartResource.DealList.Header.Font.Name };
|
|
922
977
|
this.HeaderColor=g_JSChartResource.DealList.Header.Color;
|
|
@@ -956,6 +1011,7 @@ function ChartDealList()
|
|
|
956
1011
|
];
|
|
957
1012
|
|
|
958
1013
|
this.RectClient={};
|
|
1014
|
+
this.AryCellRect=[]; //{ Rect:, Type: 1=单行 }
|
|
959
1015
|
|
|
960
1016
|
this.ReloadResource=function(resource)
|
|
961
1017
|
{
|
|
@@ -1056,6 +1112,7 @@ function ChartDealList()
|
|
|
1056
1112
|
|
|
1057
1113
|
this.Draw=function()
|
|
1058
1114
|
{
|
|
1115
|
+
this.AryCellRect=[];
|
|
1059
1116
|
if (this.SizeChange) this.CalculateSize();
|
|
1060
1117
|
else this.UpdateCacheData();
|
|
1061
1118
|
|
|
@@ -1211,6 +1268,7 @@ function ChartDealList()
|
|
|
1211
1268
|
for(j=0;j<this.RowCount && index>=0;++j, --index)
|
|
1212
1269
|
{
|
|
1213
1270
|
var dataItem=this.Data.Data[index];
|
|
1271
|
+
this.DrawSelectedRow(dataItem, index, rtRow);
|
|
1214
1272
|
|
|
1215
1273
|
this.DrawRow(dataItem, textLeft, textTop, index);
|
|
1216
1274
|
|
|
@@ -1228,8 +1286,15 @@ function ChartDealList()
|
|
|
1228
1286
|
for(j=0;j<this.RowCount && index<dataCount;++j, ++index)
|
|
1229
1287
|
{
|
|
1230
1288
|
var dataItem=this.Data.Data[index];
|
|
1289
|
+
var rtRow={ Left:textLeft-this.HeaderMergin.Left, Top:textTop, Height:this.RowHeight, Width:this.TableWidth };
|
|
1290
|
+
rtRow.Right=rtRow.Left+rtRow.Width;
|
|
1291
|
+
rtRow.Bottom=rtRow.Top+rtRow.Height;
|
|
1292
|
+
|
|
1293
|
+
this.DrawSelectedRow(dataItem, index, rtRow);
|
|
1231
1294
|
|
|
1232
1295
|
this.DrawRow(dataItem, textLeft, textTop, index);
|
|
1296
|
+
|
|
1297
|
+
this.AryCellRect.push({ Rect:rtRow, Type:1, DataIndex:index });
|
|
1233
1298
|
|
|
1234
1299
|
textTop+=this.RowHeight;
|
|
1235
1300
|
}
|
|
@@ -1335,6 +1400,16 @@ function ChartDealList()
|
|
|
1335
1400
|
}
|
|
1336
1401
|
}
|
|
1337
1402
|
|
|
1403
|
+
this.DrawSelectedRow=function(data, index, rtRow)
|
|
1404
|
+
{
|
|
1405
|
+
if (!this.SelectedData) return;
|
|
1406
|
+
if (!this.SelectedData.Enable) return;
|
|
1407
|
+
if (!this.SelectedData.Guid || this.SelectedData.Guid!=data.Guid) return;
|
|
1408
|
+
|
|
1409
|
+
this.Canvas.fillStyle=this.SelectedConfig.BGColor;
|
|
1410
|
+
this.Canvas.fillRect(rtRow.Left,rtRow.Top, rtRow.Width, rtRow.Height);
|
|
1411
|
+
}
|
|
1412
|
+
|
|
1338
1413
|
this.DrawItemText=function(text, textColor, textAlign, left, top, width)
|
|
1339
1414
|
{
|
|
1340
1415
|
var x=left;
|
|
@@ -1461,4 +1536,79 @@ function ChartDealList()
|
|
|
1461
1536
|
{
|
|
1462
1537
|
return GetFontHeight(this.Canvas, font, word);
|
|
1463
1538
|
}
|
|
1539
|
+
|
|
1540
|
+
this.OnMouseDown=function(x,y,e) //Type: 1=行
|
|
1541
|
+
{
|
|
1542
|
+
if (!this.Data) return null;
|
|
1543
|
+
|
|
1544
|
+
var pixelTatio = GetDevicePixelRatio();
|
|
1545
|
+
var insidePoint={X:x/pixelTatio, Y:y/pixelTatio};
|
|
1546
|
+
var uiElement;
|
|
1547
|
+
if (this.UIElement) uiElement={Left:this.UIElement.getBoundingClientRect().left, Top:this.UIElement.getBoundingClientRect().top};
|
|
1548
|
+
else uiElement={Left:null, Top:null};
|
|
1549
|
+
|
|
1550
|
+
var row=this.PtInBody(x,y);
|
|
1551
|
+
if (row)
|
|
1552
|
+
{
|
|
1553
|
+
var bRedraw=true;
|
|
1554
|
+
var index=row.DataIndex;
|
|
1555
|
+
var id=row.Item.Guid
|
|
1556
|
+
if (this.SelectedData.Index==index && this.SelectedData.Guid==id) bRedraw=false;
|
|
1557
|
+
|
|
1558
|
+
this.SelectedData.Index=index;
|
|
1559
|
+
this.SelectedData.Guid=id;
|
|
1560
|
+
|
|
1561
|
+
var eventID=JSCHART_EVENT_ID.ON_CLICK_DEAL_ROW;
|
|
1562
|
+
if (e.button==2) eventID=JSCHART_EVENT_ID.ON_RCLICK_DEAL_ROW;
|
|
1563
|
+
|
|
1564
|
+
this.SendClickEvent(eventID, { Data:row, X:x, Y:y, e:e, Inside:insidePoint, UIElement:uiElement });
|
|
1565
|
+
|
|
1566
|
+
return { Type:row.Type, Redraw:bRedraw, Row:row };
|
|
1567
|
+
}
|
|
1568
|
+
|
|
1569
|
+
return null;
|
|
1570
|
+
}
|
|
1571
|
+
|
|
1572
|
+
this.OnDblClick=function(x,y,e)
|
|
1573
|
+
{
|
|
1574
|
+
if (!this.Data) return false;
|
|
1575
|
+
|
|
1576
|
+
var row=this.PtInBody(x,y);
|
|
1577
|
+
if (row)
|
|
1578
|
+
{
|
|
1579
|
+
this.SendClickEvent(JSCHART_EVENT_ID.ON_DBCLICK_DEAL_ROW, { Data:row, X:x, Y:y });
|
|
1580
|
+
return true;
|
|
1581
|
+
}
|
|
1582
|
+
|
|
1583
|
+
return false;
|
|
1584
|
+
}
|
|
1585
|
+
|
|
1586
|
+
this.PtInBody=function(x,y)
|
|
1587
|
+
{
|
|
1588
|
+
if (!this.Data) return null;
|
|
1589
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return null;
|
|
1590
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.AryCellRect)) return null;
|
|
1591
|
+
|
|
1592
|
+
for(var i=0;i<this.AryCellRect.length;++i)
|
|
1593
|
+
{
|
|
1594
|
+
var item=this.AryCellRect[i];
|
|
1595
|
+
var rtRow=item.Rect;
|
|
1596
|
+
if (x>=rtRow.Left && x<=rtRow.Right && y>=rtRow.Top && y<=rtRow.Bottom)
|
|
1597
|
+
{
|
|
1598
|
+
var data={ Rect:rtRow, DataIndex:item.DataIndex, Item:this.Data.Data[item.DataIndex], Type:item.Type };
|
|
1599
|
+
return data;
|
|
1600
|
+
}
|
|
1601
|
+
}
|
|
1602
|
+
|
|
1603
|
+
return null;
|
|
1604
|
+
}
|
|
1605
|
+
|
|
1606
|
+
this.SendClickEvent=function(id, data)
|
|
1607
|
+
{
|
|
1608
|
+
var event=this.GetEventCallback(id);
|
|
1609
|
+
if (event && event.Callback)
|
|
1610
|
+
{
|
|
1611
|
+
event.Callback(event,data,this);
|
|
1612
|
+
}
|
|
1613
|
+
}
|
|
1464
1614
|
}
|