hqchart 1.1.14750 → 1.1.14754

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.
@@ -12850,7 +12850,7 @@ this.CanvasElement=document.createElement("canvas");this.CanvasElement.className
12850
12850
  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();//获取设备的分辨率
12851
12851
  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中保存一份
12852
12852
  //注册事件
12853
- if(option.EventCallback){for(var i=0;i<option.EventCallback.length;++i){var item=option.EventCallback[i];chart.AddEventCallback(item);}}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);//是否自动更新
12853
+ 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);//是否自动更新
12854
12854
  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;//注册事件
12855
12855
  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();//获取设备的分辨率
12856
12856
  chart.Frame.ChartBorder.Left*=pixelTatio;chart.Frame.ChartBorder.Right*=pixelTatio;chart.Frame.ChartBorder.Top*=pixelTatio;chart.Frame.ChartBorder.Bottom*=pixelTatio;};/////////////////////////////////////////////////////////////////////////////
@@ -12872,11 +12872,14 @@ this.IsShowLastPage=true;//显示最后一页
12872
12872
  this.mapEvent=new _map2.default();//通知外部调用 key:JSCHART_EVENT_ID value:{Callback:回调,}
12873
12873
  this.AutoUpdateTimer=null;this.AutoUpdateFrequency=15000;//更新频率
12874
12874
  this.LoadDataSplashTitle="数据加载中";//下载数据提示信息
12875
+ this.TooltipMinuteChart;//分时图
12875
12876
  this.UIElement=uielement;this.LastPoint=new Point();//鼠标位置
12876
- this.IsDestroy=false;//是否已经销毁了
12877
+ //MouseOnStatus:{ RowIndex:行, ColumnIndex:列}
12878
+ this.LastMouseStatus={MoveStatus:null,TooltipStatus:null,MouseOnStatus:null};this.IsDestroy=false;//是否已经销毁了
12877
12879
  this.ChartDestroy=function()//销毁
12878
12880
  {this.IsDestroy=true;this.StopAutoUpdate();};this.EnableFilterData=false;//是否启动筛选
12879
- //筛选数据
12881
+ 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 }
12882
+ 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();};//筛选数据
12880
12883
  this.FilterData=function(aryDeal){if(!this.EnableFilterData)return aryDeal;//过滤由外部处理
12881
12884
  var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_FILTER_DEAL_DATA);if(!event||!event.Callback)return aryDeal;var sendData={Data:aryDeal,Result:[]};//{ Data:原始数据, Result:[] 过滤以后的数据 }
12882
12885
  event.Callback(event,sendData,this);return sendData.Result;};this.EnableFilter=function(bEnable,option)//启动|关闭筛选
@@ -12891,7 +12894,7 @@ if(IFrameSplitOperator.IsBool(option.IsShowLastPage))this.IsShowLastPage=option.
12891
12894
  if(IFrameSplitOperator.IsNumber(option.BorderLine))this.Frame.BorderLine=option.BorderLine;//边框
12892
12895
  }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);//键盘消息
12893
12896
  if(bRegisterWheel)this.UIElement.addEventListener("wheel",function(e){_this51.OnWheel(e);},true);//上下滚动消息
12894
- 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.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();//获取设备的分辨率
12897
+ 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();//获取设备的分辨率
12895
12898
  this.Canvas.lineWidth=pixelTatio;//手机端需要根据分辨率比调整线段宽度
12896
12899
  if(this.ChartSplashPaint&&this.ChartSplashPaint.IsEnableSplash){this.Frame.Draw({IsEnableSplash:this.ChartSplashPaint.IsEnableSplash});this.ChartSplashPaint.Draw();return;}this.Frame.Draw();this.Frame.DrawLogo();//框架内图形
12897
12900
  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()//关闭停止更新
@@ -12917,17 +12920,33 @@ this.AddEventCallback=function(object){if(!object||!object.event||!object.callba
12917
12920
  {if(!this.mapEvent.has(id))return null;var item=this.mapEvent.get(id);return item;};this.OnSize=function(){if(!this.Frame)return;this.SetSizeChange(true);var chart=this.ChartPaint[0];if(chart&&this.Data&&this.Data.DataOffset>0&&IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)){var pageSize=chart.GetPageSize(true);if(pageSize+this.Data.DataOffset>=this.Data.Data.length)//当前屏不能显示满,调整
12918
12921
  this.GotoLastPage();}this.Draw();};this.SetSizeChange=function(bChanged){var chart=this.ChartPaint[0];if(chart)chart.SizeChange=bChanged;};this.OnWheel=function(e)//滚轴
12919
12922
  {JSConsole.Chart.Log('[JSDealChartContainer::OnWheel]',e);if(this.ChartSplashPaint&&this.ChartSplashPaint.IsEnableSplash==true)return;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return;var x=e.clientX-this.UIElement.getBoundingClientRect().left;var y=e.clientY-this.UIElement.getBoundingClientRect().top;var isInClient=false;this.Canvas.beginPath();this.Canvas.rect(this.Frame.ChartBorder.GetLeft(),this.Frame.ChartBorder.GetTop(),this.Frame.ChartBorder.GetWidth(),this.Frame.ChartBorder.GetHeight());isInClient=this.Canvas.isPointInPath(x,y);if(!isInClient)return;var chart=this.ChartPaint[0];if(!chart)return;var wheelValue=e.wheelDelta;if(!IFrameSplitOperator.IsObjectExist(e.wheelDelta))wheelValue=e.deltaY*-0.01;if(wheelValue<0)//下一页
12920
- {if(this.GotoNextPage())this.Draw();}else if(wheelValue>0)//上一页
12921
- {if(this.GotoPreviousPage())this.Draw();}if(e.preventDefault)e.preventDefault();else e.returnValue=false;};this.OnKeyDown=function(e){if(this.ChartSplashPaint&&this.ChartSplashPaint.IsEnableSplash==true)return;var keyID=e.keyCode?e.keyCode:e.which;switch(keyID){case 38://up
12922
- if(this.GotoPreviousPage())this.Draw();break;case 40://down
12923
- if(this.GotoNextPage())this.Draw();break;}//不让滚动条滚动
12924
- if(e.preventDefault)e.preventDefault();else e.returnValue=false;};this.UIOnMouseDown=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)return;var clickData=chart.OnMouseDown(x,y,e);if(!clickData)return;if(clickData.Type==1&&(e.button==0||e.button==2))//点击行
12925
- {if(clickData.Redraw==true)this.Draw();}};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)//最后一页不够一屏调整到满屏
12923
+ {this.HideAllTooltip();if(this.GotoNextPage())this.Draw();}else if(wheelValue>0)//上一页
12924
+ {this.HideAllTooltip();if(this.GotoPreviousPage())this.Draw();}if(e.preventDefault)e.preventDefault();else e.returnValue=false;};this.OnKeyDown=function(e){if(this.ChartSplashPaint&&this.ChartSplashPaint.IsEnableSplash==true)return;var keyID=e.keyCode?e.keyCode:e.which;switch(keyID){case 38://up
12925
+ this.HideAllTooltip();if(this.GotoPreviousPage())this.Draw();break;case 40://down
12926
+ this.HideAllTooltip();if(this.GotoNextPage())this.Draw();break;}//不让滚动条滚动
12927
+ if(e.preventDefault)e.preventDefault();else e.returnValue=false;};this.GetReportChart=function(){var chart=this.ChartPaint[0];return chart;};this.UIOnMouseDown=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)return;var clickData=chart.OnMouseDown(x,y,e);if(!clickData)return;if(clickData.Type==1&&(e.button==0||e.button==2))//点击行
12928
+ {if(clickData.Redraw==true)this.Draw();}};this.UIOnMouseMove=function(e){var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;var oldMouseOnStatus=this.LastMouseStatus.MouseOnStatus;this.LastMouseStatus.OnMouseMove=null;var bDrawTooltip=false;if(this.LastMouseStatus.TooltipStatus)bDrawTooltip=true;this.LastMouseStatus.TooltipStatus=null;var bShowMinuteTooltip=false;var chartTooltipData=null;this.LastMouseStatus.OnMouseMove={X:x,Y:y};var mouseStatus={Cursor:"default",Name:"Default"};;//鼠标状态
12929
+ var report=this.GetReportChart();var bDraw=false;if(report){var tooltipData=report.GetTooltipData(x,y);//单元格提示信息
12930
+ if(tooltipData){if(tooltipData.Type==20){if(tooltipData.Data&&tooltipData.Data.Symbol){bShowMinuteTooltip=true;chartTooltipData={Symbol:tooltipData.Data.Symbol,Rect:tooltipData.Rect};}}/*
12931
+ else if (tooltipData.Type==21)
12932
+ {
12933
+ if (tooltipData.Stock && tooltipData.Stock.Symbol)
12934
+ {
12935
+ bShowKLineTooltip=true;
12936
+ chartTooltipData={ Symbol:tooltipData.Stock.OriginalSymbol, Rect:tooltipData.Rect };
12937
+ }
12938
+ }
12939
+ else
12940
+ {
12941
+ this.LastMouseStatus.TooltipStatus={ X:x, Y:y, Data:tooltipData, ClientX:e.clientX, ClientY:e.clientY };
12942
+ bDrawTooltip=true;
12943
+ }
12944
+ */}}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)//最后一页不够一屏调整到满屏
12926
12945
  {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;//显示最后一屏
12927
- 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
12946
+ 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
12928
12947
  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];//股票代码
12929
12948
  if(item[12])dealItem.Name=item[12];//股票名称
12930
- //10个数值型 101-199
12949
+ if(item[100])dealItem.Guid=item[100];//10个数值型 101-199
12931
12950
  if(IFrameSplitOperator.IsNumber(item[101]))dealItem.ReserveNumber1=item[101];if(IFrameSplitOperator.IsNumber(item[102]))dealItem.ReserveNumber2=item[102];if(IFrameSplitOperator.IsNumber(item[103]))dealItem.ReserveNumber3=item[103];if(IFrameSplitOperator.IsNumber(item[104]))dealItem.ReserveNumber4=item[104];if(IFrameSplitOperator.IsNumber(item[105]))dealItem.ReserveNumber5=item[105];if(IFrameSplitOperator.IsNumber(item[106]))dealItem.ReserveNumber6=item[106];if(IFrameSplitOperator.IsNumber(item[107]))dealItem.ReserveNumber7=item[107];if(IFrameSplitOperator.IsNumber(item[108]))dealItem.ReserveNumber8=item[108];if(IFrameSplitOperator.IsNumber(item[109]))dealItem.ReserveNumber9=item[109];if(IFrameSplitOperator.IsNumber(item[110]))dealItem.ReserveNumber10=item[110];//10个字符型 201-299
12932
12951
  if(IFrameSplitOperator.IsString(item[201])||IFrameSplitOperator.IsObject(item[201]))dealItem.ReserveString1=item[201];if(IFrameSplitOperator.IsString(item[202])||IFrameSplitOperator.IsObject(item[202]))dealItem.ReserveString2=item[202];if(IFrameSplitOperator.IsString(item[203])||IFrameSplitOperator.IsObject(item[203]))dealItem.ReserveString3=item[203];if(IFrameSplitOperator.IsString(item[204])||IFrameSplitOperator.IsObject(item[204]))dealItem.ReserveString4=item[204];if(IFrameSplitOperator.IsString(item[205])||IFrameSplitOperator.IsObject(item[205]))dealItem.ReserveString5=item[205];if(IFrameSplitOperator.IsString(item[206])||IFrameSplitOperator.IsObject(item[206]))dealItem.ReserveString6=item[206];if(IFrameSplitOperator.IsString(item[207])||IFrameSplitOperator.IsObject(item[207]))dealItem.ReserveString7=item[207];if(IFrameSplitOperator.IsString(item[208])||IFrameSplitOperator.IsObject(item[208]))dealItem.ReserveString8=item[208];if(IFrameSplitOperator.IsString(item[209])||IFrameSplitOperator.IsObject(item[209]))dealItem.ReserveString9=item[209];if(IFrameSplitOperator.IsString(item[210])||IFrameSplitOperator.IsObject(item[210]))dealItem.ReserveString10=item[210];result.push(dealItem);}return result;};function JSDealFrame(){this.ChartBorder;this.Canvas;//画布
12933
12952
  this.BorderColor=g_JSChartResource.DealList.BorderColor;//边框线
@@ -12972,25 +12991,29 @@ this.SelectedConfig={BGColor:g_JSChartResource.DealList.Selected.BGColor};//表
12972
12991
  this.HeaderFontConfig={Size:g_JSChartResource.DealList.Header.Font.Size,Name:g_JSChartResource.DealList.Header.Font.Name};this.HeaderColor=g_JSChartResource.DealList.Header.Color;this.HeaderMergin={Left:g_JSChartResource.DealList.Header.Mergin.Left,Right:g_JSChartResource.DealList.Header.Mergin.Right,Top:g_JSChartResource.DealList.Header.Mergin.Top,Bottom:g_JSChartResource.DealList.Header.Mergin.Bottom};//表格内容配置
12973
12992
  this.ItemFontConfig={Size:g_JSChartResource.DealList.Row.Font.Size,Name:g_JSChartResource.DealList.Row.Font.Name};this.RowMergin={Top:g_JSChartResource.DealList.Row.Mergin.Top,Bottom:g_JSChartResource.DealList.Row.Mergin.Bottom};this.BarMergin={Top:g_JSChartResource.DealList.Row.BarMergin.Top,Left:g_JSChartResource.DealList.Row.BarMergin.Left,Right:g_JSChartResource.DealList.Row.BarMergin.Right,Bottom:g_JSChartResource.DealList.Row.BarMergin.Bottom};//缓存
12974
12993
  this.HeaderFont=12*GetDevicePixelRatio()+"px 微软雅黑";this.ItemFont=15*GetDevicePixelRatio()+"px 微软雅黑";this.RowCount=0;this.TableWidth=0;this.TableCount=0;this.HeaderHeight=0;this.Column=[{Type:DEAL_COLUMN_ID.TIME_ID,Title:"时间",TextAlign:"center",Width:null,TextColor:g_JSChartResource.DealList.FieldColor.Time,MaxText:"88:88:88",Foramt:"HH:MM:SS"},{Type:DEAL_COLUMN_ID.PRICE_ID,Title:"价格",TextAlign:"center",Width:null,MaxText:"888888.88"},{Type:DEAL_COLUMN_ID.VOL_ID,Title:"成交",TextAlign:"right",Width:null,TextColor:g_JSChartResource.DealList.FieldColor.Vol,MaxText:"888888"},{Type:DEAL_COLUMN_ID.BS_ID,Title:"",TextAlign:"right",Width:null,MaxText:"擎"}];this.RectClient={};this.AryCellRect=[];//{ Rect:, Type: 1=单行 }
12975
- this.ReloadResource=function(resource){this.UpColor=g_JSChartResource.DealList.UpTextColor;this.DownColor=g_JSChartResource.DealList.DownTextColor;this.UnchangeColor=g_JSChartResource.DealList.UnchagneTextColor;this.BorderColor=g_JSChartResource.DealList.BorderColor;//边框线
12994
+ //Type:20=分时图
12995
+ //{ Rect, Data, Index, Column, Type }}
12996
+ this.TooltipRect=[];this.ReloadResource=function(resource){this.UpColor=g_JSChartResource.DealList.UpTextColor;this.DownColor=g_JSChartResource.DealList.DownTextColor;this.UnchangeColor=g_JSChartResource.DealList.UnchagneTextColor;this.BorderColor=g_JSChartResource.DealList.BorderColor;//边框线
12976
12997
  //表头配置
12977
12998
  this.HeaderFontConfig={Size:g_JSChartResource.DealList.Header.Font.Size,Name:g_JSChartResource.DealList.Header.Font.Name};this.HeaderColor=g_JSChartResource.DealList.Header.Color;this.HeaderMergin={Left:g_JSChartResource.DealList.Header.Mergin.Left,Right:g_JSChartResource.DealList.Header.Mergin.Right,Top:g_JSChartResource.DealList.Header.Mergin.Top,Bottom:g_JSChartResource.DealList.Header.Mergin.Bottom};//表格内容配置
12978
- this.ItemFontConfig={Size:g_JSChartResource.DealList.Row.Font.Size,Name:g_JSChartResource.DealList.Row.Font.Name};this.RowMergin={Top:g_JSChartResource.DealList.Row.Mergin.Top,Bottom:g_JSChartResource.DealList.Row.Mergin.Bottom};for(var i=0;i<this.Column.length;++i){var item=this.Column[i];if(item.Type==DEAL_COLUMN_ID.TIME_ID||item.Type==DEAL_COLUMN_ID.STRING_TIME_ID)item.TextColor=g_JSChartResource.DealList.FieldColor.Time;else if(item.Type==DEAL_COLUMN_ID.VOL_ID)item.TextColor=g_JSChartResource.DealList.FieldColor.Vol;else if(item.Type==DEAL_COLUMN_ID.DEAL_ID)item.TextColor=g_JSChartResource.DealList.FieldColor.Deal;else if(item.Type==DEAL_COLUMN_ID.INDEX_ID)item.TextColor=g_JSChartResource.DealList.FieldColor.Index;}};this.SetColumn=function(aryColumn){if(!IFrameSplitOperator.IsNonEmptyArray(aryColumn))return;this.Column=[];for(var i=0;i<aryColumn.length;++i){var item=aryColumn[i];var colItem=this.GetDefaultColunm(item.Type);if(!colItem)continue;if(item.Title)colItem.Title=item.Title;if(item.TextAlign)colItem.TextAlign=item.TextAlign;if(item.TextColor)colItem.TextColor=item.TextColor;if(item.MaxText)colItem.MaxText=item.MaxText;if(item.Type==DEAL_COLUMN_ID.MULTI_BAR_ID||item.Type==DEAL_COLUMN_ID.CENTER_BAR_ID){if(!IFrameSplitOperator.IsNumber(item.DataIndex))continue;colItem.DataIndex=item.DataIndex;//柱子数据所在原始数据索引列
12999
+ this.ItemFontConfig={Size:g_JSChartResource.DealList.Row.Font.Size,Name:g_JSChartResource.DealList.Row.Font.Name};this.RowMergin={Top:g_JSChartResource.DealList.Row.Mergin.Top,Bottom:g_JSChartResource.DealList.Row.Mergin.Bottom};for(var i=0;i<this.Column.length;++i){var item=this.Column[i];if(item.Type==DEAL_COLUMN_ID.TIME_ID||item.Type==DEAL_COLUMN_ID.STRING_TIME_ID)item.TextColor=g_JSChartResource.DealList.FieldColor.Time;else if(item.Type==DEAL_COLUMN_ID.VOL_ID)item.TextColor=g_JSChartResource.DealList.FieldColor.Vol;else if(item.Type==DEAL_COLUMN_ID.DEAL_ID)item.TextColor=g_JSChartResource.DealList.FieldColor.Deal;else if(item.Type==DEAL_COLUMN_ID.INDEX_ID)item.TextColor=g_JSChartResource.DealList.FieldColor.Index;}};this.SetColumn=function(aryColumn){if(!IFrameSplitOperator.IsNonEmptyArray(aryColumn))return;this.Column=[];for(var i=0;i<aryColumn.length;++i){var item=aryColumn[i];var colItem=this.GetDefaultColunm(item.Type);if(!colItem)continue;if(item.Title)colItem.Title=item.Title;if(item.TextAlign)colItem.TextAlign=item.TextAlign;if(item.TextColor)colItem.TextColor=item.TextColor;if(item.MaxText)colItem.MaxText=item.MaxText;if(item.ChartTooltip)colItem.ChartTooltip={Enable:item.ChartTooltip.Enable,Type:item.ChartTooltip.Type};//图形提示信息
13000
+ if(item.Type==DEAL_COLUMN_ID.MULTI_BAR_ID||item.Type==DEAL_COLUMN_ID.CENTER_BAR_ID){if(!IFrameSplitOperator.IsNumber(item.DataIndex))continue;colItem.DataIndex=item.DataIndex;//柱子数据所在原始数据索引列
12979
13001
  }else if(item.Type==DEAL_COLUMN_ID.TIME_ID){if(IFrameSplitOperator.IsString(item.Foramt))colItem.Foramt=item.Foramt;//设置时间格式
12980
13002
  }else if(this.IsReserveNumber(item.Type)){if(item.Format)colItem.Format=item.Format;//数据格式化设置{ Type:1=原始 2=千分位分割 3=万亿转换, ExFloatPrecision:万亿转换以后的小数位数 }
12981
13003
  if(IFrameSplitOperator.IsNumber(item.ColorType))colItem.ColorType=item.ColorType;//0=默认 1=(>0, =0, <0) 2=(>=0, <0)
12982
- }this.Column.push(colItem);}};this.GetDefaultColunm=function(id){var DEFAULT_COLUMN=[{Type:DEAL_COLUMN_ID.TIME_ID,Title:"时间",TextAlign:"center",Width:null,TextColor:g_JSChartResource.DealList.FieldColor.Time,MaxText:"88:88:88",Foramt:"HH:MM:SS"},{Type:DEAL_COLUMN_ID.PRICE_ID,Title:"价格",TextAlign:"center",Width:null,MaxText:"888888.88"},{Type:DEAL_COLUMN_ID.VOL_ID,Title:"成交",TextAlign:"right",Width:null,TextColor:g_JSChartResource.DealList.FieldColor.Vol,MaxText:"888888"},{Type:DEAL_COLUMN_ID.BS_ID,Title:"",TextAlign:"right",Width:null,MaxText:"擎"},{Type:DEAL_COLUMN_ID.DEAL_ID,Title:"笔数",TextAlign:"right",Width:null,TextColor:g_JSChartResource.DealList.FieldColor.Deal,MaxText:"8888"},{Type:DEAL_COLUMN_ID.UPDOWN_ID,Title:"涨跌",TextAlign:"right",Width:null,MaxText:"-8888.88"},{Type:DEAL_COLUMN_ID.STRING_TIME_ID,Title:"时间",TextAlign:"center",Width:null,TextColor:g_JSChartResource.DealList.FieldColor.Time,MaxText:"88:88:88"},{Type:DEAL_COLUMN_ID.INDEX_ID,Title:"序号",TextAlign:"center",Width:null,TextColor:g_JSChartResource.DealList.FieldColor.Index,MaxText:"88888"},{Type:DEAL_COLUMN_ID.MULTI_BAR_ID,Title:"柱子",TextAlign:"center",Width:null,TextColor:g_JSChartResource.DealList.FieldColor.BarTitle,MaxText:"888888"},{Type:DEAL_COLUMN_ID.CENTER_BAR_ID,Title:"柱子2",TextAlign:"center",Width:null,TextColor:g_JSChartResource.DealList.FieldColor.BarTitle,MaxText:"888888"},{Type:DEAL_COLUMN_ID.CUSTOM_TEXT_ID,Title:"自定义",TextAlign:"center",Width:null,TextColor:g_JSChartResource.DealList.FieldColor.Text,MaxText:"擎擎擎擎擎"},{Type:DEAL_COLUMN_ID.NAME_ID,Title:"股票名称",TextAlign:"center",Width:null,TextColor:g_JSChartResource.DealList.FieldColor.Text,MaxText:"擎擎擎擎*"},{Type:DEAL_COLUMN_ID.RESERVE_NUMBER1_ID,Title:"数值1",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:DEAL_COLUMN_ID.RESERVE_NUMBER2_ID,Title:"数值2",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:DEAL_COLUMN_ID.RESERVE_NUMBER3_ID,Title:"数值3",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:DEAL_COLUMN_ID.RESERVE_NUMBER4_ID,Title:"数值4",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:DEAL_COLUMN_ID.RESERVE_NUMBER5_ID,Title:"数值5",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:DEAL_COLUMN_ID.RESERVE_NUMBER6_ID,Title:"数值6",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:DEAL_COLUMN_ID.RESERVE_NUMBER7_ID,Title:"数值7",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:DEAL_COLUMN_ID.RESERVE_NUMBER8_ID,Title:"数值8",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:DEAL_COLUMN_ID.RESERVE_NUMBER9_ID,Title:"数值9",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:DEAL_COLUMN_ID.RESERVE_NUMBER10_ID,Title:"数值10",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:DEAL_COLUMN_ID.RESERVE_STRING1_ID,Title:"文字1",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:DEAL_COLUMN_ID.RESERVE_STRING2_ID,Title:"文字2",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:DEAL_COLUMN_ID.RESERVE_STRING3_ID,Title:"文字3",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:DEAL_COLUMN_ID.RESERVE_STRING4_ID,Title:"文字4",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:DEAL_COLUMN_ID.RESERVE_STRING5_ID,Title:"文字5",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:DEAL_COLUMN_ID.RESERVE_STRING6_ID,Title:"文字6",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:DEAL_COLUMN_ID.RESERVE_STRING7_ID,Title:"文字7",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:DEAL_COLUMN_ID.RESERVE_STRING8_ID,Title:"文字8",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:DEAL_COLUMN_ID.RESERVE_STRING9_ID,Title:"文字9",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:DEAL_COLUMN_ID.RESERVE_STRING10_ID,Title:"文字10",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"}];for(var i=0;i<DEFAULT_COLUMN.length;++i){var item=DEFAULT_COLUMN[i];if(item.Type==id)return item;}return null;};this.Draw=function(){this.AryCellRect=[];if(this.SizeChange)this.CalculateSize();else this.UpdateCacheData();this.DrawBorder();this.DrawHeader();this.DrawBody();this.SizeChange=false;};//更新缓存变量
13004
+ }this.Column.push(colItem);}};this.GetDefaultColunm=function(id){var DEFAULT_COLUMN=[{Type:DEAL_COLUMN_ID.TIME_ID,Title:"时间",TextAlign:"center",Width:null,TextColor:g_JSChartResource.DealList.FieldColor.Time,MaxText:"88:88:88",Foramt:"HH:MM:SS"},{Type:DEAL_COLUMN_ID.PRICE_ID,Title:"价格",TextAlign:"center",Width:null,MaxText:"888888.88"},{Type:DEAL_COLUMN_ID.VOL_ID,Title:"成交",TextAlign:"right",Width:null,TextColor:g_JSChartResource.DealList.FieldColor.Vol,MaxText:"888888"},{Type:DEAL_COLUMN_ID.BS_ID,Title:"",TextAlign:"right",Width:null,MaxText:"擎"},{Type:DEAL_COLUMN_ID.DEAL_ID,Title:"笔数",TextAlign:"right",Width:null,TextColor:g_JSChartResource.DealList.FieldColor.Deal,MaxText:"8888"},{Type:DEAL_COLUMN_ID.UPDOWN_ID,Title:"涨跌",TextAlign:"right",Width:null,MaxText:"-8888.88"},{Type:DEAL_COLUMN_ID.STRING_TIME_ID,Title:"时间",TextAlign:"center",Width:null,TextColor:g_JSChartResource.DealList.FieldColor.Time,MaxText:"88:88:88"},{Type:DEAL_COLUMN_ID.INDEX_ID,Title:"序号",TextAlign:"center",Width:null,TextColor:g_JSChartResource.DealList.FieldColor.Index,MaxText:"88888"},{Type:DEAL_COLUMN_ID.MULTI_BAR_ID,Title:"柱子",TextAlign:"center",Width:null,TextColor:g_JSChartResource.DealList.FieldColor.BarTitle,MaxText:"888888"},{Type:DEAL_COLUMN_ID.CENTER_BAR_ID,Title:"柱子2",TextAlign:"center",Width:null,TextColor:g_JSChartResource.DealList.FieldColor.BarTitle,MaxText:"888888"},{Type:DEAL_COLUMN_ID.CUSTOM_TEXT_ID,Title:"自定义",TextAlign:"center",Width:null,TextColor:g_JSChartResource.DealList.FieldColor.Text,MaxText:"擎擎擎擎擎"},{Type:DEAL_COLUMN_ID.NAME_ID,Title:"股票名称",TextAlign:"center",Width:null,TextColor:g_JSChartResource.DealList.FieldColor.Text,MaxText:"擎擎擎擎*"},{Type:DEAL_COLUMN_ID.RESERVE_NUMBER1_ID,Title:"数值1",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:DEAL_COLUMN_ID.RESERVE_NUMBER2_ID,Title:"数值2",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:DEAL_COLUMN_ID.RESERVE_NUMBER3_ID,Title:"数值3",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:DEAL_COLUMN_ID.RESERVE_NUMBER4_ID,Title:"数值4",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:DEAL_COLUMN_ID.RESERVE_NUMBER5_ID,Title:"数值5",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:DEAL_COLUMN_ID.RESERVE_NUMBER6_ID,Title:"数值6",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:DEAL_COLUMN_ID.RESERVE_NUMBER7_ID,Title:"数值7",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:DEAL_COLUMN_ID.RESERVE_NUMBER8_ID,Title:"数值8",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:DEAL_COLUMN_ID.RESERVE_NUMBER9_ID,Title:"数值9",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:DEAL_COLUMN_ID.RESERVE_NUMBER10_ID,Title:"数值10",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:DEAL_COLUMN_ID.RESERVE_STRING1_ID,Title:"文字1",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:DEAL_COLUMN_ID.RESERVE_STRING2_ID,Title:"文字2",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:DEAL_COLUMN_ID.RESERVE_STRING3_ID,Title:"文字3",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:DEAL_COLUMN_ID.RESERVE_STRING4_ID,Title:"文字4",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:DEAL_COLUMN_ID.RESERVE_STRING5_ID,Title:"文字5",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:DEAL_COLUMN_ID.RESERVE_STRING6_ID,Title:"文字6",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:DEAL_COLUMN_ID.RESERVE_STRING7_ID,Title:"文字7",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:DEAL_COLUMN_ID.RESERVE_STRING8_ID,Title:"文字8",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:DEAL_COLUMN_ID.RESERVE_STRING9_ID,Title:"文字9",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:DEAL_COLUMN_ID.RESERVE_STRING10_ID,Title:"文字10",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"}];for(var i=0;i<DEFAULT_COLUMN.length;++i){var item=DEFAULT_COLUMN[i];if(item.Type==id)return item;}return null;};this.Draw=function(){this.AryCellRect=[];this.TooltipRect=[];if(this.SizeChange)this.CalculateSize();else this.UpdateCacheData();this.DrawBorder();this.DrawHeader();this.DrawBody();this.SizeChange=false;};//更新缓存变量
12983
13005
  this.UpdateCacheData=function(){this.RectClient.Left=this.ChartBorder.GetLeft();this.RectClient.Right=this.ChartBorder.GetRight();this.RectClient.Top=this.ChartBorder.GetTop();this.RectClient.Bottom=this.ChartBorder.GetBottom();this.Decimal=GetfloatPrecision(this.Symbol);};this.GetPageSize=function(recalculate)//recalculate 是否重新计算
12984
13006
  {if(recalculate)this.CalculateSize();var size=this.TableCount*this.RowCount;return size;};this.CalculateSize=function()//计算大小
12985
13007
  {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.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};//输出
12986
- 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);}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://原始数据
13008
+ 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线图
13009
+ {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://原始数据
12987
13010
  text=value.toFixed(column.FloatPrecision);break;case 2://千分位分割
12988
13011
  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] };
12989
13012
  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] };
12990
13013
  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)//左边
12991
13014
  {this.Canvas.fillRect(center,top,-barWidth,height);}else//右边
12992
13015
  {this.Canvas.fillRect(center,top,barWidth,height);}}};this.DrawCustomText=function(columnInfo,data,rtItem,dataIndex,colid,out){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DRAW_DEAL_TEXT);if(!event||!event.Callback)return false;var sendData={Data:data,DataIndex:dataIndex,ColumnIndex:colid,ColumnInfo:columnInfo,Out:{Text:null,TextColor:null,TextAlign:null}};event.Callback(event,sendData,this);if(!sendData.Out.Text)return false;out.Text=sendData.Out.Text;if(sendData.Out.TextColor)out.TextColor=sendData.Out.TextColor;if(sendData.Out.TextAlign)out.TextAlign=sendData.Out.TextAlign;return true;};this.GetVolColor=function(colunmInfo,data){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DRAW_DEAL_VOL_COLOR);if(event&&event.Callback){var sendData={Data:data,TextColor:null};event.Callback(event,sendData,this);if(sendData.TextColor)return sendData.TextColor;}return colunmInfo.TextColor;};this.GetFontHeight=function(font,word){return GetFontHeight(this.Canvas,font,word);};this.OnMouseDown=function(x,y,e)//Type: 1=行
12993
- {if(!this.Data)return null;var pixelTatio=GetDevicePixelRatio();var insidePoint={X:x/pixelTatio,Y:y/pixelTatio};var uiElement;if(this.UIElement)uiElement={Left:this.UIElement.getBoundingClientRect().left,Top:this.UIElement.getBoundingClientRect().top};else uiElement={Left:null,Top:null};var row=this.PtInBody(x,y);if(row){var bRedraw=true;var index=row.DataIndex;var id=row.Item.Guid;if(this.SelectedData.Index==index&&this.SelectedData.Guid==id)bRedraw=false;this.SelectedData.Index=index;this.SelectedData.Guid=id;var eventID=JSCHART_EVENT_ID.ON_CLICK_DEAL_ROW;if(e.button==2)eventID=JSCHART_EVENT_ID.ON_RCLICK_DEAL_ROW;this.SendClickEvent(eventID,{Data:row,X:x,Y:y,e:e,Inside:insidePoint,UIElement:uiElement});return{Type:row.Type,Redraw:bRedraw,Row:row};}return null;};this.OnDblClick=function(x,y,e){if(!this.Data)return false;var row=this.PtInBody(x,y);if(row){this.SendClickEvent(JSCHART_EVENT_ID.ON_DBCLICK_DEAL_ROW,{Data:row,X:x,Y:y});return true;}return false;};this.PtInBody=function(x,y){if(!this.Data)return null;if(!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return null;if(!IFrameSplitOperator.IsNonEmptyArray(this.AryCellRect))return null;for(var i=0;i<this.AryCellRect.length;++i){var item=this.AryCellRect[i];var rtRow=item.Rect;if(x>=rtRow.Left&&x<=rtRow.Right&&y>=rtRow.Top&&y<=rtRow.Bottom){var data={Rect:rtRow,DataIndex:item.DataIndex,Item:this.Data.Data[item.DataIndex],Type:item.Type};return data;}}return null;};this.SendClickEvent=function(id,data){var event=this.GetEventCallback(id);if(event&&event.Callback){event.Callback(event,data,this);}};this.IsReserveString=function(value){var ARARY_TYPE=[DEAL_COLUMN_ID.RESERVE_STRING1_ID,DEAL_COLUMN_ID.RESERVE_STRING2_ID,DEAL_COLUMN_ID.RESERVE_STRING3_ID,DEAL_COLUMN_ID.RESERVE_STRING4_ID,DEAL_COLUMN_ID.RESERVE_STRING5_ID,DEAL_COLUMN_ID.RESERVE_STRING6_ID,DEAL_COLUMN_ID.RESERVE_STRING7_ID,DEAL_COLUMN_ID.RESERVE_STRING8_ID,DEAL_COLUMN_ID.RESERVE_STRING9_ID,DEAL_COLUMN_ID.RESERVE_STRING10_ID];return ARARY_TYPE.includes(value);};this.IsReserveNumber=function(value){var ARARY_TYPE=[DEAL_COLUMN_ID.RESERVE_NUMBER1_ID,DEAL_COLUMN_ID.RESERVE_NUMBER2_ID,DEAL_COLUMN_ID.RESERVE_NUMBER3_ID,DEAL_COLUMN_ID.RESERVE_NUMBER4_ID,DEAL_COLUMN_ID.RESERVE_NUMBER5_ID,DEAL_COLUMN_ID.RESERVE_NUMBER6_ID,DEAL_COLUMN_ID.RESERVE_NUMBER7_ID,DEAL_COLUMN_ID.RESERVE_NUMBER8_ID,DEAL_COLUMN_ID.RESERVE_NUMBER9_ID,DEAL_COLUMN_ID.RESERVE_NUMBER10_ID];return ARARY_TYPE.includes(value);};}/*
13016
+ {if(!this.Data)return null;var pixelTatio=GetDevicePixelRatio();var insidePoint={X:x/pixelTatio,Y:y/pixelTatio};var uiElement;if(this.UIElement)uiElement={Left:this.UIElement.getBoundingClientRect().left,Top:this.UIElement.getBoundingClientRect().top};else uiElement={Left:null,Top:null};var row=this.PtInBody(x,y);if(row){var bRedraw=true;var index=row.DataIndex;var id=row.Item.Guid;if(this.SelectedData.Index==index&&this.SelectedData.Guid==id)bRedraw=false;this.SelectedData.Index=index;this.SelectedData.Guid=id;var eventID=JSCHART_EVENT_ID.ON_CLICK_DEAL_ROW;if(e.button==2)eventID=JSCHART_EVENT_ID.ON_RCLICK_DEAL_ROW;this.SendClickEvent(eventID,{Data:row,X:x,Y:y,e:e,Inside:insidePoint,UIElement:uiElement});return{Type:row.Type,Redraw:bRedraw,Row:row};}return null;};this.OnDblClick=function(x,y,e){if(!this.Data)return false;var row=this.PtInBody(x,y);if(row){this.SendClickEvent(JSCHART_EVENT_ID.ON_DBCLICK_DEAL_ROW,{Data:row,X:x,Y:y});return true;}return false;};this.PtInBody=function(x,y){if(!this.Data)return null;if(!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return null;if(!IFrameSplitOperator.IsNonEmptyArray(this.AryCellRect))return null;for(var i=0;i<this.AryCellRect.length;++i){var item=this.AryCellRect[i];var rtRow=item.Rect;if(x>=rtRow.Left&&x<=rtRow.Right&&y>=rtRow.Top&&y<=rtRow.Bottom){var data={Rect:rtRow,DataIndex:item.DataIndex,Item:this.Data.Data[item.DataIndex],Type:item.Type};return data;}}return null;};this.SendClickEvent=function(id,data){var event=this.GetEventCallback(id);if(event&&event.Callback){event.Callback(event,data,this);}};this.IsReserveString=function(value){var ARARY_TYPE=[DEAL_COLUMN_ID.RESERVE_STRING1_ID,DEAL_COLUMN_ID.RESERVE_STRING2_ID,DEAL_COLUMN_ID.RESERVE_STRING3_ID,DEAL_COLUMN_ID.RESERVE_STRING4_ID,DEAL_COLUMN_ID.RESERVE_STRING5_ID,DEAL_COLUMN_ID.RESERVE_STRING6_ID,DEAL_COLUMN_ID.RESERVE_STRING7_ID,DEAL_COLUMN_ID.RESERVE_STRING8_ID,DEAL_COLUMN_ID.RESERVE_STRING9_ID,DEAL_COLUMN_ID.RESERVE_STRING10_ID];return ARARY_TYPE.includes(value);};this.IsReserveNumber=function(value){var ARARY_TYPE=[DEAL_COLUMN_ID.RESERVE_NUMBER1_ID,DEAL_COLUMN_ID.RESERVE_NUMBER2_ID,DEAL_COLUMN_ID.RESERVE_NUMBER3_ID,DEAL_COLUMN_ID.RESERVE_NUMBER4_ID,DEAL_COLUMN_ID.RESERVE_NUMBER5_ID,DEAL_COLUMN_ID.RESERVE_NUMBER6_ID,DEAL_COLUMN_ID.RESERVE_NUMBER7_ID,DEAL_COLUMN_ID.RESERVE_NUMBER8_ID,DEAL_COLUMN_ID.RESERVE_NUMBER9_ID,DEAL_COLUMN_ID.RESERVE_NUMBER10_ID];return ARARY_TYPE.includes(value);};this.GetTooltipData=function(x,y){if(!IFrameSplitOperator.IsNonEmptyArray(this.TooltipRect))return null;for(var i=0;i<this.TooltipRect.length;++i){var item=this.TooltipRect[i];var rt=item.Rect;if(!rt)continue;if(x>=rt.Left&&x<=rt.Right&&y>=rt.Top&&y<=rt.Bottom){return(0,_defineProperty3.default)({Rect:item.Rect,Data:item.Data,Column:item.Column,Index:item.Index,Type:item.Type},'Data',item.Data);}}return null;};}/*
12994
13017
  Copyright (c) 2018 jones
12995
13018
 
12996
13019
  http://www.apache.org/licenses/LICENSE-2.0
@@ -14929,7 +14952,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
14929
14952
  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);};}/********************************************************************************
14930
14953
  * 版本信息输出
14931
14954
  *
14932
- */var HQCHART_VERSION="1.1.14749";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();//把给外界调用的方法暴露出来
14955
+ */var HQCHART_VERSION="1.1.14753";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();//把给外界调用的方法暴露出来
14933
14956
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
14934
14957
  // BaseIndex:BaseIndex,
14935
14958
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.14750",
3
+ "version": "1.1.14754",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -71,6 +71,8 @@ function JSDealChart(divElement)
71
71
  }
72
72
  }
73
73
 
74
+ if (option.MinuteChartTooltip && option.MinuteChartTooltip.Enable) chart.InitalMinuteChartTooltip(option.MinuteChartTooltip);
75
+
74
76
  if (!option.Symbol)
75
77
  {
76
78
  chart.Draw();
@@ -211,10 +213,15 @@ function JSDealChartContainer(uielement)
211
213
  this.AutoUpdateFrequency=15000; //更新频率
212
214
 
213
215
  this.LoadDataSplashTitle="数据加载中"; //下载数据提示信息
216
+
217
+ this.TooltipMinuteChart; //分时图
214
218
 
215
219
  this.UIElement=uielement;
216
220
  this.LastPoint=new Point(); //鼠标位置
217
221
 
222
+ //MouseOnStatus:{ RowIndex:行, ColumnIndex:列}
223
+ this.LastMouseStatus={ MoveStatus:null, TooltipStatus:null, MouseOnStatus:null };
224
+
218
225
  this.IsDestroy=false; //是否已经销毁了
219
226
 
220
227
  this.ChartDestroy=function() //销毁
@@ -225,6 +232,51 @@ function JSDealChartContainer(uielement)
225
232
 
226
233
  this.EnableFilterData=false; //是否启动筛选
227
234
 
235
+ this.InitalMinuteChartTooltip=function(option)
236
+ {
237
+ if (this.TooltipMinuteChart) return;
238
+
239
+ this.TooltipMinuteChart=new JSTooltipMinuteChart();
240
+ this.TooltipMinuteChart.Inital(this, option);
241
+ this.TooltipMinuteChart.Create();
242
+ }
243
+
244
+ this.DestroyMinuteChartTooltip=function()
245
+ {
246
+ if (!this.TooltipMinuteChart) return;
247
+
248
+ this.TooltipMinuteChart.Destroy();
249
+ this.TooltipMinuteChart=null;
250
+ }
251
+
252
+ //data={ Symbol }
253
+ this.ShowMinuteChartTooltip=function(x,y, data)
254
+ {
255
+ if (!this.TooltipMinuteChart) return;
256
+
257
+ var rtClient=this.UIElement.getBoundingClientRect();
258
+ var rtScroll=GetScrollPosition();
259
+
260
+ var offsetLeft=rtClient.left+rtScroll.Left;
261
+ var offsetTop=rtClient.top+rtScroll.Top;
262
+
263
+ data.Offset={ Left:offsetLeft, Top:offsetTop };
264
+
265
+ this.TooltipMinuteChart.Show(data, x,y);
266
+ }
267
+
268
+ this.HideMinuteChartTooltip=function()
269
+ {
270
+ if (!this.TooltipMinuteChart) return;
271
+
272
+ this.TooltipMinuteChart.Hide();
273
+ }
274
+
275
+ this.HideAllTooltip=function()
276
+ {
277
+ this.HideMinuteChartTooltip();
278
+ }
279
+
228
280
  //筛选数据
229
281
  this.FilterData=function(aryDeal)
230
282
  {
@@ -333,6 +385,7 @@ function JSDealChartContainer(uielement)
333
385
  this.UIElement.onmousedown=(e)=> { this.UIOnMouseDown(e); }
334
386
  this.UIElement.ondblclick=(e)=>{ this.UIOnDblClick(e); }
335
387
  this.UIElement.oncontextmenu=(e)=> { this.UIOnContextMenu(e); }
388
+ this.UIElement.onmousemove=(e)=>{ this.UIOnMouseMove(e);}
336
389
  }
337
390
 
338
391
  this.Draw=function()
@@ -675,10 +728,12 @@ function JSDealChartContainer(uielement)
675
728
 
676
729
  if (wheelValue<0) //下一页
677
730
  {
731
+ this.HideAllTooltip();
678
732
  if (this.GotoNextPage()) this.Draw();
679
733
  }
680
734
  else if (wheelValue>0) //上一页
681
735
  {
736
+ this.HideAllTooltip();
682
737
  if (this.GotoPreviousPage()) this.Draw();
683
738
  }
684
739
 
@@ -694,9 +749,11 @@ function JSDealChartContainer(uielement)
694
749
  switch(keyID)
695
750
  {
696
751
  case 38: //up
752
+ this.HideAllTooltip();
697
753
  if (this.GotoPreviousPage()) this.Draw();
698
754
  break;
699
755
  case 40: //down
756
+ this.HideAllTooltip();
700
757
  if (this.GotoNextPage()) this.Draw();
701
758
  break;
702
759
  }
@@ -706,6 +763,12 @@ function JSDealChartContainer(uielement)
706
763
  else e.returnValue = false;
707
764
  }
708
765
 
766
+ this.GetReportChart=function()
767
+ {
768
+ var chart=this.ChartPaint[0];
769
+ return chart;
770
+ }
771
+
709
772
  this.UIOnMouseDown=function(e)
710
773
  {
711
774
  var pixelTatio = GetDevicePixelRatio();
@@ -725,6 +788,67 @@ function JSDealChartContainer(uielement)
725
788
  }
726
789
  }
727
790
 
791
+ this.UIOnMouseMove=function(e)
792
+ {
793
+ var pixelTatio = GetDevicePixelRatio();
794
+ var x = (e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;
795
+ var y = (e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;
796
+
797
+ var oldMouseOnStatus=this.LastMouseStatus.MouseOnStatus;
798
+ this.LastMouseStatus.OnMouseMove=null;
799
+
800
+ var bDrawTooltip=false;
801
+ if (this.LastMouseStatus.TooltipStatus) bDrawTooltip=true;
802
+ this.LastMouseStatus.TooltipStatus=null;
803
+
804
+ var bShowMinuteTooltip=false;
805
+ var chartTooltipData=null;
806
+
807
+ this.LastMouseStatus.OnMouseMove={ X:x, Y:y };
808
+ var mouseStatus={ Cursor:"default", Name:"Default"};; //鼠标状态
809
+ var report=this.GetReportChart();
810
+ var bDraw=false;
811
+
812
+ if (report)
813
+ {
814
+ var tooltipData=report.GetTooltipData(x,y); //单元格提示信息
815
+ if (tooltipData)
816
+ {
817
+ if (tooltipData.Type==20)
818
+ {
819
+ if (tooltipData.Data && tooltipData.Data.Symbol)
820
+ {
821
+ bShowMinuteTooltip=true;
822
+ chartTooltipData={ Symbol:tooltipData.Data.Symbol, Rect:tooltipData.Rect };
823
+ }
824
+ }
825
+ /*
826
+ else if (tooltipData.Type==21)
827
+ {
828
+ if (tooltipData.Stock && tooltipData.Stock.Symbol)
829
+ {
830
+ bShowKLineTooltip=true;
831
+ chartTooltipData={ Symbol:tooltipData.Stock.OriginalSymbol, Rect:tooltipData.Rect };
832
+ }
833
+ }
834
+ else
835
+ {
836
+ this.LastMouseStatus.TooltipStatus={ X:x, Y:y, Data:tooltipData, ClientX:e.clientX, ClientY:e.clientY };
837
+ bDrawTooltip=true;
838
+ }
839
+ */
840
+
841
+ }
842
+ }
843
+
844
+ if (mouseStatus) this.UIElement.style.cursor=mouseStatus.Cursor;
845
+
846
+ if (bDraw) this.Draw();
847
+
848
+ if (!bShowMinuteTooltip) this.HideMinuteChartTooltip();
849
+ if (bShowMinuteTooltip) this.ShowMinuteChartTooltip(null, null, chartTooltipData);
850
+ }
851
+
728
852
  this.UIOnDblClick=function(e)
729
853
  {
730
854
  var pixelTatio = GetDevicePixelRatio();
@@ -828,7 +952,7 @@ JSDealChartContainer.JsonDataToDealData=function(data)
828
952
  var result=[];
829
953
  if (!IFrameSplitOperator.IsNonEmptyArray(data.detail)) return result;
830
954
 
831
- //0=时间 1=价格 2=成交量 3=成交金额 4=BS 5=字符串时间 6=ID
955
+ //0=时间 1=价格 2=成交量 3=成交金额 4=BS 5=字符串时间 6=ID 100=Guid
832
956
  for(var i=0;i<data.detail.length;++i)
833
957
  {
834
958
  var item=data.detail[i];
@@ -842,6 +966,8 @@ JSDealChartContainer.JsonDataToDealData=function(data)
842
966
  if (item[11]) dealItem.Symbol=item[11]; //股票代码
843
967
  if (item[12]) dealItem.Name=item[12]; //股票名称
844
968
 
969
+ if (item[100]) dealItem.Guid=item[100];
970
+
845
971
  //10个数值型 101-199
846
972
  if (IFrameSplitOperator.IsNumber(item[101])) dealItem.ReserveNumber1=item[101];
847
973
  if (IFrameSplitOperator.IsNumber(item[102])) dealItem.ReserveNumber2=item[102];
@@ -1097,6 +1223,10 @@ function ChartDealList()
1097
1223
  this.RectClient={};
1098
1224
  this.AryCellRect=[]; //{ Rect:, Type: 1=单行 }
1099
1225
 
1226
+ //Type:20=分时图
1227
+ //{ Rect, Data, Index, Column, Type }}
1228
+ this.TooltipRect=[];
1229
+
1100
1230
  this.ReloadResource=function(resource)
1101
1231
  {
1102
1232
  this.UpColor=g_JSChartResource.DealList.UpTextColor;
@@ -1151,6 +1281,8 @@ function ChartDealList()
1151
1281
  if (item.TextColor) colItem.TextColor=item.TextColor;
1152
1282
  if (item.MaxText) colItem.MaxText=item.MaxText;
1153
1283
 
1284
+ if (item.ChartTooltip) colItem.ChartTooltip={ Enable:item.ChartTooltip.Enable, Type:item.ChartTooltip.Type }; //图形提示信息
1285
+
1154
1286
  if (item.Type==DEAL_COLUMN_ID.MULTI_BAR_ID || item.Type==DEAL_COLUMN_ID.CENTER_BAR_ID)
1155
1287
  {
1156
1288
  if (!IFrameSplitOperator.IsNumber(item.DataIndex)) continue;
@@ -1227,6 +1359,7 @@ function ChartDealList()
1227
1359
  this.Draw=function()
1228
1360
  {
1229
1361
  this.AryCellRect=[];
1362
+ this.TooltipRect=[];
1230
1363
  if (this.SizeChange) this.CalculateSize();
1231
1364
  else this.UpdateCacheData();
1232
1365
 
@@ -1540,7 +1673,12 @@ function ChartDealList()
1540
1673
  {
1541
1674
  this.DrawItemText(text, textColor, textAlign, left, top, itemWidth);
1542
1675
  }
1543
-
1676
+
1677
+ if (item.ChartTooltip && item.ChartTooltip.Enable && IFrameSplitOperator.IsNumber(item.ChartTooltip.Type)) //Type 20分时图 21K线图
1678
+ {
1679
+ var tooltipData={ Rect:rtItem, Data:data, Index:dataIndex, Column:item, Type:item.ChartTooltip.Type };
1680
+ this.TooltipRect.push(tooltipData);
1681
+ }
1544
1682
 
1545
1683
  left+=item.Width;
1546
1684
  }
@@ -1859,4 +1997,23 @@ function ChartDealList()
1859
1997
 
1860
1998
  return ARARY_TYPE.includes(value);
1861
1999
  }
2000
+
2001
+ this.GetTooltipData=function(x,y)
2002
+ {
2003
+ if (!IFrameSplitOperator.IsNonEmptyArray(this.TooltipRect)) return null;
2004
+
2005
+ for(var i=0;i<this.TooltipRect.length;++i)
2006
+ {
2007
+ var item=this.TooltipRect[i];
2008
+ var rt=item.Rect;
2009
+ if (!rt) continue;
2010
+
2011
+ if (x>=rt.Left && x<=rt.Right && y>=rt.Top && y<=rt.Bottom)
2012
+ {
2013
+ return { Rect:item.Rect, Data:item.Data, Column:item.Column, Index:item.Index, Type:item.Type, Data:item.Data };
2014
+ }
2015
+ }
2016
+
2017
+ return null;
2018
+ }
1862
2019
  }
@@ -133808,6 +133808,8 @@ function JSDealChart(divElement)
133808
133808
  }
133809
133809
  }
133810
133810
 
133811
+ if (option.MinuteChartTooltip && option.MinuteChartTooltip.Enable) chart.InitalMinuteChartTooltip(option.MinuteChartTooltip);
133812
+
133811
133813
  if (!option.Symbol)
133812
133814
  {
133813
133815
  chart.Draw();
@@ -133948,10 +133950,15 @@ function JSDealChartContainer(uielement)
133948
133950
  this.AutoUpdateFrequency=15000; //更新频率
133949
133951
 
133950
133952
  this.LoadDataSplashTitle="数据加载中"; //下载数据提示信息
133953
+
133954
+ this.TooltipMinuteChart; //分时图
133951
133955
 
133952
133956
  this.UIElement=uielement;
133953
133957
  this.LastPoint=new Point(); //鼠标位置
133954
133958
 
133959
+ //MouseOnStatus:{ RowIndex:行, ColumnIndex:列}
133960
+ this.LastMouseStatus={ MoveStatus:null, TooltipStatus:null, MouseOnStatus:null };
133961
+
133955
133962
  this.IsDestroy=false; //是否已经销毁了
133956
133963
 
133957
133964
  this.ChartDestroy=function() //销毁
@@ -133962,6 +133969,51 @@ function JSDealChartContainer(uielement)
133962
133969
 
133963
133970
  this.EnableFilterData=false; //是否启动筛选
133964
133971
 
133972
+ this.InitalMinuteChartTooltip=function(option)
133973
+ {
133974
+ if (this.TooltipMinuteChart) return;
133975
+
133976
+ this.TooltipMinuteChart=new JSTooltipMinuteChart();
133977
+ this.TooltipMinuteChart.Inital(this, option);
133978
+ this.TooltipMinuteChart.Create();
133979
+ }
133980
+
133981
+ this.DestroyMinuteChartTooltip=function()
133982
+ {
133983
+ if (!this.TooltipMinuteChart) return;
133984
+
133985
+ this.TooltipMinuteChart.Destroy();
133986
+ this.TooltipMinuteChart=null;
133987
+ }
133988
+
133989
+ //data={ Symbol }
133990
+ this.ShowMinuteChartTooltip=function(x,y, data)
133991
+ {
133992
+ if (!this.TooltipMinuteChart) return;
133993
+
133994
+ var rtClient=this.UIElement.getBoundingClientRect();
133995
+ var rtScroll=GetScrollPosition();
133996
+
133997
+ var offsetLeft=rtClient.left+rtScroll.Left;
133998
+ var offsetTop=rtClient.top+rtScroll.Top;
133999
+
134000
+ data.Offset={ Left:offsetLeft, Top:offsetTop };
134001
+
134002
+ this.TooltipMinuteChart.Show(data, x,y);
134003
+ }
134004
+
134005
+ this.HideMinuteChartTooltip=function()
134006
+ {
134007
+ if (!this.TooltipMinuteChart) return;
134008
+
134009
+ this.TooltipMinuteChart.Hide();
134010
+ }
134011
+
134012
+ this.HideAllTooltip=function()
134013
+ {
134014
+ this.HideMinuteChartTooltip();
134015
+ }
134016
+
133965
134017
  //筛选数据
133966
134018
  this.FilterData=function(aryDeal)
133967
134019
  {
@@ -134070,6 +134122,7 @@ function JSDealChartContainer(uielement)
134070
134122
  this.UIElement.onmousedown=(e)=> { this.UIOnMouseDown(e); }
134071
134123
  this.UIElement.ondblclick=(e)=>{ this.UIOnDblClick(e); }
134072
134124
  this.UIElement.oncontextmenu=(e)=> { this.UIOnContextMenu(e); }
134125
+ this.UIElement.onmousemove=(e)=>{ this.UIOnMouseMove(e);}
134073
134126
  }
134074
134127
 
134075
134128
  this.Draw=function()
@@ -134412,10 +134465,12 @@ function JSDealChartContainer(uielement)
134412
134465
 
134413
134466
  if (wheelValue<0) //下一页
134414
134467
  {
134468
+ this.HideAllTooltip();
134415
134469
  if (this.GotoNextPage()) this.Draw();
134416
134470
  }
134417
134471
  else if (wheelValue>0) //上一页
134418
134472
  {
134473
+ this.HideAllTooltip();
134419
134474
  if (this.GotoPreviousPage()) this.Draw();
134420
134475
  }
134421
134476
 
@@ -134431,9 +134486,11 @@ function JSDealChartContainer(uielement)
134431
134486
  switch(keyID)
134432
134487
  {
134433
134488
  case 38: //up
134489
+ this.HideAllTooltip();
134434
134490
  if (this.GotoPreviousPage()) this.Draw();
134435
134491
  break;
134436
134492
  case 40: //down
134493
+ this.HideAllTooltip();
134437
134494
  if (this.GotoNextPage()) this.Draw();
134438
134495
  break;
134439
134496
  }
@@ -134443,6 +134500,12 @@ function JSDealChartContainer(uielement)
134443
134500
  else e.returnValue = false;
134444
134501
  }
134445
134502
 
134503
+ this.GetReportChart=function()
134504
+ {
134505
+ var chart=this.ChartPaint[0];
134506
+ return chart;
134507
+ }
134508
+
134446
134509
  this.UIOnMouseDown=function(e)
134447
134510
  {
134448
134511
  var pixelTatio = GetDevicePixelRatio();
@@ -134462,6 +134525,67 @@ function JSDealChartContainer(uielement)
134462
134525
  }
134463
134526
  }
134464
134527
 
134528
+ this.UIOnMouseMove=function(e)
134529
+ {
134530
+ var pixelTatio = GetDevicePixelRatio();
134531
+ var x = (e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;
134532
+ var y = (e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;
134533
+
134534
+ var oldMouseOnStatus=this.LastMouseStatus.MouseOnStatus;
134535
+ this.LastMouseStatus.OnMouseMove=null;
134536
+
134537
+ var bDrawTooltip=false;
134538
+ if (this.LastMouseStatus.TooltipStatus) bDrawTooltip=true;
134539
+ this.LastMouseStatus.TooltipStatus=null;
134540
+
134541
+ var bShowMinuteTooltip=false;
134542
+ var chartTooltipData=null;
134543
+
134544
+ this.LastMouseStatus.OnMouseMove={ X:x, Y:y };
134545
+ var mouseStatus={ Cursor:"default", Name:"Default"};; //鼠标状态
134546
+ var report=this.GetReportChart();
134547
+ var bDraw=false;
134548
+
134549
+ if (report)
134550
+ {
134551
+ var tooltipData=report.GetTooltipData(x,y); //单元格提示信息
134552
+ if (tooltipData)
134553
+ {
134554
+ if (tooltipData.Type==20)
134555
+ {
134556
+ if (tooltipData.Data && tooltipData.Data.Symbol)
134557
+ {
134558
+ bShowMinuteTooltip=true;
134559
+ chartTooltipData={ Symbol:tooltipData.Data.Symbol, Rect:tooltipData.Rect };
134560
+ }
134561
+ }
134562
+ /*
134563
+ else if (tooltipData.Type==21)
134564
+ {
134565
+ if (tooltipData.Stock && tooltipData.Stock.Symbol)
134566
+ {
134567
+ bShowKLineTooltip=true;
134568
+ chartTooltipData={ Symbol:tooltipData.Stock.OriginalSymbol, Rect:tooltipData.Rect };
134569
+ }
134570
+ }
134571
+ else
134572
+ {
134573
+ this.LastMouseStatus.TooltipStatus={ X:x, Y:y, Data:tooltipData, ClientX:e.clientX, ClientY:e.clientY };
134574
+ bDrawTooltip=true;
134575
+ }
134576
+ */
134577
+
134578
+ }
134579
+ }
134580
+
134581
+ if (mouseStatus) this.UIElement.style.cursor=mouseStatus.Cursor;
134582
+
134583
+ if (bDraw) this.Draw();
134584
+
134585
+ if (!bShowMinuteTooltip) this.HideMinuteChartTooltip();
134586
+ if (bShowMinuteTooltip) this.ShowMinuteChartTooltip(null, null, chartTooltipData);
134587
+ }
134588
+
134465
134589
  this.UIOnDblClick=function(e)
134466
134590
  {
134467
134591
  var pixelTatio = GetDevicePixelRatio();
@@ -134565,7 +134689,7 @@ JSDealChartContainer.JsonDataToDealData=function(data)
134565
134689
  var result=[];
134566
134690
  if (!IFrameSplitOperator.IsNonEmptyArray(data.detail)) return result;
134567
134691
 
134568
- //0=时间 1=价格 2=成交量 3=成交金额 4=BS 5=字符串时间 6=ID
134692
+ //0=时间 1=价格 2=成交量 3=成交金额 4=BS 5=字符串时间 6=ID 100=Guid
134569
134693
  for(var i=0;i<data.detail.length;++i)
134570
134694
  {
134571
134695
  var item=data.detail[i];
@@ -134579,6 +134703,8 @@ JSDealChartContainer.JsonDataToDealData=function(data)
134579
134703
  if (item[11]) dealItem.Symbol=item[11]; //股票代码
134580
134704
  if (item[12]) dealItem.Name=item[12]; //股票名称
134581
134705
 
134706
+ if (item[100]) dealItem.Guid=item[100];
134707
+
134582
134708
  //10个数值型 101-199
134583
134709
  if (IFrameSplitOperator.IsNumber(item[101])) dealItem.ReserveNumber1=item[101];
134584
134710
  if (IFrameSplitOperator.IsNumber(item[102])) dealItem.ReserveNumber2=item[102];
@@ -134834,6 +134960,10 @@ function ChartDealList()
134834
134960
  this.RectClient={};
134835
134961
  this.AryCellRect=[]; //{ Rect:, Type: 1=单行 }
134836
134962
 
134963
+ //Type:20=分时图
134964
+ //{ Rect, Data, Index, Column, Type }}
134965
+ this.TooltipRect=[];
134966
+
134837
134967
  this.ReloadResource=function(resource)
134838
134968
  {
134839
134969
  this.UpColor=g_JSChartResource.DealList.UpTextColor;
@@ -134888,6 +135018,8 @@ function ChartDealList()
134888
135018
  if (item.TextColor) colItem.TextColor=item.TextColor;
134889
135019
  if (item.MaxText) colItem.MaxText=item.MaxText;
134890
135020
 
135021
+ if (item.ChartTooltip) colItem.ChartTooltip={ Enable:item.ChartTooltip.Enable, Type:item.ChartTooltip.Type }; //图形提示信息
135022
+
134891
135023
  if (item.Type==DEAL_COLUMN_ID.MULTI_BAR_ID || item.Type==DEAL_COLUMN_ID.CENTER_BAR_ID)
134892
135024
  {
134893
135025
  if (!IFrameSplitOperator.IsNumber(item.DataIndex)) continue;
@@ -134964,6 +135096,7 @@ function ChartDealList()
134964
135096
  this.Draw=function()
134965
135097
  {
134966
135098
  this.AryCellRect=[];
135099
+ this.TooltipRect=[];
134967
135100
  if (this.SizeChange) this.CalculateSize();
134968
135101
  else this.UpdateCacheData();
134969
135102
 
@@ -135277,7 +135410,12 @@ function ChartDealList()
135277
135410
  {
135278
135411
  this.DrawItemText(text, textColor, textAlign, left, top, itemWidth);
135279
135412
  }
135280
-
135413
+
135414
+ if (item.ChartTooltip && item.ChartTooltip.Enable && IFrameSplitOperator.IsNumber(item.ChartTooltip.Type)) //Type 20分时图 21K线图
135415
+ {
135416
+ var tooltipData={ Rect:rtItem, Data:data, Index:dataIndex, Column:item, Type:item.ChartTooltip.Type };
135417
+ this.TooltipRect.push(tooltipData);
135418
+ }
135281
135419
 
135282
135420
  left+=item.Width;
135283
135421
  }
@@ -135596,6 +135734,25 @@ function ChartDealList()
135596
135734
 
135597
135735
  return ARARY_TYPE.includes(value);
135598
135736
  }
135737
+
135738
+ this.GetTooltipData=function(x,y)
135739
+ {
135740
+ if (!IFrameSplitOperator.IsNonEmptyArray(this.TooltipRect)) return null;
135741
+
135742
+ for(var i=0;i<this.TooltipRect.length;++i)
135743
+ {
135744
+ var item=this.TooltipRect[i];
135745
+ var rt=item.Rect;
135746
+ if (!rt) continue;
135747
+
135748
+ if (x>=rt.Left && x<=rt.Right && y>=rt.Top && y<=rt.Bottom)
135749
+ {
135750
+ return { Rect:item.Rect, Data:item.Data, Column:item.Column, Index:item.Index, Type:item.Type, Data:item.Data };
135751
+ }
135752
+ }
135753
+
135754
+ return null;
135755
+ }
135599
135756
  }
135600
135757
  /*
135601
135758
  Copyright (c) 2018 jones
@@ -148647,7 +148804,7 @@ function ScrollBarBGChart()
148647
148804
 
148648
148805
 
148649
148806
 
148650
- var HQCHART_VERSION="1.1.14749";
148807
+ var HQCHART_VERSION="1.1.14753";
148651
148808
 
148652
148809
  function PrintHQChartVersion()
148653
148810
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.14749";
8
+ var HQCHART_VERSION="1.1.14753";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -133852,6 +133852,8 @@ function JSDealChart(divElement)
133852
133852
  }
133853
133853
  }
133854
133854
 
133855
+ if (option.MinuteChartTooltip && option.MinuteChartTooltip.Enable) chart.InitalMinuteChartTooltip(option.MinuteChartTooltip);
133856
+
133855
133857
  if (!option.Symbol)
133856
133858
  {
133857
133859
  chart.Draw();
@@ -133992,10 +133994,15 @@ function JSDealChartContainer(uielement)
133992
133994
  this.AutoUpdateFrequency=15000; //更新频率
133993
133995
 
133994
133996
  this.LoadDataSplashTitle="数据加载中"; //下载数据提示信息
133997
+
133998
+ this.TooltipMinuteChart; //分时图
133995
133999
 
133996
134000
  this.UIElement=uielement;
133997
134001
  this.LastPoint=new Point(); //鼠标位置
133998
134002
 
134003
+ //MouseOnStatus:{ RowIndex:行, ColumnIndex:列}
134004
+ this.LastMouseStatus={ MoveStatus:null, TooltipStatus:null, MouseOnStatus:null };
134005
+
133999
134006
  this.IsDestroy=false; //是否已经销毁了
134000
134007
 
134001
134008
  this.ChartDestroy=function() //销毁
@@ -134006,6 +134013,51 @@ function JSDealChartContainer(uielement)
134006
134013
 
134007
134014
  this.EnableFilterData=false; //是否启动筛选
134008
134015
 
134016
+ this.InitalMinuteChartTooltip=function(option)
134017
+ {
134018
+ if (this.TooltipMinuteChart) return;
134019
+
134020
+ this.TooltipMinuteChart=new JSTooltipMinuteChart();
134021
+ this.TooltipMinuteChart.Inital(this, option);
134022
+ this.TooltipMinuteChart.Create();
134023
+ }
134024
+
134025
+ this.DestroyMinuteChartTooltip=function()
134026
+ {
134027
+ if (!this.TooltipMinuteChart) return;
134028
+
134029
+ this.TooltipMinuteChart.Destroy();
134030
+ this.TooltipMinuteChart=null;
134031
+ }
134032
+
134033
+ //data={ Symbol }
134034
+ this.ShowMinuteChartTooltip=function(x,y, data)
134035
+ {
134036
+ if (!this.TooltipMinuteChart) return;
134037
+
134038
+ var rtClient=this.UIElement.getBoundingClientRect();
134039
+ var rtScroll=GetScrollPosition();
134040
+
134041
+ var offsetLeft=rtClient.left+rtScroll.Left;
134042
+ var offsetTop=rtClient.top+rtScroll.Top;
134043
+
134044
+ data.Offset={ Left:offsetLeft, Top:offsetTop };
134045
+
134046
+ this.TooltipMinuteChart.Show(data, x,y);
134047
+ }
134048
+
134049
+ this.HideMinuteChartTooltip=function()
134050
+ {
134051
+ if (!this.TooltipMinuteChart) return;
134052
+
134053
+ this.TooltipMinuteChart.Hide();
134054
+ }
134055
+
134056
+ this.HideAllTooltip=function()
134057
+ {
134058
+ this.HideMinuteChartTooltip();
134059
+ }
134060
+
134009
134061
  //筛选数据
134010
134062
  this.FilterData=function(aryDeal)
134011
134063
  {
@@ -134114,6 +134166,7 @@ function JSDealChartContainer(uielement)
134114
134166
  this.UIElement.onmousedown=(e)=> { this.UIOnMouseDown(e); }
134115
134167
  this.UIElement.ondblclick=(e)=>{ this.UIOnDblClick(e); }
134116
134168
  this.UIElement.oncontextmenu=(e)=> { this.UIOnContextMenu(e); }
134169
+ this.UIElement.onmousemove=(e)=>{ this.UIOnMouseMove(e);}
134117
134170
  }
134118
134171
 
134119
134172
  this.Draw=function()
@@ -134456,10 +134509,12 @@ function JSDealChartContainer(uielement)
134456
134509
 
134457
134510
  if (wheelValue<0) //下一页
134458
134511
  {
134512
+ this.HideAllTooltip();
134459
134513
  if (this.GotoNextPage()) this.Draw();
134460
134514
  }
134461
134515
  else if (wheelValue>0) //上一页
134462
134516
  {
134517
+ this.HideAllTooltip();
134463
134518
  if (this.GotoPreviousPage()) this.Draw();
134464
134519
  }
134465
134520
 
@@ -134475,9 +134530,11 @@ function JSDealChartContainer(uielement)
134475
134530
  switch(keyID)
134476
134531
  {
134477
134532
  case 38: //up
134533
+ this.HideAllTooltip();
134478
134534
  if (this.GotoPreviousPage()) this.Draw();
134479
134535
  break;
134480
134536
  case 40: //down
134537
+ this.HideAllTooltip();
134481
134538
  if (this.GotoNextPage()) this.Draw();
134482
134539
  break;
134483
134540
  }
@@ -134487,6 +134544,12 @@ function JSDealChartContainer(uielement)
134487
134544
  else e.returnValue = false;
134488
134545
  }
134489
134546
 
134547
+ this.GetReportChart=function()
134548
+ {
134549
+ var chart=this.ChartPaint[0];
134550
+ return chart;
134551
+ }
134552
+
134490
134553
  this.UIOnMouseDown=function(e)
134491
134554
  {
134492
134555
  var pixelTatio = GetDevicePixelRatio();
@@ -134506,6 +134569,67 @@ function JSDealChartContainer(uielement)
134506
134569
  }
134507
134570
  }
134508
134571
 
134572
+ this.UIOnMouseMove=function(e)
134573
+ {
134574
+ var pixelTatio = GetDevicePixelRatio();
134575
+ var x = (e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;
134576
+ var y = (e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;
134577
+
134578
+ var oldMouseOnStatus=this.LastMouseStatus.MouseOnStatus;
134579
+ this.LastMouseStatus.OnMouseMove=null;
134580
+
134581
+ var bDrawTooltip=false;
134582
+ if (this.LastMouseStatus.TooltipStatus) bDrawTooltip=true;
134583
+ this.LastMouseStatus.TooltipStatus=null;
134584
+
134585
+ var bShowMinuteTooltip=false;
134586
+ var chartTooltipData=null;
134587
+
134588
+ this.LastMouseStatus.OnMouseMove={ X:x, Y:y };
134589
+ var mouseStatus={ Cursor:"default", Name:"Default"};; //鼠标状态
134590
+ var report=this.GetReportChart();
134591
+ var bDraw=false;
134592
+
134593
+ if (report)
134594
+ {
134595
+ var tooltipData=report.GetTooltipData(x,y); //单元格提示信息
134596
+ if (tooltipData)
134597
+ {
134598
+ if (tooltipData.Type==20)
134599
+ {
134600
+ if (tooltipData.Data && tooltipData.Data.Symbol)
134601
+ {
134602
+ bShowMinuteTooltip=true;
134603
+ chartTooltipData={ Symbol:tooltipData.Data.Symbol, Rect:tooltipData.Rect };
134604
+ }
134605
+ }
134606
+ /*
134607
+ else if (tooltipData.Type==21)
134608
+ {
134609
+ if (tooltipData.Stock && tooltipData.Stock.Symbol)
134610
+ {
134611
+ bShowKLineTooltip=true;
134612
+ chartTooltipData={ Symbol:tooltipData.Stock.OriginalSymbol, Rect:tooltipData.Rect };
134613
+ }
134614
+ }
134615
+ else
134616
+ {
134617
+ this.LastMouseStatus.TooltipStatus={ X:x, Y:y, Data:tooltipData, ClientX:e.clientX, ClientY:e.clientY };
134618
+ bDrawTooltip=true;
134619
+ }
134620
+ */
134621
+
134622
+ }
134623
+ }
134624
+
134625
+ if (mouseStatus) this.UIElement.style.cursor=mouseStatus.Cursor;
134626
+
134627
+ if (bDraw) this.Draw();
134628
+
134629
+ if (!bShowMinuteTooltip) this.HideMinuteChartTooltip();
134630
+ if (bShowMinuteTooltip) this.ShowMinuteChartTooltip(null, null, chartTooltipData);
134631
+ }
134632
+
134509
134633
  this.UIOnDblClick=function(e)
134510
134634
  {
134511
134635
  var pixelTatio = GetDevicePixelRatio();
@@ -134609,7 +134733,7 @@ JSDealChartContainer.JsonDataToDealData=function(data)
134609
134733
  var result=[];
134610
134734
  if (!IFrameSplitOperator.IsNonEmptyArray(data.detail)) return result;
134611
134735
 
134612
- //0=时间 1=价格 2=成交量 3=成交金额 4=BS 5=字符串时间 6=ID
134736
+ //0=时间 1=价格 2=成交量 3=成交金额 4=BS 5=字符串时间 6=ID 100=Guid
134613
134737
  for(var i=0;i<data.detail.length;++i)
134614
134738
  {
134615
134739
  var item=data.detail[i];
@@ -134623,6 +134747,8 @@ JSDealChartContainer.JsonDataToDealData=function(data)
134623
134747
  if (item[11]) dealItem.Symbol=item[11]; //股票代码
134624
134748
  if (item[12]) dealItem.Name=item[12]; //股票名称
134625
134749
 
134750
+ if (item[100]) dealItem.Guid=item[100];
134751
+
134626
134752
  //10个数值型 101-199
134627
134753
  if (IFrameSplitOperator.IsNumber(item[101])) dealItem.ReserveNumber1=item[101];
134628
134754
  if (IFrameSplitOperator.IsNumber(item[102])) dealItem.ReserveNumber2=item[102];
@@ -134878,6 +135004,10 @@ function ChartDealList()
134878
135004
  this.RectClient={};
134879
135005
  this.AryCellRect=[]; //{ Rect:, Type: 1=单行 }
134880
135006
 
135007
+ //Type:20=分时图
135008
+ //{ Rect, Data, Index, Column, Type }}
135009
+ this.TooltipRect=[];
135010
+
134881
135011
  this.ReloadResource=function(resource)
134882
135012
  {
134883
135013
  this.UpColor=g_JSChartResource.DealList.UpTextColor;
@@ -134932,6 +135062,8 @@ function ChartDealList()
134932
135062
  if (item.TextColor) colItem.TextColor=item.TextColor;
134933
135063
  if (item.MaxText) colItem.MaxText=item.MaxText;
134934
135064
 
135065
+ if (item.ChartTooltip) colItem.ChartTooltip={ Enable:item.ChartTooltip.Enable, Type:item.ChartTooltip.Type }; //图形提示信息
135066
+
134935
135067
  if (item.Type==DEAL_COLUMN_ID.MULTI_BAR_ID || item.Type==DEAL_COLUMN_ID.CENTER_BAR_ID)
134936
135068
  {
134937
135069
  if (!IFrameSplitOperator.IsNumber(item.DataIndex)) continue;
@@ -135008,6 +135140,7 @@ function ChartDealList()
135008
135140
  this.Draw=function()
135009
135141
  {
135010
135142
  this.AryCellRect=[];
135143
+ this.TooltipRect=[];
135011
135144
  if (this.SizeChange) this.CalculateSize();
135012
135145
  else this.UpdateCacheData();
135013
135146
 
@@ -135321,7 +135454,12 @@ function ChartDealList()
135321
135454
  {
135322
135455
  this.DrawItemText(text, textColor, textAlign, left, top, itemWidth);
135323
135456
  }
135324
-
135457
+
135458
+ if (item.ChartTooltip && item.ChartTooltip.Enable && IFrameSplitOperator.IsNumber(item.ChartTooltip.Type)) //Type 20分时图 21K线图
135459
+ {
135460
+ var tooltipData={ Rect:rtItem, Data:data, Index:dataIndex, Column:item, Type:item.ChartTooltip.Type };
135461
+ this.TooltipRect.push(tooltipData);
135462
+ }
135325
135463
 
135326
135464
  left+=item.Width;
135327
135465
  }
@@ -135640,6 +135778,25 @@ function ChartDealList()
135640
135778
 
135641
135779
  return ARARY_TYPE.includes(value);
135642
135780
  }
135781
+
135782
+ this.GetTooltipData=function(x,y)
135783
+ {
135784
+ if (!IFrameSplitOperator.IsNonEmptyArray(this.TooltipRect)) return null;
135785
+
135786
+ for(var i=0;i<this.TooltipRect.length;++i)
135787
+ {
135788
+ var item=this.TooltipRect[i];
135789
+ var rt=item.Rect;
135790
+ if (!rt) continue;
135791
+
135792
+ if (x>=rt.Left && x<=rt.Right && y>=rt.Top && y<=rt.Bottom)
135793
+ {
135794
+ return { Rect:item.Rect, Data:item.Data, Column:item.Column, Index:item.Index, Type:item.Type, Data:item.Data };
135795
+ }
135796
+ }
135797
+
135798
+ return null;
135799
+ }
135643
135800
  }
135644
135801
  /*
135645
135802
  Copyright (c) 2018 jones
@@ -159462,7 +159619,7 @@ function HQChartScriptWorker()
159462
159619
 
159463
159620
 
159464
159621
 
159465
- var HQCHART_VERSION="1.1.14749";
159622
+ var HQCHART_VERSION="1.1.14753";
159466
159623
 
159467
159624
  function PrintHQChartVersion()
159468
159625
  {