hqchart 1.1.14775 → 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()//关闭停止更新
@@ -12916,9 +12918,10 @@ Explain:'成交明细',Request:{Data:{symbol:self.Symbol,tradeDate:self.TradeDat
12916
12918
  this.Draw();};this.SetLastPageDataOffset=function(){var chart=this.ChartPaint[0];var dataCount=0;if(IFrameSplitOperator.IsNonEmptyArray(this.SourceData.Data))dataCount=this.SourceData.Data.length;var pageSize=chart.GetPageSize(true);var offset=dataCount-pageSize;if(offset<0)offset=0;this.Data.DataOffset=offset;};//增量数据下载
12917
12919
  this.RequestDealUpdateData=function(){var self=this;if(this.NetworkFilter){var obj={Name:'JSDealChartContainer::RequestDealUpdateData',//类名::函数名
12918
12920
  Explain:'增量成交明细',Request:{Data:{symbol:self.Symbol}},Self:this,PreventDefault:false};if(this.Data&&IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)){var lastItem=this.Data.Data[this.Data.Data.length-1];//最后一条数据
12919
- obj.LastItem=lastItem;}this.NetworkFilter(obj,function(data){self.RecvDealUpdateData(data);self.AutoUpdate();});if(obj.PreventDefault==true)return;}};this.RecvDealUpdateData=function(data){var aryDeal=JSDealChartContainer.JsonDataToDealData(data);if(!IFrameSplitOperator.IsNonEmptyArray(aryDeal))return;if(data.UpdateType===1)//全量更新
12920
- {this.SourceData.Data=aryDeal;this.Data.Data=this.FilterData(this.CloneArray(aryDeal));if(this.Data.DataOffset>=this.Data.Data.length)this.Data.DataOffset=0;if(this.IsShowLastPage)this.SetLastPageDataOffset();//显示最后一屏
12921
- }else{this.AddDealData(this.SourceData,aryDeal);this.AddDealData(this.Data,this.FilterData(aryDeal));}this.Draw();};this.AddDealData=function(dealData,aryNewData){if(!dealData.Data)//原来是空的
12921
+ obj.LastItem=lastItem;}this.NetworkFilter(obj,function(data){self.RecvDealUpdateData(data);self.AutoUpdate();});if(obj.PreventDefault==true)return;}};this.RecvDealUpdateData=function(data){var aryDeal=JSDealChartContainer.JsonDataToDealData(data);if(!IFrameSplitOperator.IsNonEmptyArray(aryDeal))return;var chart=this.ChartPaint[0];if(!chart)return;if(data.UpdateType===1)//全量更新
12922
+ {this.SourceData.Data=aryDeal;var oldCount=0,newCount=0;if(IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))oldCount=this.Data.Data.length;this.Data.Data=this.FilterData(this.CloneArray(aryDeal));if(IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))newCount=this.Data.Data.length;if(oldCount==0){if(this.IsShowLastPage)this.SetLastPageDataOffset();//显示最后一屏
12923
+ }else if(newCount>oldCount)//增长 偏移增加
12924
+ {var pageSize=chart.GetPageSize();var count=newCount-oldCount;for(var i=0;i<count;++i){if(this.Data.DataOffset+pageSize<this.Data.Data.length)++this.Data.DataOffset;}}else{if(this.Data.DataOffset>=this.Data.Data.length)this.Data.DataOffset=0;}}else{this.AddDealData(this.SourceData,aryDeal);this.AddDealData(this.Data,this.FilterData(aryDeal));}if(data.IsShowLastPage===true)this.SetLastPageDataOffset();this.Draw();};this.AddDealData=function(dealData,aryNewData){if(!dealData.Data)//原来是空的
12922
12925
  {dealData.Data=aryNewData;}else{var pageSize=0;var chart=this.ChartPaint[0];if(chart)pageSize=chart.GetPageSize();for(var i=0;i<aryNewData.length;++i){dealData.Data.push(aryNewData[i]);if(dealData.DataOffset+pageSize<dealData.Data.length)++dealData.DataOffset;}}};this.AutoUpdate=function(waitTime)//waitTime 更新时间
12923
12926
  {this.CancelAutoUpdate();if(!this.IsAutoUpdate)return;if(!this.Symbol)return;var self=this;var marketStatus=MARKET_SUFFIX_NAME.GetMarketStatus(this.Symbol);if(marketStatus==0||marketStatus==3)return;//闭市,盘后
12924
12927
  var frequency=this.AutoUpdateFrequency;if(marketStatus==1)//盘前
@@ -12945,12 +12948,7 @@ if(tooltipData){if(tooltipData.Type==20){if(tooltipData.Data&&tooltipData.Data.S
12945
12948
  chartTooltipData={ Symbol:tooltipData.Stock.OriginalSymbol, Rect:tooltipData.Rect };
12946
12949
  }
12947
12950
  }
12948
- else
12949
- {
12950
- this.LastMouseStatus.TooltipStatus={ X:x, Y:y, Data:tooltipData, ClientX:e.clientX, ClientY:e.clientY };
12951
- bDrawTooltip=true;
12952
- }
12953
- */}}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)//最后一页不够一屏调整到满屏
12954
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;//显示最后一屏
12955
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
12956
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];//股票代码
@@ -13015,10 +13013,11 @@ this.UpdateCacheData=function(){this.RectClient.Left=this.ChartBorder.GetLeft();
13015
13013
  {if(recalculate)this.CalculateSize();var size=this.TableCount*this.RowCount;return size;};this.CalculateSize=function()//计算大小
13016
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;//只少显示一个
13017
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};//输出
13018
- 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线图
13019
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://原始数据
13020
13019
  text=value.toFixed(column.FloatPrecision);break;case 2://千分位分割
13021
- 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] };
13022
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] };
13023
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)//左边
13024
13023
  {this.Canvas.fillRect(center,top,-barWidth,height);}else//右边
@@ -13115,6 +13114,7 @@ this.JSPopMenu;//内置菜单
13115
13114
  this.IsShowRightMenu=true;//
13116
13115
  this.TooltipMinuteChart;//分时图
13117
13116
  this.TooltipKLineChart;//分时图
13117
+ this.FloatTooltip;//提示浮框
13118
13118
  //MouseOnStatus:{ RowIndex:行, ColumnIndex:列}
13119
13119
  this.LastMouseStatus={MoveStatus:null,TooltipStatus:null,MouseOnStatus:null};this.ChartDestroy=function()//销毁
13120
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()//初始化弹出窗口
@@ -14796,7 +14796,9 @@ this.Update=function(data){if(!this.DivDialog)return;this.LanguageID=this.HQChar
14796
14796
  {var tooltipData=data.Tooltip;if(!tooltipData)return;if(tooltipData.Type==2)//报价列表表头图标提示信息
14797
14797
  {this.ReportHeaderIconTooltip(data);}else if(tooltipData.Type==1)//单元格截断内容
14798
14798
  {this.ReportCellTruncateTooltip(data);}}else if(data.DataType==4)//T型报价
14799
- {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)//数据变动的才更新
14800
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线提示信息
14801
14803
  this.UpdateKLineToolitp=function(data){var tooltipData=data.Tooltip;var symbol=data.Symbol;var name=data.Name;var bOverlay=false;//是否是叠加指标
14802
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)//数据变动的才更新
@@ -14808,7 +14810,7 @@ this.UpdateMinuteInfoTooltip=function(data){var tooltipData=data.Tooltip;if(!too
14808
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 信息
14809
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);};//表头图标
14810
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);};//表格单元格截断内容
14811
- 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)//合并单元格
14812
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);//价格小数位数
14813
14815
  var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);//日期
14814
14816
  var dateItem=this.ForamtDate(data.Date,"YYYY/MM/DD/W",'FloatTooltip-Date');//时间
@@ -14974,7 +14976,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
14974
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);};}/********************************************************************************
14975
14977
  * 版本信息输出
14976
14978
  *
14977
- */var HQCHART_VERSION="1.1.14774";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();//把给外界调用的方法暴露出来
14978
14980
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
14979
14981
  // BaseIndex:BaseIndex,
14980
14982
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.14775",
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()
@@ -589,12 +642,35 @@ function JSDealChartContainer(uielement)
589
642
  var aryDeal=JSDealChartContainer.JsonDataToDealData(data);
590
643
  if (!IFrameSplitOperator.IsNonEmptyArray(aryDeal)) return;
591
644
 
645
+ var chart=this.ChartPaint[0];
646
+ if (!chart) return;
647
+
592
648
  if (data.UpdateType===1) //全量更新
593
649
  {
594
650
  this.SourceData.Data=aryDeal;
651
+ var oldCount=0, newCount=0;
652
+ if (IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) oldCount=this.Data.Data.length;
595
653
  this.Data.Data=this.FilterData(this.CloneArray(aryDeal));
596
- if (this.Data.DataOffset>= this.Data.Data.length) this.Data.DataOffset=0;
597
- if (this.IsShowLastPage) this.SetLastPageDataOffset(); //显示最后一屏
654
+ if (IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) newCount=this.Data.Data.length;
655
+
656
+ if (oldCount==0)
657
+ {
658
+ if (this.IsShowLastPage) this.SetLastPageDataOffset(); //显示最后一屏
659
+ }
660
+ else if (newCount>oldCount) //增长 偏移增加
661
+ {
662
+ var pageSize=chart.GetPageSize();
663
+ var count=newCount-oldCount;
664
+ for(var i=0;i<count;++i)
665
+ {
666
+ if (this.Data.DataOffset+pageSize<this.Data.Data.length)
667
+ ++this.Data.DataOffset;
668
+ }
669
+ }
670
+ else
671
+ {
672
+ if (this.Data.DataOffset>= this.Data.Data.length) this.Data.DataOffset=0;
673
+ }
598
674
  }
599
675
  else
600
676
  {
@@ -602,6 +678,8 @@ function JSDealChartContainer(uielement)
602
678
  this.AddDealData(this.Data,this.FilterData(aryDeal));
603
679
  }
604
680
 
681
+ if (data.IsShowLastPage===true) this.SetLastPageDataOffset();
682
+
605
683
  this.Draw();
606
684
  }
607
685
 
@@ -837,13 +915,12 @@ function JSDealChartContainer(uielement)
837
915
  chartTooltipData={ Symbol:tooltipData.Stock.OriginalSymbol, Rect:tooltipData.Rect };
838
916
  }
839
917
  }
918
+ */
840
919
  else
841
920
  {
842
921
  this.LastMouseStatus.TooltipStatus={ X:x, Y:y, Data:tooltipData, ClientX:e.clientX, ClientY:e.clientY };
843
922
  bDrawTooltip=true;
844
923
  }
845
- */
846
-
847
924
  }
848
925
  }
849
926
 
@@ -851,6 +928,17 @@ function JSDealChartContainer(uielement)
851
928
 
852
929
  if (bDraw) this.Draw();
853
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
+
854
942
  if (!bShowMinuteTooltip) this.HideMinuteChartTooltip();
855
943
  if (bShowMinuteTooltip) this.ShowMinuteChartTooltip(null, null, chartTooltipData);
856
944
  }
@@ -870,6 +958,16 @@ function JSDealChartContainer(uielement)
870
958
  e.preventDefault();
871
959
  }
872
960
 
961
+ this.UIOnMounseOut=function(e)
962
+ {
963
+ this.HideAllTooltip();
964
+ }
965
+
966
+ this.UIOnMouseleave=function(e)
967
+ {
968
+ this.HideAllTooltip();
969
+ }
970
+
873
971
  this.GotoNextPage=function()
874
972
  {
875
973
  if (!this.Data || !IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return false;
@@ -1681,7 +1779,14 @@ function ChartDealList()
1681
1779
  this.DrawItemText(text, textColor, textAlign, left, top, itemWidth);
1682
1780
  }
1683
1781
 
1684
- 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线图
1685
1790
  {
1686
1791
  var tooltipData={ Rect:rtItem, Data:data, Index:dataIndex, Column:item, Type:item.ChartTooltip.Type };
1687
1792
  this.TooltipRect.push(tooltipData);
@@ -1754,6 +1859,15 @@ function ChartDealList()
1754
1859
  {
1755
1860
  drawInfo.Text=item;
1756
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
+ }
1757
1871
  }
1758
1872
 
1759
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()
@@ -134397,12 +134450,35 @@ function JSDealChartContainer(uielement)
134397
134450
  var aryDeal=JSDealChartContainer.JsonDataToDealData(data);
134398
134451
  if (!IFrameSplitOperator.IsNonEmptyArray(aryDeal)) return;
134399
134452
 
134453
+ var chart=this.ChartPaint[0];
134454
+ if (!chart) return;
134455
+
134400
134456
  if (data.UpdateType===1) //全量更新
134401
134457
  {
134402
134458
  this.SourceData.Data=aryDeal;
134459
+ var oldCount=0, newCount=0;
134460
+ if (IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) oldCount=this.Data.Data.length;
134403
134461
  this.Data.Data=this.FilterData(this.CloneArray(aryDeal));
134404
- if (this.Data.DataOffset>= this.Data.Data.length) this.Data.DataOffset=0;
134405
- if (this.IsShowLastPage) this.SetLastPageDataOffset(); //显示最后一屏
134462
+ if (IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) newCount=this.Data.Data.length;
134463
+
134464
+ if (oldCount==0)
134465
+ {
134466
+ if (this.IsShowLastPage) this.SetLastPageDataOffset(); //显示最后一屏
134467
+ }
134468
+ else if (newCount>oldCount) //增长 偏移增加
134469
+ {
134470
+ var pageSize=chart.GetPageSize();
134471
+ var count=newCount-oldCount;
134472
+ for(var i=0;i<count;++i)
134473
+ {
134474
+ if (this.Data.DataOffset+pageSize<this.Data.Data.length)
134475
+ ++this.Data.DataOffset;
134476
+ }
134477
+ }
134478
+ else
134479
+ {
134480
+ if (this.Data.DataOffset>= this.Data.Data.length) this.Data.DataOffset=0;
134481
+ }
134406
134482
  }
134407
134483
  else
134408
134484
  {
@@ -134410,6 +134486,8 @@ function JSDealChartContainer(uielement)
134410
134486
  this.AddDealData(this.Data,this.FilterData(aryDeal));
134411
134487
  }
134412
134488
 
134489
+ if (data.IsShowLastPage===true) this.SetLastPageDataOffset();
134490
+
134413
134491
  this.Draw();
134414
134492
  }
134415
134493
 
@@ -134645,13 +134723,12 @@ function JSDealChartContainer(uielement)
134645
134723
  chartTooltipData={ Symbol:tooltipData.Stock.OriginalSymbol, Rect:tooltipData.Rect };
134646
134724
  }
134647
134725
  }
134726
+ */
134648
134727
  else
134649
134728
  {
134650
134729
  this.LastMouseStatus.TooltipStatus={ X:x, Y:y, Data:tooltipData, ClientX:e.clientX, ClientY:e.clientY };
134651
134730
  bDrawTooltip=true;
134652
134731
  }
134653
- */
134654
-
134655
134732
  }
134656
134733
  }
134657
134734
 
@@ -134659,6 +134736,17 @@ function JSDealChartContainer(uielement)
134659
134736
 
134660
134737
  if (bDraw) this.Draw();
134661
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
+
134662
134750
  if (!bShowMinuteTooltip) this.HideMinuteChartTooltip();
134663
134751
  if (bShowMinuteTooltip) this.ShowMinuteChartTooltip(null, null, chartTooltipData);
134664
134752
  }
@@ -134678,6 +134766,16 @@ function JSDealChartContainer(uielement)
134678
134766
  e.preventDefault();
134679
134767
  }
134680
134768
 
134769
+ this.UIOnMounseOut=function(e)
134770
+ {
134771
+ this.HideAllTooltip();
134772
+ }
134773
+
134774
+ this.UIOnMouseleave=function(e)
134775
+ {
134776
+ this.HideAllTooltip();
134777
+ }
134778
+
134681
134779
  this.GotoNextPage=function()
134682
134780
  {
134683
134781
  if (!this.Data || !IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return false;
@@ -135489,7 +135587,14 @@ function ChartDealList()
135489
135587
  this.DrawItemText(text, textColor, textAlign, left, top, itemWidth);
135490
135588
  }
135491
135589
 
135492
- 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线图
135493
135598
  {
135494
135599
  var tooltipData={ Rect:rtItem, Data:data, Index:dataIndex, Column:item, Type:item.ChartTooltip.Type };
135495
135600
  this.TooltipRect.push(tooltipData);
@@ -135562,6 +135667,15 @@ function ChartDealList()
135562
135667
  {
135563
135668
  drawInfo.Text=item;
135564
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
+ }
135565
135679
  }
135566
135680
 
135567
135681
  this.GetUpDownColor=function(price, price2)
@@ -136324,6 +136438,7 @@ function JSReportChartContainer(uielement)
136324
136438
  //
136325
136439
  this.TooltipMinuteChart; //分时图
136326
136440
  this.TooltipKLineChart; //分时图
136441
+ this.FloatTooltip; //提示浮框
136327
136442
 
136328
136443
  //MouseOnStatus:{ RowIndex:行, ColumnIndex:列}
136329
136444
  this.LastMouseStatus={ MoveStatus:null, TooltipStatus:null, MouseOnStatus:null };
@@ -148916,7 +149031,7 @@ function ScrollBarBGChart()
148916
149031
 
148917
149032
 
148918
149033
 
148919
- var HQCHART_VERSION="1.1.14774";
149034
+ var HQCHART_VERSION="1.1.14783";
148920
149035
 
148921
149036
  function PrintHQChartVersion()
148922
149037
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.14774";
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()
@@ -134441,12 +134494,35 @@ function JSDealChartContainer(uielement)
134441
134494
  var aryDeal=JSDealChartContainer.JsonDataToDealData(data);
134442
134495
  if (!IFrameSplitOperator.IsNonEmptyArray(aryDeal)) return;
134443
134496
 
134497
+ var chart=this.ChartPaint[0];
134498
+ if (!chart) return;
134499
+
134444
134500
  if (data.UpdateType===1) //全量更新
134445
134501
  {
134446
134502
  this.SourceData.Data=aryDeal;
134503
+ var oldCount=0, newCount=0;
134504
+ if (IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) oldCount=this.Data.Data.length;
134447
134505
  this.Data.Data=this.FilterData(this.CloneArray(aryDeal));
134448
- if (this.Data.DataOffset>= this.Data.Data.length) this.Data.DataOffset=0;
134449
- if (this.IsShowLastPage) this.SetLastPageDataOffset(); //显示最后一屏
134506
+ if (IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) newCount=this.Data.Data.length;
134507
+
134508
+ if (oldCount==0)
134509
+ {
134510
+ if (this.IsShowLastPage) this.SetLastPageDataOffset(); //显示最后一屏
134511
+ }
134512
+ else if (newCount>oldCount) //增长 偏移增加
134513
+ {
134514
+ var pageSize=chart.GetPageSize();
134515
+ var count=newCount-oldCount;
134516
+ for(var i=0;i<count;++i)
134517
+ {
134518
+ if (this.Data.DataOffset+pageSize<this.Data.Data.length)
134519
+ ++this.Data.DataOffset;
134520
+ }
134521
+ }
134522
+ else
134523
+ {
134524
+ if (this.Data.DataOffset>= this.Data.Data.length) this.Data.DataOffset=0;
134525
+ }
134450
134526
  }
134451
134527
  else
134452
134528
  {
@@ -134454,6 +134530,8 @@ function JSDealChartContainer(uielement)
134454
134530
  this.AddDealData(this.Data,this.FilterData(aryDeal));
134455
134531
  }
134456
134532
 
134533
+ if (data.IsShowLastPage===true) this.SetLastPageDataOffset();
134534
+
134457
134535
  this.Draw();
134458
134536
  }
134459
134537
 
@@ -134689,13 +134767,12 @@ function JSDealChartContainer(uielement)
134689
134767
  chartTooltipData={ Symbol:tooltipData.Stock.OriginalSymbol, Rect:tooltipData.Rect };
134690
134768
  }
134691
134769
  }
134770
+ */
134692
134771
  else
134693
134772
  {
134694
134773
  this.LastMouseStatus.TooltipStatus={ X:x, Y:y, Data:tooltipData, ClientX:e.clientX, ClientY:e.clientY };
134695
134774
  bDrawTooltip=true;
134696
134775
  }
134697
- */
134698
-
134699
134776
  }
134700
134777
  }
134701
134778
 
@@ -134703,6 +134780,17 @@ function JSDealChartContainer(uielement)
134703
134780
 
134704
134781
  if (bDraw) this.Draw();
134705
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
+
134706
134794
  if (!bShowMinuteTooltip) this.HideMinuteChartTooltip();
134707
134795
  if (bShowMinuteTooltip) this.ShowMinuteChartTooltip(null, null, chartTooltipData);
134708
134796
  }
@@ -134722,6 +134810,16 @@ function JSDealChartContainer(uielement)
134722
134810
  e.preventDefault();
134723
134811
  }
134724
134812
 
134813
+ this.UIOnMounseOut=function(e)
134814
+ {
134815
+ this.HideAllTooltip();
134816
+ }
134817
+
134818
+ this.UIOnMouseleave=function(e)
134819
+ {
134820
+ this.HideAllTooltip();
134821
+ }
134822
+
134725
134823
  this.GotoNextPage=function()
134726
134824
  {
134727
134825
  if (!this.Data || !IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return false;
@@ -135533,7 +135631,14 @@ function ChartDealList()
135533
135631
  this.DrawItemText(text, textColor, textAlign, left, top, itemWidth);
135534
135632
  }
135535
135633
 
135536
- 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线图
135537
135642
  {
135538
135643
  var tooltipData={ Rect:rtItem, Data:data, Index:dataIndex, Column:item, Type:item.ChartTooltip.Type };
135539
135644
  this.TooltipRect.push(tooltipData);
@@ -135606,6 +135711,15 @@ function ChartDealList()
135606
135711
  {
135607
135712
  drawInfo.Text=item;
135608
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
+ }
135609
135723
  }
135610
135724
 
135611
135725
  this.GetUpDownColor=function(price, price2)
@@ -136368,6 +136482,7 @@ function JSReportChartContainer(uielement)
136368
136482
  //
136369
136483
  this.TooltipMinuteChart; //分时图
136370
136484
  this.TooltipKLineChart; //分时图
136485
+ this.FloatTooltip; //提示浮框
136371
136486
 
136372
136487
  //MouseOnStatus:{ RowIndex:行, ColumnIndex:列}
136373
136488
  this.LastMouseStatus={ MoveStatus:null, TooltipStatus:null, MouseOnStatus:null };
@@ -156694,6 +156809,16 @@ function JSFloatTooltip()
156694
156809
  this.TReportIconTooltip(data);
156695
156810
  }
156696
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
+ }
156697
156822
  }
156698
156823
 
156699
156824
  this.UpdateRealtimeHQTooltip=function(data)
@@ -156985,6 +157110,18 @@ function JSFloatTooltip()
156985
157110
 
156986
157111
  this.ShowTooltip(data);
156987
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
+ }
156988
157125
 
156989
157126
  this.UpdateTableDOM=function()
156990
157127
  {
@@ -159863,7 +160000,7 @@ function HQChartScriptWorker()
159863
160000
 
159864
160001
 
159865
160002
 
159866
- var HQCHART_VERSION="1.1.14774";
160003
+ var HQCHART_VERSION="1.1.14783";
159867
160004
 
159868
160005
  function PrintHQChartVersion()
159869
160006
  {