hqchart 1.1.15310 → 1.1.15312

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.
@@ -1313,7 +1313,8 @@ if(option.SelectedChart){var item=option.SelectedChart;if(IFrameSplitOperator.Is
1313
1313
  }}if(option.EnableYDrag){var item=option.EnableYDrag;if(IFrameSplitOperator.IsBool(item.Left))chart.EnableYDrag.Left=item.Left;if(IFrameSplitOperator.IsBool(item.Right))chart.EnableYDrag.Right=item.Right;if(IFrameSplitOperator.IsBool(item.Wheel))chart.EnableYDrag.Wheel=item.Wheel;if(IFrameSplitOperator.IsNumber(item.WheelYMove))chart.EnableYDrag.WheelYMove=item.WheelYMove;}if(option.FastSlide){var item=option.FastSlide;if(IFrameSplitOperator.IsNumber(item.MinDistance))chart.FastSlideConfig.MinDistance=item.MinDistance;if(IFrameSplitOperator.IsNumber(item.MinSpeed))chart.FastSlideConfig.MinSpeed=item.MinSpeed;if(IFrameSplitOperator.IsNumber(item.MaxTime))chart.FastSlideConfig.MaxTime=item.MaxTime;if(IFrameSplitOperator.IsBool(item.Enable))chart.FastSlideConfig.Enable=item.Enable;}//分页
1314
1314
  if(option.PageInfo)chart.SetPageInfo(option.PageInfo);chart.Create(windowsCount,option);//创建子窗口
1315
1315
  if(option.CorssCursorInfo){var item=option.CorssCursorInfo;if(!isNaN(option.CorssCursorInfo.Left))chart.ChartCorssCursor.ShowTextMode.Left=option.CorssCursorInfo.Left;if(!isNaN(option.CorssCursorInfo.Right))chart.ChartCorssCursor.ShowTextMode.Right=option.CorssCursorInfo.Right;if(!isNaN(option.CorssCursorInfo.Bottom))chart.ChartCorssCursor.ShowTextMode.Bottom=option.CorssCursorInfo.Bottom;if(option.CorssCursorInfo.IsShowCorss===false)chart.ChartCorssCursor.IsShowCorss=option.CorssCursorInfo.IsShowCorss;if(option.CorssCursorInfo.RightTextFormat>0)chart.ChartCorssCursor.TextFormat.Right=option.CorssCursorInfo.RightTextFormat;if(option.CorssCursorInfo.IsOnlyDrawMinute==true)chart.ChartCorssCursor.IsOnlyDrawMinute=option.CorssCursorInfo.IsOnlyDrawMinute;//Y轴显示收盘价
1316
- if(IFrameSplitOperator.IsBool(option.CorssCursorInfo.IsFixXLastTime))chart.ChartCorssCursor.IsFixXLastTime=option.CorssCursorInfo.IsFixXLastTime;if(item.RightButton){if(IFrameSplitOperator.IsBool(item.RightButton.Enable))chart.ChartCorssCursor.RightButton.Enable=item.RightButton.Enable;}if(item.BottomButton){var subItem=item.BottomButton;if(IFrameSplitOperator.IsBool(subItem.Enable))chart.ChartCorssCursor.BottomButton.Enable=subItem.Enable;}if(IFrameSplitOperator.IsNumber(item.PriceFormatType))chart.ChartCorssCursor.StringFormatY.PriceFormatType=item.PriceFormatType;if(IFrameSplitOperator.IsNumber(item.DataFormatType))chart.ChartCorssCursor.StringFormatY.DataFormatType=item.DataFormatType;if(IFrameSplitOperator.IsNumber(item.HPenType))chart.ChartCorssCursor.HPenType=item.HPenType;if(IFrameSplitOperator.IsNumber(item.VPenType))chart.ChartCorssCursor.VPenType=item.VPenType;if(IFrameSplitOperator.IsBool(item.EnableKeyboard))chart.ChartCorssCursor.EnableKeyboard=item.EnableKeyboard;if(IFrameSplitOperator.IsBool(item.EnableDBClick))chart.ChartCorssCursor.EnableDBClick=item.EnableDBClick;if(IFrameSplitOperator.IsBool(item.IsShowCorssPoint))chart.ChartCorssCursor.CorssPointConfig.Enable=item.IsShowCorssPoint;if(IFrameSplitOperator.IsNumber(item.VLineType))chart.ChartCorssCursor.VLineType=item.VLineType;}if(option.MinuteInfo)chart.CreateMinuteInfo(option.MinuteInfo);if(IFrameSplitOperator.IsBool(option.IsShowRightMenu))chart.IsShowRightMenu=option.IsShowRightMenu;if(IFrameSplitOperator.IsNumber(option.DayCount))chart.DayCount=option.DayCount;this.SetChartBorder(chart,option);if(option.SplashTitle)chart.ChartSplashPaint.SplashTitle=option.SplashTitle;if(IFrameSplitOperator.IsBool(option.EnableBorderDrag)){chart.EnableBorderDrag=option.EnableBorderDrag;}if(IFrameSplitOperator.IsBool(option.EnableBuySellBar)){var barChart=chart.GetChartMinuteBuySellBar();if(barChart)barChart.IsShow=option.EnableBuySellBar;}this.AdjustChartBorder(chart);if(option.Frame){for(var i=0;i<option.Frame.length;++i){var item=option.Frame[i];if(!chart.Frame.SubFrame[i])continue;chart.SetSubFrameAttribute(chart.Frame.SubFrame[i],null,item);/*
1316
+ if(IFrameSplitOperator.IsBool(option.CorssCursorInfo.IsFixXLastTime))chart.ChartCorssCursor.IsFixXLastTime=option.CorssCursorInfo.IsFixXLastTime;if(item.RightButton){if(IFrameSplitOperator.IsBool(item.RightButton.Enable))chart.ChartCorssCursor.RightButton.Enable=item.RightButton.Enable;}if(item.BottomButton){var subItem=item.BottomButton;if(IFrameSplitOperator.IsBool(subItem.Enable))chart.ChartCorssCursor.BottomButton.Enable=subItem.Enable;}if(IFrameSplitOperator.IsNumber(item.PriceFormatType))chart.ChartCorssCursor.StringFormatY.PriceFormatType=item.PriceFormatType;if(IFrameSplitOperator.IsNumber(item.DataFormatType))chart.ChartCorssCursor.StringFormatY.DataFormatType=item.DataFormatType;if(IFrameSplitOperator.IsNumber(item.HPenType))chart.ChartCorssCursor.HPenType=item.HPenType;if(IFrameSplitOperator.IsNumber(item.VPenType))chart.ChartCorssCursor.VPenType=item.VPenType;if(IFrameSplitOperator.IsBool(item.EnableKeyboard))chart.ChartCorssCursor.EnableKeyboard=item.EnableKeyboard;if(IFrameSplitOperator.IsBool(item.EnableDBClick))chart.ChartCorssCursor.EnableDBClick=item.EnableDBClick;if(IFrameSplitOperator.IsBool(item.IsShowCorssPoint))chart.ChartCorssCursor.CorssPointConfig.Enable=item.IsShowCorssPoint;if(IFrameSplitOperator.IsNumber(item.VLineType))chart.ChartCorssCursor.VLineType=item.VLineType;if(item.TextStyle){if(item.TextStyle.Right)//右侧输出样式
1317
+ {var subItem=item.TextStyle.Right;if(IFrameSplitOperator.IsNumber(subItem.Type))chart.ChartCorssCursor.StringFormatY.TextStyleConfig.Right.Type=subItem.Type;}}}if(option.MinuteInfo)chart.CreateMinuteInfo(option.MinuteInfo);if(IFrameSplitOperator.IsBool(option.IsShowRightMenu))chart.IsShowRightMenu=option.IsShowRightMenu;if(IFrameSplitOperator.IsNumber(option.DayCount))chart.DayCount=option.DayCount;this.SetChartBorder(chart,option);if(option.SplashTitle)chart.ChartSplashPaint.SplashTitle=option.SplashTitle;if(IFrameSplitOperator.IsBool(option.EnableBorderDrag)){chart.EnableBorderDrag=option.EnableBorderDrag;}if(IFrameSplitOperator.IsBool(option.EnableBuySellBar)){var barChart=chart.GetChartMinuteBuySellBar();if(barChart)barChart.IsShow=option.EnableBuySellBar;}this.AdjustChartBorder(chart);if(option.Frame){for(var i=0;i<option.Frame.length;++i){var item=option.Frame[i];if(!chart.Frame.SubFrame[i])continue;chart.SetSubFrameAttribute(chart.Frame.SubFrame[i],null,item);/*
1317
1318
  var subFrame=chart.Frame.SubFrame[i].Frame;
1318
1319
 
1319
1320
  if (IFrameSplitOperator.IsNumber(item.SplitCount)) chart.Frame.SubFrame[i].Frame.YSplitOperator.SplitCount=item.SplitCount;
@@ -1815,6 +1816,7 @@ CMD_CORSS_SHOW_INCREASE_ID:60,//十字光标 底部显示"至今涨幅"
1815
1816
  CMD_CORSS_X_TEXTALIGN_ID:61,//十字光标 底部文字对齐方式
1816
1817
  CMD_CHANGE_YRIGHT_TEXT_FORMAT:62,//分时图主图 右侧刻度格式
1817
1818
  CMD_ENABLE_ZOOM_Y_ID:63,//放大缩小Y坐标 { FrameID:, Enable: , Range:{ Max:, Min: }}
1819
+ CMD_CORSS_YRIGHT_TEXT_STYLE:64,//十字光标右侧输出样式
1818
1820
  CMD_REPORT_CHANGE_BLOCK_ID:100,//报价列表 切换板块ID
1819
1821
  CMD_REPORT_COLUMN_SORT_ID:101,//报价列表 表头排序 Arg[列序号, 排序方向]
1820
1822
  CMD_REPORT_COLUMN_DEL_ID:102,//报价列表 删除列
@@ -2576,7 +2578,7 @@ this.Draw();break;case JSCHART_MENU_ID.CMD_ENABLE_OVERLAY_SHARE_Y_ID:if(!srcPara
2576
2578
  this.UpdateFrameMaxMin();//调整坐标最大 最小值
2577
2579
  this.Draw();break;case JSCHART_MENU_ID.CMD_CHANGE_DEFAULTCURSOR_ID:if(!IFrameSplitOperator.IsString(srcParam))return;this.DefaultCursor=srcParam;this.UIElement.style.cursor=this.DefaultCursor;break;case JSCHART_MENU_ID.CMD_ADD_OVERLAY_INDEX_ID://叠加指标 0=windowIndex, 1=indexinfo
2578
2580
  if(param==null||!aryArgs[1])return false;var obj=aryArgs[1];obj.WindowIndex=param;this.AddOverlayIndex(obj);break;case JSCHART_MENU_ID.CMD_CHANGE_LANGUAGE_ID:if(srcParam)this.SetLanguage(srcParam);break;case JSCHART_MENU_ID.CMD_CHANGE_DRAG_RECT_SHOW_MODE_ID:if(param!=null){if(this.ChartDragSelectRect)this.ChartDragSelectRect.ShowMode=param;}break;case JSCHART_MENU_ID.CMD_SHOW_CORSS_LINE_ID:if(IFrameSplitOperator.IsBool(srcParam)){if(this.ChartCorssCursor)this.ChartCorssCursor.IsShowCorss=srcParam;}break;case JSCHART_MENU_ID.CMD_ENABLE_POP_MINUTE_CHART_ID://双击弹分时图
2579
- if(IFrameSplitOperator.IsBool(srcParam)){if(srcParam){this.DestroyPopMinuteChart();this.InitalPopMinuteChart({PopMinuteChart:{Enable:true}});}else{this.DestroyPopMinuteChart();}}break;case JSCHART_MENU_ID.CMD_CHANGE_INFO_POSITION_ID:if(param==null)return false;var klineChart=this.ChartPaint[0];if(!klineChart)return false;klineChart.InfoPosition=param;this.Draw();break;case JSCHART_MENU_ID.CMD_DIALOG_TOOLTIP_ATTRIBUTE:if(!aryArgs[0])return false;var option=aryArgs[0];if(!IFrameSplitOperator.IsBool(option.Enable))return false;if(option.Enable===false){this.DestroyTooltipDialog();}else{this.DestroyTooltipDialog();this.InitalTooltipDialog(option);}break;case JSCHART_MENU_ID.CMD_KLINE_TOOLTIP_ATTRIBUTE:if(!aryArgs[0])return false;var option=aryArgs[0];if(IFrameSplitOperator.IsBool(option.Enable))this.KLineTooltipConfig.Enable=option.Enable;if(IFrameSplitOperator.IsBool(option.EnableKeyDown))this.KLineTooltipConfig.EnableKeyDown=option.EnableKeyDown;break;case JSCHART_MENU_ID.CMD_MODIFY_INDEX_PARAM:if(param==null)return false;var sendData={e:null,WindowIndex:param,Type:1};this.ShowModifyIndexParamDialog(sendData);break;case JSCHART_MENU_ID.CMD_MODIFY_OVERLAY_INDEX_PARAM:if(param==null)return false;if(!aryArgs[1])return false;var sendData={e:null,WindowIndex:param,Type:2,Identify:aryArgs[1]};this.ShowModifyIndexParamDialog(sendData);break;case JSCHART_MENU_ID.CMD_LOCK_CROSSCURSOR:if(srcParam)this.LockCorssCursor(srcParam);break;case JSCHART_MENU_ID.CMD_UNLOCK_CROSSCURSOR:if(this.IsLockCorssCursor())this.UnlockCorssCursor({Draw:true});break;case JSCHART_MENU_ID.CMD_CORSS_ON_CLOSE_LINE_ID:if(IFrameSplitOperator.IsBool(srcParam)&&this.ChartCorssCursor)this.ChartCorssCursor.IsOnlyDrawMinute=srcParam;break;case JSCHART_MENU_ID.CMD_CORSS_ON_VAILD_TIME_ID:if(IFrameSplitOperator.IsBool(srcParam)&&this.ChartCorssCursor)this.ChartCorssCursor.IsFixXLastTime=srcParam;break;case JSCHART_MENU_ID.CMD_CORSS_ON_KLINE_ID:if(IFrameSplitOperator.IsBool(srcParam)&&this.ChartCorssCursor){this.ChartCorssCursor.IsOnlyDrawKLine=srcParam;this.ChartCorssCursor.IsShowClose=srcParam;}break;case JSCHART_MENU_ID.CMD_CORSS_SHOW_INCREASE_ID:if(IFrameSplitOperator.IsBool(srcParam)&&this.ChartCorssCursor){this.ChartCorssCursor.StringFormatX.RangeIncrease.IsShow=srcParam;}break;case JSCHART_MENU_ID.CMD_CORSS_X_TEXTALIGN_ID:if(param==null)return false;if(this.ChartCorssCursor)this.ChartCorssCursor.BottomConfig.Align=param;break;case JSCHART_MENU_ID.CMD_CORSS_POINT_ID:if(IFrameSplitOperator.IsBool(srcParam)&&this.ChartCorssCursor)this.ChartCorssCursor.CorssPointConfig.Enable=srcParam;break;case JSCHART_MENU_ID.CMD_CORSS_DBCLICK_ID:if(IFrameSplitOperator.IsBool(srcParam)&&this.ChartCorssCursor)this.ChartCorssCursor.EnableDBClick=srcParam;break;case JSCHART_MENU_ID.CMD_RBUTTON_SELECT_RECT_ID:if(IFrameSplitOperator.IsBool(srcParam)&&this.ChartDragSelectRect)this.ChartDragSelectRect.EnableRButton=srcParam;break;case JSCHART_MENU_ID.CMD_LBUTTON_SELECT_RECT_ID:if(IFrameSplitOperator.IsBool(srcParam)&&this.ChartDragSelectRect)this.ChartDragSelectRect.EnableLButton=srcParam;break;case JSCHART_MENU_ID.CMD_ENABLE_XDRAG_BOTTOM_ID:if(IFrameSplitOperator.IsBool(srcParam))this.EnableXDrag.Bottom=srcParam;if(IFrameSplitOperator.IsNonEmptyArray(aryArgs)&&IFrameSplitOperator.IsNumber(aryArgs[1]))this.EnableXDrag.LButton.Type=aryArgs[1];if(IFrameSplitOperator.IsNonEmptyArray(aryArgs)&&IFrameSplitOperator.IsNumber(aryArgs[2]))this.EnableXDrag.RButton.Type=aryArgs[2];break;case JSCHART_MENU_ID.CMD_FULLSCREEN_SUMMARY_ID:this.FullScreenSummary();break;case JSCHART_MENU_ID.CMD_ENABLE_KLINE_DAY_SUMMARY_ID:if(IFrameSplitOperator.IsBool(srcParam)){this.ChartPaint[0].DaySummary.Enable=srcParam;this.Draw();}break;case JSCHART_MENU_ID.CMD_SHOW_BUYSELL_BAR_ID:if(IFrameSplitOperator.IsBool(srcParam)){var chart=this.GetChartMinuteBuySellBar();chart.IsShow=srcParam;this.RequestData({ClearYCoordinateMaxMin:true});this.Draw();}break;case JSCHART_MENU_ID.CMD_CHANGE_YRIGHT_TEXT_FORMAT:if(param==null)return false;if(!this.Frame.SubFrame[0]||!this.Frame.SubFrame[0].Frame)return false;var frame=this.Frame.SubFrame[0].Frame;if(!frame.YSplitOperator||!frame.YSplitOperator.RightTextConfig)return false;frame.YSplitOperator.RightTextConfig.Format=param;if(param===2)frame.MultiTextFormat=1;this.ResetFrameXYSplit();this.Draw();break;case JSCHART_MENU_ID.CMD_ENABLE_ZOOM_Y_ID:if(!srcParam)return false;if(this.EnableZoomYCoordinate)this.EnableZoomYCoordinate(srcParam);break;}};this.GetShowIndexMenuData=function(windowIndex,showType){var script=this.WindowIndex[windowIndex];if(!script)return null;var data={Name:script.IsShow?"隐藏指标":"显示指标",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_INDEX_ID,Args:[windowIndex,0]}};return data;};this.GetModifyIndexMenuData=function(windowIndex){var data={Name:"参数修改",Data:{ID:JSCHART_MENU_ID.CMD_MODIFY_INDEX_PARAM,Args:[windowIndex]}};return data;};this.GetShowOverlayIndexMenuData=function(indexGuid,showType){var overlay=this.GetOverlayIndexByIdentify(indexGuid);if(!overlay||!overlay.OverlayItem||!overlay.OverlayItem.Script)return null;var script=overlay.OverlayItem.Script;var data={Name:script.IsShow?"隐藏指标":"显示指标",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_OVERLAY_INDEX_ID,Args:[indexGuid,0]}};return data;};this.GetModifyOverlayIndexMenuData=function(indexGuid){var overlay=this.GetOverlayIndexByIdentify(indexGuid);if(!overlay)return null;var data={Name:"参数修改",Data:{ID:JSCHART_MENU_ID.CMD_MODIFY_OVERLAY_INDEX_PARAM,Args:[overlay.WindowIndex,indexGuid]}};return data;};this.GetShowOverlayIndexYAxisMenuData=function(indexGuid,showType){var overlay=this.GetOverlayIndexByIdentify(indexGuid);if(!overlay||!overlay.OverlayItem||!overlay.OverlayItem.Script)return null;var frame=overlay.OverlayItem.Frame;var data={Name:frame.IsShow?"隐藏Y轴":"显示Y轴",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_OVERLAY_Y_AXIS_ID,Args:[indexGuid,0]}};return data;};this.GetOverlayIndexShareYMenuData=function(indexGuid,showType){var overlay=this.GetOverlayIndexByIdentify(indexGuid);if(!overlay||!overlay.OverlayItem||!overlay.OverlayItem.Script)return null;var frame=overlay.OverlayItem.Frame;var data={Name:"公用窗口Y轴",Data:{ID:JSCHART_MENU_ID.CMD_ENABLE_OVERLAY_SHARE_Y_ID,Args:[indexGuid,0]},Checked:frame.IsShareY};return data;};//点击右键菜单
2581
+ if(IFrameSplitOperator.IsBool(srcParam)){if(srcParam){this.DestroyPopMinuteChart();this.InitalPopMinuteChart({PopMinuteChart:{Enable:true}});}else{this.DestroyPopMinuteChart();}}break;case JSCHART_MENU_ID.CMD_CHANGE_INFO_POSITION_ID:if(param==null)return false;var klineChart=this.ChartPaint[0];if(!klineChart)return false;klineChart.InfoPosition=param;this.Draw();break;case JSCHART_MENU_ID.CMD_DIALOG_TOOLTIP_ATTRIBUTE:if(!aryArgs[0])return false;var option=aryArgs[0];if(!IFrameSplitOperator.IsBool(option.Enable))return false;if(option.Enable===false){this.DestroyTooltipDialog();}else{this.DestroyTooltipDialog();this.InitalTooltipDialog(option);}break;case JSCHART_MENU_ID.CMD_KLINE_TOOLTIP_ATTRIBUTE:if(!aryArgs[0])return false;var option=aryArgs[0];if(IFrameSplitOperator.IsBool(option.Enable))this.KLineTooltipConfig.Enable=option.Enable;if(IFrameSplitOperator.IsBool(option.EnableKeyDown))this.KLineTooltipConfig.EnableKeyDown=option.EnableKeyDown;break;case JSCHART_MENU_ID.CMD_MODIFY_INDEX_PARAM:if(param==null)return false;var sendData={e:null,WindowIndex:param,Type:1};this.ShowModifyIndexParamDialog(sendData);break;case JSCHART_MENU_ID.CMD_MODIFY_OVERLAY_INDEX_PARAM:if(param==null)return false;if(!aryArgs[1])return false;var sendData={e:null,WindowIndex:param,Type:2,Identify:aryArgs[1]};this.ShowModifyIndexParamDialog(sendData);break;case JSCHART_MENU_ID.CMD_LOCK_CROSSCURSOR:if(srcParam)this.LockCorssCursor(srcParam);break;case JSCHART_MENU_ID.CMD_UNLOCK_CROSSCURSOR:if(this.IsLockCorssCursor())this.UnlockCorssCursor({Draw:true});break;case JSCHART_MENU_ID.CMD_CORSS_ON_CLOSE_LINE_ID:if(IFrameSplitOperator.IsBool(srcParam)&&this.ChartCorssCursor)this.ChartCorssCursor.IsOnlyDrawMinute=srcParam;break;case JSCHART_MENU_ID.CMD_CORSS_ON_VAILD_TIME_ID:if(IFrameSplitOperator.IsBool(srcParam)&&this.ChartCorssCursor)this.ChartCorssCursor.IsFixXLastTime=srcParam;break;case JSCHART_MENU_ID.CMD_CORSS_ON_KLINE_ID:if(IFrameSplitOperator.IsBool(srcParam)&&this.ChartCorssCursor){this.ChartCorssCursor.IsOnlyDrawKLine=srcParam;this.ChartCorssCursor.IsShowClose=srcParam;}break;case JSCHART_MENU_ID.CMD_CORSS_SHOW_INCREASE_ID:if(IFrameSplitOperator.IsBool(srcParam)&&this.ChartCorssCursor){this.ChartCorssCursor.StringFormatX.RangeIncrease.IsShow=srcParam;}break;case JSCHART_MENU_ID.CMD_CORSS_X_TEXTALIGN_ID:if(param==null)return false;if(this.ChartCorssCursor)this.ChartCorssCursor.BottomConfig.Align=param;break;case JSCHART_MENU_ID.CMD_CORSS_POINT_ID:if(IFrameSplitOperator.IsBool(srcParam)&&this.ChartCorssCursor)this.ChartCorssCursor.CorssPointConfig.Enable=srcParam;break;case JSCHART_MENU_ID.CMD_CORSS_DBCLICK_ID:if(IFrameSplitOperator.IsBool(srcParam)&&this.ChartCorssCursor)this.ChartCorssCursor.EnableDBClick=srcParam;break;case JSCHART_MENU_ID.CMD_RBUTTON_SELECT_RECT_ID:if(IFrameSplitOperator.IsBool(srcParam)&&this.ChartDragSelectRect)this.ChartDragSelectRect.EnableRButton=srcParam;break;case JSCHART_MENU_ID.CMD_LBUTTON_SELECT_RECT_ID:if(IFrameSplitOperator.IsBool(srcParam)&&this.ChartDragSelectRect)this.ChartDragSelectRect.EnableLButton=srcParam;break;case JSCHART_MENU_ID.CMD_ENABLE_XDRAG_BOTTOM_ID:if(IFrameSplitOperator.IsBool(srcParam))this.EnableXDrag.Bottom=srcParam;if(IFrameSplitOperator.IsNonEmptyArray(aryArgs)&&IFrameSplitOperator.IsNumber(aryArgs[1]))this.EnableXDrag.LButton.Type=aryArgs[1];if(IFrameSplitOperator.IsNonEmptyArray(aryArgs)&&IFrameSplitOperator.IsNumber(aryArgs[2]))this.EnableXDrag.RButton.Type=aryArgs[2];break;case JSCHART_MENU_ID.CMD_FULLSCREEN_SUMMARY_ID:this.FullScreenSummary();break;case JSCHART_MENU_ID.CMD_ENABLE_KLINE_DAY_SUMMARY_ID:if(IFrameSplitOperator.IsBool(srcParam)){this.ChartPaint[0].DaySummary.Enable=srcParam;this.Draw();}break;case JSCHART_MENU_ID.CMD_SHOW_BUYSELL_BAR_ID:if(IFrameSplitOperator.IsBool(srcParam)){var chart=this.GetChartMinuteBuySellBar();chart.IsShow=srcParam;this.RequestData({ClearYCoordinateMaxMin:true});this.Draw();}break;case JSCHART_MENU_ID.CMD_CHANGE_YRIGHT_TEXT_FORMAT:if(param==null)return false;if(!this.Frame.SubFrame[0]||!this.Frame.SubFrame[0].Frame)return false;var frame=this.Frame.SubFrame[0].Frame;if(!frame.YSplitOperator||!frame.YSplitOperator.RightTextConfig)return false;frame.YSplitOperator.RightTextConfig.Format=param;if(param===2)frame.MultiTextFormat=1;this.ResetFrameXYSplit();this.Draw();break;case JSCHART_MENU_ID.CMD_CORSS_YRIGHT_TEXT_STYLE:if(param==null)return false;if(!this.ChartCorssCursor||!this.ChartCorssCursor.StringFormatY)return false;this.ChartCorssCursor.StringFormatY.TextStyleConfig.Right.Type=param;break;case JSCHART_MENU_ID.CMD_ENABLE_ZOOM_Y_ID:if(!srcParam)return false;if(this.EnableZoomYCoordinate)this.EnableZoomYCoordinate(srcParam);break;}};this.GetShowIndexMenuData=function(windowIndex,showType){var script=this.WindowIndex[windowIndex];if(!script)return null;var data={Name:script.IsShow?"隐藏指标":"显示指标",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_INDEX_ID,Args:[windowIndex,0]}};return data;};this.GetModifyIndexMenuData=function(windowIndex){var data={Name:"参数修改",Data:{ID:JSCHART_MENU_ID.CMD_MODIFY_INDEX_PARAM,Args:[windowIndex]}};return data;};this.GetShowOverlayIndexMenuData=function(indexGuid,showType){var overlay=this.GetOverlayIndexByIdentify(indexGuid);if(!overlay||!overlay.OverlayItem||!overlay.OverlayItem.Script)return null;var script=overlay.OverlayItem.Script;var data={Name:script.IsShow?"隐藏指标":"显示指标",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_OVERLAY_INDEX_ID,Args:[indexGuid,0]}};return data;};this.GetModifyOverlayIndexMenuData=function(indexGuid){var overlay=this.GetOverlayIndexByIdentify(indexGuid);if(!overlay)return null;var data={Name:"参数修改",Data:{ID:JSCHART_MENU_ID.CMD_MODIFY_OVERLAY_INDEX_PARAM,Args:[overlay.WindowIndex,indexGuid]}};return data;};this.GetShowOverlayIndexYAxisMenuData=function(indexGuid,showType){var overlay=this.GetOverlayIndexByIdentify(indexGuid);if(!overlay||!overlay.OverlayItem||!overlay.OverlayItem.Script)return null;var frame=overlay.OverlayItem.Frame;var data={Name:frame.IsShow?"隐藏Y轴":"显示Y轴",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_OVERLAY_Y_AXIS_ID,Args:[indexGuid,0]}};return data;};this.GetOverlayIndexShareYMenuData=function(indexGuid,showType){var overlay=this.GetOverlayIndexByIdentify(indexGuid);if(!overlay||!overlay.OverlayItem||!overlay.OverlayItem.Script)return null;var frame=overlay.OverlayItem.Frame;var data={Name:"公用窗口Y轴",Data:{ID:JSCHART_MENU_ID.CMD_ENABLE_OVERLAY_SHARE_Y_ID,Args:[indexGuid,0]},Checked:frame.IsShareY};return data;};//点击右键菜单
2580
2582
  this.OnClickRightMenu=function(data){JSConsole.Chart.Log('[JSChartContainer::OnClickRightMenu] ',data);if(!data||!data.Data)return;var cmdID=data.Data.ID;//命令ID
2581
2583
  var aryArgs=data.Data.Args;//参数
2582
2584
  var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_MENU_COMMAND);//回调通知外部
@@ -6168,7 +6170,7 @@ if(barWidth>2*pixel)this.Canvas.lineWidth=barWidth;}this.Canvas.beginPath();if(t
6168
6170
  this.StringFormatX.Value=this.CursorIndex;this.StringFormatX.Point={X:x,Y:y};this.StringFormatX.ClientPos=clientPos;this.StringFormatY.Value=yValue;this.StringFormatY.RValue=yValueExtend.RightYValue;//右侧子坐标
6169
6171
  this.StringFormatY.FrameID=yValueExtend.FrameID;this.StringFormatY.Point={X:x,Y:y};this.StringFormatY.ClientPos=clientPos;this.Canvas.font=this.Font;var textHeight=this.GetFontHeight();if(textHeight>this.TextHeight)this.TextHeight=textHeight;//Y轴
6170
6172
  if((this.ShowTextMode.Left==1&&this.Frame.ChartBorder.Left>=30||this.ShowTextMode.Left==2||this.ShowTextMode.Right==1&&this.Frame.ChartBorder.Right>=30||this.ShowTextMode.Right==2)&&this.StringFormatY.Operator()){//计算右侧文本输出顶部位置
6171
- var _Temp_CalculateRightTextBGTop=function _Temp_CalculateRightTextBGTop(rtBG,complexText,defaultTextHeight){if(complexText.ShowType==1){var yValue=defaultTextHeight/2;if(IFrameSplitOperator.IsNonEmptyArray(textSize.Text)&&textSize.Text[0]){var itemSize=textSize.Text[0];if(IFrameSplitOperator.IsNumber(itemSize.Height))yValue=itemSize.Height/2;}rtBG.Top=rtBG.YCenter-yValue;rtBG.Bottom=rtBG.Top+rtBG.Height;}else{rtBG.Top=rtBG.YCenter-rtBG.Height/2;rtBG.Bottom=rtBG.Top+rtBG.Height;}};var text=this.StringFormatY.Text;this.Canvas.font=this.Font;var textWidth=this.Canvas.measureText(text).width;//前后各空2个像素
6173
+ var _Temp_CalculateRightTextBGTop=function _Temp_CalculateRightTextBGTop(rtBG,complexText,defaultTextHeight){if(complexText.ShowType==1){var yValue=defaultTextHeight/2;if(IFrameSplitOperator.IsNonEmptyArray(textSize.Text)&&textSize.Text[0]){var itemSize=textSize.Text[0];if(IFrameSplitOperator.IsNumber(itemSize.Height))yValue=itemSize.Height/2;}if(complexText.BaseLine=="center"){rtBG.Top=rtBG.YCenter-rtBG.Height/2;rtBG.Bottom=rtBG.Top+rtBG.Height;}else{rtBG.Top=rtBG.YCenter-yValue;rtBG.Bottom=rtBG.Top+rtBG.Height;}}else{rtBG.Top=rtBG.YCenter-rtBG.Height/2;rtBG.Bottom=rtBG.Top+rtBG.Height;}};var text=this.StringFormatY.Text;this.Canvas.font=this.Font;var textWidth=this.Canvas.measureText(text).width;//前后各空2个像素
6172
6174
  var textSize={Width:textWidth+4,Height:this.TextHeight,Text:[]};var buttonData={Y:y,YValue:yValue,FrameID:yValueExtend.FrameID};var margin=this.LeftConfig.Margin;var textOffset=this.LeftConfig.TextOffset;var rtBG=null;if(this.Frame.ChartBorder.Left>=30&&this.ShowTextMode.Left==1)//左边
6173
6175
  {var rtBG={Right:left,Width:textWidth+margin.Left+margin.Right,YCenter:y,Height:textHeight+margin.Top+margin.Bottom};rtBG.Left=rtBG.Right-rtBG.Width;rtBG.Top=rtBG.YCenter-rtBG.Height/2;rtBG.Bottom=rtBG.Top+rtBG.Height;if(rtBG.Left<0){rtBG.Left=0;rtBG.Right=rtBG.Left+rtBG.Width;}this.Status|=JSCHART_CORSSCURSOR_STATUS_ID.LEFT_TEXT_ID;}else if(this.ShowTextMode.Left==2)//在框架内显示
6174
6176
  {var rtBG={Left:left,Width:textWidth+margin.Left+margin.Right,YCenter:y,Height:textHeight+margin.Top+margin.Bottom};rtBG.Right=rtBG.Left+rtBG.Width;rtBG.Top=rtBG.YCenter-rtBG.Height/2;rtBG.Bottom=rtBG.Top+rtBG.Height;this.Status|=JSCHART_CORSSCURSOR_STATUS_ID.LEFT_INTER_TEXT_ID;}if(rtBG){this.DrawTextBGRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);this.Canvas.textAlign="left";this.Canvas.textBaseline="bottom";this.Canvas.fillStyle=this.TextColor;this.Canvas.fillText(text,rtBG.Left+textOffset.X,rtBG.Bottom+textOffset.Y);}var complexText={ShowType:0,//0=单行(默认) 1=多行
@@ -6191,14 +6193,12 @@ var margin=this.RightOverlayConfig.Margin;var textOffset=this.RightOverlayConfig
6191
6193
  if (textWidth<frame.Interval) break;
6192
6194
  }
6193
6195
  */this.Canvas.textAlign="left";this.Canvas.textBaseline="bottom";this.Canvas.fillStyle=this.TextColor;this.Canvas.fillText(text,rtBG.Left+textOffset.X,rtBG.Bottom+textOffset.Y);}}};this.DrawComplexRightText=function(rtBG,complexText,size){this.Canvas.textAlign="left";this.Canvas.textBaseline="bottom";var showType=0;if(complexText.ShowType==1)showType=complexText.ShowType;if(showType==1)//多行
6194
- {var xLeft=rtBG.Left;var yTop=rtBG.Top;//顶
6195
- for(var i=0;i<complexText.Text.length;++i){var item=complexText.Text[i];var itemSize=size.Text[i];if(item.Font)this.Canvas.font=item.Font;else this.Canvas.font=complexText.Font;if(item.Color)this.Canvas.fillStyle=item.Color;else this.Canvas.fillStyle=complexText.Color;var y=yTop+itemSize.Height;var x=xLeft;if(item.TextOffset){var textOffset=item.TextOffset;if(IFrameSplitOperator.IsNumber(textOffset.X))x+=textOffset.X;if(IFrameSplitOperator.IsNumber(textOffset.Y))y+=textOffset.Y;}this.Canvas.fillText(item.Text,x,y,itemSize.Width);yTop+=itemSize.Height;}}else//水平 单行
6196
+ {var yTop=rtBG.Top;//顶
6197
+ for(var i=0;i<complexText.Text.length;++i){var item=complexText.Text[i];var itemSize=size.Text[i];if(item.Font)this.Canvas.font=item.Font;else this.Canvas.font=complexText.Font;if(item.Color)this.Canvas.fillStyle=item.Color;else this.Canvas.fillStyle=complexText.Color;var y=yTop+itemSize.Height;var xLeft=rtBG.Left,xRight=rtBG.Right;if(item.Margin){var margin=item.Margin;if(IFrameSplitOperator.IsNumber(margin.Left))xLeft+=margin.Left;if(IFrameSplitOperator.IsNumber(margin.Right))xRight-=margin.Right;}var x=xLeft;if(item.TextAlign=="right")x=xRight-itemSize.TextWidth;else if(item.TextAlign=="center")x=rtBG.Left+rtBG.Width/2-itemSize.TextWidth/2;if(item.TextOffset){var textOffset=item.TextOffset;if(IFrameSplitOperator.IsNumber(textOffset.X))x+=textOffset.X;if(IFrameSplitOperator.IsNumber(textOffset.Y))y+=textOffset.Y;}this.Canvas.fillText(item.Text,x,y,itemSize.TextWidth);yTop+=itemSize.Height;}}else//水平 单行
6196
6198
  {var xText=rtBG.Left;var yBottom=rtBG.Bottom;for(var i=0;i<complexText.Text.length;++i){var item=complexText.Text[i];var itemSize=size.Text[i];if(item.Font)this.Canvas.font=item.Font;else this.Canvas.font=complexText.Font;if(item.Color)this.Canvas.fillStyle=item.Color;else this.Canvas.fillStyle=complexText.Color;var x=xText;var y=yBottom;if(item.TextOffset){var textOffset=item.TextOffset;if(IFrameSplitOperator.IsNumber(textOffset.X))x+=textOffset.X;if(IFrameSplitOperator.IsNumber(textOffset.Y))y+=textOffset.Y;}this.Canvas.fillText(item.Text,x,y,itemSize.Width);xText+=itemSize.Width;}}};this.CalculateComplexTextSize=function(complexText,size){if(!complexText||!IFrameSplitOperator.IsNonEmptyArray(complexText.Text))return;var showType=0;if(complexText.ShowType==1)showType=complexText.ShowType;if(showType==1)//多行
6197
- {var textWidth=0,textHeight=0;for(var i=0;i<complexText.Text.length;++i){var item=complexText.Text[i];if(item.Font)this.Canvas.font=item.Font;else this.Canvas.font=complexText.Font;var itemWidth=this.Canvas.measureText(item.Text).width;//前后各空2个像素
6198
- var itemHeight=this.GetFontHeight();if(item.Margin){var margin=item.Margin;if(IFrameSplitOperator.IsNumber(margin.Left))itemWidth+=margin.Left;if(IFrameSplitOperator.IsNumber(margin.Right))itemWidth+=margin.Right;if(IFrameSplitOperator.IsNumber(margin.Top))itemHeight+=margin.Top;if(IFrameSplitOperator.IsNumber(margin.Bottom))itemHeight+=margin.Bottom;}size.Text[i]={Width:itemWidth,Height:itemHeight};//保存所有文字的大小信息
6199
+ {var textWidth=0,textHeight=0;for(var i=0;i<complexText.Text.length;++i){var item=complexText.Text[i];if(item.Font)this.Canvas.font=item.Font;else this.Canvas.font=complexText.Font;var outWidth=this.Canvas.measureText(item.Text).width;var itemWidth=outWidth;var itemHeight=this.GetFontHeight();if(item.Margin){var margin=item.Margin;if(IFrameSplitOperator.IsNumber(margin.Left))itemWidth+=margin.Left;if(IFrameSplitOperator.IsNumber(margin.Right))itemWidth+=margin.Right;if(IFrameSplitOperator.IsNumber(margin.Top))itemHeight+=margin.Top;if(IFrameSplitOperator.IsNumber(margin.Bottom))itemHeight+=margin.Bottom;}size.Text[i]={Width:itemWidth,Height:itemHeight,TextWidth:outWidth};//保存所有文字的大小信息
6199
6200
  if(textWidth<itemWidth)textWidth=itemWidth;textHeight+=itemHeight;}size.Width=textWidth;size.Height=textHeight;}else//水平 单行
6200
- {var textWidth=0,textHeight=this.GetFontHeight();for(var i=0;i<complexText.Text.length;++i){var item=complexText.Text[i];if(item.Font)this.Canvas.font=item.Font;else this.Canvas.font=complexText.Font;var itemWidth=this.Canvas.measureText(item.Text).width;//前后各空2个像素
6201
- var itemHeight=this.Canvas.measureText("擎").width;if(item.Margin){var margin=item.Margin;if(IFrameSplitOperator.IsNumber(margin.Left))itemWidth+=margin.Left;if(IFrameSplitOperator.IsNumber(margin.Right))itemWidth+=margin.Right;if(IFrameSplitOperator.IsNumber(margin.Top))itemHeight+=margin.Top;if(IFrameSplitOperator.IsNumber(margin.Bottom))itemHeight+=margin.Bottom;}size.Text[i]={Width:itemWidth,Height:itemHeight};//保存所有文字的大小信息
6201
+ {var textWidth=0,textHeight=this.GetFontHeight();for(var i=0;i<complexText.Text.length;++i){var item=complexText.Text[i];if(item.Font)this.Canvas.font=item.Font;else this.Canvas.font=complexText.Font;var outWidth=this.Canvas.measureText(item.Text).width;var itemWidth=outWidth;var itemHeight=this.Canvas.measureText("擎").width;if(item.Margin){var margin=item.Margin;if(IFrameSplitOperator.IsNumber(margin.Left))itemWidth+=margin.Left;if(IFrameSplitOperator.IsNumber(margin.Right))itemWidth+=margin.Right;if(IFrameSplitOperator.IsNumber(margin.Top))itemHeight+=margin.Top;if(IFrameSplitOperator.IsNumber(margin.Bottom))itemHeight+=margin.Bottom;}size.Text[i]={Width:itemWidth,Height:itemHeight,TextWidth:outWidth};//保存所有文字的大小信息
6202
6202
  textWidth+=itemWidth;if(textHeight<itemHeight)textHeight=itemHeight;}size.Width=textWidth;size.Height=textHeight;}};this.DrawRightButtonV2=function(rtTextBG,complexText,textSize,data){this.Canvas.fillStyle=this.RightButton.BGColor;var drawHeight=rtTextBG.Height;var drawWidth=rtTextBG.Height;if(complexText.ShowType==1)//多行 取第1行高度
6203
6203
  {var itemSize=textSize.Text[0];drawHeight=itemSize.Height;drawWidth=itemSize.Height;}var rtButton={Left:rtTextBG.Left-drawHeight,Top:rtTextBG.Top,Width:drawWidth,Height:drawHeight};rtButton.Right=rtButton.Left+rtButton.Width;rtButton.Bottom=rtButton.Top+rtButton.Height;this.RightButton.Rect=rtButton;this.RightButton.Data=data;this.Canvas.fillRect(ToFixedPoint(rtButton.Left+1),ToFixedPoint(rtButton.Top),ToFixedRect(rtButton.Width),ToFixedRect(rtButton.Height));var pixelRatio=GetDevicePixelRatio();var spaceWidth=3;var yCenter=rtButton.Top+spaceWidth+(rtButton.Height-spaceWidth*2)/2;var xCenter=rtButton.Left+spaceWidth+(rtButton.Width-spaceWidth*2)/2;if(this.RightButton.Icon){var icon=this.RightButton.Icon;this.Canvas.font=icon.Size*pixelRatio+'px '+icon.Family;this.Canvas.textAlign="center";this.Canvas.textBaseline="middle";this.Canvas.fillStyle=icon.Color;this.Canvas.fillText('\uE6A3',xCenter,yCenter);}else{//画加号
6204
6204
  this.Canvas.strokeStyle=this.RightButton.PenColor;var x=rtButtom.Left+spaceWidth;var y=rtButtom.Top+spaceWidth;this.Canvas.save();this.Canvas.linewidth=1*pixelRatio;this.Canvas.beginPath();this.Canvas.moveTo(ToFixedPoint(x),ToFixedPoint(yCenter));this.Canvas.lineTo(ToFixedPoint(x+rtButton.Width-spaceWidth*2),ToFixedPoint(yCenter));this.Canvas.moveTo(ToFixedPoint(xCenter),ToFixedPoint(y));this.Canvas.lineTo(ToFixedPoint(xCenter),ToFixedPoint(y+rtButton.Height-spaceWidth*2));this.Canvas.stroke();this.Canvas.restore();}};this.DrawRightButton=function(drawTop,drawRight,drawWidth,drawHeight,data){this.Canvas.fillStyle=this.RightButton.BGColor;var rtButton={Left:drawRight-drawWidth,Top:drawTop,Width:drawWidth,Height:drawHeight};rtButton.Right=rtButton.Left+rtButton.Width;rtButton.Bottom=rtButton.Top+rtButton.Height;this.RightButton.Rect=rtButton;this.RightButton.Data=data;this.Canvas.fillRect(ToFixedPoint(rtButton.Left+1),ToFixedPoint(rtButton.Top),ToFixedRect(rtButton.Width),ToFixedRect(rtButton.Height));var pixelRatio=GetDevicePixelRatio();var spaceWidth=3;var yCenter=rtButton.Top+spaceWidth+(rtButton.Height-spaceWidth*2)/2;var xCenter=rtButton.Left+spaceWidth+(rtButton.Width-spaceWidth*2)/2;if(this.RightButton.Icon){var icon=this.RightButton.Icon;this.Canvas.font=icon.Size*pixelRatio+'px '+icon.Family;this.Canvas.textAlign="center";this.Canvas.textBaseline="middle";this.Canvas.fillStyle=icon.Color;this.Canvas.fillText('\uE6A3',xCenter,yCenter);}else{//画加号
@@ -6269,7 +6269,9 @@ this.newMethod();delete this.newMethod;this.Symbol;this.FrameID;this.Frame;this.
6269
6269
  this.PercentageText;//百分比
6270
6270
  this.RValue;//右边值
6271
6271
  this.RText;this.RComplexText;//{ Space:2 间距, Text:[ {Color:, Text: }] } 支持单行多颜色
6272
- this.Point;this.ClientPos=-1;this.HQChart;this.ExtendChartPaint;this.RExtendText=[];this.BeforeOpenData;this.AfterCloseData;this.MultiDayBeforeOpenData;this.MultiDayAfterCloseData;this.ShareAfterVol=0;//1=主图共享 2=盘前共享
6272
+ this.Point;this.ClientPos=-1;this.HQChart;this.TextStyleConfig={Right:{Type:-1}};//输出文本样式 Type: -1=默认 1=价格 2=价格|涨幅 2行(分时图)
6273
+ //自定义样式模板
6274
+ this.TextStyleTemplate=[null,null];this.ExtendChartPaint;this.RExtendText=[];this.BeforeOpenData;this.AfterCloseData;this.MultiDayBeforeOpenData;this.MultiDayAfterCloseData;this.ShareAfterVol=0;//1=主图共享 2=盘前共享
6273
6275
  this.PriceFormatType=0;//主窗口格式 0=默认 1=科学计数
6274
6276
  this.DataFormatType=0;//副图指标格式 0=默认 1=科学计数
6275
6277
  this.GetEventCallback;//盘前集合竞价
@@ -6278,10 +6280,12 @@ if(IFrameSplitOperator.IsNumber(value)){this.RText=this.Text=IFrameSplitOperator
6278
6280
  this.GetAfterClose=function(){if(!this.Frame)return false;var item=this.Frame.SubFrame[this.FrameID];if(!item||!item.Frame)return false;if(!this.AfterCloseData)return false;var range={Max:this.AfterCloseData.VolMax,Min:this.AfterCloseData.VolMin};var y=this.Frame.IsHScreen?this.Point.X:this.Point.Y;var value=item.Frame.GetRightExtendYData(y,false,{Range:range});var defaultfloatPrecision=2;//价格小数位数
6279
6281
  if(IFrameSplitOperator.IsNumber(value)){this.RText=this.Text=IFrameSplitOperator.FormatValueString(value,defaultfloatPrecision,this.LanguageID);}};this.GetMultiDayBeforeOpen=function(){if(!this.Frame)return false;var item=this.Frame.SubFrame[this.FrameID];if(!item||!item.Frame)return false;var multiDayBeforeOpenData=this.GetMultiDayBeforeOpenData();if(!multiDayBeforeOpenData||!IFrameSplitOperator.IsNonEmptyArray(multiDayBeforeOpenData))return;var dayIndex=this.ClientPos-200;if(dayIndex<0||dayIndex>=multiDayBeforeOpenData.length)return false;var dayData=multiDayBeforeOpenData[dayIndex];var range={Max:dayData.VolMax,Min:dayData.VolMin};var y=this.Frame.IsHScreen?this.Point.X:this.Point.Y;var value=item.Frame.GetLeftExtendYData(y,false,{Range:range});var defaultfloatPrecision=2;//价格小数位数
6280
6282
  if(IFrameSplitOperator.IsNumber(value)){this.RText=this.Text=IFrameSplitOperator.FormatValueString(value,defaultfloatPrecision,this.LanguageID);}};this.GetMultiDayAfterClose=function(){if(!this.Frame)return false;var item=this.Frame.SubFrame[this.FrameID];if(!item||!item.Frame)return false;var multiDayAfterCloseData=this.GetMultiDayAfterCloseData();if(!multiDayAfterCloseData||!IFrameSplitOperator.IsNonEmptyArray(multiDayAfterCloseData))return;var dayIndex=this.ClientPos-300;if(dayIndex<0||dayIndex>=multiDayAfterCloseData.length)return false;var dayData=multiDayAfterCloseData[dayIndex];var range={Max:dayData.VolMax,Min:dayData.VolMin};var y=this.Frame.IsHScreen?this.Point.X:this.Point.Y;var value=item.Frame.GetRightExtendYData(y,false,{Range:range});var defaultfloatPrecision=2;//价格小数位数
6281
- if(IFrameSplitOperator.IsNumber(value)){this.RText=this.Text=IFrameSplitOperator.FormatValueString(value,defaultfloatPrecision,this.LanguageID);}};this.Operator=function(){this.RText=null;this.RComplexText=null;this.RExtendText=[];if(IFrameSplitOperator.IsString(this.RValue))this.RText=this.RValue;if(!this.Value)return false;this.PercentageText=null;var defaultfloatPrecision=2;//价格小数位数
6283
+ if(IFrameSplitOperator.IsNumber(value)){this.RText=this.Text=IFrameSplitOperator.FormatValueString(value,defaultfloatPrecision,this.LanguageID);}};this.GetTextStyleTemplate=function(type,defaultTemplate){var template=this.TextStyleTemplate[type];if(!template)return defaultTemplate;return CloneData(template);};this.Operator=function(){this.RText=null;this.RComplexText=null;this.RExtendText=[];if(IFrameSplitOperator.IsString(this.RValue))this.RText=this.RValue;if(!this.Value)return false;this.PercentageText=null;var defaultfloatPrecision=2;//价格小数位数
6282
6284
  if(this.FrameID==0)//第1个窗口显示原始价格
6283
- {var defaultfloatPrecision=GetfloatPrecision(this.Symbol);if(this.PriceFormatType==1)this.Text=IFrameSplitOperator.FormatValueThousandsString(this.Value,defaultfloatPrecision);else this.Text=this.Value.toFixed(defaultfloatPrecision);if(this.YClose>0)this.PercentageText=((this.Value-this.YClose)*100/this.YClose).toFixed(2);//走势图右边坐标显示百分比
6284
- this.GetExtendPaintData(defaultfloatPrecision);}else if(this.FrameID==1){if(this.DataFormatType==1){this.Text=IFrameSplitOperator.FormatValueThousandsString(this.Value,defaultfloatPrecision);if(IFrameSplitOperator.IsNumber(this.RValue))this.RText=IFrameSplitOperator.FormatValueString(this.RValue,defaultfloatPrecision,this.LanguageID);}else{this.Text=IFrameSplitOperator.FormatValueString(this.Value,defaultfloatPrecision,this.LanguageID);if(IFrameSplitOperator.IsNumber(this.RValue))this.RText=IFrameSplitOperator.FormatValueString(this.RValue,defaultfloatPrecision,this.LanguageID);}if(this.ClientPos==2){this.GetBeforeOpen();}else if(this.ClientPos==3){if(this.ShareAfterVol==0||this.ShareAfterVol==2)this.GetAfterClose();}else if(this.ClientPos>=200&&this.ClientPos<=299){this.GetMultiDayBeforeOpen();}else if(this.ClientPos>=300&&this.ClientPos<=399){if(this.ShareAfterVol==0||this.ShareAfterVol==2)this.GetMultiDayAfterClose();}}else{if(this.DataFormatType==1)this.Text=IFrameSplitOperator.FormatValueThousandsString(this.Value,defaultfloatPrecision);else this.Text=IFrameSplitOperator.FormatValueString(this.Value,defaultfloatPrecision,this.LanguageID);if(IFrameSplitOperator.IsNumber(this.RValue))this.RText=IFrameSplitOperator.FormatValueString(this.RValue,defaultfloatPrecision,this.LanguageID);var bCallAuction=false;if(this.HQChart&&this.HQChart.IsCallAuctionFrame)bCallAuction=this.HQChart.IsCallAuctionFrame(this.FrameID);if(bCallAuction){if(this.ClientPos==2){this.GetBeforeOpen();}else if(this.ClientPos==3){if(this.ShareAfterVol==0||this.ShareAfterVol==2)this.GetAfterClose();}else if(this.ClientPos>=200&&this.ClientPos<=299){this.GetMultiDayBeforeOpen();}else if(this.ClientPos>=300&&this.ClientPos<=399){if(this.ShareAfterVol==0||this.ShareAfterVol==2)this.GetMultiDayAfterClose();}}}if(this.GetEventCallback){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_FORMAT_CORSSCURSOR_Y_TEXT);if(event){var data={Value:this.Value,FrameID:this.FrameID,PreventDefault:false};event.Callback(event,data,this);if(data.PreventDefault==true)return false;}}return true;};//深度图刻度
6285
+ {var defaultfloatPrecision=GetfloatPrecision(this.Symbol);if(this.PriceFormatType==1)this.Text=IFrameSplitOperator.FormatValueThousandsString(this.Value,defaultfloatPrecision);else this.Text=this.Value.toFixed(defaultfloatPrecision);if(this.TextStyleConfig.Right.Type==2){if(IFrameSplitOperator.IsNumber(this.YClose)){var value=(this.Value-this.YClose)*100/this.YClose;var text=value.toFixed(2)+'%';if(value>=0)text=' '+value.toFixed(2)+'%';var defaultTemplate={ShowType:1,Space:2,BaseLine:"center",Text:[{Text:null,TextAlign:"center",Margin:{Left:2,Right:2}},{Text:null,TextAlign:"center",Margin:{Left:2,Right:2}}]};var complexText=this.GetTextStyleTemplate(this.TextStyleConfig.Right.Type,defaultTemplate);complexText.Text[0].Text=this.Text;//价格
6286
+ complexText.Text[1].Text=text;//百分比
6287
+ this.RComplexText=complexText;}}else if(this.TextStyleConfig.Right.Type==1){}else{if(IFrameSplitOperator.IsNumber(this.YClose))this.PercentageText=((this.Value-this.YClose)*100/this.YClose).toFixed(2);//走势图右边坐标显示百分比
6288
+ }this.GetExtendPaintData(defaultfloatPrecision);}else if(this.FrameID==1){if(this.DataFormatType==1){this.Text=IFrameSplitOperator.FormatValueThousandsString(this.Value,defaultfloatPrecision);if(IFrameSplitOperator.IsNumber(this.RValue))this.RText=IFrameSplitOperator.FormatValueString(this.RValue,defaultfloatPrecision,this.LanguageID);}else{this.Text=IFrameSplitOperator.FormatValueString(this.Value,defaultfloatPrecision,this.LanguageID);if(IFrameSplitOperator.IsNumber(this.RValue))this.RText=IFrameSplitOperator.FormatValueString(this.RValue,defaultfloatPrecision,this.LanguageID);}if(this.ClientPos==2){this.GetBeforeOpen();}else if(this.ClientPos==3){if(this.ShareAfterVol==0||this.ShareAfterVol==2)this.GetAfterClose();}else if(this.ClientPos>=200&&this.ClientPos<=299){this.GetMultiDayBeforeOpen();}else if(this.ClientPos>=300&&this.ClientPos<=399){if(this.ShareAfterVol==0||this.ShareAfterVol==2)this.GetMultiDayAfterClose();}}else{if(this.DataFormatType==1)this.Text=IFrameSplitOperator.FormatValueThousandsString(this.Value,defaultfloatPrecision);else this.Text=IFrameSplitOperator.FormatValueString(this.Value,defaultfloatPrecision,this.LanguageID);if(IFrameSplitOperator.IsNumber(this.RValue))this.RText=IFrameSplitOperator.FormatValueString(this.RValue,defaultfloatPrecision,this.LanguageID);var bCallAuction=false;if(this.HQChart&&this.HQChart.IsCallAuctionFrame)bCallAuction=this.HQChart.IsCallAuctionFrame(this.FrameID);if(bCallAuction){if(this.ClientPos==2){this.GetBeforeOpen();}else if(this.ClientPos==3){if(this.ShareAfterVol==0||this.ShareAfterVol==2)this.GetAfterClose();}else if(this.ClientPos>=200&&this.ClientPos<=299){this.GetMultiDayBeforeOpen();}else if(this.ClientPos>=300&&this.ClientPos<=399){if(this.ShareAfterVol==0||this.ShareAfterVol==2)this.GetMultiDayAfterClose();}}}if(this.GetEventCallback){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_FORMAT_CORSSCURSOR_Y_TEXT);if(event){var data={Value:this.Value,FrameID:this.FrameID,PreventDefault:false};event.Callback(event,data,this);if(data.PreventDefault==true)return false;}}return true;};//深度图刻度
6285
6289
  this.GetExtendPaintData=function(floatPrecision){var value=parseInt(this.Value*ZOOM_VALUE[floatPrecision]);for(var i in this.ExtendChartPaint){var item=this.ExtendChartPaint[i];if(item.ClassName=='DepthMapPaint'&&item.FrameID==this.FrameID){var aryData=item.GetYValueByXValue(value,floatPrecision);for(var j in aryData){this.RExtendText.push(aryData[j]);}}}};}function HQDateStringFormat(){this.newMethod=IChangeStringFormat;//派生
6286
6290
  this.newMethod();delete this.newMethod;this.DateFormatType=0;//0=YYYY-MM-DD 1=YYYY/MM/DD 2=YYYY/MM/DD/W 3=DD/MM/YYYY
6287
6291
  this.LanguageID=0;this.KItem=null;//缓存当前的K线
@@ -9205,7 +9209,7 @@ this.GetRightMenuData=function(frameID,option){var windowCount=this.Frame.SubFra
9205
9209
  var aryOverlaySymbol=[];//叠加的股票列表
9206
9210
  for(var i=0;i<this.OverlayChartPaint.length;++i){var item=this.OverlayChartPaint[i];if(item&&item.Symbol)aryOverlaySymbol.push(item.Symbol);}var bShowCorss=false;//十字光标十字线
9207
9211
  var bCorssDrawCloseLine=false;//十字光标只能画在走势图价格线上
9208
- var bCorssDrawVaildTime=false;var bCorssDrawPoint=false;var bCorssBCClick=false;if(this.ChartCorssCursor){bShowCorss=this.ChartCorssCursor.IsShowCorss;bCorssDrawCloseLine=this.ChartCorssCursor.IsOnlyDrawMinute;bCorssDrawVaildTime=this.ChartCorssCursor.IsFixXLastTime;bCorssDrawPoint=this.ChartCorssCursor.CorssPointConfig.Enable;bCorssBCClick=this.ChartCorssCursor.EnableDBClick;}var bRButtonSelectRect=false,bLButtonSelectRect=false;if(this.ChartDragSelectRect){bRButtonSelectRect=this.ChartDragSelectRect.EnableRButton;bLButtonSelectRect=this.ChartDragSelectRect.EnableLButton;}var bShowBuySellBar=this.IsShowMinuteBuySellBar();var minItem=null;if(frameID>=0&&option&&IFrameSplitOperator.IsNumber(option.CursorIndex)){var kData=this.GetKData();if(kData&&IFrameSplitOperator.IsNonEmptyArray(kData.Data)){var dataIndex=kData.DataOffset+parseInt(option.CursorIndex.toFixed(0));if(dataIndex>=0&&dataIndex<kData.Data.length)minItem=kData.Data[dataIndex];}}var rightTextFormat=0;if(this.Frame.SubFrame[0]&&this.Frame.SubFrame[0].Frame&&this.Frame.SubFrame[0].Frame.YSplitOperator){var ySpliter=this.Frame.SubFrame[0].Frame.YSplitOperator;if(ySpliter.RightTextConfig)rightTextFormat=ySpliter.RightTextConfig.Format;}var aryMenu=[{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:"当日分时图",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID,Args:[1]},Checked:this.DayCount==1},{Name:"最近2日",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID,Args:[2]},Checked:this.DayCount==2},{Name:"最近3日",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID,Args:[3]},Checked:this.DayCount==3},{Name:"最近4日",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID,Args:[4]},Checked:this.DayCount==4},{Name:"最近5日",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID,Args:[5]},Checked:this.DayCount==5},{Name:"基准线选择",SubMenu:[{Name:"最新昨收价",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_BASELINE_ID,Args:[0]},Checked:this.BaselineType===0},{Name:"多日前昨收价",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_BASELINE_ID,Args:[1]},Checked:this.BaselineType===1}]}]},{Name:"指标窗口个数",SubMenu:[{Name:"1个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[2]},Checked:3==windowCount},{Name:"2个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[3]},Checked:4==windowCount},{Name:"3个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[4]},Checked:5==windowCount},{Name:"4个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[5]},Checked:6==windowCount},{Name:"5个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[6]},Checked:7==windowCount}]},{Name:"指标切换",SubMenu:[{Name:"MACD",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"MACD"]}},{Name:"DMI",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"DMI"]}},{Name:"DMA",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"DMA"]}},{Name:"BRAR",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"BRAR"]}},{Name:"KDJ",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"KDJ"]}},{Name:"RSI",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"RSI"]}},{Name:"WR",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"WR"]}},{Name:"CCI",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"CCI"]}},{Name:"TRIX",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"TRIX"]}}]},{Name:"区间选择",SubMenu:[{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:"十字光标",SubMenu:[{Name:"显示",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_CORSS_LINE_ID,Args:[!bShowCorss]},Checked:bShowCorss},{Name:"画在价格线上",Data:{ID:JSCHART_MENU_ID.CMD_CORSS_ON_CLOSE_LINE_ID,Args:[!bCorssDrawCloseLine]},Checked:bCorssDrawCloseLine},{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_SHOW_DRAWTOOL_ID,Args:[]},Checked:this.IsShowDrawToolDialog()},{Name:"盘口分析",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_BUYSELL_BAR_ID,Args:[!bShowBuySellBar]},Checked:bShowBuySellBar},{Name:JSPopMenu.SEPARATOR_LINE_NAME},{Name:"主图右侧坐标",SubMenu:[{Name:"百分比",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_YRIGHT_TEXT_FORMAT,Args:[0]},Checked:rightTextFormat===0},{Name:"价格",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_YRIGHT_TEXT_FORMAT,Args:[1]},Checked:rightTextFormat===1},{Name:"价格/百分比",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_YRIGHT_TEXT_FORMAT,Args:[2]},Checked:rightTextFormat===2}]},{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}]}]}];if(MARKET_SUFFIX_NAME.IsEnableCallAuction(this.Symbol)){var item={Name:"集合竞价",SubMenu:[]};var bShow=this.IsShowAfterData&&this.IsShowBeforeData;var subItem={Name:"盘后盘前(单日)",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID,Args:[{Left:!bShow,Right:!bShow}]},Checked:bShow};item.SubMenu.push(subItem);var subItem={Name:"盘前(单日)",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID,Args:[{Left:!this.IsShowBeforeData}]},Checked:this.IsShowBeforeData};item.SubMenu.push(subItem);var subItem={Name:"盘后(单日)",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID,Args:[{Right:!this.IsShowAfterData}]},Checked:this.IsShowAfterData};item.SubMenu.push(subItem);var bShow=this.IsShowMultiDayBeforeData&&this.IsShowMultiDayAfterData;var subItem={Name:"盘后盘前(多日)",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID,Args:[{MultiDay:{Left:!bShow,Right:!bShow}}]},Checked:bShow};item.SubMenu.push(subItem);var subItem={Name:"盘前(多日)",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID,Args:[{MultiDay:{Left:!this.IsShowMultiDayBeforeData}}]},Checked:this.IsShowMultiDayBeforeData};item.SubMenu.push(subItem);var subItem={Name:"盘后(多日)",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID,Args:[{MultiDay:{Right:!this.IsShowMultiDayAfterData}}]},Checked:this.IsShowMultiDayAfterData};item.SubMenu.push(subItem);aryMenu.splice(4,0,item);}for(var i=0;i<aryMenu.length;++i){var item=aryMenu[i];if(item.Name=="叠加品种")//删除菜单
9212
+ var bCorssDrawVaildTime=false;var bCorssDrawPoint=false;var bCorssBCClick=false;var corssRightTextStyle=-1;if(this.ChartCorssCursor){bShowCorss=this.ChartCorssCursor.IsShowCorss;bCorssDrawCloseLine=this.ChartCorssCursor.IsOnlyDrawMinute;bCorssDrawVaildTime=this.ChartCorssCursor.IsFixXLastTime;bCorssDrawPoint=this.ChartCorssCursor.CorssPointConfig.Enable;bCorssBCClick=this.ChartCorssCursor.EnableDBClick;if(this.ChartCorssCursor.StringFormatY)corssRightTextStyle=this.ChartCorssCursor.StringFormatY.TextStyleConfig.Right.Type;}var bRButtonSelectRect=false,bLButtonSelectRect=false;if(this.ChartDragSelectRect){bRButtonSelectRect=this.ChartDragSelectRect.EnableRButton;bLButtonSelectRect=this.ChartDragSelectRect.EnableLButton;}var bShowBuySellBar=this.IsShowMinuteBuySellBar();var minItem=null;if(frameID>=0&&option&&IFrameSplitOperator.IsNumber(option.CursorIndex)){var kData=this.GetKData();if(kData&&IFrameSplitOperator.IsNonEmptyArray(kData.Data)){var dataIndex=kData.DataOffset+parseInt(option.CursorIndex.toFixed(0));if(dataIndex>=0&&dataIndex<kData.Data.length)minItem=kData.Data[dataIndex];}}var rightTextFormat=0;if(this.Frame.SubFrame[0]&&this.Frame.SubFrame[0].Frame&&this.Frame.SubFrame[0].Frame.YSplitOperator){var ySpliter=this.Frame.SubFrame[0].Frame.YSplitOperator;if(ySpliter.RightTextConfig)rightTextFormat=ySpliter.RightTextConfig.Format;}var aryMenu=[{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:"当日分时图",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID,Args:[1]},Checked:this.DayCount==1},{Name:"最近2日",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID,Args:[2]},Checked:this.DayCount==2},{Name:"最近3日",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID,Args:[3]},Checked:this.DayCount==3},{Name:"最近4日",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID,Args:[4]},Checked:this.DayCount==4},{Name:"最近5日",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID,Args:[5]},Checked:this.DayCount==5},{Name:"基准线选择",SubMenu:[{Name:"最新昨收价",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_BASELINE_ID,Args:[0]},Checked:this.BaselineType===0},{Name:"多日前昨收价",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_BASELINE_ID,Args:[1]},Checked:this.BaselineType===1}]}]},{Name:"指标窗口个数",SubMenu:[{Name:"1个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[2]},Checked:3==windowCount},{Name:"2个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[3]},Checked:4==windowCount},{Name:"3个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[4]},Checked:5==windowCount},{Name:"4个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[5]},Checked:6==windowCount},{Name:"5个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[6]},Checked:7==windowCount}]},{Name:"指标切换",SubMenu:[{Name:"MACD",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"MACD"]}},{Name:"DMI",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"DMI"]}},{Name:"DMA",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"DMA"]}},{Name:"BRAR",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"BRAR"]}},{Name:"KDJ",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"KDJ"]}},{Name:"RSI",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"RSI"]}},{Name:"WR",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"WR"]}},{Name:"CCI",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"CCI"]}},{Name:"TRIX",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"TRIX"]}}]},{Name:"区间选择",SubMenu:[{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:"十字光标",SubMenu:[{Name:"显示",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_CORSS_LINE_ID,Args:[!bShowCorss]},Checked:bShowCorss},{Name:"画在价格线上",Data:{ID:JSCHART_MENU_ID.CMD_CORSS_ON_CLOSE_LINE_ID,Args:[!bCorssDrawCloseLine]},Checked:bCorssDrawCloseLine},{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_CORSS_YRIGHT_TEXT_STYLE,Args:[-1]},Checked:corssRightTextStyle===-1},{Name:"价格",Data:{ID:JSCHART_MENU_ID.CMD_CORSS_YRIGHT_TEXT_STYLE,Args:[1]},Checked:corssRightTextStyle===1},{Name:"价格|百分比(两行)",Data:{ID:JSCHART_MENU_ID.CMD_CORSS_YRIGHT_TEXT_STYLE,Args:[2]},Checked:corssRightTextStyle===2}]}]},{Name:"其他设置",SubMenu:[{Name:"画图工具",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_DRAWTOOL_ID,Args:[]},Checked:this.IsShowDrawToolDialog()},{Name:"盘口分析",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_BUYSELL_BAR_ID,Args:[!bShowBuySellBar]},Checked:bShowBuySellBar},{Name:JSPopMenu.SEPARATOR_LINE_NAME},{Name:"主图右侧坐标",SubMenu:[{Name:"百分比",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_YRIGHT_TEXT_FORMAT,Args:[0]},Checked:rightTextFormat===0},{Name:"价格",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_YRIGHT_TEXT_FORMAT,Args:[1]},Checked:rightTextFormat===1},{Name:"价格/百分比",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_YRIGHT_TEXT_FORMAT,Args:[2]},Checked:rightTextFormat===2}]},{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}]}]}];if(MARKET_SUFFIX_NAME.IsEnableCallAuction(this.Symbol)){var item={Name:"集合竞价",SubMenu:[]};var bShow=this.IsShowAfterData&&this.IsShowBeforeData;var subItem={Name:"盘后盘前(单日)",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID,Args:[{Left:!bShow,Right:!bShow}]},Checked:bShow};item.SubMenu.push(subItem);var subItem={Name:"盘前(单日)",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID,Args:[{Left:!this.IsShowBeforeData}]},Checked:this.IsShowBeforeData};item.SubMenu.push(subItem);var subItem={Name:"盘后(单日)",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID,Args:[{Right:!this.IsShowAfterData}]},Checked:this.IsShowAfterData};item.SubMenu.push(subItem);var bShow=this.IsShowMultiDayBeforeData&&this.IsShowMultiDayAfterData;var subItem={Name:"盘后盘前(多日)",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID,Args:[{MultiDay:{Left:!bShow,Right:!bShow}}]},Checked:bShow};item.SubMenu.push(subItem);var subItem={Name:"盘前(多日)",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID,Args:[{MultiDay:{Left:!this.IsShowMultiDayBeforeData}}]},Checked:this.IsShowMultiDayBeforeData};item.SubMenu.push(subItem);var subItem={Name:"盘后(多日)",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID,Args:[{MultiDay:{Right:!this.IsShowMultiDayAfterData}}]},Checked:this.IsShowMultiDayAfterData};item.SubMenu.push(subItem);aryMenu.splice(4,0,item);}for(var i=0;i<aryMenu.length;++i){var item=aryMenu[i];if(item.Name=="叠加品种")//删除菜单
9209
9213
  {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=="十字光标"){if(minItem){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:minItem.Date,Time:minItem.Time},Draw:true}]},Checked:bLocked});}}}return aryMenu;};this.OnWheel=function(e){JSConsole.Chart.Log('[MinuteChartContainer::OnWheel]',e);if(this.ChartSplashPaint&&this.ChartSplashPaint.IsEnableSplash==true)return;var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;var isInClient=false;var rtClient={Left:this.Frame.ChartBorder.GetLeft(),Right:this.Frame.ChartBorder.GetRight(),Top:this.Frame.ChartBorder.GetTop(),Bottom:this.Frame.ChartBorder.GetBottom(),Width:this.Frame.ChartBorder.GetWidth(),Height:this.Frame.ChartBorder.GetHeight()};if(x>=rtClient.Left&&x<=rtClient.Right&&y>=rtClient.Top&&y<=rtClient.Bottom)isInClient=true;var bPreventDefault=false;if(this.OnWheel_ChangeDayCount(e,x,y))//ctrl+上下滚轴
9210
9214
  {bPreventDefault=true;}else{if(this.OnWheel_ZoomUpDownFrameY(e,x,y))bPreventDefault=true;}if(bPreventDefault){if(e.preventDefault)e.preventDefault();else e.returnValue=false;}};//通过滚轴缩放Y轴
9211
9215
  this.OnWheel_ZoomUpDownFrameY=function(e,x,y){if(!this.EnableYDrag.Wheel)return false;var frameID=this.Frame.PtInFrame(x,y);if(frameID<0)return false;var frame=this.Frame.SubFrame[frameID].Frame;var splitOper=frame.YSplitOperator;if(!splitOper||!splitOper.FixedYMaxMin)return false;//Y轴缩放状态下才有效
@@ -15718,7 +15722,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
15718
15722
  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);};}/********************************************************************************
15719
15723
  * 版本信息输出
15720
15724
  *
15721
- */var HQCHART_VERSION="1.1.15309";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();//把给外界调用的方法暴露出来
15725
+ */var HQCHART_VERSION="1.1.15311";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();//把给外界调用的方法暴露出来
15722
15726
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
15723
15727
  // BaseIndex:BaseIndex,
15724
15728
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.15310",
3
+ "version": "1.1.15312",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -1136,6 +1136,15 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
1136
1136
  if (IFrameSplitOperator.IsBool(item.EnableDBClick)) chart.ChartCorssCursor.EnableDBClick=item.EnableDBClick;
1137
1137
  if (IFrameSplitOperator.IsBool(item.IsShowCorssPoint)) chart.ChartCorssCursor.CorssPointConfig.Enable=item.IsShowCorssPoint;
1138
1138
  if (IFrameSplitOperator.IsNumber(item.VLineType)) chart.ChartCorssCursor.VLineType=item.VLineType;
1139
+
1140
+ if (item.TextStyle)
1141
+ {
1142
+ if (item.TextStyle.Right) //右侧输出样式
1143
+ {
1144
+ var subItem=item.TextStyle.Right;
1145
+ if (IFrameSplitOperator.IsNumber(subItem.Type)) chart.ChartCorssCursor.StringFormatY.TextStyleConfig.Right.Type=subItem.Type;
1146
+ }
1147
+ }
1139
1148
  }
1140
1149
 
1141
1150
  if (option.MinuteInfo) chart.CreateMinuteInfo(option.MinuteInfo);
@@ -3139,6 +3148,7 @@ var JSCHART_MENU_ID=
3139
3148
 
3140
3149
  CMD_CHANGE_YRIGHT_TEXT_FORMAT:62, //分时图主图 右侧刻度格式
3141
3150
  CMD_ENABLE_ZOOM_Y_ID:63, //放大缩小Y坐标 { FrameID:, Enable: , Range:{ Max:, Min: }}
3151
+ CMD_CORSS_YRIGHT_TEXT_STYLE:64, //十字光标右侧输出样式
3142
3152
 
3143
3153
 
3144
3154
  CMD_REPORT_CHANGE_BLOCK_ID:100, //报价列表 切换板块ID
@@ -11941,6 +11951,11 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
11941
11951
  this.ResetFrameXYSplit();
11942
11952
  this.Draw();
11943
11953
  break;
11954
+ case JSCHART_MENU_ID.CMD_CORSS_YRIGHT_TEXT_STYLE:
11955
+ if (param==null) return false;
11956
+ if (!this.ChartCorssCursor || !this.ChartCorssCursor.StringFormatY) return false;
11957
+ this.ChartCorssCursor.StringFormatY.TextStyleConfig.Right.Type=param;
11958
+ break;
11944
11959
  case JSCHART_MENU_ID.CMD_ENABLE_ZOOM_Y_ID:
11945
11960
  if (!srcParam) return false;
11946
11961
  if (this.EnableZoomYCoordinate) this.EnableZoomYCoordinate(srcParam);
@@ -59134,8 +59149,16 @@ function ChartCorssCursor()
59134
59149
  if (IFrameSplitOperator.IsNumber(itemSize.Height)) yValue=itemSize.Height/2;
59135
59150
  }
59136
59151
 
59137
- rtBG.Top=rtBG.YCenter-yValue;
59138
- rtBG.Bottom=rtBG.Top+rtBG.Height;
59152
+ if (complexText.BaseLine=="center")
59153
+ {
59154
+ rtBG.Top=rtBG.YCenter-rtBG.Height/2;
59155
+ rtBG.Bottom=rtBG.Top+rtBG.Height;
59156
+ }
59157
+ else
59158
+ {
59159
+ rtBG.Top=rtBG.YCenter-yValue;
59160
+ rtBG.Bottom=rtBG.Top+rtBG.Height;
59161
+ }
59139
59162
  }
59140
59163
  else
59141
59164
  {
@@ -59348,7 +59371,6 @@ function ChartCorssCursor()
59348
59371
  if (complexText.ShowType==1) showType=complexText.ShowType;
59349
59372
  if (showType==1) //多行
59350
59373
  {
59351
- var xLeft=rtBG.Left;
59352
59374
  var yTop=rtBG.Top; //顶
59353
59375
  for(var i=0; i<complexText.Text.length; ++i)
59354
59376
  {
@@ -59362,7 +59384,17 @@ function ChartCorssCursor()
59362
59384
  else this.Canvas.fillStyle=complexText.Color;
59363
59385
 
59364
59386
  var y=yTop+itemSize.Height;
59387
+ var xLeft=rtBG.Left, xRight=rtBG.Right;
59388
+ if (item.Margin)
59389
+ {
59390
+ var margin=item.Margin;
59391
+ if (IFrameSplitOperator.IsNumber(margin.Left)) xLeft+=margin.Left;
59392
+ if (IFrameSplitOperator.IsNumber(margin.Right)) xRight-=margin.Right;
59393
+ }
59394
+
59365
59395
  var x=xLeft;
59396
+ if (item.TextAlign=="right") x=xRight-itemSize.TextWidth;
59397
+ else if (item.TextAlign=="center") x=rtBG.Left+rtBG.Width/2-itemSize.TextWidth/2;
59366
59398
 
59367
59399
  if (item.TextOffset)
59368
59400
  {
@@ -59371,7 +59403,7 @@ function ChartCorssCursor()
59371
59403
  if (IFrameSplitOperator.IsNumber(textOffset.Y)) y+=textOffset.Y;
59372
59404
  }
59373
59405
 
59374
- this.Canvas.fillText(item.Text,x,y,itemSize.Width);
59406
+ this.Canvas.fillText(item.Text,x,y,itemSize.TextWidth);
59375
59407
 
59376
59408
  yTop+=itemSize.Height;
59377
59409
  }
@@ -59422,7 +59454,8 @@ function ChartCorssCursor()
59422
59454
  var item=complexText.Text[i];
59423
59455
  if (item.Font) this.Canvas.font=item.Font;
59424
59456
  else this.Canvas.font=complexText.Font;
59425
- var itemWidth=this.Canvas.measureText(item.Text).width; //前后各空2个像素
59457
+ var outWidth=this.Canvas.measureText(item.Text).width;
59458
+ var itemWidth=outWidth
59426
59459
  var itemHeight=this.GetFontHeight();
59427
59460
  if (item.Margin)
59428
59461
  {
@@ -59433,7 +59466,7 @@ function ChartCorssCursor()
59433
59466
  if (IFrameSplitOperator.IsNumber(margin.Bottom)) itemHeight+=margin.Bottom;
59434
59467
  }
59435
59468
 
59436
- size.Text[i]={ Width:itemWidth, Height:itemHeight }; //保存所有文字的大小信息
59469
+ size.Text[i]={ Width:itemWidth, Height:itemHeight, TextWidth:outWidth }; //保存所有文字的大小信息
59437
59470
 
59438
59471
  if (textWidth<itemWidth) textWidth=itemWidth;
59439
59472
  textHeight+=itemHeight;
@@ -59450,8 +59483,8 @@ function ChartCorssCursor()
59450
59483
  var item=complexText.Text[i];
59451
59484
  if (item.Font) this.Canvas.font=item.Font;
59452
59485
  else this.Canvas.font=complexText.Font;
59453
-
59454
- var itemWidth=this.Canvas.measureText(item.Text).width; //前后各空2个像素
59486
+ var outWidth=this.Canvas.measureText(item.Text).width;
59487
+ var itemWidth=outWidth;
59455
59488
  var itemHeight=this.Canvas.measureText("擎").width;
59456
59489
  if (item.Margin)
59457
59490
  {
@@ -59462,7 +59495,7 @@ function ChartCorssCursor()
59462
59495
  if (IFrameSplitOperator.IsNumber(margin.Bottom)) itemHeight+=margin.Bottom;
59463
59496
  }
59464
59497
 
59465
- size.Text[i]={ Width:itemWidth, Height:itemHeight }; //保存所有文字的大小信息
59498
+ size.Text[i]={ Width:itemWidth, Height:itemHeight, TextWidth:outWidth }; //保存所有文字的大小信息
59466
59499
 
59467
59500
  textWidth+=itemWidth;
59468
59501
  if (textHeight<itemHeight) textHeight=itemHeight;
@@ -60473,6 +60506,24 @@ function HQPriceStringFormat()
60473
60506
  this.Point;
60474
60507
  this.ClientPos=-1;
60475
60508
  this.HQChart;
60509
+ this.TextStyleConfig={ Right:{ Type:-1 } }; //输出文本样式 Type: -1=默认 1=价格 2=价格|涨幅 2行(分时图)
60510
+ //自定义样式模板
60511
+ this.TextStyleTemplate=
60512
+ [
60513
+ null,
60514
+ null,
60515
+ /*
60516
+ {
60517
+ ShowType:1, Space:2,
60518
+ BaseLine:"center",
60519
+ Text:
60520
+ [
60521
+ { Text:null, TextAlign:"center", Margin:{ Left:5, Right:5 } },
60522
+ { Text:null, TextAlign:"center", Margin:{ Left:5, Right:5 } }
60523
+ ]
60524
+ }
60525
+ */
60526
+ ]
60476
60527
 
60477
60528
  this.ExtendChartPaint;
60478
60529
  this.RExtendText=[];
@@ -60566,6 +60617,13 @@ function HQPriceStringFormat()
60566
60617
  }
60567
60618
  }
60568
60619
 
60620
+ this.GetTextStyleTemplate=function(type, defaultTemplate)
60621
+ {
60622
+ var template=this.TextStyleTemplate[type];
60623
+ if (!template) return defaultTemplate;
60624
+ return CloneData(template);
60625
+ }
60626
+
60569
60627
  this.Operator=function()
60570
60628
  {
60571
60629
  this.RText=null;
@@ -60584,7 +60642,41 @@ function HQPriceStringFormat()
60584
60642
  else
60585
60643
  this.Text=this.Value.toFixed(defaultfloatPrecision);
60586
60644
 
60587
- if (this.YClose>0) this.PercentageText=((this.Value-this.YClose)*100/this.YClose).toFixed(2); //走势图右边坐标显示百分比
60645
+ if (this.TextStyleConfig.Right.Type==2)
60646
+ {
60647
+ if (IFrameSplitOperator.IsNumber(this.YClose))
60648
+ {
60649
+ var value=(this.Value-this.YClose)*100/this.YClose;
60650
+ var text=`${value.toFixed(2)}%`;
60651
+ if (value>=0) text=` ${value.toFixed(2)}%`;
60652
+
60653
+ var defaultTemplate=
60654
+ {
60655
+ ShowType:1, Space:2,
60656
+ BaseLine:"center",
60657
+ Text:
60658
+ [
60659
+ { Text:null, TextAlign:"center", Margin:{ Left:2, Right:2 } },
60660
+ { Text:null, TextAlign:"center", Margin:{ Left:2, Right:2 }}
60661
+ ]
60662
+ }
60663
+
60664
+ var complexText=this.GetTextStyleTemplate(this.TextStyleConfig.Right.Type,defaultTemplate);
60665
+
60666
+ complexText.Text[0].Text=this.Text; //价格
60667
+ complexText.Text[1].Text=text; //百分比
60668
+
60669
+ this.RComplexText=complexText;
60670
+ }
60671
+ }
60672
+ else if (this.TextStyleConfig.Right.Type==1)
60673
+ {
60674
+
60675
+ }
60676
+ else
60677
+ {
60678
+ if (IFrameSplitOperator.IsNumber(this.YClose)) this.PercentageText=((this.Value-this.YClose)*100/this.YClose).toFixed(2); //走势图右边坐标显示百分比
60679
+ }
60588
60680
 
60589
60681
  this.GetExtendPaintData(defaultfloatPrecision);
60590
60682
  }
@@ -92753,6 +92845,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
92753
92845
  var bCorssDrawVaildTime=false;
92754
92846
  var bCorssDrawPoint=false;
92755
92847
  var bCorssBCClick=false;
92848
+ var corssRightTextStyle=-1;
92756
92849
  if (this.ChartCorssCursor)
92757
92850
  {
92758
92851
  bShowCorss=this.ChartCorssCursor.IsShowCorss;
@@ -92760,6 +92853,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
92760
92853
  bCorssDrawVaildTime=this.ChartCorssCursor.IsFixXLastTime;
92761
92854
  bCorssDrawPoint=this.ChartCorssCursor.CorssPointConfig.Enable;
92762
92855
  bCorssBCClick=this.ChartCorssCursor.EnableDBClick;
92856
+ if (this.ChartCorssCursor.StringFormatY) corssRightTextStyle=this.ChartCorssCursor.StringFormatY.TextStyleConfig.Right.Type;
92763
92857
  }
92764
92858
 
92765
92859
  var bRButtonSelectRect=false,bLButtonSelectRect=false;
@@ -92867,6 +92961,15 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
92867
92961
  { Name:"画在有效X轴上",Data:{ ID:JSCHART_MENU_ID.CMD_CORSS_ON_VAILD_TIME_ID, Args:[!bCorssDrawVaildTime]}, Checked:bCorssDrawVaildTime },
92868
92962
  { Name:"画圆点",Data:{ ID:JSCHART_MENU_ID.CMD_CORSS_POINT_ID, Args:[!bCorssDrawPoint]}, Checked:bCorssDrawPoint },
92869
92963
  { Name:"双击显示/隐藏", Data:{ ID:JSCHART_MENU_ID.CMD_CORSS_DBCLICK_ID, Args:[!bCorssBCClick]}, Checked:bCorssBCClick },
92964
+ {
92965
+ Name:"主图右侧文字格式",
92966
+ SubMenu:
92967
+ [
92968
+ { Name:"默认(百分比)", Data:{ ID:JSCHART_MENU_ID.CMD_CORSS_YRIGHT_TEXT_STYLE, Args:[-1]}, Checked:corssRightTextStyle===-1 },
92969
+ { Name:"价格", Data:{ ID:JSCHART_MENU_ID.CMD_CORSS_YRIGHT_TEXT_STYLE, Args:[1]}, Checked:corssRightTextStyle===1 },
92970
+ { Name:"价格|百分比(两行)", Data:{ ID:JSCHART_MENU_ID.CMD_CORSS_YRIGHT_TEXT_STYLE, Args:[2]}, Checked:corssRightTextStyle===2 },
92971
+ ]
92972
+ },
92870
92973
  ]
92871
92974
  },
92872
92975
 
@@ -5232,6 +5232,15 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
5232
5232
  if (IFrameSplitOperator.IsBool(item.EnableDBClick)) chart.ChartCorssCursor.EnableDBClick=item.EnableDBClick;
5233
5233
  if (IFrameSplitOperator.IsBool(item.IsShowCorssPoint)) chart.ChartCorssCursor.CorssPointConfig.Enable=item.IsShowCorssPoint;
5234
5234
  if (IFrameSplitOperator.IsNumber(item.VLineType)) chart.ChartCorssCursor.VLineType=item.VLineType;
5235
+
5236
+ if (item.TextStyle)
5237
+ {
5238
+ if (item.TextStyle.Right) //右侧输出样式
5239
+ {
5240
+ var subItem=item.TextStyle.Right;
5241
+ if (IFrameSplitOperator.IsNumber(subItem.Type)) chart.ChartCorssCursor.StringFormatY.TextStyleConfig.Right.Type=subItem.Type;
5242
+ }
5243
+ }
5235
5244
  }
5236
5245
 
5237
5246
  if (option.MinuteInfo) chart.CreateMinuteInfo(option.MinuteInfo);
@@ -7235,6 +7244,7 @@ var JSCHART_MENU_ID=
7235
7244
 
7236
7245
  CMD_CHANGE_YRIGHT_TEXT_FORMAT:62, //分时图主图 右侧刻度格式
7237
7246
  CMD_ENABLE_ZOOM_Y_ID:63, //放大缩小Y坐标 { FrameID:, Enable: , Range:{ Max:, Min: }}
7247
+ CMD_CORSS_YRIGHT_TEXT_STYLE:64, //十字光标右侧输出样式
7238
7248
 
7239
7249
 
7240
7250
  CMD_REPORT_CHANGE_BLOCK_ID:100, //报价列表 切换板块ID
@@ -16037,6 +16047,11 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
16037
16047
  this.ResetFrameXYSplit();
16038
16048
  this.Draw();
16039
16049
  break;
16050
+ case JSCHART_MENU_ID.CMD_CORSS_YRIGHT_TEXT_STYLE:
16051
+ if (param==null) return false;
16052
+ if (!this.ChartCorssCursor || !this.ChartCorssCursor.StringFormatY) return false;
16053
+ this.ChartCorssCursor.StringFormatY.TextStyleConfig.Right.Type=param;
16054
+ break;
16040
16055
  case JSCHART_MENU_ID.CMD_ENABLE_ZOOM_Y_ID:
16041
16056
  if (!srcParam) return false;
16042
16057
  if (this.EnableZoomYCoordinate) this.EnableZoomYCoordinate(srcParam);
@@ -63230,8 +63245,16 @@ function ChartCorssCursor()
63230
63245
  if (IFrameSplitOperator.IsNumber(itemSize.Height)) yValue=itemSize.Height/2;
63231
63246
  }
63232
63247
 
63233
- rtBG.Top=rtBG.YCenter-yValue;
63234
- rtBG.Bottom=rtBG.Top+rtBG.Height;
63248
+ if (complexText.BaseLine=="center")
63249
+ {
63250
+ rtBG.Top=rtBG.YCenter-rtBG.Height/2;
63251
+ rtBG.Bottom=rtBG.Top+rtBG.Height;
63252
+ }
63253
+ else
63254
+ {
63255
+ rtBG.Top=rtBG.YCenter-yValue;
63256
+ rtBG.Bottom=rtBG.Top+rtBG.Height;
63257
+ }
63235
63258
  }
63236
63259
  else
63237
63260
  {
@@ -63444,7 +63467,6 @@ function ChartCorssCursor()
63444
63467
  if (complexText.ShowType==1) showType=complexText.ShowType;
63445
63468
  if (showType==1) //多行
63446
63469
  {
63447
- var xLeft=rtBG.Left;
63448
63470
  var yTop=rtBG.Top; //顶
63449
63471
  for(var i=0; i<complexText.Text.length; ++i)
63450
63472
  {
@@ -63458,7 +63480,17 @@ function ChartCorssCursor()
63458
63480
  else this.Canvas.fillStyle=complexText.Color;
63459
63481
 
63460
63482
  var y=yTop+itemSize.Height;
63483
+ var xLeft=rtBG.Left, xRight=rtBG.Right;
63484
+ if (item.Margin)
63485
+ {
63486
+ var margin=item.Margin;
63487
+ if (IFrameSplitOperator.IsNumber(margin.Left)) xLeft+=margin.Left;
63488
+ if (IFrameSplitOperator.IsNumber(margin.Right)) xRight-=margin.Right;
63489
+ }
63490
+
63461
63491
  var x=xLeft;
63492
+ if (item.TextAlign=="right") x=xRight-itemSize.TextWidth;
63493
+ else if (item.TextAlign=="center") x=rtBG.Left+rtBG.Width/2-itemSize.TextWidth/2;
63462
63494
 
63463
63495
  if (item.TextOffset)
63464
63496
  {
@@ -63467,7 +63499,7 @@ function ChartCorssCursor()
63467
63499
  if (IFrameSplitOperator.IsNumber(textOffset.Y)) y+=textOffset.Y;
63468
63500
  }
63469
63501
 
63470
- this.Canvas.fillText(item.Text,x,y,itemSize.Width);
63502
+ this.Canvas.fillText(item.Text,x,y,itemSize.TextWidth);
63471
63503
 
63472
63504
  yTop+=itemSize.Height;
63473
63505
  }
@@ -63518,7 +63550,8 @@ function ChartCorssCursor()
63518
63550
  var item=complexText.Text[i];
63519
63551
  if (item.Font) this.Canvas.font=item.Font;
63520
63552
  else this.Canvas.font=complexText.Font;
63521
- var itemWidth=this.Canvas.measureText(item.Text).width; //前后各空2个像素
63553
+ var outWidth=this.Canvas.measureText(item.Text).width;
63554
+ var itemWidth=outWidth
63522
63555
  var itemHeight=this.GetFontHeight();
63523
63556
  if (item.Margin)
63524
63557
  {
@@ -63529,7 +63562,7 @@ function ChartCorssCursor()
63529
63562
  if (IFrameSplitOperator.IsNumber(margin.Bottom)) itemHeight+=margin.Bottom;
63530
63563
  }
63531
63564
 
63532
- size.Text[i]={ Width:itemWidth, Height:itemHeight }; //保存所有文字的大小信息
63565
+ size.Text[i]={ Width:itemWidth, Height:itemHeight, TextWidth:outWidth }; //保存所有文字的大小信息
63533
63566
 
63534
63567
  if (textWidth<itemWidth) textWidth=itemWidth;
63535
63568
  textHeight+=itemHeight;
@@ -63546,8 +63579,8 @@ function ChartCorssCursor()
63546
63579
  var item=complexText.Text[i];
63547
63580
  if (item.Font) this.Canvas.font=item.Font;
63548
63581
  else this.Canvas.font=complexText.Font;
63549
-
63550
- var itemWidth=this.Canvas.measureText(item.Text).width; //前后各空2个像素
63582
+ var outWidth=this.Canvas.measureText(item.Text).width;
63583
+ var itemWidth=outWidth;
63551
63584
  var itemHeight=this.Canvas.measureText("擎").width;
63552
63585
  if (item.Margin)
63553
63586
  {
@@ -63558,7 +63591,7 @@ function ChartCorssCursor()
63558
63591
  if (IFrameSplitOperator.IsNumber(margin.Bottom)) itemHeight+=margin.Bottom;
63559
63592
  }
63560
63593
 
63561
- size.Text[i]={ Width:itemWidth, Height:itemHeight }; //保存所有文字的大小信息
63594
+ size.Text[i]={ Width:itemWidth, Height:itemHeight, TextWidth:outWidth }; //保存所有文字的大小信息
63562
63595
 
63563
63596
  textWidth+=itemWidth;
63564
63597
  if (textHeight<itemHeight) textHeight=itemHeight;
@@ -64569,6 +64602,24 @@ function HQPriceStringFormat()
64569
64602
  this.Point;
64570
64603
  this.ClientPos=-1;
64571
64604
  this.HQChart;
64605
+ this.TextStyleConfig={ Right:{ Type:-1 } }; //输出文本样式 Type: -1=默认 1=价格 2=价格|涨幅 2行(分时图)
64606
+ //自定义样式模板
64607
+ this.TextStyleTemplate=
64608
+ [
64609
+ null,
64610
+ null,
64611
+ /*
64612
+ {
64613
+ ShowType:1, Space:2,
64614
+ BaseLine:"center",
64615
+ Text:
64616
+ [
64617
+ { Text:null, TextAlign:"center", Margin:{ Left:5, Right:5 } },
64618
+ { Text:null, TextAlign:"center", Margin:{ Left:5, Right:5 } }
64619
+ ]
64620
+ }
64621
+ */
64622
+ ]
64572
64623
 
64573
64624
  this.ExtendChartPaint;
64574
64625
  this.RExtendText=[];
@@ -64662,6 +64713,13 @@ function HQPriceStringFormat()
64662
64713
  }
64663
64714
  }
64664
64715
 
64716
+ this.GetTextStyleTemplate=function(type, defaultTemplate)
64717
+ {
64718
+ var template=this.TextStyleTemplate[type];
64719
+ if (!template) return defaultTemplate;
64720
+ return CloneData(template);
64721
+ }
64722
+
64665
64723
  this.Operator=function()
64666
64724
  {
64667
64725
  this.RText=null;
@@ -64680,7 +64738,41 @@ function HQPriceStringFormat()
64680
64738
  else
64681
64739
  this.Text=this.Value.toFixed(defaultfloatPrecision);
64682
64740
 
64683
- if (this.YClose>0) this.PercentageText=((this.Value-this.YClose)*100/this.YClose).toFixed(2); //走势图右边坐标显示百分比
64741
+ if (this.TextStyleConfig.Right.Type==2)
64742
+ {
64743
+ if (IFrameSplitOperator.IsNumber(this.YClose))
64744
+ {
64745
+ var value=(this.Value-this.YClose)*100/this.YClose;
64746
+ var text=`${value.toFixed(2)}%`;
64747
+ if (value>=0) text=` ${value.toFixed(2)}%`;
64748
+
64749
+ var defaultTemplate=
64750
+ {
64751
+ ShowType:1, Space:2,
64752
+ BaseLine:"center",
64753
+ Text:
64754
+ [
64755
+ { Text:null, TextAlign:"center", Margin:{ Left:2, Right:2 } },
64756
+ { Text:null, TextAlign:"center", Margin:{ Left:2, Right:2 }}
64757
+ ]
64758
+ }
64759
+
64760
+ var complexText=this.GetTextStyleTemplate(this.TextStyleConfig.Right.Type,defaultTemplate);
64761
+
64762
+ complexText.Text[0].Text=this.Text; //价格
64763
+ complexText.Text[1].Text=text; //百分比
64764
+
64765
+ this.RComplexText=complexText;
64766
+ }
64767
+ }
64768
+ else if (this.TextStyleConfig.Right.Type==1)
64769
+ {
64770
+
64771
+ }
64772
+ else
64773
+ {
64774
+ if (IFrameSplitOperator.IsNumber(this.YClose)) this.PercentageText=((this.Value-this.YClose)*100/this.YClose).toFixed(2); //走势图右边坐标显示百分比
64775
+ }
64684
64776
 
64685
64777
  this.GetExtendPaintData(defaultfloatPrecision);
64686
64778
  }
@@ -96849,6 +96941,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
96849
96941
  var bCorssDrawVaildTime=false;
96850
96942
  var bCorssDrawPoint=false;
96851
96943
  var bCorssBCClick=false;
96944
+ var corssRightTextStyle=-1;
96852
96945
  if (this.ChartCorssCursor)
96853
96946
  {
96854
96947
  bShowCorss=this.ChartCorssCursor.IsShowCorss;
@@ -96856,6 +96949,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
96856
96949
  bCorssDrawVaildTime=this.ChartCorssCursor.IsFixXLastTime;
96857
96950
  bCorssDrawPoint=this.ChartCorssCursor.CorssPointConfig.Enable;
96858
96951
  bCorssBCClick=this.ChartCorssCursor.EnableDBClick;
96952
+ if (this.ChartCorssCursor.StringFormatY) corssRightTextStyle=this.ChartCorssCursor.StringFormatY.TextStyleConfig.Right.Type;
96859
96953
  }
96860
96954
 
96861
96955
  var bRButtonSelectRect=false,bLButtonSelectRect=false;
@@ -96963,6 +97057,15 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
96963
97057
  { Name:"画在有效X轴上",Data:{ ID:JSCHART_MENU_ID.CMD_CORSS_ON_VAILD_TIME_ID, Args:[!bCorssDrawVaildTime]}, Checked:bCorssDrawVaildTime },
96964
97058
  { Name:"画圆点",Data:{ ID:JSCHART_MENU_ID.CMD_CORSS_POINT_ID, Args:[!bCorssDrawPoint]}, Checked:bCorssDrawPoint },
96965
97059
  { Name:"双击显示/隐藏", Data:{ ID:JSCHART_MENU_ID.CMD_CORSS_DBCLICK_ID, Args:[!bCorssBCClick]}, Checked:bCorssBCClick },
97060
+ {
97061
+ Name:"主图右侧文字格式",
97062
+ SubMenu:
97063
+ [
97064
+ { Name:"默认(百分比)", Data:{ ID:JSCHART_MENU_ID.CMD_CORSS_YRIGHT_TEXT_STYLE, Args:[-1]}, Checked:corssRightTextStyle===-1 },
97065
+ { Name:"价格", Data:{ ID:JSCHART_MENU_ID.CMD_CORSS_YRIGHT_TEXT_STYLE, Args:[1]}, Checked:corssRightTextStyle===1 },
97066
+ { Name:"价格|百分比(两行)", Data:{ ID:JSCHART_MENU_ID.CMD_CORSS_YRIGHT_TEXT_STYLE, Args:[2]}, Checked:corssRightTextStyle===2 },
97067
+ ]
97068
+ },
96966
97069
  ]
96967
97070
  },
96968
97071
 
@@ -155035,7 +155138,7 @@ function ScrollBarBGChart()
155035
155138
 
155036
155139
 
155037
155140
 
155038
- var HQCHART_VERSION="1.1.15309";
155141
+ var HQCHART_VERSION="1.1.15311";
155039
155142
 
155040
155143
  function PrintHQChartVersion()
155041
155144
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.15309";
8
+ var HQCHART_VERSION="1.1.15311";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -5276,6 +5276,15 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
5276
5276
  if (IFrameSplitOperator.IsBool(item.EnableDBClick)) chart.ChartCorssCursor.EnableDBClick=item.EnableDBClick;
5277
5277
  if (IFrameSplitOperator.IsBool(item.IsShowCorssPoint)) chart.ChartCorssCursor.CorssPointConfig.Enable=item.IsShowCorssPoint;
5278
5278
  if (IFrameSplitOperator.IsNumber(item.VLineType)) chart.ChartCorssCursor.VLineType=item.VLineType;
5279
+
5280
+ if (item.TextStyle)
5281
+ {
5282
+ if (item.TextStyle.Right) //右侧输出样式
5283
+ {
5284
+ var subItem=item.TextStyle.Right;
5285
+ if (IFrameSplitOperator.IsNumber(subItem.Type)) chart.ChartCorssCursor.StringFormatY.TextStyleConfig.Right.Type=subItem.Type;
5286
+ }
5287
+ }
5279
5288
  }
5280
5289
 
5281
5290
  if (option.MinuteInfo) chart.CreateMinuteInfo(option.MinuteInfo);
@@ -7279,6 +7288,7 @@ var JSCHART_MENU_ID=
7279
7288
 
7280
7289
  CMD_CHANGE_YRIGHT_TEXT_FORMAT:62, //分时图主图 右侧刻度格式
7281
7290
  CMD_ENABLE_ZOOM_Y_ID:63, //放大缩小Y坐标 { FrameID:, Enable: , Range:{ Max:, Min: }}
7291
+ CMD_CORSS_YRIGHT_TEXT_STYLE:64, //十字光标右侧输出样式
7282
7292
 
7283
7293
 
7284
7294
  CMD_REPORT_CHANGE_BLOCK_ID:100, //报价列表 切换板块ID
@@ -16081,6 +16091,11 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
16081
16091
  this.ResetFrameXYSplit();
16082
16092
  this.Draw();
16083
16093
  break;
16094
+ case JSCHART_MENU_ID.CMD_CORSS_YRIGHT_TEXT_STYLE:
16095
+ if (param==null) return false;
16096
+ if (!this.ChartCorssCursor || !this.ChartCorssCursor.StringFormatY) return false;
16097
+ this.ChartCorssCursor.StringFormatY.TextStyleConfig.Right.Type=param;
16098
+ break;
16084
16099
  case JSCHART_MENU_ID.CMD_ENABLE_ZOOM_Y_ID:
16085
16100
  if (!srcParam) return false;
16086
16101
  if (this.EnableZoomYCoordinate) this.EnableZoomYCoordinate(srcParam);
@@ -63274,8 +63289,16 @@ function ChartCorssCursor()
63274
63289
  if (IFrameSplitOperator.IsNumber(itemSize.Height)) yValue=itemSize.Height/2;
63275
63290
  }
63276
63291
 
63277
- rtBG.Top=rtBG.YCenter-yValue;
63278
- rtBG.Bottom=rtBG.Top+rtBG.Height;
63292
+ if (complexText.BaseLine=="center")
63293
+ {
63294
+ rtBG.Top=rtBG.YCenter-rtBG.Height/2;
63295
+ rtBG.Bottom=rtBG.Top+rtBG.Height;
63296
+ }
63297
+ else
63298
+ {
63299
+ rtBG.Top=rtBG.YCenter-yValue;
63300
+ rtBG.Bottom=rtBG.Top+rtBG.Height;
63301
+ }
63279
63302
  }
63280
63303
  else
63281
63304
  {
@@ -63488,7 +63511,6 @@ function ChartCorssCursor()
63488
63511
  if (complexText.ShowType==1) showType=complexText.ShowType;
63489
63512
  if (showType==1) //多行
63490
63513
  {
63491
- var xLeft=rtBG.Left;
63492
63514
  var yTop=rtBG.Top; //顶
63493
63515
  for(var i=0; i<complexText.Text.length; ++i)
63494
63516
  {
@@ -63502,7 +63524,17 @@ function ChartCorssCursor()
63502
63524
  else this.Canvas.fillStyle=complexText.Color;
63503
63525
 
63504
63526
  var y=yTop+itemSize.Height;
63527
+ var xLeft=rtBG.Left, xRight=rtBG.Right;
63528
+ if (item.Margin)
63529
+ {
63530
+ var margin=item.Margin;
63531
+ if (IFrameSplitOperator.IsNumber(margin.Left)) xLeft+=margin.Left;
63532
+ if (IFrameSplitOperator.IsNumber(margin.Right)) xRight-=margin.Right;
63533
+ }
63534
+
63505
63535
  var x=xLeft;
63536
+ if (item.TextAlign=="right") x=xRight-itemSize.TextWidth;
63537
+ else if (item.TextAlign=="center") x=rtBG.Left+rtBG.Width/2-itemSize.TextWidth/2;
63506
63538
 
63507
63539
  if (item.TextOffset)
63508
63540
  {
@@ -63511,7 +63543,7 @@ function ChartCorssCursor()
63511
63543
  if (IFrameSplitOperator.IsNumber(textOffset.Y)) y+=textOffset.Y;
63512
63544
  }
63513
63545
 
63514
- this.Canvas.fillText(item.Text,x,y,itemSize.Width);
63546
+ this.Canvas.fillText(item.Text,x,y,itemSize.TextWidth);
63515
63547
 
63516
63548
  yTop+=itemSize.Height;
63517
63549
  }
@@ -63562,7 +63594,8 @@ function ChartCorssCursor()
63562
63594
  var item=complexText.Text[i];
63563
63595
  if (item.Font) this.Canvas.font=item.Font;
63564
63596
  else this.Canvas.font=complexText.Font;
63565
- var itemWidth=this.Canvas.measureText(item.Text).width; //前后各空2个像素
63597
+ var outWidth=this.Canvas.measureText(item.Text).width;
63598
+ var itemWidth=outWidth
63566
63599
  var itemHeight=this.GetFontHeight();
63567
63600
  if (item.Margin)
63568
63601
  {
@@ -63573,7 +63606,7 @@ function ChartCorssCursor()
63573
63606
  if (IFrameSplitOperator.IsNumber(margin.Bottom)) itemHeight+=margin.Bottom;
63574
63607
  }
63575
63608
 
63576
- size.Text[i]={ Width:itemWidth, Height:itemHeight }; //保存所有文字的大小信息
63609
+ size.Text[i]={ Width:itemWidth, Height:itemHeight, TextWidth:outWidth }; //保存所有文字的大小信息
63577
63610
 
63578
63611
  if (textWidth<itemWidth) textWidth=itemWidth;
63579
63612
  textHeight+=itemHeight;
@@ -63590,8 +63623,8 @@ function ChartCorssCursor()
63590
63623
  var item=complexText.Text[i];
63591
63624
  if (item.Font) this.Canvas.font=item.Font;
63592
63625
  else this.Canvas.font=complexText.Font;
63593
-
63594
- var itemWidth=this.Canvas.measureText(item.Text).width; //前后各空2个像素
63626
+ var outWidth=this.Canvas.measureText(item.Text).width;
63627
+ var itemWidth=outWidth;
63595
63628
  var itemHeight=this.Canvas.measureText("擎").width;
63596
63629
  if (item.Margin)
63597
63630
  {
@@ -63602,7 +63635,7 @@ function ChartCorssCursor()
63602
63635
  if (IFrameSplitOperator.IsNumber(margin.Bottom)) itemHeight+=margin.Bottom;
63603
63636
  }
63604
63637
 
63605
- size.Text[i]={ Width:itemWidth, Height:itemHeight }; //保存所有文字的大小信息
63638
+ size.Text[i]={ Width:itemWidth, Height:itemHeight, TextWidth:outWidth }; //保存所有文字的大小信息
63606
63639
 
63607
63640
  textWidth+=itemWidth;
63608
63641
  if (textHeight<itemHeight) textHeight=itemHeight;
@@ -64613,6 +64646,24 @@ function HQPriceStringFormat()
64613
64646
  this.Point;
64614
64647
  this.ClientPos=-1;
64615
64648
  this.HQChart;
64649
+ this.TextStyleConfig={ Right:{ Type:-1 } }; //输出文本样式 Type: -1=默认 1=价格 2=价格|涨幅 2行(分时图)
64650
+ //自定义样式模板
64651
+ this.TextStyleTemplate=
64652
+ [
64653
+ null,
64654
+ null,
64655
+ /*
64656
+ {
64657
+ ShowType:1, Space:2,
64658
+ BaseLine:"center",
64659
+ Text:
64660
+ [
64661
+ { Text:null, TextAlign:"center", Margin:{ Left:5, Right:5 } },
64662
+ { Text:null, TextAlign:"center", Margin:{ Left:5, Right:5 } }
64663
+ ]
64664
+ }
64665
+ */
64666
+ ]
64616
64667
 
64617
64668
  this.ExtendChartPaint;
64618
64669
  this.RExtendText=[];
@@ -64706,6 +64757,13 @@ function HQPriceStringFormat()
64706
64757
  }
64707
64758
  }
64708
64759
 
64760
+ this.GetTextStyleTemplate=function(type, defaultTemplate)
64761
+ {
64762
+ var template=this.TextStyleTemplate[type];
64763
+ if (!template) return defaultTemplate;
64764
+ return CloneData(template);
64765
+ }
64766
+
64709
64767
  this.Operator=function()
64710
64768
  {
64711
64769
  this.RText=null;
@@ -64724,7 +64782,41 @@ function HQPriceStringFormat()
64724
64782
  else
64725
64783
  this.Text=this.Value.toFixed(defaultfloatPrecision);
64726
64784
 
64727
- if (this.YClose>0) this.PercentageText=((this.Value-this.YClose)*100/this.YClose).toFixed(2); //走势图右边坐标显示百分比
64785
+ if (this.TextStyleConfig.Right.Type==2)
64786
+ {
64787
+ if (IFrameSplitOperator.IsNumber(this.YClose))
64788
+ {
64789
+ var value=(this.Value-this.YClose)*100/this.YClose;
64790
+ var text=`${value.toFixed(2)}%`;
64791
+ if (value>=0) text=` ${value.toFixed(2)}%`;
64792
+
64793
+ var defaultTemplate=
64794
+ {
64795
+ ShowType:1, Space:2,
64796
+ BaseLine:"center",
64797
+ Text:
64798
+ [
64799
+ { Text:null, TextAlign:"center", Margin:{ Left:2, Right:2 } },
64800
+ { Text:null, TextAlign:"center", Margin:{ Left:2, Right:2 }}
64801
+ ]
64802
+ }
64803
+
64804
+ var complexText=this.GetTextStyleTemplate(this.TextStyleConfig.Right.Type,defaultTemplate);
64805
+
64806
+ complexText.Text[0].Text=this.Text; //价格
64807
+ complexText.Text[1].Text=text; //百分比
64808
+
64809
+ this.RComplexText=complexText;
64810
+ }
64811
+ }
64812
+ else if (this.TextStyleConfig.Right.Type==1)
64813
+ {
64814
+
64815
+ }
64816
+ else
64817
+ {
64818
+ if (IFrameSplitOperator.IsNumber(this.YClose)) this.PercentageText=((this.Value-this.YClose)*100/this.YClose).toFixed(2); //走势图右边坐标显示百分比
64819
+ }
64728
64820
 
64729
64821
  this.GetExtendPaintData(defaultfloatPrecision);
64730
64822
  }
@@ -96893,6 +96985,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
96893
96985
  var bCorssDrawVaildTime=false;
96894
96986
  var bCorssDrawPoint=false;
96895
96987
  var bCorssBCClick=false;
96988
+ var corssRightTextStyle=-1;
96896
96989
  if (this.ChartCorssCursor)
96897
96990
  {
96898
96991
  bShowCorss=this.ChartCorssCursor.IsShowCorss;
@@ -96900,6 +96993,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
96900
96993
  bCorssDrawVaildTime=this.ChartCorssCursor.IsFixXLastTime;
96901
96994
  bCorssDrawPoint=this.ChartCorssCursor.CorssPointConfig.Enable;
96902
96995
  bCorssBCClick=this.ChartCorssCursor.EnableDBClick;
96996
+ if (this.ChartCorssCursor.StringFormatY) corssRightTextStyle=this.ChartCorssCursor.StringFormatY.TextStyleConfig.Right.Type;
96903
96997
  }
96904
96998
 
96905
96999
  var bRButtonSelectRect=false,bLButtonSelectRect=false;
@@ -97007,6 +97101,15 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
97007
97101
  { Name:"画在有效X轴上",Data:{ ID:JSCHART_MENU_ID.CMD_CORSS_ON_VAILD_TIME_ID, Args:[!bCorssDrawVaildTime]}, Checked:bCorssDrawVaildTime },
97008
97102
  { Name:"画圆点",Data:{ ID:JSCHART_MENU_ID.CMD_CORSS_POINT_ID, Args:[!bCorssDrawPoint]}, Checked:bCorssDrawPoint },
97009
97103
  { Name:"双击显示/隐藏", Data:{ ID:JSCHART_MENU_ID.CMD_CORSS_DBCLICK_ID, Args:[!bCorssBCClick]}, Checked:bCorssBCClick },
97104
+ {
97105
+ Name:"主图右侧文字格式",
97106
+ SubMenu:
97107
+ [
97108
+ { Name:"默认(百分比)", Data:{ ID:JSCHART_MENU_ID.CMD_CORSS_YRIGHT_TEXT_STYLE, Args:[-1]}, Checked:corssRightTextStyle===-1 },
97109
+ { Name:"价格", Data:{ ID:JSCHART_MENU_ID.CMD_CORSS_YRIGHT_TEXT_STYLE, Args:[1]}, Checked:corssRightTextStyle===1 },
97110
+ { Name:"价格|百分比(两行)", Data:{ ID:JSCHART_MENU_ID.CMD_CORSS_YRIGHT_TEXT_STYLE, Args:[2]}, Checked:corssRightTextStyle===2 },
97111
+ ]
97112
+ },
97010
97113
  ]
97011
97114
  },
97012
97115
 
@@ -167094,7 +167197,7 @@ function HQChartScriptWorker()
167094
167197
 
167095
167198
 
167096
167199
 
167097
- var HQCHART_VERSION="1.1.15309";
167200
+ var HQCHART_VERSION="1.1.15311";
167098
167201
 
167099
167202
  function PrintHQChartVersion()
167100
167203
  {