hqchart 1.1.15455 → 1.1.15474
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 +50 -34
- package/package.json +1 -1
- package/src/jscommon/umychart.DialogDrawTool.js +3 -0
- package/src/jscommon/umychart.PopKeyboard.js +28 -0
- package/src/jscommon/umychart.StatusBar.js +13 -4
- package/src/jscommon/umychart.StockInfo.js +185 -3
- package/src/jscommon/umychart.js +55 -61
- package/src/jscommon/umychart.report.js +9 -0
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +65 -62
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +294 -69
|
@@ -72,6 +72,7 @@ function JSStockInfoChart(divElement)
|
|
|
72
72
|
this.DivElement.JSChart=this; //div中保存一份
|
|
73
73
|
|
|
74
74
|
if (option.EnableResize==true) this.CreateResizeListener();
|
|
75
|
+
if (option.EnablePopMenuV2===true) chart.InitalPopMenu();
|
|
75
76
|
|
|
76
77
|
if (option.Symbol)
|
|
77
78
|
{
|
|
@@ -273,6 +274,8 @@ function JSStockInfoChartContainer(uielement)
|
|
|
273
274
|
this.AutoUpdateTimer=null;
|
|
274
275
|
this.AutoUpdateFrequency=15000; //15秒更新一次数据
|
|
275
276
|
|
|
277
|
+
this.JSPopMenu; //内置菜单
|
|
278
|
+
|
|
276
279
|
this.UIElement=uielement;
|
|
277
280
|
|
|
278
281
|
this.IsDestroy=false; //是否已经销毁了
|
|
@@ -281,6 +284,8 @@ function JSStockInfoChartContainer(uielement)
|
|
|
281
284
|
{
|
|
282
285
|
this.IsDestroy=true;
|
|
283
286
|
this.StopAutoUpdate();
|
|
287
|
+
|
|
288
|
+
this.DestroyPopMenu();
|
|
284
289
|
}
|
|
285
290
|
|
|
286
291
|
//设置事件回调
|
|
@@ -293,6 +298,37 @@ function JSStockInfoChartContainer(uielement)
|
|
|
293
298
|
this.mapEvent.set(object.event,data);
|
|
294
299
|
}
|
|
295
300
|
|
|
301
|
+
this.RemoveEventCallback=function(eventid)
|
|
302
|
+
{
|
|
303
|
+
if (!this.mapEvent.has(eventid)) return;
|
|
304
|
+
|
|
305
|
+
this.mapEvent.delete(eventid);
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
this.GetEventCallback=function(id) //获取事件回调
|
|
309
|
+
{
|
|
310
|
+
if (!this.mapEvent.has(id)) return null;
|
|
311
|
+
var item=this.mapEvent.get(id);
|
|
312
|
+
return item;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
this.InitalPopMenu=function() //初始化弹出窗口
|
|
316
|
+
{
|
|
317
|
+
if (this.JSPopMenu) return;
|
|
318
|
+
|
|
319
|
+
this.JSPopMenu=new JSPopMenu(); //内置菜单
|
|
320
|
+
this.JSPopMenu.Inital();
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
this.DestroyPopMenu=function()
|
|
324
|
+
{
|
|
325
|
+
if (!this.JSPopMenu) return;
|
|
326
|
+
|
|
327
|
+
this.JSPopMenu.Destroy();
|
|
328
|
+
this.JSPopMenu=null;
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
|
|
296
332
|
this.ClearData=function()
|
|
297
333
|
{
|
|
298
334
|
this.Data.Name=null;
|
|
@@ -334,14 +370,15 @@ function JSStockInfoChartContainer(uielement)
|
|
|
334
370
|
{
|
|
335
371
|
this.CancelAutoUpdate();
|
|
336
372
|
this.ClearData();
|
|
373
|
+
this.ChartClearMouseOnData();
|
|
337
374
|
this.Symbol=symbol;
|
|
338
375
|
this.Data.Symbol=symbol;
|
|
339
376
|
|
|
340
377
|
if (option)
|
|
341
378
|
{
|
|
342
|
-
if (IFrameSplitOperator.
|
|
379
|
+
if (IFrameSplitOperator.IsArray(option.Column)) this.SetColumn(option.Column);
|
|
343
380
|
if (IFrameSplitOperator.IsNumber(option.BuySellCount)) this.SetBuySellCount(option.BuySellCount);
|
|
344
|
-
if (IFrameSplitOperator.
|
|
381
|
+
if (IFrameSplitOperator.IsArray(option.MouseOnKey)) this.SetMouseOnKey(option.MouseOnKey);
|
|
345
382
|
}
|
|
346
383
|
|
|
347
384
|
this.Draw();
|
|
@@ -506,6 +543,20 @@ function JSStockInfoChartContainer(uielement)
|
|
|
506
543
|
this.ClickDownPoint={ X:e.clientX, Y:e.clientY };
|
|
507
544
|
var x = (e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;
|
|
508
545
|
var y = (e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;
|
|
546
|
+
|
|
547
|
+
if (e)
|
|
548
|
+
{
|
|
549
|
+
if (e.button==0) //左键点击
|
|
550
|
+
{
|
|
551
|
+
var ptClick={ X:this.ClickDownPoint.X, Y:this.ClickDownPoint.Y };
|
|
552
|
+
this.TryClickPaintEvent(JSCHART_EVENT_ID.ON_CLICK_STOCKINFO_ITEM, ptClick, e);
|
|
553
|
+
}
|
|
554
|
+
else if (e.button==2) //右键点击
|
|
555
|
+
{
|
|
556
|
+
var ptClick={ X:this.ClickDownPoint.X, Y:this.ClickDownPoint.Y };
|
|
557
|
+
this.TryClickPaintEvent(JSCHART_EVENT_ID.ON_RCLICK_STOCKINFO_ITEM, ptClick, e);
|
|
558
|
+
}
|
|
559
|
+
}
|
|
509
560
|
}
|
|
510
561
|
|
|
511
562
|
this.UIOnContextMenu=function(e)
|
|
@@ -516,6 +567,87 @@ function JSStockInfoChartContainer(uielement)
|
|
|
516
567
|
if (e.stopPropagation) e.stopPropagation();
|
|
517
568
|
e.returnValue=false;
|
|
518
569
|
}
|
|
570
|
+
|
|
571
|
+
var x = e.clientX-this.UIElement.getBoundingClientRect().left;
|
|
572
|
+
var y = e.clientY-this.UIElement.getBoundingClientRect().top;
|
|
573
|
+
|
|
574
|
+
this.OnRightMenu(x, y, e);
|
|
575
|
+
}
|
|
576
|
+
|
|
577
|
+
this.OnRightMenu=function(x,y,e)
|
|
578
|
+
{
|
|
579
|
+
if (!this.JSPopMenu) return;
|
|
580
|
+
|
|
581
|
+
var pixelTatio = GetDevicePixelRatio();
|
|
582
|
+
var toolTip=new TooltipData();
|
|
583
|
+
var data=null;
|
|
584
|
+
for(var i=0;i<this.ChartPaint.length;++i)
|
|
585
|
+
{
|
|
586
|
+
var item=this.ChartPaint[i];
|
|
587
|
+
if (item.GetTooltipData(x*pixelTatio,y*pixelTatio,toolTip))
|
|
588
|
+
{
|
|
589
|
+
if (toolTip.Data)
|
|
590
|
+
{
|
|
591
|
+
data= { Cell:toolTip.Data};
|
|
592
|
+
break;
|
|
593
|
+
}
|
|
594
|
+
}
|
|
595
|
+
}
|
|
596
|
+
|
|
597
|
+
if (!data) return;
|
|
598
|
+
|
|
599
|
+
data.e=e;
|
|
600
|
+
var menuData={ Menu:null, Position:JSPopMenu.POSITION_ID.RIGHT_MENU_ID };
|
|
601
|
+
menuData.ClickCallback=(data)=>{ this.OnClickRightMenu(data); }
|
|
602
|
+
|
|
603
|
+
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CREATE_RIGHT_MENU);
|
|
604
|
+
if (event && event.Callback)
|
|
605
|
+
{
|
|
606
|
+
var sendData={ MenuData:menuData, Data:data };
|
|
607
|
+
event.Callback(event, sendData, this);
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
if (menuData.Menu) this.PopupMenuByRClick(menuData, x, y);
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
//右键菜单
|
|
614
|
+
this.PopupMenuByRClick=function(menuData, x, y)
|
|
615
|
+
{
|
|
616
|
+
if (!this.JSPopMenu) return;
|
|
617
|
+
|
|
618
|
+
var rtClient=this.UIElement.getBoundingClientRect();
|
|
619
|
+
var rtScroll=GetScrollPosition();
|
|
620
|
+
|
|
621
|
+
x+=rtClient.left+rtScroll.Left;
|
|
622
|
+
y+=rtClient.top+rtScroll.Top;
|
|
623
|
+
|
|
624
|
+
this.JSPopMenu.CreatePopMenu(menuData);
|
|
625
|
+
this.JSPopMenu.PopupMenuByRight(x,y);
|
|
626
|
+
}
|
|
627
|
+
|
|
628
|
+
//点击右键菜单
|
|
629
|
+
this.OnClickRightMenu=function(data)
|
|
630
|
+
{
|
|
631
|
+
JSConsole.Chart.Log('[JSStockInfoChartContainer::OnClickRightMenu] ',data);
|
|
632
|
+
if (!data || !data.Data) return;
|
|
633
|
+
|
|
634
|
+
var cmdID=data.Data.ID; //命令ID
|
|
635
|
+
var aryArgs=data.Data.Args; //参数
|
|
636
|
+
|
|
637
|
+
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_MENU_COMMAND); //回调通知外部
|
|
638
|
+
if (event && event.Callback)
|
|
639
|
+
{
|
|
640
|
+
var data={ PreventDefault:false, CommandID:cmdID, Args:aryArgs, SrcData:data };
|
|
641
|
+
event.Callback(event,data,this);
|
|
642
|
+
if (data.PreventDefault) return;
|
|
643
|
+
}
|
|
644
|
+
|
|
645
|
+
this.ExecuteMenuCommand(cmdID, aryArgs);
|
|
646
|
+
}
|
|
647
|
+
|
|
648
|
+
this.ExecuteMenuCommand=function(cmdID, aryArgs)
|
|
649
|
+
{
|
|
650
|
+
|
|
519
651
|
}
|
|
520
652
|
|
|
521
653
|
this.UIOnMouseMove=function(e)
|
|
@@ -545,6 +677,36 @@ function JSStockInfoChartContainer(uielement)
|
|
|
545
677
|
return false;
|
|
546
678
|
}
|
|
547
679
|
|
|
680
|
+
this.TryClickPaintEvent=function(eventID, ptClick, e)
|
|
681
|
+
{
|
|
682
|
+
var event=this.GetEventCallback(eventID);
|
|
683
|
+
if (!event) return false;
|
|
684
|
+
|
|
685
|
+
if (ptClick.X==e.clientX && ptClick.Y==e.clientY)
|
|
686
|
+
{
|
|
687
|
+
var pixelTatio = GetDevicePixelRatio();
|
|
688
|
+
var x = (e.clientX-uielement.getBoundingClientRect().left)*pixelTatio;
|
|
689
|
+
var y = (e.clientY-uielement.getBoundingClientRect().top)*pixelTatio;
|
|
690
|
+
|
|
691
|
+
var toolTip=new TooltipData();
|
|
692
|
+
for(var i=0;i<this.ChartPaint.length;++i)
|
|
693
|
+
{
|
|
694
|
+
var item=this.ChartPaint[i];
|
|
695
|
+
if (item.GetTooltipData(x,y,toolTip))
|
|
696
|
+
{
|
|
697
|
+
if (toolTip.Data)
|
|
698
|
+
{
|
|
699
|
+
var data= { X:e.clientX, Y:e.clientY, Tooltip:toolTip };
|
|
700
|
+
event.Callback(event, data, this);
|
|
701
|
+
return true;
|
|
702
|
+
}
|
|
703
|
+
}
|
|
704
|
+
}
|
|
705
|
+
}
|
|
706
|
+
|
|
707
|
+
return false;
|
|
708
|
+
}
|
|
709
|
+
|
|
548
710
|
this.UIOnMouseleave=function(e)
|
|
549
711
|
{
|
|
550
712
|
var option={ Update:false }
|
|
@@ -830,7 +992,7 @@ function ChartStockData()
|
|
|
830
992
|
|
|
831
993
|
this.ClearMouseOnData=function(option)
|
|
832
994
|
{
|
|
833
|
-
if (
|
|
995
|
+
if (this.MouseOnItem)
|
|
834
996
|
{
|
|
835
997
|
this.MouseOnItem=null;
|
|
836
998
|
if (option) option.Update=true; //需要更新
|
|
@@ -909,6 +1071,26 @@ function ChartStockData()
|
|
|
909
1071
|
return false;
|
|
910
1072
|
}
|
|
911
1073
|
|
|
1074
|
+
this.GetTooltipData=function(x,y,tooltip)
|
|
1075
|
+
{
|
|
1076
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.AryCellRect)) return false;
|
|
1077
|
+
|
|
1078
|
+
for(var i=0;i<this.AryCellRect.length;++i)
|
|
1079
|
+
{
|
|
1080
|
+
var item=this.AryCellRect[i];
|
|
1081
|
+
var rect=item.Rect;
|
|
1082
|
+
if (Path2DHelper.PtInRect(x,y, rect))
|
|
1083
|
+
{
|
|
1084
|
+
tooltip.Data=item;
|
|
1085
|
+
tooltip.ChartPaint=this;
|
|
1086
|
+
tooltip.Type=151;
|
|
1087
|
+
return true;
|
|
1088
|
+
}
|
|
1089
|
+
}
|
|
1090
|
+
|
|
1091
|
+
return false;
|
|
1092
|
+
}
|
|
1093
|
+
|
|
912
1094
|
this.Draw=function()
|
|
913
1095
|
{
|
|
914
1096
|
this.AryCellRect=[];
|
package/src/jscommon/umychart.js
CHANGED
|
@@ -2700,6 +2700,15 @@ JSChart.GetShortSymbol=function(symbol)
|
|
|
2700
2700
|
return symbol.slice(0,pos);
|
|
2701
2701
|
}
|
|
2702
2702
|
|
|
2703
|
+
JSChart.CancelEvent=function(e)
|
|
2704
|
+
{
|
|
2705
|
+
if (!e) return;
|
|
2706
|
+
|
|
2707
|
+
if (e.preventDefault) e.preventDefault();
|
|
2708
|
+
if (e.stopPropagation) e.stopPropagation();
|
|
2709
|
+
e.returnValue=false;
|
|
2710
|
+
}
|
|
2711
|
+
|
|
2703
2712
|
|
|
2704
2713
|
var JSCHART_EVENT_ID=
|
|
2705
2714
|
{
|
|
@@ -2788,9 +2797,6 @@ var JSCHART_EVENT_ID=
|
|
|
2788
2797
|
ON_DRAG_SUB_SELECT_RECT:66, //拖拽区间选择子区域
|
|
2789
2798
|
ON_DRAG_SUB_SELECT_RECT_MOUSEUP:67, //拖拽区间选择子区域鼠标松开
|
|
2790
2799
|
|
|
2791
|
-
ON_KEYBOARD_SELECTED:68, //键盘精灵选中回车
|
|
2792
|
-
ON_KEYBOARD_MOUSEUP:69,
|
|
2793
|
-
|
|
2794
2800
|
ON_CLICK_DRAWPICTURE_BUTTON:70, //画图工具按钮
|
|
2795
2801
|
ON_FINISH_MOVE_DRAWPICTURE:71, //画图工具移动完成
|
|
2796
2802
|
|
|
@@ -2936,6 +2942,15 @@ var JSCHART_EVENT_ID=
|
|
|
2936
2942
|
|
|
2937
2943
|
//工具条
|
|
2938
2944
|
ON_CLICK_STATUSBAR_ITEM:301,
|
|
2945
|
+
ON_RCLICK_STATUSBAR_ITEM:302,
|
|
2946
|
+
|
|
2947
|
+
//5档买卖
|
|
2948
|
+
ON_CLICK_STOCKINFO_ITEM:350,
|
|
2949
|
+
ON_RCLICK_STOCKINFO_ITEM:351,
|
|
2950
|
+
|
|
2951
|
+
ON_KEYBOARD_SHOW:350, //显示键盘精灵
|
|
2952
|
+
ON_KEYBOARD_SELECTED:351, //键盘精灵选中回车
|
|
2953
|
+
ON_KEYBOARD_MOUSEUP:352,
|
|
2939
2954
|
}
|
|
2940
2955
|
|
|
2941
2956
|
var JSCHART_OPERATOR_ID=
|
|
@@ -27378,6 +27393,7 @@ function IChartPainting()
|
|
|
27378
27393
|
if (!this.IsShow || this.ChartFrame.IsMinSize) return;
|
|
27379
27394
|
var bHScreen=(this.ChartFrame.IsHScreen===true);
|
|
27380
27395
|
if (bHScreen) return;
|
|
27396
|
+
if (!this.Data) return;
|
|
27381
27397
|
|
|
27382
27398
|
var isMinute=this.IsMinuteFrame();
|
|
27383
27399
|
var dataWidth=this.ChartFrame.DataWidth;
|
|
@@ -27518,6 +27534,7 @@ function IChartPainting()
|
|
|
27518
27534
|
if (!this.IsShow || this.ChartFrame.IsMinSize) return null;
|
|
27519
27535
|
var bHScreen=(this.ChartFrame.IsHScreen===true);
|
|
27520
27536
|
if (bHScreen) return null;
|
|
27537
|
+
if (!this.Data) return null;
|
|
27521
27538
|
|
|
27522
27539
|
var dataWidth=this.ChartFrame.DataWidth;
|
|
27523
27540
|
var distanceWidth=this.ChartFrame.DistanceWidth;
|
|
@@ -103055,6 +103072,24 @@ var MARKET_SUFFIX_NAME=
|
|
|
103055
103072
|
return false;
|
|
103056
103073
|
},
|
|
103057
103074
|
|
|
103075
|
+
//是否包含前缀
|
|
103076
|
+
IsPrefixIncludes:function(symbol, aryPrefix)
|
|
103077
|
+
{
|
|
103078
|
+
if (!symbol) return false;
|
|
103079
|
+
var shortSymbol=this.GetShortSymbol(symbol);
|
|
103080
|
+
if (!shortSymbol) return false;
|
|
103081
|
+
shortSymbol=shortSymbol.toUpperCase();
|
|
103082
|
+
|
|
103083
|
+
for(var i=0;i<aryPrefix.length;++i)
|
|
103084
|
+
{
|
|
103085
|
+
var strValue=aryPrefix[i];
|
|
103086
|
+
if (!strValue) continue;
|
|
103087
|
+
if (shortSymbol.search(strValue)===0) return true;
|
|
103088
|
+
}
|
|
103089
|
+
|
|
103090
|
+
return false;
|
|
103091
|
+
},
|
|
103092
|
+
|
|
103058
103093
|
IsChinaFutures:function(upperSymbol) //是否是国内期货 /期权
|
|
103059
103094
|
{
|
|
103060
103095
|
if (!upperSymbol) return false;
|
|
@@ -103169,15 +103204,26 @@ var MARKET_SUFFIX_NAME=
|
|
|
103169
103204
|
return false;
|
|
103170
103205
|
},
|
|
103171
103206
|
|
|
103207
|
+
//北交所股票代码全面启用“920”开头的六位数编码规则(如 920XXX),已于 2025 年 10 月 9 日完成存量与增量股票的统一切换,标志着其与新三板代码的脱钩。
|
|
103208
|
+
// 新代码通常将原 43、83、87 开头的旧代码前三位变更为 920,后三位保持不变
|
|
103172
103209
|
IsBJStock:function(symbol) //北交所股票
|
|
103173
103210
|
{
|
|
103174
103211
|
if (!symbol) return false;
|
|
103175
103212
|
var upperSymbol=symbol.toUpperCase();
|
|
103176
103213
|
if (!this.IsBJ(upperSymbol)) return false;
|
|
103177
103214
|
|
|
103178
|
-
|
|
103215
|
+
if (upperSymbol.charAt(0)=='9' && upperSymbol.charAt(1)=='2' && upperSymbol.charAt(2)=='0') return true;
|
|
103216
|
+
|
|
103217
|
+
return false;
|
|
103218
|
+
},
|
|
103219
|
+
|
|
103220
|
+
IsBJIndex:function(symbol) //北交所指数 北交所指数代码通常以“899”开头,采用6位数字序列
|
|
103221
|
+
{
|
|
103222
|
+
if (!symbol) return false;
|
|
103223
|
+
var upperSymbol=symbol.toUpperCase();
|
|
103224
|
+
if (!this.IsBJ(upperSymbol)) return false;
|
|
103179
103225
|
|
|
103180
|
-
if (
|
|
103226
|
+
if (upperSymbol.charAt(0)=='8' && upperSymbol.charAt(1)=='9' && upperSymbol.charAt(2)=='9') return true;
|
|
103181
103227
|
|
|
103182
103228
|
return false;
|
|
103183
103229
|
},
|
|
@@ -103193,11 +103239,11 @@ var MARKET_SUFFIX_NAME=
|
|
|
103193
103239
|
return false;
|
|
103194
103240
|
},
|
|
103195
103241
|
|
|
103196
|
-
|
|
103242
|
+
IsSZGEM:function(symbol) //创业板(growth enterprise market) 30开头
|
|
103197
103243
|
{
|
|
103198
103244
|
if (!symbol) return false;
|
|
103199
103245
|
var upperSymbol=symbol.toUpperCase();
|
|
103200
|
-
if (!this.
|
|
103246
|
+
if (!this.IsSZ(upperSymbol)) return false;
|
|
103201
103247
|
if (upperSymbol.charAt(0)=='3' && upperSymbol.charAt(1)=='0')
|
|
103202
103248
|
return true;
|
|
103203
103249
|
|
|
@@ -103341,7 +103387,7 @@ var MARKET_SUFFIX_NAME=
|
|
|
103341
103387
|
{
|
|
103342
103388
|
if (!this.IsSHSZStockA(symbol)) return null;
|
|
103343
103389
|
if (this.IsSHStockSTAR(symbol)) return {Max:0.2 , Min:-0.2}; //科创板 [20% - -20%]
|
|
103344
|
-
if (this.
|
|
103390
|
+
if (this.IsSZGEM(symbol)) return { Max:0.2 , Min:-0.2}; //创业板 [20% - -20%]
|
|
103345
103391
|
|
|
103346
103392
|
if (!name) return null;
|
|
103347
103393
|
if (name.indexOf('ST')>=0) return { Max:0.05, Min:-0.05 }; //ST 股票 [5% - -5%]
|
|
@@ -105258,6 +105304,7 @@ function FuturesTimeData()
|
|
|
105258
105304
|
[MARKET_SUFFIX_NAME.SHFE + '-AO', {Time:4,Decimal:0,Name:'氧化铝'}],
|
|
105259
105305
|
[MARKET_SUFFIX_NAME.SHFE + '-BR', {Time:6,Decimal:0,Name:'合成橡胶'}],
|
|
105260
105306
|
[MARKET_SUFFIX_NAME.SHFE + '-AD', {Time:4,Decimal:0,Name:"铝合金"}],
|
|
105307
|
+
[MARKET_SUFFIX_NAME.SHFE + '-OP', {Time:6,Decimal:0,Name:"胶版印刷纸"}],
|
|
105261
105308
|
|
|
105262
105309
|
//上期所-能源
|
|
105263
105310
|
[MARKET_SUFFIX_NAME.SHFE + '-NR', {Time:6,Decimal:1,Name:'20号胶'}],
|
|
@@ -106819,59 +106866,6 @@ function GetfloatPrecision(symbol) //获取小数位数
|
|
|
106819
106866
|
return defaultfloatPrecision;
|
|
106820
106867
|
}
|
|
106821
106868
|
|
|
106822
|
-
//把不连续的分时数据转成连续的分时数据
|
|
106823
|
-
function GenerateMinuteStockJsonData(data)
|
|
106824
|
-
{
|
|
106825
|
-
var stock =
|
|
106826
|
-
{
|
|
106827
|
-
symbol:data.symbol, name:data.name,time:data.time, date:data.date,
|
|
106828
|
-
price:data.price, open:data.open, yclose:data.yclose, high:data.high, low:data.low, vol:data.vol,amount:data.amount,
|
|
106829
|
-
minute:[]
|
|
106830
|
-
};
|
|
106831
|
-
|
|
106832
|
-
var mapMinute=new Map();
|
|
106833
|
-
for(var i in data.minute)
|
|
106834
|
-
{
|
|
106835
|
-
var item=data.minute[i];
|
|
106836
|
-
mapMinute.set(item.time,item);
|
|
106837
|
-
}
|
|
106838
|
-
|
|
106839
|
-
var timeData=g_MinuteTimeStringData.GetTimeData(stock.symbol);
|
|
106840
|
-
for(var i in timeData) //根据交易时间产生数据
|
|
106841
|
-
{
|
|
106842
|
-
var time=timeData[i];
|
|
106843
|
-
var minuteItem={ time:time, vaild:false };
|
|
106844
|
-
if (mapMinute.has(time))
|
|
106845
|
-
{
|
|
106846
|
-
var find=mapMinute.get(time);
|
|
106847
|
-
minuteItem.vaild=true;
|
|
106848
|
-
minuteItem.price=find.price;
|
|
106849
|
-
minuteItem.open=find.open;
|
|
106850
|
-
minuteItem.high=find.high;
|
|
106851
|
-
minuteItem.low=find.low;
|
|
106852
|
-
minuteItem.avprice=find.avprice;
|
|
106853
|
-
minuteItem.vol=find.vol;
|
|
106854
|
-
minuteItem.amount=find.amount;
|
|
106855
|
-
if (IFrameSplitOperator.IsNumber(find.increase)) minuteItem.increase=find.increase;
|
|
106856
|
-
if (IFrameSplitOperator.IsNumber(find.risefall)) minuteItem.risefall=find.risefall;
|
|
106857
|
-
if (IFrameSplitOperator.IsNumber(find.position)) minuteItem.position=find.position;
|
|
106858
|
-
}
|
|
106859
|
-
stock.minute.push(minuteItem);
|
|
106860
|
-
}
|
|
106861
|
-
|
|
106862
|
-
var vaildCount=0;
|
|
106863
|
-
for(var i=stock.minute.length-1;i>=0;--i)
|
|
106864
|
-
{
|
|
106865
|
-
vaildCount=i+1;
|
|
106866
|
-
var item=stock.minute[i];
|
|
106867
|
-
if (item.vaild==true) break;
|
|
106868
|
-
}
|
|
106869
|
-
|
|
106870
|
-
stock.minute=stock.minute.slice(0,vaildCount); //去掉最后无用的数据
|
|
106871
|
-
|
|
106872
|
-
return stock;
|
|
106873
|
-
}
|
|
106874
|
-
|
|
106875
106869
|
function GetLocalTime(i) //得到标准时区的时间的函数
|
|
106876
106870
|
{
|
|
106877
106871
|
if (typeof i !== 'number') return;
|
|
@@ -535,6 +535,7 @@ function JSReportChartContainer(uielement)
|
|
|
535
535
|
this.DestroyMinuteChartTooltip();
|
|
536
536
|
this.DestroyKLineChartTooltip();
|
|
537
537
|
this.DestroyFloatTooltip();
|
|
538
|
+
this.DestroyPopMenu();
|
|
538
539
|
}
|
|
539
540
|
|
|
540
541
|
this.StopAutoDragScrollTimer=function()
|
|
@@ -556,6 +557,14 @@ function JSReportChartContainer(uielement)
|
|
|
556
557
|
this.JSPopMenu.Inital();
|
|
557
558
|
}
|
|
558
559
|
|
|
560
|
+
this.DestroyPopMenu=function()
|
|
561
|
+
{
|
|
562
|
+
if (!this.JSPopMenu) return;
|
|
563
|
+
|
|
564
|
+
this.JSPopMenu.Destroy();
|
|
565
|
+
this.JSPopMenu=null;
|
|
566
|
+
}
|
|
567
|
+
|
|
559
568
|
this.InitalMinuteChartTooltip=function(option)
|
|
560
569
|
{
|
|
561
570
|
if (this.TooltipMinuteChart) return;
|