hqchart 1.1.15312 → 1.1.15319
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
CHANGED
|
@@ -2640,7 +2640,7 @@ this.UpdateTradeStatusData=function(data,option){if(option){//是否清空
|
|
|
2640
2640
|
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;};//键盘下按暂停更新
|
|
2641
2641
|
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:} } ]
|
|
2642
2642
|
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);//设置锁
|
|
2643
|
-
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;};}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)//键盘事件
|
|
2643
|
+
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)//键盘事件
|
|
2644
2644
|
{if(this.JSChartContainer&&this.JSChartContainer.OnKeyDown)this.JSChartContainer.OnKeyDown(e);}function OnKeyUp(e)//键盘事件
|
|
2645
2645
|
{if(this.JSChartContainer&&this.JSChartContainer.OnKeyUp)this.JSChartContainer.OnKeyUp(e);}function OnWheel(e)//上下滚动事件
|
|
2646
2646
|
{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;}//获取文字高度和宽度
|
|
@@ -4485,15 +4485,15 @@ this.newMethod();delete this.newMethod;this.ClassName='ChartScatterPlotV2';//类
|
|
|
4485
4485
|
this.Color=g_JSChartResource.ChartScatterPlotV2.Color;//点颜色
|
|
4486
4486
|
this.TextColor=g_JSChartResource.ChartScatterPlotV2.TextColor;this.Radius=g_JSChartResource.ChartScatterPlotV2.Radius;this.Font=g_JSChartResource.ChartScatterPlotV2.Font;//半径
|
|
4487
4487
|
this.TooltipData=[];this.MapCache=null;//key=date/date-time value={ Data:[] }
|
|
4488
|
-
this.AryPoint=[];//[{ Value:, Radius:半径(可选), Color:颜色(可选),ColorBorder:边框颜色(可选),
|
|
4488
|
+
this.AryPoint=[];//[{ Value:, Radius:半径(可选), Radius2:固定半径(可选), Color:颜色(可选),ColorBorder:边框颜色(可选),
|
|
4489
4489
|
// Text:{ Text:显示文字, Color:"rgb(0,30,100)", BaseLine:1, YOffset:5, Align:2 }; }]
|
|
4490
4490
|
// BaseLine: 0=圆点上面 1=圆点下面 Align: 2=居中 1=左 3=右
|
|
4491
4491
|
this.GetKValue=ChartData.GetKValue;this.TextHeight=10;this.AryDrawRect=[];this.ReloadResource=function(resource){this.Color=g_JSChartResource.ChartScatterPlotV2.Color;//点颜色
|
|
4492
|
-
this.TextColor=g_JSChartResource.ChartScatterPlotV2.TextColor;this.Radius=g_JSChartResource.ChartScatterPlotV2.Radius;this.Font=g_JSChartResource.ChartScatterPlotV2.Font;};this.BuildCacheData=function(){var mapData=new _map2.default();this.MapCache=mapData;if(!IFrameSplitOperator.IsNonEmptyArray(this.AryPoint))return;for(var i=0;i<this.AryPoint.length;++i){var item=this.AryPoint[i];var key=this.BuildKey(item);if(mapData.has(key)){var mapItem=mapData.get(key);mapItem.Data.push(item);}else{mapData.set(key,{Data:[item]});}}};this.Draw=function(){this.TooltipData=[];this.AryDrawRect=[];if(!this.IsShow||this.ChartFrame.IsMinSize||!this.IsVisible)return;if(this.IsShowIndexTitleOnly())return;if(this.IsHideScriptIndex())return;if(!IFrameSplitOperator.IsNonEmptyArray(this.AryPoint))return;if(!this.MapCache||this.MapCache.size<=0)return;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return;this.DrawScatterPlot();this.AryDrawRect=[];};this.DrawScatterPlot=function(){var bHScreen=this.ChartFrame.IsHScreen===true;var isMinute=this.IsMinuteFrame();var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var xPointCount=this.ChartFrame.XPointCount;if(bHScreen){var border=this.ChartBorder.GetHScreenBorder();var chartright=border.BottomEx;var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;}else{var border=this.ChartBorder.GetBorder();var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;}var lockRect=this.GetLockRect();if(lockRect){if(bHScreen)chartright=lockRect.Top;else chartright=lockRect.Left;}this.Canvas.save();this.ClipClient(bHScreen);this.Canvas.font=this.Font;this.Canvas.textAlign="left";this.Canvas.textBaseline="bottom";this.TextHeight=this.GetFontHeight();for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var kItem=this.Data.Data[i];if(!kItem)continue;var key=this.BuildKey(kItem);if(!this.MapCache.has(key))continue;var mapItem=this.MapCache.get(key);if(!IFrameSplitOperator.IsNonEmptyArray(mapItem.Data))continue;if(isMinute){var x=this.ChartFrame.GetXFromIndex(j);}else{var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;var x=left+(right-left)/2;}if(x>chartright)break;for(var k=0;k<mapItem.Data.length;++k){var item=mapItem.Data[k];this.DrawItem(kItem,item,x);}}this.Canvas.restore();};this.DrawItem=function(kItem,item,x){var dataWidth=this.ChartFrame.DataWidth;var maxRadius=dataWidth/2;if(!item)return;var price=item.Value;if(IFrameSplitOperator.IsString(item.Value))price=this.GetKValue(kItem,item.Value);if(!IFrameSplitOperator.IsNumber(price))return;var y=this.GetYFromData(price,false);var radius=this.Radius;if(item.Radius)radius=item.Radius;if(!IFrameSplitOperator.IsNumber(radius))return;if(radius>maxRadius)radius=maxRadius;this.Canvas.beginPath();this.Canvas.arc(x,y,radius,0,2*Math.PI);var color=this.Color;if(item.Color)color=item.Color;if(color){this.Canvas.fillStyle=color;this.Canvas.fill();}if(item.ColorBorder){this.Canvas.strokeStyle=item.ColorBorder;this.Canvas.stroke();}if(dataWidth>this.TextHeight){this.DrawText(item.Text,x,y,radius);}var itemTooltip={X:x,Y:y,Radius:radius,Data:item};this.TooltipData.push(itemTooltip);};this.DrawText=function(item,x,y,radius){if(!item||!item.Text)return;var bHScreen=this.ChartFrame.IsHScreen===true;if(bHScreen)return;var text=item.Text;var textWidth=this.Canvas.measureText(text).width;var baseLine=1;//1=上 2=下
|
|
4492
|
+
this.TextColor=g_JSChartResource.ChartScatterPlotV2.TextColor;this.Radius=g_JSChartResource.ChartScatterPlotV2.Radius;this.Font=g_JSChartResource.ChartScatterPlotV2.Font;};this.BuildCacheData=function(){var mapData=new _map2.default();this.MapCache=mapData;if(!IFrameSplitOperator.IsNonEmptyArray(this.AryPoint))return;for(var i=0;i<this.AryPoint.length;++i){var item=this.AryPoint[i];var key=this.BuildKey(item);if(mapData.has(key)){var mapItem=mapData.get(key);mapItem.Data.push(item);}else{mapData.set(key,{Data:[item]});}}};this.Draw=function(){this.TooltipData=[];this.AryDrawRect=[];if(!this.IsShow||this.ChartFrame.IsMinSize||!this.IsVisible)return;if(this.IsShowIndexTitleOnly())return;if(this.IsHideScriptIndex())return;if(!IFrameSplitOperator.IsNonEmptyArray(this.AryPoint))return;if(!this.MapCache||this.MapCache.size<=0)return;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return;this.DrawScatterPlot();this.AryDrawRect=[];};this.DrawScatterPlot=function(){var bHScreen=this.ChartFrame.IsHScreen===true;var isMinute=this.IsMinuteFrame();var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var xPointCount=this.ChartFrame.XPointCount;if(bHScreen){var border=this.ChartBorder.GetHScreenBorder();var chartright=border.BottomEx;var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;}else{var border=this.ChartBorder.GetBorder();var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;}var lockRect=this.GetLockRect();if(lockRect){if(bHScreen)chartright=lockRect.Top;else chartright=lockRect.Left;}this.Canvas.save();this.ClipClient(bHScreen);this.Canvas.font=this.Font;this.Canvas.textAlign="left";this.Canvas.textBaseline="bottom";this.TextHeight=this.GetFontHeight();for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var kItem=this.Data.Data[i];if(!kItem)continue;var key=this.BuildKey(kItem);if(!this.MapCache.has(key))continue;var mapItem=this.MapCache.get(key);if(!IFrameSplitOperator.IsNonEmptyArray(mapItem.Data))continue;if(isMinute){var x=this.ChartFrame.GetXFromIndex(j);}else{var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;var x=left+(right-left)/2;}if(x>chartright)break;for(var k=0;k<mapItem.Data.length;++k){var item=mapItem.Data[k];this.DrawItem(kItem,item,x);}}this.Canvas.restore();};this.DrawItem=function(kItem,item,x){var dataWidth=this.ChartFrame.DataWidth;var maxRadius=dataWidth/2;if(!item)return;var price=item.Value;if(IFrameSplitOperator.IsString(item.Value))price=this.GetKValue(kItem,item.Value);if(!IFrameSplitOperator.IsNumber(price))return;var y=this.GetYFromData(price,false);var radius=this.Radius;if(IFrameSplitOperator.IsNumber(item.Radius2)){radius=item.Radius2;}else{if(IFrameSplitOperator.IsNumber(item.Radius))radius=item.Radius;if(!IFrameSplitOperator.IsNumber(radius))return;if(radius>maxRadius)radius=maxRadius;}this.Canvas.beginPath();this.Canvas.arc(x,y,radius,0,2*Math.PI);var color=this.Color;if(item.Color)color=item.Color;if(color){this.Canvas.fillStyle=color;this.Canvas.fill();}if(item.ColorBorder){this.Canvas.strokeStyle=item.ColorBorder;this.Canvas.stroke();}if(dataWidth>this.TextHeight){this.DrawText(item.Text,x,y,radius);}var itemTooltip={X:x,Y:y,Radius:radius,Data:item};this.TooltipData.push(itemTooltip);};this.DrawText=function(item,x,y,radius){if(!item||!item.Text)return;var bHScreen=this.ChartFrame.IsHScreen===true;if(bHScreen)return;var text=item.Text;var textWidth=this.Canvas.measureText(text).width;var baseLine=1;//1=上 2=下
|
|
4493
4493
|
var align=2;var yOffset=2;var xText=x;if(IFrameSplitOperator.IsNumber(item.YOffset))yOffset=item.YOffset;//Y偏移
|
|
4494
4494
|
if(IFrameSplitOperator.IsNumber(item.BaseLine))baseLine=item.BaseLine;var yText=y-radius-yOffset;if(baseLine==2)yText=y+radius+this.TextHeight+yOffset;//下
|
|
4495
4495
|
if(IFrameSplitOperator.IsNumber(item.Align))align=item.Align;//左中右
|
|
4496
|
-
if(align==1)xText=x-textWidth;else if(align==2)xText=x-textWidth/2;var rtText=null;if(item.BG&&item.BG.Color){var bgItem=item.BG;var marginLeft=2,marginRight=2,yBGOffset=1,marginBottom=0,marginTop=0;if(IFrameSplitOperator.IsNumber(bgItem.MarginLeft))marginLeft=bgItem.MarginLeft;if(IFrameSplitOperator.IsNumber(bgItem.MarginRight))marginRight=bgItem.MarginRight;if(IFrameSplitOperator.IsNumber(bgItem.MarginBottom))marginBottom=bgItem.MarginBottom;if(IFrameSplitOperator.IsNumber(bgItem.MarginTop))marginTop=bgItem.MarginTop;if(IFrameSplitOperator.IsNumber(bgItem.YOffset))yBGOffset=bgItem.YOffset;var rtBG={Left:xText-marginLeft,Bottom:yText+yBGOffset+marginBottom,Width:textWidth+marginLeft+marginRight,Height:this.TextHeight+marginBottom+marginTop};rtBG.Right=rtBG.Left+rtBG.Width;rtBG.Top=rtBG.Bottom-rtBG.Height;if(this.IsTextOverlap(rtBG))return;this.Canvas.fillStyle=bgItem.Color;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);rtText=rtBG;}else{rtText={Left:xText,Bottom:yText,Width:textWidth,Height:this.TextHeight};rtText.Right=rtText.Left+rtText.Width;rtText.Top=rtText.Bottom-rtText.Height;if(this.IsTextOverlap(rtText))return;}if(item.Color)this.Canvas.fillStyle=item.Color;else this.Canvas.fillStyle=this.TextColor;this.Canvas.fillText(text,xText,yText);this.AryDrawRect.push(rtText);};this.IsTextOverlap=function(rtText){for(var i=0;i<this.AryDrawRect.length;++i){var item=this.AryDrawRect[i];if(IsRectOverlap(rtText,item))return true;}return false;};this.GetMaxMin=function(){var range={Min:null,Max:null};if(!IFrameSplitOperator.IsNonEmptyArray(this.AryPoint))return range;if(!this.MapCache||this.MapCache.size<=0)return range;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return range;var xPointCount=this.ChartFrame.XPointCount;var start=this.Data.DataOffset;if(this.ChartFrame.GlobalOption&&this.ChartFrame.GlobalOption.IsValueFullRange){start=0;xPointCount=this.Data.Data.length;}for(var i=start,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var kItem=this.Data.Data[i];if(!kItem)continue;var key=this.BuildKey(kItem);if(!this.MapCache.has(key))continue;var mapItem=this.MapCache.get(key);if(!IFrameSplitOperator.IsNonEmptyArray(mapItem.Data))continue;for(k=0;k<mapItem.Data.length;++k){var item=mapItem.Data[k];var value=item.Value;if(IFrameSplitOperator.IsString(item.Value))value=this.GetKValue(kItem,item.Value);if(!IFrameSplitOperator.IsNumber(value))continue;if(range.Max==null)range.Max=value;else if(range.Max<value)range.Max=value;if(range.Min==null)range.Min=value;else if(range.Min>value)range.Min=value;}}return range;};this.GetTooltipData=function(x,y,tooltip){if(!this.IsShow)return false;if(!IFrameSplitOperator.IsNonEmptyArray(this.TooltipData))return false;for(var i=this.TooltipData.length-1;i>=0;--i){var item=this.TooltipData[i];this.Canvas.beginPath();this.Canvas.arc(item.X,item.Y,item.Radius,0,2*Math.PI);if(this.Canvas.isPointInPath(x,y)){JSConsole.Chart.Log('[ChartScatterPlotV2::GetTooltipData] point',item);tooltip.Data=item;tooltip.ChartPaint=this;tooltip.Type=6;//散点图
|
|
4496
|
+
if(align==1)xText=x-textWidth;else if(align==2)xText=x-textWidth/2;var rtText=null;if(item.BG&&item.BG.Color){var bgItem=item.BG;var marginLeft=2,marginRight=2,yBGOffset=1,marginBottom=0,marginTop=0;if(IFrameSplitOperator.IsNumber(bgItem.MarginLeft))marginLeft=bgItem.MarginLeft;if(IFrameSplitOperator.IsNumber(bgItem.MarginRight))marginRight=bgItem.MarginRight;if(IFrameSplitOperator.IsNumber(bgItem.MarginBottom))marginBottom=bgItem.MarginBottom;if(IFrameSplitOperator.IsNumber(bgItem.MarginTop))marginTop=bgItem.MarginTop;if(IFrameSplitOperator.IsNumber(bgItem.YOffset))yBGOffset=bgItem.YOffset;var rtBG={Left:xText-marginLeft,Bottom:yText+yBGOffset+marginBottom,Width:textWidth+marginLeft+marginRight,Height:this.TextHeight+marginBottom+marginTop};rtBG.Right=rtBG.Left+rtBG.Width;rtBG.Top=rtBG.Bottom-rtBG.Height;if(this.IsTextOverlap(rtBG))return;this.Canvas.fillStyle=bgItem.Color;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);rtText=rtBG;}else{rtText={Left:xText,Bottom:yText,Width:textWidth,Height:this.TextHeight};rtText.Right=rtText.Left+rtText.Width;rtText.Top=rtText.Bottom-rtText.Height;if(this.IsTextOverlap(rtText))return;}if(item.Color)this.Canvas.fillStyle=item.Color;else this.Canvas.fillStyle=this.TextColor;this.Canvas.fillText(text,xText,yText);this.AryDrawRect.push(rtText);};this.IsTextOverlap=function(rtText){for(var i=0;i<this.AryDrawRect.length;++i){var item=this.AryDrawRect[i];if(IsRectOverlap(rtText,item))return true;}return false;};this.GetMaxMin=function(){var range={Min:null,Max:null};if(!IFrameSplitOperator.IsNonEmptyArray(this.AryPoint))return range;if(!this.MapCache||this.MapCache.size<=0)return range;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return range;var xPointCount=this.ChartFrame.XPointCount;var start=this.Data.DataOffset;if(this.ChartFrame.GlobalOption&&this.ChartFrame.GlobalOption.IsValueFullRange){start=0;xPointCount=this.Data.Data.length;}for(var i=start,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var kItem=this.Data.Data[i];if(!kItem)continue;var key=this.BuildKey(kItem);if(!this.MapCache.has(key))continue;var mapItem=this.MapCache.get(key);if(!IFrameSplitOperator.IsNonEmptyArray(mapItem.Data))continue;for(var k=0;k<mapItem.Data.length;++k){var item=mapItem.Data[k];var value=item.Value;if(IFrameSplitOperator.IsString(item.Value))value=this.GetKValue(kItem,item.Value);if(!IFrameSplitOperator.IsNumber(value))continue;if(range.Max==null)range.Max=value;else if(range.Max<value)range.Max=value;if(range.Min==null)range.Min=value;else if(range.Min>value)range.Min=value;}}return range;};this.GetTooltipData=function(x,y,tooltip){if(!this.IsShow)return false;if(!IFrameSplitOperator.IsNonEmptyArray(this.TooltipData))return false;for(var i=this.TooltipData.length-1;i>=0;--i){var item=this.TooltipData[i];this.Canvas.beginPath();this.Canvas.arc(item.X,item.Y,item.Radius,0,2*Math.PI);if(this.Canvas.isPointInPath(x,y)){JSConsole.Chart.Log('[ChartScatterPlotV2::GetTooltipData] point',item);tooltip.Data=item;tooltip.ChartPaint=this;tooltip.Type=6;//散点图
|
|
4497
4497
|
return true;}}};}//子线段
|
|
4498
4498
|
function ChartSubLine(){this.newMethod=ChartLine;//派生
|
|
4499
4499
|
this.newMethod();delete this.newMethod;this.ClassName='ChartSubLine';//类名
|
|
@@ -8717,7 +8717,7 @@ this.UpdateWindowIndex=function(index){var bindData=new ChartData();bindData.Dat
|
|
|
8717
8717
|
{var periodData=bindData.GetPeriodData(bindData.Period);bindData.Data=periodData;}}if(typeof this.WindowIndex[index].ExecuteScript=='function'){var hisData=this.ChartPaint[0].Data;this.WindowIndex[index].ExecuteScript(this,index,hisData);}else if(typeof this.WindowIndex[index].RequestData=="function")//数据需要另外下载的.
|
|
8718
8718
|
{var hisData=this.ChartPaint[0].Data;this.WindowIndex[index].RequestData(this,index,hisData,null);}else{this.WindowIndex[index].BindData(this,index,bindData);}this.UpdataDataoffset();//更新数据偏移
|
|
8719
8719
|
this.UpdateFrameMaxMin();//调整坐标最大 最小值
|
|
8720
|
-
this.Draw();};this.GetOverlayIndexByIdentify=function(identify){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];if(overlayItem.Identify===identify)return{OverlayItem:overlayItem,WindowIndex:i};}}return null;}
|
|
8720
|
+
this.Draw();};this.GetOverlayIndexByIdentify=function(identify){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];if(overlayItem.Identify===identify)return{OverlayItem:overlayItem,WindowIndex:i};}}return null;};//更新叠加指标
|
|
8721
8721
|
this.UpdateOverlayIndex=function(identify){var overlayIndex=this.GetOverlayIndexByIdentify(identify);if(overlayIndex==null){console.warn('[KLineChartContainer::UpdateOverlayIndex] can\'t find overlay index. [identify='+identify+']');return;}if(!this.ChartPaint[0])return;var kData=this.ChartPaint[0].Data;if(!kData)return;this.BindOverlayIndexData(overlayIndex.OverlayItem,overlayIndex.WindowIndex,kData);};//修改参数指标
|
|
8722
8722
|
this.ChangeWindowIndexParam=function(index){this.WindowIndex[index].Index[0].Param+=1;this.WindowIndex[index].Index[1].Param+=1;this.UpdateWindowIndex(index);};this.OnDoubleClick=function(x,y,e){var bDraw=false;if(this.ChartCorssCursor){var data={e:e,X:x,Y:y,Draw:false};this.ChartCorssCursor.OnDBClick(data);bDraw=data.Draw;}if(this.EnableYDrag&&(this.EnableYDrag.Left||this.EnableYDrag.Right)&&this.Frame&&this.Frame.PtInFrameY){var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;var dragY=this.Frame.PtInFrameY(x,y);if(dragY&&dragY.Index>=0){this.CancelZoomUpDownFrameY(dragY);}}var selectedChart;//图形选中
|
|
8723
8723
|
if(this.SelectedChart.EnableSelected){selectedChart=this.PtInChart(x,y);}var dbClickInfo={SelectedChart:selectedChart};this.DBClickEvent(dbClickInfo,e);if(!selectedChart&&this.EnableZoomIndexWindow)//双击放大缩小
|
|
@@ -9530,7 +9530,26 @@ frame.Canvas=this.Canvas;frame.MainFrame=subFrame.Frame;frame.ChartBorder=subFra
|
|
|
9530
9530
|
var chart=new ChartMinutePositionLine();chart.Canvas=this.Canvas;chart.Name='Position-Line';chart.ChartBorder=frame.ChartBorder;chart.ChartFrame=frame;chart.Identify=overlayFrame.Identify;chart.Color=g_JSChartResource.Minute.PositionColor;overlayFrame.ChartPaint.push(chart);subFrame.OverlayIndex.push(overlayFrame);subFrame.Frame.RightFrame=frame;//右边坐标绑定到主坐标上
|
|
9531
9531
|
}else{frame=overlayFrame.Frame;for(var i=0;i<overlayFrame.ChartPaint.length;++i){var item=overlayFrame.ChartPaint[i];if(item.Name=='Position-Line'){chart=item;break;}}if(!chart)//图形不存在就创建一个
|
|
9532
9532
|
{chart=new ChartMinutePositionLine();chart.Canvas=this.Canvas;chart.Name='Position-Line';chart.ChartBorder=frame.ChartBorder;chart.ChartFrame=frame;chart.Identify=overlayFrame.Identify;chart.Color=g_JSChartResource.Minute.PositionColor;overlayFrame.ChartPaint.push(chart);}}var xPointCouont=this.Frame.SubFrame[0].Frame.XPointCount;frame.XPointCount=xPointCouont;subFrame.Frame.IsShowPositionTitle=true;var bindData=new ChartData();bindData.Data=minuteData.GetPosition();chart.Data=bindData;};this.ClearBindOverlayPositionData=function(){if(this.Frame.SubFrame.length<2)return;var subFrame=this.Frame.SubFrame[1];//第2个窗口
|
|
9533
|
-
subFrame.Frame.RightFrame=null;subFrame.Frame.IsShowPositionTitle=false;for(var i in subFrame.OverlayIndex){var item=subFrame.OverlayIndex[i];if(item.Identify=='Position_Line_Frame'){subFrame.OverlayIndex.splice(i,1);break;}}};this.GetOverlayIndexByIdentify=function(identify){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];if(overlayItem.Identify===identify)return{OverlayItem:overlayItem,WindowIndex:i};}}return null;}
|
|
9533
|
+
subFrame.Frame.RightFrame=null;subFrame.Frame.IsShowPositionTitle=false;for(var i in subFrame.OverlayIndex){var item=subFrame.OverlayIndex[i];if(item.Identify=='Position_Line_Frame'){subFrame.OverlayIndex.splice(i,1);break;}}};this.GetOverlayIndexByIdentify=function(identify){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];if(overlayItem.Identify===identify)return{OverlayItem:overlayItem,WindowIndex:i};}}return null;};/*
|
|
9534
|
+
this.RecvOverlayIndex=function(identify, data)
|
|
9535
|
+
{
|
|
9536
|
+
var overlayIndex=this.GetOverlayIndexByIdentify(identify);
|
|
9537
|
+
if (overlayIndex==null)
|
|
9538
|
+
{
|
|
9539
|
+
console.warn(`[MinuteChartContainer::RecvOverlayIndex] can't find overlay index. [identify=${identify}]`);
|
|
9540
|
+
return;
|
|
9541
|
+
}
|
|
9542
|
+
|
|
9543
|
+
var script=overlayIndex.OverlayItem.Script;
|
|
9544
|
+
if (!script) return;
|
|
9545
|
+
if (typeof(script.RecvSubscribeData)!="function") return;
|
|
9546
|
+
|
|
9547
|
+
var bindData=this.SourceData;
|
|
9548
|
+
if (!bindData) return;
|
|
9549
|
+
|
|
9550
|
+
script.RecvSubscribeData(data,this,overlayIndex.WindowIndex,bindData);
|
|
9551
|
+
}
|
|
9552
|
+
*///更新叠加指标
|
|
9534
9553
|
this.UpdateOverlayIndex=function(identify){var overlayIndex=this.GetOverlayIndexByIdentify(identify);if(overlayIndex==null){console.warn('[MinuteChartContainer::UpdateOverlayIndex] can\'t find overlay index. [identify='+identify+']');return;}var bindData=this.SourceData;if(!bindData)return;this.BindOverlayIndexData(overlayIndex.OverlayItem,overlayIndex.WindowIndex,bindData);};//添加叠加指标
|
|
9535
9554
|
this.AddOverlayIndex=function(obj){var overlay=this.CreateOverlayWindowsIndex(obj);if(!overlay)return;var bindData=this.SourceData;this.BindOverlayIndexData(overlay,obj.WindowIndex,bindData);this.UpdataDataoffset();//更新数据偏移
|
|
9536
9555
|
this.UpdateFrameMaxMin();//调整坐标最大 最小值
|
|
@@ -15722,7 +15741,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
|
|
|
15722
15741
|
this.ExecuteScript(item,data);}this.Status=0;}};this.OnExecuteFinish=function(data,indexInfo,jsExectute,jobInfo){var message={Data:data,IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.FINISH_EXECUTE_SCRIPT,JobInfo:jobInfo};postMessage(message);};this.OnExecuteError=function(error,indexInfo,jobData){var message={IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.ERROR_EXECUTE_SCRIPT,Error:error};postMessage(message);};}/********************************************************************************
|
|
15723
15742
|
* 版本信息输出
|
|
15724
15743
|
*
|
|
15725
|
-
*/var HQCHART_VERSION="1.1.
|
|
15744
|
+
*/var HQCHART_VERSION="1.1.15318";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();//把给外界调用的方法暴露出来
|
|
15726
15745
|
exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
|
|
15727
15746
|
// BaseIndex:BaseIndex,
|
|
15728
15747
|
// ChartLine:ChartLine,
|
package/package.json
CHANGED
package/src/jscommon/umychart.js
CHANGED
|
@@ -12772,6 +12772,25 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
12772
12772
|
|
|
12773
12773
|
return false;
|
|
12774
12774
|
}
|
|
12775
|
+
|
|
12776
|
+
this.RecvOverlayIndex=function(identify, data)
|
|
12777
|
+
{
|
|
12778
|
+
var overlayIndex=this.GetOverlayIndexByIdentify(identify);
|
|
12779
|
+
if (overlayIndex==null)
|
|
12780
|
+
{
|
|
12781
|
+
console.warn(`[JSChartContainer::RecvOverlayIndex] can't find overlay index. [identify=${identify}]`);
|
|
12782
|
+
return;
|
|
12783
|
+
}
|
|
12784
|
+
|
|
12785
|
+
var script=overlayIndex.OverlayItem.Script;
|
|
12786
|
+
if (!script) return;
|
|
12787
|
+
if (typeof(script.RecvSubscribeData)!="function") return;
|
|
12788
|
+
|
|
12789
|
+
var kData=this.GetKData();
|
|
12790
|
+
if (!kData) return;
|
|
12791
|
+
|
|
12792
|
+
script.RecvSubscribeData(data,this,overlayIndex.WindowIndex,kData);
|
|
12793
|
+
}
|
|
12775
12794
|
}
|
|
12776
12795
|
|
|
12777
12796
|
function GetDevicePixelRatio()
|
|
@@ -36860,7 +36879,7 @@ function ChartScatterPlotV2()
|
|
|
36860
36879
|
|
|
36861
36880
|
this.TooltipData=[];
|
|
36862
36881
|
this.MapCache=null; //key=date/date-time value={ Data:[] }
|
|
36863
|
-
this.AryPoint=[ ]; //[{ Value:, Radius:半径(可选), Color:颜色(可选),ColorBorder:边框颜色(可选),
|
|
36882
|
+
this.AryPoint=[ ]; //[{ Value:, Radius:半径(可选), Radius2:固定半径(可选), Color:颜色(可选),ColorBorder:边框颜色(可选),
|
|
36864
36883
|
// Text:{ Text:显示文字, Color:"rgb(0,30,100)", BaseLine:1, YOffset:5, Align:2 }; }]
|
|
36865
36884
|
// BaseLine: 0=圆点上面 1=圆点下面 Align: 2=居中 1=左 3=右
|
|
36866
36885
|
|
|
@@ -36992,11 +37011,17 @@ function ChartScatterPlotV2()
|
|
|
36992
37011
|
if (!IFrameSplitOperator.IsNumber(price)) return;
|
|
36993
37012
|
|
|
36994
37013
|
var y=this.GetYFromData(price,false);
|
|
36995
|
-
|
|
36996
37014
|
var radius=this.Radius;
|
|
36997
|
-
if (item.
|
|
36998
|
-
|
|
36999
|
-
|
|
37015
|
+
if (IFrameSplitOperator.IsNumber(item.Radius2))
|
|
37016
|
+
{
|
|
37017
|
+
radius=item.Radius2;
|
|
37018
|
+
}
|
|
37019
|
+
else
|
|
37020
|
+
{
|
|
37021
|
+
if (IFrameSplitOperator.IsNumber(item.Radius)) radius=item.Radius;
|
|
37022
|
+
if (!IFrameSplitOperator.IsNumber(radius)) return;
|
|
37023
|
+
if (radius>maxRadius) radius=maxRadius;
|
|
37024
|
+
}
|
|
37000
37025
|
|
|
37001
37026
|
this.Canvas.beginPath();
|
|
37002
37027
|
this.Canvas.arc(x, y, radius, 0, 2 * Math.PI);
|
|
@@ -37121,7 +37146,7 @@ function ChartScatterPlotV2()
|
|
|
37121
37146
|
var mapItem=this.MapCache.get(key);
|
|
37122
37147
|
if (!IFrameSplitOperator.IsNonEmptyArray(mapItem.Data)) continue;
|
|
37123
37148
|
|
|
37124
|
-
for(k=0;k<mapItem.Data.length;++k)
|
|
37149
|
+
for(var k=0;k<mapItem.Data.length;++k)
|
|
37125
37150
|
{
|
|
37126
37151
|
var item=mapItem.Data[k];
|
|
37127
37152
|
var value=item.Value;
|
|
@@ -89082,25 +89107,6 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
89082
89107
|
return null;
|
|
89083
89108
|
}
|
|
89084
89109
|
|
|
89085
|
-
this.RecvOverlayIndex=function(identify, data)
|
|
89086
|
-
{
|
|
89087
|
-
var overlayIndex=this.GetOverlayIndexByIdentify(identify);
|
|
89088
|
-
if (overlayIndex==null)
|
|
89089
|
-
{
|
|
89090
|
-
console.warn(`[KLineChartContainer::RecvOverlayIndex] can't find overlay index. [identify=${identify}]`);
|
|
89091
|
-
return;
|
|
89092
|
-
}
|
|
89093
|
-
|
|
89094
|
-
if (!overlayIndex.Script) return;
|
|
89095
|
-
if (typeof(overlayIndex.RecvSubscribeData)!="function") return;
|
|
89096
|
-
|
|
89097
|
-
if (!this.ChartPaint[0]) return;
|
|
89098
|
-
var kData=this.ChartPaint[0].Data;
|
|
89099
|
-
if (!kData) return;
|
|
89100
|
-
|
|
89101
|
-
overlayIndex.Script.RecvSubscribeData(data,this,overlayIndex.WindowIndex,kData);
|
|
89102
|
-
}
|
|
89103
|
-
|
|
89104
89110
|
//更新叠加指标
|
|
89105
89111
|
this.UpdateOverlayIndex=function(identify)
|
|
89106
89112
|
{
|
|
@@ -96254,6 +96260,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
96254
96260
|
return null;
|
|
96255
96261
|
}
|
|
96256
96262
|
|
|
96263
|
+
/*
|
|
96257
96264
|
this.RecvOverlayIndex=function(identify, data)
|
|
96258
96265
|
{
|
|
96259
96266
|
var overlayIndex=this.GetOverlayIndexByIdentify(identify);
|
|
@@ -96263,14 +96270,16 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
96263
96270
|
return;
|
|
96264
96271
|
}
|
|
96265
96272
|
|
|
96266
|
-
|
|
96267
|
-
if (
|
|
96273
|
+
var script=overlayIndex.OverlayItem.Script;
|
|
96274
|
+
if (!script) return;
|
|
96275
|
+
if (typeof(script.RecvSubscribeData)!="function") return;
|
|
96268
96276
|
|
|
96269
96277
|
var bindData=this.SourceData;
|
|
96270
96278
|
if (!bindData) return;
|
|
96271
96279
|
|
|
96272
|
-
|
|
96280
|
+
script.RecvSubscribeData(data,this,overlayIndex.WindowIndex,bindData);
|
|
96273
96281
|
}
|
|
96282
|
+
*/
|
|
96274
96283
|
|
|
96275
96284
|
//更新叠加指标
|
|
96276
96285
|
this.UpdateOverlayIndex=function(identify)
|
|
@@ -16868,6 +16868,25 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
16868
16868
|
|
|
16869
16869
|
return false;
|
|
16870
16870
|
}
|
|
16871
|
+
|
|
16872
|
+
this.RecvOverlayIndex=function(identify, data)
|
|
16873
|
+
{
|
|
16874
|
+
var overlayIndex=this.GetOverlayIndexByIdentify(identify);
|
|
16875
|
+
if (overlayIndex==null)
|
|
16876
|
+
{
|
|
16877
|
+
console.warn(`[JSChartContainer::RecvOverlayIndex] can't find overlay index. [identify=${identify}]`);
|
|
16878
|
+
return;
|
|
16879
|
+
}
|
|
16880
|
+
|
|
16881
|
+
var script=overlayIndex.OverlayItem.Script;
|
|
16882
|
+
if (!script) return;
|
|
16883
|
+
if (typeof(script.RecvSubscribeData)!="function") return;
|
|
16884
|
+
|
|
16885
|
+
var kData=this.GetKData();
|
|
16886
|
+
if (!kData) return;
|
|
16887
|
+
|
|
16888
|
+
script.RecvSubscribeData(data,this,overlayIndex.WindowIndex,kData);
|
|
16889
|
+
}
|
|
16871
16890
|
}
|
|
16872
16891
|
|
|
16873
16892
|
function GetDevicePixelRatio()
|
|
@@ -40956,7 +40975,7 @@ function ChartScatterPlotV2()
|
|
|
40956
40975
|
|
|
40957
40976
|
this.TooltipData=[];
|
|
40958
40977
|
this.MapCache=null; //key=date/date-time value={ Data:[] }
|
|
40959
|
-
this.AryPoint=[ ]; //[{ Value:, Radius:半径(可选), Color:颜色(可选),ColorBorder:边框颜色(可选),
|
|
40978
|
+
this.AryPoint=[ ]; //[{ Value:, Radius:半径(可选), Radius2:固定半径(可选), Color:颜色(可选),ColorBorder:边框颜色(可选),
|
|
40960
40979
|
// Text:{ Text:显示文字, Color:"rgb(0,30,100)", BaseLine:1, YOffset:5, Align:2 }; }]
|
|
40961
40980
|
// BaseLine: 0=圆点上面 1=圆点下面 Align: 2=居中 1=左 3=右
|
|
40962
40981
|
|
|
@@ -41088,11 +41107,17 @@ function ChartScatterPlotV2()
|
|
|
41088
41107
|
if (!IFrameSplitOperator.IsNumber(price)) return;
|
|
41089
41108
|
|
|
41090
41109
|
var y=this.GetYFromData(price,false);
|
|
41091
|
-
|
|
41092
41110
|
var radius=this.Radius;
|
|
41093
|
-
if (item.
|
|
41094
|
-
|
|
41095
|
-
|
|
41111
|
+
if (IFrameSplitOperator.IsNumber(item.Radius2))
|
|
41112
|
+
{
|
|
41113
|
+
radius=item.Radius2;
|
|
41114
|
+
}
|
|
41115
|
+
else
|
|
41116
|
+
{
|
|
41117
|
+
if (IFrameSplitOperator.IsNumber(item.Radius)) radius=item.Radius;
|
|
41118
|
+
if (!IFrameSplitOperator.IsNumber(radius)) return;
|
|
41119
|
+
if (radius>maxRadius) radius=maxRadius;
|
|
41120
|
+
}
|
|
41096
41121
|
|
|
41097
41122
|
this.Canvas.beginPath();
|
|
41098
41123
|
this.Canvas.arc(x, y, radius, 0, 2 * Math.PI);
|
|
@@ -41217,7 +41242,7 @@ function ChartScatterPlotV2()
|
|
|
41217
41242
|
var mapItem=this.MapCache.get(key);
|
|
41218
41243
|
if (!IFrameSplitOperator.IsNonEmptyArray(mapItem.Data)) continue;
|
|
41219
41244
|
|
|
41220
|
-
for(k=0;k<mapItem.Data.length;++k)
|
|
41245
|
+
for(var k=0;k<mapItem.Data.length;++k)
|
|
41221
41246
|
{
|
|
41222
41247
|
var item=mapItem.Data[k];
|
|
41223
41248
|
var value=item.Value;
|
|
@@ -93178,25 +93203,6 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
93178
93203
|
return null;
|
|
93179
93204
|
}
|
|
93180
93205
|
|
|
93181
|
-
this.RecvOverlayIndex=function(identify, data)
|
|
93182
|
-
{
|
|
93183
|
-
var overlayIndex=this.GetOverlayIndexByIdentify(identify);
|
|
93184
|
-
if (overlayIndex==null)
|
|
93185
|
-
{
|
|
93186
|
-
console.warn(`[KLineChartContainer::RecvOverlayIndex] can't find overlay index. [identify=${identify}]`);
|
|
93187
|
-
return;
|
|
93188
|
-
}
|
|
93189
|
-
|
|
93190
|
-
if (!overlayIndex.Script) return;
|
|
93191
|
-
if (typeof(overlayIndex.RecvSubscribeData)!="function") return;
|
|
93192
|
-
|
|
93193
|
-
if (!this.ChartPaint[0]) return;
|
|
93194
|
-
var kData=this.ChartPaint[0].Data;
|
|
93195
|
-
if (!kData) return;
|
|
93196
|
-
|
|
93197
|
-
overlayIndex.Script.RecvSubscribeData(data,this,overlayIndex.WindowIndex,kData);
|
|
93198
|
-
}
|
|
93199
|
-
|
|
93200
93206
|
//更新叠加指标
|
|
93201
93207
|
this.UpdateOverlayIndex=function(identify)
|
|
93202
93208
|
{
|
|
@@ -100350,6 +100356,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
100350
100356
|
return null;
|
|
100351
100357
|
}
|
|
100352
100358
|
|
|
100359
|
+
/*
|
|
100353
100360
|
this.RecvOverlayIndex=function(identify, data)
|
|
100354
100361
|
{
|
|
100355
100362
|
var overlayIndex=this.GetOverlayIndexByIdentify(identify);
|
|
@@ -100359,14 +100366,16 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
100359
100366
|
return;
|
|
100360
100367
|
}
|
|
100361
100368
|
|
|
100362
|
-
|
|
100363
|
-
if (
|
|
100369
|
+
var script=overlayIndex.OverlayItem.Script;
|
|
100370
|
+
if (!script) return;
|
|
100371
|
+
if (typeof(script.RecvSubscribeData)!="function") return;
|
|
100364
100372
|
|
|
100365
100373
|
var bindData=this.SourceData;
|
|
100366
100374
|
if (!bindData) return;
|
|
100367
100375
|
|
|
100368
|
-
|
|
100376
|
+
script.RecvSubscribeData(data,this,overlayIndex.WindowIndex,bindData);
|
|
100369
100377
|
}
|
|
100378
|
+
*/
|
|
100370
100379
|
|
|
100371
100380
|
//更新叠加指标
|
|
100372
100381
|
this.UpdateOverlayIndex=function(identify)
|
|
@@ -155138,7 +155147,7 @@ function ScrollBarBGChart()
|
|
|
155138
155147
|
|
|
155139
155148
|
|
|
155140
155149
|
|
|
155141
|
-
var HQCHART_VERSION="1.1.
|
|
155150
|
+
var HQCHART_VERSION="1.1.15318";
|
|
155142
155151
|
|
|
155143
155152
|
function PrintHQChartVersion()
|
|
155144
155153
|
{
|
|
@@ -16912,6 +16912,25 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
16912
16912
|
|
|
16913
16913
|
return false;
|
|
16914
16914
|
}
|
|
16915
|
+
|
|
16916
|
+
this.RecvOverlayIndex=function(identify, data)
|
|
16917
|
+
{
|
|
16918
|
+
var overlayIndex=this.GetOverlayIndexByIdentify(identify);
|
|
16919
|
+
if (overlayIndex==null)
|
|
16920
|
+
{
|
|
16921
|
+
console.warn(`[JSChartContainer::RecvOverlayIndex] can't find overlay index. [identify=${identify}]`);
|
|
16922
|
+
return;
|
|
16923
|
+
}
|
|
16924
|
+
|
|
16925
|
+
var script=overlayIndex.OverlayItem.Script;
|
|
16926
|
+
if (!script) return;
|
|
16927
|
+
if (typeof(script.RecvSubscribeData)!="function") return;
|
|
16928
|
+
|
|
16929
|
+
var kData=this.GetKData();
|
|
16930
|
+
if (!kData) return;
|
|
16931
|
+
|
|
16932
|
+
script.RecvSubscribeData(data,this,overlayIndex.WindowIndex,kData);
|
|
16933
|
+
}
|
|
16915
16934
|
}
|
|
16916
16935
|
|
|
16917
16936
|
function GetDevicePixelRatio()
|
|
@@ -41000,7 +41019,7 @@ function ChartScatterPlotV2()
|
|
|
41000
41019
|
|
|
41001
41020
|
this.TooltipData=[];
|
|
41002
41021
|
this.MapCache=null; //key=date/date-time value={ Data:[] }
|
|
41003
|
-
this.AryPoint=[ ]; //[{ Value:, Radius:半径(可选), Color:颜色(可选),ColorBorder:边框颜色(可选),
|
|
41022
|
+
this.AryPoint=[ ]; //[{ Value:, Radius:半径(可选), Radius2:固定半径(可选), Color:颜色(可选),ColorBorder:边框颜色(可选),
|
|
41004
41023
|
// Text:{ Text:显示文字, Color:"rgb(0,30,100)", BaseLine:1, YOffset:5, Align:2 }; }]
|
|
41005
41024
|
// BaseLine: 0=圆点上面 1=圆点下面 Align: 2=居中 1=左 3=右
|
|
41006
41025
|
|
|
@@ -41132,11 +41151,17 @@ function ChartScatterPlotV2()
|
|
|
41132
41151
|
if (!IFrameSplitOperator.IsNumber(price)) return;
|
|
41133
41152
|
|
|
41134
41153
|
var y=this.GetYFromData(price,false);
|
|
41135
|
-
|
|
41136
41154
|
var radius=this.Radius;
|
|
41137
|
-
if (item.
|
|
41138
|
-
|
|
41139
|
-
|
|
41155
|
+
if (IFrameSplitOperator.IsNumber(item.Radius2))
|
|
41156
|
+
{
|
|
41157
|
+
radius=item.Radius2;
|
|
41158
|
+
}
|
|
41159
|
+
else
|
|
41160
|
+
{
|
|
41161
|
+
if (IFrameSplitOperator.IsNumber(item.Radius)) radius=item.Radius;
|
|
41162
|
+
if (!IFrameSplitOperator.IsNumber(radius)) return;
|
|
41163
|
+
if (radius>maxRadius) radius=maxRadius;
|
|
41164
|
+
}
|
|
41140
41165
|
|
|
41141
41166
|
this.Canvas.beginPath();
|
|
41142
41167
|
this.Canvas.arc(x, y, radius, 0, 2 * Math.PI);
|
|
@@ -41261,7 +41286,7 @@ function ChartScatterPlotV2()
|
|
|
41261
41286
|
var mapItem=this.MapCache.get(key);
|
|
41262
41287
|
if (!IFrameSplitOperator.IsNonEmptyArray(mapItem.Data)) continue;
|
|
41263
41288
|
|
|
41264
|
-
for(k=0;k<mapItem.Data.length;++k)
|
|
41289
|
+
for(var k=0;k<mapItem.Data.length;++k)
|
|
41265
41290
|
{
|
|
41266
41291
|
var item=mapItem.Data[k];
|
|
41267
41292
|
var value=item.Value;
|
|
@@ -93222,25 +93247,6 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
93222
93247
|
return null;
|
|
93223
93248
|
}
|
|
93224
93249
|
|
|
93225
|
-
this.RecvOverlayIndex=function(identify, data)
|
|
93226
|
-
{
|
|
93227
|
-
var overlayIndex=this.GetOverlayIndexByIdentify(identify);
|
|
93228
|
-
if (overlayIndex==null)
|
|
93229
|
-
{
|
|
93230
|
-
console.warn(`[KLineChartContainer::RecvOverlayIndex] can't find overlay index. [identify=${identify}]`);
|
|
93231
|
-
return;
|
|
93232
|
-
}
|
|
93233
|
-
|
|
93234
|
-
if (!overlayIndex.Script) return;
|
|
93235
|
-
if (typeof(overlayIndex.RecvSubscribeData)!="function") return;
|
|
93236
|
-
|
|
93237
|
-
if (!this.ChartPaint[0]) return;
|
|
93238
|
-
var kData=this.ChartPaint[0].Data;
|
|
93239
|
-
if (!kData) return;
|
|
93240
|
-
|
|
93241
|
-
overlayIndex.Script.RecvSubscribeData(data,this,overlayIndex.WindowIndex,kData);
|
|
93242
|
-
}
|
|
93243
|
-
|
|
93244
93250
|
//更新叠加指标
|
|
93245
93251
|
this.UpdateOverlayIndex=function(identify)
|
|
93246
93252
|
{
|
|
@@ -100394,6 +100400,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
100394
100400
|
return null;
|
|
100395
100401
|
}
|
|
100396
100402
|
|
|
100403
|
+
/*
|
|
100397
100404
|
this.RecvOverlayIndex=function(identify, data)
|
|
100398
100405
|
{
|
|
100399
100406
|
var overlayIndex=this.GetOverlayIndexByIdentify(identify);
|
|
@@ -100403,14 +100410,16 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
100403
100410
|
return;
|
|
100404
100411
|
}
|
|
100405
100412
|
|
|
100406
|
-
|
|
100407
|
-
if (
|
|
100413
|
+
var script=overlayIndex.OverlayItem.Script;
|
|
100414
|
+
if (!script) return;
|
|
100415
|
+
if (typeof(script.RecvSubscribeData)!="function") return;
|
|
100408
100416
|
|
|
100409
100417
|
var bindData=this.SourceData;
|
|
100410
100418
|
if (!bindData) return;
|
|
100411
100419
|
|
|
100412
|
-
|
|
100420
|
+
script.RecvSubscribeData(data,this,overlayIndex.WindowIndex,bindData);
|
|
100413
100421
|
}
|
|
100422
|
+
*/
|
|
100414
100423
|
|
|
100415
100424
|
//更新叠加指标
|
|
100416
100425
|
this.UpdateOverlayIndex=function(identify)
|
|
@@ -167197,7 +167206,7 @@ function HQChartScriptWorker()
|
|
|
167197
167206
|
|
|
167198
167207
|
|
|
167199
167208
|
|
|
167200
|
-
var HQCHART_VERSION="1.1.
|
|
167209
|
+
var HQCHART_VERSION="1.1.15318";
|
|
167201
167210
|
|
|
167202
167211
|
function PrintHQChartVersion()
|
|
167203
167212
|
{
|