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.
- package/lib/umychart.vue.js +14 -13
- package/package.json +1 -1
- package/src/jscommon/umychart.NetworkFilterTest.js +10 -0
- package/src/jscommon/umychart.js +23 -11
- package/src/jscommon/umychart.popMenu.js +4 -2
- package/src/jscommon/umychart.report.js +25 -10
- package/src/jscommon/umychart.resource/css/tools.css +5 -0
- package/src/jscommon/umychart.testdata.js +10 -0
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +48 -21
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.NetworkFilterTest.vue.js +10 -0
- package/src/jscommon/umychart.vue/umychart.vue.js +52 -23
package/lib/umychart.vue.js
CHANGED
|
@@ -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
|
|
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)
|
|
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)
|
|
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.
|
|
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;}
|
|
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(
|
|
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:
|
|
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<
|
|
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.
|
|
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
|
@@ -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
|
|
package/src/jscommon/umychart.js
CHANGED
|
@@ -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
|
-
|
|
16720
|
-
if (
|
|
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
|
-
|
|
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
|
-
|
|
18955
|
-
if (
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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=
|
|
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
|
-
|
|
8845
|
-
|
|
8846
|
-
|
|
8847
|
-
|
|
8848
|
-
|
|
8849
|
-
|
|
8850
|
-
|
|
8851
|
-
|
|
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:
|
|
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
|
|
|
@@ -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
|
-
|
|
20816
|
-
if (
|
|
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
|
-
|
|
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
|
-
|
|
23051
|
-
if (
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
149257
|
-
|
|
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:
|
|
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.
|
|
154293
|
+
var HQCHART_VERSION="1.1.15244";
|
|
154267
154294
|
|
|
154268
154295
|
function PrintHQChartVersion()
|
|
154269
154296
|
{
|
|
@@ -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
|
-
|
|
20860
|
-
if (
|
|
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
|
-
|
|
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
|
-
|
|
23095
|
-
if (
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
149301
|
-
|
|
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:
|
|
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
|
-
|
|
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=
|
|
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.
|
|
166352
|
+
var HQCHART_VERSION="1.1.15244";
|
|
166324
166353
|
|
|
166325
166354
|
function PrintHQChartVersion()
|
|
166326
166355
|
{
|