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.
- package/lib/umychart.vue.js +46 -29
- package/package.json +1 -1
- package/src/jscommon/umychart.DialogTooltip.js +53 -1
- package/src/jscommon/umychart.StockInfo.js +123 -14
- package/src/jscommon/umychart.complier.js +10 -0
- package/src/jscommon/umychart.js +107 -86
- package/src/jscommon/umychart.style.js +2 -2
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +120 -89
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +296 -104
|
@@ -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
|
-
|
|
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:
|
|
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:
|
|
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
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
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); //外部挂接
|
package/src/jscommon/umychart.js
CHANGED
|
@@ -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:
|
|
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=
|
|
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<
|
|
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)
|