hqchart 1.1.14778 → 1.1.14784

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.
@@ -155,7 +155,7 @@ PBX5:(EMA(CLOSE,M5)+MA(CLOSE,M5*2)+MA(CLOSE,M5*4))/3;\n\
155
155
  PBX6:(EMA(CLOSE,M6)+MA(CLOSE,M6*2)+MA(CLOSE,M6*4))/3;'};return data;};JSIndexScript.prototype.ENE=function(){var data={Name:'ENE',Description:'轨道线',IsMainIndex:true,Args:[{Name:'N',Value:25},{Name:'M1',Value:6},{Name:'M2',Value:6}],Script://脚本
156
156
  'UPPER:(1+M1/100)*MA(CLOSE,N);\n\
157
157
  LOWER:(1-M2/100)*MA(CLOSE,N);\n\
158
- ENE:(UPPER+LOWER)/2;'};return data;};JSIndexScript.prototype.MACD=function(){var data={Name:'MACD',Description:'平滑异同平均',IsMainIndex:false,Args:[{Name:'SHORT',Value:12},{Name:'LONG',Value:26},{Name:'MID',Value:9}],Script://脚本
158
+ ENE:(UPPER+LOWER)/2;'};return data;};JSIndexScript.prototype.MACD=function(){var data={Name:'MACD',Description:'平滑异同平均',IsMainIndex:false,FloatPrecision:3,Args:[{Name:'SHORT',Value:12},{Name:'LONG',Value:26},{Name:'MID',Value:9}],Script://脚本
159
159
  'DIF:EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);\n\
160
160
  DEA:EMA(DIF,MID);\n\
161
161
  MACD:(DIF-DEA)*2,COLORSTICK;'};return data;};//上下柱子
@@ -12858,7 +12858,8 @@ this.CanvasElement=document.createElement("canvas");this.CanvasElement.className
12858
12858
  var height=parseInt(this.DivElement.style.height.replace("px",""));this.CanvasElement.height=height;this.CanvasElement.width=parseInt(this.DivElement.style.width.replace("px",""));this.CanvasElement.style.width=this.CanvasElement.width+'px';this.CanvasElement.style.height=this.CanvasElement.height+'px';var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
12859
12859
  this.CanvasElement.height*=pixelTatio;this.CanvasElement.width*=pixelTatio;JSConsole.Chart.Log('[JSDealChart::OnSize] devicePixelRatio='+window.devicePixelRatio+', height='+this.CanvasElement.height+', width='+this.CanvasElement.width);if(this.JSChartContainer&&this.JSChartContainer.OnSize){this.JSChartContainer.OnSize();}};this.SetOption=function(option){var chart=this.CreateJSDealChartContainer(option);if(!chart)return false;if(option.OnCreatedCallback)option.OnCreatedCallback(chart);this.JSChartContainer=chart;this.DivElement.JSChart=this;//div中保存一份
12860
12860
  //注册事件
12861
- if(option.EventCallback){for(var i=0;i<option.EventCallback.length;++i){var item=option.EventCallback[i];chart.AddEventCallback(item);}}if(option.MinuteChartTooltip&&option.MinuteChartTooltip.Enable)chart.InitalMinuteChartTooltip(option.MinuteChartTooltip);if(!option.Symbol){chart.Draw();}else{chart.ChangeSymbol(option.Symbol);}};this.CreateJSDealChartContainer=function(option){var chart=new JSDealChartContainer(this.CanvasElement);chart.Create(option);if(option.NetworkFilter)chart.NetworkFilter=option.NetworkFilter;if(IFrameSplitOperator.IsNonEmptyArray(option.Column))chart.SetColumn(option.Column);if(IFrameSplitOperator.IsNumber(option.ShowOrder))chart.ChartPaint[0].ShowOrder=option.ShowOrder;this.SetChartBorder(chart,option);//是否自动更新
12861
+ if(option.EventCallback){for(var i=0;i<option.EventCallback.length;++i){var item=option.EventCallback[i];chart.AddEventCallback(item);}}if(option.MinuteChartTooltip&&option.MinuteChartTooltip.Enable)chart.InitalMinuteChartTooltip(option.MinuteChartTooltip);if(option.FloatTooltip&&option.FloatTooltip.Enable)chart.InitalFloatTooltip(option.FloatTooltip);//提示信息
12862
+ if(!option.Symbol){chart.Draw();}else{chart.ChangeSymbol(option.Symbol);}};this.CreateJSDealChartContainer=function(option){var chart=new JSDealChartContainer(this.CanvasElement);chart.Create(option);if(option.NetworkFilter)chart.NetworkFilter=option.NetworkFilter;if(IFrameSplitOperator.IsNonEmptyArray(option.Column))chart.SetColumn(option.Column);if(IFrameSplitOperator.IsNumber(option.ShowOrder))chart.ChartPaint[0].ShowOrder=option.ShowOrder;this.SetChartBorder(chart,option);//是否自动更新
12862
12863
  if(option.IsAutoUpdate!=null)chart.IsAutoUpdate=option.IsAutoUpdate;if(option.AutoUpdateFrequency>0)chart.AutoUpdateFrequency=option.AutoUpdateFrequency;if(IFrameSplitOperator.IsBool(option.EnableFilter))chart.EnableFilter=option.EnableFilter;//注册事件
12863
12864
  if(option.EventCallback){for(var i=0;i<option.EventCallback.length;++i){var item=option.EventCallback[i];chart.AddEventCallback(item);}}return chart;};this.SetChartBorder=function(chart,option){if(!option.Border)return;var item=option.Border;if(IFrameSplitOperator.IsNumber(option.Border.Left))chart.Frame.ChartBorder.Left=option.Border.Left;if(IFrameSplitOperator.IsNumber(option.Border.Right))chart.Frame.ChartBorder.Right=option.Border.Right;if(IFrameSplitOperator.IsNumber(option.Border.Top))chart.Frame.ChartBorder.Top=option.Border.Top;if(IFrameSplitOperator.IsNumber(option.Border.Bottom))chart.Frame.ChartBorder.Bottom=option.Border.Bottom;var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
12864
12865
  chart.Frame.ChartBorder.Left*=pixelTatio;chart.Frame.ChartBorder.Right*=pixelTatio;chart.Frame.ChartBorder.Top*=pixelTatio;chart.Frame.ChartBorder.Bottom*=pixelTatio;};/////////////////////////////////////////////////////////////////////////////
@@ -12881,13 +12882,14 @@ this.mapEvent=new _map2.default();//通知外部调用 key:JSCHART_EVENT_ID valu
12881
12882
  this.AutoUpdateTimer=null;this.AutoUpdateFrequency=15000;//更新频率
12882
12883
  this.LoadDataSplashTitle="数据加载中";//下载数据提示信息
12883
12884
  this.TooltipMinuteChart;//分时图
12885
+ this.FloatTooltip;//提示浮框
12884
12886
  this.UIElement=uielement;this.LastPoint=new Point();//鼠标位置
12885
12887
  //MouseOnStatus:{ RowIndex:行, ColumnIndex:列}
12886
12888
  this.LastMouseStatus={MoveStatus:null,TooltipStatus:null,MouseOnStatus:null};this.IsDestroy=false;//是否已经销毁了
12887
12889
  this.ChartDestroy=function()//销毁
12888
- {this.IsDestroy=true;this.StopAutoUpdate();};this.EnableFilterData=false;//是否启动筛选
12890
+ {this.IsDestroy=true;this.StopAutoUpdate();this.DestroyMinuteChartTooltip();this.DestroyFloatTooltip();};this.EnableFilterData=false;//是否启动筛选
12889
12891
  this.InitalMinuteChartTooltip=function(option){if(this.TooltipMinuteChart)return;this.TooltipMinuteChart=new JSTooltipMinuteChart();this.TooltipMinuteChart.Inital(this,option);this.TooltipMinuteChart.Create();};this.DestroyMinuteChartTooltip=function(){if(!this.TooltipMinuteChart)return;this.TooltipMinuteChart.Destroy();this.TooltipMinuteChart=null;};//data={ Symbol }
12890
- this.ShowMinuteChartTooltip=function(x,y,data){if(!this.TooltipMinuteChart)return;var rtClient=this.UIElement.getBoundingClientRect();var rtScroll=GetScrollPosition();var offsetLeft=rtClient.left+rtScroll.Left;var offsetTop=rtClient.top+rtScroll.Top;data.Offset={Left:offsetLeft,Top:offsetTop};this.TooltipMinuteChart.Show(data,x,y);};this.HideMinuteChartTooltip=function(){if(!this.TooltipMinuteChart)return;this.TooltipMinuteChart.Hide();};this.HideAllTooltip=function(){this.HideMinuteChartTooltip();};//筛选数据
12892
+ this.ShowMinuteChartTooltip=function(x,y,data){if(!this.TooltipMinuteChart)return;var rtClient=this.UIElement.getBoundingClientRect();var rtScroll=GetScrollPosition();var offsetLeft=rtClient.left+rtScroll.Left;var offsetTop=rtClient.top+rtScroll.Top;data.Offset={Left:offsetLeft,Top:offsetTop};this.TooltipMinuteChart.Show(data,x,y);};this.HideMinuteChartTooltip=function(){if(!this.TooltipMinuteChart)return;this.TooltipMinuteChart.Hide();};this.HideFloatTooltip=function(){if(!this.FloatTooltip)return;this.FloatTooltip.Hide();};this.DestroyFloatTooltip=function(){if(!this.FloatTooltip)return;this.FloatTooltip.Destroy();this.FloatTooltip=null;};this.InitalFloatTooltip=function(option){if(this.FloatTooltip)return;this.FloatTooltip=new JSFloatTooltip();this.FloatTooltip.Inital(this,option);this.FloatTooltip.Create();};this.DrawFloatTooltip=function(point,toolTip){if(!this.FloatTooltip)return;this.UpdateFloatTooltip(point,toolTip);};this.UpdateFloatTooltip=function(point,toolTip){if(!this.FloatTooltip)return;var sendData={Tooltip:toolTip,Point:point,DataType:5};this.FloatTooltip.Update(sendData);};this.HideAllTooltip=function(){this.HideMinuteChartTooltip();this.HideFloatTooltip();};//筛选数据
12891
12893
  this.FilterData=function(aryDeal){if(!this.EnableFilterData)return aryDeal;//过滤由外部处理
12892
12894
  var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_FILTER_DEAL_DATA);if(!event||!event.Callback)return aryDeal;var sendData={Data:aryDeal,Result:[]};//{ Data:原始数据, Result:[] 过滤以后的数据 }
12893
12895
  event.Callback(event,sendData,this);return sendData.Result;};this.EnableFilter=function(bEnable,option)//启动|关闭筛选
@@ -12902,7 +12904,7 @@ if(IFrameSplitOperator.IsBool(option.IsShowLastPage))this.IsShowLastPage=option.
12902
12904
  if(IFrameSplitOperator.IsNumber(option.BorderLine))this.Frame.BorderLine=option.BorderLine;//边框
12903
12905
  }var bRegisterKeydown=true;var bRegisterWheel=true;if(option){if(option.KeyDown===false){bRegisterKeydown=false;JSConsole.Chart.Log('[JSDealChartContainer::Create] not register keydown event.');}if(option.Wheel===false){bRegisterWheel=false;JSConsole.Chart.Log('[JSDealChartContainer::Create] not register wheel event.');}if(IFrameSplitOperator.IsBool(option.EnableSelected))chart.SelectedData.Enable=option.EnableSelected;}if(bRegisterKeydown)this.UIElement.addEventListener("keydown",function(e){_this51.OnKeyDown(e);},true);//键盘消息
12904
12906
  if(bRegisterWheel)this.UIElement.addEventListener("wheel",function(e){_this51.OnWheel(e);},true);//上下滚动消息
12905
- this.UIElement.onmousedown=function(e){_this51.UIOnMouseDown(e);};this.UIElement.ondblclick=function(e){_this51.UIOnDblClick(e);};this.UIElement.oncontextmenu=function(e){_this51.UIOnContextMenu(e);};this.UIElement.onmousemove=function(e){_this51.UIOnMouseMove(e);};};this.Draw=function(){if(this.UIElement.width<=0||this.UIElement.height<=0)return;this.Canvas.clearRect(0,0,this.UIElement.width,this.UIElement.height);var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
12907
+ this.UIElement.onmousedown=function(e){_this51.UIOnMouseDown(e);};this.UIElement.ondblclick=function(e){_this51.UIOnDblClick(e);};this.UIElement.oncontextmenu=function(e){_this51.UIOnContextMenu(e);};this.UIElement.onmousemove=function(e){_this51.UIOnMouseMove(e);};this.UIElement.onmouseout=function(e){_this51.UIOnMounseOut(e);};this.UIElement.onmouseleave=function(e){_this51.UIOnMouseleave(e);};};this.Draw=function(){if(this.UIElement.width<=0||this.UIElement.height<=0)return;this.Canvas.clearRect(0,0,this.UIElement.width,this.UIElement.height);var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
12906
12908
  this.Canvas.lineWidth=pixelTatio;//手机端需要根据分辨率比调整线段宽度
12907
12909
  if(this.ChartSplashPaint&&this.ChartSplashPaint.IsEnableSplash){this.Frame.Draw({IsEnableSplash:this.ChartSplashPaint.IsEnableSplash});this.ChartSplashPaint.Draw();return;}this.Frame.Draw();this.Frame.DrawLogo();//框架内图形
12908
12910
  for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(item.IsDrawFirst)item.Draw();}for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(!item.IsDrawFirst)item.Draw();}};this.ChangeSymbol=function(symbol,option){this.Symbol=symbol;this.Data=null;this.SourceData=null;var chart=this.ChartPaint[0];if(chart)chart.Data=null;if(option&&IFrameSplitOperator.IsNumber(option.TradeDate))this.TradeDate=option.TradeDate;if(!this.Symbol){this.Draw();return;}this.RequestDealData();};this.CancelAutoUpdate=function()//关闭停止更新
@@ -12946,12 +12948,7 @@ if(tooltipData){if(tooltipData.Type==20){if(tooltipData.Data&&tooltipData.Data.S
12946
12948
  chartTooltipData={ Symbol:tooltipData.Stock.OriginalSymbol, Rect:tooltipData.Rect };
12947
12949
  }
12948
12950
  }
12949
- else
12950
- {
12951
- this.LastMouseStatus.TooltipStatus={ X:x, Y:y, Data:tooltipData, ClientX:e.clientX, ClientY:e.clientY };
12952
- bDrawTooltip=true;
12953
- }
12954
- */}}if(mouseStatus)this.UIElement.style.cursor=mouseStatus.Cursor;if(bDraw)this.Draw();if(!bShowMinuteTooltip)this.HideMinuteChartTooltip();if(bShowMinuteTooltip)this.ShowMinuteChartTooltip(null,null,chartTooltipData);};this.UIOnDblClick=function(e){var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;var chart=this.ChartPaint[0];if(chart)chart.OnDblClick(x,y,e);};this.UIOnContextMenu=function(e){e.preventDefault();};this.GotoNextPage=function(){if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return false;var chart=this.ChartPaint[0];if(!chart)return false;var pageSize=chart.GetPageSize();if(pageSize>this.Data.Data.length)return false;var offset=this.Data.DataOffset+pageSize;if(offset+pageSize==this.Data.Data.length-1)return false;if(offset+pageSize>this.Data.Data.length)//最后一页不够一屏调整到满屏
12951
+ */else{this.LastMouseStatus.TooltipStatus={X:x,Y:y,Data:tooltipData,ClientX:e.clientX,ClientY:e.clientY};bDrawTooltip=true;}}}if(mouseStatus)this.UIElement.style.cursor=mouseStatus.Cursor;if(bDraw)this.Draw();if(this.LastMouseStatus.TooltipStatus){var xTooltip=e.clientX-this.UIElement.getBoundingClientRect().left;var yTooltip=e.clientY-this.UIElement.getBoundingClientRect().top;this.DrawFloatTooltip({X:xTooltip,Y:yTooltip,YMove:20/pixelTatio},this.LastMouseStatus.TooltipStatus.Data);}else{this.HideFloatTooltip();}if(!bShowMinuteTooltip)this.HideMinuteChartTooltip();if(bShowMinuteTooltip)this.ShowMinuteChartTooltip(null,null,chartTooltipData);};this.UIOnDblClick=function(e){var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;var chart=this.ChartPaint[0];if(chart)chart.OnDblClick(x,y,e);};this.UIOnContextMenu=function(e){e.preventDefault();};this.UIOnMounseOut=function(e){this.HideAllTooltip();};this.UIOnMouseleave=function(e){this.HideAllTooltip();};this.GotoNextPage=function(){if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return false;var chart=this.ChartPaint[0];if(!chart)return false;var pageSize=chart.GetPageSize();if(pageSize>this.Data.Data.length)return false;var offset=this.Data.DataOffset+pageSize;if(offset+pageSize==this.Data.Data.length-1)return false;if(offset+pageSize>this.Data.Data.length)//最后一页不够一屏调整到满屏
12955
12952
  {this.Data.DataOffset=this.Data.Data.length-pageSize;}else{this.Data.DataOffset=offset;}return true;};this.GotoPreviousPage=function(){if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return false;var chart=this.ChartPaint[0];if(!chart)return false;if(this.Data.DataOffset<=0)return false;var pageSize=chart.GetPageSize();var offset=this.Data.DataOffset;offset-=pageSize;if(offset<0)offset=0;this.Data.DataOffset=offset;return true;};this.GotoLastPage=function(){var chart=this.ChartPaint[0];if(!chart)return;//显示最后一屏
12956
12953
  var pageSize=chart.GetPageSize(true);var offset=this.Data.Data.length-pageSize;if(offset<0)offset=0;this.Data.DataOffset=offset;};this.SetColumn=function(aryColunm,option){var chart=this.ChartPaint[0];if(chart){chart.SetColumn(aryColunm);chart.SizeChange=true;if(option&&option.Redraw)this.Draw();}};this.ReloadResource=function(option){this.Frame.ReloadResource(option);for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(item.ReloadResource)item.ReloadResource(option);}if(option&&option.Redraw){this.SetSizeChange(true);this.Draw();}};}JSDealChartContainer.JsonDataToDealData=function(data){var symbol=data.symbol;var result=[];if(!IFrameSplitOperator.IsNonEmptyArray(data.detail))return result;//0=时间 1=价格 2=成交量 3=成交金额 4=BS 5=字符串时间 6=ID 100=Guid
12957
12954
  for(var i=0;i<data.detail.length;++i){var item=data.detail[i];var dealItem={Time:item[0],Price:item[1],Vol:item[2],BS:item[4],Amount:item[3],Guid:Guid()};dealItem.Source=item;if(item[5])dealItem.StrTime=item[5];if(item[6])dealItem.ID=item[6];if(item[11])dealItem.Symbol=item[11];//股票代码
@@ -13016,10 +13013,11 @@ this.UpdateCacheData=function(){this.RectClient.Left=this.ChartBorder.GetLeft();
13016
13013
  {if(recalculate)this.CalculateSize();var size=this.TableCount*this.RowCount;return size;};this.CalculateSize=function()//计算大小
13017
13014
  {this.UpdateCacheData();var pixelRatio=GetDevicePixelRatio();this.HeaderFont=this.HeaderFontConfig.Size*pixelRatio+'px '+this.HeaderFontConfig.Name;this.ItemFont=this.ItemFontConfig.Size*pixelRatio+'px '+this.ItemFontConfig.Name;this.Canvas.font=this.ItemFont;var sumWidth=0,itemWidth=0;for(var i=0;i<this.Column.length;++i){var item=this.Column[i];itemWidth=this.Canvas.measureText(item.MaxText).width;item.Width=itemWidth+4;sumWidth+=item.Width;}var clientWidth=this.RectClient.Right-this.RectClient.Left;this.TableCount=parseInt(clientWidth/sumWidth);if(this.TableCount<=0)this.TableCount=1;//只少显示一个
13018
13015
  if(this.IsSingleTable)this.TableCount=1;this.TableWidth=clientWidth/this.TableCount;this.HeaderHeight=this.GetFontHeight(this.HeaderFont,"擎")+this.HeaderMergin.Top+this.HeaderMergin.Bottom;if(!this.IsShowHeader)this.HeaderHeight=0;this.RowHeight=this.GetFontHeight(this.ItemFont,"擎")+this.HeaderMergin.Top+this.HeaderMergin.Bottom;this.RowCount=parseInt((this.RectClient.Bottom-this.RectClient.Top-this.HeaderHeight)/this.RowHeight);};this.DrawHeader=function(){if(!this.IsShowHeader)return;var left=this.RectClient.Left+this.HeaderMergin.Left;var top=this.RectClient.Top;var y=top+this.HeaderMergin.Top+(this.HeaderHeight-this.HeaderMergin.Top-this.HeaderMergin.Bottom)/2;this.Canvas.font=this.HeaderFont;this.Canvas.fillStyle=this.HeaderColor;for(var i=0,j=0;i<this.TableCount;++i){var tableLeft=left+this.TableWidth*i;var textLeft=tableLeft;for(j=0;j<this.Column.length;++j){var item=this.Column[j];var itemWidth=item.Width;if(j==this.Column.length-1)itemWidth=this.TableWidth-(textLeft-tableLeft)-this.HeaderMergin.Right-this.HeaderMergin.Left;var x=textLeft;if(item.TextAlign=='center'){x=textLeft+itemWidth/2;this.Canvas.textAlign="center";}else if(item.TextAlign=='right'){x=textLeft+itemWidth;this.Canvas.textAlign="right";}else{this.Canvas.textAlign="left";}this.Canvas.textBaseline="middle";this.Canvas.fillText(item.Title,x,y);textLeft+=item.Width;}}};this.DrawBorder=function(){var left=ToFixedPoint(this.RectClient.Left);var right=ToFixedPoint(this.RectClient.Right);var top=ToFixedPoint(this.RectClient.Top);var bottom=ToFixedPoint(this.RectClient.Bottom);this.Canvas.strokeStyle=this.BorderColor;this.Canvas.beginPath();if(this.IsShowHeader){this.Canvas.moveTo(left,top+this.HeaderHeight);this.Canvas.lineTo(right,top+this.HeaderHeight);}var tableLeft=ToFixedPoint(left+this.TableWidth);for(var i=1;i<this.TableCount;++i){this.Canvas.moveTo(tableLeft,top);this.Canvas.lineTo(tableLeft,bottom);tableLeft=ToFixedPoint(tableLeft+this.TableWidth);}this.Canvas.stroke();};this.DrawBody=function(){if(!this.Data)return;if(!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return;this.Canvas.font=this.ItemFont;var top=this.RectClient.Top+this.HeaderHeight;var left=this.RectClient.Left+this.HeaderMergin.Left;var dataCount=this.Data.Data.length;var index=this.Data.DataOffset;if(this.ShowOrder==1){var index=this.Data.DataOffset+this.TableCount*this.RowCount;if(index>=dataCount)index=dataCount-1;for(var i=0,j=0;i<this.TableCount;++i){var tableLeft=left+this.TableWidth*i;var textLeft=tableLeft;var textTop=top;for(j=0;j<this.RowCount&&index>=0;++j,--index){var dataItem=this.Data.Data[index];this.DrawSelectedRow(dataItem,index,rtRow);this.DrawRow(dataItem,textLeft,textTop,index);textTop+=this.RowHeight;}}}else{for(var i=0,j=0;i<this.TableCount;++i){var tableLeft=left+this.TableWidth*i;var textLeft=tableLeft;var textTop=top;for(j=0;j<this.RowCount&&index<dataCount;++j,++index){var dataItem=this.Data.Data[index];var rtRow={Left:textLeft-this.HeaderMergin.Left,Top:textTop,Height:this.RowHeight,Width:this.TableWidth};rtRow.Right=rtRow.Left+rtRow.Width;rtRow.Bottom=rtRow.Top+rtRow.Height;this.DrawSelectedRow(dataItem,index,rtRow);this.DrawRow(dataItem,textLeft,textTop,index);this.AryCellRect.push({Rect:rtRow,Type:1,DataIndex:index});textTop+=this.RowHeight;}}}};this.DrawRow=function(data,left,top,dataIndex,colIndex){var tableLeft=left;var tableRight=left+this.TableWidth;for(var i=0;i<this.Column.length;++i){var item=this.Column[i];var textColor=item.TextColor;var text=null;var itemWidth=item.Width;var textAlign=item.TextAlign;if(left+itemWidth>tableRight)break;if(i==this.Column.length-1)itemWidth=this.TableWidth-(left-tableLeft)-this.HeaderMergin.Right-this.HeaderMergin.Left;var drawInfo={Text:null,TextColor:item.TextColor,TextAlign:item.TextAlign,Tooltip:null,Index:dataIndex,ColumnIndex:i};var rtItem={Left:left,Top:top,Width:itemWidth,Height:this.RowHeight};rtItem.Right=rtItem.Left+rtItem.Width;rtItem.Bottom=rtItem.Top+rtItem.Height;drawInfo.Rect=rtItem;var bDrawV2=false;if(item.Type==DEAL_COLUMN_ID.TIME_ID){text=IFrameSplitOperator.FormatTimeString(data.Time,item.Foramt);}else if(item.Type==DEAL_COLUMN_ID.STRING_TIME_ID){text=data.StrTime;}else if(item.Type==DEAL_COLUMN_ID.PRICE_ID){if(data.Price>this.YClose)textColor=this.UpColor;else if(data.Price<this.YClose)textColor=this.DownColor;else textColor=this.UnchangeColor;text=data.Price.toFixed(this.Decimal);}else if(item.Type==DEAL_COLUMN_ID.VOL_ID){text=IFrameSplitOperator.FormatValueString(data.Vol,0);textColor=this.GetVolColor(item,data);}else if(item.Type==DEAL_COLUMN_ID.DEAL_ID){text=IFrameSplitOperator.FormatValueString(data.Deal,0);}else if(item.Type==DEAL_COLUMN_ID.BS_ID){if(data.BS==1){text="B";textColor=this.UpColor;}else if(data.BS==2){text="S";textColor=this.DownColor;}}else if(item.Type==DEAL_COLUMN_ID.UPDOWN_ID){if(IFrameSplitOperator.IsNumber(this.YClose)){var value=data.Price-this.YClose;text=value.toFixed(2);if(value>0)textColor=this.UpColor;else if(value<0)textColor=this.DownColor;else textColor=this.UnchangeColor;}}else if(item.Type==DEAL_COLUMN_ID.INDEX_ID){text=(dataIndex+1).toString();}else if(item.Type==DEAL_COLUMN_ID.MULTI_BAR_ID){var rtItem={Left:left,Top:top,Width:itemWidth,Height:this.RowHeight};this.DrawMultiBar(item,data,rtItem);}else if(item.Type==DEAL_COLUMN_ID.CENTER_BAR_ID){var rtItem={Left:left,Top:top,Width:itemWidth,Height:this.RowHeight};this.DrawCenterBar(item,data,rtItem);}else if(item.Type==DEAL_COLUMN_ID.CUSTOM_TEXT_ID){var out={Text:null,TextColor:null,TextAlign:null};//输出
13019
- var rtItem={Left:left,Top:top,Width:itemWidth,Height:this.RowHeight};if(this.DrawCustomText(item,data,rtItem,dataIndex,i,out)){if(out.Text)text=out.Text;if(out.TextColor)textColor=out.TextColor;if(out.TextAlign)textAlign=out.TextAlign;}}else if(this.IsReserveString(item.Type)){this.FormatReserveString(item,data,drawInfo);bDrawV2=true;}else if(this.IsReserveNumber(item.Type)){this.FormatReserveNumber(item,data,drawInfo);bDrawV2=true;}if(bDrawV2){this.DrawItemText(drawInfo.Text,drawInfo.TextColor,drawInfo.TextAlign,rtItem.Left,rtItem.Top,rtItem.Width,drawInfo.BGColor);}else{this.DrawItemText(text,textColor,textAlign,left,top,itemWidth);}if(item.ChartTooltip&&item.ChartTooltip.Enable&&IFrameSplitOperator.IsNumber(item.ChartTooltip.Type))//Type 20分时图 21K线图
13016
+ var rtItem={Left:left,Top:top,Width:itemWidth,Height:this.RowHeight};if(this.DrawCustomText(item,data,rtItem,dataIndex,i,out)){if(out.Text)text=out.Text;if(out.TextColor)textColor=out.TextColor;if(out.TextAlign)textAlign=out.TextAlign;}}else if(this.IsReserveString(item.Type)){this.FormatReserveString(item,data,drawInfo);bDrawV2=true;}else if(this.IsReserveNumber(item.Type)){this.FormatReserveNumber(item,data,drawInfo);bDrawV2=true;}if(bDrawV2){this.DrawItemText(drawInfo.Text,drawInfo.TextColor,drawInfo.TextAlign,rtItem.Left,rtItem.Top,rtItem.Width,drawInfo.BGColor);}else{this.DrawItemText(text,textColor,textAlign,left,top,itemWidth);}if(drawInfo.Tooltip){//Type:2=数据提示信息
13017
+ var tooltipData=(0,_defineProperty3.default)({Rect:rtItem,Data:data,Index:dataIndex,Column:item,Type:drawInfo.Tooltip.Type},'Data',drawInfo.Tooltip.Data);this.TooltipRect.push(tooltipData);}else if(item.ChartTooltip&&item.ChartTooltip.Enable&&IFrameSplitOperator.IsNumber(item.ChartTooltip.Type))//Type 20分时图 21K线图
13020
13018
  {var tooltipData={Rect:rtItem,Data:data,Index:dataIndex,Column:item,Type:item.ChartTooltip.Type};this.TooltipRect.push(tooltipData);}left+=item.Width;}};this.FormatReserveNumber=function(column,data,drawInfo){if(column.DefaultText)drawInfo.Text=column.DefaultText;var fieldName=MAP_DEAL_COLUMN_FIELD.get(column.Type);if(!data||!fieldName)return;var value=data[fieldName];if(!IFrameSplitOperator.IsNumber(value))return;if(IFrameSplitOperator.IsNumber(column.ColorType)){if(column.ColorType==1){drawInfo.TextColor=this.GetUpDownColor(value,0);}else if(column.ColorType==2){drawInfo.TextColor=this.GetUpDownColorV2(value,0);}}var text=value.toFixed(column.FloatPrecision);if(column.Format&&IFrameSplitOperator.IsNumber(column.Format.Type)){var format=column.Format;switch(format.Type){case 1://原始数据
13021
13019
  text=value.toFixed(column.FloatPrecision);break;case 2://千分位分割
13022
- text=IFrameSplitOperator.FormatValueThousandsString(value,column.FloatPrecision);break;case 3:var exfloatPrecision=1;if(IFrameSplitOperator.IsNumber(format.ExFloatPrecision))exfloatPrecision=format.ExFloatPrecision;text=IFrameSplitOperator.FormatValueStringV2(value,column.FloatPrecision,exfloatPrecision);break;}}drawInfo.Text=text;};this.FormatReserveString=function(column,data,drawInfo){if(column.DefaultText)drawInfo.Text=column.DefaultText;var fieldName=MAP_DEAL_COLUMN_FIELD.get(column.Type);if(!data||!fieldName)return;var item=data[fieldName];if(IFrameSplitOperator.IsObject(item)){if(item.Text)drawInfo.Text=item.Text;if(item.TextColor)drawInfo.TextColor=item.TextColor;if(item.BGColor)drawInfo.BGColor=item.BGColor;}else if(IFrameSplitOperator.IsString(item)){drawInfo.Text=item;}};this.GetUpDownColor=function(price,price2){if(price>price2)return this.UpColor;else if(price<price2)return this.DownColor;else return this.UnchangeColor;};this.GetUpDownColorV2=function(price,price2){if(price>=price2)return this.UpColor;else return this.DownColor;};this.DrawSelectedRow=function(data,index,rtRow){if(!this.SelectedData)return;if(!this.SelectedData.Enable)return;if(!this.SelectedData.Guid||this.SelectedData.Guid!=data.Guid)return;this.Canvas.fillStyle=this.SelectedConfig.BGColor;this.Canvas.fillRect(rtRow.Left,rtRow.Top,rtRow.Width,rtRow.Height);};this.DrawItemText=function(text,textColor,textAlign,left,top,width){var x=left;if(textAlign=='center'){x=left+width/2;this.Canvas.textAlign="center";}else if(textAlign=='right'){x=left+width;this.Canvas.textAlign="right";}else{this.Canvas.textAlign="left";}this.Canvas.textBaseline="middle";this.Canvas.fillStyle=textColor;if(text)this.Canvas.fillText(text,x,top+this.RowHeight/2);};this.DrawMultiBar=function(colunmInfo,data,rtItem){if(!data.Source||!IFrameSplitOperator.IsNonEmptyArray(data.Source))return false;var barData=data.Source[colunmInfo.DataIndex];//{ Value:[0.4,0,2], Color:[0,1] };
13020
+ text=IFrameSplitOperator.FormatValueThousandsString(value,column.FloatPrecision);break;case 3:var exfloatPrecision=1;if(IFrameSplitOperator.IsNumber(format.ExFloatPrecision))exfloatPrecision=format.ExFloatPrecision;text=IFrameSplitOperator.FormatValueStringV2(value,column.FloatPrecision,exfloatPrecision);break;}}drawInfo.Text=text;};this.FormatReserveString=function(column,data,drawInfo){if(column.DefaultText)drawInfo.Text=column.DefaultText;var fieldName=MAP_DEAL_COLUMN_FIELD.get(column.Type);if(!data||!fieldName)return;var item=data[fieldName];if(IFrameSplitOperator.IsObject(item)){if(item.Text)drawInfo.Text=item.Text;if(item.TextColor)drawInfo.TextColor=item.TextColor;if(item.BGColor)drawInfo.BGColor=item.BGColor;}else if(IFrameSplitOperator.IsString(item)){drawInfo.Text=item;}if(item&&item.Tooltip&&IFrameSplitOperator.IsNonEmptyArray(item.Tooltip.AryText)){drawInfo.Tooltip={Type:2,Data:{AryText:item.Tooltip.AryText}};}};this.GetUpDownColor=function(price,price2){if(price>price2)return this.UpColor;else if(price<price2)return this.DownColor;else return this.UnchangeColor;};this.GetUpDownColorV2=function(price,price2){if(price>=price2)return this.UpColor;else return this.DownColor;};this.DrawSelectedRow=function(data,index,rtRow){if(!this.SelectedData)return;if(!this.SelectedData.Enable)return;if(!this.SelectedData.Guid||this.SelectedData.Guid!=data.Guid)return;this.Canvas.fillStyle=this.SelectedConfig.BGColor;this.Canvas.fillRect(rtRow.Left,rtRow.Top,rtRow.Width,rtRow.Height);};this.DrawItemText=function(text,textColor,textAlign,left,top,width){var x=left;if(textAlign=='center'){x=left+width/2;this.Canvas.textAlign="center";}else if(textAlign=='right'){x=left+width;this.Canvas.textAlign="right";}else{this.Canvas.textAlign="left";}this.Canvas.textBaseline="middle";this.Canvas.fillStyle=textColor;if(text)this.Canvas.fillText(text,x,top+this.RowHeight/2);};this.DrawMultiBar=function(colunmInfo,data,rtItem){if(!data.Source||!IFrameSplitOperator.IsNonEmptyArray(data.Source))return false;var barData=data.Source[colunmInfo.DataIndex];//{ Value:[0.4,0,2], Color:[0,1] };
13023
13021
  if(!barData)return false;if(!IFrameSplitOperator.IsNonEmptyArray(barData.Value))return false;var width=rtItem.Width-this.BarMergin.Left-this.BarMergin.Right;var left=rtItem.Left+this.BarMergin.Left;var top=rtItem.Top+this.RowMergin.Top+this.BarMergin.Top;var height=rtItem.Height-this.RowMergin.Top-this.RowMergin.Bottom-this.BarMergin.Top-this.BarMergin.Bottom;var right=left+width;for(var i=0;i<barData.Value.length;++i){var value=barData.Value[i];if(value<=0)continue;if(left>=right)break;var barWidth=width*value;if(barWidth<1)barWidth=1;if(left+barWidth>right)barWidth=right-left;var colorIndex=i;if(IFrameSplitOperator.IsNonEmptyArray(barData.Color)&&i<barData.Color.length)colorIndex=barData.Color[i];this.Canvas.fillStyle=g_JSChartResource.DealList.FieldColor.Bar[colorIndex];this.Canvas.fillRect(left,top,barWidth,height);left+=barWidth;}return true;};this.DrawCenterBar=function(colunmInfo,data,rtItem){if(!data.Source||!IFrameSplitOperator.IsNonEmptyArray(data.Source))return false;var barData=data.Source[colunmInfo.DataIndex];//{ Value:[0.4,0,2], Color:[0,1] };
13024
13022
  if(!barData)return false;if(!IFrameSplitOperator.IsNonEmptyArray(barData.Value))return false;var width=(rtItem.Width-this.BarMergin.Left-this.BarMergin.Right)/2;var left=rtItem.Left+this.BarMergin.Left;var center=left+width;var top=rtItem.Top+this.RowMergin.Top+this.BarMergin.Top;var height=rtItem.Height-this.RowMergin.Top-this.RowMergin.Bottom-this.BarMergin.Top-this.BarMergin.Bottom;var right=left+width;for(var i=0;i<barData.Value.length&&i<2;++i){var value=barData.Value[i];if(value<=0)continue;if(value>1)value=1;var barWidth=width*value;if(barWidth<1)barWidth=1;var colorIndex=i;if(IFrameSplitOperator.IsNonEmptyArray(barData.Color)&&i<barData.Color.length)colorIndex=barData.Color[i];this.Canvas.fillStyle=g_JSChartResource.DealList.FieldColor.Bar[colorIndex];if(i==0)//左边
13025
13023
  {this.Canvas.fillRect(center,top,-barWidth,height);}else//右边
@@ -13116,6 +13114,7 @@ this.JSPopMenu;//内置菜单
13116
13114
  this.IsShowRightMenu=true;//
13117
13115
  this.TooltipMinuteChart;//分时图
13118
13116
  this.TooltipKLineChart;//分时图
13117
+ this.FloatTooltip;//提示浮框
13119
13118
  //MouseOnStatus:{ RowIndex:行, ColumnIndex:列}
13120
13119
  this.LastMouseStatus={MoveStatus:null,TooltipStatus:null,MouseOnStatus:null};this.ChartDestroy=function()//销毁
13121
13120
  {this.IsDestroy=true;this.StopAutoUpdate();this.DestroyMinuteChartTooltip();this.DestroyKLineChartTooltip();this.DestroyFloatTooltip();};this.StopAutoDragScrollTimer=function(){JSConsole.Chart.Log("[JSReportChartContainer::StopAutoDragScrollTimer] stop ");this.EnablePageScroll=false;if(this.AutoDragScrollTimer!=null){clearTimeout(this.AutoDragScrollTimer);this.AutoDragScrollTimer=null;}};this.InitalPopMenu=function()//初始化弹出窗口
@@ -14797,7 +14796,9 @@ this.Update=function(data){if(!this.DivDialog)return;this.LanguageID=this.HQChar
14797
14796
  {var tooltipData=data.Tooltip;if(!tooltipData)return;if(tooltipData.Type==2)//报价列表表头图标提示信息
14798
14797
  {this.ReportHeaderIconTooltip(data);}else if(tooltipData.Type==1)//单元格截断内容
14799
14798
  {this.ReportCellTruncateTooltip(data);}}else if(data.DataType==4)//T型报价
14800
- {var tooltipData=data.Tooltip;if(!tooltipData)return;if(tooltipData.Type==2||tooltipData.Type==3){this.TReportIconTooltip(data);}}};this.UpdateRealtimeHQTooltip=function(data){if(!this.KItemCache)return;var kItem={Symbol:data.Symbol,Name:this.KItemCache.Name,Item:data.Data,IsOverlay:this.KItemCache.IsOverlay};var strKItem=(0,_stringify2.default)(kItem);var bUpdata=false;if(this.KItemCacheID!=strKItem)//数据变动的才更新
14799
+ {var tooltipData=data.Tooltip;if(!tooltipData)return;if(tooltipData.Type==2||tooltipData.Type==3){this.TReportIconTooltip(data);}}else if(data.DataType==5)//成交笔数
14800
+ {var tooltipData=data.Tooltip;if(!tooltipData)return;if(tooltipData.Type==2)//提示信息
14801
+ {this.DealItemTooltip(data);}}};this.UpdateRealtimeHQTooltip=function(data){if(!this.KItemCache)return;var kItem={Symbol:data.Symbol,Name:this.KItemCache.Name,Item:data.Data,IsOverlay:this.KItemCache.IsOverlay};var strKItem=(0,_stringify2.default)(kItem);var bUpdata=false;if(this.KItemCacheID!=strKItem)//数据变动的才更新
14801
14802
  {this.KItemCache=kItem;this.KItemCacheID=strKItem;this.AryText=this.GetFormatKLineTooltipText(this.KItemCache);bUpdata=true;}if(bUpdata){this.UpdateTableDOM();}};this.ShowTooltip=function(data){if(!data.Point)return;var x=data.Point.X;var y=data.Point.Y;this.Show(x,y,{YMove:data.Point.YMove});};//K线提示信息
14802
14803
  this.UpdateKLineToolitp=function(data){var tooltipData=data.Tooltip;var symbol=data.Symbol;var name=data.Name;var bOverlay=false;//是否是叠加指标
14803
14804
  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)//数据变动的才更新
@@ -14809,7 +14810,7 @@ this.UpdateMinuteInfoTooltip=function(data){var tooltipData=data.Tooltip;if(!too
14809
14810
  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 信息
14810
14811
  this.UpdatChartOXTooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!tooltipData.Data.Data)return;var item=tooltipData.Data.Data;var period=this.HQChart.Period;var aryText=[];if(ChartData.IsDayPeriod(period,true)){var strStartDate=IFrameSplitOperator.FormatDateString(item.Start.Date,"YYYY-MM-DD");var strEndDate=IFrameSplitOperator.FormatDateString(item.End.Date,"YYYY-MM-DD");aryText.push({Title:"起始时间",Text:strStartDate,Color:this.ValueColor});aryText.push({Title:"结束时间",Text:strEndDate,Color:this.ValueColor});}else if(ChartData.IsMinutePeriod(period,true)){var strStartDate=IFrameSplitOperator.FormatDateString(item.Start.Date);var strStartTime=IFrameSplitOperator.FormatTimeString(item.Start.Time,"HH:MM");var strEndDate=IFrameSplitOperator.FormatDateString(item.End.Date);var strEndTime=IFrameSplitOperator.FormatTimeString(item.End.Time,"HH:MM");aryText.push({Title:"起始时间",Text:strStartDate+' '+strStartTime,Color:this.ValueColor});aryText.push({Title:"结束时间",Text:strEndDate+' '+strEndTime,Color:this.ValueColor});}this.AryText=aryText;this.UpdateTableDOM();this.ShowTooltip(data);};//表头图标
14811
14812
  this.ReportHeaderIconTooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!IFrameSplitOperator.IsNonEmptyArray(tooltipData.Data.AryText))return;this.AryText=tooltipData.Data.AryText;this.UpdateTableDOM();this.ShowTooltip(data);};//表格单元格截断内容
14812
- this.ReportCellTruncateTooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!IFrameSplitOperator.IsNonEmptyArray(tooltipData.Data.AryText))return;var item=tooltipData.Data.AryText[0];if(!item.Text)return;this.AryText=[{Title:item.Text,IsMergeCell:true}];this.UpdateTableDOM();this.ShowTooltip(data);};this.TReportIconTooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!IFrameSplitOperator.IsNonEmptyArray(tooltipData.Data.AryText))return;this.AryText=tooltipData.Data.AryText;this.UpdateTableDOM();this.ShowTooltip(data);};this.UpdateTableDOM=function(){var index=0;for(index=0;index<this.AryText.length&&index<this.MaxRowCount;++index){var outItem=this.AryText[index];var item=this.AryData[index];if(outItem.HTMLTitle)item.TitleSpan.innerHTML=outItem.HTMLTitle;else item.TitleSpan.innerText=outItem.Title;item.TitleSpan.style.color=this.TextColor;if(outItem.HTMLText)item.TextSpan.innerHTML=outItem.HTMLText;else item.TextSpan.innerText=outItem.Text;item.TextSpan.style.color=outItem.Color;item.TextTd.style.color=outItem.Color;if(outItem.ClassName){item.TextSpan.className=outItem.ClassName;}else{if(item.TextSpan.className!=this.ValueAlign.Right)item.TextSpan.className=this.ValueAlign.Right;}if(outItem.IsMergeCell)//合并单元格
14813
+ this.ReportCellTruncateTooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!IFrameSplitOperator.IsNonEmptyArray(tooltipData.Data.AryText))return;var item=tooltipData.Data.AryText[0];if(!item.Text)return;this.AryText=[{Title:item.Text,IsMergeCell:true}];this.UpdateTableDOM();this.ShowTooltip(data);};this.TReportIconTooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!IFrameSplitOperator.IsNonEmptyArray(tooltipData.Data.AryText))return;this.AryText=tooltipData.Data.AryText;this.UpdateTableDOM();this.ShowTooltip(data);};this.DealItemTooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!IFrameSplitOperator.IsNonEmptyArray(tooltipData.Data.AryText))return;this.AryText=tooltipData.Data.AryText;this.UpdateTableDOM();this.ShowTooltip(data);};this.UpdateTableDOM=function(){var index=0;for(index=0;index<this.AryText.length&&index<this.MaxRowCount;++index){var outItem=this.AryText[index];var item=this.AryData[index];if(outItem.HTMLTitle)item.TitleSpan.innerHTML=outItem.HTMLTitle;else item.TitleSpan.innerText=outItem.Title;item.TitleSpan.style.color=this.TextColor;if(outItem.HTMLText)item.TextSpan.innerHTML=outItem.HTMLText;else item.TextSpan.innerText=outItem.Text;item.TextSpan.style.color=outItem.Color;item.TextTd.style.color=outItem.Color;if(outItem.ClassName){item.TextSpan.className=outItem.ClassName;}else{if(item.TextSpan.className!=this.ValueAlign.Right)item.TextSpan.className=this.ValueAlign.Right;}if(outItem.IsMergeCell)//合并单元格
14813
14814
  {item.TitleTd.colspan=2;item.TextTd.style.display="none";}else{if(item.TitleTd.colspan!=1)item.TitleTd.colspan=1;item.TextTd.style.display="";}item.Tr.style.display="";if(item.Tr2)item.Tr2.style.display="none";}for(;index<this.MaxRowCount;++index){var item=this.AryData[index];item.Tr.style.display="none";if(item.Tr2)item.Tr2.style.display="none";}};this.GetFormatKLineTooltipText=function(kItem){var data=kItem.Item;var symbol=kItem.Symbol;if(data&&data.Symbol)symbol=symbol;var upperSymbol="";if(symbol)upperSymbol=symbol.toUpperCase();var defaultfloatPrecision=GetfloatPrecision(symbol);//价格小数位数
14814
14815
  var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);//日期
14815
14816
  var dateItem=this.ForamtDate(data.Date,"YYYY/MM/DD/W",'FloatTooltip-Date');//时间
@@ -14975,7 +14976,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
14975
14976
  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);};}/********************************************************************************
14976
14977
  * 版本信息输出
14977
14978
  *
14978
- */var HQCHART_VERSION="1.1.14777";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();//把给外界调用的方法暴露出来
14979
+ */var HQCHART_VERSION="1.1.14783";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();//把给外界调用的方法暴露出来
14979
14980
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
14980
14981
  // BaseIndex:BaseIndex,
14981
14982
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.14778",
3
+ "version": "1.1.14784",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -1348,6 +1348,16 @@ function JSFloatTooltip()
1348
1348
  this.TReportIconTooltip(data);
1349
1349
  }
1350
1350
  }
1351
+ else if (data.DataType==5) //成交笔数
1352
+ {
1353
+ var tooltipData=data.Tooltip;
1354
+ if (!tooltipData) return;
1355
+
1356
+ if (tooltipData.Type==2) //提示信息
1357
+ {
1358
+ this.DealItemTooltip(data);
1359
+ }
1360
+ }
1351
1361
  }
1352
1362
 
1353
1363
  this.UpdateRealtimeHQTooltip=function(data)
@@ -1639,6 +1649,18 @@ function JSFloatTooltip()
1639
1649
 
1640
1650
  this.ShowTooltip(data);
1641
1651
  }
1652
+
1653
+ this.DealItemTooltip=function(data)
1654
+ {
1655
+ var tooltipData=data.Tooltip;
1656
+ if (!tooltipData.Data || !IFrameSplitOperator.IsNonEmptyArray(tooltipData.Data.AryText)) return;
1657
+
1658
+ this.AryText=tooltipData.Data.AryText;
1659
+
1660
+ this.UpdateTableDOM();
1661
+
1662
+ this.ShowTooltip(data);
1663
+ }
1642
1664
 
1643
1665
  this.UpdateTableDOM=function()
1644
1666
  {
@@ -72,6 +72,7 @@ function JSDealChart(divElement)
72
72
  }
73
73
 
74
74
  if (option.MinuteChartTooltip && option.MinuteChartTooltip.Enable) chart.InitalMinuteChartTooltip(option.MinuteChartTooltip);
75
+ if (option.FloatTooltip && option.FloatTooltip.Enable) chart.InitalFloatTooltip(option.FloatTooltip); //提示信息
75
76
 
76
77
  if (!option.Symbol)
77
78
  {
@@ -215,6 +216,7 @@ function JSDealChartContainer(uielement)
215
216
  this.LoadDataSplashTitle="数据加载中"; //下载数据提示信息
216
217
 
217
218
  this.TooltipMinuteChart; //分时图
219
+ this.FloatTooltip; //提示浮框
218
220
 
219
221
  this.UIElement=uielement;
220
222
  this.LastPoint=new Point(); //鼠标位置
@@ -228,6 +230,9 @@ function JSDealChartContainer(uielement)
228
230
  {
229
231
  this.IsDestroy=true;
230
232
  this.StopAutoUpdate();
233
+
234
+ this.DestroyMinuteChartTooltip();
235
+ this.DestroyFloatTooltip();
231
236
  }
232
237
 
233
238
  this.EnableFilterData=false; //是否启动筛选
@@ -272,9 +277,55 @@ function JSDealChartContainer(uielement)
272
277
  this.TooltipMinuteChart.Hide();
273
278
  }
274
279
 
280
+ this.HideFloatTooltip=function()
281
+ {
282
+ if (!this.FloatTooltip) return;
283
+
284
+ this.FloatTooltip.Hide();
285
+ }
286
+
287
+ this.DestroyFloatTooltip=function()
288
+ {
289
+ if (!this.FloatTooltip) return;
290
+
291
+ this.FloatTooltip.Destroy();
292
+ this.FloatTooltip=null;
293
+ }
294
+
295
+ this.InitalFloatTooltip=function(option)
296
+ {
297
+ if (this.FloatTooltip) return;
298
+
299
+ this.FloatTooltip=new JSFloatTooltip();
300
+ this.FloatTooltip.Inital(this, option);
301
+ this.FloatTooltip.Create();
302
+ }
303
+
304
+ this.DrawFloatTooltip=function(point,toolTip)
305
+ {
306
+ if (!this.FloatTooltip) return;
307
+
308
+ this.UpdateFloatTooltip(point, toolTip)
309
+ }
310
+
311
+ this.UpdateFloatTooltip=function(point, toolTip)
312
+ {
313
+ if (!this.FloatTooltip) return;
314
+
315
+ var sendData=
316
+ {
317
+ Tooltip:toolTip,
318
+ Point:point,
319
+ DataType:5,
320
+ };
321
+
322
+ this.FloatTooltip.Update(sendData);
323
+ }
324
+
275
325
  this.HideAllTooltip=function()
276
326
  {
277
327
  this.HideMinuteChartTooltip();
328
+ this.HideFloatTooltip();
278
329
  }
279
330
 
280
331
  //筛选数据
@@ -386,6 +437,8 @@ function JSDealChartContainer(uielement)
386
437
  this.UIElement.ondblclick=(e)=>{ this.UIOnDblClick(e); }
387
438
  this.UIElement.oncontextmenu=(e)=> { this.UIOnContextMenu(e); }
388
439
  this.UIElement.onmousemove=(e)=>{ this.UIOnMouseMove(e);}
440
+ this.UIElement.onmouseout=(e)=>{ this.UIOnMounseOut(e); }
441
+ this.UIElement.onmouseleave=(e)=>{ this.UIOnMouseleave(e); }
389
442
  }
390
443
 
391
444
  this.Draw=function()
@@ -862,13 +915,12 @@ function JSDealChartContainer(uielement)
862
915
  chartTooltipData={ Symbol:tooltipData.Stock.OriginalSymbol, Rect:tooltipData.Rect };
863
916
  }
864
917
  }
918
+ */
865
919
  else
866
920
  {
867
921
  this.LastMouseStatus.TooltipStatus={ X:x, Y:y, Data:tooltipData, ClientX:e.clientX, ClientY:e.clientY };
868
922
  bDrawTooltip=true;
869
923
  }
870
- */
871
-
872
924
  }
873
925
  }
874
926
 
@@ -876,6 +928,17 @@ function JSDealChartContainer(uielement)
876
928
 
877
929
  if (bDraw) this.Draw();
878
930
 
931
+ if (this.LastMouseStatus.TooltipStatus)
932
+ {
933
+ var xTooltip = e.clientX-this.UIElement.getBoundingClientRect().left;
934
+ var yTooltip = e.clientY-this.UIElement.getBoundingClientRect().top;
935
+ this.DrawFloatTooltip({X:xTooltip, Y:yTooltip, YMove:20/pixelTatio},this.LastMouseStatus.TooltipStatus.Data);
936
+ }
937
+ else
938
+ {
939
+ this.HideFloatTooltip();
940
+ }
941
+
879
942
  if (!bShowMinuteTooltip) this.HideMinuteChartTooltip();
880
943
  if (bShowMinuteTooltip) this.ShowMinuteChartTooltip(null, null, chartTooltipData);
881
944
  }
@@ -895,6 +958,16 @@ function JSDealChartContainer(uielement)
895
958
  e.preventDefault();
896
959
  }
897
960
 
961
+ this.UIOnMounseOut=function(e)
962
+ {
963
+ this.HideAllTooltip();
964
+ }
965
+
966
+ this.UIOnMouseleave=function(e)
967
+ {
968
+ this.HideAllTooltip();
969
+ }
970
+
898
971
  this.GotoNextPage=function()
899
972
  {
900
973
  if (!this.Data || !IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return false;
@@ -1706,7 +1779,14 @@ function ChartDealList()
1706
1779
  this.DrawItemText(text, textColor, textAlign, left, top, itemWidth);
1707
1780
  }
1708
1781
 
1709
- if (item.ChartTooltip && item.ChartTooltip.Enable && IFrameSplitOperator.IsNumber(item.ChartTooltip.Type)) //Type 20分时图 21K线图
1782
+
1783
+ if (drawInfo.Tooltip)
1784
+ {
1785
+ //Type:2=数据提示信息
1786
+ var tooltipData={ Rect:rtItem, Data:data, Index:dataIndex, Column:item, Type:drawInfo.Tooltip.Type, Data:drawInfo.Tooltip.Data };
1787
+ this.TooltipRect.push(tooltipData);
1788
+ }
1789
+ else if (item.ChartTooltip && item.ChartTooltip.Enable && IFrameSplitOperator.IsNumber(item.ChartTooltip.Type)) //Type 20分时图 21K线图
1710
1790
  {
1711
1791
  var tooltipData={ Rect:rtItem, Data:data, Index:dataIndex, Column:item, Type:item.ChartTooltip.Type };
1712
1792
  this.TooltipRect.push(tooltipData);
@@ -1779,6 +1859,15 @@ function ChartDealList()
1779
1859
  {
1780
1860
  drawInfo.Text=item;
1781
1861
  }
1862
+
1863
+ if (item && item.Tooltip && IFrameSplitOperator.IsNonEmptyArray(item.Tooltip.AryText))
1864
+ {
1865
+ drawInfo.Tooltip=
1866
+ {
1867
+ Type:2,
1868
+ Data:{ AryText:item.Tooltip.AryText }
1869
+ }
1870
+ }
1782
1871
  }
1783
1872
 
1784
1873
  this.GetUpDownColor=function(price, price2)
@@ -581,7 +581,7 @@ JSIndexScript.prototype.MACD=function()
581
581
  {
582
582
  let data=
583
583
  {
584
- Name:'MACD', Description:'平滑异同平均', IsMainIndex:false,
584
+ Name:'MACD', Description:'平滑异同平均', IsMainIndex:false,FloatPrecision:3,
585
585
  Args:[ { Name:'SHORT', Value:12}, { Name:'LONG', Value:26}, { Name:'MID', Value:9} ],
586
586
  Script: //脚本
587
587
  'DIF:EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);\n\
@@ -490,6 +490,7 @@ function JSReportChartContainer(uielement)
490
490
  //
491
491
  this.TooltipMinuteChart; //分时图
492
492
  this.TooltipKLineChart; //分时图
493
+ this.FloatTooltip; //提示浮框
493
494
 
494
495
  //MouseOnStatus:{ RowIndex:行, ColumnIndex:列}
495
496
  this.LastMouseStatus={ MoveStatus:null, TooltipStatus:null, MouseOnStatus:null };
@@ -593,7 +593,7 @@ JSIndexScript.prototype.MACD=function()
593
593
  {
594
594
  let data=
595
595
  {
596
- Name:'MACD', Description:'平滑异同平均', IsMainIndex:false,
596
+ Name:'MACD', Description:'平滑异同平均', IsMainIndex:false,FloatPrecision:3,
597
597
  Args:[ { Name:'SHORT', Value:12}, { Name:'LONG', Value:26}, { Name:'MID', Value:9} ],
598
598
  Script: //脚本
599
599
  'DIF:EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);\n\
@@ -133880,6 +133880,7 @@ function JSDealChart(divElement)
133880
133880
  }
133881
133881
 
133882
133882
  if (option.MinuteChartTooltip && option.MinuteChartTooltip.Enable) chart.InitalMinuteChartTooltip(option.MinuteChartTooltip);
133883
+ if (option.FloatTooltip && option.FloatTooltip.Enable) chart.InitalFloatTooltip(option.FloatTooltip); //提示信息
133883
133884
 
133884
133885
  if (!option.Symbol)
133885
133886
  {
@@ -134023,6 +134024,7 @@ function JSDealChartContainer(uielement)
134023
134024
  this.LoadDataSplashTitle="数据加载中"; //下载数据提示信息
134024
134025
 
134025
134026
  this.TooltipMinuteChart; //分时图
134027
+ this.FloatTooltip; //提示浮框
134026
134028
 
134027
134029
  this.UIElement=uielement;
134028
134030
  this.LastPoint=new Point(); //鼠标位置
@@ -134036,6 +134038,9 @@ function JSDealChartContainer(uielement)
134036
134038
  {
134037
134039
  this.IsDestroy=true;
134038
134040
  this.StopAutoUpdate();
134041
+
134042
+ this.DestroyMinuteChartTooltip();
134043
+ this.DestroyFloatTooltip();
134039
134044
  }
134040
134045
 
134041
134046
  this.EnableFilterData=false; //是否启动筛选
@@ -134080,9 +134085,55 @@ function JSDealChartContainer(uielement)
134080
134085
  this.TooltipMinuteChart.Hide();
134081
134086
  }
134082
134087
 
134088
+ this.HideFloatTooltip=function()
134089
+ {
134090
+ if (!this.FloatTooltip) return;
134091
+
134092
+ this.FloatTooltip.Hide();
134093
+ }
134094
+
134095
+ this.DestroyFloatTooltip=function()
134096
+ {
134097
+ if (!this.FloatTooltip) return;
134098
+
134099
+ this.FloatTooltip.Destroy();
134100
+ this.FloatTooltip=null;
134101
+ }
134102
+
134103
+ this.InitalFloatTooltip=function(option)
134104
+ {
134105
+ if (this.FloatTooltip) return;
134106
+
134107
+ this.FloatTooltip=new JSFloatTooltip();
134108
+ this.FloatTooltip.Inital(this, option);
134109
+ this.FloatTooltip.Create();
134110
+ }
134111
+
134112
+ this.DrawFloatTooltip=function(point,toolTip)
134113
+ {
134114
+ if (!this.FloatTooltip) return;
134115
+
134116
+ this.UpdateFloatTooltip(point, toolTip)
134117
+ }
134118
+
134119
+ this.UpdateFloatTooltip=function(point, toolTip)
134120
+ {
134121
+ if (!this.FloatTooltip) return;
134122
+
134123
+ var sendData=
134124
+ {
134125
+ Tooltip:toolTip,
134126
+ Point:point,
134127
+ DataType:5,
134128
+ };
134129
+
134130
+ this.FloatTooltip.Update(sendData);
134131
+ }
134132
+
134083
134133
  this.HideAllTooltip=function()
134084
134134
  {
134085
134135
  this.HideMinuteChartTooltip();
134136
+ this.HideFloatTooltip();
134086
134137
  }
134087
134138
 
134088
134139
  //筛选数据
@@ -134194,6 +134245,8 @@ function JSDealChartContainer(uielement)
134194
134245
  this.UIElement.ondblclick=(e)=>{ this.UIOnDblClick(e); }
134195
134246
  this.UIElement.oncontextmenu=(e)=> { this.UIOnContextMenu(e); }
134196
134247
  this.UIElement.onmousemove=(e)=>{ this.UIOnMouseMove(e);}
134248
+ this.UIElement.onmouseout=(e)=>{ this.UIOnMounseOut(e); }
134249
+ this.UIElement.onmouseleave=(e)=>{ this.UIOnMouseleave(e); }
134197
134250
  }
134198
134251
 
134199
134252
  this.Draw=function()
@@ -134670,13 +134723,12 @@ function JSDealChartContainer(uielement)
134670
134723
  chartTooltipData={ Symbol:tooltipData.Stock.OriginalSymbol, Rect:tooltipData.Rect };
134671
134724
  }
134672
134725
  }
134726
+ */
134673
134727
  else
134674
134728
  {
134675
134729
  this.LastMouseStatus.TooltipStatus={ X:x, Y:y, Data:tooltipData, ClientX:e.clientX, ClientY:e.clientY };
134676
134730
  bDrawTooltip=true;
134677
134731
  }
134678
- */
134679
-
134680
134732
  }
134681
134733
  }
134682
134734
 
@@ -134684,6 +134736,17 @@ function JSDealChartContainer(uielement)
134684
134736
 
134685
134737
  if (bDraw) this.Draw();
134686
134738
 
134739
+ if (this.LastMouseStatus.TooltipStatus)
134740
+ {
134741
+ var xTooltip = e.clientX-this.UIElement.getBoundingClientRect().left;
134742
+ var yTooltip = e.clientY-this.UIElement.getBoundingClientRect().top;
134743
+ this.DrawFloatTooltip({X:xTooltip, Y:yTooltip, YMove:20/pixelTatio},this.LastMouseStatus.TooltipStatus.Data);
134744
+ }
134745
+ else
134746
+ {
134747
+ this.HideFloatTooltip();
134748
+ }
134749
+
134687
134750
  if (!bShowMinuteTooltip) this.HideMinuteChartTooltip();
134688
134751
  if (bShowMinuteTooltip) this.ShowMinuteChartTooltip(null, null, chartTooltipData);
134689
134752
  }
@@ -134703,6 +134766,16 @@ function JSDealChartContainer(uielement)
134703
134766
  e.preventDefault();
134704
134767
  }
134705
134768
 
134769
+ this.UIOnMounseOut=function(e)
134770
+ {
134771
+ this.HideAllTooltip();
134772
+ }
134773
+
134774
+ this.UIOnMouseleave=function(e)
134775
+ {
134776
+ this.HideAllTooltip();
134777
+ }
134778
+
134706
134779
  this.GotoNextPage=function()
134707
134780
  {
134708
134781
  if (!this.Data || !IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return false;
@@ -135514,7 +135587,14 @@ function ChartDealList()
135514
135587
  this.DrawItemText(text, textColor, textAlign, left, top, itemWidth);
135515
135588
  }
135516
135589
 
135517
- if (item.ChartTooltip && item.ChartTooltip.Enable && IFrameSplitOperator.IsNumber(item.ChartTooltip.Type)) //Type 20分时图 21K线图
135590
+
135591
+ if (drawInfo.Tooltip)
135592
+ {
135593
+ //Type:2=数据提示信息
135594
+ var tooltipData={ Rect:rtItem, Data:data, Index:dataIndex, Column:item, Type:drawInfo.Tooltip.Type, Data:drawInfo.Tooltip.Data };
135595
+ this.TooltipRect.push(tooltipData);
135596
+ }
135597
+ else if (item.ChartTooltip && item.ChartTooltip.Enable && IFrameSplitOperator.IsNumber(item.ChartTooltip.Type)) //Type 20分时图 21K线图
135518
135598
  {
135519
135599
  var tooltipData={ Rect:rtItem, Data:data, Index:dataIndex, Column:item, Type:item.ChartTooltip.Type };
135520
135600
  this.TooltipRect.push(tooltipData);
@@ -135587,6 +135667,15 @@ function ChartDealList()
135587
135667
  {
135588
135668
  drawInfo.Text=item;
135589
135669
  }
135670
+
135671
+ if (item && item.Tooltip && IFrameSplitOperator.IsNonEmptyArray(item.Tooltip.AryText))
135672
+ {
135673
+ drawInfo.Tooltip=
135674
+ {
135675
+ Type:2,
135676
+ Data:{ AryText:item.Tooltip.AryText }
135677
+ }
135678
+ }
135590
135679
  }
135591
135680
 
135592
135681
  this.GetUpDownColor=function(price, price2)
@@ -136349,6 +136438,7 @@ function JSReportChartContainer(uielement)
136349
136438
  //
136350
136439
  this.TooltipMinuteChart; //分时图
136351
136440
  this.TooltipKLineChart; //分时图
136441
+ this.FloatTooltip; //提示浮框
136352
136442
 
136353
136443
  //MouseOnStatus:{ RowIndex:行, ColumnIndex:列}
136354
136444
  this.LastMouseStatus={ MoveStatus:null, TooltipStatus:null, MouseOnStatus:null };
@@ -148941,7 +149031,7 @@ function ScrollBarBGChart()
148941
149031
 
148942
149032
 
148943
149033
 
148944
- var HQCHART_VERSION="1.1.14777";
149034
+ var HQCHART_VERSION="1.1.14783";
148945
149035
 
148946
149036
  function PrintHQChartVersion()
148947
149037
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.14777";
8
+ var HQCHART_VERSION="1.1.14783";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -637,7 +637,7 @@ JSIndexScript.prototype.MACD=function()
637
637
  {
638
638
  let data=
639
639
  {
640
- Name:'MACD', Description:'平滑异同平均', IsMainIndex:false,
640
+ Name:'MACD', Description:'平滑异同平均', IsMainIndex:false,FloatPrecision:3,
641
641
  Args:[ { Name:'SHORT', Value:12}, { Name:'LONG', Value:26}, { Name:'MID', Value:9} ],
642
642
  Script: //脚本
643
643
  'DIF:EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);\n\
@@ -133924,6 +133924,7 @@ function JSDealChart(divElement)
133924
133924
  }
133925
133925
 
133926
133926
  if (option.MinuteChartTooltip && option.MinuteChartTooltip.Enable) chart.InitalMinuteChartTooltip(option.MinuteChartTooltip);
133927
+ if (option.FloatTooltip && option.FloatTooltip.Enable) chart.InitalFloatTooltip(option.FloatTooltip); //提示信息
133927
133928
 
133928
133929
  if (!option.Symbol)
133929
133930
  {
@@ -134067,6 +134068,7 @@ function JSDealChartContainer(uielement)
134067
134068
  this.LoadDataSplashTitle="数据加载中"; //下载数据提示信息
134068
134069
 
134069
134070
  this.TooltipMinuteChart; //分时图
134071
+ this.FloatTooltip; //提示浮框
134070
134072
 
134071
134073
  this.UIElement=uielement;
134072
134074
  this.LastPoint=new Point(); //鼠标位置
@@ -134080,6 +134082,9 @@ function JSDealChartContainer(uielement)
134080
134082
  {
134081
134083
  this.IsDestroy=true;
134082
134084
  this.StopAutoUpdate();
134085
+
134086
+ this.DestroyMinuteChartTooltip();
134087
+ this.DestroyFloatTooltip();
134083
134088
  }
134084
134089
 
134085
134090
  this.EnableFilterData=false; //是否启动筛选
@@ -134124,9 +134129,55 @@ function JSDealChartContainer(uielement)
134124
134129
  this.TooltipMinuteChart.Hide();
134125
134130
  }
134126
134131
 
134132
+ this.HideFloatTooltip=function()
134133
+ {
134134
+ if (!this.FloatTooltip) return;
134135
+
134136
+ this.FloatTooltip.Hide();
134137
+ }
134138
+
134139
+ this.DestroyFloatTooltip=function()
134140
+ {
134141
+ if (!this.FloatTooltip) return;
134142
+
134143
+ this.FloatTooltip.Destroy();
134144
+ this.FloatTooltip=null;
134145
+ }
134146
+
134147
+ this.InitalFloatTooltip=function(option)
134148
+ {
134149
+ if (this.FloatTooltip) return;
134150
+
134151
+ this.FloatTooltip=new JSFloatTooltip();
134152
+ this.FloatTooltip.Inital(this, option);
134153
+ this.FloatTooltip.Create();
134154
+ }
134155
+
134156
+ this.DrawFloatTooltip=function(point,toolTip)
134157
+ {
134158
+ if (!this.FloatTooltip) return;
134159
+
134160
+ this.UpdateFloatTooltip(point, toolTip)
134161
+ }
134162
+
134163
+ this.UpdateFloatTooltip=function(point, toolTip)
134164
+ {
134165
+ if (!this.FloatTooltip) return;
134166
+
134167
+ var sendData=
134168
+ {
134169
+ Tooltip:toolTip,
134170
+ Point:point,
134171
+ DataType:5,
134172
+ };
134173
+
134174
+ this.FloatTooltip.Update(sendData);
134175
+ }
134176
+
134127
134177
  this.HideAllTooltip=function()
134128
134178
  {
134129
134179
  this.HideMinuteChartTooltip();
134180
+ this.HideFloatTooltip();
134130
134181
  }
134131
134182
 
134132
134183
  //筛选数据
@@ -134238,6 +134289,8 @@ function JSDealChartContainer(uielement)
134238
134289
  this.UIElement.ondblclick=(e)=>{ this.UIOnDblClick(e); }
134239
134290
  this.UIElement.oncontextmenu=(e)=> { this.UIOnContextMenu(e); }
134240
134291
  this.UIElement.onmousemove=(e)=>{ this.UIOnMouseMove(e);}
134292
+ this.UIElement.onmouseout=(e)=>{ this.UIOnMounseOut(e); }
134293
+ this.UIElement.onmouseleave=(e)=>{ this.UIOnMouseleave(e); }
134241
134294
  }
134242
134295
 
134243
134296
  this.Draw=function()
@@ -134714,13 +134767,12 @@ function JSDealChartContainer(uielement)
134714
134767
  chartTooltipData={ Symbol:tooltipData.Stock.OriginalSymbol, Rect:tooltipData.Rect };
134715
134768
  }
134716
134769
  }
134770
+ */
134717
134771
  else
134718
134772
  {
134719
134773
  this.LastMouseStatus.TooltipStatus={ X:x, Y:y, Data:tooltipData, ClientX:e.clientX, ClientY:e.clientY };
134720
134774
  bDrawTooltip=true;
134721
134775
  }
134722
- */
134723
-
134724
134776
  }
134725
134777
  }
134726
134778
 
@@ -134728,6 +134780,17 @@ function JSDealChartContainer(uielement)
134728
134780
 
134729
134781
  if (bDraw) this.Draw();
134730
134782
 
134783
+ if (this.LastMouseStatus.TooltipStatus)
134784
+ {
134785
+ var xTooltip = e.clientX-this.UIElement.getBoundingClientRect().left;
134786
+ var yTooltip = e.clientY-this.UIElement.getBoundingClientRect().top;
134787
+ this.DrawFloatTooltip({X:xTooltip, Y:yTooltip, YMove:20/pixelTatio},this.LastMouseStatus.TooltipStatus.Data);
134788
+ }
134789
+ else
134790
+ {
134791
+ this.HideFloatTooltip();
134792
+ }
134793
+
134731
134794
  if (!bShowMinuteTooltip) this.HideMinuteChartTooltip();
134732
134795
  if (bShowMinuteTooltip) this.ShowMinuteChartTooltip(null, null, chartTooltipData);
134733
134796
  }
@@ -134747,6 +134810,16 @@ function JSDealChartContainer(uielement)
134747
134810
  e.preventDefault();
134748
134811
  }
134749
134812
 
134813
+ this.UIOnMounseOut=function(e)
134814
+ {
134815
+ this.HideAllTooltip();
134816
+ }
134817
+
134818
+ this.UIOnMouseleave=function(e)
134819
+ {
134820
+ this.HideAllTooltip();
134821
+ }
134822
+
134750
134823
  this.GotoNextPage=function()
134751
134824
  {
134752
134825
  if (!this.Data || !IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return false;
@@ -135558,7 +135631,14 @@ function ChartDealList()
135558
135631
  this.DrawItemText(text, textColor, textAlign, left, top, itemWidth);
135559
135632
  }
135560
135633
 
135561
- if (item.ChartTooltip && item.ChartTooltip.Enable && IFrameSplitOperator.IsNumber(item.ChartTooltip.Type)) //Type 20分时图 21K线图
135634
+
135635
+ if (drawInfo.Tooltip)
135636
+ {
135637
+ //Type:2=数据提示信息
135638
+ var tooltipData={ Rect:rtItem, Data:data, Index:dataIndex, Column:item, Type:drawInfo.Tooltip.Type, Data:drawInfo.Tooltip.Data };
135639
+ this.TooltipRect.push(tooltipData);
135640
+ }
135641
+ else if (item.ChartTooltip && item.ChartTooltip.Enable && IFrameSplitOperator.IsNumber(item.ChartTooltip.Type)) //Type 20分时图 21K线图
135562
135642
  {
135563
135643
  var tooltipData={ Rect:rtItem, Data:data, Index:dataIndex, Column:item, Type:item.ChartTooltip.Type };
135564
135644
  this.TooltipRect.push(tooltipData);
@@ -135631,6 +135711,15 @@ function ChartDealList()
135631
135711
  {
135632
135712
  drawInfo.Text=item;
135633
135713
  }
135714
+
135715
+ if (item && item.Tooltip && IFrameSplitOperator.IsNonEmptyArray(item.Tooltip.AryText))
135716
+ {
135717
+ drawInfo.Tooltip=
135718
+ {
135719
+ Type:2,
135720
+ Data:{ AryText:item.Tooltip.AryText }
135721
+ }
135722
+ }
135634
135723
  }
135635
135724
 
135636
135725
  this.GetUpDownColor=function(price, price2)
@@ -136393,6 +136482,7 @@ function JSReportChartContainer(uielement)
136393
136482
  //
136394
136483
  this.TooltipMinuteChart; //分时图
136395
136484
  this.TooltipKLineChart; //分时图
136485
+ this.FloatTooltip; //提示浮框
136396
136486
 
136397
136487
  //MouseOnStatus:{ RowIndex:行, ColumnIndex:列}
136398
136488
  this.LastMouseStatus={ MoveStatus:null, TooltipStatus:null, MouseOnStatus:null };
@@ -156719,6 +156809,16 @@ function JSFloatTooltip()
156719
156809
  this.TReportIconTooltip(data);
156720
156810
  }
156721
156811
  }
156812
+ else if (data.DataType==5) //成交笔数
156813
+ {
156814
+ var tooltipData=data.Tooltip;
156815
+ if (!tooltipData) return;
156816
+
156817
+ if (tooltipData.Type==2) //提示信息
156818
+ {
156819
+ this.DealItemTooltip(data);
156820
+ }
156821
+ }
156722
156822
  }
156723
156823
 
156724
156824
  this.UpdateRealtimeHQTooltip=function(data)
@@ -157010,6 +157110,18 @@ function JSFloatTooltip()
157010
157110
 
157011
157111
  this.ShowTooltip(data);
157012
157112
  }
157113
+
157114
+ this.DealItemTooltip=function(data)
157115
+ {
157116
+ var tooltipData=data.Tooltip;
157117
+ if (!tooltipData.Data || !IFrameSplitOperator.IsNonEmptyArray(tooltipData.Data.AryText)) return;
157118
+
157119
+ this.AryText=tooltipData.Data.AryText;
157120
+
157121
+ this.UpdateTableDOM();
157122
+
157123
+ this.ShowTooltip(data);
157124
+ }
157013
157125
 
157014
157126
  this.UpdateTableDOM=function()
157015
157127
  {
@@ -159888,7 +160000,7 @@ function HQChartScriptWorker()
159888
160000
 
159889
160001
 
159890
160002
 
159891
- var HQCHART_VERSION="1.1.14777";
160003
+ var HQCHART_VERSION="1.1.14783";
159892
160004
 
159893
160005
  function PrintHQChartVersion()
159894
160006
  {