hqchart 1.1.15223 → 1.1.15229

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.
@@ -2364,9 +2364,10 @@ for(var i=0;i<data.length;++i){var item=data[i];strRow+='"'+item.Name+'"';if(i==
2364
2364
  this.ResetFrameXYSplit();this.Frame.SetSizeChage(true);this.Draw();if(this.PopMinuteChart)this.PopMinuteChart.SetLanguage(language);};this.ReloadTiltePaintResource=function(resource)//重新加载配置
2365
2365
  {for(var i in this.TitlePaint){var item=this.TitlePaint[i];if(item.ReloadResource)item.ReloadResource(resource);}};this.ReloadExtendChartPaintResource=function(resource)//扩展画法重新加载配置
2366
2366
  {for(var i=0;i<this.ExtendChartPaint.length;++i){var item=this.ExtendChartPaint[i];if(item.ReloadResource)item.ReloadResource(resource);}if(this.ChartDragSelectRect&&this.ChartDragSelectRect.ReloadResource)this.ChartDragSelectRect.ReloadResource(resource);};this.ReloadChartDrawPictureResource=function(resource){if(!IFrameSplitOperator.IsNonEmptyArray(this.ChartDrawPicture))return;for(var i=0;i<this.ChartDrawPicture.length;++i){var item=this.ChartDrawPicture[i];if(item.ReloadResource)item.ReloadResource(resource);}};this.ReloadResource=function(option){this.ReloadBorder(option);this.ReloadTiltePaintResource(option.Resource);this.ReloadChartPaint(option.Resource);this.ReloadFrame(option.Resource);this.ReloadExtendChartPaintResource(option.Resource);this.ReloadChartCorssCursor(option,option.Resource);this.ReloadChartDrawPictureResource(option.Resource);var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_RELOAD_RESOURCE);//配色重新加载
2367
- if(event&&event.Callback){var sendData={Option:option};event.Callback(event,sendData,this);}if(option.Update&&this.Update)this.Update({UpdateCursorIndexType:2});//是否立即更新并重绘
2368
- else if(option.Draw==true||option.Redraw==true)this.Draw();//是否立即重绘
2369
- if(this.PopMinuteChart)this.PopMinuteChart.ReloadResource(option);if(this.DialogTooltip)this.DialogTooltip.ReloadResource(option);if(this.FloatTooltip)this.FloatTooltip.ReloadResource(option);if(this.DialogSelectRect)this.DialogSelectRect.ReloadResource(option);if(this.DialogSearchIndex)this.DialogSearchIndex.ReloadResource(option);};this.ReloadBorder=function(option)//根据页面缩放调整对应边框的尺长
2367
+ if(event&&event.Callback){var sendData={Option:option};event.Callback(event,sendData,this);}if(option.Update&&this.Update){this.Update({UpdateCursorIndexType:2});//是否立即更新并重绘
2368
+ }else if(option.Draw==true||option.Redraw==true){this.ResetFrameXYSplit();//重新计算分割线
2369
+ this.Draw();//是否立即重绘
2370
+ }if(this.PopMinuteChart)this.PopMinuteChart.ReloadResource(option);if(this.DialogTooltip)this.DialogTooltip.ReloadResource(option);if(this.FloatTooltip)this.FloatTooltip.ReloadResource(option);if(this.DialogSelectRect)this.DialogSelectRect.ReloadResource(option);if(this.DialogSearchIndex)this.DialogSearchIndex.ReloadResource(option);};this.ReloadBorder=function(option)//根据页面缩放调整对应边框的尺长
2370
2371
  {if(!option)return;var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
2371
2372
  if(option.Border){var item=option.Border;if(IFrameSplitOperator.IsNumber(item.Left))this.Frame.ChartBorder.Left=item.Left*pixelTatio;if(IFrameSplitOperator.IsNumber(item.Right))this.Frame.ChartBorder.Right=item.Right*pixelTatio;if(IFrameSplitOperator.IsNumber(item.Top))this.Frame.ChartBorder.Top=item.Top*pixelTatio;if(IFrameSplitOperator.IsNumber(item.Bottom))this.Frame.ChartBorder.Bottom=item.Bottom*pixelTatio;}for(var i in option.Windows){var item=option.Windows[i];if(i>=this.Frame.SubFrame.length)continue;var subFrame=this.Frame.SubFrame[i];var border=subFrame.Frame.ChartBorder;if(IFrameSplitOperator.IsNumber(item.TitleHeight))border.TitleHeight=item.TitleHeight*pixelTatio;}for(var i in option.Frame){var item=option.Frame[i];if(i>=this.Frame.SubFrame.length)continue;var subFrame=this.Frame.SubFrame[i];var border=subFrame.Frame.ChartBorder;if(item.TopSpace>=0)border.TopSpace=item.TopSpace*pixelTatio;if(item.BottomSpace>=0)border.BottomSpace=item.BottomSpace*pixelTatio;}};this.ReloadFrame=function(resource){for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i];var subFrame=item.Frame;if(subFrame&&subFrame.ReloadResource)subFrame.ReloadResource(resource);for(var j=0;j<item.OverlayIndex.length;++j){var overlayItem=item.OverlayIndex[j];if(overlayItem.Frame&&overlayItem.Frame.ReloadResource)overlayItem.Frame.ReloadResource(resource);}}if(this.JSToolbarTooltip)this.JSToolbarTooltip.ReloadResource(resource);//工具栏提示框
2372
2373
  };this.ReloadChartPaint=function(resource){for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(item&&item.ReloadResource)item.ReloadResource(resource);}};this.ReloadChartCorssCursor=function(option,resource){var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
@@ -2685,6 +2686,8 @@ this.AreaData;//区域: { Start:, End:, BGColor:, Position:[0=左, 1=右] }
2685
2686
  //this.OutRange={ BGColor:"", TextColor:, BorderColor: TopYOffset:, BottomYOffset: }
2686
2687
  //Y轴文字偏移
2687
2688
  //this.YOffset=[{ Offset:5}, { Offset:10} ] //目前只对框子外的刻度文字生效 0=外左 1=外右 2=内左 3=内右
2689
+ //X轴文字
2690
+ //this.XOffset=[{ Position:1} ] //Position:1=线段移动到左侧K线间距 2=线段移动到K线右侧间距
2688
2691
  }//边框信息
2689
2692
  function ChartBorder(){this.UIElement;//四周间距
2690
2693
  this.Left=50;this.Right=80;this.Top=50;this.Bottom=50;this.TitleHeight=24;//标题高度
@@ -2891,7 +2894,7 @@ this.DrawVertical=function(){var border=this.GetBorder();var top=border.TopTitle
2891
2894
  //if (this.ChartBorder.Bottom<=5*GetDevicePixelRatio()) return; //高度不够 不显示
2892
2895
  var mapX=null;if(this.GetVerticalXCache)mapX=this.GetVerticalXCache();var bottomTextExtend=null;if(this.XTextExtend){bottomTextExtend=this.XTextExtend[0];}var bottomLineExtend=null;if(this.XLineExtend){bottomLineExtend=this.XLineExtend[0];}var xPrev=null;//上一个坐标x的值
2893
2896
  var textRightPrev=null;//上一次刻度输出右边x坐标
2894
- for(var i=0;i<this.VerticalInfo.length;++i){var item=this.VerticalInfo[i];var x=null;if(mapX&&mapX.has(item.Value))x=mapX.get(item.Value);else x=this.GetXFromIndex(item.Value);if(x>right)break;if(xPrev!=null&&Math.abs(x-xPrev)<this.MinXDistance)continue;var item=this.VerticalInfo[i];var xFixed=ToFixedPoint(x);if(this.IsShowXLine){if(item.LineType==2)//虚线
2897
+ for(var i=0;i<this.VerticalInfo.length;++i){var item=this.VerticalInfo[i];var x=null;if(mapX&&mapX.has(item.Value))x=mapX.get(item.Value);else x=this.GetXFromIndex(item.Value);if(item.XOffset&&item.XOffset[0]){var subItem=item.XOffset[0];if(subItem.Position===1){x-=this.DataWidth/2;x-=this.DistanceWidth/2;}else if(subItem.Position===2){x+=this.DataWidth/2;x+=this.DistanceWidth/2;}}if(x>right)break;if(xPrev!=null&&Math.abs(x-xPrev)<this.MinXDistance)continue;var item=this.VerticalInfo[i];var xFixed=ToFixedPoint(x);if(this.IsShowXLine){if(item.LineType==2)//虚线
2895
2898
  {this.Canvas.strokeStyle=this.VerticalInfo[i].LineColor;if(item.LineDash)this.Canvas.setLineDash(item.LineDash);else this.Canvas.setLineDash([5*pixelRatio,5*pixelRatio]);this.Canvas.beginPath();this.Canvas.moveTo(xFixed,top);this.Canvas.lineTo(xFixed,bottom);this.Canvas.stroke();this.Canvas.setLineDash([]);}else if(item.LineType==3){}else if(item.LineType>0)//实线
2896
2899
  {if(g_JSChartResource.FrameXLineDash){this.Canvas.strokeStyle=this.VerticalInfo[i].LineColor;this.Canvas.setLineDash(g_JSChartResource.FrameXLineDash);//虚线
2897
2900
  this.Canvas.beginPath();this.Canvas.moveTo(xFixed,top);this.Canvas.lineTo(xFixed,bottom);this.Canvas.stroke();this.Canvas.setLineDash([]);}else{this.Canvas.strokeStyle=this.VerticalInfo[i].LineColor;this.Canvas.beginPath();this.Canvas.moveTo(xFixed,top);this.Canvas.lineTo(xFixed,bottom);this.Canvas.stroke();}}}if(item.BG&&this.DrawDayVertical){this.DrawDayVertical(item,x,border);}if(item.Message[0]!=null&&this.ChartBorder.Bottom>5*pixelRatio){if(IFrameSplitOperator.IsObject(item.Message[0])){var textObj=item.Message[0];if(!textObj.Font)textObj.Font=item.Font;if(!textObj.TextColor)textObj.TextColor=item.TextColor;var drawInfo=this.GetMultiLineVTextSize(textObj);if(drawInfo){drawInfo.XCenter=x;var rtBottom={Left:0,Right:right,Top:bottom+2*pixelRatio,Bottom:border.Height};rtBottom.Width=rtBottom.Right-rtBottom.Left;rtBottom.Height=rtBottom.Bottom-rtBottom.Top;drawInfo.RectBottom=rtBottom;drawInfo.TextRightPrev=textRightPrev;this.DrawMultiLineVText(drawInfo);if(drawInfo.TextRight)textRightPrev=drawInfo.TextRight;}}else{if(item.Font)this.Canvas.font=item.Font;var textLeft=0;this.Canvas.strokeStyle=item.TextColor;var testWidth=this.Canvas.measureText(item.Message[0]).width;var textHeight=this.Canvas.measureText("擎").width;if(bottomTextExtend&&bottomTextExtend.Align==1){this.Canvas.textAlign="left";this.Canvas.textBaseline="top";textLeft=x;}else{if(x<testWidth/2){this.Canvas.textAlign="left";this.Canvas.textBaseline="top";textLeft=x;}else if(x+testWidth/2>=this.ChartBorder.GetChartWidth()){this.Canvas.textAlign="right";this.Canvas.textBaseline="top";textLeft=x-testWidth;}else{this.Canvas.textAlign="center";this.Canvas.textBaseline="top";textLeft=x-testWidth/2;}}if(textRightPrev==null||textLeft>textRightPrev){var yText=bottom;if(item.LineType==3){var lineLength=this.ShortXLineLength*pixelRatio;this.Canvas.beginPath();this.Canvas.moveTo(xFixed,yText);this.Canvas.lineTo(xFixed,yText+lineLength);this.Canvas.stroke();yText+=lineLength+2*pixelRatio;}if(bottomLineExtend){if(bottomLineExtend.Mode===1){if(item.Value>1){if(bottomLineExtend.Color)this.Canvas.strokeStyle=bottomLineExtend.Color;this.Canvas.beginPath();this.Canvas.moveTo(xFixed,bottom);this.Canvas.lineTo(xFixed,border.ChartHeight);this.Canvas.stroke();x+=1;}}else if(bottomLineExtend.Mode===2){if(bottomLineExtend.Width>=1){var lineLength=bottomLineExtend.Width;if(bottomLineExtend.Color)this.Canvas.strokeStyle=bottomLineExtend.Color;this.Canvas.beginPath();this.Canvas.moveTo(xFixed,yText);this.Canvas.lineTo(xFixed,yText+lineLength);this.Canvas.stroke();yText+=lineLength+2;}}}//item.TextBGColor="rgb(0,255,0)";
@@ -13617,7 +13620,7 @@ var _iteratorNormalCompletion23=true;var _didIteratorError23=false;var _iterator
13617
13620
  if(option.EventCallback){for(var i=0;i<option.EventCallback.length;++i){var item=option.EventCallback[i];chart.AddEventCallback(item);}}if(option.EnableResize==true)this.CreateResizeListener();if(option.EnablePopMenuV2===true)chart.InitalPopMenu();if(option.FloatTooltip&&option.FloatTooltip.Enable)chart.InitalFloatTooltip(option.FloatTooltip);//提示信息
13618
13621
  if(option.MinuteChartTooltip&&option.MinuteChartTooltip.Enable)chart.InitalMinuteChartTooltip(option.MinuteChartTooltip);if(option.KLineChartTooltip&&option.KLineChartTooltip.Enable)chart.InitalKLineChartTooltip(option.KLineChartTooltip);if(option.Symbol)chart.Symbol=option.Symbol;if(option.Name)chart.Name=option.Name;var requestOption={Callback:null};if(chart.Symbol)requestOption.Callback=function(){chart.RequestMemberListData();};if(option.LoadStockList===false){chart.ChartSplashPaint.IsEnableSplash=false;chart.Draw();}else{chart.RequestStockListData(requestOption);//下载码表
13619
13622
  }};this.CreateJSReportChartContainer=function(option){var _this60=this;var chart=new JSReportChartContainer(this.CanvasElement);chart.GetExtraCanvas=function(name){return _this60.GetExtraCanvas(name);};chart.Create(option);if(option.NetworkFilter)chart.NetworkFilter=option.NetworkFilter;if(IFrameSplitOperator.IsNonEmptyArray(option.Column))chart.SetColumn(option.Column);if(IFrameSplitOperator.IsNonEmptyArray(option.Tab))chart.SetTab(option.Tab);if(IFrameSplitOperator.IsNumber(option.TabSelected))chart.SetSelectedTab(option.TabSelected);if(IFrameSplitOperator.IsBool(option.EnableDragRow))chart.EnableDragRow=option.EnableDragRow;if(IFrameSplitOperator.IsNumber(option.DragRowType))chart.DragRowType=option.DragRowType;if(IFrameSplitOperator.IsBool(option.EnableDragHeader))chart.EnableDragHeader=option.EnableDragHeader;if(IFrameSplitOperator.IsNumber(option.WheelPageType))chart.WheelPageConfig.Type=option.WheelPageType;if(IFrameSplitOperator.IsBool(option.PageUpDownCycle))chart.PageUpDownCycle=option.PageUpDownCycle;if(IFrameSplitOperator.IsBool(option.EnablePageUpdate))chart.EnablePageUpdate=option.EnablePageUpdate;if(option.WheelPage){var item=option.WheelPage;if(IFrameSplitOperator.IsNumber(item.Type))chart.WheelPageConfig.Type=item.Type;if(IFrameSplitOperator.IsPlusNumber(item.RowStep))chart.WheelPageConfig.RowStep=item.RowStep;if(IFrameSplitOperator.IsBool(item.EnableCtrlTurn))chart.WheelPageConfig.EnableCtrlTurn=item.EnableCtrlTurn;}//数据下载提示信息
13620
- if(IFrameSplitOperator.IsObject(option.SplashTitle)){var item=option.SplashTitle;if(item)chart.SplashTitle.StockList=item.StockList;if(item)chart.SplashTitle.MemberList=item.MemberList;}if(option.VScrollbar)chart.SetVScrollbar(option.VScrollbar);if(option.SortInfo){var item=option.SortInfo;if(item.Search)chart.SortInfo.Field=chart.FindFiledIndex(item.Search);if(IFrameSplitOperator.IsNumber(item.Field))chart.SortInfo.Field=item.Field;if(IFrameSplitOperator.IsNumber(item.Sort))chart.SortInfo.Sort=item.Sort;}if(option.VirtualTable){var item=option.VirtualTable;if(IFrameSplitOperator.IsBool(item.Enable))chart.Data.Virtual.Enable=item.Enable;}var reportChart=chart.GetReportChart();if(reportChart){if(IFrameSplitOperator.IsNumber(option.TextOverflowStyle))reportChart.TextOverflowStyle=option.TextOverflowStyle;if(IFrameSplitOperator.IsNumber(option.MultiSelectModel))reportChart.MultiSelectModel=option.MultiSelectModel;if(IFrameSplitOperator.IsNumber(option.SelectedStyle))reportChart.SelectedStyle=option.SelectedStyle;}this.SetChartBorder(chart,option);//是否自动更新
13623
+ if(IFrameSplitOperator.IsObject(option.SplashTitle)){var item=option.SplashTitle;if(item)chart.SplashTitle.StockList=item.StockList;if(item)chart.SplashTitle.MemberList=item.MemberList;}if(option.VScrollbar)chart.SetVScrollbar(option.VScrollbar);if(option.SortInfo){var item=option.SortInfo;if(item.Search)chart.SortInfo.Field=chart.FindFiledIndex(item.Search);if(IFrameSplitOperator.IsNumber(item.Field))chart.SortInfo.Field=item.Field;if(IFrameSplitOperator.IsNumber(item.Sort))chart.SortInfo.Sort=item.Sort;}if(option.VirtualTable){var item=option.VirtualTable;if(IFrameSplitOperator.IsBool(item.Enable))chart.Data.Virtual.Enable=item.Enable;}var reportChart=chart.GetReportChart();if(reportChart){if(IFrameSplitOperator.IsNumber(option.TextOverflowStyle))reportChart.TextOverflowStyle=option.TextOverflowStyle;if(IFrameSplitOperator.IsNumber(option.MultiSelectModel))reportChart.MultiSelectModel=option.MultiSelectModel;if(IFrameSplitOperator.IsNumber(option.SelectedStyle))reportChart.SelectedStyle=option.SelectedStyle;if(option.BottomTab){var item=option.BottomTab;if(IFrameSplitOperator.IsBool(item.IsShow))reportChart.Tab.IsShow=item.IsShow;}}this.SetChartBorder(chart,option);//是否自动更新
13621
13624
  if(option.IsAutoUpdate!=null)chart.IsAutoUpdate=option.IsAutoUpdate;if(option.AutoUpdateFrequency>0)chart.AutoUpdateFrequency=option.AutoUpdateFrequency;//数据筛选
13622
13625
  if(option.DataFilter){var item=option.DataFilter;if(IFrameSplitOperator.IsBool(item.Enable))chart.DataFilterConfig.Enable=item.Enable;}//注册事件
13623
13626
  if(option.EventCallback){for(var i=0;i<option.EventCallback.length;++i){var item=option.EventCallback[i];chart.AddEventCallback(item);}}return chart;};this.SetChartBorder=function(chart,option){if(!option.Border)return;var item=option.Border;if(IFrameSplitOperator.IsNumber(option.Border.Left))chart.Frame.ChartBorder.Left=option.Border.Left;if(IFrameSplitOperator.IsNumber(option.Border.Right))chart.Frame.ChartBorder.Right=option.Border.Right;if(IFrameSplitOperator.IsNumber(option.Border.Top))chart.Frame.ChartBorder.Top=option.Border.Top;if(IFrameSplitOperator.IsNumber(option.Border.Bottom))chart.Frame.ChartBorder.Bottom=option.Border.Bottom;var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
@@ -13711,8 +13714,7 @@ if(option&&option.PageInfo===true){var pageInfoChart=new ChartReportPageInfo();p
13711
13714
  if(IFrameSplitOperator.IsNumber(option.FixedColumn))chart.FixedColumn=option.FixedColumn;//固定列
13712
13715
  if(IFrameSplitOperator.IsNumber(option.BorderLine))this.Frame.BorderLine=option.BorderLine;//边框
13713
13716
  if(IFrameSplitOperator.IsBool(option.TabShow))chart.Tab.IsShow=option.TabShow;if(IFrameSplitOperator.IsNumber(option.FixedRowCount))chart.FixedRowCount=option.FixedRowCount;//固定行
13714
- if(IFrameSplitOperator.IsBool(option.ItemBorder))chart.IsDrawBorder=option.ItemBorder;//单元格边框
13715
- if(IFrameSplitOperator.IsNumber(option.SelectedModel))chart.SelectedModel=option.SelectedModel;if(IFrameSplitOperator.IsNumber(option.HeaderRowCount))chart.HeaderRowCount=option.HeaderRowCount;if(IFrameSplitOperator.IsNonEmptyArray(option.FixedSymbol)){chart.FixedRowCount=0;this.FixedRowData.Type=1;this.FixedRowData.Symbol=[];var aryData=option.FixedSymbol;for(var i=0;i<aryData.length;++i){var item=aryData[i];this.FixedRowData.Symbol.push(item.Symbol);++chart.FixedRowCount;}}}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){_this63.OnKeyDown(e);},true);//键盘消息
13717
+ if(IFrameSplitOperator.IsNumber(option.SelectedModel))chart.SelectedModel=option.SelectedModel;if(IFrameSplitOperator.IsNumber(option.HeaderRowCount))chart.HeaderRowCount=option.HeaderRowCount;if(IFrameSplitOperator.IsNonEmptyArray(option.FixedSymbol)){chart.FixedRowCount=0;this.FixedRowData.Type=1;this.FixedRowData.Symbol=[];var aryData=option.FixedSymbol;for(var i=0;i<aryData.length;++i){var item=aryData[i];this.FixedRowData.Symbol.push(item.Symbol);++chart.FixedRowCount;}}if(option.CellBorder){var item=option.CellBorder;if(IFrameSplitOperator.IsBool(item.IsShowVLine))chart.CellBorderConfig.IsShowVLine=item.IsShowVLine;if(IFrameSplitOperator.IsBool(item.IsShowHLine))chart.CellBorderConfig.IsShowHLine=item.IsShowHLine;if(IFrameSplitOperator.IsBool(item.IsFullLine))chart.CellBorderConfig.IsFullLine=item.IsFullLine;}}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){_this63.OnKeyDown(e);},true);//键盘消息
13716
13718
  if(bRegisterWheel)this.UIElement.addEventListener("wheel",function(e){_this63.OnWheel(e);},true);//上下滚动消息
13717
13719
  this.UIElement.ondblclick=function(e){_this63.UIOnDblClick(e);};this.UIElement.onmousedown=function(e){_this63.UIOnMouseDown(e);};this.UIElement.onmouseup=function(e){_this63.UIOnMounseUp(e);};this.UIElement.oncontextmenu=function(e){_this63.UIOnContextMenu(e);};this.UIElement.onmousemove=function(e){_this63.UIOnMouseMove(e);};this.UIElement.onmouseout=function(e){_this63.UIOnMounseOut(e);};this.UIElement.onmouseleave=function(e){_this63.UIOnMouseleave(e);};//手机拖拽
13718
13720
  this.UIElement.ontouchstart=function(e){_this63.OnTouchStart(e);};this.UIElement.ontouchmove=function(e){_this63.OnTouchMove(e);};this.UIElement.ontouchend=function(e){_this63.OnTouchEnd(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();//获取设备的分辨率
@@ -14081,8 +14083,8 @@ this.SizeChange=true;this.SelectedModel=0;//选中模式 0=SelectedRow表示当
14081
14083
  this.SelectedRowData;//{ DataIndex:, Index:, Symbol: }
14082
14084
  this.SelectedFixedRow=-1;//选中固定行ID
14083
14085
  this.SelectedStyle=1;//选中行样式 1=整行填充 2=底部绘制直线
14084
- this.IsDrawBorder=1;//是否绘制单元格边框
14085
14086
  this.HeaderRowCount=1;//表头行数
14087
+ this.CellBorderConfig={IsShowVLine:true,IsShowHLine:true,IsFullLine:true};//单元格边框 IsShowHLine=横线 IsShowVLine=竖向
14086
14088
  //多选模式
14087
14089
  this.MultiSelectModel=0;//0=禁用 1=开启
14088
14090
  this.MultiSelectedRow=[];//选中行
@@ -14162,7 +14164,7 @@ if(IFrameSplitOperator.IsNumber(item.BlockIndex))colItem.BlockIndex=item.BlockIn
14162
14164
  {Type:REPORT_COLUMN_ID.CUSTOM_STRING_TEXT_ID,Title:"自定义",TextAlign:"center",Width:null,TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.CUSTOM_NUMBER_TEXT_ID,Title:"自定义",TextAlign:"center",Width:null,TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.CUSTOM_DATETIME_TEXT_ID,Title:"自定义",TextAlign:"center",Width:null,TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999-99-99"},{Type:REPORT_COLUMN_ID.CUSTOM_ICON_ID,Title:" ",TextAlign:"left",FixedWidth:20,TextColor:g_JSChartResource.Report.FieldColor.Text},{Type:REPORT_COLUMN_ID.KLINE_ID,Title:"K线",TextAlign:"left",FixedWidth:50,TextColor:g_JSChartResource.Report.FieldColor.Text},{Type:REPORT_COLUMN_ID.TIME_ID,Title:"时间",TextAlign:"left",ValueType:0,TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"99:99:99.999"},{Type:REPORT_COLUMN_ID.DATE_ID,Title:"日期",TextAlign:"left",FormatType:0,TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999-99-99"},{Type:REPORT_COLUMN_ID.CHECKBOX_ID,Title:"",TextAlign:"center",FixedWidth:20*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.CUSTOM_CHECKBOX_ID,Title:"",TextAlign:"center",FixedWidth:20*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.CUSTOM_BUTTON_ID,Title:"",TextAlign:"center",FixedWidth:50*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.CUSTOM_PROGRESS_ID,Title:"进度条",TextAlign:"center",FixedWidth:100*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.CUSTOM_LINK_ID,Title:"链接地址",TextAlign:"center",MaxText:"擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.FUTURES_POSITION_ID,Title:"持仓量",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Vol,Width:null,MaxText:"8888888"},{Type:REPORT_COLUMN_ID.FUTURES_CLOSE_ID,Title:"结算价",TextAlign:"right",Width:null,MaxText:"8888888"},{Type:REPORT_COLUMN_ID.FUTURES_YCLOSE_ID,Title:"昨结算价",TextAlign:"right",Width:null,MaxText:"8888888"},{Type:REPORT_COLUMN_ID.FUTURES_OPEN_POSITION_ID,Title:"开仓量",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,Width:null,MaxText:"8888888"},{Type:REPORT_COLUMN_ID.FUTURES_CLOSE_POSITION_ID,Title:"平仓量",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,Width:null,MaxText:"8888888"},{Type:REPORT_COLUMN_ID.RISING_SPEED_1M_ID,Title:"涨速%",TextAlign:"right",Width:null,MaxText:"-888.88"},{Type:REPORT_COLUMN_ID.RISING_SPEED_3M_ID,Title:"3分涨速%",TextAlign:"right",Width:null,MaxText:"-888.88"},{Type:REPORT_COLUMN_ID.RISING_SPEED_5M_ID,Title:"5分涨速%",TextAlign:"right",Width:null,MaxText:"-888.88"},{Type:REPORT_COLUMN_ID.RISING_SPEED_10M_ID,Title:"10分涨速%",TextAlign:"right",Width:null,MaxText:"-888.88"},{Type:REPORT_COLUMN_ID.RISING_SPEED_15M_ID,Title:"15分涨速%",TextAlign:"right",Width:null,MaxText:"-888.88"},//组合多行字段
14163
14165
  {Type:REPORT_COLUMN_ID.MULTI_LINE_CONTAINER,Title:"涨幅",TextAlign:"right",MaxText:"1000.00%",AryField:[{Type:REPORT_COLUMN_ID.PRICE_ID},{Type:REPORT_COLUMN_ID.INCREASE_ID,DynamicFormat:"{Value}%"}]},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER1_ID,Title:"数值1",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER2_ID,Title:"数值2",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER3_ID,Title:"数值3",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER4_ID,Title:"数值4",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER5_ID,Title:"数值5",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER6_ID,Title:"数值6",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER7_ID,Title:"数值7",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER8_ID,Title:"数值8",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER9_ID,Title:"数值9",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER10_ID,Title:"数值10",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER11_ID,Title:"数值11",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER12_ID,Title:"数值12",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER13_ID,Title:"数值13",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER14_ID,Title:"数值14",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER15_ID,Title:"数值15",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER16_ID,Title:"数值16",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER17_ID,Title:"数值17",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER18_ID,Title:"数值18",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER19_ID,Title:"数值19",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_NUMBER20_ID,Title:"数值20",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999.99",FloatPrecision:2},{Type:REPORT_COLUMN_ID.RESERVE_STRING1_ID,Title:"文字1",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING2_ID,Title:"文字2",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING3_ID,Title:"文字3",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING4_ID,Title:"文字4",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING5_ID,Title:"文字5",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING6_ID,Title:"文字6",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING7_ID,Title:"文字7",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING8_ID,Title:"文字8",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING9_ID,Title:"文字9",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING10_ID,Title:"文字10",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING11_ID,Title:"文字11",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING12_ID,Title:"文字12",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING13_ID,Title:"文字13",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING14_ID,Title:"文字14",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING15_ID,Title:"文字15",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING16_ID,Title:"文字16",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING17_ID,Title:"文字17",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING18_ID,Title:"文字18",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING19_ID,Title:"文字19",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_STRING20_ID,Title:"文字20",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"擎擎擎擎擎擎"},{Type:REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR1_ID,Title:"进度条1",TextAlign:"center",FixedWidth:100*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR2_ID,Title:"进度条2",TextAlign:"center",FixedWidth:100*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR3_ID,Title:"进度条3",TextAlign:"center",FixedWidth:100*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR4_ID,Title:"进度条4",TextAlign:"center",FixedWidth:100*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR5_ID,Title:"进度条5",TextAlign:"center",FixedWidth:100*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR6_ID,Title:"进度条6",TextAlign:"center",FixedWidth:100*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR7_ID,Title:"进度条7",TextAlign:"center",FixedWidth:100*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR8_ID,Title:"进度条8",TextAlign:"center",FixedWidth:100*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR9_ID,Title:"进度条9",TextAlign:"center",FixedWidth:100*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR10_ID,Title:"进度条10",TextAlign:"center",FixedWidth:100*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_BUTTON1_ID,Title:"按钮1",TextAlign:"center",FixedWidth:50*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_BUTTON2_ID,Title:"按钮2",TextAlign:"center",FixedWidth:50*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_BUTTON3_ID,Title:"按钮3",TextAlign:"center",FixedWidth:50*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_BUTTON4_ID,Title:"按钮4",TextAlign:"center",FixedWidth:50*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_BUTTON5_ID,Title:"按钮5",TextAlign:"center",FixedWidth:50*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_BUTTON6_ID,Title:"按钮6",TextAlign:"center",FixedWidth:50*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_BUTTON7_ID,Title:"按钮7",TextAlign:"center",FixedWidth:50*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_BUTTON8_ID,Title:"按钮8",TextAlign:"center",FixedWidth:50*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_BUTTON9_ID,Title:"按钮9",TextAlign:"center",FixedWidth:50*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_BUTTON10_ID,Title:"按钮10",TextAlign:"center",FixedWidth:50*GetDevicePixelRatio()},{Type:REPORT_COLUMN_ID.RESERVE_DATETIME1_ID,Title:"日期1",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999-99-99",DateTimeFormat:"YYYY-MM-DD"},{Type:REPORT_COLUMN_ID.RESERVE_DATETIME2_ID,Title:"日期2",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999-99-99",DateTimeFormat:"YYYY-MM-DD"},{Type:REPORT_COLUMN_ID.RESERVE_DATETIME3_ID,Title:"日期3",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999-99-99",DateTimeFormat:"YYYY-MM-DD"},{Type:REPORT_COLUMN_ID.RESERVE_DATETIME4_ID,Title:"日期4",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999-99-99",DateTimeFormat:"YYYY-MM-DD"},{Type:REPORT_COLUMN_ID.RESERVE_DATETIME5_ID,Title:"日期5",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999-99-99",DateTimeFormat:"YYYY-MM-DD"},{Type:REPORT_COLUMN_ID.RESERVE_DATETIME6_ID,Title:"日期6",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999-99-99",DateTimeFormat:"YYYY-MM-DD"},{Type:REPORT_COLUMN_ID.RESERVE_DATETIME7_ID,Title:"日期7",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999-99-99",DateTimeFormat:"YYYY-MM-DD"},{Type:REPORT_COLUMN_ID.RESERVE_DATETIME8_ID,Title:"日期8",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999-99-99",DateTimeFormat:"YYYY-MM-DD"},{Type:REPORT_COLUMN_ID.RESERVE_DATETIME9_ID,Title:"日期9",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999-99-99",DateTimeFormat:"YYYY-MM-DD"},{Type:REPORT_COLUMN_ID.RESERVE_DATETIME10_ID,Title:"日期10",TextAlign:"right",TextColor:g_JSChartResource.Report.FieldColor.Text,MaxText:"9999-99-99",DateTimeFormat:"YYYY-MM-DD"}];for(var i=0;i<DEFAULT_COLUMN.length;++i){var item=DEFAULT_COLUMN[i];if(item.Type==id)return item;}return null;};this.ClipClient=function(){this.Canvas.save();this.Canvas.beginPath();this.Canvas.rect(this.RectClient.Left,this.RectClient.Top,this.RectClient.Right-this.RectClient.Left,this.RectClient.Bottom-this.RectClient.Top);//this.Canvas.stroke(); //调试用
14164
14166
  this.Canvas.clip();};this.CreateTempCache=function(){this.TempCache={MapReserveDateTime:new _map2.default()};//MapReserveDateTime:key=colindex, Value:{ PreDate }
14165
- };this.Draw=function(lastMouseStatus){this.ShowSymbol=[];this.TooltipRect=[];this.ButtonRect=[];this.AryFullSelectedRow=[];this.DevicePixelRatio=GetDevicePixelRatio();this.LastMouseStatus=lastMouseStatus;this.CreateTempCache();if(this.GlobalOption)this.GlobalOption.FlashBGCount=0;if(this.SizeChange)this.CalculateSize();else this.UpdateCacheData();this.ClipClient();this.DrawDragHeaderBG();this.DrawHeader();this.DrawBody();this.Canvas.restore();if(this.Tab&&this.BottomToolbarHeight>0){var bottom=this.ChartBorder.GetBottom();this.Tab.DrawTab(this.RectClient.Left,bottom-this.BottomToolbarHeight,this.RectClient.Right,bottom);this.Tab.DrawScrollbar(this.RectClient.Left,bottom-this.BottomToolbarHeight,this.RectClient.Right,bottom);}this.ClipClient();this.DrawBorder();this.DrawSelectedRow();this.Canvas.restore();this.DrawDragRow();this.DrawDragHeader();if(this.VScrollbar){var bottom=this.ChartBorder.GetBottom();this.VScrollbar.DrawScrollbar(this.RectClient.Left,this.RectClient.Top+this.HeaderHeight,this.RectClient.Right,bottom-this.BottomToolbarHeight-4);}this.LastMouseStatus=null;this.SizeChange=false;this.AryFullSelectedRow=[];this.TempCache=null;};this.DrawDragHeaderBG=function(){if(!this.DragHeader)return;var left=this.RectClient.Left;var right=this.RectClient.Right;var top=this.RectClient.Top;var bottom=top+this.HeaderHeight+this.RowHeight*this.RowCount+this.FixedRowHeight*this.FixedRowCount;//竖线
14167
+ };this.Draw=function(lastMouseStatus){this.ShowSymbol=[];this.TooltipRect=[];this.ButtonRect=[];this.AryFullSelectedRow=[];this.DevicePixelRatio=GetDevicePixelRatio();this.LastMouseStatus=lastMouseStatus;this.DrawRowCount=0;this.CreateTempCache();if(this.GlobalOption)this.GlobalOption.FlashBGCount=0;if(this.SizeChange)this.CalculateSize();else this.UpdateCacheData();this.ClipClient();this.DrawDragHeaderBG();this.DrawHeader();this.DrawBody();this.Canvas.restore();if(this.Tab&&this.BottomToolbarHeight>0){var bottom=this.ChartBorder.GetBottom();this.Tab.DrawTab(this.RectClient.Left,bottom-this.BottomToolbarHeight,this.RectClient.Right,bottom);this.Tab.DrawScrollbar(this.RectClient.Left,bottom-this.BottomToolbarHeight,this.RectClient.Right,bottom);}this.ClipClient();this.DrawBorder();this.DrawSelectedRow();this.Canvas.restore();this.DrawDragRow();this.DrawDragHeader();if(this.VScrollbar){var bottom=this.ChartBorder.GetBottom();this.VScrollbar.DrawScrollbar(this.RectClient.Left,this.RectClient.Top+this.HeaderHeight,this.RectClient.Right,bottom-this.BottomToolbarHeight-4);}this.LastMouseStatus=null;this.SizeChange=false;this.AryFullSelectedRow=[];this.TempCache=null;};this.DrawDragHeaderBG=function(){if(!this.DragHeader)return;var left=this.RectClient.Left;var right=this.RectClient.Right;var top=this.RectClient.Top;var bottom=top+this.HeaderHeight+this.RowHeight*this.RowCount+this.FixedRowHeight*this.FixedRowCount;//竖线
14166
14168
  var columnLeft=left;for(var i=0;i<this.FixedColumn&&i<this.Column.length;++i){var item=this.Column[i];columnLeft+=item.Width;}for(var i=this.FixedColumn+this.Data.XOffset;i<this.Column.length;++i){var item=this.Column[i];if(this.DragHeader){if(this.DragHeader.ClickData){var clickData=this.DragHeader.ClickData;if(clickData.Header.Index==i){var rtBG={Left:columnLeft,Top:top,Bottom:bottom,Right:columnLeft+item.Width};rtBG.Width=rtBG.Right-rtBG.Left;rtBG.Height=rtBG.Bottom-rtBG.Top;this.Canvas.fillStyle=this.DragSrcRowColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}}if(this.DragHeader.MoveToData){var moveToData=this.DragHeader.MoveToData;if(moveToData.Header.Index==i){var rtBG={Left:columnLeft,Top:top,Bottom:bottom,Right:columnLeft+item.Width};rtBG.Width=rtBG.Right-rtBG.Left;rtBG.Height=rtBG.Bottom-rtBG.Top;this.Canvas.fillStyle=this.DragMoveRowColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}}}columnLeft+=item.Width;}};//更新缓存变量
14167
14169
  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.BottomToolbarHeight;};this.GetPageSize=function(recalculate)//recalculate 是否重新计算
14168
14170
  {if(recalculate)this.CalculateSize();var size=this.RowCount;return size;};this.GetCurrentPageStatus=function()//{ Start:起始索引, End:结束索引(数据), PageSize:页面可以显示几条记录, IsEnd:是否是最后一页, IsSinglePage:是否只有一页数据}
@@ -14185,13 +14187,14 @@ if(item.Sort&&this.SortConfig&&IFrameSplitOperator.IsPlusNumber(this.SortConfig.
14185
14187
  for(var i=0;i<this.FixedColumn&&i<this.Column.length;++i){var item=this.Column[i];var itemWidth=item.Width;//var textWidth=itemWidth-this.HeaderMergin.Left-this.HeaderMergin.Right;
14186
14188
  var rtCell={Left:textLeft,Width:itemWidth,Top:top,Height:this.HeaderHeight};rtCell.Right=rtCell.Left+rtCell.Width;rtCell.Bottom=rtCell.Top+rtCell.Height;this.DrawHeaderItem(item,rtCell,i);textLeft+=item.Width;}for(var i=this.FixedColumn+this.Data.XOffset;i<this.Column.length;++i){var item=this.Column[i];var itemWidth=item.Width;//var textWidth=itemWidth-this.HeaderMergin.Left-this.HeaderMergin.Right;
14187
14189
  var rtCell={Left:textLeft,Width:itemWidth,Top:top,Height:this.HeaderHeight};rtCell.Right=rtCell.Left+rtCell.Width;rtCell.Bottom=rtCell.Top+rtCell.Height;this.DrawHeaderItem(item,rtCell,i);textLeft+=item.Width;}};//是否绘制排序背景图标
14188
- this.IsDrawSortBGIcon=function(){if(!IFrameSplitOperator.IsNonEmptyArray(this.SortConfig.Arrow))return false;if(!this.SortConfig.Arrow[0])return false;if(!IFrameSplitOperator.IsNonEmptyArray(this.SortConfig.Color))return false;if(!this.SortConfig.Color[0])return false;return true;};this.DrawBorder=function(){if(!this.IsDrawBorder)return;var left=this.RectClient.Left;var right=this.RectClient.Right;var top=this.RectClient.Top;var bottom=this.RectClient.Bottom;this.Canvas.strokeStyle=this.BorderColor;this.Canvas.beginPath();this.Canvas.moveTo(left,ToFixedPoint(top+this.HeaderHeight));this.Canvas.lineTo(right,ToFixedPoint(top+this.HeaderHeight));var rowTop=top+this.HeaderHeight+this.RowHeight;var rotBottom=rowTop;for(var i=0;i<this.FixedRowCount;++i){var drawTop=ToFixedPoint(rowTop);this.Canvas.moveTo(left,drawTop);this.Canvas.lineTo(right,drawTop);rotBottom=rowTop;rowTop+=this.FixedRowHeight;}var rowTop=top+this.HeaderHeight+this.RowHeight+this.FixedRowHeight*this.FixedRowCount;var rotBottom=rowTop;//横线
14189
- for(var i=0;i<this.RowCount;++i){var drawTop=ToFixedPoint(rowTop);this.Canvas.moveTo(left,drawTop);this.Canvas.lineTo(right,drawTop);rotBottom=rowTop;rowTop+=this.RowHeight;}//竖线
14190
- var columnLeft=left;for(var i=0;i<this.FixedColumn&&i<this.Column.length;++i){var item=this.Column[i];var drawLeft=ToFixedPoint(columnLeft+item.Width);this.Canvas.moveTo(drawLeft,top);this.Canvas.lineTo(drawLeft,rotBottom);columnLeft+=item.Width;}for(var i=this.FixedColumn+this.Data.XOffset;i<this.Column.length;++i){var item=this.Column[i];var drawLeft=ToFixedPoint(columnLeft+item.Width);this.Canvas.moveTo(drawLeft,top);this.Canvas.lineTo(drawLeft,rotBottom);columnLeft+=item.Width;}this.Canvas.stroke();};//获取一共多少行
14190
+ this.IsDrawSortBGIcon=function(){if(!IFrameSplitOperator.IsNonEmptyArray(this.SortConfig.Arrow))return false;if(!this.SortConfig.Arrow[0])return false;if(!IFrameSplitOperator.IsNonEmptyArray(this.SortConfig.Color))return false;if(!this.SortConfig.Color[0])return false;return true;};this.DrawBorder=function(){if(!this.CellBorderConfig.IsShowHLine&&!this.CellBorderConfig.IsShowVLine)return;var left=this.RectClient.Left;var right=this.RectClient.Right;var top=this.RectClient.Top;var bottom=this.RectClient.Bottom;this.Canvas.strokeStyle=this.BorderColor;this.Canvas.beginPath();var rowCount=this.RowCount;if(!this.CellBorderConfig.IsFullLine)rowCount=this.DrawRowCount;if(this.CellBorderConfig.IsShowHLine)//横线
14191
+ {this.Canvas.moveTo(left,ToFixedPoint(top+this.HeaderHeight));this.Canvas.lineTo(right,ToFixedPoint(top+this.HeaderHeight));var rowTop=top+this.HeaderHeight+this.RowHeight;var rotBottom=rowTop;for(var i=0;i<this.FixedRowCount;++i){var drawTop=ToFixedPoint(rowTop);this.Canvas.moveTo(left,drawTop);this.Canvas.lineTo(right,drawTop);rotBottom=rowTop;rowTop+=this.FixedRowHeight;}var rowTop=top+this.HeaderHeight+this.RowHeight+this.FixedRowHeight*this.FixedRowCount;var rotBottom=rowTop;//横线
14192
+ for(var i=0;i<rowCount;++i){var drawTop=ToFixedPoint(rowTop);this.Canvas.moveTo(left,drawTop);this.Canvas.lineTo(right,drawTop);rotBottom=rowTop;rowTop+=this.RowHeight;}}if(this.CellBorderConfig.IsShowVLine)//竖线
14193
+ {var columnLeft=left;for(var i=0;i<this.FixedColumn&&i<this.Column.length;++i){var item=this.Column[i];var drawLeft=ToFixedPoint(columnLeft+item.Width);this.Canvas.moveTo(drawLeft,top);this.Canvas.lineTo(drawLeft,rotBottom);columnLeft+=item.Width;}for(var i=this.FixedColumn+this.Data.XOffset;i<this.Column.length;++i){var item=this.Column[i];var drawLeft=ToFixedPoint(columnLeft+item.Width);this.Canvas.moveTo(drawLeft,top);this.Canvas.lineTo(drawLeft,rotBottom);columnLeft+=item.Width;}}this.Canvas.stroke();};//获取一共多少行
14191
14194
  this.GetAllRowCount=function(){var count=this.Data.Data.length;if(this.Data.Virtual&&this.Data.Virtual.Enable)count=this.Data.Virtual.Count;return count;};this.DrawBody=function(){if(!this.Data)return;if(!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)&&!this.Data.Virtual.Enable)return;this.Canvas.font=this.ItemFont;var top=this.RectClient.Top+this.HeaderHeight;var left=this.RectClient.Left;var rowWidth=this.RectClient.Right-this.RectClient.Left;var arySelectedRow=[];//固定行
14192
14195
  var textTop=top;this.Canvas.font=this.ItemFixedFont;for(var i=0;i<this.FixedRowCount;++i){if(this.SelectedFixedRow==i){this.Canvas.fillStyle=this.SelectedColor;;this.Canvas.fillRect(left,textTop,rowWidth,this.FixedRowHeight);}if(this.FixedRowData.Type==1)this.DrawFixedSymbolRow(textTop,i);else this.DrawFixedRow(textTop,i);textTop+=this.FixedRowHeight;}textTop=top+this.FixedRowHeight*this.FixedRowCount;this.Canvas.font=this.ItemFont;var eventDrawBG=this.GetEventCallback(JSCHART_EVENT_ID.ON_DRAW_REPORT_ROW_BG);var selectedSymbol=this.GetSelectedSymbol();var setSelected;if(this.MultiSelectModel==1)setSelected=new _set2.default(this.MultiSelectedRow);var dataCount=this.GetAllRowCount();for(var i=this.Data.YOffset,j=0;i<dataCount&&j<this.RowCount;++i,++j){var symbol=this.Data.Data[i];var rtRowBG={Left:left,Top:textTop,Width:rowWidth,Height:this.RowHeight};rtRowBG.Right=rtRowBG.Left+rtRowBG.Width;rtRowBG.Bottom=rtRowBG.Top+rtRowBG.Height;var bFillRow=false;if(this.MultiSelectModel==1){if(setSelected.has(i))bFillRow=true;}else{if(this.SelectedModel==0){if(this.SelectedRowData&&this.SelectedRowData.Index==j&&this.SelectedRowData.Symbol==symbol)bFillRow=true;//选中行
14193
14196
  }else{if(this.SelectedRowData&&this.SelectedRowData.DataIndex==i&&this.SelectedRowData.Symbol==symbol)bFillRow=true;//选中行
14194
- }}if(this.DragRow){if(this.DragRow.Data){var dataIndex=this.DragRow.Data.Row.DataIndex;if(dataIndex==i){this.Canvas.fillStyle=this.DragSrcRowColor;this.Canvas.fillRect(left,textTop,rowWidth,this.RowHeight);}}if(this.DragRow.MoveRow){var dataIndex=this.DragRow.MoveRow.Data.DataIndex;if(dataIndex==i){this.Canvas.fillStyle=this.DragMoveRowColor;this.Canvas.fillRect(left,textTop,rowWidth,this.RowHeight);}}bFillRow=false;}this.DrawFullRowBGColor(symbol,eventDrawBG,i,rtRowBG,{Selected:selectedSymbol});this.DrawFlashFullRowBGColor(symbol,rtRowBG);if(bFillRow){this.AryFullSelectedRow.push(rtRowBG);if(this.SelectedStyle===1){this.Canvas.fillStyle=this.SelectedColor;this.Canvas.fillRect(rtRowBG.Left,rtRowBG.Top,rtRowBG.Width,rtRowBG.Height);}}this.DrawRow(symbol,textTop,i);this.ShowSymbol.push({Index:i,Symbol:symbol});textTop+=this.RowHeight;}};//绘制整行背景色
14197
+ }}if(this.DragRow){if(this.DragRow.Data){var dataIndex=this.DragRow.Data.Row.DataIndex;if(dataIndex==i){this.Canvas.fillStyle=this.DragSrcRowColor;this.Canvas.fillRect(left,textTop,rowWidth,this.RowHeight);}}if(this.DragRow.MoveRow){var dataIndex=this.DragRow.MoveRow.Data.DataIndex;if(dataIndex==i){this.Canvas.fillStyle=this.DragMoveRowColor;this.Canvas.fillRect(left,textTop,rowWidth,this.RowHeight);}}bFillRow=false;}this.DrawFullRowBGColor(symbol,eventDrawBG,i,rtRowBG,{Selected:selectedSymbol});this.DrawFlashFullRowBGColor(symbol,rtRowBG);if(bFillRow){this.AryFullSelectedRow.push(rtRowBG);if(this.SelectedStyle===1){this.Canvas.fillStyle=this.SelectedColor;this.Canvas.fillRect(rtRowBG.Left,rtRowBG.Top,rtRowBG.Width,rtRowBG.Height);}}this.DrawRow(symbol,textTop,i);this.ShowSymbol.push({Index:i,Symbol:symbol});textTop+=this.RowHeight;++this.DrawRowCount;}};//绘制整行背景色
14195
14198
  this.DrawFullRowBGColor=function(symbol,event,index,rtBG,option){var data={Symbol:symbol,Stock:null};if(this.GetStockDataCallback)data.Stock=this.GetStockDataCallback(symbol);if(data.Stock&&data.Stock.BGColor){this.Canvas.fillStyle=data.Stock.BGColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}if(event&&event.Callback){//Out:{ BGColor: }
14196
14199
  var sendData={RowIndex:index,Symbol:symbol,Out:null,MultiSelectModel:this.MultiSelectModel};if(option){if(option.Selected)sendData.Selected=option.Selected;}event.Callback(event,sendData,this);if(sendData.Out&&sendData.Out.BGColor){this.Canvas.fillStyle=sendData.Out.BGColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}}};this.DrawFlashFullRowBGColor=function(symbol,rtBG){var data={Symbol:symbol,FlashBG:null};if(this.GetFlashBGDataCallback)data.FlashBG=this.GetFlashBGDataCallback(symbol,Date.now());if(!data.FlashBG)return;var id=-1;if(!data.FlashBG.Data.has(id))return;var flashItem=data.FlashBG.Data.get(id);if(flashItem&&flashItem.Count){this.Canvas.fillStyle=flashItem.Color;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}--flashItem.Count;if(this.GlobalOption)++this.GlobalOption.FlashBGCount;};this.DrawSelectedRow=function(){if(this.SelectedStyle===2&&IFrameSplitOperator.IsNonEmptyArray(this.AryFullSelectedRow)){this.Canvas.fillStyle=this.SelectedLineConfig.Color;var lineWidth=this.SelectedLineConfig.Width;for(var i=0;i<this.AryFullSelectedRow.length;++i){var rtBG=this.AryFullSelectedRow[i];this.Canvas.fillRect(rtBG.Left,rtBG.Bottom-lineWidth,rtBG.Width,lineWidth);}}};this.GetSelectedSymbol=function(){if(this.MultiSelectModel==1){if(!IFrameSplitOperator.IsNonEmptyArray(this.MultiSelectedRow))return null;var aryData=[];for(var i=0;i<this.MultiSelectedRow.length;++i){var item=this.Data.Data[this.MultiSelectedRow[i]];if(!item)continue;aryData.push(item);}return aryData;}else{if(!this.SelectedRowData)return null;if(!this.SelectedRowData.Symbol)return null;return[this.SelectedRowData.Symbol];}};//单行选中模式选中股票
14197
14200
  this.GetSelectedSingleSymbol=function(){if(this.MultiSelectModel==1)return null;//多选
@@ -15642,7 +15645,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
15642
15645
  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);};}/********************************************************************************
15643
15646
  * 版本信息输出
15644
15647
  *
15645
- */var HQCHART_VERSION="1.1.15222";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();//把给外界调用的方法暴露出来
15648
+ */var HQCHART_VERSION="1.1.15228";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();//把给外界调用的方法暴露出来
15646
15649
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
15647
15650
  // BaseIndex:BaseIndex,
15648
15651
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.15223",
3
+ "version": "1.1.15229",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -9845,8 +9845,15 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
9845
9845
  event.Callback(event, sendData, this);
9846
9846
  }
9847
9847
 
9848
- if (option.Update && this.Update) this.Update( {UpdateCursorIndexType:2} ); //是否立即更新并重绘
9849
- else if (option.Draw==true || option.Redraw==true) this.Draw(); //是否立即重绘
9848
+ if (option.Update && this.Update)
9849
+ {
9850
+ this.Update( {UpdateCursorIndexType:2} ); //是否立即更新并重绘
9851
+ }
9852
+ else if (option.Draw==true || option.Redraw==true)
9853
+ {
9854
+ this.ResetFrameXYSplit(); //重新计算分割线
9855
+ this.Draw(); //是否立即重绘
9856
+ }
9850
9857
 
9851
9858
  if (this.PopMinuteChart) this.PopMinuteChart.ReloadResource(option);
9852
9859
  if (this.DialogTooltip) this.DialogTooltip.ReloadResource(option);
@@ -12991,6 +12998,8 @@ function CoordinateInfo()
12991
12998
  //this.OutRange={ BGColor:"", TextColor:, BorderColor: TopYOffset:, BottomYOffset: }
12992
12999
  //Y轴文字偏移
12993
13000
  //this.YOffset=[{ Offset:5}, { Offset:10} ] //目前只对框子外的刻度文字生效 0=外左 1=外右 2=内左 3=内右
13001
+ //X轴文字
13002
+ //this.XOffset=[{ Position:1} ] //Position:1=线段移动到左侧K线间距 2=线段移动到K线右侧间距
12994
13003
  }
12995
13004
 
12996
13005
 
@@ -14970,6 +14979,22 @@ function AverageWidthFrame()
14970
14979
  var x=null;
14971
14980
  if (mapX && mapX.has(item.Value)) x=mapX.get(item.Value);
14972
14981
  else x=this.GetXFromIndex(item.Value);
14982
+
14983
+ if (item.XOffset && item.XOffset[0])
14984
+ {
14985
+ var subItem=item.XOffset[0];
14986
+ if (subItem.Position===1)
14987
+ {
14988
+ x-=this.DataWidth/2;
14989
+ x-=this.DistanceWidth/2;
14990
+ }
14991
+ else if (subItem.Position===2)
14992
+ {
14993
+ x+=this.DataWidth/2;
14994
+ x+=this.DistanceWidth/2;
14995
+ }
14996
+ }
14997
+
14973
14998
  if (x>right) break;
14974
14999
  if (xPrev!=null && Math.abs(x-xPrev)<this.MinXDistance) continue;
14975
15000
 
@@ -232,6 +232,12 @@ function JSReportChart(divElement)
232
232
  if (IFrameSplitOperator.IsNumber(option.TextOverflowStyle)) reportChart.TextOverflowStyle=option.TextOverflowStyle;
233
233
  if (IFrameSplitOperator.IsNumber(option.MultiSelectModel)) reportChart.MultiSelectModel=option.MultiSelectModel;
234
234
  if (IFrameSplitOperator.IsNumber(option.SelectedStyle)) reportChart.SelectedStyle=option.SelectedStyle;
235
+
236
+ if (option.BottomTab)
237
+ {
238
+ var item=option.BottomTab;
239
+ if (IFrameSplitOperator.IsBool(item.IsShow)) reportChart.Tab.IsShow=item.IsShow;
240
+ }
235
241
  }
236
242
 
237
243
  this.SetChartBorder(chart, option);
@@ -828,7 +834,7 @@ function JSReportChartContainer(uielement)
828
834
  if (IFrameSplitOperator.IsNumber(option.BorderLine)) this.Frame.BorderLine=option.BorderLine; //边框
829
835
  if (IFrameSplitOperator.IsBool(option.TabShow)) chart.Tab.IsShow=option.TabShow;
830
836
  if (IFrameSplitOperator.IsNumber(option.FixedRowCount)) chart.FixedRowCount=option.FixedRowCount; //固定行
831
- if (IFrameSplitOperator.IsBool(option.ItemBorder)) chart.IsDrawBorder=option.ItemBorder; //单元格边框
837
+
832
838
  if (IFrameSplitOperator.IsNumber(option.SelectedModel)) chart.SelectedModel=option.SelectedModel;
833
839
  if (IFrameSplitOperator.IsNumber(option.HeaderRowCount)) chart.HeaderRowCount=option.HeaderRowCount;
834
840
 
@@ -845,6 +851,14 @@ function JSReportChartContainer(uielement)
845
851
  ++chart.FixedRowCount;
846
852
  }
847
853
  }
854
+
855
+ if (option.CellBorder)
856
+ {
857
+ var item=option.CellBorder;
858
+ if (IFrameSplitOperator.IsBool(item.IsShowVLine)) chart.CellBorderConfig.IsShowVLine=item.IsShowVLine;
859
+ if (IFrameSplitOperator.IsBool(item.IsShowHLine)) chart.CellBorderConfig.IsShowHLine=item.IsShowHLine;
860
+ if (IFrameSplitOperator.IsBool(item.IsFullLine)) chart.CellBorderConfig.IsFullLine=item.IsFullLine;
861
+ }
848
862
  }
849
863
 
850
864
  var bRegisterKeydown=true;
@@ -5185,9 +5199,10 @@ function ChartReport()
5185
5199
  this.SelectedRowData; //{ DataIndex:, Index:, Symbol: }
5186
5200
  this.SelectedFixedRow=-1; //选中固定行ID
5187
5201
  this.SelectedStyle=1; //选中行样式 1=整行填充 2=底部绘制直线
5188
- this.IsDrawBorder=1; //是否绘制单元格边框
5189
5202
  this.HeaderRowCount=1; //表头行数
5190
5203
 
5204
+ this.CellBorderConfig={ IsShowVLine:true, IsShowHLine:true, IsFullLine:true }; //单元格边框 IsShowHLine=横线 IsShowVLine=竖向
5205
+
5191
5206
  //多选模式
5192
5207
  this.MultiSelectModel=0; //0=禁用 1=开启
5193
5208
  this.MultiSelectedRow=[]; //选中行
@@ -5873,6 +5888,7 @@ function ChartReport()
5873
5888
  this.AryFullSelectedRow=[];
5874
5889
  this.DevicePixelRatio=GetDevicePixelRatio()
5875
5890
  this.LastMouseStatus=lastMouseStatus;
5891
+ this.DrawRowCount=0;
5876
5892
  this.CreateTempCache();
5877
5893
 
5878
5894
  if (this.GlobalOption) this.GlobalOption.FlashBGCount=0;
@@ -6392,7 +6408,7 @@ function ChartReport()
6392
6408
 
6393
6409
  this.DrawBorder=function()
6394
6410
  {
6395
- if (!this.IsDrawBorder) return;
6411
+ if (!this.CellBorderConfig.IsShowHLine && !this.CellBorderConfig.IsShowVLine) return;
6396
6412
 
6397
6413
  var left=this.RectClient.Left;
6398
6414
  var right=this.RectClient.Right;
@@ -6401,53 +6417,60 @@ function ChartReport()
6401
6417
 
6402
6418
  this.Canvas.strokeStyle=this.BorderColor;
6403
6419
  this.Canvas.beginPath();
6404
-
6405
- this.Canvas.moveTo(left,ToFixedPoint(top+this.HeaderHeight));
6406
- this.Canvas.lineTo(right,ToFixedPoint(top+this.HeaderHeight));
6420
+ var rowCount=this.RowCount;
6421
+ if (!this.CellBorderConfig.IsFullLine) rowCount=this.DrawRowCount;
6407
6422
 
6408
- var rowTop=top+this.HeaderHeight+this.RowHeight;
6409
- var rotBottom=rowTop;
6410
- for(var i=0;i<this.FixedRowCount;++i)
6423
+ if (this.CellBorderConfig.IsShowHLine) //横线
6411
6424
  {
6412
- var drawTop=ToFixedPoint(rowTop);
6413
- this.Canvas.moveTo(left,drawTop);
6414
- this.Canvas.lineTo(right,drawTop);
6415
- rotBottom=rowTop;
6416
- rowTop+=this.FixedRowHeight;
6417
- }
6425
+ this.Canvas.moveTo(left,ToFixedPoint(top+this.HeaderHeight));
6426
+ this.Canvas.lineTo(right,ToFixedPoint(top+this.HeaderHeight));
6418
6427
 
6419
- var rowTop=top+this.HeaderHeight+this.RowHeight+this.FixedRowHeight*this.FixedRowCount;
6420
- var rotBottom=rowTop;
6421
- //横线
6422
- for(var i=0;i<this.RowCount;++i)
6423
- {
6424
- var drawTop=ToFixedPoint(rowTop);
6425
- this.Canvas.moveTo(left,drawTop);
6426
- this.Canvas.lineTo(right,drawTop);
6427
- rotBottom=rowTop;
6428
- rowTop+=this.RowHeight;
6428
+ var rowTop=top+this.HeaderHeight+this.RowHeight;
6429
+ var rotBottom=rowTop;
6430
+ for(var i=0;i<this.FixedRowCount;++i)
6431
+ {
6432
+ var drawTop=ToFixedPoint(rowTop);
6433
+ this.Canvas.moveTo(left,drawTop);
6434
+ this.Canvas.lineTo(right,drawTop);
6435
+ rotBottom=rowTop;
6436
+ rowTop+=this.FixedRowHeight;
6437
+ }
6438
+
6439
+ var rowTop=top+this.HeaderHeight+this.RowHeight+this.FixedRowHeight*this.FixedRowCount;
6440
+ var rotBottom=rowTop;
6441
+ //横线
6442
+ for(var i=0;i<rowCount;++i)
6443
+ {
6444
+ var drawTop=ToFixedPoint(rowTop);
6445
+ this.Canvas.moveTo(left,drawTop);
6446
+ this.Canvas.lineTo(right,drawTop);
6447
+ rotBottom=rowTop;
6448
+ rowTop+=this.RowHeight;
6449
+ }
6429
6450
  }
6430
6451
 
6431
- //竖线
6432
- var columnLeft=left;
6433
- for(var i=0;i<this.FixedColumn && i<this.Column.length; ++i)
6452
+ if (this.CellBorderConfig.IsShowVLine) //竖线
6434
6453
  {
6435
- var item=this.Column[i];
6436
- var drawLeft=ToFixedPoint(columnLeft+item.Width);
6437
- this.Canvas.moveTo(drawLeft,top);
6438
- this.Canvas.lineTo(drawLeft,rotBottom);
6454
+ var columnLeft=left;
6455
+ for(var i=0;i<this.FixedColumn && i<this.Column.length; ++i)
6456
+ {
6457
+ var item=this.Column[i];
6458
+ var drawLeft=ToFixedPoint(columnLeft+item.Width);
6459
+ this.Canvas.moveTo(drawLeft,top);
6460
+ this.Canvas.lineTo(drawLeft,rotBottom);
6439
6461
 
6440
- columnLeft+=item.Width;
6441
- }
6462
+ columnLeft+=item.Width;
6463
+ }
6442
6464
 
6443
- for(var i=this.FixedColumn+this.Data.XOffset;i<this.Column.length;++i)
6444
- {
6445
- var item=this.Column[i];
6446
- var drawLeft=ToFixedPoint(columnLeft+item.Width);
6447
- this.Canvas.moveTo(drawLeft,top);
6448
- this.Canvas.lineTo(drawLeft,rotBottom);
6465
+ for(var i=this.FixedColumn+this.Data.XOffset;i<this.Column.length;++i)
6466
+ {
6467
+ var item=this.Column[i];
6468
+ var drawLeft=ToFixedPoint(columnLeft+item.Width);
6469
+ this.Canvas.moveTo(drawLeft,top);
6470
+ this.Canvas.lineTo(drawLeft,rotBottom);
6449
6471
 
6450
- columnLeft+=item.Width;
6472
+ columnLeft+=item.Width;
6473
+ }
6451
6474
  }
6452
6475
 
6453
6476
  this.Canvas.stroke();
@@ -6574,6 +6597,7 @@ function ChartReport()
6574
6597
  this.ShowSymbol.push( { Index:i, Symbol:symbol } );
6575
6598
 
6576
6599
  textTop+=this.RowHeight;
6600
+ ++this.DrawRowCount;
6577
6601
  }
6578
6602
  }
6579
6603
 
@@ -13941,8 +13941,15 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
13941
13941
  event.Callback(event, sendData, this);
13942
13942
  }
13943
13943
 
13944
- if (option.Update && this.Update) this.Update( {UpdateCursorIndexType:2} ); //是否立即更新并重绘
13945
- else if (option.Draw==true || option.Redraw==true) this.Draw(); //是否立即重绘
13944
+ if (option.Update && this.Update)
13945
+ {
13946
+ this.Update( {UpdateCursorIndexType:2} ); //是否立即更新并重绘
13947
+ }
13948
+ else if (option.Draw==true || option.Redraw==true)
13949
+ {
13950
+ this.ResetFrameXYSplit(); //重新计算分割线
13951
+ this.Draw(); //是否立即重绘
13952
+ }
13946
13953
 
13947
13954
  if (this.PopMinuteChart) this.PopMinuteChart.ReloadResource(option);
13948
13955
  if (this.DialogTooltip) this.DialogTooltip.ReloadResource(option);
@@ -17087,6 +17094,8 @@ function CoordinateInfo()
17087
17094
  //this.OutRange={ BGColor:"", TextColor:, BorderColor: TopYOffset:, BottomYOffset: }
17088
17095
  //Y轴文字偏移
17089
17096
  //this.YOffset=[{ Offset:5}, { Offset:10} ] //目前只对框子外的刻度文字生效 0=外左 1=外右 2=内左 3=内右
17097
+ //X轴文字
17098
+ //this.XOffset=[{ Position:1} ] //Position:1=线段移动到左侧K线间距 2=线段移动到K线右侧间距
17090
17099
  }
17091
17100
 
17092
17101
 
@@ -19066,6 +19075,22 @@ function AverageWidthFrame()
19066
19075
  var x=null;
19067
19076
  if (mapX && mapX.has(item.Value)) x=mapX.get(item.Value);
19068
19077
  else x=this.GetXFromIndex(item.Value);
19078
+
19079
+ if (item.XOffset && item.XOffset[0])
19080
+ {
19081
+ var subItem=item.XOffset[0];
19082
+ if (subItem.Position===1)
19083
+ {
19084
+ x-=this.DataWidth/2;
19085
+ x-=this.DistanceWidth/2;
19086
+ }
19087
+ else if (subItem.Position===2)
19088
+ {
19089
+ x+=this.DataWidth/2;
19090
+ x+=this.DistanceWidth/2;
19091
+ }
19092
+ }
19093
+
19069
19094
  if (x>right) break;
19070
19095
  if (xPrev!=null && Math.abs(x-xPrev)<this.MinXDistance) continue;
19071
19096
 
@@ -140594,6 +140619,12 @@ function JSReportChart(divElement)
140594
140619
  if (IFrameSplitOperator.IsNumber(option.TextOverflowStyle)) reportChart.TextOverflowStyle=option.TextOverflowStyle;
140595
140620
  if (IFrameSplitOperator.IsNumber(option.MultiSelectModel)) reportChart.MultiSelectModel=option.MultiSelectModel;
140596
140621
  if (IFrameSplitOperator.IsNumber(option.SelectedStyle)) reportChart.SelectedStyle=option.SelectedStyle;
140622
+
140623
+ if (option.BottomTab)
140624
+ {
140625
+ var item=option.BottomTab;
140626
+ if (IFrameSplitOperator.IsBool(item.IsShow)) reportChart.Tab.IsShow=item.IsShow;
140627
+ }
140597
140628
  }
140598
140629
 
140599
140630
  this.SetChartBorder(chart, option);
@@ -141190,7 +141221,7 @@ function JSReportChartContainer(uielement)
141190
141221
  if (IFrameSplitOperator.IsNumber(option.BorderLine)) this.Frame.BorderLine=option.BorderLine; //边框
141191
141222
  if (IFrameSplitOperator.IsBool(option.TabShow)) chart.Tab.IsShow=option.TabShow;
141192
141223
  if (IFrameSplitOperator.IsNumber(option.FixedRowCount)) chart.FixedRowCount=option.FixedRowCount; //固定行
141193
- if (IFrameSplitOperator.IsBool(option.ItemBorder)) chart.IsDrawBorder=option.ItemBorder; //单元格边框
141224
+
141194
141225
  if (IFrameSplitOperator.IsNumber(option.SelectedModel)) chart.SelectedModel=option.SelectedModel;
141195
141226
  if (IFrameSplitOperator.IsNumber(option.HeaderRowCount)) chart.HeaderRowCount=option.HeaderRowCount;
141196
141227
 
@@ -141207,6 +141238,14 @@ function JSReportChartContainer(uielement)
141207
141238
  ++chart.FixedRowCount;
141208
141239
  }
141209
141240
  }
141241
+
141242
+ if (option.CellBorder)
141243
+ {
141244
+ var item=option.CellBorder;
141245
+ if (IFrameSplitOperator.IsBool(item.IsShowVLine)) chart.CellBorderConfig.IsShowVLine=item.IsShowVLine;
141246
+ if (IFrameSplitOperator.IsBool(item.IsShowHLine)) chart.CellBorderConfig.IsShowHLine=item.IsShowHLine;
141247
+ if (IFrameSplitOperator.IsBool(item.IsFullLine)) chart.CellBorderConfig.IsFullLine=item.IsFullLine;
141248
+ }
141210
141249
  }
141211
141250
 
141212
141251
  var bRegisterKeydown=true;
@@ -145547,9 +145586,10 @@ function ChartReport()
145547
145586
  this.SelectedRowData; //{ DataIndex:, Index:, Symbol: }
145548
145587
  this.SelectedFixedRow=-1; //选中固定行ID
145549
145588
  this.SelectedStyle=1; //选中行样式 1=整行填充 2=底部绘制直线
145550
- this.IsDrawBorder=1; //是否绘制单元格边框
145551
145589
  this.HeaderRowCount=1; //表头行数
145552
145590
 
145591
+ this.CellBorderConfig={ IsShowVLine:true, IsShowHLine:true, IsFullLine:true }; //单元格边框 IsShowHLine=横线 IsShowVLine=竖向
145592
+
145553
145593
  //多选模式
145554
145594
  this.MultiSelectModel=0; //0=禁用 1=开启
145555
145595
  this.MultiSelectedRow=[]; //选中行
@@ -146235,6 +146275,7 @@ function ChartReport()
146235
146275
  this.AryFullSelectedRow=[];
146236
146276
  this.DevicePixelRatio=GetDevicePixelRatio()
146237
146277
  this.LastMouseStatus=lastMouseStatus;
146278
+ this.DrawRowCount=0;
146238
146279
  this.CreateTempCache();
146239
146280
 
146240
146281
  if (this.GlobalOption) this.GlobalOption.FlashBGCount=0;
@@ -146754,7 +146795,7 @@ function ChartReport()
146754
146795
 
146755
146796
  this.DrawBorder=function()
146756
146797
  {
146757
- if (!this.IsDrawBorder) return;
146798
+ if (!this.CellBorderConfig.IsShowHLine && !this.CellBorderConfig.IsShowVLine) return;
146758
146799
 
146759
146800
  var left=this.RectClient.Left;
146760
146801
  var right=this.RectClient.Right;
@@ -146763,53 +146804,60 @@ function ChartReport()
146763
146804
 
146764
146805
  this.Canvas.strokeStyle=this.BorderColor;
146765
146806
  this.Canvas.beginPath();
146766
-
146767
- this.Canvas.moveTo(left,ToFixedPoint(top+this.HeaderHeight));
146768
- this.Canvas.lineTo(right,ToFixedPoint(top+this.HeaderHeight));
146807
+ var rowCount=this.RowCount;
146808
+ if (!this.CellBorderConfig.IsFullLine) rowCount=this.DrawRowCount;
146769
146809
 
146770
- var rowTop=top+this.HeaderHeight+this.RowHeight;
146771
- var rotBottom=rowTop;
146772
- for(var i=0;i<this.FixedRowCount;++i)
146810
+ if (this.CellBorderConfig.IsShowHLine) //横线
146773
146811
  {
146774
- var drawTop=ToFixedPoint(rowTop);
146775
- this.Canvas.moveTo(left,drawTop);
146776
- this.Canvas.lineTo(right,drawTop);
146777
- rotBottom=rowTop;
146778
- rowTop+=this.FixedRowHeight;
146779
- }
146812
+ this.Canvas.moveTo(left,ToFixedPoint(top+this.HeaderHeight));
146813
+ this.Canvas.lineTo(right,ToFixedPoint(top+this.HeaderHeight));
146780
146814
 
146781
- var rowTop=top+this.HeaderHeight+this.RowHeight+this.FixedRowHeight*this.FixedRowCount;
146782
- var rotBottom=rowTop;
146783
- //横线
146784
- for(var i=0;i<this.RowCount;++i)
146785
- {
146786
- var drawTop=ToFixedPoint(rowTop);
146787
- this.Canvas.moveTo(left,drawTop);
146788
- this.Canvas.lineTo(right,drawTop);
146789
- rotBottom=rowTop;
146790
- rowTop+=this.RowHeight;
146815
+ var rowTop=top+this.HeaderHeight+this.RowHeight;
146816
+ var rotBottom=rowTop;
146817
+ for(var i=0;i<this.FixedRowCount;++i)
146818
+ {
146819
+ var drawTop=ToFixedPoint(rowTop);
146820
+ this.Canvas.moveTo(left,drawTop);
146821
+ this.Canvas.lineTo(right,drawTop);
146822
+ rotBottom=rowTop;
146823
+ rowTop+=this.FixedRowHeight;
146824
+ }
146825
+
146826
+ var rowTop=top+this.HeaderHeight+this.RowHeight+this.FixedRowHeight*this.FixedRowCount;
146827
+ var rotBottom=rowTop;
146828
+ //横线
146829
+ for(var i=0;i<rowCount;++i)
146830
+ {
146831
+ var drawTop=ToFixedPoint(rowTop);
146832
+ this.Canvas.moveTo(left,drawTop);
146833
+ this.Canvas.lineTo(right,drawTop);
146834
+ rotBottom=rowTop;
146835
+ rowTop+=this.RowHeight;
146836
+ }
146791
146837
  }
146792
146838
 
146793
- //竖线
146794
- var columnLeft=left;
146795
- for(var i=0;i<this.FixedColumn && i<this.Column.length; ++i)
146839
+ if (this.CellBorderConfig.IsShowVLine) //竖线
146796
146840
  {
146797
- var item=this.Column[i];
146798
- var drawLeft=ToFixedPoint(columnLeft+item.Width);
146799
- this.Canvas.moveTo(drawLeft,top);
146800
- this.Canvas.lineTo(drawLeft,rotBottom);
146841
+ var columnLeft=left;
146842
+ for(var i=0;i<this.FixedColumn && i<this.Column.length; ++i)
146843
+ {
146844
+ var item=this.Column[i];
146845
+ var drawLeft=ToFixedPoint(columnLeft+item.Width);
146846
+ this.Canvas.moveTo(drawLeft,top);
146847
+ this.Canvas.lineTo(drawLeft,rotBottom);
146801
146848
 
146802
- columnLeft+=item.Width;
146803
- }
146849
+ columnLeft+=item.Width;
146850
+ }
146804
146851
 
146805
- for(var i=this.FixedColumn+this.Data.XOffset;i<this.Column.length;++i)
146806
- {
146807
- var item=this.Column[i];
146808
- var drawLeft=ToFixedPoint(columnLeft+item.Width);
146809
- this.Canvas.moveTo(drawLeft,top);
146810
- this.Canvas.lineTo(drawLeft,rotBottom);
146852
+ for(var i=this.FixedColumn+this.Data.XOffset;i<this.Column.length;++i)
146853
+ {
146854
+ var item=this.Column[i];
146855
+ var drawLeft=ToFixedPoint(columnLeft+item.Width);
146856
+ this.Canvas.moveTo(drawLeft,top);
146857
+ this.Canvas.lineTo(drawLeft,rotBottom);
146811
146858
 
146812
- columnLeft+=item.Width;
146859
+ columnLeft+=item.Width;
146860
+ }
146813
146861
  }
146814
146862
 
146815
146863
  this.Canvas.stroke();
@@ -146936,6 +146984,7 @@ function ChartReport()
146936
146984
  this.ShowSymbol.push( { Index:i, Symbol:symbol } );
146937
146985
 
146938
146986
  textTop+=this.RowHeight;
146987
+ ++this.DrawRowCount;
146939
146988
  }
146940
146989
  }
146941
146990
 
@@ -154191,7 +154240,7 @@ function ScrollBarBGChart()
154191
154240
 
154192
154241
 
154193
154242
 
154194
- var HQCHART_VERSION="1.1.15222";
154243
+ var HQCHART_VERSION="1.1.15228";
154195
154244
 
154196
154245
  function PrintHQChartVersion()
154197
154246
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.15222";
8
+ var HQCHART_VERSION="1.1.15228";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -13985,8 +13985,15 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
13985
13985
  event.Callback(event, sendData, this);
13986
13986
  }
13987
13987
 
13988
- if (option.Update && this.Update) this.Update( {UpdateCursorIndexType:2} ); //是否立即更新并重绘
13989
- else if (option.Draw==true || option.Redraw==true) this.Draw(); //是否立即重绘
13988
+ if (option.Update && this.Update)
13989
+ {
13990
+ this.Update( {UpdateCursorIndexType:2} ); //是否立即更新并重绘
13991
+ }
13992
+ else if (option.Draw==true || option.Redraw==true)
13993
+ {
13994
+ this.ResetFrameXYSplit(); //重新计算分割线
13995
+ this.Draw(); //是否立即重绘
13996
+ }
13990
13997
 
13991
13998
  if (this.PopMinuteChart) this.PopMinuteChart.ReloadResource(option);
13992
13999
  if (this.DialogTooltip) this.DialogTooltip.ReloadResource(option);
@@ -17131,6 +17138,8 @@ function CoordinateInfo()
17131
17138
  //this.OutRange={ BGColor:"", TextColor:, BorderColor: TopYOffset:, BottomYOffset: }
17132
17139
  //Y轴文字偏移
17133
17140
  //this.YOffset=[{ Offset:5}, { Offset:10} ] //目前只对框子外的刻度文字生效 0=外左 1=外右 2=内左 3=内右
17141
+ //X轴文字
17142
+ //this.XOffset=[{ Position:1} ] //Position:1=线段移动到左侧K线间距 2=线段移动到K线右侧间距
17134
17143
  }
17135
17144
 
17136
17145
 
@@ -19110,6 +19119,22 @@ function AverageWidthFrame()
19110
19119
  var x=null;
19111
19120
  if (mapX && mapX.has(item.Value)) x=mapX.get(item.Value);
19112
19121
  else x=this.GetXFromIndex(item.Value);
19122
+
19123
+ if (item.XOffset && item.XOffset[0])
19124
+ {
19125
+ var subItem=item.XOffset[0];
19126
+ if (subItem.Position===1)
19127
+ {
19128
+ x-=this.DataWidth/2;
19129
+ x-=this.DistanceWidth/2;
19130
+ }
19131
+ else if (subItem.Position===2)
19132
+ {
19133
+ x+=this.DataWidth/2;
19134
+ x+=this.DistanceWidth/2;
19135
+ }
19136
+ }
19137
+
19113
19138
  if (x>right) break;
19114
19139
  if (xPrev!=null && Math.abs(x-xPrev)<this.MinXDistance) continue;
19115
19140
 
@@ -140638,6 +140663,12 @@ function JSReportChart(divElement)
140638
140663
  if (IFrameSplitOperator.IsNumber(option.TextOverflowStyle)) reportChart.TextOverflowStyle=option.TextOverflowStyle;
140639
140664
  if (IFrameSplitOperator.IsNumber(option.MultiSelectModel)) reportChart.MultiSelectModel=option.MultiSelectModel;
140640
140665
  if (IFrameSplitOperator.IsNumber(option.SelectedStyle)) reportChart.SelectedStyle=option.SelectedStyle;
140666
+
140667
+ if (option.BottomTab)
140668
+ {
140669
+ var item=option.BottomTab;
140670
+ if (IFrameSplitOperator.IsBool(item.IsShow)) reportChart.Tab.IsShow=item.IsShow;
140671
+ }
140641
140672
  }
140642
140673
 
140643
140674
  this.SetChartBorder(chart, option);
@@ -141234,7 +141265,7 @@ function JSReportChartContainer(uielement)
141234
141265
  if (IFrameSplitOperator.IsNumber(option.BorderLine)) this.Frame.BorderLine=option.BorderLine; //边框
141235
141266
  if (IFrameSplitOperator.IsBool(option.TabShow)) chart.Tab.IsShow=option.TabShow;
141236
141267
  if (IFrameSplitOperator.IsNumber(option.FixedRowCount)) chart.FixedRowCount=option.FixedRowCount; //固定行
141237
- if (IFrameSplitOperator.IsBool(option.ItemBorder)) chart.IsDrawBorder=option.ItemBorder; //单元格边框
141268
+
141238
141269
  if (IFrameSplitOperator.IsNumber(option.SelectedModel)) chart.SelectedModel=option.SelectedModel;
141239
141270
  if (IFrameSplitOperator.IsNumber(option.HeaderRowCount)) chart.HeaderRowCount=option.HeaderRowCount;
141240
141271
 
@@ -141251,6 +141282,14 @@ function JSReportChartContainer(uielement)
141251
141282
  ++chart.FixedRowCount;
141252
141283
  }
141253
141284
  }
141285
+
141286
+ if (option.CellBorder)
141287
+ {
141288
+ var item=option.CellBorder;
141289
+ if (IFrameSplitOperator.IsBool(item.IsShowVLine)) chart.CellBorderConfig.IsShowVLine=item.IsShowVLine;
141290
+ if (IFrameSplitOperator.IsBool(item.IsShowHLine)) chart.CellBorderConfig.IsShowHLine=item.IsShowHLine;
141291
+ if (IFrameSplitOperator.IsBool(item.IsFullLine)) chart.CellBorderConfig.IsFullLine=item.IsFullLine;
141292
+ }
141254
141293
  }
141255
141294
 
141256
141295
  var bRegisterKeydown=true;
@@ -145591,9 +145630,10 @@ function ChartReport()
145591
145630
  this.SelectedRowData; //{ DataIndex:, Index:, Symbol: }
145592
145631
  this.SelectedFixedRow=-1; //选中固定行ID
145593
145632
  this.SelectedStyle=1; //选中行样式 1=整行填充 2=底部绘制直线
145594
- this.IsDrawBorder=1; //是否绘制单元格边框
145595
145633
  this.HeaderRowCount=1; //表头行数
145596
145634
 
145635
+ this.CellBorderConfig={ IsShowVLine:true, IsShowHLine:true, IsFullLine:true }; //单元格边框 IsShowHLine=横线 IsShowVLine=竖向
145636
+
145597
145637
  //多选模式
145598
145638
  this.MultiSelectModel=0; //0=禁用 1=开启
145599
145639
  this.MultiSelectedRow=[]; //选中行
@@ -146279,6 +146319,7 @@ function ChartReport()
146279
146319
  this.AryFullSelectedRow=[];
146280
146320
  this.DevicePixelRatio=GetDevicePixelRatio()
146281
146321
  this.LastMouseStatus=lastMouseStatus;
146322
+ this.DrawRowCount=0;
146282
146323
  this.CreateTempCache();
146283
146324
 
146284
146325
  if (this.GlobalOption) this.GlobalOption.FlashBGCount=0;
@@ -146798,7 +146839,7 @@ function ChartReport()
146798
146839
 
146799
146840
  this.DrawBorder=function()
146800
146841
  {
146801
- if (!this.IsDrawBorder) return;
146842
+ if (!this.CellBorderConfig.IsShowHLine && !this.CellBorderConfig.IsShowVLine) return;
146802
146843
 
146803
146844
  var left=this.RectClient.Left;
146804
146845
  var right=this.RectClient.Right;
@@ -146807,53 +146848,60 @@ function ChartReport()
146807
146848
 
146808
146849
  this.Canvas.strokeStyle=this.BorderColor;
146809
146850
  this.Canvas.beginPath();
146810
-
146811
- this.Canvas.moveTo(left,ToFixedPoint(top+this.HeaderHeight));
146812
- this.Canvas.lineTo(right,ToFixedPoint(top+this.HeaderHeight));
146851
+ var rowCount=this.RowCount;
146852
+ if (!this.CellBorderConfig.IsFullLine) rowCount=this.DrawRowCount;
146813
146853
 
146814
- var rowTop=top+this.HeaderHeight+this.RowHeight;
146815
- var rotBottom=rowTop;
146816
- for(var i=0;i<this.FixedRowCount;++i)
146854
+ if (this.CellBorderConfig.IsShowHLine) //横线
146817
146855
  {
146818
- var drawTop=ToFixedPoint(rowTop);
146819
- this.Canvas.moveTo(left,drawTop);
146820
- this.Canvas.lineTo(right,drawTop);
146821
- rotBottom=rowTop;
146822
- rowTop+=this.FixedRowHeight;
146823
- }
146856
+ this.Canvas.moveTo(left,ToFixedPoint(top+this.HeaderHeight));
146857
+ this.Canvas.lineTo(right,ToFixedPoint(top+this.HeaderHeight));
146824
146858
 
146825
- var rowTop=top+this.HeaderHeight+this.RowHeight+this.FixedRowHeight*this.FixedRowCount;
146826
- var rotBottom=rowTop;
146827
- //横线
146828
- for(var i=0;i<this.RowCount;++i)
146829
- {
146830
- var drawTop=ToFixedPoint(rowTop);
146831
- this.Canvas.moveTo(left,drawTop);
146832
- this.Canvas.lineTo(right,drawTop);
146833
- rotBottom=rowTop;
146834
- rowTop+=this.RowHeight;
146859
+ var rowTop=top+this.HeaderHeight+this.RowHeight;
146860
+ var rotBottom=rowTop;
146861
+ for(var i=0;i<this.FixedRowCount;++i)
146862
+ {
146863
+ var drawTop=ToFixedPoint(rowTop);
146864
+ this.Canvas.moveTo(left,drawTop);
146865
+ this.Canvas.lineTo(right,drawTop);
146866
+ rotBottom=rowTop;
146867
+ rowTop+=this.FixedRowHeight;
146868
+ }
146869
+
146870
+ var rowTop=top+this.HeaderHeight+this.RowHeight+this.FixedRowHeight*this.FixedRowCount;
146871
+ var rotBottom=rowTop;
146872
+ //横线
146873
+ for(var i=0;i<rowCount;++i)
146874
+ {
146875
+ var drawTop=ToFixedPoint(rowTop);
146876
+ this.Canvas.moveTo(left,drawTop);
146877
+ this.Canvas.lineTo(right,drawTop);
146878
+ rotBottom=rowTop;
146879
+ rowTop+=this.RowHeight;
146880
+ }
146835
146881
  }
146836
146882
 
146837
- //竖线
146838
- var columnLeft=left;
146839
- for(var i=0;i<this.FixedColumn && i<this.Column.length; ++i)
146883
+ if (this.CellBorderConfig.IsShowVLine) //竖线
146840
146884
  {
146841
- var item=this.Column[i];
146842
- var drawLeft=ToFixedPoint(columnLeft+item.Width);
146843
- this.Canvas.moveTo(drawLeft,top);
146844
- this.Canvas.lineTo(drawLeft,rotBottom);
146885
+ var columnLeft=left;
146886
+ for(var i=0;i<this.FixedColumn && i<this.Column.length; ++i)
146887
+ {
146888
+ var item=this.Column[i];
146889
+ var drawLeft=ToFixedPoint(columnLeft+item.Width);
146890
+ this.Canvas.moveTo(drawLeft,top);
146891
+ this.Canvas.lineTo(drawLeft,rotBottom);
146845
146892
 
146846
- columnLeft+=item.Width;
146847
- }
146893
+ columnLeft+=item.Width;
146894
+ }
146848
146895
 
146849
- for(var i=this.FixedColumn+this.Data.XOffset;i<this.Column.length;++i)
146850
- {
146851
- var item=this.Column[i];
146852
- var drawLeft=ToFixedPoint(columnLeft+item.Width);
146853
- this.Canvas.moveTo(drawLeft,top);
146854
- this.Canvas.lineTo(drawLeft,rotBottom);
146896
+ for(var i=this.FixedColumn+this.Data.XOffset;i<this.Column.length;++i)
146897
+ {
146898
+ var item=this.Column[i];
146899
+ var drawLeft=ToFixedPoint(columnLeft+item.Width);
146900
+ this.Canvas.moveTo(drawLeft,top);
146901
+ this.Canvas.lineTo(drawLeft,rotBottom);
146855
146902
 
146856
- columnLeft+=item.Width;
146903
+ columnLeft+=item.Width;
146904
+ }
146857
146905
  }
146858
146906
 
146859
146907
  this.Canvas.stroke();
@@ -146980,6 +147028,7 @@ function ChartReport()
146980
147028
  this.ShowSymbol.push( { Index:i, Symbol:symbol } );
146981
147029
 
146982
147030
  textTop+=this.RowHeight;
147031
+ ++this.DrawRowCount;
146983
147032
  }
146984
147033
  }
146985
147034
 
@@ -166248,7 +166297,7 @@ function HQChartScriptWorker()
166248
166297
 
166249
166298
 
166250
166299
 
166251
- var HQCHART_VERSION="1.1.15222";
166300
+ var HQCHART_VERSION="1.1.15228";
166252
166301
 
166253
166302
  function PrintHQChartVersion()
166254
166303
  {