hqchart 1.1.15730 → 1.1.15738

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.
@@ -1211,11 +1211,12 @@ var scriptData=new JSIndexScript();if(option.ColorIndex)//五彩K线
1211
1211
  {var item=option.ColorIndex;var indexInfo=scriptData.Get(item.Index);if(indexInfo){indexInfo.ID=item.Index;chart.ColorIndex=new ScriptIndex(indexInfo.Name,indexInfo.Script,indexInfo.Args,indexInfo);//脚本执行
1212
1212
  }}if(option.TradeIndex)//交易指标
1213
1213
  {var item=option.TradeIndex;var _indexInfo=scriptData.Get(item.Index);if(_indexInfo){_indexInfo.ID=item.Index;chart.TradeIndex=new ScriptIndex(_indexInfo.Name,_indexInfo.Script,_indexInfo.Args,_indexInfo);//脚本执行
1214
- }}for(var i=0;i<option.Windows.length;++i){var item=option.Windows[i];if(item.Script){chart.WindowIndex[i]=new ScriptIndex(item.Name,item.Script,item.Args,item);//脚本执行
1214
+ }}for(var i=0;i<option.Windows.length;++i){var item=option.Windows[i];if(!item)//没有配置指标
1215
+ {}else if(item.Script){chart.WindowIndex[i]=new ScriptIndex(item.Name,item.Script,item.Args,item);//脚本执行
1215
1216
  }else if(item.JsonData){chart.WindowIndex[i]=new JsonDataIndex(item.Name,item.Script,item.Args,item);//脚本执行
1216
1217
  }else if(item.Local&&item.Local.Data){chart.WindowIndex[i]=new LocalJsonDataIndex(item.Local.Name,item.Local.Args,{JsonData:item.Local.Data});}else if(item.API)//使用API挂接指标数据 API:{ Name:指标名字, Script:指标脚本可以为空, Args:参数可以为空, Url:指标执行地址 }
1217
1218
  {var apiItem=item.API;chart.WindowIndex[i]=new APIScriptIndex(apiItem.Name,apiItem.Script,apiItem.Args,item);}else{var indexItem=JSIndexMap.Get(item.Index);if(indexItem){chart.WindowIndex[i]=indexItem.Create(item.Option);if(chart.WindowIndex[i].SetArgs)chart.WindowIndex[i].SetArgs(item.Args);chart.CreateWindowIndex(i);}else{var scriptData=new JSIndexScript();var _indexInfo2=scriptData.Get(item.Index);if(!_indexInfo2)continue;JSIndexScript.ModifyAttribute(_indexInfo2,item);_indexInfo2.ID=item.Index;chart.WindowIndex[i]=new ScriptIndex(_indexInfo2.Name,_indexInfo2.Script,_indexInfo2.Args,_indexInfo2);//脚本执行
1218
- if(item.StringFormat>0)chart.WindowIndex[i].StringFormat=item.StringFormat;if(item.FloatPrecision>=0)chart.WindowIndex[i].FloatPrecision=item.FloatPrecision;}}chart.SetSubFrameAttribute(chart.Frame.SubFrame[i],item,null);chart.UpdateIndexTemporaryAttribute(i,item.AryTemporaryAttribute);//指标临时属性
1219
+ if(item.StringFormat>0)chart.WindowIndex[i].StringFormat=item.StringFormat;if(item.FloatPrecision>=0)chart.WindowIndex[i].FloatPrecision=item.FloatPrecision;}}chart.SetSubFrameAttribute(chart.Frame.SubFrame[i],item,null);if(item)chart.UpdateIndexTemporaryAttribute(i,item.AryTemporaryAttribute);//指标临时属性
1219
1220
  }//叠加指标宽度
1220
1221
  if(option.OverlayIndexFrameWidth>40)chart.Frame.FixedRightWidth.Overlay=option.OverlayIndexFrameWidth;//叠加指标
1221
1222
  if(IFrameSplitOperator.IsNonEmptyArray(option.OverlayIndex)){for(var i=0;i<option.OverlayIndex.length;++i){var item=option.OverlayIndex[i];if(item.Windows>=chart.Frame.SubFrame.length)continue;var itemString=(0,_stringify2.default)(item);var obj=JSON.parse(itemString);if(item.Index)obj.IndexName=item.Index;if(item.Windows>=0)obj.WindowIndex=item.Windows;chart.CreateOverlayWindowsIndex(obj);}}this.AdjustTitleHeight(chart);if(option.LatestPointFlash){var item=option.LatestPointFlash;if(item.Enable){var zIndex=6;if(IFrameSplitOperator.IsNumber(item.ZIndex))zIndex=item.ZIndex;this.CreateExtraCanvasElement(JSChart.LatestPointFlashKey,{ZIndex:zIndex});chart.CreateExtendChart("LatestPointFlashPaint",item);chart.StartLatestPointFlash();}}if(option.KLineCountDown){var item=option.KLineCountDown;if(item.Enable){var zIndex=4;if(IFrameSplitOperator.IsNumber(item.ZIndex))zIndex=item.ZIndex;this.CreateExtraCanvasElement(JSChart.KLineCountDownKey,{ZIndex:zIndex});chart.CreateExtendChart("KLineCountDownPaint",item);chart.StartCountDown();}}return chart;};//自定义指数历史K线图
@@ -1246,11 +1247,11 @@ if(IFrameSplitOperator.IsBool(option.CorssCursorInfo.IsFixXLastTime))chart.Chart
1246
1247
  if(option.Overlay){for(var i=0;i<option.Overlay.length;++i){var item=option.Overlay[i];chart.OverlaySymbol(item.Symbol,item);}}if(option.MinuteLine){if(option.MinuteLine.IsDrawAreaPrice==false)chart.ChartPaint[0].IsDrawArea=false;if(option.MinuteLine.IsShowLead==false)chart.IsShowLead=false;if(option.MinuteLine.IsShowAveragePrice==false){chart.ChartPaint[1].IsShow=false;chart.TitlePaint[0].IsShowAveragePrice=false;//标题栏均线也不显示
1247
1248
  for(var i=0;i<chart.ExtendChartPaint.length;++i){var item=chart.ExtendChartPaint[i];if(item.ClassName=="MinuteTooltipPaint")item.IsShowAveragePrice=false;}}if(option.MinuteLine.SplitType>0)chart.Frame.SubFrame[0].Frame.YSplitOperator.SplitType=option.MinuteLine.SplitType;}if(option.MinuteVol){var item=option.MinuteVol;if(IFrameSplitOperator.IsNumber(item.BarColorType))chart.ChartPaint[2].BarColorType=item.BarColorType;}if(option.MinuteTitle){var item=option.MinuteTitle;var chartTitle=chart.TitlePaint[0];if(IFrameSplitOperator.IsBool(item.IsShowName))chart.TitlePaint[0].IsShowName=item.IsShowName;if(IFrameSplitOperator.IsBool(item.IsShowDate))chart.TitlePaint[0].IsShowDate=item.IsShowDate;if(IFrameSplitOperator.IsBool(item.IsShowTime))chart.TitlePaint[0].IsShowTime=item.IsShowTime;if(IFrameSplitOperator.IsBool(item.IsTitleShowLatestData))chart.IsTitleShowLatestData=item.IsTitleShowLatestData;if(IFrameSplitOperator.IsBool(item.IsAlwaysShowLastData))chart.TitlePaint[0].IsAlwaysShowLastData=item.IsAlwaysShowLastData;if(IFrameSplitOperator.IsNumber(item.ShowLastDataFormat))chart.TitlePaint[0].ShowLastDataFormat=item.ShowLastDataFormat;if(item.TimeFormat)chart.TitlePaint[0].TimeFormat=item.TimeFormat;if(item.ShowPostion||item.ShowPosition)//显示位置高级配置
1248
1249
  {var subItem=item.ShowPostion;if(item.ShowPosition)subItem=item.ShowPosition;if(!chartTitle.ShowPositionConfig)chartTitle.ShowPositionConfig={Margin:{}};if(IFrameSplitOperator.IsNumber(subItem.Type))chartTitle.ShowPositionConfig.Type=subItem.Type;if(subItem.Margin){if(IFrameSplitOperator.IsNumber(subItem.Margin.Left))chartTitle.ShowPositionConfig.Margin.Left=subItem.Margin.Left;if(IFrameSplitOperator.IsNumber(subItem.Margin.Right))chartTitle.ShowPositionConfig.Margin.Right=subItem.Margin.Right;if(IFrameSplitOperator.IsNumber(subItem.Margin.Bottom))chartTitle.ShowPositionConfig.Margin.Bottom=subItem.Margin.Bottom;}}if(IFrameSplitOperator.IsNonEmptyArray(item.OverlayTitleName))chartTitle.AryOverlayTitleName=item.OverlayTitleName.slice();}if(IFrameSplitOperator.IsBool(option.CorssCursorTouchEnd))chart.CorssCursorTouchEnd=option.CorssCursorTouchEnd;if(IFrameSplitOperator.IsBool(option.IsClickShowCorssCursor))chart.IsClickShowCorssCursor=option.IsClickShowCorssCursor;if(option.IsShowBeforeData===true)chart.IsShowBeforeData=option.IsShowBeforeData;var windows=[null,null];if(option.MainWindow)windows[0]=option.MainWindow;if(IFrameSplitOperator.IsNonEmptyArray(option.Windows))windows.push.apply(windows,(0,_toConsumableArray3.default)(option.Windows));//分钟数据指标从第3个指标窗口设置
1249
- if(IFrameSplitOperator.IsNonEmptyArray(windows)){var scriptData=new JSIndexScript();for(var i=0;i<windows.length;++i){var index=i;var item=windows[i];if(!item)continue;if(item.Script){chart.WindowIndex[index]=new ScriptIndex(item.Name,item.Script,item.Args,item);//脚本执行
1250
+ if(IFrameSplitOperator.IsNonEmptyArray(windows)){var scriptData=new JSIndexScript();for(var i=0;i<windows.length;++i){var index=i;var item=windows[i];if(!item){}else if(item.Script){chart.WindowIndex[index]=new ScriptIndex(item.Name,item.Script,item.Args,item);//脚本执行
1250
1251
  }else if(item.API)//使用API挂接指标数据 API:{ Name:指标名字, Script:指标脚本可以为空, Args:参数可以为空, Url:指标执行地址 }
1251
1252
  {var apiItem=item.API;chart.WindowIndex[index]=new APIScriptIndex(apiItem.Name,apiItem.Script,apiItem.Args,item);}else{var indexItem=JSIndexMap.Get(item.Index);if(indexItem){chart.WindowIndex[index]=indexItem.Create();//创建子窗口的指标
1252
1253
  chart.CreateWindowIndex(index);}else{var indexInfo=scriptData.Get(item.Index);if(!indexInfo)continue;JSIndexScript.ModifyAttribute(indexInfo,item);indexInfo.ID=item.Index;chart.WindowIndex[index]=new ScriptIndex(indexInfo.Name,indexInfo.Script,indexInfo.Args,indexInfo);//脚本执行
1253
- if(item.StringFormat>0)chart.WindowIndex[index].StringFormat=item.StringFormat;if(item.FloatPrecision>=0)chart.WindowIndex[index].FloatPrecision=item.FloatPrecision;}}chart.SetSubFrameAttribute(chart.Frame.SubFrame[index],item,null);chart.UpdateIndexTemporaryAttribute(i,item.AryTemporaryAttribute);//指标临时属性
1254
+ if(item.StringFormat>0)chart.WindowIndex[index].StringFormat=item.StringFormat;if(item.FloatPrecision>=0)chart.WindowIndex[index].FloatPrecision=item.FloatPrecision;}}chart.SetSubFrameAttribute(chart.Frame.SubFrame[index],item,null);if(item)chart.UpdateIndexTemporaryAttribute(i,item.AryTemporaryAttribute);//指标临时属性
1254
1255
  }}this.AdjustTitleHeight(chart);//叠加指标
1255
1256
  if(IFrameSplitOperator.IsNonEmptyArray(option.OverlayIndex)){for(var i=0;i<option.OverlayIndex.length;++i){var item=option.OverlayIndex[i];if(item.Windows>=chart.Frame.SubFrame.length)continue;var itemString=(0,_stringify2.default)(item);var obj=JSON.parse(itemString);if(item.Index)obj.IndexName=item.Index;if(item.Windows>=0)obj.WindowIndex=item.Windows;chart.CreateOverlayWindowsIndex(obj);}}if(option.LatestPointFlash){var item=option.LatestPointFlash;if(item.Enable){this.CreateExtraCanvasElement(JSChart.LatestPointFlashKey,{ZIndex:6});chart.CreateExtendChart("LatestPointFlashPaint",item);chart.StartLatestPointFlash();}}return chart;};this.CreateMinMinuteChartContainer=function(option){var chart=null;if(option.Type==="迷你分钟走势图横屏")chart=new MinuteChartHScreenContainer(this.CanvasElement);else chart=new MinuteChartContainer(this.CanvasElement);if(option.NetworkFilter)chart.NetworkFilter=option.NetworkFilter;var windowsCount=2;if(option.BeforeOpen)//集合竞价
1256
1257
  {var item=option.BeforeOpen;if(IFrameSplitOperator.IsBool(item.IsShow))chart.IsShowBeforeData=item.IsShow;if(IFrameSplitOperator.IsNumber(item.Width))chart.ExtendWidth.Left=item.Width;if(IFrameSplitOperator.IsBool(item.IsShowMultiDay))chart.IsShowMultiDayBeforeData=item.IsShowMultiDay;if(IFrameSplitOperator.IsNumber(item.MulitiDayWidth))chart.MultiDayExtendWidth.Left=item.MulitiDayWidth;}if(option.AfterClose)//收盘集合竞价
@@ -1682,7 +1683,8 @@ CMD_CORSS_YRIGHT_TEXT_STYLE:64,//十字光标右侧输出样式
1682
1683
  CMD_DELETE_INDEX_ID:65,//删除指标
1683
1684
  CMD_SHOW_MAXMIN_ID:66,//显示隐藏最大最小值
1684
1685
  CMD_CHANGE_MINUTE_INFO_ID:67,//切换分时图信息地雷
1685
- CMD_DELETE_ALL_MINUTE_INFO_ID:68,CMD_MODIFY_MINUTE_INFO_PROPERTY_ID:69,CMD_REPORT_CHANGE_BLOCK_ID:100,//报价列表 切换板块ID
1686
+ CMD_DELETE_ALL_MINUTE_INFO_ID:68,CMD_MODIFY_MINUTE_INFO_PROPERTY_ID:69,CMD_SHOW_CHANGE_INDEX_DIALOG_ID:70,//切换指标对话框
1687
+ CMD_REPORT_CHANGE_BLOCK_ID:100,//报价列表 切换板块ID
1686
1688
  CMD_REPORT_COLUMN_SORT_ID:101,//报价列表 表头排序 Arg[列序号, 排序方向]
1687
1689
  CMD_REPORT_COLUMN_DEL_ID:102,//报价列表 删除列
1688
1690
  CMD_REPORT_COLUMN_MOVE_ID:103,//报价列表 列移动
@@ -2447,7 +2449,7 @@ this.PopupMenuByTab=function(menuData,rtTab){if(!this.JSPopMenu)return;var pixel
2447
2449
  this.PopupMenuByDrapdown=function(menuData,rtButton){if(!this.JSPopMenu)return;var pixelRatio=GetDevicePixelRatio();var rtCell={Left:rtButton.Left/pixelRatio,Right:rtButton.Right/pixelRatio,Bottom:rtButton.Bottom/pixelRatio,Top:rtButton.Top/pixelRatio};rtCell.Width=rtCell.Right-rtCell.Left;rtCell.Height=rtCell.Bottom-rtCell.Top;var rtClient=this.UIElement.getBoundingClientRect();var rtScroll=GetScrollPosition();var offsetLeft=rtClient.left+rtScroll.Left;var offsetTop=rtClient.top+rtScroll.Top;rtCell.Left+=offsetLeft;rtCell.Right+=offsetLeft;rtCell.Top+=offsetTop;rtCell.Bottom+=offsetTop;this.JSPopMenu.CreatePopMenu(menuData);this.JSPopMenu.PopupMenuByDrapdown(rtCell);};//右键菜单
2448
2450
  this.PopupMenuByRClick=function(menuData,x,y){if(!this.JSPopMenu)return;var rtClient=this.UIElement.getBoundingClientRect();var rtScroll=GetScrollPosition();x+=rtClient.left+rtScroll.Left;y+=rtClient.top+rtScroll.Top;this.JSPopMenu.CreatePopMenu(menuData);this.JSPopMenu.PopupMenuByRight(x,y);};//菜单命令
2449
2451
  this.ExecuteMenuCommand=function(cmdID,aryArgs){JSConsole.Chart.Log('[JSChartContainer::ExecuteMenuCommand] cmdID=, aryArgs=',cmdID,aryArgs);var param=null,srcParam=null;//原始值
2450
- if(IFrameSplitOperator.IsNonEmptyArray(aryArgs)){srcParam=aryArgs[0];if(IFrameSplitOperator.IsNumber(aryArgs[0]))param=aryArgs[0];}switch(cmdID){case JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID:if(this.ChangePeriod&&param!=null)this.ChangePeriod(param);break;case JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID:if(this.ChangeIndexWindowCount&&param!=null)this.ChangeIndexWindowCount(param);break;case JSCHART_MENU_ID.CMD_CHANGE_RIGHT_ID:if(this.ChangeRight&&param!=null)this.ChangeRight(param);break;case JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID:if(this.ChangeIndex&&param!=null&&aryArgs[1])this.ChangeIndex(param,aryArgs[1]);break;case JSCHART_MENU_ID.CMD_DELETE_INDEX_ID:if(this.DeleteIndex&&param!=null)this.DeleteIndex(param);break;case JSCHART_MENU_ID.CMD_CHANGE_API_INDEX_ID:if(this.ChangeAPIIndex&&param!=null&&aryArgs[1])this.ChangeAPIIndex(param,aryArgs[1]);break;case JSCHART_MENU_ID.CMD_CHANGE_SCRIPT_INDEX_ID:if(this.ChangeScriptIndex&&param!=null&&aryArgs[1])this.ChangeScriptIndex(param,aryArgs[1],aryArgs[2]);break;case JSCHART_MENU_ID.CMD_CHANGE_COLOR_INDEX_ID:case JSCHART_MENU_ID.CMD_CHANGE_TRADE_INDEX_ID:if(this.ChangeInstructionIndex&&aryArgs[0])this.ChangeInstructionIndex(aryArgs[0]);break;case JSCHART_MENU_ID.CMD_DELETE_COLOR_INDEX_ID://删除五彩K线指标
2452
+ if(IFrameSplitOperator.IsNonEmptyArray(aryArgs)){srcParam=aryArgs[0];if(IFrameSplitOperator.IsNumber(aryArgs[0]))param=aryArgs[0];}switch(cmdID){case JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID:if(this.ChangePeriod&&param!=null)this.ChangePeriod(param);break;case JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID:if(this.ChangeIndexWindowCount&&param!=null)this.ChangeIndexWindowCount(param);break;case JSCHART_MENU_ID.CMD_CHANGE_RIGHT_ID:if(this.ChangeRight&&param!=null)this.ChangeRight(param);break;case JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID:if(this.ChangeIndex&&param!=null&&aryArgs[1])this.ChangeIndex(param,aryArgs[1]);break;case JSCHART_MENU_ID.CMD_SHOW_CHANGE_INDEX_DIALOG_ID:if(srcParam)this.ShowChangeIndexDialog(srcParam);break;case JSCHART_MENU_ID.CMD_DELETE_INDEX_ID:if(this.DeleteIndex&&param!=null)this.DeleteIndex(param,aryArgs[1]);break;case JSCHART_MENU_ID.CMD_CHANGE_API_INDEX_ID:if(this.ChangeAPIIndex&&param!=null&&aryArgs[1])this.ChangeAPIIndex(param,aryArgs[1]);break;case JSCHART_MENU_ID.CMD_CHANGE_SCRIPT_INDEX_ID:if(this.ChangeScriptIndex&&param!=null&&aryArgs[1])this.ChangeScriptIndex(param,aryArgs[1],aryArgs[2]);break;case JSCHART_MENU_ID.CMD_CHANGE_COLOR_INDEX_ID:case JSCHART_MENU_ID.CMD_CHANGE_TRADE_INDEX_ID:if(this.ChangeInstructionIndex&&aryArgs[0])this.ChangeInstructionIndex(aryArgs[0]);break;case JSCHART_MENU_ID.CMD_DELETE_COLOR_INDEX_ID://删除五彩K线指标
2451
2453
  case JSCHART_MENU_ID.CMD_DELETE_TRADE_INDEX_ID://删除专家系统(交易指标)
2452
2454
  if(this.CancelInstructionIndex)this.CancelInstructionIndex();break;case JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID://切换K线类型
2453
2455
  if(this.ChangeKLineDrawType&&param!=null)this.ChangeKLineDrawType(param,aryArgs[1],aryArgs[2]);break;case JSCHART_MENU_ID.CMD_CHANGE_PRICE_GAP_ID://缺口提示
@@ -2462,7 +2464,7 @@ this.Draw();break;case JSCHART_MENU_ID.CMD_ENABLE_OVERLAY_SHARE_Y_ID:if(!srcPara
2462
2464
  this.UpdateFrameMaxMin();//调整坐标最大 最小值
2463
2465
  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
2464
2466
  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://双击弹分时图
2465
- 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_SHOW_MAXMIN_ID:if(IFrameSplitOperator.IsBool(srcParam)){var chart=this.ChartPaint[0];if(!chart)return false;if(chart.ClassName=="ChartMinutePriceLine"){chart.MaxMinTextConfig.IsShow=srcParam;this.Draw();}else if(chart.ClassName=="ChartKLine"){chart.IsShowMaxMinPrice=srcParam;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;};//点击右键菜单
2467
+ 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_SHOW_MAXMIN_ID:if(IFrameSplitOperator.IsBool(srcParam)){var chart=this.ChartPaint[0];if(!chart)return false;if(chart.ClassName=="ChartMinutePriceLine"){chart.MaxMinTextConfig.IsShow=srcParam;this.Draw();}else if(chart.ClassName=="ChartKLine"){chart.IsShowMaxMinPrice=srcParam;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.GetShowChangeIndexDialogMenuData=function(windowIndex,showType){var option={e:{},WindowIndex:windowIndex,OpType:1};var data={Name:"选择指标",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_CHANGE_INDEX_DIALOG_ID,Args:[option]}};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;};//点击右键菜单
2466
2468
  this.OnClickRightMenu=function(data){JSConsole.Chart.Log('[JSChartContainer::OnClickRightMenu] ',data);if(!data||!data.Data)return;var cmdID=data.Data.ID;//命令ID
2467
2469
  var aryArgs=data.Data.Args;//参数
2468
2470
  var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_MENU_COMMAND);//回调通知外部
@@ -2470,8 +2472,8 @@ if(event&&event.Callback){var data={PreventDefault:false,CommandID:cmdID,Args:ar
2470
2472
  this.CreateChartPaintExtend=function(chart,windowIndex){if(windowIndex<0)return false;var subFrame=this.Frame.SubFrame[windowIndex];if(!subFrame||!subFrame.Frame)return false;var frame=subFrame.Frame;chart.Canvas=this.Canvas;chart.ChartBorder=frame.ChartBorder;chart.ChartFrame=frame;chart.HQChart=this;this.ChartPaintEx.push(chart);return true;};this.CreateChartPaintExtendV2=function(className,option,windowIndex){if(windowIndex<0)return false;var subFrame=this.Frame.SubFrame[windowIndex];if(!subFrame||!subFrame.Frame)return false;var chart=g_ChartPaintFactory.Create(className,option);if(!chart)return false;var frame=subFrame.Frame;chart.Canvas=this.Canvas;chart.ChartBorder=frame.ChartBorder;chart.ChartFrame=frame;chart.HQChart=this;this.ChartPaintEx.push(chart);return true;};//删除指标窗口扩展图形 option={ ChartID:图形ID, WindowIndex:窗口 }
2471
2473
  this.DeleteChartPaintExtend=function(option,bCallDestroy){if(!option)return;if(!IFrameSplitOperator.IsNonEmptyArray(this.ChartPaintEx))return;if(IFrameSplitOperator.IsNumber(option.WindowIndex)){var windowIndex=option.WindowIndex;if(!this.Frame.SubFrame[windowIndex])return;var subFrame=this.Frame.SubFrame[windowIndex].Frame;if(!subFrame)return;var paint=[];//踢出当前窗口的指标画法
2472
2474
  var deleteCount=0;for(var i=0;i<this.ChartPaintEx.length;++i){var item=this.ChartPaintEx[i];var bFind=item.ChartFrame.Guid==subFrame.Guid||item.ChartFrame==subFrame;if(!bFind){paint.push(item);}else{++deleteCount;if(bCallDestroy===true){if(item&&item.OnDestroy)item.OnDestroy();//图形销毁
2473
- }}}if(deleteCount>0)this.ChartPaintEx=paint;}};this.ClearCurrnetDrawPicture=function(){this.CurrentChartDrawPicture=null;};this.CreateDragSelectRect=function(option){var chart=g_ExtendChartPaintFactory.Create("RectDragPaint",option);if(!chart)return null;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;chart.SetOption(option);this.ChartDragSelectRect=chart;};this.ClearDragSelectRect=function(){if(!this.ChartDragSelectRect)return;this.ChartDragSelectRect.ClearPoint();};this.ShowDragSelectRect=function(ptStart,ptEnd){if(!this.ChartDragSelectRect)return;this.ChartDragSelectRect.SetFirstPoint(ptStart.X,ptStart.Y);this.ChartDragSelectRect.SetSecondPoint(ptEnd.X,ptEnd.Y);this.ChartDragSelectRect.Draw();};this.DeleteIndex=function(windowIndex){if(windowIndex<0||windowIndex>=this.Frame.SubFrame.length)return false;this.WindowIndex[windowIndex]=null;this.DeleteIndexPaint(windowIndex);//删除主指标
2474
- return true;};//切换窗口指标 option={ Window:{}, OverlayIndex:[], Frame:{ }}
2475
+ }}}if(deleteCount>0)this.ChartPaintEx=paint;}};this.ClearCurrnetDrawPicture=function(){this.CurrentChartDrawPicture=null;};this.CreateDragSelectRect=function(option){var chart=g_ExtendChartPaintFactory.Create("RectDragPaint",option);if(!chart)return null;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;chart.SetOption(option);this.ChartDragSelectRect=chart;};this.ClearDragSelectRect=function(){if(!this.ChartDragSelectRect)return;this.ChartDragSelectRect.ClearPoint();};this.ShowDragSelectRect=function(ptStart,ptEnd){if(!this.ChartDragSelectRect)return;this.ChartDragSelectRect.SetFirstPoint(ptStart.X,ptStart.Y);this.ChartDragSelectRect.SetSecondPoint(ptEnd.X,ptEnd.Y);this.ChartDragSelectRect.Draw();};this.DeleteIndex=function(windowIndex,option){if(windowIndex<0||windowIndex>=this.Frame.SubFrame.length)return false;this.WindowIndex[windowIndex]=null;this.DeleteIndexPaint(windowIndex);//删除主指标
2476
+ if(option&&option.Draw===true)this.Draw();return true;};//切换窗口指标 option={ Window:{}, OverlayIndex:[], Frame:{ }}
2475
2477
  this.ChangeIndexWindow=function(windowIndex,option){JSConsole.Chart.Log('[KLineChartContainer::ChangeIndexWindow] windowIndex, option',windowIndex,option);if(windowIndex<0||windowIndex>=this.Frame.SubFrame.length)return false;if(!option)return false;var frame=this.Frame.SubFrame[windowIndex];if(option.Delete){var item=option.Delete;if(item.Window===true)this.DeleteIndexPaint(windowIndex);//删除主指标
2476
2478
  if(item.Overlay===true)this.DeleteWindowsOverlayIndex(windowIndex);//清空叠加指标
2477
2479
  }//清空标题栏
@@ -4462,8 +4464,8 @@ this.TextColor=g_JSChartResource.ChartScatterPlotV2.TextColor;this.Radius=g_JSCh
4462
4464
  var align=2;var yOffset=2;var xText=x;if(IFrameSplitOperator.IsNumber(item.YOffset))yOffset=item.YOffset;//Y偏移
4463
4465
  if(IFrameSplitOperator.IsNumber(item.BaseLine))baseLine=item.BaseLine;var yText=y-radius-yOffset;if(baseLine==2)yText=y+radius+this.TextHeight+yOffset;//下
4464
4466
  if(IFrameSplitOperator.IsNumber(item.Align))align=item.Align;//左中右
4465
- if(align==1)xText=x-textWidth;else if(align==2)xText=x-textWidth/2;var rtText=null;if(item.BG&&item.BG.Color){var bgItem=item.BG;var marginLeft=2,marginRight=2,yBGOffset=1,marginBottom=0,marginTop=0;if(IFrameSplitOperator.IsNumber(bgItem.MarginLeft))marginLeft=bgItem.MarginLeft;if(IFrameSplitOperator.IsNumber(bgItem.MarginRight))marginRight=bgItem.MarginRight;if(IFrameSplitOperator.IsNumber(bgItem.MarginBottom))marginBottom=bgItem.MarginBottom;if(IFrameSplitOperator.IsNumber(bgItem.MarginTop))marginTop=bgItem.MarginTop;if(IFrameSplitOperator.IsNumber(bgItem.YOffset))yBGOffset=bgItem.YOffset;var rtBG={Left:xText-marginLeft,Bottom:yText+yBGOffset+marginBottom,Width:textWidth+marginLeft+marginRight,Height:this.TextHeight+marginBottom+marginTop};rtBG.Right=rtBG.Left+rtBG.Width;rtBG.Top=rtBG.Bottom-rtBG.Height;if(this.IsTextOverlap(rtBG))return;this.Canvas.fillStyle=bgItem.Color;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);rtText=rtBG;}else{rtText={Left:xText,Bottom:yText,Width:textWidth,Height:this.TextHeight};rtText.Right=rtText.Left+rtText.Width;rtText.Top=rtText.Bottom-rtText.Height;if(this.IsTextOverlap(rtText))return;}if(item.Color)this.Canvas.fillStyle=item.Color;else this.Canvas.fillStyle=this.TextColor;this.Canvas.fillText(text,xText,yText);this.AryDrawRect.push(rtText);};this.IsTextOverlap=function(rtText){for(var i=0;i<this.AryDrawRect.length;++i){var item=this.AryDrawRect[i];if(IsRectOverlap(rtText,item))return true;}return false;};this.GetMaxMin=function(){var range={Min:null,Max:null};if(!IFrameSplitOperator.IsNonEmptyArray(this.AryPoint))return range;if(!this.MapCache||this.MapCache.size<=0)return range;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return range;var xPointCount=this.ChartFrame.XPointCount;var start=this.Data.DataOffset;if(this.ChartFrame.GlobalOption&&this.ChartFrame.GlobalOption.IsValueFullRange){start=0;xPointCount=this.Data.Data.length;}for(var i=start,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var kItem=this.Data.Data[i];if(!kItem)continue;var key=this.BuildKey(kItem);if(!this.MapCache.has(key))continue;var mapItem=this.MapCache.get(key);if(!IFrameSplitOperator.IsNonEmptyArray(mapItem.Data))continue;for(var k=0;k<mapItem.Data.length;++k){var item=mapItem.Data[k];var value=item.Value;if(IFrameSplitOperator.IsString(item.Value))value=this.GetKValue(kItem,item.Value);if(!IFrameSplitOperator.IsNumber(value))continue;if(range.Max==null)range.Max=value;else if(range.Max<value)range.Max=value;if(range.Min==null)range.Min=value;else if(range.Min>value)range.Min=value;}}return range;};this.GetTooltipData=function(x,y,tooltip){if(!this.IsShow)return false;if(!IFrameSplitOperator.IsNonEmptyArray(this.TooltipData))return false;for(var i=this.TooltipData.length-1;i>=0;--i){var item=this.TooltipData[i];this.Canvas.beginPath();this.Canvas.arc(item.X,item.Y,item.Radius,0,2*Math.PI);if(this.Canvas.isPointInPath(x,y)){JSConsole.Chart.Log('[ChartScatterPlotV2::GetTooltipData] point',item);tooltip.Data=item;tooltip.ChartPaint=this;tooltip.Type=6;//散点图
4466
- return true;}}};}//子线段
4467
+ if(align==1)xText=x-textWidth;else if(align==2)xText=x-textWidth/2;var rtText=null;if(item.BG&&item.BG.Color){var bgItem=item.BG;var marginLeft=2,marginRight=2,yBGOffset=1,marginBottom=0,marginTop=0;if(IFrameSplitOperator.IsNumber(bgItem.MarginLeft))marginLeft=bgItem.MarginLeft;if(IFrameSplitOperator.IsNumber(bgItem.MarginRight))marginRight=bgItem.MarginRight;if(IFrameSplitOperator.IsNumber(bgItem.MarginBottom))marginBottom=bgItem.MarginBottom;if(IFrameSplitOperator.IsNumber(bgItem.MarginTop))marginTop=bgItem.MarginTop;if(IFrameSplitOperator.IsNumber(bgItem.YOffset))yBGOffset=bgItem.YOffset;var rtBG={Left:xText-marginLeft,Bottom:yText+yBGOffset+marginBottom,Width:textWidth+marginLeft+marginRight,Height:this.TextHeight+marginBottom+marginTop};rtBG.Right=rtBG.Left+rtBG.Width;rtBG.Top=rtBG.Bottom-rtBG.Height;if(this.IsTextOverlap(rtBG))return;this.Canvas.fillStyle=bgItem.Color;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);rtText=rtBG;}else{rtText={Left:xText,Bottom:yText,Width:textWidth,Height:this.TextHeight};rtText.Right=rtText.Left+rtText.Width;rtText.Top=rtText.Bottom-rtText.Height;if(this.IsTextOverlap(rtText))return;}if(item.Color)this.Canvas.fillStyle=item.Color;else this.Canvas.fillStyle=this.TextColor;this.Canvas.fillText(text,xText,yText);this.AryDrawRect.push(rtText);};this.IsTextOverlap=function(rtText){for(var i=0;i<this.AryDrawRect.length;++i){var item=this.AryDrawRect[i];if(IsRectOverlap(rtText,item))return true;}return false;};this.GetMaxMin=function(){var range={Min:null,Max:null};if(!IFrameSplitOperator.IsNonEmptyArray(this.AryPoint))return range;if(!this.MapCache||this.MapCache.size<=0)return range;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return range;var xPointCount=this.ChartFrame.XPointCount;var start=this.Data.DataOffset;if(this.ChartFrame.GlobalOption&&this.ChartFrame.GlobalOption.IsValueFullRange){start=0;xPointCount=this.Data.Data.length;}for(var i=start,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var kItem=this.Data.Data[i];if(!kItem)continue;var key=this.BuildKey(kItem);if(!this.MapCache.has(key))continue;var mapItem=this.MapCache.get(key);if(!IFrameSplitOperator.IsNonEmptyArray(mapItem.Data))continue;for(var k=0;k<mapItem.Data.length;++k){var item=mapItem.Data[k];var value=item.Value;if(IFrameSplitOperator.IsString(item.Value))value=this.GetKValue(kItem,item.Value);if(!IFrameSplitOperator.IsNumber(value))continue;if(range.Max==null)range.Max=value;else if(range.Max<value)range.Max=value;if(range.Min==null)range.Min=value;else if(range.Min>value)range.Min=value;}}return range;};this.GetTooltipData=function(x,y,tooltip){if(!this.IsShow)return false;if(!IFrameSplitOperator.IsNonEmptyArray(this.TooltipData))return false;for(var i=this.TooltipData.length-1;i>=0;--i){var item=this.TooltipData[i];if(Path2DHelper.PtInPoint(x,y,item,item.Radius)){JSConsole.Chart.Log('[ChartScatterPlotV2::GetTooltipData] point',item);tooltip.Data=item;tooltip.ChartPaint=this;tooltip.Type=6;//散点图
4468
+ return true;}}return false;};}//子线段
4467
4469
  function ChartSubLine(){this.newMethod=ChartLine;//派生
4468
4470
  this.newMethod();delete this.newMethod;this.ClassName='ChartSubLine';//类名
4469
4471
  this.Color="rgb(255,193,37)";//线段颜色
@@ -13304,7 +13306,7 @@ if(item.data){outVarItem.Data=this.FittingMinuteArray(item.data,date,time,hqChar
13304
13306
  {drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMinuteArray(draw.DrawData,date,time,hqChart);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='STICKLINE')//柱子
13305
13307
  {drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.Width=draw.Width;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMinuteArray(draw.DrawData,date,time,hqChart,1);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType==SCRIPT_CHART_NAME.OVERLAY_BARS){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.BarName=draw.BarName;drawItem.BarColor=draw.BarColor;drawItem.LineWidth=draw.LineWidth;drawItem.DrawData=this.FittingMinuteArray(draw.DrawData,date,time,hqChart,1);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType==SCRIPT_CHART_NAME.CLIP_COLOR_STICK){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMinuteArray(draw.Data,date,time,hqChart);outVarItem.Draw=drawItem;if(draw.Option)outVarItem.Option=draw.Option;result.push(outVarItem);}else if(draw.DrawType==SCRIPT_CHART_NAME.BASELINE_BAR){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;drawItem.Config=draw.Config;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='MULTI_LINE'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMultiLine(draw.DrawData,date,time,hqChart);for(var k in drawItem.DrawData){this.GetKLineData(drawItem.DrawData[k].Point,hqChart);}outVarItem.Draw=drawItem;if(draw.LineDash)drawItem.LineDash=draw.LineDash;if(draw.Arrow)drawItem.Arrow=draw.Arrow;result.push(outVarItem);}else if(draw.DrawType=='MULTI_POINT'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='MULTI_TEXT'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='MULTI_SVGICON'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData={Icon:draw.DrawData.Icon,Family:draw.DrawData.Family};outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='DRAWSVG'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;if(draw.AutoPosition)drawItem.AutoPosition=draw.AutoPosition;drawItem.EnalbeDetailNoOverlap=draw.EnalbeDetailNoOverlap;drawItem.EnableClick=draw.EnableClick;if(draw.BuildKeyCallback)drawItem.BuildKeyCallback=draw.BuildKeyCallback;drawItem.DrawData={Data:draw.Data,Family:draw.Family,TextFont:draw.TextFont,EnableTooltip:draw.EnableTooltip,IsDrawFirst:draw.IsDrawFirst};outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=="MULTI_HTMLDOM")//外部自己创建dom
13306
13308
  {drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.Callback=draw.Callback;drawItem.DrawData=this.FittingMultiText(draw.DrawData,date,time,hqChart);this.GetKLineData(drawItem.DrawData,hqChart);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='MULTI_BAR'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=="DRAWCOLORKLINE"){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart,1);outVarItem.Draw=drawItem;if(draw.Color)drawItem.Color=draw.Color;if(IFrameSplitOperator.IsBool(draw.IsEmptyBar))drawItem.IsEmptyBar=draw.IsEmptyBar;result.push(outVarItem);}else if(draw.DrawType=="DRAWTEXT_LINE"){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;//{ Price:, Text:{ Title:text, Color:textcolor }, Line:{ Type:linetype, Color:linecolor } };
13307
- outVarItem.Draw=drawItem;if(draw.Font)outVarItem.Font=draw.Font;result.push(outVarItem);}else if(draw.DrawType=="DRAWTITLE"){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType==SCRIPT_CHART_NAME.KLINE_TABLE){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;drawItem.RowCount=draw.RowCount;drawItem.RowName=draw.RowName;drawItem.Config=draw.Config;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType==SCRIPT_CHART_NAME.DRAW_HORIZONTAL_CHANNEL){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;drawItem.Config=draw.Config;outVarItem.Draw=drawItem;result.push(outVarItem);}else{var find=g_ScriptIndexChartFactory.Get(draw.DrawType);//外部挂接
13309
+ outVarItem.Draw=drawItem;if(draw.Font)outVarItem.Font=draw.Font;result.push(outVarItem);}else if(draw.DrawType=="DRAWTITLE"){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType==SCRIPT_CHART_NAME.KLINE_TABLE){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;drawItem.RowCount=draw.RowCount;drawItem.RowName=draw.RowName;drawItem.Config=draw.Config;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType==SCRIPT_CHART_NAME.DRAW_HORIZONTAL_CHANNEL){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;drawItem.Config=draw.Config;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType==SCRIPT_CHART_NAME.SCATTER_PLOT_V2){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;drawItem.Config=draw.Config;outVarItem.Draw=drawItem;result.push(outVarItem);}else{var find=g_ScriptIndexChartFactory.Get(draw.DrawType);//外部挂接
13308
13310
  if(find&&find.MinuteFittingCallback){if(find.MinuteFittingCallback(item,outVarItem,{Date:date,Time:time,HQChart:hqChart},this))result.push(outVarItem);}}}}return result;};//matchType 0=精确匹配(默认) 5=模糊匹配
13309
13311
  this.FittingMinuteArray=function(sourceData,date,time,hqChart,matchType){var minutedata=hqChart.SourceData;;//分钟线
13310
13312
  var arySingleData=[];for(var i in sourceData){var value=sourceData[i];var indexItem=new SingleData();//单列指标数据
@@ -15406,7 +15408,7 @@ this.SelectedClassName="UMyChart_MenuItem_Tr_Selected";this.RestoreFocusDelay=10
15406
15408
  "UMyChart_MenuItem_Td_Shortcut",//快捷方式
15407
15409
  "UMyChart_MenuItem_Td_Arrow"//箭头
15408
15410
  ];this.Inital=function(hqchart,option){this.HQChart=hqchart;this.MouseDownlistenerPtr=this.OnWindowMouseDown.bind(this);window.addEventListener('mousedown',this.MouseDownlistenerPtr);};this.Destroy=function(){if(this.MouseDownlistenerPtr){window.removeEventListener('mousedown',this.MouseDownlistenerPtr);this.MouseDownlistenerPtr=null;}};//创建菜单
15409
- this.CreatePopMenu=function(data){this.Clear();if(!IFrameSplitOperator.IsNonEmptyArray(data.Menu))return;var root=document.createElement("div");root.className="UMyChart_PopMenu";var table=document.createElement("table");table.className="UMyChart_PopMenu_Table";root.appendChild(table);var tbody=document.createElement("tbody");tbody.className="UMyChart_PopMenu_Tbody";table.appendChild(tbody);var rootData={Root:root,TBody:tbody,Table:table};root.JSMenuData=rootData;for(var i=0;i<data.Menu.length;++i){var item=data.Menu[i];if(item.Name==JSPopMenu.SEPARATOR_LINE_NAME){var trSeparator=this.CreateSeparatorTr();if(trSeparator)tbody.appendChild(trSeparator);continue;}var trDom=this.CreateMenu(rootData,item);tbody.appendChild(trDom);}document.body.appendChild(root);this.RootDOM=root;this.TBodyDOM=tbody;if(IFrameSplitOperator.IsNumber(data.Position))this.Data.Position=data.Position;if(data.ClickCallback)this.ClickCallback=data.ClickCallback;if(data.RestoreFocusCallback)this.RestoreFocusCallback=data.RestoreFocusCallback;};//清除菜单
15411
+ this.CreatePopMenu=function(data){this.Clear();if(!IFrameSplitOperator.IsNonEmptyArray(data.Menu))return;var root=document.createElement("div");root.className="UMyChart_PopMenu";var table=document.createElement("table");table.className="UMyChart_PopMenu_Table";root.appendChild(table);var tbody=document.createElement("tbody");tbody.className="UMyChart_PopMenu_Tbody";table.appendChild(tbody);var rootData={Root:root,TBody:tbody,Table:table};root.JSMenuData=rootData;for(var i=0;i<data.Menu.length;++i){var item=data.Menu[i];if(!item)continue;if(item.Name==JSPopMenu.SEPARATOR_LINE_NAME){var trSeparator=this.CreateSeparatorTr();if(trSeparator)tbody.appendChild(trSeparator);continue;}var trDom=this.CreateMenu(rootData,item);tbody.appendChild(trDom);}document.body.appendChild(root);this.RootDOM=root;this.TBodyDOM=tbody;if(IFrameSplitOperator.IsNumber(data.Position))this.Data.Position=data.Position;if(data.ClickCallback)this.ClickCallback=data.ClickCallback;if(data.RestoreFocusCallback)this.RestoreFocusCallback=data.RestoreFocusCallback;};//清除菜单
15410
15412
  this.Clear=function(){this.Data.Menu=[];this.Data.Position=JSPopMenu.POSITION_ID.RIGHT_MENU_ID;this.ClickCallback=null;if(!this.RootDOM)return;document.body.removeChild(this.RootDOM);this.RootDOM=null;this.TBodyDOM=null;for(var i=0;i<this.ArySubRootDOM.length;++i){document.body.removeChild(this.ArySubRootDOM[i]);}this.ArySubRootDOM=[];};this.CreateMenu=function(parentItem,item){var _this90=this;var trDom=document.createElement("tr");trDom.className='UMyChart_MenuItem_Tr';if(item.Disable===true)trDom.classList.add('UMyChart_DrawTool_Disable_Tr');var prtTdDom=null;var aryTDClassName=this.AryTDClassName;if(IFrameSplitOperator.IsNonEmptyArray(item.AryTDClassName))aryTDClassName=item.AryTDClassName;for(var i=0;i<aryTDClassName.length;++i){var tdDom=document.createElement("td");tdDom.className=aryTDClassName[i];if(i==0)//图标
15411
15413
  {if(item.Checked){var spanDom=document.createElement("span");spanDom.className=this.CheckedClassName;spanDom.style["font-size"]="10px";tdDom.appendChild(spanDom);}}else if(i==1)//内容
15412
15414
  {tdDom.innerText=item.Name;}else if(i==2)//快捷方式
@@ -16330,7 +16332,7 @@ if(this.MouseOnItem){if(this.MouseOnItem.Data==item)color=this.TextConfig.MouseO
16330
16332
  */this.Canvas.restore();this.ResizeDataCount(endIndex);};this.ResizeDataCount=function(startIndex){if(!IFrameSplitOperator.IsNumber(startIndex))return;if(startIndex<=0)return;if(this.LimitCount<=0)return;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.AryText))return;if(this.Data.AryText.length<=this.LimitCount)return;var delCount=this.Data.AryText.length-this.LimitCount;for(var i=0;i<delCount&&i<startIndex;++i){this.Data.AryText.shift();}};this.GetTooltipData=function(x,y,tooltip){var rtClient=this.GetClientRect();if(x>=rtClient.Left&&x<=rtClient.Right){for(var i=0;i<this.AryRect.length;++i){var item=this.AryRect[i];if(Path2DHelper.PtInRect(x,y,item.Rect)){tooltip.Data=item;tooltip.ChartPaint=this;tooltip.Type=1;return true;}}}return false;};this.ScrollStep=function(defaultStep){if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.AryText))return false;if(!this.FirstItem)return false;var moveStep=this.MoveStep;if(IFrameSplitOperator.IsNumber(defaultStep))moveStep=defaultStep;var rtClient=this.GetClientRect();var left=rtClient.Left;var right=rtClient.Right;var width=this.FirstItem.Move.Width;var xOffset=this.FirstItem.Move.XOffset+moveStep;if(right-xOffset+width<left){var startIndex=this.GetDataIndex(this.FirstItem);nextIndex=startIndex-1;if(nextIndex<0){var index=this.Data.AryText.length-1;this.FirstItem=this.Data.AryText[index];this.FirstItem.Move={XOffset:0};}else{this.FirstItem=this.Data.AryText[nextIndex];this.FirstItem.Move={XOffset:xOffset-width};}}else{this.FirstItem.Move.XOffset=xOffset;}return true;};}/********************************************************************************
16331
16333
  * 版本信息输出
16332
16334
  *
16333
- */var HQCHART_VERSION="1.1.15729";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();//把给外界调用的方法暴露出来
16335
+ */var HQCHART_VERSION="1.1.15737";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();//把给外界调用的方法暴露出来
16334
16336
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
16335
16337
  // BaseIndex:BaseIndex,
16336
16338
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.15730",
3
+ "version": "1.1.15738",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -27046,6 +27046,16 @@ function APIScriptIndex(name,script,args,option, isOverlay)
27046
27046
  outVarItem.Draw=drawItem;
27047
27047
  result.push(outVarItem);
27048
27048
  }
27049
+ else if (draw.DrawType==SCRIPT_CHART_NAME.SCATTER_PLOT_V2)
27050
+ {
27051
+ drawItem.Name=draw.Name;
27052
+ drawItem.Type=draw.Type;
27053
+ drawItem.DrawType=draw.DrawType;
27054
+ drawItem.DrawData=draw.DrawData;
27055
+ drawItem.Config=draw.Config;
27056
+ outVarItem.Draw=drawItem;
27057
+ result.push(outVarItem);
27058
+ }
27049
27059
  else
27050
27060
  {
27051
27061
  var find=g_ScriptIndexChartFactory.Get(draw.DrawType); //外部挂接
@@ -708,7 +708,11 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
708
708
  for(var i=0;i<option.Windows.length;++i)
709
709
  {
710
710
  var item=option.Windows[i];
711
- if (item.Script)
711
+ if (!item) //没有配置指标
712
+ {
713
+
714
+ }
715
+ else if (item.Script)
712
716
  {
713
717
  chart.WindowIndex[i]=new ScriptIndex(item.Name,item.Script,item.Args,item); //脚本执行
714
718
  }
@@ -750,7 +754,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
750
754
  }
751
755
 
752
756
  chart.SetSubFrameAttribute(chart.Frame.SubFrame[i],item, null);
753
- chart.UpdateIndexTemporaryAttribute(i, item.AryTemporaryAttribute); //指标临时属性
757
+ if (item) chart.UpdateIndexTemporaryAttribute(i, item.AryTemporaryAttribute); //指标临时属性
754
758
  }
755
759
 
756
760
  //叠加指标宽度
@@ -1186,9 +1190,11 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
1186
1190
  {
1187
1191
  var index=i;
1188
1192
  var item=windows[i];
1189
- if (!item) continue;
1193
+ if (!item)
1194
+ {
1190
1195
 
1191
- if (item.Script)
1196
+ }
1197
+ else if (item.Script)
1192
1198
  {
1193
1199
  chart.WindowIndex[index]=new ScriptIndex(item.Name,item.Script,item.Args,item); //脚本执行
1194
1200
  }
@@ -1218,7 +1224,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
1218
1224
  }
1219
1225
 
1220
1226
  chart.SetSubFrameAttribute(chart.Frame.SubFrame[index],item, null);
1221
- chart.UpdateIndexTemporaryAttribute(i, item.AryTemporaryAttribute); //指标临时属性
1227
+ if (item) chart.UpdateIndexTemporaryAttribute(i, item.AryTemporaryAttribute); //指标临时属性
1222
1228
  }
1223
1229
  }
1224
1230
 
@@ -3038,6 +3044,7 @@ var JSCHART_MENU_ID=
3038
3044
  CMD_CHANGE_MINUTE_INFO_ID:67, //切换分时图信息地雷
3039
3045
  CMD_DELETE_ALL_MINUTE_INFO_ID:68,
3040
3046
  CMD_MODIFY_MINUTE_INFO_PROPERTY_ID:69,
3047
+ CMD_SHOW_CHANGE_INDEX_DIALOG_ID:70, //切换指标对话框
3041
3048
 
3042
3049
 
3043
3050
  CMD_REPORT_CHANGE_BLOCK_ID:100, //报价列表 切换板块ID
@@ -11616,9 +11623,12 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
11616
11623
  if (this.ChangeIndex && param!=null && aryArgs[1])
11617
11624
  this.ChangeIndex(param,aryArgs[1]);
11618
11625
  break;
11626
+ case JSCHART_MENU_ID.CMD_SHOW_CHANGE_INDEX_DIALOG_ID:
11627
+ if (srcParam) this.ShowChangeIndexDialog(srcParam);
11628
+ break;
11619
11629
  case JSCHART_MENU_ID.CMD_DELETE_INDEX_ID:
11620
11630
  if (this.DeleteIndex && param!=null)
11621
- this.DeleteIndex(param);
11631
+ this.DeleteIndex(param, aryArgs[1]);
11622
11632
  break;
11623
11633
  case JSCHART_MENU_ID.CMD_CHANGE_API_INDEX_ID:
11624
11634
  if (this.ChangeAPIIndex && param!=null && aryArgs[1])
@@ -12064,6 +12074,13 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
12064
12074
  return data;
12065
12075
  }
12066
12076
 
12077
+ this.GetShowChangeIndexDialogMenuData=function(windowIndex, showType)
12078
+ {
12079
+ var option={ e:{}, WindowIndex:windowIndex,OpType:1 }
12080
+ var data= { Name:"选择指标", Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_CHANGE_INDEX_DIALOG_ID, Args:[option] } };
12081
+ return data;
12082
+ }
12083
+
12067
12084
  this.GetModifyIndexMenuData=function(windowIndex)
12068
12085
  {
12069
12086
  var data= { Name:"参数修改", Data:{ ID: JSCHART_MENU_ID.CMD_MODIFY_INDEX_PARAM, Args:[windowIndex] } };
@@ -12270,12 +12287,14 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
12270
12287
  this.ChartDragSelectRect.Draw();
12271
12288
  }
12272
12289
 
12273
- this.DeleteIndex=function(windowIndex)
12290
+ this.DeleteIndex=function(windowIndex, option)
12274
12291
  {
12275
12292
  if (windowIndex<0 || windowIndex>=this.Frame.SubFrame.length) return false;
12276
12293
  this.WindowIndex[windowIndex]=null;
12277
12294
  this.DeleteIndexPaint(windowIndex); //删除主指标
12278
12295
 
12296
+ if (option && option.Draw===true) this.Draw();
12297
+
12279
12298
  return true;
12280
12299
  }
12281
12300
 
@@ -38213,9 +38232,7 @@ function ChartScatterPlotV2()
38213
38232
  {
38214
38233
  var item=this.TooltipData[i];
38215
38234
 
38216
- this.Canvas.beginPath();
38217
- this.Canvas.arc(item.X, item.Y, item.Radius, 0, 2 * Math.PI);
38218
- if (this.Canvas.isPointInPath(x,y))
38235
+ if (Path2DHelper.PtInPoint(x, y, item, item.Radius))
38219
38236
  {
38220
38237
  JSConsole.Chart.Log('[ChartScatterPlotV2::GetTooltipData] point', item);
38221
38238
  tooltip.Data=item;
@@ -38224,6 +38241,8 @@ function ChartScatterPlotV2()
38224
38241
  return true;
38225
38242
  }
38226
38243
  }
38244
+
38245
+ return false;
38227
38246
  }
38228
38247
 
38229
38248
  }
@@ -76,6 +76,8 @@ function JSPopMenu()
76
76
  for(var i=0;i<data.Menu.length;++i)
77
77
  {
78
78
  var item=data.Menu[i];
79
+ if (!item) continue;
80
+
79
81
  if (item.Name==JSPopMenu.SEPARATOR_LINE_NAME)
80
82
  {
81
83
  var trSeparator=this.CreateSeparatorTr();
@@ -4806,7 +4806,11 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4806
4806
  for(var i=0;i<option.Windows.length;++i)
4807
4807
  {
4808
4808
  var item=option.Windows[i];
4809
- if (item.Script)
4809
+ if (!item) //没有配置指标
4810
+ {
4811
+
4812
+ }
4813
+ else if (item.Script)
4810
4814
  {
4811
4815
  chart.WindowIndex[i]=new ScriptIndex(item.Name,item.Script,item.Args,item); //脚本执行
4812
4816
  }
@@ -4848,7 +4852,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4848
4852
  }
4849
4853
 
4850
4854
  chart.SetSubFrameAttribute(chart.Frame.SubFrame[i],item, null);
4851
- chart.UpdateIndexTemporaryAttribute(i, item.AryTemporaryAttribute); //指标临时属性
4855
+ if (item) chart.UpdateIndexTemporaryAttribute(i, item.AryTemporaryAttribute); //指标临时属性
4852
4856
  }
4853
4857
 
4854
4858
  //叠加指标宽度
@@ -5284,9 +5288,11 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
5284
5288
  {
5285
5289
  var index=i;
5286
5290
  var item=windows[i];
5287
- if (!item) continue;
5291
+ if (!item)
5292
+ {
5288
5293
 
5289
- if (item.Script)
5294
+ }
5295
+ else if (item.Script)
5290
5296
  {
5291
5297
  chart.WindowIndex[index]=new ScriptIndex(item.Name,item.Script,item.Args,item); //脚本执行
5292
5298
  }
@@ -5316,7 +5322,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
5316
5322
  }
5317
5323
 
5318
5324
  chart.SetSubFrameAttribute(chart.Frame.SubFrame[index],item, null);
5319
- chart.UpdateIndexTemporaryAttribute(i, item.AryTemporaryAttribute); //指标临时属性
5325
+ if (item) chart.UpdateIndexTemporaryAttribute(i, item.AryTemporaryAttribute); //指标临时属性
5320
5326
  }
5321
5327
  }
5322
5328
 
@@ -7136,6 +7142,7 @@ var JSCHART_MENU_ID=
7136
7142
  CMD_CHANGE_MINUTE_INFO_ID:67, //切换分时图信息地雷
7137
7143
  CMD_DELETE_ALL_MINUTE_INFO_ID:68,
7138
7144
  CMD_MODIFY_MINUTE_INFO_PROPERTY_ID:69,
7145
+ CMD_SHOW_CHANGE_INDEX_DIALOG_ID:70, //切换指标对话框
7139
7146
 
7140
7147
 
7141
7148
  CMD_REPORT_CHANGE_BLOCK_ID:100, //报价列表 切换板块ID
@@ -15714,9 +15721,12 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
15714
15721
  if (this.ChangeIndex && param!=null && aryArgs[1])
15715
15722
  this.ChangeIndex(param,aryArgs[1]);
15716
15723
  break;
15724
+ case JSCHART_MENU_ID.CMD_SHOW_CHANGE_INDEX_DIALOG_ID:
15725
+ if (srcParam) this.ShowChangeIndexDialog(srcParam);
15726
+ break;
15717
15727
  case JSCHART_MENU_ID.CMD_DELETE_INDEX_ID:
15718
15728
  if (this.DeleteIndex && param!=null)
15719
- this.DeleteIndex(param);
15729
+ this.DeleteIndex(param, aryArgs[1]);
15720
15730
  break;
15721
15731
  case JSCHART_MENU_ID.CMD_CHANGE_API_INDEX_ID:
15722
15732
  if (this.ChangeAPIIndex && param!=null && aryArgs[1])
@@ -16162,6 +16172,13 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
16162
16172
  return data;
16163
16173
  }
16164
16174
 
16175
+ this.GetShowChangeIndexDialogMenuData=function(windowIndex, showType)
16176
+ {
16177
+ var option={ e:{}, WindowIndex:windowIndex,OpType:1 }
16178
+ var data= { Name:"选择指标", Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_CHANGE_INDEX_DIALOG_ID, Args:[option] } };
16179
+ return data;
16180
+ }
16181
+
16165
16182
  this.GetModifyIndexMenuData=function(windowIndex)
16166
16183
  {
16167
16184
  var data= { Name:"参数修改", Data:{ ID: JSCHART_MENU_ID.CMD_MODIFY_INDEX_PARAM, Args:[windowIndex] } };
@@ -16368,12 +16385,14 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
16368
16385
  this.ChartDragSelectRect.Draw();
16369
16386
  }
16370
16387
 
16371
- this.DeleteIndex=function(windowIndex)
16388
+ this.DeleteIndex=function(windowIndex, option)
16372
16389
  {
16373
16390
  if (windowIndex<0 || windowIndex>=this.Frame.SubFrame.length) return false;
16374
16391
  this.WindowIndex[windowIndex]=null;
16375
16392
  this.DeleteIndexPaint(windowIndex); //删除主指标
16376
16393
 
16394
+ if (option && option.Draw===true) this.Draw();
16395
+
16377
16396
  return true;
16378
16397
  }
16379
16398
 
@@ -42311,9 +42330,7 @@ function ChartScatterPlotV2()
42311
42330
  {
42312
42331
  var item=this.TooltipData[i];
42313
42332
 
42314
- this.Canvas.beginPath();
42315
- this.Canvas.arc(item.X, item.Y, item.Radius, 0, 2 * Math.PI);
42316
- if (this.Canvas.isPointInPath(x,y))
42333
+ if (Path2DHelper.PtInPoint(x, y, item, item.Radius))
42317
42334
  {
42318
42335
  JSConsole.Chart.Log('[ChartScatterPlotV2::GetTooltipData] point', item);
42319
42336
  tooltip.Data=item;
@@ -42322,6 +42339,8 @@ function ChartScatterPlotV2()
42322
42339
  return true;
42323
42340
  }
42324
42341
  }
42342
+
42343
+ return false;
42325
42344
  }
42326
42345
 
42327
42346
  }
@@ -140781,6 +140800,16 @@ function APIScriptIndex(name,script,args,option, isOverlay)
140781
140800
  outVarItem.Draw=drawItem;
140782
140801
  result.push(outVarItem);
140783
140802
  }
140803
+ else if (draw.DrawType==SCRIPT_CHART_NAME.SCATTER_PLOT_V2)
140804
+ {
140805
+ drawItem.Name=draw.Name;
140806
+ drawItem.Type=draw.Type;
140807
+ drawItem.DrawType=draw.DrawType;
140808
+ drawItem.DrawData=draw.DrawData;
140809
+ drawItem.Config=draw.Config;
140810
+ outVarItem.Draw=drawItem;
140811
+ result.push(outVarItem);
140812
+ }
140784
140813
  else
140785
140814
  {
140786
140815
  var find=g_ScriptIndexChartFactory.Get(draw.DrawType); //外部挂接
@@ -159213,7 +159242,7 @@ function ScrollBarBGChart()
159213
159242
 
159214
159243
 
159215
159244
 
159216
- var HQCHART_VERSION="1.1.15729";
159245
+ var HQCHART_VERSION="1.1.15737";
159217
159246
 
159218
159247
  function PrintHQChartVersion()
159219
159248
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.15729";
8
+ var HQCHART_VERSION="1.1.15737";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -4850,7 +4850,11 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4850
4850
  for(var i=0;i<option.Windows.length;++i)
4851
4851
  {
4852
4852
  var item=option.Windows[i];
4853
- if (item.Script)
4853
+ if (!item) //没有配置指标
4854
+ {
4855
+
4856
+ }
4857
+ else if (item.Script)
4854
4858
  {
4855
4859
  chart.WindowIndex[i]=new ScriptIndex(item.Name,item.Script,item.Args,item); //脚本执行
4856
4860
  }
@@ -4892,7 +4896,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4892
4896
  }
4893
4897
 
4894
4898
  chart.SetSubFrameAttribute(chart.Frame.SubFrame[i],item, null);
4895
- chart.UpdateIndexTemporaryAttribute(i, item.AryTemporaryAttribute); //指标临时属性
4899
+ if (item) chart.UpdateIndexTemporaryAttribute(i, item.AryTemporaryAttribute); //指标临时属性
4896
4900
  }
4897
4901
 
4898
4902
  //叠加指标宽度
@@ -5328,9 +5332,11 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
5328
5332
  {
5329
5333
  var index=i;
5330
5334
  var item=windows[i];
5331
- if (!item) continue;
5335
+ if (!item)
5336
+ {
5332
5337
 
5333
- if (item.Script)
5338
+ }
5339
+ else if (item.Script)
5334
5340
  {
5335
5341
  chart.WindowIndex[index]=new ScriptIndex(item.Name,item.Script,item.Args,item); //脚本执行
5336
5342
  }
@@ -5360,7 +5366,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
5360
5366
  }
5361
5367
 
5362
5368
  chart.SetSubFrameAttribute(chart.Frame.SubFrame[index],item, null);
5363
- chart.UpdateIndexTemporaryAttribute(i, item.AryTemporaryAttribute); //指标临时属性
5369
+ if (item) chart.UpdateIndexTemporaryAttribute(i, item.AryTemporaryAttribute); //指标临时属性
5364
5370
  }
5365
5371
  }
5366
5372
 
@@ -7180,6 +7186,7 @@ var JSCHART_MENU_ID=
7180
7186
  CMD_CHANGE_MINUTE_INFO_ID:67, //切换分时图信息地雷
7181
7187
  CMD_DELETE_ALL_MINUTE_INFO_ID:68,
7182
7188
  CMD_MODIFY_MINUTE_INFO_PROPERTY_ID:69,
7189
+ CMD_SHOW_CHANGE_INDEX_DIALOG_ID:70, //切换指标对话框
7183
7190
 
7184
7191
 
7185
7192
  CMD_REPORT_CHANGE_BLOCK_ID:100, //报价列表 切换板块ID
@@ -15758,9 +15765,12 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
15758
15765
  if (this.ChangeIndex && param!=null && aryArgs[1])
15759
15766
  this.ChangeIndex(param,aryArgs[1]);
15760
15767
  break;
15768
+ case JSCHART_MENU_ID.CMD_SHOW_CHANGE_INDEX_DIALOG_ID:
15769
+ if (srcParam) this.ShowChangeIndexDialog(srcParam);
15770
+ break;
15761
15771
  case JSCHART_MENU_ID.CMD_DELETE_INDEX_ID:
15762
15772
  if (this.DeleteIndex && param!=null)
15763
- this.DeleteIndex(param);
15773
+ this.DeleteIndex(param, aryArgs[1]);
15764
15774
  break;
15765
15775
  case JSCHART_MENU_ID.CMD_CHANGE_API_INDEX_ID:
15766
15776
  if (this.ChangeAPIIndex && param!=null && aryArgs[1])
@@ -16206,6 +16216,13 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
16206
16216
  return data;
16207
16217
  }
16208
16218
 
16219
+ this.GetShowChangeIndexDialogMenuData=function(windowIndex, showType)
16220
+ {
16221
+ var option={ e:{}, WindowIndex:windowIndex,OpType:1 }
16222
+ var data= { Name:"选择指标", Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_CHANGE_INDEX_DIALOG_ID, Args:[option] } };
16223
+ return data;
16224
+ }
16225
+
16209
16226
  this.GetModifyIndexMenuData=function(windowIndex)
16210
16227
  {
16211
16228
  var data= { Name:"参数修改", Data:{ ID: JSCHART_MENU_ID.CMD_MODIFY_INDEX_PARAM, Args:[windowIndex] } };
@@ -16412,12 +16429,14 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
16412
16429
  this.ChartDragSelectRect.Draw();
16413
16430
  }
16414
16431
 
16415
- this.DeleteIndex=function(windowIndex)
16432
+ this.DeleteIndex=function(windowIndex, option)
16416
16433
  {
16417
16434
  if (windowIndex<0 || windowIndex>=this.Frame.SubFrame.length) return false;
16418
16435
  this.WindowIndex[windowIndex]=null;
16419
16436
  this.DeleteIndexPaint(windowIndex); //删除主指标
16420
16437
 
16438
+ if (option && option.Draw===true) this.Draw();
16439
+
16421
16440
  return true;
16422
16441
  }
16423
16442
 
@@ -42355,9 +42374,7 @@ function ChartScatterPlotV2()
42355
42374
  {
42356
42375
  var item=this.TooltipData[i];
42357
42376
 
42358
- this.Canvas.beginPath();
42359
- this.Canvas.arc(item.X, item.Y, item.Radius, 0, 2 * Math.PI);
42360
- if (this.Canvas.isPointInPath(x,y))
42377
+ if (Path2DHelper.PtInPoint(x, y, item, item.Radius))
42361
42378
  {
42362
42379
  JSConsole.Chart.Log('[ChartScatterPlotV2::GetTooltipData] point', item);
42363
42380
  tooltip.Data=item;
@@ -42366,6 +42383,8 @@ function ChartScatterPlotV2()
42366
42383
  return true;
42367
42384
  }
42368
42385
  }
42386
+
42387
+ return false;
42369
42388
  }
42370
42389
 
42371
42390
  }
@@ -140825,6 +140844,16 @@ function APIScriptIndex(name,script,args,option, isOverlay)
140825
140844
  outVarItem.Draw=drawItem;
140826
140845
  result.push(outVarItem);
140827
140846
  }
140847
+ else if (draw.DrawType==SCRIPT_CHART_NAME.SCATTER_PLOT_V2)
140848
+ {
140849
+ drawItem.Name=draw.Name;
140850
+ drawItem.Type=draw.Type;
140851
+ drawItem.DrawType=draw.DrawType;
140852
+ drawItem.DrawData=draw.DrawData;
140853
+ drawItem.Config=draw.Config;
140854
+ outVarItem.Draw=drawItem;
140855
+ result.push(outVarItem);
140856
+ }
140828
140857
  else
140829
140858
  {
140830
140859
  var find=g_ScriptIndexChartFactory.Get(draw.DrawType); //外部挂接
@@ -162616,6 +162645,8 @@ function JSPopMenu()
162616
162645
  for(var i=0;i<data.Menu.length;++i)
162617
162646
  {
162618
162647
  var item=data.Menu[i];
162648
+ if (!item) continue;
162649
+
162619
162650
  if (item.Name==JSPopMenu.SEPARATOR_LINE_NAME)
162620
162651
  {
162621
162652
  var trSeparator=this.CreateSeparatorTr();
@@ -175575,7 +175606,7 @@ function ChartScrollText()
175575
175606
 
175576
175607
 
175577
175608
 
175578
- var HQCHART_VERSION="1.1.15729";
175609
+ var HQCHART_VERSION="1.1.15737";
175579
175610
 
175580
175611
  function PrintHQChartVersion()
175581
175612
  {