hqchart 1.1.14926 → 1.1.14933

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.
@@ -1614,7 +1614,7 @@ CMD_SHOW_DRAWTOOL_ID:18,//画图工具
1614
1614
  CMD_HIDE_DRAWTOOL_ID:19,CMD_SHOW_STOCKCHIP_ID:20,//筹码分布
1615
1615
  CMD_HIDE_STOCKCHIP_ID:21,CMD_XXXXXX_NONE_ID:22,//未用!!!!
1616
1616
  CMD_CHANGE_DAY_COUNT_ID:23,//切换天数
1617
- CMD_SHOW_BEFORE_DATA_ID:24,//显示|隐藏集合竞价
1617
+ CMD_SHOW_CALLCATION_ID:24,//显示|隐藏集合竞价 { Left:, Right: } //单日
1618
1618
  CMD_SELECTED_ZOOM_ID:25,//选中放大
1619
1619
  CMD_SELECTED_SUMMARY_ID:26,//区间统计
1620
1620
  CMD_SHOW_INDEX_ID:27,//显示隐藏指标
@@ -2357,7 +2357,7 @@ if(this.ChangeKLineDrawType&&param!=null)this.ChangeKLineDrawType(param,aryArgs[
2357
2357
  if(this.ChangePriceGap&&IFrameSplitOperator.IsBool(aryArgs[0])){if(aryArgs[0]==false){this.ChangePriceGap({Enable:aryArgs[0]});}else{if(IFrameSplitOperator.IsNumber(aryArgs[1]))this.ChangePriceGap({Enable:aryArgs[0],Count:aryArgs[1]});}}break;case JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID:if(aryArgs[1]===true){if(this.OverlaySymbol&&aryArgs[0])this.OverlaySymbol(aryArgs[0]);}else if(aryArgs[1]===false){if(this.DeleteOverlaySymbol&&aryArgs[0])this.DeleteOverlaySymbol(aryArgs[0]);}break;case JSCHART_MENU_ID.CMD_DELETE_ALL_OVERLAY_SYMBOL_ID:if(this.ClearOverlaySymbol)this.ClearOverlaySymbol();break;case JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID:if(this.ChangeCoordinateType&&aryArgs[0])this.ChangeCoordinateType(aryArgs[0]);break;case JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID:if(aryArgs[0]&&IFrameSplitOperator.IsBool(aryArgs[1])){if(aryArgs[1]==true&&this.AddKLineInfo)this.AddKLineInfo(aryArgs[0],true);else if(aryArgs[1]==false&&this.DeleteKLineInfo)this.DeleteKLineInfo(aryArgs[0]);}break;case JSCHART_MENU_ID.CMD_DELETE_ALL_KLINE_INFO_ID:if(this.ClearKLineInfo)this.ClearKLineInfo();break;case JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID:if(param!=null){this.DragMode=param;if(this.DragMode==1&&IFrameSplitOperator.IsBool(aryArgs[1]))//shift+左键拖动
2358
2358
  this.KLineDragConfig.EnableShfit=aryArgs[1];}break;case JSCHART_MENU_ID.CMD_CHANGE_BG_SPLIT_ID:if(IFrameSplitOperator.IsBool(srcParam)){if(srcParam){this.CreateExtendChart("SessionBreaksPaint",{});this.Draw();}else{var finder=this.GetExtendChartByClassName("SessionBreaksPaint");if(finder){this.DeleteExtendChartByID(finder.Chart.ID);this.Draw();}}}break;case JSCHART_MENU_ID.CMD_SHOW_DRAWTOOL_ID:if(!this.IsShowDrawToolDialog())this.ShowDrawToolDialog();break;case JSCHART_MENU_ID.CMD_SHOW_STOCKCHIP_ID://var option={Name:'筹码分布', ShowType:1, Width:230 };
2359
2359
  var stockChip=this.GetStockChipChart();if(stockChip)return;if(srcParam){var extendChart=this.CreateExtendChart(srcParam,aryArgs[1]);//创建扩展图形
2360
- this.SetSizeChange(true);this.Draw();}break;case JSCHART_MENU_ID.CMD_HIDE_STOCKCHIP_ID:if(this.DeleteStockChipChart)this.DeleteStockChipChart();break;case JSCHART_MENU_ID.CMD_CHIP_CHART_SETTING_ID:var stockChip=this.GetStockChipChart();if(!stockChip)return;if(param!=null){stockChip.Chart.ShowType=param;this.SetSizeChange(true);this.Draw();}break;case JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID:if(this.ChangeDayCount&&param!=null)this.ChangeDayCount(param);break;case JSCHART_MENU_ID.CMD_SHOW_BEFORE_DATA_ID:if(this.ShowCallAuctionData&&IFrameSplitOperator.IsBool(srcParam))this.ShowCallAuctionData({Left:srcParam,MultiDay:{Left:srcParam}});break;case JSCHART_MENU_ID.CMD_CHANGE_BASELINE_ID:if(this.ChangeBaselineType&&IFrameSplitOperator.IsNumber(param))this.ChangeBaselineType(param);break;case JSCHART_MENU_ID.CMD_SELECTED_ZOOM_ID:if(this.ShowSelectData&&srcParam)this.ShowSelectData(srcParam);break;case JSCHART_MENU_ID.CMD_SELECTED_SUMMARY_ID:this.OnCMDSelectedSummary(srcParam,aryArgs[1]);break;case JSCHART_MENU_ID.CMD_SHOW_INDEX_ID://显示隐藏指标 [0]=windowIndex [1]=0=自动 1=隐藏 2=显示
2360
+ this.SetSizeChange(true);this.Draw();}break;case JSCHART_MENU_ID.CMD_HIDE_STOCKCHIP_ID:if(this.DeleteStockChipChart)this.DeleteStockChipChart();break;case JSCHART_MENU_ID.CMD_CHIP_CHART_SETTING_ID:var stockChip=this.GetStockChipChart();if(!stockChip)return;if(param!=null){stockChip.Chart.ShowType=param;this.SetSizeChange(true);this.Draw();}break;case JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID:if(this.ChangeDayCount&&param!=null)this.ChangeDayCount(param);break;case JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID:if(this.ShowCallAuctionData&&srcParam){var left=null,right=null;if(IFrameSplitOperator.IsBool(srcParam.Left))left=srcParam.Left;if(IFrameSplitOperator.IsBool(srcParam.Right))right=srcParam.Right;this.ShowCallAuctionData({Left:left,Right:right});}break;case JSCHART_MENU_ID.CMD_CHANGE_BASELINE_ID:if(this.ChangeBaselineType&&IFrameSplitOperator.IsNumber(param))this.ChangeBaselineType(param);break;case JSCHART_MENU_ID.CMD_SELECTED_ZOOM_ID:if(this.ShowSelectData&&srcParam)this.ShowSelectData(srcParam);break;case JSCHART_MENU_ID.CMD_SELECTED_SUMMARY_ID:this.OnCMDSelectedSummary(srcParam,aryArgs[1]);break;case JSCHART_MENU_ID.CMD_SHOW_INDEX_ID://显示隐藏指标 [0]=windowIndex [1]=0=自动 1=隐藏 2=显示
2361
2361
  if(param==null||!IFrameSplitOperator.IsNumber(aryArgs[1]))return false;var windowIndex=param,showType=aryArgs[1];var script=this.WindowIndex[windowIndex];if(!script)return false;if(showType==1)script.IsShow=false;else if(showType==2)script.IsShow=true;else script.IsShow=!script.IsShow;this.UpdateWindowIndex(windowIndex);break;case JSCHART_MENU_ID.CMD_SHOW_OVERLAY_INDEX_ID://显示隐藏叠加指标 [0]=indexGuid [1]=0=自动 1=隐藏 2=显示
2362
2362
  if(!srcParam||!IFrameSplitOperator.IsNumber(aryArgs[1]))return false;var indexGuid=srcParam,showType=aryArgs[1];var overlay=this.GetOverlayIndexByIdentify(indexGuid);if(!overlay||!overlay.OverlayItem||!overlay.OverlayItem.Script)return false;var script=overlay.OverlayItem.Script;if(showType==1)script.IsShow=false;else if(showType==2)script.IsShow==true;else script.IsShow=!script.IsShow;this.UpdateOverlayIndex(indexGuid);break;case JSCHART_MENU_ID.CMD_DELETE_OVERLAY_INDEX_ID:if(srcParam&&this.DeleteOverlayWindowsIndex)this.DeleteOverlayWindowsIndex(srcParam);break;case JSCHART_MENU_ID.CMD_SHOW_OVERLAY_Y_AXIS_ID:if(!srcParam||!IFrameSplitOperator.IsNumber(aryArgs[1]))return false;if(!this.GetOverlayIndexByIdentify)return false;var indexGuid=srcParam,showType=aryArgs[1];var finder=this.GetOverlayIndexByIdentify(indexGuid);if(!finder||!finder.OverlayItem)return false;var frame=finder.OverlayItem.Frame;if(showType==1)frame.IsShow=false;else if(showType==2)frame.IsShow==true;else frame.IsShow=!frame.IsShow;this.UpdataDataoffset();//更新数据偏移
2363
2363
  this.UpdateFrameMaxMin();//调整坐标最大 最小值
@@ -5640,7 +5640,7 @@ this.CallAcutionSplitYV2(splitData,this.Frame.HorizontalInfo.slice());if(this.En
5640
5640
  if(this.GetEventCallback){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_SPLIT_YCOORDINATE);if(event&&event.Callback){var data={ID:this.Frame.Identify,Frame:this.Frame};if(this.OverlayIdentify)data.OverlayIdentify=this.OverlayIdentify;event.Callback(event,data,this);}}};this.FormatValueString=function(value){var text;if(this.StringFormat==1)//手机端格式 如果有万,亿单位了 去掉小数
5641
5641
  {var floatPrecision=this.FloatPrecision;if(IFrameSplitOperator.IsNumber(value)&&Math.abs(value)>1000)floatPrecision=0;text=IFrameSplitOperator.FormatValueString(value,floatPrecision,this.LanguageID);}else if(this.StringFormat==2)//原始数据输出
5642
5642
  {text=''+value.toFixed(this.FloatPrecision);}else{var absValue=Math.abs(value);if(absValue<0.0000000001){text=0;}else if(absValue<this.FLOATPRECISION_RANGE[this.FLOATPRECISION_RANGE.length-1]){text=value.toExponential(2).toString();}else{var floatPrecision=this.GetFloatPrecision(absValue,this.FloatPrecision);//数据比小数位数还小, 调整小数位数
5643
- text=IFrameSplitOperator.FormatValueString(value,floatPrecision,this.LanguageID);}}return text;};this.FilterIgnoreYValue=function(){if(!this.IgnoreYValue||this.IgnoreYValue.length<=0)return;var setValue=new _set2.default(this.IgnoreYValue);this.Frame.HorizontalInfo=this.Frame.HorizontalInfo.filter(function(item){return!setValue.has(item.Value);});};this.DynamicMessageText=function(){if(this.SplitType==2){for(var i=0;i<this.Frame.HorizontalInfo.length;++i){var item=this.Frame.HorizontalInfo[i];if(item.Message[0])item.Message[0]+='%';if(item.Message[1])item.Message[1]+='%';}}};this.CallAcutionSplitYV2=function(splitData,aryHorizontalInfo){if(!this.IsCallAuctionFrame())return;if(!IFrameSplitOperator.IsNonEmptyArray(aryHorizontalInfo))return;var aryCallAcution=this.GetCallAcutionSplitYV2(splitData,aryHorizontalInfo);if(!aryCallAcution)return;for(var i=0;i<this.Frame.HorizontalInfo.length;++i)//把显示的数据迁移到 Message[2] Message[3]
5643
+ text=IFrameSplitOperator.FormatValueStringV2(value,floatPrecision,2,this.LanguageID);}}return text;};this.FilterIgnoreYValue=function(){if(!this.IgnoreYValue||this.IgnoreYValue.length<=0)return;var setValue=new _set2.default(this.IgnoreYValue);this.Frame.HorizontalInfo=this.Frame.HorizontalInfo.filter(function(item){return!setValue.has(item.Value);});};this.DynamicMessageText=function(){if(this.SplitType==2){for(var i=0;i<this.Frame.HorizontalInfo.length;++i){var item=this.Frame.HorizontalInfo[i];if(item.Message[0])item.Message[0]+='%';if(item.Message[1])item.Message[1]+='%';}}};this.CallAcutionSplitYV2=function(splitData,aryHorizontalInfo){if(!this.IsCallAuctionFrame())return;if(!IFrameSplitOperator.IsNonEmptyArray(aryHorizontalInfo))return;var aryCallAcution=this.GetCallAcutionSplitYV2(splitData,aryHorizontalInfo);if(!aryCallAcution)return;for(var i=0;i<this.Frame.HorizontalInfo.length;++i)//把显示的数据迁移到 Message[2] Message[3]
5644
5644
  {var item=this.Frame.HorizontalInfo[i];if(aryCallAcution.IsBeforeData){item.Message[2]=item.Message[0];item.Message[0]=null;}if(aryCallAcution.IsAfterData&&(this.ShareAfterVol==0||this.ShareAfterVol==2)){item.Message[3]=item.Message[1];item.Message[1]=null;}}//集合竞价的坐标插入最后
5645
5645
  for(var i=0;i<aryCallAcution.HorizontalInfo.length;++i){var item=aryCallAcution.HorizontalInfo[i];this.Frame.HorizontalInfo.push(item);}};this.GetCallAcutionSplitYV2=function(splitData,arySource){if(!this.IsCallAuctionFrame())return null;var bBeforeData=this.IsBeforeData==true&&this.BeforeOpenData&&(this.BeforeOpenData.Ver==2.0||this.BeforeOpenData.Ver==3.0);var bAfterData=this.IsAfterData==true&&this.AfterCloseData&&(this.AfterCloseData.Ver==2.0||this.AfterCloseData.Ver==3.0);var bottom=this.Frame.ChartBorder.GetBottomEx();var height=this.Frame.ChartBorder.GetHeightEx();var bHScreen=this.Frame.IsHScreen;if(this.Frame.IsHScreen){var border=this.Frame.GetBorder();var width=border.RightEx-border.LeftEx;}if(bBeforeData||bAfterData){var aryHorizontalInfo=[];for(var i=0;i<arySource.length;++i){var hItem=arySource[i];if(!hItem||!IFrameSplitOperator.IsNumber(hItem.Value))continue;var y=this.Frame.GetYFromData(hItem.Value);var item=new CoordinateInfo();item.Value=hItem.Value;item.LineType=8;if(bBeforeData){if(bHScreen){var value=(y-border.LeftEx)/width*(this.BeforeOpenData.VolMax-this.BeforeOpenData.VolMin)+this.BeforeOpenData.VolMin;}else{var value=(bottom-y)/height*(this.BeforeOpenData.VolMax-this.BeforeOpenData.VolMin)+this.BeforeOpenData.VolMin;}item.Message[0]=this.FormatValueString(value);}if(bAfterData&&(this.ShareAfterVol==0||this.ShareAfterVol==2)){if(bHScreen){var value=(y-border.LeftEx)/width*(this.AfterCloseData.VolMax-this.AfterCloseData.VolMin)+this.AfterCloseData.VolMin;}else{var value=(bottom-y)/height*(this.AfterCloseData.VolMax-this.AfterCloseData.VolMin)+this.AfterCloseData.VolMin;}item.Message[1]=this.FormatValueString(value);}aryHorizontalInfo.push(item);}return{HorizontalInfo:aryHorizontalInfo,IsBeforeData:bBeforeData,IsAfterData:bAfterData};}var bMultiDayBeforeData=false,bMultiDayAfterData=false;var beforeDayData=null,afterDayData=null;if(this.MultiDayBeforeOpenData&&IFrameSplitOperator.IsNonEmptyArray(this.MultiDayBeforeOpenData)){bMultiDayBeforeData=true;var firstDayData=this.MultiDayBeforeOpenData[0];if(firstDayData.Ver==2.0||firstDayData.Ver==3.0)beforeDayData=firstDayData;}if(this.MultiDayAfterCloseData&&IFrameSplitOperator.IsNonEmptyArray(this.MultiDayAfterCloseData)){bMultiDayAfterData=true;var firstDayData=this.MultiDayAfterCloseData[0];if(firstDayData.Ver==2.0||firstDayData.Ver==3.0)afterDayData=firstDayData;}if(bMultiDayBeforeData||bMultiDayAfterData){var aryHorizontalInfo=[];for(var i=0;i<arySource.length;++i){var hItem=arySource[i];if(!hItem||!IFrameSplitOperator.IsNumber(hItem.Value))continue;var y=this.Frame.GetYFromData(hItem.Value);var item=new CoordinateInfo();item.Value=hItem.Value;item.LineType=9;var isVaild=false;if(beforeDayData){if(bHScreen){var value=(y-border.LeftEx)/width*(beforeDayData.VolMax-beforeDayData.VolMin)+beforeDayData.VolMin;}else{var value=(bottom-y)/height*(beforeDayData.VolMax-beforeDayData.VolMin)+beforeDayData.VolMin;}item.Message[0]=this.FormatValueString(value);isVaild=true;}if(afterDayData&&(this.ShareAfterVol==0||this.ShareAfterVol==2)){if(bHScreen){var value=(y-border.LeftEx)/width*(afterDayData.VolMax-afterDayData.VolMin)+afterDayData.VolMin;}else{var value=(bottom-y)/height*(afterDayData.VolMax-afterDayData.VolMin)+afterDayData.VolMin;}item.Message[1]=this.FormatValueString(value);isVaild=true;}if(isVaild)aryHorizontalInfo.push(item);}if(IFrameSplitOperator.IsNonEmptyArray(aryHorizontalInfo))return{HorizontalInfo:aryHorizontalInfo,IsBeforeData:bMultiDayBeforeData,IsAfterData:bMultiDayAfterData};}return null;};/* 废弃 使用 CallAcutionSplitYV2
5646
5646
  this.CallAcutionSplitY=function(count,splitData)
@@ -8705,12 +8705,16 @@ event.Callback(event,data,this);if(data.PreventDefault)return;}if(button.ID==JSC
8705
8705
  this.ChartOperator=function(obj){var id=obj.ID;if(id===JSCHART_OPERATOR_ID.OP_SCROLL_LEFT||id===JSCHART_OPERATOR_ID.OP_SCROLL_RIGHT)//左右移动 { Step:移动天数 }
8706
8706
  {if(this.DayCount==1)return false;if(!this.PageInfo.Enable)return false;if(!this.DayData)return false;//数据还没有下载好
8707
8707
  var isLeft=id===JSCHART_OPERATOR_ID.OP_SCROLL_LEFT?true:false;var step=1;if(obj.Step>0)step=obj.Step;if(!this.DayOffset)return false;if(isLeft){var offset=this.DayOffset.Offset;offset+=step;if(offset+this.DayOffset.ShowDayCount>this.DayOffset.DayCount)offset=this.DayOffset.DayCount-this.DayOffset.ShowDayCount;if(offset==this.DayOffset.Offset)return false;this.DayOffset.Offset=offset;}else{var offset=this.DayOffset.Offset;offset-=step;if(offset<0)offset=0;if(offset==this.DayOffset.Offset)return false;this.DayOffset.Offset=offset;}this.UpdateHistoryMinuteUI(null);this.SendPageChangedEvent();return true;}else if(id==JSCHART_OPERATOR_ID.OP_SCROLL_GOTO){if(this.DayCount==1)return false;if(!this.PageInfo.Enable)return false;if(!this.DayData)return false;//数据还没有下载好
8708
- if(IFrameSplitOperator.IsNumber(obj.ShowDayCount)){this.PageInfo.ShowDayCount=obj.ShowDayCount;this.DayOffset.ShowDayCount=obj.ShowDayCount;}if(IFrameSplitOperator.IsNumber(obj.Offset)){var offset=obj.Offset;if(this.DayOffset.ShowDayCount>0&&offset+this.DayOffset.ShowDayCount>=this.DayOffset.DayCount)offset=this.DayOffset.DayCount-this.DayOffset.ShowDayCount;if(offset==this.DayOffset.Offset)return false;this.DayOffset.Offset=offset;}this.UpdateHistoryMinuteUI(null);this.SendPageChangedEvent();return true;}else if(id==JSCHART_OPERATOR_ID.OP_CORSSCURSOR_GOTO)//{ Type:1 如果不存在 就隐藏十字光标}
8709
- {if(!this.SourceData)return false;if(!this.Frame||!this.Frame.SubFrame[0]||!this.Frame.SubFrame[0].Frame)return false;var frame=this.Frame.SubFrame[0].Frame;if(!IFrameSplitOperator.IsNonEmptyArray(this.SourceData.Data))return false;if(IFrameSplitOperator.IsNumber(obj.Time)&&IFrameSplitOperator.IsNumber(obj.Date)){var findIndex=-1,value=null,lastPrice=null;for(var i=0;i<this.SourceData.Data.length;++i){var item=this.SourceData.Data[i];if(IFrameSplitOperator.IsNumber(item.Close))lastPrice=item.Close;if(item.Time==obj.Time&&item.Date==obj.Date){findIndex=i;value=item.Close;break;}}if(findIndex<0&&this.DayCount==1&&!(IFrameSplitOperator.IsNumber(obj.Type)&&obj.Type>0)){var timeData=g_MinuteTimeStringData.GetTimeData(this.Symbol);for(var i=0;i<timeData.length;++i){if(timeData[i]==obj.Time){findIndex=i;value=lastPrice;break;}}}if(findIndex<0){if(obj.Type==1)// 如果不存在 就隐藏十字光标
8710
- {var x=-1,y=-1;var MoveStatus={X:x,Y:y,IsInClient:this.IsMouseOnClient(x,y)};this.LastMouseStatus.OnMouseMove=MoveStatus;this.LastMouseStatus.MoveOnPoint={X:x,Y:y};//鼠标移动的位置
8711
- var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_MOUSE_MOVE);var titleChart=this.TitlePaint[0];if(event&&titleChart)titleChart.OnMouseMoveEvent=event;var e={clientX:x,clientY:y};this.MoveOnPoint={X:x,Y:y};this.OnMouseMove(x,y,e);this.LastMouseStatus.MoveOnPoint=null;if(titleChart)titleChart.OnMouseMoveEvent=null;}return;}}var x=frame.GetXFromIndex(findIndex);var y=frame.GetYFromData(value);//保存最后一次鼠标移动信息
8708
+ if(IFrameSplitOperator.IsNumber(obj.ShowDayCount)){this.PageInfo.ShowDayCount=obj.ShowDayCount;this.DayOffset.ShowDayCount=obj.ShowDayCount;}if(IFrameSplitOperator.IsNumber(obj.Offset)){var offset=obj.Offset;if(this.DayOffset.ShowDayCount>0&&offset+this.DayOffset.ShowDayCount>=this.DayOffset.DayCount)offset=this.DayOffset.DayCount-this.DayOffset.ShowDayCount;if(offset==this.DayOffset.Offset)return false;this.DayOffset.Offset=offset;}this.UpdateHistoryMinuteUI(null);this.SendPageChangedEvent();return true;}else if(id==JSCHART_OPERATOR_ID.OP_CORSSCURSOR_GOTO)//{ Type:1 如果不存在 就隐藏十字光标, Time:, Date: }
8709
+ {var kData=this.GetKData();if(!kData||!IFrameSplitOperator.IsNonEmptyArray(kData.Data))return false;//数据还没有到达
8710
+ if(!IFrameSplitOperator.IsNumber(obj.Time)||!IFrameSplitOperator.IsNumber(obj.Date))return false;var findIndex=-1,findItem=null;for(var i=0;i<this.SourceData.Data.length;++i){var item=this.SourceData.Data[i];if(IFrameSplitOperator.IsNumber(item.Close))lastPrice=item.Close;if(item.Time==obj.Time&&item.Date==obj.Date){findIndex=i;findItem=item;break;}}this.ChartOperator_Temp_SetChartCorssCursor(findIndex,findItem);return true;}else if(id==JSCHART_OPERATOR_ID.OP_CORSSCURSOR_PAGE_START)//当前屏第1条数据
8711
+ {var kData=this.GetKData();if(!kData||!IFrameSplitOperator.IsNonEmptyArray(kData.Data))return false;//数据还没有到达
8712
+ var startIndex=kData.DataOffset;var kItem=kData.Data[startIndex];this.ChartOperator_Temp_SetChartCorssCursor(0,kItem);return true;}else if(id==JSCHART_OPERATOR_ID.OP_CORSSCURSOR_PAGE_END)//当前屏最后1条数据
8713
+ {var kData=this.GetKData();if(!kData||!IFrameSplitOperator.IsNonEmptyArray(kData.Data))return false;//数据还没有到达
8714
+ var index=kData.Data.length-1;var kItem=kData.Data[index];this.ChartOperator_Temp_SetChartCorssCursor(index,kItem);return true;}};//index=-1 隐藏十字光标
8715
+ this.ChartOperator_Temp_SetChartCorssCursor=function(index,kItem){if(!this.Frame||!this.Frame.SubFrame[0]||!this.Frame.SubFrame[0].Frame)return false;var frame=this.Frame.SubFrame[0].Frame;var x=-1,y=-1;if(IFrameSplitOperator.IsNumber(index)&&index>=0)x=frame.GetXFromIndex(index);if(kItem&&IFrameSplitOperator.IsNumber(kItem.Close))y=frame.GetYFromData(kItem.Close);//保存最后一次鼠标移动信息
8712
8716
  var MoveStatus={X:x,Y:y,IsInClient:this.IsMouseOnClient(x,y)};this.LastMouseStatus.OnMouseMove=MoveStatus;this.LastMouseStatus.MoveOnPoint={X:x,Y:y};//鼠标移动的位置
8713
- var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_MOUSE_MOVE);var titleChart=this.TitlePaint[0];if(event&&titleChart)titleChart.OnMouseMoveEvent=event;this.MoveOnPoint={X:x,Y:y};this.OnMouseMove(x,y,{});this.LastMouseStatus.MoveOnPoint=null;if(titleChart)titleChart.OnMouseMoveEvent=null;}};this.SendPageChangedEvent=function(){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_MINUTE_PAGE_CHANGED);//选中画图工具事件
8717
+ var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_MOUSE_MOVE);var titleChart=this.TitlePaint[0];if(event&&titleChart)titleChart.OnMouseMoveEvent=event;this.MoveOnPoint={X:x,Y:y};this.OnMouseMove(x,y,{});this.LastMouseStatus.MoveOnPoint=null;if(titleChart)titleChart.OnMouseMoveEvent=null;return true;};this.SendPageChangedEvent=function(){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_MINUTE_PAGE_CHANGED);//选中画图工具事件
8714
8718
  if(!event||!event.Callback)return;var sendData={DayOffset:this.DayOffset,DayData:this.DayData};event.Callback(event,sendData,this);};this.IsMouseOnClient=function(x,y){var border=this.Frame.IsHScreen?this.Frame.ChartBorder.GetHScreenBorder():this.Frame.ChartBorder.GetBorder();var rect={Left:border.Left,Top:border.Top,Right:border.Right,Bottom:border.Bottom};if(x>=rect.Left&&x<=rect.Right&&y>=rect.Top&&y<=rect.Bottom)return true;return false;};this.GetChartMinuteBuySellBar=function(){var chart=this.ChartPaint[3];if(!chart)return null;if(chart.Name!="Minute-BuySell-Bar")return null;return chart;};this.IsShowMinuteBuySellBar=function(){var chart=this.GetChartMinuteBuySellBar();if(!chart)return false;return chart.IsShow;};//左右拖拽
8715
8719
  this.OnDragMode_One=function(moveData,e){var drag=this.MouseDrag;var moveSetp=moveData.X;var yMoveSetp=moveData.Y;var bNeedDraw=true;if(this.UpDownDrag&&this.UpDownDrag.Index>=0){if(yMoveSetp>=5){var yMove=e.clientY-drag.LastMove.Y;JSConsole.Chart.Log("[MinuteChartContainer::OnDragMode_One] UpDownDrag ",this.UpDownDrag,yMove);//this.UIElement.style.cursor="pointer";
8716
8720
  this.SetCursor({Cursor:"pointer"});if(this.OnUpDonwFrameY(this.UpDownDrag,yMove)){drag.LastMove.Y=e.clientY;bNeedDraw=true;}}}else if(this.RectSelectDrag&&this.RectSelectDrag.Index>=0)//区间选择 左右调整
@@ -8828,11 +8832,17 @@ if(this.SelectChartDrawPicture){var drawPicture=this.SelectChartDrawPicture;JSCo
8828
8832
  this.OnMarkRectSelect(e);break;case 33://page up
8829
8833
  if(this.PageInfo.Enable){var option={ID:JSCHART_OPERATOR_ID.OP_SCROLL_LEFT,Step:this.PageInfo.ShowDayCount};this.ChartOperator(option);}break;case 34://page down
8830
8834
  if(this.PageInfo.Enable){var option={ID:JSCHART_OPERATOR_ID.OP_SCROLL_RIGHT,Step:this.PageInfo.ShowDayCount};this.ChartOperator(option);}break;case 27:if(this.CurrentChartDrawPicture){var drawPicture=this.CurrentChartDrawPicture;if(drawPicture.Status!=20)//画布移动的时候不能取消
8831
- this.CurrentChartDrawPicture=null;}break;case 38:case 40:if((e.ctrlKey||e.shiftKey)&&this.OnCustomKeyDown)this.OnCustomKeyDown(keyID,e);break;default:return;}if(draw)this.DrawDynamicInfo();//不让滚动条滚动
8835
+ this.CurrentChartDrawPicture=null;}break;case 38://up
8836
+ case 40://down
8837
+ if((e.ctrlKey||e.shiftKey)&&this.OnCustomKeyDown)this.OnCustomKeyDown(keyID,e);break;case 35://END
8838
+ case 36://HOME
8839
+ if(this.OnCustomKeyDown)this.OnCustomKeyDown(keyID,e);break;default:return;}if(draw)this.DrawDynamicInfo();//不让滚动条滚动
8832
8840
  if(e.preventDefault)e.preventDefault();else e.returnValue=false;};this.OnCustomKeyDown=function(keyID,e)//自定义键盘事件
8833
8841
  {if(keyID==38&&e.shiftKey)//shift+up 上移十字光标
8834
8842
  {this.MoveCorssCursorUp(this.ShiftUpDownStepPixel);return true;}else if(keyID==40&&e.shiftKey)//shift+down 下移十字光标
8835
- {this.MoveCorssCursorDown(this.ShiftUpDownStepPixel);return true;}else{return false;}};/*
8843
+ {this.MoveCorssCursorDown(this.ShiftUpDownStepPixel);return true;}else if(keyID==36)//HOME 第1条
8844
+ {var option={ID:JSCHART_OPERATOR_ID.OP_CORSSCURSOR_PAGE_START};return this.ChartOperator(option);}else if(keyID==35)//END 最后一条
8845
+ {var option={ID:JSCHART_OPERATOR_ID.OP_CORSSCURSOR_PAGE_END};return this.ChartOperator(option);}else{return false;}};/*
8836
8846
  this.OnMarkRectSelect=function(e)
8837
8847
  {
8838
8848
  var corssCursor=this.ChartCorssCursor; //十字光标
@@ -8915,7 +8925,7 @@ this.GetRightMenuData=function(frameID,option){var windowCount=this.Frame.SubFra
8915
8925
  var aryOverlaySymbol=[];//叠加的股票列表
8916
8926
  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;//十字光标十字线
8917
8927
  var bCorssDrawCloseLine=false;//十字光标只能画在走势图价格线上
8918
- 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 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_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.IsSHSZStockA(this.Symbol)){var item={Name:"集合竞价",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_BEFORE_DATA_ID,Args:[!this.IsShowBeforeData]},Checked:this.IsShowBeforeData};aryMenu.splice(4,0,item);}for(var i=0;i<aryMenu.length;++i){var item=aryMenu[i];if(item.Name=="叠加品种")//删除菜单
8928
+ 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 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_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.IsSHSZStockA(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.IsShowBeforeData}]},Checked:this.IsShowAfterData};item.SubMenu.push(subItem);aryMenu.splice(4,0,item);}for(var i=0;i<aryMenu.length;++i){var item=aryMenu[i];if(item.Name=="叠加品种")//删除菜单
8919
8929
  {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+上下滚轴
8920
8930
  {bPreventDefault=true;}else{if(this.OnWheel_ZoomUpDownFrameY(e,x,y))bPreventDefault=true;}if(bPreventDefault){if(e.preventDefault)e.preventDefault();else e.returnValue=false;}};//通过滚轴缩放Y轴
8921
8931
  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轴缩放状态下才有效
@@ -13824,7 +13834,7 @@ switch(column.ColorType){case 1:drawInfo.TextColor=this.GetUpDownColor(value,0);
13824
13834
  {this.GetCustomIconData(column,data.Symbol,drawInfo,data);return;}};this.GetCustomCheckBoxDrawInfo=function(data,column,drawInfo){var checkData=this.GetExtendData(data,column);if(!checkData)return;if(!IFrameSplitOperator.IsBool(checkData.Checked))return;drawInfo.Checked=checkData.Checked;drawInfo.Enable=true;drawInfo.Data=checkData;if(IFrameSplitOperator.IsBool(checkData.DisableCheckBox))drawInfo.Enable=!checkData.DisableCheckBox;drawInfo.CheckBox=column.CheckBox;};this.GetCustomButtonDrawInfo=function(data,column,drawInfo){var buttonData=this.GetExtendData(data,column);if(!buttonData)return;drawInfo.Text=buttonData.Title;drawInfo.Button=column.Button;drawInfo.Font=column.Button.Font;drawInfo.Enable=true;drawInfo.Data=buttonData;if(IFrameSplitOperator.IsBool(buttonData.Enable))drawInfo.Enable=buttonData.Enable;};this.GetCustomProgressBarDrawInfo=function(data,column,drawInfo){var barData=this.GetExtendData(data,column);if(!barData)return;drawInfo.Text=barData.Title;drawInfo.ProgressBar=column.ProgressBar;drawInfo.Enable=true;drawInfo.Value=barData.Value;//占比
13825
13835
  drawInfo.Data=barData;if(IFrameSplitOperator.IsBool(barData.Enable))drawInfo.Enable=barData.Enable;if(barData.TextColor)drawInfo.TextColor=barData.TextColor;if(barData.BarColor)drawInfo.BarColor=barData.BarColor;if(barData.BGColor)drawInfo.BGColor=barData.BGColor;};this.GetCustomLinkDrawInfo=function(data,column,drawInfo){var linkData=this.GetExtendData(data,column);if(!linkData)return;drawInfo.Text=linkData.Title;drawInfo.Link=column.Link;drawInfo.Enable=true;drawInfo.Data=linkData;drawInfo.MaxText=column.MaxText;if(IFrameSplitOperator.IsBool(linkData.Enable))drawInfo.Enable=linkData.Enable;if(linkData.TextColor)drawInfo.TextColor=linkData.TextColor;};this.FormatReserveNumber=function(column,data,drawInfo){if(column.DefaultText)drawInfo.Text=column.DefaultText;var fieldName=MAP_COLUMN_FIELD.get(column.Type);if(!data||!fieldName)return;var value=data[fieldName];if(!IFrameSplitOperator.IsNumber(value))return;if(IFrameSplitOperator.IsNumber(column.ColorType)){if(column.ColorType==1){drawInfo.TextColor=this.GetUpDownColor(value,0);}else if(column.ColorType==2){drawInfo.TextColor=this.GetUpDownColorV2(value,0);}else if(column.ColorType==3){drawInfo.TextColor=this.GetUpDownColor(value,data.YClose);}}var text=value.toFixed(column.FloatPrecision);if(column.Format&&IFrameSplitOperator.IsNumber(column.Format.Type)){var format=column.Format;switch(format.Type){case 1://原始数据
13826
13836
  text=value.toFixed(column.FloatPrecision);break;case 2://千分位分割
13827
- text=IFrameSplitOperator.FormatValueThousandsString(value,column.FloatPrecision);break;case 3:var exfloatPrecision=1;if(IFrameSplitOperator.IsNumber(format.ExFloatPrecision))exfloatPrecision=format.ExFloatPrecision;text=IFrameSplitOperator.FormatValueStringV2(value,column.FloatPrecision,exfloatPrecision);break;}}if(column.StringFormat&&text){text=column.StringFormat.replace("{0}",text);}drawInfo.Text=text;};this.FormatReserveString=function(column,data,drawInfo){if(column.DefaultText)drawInfo.Text=column.DefaultText;var fieldName=MAP_COLUMN_FIELD.get(column.Type);if(!data||!fieldName)return;var item=data[fieldName];if(IFrameSplitOperator.IsObject(item)){if(item.Text)drawInfo.Text=item.Text;if(item.TextColor)drawInfo.TextColor=item.TextColor;if(item.BGColor)drawInfo.BGColor=item.BGColor;if(item.Tooltip&&IFrameSplitOperator.IsNonEmptyArray(item.Tooltip.AryText)){drawInfo.Tooltip={Type:4,Data:{AryText:item.Tooltip.AryText}};}}else if(IFrameSplitOperator.IsString(item)){drawInfo.Text=item;}};this.FormatReserveDateTime=function(column,data,drawInfo){if(column.DefaultText)drawInfo.Text=column.DefaultText;var fieldName=MAP_COLUMN_FIELD.get(column.Type);if(!data||!fieldName)return;var item=data[fieldName];if(!IFrameSplitOperator.IsObject(item))return;if(item.DateTime)drawInfo.Text=IFrameSplitOperator.FormatDateTimeStringV2(item.DateTime,column.DateTimeFormat);if(item.TextColor)drawInfo.TextColor=item.TextColor;if(item.BGColor)drawInfo.BGColor=item.BGColor;};this.FormatReserveProgressBar=function(column,data,drawInfo){var fieldName=MAP_COLUMN_FIELD.get(column.Type);if(!data||!fieldName)return;var item=data[fieldName];if(IFrameSplitOperator.IsNumber(item)){drawInfo.ProgressBar=column.ProgressBar;drawInfo.Enable=true;drawInfo.Value=item;//占比
13837
+ text=IFrameSplitOperator.FormatValueThousandsString(value,column.FloatPrecision);break;case 3:var exfloatPrecision=1;if(IFrameSplitOperator.IsNumber(format.ExFloatPrecision))exfloatPrecision=format.ExFloatPrecision;text=IFrameSplitOperator.FormatValueStringV2(value,column.FloatPrecision,exfloatPrecision);break;}}if(column.StringFormat&&text){text=column.StringFormat.replace("{0}",text);}drawInfo.Text=text;};this.FormatReserveString=function(column,data,drawInfo){if(column.DefaultText)drawInfo.Text=column.DefaultText;var fieldName=MAP_COLUMN_FIELD.get(column.Type);if(!data||!fieldName)return;var item=data[fieldName];if(IFrameSplitOperator.IsObject(item)){if(item.Text)drawInfo.Text=item.Text;if(item.TextColor)drawInfo.TextColor=item.TextColor;if(item.BGColor)drawInfo.BGColor=item.BGColor;if(item.Tooltip&&IFrameSplitOperator.IsNonEmptyArray(item.Tooltip.AryText)){drawInfo.Tooltip={Type:4,Data:{AryText:item.Tooltip.AryText,Callback:item.Tooltip.Callback}};}}else if(IFrameSplitOperator.IsString(item)){drawInfo.Text=item;}};this.FormatReserveDateTime=function(column,data,drawInfo){if(column.DefaultText)drawInfo.Text=column.DefaultText;var fieldName=MAP_COLUMN_FIELD.get(column.Type);if(!data||!fieldName)return;var item=data[fieldName];if(!IFrameSplitOperator.IsObject(item))return;if(item.DateTime)drawInfo.Text=IFrameSplitOperator.FormatDateTimeStringV2(item.DateTime,column.DateTimeFormat);if(item.TextColor)drawInfo.TextColor=item.TextColor;if(item.BGColor)drawInfo.BGColor=item.BGColor;};this.FormatReserveProgressBar=function(column,data,drawInfo){var fieldName=MAP_COLUMN_FIELD.get(column.Type);if(!data||!fieldName)return;var item=data[fieldName];if(IFrameSplitOperator.IsNumber(item)){drawInfo.ProgressBar=column.ProgressBar;drawInfo.Enable=true;drawInfo.Value=item;//占比
13828
13838
  drawInfo.Data={Value:item};}else if(IFrameSplitOperator.IsObject(item)){if(item.Title)drawInfo.Text=item.Title;drawInfo.ProgressBar=column.ProgressBar;drawInfo.Enable=true;drawInfo.Value=item.Value;//占比
13829
13839
  drawInfo.Data=item;if(IFrameSplitOperator.IsBool(item.Enable))drawInfo.Enable=item.Enable;if(item.TextColor)drawInfo.TextColor=item.TextColor;if(item.BarColor)drawInfo.BarColor=item.BarColor;if(item.BGColor)drawInfo.BGColor=item.BGColor;}};this.FormatReserveButton=function(column,data,drawInfo){var fieldName=MAP_COLUMN_FIELD.get(column.Type);if(!data||!fieldName)return;var item=data[fieldName];if(!item)return;drawInfo.Text=item.Title;drawInfo.Button=column.Button;drawInfo.Font=column.Button.Font;drawInfo.Enable=true;drawInfo.Data=item;if(IFrameSplitOperator.IsBool(item.Enable))drawInfo.Enable=item.Enable;};this.FormaTimeDrawInfo=function(column,stock,drawInfo,data){if(!IFrameSplitOperator.IsNumber(stock.Time))return;if(column.ValueType==0)//0=hhmm 1=hhmmss 2=hhmmss.fff
13830
13840
  {drawInfo.Text=IFrameSplitOperator.FormatTimeString(stock.Time,"HH:MM");}else if(column.ValueType==1){drawInfo.Text=IFrameSplitOperator.FormatTimeString(stock.Time,"HH:MM:SS");}else if(column.ValueType==2){drawInfo.Text=IFrameSplitOperator.FormatTimeString(stock.Time,"HH:MM:SS.fff");}};this.FormaDateDrawInfo=function(column,stock,drawInfo,data){if(!IFrameSplitOperator.IsNumber(stock.Date))return;if(column.FormatType==0)drawInfo.Text=IFrameSplitOperator.FormatDateString(stock.Date,"YYYY-MM-DD");else if(column.FormatType==1)drawInfo.Text=IFrameSplitOperator.FormatDateString(stock.Date,"YYYY/MM/DD");else if(column.FormatType==2)drawInfo.Text=IFrameSplitOperator.FormatDateString(stock.Date,"YYYY/MM/DD/W");else if(column.FormatType==3)drawInfo.Text=IFrameSplitOperator.FormatDateString(stock.Date,"YYYY-MM");else if(column.FormatType==4)drawInfo.Text=IFrameSplitOperator.FormatDateString(stock.Date,"MM/DD");else if(column.FormatType==4)drawInfo.Text=IFrameSplitOperator.FormatDateString(stock.Date,"MM-DD");};//自定义图标
@@ -13878,7 +13888,7 @@ this.Canvas.fillStyle=this.DragRowColor;this.Canvas.fillRect(left,textTop,rowWid
13878
13888
  var chartRight=this.RectClient.Right;this.Canvas.font=this.ItemFont;for(var i=0;i<this.FixedColumn&&i<this.Column.length;++i){var item=this.Column[i];this.DrawItem(dataIndex,data,item,left,top,3);left+=item.Width;if(left>=chartRight)break;}for(var i=this.FixedColumn+this.Data.XOffset;i<this.Column.length;++i){var item=this.Column[i];this.DrawItem(dataIndex,data,item,left,top,3);left+=item.Width;if(left>=chartRight)break;}};this.DrawDragHeader=function(){if(!this.DragHeader)return;var drag=this.DragHeader;var clickData=drag.ClickData;var rtHeader=clickData.Header.Rect;var headerWidth=rtHeader.Right-rtHeader.Left;var rtRow={Left:drag.MovePoint.X-headerWidth/2,Top:this.RectClient.Top+this.HeaderHeight,Width:headerWidth};rtRow.Bottom=rtRow.Top+this.HeaderHeight+this.RowHeight*this.RowCount+this.FixedRowHeight*this.FixedRowCount;rtRow.Right=rtRow.Left+rtRow.Width;rtRow.Height=rtRow.Bottom-rtRow.Top;//背景
13879
13889
  this.Canvas.fillStyle=this.DragRowColor;this.Canvas.fillRect(rtRow.Left,rtRow.Top,rtRow.Width,rtRow.Height);//文字
13880
13890
  var cellHeader={Left:rtRow.Left,Top:rtRow.Top,Right:rtRow.Right,Width:rtRow.Width,Height:this.HeaderHeight};cellHeader.Bottom=cellHeader.Top+cellHeader.Height;this.DrawHeaderItem(clickData.Header.Column,cellHeader,clickData.Header.Index,{HeaderColor:this.DragRowTextColor});var textTop=cellHeader.Bottom+this.FixedRowHeight*this.FixedRowCount;this.Canvas.font=this.ItemFont;var dataCount=this.GetAllRowCount();for(var i=this.Data.YOffset,j=0;i<dataCount&&j<this.RowCount;++i,++j){var symbol=this.Data.Data[i];var data={Symbol:symbol,Stock:null,Block:null};if(this.GetStockDataCallback)data.Stock=this.GetStockDataCallback(symbol);if(this.GetBlockDataCallback)data.Block=this.GetBlockDataCallback(symbol);if(this.GetFlashBGDataCallback)data.FlashBG=this.GetFlashBGDataCallback(symbol,Date.now());data.Decimal=GetfloatPrecision(symbol);//小数位数
13881
- var item=this.Column[clickData.Header.Index];this.DrawItem(i,data,item,cellHeader.Left,textTop,3);textTop+=this.RowHeight;}};this.GetTooltipData=function(x,y){if(!IFrameSplitOperator.IsNonEmptyArray(this.TooltipRect))return null;for(var i=0;i<this.TooltipRect.length;++i){var item=this.TooltipRect[i];var rt=item.Rect;if(!rt)continue;if(x>=rt.Left&&x<=rt.Right&&y>=rt.Top&&y<=rt.Bottom){return{Rect:item.Rect,Stock:item.Stock,Column:item.Column,Index:item.Index,Type:item.Type,Data:item.Data};}}return null;};this.GetButtonData=function(x,y){if(!IFrameSplitOperator.IsNonEmptyArray(this.ButtonRect))return null;for(var i=0;i<this.ButtonRect.length;++i){var item=this.ButtonRect[i];var rt=item.Rect;if(!rt)continue;if(x>=rt.Left&&x<=rt.Right&&y>=rt.Top&&y<=rt.Bottom){return{Rect:item.Rect,Stock:item.Stock,Column:item.Column,Index:item.Index,Type:item.Type,Data:item.Data,ColumnIndex:item.ColumnIndex};}}};this.PtInHeaderDragBorder=function(x,y){if(!this.IsShowHeader)return null;var left=this.RectClient.Left;var right=this.RectClient.Right;var top=this.RectClient.Top;var bottom=top+this.HeaderHeight;if(!(x>=left&&x<=right&&y>=top&&y<=bottom))return null;var textLeft=left;var dragBarWidth=5*GetDevicePixelRatio();//固定列
13891
+ var item=this.Column[clickData.Header.Index];this.DrawItem(i,data,item,cellHeader.Left,textTop,3);textTop+=this.RowHeight;}};this.GetTooltipData=function(x,y){if(!IFrameSplitOperator.IsNonEmptyArray(this.TooltipRect))return null;for(var i=0;i<this.TooltipRect.length;++i){var item=this.TooltipRect[i];var rt=item.Rect;if(!rt)continue;if(x>=rt.Left&&x<=rt.Right&&y>=rt.Top&&y<=rt.Bottom){return{Rect:item.Rect,Stock:item.Stock,Column:item.Column,Index:item.Index,Type:item.Type,Data:item.Data,Callback:item.Callback};}}return null;};this.GetButtonData=function(x,y){if(!IFrameSplitOperator.IsNonEmptyArray(this.ButtonRect))return null;for(var i=0;i<this.ButtonRect.length;++i){var item=this.ButtonRect[i];var rt=item.Rect;if(!rt)continue;if(x>=rt.Left&&x<=rt.Right&&y>=rt.Top&&y<=rt.Bottom){return{Rect:item.Rect,Stock:item.Stock,Column:item.Column,Index:item.Index,Type:item.Type,Data:item.Data,ColumnIndex:item.ColumnIndex};}}};this.PtInHeaderDragBorder=function(x,y){if(!this.IsShowHeader)return null;var left=this.RectClient.Left;var right=this.RectClient.Right;var top=this.RectClient.Top;var bottom=top+this.HeaderHeight;if(!(x>=left&&x<=right&&y>=top&&y<=bottom))return null;var textLeft=left;var dragBarWidth=5*GetDevicePixelRatio();//固定列
13882
13892
  for(var i=0;i<this.FixedColumn&&i<this.Column.length;++i){var item=this.Column[i];if(item.EnableDragWidth===true){var header={Right:textLeft+item.Width,Top:top,Bottom:bottom};header.Left=header.Right-dragBarWidth;if(x>=header.Left&&x<=header.Right&&y>=header.Top&&y<=header.Bottom){return{Rect:header,Column:item,Index:i,IsFixed:true};}}textLeft+=item.Width;}for(var i=this.FixedColumn+this.Data.XOffset;i<this.Column.length;++i){var item=this.Column[i];if(textLeft>=right)break;if(item.EnableDragWidth===true){var header={Right:textLeft+item.Width,Top:top,Bottom:bottom};header.Left=header.Right-dragBarWidth;if(x>=header.Left&&x<=header.Right&&y>=header.Top&&y<=header.Bottom){return{Rect:header,Column:item,Index:i,IsFixed:false};}}textLeft+=item.Width;}return null;};//设置选中行 option={ Symbol:, AutoYScroll:true/false Y滚动条自定定位 }
13883
13893
  this.SetSelectedRow=function(option){if(!option)return false;if(this.SelectedModel===0)return false;if(!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return false;if(option.Symbol){var symbol=option.Symbol;var bFinder=false;if(this.SelectedRowData){var item=this.Data.Data[this.SelectedRowData.DataIndex];if(symbol==item&&symbol==this.SelectedRowData.Symbol)bFinder=true;}if(!bFinder){for(var i=0;i<this.Data.Data.length;++i){var item=this.Data.Data[i];if(symbol==item){this.SelectedRowData={DataIndex:i,Symbol:item};bFinder=true;break;}}}if(!bFinder)return false;if(option.AutoYScroll===true){this.UpdatePageYOffset({SelectedRow:this.SelectedRowData.DataIndex});}return bFinder;}return false;};this.UpdatePageYOffset=function(option){if(!option)return;var selectedRow=option.SelectedRow;if(selectedRow<0)return;var pageStatus=this.GetCurrentPageStatus();if(pageStatus.IsSinglePage)return;if(selectedRow>=pageStatus.Start&&selectedRow<=pageStatus.End)return;this.Data.YOffset=selectedRow;//选中行不在当前屏 设置为第1行
13884
13894
  };}//报价列表底部tab和横向滚动条
@@ -15047,7 +15057,7 @@ this.UpdateMinuteInfoTooltip=function(data){var tooltipData=data.Tooltip;if(!too
15047
15057
  this.UpdatMultiSVGIconV2Tooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!tooltipData.Data.Item)return;var item=tooltipData.Data.Item;var aryText=[];if(item&&IFrameSplitOperator.IsObject(item.Text)){var tooltipData=item.Text;if(IFrameSplitOperator.IsNonEmptyArray(tooltipData.AryText)){for(var i=0;i<tooltipData.AryText.length;++i){var tooltipItem=tooltipData.AryText[i];var textItem={Title:tooltipItem.Title,Text:tooltipItem.Text,Color:this.ValueColor};if(tooltipItem.Color)textItem.Color=tooltipItem.Color;if(tooltipItem.Align=="Left")tooltipItem.ClassName=this.ValueAlign.Left;aryText.push(tooltipItem);}}}else{var rowItem={Text:"",HTMLTitle:item.Text,Color:this.ValueColor,IsMergeCell:true};aryText.push(rowItem);}this.AryText=aryText;this.UpdateTableDOM();this.ShowTooltip(data);};//ChartOX 信息
15048
15058
  this.UpdatChartOXTooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!tooltipData.Data.Data)return;var item=tooltipData.Data.Data;var period=this.HQChart.Period;var aryText=[];if(ChartData.IsDayPeriod(period,true)){var strStartDate=IFrameSplitOperator.FormatDateString(item.Start.Date,"YYYY-MM-DD");var strEndDate=IFrameSplitOperator.FormatDateString(item.End.Date,"YYYY-MM-DD");aryText.push({Title:"起始时间",Text:strStartDate,Color:this.ValueColor});aryText.push({Title:"结束时间",Text:strEndDate,Color:this.ValueColor});}else if(ChartData.IsMinutePeriod(period,true)){var strStartDate=IFrameSplitOperator.FormatDateString(item.Start.Date);var strStartTime=IFrameSplitOperator.FormatTimeString(item.Start.Time,"HH:MM");var strEndDate=IFrameSplitOperator.FormatDateString(item.End.Date);var strEndTime=IFrameSplitOperator.FormatTimeString(item.End.Time,"HH:MM");aryText.push({Title:"起始时间",Text:strStartDate+' '+strStartTime,Color:this.ValueColor});aryText.push({Title:"结束时间",Text:strEndDate+' '+strEndTime,Color:this.ValueColor});}this.AryText=aryText;this.UpdateTableDOM();this.ShowTooltip(data);};//表头图标
15049
15059
  this.ReportHeaderIconTooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!IFrameSplitOperator.IsNonEmptyArray(tooltipData.Data.AryText))return;this.AryText=tooltipData.Data.AryText;this.UpdateTableDOM();this.ShowTooltip(data);};//单元格提示信息
15050
- this.ReportCellTooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!IFrameSplitOperator.IsNonEmptyArray(tooltipData.Data.AryText))return;this.AryText=tooltipData.Data.AryText;this.UpdateTableDOM();this.ShowTooltip(data);};//表格单元格截断内容
15060
+ this.ReportCellTooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!IFrameSplitOperator.IsNonEmptyArray(tooltipData.Data.AryText))return;this.AryText=tooltipData.Data.AryText;if(tooltipData.Data.Callback){var callback=tooltipData.Data.Callback;var sendData={AryText:null,data:data,PreventDefault:false};callback(sendData,this);if(sendData.PreventDefault){if(!IFrameSplitOperator.IsNonEmptyArray(sendData.AryText))return;this.AryText=sendData.AryText;}}this.UpdateTableDOM();this.ShowTooltip(data);};//表格单元格截断内容
15051
15061
  this.ReportCellTruncateTooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!IFrameSplitOperator.IsNonEmptyArray(tooltipData.Data.AryText))return;var item=tooltipData.Data.AryText[0];if(!item.Text)return;this.AryText=[{Title:item.Text,IsMergeCell:true}];this.UpdateTableDOM();this.ShowTooltip(data);};this.TReportIconTooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!IFrameSplitOperator.IsNonEmptyArray(tooltipData.Data.AryText))return;this.AryText=tooltipData.Data.AryText;this.UpdateTableDOM();this.ShowTooltip(data);};this.DealItemTooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!IFrameSplitOperator.IsNonEmptyArray(tooltipData.Data.AryText))return;this.AryText=tooltipData.Data.AryText;this.UpdateTableDOM();this.ShowTooltip(data);};this.UpdateTableDOM=function(){var index=0;for(index=0;index<this.AryText.length&&index<this.MaxRowCount;++index){var outItem=this.AryText[index];var item=this.AryData[index];if(outItem.HTMLTitle)item.TitleSpan.innerHTML=outItem.HTMLTitle;else item.TitleSpan.innerText=outItem.Title;if(outItem.TitleColor)item.TitleSpan.style.color=outItem.TitleColor;else item.TitleSpan.style.color=this.TextColor;if(outItem.HTMLText)item.TextSpan.innerHTML=outItem.HTMLText;else item.TextSpan.innerText=outItem.Text;item.TextSpan.style.color=outItem.Color;item.TextTd.style.color=outItem.Color;if(outItem.ClassName){item.TextSpan.className=outItem.ClassName;}else{if(item.TextSpan.className!=this.ValueAlign.Right)item.TextSpan.className=this.ValueAlign.Right;}if(outItem.TitleClassName){item.TitleSpan.className=outItem.TitleClassName;}else{if(item.TitleSpan.className!=this.TitleAlign.Default)item.TitleSpan.className=this.TitleAlign.Default;}if(outItem.IsMergeCell)//合并单元格
15052
15062
  {item.TitleTd.colspan=2;item.TextTd.style.display="none";}else{if(item.TitleTd.colspan!=1)item.TitleTd.colspan=1;item.TextTd.style.display="";}item.Tr.style.display="";if(item.Tr2)item.Tr2.style.display="none";}for(;index<this.MaxRowCount;++index){var item=this.AryData[index];item.Tr.style.display="none";if(item.Tr2)item.Tr2.style.display="none";}};this.GetFormatKLineTooltipText=function(kItem){var data=kItem.Item;var symbol=kItem.Symbol;if(data&&data.Symbol)symbol=symbol;var upperSymbol="";if(symbol)upperSymbol=symbol.toUpperCase();var defaultfloatPrecision=GetfloatPrecision(symbol);//价格小数位数
15053
15063
  var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);//日期
@@ -15200,7 +15210,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
15200
15210
  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);};}/********************************************************************************
15201
15211
  * 版本信息输出
15202
15212
  *
15203
- */var HQCHART_VERSION="1.1.14925";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();//把给外界调用的方法暴露出来
15213
+ */var HQCHART_VERSION="1.1.14932";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();//把给外界调用的方法暴露出来
15204
15214
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
15205
15215
  // BaseIndex:BaseIndex,
15206
15216
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.14926",
3
+ "version": "1.1.14933",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -1658,8 +1658,20 @@ function JSFloatTooltip()
1658
1658
  if (!tooltipData.Data || !IFrameSplitOperator.IsNonEmptyArray(tooltipData.Data.AryText)) return;
1659
1659
 
1660
1660
  this.AryText=tooltipData.Data.AryText;
1661
- this.UpdateTableDOM();
1662
1661
 
1662
+ if (tooltipData.Data.Callback)
1663
+ {
1664
+ var callback=tooltipData.Data.Callback;
1665
+ var sendData={ AryText:null, data, PreventDefault:false };
1666
+ callback(sendData, this);
1667
+ if (sendData.PreventDefault)
1668
+ {
1669
+ if (!IFrameSplitOperator.IsNonEmptyArray(sendData.AryText)) return;
1670
+ this.AryText=sendData.AryText;
1671
+ }
1672
+ }
1673
+
1674
+ this.UpdateTableDOM();
1663
1675
  this.ShowTooltip(data);
1664
1676
  }
1665
1677
 
@@ -2984,7 +2984,7 @@ var JSCHART_MENU_ID=
2984
2984
 
2985
2985
  CMD_XXXXXX_NONE_ID:22, //未用!!!!
2986
2986
  CMD_CHANGE_DAY_COUNT_ID:23, //切换天数
2987
- CMD_SHOW_BEFORE_DATA_ID:24, //显示|隐藏集合竞价
2987
+ CMD_SHOW_CALLCATION_ID:24, //显示|隐藏集合竞价 { Left:, Right: } //单日
2988
2988
 
2989
2989
  CMD_SELECTED_ZOOM_ID:25, //选中放大
2990
2990
  CMD_SELECTED_SUMMARY_ID:26, //区间统计
@@ -11191,9 +11191,15 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
11191
11191
  if (this.ChangeDayCount && param!=null)
11192
11192
  this.ChangeDayCount(param);
11193
11193
  break;
11194
- case JSCHART_MENU_ID.CMD_SHOW_BEFORE_DATA_ID:
11195
- if (this.ShowCallAuctionData && IFrameSplitOperator.IsBool(srcParam))
11196
- this.ShowCallAuctionData({ Left:srcParam, MultiDay:{ Left:srcParam }});
11194
+ case JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID:
11195
+ if (this.ShowCallAuctionData && srcParam)
11196
+ {
11197
+ var left=null,right=null;
11198
+ if (IFrameSplitOperator.IsBool(srcParam.Left)) left=srcParam.Left;
11199
+ if (IFrameSplitOperator.IsBool(srcParam.Right)) right=srcParam.Right;
11200
+ this.ShowCallAuctionData({ Left:left, Right:right });
11201
+ }
11202
+
11197
11203
  break;
11198
11204
  case JSCHART_MENU_ID.CMD_CHANGE_BASELINE_ID:
11199
11205
  if (this.ChangeBaselineType && IFrameSplitOperator.IsNumber(param))
@@ -55437,7 +55443,7 @@ function FrameSplitY()
55437
55443
  else
55438
55444
  {
55439
55445
  var floatPrecision=this.GetFloatPrecision(absValue,this.FloatPrecision); //数据比小数位数还小, 调整小数位数
55440
- text = IFrameSplitOperator.FormatValueString(value, floatPrecision,this.LanguageID);
55446
+ text = IFrameSplitOperator.FormatValueStringV2(value, floatPrecision,2, this.LanguageID);
55441
55447
  }
55442
55448
  }
55443
55449
 
@@ -88856,84 +88862,77 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
88856
88862
  this.SendPageChangedEvent();
88857
88863
  return true;
88858
88864
  }
88859
- else if (id==JSCHART_OPERATOR_ID.OP_CORSSCURSOR_GOTO) //{ Type:1 如果不存在 就隐藏十字光标}
88865
+ else if (id==JSCHART_OPERATOR_ID.OP_CORSSCURSOR_GOTO) //{ Type:1 如果不存在 就隐藏十字光标, Time:, Date: }
88860
88866
  {
88861
- if (!this.SourceData) return false;
88862
- if (!this.Frame || !this.Frame.SubFrame[0] || !this.Frame.SubFrame[0].Frame) return false;
88863
- var frame=this.Frame.SubFrame[0].Frame;
88864
- if (!IFrameSplitOperator.IsNonEmptyArray(this.SourceData.Data)) return false;
88865
- if (IFrameSplitOperator.IsNumber(obj.Time) && IFrameSplitOperator.IsNumber(obj.Date))
88867
+ var kData=this.GetKData();
88868
+ if (!kData || !IFrameSplitOperator.IsNonEmptyArray(kData.Data)) return false; //数据还没有到达
88869
+ if (!IFrameSplitOperator.IsNumber(obj.Time) || !IFrameSplitOperator.IsNumber(obj.Date)) return false;
88870
+ var findIndex=-1, findItem=null;
88871
+ for(var i=0;i<this.SourceData.Data.length;++i)
88866
88872
  {
88867
- var findIndex=-1, value=null, lastPrice=null;
88868
- for(var i=0;i<this.SourceData.Data.length;++i)
88873
+ var item=this.SourceData.Data[i];
88874
+ if (IFrameSplitOperator.IsNumber(item.Close)) lastPrice=item.Close;
88875
+ if (item.Time==obj.Time && item.Date==obj.Date)
88869
88876
  {
88870
- var item=this.SourceData.Data[i];
88871
- if (IFrameSplitOperator.IsNumber(item.Close)) lastPrice=item.Close;
88872
- if (item.Time==obj.Time && item.Date==obj.Date)
88873
- {
88874
- findIndex=i;
88875
- value=item.Close;
88876
- break;
88877
- }
88877
+ findIndex=i;
88878
+ findItem=item;
88879
+ break;
88878
88880
  }
88881
+ }
88879
88882
 
88880
- if (findIndex<0 && this.DayCount==1 && !(IFrameSplitOperator.IsNumber(obj.Type) && obj.Type>0))
88881
- {
88882
- var timeData = g_MinuteTimeStringData.GetTimeData(this.Symbol);
88883
- for(var i=0;i<timeData.length;++i)
88884
- {
88885
- if (timeData[i]==obj.Time)
88886
- {
88887
- findIndex=i;
88888
- value=lastPrice;
88889
- break;
88890
- }
88891
- }
88892
- }
88883
+ this.ChartOperator_Temp_SetChartCorssCursor(findIndex, findItem);
88884
+ return true;
88885
+ }
88886
+ else if (id==JSCHART_OPERATOR_ID.OP_CORSSCURSOR_PAGE_START) //当前屏第1条数据
88887
+ {
88888
+ var kData=this.GetKData();
88889
+ if (!kData || !IFrameSplitOperator.IsNonEmptyArray(kData.Data)) return false; //数据还没有到达
88893
88890
 
88894
- if (findIndex<0)
88895
- {
88896
- if (obj.Type==1) // 如果不存在 就隐藏十字光标
88897
- {
88898
- var x=-1,y=-1;
88899
- var MoveStatus={ X:x, Y:y, IsInClient: this.IsMouseOnClient(x,y) };
88900
- this.LastMouseStatus.OnMouseMove=MoveStatus;
88901
- this.LastMouseStatus.MoveOnPoint={X:x, Y:y}; //鼠标移动的位置
88902
-
88903
- var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_MOUSE_MOVE);
88904
- var titleChart=this.TitlePaint[0];
88905
- if (event && titleChart) titleChart.OnMouseMoveEvent=event;
88906
-
88907
- var e={clientX:x, clientY:y};
88908
- this.MoveOnPoint={X:x, Y:y};
88909
- this.OnMouseMove(x,y,e);
88910
- this.LastMouseStatus.MoveOnPoint=null;
88911
- if (titleChart) titleChart.OnMouseMoveEvent=null;
88912
- }
88891
+ var startIndex=kData.DataOffset;
88892
+ var kItem=kData.Data[startIndex];
88893
+ this.ChartOperator_Temp_SetChartCorssCursor(0, kItem);
88894
+ return true;
88895
+
88896
+ }
88897
+ else if (id==JSCHART_OPERATOR_ID.OP_CORSSCURSOR_PAGE_END) //当前屏最后1条数据
88898
+ {
88899
+ var kData=this.GetKData();
88900
+ if (!kData || !IFrameSplitOperator.IsNonEmptyArray(kData.Data)) return false; //数据还没有到达
88913
88901
 
88914
- return;
88915
- }
88916
- }
88902
+ var index=kData.Data.length-1;
88903
+ var kItem=kData.Data[index];
88904
+ this.ChartOperator_Temp_SetChartCorssCursor(index, kItem);
88905
+ return true;
88906
+ }
88917
88907
 
88918
- var x=frame.GetXFromIndex(findIndex);
88919
- var y=frame.GetYFromData(value);
88908
+ }
88920
88909
 
88921
- //保存最后一次鼠标移动信息
88922
- var MoveStatus={ X:x, Y:y, IsInClient: this.IsMouseOnClient(x,y) };
88923
- this.LastMouseStatus.OnMouseMove=MoveStatus;
88924
- this.LastMouseStatus.MoveOnPoint={X:x, Y:y}; //鼠标移动的位置
88910
+ //index=-1 隐藏十字光标
88911
+ this.ChartOperator_Temp_SetChartCorssCursor=function(index, kItem)
88912
+ {
88913
+ if (!this.Frame || !this.Frame.SubFrame[0] || !this.Frame.SubFrame[0].Frame) return false;
88914
+ var frame=this.Frame.SubFrame[0].Frame;
88925
88915
 
88926
- var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_MOUSE_MOVE);
88927
- var titleChart=this.TitlePaint[0];
88928
- if (event && titleChart) titleChart.OnMouseMoveEvent=event;
88929
-
88930
- this.MoveOnPoint={X:x, Y:y};
88931
- this.OnMouseMove(x,y,{});
88932
-
88933
- this.LastMouseStatus.MoveOnPoint=null;
88934
- if (titleChart) titleChart.OnMouseMoveEvent=null;
88935
-
88936
- }
88916
+ var x=-1,y=-1;
88917
+ if (IFrameSplitOperator.IsNumber(index) && index>=0) x=frame.GetXFromIndex(index);
88918
+ if (kItem && IFrameSplitOperator.IsNumber(kItem.Close)) y=frame.GetYFromData(kItem.Close);
88919
+
88920
+ //保存最后一次鼠标移动信息
88921
+ var MoveStatus={ X:x, Y:y, IsInClient: this.IsMouseOnClient(x,y) };
88922
+ this.LastMouseStatus.OnMouseMove=MoveStatus;
88923
+ this.LastMouseStatus.MoveOnPoint={X:x, Y:y}; //鼠标移动的位置
88924
+
88925
+ var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_MOUSE_MOVE);
88926
+ var titleChart=this.TitlePaint[0];
88927
+ if (event && titleChart) titleChart.OnMouseMoveEvent=event;
88928
+
88929
+ this.MoveOnPoint={X:x, Y:y};
88930
+ this.OnMouseMove(x,y,{});
88931
+
88932
+ this.LastMouseStatus.MoveOnPoint=null;
88933
+ if (titleChart) titleChart.OnMouseMoveEvent=null;
88934
+
88935
+ return true;
88937
88936
  }
88938
88937
 
88939
88938
  this.SendPageChangedEvent=function()
@@ -90289,11 +90288,15 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
90289
90288
  this.CurrentChartDrawPicture=null;
90290
90289
  }
90291
90290
  break;
90292
- case 38:
90293
- case 40:
90291
+ case 38: //up
90292
+ case 40: //down
90294
90293
  if ((e.ctrlKey||e.shiftKey) && this.OnCustomKeyDown)
90295
90294
  this.OnCustomKeyDown(keyID, e)
90296
90295
  break;
90296
+ case 35: //END
90297
+ case 36: //HOME
90298
+ if (this.OnCustomKeyDown) this.OnCustomKeyDown(keyID, e);
90299
+ break;
90297
90300
  default:
90298
90301
  return;
90299
90302
  }
@@ -90317,6 +90320,16 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
90317
90320
  this.MoveCorssCursorDown(this.ShiftUpDownStepPixel);
90318
90321
  return true;
90319
90322
  }
90323
+ else if (keyID==36) //HOME 第1条
90324
+ {
90325
+ var option={ ID:JSCHART_OPERATOR_ID.OP_CORSSCURSOR_PAGE_START };
90326
+ return this.ChartOperator(option);
90327
+ }
90328
+ else if (keyID==35) //END 最后一条
90329
+ {
90330
+ var option={ ID:JSCHART_OPERATOR_ID.OP_CORSSCURSOR_PAGE_END };
90331
+ return this.ChartOperator(option);
90332
+ }
90320
90333
  else
90321
90334
  {
90322
90335
  return false;
@@ -90588,11 +90601,28 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
90588
90601
 
90589
90602
  if (MARKET_SUFFIX_NAME.IsSHSZStockA(this.Symbol))
90590
90603
  {
90591
- var item={ Name:"集合竞价",Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_BEFORE_DATA_ID, Args:[!this.IsShowBeforeData] }, Checked:this.IsShowBeforeData };
90604
+ var item=
90605
+ {
90606
+ Name:"集合竞价",
90607
+ SubMenu:
90608
+ [
90609
+
90610
+ ]
90611
+ };
90612
+
90613
+ var bShow=(this.IsShowAfterData && this.IsShowBeforeData);
90614
+ var subItem={ Name:"盘后盘前(单日)",Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID, Args:[{ Left:!bShow, Right:!bShow } ] }, Checked:bShow };
90615
+ item.SubMenu.push(subItem);
90616
+
90617
+ var subItem={ Name:"盘前(单日)",Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID, Args:[{ Left:!this.IsShowBeforeData} ] }, Checked:this.IsShowBeforeData };
90618
+ item.SubMenu.push(subItem);
90619
+
90620
+ var subItem={ Name:"盘后(单日)",Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID, Args:[{ Right:!this.IsShowBeforeData} ] }, Checked:this.IsShowAfterData };
90621
+ item.SubMenu.push(subItem);
90622
+
90592
90623
  aryMenu.splice(4,0,item);
90593
90624
  }
90594
90625
 
90595
-
90596
90626
  for(var i=0;i<aryMenu.length;++i)
90597
90627
  {
90598
90628
  var item=aryMenu[i];
@@ -7573,8 +7573,8 @@ function ChartReport()
7573
7573
  drawInfo.Tooltip=
7574
7574
  {
7575
7575
  Type:4,
7576
- Data:{ AryText:item.Tooltip.AryText }
7577
- }
7576
+ Data:{ AryText:item.Tooltip.AryText , Callback:item.Tooltip.Callback },
7577
+ };
7578
7578
  }
7579
7579
  }
7580
7580
  else if (IFrameSplitOperator.IsString(item))
@@ -9202,7 +9202,7 @@ function ChartReport()
9202
9202
 
9203
9203
  if (x>=rt.Left && x<=rt.Right && y>=rt.Top && y<=rt.Bottom)
9204
9204
  {
9205
- return { Rect:item.Rect, Stock:item.Stock, Column:item.Column, Index:item.Index, Type:item.Type, Data:item.Data };
9205
+ return { Rect:item.Rect, Stock:item.Stock, Column:item.Column, Index:item.Index, Type:item.Type, Data:item.Data, Callback:item.Callback };
9206
9206
  }
9207
9207
  }
9208
9208
 
@@ -7080,7 +7080,7 @@ var JSCHART_MENU_ID=
7080
7080
 
7081
7081
  CMD_XXXXXX_NONE_ID:22, //未用!!!!
7082
7082
  CMD_CHANGE_DAY_COUNT_ID:23, //切换天数
7083
- CMD_SHOW_BEFORE_DATA_ID:24, //显示|隐藏集合竞价
7083
+ CMD_SHOW_CALLCATION_ID:24, //显示|隐藏集合竞价 { Left:, Right: } //单日
7084
7084
 
7085
7085
  CMD_SELECTED_ZOOM_ID:25, //选中放大
7086
7086
  CMD_SELECTED_SUMMARY_ID:26, //区间统计
@@ -15287,9 +15287,15 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
15287
15287
  if (this.ChangeDayCount && param!=null)
15288
15288
  this.ChangeDayCount(param);
15289
15289
  break;
15290
- case JSCHART_MENU_ID.CMD_SHOW_BEFORE_DATA_ID:
15291
- if (this.ShowCallAuctionData && IFrameSplitOperator.IsBool(srcParam))
15292
- this.ShowCallAuctionData({ Left:srcParam, MultiDay:{ Left:srcParam }});
15290
+ case JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID:
15291
+ if (this.ShowCallAuctionData && srcParam)
15292
+ {
15293
+ var left=null,right=null;
15294
+ if (IFrameSplitOperator.IsBool(srcParam.Left)) left=srcParam.Left;
15295
+ if (IFrameSplitOperator.IsBool(srcParam.Right)) right=srcParam.Right;
15296
+ this.ShowCallAuctionData({ Left:left, Right:right });
15297
+ }
15298
+
15293
15299
  break;
15294
15300
  case JSCHART_MENU_ID.CMD_CHANGE_BASELINE_ID:
15295
15301
  if (this.ChangeBaselineType && IFrameSplitOperator.IsNumber(param))
@@ -59533,7 +59539,7 @@ function FrameSplitY()
59533
59539
  else
59534
59540
  {
59535
59541
  var floatPrecision=this.GetFloatPrecision(absValue,this.FloatPrecision); //数据比小数位数还小, 调整小数位数
59536
- text = IFrameSplitOperator.FormatValueString(value, floatPrecision,this.LanguageID);
59542
+ text = IFrameSplitOperator.FormatValueStringV2(value, floatPrecision,2, this.LanguageID);
59537
59543
  }
59538
59544
  }
59539
59545
 
@@ -92952,84 +92958,77 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
92952
92958
  this.SendPageChangedEvent();
92953
92959
  return true;
92954
92960
  }
92955
- else if (id==JSCHART_OPERATOR_ID.OP_CORSSCURSOR_GOTO) //{ Type:1 如果不存在 就隐藏十字光标}
92961
+ else if (id==JSCHART_OPERATOR_ID.OP_CORSSCURSOR_GOTO) //{ Type:1 如果不存在 就隐藏十字光标, Time:, Date: }
92956
92962
  {
92957
- if (!this.SourceData) return false;
92958
- if (!this.Frame || !this.Frame.SubFrame[0] || !this.Frame.SubFrame[0].Frame) return false;
92959
- var frame=this.Frame.SubFrame[0].Frame;
92960
- if (!IFrameSplitOperator.IsNonEmptyArray(this.SourceData.Data)) return false;
92961
- if (IFrameSplitOperator.IsNumber(obj.Time) && IFrameSplitOperator.IsNumber(obj.Date))
92963
+ var kData=this.GetKData();
92964
+ if (!kData || !IFrameSplitOperator.IsNonEmptyArray(kData.Data)) return false; //数据还没有到达
92965
+ if (!IFrameSplitOperator.IsNumber(obj.Time) || !IFrameSplitOperator.IsNumber(obj.Date)) return false;
92966
+ var findIndex=-1, findItem=null;
92967
+ for(var i=0;i<this.SourceData.Data.length;++i)
92962
92968
  {
92963
- var findIndex=-1, value=null, lastPrice=null;
92964
- for(var i=0;i<this.SourceData.Data.length;++i)
92969
+ var item=this.SourceData.Data[i];
92970
+ if (IFrameSplitOperator.IsNumber(item.Close)) lastPrice=item.Close;
92971
+ if (item.Time==obj.Time && item.Date==obj.Date)
92965
92972
  {
92966
- var item=this.SourceData.Data[i];
92967
- if (IFrameSplitOperator.IsNumber(item.Close)) lastPrice=item.Close;
92968
- if (item.Time==obj.Time && item.Date==obj.Date)
92969
- {
92970
- findIndex=i;
92971
- value=item.Close;
92972
- break;
92973
- }
92973
+ findIndex=i;
92974
+ findItem=item;
92975
+ break;
92974
92976
  }
92977
+ }
92975
92978
 
92976
- if (findIndex<0 && this.DayCount==1 && !(IFrameSplitOperator.IsNumber(obj.Type) && obj.Type>0))
92977
- {
92978
- var timeData = g_MinuteTimeStringData.GetTimeData(this.Symbol);
92979
- for(var i=0;i<timeData.length;++i)
92980
- {
92981
- if (timeData[i]==obj.Time)
92982
- {
92983
- findIndex=i;
92984
- value=lastPrice;
92985
- break;
92986
- }
92987
- }
92988
- }
92979
+ this.ChartOperator_Temp_SetChartCorssCursor(findIndex, findItem);
92980
+ return true;
92981
+ }
92982
+ else if (id==JSCHART_OPERATOR_ID.OP_CORSSCURSOR_PAGE_START) //当前屏第1条数据
92983
+ {
92984
+ var kData=this.GetKData();
92985
+ if (!kData || !IFrameSplitOperator.IsNonEmptyArray(kData.Data)) return false; //数据还没有到达
92989
92986
 
92990
- if (findIndex<0)
92991
- {
92992
- if (obj.Type==1) // 如果不存在 就隐藏十字光标
92993
- {
92994
- var x=-1,y=-1;
92995
- var MoveStatus={ X:x, Y:y, IsInClient: this.IsMouseOnClient(x,y) };
92996
- this.LastMouseStatus.OnMouseMove=MoveStatus;
92997
- this.LastMouseStatus.MoveOnPoint={X:x, Y:y}; //鼠标移动的位置
92998
-
92999
- var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_MOUSE_MOVE);
93000
- var titleChart=this.TitlePaint[0];
93001
- if (event && titleChart) titleChart.OnMouseMoveEvent=event;
93002
-
93003
- var e={clientX:x, clientY:y};
93004
- this.MoveOnPoint={X:x, Y:y};
93005
- this.OnMouseMove(x,y,e);
93006
- this.LastMouseStatus.MoveOnPoint=null;
93007
- if (titleChart) titleChart.OnMouseMoveEvent=null;
93008
- }
92987
+ var startIndex=kData.DataOffset;
92988
+ var kItem=kData.Data[startIndex];
92989
+ this.ChartOperator_Temp_SetChartCorssCursor(0, kItem);
92990
+ return true;
92991
+
92992
+ }
92993
+ else if (id==JSCHART_OPERATOR_ID.OP_CORSSCURSOR_PAGE_END) //当前屏最后1条数据
92994
+ {
92995
+ var kData=this.GetKData();
92996
+ if (!kData || !IFrameSplitOperator.IsNonEmptyArray(kData.Data)) return false; //数据还没有到达
93009
92997
 
93010
- return;
93011
- }
93012
- }
92998
+ var index=kData.Data.length-1;
92999
+ var kItem=kData.Data[index];
93000
+ this.ChartOperator_Temp_SetChartCorssCursor(index, kItem);
93001
+ return true;
93002
+ }
93013
93003
 
93014
- var x=frame.GetXFromIndex(findIndex);
93015
- var y=frame.GetYFromData(value);
93004
+ }
93016
93005
 
93017
- //保存最后一次鼠标移动信息
93018
- var MoveStatus={ X:x, Y:y, IsInClient: this.IsMouseOnClient(x,y) };
93019
- this.LastMouseStatus.OnMouseMove=MoveStatus;
93020
- this.LastMouseStatus.MoveOnPoint={X:x, Y:y}; //鼠标移动的位置
93006
+ //index=-1 隐藏十字光标
93007
+ this.ChartOperator_Temp_SetChartCorssCursor=function(index, kItem)
93008
+ {
93009
+ if (!this.Frame || !this.Frame.SubFrame[0] || !this.Frame.SubFrame[0].Frame) return false;
93010
+ var frame=this.Frame.SubFrame[0].Frame;
93021
93011
 
93022
- var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_MOUSE_MOVE);
93023
- var titleChart=this.TitlePaint[0];
93024
- if (event && titleChart) titleChart.OnMouseMoveEvent=event;
93025
-
93026
- this.MoveOnPoint={X:x, Y:y};
93027
- this.OnMouseMove(x,y,{});
93028
-
93029
- this.LastMouseStatus.MoveOnPoint=null;
93030
- if (titleChart) titleChart.OnMouseMoveEvent=null;
93031
-
93032
- }
93012
+ var x=-1,y=-1;
93013
+ if (IFrameSplitOperator.IsNumber(index) && index>=0) x=frame.GetXFromIndex(index);
93014
+ if (kItem && IFrameSplitOperator.IsNumber(kItem.Close)) y=frame.GetYFromData(kItem.Close);
93015
+
93016
+ //保存最后一次鼠标移动信息
93017
+ var MoveStatus={ X:x, Y:y, IsInClient: this.IsMouseOnClient(x,y) };
93018
+ this.LastMouseStatus.OnMouseMove=MoveStatus;
93019
+ this.LastMouseStatus.MoveOnPoint={X:x, Y:y}; //鼠标移动的位置
93020
+
93021
+ var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_MOUSE_MOVE);
93022
+ var titleChart=this.TitlePaint[0];
93023
+ if (event && titleChart) titleChart.OnMouseMoveEvent=event;
93024
+
93025
+ this.MoveOnPoint={X:x, Y:y};
93026
+ this.OnMouseMove(x,y,{});
93027
+
93028
+ this.LastMouseStatus.MoveOnPoint=null;
93029
+ if (titleChart) titleChart.OnMouseMoveEvent=null;
93030
+
93031
+ return true;
93033
93032
  }
93034
93033
 
93035
93034
  this.SendPageChangedEvent=function()
@@ -94385,11 +94384,15 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
94385
94384
  this.CurrentChartDrawPicture=null;
94386
94385
  }
94387
94386
  break;
94388
- case 38:
94389
- case 40:
94387
+ case 38: //up
94388
+ case 40: //down
94390
94389
  if ((e.ctrlKey||e.shiftKey) && this.OnCustomKeyDown)
94391
94390
  this.OnCustomKeyDown(keyID, e)
94392
94391
  break;
94392
+ case 35: //END
94393
+ case 36: //HOME
94394
+ if (this.OnCustomKeyDown) this.OnCustomKeyDown(keyID, e);
94395
+ break;
94393
94396
  default:
94394
94397
  return;
94395
94398
  }
@@ -94413,6 +94416,16 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
94413
94416
  this.MoveCorssCursorDown(this.ShiftUpDownStepPixel);
94414
94417
  return true;
94415
94418
  }
94419
+ else if (keyID==36) //HOME 第1条
94420
+ {
94421
+ var option={ ID:JSCHART_OPERATOR_ID.OP_CORSSCURSOR_PAGE_START };
94422
+ return this.ChartOperator(option);
94423
+ }
94424
+ else if (keyID==35) //END 最后一条
94425
+ {
94426
+ var option={ ID:JSCHART_OPERATOR_ID.OP_CORSSCURSOR_PAGE_END };
94427
+ return this.ChartOperator(option);
94428
+ }
94416
94429
  else
94417
94430
  {
94418
94431
  return false;
@@ -94684,11 +94697,28 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
94684
94697
 
94685
94698
  if (MARKET_SUFFIX_NAME.IsSHSZStockA(this.Symbol))
94686
94699
  {
94687
- var item={ Name:"集合竞价",Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_BEFORE_DATA_ID, Args:[!this.IsShowBeforeData] }, Checked:this.IsShowBeforeData };
94700
+ var item=
94701
+ {
94702
+ Name:"集合竞价",
94703
+ SubMenu:
94704
+ [
94705
+
94706
+ ]
94707
+ };
94708
+
94709
+ var bShow=(this.IsShowAfterData && this.IsShowBeforeData);
94710
+ var subItem={ Name:"盘后盘前(单日)",Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID, Args:[{ Left:!bShow, Right:!bShow } ] }, Checked:bShow };
94711
+ item.SubMenu.push(subItem);
94712
+
94713
+ var subItem={ Name:"盘前(单日)",Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID, Args:[{ Left:!this.IsShowBeforeData} ] }, Checked:this.IsShowBeforeData };
94714
+ item.SubMenu.push(subItem);
94715
+
94716
+ var subItem={ Name:"盘后(单日)",Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID, Args:[{ Right:!this.IsShowBeforeData} ] }, Checked:this.IsShowAfterData };
94717
+ item.SubMenu.push(subItem);
94718
+
94688
94719
  aryMenu.splice(4,0,item);
94689
94720
  }
94690
94721
 
94691
-
94692
94722
  for(var i=0;i<aryMenu.length;++i)
94693
94723
  {
94694
94724
  var item=aryMenu[i];
@@ -145276,8 +145306,8 @@ function ChartReport()
145276
145306
  drawInfo.Tooltip=
145277
145307
  {
145278
145308
  Type:4,
145279
- Data:{ AryText:item.Tooltip.AryText }
145280
- }
145309
+ Data:{ AryText:item.Tooltip.AryText , Callback:item.Tooltip.Callback },
145310
+ };
145281
145311
  }
145282
145312
  }
145283
145313
  else if (IFrameSplitOperator.IsString(item))
@@ -146905,7 +146935,7 @@ function ChartReport()
146905
146935
 
146906
146936
  if (x>=rt.Left && x<=rt.Right && y>=rt.Top && y<=rt.Bottom)
146907
146937
  {
146908
- return { Rect:item.Rect, Stock:item.Stock, Column:item.Column, Index:item.Index, Type:item.Type, Data:item.Data };
146938
+ return { Rect:item.Rect, Stock:item.Stock, Column:item.Column, Index:item.Index, Type:item.Type, Data:item.Data, Callback:item.Callback };
146909
146939
  }
146910
146940
  }
146911
146941
 
@@ -151164,7 +151194,7 @@ function ScrollBarBGChart()
151164
151194
 
151165
151195
 
151166
151196
 
151167
- var HQCHART_VERSION="1.1.14925";
151197
+ var HQCHART_VERSION="1.1.14932";
151168
151198
 
151169
151199
  function PrintHQChartVersion()
151170
151200
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.14925";
8
+ var HQCHART_VERSION="1.1.14932";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -7124,7 +7124,7 @@ var JSCHART_MENU_ID=
7124
7124
 
7125
7125
  CMD_XXXXXX_NONE_ID:22, //未用!!!!
7126
7126
  CMD_CHANGE_DAY_COUNT_ID:23, //切换天数
7127
- CMD_SHOW_BEFORE_DATA_ID:24, //显示|隐藏集合竞价
7127
+ CMD_SHOW_CALLCATION_ID:24, //显示|隐藏集合竞价 { Left:, Right: } //单日
7128
7128
 
7129
7129
  CMD_SELECTED_ZOOM_ID:25, //选中放大
7130
7130
  CMD_SELECTED_SUMMARY_ID:26, //区间统计
@@ -15331,9 +15331,15 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
15331
15331
  if (this.ChangeDayCount && param!=null)
15332
15332
  this.ChangeDayCount(param);
15333
15333
  break;
15334
- case JSCHART_MENU_ID.CMD_SHOW_BEFORE_DATA_ID:
15335
- if (this.ShowCallAuctionData && IFrameSplitOperator.IsBool(srcParam))
15336
- this.ShowCallAuctionData({ Left:srcParam, MultiDay:{ Left:srcParam }});
15334
+ case JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID:
15335
+ if (this.ShowCallAuctionData && srcParam)
15336
+ {
15337
+ var left=null,right=null;
15338
+ if (IFrameSplitOperator.IsBool(srcParam.Left)) left=srcParam.Left;
15339
+ if (IFrameSplitOperator.IsBool(srcParam.Right)) right=srcParam.Right;
15340
+ this.ShowCallAuctionData({ Left:left, Right:right });
15341
+ }
15342
+
15337
15343
  break;
15338
15344
  case JSCHART_MENU_ID.CMD_CHANGE_BASELINE_ID:
15339
15345
  if (this.ChangeBaselineType && IFrameSplitOperator.IsNumber(param))
@@ -59577,7 +59583,7 @@ function FrameSplitY()
59577
59583
  else
59578
59584
  {
59579
59585
  var floatPrecision=this.GetFloatPrecision(absValue,this.FloatPrecision); //数据比小数位数还小, 调整小数位数
59580
- text = IFrameSplitOperator.FormatValueString(value, floatPrecision,this.LanguageID);
59586
+ text = IFrameSplitOperator.FormatValueStringV2(value, floatPrecision,2, this.LanguageID);
59581
59587
  }
59582
59588
  }
59583
59589
 
@@ -92996,84 +93002,77 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
92996
93002
  this.SendPageChangedEvent();
92997
93003
  return true;
92998
93004
  }
92999
- else if (id==JSCHART_OPERATOR_ID.OP_CORSSCURSOR_GOTO) //{ Type:1 如果不存在 就隐藏十字光标}
93005
+ else if (id==JSCHART_OPERATOR_ID.OP_CORSSCURSOR_GOTO) //{ Type:1 如果不存在 就隐藏十字光标, Time:, Date: }
93000
93006
  {
93001
- if (!this.SourceData) return false;
93002
- if (!this.Frame || !this.Frame.SubFrame[0] || !this.Frame.SubFrame[0].Frame) return false;
93003
- var frame=this.Frame.SubFrame[0].Frame;
93004
- if (!IFrameSplitOperator.IsNonEmptyArray(this.SourceData.Data)) return false;
93005
- if (IFrameSplitOperator.IsNumber(obj.Time) && IFrameSplitOperator.IsNumber(obj.Date))
93007
+ var kData=this.GetKData();
93008
+ if (!kData || !IFrameSplitOperator.IsNonEmptyArray(kData.Data)) return false; //数据还没有到达
93009
+ if (!IFrameSplitOperator.IsNumber(obj.Time) || !IFrameSplitOperator.IsNumber(obj.Date)) return false;
93010
+ var findIndex=-1, findItem=null;
93011
+ for(var i=0;i<this.SourceData.Data.length;++i)
93006
93012
  {
93007
- var findIndex=-1, value=null, lastPrice=null;
93008
- for(var i=0;i<this.SourceData.Data.length;++i)
93013
+ var item=this.SourceData.Data[i];
93014
+ if (IFrameSplitOperator.IsNumber(item.Close)) lastPrice=item.Close;
93015
+ if (item.Time==obj.Time && item.Date==obj.Date)
93009
93016
  {
93010
- var item=this.SourceData.Data[i];
93011
- if (IFrameSplitOperator.IsNumber(item.Close)) lastPrice=item.Close;
93012
- if (item.Time==obj.Time && item.Date==obj.Date)
93013
- {
93014
- findIndex=i;
93015
- value=item.Close;
93016
- break;
93017
- }
93017
+ findIndex=i;
93018
+ findItem=item;
93019
+ break;
93018
93020
  }
93021
+ }
93019
93022
 
93020
- if (findIndex<0 && this.DayCount==1 && !(IFrameSplitOperator.IsNumber(obj.Type) && obj.Type>0))
93021
- {
93022
- var timeData = g_MinuteTimeStringData.GetTimeData(this.Symbol);
93023
- for(var i=0;i<timeData.length;++i)
93024
- {
93025
- if (timeData[i]==obj.Time)
93026
- {
93027
- findIndex=i;
93028
- value=lastPrice;
93029
- break;
93030
- }
93031
- }
93032
- }
93023
+ this.ChartOperator_Temp_SetChartCorssCursor(findIndex, findItem);
93024
+ return true;
93025
+ }
93026
+ else if (id==JSCHART_OPERATOR_ID.OP_CORSSCURSOR_PAGE_START) //当前屏第1条数据
93027
+ {
93028
+ var kData=this.GetKData();
93029
+ if (!kData || !IFrameSplitOperator.IsNonEmptyArray(kData.Data)) return false; //数据还没有到达
93033
93030
 
93034
- if (findIndex<0)
93035
- {
93036
- if (obj.Type==1) // 如果不存在 就隐藏十字光标
93037
- {
93038
- var x=-1,y=-1;
93039
- var MoveStatus={ X:x, Y:y, IsInClient: this.IsMouseOnClient(x,y) };
93040
- this.LastMouseStatus.OnMouseMove=MoveStatus;
93041
- this.LastMouseStatus.MoveOnPoint={X:x, Y:y}; //鼠标移动的位置
93042
-
93043
- var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_MOUSE_MOVE);
93044
- var titleChart=this.TitlePaint[0];
93045
- if (event && titleChart) titleChart.OnMouseMoveEvent=event;
93046
-
93047
- var e={clientX:x, clientY:y};
93048
- this.MoveOnPoint={X:x, Y:y};
93049
- this.OnMouseMove(x,y,e);
93050
- this.LastMouseStatus.MoveOnPoint=null;
93051
- if (titleChart) titleChart.OnMouseMoveEvent=null;
93052
- }
93031
+ var startIndex=kData.DataOffset;
93032
+ var kItem=kData.Data[startIndex];
93033
+ this.ChartOperator_Temp_SetChartCorssCursor(0, kItem);
93034
+ return true;
93035
+
93036
+ }
93037
+ else if (id==JSCHART_OPERATOR_ID.OP_CORSSCURSOR_PAGE_END) //当前屏最后1条数据
93038
+ {
93039
+ var kData=this.GetKData();
93040
+ if (!kData || !IFrameSplitOperator.IsNonEmptyArray(kData.Data)) return false; //数据还没有到达
93053
93041
 
93054
- return;
93055
- }
93056
- }
93042
+ var index=kData.Data.length-1;
93043
+ var kItem=kData.Data[index];
93044
+ this.ChartOperator_Temp_SetChartCorssCursor(index, kItem);
93045
+ return true;
93046
+ }
93047
+
93048
+ }
93049
+
93050
+ //index=-1 隐藏十字光标
93051
+ this.ChartOperator_Temp_SetChartCorssCursor=function(index, kItem)
93052
+ {
93053
+ if (!this.Frame || !this.Frame.SubFrame[0] || !this.Frame.SubFrame[0].Frame) return false;
93054
+ var frame=this.Frame.SubFrame[0].Frame;
93057
93055
 
93058
- var x=frame.GetXFromIndex(findIndex);
93059
- var y=frame.GetYFromData(value);
93056
+ var x=-1,y=-1;
93057
+ if (IFrameSplitOperator.IsNumber(index) && index>=0) x=frame.GetXFromIndex(index);
93058
+ if (kItem && IFrameSplitOperator.IsNumber(kItem.Close)) y=frame.GetYFromData(kItem.Close);
93060
93059
 
93061
- //保存最后一次鼠标移动信息
93062
- var MoveStatus={ X:x, Y:y, IsInClient: this.IsMouseOnClient(x,y) };
93063
- this.LastMouseStatus.OnMouseMove=MoveStatus;
93064
- this.LastMouseStatus.MoveOnPoint={X:x, Y:y}; //鼠标移动的位置
93060
+ //保存最后一次鼠标移动信息
93061
+ var MoveStatus={ X:x, Y:y, IsInClient: this.IsMouseOnClient(x,y) };
93062
+ this.LastMouseStatus.OnMouseMove=MoveStatus;
93063
+ this.LastMouseStatus.MoveOnPoint={X:x, Y:y}; //鼠标移动的位置
93065
93064
 
93066
- var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_MOUSE_MOVE);
93067
- var titleChart=this.TitlePaint[0];
93068
- if (event && titleChart) titleChart.OnMouseMoveEvent=event;
93069
-
93070
- this.MoveOnPoint={X:x, Y:y};
93071
- this.OnMouseMove(x,y,{});
93072
-
93073
- this.LastMouseStatus.MoveOnPoint=null;
93074
- if (titleChart) titleChart.OnMouseMoveEvent=null;
93075
-
93076
- }
93065
+ var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_MOUSE_MOVE);
93066
+ var titleChart=this.TitlePaint[0];
93067
+ if (event && titleChart) titleChart.OnMouseMoveEvent=event;
93068
+
93069
+ this.MoveOnPoint={X:x, Y:y};
93070
+ this.OnMouseMove(x,y,{});
93071
+
93072
+ this.LastMouseStatus.MoveOnPoint=null;
93073
+ if (titleChart) titleChart.OnMouseMoveEvent=null;
93074
+
93075
+ return true;
93077
93076
  }
93078
93077
 
93079
93078
  this.SendPageChangedEvent=function()
@@ -94429,11 +94428,15 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
94429
94428
  this.CurrentChartDrawPicture=null;
94430
94429
  }
94431
94430
  break;
94432
- case 38:
94433
- case 40:
94431
+ case 38: //up
94432
+ case 40: //down
94434
94433
  if ((e.ctrlKey||e.shiftKey) && this.OnCustomKeyDown)
94435
94434
  this.OnCustomKeyDown(keyID, e)
94436
94435
  break;
94436
+ case 35: //END
94437
+ case 36: //HOME
94438
+ if (this.OnCustomKeyDown) this.OnCustomKeyDown(keyID, e);
94439
+ break;
94437
94440
  default:
94438
94441
  return;
94439
94442
  }
@@ -94457,6 +94460,16 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
94457
94460
  this.MoveCorssCursorDown(this.ShiftUpDownStepPixel);
94458
94461
  return true;
94459
94462
  }
94463
+ else if (keyID==36) //HOME 第1条
94464
+ {
94465
+ var option={ ID:JSCHART_OPERATOR_ID.OP_CORSSCURSOR_PAGE_START };
94466
+ return this.ChartOperator(option);
94467
+ }
94468
+ else if (keyID==35) //END 最后一条
94469
+ {
94470
+ var option={ ID:JSCHART_OPERATOR_ID.OP_CORSSCURSOR_PAGE_END };
94471
+ return this.ChartOperator(option);
94472
+ }
94460
94473
  else
94461
94474
  {
94462
94475
  return false;
@@ -94728,11 +94741,28 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
94728
94741
 
94729
94742
  if (MARKET_SUFFIX_NAME.IsSHSZStockA(this.Symbol))
94730
94743
  {
94731
- var item={ Name:"集合竞价",Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_BEFORE_DATA_ID, Args:[!this.IsShowBeforeData] }, Checked:this.IsShowBeforeData };
94744
+ var item=
94745
+ {
94746
+ Name:"集合竞价",
94747
+ SubMenu:
94748
+ [
94749
+
94750
+ ]
94751
+ };
94752
+
94753
+ var bShow=(this.IsShowAfterData && this.IsShowBeforeData);
94754
+ var subItem={ Name:"盘后盘前(单日)",Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID, Args:[{ Left:!bShow, Right:!bShow } ] }, Checked:bShow };
94755
+ item.SubMenu.push(subItem);
94756
+
94757
+ var subItem={ Name:"盘前(单日)",Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID, Args:[{ Left:!this.IsShowBeforeData} ] }, Checked:this.IsShowBeforeData };
94758
+ item.SubMenu.push(subItem);
94759
+
94760
+ var subItem={ Name:"盘后(单日)",Data:{ ID: JSCHART_MENU_ID.CMD_SHOW_CALLCATION_ID, Args:[{ Right:!this.IsShowBeforeData} ] }, Checked:this.IsShowAfterData };
94761
+ item.SubMenu.push(subItem);
94762
+
94732
94763
  aryMenu.splice(4,0,item);
94733
94764
  }
94734
94765
 
94735
-
94736
94766
  for(var i=0;i<aryMenu.length;++i)
94737
94767
  {
94738
94768
  var item=aryMenu[i];
@@ -145320,8 +145350,8 @@ function ChartReport()
145320
145350
  drawInfo.Tooltip=
145321
145351
  {
145322
145352
  Type:4,
145323
- Data:{ AryText:item.Tooltip.AryText }
145324
- }
145353
+ Data:{ AryText:item.Tooltip.AryText , Callback:item.Tooltip.Callback },
145354
+ };
145325
145355
  }
145326
145356
  }
145327
145357
  else if (IFrameSplitOperator.IsString(item))
@@ -146949,7 +146979,7 @@ function ChartReport()
146949
146979
 
146950
146980
  if (x>=rt.Left && x<=rt.Right && y>=rt.Top && y<=rt.Bottom)
146951
146981
  {
146952
- return { Rect:item.Rect, Stock:item.Stock, Column:item.Column, Index:item.Index, Type:item.Type, Data:item.Data };
146982
+ return { Rect:item.Rect, Stock:item.Stock, Column:item.Column, Index:item.Index, Type:item.Type, Data:item.Data, Callback:item.Callback };
146953
146983
  }
146954
146984
  }
146955
146985
 
@@ -159557,8 +159587,20 @@ function JSFloatTooltip()
159557
159587
  if (!tooltipData.Data || !IFrameSplitOperator.IsNonEmptyArray(tooltipData.Data.AryText)) return;
159558
159588
 
159559
159589
  this.AryText=tooltipData.Data.AryText;
159560
- this.UpdateTableDOM();
159561
159590
 
159591
+ if (tooltipData.Data.Callback)
159592
+ {
159593
+ var callback=tooltipData.Data.Callback;
159594
+ var sendData={ AryText:null, data, PreventDefault:false };
159595
+ callback(sendData, this);
159596
+ if (sendData.PreventDefault)
159597
+ {
159598
+ if (!IFrameSplitOperator.IsNonEmptyArray(sendData.AryText)) return;
159599
+ this.AryText=sendData.AryText;
159600
+ }
159601
+ }
159602
+
159603
+ this.UpdateTableDOM();
159562
159604
  this.ShowTooltip(data);
159563
159605
  }
159564
159606
 
@@ -162513,7 +162555,7 @@ function HQChartScriptWorker()
162513
162555
 
162514
162556
 
162515
162557
 
162516
- var HQCHART_VERSION="1.1.14925";
162558
+ var HQCHART_VERSION="1.1.14932";
162517
162559
 
162518
162560
  function PrintHQChartVersion()
162519
162561
  {