hqchart 1.1.15696 → 1.1.15705

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.
@@ -1250,7 +1250,8 @@ if(IFrameSplitOperator.IsNonEmptyArray(windows)){var scriptData=new JSIndexScrip
1250
1250
  }else if(item.API)//使用API挂接指标数据 API:{ Name:指标名字, Script:指标脚本可以为空, Args:参数可以为空, Url:指标执行地址 }
1251
1251
  {var apiItem=item.API;chart.WindowIndex[index]=new APIScriptIndex(apiItem.Name,apiItem.Script,apiItem.Args,item);}else{var indexItem=JSIndexMap.Get(item.Index);if(indexItem){chart.WindowIndex[index]=indexItem.Create();//创建子窗口的指标
1252
1252
  chart.CreateWindowIndex(index);}else{var indexInfo=scriptData.Get(item.Index);if(!indexInfo)continue;JSIndexScript.ModifyAttribute(indexInfo,item);indexInfo.ID=item.Index;chart.WindowIndex[index]=new ScriptIndex(indexInfo.Name,indexInfo.Script,indexInfo.Args,indexInfo);//脚本执行
1253
- if(item.StringFormat>0)chart.WindowIndex[index].StringFormat=item.StringFormat;if(item.FloatPrecision>=0)chart.WindowIndex[index].FloatPrecision=item.FloatPrecision;}}chart.SetSubFrameAttribute(chart.Frame.SubFrame[index],item,null);}}this.AdjustTitleHeight(chart);//叠加指标
1253
+ if(item.StringFormat>0)chart.WindowIndex[index].StringFormat=item.StringFormat;if(item.FloatPrecision>=0)chart.WindowIndex[index].FloatPrecision=item.FloatPrecision;}}chart.SetSubFrameAttribute(chart.Frame.SubFrame[index],item,null);chart.UpdateIndexTemporaryAttribute(i,item.AryTemporaryAttribute);//指标临时属性
1254
+ }}this.AdjustTitleHeight(chart);//叠加指标
1254
1255
  if(IFrameSplitOperator.IsNonEmptyArray(option.OverlayIndex)){for(var i=0;i<option.OverlayIndex.length;++i){var item=option.OverlayIndex[i];if(item.Windows>=chart.Frame.SubFrame.length)continue;var itemString=(0,_stringify2.default)(item);var obj=JSON.parse(itemString);if(item.Index)obj.IndexName=item.Index;if(item.Windows>=0)obj.WindowIndex=item.Windows;chart.CreateOverlayWindowsIndex(obj);}}if(option.LatestPointFlash){var item=option.LatestPointFlash;if(item.Enable){this.CreateExtraCanvasElement(JSChart.LatestPointFlashKey,{ZIndex:6});chart.CreateExtendChart("LatestPointFlashPaint",item);chart.StartLatestPointFlash();}}return chart;};this.CreateMinMinuteChartContainer=function(option){var chart=null;if(option.Type==="迷你分钟走势图横屏")chart=new MinuteChartHScreenContainer(this.CanvasElement);else chart=new MinuteChartContainer(this.CanvasElement);if(option.NetworkFilter)chart.NetworkFilter=option.NetworkFilter;var windowsCount=2;if(option.BeforeOpen)//集合竞价
1255
1256
  {var item=option.BeforeOpen;if(IFrameSplitOperator.IsBool(item.IsShow))chart.IsShowBeforeData=item.IsShow;if(IFrameSplitOperator.IsNumber(item.Width))chart.ExtendWidth.Left=item.Width;if(IFrameSplitOperator.IsBool(item.IsShowMultiDay))chart.IsShowMultiDayBeforeData=item.IsShowMultiDay;if(IFrameSplitOperator.IsNumber(item.MulitiDayWidth))chart.MultiDayExtendWidth.Left=item.MulitiDayWidth;}if(option.AfterClose)//收盘集合竞价
1256
1257
  {var item=option.AfterClose;if(IFrameSplitOperator.IsBool(item.IsShow))chart.IsShowAfterData=item.IsShow;if(IFrameSplitOperator.IsNumber(item.ShareVol))chart.ShareAfterVol=item.ShareVol;if(IFrameSplitOperator.IsNumber(item.Width))chart.ExtendWidth.Right=item.Width;if(IFrameSplitOperator.IsBool(item.IsShowMultiDay))chart.IsShowMultiDayAfterData=item.IsShowMultiDay;if(IFrameSplitOperator.IsNumber(item.MulitiDayWidth))chart.MultiDayExtendWidth.Right=item.MulitiDayWidth;}if(!option.Listener)option.Listener={KeyDown:false,Wheel:false};chart.Create(windowsCount,option.Listener);//创建子窗口
@@ -2522,7 +2523,7 @@ this.UpdateTradeStatusData=function(data,option){if(option){//是否清空
2522
2523
  if(option.IsClear===true)this.GlobalOption.TradeStatus=null;}if(!data)return false;if(IFrameSplitOperator.IsNumber(data.Date)&&IFrameSplitOperator.IsNumber(data.Time)&&IFrameSplitOperator.IsNumber(data.Status)){this.GlobalOption.TradeStatus={Date:data.Date,Time:data.Time,Status:data.Status};return true;}return false;};//键盘下按暂停更新
2523
2524
  this.IsPauseUpdateByKeyboard=function(){if(!this.IsPressKeyboard)return false;if(!this.PressKeyboardConfig)return false;if(!this.PressKeyboardConfig.PauseUpdate)return false;return true;},//启动|关闭锁指标 aryIndex=[{ IndexID:指标ID, LockData:{IsLocked:} } ]
2524
2525
  this.EnableLockIndex=function(aryIndex){if(!IFrameSplitOperator.IsNonEmptyArray(aryIndex))return false;var mapIndex=new _map2.default();for(var i=0;i<aryIndex.length;++i){var item=aryIndex[i];if(item.IndexID&&item.LockData)mapIndex.set(item.IndexID,item);}var aryUpdate=[];for(var i=0;i<this.WindowIndex.length;++i){var item=this.WindowIndex[i];if(!item)continue;if(mapIndex.has(item.ID)){var mapItem=mapIndex.get(item.ID);item.SetLock(mapItem.LockData);//设置锁
2525
- aryUpdate.push({ID:i});}}for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i];if(!IFrameSplitOperator.IsNonEmptyArray(item.OverlayIndex))continue;for(var j=0;j<item.OverlayIndex.length;++j){var overlayItem=item.OverlayIndex[j];var script=overlayItem.Script;if(mapIndex.has(script.ID)){var mapItem=mapIndex.get(script.ID);script.SetLock(mapItem.LockData);aryUpdate.push({OverlayID:overlayItem.Identify});}}}if(!IFrameSplitOperator.IsNonEmptyArray(aryUpdate))return false;this.UpdateWindowIndexV2(aryUpdate);return true;};this.TryClickLock=function(x,y){if(!this.Frame||!IFrameSplitOperator.IsNonEmptyArray(this.Frame.SubFrame))return false;for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i];var chartLock=item.Frame.LockPaint;if(!chartLock||!chartLock.LockRect)continue;var tooltip=new TooltipData();if(!chartLock.GetTooltipData(x,y,tooltip))continue;tooltip.HQChart=this;var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_INDEX_LOCK);if(event&&event.Callback){var sendData={FrameID:item.Frame.Identify,Data:tooltip};event.Callback(event,sendData,this);}if(tooltip.Data.Callback)tooltip.Data.Callback(tooltip);return true;}return false;};this.RecvOverlayIndex=function(identify,data){var overlayIndex=this.GetOverlayIndexByIdentify(identify);if(overlayIndex==null){console.warn('[JSChartContainer::RecvOverlayIndex] can\'t find overlay index. [identify='+identify+']');return;}var script=overlayIndex.OverlayItem.Script;if(!script)return;if(typeof script.RecvSubscribeData!="function")return;var kData=this.GetKData();if(!kData)return;script.RecvSubscribeData(data,this,overlayIndex.WindowIndex,kData);};}function GetDevicePixelRatio(){if(typeof window=='undefined')return 1;return window.devicePixelRatio||1;}function GetFontHeight(context,font,word){if(!context)return null;if(font)context.font=font;var text='擎';if(IFrameSplitOperator.IsString(word))text=word;var fontInfo=context.measureText(text);var textHeight=fontInfo.fontBoundingBoxAscent+fontInfo.fontBoundingBoxDescent;if(!IFrameSplitOperator.IsNumber(textHeight))textHeight=fontInfo.width+2*GetDevicePixelRatio();return textHeight;}function IsPhoneWeb(){var userAgentInfo=navigator.userAgent;var Agents=new Array("Android","iPhone","SymbianOS","Windows Phone","iPad","iPod");for(var v=0;v<Agents.length;v++){if(userAgentInfo.indexOf(Agents[v])>0)return true;}return false;}function OnKeyDown(e)//键盘事件
2526
+ aryUpdate.push({ID:i});}}for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i];if(!IFrameSplitOperator.IsNonEmptyArray(item.OverlayIndex))continue;for(var j=0;j<item.OverlayIndex.length;++j){var overlayItem=item.OverlayIndex[j];var script=overlayItem.Script;if(mapIndex.has(script.ID)){var mapItem=mapIndex.get(script.ID);script.SetLock(mapItem.LockData);aryUpdate.push({OverlayID:overlayItem.Identify});}}}if(!IFrameSplitOperator.IsNonEmptyArray(aryUpdate))return false;this.UpdateWindowIndexV2(aryUpdate);return true;};this.TryClickLock=function(x,y){if(!this.Frame||!IFrameSplitOperator.IsNonEmptyArray(this.Frame.SubFrame))return false;for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i];var chartLock=item.Frame.LockPaint;if(!chartLock||!chartLock.LockRect)continue;var tooltip=new TooltipData();if(!chartLock.GetTooltipData(x,y,tooltip))continue;tooltip.HQChart=this;var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_INDEX_LOCK);if(event&&event.Callback){var sendData={FrameID:item.Frame.Identify,Data:tooltip};event.Callback(event,sendData,this);}if(tooltip.Data.Callback)tooltip.Data.Callback(tooltip);return true;}return false;};this.RecvOverlayIndex=function(identify,data){var overlayIndex=this.GetOverlayIndexByIdentify(identify);if(overlayIndex==null){console.warn('[JSChartContainer::RecvOverlayIndex] can\'t find overlay index. [identify='+identify+']');return;}var script=overlayIndex.OverlayItem.Script;if(!script)return;if(typeof script.RecvSubscribeData!="function")return;var kData=this.GetKData();if(!kData)return;script.RecvSubscribeData(data,this,overlayIndex.WindowIndex,kData);};this.UpdateIndexTemporaryAttribute=function(windowIndex,aryAttribute){if(windowIndex<0)return;if(!IFrameSplitOperator.IsNonEmptyArray(aryAttribute))return;if(!this.Frame||!IFrameSplitOperator.IsNonEmptyArray(this.Frame.SubFrame))return;var mainFrame=this.Frame.SubFrame[windowIndex].Frame;this.IndexTemporaryAttribute[windowIndex]=[];var aryTemporaryAttribute=this.IndexTemporaryAttribute[windowIndex];for(var i=0;i<aryAttribute.length;++i){var item=aryAttribute[i];if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.BOTTOMSPACE){var backup=mainFrame.ChartBorder.BottomSpace;mainFrame.ChartBorder.BottomSpace=item.Value;aryTemporaryAttribute.push({Name:item.Name,Value:item.Value,BackupValue:backup});}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.TOPSPACE){var backup=mainFrame.ChartBorder.TopSpace;mainFrame.ChartBorder.TopSpace=item.Value;aryTemporaryAttribute.push({Name:item.Name,Value:item.Value,BackupValue:backup});}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SHOWLEFTTEXT){var backup=mainFrame.YSplitOperator.IsShowLeftText;mainFrame.YSplitOperator.IsShowLeftText=item.Value;aryTemporaryAttribute.push({Name:item.Name,Value:item.Value,BackupValue:backup});}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SHOWRIGHTTEXT){var backup=mainFrame.YSplitOperator.IsShowRightText;mainFrame.YSplitOperator.IsShowRightText=item.Value;aryTemporaryAttribute.push({Name:item.Name,Value:item.Value,BackupValue:backup});}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SPLITTYPE){var backup=mainFrame.YSplitOperator.SplitType;mainFrame.YSplitOperator.SplitType=item.Value;aryTemporaryAttribute.push({Name:item.Name,Value:item.Value,BackupValue:backup});}}};this.RestoreIndexTemporaryAttribute=function(windowIndex){if(windowIndex<0)return;if(!this.Frame||!IFrameSplitOperator.IsNonEmptyArray(this.Frame.SubFrame))return;var aryTemporaryAttribute=this.IndexTemporaryAttribute[windowIndex];if(!IFrameSplitOperator.IsNonEmptyArray(aryTemporaryAttribute))return;var mainFrame=this.Frame.SubFrame[windowIndex].Frame;for(var i=0;i<aryTemporaryAttribute.length;++i){var item=aryTemporaryAttribute[i];if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.BOTTOMSPACE){mainFrame.ChartBorder.BottomSpace=item.BackupValue;}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.TOPSPACE){mainFrame.ChartBorder.TopSpace=item.BackupValue;}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SHOWLEFTTEXT){mainFrame.YSplitOperator.IsShowLeftText=item.BackupValue;}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SHOWRIGHTTEXT){mainFrame.YSplitOperator.IsShowRightText=item.BackupValue;}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SPLITTYPE){mainFrame.YSplitOperator.SplitType=item.BackupValue;}}};}function GetDevicePixelRatio(){if(typeof window=='undefined')return 1;return window.devicePixelRatio||1;}function GetFontHeight(context,font,word){if(!context)return null;if(font)context.font=font;var text='擎';if(IFrameSplitOperator.IsString(word))text=word;var fontInfo=context.measureText(text);var textHeight=fontInfo.fontBoundingBoxAscent+fontInfo.fontBoundingBoxDescent;if(!IFrameSplitOperator.IsNumber(textHeight))textHeight=fontInfo.width+2*GetDevicePixelRatio();return textHeight;}function IsPhoneWeb(){var userAgentInfo=navigator.userAgent;var Agents=new Array("Android","iPhone","SymbianOS","Windows Phone","iPad","iPod");for(var v=0;v<Agents.length;v++){if(userAgentInfo.indexOf(Agents[v])>0)return true;}return false;}function OnKeyDown(e)//键盘事件
2526
2527
  {if(this.JSChartContainer&&this.JSChartContainer.OnKeyDown)this.JSChartContainer.OnKeyDown(e);}function OnKeyUp(e)//键盘事件
2527
2528
  {if(this.JSChartContainer&&this.JSChartContainer.OnKeyUp)this.JSChartContainer.OnKeyUp(e);}function OnWheel(e)//上下滚动事件
2528
2529
  {if(this.JSChartContainer&&this.JSChartContainer.OnWheel)this.JSChartContainer.OnWheel(e);}function ToFixed(number,precision){var b=1;if(isNaN(number))return number;if(number<0)b=-1;var multiplier=Math.pow(10,precision);var value=Math.round(Math.abs(number)*multiplier)/multiplier*b;if(/^(\d+(?:\.\d+)?)(e)([\-]?\d+)$/.test(value))var s=value.toFixed2(precision);else var s=value.toString();var rs=s.indexOf('.');if(rs<0&&precision>0){rs=s.length;s+='.';}while(s.length<=rs+precision){s+='0';}return s;}function IsRectOverlap(rt,rt2){if(Math.max(rt.Left,rt2.Left)<Math.min(rt.Right,rt2.Right)&&Math.max(rt.Top,rt2.Top)<Math.min(rt.Bottom,rt2.Bottom))return true;return false;}//获取文字高度和宽度
@@ -7476,7 +7477,7 @@ Point:{Color:"rgb(65,105,225)",Radius:2*GetDevicePixelRatio()},CloseIcon:{Family
7476
7477
  LineColor:"rgb(50,171,205)",//集合竞价线段颜色
7477
7478
  VolColor:["rgb(192,192,0)"],//成交量其他的颜色 colorID=3 开始
7478
7479
  AvPriceColor:'rgb(190,190,190)',//均线
7479
- Point:{Color:"rgb(65,105,225)",Radius:2*GetDevicePixelRatio()}};this.Minute.NightDay={NightBGColor:"rgba(0,0,0,0.2)",Font:12*GetDevicePixelRatio()+'px \u5FAE\u8F6F\u96C5\u9ED1',Day:{Color:"rgb(0,0,0)",BGColor:"rgb(179,179,179)",BorderColor:"rgb(179,179,179)",Margin:{Left:5,Top:2,Bottom:2,Right:5}},Night:{Color:"rgb(0,0,0)",BGColor:"rgb(179,179,179)",BorderColor:"rgb(179,179,179)",Margin:{Left:5,Top:2,Bottom:2,Right:5}}};this.Minute.BuySellBar={BuyColor:"rgb(242,54,69)",SellColor:"rgb(8,153,129)",BarWidth:4*GetDevicePixelRatio(),MaxBarWidth:120,YOffset:1,Font:12*GetDevicePixelRatio()+'px \u5FAE\u8F6F\u96C5\u9ED1',TextColor:"rgb(128,128,128)",AryBarRange:[{Start:240,End:120},{Start:120,End:0}]};this.Minute.MaxMinText={IsShow:false,//是否显示最大最小价格
7480
+ Point:{Color:"rgb(65,105,225)",Radius:2*GetDevicePixelRatio()}};this.Minute.NightDay={NightBGColor:"rgba(0,0,0,0.2)",Font:12*GetDevicePixelRatio()+'px \u5FAE\u8F6F\u96C5\u9ED1',Day:{Color:"rgb(0,0,0)",BGColor:"rgb(179,179,179)",BorderColor:"rgb(179,179,179)",Margin:{Left:5,Top:2,Bottom:2,Right:5}},Night:{Color:"rgb(0,0,0)",BGColor:"rgb(179,179,179)",BorderColor:"rgb(179,179,179)",Margin:{Left:5,Top:2,Bottom:2,Right:5}}};this.Minute.BuySellBar={BuyColor:"rgb(242,54,69)",SellColor:"rgb(8,153,129)",BarWidth:2*GetDevicePixelRatio(),MaxBarWidth:120,YOffset:1,Font:12*GetDevicePixelRatio()+'px \u5FAE\u8F6F\u96C5\u9ED1',TextColor:"rgb(128,128,128)",AryBarRange:[{Start:240,End:120},{Start:120,End:0}]};this.Minute.MaxMinText={IsShow:false,//是否显示最大最小价格
7480
7481
  Font:10*GetDevicePixelRatio()+'px \u5FAE\u8F6F\u96C5\u9ED1',//字体
7481
7482
  Max:{Color:"rgb(255,0,0)",YOffset:-5*GetDevicePixelRatio()},//最大值颜色
7482
7483
  Min:{Color:"rgb(0,255,0)",YOffset:5*GetDevicePixelRatio()},//最小值颜色
@@ -8898,7 +8899,7 @@ this.LockCorssCursor=function(option){if(option&&option.KItem)//指定日期时
8898
8899
  {var kData=this.GetKData();if(!kData||!IFrameSplitOperator.IsNonEmptyArray(kData.Data))return false;var kItem={Date:option.KItem.Date,Time:option.KItem.Time,Index:-1};kData.FindDataIndexByDateTime([kItem]);if(kItem.Index<0)return false;var xItem=this.GlobalOption.LockCorssCursor.X;xItem.KLine={DataIndex:kItem.Index,Date:kItem.Date,Time:kItem.Time};xItem.Enable=true;}else{if(this.CursorIndex<0)return false;var kData=this.GetKData();if(!kData||!IFrameSplitOperator.IsNonEmptyArray(kData.Data))return false;var dataIndex=kData.DataOffset+parseInt(this.CursorIndex.toFixed(0));var kItem=kData.Data[dataIndex];if(!kItem)return false;var xItem=this.GlobalOption.LockCorssCursor.X;xItem.KLine={DataIndex:dataIndex,Date:kItem.Date,Time:kItem.Time};xItem.Enable=true;}if(option&&option.Draw)this.Draw();return true;};this.GetCorssCursorPosition=function(){var position={LastPoint:{X:this.LastPoint.X,Y:this.LastPoint.Y},CursorIndex:this.CursorIndex};if(!this.GlobalOption||!this.GlobalOption.LockCorssCursor)return position;var xItem=this.GlobalOption.LockCorssCursor.X;if(xItem.Enable&&xItem.KLine){var kData=this.GetKData();if(!kData||!IFrameSplitOperator.IsNonEmptyArray(kData.Data))return position;position.CursorIndex=xItem.KLine.DataIndex-kData.DataOffset;position.LastPoint.X=this.Frame.GetXFromIndex(position.CursorIndex,false);var border=this.Frame.ChartBorder.GetBorder();if(position.LastPoint.Y<border.Top||position.LastPoint.Y>border.Bottom)//超出图形框子, 调整为收盘价
8899
8900
  {var kItem=kData.Data[xItem.KLine.DataIndex];var y=this.Frame.SubFrame[0].Frame.GetYFromData(kItem.Close);position.LastPoint.Y=y;}}return position;};this.GetDateTimeByPoint=function(x,y){var clientPos=this.PtInClient(x,y);if(clientPos<0)return null;if(!IFrameSplitOperator.IsNumber(x))return;if(!IFrameSplitOperator.IsNonEmptyArray(this.Frame.SubFrame))return null;var frame=this.Frame.SubFrame[0].Frame;if(!frame)return null;var kData=this.GetKData();if(!kData||!IFrameSplitOperator.IsNonEmptyArray(kData.Data))return null;var index=parseInt(frame.GetXData(x));var dataIndex=index+kData.DataOffset;if(dataIndex<0||dataIndex>=kData.Data.length)return null;var kItem=kData.Data[dataIndex];if(!kItem)return null;var result={Date:kItem.Date,Time:kItem.Time,DataIndex:dataIndex,Index:index,ClientPos:clientPos};return result;};//修正十字光标位置有效的K线
8900
8901
  this.FixCursorIndexValid=function(){var kData=this.GetKData();if(!kData||!IFrameSplitOperator.IsNonEmptyArray(kData.Data))return false;var dataIndex=this.CursorIndex+kData.DataOffset;if(dataIndex>=kData.Data.length){this.CursorIndex=kData.Data.length-kData.DataOffset-1;return true;}return false;};//option={ FrameID:, Enable: }
8901
- this.EnableZoomYCoordinate=function(option){if(!option)return false;if(!IFrameSplitOperator.IsNumber(option.FrameID))return false;if(!IFrameSplitOperator.IsBool(option.Enable))return false;if(!IFrameSplitOperator.IsNonEmptyArray(this.Frame.SubFrame))return false;if(option.FrameID<0||option.FrameID>this.Frame.SubFrame.length)return false;var item=this.Frame.SubFrame[option.FrameID];if(!item||!item.Frame||!item.Frame.YSplitOperator)return false;var frame=item.Frame;var splitOper=frame.YSplitOperator;if(option.Enable){var max=frame.HorizontalMax,min=frame.HorizontalMin;if(!IFrameSplitOperator.IsNumber(max)||!IFrameSplitOperator.IsNumber(min))return false;splitOper.FixedYMaxMin={Max:max,Min:min};splitOper.EnableZoomUpDown=true;frame.XYSplit=true;this.ChartDragSelectRect.EnableLButton=false;}else{splitOper.FixedYMaxMin=null;splitOper.EnableZoomUpDown=false;frame.XYSplit=true;}this.Draw();};this.UpdateIndexTemporaryAttribute=function(windowIndex,aryAttribute){if(windowIndex<0)return;if(!IFrameSplitOperator.IsNonEmptyArray(aryAttribute))return;if(!this.Frame||!IFrameSplitOperator.IsNonEmptyArray(this.Frame.SubFrame))return;var mainFrame=this.Frame.SubFrame[windowIndex].Frame;this.IndexTemporaryAttribute[windowIndex]=[];var aryTemporaryAttribute=this.IndexTemporaryAttribute[windowIndex];for(var i=0;i<aryAttribute.length;++i){var item=aryAttribute[i];if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.BOTTOMSPACE){var backup=mainFrame.ChartBorder.BottomSpace;mainFrame.ChartBorder.BottomSpace=item.Value;aryTemporaryAttribute.push({Name:item.Name,Value:item.Value,BackupValue:backup});}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.TOPSPACE){var backup=mainFrame.ChartBorder.TopSpace;mainFrame.ChartBorder.TopSpace=item.Value;aryTemporaryAttribute.push({Name:item.Name,Value:item.Value,BackupValue:backup});}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SHOWLEFTTEXT){var backup=mainFrame.YSplitOperator.IsShowLeftText;mainFrame.YSplitOperator.IsShowLeftText=item.Value;aryTemporaryAttribute.push({Name:item.Name,Value:item.Value,BackupValue:backup});}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SHOWRIGHTTEXT){var backup=mainFrame.YSplitOperator.IsShowRightText;mainFrame.YSplitOperator.IsShowRightText=item.Value;aryTemporaryAttribute.push({Name:item.Name,Value:item.Value,BackupValue:backup});}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SPLITTYPE){var backup=mainFrame.YSplitOperator.SplitType;mainFrame.YSplitOperator.SplitType=item.Value;aryTemporaryAttribute.push({Name:item.Name,Value:item.Value,BackupValue:backup});}}};this.RestoreIndexTemporaryAttribute=function(windowIndex){if(windowIndex<0)return;if(!this.Frame||!IFrameSplitOperator.IsNonEmptyArray(this.Frame.SubFrame))return;var aryTemporaryAttribute=this.IndexTemporaryAttribute[windowIndex];if(!IFrameSplitOperator.IsNonEmptyArray(aryTemporaryAttribute))return;var mainFrame=this.Frame.SubFrame[windowIndex].Frame;for(var i=0;i<aryTemporaryAttribute.length;++i){var item=aryTemporaryAttribute[i];if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.BOTTOMSPACE){mainFrame.ChartBorder.BottomSpace=item.BackupValue;}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.TOPSPACE){mainFrame.ChartBorder.TopSpace=item.BackupValue;}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SHOWLEFTTEXT){mainFrame.YSplitOperator.IsShowLeftText=item.BackupValue;}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SHOWRIGHTTEXT){mainFrame.YSplitOperator.IsShowRightText=item.BackupValue;}else if(item.Name==JSCHART_TEMPORARY_ATTRIBUTE.MAINFRAME.SPLITTYPE){mainFrame.YSplitOperator.SplitType=item.BackupValue;}}};}//API 返回数据 转化为array[]
8902
+ this.EnableZoomYCoordinate=function(option){if(!option)return false;if(!IFrameSplitOperator.IsNumber(option.FrameID))return false;if(!IFrameSplitOperator.IsBool(option.Enable))return false;if(!IFrameSplitOperator.IsNonEmptyArray(this.Frame.SubFrame))return false;if(option.FrameID<0||option.FrameID>this.Frame.SubFrame.length)return false;var item=this.Frame.SubFrame[option.FrameID];if(!item||!item.Frame||!item.Frame.YSplitOperator)return false;var frame=item.Frame;var splitOper=frame.YSplitOperator;if(option.Enable){var max=frame.HorizontalMax,min=frame.HorizontalMin;if(!IFrameSplitOperator.IsNumber(max)||!IFrameSplitOperator.IsNumber(min))return false;splitOper.FixedYMaxMin={Max:max,Min:min};splitOper.EnableZoomUpDown=true;frame.XYSplit=true;this.ChartDragSelectRect.EnableLButton=false;}else{splitOper.FixedYMaxMin=null;splitOper.EnableZoomUpDown=false;frame.XYSplit=true;}this.Draw();};}//API 返回数据 转化为array[]
8902
8903
  KLineChartContainer.JsonDataToHistoryData=function(data){var aryDayData=[];if(!data.data)return aryDayData;var upperSymbol=null;if(data.symbol)upperSymbol=data.symbol.toUpperCase();var isFutures=false;//是否是期货
8903
8904
  if(upperSymbol)isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol);var list=data.data;var date=0,yclose=1,open=2,high=3,low=4,close=5,vol=6,amount=7,position=8;var fclose=9,yfclose=10;//结算价, 前结算价
8904
8905
  var bfactor=11,afactor=12;//前, 后复权因子
@@ -9000,7 +9001,8 @@ item.Amount=tick[5];item.Flag=tick[6];aryDayData.push(item);if(tick[extendDataIn
9000
9001
  // 走势图
9001
9002
  //
9002
9003
  function MinuteChartContainer(uielement,offscreenElement,cacheElement){this.newMethod=JSChartContainer;//派生
9003
- this.newMethod(uielement,offscreenElement,cacheElement);delete this.newMethod;this.ClassName='MinuteChartContainer';this.WindowIndex=new Array();this.Symbol;this.AryDate;//日期列表[]
9004
+ this.newMethod(uielement,offscreenElement,cacheElement);delete this.newMethod;this.ClassName='MinuteChartContainer';this.WindowIndex=[];this.IndexTemporaryAttribute=[];//指标临时属性,切换指标时会清除
9005
+ this.Symbol;this.AryDate;//日期列表[]
9004
9006
  this.Name;this.SourceData;//原始的历史数据
9005
9007
  this.IndexBindData;//计算指标需要绑定的分钟数据
9006
9008
  this.IsAutoUpdate=true;//是否自动更新行情数据
@@ -9300,13 +9302,17 @@ var minuteLine=g_ChartPaintFactory.Create("ChartMinutePriceLine");minuteLine.Can
9300
9302
  var averageLine=new ChartMinutePriceLine();averageLine.Canvas=this.Canvas;averageLine.ChartBorder=this.Frame.SubFrame[0].Frame.ChartBorder;averageLine.ChartFrame=this.Frame.SubFrame[0].Frame;averageLine.Name="Minute-Average-Line";averageLine.Identify="Minute-Average-Line";averageLine.Color=g_JSChartResource.Minute.AvPriceColor;averageLine.IsDrawArea=false;this.ChartPaint[1]=averageLine;//成交量
9301
9303
  var volLine=g_ChartPaintFactory.Create("ChartMinuteVolumBar");volLine.Color=g_JSChartResource.Minute.VolBarColor;volLine.Canvas=this.Canvas;volLine.ChartBorder=this.Frame.SubFrame[1].Frame.ChartBorder;volLine.ChartFrame=this.Frame.SubFrame[1].Frame;volLine.Name="Minute-Vol-Bar";volLine.Identify="Minute-Vol-Bar";volLine.ShareAfterVol=this.ShareAfterVol;this.ChartPaint[2]=volLine;var buySellBar=g_ChartPaintFactory.Create("ChartMinuteBuySellBar");buySellBar.Canvas=this.Canvas;buySellBar.ChartBorder=this.Frame.SubFrame[0].Frame.ChartBorder;buySellBar.ChartFrame=this.Frame.SubFrame[0].Frame;buySellBar.Name="Minute-BuySell-Bar";buySellBar.Identify="Minute-BuySell-Bar";buySellBar.BuySellData=this.BuySellData;buySellBar.HQChart=this;this.ChartPaint[3]=buySellBar;this.TitlePaint[0]=new DynamicMinuteTitlePainting();this.TitlePaint[0].Frame=this.Frame.SubFrame[0].Frame;this.TitlePaint[0].Canvas=this.Canvas;this.TitlePaint[0].OverlayChartPaint=this.OverlayChartPaint;//绑定叠加
9302
9304
  this.TitlePaint[0].LanguageID=this.LanguageID;this.TitlePaint[0].CallAcutionXOperator=new CallAcutionXOperator();this.TitlePaint[0].CallAcutionXOperator.Frame=this.Frame.SubFrame[0].Frame;this.TitlePaint[0].HQChart=this;};//切换成 脚本指标
9303
- this.ChangeScriptIndex=function(windowIndex,indexData,option){this.DeleteIndexPaint(windowIndex,true);this.WindowIndex[windowIndex]=new ScriptIndex(indexData.Name,indexData.Script,indexData.Args,indexData);//脚本执行
9304
- var bindData=this.SourceData;this.BindIndexData(windowIndex,bindData);//执行脚本
9305
+ this.ChangeScriptIndex=function(windowIndex,indexData,option){this.DeleteIndexPaint(windowIndex,true);this.RestoreIndexTemporaryAttribute(windowIndex);//恢复临时属性
9306
+ this.WindowIndex[windowIndex]=new ScriptIndex(indexData.Name,indexData.Script,indexData.Args,indexData);//脚本执行
9307
+ if(option){if(option.AryTemporaryAttribute){this.UpdateIndexTemporaryAttribute(windowIndex,option.AryTemporaryAttribute);//指标临时属性
9308
+ }}var bindData=this.SourceData;this.BindIndexData(windowIndex,bindData);//执行脚本
9305
9309
  this.UpdataDataoffset();//更新数据偏移
9306
9310
  this.UpdateFrameMaxMin();//调整坐标最大 最小值
9307
9311
  this.Draw();};//切换api指标
9308
- this.ChangeAPIIndex=function(windowIndex,indexData){this.DeleteIndexPaint(windowIndex,true);//使用API挂接指标数据 API:{ Name:指标名字, Script:指标脚本可以为空, Args:参数可以为空, Url:指标执行地址 }
9309
- var apiItem=indexData.API;this.WindowIndex[windowIndex]=new APIScriptIndex(apiItem.Name,apiItem.Script,apiItem.Args,indexData);if(indexData){if(indexData.Window)this.SetFrameToolbar(windowIndex,indexData.Window);}this.Frame.ClearUpDonwFrameYData({Index:windowIndex});var bindData=this.ChartPaint[0].Data;this.BindIndexData(windowIndex,bindData);//执行脚本
9312
+ this.ChangeAPIIndex=function(windowIndex,indexData){this.DeleteIndexPaint(windowIndex,true);this.RestoreIndexTemporaryAttribute(windowIndex);//恢复临时属性
9313
+ //使用API挂接指标数据 API:{ Name:指标名字, Script:指标脚本可以为空, Args:参数可以为空, Url:指标执行地址 }
9314
+ var apiItem=indexData.API;this.WindowIndex[windowIndex]=new APIScriptIndex(apiItem.Name,apiItem.Script,apiItem.Args,indexData);if(indexData){if(indexData.Window)this.SetFrameToolbar(windowIndex,indexData.Window);if(indexData.AryTemporaryAttribute){this.UpdateIndexTemporaryAttribute(windowIndex,indexData.AryTemporaryAttribute);//指标临时属性
9315
+ }}this.Frame.ClearUpDonwFrameYData({Index:windowIndex});var bindData=this.ChartPaint[0].Data;this.BindIndexData(windowIndex,bindData);//执行脚本
9310
9316
  this.UpdataDataoffset();//更新数据偏移
9311
9317
  this.UpdateFrameMaxMin();//调整坐标最大 最小值
9312
9318
  this.Draw();};this.ChangeIndex=function(windowIndex,indexName,option){if(windowIndex===1)return;if(!IFrameSplitOperator.IsNonEmptyArray(this.Frame.SubFrame))return;if(windowIndex>=this.Frame.SubFrame.length)return;if(option&&option.API)return this.ChangeAPIIndex(windowIndex,option);//查找系统指标
@@ -9323,12 +9329,14 @@ for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i].Fr
9323
9329
  this.Draw();};this.ChangeIndexTemplate=function(option)//切换指标模板 可以设置指标窗口个数 每个窗口的指标, 只能从第3个指标窗口开始设置,前面2个指标窗口固定无法设置
9324
9330
  {var _this40=this;if(!option)return;this.Frame.RestoreIndexWindows();var windows=[null,null];if(IFrameSplitOperator.IsNonEmptyArray(option.Windows))windows.push.apply(windows,(0,_toConsumableArray3.default)(option.Windows));if(option.MainWindow)windows[0]=option.MainWindow;var count=windows.length;var currentLength=this.Frame.SubFrame.length;var dayCount=null,symbol=null;if(IFrameSplitOperator.IsNumber(option.DayCount)&&option.DayCount!=this.DayCount)dayCount=option.DayCount;//天数
9325
9331
  if(option.Symbol)symbol=option.Symbol;var bRefreshData=dayCount!=null||symbol!=null;//清空所有的指标图型
9326
- for(var i=0;i<windows.length;++i){this.DeleteIndexPaint(i);var frame=this.Frame.SubFrame[i];if(!frame)continue;frame.YSpecificMaxMin=null;frame.YSplitScale=null;}if(currentLength>count){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DELETE_FRAME);for(var i=currentLength-1;i>=count;--i){this.Frame.SubFrame[i].Frame.ClearToolbar();if(event&&event.Callback){var sendData={SubFrame:this.Frame.SubFrame[i],WindowIndex:i};event.Callback(event,sendData,this);}}this.Frame.SubFrame.splice(count,currentLength-count);this.WindowIndex.splice(count,currentLength-count);this.TitlePaint.splice(count+1,currentLength-count);}else{for(var i=currentLength;i<count;++i)//创建新的指标窗口
9332
+ for(var i=0;i<windows.length;++i){this.DeleteIndexPaint(i);var frame=this.Frame.SubFrame[i];if(!frame)continue;this.RestoreIndexTemporaryAttribute(i);//恢复临时属性
9333
+ frame.YSpecificMaxMin=null;frame.YSplitScale=null;}if(currentLength>count){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DELETE_FRAME);for(var i=currentLength-1;i>=count;--i){this.Frame.SubFrame[i].Frame.ClearToolbar();if(event&&event.Callback){var sendData={SubFrame:this.Frame.SubFrame[i],WindowIndex:i};event.Callback(event,sendData,this);}}this.Frame.SubFrame.splice(count,currentLength-count);this.WindowIndex.splice(count,currentLength-count);this.TitlePaint.splice(count+1,currentLength-count);}else{for(var i=currentLength;i<count;++i)//创建新的指标窗口
9327
9334
  {var subFrame=this.CreateSubFrameItem(i);this.Frame.SubFrame[i]=subFrame;var titlePaint=new DynamicChartTitlePainting();titlePaint.Frame=this.Frame.SubFrame[i].Frame;titlePaint.Canvas=this.Canvas;titlePaint.LanguageID=this.LanguageID;titlePaint.GetEventCallback=function(id){return _this40.GetEventCallback(id);};titlePaint.SelectedChart=this.SelectedChart;titlePaint.MainTitlePaint=this.TitlePaint[0];titlePaint.HQChart=this;this.TitlePaint[i+1]=titlePaint;}}for(var i=0;i<count;++i){var windowIndex=i;var item=null,frameItem=null;if(option.Frame&&option.Frame.length>i)frameItem=option.Frame[windowIndex];item=windows[i];var titleIndex=windowIndex+1;this.TitlePaint[titleIndex].Data=[];this.TitlePaint[titleIndex].Title=null;if(item){if(item.Script)//自定义指标脚本
9328
9335
  {this.WindowIndex[windowIndex]=new ScriptIndex(item.Name,item.Script,item.Args,item);//脚本执行
9329
9336
  }else if(item.API)//后台指标
9330
9337
  {var apiItem=item.API;this.WindowIndex[windowIndex]=new APIScriptIndex(apiItem.Name,apiItem.Script,apiItem.Args,item);}else{var indexID=item.Index;var indexItem=JSIndexMap.Get(indexID);if(indexItem){this.WindowIndex[windowIndex]=indexItem.Create();this.CreateWindowIndex(windowIndex);}else{var systemScript=new JSIndexScript();var indexInfo=systemScript.Get(indexID);if(indexInfo){JSIndexScript.ModifyAttribute(indexInfo,item);this.WindowIndex[windowIndex]=new ScriptIndex(indexInfo.Name,indexInfo.Script,indexInfo.Args,indexInfo);//脚本执行
9331
- }}}}this.SetSubFrameAttribute(this.Frame.SubFrame[windowIndex],item,frameItem);}//清空叠加指标
9338
+ }}}}this.SetSubFrameAttribute(this.Frame.SubFrame[windowIndex],item,frameItem);this.UpdateIndexTemporaryAttribute(windowIndex,item.AryTemporaryAttribute);//指标临时属性
9339
+ }//清空叠加指标
9332
9340
  for(var i=0;i<this.Frame.SubFrame.length;++i){this.DeleteWindowsOverlayIndex(i);}//最后一个显示X轴坐标
9333
9341
  for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i].Frame;if(i==this.Frame.SubFrame.length-1)item.XSplitOperator.ShowText=true;else item.XSplitOperator.ShowText=false;}//叠加指标
9334
9342
  var aryOverlayIndex=[];if(IFrameSplitOperator.IsNonEmptyArray(option.OverlayIndex)){for(var i=0;i<option.OverlayIndex.length;++i){var item=option.OverlayIndex[i];if(item.Index)item.IndexName=item.Index;if(item.Windows>=0)item.WindowIndex=item.Windows;var overlay=this.CreateOverlayWindowsIndex(item);if(!overlay)continue;aryOverlayIndex.push({WindowsIndex:item.WindowIndex,Overlay:overlay});}}this.Frame.SetSizeChage(true);if(!bRefreshData){if(!this.SourceData)//无数据 不需要执行指标
@@ -10084,7 +10092,7 @@ function NewsInfo(){this.newMethod=IKLineInfo;//派生
10084
10092
  this.newMethod();delete this.newMethod;this.ClassName='NewsInfo';this.Explain='新闻';this.RecvData=function(recvData,param){if(!recvData||!IFrameSplitOperator.IsNonEmptyArray(recvData.list))return;for(var i=0;i<recvData.list.length;++i){var item=recvData.list[i];var infoData=new KLineInfoData();infoData.ID=item.id;infoData.Date=item.date;infoData.InfoType=KLINE_INFO_TYPE.NEWS;infoData.Title=item.title;infoData.ExtendData={Type:item.type,url:item.url};this.Data.push(infoData);}param.HQChart.UpdataChartInfo();param.HQChart.Draw();};}//除权 2.0
10085
10093
  function DividendInfo(){this.newMethod=IKLineInfo;//派生
10086
10094
  this.newMethod();delete this.newMethod;this.ClassName='DividendInfo';this.Explain='除权';this.RecvData=function(recvData,param){if(!recvData||!IFrameSplitOperator.IsNonEmptyArray(recvData.list))return;for(var i=0;i<recvData.list.length;++i){var item=recvData.list[i];var infoData=new KLineInfoData();infoData.ID=item.id;infoData.Date=item.date;infoData.InfoType=KLINE_INFO_TYPE.DIVIDEND;infoData.Title=item.title;infoData.ExtendData={Type:item.type,url:item.url};this.Data.push(infoData);}param.HQChart.UpdataChartInfo();param.HQChart.Draw();};}function ExtendInfo(){this.newMethod=IKLineInfo;//派生
10087
- this.newMethod();delete this.newMethod;this.ClassName='ExtendInfo';this.Explain='扩展信息';this.RecvData=function(recvData,param){if(!recvData||!IFrameSplitOperator.IsNonEmptyArray(recvData.list))return;for(var i=0;i<recvData.list.length;++i){var item=recvData.list[i];var infoType=KLINE_INFO_TYPE.EXTEND_INFO_START;if(IFrameSplitOperator.IsNumber(item.infoType)){infoType=KLINE_INFO_TYPE.EXTEND_INFO_START+item.infoType;if(infoType>KLINE_INFO_TYPE.EXTEND_INFO_END)infoType=KLINE_INFO_TYPE.EXTEND_INFO_END;}var infoData=new KLineInfoData();infoData.ID=item.id;infoData.Date=item.date;infoData.InfoType=infoType;infoData.Title=item.title;infoData.ExtendData={Type:item.type,Data:item.data};this.ReadArrayText(infoData,item);this.Data.push(infoData);}param.HQChart.UpdataChartInfo();param.HQChart.Draw();};}function JSMinuteInfoMap(){}JSMinuteInfoMap.InfoMap=new _map2.default([["大盘异动",{Create:function Create(){return new MarketEventInfo();},ClassName:"MarketEventInfo"}],["新闻",{Create:function Create(){return new MinuteNewsInfo();},ClassName:"MinuteNewsInfo"}]]);JSMinuteInfoMap.Get=function(id){return JSMinuteInfoMap.InfoMap.get(id);};JSMinuteInfoMap.GetClassInfo=function(id){return JSMinuteInfoMap.Get(id);};function IMinuteInfo(){this.Data;this.ClassName='IMinuteInfo';this.Explain="";this.Clear=function(){this.Data=[];};this.ReadArrayText=function(infoData,recv){if(!IFrameSplitOperator.IsNonEmptyArray(recv.AryText))return;if(!infoData.ExtendData)infoData.ExtendData={};if(!Array.isArray(infoData.ExtendData.AryText))infoData.ExtendData.AryText=[];for(var i=0;i<recv.AryText.length;++i){var item=recv.AryText[i];var newItem={Name:item.Name,Type:item.Type};if(item.Text)newItem.Text=item.Text;if(item.Value)newItem.Value=item.Value;if(item.Color)newItem.Color=item.Color;infoData.ExtendData.AryText.push(newItem);}};this.RequestData=function(hqChart){var self=this;this.Data=[];var param={HQChart:hqChart};if(hqChart.NetworkFilter){var dataRange=null;//分时图数据范围
10095
+ this.newMethod();delete this.newMethod;this.ClassName='ExtendInfo';this.Explain='扩展信息';this.RecvData=function(recvData,param){if(!recvData||!IFrameSplitOperator.IsNonEmptyArray(recvData.list))return;for(var i=0;i<recvData.list.length;++i){var item=recvData.list[i];var infoType=KLINE_INFO_TYPE.EXTEND_INFO_START;if(IFrameSplitOperator.IsNumber(item.infoType)){infoType=KLINE_INFO_TYPE.EXTEND_INFO_START+item.infoType;if(infoType>KLINE_INFO_TYPE.EXTEND_INFO_END)infoType=KLINE_INFO_TYPE.EXTEND_INFO_END;}var infoData=new KLineInfoData();infoData.ID=item.id;infoData.Date=item.date;infoData.InfoType=infoType;infoData.Title=item.title;infoData.ExtendData={Type:item.type,Data:item.data};this.ReadArrayText(infoData,item);this.Data.push(infoData);}param.HQChart.UpdataChartInfo();param.HQChart.Draw();};}function JSMinuteInfoMap(){}JSMinuteInfoMap.InfoMap=new _map2.default([["大盘异动",{Create:function Create(){return new MarketEventInfo();},ClassName:"MarketEventInfo"}],["新闻",{Create:function Create(){return new MinuteNewsInfo();},ClassName:"MinuteNewsInfo"}]]);JSMinuteInfoMap.Get=function(id){return JSMinuteInfoMap.InfoMap.get(id);};JSMinuteInfoMap.GetClassInfo=function(id){return JSMinuteInfoMap.Get(id);};function IMinuteInfo(){this.Data;this.ClassName='IMinuteInfo';this.Explain="";this.Clear=function(){this.Data=[];};this.ReadArrayText=function(infoData,recv){if(!IFrameSplitOperator.IsNonEmptyArray(recv.AryText))return;if(!infoData.ExtendData)infoData.ExtendData={};if(!Array.isArray(infoData.ExtendData.AryText))infoData.ExtendData.AryText=[];for(var i=0;i<recv.AryText.length;++i){var item=recv.AryText[i];var newItem={Name:item.Name,Type:item.Type};if(item.Text)newItem.Text=item.Text;if(item.Value)newItem.Value=item.Value;if(item.Color)newItem.Color=item.Color;infoData.ExtendData.AryText.push(newItem);}};this.RequestData=function(hqChart){var self=this;var param={HQChart:hqChart};if(hqChart.NetworkFilter){var dataRange=null;//分时图数据范围
10088
10096
  var kData=hqChart.GetKData();if(kData)dataRange=kData.GetDateRange();var obj={Name:this.ClassName+'::RequestData',//类名::
10089
10097
  Explain:this.Explain,Request:{Data:{Date:hqChart.TradeDate,Symbol:hqChart.Symbol,symbol:hqChart.Symbol}},DateRange:dataRange,Self:this,HQChart:hqChart,PreventDefault:false};hqChart.NetworkFilter(obj,function(data){self.RecvData(data,param);param.HQChart.UpdataChartInfo();param.HQChart.Draw();});if(obj.PreventDefault==true)return;//已被上层替换,不调用默认的网络请求
10090
10098
  }JSConsole.Chart.Warn('[IMinuteInfo::RequestData] '+this.ClassName+' NetworkFilter error.');};}//////////////////////////////////////////////////////////////////////
@@ -10093,7 +10101,7 @@ Explain:this.Explain,Request:{Data:{Date:hqChart.TradeDate,Symbol:hqChart.Symbol
10093
10101
  // 结构 Ver=3.0 { Date:yyyyhhmm, Time:hhmm, Time2:hhmmss, Title:, Color:文字颜色(可选), BGColor:背景色(可选), Price:显示在哪个价格上(可选) , Data:外部数据(可选) }
10094
10102
  ////////////////////////////////////////////////////////////////////
10095
10103
  function MarketEventInfo(){this.newMethod=IMinuteInfo;//派生
10096
- this.newMethod();delete this.newMethod;this.ClassName='MarketEventInfo';this.Explain="异动信息";this.RecvData=function(recvData,param){if(recvData&&recvData.ver==3){this.RecvDataV3(recvData,param);return;}for(var i in recvData.event){var event=recvData.event[i];for(var j in event.data){var item=event.data[j];if(Array.isArray(item)){if(item.length<2)continue;var info={Date:event.date,Time:item[0],Title:item[1],Type:0};if(item.length>=3&&item[2]&&typeof item[2]=='string')info.Color=item[2];//[3]=字体颜色
10104
+ this.newMethod();delete this.newMethod;this.ClassName='MarketEventInfo';this.Explain="异动信息";this.RecvData=function(recvData,param){this.Data=[];if(recvData&&recvData.ver==3){this.RecvDataV3(recvData,param);return;}for(var i in recvData.event){var event=recvData.event[i];for(var j in event.data){var item=event.data[j];if(Array.isArray(item)){if(item.length<2)continue;var info={Date:event.date,Time:item[0],Title:item[1],Type:0};if(item.length>=3&&item[2]&&typeof item[2]=='string')info.Color=item[2];//[3]=字体颜色
10097
10105
  if(item.length>=4&&item[3]&&typeof item[3]=='string')info.BGColor=item[3];//[3]=背景颜色
10098
10106
  this.Data.push(info);}else//新格式
10099
10107
  {if(!IFrameSplitOperator.IsNumber(item.Date)||!IFrameSplitOperator.IsNumber(item.Time)||!item.Title)continue;var info={Date:item.Date,Time:item.Time,Title:item.Title,Type:0};if(item.Color)info.Color=item.Color;if(item.BGColor)info.BGColor=item.BGColor;if(IFrameSplitOperator.IsNumber(item.Price))info.Price=item.Price;if(item.Content)info.Content=item.Content;if(item.Link)info.Link=item.Link;this.Data.push(info);}}}param.HQChart.UpdataChartInfo();param.HQChart.Draw();};this.RecvDataV3=function(recvData,param){if(!recvData||!IFrameSplitOperator.IsNonEmptyArray(recvData.list))return;for(var i=0;i<recvData.list.length;++i){var item=recvData.list[i];var info={Date:item.Date,Time:item.Time,Title:item.Title,Type:0,ID:item.id};if(IFrameSplitOperator.IsNumber(item.Time2))info.Time2=item.Time2;//hhmmss
@@ -10101,7 +10109,7 @@ if(item.Color)info.Color=item.Color;if(item.BGColor)info.BGColor=item.BGColor;if
10101
10109
  // 分钟新闻
10102
10110
  // { Date:yyyymmdd, Time:hhmm, Time2:hhmmss, Title, Type:1, ID: , Data:外部数据 }
10103
10111
  function MinuteNewsInfo(){this.newMethod=IMinuteInfo;//派生
10104
- this.newMethod();delete this.newMethod;this.ClassName='MinuteNewsInfo';this.Explain="新闻";this.RecvData=function(recvData,param){if(!recvData||!IFrameSplitOperator.IsNonEmptyArray(recvData.list))return;for(var i=0;i<recvData.list.length;++i){var item=recvData.list[i];var info={Date:item.Date,Time:item.Time,Title:item.Title,Type:1,ID:item.ID};if(item.Data)info.ExtendData={Data:item.Data};if(IFrameSplitOperator.IsNumber(item.Time2))info.Time2=item.Time2;//hhmmss
10112
+ this.newMethod();delete this.newMethod;this.ClassName='MinuteNewsInfo';this.Explain="新闻";this.RecvData=function(recvData,param){this.Data=[];if(!recvData||!IFrameSplitOperator.IsNonEmptyArray(recvData.list))return;for(var i=0;i<recvData.list.length;++i){var item=recvData.list[i];var info={Date:item.Date,Time:item.Time,Title:item.Title,Type:1,ID:item.ID};if(item.Data)info.ExtendData={Data:item.Data};if(IFrameSplitOperator.IsNumber(item.Time2))info.Time2=item.Time2;//hhmmss
10105
10113
  this.Data.push(info);}param.HQChart.UpdataChartInfo();param.HQChart.Draw();};}//注意!!! 这个函数已经不用了
10106
10114
  //是否是指数代码
10107
10115
  function IsIndexSymbol(symbol){var upperSymbol=symbol.toUpperCase();if(upperSymbol.indexOf('.SH')>0){upperSymbol=upperSymbol.replace('.SH','');if(upperSymbol.charAt(0)=='0'&&parseInt(upperSymbol)<=3000)return true;}else if(upperSymbol.indexOf('.SZ')>0){upperSymbol=upperSymbol.replace('.SZ','');if(upperSymbol.charAt(0)=='3'&&upperSymbol.charAt(1)=='9')return true;}else if(upperSymbol.indexOf('.CI')>0)//自定义指数
@@ -13286,7 +13294,7 @@ if(item.data){outVarItem.Data=this.FittingMinuteArray(item.data,date,time,hqChar
13286
13294
  {drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMinuteArray(draw.DrawData,date,time,hqChart);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='STICKLINE')//柱子
13287
13295
  {drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.Width=draw.Width;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMinuteArray(draw.DrawData,date,time,hqChart,1);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType==SCRIPT_CHART_NAME.OVERLAY_BARS){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.BarName=draw.BarName;drawItem.BarColor=draw.BarColor;drawItem.LineWidth=draw.LineWidth;drawItem.DrawData=this.FittingMinuteArray(draw.DrawData,date,time,hqChart,1);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType==SCRIPT_CHART_NAME.CLIP_COLOR_STICK){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMinuteArray(draw.Data,date,time,hqChart);outVarItem.Draw=drawItem;if(draw.Option)outVarItem.Option=draw.Option;result.push(outVarItem);}else if(draw.DrawType==SCRIPT_CHART_NAME.BASELINE_BAR){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;drawItem.Config=draw.Config;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='MULTI_LINE'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMultiLine(draw.DrawData,date,time,hqChart);for(var k in drawItem.DrawData){this.GetKLineData(drawItem.DrawData[k].Point,hqChart);}outVarItem.Draw=drawItem;if(draw.LineDash)drawItem.LineDash=draw.LineDash;if(draw.Arrow)drawItem.Arrow=draw.Arrow;result.push(outVarItem);}else if(draw.DrawType=='MULTI_POINT'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='MULTI_TEXT'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='MULTI_SVGICON'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData={Icon:draw.DrawData.Icon,Family:draw.DrawData.Family};outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='DRAWSVG'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;if(draw.AutoPosition)drawItem.AutoPosition=draw.AutoPosition;drawItem.EnalbeDetailNoOverlap=draw.EnalbeDetailNoOverlap;drawItem.EnableClick=draw.EnableClick;if(draw.BuildKeyCallback)drawItem.BuildKeyCallback=draw.BuildKeyCallback;drawItem.DrawData={Data:draw.Data,Family:draw.Family,TextFont:draw.TextFont,EnableTooltip:draw.EnableTooltip,IsDrawFirst:draw.IsDrawFirst};outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=="MULTI_HTMLDOM")//外部自己创建dom
13288
13296
  {drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.Callback=draw.Callback;drawItem.DrawData=this.FittingMultiText(draw.DrawData,date,time,hqChart);this.GetKLineData(drawItem.DrawData,hqChart);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='MULTI_BAR'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=="DRAWCOLORKLINE"){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart,1);outVarItem.Draw=drawItem;if(draw.Color)drawItem.Color=draw.Color;if(IFrameSplitOperator.IsBool(draw.IsEmptyBar))drawItem.IsEmptyBar=draw.IsEmptyBar;result.push(outVarItem);}else if(draw.DrawType=="DRAWTEXT_LINE"){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;//{ Price:, Text:{ Title:text, Color:textcolor }, Line:{ Type:linetype, Color:linecolor } };
13289
- outVarItem.Draw=drawItem;if(draw.Font)outVarItem.Font=draw.Font;result.push(outVarItem);}else if(draw.DrawType=="DRAWTITLE"){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType==SCRIPT_CHART_NAME.KLINE_TABLE){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;drawItem.RowCount=draw.RowCount;drawItem.RowName=draw.RowName;drawItem.Config=draw.Config;outVarItem.Draw=drawItem;result.push(outVarItem);}else{var find=g_ScriptIndexChartFactory.Get(draw.DrawType);//外部挂接
13297
+ outVarItem.Draw=drawItem;if(draw.Font)outVarItem.Font=draw.Font;result.push(outVarItem);}else if(draw.DrawType=="DRAWTITLE"){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType==SCRIPT_CHART_NAME.KLINE_TABLE){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;drawItem.RowCount=draw.RowCount;drawItem.RowName=draw.RowName;drawItem.Config=draw.Config;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType==SCRIPT_CHART_NAME.DRAW_HORIZONTAL_CHANNEL){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;drawItem.Config=draw.Config;outVarItem.Draw=drawItem;result.push(outVarItem);}else{var find=g_ScriptIndexChartFactory.Get(draw.DrawType);//外部挂接
13290
13298
  if(find&&find.MinuteFittingCallback){if(find.MinuteFittingCallback(item,outVarItem,{Date:date,Time:time,HQChart:hqChart},this))result.push(outVarItem);}}}}return result;};//matchType 0=精确匹配(默认) 5=模糊匹配
13291
13299
  this.FittingMinuteArray=function(sourceData,date,time,hqChart,matchType){var minutedata=hqChart.SourceData;;//分钟线
13292
13300
  var arySingleData=[];for(var i in sourceData){var value=sourceData[i];var indexItem=new SingleData();//单列指标数据
@@ -13407,7 +13415,7 @@ UnchagneBarColor:"rgb(228,228,228)",//平盘
13407
13415
  EmptyBarBGColor:'rgb(0,0,0)',//空心柱子背景色
13408
13416
  SplashScreen:{BGColor:"rgba(112,128,144,0.5)",TextColor:"rgb(230,230,230)"},HLCArea:{HighLineColor:'rgb(238,21,21)',LowLineColor:"rgb(25,158,0)",CloseLineColor:"rgb(156,156,156)",LineWidth:2*GetDevicePixelRatio(),UpAreaColor:"rgba(238,21,21, 0.3)",DownAreaColor:"rgba(25,158,0, 0.3)"},Minute:{VolBarColor:null,PriceColor:"rgb(25,180,231)",AreaPriceColor:"rgba(63,158,255,.3)",AvPriceColor:"rgb(255,236,0)",PositionColor:'rgb(201, 9, 224)',VolTitleColor:"rgb(190,190,190)",Before:{BGColor:"rgba(105,105,105,0.5)",AvPriceColor:'rgb(248,248,255)',//均线
13409
13417
  CloseIcon:{MoveOnColor:"rgb(255,255,255)",Color:"rgb(156,156,156)"}},After:{BGColor:"rgba(105,105,105,0.5)",AvPriceColor:'rgb(248,248,255)'//均线
13410
- },NightDay:{NightBGColor:"rgb(22,22,22)",Font:12*GetDevicePixelRatio()+'px \u5FAE\u8F6F\u96C5\u9ED1',Day:{Color:"rgb(153,153,153)",BGColor:"rgb(51,51,51)",BorderColor:"rgb(51,51,51)",Margin:{Left:5,Top:2,Bottom:2,Right:5}},Night:{Color:"rgb(153,153,153)",BGColor:"rgb(51,51,51)",BorderColor:"rgb(51,51,51)",Margin:{Left:5,Top:2,Bottom:2,Right:5}}},BuySellBar:{BuyColor:"rgb(102, 33, 33)",SellColor:"rgb(20, 63, 31)",Font:12*GetDevicePixelRatio()+'px \u5FAE\u8F6F\u96C5\u9ED1',TextColor:"rgb(220,220,220)"}},PopMinuteChart:{BGColor:"rgba(0,0,0,0.85)",BorderColor:"rgb(230,230,230)",Mark:{LineColor:"rgba(255,215,0,0.6)"}},PopKLineChart:{BGColor:"rgba(0,0,0,0.85)",BorderColor:"rgb(230,230,230)"},DefaultTextColor:"rgb(101,104,112)",DefaultTextFont:14*GetDevicePixelRatio()+'px 微软雅黑',TitleFont:13*GetDevicePixelRatio()+'px 微软雅黑',//标题字体(动态标题 K线及指标的动态信息字体)
13418
+ },NightDay:{NightBGColor:"rgb(22,22,22)",Font:12*GetDevicePixelRatio()+'px \u5FAE\u8F6F\u96C5\u9ED1',Day:{Color:"rgb(153,153,153)",BGColor:"rgb(51,51,51)",BorderColor:"rgb(51,51,51)",Margin:{Left:5,Top:2,Bottom:2,Right:5}},Night:{Color:"rgb(153,153,153)",BGColor:"rgb(51,51,51)",BorderColor:"rgb(51,51,51)",Margin:{Left:5,Top:2,Bottom:2,Right:5}}},BuySellBar:{BuyColor:"rgb(255,0,0)",SellColor:"rgb(0,255,0)",Font:12*GetDevicePixelRatio()+'px \u5FAE\u8F6F\u96C5\u9ED1',TextColor:"rgb(220,220,220)"}},PopMinuteChart:{BGColor:"rgba(0,0,0,0.85)",BorderColor:"rgb(230,230,230)",Mark:{LineColor:"rgba(255,215,0,0.6)"}},PopKLineChart:{BGColor:"rgba(0,0,0,0.85)",BorderColor:"rgb(230,230,230)"},DefaultTextColor:"rgb(101,104,112)",DefaultTextFont:14*GetDevicePixelRatio()+'px 微软雅黑',TitleFont:13*GetDevicePixelRatio()+'px 微软雅黑',//标题字体(动态标题 K线及指标的动态信息字体)
13411
13419
  IndexTitleColor:"rgb(190, 190 ,190)",//指标名字颜色
13412
13420
  IndexTitleBGColor:'rgb(0,0,0)',//指标名字背景色
13413
13421
  IndexTitleBorderColor:'rgb(211, 211, 211)',//指标名字边框颜色
@@ -15709,7 +15717,8 @@ trDom.appendChild(tdDom);rowItem.TitleTd=tdDom;var spanDom=document.createElemen
15709
15717
  trDom.appendChild(tdDom);rowItem.TextTd=tdDom;var spanDom=document.createElement("span");spanDom.className='UMyChart_Tooltip_Float_Text_Span';spanDom.innerText='数值';tdDom.appendChild(spanDom);rowItem.TextSpan=spanDom;this.AryData.push(rowItem);}document.body.appendChild(divDom);this.DivDialog=divDom;this.UpdateStyle();};this.IsShow=function(){if(!this.DivDialog)return false;return this.DivDialog.style.visibility==='visible';};//data={ Symbol, Date, Time} 是否是同一条K线
15710
15718
  this.IsEqualHQID=function(data){if(!this.KItemCache)return false;if(!data)return false;if(!this.KItemCache.Item)return false;var kItem=this.KItemCache.Item;if(this.KItemCache.Symbol!=data.Symbol)return false;if(kItem.Date!=data.Date)return false;if(IFrameSplitOperator.IsNumber(kItem.Time)){if(kItem.Time!=data.Time)return false;}return true;};this.UpdateStyle=function(){if(!this.DivDialog)return;if(this.BGColor)this.DivDialog.style['background-color']=this.BGColor;if(this.BorderColor)this.DivDialog.style['border-color']=this.BorderColor;//this.UpdateTableDOM();
15711
15719
  };//更新数据
15712
- this.Update=function(data){if(!this.DivDialog)return;this.LanguageID=this.HQChart.LanguageID;if(data.DataType==1){var tooltipData=data.Tooltip;if(!tooltipData)return;if(tooltipData.Type==0)//K线信息
15720
+ this.Update=function(data){if(!this.DivDialog)return;this.LanguageID=this.HQChart.LanguageID;if(data.DataType==1)//K线图|分时图
15721
+ {var tooltipData=data.Tooltip;if(!tooltipData)return;if(tooltipData.Type==0)//K线信息
15713
15722
  {this.UpdateKLineToolitp(data);}else if(tooltipData.Type==1)//信息地雷
15714
15723
  {this.UpdateKLineInfoTooltip(data);}else if(tooltipData.Type==2)//交易指标
15715
15724
  {this.UpdateTradeIndexTooltip(data);}else if(tooltipData.Type==3)//分时图异动信息
@@ -15727,7 +15736,8 @@ this.Update=function(data){if(!this.DivDialog)return;this.LanguageID=this.HQChar
15727
15736
  {this.ReportCellTooltip(data);}}else if(data.DataType==4)//T型报价
15728
15737
  {var tooltipData=data.Tooltip;if(!tooltipData)return;if(tooltipData.Type==2||tooltipData.Type==3){this.TReportIconTooltip(data);}}else if(data.DataType==5)//成交笔数
15729
15738
  {var tooltipData=data.Tooltip;if(!tooltipData)return;if(tooltipData.Type==2)//提示信息
15730
- {this.DealItemTooltip(data);}}};this.UpdateRealtimeHQTooltip=function(data){if(!this.KItemCache)return;var kItem={Symbol:data.Symbol,Name:this.KItemCache.Name,Item:data.Data,IsOverlay:this.KItemCache.IsOverlay};var strKItem=(0,_stringify2.default)(kItem);var bUpdata=false;if(this.KItemCacheID!=strKItem)//数据变动的才更新
15739
+ {this.DealItemTooltip(data);}}else if(data.DataType==6)//五档买卖盘
15740
+ {this.StockInfoTooltip(data);}};this.UpdateRealtimeHQTooltip=function(data){if(!this.KItemCache)return;var kItem={Symbol:data.Symbol,Name:this.KItemCache.Name,Item:data.Data,IsOverlay:this.KItemCache.IsOverlay};var strKItem=(0,_stringify2.default)(kItem);var bUpdata=false;if(this.KItemCacheID!=strKItem)//数据变动的才更新
15731
15741
  {this.KItemCache=kItem;this.KItemCacheID=strKItem;this.AryText=this.GetFormatKLineTooltipText(this.KItemCache);bUpdata=true;}if(bUpdata){this.UpdateTableDOM();}};this.ShowTooltip=function(data){if(!data.Point)return;var x=data.Point.X;var y=data.Point.Y;this.Show(x,y,{YMove:data.Point.YMove});};//K线提示信息
15732
15742
  this.UpdateKLineToolitp=function(data){var tooltipData=data.Tooltip;var symbol=data.Symbol;var name=data.Name;var bOverlay=false;//是否是叠加指标
15733
15743
  var bIndexKLine=false;if(tooltipData.ChartPaint.Name=="Overlay-KLine"){symbol=tooltipData.ChartPaint.Symbol;name=tooltipData.ChartPaint.Title;bOverlay=true;}else if(tooltipData.ChartPaint.Name=="DRAWKLINE"){symbol=tooltipData.ChartPaint.Symbol;name=tooltipData.ChartPaint.Title;bIndexKLine=true;}var kItem={Symbol:symbol,Name:name,Item:CloneData(tooltipData.Data),IsOverlay:bOverlay,IsIndexKLine:bIndexKLine};var strKItem=(0,_stringify2.default)(kItem);var bUpdata=false;if(this.KItemCacheID!=strKItem)//数据变动的才更新
@@ -15746,7 +15756,11 @@ this.UpdatMultiSVGIconV2Tooltip=function(data){var tooltipData=data.Tooltip;if(!
15746
15756
  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);};//表头图标
15747
15757
  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);};//单元格提示信息
15748
15758
  this.ReportCellTooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!IFrameSplitOperator.IsNonEmptyArray(tooltipData.Data.AryText))return;this.AryText=tooltipData.Data.AryText;this.OnShowTooltipEvent(data,"ReportCellTooltip");this.UpdateTableDOM();this.ShowTooltip(data);};this.OnShowTooltipEvent=function(data,funcName){if(!this.HQChart)return false;if(!data||!data.Tooltip||!data.Tooltip.Data)return false;if(!(data.Tooltip.Data.EnableCallback===true))return false;var event=this.HQChart.GetEventCallback(JSCHART_EVENT_ID.ON_REPORT_SHOW_TOOLTIP);if(!event||!event.Callback)return false;var sendData={AryText:[],Data:data,PreventDefault:false,FunctionName:funcName};event.Callback(event,sendData,this);if(!sendData.PreventDefault)return false;this.AryText=sendData.AryText;return true;};//表格单元格截断内容
15749
- 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)//合并单元格
15759
+ 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.StockInfoTooltip=function(data){var tooltipData=data.Tooltip;var cellData=null;if(tooltipData.Data&&tooltipData.Data.Data)cellData=tooltipData.Data.Data;if(!cellData)return;if(cellData.Type!=3)return;var aryData=null;//买卖5档数据
15760
+ if(cellData.Value&&cellData.Value.AryData)aryData=cellData.Value.AryData;if(!IFrameSplitOperator.IsNonEmptyArray(aryData))return;var aryText=[];//输出内容
15761
+ var totalVol=0,totalAmount=0;for(var i=0;i<aryData.length&&i<=cellData.Value.Index;++i){var item=aryData[i];if(IFrameSplitOperator.IsNumber(item.Vol)&&IFrameSplitOperator.IsNumber(item.Price)){totalVol+=item.Vol;totalAmount+=item.Price*item.Vol;}}var strPrice="--.---";//均价
15762
+ var avPrice=null;if(totalVol>0){avPrice=totalAmount/totalVol;strPrice=avPrice.toFixed(3);}var strIncrease='--.--%';//涨幅
15763
+ if(IFrameSplitOperator.IsNumber(avPrice)&&IFrameSplitOperator.IsPlusNumber(cellData.Value.YClose)){var value=(avPrice-cellData.Value.YClose)/cellData.Value.YClose*100;strIncrease=value.toFixed(2)+'%';}var text=' \u524D'+(cellData.Value.Index+1)+'\u6863 \u5E45\u5EA6:'+strIncrease+' \u59D4\u6258\u603B\u91CF:'+totalVol+' \u5747\u4EF7:'+strPrice+' ';var item={Title:text,Color:this.TextColor,IsMergeCell:true,TitleClassName:this.TitleAlign.Center};aryText.push(item);this.AryText=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)//合并单元格
15750
15764
  {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);//价格小数位数
15751
15765
  var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);//日期
15752
15766
  var dateItem=this.ForamtDate(data.Date,"YYYY/MM/DD/W",'FloatTooltip-Date');//时间
@@ -16072,7 +16086,8 @@ this.ResizeListener;//大小变动监听
16072
16086
  this.CanvasElement=document.createElement("canvas");this.CanvasElement.className='jsstockinfo-drawing';this.CanvasElement.id=Guid();this.CanvasElement.setAttribute("tabindex",0);if(this.CanvasElement.style)this.CanvasElement.style.outline='none';if(divElement.hasChildNodes()){JSConsole.Chart.Log("[JSStockInfoChart::JSStockInfoChart] divElement hasChildNodes",divElement.childNodes);}divElement.appendChild(this.CanvasElement);this.OnSize=function(){//画布大小通过div获取 如果有style里的大小 使用style里的
16073
16087
  var height=this.DivElement.offsetHeight;var width=this.DivElement.offsetWidth;if(this.DivElement.style.height&&this.DivElement.style.width){if(this.DivElement.style.height.includes("px"))height=parseInt(this.DivElement.style.height.replace("px",""));if(this.DivElement.style.width.includes("px"))width=parseInt(this.DivElement.style.width.replace("px",""));}this.CanvasElement.height=height;this.CanvasElement.width=width;this.CanvasElement.style.width=this.CanvasElement.width+'px';this.CanvasElement.style.height=this.CanvasElement.height+'px';var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
16074
16088
  this.CanvasElement.height*=pixelTatio;this.CanvasElement.width*=pixelTatio;JSConsole.Chart.Log('[JSStockInfoChart::OnSize] devicePixelRatio='+window.devicePixelRatio+', height='+this.CanvasElement.height+', width='+this.CanvasElement.width);if(this.JSChartContainer&&this.JSChartContainer.OnSize){this.JSChartContainer.OnSize();}};this.SetOption=function(option){var chart=this.CreateJSStockInfoChartContainer(option);if(!chart)return false;if(option.OnCreatedCallback)option.OnCreatedCallback(chart);this.JSChartContainer=chart;this.DivElement.JSChart=this;//div中保存一份
16075
- if(option.EnableResize==true)this.CreateResizeListener();if(option.EnablePopMenuV2===true)chart.InitalPopMenu();if(option.Symbol){chart.ChangeSymbol(option.Symbol);//下载列表码表
16089
+ if(option.EnableResize==true)this.CreateResizeListener();if(option.EnablePopMenuV2===true)chart.InitalPopMenu();if(option.FloatTooltip&&option.FloatTooltip.Enable)chart.InitalFloatTooltip(option.FloatTooltip);//提示信息
16090
+ if(option.Symbol){chart.ChangeSymbol(option.Symbol);//下载列表码表
16076
16091
  }else{chart.Draw();}};this.CreateResizeListener=function(){var _this125=this;this.ResizeListener=new ResizeObserver(function(entries){_this125.OnDivResize(entries);});this.ResizeListener.observe(this.DivElement);};this.OnDivResize=function(entries){JSConsole.Chart.Log("[JSStockInfoChart::OnDivResize] entries=",entries);this.OnSize();};//切换股票代码接口
16077
16092
  this.ChangeSymbol=function(symbol,option){if(this.JSChartContainer)this.JSChartContainer.ChangeSymbol(symbol,option);};this.CreateJSStockInfoChartContainer=function(option){var chart=new JSStockInfoChartContainer(this.CanvasElement);chart.Create(option);this.SetChartBorder(chart,option);if(IFrameSplitOperator.IsNonEmptyArray(option.Column))chart.SetColumn(option.Column);if(IFrameSplitOperator.IsNonEmptyArray(option.HeaderColumn))chart.SetHeaderColumn(option.HeaderColumn);if(IFrameSplitOperator.IsNonEmptyArray(option.MouseOnKey))chart.SetMouseOnKey(option.MouseOnKey);//是否自动更新
16078
16093
  if(option.NetworkFilter)chart.NetworkFilter=option.NetworkFilter;if(option.IsAutoUpdate!=null)chart.IsAutoUpdate=option.IsAutoUpdate;if(option.AutoUpdateFrequency>0)chart.AutoUpdateFrequency=option.AutoUpdateFrequency;//注册事件
@@ -16097,9 +16112,11 @@ this.MapStockData;//事件回调
16097
16112
  this.mapEvent=new _map2.default();//通知外部调用 key:JSCHART_EVENT_ID value:{Callback:回调,}
16098
16113
  this.AutoUpdateTimer=null;this.AutoUpdateFrequency=15000;//15秒更新一次数据
16099
16114
  this.JSPopMenu;//内置菜单
16100
- this.UIElement=uielement;this.IsDestroy=false;//是否已经销毁了
16115
+ this.FloatTooltip;//提示浮框
16116
+ this.UIElement=uielement;this.LastMouseStatus={MoveStatus:null,TooltipStatus:null,MouseOnStatus:null};this.IsDestroy=false;//是否已经销毁了
16101
16117
  this.ChartDestroy=function()//销毁
16102
- {this.IsDestroy=true;this.StopAutoUpdate();this.DestroyPopMenu();};//设置事件回调
16118
+ {this.IsDestroy=true;this.StopAutoUpdate();this.DestroyPopMenu();this.DestroyFloatTooltip();};//内置提示信息
16119
+ this.HideFloatTooltip=function(){if(!this.FloatTooltip)return;this.FloatTooltip.Hide();};this.DestroyFloatTooltip=function(){if(!this.FloatTooltip)return;this.FloatTooltip.Destroy();this.FloatTooltip=null;};this.InitalFloatTooltip=function(option){if(this.FloatTooltip)return;this.FloatTooltip=new JSFloatTooltip();this.FloatTooltip.Inital(this,option);this.FloatTooltip.Create();};this.DrawFloatTooltip=function(point,toolTip){if(!this.FloatTooltip)return;this.UpdateFloatTooltip(point,toolTip);};this.UpdateFloatTooltip=function(point,toolTip){if(!this.FloatTooltip)return;var sendData={Tooltip:toolTip,Point:point,DataType:6};this.FloatTooltip.Update(sendData);};this.HideAllTooltip=function(){this.HideFloatTooltip();};//设置事件回调
16103
16120
  //{event:事件id, callback:回调函数}
16104
16121
  this.AddEventCallback=function(object){if(!object||!object.event||!object.callback)return;var data={Callback:object.callback,Source:object};this.mapEvent.set(object.event,data);};this.RemoveEventCallback=function(eventid){if(!this.mapEvent.has(eventid))return;this.mapEvent.delete(eventid);};this.GetEventCallback=function(id)//获取事件回调
16105
16122
  {if(!this.mapEvent.has(id))return null;var item=this.mapEvent.get(id);return item;};this.InitalPopMenu=function()//初始化弹出窗口
@@ -16122,8 +16139,8 @@ this.PopupMenuByRClick=function(menuData,x,y){if(!this.JSPopMenu)return;var rtCl
16122
16139
  this.OnClickRightMenu=function(data){JSConsole.Chart.Log('[JSStockInfoChartContainer::OnClickRightMenu] ',data);if(!data||!data.Data)return;var cmdID=data.Data.ID;//命令ID
16123
16140
  var aryArgs=data.Data.Args;//参数
16124
16141
  var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_MENU_COMMAND);//回调通知外部
16125
- if(event&&event.Callback){var data={PreventDefault:false,CommandID:cmdID,Args:aryArgs,SrcData:data};event.Callback(event,data,this);if(data.PreventDefault)return;}this.ExecuteMenuCommand(cmdID,aryArgs);};this.ExecuteMenuCommand=function(cmdID,aryArgs){};this.UIOnMouseMove=function(e){var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;var option={Update:false};this.OnChartMouseMove(x,y,e,option);if(option.Update===true)this.Draw();};this.OnChartMouseMove=function(x,y,e,option){for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(item&&item.OnMouseMove){if(item.OnMouseMove(x,y,e,option))return true;}}return false;};this.TryClickPaintEvent=function(eventID,ptClick,e){var event=this.GetEventCallback(eventID);if(!event)return false;if(ptClick.X==e.clientX&&ptClick.Y==e.clientY){var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-uielement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-uielement.getBoundingClientRect().top)*pixelTatio;var toolTip=new TooltipData();for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(item.GetTooltipData(x,y,toolTip)){if(toolTip.Data){var data={X:e.clientX,Y:e.clientY,Tooltip:toolTip};event.Callback(event,data,this);return true;}}}}return false;};this.UIOnMouseleave=function(e){var option={Update:false};this.ChartClearMouseOnData(option);if(option.Update===true)this.Draw();};this.UIOnMounseOut=function(e){var option={Update:false};this.ChartClearMouseOnData(option);if(option.Update===true)this.Draw();//this.HideAllTooltip();
16126
- };this.ChartClearMouseOnData=function(option){for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(item&&item.ClearMouseOnData){item.ClearMouseOnData(option);}}};this.Draw=function(){if(this.UIElement.width<=0||this.UIElement.height<=0)return;this.Canvas.clearRect(0,0,this.UIElement.width,this.UIElement.height);var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
16142
+ if(event&&event.Callback){var data={PreventDefault:false,CommandID:cmdID,Args:aryArgs,SrcData:data};event.Callback(event,data,this);if(data.PreventDefault)return;}this.ExecuteMenuCommand(cmdID,aryArgs);};this.ExecuteMenuCommand=function(cmdID,aryArgs){};this.UIOnMouseMove=function(e){var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;this.LastMouseStatus.OnMouseMove={X:x,Y:y};var bDrawTooltip=false;if(this.LastMouseStatus.TooltipStatus)bDrawTooltip=true;this.LastMouseStatus.TooltipStatus=null;var option={Update:false};this.OnChartMouseMove(x,y,e,option);var tooltipData=this.GetChartTooltipData(x,y);if(tooltipData&&tooltipData.Data){var item=tooltipData.Data;if(item.Data&&item.Data.Type==3)//5档买卖盘名字
16143
+ {this.LastMouseStatus.TooltipStatus={X:x,Y:y,Data:tooltipData,ClientX:e.clientX,ClientY:e.clientY};bDrawTooltip=true;}}if(option.Update===true)this.Draw();if(this.LastMouseStatus.TooltipStatus){var xTooltip=e.clientX-this.UIElement.getBoundingClientRect().left;var yTooltip=e.clientY-this.UIElement.getBoundingClientRect().top;this.DrawFloatTooltip({X:xTooltip,Y:yTooltip,YMove:20/pixelTatio},this.LastMouseStatus.TooltipStatus.Data);}else{this.HideFloatTooltip();}};this.OnChartMouseMove=function(x,y,e,option){for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(item&&item.OnMouseMove){if(item.OnMouseMove(x,y,e,option))return true;}}return false;};this.GetChartTooltipData=function(x,y){var toolTip=new TooltipData();for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(item.GetTooltipData(x,y,toolTip)){return toolTip;}}return null;};this.TryClickPaintEvent=function(eventID,ptClick,e){var event=this.GetEventCallback(eventID);if(!event)return false;if(ptClick.X==e.clientX&&ptClick.Y==e.clientY){var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-uielement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-uielement.getBoundingClientRect().top)*pixelTatio;var toolTip=new TooltipData();for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(item.GetTooltipData(x,y,toolTip)){if(toolTip.Data){var data={X:e.clientX,Y:e.clientY,Tooltip:toolTip};event.Callback(event,data,this);return true;}}}}return false;};this.UIOnMouseleave=function(e){var option={Update:false};this.ChartClearMouseOnData(option);if(option.Update===true)this.Draw();this.HideAllTooltip();};this.UIOnMounseOut=function(e){var option={Update:false};this.ChartClearMouseOnData(option);if(option.Update===true)this.Draw();this.HideAllTooltip();};this.ChartClearMouseOnData=function(option){for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(item&&item.ClearMouseOnData){item.ClearMouseOnData(option);}}};this.Draw=function(){if(this.UIElement.width<=0||this.UIElement.height<=0)return;this.Canvas.clearRect(0,0,this.UIElement.width,this.UIElement.height);var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
16127
16144
  this.Canvas.lineWidth=pixelTatio;//手机端需要根据分辨率比调整线段宽度
16128
16145
  this.Frame.Draw();this.Frame.DrawLogo();//框架内图形
16129
16146
  for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];item.Draw();}};this.OnSize=function(){if(!this.Frame)return;this.SetSizeChange(true);this.Draw();};this.SetSizeChange=function(bChanged){for(var i=0;i<this.ChartPaint.length;++i){var chart=this.ChartPaint[i];if(chart)chart.SizeChange=bChanged;}};this.ReloadResource=function(option){this.Frame.ReloadResource(option);for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(item.ReloadResource)item.ReloadResource(option);}if(option&&(option.Redraw||option.Draw)){this.SetSizeChange(true);this.Draw();}};this.SetColumn=function(aryColunm,option){var chart=this.ChartPaint[0];if(!chart)return;chart.SetColumn(aryColunm);chart.SizeChange=true;if(option&&option.Redraw)this.Draw();};this.SetHeaderColumn=function(aryColunm,option){var chart=this.ChartPaint[0];if(!chart)return;chart.SetHeaderColumn(aryColunm);chart.SizeChange=true;if(option&&option.Redraw)this.Draw();};this.SetBuySellCount=function(count,option){var chart=this.ChartPaint[0];if(!chart)return;chart.BuySellCount=count;chart.SizeChange=true;if(option&&option.Redraw)this.Draw();};this.SetMouseOnKey=function(aryKey){var chart=this.ChartPaint[0];if(!chart)return;chart.SetMouseOnKey(aryKey);};}function JSStockInfoFrame(){this.ChartBorder;this.Canvas;//画布
@@ -16150,14 +16167,14 @@ this.Column=[[{Name:"涨停价",Key:"UpLimit",ColorType:3,FloatPrecision:-1},{Na
16150
16167
  this.MouseOnConfig=CloneData(g_JSChartResource.StockInfo.MouseOn);this.MapMouseOnKey=new _map2.default();this.ReloadResource=function(resource){this.UpColor=g_JSChartResource.StockInfo.UpTextColor;this.DownColor=g_JSChartResource.StockInfo.DownTextColor;this.UnchangeColor=g_JSChartResource.StockInfo.UnchangeTextColor;this.HeaderConfig=CloneData(g_JSChartResource.StockInfo.Header);//买卖5档配置
16151
16168
  this.BuySellConfig=CloneData(g_JSChartResource.StockInfo.BuySell);this.TableConfig=CloneData(g_JSChartResource.StockInfo.Table);this.MouseOnConfig=CloneData(g_JSChartResource.StockInfo.MouseOn);};this.ClearMouseOnData=function(option){if(this.MouseOnItem){this.MouseOnItem=null;if(option)option.Update=true;//需要更新
16152
16169
  }};this.SetColumn=function(aryColumn){this.Column=[];if(!IFrameSplitOperator.IsNonEmptyArray(aryColumn))return;for(var i=0;i<aryColumn.length;++i){var item=aryColumn[i];if(!item)continue;this.Column.push(CloneData(item));}};this.SetHeaderColumn=function(aryColumn){this.HeaderColumn=[];if(!IFrameSplitOperator.IsNonEmptyArray(aryColumn))return;for(var i=0;i<aryColumn.length;++i){var item=aryColumn[i];if(!item)continue;this.HeaderColumn.push(CloneData(item));}};this.SetMouseOnKey=function(aryKey){this.MapMouseOnKey.clear();if(!IFrameSplitOperator.IsNonEmptyArray(aryKey))return;for(var i=0;i<aryKey.length;++i){var key=aryKey[i];if(!key)continue;this.MapMouseOnKey.set(key,{Key:key});}};this.OnMouseMove=function(x,y,e,option){if(!IFrameSplitOperator.IsNonEmptyArray(this.AryCellRect))return false;if(this.MouseOnItem&&this.MouseOnItem.Rect){var rect=this.MouseOnItem.Rect;if(Path2DHelper.PtInRect(x,y,rect))return true;}for(var i=0;i<this.AryCellRect.length;++i){var item=this.AryCellRect[i];var rect=item.Rect;if(Path2DHelper.PtInRect(x,y,rect)){this.MouseOnItem={Key:item.Data.Key,Rect:rect};if(option)option.Update=true;return true;}}if(this.MouseOnItem){this.MouseOnItem=null;if(option)option.Update=true;}return false;};this.GetTooltipData=function(x,y,tooltip){if(!IFrameSplitOperator.IsNonEmptyArray(this.AryCellRect))return false;for(var i=0;i<this.AryCellRect.length;++i){var item=this.AryCellRect[i];var rect=item.Rect;if(Path2DHelper.PtInRect(x,y,rect)){tooltip.Data=item;tooltip.ChartPaint=this;tooltip.Type=151;return true;}}return false;};this.Draw=function(){this.AryCellRect=[];this.Decimal=GetfloatPrecision(this.Data.Symbol);var border=this.ChartBorder.GetBorder();var position={Left:border.Left,Right:border.Right,Top:border.Top,Width:border.Right-border.Left,Border:border};this.DrawHeader(position);this.DrawBuySell(position);this.DrawTable(position);};this.DrawHeader=function(position){var config=this.HeaderConfig;var top=position.Top;var left=position.Left;var xText=left;var yText=top;this.Canvas.font=config.Name.Font;var nameHeight=this.Canvas.measureText("擎").width;nameHeight+=config.Name.Margin.Top+config.Name.Margin.Bottom;this.Canvas.font=config.Symbol.Font;var symbolHeight=this.Canvas.measureText("擎").width;symbolHeight+=config.Symbol.Margin.Top+config.Symbol.Margin.Bottom;var lineHeight=Math.max(symbolHeight,nameHeight);this.Canvas.textAlign='left';this.Canvas.textBaseline='bottom';if(this.Data.Name){var text=this.Data.Name;xText+=config.Name.Margin.Left;var yBottom=yText+lineHeight-config.Name.Margin.Bottom+config.Name.Margin.YOffset;this.Canvas.font=config.Name.Font;this.Canvas.fillStyle=config.Name.Color;this.Canvas.fillText(text,xText,yBottom);var textWidth=this.Canvas.measureText(text).width;xText+=textWidth+config.Name.Margin.Right;}if(this.Data.Symbol){var text=MARKET_SUFFIX_NAME.GetShortSymbol(this.Data.Symbol);xText+=config.Symbol.Margin.Left;var yBottom=yText+lineHeight-config.Symbol.Margin.Bottom+config.Symbol.Margin.YOffset;this.Canvas.font=config.Symbol.Font;this.Canvas.fillStyle=config.Symbol.Color;this.Canvas.fillText(text,xText,yBottom);var textWidth=this.Canvas.measureText(text).width;xText+=textWidth+config.Symbol.Margin.Right;}yText+=lineHeight;if(IFrameSplitOperator.IsNonEmptyArray(this.HeaderColumn)){lineHeight=0;for(var i=0;i<this.HeaderColumn.length&&i<config.AryCell.length;++i){var subConfig=config.AryCell[i];this.Canvas.font=subConfig.Font;var textHeight=this.Canvas.measureText("擎").width;textHeight+=subConfig.Margin.Top+subConfig.Margin.Bottom;if(lineHeight<textHeight)lineHeight=textHeight;}var xText=left;for(var i=0;i<this.HeaderColumn.length&&i<config.AryCell.length;++i){var item=this.HeaderColumn[i];var text="--.--";color=config.TextColor;if(item.DefaultText)text=item.DefaultText;var subConfig=config.AryCell[i];if(this.Data.MapData&&this.Data.MapData.has(item.Key)){var dataItem=this.Data.MapData.get(item.Key);var text=this.FormatValue(item,dataItem);if(item.ColorType===3&&IFrameSplitOperator.IsNumber(dataItem.Value))color=this.GetPriceColor(dataItem.Value);else if(item.ColorType==1&&IFrameSplitOperator.IsNumber(dataItem.Value))color=this.GetUpDownColor(dataItem.Value,0);else if(item.ColorType==4)color=this.UpColor;else if(item.ColorType==5)color=this.DownColor;}if(item.TextColor)color=item.TextColor;if(text){this.Canvas.font=subConfig.Font;var textWidth=this.Canvas.measureText(text).width;var x=xText+subConfig.Margin.Left;this.Canvas.fillStyle=color;var yBottom=yText+lineHeight-subConfig.Margin.Bottom+subConfig.Margin.YOffset;this.Canvas.fillText(text,x,yBottom);xText+=subConfig.Margin.Left+subConfig.Margin.Right+textWidth;}}yText+=lineHeight;}position.Top=yText;if(config.BottomLine&&config.BottomLine.Enable){var xLeft=position.Border.Left,xRight=position.Border.Right;this.Canvas.strokeStyle=config.BottomLine.Color;var lineWidth=1*GetDevicePixelRatio();;this.Canvas.lineWidth=lineWidth;this.Canvas.beginPath();this.Canvas.moveTo(xLeft,ToFixedPoint(yText));this.Canvas.lineTo(xRight,ToFixedPoint(yText));this.Canvas.stroke();position.Top=ToFixedPoint(yText);}};//买卖5档
16153
- this.DrawBuySell=function(position){if(this.BuySellCount<=0)return;var config=this.BuySellConfig;var top=position.Top;var left=position.Left+config.Margin.Left;var cellWidth=(position.Width-config.Margin.Left-config.Margin.Right)/4;var yText=top+config.Margin.Top;var xText=left;this.Canvas.font=config.Font;this.Canvas.textAlign='left';this.Canvas.textBaseline='bottom';var cellHeight=this.Canvas.measureText("擎").width+config.CellMargin.Top+config.CellMargin.Bottom;var count=this.BuySellCount;var sellVol=0,buyVol=0;for(var i=count-1;i>=0;--i){xText=left;var item=this.Data.Sells[i];this.DrawBuySellItem(item,xText,yText,cellWidth,cellHeight,{Type:1,Index:i});if(IFrameSplitOperator.IsNumber(item.Vol))sellVol+=item.Vol;yText+=cellHeight;}var yCenter=null;if(config.CenterLine)//留出画线的位置
16154
- {yCenter=yText;var lineConfig=config.CenterLine;var lineWidth=lineConfig.Width;yText+=lineWidth;}for(var i=0;i<count&&i<this.Data.Buys.length;++i){xText=left;var item=this.Data.Buys[i];this.DrawBuySellItem(item,xText,yText,cellWidth,cellHeight,{Type:2,Index:i});if(IFrameSplitOperator.IsNumber(item.Vol))buyVol+=item.Vol;yText+=cellHeight;}position.Top=yText;if(IFrameSplitOperator.IsNumber(yCenter)&&config.CenterLine){var lineConfig=config.CenterLine;var xLeft=position.Border.Left,xRight=position.Border.Right;var lineWidth=lineConfig.Width;if(buyVol+sellVol>0){var buyRate=buyVol/(buyVol+sellVol);var barWidth=xRight-xLeft;var buyWidth=barWidth*buyRate;var xCenter=xLeft+buyWidth;this.Canvas.lineWidth=lineWidth;this.Canvas.strokeStyle=lineConfig.BuyColor;this.Canvas.beginPath();this.Canvas.moveTo(xLeft,ToFixedPoint2(lineWidth,yCenter));this.Canvas.lineTo(xCenter,ToFixedPoint2(lineWidth,yCenter));this.Canvas.stroke();this.Canvas.strokeStyle=lineConfig.SellColor;this.Canvas.beginPath();this.Canvas.moveTo(xCenter,ToFixedPoint2(lineWidth,yCenter));this.Canvas.lineTo(xRight,ToFixedPoint2(lineWidth,yCenter));this.Canvas.stroke();}else{this.Canvas.strokeStyle=lineConfig.NoneColor;this.Canvas.lineWidth=lineWidth;this.Canvas.beginPath();this.Canvas.moveTo(xLeft,ToFixedPoint2(lineWidth,yCenter));this.Canvas.lineTo(xRight,ToFixedPoint2(lineWidth,yCenter));this.Canvas.stroke();}}if(config.BottomLine&&config.BottomLine.Enable){var xLeft=position.Border.Left,xRight=position.Border.Right;this.Canvas.strokeStyle=config.BottomLine.Color;this.Canvas.lineWidth=1*GetDevicePixelRatio();this.Canvas.beginPath();this.Canvas.moveTo(xLeft,ToFixedPoint(yText));this.Canvas.lineTo(xRight,ToFixedPoint(yText));this.Canvas.stroke();}if(config.TopLine&&config.TopLine.Enable){var xLeft=position.Border.Left,xRight=position.Border.Right;this.Canvas.strokeStyle=config.BottomLine.Color;this.Canvas.lineWidth=1*GetDevicePixelRatio();this.Canvas.beginPath();this.Canvas.moveTo(xLeft,ToFixedPoint(top));this.Canvas.lineTo(xRight,ToFixedPoint(top));this.Canvas.stroke();}};//itemInfo={ Type:2(1=买 2=卖), Index:数据索引 }
16155
- this.DrawBuySellItem=function(item,left,top,cellWidth,cellHeight,itemInfo){var config=this.BuySellConfig;var xText=left;var yBottom=top+cellHeight-config.CellMargin.Bottom+config.CellMargin.YOffset;if(item.Name){this.Canvas.fillStyle=config.TitleColor;this.Canvas.fillText(item.Name,xText+config.CellMargin.Left,yBottom);}xText+=cellWidth;if(IFrameSplitOperator.IsNumber(item.Price)){var key=(itemInfo.Type==1?"BUY":"SELL")+'_PRICE_'+itemInfo.Index;var mouseOnItem=this.IsMouseOn(key);var text=item.Price.toFixed(this.Decimal);var textWidth=this.Canvas.measureText(text).width;var x=xText+cellWidth-textWidth-config.CellMargin.Right;var rtCell={Left:xText,Width:cellWidth,Top:top,Height:cellHeight};rtCell.Right=rtCell.Left+rtCell.Width;rtCell.Bottom=rtCell.Top+rtCell.Height;if(mouseOnItem)this.DrawMouseOnRect(rtCell);this.Canvas.fillStyle=this.GetPriceColor(item.Price);this.Canvas.fillText(text,x,yBottom);if(this.MapMouseOnKey.has(key))this.AryCellRect.push({Rect:rtCell,Data:{Type:1,Key:key,Value:item.Price}});}xText+=cellWidth;xText+=cellWidth;if(IFrameSplitOperator.IsNumber(item.Vol)){var text=item.Vol.toFixed(0);var textWidth=this.Canvas.measureText(text).width;var x=xText+cellWidth-textWidth-config.CellMargin.Right;this.Canvas.fillStyle=config.VolColor;this.Canvas.fillText(text,x,yBottom);}};this.IsMouseOn=function(key){if(!this.MouseOnItem)return null;if(this.MouseOnItem.Key===key)return this.MouseOnItem;return null;};this.DrawMouseOnRect=function(rect){if(!this.MouseOnItem)return;this.Canvas.fillStyle=this.MouseOnConfig.BGColor;this.Canvas.fillRect(rect.Left,rect.Top,rect.Width,rect.Height);this.MouseOnItem.Rect=rect;};this.DrawTable=function(position){if(!IFrameSplitOperator.IsNonEmptyArray(this.Column))return;var config=this.TableConfig;var top=position.Top;var left=position.Left+config.Margin.Left;var cellWidth=(position.Width-config.Margin.Left-config.Margin.Right)/4;var yText=top+config.Margin.Top;var xText=left;this.Canvas.font=config.Font;this.Canvas.textAlign='left';this.Canvas.textBaseline='bottom';var cellHeight=this.Canvas.measureText("擎").width+config.CellMargin.Top+config.CellMargin.Bottom;for(var i=0;i<this.Column.length;++i){xText=left;var item=this.Column[i];if(!item||!IFrameSplitOperator.IsNonEmptyArray(item))continue;this.DrawRowItem(item,xText,yText,cellWidth,cellHeight);yText+=cellHeight;}};this.DrawRowItem=function(aryData,left,top,cellWidth,cellHeight){var config=this.TableConfig;var xText=left;var yBottom=top+cellHeight-config.CellMargin.Bottom+config.CellMargin.YOffset;for(var i=0;i<aryData.length&&i<2;++i){var item=aryData[i];if(item){if(item.Name){this.Canvas.fillStyle=config.TitleColor;this.Canvas.fillText(item.Name,xText+config.CellMargin.Left,yBottom);}xText+=cellWidth;if(this.Data.MapData&&this.Data.MapData.has(item.Key)){var dataItem=this.Data.MapData.get(item.Key);color=config.TextColor;var text=this.FormatValue(item,dataItem);if(item.ColorType===3&&IFrameSplitOperator.IsNumber(dataItem.Value))color=this.GetPriceColor(dataItem.Value);else if(item.ColorType==1&&IFrameSplitOperator.IsNumber(dataItem.Value))color=this.GetUpDownColor(dataItem.Value,0);else if(item.ColorType==4)color=this.UpColor;else if(item.ColorType==5)color=this.DownColor;if(item.TextColor)color=item.TextColor;if(text){if(i==0&&item.ShowType==1)//整行显示
16170
+ this.DrawBuySell=function(position){if(this.BuySellCount<=0)return;var config=this.BuySellConfig;var top=position.Top;var left=position.Left+config.Margin.Left;var cellWidth=(position.Width-config.Margin.Left-config.Margin.Right)/4;var yText=top+config.Margin.Top;var xText=left;this.Canvas.font=config.Font;this.Canvas.textAlign='left';this.Canvas.textBaseline='bottom';var cellHeight=this.Canvas.measureText("擎").width+config.CellMargin.Top+config.CellMargin.Bottom;var count=this.BuySellCount;var sellVol=0,buyVol=0;for(var i=count-1;i>=0;--i){xText=left;var item=this.Data.Sells[i];this.DrawBuySellItem(item,xText,yText,cellWidth,cellHeight,{Type:2,Index:i});if(IFrameSplitOperator.IsNumber(item.Vol))sellVol+=item.Vol;yText+=cellHeight;}var yCenter=null;if(config.CenterLine)//留出画线的位置
16171
+ {yCenter=yText;var lineConfig=config.CenterLine;var lineWidth=lineConfig.Width;yText+=lineWidth;}for(var i=0;i<count&&i<this.Data.Buys.length;++i){xText=left;var item=this.Data.Buys[i];this.DrawBuySellItem(item,xText,yText,cellWidth,cellHeight,{Type:1,Index:i});if(IFrameSplitOperator.IsNumber(item.Vol))buyVol+=item.Vol;yText+=cellHeight;}position.Top=yText;if(IFrameSplitOperator.IsNumber(yCenter)&&config.CenterLine){var lineConfig=config.CenterLine;var xLeft=position.Border.Left,xRight=position.Border.Right;var lineWidth=lineConfig.Width;if(buyVol+sellVol>0){var buyRate=buyVol/(buyVol+sellVol);var barWidth=xRight-xLeft;var buyWidth=barWidth*buyRate;var xCenter=xLeft+buyWidth;this.Canvas.lineWidth=lineWidth;this.Canvas.strokeStyle=lineConfig.BuyColor;this.Canvas.beginPath();this.Canvas.moveTo(xLeft,ToFixedPoint2(lineWidth,yCenter));this.Canvas.lineTo(xCenter,ToFixedPoint2(lineWidth,yCenter));this.Canvas.stroke();this.Canvas.strokeStyle=lineConfig.SellColor;this.Canvas.beginPath();this.Canvas.moveTo(xCenter,ToFixedPoint2(lineWidth,yCenter));this.Canvas.lineTo(xRight,ToFixedPoint2(lineWidth,yCenter));this.Canvas.stroke();}else{this.Canvas.strokeStyle=lineConfig.NoneColor;this.Canvas.lineWidth=lineWidth;this.Canvas.beginPath();this.Canvas.moveTo(xLeft,ToFixedPoint2(lineWidth,yCenter));this.Canvas.lineTo(xRight,ToFixedPoint2(lineWidth,yCenter));this.Canvas.stroke();}}if(config.BottomLine&&config.BottomLine.Enable){var xLeft=position.Border.Left,xRight=position.Border.Right;this.Canvas.strokeStyle=config.BottomLine.Color;this.Canvas.lineWidth=1*GetDevicePixelRatio();this.Canvas.beginPath();this.Canvas.moveTo(xLeft,ToFixedPoint(yText));this.Canvas.lineTo(xRight,ToFixedPoint(yText));this.Canvas.stroke();}if(config.TopLine&&config.TopLine.Enable){var xLeft=position.Border.Left,xRight=position.Border.Right;this.Canvas.strokeStyle=config.BottomLine.Color;this.Canvas.lineWidth=1*GetDevicePixelRatio();this.Canvas.beginPath();this.Canvas.moveTo(xLeft,ToFixedPoint(top));this.Canvas.lineTo(xRight,ToFixedPoint(top));this.Canvas.stroke();}};//itemInfo={ Type:2(1=买 2=卖), Index:数据索引 }
16172
+ this.DrawBuySellItem=function(item,left,top,cellWidth,cellHeight,itemInfo){var config=this.BuySellConfig;var xText=left;var yBottom=top+cellHeight-config.CellMargin.Bottom+config.CellMargin.YOffset;if(item.Name){this.Canvas.fillStyle=config.TitleColor;this.Canvas.fillText(item.Name,xText+config.CellMargin.Left,yBottom);var textWidth=this.Canvas.measureText(item.Name).width+2;var rtCell={Left:xText+config.CellMargin.Left,Top:top,Height:cellHeight,Width:textWidth};rtCell.Right=rtCell.Left+rtCell.Width;rtCell.Bottom=rtCell.Top+rtCell.Height;var key=(itemInfo.Type==1?"BUY":"SELL")+'_NAME_'+itemInfo.Index;this.AryCellRect.push({Rect:rtCell,Data:{Type:3,Key:key,Value:{Index:itemInfo.Index,Type:itemInfo.Type,YClose:this.GetYClose(),AryData:itemInfo.Type==1?this.Data.Buys:this.Data.Sells}}});}xText+=cellWidth;if(IFrameSplitOperator.IsNumber(item.Price)){var key=(itemInfo.Type==1?"BUY":"SELL")+'_PRICE_'+itemInfo.Index;var mouseOnItem=this.IsMouseOn(key);var text=item.Price.toFixed(this.Decimal);var textWidth=this.Canvas.measureText(text).width;var x=xText+cellWidth-textWidth-config.CellMargin.Right;var rtCell={Left:xText,Width:cellWidth,Top:top,Height:cellHeight};rtCell.Right=rtCell.Left+rtCell.Width;rtCell.Bottom=rtCell.Top+rtCell.Height;if(mouseOnItem)this.DrawMouseOnRect(rtCell);this.Canvas.fillStyle=this.GetPriceColor(item.Price);this.Canvas.fillText(text,x,yBottom);if(this.MapMouseOnKey.has(key))this.AryCellRect.push({Rect:rtCell,Data:{Type:1,Key:key,Value:item.Price}});}xText+=cellWidth;xText+=cellWidth;if(IFrameSplitOperator.IsNumber(item.Vol)){var text=item.Vol.toFixed(0);var textWidth=this.Canvas.measureText(text).width;var x=xText+cellWidth-textWidth-config.CellMargin.Right;this.Canvas.fillStyle=config.VolColor;this.Canvas.fillText(text,x,yBottom);}};this.IsMouseOn=function(key){if(!this.MouseOnItem)return null;if(this.MouseOnItem.Key===key)return this.MouseOnItem;return null;};this.DrawMouseOnRect=function(rect){if(!this.MouseOnItem)return;this.Canvas.fillStyle=this.MouseOnConfig.BGColor;this.Canvas.fillRect(rect.Left,rect.Top,rect.Width,rect.Height);this.MouseOnItem.Rect=rect;};this.DrawTable=function(position){if(!IFrameSplitOperator.IsNonEmptyArray(this.Column))return;var config=this.TableConfig;var top=position.Top;var left=position.Left+config.Margin.Left;var cellWidth=(position.Width-config.Margin.Left-config.Margin.Right)/4;var yText=top+config.Margin.Top;var xText=left;this.Canvas.font=config.Font;this.Canvas.textAlign='left';this.Canvas.textBaseline='bottom';var cellHeight=this.Canvas.measureText("擎").width+config.CellMargin.Top+config.CellMargin.Bottom;for(var i=0;i<this.Column.length;++i){xText=left;var item=this.Column[i];if(!item||!IFrameSplitOperator.IsNonEmptyArray(item))continue;this.DrawRowItem(item,xText,yText,cellWidth,cellHeight);yText+=cellHeight;}};this.DrawRowItem=function(aryData,left,top,cellWidth,cellHeight){var config=this.TableConfig;var xText=left;var yBottom=top+cellHeight-config.CellMargin.Bottom+config.CellMargin.YOffset;for(var i=0;i<aryData.length&&i<2;++i){var item=aryData[i];if(item){if(item.Name){this.Canvas.fillStyle=config.TitleColor;this.Canvas.fillText(item.Name,xText+config.CellMargin.Left,yBottom);}xText+=cellWidth;if(this.Data.MapData&&this.Data.MapData.has(item.Key)){var dataItem=this.Data.MapData.get(item.Key);color=config.TextColor;var text=this.FormatValue(item,dataItem);if(item.ColorType===3&&IFrameSplitOperator.IsNumber(dataItem.Value))color=this.GetPriceColor(dataItem.Value);else if(item.ColorType==1&&IFrameSplitOperator.IsNumber(dataItem.Value))color=this.GetUpDownColor(dataItem.Value,0);else if(item.ColorType==4)color=this.UpColor;else if(item.ColorType==5)color=this.DownColor;if(item.TextColor)color=item.TextColor;if(text){if(i==0&&item.ShowType==1)//整行显示
16156
16173
  {var mouseOnItem=this.IsMouseOn(item.Key);var textWidth=this.Canvas.measureText(text).width;var x=xText+cellWidth*3-textWidth-config.CellMargin.Right;var rtCell={Left:xText+cellWidth,Top:top,Width:cellWidth*2,Height:cellHeight};rtCell.Right=rtCell.Left+rtCell.Width;rtCell.Bottom=rtCell.Top+rtCell.Height;if(mouseOnItem)this.DrawMouseOnRect(rtCell);this.Canvas.fillStyle=color;this.Canvas.fillText(text,x,yBottom);if(this.MapMouseOnKey.has(item.Key))this.AryCellRect.push({Rect:rtCell,Data:{Type:2,Key:item.Key,Value:dataItem}});break;}else{var mouseOnItem=this.IsMouseOn(item.Key);var textWidth=this.Canvas.measureText(text).width;var x=xText+cellWidth-textWidth-config.CellMargin.Right;var rtCell={Left:xText,Top:top,Width:cellWidth,Height:cellHeight};rtCell.Right=rtCell.Left+rtCell.Width;rtCell.Bottom=rtCell.Top+rtCell.Height;if(mouseOnItem)this.DrawMouseOnRect(rtCell);this.Canvas.fillStyle=color;this.Canvas.fillText(text,x,yBottom);if(this.MapMouseOnKey.has(item.Key))this.AryCellRect.push({Rect:rtCell,Data:{Type:2,Key:item.Key,Value:dataItem}});}}}xText+=cellWidth;}else{xText+=cellWidth+cellWidth;}}};this.FormatValue=function(column,data){var dec=0;//小数位数
16157
16174
  if(IFrameSplitOperator.IsNumber(column.FloatPrecision)){if(column.FloatPrecision===-1)dec=this.Decimal;else dec=column.FloatPrecision;}var text=null;if(!data)return text;if(data.Text){text=data.Text;}else if(IFrameSplitOperator.IsNumber(data.Value)){var value=data.Value;text=value.toFixed(dec);//格式化
16158
16175
  if(column.Format&&IFrameSplitOperator.IsNumber(column.Format.Type)){var format=column.Format;switch(format.Type){case 1://原始数据
16159
16176
  text=value.toFixed(dec);break;case 2://千分位分割
16160
- text=IFrameSplitOperator.FormatValueThousandsString(value,dec);break;case 3:var exfloatPrecision=1;if(IFrameSplitOperator.IsNumber(format.ExFloatPrecision))exfloatPrecision=format.ExFloatPrecision;text=IFrameSplitOperator.FormatValueStringV2(value,dec,exfloatPrecision);break;}}}if(column.StringFormat&&text)text=column.StringFormat.replace('{Value}',text);return text;};this.GetPriceColor=function(price){var upperSymbol=null;if(this.Data.Symbol)upperSymbol=this.Data.Symbol.toUpperCase();if(MARKET_SUFFIX_NAME.IsChinaFutures(upperSymbol)){if(!IFrameSplitOperator.IsNumber(this.Data.YFClose))return this.UnchangeColor;return this.GetUpDownColor(price,this.Data.YFClose);}else{if(!IFrameSplitOperator.IsNumber(this.Data.YClose))return this.UnchangeColor;return this.GetUpDownColor(price,this.Data.YClose);}};this.GetUpDownColor=function(price,price2){if(price>price2)return this.UpColor;else if(price<price2)return this.DownColor;else return this.UnchangeColor;};}/*
16177
+ text=IFrameSplitOperator.FormatValueThousandsString(value,dec);break;case 3:var exfloatPrecision=1;if(IFrameSplitOperator.IsNumber(format.ExFloatPrecision))exfloatPrecision=format.ExFloatPrecision;text=IFrameSplitOperator.FormatValueStringV2(value,dec,exfloatPrecision);break;}}}if(column.StringFormat&&text)text=column.StringFormat.replace('{Value}',text);return text;};this.GetPriceColor=function(price){var yClose=this.GetYClose();if(!IFrameSplitOperator.IsNumber(yClose))return this.UnchangeColor;return this.GetUpDownColor(price,yClose);};this.GetYClose=function(){var upperSymbol=null;if(this.Data.Symbol)upperSymbol=this.Data.Symbol.toUpperCase();var price=null;if(MARKET_SUFFIX_NAME.IsChinaFutures(upperSymbol))price=this.Data.YFClose;else price=this.Data.YClose;return price;};this.GetUpDownColor=function(price,price2){if(price>price2)return this.UpColor;else if(price<price2)return this.DownColor;else return this.UnchangeColor;};}/*
16161
16178
  Copyright (c) 2018 jones
16162
16179
 
16163
16180
  http://www.apache.org/licenses/LICENSE-2.0
@@ -16303,7 +16320,7 @@ if(this.MouseOnItem){if(this.MouseOnItem.Data==item)color=this.TextConfig.MouseO
16303
16320
  */this.Canvas.restore();this.ResizeDataCount(endIndex);};this.ResizeDataCount=function(startIndex){if(!IFrameSplitOperator.IsNumber(startIndex))return;if(startIndex<=0)return;if(this.LimitCount<=0)return;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.AryText))return;if(this.Data.AryText.length<=this.LimitCount)return;var delCount=this.Data.AryText.length-this.LimitCount;for(var i=0;i<delCount&&i<startIndex;++i){this.Data.AryText.shift();}};this.GetTooltipData=function(x,y,tooltip){var rtClient=this.GetClientRect();if(x>=rtClient.Left&&x<=rtClient.Right){for(var i=0;i<this.AryRect.length;++i){var item=this.AryRect[i];if(Path2DHelper.PtInRect(x,y,item.Rect)){tooltip.Data=item;tooltip.ChartPaint=this;tooltip.Type=1;return true;}}}return false;};this.ScrollStep=function(defaultStep){if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.AryText))return false;if(!this.FirstItem)return false;var moveStep=this.MoveStep;if(IFrameSplitOperator.IsNumber(defaultStep))moveStep=defaultStep;var rtClient=this.GetClientRect();var left=rtClient.Left;var right=rtClient.Right;var width=this.FirstItem.Move.Width;var xOffset=this.FirstItem.Move.XOffset+moveStep;if(right-xOffset+width<left){var startIndex=this.GetDataIndex(this.FirstItem);nextIndex=startIndex-1;if(nextIndex<0){var index=this.Data.AryText.length-1;this.FirstItem=this.Data.AryText[index];this.FirstItem.Move={XOffset:0};}else{this.FirstItem=this.Data.AryText[nextIndex];this.FirstItem.Move={XOffset:xOffset-width};}}else{this.FirstItem.Move.XOffset=xOffset;}return true;};}/********************************************************************************
16304
16321
  * 版本信息输出
16305
16322
  *
16306
- */var HQCHART_VERSION="1.1.15695";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();//把给外界调用的方法暴露出来
16323
+ */var HQCHART_VERSION="1.1.15704";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();//把给外界调用的方法暴露出来
16307
16324
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
16308
16325
  // BaseIndex:BaseIndex,
16309
16326
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.15696",
3
+ "version": "1.1.15705",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -1309,7 +1309,7 @@ function JSFloatTooltip()
1309
1309
  if (!this.DivDialog) return;
1310
1310
  this.LanguageID=this.HQChart.LanguageID;
1311
1311
 
1312
- if (data.DataType==1)
1312
+ if (data.DataType==1) //K线图|分时图
1313
1313
  {
1314
1314
  var tooltipData=data.Tooltip;
1315
1315
  if (!tooltipData) return;
@@ -1398,6 +1398,10 @@ function JSFloatTooltip()
1398
1398
  this.DealItemTooltip(data);
1399
1399
  }
1400
1400
  }
1401
+ else if (data.DataType==6) //五档买卖盘
1402
+ {
1403
+ this.StockInfoTooltip(data);
1404
+ }
1401
1405
  }
1402
1406
 
1403
1407
  this.UpdateRealtimeHQTooltip=function(data)
@@ -1820,6 +1824,54 @@ function JSFloatTooltip()
1820
1824
 
1821
1825
  this.ShowTooltip(data);
1822
1826
  }
1827
+
1828
+ this.StockInfoTooltip=function(data)
1829
+ {
1830
+ var tooltipData=data.Tooltip;
1831
+ var cellData=null;
1832
+ if (tooltipData.Data && tooltipData.Data.Data) cellData=tooltipData.Data.Data;
1833
+ if (!cellData) return;
1834
+ if (cellData.Type!=3) return;
1835
+ var aryData=null; //买卖5档数据
1836
+ if (cellData.Value && cellData.Value.AryData) aryData=cellData.Value.AryData;
1837
+ if (!IFrameSplitOperator.IsNonEmptyArray(aryData)) return;
1838
+
1839
+ var aryText=[]; //输出内容
1840
+ var totalVol=0, totalAmount=0;
1841
+ for(var i=0;i<aryData.length && i<=cellData.Value.Index;++i)
1842
+ {
1843
+ var item=aryData[i];
1844
+ if (IFrameSplitOperator.IsNumber(item.Vol) && IFrameSplitOperator.IsNumber(item.Price))
1845
+ {
1846
+ totalVol+=item.Vol;
1847
+ totalAmount+=item.Price*item.Vol;
1848
+ }
1849
+ }
1850
+
1851
+ var strPrice="--.---"; //均价
1852
+ var avPrice=null;
1853
+ if (totalVol>0)
1854
+ {
1855
+ avPrice=totalAmount/totalVol;
1856
+ strPrice=avPrice.toFixed(3);
1857
+ }
1858
+
1859
+ var strIncrease='--.--%' //涨幅
1860
+ if (IFrameSplitOperator.IsNumber(avPrice) && IFrameSplitOperator.IsPlusNumber(cellData.Value.YClose))
1861
+ {
1862
+ var value=(avPrice-cellData.Value.YClose)/cellData.Value.YClose*100;
1863
+ strIncrease=`${value.toFixed(2)}%`;
1864
+ }
1865
+
1866
+
1867
+ var text=` 前${cellData.Value.Index+1}档 幅度:${strIncrease} 委托总量:${totalVol} 均价:${strPrice} `;
1868
+ var item={ Title:text, Color:this.TextColor, IsMergeCell:true ,TitleClassName:this.TitleAlign.Center };
1869
+ aryText.push(item);
1870
+
1871
+ this.AryText=aryText;
1872
+ this.UpdateTableDOM();
1873
+ this.ShowTooltip(data);
1874
+ }
1823
1875
 
1824
1876
  this.UpdateTableDOM=function()
1825
1877
  {