hqchart 1.1.15237 → 1.1.15245

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.
@@ -1184,7 +1184,7 @@ for(var i=0;i<chart.Frame.SubFrame.length;++i){chart.Frame.SubFrame[i].Frame.Cha
1184
1184
  this.SetPressKeyboardConfig=function(chart,option){if(!chart||!option)return;if(IFrameSplitOperator.IsBool(option.PauseUpdate))chart.PressKeyboardConfig.PauseUpdate=option.PauseUpdate;};//缺口设置 KLine:{ PriceGap:{ Enable, Count } }
1185
1185
  this.SetPriceGapConfig=function(chart,option){if(!option||!option.PriceGap)return;var klineChart=chart.ChartPaint[0];if(!klineChart)return;var item=option.PriceGap;if(IFrameSplitOperator.IsBool(item.Enable))klineChart.PriceGap.Enable=item.Enable;if(IFrameSplitOperator.IsNumber(item.Count))klineChart.PriceGap.Count=item.Count;};//历史K线图
1186
1186
  this.CreateKLineChartContainer=function(option){var _this=this;var chart=null;if(option.Type==="历史K线图横屏")chart=new KLineChartHScreenContainer(this.CanvasElement);else chart=new KLineChartContainer(this.CanvasElement,this.OffscreenCanvasElement,this.CacheCanvasElement);chart.GetExtraCanvas=function(name){return _this.GetExtraCanvas(name);};var extraElement=this.GetExtraCanvas(JSChart.CorssCursorCanvasKey);if(extraElement)chart.SetCorssCursorElement(extraElement);if(option.EventCallback)this.SetEventCallback(chart,option.EventCallback);if(option.NetworkFilter)chart.NetworkFilter=option.NetworkFilter;var pixelRatio=GetDevicePixelRatio();//右键菜单
1187
- if(IFrameSplitOperator.IsBool(option.IsShowRightMenu))chart.IsShowRightMenu=option.IsShowRightMenu;if(option.ScriptError)chart.ScriptErrorCallback=option.ScriptError;if(option.EnableScrollUpDown==true)chart.EnableScrollUpDown=option.EnableScrollUpDown;if(option.DisableMouse==true)chart.DisableMouse=option.DisableMouse;if(option.TouchMoveMinAngle)chart.TouchMoveMinAngle=option.TouchMoveMinAngle;if(option.EnableZoomUpDown)chart.EnableZoomUpDown=option.EnableZoomUpDown;if(IFrameSplitOperator.IsString(option.SplashTitle))chart.LoadDataSplashTitle=option.SplashTitle;if(IFrameSplitOperator.IsBool(option.EnableZoomIndexWindow))chart.EnableZoomIndexWindow=option.EnableZoomIndexWindow;if(IFrameSplitOperator.IsBool(option.IsDrawPictureXY))chart.IsDrawPictureXY=option.IsDrawPictureXY;if(IFrameSplitOperator.IsNumber(option.CtrlMoveStep))chart.CtrlMoveStep=option.CtrlMoveStep;if(IFrameSplitOperator.IsNumber(option.ShiftMoveStep))chart.ShiftMoveStep=option.ShiftMoveStep;if(IFrameSplitOperator.IsBool(option.EnableIndexChartDrag))chart.EnableIndexChartDrag=option.EnableIndexChartDrag;if(IFrameSplitOperator.IsBool(option.EnableVerifyRecvData))chart.EnableVerifyRecvData=option.EnableVerifyRecvData;if(option.GlobalOption){var item=option.GlobalOption;if(IFrameSplitOperator.IsBool(item.IsValueFullRange))chart.GlobalOption.IsValueFullRange=item.IsValueFullRange;if(item.SelectedBorder){var subItem=item.SelectedBorder;if(IFrameSplitOperator.IsNumber(subItem.Mode))chart.GlobalOption.SelectedBorder.Mode=subItem.Mode;}}if(option.EnableYDrag){var item=option.EnableYDrag;if(IFrameSplitOperator.IsBool(item.Left))chart.EnableYDrag.Left=item.Left;if(IFrameSplitOperator.IsBool(item.Right))chart.EnableYDrag.Right=item.Right;if(IFrameSplitOperator.IsBool(item.Wheel))chart.EnableYDrag.Wheel=item.Wheel;if(IFrameSplitOperator.IsNumber(item.WheelYMove))chart.EnableYDrag.WheelYMove=item.WheelYMove;}if(option.EnableXDrag){var item=option.EnableXDrag;if(IFrameSplitOperator.IsBool(item.Bottom))chart.EnableXDrag.Bottom=item.Bottom;if(item.LButton&&IFrameSplitOperator.IsNumber(item.LButton.Type))chart.EnableXDrag.LButton.Type=item.LButton.Type;if(item.RButton&&IFrameSplitOperator.IsNumber(item.RButton.Type))chart.EnableXDrag.RButton.Type=item.RButton.Type;}if(option.KLineTooltip){var item=option.KLineTooltip;if(IFrameSplitOperator.IsBool(item.Enable))chart.KLineTooltipConfig.Enable=item.Enable;if(IFrameSplitOperator.IsBool(item.EnableKeyDown))chart.KLineTooltipConfig.EnableKeyDown=item.EnableKeyDown;}if(option.KLine)//k线图的属性设置
1187
+ if(IFrameSplitOperator.IsBool(option.IsShowRightMenu))chart.IsShowRightMenu=option.IsShowRightMenu;if(option.ScriptError)chart.ScriptErrorCallback=option.ScriptError;if(option.EnableScrollUpDown==true)chart.EnableScrollUpDown=option.EnableScrollUpDown;if(option.DisableMouse==true)chart.DisableMouse=option.DisableMouse;if(option.TouchMoveMinAngle)chart.TouchMoveMinAngle=option.TouchMoveMinAngle;if(option.EnableZoomUpDown)chart.EnableZoomUpDown=option.EnableZoomUpDown;if(IFrameSplitOperator.IsString(option.SplashTitle))chart.LoadDataSplashTitle=option.SplashTitle;if(IFrameSplitOperator.IsBool(option.EnableZoomIndexWindow))chart.EnableZoomIndexWindow=option.EnableZoomIndexWindow;if(IFrameSplitOperator.IsBool(option.IsDrawPictureXY))chart.IsDrawPictureXY=option.IsDrawPictureXY;if(IFrameSplitOperator.IsNumber(option.CtrlMoveStep))chart.CtrlMoveStep=option.CtrlMoveStep;if(IFrameSplitOperator.IsNumber(option.ShiftMoveStep))chart.ShiftMoveStep=option.ShiftMoveStep;if(IFrameSplitOperator.IsBool(option.EnableIndexChartDrag))chart.EnableIndexChartDrag=option.EnableIndexChartDrag;if(IFrameSplitOperator.IsBool(option.EnableVerifyRecvData))chart.EnableVerifyRecvData=option.EnableVerifyRecvData;if(option.GlobalOption){var item=option.GlobalOption;if(IFrameSplitOperator.IsBool(item.IsValueFullRange))chart.GlobalOption.IsValueFullRange=item.IsValueFullRange;if(IFrameSplitOperator.IsBool(item.EnableXShortDate))chart.GlobalOption.EnableXShortDate=item.EnableXShortDate;if(item.SelectedBorder){var subItem=item.SelectedBorder;if(IFrameSplitOperator.IsNumber(subItem.Mode))chart.GlobalOption.SelectedBorder.Mode=subItem.Mode;}}if(option.EnableYDrag){var item=option.EnableYDrag;if(IFrameSplitOperator.IsBool(item.Left))chart.EnableYDrag.Left=item.Left;if(IFrameSplitOperator.IsBool(item.Right))chart.EnableYDrag.Right=item.Right;if(IFrameSplitOperator.IsBool(item.Wheel))chart.EnableYDrag.Wheel=item.Wheel;if(IFrameSplitOperator.IsNumber(item.WheelYMove))chart.EnableYDrag.WheelYMove=item.WheelYMove;}if(option.EnableXDrag){var item=option.EnableXDrag;if(IFrameSplitOperator.IsBool(item.Bottom))chart.EnableXDrag.Bottom=item.Bottom;if(item.LButton&&IFrameSplitOperator.IsNumber(item.LButton.Type))chart.EnableXDrag.LButton.Type=item.LButton.Type;if(item.RButton&&IFrameSplitOperator.IsNumber(item.RButton.Type))chart.EnableXDrag.RButton.Type=item.RButton.Type;}if(option.KLineTooltip){var item=option.KLineTooltip;if(IFrameSplitOperator.IsBool(item.Enable))chart.KLineTooltipConfig.Enable=item.Enable;if(IFrameSplitOperator.IsBool(item.EnableKeyDown))chart.KLineTooltipConfig.EnableKeyDown=item.EnableKeyDown;}if(option.KLine)//k线图的属性设置
1188
1188
  {var item=option.KLine;if(option.KLine.DragMode>=0)chart.DragMode=option.KLine.DragMode;if(option.KLine.Right>=0)chart.Right=option.KLine.Right;if(option.KLine.Period>=0)chart.Period=option.KLine.Period;if(option.KLine.MaxReqeustDataCount>0)chart.MaxRequestDataCount=option.KLine.MaxReqeustDataCount;//兼容老版本
1189
1189
  if(option.KLine.MaxRequestDataCount>0)chart.MaxRequestDataCount=option.KLine.MaxRequestDataCount;if(option.KLine.Info&&option.KLine.Info.length>0)chart.SetKLineInfo(option.KLine.Info,false);if(IFrameSplitOperator.IsBool(item.IsShowTooltip))chart.IsShowTooltip=item.IsShowTooltip;if(option.KLine.MaxRequestMinuteDayCount>0)chart.MaxRequestMinuteDayCount=option.KLine.MaxRequestMinuteDayCount;if(option.KLine.DrawType)chart.KLineDrawType=option.KLine.DrawType;if(option.KLine.FirstShowDate>19910101)chart.CustomShow={Date:option.KLine.FirstShowDate,PageSize:option.KLine.PageSize};//!!已弃用 新的格式"CustomShow"
1190
1190
  if(option.KLine.RightSpaceCount>0)chart.RightSpaceCount=option.KLine.RightSpaceCount;if(option.KLine.ZoomType>0)chart.ZoomType=option.KLine.ZoomType;if(option.KLine.DataWidth>=1)chart.KLineSize={DataWidth:option.KLine.DataWidth};if(IFrameSplitOperator.IsNumber(option.KLine.RightFormula))chart.RightFormula=option.KLine.RightFormula;}//自定义显示位置
@@ -1914,8 +1914,8 @@ LockCorssCursor:{X:{Enable:false}},CorssCursorStatus:{Value:null},//十字光标
1914
1914
  //图形中的单元选中状态
1915
1915
  MapIndexChartCache:new _map2.default(),//key 指标GUID
1916
1916
  TradeStatus:null,//当前交易状态 { Date, Time:数据最后更新的时间, Status: }
1917
- LatestPoint:null//最新的点位置 { X:, Y: }
1918
- };this.VerticalDrag;//通过X轴左右拖动数据(手势才有)
1917
+ LatestPoint:null,//最新的点位置 { X:, Y: }
1918
+ EnableXShortDate:true};this.VerticalDrag;//通过X轴左右拖动数据(手势才有)
1919
1919
  this.EnableVerticalDrag=false;//十字光标长留(手势才有)
1920
1920
  this.ClickModel={IsShowCorssCursor:false,PreventHide:false,IsClickButton:false,AutoClose:{Enable:false,Timer:null,DelayTime:3000}};//PreventHide 阻止隐藏十字光标 AutoClose=延迟关闭
1921
1921
  this.EnableClickModel=false;//标题栏显示最新数据
@@ -2978,7 +2978,7 @@ this.ReDrawToolbar=false;}};//Y轴面积背景
2978
2978
  this.DrawCustomHorizontalArea=function(){if(this.IsMinSize)return;if(this.ChartBorder.IsShowTitleOnly)return;if(!IFrameSplitOperator.IsNonEmptyArray(this.CustomHorizontalInfo))return;for(var i=0;i<this.CustomHorizontalInfo.length;++i){var item=this.CustomHorizontalInfo[i];if(item.Type==5)this.DrawCustomAreaItem(item);}};//画边框
2979
2979
  this.SuperDrawBorder=this.DrawBorder;this.DrawBorder=function(){if(!this.IsShowBorder)return;if(this.IsMinSize)return;this.SuperDrawBorder();if(this.Identify==1)//走势图和成交量中间用粗线分割开
2980
2980
  {var border=this.ChartBorder.GetBorder();var left=ToFixedPoint(border.Left);var top=ToFixedPoint(border.Top);var right=ToFixedPoint(border.Right);this.Canvas.strokeStyle=this.PenBorder;this.Canvas.beginPath();this.Canvas.moveTo(left,top);this.Canvas.lineTo(right,top);this.Canvas.save();this.Canvas.lineWidth=2*GetDevicePixelRatio();this.Canvas.stroke();this.Canvas.restore();}};this.DrawVolTitle=function(symbol){if(!MARKET_SUFFIX_NAME.IsShowMinuteVolTitle(symbol))return;if(this.Identify==1)//显示"成交量"
2981
- {var pixelRatio=GetDevicePixelRatio();var left=this.ChartBorder.GetLeft()+2*pixelRatio+this.YInsideOffset;var top=this.ChartBorder.GetTopEx()+2*pixelRatio;this.Canvas.textAlign='left';this.Canvas.textBaseline='top';if(g_JSChartResource.Minute.VolBarColor||g_JSChartResource.Minute.VolTitleColor){if(g_JSChartResource.Minute.VolBarColor)this.Canvas.fillStyle=g_JSChartResource.Minute.VolBarColor;else this.Canvas.fillStyle=g_JSChartResource.Minute.VolTitleColor;var languageID=this.YSplitOperator.LanguageID;var text=g_JSChartLocalization.GetText('MVol-Vol',languageID);this.Canvas.fillText(text,left,top);left+=this.Canvas.measureText(text).width;left+=6*GetDevicePixelRatio();}if(this.IsShowPositionTitle){text=g_JSChartLocalization.GetText('MVol-Position',languageID);this.Canvas.fillStyle=g_JSChartResource.Minute.PositionColor;this.Canvas.fillText(text,left,top);}}};this.DrawToolbar=function(){if(this.ToolbarButtonStyle==1)return;if(g_JSChartResource.IsDOMFrameToolbar===true)return;if(!this.DivFrameToolbar)return;this.DivFrameToolbar.Show(this.Identify);};//手绘,不用DOM,使用DOM太麻烦了
2981
+ {var pixelRatio=GetDevicePixelRatio();var left=this.ChartBorder.GetLeft()+2*pixelRatio+this.YInsideOffset;var top=this.ChartBorder.GetTopEx()+2*pixelRatio;this.Canvas.textAlign='left';this.Canvas.textBaseline='top';if(g_JSChartResource.Minute.VolBarColor||g_JSChartResource.Minute.VolTitleColor){if(g_JSChartResource.Minute.VolBarColor)this.Canvas.fillStyle=g_JSChartResource.Minute.VolBarColor;else this.Canvas.fillStyle=g_JSChartResource.Minute.VolTitleColor;var languageID=this.YSplitOperator.LanguageID;var text=g_JSChartLocalization.GetText('MVol-Vol',languageID);this.Canvas.fillText(text,left,top);left+=this.Canvas.measureText(text).width;left+=6*GetDevicePixelRatio();}if(this.IsShowPositionTitle){text=g_JSChartLocalization.GetText('MVol-Position',languageID);this.Canvas.fillStyle=g_JSChartResource.Minute.PositionColor;this.Canvas.fillText(text,left,top);}}};this.DrawToolbar=function(){var bDraw=true;if(this.ToolbarButtonStyle==1)bDraw=false;if(g_JSChartResource.IsDOMFrameToolbar===true)bDraw=false;if(!this.DivFrameToolbar)return;if(!bDraw)this.HideToolbar();else this.DivFrameToolbar.Show(this.Identify);};//手绘,不用DOM,使用DOM太麻烦了
2982
2982
  this.DrawToolbarV2=function(moveonPoint,mouseStatus){if(g_JSChartResource.IsDOMFrameToolbar===true)return;if(this.Identify==0&&this.IsShowCloseButton)this.DrawCloseBeforeButton(moveonPoint,mouseStatus);//盘前集合竞价关闭按钮
2983
2983
  if(this.ChartBorder.TitleHeight<5)return;var aryButton=[];if(this.Identify!=0&&this.Identify!=1)//价格图和成交量图只有自定义按钮
2984
2984
  {if(this.CloseIndex)aryButton.push({ID:JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW,Style:this.CloseWindowButton});if(this.MaxMinWindow)aryButton.push({ID:JSCHART_BUTTON_ID.MAX_MIN_WINDOW,Style:this.MaxMinWindowButton});if(this.TitleWindow)aryButton.push({ID:JSCHART_BUTTON_ID.TITLE_WINDOW,Style:this.TitleWindowButton});if(this.ExportData)aryButton.push({ID:JSCHART_BUTTON_ID.EXPORT_DATA,Style:this.ExportDataButton});if(this.OverlayIndex)aryButton.push({ID:JSCHART_BUTTON_ID.OVERLAY_INDEX,Style:this.OverlayIndexButton});if(this.ChangeIndex)aryButton.push({ID:JSCHART_BUTTON_ID.CHANGE_INDEX,Style:this.ChangeIndexButton});if(this.ModifyIndex)aryButton.push({ID:JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM,Style:this.ModifyIndexParamButton});if(this.AddIndexWindow)aryButton.push({ID:JSCHART_BUTTON_ID.ADD_INDEX_WINDOW,Style:this.AddIndexWindowButton});if(this.IndexHelp)aryButton.push({ID:JSCHART_BUTTON_ID.INDEX_HELP,Style:this.IndexHelpButton});}if(IFrameSplitOperator.IsNonEmptyArray(this.CustomToolbar)){for(var i=0;i<this.CustomToolbar.length;++i){var item=this.CustomToolbar[i];if(item.ID&&item.Style)aryButton.push({ID:item.ID,Style:item.Style,TooltipText:item.TooltipText,Data:item.Data});}}this.DrawTitleButton(aryButton,moveonPoint,mouseStatus);};this.DrawCloseBeforeButton=function(moveonPoint,mouseStatus){if(this.Identify!=0)return;var border=this.ChartBorder.GetBorder();if(border.DayBorder)return;if(this.ChartBorder.LeftExtendWidth<10)return;var rtButton={Left:border.Left,Top:border.TopEx,Width:this.BeforeCloseIcon.Size,Height:this.BeforeCloseIcon.Size};rtButton.Right=rtButton.Left+this.BeforeCloseIcon.Size;rtButton.Bottom=rtButton.Top+this.BeforeCloseIcon.Size;var item={Rect:rtButton,Name:"集合竞价关闭按钮",ID:JSCHART_BUTTON_ID.CLOSE_BEFOREOPEN_ID};var color=this.BeforeCloseIcon.Color;if(moveonPoint&&moveonPoint.X>=rtButton.Left&&moveonPoint.X<rtButton.Right&&moveonPoint.Y>=rtButton.Top&&moveonPoint.Y<=rtButton.Bottom){color=this.BeforeCloseIcon.MoveOnColor;if(mouseStatus)mouseStatus.MouseOnToolbar={Rect:rtButton,Item:item,Frame:this,Point:{X:moveonPoint.X,Y:moveonPoint.Y}};}var font=this.BeforeCloseIcon.Size+'px '+this.BeforeCloseIcon.Family;this.Canvas.font=font;this.Canvas.fillStyle=color;this.Canvas.textAlign='left';this.Canvas.textBaseline='top';this.Canvas.fillText(this.BeforeCloseIcon.Text,border.Left,border.TopEx);this.Buttons.push(item);};this.DrawMultiDayBeforeDataBG=function(border){var dayBorder=border.DayBorder;var top=ToFixedPoint(border.Top);var bottom=ToFixedPoint(border.Bottom);var height=bottom-top;this.Canvas.strokeStyle=this.MultiDayBorderPen;for(var i=0;i<dayBorder.length;++i){var drawCount=0;var item=dayBorder[i];var left=ToFixedPoint(item.Left);var right=ToFixedPoint(item.LeftEx);var width=right-left;if(width>3)//盘前
@@ -3076,7 +3076,7 @@ this.IsDrawTitleBG=false;this.IsShowNameArrow=false;this.CustomVerticalInfo=[];/
3076
3076
  // Type:1, Space: 第几个空白间距, Line:{ Color:线段颜色, Type:线段类型 0 直线 1 虚线 }
3077
3077
  this.DrawCustomVerticalEvent;this.RightSpaceCount=0;this.Logarithmic=null;//{Up:上部 , Donw:下部 , OpenPrice:第一个开盘价}
3078
3078
  this.CustomToolbar=[];//自定义toolbar按钮 { ID:, Html:, Click } 2.0版本 { ID, Style:{ 见 g_JSChartResource.Buttons.CloseWindow}}
3079
- this.ToolbarType=0;this.DrawToolbar=function(){if(this.ToolbarButtonStyle==1)return;if(g_JSChartResource.IsDOMFrameToolbar===true)return;if(!this.DivFrameToolbar)return;this.DivFrameToolbar.Show(this.Identify);};//手绘,不用DOM,使用DOM太麻烦了
3079
+ this.ToolbarType=0;this.DrawToolbar=function(){var bDraw=true;if(this.ToolbarButtonStyle==1)bDraw=false;if(g_JSChartResource.IsDOMFrameToolbar===true)bDraw=false;if(!this.DivFrameToolbar)return;if(!bDraw)this.HideToolbar();else this.DivFrameToolbar.Show(this.Identify);};//手绘,不用DOM,使用DOM太麻烦了
3080
3080
  this.DrawToolbarV2=function(moveonPoint,mouseStatus){if(g_JSChartResource.IsDOMFrameToolbar===true)return;this.Buttons=[];if(this.IsMinSize==true)return;if(this.ChartBorder.TitleHeight<5)return;var aryButton=[];//第1个窗口不能关闭
3081
3081
  if(this.CloseIndex&&this.Identify!==0)aryButton.push({ID:JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW,Style:this.CloseWindowButton});if(this.MaxMinWindow&&this.Identify!=0)aryButton.push({ID:JSCHART_BUTTON_ID.MAX_MIN_WINDOW,Style:this.MaxMinWindowButton});if(this.TitleWindow&&this.Identify!=0)aryButton.push({ID:JSCHART_BUTTON_ID.TITLE_WINDOW,Style:this.TitleWindowButton});if(this.ExportData)aryButton.push({ID:JSCHART_BUTTON_ID.EXPORT_DATA,Style:this.ExportDataButton});if(this.OverlayIndex)aryButton.push({ID:JSCHART_BUTTON_ID.OVERLAY_INDEX,Style:this.OverlayIndexButton});if(this.ChangeIndex)aryButton.push({ID:JSCHART_BUTTON_ID.CHANGE_INDEX,Style:this.ChangeIndexButton});if(this.ModifyIndex)aryButton.push({ID:JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM,Style:this.ModifyIndexParamButton});if(this.AddIndexWindow)aryButton.push({ID:JSCHART_BUTTON_ID.ADD_INDEX_WINDOW,Style:this.AddIndexWindowButton});if(this.IndexHelp)aryButton.push({ID:JSCHART_BUTTON_ID.INDEX_HELP,Style:this.IndexHelpButton});if(IFrameSplitOperator.IsNonEmptyArray(this.CustomToolbar)){for(var i=0;i<this.CustomToolbar.length;++i){var item=this.CustomToolbar[i];if(item.ID&&item.Style){var btnItem={ID:item.ID,Style:item.Style,TooltipText:item.TooltipText,Data:item.Data};if(item.IsLeft===true)//左侧按钮
3082
3082
  {}else{aryButton.push(btnItem);//右侧按钮
@@ -4119,7 +4119,7 @@ else if(data.Direction==2)preItem.Y=yLow;//下
4119
4119
  //this.Canvas.fillRect(rect.X,rect.Y,rect.Width,rect.Height);
4120
4120
  this.TooltipRect.push([i,rect]);//[0]数据索引 [1]数据区域
4121
4121
  }}};this.DrawHLCArea=function(){var isHScreen=this.ChartFrame.IsHScreen===true;var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var xPointCount=this.ChartFrame.XPointCount;if(isHScreen){var border=this.ChartBorder.GetHScreenBorder();var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.BottomEx;var borderLeft=border.TopEx;}else{var border=this.ChartBorder.GetBorder();var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;var borderLeft=border.LeftEx;}var lowPath=new Path2D();var highPath=new Path2D();var closePath=new Path2D();var upArea=new Path2D();var downArea=new Path2D();var aryHighPoint=[];var aryLowPoint=[];var aryClosePoint=[];var bFirstPoint=true;if(this.Data.DataOffset>0)//把最左边的一个点连上
4122
- {var data=this.Data.Data[this.Data.DataOffset-1];if(data&&IFrameSplitOperator.IsNumber(data.Close)&&IFrameSplitOperator.IsNumber(data.High)&&IFrameSplitOperator.IsNumber(data.Low)){var x=borderLeft;var yClose=this.GetYFromData(data.Close,false);var yHigh=this.GetYFromData(data.High,false);var yLow=this.GetYFromData(data.Low,false);if(isHScreen){closePath.moveTo(yClose,x);highPath.moveTo(yHigh,x);lowPath.moveTo(yLow,x);upArea.moveTo(yHigh,x);downArea.moveTo(yLow,x);aryClosePoint.push({X:yClose,Y:x});aryHighPoint.push({X:yHigh,Y:x});aryLowPoint.push({X:yLow,Y:x});}else{closePath.moveTo(x,yClose);highPath.moveTo(x,yHigh);lowPath.moveTo(x,yLow);upArea.moveTo(x,yHigh);downArea.moveTo(x,yLow);aryClosePoint.push({X:x,Y:yClose});aryHighPoint.push({X:x,Y:yHigh});aryLowPoint.push({X:x,Y:yLow});}bFirstPoint=false;}}this.ShowRange.Start=this.Data.DataOffset;this.ShowRange.End=this.ShowRange.Start;this.ShowRange.DataCount=0;this.ShowRange.ShowCount=xPointCount;this.DrawKRange.Start=this.Data.DataOffset;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth,++this.ShowRange.DataCount){var data=this.Data.Data[i];this.ShowRange.End=i;if(!data||!IFrameSplitOperator.IsNumber(data.Close)||!IFrameSplitOperator.IsNumber(data.High)||!IFrameSplitOperator.IsNumber(data.Low))continue;var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;var x=left+(right-left)/2;var yClose=this.GetYFromData(data.Close,false);var yHigh=this.GetYFromData(data.High,false);var yLow=this.GetYFromData(data.Low,false);this.DrawKRange.End=i;if(bFirstPoint){if(isHScreen){closePath.moveTo(yClose,x);highPath.moveTo(yHigh,x);lowPath.moveTo(yLow,x);upArea.moveTo(yHigh,x);downArea.moveTo(yLow,x);}else{closePath.moveTo(x,yClose);highPath.moveTo(x,yHigh);lowPath.moveTo(x,yLow);upArea.moveTo(x,yHigh);downArea.moveTo(x,yLow);}bFirstPoint=false;}else{if(isHScreen){closePath.lineTo(yClose,x);highPath.lineTo(yHigh,x);lowPath.lineTo(yLow,x);upArea.lineTo(yHigh,x);downArea.lineTo(yLow,x);}else{closePath.lineTo(x,yClose);highPath.lineTo(x,yHigh);lowPath.lineTo(x,yLow);upArea.lineTo(x,yHigh);downArea.lineTo(x,yLow);}}if(isHScreen){aryClosePoint.push({X:yClose,Y:x});aryHighPoint.push({X:yHigh,Y:x});aryLowPoint.push({X:yLow,Y:x});}else{aryClosePoint.push({X:x,Y:yClose});aryHighPoint.push({X:x,Y:yHigh});aryLowPoint.push({X:x,Y:yLow});}}if(bFirstPoint)return;for(var i=aryClosePoint.length-1;i>=0;--i){var item=aryClosePoint[i];upArea.lineTo(item.X,item.Y);downArea.lineTo(item.X,item.Y);}upArea.closePath();downArea.closePath();this.Canvas.fillStyle=this.HLCAreaConfig.UpAreaColor;this.Canvas.fill(upArea);this.Canvas.fillStyle=this.HLCAreaConfig.DownAreaColor;this.Canvas.fill(downArea);if(IFrameSplitOperator.IsNumber(this.HLCAreaConfig.LineWidth))this.Canvas.lineWidth=this.HLCAreaConfig.LineWidth;this.Canvas.strokeStyle=this.HLCAreaConfig.CloseLineColor;this.Canvas.stroke(closePath);this.Canvas.strokeStyle=this.HLCAreaConfig.HighLineColor;this.Canvas.stroke(highPath);this.Canvas.strokeStyle=this.HLCAreaConfig.LowLineColor;this.Canvas.stroke(lowPath);};this.ClipTickClient=function(isHScreen){var border=this.GetBorder();if(isHScreen==true){var left=this.ChartBorder.GetLeftEx();var right=this.ChartBorder.GetRightEx();var top=this.ChartBorder.GetTop();var bottom=this.ChartBorder.GetBottom();}else{var left=border.Left;var right=border.Right;var top=border.TopTitle;var bottom=border.Bottom;}this.Canvas.beginPath();this.Canvas.rect(left,top,right-left,bottom-top);this.Canvas.clip();};this.ClipWindow=function(isHScreen){if(isHScreen==true){var left=this.ChartBorder.GetLeft();var right=this.ChartBorder.GetRightEx();var top=this.ChartBorder.GetTop();var bottom=this.ChartBorder.GetBottom();}else{var left=this.ChartBorder.GetLeft();var right=this.ChartBorder.GetRight();var top=this.ChartBorder.GetTopEx();var bottom=this.ChartBorder.GetBottom();}this.Canvas.beginPath();this.Canvas.rect(left,top,right-left,bottom-top);//this.Canvas.stroke(); //调试用
4122
+ {var data=this.Data.Data[this.Data.DataOffset-1];if(data&&IFrameSplitOperator.IsNumber(data.Close)&&IFrameSplitOperator.IsNumber(data.High)&&IFrameSplitOperator.IsNumber(data.Low)){var x=borderLeft;var yClose=this.GetYFromData(data.Close,false);var yHigh=this.GetYFromData(data.High,false);var yLow=this.GetYFromData(data.Low,false);if(isHScreen){closePath.moveTo(yClose,x);highPath.moveTo(yHigh,x);lowPath.moveTo(yLow,x);upArea.moveTo(yHigh,x);downArea.moveTo(yLow,x);aryClosePoint.push({X:yClose,Y:x});aryHighPoint.push({X:yHigh,Y:x});aryLowPoint.push({X:yLow,Y:x});}else{closePath.moveTo(x,yClose);highPath.moveTo(x,yHigh);lowPath.moveTo(x,yLow);upArea.moveTo(x,yHigh);downArea.moveTo(x,yLow);aryClosePoint.push({X:x,Y:yClose});aryHighPoint.push({X:x,Y:yHigh});aryLowPoint.push({X:x,Y:yLow});}bFirstPoint=false;}}this.ShowRange.Start=this.Data.DataOffset;this.ShowRange.End=this.ShowRange.Start;this.ShowRange.DataCount=0;this.ShowRange.ShowCount=xPointCount;this.DrawKRange.Start=this.Data.DataOffset;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth,++this.ShowRange.DataCount){var data=this.Data.Data[i];this.ShowRange.End=i;if(!data||!IFrameSplitOperator.IsNumber(data.Close)||!IFrameSplitOperator.IsNumber(data.High)||!IFrameSplitOperator.IsNumber(data.Low))continue;var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;var x=left+(right-left)/2;var yClose=this.GetYFromData(data.Close,false);var yHigh=this.GetYFromData(data.High,false);var yLow=this.GetYFromData(data.Low,false);this.DrawKRange.End=i;if(bFirstPoint){if(isHScreen){closePath.moveTo(yClose,x);highPath.moveTo(yHigh,x);lowPath.moveTo(yLow,x);upArea.moveTo(yHigh,x);downArea.moveTo(yLow,x);}else{closePath.moveTo(x,yClose);highPath.moveTo(x,yHigh);lowPath.moveTo(x,yLow);upArea.moveTo(x,yHigh);downArea.moveTo(x,yLow);}bFirstPoint=false;}else{if(isHScreen){closePath.lineTo(yClose,x);highPath.lineTo(yHigh,x);lowPath.lineTo(yLow,x);upArea.lineTo(yHigh,x);downArea.lineTo(yLow,x);}else{closePath.lineTo(x,yClose);highPath.lineTo(x,yHigh);lowPath.lineTo(x,yLow);upArea.lineTo(x,yHigh);downArea.lineTo(x,yLow);}}if(isHScreen){aryClosePoint.push({X:yClose,Y:x});aryHighPoint.push({X:yHigh,Y:x});aryLowPoint.push({X:yLow,Y:x});}else{aryClosePoint.push({X:x,Y:yClose});aryHighPoint.push({X:x,Y:yHigh});aryLowPoint.push({X:x,Y:yLow});}}if(bFirstPoint)return;for(var i=aryClosePoint.length-1;i>=0;--i){var item=aryClosePoint[i];upArea.lineTo(item.X,item.Y);downArea.lineTo(item.X,item.Y);}upArea.closePath();downArea.closePath();this.Canvas.fillStyle=this.HLCAreaConfig.UpAreaColor;this.Canvas.fill(upArea);this.Canvas.fillStyle=this.HLCAreaConfig.DownAreaColor;this.Canvas.fill(downArea);if(IFrameSplitOperator.IsNumber(this.HLCAreaConfig.LineWidth))this.Canvas.lineWidth=this.HLCAreaConfig.LineWidth;this.Canvas.strokeStyle=this.HLCAreaConfig.CloseLineColor;this.Canvas.stroke(closePath);this.Canvas.strokeStyle=this.HLCAreaConfig.HighLineColor;this.Canvas.stroke(highPath);this.Canvas.strokeStyle=this.HLCAreaConfig.LowLineColor;this.Canvas.stroke(lowPath);};this.ClipTickClient=function(isHScreen){var border=this.GetBorder();if(isHScreen==true){var left=this.ChartBorder.GetLeftEx();var right=this.ChartBorder.GetRightEx();var top=this.ChartBorder.GetTop();var bottom=this.ChartBorder.GetBottom();}else{var left=border.Left;var right=border.Right;var top=border.TopTitle;var bottom=border.Bottom;}this.Canvas.beginPath();this.Canvas.rect(left,top,right-left,bottom-top);this.Canvas.clip();};this.ClipWindow=function(isHScreen){if(isHScreen==true){var left=this.ChartBorder.GetLeft();var right=this.ChartBorder.GetRightEx();var top=this.ChartBorder.GetTop();var bottom=this.ChartBorder.GetBottom();}else{var left=this.ChartBorder.GetLeft();var right=this.ChartBorder.GetRight();var top=this.ChartBorder.GetTop();var bottom=this.ChartBorder.GetBottom();}this.Canvas.beginPath();this.Canvas.rect(left,top,right-left,bottom-top);//this.Canvas.stroke(); //调试用
4123
4123
  this.Canvas.clip();};this.ClipClient=function(isHScreen)//裁剪客户端
4124
4124
  {if(isHScreen==true){var left=this.ChartBorder.GetLeftEx();var right=this.ChartBorder.GetRightEx();var top=this.ChartBorder.GetTop();var bottom=this.ChartBorder.GetBottom();}else{var left=this.ChartBorder.GetLeft();var right=this.ChartBorder.GetRight();var top=this.ChartBorder.GetTopEx();var bottom=this.ChartBorder.GetBottomEx();if(this.ChartBorder.BottomSpace>0)bottom+=1;if(this.DrawType==13)//需要显示文字,裁剪要大点
4125
4125
  {top=this.ChartBorder.GetTopTitle();bottom=this.ChartBorder.GetBottom();}}this.Canvas.beginPath();this.Canvas.rect(left,top,right-left,bottom-top);//this.Canvas.stroke(); //调试用
@@ -6004,8 +6004,9 @@ this.SplitDateTime=function()//根据时间分割
6004
6004
  {this.Frame.VerticalInfo=[];var itemWidth=this.Frame.DistanceWidth+this.Frame.DataWidth;var xOffset=this.Frame.Data.DataOffset;var xPointCount=this.Frame.XPointCount;var lastYear=null,lastMonth=null;var textDistance=0;var barDistance=0;for(var i=0,index=xOffset;i<xPointCount&&index<this.Frame.Data.Data.length;++i,++index){textDistance+=itemWidth;++barDistance;var infoData=null;if(i==0){var date=IFrameSplitOperator.FormatDateString(this.Frame.Data.Data[index].Date,'MM-DD');infoData={Value:index-xOffset,Text:date};}else if(textDistance>this.MinTextDistance&&barDistance>=this.MinBarDistance){var time=IFrameSplitOperator.FormatTimeString(this.Frame.Data.Data[index].Time);infoData={Value:index-xOffset,Text:time};}if(infoData){var info=new CoordinateInfo();info.Value=infoData.Value;if(this.ShowText)info.Message[0]=infoData.Text;if(info.Value==0)info.LineType=-1;//第1个分割线不画
6005
6005
  this.Frame.VerticalInfo.push(info);textDistance=0;barDistance=0;if(i==0)textDistance=-(this.MinTextDistance/2);}}};this.SplitSecond=function()//根据时间分割
6006
6006
  {this.Frame.VerticalInfo=[];var itemWidth=this.Frame.DistanceWidth+this.Frame.DataWidth;var xOffset=this.Frame.Data.DataOffset;var xPointCount=this.Frame.XPointCount;var textDistance=0;var barDistance=0;for(var i=0,index=xOffset;i<xPointCount&&index<this.Frame.Data.Data.length;++i,++index){textDistance+=itemWidth;++barDistance;var infoData=null;if(i==0){var date=IFrameSplitOperator.FormatDateString(this.Frame.Data.Data[index].Date,'MM-DD');infoData={Value:index-xOffset,Text:date};}else if(textDistance>this.MinTextDistance&&barDistance>=this.MinBarDistance){var time=IFrameSplitOperator.FormatTimeString(this.Frame.Data.Data[index].Time,"HH:MM:SS");infoData={Value:index-xOffset,Text:time};}if(infoData){var info=new CoordinateInfo();info.Value=infoData.Value;if(this.ShowText)info.Message[0]=infoData.Text;this.Frame.VerticalInfo.push(info);textDistance=0;barDistance=0;if(i==0)textDistance=-(this.MinTextDistance/2);}}};this.SplitMilliSecond=function(){this.Frame.VerticalInfo=[];var itemWidth=this.Frame.DistanceWidth+this.Frame.DataWidth;var xOffset=this.Frame.Data.DataOffset;var xPointCount=this.Frame.XPointCount;var textDistance=0;var barDistance=0;for(var i=0,index=xOffset;i<xPointCount&&index<this.Frame.Data.Data.length;++i,++index){textDistance+=itemWidth;++barDistance;var infoData=null;if(i==0){var date=IFrameSplitOperator.FormatDateString(this.Frame.Data.Data[index].Date,'HH:MM:SS.fff');infoData={Value:index-xOffset,Text:date};}else if(textDistance>this.MinTextDistance&&barDistance>=this.MinBarDistance){var time=IFrameSplitOperator.FormatTimeString(this.Frame.Data.Data[index].Time,"HH:MM:SS.fff");infoData={Value:index-xOffset,Text:time};}if(infoData){var info=new CoordinateInfo();info.Value=infoData.Value;if(this.ShowText)info.Message[0]=infoData.Text;this.Frame.VerticalInfo.push(info);textDistance=0;barDistance=0;if(i==0)textDistance=-(this.MinTextDistance/2);}}};this.SplitDate=function()//根据日期分割
6007
- {this.Frame.VerticalInfo=[];var xOffset=this.Frame.Data.DataOffset;var xPointCount=this.Frame.XPointCount;var lastYear=null,lastMonth=null;var minDistance=12;var monthCount=0;for(var i=0,index=xOffset,distance=minDistance;i<xPointCount&&index<this.Frame.Data.Data.length;++i,++index){var year=parseInt(this.Frame.Data.Data[index].Date/10000);var month=parseInt(this.Frame.Data.Data[index].Date/100)%100;if(lastMonth!=month)++monthCount;if(distance<minDistance||lastYear!=null&&lastYear==year&&lastMonth!=null&&lastMonth==month){lastMonth=month;++distance;continue;}var info=new CoordinateInfo();info.Value=index-xOffset;var text;if(lastYear==null||lastYear!=year){text=year.toString();}else if(lastMonth==null||lastMonth!=month){text=month.toString()+'月';text=g_JSChartLocalization.GetText(text,this.LanguageID);}lastYear=year;lastMonth=month;if(this.ShowText)info.Message[0]=text;if(info.Value==0)info.LineType=-1;//第1个分割线不画
6008
- this.Frame.VerticalInfo.push(info);distance=0;}if(this.Period==0&&monthCount<=2)this.SplitShortDate();};//分隔在2个月一下的格式
6007
+ {this.Frame.VerticalInfo=[];var xOffset=this.Frame.Data.DataOffset;var xPointCount=this.Frame.XPointCount;var lastYear=null,lastMonth=null;var minDistance=12;var monthCount=0;var globalOption=this.Frame.GlobalOption;for(var i=0,index=xOffset,distance=minDistance;i<xPointCount&&index<this.Frame.Data.Data.length;++i,++index){var year=parseInt(this.Frame.Data.Data[index].Date/10000);var month=parseInt(this.Frame.Data.Data[index].Date/100)%100;if(lastMonth!=month)++monthCount;if(distance<minDistance||lastYear!=null&&lastYear==year&&lastMonth!=null&&lastMonth==month){lastMonth=month;++distance;continue;}var info=new CoordinateInfo();info.Value=index-xOffset;var text;if(lastYear==null||lastYear!=year){text=year.toString();}else if(lastMonth==null||lastMonth!=month){text=month.toString()+'月';text=g_JSChartLocalization.GetText(text,this.LanguageID);}lastYear=year;lastMonth=month;if(this.ShowText)info.Message[0]=text;if(info.Value==0)info.LineType=-1;//第1个分割线不画
6008
+ this.Frame.VerticalInfo.push(info);distance=0;}var bShowShortDate=true;//日线显示在2个月以下的 显示格式
6009
+ if(globalOption&&IFrameSplitOperator.IsBool(globalOption.EnableXShortDate))bShowShortDate=globalOption.EnableXShortDate;if(bShowShortDate&&this.Period==0&&monthCount<=2)this.SplitShortDate();};//分隔在2个月以内的格式
6009
6010
  this.SplitShortDate=function(){this.Frame.VerticalInfo=[];var xOffset=this.Frame.Data.DataOffset;var xPointCount=this.Frame.XPointCount;var minDistance=12;var isFirstYear=true;for(var i=0,index=xOffset,distance=minDistance;i<xPointCount&&index<this.Frame.Data.Data.length;++i,++index){var year=parseInt(this.Frame.Data.Data[index].Date/10000);//var month=parseInt(this.Frame.Data.Data[index].Date/100)%100;
6010
6011
  //var day=parseInt(this.Frame.Data.Data[index].Date%100);
6011
6012
  if(distance<minDistance){++distance;continue;}var info=new CoordinateInfo();info.Value=index-xOffset;var text;if(isFirstYear){text=year.toString();isFirstYear=false;}else{text=IFrameSplitOperator.FormatDateString(this.Frame.Data.Data[index].Date,'MM-DD');}if(this.ShowText)info.Message[0]=text;if(info.Value==0)info.LineType=-1;//第1个分割线不画
@@ -14133,7 +14134,7 @@ this.HeaderFontConfig={Size:g_JSChartResource.Report.Header.Font.Size,Name:g_JSC
14133
14134
  this.ItemFontConfig={Size:g_JSChartResource.Report.Item.Font.Size,Name:g_JSChartResource.Report.Item.Font.Name};this.ItemMergin={Left:g_JSChartResource.Report.Item.Mergin.Left,Right:g_JSChartResource.Report.Item.Mergin.Right,Top:g_JSChartResource.Report.Item.Mergin.Top,Bottom:g_JSChartResource.Report.Item.Mergin.Bottom};this.BarMergin={Top:g_JSChartResource.Report.Item.BarMergin.Top,Left:g_JSChartResource.Report.Item.BarMergin.Left,Right:g_JSChartResource.Report.Item.BarMergin.Right,Bottom:g_JSChartResource.Report.Item.BarMergin.Bottom};this.LimitBorderColor=g_JSChartResource.Report.LimitBorder.Color;this.LimitMergin={Top:g_JSChartResource.Report.LimitBorder.Mergin.Top,Left:g_JSChartResource.Report.LimitBorder.Mergin.Left,Right:g_JSChartResource.Report.LimitBorder.Mergin.Right,Bottom:g_JSChartResource.Report.LimitBorder.Mergin.Bottom};this.DragRowColor=g_JSChartResource.Report.DragRow.Color;this.DragRowTextColor=g_JSChartResource.Report.DragRow.TextColor;this.DragMoveRowColor=g_JSChartResource.Report.DragRow.MoveRowColor;this.DragSrcRowColor=g_JSChartResource.Report.DragRow.SrcRowColor;//排序图标
14134
14135
  this.SortConfig={Size:g_JSChartResource.Report.SortIcon.Size,Family:g_JSChartResource.Report.SortIcon.Family,Arrow:g_JSChartResource.Report.SortIcon.Arrow.slice(),Color:g_JSChartResource.Report.SortIcon.Color.slice(),Margin:{Left:g_JSChartResource.Report.SortIcon.Margin.Left,Bottom:g_JSChartResource.Report.SortIcon.Margin.Bottom}};for(var i=0;i<this.Column.length;++i){var item=this.Column[i];if(item.Type==REPORT_COLUMN_ID.INDEX_ID)item.TextColor=g_JSChartResource.Report.FieldColor.Index;else if(item.Type==REPORT_COLUMN_ID.SYMBOL_ID)item.TextColor=g_JSChartResource.Report.FieldColor.Symbol;else if(item.Type==REPORT_COLUMN_ID.NAME_ID)item.TextColor=g_JSChartResource.Report.FieldColor.Name;else if(item.Type==REPORT_COLUMN_ID.VOL_ID)item.TextColor=g_JSChartResource.Report.FieldColor.Vol;else if(item.Type==REPORT_COLUMN_ID.BUY_VOL_ID)item.TextColor=g_JSChartResource.Report.FieldColor.Vol;else if(item.Type==REPORT_COLUMN_ID.SELL_VOL_ID)item.TextColor=g_JSChartResource.Report.FieldColor.Vol;else if(item.Type==REPORT_COLUMN_ID.AMOUNT_ID)item.TextColor=g_JSChartResource.Report.FieldColor.Amount;else if(item.Type==REPORT_COLUMN_ID.VOL_IN_ID)item.TextColor=g_JSChartResource.Report.DownTextColor;else if(item.Type==REPORT_COLUMN_ID.VOL_OUT_ID)item.TextColor=g_JSChartResource.Report.UpTextColor;else item.TextColor=g_JSChartResource.Report.FieldColor.Text;}if(this.Tab)this.Tab.ReloadResource(resource);if(this.VScrollbar)this.VScrollbar.ReloadResource(resource);this.CheckBoxConfig=CloneData(g_JSChartResource.Report.CheckBox);this.LinkConfig=CloneData(g_JSChartResource.Report.Link);this.ProgressBarConfig=CloneData(g_JSChartResource.Report.ProgressBar);};this.CreateColumnItem=function(item){var colItem=this.GetDefaultColunm(item.Type);if(!colItem)return null;if(item.Title)colItem.Title=item.Title;if(IFrameSplitOperator.IsNonEmptyArray(item.AryTitle))colItem.AryTitle=item.AryTitle;if(item.TextAlign)colItem.TextAlign=item.TextAlign;if(item.TextColor)colItem.TextColor=item.TextColor;if(item.HeaderColor)colItem.HeaderColor=item.HeaderColor;if(item.MaxText)colItem.MaxText=item.MaxText;if(item.MaxText2)colItem.MaxText=item.MaxText2;if(item.TitleAlign)colItem.TitleAlign=item.TitleAlign;if(IFrameSplitOperator.IsNumber(item.Space))colItem.Space=item.Space;if(item.ID)colItem.ID=item.ID;if(item.FullColBGColor)colItem.FullColBGColor=item.FullColBGColor;//整列背景色
14135
14136
  if(item.HeaderBGColor)colItem.HeaderBGColor=item.HeaderBGColor;//表头背景色
14136
- if(IFrameSplitOperator.IsNumber(item.Sort))colItem.Sort=item.Sort;if(IFrameSplitOperator.IsNumber(item.FixedWidth))colItem.FixedWidth=item.FixedWidth;if(IFrameSplitOperator.IsBool(item.EnableDragWidth))colItem.EnableDragWidth=item.EnableDragWidth;colItem.IsDrawCallback=false;if(IFrameSplitOperator.IsBool(item.IsDrawCallback))colItem.IsDrawCallback=item.IsDrawCallback;if(IFrameSplitOperator.IsBool(item.EnableFormatDrawInfoEvent))colItem.EnableFormatDrawInfoEvent=item.EnableFormatDrawInfoEvent;if(IFrameSplitOperator.IsNumber(item.FloatPrecision))colItem.FloatPrecision=item.FloatPrecision;//小数位数
14137
+ if(IFrameSplitOperator.IsNumber(item.Sort))colItem.Sort=item.Sort;if(IFrameSplitOperator.IsNumber(item.FixedWidth))colItem.FixedWidth=item.FixedWidth;else if(item.FixedWidth===null)colItem.FixedWidth=null;if(IFrameSplitOperator.IsBool(item.EnableDragWidth))colItem.EnableDragWidth=item.EnableDragWidth;colItem.IsDrawCallback=false;if(IFrameSplitOperator.IsBool(item.IsDrawCallback))colItem.IsDrawCallback=item.IsDrawCallback;if(IFrameSplitOperator.IsBool(item.EnableFormatDrawInfoEvent))colItem.EnableFormatDrawInfoEvent=item.EnableFormatDrawInfoEvent;if(IFrameSplitOperator.IsNumber(item.FloatPrecision))colItem.FloatPrecision=item.FloatPrecision;//小数位数
14137
14138
  if(IFrameSplitOperator.IsNumber(item.ColorType))colItem.ColorType=item.ColorType;//0=默认 1=(>0, =0, <0) 2=(>=0, <0) 3=(>YClose =YClose <YClose)
14138
14139
  if(item.Icon)colItem.Icon=item.Icon;if(IFrameSplitOperator.IsBool(item.EnableChartTooltip))colItem.ChartTooltip={Enable:item.EnableChartTooltip,Type:20};if(item.ChartTooltip)colItem.ChartTooltip={Enable:item.ChartTooltip.Enable,Type:item.ChartTooltip.Type};//点击表头弹出菜单
14139
14140
  if(IFrameSplitOperator.IsBool(item.EnablePopupHeaderMenu))colItem.EnablePopupHeaderMenu=item.EnablePopupHeaderMenu;if(item.Sort==1||item.Sort==2)//1本地排序 2=远程排序
@@ -14256,7 +14257,7 @@ this.DrawLine=function(lineData,column,rtItem){if(!lineData)return false;if(!IFr
14256
14257
  {if(lineData.YClose==priceMax&&lineData.YClose==priceMin){priceMax=lineData.YClose+lineData.YClose*0.1;priceMin=lineData.YClose-lineData.YClose*0.1;}else{var distanceValue=Math.max(Math.abs(lineData.YClose-priceMax),Math.abs(lineData.YClose-priceMin));priceMax=lineData.YClose+distanceValue;priceMin=lineData.YClose-distanceValue;}}var Temp_GetYFromData=function Temp_GetYFromData(value){if(value<=priceMin)return bottom;if(value>=priceMax)return top;var value=height*(value-priceMin)/(priceMax-priceMin);return bottom-value;};this.Canvas.save();var yCenter=null;if(IFrameSplitOperator.IsNumber(lineData.YClose)){var y=Temp_GetYFromData(lineData.YClose);y=ToFixedPoint(y);yCenter=y;this.Canvas.setLineDash([2,2]);this.Canvas.strokeStyle=this.CloseLineConfig.YCloseColor;this.Canvas.beginPath();this.Canvas.moveTo(left,y);this.Canvas.lineTo(right,y);this.Canvas.stroke();this.Canvas.setLineDash([]);}if(lineData.Color)this.Canvas.strokeStyle=lineData.Color;else this.Canvas.strokeStyle=this.CloseLineConfig.CloseColor;var bFirstPoint=true;var ptFirst={};//第1个点
14257
14258
  var drawCount=0,x,y;for(var i=0;i<lineData.Data.length;++i){var value=lineData.Data[i];if(!IFrameSplitOperator.IsNumber(value))continue;x=Temp_GetXFromIndex(i);y=Temp_GetYFromData(value);if(bFirstPoint){this.Canvas.beginPath();this.Canvas.moveTo(x,y);bFirstPoint=false;ptFirst={X:x,Y:y};}else{this.Canvas.lineTo(x,y);}++drawCount;}if(drawCount>0){this.Canvas.stroke();if(column.IsDrawArea&&IFrameSplitOperator.IsNumber(yCenter)){this.Canvas.lineTo(x,yCenter);this.Canvas.lineTo(ptFirst.X,yCenter);this.Canvas.closePath();var areaColor=this.CloseLineConfig.AreaColor;if(lineData.AreaColor)areaColor=lineData.AreaColor;this.SetFillStyle(areaColor,left,top,left,bottom);this.Canvas.fill();}}this.Canvas.restore();};//klineData={ Data:[ open, high, low, close ] }
14258
14259
  this.DrawKLine=function(klineData,column,rtItem,data){if(column.IsDrawCallback)//外部处理输出格式
14259
- {var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_REPORT_DRAW_KLINE);if(event||event.Callback){var sendData={Column:column,Data:data,KLineData:klineData,Rect:rtItem,PreventDefault:false};event.Callback(event,sendData,this);if(sendData.PreventDefault)return;}}if(!klineData)return;if(!IFrameSplitOperator.IsNonEmptyArray(klineData.Data))return;var high=klineData.Data[1];var low=klineData.Data[2];var aryKLine=[{Open:klineData.Data[0],High:high,Low:low,Close:klineData.Data[3]}];this.DrawKLineBar(aryKLine,high,low,rtItem);};this.DrawKLineBar=function(aryKLine,high,low,rtItem){var yMergin=4;var left=rtItem.Left+this.ItemMergin.Left;var width=rtItem.Width-this.ItemMergin.Left-this.ItemMergin.Right;var left=rtItem.Left+this.ItemMergin.Left;var top=rtItem.Top+this.ItemMergin.Top+yMergin;var height=rtItem.Height-this.ItemMergin.Top-this.ItemMergin.Bottom-yMergin*2;var right=left+width;var bottom=top+height;var Temp_GetYFromData=function Temp_GetYFromData(value){if(value<=low)return bottom;if(value>=high)return top;var value=height*(value-low)/(high-low);return bottom-value;};var dataWidth=this.KLineConfig.DataWidth;var distanceWidth=this.KLineConfig.DistanceWidth;var xOffset=left;var x,xLeft,xRight;for(var i=0;i<aryKLine.length;++i,xOffset+=dataWidth+distanceWidth){var item=aryKLine[i];xLeft=xOffset;xRight=xOffset+dataWidth;x=xLeft+(xRight-xLeft)/2;if(xRight>right)break;var yLow=Temp_GetYFromData(item.Low,false);var yHigh=Temp_GetYFromData(item.High,false);var yOpen=Temp_GetYFromData(item.Open,false);var yClose=Temp_GetYFromData(item.Close,false);var y=yHigh;if(item.Open<item.Close)//阳线
14260
+ {var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_REPORT_DRAW_KLINE);if(event||event.Callback){var sendData={Column:column,Data:data,KLineData:klineData,Rect:rtItem,PreventDefault:false};event.Callback(event,sendData,this);if(sendData.PreventDefault)return;}}if(!klineData)return;var aryKLine=[];var high=null,low=null;if(IFrameSplitOperator.IsNonEmptyArray(klineData.AryData)){for(var i=0;i<klineData.AryData.length;++i){var item=klineData.AryData[i];var kItem={Open:item[0],High:item[1],Low:item[2],Close:item[3]};if(high==null||high<item[1])high=item[1];if(low==null||low>item[2])low=item[2];aryKLine.push(kItem);}}else if(IFrameSplitOperator.IsNonEmptyArray(klineData.Data)){high=klineData.Data[1];low=klineData.Data[2];var kItem={Open:klineData.Data[0],High:high,Low:low,Close:klineData.Data[3]};aryKLine.push(kItem);}if(!IFrameSplitOperator.IsNonEmptyArray(aryKLine))return;this.DrawKLineBar(aryKLine,high,low,rtItem);};this.DrawKLineBar=function(aryKLine,high,low,rtItem){var yMergin=4;var left=rtItem.Left+this.ItemMergin.Left;var width=rtItem.Width-this.ItemMergin.Left-this.ItemMergin.Right;var left=rtItem.Left+this.ItemMergin.Left;var top=rtItem.Top+this.ItemMergin.Top+yMergin;var height=rtItem.Height-this.ItemMergin.Top-this.ItemMergin.Bottom-yMergin*2;var right=left+width;var bottom=top+height;var Temp_GetYFromData=function Temp_GetYFromData(value){if(value<=low)return bottom;if(value>=high)return top;var value=height*(value-low)/(high-low);return bottom-value;};var dataWidth=this.KLineConfig.DataWidth;var distanceWidth=this.KLineConfig.DistanceWidth;var xOffset=left;var x,xLeft,xRight;for(var i=0;i<aryKLine.length;++i,xOffset+=dataWidth+distanceWidth){var item=aryKLine[i];xLeft=xOffset;xRight=xOffset+dataWidth;x=xLeft+(xRight-xLeft)/2;if(xRight>right)break;var yLow=Temp_GetYFromData(item.Low,false);var yHigh=Temp_GetYFromData(item.High,false);var yOpen=Temp_GetYFromData(item.Open,false);var yClose=Temp_GetYFromData(item.Close,false);var y=yHigh;if(item.Open<item.Close)//阳线
14260
14261
  {this.DrawKBarItem(item,dataWidth,this.KLineConfig.UpColor,1,xLeft,xRight,yLow,yHigh,yOpen,yClose);}else if(item.Open>item.Close)//阴线
14261
14262
  {this.DrawKBarItem(item,dataWidth,this.KLineConfig.DownColor,0,xLeft,xRight,yLow,yHigh,yOpen,yClose);}else//平线
14262
14263
  {this.DrawKBarItem(item,dataWidth,this.KLineConfig.UnchagneColor,0,xLeft,xRight,yLow,yHigh,yOpen,yClose);}}};this.DrawKBarItem=function(data,dataWidth,barColor,drawType,left,right,yLow,yHigh,yOpen,yClose){var isEmptyBar=false;if(drawType==1)isEmptyBar=true;var yBarTop=Math.min(yOpen,yClose);var yBarBottom=Math.max(yOpen,yClose);var barTopValue=Math.max(data.Open,data.Close);var barBottomValue=Math.min(data.Open,data.Close);this.Canvas.fillStyle=barColor;this.Canvas.strokeStyle=barColor;var x=left+(right-left)/2;if(isEmptyBar){if(dataWidth%2!=0)dataWidth-=1;}if(dataWidth>=4){if(data.High>barTopValue){this.Canvas.beginPath();var xBar=x;if(isEmptyBar)xBar=left+dataWidth/2;this.Canvas.moveTo(ToFixedPoint(xBar),ToFixedPoint(yBarTop));this.Canvas.lineTo(ToFixedPoint(xBar),ToFixedPoint(yHigh));this.Canvas.stroke();}if(Math.abs(yBarBottom-yBarTop)<1){this.Canvas.fillRect(ToFixedRect(left),ToFixedRect(yBarTop),ToFixedRect(dataWidth),1);//高度小于1,统一使用高度1
@@ -14268,7 +14269,7 @@ this.GetNameColor=function(colunmInfo,symbol,rowType){var event=this.GetEventCal
14268
14269
  }var row=this.PtInBody(x,y);if(row){var btnStatus={Redraw:false};this.OnClickButton(x,y,e,btnStatus);var bRedraw=true;if(this.MultiSelectModel==1){if(e&&e.ctrlKey)//多选
14269
14270
  {var pos=this.MultiSelectedRow.indexOf(row.DataIndex);if(pos>=0)this.MultiSelectedRow.splice(pos,1);else this.MultiSelectedRow.push(row.DataIndex);}else if(e&&e.shiftKey)//批量多选
14270
14271
  {this.OnShiftClickRow(row);}else{if(this.MultiSelectedRow.length==1&&this.MultiSelectedRow[0]==row.DataIndex)bRedraw=false;else this.MultiSelectedRow=[row.DataIndex];}this.SelectedFixedRow=-1;}else{if(this.SelectedModel==0){if(this.SelectedRowData&&this.SelectedRowData.Index==row.Index&&this.SelectedRowData.Symbol==row.Symbol)bRedraw=false;this.SelectedRowData={Index:row.Index,Symbol:row.Symbol};this.SelectedFixedRow=-1;}else{if(this.SelectedRowData&&this.SelectedRowData.DataIndex==row.DataIndex&&this.SelectedRowData.Symbol==row.Symbol)bRedraw=false;this.SelectedRowData={DataIndex:row.DataIndex,Symbol:row.Symbol};this.SelectedFixedRow=-1;}}var eventID=JSCHART_EVENT_ID.ON_CLICK_REPORT_ROW;if(e.button==2)eventID=JSCHART_EVENT_ID.ON_RCLICK_REPORT_ROW;this.SendClickEvent(eventID,{Data:row,X:x,Y:y,e:e,Inside:insidePoint,UIElement:uiElement});return{Type:2,Redraw:bRedraw||btnStatus.Redraw,Row:row};//行
14271
- }var header=this.PtInHeader(x,y);if(header){var eventID=JSCHART_EVENT_ID.ON_CLICK_REPORT_HEADER;if(e.button==2){eventID=JSCHART_EVENT_ID.ON_RCLICK_REPORT_HEADER;}else if(e.button==0){eventID=JSCHART_EVENT_ID.ON_CLICK_REPORT_HEADER;}this.SendClickEvent(eventID,{Data:row,X:x,Y:y,e:e,Inside:insidePoint,UIElement:uiElement});return{Type:3,Redraw:bRedraw,Header:header};//表头
14272
+ }var header=this.PtInHeader(x,y);if(header){var eventID=JSCHART_EVENT_ID.ON_CLICK_REPORT_HEADER;if(e.button==2){eventID=JSCHART_EVENT_ID.ON_RCLICK_REPORT_HEADER;}else if(e.button==0){eventID=JSCHART_EVENT_ID.ON_CLICK_REPORT_HEADER;}this.SendClickEvent(eventID,{Data:header,X:x,Y:y,e:e,Inside:insidePoint,UIElement:uiElement});return{Type:3,Redraw:bRedraw,Header:header};//表头
14272
14273
  }return null;};this.OnShiftClickRow=function(row){if(this.MultiSelectedRow.length<=0){this.MultiSelectedRow.push(row.DataIndex);return;}var max=null,min=null;for(var i=0;i<this.MultiSelectedRow.length;++i){var value=this.MultiSelectedRow[i];if(max==null||max<value)max=value;if(min==null||min>value)min=value;if(value==row.DataIndex)//移除
14273
14274
  {this.MultiSelectedRow.splice(i,1);return;}}if(max==min){var start=row.DataIndex,end=max;if(start>end){start=max;end=row.DataIndex;}this.MultiSelectedRow=[];for(var i=start;i<=end;++i){this.MultiSelectedRow.push(i);}}else{if(row.DataIndex<=max&&row.DataIndex>=min){this.MultiSelectedRow.push(row.DataIndex);}else{var start=Math.min(row.DataIndex,min);var end=Math.max(row.DataIndex,max);this.MultiSelectedRow=[];for(var i=start;i<=end;++i){this.MultiSelectedRow.push(i);}}}};this.OnDragRow=function(x,y,e)//Type: 5=顶部 6=空白行 2=行 7=底部
14274
14275
  {if(!this.Data)return null;if(!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return null;var topOffset=this.RowHeight/2;var top=this.RectClient.Top+this.HeaderHeight;var right=this.ChartBorder.GetChartWidth();var textTop=top+this.FixedRowHeight*this.FixedRowCount;if(y<textTop+topOffset)return{Type:5};for(var i=this.Data.YOffset,j=0;i<this.Data.Data.length&&j<this.RowCount;++i,++j){var symbol=this.Data.Data[i];var rtRow={Left:0,Top:textTop,Right:right,Bottom:textTop+this.RowHeight};rtRow.Top+=topOffset;rtRow.Bottom+=topOffset;if(x>=rtRow.Left&&x<=rtRow.Right&&y>=rtRow.Top&&y<=rtRow.Bottom){var data={DataIndex:i,Index:j,Symbol:symbol,Pos:0};if(j==0)data.Pos=1;else if(j==this.RowCount-1)data.Pos=2;return{Type:2,Data:data};}textTop+=this.RowHeight;}if(j<this.RowCount)return{Type:6};return{Type:7};};this.OnDragHeader=function(x,y,e)//Type:1=行 2=左边 3=右边 4=空白 5=固定行
@@ -15105,7 +15106,7 @@ this.SelectedClassName="UMyChart_MenuItem_Tr_Selected";this.RestoreFocusDelay=10
15105
15106
  "UMyChart_MenuItem_Td_Arrow"//箭头
15106
15107
  ];this.Inital=function(hqchart,option){this.HQChart=hqchart;this.MouseDownlistenerPtr=this.OnWindowMouseDown.bind(this);window.addEventListener('mousedown',this.MouseDownlistenerPtr);};this.Destroy=function(){if(this.MouseDownlistenerPtr){window.removeEventListener('mousedown',this.MouseDownlistenerPtr);this.MouseDownlistenerPtr=null;}};//创建菜单
15107
15108
  this.CreatePopMenu=function(data){this.Clear();if(!IFrameSplitOperator.IsNonEmptyArray(data.Menu))return;var root=document.createElement("div");root.className="UMyChart_PopMenu";var table=document.createElement("table");table.className="UMyChart_PopMenu_Table";root.appendChild(table);var tbody=document.createElement("tbody");tbody.className="UMyChart_PopMenu_Tbody";table.appendChild(tbody);var rootData={Root:root,TBody:tbody,Table:table};root.JSMenuData=rootData;for(var i=0;i<data.Menu.length;++i){var item=data.Menu[i];if(item.Name==JSPopMenu.SEPARATOR_LINE_NAME){var trSeparator=this.CreateSeparatorTr();if(trSeparator)tbody.appendChild(trSeparator);continue;}var trDom=this.CreateMenu(rootData,item);tbody.appendChild(trDom);}document.body.appendChild(root);this.RootDOM=root;this.TBodyDOM=tbody;if(IFrameSplitOperator.IsNumber(data.Position))this.Data.Position=data.Position;if(data.ClickCallback)this.ClickCallback=data.ClickCallback;if(data.RestoreFocusCallback)this.RestoreFocusCallback=data.RestoreFocusCallback;};//清除菜单
15108
- this.Clear=function(){this.Data.Menu=[];this.Data.Position=JSPopMenu.POSITION_ID.RIGHT_MENU_ID;this.ClickCallback=null;if(!this.RootDOM)return;document.body.removeChild(this.RootDOM);this.RootDOM=null;this.TBodyDOM=null;for(var i=0;i<this.ArySubRootDOM.length;++i){document.body.removeChild(this.ArySubRootDOM[i]);}this.ArySubRootDOM=[];};this.CreateMenu=function(parentItem,item){var _this87=this;var trDom=document.createElement("tr");trDom.className='UMyChart_MenuItem_Tr';if(item.Disable===true)trDom.classList.add('UMyChart_DrawTool_Disable_Tr');var prtTdDom=null;for(var i=0;i<this.AryTDClassName.length;++i){var tdDom=document.createElement("td");tdDom.className=this.AryTDClassName[i];if(i==0)//图标
15109
+ this.Clear=function(){this.Data.Menu=[];this.Data.Position=JSPopMenu.POSITION_ID.RIGHT_MENU_ID;this.ClickCallback=null;if(!this.RootDOM)return;document.body.removeChild(this.RootDOM);this.RootDOM=null;this.TBodyDOM=null;for(var i=0;i<this.ArySubRootDOM.length;++i){document.body.removeChild(this.ArySubRootDOM[i]);}this.ArySubRootDOM=[];};this.CreateMenu=function(parentItem,item){var _this87=this;var trDom=document.createElement("tr");trDom.className='UMyChart_MenuItem_Tr';if(item.Disable===true)trDom.classList.add('UMyChart_DrawTool_Disable_Tr');var prtTdDom=null;var aryTDClassName=this.AryTDClassName;if(IFrameSplitOperator.IsNonEmptyArray(item.AryTDClassName))aryTDClassName=item.AryTDClassName;for(var i=0;i<aryTDClassName.length;++i){var tdDom=document.createElement("td");tdDom.className=aryTDClassName[i];if(i==0)//图标
15109
15110
  {if(item.Checked){var spanDom=document.createElement("span");spanDom.className=this.CheckedClassName;spanDom.style["font-size"]="10px";tdDom.appendChild(spanDom);}}else if(i==1)//内容
15110
15111
  {tdDom.innerText=item.Name;}else if(i==2)//快捷方式
15111
15112
  {if(item.Text)tdDom.innerText=item.Text;}else if(i==3)//箭头
@@ -15645,7 +15646,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
15645
15646
  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);};}/********************************************************************************
15646
15647
  * 版本信息输出
15647
15648
  *
15648
- */var HQCHART_VERSION="1.1.15236";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();//把给外界调用的方法暴露出来
15649
+ */var HQCHART_VERSION="1.1.15244";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();//把给外界调用的方法暴露出来
15649
15650
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
15650
15651
  // BaseIndex:BaseIndex,
15651
15652
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.15237",
3
+ "version": "1.1.15245",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -57501,6 +57501,16 @@ HQData.Report_RequestStockData=function(data, callback)
57501
57501
 
57502
57502
  //K线
57503
57503
  var kData={ Data:[newItem[3], newItem[4], newItem[5], newItem[6]] };
57504
+ //多根K线使用AryData, 单根K线用Data
57505
+ kData.AryData=
57506
+ [
57507
+ [newItem[3], newItem[4], newItem[5], newItem[6]],
57508
+ [newItem[3], newItem[4], newItem[5], newItem[6]],
57509
+ [newItem[3], newItem[4], newItem[5], newItem[6]],
57510
+ [newItem[3], newItem[4], newItem[5], newItem[6]],
57511
+ [newItem[3], newItem[4], newItem[5], newItem[6]],
57512
+ [newItem[3], newItem[4], newItem[5], newItem[6]],
57513
+ ]
57504
57514
  newItem[33]=kData;
57505
57515
 
57506
57516
 
@@ -319,11 +319,14 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
319
319
  {
320
320
  var item=option.GlobalOption;
321
321
  if (IFrameSplitOperator.IsBool(item.IsValueFullRange)) chart.GlobalOption.IsValueFullRange=item.IsValueFullRange;
322
+ if (IFrameSplitOperator.IsBool(item.EnableXShortDate)) chart.GlobalOption.EnableXShortDate=item.EnableXShortDate;
323
+
322
324
  if (item.SelectedBorder)
323
325
  {
324
326
  var subItem=item.SelectedBorder;
325
327
  if (IFrameSplitOperator.IsNumber(subItem.Mode)) chart.GlobalOption.SelectedBorder.Mode=subItem.Mode;
326
328
  }
329
+
327
330
  }
328
331
 
329
332
  if (option.EnableYDrag)
@@ -3395,6 +3398,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
3395
3398
  TradeStatus:null, //当前交易状态 { Date, Time:数据最后更新的时间, Status: }
3396
3399
 
3397
3400
  LatestPoint:null, //最新的点位置 { X:, Y: }
3401
+
3402
+ EnableXShortDate:true,
3398
3403
  };
3399
3404
 
3400
3405
  this.VerticalDrag; //通过X轴左右拖动数据(手势才有)
@@ -16716,11 +16721,13 @@ function MinuteFrame()
16716
16721
 
16717
16722
  this.DrawToolbar=function()
16718
16723
  {
16719
- if (this.ToolbarButtonStyle==1) return;
16720
- if (g_JSChartResource.IsDOMFrameToolbar===true) return;
16721
-
16724
+ var bDraw=true;
16725
+ if (this.ToolbarButtonStyle==1) bDraw=false;
16726
+ if (g_JSChartResource.IsDOMFrameToolbar===true) bDraw=false;
16722
16727
  if (!this.DivFrameToolbar) return;
16723
- this.DivFrameToolbar.Show(this.Identify);
16728
+
16729
+ if (!bDraw) this.HideToolbar();
16730
+ else this.DivFrameToolbar.Show(this.Identify);
16724
16731
  }
16725
16732
 
16726
16733
  //手绘,不用DOM,使用DOM太麻烦了
@@ -18951,11 +18958,13 @@ function KLineFrame()
18951
18958
 
18952
18959
  this.DrawToolbar=function()
18953
18960
  {
18954
- if (this.ToolbarButtonStyle==1) return;
18955
- if (g_JSChartResource.IsDOMFrameToolbar===true) return;
18961
+ var bDraw=true;
18962
+ if (this.ToolbarButtonStyle==1) bDraw=false;
18963
+ if (g_JSChartResource.IsDOMFrameToolbar===true) bDraw=false;
18956
18964
  if (!this.DivFrameToolbar) return;
18957
18965
 
18958
- this.DivFrameToolbar.Show(this.Identify);
18966
+ if (!bDraw) this.HideToolbar();
18967
+ else this.DivFrameToolbar.Show(this.Identify);
18959
18968
  }
18960
18969
 
18961
18970
  //手绘,不用DOM,使用DOM太麻烦了
@@ -30396,7 +30405,7 @@ function ChartKLine()
30396
30405
  {
30397
30406
  var left=this.ChartBorder.GetLeft();
30398
30407
  var right=this.ChartBorder.GetRight();
30399
- var top=this.ChartBorder.GetTopEx();
30408
+ var top=this.ChartBorder.GetTop();
30400
30409
  var bottom=this.ChartBorder.GetBottom();
30401
30410
  }
30402
30411
 
@@ -56987,6 +56996,7 @@ function FrameSplitKLineX()
56987
56996
  var lastYear=null, lastMonth=null;
56988
56997
  var minDistance=12;
56989
56998
  var monthCount=0;
56999
+ var globalOption=this.Frame.GlobalOption;
56990
57000
  for(var i=0, index=xOffset, distance=minDistance;i<xPointCount && index<this.Frame.Data.Data.length ;++i,++index)
56991
57001
  {
56992
57002
  var year=parseInt(this.Frame.Data.Data[index].Date/10000);
@@ -57024,12 +57034,14 @@ function FrameSplitKLineX()
57024
57034
  this.Frame.VerticalInfo.push(info);
57025
57035
  distance=0;
57026
57036
  }
57027
-
57028
- if (this.Period==0 && monthCount<=2)
57037
+
57038
+ var bShowShortDate=true; //日线显示在2个月以下的 显示格式
57039
+ if (globalOption && IFrameSplitOperator.IsBool(globalOption.EnableXShortDate)) bShowShortDate=globalOption.EnableXShortDate;
57040
+ if (bShowShortDate && this.Period==0 && monthCount<=2)
57029
57041
  this.SplitShortDate();
57030
57042
  }
57031
57043
 
57032
- //分隔在2个月一下的格式
57044
+ //分隔在2个月以内的格式
57033
57045
  this.SplitShortDate=function()
57034
57046
  {
57035
57047
  this.Frame.VerticalInfo=[];
@@ -125,10 +125,12 @@ function JSPopMenu()
125
125
  if (item.Disable===true) trDom.classList.add('UMyChart_DrawTool_Disable_Tr');
126
126
 
127
127
  var prtTdDom=null;
128
- for(var i=0;i<this.AryTDClassName.length;++i)
128
+ var aryTDClassName=this.AryTDClassName;
129
+ if (IFrameSplitOperator.IsNonEmptyArray(item.AryTDClassName)) aryTDClassName=item.AryTDClassName;
130
+ for(var i=0;i<aryTDClassName.length;++i)
129
131
  {
130
132
  var tdDom=document.createElement("td");
131
- tdDom.className=this.AryTDClassName[i];
133
+ tdDom.className=aryTDClassName[i];
132
134
 
133
135
  if (i==0) //图标
134
136
  {
@@ -5494,6 +5494,7 @@ function ChartReport()
5494
5494
  if (item.HeaderBGColor) colItem.HeaderBGColor=item.HeaderBGColor; //表头背景色
5495
5495
  if (IFrameSplitOperator.IsNumber(item.Sort)) colItem.Sort=item.Sort;
5496
5496
  if (IFrameSplitOperator.IsNumber(item.FixedWidth)) colItem.FixedWidth=item.FixedWidth;
5497
+ else if (item.FixedWidth===null) colItem.FixedWidth=null;
5497
5498
  if (IFrameSplitOperator.IsBool(item.EnableDragWidth)) colItem.EnableDragWidth=item.EnableDragWidth;
5498
5499
 
5499
5500
  colItem.IsDrawCallback=false;
@@ -8841,15 +8842,29 @@ function ChartReport()
8841
8842
  }
8842
8843
 
8843
8844
  if (!klineData) return;
8844
- if (!IFrameSplitOperator.IsNonEmptyArray(klineData.Data)) return;
8845
-
8846
- var high=klineData.Data[1];
8847
- var low=klineData.Data[2];
8848
- var aryKLine=
8849
- [
8850
- { Open:klineData.Data[0], High:high, Low:low, Close:klineData.Data[3]},
8851
- //{ Open:klineData.Data[0], High:high, Low:low, Close:klineData.Data[3]}
8852
- ];
8845
+ var aryKLine=[];
8846
+ var high=null, low=null;
8847
+ if (IFrameSplitOperator.IsNonEmptyArray(klineData.AryData))
8848
+ {
8849
+ for(var i=0;i<klineData.AryData.length;++i)
8850
+ {
8851
+ var item=klineData.AryData[i];
8852
+ var kItem={ Open:item[0], High:item[1], Low:item[2], Close:item[3] };
8853
+ if (high==null || high<item[1]) high=item[1];
8854
+ if (low==null || low>item[2]) low=item[2];
8855
+ aryKLine.push(kItem);
8856
+ }
8857
+ }
8858
+ else if (IFrameSplitOperator.IsNonEmptyArray(klineData.Data))
8859
+ {
8860
+ high=klineData.Data[1];
8861
+ low=klineData.Data[2];
8862
+ var kItem={ Open:klineData.Data[0], High:high, Low:low, Close:klineData.Data[3] };
8863
+ aryKLine.push(kItem);
8864
+ }
8865
+
8866
+ if (!IFrameSplitOperator.IsNonEmptyArray(aryKLine)) return;
8867
+
8853
8868
  this.DrawKLineBar(aryKLine, high, low, rtItem);
8854
8869
  }
8855
8870
 
@@ -9153,7 +9168,7 @@ function ChartReport()
9153
9168
  eventID=JSCHART_EVENT_ID.ON_CLICK_REPORT_HEADER;
9154
9169
  }
9155
9170
 
9156
- this.SendClickEvent(eventID, { Data:row, X:x, Y:y , e:e, Inside:insidePoint, UIElement:uiElement});
9171
+ this.SendClickEvent(eventID, { Data:header, X:x, Y:y , e:e, Inside:insidePoint, UIElement:uiElement});
9157
9172
  return { Type:3, Redraw:bRedraw, Header:header }; //表头
9158
9173
  }
9159
9174
 
@@ -939,6 +939,11 @@ input[type="color"] {
939
939
  margin-right: 10px;
940
940
  }
941
941
 
942
+ .UMyChart_MenuItem_Td_None
943
+ {
944
+ display:none;
945
+ }
946
+
942
947
 
943
948
  .UMyChart_MenuItem_Tr:hover
944
949
  {
@@ -1987,6 +1987,16 @@ HQData.Report_RequestStockData=function(data, callback)
1987
1987
 
1988
1988
  //K线
1989
1989
  var kData={ Data:[newItem[3], newItem[4], newItem[5], newItem[6]] };
1990
+ //多根K线使用AryData, 单根K线用Data
1991
+ kData.AryData=
1992
+ [
1993
+ [newItem[3], newItem[4], newItem[5], newItem[6]],
1994
+ [newItem[3], newItem[4], newItem[5], newItem[6]],
1995
+ [newItem[3], newItem[4], newItem[5], newItem[6]],
1996
+ [newItem[3], newItem[4], newItem[5], newItem[6]],
1997
+ [newItem[3], newItem[4], newItem[5], newItem[6]],
1998
+ [newItem[3], newItem[4], newItem[5], newItem[6]],
1999
+ ]
1990
2000
  newItem[33]=kData;
1991
2001
 
1992
2002
 
@@ -4415,11 +4415,14 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4415
4415
  {
4416
4416
  var item=option.GlobalOption;
4417
4417
  if (IFrameSplitOperator.IsBool(item.IsValueFullRange)) chart.GlobalOption.IsValueFullRange=item.IsValueFullRange;
4418
+ if (IFrameSplitOperator.IsBool(item.EnableXShortDate)) chart.GlobalOption.EnableXShortDate=item.EnableXShortDate;
4419
+
4418
4420
  if (item.SelectedBorder)
4419
4421
  {
4420
4422
  var subItem=item.SelectedBorder;
4421
4423
  if (IFrameSplitOperator.IsNumber(subItem.Mode)) chart.GlobalOption.SelectedBorder.Mode=subItem.Mode;
4422
4424
  }
4425
+
4423
4426
  }
4424
4427
 
4425
4428
  if (option.EnableYDrag)
@@ -7491,6 +7494,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
7491
7494
  TradeStatus:null, //当前交易状态 { Date, Time:数据最后更新的时间, Status: }
7492
7495
 
7493
7496
  LatestPoint:null, //最新的点位置 { X:, Y: }
7497
+
7498
+ EnableXShortDate:true,
7494
7499
  };
7495
7500
 
7496
7501
  this.VerticalDrag; //通过X轴左右拖动数据(手势才有)
@@ -20812,11 +20817,13 @@ function MinuteFrame()
20812
20817
 
20813
20818
  this.DrawToolbar=function()
20814
20819
  {
20815
- if (this.ToolbarButtonStyle==1) return;
20816
- if (g_JSChartResource.IsDOMFrameToolbar===true) return;
20817
-
20820
+ var bDraw=true;
20821
+ if (this.ToolbarButtonStyle==1) bDraw=false;
20822
+ if (g_JSChartResource.IsDOMFrameToolbar===true) bDraw=false;
20818
20823
  if (!this.DivFrameToolbar) return;
20819
- this.DivFrameToolbar.Show(this.Identify);
20824
+
20825
+ if (!bDraw) this.HideToolbar();
20826
+ else this.DivFrameToolbar.Show(this.Identify);
20820
20827
  }
20821
20828
 
20822
20829
  //手绘,不用DOM,使用DOM太麻烦了
@@ -23047,11 +23054,13 @@ function KLineFrame()
23047
23054
 
23048
23055
  this.DrawToolbar=function()
23049
23056
  {
23050
- if (this.ToolbarButtonStyle==1) return;
23051
- if (g_JSChartResource.IsDOMFrameToolbar===true) return;
23057
+ var bDraw=true;
23058
+ if (this.ToolbarButtonStyle==1) bDraw=false;
23059
+ if (g_JSChartResource.IsDOMFrameToolbar===true) bDraw=false;
23052
23060
  if (!this.DivFrameToolbar) return;
23053
23061
 
23054
- this.DivFrameToolbar.Show(this.Identify);
23062
+ if (!bDraw) this.HideToolbar();
23063
+ else this.DivFrameToolbar.Show(this.Identify);
23055
23064
  }
23056
23065
 
23057
23066
  //手绘,不用DOM,使用DOM太麻烦了
@@ -34492,7 +34501,7 @@ function ChartKLine()
34492
34501
  {
34493
34502
  var left=this.ChartBorder.GetLeft();
34494
34503
  var right=this.ChartBorder.GetRight();
34495
- var top=this.ChartBorder.GetTopEx();
34504
+ var top=this.ChartBorder.GetTop();
34496
34505
  var bottom=this.ChartBorder.GetBottom();
34497
34506
  }
34498
34507
 
@@ -61083,6 +61092,7 @@ function FrameSplitKLineX()
61083
61092
  var lastYear=null, lastMonth=null;
61084
61093
  var minDistance=12;
61085
61094
  var monthCount=0;
61095
+ var globalOption=this.Frame.GlobalOption;
61086
61096
  for(var i=0, index=xOffset, distance=minDistance;i<xPointCount && index<this.Frame.Data.Data.length ;++i,++index)
61087
61097
  {
61088
61098
  var year=parseInt(this.Frame.Data.Data[index].Date/10000);
@@ -61120,12 +61130,14 @@ function FrameSplitKLineX()
61120
61130
  this.Frame.VerticalInfo.push(info);
61121
61131
  distance=0;
61122
61132
  }
61123
-
61124
- if (this.Period==0 && monthCount<=2)
61133
+
61134
+ var bShowShortDate=true; //日线显示在2个月以下的 显示格式
61135
+ if (globalOption && IFrameSplitOperator.IsBool(globalOption.EnableXShortDate)) bShowShortDate=globalOption.EnableXShortDate;
61136
+ if (bShowShortDate && this.Period==0 && monthCount<=2)
61125
61137
  this.SplitShortDate();
61126
61138
  }
61127
61139
 
61128
- //分隔在2个月一下的格式
61140
+ //分隔在2个月以内的格式
61129
61141
  this.SplitShortDate=function()
61130
61142
  {
61131
61143
  this.Frame.VerticalInfo=[];
@@ -145904,6 +145916,7 @@ function ChartReport()
145904
145916
  if (item.HeaderBGColor) colItem.HeaderBGColor=item.HeaderBGColor; //表头背景色
145905
145917
  if (IFrameSplitOperator.IsNumber(item.Sort)) colItem.Sort=item.Sort;
145906
145918
  if (IFrameSplitOperator.IsNumber(item.FixedWidth)) colItem.FixedWidth=item.FixedWidth;
145919
+ else if (item.FixedWidth===null) colItem.FixedWidth=null;
145907
145920
  if (IFrameSplitOperator.IsBool(item.EnableDragWidth)) colItem.EnableDragWidth=item.EnableDragWidth;
145908
145921
 
145909
145922
  colItem.IsDrawCallback=false;
@@ -149251,15 +149264,29 @@ function ChartReport()
149251
149264
  }
149252
149265
 
149253
149266
  if (!klineData) return;
149254
- if (!IFrameSplitOperator.IsNonEmptyArray(klineData.Data)) return;
149267
+ var aryKLine=[];
149268
+ var high=null, low=null;
149269
+ if (IFrameSplitOperator.IsNonEmptyArray(klineData.AryData))
149270
+ {
149271
+ for(var i=0;i<klineData.AryData.length;++i)
149272
+ {
149273
+ var item=klineData.AryData[i];
149274
+ var kItem={ Open:item[0], High:item[1], Low:item[2], Close:item[3] };
149275
+ if (high==null || high<item[1]) high=item[1];
149276
+ if (low==null || low>item[2]) low=item[2];
149277
+ aryKLine.push(kItem);
149278
+ }
149279
+ }
149280
+ else if (IFrameSplitOperator.IsNonEmptyArray(klineData.Data))
149281
+ {
149282
+ high=klineData.Data[1];
149283
+ low=klineData.Data[2];
149284
+ var kItem={ Open:klineData.Data[0], High:high, Low:low, Close:klineData.Data[3] };
149285
+ aryKLine.push(kItem);
149286
+ }
149255
149287
 
149256
- var high=klineData.Data[1];
149257
- var low=klineData.Data[2];
149258
- var aryKLine=
149259
- [
149260
- { Open:klineData.Data[0], High:high, Low:low, Close:klineData.Data[3]},
149261
- //{ Open:klineData.Data[0], High:high, Low:low, Close:klineData.Data[3]}
149262
- ];
149288
+ if (!IFrameSplitOperator.IsNonEmptyArray(aryKLine)) return;
149289
+
149263
149290
  this.DrawKLineBar(aryKLine, high, low, rtItem);
149264
149291
  }
149265
149292
 
@@ -149563,7 +149590,7 @@ function ChartReport()
149563
149590
  eventID=JSCHART_EVENT_ID.ON_CLICK_REPORT_HEADER;
149564
149591
  }
149565
149592
 
149566
- this.SendClickEvent(eventID, { Data:row, X:x, Y:y , e:e, Inside:insidePoint, UIElement:uiElement});
149593
+ this.SendClickEvent(eventID, { Data:header, X:x, Y:y , e:e, Inside:insidePoint, UIElement:uiElement});
149567
149594
  return { Type:3, Redraw:bRedraw, Header:header }; //表头
149568
149595
  }
149569
149596
 
@@ -154263,7 +154290,7 @@ function ScrollBarBGChart()
154263
154290
 
154264
154291
 
154265
154292
 
154266
- var HQCHART_VERSION="1.1.15236";
154293
+ var HQCHART_VERSION="1.1.15244";
154267
154294
 
154268
154295
  function PrintHQChartVersion()
154269
154296
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.15236";
8
+ var HQCHART_VERSION="1.1.15244";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -57519,6 +57519,16 @@ HQData.Report_RequestStockData=function(data, callback)
57519
57519
 
57520
57520
  //K线
57521
57521
  var kData={ Data:[newItem[3], newItem[4], newItem[5], newItem[6]] };
57522
+ //多根K线使用AryData, 单根K线用Data
57523
+ kData.AryData=
57524
+ [
57525
+ [newItem[3], newItem[4], newItem[5], newItem[6]],
57526
+ [newItem[3], newItem[4], newItem[5], newItem[6]],
57527
+ [newItem[3], newItem[4], newItem[5], newItem[6]],
57528
+ [newItem[3], newItem[4], newItem[5], newItem[6]],
57529
+ [newItem[3], newItem[4], newItem[5], newItem[6]],
57530
+ [newItem[3], newItem[4], newItem[5], newItem[6]],
57531
+ ]
57522
57532
  newItem[33]=kData;
57523
57533
 
57524
57534
 
@@ -4459,11 +4459,14 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4459
4459
  {
4460
4460
  var item=option.GlobalOption;
4461
4461
  if (IFrameSplitOperator.IsBool(item.IsValueFullRange)) chart.GlobalOption.IsValueFullRange=item.IsValueFullRange;
4462
+ if (IFrameSplitOperator.IsBool(item.EnableXShortDate)) chart.GlobalOption.EnableXShortDate=item.EnableXShortDate;
4463
+
4462
4464
  if (item.SelectedBorder)
4463
4465
  {
4464
4466
  var subItem=item.SelectedBorder;
4465
4467
  if (IFrameSplitOperator.IsNumber(subItem.Mode)) chart.GlobalOption.SelectedBorder.Mode=subItem.Mode;
4466
4468
  }
4469
+
4467
4470
  }
4468
4471
 
4469
4472
  if (option.EnableYDrag)
@@ -7535,6 +7538,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
7535
7538
  TradeStatus:null, //当前交易状态 { Date, Time:数据最后更新的时间, Status: }
7536
7539
 
7537
7540
  LatestPoint:null, //最新的点位置 { X:, Y: }
7541
+
7542
+ EnableXShortDate:true,
7538
7543
  };
7539
7544
 
7540
7545
  this.VerticalDrag; //通过X轴左右拖动数据(手势才有)
@@ -20856,11 +20861,13 @@ function MinuteFrame()
20856
20861
 
20857
20862
  this.DrawToolbar=function()
20858
20863
  {
20859
- if (this.ToolbarButtonStyle==1) return;
20860
- if (g_JSChartResource.IsDOMFrameToolbar===true) return;
20861
-
20864
+ var bDraw=true;
20865
+ if (this.ToolbarButtonStyle==1) bDraw=false;
20866
+ if (g_JSChartResource.IsDOMFrameToolbar===true) bDraw=false;
20862
20867
  if (!this.DivFrameToolbar) return;
20863
- this.DivFrameToolbar.Show(this.Identify);
20868
+
20869
+ if (!bDraw) this.HideToolbar();
20870
+ else this.DivFrameToolbar.Show(this.Identify);
20864
20871
  }
20865
20872
 
20866
20873
  //手绘,不用DOM,使用DOM太麻烦了
@@ -23091,11 +23098,13 @@ function KLineFrame()
23091
23098
 
23092
23099
  this.DrawToolbar=function()
23093
23100
  {
23094
- if (this.ToolbarButtonStyle==1) return;
23095
- if (g_JSChartResource.IsDOMFrameToolbar===true) return;
23101
+ var bDraw=true;
23102
+ if (this.ToolbarButtonStyle==1) bDraw=false;
23103
+ if (g_JSChartResource.IsDOMFrameToolbar===true) bDraw=false;
23096
23104
  if (!this.DivFrameToolbar) return;
23097
23105
 
23098
- this.DivFrameToolbar.Show(this.Identify);
23106
+ if (!bDraw) this.HideToolbar();
23107
+ else this.DivFrameToolbar.Show(this.Identify);
23099
23108
  }
23100
23109
 
23101
23110
  //手绘,不用DOM,使用DOM太麻烦了
@@ -34536,7 +34545,7 @@ function ChartKLine()
34536
34545
  {
34537
34546
  var left=this.ChartBorder.GetLeft();
34538
34547
  var right=this.ChartBorder.GetRight();
34539
- var top=this.ChartBorder.GetTopEx();
34548
+ var top=this.ChartBorder.GetTop();
34540
34549
  var bottom=this.ChartBorder.GetBottom();
34541
34550
  }
34542
34551
 
@@ -61127,6 +61136,7 @@ function FrameSplitKLineX()
61127
61136
  var lastYear=null, lastMonth=null;
61128
61137
  var minDistance=12;
61129
61138
  var monthCount=0;
61139
+ var globalOption=this.Frame.GlobalOption;
61130
61140
  for(var i=0, index=xOffset, distance=minDistance;i<xPointCount && index<this.Frame.Data.Data.length ;++i,++index)
61131
61141
  {
61132
61142
  var year=parseInt(this.Frame.Data.Data[index].Date/10000);
@@ -61164,12 +61174,14 @@ function FrameSplitKLineX()
61164
61174
  this.Frame.VerticalInfo.push(info);
61165
61175
  distance=0;
61166
61176
  }
61167
-
61168
- if (this.Period==0 && monthCount<=2)
61177
+
61178
+ var bShowShortDate=true; //日线显示在2个月以下的 显示格式
61179
+ if (globalOption && IFrameSplitOperator.IsBool(globalOption.EnableXShortDate)) bShowShortDate=globalOption.EnableXShortDate;
61180
+ if (bShowShortDate && this.Period==0 && monthCount<=2)
61169
61181
  this.SplitShortDate();
61170
61182
  }
61171
61183
 
61172
- //分隔在2个月一下的格式
61184
+ //分隔在2个月以内的格式
61173
61185
  this.SplitShortDate=function()
61174
61186
  {
61175
61187
  this.Frame.VerticalInfo=[];
@@ -145948,6 +145960,7 @@ function ChartReport()
145948
145960
  if (item.HeaderBGColor) colItem.HeaderBGColor=item.HeaderBGColor; //表头背景色
145949
145961
  if (IFrameSplitOperator.IsNumber(item.Sort)) colItem.Sort=item.Sort;
145950
145962
  if (IFrameSplitOperator.IsNumber(item.FixedWidth)) colItem.FixedWidth=item.FixedWidth;
145963
+ else if (item.FixedWidth===null) colItem.FixedWidth=null;
145951
145964
  if (IFrameSplitOperator.IsBool(item.EnableDragWidth)) colItem.EnableDragWidth=item.EnableDragWidth;
145952
145965
 
145953
145966
  colItem.IsDrawCallback=false;
@@ -149295,15 +149308,29 @@ function ChartReport()
149295
149308
  }
149296
149309
 
149297
149310
  if (!klineData) return;
149298
- if (!IFrameSplitOperator.IsNonEmptyArray(klineData.Data)) return;
149311
+ var aryKLine=[];
149312
+ var high=null, low=null;
149313
+ if (IFrameSplitOperator.IsNonEmptyArray(klineData.AryData))
149314
+ {
149315
+ for(var i=0;i<klineData.AryData.length;++i)
149316
+ {
149317
+ var item=klineData.AryData[i];
149318
+ var kItem={ Open:item[0], High:item[1], Low:item[2], Close:item[3] };
149319
+ if (high==null || high<item[1]) high=item[1];
149320
+ if (low==null || low>item[2]) low=item[2];
149321
+ aryKLine.push(kItem);
149322
+ }
149323
+ }
149324
+ else if (IFrameSplitOperator.IsNonEmptyArray(klineData.Data))
149325
+ {
149326
+ high=klineData.Data[1];
149327
+ low=klineData.Data[2];
149328
+ var kItem={ Open:klineData.Data[0], High:high, Low:low, Close:klineData.Data[3] };
149329
+ aryKLine.push(kItem);
149330
+ }
149299
149331
 
149300
- var high=klineData.Data[1];
149301
- var low=klineData.Data[2];
149302
- var aryKLine=
149303
- [
149304
- { Open:klineData.Data[0], High:high, Low:low, Close:klineData.Data[3]},
149305
- //{ Open:klineData.Data[0], High:high, Low:low, Close:klineData.Data[3]}
149306
- ];
149332
+ if (!IFrameSplitOperator.IsNonEmptyArray(aryKLine)) return;
149333
+
149307
149334
  this.DrawKLineBar(aryKLine, high, low, rtItem);
149308
149335
  }
149309
149336
 
@@ -149607,7 +149634,7 @@ function ChartReport()
149607
149634
  eventID=JSCHART_EVENT_ID.ON_CLICK_REPORT_HEADER;
149608
149635
  }
149609
149636
 
149610
- this.SendClickEvent(eventID, { Data:row, X:x, Y:y , e:e, Inside:insidePoint, UIElement:uiElement});
149637
+ this.SendClickEvent(eventID, { Data:header, X:x, Y:y , e:e, Inside:insidePoint, UIElement:uiElement});
149611
149638
  return { Type:3, Redraw:bRedraw, Header:header }; //表头
149612
149639
  }
149613
149640
 
@@ -157714,10 +157741,12 @@ function JSPopMenu()
157714
157741
  if (item.Disable===true) trDom.classList.add('UMyChart_DrawTool_Disable_Tr');
157715
157742
 
157716
157743
  var prtTdDom=null;
157717
- for(var i=0;i<this.AryTDClassName.length;++i)
157744
+ var aryTDClassName=this.AryTDClassName;
157745
+ if (IFrameSplitOperator.IsNonEmptyArray(item.AryTDClassName)) aryTDClassName=item.AryTDClassName;
157746
+ for(var i=0;i<aryTDClassName.length;++i)
157718
157747
  {
157719
157748
  var tdDom=document.createElement("td");
157720
- tdDom.className=this.AryTDClassName[i];
157749
+ tdDom.className=aryTDClassName[i];
157721
157750
 
157722
157751
  if (i==0) //图标
157723
157752
  {
@@ -166320,7 +166349,7 @@ function HQChartScriptWorker()
166320
166349
 
166321
166350
 
166322
166351
 
166323
- var HQCHART_VERSION="1.1.15236";
166352
+ var HQCHART_VERSION="1.1.15244";
166324
166353
 
166325
166354
  function PrintHQChartVersion()
166326
166355
  {