hqchart 1.1.12760 → 1.1.12771
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
CHANGED
|
@@ -1790,7 +1790,9 @@ var bDraw=false;if(drawPictureActive.Select.Guid&&drawPictureActive.Select.Chart
|
|
|
1790
1790
|
this.SelectChartDrawPicture.DragInfo={Click:{X:e.clientX,Y:e.clientY}};}else{this.CurrentChartDrawPicture=null;this.SelectChartDrawPicture=null;}var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_DRAWPICTURE);//选中画图工具事件
|
|
1791
1791
|
if(event&&event.Callback){var sendData={DrawPicture:drawPictrueData.ChartDrawPicture};event.Callback(event,sendData,this);}else{this.OnSelectChartPicture(drawPictrueData.ChartDrawPicture);//选中画图工具事件
|
|
1792
1792
|
}}else{if(this.ClickChartTimer!=null){clearTimeout(this.ClickChartTimer);this.ClickChartTimer=null;}var self=this;var ptClick={X:this.ClickDownPoint.X,Y:this.ClickDownPoint.Y};this.ClickChartTimer=setTimeout(function(){self.TryClickPaintEvent(JSCHART_EVENT_ID.ON_CLICK_CHART_PAINT,ptClick,e);},250);var bSelectedChartChanged=false;if(this.SelectedChart.EnableSelected){var selectChart=this.PtInChart(x,y);if(selectChart){if(this.SelectedChart.Selected.Identify!=selectChart.Identify){this.SelectedChart.Selected.Identify=selectChart.Identify;this.SelectedChart.Selected.Chart=selectChart.Chart;bSelectedChartChanged=true;}if(this.EnableIndexChartDrag){this.IndexChartDrag={SelectedChart:selectChart,LastMove:{X:x,Y:y},Click:{X:x,Y:y}};this.IndexChartDrag.Info=this.GetSelectedChartInfo(selectChart);if(this.IndexChartDrag.Info)this.IndexChartDrag.Info.FrameID=this.Frame.PtInFrame(x,y);}}else{if(this.SelectedChart.Selected.Identify){this.SelectedChart.Selected.Identify=null;this.SelectedChart.Selected.Chart=null;bSelectedChartChanged=true;}}}else{if(this.SelectedChart.Selected.Identify){this.SelectedChart.Selected.Identify=null;bSelectedChartChanged=true;}}if(drawPictureActive.Select.Guid!=null&&this.SelectChartDrawPicture==null||bSelectedChartChanged){var drawType=0;if(drawPictureActive.Select.Guid&&drawPictureActive.Select.Chart&&drawPictureActive.Select.Chart.IsDrawMain)drawType=1;if(bSelectedChartChanged){var chart=selectedChart.Chart;if(chart&&chart.SetSelectedStatus){chart.SetSelectedStatus(0);drawType=1;}chart=this.SelectedChart.Selected.Chart;if(chart&&chart.SetSelectedStatus){chart.SetSelectedStatus(1);drawType=1;}}if(drawType==1)this.Draw();else this.DrawDynamicInfo();}else if(bDrawDynamicInfo){this.DrawDynamicInfo();}}}document.onmousemove=function(e){_this7.DocOnMouseMove(e);};document.onmouseup=function(e){_this7.DocOnMouseUp(e);};};this.DocOnMouseMove=function(e){//加载数据中,禁用鼠标事件
|
|
1793
|
-
if(this.ChartSplashPaint&&this.IsEnableSplash==true)return;var drag=this.MouseDrag;if(!drag)return;var moveSetp=Math.abs(drag.LastMove.X-e.clientX);var moveSetpY=Math.abs(drag.LastMove.Y-e.clientY);var isDragSelectRect=this.RectSelectDrag&&this.RectSelectDrag.Index>=0;var isDragSubSelectRect=this.RectSelectDrag&&this.RectSelectDrag.Type==4;if(drag.CurrentMove){drag.CurrentMove.X=e.clientX;drag.CurrentMove.Y=e.clientY;}if(this.BorderDrag&&this.BorderDrag.Index>=0)
|
|
1793
|
+
if(this.ChartSplashPaint&&this.IsEnableSplash==true)return;var drag=this.MouseDrag;if(!drag)return;var moveSetp=Math.abs(drag.LastMove.X-e.clientX);var moveSetpY=Math.abs(drag.LastMove.Y-e.clientY);var isDragSelectRect=this.RectSelectDrag&&this.RectSelectDrag.Index>=0;var isDragSubSelectRect=this.RectSelectDrag&&this.RectSelectDrag.Type==4;if(drag.CurrentMove){drag.CurrentMove.X=e.clientX;drag.CurrentMove.Y=e.clientY;}if(this.BorderDrag&&this.BorderDrag.Index>=0)//边框拖动
|
|
1794
|
+
{if(Math.abs(drag.LastMove.Y-e.clientY)<5)return;var yMove=e.clientY-drag.LastMove.Y;this.OnMoveFromeBorder(this.BorderDrag.Index,yMove);drag.LastMove.X=e.clientX;drag.LastMove.Y=e.clientY;}else if(this.YDrag&&this.YDrag.Index>=0)//Y轴缩放
|
|
1795
|
+
{if(moveSetpY<5)return;var yMove=e.clientY-drag.LastMove.Y;//this.UIElement.style.cursor="n-resize";
|
|
1794
1796
|
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){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){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)//画图工具移动
|
|
1795
1797
|
{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(this.DragMode==1||isDragSelectRect||isDragSubSelectRect)//数据上下左右拖拽
|
|
1796
1798
|
{this.OnDragMode_One({X:moveSetp,Y:moveSetpY},e);}else if(this.DragMode==2)//区间选择
|
|
@@ -2580,9 +2582,10 @@ this.Buttons=[];this.CloseButton=CloneData(g_JSChartResource.Buttons.CloseOverla
|
|
|
2580
2582
|
this.TitleColor=g_JSChartResource.OverlayFrame.TitleColor;this.TitleFont=g_JSChartResource.OverlayFrame.TitleFont;}};this.Draw=function(){this.Buttons=[];if(this.ChartBorder.IsShowTitleOnly)return;this.SplitXYCoordinate();if(this.IsShow){this.DrawVertical();this.DrawHorizontal();this.DrawTitle();}this.SizeChange=false;this.XYSplit=false;this.XSplit=false;};//Y轴刻度线 x坐标
|
|
2581
2583
|
this.GetXHorizontal=function(){var border=this.ChartBorder.GetBorder();var x=border.Right;x+=this.RightOffset;if(this.Style==1){}else{x+=this.BlankWidth;}return x;};this.GetHorizontalWidth=function(){var width=null;if(this.YRightTextInfo&&IFrameSplitOperator.IsNumber(this.TextWidthIndex))width=this.YRightTextInfo.AryOverlayWidth[this.TextWidthIndex];return width;};this.DrawTitle=function()//画标题
|
|
2582
2584
|
{if(!this.IsShowTitle)return;if(!this.Title)return;var border=this.ChartBorder.GetBorder();var top=this.ChartBorder.GetTopTitle();var bottom=border.Bottom;var xText=this.GetXHorizontal();var leftLine=null,rightLine=null;if(IFrameSplitOperator.IsNonEmptyArray(this.YLineExtend)){rightLine=this.YLineExtend[1];leftLine=this.YLineExtend[0];}if(this.Style==1){this.Canvas.textBaseline="bottom";if(rightLine&&rightLine.Width>0)xText+=rightLine.Width+1;else xText+=1;}else{this.Canvas.textBaseline="top";if(leftLine&&leftLine.Width>0)xText-=leftLine.Width;else xText-=2;}var yText=top+(bottom-top)/2;this.Canvas.fillStyle=this.TitleColor;this.Canvas.font=this.TitleFont;this.Canvas.textAlign="center";this.Canvas.save();this.Canvas.translate(xText,yText);this.Canvas.rotate(90*Math.PI/180);this.Canvas.fillText(this.Title,0,0);this.Canvas.restore();};this.GetScaleTextWidth=function(){if(!this.IsShow)return null;var border=this.ChartBorder.GetBorder();var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
|
|
2583
|
-
if(this.IsHScreen){var borderBottom=this.ChartBorder.Bottom;var isDrawRight=borderBottom>10*pixelTatio&&this.IsShowYText[1]===true&&this.YTextPosition[1]!=2;}else{var borderRight=this.ChartBorder.Right;var isDrawRight=borderRight>10&&this.IsShowYText[1]===true&&this.YTextPosition[1]!=2;}if(!isDrawRight)return null;var width={Left:null,Right:0};for(var i=0;i<this.HorizontalInfo.length;++i){var textWidth=null;var item=this.HorizontalInfo[i];if(!item)continue;if(item.Message[1]!=null&&isDrawRight){if(item.Font!=null)this.Canvas.font=item.Font;textWidth=this.Canvas.measureText(item.Message[1]).width;if(this.YTextPadding&&IFrameSplitOperator.IsNumber(this.YTextPadding[1]))textWidth+=this.YTextPadding[1];if(width.Right<textWidth)width.Right=textWidth;}}if(IFrameSplitOperator.IsNonEmptyArray(this.YLineExtend)){var line=this.YLineExtend[1];if(line&&line.Width>0)width.Right+=line.Width;}return{TextWidth:width};}
|
|
2585
|
+
if(this.IsHScreen){var borderBottom=this.ChartBorder.Bottom;var isDrawRight=borderBottom>10*pixelTatio&&this.IsShowYText[1]===true&&this.YTextPosition[1]!=2;}else{var borderRight=this.ChartBorder.Right;var isDrawRight=borderRight>10&&this.IsShowYText[1]===true&&this.YTextPosition[1]!=2;}if(!isDrawRight)return null;var width={Left:null,Right:0};for(var i=0;i<this.HorizontalInfo.length;++i){var textWidth=null;var item=this.HorizontalInfo[i];if(!item)continue;if(item.Message[1]!=null&&isDrawRight){if(item.Font!=null)this.Canvas.font=item.Font;textWidth=this.Canvas.measureText(item.Message[1]).width;if(this.YTextPadding&&IFrameSplitOperator.IsNumber(this.YTextPadding[1]))textWidth+=this.YTextPadding[1];if(width.Right<textWidth)width.Right=textWidth;}}if(IFrameSplitOperator.IsNonEmptyArray(this.YLineExtend)){var line=this.YLineExtend[1];if(line&&line.Width>0)width.Right+=line.Width;}return{TextWidth:width};};//同步主图坐标
|
|
2586
|
+
this.SyncMainHorizontalInfo=function(){if(!this.MainFrame)return false;if(this.MainFrame.YMaxMin){this.YMaxMin.Max=this.MainFrame.YMaxMin.Max;this.YMaxMin.Min=this.MainFrame.YMaxMin.Min;}this.HorizontalMax=this.MainFrame.HorizontalMax;this.HorizontalMin=this.MainFrame.HorizontalMin;this.HorizontalInfo=[];for(var i=0;i<this.MainFrame.HorizontalInfo.length;++i){var item=this.MainFrame.HorizontalInfo[i];this.HorizontalInfo.push(item);}this.CoordinateType=this.MainFrame.CoordinateType;return true;};//分割x,y轴坐标信息
|
|
2584
2587
|
this.SplitXYCoordinate=function(){if(this.XYSplit==false)return;if(this.IsShareY)//和主图指标共享Y轴坐标
|
|
2585
|
-
{this.
|
|
2588
|
+
{this.SyncMainHorizontalInfo();}else//独立Y轴坐标
|
|
2586
2589
|
{if(this.YSplitOperator!=null)this.YSplitOperator.Operator();}// if (this.XSplitOperator!=null) this.XSplitOperator.Operator(); 子坐标和主坐标X轴一致 所以不用计算
|
|
2587
2590
|
};//画Y轴
|
|
2588
2591
|
this.DrawHorizontal=function(){var border=this.ChartBorder.GetBorder();var left=border.Left;var right=border.Right;var bottom=border.Bottom;var top=this.ChartBorder.GetTopTitle();var borderRight=this.ChartBorder.Right;right+=this.RightOffset;var xLine=this.GetXHorizontal();if(IFrameSplitOperator.IsNumber(this.BlankWidth))right+=this.BlankWidth;var rightExtendText=null;//右侧文字设置
|
|
@@ -2834,7 +2837,8 @@ this.DrawHorizontal=function(){}/*
|
|
|
2834
2837
|
this.UpdateFrameMaxMin=function()//调整坐标最大 最小值
|
|
2835
2838
|
{var value={Max:null,Min:null};if(this.Frame.IsShareY)//共享Y轴坐标
|
|
2836
2839
|
{this.Frame.XYSplit=true;return;}if(this.Frame.YSpecificMaxMin)//固定坐标
|
|
2837
|
-
{value.Max=this.Frame.YSpecificMaxMin.Max;value.Min=this.Frame.YSpecificMaxMin.Min;}else{for(var i
|
|
2840
|
+
{value.Max=this.Frame.YSpecificMaxMin.Max;value.Min=this.Frame.YSpecificMaxMin.Min;}else{for(var i=0;i<this.ChartPaint.length;++i){var paint=this.ChartPaint[i];if(paint.IsShow==false)continue;//隐藏的图形不计算
|
|
2841
|
+
var range=paint.GetMaxMin();if(range==null||range.Max==null||range.Min==null)continue;if(IFrameSplitOperator.IsNumber(range.Max)){if(value.Max==null||value.Max<range.Max)value.Max=range.Max;}if(IFrameSplitOperator.IsNumber(range.Min)){if(value.Min==null||value.Min>range.Min)value.Min=range.Min;}}}if(!IFrameSplitOperator.IsNumber(this.Frame.YMaxMin.Max)||this.Frame.YMaxMin.Max!=value.Max){this.Frame.YMaxMin.Max=value.Max;this.Frame.XYSplit=true;}if(!IFrameSplitOperator.IsNumber(this.Frame.YMaxMin.Min)||this.Frame.YMaxMin.Min!=value.Min){this.Frame.YMaxMin.Min=value.Min;this.Frame.XYSplit=true;}if(this.Frame.XYSplit){var max=10,min=0;if(value.Max!=null)max=value.Max;if(value.Min!=null)min=value.Min;this.Frame.HorizontalMax=max;this.Frame.HorizontalMin=min;}else{this.Frame.XYSplit=true;}};}//行情框架
|
|
2838
2842
|
function HQTradeFrame(){this.SubFrame=new Array();//SubFrameItem 数组
|
|
2839
2843
|
this.SizeChange=true;//大小是否改变
|
|
2840
2844
|
this.ChartBorder;this.Canvas;//画布
|
|
@@ -2850,7 +2854,7 @@ this.FixedRightWidth={Main:60,Overlay:80};this.ZoomWindowsInfo=null;//附图指
|
|
|
2850
2854
|
this.ZoomStartWindowIndex=1;//允许缩放窗口起始位置
|
|
2851
2855
|
this.GetExtendChartByClassName;this.GetEventCallback;this.OnMoveFromeBorder=function(index,yMove){if(this.SubFrame.length<=0)return false;var topFrame=this.SubFrame[index];var bottomFrame=null;for(var i=index+1;i<this.SubFrame.length;++i){var item=this.SubFrame[i];if(item.Height>0){bottomFrame=item;break;}}if(!topFrame||!bottomFrame)return false;var bottomBackup=topFrame.Frame.ChartBorder.Bottom;var topBackup=bottomFrame.Frame.ChartBorder.Top;topFrame.Frame.ChartBorder.Bottom-=yMove;bottomFrame.Frame.ChartBorder.Top+=yMove;var height=topFrame.Frame.ChartBorder.GetHeightEx();var height2=bottomFrame.Frame.ChartBorder.GetHeightEx();//缩小的时候 小于最小高度 不处理
|
|
2852
2856
|
if(height<this.MinSubFrameHeight&&yMove<0||height2<this.MinSubFrameHeight&&yMove>0){topFrame.Frame.ChartBorder.Bottom=bottomBackup;bottomFrame.Frame.ChartBorder.Top=topBackup;return false;}return true;};this.ReDrawToolbar=function(){for(var i in this.SubFrame){this.SubFrame[i].Frame.ReDrawToolbar=true;}};this.SetFrameBorderSizeChange=function(){var firstFrame=this.SubFrame[0];if(!firstFrame||!firstFrame.Frame)return;var splitOper=firstFrame.Frame.YSplitOperator;if(!splitOper)return;if(splitOper.CoordinateType==2)//对数坐标 需要重新计算Y轴分割
|
|
2853
|
-
{firstFrame.Frame.XYSplit=true;}};this.CancelZoomUpDownFrameY=function(obj){var index=obj.Index;if(this.SubFrame.length<=0)return false;if(!this.SubFrame[index])return false;var subFrame=this.SubFrame[index];var frame=subFrame.Frame;var splitOper=frame.YSplitOperator;if(splitOper.FixedYMaxMin){splitOper.FixedYMaxMin=null;splitOper.EnableZoomUpDown=false;frame.XYSplit=true;for(var i in subFrame.OverlayIndex){var item=subFrame.OverlayIndex[i];if(item.Frame.IsShareY)item.Frame.XYSplit=true;}JSConsole.Chart.Log('[HQTradeFrame::CancelZoomUpDownFrameY]');return true;}return false;};this.OnZoomUpDownFrameY=function(obj,yMove){var index=obj.Index;if(this.SubFrame.length<=0)return false;if(!this.SubFrame[index])return false;var subFrame=this.SubFrame[index];var frame=subFrame.Frame;var top=frame.ChartBorder.GetTopEx();var bottom=frame.ChartBorder.GetBottomEx();var maxValue=frame.HorizontalMax;var minValue=frame.HorizontalMin;var moveStep=(maxValue-minValue)*Math.abs(yMove)/(bottom-top);var splitOper=frame.YSplitOperator;var newFixedYMaxMin={Max:maxValue,Min:minValue};if(obj.Position==1){var step=yMove>0?-moveStep:moveStep;newFixedYMaxMin.Max+=step;}else if(obj.Position==2){var step=yMove>0?-moveStep:moveStep;newFixedYMaxMin.Min+=step;}else if(obj.Position==0){var step=yMove>0?moveStep:-moveStep;newFixedYMaxMin.Max+=step;newFixedYMaxMin.Min-=step;}else{return false;}if(newFixedYMaxMin.Max>newFixedYMaxMin.Min){splitOper.FixedYMaxMin=newFixedYMaxMin;splitOper.EnableZoomUpDown=true;frame.XYSplit=true;for(var i
|
|
2857
|
+
{firstFrame.Frame.XYSplit=true;}};this.CancelZoomUpDownFrameY=function(obj){var index=obj.Index;if(this.SubFrame.length<=0)return false;if(!this.SubFrame[index])return false;var subFrame=this.SubFrame[index];var frame=subFrame.Frame;var splitOper=frame.YSplitOperator;if(splitOper.FixedYMaxMin){splitOper.FixedYMaxMin=null;splitOper.EnableZoomUpDown=false;frame.XYSplit=true;for(var i in subFrame.OverlayIndex){var item=subFrame.OverlayIndex[i];if(item.Frame.IsShareY)item.Frame.XYSplit=true;}JSConsole.Chart.Log('[HQTradeFrame::CancelZoomUpDownFrameY]');return true;}return false;};this.OnZoomUpDownFrameY=function(obj,yMove){var index=obj.Index;if(this.SubFrame.length<=0)return false;if(!this.SubFrame[index])return false;var subFrame=this.SubFrame[index];var frame=subFrame.Frame;var top=frame.ChartBorder.GetTopEx();var bottom=frame.ChartBorder.GetBottomEx();var maxValue=frame.HorizontalMax;var minValue=frame.HorizontalMin;var moveStep=(maxValue-minValue)*Math.abs(yMove)/(bottom-top);var splitOper=frame.YSplitOperator;var newFixedYMaxMin={Max:maxValue,Min:minValue};if(obj.Position==1){var step=yMove>0?-moveStep:moveStep;newFixedYMaxMin.Max+=step;}else if(obj.Position==2){var step=yMove>0?-moveStep:moveStep;newFixedYMaxMin.Min+=step;}else if(obj.Position==0){var step=yMove>0?moveStep:-moveStep;newFixedYMaxMin.Max+=step;newFixedYMaxMin.Min-=step;}else{return false;}if(newFixedYMaxMin.Max>newFixedYMaxMin.Min){splitOper.FixedYMaxMin=newFixedYMaxMin;splitOper.EnableZoomUpDown=true;frame.XYSplit=true;for(var i=0;i<subFrame.OverlayIndex.length;++i){var item=subFrame.OverlayIndex[i];if(item.Frame.IsShareY)item.Frame.XYSplit=true;}JSConsole.Chart.Log('[HQTradeFrame::OnZoomUpDownFrameY] Max='+newFixedYMaxMin.Max+', Min='+newFixedYMaxMin.Min);return true;}return false;};this.OnUpDonwFrameY=function(obj,yMove){var index=obj.Index;if(this.SubFrame.length<=0)return false;if(!this.SubFrame[index])return false;var subFrame=this.SubFrame[index];var frame=subFrame.Frame;var top=frame.ChartBorder.GetTopEx();var bottom=frame.ChartBorder.GetBottomEx();var splitOper=frame.YSplitOperator;if(!splitOper)return false;var maxValue=frame.HorizontalMax;var minValue=frame.HorizontalMin;var moveStep=(maxValue-minValue)*Math.abs(yMove)/(bottom-top);var step=yMove>0?-moveStep:moveStep;var newFixedYMaxMin={Max:maxValue,Min:minValue};newFixedYMaxMin.Max-=step;newFixedYMaxMin.Min-=step;splitOper.FixedYMaxMin=newFixedYMaxMin;splitOper.EnableZoomUpDown=true;frame.XYSplit=true;for(var i in subFrame.OverlayIndex){var item=subFrame.OverlayIndex[i];if(item.Frame.IsShareY)item.Frame.XYSplit=true;}JSConsole.Chart.Log('[HQTradeFrame::OnUpDonwFrameY] Max='+newFixedYMaxMin.Max+', Min='+newFixedYMaxMin.Min+', yMove='+yMove+', moveStep='+moveStep);return true;};this.ClearUpDonwFrameYData=function(option)//清空上下拖拽的数据
|
|
2854
2858
|
{if(this.SubFrame.length<=0)return;if(option){var index=option.Index;if(index<0||index>=this.SubFrame.length)return;var item=this.SubFrame[index];if(!item||!item.Frame||!item.Frame.YSplitOperator)return;var splitOper=item.Frame.YSplitOperator;if(splitOper.EnableZoomUpDown==true)splitOper.FixedYMaxMin=null;}else{for(var i=0;i<this.SubFrame.length;++i){var item=this.SubFrame[i];if(!item||!item.Frame||!item.Frame.YSplitOperator)continue;var splitOper=item.Frame.YSplitOperator;if(splitOper.EnableZoomUpDown==true)splitOper.FixedYMaxMin=null;}}};this.ClearCoordinateText=function(option)//清空X,Y轴刻度文字, 线段保留
|
|
2855
2859
|
{for(var i=0;i<this.SubFrame.length;++i){var item=this.SubFrame[i];if(!item.Frame)continue;item.Frame.ClearCoordinateText(option);}};this.RestoreIndexWindows=function(){if(!this.ZoomWindowsInfo)return false;var subFrame=this.SubFrame[this.ZoomWindowsInfo.FrameID];for(var i=this.ZoomStartWindowIndex;i<this.ZoomWindowsInfo.Data.length;++i){var restoreItem=this.ZoomWindowsInfo.Data[i];var frameItem=this.SubFrame[i];frameItem.Height=restoreItem.Height;frameItem.Frame.IsMinSize=false;frameItem.Frame.ReDrawToolbar=true;frameItem.Frame.XSplitOperator.ShowText=restoreItem.ShowXText;frameItem.Frame.XYSplit=true;for(var j=0;j<frameItem.OverlayIndex.length;++j){var overlayItem=frameItem.OverlayIndex[j];overlayItem.Frame.IsMinSize=false;}}this.ZoomWindowsInfo=null;return true;};this.ZoomIndexWindow=function(frameID,option){var subFrame=this.SubFrame[frameID];if(!subFrame)return false;subFrame.Frame.ChartBorder.IsShowTitleOnly=false;if(this.ZoomWindowsInfo)//还原
|
|
2856
2860
|
{return this.RestoreIndexWindows();}else//放大
|
|
@@ -2865,8 +2869,11 @@ var minValue=frame.HorizontalMin;frame.YSplitOperator.Operator();var value=frame
|
|
|
2865
2869
|
//frame.HorizontalMax=maxValue;
|
|
2866
2870
|
//frame.HorizontalMin=minValue;
|
|
2867
2871
|
if(value&&value.TextWidth){var widthItem=value.TextWidth;if(IFrameSplitOperator.IsNumber(widthItem.Left)){if(width.Left==null||width.Left<widthItem.Left)width.Left=widthItem.Left;}if(IFrameSplitOperator.IsNumber(widthItem.Right)){if(width.Right==null||width.Right<widthItem.Right)width.Right=widthItem.Right;}}//右侧叠加指标
|
|
2868
|
-
if(IFrameSplitOperator.IsNonEmptyArray(item.OverlayIndex)){for(var j=0,k=0;j<item.OverlayIndex.length;++j){var overlayItem=item.OverlayIndex[j];if(!overlayItem.Frame)continue;var maxValue=overlayItem.Frame.HorizontalMax;//最大最小要还原
|
|
2869
|
-
var minValue=overlayItem.Frame.HorizontalMin;overlayItem.Frame.YSplitOperator.Operator();var value=overlayItem.Frame.GetScaleTextWidth()
|
|
2872
|
+
if(IFrameSplitOperator.IsNonEmptyArray(item.OverlayIndex)){for(var j=0,k=0;j<item.OverlayIndex.length;++j){var overlayItem=item.OverlayIndex[j];if(!overlayItem.Frame)continue;if(overlayItem.Frame.IsShareY){if(overlayItem.Frame.SyncMainHorizontalInfo)overlayItem.Frame.SyncMainHorizontalInfo();var value=overlayItem.Frame.GetScaleTextWidth();}else{var maxValue=overlayItem.Frame.HorizontalMax;//最大最小要还原
|
|
2873
|
+
var minValue=overlayItem.Frame.HorizontalMin;overlayItem.Frame.YSplitOperator.Operator();var value=overlayItem.Frame.GetScaleTextWidth();//数据原始范围存储在YMaxMin, 不需要还原HorizontalMax,HorizontalMin
|
|
2874
|
+
//overlayItem.Frame.HorizontalMax=maxValue;
|
|
2875
|
+
//overlayItem.Frame.HorizontalMin=minValue;
|
|
2876
|
+
}overlayItem.RightWidth={Index:-1,Width:0};if(!value||!value.TextWidth)continue;var widthItem=value.TextWidth;if(!IFrameSplitOperator.IsNumber(widthItem.Right))continue;overlayItem.RightWidth.Index=k;overlayItem.RightWidth.Width=widthItem.Right;if(aryOverlayWidth[k]){aryOverlayWidth[k][i]=overlayItem.RightWidth;}else{aryOverlayWidth[k]=[];aryOverlayWidth[k][i]=overlayItem.RightWidth;}++k;}}}var overlayWidth=[];for(var i=0;i<aryOverlayWidth.length;++i){var colItem=aryOverlayWidth[i];var max=0;for(var j=0;j<colItem.length;++j){if(!colItem[j])continue;var item=colItem[j].Width;if(max<item)max=item;}if(max>0)max+=this.OverlayBlankWidth;for(var j=0;j<colItem.length;++j){if(!colItem[j])continue;colItem[j].Width=max;}overlayWidth[i]=max;}for(var i=0;i<overlayWidth.length;++i){var value=overlayWidth[i];if(!IFrameSplitOperator.IsNumber(value))continue;width.OverlayRight+=value;}width.AryOverlayWidth=overlayWidth;return width;};this.IsFrameXYSplit=function(){for(var i in this.SubFrame){var item=this.SubFrame[i];if(item.Frame.XYSplit)return true;for(var j=0;j<item.OverlayIndex.length;++j){var overlayItem=item.OverlayIndex[j];if(overlayItem.Frame.XYSplit)return true;}}return false;};this.Draw=function(option){if(this.SizeChange===true){this.CalculateChartBorder();}var isSplash=false;//是否过场动画
|
|
2870
2877
|
if(option&&option.IsEnableSplash===true)isSplash=true;if(isSplash==false&&(this.AutoLeftBorder||this.AutoRightBorder)&&this.IsFrameXYSplit()){this.AutoRightOverlayWidth=[];var textWidth=this.GetScaleTextWidth();var bSizeChange=false;if(IFrameSplitOperator.IsNumber(textWidth.Left)&&this.AutoLeftBorder){var blank=0;if(IFrameSplitOperator.IsNumber(this.AutoLeftBorder.Blank))blank=this.AutoLeftBorder.Blank;var value=textWidth.Left+blank;if(IFrameSplitOperator.IsNumber(this.AutoLeftBorder.MinWidth)){if(this.AutoLeftBorder.MinWidth>value)value=this.AutoLeftBorder.MinWidth;}if(this.IsHScreen)this.ChartBorder.Top=value;else this.ChartBorder.Left=value;for(var i=0;i<this.SubFrame.length;++i){var item=this.SubFrame[i];if(this.IsHScreen)item.Frame.ChartBorder.Top=value;else item.Frame.ChartBorder.Left=value;}}if(IFrameSplitOperator.IsNumber(textWidth.Right)){if(this.AutoRightBorder)//自动调整右侧间距
|
|
2871
2878
|
{var rightTextInfo={};var blank=0;if(IFrameSplitOperator.IsNumber(this.AutoRightBorder.Blank))blank=this.AutoRightBorder.Blank;var value=textWidth.Right+blank;if(IFrameSplitOperator.IsNumber(this.AutoRightBorder.MinWidth)){if(this.AutoRightBorder.MinWidth>value)value=this.AutoRightBorder.MinWidth;}this.AuotRightWidth=value;rightTextInfo.MainTextWidth=value;//主图坐标宽度
|
|
2872
2879
|
if(IFrameSplitOperator.IsNonEmptyArray(textWidth.AryOverlayWidth))rightTextInfo.AryOverlayWidth=textWidth.AryOverlayWidth;if(IFrameSplitOperator.IsPlusNumber(textWidth.OverlayRight)){this.AuotRightWidth=value;value+=textWidth.OverlayRight;}if(this.GetExtendChartRightWidth){var extendWidth=this.GetExtendChartRightWidth();if(this.GetExtendChartByClassName){var finder=this.GetExtendChartByClassName("StockChip");if(finder&&finder.Chart){finder.Chart.Left=value;}}value+=extendWidth;}if(this.IsHScreen){if(this.ChartBorder.Bottom!=value)bSizeChange=true;this.ChartBorder.Bottom=value;}else{if(this.ChartBorder.Right!=value)bSizeChange=true;this.ChartBorder.Right=value;}for(var i=0;i<this.SubFrame.length;++i){var item=this.SubFrame[i];if(this.IsHScreen)item.Frame.ChartBorder.Bottom=value;else item.Frame.ChartBorder.Right=value;item.Frame.ReDrawToolbar=true;item.Frame.YRightTextInfo=rightTextInfo;for(var j=0;j<item.OverlayIndex.length;++j){var overlayItem=item.OverlayIndex[j];overlayItem.Frame.YRightTextInfo=rightTextInfo;}}}else{var rightTextInfo={};rightTextInfo.MainTextWidth=this.FixedRightWidth.Main;if(textWidth.OverlayRight==0)//无叠加直接最右边
|
|
@@ -7077,10 +7084,11 @@ this.CreateChartDrawPictureByStorage();//创建画图工具
|
|
|
7077
7084
|
this.UpdataDataoffset();//更新数据偏移
|
|
7078
7085
|
this.UpdatePointByCursorIndex();//更新十字光标位子
|
|
7079
7086
|
this.UpdateFrameMaxMin();//调整坐标最大 最小值
|
|
7080
|
-
this.Frame.SetSizeChage(true);this.Draw();};this.
|
|
7087
|
+
this.Frame.SetSizeChage(true);this.Draw();};this.RequestHistoryMinuteData=function(){var self=this;this.ChartSplashPaint.SetTitle(this.LoadDataSplashTitle);this.ChartSplashPaint.EnableSplash(true);this.FlowCapitalReady=false;this.ResetPage();//重置分页
|
|
7081
7088
|
this.ResetDragDownload();this.ResetZoomDownload();this.Draw();if(this.NetworkFilter){var kLineDrawType=this.GetKLineDrawType();var obj={Name:'KLineChartContainer::ReqeustHistoryMinuteData',//类名::
|
|
7082
7089
|
Explain:'1分钟K线数据',Request:{Url:self.MinuteKLineApiUrl,Type:'POST',Data:{symbol:self.Symbol,count:self.MaxRequestMinuteDayCount,field:["name","symbol","yclose","open","price","high","low","vol"],period:this.Period,right:this.Right,klineDrawType:kLineDrawType}},Self:this,PreventDefault:false};this.NetworkFilter(obj,function(data){self.ChartSplashPaint.EnableSplash(false);self.RecvMinuteHistoryData(data);var page=self.Page.Minute;if(page.Enable==true&&page.Finish==false){self.ReqeustHistoryMinutePageData();}else{self.AutoUpdateEvent(true,'KLineChartContainer::ReqeustHistoryMinuteData');self.AutoUpdate();}});if(obj.PreventDefault==true)return;//已被上层替换,不调用默认的网络请求
|
|
7083
|
-
}JSNetwork.HttpRequest({url:this.MinuteKLineApiUrl,data:{"field":["name","symbol","yclose","open","price","high","low","vol"],"symbol":self.Symbol,"start":-1,"count":self.MaxRequestMinuteDayCount},type:"post",dataType:"json",async:true,success:function success(data){self.ChartSplashPaint.EnableSplash(false);self.RecvMinuteHistoryData(data);var page=self.Page.Minute;if(page.Enable==true&&page.Finish==false){self.ReqeustHistoryMinutePageData();}else{self.AutoUpdateEvent(true,'KLineChartContainer::ReqeustHistoryMinuteData');self.AutoUpdate();}}});}
|
|
7090
|
+
}JSNetwork.HttpRequest({url:this.MinuteKLineApiUrl,data:{"field":["name","symbol","yclose","open","price","high","low","vol"],"symbol":self.Symbol,"start":-1,"count":self.MaxRequestMinuteDayCount},type:"post",dataType:"json",async:true,success:function success(data){self.ChartSplashPaint.EnableSplash(false);self.RecvMinuteHistoryData(data);var page=self.Page.Minute;if(page.Enable==true&&page.Finish==false){self.ReqeustHistoryMinutePageData();}else{self.AutoUpdateEvent(true,'KLineChartContainer::ReqeustHistoryMinuteData');self.AutoUpdate();}}});};//支持老版本
|
|
7091
|
+
this.ReqeustHistoryMinuteData=this.RequestHistoryMinuteData;this.RecvMinuteHistoryData=function(data){if(this.EnableVerifyRecvData&&data.symbol!=this.Symbol){JSConsole.Chart.Warn('[KLineChartContainer::RecvMinuteHistoryData] recv data symbol not match. HQChart['+this.Symbol+'] , Recv['+data.symbol+']');return;}var aryDayData=KLineChartContainer.JsonDataToMinuteHistoryData(data);//原始数据
|
|
7084
7092
|
var sourceData=new ChartData();sourceData.Data=aryDayData;sourceData.DataType=1;//0=日线数据 1=分钟数据
|
|
7085
7093
|
sourceData.Symbol=data.symbol;this.SourceData=sourceData;if(this.BeforeBindMainData)this.BeforeBindMainData("RecvMinuteHistoryData");//显示的数据
|
|
7086
7094
|
var bindData=new ChartData();bindData.Data=aryDayData;bindData.Right=this.Right;bindData.Period=this.Period;bindData.DataType=1;bindData.Symbol=data.symbol;if(bindData.Right>0&&!this.IsApiPeriod&&this.RightFormula>=1)//复权
|
|
@@ -7262,7 +7270,7 @@ this.ResetScrollBar();this.ResetOverlaySymbolStatus();this.ClearIndexRunCount();
|
|
|
7262
7270
|
//this.ReqeustKLineInfoData();
|
|
7263
7271
|
}else if(ChartData.IsMinutePeriod(this.Period,true)||ChartData.IsSecondPeriod(this.Period)||ChartData.IsMilliSecondPeriod(this.Period)){this.CancelAutoUpdate();//先停止定时器
|
|
7264
7272
|
this.AutoUpdateEvent(false,'KLineChartContainer::ChangePeriod');//切换周期先停止更新
|
|
7265
|
-
this.ResetScrollBar();this.ResetOverlaySymbolStatus();this.ClearIndexRunCount();this.Frame.ClearYCoordinateMaxMin();this.
|
|
7273
|
+
this.ResetScrollBar();this.ResetOverlaySymbolStatus();this.ClearIndexRunCount();this.Frame.ClearYCoordinateMaxMin();this.RequestHistoryMinuteData();//请求分钟数据
|
|
7266
7274
|
}else if(ChartData.IsTickPeriod(this.Period)){this.CancelAutoUpdate();//先停止定时器
|
|
7267
7275
|
this.AutoUpdateEvent(false,'KLineChartContainer::ChangePeriod');this.ResetScrollBar();this.ClearIndexRunCount();this.Frame.ClearYCoordinateMaxMin();this.RequestTickData();//请求分笔数据
|
|
7268
7276
|
}};//复权切换
|
|
@@ -7272,7 +7280,7 @@ this.AutoUpdateEvent(false,'KLineChartContainer::ChangeRight');//切换复权先
|
|
|
7272
7280
|
this.ClearIndexPaint();this.ResetOverlaySymbolStatus();this.ResetScrollBar();this.RequestHistoryData();//请求日线数据
|
|
7273
7281
|
}else if(ChartData.IsMinutePeriod(this.Period,true)||ChartData.IsSecondPeriod(this.Period)||ChartData.IsMilliSecondPeriod(this.Period)){this.CancelAutoUpdate();//先停止定时器
|
|
7274
7282
|
this.AutoUpdateEvent(false,'KLineChartContainer::ChangeRight');//切换复权先停止更新
|
|
7275
|
-
this.ClearIndexPaint();this.ResetOverlaySymbolStatus();this.ResetScrollBar();this.
|
|
7283
|
+
this.ClearIndexPaint();this.ResetOverlaySymbolStatus();this.ResetScrollBar();this.RequestHistoryMinuteData();//请求分钟数据
|
|
7276
7284
|
}}};//设置第1屏的起始日期
|
|
7277
7285
|
this.SetFirstShowDate=function(obj){if(!obj||!obj.Date)return;var option={ID:JSCHART_OPERATOR_ID.OP_GOTO,Date:obj.Date};if(IFrameSplitOperator.IsNumber(obj.Time))option.Time=obj.Time;if(IFrameSplitOperator.IsNumber(obj.PageSize))option.PageSize=obj.PageSize;this.ChartOperator(option);};//删除某一个窗口的指标, bCallDestory=是否调用图形销毁函数
|
|
7278
7286
|
this.DeleteIndexPaint=function(windowIndex,bCallDestroy){var paint=new Array();//踢出当前窗口的指标画法
|
|
@@ -7352,7 +7360,7 @@ scriptIndex.Create(this,windowIndex);overlayFrame.Script=scriptIndex;}var event=
|
|
|
7352
7360
|
{if(!this.DeleteOverlayIndex(identify,null))return;this.UpdateFrameMaxMin();//重新计算坐标范围
|
|
7353
7361
|
this.Frame.ResetXYSplit(true);this.Draw();};this.ChangeKLineDrawType=function(drawType,isDraw,option){if(this.KLineDrawType==drawType&&!option)return;var oldKLineType=this.KLineDrawType;this.KLineDrawType=drawType;var setKLineType=new _set2.default([5,7,8,10,11,12,17]);if(setKLineType.has(oldKLineType)||setKLineType.has(drawType)){var chart=this.ChartPaint[0];if(chart)chart.DrawType=this.KLineDrawType;this.CancelAutoUpdate();//先停止定时器
|
|
7354
7362
|
this.AutoUpdateEvent(false,'KLineChartContainer::ChangeKLineDrawType');if(ChartData.IsDayPeriod(this.Period,true)){this.ResetOverlaySymbolStatus();this.RequestHistoryData();//请求日线数据
|
|
7355
|
-
}else if(ChartData.IsMinutePeriod(this.Period,true)||ChartData.IsSecondPeriod(this.Period)||ChartData.IsMilliSecondPeriod(this.Period)){this.ResetOverlaySymbolStatus();this.
|
|
7363
|
+
}else if(ChartData.IsMinutePeriod(this.Period,true)||ChartData.IsSecondPeriod(this.Period)||ChartData.IsMilliSecondPeriod(this.Period)){this.ResetOverlaySymbolStatus();this.RequestHistoryMinuteData();//请求分钟数据
|
|
7356
7364
|
}return;}for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(i==0){item.DrawType=this.KLineDrawType;if(option){if(IFrameSplitOperator.IsBool(option.IsThinAKBar))item.IsThinAKBar=option.IsThinAKBar;}}else if(item.ClassName=='ChartVolStick'){item.KLineDrawType=this.KLineDrawType;}}for(var i in this.OverlayChartPaint)//叠加K线样式修改
|
|
7357
7365
|
{var item=this.OverlayChartPaint[i];item.DrawType=this.KLineDrawType;}if(isDraw==false)return;this.UpdateFrameMaxMin();//调整坐标最大 最小值
|
|
7358
7366
|
this.Frame.SetSizeChage(true);this.Draw();};//修改坐标类型
|
|
@@ -7433,7 +7441,7 @@ var item=windows[i];if(!item)continue;if(item.Script){this.WindowIndex[i]=new Sc
|
|
|
7433
7441
|
}else if(item.API){var apiItem=item.API;this.WindowIndex[i]=new APIScriptIndex(apiItem.Name,apiItem.Script,apiItem.Args,item);}else{var indexID=item.Index;var indexInfo=systemScript.Get(indexID);if(indexInfo){var args=indexInfo.Args;if(item.Args)indexInfo.Args=item.Args;indexInfo.ID=indexID;this.WindowIndex[i]=new ScriptIndex(indexInfo.Name,indexInfo.Script,indexInfo.Args,indexInfo);//脚本执行
|
|
7434
7442
|
}}}}}this.ReloadChartDrawPicture();this.Frame.ClearUpDonwFrameYData();if(ChartData.IsDayPeriod(this.Period,true)){this.ClearStockCache();this.RequestHistoryData();//请求日线数据
|
|
7435
7443
|
//this.ReqeustKLineInfoData();
|
|
7436
|
-
}else if(ChartData.IsMinutePeriod(this.Period,true)||ChartData.IsSecondPeriod(this.Period)||ChartData.IsMilliSecondPeriod(this.Period)){this.ClearStockCache();this.
|
|
7444
|
+
}else if(ChartData.IsMinutePeriod(this.Period,true)||ChartData.IsSecondPeriod(this.Period)||ChartData.IsMilliSecondPeriod(this.Period)){this.ClearStockCache();this.RequestHistoryMinuteData();//请求分钟数据
|
|
7437
7445
|
}else if(ChartData.IsTickPeriod(this.Period)){this.ClearStockCache();this.RequestTickData();}};this.ReqeustKLineInfoData=function(obj){if(obj&&obj.FunctionName=="RecvDragDayData")//增量更新
|
|
7438
7446
|
{obj.Update=true;}else{if(this.ChartPaint.length>0){var klinePaint=this.ChartPaint[0];klinePaint.InfoData=new _map2.default();}obj.Update=false;}//信息地雷信息
|
|
7439
7447
|
if(!IFrameSplitOperator.IsNonEmptyArray(this.ChartInfo))return;for(var i=0;i<this.ChartInfo.length;++i){this.ChartInfo[i].RequestData(this,obj);}};//设置K线信息地雷
|
|
@@ -12912,7 +12920,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
|
|
|
12912
12920
|
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);};}/********************************************************************************
|
|
12913
12921
|
* 版本信息输出
|
|
12914
12922
|
*
|
|
12915
|
-
*/var HQCHART_VERSION="1.1.
|
|
12923
|
+
*/var HQCHART_VERSION="1.1.12770";function PrintHQChartVersion(){var log='*************************************************************************************************************\n*\n* HQChart Ver: '+HQCHART_VERSION+' \n* \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n*************************************************************************************************************\n';console.log(log);}PrintHQChartVersion();//把给外界调用的方法暴露出来
|
|
12916
12924
|
exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
|
|
12917
12925
|
// BaseIndex:BaseIndex,
|
|
12918
12926
|
// ChartLine:ChartLine,
|
package/package.json
CHANGED
package/src/jscommon/umychart.js
CHANGED
|
@@ -3595,7 +3595,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
3595
3595
|
drag.CurrentMove.Y=e.clientY;
|
|
3596
3596
|
}
|
|
3597
3597
|
|
|
3598
|
-
if (this.BorderDrag && this.BorderDrag.Index>=0)
|
|
3598
|
+
if (this.BorderDrag && this.BorderDrag.Index>=0) //边框拖动
|
|
3599
3599
|
{
|
|
3600
3600
|
if(Math.abs(drag.LastMove.Y-e.clientY)<5) return;
|
|
3601
3601
|
|
|
@@ -3606,7 +3606,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
3606
3606
|
drag.LastMove.X=e.clientX;
|
|
3607
3607
|
drag.LastMove.Y=e.clientY;
|
|
3608
3608
|
}
|
|
3609
|
-
else if (this.YDrag && this.YDrag.Index>=0)
|
|
3609
|
+
else if (this.YDrag && this.YDrag.Index>=0) //Y轴缩放
|
|
3610
3610
|
{
|
|
3611
3611
|
if(moveSetpY<5) return;
|
|
3612
3612
|
|
|
@@ -14964,6 +14964,7 @@ function OverlayKLineFrame()
|
|
|
14964
14964
|
{
|
|
14965
14965
|
this.Buttons=[];
|
|
14966
14966
|
if (this.ChartBorder.IsShowTitleOnly) return;
|
|
14967
|
+
|
|
14967
14968
|
this.SplitXYCoordinate();
|
|
14968
14969
|
|
|
14969
14970
|
if (this.IsShow)
|
|
@@ -15094,6 +15095,31 @@ function OverlayKLineFrame()
|
|
|
15094
15095
|
return { TextWidth:width };
|
|
15095
15096
|
}
|
|
15096
15097
|
|
|
15098
|
+
//同步主图坐标
|
|
15099
|
+
this.SyncMainHorizontalInfo=function()
|
|
15100
|
+
{
|
|
15101
|
+
if (!this.MainFrame) return false;
|
|
15102
|
+
|
|
15103
|
+
if (this.MainFrame.YMaxMin)
|
|
15104
|
+
{
|
|
15105
|
+
this.YMaxMin.Max=this.MainFrame.YMaxMin.Max;
|
|
15106
|
+
this.YMaxMin.Min=this.MainFrame.YMaxMin.Min;
|
|
15107
|
+
}
|
|
15108
|
+
|
|
15109
|
+
this.HorizontalMax=this.MainFrame.HorizontalMax;
|
|
15110
|
+
this.HorizontalMin=this.MainFrame.HorizontalMin;
|
|
15111
|
+
this.HorizontalInfo=[];
|
|
15112
|
+
for(var i=0;i<this.MainFrame.HorizontalInfo.length; ++i)
|
|
15113
|
+
{
|
|
15114
|
+
var item=this.MainFrame.HorizontalInfo[i];
|
|
15115
|
+
this.HorizontalInfo.push(item);
|
|
15116
|
+
}
|
|
15117
|
+
|
|
15118
|
+
this.CoordinateType=this.MainFrame.CoordinateType;
|
|
15119
|
+
|
|
15120
|
+
return true;
|
|
15121
|
+
}
|
|
15122
|
+
|
|
15097
15123
|
//分割x,y轴坐标信息
|
|
15098
15124
|
this.SplitXYCoordinate=function()
|
|
15099
15125
|
{
|
|
@@ -15101,16 +15127,7 @@ function OverlayKLineFrame()
|
|
|
15101
15127
|
|
|
15102
15128
|
if (this.IsShareY) //和主图指标共享Y轴坐标
|
|
15103
15129
|
{
|
|
15104
|
-
this.
|
|
15105
|
-
this.HorizontalMin=this.MainFrame.HorizontalMin;
|
|
15106
|
-
this.HorizontalInfo=[];
|
|
15107
|
-
for(var i in this.MainFrame.HorizontalInfo)
|
|
15108
|
-
{
|
|
15109
|
-
var item=this.MainFrame.HorizontalInfo[i];
|
|
15110
|
-
this.HorizontalInfo.push(item);
|
|
15111
|
-
}
|
|
15112
|
-
|
|
15113
|
-
this.CoordinateType=this.MainFrame.CoordinateType;
|
|
15130
|
+
this.SyncMainHorizontalInfo();
|
|
15114
15131
|
}
|
|
15115
15132
|
else //独立Y轴坐标
|
|
15116
15133
|
{
|
|
@@ -16388,10 +16405,12 @@ function OverlayIndexItem()
|
|
|
16388
16405
|
}
|
|
16389
16406
|
else
|
|
16390
16407
|
{
|
|
16391
|
-
for(var i
|
|
16408
|
+
for(var i=0;i<this.ChartPaint.length;++i)
|
|
16392
16409
|
{
|
|
16393
16410
|
var paint=this.ChartPaint[i];
|
|
16411
|
+
if (paint.IsShow==false) continue; //隐藏的图形不计算
|
|
16394
16412
|
var range=paint.GetMaxMin();
|
|
16413
|
+
if (range==null || range.Max==null || range.Min==null) continue;
|
|
16395
16414
|
|
|
16396
16415
|
if (IFrameSplitOperator.IsNumber(range.Max))
|
|
16397
16416
|
{
|
|
@@ -16405,10 +16424,29 @@ function OverlayIndexItem()
|
|
|
16405
16424
|
}
|
|
16406
16425
|
}
|
|
16407
16426
|
|
|
16408
|
-
if (
|
|
16427
|
+
if (!IFrameSplitOperator.IsNumber(this.Frame.YMaxMin.Max) || this.Frame.YMaxMin.Max!=value.Max)
|
|
16428
|
+
{
|
|
16429
|
+
this.Frame.YMaxMin.Max=value.Max;
|
|
16430
|
+
this.Frame.XYSplit=true;
|
|
16431
|
+
}
|
|
16432
|
+
|
|
16433
|
+
if (!IFrameSplitOperator.IsNumber(this.Frame.YMaxMin.Min) || this.Frame.YMaxMin.Min!=value.Min)
|
|
16434
|
+
{
|
|
16435
|
+
this.Frame.YMaxMin.Min=value.Min;
|
|
16436
|
+
this.Frame.XYSplit=true;
|
|
16437
|
+
}
|
|
16438
|
+
|
|
16439
|
+
if (this.Frame.XYSplit)
|
|
16440
|
+
{
|
|
16441
|
+
var max=10, min=0;
|
|
16442
|
+
if (value.Max!=null) max=value.Max;
|
|
16443
|
+
if (value.Min!=null) min=value.Min;
|
|
16444
|
+
|
|
16445
|
+
this.Frame.HorizontalMax=max;
|
|
16446
|
+
this.Frame.HorizontalMin=min;
|
|
16447
|
+
}
|
|
16448
|
+
else
|
|
16409
16449
|
{
|
|
16410
|
-
this.Frame.HorizontalMax=value.Max;
|
|
16411
|
-
this.Frame.HorizontalMin=value.Min;
|
|
16412
16450
|
this.Frame.XYSplit=true;
|
|
16413
16451
|
}
|
|
16414
16452
|
}
|
|
@@ -16575,7 +16613,7 @@ function HQTradeFrame()
|
|
|
16575
16613
|
splitOper.EnableZoomUpDown=true;
|
|
16576
16614
|
frame.XYSplit=true;
|
|
16577
16615
|
|
|
16578
|
-
for(var i
|
|
16616
|
+
for(var i=0;i<subFrame.OverlayIndex.length;++i)
|
|
16579
16617
|
{
|
|
16580
16618
|
var item=subFrame.OverlayIndex[i];
|
|
16581
16619
|
if (item.Frame.IsShareY) item.Frame.XYSplit=true;
|
|
@@ -16939,14 +16977,25 @@ function HQTradeFrame()
|
|
|
16939
16977
|
var overlayItem=item.OverlayIndex[j];
|
|
16940
16978
|
if (!overlayItem.Frame) continue;
|
|
16941
16979
|
|
|
16942
|
-
|
|
16943
|
-
|
|
16980
|
+
if (overlayItem.Frame.IsShareY)
|
|
16981
|
+
{
|
|
16982
|
+
if (overlayItem.Frame.SyncMainHorizontalInfo)
|
|
16983
|
+
overlayItem.Frame.SyncMainHorizontalInfo();
|
|
16944
16984
|
|
|
16945
|
-
|
|
16946
|
-
|
|
16947
|
-
|
|
16948
|
-
|
|
16949
|
-
|
|
16985
|
+
var value=overlayItem.Frame.GetScaleTextWidth();
|
|
16986
|
+
}
|
|
16987
|
+
else
|
|
16988
|
+
{
|
|
16989
|
+
var maxValue=overlayItem.Frame.HorizontalMax; //最大最小要还原
|
|
16990
|
+
var minValue=overlayItem.Frame.HorizontalMin;
|
|
16991
|
+
|
|
16992
|
+
overlayItem.Frame.YSplitOperator.Operator();
|
|
16993
|
+
var value=overlayItem.Frame.GetScaleTextWidth();
|
|
16994
|
+
|
|
16995
|
+
//数据原始范围存储在YMaxMin, 不需要还原HorizontalMax,HorizontalMin
|
|
16996
|
+
//overlayItem.Frame.HorizontalMax=maxValue;
|
|
16997
|
+
//overlayItem.Frame.HorizontalMin=minValue;
|
|
16998
|
+
}
|
|
16950
16999
|
|
|
16951
17000
|
overlayItem.RightWidth={ Index:-1, Width:0 };
|
|
16952
17001
|
if (!value || !value.TextWidth) continue;
|
|
@@ -67265,7 +67314,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
67265
67314
|
this.Draw();
|
|
67266
67315
|
}
|
|
67267
67316
|
|
|
67268
|
-
this.
|
|
67317
|
+
this.RequestHistoryMinuteData=function()
|
|
67269
67318
|
{
|
|
67270
67319
|
var self=this;
|
|
67271
67320
|
this.ChartSplashPaint.SetTitle(this.LoadDataSplashTitle);
|
|
@@ -67343,6 +67392,8 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
67343
67392
|
});
|
|
67344
67393
|
}
|
|
67345
67394
|
|
|
67395
|
+
//支持老版本
|
|
67396
|
+
this.ReqeustHistoryMinuteData=this.RequestHistoryMinuteData;
|
|
67346
67397
|
|
|
67347
67398
|
this.RecvMinuteHistoryData=function(data)
|
|
67348
67399
|
{
|
|
@@ -68515,7 +68566,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
68515
68566
|
this.ResetOverlaySymbolStatus();
|
|
68516
68567
|
this.ClearIndexRunCount();
|
|
68517
68568
|
this.Frame.ClearYCoordinateMaxMin();
|
|
68518
|
-
this.
|
|
68569
|
+
this.RequestHistoryMinuteData(); //请求分钟数据
|
|
68519
68570
|
}
|
|
68520
68571
|
else if (ChartData.IsTickPeriod(this.Period))
|
|
68521
68572
|
{
|
|
@@ -68565,7 +68616,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
68565
68616
|
this.ClearIndexPaint();
|
|
68566
68617
|
this.ResetOverlaySymbolStatus();
|
|
68567
68618
|
this.ResetScrollBar();
|
|
68568
|
-
this.
|
|
68619
|
+
this.RequestHistoryMinuteData(); //请求分钟数据
|
|
68569
68620
|
}
|
|
68570
68621
|
}
|
|
68571
68622
|
}
|
|
@@ -69056,7 +69107,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
69056
69107
|
else if (ChartData.IsMinutePeriod(this.Period,true) || ChartData.IsSecondPeriod(this.Period) || ChartData.IsMilliSecondPeriod(this.Period))
|
|
69057
69108
|
{
|
|
69058
69109
|
this.ResetOverlaySymbolStatus();
|
|
69059
|
-
this.
|
|
69110
|
+
this.RequestHistoryMinuteData(); //请求分钟数据
|
|
69060
69111
|
}
|
|
69061
69112
|
|
|
69062
69113
|
return;
|
|
@@ -69906,7 +69957,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
69906
69957
|
else if (ChartData.IsMinutePeriod(this.Period,true) || ChartData.IsSecondPeriod(this.Period) || ChartData.IsMilliSecondPeriod(this.Period))
|
|
69907
69958
|
{
|
|
69908
69959
|
this.ClearStockCache();
|
|
69909
|
-
this.
|
|
69960
|
+
this.RequestHistoryMinuteData(); //请求分钟数据
|
|
69910
69961
|
}
|
|
69911
69962
|
else if (ChartData.IsTickPeriod(this.Period))
|
|
69912
69963
|
{
|
|
@@ -7739,7 +7739,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
7739
7739
|
drag.CurrentMove.Y=e.clientY;
|
|
7740
7740
|
}
|
|
7741
7741
|
|
|
7742
|
-
if (this.BorderDrag && this.BorderDrag.Index>=0)
|
|
7742
|
+
if (this.BorderDrag && this.BorderDrag.Index>=0) //边框拖动
|
|
7743
7743
|
{
|
|
7744
7744
|
if(Math.abs(drag.LastMove.Y-e.clientY)<5) return;
|
|
7745
7745
|
|
|
@@ -7750,7 +7750,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
7750
7750
|
drag.LastMove.X=e.clientX;
|
|
7751
7751
|
drag.LastMove.Y=e.clientY;
|
|
7752
7752
|
}
|
|
7753
|
-
else if (this.YDrag && this.YDrag.Index>=0)
|
|
7753
|
+
else if (this.YDrag && this.YDrag.Index>=0) //Y轴缩放
|
|
7754
7754
|
{
|
|
7755
7755
|
if(moveSetpY<5) return;
|
|
7756
7756
|
|
|
@@ -19108,6 +19108,7 @@ function OverlayKLineFrame()
|
|
|
19108
19108
|
{
|
|
19109
19109
|
this.Buttons=[];
|
|
19110
19110
|
if (this.ChartBorder.IsShowTitleOnly) return;
|
|
19111
|
+
|
|
19111
19112
|
this.SplitXYCoordinate();
|
|
19112
19113
|
|
|
19113
19114
|
if (this.IsShow)
|
|
@@ -19238,6 +19239,31 @@ function OverlayKLineFrame()
|
|
|
19238
19239
|
return { TextWidth:width };
|
|
19239
19240
|
}
|
|
19240
19241
|
|
|
19242
|
+
//同步主图坐标
|
|
19243
|
+
this.SyncMainHorizontalInfo=function()
|
|
19244
|
+
{
|
|
19245
|
+
if (!this.MainFrame) return false;
|
|
19246
|
+
|
|
19247
|
+
if (this.MainFrame.YMaxMin)
|
|
19248
|
+
{
|
|
19249
|
+
this.YMaxMin.Max=this.MainFrame.YMaxMin.Max;
|
|
19250
|
+
this.YMaxMin.Min=this.MainFrame.YMaxMin.Min;
|
|
19251
|
+
}
|
|
19252
|
+
|
|
19253
|
+
this.HorizontalMax=this.MainFrame.HorizontalMax;
|
|
19254
|
+
this.HorizontalMin=this.MainFrame.HorizontalMin;
|
|
19255
|
+
this.HorizontalInfo=[];
|
|
19256
|
+
for(var i=0;i<this.MainFrame.HorizontalInfo.length; ++i)
|
|
19257
|
+
{
|
|
19258
|
+
var item=this.MainFrame.HorizontalInfo[i];
|
|
19259
|
+
this.HorizontalInfo.push(item);
|
|
19260
|
+
}
|
|
19261
|
+
|
|
19262
|
+
this.CoordinateType=this.MainFrame.CoordinateType;
|
|
19263
|
+
|
|
19264
|
+
return true;
|
|
19265
|
+
}
|
|
19266
|
+
|
|
19241
19267
|
//分割x,y轴坐标信息
|
|
19242
19268
|
this.SplitXYCoordinate=function()
|
|
19243
19269
|
{
|
|
@@ -19245,16 +19271,7 @@ function OverlayKLineFrame()
|
|
|
19245
19271
|
|
|
19246
19272
|
if (this.IsShareY) //和主图指标共享Y轴坐标
|
|
19247
19273
|
{
|
|
19248
|
-
this.
|
|
19249
|
-
this.HorizontalMin=this.MainFrame.HorizontalMin;
|
|
19250
|
-
this.HorizontalInfo=[];
|
|
19251
|
-
for(var i in this.MainFrame.HorizontalInfo)
|
|
19252
|
-
{
|
|
19253
|
-
var item=this.MainFrame.HorizontalInfo[i];
|
|
19254
|
-
this.HorizontalInfo.push(item);
|
|
19255
|
-
}
|
|
19256
|
-
|
|
19257
|
-
this.CoordinateType=this.MainFrame.CoordinateType;
|
|
19274
|
+
this.SyncMainHorizontalInfo();
|
|
19258
19275
|
}
|
|
19259
19276
|
else //独立Y轴坐标
|
|
19260
19277
|
{
|
|
@@ -20532,10 +20549,12 @@ function OverlayIndexItem()
|
|
|
20532
20549
|
}
|
|
20533
20550
|
else
|
|
20534
20551
|
{
|
|
20535
|
-
for(var i
|
|
20552
|
+
for(var i=0;i<this.ChartPaint.length;++i)
|
|
20536
20553
|
{
|
|
20537
20554
|
var paint=this.ChartPaint[i];
|
|
20555
|
+
if (paint.IsShow==false) continue; //隐藏的图形不计算
|
|
20538
20556
|
var range=paint.GetMaxMin();
|
|
20557
|
+
if (range==null || range.Max==null || range.Min==null) continue;
|
|
20539
20558
|
|
|
20540
20559
|
if (IFrameSplitOperator.IsNumber(range.Max))
|
|
20541
20560
|
{
|
|
@@ -20549,10 +20568,29 @@ function OverlayIndexItem()
|
|
|
20549
20568
|
}
|
|
20550
20569
|
}
|
|
20551
20570
|
|
|
20552
|
-
if (
|
|
20571
|
+
if (!IFrameSplitOperator.IsNumber(this.Frame.YMaxMin.Max) || this.Frame.YMaxMin.Max!=value.Max)
|
|
20572
|
+
{
|
|
20573
|
+
this.Frame.YMaxMin.Max=value.Max;
|
|
20574
|
+
this.Frame.XYSplit=true;
|
|
20575
|
+
}
|
|
20576
|
+
|
|
20577
|
+
if (!IFrameSplitOperator.IsNumber(this.Frame.YMaxMin.Min) || this.Frame.YMaxMin.Min!=value.Min)
|
|
20578
|
+
{
|
|
20579
|
+
this.Frame.YMaxMin.Min=value.Min;
|
|
20580
|
+
this.Frame.XYSplit=true;
|
|
20581
|
+
}
|
|
20582
|
+
|
|
20583
|
+
if (this.Frame.XYSplit)
|
|
20584
|
+
{
|
|
20585
|
+
var max=10, min=0;
|
|
20586
|
+
if (value.Max!=null) max=value.Max;
|
|
20587
|
+
if (value.Min!=null) min=value.Min;
|
|
20588
|
+
|
|
20589
|
+
this.Frame.HorizontalMax=max;
|
|
20590
|
+
this.Frame.HorizontalMin=min;
|
|
20591
|
+
}
|
|
20592
|
+
else
|
|
20553
20593
|
{
|
|
20554
|
-
this.Frame.HorizontalMax=value.Max;
|
|
20555
|
-
this.Frame.HorizontalMin=value.Min;
|
|
20556
20594
|
this.Frame.XYSplit=true;
|
|
20557
20595
|
}
|
|
20558
20596
|
}
|
|
@@ -20719,7 +20757,7 @@ function HQTradeFrame()
|
|
|
20719
20757
|
splitOper.EnableZoomUpDown=true;
|
|
20720
20758
|
frame.XYSplit=true;
|
|
20721
20759
|
|
|
20722
|
-
for(var i
|
|
20760
|
+
for(var i=0;i<subFrame.OverlayIndex.length;++i)
|
|
20723
20761
|
{
|
|
20724
20762
|
var item=subFrame.OverlayIndex[i];
|
|
20725
20763
|
if (item.Frame.IsShareY) item.Frame.XYSplit=true;
|
|
@@ -21083,14 +21121,25 @@ function HQTradeFrame()
|
|
|
21083
21121
|
var overlayItem=item.OverlayIndex[j];
|
|
21084
21122
|
if (!overlayItem.Frame) continue;
|
|
21085
21123
|
|
|
21086
|
-
|
|
21087
|
-
|
|
21124
|
+
if (overlayItem.Frame.IsShareY)
|
|
21125
|
+
{
|
|
21126
|
+
if (overlayItem.Frame.SyncMainHorizontalInfo)
|
|
21127
|
+
overlayItem.Frame.SyncMainHorizontalInfo();
|
|
21088
21128
|
|
|
21089
|
-
|
|
21090
|
-
|
|
21091
|
-
|
|
21092
|
-
|
|
21093
|
-
|
|
21129
|
+
var value=overlayItem.Frame.GetScaleTextWidth();
|
|
21130
|
+
}
|
|
21131
|
+
else
|
|
21132
|
+
{
|
|
21133
|
+
var maxValue=overlayItem.Frame.HorizontalMax; //最大最小要还原
|
|
21134
|
+
var minValue=overlayItem.Frame.HorizontalMin;
|
|
21135
|
+
|
|
21136
|
+
overlayItem.Frame.YSplitOperator.Operator();
|
|
21137
|
+
var value=overlayItem.Frame.GetScaleTextWidth();
|
|
21138
|
+
|
|
21139
|
+
//数据原始范围存储在YMaxMin, 不需要还原HorizontalMax,HorizontalMin
|
|
21140
|
+
//overlayItem.Frame.HorizontalMax=maxValue;
|
|
21141
|
+
//overlayItem.Frame.HorizontalMin=minValue;
|
|
21142
|
+
}
|
|
21094
21143
|
|
|
21095
21144
|
overlayItem.RightWidth={ Index:-1, Width:0 };
|
|
21096
21145
|
if (!value || !value.TextWidth) continue;
|
|
@@ -71409,7 +71458,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
71409
71458
|
this.Draw();
|
|
71410
71459
|
}
|
|
71411
71460
|
|
|
71412
|
-
this.
|
|
71461
|
+
this.RequestHistoryMinuteData=function()
|
|
71413
71462
|
{
|
|
71414
71463
|
var self=this;
|
|
71415
71464
|
this.ChartSplashPaint.SetTitle(this.LoadDataSplashTitle);
|
|
@@ -71487,6 +71536,8 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
71487
71536
|
});
|
|
71488
71537
|
}
|
|
71489
71538
|
|
|
71539
|
+
//支持老版本
|
|
71540
|
+
this.ReqeustHistoryMinuteData=this.RequestHistoryMinuteData;
|
|
71490
71541
|
|
|
71491
71542
|
this.RecvMinuteHistoryData=function(data)
|
|
71492
71543
|
{
|
|
@@ -72659,7 +72710,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
72659
72710
|
this.ResetOverlaySymbolStatus();
|
|
72660
72711
|
this.ClearIndexRunCount();
|
|
72661
72712
|
this.Frame.ClearYCoordinateMaxMin();
|
|
72662
|
-
this.
|
|
72713
|
+
this.RequestHistoryMinuteData(); //请求分钟数据
|
|
72663
72714
|
}
|
|
72664
72715
|
else if (ChartData.IsTickPeriod(this.Period))
|
|
72665
72716
|
{
|
|
@@ -72709,7 +72760,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
72709
72760
|
this.ClearIndexPaint();
|
|
72710
72761
|
this.ResetOverlaySymbolStatus();
|
|
72711
72762
|
this.ResetScrollBar();
|
|
72712
|
-
this.
|
|
72763
|
+
this.RequestHistoryMinuteData(); //请求分钟数据
|
|
72713
72764
|
}
|
|
72714
72765
|
}
|
|
72715
72766
|
}
|
|
@@ -73200,7 +73251,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
73200
73251
|
else if (ChartData.IsMinutePeriod(this.Period,true) || ChartData.IsSecondPeriod(this.Period) || ChartData.IsMilliSecondPeriod(this.Period))
|
|
73201
73252
|
{
|
|
73202
73253
|
this.ResetOverlaySymbolStatus();
|
|
73203
|
-
this.
|
|
73254
|
+
this.RequestHistoryMinuteData(); //请求分钟数据
|
|
73204
73255
|
}
|
|
73205
73256
|
|
|
73206
73257
|
return;
|
|
@@ -74050,7 +74101,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
74050
74101
|
else if (ChartData.IsMinutePeriod(this.Period,true) || ChartData.IsSecondPeriod(this.Period) || ChartData.IsMilliSecondPeriod(this.Period))
|
|
74051
74102
|
{
|
|
74052
74103
|
this.ClearStockCache();
|
|
74053
|
-
this.
|
|
74104
|
+
this.RequestHistoryMinuteData(); //请求分钟数据
|
|
74054
74105
|
}
|
|
74055
74106
|
else if (ChartData.IsTickPeriod(this.Period))
|
|
74056
74107
|
{
|
|
@@ -131226,7 +131277,7 @@ function ScrollBarBGChart()
|
|
|
131226
131277
|
|
|
131227
131278
|
|
|
131228
131279
|
|
|
131229
|
-
var HQCHART_VERSION="1.1.
|
|
131280
|
+
var HQCHART_VERSION="1.1.12770";
|
|
131230
131281
|
|
|
131231
131282
|
function PrintHQChartVersion()
|
|
131232
131283
|
{
|
|
@@ -7783,7 +7783,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
7783
7783
|
drag.CurrentMove.Y=e.clientY;
|
|
7784
7784
|
}
|
|
7785
7785
|
|
|
7786
|
-
if (this.BorderDrag && this.BorderDrag.Index>=0)
|
|
7786
|
+
if (this.BorderDrag && this.BorderDrag.Index>=0) //边框拖动
|
|
7787
7787
|
{
|
|
7788
7788
|
if(Math.abs(drag.LastMove.Y-e.clientY)<5) return;
|
|
7789
7789
|
|
|
@@ -7794,7 +7794,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
7794
7794
|
drag.LastMove.X=e.clientX;
|
|
7795
7795
|
drag.LastMove.Y=e.clientY;
|
|
7796
7796
|
}
|
|
7797
|
-
else if (this.YDrag && this.YDrag.Index>=0)
|
|
7797
|
+
else if (this.YDrag && this.YDrag.Index>=0) //Y轴缩放
|
|
7798
7798
|
{
|
|
7799
7799
|
if(moveSetpY<5) return;
|
|
7800
7800
|
|
|
@@ -19152,6 +19152,7 @@ function OverlayKLineFrame()
|
|
|
19152
19152
|
{
|
|
19153
19153
|
this.Buttons=[];
|
|
19154
19154
|
if (this.ChartBorder.IsShowTitleOnly) return;
|
|
19155
|
+
|
|
19155
19156
|
this.SplitXYCoordinate();
|
|
19156
19157
|
|
|
19157
19158
|
if (this.IsShow)
|
|
@@ -19282,6 +19283,31 @@ function OverlayKLineFrame()
|
|
|
19282
19283
|
return { TextWidth:width };
|
|
19283
19284
|
}
|
|
19284
19285
|
|
|
19286
|
+
//同步主图坐标
|
|
19287
|
+
this.SyncMainHorizontalInfo=function()
|
|
19288
|
+
{
|
|
19289
|
+
if (!this.MainFrame) return false;
|
|
19290
|
+
|
|
19291
|
+
if (this.MainFrame.YMaxMin)
|
|
19292
|
+
{
|
|
19293
|
+
this.YMaxMin.Max=this.MainFrame.YMaxMin.Max;
|
|
19294
|
+
this.YMaxMin.Min=this.MainFrame.YMaxMin.Min;
|
|
19295
|
+
}
|
|
19296
|
+
|
|
19297
|
+
this.HorizontalMax=this.MainFrame.HorizontalMax;
|
|
19298
|
+
this.HorizontalMin=this.MainFrame.HorizontalMin;
|
|
19299
|
+
this.HorizontalInfo=[];
|
|
19300
|
+
for(var i=0;i<this.MainFrame.HorizontalInfo.length; ++i)
|
|
19301
|
+
{
|
|
19302
|
+
var item=this.MainFrame.HorizontalInfo[i];
|
|
19303
|
+
this.HorizontalInfo.push(item);
|
|
19304
|
+
}
|
|
19305
|
+
|
|
19306
|
+
this.CoordinateType=this.MainFrame.CoordinateType;
|
|
19307
|
+
|
|
19308
|
+
return true;
|
|
19309
|
+
}
|
|
19310
|
+
|
|
19285
19311
|
//分割x,y轴坐标信息
|
|
19286
19312
|
this.SplitXYCoordinate=function()
|
|
19287
19313
|
{
|
|
@@ -19289,16 +19315,7 @@ function OverlayKLineFrame()
|
|
|
19289
19315
|
|
|
19290
19316
|
if (this.IsShareY) //和主图指标共享Y轴坐标
|
|
19291
19317
|
{
|
|
19292
|
-
this.
|
|
19293
|
-
this.HorizontalMin=this.MainFrame.HorizontalMin;
|
|
19294
|
-
this.HorizontalInfo=[];
|
|
19295
|
-
for(var i in this.MainFrame.HorizontalInfo)
|
|
19296
|
-
{
|
|
19297
|
-
var item=this.MainFrame.HorizontalInfo[i];
|
|
19298
|
-
this.HorizontalInfo.push(item);
|
|
19299
|
-
}
|
|
19300
|
-
|
|
19301
|
-
this.CoordinateType=this.MainFrame.CoordinateType;
|
|
19318
|
+
this.SyncMainHorizontalInfo();
|
|
19302
19319
|
}
|
|
19303
19320
|
else //独立Y轴坐标
|
|
19304
19321
|
{
|
|
@@ -20576,10 +20593,12 @@ function OverlayIndexItem()
|
|
|
20576
20593
|
}
|
|
20577
20594
|
else
|
|
20578
20595
|
{
|
|
20579
|
-
for(var i
|
|
20596
|
+
for(var i=0;i<this.ChartPaint.length;++i)
|
|
20580
20597
|
{
|
|
20581
20598
|
var paint=this.ChartPaint[i];
|
|
20599
|
+
if (paint.IsShow==false) continue; //隐藏的图形不计算
|
|
20582
20600
|
var range=paint.GetMaxMin();
|
|
20601
|
+
if (range==null || range.Max==null || range.Min==null) continue;
|
|
20583
20602
|
|
|
20584
20603
|
if (IFrameSplitOperator.IsNumber(range.Max))
|
|
20585
20604
|
{
|
|
@@ -20593,10 +20612,29 @@ function OverlayIndexItem()
|
|
|
20593
20612
|
}
|
|
20594
20613
|
}
|
|
20595
20614
|
|
|
20596
|
-
if (
|
|
20615
|
+
if (!IFrameSplitOperator.IsNumber(this.Frame.YMaxMin.Max) || this.Frame.YMaxMin.Max!=value.Max)
|
|
20616
|
+
{
|
|
20617
|
+
this.Frame.YMaxMin.Max=value.Max;
|
|
20618
|
+
this.Frame.XYSplit=true;
|
|
20619
|
+
}
|
|
20620
|
+
|
|
20621
|
+
if (!IFrameSplitOperator.IsNumber(this.Frame.YMaxMin.Min) || this.Frame.YMaxMin.Min!=value.Min)
|
|
20622
|
+
{
|
|
20623
|
+
this.Frame.YMaxMin.Min=value.Min;
|
|
20624
|
+
this.Frame.XYSplit=true;
|
|
20625
|
+
}
|
|
20626
|
+
|
|
20627
|
+
if (this.Frame.XYSplit)
|
|
20628
|
+
{
|
|
20629
|
+
var max=10, min=0;
|
|
20630
|
+
if (value.Max!=null) max=value.Max;
|
|
20631
|
+
if (value.Min!=null) min=value.Min;
|
|
20632
|
+
|
|
20633
|
+
this.Frame.HorizontalMax=max;
|
|
20634
|
+
this.Frame.HorizontalMin=min;
|
|
20635
|
+
}
|
|
20636
|
+
else
|
|
20597
20637
|
{
|
|
20598
|
-
this.Frame.HorizontalMax=value.Max;
|
|
20599
|
-
this.Frame.HorizontalMin=value.Min;
|
|
20600
20638
|
this.Frame.XYSplit=true;
|
|
20601
20639
|
}
|
|
20602
20640
|
}
|
|
@@ -20763,7 +20801,7 @@ function HQTradeFrame()
|
|
|
20763
20801
|
splitOper.EnableZoomUpDown=true;
|
|
20764
20802
|
frame.XYSplit=true;
|
|
20765
20803
|
|
|
20766
|
-
for(var i
|
|
20804
|
+
for(var i=0;i<subFrame.OverlayIndex.length;++i)
|
|
20767
20805
|
{
|
|
20768
20806
|
var item=subFrame.OverlayIndex[i];
|
|
20769
20807
|
if (item.Frame.IsShareY) item.Frame.XYSplit=true;
|
|
@@ -21127,14 +21165,25 @@ function HQTradeFrame()
|
|
|
21127
21165
|
var overlayItem=item.OverlayIndex[j];
|
|
21128
21166
|
if (!overlayItem.Frame) continue;
|
|
21129
21167
|
|
|
21130
|
-
|
|
21131
|
-
|
|
21168
|
+
if (overlayItem.Frame.IsShareY)
|
|
21169
|
+
{
|
|
21170
|
+
if (overlayItem.Frame.SyncMainHorizontalInfo)
|
|
21171
|
+
overlayItem.Frame.SyncMainHorizontalInfo();
|
|
21132
21172
|
|
|
21133
|
-
|
|
21134
|
-
|
|
21135
|
-
|
|
21136
|
-
|
|
21137
|
-
|
|
21173
|
+
var value=overlayItem.Frame.GetScaleTextWidth();
|
|
21174
|
+
}
|
|
21175
|
+
else
|
|
21176
|
+
{
|
|
21177
|
+
var maxValue=overlayItem.Frame.HorizontalMax; //最大最小要还原
|
|
21178
|
+
var minValue=overlayItem.Frame.HorizontalMin;
|
|
21179
|
+
|
|
21180
|
+
overlayItem.Frame.YSplitOperator.Operator();
|
|
21181
|
+
var value=overlayItem.Frame.GetScaleTextWidth();
|
|
21182
|
+
|
|
21183
|
+
//数据原始范围存储在YMaxMin, 不需要还原HorizontalMax,HorizontalMin
|
|
21184
|
+
//overlayItem.Frame.HorizontalMax=maxValue;
|
|
21185
|
+
//overlayItem.Frame.HorizontalMin=minValue;
|
|
21186
|
+
}
|
|
21138
21187
|
|
|
21139
21188
|
overlayItem.RightWidth={ Index:-1, Width:0 };
|
|
21140
21189
|
if (!value || !value.TextWidth) continue;
|
|
@@ -71453,7 +71502,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
71453
71502
|
this.Draw();
|
|
71454
71503
|
}
|
|
71455
71504
|
|
|
71456
|
-
this.
|
|
71505
|
+
this.RequestHistoryMinuteData=function()
|
|
71457
71506
|
{
|
|
71458
71507
|
var self=this;
|
|
71459
71508
|
this.ChartSplashPaint.SetTitle(this.LoadDataSplashTitle);
|
|
@@ -71531,6 +71580,8 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
71531
71580
|
});
|
|
71532
71581
|
}
|
|
71533
71582
|
|
|
71583
|
+
//支持老版本
|
|
71584
|
+
this.ReqeustHistoryMinuteData=this.RequestHistoryMinuteData;
|
|
71534
71585
|
|
|
71535
71586
|
this.RecvMinuteHistoryData=function(data)
|
|
71536
71587
|
{
|
|
@@ -72703,7 +72754,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
72703
72754
|
this.ResetOverlaySymbolStatus();
|
|
72704
72755
|
this.ClearIndexRunCount();
|
|
72705
72756
|
this.Frame.ClearYCoordinateMaxMin();
|
|
72706
|
-
this.
|
|
72757
|
+
this.RequestHistoryMinuteData(); //请求分钟数据
|
|
72707
72758
|
}
|
|
72708
72759
|
else if (ChartData.IsTickPeriod(this.Period))
|
|
72709
72760
|
{
|
|
@@ -72753,7 +72804,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
72753
72804
|
this.ClearIndexPaint();
|
|
72754
72805
|
this.ResetOverlaySymbolStatus();
|
|
72755
72806
|
this.ResetScrollBar();
|
|
72756
|
-
this.
|
|
72807
|
+
this.RequestHistoryMinuteData(); //请求分钟数据
|
|
72757
72808
|
}
|
|
72758
72809
|
}
|
|
72759
72810
|
}
|
|
@@ -73244,7 +73295,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
73244
73295
|
else if (ChartData.IsMinutePeriod(this.Period,true) || ChartData.IsSecondPeriod(this.Period) || ChartData.IsMilliSecondPeriod(this.Period))
|
|
73245
73296
|
{
|
|
73246
73297
|
this.ResetOverlaySymbolStatus();
|
|
73247
|
-
this.
|
|
73298
|
+
this.RequestHistoryMinuteData(); //请求分钟数据
|
|
73248
73299
|
}
|
|
73249
73300
|
|
|
73250
73301
|
return;
|
|
@@ -74094,7 +74145,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
74094
74145
|
else if (ChartData.IsMinutePeriod(this.Period,true) || ChartData.IsSecondPeriod(this.Period) || ChartData.IsMilliSecondPeriod(this.Period))
|
|
74095
74146
|
{
|
|
74096
74147
|
this.ClearStockCache();
|
|
74097
|
-
this.
|
|
74148
|
+
this.RequestHistoryMinuteData(); //请求分钟数据
|
|
74098
74149
|
}
|
|
74099
74150
|
else if (ChartData.IsTickPeriod(this.Period))
|
|
74100
74151
|
{
|
|
@@ -131384,7 +131435,7 @@ function HQChartScriptWorker()
|
|
|
131384
131435
|
|
|
131385
131436
|
|
|
131386
131437
|
|
|
131387
|
-
var HQCHART_VERSION="1.1.
|
|
131438
|
+
var HQCHART_VERSION="1.1.12770";
|
|
131388
131439
|
|
|
131389
131440
|
function PrintHQChartVersion()
|
|
131390
131441
|
{
|