hqchart 1.1.14471 → 1.1.14478

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.
@@ -1925,7 +1925,7 @@ if(this.CurrentChartDrawPicture){var drawPicture=this.CurrentChartDrawPicture;if
1925
1925
  this.CurrentChartDrawPicture=null;}break;default:return;}if(draw)this.DrawDynamicInfo();//不让滚动条滚动
1926
1926
  if(e.preventDefault)e.preventDefault();else e.returnValue=false;};this.OnDoubleClick=function(x,y,e){//JSConsole.Chart.Log(e);
1927
1927
  };this.ZoomIndexWindow=function(frameID,option)//最大化/最小化指标窗口
1928
- {if(frameID<0||frameID>=this.Frame.SubFrame.length)return false;return this.Frame.ZoomIndexWindow(frameID,option);};this.ShowIndexTitleOnly=function(frameID,option)//只显示指标的标题
1928
+ {if(frameID<0||frameID>=this.Frame.SubFrame.length)return false;return this.Frame.ZoomIndexWindow(frameID,option);};this.ShowIndexTitleOnly=function(frameID,option)//只显示指标的标题 option={ Enable:true/false }
1929
1929
  {if(frameID<0||frameID>=this.Frame.SubFrame.length)return false;return this.Frame.ShowIndexTitleOnly(frameID,option);};this.RemoveMinSizeWindows=function()//清空最小化窗口
1930
1930
  {if(!this.Frame.ZoomWindowsInfo)return;var aryDeleteIndex=[],aryIndex=[];//删除的索引, 保留的索引
1931
1931
  for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i];item.Frame.ClearToolbar();if(item.Frame.IsMinSize)aryDeleteIndex.push(i);else aryIndex.push(i);}this.Frame.ZoomWindowsInfo=null;if(aryDeleteIndex.length<=0)return;for(var i=0;i<aryDeleteIndex.length;++i){this.DeleteIndexPaint(aryDeleteIndex[i]);}var newSubFrame=[];var newWindowIndex=[];var newTitlePaint=[this.TitlePaint[0]];for(var i=0;i<aryIndex.length;++i){var id=aryIndex[i];newSubFrame[i]=this.Frame.SubFrame[id];newWindowIndex[i]=this.WindowIndex[id];newTitlePaint[i+1]=this.TitlePaint[id+1];}this.Frame.SubFrame=newSubFrame;this.WindowIndex=newWindowIndex;this.TitlePaint=newTitlePaint;for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i].Frame;if(i==this.Frame.SubFrame.length-1)item.XSplitOperator.ShowText=true;else item.XSplitOperator.ShowText=false;item.Identify=i;}if(IFrameSplitOperator.IsNonEmptyArray(this.ChartDrawPicture)){var aryDrawPicture=[];for(var i=0;i<this.ChartDrawPicture.length;++i){var item=this.ChartDrawPicture[i];for(var j=0;j<this.Frame.SubFrame.length;++j){if(item.Frame==this.Frame.SubFrame[j].Frame){aryDrawPicture.push(item);break;}}}this.ChartDrawPicture=aryDrawPicture;}};this.PtInClient=function(x,y){this.Canvas.beginPath();if(this.Frame.IsHScreen===true){var border=this.Frame.ChartBorder.GetHScreenBorder();if(border.DayBorder)//多日分时+多日集合竞价
@@ -3017,7 +3017,7 @@ if(height<this.MinSubFrameHeight&&yMove<0||height2<this.MinSubFrameHeight&&yMove
3017
3017
  {var zoomInfo={FrameID:frameID,Data:[]};//备份下放大前各个窗口的高度
3018
3018
  for(var i=0;i<this.SubFrame.length;++i){var item=this.SubFrame[i];zoomInfo.Data[i]={Height:item.Height,ShowXText:item.Frame.XSplitOperator.ShowText};}this.ZoomWindowsInfo=zoomInfo;var totalHeight=0;for(var i=this.ZoomStartWindowIndex;i<this.SubFrame.length;++i){var item=this.SubFrame[i];var frame=item.Frame;frame.XYSplit=true;totalHeight+=item.Height;if(i!=frameID){item.Height=0;frame.IsMinSize=true;//最小化
3019
3019
  frame.HideToolbar();frame.XSplitOperator.ShowText=false;for(var j=0;j<item.OverlayIndex.length;++j){var overlayItem=item.OverlayIndex[j];overlayItem.Frame.IsMinSize=true;}}}subFrame.Height=totalHeight;subFrame.Frame.XSplitOperator.ShowText=true;return true;}};//保存高度比例
3020
- this.SaveSubFrameHeightRate=function(){var height=this.ChartBorder.GetHeight();for(var i=0;i<this.SubFrame.length;++i){var item=this.SubFrame[i];var subHeight=item.Frame.ChartBorder.GetHeight();var rate=subHeight/height*100;item.Height=rate;}};this.ShowIndexTitleOnly=function(frameID,option){var item=this.SubFrame[frameID];if(!item&&!item.Frame)return false;var frame=item.Frame;if(!frame.ChartBorder)return false;var subChartBorder=frame.ChartBorder;if(subChartBorder.TitleHeight<10)return false;this.RestoreIndexWindows();if(subChartBorder.IsShowTitleOnly){subChartBorder.IsShowTitleOnly=false;}else{subChartBorder.IsShowTitleOnly=true;}return true;};this.CalculateChartBorder=function()//计算每个子框架的边框信息
3020
+ this.SaveSubFrameHeightRate=function(){var height=this.ChartBorder.GetHeight();for(var i=0;i<this.SubFrame.length;++i){var item=this.SubFrame[i];var subHeight=item.Frame.ChartBorder.GetHeight();var rate=subHeight/height*100;item.Height=rate;}};this.ShowIndexTitleOnly=function(frameID,option){var item=this.SubFrame[frameID];if(!item&&!item.Frame)return false;var frame=item.Frame;if(!frame.ChartBorder)return false;var subChartBorder=frame.ChartBorder;if(subChartBorder.TitleHeight<10)return false;this.RestoreIndexWindows();var bChange=false;var bEnable=!subChartBorder.IsShowTitleOnly;if(option){if(IFrameSplitOperator.IsBool(option.Enable))bEnable=option.Enable;}if(subChartBorder.IsShowTitleOnly!=bEnable){subChartBorder.IsShowTitleOnly=bEnable;bChange=true;}return bChange;};this.CalculateChartBorder=function()//计算每个子框架的边框信息
3021
3021
  {if(this.SubFrame.length<=0)return;var top=this.ChartBorder.GetTop();var height=this.ChartBorder.GetHeight();var totalHeight=0;var totalTitleHeight=0;for(var i=0;i<this.SubFrame.length;++i){var item=this.SubFrame[i];var frame=item.Frame;if(frame&&frame.ChartBorder&&frame.ChartBorder.IsShowTitleOnly&&item.Height>0)totalTitleHeight+=frame.ChartBorder.TitleHeight;else totalHeight+=item.Height;}height-=totalTitleHeight;for(var i=0;i<this.SubFrame.length;++i){var item=this.SubFrame[i];var frame=item.Frame;item.Frame.ChartBorder.Top=top;item.Frame.ChartBorder.Left=this.ChartBorder.Left;item.Frame.ChartBorder.Right=this.ChartBorder.Right;item.Frame.ChartBorder.LeftExtendWidth=this.ChartBorder.LeftExtendWidth;item.Frame.ChartBorder.RightExtendWidth=this.ChartBorder.RightExtendWidth;if(frame&&frame.ChartBorder&&frame.ChartBorder.IsShowTitleOnly&&item.Height>0){var frameHeight=item.Frame.ChartBorder.Top+frame.ChartBorder.TitleHeight;item.Frame.ChartBorder.Bottom=this.ChartBorder.GetChartHeight()-frameHeight;top=frameHeight;}else{var frameHeight=height*(item.Height/totalHeight)+top;item.Frame.ChartBorder.Bottom=this.ChartBorder.GetChartHeight()-frameHeight;top=frameHeight;}}if(this.GetEventCallback){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_SIZE_FRAME);if(event&&event.Callback){var sendData={SubFrame:this.SubFrame};event.Callback(event,sendData,this);}}};this.SetExtendWidth=function(obj){if(!obj)return;var leftWidth=null,rightWidth=null;if(IFrameSplitOperator.IsNumber(obj.Left)){leftWidth=obj.Left;this.ChartBorder.LeftExtendWidth=leftWidth;}if(IFrameSplitOperator.IsNumber(obj.Right)){rightWidth=obj.Right;this.ChartBorder.RightExtendWidth=rightWidth;}for(var i in this.SubFrame){var item=this.SubFrame[i];if(leftWidth!=null)item.Frame.ChartBorder.LeftExtendWidth=leftWidth;if(rightWidth!=null)item.Frame.ChartBorder.RightExtendWidth=rightWidth;}};this.CalculateChartBorder2=function()//计算每个子框架的边框信息(思维导图用)
3022
3022
  {if(this.SubFrame.length<=0)return;var top=this.ChartBorder.Top;var bottom=this.ChartBorder.Bottom;var height=this.ChartBorder.GetHeight();var totalHeight=0;for(var i in this.SubFrame){var item=this.SubFrame[i];totalHeight+=item.Height;}var tempHeight=0;for(var i in this.SubFrame){var item=this.SubFrame[i];item.Frame.ChartBorder.Top=top;item.Frame.ChartBorder.Left=this.ChartBorder.Left;item.Frame.ChartBorder.Right=this.ChartBorder.Right;item.Frame.ChartBorder.X=this.ChartBorder.X;item.Frame.ChartBorder.Y=this.ChartBorder.Y;item.Frame.ChartBorder.Width=this.ChartBorder.Width;item.Frame.ChartBorder.Height=this.ChartBorder.Height;var frameHeight=height*(item.Height/totalHeight);tempHeight+=frameHeight;bottom=this.ChartBorder.Bottom+(height-tempHeight);item.Frame.ChartBorder.Bottom=bottom;top+=frameHeight;}};this.GetScaleTextWidth=function(){var width={Left:null,Right:null,OverlayRight:0};var aryOverlayWidth=[];// 叠加坐标
3023
3023
  for(var i=0;i<this.SubFrame.length;++i){var item=this.SubFrame[i];if(item.Height<=0)continue;var frame=item.Frame;if(!frame)continue;if(!frame.XSplitOperator)continue;var maxValue=frame.HorizontalMax;//最大最小要还原
@@ -7052,7 +7052,7 @@ SortColor:"rgb(255,0,0)",//排序箭头颜色
7052
7052
  Mergin:{Left:5,Right:5,Top:4,Bottom:4},//表头四周间距
7053
7053
  Font:{Size:12,Name:"微软雅黑"}//表头字体
7054
7054
  },//排序图标
7055
- SortIcon:{Size:12,Family:"iconfont",Arrow:['\uE704','\uE81B','\uF0C9'],//[0]=默认排序的图标背景色
7055
+ SortIcon:{Size:12,Family:"iconfont",Arrow:['\uE704','\uF0C9','\uE81B'],//[0]=默认排序的图标背景色
7056
7056
  Color:['rgb(169,169,169)',"rgb(51,51,51)","rgb(51,51,51)"],Margin:{Left:1*GetDevicePixelRatio(),Bottom:2,Right:0}},Item:{Mergin:{Top:2,Bottom:4,Left:5,Right:5},//单元格四周间距
7057
7057
  Font:{Size:15,Name:"微软雅黑"},BarMergin:{Top:2,Left:3,Right:3,Bottom:2},//单元格字体
7058
7058
  NameFont:{Size:14,Name:"微软雅黑"},SymbolFont:{Size:12,Name:"微软雅黑"}},//固定行
@@ -11830,9 +11830,9 @@ var lastItem=varItem.Draw.DrawData;if(lastItem){if(lastItem.Color)lastItem.Color
11830
11830
  this.CreateChannel=function(hqChart,windowIndex,varItem,id){var chart=new ChartChannel();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;if(varItem.Draw.AreaColor)chart.AreaColor=varItem.Draw.AreaColor;else if(varItem.Color)chart.AreaColor=this.GetColor(varItem.Color);else chart.AreaColor=this.GetDefaultColor(id);if(varItem.Draw.Border.Color)chart.LineColor=varItem.Draw.Border.Color;else chart.LineColor=null;if(varItem.Draw.Border.Dotted)chart.LineDotted=varItem.Draw.Border.Dotted;if(varItem.Draw.Border.Width>0)chart.LineWidth=varItem.Draw.Border.Width;//let titleIndex=windowIndex+1;
11831
11831
  chart.Data.Data=varItem.Draw.DrawData;hqChart.ChartPaint.push(chart);};this.CreatePartLine=function(hqChart,windowIndex,varItem,i){var chart=new ChartPartLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(IFrameSplitOperator.IsPlusNumber(width))chart.LineWidth=width;}if(IFrameSplitOperator.IsBool(varItem.IsDotLine))chart.IsDotLine=varItem.IsDotLine;if(IFrameSplitOperator.IsNonEmptyArray(varItem.LineDash))chart.LineDash=varItem.LineDash;chart.Data.Data=varItem.Draw.DrawData;this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);};this.CreateMultiLine=function(hqChart,windowIndex,varItem,i){var chart=new ChartMultiLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
11832
11832
  chart.Lines=varItem.Draw.DrawData;if(varItem.Draw.Name)chart.Name=varItem.Draw.Name;if(varItem.Draw.LineDash)chart.LineDash=varItem.Draw.LineDash;if(IFrameSplitOperator.IsNumber(varItem.Draw.LineWidth))chart.LineWidth=varItem.Draw.LineWidth;if(IFrameSplitOperator.IsBool(varItem.Draw.IsFullRangeMaxMin))chart.IsFullRangeMaxMin=varItem.Draw.IsFullRangeMaxMin;if(varItem.Draw.Arrow)//箭头配置
11833
- {var item=varItem.Draw.Arrow;if(item.Start==true)chart.Arrow.Start=true;if(item.End==true)chart.Arrow.End=true;if(IFrameSplitOperator.IsNumber(item.Angle))chart.ArrawAngle=item.Angle;if(IFrameSplitOperator.IsNumber(item.Length))chart.ArrawLength=item.Length;if(IFrameSplitOperator.IsNumber(item.LineWidth))chart.ArrawLineWidth=item.LineWidth;}this.ReloadChartResource(hqChart,windowIndex,chart);this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);var titleIndex=windowIndex+1;if(varItem.IsShowTitle===false){}else{var titleData=new DynamicTitleData(chart.Data,chart.Name,null);titleData.DataType="ChartMultiLine";titleData.Lines=chart.Lines;hqChart.TitlePaint[titleIndex].Data[i]=titleData;}};this.CreateMultiPoint=function(hqChart,windowIndex,varItem,i){var chart=new ChartMultiPoint();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data=hqChart.GetKData();//绑定K线
11834
- chart.PointGroup=varItem.Draw.DrawData;if(varItem.Draw.Name)chart.Name=varItem.Draw.Name;chart.BuildCacheData();this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);var titleIndex=windowIndex+1;var titleData=new DynamicTitleData(chart.Data,chart.Name,null);titleData.DataType="ChartMultiPoint";titleData.GetItemCallback=function(kItem){return chart.GetItem(kItem);};hqChart.TitlePaint[titleIndex].Data[i]=titleData;};this.CreateMultiBar=function(hqChart,windowIndex,varItem,id){var chart=new ChartMultiBar();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data=hqChart.GetKData();//绑定K线
11835
- chart.Bars=varItem.Draw.DrawData;chart.BuildCacheData();this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);var titleIndex=windowIndex+1;var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);titleData.DataType="ChartMultiBar";titleData.GetItemCallback=function(kItem){return chart.GetItem(kItem);};hqChart.TitlePaint[titleIndex].Data[id]=titleData;};this.CreateMultiText=function(hqChart,windowIndex,varItem,i){var chart=new ChartMultiText();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data=hqChart.GetKData();//绑定K线
11833
+ {var item=varItem.Draw.Arrow;if(item.Start==true)chart.Arrow.Start=true;if(item.End==true)chart.Arrow.End=true;if(IFrameSplitOperator.IsNumber(item.Angle))chart.ArrawAngle=item.Angle;if(IFrameSplitOperator.IsNumber(item.Length))chart.ArrawLength=item.Length;if(IFrameSplitOperator.IsNumber(item.LineWidth))chart.ArrawLineWidth=item.LineWidth;}this.ReloadChartResource(hqChart,windowIndex,chart);this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);var titleIndex=windowIndex+1;var bShowTitle=true;if(varItem.IsShowTitle===false)bShowTitle=false;if(bShowTitle){var titleData=new DynamicTitleData(chart.Data,chart.Name,null);titleData.DataType="ChartMultiLine";titleData.Lines=chart.Lines;hqChart.TitlePaint[titleIndex].Data[i]=titleData;}};this.CreateMultiPoint=function(hqChart,windowIndex,varItem,i){var chart=new ChartMultiPoint();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data=hqChart.GetKData();//绑定K线
11834
+ chart.PointGroup=varItem.Draw.DrawData;if(varItem.Draw.Name)chart.Name=varItem.Draw.Name;chart.BuildCacheData();this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);var titleIndex=windowIndex+1;var bShowTitle=true;if(varItem.IsShowTitle===false)bShowTitle=false;if(bShowTitle){var titleData=new DynamicTitleData(chart.Data,chart.Name,null);titleData.DataType="ChartMultiPoint";titleData.GetItemCallback=function(kItem){return chart.GetItem(kItem);};hqChart.TitlePaint[titleIndex].Data[i]=titleData;}};this.CreateMultiBar=function(hqChart,windowIndex,varItem,id){var chart=new ChartMultiBar();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data=hqChart.GetKData();//绑定K线
11835
+ chart.Bars=varItem.Draw.DrawData;chart.BuildCacheData();this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);var titleIndex=windowIndex+1;var bShowTitle=true;if(varItem.IsShowTitle===false)bShowTitle=false;if(bShowTitle){var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);titleData.DataType="ChartMultiBar";titleData.GetItemCallback=function(kItem){return chart.GetItem(kItem);};hqChart.TitlePaint[titleIndex].Data[id]=titleData;}};this.CreateMultiText=function(hqChart,windowIndex,varItem,i){var chart=new ChartMultiText();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data=hqChart.GetKData();//绑定K线
11836
11836
  chart.Texts=varItem.Draw.DrawData;chart.BuildCacheData();this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);};this.CreateMultiSVGIcon=function(hqChart,windowIndex,varItem,i){var chart=new ChartMultiSVGIconV2();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data=hqChart.GetKData();//绑定K线
11837
11837
  chart.Family=varItem.Draw.DrawData.Family;chart.AryIcon=varItem.Draw.DrawData.Icon;chart.BuildCacheData();this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);};this.CreateChartDrawSVG=function(hqChart,windowIndex,varItem,i){var chart=new ChartDrawSVG();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data=hqChart.GetKData();if(IFrameSplitOperator.IsBool(varItem.Draw.DrawData.EnableTooltip))chart.EnableTooltip=varItem.Draw.DrawData.EnableTooltip;if(IFrameSplitOperator.IsBool(varItem.Draw.DrawData.IsDrawFirst))chart.IsDrawFirst=varItem.Draw.DrawData.IsDrawFirst;if(varItem.Draw.BuildKeyCallback)chart.BuildKeyCallback=varItem.Draw.BuildKeyCallback;chart.Family=varItem.Draw.DrawData.Family;chart.TextFont=varItem.Draw.DrawData.TextFont;chart.Texts=varItem.Draw.DrawData.Data;chart.BuildCacheData();this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);};this.CreateMulitHtmlDom=function(hqChart,windowIndex,varItem,i){var chart=new ChartMultiHtmlDom();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
11838
11838
  chart.Texts=varItem.Draw.DrawData;chart.DrawCallback=varItem.Draw.Callback;hqChart.ChartPaint.push(chart);};this.CreateStackedBar=function(hqChart,windowIndex,varItem,i){var chart=new ChartStackedBar();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Identify=this.Guid;chart.Data.Data=varItem.Draw.DrawData;if(IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.BarColor))chart.BarColor=varItem.Draw.BarColor;if(IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.BarName))chart.BarName=varItem.Draw.BarName;if(IFrameSplitOperator.IsNumber(varItem.Draw.LineWidth))chart.LineWidth=varItem.Draw.LineWidth;if(IFrameSplitOperator.IsNumber(varItem.Draw.BarType))chart.BarType=varItem.Draw.BarType;hqChart.ChartPaint.push(chart);var titleIndex=windowIndex+1;var titleData=new DynamicTitleData(chart.Data,chart.BarName,chart.BarColor);titleData.DataType="ChartStackedBar";hqChart.TitlePaint[titleIndex].Data[i]=titleData;};this.CreateKLineTable=function(hqChart,windowIndex,varItem,i){var chart=new ChartKLineTable();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Identify=this.Guid;chart.Data.Data=varItem.Draw.DrawData;if(IFrameSplitOperator.IsNumber(varItem.Draw.RowCount))chart.RowCount=varItem.Draw.RowCount;if(IFrameSplitOperator.IsBool(varItem.Draw.IsShowRowName))chart.IsShowRowName=varItem.Draw.IsShowRowName;if(IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.RowName))chart.RowName=varItem.Draw.RowName;if(varItem.Draw.BGColor)chart.BGColor=varItem.Draw.BGColor;hqChart.ChartPaint.push(chart);var titleIndex=windowIndex+1;var titleData=new DynamicTitleData(chart.Data,chart.BarName,chart.BarColor);titleData.DataType="ChartKLineTable";hqChart.TitlePaint[titleIndex].Data[i]=titleData;};this.CreateScatterPlot=function(hqChart,windowIndex,varItem,i){var chart=new ChartScatterPlot();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Identify=this.Guid;chart.Data.Data=varItem.Draw.DrawData;chart.Color=varItem.Draw.Color;chart.Radius=varItem.Draw.Radius;hqChart.ChartPaint.push(chart);};this.CreateClipColorStick=function(hqChart,windowIndex,varItem,id){var chart=new ChartClipColorStick();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Identify=this.Guid;chart.Data.Data=varItem.Draw.DrawData;if(varItem.Option&&chart.SetOption)chart.SetOption(varItem.Option);hqChart.ChartPaint.push(chart);var titleIndex=windowIndex+1;if(varItem.IsShowTitle===false){}else{var clrTitle=this.GetDefaultColor(id);if(varItem.Option&&varItem.Option.TitleColor)clrTitle=this.GetColor(varItem.Option.TitleColor);hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(chart.Data,varItem.Name,clrTitle);}};this.CreateColorKLine=function(hqChart,windowIndex,varItem,i){var chart=new ChartColorKline();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
@@ -11953,8 +11953,8 @@ chart.Data.Data=varItem.Draw.DrawData;frame.ChartPaint.push(chart);};//
11953
11953
  this.CreatePartLine=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartPartLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(IFrameSplitOperator.IsPlusNumber(width))chart.LineWidth=width;}if(IFrameSplitOperator.IsBool(varItem.IsDotLine))chart.IsDotLine=varItem.IsDotLine;if(IFrameSplitOperator.IsNonEmptyArray(varItem.LineDash))chart.LineDash=varItem.LineDash;chart.Data.Data=varItem.Draw.DrawData;this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateMultiLine=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartMultiLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
11954
11954
  chart.Lines=varItem.Draw.DrawData;if(varItem.Draw.LineDash)chart.LineDash=varItem.Draw.LineDash;if(IFrameSplitOperator.IsNumber(varItem.Draw.LineWidth))chart.LineWidth=varItem.Draw.LineWidth;if(IFrameSplitOperator.IsBool(varItem.Draw.IsFullRangeMaxMin))chart.IsFullRangeMaxMin=varItem.Draw.IsFullRangeMaxMin;if(varItem.Draw.Arrow)//箭头配置
11955
11955
  {var item=varItem.Draw.Arrow;if(item.Start==true)chart.Arrow.Start=true;if(item.End==true)chart.Arrow.End=true;if(IFrameSplitOperator.IsNumber(item.Angle))chart.ArrawAngle=item.Angle;if(IFrameSplitOperator.IsNumber(item.Length))chart.ArrawLength=item.Length;if(IFrameSplitOperator.IsNumber(item.LineWidth))chart.ArrawLineWidth=item.LineWidth;}this.ReloadChartResource(hqChart,windowIndex,chart);this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateMultiPoint=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartMultiPoint();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.Data=hqChart.GetKData();//绑定K线
11956
- chart.PointGroup=varItem.Draw.DrawData;chart.BuildCacheData();var titleIndex=windowIndex+1;var titlePaint=hqChart.TitlePaint[titleIndex];var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);titleData.DataType="ChartMultiPoint";titleData.GetItemCallback=function(kItem){return chart.GetItem(kItem);};titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateBackgroud=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartBackground();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.Draw&&varItem.Draw.DrawData){var drawData=varItem.Draw.DrawData;chart.Color=drawData.Color;chart.ColorAngle=drawData.Angle;if(drawData.Data)chart.Data.Data=drawData.Data;}frame.ChartPaint.push(chart);};this.CreateMultiBar=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartMultiBar();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.Data=hqChart.GetKData();//绑定K线
11957
- chart.Bars=varItem.Draw.DrawData;chart.BuildCacheData();var titleIndex=windowIndex+1;var titlePaint=hqChart.TitlePaint[titleIndex];var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);titleData.DataType="ChartMultiBar";titleData.GetItemCallback=function(kItem){return chart.GetItem(kItem);};titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateMultiText=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartMultiText();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.Data=hqChart.GetKData();//绑定K线
11956
+ chart.PointGroup=varItem.Draw.DrawData;chart.BuildCacheData();var titleIndex=windowIndex+1;var bShowTitle=true;if(varItem.IsShowTitle===false)bShowTitle=false;if(bShowTitle){var titlePaint=hqChart.TitlePaint[titleIndex];var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);titleData.DataType="ChartMultiPoint";titleData.GetItemCallback=function(kItem){return chart.GetItem(kItem);};titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;}this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateBackgroud=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartBackground();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.Draw&&varItem.Draw.DrawData){var drawData=varItem.Draw.DrawData;chart.Color=drawData.Color;chart.ColorAngle=drawData.Angle;if(drawData.Data)chart.Data.Data=drawData.Data;}frame.ChartPaint.push(chart);};this.CreateMultiBar=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartMultiBar();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.Data=hqChart.GetKData();//绑定K线
11957
+ chart.Bars=varItem.Draw.DrawData;chart.BuildCacheData();var titleIndex=windowIndex+1;var bShowTitle=true;if(varItem.IsShowTitle===false)bShowTitle=false;if(bShowTitle){var titlePaint=hqChart.TitlePaint[titleIndex];var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);titleData.DataType="ChartMultiBar";titleData.GetItemCallback=function(kItem){return chart.GetItem(kItem);};titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;}this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateMultiText=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartMultiText();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.Data=hqChart.GetKData();//绑定K线
11958
11958
  chart.Texts=varItem.Draw.DrawData;chart.BuildCacheData();this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateMultiSVGIcon=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartMultiSVGIconV2();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.Data=hqChart.GetKData();//绑定K线
11959
11959
  chart.Family=varItem.Draw.DrawData.Family;chart.AryIcon=varItem.Draw.DrawData.Icon;chart.BuildCacheData();this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateChartDrawSVG=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartDrawSVG();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.Data=hqChart.GetKData();if(IFrameSplitOperator.IsBool(varItem.Draw.DrawData.EnableTooltip))chart.EnableTooltip=varItem.Draw.DrawData.EnableTooltip;if(IFrameSplitOperator.IsBool(varItem.Draw.DrawData.IsDrawFirst))chart.IsDrawFirst=varItem.Draw.DrawData.IsDrawFirst;if(varItem.Draw.BuildKeyCallback)chart.BuildKeyCallback=varItem.Draw.BuildKeyCallback;chart.Family=varItem.Draw.DrawData.Family;chart.TextFont=varItem.Draw.DrawData.TextFont;chart.Texts=varItem.Draw.DrawData.Data;if(varItem.Draw.AutoPosition)chart.AutoPosition=varItem.Draw.AutoPosition;this.ReloadChartResource(hqChart,windowIndex,chart);chart.BuildCacheData();this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateMulitHtmlDom=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartMultiHtmlDom();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.HQChart=hqChart;chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
11960
11960
  chart.Texts=varItem.Draw.DrawData;chart.DrawCallback=varItem.Draw.Callback;frame.ChartPaint.push(chart);};this.CreateSimpleTable=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartSimpleTable();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.HQChart=hqChart;if(varItem.Draw&&varItem.Draw.DrawData){var drawData=varItem.Draw.DrawData;if(drawData.TableData)chart.Data.Data=drawData.TableData;if(drawData.BGColor)chart.BGColor=drawData.BGColor;if(drawData.BorderColor)chart.BorderColor=drawData.BorderColor;if(drawData.TextFont)chart.TextFontConfig=drawData.TextFont;if(drawData.TextColor)chart.TextColor=drawData.TextColor;if(IFrameSplitOperator.IsNumber(drawData.XOffset))chart.Offset.X=drawData.XOffset;if(IFrameSplitOperator.IsNumber(drawData.YOffset))chart.Offset.Y=drawData.YOffset;}frame.ChartPaint.push(chart);};this.CreateSimplePie=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartSimplePie();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.HQChart=hqChart;if(varItem.Draw&&varItem.Draw.DrawData){var drawData=varItem.Draw.DrawData;if(drawData.Data)chart.Data.Data=drawData.Data;if(drawData.BorderColor)chart.BorderColor=drawData.BorderColor;if(drawData.TextFont)chart.TextFontConfig=drawData.TextFont;if(drawData.TextColor)chart.TextColor=drawData.TextColor;if(IFrameSplitOperator.IsNumber(drawData.XOffset))chart.Offset.X=drawData.XOffset;if(IFrameSplitOperator.IsNumber(drawData.YOffset))chart.Offset.Y=drawData.YOffset;if(IFrameSplitOperator.IsPlusNumber(drawData.Radius))chart.Radius=drawData.Radius;}frame.ChartPaint.push(chart);};this.CreateSimpleDoughnut=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartSimpleDoughnut();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.HQChart=hqChart;if(varItem.Draw&&varItem.Draw.DrawData){var drawData=varItem.Draw.DrawData;if(drawData.Data)chart.Data.Data=drawData.Data;if(drawData.BorderColor)chart.BorderColor=drawData.BorderColor;if(drawData.TextFont)chart.TextFontConfig=drawData.TextFont;if(drawData.TextColor)chart.TextColor=drawData.TextColor;if(IFrameSplitOperator.IsNumber(drawData.XOffset))chart.Offset.X=drawData.XOffset;if(IFrameSplitOperator.IsNumber(drawData.YOffset))chart.Offset.Y=drawData.YOffset;if(IFrameSplitOperator.IsPlusNumber(drawData.Radius))chart.Radius=drawData.Radius;if(IFrameSplitOperator.IsPlusNumber(drawData.InnerRadius))chart.InnerRadius=drawData.InnerRadius;}frame.ChartPaint.push(chart);};this.CreateSimpleRadar=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartSimpleRadar();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.HQChart=hqChart;if(varItem.Draw&&varItem.Draw.DrawData){var drawData=varItem.Draw.DrawData;if(drawData.Data)chart.Data.Data=drawData.Data;if(drawData.AryIndex)chart.AryIndex=drawData.AryIndex;if(IFrameSplitOperator.IsPlusNumber(drawData.Radius))chart.Radius=drawData.Radius;if(drawData.BorderColor)chart.BorderColor=drawData.BorderColor;if(drawData.TextFont)chart.TextFontConfig=drawData.TextFont;if(drawData.TextColor)chart.TextColor=drawData.TextColor;if(drawData.BorderColor)chart.BorderColor=drawData.BorderColor;if(IFrameSplitOperator.IsNumber(drawData.XOffset))chart.Offset.X=drawData.XOffset;if(IFrameSplitOperator.IsNumber(drawData.YOffset))chart.Offset.Y=drawData.YOffset;if(IFrameSplitOperator.IsNonEmptyArray(drawData.AryArea))chart.AryAreaConfig=drawData.AryArea;chart.BuildCacheData();}frame.ChartPaint.push(chart);};this.CreateChartVericaltLine=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartVericaltLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.HQChart=hqChart;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)chart.LineWidth=width;}this.SetChartLineDash(chart,varItem.Draw.DrawData);chart.Data.Data=varItem.Draw.DrawData.Data;frame.ChartPaint.push(chart);};this.CreateChartHorizontalLine=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartHorizontalLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.HQChart=hqChart;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)chart.LineWidth=width;}this.SetChartLineDash(chart,varItem.Draw.DrawData);chart.ExtendType=varItem.Draw.DrawData.Extend;chart.Data.Data=varItem.Draw.DrawData.Data;frame.ChartPaint.push(chart);};//创建K线
@@ -12405,7 +12405,7 @@ if(IFrameSplitOperator.IsBool(option.IsShowLastPage))this.IsShowLastPage=option.
12405
12405
  if(IFrameSplitOperator.IsNumber(option.BorderLine))this.Frame.BorderLine=option.BorderLine;//边框
12406
12406
  }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(bRegisterKeydown)this.UIElement.addEventListener("keydown",function(e){_this49.OnKeyDown(e);},true);//键盘消息
12407
12407
  if(bRegisterWheel)this.UIElement.addEventListener("wheel",function(e){_this49.OnWheel(e);},true);//上下滚动消息
12408
- };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();//获取设备的分辨率
12408
+ this.UIElement.onmousedown=function(e){_this49.UIOnMouseDown(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();//获取设备的分辨率
12409
12409
  this.Canvas.lineWidth=pixelTatio;//手机端需要根据分辨率比调整线段宽度
12410
12410
  if(this.ChartSplashPaint&&this.ChartSplashPaint.IsEnableSplash){this.Frame.Draw({IsEnableSplash:this.ChartSplashPaint.IsEnableSplash});this.ChartSplashPaint.Draw();return;}this.Frame.Draw();this.Frame.DrawLogo();//框架内图形
12411
12411
  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()//关闭停止更新
@@ -12435,10 +12435,22 @@ this.GotoLastPage();}this.Draw();};this.SetSizeChange=function(bChanged){var cha
12435
12435
  {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
12436
12436
  if(this.GotoPreviousPage())this.Draw();break;case 40://down
12437
12437
  if(this.GotoNextPage())this.Draw();break;}//不让滚动条滚动
12438
- if(e.preventDefault)e.preventDefault();else e.returnValue=false;};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)//最后一页不够一屏调整到满屏
12438
+ 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;/*
12439
+ var clickData=chart.OnMouseDown(x,y,e);
12440
+ if (!clickData) return;
12441
+
12442
+ if ((clickData.Type==2) && (e.button==0 || e.button==2)) //点击行
12443
+ {
12444
+ if (clickData.Redraw==true) this.Draw();
12445
+ }
12446
+ else if (clickData.Type==3 && e.button==0) //表头
12447
+ {
12448
+ this.OnClickHeader(clickData, e);
12449
+ }
12450
+ */};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)//最后一页不够一屏调整到满屏
12439
12451
  {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;//显示最后一屏
12440
12452
  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
12441
- 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]};dealItem.Source=item;if(item[5])dealItem.StrTime=item[5];if(item[6])dealItem.ID=item[6];result.push(dealItem);}return result;};function JSDealFrame(){this.ChartBorder;this.Canvas;//画布
12453
+ 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];result.push(dealItem);}return result;};function JSDealFrame(){this.ChartBorder;this.Canvas;//画布
12442
12454
  this.BorderColor=g_JSChartResource.DealList.BorderColor;//边框线
12443
12455
  this.LogoTextColor=g_JSChartResource.FrameLogo.TextColor;this.LogoTextFont=g_JSChartResource.FrameLogo.Font;this.ReloadResource=function(resource){this.BorderColor=g_JSChartResource.DealList.BorderColor;//边框线
12444
12456
  this.LogoTextColor=g_JSChartResource.FrameLogo.TextColor;this.LogoTextFont=g_JSChartResource.FrameLogo.Font;};this.Draw=function(option){var left=ToFixedPoint(this.ChartBorder.GetLeft());var top=ToFixedPoint(this.ChartBorder.GetTop());var right=ToFixedPoint(this.ChartBorder.GetRight());var bottom=ToFixedPoint(this.ChartBorder.GetBottom());var width=right-left;var height=bottom-top;if(!IFrameSplitOperator.IsNumber(this.BorderLine)){this.Canvas.strokeStyle=this.BorderColor;this.Canvas.strokeRect(left,top,width,height);}else{this.Canvas.strokeStyle=this.BorderColor;this.Canvas.beginPath();if((this.BorderLine&1)>0)//上
@@ -12468,9 +12480,10 @@ this.Decimal=2;//小数位数
12468
12480
  this.IsSingleTable=false;//单表模式
12469
12481
  this.IsShowHeader=true;//是否显示表头
12470
12482
  this.ShowOrder=1;//0=顺序 1=倒序
12483
+ this.SelectedData={Index:10};//{ Index:序号 }
12471
12484
  this.SizeChange=true;//涨跌颜色
12472
12485
  this.UpColor=g_JSChartResource.DealList.UpTextColor;this.DownColor=g_JSChartResource.DealList.DownTextColor;this.UnchagneColor=g_JSChartResource.DealList.UnchagneTextColor;this.BorderColor=g_JSChartResource.DealList.BorderColor;//边框线
12473
- //表头配置
12486
+ this.SelectedConfig={BGColor:"rgb(100,0,100)"};//表头配置
12474
12487
  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};//表格内容配置
12475
12488
  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};//缓存
12476
12489
  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.ReloadResource=function(resource){this.UpColor=g_JSChartResource.DealList.UpTextColor;this.DownColor=g_JSChartResource.DealList.DownTextColor;this.UnchagneColor=g_JSChartResource.DealList.UnchagneTextColor;this.BorderColor=g_JSChartResource.DealList.BorderColor;//边框线
@@ -12481,12 +12494,13 @@ this.ItemFontConfig={Size:g_JSChartResource.DealList.Row.Font.Size,Name:g_JSChar
12481
12494
  }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:"擎擎擎擎擎"}];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(){if(this.SizeChange)this.CalculateSize();else this.UpdateCacheData();this.DrawBorder();this.DrawHeader();this.DrawBody();this.SizeChange=false;};//更新缓存变量
12482
12495
  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 是否重新计算
12483
12496
  {if(recalculate)this.CalculateSize();var size=this.TableCount*this.RowCount;return size;};this.CalculateSize=function()//计算大小
12484
- {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.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];this.DrawRow(dataItem,textLeft,textTop,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;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.UnchagneColor;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.UnchagneColor;}}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};//输出
12485
- 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;}}this.DrawItemText(text,textColor,textAlign,left,top,itemWidth);left+=item.Width;}};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] };
12497
+ {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];if(this.SelectedData&&this.SelectedData.Index==index)this.DrawSelectedRow(dataItem,textLeft-this.HeaderMergin.Left,textTop,index);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];if(this.SelectedData&&this.SelectedData.Index==index)this.DrawSelectedRow(dataItem,textLeft-this.HeaderMergin.Left,textTop,index);this.DrawRow(dataItem,textLeft,textTop,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;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.UnchagneColor;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.UnchagneColor;}}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};//输出
12498
+ 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;}}this.DrawItemText(text,textColor,textAlign,left,top,itemWidth);left+=item.Width;}};this.DrawSelectedRow=function(data,left,top,dataIndex,colIndex){var rtRow={Left:left,Top:top,Height:this.RowHeight,Width:this.TableWidth};rtRow.Right=rtRow.Left+rtRow.Width;rtRow.Bottom=rtRow.Top+rtRow.Bottom;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] };
12486
12499
  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] };
12487
12500
  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)//左边
12488
12501
  {this.Canvas.fillRect(center,top,-barWidth,height);}else//右边
12489
- {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);};}/*
12502
+ {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: 2=行 3=表头
12503
+ {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);};this.PtInBody=function(x,y){if(!this.Data)return null;if(!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return null;};}/*
12490
12504
  Copyright (c) 2018 jones
12491
12505
 
12492
12506
  http://www.apache.org/licenses/LICENSE-2.0
@@ -13112,7 +13126,7 @@ this.GetNameColor=function(colunmInfo,symbol,rowType){var event=this.GetEventCal
13112
13126
  for(var i=0;i<this.FixedColumn&&i<this.Column.length;++i){var item=this.Column[i];var header={Left:textLeft,Right:textLeft+item.Width,Top:top,Bottom:bottom};if(x>=header.Left&&x<=header.Right&&y>=header.Top&&y<=header.Bottom){return{Rect:header,Column:item,Index:i,IsFixed:true};}textLeft+=item.Width;}for(var i=this.FixedColumn+this.Data.XOffset;i<this.Column.length;++i){var item=this.Column[i];if(textLeft>=right)break;var header={Left:textLeft,Right:textLeft+item.Width,Top:top,Bottom:bottom};if(x>=header.Left&&x<=header.Right&&y>=header.Top&&y<=header.Bottom){return{Rect:header,Column:item,Index:i,IsFixed:false};}textLeft+=item.Width;}return null;};this.PtInHeader=function(x,y){if(!this.IsShowHeader)return null;var left=this.RectClient.Left;var right=this.RectClient.Right;var top=this.RectClient.Top;var bottom=top+this.HeaderHeight;if(!(x>=left&&x<=right&&y>=top&&y<=bottom))return null;return this.PtInItem(x,y,top,bottom);};this.IsPtInBody=function(x,y){var top=this.RectClient.Top+this.HeaderHeight;var left=this.RectClient.Left;var right=this.RectClient.Right;var bottom=this.RectClient.Bottom;if(x>=left&&x<=right&&y>=top&&y<=bottom)return true;return false;};this.IsPtInHeader=function(x,y){if(!this.IsShowHeader)return false;var left=this.RectClient.Left;var right=this.RectClient.Right;var top=this.RectClient.Top;var bottom=top+this.HeaderHeight;if(x>=left&&x<=right&&y>=top&&y<=bottom)return true;return false;};this.SendClickEvent=function(id,data){var event=this.GetEventCallback(id);if(event&&event.Callback){event.Callback(event,data,this);}};this.DrawDragRow=function(){if(!this.DragRow)return;var drag=this.DragRow;if(!drag.Data||!drag.Inside||!drag.Data.Row)return;var dataIndex=drag.Data.Row.DataIndex;if(!IFrameSplitOperator.IsNumber(dataIndex)||dataIndex<0)return;var textTop=drag.Inside.Y-this.RowHeight/2;var top=textTop;var left=this.RectClient.Left;var rowWidth=this.RectClient.Right-this.RectClient.Left;//背景
13113
13127
  this.Canvas.fillStyle=this.DragRowColor;this.Canvas.fillRect(left,textTop,rowWidth,this.RowHeight);var symbol=this.Data.Data[dataIndex];var data={Symbol:symbol,Stock:null,Block:null};if(this.GetStockDataCallback)data.Stock=this.GetStockDataCallback(symbol);if(this.GetBlockDataCallback)data.Block=this.GetBlockDataCallback(symbol);data.Decimal=GetfloatPrecision(symbol);//小数位数
13114
13128
  var chartRight=this.RectClient.Right;this.Canvas.font=this.ItemFont;for(var i=0;i<this.FixedColumn&&i<this.Column.length;++i){var item=this.Column[i];this.DrawItem(dataIndex,data,item,left,top,3);left+=item.Width;if(left>=chartRight)break;}for(var i=this.FixedColumn+this.Data.XOffset;i<this.Column.length;++i){var item=this.Column[i];this.DrawItem(dataIndex,data,item,left,top,3);left+=item.Width;if(left>=chartRight)break;}};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{Rect:item.Rect,Stock:item.Stock,Column:item.Column,Index:item.Index,Type:item.Type,Data:item.Data};}}return null;};this.GetButtonData=function(x,y){if(!IFrameSplitOperator.IsNonEmptyArray(this.ButtonRect))return null;for(var i=0;i<this.ButtonRect.length;++i){var item=this.ButtonRect[i];var rt=item.Rect;if(!rt)continue;if(x>=rt.Left&&x<=rt.Right&&y>=rt.Top&&y<=rt.Bottom){return{Rect:item.Rect,Stock:item.Stock,Column:item.Column,Index:item.Index,Type:item.Type,Data:item.Data,ColumnIndex:item.ColumnIndex};}}};this.PtInHeaderDragBorder=function(x,y){if(!this.IsShowHeader)return null;var left=this.RectClient.Left;var right=this.RectClient.Right;var top=this.RectClient.Top;var bottom=top+this.HeaderHeight;if(!(x>=left&&x<=right&&y>=top&&y<=bottom))return null;var textLeft=left;var dragBarWidth=5*GetDevicePixelRatio();//固定列
13115
- for(var i=0;i<this.FixedColumn&&i<this.Column.length;++i){var item=this.Column[i];if(item.EnableDragWidth===true){var header={Right:textLeft+item.Width,Top:top,Bottom:bottom};header.Left=header.Right-dragBarWidth;if(x>=header.Left&&x<=header.Right&&y>=header.Top&&y<=header.Bottom){return{Rect:header,Column:item,Index:i,IsFixed:true};}}textLeft+=item.Width;}for(var i=this.FixedColumn+this.Data.XOffset;i<this.Column.length;++i){var item=this.Column[i];if(textLeft>=right)break;if(item.EnableDragWidth===true){var header={Right:textLeft+item.Width,Top:top,Bottom:bottom};header.Left=header.Right-dragBarWidth;if(x>=header.Left&&x<=header.Right&&y>=header.Top&&y<=header.Bottom){return{Rect:header,Column:item,Index:i,IsFixed:false};}}textLeft+=item.Width;}return null;};//设置选中行 data={ Symbol:, AutoYScroll:true/false Y滚动条自定定位 }
13129
+ for(var i=0;i<this.FixedColumn&&i<this.Column.length;++i){var item=this.Column[i];if(item.EnableDragWidth===true){var header={Right:textLeft+item.Width,Top:top,Bottom:bottom};header.Left=header.Right-dragBarWidth;if(x>=header.Left&&x<=header.Right&&y>=header.Top&&y<=header.Bottom){return{Rect:header,Column:item,Index:i,IsFixed:true};}}textLeft+=item.Width;}for(var i=this.FixedColumn+this.Data.XOffset;i<this.Column.length;++i){var item=this.Column[i];if(textLeft>=right)break;if(item.EnableDragWidth===true){var header={Right:textLeft+item.Width,Top:top,Bottom:bottom};header.Left=header.Right-dragBarWidth;if(x>=header.Left&&x<=header.Right&&y>=header.Top&&y<=header.Bottom){return{Rect:header,Column:item,Index:i,IsFixed:false};}}textLeft+=item.Width;}return null;};//设置选中行 option={ Symbol:, AutoYScroll:true/false Y滚动条自定定位 }
13116
13130
  this.SetSelectedRow=function(option){if(!option)return false;if(this.SelectedModel===0)return false;if(option.Symbol){var symbol=option.Symbol;var bFinder=false;for(var i=0;i<this.Data.Data.length;++i){var item=this.Data.Data[i];if(symbol==item){this.SelectedRow=i;bFinder=true;break;}}if(!bFinder)return false;if(option.AutoYScroll===true){this.UpdatePageYOffset({SelectedRow:this.SelectedRow});}return bFinder;}return false;};this.UpdatePageYOffset=function(option){if(!option)return;var selectedRow=option.SelectedRow;if(selectedRow<0)return;var pageStatus=this.GetCurrentPageStatus();if(pageStatus.IsSinglePage)return;if(selectedRow>=pageStatus.Start&&selectedRow<=pageStatus.End)return;this.Data.YOffset=selectedRow;//选中行不在当前屏 设置为第1行
13117
13131
  };}//报价列表底部tab和横向滚动条
13118
13132
  function ChartReportTab(){this.Canvas;//画布
@@ -14350,7 +14364,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
14350
14364
  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);};}/********************************************************************************
14351
14365
  * 版本信息输出
14352
14366
  *
14353
- */var HQCHART_VERSION="1.1.14470";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();//把给外界调用的方法暴露出来
14367
+ */var HQCHART_VERSION="1.1.14477";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();//把给外界调用的方法暴露出来
14354
14368
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
14355
14369
  // BaseIndex:BaseIndex,
14356
14370
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.14471",
3
+ "version": "1.1.14478",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -22013,12 +22013,10 @@ function ScriptIndex(name,script,args,option)
22013
22013
  this.SetChartIndexName(chart);
22014
22014
  hqChart.ChartPaint.push(chart);
22015
22015
 
22016
- var titleIndex=windowIndex+1;
22017
- if (varItem.IsShowTitle===false)
22018
- {
22019
-
22020
- }
22021
- else
22016
+ var titleIndex=windowIndex+1;
22017
+ var bShowTitle=true;
22018
+ if (varItem.IsShowTitle===false) bShowTitle=false;
22019
+ if (bShowTitle)
22022
22020
  {
22023
22021
  var titleData=new DynamicTitleData(chart.Data,chart.Name, null);
22024
22022
  titleData.DataType="ChartMultiLine";
@@ -22044,10 +22042,15 @@ function ScriptIndex(name,script,args,option)
22044
22042
  hqChart.ChartPaint.push(chart);
22045
22043
 
22046
22044
  var titleIndex=windowIndex+1;
22047
- var titleData=new DynamicTitleData(chart.Data,chart.Name, null);
22048
- titleData.DataType="ChartMultiPoint";
22049
- titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
22050
- hqChart.TitlePaint[titleIndex].Data[i]=titleData;
22045
+ var bShowTitle=true;
22046
+ if (varItem.IsShowTitle===false) bShowTitle=false;
22047
+ if (bShowTitle)
22048
+ {
22049
+ var titleData=new DynamicTitleData(chart.Data,chart.Name, null);
22050
+ titleData.DataType="ChartMultiPoint";
22051
+ titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
22052
+ hqChart.TitlePaint[titleIndex].Data[i]=titleData;
22053
+ }
22051
22054
  }
22052
22055
 
22053
22056
  this.CreateMultiBar=function(hqChart,windowIndex,varItem,id)
@@ -22066,10 +22069,17 @@ function ScriptIndex(name,script,args,option)
22066
22069
  hqChart.ChartPaint.push(chart);
22067
22070
 
22068
22071
  var titleIndex=windowIndex+1;
22069
- var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);
22070
- titleData.DataType="ChartMultiBar";
22071
- titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
22072
- hqChart.TitlePaint[titleIndex].Data[id]=titleData;
22072
+
22073
+ var bShowTitle=true;
22074
+ if (varItem.IsShowTitle===false) bShowTitle=false;
22075
+ if (bShowTitle)
22076
+ {
22077
+ var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);
22078
+ titleData.DataType="ChartMultiBar";
22079
+ titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
22080
+ hqChart.TitlePaint[titleIndex].Data[id]=titleData;
22081
+ }
22082
+
22073
22083
  }
22074
22084
 
22075
22085
  this.CreateMultiText=function(hqChart,windowIndex,varItem,i)
@@ -23783,11 +23793,16 @@ function OverlayScriptIndex(name,script,args,option)
23783
23793
  chart.BuildCacheData();
23784
23794
 
23785
23795
  var titleIndex=windowIndex+1;
23786
- var titlePaint=hqChart.TitlePaint[titleIndex];
23787
- var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);
23788
- titleData.DataType="ChartMultiPoint";
23789
- titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
23790
- titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;
23796
+ var bShowTitle=true;
23797
+ if (varItem.IsShowTitle===false) bShowTitle=false;
23798
+ if (bShowTitle)
23799
+ {
23800
+ var titlePaint=hqChart.TitlePaint[titleIndex];
23801
+ var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);
23802
+ titleData.DataType="ChartMultiPoint";
23803
+ titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
23804
+ titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;
23805
+ }
23791
23806
 
23792
23807
  this.SetChartIndexName(chart);
23793
23808
 
@@ -23833,12 +23848,16 @@ function OverlayScriptIndex(name,script,args,option)
23833
23848
  chart.BuildCacheData();
23834
23849
 
23835
23850
  var titleIndex=windowIndex+1;
23836
- var titlePaint=hqChart.TitlePaint[titleIndex];
23837
- var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);
23838
- titleData.DataType="ChartMultiBar";
23839
- titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
23840
-
23841
- titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;
23851
+ var bShowTitle=true;
23852
+ if (varItem.IsShowTitle===false) bShowTitle=false;
23853
+ if (bShowTitle)
23854
+ {
23855
+ var titlePaint=hqChart.TitlePaint[titleIndex];
23856
+ var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);
23857
+ titleData.DataType="ChartMultiBar";
23858
+ titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
23859
+ titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;
23860
+ }
23842
23861
 
23843
23862
  this.SetChartIndexName(chart);
23844
23863
  frame.ChartPaint.push(chart);
@@ -315,6 +315,8 @@ function JSDealChartContainer(uielement)
315
315
 
316
316
  if (bRegisterKeydown) this.UIElement.addEventListener("keydown", (e)=>{ this.OnKeyDown(e); }, true); //键盘消息
317
317
  if (bRegisterWheel) this.UIElement.addEventListener("wheel", (e)=>{ this.OnWheel(e); }, true); //上下滚动消息
318
+
319
+ this.UIElement.onmousedown=(e)=> { this.UIOnMouseDown(e); }
318
320
  }
319
321
 
320
322
  this.Draw=function()
@@ -688,6 +690,32 @@ function JSDealChartContainer(uielement)
688
690
  else e.returnValue = false;
689
691
  }
690
692
 
693
+ this.UIOnMouseDown=function(e)
694
+ {
695
+ var pixelTatio = GetDevicePixelRatio();
696
+ var x = (e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;
697
+ var y = (e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;
698
+
699
+
700
+ var chart=this.ChartPaint[0];
701
+ if (!chart) return;
702
+
703
+ /*
704
+ var clickData=chart.OnMouseDown(x,y,e);
705
+ if (!clickData) return;
706
+
707
+ if ((clickData.Type==2) && (e.button==0 || e.button==2)) //点击行
708
+ {
709
+ if (clickData.Redraw==true) this.Draw();
710
+ }
711
+ else if (clickData.Type==3 && e.button==0) //表头
712
+ {
713
+ this.OnClickHeader(clickData, e);
714
+ }
715
+ */
716
+
717
+ }
718
+
691
719
  this.GotoNextPage=function()
692
720
  {
693
721
  if (!this.Data || !IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return false;
@@ -781,7 +809,7 @@ JSDealChartContainer.JsonDataToDealData=function(data)
781
809
  {
782
810
  var item=data.detail[i];
783
811
 
784
- var dealItem={ Time:item[0], Price:item[1], Vol:item[2], BS:item[4], Amount:item[3] };
812
+ var dealItem={ Time:item[0], Price:item[1], Vol:item[2], BS:item[4], Amount:item[3], Guid:Guid() };
785
813
  dealItem.Source=item;
786
814
 
787
815
  if (item[5]) dealItem.StrTime=item[5];
@@ -907,6 +935,7 @@ function ChartDealList()
907
935
  this.IsSingleTable=false; //单表模式
908
936
  this.IsShowHeader=true; //是否显示表头
909
937
  this.ShowOrder=1; //0=顺序 1=倒序
938
+ this.SelectedData={ Index:10 }; //{ Index:序号 }
910
939
 
911
940
  this.SizeChange=true;
912
941
 
@@ -917,6 +946,8 @@ function ChartDealList()
917
946
 
918
947
  this.BorderColor=g_JSChartResource.DealList.BorderColor; //边框线
919
948
 
949
+ this.SelectedConfig={ BGColor:"rgb(100,0,100)"};
950
+
920
951
  //表头配置
921
952
  this.HeaderFontConfig={ Size:g_JSChartResource.DealList.Header.Font.Size, Name:g_JSChartResource.DealList.Header.Font.Name };
922
953
  this.HeaderColor=g_JSChartResource.DealList.Header.Color;
@@ -1211,6 +1242,7 @@ function ChartDealList()
1211
1242
  for(j=0;j<this.RowCount && index>=0;++j, --index)
1212
1243
  {
1213
1244
  var dataItem=this.Data.Data[index];
1245
+ if (this.SelectedData && this.SelectedData.Index==index) this.DrawSelectedRow(dataItem, textLeft-this.HeaderMergin.Left, textTop, index);
1214
1246
 
1215
1247
  this.DrawRow(dataItem, textLeft, textTop, index);
1216
1248
 
@@ -1228,6 +1260,8 @@ function ChartDealList()
1228
1260
  for(j=0;j<this.RowCount && index<dataCount;++j, ++index)
1229
1261
  {
1230
1262
  var dataItem=this.Data.Data[index];
1263
+
1264
+ if (this.SelectedData && this.SelectedData.Index==index) this.DrawSelectedRow(dataItem, textLeft-this.HeaderMergin.Left, textTop, index);
1231
1265
 
1232
1266
  this.DrawRow(dataItem, textLeft, textTop, index);
1233
1267
 
@@ -1335,6 +1369,16 @@ function ChartDealList()
1335
1369
  }
1336
1370
  }
1337
1371
 
1372
+ this.DrawSelectedRow=function(data, left, top, dataIndex, colIndex)
1373
+ {
1374
+ var rtRow={ Left:left, Top:top, Height:this.RowHeight, Width:this.TableWidth };
1375
+ rtRow.Right=rtRow.Left+rtRow.Width;
1376
+ rtRow.Bottom=rtRow.Top+rtRow.Bottom;
1377
+
1378
+ this.Canvas.fillStyle=this.SelectedConfig.BGColor;
1379
+ this.Canvas.fillRect(rtRow.Left,rtRow.Top, rtRow.Width, rtRow.Height);
1380
+ }
1381
+
1338
1382
  this.DrawItemText=function(text, textColor, textAlign, left, top, width)
1339
1383
  {
1340
1384
  var x=left;
@@ -1461,4 +1505,23 @@ function ChartDealList()
1461
1505
  {
1462
1506
  return GetFontHeight(this.Canvas, font, word);
1463
1507
  }
1508
+
1509
+ this.OnMouseDown=function(x,y,e) //Type: 2=行 3=表头
1510
+ {
1511
+ if (!this.Data) return null;
1512
+
1513
+ var pixelTatio = GetDevicePixelRatio();
1514
+ var insidePoint={X:x/pixelTatio, Y:y/pixelTatio};
1515
+ var uiElement;
1516
+ if (this.UIElement) uiElement={Left:this.UIElement.getBoundingClientRect().left, Top:this.UIElement.getBoundingClientRect().top};
1517
+ else uiElement={Left:null, Top:null};
1518
+
1519
+ var row=this.PtInBody(x,y);
1520
+ }
1521
+
1522
+ this.PtInBody=function(x,y)
1523
+ {
1524
+ if (!this.Data) return null;
1525
+ if (!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return null;
1526
+ }
1464
1527
  }
@@ -6982,7 +6982,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
6982
6982
  return this.Frame.ZoomIndexWindow(frameID, option);
6983
6983
  }
6984
6984
 
6985
- this.ShowIndexTitleOnly=function(frameID, option) //只显示指标的标题
6985
+ this.ShowIndexTitleOnly=function(frameID, option) //只显示指标的标题 option={ Enable:true/false }
6986
6986
  {
6987
6987
  if (frameID<0 || frameID>=this.Frame.SubFrame.length) return false;
6988
6988
  return this.Frame.ShowIndexTitleOnly(frameID, option);
@@ -19944,16 +19944,21 @@ function HQTradeFrame()
19944
19944
 
19945
19945
  this.RestoreIndexWindows();
19946
19946
 
19947
- if (subChartBorder.IsShowTitleOnly)
19947
+ var bChange=false;
19948
+ var bEnable=!subChartBorder.IsShowTitleOnly;
19949
+ if (option)
19948
19950
  {
19949
- subChartBorder.IsShowTitleOnly=false;
19951
+ if (IFrameSplitOperator.IsBool(option.Enable)) bEnable=option.Enable;
19950
19952
  }
19951
- else
19953
+
19954
+ if (subChartBorder.IsShowTitleOnly!=bEnable)
19952
19955
  {
19953
- subChartBorder.IsShowTitleOnly=true;
19956
+ subChartBorder.IsShowTitleOnly=bEnable;
19957
+ bChange=true;
19958
+
19954
19959
  }
19955
19960
 
19956
- return true;
19961
+ return bChange;
19957
19962
  }
19958
19963
 
19959
19964
  this.CalculateChartBorder=function() //计算每个子框架的边框信息
@@ -72461,7 +72466,7 @@ function JSChartResource()
72461
72466
  SortIcon:
72462
72467
  {
72463
72468
  Size:12, Family:"iconfont",
72464
- Arrow:["\ue704", "\ue81b", "\uf0c9"], //[0]=默认排序的图标背景色
72469
+ Arrow:["\ue704", "\uf0c9","\ue81b"], //[0]=默认排序的图标背景色
72465
72470
  Color:['rgb(169,169,169)', "rgb(51,51,51)", "rgb(51,51,51)"],
72466
72471
  Margin:{ Left:1*GetDevicePixelRatio(), Bottom:2, Right:0,}
72467
72472
  },
@@ -8578,7 +8578,7 @@ function ChartReport()
8578
8578
  return null;
8579
8579
  }
8580
8580
 
8581
- //设置选中行 data={ Symbol:, AutoYScroll:true/false Y滚动条自定定位 }
8581
+ //设置选中行 option={ Symbol:, AutoYScroll:true/false Y滚动条自定定位 }
8582
8582
  this.SetSelectedRow=function(option)
8583
8583
  {
8584
8584
  if (!option) return false;
@@ -10907,7 +10907,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
10907
10907
  return this.Frame.ZoomIndexWindow(frameID, option);
10908
10908
  }
10909
10909
 
10910
- this.ShowIndexTitleOnly=function(frameID, option) //只显示指标的标题
10910
+ this.ShowIndexTitleOnly=function(frameID, option) //只显示指标的标题 option={ Enable:true/false }
10911
10911
  {
10912
10912
  if (frameID<0 || frameID>=this.Frame.SubFrame.length) return false;
10913
10913
  return this.Frame.ShowIndexTitleOnly(frameID, option);
@@ -23869,16 +23869,21 @@ function HQTradeFrame()
23869
23869
 
23870
23870
  this.RestoreIndexWindows();
23871
23871
 
23872
- if (subChartBorder.IsShowTitleOnly)
23872
+ var bChange=false;
23873
+ var bEnable=!subChartBorder.IsShowTitleOnly;
23874
+ if (option)
23873
23875
  {
23874
- subChartBorder.IsShowTitleOnly=false;
23876
+ if (IFrameSplitOperator.IsBool(option.Enable)) bEnable=option.Enable;
23875
23877
  }
23876
- else
23878
+
23879
+ if (subChartBorder.IsShowTitleOnly!=bEnable)
23877
23880
  {
23878
- subChartBorder.IsShowTitleOnly=true;
23881
+ subChartBorder.IsShowTitleOnly=bEnable;
23882
+ bChange=true;
23883
+
23879
23884
  }
23880
23885
 
23881
- return true;
23886
+ return bChange;
23882
23887
  }
23883
23888
 
23884
23889
  this.CalculateChartBorder=function() //计算每个子框架的边框信息
@@ -76386,7 +76391,7 @@ function JSChartResource()
76386
76391
  SortIcon:
76387
76392
  {
76388
76393
  Size:12, Family:"iconfont",
76389
- Arrow:["\ue704", "\ue81b", "\uf0c9"], //[0]=默认排序的图标背景色
76394
+ Arrow:["\ue704", "\uf0c9","\ue81b"], //[0]=默认排序的图标背景色
76390
76395
  Color:['rgb(169,169,169)', "rgb(51,51,51)", "rgb(51,51,51)"],
76391
76396
  Margin:{ Left:1*GetDevicePixelRatio(), Bottom:2, Right:0,}
76392
76397
  },
@@ -124213,12 +124218,10 @@ function ScriptIndex(name,script,args,option)
124213
124218
  this.SetChartIndexName(chart);
124214
124219
  hqChart.ChartPaint.push(chart);
124215
124220
 
124216
- var titleIndex=windowIndex+1;
124217
- if (varItem.IsShowTitle===false)
124218
- {
124219
-
124220
- }
124221
- else
124221
+ var titleIndex=windowIndex+1;
124222
+ var bShowTitle=true;
124223
+ if (varItem.IsShowTitle===false) bShowTitle=false;
124224
+ if (bShowTitle)
124222
124225
  {
124223
124226
  var titleData=new DynamicTitleData(chart.Data,chart.Name, null);
124224
124227
  titleData.DataType="ChartMultiLine";
@@ -124244,10 +124247,15 @@ function ScriptIndex(name,script,args,option)
124244
124247
  hqChart.ChartPaint.push(chart);
124245
124248
 
124246
124249
  var titleIndex=windowIndex+1;
124247
- var titleData=new DynamicTitleData(chart.Data,chart.Name, null);
124248
- titleData.DataType="ChartMultiPoint";
124249
- titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
124250
- hqChart.TitlePaint[titleIndex].Data[i]=titleData;
124250
+ var bShowTitle=true;
124251
+ if (varItem.IsShowTitle===false) bShowTitle=false;
124252
+ if (bShowTitle)
124253
+ {
124254
+ var titleData=new DynamicTitleData(chart.Data,chart.Name, null);
124255
+ titleData.DataType="ChartMultiPoint";
124256
+ titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
124257
+ hqChart.TitlePaint[titleIndex].Data[i]=titleData;
124258
+ }
124251
124259
  }
124252
124260
 
124253
124261
  this.CreateMultiBar=function(hqChart,windowIndex,varItem,id)
@@ -124266,10 +124274,17 @@ function ScriptIndex(name,script,args,option)
124266
124274
  hqChart.ChartPaint.push(chart);
124267
124275
 
124268
124276
  var titleIndex=windowIndex+1;
124269
- var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);
124270
- titleData.DataType="ChartMultiBar";
124271
- titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
124272
- hqChart.TitlePaint[titleIndex].Data[id]=titleData;
124277
+
124278
+ var bShowTitle=true;
124279
+ if (varItem.IsShowTitle===false) bShowTitle=false;
124280
+ if (bShowTitle)
124281
+ {
124282
+ var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);
124283
+ titleData.DataType="ChartMultiBar";
124284
+ titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
124285
+ hqChart.TitlePaint[titleIndex].Data[id]=titleData;
124286
+ }
124287
+
124273
124288
  }
124274
124289
 
124275
124290
  this.CreateMultiText=function(hqChart,windowIndex,varItem,i)
@@ -125983,11 +125998,16 @@ function OverlayScriptIndex(name,script,args,option)
125983
125998
  chart.BuildCacheData();
125984
125999
 
125985
126000
  var titleIndex=windowIndex+1;
125986
- var titlePaint=hqChart.TitlePaint[titleIndex];
125987
- var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);
125988
- titleData.DataType="ChartMultiPoint";
125989
- titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
125990
- titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;
126001
+ var bShowTitle=true;
126002
+ if (varItem.IsShowTitle===false) bShowTitle=false;
126003
+ if (bShowTitle)
126004
+ {
126005
+ var titlePaint=hqChart.TitlePaint[titleIndex];
126006
+ var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);
126007
+ titleData.DataType="ChartMultiPoint";
126008
+ titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
126009
+ titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;
126010
+ }
125991
126011
 
125992
126012
  this.SetChartIndexName(chart);
125993
126013
 
@@ -126033,12 +126053,16 @@ function OverlayScriptIndex(name,script,args,option)
126033
126053
  chart.BuildCacheData();
126034
126054
 
126035
126055
  var titleIndex=windowIndex+1;
126036
- var titlePaint=hqChart.TitlePaint[titleIndex];
126037
- var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);
126038
- titleData.DataType="ChartMultiBar";
126039
- titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
126040
-
126041
- titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;
126056
+ var bShowTitle=true;
126057
+ if (varItem.IsShowTitle===false) bShowTitle=false;
126058
+ if (bShowTitle)
126059
+ {
126060
+ var titlePaint=hqChart.TitlePaint[titleIndex];
126061
+ var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);
126062
+ titleData.DataType="ChartMultiBar";
126063
+ titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
126064
+ titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;
126065
+ }
126042
126066
 
126043
126067
  this.SetChartIndexName(chart);
126044
126068
  frame.ChartPaint.push(chart);
@@ -129806,6 +129830,8 @@ function JSDealChartContainer(uielement)
129806
129830
 
129807
129831
  if (bRegisterKeydown) this.UIElement.addEventListener("keydown", (e)=>{ this.OnKeyDown(e); }, true); //键盘消息
129808
129832
  if (bRegisterWheel) this.UIElement.addEventListener("wheel", (e)=>{ this.OnWheel(e); }, true); //上下滚动消息
129833
+
129834
+ this.UIElement.onmousedown=(e)=> { this.UIOnMouseDown(e); }
129809
129835
  }
129810
129836
 
129811
129837
  this.Draw=function()
@@ -130179,6 +130205,32 @@ function JSDealChartContainer(uielement)
130179
130205
  else e.returnValue = false;
130180
130206
  }
130181
130207
 
130208
+ this.UIOnMouseDown=function(e)
130209
+ {
130210
+ var pixelTatio = GetDevicePixelRatio();
130211
+ var x = (e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;
130212
+ var y = (e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;
130213
+
130214
+
130215
+ var chart=this.ChartPaint[0];
130216
+ if (!chart) return;
130217
+
130218
+ /*
130219
+ var clickData=chart.OnMouseDown(x,y,e);
130220
+ if (!clickData) return;
130221
+
130222
+ if ((clickData.Type==2) && (e.button==0 || e.button==2)) //点击行
130223
+ {
130224
+ if (clickData.Redraw==true) this.Draw();
130225
+ }
130226
+ else if (clickData.Type==3 && e.button==0) //表头
130227
+ {
130228
+ this.OnClickHeader(clickData, e);
130229
+ }
130230
+ */
130231
+
130232
+ }
130233
+
130182
130234
  this.GotoNextPage=function()
130183
130235
  {
130184
130236
  if (!this.Data || !IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return false;
@@ -130272,7 +130324,7 @@ JSDealChartContainer.JsonDataToDealData=function(data)
130272
130324
  {
130273
130325
  var item=data.detail[i];
130274
130326
 
130275
- var dealItem={ Time:item[0], Price:item[1], Vol:item[2], BS:item[4], Amount:item[3] };
130327
+ var dealItem={ Time:item[0], Price:item[1], Vol:item[2], BS:item[4], Amount:item[3], Guid:Guid() };
130276
130328
  dealItem.Source=item;
130277
130329
 
130278
130330
  if (item[5]) dealItem.StrTime=item[5];
@@ -130398,6 +130450,7 @@ function ChartDealList()
130398
130450
  this.IsSingleTable=false; //单表模式
130399
130451
  this.IsShowHeader=true; //是否显示表头
130400
130452
  this.ShowOrder=1; //0=顺序 1=倒序
130453
+ this.SelectedData={ Index:10 }; //{ Index:序号 }
130401
130454
 
130402
130455
  this.SizeChange=true;
130403
130456
 
@@ -130408,6 +130461,8 @@ function ChartDealList()
130408
130461
 
130409
130462
  this.BorderColor=g_JSChartResource.DealList.BorderColor; //边框线
130410
130463
 
130464
+ this.SelectedConfig={ BGColor:"rgb(100,0,100)"};
130465
+
130411
130466
  //表头配置
130412
130467
  this.HeaderFontConfig={ Size:g_JSChartResource.DealList.Header.Font.Size, Name:g_JSChartResource.DealList.Header.Font.Name };
130413
130468
  this.HeaderColor=g_JSChartResource.DealList.Header.Color;
@@ -130702,6 +130757,7 @@ function ChartDealList()
130702
130757
  for(j=0;j<this.RowCount && index>=0;++j, --index)
130703
130758
  {
130704
130759
  var dataItem=this.Data.Data[index];
130760
+ if (this.SelectedData && this.SelectedData.Index==index) this.DrawSelectedRow(dataItem, textLeft-this.HeaderMergin.Left, textTop, index);
130705
130761
 
130706
130762
  this.DrawRow(dataItem, textLeft, textTop, index);
130707
130763
 
@@ -130719,6 +130775,8 @@ function ChartDealList()
130719
130775
  for(j=0;j<this.RowCount && index<dataCount;++j, ++index)
130720
130776
  {
130721
130777
  var dataItem=this.Data.Data[index];
130778
+
130779
+ if (this.SelectedData && this.SelectedData.Index==index) this.DrawSelectedRow(dataItem, textLeft-this.HeaderMergin.Left, textTop, index);
130722
130780
 
130723
130781
  this.DrawRow(dataItem, textLeft, textTop, index);
130724
130782
 
@@ -130826,6 +130884,16 @@ function ChartDealList()
130826
130884
  }
130827
130885
  }
130828
130886
 
130887
+ this.DrawSelectedRow=function(data, left, top, dataIndex, colIndex)
130888
+ {
130889
+ var rtRow={ Left:left, Top:top, Height:this.RowHeight, Width:this.TableWidth };
130890
+ rtRow.Right=rtRow.Left+rtRow.Width;
130891
+ rtRow.Bottom=rtRow.Top+rtRow.Bottom;
130892
+
130893
+ this.Canvas.fillStyle=this.SelectedConfig.BGColor;
130894
+ this.Canvas.fillRect(rtRow.Left,rtRow.Top, rtRow.Width, rtRow.Height);
130895
+ }
130896
+
130829
130897
  this.DrawItemText=function(text, textColor, textAlign, left, top, width)
130830
130898
  {
130831
130899
  var x=left;
@@ -130952,6 +131020,25 @@ function ChartDealList()
130952
131020
  {
130953
131021
  return GetFontHeight(this.Canvas, font, word);
130954
131022
  }
131023
+
131024
+ this.OnMouseDown=function(x,y,e) //Type: 2=行 3=表头
131025
+ {
131026
+ if (!this.Data) return null;
131027
+
131028
+ var pixelTatio = GetDevicePixelRatio();
131029
+ var insidePoint={X:x/pixelTatio, Y:y/pixelTatio};
131030
+ var uiElement;
131031
+ if (this.UIElement) uiElement={Left:this.UIElement.getBoundingClientRect().left, Top:this.UIElement.getBoundingClientRect().top};
131032
+ else uiElement={Left:null, Top:null};
131033
+
131034
+ var row=this.PtInBody(x,y);
131035
+ }
131036
+
131037
+ this.PtInBody=function(x,y)
131038
+ {
131039
+ if (!this.Data) return null;
131040
+ if (!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return null;
131041
+ }
130955
131042
  }
130956
131043
  /*
130957
131044
  Copyright (c) 2018 jones
@@ -139533,7 +139620,7 @@ function ChartReport()
139533
139620
  return null;
139534
139621
  }
139535
139622
 
139536
- //设置选中行 data={ Symbol:, AutoYScroll:true/false Y滚动条自定定位 }
139623
+ //设置选中行 option={ Symbol:, AutoYScroll:true/false Y滚动条自定定位 }
139537
139624
  this.SetSelectedRow=function(option)
139538
139625
  {
139539
139626
  if (!option) return false;
@@ -143705,7 +143792,7 @@ function ScrollBarBGChart()
143705
143792
 
143706
143793
 
143707
143794
 
143708
- var HQCHART_VERSION="1.1.14470";
143795
+ var HQCHART_VERSION="1.1.14477";
143709
143796
 
143710
143797
  function PrintHQChartVersion()
143711
143798
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.14470";
8
+ var HQCHART_VERSION="1.1.14477";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -10951,7 +10951,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
10951
10951
  return this.Frame.ZoomIndexWindow(frameID, option);
10952
10952
  }
10953
10953
 
10954
- this.ShowIndexTitleOnly=function(frameID, option) //只显示指标的标题
10954
+ this.ShowIndexTitleOnly=function(frameID, option) //只显示指标的标题 option={ Enable:true/false }
10955
10955
  {
10956
10956
  if (frameID<0 || frameID>=this.Frame.SubFrame.length) return false;
10957
10957
  return this.Frame.ShowIndexTitleOnly(frameID, option);
@@ -23913,16 +23913,21 @@ function HQTradeFrame()
23913
23913
 
23914
23914
  this.RestoreIndexWindows();
23915
23915
 
23916
- if (subChartBorder.IsShowTitleOnly)
23916
+ var bChange=false;
23917
+ var bEnable=!subChartBorder.IsShowTitleOnly;
23918
+ if (option)
23917
23919
  {
23918
- subChartBorder.IsShowTitleOnly=false;
23920
+ if (IFrameSplitOperator.IsBool(option.Enable)) bEnable=option.Enable;
23919
23921
  }
23920
- else
23922
+
23923
+ if (subChartBorder.IsShowTitleOnly!=bEnable)
23921
23924
  {
23922
- subChartBorder.IsShowTitleOnly=true;
23925
+ subChartBorder.IsShowTitleOnly=bEnable;
23926
+ bChange=true;
23927
+
23923
23928
  }
23924
23929
 
23925
- return true;
23930
+ return bChange;
23926
23931
  }
23927
23932
 
23928
23933
  this.CalculateChartBorder=function() //计算每个子框架的边框信息
@@ -76430,7 +76435,7 @@ function JSChartResource()
76430
76435
  SortIcon:
76431
76436
  {
76432
76437
  Size:12, Family:"iconfont",
76433
- Arrow:["\ue704", "\ue81b", "\uf0c9"], //[0]=默认排序的图标背景色
76438
+ Arrow:["\ue704", "\uf0c9","\ue81b"], //[0]=默认排序的图标背景色
76434
76439
  Color:['rgb(169,169,169)', "rgb(51,51,51)", "rgb(51,51,51)"],
76435
76440
  Margin:{ Left:1*GetDevicePixelRatio(), Bottom:2, Right:0,}
76436
76441
  },
@@ -124257,12 +124262,10 @@ function ScriptIndex(name,script,args,option)
124257
124262
  this.SetChartIndexName(chart);
124258
124263
  hqChart.ChartPaint.push(chart);
124259
124264
 
124260
- var titleIndex=windowIndex+1;
124261
- if (varItem.IsShowTitle===false)
124262
- {
124263
-
124264
- }
124265
- else
124265
+ var titleIndex=windowIndex+1;
124266
+ var bShowTitle=true;
124267
+ if (varItem.IsShowTitle===false) bShowTitle=false;
124268
+ if (bShowTitle)
124266
124269
  {
124267
124270
  var titleData=new DynamicTitleData(chart.Data,chart.Name, null);
124268
124271
  titleData.DataType="ChartMultiLine";
@@ -124288,10 +124291,15 @@ function ScriptIndex(name,script,args,option)
124288
124291
  hqChart.ChartPaint.push(chart);
124289
124292
 
124290
124293
  var titleIndex=windowIndex+1;
124291
- var titleData=new DynamicTitleData(chart.Data,chart.Name, null);
124292
- titleData.DataType="ChartMultiPoint";
124293
- titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
124294
- hqChart.TitlePaint[titleIndex].Data[i]=titleData;
124294
+ var bShowTitle=true;
124295
+ if (varItem.IsShowTitle===false) bShowTitle=false;
124296
+ if (bShowTitle)
124297
+ {
124298
+ var titleData=new DynamicTitleData(chart.Data,chart.Name, null);
124299
+ titleData.DataType="ChartMultiPoint";
124300
+ titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
124301
+ hqChart.TitlePaint[titleIndex].Data[i]=titleData;
124302
+ }
124295
124303
  }
124296
124304
 
124297
124305
  this.CreateMultiBar=function(hqChart,windowIndex,varItem,id)
@@ -124310,10 +124318,17 @@ function ScriptIndex(name,script,args,option)
124310
124318
  hqChart.ChartPaint.push(chart);
124311
124319
 
124312
124320
  var titleIndex=windowIndex+1;
124313
- var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);
124314
- titleData.DataType="ChartMultiBar";
124315
- titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
124316
- hqChart.TitlePaint[titleIndex].Data[id]=titleData;
124321
+
124322
+ var bShowTitle=true;
124323
+ if (varItem.IsShowTitle===false) bShowTitle=false;
124324
+ if (bShowTitle)
124325
+ {
124326
+ var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);
124327
+ titleData.DataType="ChartMultiBar";
124328
+ titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
124329
+ hqChart.TitlePaint[titleIndex].Data[id]=titleData;
124330
+ }
124331
+
124317
124332
  }
124318
124333
 
124319
124334
  this.CreateMultiText=function(hqChart,windowIndex,varItem,i)
@@ -126027,11 +126042,16 @@ function OverlayScriptIndex(name,script,args,option)
126027
126042
  chart.BuildCacheData();
126028
126043
 
126029
126044
  var titleIndex=windowIndex+1;
126030
- var titlePaint=hqChart.TitlePaint[titleIndex];
126031
- var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);
126032
- titleData.DataType="ChartMultiPoint";
126033
- titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
126034
- titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;
126045
+ var bShowTitle=true;
126046
+ if (varItem.IsShowTitle===false) bShowTitle=false;
126047
+ if (bShowTitle)
126048
+ {
126049
+ var titlePaint=hqChart.TitlePaint[titleIndex];
126050
+ var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);
126051
+ titleData.DataType="ChartMultiPoint";
126052
+ titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
126053
+ titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;
126054
+ }
126035
126055
 
126036
126056
  this.SetChartIndexName(chart);
126037
126057
 
@@ -126077,12 +126097,16 @@ function OverlayScriptIndex(name,script,args,option)
126077
126097
  chart.BuildCacheData();
126078
126098
 
126079
126099
  var titleIndex=windowIndex+1;
126080
- var titlePaint=hqChart.TitlePaint[titleIndex];
126081
- var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);
126082
- titleData.DataType="ChartMultiBar";
126083
- titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
126084
-
126085
- titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;
126100
+ var bShowTitle=true;
126101
+ if (varItem.IsShowTitle===false) bShowTitle=false;
126102
+ if (bShowTitle)
126103
+ {
126104
+ var titlePaint=hqChart.TitlePaint[titleIndex];
126105
+ var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);
126106
+ titleData.DataType="ChartMultiBar";
126107
+ titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
126108
+ titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;
126109
+ }
126086
126110
 
126087
126111
  this.SetChartIndexName(chart);
126088
126112
  frame.ChartPaint.push(chart);
@@ -129850,6 +129874,8 @@ function JSDealChartContainer(uielement)
129850
129874
 
129851
129875
  if (bRegisterKeydown) this.UIElement.addEventListener("keydown", (e)=>{ this.OnKeyDown(e); }, true); //键盘消息
129852
129876
  if (bRegisterWheel) this.UIElement.addEventListener("wheel", (e)=>{ this.OnWheel(e); }, true); //上下滚动消息
129877
+
129878
+ this.UIElement.onmousedown=(e)=> { this.UIOnMouseDown(e); }
129853
129879
  }
129854
129880
 
129855
129881
  this.Draw=function()
@@ -130223,6 +130249,32 @@ function JSDealChartContainer(uielement)
130223
130249
  else e.returnValue = false;
130224
130250
  }
130225
130251
 
130252
+ this.UIOnMouseDown=function(e)
130253
+ {
130254
+ var pixelTatio = GetDevicePixelRatio();
130255
+ var x = (e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;
130256
+ var y = (e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;
130257
+
130258
+
130259
+ var chart=this.ChartPaint[0];
130260
+ if (!chart) return;
130261
+
130262
+ /*
130263
+ var clickData=chart.OnMouseDown(x,y,e);
130264
+ if (!clickData) return;
130265
+
130266
+ if ((clickData.Type==2) && (e.button==0 || e.button==2)) //点击行
130267
+ {
130268
+ if (clickData.Redraw==true) this.Draw();
130269
+ }
130270
+ else if (clickData.Type==3 && e.button==0) //表头
130271
+ {
130272
+ this.OnClickHeader(clickData, e);
130273
+ }
130274
+ */
130275
+
130276
+ }
130277
+
130226
130278
  this.GotoNextPage=function()
130227
130279
  {
130228
130280
  if (!this.Data || !IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return false;
@@ -130316,7 +130368,7 @@ JSDealChartContainer.JsonDataToDealData=function(data)
130316
130368
  {
130317
130369
  var item=data.detail[i];
130318
130370
 
130319
- var dealItem={ Time:item[0], Price:item[1], Vol:item[2], BS:item[4], Amount:item[3] };
130371
+ var dealItem={ Time:item[0], Price:item[1], Vol:item[2], BS:item[4], Amount:item[3], Guid:Guid() };
130320
130372
  dealItem.Source=item;
130321
130373
 
130322
130374
  if (item[5]) dealItem.StrTime=item[5];
@@ -130442,6 +130494,7 @@ function ChartDealList()
130442
130494
  this.IsSingleTable=false; //单表模式
130443
130495
  this.IsShowHeader=true; //是否显示表头
130444
130496
  this.ShowOrder=1; //0=顺序 1=倒序
130497
+ this.SelectedData={ Index:10 }; //{ Index:序号 }
130445
130498
 
130446
130499
  this.SizeChange=true;
130447
130500
 
@@ -130452,6 +130505,8 @@ function ChartDealList()
130452
130505
 
130453
130506
  this.BorderColor=g_JSChartResource.DealList.BorderColor; //边框线
130454
130507
 
130508
+ this.SelectedConfig={ BGColor:"rgb(100,0,100)"};
130509
+
130455
130510
  //表头配置
130456
130511
  this.HeaderFontConfig={ Size:g_JSChartResource.DealList.Header.Font.Size, Name:g_JSChartResource.DealList.Header.Font.Name };
130457
130512
  this.HeaderColor=g_JSChartResource.DealList.Header.Color;
@@ -130746,6 +130801,7 @@ function ChartDealList()
130746
130801
  for(j=0;j<this.RowCount && index>=0;++j, --index)
130747
130802
  {
130748
130803
  var dataItem=this.Data.Data[index];
130804
+ if (this.SelectedData && this.SelectedData.Index==index) this.DrawSelectedRow(dataItem, textLeft-this.HeaderMergin.Left, textTop, index);
130749
130805
 
130750
130806
  this.DrawRow(dataItem, textLeft, textTop, index);
130751
130807
 
@@ -130763,6 +130819,8 @@ function ChartDealList()
130763
130819
  for(j=0;j<this.RowCount && index<dataCount;++j, ++index)
130764
130820
  {
130765
130821
  var dataItem=this.Data.Data[index];
130822
+
130823
+ if (this.SelectedData && this.SelectedData.Index==index) this.DrawSelectedRow(dataItem, textLeft-this.HeaderMergin.Left, textTop, index);
130766
130824
 
130767
130825
  this.DrawRow(dataItem, textLeft, textTop, index);
130768
130826
 
@@ -130870,6 +130928,16 @@ function ChartDealList()
130870
130928
  }
130871
130929
  }
130872
130930
 
130931
+ this.DrawSelectedRow=function(data, left, top, dataIndex, colIndex)
130932
+ {
130933
+ var rtRow={ Left:left, Top:top, Height:this.RowHeight, Width:this.TableWidth };
130934
+ rtRow.Right=rtRow.Left+rtRow.Width;
130935
+ rtRow.Bottom=rtRow.Top+rtRow.Bottom;
130936
+
130937
+ this.Canvas.fillStyle=this.SelectedConfig.BGColor;
130938
+ this.Canvas.fillRect(rtRow.Left,rtRow.Top, rtRow.Width, rtRow.Height);
130939
+ }
130940
+
130873
130941
  this.DrawItemText=function(text, textColor, textAlign, left, top, width)
130874
130942
  {
130875
130943
  var x=left;
@@ -130996,6 +131064,25 @@ function ChartDealList()
130996
131064
  {
130997
131065
  return GetFontHeight(this.Canvas, font, word);
130998
131066
  }
131067
+
131068
+ this.OnMouseDown=function(x,y,e) //Type: 2=行 3=表头
131069
+ {
131070
+ if (!this.Data) return null;
131071
+
131072
+ var pixelTatio = GetDevicePixelRatio();
131073
+ var insidePoint={X:x/pixelTatio, Y:y/pixelTatio};
131074
+ var uiElement;
131075
+ if (this.UIElement) uiElement={Left:this.UIElement.getBoundingClientRect().left, Top:this.UIElement.getBoundingClientRect().top};
131076
+ else uiElement={Left:null, Top:null};
131077
+
131078
+ var row=this.PtInBody(x,y);
131079
+ }
131080
+
131081
+ this.PtInBody=function(x,y)
131082
+ {
131083
+ if (!this.Data) return null;
131084
+ if (!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return null;
131085
+ }
130999
131086
  }
131000
131087
  /*
131001
131088
  Copyright (c) 2018 jones
@@ -139577,7 +139664,7 @@ function ChartReport()
139577
139664
  return null;
139578
139665
  }
139579
139666
 
139580
- //设置选中行 data={ Symbol:, AutoYScroll:true/false Y滚动条自定定位 }
139667
+ //设置选中行 option={ Symbol:, AutoYScroll:true/false Y滚动条自定定位 }
139581
139668
  this.SetSelectedRow=function(option)
139582
139669
  {
139583
139670
  if (!option) return false;
@@ -153517,7 +153604,7 @@ function HQChartScriptWorker()
153517
153604
 
153518
153605
 
153519
153606
 
153520
- var HQCHART_VERSION="1.1.14470";
153607
+ var HQCHART_VERSION="1.1.14477";
153521
153608
 
153522
153609
  function PrintHQChartVersion()
153523
153610
  {