hqchart 1.1.15696 → 1.1.15708
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.
- package/lib/umychart.vue.js +46 -29
- package/package.json +1 -1
- package/src/jscommon/umychart.DialogTooltip.js +53 -1
- package/src/jscommon/umychart.StockInfo.js +123 -14
- package/src/jscommon/umychart.complier.js +10 -0
- package/src/jscommon/umychart.js +107 -86
- package/src/jscommon/umychart.style.js +2 -2
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +120 -89
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +296 -104
package/lib/umychart.vue.js
CHANGED
|
@@ -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);
|
|
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:
|
|
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();};
|
|
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=
|
|
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.
|
|
9304
|
-
|
|
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)
|
|
9309
|
-
|
|
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<
|
|
9332
|
+
for(var i=0;i<currentLength;++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);if(item)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;
|
|
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(
|
|
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)
|
|
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);}}
|
|
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.
|
|
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.
|
|
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.
|
|
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;
|
|
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:
|
|
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:
|
|
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
|
|
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.
|
|
16323
|
+
*/var HQCHART_VERSION="1.1.15707";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
|
@@ -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
|
{
|