hqchart 1.1.15390 → 1.1.15428

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.
@@ -32204,6 +32204,12 @@ function ChartKLine()
32204
32204
  TextColor: g_JSChartResource.DaySummaryKLine.TextColor,
32205
32205
  LeftMargin:g_JSChartResource.DaySummaryKLine.LeftMargin,
32206
32206
  }
32207
+
32208
+ this.PriceGapStyple=
32209
+ {
32210
+ Line:{ Color:g_JSChartResource.PriceGapStyple.Line.Color },
32211
+ Text:{ Color:g_JSChartResource.PriceGapStyple.Text.Color, Font: g_JSChartResource.PriceGapStyple.Text.Font }
32212
+ };
32207
32213
 
32208
32214
  }
32209
32215
 
@@ -60208,6 +60214,11 @@ IFrameSplitOperator.RemoveMarketSuffix=function(symbol)
60208
60214
  return symbol;
60209
60215
  }
60210
60216
 
60217
+ IFrameSplitOperator.IsNumberString=function(strValue)
60218
+ {
60219
+ return /^\d+$/.test(strValue);
60220
+ }
60221
+
60211
60222
  function FrameSplitKLinePriceY()
60212
60223
  {
60213
60224
  this.newMethod=IFrameSplitOperator; //派生
@@ -83878,6 +83889,70 @@ function JSChartResource()
83878
83889
  }
83879
83890
  }
83880
83891
 
83892
+ //买卖5档
83893
+ this.StockInfo=
83894
+ {
83895
+ Header:
83896
+ {
83897
+ Name:
83898
+ {
83899
+ Font:`${20*GetDevicePixelRatio()}px 微软雅黑`,
83900
+ Color:"rgb(90,90,90)",
83901
+ Margin:{ Left:5, Top:10, Bottom:5, Right:5, YOffset:0 },
83902
+ },
83903
+
83904
+ Symbol:
83905
+ {
83906
+ Font:`${18*GetDevicePixelRatio()}px 微软雅黑`,
83907
+ Color:"rgb(90,90,90)",
83908
+ Margin:{ Left:5, Top:10, Bottom:5, Right:5, YOffset:0 },
83909
+ },
83910
+
83911
+ AryCell:
83912
+ [
83913
+ { Font:`bold ${16*GetDevicePixelRatio()}px 微软雅黑`,Color:"rgb(90,90,90)", Margin:{ Left:5, Top:5, Bottom:5, Right:5, YOffset:0 } },
83914
+ { Font:`${16*GetDevicePixelRatio()}px 微软雅黑`,Color:"rgb(90,90,90)", Margin:{ Left:5, Top:5, Bottom:5, Right:5, YOffset:0 } },
83915
+ { Font:`${16*GetDevicePixelRatio()}px 微软雅黑`,Color:"rgb(90,90,90)", Margin:{ Left:5, Top:5, Bottom:5, Right:5, YOffset:0 } }
83916
+ ],
83917
+
83918
+ TextColor:"rgb(100,100,10)",
83919
+
83920
+ BottomLine:{ Enable:true, Color:"rgb(192,192,192)"} , //底部分割线
83921
+ },
83922
+
83923
+ BuySell:
83924
+ {
83925
+ Font:14*GetDevicePixelRatio() +'px 微软雅黑',
83926
+ TitleColor:"rgb(90,90,90)",
83927
+ VolColor:"rgb(90,90,90)",
83928
+ Margin:{ Left:0, Top:0, Bottom:0, Right:0 },
83929
+ CellMargin:{ Top:5, Bottom:5, Left:5, Right:5, YOffset:0 },
83930
+ BottomLine:{ Enable:true, Color:"rgb(192,192,192)"}, //底部分割线
83931
+ TopLine:{ Enable:false, Color:"rgb(192,192,192)"}, //底部分割线
83932
+
83933
+ CenterLine:
83934
+ {
83935
+ BuyColor:"rgb(228, 164, 54)",SellColor:"rgb(61, 147, 219)", NoneColor:"rgb(90,90,90)",
83936
+ Width:2*GetDevicePixelRatio()
83937
+ }
83938
+ },
83939
+
83940
+ Table:
83941
+ {
83942
+ Font:14*GetDevicePixelRatio() +'px 微软雅黑',
83943
+ TitleColor:"rgb(90,90,90)",
83944
+ TextColor:"rgb(90,90,90)",
83945
+ Margin:{ Left:0, Top:0, Bottom:0, Right:0 },
83946
+ CellMargin:{ Top:5, Bottom:5, Left:5, Right:5, YOffset:0 },
83947
+ },
83948
+
83949
+ UpTextColor:"rgb(238,21,21)", //上涨文字颜色
83950
+ DownTextColor:"rgb(25,158,0)", //下跌文字颜色
83951
+ UnchangeTextColor:"rgb(90,90,90)", //平盘文字颜色
83952
+
83953
+ BorderColor:"rgb(192,192,192)"
83954
+ }
83955
+
83881
83956
 
83882
83957
  //自定义风格
83883
83958
  this.SetStyle=function(style)
@@ -84846,7 +84921,129 @@ function JSChartResource()
84846
84921
  if (style.KLineCountDownPaint) this.SetKLineCountDownPaint(style.KLineCountDownPaint);
84847
84922
 
84848
84923
  if (style.SmallFloatTooltipV2) this.SetSmallFloatTooltipV2(style.SmallFloatTooltipV2);
84924
+ if (style.StockInfo) this.SetStockInfo(style.StockInfo);
84925
+
84926
+ }
84927
+
84928
+ this.SetStockInfo=function(style)
84929
+ {
84930
+ var dest=this.StockInfo;
84931
+
84932
+ if (style.BuySell)
84933
+ {
84934
+ var item=style.BuySell;
84935
+ if (item.Font) dest.BuySell.Font=item.Font;
84936
+ if (item.TitleColor) dest.BuySell.TitleColor=item.TitleColor;
84937
+ if (item.VolColor) dest.BuySell.VolColor=item.VolColor;
84938
+ CopyMarginConfig(dest.BuySell.Margin, item.Margin);
84939
+ if (item.CellMargin)
84940
+ {
84941
+ var subItem=item.CellMargin;
84942
+ CopyMarginConfig(dest.BuySell.CellMargin, subItem);
84943
+ if (IFrameSplitOperator.IsNumber(subItem.YOffset)) dest.BuySell.CellMargin.YOffset=subItem.YOffset
84944
+ }
84945
+
84946
+ if (item.BottomLine)
84947
+ {
84948
+ var subItem=item.BottomLine;
84949
+ if (subItem.Color) dest.BuySell.BottomLine.Color=subItem.Color;
84950
+ if (IFrameSplitOperator.IsBool(subItem.Enable)) dest.BuySell.BottomLine.Enable=subItem.Enable;
84951
+ }
84952
+
84953
+ if (item.TopLine)
84954
+ {
84955
+ var subItem=item.TopLine;
84956
+ if (subItem.Color) dest.BuySell.TopLine.Color=subItem.Color;
84957
+ if (IFrameSplitOperator.IsBool(subItem.Enable)) dest.BuySell.TopLine.Enable=subItem.Enable;
84958
+ }
84959
+
84960
+ if (item.CenterLine)
84961
+ {
84962
+ var subItem=item.CenterLine;
84963
+ if (subItem.BuyColor) dest.BuySell.CenterLine.BuyColor=subItem.BuyColor;
84964
+ if (subItem.SellColor) dest.BuySell.CenterLine.SellColor=subItem.SellColor;
84965
+ if (subItem.NoneColor) dest.BuySell.CenterLine.NoneColor=subItem.NoneColor;
84966
+ if (IFrameSplitOperator.IsNumber(subItem.Width)) dest.BuySell.CenterLine.Width=subItem.Width;
84967
+ }
84968
+
84969
+
84970
+ }
84971
+
84972
+ if (style.Table)
84973
+ {
84974
+ var item=style.Table;
84975
+ if (item.Font) dest.Table.Font=item.Font;
84976
+ if (item.TitleColor) dest.Table.TitleColor=item.TitleColor;
84977
+ if (item.TextColor) dest.Table.TextColor=item.TextColor;
84978
+ CopyMarginConfig(dest.Table.Margin, item.Margin);
84979
+ if (item.CellMargin)
84980
+ {
84981
+ var subItem=item.CellMargin;
84982
+ CopyMarginConfig(dest.Table.CellMargin, subItem);
84983
+ if (IFrameSplitOperator.IsNumber(subItem.YOffset)) dest.Table.CellMargin.YOffset=subItem.YOffset
84984
+ }
84985
+ }
84986
+
84987
+ if (style.Header)
84988
+ {
84989
+ var item=style.Header;
84990
+ if (item.Font) dest.Header.Font=item.Font;
84991
+ if (item.TextColor) dest.Header.TextColor=item.TextColor;
84992
+ if (item.Name)
84993
+ {
84994
+ var subItem=item.Name;
84995
+ if (subItem.Font) dest.Header.Name.Font=subItem.Font;
84996
+ if (subItem.Color) dest.Header.Name.Color=subItem.Color;
84997
+ if (subItem.Margin)
84998
+ {
84999
+ var margin=subItem.Margin;
85000
+ CopyMarginConfig(dest.Header.Name.Margin, margin);
85001
+ if (IFrameSplitOperator.IsNumber(margin.YOffset)) dest.Header.Name.Margin.YOffset=margin.YOffset
85002
+ }
85003
+ }
85004
+
85005
+ if (item.Symbol)
85006
+ {
85007
+ var subItem=item.Symbol;
85008
+ if (subItem.Font) dest.Header.Symbol.Font=subItem.Font;
85009
+ if (subItem.Color) dest.Header.Symbol.Color=subItem.Color;
85010
+ if (subItem.Margin)
85011
+ {
85012
+ var margin=subItem.Margin;
85013
+ CopyMarginConfig(dest.Header.Symbol.Margin, margin);
85014
+ if (IFrameSplitOperator.IsNumber(margin.YOffset)) dest.Header.Symbol.Margin.YOffset=margin.YOffset
85015
+ }
85016
+ }
85017
+
85018
+ if (IFrameSplitOperator.IsNonEmptyArray(item.AryCell))
85019
+ {
85020
+ for(var i=0;i<item.AryCell.length;++i)
85021
+ {
85022
+ var subItem=item.AryCell[i];
85023
+ if (!dest.Header.AryCell[i]) dest.Header.AryCell[i]={ };
85024
+ var subDest=dest.Header.AryCell[i];
85025
+ if (subItem.Font) subDest.Font=subItem.Font;
85026
+ if (subItem.Margin)
85027
+ {
85028
+ var margin=subItem.Margin;
85029
+ CopyMarginConfig(subDest.Margin, margin);
85030
+ if (IFrameSplitOperator.IsNumber(margin.YOffset)) subDest.YOffset=margin.YOffset
85031
+ }
85032
+ }
85033
+ }
84849
85034
 
85035
+ if (item.BottomLine)
85036
+ {
85037
+ var subItem=item.BottomLine;
85038
+ if (subItem.Color) dest.Header.BottomLine.Color=subItem.Color;
85039
+ if (IFrameSplitOperator.IsBool(subItem.Enable)) dest.Header.BottomLine.Enable=subItem.Enable;
85040
+ }
85041
+ }
85042
+
85043
+ if (style.UpTextColor) dest.UpTextColor=style.UpTextColor;
85044
+ if (style.DownTextColor) dest.DownTextColor=style.DownTextColor;
85045
+ if (style.UnchangeTextColor) dest.UnchangeTextColor=style.UnchangeTextColor;
85046
+ if (style.BorderColor) dest.BorderColor=style.BorderColor;
84850
85047
  }
84851
85048
 
84852
85049
  this.SetSmallFloatTooltipV2=function(style)
@@ -91443,6 +91640,9 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
91443
91640
  if (!option.Windows) return;
91444
91641
  var count=option.Windows.length;
91445
91642
  if (count<=0) return;
91643
+
91644
+ this.Frame.RestoreIndexWindows();
91645
+
91446
91646
  var currentLength=this.Frame.SubFrame.length;
91447
91647
 
91448
91648
  var period=null, right=null, symbol=null;
@@ -98373,6 +98573,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
98373
98573
  this.ChangeIndexTemplate=function(option) //切换指标模板 可以设置指标窗口个数 每个窗口的指标, 只能从第3个指标窗口开始设置,前面2个指标窗口固定无法设置
98374
98574
  {
98375
98575
  if (!Array.isArray(option.Windows)) return;
98576
+ this.Frame.RestoreIndexWindows();
98577
+
98376
98578
  var count=option.Windows.length;
98377
98579
  var currentLength=this.Frame.SubFrame.length;
98378
98580
  var startWindowIndex=2;
@@ -106831,6 +107033,18 @@ var MARKET_SUFFIX_NAME=
106831
107033
  return false;
106832
107034
  },
106833
107035
 
107036
+ IsHKStock:function(symbol) //港股股票 全是数字
107037
+ {
107038
+ if (!symbol) return false;
107039
+ var upperSymbol=symbol.toUpperCase();
107040
+ if (!this.IsHK(upperSymbol)) return false;
107041
+
107042
+ var shortSymbol=this.GetShortSymbol(symbol);
107043
+ if (IFrameSplitOperator.IsNumberString(shortSymbol)) return true;
107044
+
107045
+ return false;
107046
+ },
107047
+
106834
107048
  GetMarketStatus:function(symbol) //获取市场状态 0=闭市 1=盘前 2=盘中 3=盘后
106835
107049
  {
106836
107050
  if (!symbol) return 0;
@@ -107171,7 +107385,18 @@ var MARKET_SUFFIX_NAME=
107171
107385
  if (MARKET_SUFFIX_NAME.IsBJ(upperSymbol)) return 100; //单位手=100股
107172
107386
 
107173
107387
  return 1;
107388
+ },
107389
+
107390
+ //获取不带后缀的代码
107391
+ GetShortSymbol:function(symbol)
107392
+ {
107393
+ if (!IFrameSplitOperator.IsString(symbol)) return null;
107394
+ var pos=symbol.lastIndexOf(".");
107395
+ if (pos<=0) return symbol;
107396
+
107397
+ return symbol.slice(0,pos);
107174
107398
  }
107399
+
107175
107400
  }
107176
107401
 
107177
107402
 
@@ -123419,13 +123644,13 @@ function JSSymbolData(ast,option,jsExecute)
123419
123644
 
123420
123645
  this.GetDynaCacheData=function(name)
123421
123646
  {
123647
+ var data=null;
123422
123648
  if (MAP_DYNAINFO_SHORTCUT.has(name))
123423
123649
  {
123424
123650
  var item=MAP_DYNAINFO_SHORTCUT.get(name);
123425
- return this.GetLatestCacheData(item.ID);
123651
+ data=this.GetLatestCacheData(item.ID);
123426
123652
  }
123427
-
123428
- return null;
123653
+ return data;
123429
123654
  }
123430
123655
 
123431
123656
  this.GetLatestIndexData=function()
@@ -124501,12 +124726,7 @@ function JSSymbolData(ast,option,jsExecute)
124501
124726
  { Url:self.RealtimeApiUrl, Type:'POST' ,
124502
124727
  Data:
124503
124728
  {
124504
- "field": [ "name", "symbol","yclose","open","price","high","low","vol"],
124505
- "symbol": self.Symbol,
124506
- "start": -1,
124507
- "count": self.MaxRequestDataCount,
124508
- "period":this.Period,
124509
- "right":this.Right
124729
+ symbol: self.Symbol,count: self.MaxRequestDataCount, period:this.Period,right:this.Right
124510
124730
  }
124511
124731
  },
124512
124732
  Self:this,
@@ -124518,6 +124738,7 @@ function JSSymbolData(ast,option,jsExecute)
124518
124738
  obj.Request.KLineDataTimeRange={Start:{ Date:this.KLineDateTimeRange.Start.Date}, End:{ Date:this.KLineDateTimeRange.End.Date} };
124519
124739
  if (this.IsNumber(this.KLineDateTimeRange.Start.Time)) obj.Request.KLineDataTimeRange.Start.Time=this.KLineDateTimeRange.Start.Time;
124520
124740
  if (this.IsNumber(this.KLineDateTimeRange.End.Time)) obj.Request.KLineDataTimeRange.End.Time=this.KLineDateTimeRange.End.Time;
124741
+ obj.Request.Data.dateRange=obj.Request.KLineDataTimeRange;
124521
124742
  }
124522
124743
 
124523
124744
  this.NetworkFilter(obj, function(data)
@@ -126879,13 +127100,14 @@ function JSSymbolData(ast,option,jsExecute)
126879
127100
  if (readArgument.Value=='') readArgument.Value=this.Symbol; //缺省使用股票代码
126880
127101
 
126881
127102
  var symbol=readArgument.Value;
127103
+ var upperSymbol=symbol.toUpperCase();
126882
127104
 
126883
127105
  //支持 SH60000, SZ000001
126884
127106
  //A股后缀小写
126885
- if (symbol.indexOf('.SH')>0) result.Symbol=symbol.replace('.SH', ".sh");
126886
- else if (symbol.indexOf('.SZ')>0) result.Symbol=symbol.replace('.SZ', ".sz");
126887
- else if (symbol.indexOf("SH")==0) result.Symbol=symbol.slice(2)+".sh";
126888
- else if (symbol.indexOf("SZ")==0) result.Symbol=symbol.slice(2)+".sz";
127107
+ if (upperSymbol.indexOf('.SH')>0) result.Symbol=symbol.replace('.SH', ".sh");
127108
+ else if (upperSymbol.indexOf('.SZ')>0) result.Symbol=symbol.replace('.SZ', ".sz");
127109
+ else if (upperSymbol.indexOf("SH")==0) result.Symbol=symbol.slice(2)+".sh";
127110
+ else if (upperSymbol.indexOf("SZ")==0) result.Symbol=symbol.slice(2)+".sz";
126889
127111
  else result.Symbol=symbol;
126890
127112
 
126891
127113
  return true;
@@ -128581,6 +128803,8 @@ function JSExecute(ast,option)
128581
128803
 
128582
128804
  this.ReadSymbolData=function(name,node)
128583
128805
  {
128806
+ if (MAP_DYNAINFO_SHORTCUT.has(name)) return this.SymbolData.GetDynaCacheData(name);
128807
+
128584
128808
  switch(name)
128585
128809
  {
128586
128810
  case 'CLOSE':
@@ -128648,7 +128872,6 @@ function JSExecute(ast,option)
128648
128872
  case 'CAPITAL':
128649
128873
  case 'EXCHANGE':
128650
128874
  case "HSL":
128651
-
128652
128875
  case "HYBLOCK":
128653
128876
  case "DYBLOCK":
128654
128877
  case "GNBLOCK":
@@ -128749,14 +128972,6 @@ function JSExecute(ast,option)
128749
128972
  return this.SymbolData.WEEKOFYEAR();
128750
128973
  case "DAYSTOTODAY":
128751
128974
  return this.SymbolData.DAYSTOTODAY();
128752
-
128753
- case "DYNA_NOW":
128754
- case "DYNA_ZAF":
128755
- case "DYNA_LB":
128756
- case "DYNA_ZAS":
128757
- case "SELLVOL":
128758
- case "BUYVOL":
128759
- return this.SymbolData.GetDynaCacheData(name);
128760
128975
  }
128761
128976
 
128762
128977
  this.ThrowUnexpectedNode(node, '变量'+name+'不存在', name);
@@ -138115,8 +138330,8 @@ function DownloadFinanceData(obj)
138115
138330
  {
138116
138331
  case 1: //FINANCE(1) 总股本(随时间可能有变化) 股
138117
138332
  case 7: //FINANCE(7) 流通股本(随时间可能有变化) 股
138118
- case "EXCHANGE": //换手率
138119
138333
  case "HSL"://换手率
138334
+ case "EXCHANGE": //换手率
138120
138335
  this.DownloadHistoryData(id);
138121
138336
  break;
138122
138337
  case 3:
@@ -138377,7 +138592,7 @@ function DownloadFinanceData(obj)
138377
138592
  if (!item.capital) return null;
138378
138593
  return { Date:date, Value:item.capital.total };
138379
138594
  case 7:
138380
- case "HSL": //换手率
138595
+ case "HSL":
138381
138596
  case "EXCHANGE": //换手率 历史流通股本
138382
138597
  if (!item.capital) return null;
138383
138598
  return { Date:date, Value:item.capital.a };
@@ -139518,6 +139733,67 @@ function GetBlackStyle()
139518
139733
  BGColor: { Selected:"rgb(234,85,4)", Default:"rgb(25,25,25)", MoveOn:"rgb(59,59,59)" },
139519
139734
  BorderColor:"rgb(60,60,60)",
139520
139735
  }
139736
+ },
139737
+
139738
+ StockInfo:
139739
+ {
139740
+ Header:
139741
+ {
139742
+ Name:
139743
+ {
139744
+ //Font:`${20*GetDevicePixelRatio()}px 微软雅黑`,
139745
+ Color:"rgb(255,255,0)",
139746
+ //Margin:{ Left:5, Top:10, Bottom:5, Right:10, YOffset:0 },
139747
+ },
139748
+
139749
+ Symbol:
139750
+ {
139751
+ //Font:`${18*GetDevicePixelRatio()}px 微软雅黑`,
139752
+ Color:"rgb(250,250,250)",
139753
+ //Margin:{ Left:5, Top:10, Bottom:5, Right:5, YOffset:0 },
139754
+ },
139755
+
139756
+ AryCell:
139757
+ [
139758
+ //{ Font:`bold ${16*GetDevicePixelRatio()}px 微软雅黑`, Margin:{ Left:5, Top:5, Bottom:5, Right:15, YOffset:0 } },
139759
+ //{ Font:`${16*GetDevicePixelRatio()}px 微软雅黑`, Margin:{ Left:5, Top:5, Bottom:5, Right:15, YOffset:0 } },
139760
+ //{ Font:`${16*GetDevicePixelRatio()}px 微软雅黑`, Margin:{ Left:5, Top:5, Bottom:5, Right:5, YOffset:0 } }
139761
+ ],
139762
+
139763
+ TextColor:"rgb(250,250,250)",
139764
+
139765
+ BottomLine:{ Enable:true, Color:"rgb(60,60,60)"} , //底部分割线
139766
+ },
139767
+
139768
+ BuySell:
139769
+ {
139770
+ //Font:14*GetDevicePixelRatio() +'px 微软雅黑',
139771
+ TitleColor:"rgb(250,250,250)",
139772
+ VolColor:"rgb(250,250,250)",
139773
+ //Margin:{ Left:0, Top:0, Bottom:0, Right:0 },
139774
+ //CellMargin:{ Top:5, Bottom:5, YOffset:0, Left:5, Right:5, YOffset:-5 },
139775
+ BottomLine:{ Enable:true, Color:"rgb(60,60,60)"} , //底部分割线
139776
+ TopLine:{ Enable:false, Color:"rgb(60,60,60)"} , //顶部分割线
139777
+
139778
+ CenterLine:
139779
+ {
139780
+ NoneColor:"rgb(60,60,60)",
139781
+ }
139782
+ },
139783
+
139784
+ Table:
139785
+ {
139786
+ Font:14*GetDevicePixelRatio() +'px 微软雅黑',
139787
+ TitleColor:"rgb(250,250,250)",
139788
+ TextColor:"rgb(250,250,250)",
139789
+ //Margin:{ Left:0, Top:0, Bottom:0, Right:0 },
139790
+ //CellMargin:{ Top:5, Bottom:5, YOffset:0, Left:5, Right:5, YOffset:-5 },
139791
+ },
139792
+
139793
+ UpTextColor:"rgb(238,21,21)", //上涨文字颜色
139794
+ DownTextColor:"rgb(25,158,0)", //下跌文字颜色
139795
+ UnchangeTextColor:"rgb(90,90,90)", //平盘文字颜色
139796
+ BorderColor:'rgb(38,38,41)', //边框线
139521
139797
  }
139522
139798
 
139523
139799
  };
@@ -139586,9 +139862,18 @@ function JSDealChart(divElement)
139586
139862
  this.OnSize=function()
139587
139863
  {
139588
139864
  //画布大小通过div获取
139589
- var height=parseInt(this.DivElement.style.height.replace("px",""));
139865
+ var height=this.DivElement.offsetHeight;
139866
+ var width=this.DivElement.offsetWidth;
139867
+ if (this.DivElement.style.height && this.DivElement.style.width)
139868
+ {
139869
+ if (this.DivElement.style.height.includes("px"))
139870
+ height=parseInt(this.DivElement.style.height.replace("px",""));
139871
+ if (this.DivElement.style.width.includes("px"))
139872
+ width=parseInt(this.DivElement.style.width.replace("px",""));
139873
+ }
139874
+
139590
139875
  this.CanvasElement.height=height;
139591
- this.CanvasElement.width=parseInt(this.DivElement.style.width.replace("px",""));
139876
+ this.CanvasElement.width=width;
139592
139877
  this.CanvasElement.style.width=this.CanvasElement.width+'px';
139593
139878
  this.CanvasElement.style.height=this.CanvasElement.height+'px';
139594
139879
 
@@ -140053,8 +140338,8 @@ function JSDealChartContainer(uielement)
140053
140338
  this.ChangeSymbol=function(symbol, option)
140054
140339
  {
140055
140340
  this.Symbol=symbol;
140056
- this.Data=null;
140057
- this.SourceData=null;
140341
+ this.Data={ DataOffset:0, Data:[] }; //分笔数据
140342
+ this.SourceData={DataOffset:0, Data:[] }; //原始分笔数据
140058
140343
 
140059
140344
  var chart=this.ChartPaint[0];
140060
140345
  if (chart) chart.Data=null;
@@ -140701,17 +140986,23 @@ JSDealChartContainer.JsonDataToDealData=function(data)
140701
140986
 
140702
140987
  if (item[100]) dealItem.Guid=item[100];
140703
140988
 
140704
- //10个数值型 101-199
140705
- if (IFrameSplitOperator.IsNumber(item[101])) dealItem.ReserveNumber1=item[101];
140706
- if (IFrameSplitOperator.IsNumber(item[102])) dealItem.ReserveNumber2=item[102];
140707
- if (IFrameSplitOperator.IsNumber(item[103])) dealItem.ReserveNumber3=item[103];
140708
- if (IFrameSplitOperator.IsNumber(item[104])) dealItem.ReserveNumber4=item[104];
140709
- if (IFrameSplitOperator.IsNumber(item[105])) dealItem.ReserveNumber5=item[105];
140710
- if (IFrameSplitOperator.IsNumber(item[106])) dealItem.ReserveNumber6=item[106];
140711
- if (IFrameSplitOperator.IsNumber(item[107])) dealItem.ReserveNumber7=item[107];
140712
- if (IFrameSplitOperator.IsNumber(item[108])) dealItem.ReserveNumber8=item[108];
140713
- if (IFrameSplitOperator.IsNumber(item[109])) dealItem.ReserveNumber9=item[109];
140714
- if (IFrameSplitOperator.IsNumber(item[110])) dealItem.ReserveNumber10=item[110];
140989
+ //柱子类型
140990
+ if (item[50]) dealItem.MultiBar1=item[50];
140991
+ if (item[51]) dealItem.MultiBar2=item[51];
140992
+ if (item[52]) dealItem.MultiBar3=item[52];
140993
+ if (item[53]) dealItem.MultiBar4=item[53];
140994
+
140995
+ //10个数值型 101-199
140996
+ if (IFrameSplitOperator.IsNumber(item[101])) dealItem.ReserveNumber1=item[101];
140997
+ if (IFrameSplitOperator.IsNumber(item[102])) dealItem.ReserveNumber2=item[102];
140998
+ if (IFrameSplitOperator.IsNumber(item[103])) dealItem.ReserveNumber3=item[103];
140999
+ if (IFrameSplitOperator.IsNumber(item[104])) dealItem.ReserveNumber4=item[104];
141000
+ if (IFrameSplitOperator.IsNumber(item[105])) dealItem.ReserveNumber5=item[105];
141001
+ if (IFrameSplitOperator.IsNumber(item[106])) dealItem.ReserveNumber6=item[106];
141002
+ if (IFrameSplitOperator.IsNumber(item[107])) dealItem.ReserveNumber7=item[107];
141003
+ if (IFrameSplitOperator.IsNumber(item[108])) dealItem.ReserveNumber8=item[108];
141004
+ if (IFrameSplitOperator.IsNumber(item[109])) dealItem.ReserveNumber9=item[109];
141005
+ if (IFrameSplitOperator.IsNumber(item[110])) dealItem.ReserveNumber10=item[110];
140715
141006
 
140716
141007
  //10个字符型 201-299
140717
141008
  if (IFrameSplitOperator.IsString(item[201]) || IFrameSplitOperator.IsObject(item[201])) dealItem.ReserveString1=item[201];
@@ -140822,13 +141113,14 @@ var DEAL_COLUMN_ID=
140822
141113
  UPDOWN_ID:5, //涨跌
140823
141114
  STRING_TIME_ID:6, //字符串时间
140824
141115
  INDEX_ID:7, //序号 从1开始
140825
- MULTI_BAR_ID:8, //多颜色柱子
141116
+
140826
141117
  CENTER_BAR_ID:9, //中心柱子
140827
141118
  CUSTOM_TEXT_ID:10, //自定义文本
140828
141119
 
140829
141120
  SYMBOL_ID:11, //股票代码
140830
141121
  NAME_ID:12, //股票名称
140831
141122
 
141123
+
140832
141124
 
140833
141125
  //预留数值类型 10个
140834
141126
  RESERVE_NUMBER1_ID:201, //ReserveNumber1:
@@ -140853,6 +141145,11 @@ var DEAL_COLUMN_ID=
140853
141145
  RESERVE_STRING8_ID:308,
140854
141146
  RESERVE_STRING9_ID:309,
140855
141147
  RESERVE_STRING10_ID:310,
141148
+
141149
+ MULTI_BAR_ID:50, //多颜色柱子
141150
+ MULTI_BAR2_ID:51,
141151
+ MULTI_BAR3_ID:52,
141152
+ MULTI_BAR4_ID:53
140856
141153
  }
140857
141154
 
140858
141155
  var MAP_DEAL_COLUMN_FIELD=new Map(
@@ -140861,6 +141158,11 @@ var MAP_DEAL_COLUMN_FIELD=new Map(
140861
141158
  [DEAL_COLUMN_ID.NAME_ID, "Name"],
140862
141159
  [DEAL_COLUMN_ID.PRICE_ID, "Price"],
140863
141160
 
141161
+ [DEAL_COLUMN_ID.MULTI_BAR_ID, "MultiBar1"],
141162
+ [DEAL_COLUMN_ID.MULTI_BAR2_ID, "MultiBar2"],
141163
+ [DEAL_COLUMN_ID.MULTI_BAR3_ID, "MultiBar3"],
141164
+ [DEAL_COLUMN_ID.MULTI_BAR4_ID, "MultiBar4"],
141165
+
140864
141166
  [DEAL_COLUMN_ID.RESERVE_NUMBER1_ID,"ReserveNumber1"],
140865
141167
  [DEAL_COLUMN_ID.RESERVE_NUMBER2_ID,"ReserveNumber2"],
140866
141168
  [DEAL_COLUMN_ID.RESERVE_NUMBER3_ID,"ReserveNumber3"],
@@ -141017,7 +141319,7 @@ function ChartDealList()
141017
141319
 
141018
141320
  if (item.ChartTooltip) colItem.ChartTooltip={ Enable:item.ChartTooltip.Enable, Type:item.ChartTooltip.Type }; //图形提示信息
141019
141321
 
141020
- if (item.Type==DEAL_COLUMN_ID.MULTI_BAR_ID || item.Type==DEAL_COLUMN_ID.CENTER_BAR_ID)
141322
+ if (item.Type==DEAL_COLUMN_ID.CENTER_BAR_ID)
141021
141323
  {
141022
141324
  if (!IFrameSplitOperator.IsNumber(item.DataIndex)) continue;
141023
141325
  colItem.DataIndex=item.DataIndex; //柱子数据所在原始数据索引列
@@ -141030,6 +141332,8 @@ function ChartDealList()
141030
141332
  {
141031
141333
  if (item.Format) colItem.Format=item.Format; //数据格式化设置{ Type:1=原始 2=千分位分割 3=万亿转换, ExFloatPrecision:万亿转换以后的小数位数 }
141032
141334
  if (IFrameSplitOperator.IsNumber(item.ColorType)) colItem.ColorType=item.ColorType; //0=默认 1=(>0, =0, <0) 2=(>=0, <0)
141335
+ if (IFrameSplitOperator.IsNumber(item.FloatPrecision)) colItem.FloatPrecision=item.FloatPrecision;
141336
+ if (item.StringFormat) colItem.StringFormat=item.StringFormat; //"{0}%" 输出增加固定字符
141033
141337
  }
141034
141338
 
141035
141339
  this.Column.push(colItem);
@@ -141049,7 +141353,7 @@ function ChartDealList()
141049
141353
  { Type:DEAL_COLUMN_ID.STRING_TIME_ID, Title:"时间", TextAlign:"center", Width:null, TextColor:g_JSChartResource.DealList.FieldColor.Time, MaxText:"88:88:88" },
141050
141354
  { Type:DEAL_COLUMN_ID.INDEX_ID, Title:"序号", TextAlign:"center", Width:null, TextColor:g_JSChartResource.DealList.FieldColor.Index, MaxText:"88888" },
141051
141355
 
141052
- { Type:DEAL_COLUMN_ID.MULTI_BAR_ID, Title:"柱子", TextAlign:"center", Width:null, TextColor:g_JSChartResource.DealList.FieldColor.BarTitle, MaxText:"888888" },
141356
+
141053
141357
  { Type:DEAL_COLUMN_ID.CENTER_BAR_ID, Title:"柱子2", TextAlign:"center", Width:null, TextColor:g_JSChartResource.DealList.FieldColor.BarTitle, MaxText:"888888" },
141054
141358
  { Type:DEAL_COLUMN_ID.CUSTOM_TEXT_ID, Title:"自定义", TextAlign:"center", Width:null, TextColor:g_JSChartResource.DealList.FieldColor.Text, MaxText:"擎擎擎擎擎" },
141055
141359
 
@@ -141077,6 +141381,11 @@ function ChartDealList()
141077
141381
  { Type:DEAL_COLUMN_ID.RESERVE_STRING8_ID, Title:"文字8", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
141078
141382
  { Type:DEAL_COLUMN_ID.RESERVE_STRING9_ID, Title:"文字9", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
141079
141383
  { Type:DEAL_COLUMN_ID.RESERVE_STRING10_ID, Title:"文字10", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
141384
+
141385
+ { Type:DEAL_COLUMN_ID.MULTI_BAR_ID, Title:"柱子", TextAlign:"center", Width:null, TextColor:g_JSChartResource.DealList.FieldColor.BarTitle, MaxText:"888888" },
141386
+ { Type:DEAL_COLUMN_ID.MULTI_BAR2_ID, Title:"柱子2", TextAlign:"center", Width:null, TextColor:g_JSChartResource.DealList.FieldColor.BarTitle, MaxText:"888888" },
141387
+ { Type:DEAL_COLUMN_ID.MULTI_BAR3_ID, Title:"柱子3", TextAlign:"center", Width:null, TextColor:g_JSChartResource.DealList.FieldColor.BarTitle, MaxText:"888888" },
141388
+ { Type:DEAL_COLUMN_ID.MULTI_BAR4_ID, Title:"柱子4", TextAlign:"center", Width:null, TextColor:g_JSChartResource.DealList.FieldColor.BarTitle, MaxText:"888888" },
141080
141389
 
141081
141390
  ];
141082
141391
 
@@ -141417,7 +141726,7 @@ function ChartDealList()
141417
141726
  {
141418
141727
  text=(dataIndex+1).toString();
141419
141728
  }
141420
- else if (item.Type==DEAL_COLUMN_ID.MULTI_BAR_ID)
141729
+ else if (this.IsMulitBar(item.Type))
141421
141730
  {
141422
141731
  var rtItem={Left:left, Top:top, Width:itemWidth, Height:this.RowHeight};
141423
141732
  this.DrawMultiBar(item, data, rtItem);
@@ -141518,6 +141827,11 @@ function ChartDealList()
141518
141827
  break;
141519
141828
  }
141520
141829
  }
141830
+
141831
+ if (column.StringFormat && text)
141832
+ {
141833
+ text=column.StringFormat.replace("{0}", text);
141834
+ }
141521
141835
 
141522
141836
  drawInfo.Text=text;
141523
141837
  }
@@ -141639,8 +141953,10 @@ function ChartDealList()
141639
141953
 
141640
141954
  this.DrawMultiBar=function(colunmInfo, data, rtItem)
141641
141955
  {
141642
- if (!data.Source || !IFrameSplitOperator.IsNonEmptyArray(data.Source)) return false;
141643
- var barData=data.Source[colunmInfo.DataIndex]; //{ Value:[0.4,0,2], Color:[0,1] };
141956
+ var fieldName=MAP_DEAL_COLUMN_FIELD.get(colunmInfo.Type);
141957
+ if (!data || !fieldName) return;
141958
+
141959
+ var barData=data[fieldName]; //{ Value:[0.4,0,2], Color:[0,1] };
141644
141960
  if (!barData) return false;
141645
141961
  if (!IFrameSplitOperator.IsNonEmptyArray(barData.Value)) return false;
141646
141962
 
@@ -141828,6 +142144,16 @@ function ChartDealList()
141828
142144
  return ARARY_TYPE.includes(value);
141829
142145
  }
141830
142146
 
142147
+ this.IsMulitBar=function(value)
142148
+ {
142149
+ var ARARY_TYPE=
142150
+ [
142151
+ DEAL_COLUMN_ID.MULTI_BAR_ID,DEAL_COLUMN_ID.MULTI_BAR2_ID,DEAL_COLUMN_ID.MULTI_BAR3_ID,DEAL_COLUMN_ID.MULTI_BAR4_ID,
142152
+ ];
142153
+
142154
+ return ARARY_TYPE.includes(value);
142155
+ }
142156
+
141831
142157
  this.IsReserveNumber=function(value)
141832
142158
  {
141833
142159
  var ARARY_TYPE=
@@ -152484,17 +152810,17 @@ function JSTReportChart(divElement)
152484
152810
  this.JSChartContainer; //表格控件
152485
152811
  this.ResizeListener; //大小变动监听
152486
152812
 
152487
- //h5 canvas
152488
- this.CanvasElement=document.createElement("canvas");
152489
- this.CanvasElement.className='jstreport-drawing';
152490
- this.CanvasElement.id=Guid();
152491
- this.CanvasElement.setAttribute("tabindex",0);
152492
- if (this.CanvasElement.style) this.CanvasElement.style.outline='none';
152493
- if(divElement.hasChildNodes())
152494
- {
152495
- JSConsole.Chart.Log("[JSTReportChart::JSReportChart] divElement hasChildNodes", divElement.childNodes);
152496
- }
152497
- divElement.appendChild(this.CanvasElement);
152813
+ //h5 canvas
152814
+ this.CanvasElement=document.createElement("canvas");
152815
+ this.CanvasElement.className='jstreport-drawing';
152816
+ this.CanvasElement.id=Guid();
152817
+ this.CanvasElement.setAttribute("tabindex",0);
152818
+ if (this.CanvasElement.style) this.CanvasElement.style.outline='none';
152819
+ if(divElement.hasChildNodes())
152820
+ {
152821
+ JSConsole.Chart.Log("[JSTReportChart::JSReportChart] divElement hasChildNodes", divElement.childNodes);
152822
+ }
152823
+ divElement.appendChild(this.CanvasElement);
152498
152824
 
152499
152825
 
152500
152826
  this.OnSize=function()
@@ -167821,7 +168147,7 @@ function HQChartScriptWorker()
167821
168147
 
167822
168148
 
167823
168149
 
167824
- var HQCHART_VERSION="1.1.15389";
168150
+ var HQCHART_VERSION="1.1.15427";
167825
168151
 
167826
168152
  function PrintHQChartVersion()
167827
168153
  {