hqchart 1.1.14630 → 1.1.14635

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.
@@ -2119,7 +2119,8 @@ this.Tooltip.style.position="absolute";this.Tooltip.style.left=left+"px";this.To
2119
2119
  this.Tooltip.style.position="absolute";this.Tooltip.style.left=left+"px";this.Tooltip.style.top=top+xMove+"px";this.Tooltip.style.width=width+"px";this.Tooltip.style.height=null;this.Tooltip.innerHTML=format.Text;;this.Tooltip.style.display="block";}else if(toolTip.Type==7)//ChartDrawSVG
2120
2120
  {if(this.FloatTooltip){this.DrawFloatTooltip({X:x,Y:y,YMove:20/pixelTatio},toolTip);bHideFloatToolip=false;return;}var left=x;var top=y;var format=g_DivTooltipDataForamt.Create('ChartDrawSVGDataStringFormat');format.Value=toolTip;format.Symbol=this.Symbol;format.Period=this.Period;format.LanguageID=this.LanguageID;if(!format.Operator())return;var width=format.Width;this.Tooltip.className='jchart-chartdrawsvg-tooltip';//ChartDrawSVG指标数据
2121
2121
  this.Tooltip.style.position="absolute";this.Tooltip.style.left=left+"px";this.Tooltip.style.top=top+xMove+"px";this.Tooltip.style.width=width+"px";this.Tooltip.style.height=null;this.Tooltip.innerHTML=format.Text;this.Tooltip.style.display="block";}else if(toolTip.Type==8)//ChartDrawSVG 新版本
2122
- {if(this.FloatTooltip){this.DrawFloatTooltip({X:x,Y:y,YMove:20/pixelTatio},toolTip);bHideFloatToolip=false;return;}}if(bHideFloatToolip)this.HideFloatTooltip();};this.UpdateDOMTooltip=function(toolTipType,data){var _this14=this;if(!this.TooltipCache.IsShow)return;if(this.TooltipCache.Type!=toolTipType)return;if(!this.TooltipCache.Data)return;if(this.TooltipCache.Type===0){if(!data||!IFrameSplitOperator.IsNonEmptyArray(data.Data))return;var lastItem=data.Data[data.Data.length-1];if(lastItem.Date!=this.TooltipCache.Data.Date)return;if(IFrameSplitOperator.IsNumber(lastItem.Time)&&lastItem.Time!=this.TooltipCache.Data.Time)return;var klinePaint=this.ChartPaint[0];var format=g_DivTooltipDataForamt.Create('HistoryDataStringFormat');format.Value={Data:lastItem,ChartPaint:klinePaint,Type:this.TooltipCache.Type};format.Symbol=this.Symbol;format.LanguageID=this.LanguageID;format.GetEventCallback=function(id){return _this14.GetEventCallback(id);};if(!format.Operator())return;if(format.Text==this.TooltipCache.InnerHTML)return;this.Tooltip.innerHTML=format.Text;this.TooltipCache.InnerHTML=format.Text;}};this.HideTooltip=function(){this.TooltipCache.IsShow=false;this.TooltipCache.Type=null;this.TooltipCache.InnerHTML=null;this.TooltipCache.Data=null;if(this.Tooltip.style.display!="none")this.Tooltip.style.display="none";this.HideFloatTooltip();};this.UpdateSelectRect=function(start,end){if(!this.ChartPaint[0].Data)return;var paint=this.GetRectSelectPaint();if(!paint)return;var data=this.ChartPaint[0].Data;var count=data.Data.length;if(end>=count)end=count-1;var startItem=data.Data[start];var endItem=data.Data[end];JSConsole.Chart.Log('[JSChartContainer::UpdateSelectRect]',startItem,endItem);paint.SetPoint(startItem,{Index:0,DataIndex:start});paint.SetPoint(endItem,{Index:1,DataIndex:end});this.Draw();};this.HideSelectRect=function(){this.ClearDragSelectRect();};this.ResetFrameXYSplit=function(){if(typeof this.Frame.ResetXYSplit=='function')this.Frame.ResetXYSplit();};this.ResetFrameXSplit=function(){if(typeof this.Frame.ResetXSplit=='function')this.Frame.ResetXSplit();};this.ResetFrameYCustomSplit=function(windowIndex){if(typeof this.Frame.ResetYCustomSplit=='function')this.Frame.ResetYCustomSplit(windowIndex);};this.UpdateFrameMaxMinV2=function(){var mapFrame=new _map2.default();//key=frameid, value:{ ChartPaint:[] }
2122
+ {if(this.FloatTooltip){this.DrawFloatTooltip({X:x,Y:y,YMove:20/pixelTatio},toolTip);bHideFloatToolip=false;return;}}else if(toolTip.Type==9)//ChartKLineTable
2123
+ {if(toolTip.Data.Item&&toolTip.Data.Item.Tooltip&&this.FloatTooltip){this.DrawFloatTooltip({X:x,Y:y,YMove:20/pixelTatio},toolTip);bHideFloatToolip=false;return;}}if(bHideFloatToolip)this.HideFloatTooltip();};this.UpdateDOMTooltip=function(toolTipType,data){var _this14=this;if(!this.TooltipCache.IsShow)return;if(this.TooltipCache.Type!=toolTipType)return;if(!this.TooltipCache.Data)return;if(this.TooltipCache.Type===0){if(!data||!IFrameSplitOperator.IsNonEmptyArray(data.Data))return;var lastItem=data.Data[data.Data.length-1];if(lastItem.Date!=this.TooltipCache.Data.Date)return;if(IFrameSplitOperator.IsNumber(lastItem.Time)&&lastItem.Time!=this.TooltipCache.Data.Time)return;var klinePaint=this.ChartPaint[0];var format=g_DivTooltipDataForamt.Create('HistoryDataStringFormat');format.Value={Data:lastItem,ChartPaint:klinePaint,Type:this.TooltipCache.Type};format.Symbol=this.Symbol;format.LanguageID=this.LanguageID;format.GetEventCallback=function(id){return _this14.GetEventCallback(id);};if(!format.Operator())return;if(format.Text==this.TooltipCache.InnerHTML)return;this.Tooltip.innerHTML=format.Text;this.TooltipCache.InnerHTML=format.Text;}};this.HideTooltip=function(){this.TooltipCache.IsShow=false;this.TooltipCache.Type=null;this.TooltipCache.InnerHTML=null;this.TooltipCache.Data=null;if(this.Tooltip.style.display!="none")this.Tooltip.style.display="none";this.HideFloatTooltip();};this.UpdateSelectRect=function(start,end){if(!this.ChartPaint[0].Data)return;var paint=this.GetRectSelectPaint();if(!paint)return;var data=this.ChartPaint[0].Data;var count=data.Data.length;if(end>=count)end=count-1;var startItem=data.Data[start];var endItem=data.Data[end];JSConsole.Chart.Log('[JSChartContainer::UpdateSelectRect]',startItem,endItem);paint.SetPoint(startItem,{Index:0,DataIndex:start});paint.SetPoint(endItem,{Index:1,DataIndex:end});this.Draw();};this.HideSelectRect=function(){this.ClearDragSelectRect();};this.ResetFrameXYSplit=function(){if(typeof this.Frame.ResetXYSplit=='function')this.Frame.ResetXYSplit();};this.ResetFrameXSplit=function(){if(typeof this.Frame.ResetXSplit=='function')this.Frame.ResetXSplit();};this.ResetFrameYCustomSplit=function(windowIndex){if(typeof this.Frame.ResetYCustomSplit=='function')this.Frame.ResetYCustomSplit(windowIndex);};this.UpdateFrameMaxMinV2=function(){var mapFrame=new _map2.default();//key=frameid, value:{ ChartPaint:[] }
2123
2124
  for(var i=0;i<this.Frame.SubFrame.length;++i){var subItem=this.Frame.SubFrame[i];if(!subItem||!subItem.Frame)continue;var frame=subItem.Frame;//自定义刻度每次都调用
2124
2125
  frame.YCustomSplit=true;var key=frame.Identify;var item={ID:key,Frame:frame,ChartPaint:[],Max:null,Min:null,OverlayFrame:[],//共享坐标
2125
2126
  SingleOverlay:[],//独立坐标
@@ -4068,14 +4069,16 @@ this.RowCount=5;//行数
4068
4069
  this.RowHeight=10;//行高
4069
4070
  this.RowHeightType=1;//0=均分 1=固定高度
4070
4071
  this.TextFontConfig=CloneData(g_JSChartResource.ChartKLineTable.TextFont);this.ItemMergin=CloneData(g_JSChartResource.ChartKLineTable.ItemMergin);this.TextFont;this.TextColor='rgb(0,0,0)';this.AryTableData=[];this.MapCache=null;//key=date/date-time value={ Date:, Time:, Data:[ ] }
4071
- this.GetKValue=ChartData.GetKValue;this.BuildCacheData=function(){var mapData=new _map2.default();this.MapCache=mapData;if(!IFrameSplitOperator.IsNonEmptyArray(this.AryTableData))return;for(var i=0;i<this.AryTableData.length;++i){var item=this.AryTableData[i];var key=this.BuildKey(item);mapData.set(key,item);}};//绘制背景色
4072
+ this.GetKValue=ChartData.GetKValue;this.AryCellRect=[];//保存单元格信息
4073
+ this.BuildCacheData=function(){var mapData=new _map2.default();this.MapCache=mapData;if(!IFrameSplitOperator.IsNonEmptyArray(this.AryTableData))return;for(var i=0;i<this.AryTableData.length;++i){var item=this.AryTableData[i];var key=this.BuildKey(item);mapData.set(key,item);}};//绘制背景色
4072
4074
  this.DrawBG=function(rtBG){if(!this.BGColor)return;if(this.BGColor){this.Canvas.fillStyle=this.BGColor;this.Canvas.fillRect(rtBG.Left+1,rtBG.Top,rtBG.Width-1,rtBG.Height);}};this.DrawBorder=function(rtBG){if(!this.BorderColor)return;var yLine=rtBG.Top;for(var i=0;i<30;++i){this.Canvas.beginPath();this.Canvas.moveTo(rtBG.Left,ToFixedPoint(yLine));this.Canvas.lineTo(rtBG.Right,ToFixedPoint(yLine));this.Canvas.stroke();yLine+=this.RowHeight;if(yLine>=rtBG.Bottom)break;}};//计算行高
4073
- this.CalculateRowHeight=function(rtBG){if(this.RowHeightType==1){this.RowHeight=this.TextFontConfig.FontMaxSize+this.ItemMergin.Top+this.ItemMergin.Bottom;}else{this.RowHeight=rtBG.Height/this.RowCount;}};this.Draw=function(){if(!this.IsShow||this.ChartFrame.IsMinSize||!this.IsVisible)return;if(this.IsShowIndexTitleOnly())return;if(this.IsHideScriptIndex())return;if(!IFrameSplitOperator.IsNonEmptyArray(this.AryTableData))return;if(!this.MapCache||this.MapCache.size<=0)return;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return;var isHScreen=this.ChartFrame.IsHScreen===true;if(isHScreen)return;if(this.RowCount<=0)return;var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var xPointCount=this.ChartFrame.XPointCount;var border=this.ChartFrame.GetBorder();var height=border.Bottom-border.TopTitle;var xOffset=border.LeftEx+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;var top=border.TopTitle;var bottom=border.Bottom;//绘制背景
4075
+ this.CalculateRowHeight=function(rtBG){if(this.RowHeightType==1){this.RowHeight=this.TextFontConfig.FontMaxSize+this.ItemMergin.Top+this.ItemMergin.Bottom;}else{this.RowHeight=rtBG.Height/this.RowCount;}};this.Draw=function(){this.AryCellRect=[];if(!this.IsShow||this.ChartFrame.IsMinSize||!this.IsVisible)return;if(this.IsShowIndexTitleOnly())return;if(this.IsHideScriptIndex())return;if(!IFrameSplitOperator.IsNonEmptyArray(this.AryTableData))return;if(!this.MapCache||this.MapCache.size<=0)return;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return;var isHScreen=this.ChartFrame.IsHScreen===true;if(isHScreen)return;if(this.RowCount<=0)return;var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var xPointCount=this.ChartFrame.XPointCount;var border=this.ChartFrame.GetBorder();var height=border.Bottom-border.TopTitle;var xOffset=border.LeftEx+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;var top=border.TopTitle;var bottom=border.Bottom;//绘制背景
4074
4076
  var rtBG={Left:border.LeftEx,Top:top,Right:border.RightEx,Bottom:bottom};rtBG.Width=rtBG.Right-rtBG.Left;rtBG.Height=rtBG.Bottom-rtBG.Top;this.DrawBG(rtBG);this.CalculateRowHeight(rtBG);var itemHeight=this.RowHeight;var itemWidth=dataWidth+distanceWidth;if(itemHeight-this.ItemMergin.Top-this.ItemMergin.Bottom>0)itemHeight=itemHeight-this.ItemMergin.Top-this.ItemMergin.Bottom;if(itemWidth-this.ItemMergin.Left-this.ItemMergin.Right>0)itemWidth=itemWidth-this.ItemMergin.Left-this.ItemMergin.Right;var font=this.GetDynamicTextFont(itemHeight,itemWidth);this.TextFont=font;this.Canvas.font=this.TextFont;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var kItem=this.Data.Data[i];if(!kItem)continue;var left=xOffset;var right=xOffset+dataWidth+distanceWidth;if(right>chartright)break;var x=left+(right-left)/2;if(x>chartright)break;var bDrawName=false;if(j==0&&this.RowNamePosition===1)bDrawName=true;if(bDrawName)this.DrawRowName(top,bottom,left,right);var key=this.BuildKey(kItem);if(!this.MapCache.has(key))continue;var mapItem=this.MapCache.get(key);if(!bDrawName)this.DrawRow(mapItem,top,bottom,left,right);//绘制一列
4075
4077
  }if(this.RowNamePosition==3)this.DrawRightRowName();this.DrawBorder(rtBG);};this.DrawRowName=function(top,bottom,left,right){if(!IFrameSplitOperator.IsNonEmptyArray(this.RowName))return;var x=left,y=top,width=right-left;var yOffset=3;if(this.ItemMergin.YOffset)yOffset=this.ItemMergin.YOffset;for(var i=0;i<this.RowName.length;++i){var item=this.RowName[i];var rtBG={Left:x,Top:y,Right:right,Height:this.RowHeight,Width:width};rtBG.Bottom=rtBG.Top+this.RowHeight;var yText=rtBG.Bottom-yOffset;if(item.Name&&rtBG.Width>10){this.Canvas.fillStyle=item.Color?item.Color:this.TextColor;this.Canvas.textBaseline='bottom';if(item.TextAlign=='right'){this.Canvas.textAlign='right';this.Canvas.fillText(item.Name,rtBG.Right-2,yText,width-4);}else if(item.TextAlign=='center'){this.Canvas.textAlign='center';this.Canvas.fillText(item.Name,rtBG.Left+rtBG.Width/2,yText,width-4);}else{this.Canvas.textAlign='left';this.Canvas.fillText(item.Name,rtBG.Left+2,yText,width-4);}}y+=this.RowHeight;}};//绘制右侧行名
4076
- this.DrawRightRowName=function(){var border=this.ChartFrame.GetBorder();if(this.BGColor){var rtRightBG={Left:border.RightEx,Top:border.TopTitle,Right:border.ChartWidth,Bottom:border.Bottom};rtRightBG.Width=rtRightBG.Right-rtRightBG.Left;rtRightBG.Height=rtRightBG.Bottom-rtRightBG.Top;this.Canvas.fillStyle=this.BGColor;this.Canvas.fillRect(rtRightBG.Left+1,rtRightBG.Top,rtRightBG.Width-1,rtRightBG.Height);}var x=border.RightEx,y=border.TopTitle;var yOffset=3;if(this.ItemMergin.YOffset)yOffset=this.ItemMergin.YOffset;for(var i=0;i<this.RowName.length;++i){var item=this.RowName[i];var rtBG={Left:x,Top:y,Right:border.ChartWidth,Height:this.RowHeight};rtBG.Bottom=rtBG.Top+this.RowHeight;rtBG.Width=rtBG.Right-rtBG.Left;var yText=rtBG.Bottom-yOffset;if(item.Name&&rtBG.Width>10){this.Canvas.fillStyle=item.Color?item.Color:this.TextColor;this.Canvas.textBaseline='bottom';this.Canvas.textAlign='left';this.Canvas.fillText(item.Name,rtBG.Left+2,yText);}y+=this.RowHeight;}};this.DrawRow=function(data,top,bottom,left,right){if(!IFrameSplitOperator.IsNonEmptyArray(data.Data))return;var x=left,y=top,width=right-left;var yOffset=3;if(this.ItemMergin.YOffset)yOffset=this.ItemMergin.YOffset;for(var i=0;i<data.Data.length;++i){var item=data.Data[i];var rtBG={Left:x,Top:y,Right:right,Height:this.RowHeight,Width:width};rtBG.Bottom=rtBG.Top+this.RowHeight;if(IFrameSplitOperator.IsNonEmptyArray(item.AryText))//左右显示
4077
- {var subCellWidth=rtBG.Width/item.AryText.length;var xCell=rtBG.Left;for(var j=0;j<item.AryText.length;++j){var subItem=item.AryText[j];var rtSubBG={Left:xCell,Top:rtBG.Top,Bottom:rtBG.Bottom,Width:subCellWidth,Height:rtBG.Height};rtSubBG.Right=rtSubBG.Left+rtSubBG.Width;if(subItem&&subItem.BGColor){this.Canvas.fillStyle=subItem.BGColor;this.Canvas.fillRect(rtSubBG.Left,rtSubBG.Top,rtSubBG.Width,rtSubBG.Height);}if(subItem&&subItem.Color&&subCellWidth>10){this.Canvas.fillStyle=subItem.Color;this.Canvas.textBaseline='bottom';var yText=rtSubBG.Bottom-yOffset;if(subItem.TextAlign=='right'){this.Canvas.textAlign='right';this.Canvas.fillText(subItem.Text,rtSubBG.Right-2,yText,width-4);}else if(subItem.TextAlign=='center'){this.Canvas.textAlign='center';this.Canvas.fillText(subItem.Text,rtSubBG.Left+rtSubBG.Width/2,yText,width-4);}else{this.Canvas.textAlign='left';this.Canvas.fillText(subItem.Text,rtSubBG.Left+2,yText,width-4);}}xCell+=subCellWidth;}}else{if(item&&item.BGColor){this.Canvas.fillStyle=item.BGColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}if(item&&item.Color&&rtBG.Width>10){this.Canvas.fillStyle=item.Color;this.Canvas.textBaseline='bottom';var yText=rtBG.Bottom-yOffset;if(item.TextAlign=='right'){this.Canvas.textAlign='right';this.Canvas.fillText(item.Text,rtBG.Right-2,yText,width-4);}else if(item.TextAlign=='center'){this.Canvas.textAlign='center';this.Canvas.fillText(item.Text,rtBG.Left+rtBG.Width/2,yText,width-4);}else{this.Canvas.textAlign='left';this.Canvas.fillText(item.Text,rtBG.Left+2,yText,width-4);}}}y+=this.RowHeight;}};this.GetDynamicTextFont=function(cellHeight,width,fontOption){var fontSize=parseInt(cellHeight)-2;if(cellHeight<5)fontSize=parseInt(cellHeight);//高度太小了就不要上下间距了
4078
- if(fontSize>this.TextFontConfig.FontMaxSize)fontSize=this.TextFontConfig.FontMaxSize;else if(fontSize<=0)fontSize=1;var font=this.FormatFontString(fontSize,this.TextFontConfig.Family,fontOption);return font;};this.FormatFontString=function(fontSize,family,option){var font;if(!option){font=fontSize+'px '+family;}else{if(option.Weight)font=option.Weight+' '+fontSize+'px '+family;}return font;};this.GetMaxMin=function(){return{Min:0,Max:this.RowCount};};}//表格
4078
+ this.DrawRightRowName=function(){var border=this.ChartFrame.GetBorder();if(this.BGColor){var rtRightBG={Left:border.RightEx,Top:border.Top,Right:border.ChartWidth,Bottom:border.Bottom};rtRightBG.Width=rtRightBG.Right-rtRightBG.Left;rtRightBG.Height=rtRightBG.Bottom-rtRightBG.Top;this.Canvas.fillStyle=this.BGColor;this.Canvas.fillRect(rtRightBG.Left+1,rtRightBG.Top,rtRightBG.Width-1,rtRightBG.Height);}var x=border.RightEx,y=border.TopTitle;var yOffset=3;if(this.ItemMergin.YOffset)yOffset=this.ItemMergin.YOffset;for(var i=0;i<this.RowName.length;++i){var item=this.RowName[i];var rtBG={Left:x,Top:y,Right:border.ChartWidth,Height:this.RowHeight};rtBG.Bottom=rtBG.Top+this.RowHeight;rtBG.Width=rtBG.Right-rtBG.Left;var yText=rtBG.Bottom-yOffset;if(rtBG.Bottom>border.Bottom)break;if(item.Name&&rtBG.Width>10){this.Canvas.fillStyle=item.Color?item.Color:this.TextColor;this.Canvas.textBaseline='bottom';this.Canvas.textAlign='left';this.Canvas.fillText(item.Name,rtBG.Left+2,yText);}y+=this.RowHeight;}};this.DrawRow=function(data,top,bottom,left,right){if(!IFrameSplitOperator.IsNonEmptyArray(data.Data))return;var x=left,y=top,width=right-left;var yOffset=3;if(this.ItemMergin.YOffset)yOffset=this.ItemMergin.YOffset;for(var i=0;i<data.Data.length;++i,y+=this.RowHeight){var item=data.Data[i];if(!item)continue;var rtBG={Left:x,Top:y,Right:right,Height:this.RowHeight,Width:width};rtBG.Bottom=rtBG.Top+this.RowHeight;if(rtBG.Bottom>bottom)break;if(IFrameSplitOperator.IsNonEmptyArray(item.AryText))//左右显示
4079
+ {var subCellWidth=rtBG.Width/item.AryText.length;var xCell=rtBG.Left;for(var j=0;j<item.AryText.length;++j){var subItem=item.AryText[j];var rtSubBG={Left:xCell,Top:rtBG.Top,Bottom:rtBG.Bottom,Width:subCellWidth,Height:rtBG.Height};rtSubBG.Right=rtSubBG.Left+rtSubBG.Width;if(subItem&&subItem.BGColor){this.Canvas.fillStyle=subItem.BGColor;this.Canvas.fillRect(rtSubBG.Left,rtSubBG.Top,rtSubBG.Width,rtSubBG.Height);}if(subItem&&subItem.Color&&subCellWidth>10){this.Canvas.fillStyle=subItem.Color;this.Canvas.textBaseline='bottom';var yText=rtSubBG.Bottom-yOffset;if(subItem.TextAlign=='right'){this.Canvas.textAlign='right';this.Canvas.fillText(subItem.Text,rtSubBG.Right-2,yText,width-4);}else if(subItem.TextAlign=='center'){this.Canvas.textAlign='center';this.Canvas.fillText(subItem.Text,rtSubBG.Left+rtSubBG.Width/2,yText,width-4);}else{this.Canvas.textAlign='left';this.Canvas.fillText(subItem.Text,rtSubBG.Left+2,yText,width-4);}}if(rtBG.Width>5){this.AryCellRect.push({Item:{Cell:item,Colunm:data,RowIndex:i,SubCell:subItem,SubIndex:j,Tooltip:subItem.Tooltip,Type:2},Rect:rtBG});}xCell+=subCellWidth;}}else{if(item.BGColor){this.Canvas.fillStyle=item.BGColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}if(item.Text&&rtBG.Width>10){if(item.Color)this.Canvas.fillStyle=item.Color;else this.Canvas.fillStyle=this.TextColor;this.Canvas.textBaseline='bottom';var yText=rtBG.Bottom-yOffset;if(item.TextAlign=='right'){this.Canvas.textAlign='right';this.Canvas.fillText(item.Text,rtBG.Right-2,yText,width-4);}else if(item.TextAlign=='center'){this.Canvas.textAlign='center';this.Canvas.fillText(item.Text,rtBG.Left+rtBG.Width/2,yText,width-4);}else{this.Canvas.textAlign='left';this.Canvas.fillText(item.Text,rtBG.Left+2,yText,width-4);}}if(rtBG.Width>5){this.AryCellRect.push({Item:{Cell:item,Colunm:data,RowIndex:i,Tooltip:item.Tooltip,Type:1},Rect:rtBG});}}}};this.GetDynamicTextFont=function(cellHeight,width,fontOption){var fontSize=parseInt(cellHeight)-2;if(cellHeight<5)fontSize=parseInt(cellHeight);//高度太小了就不要上下间距了
4080
+ if(fontSize>this.TextFontConfig.FontMaxSize)fontSize=this.TextFontConfig.FontMaxSize;else if(fontSize<=0)fontSize=1;var font=this.FormatFontString(fontSize,this.TextFontConfig.Family,fontOption);return font;};this.FormatFontString=function(fontSize,family,option){var font;if(!option){font=fontSize+'px '+family;}else{if(option.Weight)font=option.Weight+' '+fontSize+'px '+family;}return font;};this.GetMaxMin=function(){return{Min:0,Max:this.RowCount};};this.GetTooltipData=function(x,y,tooltip){if(!this.IsShow)return false;for(var i=0;i<this.AryCellRect.length;++i){var item=this.AryCellRect[i];if(!item.Rect)continue;var rect=item.Rect;if(x>=rect.Left&&x<=rect.Right&&y>=rect.Top&&y<=rect.Bottom){var data=item.Item;JSConsole.Chart.Log('[ChartKLineTable::GetTooltipData] cell',item);tooltip.Data={Rect:item.Rect,Item:data};tooltip.ChartPaint=this;tooltip.Type=9;//ChartKLineTable
4081
+ return true;}}return false;};}//表格
4079
4082
  function ChartSimpleTable(){this.newMethod=IChartPainting;//派生
4080
4083
  this.newMethod();delete this.newMethod;this.ClassName='ChartSimpleTable';//类名
4081
4084
  //this.Data;
@@ -12290,7 +12293,7 @@ chart.Bars=varItem.Draw.DrawData;chart.BuildCacheData();this.SetChartIndexName(c
12290
12293
  chart.Texts=varItem.Draw.DrawData;chart.BuildCacheData();this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);};this.CreateMultiSVGIcon=function(hqChart,windowIndex,varItem,i){var chart=new ChartMultiSVGIconV2();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data=hqChart.GetKData();//绑定K线
12291
12294
  chart.Family=varItem.Draw.DrawData.Family;chart.AryIcon=varItem.Draw.DrawData.Icon;chart.BuildCacheData();this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);};this.CreateChartDrawSVG=function(hqChart,windowIndex,varItem,i){var chart=new ChartDrawSVG();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data=hqChart.GetKData();if(IFrameSplitOperator.IsBool(varItem.Draw.DrawData.EnableTooltip))chart.EnableTooltip=varItem.Draw.DrawData.EnableTooltip;if(IFrameSplitOperator.IsBool(varItem.Draw.DrawData.IsDrawFirst))chart.IsDrawFirst=varItem.Draw.DrawData.IsDrawFirst;if(varItem.Draw.BuildKeyCallback)chart.BuildKeyCallback=varItem.Draw.BuildKeyCallback;chart.Family=varItem.Draw.DrawData.Family;chart.TextFont=varItem.Draw.DrawData.TextFont;chart.Texts=varItem.Draw.DrawData.Data;chart.BuildCacheData();this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);};this.CreateMulitHtmlDom=function(hqChart,windowIndex,varItem,i){var chart=new ChartMultiHtmlDom();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
12292
12295
  chart.Texts=varItem.Draw.DrawData;chart.DrawCallback=varItem.Draw.Callback;hqChart.ChartPaint.push(chart);};this.CreateStackedBar=function(hqChart,windowIndex,varItem,i){var chart=new ChartStackedBar();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Identify=this.Guid;chart.Data.Data=varItem.Draw.DrawData;if(IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.BarColor))chart.BarColor=varItem.Draw.BarColor;if(IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.BarName))chart.BarName=varItem.Draw.BarName;if(IFrameSplitOperator.IsNumber(varItem.Draw.LineWidth))chart.LineWidth=varItem.Draw.LineWidth;if(IFrameSplitOperator.IsNumber(varItem.Draw.BarType))chart.BarType=varItem.Draw.BarType;hqChart.ChartPaint.push(chart);var titleIndex=windowIndex+1;var titleData=new DynamicTitleData(chart.Data,chart.BarName,chart.BarColor);titleData.DataType="ChartStackedBar";hqChart.TitlePaint[titleIndex].Data[i]=titleData;};this.CreateKLineTable=function(hqChart,windowIndex,varItem,i){var chart=new ChartKLineTable();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Identify=this.Guid;chart.Data=hqChart.GetKData();//绑定K线
12293
- chart.AryTableData=varItem.Draw.DrawData;if(IFrameSplitOperator.IsNumber(varItem.Draw.RowCount))chart.RowCount=varItem.Draw.RowCount;if(IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.RowName))chart.RowName=varItem.Draw.RowName;var config=varItem.Draw.Config;if(config){if(config.BGColor)chart.BGColor=config.BGColor;if(config.TextColor)chart.TextColor=config.TextColor;if(config.BorderColor)chart.BorderColor=config.BorderColor;if(IFrameSplitOperator.IsNumber(config.RowNamePosition))chart.RowNamePosition=config.RowNamePosition;if(config.ItemMergin){var subItem=config.ItemMergin;if(IFrameSplitOperator.IsNumber(subItem.Left))chart.ItemMergin.Left=subItem.Left;if(IFrameSplitOperator.IsNumber(subItem.Top))chart.ItemMergin.Top=subItem.Top;if(IFrameSplitOperator.IsNumber(subItem.Bottom))chart.ItemMergin.Bottom=subItem.Bottom;if(IFrameSplitOperator.IsNumber(subItem.Right))chart.ItemMergin.Right=subItem.Right;if(IFrameSplitOperator.IsNumber(subItem.YOffset))chart.ItemMergin.YOffset=subItem.YOffset;}if(config.TextFont){var subItem=config.TextFont;if(IFrameSplitOperator.IsNumber(subItem.FontMaxSize))chart.TextFontConfig.FontMaxSize=subItem.FontMaxSize;if(subItem.Family)chart.TextFontConfig.Family=subItem.Family;}}chart.BuildCacheData();hqChart.ChartPaint.push(chart);var titleIndex=windowIndex+1;var titleData=new DynamicTitleData(chart.Data,chart.BarName,chart.BarColor);titleData.DataType="ChartKLineTable";hqChart.TitlePaint[titleIndex].Data[i]=titleData;};this.CreateScatterPlot=function(hqChart,windowIndex,varItem,i){var chart=new ChartScatterPlot();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Identify=this.Guid;chart.Data.Data=varItem.Draw.DrawData;chart.Color=varItem.Draw.Color;chart.Radius=varItem.Draw.Radius;hqChart.ChartPaint.push(chart);};this.CreateScatterPlotV2=function(hqChart,windowIndex,varItem,i){var chart=new ChartScatterPlotV2();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Identify=this.Guid;chart.Data=hqChart.GetKData();//绑定K线
12296
+ chart.AryTableData=varItem.Draw.DrawData;if(IFrameSplitOperator.IsNumber(varItem.Draw.RowCount))chart.RowCount=varItem.Draw.RowCount;if(IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.RowName))chart.RowName=varItem.Draw.RowName;var config=varItem.Draw.Config;if(config){if(config.BGColor)chart.BGColor=config.BGColor;if(config.TextColor)chart.TextColor=config.TextColor;if(config.BorderColor)chart.BorderColor=config.BorderColor;if(IFrameSplitOperator.IsNumber(config.RowNamePosition))chart.RowNamePosition=config.RowNamePosition;if(IFrameSplitOperator.IsNumber(config.RowHeightType))chart.RowHeightType=config.RowHeightType;if(config.ItemMergin){var subItem=config.ItemMergin;if(IFrameSplitOperator.IsNumber(subItem.Left))chart.ItemMergin.Left=subItem.Left;if(IFrameSplitOperator.IsNumber(subItem.Top))chart.ItemMergin.Top=subItem.Top;if(IFrameSplitOperator.IsNumber(subItem.Bottom))chart.ItemMergin.Bottom=subItem.Bottom;if(IFrameSplitOperator.IsNumber(subItem.Right))chart.ItemMergin.Right=subItem.Right;if(IFrameSplitOperator.IsNumber(subItem.YOffset))chart.ItemMergin.YOffset=subItem.YOffset;}if(config.TextFont){var subItem=config.TextFont;if(IFrameSplitOperator.IsNumber(subItem.FontMaxSize))chart.TextFontConfig.FontMaxSize=subItem.FontMaxSize;if(subItem.Family)chart.TextFontConfig.Family=subItem.Family;}}chart.BuildCacheData();hqChart.ChartPaint.push(chart);var titleIndex=windowIndex+1;var titleData=new DynamicTitleData(chart.Data,chart.BarName,chart.BarColor);titleData.DataType="ChartKLineTable";hqChart.TitlePaint[titleIndex].Data[i]=titleData;};this.CreateScatterPlot=function(hqChart,windowIndex,varItem,i){var chart=new ChartScatterPlot();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Identify=this.Guid;chart.Data.Data=varItem.Draw.DrawData;chart.Color=varItem.Draw.Color;chart.Radius=varItem.Draw.Radius;hqChart.ChartPaint.push(chart);};this.CreateScatterPlotV2=function(hqChart,windowIndex,varItem,i){var chart=new ChartScatterPlotV2();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Identify=this.Guid;chart.Data=hqChart.GetKData();//绑定K线
12294
12297
  chart.AryPoint=varItem.Draw.DrawData;var config=varItem.Draw.Config;if(config){if(config.Color)chart.Color=config.Color;if(IFrameSplitOperator.IsNumber(config.Radius))chart.Radius=config.Radius;if(config.TextColor)chart.TextColor=config.TextColor;if(config.Font)chart.Font=config.Font;}chart.BuildCacheData();hqChart.ChartPaint.push(chart);};this.CreateClipColorStick=function(hqChart,windowIndex,varItem,id){var chart=new ChartClipColorStick();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Identify=this.Guid;chart.Data.Data=varItem.Draw.DrawData;if(varItem.Option&&chart.SetOption)chart.SetOption(varItem.Option);hqChart.ChartPaint.push(chart);var titleIndex=windowIndex+1;if(varItem.IsShowTitle===false){}else{var clrTitle=this.GetDefaultColor(id);if(varItem.Option&&varItem.Option.TitleColor)clrTitle=this.GetColor(varItem.Option.TitleColor);hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(chart.Data,varItem.Name,clrTitle);}};this.CreateColorKLine=function(hqChart,windowIndex,varItem,i){var chart=new ChartColorKline();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
12295
12298
  chart.KLineColor=varItem.Draw.DrawData.KLine;if(varItem.Color)chart.Color=varItem.Color;hqChart.ChartPaint.push(chart);};this.CreateRectangle=function(hqChart,windowIndex,varItem,i){var chart=new ChartRectangle();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Color=[varItem.Draw.DrawData.Color];chart.Rect=varItem.Draw.DrawData.Rect;if(varItem.Color)chart.BorderColor=this.GetColor(varItem.Color);hqChart.ChartPaint.push(chart);};this.CreateScriptOverlayLine=function(hqChart,windowIndex,varItem,i){var chart=new ChartOverlayLine();chart.Canvas=hqChart.Canvas;chart.DrawType=1;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(i);if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)chart.LineWidth=width;}if(varItem.IsDotLine)chart.IsDotLine=true;//虚线
12296
12299
  if(varItem.IsShow==false)chart.IsShow=false;var titleIndex=windowIndex+1;chart.Data.Data=varItem.Draw.DrawData.Data;chart.MainData.Data=varItem.Draw.DrawData.MainData;if(varItem.Draw.DrawData.Title)hqChart.TitlePaint[titleIndex].Data[i]=new DynamicTitleData(chart.Data,varItem.Draw.DrawData.Title,chart.Color);hqChart.ChartPaint.push(chart);};//创建K线
@@ -14702,7 +14705,8 @@ this.Update=function(data){if(!this.DivDialog)return;this.LanguageID=this.HQChar
14702
14705
  {this.UpdatChartOXTooltip(data);}else if(tooltipData.Type==6)//散点图
14703
14706
  {this.UpdatChartScatterPlotTooltip(data);}else if(tooltipData.Type==7)//ChartDrawSVG 老版本 单行
14704
14707
  {this.UpdateChartDrawSVGTooltip(data);}else if(tooltipData.Type==8)//ChartDrawSVG 新版本
14705
- {this.UpdateChartDrawSVGV2Tooltip(data);}}else if(data.DataType==2)//更新实时行情数据
14708
+ {this.UpdateChartDrawSVGV2Tooltip(data);}else if(tooltipData.Type==9)//ChartKLineTable
14709
+ {this.UpdateChartKLineTableTooltip(data);}}else if(data.DataType==2)//更新实时行情数据
14706
14710
  {this.UpdateRealtimeHQTooltip(data);}else if(data.DataType==3)//报价列表
14707
14711
  {var tooltipData=data.Tooltip;if(!tooltipData)return;if(tooltipData.Type==2)//报价列表表头图标提示信息
14708
14712
  {this.ReportHeaderIconTooltip(data);}else if(tooltipData.Type==1)//单元格截断内容
@@ -14713,7 +14717,7 @@ this.UpdateKLineToolitp=function(data){var tooltipData=data.Tooltip;var symbol=d
14713
14717
  var bIndexKLine=false;if(tooltipData.ChartPaint.Name=="Overlay-KLine"){symbol=tooltipData.ChartPaint.Symbol;name=tooltipData.ChartPaint.Title;bOverlay=true;}else if(tooltipData.ChartPaint.Name=="DRAWKLINE"){symbol=tooltipData.ChartPaint.Symbol;name=tooltipData.ChartPaint.Title;bIndexKLine=true;}var kItem={Symbol:symbol,Name:name,Item:CloneData(tooltipData.Data),IsOverlay:bOverlay,IsIndexKLine:bIndexKLine};var strKItem=(0,_stringify2.default)(kItem);var bUpdata=false;if(this.KItemCacheID!=strKItem)//数据变动的才更新
14714
14718
  {this.KItemCache=kItem;this.KItemCacheID=strKItem;this.AryText=this.GetFormatKLineTooltipText(this.KItemCache);bUpdata=true;}if(bUpdata){this.UpdateTableDOM();}this.ShowTooltip(data);};//ChartDrawSVG 老版本 单行
14715
14719
  this.UpdateChartDrawSVGTooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!tooltipData.Data.Item||!tooltipData.Data.Item.Tooltip)return;var item=tooltipData.Data.Item.Tooltip;var aryText=[];var rowItem={Text:"",HTMLTitle:item.Text,Color:this.ValueColor,IsMergeCell:true};aryText.push(rowItem);this.AryText=aryText;this.UpdateTableDOM();this.ShowTooltip(data);};//ChartDrawSVG 新版本
14716
- this.UpdateChartDrawSVGV2Tooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!tooltipData.Data.Item||!tooltipData.Data.Item.Tooltip)return;var aryData=tooltipData.Data.Item.Tooltip.AryText;if(!IFrameSplitOperator.IsNonEmptyArray(aryData))return;var aryText=[];for(var i=0;i<aryData.length;++i){var item=aryData[i];var rowItem={Title:"",Text:"",Color:this.ValueColor,ClassName:this.ValueAlign.MarginLeft};if(item.TextColor)rowItem.Color=item.TextColor;if(item.Title)rowItem.Title=item.Title;if(item.Text)rowItem.Text=item.Text;aryText.push(rowItem);}this.AryText=aryText;this.UpdateTableDOM();this.ShowTooltip(data);};//交易指标
14720
+ this.UpdateChartDrawSVGV2Tooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!tooltipData.Data.Item||!tooltipData.Data.Item.Tooltip)return;var aryData=tooltipData.Data.Item.Tooltip.AryText;if(!IFrameSplitOperator.IsNonEmptyArray(aryData))return;var aryText=[];for(var i=0;i<aryData.length;++i){var item=aryData[i];var rowItem={Title:"",Text:"",Color:this.ValueColor,ClassName:this.ValueAlign.MarginLeft};if(item.TextColor)rowItem.Color=item.TextColor;if(item.Title)rowItem.Title=item.Title;if(item.Text)rowItem.Text=item.Text;aryText.push(rowItem);}this.AryText=aryText;this.UpdateTableDOM();this.ShowTooltip(data);};this.UpdateChartKLineTableTooltip=function(data){this.UpdateChartDrawSVGV2Tooltip(data);};//交易指标
14717
14721
  this.UpdateTradeIndexTooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!tooltipData.Data.Data)return;var item=tooltipData.Data.Data;var kItem=item.KData;var aryText=[];var rowItem={Title:"日期",Text:IFrameSplitOperator.FormatDateString(kItem.Date,"YYYY-MM-DD"),Color:this.ValueColor};aryText.push(rowItem);if(IFrameSplitOperator.IsNumber(kItem.Time)){var format="HH:MM";var rowItem={Title:"时间",Text:IFrameSplitOperator.FormatTimeString(kItem.Time,format),Color:this.ValueColor};aryText.push(rowItem);}var rowItem={Title:"指标名称:",Text:''+item.Name+item.Param,Color:this.ValueColor};aryText.push(rowItem);var rowItem={Title:"买卖方向:",Text:''+(item.Type==1?"买入":"卖出"),Color:item.Type==1?this.UpColor:this.DownColor};aryText.push(rowItem);var rowItem={};this.AryText=aryText;this.UpdateTableDOM();this.ShowTooltip(data);};//分时图异动信息
14718
14722
  this.UpdateMinuteInfoTooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!tooltipData.Data.Data||!tooltipData.Data.Data.Item)return;var item=tooltipData.Data.Data.Item;var aryText=[];var rowItem={Title:"日期",Text:IFrameSplitOperator.FormatDateString(item.Date,"YYYY-MM-DD"),Color:this.ValueColor};aryText.push(rowItem);var format="HH:MM";var rowItem={Title:"时间",Text:IFrameSplitOperator.FormatTimeString(item.Time,format),Color:this.ValueColor};aryText.push(rowItem);var rowItem={Title:"异动",Text:item.Title,Color:this.ValueColor};aryText.push(rowItem);this.AryText=aryText;this.UpdateTableDOM();this.ShowTooltip(data);};//ChartMultiSVGIconV2 图标信息
14719
14723
  this.UpdatMultiSVGIconV2Tooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!tooltipData.Data.Item)return;var item=tooltipData.Data.Item;var aryText=[];if(item&&IFrameSplitOperator.IsObject(item.Text)){var tooltipData=item.Text;if(IFrameSplitOperator.IsNonEmptyArray(tooltipData.AryText)){for(var i=0;i<tooltipData.AryText.length;++i){var tooltipItem=tooltipData.AryText[i];var textItem={Title:tooltipItem.Title,Text:tooltipItem.Text,Color:this.ValueColor};if(tooltipItem.Color)textItem.Color=tooltipItem.Color;if(tooltipItem.Align=="Left")tooltipItem.ClassName=this.ValueAlign.Left;aryText.push(tooltipItem);}}}else{var rowItem={Text:"",HTMLTitle:item.Text,Color:this.ValueColor,IsMergeCell:true};aryText.push(rowItem);}this.AryText=aryText;this.UpdateTableDOM();this.ShowTooltip(data);};//ChartOX 信息
@@ -14885,7 +14889,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
14885
14889
  this.ExecuteScript(item,data);}this.Status=0;}};this.OnExecuteFinish=function(data,indexInfo,jsExectute,jobInfo){var message={Data:data,IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.FINISH_EXECUTE_SCRIPT,JobInfo:jobInfo};postMessage(message);};this.OnExecuteError=function(error,indexInfo,jobData){var message={IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.ERROR_EXECUTE_SCRIPT,Error:error};postMessage(message);};}/********************************************************************************
14886
14890
  * 版本信息输出
14887
14891
  *
14888
- */var HQCHART_VERSION="1.1.14629";function PrintHQChartVersion(){var logo='\n\n*************************************************************************************************************************************************************************** \n* \n* :%@@- \n* :@@@@- \n* =@@@@ :#@@@ .:+#@@@#=: :=*@@@@@@#+-. *@@@@. \n* :@@@@@ .@@@@@ .#@@@@@@@@@@@- +@@@@@@@@@@@@@+ @@@@@ -%@@* \n* +@@@@% #@@@@# *@@@@@@@@@@@@@@%. =@@@@@@@@@@@@@@@- @@@@@ -@@@@+ \n* %@@@@* @@@@@+ .%@@@@@@@@@@@@@@@@%: #@@@@@@@@@@@@@@@% @@@@# *@@@@= \n* @@@@@= @@@@@- .%@@@@@@@*++*%@@@@@@% .%@@@@@@@%*+==+**= -@@@@+ #@@@@- \n* @@@@@. @@@@@. #@@@@@%= =@@@@@@* %@@@@@@#: *@@@@- :::. .-+*###+: ::: .+##+: -%%@@@@@%%%% \n* .@@@@@ .@@@@@. +@@@@@% .@@@@@@ *@@@@@@: %@@@@: +@@@@@%. :%@@@@@@@@@@: *@@@ :@@@@@* @@@@@@@@@@@@ \n* :@@@@@ :@@@@@ @@@@@% :@@@@@+ @@@@@@: %@@@@-@@@@@@@@@. @@@@@@@@@@@@@. :@@@%-@@@@@@.:@@@@@@@@@@@# \n* -@@@@% -@@@@@ =@@@@@. %@@@@% %@@@@@- %@@@@@@@@@@@@@@* %@@@@@@@@@@@@+ -@@@@@@@@@@# -@@@@@@@@@@@. \n* +@@@@%=========#@@@@% @@@@@# :@@@@@ .@@@@@% @@@@@@@@%@@@@@@@ -%+:. .#@@@@* +@@@@@@@%%@. .::+@@@@#:: \n* #@@@@@@@@@@@@@@@@@@@# .@@@@@ .@@@@@ :@@@@@. @@@@@@#. #@@@@@. -@@@@* #@@@@@@: *@@@@+ \n* %@@@@@@@@@@@@@@@@@@@+ :@@@@@ .@@@@@ -@@@@@ @@@@@+ @@@@@. :@@@@* @@@@@% #@@@@- \n* @@@@@@@@@@@@@@@@@@@@: :@@@@% :@@@@@ +@@@@% -@@@@+ @@@@@ -@@@@+ @@@@@. @@@@@. \n* .@@@@@@@@@@@@@@@@@@@@ :@@@@% -@@@@% *@@@@% #@@@@. @@@@@ .=*#%%%@@@@@= :@@@@# @@@@@. \n* -@@@@@:::::::::=@@@@@ :@@@@@ @@@@@* +@@@@% @@@@@ @@@@% -#@@@@@@@@@@@@: -@@@@* @@@@@ \n* =@@@@% =@@@@% .@@@@@ :@@@@@. -@@@@% @@@@@ .@@@@* +@@@@@@@@@@@@@@. =@@@@+ .@@@@@ \n* +@@@@# +@@@@# @@@@@# %@@@@% :@@@@@ .@@@@% =@@@@= -@@@@@*-:..%@@@@ +@@@@= :@@@@# \n* *@@@@* *@@@@* +@@@@@: #@@@@@+ .@@@@@@ :@@@@% *@@@@- @@@@@. @@@@% #@@@@: =@@@@+ \n* %@@@@= %@@@@+ @@@@@@- .%@@@@@# #@@@@@# :@@@@% #@@@@: @@@@% @@@@* %@@@@. #@@@@- \n* @@@@@- @@@@@= =@@@@@@#=...-*@@@@@@@: @@@@@@%=. :+**. :@@@@* %@@@@. .@@@@* *@@@@= @@@@@ %@@@@+ \n* .@@@@@: .@@@@@: *@@@@@@@@@@@@@@@@@@@# =@@@@@@@@%%%@@@@@@ +@@@@- @@@@@ .@@@@@: :%@@@@@- .@@@@% %@@@@@*+- \n* :@@@@@ :@@@@@ +@@@@@@@@@@@@@@@@@@@# =@@@@@@@@@@@@@@@@% %@@@@ @@@@@ @@@@@@@@@@@@@@@: -@@@@* *@@@@@@@@- \n* =@@@@@ -@@@@@ :@@@@@@@@@@@@@@@@@@@# :@@@@@@@@@@@@@@@% @@@@@ %@@@% #@@@@@@@@@#@@@@. +@@@@- .@@@@@@@@# \n* *@@@@# =@@@@% :#@@@@@@@#: :@@@@@= =@@@@@@@@@@@+. @@@@@ :@@@+ *@@@@@@@- %@@@ *@@@= =@@@@@@@* \n* =++++- -++++= .:::. .=*+: :-=+++=:. ****= .=+. .-++=: :+++ -+=: .-=+=:. \n* \n* \n* HQChart \n* Ver: '+HQCHART_VERSION+' \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n************************************************************************************************************************************************************************** \n ';console.log(logo);}PrintHQChartVersion();//把给外界调用的方法暴露出来
14892
+ */var HQCHART_VERSION="1.1.14634";function PrintHQChartVersion(){var logo='\n\n*************************************************************************************************************************************************************************** \n* \n* :%@@- \n* :@@@@- \n* =@@@@ :#@@@ .:+#@@@#=: :=*@@@@@@#+-. *@@@@. \n* :@@@@@ .@@@@@ .#@@@@@@@@@@@- +@@@@@@@@@@@@@+ @@@@@ -%@@* \n* +@@@@% #@@@@# *@@@@@@@@@@@@@@%. =@@@@@@@@@@@@@@@- @@@@@ -@@@@+ \n* %@@@@* @@@@@+ .%@@@@@@@@@@@@@@@@%: #@@@@@@@@@@@@@@@% @@@@# *@@@@= \n* @@@@@= @@@@@- .%@@@@@@@*++*%@@@@@@% .%@@@@@@@%*+==+**= -@@@@+ #@@@@- \n* @@@@@. @@@@@. #@@@@@%= =@@@@@@* %@@@@@@#: *@@@@- :::. .-+*###+: ::: .+##+: -%%@@@@@%%%% \n* .@@@@@ .@@@@@. +@@@@@% .@@@@@@ *@@@@@@: %@@@@: +@@@@@%. :%@@@@@@@@@@: *@@@ :@@@@@* @@@@@@@@@@@@ \n* :@@@@@ :@@@@@ @@@@@% :@@@@@+ @@@@@@: %@@@@-@@@@@@@@@. @@@@@@@@@@@@@. :@@@%-@@@@@@.:@@@@@@@@@@@# \n* -@@@@% -@@@@@ =@@@@@. %@@@@% %@@@@@- %@@@@@@@@@@@@@@* %@@@@@@@@@@@@+ -@@@@@@@@@@# -@@@@@@@@@@@. \n* +@@@@%=========#@@@@% @@@@@# :@@@@@ .@@@@@% @@@@@@@@%@@@@@@@ -%+:. .#@@@@* +@@@@@@@%%@. .::+@@@@#:: \n* #@@@@@@@@@@@@@@@@@@@# .@@@@@ .@@@@@ :@@@@@. @@@@@@#. #@@@@@. -@@@@* #@@@@@@: *@@@@+ \n* %@@@@@@@@@@@@@@@@@@@+ :@@@@@ .@@@@@ -@@@@@ @@@@@+ @@@@@. :@@@@* @@@@@% #@@@@- \n* @@@@@@@@@@@@@@@@@@@@: :@@@@% :@@@@@ +@@@@% -@@@@+ @@@@@ -@@@@+ @@@@@. @@@@@. \n* .@@@@@@@@@@@@@@@@@@@@ :@@@@% -@@@@% *@@@@% #@@@@. @@@@@ .=*#%%%@@@@@= :@@@@# @@@@@. \n* -@@@@@:::::::::=@@@@@ :@@@@@ @@@@@* +@@@@% @@@@@ @@@@% -#@@@@@@@@@@@@: -@@@@* @@@@@ \n* =@@@@% =@@@@% .@@@@@ :@@@@@. -@@@@% @@@@@ .@@@@* +@@@@@@@@@@@@@@. =@@@@+ .@@@@@ \n* +@@@@# +@@@@# @@@@@# %@@@@% :@@@@@ .@@@@% =@@@@= -@@@@@*-:..%@@@@ +@@@@= :@@@@# \n* *@@@@* *@@@@* +@@@@@: #@@@@@+ .@@@@@@ :@@@@% *@@@@- @@@@@. @@@@% #@@@@: =@@@@+ \n* %@@@@= %@@@@+ @@@@@@- .%@@@@@# #@@@@@# :@@@@% #@@@@: @@@@% @@@@* %@@@@. #@@@@- \n* @@@@@- @@@@@= =@@@@@@#=...-*@@@@@@@: @@@@@@%=. :+**. :@@@@* %@@@@. .@@@@* *@@@@= @@@@@ %@@@@+ \n* .@@@@@: .@@@@@: *@@@@@@@@@@@@@@@@@@@# =@@@@@@@@%%%@@@@@@ +@@@@- @@@@@ .@@@@@: :%@@@@@- .@@@@% %@@@@@*+- \n* :@@@@@ :@@@@@ +@@@@@@@@@@@@@@@@@@@# =@@@@@@@@@@@@@@@@% %@@@@ @@@@@ @@@@@@@@@@@@@@@: -@@@@* *@@@@@@@@- \n* =@@@@@ -@@@@@ :@@@@@@@@@@@@@@@@@@@# :@@@@@@@@@@@@@@@% @@@@@ %@@@% #@@@@@@@@@#@@@@. +@@@@- .@@@@@@@@# \n* *@@@@# =@@@@% :#@@@@@@@#: :@@@@@= =@@@@@@@@@@@+. @@@@@ :@@@+ *@@@@@@@- %@@@ *@@@= =@@@@@@@* \n* =++++- -++++= .:::. .=*+: :-=+++=:. ****= .=+. .-++=: :+++ -+=: .-=+=:. \n* \n* \n* HQChart \n* Ver: '+HQCHART_VERSION+' \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n************************************************************************************************************************************************************************** \n ';console.log(logo);}PrintHQChartVersion();//把给外界调用的方法暴露出来
14889
14893
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
14890
14894
  // BaseIndex:BaseIndex,
14891
14895
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.14630",
3
+ "version": "1.1.14635",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -1182,6 +1182,10 @@ function JSFloatTooltip()
1182
1182
  {
1183
1183
  this.UpdateChartDrawSVGV2Tooltip(data);
1184
1184
  }
1185
+ else if (tooltipData.Type==9) //ChartKLineTable
1186
+ {
1187
+ this.UpdateChartKLineTableTooltip(data);
1188
+ }
1185
1189
 
1186
1190
  }
1187
1191
  else if (data.DataType==2) //更新实时行情数据
@@ -1327,6 +1331,12 @@ function JSFloatTooltip()
1327
1331
 
1328
1332
  this.ShowTooltip(data);
1329
1333
  }
1334
+
1335
+
1336
+ this.UpdateChartKLineTableTooltip=function(data)
1337
+ {
1338
+ this.UpdateChartDrawSVGV2Tooltip(data);
1339
+ }
1330
1340
 
1331
1341
  //交易指标
1332
1342
  this.UpdateTradeIndexTooltip=function(data)
@@ -22243,6 +22243,7 @@ function ScriptIndex(name,script,args,option)
22243
22243
  if (config.TextColor) chart.TextColor=config.TextColor;
22244
22244
  if (config.BorderColor) chart.BorderColor=config.BorderColor;
22245
22245
  if (IFrameSplitOperator.IsNumber(config.RowNamePosition)) chart.RowNamePosition=config.RowNamePosition;
22246
+ if (IFrameSplitOperator.IsNumber(config.RowHeightType)) chart.RowHeightType=config.RowHeightType;
22246
22247
 
22247
22248
  if (config.ItemMergin)
22248
22249
  {
@@ -8052,6 +8052,15 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8052
8052
  return;
8053
8053
  }
8054
8054
  }
8055
+ else if (toolTip.Type==9) //ChartKLineTable
8056
+ {
8057
+ if (toolTip.Data.Item && toolTip.Data.Item.Tooltip && this.FloatTooltip)
8058
+ {
8059
+ this.DrawFloatTooltip({X:x, Y:y, YMove:20/pixelTatio}, toolTip);
8060
+ bHideFloatToolip=false;
8061
+ return;
8062
+ }
8063
+ }
8055
8064
 
8056
8065
 
8057
8066
  if (bHideFloatToolip) this.HideFloatTooltip();
@@ -32613,6 +32622,7 @@ function ChartKLineTable()
32613
32622
  this.AryTableData=[];
32614
32623
  this.MapCache=null; //key=date/date-time value={ Date:, Time:, Data:[ ] }
32615
32624
  this.GetKValue=ChartData.GetKValue;
32625
+ this.AryCellRect=[]; //保存单元格信息
32616
32626
 
32617
32627
  this.BuildCacheData=function()
32618
32628
  {
@@ -32672,6 +32682,7 @@ function ChartKLineTable()
32672
32682
 
32673
32683
  this.Draw=function()
32674
32684
  {
32685
+ this.AryCellRect=[];
32675
32686
  if (!this.IsShow || this.ChartFrame.IsMinSize || !this.IsVisible) return;
32676
32687
  if (this.IsShowIndexTitleOnly()) return;
32677
32688
  if (this.IsHideScriptIndex()) return;
@@ -32785,7 +32796,7 @@ function ChartKLineTable()
32785
32796
 
32786
32797
  if (this.BGColor)
32787
32798
  {
32788
- var rtRightBG={Left:border.RightEx, Top:border.TopTitle, Right:border.ChartWidth, Bottom:border.Bottom };
32799
+ var rtRightBG={Left:border.RightEx, Top:border.Top, Right:border.ChartWidth, Bottom:border.Bottom };
32789
32800
  rtRightBG.Width=rtRightBG.Right-rtRightBG.Left;
32790
32801
  rtRightBG.Height=rtRightBG.Bottom-rtRightBG.Top;
32791
32802
  this.Canvas.fillStyle=this.BGColor;
@@ -32804,6 +32815,8 @@ function ChartKLineTable()
32804
32815
  rtBG.Width=rtBG.Right-rtBG.Left;
32805
32816
  var yText=rtBG.Bottom-yOffset;
32806
32817
 
32818
+ if (rtBG.Bottom>border.Bottom) break;
32819
+
32807
32820
  if (item.Name && rtBG.Width>10)
32808
32821
  {
32809
32822
  this.Canvas.fillStyle=item.Color?item.Color:this.TextColor;
@@ -32824,12 +32837,16 @@ function ChartKLineTable()
32824
32837
  var x=left,y=top, width=right-left;
32825
32838
  var yOffset=3;
32826
32839
  if (this.ItemMergin.YOffset) yOffset=this.ItemMergin.YOffset;
32827
- for(var i=0;i<data.Data.length;++i)
32840
+ for(var i=0; i<data.Data.length; ++i, y+=this.RowHeight)
32828
32841
  {
32829
32842
  var item=data.Data[i];
32843
+ if (!item) continue;
32844
+
32830
32845
  var rtBG={Left:x, Top:y, Right:right, Height:this.RowHeight, Width:width };
32831
32846
  rtBG.Bottom=rtBG.Top+this.RowHeight;
32832
32847
 
32848
+ if (rtBG.Bottom>bottom) break;
32849
+
32833
32850
  if (IFrameSplitOperator.IsNonEmptyArray(item.AryText)) //左右显示
32834
32851
  {
32835
32852
  var subCellWidth=rtBG.Width/item.AryText.length;
@@ -32869,20 +32886,27 @@ function ChartKLineTable()
32869
32886
  }
32870
32887
  }
32871
32888
 
32889
+ if (rtBG.Width>5)
32890
+ {
32891
+ this.AryCellRect.push({ Item:{ Cell:item, Colunm:data, RowIndex:i, SubCell:subItem, SubIndex:j, Tooltip:subItem.Tooltip, Type:2 }, Rect:rtBG });
32892
+ }
32893
+
32872
32894
  xCell+=subCellWidth;
32873
32895
  }
32874
32896
  }
32875
32897
  else
32876
32898
  {
32877
- if (item && item.BGColor)
32899
+ if (item.BGColor)
32878
32900
  {
32879
32901
  this.Canvas.fillStyle=item.BGColor;
32880
32902
  this.Canvas.fillRect(rtBG.Left, rtBG.Top, rtBG.Width, rtBG.Height);
32881
32903
  }
32882
32904
 
32883
- if (item && item.Color && rtBG.Width>10)
32905
+ if (item.Text && rtBG.Width>10)
32884
32906
  {
32885
- this.Canvas.fillStyle=item.Color;
32907
+ if (item.Color) this.Canvas.fillStyle=item.Color;
32908
+ else this.Canvas.fillStyle=this.TextColor;
32909
+
32886
32910
  this.Canvas.textBaseline='bottom';
32887
32911
  var yText=rtBG.Bottom-yOffset;
32888
32912
 
@@ -32902,9 +32926,14 @@ function ChartKLineTable()
32902
32926
  this.Canvas.fillText(item.Text,rtBG.Left+2,yText, width-4);
32903
32927
  }
32904
32928
  }
32929
+
32930
+ if (rtBG.Width>5)
32931
+ {
32932
+ this.AryCellRect.push({ Item:{ Cell:item, Colunm:data, RowIndex:i, Tooltip:item.Tooltip, Type:1 }, Rect:rtBG });
32933
+ }
32905
32934
  }
32906
32935
 
32907
- y+=this.RowHeight;
32936
+
32908
32937
  }
32909
32938
  }
32910
32939
 
@@ -32938,6 +32967,30 @@ function ChartKLineTable()
32938
32967
  {
32939
32968
  return {Min:0, Max:this.RowCount};
32940
32969
  }
32970
+
32971
+ this.GetTooltipData=function(x,y,tooltip)
32972
+ {
32973
+ if (!this.IsShow) return false;
32974
+
32975
+ for(var i=0;i<this.AryCellRect.length;++i)
32976
+ {
32977
+ var item=this.AryCellRect[i];
32978
+ if (!item.Rect) continue;
32979
+
32980
+ var rect=item.Rect;
32981
+ if (x>=rect.Left && x<=rect.Right && y>=rect.Top && y<=rect.Bottom)
32982
+ {
32983
+ var data=item.Item;
32984
+ JSConsole.Chart.Log('[ChartKLineTable::GetTooltipData] cell', item);
32985
+ tooltip.Data={ Rect:item.Rect, Item:data };
32986
+ tooltip.ChartPaint=this;
32987
+ tooltip.Type=9; //ChartKLineTable
32988
+ return true;
32989
+ }
32990
+ }
32991
+
32992
+ return false;
32993
+ }
32941
32994
  }
32942
32995
 
32943
32996
  //表格
@@ -12148,6 +12148,15 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
12148
12148
  return;
12149
12149
  }
12150
12150
  }
12151
+ else if (toolTip.Type==9) //ChartKLineTable
12152
+ {
12153
+ if (toolTip.Data.Item && toolTip.Data.Item.Tooltip && this.FloatTooltip)
12154
+ {
12155
+ this.DrawFloatTooltip({X:x, Y:y, YMove:20/pixelTatio}, toolTip);
12156
+ bHideFloatToolip=false;
12157
+ return;
12158
+ }
12159
+ }
12151
12160
 
12152
12161
 
12153
12162
  if (bHideFloatToolip) this.HideFloatTooltip();
@@ -36709,6 +36718,7 @@ function ChartKLineTable()
36709
36718
  this.AryTableData=[];
36710
36719
  this.MapCache=null; //key=date/date-time value={ Date:, Time:, Data:[ ] }
36711
36720
  this.GetKValue=ChartData.GetKValue;
36721
+ this.AryCellRect=[]; //保存单元格信息
36712
36722
 
36713
36723
  this.BuildCacheData=function()
36714
36724
  {
@@ -36768,6 +36778,7 @@ function ChartKLineTable()
36768
36778
 
36769
36779
  this.Draw=function()
36770
36780
  {
36781
+ this.AryCellRect=[];
36771
36782
  if (!this.IsShow || this.ChartFrame.IsMinSize || !this.IsVisible) return;
36772
36783
  if (this.IsShowIndexTitleOnly()) return;
36773
36784
  if (this.IsHideScriptIndex()) return;
@@ -36881,7 +36892,7 @@ function ChartKLineTable()
36881
36892
 
36882
36893
  if (this.BGColor)
36883
36894
  {
36884
- var rtRightBG={Left:border.RightEx, Top:border.TopTitle, Right:border.ChartWidth, Bottom:border.Bottom };
36895
+ var rtRightBG={Left:border.RightEx, Top:border.Top, Right:border.ChartWidth, Bottom:border.Bottom };
36885
36896
  rtRightBG.Width=rtRightBG.Right-rtRightBG.Left;
36886
36897
  rtRightBG.Height=rtRightBG.Bottom-rtRightBG.Top;
36887
36898
  this.Canvas.fillStyle=this.BGColor;
@@ -36900,6 +36911,8 @@ function ChartKLineTable()
36900
36911
  rtBG.Width=rtBG.Right-rtBG.Left;
36901
36912
  var yText=rtBG.Bottom-yOffset;
36902
36913
 
36914
+ if (rtBG.Bottom>border.Bottom) break;
36915
+
36903
36916
  if (item.Name && rtBG.Width>10)
36904
36917
  {
36905
36918
  this.Canvas.fillStyle=item.Color?item.Color:this.TextColor;
@@ -36920,12 +36933,16 @@ function ChartKLineTable()
36920
36933
  var x=left,y=top, width=right-left;
36921
36934
  var yOffset=3;
36922
36935
  if (this.ItemMergin.YOffset) yOffset=this.ItemMergin.YOffset;
36923
- for(var i=0;i<data.Data.length;++i)
36936
+ for(var i=0; i<data.Data.length; ++i, y+=this.RowHeight)
36924
36937
  {
36925
36938
  var item=data.Data[i];
36939
+ if (!item) continue;
36940
+
36926
36941
  var rtBG={Left:x, Top:y, Right:right, Height:this.RowHeight, Width:width };
36927
36942
  rtBG.Bottom=rtBG.Top+this.RowHeight;
36928
36943
 
36944
+ if (rtBG.Bottom>bottom) break;
36945
+
36929
36946
  if (IFrameSplitOperator.IsNonEmptyArray(item.AryText)) //左右显示
36930
36947
  {
36931
36948
  var subCellWidth=rtBG.Width/item.AryText.length;
@@ -36965,20 +36982,27 @@ function ChartKLineTable()
36965
36982
  }
36966
36983
  }
36967
36984
 
36985
+ if (rtBG.Width>5)
36986
+ {
36987
+ this.AryCellRect.push({ Item:{ Cell:item, Colunm:data, RowIndex:i, SubCell:subItem, SubIndex:j, Tooltip:subItem.Tooltip, Type:2 }, Rect:rtBG });
36988
+ }
36989
+
36968
36990
  xCell+=subCellWidth;
36969
36991
  }
36970
36992
  }
36971
36993
  else
36972
36994
  {
36973
- if (item && item.BGColor)
36995
+ if (item.BGColor)
36974
36996
  {
36975
36997
  this.Canvas.fillStyle=item.BGColor;
36976
36998
  this.Canvas.fillRect(rtBG.Left, rtBG.Top, rtBG.Width, rtBG.Height);
36977
36999
  }
36978
37000
 
36979
- if (item && item.Color && rtBG.Width>10)
37001
+ if (item.Text && rtBG.Width>10)
36980
37002
  {
36981
- this.Canvas.fillStyle=item.Color;
37003
+ if (item.Color) this.Canvas.fillStyle=item.Color;
37004
+ else this.Canvas.fillStyle=this.TextColor;
37005
+
36982
37006
  this.Canvas.textBaseline='bottom';
36983
37007
  var yText=rtBG.Bottom-yOffset;
36984
37008
 
@@ -36998,9 +37022,14 @@ function ChartKLineTable()
36998
37022
  this.Canvas.fillText(item.Text,rtBG.Left+2,yText, width-4);
36999
37023
  }
37000
37024
  }
37025
+
37026
+ if (rtBG.Width>5)
37027
+ {
37028
+ this.AryCellRect.push({ Item:{ Cell:item, Colunm:data, RowIndex:i, Tooltip:item.Tooltip, Type:1 }, Rect:rtBG });
37029
+ }
37001
37030
  }
37002
37031
 
37003
- y+=this.RowHeight;
37032
+
37004
37033
  }
37005
37034
  }
37006
37035
 
@@ -37034,6 +37063,30 @@ function ChartKLineTable()
37034
37063
  {
37035
37064
  return {Min:0, Max:this.RowCount};
37036
37065
  }
37066
+
37067
+ this.GetTooltipData=function(x,y,tooltip)
37068
+ {
37069
+ if (!this.IsShow) return false;
37070
+
37071
+ for(var i=0;i<this.AryCellRect.length;++i)
37072
+ {
37073
+ var item=this.AryCellRect[i];
37074
+ if (!item.Rect) continue;
37075
+
37076
+ var rect=item.Rect;
37077
+ if (x>=rect.Left && x<=rect.Right && y>=rect.Top && y<=rect.Bottom)
37078
+ {
37079
+ var data=item.Item;
37080
+ JSConsole.Chart.Log('[ChartKLineTable::GetTooltipData] cell', item);
37081
+ tooltip.Data={ Rect:item.Rect, Item:data };
37082
+ tooltip.ChartPaint=this;
37083
+ tooltip.Type=9; //ChartKLineTable
37084
+ return true;
37085
+ }
37086
+ }
37087
+
37088
+ return false;
37089
+ }
37037
37090
  }
37038
37091
 
37039
37092
  //表格
@@ -126689,6 +126742,7 @@ function ScriptIndex(name,script,args,option)
126689
126742
  if (config.TextColor) chart.TextColor=config.TextColor;
126690
126743
  if (config.BorderColor) chart.BorderColor=config.BorderColor;
126691
126744
  if (IFrameSplitOperator.IsNumber(config.RowNamePosition)) chart.RowNamePosition=config.RowNamePosition;
126745
+ if (IFrameSplitOperator.IsNumber(config.RowHeightType)) chart.RowHeightType=config.RowHeightType;
126692
126746
 
126693
126747
  if (config.ItemMergin)
126694
126748
  {
@@ -146627,7 +146681,7 @@ function ScrollBarBGChart()
146627
146681
 
146628
146682
 
146629
146683
 
146630
- var HQCHART_VERSION="1.1.14629";
146684
+ var HQCHART_VERSION="1.1.14634";
146631
146685
 
146632
146686
  function PrintHQChartVersion()
146633
146687
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.14629";
8
+ var HQCHART_VERSION="1.1.14634";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -12192,6 +12192,15 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
12192
12192
  return;
12193
12193
  }
12194
12194
  }
12195
+ else if (toolTip.Type==9) //ChartKLineTable
12196
+ {
12197
+ if (toolTip.Data.Item && toolTip.Data.Item.Tooltip && this.FloatTooltip)
12198
+ {
12199
+ this.DrawFloatTooltip({X:x, Y:y, YMove:20/pixelTatio}, toolTip);
12200
+ bHideFloatToolip=false;
12201
+ return;
12202
+ }
12203
+ }
12195
12204
 
12196
12205
 
12197
12206
  if (bHideFloatToolip) this.HideFloatTooltip();
@@ -36753,6 +36762,7 @@ function ChartKLineTable()
36753
36762
  this.AryTableData=[];
36754
36763
  this.MapCache=null; //key=date/date-time value={ Date:, Time:, Data:[ ] }
36755
36764
  this.GetKValue=ChartData.GetKValue;
36765
+ this.AryCellRect=[]; //保存单元格信息
36756
36766
 
36757
36767
  this.BuildCacheData=function()
36758
36768
  {
@@ -36812,6 +36822,7 @@ function ChartKLineTable()
36812
36822
 
36813
36823
  this.Draw=function()
36814
36824
  {
36825
+ this.AryCellRect=[];
36815
36826
  if (!this.IsShow || this.ChartFrame.IsMinSize || !this.IsVisible) return;
36816
36827
  if (this.IsShowIndexTitleOnly()) return;
36817
36828
  if (this.IsHideScriptIndex()) return;
@@ -36925,7 +36936,7 @@ function ChartKLineTable()
36925
36936
 
36926
36937
  if (this.BGColor)
36927
36938
  {
36928
- var rtRightBG={Left:border.RightEx, Top:border.TopTitle, Right:border.ChartWidth, Bottom:border.Bottom };
36939
+ var rtRightBG={Left:border.RightEx, Top:border.Top, Right:border.ChartWidth, Bottom:border.Bottom };
36929
36940
  rtRightBG.Width=rtRightBG.Right-rtRightBG.Left;
36930
36941
  rtRightBG.Height=rtRightBG.Bottom-rtRightBG.Top;
36931
36942
  this.Canvas.fillStyle=this.BGColor;
@@ -36944,6 +36955,8 @@ function ChartKLineTable()
36944
36955
  rtBG.Width=rtBG.Right-rtBG.Left;
36945
36956
  var yText=rtBG.Bottom-yOffset;
36946
36957
 
36958
+ if (rtBG.Bottom>border.Bottom) break;
36959
+
36947
36960
  if (item.Name && rtBG.Width>10)
36948
36961
  {
36949
36962
  this.Canvas.fillStyle=item.Color?item.Color:this.TextColor;
@@ -36964,12 +36977,16 @@ function ChartKLineTable()
36964
36977
  var x=left,y=top, width=right-left;
36965
36978
  var yOffset=3;
36966
36979
  if (this.ItemMergin.YOffset) yOffset=this.ItemMergin.YOffset;
36967
- for(var i=0;i<data.Data.length;++i)
36980
+ for(var i=0; i<data.Data.length; ++i, y+=this.RowHeight)
36968
36981
  {
36969
36982
  var item=data.Data[i];
36983
+ if (!item) continue;
36984
+
36970
36985
  var rtBG={Left:x, Top:y, Right:right, Height:this.RowHeight, Width:width };
36971
36986
  rtBG.Bottom=rtBG.Top+this.RowHeight;
36972
36987
 
36988
+ if (rtBG.Bottom>bottom) break;
36989
+
36973
36990
  if (IFrameSplitOperator.IsNonEmptyArray(item.AryText)) //左右显示
36974
36991
  {
36975
36992
  var subCellWidth=rtBG.Width/item.AryText.length;
@@ -37009,20 +37026,27 @@ function ChartKLineTable()
37009
37026
  }
37010
37027
  }
37011
37028
 
37029
+ if (rtBG.Width>5)
37030
+ {
37031
+ this.AryCellRect.push({ Item:{ Cell:item, Colunm:data, RowIndex:i, SubCell:subItem, SubIndex:j, Tooltip:subItem.Tooltip, Type:2 }, Rect:rtBG });
37032
+ }
37033
+
37012
37034
  xCell+=subCellWidth;
37013
37035
  }
37014
37036
  }
37015
37037
  else
37016
37038
  {
37017
- if (item && item.BGColor)
37039
+ if (item.BGColor)
37018
37040
  {
37019
37041
  this.Canvas.fillStyle=item.BGColor;
37020
37042
  this.Canvas.fillRect(rtBG.Left, rtBG.Top, rtBG.Width, rtBG.Height);
37021
37043
  }
37022
37044
 
37023
- if (item && item.Color && rtBG.Width>10)
37045
+ if (item.Text && rtBG.Width>10)
37024
37046
  {
37025
- this.Canvas.fillStyle=item.Color;
37047
+ if (item.Color) this.Canvas.fillStyle=item.Color;
37048
+ else this.Canvas.fillStyle=this.TextColor;
37049
+
37026
37050
  this.Canvas.textBaseline='bottom';
37027
37051
  var yText=rtBG.Bottom-yOffset;
37028
37052
 
@@ -37042,9 +37066,14 @@ function ChartKLineTable()
37042
37066
  this.Canvas.fillText(item.Text,rtBG.Left+2,yText, width-4);
37043
37067
  }
37044
37068
  }
37069
+
37070
+ if (rtBG.Width>5)
37071
+ {
37072
+ this.AryCellRect.push({ Item:{ Cell:item, Colunm:data, RowIndex:i, Tooltip:item.Tooltip, Type:1 }, Rect:rtBG });
37073
+ }
37045
37074
  }
37046
37075
 
37047
- y+=this.RowHeight;
37076
+
37048
37077
  }
37049
37078
  }
37050
37079
 
@@ -37078,6 +37107,30 @@ function ChartKLineTable()
37078
37107
  {
37079
37108
  return {Min:0, Max:this.RowCount};
37080
37109
  }
37110
+
37111
+ this.GetTooltipData=function(x,y,tooltip)
37112
+ {
37113
+ if (!this.IsShow) return false;
37114
+
37115
+ for(var i=0;i<this.AryCellRect.length;++i)
37116
+ {
37117
+ var item=this.AryCellRect[i];
37118
+ if (!item.Rect) continue;
37119
+
37120
+ var rect=item.Rect;
37121
+ if (x>=rect.Left && x<=rect.Right && y>=rect.Top && y<=rect.Bottom)
37122
+ {
37123
+ var data=item.Item;
37124
+ JSConsole.Chart.Log('[ChartKLineTable::GetTooltipData] cell', item);
37125
+ tooltip.Data={ Rect:item.Rect, Item:data };
37126
+ tooltip.ChartPaint=this;
37127
+ tooltip.Type=9; //ChartKLineTable
37128
+ return true;
37129
+ }
37130
+ }
37131
+
37132
+ return false;
37133
+ }
37081
37134
  }
37082
37135
 
37083
37136
  //表格
@@ -126733,6 +126786,7 @@ function ScriptIndex(name,script,args,option)
126733
126786
  if (config.TextColor) chart.TextColor=config.TextColor;
126734
126787
  if (config.BorderColor) chart.BorderColor=config.BorderColor;
126735
126788
  if (IFrameSplitOperator.IsNumber(config.RowNamePosition)) chart.RowNamePosition=config.RowNamePosition;
126789
+ if (IFrameSplitOperator.IsNumber(config.RowHeightType)) chart.RowHeightType=config.RowHeightType;
126736
126790
 
126737
126791
  if (config.ItemMergin)
126738
126792
  {
@@ -154146,6 +154200,10 @@ function JSFloatTooltip()
154146
154200
  {
154147
154201
  this.UpdateChartDrawSVGV2Tooltip(data);
154148
154202
  }
154203
+ else if (tooltipData.Type==9) //ChartKLineTable
154204
+ {
154205
+ this.UpdateChartKLineTableTooltip(data);
154206
+ }
154149
154207
 
154150
154208
  }
154151
154209
  else if (data.DataType==2) //更新实时行情数据
@@ -154291,6 +154349,12 @@ function JSFloatTooltip()
154291
154349
 
154292
154350
  this.ShowTooltip(data);
154293
154351
  }
154352
+
154353
+
154354
+ this.UpdateChartKLineTableTooltip=function(data)
154355
+ {
154356
+ this.UpdateChartDrawSVGV2Tooltip(data);
154357
+ }
154294
154358
 
154295
154359
  //交易指标
154296
154360
  this.UpdateTradeIndexTooltip=function(data)
@@ -157339,7 +157403,7 @@ function HQChartScriptWorker()
157339
157403
 
157340
157404
 
157341
157405
 
157342
- var HQCHART_VERSION="1.1.14629";
157406
+ var HQCHART_VERSION="1.1.14634";
157343
157407
 
157344
157408
  function PrintHQChartVersion()
157345
157409
  {