hqchart 1.1.15235 → 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 +21 -20
- package/package.json +1 -1
- package/src/jscommon/umychart.NetworkFilterTest.js +10 -0
- package/src/jscommon/umychart.js +45 -13
- 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 +70 -23
- 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 +74 -25
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;//标题栏显示最新数据
|
|
@@ -2018,7 +2018,7 @@ if(drag.CurrentMove){drag.CurrentMove.X=e.clientX;drag.CurrentMove.Y=e.clientY;}
|
|
|
2018
2018
|
JSConsole.Chart.Log("[JSChartContainer::DocOnMouseMove] YDrag ",this.YDrag,yMove);this.OnZoomUpDownFrameY(this.YDrag,yMove);drag.LastMove.X=e.clientX;drag.LastMove.Y=e.clientY;}else if(this.IndexChartDrag&&this.IndexChartDrag.SelectedChart)//选中图形移动
|
|
2019
2019
|
{if(Math.abs(drag.LastMove.Y-e.clientY)<2&&Math.abs(drag.LastMove.X-e.clientX)<2)return;var chartMove=this.GetExtendChartByClassName("DragMovePaint");if(chartMove&&chartMove.Chart){var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;chartMove.Chart.Point={X:x,Y:y};chartMove.Chart.IsShow=true;chartMove.Chart.Info=this.IndexChartDrag.Info;this.DrawDynamicInfo();}this.IndexChartDrag.LastMove.X=x;this.IndexChartDrag.LastMove.Y=y;drag.LastMove.X=e.clientX;drag.LastMove.Y=e.clientY;}else if(this.CustomChartDrag){var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;var sendData={X:x,Y:y,e:e,ChartDrag:this.CustomChartDrag,Drag:drag};this.TryDragMove_CustomChartDrag(sendData);}else if(this.CurrentChartDrawPicture&&this.CurrentChartDrawPicture.EnableMove===true)//画图工具移动
|
|
2020
2020
|
{var drawPicture=this.CurrentChartDrawPicture;if(drawPicture.Status==1||drawPicture.Status==2){if(Math.abs(drag.LastMove.X-e.clientX)<5&&Math.abs(drag.LastMove.Y-e.clientY)<5)return;if(this.SetChartDrawPictureSecondPoint(e.clientX,e.clientY)){this.DrawDynamicInfo();}}else if(drawPicture.Status==3){if(this.SetChartDrawPictureThirdPoint(e.clientX,e.clientY)){this.DrawDynamicInfo();}}else if(drawPicture.Status==20)//画图工具移动
|
|
2021
|
-
{if(Math.abs(drag.LastMove.X-e.clientX)<5&&Math.abs(drag.LastMove.Y-e.clientY)<1)return;if(this.SelectChartDrawPicture){if(this.SelectChartDrawPicture.EnableCtrlMove){if(!e.ctrlKey)return;}}if(this.SelectChartDrawPicture&&this.SelectChartDrawPicture.DragInfo)this.SelectChartDrawPicture.DragInfo.Move={X:e.clientX,Y:e.client};if(this.MoveChartDrawPicture(e.clientX-drag.LastMove.X,e.clientY-drag.LastMove.Y,false,drag)){this.DrawDynamicInfo();}}drag.LastMove.X=e.clientX;drag.LastMove.Y=e.clientY;}else if(drag.Click&&drag.Click.IsInFrameBottom){var dragType=this.GetDragXCoordinateType(e,"DocOnMouseMove");if(dragType==2)this.OnDragXCoordinateZoom(drag,{X:moveSetp,Y:moveSetpY},e);else if(dragType==1)this.OnDragXCoordinateKLine(drag,{X:moveSetp,Y:moveSetpY},e);}else if((bLButtonSelectRect||bRButtonSelectRect)&&!isDragSelectRect&&!isDragSubSelectRect&&!bShfitDragKLine)//左右键区间选择
|
|
2021
|
+
{if(Math.abs(drag.LastMove.X-e.clientX)<5&&Math.abs(drag.LastMove.Y-e.clientY)<1)return;if(this.SelectChartDrawPicture){if(this.SelectChartDrawPicture.EnableCtrlMove){if(!e.ctrlKey)return;}}if(this.SelectChartDrawPicture&&this.SelectChartDrawPicture.DragInfo)this.SelectChartDrawPicture.DragInfo.Move={X:e.clientX,Y:e.client};if(this.MoveChartDrawPicture(e.clientX-drag.LastMove.X,e.clientY-drag.LastMove.Y,false,drag)){this.DrawDynamicInfo();}else{return;}}drag.LastMove.X=e.clientX;drag.LastMove.Y=e.clientY;}else if(drag.Click&&drag.Click.IsInFrameBottom){var dragType=this.GetDragXCoordinateType(e,"DocOnMouseMove");if(dragType==2)this.OnDragXCoordinateZoom(drag,{X:moveSetp,Y:moveSetpY},e);else if(dragType==1)this.OnDragXCoordinateKLine(drag,{X:moveSetp,Y:moveSetpY},e);}else if((bLButtonSelectRect||bRButtonSelectRect)&&!isDragSelectRect&&!isDragSubSelectRect&&!bShfitDragKLine)//左右键区间选择
|
|
2022
2022
|
{var yMoveSetp=Math.abs(drag.LastMove.Y-e.clientY);if(moveSetp<5&&yMoveSetp<5)return;this.SetCursor({Cursor:"default"});var ptStart=this.PointAbsoluteToRelative(drag.Click.X,drag.Click.Y);var ptEnd=this.PointAbsoluteToRelative(e.clientX,e.clientY);this.ShowDragSelectRect(ptStart,ptEnd);drag.LastMove.X=e.clientX;drag.LastMove.Y=e.clientY;}else if(this.DragMode==1||isDragSelectRect||isDragSubSelectRect)//数据上下左右拖拽 区间选择框左右拖动
|
|
2023
2023
|
{if(this.DataMoveConfig.Mouse.EnableLR)this.OnDragMode_One({X:moveSetp,Y:moveSetpY},e);}};//X轴坐标拖动 缩放K线
|
|
2024
2024
|
this.OnDragXCoordinateZoom=function(drag,moveData,e){var moveSetp=moveData.X;var moveSetpY=moveData.Y;if(moveSetp<5)return;var isLeft=true;if(drag.LastMove.X<e.clientX)isLeft=false;//右移数据
|
|
@@ -2389,7 +2389,7 @@ var pt=this.PointAbsoluteToRelative(x,y,isPhone);drawPicture.Point[2]=new Point(
|
|
|
2389
2389
|
return true;};//xStep,yStep 移动的偏移量
|
|
2390
2390
|
this.MoveChartDrawPicture=function(x,y,isPhone,drag){var drawPicture=this.CurrentChartDrawPicture;if(!drawPicture)return false;var pixelTatio=GetDevicePixelRatio();//x,y 需要乘以放大倍速
|
|
2391
2391
|
if(isPhone)pixelTatio=1;var xStep=x*pixelTatio;var yStep=y*pixelTatio;//JSConsole.Chart.Log("xStep="+xStep+" yStep="+yStep);
|
|
2392
|
-
drawPicture.Move(xStep,yStep,drag);return true;};this.FinishChartDrawPicturePoint=function(){var drawPicture=this.CurrentChartDrawPicture;if(!drawPicture)return false;if(drawPicture.PointCount!=drawPicture.Point.length)return false;if(drawPicture.ClassName=="ChartDrawRuler")//尺子不用保存的
|
|
2392
|
+
if(!drawPicture.Move(xStep,yStep,drag))return false;return true;};this.FinishChartDrawPicturePoint=function(){var drawPicture=this.CurrentChartDrawPicture;if(!drawPicture)return false;if(drawPicture.PointCount!=drawPicture.Point.length)return false;if(drawPicture.ClassName=="ChartDrawRuler")//尺子不用保存的
|
|
2393
2393
|
{if(drawPicture.FinishedCallback)drawPicture.FinishedCallback(drawPicture);this.CurrentChartDrawPicture=null;return true;}drawPicture.PointMagnetKLine();drawPicture.Status=10;//完成
|
|
2394
2394
|
drawPicture.PointToValue();this.ChartDrawPicture.push(drawPicture);this.CurrentChartDrawPicture=null;//通知上层画好了
|
|
2395
2395
|
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_FINISH_DRAWPICTURE);//完成画图工具事件
|
|
@@ -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个分割线不画
|
|
@@ -6653,9 +6654,9 @@ this.ChangePeriod=function(period){var kData=this.GetKData();if(!kData)return;va
|
|
|
6653
6654
|
{var data=this.GetKData();if(!data)return false;var aryDateTime=[];for(var i=0;i<this.Value.length;++i){var item=this.Value[i];if(!item.DateTime)break;var dateTime={Date:item.DateTime.Date};if(IFrameSplitOperator.IsNumber(item.DateTime.Time))dateTime.Time=item.DateTime.Time;aryDateTime[i]=dateTime;}data.FindDataIndexByDateTime(aryDateTime);for(var i=0;i<aryDateTime.length;++i){var findItem=aryDateTime[i];var valueItem=this.Value[i];if(findItem.Index>=0)valueItem.XValue=findItem.Index;}};//重置X索引数据
|
|
6654
6655
|
this.ResetXValue=function(){for(var i=0;i<this.Value.length;++i){var item=this.Value[i];item.XValue=null;}return true;};//xStep,yStep 移动的偏移量
|
|
6655
6656
|
this.Move=function(xStep,yStep){if(this.Status!=20)return false;if(!this.Frame)return false;var data=this.Frame.Data;if(!data)return false;if(this.MovePointIndex==null)return false;var index=parseInt(this.MovePointIndex);if(index===100)//整体移动
|
|
6656
|
-
{if(this.IsMoveOutOfBounds(this.Point,xStep,yStep))return false;for(var i in this.Point){this.Point[i].X+=xStep;this.Point[i].Y+=yStep;}}else if(index===0||index===1||index===2||index===3||index===4||index===5){if(index<this.Point.length){this.Point[index].X+=xStep;this.Point[index].Y+=yStep;}}else{return false;}};//是否超出边界了
|
|
6657
|
+
{if(this.IsMoveOutOfBounds(this.Point,xStep,yStep))return false;for(var i in this.Point){this.Point[i].X+=xStep;this.Point[i].Y+=yStep;}}else if(index===0||index===1||index===2||index===3||index===4||index===5){if(index<this.Point.length){this.Point[index].X+=xStep;this.Point[index].Y+=yStep;}}else{return false;}return true;};//是否超出边界了
|
|
6657
6658
|
this.IsMoveOutOfBounds=function(aryPoint,xStep,yStep){if(!this.EnableMoveCheck)return false;if(!this.Frame)return false;if(this.Frame.ClassName=="MinuteFrame"||this.Frame.Class=="MinuteHScreenFrame")return false;var data=this.Frame.Data;if(!data)return false;if(!IFrameSplitOperator.IsNonEmptyArray(data.Data))return false;if(!IFrameSplitOperator.IsNonEmptyArray(aryPoint))return false;var isHScreen=this.Frame.IsHScreen;if(isHScreen){//TODO:横屏以后再做
|
|
6658
|
-
return false;}else{var offset=data.DataOffset;var startIndex=0-offset;var endIndex=data.Data.length-offset;if(xStep>0){var xEnd=this.Frame.GetXFromIndex(endIndex-1,false);for(var i=0;i<aryPoint.length;++i){var item=aryPoint[i];if(item.X+xStep>xEnd)return true;}}else if(xStep<0){var xStart=this.Frame.GetXFromIndex(startIndex,false);for(var i=0;i<aryPoint.length;++i){var item=aryPoint[i];if(item.X+xStep<xStart)return true;}}return false;}};this.ClipFrame=function(){if(this.Frame.IsHScreen){var left=this.Frame.ChartBorder.GetLeftEx();var top=this.Frame.ChartBorder.GetTop();var width=this.Frame.ChartBorder.GetWidthEx();var height=this.Frame.ChartBorder.GetHeight();}else{var left=this.Frame.ChartBorder.GetLeft();var top=this.Frame.ChartBorder.GetTopEx();var width=this.Frame.ChartBorder.GetWidth();var height=this.Frame.ChartBorder.GetHeightEx();}this.Canvas.save();this.Canvas.beginPath();this.Canvas.rect(left,top,width,height);this.Canvas.clip();};//计算需要画的点的坐标option:{IsCheckX:是否检测X值, IsCheckY:是否检测Y值}
|
|
6659
|
+
return false;}else{var offset=data.DataOffset;var startIndex=0-offset;var endIndex=data.Data.length-offset;if(this.ClassName=="ChartDrawHLine")return false;if(xStep>0){var xEnd=this.Frame.GetXFromIndex(endIndex-1,false);for(var i=0;i<aryPoint.length;++i){var item=aryPoint[i];if(item.X+xStep>xEnd)return true;}}else if(xStep<0){var xStart=this.Frame.GetXFromIndex(startIndex,false);for(var i=0;i<aryPoint.length;++i){var item=aryPoint[i];if(item.X+xStep<xStart)return true;}}return false;}};this.ClipFrame=function(){if(this.Frame.IsHScreen){var left=this.Frame.ChartBorder.GetLeftEx();var top=this.Frame.ChartBorder.GetTop();var width=this.Frame.ChartBorder.GetWidthEx();var height=this.Frame.ChartBorder.GetHeight();}else{var left=this.Frame.ChartBorder.GetLeft();var top=this.Frame.ChartBorder.GetTopEx();var width=this.Frame.ChartBorder.GetWidth();var height=this.Frame.ChartBorder.GetHeightEx();}this.Canvas.save();this.Canvas.beginPath();this.Canvas.rect(left,top,width,height);this.Canvas.clip();};//计算需要画的点的坐标option:{IsCheckX:是否检测X值, IsCheckY:是否检测Y值}
|
|
6659
6660
|
this.CalculateDrawPoint=function(option){if(this.Status<2)return null;if(!this.Point.length||!this.Frame)return null;var drawPoint=[];if(this.Status==10){var data=this.Frame.Data;if(!data)return null;var showCount=this.Frame.XPointCount;var invaildX=0;//超出范围的x点个数
|
|
6660
6661
|
var isHScreen=this.Frame.IsHScreen;for(var i=0;i<this.Value.length;++i){var item=this.Value[i];if(!IFrameSplitOperator.IsNumber(item.XValue))return null;//无效索引 不显示
|
|
6661
6662
|
var dataIndex=item.XValue-data.DataOffset;if(dataIndex<0||dataIndex>=showCount)++invaildX;var pt=new Point();if(isHScreen)//横屏X,Y对调
|
|
@@ -6993,7 +6994,7 @@ linePoint={Start:new Point(),End:new Point()};linePoint.Start.X=drawPoint[0].X;l
|
|
|
6993
6994
|
};//xStep,yStep 移动的偏移量
|
|
6994
6995
|
this.Move=function(xStep,yStep){if(this.Status!=20)return false;if(!this.Frame)return false;var data=this.Frame.Data;if(!data)return false;if(this.MovePointIndex==100)//整体移动
|
|
6995
6996
|
{for(var i=0;i<this.Point.length;++i){this.Point[i].X+=xStep;this.Point[i].Y+=yStep;}}else if(this.MovePointIndex==0||this.MovePointIndex==1){if(this.MovePointIndex<this.Point.length){this.Point[this.MovePointIndex].X+=xStep;this.Point[this.MovePointIndex].Y+=yStep;}}else if(this.MovePointIndex==2)//宽度的点要计算
|
|
6996
|
-
{this.Point[this.MovePointIndex].X+=xStep;this.Point[this.MovePointIndex].Y+=yStep;var x=this.Point[1].X-this.Point[0].X;var y=this.Point[1].Y-this.Point[0].Y;var angle=Math.atan(Math.abs(x/y));var yMove=this.ChannelWidth/Math.sin(angle)-yStep;this.ChannelWidth=Math.sin(angle)*yMove;}};//0-10 鼠标对应的点索引 100=鼠标在正个图形上 -1 鼠标不在图形上
|
|
6997
|
+
{this.Point[this.MovePointIndex].X+=xStep;this.Point[this.MovePointIndex].Y+=yStep;var x=this.Point[1].X-this.Point[0].X;var y=this.Point[1].Y-this.Point[0].Y;var angle=Math.atan(Math.abs(x/y));var yMove=this.ChannelWidth/Math.sin(angle)-yStep;this.ChannelWidth=Math.sin(angle)*yMove;}else{return false;}return true;};//0-10 鼠标对应的点索引 100=鼠标在正个图形上 -1 鼠标不在图形上
|
|
6997
6998
|
this.IsPointIn=function(x,y){if(!this.Frame||this.Status!=10)return-1;var data=this.Frame.Data;if(!data)return-1;//是否在点上
|
|
6998
6999
|
for(var i=0;i<this.Value.length;++i){var item=this.Value[i];var pt=new Point();if(i<2){pt.X=this.Frame.GetXFromIndex(item.XValue-data.DataOffset);pt.Y=this.Frame.GetYFromData(item.YValue);}else//第3个点使用实际坐标
|
|
6999
7000
|
{if(i>=this.Point.length)continue;pt.X=this.Point[i].X;pt.Y=this.Point[i].Y;}this.Canvas.beginPath();this.Canvas.arc(pt.X,pt.Y,5,0,360);if(this.Canvas.isPointInPath(x,y))return i;}//是否在线段上
|
|
@@ -7341,7 +7342,7 @@ this.Canvas.strokeStyle=this.LineColor;this.Canvas.beginPath();this.Canvas.moveT
|
|
|
7341
7342
|
var aryLabel=this.FormatLabelText(drawPoint);if(!IFrameSplitOperator.IsNonEmptyArray(aryLabel))return;this.TextFontHeight=this.GetFontHeight(this.LabelConfig.Font,"擎");for(var i=0;i<aryLabel.length;++i){var item=aryLabel[i];if(!IFrameSplitOperator.IsNonEmptyArray(item.AryText))continue;this.CalculateLabelSize(item);this.DrawLabelItem(item,drawPoint);}};this.DrawLabelItem=function(lableItem,drawPoint){var ptCenter=drawPoint[0];var ptRight=drawPoint[1];var ptTop=drawPoint[2];var ptBottom=drawPoint[3];var clientWidth=ptRight.X-ptCenter.X;var config=this.LabelConfig;var margin=config.Margin;var rtText={Width:lableItem.Width+margin.Left+margin.Right,Height:lableItem.Height+margin.Top+margin.Bottom};if(lableItem.Type==0)//中间
|
|
7342
7343
|
{rtText.Left=ptCenter.X+clientWidth/2-rtText.Width/2;rtText.Right=rtText.Left+rtText.Width;rtText.Top=ptCenter.Y-rtText.Height/2;rtText.Bottom=rtText.Top+rtText.Height;}else if(lableItem.Type==1)//顶部
|
|
7343
7344
|
{rtText.Left=ptCenter.X+clientWidth/2-rtText.Width/2;rtText.Right=rtText.Left+rtText.Width;rtText.Top=ptTop.Y-rtText.Height;rtText.Bottom=rtText.Top+rtText.Height;}else if(lableItem.Type==2){rtText.Left=ptCenter.X+clientWidth/2-rtText.Width/2;rtText.Right=rtText.Left+rtText.Width;rtText.Top=ptBottom.Y;rtText.Bottom=rtText.Top+rtText.Height;}else{return;}this.Canvas.fillStyle=lableItem.BGColor;this.Canvas.fillRect(rtText.Left,rtText.Top,rtText.Width,rtText.Height);this.Canvas.textAlign='left';this.Canvas.textBaseline='bottom';this.Canvas.fillStyle=lableItem.TextColor;var x=rtText.Left+margin.Left;var y=rtText.Top+margin.Top+this.TextFontHeight;for(var i=0;i<lableItem.AryText.length;++i){var item=lableItem.AryText[i];var xText=x;var yText=y;if(IFrameSplitOperator.IsNumber(item.YOffset))yText+=item.YOffset;this.Canvas.fillText(item.Text,xText,yText);y+=this.TextFontHeight;}};this.FormatLabelText=function(drawPoint){if(this.HQChart){var event=this.HQChart.GetEventCallback(JSCHART_EVENT_ID.ON_FORMAT_TVLONGPOSITION_LABEL);if(event&&event.Callback){var sendData={Frame:this.Frame,AryLabel:null,AryPoint:drawPoint,PreventDefault:false};event.Callback(event,sendData,this);if(sendData.PreventDefault)return sendData.AryLabel;}}var ptCenter=drawPoint[0];var ptTop=drawPoint[2];var ptBottom=drawPoint[3];var aryData=[];var yValue=this.Frame.GetYData(ptCenter.Y,false);aryData.push({Type:0,AryText:[{Text:'Open: '+yValue.toFixed(2)}],BGColor:"rgb(112,128,144)",TextColor:"rgb(255,255,255)"});var yValue=this.Frame.GetYData(ptTop.Y,false);aryData.push({Type:1,AryText:[{Text:'Target: '+yValue.toFixed(2),YOffset:-1}],BGColor:this.TopAreaConfig.TextBGColor,TextColor:this.TopAreaConfig.TextColor});var yValue=this.Frame.GetYData(ptBottom.Y,false);aryData.push({Type:2,AryText:[{Text:'Stop: '+yValue.toFixed(2),YOffset:-1}],BGColor:this.BottomAreaConfig.TextBGColor,TextColor:this.BottomAreaConfig.TextColor});return aryData;};this.CalculateLabelSize=function(lableItem){lableItem.Width=0;lableItem.Height=0;for(var i=0;i<lableItem.AryText.length;++i){var item=lableItem.AryText[i];var textWidth=this.Canvas.measureText(item.Text).width;item.TextWidth=textWidth;if(lableItem.Width<textWidth)lableItem.Width=textWidth;lableItem.Height+=this.TextFontHeight;}};this.Move=function(xStep,yStep){if(this.Status!=20)return false;if(!this.Frame)return false;var data=this.Frame.Data;if(!data)return false;if(this.MovePointIndex==100)//整体移动
|
|
7344
|
-
{for(var i=0;i<this.Point.length;++i){var item=this.Point[i];item.X+=xStep;item.Y+=yStep;}}else if(this.MovePointIndex===0){for(var i=0;i<this.Point.length;++i){var item=this.Point[i];if(i==0){item.X+=xStep;item.Y+=yStep;}else if(i==1){item.Y+=yStep;}else if(i==2||i==3){item.X+=xStep;}}}else if(this.MovePointIndex==1){this.Point[1].X+=xStep;}else if(this.MovePointIndex==2){var ptCenter=this.Point[0];var item=this.Point[2];if(item.Y+yStep<ptCenter.Y)item.Y+=yStep;}else if(this.MovePointIndex==3){var ptCenter=this.Point[0];var item=this.Point[3];if(item.Y+yStep>ptCenter.Y)item.Y+=yStep;}};}function ChartDrawTVShortPosition(){this.newMethod=ChartDrawTVLongPosition;//派生
|
|
7345
|
+
{for(var i=0;i<this.Point.length;++i){var item=this.Point[i];item.X+=xStep;item.Y+=yStep;}}else if(this.MovePointIndex===0){for(var i=0;i<this.Point.length;++i){var item=this.Point[i];if(i==0){item.X+=xStep;item.Y+=yStep;}else if(i==1){item.Y+=yStep;}else if(i==2||i==3){item.X+=xStep;}}}else if(this.MovePointIndex==1){this.Point[1].X+=xStep;}else if(this.MovePointIndex==2){var ptCenter=this.Point[0];var item=this.Point[2];if(item.Y+yStep<ptCenter.Y)item.Y+=yStep;}else if(this.MovePointIndex==3){var ptCenter=this.Point[0];var item=this.Point[3];if(item.Y+yStep>ptCenter.Y)item.Y+=yStep;}else{return false;}return true;};}function ChartDrawTVShortPosition(){this.newMethod=ChartDrawTVLongPosition;//派生
|
|
7345
7346
|
this.newMethod();delete this.newMethod;this.ClassName='ChartDrawTVShortPosition';this.TopAreaConfig=CloneData(g_JSChartResource.ChartDrawTVLongPosition.BottomArea);this.BottomAreaConfig=CloneData(g_JSChartResource.ChartDrawTVLongPosition.TopArea);}function ChartDrawStorage(){//this.DrawData=new Map(); //画图工具数据 key=symbol-Period, value=Map() Key:Guid, Value:{ Guid, Symbol, Period, ClassName, Value }
|
|
7346
7347
|
this.DrawDataV2=new _map2.default();//画图工具数据 key=symbol, value=Map() Key:Guid, Value:{ Guid, Symbol, Period, ClassName, Value }
|
|
7347
7348
|
this.StorageKey;this.GetEventCallback;//事件回调
|
|
@@ -8642,7 +8643,7 @@ if(this.ChartDrawStorage)this.ChartDrawStorage.SaveDrawData(drawPicture);this.Dr
|
|
|
8642
8643
|
this.RandomDrawPictureValue=function(chart,data){if(!IFrameSplitOperator.IsNonEmptyArray(data.Value))return;var kData=this.GetKLineChart();if(!kData||!kData.Data||!IFrameSplitOperator.IsNumber(kData.Data.DataOffset)||kData.Data.DataOffset<0)return null;if(!IFrameSplitOperator.IsNonEmptyArray(kData.Data.Data))return null;var aryKData=kData.Data.Data;var startIndex=kData.Data.DataOffset;var endIndex=kData.Data.DataOffset+kData.ChartFrame.XPointCount-1;if(endIndex>=aryKData.length)endIndex=aryKData.length-1;var frameHeight=chart.Frame.ChartBorder.GetHeight();var max=chart.Frame.HorizontalMax;var min=chart.Frame.HorizontalMin;var y=chart.Frame.ChartBorder.GetBottomEx()-frameHeight*data.YFristScale;var range={Max:5,Min:2};var xRandomOffset=Math.floor(Math.random()*(range.Max-range.Min+1))+range.Min;var xValue=data.Value[0].XIndex+xRandomOffset;var firstPoint=null;chart.Value=[];for(var i=0;i<data.Value.length;++i){var item=data.Value[i];chart.Value[i]={XValue:xValue+item.XOffset};chart.Point[i]={Y:y+item.YOffset,X:chart.Frame.GetXFromIndex(xValue+item.XOffset,false)};}};//xStep,yStep 移动的偏移量
|
|
8643
8644
|
this.MoveChartDrawPicture=function(x,y,isPhone,drag){var drawPicture=this.CurrentChartDrawPicture;if(!drawPicture)return false;var pixelTatio=GetDevicePixelRatio();//x,y 需要乘以放大倍速
|
|
8644
8645
|
if(isPhone)pixelTatio=1;var xStep=x*pixelTatio;var yStep=y*pixelTatio;//JSConsole.Chart.Log("xStep="+xStep+" yStep="+yStep);
|
|
8645
|
-
drawPicture.Move(xStep,yStep,drag);return true;};//数据长度变化 需要更新画图工具X轴索引
|
|
8646
|
+
if(!drawPicture.Move(xStep,yStep,drag))return false;return true;};//数据长度变化 需要更新画图工具X轴索引
|
|
8646
8647
|
this.UpdateChartDrawXValue=function(){for(var i in this.ChartDrawPicture){var item=this.ChartDrawPicture[i];item.UpdateXValue();}};//注册鼠标右键事件
|
|
8647
8648
|
this.OnRightMenu=function(x,y,e){var pixelTatio=GetDevicePixelRatio();//x,y 需要乘以放大倍速
|
|
8648
8649
|
var frameId=this.Frame.PtInFrame(x*pixelTatio,y*pixelTatio);this.PopupRightMenuV2({X:e.offsetX,Y:e.offsetY,FrameID:frameId,CursorIndex:this.CursorIndex,Point:{X:x*pixelTatio,Y:y*pixelTatio}},e);var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CONTEXT_MENU);if(event){var data={X:x,Y:y,Event:e,FrameID:frameId,Point:{X:x*pixelTatio,Y:y*pixelTatio},CursorIndex:this.CursorIndex};event.Callback(event,data,this);}};//右键菜单数据
|
|
@@ -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轴左右拖动数据(手势才有)
|
|
@@ -4913,6 +4918,10 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
4913
4918
|
{
|
|
4914
4919
|
this.DrawDynamicInfo();
|
|
4915
4920
|
}
|
|
4921
|
+
else
|
|
4922
|
+
{
|
|
4923
|
+
return;
|
|
4924
|
+
}
|
|
4916
4925
|
}
|
|
4917
4926
|
|
|
4918
4927
|
drag.LastMove.X=e.clientX;
|
|
@@ -10070,7 +10079,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
10070
10079
|
var xStep=x*pixelTatio;
|
|
10071
10080
|
var yStep=y*pixelTatio;
|
|
10072
10081
|
//JSConsole.Chart.Log("xStep="+xStep+" yStep="+yStep);
|
|
10073
|
-
drawPicture.Move(xStep,yStep,drag);
|
|
10082
|
+
if (!drawPicture.Move(xStep,yStep,drag)) return false;
|
|
10074
10083
|
|
|
10075
10084
|
return true;
|
|
10076
10085
|
}
|
|
@@ -16712,11 +16721,13 @@ function MinuteFrame()
|
|
|
16712
16721
|
|
|
16713
16722
|
this.DrawToolbar=function()
|
|
16714
16723
|
{
|
|
16715
|
-
|
|
16716
|
-
if (
|
|
16717
|
-
|
|
16724
|
+
var bDraw=true;
|
|
16725
|
+
if (this.ToolbarButtonStyle==1) bDraw=false;
|
|
16726
|
+
if (g_JSChartResource.IsDOMFrameToolbar===true) bDraw=false;
|
|
16718
16727
|
if (!this.DivFrameToolbar) return;
|
|
16719
|
-
|
|
16728
|
+
|
|
16729
|
+
if (!bDraw) this.HideToolbar();
|
|
16730
|
+
else this.DivFrameToolbar.Show(this.Identify);
|
|
16720
16731
|
}
|
|
16721
16732
|
|
|
16722
16733
|
//手绘,不用DOM,使用DOM太麻烦了
|
|
@@ -18947,11 +18958,13 @@ function KLineFrame()
|
|
|
18947
18958
|
|
|
18948
18959
|
this.DrawToolbar=function()
|
|
18949
18960
|
{
|
|
18950
|
-
|
|
18951
|
-
if (
|
|
18961
|
+
var bDraw=true;
|
|
18962
|
+
if (this.ToolbarButtonStyle==1) bDraw=false;
|
|
18963
|
+
if (g_JSChartResource.IsDOMFrameToolbar===true) bDraw=false;
|
|
18952
18964
|
if (!this.DivFrameToolbar) return;
|
|
18953
18965
|
|
|
18954
|
-
this.
|
|
18966
|
+
if (!bDraw) this.HideToolbar();
|
|
18967
|
+
else this.DivFrameToolbar.Show(this.Identify);
|
|
18955
18968
|
}
|
|
18956
18969
|
|
|
18957
18970
|
//手绘,不用DOM,使用DOM太麻烦了
|
|
@@ -30392,7 +30405,7 @@ function ChartKLine()
|
|
|
30392
30405
|
{
|
|
30393
30406
|
var left=this.ChartBorder.GetLeft();
|
|
30394
30407
|
var right=this.ChartBorder.GetRight();
|
|
30395
|
-
var top=this.ChartBorder.
|
|
30408
|
+
var top=this.ChartBorder.GetTop();
|
|
30396
30409
|
var bottom=this.ChartBorder.GetBottom();
|
|
30397
30410
|
}
|
|
30398
30411
|
|
|
@@ -56983,6 +56996,7 @@ function FrameSplitKLineX()
|
|
|
56983
56996
|
var lastYear=null, lastMonth=null;
|
|
56984
56997
|
var minDistance=12;
|
|
56985
56998
|
var monthCount=0;
|
|
56999
|
+
var globalOption=this.Frame.GlobalOption;
|
|
56986
57000
|
for(var i=0, index=xOffset, distance=minDistance;i<xPointCount && index<this.Frame.Data.Data.length ;++i,++index)
|
|
56987
57001
|
{
|
|
56988
57002
|
var year=parseInt(this.Frame.Data.Data[index].Date/10000);
|
|
@@ -57020,12 +57034,14 @@ function FrameSplitKLineX()
|
|
|
57020
57034
|
this.Frame.VerticalInfo.push(info);
|
|
57021
57035
|
distance=0;
|
|
57022
57036
|
}
|
|
57023
|
-
|
|
57024
|
-
|
|
57037
|
+
|
|
57038
|
+
var bShowShortDate=true; //日线显示在2个月以下的 显示格式
|
|
57039
|
+
if (globalOption && IFrameSplitOperator.IsBool(globalOption.EnableXShortDate)) bShowShortDate=globalOption.EnableXShortDate;
|
|
57040
|
+
if (bShowShortDate && this.Period==0 && monthCount<=2)
|
|
57025
57041
|
this.SplitShortDate();
|
|
57026
57042
|
}
|
|
57027
57043
|
|
|
57028
|
-
//分隔在2
|
|
57044
|
+
//分隔在2个月以内的格式
|
|
57029
57045
|
this.SplitShortDate=function()
|
|
57030
57046
|
{
|
|
57031
57047
|
this.Frame.VerticalInfo=[];
|
|
@@ -65168,6 +65184,8 @@ function IChartDrawPicture()
|
|
|
65168
65184
|
{
|
|
65169
65185
|
return false;
|
|
65170
65186
|
}
|
|
65187
|
+
|
|
65188
|
+
return true;
|
|
65171
65189
|
}
|
|
65172
65190
|
|
|
65173
65191
|
//是否超出边界了
|
|
@@ -65197,6 +65215,8 @@ function IChartDrawPicture()
|
|
|
65197
65215
|
var startIndex=0-offset;
|
|
65198
65216
|
var endIndex=data.Data.length-offset;
|
|
65199
65217
|
|
|
65218
|
+
if (this.ClassName=="ChartDrawHLine") return false;
|
|
65219
|
+
|
|
65200
65220
|
if (xStep>0)
|
|
65201
65221
|
{
|
|
65202
65222
|
var xEnd=this.Frame.GetXFromIndex(endIndex-1,false);
|
|
@@ -69675,6 +69695,12 @@ function ChartDrawPictureParallelChannel()
|
|
|
69675
69695
|
var yMove=this.ChannelWidth/Math.sin(angle)-yStep;
|
|
69676
69696
|
this.ChannelWidth=Math.sin(angle)*yMove;
|
|
69677
69697
|
}
|
|
69698
|
+
else
|
|
69699
|
+
{
|
|
69700
|
+
return false;
|
|
69701
|
+
}
|
|
69702
|
+
|
|
69703
|
+
return true;
|
|
69678
69704
|
}
|
|
69679
69705
|
|
|
69680
69706
|
//0-10 鼠标对应的点索引 100=鼠标在正个图形上 -1 鼠标不在图形上
|
|
@@ -76873,6 +76899,12 @@ function ChartDrawTVLongPosition()
|
|
|
76873
76899
|
var item=this.Point[3];
|
|
76874
76900
|
if (item.Y+yStep>ptCenter.Y) item.Y+=yStep;
|
|
76875
76901
|
}
|
|
76902
|
+
else
|
|
76903
|
+
{
|
|
76904
|
+
return false;
|
|
76905
|
+
}
|
|
76906
|
+
|
|
76907
|
+
return true;
|
|
76876
76908
|
|
|
76877
76909
|
}
|
|
76878
76910
|
}
|
|
@@ -87816,7 +87848,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
87816
87848
|
var xStep=x*pixelTatio;
|
|
87817
87849
|
var yStep=y*pixelTatio;
|
|
87818
87850
|
//JSConsole.Chart.Log("xStep="+xStep+" yStep="+yStep);
|
|
87819
|
-
drawPicture.Move(xStep,yStep,drag);
|
|
87851
|
+
if (!drawPicture.Move(xStep,yStep,drag)) return false;
|
|
87820
87852
|
|
|
87821
87853
|
return true;
|
|
87822
87854
|
}
|
|
@@ -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轴左右拖动数据(手势才有)
|
|
@@ -9009,6 +9014,10 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
9009
9014
|
{
|
|
9010
9015
|
this.DrawDynamicInfo();
|
|
9011
9016
|
}
|
|
9017
|
+
else
|
|
9018
|
+
{
|
|
9019
|
+
return;
|
|
9020
|
+
}
|
|
9012
9021
|
}
|
|
9013
9022
|
|
|
9014
9023
|
drag.LastMove.X=e.clientX;
|
|
@@ -14166,7 +14175,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
14166
14175
|
var xStep=x*pixelTatio;
|
|
14167
14176
|
var yStep=y*pixelTatio;
|
|
14168
14177
|
//JSConsole.Chart.Log("xStep="+xStep+" yStep="+yStep);
|
|
14169
|
-
drawPicture.Move(xStep,yStep,drag);
|
|
14178
|
+
if (!drawPicture.Move(xStep,yStep,drag)) return false;
|
|
14170
14179
|
|
|
14171
14180
|
return true;
|
|
14172
14181
|
}
|
|
@@ -20808,11 +20817,13 @@ function MinuteFrame()
|
|
|
20808
20817
|
|
|
20809
20818
|
this.DrawToolbar=function()
|
|
20810
20819
|
{
|
|
20811
|
-
|
|
20812
|
-
if (
|
|
20813
|
-
|
|
20820
|
+
var bDraw=true;
|
|
20821
|
+
if (this.ToolbarButtonStyle==1) bDraw=false;
|
|
20822
|
+
if (g_JSChartResource.IsDOMFrameToolbar===true) bDraw=false;
|
|
20814
20823
|
if (!this.DivFrameToolbar) return;
|
|
20815
|
-
|
|
20824
|
+
|
|
20825
|
+
if (!bDraw) this.HideToolbar();
|
|
20826
|
+
else this.DivFrameToolbar.Show(this.Identify);
|
|
20816
20827
|
}
|
|
20817
20828
|
|
|
20818
20829
|
//手绘,不用DOM,使用DOM太麻烦了
|
|
@@ -23043,11 +23054,13 @@ function KLineFrame()
|
|
|
23043
23054
|
|
|
23044
23055
|
this.DrawToolbar=function()
|
|
23045
23056
|
{
|
|
23046
|
-
|
|
23047
|
-
if (
|
|
23057
|
+
var bDraw=true;
|
|
23058
|
+
if (this.ToolbarButtonStyle==1) bDraw=false;
|
|
23059
|
+
if (g_JSChartResource.IsDOMFrameToolbar===true) bDraw=false;
|
|
23048
23060
|
if (!this.DivFrameToolbar) return;
|
|
23049
23061
|
|
|
23050
|
-
this.
|
|
23062
|
+
if (!bDraw) this.HideToolbar();
|
|
23063
|
+
else this.DivFrameToolbar.Show(this.Identify);
|
|
23051
23064
|
}
|
|
23052
23065
|
|
|
23053
23066
|
//手绘,不用DOM,使用DOM太麻烦了
|
|
@@ -34488,7 +34501,7 @@ function ChartKLine()
|
|
|
34488
34501
|
{
|
|
34489
34502
|
var left=this.ChartBorder.GetLeft();
|
|
34490
34503
|
var right=this.ChartBorder.GetRight();
|
|
34491
|
-
var top=this.ChartBorder.
|
|
34504
|
+
var top=this.ChartBorder.GetTop();
|
|
34492
34505
|
var bottom=this.ChartBorder.GetBottom();
|
|
34493
34506
|
}
|
|
34494
34507
|
|
|
@@ -61079,6 +61092,7 @@ function FrameSplitKLineX()
|
|
|
61079
61092
|
var lastYear=null, lastMonth=null;
|
|
61080
61093
|
var minDistance=12;
|
|
61081
61094
|
var monthCount=0;
|
|
61095
|
+
var globalOption=this.Frame.GlobalOption;
|
|
61082
61096
|
for(var i=0, index=xOffset, distance=minDistance;i<xPointCount && index<this.Frame.Data.Data.length ;++i,++index)
|
|
61083
61097
|
{
|
|
61084
61098
|
var year=parseInt(this.Frame.Data.Data[index].Date/10000);
|
|
@@ -61116,12 +61130,14 @@ function FrameSplitKLineX()
|
|
|
61116
61130
|
this.Frame.VerticalInfo.push(info);
|
|
61117
61131
|
distance=0;
|
|
61118
61132
|
}
|
|
61119
|
-
|
|
61120
|
-
|
|
61133
|
+
|
|
61134
|
+
var bShowShortDate=true; //日线显示在2个月以下的 显示格式
|
|
61135
|
+
if (globalOption && IFrameSplitOperator.IsBool(globalOption.EnableXShortDate)) bShowShortDate=globalOption.EnableXShortDate;
|
|
61136
|
+
if (bShowShortDate && this.Period==0 && monthCount<=2)
|
|
61121
61137
|
this.SplitShortDate();
|
|
61122
61138
|
}
|
|
61123
61139
|
|
|
61124
|
-
//分隔在2
|
|
61140
|
+
//分隔在2个月以内的格式
|
|
61125
61141
|
this.SplitShortDate=function()
|
|
61126
61142
|
{
|
|
61127
61143
|
this.Frame.VerticalInfo=[];
|
|
@@ -69264,6 +69280,8 @@ function IChartDrawPicture()
|
|
|
69264
69280
|
{
|
|
69265
69281
|
return false;
|
|
69266
69282
|
}
|
|
69283
|
+
|
|
69284
|
+
return true;
|
|
69267
69285
|
}
|
|
69268
69286
|
|
|
69269
69287
|
//是否超出边界了
|
|
@@ -69293,6 +69311,8 @@ function IChartDrawPicture()
|
|
|
69293
69311
|
var startIndex=0-offset;
|
|
69294
69312
|
var endIndex=data.Data.length-offset;
|
|
69295
69313
|
|
|
69314
|
+
if (this.ClassName=="ChartDrawHLine") return false;
|
|
69315
|
+
|
|
69296
69316
|
if (xStep>0)
|
|
69297
69317
|
{
|
|
69298
69318
|
var xEnd=this.Frame.GetXFromIndex(endIndex-1,false);
|
|
@@ -73771,6 +73791,12 @@ function ChartDrawPictureParallelChannel()
|
|
|
73771
73791
|
var yMove=this.ChannelWidth/Math.sin(angle)-yStep;
|
|
73772
73792
|
this.ChannelWidth=Math.sin(angle)*yMove;
|
|
73773
73793
|
}
|
|
73794
|
+
else
|
|
73795
|
+
{
|
|
73796
|
+
return false;
|
|
73797
|
+
}
|
|
73798
|
+
|
|
73799
|
+
return true;
|
|
73774
73800
|
}
|
|
73775
73801
|
|
|
73776
73802
|
//0-10 鼠标对应的点索引 100=鼠标在正个图形上 -1 鼠标不在图形上
|
|
@@ -80969,6 +80995,12 @@ function ChartDrawTVLongPosition()
|
|
|
80969
80995
|
var item=this.Point[3];
|
|
80970
80996
|
if (item.Y+yStep>ptCenter.Y) item.Y+=yStep;
|
|
80971
80997
|
}
|
|
80998
|
+
else
|
|
80999
|
+
{
|
|
81000
|
+
return false;
|
|
81001
|
+
}
|
|
81002
|
+
|
|
81003
|
+
return true;
|
|
80972
81004
|
|
|
80973
81005
|
}
|
|
80974
81006
|
}
|
|
@@ -91912,7 +91944,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
91912
91944
|
var xStep=x*pixelTatio;
|
|
91913
91945
|
var yStep=y*pixelTatio;
|
|
91914
91946
|
//JSConsole.Chart.Log("xStep="+xStep+" yStep="+yStep);
|
|
91915
|
-
drawPicture.Move(xStep,yStep,drag);
|
|
91947
|
+
if (!drawPicture.Move(xStep,yStep,drag)) return false;
|
|
91916
91948
|
|
|
91917
91949
|
return true;
|
|
91918
91950
|
}
|
|
@@ -145884,6 +145916,7 @@ function ChartReport()
|
|
|
145884
145916
|
if (item.HeaderBGColor) colItem.HeaderBGColor=item.HeaderBGColor; //表头背景色
|
|
145885
145917
|
if (IFrameSplitOperator.IsNumber(item.Sort)) colItem.Sort=item.Sort;
|
|
145886
145918
|
if (IFrameSplitOperator.IsNumber(item.FixedWidth)) colItem.FixedWidth=item.FixedWidth;
|
|
145919
|
+
else if (item.FixedWidth===null) colItem.FixedWidth=null;
|
|
145887
145920
|
if (IFrameSplitOperator.IsBool(item.EnableDragWidth)) colItem.EnableDragWidth=item.EnableDragWidth;
|
|
145888
145921
|
|
|
145889
145922
|
colItem.IsDrawCallback=false;
|
|
@@ -149231,15 +149264,29 @@ function ChartReport()
|
|
|
149231
149264
|
}
|
|
149232
149265
|
|
|
149233
149266
|
if (!klineData) return;
|
|
149234
|
-
|
|
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
|
+
}
|
|
149235
149287
|
|
|
149236
|
-
|
|
149237
|
-
|
|
149238
|
-
var aryKLine=
|
|
149239
|
-
[
|
|
149240
|
-
{ Open:klineData.Data[0], High:high, Low:low, Close:klineData.Data[3]},
|
|
149241
|
-
//{ Open:klineData.Data[0], High:high, Low:low, Close:klineData.Data[3]}
|
|
149242
|
-
];
|
|
149288
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(aryKLine)) return;
|
|
149289
|
+
|
|
149243
149290
|
this.DrawKLineBar(aryKLine, high, low, rtItem);
|
|
149244
149291
|
}
|
|
149245
149292
|
|
|
@@ -149543,7 +149590,7 @@ function ChartReport()
|
|
|
149543
149590
|
eventID=JSCHART_EVENT_ID.ON_CLICK_REPORT_HEADER;
|
|
149544
149591
|
}
|
|
149545
149592
|
|
|
149546
|
-
this.SendClickEvent(eventID, { Data:
|
|
149593
|
+
this.SendClickEvent(eventID, { Data:header, X:x, Y:y , e:e, Inside:insidePoint, UIElement:uiElement});
|
|
149547
149594
|
return { Type:3, Redraw:bRedraw, Header:header }; //表头
|
|
149548
149595
|
}
|
|
149549
149596
|
|
|
@@ -154243,7 +154290,7 @@ function ScrollBarBGChart()
|
|
|
154243
154290
|
|
|
154244
154291
|
|
|
154245
154292
|
|
|
154246
|
-
var HQCHART_VERSION="1.1.
|
|
154293
|
+
var HQCHART_VERSION="1.1.15244";
|
|
154247
154294
|
|
|
154248
154295
|
function PrintHQChartVersion()
|
|
154249
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轴左右拖动数据(手势才有)
|
|
@@ -9053,6 +9058,10 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
9053
9058
|
{
|
|
9054
9059
|
this.DrawDynamicInfo();
|
|
9055
9060
|
}
|
|
9061
|
+
else
|
|
9062
|
+
{
|
|
9063
|
+
return;
|
|
9064
|
+
}
|
|
9056
9065
|
}
|
|
9057
9066
|
|
|
9058
9067
|
drag.LastMove.X=e.clientX;
|
|
@@ -14210,7 +14219,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
14210
14219
|
var xStep=x*pixelTatio;
|
|
14211
14220
|
var yStep=y*pixelTatio;
|
|
14212
14221
|
//JSConsole.Chart.Log("xStep="+xStep+" yStep="+yStep);
|
|
14213
|
-
drawPicture.Move(xStep,yStep,drag);
|
|
14222
|
+
if (!drawPicture.Move(xStep,yStep,drag)) return false;
|
|
14214
14223
|
|
|
14215
14224
|
return true;
|
|
14216
14225
|
}
|
|
@@ -20852,11 +20861,13 @@ function MinuteFrame()
|
|
|
20852
20861
|
|
|
20853
20862
|
this.DrawToolbar=function()
|
|
20854
20863
|
{
|
|
20855
|
-
|
|
20856
|
-
if (
|
|
20857
|
-
|
|
20864
|
+
var bDraw=true;
|
|
20865
|
+
if (this.ToolbarButtonStyle==1) bDraw=false;
|
|
20866
|
+
if (g_JSChartResource.IsDOMFrameToolbar===true) bDraw=false;
|
|
20858
20867
|
if (!this.DivFrameToolbar) return;
|
|
20859
|
-
|
|
20868
|
+
|
|
20869
|
+
if (!bDraw) this.HideToolbar();
|
|
20870
|
+
else this.DivFrameToolbar.Show(this.Identify);
|
|
20860
20871
|
}
|
|
20861
20872
|
|
|
20862
20873
|
//手绘,不用DOM,使用DOM太麻烦了
|
|
@@ -23087,11 +23098,13 @@ function KLineFrame()
|
|
|
23087
23098
|
|
|
23088
23099
|
this.DrawToolbar=function()
|
|
23089
23100
|
{
|
|
23090
|
-
|
|
23091
|
-
if (
|
|
23101
|
+
var bDraw=true;
|
|
23102
|
+
if (this.ToolbarButtonStyle==1) bDraw=false;
|
|
23103
|
+
if (g_JSChartResource.IsDOMFrameToolbar===true) bDraw=false;
|
|
23092
23104
|
if (!this.DivFrameToolbar) return;
|
|
23093
23105
|
|
|
23094
|
-
this.
|
|
23106
|
+
if (!bDraw) this.HideToolbar();
|
|
23107
|
+
else this.DivFrameToolbar.Show(this.Identify);
|
|
23095
23108
|
}
|
|
23096
23109
|
|
|
23097
23110
|
//手绘,不用DOM,使用DOM太麻烦了
|
|
@@ -34532,7 +34545,7 @@ function ChartKLine()
|
|
|
34532
34545
|
{
|
|
34533
34546
|
var left=this.ChartBorder.GetLeft();
|
|
34534
34547
|
var right=this.ChartBorder.GetRight();
|
|
34535
|
-
var top=this.ChartBorder.
|
|
34548
|
+
var top=this.ChartBorder.GetTop();
|
|
34536
34549
|
var bottom=this.ChartBorder.GetBottom();
|
|
34537
34550
|
}
|
|
34538
34551
|
|
|
@@ -61123,6 +61136,7 @@ function FrameSplitKLineX()
|
|
|
61123
61136
|
var lastYear=null, lastMonth=null;
|
|
61124
61137
|
var minDistance=12;
|
|
61125
61138
|
var monthCount=0;
|
|
61139
|
+
var globalOption=this.Frame.GlobalOption;
|
|
61126
61140
|
for(var i=0, index=xOffset, distance=minDistance;i<xPointCount && index<this.Frame.Data.Data.length ;++i,++index)
|
|
61127
61141
|
{
|
|
61128
61142
|
var year=parseInt(this.Frame.Data.Data[index].Date/10000);
|
|
@@ -61160,12 +61174,14 @@ function FrameSplitKLineX()
|
|
|
61160
61174
|
this.Frame.VerticalInfo.push(info);
|
|
61161
61175
|
distance=0;
|
|
61162
61176
|
}
|
|
61163
|
-
|
|
61164
|
-
|
|
61177
|
+
|
|
61178
|
+
var bShowShortDate=true; //日线显示在2个月以下的 显示格式
|
|
61179
|
+
if (globalOption && IFrameSplitOperator.IsBool(globalOption.EnableXShortDate)) bShowShortDate=globalOption.EnableXShortDate;
|
|
61180
|
+
if (bShowShortDate && this.Period==0 && monthCount<=2)
|
|
61165
61181
|
this.SplitShortDate();
|
|
61166
61182
|
}
|
|
61167
61183
|
|
|
61168
|
-
//分隔在2
|
|
61184
|
+
//分隔在2个月以内的格式
|
|
61169
61185
|
this.SplitShortDate=function()
|
|
61170
61186
|
{
|
|
61171
61187
|
this.Frame.VerticalInfo=[];
|
|
@@ -69308,6 +69324,8 @@ function IChartDrawPicture()
|
|
|
69308
69324
|
{
|
|
69309
69325
|
return false;
|
|
69310
69326
|
}
|
|
69327
|
+
|
|
69328
|
+
return true;
|
|
69311
69329
|
}
|
|
69312
69330
|
|
|
69313
69331
|
//是否超出边界了
|
|
@@ -69337,6 +69355,8 @@ function IChartDrawPicture()
|
|
|
69337
69355
|
var startIndex=0-offset;
|
|
69338
69356
|
var endIndex=data.Data.length-offset;
|
|
69339
69357
|
|
|
69358
|
+
if (this.ClassName=="ChartDrawHLine") return false;
|
|
69359
|
+
|
|
69340
69360
|
if (xStep>0)
|
|
69341
69361
|
{
|
|
69342
69362
|
var xEnd=this.Frame.GetXFromIndex(endIndex-1,false);
|
|
@@ -73815,6 +73835,12 @@ function ChartDrawPictureParallelChannel()
|
|
|
73815
73835
|
var yMove=this.ChannelWidth/Math.sin(angle)-yStep;
|
|
73816
73836
|
this.ChannelWidth=Math.sin(angle)*yMove;
|
|
73817
73837
|
}
|
|
73838
|
+
else
|
|
73839
|
+
{
|
|
73840
|
+
return false;
|
|
73841
|
+
}
|
|
73842
|
+
|
|
73843
|
+
return true;
|
|
73818
73844
|
}
|
|
73819
73845
|
|
|
73820
73846
|
//0-10 鼠标对应的点索引 100=鼠标在正个图形上 -1 鼠标不在图形上
|
|
@@ -81013,6 +81039,12 @@ function ChartDrawTVLongPosition()
|
|
|
81013
81039
|
var item=this.Point[3];
|
|
81014
81040
|
if (item.Y+yStep>ptCenter.Y) item.Y+=yStep;
|
|
81015
81041
|
}
|
|
81042
|
+
else
|
|
81043
|
+
{
|
|
81044
|
+
return false;
|
|
81045
|
+
}
|
|
81046
|
+
|
|
81047
|
+
return true;
|
|
81016
81048
|
|
|
81017
81049
|
}
|
|
81018
81050
|
}
|
|
@@ -91956,7 +91988,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
91956
91988
|
var xStep=x*pixelTatio;
|
|
91957
91989
|
var yStep=y*pixelTatio;
|
|
91958
91990
|
//JSConsole.Chart.Log("xStep="+xStep+" yStep="+yStep);
|
|
91959
|
-
drawPicture.Move(xStep,yStep,drag);
|
|
91991
|
+
if (!drawPicture.Move(xStep,yStep,drag)) return false;
|
|
91960
91992
|
|
|
91961
91993
|
return true;
|
|
91962
91994
|
}
|
|
@@ -145928,6 +145960,7 @@ function ChartReport()
|
|
|
145928
145960
|
if (item.HeaderBGColor) colItem.HeaderBGColor=item.HeaderBGColor; //表头背景色
|
|
145929
145961
|
if (IFrameSplitOperator.IsNumber(item.Sort)) colItem.Sort=item.Sort;
|
|
145930
145962
|
if (IFrameSplitOperator.IsNumber(item.FixedWidth)) colItem.FixedWidth=item.FixedWidth;
|
|
145963
|
+
else if (item.FixedWidth===null) colItem.FixedWidth=null;
|
|
145931
145964
|
if (IFrameSplitOperator.IsBool(item.EnableDragWidth)) colItem.EnableDragWidth=item.EnableDragWidth;
|
|
145932
145965
|
|
|
145933
145966
|
colItem.IsDrawCallback=false;
|
|
@@ -149275,15 +149308,29 @@ function ChartReport()
|
|
|
149275
149308
|
}
|
|
149276
149309
|
|
|
149277
149310
|
if (!klineData) return;
|
|
149278
|
-
|
|
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
|
+
}
|
|
149279
149331
|
|
|
149280
|
-
|
|
149281
|
-
|
|
149282
|
-
var aryKLine=
|
|
149283
|
-
[
|
|
149284
|
-
{ Open:klineData.Data[0], High:high, Low:low, Close:klineData.Data[3]},
|
|
149285
|
-
//{ Open:klineData.Data[0], High:high, Low:low, Close:klineData.Data[3]}
|
|
149286
|
-
];
|
|
149332
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(aryKLine)) return;
|
|
149333
|
+
|
|
149287
149334
|
this.DrawKLineBar(aryKLine, high, low, rtItem);
|
|
149288
149335
|
}
|
|
149289
149336
|
|
|
@@ -149587,7 +149634,7 @@ function ChartReport()
|
|
|
149587
149634
|
eventID=JSCHART_EVENT_ID.ON_CLICK_REPORT_HEADER;
|
|
149588
149635
|
}
|
|
149589
149636
|
|
|
149590
|
-
this.SendClickEvent(eventID, { Data:
|
|
149637
|
+
this.SendClickEvent(eventID, { Data:header, X:x, Y:y , e:e, Inside:insidePoint, UIElement:uiElement});
|
|
149591
149638
|
return { Type:3, Redraw:bRedraw, Header:header }; //表头
|
|
149592
149639
|
}
|
|
149593
149640
|
|
|
@@ -157694,10 +157741,12 @@ function JSPopMenu()
|
|
|
157694
157741
|
if (item.Disable===true) trDom.classList.add('UMyChart_DrawTool_Disable_Tr');
|
|
157695
157742
|
|
|
157696
157743
|
var prtTdDom=null;
|
|
157697
|
-
|
|
157744
|
+
var aryTDClassName=this.AryTDClassName;
|
|
157745
|
+
if (IFrameSplitOperator.IsNonEmptyArray(item.AryTDClassName)) aryTDClassName=item.AryTDClassName;
|
|
157746
|
+
for(var i=0;i<aryTDClassName.length;++i)
|
|
157698
157747
|
{
|
|
157699
157748
|
var tdDom=document.createElement("td");
|
|
157700
|
-
tdDom.className=
|
|
157749
|
+
tdDom.className=aryTDClassName[i];
|
|
157701
157750
|
|
|
157702
157751
|
if (i==0) //图标
|
|
157703
157752
|
{
|
|
@@ -166300,7 +166349,7 @@ function HQChartScriptWorker()
|
|
|
166300
166349
|
|
|
166301
166350
|
|
|
166302
166351
|
|
|
166303
|
-
var HQCHART_VERSION="1.1.
|
|
166352
|
+
var HQCHART_VERSION="1.1.15244";
|
|
166304
166353
|
|
|
166305
166354
|
function PrintHQChartVersion()
|
|
166306
166355
|
{
|