hqchart 1.1.15808 → 1.1.15821

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.
@@ -2038,7 +2038,10 @@ function JSFloatTooltip()
2038
2038
  this.FormatPerformanceForecastText(item,aryText);
2039
2039
  break;
2040
2040
  default:
2041
- this.FormatDefaultKLineInfoText(item, aryText);
2041
+ if (infoType>=KLINE_INFO_TYPE.DRAGON_TIGER_EX_START && infoType<=KLINE_INFO_TYPE.DRAGON_TIGER_EX_END)
2042
+ this.FormatDragonTigerText(item,defaultfloatPrecision,aryText);
2043
+ else
2044
+ this.FormatDefaultKLineInfoText(item, aryText);
2042
2045
  break;
2043
2046
  }
2044
2047
  }
@@ -57264,6 +57264,8 @@ HQData.DragonTiger_RequestData=function(data,callback)
57264
57264
  netBuyAmount:kItem.Amount*0.05, //机构买入净额
57265
57265
  netBuyRatio:4.2, //净买额占总成交比
57266
57266
  amount:kItem.Amount, //市场总成交额
57267
+ //color:"rgb(100,100,0)",
57268
+ //infoType:1,
57267
57269
 
57268
57270
  aryText:
57269
57271
  [
@@ -1076,9 +1076,9 @@ function ChartStatusBarStockData()
1076
1076
  break;
1077
1077
  }
1078
1078
  }
1079
- }
1080
1079
 
1081
- if (column.StringFormat && text) text=column.StringFormat.replace('{Value}',text);
1080
+ if (column.StringFormat && text) text=column.StringFormat.replace('{Value}',text);
1081
+ }
1082
1082
 
1083
1083
  return text;
1084
1084
  }
@@ -2860,6 +2860,12 @@ var JSCHART_EVENT_ID=
2860
2860
 
2861
2861
  ON_CLICK_UP_SCROLL_TEXT_ITEM:383,
2862
2862
  ON_RCLICK_UP_SCROLL_TEXT_ITEM:384,
2863
+
2864
+ //价格列表
2865
+ ON_CLICK_ORDER_CELL:401,
2866
+ ON_RCLICK_ORDER_CELL:402,
2867
+ ON_DBCLICK_ORDER_ROW:403,
2868
+ ON_MOVEON_ORDER_CELL:404, //鼠标在单元格
2863
2869
  }
2864
2870
 
2865
2871
  var JSCHART_OPERATOR_ID=
@@ -24671,6 +24677,10 @@ var KLINE_INFO_TYPE=
24671
24677
  //扩展信息
24672
24678
  EXTEND_INFO_START:301,
24673
24679
  EXTEND_INFO_END:399,
24680
+
24681
+ //龙虎榜预留类型
24682
+ DRAGON_TIGER_EX_START:401,
24683
+ DRAGON_TIGER_EX_END:499,
24674
24684
  }
24675
24685
 
24676
24686
  function KLineInfoData()
@@ -31868,7 +31878,7 @@ function ChartKLine()
31868
31878
  var iconTop=item.YMax+1*pixelTatio;
31869
31879
  var iconBottom=item.YMin+1*pixelTatio+iconSize;
31870
31880
  var drawTop=true;
31871
- var yOffset=0;
31881
+ var yOffset=0, yTopOffset=0;
31872
31882
  for(var i in infoData.Data)
31873
31883
  {
31874
31884
  var infoItem=infoData.Data[i];
@@ -31904,35 +31914,41 @@ function ChartKLine()
31904
31914
  if (infoPosition===1) //底部
31905
31915
  {
31906
31916
  var yBottom=bottom+yOffset;
31907
- this.Canvas.fillText(icon.Text,item.XCenter,yBottom,iconSize);
31908
31917
  var iconRect=new Rect(item.XCenter-iconSize/2,yBottom-iconSize,iconSize,iconSize);
31918
+ this.DrawInfoIcon(item, icon, iconRect);
31919
+
31909
31920
  var infoCache={ Data:new Array(infoItem), Rect:iconRect, Type:infoItem.InfoType, TextRect:{X:item.XCenter, Y:yBottom}, IsShowNumber:bShowNumber };
31910
31921
  mapImage.set(infoItem.InfoType,infoCache);
31911
31922
  yOffset-=iconSize;
31912
31923
  }
31913
31924
  else if (infoPosition===2) //顶部
31914
31925
  {
31915
- var yBottom=topTitle+iconSize+1;
31916
- this.Canvas.fillText(icon.Text,item.XCenter,yBottom,iconSize);
31926
+ var yBottom=topTitle+iconSize+1+yTopOffset;
31917
31927
  var iconRect=new Rect(item.XCenter-iconSize/2,yBottom-iconSize,iconSize,iconSize);
31928
+ this.DrawInfoIcon(item, icon, iconRect);
31929
+
31918
31930
  var infoCache={ Data:new Array(infoItem), Rect:iconRect, Type:infoItem.InfoType, TextRect:{X:item.XCenter, Y:yBottom}, IsShowNumber:bShowNumber };
31919
31931
  mapImage.set(infoItem.InfoType,infoCache);
31932
+
31933
+ yTopOffset+=iconSize;
31920
31934
  }
31921
31935
  else
31922
31936
  {
31923
- if (drawTop)
31937
+ if (drawTop) //K线上面
31924
31938
  {
31925
- this.Canvas.fillText(icon.Text,item.XCenter,iconTop,iconSize);
31926
31939
  var iconRect=new Rect(item.XCenter-iconSize/2,iconTop-iconSize,iconSize,iconSize);
31940
+ this.DrawInfoIcon(item, icon, iconRect);
31941
+
31927
31942
  var infoCache={ Data:new Array(infoItem), Rect:iconRect, Type:infoItem.InfoType, TextRect:{X:item.XCenter, Y:iconTop}, IsShowNumber:bShowNumber };
31928
31943
  mapImage.set(infoItem.InfoType,infoCache);
31929
31944
  iconTop-=iconSize;
31930
31945
  if (iconTop-iconSize<top ) drawTop=false;
31931
31946
  }
31932
- else //上面显示不下,就显示在下面
31947
+ else //上面显示不下,就显示在K线下面
31933
31948
  {
31934
- this.Canvas.fillText(icon.Text,item.XCenter,iconBottom,iconSize);
31935
31949
  var iconRect=new Rect(item.XCenter-iconSize/2,iconBottom-iconSize,iconSize,iconSize);
31950
+ this.DrawInfoIcon(item, icon, iconRect);
31951
+
31936
31952
  var infoCache={ Data:new Array(infoItem), Rect:iconRect, Type:infoItem.InfoType, TextRect:{X:item.XCenter, Y:iconBottom} , IsShowNumber:bShowNumber};
31937
31953
  mapImage.set(infoItem.InfoType,infoCache);
31938
31954
  iconBottom+=iconSize;
@@ -31972,6 +31988,18 @@ function ChartKLine()
31972
31988
  this.ClipClient(isHScreen);
31973
31989
  }
31974
31990
 
31991
+ this.DrawInfoIcon=function(item, iconItem, rtIcon)
31992
+ {
31993
+ if (iconItem.BGColor)
31994
+ {
31995
+ this.Canvas.fillStyle=iconItem.BGColor;
31996
+ this.Canvas.fillRect(rtIcon.X, rtIcon.Y, rtIcon.Width, rtIcon.Height);
31997
+ }
31998
+
31999
+ this.Canvas.fillStyle=iconItem.Color;
32000
+ this.Canvas.fillText(iconItem.Text,item.XCenter,rtIcon.Y+rtIcon.Height, rtIcon.Width);
32001
+ }
32002
+
31975
32003
  //画交易图标
31976
32004
  this.DrawTradeIcon=function()
31977
32005
  {
@@ -80701,7 +80729,15 @@ function JSChartResource()
80701
80729
  },
80702
80730
  DragonTiger: //龙虎榜
80703
80731
  {
80704
- IconFont: { Family:'iconfont', Text:'\ue62f', HScreenText:'\ue68a' ,Color:'#b22626' } //SVG 文本
80732
+ //默认值
80733
+ IconFont: { Family:'iconfont', Text:'\ue62f', HScreenText:'\ue68a' ,Color:'#b22626' }, //SVG 文本
80734
+
80735
+ //自定义值
80736
+ AryIconFont:
80737
+ [
80738
+ { Family:'iconfont', Text:'\ue6c3', HScreenText:'\ue6c3' ,Color:'rgb(255,165,0)'},
80739
+ { Family:'iconfont', Text:'\ue6c5', HScreenText:'\ue6c5' ,Color:'rgb(0,191,255)'},
80740
+ ]
80705
80741
  },
80706
80742
  News: //新闻
80707
80743
  {
@@ -82195,6 +82231,52 @@ function JSChartResource()
82195
82231
  }
82196
82232
  }
82197
82233
 
82234
+ this.OrderList=
82235
+ {
82236
+ BorderColor:'rgba(192,192,192, 0.3)', //边框线
82237
+
82238
+ Header:
82239
+ {
82240
+ Color:"RGB(60,60,60)",
82241
+ Margin:{ Left:5, Right:5, Top:2, Bottom:4 },
82242
+ Font:{ Size:14, Name:"微软雅黑" }
82243
+ },
82244
+
82245
+ Item:
82246
+ {
82247
+ Margin:{ Top:2, Bottom:4,Left:5, Right:5 }, //单元格四周间距
82248
+ Font:{ Size:15, Name:"微软雅黑"},
82249
+ },
82250
+
82251
+ FieldColor:
82252
+ {
82253
+ Text:"rgb(60,60,60)", //默认文本
82254
+ },
82255
+
82256
+ UpTextColor:"rgb(238,21,21)", //上涨文字颜色
82257
+ DownTextColor:"rgb(25,158,0)", //下跌文字颜色
82258
+ UnchagneTextColor:"rgb(0,0,0)", //平盘文字颜色
82259
+
82260
+ Selected:
82261
+ {
82262
+ BGColor:"rgb(180,240,240)",
82263
+ LineColor:"rgb(128,128,128)",
82264
+ LineWidth:2,
82265
+ },
82266
+
82267
+ MoveOn:
82268
+ {
82269
+ LineColor:"rgb(55, 131, 250)",
82270
+ LineWidth:2,
82271
+ },
82272
+
82273
+ //自定义颜色
82274
+ AryColor:
82275
+ [
82276
+
82277
+ ]
82278
+ }
82279
+
82198
82280
 
82199
82281
  //自定义风格
82200
82282
  this.SetStyle=function(style)
@@ -83158,7 +83240,68 @@ function JSChartResource()
83158
83240
  if (style.StatusBar) this.SetStatusBar(style.StatusBar);
83159
83241
  if (style.ScrollText) this.SetScrollText(style.ScrollText);
83160
83242
  if (style.MinuteInfo) this.SetMinuteInfo(style.MinuteInfo);
83243
+ if (style.OrderList) this.SetOrderList(style.OrderList);
83244
+
83245
+ }
83246
+
83247
+ this.SetOrderList=function(style)
83248
+ {
83249
+ var dest=this.OrderList;
83250
+ if (style.BorderColor) dest.BorderColor=style.BorderColor;
83251
+
83252
+ if (style.UpTextColor) dest.UpTextColor=style.UpTextColor;
83253
+ if (style.DownTextColor) dest.DownTextColor=style.DownTextColor;
83254
+ if (style.UnchangeTextColor) dest.UnchangeTextColor=style.UnchangeTextColor;
83255
+
83256
+ if (style.Header)
83257
+ {
83258
+ var subItem=style.Header;
83259
+ var subDest=this.OrderList.Header;
83260
+ if (subItem.Color) subDest.Color=subItem.Color;
83261
+ if (subItem.Margin) CopyMarginConfig(subDest.Margin,subItem.Margin);
83262
+ if (subItem.Font)
83263
+ {
83264
+ if (IFrameSplitOperator.IsNumber(subItem.Font.Size)) subDest.Font.Size=subItem.Font.Size;
83265
+ if (subItem.Font.Name) subDest.Font.Name=subItem.Font.Name;
83266
+ }
83267
+ }
83268
+
83269
+ if (style.Item)
83270
+ {
83271
+ var subItem=style.Item;
83272
+ var subDest=this.OrderList.Item;
83273
+ if (subItem.Margin) CopyMarginConfig(subDest.Margin,subItem.Margin);
83274
+ if (subItem.Font)
83275
+ {
83276
+ if (IFrameSplitOperator.IsNumber(subItem.Font.Size)) subDest.Font.Size=subItem.Font.Size;
83277
+ if (subItem.Font.Name) subDest.Font.Name=subItem.Font.Name;
83278
+ }
83279
+ }
83280
+
83281
+ if (style.FieldColor)
83282
+ {
83283
+ var subItem=style.Item;
83284
+ var subDest=this.OrderList.Item;
83285
+ if (subItem.Text) subDest.Text=subItem.Text;
83286
+ }
83161
83287
 
83288
+ if (style.Selected)
83289
+ {
83290
+ var subItem=style.Selected;
83291
+ var subDest=this.OrderList.Selected;
83292
+ if (subItem.BGColor) subDest.BGColor=subItem.BGColor;
83293
+
83294
+ if (subItem.LineColor) subDest.LineColor=subItem.LineColor;
83295
+ if (IFrameSplitOperator.IsNumber(subItem.LineWidth)) subDest.LineWidth=subItem.LineWidth;
83296
+ }
83297
+
83298
+ if (style.MoveOn)
83299
+ {
83300
+ var subItem=style.MoveOn;
83301
+ var subDest=this.OrderList.MoveOn;
83302
+ if (subItem.LineColor) subDest.LineColor=subItem.LineColor;
83303
+ if (IFrameSplitOperator.IsNumber(subItem.LineWidth)) subDest.LineWidth=subItem.LineWidth;
83304
+ }
83162
83305
  }
83163
83306
 
83164
83307
  this.SetMinuteInfo=function(style)
@@ -90709,25 +90852,44 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
90709
90852
  if (bUpdate==true) this.ReqeustKLineInfoData({ FunctionName:"SetKLineInfo" });
90710
90853
  }
90711
90854
 
90712
- //添加信息地雷
90713
- this.AddKLineInfo=function(infoName,bUpdate)
90855
+
90856
+ //option={ ClassName:, Name: }
90857
+ this.GetKLineInfo=function(option)
90714
90858
  {
90715
- var classInfo=JSKLineInfoMap.GetClassInfo(infoName);
90716
- if (!classInfo)
90859
+ if (!option) return null;
90860
+ if (!IFrameSplitOperator.IsNonEmptyArray(this.ChartInfo)) return null;
90861
+
90862
+ var className=null;
90863
+ if (option.Name)
90717
90864
  {
90718
- console.warn("[KLineChartContainer::AddKLineInfo] can't find infoname=", infoName);
90719
- return;
90865
+ var classInfo=JSKLineInfoMap.GetClassInfo(option.Name);
90866
+ if (classInfo) className=classInfo.ClassName;
90720
90867
  }
90721
90868
 
90722
- for(var i in this.ChartInfo)
90869
+ if (!className) return null;
90870
+
90871
+ for(var i=0; i<this.ChartInfo.length; ++i)
90723
90872
  {
90724
90873
  var item=this.ChartInfo[i];
90725
- if (item.ClassName==classInfo.ClassName) //已经存在
90726
- return;
90874
+ if (item.ClassName==className) //已经存在
90875
+ return item;
90727
90876
  }
90728
90877
 
90878
+ return null;
90879
+ }
90880
+
90881
+ //添加信息地雷
90882
+ this.AddKLineInfo=function(infoName,bUpdate)
90883
+ {
90884
+ var item=this.GetKLineInfo({ Name:infoName });
90885
+ if (item) return;
90886
+
90729
90887
  var infoItem=JSKLineInfoMap.Get(infoName);
90730
- if (!infoItem) return;
90888
+ if (!infoItem)
90889
+ {
90890
+ console.warn(`[KLineChartContainer::AddKLineInfo] can't find infoName=${infoName}`);
90891
+ return;
90892
+ }
90731
90893
 
90732
90894
  var item=infoItem.Create();
90733
90895
  item.MaxRequestDataCount=this.MaxRequestDataCount;
@@ -90739,39 +90901,28 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
90739
90901
  }
90740
90902
  }
90741
90903
 
90742
- //更新信息地雷数据 Option :{ InsertNew:, 如果没有找到对应的地雷,是否插入新的地雷, Update:是否立即请求数据 }
90904
+ //更新信息地雷列表 Option :{ InsertNew:, 如果没有找到对应的地雷,是否插入新的地雷, Update:是否立即请求数据 }
90743
90905
  this.UpdateKLineInfo=function(infoName, option)
90744
90906
  {
90745
- var classInfo=JSKLineInfoMap.GetClassInfo(infoName);
90746
- if (!classInfo)
90747
- {
90748
- console.warn("[KLineChartContainer::UpdateKLineInfo] can't find infoname=", infoName);
90749
- return;
90750
- }
90751
-
90752
90907
  var bInsertNew=false, bUpdate=false;
90753
90908
  if (option)
90754
90909
  {
90755
90910
  if (IFrameSplitOperator.IsBoolean(option.InsertNew)) bInsertNew=option.InsertNew;
90756
90911
  if (IFrameSplitOperator.IsBoolean(option.Update)) bUpdate=option.Update;
90757
90912
  }
90758
- var finder=null;
90759
- for(var i=0;i<this.ChartInfo.length; ++i)
90760
- {
90761
- var item=this.ChartInfo[i];
90762
- if (item.ClassName==classInfo.ClassName)
90763
- {
90764
- finder=item;
90765
- break;
90766
- }
90767
- }
90768
90913
 
90914
+ var finder=this.GetKLineInfo({ Name:infoName });
90915
+
90769
90916
  if (!finder)
90770
90917
  {
90771
90918
  if (bInsertNew===true)
90772
90919
  {
90773
90920
  var infoItem=JSKLineInfoMap.Get(infoName);
90774
- if (!infoItem) return;
90921
+ if (!infoItem)
90922
+ {
90923
+ console.warn(`[KLineChartContainer::UpdateKLineInfo] can't find infoname=${infoName}`);
90924
+ return;
90925
+ }
90775
90926
 
90776
90927
  var item=infoItem.Create();
90777
90928
  item.MaxRequestDataCount=this.MaxRequestDataCount;
@@ -101118,7 +101269,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
101118
101269
  strDescription+="5. High:这一分钟内最高价\r\n";
101119
101270
  strDescription+="6. Low:这一分钟内最低价\r\n";
101120
101271
  strDescription+="7. Amount:这一分钟内总的成交金额\r\n";
101121
- strDescription+="8. Vol:这一分钟内总的成交量\r\n";
101272
+ strDescription+="8. Vol:这一分钟内总的成交量(股)\r\n";
101122
101273
  strDescription+="9. AvPrice:均价\r\n";
101123
101274
  strDescription+="10. YClose:昨收价\r\n";
101124
101275
  strDescription+="11. YClearing:昨结算价\r\n";
@@ -104969,7 +105120,7 @@ JSKLineInfoMap.GetClassInfo=function(id)
104969
105120
  return JSKLineInfoMap.Get(id);
104970
105121
  }
104971
105122
 
104972
- JSKLineInfoMap.GetIconUrl=function(type)
105123
+ JSKLineInfoMap.GetIconUrl=function(type, item)
104973
105124
  {
104974
105125
  switch(type)
104975
105126
  {
@@ -105024,6 +105175,16 @@ JSKLineInfoMap.GetIconFont=function(type)
105024
105175
  return value;
105025
105176
  }
105026
105177
 
105178
+ if (type>=KLINE_INFO_TYPE.DRAGON_TIGER_EX_START && type<=KLINE_INFO_TYPE.DRAGON_TIGER_EX_END)
105179
+ {
105180
+ var index=type-KLINE_INFO_TYPE.DRAGON_TIGER_EX_START;
105181
+ var value=g_JSChartResource.KLine.Info.DragonTiger.IconFont;
105182
+ var aryData=g_JSChartResource.KLine.Info.DragonTiger.AryIconFont;
105183
+ if (IFrameSplitOperator.IsNonEmptyArray(aryData) && aryData[index]) value=aryData[index];
105184
+
105185
+ return value;
105186
+ }
105187
+
105027
105188
  switch(type)
105028
105189
  {
105029
105190
  case KLINE_INFO_TYPE.INVESTOR:
@@ -105469,7 +105630,15 @@ function DragonTigerInfo()
105469
105630
  var infoData=new KLineInfoData();
105470
105631
  infoData.Date= item.date;
105471
105632
  infoData.Title=item.title;
105472
- infoData.InfoType=KLINE_INFO_TYPE.DRAGON_TIGER;
105633
+ var infoType=KLINE_INFO_TYPE.DRAGON_TIGER;
105634
+ if (IFrameSplitOperator.IsNumber(item.infoType))
105635
+ {
105636
+ infoType=KLINE_INFO_TYPE.DRAGON_TIGER_EX_START+item.infoType;
105637
+ if (infoType>KLINE_INFO_TYPE.DRAGON_TIGER_EX_END) infoType=KLINE_INFO_TYPE.DRAGON_TIGER_EX_END;
105638
+ }
105639
+ infoData.InfoType=infoType;
105640
+ if (item.color) infoData.Color=item.color; //图标颜色
105641
+
105473
105642
  infoData.ExtendData=
105474
105643
  {
105475
105644
  BuyAmount:item.buyAmount, //机构买入总额
@@ -110548,6 +110717,8 @@ function JSDivFrameToolbar()
110548
110717
 
110549
110718
  this.Destroy=function()
110550
110719
  {
110720
+ this.HideTooltip();
110721
+
110551
110722
  if (this.DivToolbar)
110552
110723
  {
110553
110724
  if (this.DivHQChart.removeChild) this.DivHQChart.removeChild(this.DivToolbar);