hqchart 1.1.13276 → 1.1.13280
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
|
@@ -2001,7 +2001,10 @@ this.OnClickRightMenu=function(data){JSConsole.Chart.Log('[JSChartContainer::OnC
|
|
|
2001
2001
|
var aryArgs=data.Data.Args;//参数
|
|
2002
2002
|
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_MENU_COMMAND);//回调通知外部
|
|
2003
2003
|
if(event&&event.Callback){var data={PreventDefault:false,CommandID:cmdID,Args:aryArgs,SrcData:data};event.Callback(event,data,this);if(data.PreventDefault)return;}this.ExecuteMenuCommand(cmdID,aryArgs);};this.PopupRightMenuV2=function(data,e){var _this15=this;if(!this.JSPopMenu)return;var x=data.X,y=data.Y;var frameID=data.FrameID;var menuData={Menu:this.GetRightMenuData(frameID),Position:JSPopMenu.POSITION_ID.RIGHT_MENU_ID};menuData.ClickCallback=function(data){_this15.OnClickRightMenu(data);};var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CREATE_RIGHT_MENU);if(event&&event.Callback){var sendData={MenuData:menuData,FrameID:frameID};event.Callback(event,sendData,this);}this.PopupMenuByRClick(menuData,x,y);};//指标窗口扩展图形
|
|
2004
|
-
this.CreateChartPaintExtend=function(chart,windowIndex){if(windowIndex<0)return false;var subFrame=this.Frame.SubFrame[windowIndex];if(!subFrame||!subFrame.Frame)return false;var frame=subFrame.Frame;chart.Canvas=this.Canvas;chart.ChartBorder=frame.ChartBorder;chart.ChartFrame=frame;this.ChartPaintEx.push(chart);return true;}
|
|
2004
|
+
this.CreateChartPaintExtend=function(chart,windowIndex){if(windowIndex<0)return false;var subFrame=this.Frame.SubFrame[windowIndex];if(!subFrame||!subFrame.Frame)return false;var frame=subFrame.Frame;chart.Canvas=this.Canvas;chart.ChartBorder=frame.ChartBorder;chart.ChartFrame=frame;this.ChartPaintEx.push(chart);return true;};//删除指标窗口扩展图形 option={ ChartID:图形ID, WindowIndex:窗口 }
|
|
2005
|
+
this.DeleteChartPaintExtend=function(option,bCallDestroy){if(!option)return;if(!IFrameSplitOperator.IsNonEmptyArray(this.ChartPaintEx))return;if(IFrameSplitOperator.IsNumber(option.WindowIndex)){var windowIndex=option.WindowIndex;if(!this.Frame.SubFrame[windowIndex])return;var subFrame=this.Frame.SubFrame[windowIndex].Frame;if(!subFrame)return;var paint=[];//踢出当前窗口的指标画法
|
|
2006
|
+
var deleteCount=0;for(var i=0;i<this.ChartPaintEx.length;++i){var item=this.ChartPaintEx[i];var bFind=item.ChartFrame.Guid==subFrame.Guid||item.ChartFrame==subFrame;if(!bFind){paint.push(item);}else{++deleteCount;if(bCallDestroy===true){if(item&&item.OnDestroy)item.OnDestroy();//图形销毁
|
|
2007
|
+
}}}if(deleteCount>0)this.ChartPaintEx=paint;}};}function GetDevicePixelRatio(){if(typeof window=='undefined')return 1;return window.devicePixelRatio||1;}function GetFontHeight(context,font,word){if(!context)return null;if(font)context.font=font;var text='擎';if(IFrameSplitOperator.IsString(word))text=word;var fontInfo=context.measureText(text);var textHeight=fontInfo.fontBoundingBoxAscent+fontInfo.fontBoundingBoxDescent;if(!IFrameSplitOperator.IsNumber(textHeight))textHeight=fontInfo.width+2*GetDevicePixelRatio();return textHeight;}function IsPhoneWeb(){var userAgentInfo=navigator.userAgent;var Agents=new Array("Android","iPhone","SymbianOS","Windows Phone","iPad","iPod");for(var v=0;v<Agents.length;v++){if(userAgentInfo.indexOf(Agents[v])>0)return true;}return false;}function OnKeyDown(e)//键盘事件
|
|
2005
2008
|
{if(this.JSChartContainer&&this.JSChartContainer.OnKeyDown)this.JSChartContainer.OnKeyDown(e);}function OnWheel(e)//上下滚动事件
|
|
2006
2009
|
{if(this.JSChartContainer&&this.JSChartContainer.OnWheel)this.JSChartContainer.OnWheel(e);}function ToFixed(number,precision){var b=1;if(isNaN(number))return number;if(number<0)b=-1;var multiplier=Math.pow(10,precision);var value=Math.round(Math.abs(number)*multiplier)/multiplier*b;if(/^(\d+(?:\.\d+)?)(e)([\-]?\d+)$/.test(value))var s=value.toFixed2(precision);else var s=value.toString();var rs=s.indexOf('.');if(rs<0&&precision>0){rs=s.length;s+='.';}while(s.length<=rs+precision){s+='0';}return s;}Number.prototype.toFixed2=Number.prototype.toFixed;//备份下老的
|
|
2007
2010
|
Number.prototype.toFixed=function(precision){return ToFixed(this,precision);};function Guid(){function S4(){return((1+Math.random())*0x10000|0).toString(16).substring(1);}return"guid"+(S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4()+S4());}function GetScrollPosition(){var scrollPos={};var scrollTop=0;var scrollLeft=0;if(document.documentElement&&(document.documentElement.scrollTop||document.documentElement.scrollLeft)){scrollTop=document.documentElement.scrollTop;scrollLeft=document.documentElement.scrollLeft;}else if(document.body){scrollTop=document.body.scrollTop;scrollLeft=document.body.scrollLeft;}scrollPos.Top=scrollTop;scrollPos.Left=scrollLeft;return scrollPos;}//修正线段有毛刺
|
|
@@ -2791,7 +2794,7 @@ if(x>=left&&x<=right&&y>bottom&&y<chartHeight)return-3;return-1;};this.PtInChart
|
|
|
2791
2794
|
}}return-1;};this.PtInButtons=function(x,y){for(var i=0;i<this.SubFrame.length;++i){var item=this.SubFrame[i];if(item.Height<=0)continue;var button=item.Frame.PtInButtons(x,y);if(button){button.Frame=item.Frame;button.FrameID=i;return button;}for(var j=0;j<item.OverlayIndex.length;++j){var overlayItem=item.OverlayIndex[j];var overlayFrame=overlayItem.Frame;if(!overlayFrame||!overlayFrame.PtInButtons)continue;var button=overlayFrame.PtInButtons(x,y);if(button){button.IndexID=overlayItem.Identify;button.FrameID=i;button.OverlayFrame=overlayFrame;button.Frame=item.Frame;return button;}}}return null;};//是否在X轴坐标上
|
|
2792
2795
|
this.PtInFrameBottom=function(x,y){var left=this.ChartBorder.GetLeft();var top=this.ChartBorder.GetBottom();var width=this.ChartBorder.GetWidth();var height=this.ChartBorder.Bottom;this.Canvas.beginPath();this.Canvas.rect(left,top,width,height);if(this.Canvas.isPointInPath(x,y))return true;return false;};this.PtInFrameVertical=function(x,y){for(var i=0;i<this.SubFrame.length;++i){var item=this.SubFrame[i];if(item.Height<=0)continue;if(!item.Frame.PtInVertical)continue;if(item.Frame.PtInVertical(x,y)){return{Frame:item.Frame};}}return null;};this.GetXFromIndex=function(index){return this.SubFrame[0].Frame.GetXFromIndex(index);};this.GetYFromData=function(value){return this.SubFrame[0].Frame.GetYFromData(value);};this.ZoomUp=function(cursorIndex){var result=this.SubFrame[0].Frame.ZoomUp(cursorIndex);this.UpdateAllFrame();return result;};this.ZoomDown=function(cursorIndex,option){var result=this.SubFrame[0].Frame.ZoomDown(cursorIndex,option);this.UpdateAllFrame();return result;};this.SetXShowCount=function(showCount){var result=this.SubFrame[0].Frame.SetXShowCount(showCount);this.UpdateAllFrame();return result;};this.GetXShowCount=function(){var xPointcount=-1;if(!IFrameSplitOperator.IsNonEmptyArray(this.SubFrame))return xPointcount;var subFrame=this.SubFrame[0];if(!subFrame.Frame)return xPointcount;xPointcount=subFrame.Frame.XPointCount;return xPointcount;};this.XCoordinateZoom=function(step,isMoveLeft){var result=this.SubFrame[0].Frame.XCoordinateZoom(step,isMoveLeft);this.UpdateAllFrame();return result;};//设置重新计算刻度坐标
|
|
2793
2796
|
this.ResetXYSplit=function(){for(var _i in this.SubFrame){this.SubFrame[_i].Frame.XYSplit=true;}};this.ResetXSplit=function(){for(var _i2 in this.SubFrame){this.SubFrame[_i2].Frame.XSplit=true;}};//清空Y轴坐标的最大最小值
|
|
2794
|
-
this.ClearYCoordinateMaxMin=function(){for(var i=0;i<this.SubFrame.length;++i){var subItem=this.SubFrame[i];var frame=subItem.Frame;if(frame.YMaxMin){frame.YMaxMin.Max=null;frame.YMaxMin.Min=null;}}};this.SetLanguage=function(languageID){for(var _i3 in this.SubFrame){var item=this.SubFrame[_i3];if(item&&item.Frame){if(item.Frame.YSplitOperator)item.Frame.YSplitOperator.LanguageID=languageID;if(item.Frame.XSplitOperator)item.Frame.XSplitOperator.LanguageID=languageID;}}};this.GetCurrentPageSize=function()//获取当前页显示的数据个数
|
|
2797
|
+
this.ClearYCoordinateMaxMin=function(windowIndex){if(IFrameSplitOperator.IsNumber(windowIndex)){var subItem=this.SubFrame[windowIndex];if(!subItem||!subItem.Frame)return;if(frame.YMaxMin){frame.YMaxMin.Max=null;frame.YMaxMin.Min=null;}}else{for(var i=0;i<this.SubFrame.length;++i){var subItem=this.SubFrame[i];var frame=subItem.Frame;if(frame.YMaxMin){frame.YMaxMin.Max=null;frame.YMaxMin.Min=null;}}}};this.SetLanguage=function(languageID){for(var _i3 in this.SubFrame){var item=this.SubFrame[_i3];if(item&&item.Frame){if(item.Frame.YSplitOperator)item.Frame.YSplitOperator.LanguageID=languageID;if(item.Frame.XSplitOperator)item.Frame.XSplitOperator.LanguageID=languageID;}}};this.GetCurrentPageSize=function()//获取当前页显示的数据个数
|
|
2795
2798
|
{if(this.SubFrame.length<=0)return null;var item=this.SubFrame[0];if(!item||!item.Frame)return null;return item.Frame.XPointCount;};this.OnSize=function(){var obj={};this.SubFrame[0].Frame.OnSize(obj);this.UpdateAllFrame();return obj;};this.SetDataWidth=function(dataWidth){var obj=this.SubFrame[0].Frame.SetDataWidth(dataWidth);this.UpdateAllFrame();return obj;};this.UpdateAllFrame=function(){var mainFrame=this.SubFrame[0].Frame;for(var i=0;i<this.SubFrame.length;++i){var item=this.SubFrame[i];if(i>0)//第1个窗口主坐标已经算好了
|
|
2796
2799
|
{item.Frame.XPointCount=mainFrame.XPointCount;item.Frame.ZoomIndex=mainFrame.ZoomIndex;item.Frame.DataWidth=mainFrame.DataWidth;item.Frame.DistanceWidth=mainFrame.DistanceWidth;item.Frame.LastCalculateStatus.Width=mainFrame.LastCalculateStatus.Width;item.Frame.LastCalculateStatus.XPointCount=mainFrame.LastCalculateStatus.XPointCount;}for(var j in item.OverlayIndex){var overlayItem=this.SubFrame[i].OverlayIndex[j];overlayItem.Frame.XPointCount=mainFrame.XPointCount;overlayItem.Frame.ZoomIndex=mainFrame.ZoomIndex;overlayItem.Frame.DataWidth=mainFrame.DataWidth;overlayItem.Frame.DistanceWidth=mainFrame.DistanceWidth;overlayItem.Frame.LastCalculateStatus.Width=mainFrame.LastCalculateStatus.Width;overlayItem.Frame.LastCalculateStatus.XPointCount=mainFrame.LastCalculateStatus.XPointCount;}}};//鼠标是否在边框上
|
|
2797
2800
|
this.PtInFrameBorder=function(x,y){var height=this.DragBorderHeight;for(var i=0;i<this.SubFrame.length-1;++i){var item=this.SubFrame[i];if(item.Frame.Heigh<=0)continue;var bottom=item.Frame.ChartBorder.GetBottom();var left=item.Frame.ChartBorder.GetLeft();var right=item.Frame.ChartBorder.GetRight();item.Frame.Canvas.beginPath();item.Frame.Canvas.rect(left,bottom-height/2,right-left,height);if(item.Frame.Canvas.isPointInPath(x,y)){return{Index:i,Bottom:true};}}return null;};this.IsEnableDragY=function(index){if(!this.SubFrame)return false;var item=this.SubFrame[index];if(!item||!item.Frame||!item.Frame.YSplitOperator)return false;var split=item.Frame.YSplitOperator;if(typeof split.IsEnableDragY!='function')return false;return split.IsEnableDragY();};this.IsEnableOverlayDragY=function(index,overlayIndex){if(!this.SubFrame)return false;var item=this.SubFrame[index];var overlayItem=item.OverlayIndex[overlayIndex];if(!overlayItem||!overlayItem.Frame)return false;var split=overlayItem.Frame.YSplitOperator;if(overlayItem.Frame.IsShareY)split=overlayItem.Frame.MainFrame.YSplitOperator;if(!split||typeof split.IsEnableDragY!='function')return false;return split.IsEnableDragY();};this.PtInFrameY=function(x,y){var rightExtendWith=0;if(this.GetExtendChartByClassName){var finder=this.GetExtendChartByClassName("StockChip");if(finder&&finder.Chart)rightExtendWith=finder.Chart.Width;}for(var i=0;i<this.SubFrame.length;++i){var item=this.SubFrame[i];if(item.Frame.Heigh<=0)continue;var rightWidth=item.Frame.ChartBorder.Right;rightWidth-=rightExtendWith;var border=item.Frame.ChartBorder.GetBorder();var bottom=border.Bottom;var top=border.TopTitle;var left=border.Left;var right=border.Right;var maxTopHegith=30;var barHegith=bottom-top;if(barHegith/3>maxTopHegith){var barTop=top+maxTopHegith;var barBottom=bottom-maxTopHegith;}else{var internal=barHegith/3;var barTop=top+internal;var barBottom=bottom-internal;}var position=0;if(y<barTop)position=1;else if(y>barBottom)position=2;if(rightWidth>=10){if(IFrameSplitOperator.IsNonEmptyArray(item.OverlayIndex)){var overlayItem=item.OverlayIndex[0];var rightOffset=overlayItem.Frame.RightOffset;item.Frame.Canvas.beginPath();item.Frame.Canvas.rect(right,top,rightOffset,bottom-top);if(item.Frame.Canvas.isPointInPath(x,y)){return{Index:i,Right:true,Left:false,Position:position,IsOverlay:false};//Position 1=上面 2 下面 0=中间(TODO)
|
|
@@ -7364,7 +7367,7 @@ this.ChangeCoordinateType=function(obj){if(!this.Frame)return;if(!IFrameSplitOpe
|
|
|
7364
7367
|
{frame.Frame.YSplitOperator.CoordinateType=2;}else{return;}}else{if(obj.Type>=0&&obj.Type<=5)frame.YSplitOperator.CoordinateType=obj.Type;if(obj.IsReverse===true)frame.CoordinateType=1;else if(obj.IsReverse==false)frame.CoordinateType=0;}//请求缓存的最大最小值
|
|
7365
7368
|
frame.YMaxMin.Max=null;frame.YMaxMin.Min=null;this.UpdateFrameMaxMin();//调整坐标最大 最小值
|
|
7366
7369
|
this.Frame.SetSizeChage(true);this.Draw();};//设置指标窗口个数
|
|
7367
|
-
this.ChangeIndexWindowCount=function(count,option){var _this22=this;if(count<=0)return;if(this.Frame.SubFrame.length==count)return;this.Frame.RestoreIndexWindows();var currentLength=this.Frame.SubFrame.length;if(currentLength>count){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DELETE_FRAME);for(var i=currentLength-1;i>=count;--i){this.DeleteIndexPaint(i);this.Frame.SubFrame[i].Frame.ClearToolbar();if(event&&event.Callback){var sendData={SubFrame:this.Frame.SubFrame[i],WindowIndex:i};event.Callback(event,sendData,this);}}this.Frame.SubFrame.splice(count,currentLength-count);this.WindowIndex.splice(count,currentLength-count);this.TitlePaint.splice(count+1,currentLength-count);//最后一个显示X轴坐标
|
|
7370
|
+
this.ChangeIndexWindowCount=function(count,option){var _this22=this;if(count<=0)return;if(this.Frame.SubFrame.length==count)return;this.Frame.RestoreIndexWindows();var currentLength=this.Frame.SubFrame.length;if(currentLength>count){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DELETE_FRAME);for(var i=currentLength-1;i>=count;--i){this.DeleteIndexPaint(i);this.DeleteChartPaintExtend({WindowIndex:i});this.Frame.SubFrame[i].Frame.ClearToolbar();if(event&&event.Callback){var sendData={SubFrame:this.Frame.SubFrame[i],WindowIndex:i};event.Callback(event,sendData,this);}}this.Frame.SubFrame.splice(count,currentLength-count);this.WindowIndex.splice(count,currentLength-count);this.TitlePaint.splice(count+1,currentLength-count);//最后一个显示X轴坐标
|
|
7368
7371
|
for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i].Frame;if(i==this.Frame.SubFrame.length-1)item.XSplitOperator.ShowText=true;else item.XSplitOperator.ShowText=false;}this.Frame.SetSizeChage(true);this.ResetFrameXYSplit();this.UpdateFrameMaxMin();//调整坐标最大 最小值
|
|
7369
7372
|
this.Draw();}else{//创建新的指标窗口
|
|
7370
7373
|
var pixelRatio=GetDevicePixelRatio();for(var i=currentLength;i<count;++i){var subFrame=this.CreateSubFrameItem(i);subFrame.Frame.ChartBorder.TitleHeight*=pixelRatio;this.Frame.SubFrame[i]=subFrame;var titlePaint=new DynamicChartTitlePainting();titlePaint.Frame=this.Frame.SubFrame[i].Frame;titlePaint.Canvas=this.Canvas;titlePaint.LanguageID=this.LanguageID;titlePaint.GetEventCallback=function(id){return _this22.GetEventCallback(id);};titlePaint.SelectedChart=this.SelectedChart;this.TitlePaint[i+1]=titlePaint;}//最后一个显示X轴坐标
|
|
@@ -7394,7 +7397,7 @@ var aryOverlayIndex=[];if(IFrameSplitOperator.IsNonEmptyArray(option.OverlayInde
|
|
|
7394
7397
|
{this.BindIndexData(i,bindData);}for(var i=0;i<aryOverlayIndex.length;++i){var item=aryOverlayIndex[i];this.BindOverlayIndexData(item.Overlay,item.WindowsIndex,bindData);}this.UpdataDataoffset();//更新数据偏移
|
|
7395
7398
|
this.ResetFrameXYSplit();this.UpdateFrameMaxMin();//调整坐标最大 最小值
|
|
7396
7399
|
this.Draw();}else{if(!symbol)symbol=this.Symbol;var optionData={KLine:{}};if(IFrameSplitOperator.IsNumber(period))optionData.KLine.Period=period;if(IFrameSplitOperator.IsNumber(right))optionData.KLine.Right=right;this.ChangeSymbol(symbol,optionData);}};this.RemoveIndexWindow=function(id,option){JSConsole.Chart.Log('[KLineChartContainer::RemoveIndexWindow] remove id',id);if(id==0){if(option&&option.DeleteMainIndex)//删除指标
|
|
7397
|
-
{this.DeleteIndexPaint(id);this.WindowIndex[id]=null;this.Frame.SetSizeChage(true);this.UpdateFrameMaxMin();this.ResetFrameXYSplit();this.Draw();}return;}if(!this.Frame.SubFrame)return;if(id>=this.Frame.SubFrame.length)return;this.Frame.RestoreIndexWindows();var delFrame=this.Frame.SubFrame[id].Frame;this.DeleteIndexPaint(id);this.Frame.SubFrame[id].Frame.ClearToolbar();var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DELETE_FRAME);if(event&&event.Callback){var sendData={SubFrame:this.Frame.SubFrame[id],WindowIndex:id};event.Callback(event,sendData,this);}this.Frame.SubFrame.splice(id,1);this.WindowIndex.splice(id,1);this.TitlePaint.splice(id+1,1);//删除对应的动态标题
|
|
7400
|
+
{this.DeleteIndexPaint(id);this.WindowIndex[id]=null;this.Frame.SetSizeChage(true);this.UpdateFrameMaxMin();this.ResetFrameXYSplit();this.Draw();}return;}if(!this.Frame.SubFrame)return;if(id>=this.Frame.SubFrame.length)return;this.Frame.RestoreIndexWindows();var delFrame=this.Frame.SubFrame[id].Frame;this.DeleteIndexPaint(id);this.DeleteChartPaintExtend({WindowIndex:id});this.Frame.SubFrame[id].Frame.ClearToolbar();var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DELETE_FRAME);if(event&&event.Callback){var sendData={SubFrame:this.Frame.SubFrame[id],WindowIndex:id};event.Callback(event,sendData,this);}this.Frame.SubFrame.splice(id,1);this.WindowIndex.splice(id,1);this.TitlePaint.splice(id+1,1);//删除对应的动态标题
|
|
7398
7401
|
for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i].Frame;if(i==this.Frame.SubFrame.length-1)item.XSplitOperator.ShowText=true;else item.XSplitOperator.ShowText=false;item.Identify=i;}if(this.ChartDrawPicture.length>0){var aryDrawPicture=[];for(var i in this.ChartDrawPicture){var item=this.ChartDrawPicture[i];if(item.Frame==delFrame)continue;aryDrawPicture.push(item);}this.ChartDrawPicture=aryDrawPicture;}this.Frame.SetSizeChage(true);this.UpdateFrameMaxMin();this.ResetFrameXYSplit();this.Draw();};this.CreateExtendChart=function(name,option)//创建扩展图形
|
|
7399
7402
|
{var chart;switch(name){case'筹码分布':chart=new StockChip();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;chart.Left=this.Frame.ChartBorder.Right;//左边间距使用当前框架间距
|
|
7400
7403
|
chart.SetOption(option);this.ExtendChartPaint.push(chart);this.Frame.ChartBorder.Right+=chart.Width;//创建筹码需要增加右边的间距
|
|
@@ -7904,7 +7907,7 @@ this.UpdateFrameMaxMin();//调整坐标最大 最小值
|
|
|
7904
7907
|
this.Draw();};this.ChangeIndex=function(windowIndex,indexName,option){if(this.Frame.SubFrame.length<3)return;if(option&&option.API)return this.ChangeAPIIndex(windowIndex,option);//查找系统指标
|
|
7905
7908
|
var scriptData=new JSIndexScript();var indexInfo=scriptData.Get(indexName);if(!indexInfo)return;if(windowIndex<2)windowIndex=2;if(windowIndex>=this.Frame.SubFrame.length)windowIndex=2;JSIndexScript.ModifyAttribute(indexInfo,option);return this.ChangeScriptIndex(windowIndex,indexInfo,option);};//设置指标窗口个数
|
|
7906
7909
|
this.ChangeIndexWindowCount=function(count){var _this32=this;if(count<2)return;//1,2个窗口固定的不能动
|
|
7907
|
-
if(this.Frame.SubFrame.length==count)return;var currentLength=this.Frame.SubFrame.length;if(currentLength>count){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DELETE_FRAME);for(var i=currentLength-1;i>=count;--i){this.DeleteIndexPaint(i);var item=this.Frame.SubFrame[i].Frame;if(item.ClearToolbar)item.ClearToolbar();if(event&&event.Callback){var sendData={SubFrame:this.Frame.SubFrame[i],WindowIndex:i};event.Callback(event,sendData,this);}}this.Frame.SubFrame.splice(count,currentLength-count);this.WindowIndex.splice(count,currentLength-count);this.TitlePaint.splice(count+1,currentLength-count);}else{//创建新的指标窗口
|
|
7910
|
+
if(this.Frame.SubFrame.length==count)return;var currentLength=this.Frame.SubFrame.length;if(currentLength>count){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DELETE_FRAME);for(var i=currentLength-1;i>=count;--i){this.DeleteIndexPaint(i);this.DeleteChartPaintExtend({WindowIndex:i});var item=this.Frame.SubFrame[i].Frame;if(item.ClearToolbar)item.ClearToolbar();if(event&&event.Callback){var sendData={SubFrame:this.Frame.SubFrame[i],WindowIndex:i};event.Callback(event,sendData,this);}}this.Frame.SubFrame.splice(count,currentLength-count);this.WindowIndex.splice(count,currentLength-count);this.TitlePaint.splice(count+1,currentLength-count);}else{//创建新的指标窗口
|
|
7908
7911
|
var mainFrame=this.Frame.SubFrame[0].Frame;for(var i=currentLength;i<count;++i){var subFrame=this.CreateSubFrameItem(i,mainFrame);this.Frame.SubFrame[i]=subFrame;var titlePaint=new DynamicChartTitlePainting();titlePaint.Frame=this.Frame.SubFrame[i].Frame;titlePaint.Canvas=this.Canvas;titlePaint.LanguageID=this.LanguageID;titlePaint.GetEventCallback=function(id){return _this32.GetEventCallback(id);};titlePaint.SelectedChart=this.SelectedChart;this.TitlePaint[i+1]=titlePaint;}//创建指标
|
|
7909
7912
|
var indexName=["RSI","MACD","DMA","DMI","KDJ","WR"];var scriptData=new JSIndexScript();for(var i=currentLength;i<count;++i){var name=indexName[i%indexName.length];var indexInfo=scriptData.Get(name);this.WindowIndex[i]=new ScriptIndex(indexInfo.Name,indexInfo.Script,indexInfo.Args,indexInfo);//脚本执行
|
|
7910
7913
|
var bindData=this.SourceData;this.BindIndexData(i,bindData);//执行脚本
|
|
@@ -7925,7 +7928,7 @@ for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i].Fr
|
|
|
7925
7928
|
var aryOverlayIndex=[];if(IFrameSplitOperator.IsNonEmptyArray(option.OverlayIndex)){for(var i=0;i<option.OverlayIndex.length;++i){var item=option.OverlayIndex[i];if(item.Index)item.IndexName=item.Index;if(item.Windows>=0)item.WindowIndex=item.Windows;var overlay=this.CreateOverlayWindowsIndex(item);if(!overlay)continue;aryOverlayIndex.push({WindowsIndex:item.WindowIndex,Overlay:overlay});}}this.Frame.SetSizeChage(true);if(!bRefreshData){var bindData=this.SourceData;for(var i=0;i<count;++i){this.BindIndexData(i,bindData);//执行脚本
|
|
7926
7929
|
}for(var i=0;i<aryOverlayIndex.length;++i){var item=aryOverlayIndex[i];this.BindOverlayIndexData(item.Overlay,item.WindowsIndex,bindData);}this.UpdataDataoffset();//更新数据偏移
|
|
7927
7930
|
if(this.UpdateXShowText)this.UpdateXShowText();this.ResetFrameXYSplit();this.UpdateFrameMaxMin();//调整坐标最大 最小值
|
|
7928
|
-
this.Draw();}else{if(!symbol)symbol=this.Symbol;var option={};if(IFrameSplitOperator.IsNumber(dayCount))option.DayCount=dayCount;this.ChangeSymbol(symbol,option);}};this.RemoveIndexWindow=function(id){JSConsole.Chart.Log('[MinuteChartContainer::RemoveIndexWindow] remove id',id);if(id<2)return;if(!this.Frame.SubFrame)return;if(id>=this.Frame.SubFrame.length)return;this.Frame.RestoreIndexWindows();var delFrame=this.Frame.SubFrame[id].Frame;this.DeleteIndexPaint(id);this.Frame.SubFrame[id].Frame.ClearToolbar();var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DELETE_FRAME);if(event&&event.Callback){var sendData={SubFrame:this.Frame.SubFrame[id],WindowIndex:id};event.Callback(event,sendData,this);}this.Frame.SubFrame.splice(id,1);this.WindowIndex.splice(id,1);this.TitlePaint.splice(id+1,1);//删除对应的动态标题
|
|
7931
|
+
this.Draw();}else{if(!symbol)symbol=this.Symbol;var option={};if(IFrameSplitOperator.IsNumber(dayCount))option.DayCount=dayCount;this.ChangeSymbol(symbol,option);}};this.RemoveIndexWindow=function(id){JSConsole.Chart.Log('[MinuteChartContainer::RemoveIndexWindow] remove id',id);if(id<2)return;if(!this.Frame.SubFrame)return;if(id>=this.Frame.SubFrame.length)return;this.Frame.RestoreIndexWindows();var delFrame=this.Frame.SubFrame[id].Frame;this.DeleteIndexPaint(id);this.DeleteChartPaintExtend({WindowIndex:id});this.Frame.SubFrame[id].Frame.ClearToolbar();var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DELETE_FRAME);if(event&&event.Callback){var sendData={SubFrame:this.Frame.SubFrame[id],WindowIndex:id};event.Callback(event,sendData,this);}this.Frame.SubFrame.splice(id,1);this.WindowIndex.splice(id,1);this.TitlePaint.splice(id+1,1);//删除对应的动态标题
|
|
7929
7932
|
for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i].Frame;if(i==this.Frame.SubFrame.length-1)item.XSplitOperator.ShowText=true;else item.XSplitOperator.ShowText=false;item.Identify=i;}/*
|
|
7930
7933
|
if (this.ChartDrawPicture.length>0)
|
|
7931
7934
|
{
|
|
@@ -7975,7 +7978,7 @@ this.DeleteOverlaySymbol=function(symbol){for(var i in this.OverlayChartPaint){v
|
|
|
7975
7978
|
this.ClearOverlaySymbol=function(){for(var i in this.OverlayChartPaint){var item=this.OverlayChartPaint[i];item.IsDelete=true;}this.OverlayChartPaint=[];this.Frame.SubFrame[0].Frame.YSplitOperator.OverlayChartPaint=this.OverlayChartPaint;this.TitlePaint[0].OverlayChartPaint=this.OverlayChartPaint;//绑定叠加
|
|
7976
7979
|
this.UpdateFrameMaxMin();this.Draw();};this.ShowBeforeData=function(isShow,option){this.ShowCallAuctionData({Left:isShow},option);};//集合竞价设置 obj={ Left:, Right: }
|
|
7977
7980
|
this.ShowCallAuctionData=function(obj,option){if(!obj)return;var optionChanged=false;//配置修改
|
|
7978
|
-
if(IFrameSplitOperator.IsBool(obj.Left)&&this.IsShowBeforeData!=obj.Left){this.IsShowBeforeData=obj.Left;optionChanged=true;}if(IFrameSplitOperator.IsBool(obj.Right)&&this.IsShowAfterData!=obj.Right){this.IsShowAfterData=obj.Right;optionChanged=true;}if(obj.MultiDay){var item=obj.MultiDay;if(IFrameSplitOperator.IsBool(item.Left)&&this.IsShowMultiDayBeforeData!=item.Left){this.IsShowMultiDayBeforeData=item.Left;optionChanged=true;}if(IFrameSplitOperator.IsBool(item.Right)&&this.IsShowMultiDayAfterData!=item.Right){this.IsShowMultiDayAfterData=item.Right;optionChanged=true;}}if(option){if(option.BeforeOpen){var item=option.BeforeOpen;if(IFrameSplitOperator.IsNumber(item.Left)&&this.ExtendWidth.Left!=item.Left){this.ExtendWidth.Left=item.Left;optionChanged=true;}}if(option.AfterClose){var item=option.AfterClose;if(IFrameSplitOperator.IsNumber(item.Right)&&this.ExtendWidth.Right!=item.Right){this.ExtendWidth.Right=item.Right;optionChanged=true;}}if(option.MultiDay){var item=option.MultiDay;if(IFrameSplitOperator.IsNumber(item.Left)&&this.MultiDayExtendWidth.Left!=item.Left){this.MultiDayExtendWidth.Left=item.Left;optionChanged=true;}if(IFrameSplitOperator.IsNumber(item.Right)&&this.MultiDayExtendWidth.Right!=item.Right){this.MultiDayExtendWidth.Right=item.Right;optionChanged=true;}}}if(optionChanged)this.RequestData();};this.RequestData=function(){if(this.DayCount<=1)this.RequestMinuteData();else this.RequestHistoryMinuteData();};this.ChangeDrawType=function(type){if(this.ChartPaint.length<=0)return;if(type==0)this.ChartPaint[0].IsDrawArea=true;else if(type==1)this.ChartPaint[0].IsDrawArea=false;else return;this.Draw();};this.UpdateDataOffset=function(){this.SourceData.DataOffset=this.DayOffset.DataOffset;for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(!item.Data)continue;item.Data.DataOffset=this.DayOffset.DataOffset;if(item.ClassName=="ChartMinuteVolumBar"||item.ClassName=="ChartMinutePriceLine")item.DayOffset=this.DayOffset;}for(var i=0;i<this.OverlayChartPaint.length;++i){var item=this.OverlayChartPaint[i];if(!item.Data)continue;item.Data.DataOffset=this.DayOffset.DataOffset;}//叠加指标当前显示的数据偏移
|
|
7981
|
+
if(IFrameSplitOperator.IsBool(obj.Left)&&this.IsShowBeforeData!=obj.Left){this.IsShowBeforeData=obj.Left;optionChanged=true;}if(IFrameSplitOperator.IsBool(obj.Right)&&this.IsShowAfterData!=obj.Right){this.IsShowAfterData=obj.Right;optionChanged=true;}if(obj.MultiDay){var item=obj.MultiDay;if(IFrameSplitOperator.IsBool(item.Left)&&this.IsShowMultiDayBeforeData!=item.Left){this.IsShowMultiDayBeforeData=item.Left;optionChanged=true;}if(IFrameSplitOperator.IsBool(item.Right)&&this.IsShowMultiDayAfterData!=item.Right){this.IsShowMultiDayAfterData=item.Right;optionChanged=true;}}if(option){if(option.BeforeOpen){var item=option.BeforeOpen;if(IFrameSplitOperator.IsNumber(item.Left)&&this.ExtendWidth.Left!=item.Left){this.ExtendWidth.Left=item.Left;optionChanged=true;}}if(option.AfterClose){var item=option.AfterClose;if(IFrameSplitOperator.IsNumber(item.Right)&&this.ExtendWidth.Right!=item.Right){this.ExtendWidth.Right=item.Right;optionChanged=true;}}if(option.MultiDay){var item=option.MultiDay;if(IFrameSplitOperator.IsNumber(item.Left)&&this.MultiDayExtendWidth.Left!=item.Left){this.MultiDayExtendWidth.Left=item.Left;optionChanged=true;}if(IFrameSplitOperator.IsNumber(item.Right)&&this.MultiDayExtendWidth.Right!=item.Right){this.MultiDayExtendWidth.Right=item.Right;optionChanged=true;}}}if(optionChanged){this.Frame.ClearYCoordinateMaxMin();this.RequestData();}};this.RequestData=function(){if(this.DayCount<=1)this.RequestMinuteData();else this.RequestHistoryMinuteData();};this.ChangeDrawType=function(type){if(this.ChartPaint.length<=0)return;if(type==0)this.ChartPaint[0].IsDrawArea=true;else if(type==1)this.ChartPaint[0].IsDrawArea=false;else return;this.Draw();};this.UpdateDataOffset=function(){this.SourceData.DataOffset=this.DayOffset.DataOffset;for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(!item.Data)continue;item.Data.DataOffset=this.DayOffset.DataOffset;if(item.ClassName=="ChartMinuteVolumBar"||item.ClassName=="ChartMinutePriceLine")item.DayOffset=this.DayOffset;}for(var i=0;i<this.OverlayChartPaint.length;++i){var item=this.OverlayChartPaint[i];if(!item.Data)continue;item.Data.DataOffset=this.DayOffset.DataOffset;}//叠加指标当前显示的数据偏移
|
|
7979
7982
|
for(var i=0;i<this.Frame.SubFrame.length;++i){var subFrame=this.Frame.SubFrame[i];for(var j=0;j<subFrame.OverlayIndex.length;++j){var overlayItem=subFrame.OverlayIndex[j];for(var k=0;k<overlayItem.ChartPaint.length;++k){var item=overlayItem.ChartPaint[k];if(!item.Data)continue;item.Data.DataOffset=this.DayOffset.DataOffset;}}}};//请求历史分钟数据
|
|
7980
7983
|
this.RequestHistoryMinuteData=function(){var self=this;this.IsBeforeData=false;this.IsAfterData=false;this.ChartSplashPaint.SetTitle(this.LoadDataSplashTitle);this.ChartSplashPaint.EnableSplash(true);this.Draw();if(this.NetworkFilter){var callCation={Before:this.IsShowMultiDayBeforeData,After:this.IsShowMultiDayAfterData//集合竞价
|
|
7981
7984
|
};var obj={Name:'MinuteChartContainer::RequestHistoryMinuteData',//类名::函数
|
|
@@ -13211,7 +13214,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
|
|
|
13211
13214
|
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);};}/********************************************************************************
|
|
13212
13215
|
* 版本信息输出
|
|
13213
13216
|
*
|
|
13214
|
-
*/var HQCHART_VERSION="1.1.
|
|
13217
|
+
*/var HQCHART_VERSION="1.1.13279";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();//把给外界调用的方法暴露出来
|
|
13215
13218
|
exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
|
|
13216
13219
|
// BaseIndex:BaseIndex,
|
|
13217
13220
|
// ChartLine:ChartLine,
|
package/package.json
CHANGED
package/src/jscommon/umychart.js
CHANGED
|
@@ -9489,6 +9489,44 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
9489
9489
|
|
|
9490
9490
|
return true;
|
|
9491
9491
|
}
|
|
9492
|
+
|
|
9493
|
+
//删除指标窗口扩展图形 option={ ChartID:图形ID, WindowIndex:窗口 }
|
|
9494
|
+
this.DeleteChartPaintExtend=function(option, bCallDestroy)
|
|
9495
|
+
{
|
|
9496
|
+
if (!option) return;
|
|
9497
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.ChartPaintEx)) return;
|
|
9498
|
+
|
|
9499
|
+
if (IFrameSplitOperator.IsNumber(option.WindowIndex))
|
|
9500
|
+
{
|
|
9501
|
+
var windowIndex=option.WindowIndex;
|
|
9502
|
+
if (!this.Frame.SubFrame[windowIndex]) return;
|
|
9503
|
+
var subFrame=this.Frame.SubFrame[windowIndex].Frame;
|
|
9504
|
+
if (!subFrame) return;
|
|
9505
|
+
|
|
9506
|
+
var paint=[]; //踢出当前窗口的指标画法
|
|
9507
|
+
var deleteCount=0;
|
|
9508
|
+
for(var i=0;i<this.ChartPaintEx.length; ++i)
|
|
9509
|
+
{
|
|
9510
|
+
var item=this.ChartPaintEx[i];
|
|
9511
|
+
var bFind=(item.ChartFrame.Guid==subFrame.Guid || item.ChartFrame==subFrame);
|
|
9512
|
+
|
|
9513
|
+
if (!bFind)
|
|
9514
|
+
{
|
|
9515
|
+
paint.push(item);
|
|
9516
|
+
}
|
|
9517
|
+
else
|
|
9518
|
+
{
|
|
9519
|
+
++deleteCount;
|
|
9520
|
+
if (bCallDestroy===true)
|
|
9521
|
+
{
|
|
9522
|
+
if (item && item.OnDestroy) item.OnDestroy(); //图形销毁
|
|
9523
|
+
}
|
|
9524
|
+
}
|
|
9525
|
+
}
|
|
9526
|
+
|
|
9527
|
+
if (deleteCount>0) this.ChartPaintEx=paint;
|
|
9528
|
+
}
|
|
9529
|
+
}
|
|
9492
9530
|
}
|
|
9493
9531
|
|
|
9494
9532
|
function GetDevicePixelRatio()
|
|
@@ -18876,18 +18914,31 @@ function HQTradeFrame()
|
|
|
18876
18914
|
}
|
|
18877
18915
|
|
|
18878
18916
|
//清空Y轴坐标的最大最小值
|
|
18879
|
-
this.ClearYCoordinateMaxMin=function()
|
|
18917
|
+
this.ClearYCoordinateMaxMin=function(windowIndex)
|
|
18880
18918
|
{
|
|
18881
|
-
|
|
18919
|
+
if (IFrameSplitOperator.IsNumber(windowIndex))
|
|
18882
18920
|
{
|
|
18883
|
-
var subItem=this.SubFrame[
|
|
18884
|
-
|
|
18921
|
+
var subItem=this.SubFrame[windowIndex];
|
|
18922
|
+
if (!subItem || !subItem.Frame) return;
|
|
18885
18923
|
if (frame.YMaxMin)
|
|
18886
18924
|
{
|
|
18887
18925
|
frame.YMaxMin.Max=null;
|
|
18888
18926
|
frame.YMaxMin.Min=null;
|
|
18889
18927
|
}
|
|
18890
18928
|
}
|
|
18929
|
+
else
|
|
18930
|
+
{
|
|
18931
|
+
for(var i=0;i<this.SubFrame.length;++i)
|
|
18932
|
+
{
|
|
18933
|
+
var subItem=this.SubFrame[i];
|
|
18934
|
+
var frame=subItem.Frame;
|
|
18935
|
+
if (frame.YMaxMin)
|
|
18936
|
+
{
|
|
18937
|
+
frame.YMaxMin.Max=null;
|
|
18938
|
+
frame.YMaxMin.Min=null;
|
|
18939
|
+
}
|
|
18940
|
+
}
|
|
18941
|
+
}
|
|
18891
18942
|
}
|
|
18892
18943
|
|
|
18893
18944
|
this.SetLanguage=function(languageID)
|
|
@@ -71339,6 +71390,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
71339
71390
|
for(var i=currentLength-1;i>=count;--i)
|
|
71340
71391
|
{
|
|
71341
71392
|
this.DeleteIndexPaint(i);
|
|
71393
|
+
this.DeleteChartPaintExtend({WindowIndex:i});
|
|
71342
71394
|
this.Frame.SubFrame[i].Frame.ClearToolbar();
|
|
71343
71395
|
if (event && event.Callback)
|
|
71344
71396
|
{
|
|
@@ -71654,6 +71706,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
71654
71706
|
|
|
71655
71707
|
var delFrame=this.Frame.SubFrame[id].Frame;
|
|
71656
71708
|
this.DeleteIndexPaint(id);
|
|
71709
|
+
this.DeleteChartPaintExtend({WindowIndex:id});
|
|
71657
71710
|
this.Frame.SubFrame[id].Frame.ClearToolbar();
|
|
71658
71711
|
|
|
71659
71712
|
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DELETE_FRAME);
|
|
@@ -77239,6 +77292,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
77239
77292
|
for(var i=currentLength-1;i>=count;--i)
|
|
77240
77293
|
{
|
|
77241
77294
|
this.DeleteIndexPaint(i);
|
|
77295
|
+
this.DeleteChartPaintExtend({WindowIndex:i});
|
|
77242
77296
|
var item=this.Frame.SubFrame[i].Frame;
|
|
77243
77297
|
if (item.ClearToolbar) item.ClearToolbar();
|
|
77244
77298
|
|
|
@@ -77478,6 +77532,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
77478
77532
|
|
|
77479
77533
|
var delFrame=this.Frame.SubFrame[id].Frame;
|
|
77480
77534
|
this.DeleteIndexPaint(id);
|
|
77535
|
+
this.DeleteChartPaintExtend({WindowIndex:id});
|
|
77481
77536
|
this.Frame.SubFrame[id].Frame.ClearToolbar();
|
|
77482
77537
|
|
|
77483
77538
|
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DELETE_FRAME);
|
|
@@ -78005,7 +78060,11 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
78005
78060
|
}
|
|
78006
78061
|
}
|
|
78007
78062
|
|
|
78008
|
-
if (optionChanged)
|
|
78063
|
+
if (optionChanged)
|
|
78064
|
+
{
|
|
78065
|
+
this.Frame.ClearYCoordinateMaxMin();
|
|
78066
|
+
this.RequestData();
|
|
78067
|
+
}
|
|
78009
78068
|
}
|
|
78010
78069
|
|
|
78011
78070
|
this.RequestData=function()
|
|
@@ -13381,6 +13381,44 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
13381
13381
|
|
|
13382
13382
|
return true;
|
|
13383
13383
|
}
|
|
13384
|
+
|
|
13385
|
+
//删除指标窗口扩展图形 option={ ChartID:图形ID, WindowIndex:窗口 }
|
|
13386
|
+
this.DeleteChartPaintExtend=function(option, bCallDestroy)
|
|
13387
|
+
{
|
|
13388
|
+
if (!option) return;
|
|
13389
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.ChartPaintEx)) return;
|
|
13390
|
+
|
|
13391
|
+
if (IFrameSplitOperator.IsNumber(option.WindowIndex))
|
|
13392
|
+
{
|
|
13393
|
+
var windowIndex=option.WindowIndex;
|
|
13394
|
+
if (!this.Frame.SubFrame[windowIndex]) return;
|
|
13395
|
+
var subFrame=this.Frame.SubFrame[windowIndex].Frame;
|
|
13396
|
+
if (!subFrame) return;
|
|
13397
|
+
|
|
13398
|
+
var paint=[]; //踢出当前窗口的指标画法
|
|
13399
|
+
var deleteCount=0;
|
|
13400
|
+
for(var i=0;i<this.ChartPaintEx.length; ++i)
|
|
13401
|
+
{
|
|
13402
|
+
var item=this.ChartPaintEx[i];
|
|
13403
|
+
var bFind=(item.ChartFrame.Guid==subFrame.Guid || item.ChartFrame==subFrame);
|
|
13404
|
+
|
|
13405
|
+
if (!bFind)
|
|
13406
|
+
{
|
|
13407
|
+
paint.push(item);
|
|
13408
|
+
}
|
|
13409
|
+
else
|
|
13410
|
+
{
|
|
13411
|
+
++deleteCount;
|
|
13412
|
+
if (bCallDestroy===true)
|
|
13413
|
+
{
|
|
13414
|
+
if (item && item.OnDestroy) item.OnDestroy(); //图形销毁
|
|
13415
|
+
}
|
|
13416
|
+
}
|
|
13417
|
+
}
|
|
13418
|
+
|
|
13419
|
+
if (deleteCount>0) this.ChartPaintEx=paint;
|
|
13420
|
+
}
|
|
13421
|
+
}
|
|
13384
13422
|
}
|
|
13385
13423
|
|
|
13386
13424
|
function GetDevicePixelRatio()
|
|
@@ -22768,18 +22806,31 @@ function HQTradeFrame()
|
|
|
22768
22806
|
}
|
|
22769
22807
|
|
|
22770
22808
|
//清空Y轴坐标的最大最小值
|
|
22771
|
-
this.ClearYCoordinateMaxMin=function()
|
|
22809
|
+
this.ClearYCoordinateMaxMin=function(windowIndex)
|
|
22772
22810
|
{
|
|
22773
|
-
|
|
22811
|
+
if (IFrameSplitOperator.IsNumber(windowIndex))
|
|
22774
22812
|
{
|
|
22775
|
-
var subItem=this.SubFrame[
|
|
22776
|
-
|
|
22813
|
+
var subItem=this.SubFrame[windowIndex];
|
|
22814
|
+
if (!subItem || !subItem.Frame) return;
|
|
22777
22815
|
if (frame.YMaxMin)
|
|
22778
22816
|
{
|
|
22779
22817
|
frame.YMaxMin.Max=null;
|
|
22780
22818
|
frame.YMaxMin.Min=null;
|
|
22781
22819
|
}
|
|
22782
22820
|
}
|
|
22821
|
+
else
|
|
22822
|
+
{
|
|
22823
|
+
for(var i=0;i<this.SubFrame.length;++i)
|
|
22824
|
+
{
|
|
22825
|
+
var subItem=this.SubFrame[i];
|
|
22826
|
+
var frame=subItem.Frame;
|
|
22827
|
+
if (frame.YMaxMin)
|
|
22828
|
+
{
|
|
22829
|
+
frame.YMaxMin.Max=null;
|
|
22830
|
+
frame.YMaxMin.Min=null;
|
|
22831
|
+
}
|
|
22832
|
+
}
|
|
22833
|
+
}
|
|
22783
22834
|
}
|
|
22784
22835
|
|
|
22785
22836
|
this.SetLanguage=function(languageID)
|
|
@@ -75231,6 +75282,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
75231
75282
|
for(var i=currentLength-1;i>=count;--i)
|
|
75232
75283
|
{
|
|
75233
75284
|
this.DeleteIndexPaint(i);
|
|
75285
|
+
this.DeleteChartPaintExtend({WindowIndex:i});
|
|
75234
75286
|
this.Frame.SubFrame[i].Frame.ClearToolbar();
|
|
75235
75287
|
if (event && event.Callback)
|
|
75236
75288
|
{
|
|
@@ -75546,6 +75598,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
75546
75598
|
|
|
75547
75599
|
var delFrame=this.Frame.SubFrame[id].Frame;
|
|
75548
75600
|
this.DeleteIndexPaint(id);
|
|
75601
|
+
this.DeleteChartPaintExtend({WindowIndex:id});
|
|
75549
75602
|
this.Frame.SubFrame[id].Frame.ClearToolbar();
|
|
75550
75603
|
|
|
75551
75604
|
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DELETE_FRAME);
|
|
@@ -81131,6 +81184,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
81131
81184
|
for(var i=currentLength-1;i>=count;--i)
|
|
81132
81185
|
{
|
|
81133
81186
|
this.DeleteIndexPaint(i);
|
|
81187
|
+
this.DeleteChartPaintExtend({WindowIndex:i});
|
|
81134
81188
|
var item=this.Frame.SubFrame[i].Frame;
|
|
81135
81189
|
if (item.ClearToolbar) item.ClearToolbar();
|
|
81136
81190
|
|
|
@@ -81370,6 +81424,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
81370
81424
|
|
|
81371
81425
|
var delFrame=this.Frame.SubFrame[id].Frame;
|
|
81372
81426
|
this.DeleteIndexPaint(id);
|
|
81427
|
+
this.DeleteChartPaintExtend({WindowIndex:id});
|
|
81373
81428
|
this.Frame.SubFrame[id].Frame.ClearToolbar();
|
|
81374
81429
|
|
|
81375
81430
|
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DELETE_FRAME);
|
|
@@ -81897,7 +81952,11 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
81897
81952
|
}
|
|
81898
81953
|
}
|
|
81899
81954
|
|
|
81900
|
-
if (optionChanged)
|
|
81955
|
+
if (optionChanged)
|
|
81956
|
+
{
|
|
81957
|
+
this.Frame.ClearYCoordinateMaxMin();
|
|
81958
|
+
this.RequestData();
|
|
81959
|
+
}
|
|
81901
81960
|
}
|
|
81902
81961
|
|
|
81903
81962
|
this.RequestData=function()
|
|
@@ -132158,7 +132217,7 @@ function ScrollBarBGChart()
|
|
|
132158
132217
|
|
|
132159
132218
|
|
|
132160
132219
|
|
|
132161
|
-
var HQCHART_VERSION="1.1.
|
|
132220
|
+
var HQCHART_VERSION="1.1.13279";
|
|
132162
132221
|
|
|
132163
132222
|
function PrintHQChartVersion()
|
|
132164
132223
|
{
|
|
@@ -13425,6 +13425,44 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
13425
13425
|
|
|
13426
13426
|
return true;
|
|
13427
13427
|
}
|
|
13428
|
+
|
|
13429
|
+
//删除指标窗口扩展图形 option={ ChartID:图形ID, WindowIndex:窗口 }
|
|
13430
|
+
this.DeleteChartPaintExtend=function(option, bCallDestroy)
|
|
13431
|
+
{
|
|
13432
|
+
if (!option) return;
|
|
13433
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.ChartPaintEx)) return;
|
|
13434
|
+
|
|
13435
|
+
if (IFrameSplitOperator.IsNumber(option.WindowIndex))
|
|
13436
|
+
{
|
|
13437
|
+
var windowIndex=option.WindowIndex;
|
|
13438
|
+
if (!this.Frame.SubFrame[windowIndex]) return;
|
|
13439
|
+
var subFrame=this.Frame.SubFrame[windowIndex].Frame;
|
|
13440
|
+
if (!subFrame) return;
|
|
13441
|
+
|
|
13442
|
+
var paint=[]; //踢出当前窗口的指标画法
|
|
13443
|
+
var deleteCount=0;
|
|
13444
|
+
for(var i=0;i<this.ChartPaintEx.length; ++i)
|
|
13445
|
+
{
|
|
13446
|
+
var item=this.ChartPaintEx[i];
|
|
13447
|
+
var bFind=(item.ChartFrame.Guid==subFrame.Guid || item.ChartFrame==subFrame);
|
|
13448
|
+
|
|
13449
|
+
if (!bFind)
|
|
13450
|
+
{
|
|
13451
|
+
paint.push(item);
|
|
13452
|
+
}
|
|
13453
|
+
else
|
|
13454
|
+
{
|
|
13455
|
+
++deleteCount;
|
|
13456
|
+
if (bCallDestroy===true)
|
|
13457
|
+
{
|
|
13458
|
+
if (item && item.OnDestroy) item.OnDestroy(); //图形销毁
|
|
13459
|
+
}
|
|
13460
|
+
}
|
|
13461
|
+
}
|
|
13462
|
+
|
|
13463
|
+
if (deleteCount>0) this.ChartPaintEx=paint;
|
|
13464
|
+
}
|
|
13465
|
+
}
|
|
13428
13466
|
}
|
|
13429
13467
|
|
|
13430
13468
|
function GetDevicePixelRatio()
|
|
@@ -22812,18 +22850,31 @@ function HQTradeFrame()
|
|
|
22812
22850
|
}
|
|
22813
22851
|
|
|
22814
22852
|
//清空Y轴坐标的最大最小值
|
|
22815
|
-
this.ClearYCoordinateMaxMin=function()
|
|
22853
|
+
this.ClearYCoordinateMaxMin=function(windowIndex)
|
|
22816
22854
|
{
|
|
22817
|
-
|
|
22855
|
+
if (IFrameSplitOperator.IsNumber(windowIndex))
|
|
22818
22856
|
{
|
|
22819
|
-
var subItem=this.SubFrame[
|
|
22820
|
-
|
|
22857
|
+
var subItem=this.SubFrame[windowIndex];
|
|
22858
|
+
if (!subItem || !subItem.Frame) return;
|
|
22821
22859
|
if (frame.YMaxMin)
|
|
22822
22860
|
{
|
|
22823
22861
|
frame.YMaxMin.Max=null;
|
|
22824
22862
|
frame.YMaxMin.Min=null;
|
|
22825
22863
|
}
|
|
22826
22864
|
}
|
|
22865
|
+
else
|
|
22866
|
+
{
|
|
22867
|
+
for(var i=0;i<this.SubFrame.length;++i)
|
|
22868
|
+
{
|
|
22869
|
+
var subItem=this.SubFrame[i];
|
|
22870
|
+
var frame=subItem.Frame;
|
|
22871
|
+
if (frame.YMaxMin)
|
|
22872
|
+
{
|
|
22873
|
+
frame.YMaxMin.Max=null;
|
|
22874
|
+
frame.YMaxMin.Min=null;
|
|
22875
|
+
}
|
|
22876
|
+
}
|
|
22877
|
+
}
|
|
22827
22878
|
}
|
|
22828
22879
|
|
|
22829
22880
|
this.SetLanguage=function(languageID)
|
|
@@ -75275,6 +75326,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
75275
75326
|
for(var i=currentLength-1;i>=count;--i)
|
|
75276
75327
|
{
|
|
75277
75328
|
this.DeleteIndexPaint(i);
|
|
75329
|
+
this.DeleteChartPaintExtend({WindowIndex:i});
|
|
75278
75330
|
this.Frame.SubFrame[i].Frame.ClearToolbar();
|
|
75279
75331
|
if (event && event.Callback)
|
|
75280
75332
|
{
|
|
@@ -75590,6 +75642,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
75590
75642
|
|
|
75591
75643
|
var delFrame=this.Frame.SubFrame[id].Frame;
|
|
75592
75644
|
this.DeleteIndexPaint(id);
|
|
75645
|
+
this.DeleteChartPaintExtend({WindowIndex:id});
|
|
75593
75646
|
this.Frame.SubFrame[id].Frame.ClearToolbar();
|
|
75594
75647
|
|
|
75595
75648
|
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DELETE_FRAME);
|
|
@@ -81175,6 +81228,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
81175
81228
|
for(var i=currentLength-1;i>=count;--i)
|
|
81176
81229
|
{
|
|
81177
81230
|
this.DeleteIndexPaint(i);
|
|
81231
|
+
this.DeleteChartPaintExtend({WindowIndex:i});
|
|
81178
81232
|
var item=this.Frame.SubFrame[i].Frame;
|
|
81179
81233
|
if (item.ClearToolbar) item.ClearToolbar();
|
|
81180
81234
|
|
|
@@ -81414,6 +81468,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
81414
81468
|
|
|
81415
81469
|
var delFrame=this.Frame.SubFrame[id].Frame;
|
|
81416
81470
|
this.DeleteIndexPaint(id);
|
|
81471
|
+
this.DeleteChartPaintExtend({WindowIndex:id});
|
|
81417
81472
|
this.Frame.SubFrame[id].Frame.ClearToolbar();
|
|
81418
81473
|
|
|
81419
81474
|
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DELETE_FRAME);
|
|
@@ -81941,7 +81996,11 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
81941
81996
|
}
|
|
81942
81997
|
}
|
|
81943
81998
|
|
|
81944
|
-
if (optionChanged)
|
|
81999
|
+
if (optionChanged)
|
|
82000
|
+
{
|
|
82001
|
+
this.Frame.ClearYCoordinateMaxMin();
|
|
82002
|
+
this.RequestData();
|
|
82003
|
+
}
|
|
81945
82004
|
}
|
|
81946
82005
|
|
|
81947
82006
|
this.RequestData=function()
|
|
@@ -135588,7 +135647,7 @@ function HQChartScriptWorker()
|
|
|
135588
135647
|
|
|
135589
135648
|
|
|
135590
135649
|
|
|
135591
|
-
var HQCHART_VERSION="1.1.
|
|
135650
|
+
var HQCHART_VERSION="1.1.13279";
|
|
135592
135651
|
|
|
135593
135652
|
function PrintHQChartVersion()
|
|
135594
135653
|
{
|