hqchart 1.1.14473 → 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)//多日分时+多日集合竞价
@@ -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.14472";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.14473",
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);
@@ -72466,7 +72466,7 @@ function JSChartResource()
72466
72466
  SortIcon:
72467
72467
  {
72468
72468
  Size:12, Family:"iconfont",
72469
- Arrow:["\ue704", "\ue81b", "\uf0c9"], //[0]=默认排序的图标背景色
72469
+ Arrow:["\ue704", "\uf0c9","\ue81b"], //[0]=默认排序的图标背景色
72470
72470
  Color:['rgb(169,169,169)', "rgb(51,51,51)", "rgb(51,51,51)"],
72471
72471
  Margin:{ Left:1*GetDevicePixelRatio(), Bottom:2, Right:0,}
72472
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);
@@ -76391,7 +76391,7 @@ function JSChartResource()
76391
76391
  SortIcon:
76392
76392
  {
76393
76393
  Size:12, Family:"iconfont",
76394
- Arrow:["\ue704", "\ue81b", "\uf0c9"], //[0]=默认排序的图标背景色
76394
+ Arrow:["\ue704", "\uf0c9","\ue81b"], //[0]=默认排序的图标背景色
76395
76395
  Color:['rgb(169,169,169)', "rgb(51,51,51)", "rgb(51,51,51)"],
76396
76396
  Margin:{ Left:1*GetDevicePixelRatio(), Bottom:2, Right:0,}
76397
76397
  },
@@ -124218,12 +124218,10 @@ function ScriptIndex(name,script,args,option)
124218
124218
  this.SetChartIndexName(chart);
124219
124219
  hqChart.ChartPaint.push(chart);
124220
124220
 
124221
- var titleIndex=windowIndex+1;
124222
- if (varItem.IsShowTitle===false)
124223
- {
124224
-
124225
- }
124226
- else
124221
+ var titleIndex=windowIndex+1;
124222
+ var bShowTitle=true;
124223
+ if (varItem.IsShowTitle===false) bShowTitle=false;
124224
+ if (bShowTitle)
124227
124225
  {
124228
124226
  var titleData=new DynamicTitleData(chart.Data,chart.Name, null);
124229
124227
  titleData.DataType="ChartMultiLine";
@@ -124249,10 +124247,15 @@ function ScriptIndex(name,script,args,option)
124249
124247
  hqChart.ChartPaint.push(chart);
124250
124248
 
124251
124249
  var titleIndex=windowIndex+1;
124252
- var titleData=new DynamicTitleData(chart.Data,chart.Name, null);
124253
- titleData.DataType="ChartMultiPoint";
124254
- titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
124255
- 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
+ }
124256
124259
  }
124257
124260
 
124258
124261
  this.CreateMultiBar=function(hqChart,windowIndex,varItem,id)
@@ -124271,10 +124274,17 @@ function ScriptIndex(name,script,args,option)
124271
124274
  hqChart.ChartPaint.push(chart);
124272
124275
 
124273
124276
  var titleIndex=windowIndex+1;
124274
- var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);
124275
- titleData.DataType="ChartMultiBar";
124276
- titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
124277
- 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
+
124278
124288
  }
124279
124289
 
124280
124290
  this.CreateMultiText=function(hqChart,windowIndex,varItem,i)
@@ -125988,11 +125998,16 @@ function OverlayScriptIndex(name,script,args,option)
125988
125998
  chart.BuildCacheData();
125989
125999
 
125990
126000
  var titleIndex=windowIndex+1;
125991
- var titlePaint=hqChart.TitlePaint[titleIndex];
125992
- var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);
125993
- titleData.DataType="ChartMultiPoint";
125994
- titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
125995
- 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
+ }
125996
126011
 
125997
126012
  this.SetChartIndexName(chart);
125998
126013
 
@@ -126038,12 +126053,16 @@ function OverlayScriptIndex(name,script,args,option)
126038
126053
  chart.BuildCacheData();
126039
126054
 
126040
126055
  var titleIndex=windowIndex+1;
126041
- var titlePaint=hqChart.TitlePaint[titleIndex];
126042
- var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);
126043
- titleData.DataType="ChartMultiBar";
126044
- titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
126045
-
126046
- 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
+ }
126047
126066
 
126048
126067
  this.SetChartIndexName(chart);
126049
126068
  frame.ChartPaint.push(chart);
@@ -129811,6 +129830,8 @@ function JSDealChartContainer(uielement)
129811
129830
 
129812
129831
  if (bRegisterKeydown) this.UIElement.addEventListener("keydown", (e)=>{ this.OnKeyDown(e); }, true); //键盘消息
129813
129832
  if (bRegisterWheel) this.UIElement.addEventListener("wheel", (e)=>{ this.OnWheel(e); }, true); //上下滚动消息
129833
+
129834
+ this.UIElement.onmousedown=(e)=> { this.UIOnMouseDown(e); }
129814
129835
  }
129815
129836
 
129816
129837
  this.Draw=function()
@@ -130184,6 +130205,32 @@ function JSDealChartContainer(uielement)
130184
130205
  else e.returnValue = false;
130185
130206
  }
130186
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
+
130187
130234
  this.GotoNextPage=function()
130188
130235
  {
130189
130236
  if (!this.Data || !IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return false;
@@ -130277,7 +130324,7 @@ JSDealChartContainer.JsonDataToDealData=function(data)
130277
130324
  {
130278
130325
  var item=data.detail[i];
130279
130326
 
130280
- 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() };
130281
130328
  dealItem.Source=item;
130282
130329
 
130283
130330
  if (item[5]) dealItem.StrTime=item[5];
@@ -130403,6 +130450,7 @@ function ChartDealList()
130403
130450
  this.IsSingleTable=false; //单表模式
130404
130451
  this.IsShowHeader=true; //是否显示表头
130405
130452
  this.ShowOrder=1; //0=顺序 1=倒序
130453
+ this.SelectedData={ Index:10 }; //{ Index:序号 }
130406
130454
 
130407
130455
  this.SizeChange=true;
130408
130456
 
@@ -130413,6 +130461,8 @@ function ChartDealList()
130413
130461
 
130414
130462
  this.BorderColor=g_JSChartResource.DealList.BorderColor; //边框线
130415
130463
 
130464
+ this.SelectedConfig={ BGColor:"rgb(100,0,100)"};
130465
+
130416
130466
  //表头配置
130417
130467
  this.HeaderFontConfig={ Size:g_JSChartResource.DealList.Header.Font.Size, Name:g_JSChartResource.DealList.Header.Font.Name };
130418
130468
  this.HeaderColor=g_JSChartResource.DealList.Header.Color;
@@ -130707,6 +130757,7 @@ function ChartDealList()
130707
130757
  for(j=0;j<this.RowCount && index>=0;++j, --index)
130708
130758
  {
130709
130759
  var dataItem=this.Data.Data[index];
130760
+ if (this.SelectedData && this.SelectedData.Index==index) this.DrawSelectedRow(dataItem, textLeft-this.HeaderMergin.Left, textTop, index);
130710
130761
 
130711
130762
  this.DrawRow(dataItem, textLeft, textTop, index);
130712
130763
 
@@ -130724,6 +130775,8 @@ function ChartDealList()
130724
130775
  for(j=0;j<this.RowCount && index<dataCount;++j, ++index)
130725
130776
  {
130726
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);
130727
130780
 
130728
130781
  this.DrawRow(dataItem, textLeft, textTop, index);
130729
130782
 
@@ -130831,6 +130884,16 @@ function ChartDealList()
130831
130884
  }
130832
130885
  }
130833
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
+
130834
130897
  this.DrawItemText=function(text, textColor, textAlign, left, top, width)
130835
130898
  {
130836
130899
  var x=left;
@@ -130957,6 +131020,25 @@ function ChartDealList()
130957
131020
  {
130958
131021
  return GetFontHeight(this.Canvas, font, word);
130959
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
+ }
130960
131042
  }
130961
131043
  /*
130962
131044
  Copyright (c) 2018 jones
@@ -139538,7 +139620,7 @@ function ChartReport()
139538
139620
  return null;
139539
139621
  }
139540
139622
 
139541
- //设置选中行 data={ Symbol:, AutoYScroll:true/false Y滚动条自定定位 }
139623
+ //设置选中行 option={ Symbol:, AutoYScroll:true/false Y滚动条自定定位 }
139542
139624
  this.SetSelectedRow=function(option)
139543
139625
  {
139544
139626
  if (!option) return false;
@@ -143710,7 +143792,7 @@ function ScrollBarBGChart()
143710
143792
 
143711
143793
 
143712
143794
 
143713
- var HQCHART_VERSION="1.1.14472";
143795
+ var HQCHART_VERSION="1.1.14477";
143714
143796
 
143715
143797
  function PrintHQChartVersion()
143716
143798
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.14472";
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);
@@ -76435,7 +76435,7 @@ function JSChartResource()
76435
76435
  SortIcon:
76436
76436
  {
76437
76437
  Size:12, Family:"iconfont",
76438
- Arrow:["\ue704", "\ue81b", "\uf0c9"], //[0]=默认排序的图标背景色
76438
+ Arrow:["\ue704", "\uf0c9","\ue81b"], //[0]=默认排序的图标背景色
76439
76439
  Color:['rgb(169,169,169)', "rgb(51,51,51)", "rgb(51,51,51)"],
76440
76440
  Margin:{ Left:1*GetDevicePixelRatio(), Bottom:2, Right:0,}
76441
76441
  },
@@ -124262,12 +124262,10 @@ function ScriptIndex(name,script,args,option)
124262
124262
  this.SetChartIndexName(chart);
124263
124263
  hqChart.ChartPaint.push(chart);
124264
124264
 
124265
- var titleIndex=windowIndex+1;
124266
- if (varItem.IsShowTitle===false)
124267
- {
124268
-
124269
- }
124270
- else
124265
+ var titleIndex=windowIndex+1;
124266
+ var bShowTitle=true;
124267
+ if (varItem.IsShowTitle===false) bShowTitle=false;
124268
+ if (bShowTitle)
124271
124269
  {
124272
124270
  var titleData=new DynamicTitleData(chart.Data,chart.Name, null);
124273
124271
  titleData.DataType="ChartMultiLine";
@@ -124293,10 +124291,15 @@ function ScriptIndex(name,script,args,option)
124293
124291
  hqChart.ChartPaint.push(chart);
124294
124292
 
124295
124293
  var titleIndex=windowIndex+1;
124296
- var titleData=new DynamicTitleData(chart.Data,chart.Name, null);
124297
- titleData.DataType="ChartMultiPoint";
124298
- titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
124299
- 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
+ }
124300
124303
  }
124301
124304
 
124302
124305
  this.CreateMultiBar=function(hqChart,windowIndex,varItem,id)
@@ -124315,10 +124318,17 @@ function ScriptIndex(name,script,args,option)
124315
124318
  hqChart.ChartPaint.push(chart);
124316
124319
 
124317
124320
  var titleIndex=windowIndex+1;
124318
- var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);
124319
- titleData.DataType="ChartMultiBar";
124320
- titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
124321
- 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
+
124322
124332
  }
124323
124333
 
124324
124334
  this.CreateMultiText=function(hqChart,windowIndex,varItem,i)
@@ -126032,11 +126042,16 @@ function OverlayScriptIndex(name,script,args,option)
126032
126042
  chart.BuildCacheData();
126033
126043
 
126034
126044
  var titleIndex=windowIndex+1;
126035
- var titlePaint=hqChart.TitlePaint[titleIndex];
126036
- var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);
126037
- titleData.DataType="ChartMultiPoint";
126038
- titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
126039
- 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
+ }
126040
126055
 
126041
126056
  this.SetChartIndexName(chart);
126042
126057
 
@@ -126082,12 +126097,16 @@ function OverlayScriptIndex(name,script,args,option)
126082
126097
  chart.BuildCacheData();
126083
126098
 
126084
126099
  var titleIndex=windowIndex+1;
126085
- var titlePaint=hqChart.TitlePaint[titleIndex];
126086
- var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);
126087
- titleData.DataType="ChartMultiBar";
126088
- titleData.GetItemCallback=(kItem)=>{ return chart.GetItem(kItem); }
126089
-
126090
- 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
+ }
126091
126110
 
126092
126111
  this.SetChartIndexName(chart);
126093
126112
  frame.ChartPaint.push(chart);
@@ -129855,6 +129874,8 @@ function JSDealChartContainer(uielement)
129855
129874
 
129856
129875
  if (bRegisterKeydown) this.UIElement.addEventListener("keydown", (e)=>{ this.OnKeyDown(e); }, true); //键盘消息
129857
129876
  if (bRegisterWheel) this.UIElement.addEventListener("wheel", (e)=>{ this.OnWheel(e); }, true); //上下滚动消息
129877
+
129878
+ this.UIElement.onmousedown=(e)=> { this.UIOnMouseDown(e); }
129858
129879
  }
129859
129880
 
129860
129881
  this.Draw=function()
@@ -130228,6 +130249,32 @@ function JSDealChartContainer(uielement)
130228
130249
  else e.returnValue = false;
130229
130250
  }
130230
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
+
130231
130278
  this.GotoNextPage=function()
130232
130279
  {
130233
130280
  if (!this.Data || !IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return false;
@@ -130321,7 +130368,7 @@ JSDealChartContainer.JsonDataToDealData=function(data)
130321
130368
  {
130322
130369
  var item=data.detail[i];
130323
130370
 
130324
- 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() };
130325
130372
  dealItem.Source=item;
130326
130373
 
130327
130374
  if (item[5]) dealItem.StrTime=item[5];
@@ -130447,6 +130494,7 @@ function ChartDealList()
130447
130494
  this.IsSingleTable=false; //单表模式
130448
130495
  this.IsShowHeader=true; //是否显示表头
130449
130496
  this.ShowOrder=1; //0=顺序 1=倒序
130497
+ this.SelectedData={ Index:10 }; //{ Index:序号 }
130450
130498
 
130451
130499
  this.SizeChange=true;
130452
130500
 
@@ -130457,6 +130505,8 @@ function ChartDealList()
130457
130505
 
130458
130506
  this.BorderColor=g_JSChartResource.DealList.BorderColor; //边框线
130459
130507
 
130508
+ this.SelectedConfig={ BGColor:"rgb(100,0,100)"};
130509
+
130460
130510
  //表头配置
130461
130511
  this.HeaderFontConfig={ Size:g_JSChartResource.DealList.Header.Font.Size, Name:g_JSChartResource.DealList.Header.Font.Name };
130462
130512
  this.HeaderColor=g_JSChartResource.DealList.Header.Color;
@@ -130751,6 +130801,7 @@ function ChartDealList()
130751
130801
  for(j=0;j<this.RowCount && index>=0;++j, --index)
130752
130802
  {
130753
130803
  var dataItem=this.Data.Data[index];
130804
+ if (this.SelectedData && this.SelectedData.Index==index) this.DrawSelectedRow(dataItem, textLeft-this.HeaderMergin.Left, textTop, index);
130754
130805
 
130755
130806
  this.DrawRow(dataItem, textLeft, textTop, index);
130756
130807
 
@@ -130768,6 +130819,8 @@ function ChartDealList()
130768
130819
  for(j=0;j<this.RowCount && index<dataCount;++j, ++index)
130769
130820
  {
130770
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);
130771
130824
 
130772
130825
  this.DrawRow(dataItem, textLeft, textTop, index);
130773
130826
 
@@ -130875,6 +130928,16 @@ function ChartDealList()
130875
130928
  }
130876
130929
  }
130877
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
+
130878
130941
  this.DrawItemText=function(text, textColor, textAlign, left, top, width)
130879
130942
  {
130880
130943
  var x=left;
@@ -131001,6 +131064,25 @@ function ChartDealList()
131001
131064
  {
131002
131065
  return GetFontHeight(this.Canvas, font, word);
131003
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
+ }
131004
131086
  }
131005
131087
  /*
131006
131088
  Copyright (c) 2018 jones
@@ -139582,7 +139664,7 @@ function ChartReport()
139582
139664
  return null;
139583
139665
  }
139584
139666
 
139585
- //设置选中行 data={ Symbol:, AutoYScroll:true/false Y滚动条自定定位 }
139667
+ //设置选中行 option={ Symbol:, AutoYScroll:true/false Y滚动条自定定位 }
139586
139668
  this.SetSelectedRow=function(option)
139587
139669
  {
139588
139670
  if (!option) return false;
@@ -153522,7 +153604,7 @@ function HQChartScriptWorker()
153522
153604
 
153523
153605
 
153524
153606
 
153525
- var HQCHART_VERSION="1.1.14472";
153607
+ var HQCHART_VERSION="1.1.14477";
153526
153608
 
153527
153609
  function PrintHQChartVersion()
153528
153610
  {