hqchart 1.1.13490 → 1.1.13497
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.NetworkFilterTest.vue.js +52 -3
- package/lib/umychart.vue.js +66 -55
- package/package.json +1 -1
- package/src/jscommon/umychart.NetworkFilterTest.js +297 -0
- package/src/jscommon/umychart.js +3 -0
- package/src/jscommon/umychart.report.js +131 -17
- package/src/jscommon/umychart.testdata/shsz_stock_data.js +45482 -0
- package/src/jscommon/umychart.testdata.js +297 -0
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +135 -18
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.NetworkFilterTest.vue.js +297 -0
- package/src/jscommon/umychart.vue/umychart.vue.js +135 -18
package/package.json
CHANGED
|
@@ -48760,6 +48760,22 @@ HQData.NetworkFilter=function(data, callback)
|
|
|
48760
48760
|
case "TradeDetail::RequestData":
|
|
48761
48761
|
HQData.TradeDetail_RequestData(data,callback);
|
|
48762
48762
|
break;
|
|
48763
|
+
|
|
48764
|
+
//////////////////////////////////////////////////////
|
|
48765
|
+
//报价列表数据
|
|
48766
|
+
case "JSReportChartContainer::RequestStockListData":
|
|
48767
|
+
HQData.Report_RequestStockListData(data, callback); //码表
|
|
48768
|
+
break;
|
|
48769
|
+
|
|
48770
|
+
case "JSReportChartContainer::RequestMemberListData": //板块成分
|
|
48771
|
+
HQData.Report_RequestMemberListDat(data, callback);
|
|
48772
|
+
break;
|
|
48773
|
+
case "JSDealChartContainer::RequestStockData": //股票数据更新
|
|
48774
|
+
HQData.Report_RequestStockData(data, callback);
|
|
48775
|
+
break;
|
|
48776
|
+
case "JSDealChartContainer::RequestStockSortData": //股票排序数据
|
|
48777
|
+
HQData.Report_RequestStockSortData(data, callback);
|
|
48778
|
+
break;
|
|
48763
48779
|
}
|
|
48764
48780
|
}
|
|
48765
48781
|
|
|
@@ -49170,3 +49186,284 @@ HQData.RequestOverlayHistoryMinuteData=function(data, callback)
|
|
|
49170
49186
|
}
|
|
49171
49187
|
|
|
49172
49188
|
|
|
49189
|
+
//////////////////////////////////////////////////////////////////////////////////////
|
|
49190
|
+
// 报价列表
|
|
49191
|
+
//
|
|
49192
|
+
//
|
|
49193
|
+
/////////////////////////////////////////////////////////////////////////////////////
|
|
49194
|
+
|
|
49195
|
+
//码表
|
|
49196
|
+
HQData.Report_RequestStockListData=function(data, callback)
|
|
49197
|
+
{
|
|
49198
|
+
data.PreventDefault=true;
|
|
49199
|
+
|
|
49200
|
+
var hqchartData={ data:[] };
|
|
49201
|
+
|
|
49202
|
+
if (IFrameSplitOperator.IsNonEmptyArray(SHSZ_STOCK_LIST_TEST_DATA.symbol))
|
|
49203
|
+
{
|
|
49204
|
+
//0=证券代码 1=股票名称
|
|
49205
|
+
for(var i=0;i<SHSZ_STOCK_LIST_TEST_DATA.symbol.length;++i)
|
|
49206
|
+
{
|
|
49207
|
+
var symbol=SHSZ_STOCK_LIST_TEST_DATA.symbol[i];
|
|
49208
|
+
var name=SHSZ_STOCK_LIST_TEST_DATA.name[i];
|
|
49209
|
+
|
|
49210
|
+
hqchartData.data.push([symbol,name]);
|
|
49211
|
+
}
|
|
49212
|
+
}
|
|
49213
|
+
|
|
49214
|
+
console.log("[HQData.Report_RequestStockListData] hqchartData",hqchartData);
|
|
49215
|
+
callback(hqchartData);
|
|
49216
|
+
|
|
49217
|
+
}
|
|
49218
|
+
|
|
49219
|
+
//板块|行业等成分列表
|
|
49220
|
+
HQData.Report_RequestMemberListDat=function(data, callback)
|
|
49221
|
+
{
|
|
49222
|
+
var symbol=data.Request.Data.symbol; //板块代码
|
|
49223
|
+
data.PreventDefault=true;
|
|
49224
|
+
|
|
49225
|
+
var hqchartData= { symbol:symbol , name:symbol, data:[] , code:0 };
|
|
49226
|
+
var testDataCount=SHSZ_STOCK_LIST_TEST_DATA.symbol.length;
|
|
49227
|
+
var testIndex=Math.round(Math.random()*(testDataCount-100));
|
|
49228
|
+
var count=parseInt(Math.random()*(200)+100); ;
|
|
49229
|
+
|
|
49230
|
+
for(var i=testIndex, j=0; i<SHSZ_STOCK_LIST_TEST_DATA.symbol.length && j<count; ++i, ++j)
|
|
49231
|
+
{
|
|
49232
|
+
hqchartData.data.push(SHSZ_STOCK_LIST_TEST_DATA.symbol[i]);
|
|
49233
|
+
}
|
|
49234
|
+
|
|
49235
|
+
callback(hqchartData);
|
|
49236
|
+
}
|
|
49237
|
+
|
|
49238
|
+
HQData.Report_RequestStockData=function(data, callback)
|
|
49239
|
+
{
|
|
49240
|
+
var stocks=data.Request.Data.stocks; //股票列表
|
|
49241
|
+
data.PreventDefault=true;
|
|
49242
|
+
|
|
49243
|
+
var mapStock=new Map();
|
|
49244
|
+
for(var i=0;i<stocks.length;++i)
|
|
49245
|
+
{
|
|
49246
|
+
var item=stocks[i];
|
|
49247
|
+
mapStock.set(item.Symbol,{ Symbol:item.Symbol, Data:null });
|
|
49248
|
+
}
|
|
49249
|
+
|
|
49250
|
+
if (IFrameSplitOperator.IsNonEmptyArray(SHSZ_STOCK_LIST_TEST_DATA.symbol))
|
|
49251
|
+
{
|
|
49252
|
+
for(var i=0;i<SHSZ_STOCK_LIST_TEST_DATA.symbol.length;++i)
|
|
49253
|
+
{
|
|
49254
|
+
var symbol=SHSZ_STOCK_LIST_TEST_DATA.symbol[i];
|
|
49255
|
+
if (!mapStock.has(symbol)) continue;
|
|
49256
|
+
var item=mapStock.get(symbol);
|
|
49257
|
+
var name=SHSZ_STOCK_LIST_TEST_DATA.name[i];
|
|
49258
|
+
var price=SHSZ_STOCK_LIST_TEST_DATA.close[i];
|
|
49259
|
+
var vol=SHSZ_STOCK_LIST_TEST_DATA.vol[i];
|
|
49260
|
+
var newItem=
|
|
49261
|
+
[
|
|
49262
|
+
symbol,
|
|
49263
|
+
name,
|
|
49264
|
+
SHSZ_STOCK_LIST_TEST_DATA.yclose[i],
|
|
49265
|
+
SHSZ_STOCK_LIST_TEST_DATA.open[i],
|
|
49266
|
+
SHSZ_STOCK_LIST_TEST_DATA.high[i],
|
|
49267
|
+
SHSZ_STOCK_LIST_TEST_DATA.low[i],
|
|
49268
|
+
price,
|
|
49269
|
+
vol,
|
|
49270
|
+
SHSZ_STOCK_LIST_TEST_DATA.amount[i],
|
|
49271
|
+
];
|
|
49272
|
+
|
|
49273
|
+
//买价 量
|
|
49274
|
+
newItem[9]=price+0.05;
|
|
49275
|
+
newItem[10]=10;
|
|
49276
|
+
|
|
49277
|
+
//卖价 量
|
|
49278
|
+
newItem[11]=price-0.06;
|
|
49279
|
+
newItem[12]=5;
|
|
49280
|
+
|
|
49281
|
+
//均价
|
|
49282
|
+
newItem[13]=price-0.03;
|
|
49283
|
+
|
|
49284
|
+
//内盘
|
|
49285
|
+
newItem[18]=vol/4;
|
|
49286
|
+
//外盘
|
|
49287
|
+
newItem[19]=vol/5;
|
|
49288
|
+
|
|
49289
|
+
newItem[14]=vol*1.5; //流通股本
|
|
49290
|
+
newItem[15]=vol*1.8; //总股本
|
|
49291
|
+
|
|
49292
|
+
//换手率
|
|
49293
|
+
newItem[23]=(Math.round(Math.random()*60))/100;
|
|
49294
|
+
|
|
49295
|
+
//名字字段
|
|
49296
|
+
var symbolEx={ Text:name };
|
|
49297
|
+
if (i%20==5)
|
|
49298
|
+
symbolEx.Symbol={ Family:'iconfont', Size:16, Data:[ { Text:'\ue629', Color:'rgb(255,165,0)'}, { Text:'\ue627', Color:'#1c65db'} ] };
|
|
49299
|
+
else if (i%20==9)
|
|
49300
|
+
symbolEx.Symbol={ Family:'iconfont', Size:16, Data:[ { Text:'\ue629', Color:'rgb(255,165,0)'}] } ;
|
|
49301
|
+
else if (i%20==18)
|
|
49302
|
+
symbolEx.Symbol={ Family:'iconfont', Size:16, Data:[ { Text:'\ue627', Color:'#1c65db'}] } ;
|
|
49303
|
+
|
|
49304
|
+
newItem[27]=symbolEx;
|
|
49305
|
+
|
|
49306
|
+
|
|
49307
|
+
//扩展数据 (定制数据)
|
|
49308
|
+
var extendData=[];
|
|
49309
|
+
newItem[30]=extendData;
|
|
49310
|
+
|
|
49311
|
+
//行业
|
|
49312
|
+
extendData[0]="行业X";
|
|
49313
|
+
//地区
|
|
49314
|
+
extendData[1]="地区X";
|
|
49315
|
+
|
|
49316
|
+
//PE|PB
|
|
49317
|
+
extendData[2]=(Math.round(Math.random()*60))/100;
|
|
49318
|
+
extendData[3]=(Math.round(Math.random()*60))/100;
|
|
49319
|
+
extendData[4]=(Math.round(Math.random()*60))/100;
|
|
49320
|
+
extendData[5]=(Math.round(Math.random()*60))/100;
|
|
49321
|
+
|
|
49322
|
+
|
|
49323
|
+
//周涨幅
|
|
49324
|
+
extendData[6]=(Math.round(Math.random()*60))/100;
|
|
49325
|
+
extendData[7]=(Math.round(Math.random()*60))/100;
|
|
49326
|
+
extendData[8]=(Math.round(Math.random()*60))/100;
|
|
49327
|
+
|
|
49328
|
+
|
|
49329
|
+
item.Data=newItem;
|
|
49330
|
+
}
|
|
49331
|
+
}
|
|
49332
|
+
|
|
49333
|
+
var hqchartData={ data:[], code:0 };
|
|
49334
|
+
|
|
49335
|
+
for(var mapItem of mapStock)
|
|
49336
|
+
{
|
|
49337
|
+
var item=mapItem[1];
|
|
49338
|
+
if (!item.Data) continue;
|
|
49339
|
+
|
|
49340
|
+
hqchartData.data.push(item.Data);
|
|
49341
|
+
}
|
|
49342
|
+
|
|
49343
|
+
callback(hqchartData);
|
|
49344
|
+
}
|
|
49345
|
+
|
|
49346
|
+
HQData.Report_RequestStockSortData=function(data, callback)
|
|
49347
|
+
{
|
|
49348
|
+
var blockID=data.Request.Data.symbol; //板块代码
|
|
49349
|
+
var range=data.Request.Data.range; //排序范围
|
|
49350
|
+
var column=data.Request.Data.column; //排序列信息
|
|
49351
|
+
var sortType=data.Request.Data.sort; //排序方向
|
|
49352
|
+
var pageSize=data.Request.Data.pageSize;
|
|
49353
|
+
data.PreventDefault=true;
|
|
49354
|
+
|
|
49355
|
+
var start=range.start;
|
|
49356
|
+
var end=range.end;
|
|
49357
|
+
if (start>0) start-=pageSize;
|
|
49358
|
+
if (start<0) start=0;
|
|
49359
|
+
end+=pageSize;
|
|
49360
|
+
|
|
49361
|
+
var aryData=data.Self.Data.Data.slice(); //所有的股票
|
|
49362
|
+
var mapStock=new Map();
|
|
49363
|
+
var count=end-start+1;
|
|
49364
|
+
for(var i = 0; i < count; i++)
|
|
49365
|
+
{
|
|
49366
|
+
var index = Math.floor(Math.random()*(aryData.length-1));
|
|
49367
|
+
var symbol = aryData[index];
|
|
49368
|
+
mapStock.set(symbol, { Symbol:symbol, Index:i+start, Data:null });
|
|
49369
|
+
aryData.splice(index, 1);
|
|
49370
|
+
}
|
|
49371
|
+
|
|
49372
|
+
if (IFrameSplitOperator.IsNonEmptyArray(SHSZ_STOCK_LIST_TEST_DATA.symbol))
|
|
49373
|
+
{
|
|
49374
|
+
for(var i=0;i<SHSZ_STOCK_LIST_TEST_DATA.symbol.length;++i)
|
|
49375
|
+
{
|
|
49376
|
+
var symbol=SHSZ_STOCK_LIST_TEST_DATA.symbol[i];
|
|
49377
|
+
if (!mapStock.has(symbol)) continue;
|
|
49378
|
+
var item=mapStock.get(symbol);
|
|
49379
|
+
var name=SHSZ_STOCK_LIST_TEST_DATA.name[i];
|
|
49380
|
+
var price=SHSZ_STOCK_LIST_TEST_DATA.close[i];
|
|
49381
|
+
var vol=SHSZ_STOCK_LIST_TEST_DATA.vol[i];
|
|
49382
|
+
var newItem=
|
|
49383
|
+
[
|
|
49384
|
+
symbol,
|
|
49385
|
+
name,
|
|
49386
|
+
SHSZ_STOCK_LIST_TEST_DATA.yclose[i],
|
|
49387
|
+
SHSZ_STOCK_LIST_TEST_DATA.open[i],
|
|
49388
|
+
SHSZ_STOCK_LIST_TEST_DATA.high[i],
|
|
49389
|
+
SHSZ_STOCK_LIST_TEST_DATA.low[i],
|
|
49390
|
+
price,
|
|
49391
|
+
vol,
|
|
49392
|
+
SHSZ_STOCK_LIST_TEST_DATA.amount[i],
|
|
49393
|
+
];
|
|
49394
|
+
|
|
49395
|
+
//买价 量
|
|
49396
|
+
newItem[9]=price+0.05;
|
|
49397
|
+
newItem[10]=10;
|
|
49398
|
+
|
|
49399
|
+
//卖价 量
|
|
49400
|
+
newItem[11]=price-0.06;
|
|
49401
|
+
newItem[12]=5;
|
|
49402
|
+
|
|
49403
|
+
//均价
|
|
49404
|
+
newItem[13]=price-0.03;
|
|
49405
|
+
|
|
49406
|
+
//内盘
|
|
49407
|
+
newItem[18]=vol/4;
|
|
49408
|
+
//外盘
|
|
49409
|
+
newItem[19]=vol/5;
|
|
49410
|
+
|
|
49411
|
+
newItem[14]=vol*1.5; //流通股本
|
|
49412
|
+
newItem[15]=vol*1.8; //总股本
|
|
49413
|
+
|
|
49414
|
+
//换手率
|
|
49415
|
+
newItem[23]=(Math.round(Math.random()*60))/100;
|
|
49416
|
+
|
|
49417
|
+
//名字字段
|
|
49418
|
+
var symbolEx={ Text:name };
|
|
49419
|
+
if (i%20==5)
|
|
49420
|
+
symbolEx.Symbol={ Family:'iconfont', Size:16, Data:[ { Text:'\ue629', Color:'rgb(255,165,0)'}, { Text:'\ue627', Color:'#1c65db'} ] };
|
|
49421
|
+
else if (i%20==9)
|
|
49422
|
+
symbolEx.Symbol={ Family:'iconfont', Size:16, Data:[ { Text:'\ue629', Color:'rgb(255,165,0)'}] } ;
|
|
49423
|
+
else if (i%20==18)
|
|
49424
|
+
symbolEx.Symbol={ Family:'iconfont', Size:16, Data:[ { Text:'\ue627', Color:'#1c65db'}] } ;
|
|
49425
|
+
|
|
49426
|
+
newItem[27]=symbolEx;
|
|
49427
|
+
|
|
49428
|
+
|
|
49429
|
+
//扩展数据 (定制数据)
|
|
49430
|
+
var extendData=[];
|
|
49431
|
+
newItem[30]=extendData;
|
|
49432
|
+
|
|
49433
|
+
//行业
|
|
49434
|
+
extendData[0]="行业X";
|
|
49435
|
+
//地区
|
|
49436
|
+
extendData[1]="地区X";
|
|
49437
|
+
|
|
49438
|
+
//PE|PB
|
|
49439
|
+
extendData[2]=(Math.round(Math.random()*60))/100;
|
|
49440
|
+
extendData[3]=(Math.round(Math.random()*60))/100;
|
|
49441
|
+
extendData[4]=(Math.round(Math.random()*60))/100;
|
|
49442
|
+
extendData[5]=(Math.round(Math.random()*60))/100;
|
|
49443
|
+
|
|
49444
|
+
|
|
49445
|
+
//周涨幅
|
|
49446
|
+
extendData[6]=(Math.round(Math.random()*60))/100;
|
|
49447
|
+
extendData[7]=(Math.round(Math.random()*60))/100;
|
|
49448
|
+
extendData[8]=(Math.round(Math.random()*60))/100;
|
|
49449
|
+
|
|
49450
|
+
|
|
49451
|
+
item.Data=newItem;
|
|
49452
|
+
}
|
|
49453
|
+
}
|
|
49454
|
+
|
|
49455
|
+
var hqchartData={ data:[], index:[], filedindex:column.index, sort:sortType, symbol:blockID };
|
|
49456
|
+
|
|
49457
|
+
for(var mapItem of mapStock)
|
|
49458
|
+
{
|
|
49459
|
+
var item=mapItem[1];
|
|
49460
|
+
if (!item.Data) continue;
|
|
49461
|
+
|
|
49462
|
+
hqchartData.data.push(item.Data);
|
|
49463
|
+
hqchartData.index.push(item.Index);
|
|
49464
|
+
}
|
|
49465
|
+
|
|
49466
|
+
callback(hqchartData);
|
|
49467
|
+
}
|
|
49468
|
+
|
|
49469
|
+
|
package/src/jscommon/umychart.js
CHANGED
|
@@ -61,13 +61,23 @@ function JSReportChart(divElement)
|
|
|
61
61
|
this.JSChartContainer=chart;
|
|
62
62
|
this.DivElement.JSChart=this; //div中保存一份
|
|
63
63
|
|
|
64
|
+
if (option.EnablePopMenuV2===true) chart.InitalPopMenu();
|
|
65
|
+
|
|
64
66
|
if (option.Symbol) chart.Symbol=option.Symbol;
|
|
65
67
|
if (option.Name) chart.Name=option.Name;
|
|
66
68
|
|
|
67
69
|
var requestOption={ Callback:null };
|
|
68
70
|
if (chart.Symbol) requestOption.Callback=function(){ chart.RequestMemberListData(); };
|
|
69
|
-
|
|
70
|
-
|
|
71
|
+
|
|
72
|
+
if (option.LoadStockList===false)
|
|
73
|
+
{
|
|
74
|
+
chart.ChartSplashPaint.IsEnableSplash=false;
|
|
75
|
+
chart.Draw();
|
|
76
|
+
}
|
|
77
|
+
else
|
|
78
|
+
{
|
|
79
|
+
chart.RequestStockListData(requestOption); //下载码表
|
|
80
|
+
}
|
|
71
81
|
}
|
|
72
82
|
|
|
73
83
|
this.CreateJSReportChartContainer=function(option)
|
|
@@ -335,6 +345,8 @@ function JSReportChartContainer(uielement)
|
|
|
335
345
|
|
|
336
346
|
this.IsDestroy=false; //是否已经销毁了
|
|
337
347
|
|
|
348
|
+
this.JSPopMenu; //内置菜单
|
|
349
|
+
|
|
338
350
|
this.ChartDestory=function() //销毁
|
|
339
351
|
{
|
|
340
352
|
this.IsDestroy=true;
|
|
@@ -352,6 +364,14 @@ function JSReportChartContainer(uielement)
|
|
|
352
364
|
}
|
|
353
365
|
}
|
|
354
366
|
|
|
367
|
+
this.InitalPopMenu=function() //初始化弹出窗口
|
|
368
|
+
{
|
|
369
|
+
if (this.JSPopMenu) return;
|
|
370
|
+
|
|
371
|
+
this.JSPopMenu=new JSPopMenu(); //内置菜单
|
|
372
|
+
this.JSPopMenu.Inital();
|
|
373
|
+
}
|
|
374
|
+
|
|
355
375
|
this.AutoScrollPage=function(step)
|
|
356
376
|
{
|
|
357
377
|
this.AutoDragScrollTimer=setTimeout(() =>
|
|
@@ -795,7 +815,7 @@ function JSReportChartContainer(uielement)
|
|
|
795
815
|
if (obj.PreventDefault==true) return; //已被上层替换,不调用默认的网络请求
|
|
796
816
|
}
|
|
797
817
|
|
|
798
|
-
throw { Name:'JSReportChartContainer::RequestMemberListData', Error:'(板块成分数据)不提供内置测试数据' };
|
|
818
|
+
//throw { Name:'JSReportChartContainer::RequestMemberListData', Error:'(板块成分数据)不提供内置测试数据' };
|
|
799
819
|
}
|
|
800
820
|
|
|
801
821
|
this.RecvMemberListData=function(recvData)
|
|
@@ -860,7 +880,7 @@ function JSReportChartContainer(uielement)
|
|
|
860
880
|
if (obj.PreventDefault==true) return; //已被上层替换,不调用默认的网络请求
|
|
861
881
|
}
|
|
862
882
|
|
|
863
|
-
throw { Name:'JSReportChartContainer::RequestStockListData', Error:'(码表数据)不提供内置测试数据' };
|
|
883
|
+
//throw { Name:'JSReportChartContainer::RequestStockListData', Error:'(码表数据)不提供内置测试数据' };
|
|
864
884
|
}
|
|
865
885
|
|
|
866
886
|
this.RecvStockListData=function(data, option)
|
|
@@ -1074,7 +1094,7 @@ function JSReportChartContainer(uielement)
|
|
|
1074
1094
|
if (obj.PreventDefault==true) return;
|
|
1075
1095
|
}
|
|
1076
1096
|
|
|
1077
|
-
throw { Name:'JSReportChartContainer::RequestStockData', Error:'(报价列表股票数据)不提供内置测试数据' };
|
|
1097
|
+
//throw { Name:'JSReportChartContainer::RequestStockData', Error:'(报价列表股票数据)不提供内置测试数据' };
|
|
1078
1098
|
}
|
|
1079
1099
|
|
|
1080
1100
|
this.RecvStockData=function(data)
|
|
@@ -2674,6 +2694,52 @@ function JSReportChartContainer(uielement)
|
|
|
2674
2694
|
}
|
|
2675
2695
|
}
|
|
2676
2696
|
|
|
2697
|
+
this.GetTabPopMenu=function(tabItem)
|
|
2698
|
+
{
|
|
2699
|
+
var aryMenu=[ ];
|
|
2700
|
+
|
|
2701
|
+
if (IFrameSplitOperator.IsNonEmptyArray(tabItem.ArySubMenu))
|
|
2702
|
+
{
|
|
2703
|
+
for(var i=0;i<tabItem.ArySubMenu.length;++i)
|
|
2704
|
+
{
|
|
2705
|
+
var item=tabItem.ArySubMenu[i];
|
|
2706
|
+
var menuItem={ Name:item.Title, Data:{ ID:item.CommandID, Args:[item.ID]} };
|
|
2707
|
+
|
|
2708
|
+
aryMenu.push(menuItem);
|
|
2709
|
+
}
|
|
2710
|
+
}
|
|
2711
|
+
|
|
2712
|
+
|
|
2713
|
+
return aryMenu;
|
|
2714
|
+
}
|
|
2715
|
+
|
|
2716
|
+
this.PopupTabMenu=function(menuData, tab, e)
|
|
2717
|
+
{
|
|
2718
|
+
if (!this.JSPopMenu) return;
|
|
2719
|
+
|
|
2720
|
+
var rtTab=tab.Rect;
|
|
2721
|
+
var pixelRatio=GetDevicePixelRatio();
|
|
2722
|
+
var rtCell={ Left:rtTab.Left/pixelRatio, Right:rtTab.Right/pixelRatio, Bottom:rtTab.Bottom/pixelRatio, Top:rtTab.Top/pixelRatio };
|
|
2723
|
+
rtCell.Width=rtCell.Right-rtCell.Left;
|
|
2724
|
+
rtCell.Height=rtCell.Bottom-rtCell.Top;
|
|
2725
|
+
|
|
2726
|
+
var rtClient=this.UIElement.getBoundingClientRect();
|
|
2727
|
+
var rtScroll=GetScrollPosition();
|
|
2728
|
+
|
|
2729
|
+
var offsetLeft=rtClient.left+rtScroll.Left;
|
|
2730
|
+
var offsetTop=rtClient.top+rtScroll.Top;
|
|
2731
|
+
rtCell.Left+=offsetLeft;
|
|
2732
|
+
rtCell.Right+=offsetLeft;
|
|
2733
|
+
rtCell.Top+=offsetTop;
|
|
2734
|
+
rtCell.Bottom+=offsetTop;
|
|
2735
|
+
|
|
2736
|
+
this.JSPopMenu.CreatePopMenu(menuData);
|
|
2737
|
+
this.JSPopMenu.PopupMenuByTab(rtCell);
|
|
2738
|
+
|
|
2739
|
+
if(e.preventDefault) e.preventDefault();
|
|
2740
|
+
if(e.stopPropagation) e.stopPropagation();
|
|
2741
|
+
}
|
|
2742
|
+
|
|
2677
2743
|
//点击标签
|
|
2678
2744
|
this.OnClickTab=function(tabData, e)
|
|
2679
2745
|
{
|
|
@@ -2687,36 +2753,80 @@ function JSReportChartContainer(uielement)
|
|
|
2687
2753
|
|
|
2688
2754
|
if (tabData.Tab.IsMenu)
|
|
2689
2755
|
{
|
|
2756
|
+
var menuData={ Menu:this.GetTabPopMenu(tabData.Tab), Position:JSPopMenu.POSITION_ID.TAB_MENU_ID };
|
|
2757
|
+
menuData.ClickCallback=(data)=>{ this.OnClickTabPopMenu(tabData, data); }
|
|
2758
|
+
|
|
2690
2759
|
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_REPORT_TABMENU);
|
|
2691
2760
|
if (event && event.Callback)
|
|
2692
2761
|
{
|
|
2693
|
-
|
|
2694
|
-
var rtItem=tabData.Rect;
|
|
2695
|
-
var rtDOM={ Left: rtItem.Left/pixelTatio, Right:rtItem.Right/pixelTatio, Top:rtItem.Top/pixelTatio, Bottom:rtItem.Bottom/pixelTatio };
|
|
2696
|
-
|
|
2697
|
-
var sendData={ Data:tabData, IsSide:{X:x, Y:x}, UIElement:uiElement, Rect:rtDOM, e:e , Redraw:redraw };
|
|
2762
|
+
var sendData={ MenuData:menuData, Tab:tabData, PreventDefault:false, e:e };
|
|
2698
2763
|
event.Callback(event, sendData, this);
|
|
2699
|
-
if (
|
|
2764
|
+
if (sendData.PreventDefault==true) return;
|
|
2700
2765
|
}
|
|
2701
2766
|
|
|
2702
|
-
this.
|
|
2767
|
+
this.PopupTabMenu(menuData, tabData.Tab, e);
|
|
2703
2768
|
}
|
|
2704
2769
|
else
|
|
2705
2770
|
{
|
|
2706
2771
|
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_REPORT_TAB);
|
|
2707
2772
|
if (event && event.Callback)
|
|
2708
2773
|
{
|
|
2709
|
-
var sendData={ Data:tabData, IsSide:{X:x, Y:x}, UIElement:uiElement, e:e , Redraw:redraw };
|
|
2774
|
+
var sendData={ Data:tabData, IsSide:{X:x, Y:x}, UIElement:uiElement, e:e , Redraw:redraw, PreventDefault:false };
|
|
2710
2775
|
event.Callback(event, sendData, this);
|
|
2711
2776
|
if (IFrameSplitOperator.IsBool(sendData.Redraw)) redraw=sendData.Redraw;
|
|
2777
|
+
if (sendData.PreventDefault==true) return;
|
|
2712
2778
|
}
|
|
2713
2779
|
|
|
2714
|
-
|
|
2780
|
+
if (tabData.Tab.CommandID==JSCHART_MENU_ID.CMD_REPORT_CHANGE_BLOCK_ID)
|
|
2781
|
+
{
|
|
2782
|
+
this.ExecuteMenuCommand(tabData.Tab.CommandID, [tabData.Tab.ID]);
|
|
2783
|
+
this.SetSelectedTab(tabData.Index);
|
|
2784
|
+
}
|
|
2715
2785
|
}
|
|
2716
2786
|
|
|
2717
2787
|
if (redraw) this.Draw();
|
|
2718
2788
|
}
|
|
2719
2789
|
|
|
2790
|
+
this.OnClickTabPopMenu=function(tabData, data)
|
|
2791
|
+
{
|
|
2792
|
+
JSConsole.Chart.Log('[JSReportChartContainer::OnClickTabPopMenu] ',tabData, data);
|
|
2793
|
+
|
|
2794
|
+
var cmdID=data.Data.ID; //命令ID
|
|
2795
|
+
var aryArgs=data.Data.Args; //参数
|
|
2796
|
+
|
|
2797
|
+
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_MENU_COMMAND); //回调通知外部
|
|
2798
|
+
if (event && event.Callback)
|
|
2799
|
+
{
|
|
2800
|
+
var data={ PreventDefault:false, CommandID:cmdID, Args:aryArgs, SrcData:data, TabData:tabData };
|
|
2801
|
+
event.Callback(event,data,this);
|
|
2802
|
+
if (data.PreventDefault) return;
|
|
2803
|
+
}
|
|
2804
|
+
|
|
2805
|
+
this.ExecuteMenuCommand(cmdID,aryArgs);
|
|
2806
|
+
|
|
2807
|
+
this.SetSelectedTab(tabData.Index);
|
|
2808
|
+
this.Draw();
|
|
2809
|
+
}
|
|
2810
|
+
|
|
2811
|
+
this.ExecuteMenuCommand=function(cmdID, aryArgs)
|
|
2812
|
+
{
|
|
2813
|
+
JSConsole.Chart.Log('[JSReportChartContainer::ExecuteMenuCommand] cmdID=, aryArgs=', cmdID,aryArgs);
|
|
2814
|
+
|
|
2815
|
+
var param=null, srcParam=null; //原始值
|
|
2816
|
+
if (IFrameSplitOperator.IsNonEmptyArray(aryArgs))
|
|
2817
|
+
{
|
|
2818
|
+
srcParam=aryArgs[0];
|
|
2819
|
+
if (IFrameSplitOperator.IsNumber(aryArgs[0])) param=aryArgs[0];
|
|
2820
|
+
}
|
|
2821
|
+
|
|
2822
|
+
switch(cmdID)
|
|
2823
|
+
{
|
|
2824
|
+
case JSCHART_MENU_ID.CMD_REPORT_CHANGE_BLOCK_ID:
|
|
2825
|
+
if (srcParam) this.ChangeSymbol(param);
|
|
2826
|
+
break;
|
|
2827
|
+
}
|
|
2828
|
+
}
|
|
2829
|
+
|
|
2720
2830
|
this.SwapColumn=function(leftIndex, rightIndex, option)
|
|
2721
2831
|
{
|
|
2722
2832
|
var reportChart=this.GetReportChart();
|
|
@@ -2995,7 +3105,7 @@ function JSReportChartContainer(uielement)
|
|
|
2995
3105
|
if (obj.PreventDefault==true) return;
|
|
2996
3106
|
}
|
|
2997
3107
|
|
|
2998
|
-
throw { Name:'JSReportChartContainer::RequestStockSortData', Error:'(报价列表股票排序数据)不提供内置测试数据' };
|
|
3108
|
+
//throw { Name:'JSReportChartContainer::RequestStockSortData', Error:'(报价列表股票排序数据)不提供内置测试数据' };
|
|
2999
3109
|
}
|
|
3000
3110
|
|
|
3001
3111
|
this.RecvStockSortData=function(data)
|
|
@@ -5792,7 +5902,7 @@ function ChartReportTab()
|
|
|
5792
5902
|
this.IsShow=true; //是否显示
|
|
5793
5903
|
|
|
5794
5904
|
//Tab
|
|
5795
|
-
this.TabList=[]; //{ Title:标题, ID:, IsMenu:
|
|
5905
|
+
this.TabList=[]; //{ Title:标题, ID:, IsMenu: 是否菜单, ArySubMenu:[ { Title:, ID: }] }
|
|
5796
5906
|
this.SelectedTabIndex=-1;
|
|
5797
5907
|
this.MoveOnTabIndex=-1;
|
|
5798
5908
|
|
|
@@ -5861,7 +5971,7 @@ function ChartReportTab()
|
|
|
5861
5971
|
|
|
5862
5972
|
var tabItem={ Title:item.Title, IsMenu:false, FixedSymbol:[], FixedRowCount:0 };
|
|
5863
5973
|
if (item.ID) tabItem.ID=item.ID;
|
|
5864
|
-
if (item.
|
|
5974
|
+
if (item.CommandID) tabItem.CommandID=item.CommandID;
|
|
5865
5975
|
if (IFrameSplitOperator.IsBool(item.IsMenu)) tabItem.IsMenu=item.IsMenu;
|
|
5866
5976
|
if (IFrameSplitOperator.IsNonEmptyArray(item.FixedSymbol))
|
|
5867
5977
|
{
|
|
@@ -5873,6 +5983,10 @@ function ChartReportTab()
|
|
|
5873
5983
|
++tabItem.FixedRowCount;
|
|
5874
5984
|
}
|
|
5875
5985
|
}
|
|
5986
|
+
|
|
5987
|
+
if (IFrameSplitOperator.IsNonEmptyArray(item.ArySubMenu))
|
|
5988
|
+
tabItem.ArySubMenu=item.ArySubMenu.slice();
|
|
5989
|
+
|
|
5876
5990
|
this.TabList.push(tabItem);
|
|
5877
5991
|
}
|
|
5878
5992
|
}
|