hqchart 1.1.15696 → 1.1.15708

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.
@@ -73,6 +73,7 @@ function JSStockInfoChart(divElement)
73
73
 
74
74
  if (option.EnableResize==true) this.CreateResizeListener();
75
75
  if (option.EnablePopMenuV2===true) chart.InitalPopMenu();
76
+ if (option.FloatTooltip && option.FloatTooltip.Enable) chart.InitalFloatTooltip(option.FloatTooltip); //提示信息
76
77
 
77
78
  if (option.Symbol)
78
79
  {
@@ -275,9 +276,12 @@ function JSStockInfoChartContainer(uielement)
275
276
  this.AutoUpdateFrequency=15000; //15秒更新一次数据
276
277
 
277
278
  this.JSPopMenu; //内置菜单
279
+ this.FloatTooltip; //提示浮框
278
280
 
279
281
  this.UIElement=uielement;
280
-
282
+
283
+ this.LastMouseStatus={ MoveStatus:null, TooltipStatus:null, MouseOnStatus:null };
284
+
281
285
  this.IsDestroy=false; //是否已经销毁了
282
286
 
283
287
  this.ChartDestroy=function() //销毁
@@ -286,6 +290,58 @@ function JSStockInfoChartContainer(uielement)
286
290
  this.StopAutoUpdate();
287
291
 
288
292
  this.DestroyPopMenu();
293
+ this.DestroyFloatTooltip();
294
+ }
295
+
296
+ //内置提示信息
297
+ this.HideFloatTooltip=function()
298
+ {
299
+ if (!this.FloatTooltip) return;
300
+
301
+ this.FloatTooltip.Hide();
302
+ }
303
+
304
+ this.DestroyFloatTooltip=function()
305
+ {
306
+ if (!this.FloatTooltip) return;
307
+
308
+ this.FloatTooltip.Destroy();
309
+ this.FloatTooltip=null;
310
+ }
311
+
312
+ this.InitalFloatTooltip=function(option)
313
+ {
314
+ if (this.FloatTooltip) return;
315
+
316
+ this.FloatTooltip=new JSFloatTooltip();
317
+ this.FloatTooltip.Inital(this, option);
318
+ this.FloatTooltip.Create();
319
+ }
320
+
321
+ this.DrawFloatTooltip=function(point,toolTip)
322
+ {
323
+ if (!this.FloatTooltip) return;
324
+
325
+ this.UpdateFloatTooltip(point, toolTip)
326
+ }
327
+
328
+ this.UpdateFloatTooltip=function(point, toolTip)
329
+ {
330
+ if (!this.FloatTooltip) return;
331
+
332
+ var sendData=
333
+ {
334
+ Tooltip:toolTip,
335
+ Point:point,
336
+ DataType:6,
337
+ };
338
+
339
+ this.FloatTooltip.Update(sendData);
340
+ }
341
+
342
+ this.HideAllTooltip=function()
343
+ {
344
+ this.HideFloatTooltip();
289
345
  }
290
346
 
291
347
  //设置事件回调
@@ -656,11 +712,39 @@ function JSStockInfoChartContainer(uielement)
656
712
  var x = (e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;
657
713
  var y = (e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;
658
714
 
715
+ this.LastMouseStatus.OnMouseMove={ X:x, Y:y };
716
+
717
+ var bDrawTooltip=false;
718
+ if (this.LastMouseStatus.TooltipStatus) bDrawTooltip=true;
719
+ this.LastMouseStatus.TooltipStatus=null;
720
+
659
721
  var option={ Update:false };
660
722
 
661
723
  this.OnChartMouseMove(x,y,e,option);
662
724
 
725
+ var tooltipData=this.GetChartTooltipData(x, y);
726
+ if (tooltipData && tooltipData.Data)
727
+ {
728
+ var item=tooltipData.Data;
729
+ if (item.Data && item.Data.Type==3) //5档买卖盘名字
730
+ {
731
+ this.LastMouseStatus.TooltipStatus={ X:x, Y:y, Data:tooltipData, ClientX:e.clientX, ClientY:e.clientY };
732
+ bDrawTooltip=true;
733
+ }
734
+ }
735
+
663
736
  if (option.Update===true) this.Draw();
737
+
738
+ if (this.LastMouseStatus.TooltipStatus)
739
+ {
740
+ var xTooltip = e.clientX-this.UIElement.getBoundingClientRect().left;
741
+ var yTooltip = e.clientY-this.UIElement.getBoundingClientRect().top;
742
+ this.DrawFloatTooltip({X:xTooltip, Y:yTooltip, YMove:20/pixelTatio},this.LastMouseStatus.TooltipStatus.Data);
743
+ }
744
+ else
745
+ {
746
+ this.HideFloatTooltip();
747
+ }
664
748
  }
665
749
 
666
750
  this.OnChartMouseMove=function(x, y, e, option)
@@ -677,6 +761,20 @@ function JSStockInfoChartContainer(uielement)
677
761
  return false;
678
762
  }
679
763
 
764
+ this.GetChartTooltipData=function(x, y)
765
+ {
766
+ var toolTip=new TooltipData();
767
+ for(var i=0;i<this.ChartPaint.length;++i)
768
+ {
769
+ var item=this.ChartPaint[i];
770
+ if (item.GetTooltipData(x,y,toolTip))
771
+ {
772
+ return toolTip;
773
+ }
774
+ }
775
+ return null;
776
+ }
777
+
680
778
  this.TryClickPaintEvent=function(eventID, ptClick, e)
681
779
  {
682
780
  var event=this.GetEventCallback(eventID);
@@ -714,6 +812,8 @@ function JSStockInfoChartContainer(uielement)
714
812
  this.ChartClearMouseOnData(option);
715
813
 
716
814
  if (option.Update===true) this.Draw();
815
+
816
+ this.HideAllTooltip();
717
817
  }
718
818
 
719
819
  this.UIOnMounseOut=function(e)
@@ -724,7 +824,7 @@ function JSStockInfoChartContainer(uielement)
724
824
 
725
825
  if (option.Update===true) this.Draw();
726
826
 
727
- //this.HideAllTooltip();
827
+ this.HideAllTooltip();
728
828
  }
729
829
 
730
830
  this.ChartClearMouseOnData=function(option)
@@ -1244,7 +1344,7 @@ function ChartStockData()
1244
1344
  {
1245
1345
  xText=left;
1246
1346
  var item=this.Data.Sells[i];
1247
- this.DrawBuySellItem(item, xText, yText, cellWidth, cellHeight, { Type:1, Index:i});
1347
+ this.DrawBuySellItem(item, xText, yText, cellWidth, cellHeight, { Type:2, Index:i});
1248
1348
  if (IFrameSplitOperator.IsNumber(item.Vol)) sellVol+=item.Vol;
1249
1349
  yText+=cellHeight;
1250
1350
  }
@@ -1263,7 +1363,7 @@ function ChartStockData()
1263
1363
  {
1264
1364
  xText=left;
1265
1365
  var item=this.Data.Buys[i];
1266
- this.DrawBuySellItem(item, xText, yText, cellWidth, cellHeight, { Type:2, Index:i});
1366
+ this.DrawBuySellItem(item, xText, yText, cellWidth, cellHeight, { Type:1, Index:i});
1267
1367
  if (IFrameSplitOperator.IsNumber(item.Vol)) buyVol+=item.Vol;
1268
1368
  yText+=cellHeight;
1269
1369
  }
@@ -1339,6 +1439,13 @@ function ChartStockData()
1339
1439
  {
1340
1440
  this.Canvas.fillStyle=config.TitleColor;
1341
1441
  this.Canvas.fillText(item.Name,xText+config.CellMargin.Left,yBottom);
1442
+ var textWidth=this.Canvas.measureText(item.Name).width+2;
1443
+ var rtCell={ Left:xText+config.CellMargin.Left, Top:top, Height:cellHeight, Width:textWidth };
1444
+ rtCell.Right=rtCell.Left+rtCell.Width;
1445
+ rtCell.Bottom=rtCell.Top+rtCell.Height;
1446
+
1447
+ var key=`${itemInfo.Type==1?"BUY":"SELL"}_NAME_${itemInfo.Index}`;
1448
+ this.AryCellRect.push({ Rect:rtCell, Data:{ Type:3, Key:key, Value:{ Index:itemInfo.Index, Type:itemInfo.Type, YClose:this.GetYClose(), AryData:itemInfo.Type==1?this.Data.Buys:this.Data.Sells } }});
1342
1449
  }
1343
1450
  xText+=cellWidth;
1344
1451
 
@@ -1556,19 +1663,21 @@ function ChartStockData()
1556
1663
  }
1557
1664
 
1558
1665
  this.GetPriceColor=function(price)
1666
+ {
1667
+ var yClose=this.GetYClose();
1668
+ if (!IFrameSplitOperator.IsNumber(yClose)) return this.UnchangeColor;
1669
+ return this.GetUpDownColor(price, yClose);
1670
+ }
1671
+
1672
+ this.GetYClose=function()
1559
1673
  {
1560
1674
  var upperSymbol=null;
1561
1675
  if (this.Data.Symbol) upperSymbol=this.Data.Symbol.toUpperCase();
1562
- if (MARKET_SUFFIX_NAME.IsChinaFutures(upperSymbol))
1563
- {
1564
- if (!IFrameSplitOperator.IsNumber(this.Data.YFClose)) return this.UnchangeColor;
1565
- return this.GetUpDownColor(price, this.Data.YFClose);
1566
- }
1567
- else
1568
- {
1569
- if (!IFrameSplitOperator.IsNumber(this.Data.YClose)) return this.UnchangeColor;
1570
- return this.GetUpDownColor(price, this.Data.YClose);
1571
- }
1676
+ var price=null;
1677
+ if (MARKET_SUFFIX_NAME.IsChinaFutures(upperSymbol)) price=this.Data.YFClose;
1678
+ else price=this.Data.YClose;
1679
+
1680
+ return price;
1572
1681
  }
1573
1682
 
1574
1683
  this.GetUpDownColor=function(price, price2)
@@ -27033,6 +27033,16 @@ function APIScriptIndex(name,script,args,option, isOverlay)
27033
27033
  outVarItem.Draw=drawItem;
27034
27034
  result.push(outVarItem);
27035
27035
  }
27036
+ else if (draw.DrawType==SCRIPT_CHART_NAME.DRAW_HORIZONTAL_CHANNEL)
27037
+ {
27038
+ drawItem.Name=draw.Name;
27039
+ drawItem.Type=draw.Type;
27040
+ drawItem.DrawType=draw.DrawType;
27041
+ drawItem.DrawData=draw.DrawData;
27042
+ drawItem.Config=draw.Config;
27043
+ outVarItem.Draw=drawItem;
27044
+ result.push(outVarItem);
27045
+ }
27036
27046
  else
27037
27047
  {
27038
27048
  var find=g_ScriptIndexChartFactory.Get(draw.DrawType); //外部挂接
@@ -1216,6 +1216,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
1216
1216
  }
1217
1217
 
1218
1218
  chart.SetSubFrameAttribute(chart.Frame.SubFrame[index],item, null);
1219
+ chart.UpdateIndexTemporaryAttribute(i, item.AryTemporaryAttribute); //指标临时属性
1219
1220
  }
1220
1221
  }
1221
1222
 
@@ -12875,6 +12876,88 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
12875
12876
 
12876
12877
  script.RecvSubscribeData(data,this,overlayIndex.WindowIndex,kData);
12877
12878
  }
12879
+
12880
+ this.UpdateIndexTemporaryAttribute=function(windowIndex, aryAttribute)
12881
+ {
12882
+ if (windowIndex<0) return;
12883
+ if (!IFrameSplitOperator.IsNonEmptyArray(aryAttribute)) return;
12884
+ if (!this.Frame || !IFrameSplitOperator.IsNonEmptyArray(this.Frame.SubFrame)) return;
12885
+ var mainFrame=this.Frame.SubFrame[windowIndex].Frame;
12886
+
12887
+ this.IndexTemporaryAttribute[windowIndex]=[];
12888
+ var aryTemporaryAttribute=this.IndexTemporaryAttribute[windowIndex];
12889
+
12890
+ for(var i=0;i<aryAttribute.length;++i)
12891
+ {
12892
+ var item=aryAttribute[i];
12893
+ if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.BOTTOMSPACE)
12894
+ {
12895
+ var backup=mainFrame.ChartBorder.BottomSpace;
12896
+ mainFrame.ChartBorder.BottomSpace=item.Value;
12897
+ aryTemporaryAttribute.push({ Name:item.Name, Value:item.Value, BackupValue:backup });
12898
+ }
12899
+ else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.TOPSPACE)
12900
+ {
12901
+ var backup=mainFrame.ChartBorder.TopSpace;
12902
+ mainFrame.ChartBorder.TopSpace=item.Value;
12903
+ aryTemporaryAttribute.push({ Name:item.Name, Value:item.Value, BackupValue:backup });
12904
+ }
12905
+ else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SHOWLEFTTEXT)
12906
+ {
12907
+ var backup=mainFrame.YSplitOperator.IsShowLeftText;
12908
+ mainFrame.YSplitOperator.IsShowLeftText=item.Value;
12909
+ aryTemporaryAttribute.push({ Name:item.Name, Value:item.Value, BackupValue:backup });
12910
+ }
12911
+ else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SHOWRIGHTTEXT)
12912
+ {
12913
+ var backup=mainFrame.YSplitOperator.IsShowRightText;
12914
+ mainFrame.YSplitOperator.IsShowRightText=item.Value;
12915
+ aryTemporaryAttribute.push({ Name:item.Name, Value:item.Value, BackupValue:backup });
12916
+ }
12917
+ else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SPLITTYPE)
12918
+ {
12919
+ var backup=mainFrame.YSplitOperator.SplitType;
12920
+ mainFrame.YSplitOperator.SplitType=item.Value;
12921
+ aryTemporaryAttribute.push({ Name:item.Name, Value:item.Value, BackupValue:backup });
12922
+ }
12923
+
12924
+ }
12925
+ }
12926
+
12927
+ this.RestoreIndexTemporaryAttribute=function(windowIndex)
12928
+ {
12929
+ if (windowIndex<0) return;
12930
+ if (!this.Frame || !IFrameSplitOperator.IsNonEmptyArray(this.Frame.SubFrame)) return;
12931
+ var aryTemporaryAttribute=this.IndexTemporaryAttribute[windowIndex];
12932
+ if (!IFrameSplitOperator.IsNonEmptyArray(aryTemporaryAttribute)) return;
12933
+ var mainFrame=this.Frame.SubFrame[windowIndex].Frame;
12934
+
12935
+ for(var i=0;i<aryTemporaryAttribute.length;++i)
12936
+ {
12937
+ var item=aryTemporaryAttribute[i];
12938
+ if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.BOTTOMSPACE)
12939
+ {
12940
+ mainFrame.ChartBorder.BottomSpace=item.BackupValue;
12941
+ }
12942
+ else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.TOPSPACE)
12943
+ {
12944
+ mainFrame.ChartBorder.TopSpace=item.BackupValue;
12945
+ }
12946
+ else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SHOWLEFTTEXT)
12947
+ {
12948
+ mainFrame.YSplitOperator.IsShowLeftText=item.BackupValue;
12949
+ }
12950
+ else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SHOWRIGHTTEXT)
12951
+ {
12952
+ mainFrame.YSplitOperator.IsShowRightText=item.BackupValue;
12953
+ }
12954
+ else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SPLITTYPE)
12955
+ {
12956
+ mainFrame.YSplitOperator.SplitType=item.BackupValue;
12957
+ }
12958
+ }
12959
+
12960
+ }
12878
12961
  }
12879
12962
 
12880
12963
  function GetDevicePixelRatio()
@@ -79760,7 +79843,7 @@ function JSChartResource()
79760
79843
  {
79761
79844
  BuyColor:"rgb(242,54,69)",
79762
79845
  SellColor:"rgb(8,153,129)",
79763
- BarWidth:4*GetDevicePixelRatio(),
79846
+ BarWidth:2*GetDevicePixelRatio(),
79764
79847
  MaxBarWidth:120,
79765
79848
  YOffset:1,
79766
79849
  Font:`${12*GetDevicePixelRatio()}px 微软雅黑`,
@@ -92974,88 +93057,6 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
92974
93057
 
92975
93058
  this.Draw();
92976
93059
  }
92977
-
92978
- this.UpdateIndexTemporaryAttribute=function(windowIndex, aryAttribute)
92979
- {
92980
- if (windowIndex<0) return;
92981
- if (!IFrameSplitOperator.IsNonEmptyArray(aryAttribute)) return;
92982
- if (!this.Frame || !IFrameSplitOperator.IsNonEmptyArray(this.Frame.SubFrame)) return;
92983
- var mainFrame=this.Frame.SubFrame[windowIndex].Frame;
92984
-
92985
- this.IndexTemporaryAttribute[windowIndex]=[];
92986
- var aryTemporaryAttribute=this.IndexTemporaryAttribute[windowIndex];
92987
-
92988
- for(var i=0;i<aryAttribute.length;++i)
92989
- {
92990
- var item=aryAttribute[i];
92991
- if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.BOTTOMSPACE)
92992
- {
92993
- var backup=mainFrame.ChartBorder.BottomSpace;
92994
- mainFrame.ChartBorder.BottomSpace=item.Value;
92995
- aryTemporaryAttribute.push({ Name:item.Name, Value:item.Value, BackupValue:backup });
92996
- }
92997
- else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.TOPSPACE)
92998
- {
92999
- var backup=mainFrame.ChartBorder.TopSpace;
93000
- mainFrame.ChartBorder.TopSpace=item.Value;
93001
- aryTemporaryAttribute.push({ Name:item.Name, Value:item.Value, BackupValue:backup });
93002
- }
93003
- else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SHOWLEFTTEXT)
93004
- {
93005
- var backup=mainFrame.YSplitOperator.IsShowLeftText;
93006
- mainFrame.YSplitOperator.IsShowLeftText=item.Value;
93007
- aryTemporaryAttribute.push({ Name:item.Name, Value:item.Value, BackupValue:backup });
93008
- }
93009
- else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SHOWRIGHTTEXT)
93010
- {
93011
- var backup=mainFrame.YSplitOperator.IsShowRightText;
93012
- mainFrame.YSplitOperator.IsShowRightText=item.Value;
93013
- aryTemporaryAttribute.push({ Name:item.Name, Value:item.Value, BackupValue:backup });
93014
- }
93015
- else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SPLITTYPE)
93016
- {
93017
- var backup=mainFrame.YSplitOperator.SplitType;
93018
- mainFrame.YSplitOperator.SplitType=item.Value;
93019
- aryTemporaryAttribute.push({ Name:item.Name, Value:item.Value, BackupValue:backup });
93020
- }
93021
-
93022
- }
93023
- }
93024
-
93025
- this.RestoreIndexTemporaryAttribute=function(windowIndex)
93026
- {
93027
- if (windowIndex<0) return;
93028
- if (!this.Frame || !IFrameSplitOperator.IsNonEmptyArray(this.Frame.SubFrame)) return;
93029
- var aryTemporaryAttribute=this.IndexTemporaryAttribute[windowIndex];
93030
- if (!IFrameSplitOperator.IsNonEmptyArray(aryTemporaryAttribute)) return;
93031
- var mainFrame=this.Frame.SubFrame[windowIndex].Frame;
93032
-
93033
- for(var i=0;i<aryTemporaryAttribute.length;++i)
93034
- {
93035
- var item=aryTemporaryAttribute[i];
93036
- if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.BOTTOMSPACE)
93037
- {
93038
- mainFrame.ChartBorder.BottomSpace=item.BackupValue;
93039
- }
93040
- else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.TOPSPACE)
93041
- {
93042
- mainFrame.ChartBorder.TopSpace=item.BackupValue;
93043
- }
93044
- else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SHOWLEFTTEXT)
93045
- {
93046
- mainFrame.YSplitOperator.IsShowLeftText=item.BackupValue;
93047
- }
93048
- else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SHOWRIGHTTEXT)
93049
- {
93050
- mainFrame.YSplitOperator.IsShowRightText=item.BackupValue;
93051
- }
93052
- else if (item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SPLITTYPE)
93053
- {
93054
- mainFrame.YSplitOperator.SplitType=item.BackupValue;
93055
- }
93056
- }
93057
-
93058
- }
93059
93060
  }
93060
93061
 
93061
93062
  //API 返回数据 转化为array[]
@@ -93472,7 +93473,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
93472
93473
  delete this.newMethod;
93473
93474
 
93474
93475
  this.ClassName='MinuteChartContainer';
93475
- this.WindowIndex=new Array();
93476
+ this.WindowIndex=[];
93477
+ this.IndexTemporaryAttribute=[]; //指标临时属性,切换指标时会清除
93476
93478
  this.Symbol;
93477
93479
  this.AryDate; //日期列表[]
93478
93480
  this.Name;
@@ -96311,8 +96313,17 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
96311
96313
  this.ChangeScriptIndex=function(windowIndex,indexData,option)
96312
96314
  {
96313
96315
  this.DeleteIndexPaint(windowIndex, true);
96316
+ this.RestoreIndexTemporaryAttribute(windowIndex); //恢复临时属性
96314
96317
  this.WindowIndex[windowIndex]=new ScriptIndex(indexData.Name,indexData.Script,indexData.Args,indexData); //脚本执行
96315
96318
 
96319
+ if (option)
96320
+ {
96321
+ if (option.AryTemporaryAttribute)
96322
+ {
96323
+ this.UpdateIndexTemporaryAttribute(windowIndex, option.AryTemporaryAttribute); //指标临时属性
96324
+ }
96325
+ }
96326
+
96316
96327
  var bindData=this.SourceData;
96317
96328
  this.BindIndexData(windowIndex,bindData); //执行脚本
96318
96329
 
@@ -96325,6 +96336,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
96325
96336
  this.ChangeAPIIndex=function(windowIndex,indexData)
96326
96337
  {
96327
96338
  this.DeleteIndexPaint(windowIndex, true);
96339
+ this.RestoreIndexTemporaryAttribute(windowIndex); //恢复临时属性
96328
96340
  //使用API挂接指标数据 API:{ Name:指标名字, Script:指标脚本可以为空, Args:参数可以为空, Url:指标执行地址 }
96329
96341
  var apiItem=indexData.API;
96330
96342
  this.WindowIndex[windowIndex]=new APIScriptIndex(apiItem.Name,apiItem.Script,apiItem.Args,indexData);
@@ -96332,6 +96344,11 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
96332
96344
  if (indexData)
96333
96345
  {
96334
96346
  if (indexData.Window) this.SetFrameToolbar(windowIndex,indexData.Window);
96347
+
96348
+ if (indexData.AryTemporaryAttribute)
96349
+ {
96350
+ this.UpdateIndexTemporaryAttribute(windowIndex, indexData.AryTemporaryAttribute); //指标临时属性
96351
+ }
96335
96352
  }
96336
96353
 
96337
96354
  this.Frame.ClearUpDonwFrameYData({ Index:windowIndex });
@@ -96465,11 +96482,12 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
96465
96482
  var bRefreshData= (dayCount!=null || symbol!=null);
96466
96483
 
96467
96484
  //清空所有的指标图型
96468
- for(var i=0;i<windows.length;++i)
96485
+ for(var i=0;i<currentLength;++i)
96469
96486
  {
96470
96487
  this.DeleteIndexPaint(i);
96471
96488
  var frame=this.Frame.SubFrame[i];
96472
96489
  if (!frame) continue;
96490
+ this.RestoreIndexTemporaryAttribute(i); //恢复临时属性
96473
96491
  frame.YSpecificMaxMin=null;
96474
96492
  frame.YSplitScale = null;
96475
96493
  }
@@ -96555,6 +96573,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
96555
96573
  }
96556
96574
 
96557
96575
  this.SetSubFrameAttribute(this.Frame.SubFrame[windowIndex], item, frameItem);
96576
+ if (item) this.UpdateIndexTemporaryAttribute(windowIndex, item.AryTemporaryAttribute); //指标临时属性
96558
96577
  }
96559
96578
 
96560
96579
  //清空叠加指标
@@ -104319,7 +104338,6 @@ function IMinuteInfo()
104319
104338
  this.RequestData=function(hqChart)
104320
104339
  {
104321
104340
  var self = this;
104322
- this.Data=[];
104323
104341
  var param=
104324
104342
  {
104325
104343
  HQChart:hqChart
@@ -104371,6 +104389,7 @@ function MarketEventInfo()
104371
104389
 
104372
104390
  this.RecvData=function(recvData,param)
104373
104391
  {
104392
+ this.Data=[];
104374
104393
  if (recvData && recvData.ver==3)
104375
104394
  {
104376
104395
  this.RecvDataV3(recvData,param);
@@ -104447,6 +104466,8 @@ function MinuteNewsInfo()
104447
104466
 
104448
104467
  this.RecvData=function(recvData,param)
104449
104468
  {
104469
+ this.Data=[];
104470
+
104450
104471
  if (!recvData || !IFrameSplitOperator.IsNonEmptyArray(recvData.list)) return;
104451
104472
 
104452
104473
  for(var i=0;i<recvData.list.length;++i)
@@ -92,8 +92,8 @@ function GetBlackStyle()
92
92
 
93
93
  BuySellBar:
94
94
  {
95
- BuyColor:"rgb(102, 33, 33)",
96
- SellColor:"rgb(20, 63, 31)",
95
+ BuyColor:"rgb(255,0,0)",
96
+ SellColor:"rgb(0,255,0)",
97
97
  Font:`${12*GetDevicePixelRatio()}px 微软雅黑`,
98
98
  TextColor:"rgb(220,220,220)",
99
99
  }