hqchart 1.1.14593 → 1.1.14604

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.
@@ -4413,6 +4413,8 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4413
4413
  {
4414
4414
  var item=option.EnableXDrag;
4415
4415
  if (IFrameSplitOperator.IsBool(item.Bottom)) chart.EnableXDrag.Bottom=item.Bottom;
4416
+ if (item.LButton && IFrameSplitOperator.IsNumber(item.LButton.Type)) chart.EnableXDrag.LButton.Type=item.LButton.Type;
4417
+ if (item.RButton && IFrameSplitOperator.IsNumber(item.RButton.Type)) chart.EnableXDrag.RButton.Type=item.RButton.Type;
4416
4418
  }
4417
4419
 
4418
4420
  if (option.KLineTooltip)
@@ -4971,6 +4973,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4971
4973
  if (IFrameSplitOperator.IsBool(option.EnableIndexChartDrag)) chart.EnableIndexChartDrag=option.EnableIndexChartDrag;
4972
4974
  if (IFrameSplitOperator.IsBool(option.EnableVerifyRecvData)) chart.EnableVerifyRecvData=option.EnableVerifyRecvData;
4973
4975
  if (IFrameSplitOperator.IsBool(option.EnableNightDayBG)) chart.EnableNightDayBG=option.EnableNightDayBG;
4976
+ if (IFrameSplitOperator.IsNumber(option.MaxDayCount)) chart.MaxDayCount=option.MaxDayCount;
4974
4977
 
4975
4978
  //老版本开启左键区间选择
4976
4979
  if (IFrameSplitOperator.IsBool(option.EnableSelectRect))
@@ -6604,6 +6607,17 @@ JSChart.GetfloatPrecision=function(symbol)
6604
6607
  return GetfloatPrecision(symbol);
6605
6608
  }
6606
6609
 
6610
+ //获取不带后缀的代码
6611
+ JSChart.GetShortSymbol=function(symbol)
6612
+ {
6613
+ if (IFrameSplitOperator.IsString(symbol)) return null;
6614
+ var pos=symbol.lastIndexOf(".");
6615
+ if (pos<=0) return symbol;
6616
+
6617
+ return symbol.slice(0,pos);
6618
+ }
6619
+
6620
+
6607
6621
  var JSCHART_EVENT_ID=
6608
6622
  {
6609
6623
  //RECV_KLINE_MATCH:1, //接收到形态匹配
@@ -7202,7 +7216,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
7202
7216
  Wheel:false, WheelYMove:5 //是否可以滚轴缩放Y轴最大最小值
7203
7217
  };
7204
7218
 
7205
- this.EnableXDrag={ Bottom:true }; //X轴拖动缩放
7219
+ this.EnableXDrag={ Bottom:true, LButton:{ Type:1 }, RButton:{ Type:2 } }; //X轴拖动缩放 Type: 1=拖动K线 2=缩放K线
7206
7220
 
7207
7221
  this.EnableZoomIndexWindow=false; //是否支持双击缩放附图窗口
7208
7222
  this.EnableVerifyRecvData=false; //是否检测接收到的数据
@@ -7769,7 +7783,11 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
7769
7783
 
7770
7784
  if (this.ChartSplashPaint && this.ChartSplashPaint.IsEnableSplash == true) return;
7771
7785
  if (!this.IsShowRightMenu) return;
7772
- if (this.PreventRightMenu.Enable) return;
7786
+ if (this.PreventRightMenu.Enable)
7787
+ {
7788
+ this.PreventRightMenu.Enable=false; //生效一次就可以
7789
+ return;
7790
+ }
7773
7791
 
7774
7792
  var x = e.clientX-this.UIElement.getBoundingClientRect().left;
7775
7793
  var y = e.clientY-this.UIElement.getBoundingClientRect().top;
@@ -8432,7 +8450,12 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8432
8450
  }
8433
8451
  else if (drag.Click && drag.Click.IsInFrameBottom)
8434
8452
  {
8435
- this.OnDragXCoordinateZoom(drag, {X:moveSetp, Y:moveSetpY}, e);
8453
+ var dragType=this.GetDragXCoordinateType(e,"DocOnMouseMove");
8454
+
8455
+ if (dragType==2)
8456
+ this.OnDragXCoordinateZoom(drag, {X:moveSetp, Y:moveSetpY}, e);
8457
+ else if (dragType==1)
8458
+ this.OnDragXCoordinateKLine(drag, {X:moveSetp, Y:moveSetpY}, e);
8436
8459
  }
8437
8460
  else if ((bLButtonSelectRect || bRButtonSelectRect) && !isDragSelectRect && !isDragSubSelectRect && !bShfitDragKLine) //左右键区间选择
8438
8461
  {
@@ -8455,6 +8478,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8455
8478
  }
8456
8479
  }
8457
8480
 
8481
+ //X轴坐标拖动 缩放K线
8458
8482
  this.OnDragXCoordinateZoom=function(drag, moveData, e)
8459
8483
  {
8460
8484
  var moveSetp=moveData.X;
@@ -8487,6 +8511,56 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8487
8511
  this.SetCursor({Cursor:cursorStatus});
8488
8512
  }
8489
8513
 
8514
+ //X轴坐标拖动 拖动K线
8515
+ this.OnDragXCoordinateKLine=function(drag, moveData, e)
8516
+ {
8517
+ var moveSetpX=moveData.X;
8518
+ var moveSetpY=moveData.Y;
8519
+
8520
+ if (moveSetpX<5) return false;
8521
+
8522
+ var isLeft=true;
8523
+ if (drag.LastMove.X<e.clientX) isLeft=false; //右移数据
8524
+
8525
+ var cursorStatus="pointer";
8526
+ var oneStepWidth=this.GetMoveOneStepWidth();
8527
+ if (moveSetpX<oneStepWidth)
8528
+ {
8529
+ this.SetCursor({Cursor:cursorStatus});
8530
+ return false;
8531
+ }
8532
+
8533
+ var bNeedDraw=false;
8534
+ if(this.DataMove(moveSetpX,isLeft))
8535
+ {
8536
+ this.UpdataDataoffset();
8537
+ //this.UpdatePointByCursorIndex(); //推拽数据的时候不需要把鼠标位置更新到K线上
8538
+ this.UpdateFrameMaxMin();
8539
+ this.ResetFrameXYSplit();
8540
+ bNeedDraw=true;
8541
+ }
8542
+ else
8543
+ {
8544
+ if (this.DragDownloadData)
8545
+ {
8546
+ this.DragDownloadData();
8547
+ if (this.ChartSplashPaint && this.ChartSplashPaint.IsEnableSplash) return true;
8548
+ }
8549
+ }
8550
+
8551
+ drag.LastMove.X=e.clientX;
8552
+ this.SetCursor({Cursor:cursorStatus});
8553
+
8554
+ if (bNeedDraw)
8555
+ {
8556
+ this.Draw();
8557
+ this.OnKLinePageChange("datamove");
8558
+ }
8559
+
8560
+ return true;
8561
+ }
8562
+
8563
+
8490
8564
  this.OnDragMode_One=function(moveData, e)
8491
8565
  {
8492
8566
  var moveSetp=moveData.X;
@@ -8590,6 +8664,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8590
8664
  }
8591
8665
  }
8592
8666
 
8667
+
8593
8668
  this.GetXDataIndex=function(obj)
8594
8669
  {
8595
8670
  if (!this.ChartPaint[0] || !this.ChartPaint[0].Data) return false;
@@ -8689,6 +8764,10 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8689
8764
  {
8690
8765
  if (this.OnMinuteSelectRectMouseUp) this.OnMinuteSelectRectMouseUp(e); //分时图区间选择
8691
8766
  }
8767
+ else if (this.MouseDrag && this.MouseDrag.Click && this.MouseDrag.Click.IsInFrameBottom)
8768
+ {
8769
+ if (e && e.button===2 && this.EnableXDrag.RButton.Type>=1) this.PreventRightMenu.Enable=true;
8770
+ }
8692
8771
  else if ((bLButtonSelectRect || bRButtonSelectRect) && !bShfitDragKLine) //K线图区间选择
8693
8772
  {
8694
8773
  var drag=this.MouseDrag;
@@ -11020,7 +11099,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
11020
11099
  //X轴拖动缩放
11021
11100
  if (this.ClassName=="KLineChartContainer" && this.EnableXDrag.Bottom && this.Frame.PtInFrameBottom(x,y))
11022
11101
  {
11023
- mouseStatus={ Cursor:"ew-resize", Name:"FrameButtom"};
11102
+ //var dragType=this.GetDragXCoordinateType(e,"OnMouseMove");
11103
+ //mouseStatus={ Cursor:"pointer", Name:"FrameButtom"};
11024
11104
  JSConsole.Chart.Log("[JSChartContainer::OnMouseMove] frame bottom ");
11025
11105
  }
11026
11106
 
@@ -14565,7 +14645,12 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
14565
14645
  if (this.ClearKLineInfo) this.ClearKLineInfo();
14566
14646
  break;
14567
14647
  case JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID:
14568
- if (param!=null) this.DragMode=param;
14648
+ if (param!=null)
14649
+ {
14650
+ this.DragMode=param;
14651
+ if (this.DragMode==1 && IFrameSplitOperator.IsBool(aryArgs[1])) //shift+左键拖动
14652
+ this.KLineDragConfig.EnableShfit=aryArgs[1];
14653
+ }
14569
14654
  break;
14570
14655
  case JSCHART_MENU_ID.CMD_CHANGE_BG_SPLIT_ID:
14571
14656
  if (IFrameSplitOperator.IsBool(srcParam))
@@ -14819,6 +14904,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
14819
14904
  break;
14820
14905
  case JSCHART_MENU_ID.CMD_ENABLE_XDRAG_BOTTOM_ID:
14821
14906
  if (IFrameSplitOperator.IsBool(srcParam)) this.EnableXDrag.Bottom=srcParam;
14907
+ if (IFrameSplitOperator.IsNonEmptyArray(aryArgs) && IFrameSplitOperator.IsNumber(aryArgs[1])) this.EnableXDrag.LButton.Type=aryArgs[1];
14908
+ if (IFrameSplitOperator.IsNonEmptyArray(aryArgs) && IFrameSplitOperator.IsNumber(aryArgs[2])) this.EnableXDrag.RButton.Type=aryArgs[2];
14822
14909
  break;
14823
14910
  case JSCHART_MENU_ID.CMD_FULLSCREEN_SUMMARY_ID:
14824
14911
  this.FullScreenSummary();
@@ -15270,6 +15357,17 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
15270
15357
  return true;
15271
15358
  }
15272
15359
 
15360
+ this.GetDragXCoordinateType=function(event, funcName)
15361
+ {
15362
+ if (funcName=="DocOnMouseMove")
15363
+ {
15364
+ if (event.buttons==1) return this.EnableXDrag.LButton.Type; //左键
15365
+ else if (event.buttons==2) return this.EnableXDrag.RButton.Type;//右键
15366
+ }
15367
+
15368
+ return null;
15369
+ }
15370
+
15273
15371
  this.OnMarkRectSelect=function(e)
15274
15372
  {
15275
15373
  var corssCursor=this.ChartCorssCursor; //十字光标
@@ -86843,10 +86941,6 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
86843
86941
  Name:"其他设置",
86844
86942
  SubMenu:
86845
86943
  [
86846
-
86847
- { Name:"禁止拖拽", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID, Args:[0]}, Checked:0==this.DragMode },
86848
- { Name:"启动拖拽", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID, Args:[1]}, Checked:1==this.DragMode },
86849
- { Name:"X轴拖动缩放", Data:{ ID:JSCHART_MENU_ID.CMD_ENABLE_XDRAG_BOTTOM_ID, Args:[!this.EnableXDrag.Bottom]}, Checked:this.EnableXDrag.Bottom },
86850
86944
  { Name:"左键区间选择", Data:{ ID:JSCHART_MENU_ID.CMD_LBUTTON_SELECT_RECT_ID, Args:[!bLButtonSelectRect]}, Checked:bLButtonSelectRect },
86851
86945
  { Name:"右键区间选择", Data:{ ID:JSCHART_MENU_ID.CMD_RBUTTON_SELECT_RECT_ID, Args:[!bRButtonSelectRect]}, Checked:bRButtonSelectRect },
86852
86946
  { Name:JSPopMenu.SEPARATOR_LINE_NAME },
@@ -86903,6 +86997,27 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
86903
86997
  { Name:"启用", Data:{ ID:JSCHART_MENU_ID.CMD_KLINE_TOOLTIP_ATTRIBUTE, Args:[{Enable:!this.KLineTooltipConfig.Enable}]}, Checked:this.KLineTooltipConfig.Enable },
86904
86998
  { Name:"键盘左右显示", Data:{ ID:JSCHART_MENU_ID.CMD_KLINE_TOOLTIP_ATTRIBUTE, Args:[{EnableKeyDown:!this.KLineTooltipConfig.EnableKeyDown}]}, Checked:this.KLineTooltipConfig.EnableKeyDown },
86905
86999
  ]
87000
+ },
87001
+ {
87002
+ Name:"X轴拖动",
87003
+ SubMenu:
87004
+ [
87005
+ { Name:"启动", Data:{ ID:JSCHART_MENU_ID.CMD_ENABLE_XDRAG_BOTTOM_ID, Args:[!this.EnableXDrag.Bottom]}, Checked:this.EnableXDrag.Bottom },
87006
+ { Name:"左键拖动K线", Data:{ ID:JSCHART_MENU_ID.CMD_ENABLE_XDRAG_BOTTOM_ID, Args:[null, this.EnableXDrag.LButton.Type===1?0:1]}, Checked:this.EnableXDrag.LButton.Type===1 && this.EnableXDrag.Bottom },
87007
+ { Name:"左键缩放K线", Data:{ ID:JSCHART_MENU_ID.CMD_ENABLE_XDRAG_BOTTOM_ID, Args:[null, this.EnableXDrag.LButton.Type===2?0:2]}, Checked:this.EnableXDrag.LButton.Type===2 && this.EnableXDrag.Bottom },
87008
+
87009
+ { Name:"右键拖动K线", Data:{ ID:JSCHART_MENU_ID.CMD_ENABLE_XDRAG_BOTTOM_ID, Args:[null, null, this.EnableXDrag.RButton.Type===1?0:1]}, Checked:this.EnableXDrag.RButton.Type===1 && this.EnableXDrag.Bottom },
87010
+ { Name:"右键缩放K线", Data:{ ID:JSCHART_MENU_ID.CMD_ENABLE_XDRAG_BOTTOM_ID, Args:[null, null, this.EnableXDrag.RButton.Type===2?0:2]}, Checked:this.EnableXDrag.RButton.Type===2 && this.EnableXDrag.Bottom },
87011
+ ]
87012
+ },
87013
+ {
87014
+ Name:"K线拖动",
87015
+ SubMenu:
87016
+ [
87017
+ { Name:"禁用", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID, Args:[0]}, Checked:0==this.DragMode },
87018
+ { Name:"左键拖拽", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID, Args:[1, false]}, Checked:1==(this.DragMode && !this.KLineDragConfig.EnableShfit) },
87019
+ { Name:"Shift+左键拖拽", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID, Args:[1, true]}, Checked:1==(this.DragMode && this.KLineDragConfig.EnableShfit) },
87020
+ ]
86906
87021
  }
86907
87022
  ]
86908
87023
  }
@@ -89117,6 +89232,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
89117
89232
  this.AutoUpdateTimer; //自动更新定时器
89118
89233
  this.TradeDate=0; //行情交易日期
89119
89234
  this.DayCount=1; //显示几天的数据
89235
+ this.MaxDayCount=-1; //最大显示天数 -1 无限制
89120
89236
  this.DayData; //多日分钟数据
89121
89237
  this.LimitPrice; //涨停价格 { Max:null, Min:null };
89122
89238
 
@@ -89677,8 +89793,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
89677
89793
  if (!startItem || !endItem) return;
89678
89794
 
89679
89795
  JSConsole.Chart.Log('[MinuteChartContainer::UpdateSelectRect]',startItem,endItem);
89680
- paint.SetPoint(startItem, { Index:0 });
89681
- paint.SetPoint(endItem, { Index:1 });
89796
+ paint.SetPoint(startItem, { Index:0 , DataIndex:start });
89797
+ paint.SetPoint(endItem, { Index:1,DataIndex:end });
89682
89798
 
89683
89799
  this.Draw();
89684
89800
  }
@@ -89705,7 +89821,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
89705
89821
  var item = kData.Data[dataIndex];
89706
89822
  JSConsole.Chart.Log("[MinuteChartContainer::MoveRectSelectPoint] point, item", obj.PointIndex, item);
89707
89823
 
89708
- if (!paint.SetPoint(item,{ Index: obj.PointIndex })) return false;
89824
+ if (!paint.SetPoint(item,{ Index: obj.PointIndex,DataIndex:dataIndex })) return false;
89709
89825
 
89710
89826
  var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DRAG_SELECT_RECT);
89711
89827
  if (event)
@@ -91141,10 +91257,22 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
91141
91257
 
91142
91258
  if (x>=rtClient.Left && x<=rtClient.Right && y>=rtClient.Top && y<=rtClient.Bottom ) isInClient=true;
91143
91259
 
91144
- if (!this.OnWheel_ZoomUpDownFrameY(e,x,y)) return;
91260
+ var bPreventDefault=false;
91261
+ if (this.OnWheel_ChangeDayCount(e,x,y)) //ctrl+上下滚轴
91262
+ {
91263
+ bPreventDefault=true;
91264
+ }
91265
+ else
91266
+ {
91267
+ if (this.OnWheel_ZoomUpDownFrameY(e,x,y))
91268
+ bPreventDefault=true;
91269
+ }
91145
91270
 
91146
- if(e.preventDefault) e.preventDefault();
91147
- else e.returnValue = false;
91271
+ if (bPreventDefault)
91272
+ {
91273
+ if(e.preventDefault) e.preventDefault();
91274
+ else e.returnValue = false;
91275
+ }
91148
91276
  }
91149
91277
 
91150
91278
  //通过滚轴缩放Y轴
@@ -91174,6 +91302,28 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
91174
91302
  return true;
91175
91303
  }
91176
91304
 
91305
+ this.OnWheel_ChangeDayCount=function(e, x, y)
91306
+ {
91307
+ if (!e.ctrlKey) return false;
91308
+
91309
+ var wheelValue=e.wheelDelta;
91310
+ if (!IFrameSplitOperator.IsObjectExist(e.wheelDelta))
91311
+ wheelValue=e.deltaY* -0.01;
91312
+
91313
+ var value=wheelValue>=0?-1:1;
91314
+ var dayCount=this.DayCount;
91315
+
91316
+ dayCount+=value;
91317
+ if (IFrameSplitOperator.IsPlusNumber(dayCount))
91318
+ {
91319
+ if (IFrameSplitOperator.IsPlusNumber(this.MaxDayCount) && dayCount>this.MaxDayCount) return true;
91320
+
91321
+ this.ChangeDayCount(dayCount);
91322
+ }
91323
+
91324
+ return true;
91325
+ }
91326
+
91177
91327
  this.OnDoubleClick=function(x,y,e)
91178
91328
  {
91179
91329
  JSConsole.Chart.Log("[MinuteChartContainer::OnDoubleClick]", e);
@@ -91323,7 +91473,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
91323
91473
  this.ChartCorssCursor.StringFormatY.ShareAfterVol=this.ShareAfterVol;
91324
91474
  this.ChartCorssCursor.CallAcutionXOperator=new CallAcutionXOperator();
91325
91475
  this.ChartCorssCursor.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
91326
-
91476
+ this.ChartCorssCursor.OnChangeStatusCallback=(data, obj)=>{ this.OnChangeCorssCursorStatus(data,obj); }
91327
91477
 
91328
91478
  //创建等待提示
91329
91479
  this.ChartSplashPaint = new ChartSplashPaint();
@@ -131059,7 +131209,7 @@ function GetBlackStyle()
131059
131209
  Color:"rgba(255,250, 250,0.8)",
131060
131210
  TextColor:'rgba(0,0, 0, 0.8)',
131061
131211
 
131062
- MoveRowColor:'rgb(135,206,250)',
131212
+ MoveRowColor:'rgb(37,47,69)',
131063
131213
  SrcRowColor:'rgb(49,48,56)',
131064
131214
  },
131065
131215
 
@@ -133148,6 +133298,16 @@ function JSReportChart(divElement)
133148
133298
  if (this.JSChartContainer) this.JSChartContainer.SetSelectedRow(option);
133149
133299
  }
133150
133300
 
133301
+ this.DeleteSymbol=function(arySymbol, option)
133302
+ {
133303
+ if (this.JSChartContainer) this.JSChartContainer.DeleteSymbol(arySymbol, option);
133304
+ }
133305
+
133306
+ this.AddSymbol=function(arySymbol, option)
133307
+ {
133308
+ if (this.JSChartContainer) this.JSChartContainer.AddSymbol(arySymbol, option);
133309
+ }
133310
+
133151
133311
  this.EnableFilter=function(bEnable, option) //启动|关闭筛选
133152
133312
  {
133153
133313
  if (this.JSChartContainer) this.JSChartContainer.EnableFilter(bEnable, option);
@@ -134052,22 +134212,108 @@ function JSReportChartContainer(uielement)
134052
134212
  this.UpdateStockData();
134053
134213
  }
134054
134214
 
134055
- this.AutoUpdateEvent=function(bStart, explain) //自定更新事件, 是给websocket使用
134215
+ //删除股票
134216
+ this.DeleteSymbol=function(arySymbol, option)
134056
134217
  {
134057
- var eventID=bStart ? JSCHART_EVENT_ID.RECV_START_AUTOUPDATE:JSCHART_EVENT_ID.RECV_STOP_AUTOUPDATE;
134058
- if (!this.mapEvent.has(eventID)) return;
134218
+ if (!IFrameSplitOperator.IsNonEmptyArray(arySymbol)) return false;
134059
134219
 
134060
- var self=this;
134061
- var event=this.mapEvent.get(eventID);
134062
- var data={ Stock:{ Symbol:this.Symbol, Name:this.Name, DayCount:this.DayCount }, Explain: explain };
134063
- if (bStart)
134220
+ var setSymbol=new Set(arySymbol);
134221
+ var bFinder=false;
134222
+ if (IFrameSplitOperator.IsNonEmptyArray(this.SourceData.Data))
134064
134223
  {
134065
- data.Callback=function(data) //数据到达更新回调
134066
- {
134067
- self.RecvDealUpdateData(data);
134224
+ var aryData=[];
134225
+ for(var i=0;i<this.SourceData.Data.length;++i)
134226
+ {
134227
+ var item=this.SourceData.Data[i];
134228
+ if (setSymbol.has(item))
134229
+ {
134230
+ bFinder=true;
134231
+ continue;
134232
+ }
134233
+ aryData.push(item);
134068
134234
  }
134235
+
134236
+ if (bFinder) this.SourceData.Data=aryData;
134069
134237
  }
134070
- event.Callback(event,data,this);
134238
+
134239
+ if (IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))
134240
+ {
134241
+ var aryData=[];
134242
+ for(var i=0;i<this.Data.Data.length;++i)
134243
+ {
134244
+ var item=this.Data.Data[i];
134245
+ if (setSymbol.has(item))
134246
+ {
134247
+ bFinder=true;
134248
+ continue;
134249
+ }
134250
+ aryData.push(item);
134251
+ }
134252
+
134253
+ if (bFinder) this.Data.Data=aryData;
134254
+ }
134255
+
134256
+ if (!bFinder) return false;
134257
+
134258
+ this.Draw();
134259
+ this.UpdateStockData();
134260
+
134261
+ return true;
134262
+ }
134263
+
134264
+ //添加股票
134265
+ this.AddSymbol=function(arySymbol, option)
134266
+ {
134267
+ if (!IFrameSplitOperator.IsNonEmptyArray(arySymbol)) return false;
134268
+
134269
+ var bDuplicate=true;
134270
+ if (option && IFrameSplitOperator.IsBool(option.Duplicate)) bDuplicate=option.Duplicate; //是否去重
134271
+
134272
+ var mapSymbol=new Map();
134273
+ for(var i=0;i<arySymbol.length;++i)
134274
+ {
134275
+ var item={ Symbol:arySymbol[i], IsExist:false, IsExist2:false };
134276
+ mapSymbol.set(item.Symbol, item);
134277
+ }
134278
+
134279
+ if (bDuplicate)
134280
+ {
134281
+ if (IFrameSplitOperator.IsNonEmptyArray(this.SourceData.Data))
134282
+ {
134283
+ for(var i=0;i<this.SourceData.Data.length;++i)
134284
+ {
134285
+ var item=this.Data.Data[i];
134286
+ if (mapSymbol.has(item))
134287
+ {
134288
+ mapSymbol.get(item).IsExist=true;
134289
+ }
134290
+ }
134291
+ }
134292
+
134293
+ if (IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))
134294
+ {
134295
+ for(var i=0;i<this.Data.Data.length;++i)
134296
+ {
134297
+ var item=this.Data.Data[i];
134298
+ if (mapSymbol.has(item))
134299
+ {
134300
+ mapSymbol.get(item).IsExist2=true;
134301
+ }
134302
+ }
134303
+ }
134304
+ }
134305
+
134306
+ for(var mapItem of mapSymbol)
134307
+ {
134308
+ var item=mapItem[1];
134309
+ if (!item.IsExist) this.SourceData.Data.push(item.Symbol);
134310
+ if (!item.IsExist2) this.Data.Data.push(item.Symbol);
134311
+ }
134312
+
134313
+ this.Draw();
134314
+ this.UpdateStockData();
134315
+
134316
+ return true;
134071
134317
  }
134072
134318
 
134073
134319
  //下载码表
@@ -134602,7 +134848,6 @@ function JSReportChartContainer(uielement)
134602
134848
  this.StopAutoUpdate=function()
134603
134849
  {
134604
134850
  this.CancelAutoUpdate();
134605
- this.AutoUpdateEvent(false,'JSDealChartContainer::StopAutoUpdate');
134606
134851
  if (!this.IsAutoUpdate) return;
134607
134852
  this.IsAutoUpdate=false;
134608
134853
  }
@@ -145698,7 +145943,7 @@ function ScrollBarBGChart()
145698
145943
 
145699
145944
 
145700
145945
 
145701
- var HQCHART_VERSION="1.1.14592";
145946
+ var HQCHART_VERSION="1.1.14603";
145702
145947
 
145703
145948
  function PrintHQChartVersion()
145704
145949
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.14592";
8
+ var HQCHART_VERSION="1.1.14603";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {