hqchart 1.1.14958 → 1.1.14965

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.
@@ -1190,7 +1190,7 @@ if(option.KLine.MaxRequestDataCount>0)chart.MaxRequestDataCount=option.KLine.Max
1190
1190
  if(option.KLine.RightSpaceCount>0)chart.RightSpaceCount=option.KLine.RightSpaceCount;if(option.KLine.ZoomType>0)chart.ZoomType=option.KLine.ZoomType;if(option.KLine.DataWidth>=1)chart.KLineSize={DataWidth:option.KLine.DataWidth};if(IFrameSplitOperator.IsNumber(option.KLine.RightFormula))chart.RightFormula=option.KLine.RightFormula;}//自定义显示位置
1191
1191
  if(option.CustomShow&&IFrameSplitOperator.IsPlusNumber(option.CustomShow.Date)){var item=option.CustomShow;chart.CustomShow={Date:item.Date};if(IFrameSplitOperator.IsNumber(item.Time))chart.CustomShow.Time=item.Time;if(IFrameSplitOperator.IsPlusNumber(item.PageSize))chart.CustomShow.PageSize=item.PageSize;}if(option.EnableFlowCapital){var item=option.EnableFlowCapital;if(item.BIT==true)chart.EnableFlowCapital.BIT=item.BIT;}if(IFrameSplitOperator.IsBool(option.EnableBorderDrag)){chart.EnableBorderDrag=option.EnableBorderDrag;}if(option.Page){if(option.Page.Day&&option.Page.Day.Enable==true)chart.Page.Day.Enable=true;if(option.Page.Minute&&option.Page.Minute.Enable==true)chart.Page.Minute.Enable=true;}if(option.DragDownload){if(option.DragDownload.Day&&option.DragDownload.Day.Enable==true)chart.DragDownload.Day.Enable=true;if(option.DragDownload.Minute&&option.DragDownload.Minute.Enable==true)chart.DragDownload.Minute.Enable=true;}if(option.ZoomDownload){if(option.ZoomDownload.Day&&IFrameSplitOperator.IsBool(option.ZoomDownload.Day.Enable))chart.ZoomDownload.Day.Enable=option.ZoomDownload.Day.Enable;if(option.ZoomDownload.Minute&&IFrameSplitOperator.IsBool(option.ZoomDownload.Minute.Enable))chart.ZoomDownload.Minute.Enable=option.ZoomDownload.Minute.Enable;}if(option.Language){var value=g_JSChartLocalization.GetLanguageID(option.Language);if(IFrameSplitOperator.IsNumber(value))chart.LanguageID=value;}if(option.SourceDatatLimit)chart.SetSourceDatatLimit(option.SourceDatatLimit);if(option.DrawPicture)//画图工具
1192
1192
  {if(option.DrawPicture.StorageKey&&chart.ChartDrawStorage)chart.ChartDrawStorage.Load(option.DrawPicture.StorageKey);}if(option.DrawTool)//画图工具
1193
- {if(option.DrawTool.StorageKey&&chart.ChartDrawStorage)chart.ChartDrawStorage.Load(option.DrawTool.StorageKey);}if(option.KeyboardMove){var item=option.KeyboardMove;if(IFrameSplitOperator.IsPlusNumber(item.Delay))chart.KeyboardMove.Delay=item.Delay;}if(IFrameSplitOperator.IsNumber(option.StepPixel))chart.StepPixel=option.StepPixel;if(option.ZoomStepPixel>0)chart.ZoomStepPixel=option.ZoomStepPixel;if(option.IsApiPeriod==true)chart.IsApiPeriod=option.IsApiPeriod;//图形选中
1193
+ {if(option.DrawTool.StorageKey&&chart.ChartDrawStorage)chart.ChartDrawStorage.Load(option.DrawTool.StorageKey);}if(option.KeyboardMove){var item=option.KeyboardMove;if(IFrameSplitOperator.IsPlusNumber(item.Delay))chart.KeyboardMove.Delay=item.Delay;if(IFrameSplitOperator.IsPlusNumber(item.PressTime))chart.KeyboardMove.PressTime=item.PressTime;}if(IFrameSplitOperator.IsNumber(option.StepPixel))chart.StepPixel=option.StepPixel;if(option.ZoomStepPixel>0)chart.ZoomStepPixel=option.ZoomStepPixel;if(option.IsApiPeriod==true)chart.IsApiPeriod=option.IsApiPeriod;//图形选中
1194
1194
  if(option.SelectedChart){var item=option.SelectedChart;if(IFrameSplitOperator.IsBool(item.EnableSelected))chart.SelectedChart.EnableSelected=item.EnableSelected;if(IFrameSplitOperator.IsBool(item.EnableMoveOn))chart.SelectedChart.EnableMoveOn=item.EnableMoveOn;}if(option.PressKeyboardConfig)this.SetPressKeyboardConfig(chart,option.PressKeyboardConfig);if(!option.Windows||option.Windows.length<=0)return null;//K线扩展计算方法配置
1195
1195
  if(IFrameSplitOperator.IsNonEmptyArray(option.KLineCalcOption)){for(var i=0;i<option.KLineCalcOption.length;++i){var item=option.KLineCalcOption[i];if(!item.ClassName||!item.Option)continue;chart.SetKLineCalcOption(item.ClassName,item.Option);}}if(option.FastSlide){var item=option.FastSlide;if(IFrameSplitOperator.IsNumber(item.MinDistance))chart.FastSlideConfig.MinDistance=item.MinDistance;if(IFrameSplitOperator.IsNumber(item.MinSpeed))chart.FastSlideConfig.MinSpeed=item.MinSpeed;if(IFrameSplitOperator.IsNumber(item.MaxTime))chart.FastSlideConfig.MaxTime=item.MaxTime;if(IFrameSplitOperator.IsBool(item.Enable))chart.FastSlideConfig.Enable=item.Enable;}if(chart.ClassName=="KLineChartContainer"){if(!option.DragSelectRect){option.DragSelectRect={Enable:true};//默认开启区间选中画布
1196
1196
  }if(option.DragSelectRect){var zindex=10;var item=option.DragSelectRect;if(IFrameSplitOperator.IsNumber(item.ZIndex))zindex=item.ZIndex;if(item.Enable)this.CreateExtraCanvasElement(JSChart.RectDragCanvasKey,{ZIndex:zindex});//创建独立的区间选择画布
@@ -1772,7 +1772,7 @@ this.PreventRightMenu={Timer:null,Enable:false,Delay:2000};//阻止右键菜单
1772
1772
  //SecondKeyID 1=shiftKey 2=ctrlKey 3=altKey
1773
1773
  this.AryHotKey=[];//热键 { KeyID:87, SecondKeyID:1, CMD:JSCHART_MENU_ID.CMD_FULLSCREEN_SUMMARY_ID, Args:null, Description:"Alt+W 全屏区间统计" },
1774
1774
  this.FastSlideConfig={MinDistance:500,MinSpeed:3,MaxTime:250,Enable:false};//快速滑动配置 MinDistance=最小的距离 MinSpeed=最小速度 MaxTime=最大间隔时间(ms)
1775
- this.KeyboardMove={Timer:null,Delay:100,Enable:false,Event:null};//键盘左右移动
1775
+ this.KeyboardMove={Timer:null,Delay:100,PressTime:500,Enable:false,Event:null};//键盘左右移动 PressTime=长按时间
1776
1776
  this.MapEventListenerCache=new _map2.default();//addEventListener 监听事件 key=type:"keydown|keyup ....", value:{ Callback:, Option: }
1777
1777
  this.AddEventListener=function(eventTarget,type,listener,option){if(!eventTarget||!type||!listener)return false;var callback=listener.bind(this);var item={Callback:callback,Option:option,Type:type,Element:eventTarget};eventTarget.addEventListener(type,callback,option);this.MapEventListenerCache.set(item.Type,item);return true;};this.RemoveEventListener=function(eventTarget,type){if(!eventTarget||!type)return false;if(!this.MapEventListenerCache.has(type))return false;var item=this.MapEventListenerCache.get(type);if(!item.Element||!item.Callback)return false;this.MapEventListenerCache.delete(item.Type);item.Element.removeEventListener(item.Type,item.Callback,item.Option);};//option={ KeyDown:, Wheel }
1778
1778
  this.AddDefaultEventListener=function(option){var _this4=this;var bRegisterKeydown=true;var bRegisterWheel=true;if(option){if(IFrameSplitOperator.IsBool(option.KeyDown))bRegisterKeydown=option.KeyDown;if(IFrameSplitOperator.IsBool(option.Wheel))bRegisterWheel=option.Wheel;}if(bRegisterKeydown){this.AddEventListener(this.UIElement,"keydown",function(e){_this4.OnKeyDown(e);},true);this.AddEventListener(this.UIElement,"keyup",function(e){_this4.OnKeyUp(e);},true);}if(bRegisterWheel){this.AddEventListener(this.UIElement,"wheel",function(e){_this4.OnWheel(e);},true);}JSConsole.Chart.Log('[JSChartContainer::AddDefaultEventListener] [keydown,keyup]='+bRegisterKeydown+', [wheel]='+bRegisterWheel);};this.RemoveAllEventListener=function(){var _iteratorNormalCompletion2=true;var _didIteratorError2=false;var _iteratorError2=undefined;try{for(var _iterator2=(0,_getIterator3.default)(this.MapEventListenerCache),_step2;!(_iteratorNormalCompletion2=(_step2=_iterator2.next()).done);_iteratorNormalCompletion2=true){var mapItem=_step2.value;var item=mapItem[1];if(!item.Element||!item.Callback)continue;item.Element.removeEventListener(item.Type,item.Callback,item.Option);}}catch(err){_didIteratorError2=true;_iteratorError2=err;}finally{try{if(!_iteratorNormalCompletion2&&_iterator2.return){_iterator2.return();}}finally{if(_didIteratorError2){throw _iteratorError2;}}}this.MapEventListenerCache.clear();};this.ClearGlobalOption=function(){if(!this.GlobalOption)return;this.GlobalOption.LatestPoint=null;this.GlobalOption.TradeStatus=null;};this.RestoreFocus=function(delay){var _this5=this;var value=1000;if(IFrameSplitOperator.IsNumber(delay))value=delay;this.ClearRestoreFocusTimer();this.RestoreFocusTimer=setTimeout(function(){_this5.SetFocus();},value);};this.ClearRestoreFocusTimer=function(){if(this.RestoreFocusTimer){clearTimeout(this.RestoreFocusTimer);this.RestoreFocusTimer=null;}};this.GetVolUnit=function()//成交量单位
@@ -2130,7 +2130,7 @@ case 35://END
2130
2130
  case 36://HOME
2131
2131
  if(this.OnCustomKeyDown)this.OnCustomKeyDown(keyID,e);break;default:return;}if(draw)this.DrawDynamicInfo();if(keyID==37||keyID==39)this.StartKeyboardMoveTimer(e);//不让滚动条滚动
2132
2132
  if(e.preventDefault)e.preventDefault();else e.returnValue=false;};this.ClearKeyboardMoveTimer=function(){if(!this.KeyboardMove)return;this.KeyboardMove.Event=null;if(this.KeyboardMove.Timer){clearTimeout(this.KeyboardMove.Timer);this.KeyboardMove.Timer=null;JSConsole.Chart.Log('[JSChartContainer::ClearKeyboardMoveTimer] Stop');}this.KeyboardMove.Enable=false;};this.StartKeyboardMoveTimer=function(e){if(!this.KeyboardMove)return;if(this.KeyboardMove.Enable)return;//已启动
2133
- this.KeyboardMove.Event=e;this.KeyboardMove.Enable=true;JSConsole.Chart.Log('[JSChartContainer::StartKeyboardMoveTimer] Start');this.AutoKeyboardMove();};this.AutoKeyboardMove=function(){var _this15=this;if(!this.KeyboardMove)return false;if(!this.KeyboardMove.Enable)return false;if(!this.KeyboardMove.Event)return false;this.KeyboardMove.Timer=setTimeout(function(){_this15.OnKeyboardMoveTimerProc();},this.KeyboardMove.Delay);};this.OnKeyboardMoveTimerProc=function(){if(!this.KeyboardMove)return false;if(!this.KeyboardMove.Enable)return false;if(!this.KeyboardMove.Event)return false;var e=this.KeyboardMove.Event;var keyID=e.keyCode?e.keyCode:e.which;var bStop=false;switch(keyID){case 37://left
2133
+ this.KeyboardMove.Event=e;this.KeyboardMove.Enable=true;JSConsole.Chart.Log('[JSChartContainer::StartKeyboardMoveTimer] Start');this.AutoKeyboardMove({Delay:this.KeyboardMove.PressTime});};this.AutoKeyboardMove=function(option){var _this15=this;if(!this.KeyboardMove)return false;if(!this.KeyboardMove.Enable)return false;if(!this.KeyboardMove.Event)return false;var delay=this.KeyboardMove.Delay;if(option&&IFrameSplitOperator.IsNumber(option.Delay))delay=option.Delay;this.KeyboardMove.Timer=setTimeout(function(){_this15.OnKeyboardMoveTimerProc();},delay);};this.OnKeyboardMoveTimerProc=function(){if(!this.KeyboardMove)return false;if(!this.KeyboardMove.Enable)return false;if(!this.KeyboardMove.Event)return false;var e=this.KeyboardMove.Event;var keyID=e.keyCode?e.keyCode:e.which;var bStop=false;switch(keyID){case 37://left
2134
2134
  if((e.ctrlKey||e.shiftKey)&&this.OnCustomKeyDown){if(this.OnCustomKeyDown(keyID,e))break;}//K线 如果超出K线数据了 调整到最后一个数据
2135
2135
  if(this.FixCursorIndexValid&&this.FixCursorIndexValid()){this.UpdatePointByCursorIndex();this.DrawDynamicInfo();this.ShowTooltipByKeyDown();break;}if(this.CursorIndex<=0.99999){if(!this.DataMoveLeft()){//左移数据到头了 触发下载新数据
2136
2136
  if(this.DragDownloadData)this.DragDownloadData();break;}this.UpdataDataoffset();this.UpdatePointByCursorIndex();this.UpdateFrameMaxMin();this.ResetFrameXSplit();this.Draw();this.ShowTooltipByKeyDown();this.OnKLinePageChange("keydown");}else{--this.CursorIndex;this.UpdatePointByCursorIndex();this.DrawDynamicInfo();this.ShowTooltipByKeyDown();}break;case 39://right
@@ -6308,11 +6308,13 @@ this.NameButtonHeight=0;//指标名字按钮高度
6308
6308
  this.UpDownArrowConfig={UpColor:g_JSChartResource.IndexTitle.UpDownArrow.UpColor,DownColor:g_JSChartResource.IndexTitle.UpDownArrow.DownColor,UnchangeColor:g_JSChartResource.IndexTitle.UpDownArrow.UnchangeColor};//K线标题颜色
6309
6309
  this.UpColor=g_JSChartResource.UpTextColor;this.DownColor=g_JSChartResource.DownTextColor;this.UnchangeColor=g_JSChartResource.UnchagneTextColor;this.VolColor=g_JSChartResource.Title.VolColor;this.AmountColor=g_JSChartResource.Title.AmountColor;this.DateTimeColor=g_JSChartResource.Title.DateTimeColor;this.NameColor=g_JSChartResource.Title.NameColor;this.PositionColor=g_JSChartResource.Title.PositionColor;//持仓
6310
6310
  //动态标题
6311
- //动态标题
6311
+ //叠加指标动态标题
6312
6312
  this.DynamicTitle={OutName:null,OutValue:null};this.OverlayDynamicTitle=new _map2.default();//key , value={ OutName, OutValue }
6313
6313
  this.IsShowMainIndexTitle=true;//是否显示主图指标标题
6314
6314
  this.MainTitlePaint=null;//主标题
6315
- //十字线是否显示
6315
+ //option={ DynamicTitle:true/false }
6316
+ this.Clear=function(option){this.Data=[];this.Title=null;if(option){if(option.DynamicTitle===true)this.DynamicTitle={OutName:null,OutValue:null};//主图胴动态标题
6317
+ }};//十字线是否显示
6316
6318
  this.IsShowCorssLine=function(){if(!this.HQChart||!this.HQChart.ChartCorssCursor)return false;return this.HQChart.ChartCorssCursor.IsShowCorss;};this.ReloadResource=function(){this.Font=g_JSChartResource.TitleFont;this.TitleColor=g_JSChartResource.DefaultTextColor;this.SelectedColor=g_JSChartResource.IndexTitleSelectedColor;this.OverlayIndexType.BGColor=g_JSChartResource.OverlayIndexTitleBGColor;this.BGColor=g_JSChartResource.IndexTitleBGColor;this.BGBorderColor=g_JSChartResource.IndexTitleBorderColor;this.BGBorderMoveOnColor=g_JSChartResource.IndexTitleBorderMoveOnColor;this.UpColor=g_JSChartResource.UpTextColor;this.DownColor=g_JSChartResource.DownTextColor;this.UnchangeColor=g_JSChartResource.UnchagneTextColor;this.VolColor=g_JSChartResource.Title.VolColor;this.AmountColor=g_JSChartResource.Title.AmountColor;this.DateTimeColor=g_JSChartResource.Title.DateTimeColor;this.PositionColor=g_JSChartResource.Title.PositionColor;//持仓
6317
6319
  };this.SetDynamicTitleData=function(outName,args,data){if(!data.OutName)data.OutName=new _map2.default();else data.OutName.clear();if(!data.OutValue)data.OutValue=new _map2.default();else data.OutValue.clear();var mapArgs=new _map2.default();for(var i in args){var item=args[i];mapArgs.set('{'+item.Name+'}',item);}for(var i in outName){var item=outName[i];if(item.DynamicName){var aryFond=item.DynamicName.match(/{\w*}/i);if(!aryFond||aryFond.length<=0){data.OutName.set(item.Name,item.DynamicName);}else{var dyName=item.DynamicName;var bFind=true;for(var j=0;j<aryFond.length;++j){var findItem=aryFond[j];if(mapArgs.has(findItem)){var value=mapArgs.get(findItem).Value;dyName=dyName.replace(findItem,value.toString());}else{bFind=false;break;}}if(bFind)data.OutName.set(item.Name,dyName);}}if(item.DynamicValue){data.OutValue.set(item.Name,item.DynamicValue);}}};this.SetDynamicTitle=function(outName,args,overlayID){if(IFrameSplitOperator.IsString(overlayID)){var dynamicTitle=null;if(this.OverlayDynamicTitle.has(overlayID)){dynamicTitle=this.OverlayDynamicTitle.get(overlayID);}else{dynamicTitle={OutName:null,OutValue:null};this.OverlayDynamicTitle.set(overlayID,dynamicTitle);}this.SetDynamicTitleData(outName,args,dynamicTitle);}else{this.SetDynamicTitleData(outName,args,this.DynamicTitle);}};this.GetDynamicOutName=function(key,overlayID){if(IFrameSplitOperator.IsString(overlayID)){if(!this.OverlayDynamicTitle.has(overlayID))return null;var dynamicTitle=this.OverlayDynamicTitle.get(overlayID);var outName=dynamicTitle.OutName;}else{var outName=this.DynamicTitle.OutName;}if(!outName||outName.size<=0)return null;if(!outName.has(key))return null;return outName.get(key);};this.GetDynamicOutValue=function(key,value){var outValue=this.DynamicTitle.OutValue;if(!outValue||outValue.size<=0)return null;if(!outValue.has(key))return null;var strFormat=outValue.get(key);strFormat=strFormat.replace('{Value}',value);return strFormat;};this.IsClickTitle=function(x,y)//是否点击了指标标题
6318
6320
  {if(!this.TitleRect)return false;if(x>this.TitleRect.Left&&x<this.TitleRect.Left+this.TitleRect.Width&&y>this.TitleRect.Top&&y<this.TitleRect.Top+this.TitleRect.Height){return true;}return false;};this.FormatValue=function(value,item){if(item.StringFormat==STRING_FORMAT_TYPE.DEFAULT)return IFrameSplitOperator.FormatValueStringV2(value,item.FloatPrecision,2,this.LanguageID);else if(item.StringFormat==STRING_FORMAT_TYPE.THOUSANDS)return IFrameSplitOperator.FormatValueThousandsString(value,item.FloatPrecision);else if(item.StringFormat==STRING_FORMAT_TYPE.ORIGINAL)return value.toFixed(item.FloatPrecision).toString();else if(item.StringFormat==STRING_FORMAT_TYPE.INTEGER)return IFrameSplitOperator.FromatIntegerString(value,item.FloatPrecision,this.LanguageID);};this.FormatMultiReport=function(data,format){if(!IFrameSplitOperator.IsNonEmptyArray(data))return null;var text="";for(var i=0;i<data.length;++i){var item=data[i];var quarter=item.Quarter;var year=item.Year;var _value2=item.Value;if(text.length>0)text+=',';text+=year.toString();switch(quarter){case 1:text+='一季报 ';break;case 2:text+='半年报 ';break;case 3:text+='三季报 ';break;case 4:text+='年报 ';break;}text+=this.FormatValue(_value2,format);}return text;};this.FormatMultiDataLine=function(value,dataInfo){if(!value)return null;var text="";if(Array.isArray(value)){for(var i=0;i<value.length;++i){var item=value[i];if(item.Type==0)continue;if(!IFrameSplitOperator.IsNumber(item.Value))continue;var strValue=this.FormatValue(item.Value,dataInfo);if(text.length>0)text+=',';text+=strValue;}}else{if(value.Type!=0&&IFrameSplitOperator.IsNumber(value.Value)){text=this.FormatValue(value.Value,dataInfo);}}if(text.length<=0)return null;return text;};//多变量输出
@@ -8180,7 +8182,7 @@ subFrame.IsLocked=false;//解除上锁
8180
8182
  subFrame.YSplitScale=null;//清空固定刻度
8181
8183
  subFrame.YSplitOperator.SplitType=subFrame.YSplitOperator.DefaultSplitType;//还原Y坐标分割模式
8182
8184
  this.ChartPaint=paint;//清空东条标题
8183
- var titleIndex=windowIndex+1;this.TitlePaint[titleIndex].Data=[];this.TitlePaint[titleIndex].Title=null;};//显示隐藏主图K线
8185
+ var titleIndex=windowIndex+1;var chartTitle=this.TitlePaint[titleIndex];if(chartTitle)chartTitle.Clear({DynamicTitle:true});};//显示隐藏主图K线
8184
8186
  this.ShowKLine=function(isShow){if(this.ChartPaint.length<=0||!this.ChartPaint[0])return;this.ChartPaint[0].IsShow=isShow;};this.SetInstructionData=function(type,instructionData){if(this.ChartPaint.length<=0||!this.ChartPaint[0])return;var title=this.TitlePaint[1];if(type==2)//五彩K线
8185
8187
  {this.ChartPaint[0].ColorData=instructionData.Data;if(title)title.ColorIndex={Name:instructionData.Name,Param:instructionData.Param};}else if(type==1)//专家指示
8186
8188
  {this.ChartPaint[0].TradeData={Sell:instructionData.Sell,Buy:instructionData.Buy,Name:instructionData.Name,Param:instructionData.Param};if(title)title.TradeIndex={Name:instructionData.Name,Param:instructionData.Param};}};this.ChangeInstructionIndex=function(indexName,option){var scriptData=new JSIndexScript();var indexInfo=scriptData.Get(indexName);if(!indexInfo)return;if(indexInfo.InstructionType!=1&&indexInfo.InstructionType!=2)return;if(option){if(option.Args)indexInfo.Args=option.Args;}indexInfo.ID=indexName;this.ChangeInstructionScriptIndex(indexInfo);};this.ChangeInstructionScriptIndex=function(indexData){if(indexData.InstructionType==1)//交易系统
@@ -8217,7 +8219,7 @@ this.ChangeIndex=function(windowIndex,indexName,option){if(option&&option.API)//
8217
8219
  return this.ChangeAPIIndex(windowIndex,option);var indexItem=JSIndexMap.Get(indexName);if(!indexItem){//查找系统指标
8218
8220
  var scriptData=new JSIndexScript();var indexInfo=scriptData.Get(indexName);if(!indexInfo)return;if(indexInfo.IsMainIndex){windowIndex=0;//主图指标只能在主图显示
8219
8221
  }else{if(windowIndex==0)windowIndex=1;//幅图指标,不能再主图显示
8220
- }JSIndexScript.ModifyAttribute(indexInfo,option);return this.ChangeScriptIndex(windowIndex,indexInfo,option);}//主图指标
8222
+ }if(this.Frame.SubFrame.length<=windowIndex)return;JSIndexScript.ModifyAttribute(indexInfo,option);return this.ChangeScriptIndex(windowIndex,indexInfo,option);}//主图指标
8221
8223
  if(indexItem.IsMainIndex){if(windowIndex>0)windowIndex=0;//主图指标只能在主图显示
8222
8224
  }else{if(windowIndex==0)windowIndex=1;//幅图指标,不能再主图显示
8223
8225
  }var paint=new Array();//踢出当前窗口的指标画法
@@ -8225,7 +8227,7 @@ for(var i in this.ChartPaint){var item=this.ChartPaint[i];if(i==0||item.ChartFra
8225
8227
  this.Frame.SubFrame[windowIndex].Frame.IsLocked=false;//解除上锁
8226
8228
  this.Frame.SubFrame[windowIndex].Frame.YSplitScale=null;//清空固定刻度
8227
8229
  this.ChartPaint=paint;//清空东条标题
8228
- var titleIndex=windowIndex+1;this.TitlePaint[titleIndex].Data=[];this.TitlePaint[titleIndex].Title=null;this.WindowIndex[windowIndex]=indexItem.Create(option);this.CreateWindowIndex(windowIndex);var bindData=this.ChartPaint[0].Data;this.BindIndexData(windowIndex,bindData);this.UpdataDataoffset();//更新数据偏移
8230
+ var titleIndex=windowIndex+1;var chartTitle=this.TitlePaint[titleIndex];chartTitle.Clear({DynamicTitle:true});this.WindowIndex[windowIndex]=indexItem.Create(option);this.CreateWindowIndex(windowIndex);var bindData=this.ChartPaint[0].Data;this.BindIndexData(windowIndex,bindData);this.UpdataDataoffset();//更新数据偏移
8229
8231
  this.UpdateFrameMaxMin();//调整坐标最大 最小值
8230
8232
  this.Draw();};this.ChangePyScriptIndex=function(windowIndex,indexData){this.DeleteIndexPaint(windowIndex);this.WindowIndex[windowIndex]=new PyScriptIndex(indexData.Name,indexData.Script,indexData.Args,indexData);//脚本执行
8231
8233
  var bindData=this.ChartPaint[0].Data;this.BindIndexData(windowIndex,bindData);//执行脚本
@@ -9050,7 +9052,7 @@ this.ClearOverlaySymbol=function(){for(var i in this.OverlayChartPaint){var item
9050
9052
  this.UpdateFrameMaxMin();this.Draw();};this.ShowBeforeData=function(isShow,option){this.ShowCallAuctionData({Left:isShow},option);};//集合竞价设置 obj={ Left:, Right: }
9051
9053
  this.ShowCallAuctionData=function(obj,option){if(!obj)return;var optionChanged=false;//配置修改
9052
9054
  if(IFrameSplitOperator.IsBool(obj.Left)&&this.IsShowBeforeData!=obj.Left){this.IsShowBeforeData=obj.Left;optionChanged=true;}if(IFrameSplitOperator.IsBool(obj.Right)&&this.IsShowAfterData!=obj.Right){this.IsShowAfterData=obj.Right;optionChanged=true;}if(obj.MultiDay){var item=obj.MultiDay;if(IFrameSplitOperator.IsBool(item.Left)&&this.IsShowMultiDayBeforeData!=item.Left){this.IsShowMultiDayBeforeData=item.Left;optionChanged=true;}if(IFrameSplitOperator.IsBool(item.Right)&&this.IsShowMultiDayAfterData!=item.Right){this.IsShowMultiDayAfterData=item.Right;optionChanged=true;}}if(option){if(option.BeforeOpen){var item=option.BeforeOpen;if(IFrameSplitOperator.IsNumber(item.Left)&&this.ExtendWidth.Left!=item.Left){this.ExtendWidth.Left=item.Left;optionChanged=true;}}if(option.AfterClose){var item=option.AfterClose;if(IFrameSplitOperator.IsNumber(item.Right)&&this.ExtendWidth.Right!=item.Right){this.ExtendWidth.Right=item.Right;optionChanged=true;}}if(option.MultiDay){var item=option.MultiDay;if(IFrameSplitOperator.IsNumber(item.Left)&&this.MultiDayExtendWidth.Left!=item.Left){this.MultiDayExtendWidth.Left=item.Left;optionChanged=true;}if(IFrameSplitOperator.IsNumber(item.Right)&&this.MultiDayExtendWidth.Right!=item.Right){this.MultiDayExtendWidth.Right=item.Right;optionChanged=true;}}}if(optionChanged){this.Frame.ClearYCoordinateMaxMin();this.RequestData();}};//option={ ClearYCoordinateMaxMin:true }
9053
- this.RequestData=function(option){if(option){if(option.ClearYCoordinateMaxMin===true)this.Frame.ClearYCoordinateMaxMin();}if(this.DayCount<=1)this.RequestMinuteData();else this.RequestHistoryMinuteData();};this.ChangeDrawType=function(type){if(this.ChartPaint.length<=0)return;if(type==0)this.ChartPaint[0].IsDrawArea=true;else if(type==1)this.ChartPaint[0].IsDrawArea=false;else return;this.Draw();};this.UpdateDataOffset=function(){this.SourceData.DataOffset=this.DayOffset.DataOffset;for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(!item.Data)continue;item.Data.DataOffset=this.DayOffset.DataOffset;if(item.ClassName=="ChartMinuteVolumBar"||item.ClassName=="ChartMinutePriceLine")item.DayOffset=this.DayOffset;}for(var i=0;i<this.OverlayChartPaint.length;++i){var item=this.OverlayChartPaint[i];if(!item.Data)continue;item.Data.DataOffset=this.DayOffset.DataOffset;}//叠加指标当前显示的数据偏移
9055
+ this.RequestData=function(option){if(option){if(option.ClearYCoordinateMaxMin===true)this.Frame.ClearYCoordinateMaxMin();}this.ResetDataStatus();this.ClearIndexPaint();this.ClearIndexRunCount();this.ClearStockCache();if(this.DayCount<=1)this.RequestMinuteData();else this.RequestHistoryMinuteData();};this.ChangeDrawType=function(type){if(this.ChartPaint.length<=0)return;if(type==0)this.ChartPaint[0].IsDrawArea=true;else if(type==1)this.ChartPaint[0].IsDrawArea=false;else return;this.Draw();};this.UpdateDataOffset=function(){this.SourceData.DataOffset=this.DayOffset.DataOffset;for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(!item.Data)continue;item.Data.DataOffset=this.DayOffset.DataOffset;if(item.ClassName=="ChartMinuteVolumBar"||item.ClassName=="ChartMinutePriceLine")item.DayOffset=this.DayOffset;}for(var i=0;i<this.OverlayChartPaint.length;++i){var item=this.OverlayChartPaint[i];if(!item.Data)continue;item.Data.DataOffset=this.DayOffset.DataOffset;}//叠加指标当前显示的数据偏移
9054
9056
  for(var i=0;i<this.Frame.SubFrame.length;++i){var subFrame=this.Frame.SubFrame[i];for(var j=0;j<subFrame.OverlayIndex.length;++j){var overlayItem=subFrame.OverlayIndex[j];for(var k=0;k<overlayItem.ChartPaint.length;++k){var item=overlayItem.ChartPaint[k];if(!item.Data)continue;item.Data.DataOffset=this.DayOffset.DataOffset;}}}};//请求历史分钟数据
9055
9057
  this.RequestHistoryMinuteData=function(){var self=this;this.IsBeforeData=false;this.IsAfterData=false;this.ChartSplashPaint.SetTitle(this.LoadDataSplashTitle);this.ChartSplashPaint.EnableSplash(true);this.Draw();if(this.NetworkFilter){var callCation={Before:this.IsShowMultiDayBeforeData,After:this.IsShowMultiDayAfterData//集合竞价
9056
9058
  };var bBuySellBar=this.IsShowMinuteBuySellBar();var obj={Name:'MinuteChartContainer::RequestHistoryMinuteData',//类名::函数
@@ -9094,7 +9096,8 @@ this.MultiDayBeforeOpenData[this.MultiDayBeforeOpenData.length-1]=beforeOpenData
9094
9096
  this.MultiDayBeforeOpenData.push(beforeOpenData);}if(afterCloseData&&IFrameSplitOperator.IsNonEmptyArray(this.MultiDayAfterCloseData)){var lastItem=this.MultiDayAfterCloseData[this.MultiDayAfterCloseData.length-1];if(lastItem.Date==afterCloseData.Date)this.MultiDayAfterCloseData[this.MultiDayAfterCloseData.length-1]=afterCloseData;else if(lastItem.Date<afterCloseData.Date)this.MultiDayAfterCloseData.push(afterCloseData);}}this.CaclutateCallCationYRange();};//增量更新
9095
9097
  this.RecvUpdateMinuteData=function(data){var minuteData=MinuteChartContainer.JsonDataToUpdateMinuteData(data);var aryColorData=MinuteChartContainer.JsonDataToMinuteLineColorData(data);var beforeOpenData=MinuteChartContainer.JsonDataToBeforeOpenData(data);var afterCloseData=MinuteChartContainer.JsonDataToAfterCloseData(data);var updateTime=MinuteChartContainer.JsonDataToMinuteLastUpdateTime(data);//数据最后的更新时间
9096
9098
  if(data.LatestPointFlash)//最新数据闪烁
9097
- {var item=data.LatestPointFlash;if(IFrameSplitOperator.IsNumber(item.FlashCount))this.SetLatestPointFlash(item.FlashCount);}if(this.DayCount>1)//多日走势图
9099
+ {var item=data.LatestPointFlash;if(IFrameSplitOperator.IsNumber(item.FlashCount))this.SetLatestPointFlash(item.FlashCount);}if(IFrameSplitOperator.IsNonEmptyArray(data.stock)&&data.stock[0]){this.DataStatus.LatestDate=data.stock[0].date;//保存下最后一天的日期
9100
+ this.RecvBuySellData(data.stock[0].BuySellData);}if(this.DayCount>1)//多日走势图
9098
9101
  {this.UpdateCallCationData(beforeOpenData,afterCloseData,{DataType:1});this.UpdateLineColorData(aryColorData,minuteData.date);this.UpdateLatestMinuteDataV2(minuteData);this.UpdateHistoryMinuteUI(updateTime);this.RecvMinuteDataEvent({FunctionName:"RecvUpdateMinuteData"});this.RequestOverlayMinuteData();//请求叠加数据 (主数据下载完再下载)
9099
9102
  this.BindAllOverlayIndexData(this.SourceData,{SyncExecute:false});this.AutoUpdateEvent(true,"MinuteChartContainer::RecvUpdateMinuteData");this.AutoUpdate();return;}//if (this.IsBeforeData && beforeOpenData) this.BeforeOpenData=beforeOpenData;
9100
9103
  //if (this.IsAfterData && afterCloseData) this.AfterCloseData=afterCloseData;
@@ -9319,7 +9322,7 @@ IsShowCorss:this.ChartCorssCursor.IsShowCorss,//是否显示十字线
9319
9322
  MinItem:minuteItem,Symbol:this.Symbol,Name:this.Name,LastValue:this.ChartCorssCursor.LastValue};this.DialogTooltip.Update(sendData);return true;};this.DrawSelectRectDialog=function(e){if(!this.DialogSelectRect)return;this.UpdateSelectRectDialog(e);};this.UpdateSelectRectDialog=function(e){if(!this.DialogSelectRect)return false;var data=e.data;//区间统计数据
9320
9323
  var x,y;if(data&&IFrameSplitOperator.IsNumber(data.X)&&IFrameSplitOperator.IsNumber(data.Y)){var pixelRatio=GetDevicePixelRatio();var rtClient=this.UIElement.getBoundingClientRect();var rtScroll=GetScrollPosition();x=data.X;y=data.Y;x+=rtClient.left+rtScroll.Left;y+=rtClient.top+rtScroll.Top;}var sendData={Symbol:this.Symbol,Name:this.Name,SelectData:data.SelectData,X:x,Y:y,e:e};this.DialogSelectRect.Update(sendData);};this.GetKData=function(){if(!this.SourceData)return null;var data=this.SourceData;if(!data)return null;return data;};//获取最新的一条盘前数据
9321
9324
  this.GetLatestBeforeOpenItem=function(){var lastItem=null;if(this.DayCount>1){if(!IFrameSplitOperator.IsNonEmptyArray(this.MultiDayBeforeOpenData))return null;var dayItem=this.MultiDayBeforeOpenData[this.MultiDayBeforeOpenData.length-1];if(!dayItem||!IFrameSplitOperator.IsNonEmptyArray(dayItem.Data))return null;var finder=dayItem.Data.findLast(function(element){return element&&IFrameSplitOperator.IsNumber(element.Price);});if(finder)lastItem=finder;}else{if(!this.BeforeOpenData||!IFrameSplitOperator.IsNonEmptyArray(this.BeforeOpenData.Data))return null;var finder=this.BeforeOpenData.Data.findLast(function(element){return element&&IFrameSplitOperator.IsNumber(element.Price);});if(finder)lastItem=finder;}return lastItem;};//获取最新的一条盘后数据
9322
- this.GetLatestAfterCloseItem=function(){if(this.DayCount>1){if(!IFrameSplitOperator.IsNonEmptyArray(this.MultiDayAfterCloseData))return null;var dayItem=this.MultiDayAfterCloseData[this.MultiDayAfterCloseData.length-1];if(!dayItem||!IFrameSplitOperator.IsNonEmptyArray(dayItem.Data))return null;var finder=dayItem.Data.findLast(function(element){return element&&IFrameSplitOperator.IsNumber(element.Price);});if(finder)lastItem=finder;}else{if(!this.AfterCloseData||!IFrameSplitOperator.IsNonEmptyArray(this.AfterCloseData.Data))return null;var finder=this.AfterCloseData.Data.findLast(function(element){return element&&IFrameSplitOperator.IsNumber(element.Price);});if(finder)lastItem=finder;}return lastItem;};this.IsCallAuctionFrame=function(frameID){if(!IFrameSplitOperator.IsNonEmptyArray(this.ChartPaintEx))return false;if(!IFrameSplitOperator.IsNonEmptyArray(this.Frame.SubFrame))return false;if(frameID<0||frameID>=this.Frame.SubFrame.length)return false;var subItem=this.Frame.SubFrame[frameID];if(!subItem||!subItem.Frame)return false;var subFrame=subItem.Frame;for(var i=0;i<this.ChartPaintEx.length;++i){var item=this.ChartPaintEx[i];if(item.ChartFrame&&item.ChartFrame.Guid==subFrame.Guid)return true;}return false;};}//盘前数据
9325
+ this.GetLatestAfterCloseItem=function(){var lastItem=null;if(this.DayCount>1){if(!IFrameSplitOperator.IsNonEmptyArray(this.MultiDayAfterCloseData))return null;var dayItem=this.MultiDayAfterCloseData[this.MultiDayAfterCloseData.length-1];if(!dayItem||!IFrameSplitOperator.IsNonEmptyArray(dayItem.Data))return null;var finder=dayItem.Data.findLast(function(element){return element&&IFrameSplitOperator.IsNumber(element.Price);});if(finder)lastItem=finder;}else{if(!this.AfterCloseData||!IFrameSplitOperator.IsNonEmptyArray(this.AfterCloseData.Data))return null;var finder=this.AfterCloseData.Data.findLast(function(element){return element&&IFrameSplitOperator.IsNumber(element.Price);});if(finder)lastItem=finder;}return lastItem;};this.IsCallAuctionFrame=function(frameID){if(!IFrameSplitOperator.IsNonEmptyArray(this.ChartPaintEx))return false;if(!IFrameSplitOperator.IsNonEmptyArray(this.Frame.SubFrame))return false;if(frameID<0||frameID>=this.Frame.SubFrame.length)return false;var subItem=this.Frame.SubFrame[frameID];if(!subItem||!subItem.Frame)return false;var subFrame=subItem.Frame;for(var i=0;i<this.ChartPaintEx.length;++i){var item=this.ChartPaintEx[i];if(item.ChartFrame&&item.ChartFrame.Guid==subFrame.Guid)return true;}return false;};}//盘前数据
9323
9326
  MinuteChartContainer.JsonDataToBeforeOpenData=function(data){var symbol=data.stock[0].symbol;var upperSymbol=symbol.toUpperCase();var isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);var yClose=data.stock[0].yclose;var preClose=data.stock[0].yclose;//前一个数据价格
9324
9327
  var stockData=data.stock[0];var date=stockData.date;//日期
9325
9328
  var beforeOpenData={Data:[],TotalCount:15,Ver:1.0,Date:date,YClose:stockData.yclose,YClearing:stockData.yclearing};var extendDataIndex=JSCHART_DATA_FIELD_ID.MINUTE_BEFOREOPEN_EXTENDDATA;//扩展数据序号
@@ -13272,7 +13275,7 @@ var _iteratorNormalCompletion23=true;var _didIteratorError23=false;var _iterator
13272
13275
  if(option.EventCallback){for(var i=0;i<option.EventCallback.length;++i){var item=option.EventCallback[i];chart.AddEventCallback(item);}}if(option.EnableResize==true)this.CreateResizeListener();if(option.EnablePopMenuV2===true)chart.InitalPopMenu();if(option.FloatTooltip&&option.FloatTooltip.Enable)chart.InitalFloatTooltip(option.FloatTooltip);//提示信息
13273
13276
  if(option.MinuteChartTooltip&&option.MinuteChartTooltip.Enable)chart.InitalMinuteChartTooltip(option.MinuteChartTooltip);if(option.KLineChartTooltip&&option.KLineChartTooltip.Enable)chart.InitalKLineChartTooltip(option.KLineChartTooltip);if(option.Symbol)chart.Symbol=option.Symbol;if(option.Name)chart.Name=option.Name;var requestOption={Callback:null};if(chart.Symbol)requestOption.Callback=function(){chart.RequestMemberListData();};if(option.LoadStockList===false){chart.ChartSplashPaint.IsEnableSplash=false;chart.Draw();}else{chart.RequestStockListData(requestOption);//下载码表
13274
13277
  }};this.CreateJSReportChartContainer=function(option){var _this56=this;var chart=new JSReportChartContainer(this.CanvasElement);chart.GetExtraCanvas=function(name){return _this56.GetExtraCanvas(name);};chart.Create(option);if(option.NetworkFilter)chart.NetworkFilter=option.NetworkFilter;if(IFrameSplitOperator.IsNonEmptyArray(option.Column))chart.SetColumn(option.Column);if(IFrameSplitOperator.IsNonEmptyArray(option.Tab))chart.SetTab(option.Tab);if(IFrameSplitOperator.IsNumber(option.TabSelected))chart.SetSelectedTab(option.TabSelected);if(IFrameSplitOperator.IsBool(option.EnableDragRow))chart.EnableDragRow=option.EnableDragRow;if(IFrameSplitOperator.IsNumber(option.DragRowType))chart.DragRowType=option.DragRowType;if(IFrameSplitOperator.IsBool(option.EnableDragHeader))chart.EnableDragHeader=option.EnableDragHeader;if(IFrameSplitOperator.IsNumber(option.WheelPageType))chart.WheelPageType=option.WheelPageType;if(IFrameSplitOperator.IsBool(option.PageUpDownCycle))chart.PageUpDownCycle=option.PageUpDownCycle;//数据下载提示信息
13275
- if(IFrameSplitOperator.IsObject(option.SplashTitle)){var item=option.SplashTitle;if(item)chart.SplashTitle.StockList=item.StockList;if(item)chart.SplashTitle.MemberList=item.MemberList;}if(option.VScrollbar)chart.SetVScrollbar(option.VScrollbar);if(option.SortInfo){var item=option.SortInfo;if(IFrameSplitOperator.IsNumber(item.Field))chart.SortInfo.Field=item.Field;if(IFrameSplitOperator.IsNumber(item.Sort))chart.SortInfo.Sort=item.Sort;}if(option.VirtualTable){var item=option.VirtualTable;if(IFrameSplitOperator.IsBool(item.Enable))chart.Data.Virtual.Enable=item.Enable;}var reportChart=chart.GetReportChart();if(reportChart){if(IFrameSplitOperator.IsNumber(option.TextOverflowStyle))reportChart.TextOverflowStyle=option.TextOverflowStyle;if(IFrameSplitOperator.IsNumber(option.MultiSelectModel))reportChart.MultiSelectModel=option.MultiSelectModel;if(IFrameSplitOperator.IsNumber(option.SelectedStyle))reportChart.SelectedStyle=option.SelectedStyle;}this.SetChartBorder(chart,option);//是否自动更新
13278
+ if(IFrameSplitOperator.IsObject(option.SplashTitle)){var item=option.SplashTitle;if(item)chart.SplashTitle.StockList=item.StockList;if(item)chart.SplashTitle.MemberList=item.MemberList;}if(option.VScrollbar)chart.SetVScrollbar(option.VScrollbar);if(option.SortInfo){var item=option.SortInfo;if(item.Search)chart.SortInfo.Field=chart.FindFiledIndex(item.Search);if(IFrameSplitOperator.IsNumber(item.Field))chart.SortInfo.Field=item.Field;if(IFrameSplitOperator.IsNumber(item.Sort))chart.SortInfo.Sort=item.Sort;}if(option.VirtualTable){var item=option.VirtualTable;if(IFrameSplitOperator.IsBool(item.Enable))chart.Data.Virtual.Enable=item.Enable;}var reportChart=chart.GetReportChart();if(reportChart){if(IFrameSplitOperator.IsNumber(option.TextOverflowStyle))reportChart.TextOverflowStyle=option.TextOverflowStyle;if(IFrameSplitOperator.IsNumber(option.MultiSelectModel))reportChart.MultiSelectModel=option.MultiSelectModel;if(IFrameSplitOperator.IsNumber(option.SelectedStyle))reportChart.SelectedStyle=option.SelectedStyle;}this.SetChartBorder(chart,option);//是否自动更新
13276
13279
  if(option.IsAutoUpdate!=null)chart.IsAutoUpdate=option.IsAutoUpdate;if(option.AutoUpdateFrequency>0)chart.AutoUpdateFrequency=option.AutoUpdateFrequency;//数据筛选
13277
13280
  if(option.DataFilter){var item=option.DataFilter;if(IFrameSplitOperator.IsBool(item.Enable))chart.DataFilterConfig.Enable=item.Enable;}//注册事件
13278
13281
  if(option.EventCallback){for(var i=0;i<option.EventCallback.length;++i){var item=option.EventCallback[i];chart.AddEventCallback(item);}}return chart;};this.SetChartBorder=function(chart,option){if(!option.Border)return;var item=option.Border;if(IFrameSplitOperator.IsNumber(option.Border.Left))chart.Frame.ChartBorder.Left=option.Border.Left;if(IFrameSplitOperator.IsNumber(option.Border.Right))chart.Frame.ChartBorder.Right=option.Border.Right;if(IFrameSplitOperator.IsNumber(option.Border.Top))chart.Frame.ChartBorder.Top=option.Border.Top;if(IFrameSplitOperator.IsNumber(option.Border.Bottom))chart.Frame.ChartBorder.Bottom=option.Border.Bottom;var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
@@ -13369,7 +13372,7 @@ this.UIElement.ontouchstart=function(e){_this59.OnTouchStart(e);};this.UIElement
13369
13372
  this.Canvas.lineWidth=pixelTatio;//手机端需要根据分辨率比调整线段宽度
13370
13373
  this.LastMouseStatus.MouseOnStatus=null;if(this.ChartSplashPaint&&this.ChartSplashPaint.IsEnableSplash){this.Frame.Draw({IsEnableSplash:this.ChartSplashPaint.IsEnableSplash});this.ChartSplashPaint.Draw();return;}this.Frame.Draw();this.Frame.DrawLogo();//框架内图形
13371
13374
  for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(item.IsDrawFirst)item.Draw(this.LastMouseStatus);}for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(!item.IsDrawFirst)item.Draw(this.LastMouseStatus);}if(this.GlobalOption.FlashBGCount>0){this.DelayDraw(500);}};this.DelayDraw=function(frequency){var _this60=this;if(typeof this.FlashBGTimer=='number'){clearTimeout(this.FlashBGTimer);this.FlashBGTimer=null;}this.FlashBGTimer=setTimeout(function(){_this60.Draw();},frequency);};this.ResetReportStatus=function(){this.Data.XOffset=0;this.Data.YOffset=0;};this.ResetReportSelectStatus=function(){var chart=this.GetReportChart();if(chart){chart.SelectedRow=-1;chart.SelectedFixedRow=-1;chart.MultiSelectedRow=[];}};this.ClearData=function(){this.SourceData.Data=[];this.Data.Data=[];this.Data.Virtual.Count=0;this.BlockData=new _map2.default();};this.ClearMapStockData=function(){this.MapStockData=new _map2.default();};this.ResetSortStatus=function(){this.SortInfo.Field=-1;this.SortInfo.Sort=0;};this.SetSelectedRow=function(option){var reportChart=this.GetReportChart();if(!reportChart)return false;if(!reportChart.SetSelectedRow(option))return false;this.Draw();};//设置股票列表
13372
- this.SetSymbolList=function(arySymbol,option){this.ClearData();this.ResetReportStatus();this.ResetSortStatus();if(IFrameSplitOperator.IsNonEmptyArray(arySymbol)){for(var i=0;i<arySymbol.length;++i){this.Data.Data.push(arySymbol[i]);}}var chart=this.ChartPaint[0];if(chart)chart.Data=this.Data;this.Draw();};this.ChangeSymbol=function(symbol,option){var _this61=this;this.Symbol=symbol;this.ClearData();this.ResetReportStatus();this.ResetSortStatus();this.ResetReportSelectStatus();if(option){if(IFrameSplitOperator.IsNumber(option.TabSelected)){var chartTab=this.GetTabChart();if(chartTab)chartTab.SelectedTabIndex=option.TabSelected;}if(Array.isArray(option.FixedSymbol)){var chart=this.GetReportChart();if(chart){chart.FixedRowCount=0;this.FixedRowData.Type=1;this.FixedRowData.Symbol=[];var aryData=option.FixedSymbol;for(var i=0;i<aryData.length;++i){var item=aryData[i];this.FixedRowData.Symbol.push(item.Symbol);++chart.FixedRowCount;}this.SetSizeChange(true);}}if(option.SortInfo){var item=option.SortInfo;if(IFrameSplitOperator.IsNumber(item.Field))this.SortInfo.Field=item.Field;if(IFrameSplitOperator.IsNumber(item.Sort))this.SortInfo.Sort=item.Sort;}if(IFrameSplitOperator.IsNonEmptyArray(option.Column))//字段重新设置
13375
+ this.SetSymbolList=function(arySymbol,option){this.ClearData();this.ResetReportStatus();this.ResetSortStatus();if(IFrameSplitOperator.IsNonEmptyArray(arySymbol)){for(var i=0;i<arySymbol.length;++i){this.Data.Data.push(arySymbol[i]);}}var chart=this.ChartPaint[0];if(chart)chart.Data=this.Data;this.Draw();};this.ChangeSymbol=function(symbol,option){var _this61=this;this.Symbol=symbol;this.ClearData();this.ResetReportStatus();this.ResetSortStatus();this.ResetReportSelectStatus();if(option){if(IFrameSplitOperator.IsNumber(option.TabSelected)){var chartTab=this.GetTabChart();if(chartTab)chartTab.SelectedTabIndex=option.TabSelected;}if(Array.isArray(option.FixedSymbol)){var chart=this.GetReportChart();if(chart){chart.FixedRowCount=0;this.FixedRowData.Type=1;this.FixedRowData.Symbol=[];var aryData=option.FixedSymbol;for(var i=0;i<aryData.length;++i){var item=aryData[i];this.FixedRowData.Symbol.push(item.Symbol);++chart.FixedRowCount;}this.SetSizeChange(true);}}if(option.SortInfo){var item=option.SortInfo;if(item.Search)this.SortInfo.Field=this.FindFiledIndex(item.Search);if(IFrameSplitOperator.IsNumber(item.Field))this.SortInfo.Field=item.Field;if(IFrameSplitOperator.IsNumber(item.Sort))this.SortInfo.Sort=item.Sort;}if(IFrameSplitOperator.IsNonEmptyArray(option.Column))//字段重新设置
13373
13376
  {this.SetColumn(option.Column,{Draw:false});}if(IFrameSplitOperator.IsBool(option.IsReloadStockList)&&option.IsReloadStockList){var requestOption={Callback:null};if(this.Symbol)requestOption.Callback=function(){_this61.RequestMemberListData();};this.MapStockData=new _map2.default();this.RequestStatus.IsFinishStockList=false;this.RequestStatus.IsFinishMemberList=false;this.RequestStockListData(requestOption);return;}}this.RequestMemberListData();};//更新数据
13374
13377
  this.UpdateFullData=function(data){var arySymbol=[];if(IFrameSplitOperator.IsNonEmptyArray(data.data)){//0=证券代码 1=股票名称
13375
13378
  for(var i=0;i<data.data.length;++i){var item=data.data[i];var symbol=item[0];var stock=null;if(this.MapStockData.has(symbol)){stock=this.MapStockData.get(symbol);}else{stock=new HQReportItem();stock.OriginalSymbol=symbol;this.MapStockData.set(symbol,stock);}stock.Symbol=this.GetSymbolNoSuffix(symbol);stock.Name=item[1];this.ReadStockJsonData(stock,item);arySymbol.push(symbol);}}//设置显示数据
@@ -13581,7 +13584,8 @@ var oneStep=this.YStepPixel;if(oneStep<=0)oneStep=5;var step=parseInt(moveUpDown
13581
13584
  var oneStep=this.XStepPixel;if(oneStep<=0)oneStep=5;var step=parseInt(moveLeftRight/oneStep);//除以4个像素
13582
13585
  if(step<=0)return false;if(!isLeft)step*=-1;if(this.MoveXOffset(step)){drag.IsXMove=true;this.Draw();}return true;};this.OnTouchMove=function(e){if(this.ChartSplashPaint&&this.ChartSplashPaint.IsEnableSplash==true)return;var reportChart=this.GetReportChart();if(!reportChart)return;var touches=this.GetTouchData(e);if(this.IsPhoneDragging(e)){var drag=this.TouchDrag;this.TouchInfo.Move={X:touches[0].clientX,Y:touches[0].clientY};if(drag){this.PreventTouchEvent(e);var moveAngle=this.GetMoveAngle(drag.LastMove,{X:touches[0].clientX,Y:touches[0].clientY});var moveLeftRight=Math.abs(drag.LastMove.X-touches[0].clientX);var moveUpDown=Math.abs(drag.LastMove.Y-touches[0].clientY);if(drag.IsYMove==true){this.ShowPageInfo(true);if(!this.OnDragYOffset(drag,touches,moveUpDown,e))return;}else if(drag.IsXMove==true){if(!this.OnDragXOffset(drag,touches,moveLeftRight,e))return;}else if(moveUpDown>0&&moveAngle<this.TouchMoveMinAngle){this.ShowPageInfo(true);if(!this.OnDragYOffset(drag,touches,moveUpDown,e))return;}else if(moveLeftRight>0&&moveAngle>=this.TouchMoveMinAngle){if(!this.OnDragXOffset(drag,touches,moveLeftRight,e))return;}else{return;}drag.LastMove.X=touches[0].clientX;drag.LastMove.Y=touches[0].clientY;}}};this.OnTouchEnd=function(e){JSConsole.Chart.Log('[JSReportChartContainer:OnTouchEnd]',e);if(this.ChartSplashPaint&&this.ChartSplashPaint.IsEnableSplash==true)return;this.ShowPageInfo(false);this.OnTouchClick(this.TouchInfo,e);this.IsOnTouch=false;this.TouchDrag=null;this.TouchInfo=null;};this.OnTouchClick=function(touchInfo,e){if(!touchInfo||!touchInfo.Click)return false;if(touchInfo.Move)return false;var clickPoint=touchInfo.InsideClick;var reportChart=this.GetReportChart();if(!reportChart)return false;var clickData=reportChart.OnMouseDown(clickPoint.X,clickPoint.Y,e);if(!clickData)return false;if(clickData.Type==2||clickData.Type==4)//点击行
13583
13586
  {if(clickData.Redraw==true)this.Draw();}else if(clickData.Type==3)//表头
13584
- {this.OnClickHeader(clickData,e);}JSConsole.Chart.Log('[JSReportChartContainer:OnTouchClick] clickData',clickData);};this.GetTabChart=function(){var chart=this.ChartPaint[0];if(!chart)return null;return chart.Tab;};this.GetVScrollbarChart=function(){var chart=this.ChartPaint[0];if(!chart)return null;return chart.VScrollbar;};this.GetReportChart=function(){var chart=this.ChartPaint[0];return chart;};this.GotoNextItem=function(step){if(step==0)return false;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return false;var chart=this.ChartPaint[0];if(!chart)return false;var pageSize=chart.GetPageSize();if(pageSize>this.Data.Data.length)return false;var moveCount=0;if(step>0){for(var i=0;i<step;++i){if(this.Data.YOffset+pageSize>=this.Data.Data.length)break;++this.Data.YOffset;++moveCount;}}else if(step<0){step=Math.abs(step);for(var i=0;i<step;++i){if(this.Data.YOffset<=0)break;--this.Data.YOffset;++moveCount;}}return moveCount>0;};this.GotoNextPage=function(bCycle)//bCycle 是否循环
13587
+ {this.OnClickHeader(clickData,e);}JSConsole.Chart.Log('[JSReportChartContainer:OnTouchClick] clickData',clickData);};this.GetTabChart=function(){var chart=this.ChartPaint[0];if(!chart)return null;return chart.Tab;};this.GetVScrollbarChart=function(){var chart=this.ChartPaint[0];if(!chart)return null;return chart.VScrollbar;};this.GetReportChart=function(){var chart=this.ChartPaint[0];return chart;};//获取列索引
13588
+ this.FindFiledIndex=function(search){if(!search)return-1;var chart=this.GetReportChart();if(!chart)return-1;if(!IFrameSplitOperator.IsNonEmptyArray(chart.Column))return-1;if(search.ID){for(var i=0;i<chart.Column.length;++i){var item=chart.Column[i];if(!item)continue;if(item.ID==search.ID)return i;}return-1;}if(search.Title){for(var i=0;i<chart.Column.length;++i){var item=chart.Column[i];if(!item)continue;if(item.Title==search.Title)return i;}return-1;}if(search.Type){for(var i=0;i<chart.Column.length;++i){var item=chart.Column[i];if(!item)continue;if(item.Type==search.Type)return i;}return-1;}return-1;};this.GotoNextItem=function(step){if(step==0)return false;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return false;var chart=this.ChartPaint[0];if(!chart)return false;var pageSize=chart.GetPageSize();if(pageSize>this.Data.Data.length)return false;var moveCount=0;if(step>0){for(var i=0;i<step;++i){if(this.Data.YOffset+pageSize>=this.Data.Data.length)break;++this.Data.YOffset;++moveCount;}}else if(step<0){step=Math.abs(step);for(var i=0;i<step;++i){if(this.Data.YOffset<=0)break;--this.Data.YOffset;++moveCount;}}return moveCount>0;};this.GotoNextPage=function(bCycle)//bCycle 是否循环
13585
13589
  {if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return false;var chart=this.ChartPaint[0];if(!chart)return false;var pageSize=chart.GetPageSize();var dataCount=chart.GetAllRowCount();if(pageSize>dataCount)return false;if(this.Data.YOffset+pageSize>=dataCount){if(bCycle===true){this.Data.YOffset=0;//循环到第1页
13586
13590
  return true;}else{return false;}}this.Data.YOffset+=pageSize;var showDataCount=dataCount-this.Data.YOffset;if(chart.SelectedModel==0){if(chart.SelectedRow>showDataCount-1)chart.SelectedRow=showDataCount-1;}return true;};this.GotoPreviousPage=function(bCycle)//bCycle 是否循环
13587
13591
  {if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return false;var chart=this.ChartPaint[0];if(!chart)return false;var pageSize=chart.GetPageSize();var dataCount=chart.GetAllRowCount();if(pageSize>dataCount)return false;if(this.Data.YOffset<=0){if(bCycle===true){this.Data.YOffset=dataCount-pageSize;//循环到最后一页
@@ -14420,8 +14424,8 @@ case TREPORT_COLUMN_ID.BUY_VOL_ID://买量
14420
14424
  case TREPORT_COLUMN_ID.POSITION_ID://持仓量
14421
14425
  case TREPORT_COLUMN_ID.VOL_ID://成交量
14422
14426
  case TREPORT_COLUMN_ID.AMOUNT_ID://成交金额
14423
- var fieldName=MAP_TREPORT_COLUMN_FIELD.get(column.Type);if(fieldName)drawInfo.Text=this.FormatVolString(data[fieldName]);break;case TREPORT_COLUMN_ID.INCREASE_ID:case TREPORT_COLUMN_ID.UPDOWN_ID:case TREPORT_COLUMN_ID.AMPLITUDE_ID:var fieldName=MAP_TREPORT_COLUMN_FIELD.get(column.Type);if(fieldName){var value=data[fieldName];if(IFrameSplitOperator.IsNumber(value)){drawInfo.Text=value.toFixed(2);drawInfo.TextColor=this.GetUpDownColor(value,0);}else{this.GetNullDrawInfo(drawInfo);}}break;case TREPORT_COLUMN_ID.RESERVE_NUMBER1_ID:case TREPORT_COLUMN_ID.RESERVE_NUMBER2_ID:case TREPORT_COLUMN_ID.RESERVE_NUMBER3_ID:case TREPORT_COLUMN_ID.RESERVE_NUMBER4_ID:case TREPORT_COLUMN_ID.RESERVE_NUMBER5_ID:case TREPORT_COLUMN_ID.RESERVE_NUMBER6_ID:case TREPORT_COLUMN_ID.RESERVE_NUMBER7_ID:case TREPORT_COLUMN_ID.RESERVE_NUMBER8_ID:case TREPORT_COLUMN_ID.RESERVE_NUMBER9_ID:case TREPORT_COLUMN_ID.RESERVE_NUMBER10_ID:this.FormatReserveNumber(column,data,drawInfo);break;case TREPORT_COLUMN_ID.RESERVE_STRING1_ID:case TREPORT_COLUMN_ID.RESERVE_STRING2_ID:case TREPORT_COLUMN_ID.RESERVE_STRING3_ID:case TREPORT_COLUMN_ID.RESERVE_STRING4_ID:case TREPORT_COLUMN_ID.RESERVE_STRING5_ID:case TREPORT_COLUMN_ID.RESERVE_STRING6_ID:case TREPORT_COLUMN_ID.RESERVE_STRING7_ID:case TREPORT_COLUMN_ID.RESERVE_STRING8_ID:case TREPORT_COLUMN_ID.RESERVE_STRING9_ID:case TREPORT_COLUMN_ID.RESERVE_STRING10_ID:this.FormatReserveString(column,data,drawInfo);break;default:drawInfo.Text='-----';}this.GetMarkBorderData(drawInfo,exePriceData.ExePrice,column.Type,cellType);this.GetFlashBGData(drawInfo,exePriceData,column.Type,cellType);}this.DrawCell(drawInfo,exePriceData,column.Type,cellType);if(column.EnableChartTooltip){var tooltipData={Rect:rtItem,Data:data,Index:index,Column:column,CellType:cellType,Type:20};this.TooltipRect.push(tooltipData);}};this.FormatReserveNumber=function(column,data,drawInfo){if(column.DefaultText)drawInfo.Text=column.DefaultText;var fieldName=MAP_TREPORT_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);}}//TODO: 不同类型的 格式化输出
14424
- drawInfo.Text=value.toFixed(column.FloatPrecision);};this.FormatReserveString=function(column,data,drawInfo){if(column.DefaultText)drawInfo.Text=column.DefaultText;var fieldName=MAP_TREPORT_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;}else if(IFrameSplitOperator.IsString(item)){drawInfo.Text=item;}};this.GetFlashBGData=function(drawInfo,exePriceData,columnType,cellType){if(!exePriceData.TData)return;var data=null;if(cellType==1)data=exePriceData.TData.LeftFlashBG;else if(cellType==2)data=exePriceData.TData.RightFlashBG;if(!data||!data.Data)return;if(data.Data.has(columnType)){var item=data.Data.get(columnType);drawInfo.FlashBGColor=item.Color;--item.Count;if(this.GlobalOption)++this.GlobalOption.FlashBGCount;}};this.GetMarkBorderData=function(drawInfo,exePrice,columnType,cellType){if(!this.BorderData||!this.BorderData.MapData)return;if(!this.BorderData.MapData.has(columnType))return;var borderData=this.BorderData.MapData.get(columnType);if(!IFrameSplitOperator.IsNonEmptyArray(borderData.Data))return;if(cellType==1){var leftBorder=borderData.Data[1];if(!leftBorder)return;if(leftBorder.ExePrice==exePrice){drawInfo.BorderColor=this.MarkBorderConfig.MaxPositionColor;}}else if(cellType==2){var rightBorder=borderData.Data[2];if(!rightBorder)return;if(rightBorder.ExePrice==exePrice){drawInfo.BorderColor=this.MarkBorderConfig.MaxPositionColor;}}};this.GetNullDrawInfo=function(drawInfo){drawInfo.Text="--";drawInfo.TextColor=this.UnchangeColor;};this.GetPriceDrawInfo=function(price,stock,data,drawInfo){if(!IFrameSplitOperator.IsNumber(price)){this.GetNullDrawInfo(drawInfo);return;}drawInfo.Text=price.toFixed(data.Decimal);if(!IFrameSplitOperator.IsNumber(stock.YClose))drawInfo.TextColor=this.UnchangeColor;else drawInfo.TextColor=this.GetUpDownColor(price,stock.YClose);};//单独处理成交量显示
14427
+ var fieldName=MAP_TREPORT_COLUMN_FIELD.get(column.Type);if(fieldName)drawInfo.Text=this.FormatVolString(data[fieldName]);break;case TREPORT_COLUMN_ID.INCREASE_ID:case TREPORT_COLUMN_ID.UPDOWN_ID:case TREPORT_COLUMN_ID.AMPLITUDE_ID:var fieldName=MAP_TREPORT_COLUMN_FIELD.get(column.Type);if(fieldName){var value=data[fieldName];if(IFrameSplitOperator.IsNumber(value)){drawInfo.Text=value.toFixed(2);drawInfo.TextColor=this.GetUpDownColor(value,0);}else{this.GetNullDrawInfo(drawInfo);}}break;case TREPORT_COLUMN_ID.RESERVE_NUMBER1_ID:case TREPORT_COLUMN_ID.RESERVE_NUMBER2_ID:case TREPORT_COLUMN_ID.RESERVE_NUMBER3_ID:case TREPORT_COLUMN_ID.RESERVE_NUMBER4_ID:case TREPORT_COLUMN_ID.RESERVE_NUMBER5_ID:case TREPORT_COLUMN_ID.RESERVE_NUMBER6_ID:case TREPORT_COLUMN_ID.RESERVE_NUMBER7_ID:case TREPORT_COLUMN_ID.RESERVE_NUMBER8_ID:case TREPORT_COLUMN_ID.RESERVE_NUMBER9_ID:case TREPORT_COLUMN_ID.RESERVE_NUMBER10_ID:this.FormatReserveNumber(column,data,drawInfo);break;case TREPORT_COLUMN_ID.RESERVE_STRING1_ID:case TREPORT_COLUMN_ID.RESERVE_STRING2_ID:case TREPORT_COLUMN_ID.RESERVE_STRING3_ID:case TREPORT_COLUMN_ID.RESERVE_STRING4_ID:case TREPORT_COLUMN_ID.RESERVE_STRING5_ID:case TREPORT_COLUMN_ID.RESERVE_STRING6_ID:case TREPORT_COLUMN_ID.RESERVE_STRING7_ID:case TREPORT_COLUMN_ID.RESERVE_STRING8_ID:case TREPORT_COLUMN_ID.RESERVE_STRING9_ID:case TREPORT_COLUMN_ID.RESERVE_STRING10_ID:this.FormatReserveString(column,data,drawInfo);break;default:drawInfo.Text='-----';}this.GetMarkBorderData(drawInfo,exePriceData.ExePrice,column.Type,cellType);this.GetFlashBGData(drawInfo,exePriceData,column.ID,cellType);}this.DrawCell(drawInfo,exePriceData,column.Type,cellType);if(column.EnableChartTooltip){var tooltipData={Rect:rtItem,Data:data,Index:index,Column:column,CellType:cellType,Type:20};this.TooltipRect.push(tooltipData);}};this.FormatReserveNumber=function(column,data,drawInfo){if(column.DefaultText)drawInfo.Text=column.DefaultText;var fieldName=MAP_TREPORT_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);}}//TODO: 不同类型的 格式化输出
14428
+ drawInfo.Text=value.toFixed(column.FloatPrecision);};this.FormatReserveString=function(column,data,drawInfo){if(column.DefaultText)drawInfo.Text=column.DefaultText;var fieldName=MAP_TREPORT_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;}else if(IFrameSplitOperator.IsString(item)){drawInfo.Text=item;}};this.GetFlashBGData=function(drawInfo,exePriceData,id,cellType){if(!exePriceData.TData)return;if(!id)return;var data=null;if(cellType==1)data=exePriceData.TData.LeftFlashBG;else if(cellType==2)data=exePriceData.TData.RightFlashBG;if(!data||!data.Data)return;if(data.Data.has(id)){var item=data.Data.get(id);drawInfo.FlashBGColor=item.Color;--item.Count;if(this.GlobalOption)++this.GlobalOption.FlashBGCount;}};this.GetMarkBorderData=function(drawInfo,exePrice,columnType,cellType){if(!this.BorderData||!this.BorderData.MapData)return;if(!this.BorderData.MapData.has(columnType))return;var borderData=this.BorderData.MapData.get(columnType);if(!IFrameSplitOperator.IsNonEmptyArray(borderData.Data))return;if(cellType==1){var leftBorder=borderData.Data[1];if(!leftBorder)return;if(leftBorder.ExePrice==exePrice){drawInfo.BorderColor=this.MarkBorderConfig.MaxPositionColor;}}else if(cellType==2){var rightBorder=borderData.Data[2];if(!rightBorder)return;if(rightBorder.ExePrice==exePrice){drawInfo.BorderColor=this.MarkBorderConfig.MaxPositionColor;}}};this.GetNullDrawInfo=function(drawInfo){drawInfo.Text="--";drawInfo.TextColor=this.UnchangeColor;};this.GetPriceDrawInfo=function(price,stock,data,drawInfo){if(!IFrameSplitOperator.IsNumber(price)){this.GetNullDrawInfo(drawInfo);return;}drawInfo.Text=price.toFixed(data.Decimal);if(!IFrameSplitOperator.IsNumber(stock.YClose))drawInfo.TextColor=this.UnchangeColor;else drawInfo.TextColor=this.GetUpDownColor(price,stock.YClose);};//单独处理成交量显示
14425
14429
  this.FormatVolString=function(value,languageID){if(!IFrameSplitOperator.IsNumber(value))return null;return IFrameSplitOperator.FormatVolString(value,languageID);};this.GetUpDownColor=function(price,price2){if(price>price2)return this.UpColor;else if(price<price2)return this.DownColor;else return this.UnchangeColor;};this.GetUpDownColorV2=function(price,price2){if(price>=price2)return this.UpColor;else return this.DownColor;};this.DrawCell=function(drawInfo){var rtText=drawInfo.RectText;var yCenter=rtText.Top+rtText.Height/2;var fontBackup=null;//字体备份
14426
14430
  if(drawInfo.BGColor)//背景
14427
14431
  {var rtItem=drawInfo.Rect;this.Canvas.fillStyle=drawInfo.BGColor;this.Canvas.fillRect(rtItem.Left,rtItem.Top,rtItem.Width,rtItem.Height);}if(drawInfo.FlashBGColor)//闪动背景
@@ -15237,7 +15241,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
15237
15241
  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);};}/********************************************************************************
15238
15242
  * 版本信息输出
15239
15243
  *
15240
- */var HQCHART_VERSION="1.1.14955";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();//把给外界调用的方法暴露出来
15244
+ */var HQCHART_VERSION="1.1.14964";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();//把给外界调用的方法暴露出来
15241
15245
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
15242
15246
  // BaseIndex:BaseIndex,
15243
15247
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.14958",
3
+ "version": "1.1.14965",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -2716,7 +2716,7 @@ function ChartTReport()
2716
2716
  }
2717
2717
 
2718
2718
  this.GetMarkBorderData(drawInfo, exePriceData.ExePrice, column.Type, cellType);
2719
- this.GetFlashBGData(drawInfo, exePriceData, column.Type, cellType);
2719
+ this.GetFlashBGData(drawInfo, exePriceData, column.ID, cellType);
2720
2720
  }
2721
2721
 
2722
2722
  this.DrawCell(drawInfo, exePriceData, column.Type, cellType);
@@ -2774,9 +2774,10 @@ function ChartTReport()
2774
2774
  }
2775
2775
  }
2776
2776
 
2777
- this.GetFlashBGData=function(drawInfo, exePriceData, columnType, cellType)
2777
+ this.GetFlashBGData=function(drawInfo, exePriceData, id, cellType)
2778
2778
  {
2779
2779
  if (!exePriceData.TData) return;
2780
+ if (!id) return;
2780
2781
 
2781
2782
  var data=null;
2782
2783
  if (cellType==1) data=exePriceData.TData.LeftFlashBG;
@@ -2784,9 +2785,9 @@ function ChartTReport()
2784
2785
 
2785
2786
  if (!data || !data.Data) return;
2786
2787
 
2787
- if (data.Data.has(columnType))
2788
+ if (data.Data.has(id))
2788
2789
  {
2789
- var item=data.Data.get(columnType);
2790
+ var item=data.Data.get(id);
2790
2791
  drawInfo.FlashBGColor=item.Color;
2791
2792
  --item.Count;
2792
2793
 
@@ -429,6 +429,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
429
429
  {
430
430
  var item=option.KeyboardMove;
431
431
  if (IFrameSplitOperator.IsPlusNumber(item.Delay)) chart.KeyboardMove.Delay=item.Delay;
432
+ if (IFrameSplitOperator.IsPlusNumber(item.PressTime)) chart.KeyboardMove.PressTime=item.PressTime;
432
433
  }
433
434
 
434
435
  if (IFrameSplitOperator.IsNumber(option.StepPixel)) chart.StepPixel=option.StepPixel;
@@ -3322,7 +3323,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
3322
3323
  this.AryHotKey=[]; //热键 { KeyID:87, SecondKeyID:1, CMD:JSCHART_MENU_ID.CMD_FULLSCREEN_SUMMARY_ID, Args:null, Description:"Alt+W 全屏区间统计" },
3323
3324
 
3324
3325
  this.FastSlideConfig={ MinDistance:500, MinSpeed:3, MaxTime:250, Enable:false }; //快速滑动配置 MinDistance=最小的距离 MinSpeed=最小速度 MaxTime=最大间隔时间(ms)
3325
- this.KeyboardMove={ Timer:null, Delay:100 , Enable:false, Event:null }; //键盘左右移动
3326
+ this.KeyboardMove={ Timer:null, Delay:100 , PressTime:500, Enable:false, Event:null }; //键盘左右移动 PressTime=长按时间
3326
3327
 
3327
3328
  this.MapEventListenerCache=new Map(); //addEventListener 监听事件 key=type:"keydown|keyup ....", value:{ Callback:, Option: }
3328
3329
 
@@ -7865,19 +7866,22 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
7865
7866
 
7866
7867
  JSConsole.Chart.Log(`[JSChartContainer::StartKeyboardMoveTimer] Start` );
7867
7868
 
7868
- this.AutoKeyboardMove();
7869
+ this.AutoKeyboardMove({ Delay:this.KeyboardMove.PressTime });
7869
7870
  }
7870
7871
 
7871
- this.AutoKeyboardMove=function()
7872
+ this.AutoKeyboardMove=function(option)
7872
7873
  {
7873
7874
  if (!this.KeyboardMove) return false;
7874
7875
  if (!this.KeyboardMove.Enable) return false;
7875
7876
  if (!this.KeyboardMove.Event) return false;
7876
7877
 
7878
+ var delay=this.KeyboardMove.Delay;
7879
+ if (option && IFrameSplitOperator.IsNumber(option.Delay)) delay=option.Delay;
7880
+
7877
7881
  this.KeyboardMove.Timer=setTimeout(()=>
7878
7882
  {
7879
7883
  this.OnKeyboardMoveTimerProc();
7880
- },this.KeyboardMove.Delay);
7884
+ },delay);
7881
7885
  }
7882
7886
 
7883
7887
 
@@ -61766,13 +61770,24 @@ function DynamicChartTitlePainting()
61766
61770
 
61767
61771
 
61768
61772
  //动态标题
61769
- //动态标题
61773
+ //叠加指标动态标题
61770
61774
  this.DynamicTitle={ OutName:null, OutValue:null };
61771
61775
  this.OverlayDynamicTitle=new Map(); //key , value={ OutName, OutValue }
61772
61776
 
61773
61777
  this.IsShowMainIndexTitle=true; //是否显示主图指标标题
61774
61778
  this.MainTitlePaint=null; //主标题
61775
61779
 
61780
+ //option={ DynamicTitle:true/false }
61781
+ this.Clear=function(option)
61782
+ {
61783
+ this.Data=[];
61784
+ this.Title=null;
61785
+ if (option)
61786
+ {
61787
+ if (option.DynamicTitle===true) this.DynamicTitle={ OutName:null, OutValue:null }; //主图胴动态标题
61788
+ }
61789
+ }
61790
+
61776
61791
  //十字线是否显示
61777
61792
  this.IsShowCorssLine=function()
61778
61793
  {
@@ -83937,8 +83952,8 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
83937
83952
 
83938
83953
  //清空东条标题
83939
83954
  var titleIndex=windowIndex+1;
83940
- this.TitlePaint[titleIndex].Data=[];
83941
- this.TitlePaint[titleIndex].Title=null;
83955
+ var chartTitle=this.TitlePaint[titleIndex];
83956
+ if (chartTitle) chartTitle.Clear({ DynamicTitle:true });
83942
83957
  }
83943
83958
 
83944
83959
  //显示隐藏主图K线
@@ -84201,6 +84216,8 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
84201
84216
  if (windowIndex == 0) windowIndex = 1; //幅图指标,不能再主图显示
84202
84217
  }
84203
84218
 
84219
+ if (this.Frame.SubFrame.length<=windowIndex) return;
84220
+
84204
84221
  JSIndexScript.ModifyAttribute(indexInfo, option);
84205
84222
  return this.ChangeScriptIndex(windowIndex, indexInfo, option);
84206
84223
  }
@@ -84233,8 +84250,8 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
84233
84250
 
84234
84251
  //清空东条标题
84235
84252
  var titleIndex=windowIndex+1;
84236
- this.TitlePaint[titleIndex].Data=[];
84237
- this.TitlePaint[titleIndex].Title=null;
84253
+ var chartTitle=this.TitlePaint[titleIndex];
84254
+ chartTitle.Clear({ DynamicTitle:true });
84238
84255
 
84239
84256
  this.WindowIndex[windowIndex]=indexItem.Create(option);
84240
84257
  this.CreateWindowIndex(windowIndex);
@@ -206,6 +206,7 @@ function JSReportChart(divElement)
206
206
  if (option.SortInfo)
207
207
  {
208
208
  var item=option.SortInfo;
209
+ if (item.Search) chart.SortInfo.Field=chart.FindFiledIndex(item.Search);
209
210
  if (IFrameSplitOperator.IsNumber(item.Field)) chart.SortInfo.Field=item.Field;
210
211
  if (IFrameSplitOperator.IsNumber(item.Sort)) chart.SortInfo.Sort=item.Sort;
211
212
  }
@@ -1027,6 +1028,7 @@ function JSReportChartContainer(uielement)
1027
1028
  if (option.SortInfo)
1028
1029
  {
1029
1030
  var item=option.SortInfo;
1031
+ if (item.Search) this.SortInfo.Field=this.FindFiledIndex(item.Search);
1030
1032
  if (IFrameSplitOperator.IsNumber(item.Field)) this.SortInfo.Field=item.Field;
1031
1033
  if (IFrameSplitOperator.IsNumber(item.Sort)) this.SortInfo.Sort=item.Sort;
1032
1034
  }
@@ -3041,6 +3043,53 @@ function JSReportChartContainer(uielement)
3041
3043
  return chart;
3042
3044
  }
3043
3045
 
3046
+ //获取列索引
3047
+ this.FindFiledIndex=function(search)
3048
+ {
3049
+ if (!search) return -1;
3050
+ var chart=this.GetReportChart();
3051
+ if (!chart) return -1;
3052
+ if (!IFrameSplitOperator.IsNonEmptyArray(chart.Column)) return -1;
3053
+
3054
+ if (search.ID)
3055
+ {
3056
+ for(var i=0;i<chart.Column.length;++i)
3057
+ {
3058
+ var item=chart.Column[i];
3059
+ if (!item) continue;
3060
+ if (item.ID==search.ID) return i;
3061
+ }
3062
+
3063
+ return -1;
3064
+ }
3065
+
3066
+ if (search.Title)
3067
+ {
3068
+ for(var i=0;i<chart.Column.length;++i)
3069
+ {
3070
+ var item=chart.Column[i];
3071
+ if (!item) continue;
3072
+ if (item.Title==search.Title) return i;
3073
+ }
3074
+
3075
+ return -1;
3076
+ }
3077
+
3078
+ if (search.Type)
3079
+ {
3080
+ for(var i=0;i<chart.Column.length;++i)
3081
+ {
3082
+ var item=chart.Column[i];
3083
+ if (!item) continue;
3084
+ if (item.Type==search.Type) return i;
3085
+ }
3086
+
3087
+ return -1;
3088
+ }
3089
+
3090
+ return -1;
3091
+ }
3092
+
3044
3093
  this.GotoNextItem=function(step)
3045
3094
  {
3046
3095
  if (step==0) return false;
@@ -4525,6 +4525,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4525
4525
  {
4526
4526
  var item=option.KeyboardMove;
4527
4527
  if (IFrameSplitOperator.IsPlusNumber(item.Delay)) chart.KeyboardMove.Delay=item.Delay;
4528
+ if (IFrameSplitOperator.IsPlusNumber(item.PressTime)) chart.KeyboardMove.PressTime=item.PressTime;
4528
4529
  }
4529
4530
 
4530
4531
  if (IFrameSplitOperator.IsNumber(option.StepPixel)) chart.StepPixel=option.StepPixel;
@@ -7418,7 +7419,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
7418
7419
  this.AryHotKey=[]; //热键 { KeyID:87, SecondKeyID:1, CMD:JSCHART_MENU_ID.CMD_FULLSCREEN_SUMMARY_ID, Args:null, Description:"Alt+W 全屏区间统计" },
7419
7420
 
7420
7421
  this.FastSlideConfig={ MinDistance:500, MinSpeed:3, MaxTime:250, Enable:false }; //快速滑动配置 MinDistance=最小的距离 MinSpeed=最小速度 MaxTime=最大间隔时间(ms)
7421
- this.KeyboardMove={ Timer:null, Delay:100 , Enable:false, Event:null }; //键盘左右移动
7422
+ this.KeyboardMove={ Timer:null, Delay:100 , PressTime:500, Enable:false, Event:null }; //键盘左右移动 PressTime=长按时间
7422
7423
 
7423
7424
  this.MapEventListenerCache=new Map(); //addEventListener 监听事件 key=type:"keydown|keyup ....", value:{ Callback:, Option: }
7424
7425
 
@@ -11961,19 +11962,22 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
11961
11962
 
11962
11963
  JSConsole.Chart.Log(`[JSChartContainer::StartKeyboardMoveTimer] Start` );
11963
11964
 
11964
- this.AutoKeyboardMove();
11965
+ this.AutoKeyboardMove({ Delay:this.KeyboardMove.PressTime });
11965
11966
  }
11966
11967
 
11967
- this.AutoKeyboardMove=function()
11968
+ this.AutoKeyboardMove=function(option)
11968
11969
  {
11969
11970
  if (!this.KeyboardMove) return false;
11970
11971
  if (!this.KeyboardMove.Enable) return false;
11971
11972
  if (!this.KeyboardMove.Event) return false;
11972
11973
 
11974
+ var delay=this.KeyboardMove.Delay;
11975
+ if (option && IFrameSplitOperator.IsNumber(option.Delay)) delay=option.Delay;
11976
+
11973
11977
  this.KeyboardMove.Timer=setTimeout(()=>
11974
11978
  {
11975
11979
  this.OnKeyboardMoveTimerProc();
11976
- },this.KeyboardMove.Delay);
11980
+ },delay);
11977
11981
  }
11978
11982
 
11979
11983
 
@@ -65862,13 +65866,24 @@ function DynamicChartTitlePainting()
65862
65866
 
65863
65867
 
65864
65868
  //动态标题
65865
- //动态标题
65869
+ //叠加指标动态标题
65866
65870
  this.DynamicTitle={ OutName:null, OutValue:null };
65867
65871
  this.OverlayDynamicTitle=new Map(); //key , value={ OutName, OutValue }
65868
65872
 
65869
65873
  this.IsShowMainIndexTitle=true; //是否显示主图指标标题
65870
65874
  this.MainTitlePaint=null; //主标题
65871
65875
 
65876
+ //option={ DynamicTitle:true/false }
65877
+ this.Clear=function(option)
65878
+ {
65879
+ this.Data=[];
65880
+ this.Title=null;
65881
+ if (option)
65882
+ {
65883
+ if (option.DynamicTitle===true) this.DynamicTitle={ OutName:null, OutValue:null }; //主图胴动态标题
65884
+ }
65885
+ }
65886
+
65872
65887
  //十字线是否显示
65873
65888
  this.IsShowCorssLine=function()
65874
65889
  {
@@ -88033,8 +88048,8 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
88033
88048
 
88034
88049
  //清空东条标题
88035
88050
  var titleIndex=windowIndex+1;
88036
- this.TitlePaint[titleIndex].Data=[];
88037
- this.TitlePaint[titleIndex].Title=null;
88051
+ var chartTitle=this.TitlePaint[titleIndex];
88052
+ if (chartTitle) chartTitle.Clear({ DynamicTitle:true });
88038
88053
  }
88039
88054
 
88040
88055
  //显示隐藏主图K线
@@ -88297,6 +88312,8 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
88297
88312
  if (windowIndex == 0) windowIndex = 1; //幅图指标,不能再主图显示
88298
88313
  }
88299
88314
 
88315
+ if (this.Frame.SubFrame.length<=windowIndex) return;
88316
+
88300
88317
  JSIndexScript.ModifyAttribute(indexInfo, option);
88301
88318
  return this.ChangeScriptIndex(windowIndex, indexInfo, option);
88302
88319
  }
@@ -88329,8 +88346,8 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
88329
88346
 
88330
88347
  //清空东条标题
88331
88348
  var titleIndex=windowIndex+1;
88332
- this.TitlePaint[titleIndex].Data=[];
88333
- this.TitlePaint[titleIndex].Title=null;
88349
+ var chartTitle=this.TitlePaint[titleIndex];
88350
+ chartTitle.Clear({ DynamicTitle:true });
88334
88351
 
88335
88352
  this.WindowIndex[windowIndex]=indexItem.Create(option);
88336
88353
  this.CreateWindowIndex(windowIndex);
@@ -138221,6 +138238,7 @@ function JSReportChart(divElement)
138221
138238
  if (option.SortInfo)
138222
138239
  {
138223
138240
  var item=option.SortInfo;
138241
+ if (item.Search) chart.SortInfo.Field=chart.FindFiledIndex(item.Search);
138224
138242
  if (IFrameSplitOperator.IsNumber(item.Field)) chart.SortInfo.Field=item.Field;
138225
138243
  if (IFrameSplitOperator.IsNumber(item.Sort)) chart.SortInfo.Sort=item.Sort;
138226
138244
  }
@@ -139042,6 +139060,7 @@ function JSReportChartContainer(uielement)
139042
139060
  if (option.SortInfo)
139043
139061
  {
139044
139062
  var item=option.SortInfo;
139063
+ if (item.Search) this.SortInfo.Field=this.FindFiledIndex(item.Search);
139045
139064
  if (IFrameSplitOperator.IsNumber(item.Field)) this.SortInfo.Field=item.Field;
139046
139065
  if (IFrameSplitOperator.IsNumber(item.Sort)) this.SortInfo.Sort=item.Sort;
139047
139066
  }
@@ -141056,6 +141075,53 @@ function JSReportChartContainer(uielement)
141056
141075
  return chart;
141057
141076
  }
141058
141077
 
141078
+ //获取列索引
141079
+ this.FindFiledIndex=function(search)
141080
+ {
141081
+ if (!search) return -1;
141082
+ var chart=this.GetReportChart();
141083
+ if (!chart) return -1;
141084
+ if (!IFrameSplitOperator.IsNonEmptyArray(chart.Column)) return -1;
141085
+
141086
+ if (search.ID)
141087
+ {
141088
+ for(var i=0;i<chart.Column.length;++i)
141089
+ {
141090
+ var item=chart.Column[i];
141091
+ if (!item) continue;
141092
+ if (item.ID==search.ID) return i;
141093
+ }
141094
+
141095
+ return -1;
141096
+ }
141097
+
141098
+ if (search.Title)
141099
+ {
141100
+ for(var i=0;i<chart.Column.length;++i)
141101
+ {
141102
+ var item=chart.Column[i];
141103
+ if (!item) continue;
141104
+ if (item.Title==search.Title) return i;
141105
+ }
141106
+
141107
+ return -1;
141108
+ }
141109
+
141110
+ if (search.Type)
141111
+ {
141112
+ for(var i=0;i<chart.Column.length;++i)
141113
+ {
141114
+ var item=chart.Column[i];
141115
+ if (!item) continue;
141116
+ if (item.Type==search.Type) return i;
141117
+ }
141118
+
141119
+ return -1;
141120
+ }
141121
+
141122
+ return -1;
141123
+ }
141124
+
141059
141125
  this.GotoNextItem=function(step)
141060
141126
  {
141061
141127
  if (step==0) return false;
@@ -151476,7 +151542,7 @@ function ScrollBarBGChart()
151476
151542
 
151477
151543
 
151478
151544
 
151479
- var HQCHART_VERSION="1.1.14957";
151545
+ var HQCHART_VERSION="1.1.14964";
151480
151546
 
151481
151547
  function PrintHQChartVersion()
151482
151548
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.14957";
8
+ var HQCHART_VERSION="1.1.14964";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -4569,6 +4569,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4569
4569
  {
4570
4570
  var item=option.KeyboardMove;
4571
4571
  if (IFrameSplitOperator.IsPlusNumber(item.Delay)) chart.KeyboardMove.Delay=item.Delay;
4572
+ if (IFrameSplitOperator.IsPlusNumber(item.PressTime)) chart.KeyboardMove.PressTime=item.PressTime;
4572
4573
  }
4573
4574
 
4574
4575
  if (IFrameSplitOperator.IsNumber(option.StepPixel)) chart.StepPixel=option.StepPixel;
@@ -7462,7 +7463,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
7462
7463
  this.AryHotKey=[]; //热键 { KeyID:87, SecondKeyID:1, CMD:JSCHART_MENU_ID.CMD_FULLSCREEN_SUMMARY_ID, Args:null, Description:"Alt+W 全屏区间统计" },
7463
7464
 
7464
7465
  this.FastSlideConfig={ MinDistance:500, MinSpeed:3, MaxTime:250, Enable:false }; //快速滑动配置 MinDistance=最小的距离 MinSpeed=最小速度 MaxTime=最大间隔时间(ms)
7465
- this.KeyboardMove={ Timer:null, Delay:100 , Enable:false, Event:null }; //键盘左右移动
7466
+ this.KeyboardMove={ Timer:null, Delay:100 , PressTime:500, Enable:false, Event:null }; //键盘左右移动 PressTime=长按时间
7466
7467
 
7467
7468
  this.MapEventListenerCache=new Map(); //addEventListener 监听事件 key=type:"keydown|keyup ....", value:{ Callback:, Option: }
7468
7469
 
@@ -12005,19 +12006,22 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
12005
12006
 
12006
12007
  JSConsole.Chart.Log(`[JSChartContainer::StartKeyboardMoveTimer] Start` );
12007
12008
 
12008
- this.AutoKeyboardMove();
12009
+ this.AutoKeyboardMove({ Delay:this.KeyboardMove.PressTime });
12009
12010
  }
12010
12011
 
12011
- this.AutoKeyboardMove=function()
12012
+ this.AutoKeyboardMove=function(option)
12012
12013
  {
12013
12014
  if (!this.KeyboardMove) return false;
12014
12015
  if (!this.KeyboardMove.Enable) return false;
12015
12016
  if (!this.KeyboardMove.Event) return false;
12016
12017
 
12018
+ var delay=this.KeyboardMove.Delay;
12019
+ if (option && IFrameSplitOperator.IsNumber(option.Delay)) delay=option.Delay;
12020
+
12017
12021
  this.KeyboardMove.Timer=setTimeout(()=>
12018
12022
  {
12019
12023
  this.OnKeyboardMoveTimerProc();
12020
- },this.KeyboardMove.Delay);
12024
+ },delay);
12021
12025
  }
12022
12026
 
12023
12027
 
@@ -65906,13 +65910,24 @@ function DynamicChartTitlePainting()
65906
65910
 
65907
65911
 
65908
65912
  //动态标题
65909
- //动态标题
65913
+ //叠加指标动态标题
65910
65914
  this.DynamicTitle={ OutName:null, OutValue:null };
65911
65915
  this.OverlayDynamicTitle=new Map(); //key , value={ OutName, OutValue }
65912
65916
 
65913
65917
  this.IsShowMainIndexTitle=true; //是否显示主图指标标题
65914
65918
  this.MainTitlePaint=null; //主标题
65915
65919
 
65920
+ //option={ DynamicTitle:true/false }
65921
+ this.Clear=function(option)
65922
+ {
65923
+ this.Data=[];
65924
+ this.Title=null;
65925
+ if (option)
65926
+ {
65927
+ if (option.DynamicTitle===true) this.DynamicTitle={ OutName:null, OutValue:null }; //主图胴动态标题
65928
+ }
65929
+ }
65930
+
65916
65931
  //十字线是否显示
65917
65932
  this.IsShowCorssLine=function()
65918
65933
  {
@@ -88077,8 +88092,8 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
88077
88092
 
88078
88093
  //清空东条标题
88079
88094
  var titleIndex=windowIndex+1;
88080
- this.TitlePaint[titleIndex].Data=[];
88081
- this.TitlePaint[titleIndex].Title=null;
88095
+ var chartTitle=this.TitlePaint[titleIndex];
88096
+ if (chartTitle) chartTitle.Clear({ DynamicTitle:true });
88082
88097
  }
88083
88098
 
88084
88099
  //显示隐藏主图K线
@@ -88341,6 +88356,8 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
88341
88356
  if (windowIndex == 0) windowIndex = 1; //幅图指标,不能再主图显示
88342
88357
  }
88343
88358
 
88359
+ if (this.Frame.SubFrame.length<=windowIndex) return;
88360
+
88344
88361
  JSIndexScript.ModifyAttribute(indexInfo, option);
88345
88362
  return this.ChangeScriptIndex(windowIndex, indexInfo, option);
88346
88363
  }
@@ -88373,8 +88390,8 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
88373
88390
 
88374
88391
  //清空东条标题
88375
88392
  var titleIndex=windowIndex+1;
88376
- this.TitlePaint[titleIndex].Data=[];
88377
- this.TitlePaint[titleIndex].Title=null;
88393
+ var chartTitle=this.TitlePaint[titleIndex];
88394
+ chartTitle.Clear({ DynamicTitle:true });
88378
88395
 
88379
88396
  this.WindowIndex[windowIndex]=indexItem.Create(option);
88380
88397
  this.CreateWindowIndex(windowIndex);
@@ -138265,6 +138282,7 @@ function JSReportChart(divElement)
138265
138282
  if (option.SortInfo)
138266
138283
  {
138267
138284
  var item=option.SortInfo;
138285
+ if (item.Search) chart.SortInfo.Field=chart.FindFiledIndex(item.Search);
138268
138286
  if (IFrameSplitOperator.IsNumber(item.Field)) chart.SortInfo.Field=item.Field;
138269
138287
  if (IFrameSplitOperator.IsNumber(item.Sort)) chart.SortInfo.Sort=item.Sort;
138270
138288
  }
@@ -139086,6 +139104,7 @@ function JSReportChartContainer(uielement)
139086
139104
  if (option.SortInfo)
139087
139105
  {
139088
139106
  var item=option.SortInfo;
139107
+ if (item.Search) this.SortInfo.Field=this.FindFiledIndex(item.Search);
139089
139108
  if (IFrameSplitOperator.IsNumber(item.Field)) this.SortInfo.Field=item.Field;
139090
139109
  if (IFrameSplitOperator.IsNumber(item.Sort)) this.SortInfo.Sort=item.Sort;
139091
139110
  }
@@ -141100,6 +141119,53 @@ function JSReportChartContainer(uielement)
141100
141119
  return chart;
141101
141120
  }
141102
141121
 
141122
+ //获取列索引
141123
+ this.FindFiledIndex=function(search)
141124
+ {
141125
+ if (!search) return -1;
141126
+ var chart=this.GetReportChart();
141127
+ if (!chart) return -1;
141128
+ if (!IFrameSplitOperator.IsNonEmptyArray(chart.Column)) return -1;
141129
+
141130
+ if (search.ID)
141131
+ {
141132
+ for(var i=0;i<chart.Column.length;++i)
141133
+ {
141134
+ var item=chart.Column[i];
141135
+ if (!item) continue;
141136
+ if (item.ID==search.ID) return i;
141137
+ }
141138
+
141139
+ return -1;
141140
+ }
141141
+
141142
+ if (search.Title)
141143
+ {
141144
+ for(var i=0;i<chart.Column.length;++i)
141145
+ {
141146
+ var item=chart.Column[i];
141147
+ if (!item) continue;
141148
+ if (item.Title==search.Title) return i;
141149
+ }
141150
+
141151
+ return -1;
141152
+ }
141153
+
141154
+ if (search.Type)
141155
+ {
141156
+ for(var i=0;i<chart.Column.length;++i)
141157
+ {
141158
+ var item=chart.Column[i];
141159
+ if (!item) continue;
141160
+ if (item.Type==search.Type) return i;
141161
+ }
141162
+
141163
+ return -1;
141164
+ }
141165
+
141166
+ return -1;
141167
+ }
141168
+
141103
141169
  this.GotoNextItem=function(step)
141104
141170
  {
141105
141171
  if (step==0) return false;
@@ -150897,7 +150963,7 @@ function ChartTReport()
150897
150963
  }
150898
150964
 
150899
150965
  this.GetMarkBorderData(drawInfo, exePriceData.ExePrice, column.Type, cellType);
150900
- this.GetFlashBGData(drawInfo, exePriceData, column.Type, cellType);
150966
+ this.GetFlashBGData(drawInfo, exePriceData, column.ID, cellType);
150901
150967
  }
150902
150968
 
150903
150969
  this.DrawCell(drawInfo, exePriceData, column.Type, cellType);
@@ -150955,9 +151021,10 @@ function ChartTReport()
150955
151021
  }
150956
151022
  }
150957
151023
 
150958
- this.GetFlashBGData=function(drawInfo, exePriceData, columnType, cellType)
151024
+ this.GetFlashBGData=function(drawInfo, exePriceData, id, cellType)
150959
151025
  {
150960
151026
  if (!exePriceData.TData) return;
151027
+ if (!id) return;
150961
151028
 
150962
151029
  var data=null;
150963
151030
  if (cellType==1) data=exePriceData.TData.LeftFlashBG;
@@ -150965,9 +151032,9 @@ function ChartTReport()
150965
151032
 
150966
151033
  if (!data || !data.Data) return;
150967
151034
 
150968
- if (data.Data.has(columnType))
151035
+ if (data.Data.has(id))
150969
151036
  {
150970
- var item=data.Data.get(columnType);
151037
+ var item=data.Data.get(id);
150971
151038
  drawInfo.FlashBGColor=item.Color;
150972
151039
  --item.Count;
150973
151040
 
@@ -162851,7 +162918,7 @@ function HQChartScriptWorker()
162851
162918
 
162852
162919
 
162853
162920
 
162854
- var HQCHART_VERSION="1.1.14957";
162921
+ var HQCHART_VERSION="1.1.14964";
162855
162922
 
162856
162923
  function PrintHQChartVersion()
162857
162924
  {