hqchart 1.1.14632 → 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(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){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(rtBG.Bottom>bottom)break;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.14631";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.14632",
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;
@@ -32826,9 +32837,11 @@ function ChartKLineTable()
32826
32837
  var x=left,y=top, width=right-left;
32827
32838
  var yOffset=3;
32828
32839
  if (this.ItemMergin.YOffset) yOffset=this.ItemMergin.YOffset;
32829
- for(var i=0;i<data.Data.length;++i)
32840
+ for(var i=0; i<data.Data.length; ++i, y+=this.RowHeight)
32830
32841
  {
32831
32842
  var item=data.Data[i];
32843
+ if (!item) continue;
32844
+
32832
32845
  var rtBG={Left:x, Top:y, Right:right, Height:this.RowHeight, Width:width };
32833
32846
  rtBG.Bottom=rtBG.Top+this.RowHeight;
32834
32847
 
@@ -32873,20 +32886,27 @@ function ChartKLineTable()
32873
32886
  }
32874
32887
  }
32875
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
+
32876
32894
  xCell+=subCellWidth;
32877
32895
  }
32878
32896
  }
32879
32897
  else
32880
32898
  {
32881
- if (item && item.BGColor)
32899
+ if (item.BGColor)
32882
32900
  {
32883
32901
  this.Canvas.fillStyle=item.BGColor;
32884
32902
  this.Canvas.fillRect(rtBG.Left, rtBG.Top, rtBG.Width, rtBG.Height);
32885
32903
  }
32886
32904
 
32887
- if (item && item.Color && rtBG.Width>10)
32905
+ if (item.Text && rtBG.Width>10)
32888
32906
  {
32889
- this.Canvas.fillStyle=item.Color;
32907
+ if (item.Color) this.Canvas.fillStyle=item.Color;
32908
+ else this.Canvas.fillStyle=this.TextColor;
32909
+
32890
32910
  this.Canvas.textBaseline='bottom';
32891
32911
  var yText=rtBG.Bottom-yOffset;
32892
32912
 
@@ -32906,9 +32926,14 @@ function ChartKLineTable()
32906
32926
  this.Canvas.fillText(item.Text,rtBG.Left+2,yText, width-4);
32907
32927
  }
32908
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
+ }
32909
32934
  }
32910
32935
 
32911
- y+=this.RowHeight;
32936
+
32912
32937
  }
32913
32938
  }
32914
32939
 
@@ -32942,6 +32967,30 @@ function ChartKLineTable()
32942
32967
  {
32943
32968
  return {Min:0, Max:this.RowCount};
32944
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
+ }
32945
32994
  }
32946
32995
 
32947
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;
@@ -36922,9 +36933,11 @@ function ChartKLineTable()
36922
36933
  var x=left,y=top, width=right-left;
36923
36934
  var yOffset=3;
36924
36935
  if (this.ItemMergin.YOffset) yOffset=this.ItemMergin.YOffset;
36925
- for(var i=0;i<data.Data.length;++i)
36936
+ for(var i=0; i<data.Data.length; ++i, y+=this.RowHeight)
36926
36937
  {
36927
36938
  var item=data.Data[i];
36939
+ if (!item) continue;
36940
+
36928
36941
  var rtBG={Left:x, Top:y, Right:right, Height:this.RowHeight, Width:width };
36929
36942
  rtBG.Bottom=rtBG.Top+this.RowHeight;
36930
36943
 
@@ -36969,20 +36982,27 @@ function ChartKLineTable()
36969
36982
  }
36970
36983
  }
36971
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
+
36972
36990
  xCell+=subCellWidth;
36973
36991
  }
36974
36992
  }
36975
36993
  else
36976
36994
  {
36977
- if (item && item.BGColor)
36995
+ if (item.BGColor)
36978
36996
  {
36979
36997
  this.Canvas.fillStyle=item.BGColor;
36980
36998
  this.Canvas.fillRect(rtBG.Left, rtBG.Top, rtBG.Width, rtBG.Height);
36981
36999
  }
36982
37000
 
36983
- if (item && item.Color && rtBG.Width>10)
37001
+ if (item.Text && rtBG.Width>10)
36984
37002
  {
36985
- this.Canvas.fillStyle=item.Color;
37003
+ if (item.Color) this.Canvas.fillStyle=item.Color;
37004
+ else this.Canvas.fillStyle=this.TextColor;
37005
+
36986
37006
  this.Canvas.textBaseline='bottom';
36987
37007
  var yText=rtBG.Bottom-yOffset;
36988
37008
 
@@ -37002,9 +37022,14 @@ function ChartKLineTable()
37002
37022
  this.Canvas.fillText(item.Text,rtBG.Left+2,yText, width-4);
37003
37023
  }
37004
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
+ }
37005
37030
  }
37006
37031
 
37007
- y+=this.RowHeight;
37032
+
37008
37033
  }
37009
37034
  }
37010
37035
 
@@ -37038,6 +37063,30 @@ function ChartKLineTable()
37038
37063
  {
37039
37064
  return {Min:0, Max:this.RowCount};
37040
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
+ }
37041
37090
  }
37042
37091
 
37043
37092
  //表格
@@ -126693,6 +126742,7 @@ function ScriptIndex(name,script,args,option)
126693
126742
  if (config.TextColor) chart.TextColor=config.TextColor;
126694
126743
  if (config.BorderColor) chart.BorderColor=config.BorderColor;
126695
126744
  if (IFrameSplitOperator.IsNumber(config.RowNamePosition)) chart.RowNamePosition=config.RowNamePosition;
126745
+ if (IFrameSplitOperator.IsNumber(config.RowHeightType)) chart.RowHeightType=config.RowHeightType;
126696
126746
 
126697
126747
  if (config.ItemMergin)
126698
126748
  {
@@ -146631,7 +146681,7 @@ function ScrollBarBGChart()
146631
146681
 
146632
146682
 
146633
146683
 
146634
- var HQCHART_VERSION="1.1.14631";
146684
+ var HQCHART_VERSION="1.1.14634";
146635
146685
 
146636
146686
  function PrintHQChartVersion()
146637
146687
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.14631";
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;
@@ -36966,9 +36977,11 @@ function ChartKLineTable()
36966
36977
  var x=left,y=top, width=right-left;
36967
36978
  var yOffset=3;
36968
36979
  if (this.ItemMergin.YOffset) yOffset=this.ItemMergin.YOffset;
36969
- for(var i=0;i<data.Data.length;++i)
36980
+ for(var i=0; i<data.Data.length; ++i, y+=this.RowHeight)
36970
36981
  {
36971
36982
  var item=data.Data[i];
36983
+ if (!item) continue;
36984
+
36972
36985
  var rtBG={Left:x, Top:y, Right:right, Height:this.RowHeight, Width:width };
36973
36986
  rtBG.Bottom=rtBG.Top+this.RowHeight;
36974
36987
 
@@ -37013,20 +37026,27 @@ function ChartKLineTable()
37013
37026
  }
37014
37027
  }
37015
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
+
37016
37034
  xCell+=subCellWidth;
37017
37035
  }
37018
37036
  }
37019
37037
  else
37020
37038
  {
37021
- if (item && item.BGColor)
37039
+ if (item.BGColor)
37022
37040
  {
37023
37041
  this.Canvas.fillStyle=item.BGColor;
37024
37042
  this.Canvas.fillRect(rtBG.Left, rtBG.Top, rtBG.Width, rtBG.Height);
37025
37043
  }
37026
37044
 
37027
- if (item && item.Color && rtBG.Width>10)
37045
+ if (item.Text && rtBG.Width>10)
37028
37046
  {
37029
- this.Canvas.fillStyle=item.Color;
37047
+ if (item.Color) this.Canvas.fillStyle=item.Color;
37048
+ else this.Canvas.fillStyle=this.TextColor;
37049
+
37030
37050
  this.Canvas.textBaseline='bottom';
37031
37051
  var yText=rtBG.Bottom-yOffset;
37032
37052
 
@@ -37046,9 +37066,14 @@ function ChartKLineTable()
37046
37066
  this.Canvas.fillText(item.Text,rtBG.Left+2,yText, width-4);
37047
37067
  }
37048
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
+ }
37049
37074
  }
37050
37075
 
37051
- y+=this.RowHeight;
37076
+
37052
37077
  }
37053
37078
  }
37054
37079
 
@@ -37082,6 +37107,30 @@ function ChartKLineTable()
37082
37107
  {
37083
37108
  return {Min:0, Max:this.RowCount};
37084
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
+ }
37085
37134
  }
37086
37135
 
37087
37136
  //表格
@@ -126737,6 +126786,7 @@ function ScriptIndex(name,script,args,option)
126737
126786
  if (config.TextColor) chart.TextColor=config.TextColor;
126738
126787
  if (config.BorderColor) chart.BorderColor=config.BorderColor;
126739
126788
  if (IFrameSplitOperator.IsNumber(config.RowNamePosition)) chart.RowNamePosition=config.RowNamePosition;
126789
+ if (IFrameSplitOperator.IsNumber(config.RowHeightType)) chart.RowHeightType=config.RowHeightType;
126740
126790
 
126741
126791
  if (config.ItemMergin)
126742
126792
  {
@@ -154150,6 +154200,10 @@ function JSFloatTooltip()
154150
154200
  {
154151
154201
  this.UpdateChartDrawSVGV2Tooltip(data);
154152
154202
  }
154203
+ else if (tooltipData.Type==9) //ChartKLineTable
154204
+ {
154205
+ this.UpdateChartKLineTableTooltip(data);
154206
+ }
154153
154207
 
154154
154208
  }
154155
154209
  else if (data.DataType==2) //更新实时行情数据
@@ -154295,6 +154349,12 @@ function JSFloatTooltip()
154295
154349
 
154296
154350
  this.ShowTooltip(data);
154297
154351
  }
154352
+
154353
+
154354
+ this.UpdateChartKLineTableTooltip=function(data)
154355
+ {
154356
+ this.UpdateChartDrawSVGV2Tooltip(data);
154357
+ }
154298
154358
 
154299
154359
  //交易指标
154300
154360
  this.UpdateTradeIndexTooltip=function(data)
@@ -157343,7 +157403,7 @@ function HQChartScriptWorker()
157343
157403
 
157344
157404
 
157345
157405
 
157346
- var HQCHART_VERSION="1.1.14631";
157406
+ var HQCHART_VERSION="1.1.14634";
157347
157407
 
157348
157408
  function PrintHQChartVersion()
157349
157409
  {