hqchart 1.1.14750 → 1.1.14752
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.
package/lib/umychart.vue.js
CHANGED
|
@@ -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
|
-
|
|
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,12 +12920,28 @@ 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.
|
|
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
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
|
|
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];//股票代码
|
|
@@ -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
|
-
|
|
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.
|
|
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);}
|
|
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.
|
|
14955
|
+
*/var HQCHART_VERSION="1.1.14751";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
|
@@ -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();
|
|
@@ -1097,6 +1221,10 @@ function ChartDealList()
|
|
|
1097
1221
|
this.RectClient={};
|
|
1098
1222
|
this.AryCellRect=[]; //{ Rect:, Type: 1=单行 }
|
|
1099
1223
|
|
|
1224
|
+
//Type:20=分时图
|
|
1225
|
+
//{ Rect, Data, Index, Column, Type }}
|
|
1226
|
+
this.TooltipRect=[];
|
|
1227
|
+
|
|
1100
1228
|
this.ReloadResource=function(resource)
|
|
1101
1229
|
{
|
|
1102
1230
|
this.UpColor=g_JSChartResource.DealList.UpTextColor;
|
|
@@ -1151,6 +1279,8 @@ function ChartDealList()
|
|
|
1151
1279
|
if (item.TextColor) colItem.TextColor=item.TextColor;
|
|
1152
1280
|
if (item.MaxText) colItem.MaxText=item.MaxText;
|
|
1153
1281
|
|
|
1282
|
+
if (item.ChartTooltip) colItem.ChartTooltip={ Enable:item.ChartTooltip.Enable, Type:item.ChartTooltip.Type }; //图形提示信息
|
|
1283
|
+
|
|
1154
1284
|
if (item.Type==DEAL_COLUMN_ID.MULTI_BAR_ID || item.Type==DEAL_COLUMN_ID.CENTER_BAR_ID)
|
|
1155
1285
|
{
|
|
1156
1286
|
if (!IFrameSplitOperator.IsNumber(item.DataIndex)) continue;
|
|
@@ -1227,6 +1357,7 @@ function ChartDealList()
|
|
|
1227
1357
|
this.Draw=function()
|
|
1228
1358
|
{
|
|
1229
1359
|
this.AryCellRect=[];
|
|
1360
|
+
this.TooltipRect=[];
|
|
1230
1361
|
if (this.SizeChange) this.CalculateSize();
|
|
1231
1362
|
else this.UpdateCacheData();
|
|
1232
1363
|
|
|
@@ -1540,7 +1671,12 @@ function ChartDealList()
|
|
|
1540
1671
|
{
|
|
1541
1672
|
this.DrawItemText(text, textColor, textAlign, left, top, itemWidth);
|
|
1542
1673
|
}
|
|
1543
|
-
|
|
1674
|
+
|
|
1675
|
+
if (item.ChartTooltip && item.ChartTooltip.Enable && IFrameSplitOperator.IsNumber(item.ChartTooltip.Type)) //Type 20分时图 21K线图
|
|
1676
|
+
{
|
|
1677
|
+
var tooltipData={ Rect:rtItem, Data:data, Index:dataIndex, Column:item, Type:item.ChartTooltip.Type };
|
|
1678
|
+
this.TooltipRect.push(tooltipData);
|
|
1679
|
+
}
|
|
1544
1680
|
|
|
1545
1681
|
left+=item.Width;
|
|
1546
1682
|
}
|
|
@@ -1859,4 +1995,23 @@ function ChartDealList()
|
|
|
1859
1995
|
|
|
1860
1996
|
return ARARY_TYPE.includes(value);
|
|
1861
1997
|
}
|
|
1998
|
+
|
|
1999
|
+
this.GetTooltipData=function(x,y)
|
|
2000
|
+
{
|
|
2001
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.TooltipRect)) return null;
|
|
2002
|
+
|
|
2003
|
+
for(var i=0;i<this.TooltipRect.length;++i)
|
|
2004
|
+
{
|
|
2005
|
+
var item=this.TooltipRect[i];
|
|
2006
|
+
var rt=item.Rect;
|
|
2007
|
+
if (!rt) continue;
|
|
2008
|
+
|
|
2009
|
+
if (x>=rt.Left && x<=rt.Right && y>=rt.Top && y<=rt.Bottom)
|
|
2010
|
+
{
|
|
2011
|
+
return { Rect:item.Rect, Data:item.Data, Column:item.Column, Index:item.Index, Type:item.Type, Data:item.Data };
|
|
2012
|
+
}
|
|
2013
|
+
}
|
|
2014
|
+
|
|
2015
|
+
return null;
|
|
2016
|
+
}
|
|
1862
2017
|
}
|
|
@@ -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();
|
|
@@ -134834,6 +134958,10 @@ function ChartDealList()
|
|
|
134834
134958
|
this.RectClient={};
|
|
134835
134959
|
this.AryCellRect=[]; //{ Rect:, Type: 1=单行 }
|
|
134836
134960
|
|
|
134961
|
+
//Type:20=分时图
|
|
134962
|
+
//{ Rect, Data, Index, Column, Type }}
|
|
134963
|
+
this.TooltipRect=[];
|
|
134964
|
+
|
|
134837
134965
|
this.ReloadResource=function(resource)
|
|
134838
134966
|
{
|
|
134839
134967
|
this.UpColor=g_JSChartResource.DealList.UpTextColor;
|
|
@@ -134888,6 +135016,8 @@ function ChartDealList()
|
|
|
134888
135016
|
if (item.TextColor) colItem.TextColor=item.TextColor;
|
|
134889
135017
|
if (item.MaxText) colItem.MaxText=item.MaxText;
|
|
134890
135018
|
|
|
135019
|
+
if (item.ChartTooltip) colItem.ChartTooltip={ Enable:item.ChartTooltip.Enable, Type:item.ChartTooltip.Type }; //图形提示信息
|
|
135020
|
+
|
|
134891
135021
|
if (item.Type==DEAL_COLUMN_ID.MULTI_BAR_ID || item.Type==DEAL_COLUMN_ID.CENTER_BAR_ID)
|
|
134892
135022
|
{
|
|
134893
135023
|
if (!IFrameSplitOperator.IsNumber(item.DataIndex)) continue;
|
|
@@ -134964,6 +135094,7 @@ function ChartDealList()
|
|
|
134964
135094
|
this.Draw=function()
|
|
134965
135095
|
{
|
|
134966
135096
|
this.AryCellRect=[];
|
|
135097
|
+
this.TooltipRect=[];
|
|
134967
135098
|
if (this.SizeChange) this.CalculateSize();
|
|
134968
135099
|
else this.UpdateCacheData();
|
|
134969
135100
|
|
|
@@ -135277,7 +135408,12 @@ function ChartDealList()
|
|
|
135277
135408
|
{
|
|
135278
135409
|
this.DrawItemText(text, textColor, textAlign, left, top, itemWidth);
|
|
135279
135410
|
}
|
|
135280
|
-
|
|
135411
|
+
|
|
135412
|
+
if (item.ChartTooltip && item.ChartTooltip.Enable && IFrameSplitOperator.IsNumber(item.ChartTooltip.Type)) //Type 20分时图 21K线图
|
|
135413
|
+
{
|
|
135414
|
+
var tooltipData={ Rect:rtItem, Data:data, Index:dataIndex, Column:item, Type:item.ChartTooltip.Type };
|
|
135415
|
+
this.TooltipRect.push(tooltipData);
|
|
135416
|
+
}
|
|
135281
135417
|
|
|
135282
135418
|
left+=item.Width;
|
|
135283
135419
|
}
|
|
@@ -135596,6 +135732,25 @@ function ChartDealList()
|
|
|
135596
135732
|
|
|
135597
135733
|
return ARARY_TYPE.includes(value);
|
|
135598
135734
|
}
|
|
135735
|
+
|
|
135736
|
+
this.GetTooltipData=function(x,y)
|
|
135737
|
+
{
|
|
135738
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.TooltipRect)) return null;
|
|
135739
|
+
|
|
135740
|
+
for(var i=0;i<this.TooltipRect.length;++i)
|
|
135741
|
+
{
|
|
135742
|
+
var item=this.TooltipRect[i];
|
|
135743
|
+
var rt=item.Rect;
|
|
135744
|
+
if (!rt) continue;
|
|
135745
|
+
|
|
135746
|
+
if (x>=rt.Left && x<=rt.Right && y>=rt.Top && y<=rt.Bottom)
|
|
135747
|
+
{
|
|
135748
|
+
return { Rect:item.Rect, Data:item.Data, Column:item.Column, Index:item.Index, Type:item.Type, Data:item.Data };
|
|
135749
|
+
}
|
|
135750
|
+
}
|
|
135751
|
+
|
|
135752
|
+
return null;
|
|
135753
|
+
}
|
|
135599
135754
|
}
|
|
135600
135755
|
/*
|
|
135601
135756
|
Copyright (c) 2018 jones
|
|
@@ -148647,7 +148802,7 @@ function ScrollBarBGChart()
|
|
|
148647
148802
|
|
|
148648
148803
|
|
|
148649
148804
|
|
|
148650
|
-
var HQCHART_VERSION="1.1.
|
|
148805
|
+
var HQCHART_VERSION="1.1.14751";
|
|
148651
148806
|
|
|
148652
148807
|
function PrintHQChartVersion()
|
|
148653
148808
|
{
|
|
@@ -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();
|
|
@@ -134878,6 +135002,10 @@ function ChartDealList()
|
|
|
134878
135002
|
this.RectClient={};
|
|
134879
135003
|
this.AryCellRect=[]; //{ Rect:, Type: 1=单行 }
|
|
134880
135004
|
|
|
135005
|
+
//Type:20=分时图
|
|
135006
|
+
//{ Rect, Data, Index, Column, Type }}
|
|
135007
|
+
this.TooltipRect=[];
|
|
135008
|
+
|
|
134881
135009
|
this.ReloadResource=function(resource)
|
|
134882
135010
|
{
|
|
134883
135011
|
this.UpColor=g_JSChartResource.DealList.UpTextColor;
|
|
@@ -134932,6 +135060,8 @@ function ChartDealList()
|
|
|
134932
135060
|
if (item.TextColor) colItem.TextColor=item.TextColor;
|
|
134933
135061
|
if (item.MaxText) colItem.MaxText=item.MaxText;
|
|
134934
135062
|
|
|
135063
|
+
if (item.ChartTooltip) colItem.ChartTooltip={ Enable:item.ChartTooltip.Enable, Type:item.ChartTooltip.Type }; //图形提示信息
|
|
135064
|
+
|
|
134935
135065
|
if (item.Type==DEAL_COLUMN_ID.MULTI_BAR_ID || item.Type==DEAL_COLUMN_ID.CENTER_BAR_ID)
|
|
134936
135066
|
{
|
|
134937
135067
|
if (!IFrameSplitOperator.IsNumber(item.DataIndex)) continue;
|
|
@@ -135008,6 +135138,7 @@ function ChartDealList()
|
|
|
135008
135138
|
this.Draw=function()
|
|
135009
135139
|
{
|
|
135010
135140
|
this.AryCellRect=[];
|
|
135141
|
+
this.TooltipRect=[];
|
|
135011
135142
|
if (this.SizeChange) this.CalculateSize();
|
|
135012
135143
|
else this.UpdateCacheData();
|
|
135013
135144
|
|
|
@@ -135321,7 +135452,12 @@ function ChartDealList()
|
|
|
135321
135452
|
{
|
|
135322
135453
|
this.DrawItemText(text, textColor, textAlign, left, top, itemWidth);
|
|
135323
135454
|
}
|
|
135324
|
-
|
|
135455
|
+
|
|
135456
|
+
if (item.ChartTooltip && item.ChartTooltip.Enable && IFrameSplitOperator.IsNumber(item.ChartTooltip.Type)) //Type 20分时图 21K线图
|
|
135457
|
+
{
|
|
135458
|
+
var tooltipData={ Rect:rtItem, Data:data, Index:dataIndex, Column:item, Type:item.ChartTooltip.Type };
|
|
135459
|
+
this.TooltipRect.push(tooltipData);
|
|
135460
|
+
}
|
|
135325
135461
|
|
|
135326
135462
|
left+=item.Width;
|
|
135327
135463
|
}
|
|
@@ -135640,6 +135776,25 @@ function ChartDealList()
|
|
|
135640
135776
|
|
|
135641
135777
|
return ARARY_TYPE.includes(value);
|
|
135642
135778
|
}
|
|
135779
|
+
|
|
135780
|
+
this.GetTooltipData=function(x,y)
|
|
135781
|
+
{
|
|
135782
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.TooltipRect)) return null;
|
|
135783
|
+
|
|
135784
|
+
for(var i=0;i<this.TooltipRect.length;++i)
|
|
135785
|
+
{
|
|
135786
|
+
var item=this.TooltipRect[i];
|
|
135787
|
+
var rt=item.Rect;
|
|
135788
|
+
if (!rt) continue;
|
|
135789
|
+
|
|
135790
|
+
if (x>=rt.Left && x<=rt.Right && y>=rt.Top && y<=rt.Bottom)
|
|
135791
|
+
{
|
|
135792
|
+
return { Rect:item.Rect, Data:item.Data, Column:item.Column, Index:item.Index, Type:item.Type, Data:item.Data };
|
|
135793
|
+
}
|
|
135794
|
+
}
|
|
135795
|
+
|
|
135796
|
+
return null;
|
|
135797
|
+
}
|
|
135643
135798
|
}
|
|
135644
135799
|
/*
|
|
135645
135800
|
Copyright (c) 2018 jones
|
|
@@ -159462,7 +159617,7 @@ function HQChartScriptWorker()
|
|
|
159462
159617
|
|
|
159463
159618
|
|
|
159464
159619
|
|
|
159465
|
-
var HQCHART_VERSION="1.1.
|
|
159620
|
+
var HQCHART_VERSION="1.1.14751";
|
|
159466
159621
|
|
|
159467
159622
|
function PrintHQChartVersion()
|
|
159468
159623
|
{
|