hqchart 1.1.15315 → 1.1.15321
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
|
@@ -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';//类名
|
|
@@ -4919,14 +4919,17 @@ this.Price;this.Draw=function(){if(!this.IsShow||this.ChartFrame.IsMinSize)retur
|
|
|
4919
4919
|
{if(IFrameSplitOperator.IsNonEmptyArray(this.Line.LineDash))this.Canvas.setLineDash(this.Line.LineDash);else this.Canvas.setLineDash([3,5]);//虚线
|
|
4920
4920
|
}if(IFrameSplitOperator.IsNumber(this.Line.Width))this.Canvas.lineWidth=this.Line.Width;var x=left+textWidth;this.Canvas.strokeStyle=this.Line.Color;this.Canvas.beginPath();this.Canvas.moveTo(x,ToFixedPoint(y));this.Canvas.lineTo(right,ToFixedPoint(y));this.Canvas.stroke();}this.Canvas.restore();};this.GetMaxMin=function(){var range={Min:null,Max:null};if(IFrameSplitOperator.IsNumber(this.Price)){range.Min=this.Price;range.Max=this.Price;}return range;};}// 柱子集合 支持横屏
|
|
4921
4921
|
function ChartMultiBar(){this.newMethod=IChartPainting;//派生
|
|
4922
|
-
this.newMethod();delete this.newMethod;this.ClassName="ChartMultiBar";this.Bars=[];// [ {Point:[ {Date, Time, Value, Value2 }, ], Color:, Width: , Type: 0 实心 1 空心 }, ]
|
|
4922
|
+
this.newMethod();delete this.newMethod;this.ClassName="ChartMultiBar";this.Bars=[];// [ {Point:[ {Date, Time, Value, Value2 }, ], Color:, Width: , AdWidth:{ Type: 高级宽度设置 Type:1=柱子宽度, 2=柱子+间距宽度, Value:倍数 } , Type: 0 实心 1 空心 }, ]
|
|
4923
4923
|
this.IsHScreen=false;this.MapCache=null;//key=date/date-time value={ Data:[] }
|
|
4924
|
-
this.GetKValue=ChartData.GetKValue;this.GetItem=function(kItem){if(!this.MapCache||this.MapCache.size<=0)return null;var key=this.BuildKey(kItem);if(!this.MapCache.has(key))return null;return this.MapCache.get(key);};this.BuildCacheData=function(){var mapData=new _map2.default();this.MapCache=mapData;if(!IFrameSplitOperator.IsNonEmptyArray(this.Bars))return;for(var i=0;i<this.Bars.length;++i){var groupItem=this.Bars[i];if(!groupItem||!IFrameSplitOperator.IsNonEmptyArray(groupItem.Point))continue;var clrConfig={Color:groupItem.Color,BGColor:null,Width:null,Name:groupItem.Name,Type:0};if(IFrameSplitOperator.IsNumber(groupItem.Width))clrConfig.Width=groupItem.Width;if(IFrameSplitOperator.IsNumber(groupItem.Type))clrConfig.Type=groupItem.Type;if(groupItem.BorderColor)clrConfig.BorderColor=groupItem.BorderColor;for(var j=0;j<groupItem.Point.length;++j){var point=groupItem.Point[j];var key=this.BuildKey(point);var item={Data:point,ColorConfig:clrConfig};if(mapData.has(key)){var mapItem=mapData.get(key);mapItem.Data.push(item);}else{mapData.set(key,{Data:[item]});}}}};this.Draw=function(){if(!this.IsShow||this.ChartFrame.IsMinSize||!this.IsVisible)return;if(this.IsShowIndexTitleOnly())return;if(this.IsHideScriptIndex())return;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return;//k线数据
|
|
4924
|
+
this.GetKValue=ChartData.GetKValue;this.GetItem=function(kItem){if(!this.MapCache||this.MapCache.size<=0)return null;var key=this.BuildKey(kItem);if(!this.MapCache.has(key))return null;return this.MapCache.get(key);};this.BuildCacheData=function(){var mapData=new _map2.default();this.MapCache=mapData;if(!IFrameSplitOperator.IsNonEmptyArray(this.Bars))return;for(var i=0;i<this.Bars.length;++i){var groupItem=this.Bars[i];if(!groupItem||!IFrameSplitOperator.IsNonEmptyArray(groupItem.Point))continue;var clrConfig={Color:groupItem.Color,BGColor:null,Width:null,AdWidth:null,Name:groupItem.Name,Type:0};if(IFrameSplitOperator.IsNumber(groupItem.Width))clrConfig.Width=groupItem.Width;if(groupItem.AdWidth)clrConfig.AdWidth=groupItem.AdWidth;if(IFrameSplitOperator.IsNumber(groupItem.Type))clrConfig.Type=groupItem.Type;if(groupItem.BorderColor)clrConfig.BorderColor=groupItem.BorderColor;for(var j=0;j<groupItem.Point.length;++j){var point=groupItem.Point[j];var key=this.BuildKey(point);var item={Data:point,ColorConfig:clrConfig};if(mapData.has(key)){var mapItem=mapData.get(key);mapItem.Data.push(item);}else{mapData.set(key,{Data:[item]});}}}};this.Draw=function(){if(!this.IsShow||this.ChartFrame.IsMinSize||!this.IsVisible)return;if(this.IsShowIndexTitleOnly())return;if(this.IsHideScriptIndex())return;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return;//k线数据
|
|
4925
4925
|
if(!IFrameSplitOperator.IsNonEmptyArray(this.Bars))return;if(!this.MapCache||this.MapCache.size<=0)return;this.IsHScreen=this.ChartFrame.IsHScreen===true;var xPointCount=this.ChartFrame.XPointCount;var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var isMinute=this.IsMinuteFrame();var border=this.GetBorder();if(this.IsHScreen){var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.BottomEx;var chartLeft=border.TopEx;}else{var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;var chartLeft=border.LeftEx;}//计算所有柱子位置
|
|
4926
|
-
var mapBar=new _map2.default();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];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;}this.CalculateItem(mapItem,kItem,x,mapBar);}if(mapBar.size<=0)return;this.Canvas.save();this.ClipClient(this.IsHScreen);this.DrawAllBar(mapBar);this.Canvas.restore();};this.CalculateItem=function(groupItem,kItem,x,mapBar){for(var i=0;i<groupItem.Data.length;++i){var item=groupItem.Data[i];var value=item.Data.Value;if(IFrameSplitOperator.IsString(item.Data.Value))value=this.GetKValue(kItem,item.Data.Value);if(!IFrameSplitOperator.IsNumber(value))continue;var value2=item.Data.Value2;if(IFrameSplitOperator.IsString(item.Data.Value2))value2=this.GetKValue(kItem,item.Data.Value2);if(!IFrameSplitOperator.IsNumber(value2))continue;var y=this.ChartFrame.GetYFromData(value,false);var y2=this.ChartFrame.GetYFromData(value2,false);var strConfig=(0,_stringify2.default)(item.ColorConfig);if(!mapBar.has(strConfig))mapBar.set(strConfig,{AryBar:[]});var mapItem=mapBar.get(strConfig);mapItem.AryBar.push({X:x,Y:y,Y2:y2,Data:item});}};this.DrawAllBar=function(mapBar){var pixelRatio=GetDevicePixelRatio();var dataWidth=this.ChartFrame.DataWidth
|
|
4926
|
+
var mapBar=new _map2.default();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];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;}this.CalculateItem(mapItem,kItem,x,mapBar);}if(mapBar.size<=0)return;this.Canvas.save();this.ClipClient(this.IsHScreen);this.DrawAllBar(mapBar);this.Canvas.restore();};this.CalculateItem=function(groupItem,kItem,x,mapBar){for(var i=0;i<groupItem.Data.length;++i){var item=groupItem.Data[i];var value=item.Data.Value;if(IFrameSplitOperator.IsString(item.Data.Value))value=this.GetKValue(kItem,item.Data.Value);if(!IFrameSplitOperator.IsNumber(value))continue;var value2=item.Data.Value2;if(IFrameSplitOperator.IsString(item.Data.Value2))value2=this.GetKValue(kItem,item.Data.Value2);if(!IFrameSplitOperator.IsNumber(value2))continue;var y=this.ChartFrame.GetYFromData(value,false);var y2=this.ChartFrame.GetYFromData(value2,false);var strConfig=(0,_stringify2.default)(item.ColorConfig);if(!mapBar.has(strConfig))mapBar.set(strConfig,{AryBar:[]});var mapItem=mapBar.get(strConfig);mapItem.AryBar.push({X:x,Y:y,Y2:y2,Data:item});}};this.DrawAllBar=function(mapBar){var pixelRatio=GetDevicePixelRatio();var dataWidth=this.ChartFrame.DataWidth;//柱子宽度
|
|
4927
|
+
var distanceWidth=this.ChartFrame.DistanceWidth;//间距
|
|
4928
|
+
var _iteratorNormalCompletion8=true;var _didIteratorError8=false;var _iteratorError8=undefined;try{for(var _iterator8=(0,_getIterator3.default)(mapBar),_step8;!(_iteratorNormalCompletion8=(_step8=_iterator8.next()).done);_iteratorNormalCompletion8=true){var mapItem=_step8.value;var aryBar=mapItem[1].AryBar;if(!IFrameSplitOperator.IsNonEmptyArray(aryBar))continue;var config=null;var path=new Path2D();var pathBG=new Path2D();var count=0;var drawType=-1;//1=直线 2=实心 3=空心 4=边框+背景
|
|
4927
4929
|
var barWidth=dataWidth;//默认K线宽度
|
|
4928
4930
|
this.Canvas.beginPath();for(var i=0;i<aryBar.length;++i){var item=aryBar[i];if(!config){barWidth=dataWidth;//默认K线宽度
|
|
4929
|
-
config=item.Data.ColorConfig;if(IFrameSplitOperator.IsNumber(config.
|
|
4931
|
+
config=item.Data.ColorConfig;if(config.AdWidth&&IFrameSplitOperator.IsNumber(config.AdWidth.Value)&&IFrameSplitOperator.IsNumber(config.AdWidth.Type))//高级宽度设置 Type:1, 2, Value:倍数
|
|
4932
|
+
{var type=config.AdWidth.Type;var value=config.AdWidth.Value;if(type==1)barWidth=dataWidth*value;else if(type==2)barWidth=(dataWidth+distanceWidth)*value;}else if(IFrameSplitOperator.IsNumber(config.Width)){barWidth=config.Width*pixelRatio;}if(barWidth>4){if(config.Type==0)drawType=2;//实心
|
|
4930
4933
|
else if(config.Type==1)drawType=3;//空心
|
|
4931
4934
|
else if(config.Type==2)drawType=4;//边框+背景
|
|
4932
4935
|
else continue;}else//太细了, 直线
|
|
@@ -15741,7 +15744,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
|
|
|
15741
15744
|
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);};}/********************************************************************************
|
|
15742
15745
|
* 版本信息输出
|
|
15743
15746
|
*
|
|
15744
|
-
*/var HQCHART_VERSION="1.1.
|
|
15747
|
+
*/var HQCHART_VERSION="1.1.15320";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();//把给外界调用的方法暴露出来
|
|
15745
15748
|
exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
|
|
15746
15749
|
// BaseIndex:BaseIndex,
|
|
15747
15750
|
// ChartLine:ChartLine,
|
package/package.json
CHANGED
package/src/jscommon/umychart.js
CHANGED
|
@@ -36879,7 +36879,7 @@ function ChartScatterPlotV2()
|
|
|
36879
36879
|
|
|
36880
36880
|
this.TooltipData=[];
|
|
36881
36881
|
this.MapCache=null; //key=date/date-time value={ Data:[] }
|
|
36882
|
-
this.AryPoint=[ ]; //[{ Value:, Radius:半径(可选), Color:颜色(可选),ColorBorder:边框颜色(可选),
|
|
36882
|
+
this.AryPoint=[ ]; //[{ Value:, Radius:半径(可选), Radius2:固定半径(可选), Color:颜色(可选),ColorBorder:边框颜色(可选),
|
|
36883
36883
|
// Text:{ Text:显示文字, Color:"rgb(0,30,100)", BaseLine:1, YOffset:5, Align:2 }; }]
|
|
36884
36884
|
// BaseLine: 0=圆点上面 1=圆点下面 Align: 2=居中 1=左 3=右
|
|
36885
36885
|
|
|
@@ -37011,11 +37011,17 @@ function ChartScatterPlotV2()
|
|
|
37011
37011
|
if (!IFrameSplitOperator.IsNumber(price)) return;
|
|
37012
37012
|
|
|
37013
37013
|
var y=this.GetYFromData(price,false);
|
|
37014
|
-
|
|
37015
37014
|
var radius=this.Radius;
|
|
37016
|
-
if (item.
|
|
37017
|
-
|
|
37018
|
-
|
|
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
|
+
}
|
|
37019
37025
|
|
|
37020
37026
|
this.Canvas.beginPath();
|
|
37021
37027
|
this.Canvas.arc(x, y, radius, 0, 2 * Math.PI);
|
|
@@ -37140,7 +37146,7 @@ function ChartScatterPlotV2()
|
|
|
37140
37146
|
var mapItem=this.MapCache.get(key);
|
|
37141
37147
|
if (!IFrameSplitOperator.IsNonEmptyArray(mapItem.Data)) continue;
|
|
37142
37148
|
|
|
37143
|
-
for(k=0;k<mapItem.Data.length;++k)
|
|
37149
|
+
for(var k=0;k<mapItem.Data.length;++k)
|
|
37144
37150
|
{
|
|
37145
37151
|
var item=mapItem.Data[k];
|
|
37146
37152
|
var value=item.Value;
|
|
@@ -45051,7 +45057,7 @@ function ChartMultiBar()
|
|
|
45051
45057
|
delete this.newMethod;
|
|
45052
45058
|
|
|
45053
45059
|
this.ClassName="ChartMultiBar";
|
|
45054
|
-
this.Bars=[]; // [ {Point:[ {Date, Time, Value, Value2 }, ], Color:, Width: , Type: 0 实心 1 空心 }, ]
|
|
45060
|
+
this.Bars=[]; // [ {Point:[ {Date, Time, Value, Value2 }, ], Color:, Width: , AdWidth:{ Type: 高级宽度设置 Type:1=柱子宽度, 2=柱子+间距宽度, Value:倍数 } , Type: 0 实心 1 空心 }, ]
|
|
45055
45061
|
this.IsHScreen=false;
|
|
45056
45062
|
|
|
45057
45063
|
this.MapCache=null; //key=date/date-time value={ Data:[] }
|
|
@@ -45078,8 +45084,9 @@ function ChartMultiBar()
|
|
|
45078
45084
|
var groupItem=this.Bars[i];
|
|
45079
45085
|
if (!groupItem || !IFrameSplitOperator.IsNonEmptyArray(groupItem.Point)) continue;
|
|
45080
45086
|
|
|
45081
|
-
var clrConfig= { Color:groupItem.Color, BGColor:null, Width:null, Name:groupItem.Name, Type:0 };
|
|
45087
|
+
var clrConfig= { Color:groupItem.Color, BGColor:null, Width:null, AdWidth:null, Name:groupItem.Name, Type:0 };
|
|
45082
45088
|
if (IFrameSplitOperator.IsNumber(groupItem.Width)) clrConfig.Width=groupItem.Width;
|
|
45089
|
+
if (groupItem.AdWidth) clrConfig.AdWidth=groupItem.AdWidth;
|
|
45083
45090
|
if (IFrameSplitOperator.IsNumber(groupItem.Type)) clrConfig.Type=groupItem.Type;
|
|
45084
45091
|
if (groupItem.BorderColor) clrConfig.BorderColor=groupItem.BorderColor;
|
|
45085
45092
|
|
|
@@ -45194,7 +45201,8 @@ function ChartMultiBar()
|
|
|
45194
45201
|
this.DrawAllBar=function(mapBar)
|
|
45195
45202
|
{
|
|
45196
45203
|
var pixelRatio=GetDevicePixelRatio();
|
|
45197
|
-
var dataWidth=this.ChartFrame.DataWidth;
|
|
45204
|
+
var dataWidth=this.ChartFrame.DataWidth; //柱子宽度
|
|
45205
|
+
var distanceWidth=this.ChartFrame.DistanceWidth; //间距
|
|
45198
45206
|
for(var mapItem of mapBar)
|
|
45199
45207
|
{
|
|
45200
45208
|
var aryBar=mapItem[1].AryBar;
|
|
@@ -45214,7 +45222,17 @@ function ChartMultiBar()
|
|
|
45214
45222
|
{
|
|
45215
45223
|
barWidth=dataWidth; //默认K线宽度
|
|
45216
45224
|
config=item.Data.ColorConfig;
|
|
45217
|
-
if (IFrameSplitOperator.IsNumber(config.
|
|
45225
|
+
if (config.AdWidth && IFrameSplitOperator.IsNumber(config.AdWidth.Value) && IFrameSplitOperator.IsNumber(config.AdWidth.Type)) //高级宽度设置 Type:1, 2, Value:倍数
|
|
45226
|
+
{
|
|
45227
|
+
var type=config.AdWidth.Type;
|
|
45228
|
+
var value=config.AdWidth.Value;
|
|
45229
|
+
if (type==1) barWidth=dataWidth*value;
|
|
45230
|
+
else if (type==2) barWidth=(dataWidth+distanceWidth)*value;
|
|
45231
|
+
}
|
|
45232
|
+
else if (IFrameSplitOperator.IsNumber(config.Width))
|
|
45233
|
+
{
|
|
45234
|
+
barWidth=config.Width*pixelRatio;
|
|
45235
|
+
}
|
|
45218
45236
|
if (barWidth>4)
|
|
45219
45237
|
{
|
|
45220
45238
|
if (config.Type==0) drawType=2; //实心
|
|
@@ -40975,7 +40975,7 @@ function ChartScatterPlotV2()
|
|
|
40975
40975
|
|
|
40976
40976
|
this.TooltipData=[];
|
|
40977
40977
|
this.MapCache=null; //key=date/date-time value={ Data:[] }
|
|
40978
|
-
this.AryPoint=[ ]; //[{ Value:, Radius:半径(可选), Color:颜色(可选),ColorBorder:边框颜色(可选),
|
|
40978
|
+
this.AryPoint=[ ]; //[{ Value:, Radius:半径(可选), Radius2:固定半径(可选), Color:颜色(可选),ColorBorder:边框颜色(可选),
|
|
40979
40979
|
// Text:{ Text:显示文字, Color:"rgb(0,30,100)", BaseLine:1, YOffset:5, Align:2 }; }]
|
|
40980
40980
|
// BaseLine: 0=圆点上面 1=圆点下面 Align: 2=居中 1=左 3=右
|
|
40981
40981
|
|
|
@@ -41107,11 +41107,17 @@ function ChartScatterPlotV2()
|
|
|
41107
41107
|
if (!IFrameSplitOperator.IsNumber(price)) return;
|
|
41108
41108
|
|
|
41109
41109
|
var y=this.GetYFromData(price,false);
|
|
41110
|
-
|
|
41111
41110
|
var radius=this.Radius;
|
|
41112
|
-
if (item.
|
|
41113
|
-
|
|
41114
|
-
|
|
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
|
+
}
|
|
41115
41121
|
|
|
41116
41122
|
this.Canvas.beginPath();
|
|
41117
41123
|
this.Canvas.arc(x, y, radius, 0, 2 * Math.PI);
|
|
@@ -41236,7 +41242,7 @@ function ChartScatterPlotV2()
|
|
|
41236
41242
|
var mapItem=this.MapCache.get(key);
|
|
41237
41243
|
if (!IFrameSplitOperator.IsNonEmptyArray(mapItem.Data)) continue;
|
|
41238
41244
|
|
|
41239
|
-
for(k=0;k<mapItem.Data.length;++k)
|
|
41245
|
+
for(var k=0;k<mapItem.Data.length;++k)
|
|
41240
41246
|
{
|
|
41241
41247
|
var item=mapItem.Data[k];
|
|
41242
41248
|
var value=item.Value;
|
|
@@ -49147,7 +49153,7 @@ function ChartMultiBar()
|
|
|
49147
49153
|
delete this.newMethod;
|
|
49148
49154
|
|
|
49149
49155
|
this.ClassName="ChartMultiBar";
|
|
49150
|
-
this.Bars=[]; // [ {Point:[ {Date, Time, Value, Value2 }, ], Color:, Width: , Type: 0 实心 1 空心 }, ]
|
|
49156
|
+
this.Bars=[]; // [ {Point:[ {Date, Time, Value, Value2 }, ], Color:, Width: , AdWidth:{ Type: 高级宽度设置 Type:1=柱子宽度, 2=柱子+间距宽度, Value:倍数 } , Type: 0 实心 1 空心 }, ]
|
|
49151
49157
|
this.IsHScreen=false;
|
|
49152
49158
|
|
|
49153
49159
|
this.MapCache=null; //key=date/date-time value={ Data:[] }
|
|
@@ -49174,8 +49180,9 @@ function ChartMultiBar()
|
|
|
49174
49180
|
var groupItem=this.Bars[i];
|
|
49175
49181
|
if (!groupItem || !IFrameSplitOperator.IsNonEmptyArray(groupItem.Point)) continue;
|
|
49176
49182
|
|
|
49177
|
-
var clrConfig= { Color:groupItem.Color, BGColor:null, Width:null, Name:groupItem.Name, Type:0 };
|
|
49183
|
+
var clrConfig= { Color:groupItem.Color, BGColor:null, Width:null, AdWidth:null, Name:groupItem.Name, Type:0 };
|
|
49178
49184
|
if (IFrameSplitOperator.IsNumber(groupItem.Width)) clrConfig.Width=groupItem.Width;
|
|
49185
|
+
if (groupItem.AdWidth) clrConfig.AdWidth=groupItem.AdWidth;
|
|
49179
49186
|
if (IFrameSplitOperator.IsNumber(groupItem.Type)) clrConfig.Type=groupItem.Type;
|
|
49180
49187
|
if (groupItem.BorderColor) clrConfig.BorderColor=groupItem.BorderColor;
|
|
49181
49188
|
|
|
@@ -49290,7 +49297,8 @@ function ChartMultiBar()
|
|
|
49290
49297
|
this.DrawAllBar=function(mapBar)
|
|
49291
49298
|
{
|
|
49292
49299
|
var pixelRatio=GetDevicePixelRatio();
|
|
49293
|
-
var dataWidth=this.ChartFrame.DataWidth;
|
|
49300
|
+
var dataWidth=this.ChartFrame.DataWidth; //柱子宽度
|
|
49301
|
+
var distanceWidth=this.ChartFrame.DistanceWidth; //间距
|
|
49294
49302
|
for(var mapItem of mapBar)
|
|
49295
49303
|
{
|
|
49296
49304
|
var aryBar=mapItem[1].AryBar;
|
|
@@ -49310,7 +49318,17 @@ function ChartMultiBar()
|
|
|
49310
49318
|
{
|
|
49311
49319
|
barWidth=dataWidth; //默认K线宽度
|
|
49312
49320
|
config=item.Data.ColorConfig;
|
|
49313
|
-
if (IFrameSplitOperator.IsNumber(config.
|
|
49321
|
+
if (config.AdWidth && IFrameSplitOperator.IsNumber(config.AdWidth.Value) && IFrameSplitOperator.IsNumber(config.AdWidth.Type)) //高级宽度设置 Type:1, 2, Value:倍数
|
|
49322
|
+
{
|
|
49323
|
+
var type=config.AdWidth.Type;
|
|
49324
|
+
var value=config.AdWidth.Value;
|
|
49325
|
+
if (type==1) barWidth=dataWidth*value;
|
|
49326
|
+
else if (type==2) barWidth=(dataWidth+distanceWidth)*value;
|
|
49327
|
+
}
|
|
49328
|
+
else if (IFrameSplitOperator.IsNumber(config.Width))
|
|
49329
|
+
{
|
|
49330
|
+
barWidth=config.Width*pixelRatio;
|
|
49331
|
+
}
|
|
49314
49332
|
if (barWidth>4)
|
|
49315
49333
|
{
|
|
49316
49334
|
if (config.Type==0) drawType=2; //实心
|
|
@@ -155141,7 +155159,7 @@ function ScrollBarBGChart()
|
|
|
155141
155159
|
|
|
155142
155160
|
|
|
155143
155161
|
|
|
155144
|
-
var HQCHART_VERSION="1.1.
|
|
155162
|
+
var HQCHART_VERSION="1.1.15320";
|
|
155145
155163
|
|
|
155146
155164
|
function PrintHQChartVersion()
|
|
155147
155165
|
{
|
|
@@ -41019,7 +41019,7 @@ function ChartScatterPlotV2()
|
|
|
41019
41019
|
|
|
41020
41020
|
this.TooltipData=[];
|
|
41021
41021
|
this.MapCache=null; //key=date/date-time value={ Data:[] }
|
|
41022
|
-
this.AryPoint=[ ]; //[{ Value:, Radius:半径(可选), Color:颜色(可选),ColorBorder:边框颜色(可选),
|
|
41022
|
+
this.AryPoint=[ ]; //[{ Value:, Radius:半径(可选), Radius2:固定半径(可选), Color:颜色(可选),ColorBorder:边框颜色(可选),
|
|
41023
41023
|
// Text:{ Text:显示文字, Color:"rgb(0,30,100)", BaseLine:1, YOffset:5, Align:2 }; }]
|
|
41024
41024
|
// BaseLine: 0=圆点上面 1=圆点下面 Align: 2=居中 1=左 3=右
|
|
41025
41025
|
|
|
@@ -41151,11 +41151,17 @@ function ChartScatterPlotV2()
|
|
|
41151
41151
|
if (!IFrameSplitOperator.IsNumber(price)) return;
|
|
41152
41152
|
|
|
41153
41153
|
var y=this.GetYFromData(price,false);
|
|
41154
|
-
|
|
41155
41154
|
var radius=this.Radius;
|
|
41156
|
-
if (item.
|
|
41157
|
-
|
|
41158
|
-
|
|
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
|
+
}
|
|
41159
41165
|
|
|
41160
41166
|
this.Canvas.beginPath();
|
|
41161
41167
|
this.Canvas.arc(x, y, radius, 0, 2 * Math.PI);
|
|
@@ -41280,7 +41286,7 @@ function ChartScatterPlotV2()
|
|
|
41280
41286
|
var mapItem=this.MapCache.get(key);
|
|
41281
41287
|
if (!IFrameSplitOperator.IsNonEmptyArray(mapItem.Data)) continue;
|
|
41282
41288
|
|
|
41283
|
-
for(k=0;k<mapItem.Data.length;++k)
|
|
41289
|
+
for(var k=0;k<mapItem.Data.length;++k)
|
|
41284
41290
|
{
|
|
41285
41291
|
var item=mapItem.Data[k];
|
|
41286
41292
|
var value=item.Value;
|
|
@@ -49191,7 +49197,7 @@ function ChartMultiBar()
|
|
|
49191
49197
|
delete this.newMethod;
|
|
49192
49198
|
|
|
49193
49199
|
this.ClassName="ChartMultiBar";
|
|
49194
|
-
this.Bars=[]; // [ {Point:[ {Date, Time, Value, Value2 }, ], Color:, Width: , Type: 0 实心 1 空心 }, ]
|
|
49200
|
+
this.Bars=[]; // [ {Point:[ {Date, Time, Value, Value2 }, ], Color:, Width: , AdWidth:{ Type: 高级宽度设置 Type:1=柱子宽度, 2=柱子+间距宽度, Value:倍数 } , Type: 0 实心 1 空心 }, ]
|
|
49195
49201
|
this.IsHScreen=false;
|
|
49196
49202
|
|
|
49197
49203
|
this.MapCache=null; //key=date/date-time value={ Data:[] }
|
|
@@ -49218,8 +49224,9 @@ function ChartMultiBar()
|
|
|
49218
49224
|
var groupItem=this.Bars[i];
|
|
49219
49225
|
if (!groupItem || !IFrameSplitOperator.IsNonEmptyArray(groupItem.Point)) continue;
|
|
49220
49226
|
|
|
49221
|
-
var clrConfig= { Color:groupItem.Color, BGColor:null, Width:null, Name:groupItem.Name, Type:0 };
|
|
49227
|
+
var clrConfig= { Color:groupItem.Color, BGColor:null, Width:null, AdWidth:null, Name:groupItem.Name, Type:0 };
|
|
49222
49228
|
if (IFrameSplitOperator.IsNumber(groupItem.Width)) clrConfig.Width=groupItem.Width;
|
|
49229
|
+
if (groupItem.AdWidth) clrConfig.AdWidth=groupItem.AdWidth;
|
|
49223
49230
|
if (IFrameSplitOperator.IsNumber(groupItem.Type)) clrConfig.Type=groupItem.Type;
|
|
49224
49231
|
if (groupItem.BorderColor) clrConfig.BorderColor=groupItem.BorderColor;
|
|
49225
49232
|
|
|
@@ -49334,7 +49341,8 @@ function ChartMultiBar()
|
|
|
49334
49341
|
this.DrawAllBar=function(mapBar)
|
|
49335
49342
|
{
|
|
49336
49343
|
var pixelRatio=GetDevicePixelRatio();
|
|
49337
|
-
var dataWidth=this.ChartFrame.DataWidth;
|
|
49344
|
+
var dataWidth=this.ChartFrame.DataWidth; //柱子宽度
|
|
49345
|
+
var distanceWidth=this.ChartFrame.DistanceWidth; //间距
|
|
49338
49346
|
for(var mapItem of mapBar)
|
|
49339
49347
|
{
|
|
49340
49348
|
var aryBar=mapItem[1].AryBar;
|
|
@@ -49354,7 +49362,17 @@ function ChartMultiBar()
|
|
|
49354
49362
|
{
|
|
49355
49363
|
barWidth=dataWidth; //默认K线宽度
|
|
49356
49364
|
config=item.Data.ColorConfig;
|
|
49357
|
-
if (IFrameSplitOperator.IsNumber(config.
|
|
49365
|
+
if (config.AdWidth && IFrameSplitOperator.IsNumber(config.AdWidth.Value) && IFrameSplitOperator.IsNumber(config.AdWidth.Type)) //高级宽度设置 Type:1, 2, Value:倍数
|
|
49366
|
+
{
|
|
49367
|
+
var type=config.AdWidth.Type;
|
|
49368
|
+
var value=config.AdWidth.Value;
|
|
49369
|
+
if (type==1) barWidth=dataWidth*value;
|
|
49370
|
+
else if (type==2) barWidth=(dataWidth+distanceWidth)*value;
|
|
49371
|
+
}
|
|
49372
|
+
else if (IFrameSplitOperator.IsNumber(config.Width))
|
|
49373
|
+
{
|
|
49374
|
+
barWidth=config.Width*pixelRatio;
|
|
49375
|
+
}
|
|
49358
49376
|
if (barWidth>4)
|
|
49359
49377
|
{
|
|
49360
49378
|
if (config.Type==0) drawType=2; //实心
|
|
@@ -167200,7 +167218,7 @@ function HQChartScriptWorker()
|
|
|
167200
167218
|
|
|
167201
167219
|
|
|
167202
167220
|
|
|
167203
|
-
var HQCHART_VERSION="1.1.
|
|
167221
|
+
var HQCHART_VERSION="1.1.15320";
|
|
167204
167222
|
|
|
167205
167223
|
function PrintHQChartVersion()
|
|
167206
167224
|
{
|