hqchart 1.1.14593 → 1.1.14598

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.
@@ -1705,7 +1705,7 @@ this.ClickDownPoint;//鼠标点击坐标 {X, Y}, 鼠标放开以后清空为null
1705
1705
  this.IsDestroy=false;//是否已经销毁了
1706
1706
  this.EnableYDrag={Left:false,Right:false,//是否可以拖拽缩放Y轴最大最小值
1707
1707
  Wheel:false,WheelYMove:5//是否可以滚轴缩放Y轴最大最小值
1708
- };this.EnableXDrag={Bottom:true};//X轴拖动缩放
1708
+ };this.EnableXDrag={Bottom:true,LButton:{Type:1},RButton:{Type:2}};//X轴拖动缩放 Type: 1=拖动K线 2=缩放K线
1709
1709
  this.EnableZoomIndexWindow=false;//是否支持双击缩放附图窗口
1710
1710
  this.EnableVerifyRecvData=false;//是否检测接收到的数据
1711
1711
  this.PhoneDBClick=new PhoneDBClick();this.SelectedChart={EnableSelected:false,EnableMoveOn:false,Selected:{Identify:null},MoveOn:{Identify:null}};//选中图形
@@ -1803,10 +1803,14 @@ if(drag.CurrentMove){drag.CurrentMove.X=e.clientX;drag.CurrentMove.Y=e.clientY;}
1803
1803
  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)//选中图形移动
1804
1804
  {if(Math.abs(drag.LastMove.Y-e.clientY)<2&&Math.abs(drag.LastMove.X-e.clientX)<2)return;var chartMove=this.GetExtendChartByClassName("DragMovePaint");if(chartMove&&chartMove.Chart){var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;chartMove.Chart.Point={X:x,Y:y};chartMove.Chart.IsShow=true;chartMove.Chart.Info=this.IndexChartDrag.Info;this.DrawDynamicInfo();}this.IndexChartDrag.LastMove.X=x;this.IndexChartDrag.LastMove.Y=y;drag.LastMove.X=e.clientX;drag.LastMove.Y=e.clientY;}else if(this.CustomChartDrag){var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;var sendData={X:x,Y:y,e:e,ChartDrag:this.CustomChartDrag,Drag:drag};this.TryDragMove_CustomChartDrag(sendData);}else if(this.CurrentChartDrawPicture&&this.CurrentChartDrawPicture.EnableMove===true)//画图工具移动
1805
1805
  {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)//画图工具移动
1806
- {if(Math.abs(drag.LastMove.X-e.clientX)<5&&Math.abs(drag.LastMove.Y-e.clientY)<1)return;if(this.SelectChartDrawPicture){if(this.SelectChartDrawPicture.EnableCtrlMove){if(!e.ctrlKey)return;}}if(this.SelectChartDrawPicture&&this.SelectChartDrawPicture.DragInfo)this.SelectChartDrawPicture.DragInfo.Move={X:e.clientX,Y:e.client};if(this.MoveChartDrawPicture(e.clientX-drag.LastMove.X,e.clientY-drag.LastMove.Y,false,drag)){this.DrawDynamicInfo();}}drag.LastMove.X=e.clientX;drag.LastMove.Y=e.clientY;}else if(drag.Click&&drag.Click.IsInFrameBottom){this.OnDragXCoordinateZoom(drag,{X:moveSetp,Y:moveSetpY},e);}else if((bLButtonSelectRect||bRButtonSelectRect)&&!isDragSelectRect&&!isDragSubSelectRect&&!bShfitDragKLine)//左右键区间选择
1806
+ {if(Math.abs(drag.LastMove.X-e.clientX)<5&&Math.abs(drag.LastMove.Y-e.clientY)<1)return;if(this.SelectChartDrawPicture){if(this.SelectChartDrawPicture.EnableCtrlMove){if(!e.ctrlKey)return;}}if(this.SelectChartDrawPicture&&this.SelectChartDrawPicture.DragInfo)this.SelectChartDrawPicture.DragInfo.Move={X:e.clientX,Y:e.client};if(this.MoveChartDrawPicture(e.clientX-drag.LastMove.X,e.clientY-drag.LastMove.Y,false,drag)){this.DrawDynamicInfo();}}drag.LastMove.X=e.clientX;drag.LastMove.Y=e.clientY;}else if(drag.Click&&drag.Click.IsInFrameBottom){var dragType=this.GetDragXCoordinateType(e,"DocOnMouseMove");if(dragType==2)this.OnDragXCoordinateZoom(drag,{X:moveSetp,Y:moveSetpY},e);else if(dragType==1)this.OnDragXCoordinateKLine(drag,{X:moveSetp,Y:moveSetpY},e);}else if((bLButtonSelectRect||bRButtonSelectRect)&&!isDragSelectRect&&!isDragSubSelectRect&&!bShfitDragKLine)//左右键区间选择
1807
1807
  {var yMoveSetp=Math.abs(drag.LastMove.Y-e.clientY);if(moveSetp<5&&yMoveSetp<5)return;this.SetCursor({Cursor:"default"});var ptStart=this.PointAbsoluteToRelative(drag.Click.X,drag.Click.Y);var ptEnd=this.PointAbsoluteToRelative(e.clientX,e.clientY);this.ShowDragSelectRect(ptStart,ptEnd);drag.LastMove.X=e.clientX;drag.LastMove.Y=e.clientY;}else if(this.DragMode==1||isDragSelectRect||isDragSubSelectRect)//数据上下左右拖拽 区间选择框左右拖动
1808
- {this.OnDragMode_One({X:moveSetp,Y:moveSetpY},e);}};this.OnDragXCoordinateZoom=function(drag,moveData,e){var moveSetp=moveData.X;var moveSetpY=moveData.Y;if(moveSetp<5)return;var isLeft=true;if(drag.LastMove.X<e.clientX)isLeft=false;//右移数据
1809
- var cursorStatus="ew-resize";var oneStepWidth=this.GetMoveOneStepWidth();if(moveSetp<oneStepWidth){this.SetCursor({Cursor:cursorStatus});return;}if(this.XCoordinateZoom(moveSetp,isLeft)){this.UpdataDataoffset();this.UpdateFrameMaxMin();this.ResetFrameXYSplit();this.Draw();this.OnKLinePageChange("datamove");}drag.LastMove.X=e.clientX;this.SetCursor({Cursor:cursorStatus});};this.OnDragMode_One=function(moveData,e){var moveSetp=moveData.X;var moveSetpY=moveData.Y;var drag=this.MouseDrag;if(moveSetp<5&&moveSetpY<5)return;var bNeedDraw=false;var bUpDownY=false;if(moveSetpY>=5){if(this.UpDownDrag&&this.UpDownDrag.Index>=0){var yMove=e.clientY-drag.LastMove.Y;JSConsole.Chart.Log("[JSChartContainer::OnDragMode_One] UpDownDrag ",this.UpDownDrag,yMove);//this.UIElement.style.cursor="pointer";
1808
+ {this.OnDragMode_One({X:moveSetp,Y:moveSetpY},e);}};//X轴坐标拖动 缩放K线
1809
+ this.OnDragXCoordinateZoom=function(drag,moveData,e){var moveSetp=moveData.X;var moveSetpY=moveData.Y;if(moveSetp<5)return;var isLeft=true;if(drag.LastMove.X<e.clientX)isLeft=false;//右移数据
1810
+ var cursorStatus="ew-resize";var oneStepWidth=this.GetMoveOneStepWidth();if(moveSetp<oneStepWidth){this.SetCursor({Cursor:cursorStatus});return;}if(this.XCoordinateZoom(moveSetp,isLeft)){this.UpdataDataoffset();this.UpdateFrameMaxMin();this.ResetFrameXYSplit();this.Draw();this.OnKLinePageChange("datamove");}drag.LastMove.X=e.clientX;this.SetCursor({Cursor:cursorStatus});};//X轴坐标拖动 拖动K线
1811
+ this.OnDragXCoordinateKLine=function(drag,moveData,e){var moveSetpX=moveData.X;var moveSetpY=moveData.Y;if(moveSetpX<5)return false;var isLeft=true;if(drag.LastMove.X<e.clientX)isLeft=false;//右移数据
1812
+ var cursorStatus="pointer";var oneStepWidth=this.GetMoveOneStepWidth();if(moveSetpX<oneStepWidth){this.SetCursor({Cursor:cursorStatus});return false;}var bNeedDraw=false;if(this.DataMove(moveSetpX,isLeft)){this.UpdataDataoffset();//this.UpdatePointByCursorIndex(); //推拽数据的时候不需要把鼠标位置更新到K线上
1813
+ this.UpdateFrameMaxMin();this.ResetFrameXYSplit();bNeedDraw=true;}else{if(this.DragDownloadData){this.DragDownloadData();if(this.ChartSplashPaint&&this.ChartSplashPaint.IsEnableSplash)return true;}}drag.LastMove.X=e.clientX;this.SetCursor({Cursor:cursorStatus});if(bNeedDraw){this.Draw();this.OnKLinePageChange("datamove");}return true;};this.OnDragMode_One=function(moveData,e){var moveSetp=moveData.X;var moveSetpY=moveData.Y;var drag=this.MouseDrag;if(moveSetp<5&&moveSetpY<5)return;var bNeedDraw=false;var bUpDownY=false;if(moveSetpY>=5){if(this.UpDownDrag&&this.UpDownDrag.Index>=0){var yMove=e.clientY-drag.LastMove.Y;JSConsole.Chart.Log("[JSChartContainer::OnDragMode_One] UpDownDrag ",this.UpDownDrag,yMove);//this.UIElement.style.cursor="pointer";
1810
1814
  this.SetCursor({Cursor:"pointer"});if(this.OnUpDonwFrameY(this.UpDownDrag,yMove)){bNeedDraw=true;bUpDownY=true;}drag.LastMove.Y=e.clientY;}}if(moveSetp>=5){if(this.RectSelectDrag){if(this.RectSelectDrag.Index>=0){var obj={X:e.clientX,Y:e.clientY,PointIndex:this.RectSelectDrag.Index,Name:"MoveRectSelectLine"};if(this.MoveRectSelectPoint(obj))bNeedDraw=true;}else if(this.RectSelectDrag.Type===4){var obj={X:e.clientX};if(!this.GetXDataIndex(obj))return;if(obj.DataIndex==this.RectSelectDrag.DataIndex)return;var step=obj.DataIndex-this.RectSelectDrag.DataIndex;var isLeft=true;if(step>0)isLeft=false;if(!this.MoveSubRectSelect({Step:Math.abs(step),IsLeft:isLeft,X:e.clientX,Y:e.clientY}))return;this.RectSelectDrag.DataIndex=obj.DataIndex;this.RectSelectDrag.X=e.clientX;bNeedDraw=true;}}else{var isLeft=true;if(drag.LastMove.X<e.clientX)isLeft=false;//右移数据
1811
1815
  //按住shift才能移动K线
1812
1816
  if(this.KLineDragConfig&&this.KLineDragConfig.EnableShfit&&!e.shiftKey)return;var cursorStatus="pointer";var oneStepWidth=this.GetMoveOneStepWidth();if(moveSetp<oneStepWidth){//this.UIElement.style.cursor=cursorStatus;
@@ -1819,7 +1823,7 @@ var bLButtonSelectRect=this.IsEnableLSelectRect(e,"DocOnMouseUp");//左键区间
1819
1823
  var IsMinuteChart=this.ClassName=="MinuteChartContainer"||this.ClassName=="MinuteChartHScreenContainer"?true:false;var isDragSelectRect=this.RectSelectDrag&&this.RectSelectDrag.Index>=0;var isDragSubSelectRect=this.RectSelectDrag&&this.RectSelectDrag.Type==4;var bClearDrawPicture=true;var bShfitDragKLine=this.IsShfitDragKLine(e);if(this.CurrentChartDrawPicture){var drawPicture=this.CurrentChartDrawPicture;if(drawPicture.Status==2||drawPicture.Status==1||drawPicture.Status==3){drawPicture.PointStatus=drawPicture.Status;if(this.FinishChartDrawPicturePoint())this.DrawDynamicInfo();else bClearDrawPicture=false;}else if(drawPicture.Status==20){if(this.FinishMoveChartDrawPicture())this.DrawDynamicInfo();}}else if(this.IndexChartDrag&&this.IndexChartDrag.SelectedChart){var chartMove=this.GetExtendChartByClassName("DragMovePaint");if(chartMove&&chartMove.Chart)chartMove.Chart.Clear();if(!this.OnDragChart(this.IndexChartDrag))this.DrawDynamicInfo();//this.UIElement.style.cursor="default";
1820
1824
  this.SetCursor({Cursor:"default"});}else if(this.CustomChartDrag){var sendData={e:e,ChartDrag:this.CustomChartDrag,Drag:this.MouseDrag};this.TryMouseUp_CustomChartDrag(sendData);}else if(isDragSelectRect)//区间选择拖动范围
1821
1825
  {if(this.OnDragSelectRectMouseUp)this.OnDragSelectRectMouseUp(e);}else if(isDragSubSelectRect){if(this.OnDragSubSelectRectMouseUp)this.OnDragSubSelectRectMouseUp(e);}else if(IsMinuteChart){if(this.OnMinuteSelectRectMouseUp)this.OnMinuteSelectRectMouseUp(e);//分时图区间选择
1822
- }else if((bLButtonSelectRect||bRButtonSelectRect)&&!bShfitDragKLine)//K线图区间选择
1826
+ }else if(this.MouseDrag&&this.MouseDrag.Click&&this.MouseDrag.Click.IsInFrameBottom){}else if((bLButtonSelectRect||bRButtonSelectRect)&&!bShfitDragKLine)//K线图区间选择
1823
1827
  {var drag=this.MouseDrag;drag.LastMove.X=e.clientX;drag.LastMove.Y=e.clientY;var selectData=new SelectRectData();var pixelTatio=GetDevicePixelRatio();//区间起始位置 结束位子
1824
1828
  selectData.XStart=(drag.Click.X-uielement.getBoundingClientRect().left)*pixelTatio;selectData.YStart=(drag.Click.Y-uielement.getBoundingClientRect().top)*pixelTatio;selectData.XEnd=(drag.LastMove.X-uielement.getBoundingClientRect().left)*pixelTatio;selectData.YEnd=(drag.LastMove.Y-uielement.getBoundingClientRect().top)*pixelTatio;selectData.JSChartContainer=this;selectData.Stock={Symbol:this.Symbol,Name:this.Name};selectData.IsLButton=bLButtonSelectRect;selectData.IsRButton=bRButtonSelectRect;if(!this.BorderDrag&&this.GetSelectRectData(selectData)){this.FinishSelectRect(selectData,e);}else{this.TryClickPaintEvent(JSCHART_EVENT_ID.ON_CLICKUP_CHART_PAINT,this.ClickDownPoint,e);}}else{this.TryClickPaintEvent(JSCHART_EVENT_ID.ON_CLICKUP_CHART_PAINT,this.ClickDownPoint,e);this.ClickEvent(e);}//清空数据
1825
1829
  JSConsole.Chart.Log('[KLineChartContainer::document.onmouseup]',e);if(this.SelectChartDrawPicture)this.SelectChartDrawPicture.DragInfo=null;//this.UIElement.style.cursor="default";
@@ -2041,7 +2045,9 @@ event.Callback(event,data,this);if(data.PreventDefault)return;}if(button.ID==JSC
2041
2045
  var button=null;//当前鼠标所在按钮
2042
2046
  var frameID=this.Frame.PtInFrame(x,y);if(IFrameSplitOperator.IsNumber(frameID)&&frameID>=0)//在K线内部移动,调整K线索引
2043
2047
  this.CursorIndex=this.Frame.GetXData(x);if(this.EnableBorderDrag&&this.Frame&&!this.CurrentChartDrawPicture){var dragBorder=this.Frame.PtInFrameBorder(x,y);if(dragBorder&&dragBorder.Index>=0){mouseStatus={Cursor:"n-resize",Name:"DragBorder"};JSConsole.Chart.Log("[JSChartContainer::OnMouseMove] drag border ",dragBorder);}}if(this.EnableYDrag&&this.Frame&&!this.CurrentChartDrawPicture){var dragY=this.TryYDrag(x,y);if(dragY){mouseStatus={Cursor:dragY.Position==0?"n-resize":"row-resize",Name:"DragY"};JSConsole.Chart.Log("[JSChartContainer::OnMouseMove] drag y ",dragY);}}if(!this.CurrentChartDrawPicture){button=this.PtInButton(x,y);if(button){mouseStatus={Cursor:"pointer",Name:button.Name};JSConsole.Chart.Log("[JSChartContainer::OnMouseMove] frame button ",button);}}if(this.ChartCorssCursor){var crossButton=this.ChartCorssCursor.PtInButton(x,y);if(crossButton){mouseStatus={Cursor:"pointer",Name:"CorssCursorButton"};JSConsole.Chart.Log("[JSChartContainer::OnMouseMove] cross cursor button ",crossButton);}}//X轴拖动缩放
2044
- if(this.ClassName=="KLineChartContainer"&&this.EnableXDrag.Bottom&&this.Frame.PtInFrameBottom(x,y)){mouseStatus={Cursor:"ew-resize",Name:"FrameButtom"};JSConsole.Chart.Log("[JSChartContainer::OnMouseMove] frame bottom ");}if(this.Frame.PtInHorizontalLabel&&this.Frame.PtInHorizontalLabel(x,y)){mouseStatus={Cursor:"pointer",Name:"HorizontalLabel"};JSConsole.Chart.Log("[JSChartContainer::OnMouseMove] frame Horizontal Label ");}if(this.SelectedChart.EnableMoveOn&&this.PtInChart&&!this.CurrentChartDrawPicture){var chartInfo=this.PtInChart(x,y);if(chartInfo&&chartInfo.Identify){mouseStatus={Cursor:"pointer",Name:"PtInChart"};this.SelectedChart.MoveOn.Identify=chartInfo.Identify;this.SelectedChart.MoveOn.Identify=null;JSConsole.Chart.Log("[JSChartContainer::OnMouseMove] Point in chart ",chartInfo);}else{this.SelectedChart.MoveOn.Identify=null;}}else{this.SelectedChart.MoveOn.Identify=null;}//区间选择
2048
+ if(this.ClassName=="KLineChartContainer"&&this.EnableXDrag.Bottom&&this.Frame.PtInFrameBottom(x,y)){//var dragType=this.GetDragXCoordinateType(e,"OnMouseMove");
2049
+ //mouseStatus={ Cursor:"pointer", Name:"FrameButtom"};
2050
+ JSConsole.Chart.Log("[JSChartContainer::OnMouseMove] frame bottom ");}if(this.Frame.PtInHorizontalLabel&&this.Frame.PtInHorizontalLabel(x,y)){mouseStatus={Cursor:"pointer",Name:"HorizontalLabel"};JSConsole.Chart.Log("[JSChartContainer::OnMouseMove] frame Horizontal Label ");}if(this.SelectedChart.EnableMoveOn&&this.PtInChart&&!this.CurrentChartDrawPicture){var chartInfo=this.PtInChart(x,y);if(chartInfo&&chartInfo.Identify){mouseStatus={Cursor:"pointer",Name:"PtInChart"};this.SelectedChart.MoveOn.Identify=chartInfo.Identify;this.SelectedChart.MoveOn.Identify=null;JSConsole.Chart.Log("[JSChartContainer::OnMouseMove] Point in chart ",chartInfo);}else{this.SelectedChart.MoveOn.Identify=null;}}else{this.SelectedChart.MoveOn.Identify=null;}//区间选择
2045
2051
  var paint=this.GetRectSelectPaint();if(paint&&paint.GetPointCount()>0){var item=paint.PtInPaint(x,y);if(item){if(item.Type==4)mouseStatus={Cursor:"pointer",Name:"DragRectSelect"};//子区域选中
2046
2052
  else mouseStatus={Cursor:"ew-resize",Name:"DragRectSelect"};JSConsole.Chart.Log("[JSChartContainer::OnMouseMove] drag rect select ",item);}}var sendData={MouseStatus:null,X:x,Y:y,FrameID:frameID,e:e};if(this.TryMouseMove_CustomChartDrag(sendData)){if(sendData.MouseStatus)mouseStatus=sendData.MouseStatus;}var bDrawPicture=false;//是否正在画图
2047
2053
  if(this.CurrentChartDrawPicture){var index=this.Frame.PtInChartFrame(x,y);if(this.CurrentChartDrawPicture.Status!=20){var bDrawValid=false;//是否在有效绘图区域里面
@@ -2291,7 +2297,8 @@ if(IFrameSplitOperator.IsNonEmptyArray(aryArgs)){srcParam=aryArgs[0];if(IFrameSp
2291
2297
  case JSCHART_MENU_ID.CMD_DELETE_TRADE_INDEX_ID://删除专家系统(交易指标)
2292
2298
  if(this.CancelInstructionIndex)this.CancelInstructionIndex();break;case JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID://切换K线类型
2293
2299
  if(this.ChangeKLineDrawType&&param!=null)this.ChangeKLineDrawType(param,aryArgs[1],aryArgs[2]);break;case JSCHART_MENU_ID.CMD_CHANGE_PRICE_GAP_ID://缺口提示
2294
- if(this.ChangePriceGap&&IFrameSplitOperator.IsBool(aryArgs[0])){if(aryArgs[0]==false){this.ChangePriceGap({Enable:aryArgs[0]});}else{if(IFrameSplitOperator.IsNumber(aryArgs[1]))this.ChangePriceGap({Enable:aryArgs[0],Count:aryArgs[1]});}}break;case JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID:if(aryArgs[1]===true){if(this.OverlaySymbol&&aryArgs[0])this.OverlaySymbol(aryArgs[0]);}else if(aryArgs[1]===false){if(this.DeleteOverlaySymbol&&aryArgs[0])this.DeleteOverlaySymbol(aryArgs[0]);}break;case JSCHART_MENU_ID.CMD_DELETE_ALL_OVERLAY_SYMBOL_ID:if(this.ClearOverlaySymbol)this.ClearOverlaySymbol();break;case JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID:if(this.ChangeCoordinateType&&aryArgs[0])this.ChangeCoordinateType(aryArgs[0]);break;case JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID:if(aryArgs[0]&&IFrameSplitOperator.IsBool(aryArgs[1])){if(aryArgs[1]==true&&this.AddKLineInfo)this.AddKLineInfo(aryArgs[0],true);else if(aryArgs[1]==false&&this.DeleteKLineInfo)this.DeleteKLineInfo(aryArgs[0]);}break;case JSCHART_MENU_ID.CMD_DELETE_ALL_KLINE_INFO_ID:if(this.ClearKLineInfo)this.ClearKLineInfo();break;case JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID:if(param!=null)this.DragMode=param;break;case JSCHART_MENU_ID.CMD_CHANGE_BG_SPLIT_ID:if(IFrameSplitOperator.IsBool(srcParam)){if(srcParam){this.CreateExtendChart("SessionBreaksPaint",{});this.Draw();}else{var finder=this.GetExtendChartByClassName("SessionBreaksPaint");if(finder){this.DeleteExtendChartByID(finder.Chart.ID);this.Draw();}}}break;case JSCHART_MENU_ID.CMD_SHOW_DRAWTOOL_ID:if(!this.IsShowDrawToolDialog())this.ShowDrawToolDialog();break;case JSCHART_MENU_ID.CMD_SHOW_STOCKCHIP_ID://var option={Name:'筹码分布', ShowType:1, Width:230 };
2300
+ if(this.ChangePriceGap&&IFrameSplitOperator.IsBool(aryArgs[0])){if(aryArgs[0]==false){this.ChangePriceGap({Enable:aryArgs[0]});}else{if(IFrameSplitOperator.IsNumber(aryArgs[1]))this.ChangePriceGap({Enable:aryArgs[0],Count:aryArgs[1]});}}break;case JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID:if(aryArgs[1]===true){if(this.OverlaySymbol&&aryArgs[0])this.OverlaySymbol(aryArgs[0]);}else if(aryArgs[1]===false){if(this.DeleteOverlaySymbol&&aryArgs[0])this.DeleteOverlaySymbol(aryArgs[0]);}break;case JSCHART_MENU_ID.CMD_DELETE_ALL_OVERLAY_SYMBOL_ID:if(this.ClearOverlaySymbol)this.ClearOverlaySymbol();break;case JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID:if(this.ChangeCoordinateType&&aryArgs[0])this.ChangeCoordinateType(aryArgs[0]);break;case JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID:if(aryArgs[0]&&IFrameSplitOperator.IsBool(aryArgs[1])){if(aryArgs[1]==true&&this.AddKLineInfo)this.AddKLineInfo(aryArgs[0],true);else if(aryArgs[1]==false&&this.DeleteKLineInfo)this.DeleteKLineInfo(aryArgs[0]);}break;case JSCHART_MENU_ID.CMD_DELETE_ALL_KLINE_INFO_ID:if(this.ClearKLineInfo)this.ClearKLineInfo();break;case JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID:if(param!=null){this.DragMode=param;if(this.DragMode==1&&IFrameSplitOperator.IsBool(aryArgs[1]))//shift+左键拖动
2301
+ this.KLineDragConfig.EnableShfit=aryArgs[1];}break;case JSCHART_MENU_ID.CMD_CHANGE_BG_SPLIT_ID:if(IFrameSplitOperator.IsBool(srcParam)){if(srcParam){this.CreateExtendChart("SessionBreaksPaint",{});this.Draw();}else{var finder=this.GetExtendChartByClassName("SessionBreaksPaint");if(finder){this.DeleteExtendChartByID(finder.Chart.ID);this.Draw();}}}break;case JSCHART_MENU_ID.CMD_SHOW_DRAWTOOL_ID:if(!this.IsShowDrawToolDialog())this.ShowDrawToolDialog();break;case JSCHART_MENU_ID.CMD_SHOW_STOCKCHIP_ID://var option={Name:'筹码分布', ShowType:1, Width:230 };
2295
2302
  var stockChip=this.GetStockChipChart();if(stockChip)return;if(srcParam){var extendChart=this.CreateExtendChart(srcParam,aryArgs[1]);//创建扩展图形
2296
2303
  this.SetSizeChange(true);this.Draw();}break;case JSCHART_MENU_ID.CMD_HIDE_STOCKCHIP_ID:if(this.DeleteStockChipChart)this.DeleteStockChipChart();break;case JSCHART_MENU_ID.CMD_CHIP_CHART_SETTING_ID:var stockChip=this.GetStockChipChart();if(!stockChip)return;if(param!=null){stockChip.Chart.ShowType=param;this.SetSizeChange(true);this.Draw();}break;case JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID:if(this.ChangeDayCount&&param!=null)this.ChangeDayCount(param);break;case JSCHART_MENU_ID.CMD_SHOW_BEFORE_DATA_ID:if(this.ShowCallAuctionData&&IFrameSplitOperator.IsBool(srcParam))this.ShowCallAuctionData({Left:srcParam,MultiDay:{Left:srcParam}});break;case JSCHART_MENU_ID.CMD_CHANGE_BASELINE_ID:if(this.ChangeBaselineType&&IFrameSplitOperator.IsNumber(param))this.ChangeBaselineType(param);break;case JSCHART_MENU_ID.CMD_SELECTED_ZOOM_ID:if(this.ShowSelectData&&srcParam)this.ShowSelectData(srcParam);break;case JSCHART_MENU_ID.CMD_SELECTED_SUMMARY_ID:this.OnCMDSelectedSummary(srcParam,aryArgs[1]);break;case JSCHART_MENU_ID.CMD_SHOW_INDEX_ID://显示隐藏指标 [0]=windowIndex [1]=0=自动 1=隐藏 2=显示
2297
2304
  if(param==null||!IFrameSplitOperator.IsNumber(aryArgs[1]))return false;var windowIndex=param,showType=aryArgs[1];var script=this.WindowIndex[windowIndex];if(!script)return false;if(showType==1)script.IsShow=false;else if(showType==2)script.IsShow=true;else script.IsShow=!script.IsShow;this.UpdateWindowIndex(windowIndex);break;case JSCHART_MENU_ID.CMD_SHOW_OVERLAY_INDEX_ID://显示隐藏叠加指标 [0]=indexGuid [1]=0=自动 1=隐藏 2=显示
@@ -2340,7 +2347,9 @@ if(setOverlayIndex.size>0){for(var i=0;i<this.Frame.SubFrame.length;++i){var ite
2340
2347
  this.UpdateFrameMaxMin();//调整坐标最大 最小值
2341
2348
  this.Draw();}return true;};this.GetKData=function(){return null;};this.IsEnableRSelectRect=function(event,funcName){if(!this.ChartDragSelectRect)return false;if(!this.ChartDragSelectRect.EnableRButton)return false;if(!event)return false;//两个事件使用不同的变量获取鼠标按键状态
2342
2349
  if(funcName=="DocOnMouseUp"){if(event.button!=2)return false;}else if(funcName=="DocOnMouseMove"){if(event.buttons!=2)return false;}return true;};this.IsEnableLSelectRect=function(event,funcName){if(!this.ChartDragSelectRect)return false;if(!this.ChartDragSelectRect.EnableLButton)return false;if(!event)return false;//两个事件使用不同的变量获取鼠标按键状态
2343
- if(funcName=="DocOnMouseUp"){if(event.button!=0)return false;}else if(funcName=="DocOnMouseMove"){if(event.buttons!=1)return false;}return true;};this.OnMarkRectSelect=function(e){var corssCursor=this.ChartCorssCursor;//十字光标
2350
+ if(funcName=="DocOnMouseUp"){if(event.button!=0)return false;}else if(funcName=="DocOnMouseMove"){if(event.buttons!=1)return false;}return true;};this.GetDragXCoordinateType=function(event,funcName){if(funcName=="DocOnMouseMove"){if(event.buttons==1)return this.EnableXDrag.LButton.Type;//左键
2351
+ else if(event.buttons==2)return this.EnableXDrag.RButton.Type;//右键
2352
+ }return null;};this.OnMarkRectSelect=function(e){var corssCursor=this.ChartCorssCursor;//十字光标
2344
2353
  if(!corssCursor||corssCursor.Status==0)return;if(!IFrameSplitOperator.IsNumber(corssCursor.CursorIndex))return;if(!this.ChartPaint[0]||!this.ChartPaint[0].Data)return;var paint=this.GetRectSelectPaint();if(!paint)return;var kData=this.GetKData();if(!kData||!IFrameSplitOperator.IsNonEmptyArray(kData.Data))return;var cursorIndex=corssCursor.CursorIndex;JSConsole.Chart.Log("[JSChartContainer::OnMarkRectSelect] dataIndex",cursorIndex);cursorIndex=parseInt(cursorIndex.toFixed(0));var index=cursorIndex+kData.DataOffset;if(index>=kData.Data.length)index=kData.Data.length-1;var item=kData.Data[index];JSConsole.Chart.Log("[KLineChartContainer::OnMarkRectSelect] item",item);if(!this.SetRectSelectData(item,index))return;var pointCount=paint.GetPointCount();var pixelTatio=GetDevicePixelRatio();var x=corssCursor.LastPoint.X/pixelTatio;var y=corssCursor.LastPoint.Y/pixelTatio;if(pointCount==1)//第1个位置
2345
2354
  {var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_KEYDOWN_SELECT_RECT_FIRST);if(event&&event.Callback){var data={X:x,Y:y,Item:item,Index:index,RectSelectPaint:paint,//区间选择背景
2346
2355
  e:e};event.Callback(event,data,this);}this.Draw();}else if(pointCount==2){var selectData=paint.GetSelectRectData();if(e){var data={Chart:this,X:x,Y:y,SelectData:selectData,//区间选择的数据
@@ -8217,7 +8226,7 @@ for(var i=0;i<this.ChartInfo.length;++i){var item=this.ChartInfo[i];if(item&&ite
8217
8226
  for(var i=0;i<this.OverlayChartPaint.length;++i){var item=this.OverlayChartPaint[i];if(item&&item.Symbol)aryOverlaySymbol.push(item.Symbol);}var bBGSpit=false,bShowStockChip=false;if(this.GetExtendChartByClassName("SessionBreaksPaint"))bBGSpit=true;if(this.GetStockChipChart())bShowStockChip=true;//筹码
8218
8227
  var stockChipConfig={Name:'StockChip',ShowType:1,Width:230};//var stockChipConfig={Name:'StockChipPhone', Width:150 }; //手机版筹码
8219
8228
  var bShowCorss=false;//十字光标十字线
8220
- var bCorssDrawKLine=false;var bCorssDrawVaildTime=false;var bCorssDrawPoint=false;var bCorssBCClick=false;if(this.ChartCorssCursor){bShowCorss=this.ChartCorssCursor.IsShowCorss;bCorssDrawKLine=this.ChartCorssCursor.IsOnlyDrawKLine&&this.ChartCorssCursor.IsShowClose;bCorssDrawVaildTime=this.ChartCorssCursor.IsFixXLastTime;bCorssDrawPoint=this.ChartCorssCursor.CorssPointConfig.Enable;bCorssBCClick=this.ChartCorssCursor.EnableDBClick;}var bPopMinuteChart=false;if(this.PopMinuteChart)bPopMinuteChart=true;var bRButtonSelectRect=false,bLButtonSelectRect=false;if(this.ChartDragSelectRect){bRButtonSelectRect=this.ChartDragSelectRect.EnableRButton;bLButtonSelectRect=this.ChartDragSelectRect.EnableLButton;}var kItem=null;if(frameID>=0&&option&&IFrameSplitOperator.IsNumber(option.CursorIndex)){var kData=this.GetKData();if(kData&&IFrameSplitOperator.IsNonEmptyArray(kData.Data)){var dataIndex=kData.DataOffset+option.CursorIndex;if(dataIndex>=0&&dataIndex<kData.Data.length)kItem=kData.Data[dataIndex];}}var aryMenu=[{Name:"分析周期",SubMenu:[{Name:"日线",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[0]},Checked:this.Period==0},{Name:"周线",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[1]},Checked:this.Period==1},{Name:"双周线",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[21]},Checked:this.Period==21},{Name:"月线",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[2]},Checked:this.Period==2},{Name:"季线",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[9]},Checked:this.Period==9},{Name:"半年",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[22]},Checked:this.Period==22},{Name:"年线",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[3]},Checked:this.Period==3},{Name:"1分",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[4]},Checked:this.Period==4},{Name:"5分",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[5]},Checked:this.Period==5},{Name:"15分",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[6]},Checked:this.Period==6},{Name:"30分",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[7]},Checked:this.Period==7},{Name:"60分",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[8]},Checked:this.Period==8},{Name:"2小时",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[11]},Checked:this.Period==11},{Name:"4小时",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[12]},Checked:this.Period==12},{Name:"分笔",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[10]},Checked:this.Period==10},{Name:"自定义周期:3分钟",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[20003]},Checked:this.Period==20003},{Name:"自定义周期:35分钟",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[20035]},Checked:this.Period==20035},{Name:"自定义周期:8日",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[40008]},Checked:this.Period==40008}]},{Name:"指标切换",SubMenu:[{Name:"均线",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"均线"]}},{Name:"BOLL",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"BOLL"]}},{Name:"MACD",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"MACD"]}},{Name:"MACD(粗)",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"MACD2"]}},{Name:"KDJ",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"KDJ"]}},{Name:"VOL",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"VOL"]}},{Name:"RSI",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"RSI"]}},{Name:"BRAR",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"BRAR"]}},{Name:"WR",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"WR"]}}]},{Name:"五彩K线",SubMenu:[{Name:"十字星",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_COLOR_INDEX_ID,Args:["五彩K线-十字星"]}},{Name:"早晨之星",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_COLOR_INDEX_ID,Args:["五彩K线-早晨之星"]}},{Name:"垂死十字",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_COLOR_INDEX_ID,Args:["五彩K线-垂死十字"]}},{Name:"三只乌鸦",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_COLOR_INDEX_ID,Args:["五彩K线-三只乌鸦"]}},{Name:"光脚阴线",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_COLOR_INDEX_ID,Args:["五彩K线-光脚阴线"]}},{Name:"黄昏之星",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_COLOR_INDEX_ID,Args:["五彩K线-黄昏之星"]}}]},{Name:"专家系统",SubMenu:[{Name:"BIAS",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_TRADE_INDEX_ID,Args:["交易系统-BIAS"]}},{Name:"CCI",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_TRADE_INDEX_ID,Args:["交易系统-CCI"]}},{Name:"DMI",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_TRADE_INDEX_ID,Args:["交易系统-DMI"]}},{Name:"KD",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_TRADE_INDEX_ID,Args:["交易系统-KD"]}},{Name:"BOLL",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_TRADE_INDEX_ID,Args:["交易系统-BOLL"]}},{Name:"KDJ",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_TRADE_INDEX_ID,Args:["交易系统-KDJ"]}}]},{Name:"信息地雷",SubMenu:[{Name:"公告",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID,Args:["公告",!aryKLineInfo.includes("AnnouncementInfo")]},Checked:aryKLineInfo.includes("AnnouncementInfo")},{Name:"业绩预告",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID,Args:["业绩预告",!aryKLineInfo.includes("PforecastInfo")]},Checked:aryKLineInfo.includes("PforecastInfo")},{Name:"调研",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID,Args:["调研",!aryKLineInfo.includes("ResearchInfo")]},Checked:aryKLineInfo.includes("ResearchInfo")},{Name:"大宗交易",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID,Args:["大宗交易",!aryKLineInfo.includes("BlockTrading")]},Checked:aryKLineInfo.includes("BlockTrading")},{Name:"龙虎榜",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID,Args:["龙虎榜",!aryKLineInfo.includes("TradeDetail")]},Checked:aryKLineInfo.includes("TradeDetail")},{Name:"互动易",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID,Args:["互动易",!aryKLineInfo.includes("InvestorInfo")]},Checked:aryKLineInfo.includes("InvestorInfo")},{Name:JSPopMenu.SEPARATOR_LINE_NAME},{Name:"显示位置",SubMenu:[{Name:"底部",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INFO_POSITION_ID,Args:[1]},Checked:infoPosition===1},{Name:"K线上",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INFO_POSITION_ID,Args:[0]},Checked:infoPosition===0}]}]},{Name:"缺口提示",SubMenu:[{Name:"显示1个缺口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PRICE_GAP_ID,Args:[true,1]},Checked:priceGap.Enable==true&&priceGap.Count==1},{Name:"显示2个缺口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PRICE_GAP_ID,Args:[true,2]},Checked:priceGap.Enable==true&&priceGap.Count==2},{Name:"显示3个缺口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PRICE_GAP_ID,Args:[true,3]},Checked:priceGap.Enable==true&&priceGap.Count==3},{Name:"隐藏缺口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PRICE_GAP_ID,Args:[false]},Checked:priceGap.Enable==false}]},{Name:"叠加品种",SubMenu:[{Name:"上证指数",Data:{ID:JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID,Args:["000001.sh",!aryOverlaySymbol.includes("000001.sh")]},Checked:aryOverlaySymbol.includes("000001.sh")},{Name:"深证成指",Data:{ID:JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID,Args:["399001.sz",!aryOverlaySymbol.includes("399001.sz")]},Checked:aryOverlaySymbol.includes("399001.sz")},{Name:"中小板指",Data:{ID:JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID,Args:["399005.sz",!aryOverlaySymbol.includes("399005.sz")]},Checked:aryOverlaySymbol.includes("399005.sz")},{Name:"创业板指",Data:{ID:JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID,Args:["399006.sz",!aryOverlaySymbol.includes("399006.sz")]},Checked:aryOverlaySymbol.includes("399006.sz")},{Name:"沪深300",Data:{ID:JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID,Args:["000300.sh",!aryOverlaySymbol.includes("000300.sh")]},Checked:aryOverlaySymbol.includes("000300.sh")}]},{Name:"主图线型",SubMenu:[{Name:"K线(空心阳线)",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID,Args:[3]},Checked:klineType==3},{Name:"K线(实心阳线)",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID,Args:[0]},Checked:klineType==0},{Name:"美国线",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID,Args:[2,true,{IsThinAKBar:false}]},Checked:klineType==2&&!bThinAKBar},{Name:"美国线(细)",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID,Args:[2,true,{IsThinAKBar:true}]},Checked:klineType==2&&bThinAKBar},{Name:"收盘线",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID,Args:[1]},Checked:klineType==1},{Name:"收盘面积",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID,Args:[4]},Checked:klineType==4},{Name:"K线(空心阳线阴线)",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID,Args:[6]},Checked:klineType==6},{Name:"Heikin Ashi",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID,Args:[11]},Checked:klineType==11},{Name:"Line Break",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID,Args:[12]},Checked:klineType==12},{Name:"High-low",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID,Args:[13]},Checked:klineType==13},{Name:"HLC Area",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID,Args:[15]},Checked:klineType==15}]},{Name:"坐标类型",SubMenu:[{Name:"反转坐标",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID,Args:[{IsReverse:coordinateType==0}]},Checked:coordinateType==1},{Name:JSPopMenu.SEPARATOR_LINE_NAME},{Name:"普通坐标",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID,Args:[{Type:0}]},Checked:yCoordinateType==0},{Name:"百分比坐标",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID,Args:[{Type:1}]},Checked:yCoordinateType==1},{Name:"对数坐标",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID,Args:[{Type:2}]},Checked:yCoordinateType==2},{Name:"等比坐标",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID,Args:[{Type:3}]},Checked:yCoordinateType==3},{Name:"等分坐标",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID,Args:[{Type:4}]},Checked:yCoordinateType==4},{Name:"黄金分割",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID,Args:[{Type:5}]},Checked:yCoordinateType==5}]},{Name:"指标窗口个数",SubMenu:[{Name:"1个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[2]},Checked:2==windowCount},{Name:"2个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[3]},Checked:3==windowCount},{Name:"3个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[4]},Checked:4==windowCount},{Name:"4个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[5]},Checked:5==windowCount},{Name:"5个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[6]},Checked:6==windowCount}]},{Name:"十字光标",SubMenu:[{Name:"显示",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_CORSS_LINE_ID,Args:[!bShowCorss]},Checked:bShowCorss},{Name:"显示在K线上",Data:{ID:JSCHART_MENU_ID.CMD_CORSS_ON_KLINE_ID,Args:[!bCorssDrawKLine]},Checked:bCorssDrawKLine},{Name:"画在有效X轴上",Data:{ID:JSCHART_MENU_ID.CMD_CORSS_ON_VAILD_TIME_ID,Args:[!bCorssDrawVaildTime]},Checked:bCorssDrawVaildTime},{Name:"画圆点",Data:{ID:JSCHART_MENU_ID.CMD_CORSS_POINT_ID,Args:[!bCorssDrawPoint]},Checked:bCorssDrawPoint},{Name:"双击显示/隐藏",Data:{ID:JSCHART_MENU_ID.CMD_CORSS_DBCLICK_ID,Args:[!bCorssBCClick]},Checked:bCorssBCClick}]},{Name:"其他设置",SubMenu:[{Name:"禁止拖拽",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID,Args:[0]},Checked:0==this.DragMode},{Name:"启动拖拽",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID,Args:[1]},Checked:1==this.DragMode},{Name:"X轴拖动缩放",Data:{ID:JSCHART_MENU_ID.CMD_ENABLE_XDRAG_BOTTOM_ID,Args:[!this.EnableXDrag.Bottom]},Checked:this.EnableXDrag.Bottom},{Name:"左键区间选择",Data:{ID:JSCHART_MENU_ID.CMD_LBUTTON_SELECT_RECT_ID,Args:[!bLButtonSelectRect]},Checked:bLButtonSelectRect},{Name:"右键区间选择",Data:{ID:JSCHART_MENU_ID.CMD_RBUTTON_SELECT_RECT_ID,Args:[!bRButtonSelectRect]},Checked:bRButtonSelectRect},{Name:JSPopMenu.SEPARATOR_LINE_NAME},{Name:"背景分割",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_BG_SPLIT_ID,Args:[!bBGSpit]},Checked:bBGSpit},{Name:"画图工具",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_DRAWTOOL_ID,Args:[]},Checked:this.IsShowDrawToolDialog()},{Name:"移动筹码图",Data:{ID:bShowStockChip?JSCHART_MENU_ID.CMD_HIDE_STOCKCHIP_ID:JSCHART_MENU_ID.CMD_SHOW_STOCKCHIP_ID,Args:[stockChipConfig.Name,stockChipConfig]},Checked:bShowStockChip},{Name:"双击弹分时图",Data:{ID:JSCHART_MENU_ID.CMD_ENABLE_POP_MINUTE_CHART_ID,Args:[!bPopMinuteChart]},Checked:bPopMinuteChart},{Name:JSPopMenu.SEPARATOR_LINE_NAME},{Name:"鼠标形状",SubMenu:[{Name:"默认",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DEFAULTCURSOR_ID,Args:["default"]},Checked:this.DefaultCursor=="default"},{Name:"十字线",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DEFAULTCURSOR_ID,Args:["crosshair"]},Checked:this.DefaultCursor=="crosshair"}]},{Name:"语言设置",SubMenu:[{Name:"中文",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_LANGUAGE_ID,Args:["CN"]},Checked:this.LanguageID==JSCHART_LANGUAGE_ID.LANGUAGE_CHINESE_ID},{Name:"英语",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_LANGUAGE_ID,Args:["EN"]},Checked:this.LanguageID==JSCHART_LANGUAGE_ID.LANGUAGE_ENGLISH_ID},{Name:"繁体",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_LANGUAGE_ID,Args:["TC"]},Checked:this.LanguageID==JSCHART_LANGUAGE_ID.LANGUAGE_TRADITIONAL_CHINESE_ID}]},{Name:"区间选择样式",SubMenu:[{Name:"样式1(默认)",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_RECT_SHOW_MODE_ID,Args:[0]},Checked:0==this.ChartDragSelectRect.ShowMode},{Name:"样式2",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_RECT_SHOW_MODE_ID,Args:[1]},Checked:1==this.ChartDragSelectRect.ShowMode},{Name:"样式3",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_RECT_SHOW_MODE_ID,Args:[2]},Checked:2==this.ChartDragSelectRect.ShowMode}]},{Name:"K线浮动框",SubMenu:[{Name:"禁用",Data:{ID:JSCHART_MENU_ID.CMD_DIALOG_TOOLTIP_ATTRIBUTE,Args:[{Enable:false}]},Checked:!this.DialogTooltip},{Name:"样式1",Data:{ID:JSCHART_MENU_ID.CMD_DIALOG_TOOLTIP_ATTRIBUTE,Args:[{Enable:true,Style:0}]},Checked:this.DialogTooltip&&this.DialogTooltip.Style===0},{Name:"样式2",Data:{ID:JSCHART_MENU_ID.CMD_DIALOG_TOOLTIP_ATTRIBUTE,Args:[{Enable:true,Style:1}]},Checked:this.DialogTooltip&&this.DialogTooltip.Style===1}]},{Name:"K线提示框",SubMenu:[{Name:"启用",Data:{ID:JSCHART_MENU_ID.CMD_KLINE_TOOLTIP_ATTRIBUTE,Args:[{Enable:!this.KLineTooltipConfig.Enable}]},Checked:this.KLineTooltipConfig.Enable},{Name:"键盘左右显示",Data:{ID:JSCHART_MENU_ID.CMD_KLINE_TOOLTIP_ATTRIBUTE,Args:[{EnableKeyDown:!this.KLineTooltipConfig.EnableKeyDown}]},Checked:this.KLineTooltipConfig.EnableKeyDown}]}]}];//复权
8229
+ var bCorssDrawKLine=false;var bCorssDrawVaildTime=false;var bCorssDrawPoint=false;var bCorssBCClick=false;if(this.ChartCorssCursor){bShowCorss=this.ChartCorssCursor.IsShowCorss;bCorssDrawKLine=this.ChartCorssCursor.IsOnlyDrawKLine&&this.ChartCorssCursor.IsShowClose;bCorssDrawVaildTime=this.ChartCorssCursor.IsFixXLastTime;bCorssDrawPoint=this.ChartCorssCursor.CorssPointConfig.Enable;bCorssBCClick=this.ChartCorssCursor.EnableDBClick;}var bPopMinuteChart=false;if(this.PopMinuteChart)bPopMinuteChart=true;var bRButtonSelectRect=false,bLButtonSelectRect=false;if(this.ChartDragSelectRect){bRButtonSelectRect=this.ChartDragSelectRect.EnableRButton;bLButtonSelectRect=this.ChartDragSelectRect.EnableLButton;}var kItem=null;if(frameID>=0&&option&&IFrameSplitOperator.IsNumber(option.CursorIndex)){var kData=this.GetKData();if(kData&&IFrameSplitOperator.IsNonEmptyArray(kData.Data)){var dataIndex=kData.DataOffset+option.CursorIndex;if(dataIndex>=0&&dataIndex<kData.Data.length)kItem=kData.Data[dataIndex];}}var aryMenu=[{Name:"分析周期",SubMenu:[{Name:"日线",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[0]},Checked:this.Period==0},{Name:"周线",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[1]},Checked:this.Period==1},{Name:"双周线",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[21]},Checked:this.Period==21},{Name:"月线",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[2]},Checked:this.Period==2},{Name:"季线",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[9]},Checked:this.Period==9},{Name:"半年",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[22]},Checked:this.Period==22},{Name:"年线",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[3]},Checked:this.Period==3},{Name:"1分",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[4]},Checked:this.Period==4},{Name:"5分",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[5]},Checked:this.Period==5},{Name:"15分",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[6]},Checked:this.Period==6},{Name:"30分",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[7]},Checked:this.Period==7},{Name:"60分",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[8]},Checked:this.Period==8},{Name:"2小时",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[11]},Checked:this.Period==11},{Name:"4小时",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[12]},Checked:this.Period==12},{Name:"分笔",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[10]},Checked:this.Period==10},{Name:"自定义周期:3分钟",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[20003]},Checked:this.Period==20003},{Name:"自定义周期:35分钟",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[20035]},Checked:this.Period==20035},{Name:"自定义周期:8日",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[40008]},Checked:this.Period==40008}]},{Name:"指标切换",SubMenu:[{Name:"均线",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"均线"]}},{Name:"BOLL",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"BOLL"]}},{Name:"MACD",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"MACD"]}},{Name:"MACD(粗)",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"MACD2"]}},{Name:"KDJ",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"KDJ"]}},{Name:"VOL",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"VOL"]}},{Name:"RSI",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"RSI"]}},{Name:"BRAR",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"BRAR"]}},{Name:"WR",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"WR"]}}]},{Name:"五彩K线",SubMenu:[{Name:"十字星",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_COLOR_INDEX_ID,Args:["五彩K线-十字星"]}},{Name:"早晨之星",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_COLOR_INDEX_ID,Args:["五彩K线-早晨之星"]}},{Name:"垂死十字",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_COLOR_INDEX_ID,Args:["五彩K线-垂死十字"]}},{Name:"三只乌鸦",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_COLOR_INDEX_ID,Args:["五彩K线-三只乌鸦"]}},{Name:"光脚阴线",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_COLOR_INDEX_ID,Args:["五彩K线-光脚阴线"]}},{Name:"黄昏之星",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_COLOR_INDEX_ID,Args:["五彩K线-黄昏之星"]}}]},{Name:"专家系统",SubMenu:[{Name:"BIAS",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_TRADE_INDEX_ID,Args:["交易系统-BIAS"]}},{Name:"CCI",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_TRADE_INDEX_ID,Args:["交易系统-CCI"]}},{Name:"DMI",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_TRADE_INDEX_ID,Args:["交易系统-DMI"]}},{Name:"KD",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_TRADE_INDEX_ID,Args:["交易系统-KD"]}},{Name:"BOLL",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_TRADE_INDEX_ID,Args:["交易系统-BOLL"]}},{Name:"KDJ",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_TRADE_INDEX_ID,Args:["交易系统-KDJ"]}}]},{Name:"信息地雷",SubMenu:[{Name:"公告",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID,Args:["公告",!aryKLineInfo.includes("AnnouncementInfo")]},Checked:aryKLineInfo.includes("AnnouncementInfo")},{Name:"业绩预告",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID,Args:["业绩预告",!aryKLineInfo.includes("PforecastInfo")]},Checked:aryKLineInfo.includes("PforecastInfo")},{Name:"调研",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID,Args:["调研",!aryKLineInfo.includes("ResearchInfo")]},Checked:aryKLineInfo.includes("ResearchInfo")},{Name:"大宗交易",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID,Args:["大宗交易",!aryKLineInfo.includes("BlockTrading")]},Checked:aryKLineInfo.includes("BlockTrading")},{Name:"龙虎榜",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID,Args:["龙虎榜",!aryKLineInfo.includes("TradeDetail")]},Checked:aryKLineInfo.includes("TradeDetail")},{Name:"互动易",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID,Args:["互动易",!aryKLineInfo.includes("InvestorInfo")]},Checked:aryKLineInfo.includes("InvestorInfo")},{Name:JSPopMenu.SEPARATOR_LINE_NAME},{Name:"显示位置",SubMenu:[{Name:"底部",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INFO_POSITION_ID,Args:[1]},Checked:infoPosition===1},{Name:"K线上",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INFO_POSITION_ID,Args:[0]},Checked:infoPosition===0}]}]},{Name:"缺口提示",SubMenu:[{Name:"显示1个缺口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PRICE_GAP_ID,Args:[true,1]},Checked:priceGap.Enable==true&&priceGap.Count==1},{Name:"显示2个缺口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PRICE_GAP_ID,Args:[true,2]},Checked:priceGap.Enable==true&&priceGap.Count==2},{Name:"显示3个缺口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PRICE_GAP_ID,Args:[true,3]},Checked:priceGap.Enable==true&&priceGap.Count==3},{Name:"隐藏缺口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PRICE_GAP_ID,Args:[false]},Checked:priceGap.Enable==false}]},{Name:"叠加品种",SubMenu:[{Name:"上证指数",Data:{ID:JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID,Args:["000001.sh",!aryOverlaySymbol.includes("000001.sh")]},Checked:aryOverlaySymbol.includes("000001.sh")},{Name:"深证成指",Data:{ID:JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID,Args:["399001.sz",!aryOverlaySymbol.includes("399001.sz")]},Checked:aryOverlaySymbol.includes("399001.sz")},{Name:"中小板指",Data:{ID:JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID,Args:["399005.sz",!aryOverlaySymbol.includes("399005.sz")]},Checked:aryOverlaySymbol.includes("399005.sz")},{Name:"创业板指",Data:{ID:JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID,Args:["399006.sz",!aryOverlaySymbol.includes("399006.sz")]},Checked:aryOverlaySymbol.includes("399006.sz")},{Name:"沪深300",Data:{ID:JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID,Args:["000300.sh",!aryOverlaySymbol.includes("000300.sh")]},Checked:aryOverlaySymbol.includes("000300.sh")}]},{Name:"主图线型",SubMenu:[{Name:"K线(空心阳线)",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID,Args:[3]},Checked:klineType==3},{Name:"K线(实心阳线)",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID,Args:[0]},Checked:klineType==0},{Name:"美国线",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID,Args:[2,true,{IsThinAKBar:false}]},Checked:klineType==2&&!bThinAKBar},{Name:"美国线(细)",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID,Args:[2,true,{IsThinAKBar:true}]},Checked:klineType==2&&bThinAKBar},{Name:"收盘线",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID,Args:[1]},Checked:klineType==1},{Name:"收盘面积",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID,Args:[4]},Checked:klineType==4},{Name:"K线(空心阳线阴线)",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID,Args:[6]},Checked:klineType==6},{Name:"Heikin Ashi",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID,Args:[11]},Checked:klineType==11},{Name:"Line Break",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID,Args:[12]},Checked:klineType==12},{Name:"High-low",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID,Args:[13]},Checked:klineType==13},{Name:"HLC Area",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID,Args:[15]},Checked:klineType==15}]},{Name:"坐标类型",SubMenu:[{Name:"反转坐标",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID,Args:[{IsReverse:coordinateType==0}]},Checked:coordinateType==1},{Name:JSPopMenu.SEPARATOR_LINE_NAME},{Name:"普通坐标",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID,Args:[{Type:0}]},Checked:yCoordinateType==0},{Name:"百分比坐标",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID,Args:[{Type:1}]},Checked:yCoordinateType==1},{Name:"对数坐标",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID,Args:[{Type:2}]},Checked:yCoordinateType==2},{Name:"等比坐标",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID,Args:[{Type:3}]},Checked:yCoordinateType==3},{Name:"等分坐标",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID,Args:[{Type:4}]},Checked:yCoordinateType==4},{Name:"黄金分割",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID,Args:[{Type:5}]},Checked:yCoordinateType==5}]},{Name:"指标窗口个数",SubMenu:[{Name:"1个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[2]},Checked:2==windowCount},{Name:"2个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[3]},Checked:3==windowCount},{Name:"3个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[4]},Checked:4==windowCount},{Name:"4个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[5]},Checked:5==windowCount},{Name:"5个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[6]},Checked:6==windowCount}]},{Name:"十字光标",SubMenu:[{Name:"显示",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_CORSS_LINE_ID,Args:[!bShowCorss]},Checked:bShowCorss},{Name:"显示在K线上",Data:{ID:JSCHART_MENU_ID.CMD_CORSS_ON_KLINE_ID,Args:[!bCorssDrawKLine]},Checked:bCorssDrawKLine},{Name:"画在有效X轴上",Data:{ID:JSCHART_MENU_ID.CMD_CORSS_ON_VAILD_TIME_ID,Args:[!bCorssDrawVaildTime]},Checked:bCorssDrawVaildTime},{Name:"画圆点",Data:{ID:JSCHART_MENU_ID.CMD_CORSS_POINT_ID,Args:[!bCorssDrawPoint]},Checked:bCorssDrawPoint},{Name:"双击显示/隐藏",Data:{ID:JSCHART_MENU_ID.CMD_CORSS_DBCLICK_ID,Args:[!bCorssBCClick]},Checked:bCorssBCClick}]},{Name:"其他设置",SubMenu:[{Name:"禁止拖拽",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID,Args:[0]},Checked:0==this.DragMode},{Name:"启动右键拖拽",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID,Args:[1,false]},Checked:1==(this.DragMode&&!this.KLineDragConfig.EnableShfit)},{Name:"启动Shift+右键拖拽",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID,Args:[1,true]},Checked:1==(this.DragMode&&this.KLineDragConfig.EnableShfit)},{Name:"X轴拖动缩放",Data:{ID:JSCHART_MENU_ID.CMD_ENABLE_XDRAG_BOTTOM_ID,Args:[!this.EnableXDrag.Bottom]},Checked:this.EnableXDrag.Bottom},{Name:"左键区间选择",Data:{ID:JSCHART_MENU_ID.CMD_LBUTTON_SELECT_RECT_ID,Args:[!bLButtonSelectRect]},Checked:bLButtonSelectRect},{Name:"右键区间选择",Data:{ID:JSCHART_MENU_ID.CMD_RBUTTON_SELECT_RECT_ID,Args:[!bRButtonSelectRect]},Checked:bRButtonSelectRect},{Name:JSPopMenu.SEPARATOR_LINE_NAME},{Name:"背景分割",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_BG_SPLIT_ID,Args:[!bBGSpit]},Checked:bBGSpit},{Name:"画图工具",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_DRAWTOOL_ID,Args:[]},Checked:this.IsShowDrawToolDialog()},{Name:"移动筹码图",Data:{ID:bShowStockChip?JSCHART_MENU_ID.CMD_HIDE_STOCKCHIP_ID:JSCHART_MENU_ID.CMD_SHOW_STOCKCHIP_ID,Args:[stockChipConfig.Name,stockChipConfig]},Checked:bShowStockChip},{Name:"双击弹分时图",Data:{ID:JSCHART_MENU_ID.CMD_ENABLE_POP_MINUTE_CHART_ID,Args:[!bPopMinuteChart]},Checked:bPopMinuteChart},{Name:JSPopMenu.SEPARATOR_LINE_NAME},{Name:"鼠标形状",SubMenu:[{Name:"默认",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DEFAULTCURSOR_ID,Args:["default"]},Checked:this.DefaultCursor=="default"},{Name:"十字线",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DEFAULTCURSOR_ID,Args:["crosshair"]},Checked:this.DefaultCursor=="crosshair"}]},{Name:"语言设置",SubMenu:[{Name:"中文",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_LANGUAGE_ID,Args:["CN"]},Checked:this.LanguageID==JSCHART_LANGUAGE_ID.LANGUAGE_CHINESE_ID},{Name:"英语",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_LANGUAGE_ID,Args:["EN"]},Checked:this.LanguageID==JSCHART_LANGUAGE_ID.LANGUAGE_ENGLISH_ID},{Name:"繁体",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_LANGUAGE_ID,Args:["TC"]},Checked:this.LanguageID==JSCHART_LANGUAGE_ID.LANGUAGE_TRADITIONAL_CHINESE_ID}]},{Name:"区间选择样式",SubMenu:[{Name:"样式1(默认)",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_RECT_SHOW_MODE_ID,Args:[0]},Checked:0==this.ChartDragSelectRect.ShowMode},{Name:"样式2",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_RECT_SHOW_MODE_ID,Args:[1]},Checked:1==this.ChartDragSelectRect.ShowMode},{Name:"样式3",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_RECT_SHOW_MODE_ID,Args:[2]},Checked:2==this.ChartDragSelectRect.ShowMode}]},{Name:"K线浮动框",SubMenu:[{Name:"禁用",Data:{ID:JSCHART_MENU_ID.CMD_DIALOG_TOOLTIP_ATTRIBUTE,Args:[{Enable:false}]},Checked:!this.DialogTooltip},{Name:"样式1",Data:{ID:JSCHART_MENU_ID.CMD_DIALOG_TOOLTIP_ATTRIBUTE,Args:[{Enable:true,Style:0}]},Checked:this.DialogTooltip&&this.DialogTooltip.Style===0},{Name:"样式2",Data:{ID:JSCHART_MENU_ID.CMD_DIALOG_TOOLTIP_ATTRIBUTE,Args:[{Enable:true,Style:1}]},Checked:this.DialogTooltip&&this.DialogTooltip.Style===1}]},{Name:"K线提示框",SubMenu:[{Name:"启用",Data:{ID:JSCHART_MENU_ID.CMD_KLINE_TOOLTIP_ATTRIBUTE,Args:[{Enable:!this.KLineTooltipConfig.Enable}]},Checked:this.KLineTooltipConfig.Enable},{Name:"键盘左右显示",Data:{ID:JSCHART_MENU_ID.CMD_KLINE_TOOLTIP_ATTRIBUTE,Args:[{EnableKeyDown:!this.KLineTooltipConfig.EnableKeyDown}]},Checked:this.KLineTooltipConfig.EnableKeyDown}]}]}];//复权
8221
8230
  if(!MARKET_SUFFIX_NAME.IsSHSZIndex(this.Symbol)&&!MARKET_SUFFIX_NAME.IsBIT(this.Symbol)){var rightMenu={Name:"复权处理",SubMenu:[{Name:"不复权",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_RIGHT_ID,Args:[0]},Checked:0==this.Right},{Name:"前复权",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_RIGHT_ID,Args:[1]},Checked:1==this.Right},{Name:"后复权",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_RIGHT_ID,Args:[2]},Checked:2==this.Right}]};aryMenu.splice(1,0,rightMenu);}//删除菜单
8222
8231
  for(var i=0;i<aryMenu.length;++i){var item=aryMenu[i];if(item.Name=="五彩K线"){if(this.ColorIndex){item.SubMenu.push({Name:JSPopMenu.SEPARATOR_LINE_NAME});item.SubMenu.push({Name:"删除五彩K线",Data:{ID:JSCHART_MENU_ID.CMD_DELETE_COLOR_INDEX_ID}});}}else if(item.Name=="专家系统"){if(this.TradeIndex){item.SubMenu.push({Name:JSPopMenu.SEPARATOR_LINE_NAME});item.SubMenu.push({Name:"删除专家系统",Data:{ID:JSCHART_MENU_ID.CMD_DELETE_TRADE_INDEX_ID}});}}else if(item.Name=="叠加品种"){for(var j=0;j<item.SubMenu.length;++j){if(item.SubMenu[j].Checked){item.SubMenu.push({Name:JSPopMenu.SEPARATOR_LINE_NAME});item.SubMenu.push({Name:"取消叠加",Data:{ID:JSCHART_MENU_ID.CMD_DELETE_ALL_OVERLAY_SYMBOL_ID}});break;}}}else if(item.Name=="信息地雷"){for(var j=0;j<item.SubMenu.length;++j){if(item.SubMenu[j].Checked){item.SubMenu.push({Name:JSPopMenu.SEPARATOR_LINE_NAME});item.SubMenu.push({Name:"删除所有",Data:{ID:JSCHART_MENU_ID.CMD_DELETE_ALL_KLINE_INFO_ID}});break;}}}else if(item.Name=="十字光标"){if(kItem){var bLocked=this.IsLockCorssCursor();if(bLocked)item.SubMenu.push({Name:"锁十字光标",Data:{ID:JSCHART_MENU_ID.CMD_UNLOCK_CROSSCURSOR},Checked:bLocked});else item.SubMenu.push({Name:"锁十字光标",Data:{ID:JSCHART_MENU_ID.CMD_LOCK_CROSSCURSOR,Args:[{KItem:{Date:kItem.Date,Time:kItem.Time},Draw:true}]},Checked:bLocked});}}}return aryMenu;};this.PopupSelectRectMenuV2=function(data,e){var _this27=this;var aryMenu=[{Name:"区间统计",Data:{ID:JSCHART_MENU_ID.CMD_SELECTED_SUMMARY_ID,Args:[e,data.SelectData]}},{Name:"区间放大",Data:{ID:JSCHART_MENU_ID.CMD_SELECTED_ZOOM_ID,Args:[data.SelectData]}}];var menuData={Menu:aryMenu,Position:JSPopMenu.POSITION_ID.RIGHT_MENU_ID};menuData.ClickCallback=function(data){_this27.OnClickRightMenu(data);};var x=data.X,y=data.Y;this.PopupMenuByRClick(menuData,x,y);};//重新加载画图工具(切换股票|周期)
8223
8232
  this.ReloadChartDrawPicture=function(){this.ChartDrawPicture=[];if(this.SelectChartDrawPicture)this.SelectChartDrawPicture.IsSelected=false;this.SelectChartDrawPicture=null;this.CurrentChartDrawPicture=null;if(this.ChartDrawStorage){this.ChartDrawStorageCache=this.ChartDrawStorage.GetDrawData({Symbol:this.Symbol,Period:this.Period});var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_LOAD_DRAWPICTURE);if(event&&event.Callback){var sendData={Symbol:this.Symbol,Period:this.Period,DrawStorage:this.ChartDrawStorage,ChartDrawStorageCache:this.ChartDrawStorageCache};event.Callback(event,sendData,this);}}};this.CreateChartDrawPictureByStorage=function()//把缓存(this.ChartDrawStorageCache) 画图工具创建出来
@@ -8568,7 +8577,7 @@ var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DRAG_SELECT_RECT_MOUSEUP);if
8568
8577
  RectSelectPaint:paint,//区间选择背景
8569
8578
  IsShowDialog:false};event.Callback(event,data,this);isShowDialog=data.IsShowDialog;}if(isShowDialog){var data={Chart:this,X:x,Y:y,SelectData:selectData,//区间选择的数据
8570
8579
  RectSelectPaint:paint//区间选择背景
8571
- };e.data=data;this.UpdateSelectRectDialog(e);}};this.UpdateSelectRect=function(start,end){if(!this.SourceData||!this.SourceData.Data)return;var paint=this.GetRectSelectPaint();if(!paint)return;var data=this.SourceData;if(!data||!IFrameSplitOperator.IsNonEmptyArray(data.Data))return;var count=data.Data.length;var startItem=data.Data[start];if(end>=count)end=count-1;var endItem=data.Data[end];if(!startItem||!endItem)return;JSConsole.Chart.Log('[MinuteChartContainer::UpdateSelectRect]',startItem,endItem);paint.SetPoint(startItem,{Index:0});paint.SetPoint(endItem,{Index:1});this.Draw();};this.MoveRectSelectPoint=function(obj){var paint=this.GetRectSelectPaint();if(!paint)return false;if(!this.SourceData||!this.SourceData.Data)return false;var kData=this.SourceData;if(!this.Frame.SubFrame[0])return false;var subFrame=this.Frame.SubFrame[0].Frame;if(!subFrame)false;var pixelTatio=GetDevicePixelRatio();var x=(obj.X-uielement.getBoundingClientRect().left)*pixelTatio;var index=subFrame.GetXData(x);index=parseInt(index.toFixed(0));var dataIndex=index+kData.DataOffset;if(dataIndex>=kData.Data.length)dataIndex=kData.Data.length-1;var item=kData.Data[dataIndex];JSConsole.Chart.Log("[MinuteChartContainer::MoveRectSelectPoint] point, item",obj.PointIndex,item);if(!paint.SetPoint(item,{Index:obj.PointIndex}))return false;var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DRAG_SELECT_RECT);if(event){var selectData=paint.GetSelectRectData();var data={X:obj.X,Y:obj.Y,SelectData:selectData,RectSelectPaint:paint};event.Callback(event,data,this);}if(this.IsShowSelectRectDialog())//区间统计
8580
+ };e.data=data;this.UpdateSelectRectDialog(e);}};this.UpdateSelectRect=function(start,end){if(!this.SourceData||!this.SourceData.Data)return;var paint=this.GetRectSelectPaint();if(!paint)return;var data=this.SourceData;if(!data||!IFrameSplitOperator.IsNonEmptyArray(data.Data))return;var count=data.Data.length;var startItem=data.Data[start];if(end>=count)end=count-1;var endItem=data.Data[end];if(!startItem||!endItem)return;JSConsole.Chart.Log('[MinuteChartContainer::UpdateSelectRect]',startItem,endItem);paint.SetPoint(startItem,{Index:0,DataIndex:start});paint.SetPoint(endItem,{Index:1,DataIndex:end});this.Draw();};this.MoveRectSelectPoint=function(obj){var paint=this.GetRectSelectPaint();if(!paint)return false;if(!this.SourceData||!this.SourceData.Data)return false;var kData=this.SourceData;if(!this.Frame.SubFrame[0])return false;var subFrame=this.Frame.SubFrame[0].Frame;if(!subFrame)false;var pixelTatio=GetDevicePixelRatio();var x=(obj.X-uielement.getBoundingClientRect().left)*pixelTatio;var index=subFrame.GetXData(x);index=parseInt(index.toFixed(0));var dataIndex=index+kData.DataOffset;if(dataIndex>=kData.Data.length)dataIndex=kData.Data.length-1;var item=kData.Data[dataIndex];JSConsole.Chart.Log("[MinuteChartContainer::MoveRectSelectPoint] point, item",obj.PointIndex,item);if(!paint.SetPoint(item,{Index:obj.PointIndex,DataIndex:dataIndex}))return false;var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DRAG_SELECT_RECT);if(event){var selectData=paint.GetSelectRectData();var data={X:obj.X,Y:obj.Y,SelectData:selectData,RectSelectPaint:paint};event.Callback(event,data,this);}if(this.IsShowSelectRectDialog())//区间统计
8572
8581
  {var selectData=paint.GetSelectRectData();var data={X:obj.X,Y:obj.Y,SelectData:selectData,RectSelectPaint:paint};var e={data:data};this.DrawSelectRectDialog(e);}return true;};this.GetLastCursorIndex=function(obj){if(obj.DataType==1){for(var i=obj.Data.length-1;i>=0;--i){var item=obj.Data[i];if(!item||!item.DayItem||!item.DayItem.Data)continue;obj.IndexData.DayIndex=0;obj.IndexData.DataIndex=item.DayItem.Data.length-1;obj.IndexData.Type=item.Type;return;}}else if(obj.DataType==2){for(var i=obj.Data.length-1;i>=0;--i){var dayItem=obj.Data[i];for(var j=dayItem.length-1;j>=0;--j){var item=dayItem[j];if(!item||!item.DayItem||!item.DayItem.Data)continue;obj.IndexData.DayIndex=i;obj.IndexData.DataIndex=item.DayItem.Data.length-1;obj.IndexData.Type=item.Type;return;}}}};this.GetFirstCursorIndex=function(obj){if(obj.DataType==1){for(var i=0;i<obj.Data.length;++i){var item=obj.Data[i];if(!item||!item.DayItem||!item.DayItem.Data)continue;obj.IndexData.DayIndex=0;obj.IndexData.DataIndex=0;obj.IndexData.Type=item.Type;return;}}else if(obj.DataType==2){for(var i=0;i<obj.Data.length;++i){var dayItem=obj.Data[i];for(var j=0;j<dayItem.length;++j){var item=dayItem[j];if(!item||!item.DayItem||!item.DayItem.Data)continue;obj.IndexData.DayIndex=i;obj.IndexData.DataIndex=0;obj.IndexData.Type=item.Type;return;}}}};//获取单日 盘后集合竞价数据
8573
8582
  this.GetAfterCloseData=function(){var dayItem=null;if(this.AfterCloseData&&this.IsShowAfterData)dayItem=this.AfterCloseData;return dayItem;};//获取单日 盘前集合竞价数据
8574
8583
  this.GetBeforeOpenData=function(){var dayItem=null;if(this.BeforeOpenData&&this.IsShowBeforeData)dayItem=this.BeforeOpenData;return dayItem;};this.MoveCorssCursorIndex=function(option){if(!this.EnableNewIndex)return false;if(!this.Frame.SubFrame[0]||!this.Frame.SubFrame[0].Frame)return false;var frame=this.Frame.SubFrame[0].Frame;if(this.CorssCursorIndex.Type==1||this.CorssCursorIndex.Type==2||this.CorssCursorIndex.Type==3||this.CorssCursorIndex.Type==-1){var aryData=[];var dayItem=this.GetBeforeOpenData();aryData.push({DayItem:dayItem,Type:2});var dayItem=null;if(this.SourceData)dayItem=this.SourceData;aryData.push({DayItem:dayItem,Type:1});var dayItem=this.GetAfterCloseData();;aryData.push({DayItem:dayItem,Type:3});var obj={DataType:1,Data:aryData,IndexData:this.CorssCursorIndex,Point:{X:null,Y:null}};var step=1;if(option.IsMoveLeft){if(this.CorssCursorIndex.DayIndex<0&&this.CorssCursorIndex.DataIndex<0){this.GetLastCursorIndex(obj);step=0;}if(frame.MoveXIndexLeft(step,obj)){this.LastPoint.X=obj.Point.X;this.LastPoint.Y=obj.Point.Y;if(this.CorssCursorIndex.Type==1)this.CursorIndex=this.CorssCursorIndex.CursorIndex;var option={ParentFunction:'MoveCorssCursorIndex',Point:{X:obj.Point.X,Y:obj.Point.Y},IsPhone:false,ClientPos:this.CorssCursorIndex.Type};this.DrawDynamicInfo(option);}}else{if(this.CorssCursorIndex.DayIndex<0&&this.CorssCursorIndex.DataIndex<0){this.GetFirstCursorIndex(obj);step=0;}if(frame.MoveXIndexRight(step,obj)){this.LastPoint.X=obj.Point.X;this.LastPoint.Y=obj.Point.Y;if(this.CorssCursorIndex.Type==1)this.CursorIndex=this.CorssCursorIndex.CursorIndex;var option={ParentFunction:'MoveCorssCursorIndex',Point:{X:obj.Point.X,Y:obj.Point.Y},IsPhone:false,ClientPos:this.CorssCursorIndex.Type};this.DrawDynamicInfo(option);}}}else if(this.CorssCursorIndex.Type==10||this.CorssCursorIndex.Type==20||this.CorssCursorIndex.Type==30||this.CorssCursorIndex.Type==-2){var aryData=[];var offset=0,showDayCount=this.DayData.length;if(this.DayOffset){if(IFrameSplitOperator.IsNumber(this.DayOffset.Offset))offset=this.DayOffset.Offset;if(IFrameSplitOperator.IsNumber(this.DayOffset.ShowDayCount))showDayCount=this.DayOffset.ShowDayCount;}for(var i=offset,j=0;i<this.DayData.length&&j<showDayCount;++i,++j){var item=[];var dayItem=null;if(this.MultiDayBeforeOpenData&&this.IsShowMultiDayBeforeData)dayItem=this.MultiDayBeforeOpenData[i];item.push({DayItem:dayItem,Type:20});//倒序排的
@@ -12937,7 +12946,7 @@ if(option.EventCallback){for(var i=0;i<option.EventCallback.length;++i){var item
12937
12946
  chart.Frame.ChartBorder.Left*=pixelTatio;chart.Frame.ChartBorder.Right*=pixelTatio;chart.Frame.ChartBorder.Top*=pixelTatio;chart.Frame.ChartBorder.Bottom*=pixelTatio;};this.CreateResizeListener=function(){var _this53=this;this.ResizeListener=new ResizeObserver(function(entries){_this53.OnDivResize(entries);});this.ResizeListener.observe(this.DivElement);};this.OnDivResize=function(entries){JSConsole.Chart.Log("[JSReportChart::OnDivResize] entries=",entries);this.OnSize();};/////////////////////////////////////////////////////////////////////////////
12938
12947
  //对外接口
12939
12948
  //切换股票代码接口
12940
- this.ChangeSymbol=function(symbol,option){if(this.JSChartContainer)this.JSChartContainer.ChangeSymbol(symbol,option);};this.SetColumn=function(aryColumn,option){if(this.JSChartContainer)this.JSChartContainer.SetColumn(aryColumn,option);};this.SetSelectedRow=function(option){if(this.JSChartContainer)this.JSChartContainer.SetSelectedRow(option);};this.EnableFilter=function(bEnable,option)//启动|关闭筛选
12949
+ this.ChangeSymbol=function(symbol,option){if(this.JSChartContainer)this.JSChartContainer.ChangeSymbol(symbol,option);};this.SetColumn=function(aryColumn,option){if(this.JSChartContainer)this.JSChartContainer.SetColumn(aryColumn,option);};this.SetSelectedRow=function(option){if(this.JSChartContainer)this.JSChartContainer.SetSelectedRow(option);};this.DeleteSymbol=function(arySymbol,option){if(this.JSChartContainer)this.JSChartContainer.DeleteSymbol(arySymbol,option);};this.EnableFilter=function(bEnable,option)//启动|关闭筛选
12941
12950
  {if(this.JSChartContainer)this.JSChartContainer.EnableFilter(bEnable,option);};//事件回调
12942
12951
  this.AddEventCallback=function(obj){if(this.JSChartContainer&&typeof this.JSChartContainer.AddEventCallback=='function'){JSConsole.Chart.Log('[JSReportChart:AddEventCallback] obj=',obj);this.JSChartContainer.AddEventCallback(obj);}};//重新加载配置
12943
12952
  this.ReloadResource=function(option){if(this.JSChartContainer&&typeof this.JSChartContainer.ReloadResource=='function'){JSConsole.Chart.Log('[JSReportChart:ReloadResource] ');this.JSChartContainer.ReloadResource(option);}};this.ChartDestroy=function(){if(this.JSChartContainer&&typeof this.JSChartContainer.ChartDestroy=='function'){this.JSChartContainer.ChartDestroy();}};this.Draw=function(){if(this.JSChartContainer&&typeof this.JSChartContainer.Draw=='function'){JSConsole.Chart.Log('[JSReportChart:Draw] ');this.JSChartContainer.Draw();}};}JSReportChart.Init=function(divElement){var jsChartControl=new JSReportChart(divElement);jsChartControl.OnSize();return jsChartControl;};//自定义风格
@@ -13076,7 +13085,8 @@ var self=this;if(this.NetworkFilter){var obj={Name:'JSReportChartContainer::Requ
13076
13085
  Explain:'板块成分数据',Request:{Data:{symbol:this.Symbol}},Self:this,PreventDefault:false};if(this.SortInfo.Field>=0&&this.SortInfo.Sort>0){var reportChart=this.GetReportChart();if(reportChart){var column=reportChart.Column[this.SortInfo.Field];obj.Sort={Column:column,Field:this.SortInfo.Field,Sort:this.SortInfo.Sort};}}this.NetworkFilter(obj,function(data){self.ChartSplashPaint.EnableSplash(false);self.RecvMemberListData(data);});if(obj.PreventDefault==true)return;//已被上层替换,不调用默认的网络请求
13077
13086
  }//throw { Name:'JSReportChartContainer::RequestMemberListData', Error:'(板块成分数据)不提供内置测试数据' };
13078
13087
  };this.RecvMemberListData=function(recvData){this.ClearData();if(IFrameSplitOperator.IsNonEmptyArray(recvData.data)){for(var i=0;i<recvData.data.length;++i){this.Data.Data.push(recvData.data[i]);this.SourceData.Data.push(recvData.data[i]);}}if(recvData.Virtual)//虚拟表设置
13079
- {var item=recvData.Virtual;if(IFrameSplitOperator.IsNumber(item.Count))this.Data.Virtual.Count=item.Count;}this.Draw();this.UpdateStockData();};this.AutoUpdateEvent=function(bStart,explain)//自定更新事件, 是给websocket使用
13088
+ {var item=recvData.Virtual;if(IFrameSplitOperator.IsNumber(item.Count))this.Data.Virtual.Count=item.Count;}this.Draw();this.UpdateStockData();};//删除股票
13089
+ this.DeleteSymbol=function(arySymbol,option){if(!IFrameSplitOperator.IsNonEmptyArray(arySymbol))return false;var setSymbol=new _set2.default(arySymbol);var bFinder=false;if(IFrameSplitOperator.IsNonEmptyArray(this.SourceData.Data)){var aryData=[];for(var i=0;i<this.SourceData.Data.length;++i){var item=this.SourceData.Data[i];if(setSymbol.has(item)){bFinder=true;continue;}aryData.push(item);}if(bFinder)this.SourceData.Data=aryData;}if(IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)){var aryData=[];for(var i=0;i<this.Data.Data.length;++i){var item=this.Data.Data[i];if(setSymbol.has(item)){bFinder=true;continue;}aryData.push(item);}if(bFinder)this.Data.Data=aryData;}if(!bFinder)return false;this.Draw();this.UpdateStockData();return true;};this.AutoUpdateEvent=function(bStart,explain)//自定更新事件, 是给websocket使用
13080
13090
  {var eventID=bStart?JSCHART_EVENT_ID.RECV_START_AUTOUPDATE:JSCHART_EVENT_ID.RECV_STOP_AUTOUPDATE;if(!this.mapEvent.has(eventID))return;var self=this;var event=this.mapEvent.get(eventID);var data={Stock:{Symbol:this.Symbol,Name:this.Name,DayCount:this.DayCount},Explain:explain};if(bStart){data.Callback=function(data)//数据到达更新回调
13081
13091
  {self.RecvDealUpdateData(data);};}event.Callback(event,data,this);};//下载码表
13082
13092
  this.RequestStockListData=function(option){this.ChartSplashPaint.SetTitle(this.SplashTitle.StockList);this.ChartSplashPaint.EnableSplash(true);this.Draw();var self=this;if(this.NetworkFilter){var obj={Name:'JSReportChartContainer::RequestStockListData',//类名::
@@ -14834,7 +14844,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
14834
14844
  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);};}/********************************************************************************
14835
14845
  * 版本信息输出
14836
14846
  *
14837
- */var HQCHART_VERSION="1.1.14592";function PrintHQChartVersion(){var logo='\n\n*************************************************************************************************************************************************************************** \n* \n* :%@@- \n* :@@@@- \n* =@@@@ :#@@@ .:+#@@@#=: :=*@@@@@@#+-. *@@@@. \n* :@@@@@ .@@@@@ .#@@@@@@@@@@@- +@@@@@@@@@@@@@+ @@@@@ -%@@* \n* +@@@@% #@@@@# *@@@@@@@@@@@@@@%. =@@@@@@@@@@@@@@@- @@@@@ -@@@@+ \n* %@@@@* @@@@@+ .%@@@@@@@@@@@@@@@@%: #@@@@@@@@@@@@@@@% @@@@# *@@@@= \n* @@@@@= @@@@@- .%@@@@@@@*++*%@@@@@@% .%@@@@@@@%*+==+**= -@@@@+ #@@@@- \n* @@@@@. @@@@@. #@@@@@%= =@@@@@@* %@@@@@@#: *@@@@- :::. .-+*###+: ::: .+##+: -%%@@@@@%%%% \n* .@@@@@ .@@@@@. +@@@@@% .@@@@@@ *@@@@@@: %@@@@: +@@@@@%. :%@@@@@@@@@@: *@@@ :@@@@@* @@@@@@@@@@@@ \n* :@@@@@ :@@@@@ @@@@@% :@@@@@+ @@@@@@: %@@@@-@@@@@@@@@. @@@@@@@@@@@@@. :@@@%-@@@@@@.:@@@@@@@@@@@# \n* -@@@@% -@@@@@ =@@@@@. %@@@@% %@@@@@- %@@@@@@@@@@@@@@* %@@@@@@@@@@@@+ -@@@@@@@@@@# -@@@@@@@@@@@. \n* +@@@@%=========#@@@@% @@@@@# :@@@@@ .@@@@@% @@@@@@@@%@@@@@@@ -%+:. .#@@@@* +@@@@@@@%%@. .::+@@@@#:: \n* #@@@@@@@@@@@@@@@@@@@# .@@@@@ .@@@@@ :@@@@@. @@@@@@#. #@@@@@. -@@@@* #@@@@@@: *@@@@+ \n* %@@@@@@@@@@@@@@@@@@@+ :@@@@@ .@@@@@ -@@@@@ @@@@@+ @@@@@. :@@@@* @@@@@% #@@@@- \n* @@@@@@@@@@@@@@@@@@@@: :@@@@% :@@@@@ +@@@@% -@@@@+ @@@@@ -@@@@+ @@@@@. @@@@@. \n* .@@@@@@@@@@@@@@@@@@@@ :@@@@% -@@@@% *@@@@% #@@@@. @@@@@ .=*#%%%@@@@@= :@@@@# @@@@@. \n* -@@@@@:::::::::=@@@@@ :@@@@@ @@@@@* +@@@@% @@@@@ @@@@% -#@@@@@@@@@@@@: -@@@@* @@@@@ \n* =@@@@% =@@@@% .@@@@@ :@@@@@. -@@@@% @@@@@ .@@@@* +@@@@@@@@@@@@@@. =@@@@+ .@@@@@ \n* +@@@@# +@@@@# @@@@@# %@@@@% :@@@@@ .@@@@% =@@@@= -@@@@@*-:..%@@@@ +@@@@= :@@@@# \n* *@@@@* *@@@@* +@@@@@: #@@@@@+ .@@@@@@ :@@@@% *@@@@- @@@@@. @@@@% #@@@@: =@@@@+ \n* %@@@@= %@@@@+ @@@@@@- .%@@@@@# #@@@@@# :@@@@% #@@@@: @@@@% @@@@* %@@@@. #@@@@- \n* @@@@@- @@@@@= =@@@@@@#=...-*@@@@@@@: @@@@@@%=. :+**. :@@@@* %@@@@. .@@@@* *@@@@= @@@@@ %@@@@+ \n* .@@@@@: .@@@@@: *@@@@@@@@@@@@@@@@@@@# =@@@@@@@@%%%@@@@@@ +@@@@- @@@@@ .@@@@@: :%@@@@@- .@@@@% %@@@@@*+- \n* :@@@@@ :@@@@@ +@@@@@@@@@@@@@@@@@@@# =@@@@@@@@@@@@@@@@% %@@@@ @@@@@ @@@@@@@@@@@@@@@: -@@@@* *@@@@@@@@- \n* =@@@@@ -@@@@@ :@@@@@@@@@@@@@@@@@@@# :@@@@@@@@@@@@@@@% @@@@@ %@@@% #@@@@@@@@@#@@@@. +@@@@- .@@@@@@@@# \n* *@@@@# =@@@@% :#@@@@@@@#: :@@@@@= =@@@@@@@@@@@+. @@@@@ :@@@+ *@@@@@@@- %@@@ *@@@= =@@@@@@@* \n* =++++- -++++= .:::. .=*+: :-=+++=:. ****= .=+. .-++=: :+++ -+=: .-=+=:. \n* \n* \n* HQChart \n* Ver: '+HQCHART_VERSION+' \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n************************************************************************************************************************************************************************** \n ';console.log(logo);}PrintHQChartVersion();//把给外界调用的方法暴露出来
14847
+ */var HQCHART_VERSION="1.1.14597";function PrintHQChartVersion(){var logo='\n\n*************************************************************************************************************************************************************************** \n* \n* :%@@- \n* :@@@@- \n* =@@@@ :#@@@ .:+#@@@#=: :=*@@@@@@#+-. *@@@@. \n* :@@@@@ .@@@@@ .#@@@@@@@@@@@- +@@@@@@@@@@@@@+ @@@@@ -%@@* \n* +@@@@% #@@@@# *@@@@@@@@@@@@@@%. =@@@@@@@@@@@@@@@- @@@@@ -@@@@+ \n* %@@@@* @@@@@+ .%@@@@@@@@@@@@@@@@%: #@@@@@@@@@@@@@@@% @@@@# *@@@@= \n* @@@@@= @@@@@- .%@@@@@@@*++*%@@@@@@% .%@@@@@@@%*+==+**= -@@@@+ #@@@@- \n* @@@@@. @@@@@. #@@@@@%= =@@@@@@* %@@@@@@#: *@@@@- :::. .-+*###+: ::: .+##+: -%%@@@@@%%%% \n* .@@@@@ .@@@@@. +@@@@@% .@@@@@@ *@@@@@@: %@@@@: +@@@@@%. :%@@@@@@@@@@: *@@@ :@@@@@* @@@@@@@@@@@@ \n* :@@@@@ :@@@@@ @@@@@% :@@@@@+ @@@@@@: %@@@@-@@@@@@@@@. @@@@@@@@@@@@@. :@@@%-@@@@@@.:@@@@@@@@@@@# \n* -@@@@% -@@@@@ =@@@@@. %@@@@% %@@@@@- %@@@@@@@@@@@@@@* %@@@@@@@@@@@@+ -@@@@@@@@@@# -@@@@@@@@@@@. \n* +@@@@%=========#@@@@% @@@@@# :@@@@@ .@@@@@% @@@@@@@@%@@@@@@@ -%+:. .#@@@@* +@@@@@@@%%@. .::+@@@@#:: \n* #@@@@@@@@@@@@@@@@@@@# .@@@@@ .@@@@@ :@@@@@. @@@@@@#. #@@@@@. -@@@@* #@@@@@@: *@@@@+ \n* %@@@@@@@@@@@@@@@@@@@+ :@@@@@ .@@@@@ -@@@@@ @@@@@+ @@@@@. :@@@@* @@@@@% #@@@@- \n* @@@@@@@@@@@@@@@@@@@@: :@@@@% :@@@@@ +@@@@% -@@@@+ @@@@@ -@@@@+ @@@@@. @@@@@. \n* .@@@@@@@@@@@@@@@@@@@@ :@@@@% -@@@@% *@@@@% #@@@@. @@@@@ .=*#%%%@@@@@= :@@@@# @@@@@. \n* -@@@@@:::::::::=@@@@@ :@@@@@ @@@@@* +@@@@% @@@@@ @@@@% -#@@@@@@@@@@@@: -@@@@* @@@@@ \n* =@@@@% =@@@@% .@@@@@ :@@@@@. -@@@@% @@@@@ .@@@@* +@@@@@@@@@@@@@@. =@@@@+ .@@@@@ \n* +@@@@# +@@@@# @@@@@# %@@@@% :@@@@@ .@@@@% =@@@@= -@@@@@*-:..%@@@@ +@@@@= :@@@@# \n* *@@@@* *@@@@* +@@@@@: #@@@@@+ .@@@@@@ :@@@@% *@@@@- @@@@@. @@@@% #@@@@: =@@@@+ \n* %@@@@= %@@@@+ @@@@@@- .%@@@@@# #@@@@@# :@@@@% #@@@@: @@@@% @@@@* %@@@@. #@@@@- \n* @@@@@- @@@@@= =@@@@@@#=...-*@@@@@@@: @@@@@@%=. :+**. :@@@@* %@@@@. .@@@@* *@@@@= @@@@@ %@@@@+ \n* .@@@@@: .@@@@@: *@@@@@@@@@@@@@@@@@@@# =@@@@@@@@%%%@@@@@@ +@@@@- @@@@@ .@@@@@: :%@@@@@- .@@@@% %@@@@@*+- \n* :@@@@@ :@@@@@ +@@@@@@@@@@@@@@@@@@@# =@@@@@@@@@@@@@@@@% %@@@@ @@@@@ @@@@@@@@@@@@@@@: -@@@@* *@@@@@@@@- \n* =@@@@@ -@@@@@ :@@@@@@@@@@@@@@@@@@@# :@@@@@@@@@@@@@@@% @@@@@ %@@@% #@@@@@@@@@#@@@@. +@@@@- .@@@@@@@@# \n* *@@@@# =@@@@% :#@@@@@@@#: :@@@@@= =@@@@@@@@@@@+. @@@@@ :@@@+ *@@@@@@@- %@@@ *@@@= =@@@@@@@* \n* =++++- -++++= .:::. .=*+: :-=+++=:. ****= .=+. .-++=: :+++ -+=: .-=+=:. \n* \n* \n* HQChart \n* Ver: '+HQCHART_VERSION+' \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n************************************************************************************************************************************************************************** \n ';console.log(logo);}PrintHQChartVersion();//把给外界调用的方法暴露出来
14838
14848
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
14839
14849
  // BaseIndex:BaseIndex,
14840
14850
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.14593",
3
+ "version": "1.1.14598",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -3106,7 +3106,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
3106
3106
  Wheel:false, WheelYMove:5 //是否可以滚轴缩放Y轴最大最小值
3107
3107
  };
3108
3108
 
3109
- this.EnableXDrag={ Bottom:true }; //X轴拖动缩放
3109
+ this.EnableXDrag={ Bottom:true, LButton:{ Type:1 }, RButton:{ Type:2 } }; //X轴拖动缩放 Type: 1=拖动K线 2=缩放K线
3110
3110
 
3111
3111
  this.EnableZoomIndexWindow=false; //是否支持双击缩放附图窗口
3112
3112
  this.EnableVerifyRecvData=false; //是否检测接收到的数据
@@ -4336,7 +4336,12 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
4336
4336
  }
4337
4337
  else if (drag.Click && drag.Click.IsInFrameBottom)
4338
4338
  {
4339
- this.OnDragXCoordinateZoom(drag, {X:moveSetp, Y:moveSetpY}, e);
4339
+ var dragType=this.GetDragXCoordinateType(e,"DocOnMouseMove");
4340
+
4341
+ if (dragType==2)
4342
+ this.OnDragXCoordinateZoom(drag, {X:moveSetp, Y:moveSetpY}, e);
4343
+ else if (dragType==1)
4344
+ this.OnDragXCoordinateKLine(drag, {X:moveSetp, Y:moveSetpY}, e);
4340
4345
  }
4341
4346
  else if ((bLButtonSelectRect || bRButtonSelectRect) && !isDragSelectRect && !isDragSubSelectRect && !bShfitDragKLine) //左右键区间选择
4342
4347
  {
@@ -4359,6 +4364,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
4359
4364
  }
4360
4365
  }
4361
4366
 
4367
+ //X轴坐标拖动 缩放K线
4362
4368
  this.OnDragXCoordinateZoom=function(drag, moveData, e)
4363
4369
  {
4364
4370
  var moveSetp=moveData.X;
@@ -4391,6 +4397,56 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
4391
4397
  this.SetCursor({Cursor:cursorStatus});
4392
4398
  }
4393
4399
 
4400
+ //X轴坐标拖动 拖动K线
4401
+ this.OnDragXCoordinateKLine=function(drag, moveData, e)
4402
+ {
4403
+ var moveSetpX=moveData.X;
4404
+ var moveSetpY=moveData.Y;
4405
+
4406
+ if (moveSetpX<5) return false;
4407
+
4408
+ var isLeft=true;
4409
+ if (drag.LastMove.X<e.clientX) isLeft=false; //右移数据
4410
+
4411
+ var cursorStatus="pointer";
4412
+ var oneStepWidth=this.GetMoveOneStepWidth();
4413
+ if (moveSetpX<oneStepWidth)
4414
+ {
4415
+ this.SetCursor({Cursor:cursorStatus});
4416
+ return false;
4417
+ }
4418
+
4419
+ var bNeedDraw=false;
4420
+ if(this.DataMove(moveSetpX,isLeft))
4421
+ {
4422
+ this.UpdataDataoffset();
4423
+ //this.UpdatePointByCursorIndex(); //推拽数据的时候不需要把鼠标位置更新到K线上
4424
+ this.UpdateFrameMaxMin();
4425
+ this.ResetFrameXYSplit();
4426
+ bNeedDraw=true;
4427
+ }
4428
+ else
4429
+ {
4430
+ if (this.DragDownloadData)
4431
+ {
4432
+ this.DragDownloadData();
4433
+ if (this.ChartSplashPaint && this.ChartSplashPaint.IsEnableSplash) return true;
4434
+ }
4435
+ }
4436
+
4437
+ drag.LastMove.X=e.clientX;
4438
+ this.SetCursor({Cursor:cursorStatus});
4439
+
4440
+ if (bNeedDraw)
4441
+ {
4442
+ this.Draw();
4443
+ this.OnKLinePageChange("datamove");
4444
+ }
4445
+
4446
+ return true;
4447
+ }
4448
+
4449
+
4394
4450
  this.OnDragMode_One=function(moveData, e)
4395
4451
  {
4396
4452
  var moveSetp=moveData.X;
@@ -4494,6 +4550,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
4494
4550
  }
4495
4551
  }
4496
4552
 
4553
+
4497
4554
  this.GetXDataIndex=function(obj)
4498
4555
  {
4499
4556
  if (!this.ChartPaint[0] || !this.ChartPaint[0].Data) return false;
@@ -4592,6 +4649,10 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
4592
4649
  else if (IsMinuteChart)
4593
4650
  {
4594
4651
  if (this.OnMinuteSelectRectMouseUp) this.OnMinuteSelectRectMouseUp(e); //分时图区间选择
4652
+ }
4653
+ else if (this.MouseDrag && this.MouseDrag.Click && this.MouseDrag.Click.IsInFrameBottom)
4654
+ {
4655
+
4595
4656
  }
4596
4657
  else if ((bLButtonSelectRect || bRButtonSelectRect) && !bShfitDragKLine) //K线图区间选择
4597
4658
  {
@@ -6924,7 +6985,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
6924
6985
  //X轴拖动缩放
6925
6986
  if (this.ClassName=="KLineChartContainer" && this.EnableXDrag.Bottom && this.Frame.PtInFrameBottom(x,y))
6926
6987
  {
6927
- mouseStatus={ Cursor:"ew-resize", Name:"FrameButtom"};
6988
+ //var dragType=this.GetDragXCoordinateType(e,"OnMouseMove");
6989
+ //mouseStatus={ Cursor:"pointer", Name:"FrameButtom"};
6928
6990
  JSConsole.Chart.Log("[JSChartContainer::OnMouseMove] frame bottom ");
6929
6991
  }
6930
6992
 
@@ -10469,7 +10531,12 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
10469
10531
  if (this.ClearKLineInfo) this.ClearKLineInfo();
10470
10532
  break;
10471
10533
  case JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID:
10472
- if (param!=null) this.DragMode=param;
10534
+ if (param!=null)
10535
+ {
10536
+ this.DragMode=param;
10537
+ if (this.DragMode==1 && IFrameSplitOperator.IsBool(aryArgs[1])) //shift+左键拖动
10538
+ this.KLineDragConfig.EnableShfit=aryArgs[1];
10539
+ }
10473
10540
  break;
10474
10541
  case JSCHART_MENU_ID.CMD_CHANGE_BG_SPLIT_ID:
10475
10542
  if (IFrameSplitOperator.IsBool(srcParam))
@@ -11174,6 +11241,17 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
11174
11241
  return true;
11175
11242
  }
11176
11243
 
11244
+ this.GetDragXCoordinateType=function(event, funcName)
11245
+ {
11246
+ if (funcName=="DocOnMouseMove")
11247
+ {
11248
+ if (event.buttons==1) return this.EnableXDrag.LButton.Type; //左键
11249
+ else if (event.buttons==2) return this.EnableXDrag.RButton.Type;//右键
11250
+ }
11251
+
11252
+ return null;
11253
+ }
11254
+
11177
11255
  this.OnMarkRectSelect=function(e)
11178
11256
  {
11179
11257
  var corssCursor=this.ChartCorssCursor; //十字光标
@@ -82749,7 +82827,8 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
82749
82827
  [
82750
82828
 
82751
82829
  { Name:"禁止拖拽", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID, Args:[0]}, Checked:0==this.DragMode },
82752
- { Name:"启动拖拽", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID, Args:[1]}, Checked:1==this.DragMode },
82830
+ { Name:"启动右键拖拽", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID, Args:[1, false]}, Checked:1==(this.DragMode && !this.KLineDragConfig.EnableShfit) },
82831
+ { Name:"启动Shift+右键拖拽", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID, Args:[1, true]}, Checked:1==(this.DragMode && this.KLineDragConfig.EnableShfit) },
82753
82832
  { Name:"X轴拖动缩放", Data:{ ID:JSCHART_MENU_ID.CMD_ENABLE_XDRAG_BOTTOM_ID, Args:[!this.EnableXDrag.Bottom]}, Checked:this.EnableXDrag.Bottom },
82754
82833
  { Name:"左键区间选择", Data:{ ID:JSCHART_MENU_ID.CMD_LBUTTON_SELECT_RECT_ID, Args:[!bLButtonSelectRect]}, Checked:bLButtonSelectRect },
82755
82834
  { Name:"右键区间选择", Data:{ ID:JSCHART_MENU_ID.CMD_RBUTTON_SELECT_RECT_ID, Args:[!bRButtonSelectRect]}, Checked:bRButtonSelectRect },
@@ -85581,8 +85660,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
85581
85660
  if (!startItem || !endItem) return;
85582
85661
 
85583
85662
  JSConsole.Chart.Log('[MinuteChartContainer::UpdateSelectRect]',startItem,endItem);
85584
- paint.SetPoint(startItem, { Index:0 });
85585
- paint.SetPoint(endItem, { Index:1 });
85663
+ paint.SetPoint(startItem, { Index:0 , DataIndex:start });
85664
+ paint.SetPoint(endItem, { Index:1,DataIndex:end });
85586
85665
 
85587
85666
  this.Draw();
85588
85667
  }
@@ -85609,7 +85688,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
85609
85688
  var item = kData.Data[dataIndex];
85610
85689
  JSConsole.Chart.Log("[MinuteChartContainer::MoveRectSelectPoint] point, item", obj.PointIndex, item);
85611
85690
 
85612
- if (!paint.SetPoint(item,{ Index: obj.PointIndex })) return false;
85691
+ if (!paint.SetPoint(item,{ Index: obj.PointIndex,DataIndex:dataIndex })) return false;
85613
85692
 
85614
85693
  var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DRAG_SELECT_RECT);
85615
85694
  if (event)
@@ -284,6 +284,11 @@ function JSReportChart(divElement)
284
284
  if (this.JSChartContainer) this.JSChartContainer.SetSelectedRow(option);
285
285
  }
286
286
 
287
+ this.DeleteSymbol=function(arySymbol, option)
288
+ {
289
+ if (this.JSChartContainer) this.JSChartContainer.DeleteSymbol(arySymbol, option);
290
+ }
291
+
287
292
  this.EnableFilter=function(bEnable, option) //启动|关闭筛选
288
293
  {
289
294
  if (this.JSChartContainer) this.JSChartContainer.EnableFilter(bEnable, option);
@@ -1188,6 +1193,55 @@ function JSReportChartContainer(uielement)
1188
1193
  this.UpdateStockData();
1189
1194
  }
1190
1195
 
1196
+ //删除股票
1197
+ this.DeleteSymbol=function(arySymbol, option)
1198
+ {
1199
+ if (!IFrameSplitOperator.IsNonEmptyArray(arySymbol)) return false;
1200
+
1201
+ var setSymbol=new Set(arySymbol);
1202
+ var bFinder=false;
1203
+ if (IFrameSplitOperator.IsNonEmptyArray(this.SourceData.Data))
1204
+ {
1205
+ var aryData=[];
1206
+ for(var i=0;i<this.SourceData.Data.length;++i)
1207
+ {
1208
+ var item=this.SourceData.Data[i];
1209
+ if (setSymbol.has(item))
1210
+ {
1211
+ bFinder=true;
1212
+ continue;
1213
+ }
1214
+ aryData.push(item);
1215
+ }
1216
+
1217
+ if (bFinder) this.SourceData.Data=aryData;
1218
+ }
1219
+
1220
+ if (IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))
1221
+ {
1222
+ var aryData=[];
1223
+ for(var i=0;i<this.Data.Data.length;++i)
1224
+ {
1225
+ var item=this.Data.Data[i];
1226
+ if (setSymbol.has(item))
1227
+ {
1228
+ bFinder=true;
1229
+ continue;
1230
+ }
1231
+ aryData.push(item);
1232
+ }
1233
+
1234
+ if (bFinder) this.Data.Data=aryData;
1235
+ }
1236
+
1237
+ if (!bFinder) return false;
1238
+
1239
+ this.Draw();
1240
+ this.UpdateStockData();
1241
+
1242
+ return true;
1243
+ }
1244
+
1191
1245
  this.AutoUpdateEvent=function(bStart, explain) //自定更新事件, 是给websocket使用
1192
1246
  {
1193
1247
  var eventID=bStart ? JSCHART_EVENT_ID.RECV_START_AUTOUPDATE:JSCHART_EVENT_ID.RECV_STOP_AUTOUPDATE;
@@ -7202,7 +7202,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
7202
7202
  Wheel:false, WheelYMove:5 //是否可以滚轴缩放Y轴最大最小值
7203
7203
  };
7204
7204
 
7205
- this.EnableXDrag={ Bottom:true }; //X轴拖动缩放
7205
+ this.EnableXDrag={ Bottom:true, LButton:{ Type:1 }, RButton:{ Type:2 } }; //X轴拖动缩放 Type: 1=拖动K线 2=缩放K线
7206
7206
 
7207
7207
  this.EnableZoomIndexWindow=false; //是否支持双击缩放附图窗口
7208
7208
  this.EnableVerifyRecvData=false; //是否检测接收到的数据
@@ -8432,7 +8432,12 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8432
8432
  }
8433
8433
  else if (drag.Click && drag.Click.IsInFrameBottom)
8434
8434
  {
8435
- this.OnDragXCoordinateZoom(drag, {X:moveSetp, Y:moveSetpY}, e);
8435
+ var dragType=this.GetDragXCoordinateType(e,"DocOnMouseMove");
8436
+
8437
+ if (dragType==2)
8438
+ this.OnDragXCoordinateZoom(drag, {X:moveSetp, Y:moveSetpY}, e);
8439
+ else if (dragType==1)
8440
+ this.OnDragXCoordinateKLine(drag, {X:moveSetp, Y:moveSetpY}, e);
8436
8441
  }
8437
8442
  else if ((bLButtonSelectRect || bRButtonSelectRect) && !isDragSelectRect && !isDragSubSelectRect && !bShfitDragKLine) //左右键区间选择
8438
8443
  {
@@ -8455,6 +8460,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8455
8460
  }
8456
8461
  }
8457
8462
 
8463
+ //X轴坐标拖动 缩放K线
8458
8464
  this.OnDragXCoordinateZoom=function(drag, moveData, e)
8459
8465
  {
8460
8466
  var moveSetp=moveData.X;
@@ -8487,6 +8493,56 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8487
8493
  this.SetCursor({Cursor:cursorStatus});
8488
8494
  }
8489
8495
 
8496
+ //X轴坐标拖动 拖动K线
8497
+ this.OnDragXCoordinateKLine=function(drag, moveData, e)
8498
+ {
8499
+ var moveSetpX=moveData.X;
8500
+ var moveSetpY=moveData.Y;
8501
+
8502
+ if (moveSetpX<5) return false;
8503
+
8504
+ var isLeft=true;
8505
+ if (drag.LastMove.X<e.clientX) isLeft=false; //右移数据
8506
+
8507
+ var cursorStatus="pointer";
8508
+ var oneStepWidth=this.GetMoveOneStepWidth();
8509
+ if (moveSetpX<oneStepWidth)
8510
+ {
8511
+ this.SetCursor({Cursor:cursorStatus});
8512
+ return false;
8513
+ }
8514
+
8515
+ var bNeedDraw=false;
8516
+ if(this.DataMove(moveSetpX,isLeft))
8517
+ {
8518
+ this.UpdataDataoffset();
8519
+ //this.UpdatePointByCursorIndex(); //推拽数据的时候不需要把鼠标位置更新到K线上
8520
+ this.UpdateFrameMaxMin();
8521
+ this.ResetFrameXYSplit();
8522
+ bNeedDraw=true;
8523
+ }
8524
+ else
8525
+ {
8526
+ if (this.DragDownloadData)
8527
+ {
8528
+ this.DragDownloadData();
8529
+ if (this.ChartSplashPaint && this.ChartSplashPaint.IsEnableSplash) return true;
8530
+ }
8531
+ }
8532
+
8533
+ drag.LastMove.X=e.clientX;
8534
+ this.SetCursor({Cursor:cursorStatus});
8535
+
8536
+ if (bNeedDraw)
8537
+ {
8538
+ this.Draw();
8539
+ this.OnKLinePageChange("datamove");
8540
+ }
8541
+
8542
+ return true;
8543
+ }
8544
+
8545
+
8490
8546
  this.OnDragMode_One=function(moveData, e)
8491
8547
  {
8492
8548
  var moveSetp=moveData.X;
@@ -8590,6 +8646,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8590
8646
  }
8591
8647
  }
8592
8648
 
8649
+
8593
8650
  this.GetXDataIndex=function(obj)
8594
8651
  {
8595
8652
  if (!this.ChartPaint[0] || !this.ChartPaint[0].Data) return false;
@@ -8688,6 +8745,10 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8688
8745
  else if (IsMinuteChart)
8689
8746
  {
8690
8747
  if (this.OnMinuteSelectRectMouseUp) this.OnMinuteSelectRectMouseUp(e); //分时图区间选择
8748
+ }
8749
+ else if (this.MouseDrag && this.MouseDrag.Click && this.MouseDrag.Click.IsInFrameBottom)
8750
+ {
8751
+
8691
8752
  }
8692
8753
  else if ((bLButtonSelectRect || bRButtonSelectRect) && !bShfitDragKLine) //K线图区间选择
8693
8754
  {
@@ -11020,7 +11081,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
11020
11081
  //X轴拖动缩放
11021
11082
  if (this.ClassName=="KLineChartContainer" && this.EnableXDrag.Bottom && this.Frame.PtInFrameBottom(x,y))
11022
11083
  {
11023
- mouseStatus={ Cursor:"ew-resize", Name:"FrameButtom"};
11084
+ //var dragType=this.GetDragXCoordinateType(e,"OnMouseMove");
11085
+ //mouseStatus={ Cursor:"pointer", Name:"FrameButtom"};
11024
11086
  JSConsole.Chart.Log("[JSChartContainer::OnMouseMove] frame bottom ");
11025
11087
  }
11026
11088
 
@@ -14565,7 +14627,12 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
14565
14627
  if (this.ClearKLineInfo) this.ClearKLineInfo();
14566
14628
  break;
14567
14629
  case JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID:
14568
- if (param!=null) this.DragMode=param;
14630
+ if (param!=null)
14631
+ {
14632
+ this.DragMode=param;
14633
+ if (this.DragMode==1 && IFrameSplitOperator.IsBool(aryArgs[1])) //shift+左键拖动
14634
+ this.KLineDragConfig.EnableShfit=aryArgs[1];
14635
+ }
14569
14636
  break;
14570
14637
  case JSCHART_MENU_ID.CMD_CHANGE_BG_SPLIT_ID:
14571
14638
  if (IFrameSplitOperator.IsBool(srcParam))
@@ -15270,6 +15337,17 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
15270
15337
  return true;
15271
15338
  }
15272
15339
 
15340
+ this.GetDragXCoordinateType=function(event, funcName)
15341
+ {
15342
+ if (funcName=="DocOnMouseMove")
15343
+ {
15344
+ if (event.buttons==1) return this.EnableXDrag.LButton.Type; //左键
15345
+ else if (event.buttons==2) return this.EnableXDrag.RButton.Type;//右键
15346
+ }
15347
+
15348
+ return null;
15349
+ }
15350
+
15273
15351
  this.OnMarkRectSelect=function(e)
15274
15352
  {
15275
15353
  var corssCursor=this.ChartCorssCursor; //十字光标
@@ -86845,7 +86923,8 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
86845
86923
  [
86846
86924
 
86847
86925
  { Name:"禁止拖拽", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID, Args:[0]}, Checked:0==this.DragMode },
86848
- { Name:"启动拖拽", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID, Args:[1]}, Checked:1==this.DragMode },
86926
+ { Name:"启动右键拖拽", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID, Args:[1, false]}, Checked:1==(this.DragMode && !this.KLineDragConfig.EnableShfit) },
86927
+ { Name:"启动Shift+右键拖拽", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID, Args:[1, true]}, Checked:1==(this.DragMode && this.KLineDragConfig.EnableShfit) },
86849
86928
  { Name:"X轴拖动缩放", Data:{ ID:JSCHART_MENU_ID.CMD_ENABLE_XDRAG_BOTTOM_ID, Args:[!this.EnableXDrag.Bottom]}, Checked:this.EnableXDrag.Bottom },
86850
86929
  { Name:"左键区间选择", Data:{ ID:JSCHART_MENU_ID.CMD_LBUTTON_SELECT_RECT_ID, Args:[!bLButtonSelectRect]}, Checked:bLButtonSelectRect },
86851
86930
  { Name:"右键区间选择", Data:{ ID:JSCHART_MENU_ID.CMD_RBUTTON_SELECT_RECT_ID, Args:[!bRButtonSelectRect]}, Checked:bRButtonSelectRect },
@@ -89677,8 +89756,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
89677
89756
  if (!startItem || !endItem) return;
89678
89757
 
89679
89758
  JSConsole.Chart.Log('[MinuteChartContainer::UpdateSelectRect]',startItem,endItem);
89680
- paint.SetPoint(startItem, { Index:0 });
89681
- paint.SetPoint(endItem, { Index:1 });
89759
+ paint.SetPoint(startItem, { Index:0 , DataIndex:start });
89760
+ paint.SetPoint(endItem, { Index:1,DataIndex:end });
89682
89761
 
89683
89762
  this.Draw();
89684
89763
  }
@@ -89705,7 +89784,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
89705
89784
  var item = kData.Data[dataIndex];
89706
89785
  JSConsole.Chart.Log("[MinuteChartContainer::MoveRectSelectPoint] point, item", obj.PointIndex, item);
89707
89786
 
89708
- if (!paint.SetPoint(item,{ Index: obj.PointIndex })) return false;
89787
+ if (!paint.SetPoint(item,{ Index: obj.PointIndex,DataIndex:dataIndex })) return false;
89709
89788
 
89710
89789
  var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DRAG_SELECT_RECT);
89711
89790
  if (event)
@@ -133148,6 +133227,11 @@ function JSReportChart(divElement)
133148
133227
  if (this.JSChartContainer) this.JSChartContainer.SetSelectedRow(option);
133149
133228
  }
133150
133229
 
133230
+ this.DeleteSymbol=function(arySymbol, option)
133231
+ {
133232
+ if (this.JSChartContainer) this.JSChartContainer.DeleteSymbol(arySymbol, option);
133233
+ }
133234
+
133151
133235
  this.EnableFilter=function(bEnable, option) //启动|关闭筛选
133152
133236
  {
133153
133237
  if (this.JSChartContainer) this.JSChartContainer.EnableFilter(bEnable, option);
@@ -134052,6 +134136,55 @@ function JSReportChartContainer(uielement)
134052
134136
  this.UpdateStockData();
134053
134137
  }
134054
134138
 
134139
+ //删除股票
134140
+ this.DeleteSymbol=function(arySymbol, option)
134141
+ {
134142
+ if (!IFrameSplitOperator.IsNonEmptyArray(arySymbol)) return false;
134143
+
134144
+ var setSymbol=new Set(arySymbol);
134145
+ var bFinder=false;
134146
+ if (IFrameSplitOperator.IsNonEmptyArray(this.SourceData.Data))
134147
+ {
134148
+ var aryData=[];
134149
+ for(var i=0;i<this.SourceData.Data.length;++i)
134150
+ {
134151
+ var item=this.SourceData.Data[i];
134152
+ if (setSymbol.has(item))
134153
+ {
134154
+ bFinder=true;
134155
+ continue;
134156
+ }
134157
+ aryData.push(item);
134158
+ }
134159
+
134160
+ if (bFinder) this.SourceData.Data=aryData;
134161
+ }
134162
+
134163
+ if (IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))
134164
+ {
134165
+ var aryData=[];
134166
+ for(var i=0;i<this.Data.Data.length;++i)
134167
+ {
134168
+ var item=this.Data.Data[i];
134169
+ if (setSymbol.has(item))
134170
+ {
134171
+ bFinder=true;
134172
+ continue;
134173
+ }
134174
+ aryData.push(item);
134175
+ }
134176
+
134177
+ if (bFinder) this.Data.Data=aryData;
134178
+ }
134179
+
134180
+ if (!bFinder) return false;
134181
+
134182
+ this.Draw();
134183
+ this.UpdateStockData();
134184
+
134185
+ return true;
134186
+ }
134187
+
134055
134188
  this.AutoUpdateEvent=function(bStart, explain) //自定更新事件, 是给websocket使用
134056
134189
  {
134057
134190
  var eventID=bStart ? JSCHART_EVENT_ID.RECV_START_AUTOUPDATE:JSCHART_EVENT_ID.RECV_STOP_AUTOUPDATE;
@@ -145698,7 +145831,7 @@ function ScrollBarBGChart()
145698
145831
 
145699
145832
 
145700
145833
 
145701
- var HQCHART_VERSION="1.1.14592";
145834
+ var HQCHART_VERSION="1.1.14597";
145702
145835
 
145703
145836
  function PrintHQChartVersion()
145704
145837
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.14592";
8
+ var HQCHART_VERSION="1.1.14597";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -7246,7 +7246,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
7246
7246
  Wheel:false, WheelYMove:5 //是否可以滚轴缩放Y轴最大最小值
7247
7247
  };
7248
7248
 
7249
- this.EnableXDrag={ Bottom:true }; //X轴拖动缩放
7249
+ this.EnableXDrag={ Bottom:true, LButton:{ Type:1 }, RButton:{ Type:2 } }; //X轴拖动缩放 Type: 1=拖动K线 2=缩放K线
7250
7250
 
7251
7251
  this.EnableZoomIndexWindow=false; //是否支持双击缩放附图窗口
7252
7252
  this.EnableVerifyRecvData=false; //是否检测接收到的数据
@@ -8476,7 +8476,12 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8476
8476
  }
8477
8477
  else if (drag.Click && drag.Click.IsInFrameBottom)
8478
8478
  {
8479
- this.OnDragXCoordinateZoom(drag, {X:moveSetp, Y:moveSetpY}, e);
8479
+ var dragType=this.GetDragXCoordinateType(e,"DocOnMouseMove");
8480
+
8481
+ if (dragType==2)
8482
+ this.OnDragXCoordinateZoom(drag, {X:moveSetp, Y:moveSetpY}, e);
8483
+ else if (dragType==1)
8484
+ this.OnDragXCoordinateKLine(drag, {X:moveSetp, Y:moveSetpY}, e);
8480
8485
  }
8481
8486
  else if ((bLButtonSelectRect || bRButtonSelectRect) && !isDragSelectRect && !isDragSubSelectRect && !bShfitDragKLine) //左右键区间选择
8482
8487
  {
@@ -8499,6 +8504,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8499
8504
  }
8500
8505
  }
8501
8506
 
8507
+ //X轴坐标拖动 缩放K线
8502
8508
  this.OnDragXCoordinateZoom=function(drag, moveData, e)
8503
8509
  {
8504
8510
  var moveSetp=moveData.X;
@@ -8531,6 +8537,56 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8531
8537
  this.SetCursor({Cursor:cursorStatus});
8532
8538
  }
8533
8539
 
8540
+ //X轴坐标拖动 拖动K线
8541
+ this.OnDragXCoordinateKLine=function(drag, moveData, e)
8542
+ {
8543
+ var moveSetpX=moveData.X;
8544
+ var moveSetpY=moveData.Y;
8545
+
8546
+ if (moveSetpX<5) return false;
8547
+
8548
+ var isLeft=true;
8549
+ if (drag.LastMove.X<e.clientX) isLeft=false; //右移数据
8550
+
8551
+ var cursorStatus="pointer";
8552
+ var oneStepWidth=this.GetMoveOneStepWidth();
8553
+ if (moveSetpX<oneStepWidth)
8554
+ {
8555
+ this.SetCursor({Cursor:cursorStatus});
8556
+ return false;
8557
+ }
8558
+
8559
+ var bNeedDraw=false;
8560
+ if(this.DataMove(moveSetpX,isLeft))
8561
+ {
8562
+ this.UpdataDataoffset();
8563
+ //this.UpdatePointByCursorIndex(); //推拽数据的时候不需要把鼠标位置更新到K线上
8564
+ this.UpdateFrameMaxMin();
8565
+ this.ResetFrameXYSplit();
8566
+ bNeedDraw=true;
8567
+ }
8568
+ else
8569
+ {
8570
+ if (this.DragDownloadData)
8571
+ {
8572
+ this.DragDownloadData();
8573
+ if (this.ChartSplashPaint && this.ChartSplashPaint.IsEnableSplash) return true;
8574
+ }
8575
+ }
8576
+
8577
+ drag.LastMove.X=e.clientX;
8578
+ this.SetCursor({Cursor:cursorStatus});
8579
+
8580
+ if (bNeedDraw)
8581
+ {
8582
+ this.Draw();
8583
+ this.OnKLinePageChange("datamove");
8584
+ }
8585
+
8586
+ return true;
8587
+ }
8588
+
8589
+
8534
8590
  this.OnDragMode_One=function(moveData, e)
8535
8591
  {
8536
8592
  var moveSetp=moveData.X;
@@ -8634,6 +8690,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8634
8690
  }
8635
8691
  }
8636
8692
 
8693
+
8637
8694
  this.GetXDataIndex=function(obj)
8638
8695
  {
8639
8696
  if (!this.ChartPaint[0] || !this.ChartPaint[0].Data) return false;
@@ -8732,6 +8789,10 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8732
8789
  else if (IsMinuteChart)
8733
8790
  {
8734
8791
  if (this.OnMinuteSelectRectMouseUp) this.OnMinuteSelectRectMouseUp(e); //分时图区间选择
8792
+ }
8793
+ else if (this.MouseDrag && this.MouseDrag.Click && this.MouseDrag.Click.IsInFrameBottom)
8794
+ {
8795
+
8735
8796
  }
8736
8797
  else if ((bLButtonSelectRect || bRButtonSelectRect) && !bShfitDragKLine) //K线图区间选择
8737
8798
  {
@@ -11064,7 +11125,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
11064
11125
  //X轴拖动缩放
11065
11126
  if (this.ClassName=="KLineChartContainer" && this.EnableXDrag.Bottom && this.Frame.PtInFrameBottom(x,y))
11066
11127
  {
11067
- mouseStatus={ Cursor:"ew-resize", Name:"FrameButtom"};
11128
+ //var dragType=this.GetDragXCoordinateType(e,"OnMouseMove");
11129
+ //mouseStatus={ Cursor:"pointer", Name:"FrameButtom"};
11068
11130
  JSConsole.Chart.Log("[JSChartContainer::OnMouseMove] frame bottom ");
11069
11131
  }
11070
11132
 
@@ -14609,7 +14671,12 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
14609
14671
  if (this.ClearKLineInfo) this.ClearKLineInfo();
14610
14672
  break;
14611
14673
  case JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID:
14612
- if (param!=null) this.DragMode=param;
14674
+ if (param!=null)
14675
+ {
14676
+ this.DragMode=param;
14677
+ if (this.DragMode==1 && IFrameSplitOperator.IsBool(aryArgs[1])) //shift+左键拖动
14678
+ this.KLineDragConfig.EnableShfit=aryArgs[1];
14679
+ }
14613
14680
  break;
14614
14681
  case JSCHART_MENU_ID.CMD_CHANGE_BG_SPLIT_ID:
14615
14682
  if (IFrameSplitOperator.IsBool(srcParam))
@@ -15314,6 +15381,17 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
15314
15381
  return true;
15315
15382
  }
15316
15383
 
15384
+ this.GetDragXCoordinateType=function(event, funcName)
15385
+ {
15386
+ if (funcName=="DocOnMouseMove")
15387
+ {
15388
+ if (event.buttons==1) return this.EnableXDrag.LButton.Type; //左键
15389
+ else if (event.buttons==2) return this.EnableXDrag.RButton.Type;//右键
15390
+ }
15391
+
15392
+ return null;
15393
+ }
15394
+
15317
15395
  this.OnMarkRectSelect=function(e)
15318
15396
  {
15319
15397
  var corssCursor=this.ChartCorssCursor; //十字光标
@@ -86889,7 +86967,8 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
86889
86967
  [
86890
86968
 
86891
86969
  { Name:"禁止拖拽", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID, Args:[0]}, Checked:0==this.DragMode },
86892
- { Name:"启动拖拽", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID, Args:[1]}, Checked:1==this.DragMode },
86970
+ { Name:"启动右键拖拽", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID, Args:[1, false]}, Checked:1==(this.DragMode && !this.KLineDragConfig.EnableShfit) },
86971
+ { Name:"启动Shift+右键拖拽", Data:{ ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID, Args:[1, true]}, Checked:1==(this.DragMode && this.KLineDragConfig.EnableShfit) },
86893
86972
  { Name:"X轴拖动缩放", Data:{ ID:JSCHART_MENU_ID.CMD_ENABLE_XDRAG_BOTTOM_ID, Args:[!this.EnableXDrag.Bottom]}, Checked:this.EnableXDrag.Bottom },
86894
86973
  { Name:"左键区间选择", Data:{ ID:JSCHART_MENU_ID.CMD_LBUTTON_SELECT_RECT_ID, Args:[!bLButtonSelectRect]}, Checked:bLButtonSelectRect },
86895
86974
  { Name:"右键区间选择", Data:{ ID:JSCHART_MENU_ID.CMD_RBUTTON_SELECT_RECT_ID, Args:[!bRButtonSelectRect]}, Checked:bRButtonSelectRect },
@@ -89721,8 +89800,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
89721
89800
  if (!startItem || !endItem) return;
89722
89801
 
89723
89802
  JSConsole.Chart.Log('[MinuteChartContainer::UpdateSelectRect]',startItem,endItem);
89724
- paint.SetPoint(startItem, { Index:0 });
89725
- paint.SetPoint(endItem, { Index:1 });
89803
+ paint.SetPoint(startItem, { Index:0 , DataIndex:start });
89804
+ paint.SetPoint(endItem, { Index:1,DataIndex:end });
89726
89805
 
89727
89806
  this.Draw();
89728
89807
  }
@@ -89749,7 +89828,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
89749
89828
  var item = kData.Data[dataIndex];
89750
89829
  JSConsole.Chart.Log("[MinuteChartContainer::MoveRectSelectPoint] point, item", obj.PointIndex, item);
89751
89830
 
89752
- if (!paint.SetPoint(item,{ Index: obj.PointIndex })) return false;
89831
+ if (!paint.SetPoint(item,{ Index: obj.PointIndex,DataIndex:dataIndex })) return false;
89753
89832
 
89754
89833
  var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DRAG_SELECT_RECT);
89755
89834
  if (event)
@@ -133192,6 +133271,11 @@ function JSReportChart(divElement)
133192
133271
  if (this.JSChartContainer) this.JSChartContainer.SetSelectedRow(option);
133193
133272
  }
133194
133273
 
133274
+ this.DeleteSymbol=function(arySymbol, option)
133275
+ {
133276
+ if (this.JSChartContainer) this.JSChartContainer.DeleteSymbol(arySymbol, option);
133277
+ }
133278
+
133195
133279
  this.EnableFilter=function(bEnable, option) //启动|关闭筛选
133196
133280
  {
133197
133281
  if (this.JSChartContainer) this.JSChartContainer.EnableFilter(bEnable, option);
@@ -134096,6 +134180,55 @@ function JSReportChartContainer(uielement)
134096
134180
  this.UpdateStockData();
134097
134181
  }
134098
134182
 
134183
+ //删除股票
134184
+ this.DeleteSymbol=function(arySymbol, option)
134185
+ {
134186
+ if (!IFrameSplitOperator.IsNonEmptyArray(arySymbol)) return false;
134187
+
134188
+ var setSymbol=new Set(arySymbol);
134189
+ var bFinder=false;
134190
+ if (IFrameSplitOperator.IsNonEmptyArray(this.SourceData.Data))
134191
+ {
134192
+ var aryData=[];
134193
+ for(var i=0;i<this.SourceData.Data.length;++i)
134194
+ {
134195
+ var item=this.SourceData.Data[i];
134196
+ if (setSymbol.has(item))
134197
+ {
134198
+ bFinder=true;
134199
+ continue;
134200
+ }
134201
+ aryData.push(item);
134202
+ }
134203
+
134204
+ if (bFinder) this.SourceData.Data=aryData;
134205
+ }
134206
+
134207
+ if (IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))
134208
+ {
134209
+ var aryData=[];
134210
+ for(var i=0;i<this.Data.Data.length;++i)
134211
+ {
134212
+ var item=this.Data.Data[i];
134213
+ if (setSymbol.has(item))
134214
+ {
134215
+ bFinder=true;
134216
+ continue;
134217
+ }
134218
+ aryData.push(item);
134219
+ }
134220
+
134221
+ if (bFinder) this.Data.Data=aryData;
134222
+ }
134223
+
134224
+ if (!bFinder) return false;
134225
+
134226
+ this.Draw();
134227
+ this.UpdateStockData();
134228
+
134229
+ return true;
134230
+ }
134231
+
134099
134232
  this.AutoUpdateEvent=function(bStart, explain) //自定更新事件, 是给websocket使用
134100
134233
  {
134101
134234
  var eventID=bStart ? JSCHART_EVENT_ID.RECV_START_AUTOUPDATE:JSCHART_EVENT_ID.RECV_STOP_AUTOUPDATE;
@@ -156398,7 +156531,7 @@ function HQChartScriptWorker()
156398
156531
 
156399
156532
 
156400
156533
 
156401
- var HQCHART_VERSION="1.1.14592";
156534
+ var HQCHART_VERSION="1.1.14597";
156402
156535
 
156403
156536
  function PrintHQChartVersion()
156404
156537
  {