hqchart 1.1.14231 → 1.1.14240
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 +15 -12
- package/package.json +1 -1
- package/src/jscommon/umychart.complier.js +30 -1
- package/src/jscommon/umychart.js +104 -60
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +135 -62
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +135 -62
package/lib/umychart.vue.js
CHANGED
|
@@ -3386,7 +3386,8 @@ else valueType=3;//百分比
|
|
|
3386
3386
|
}}for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var value=null;if(valueType==1)//K线收盘价
|
|
3387
3387
|
{var kItem=this.Data.Data[i];if(IFrameSplitOperator.IsNumber(kItem.Close))value=kItem.Close;}else if(valueType==3){var minItem=this.Data.Data[i];var mainItem=this.MainData.Data[i];if(!minItem||!IFrameSplitOperator.IsNumber(minItem.Close)||!IFrameSplitOperator.IsNumber(minItem.YClose))continue;if(!mainItem||!IFrameSplitOperator.IsNumber(mainItem.Close)||!IFrameSplitOperator.IsNumber(mainItem.YClose))continue;var price=minItem.Close;var value=price/minItem.YClose*mainItem.YClose;}else{value=this.Data.Data[i];}if(value==null)continue;if(isMinute){var xLine=this.ChartFrame.GetXFromIndex(j);}else{var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;var xLine=left+(right-left)/2;}var yLine=this.GetYFromData(value,false);if(xLine<x){ptStart.X=xLine;ptStart.Y=yLine;}else if(xLine==x){ptStart.X=ptEnd.X=xLine;ptStart.Y=ptEnd.Y=yLine;break;}else{ptEnd.X=xLine;ptEnd.Y=yLine;break;}if(x>chartright)break;}if(!IFrameSplitOperator.IsNumber(ptStart.X)||!IFrameSplitOperator.IsNumber(ptStart.Y))return null;if(!IFrameSplitOperator.IsNumber(ptEnd.X)||!IFrameSplitOperator.IsNumber(ptEnd.Y))return null;if(x==ptStart.X&&y==ptStart.Y)return{Identify:this.Identify,Chart:this};if(x==ptEnd.X&&y==ptEnd.Y)return{Identify:this.Identify,Chart:this};var lineWidth=5;this.Canvas.beginPath();if(ptStart.X==ptEnd.X)//竖线
|
|
3388
3388
|
{this.Canvas.moveTo(ptStart.X-lineWidth,ptStart.Y);this.Canvas.lineTo(ptStart.X+lineWidth,ptStart.Y);this.Canvas.lineTo(ptEnd.X+lineWidth,ptEnd.Y);this.Canvas.lineTo(ptEnd.X-lineWidth,ptEnd.Y);}else{this.Canvas.moveTo(ptStart.X,ptStart.Y+lineWidth);this.Canvas.lineTo(ptStart.X,ptStart.Y-lineWidth);this.Canvas.lineTo(ptEnd.X,ptEnd.Y-lineWidth);this.Canvas.lineTo(ptEnd.X,ptEnd.Y+lineWidth);}this.Canvas.closePath();if(this.Canvas.isPointInPath(x,y))return{Identify:this.Identify,Chart:this};return null;};//option={ BarWidth:柱子宽度(空为K线宽度) }
|
|
3389
|
-
this.PtInBar=function(x,y,option){if(!this.IsShow||this.ChartFrame.IsMinSize)return null;var bHScreen=this.ChartFrame.IsHScreen===true;if(bHScreen)return null;var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var border=this.ChartBorder.GetBorder();var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;var xPointCount=this.ChartFrame.XPointCount;var lockRect=this.GetLockRect();if(lockRect)chartright=lockRect.Left;if(x<xOffset||x>chartright)return null;if(y>border.BottomEx||y<border.TopEx)return null;var isMinute=this.IsMinuteFrame();var yBottom=this.ChartFrame.GetYFromData(0);var barWidth=null;var isMinuteVolBar=false;var isStackedBar=false;
|
|
3389
|
+
this.PtInBar=function(x,y,option){if(!this.IsShow||this.ChartFrame.IsMinSize)return null;var bHScreen=this.ChartFrame.IsHScreen===true;if(bHScreen)return null;var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var border=this.ChartBorder.GetBorder();var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;var xPointCount=this.ChartFrame.XPointCount;var lockRect=this.GetLockRect();if(lockRect)chartright=lockRect.Left;if(x<xOffset||x>chartright)return null;if(y>border.BottomEx||y<border.TopEx)return null;var isMinute=this.IsMinuteFrame();var yBottom=this.ChartFrame.GetYFromData(0);var barWidth=null;var isMinuteVolBar=false;var isStackedBar=false;var volUnit=1;//成交量单位
|
|
3390
|
+
if(option){if(option.BarWidth>0)barWidth=option.BarWidth;if(option.MinuteVolBar==true){isMinuteVolBar=true;barWidth=4;}else if(option.StackedBar==true){isStackedBar=true;}if(IFrameSplitOperator.IsNumber(option.VolUnit))volUnit=option.VolUnit;}for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var value=this.Data.Data[i];if(value==null)continue;if(isMinute){var xLine=this.ChartFrame.GetXFromIndex(j);var left=xLine-barWidth/2;var right=left+barWidth;}else{var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;}if(isMinuteVolBar){if(!IFrameSplitOperator.IsNumber(value.Vol))continue;var yBar=this.ChartFrame.GetYFromData(value.Vol/volUnit);var barTop=yBar,barBottom=yBottom;}else if(isStackedBar){var maxValue=0,minValue=0;if(!IFrameSplitOperator.IsNonEmptyArray(value))continue;for(var k=0;k<value.length;++k){var barValue=value[k];if(!IFrameSplitOperator.IsNumber(barValue))continue;if(barValue==0)continue;if(barValue>0)maxValue+=barValue;else if(barValue<0)minValue+=barValue;}var barTop=this.ChartFrame.GetYFromData(maxValue);var barBottom=this.ChartFrame.GetYFromData(minValue);}else{var yBar=this.ChartFrame.GetYFromData(value);var barTop=yBar,barBottom=yBottom;}if(barTop>barBottom){barTop=yBottom;barBottom=yBar;}var barLeft=left,barRight=right;if(barWidth>0){barLeft=left+(right-left)/2-barWidth/2;barRight=barLeft+barWidth;}if(x>=barLeft&&x<=barRight&&y>=barTop&&y<=barBottom)return{Identify:this.Identify,Chart:this};if(right>x)break;}return null;};this.PtInKBar=function(x,y,option){if(!this.IsShow||this.ChartFrame.IsMinSize)return null;var isHScreen=this.ChartFrame.IsHScreen===true;if(isHScreen)return null;var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var border=this.ChartBorder.GetBorder();var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;var xPointCount=this.ChartFrame.XPointCount;if(isHScreen){var border=this.ChartBorder.GetHScreenBorder();xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;chartright=border.BottomEx;}if(x<xOffset||x>chartright)return null;if(y>border.BottomEx||y<border.TopEx)return null;var firstOverlayOpen=null;var kBarType=0;var firstOpen=null;if(option&&option.OverlayKLine){kBarType=1;//叠加K线
|
|
3390
3391
|
firstOpen=this.GetFirstOpen();}for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var data=this.Data.Data[i];if(data.Open==null||data.High==null||data.Low==null||data.Close==null)continue;if(firstOverlayOpen==null)firstOverlayOpen=data.Open;var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;if(x>=left&&x<=right){if(kBarType==1){var yLow=this.GetYFromData(data.Low/firstOverlayOpen*firstOpen,false);var yHigh=this.GetYFromData(data.High/firstOverlayOpen*firstOpen,false);}else{var yLow=this.GetYFromData(data.Low,false);var yHigh=this.GetYFromData(data.High,false);}if(y<=yLow&&y>=yHigh)return{Identify:this.Identify,Chart:this};}if(right>x)break;}};this.IsShowIndexTitleOnly=function(){if(this.ChartFrame&&this.ChartFrame.ChartBorder&&this.ChartFrame.ChartBorder.IsShowTitleOnly)return true;return false;};//是否隐藏指标
|
|
3391
3392
|
this.IsHideScriptIndex=function(){if(this.Script&&this.Script.IsShow==false)return true;return false;};//导出单数组数据
|
|
3392
3393
|
this.ExportArrayData=function(aryKData,option){var data=this.Data.ExportArrayData(aryKData,option);return[{Name:this.Name,Data:data}];};this.ExportBoolData=function(aryKData,option){var data=this.Data.ExportBoolData(aryKData,option);return[{Name:this.Name,Data:data}];};//获取单数组的数据某一个数据 indexData={ Index:数据索引 }
|
|
@@ -3857,7 +3858,7 @@ this.Symbol;this.BeforeOpenData;//盘前数据
|
|
|
3857
3858
|
this.AfterCloseData;//盘后数据
|
|
3858
3859
|
this.BeforeVolColor=g_JSChartResource.Minute.Before.VolColor;this.ShareAfterVol=0;this.MultiDayBeforeOpenData;//多日分时图 盘前数据 数组 1天一个
|
|
3859
3860
|
this.MultiDayAfterCloseData;//多日分时图 盘后数据 数组 1天一个
|
|
3860
|
-
this.PtInChart=function(x,y){var option={MinuteVolBar:true};return this.PtInBar(x,y,option);};this.DrawSelectedStatus=function(){return this.DrawLinePoint({MinuteVolBar:true});};this.GetVolUnit=function(){var upperSymbol=this.Symbol?this.Symbol.toUpperCase():null;var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);return unit;};this.Draw=function(){var isHScreen=this.ChartFrame.IsHScreen===true;if(isHScreen){var border=this.ChartBorder.GetHScreenBorder();var chartright=border.BottomEx;}else{var border=this.ChartBorder.GetBorder();var chartright=border.RightEx;}this.DrawBeforeOpen();this.DrawMultiDayBeforeOpen();var xPointCount=this.ChartFrame.XPointCount;var yBottom=this.ChartFrame.GetYFromData(0);var yPrice=this.YClose;//上一分钟的价格
|
|
3861
|
+
this.PtInChart=function(x,y){var option={MinuteVolBar:true,VolUnit:this.GetVolUnit()};return this.PtInBar(x,y,option);};this.DrawSelectedStatus=function(){return this.DrawLinePoint({MinuteVolBar:true});};this.GetVolUnit=function(){var upperSymbol=this.Symbol?this.Symbol.toUpperCase():null;var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);return unit;};this.Draw=function(){var isHScreen=this.ChartFrame.IsHScreen===true;if(isHScreen){var border=this.ChartBorder.GetHScreenBorder();var chartright=border.BottomEx;}else{var border=this.ChartBorder.GetBorder();var chartright=border.RightEx;}this.DrawBeforeOpen();this.DrawMultiDayBeforeOpen();var xPointCount=this.ChartFrame.XPointCount;var yBottom=this.ChartFrame.GetYFromData(0);var yPrice=this.YClose;//上一分钟的价格
|
|
3861
3862
|
var data=this.Data;var bShowColorBar=MARKET_SUFFIX_NAME.IsShowMinuteColorVolBar(this.Symbol);if(bShowColorBar)this.Canvas.strokeStyle=this.CustomColor;var unit=this.GetVolUnit();for(var i=data.DataOffset,j=0;i<data.Data.length&&j<xPointCount;++i,++j){var item=data.Data[i];var vol=null;if(!item)continue;var price=null;vol=item.Vol/unit;price=item.Close;if(!vol)continue;var y=this.ChartFrame.GetYFromData(vol);var x=this.ChartFrame.GetXFromIndex(j);if(x>chartright)break;//价格>=上一分钟价格 红色 否则绿色
|
|
3862
3863
|
if(!bShowColorBar)this.Canvas.strokeStyle=this.GetMinuteBarColor(price,yPrice);this.Canvas.beginPath();if(isHScreen){this.Canvas.moveTo(y,ToFixedPoint(x));this.Canvas.lineTo(yBottom,ToFixedPoint(x));}else{this.Canvas.moveTo(ToFixedPoint(x),y);this.Canvas.lineTo(ToFixedPoint(x),yBottom);}this.Canvas.stroke();if(price)yPrice=price;}this.DrawAfterClose();this.DrawMultiDayAfterClose();};//连续交易成交量柱子颜色
|
|
3863
3864
|
this.GetMinuteBarColor=function(price,yPrice){if(this.BarColorType==1)//通达信模式
|
|
@@ -4064,7 +4065,7 @@ Zoom:{Type:g_JSChartResource.DRAWTEXT.Zoom.Type,Value:g_JSChartResource.DRAWTEXT
|
|
|
4064
4065
|
FontName:g_JSChartResource.DRAWTEXT.FontName,YOffset:g_JSChartResource.DRAWTEXT.YOffset};}else if(this.Name=="DRAWNUMBER"){this.TextSize={Max:g_JSChartResource.DRAWNUMBER.MaxSize,Min:g_JSChartResource.DRAWNUMBER.MinSize,//字体的最大最小值
|
|
4065
4066
|
Zoom:{Type:g_JSChartResource.DRAWNUMBER.Zoom.Type,Value:g_JSChartResource.DRAWNUMBER.Zoom.Value},//放大倍数
|
|
4066
4067
|
FontName:g_JSChartResource.DRAWNUMBER.FontName,YOffset:g_JSChartResource.DRAWNUMBER.YOffset};}else if(this.Name=="DRAWTEXT_FIX"){this.Font.DRAWTEXT_FIX=g_JSChartResource.DRAWTEXT_FIX.Font;}else if(this.Name=="DRAWNUMBER_FIX"){this.Font.DRAWNUMBER_FIX=g_JSChartResource.DRAWNUMBER_FIX.Font;}};this.SuperGetMaxMin=this.GetMaxMin;this.GetMaxMin=function(){if(this.Name=="DRAWTEXT_FIX"||this.Name=='DRAWNUMBER_FIX')//固定位置的 没有大小值
|
|
4067
|
-
{return{Min:null,Max:null};}else if(this.Name=="DRAWTEXTREL"||this.Name=="DRAWTEXTABS"){return{Min:null,Max:null};}else{return this.SuperGetMaxMin();}};this.DrawRectText=function(){if(!this.DrawData)return;var isHScreen=this.ChartFrame.IsHScreen===true;var border=this.ChartFrame.GetBorder();if(this.Name=="DRAWTEXTREL"){if(isHScreen){var height=border.RightTitle-border.LeftEx;var width=border.BottomEx-border.TopEx;var x=this.DrawData.Point.X/1000*width+border.TopEx;var y=border.RightTitle-this.DrawData.Point.Y/1000*width;}else{var width=border.RightEx-border.LeftEx;var height=border.BottomEx-border.TopTitle;var x=this.DrawData.Point.X/1000*width+border.LeftEx;var y=this.DrawData.Point.Y/1000*height+border.TopTitle;}}else if(this.Name=="DRAWTEXTABS"){if(isHScreen){var x=this.DrawData.Point.X+border.TopEx;var y=border.RightTitle-this.DrawData.Point.Y;}else{var x=this.DrawData.Point.X+border.LeftEx;var y=this.DrawData.Point.Y+border.TopTitle;}}else{return;}if(this.Direction==1)this.Canvas.textBaseline='bottom';else if(this.Direction==2)this.Canvas.textBaseline='top';else this.Canvas.textBaseline='middle';this.Canvas.textAlign=
|
|
4068
|
+
{return{Min:null,Max:null};}else if(this.Name=="DRAWTEXTREL"||this.Name=="DRAWTEXTABS"){return{Min:null,Max:null};}else{return this.SuperGetMaxMin();}};this.DrawRectText=function(){if(!this.DrawData)return;var isHScreen=this.ChartFrame.IsHScreen===true;var border=this.ChartFrame.GetBorder();if(this.Name=="DRAWTEXTREL"){if(isHScreen){var height=border.RightTitle-border.LeftEx;var width=border.BottomEx-border.TopEx;var x=this.DrawData.Point.X/1000*width+border.TopEx;var y=border.RightTitle-this.DrawData.Point.Y/1000*width;}else{var width=border.RightEx-border.LeftEx;var height=border.BottomEx-border.TopTitle;var x=this.DrawData.Point.X/1000*width+border.LeftEx;var y=this.DrawData.Point.Y/1000*height+border.TopTitle;}}else if(this.Name=="DRAWTEXTABS"){if(isHScreen){var x=this.DrawData.Point.X+border.TopEx;var y=border.RightTitle-this.DrawData.Point.Y;}else{var x=this.DrawData.Point.X+border.LeftEx;var y=this.DrawData.Point.Y+border.TopTitle;}}else{return;}if(this.Direction==1)this.Canvas.textBaseline='bottom';else if(this.Direction==2)this.Canvas.textBaseline='top';else this.Canvas.textBaseline='middle';this.Canvas.textAlign=this.TextAlign;this.Canvas.font=this.TextFont;this.Canvas.fillStyle=this.Color;this.DrawText(this.DrawData.Text,x,y,isHScreen);};this.Draw=function(){if(!this.IsShow||this.ChartFrame.IsMinSize)return;if(this.IsShowIndexTitleOnly())return;if(this.IsHideScriptIndex())return;if(this.NotSupportMessage){this.DrawNotSupportmessage();return;}if(this.Name=="DRAWTEXTREL"||this.Name=="DRAWTEXTABS"){this.DrawRectText();return;}if(this.Position){this.DrawPosition();return;}if(!this.Data||!this.Data.Data)return;var isHScreen=this.ChartFrame.IsHScreen===true;var isMinute=this.IsMinuteFrame();var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var xOffset=this.ChartBorder.GetLeft()+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=this.ChartBorder.GetRight();var top=this.ChartBorder.GetTopEx();var bottom=this.ChartBorder.GetBottomEx();this.Canvas.save();this.ClipClient(this.ChartFrame.IsHScreen);if(isHScreen){chartright=this.ChartBorder.GetBottom();top=this.ChartBorder.GetRightEx();bottom=this.ChartBorder.GetLeftEx();xOffset=this.ChartBorder.GetTop()+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;}var xPointCount=this.ChartFrame.XPointCount;var isArrayText=Array.isArray(this.Text);var pixelTatio=GetDevicePixelRatio();var drawTextInfo={Text:{},Font:{}};if(this.Direction==1){this.Canvas.textBaseline='bottom';drawTextInfo.Text={Baseline:'bottom'};}else if(this.Direction==2){this.Canvas.textBaseline='top';drawTextInfo.Text={Baseline:'top'};}else{this.Canvas.textBaseline='middle';drawTextInfo.Text={Baseline:'middle'};}if(this.IconFont){this.Color=this.IconFont.Color;this.Text=this.IconFont.Text;if(this.FixedFontSize>0)var iconSize=this.FixedFontSize;else var iconSize=this.GetDynamicIconSize(dataWidth,distanceWidth,this.IconSize.Max,this.IconSize.Min,this.IconSize.Zoom);this.Canvas.font=iconSize+'px '+this.IconFont.Family;}else{if(this.FixedFontSize>0)this.TextFont=this.FixedFontSize+'px '+this.TextSize.FontName;else this.TextFont=this.GetDynamicFont(dataWidth,distanceWidth,this.TextSize.Max,this.TextSize.Min,this.TextSize.Zoom,this.TextSize.FontName);this.Canvas.font=this.TextFont;}drawTextInfo.Font={Height:this.GetFontHeight()};for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var value=this.Data.Data[i];if(value==null)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;}var y=this.ChartFrame.GetYFromData(value,false);if(x>chartright)break;y+=this.ShowOffset.Y;x+=this.ShowOffset.X;this.Canvas.textAlign=this.TextAlign;this.Canvas.fillStyle=this.Color;drawTextInfo.Text.Color=this.Color;drawTextInfo.Text.Align=this.TextAlign;drawTextInfo.X=x;drawTextInfo.Y=y;if(this.YOffset>0&&this.Direction>0){var yPrice=y;this.Canvas.setLineDash([5,10]);this.Canvas.strokeStyle=this.Color;this.Canvas.beginPath();if(isHScreen){if(this.Direction==1){y=top-this.YOffset*pixelTatio;yPrice+=5*pixelTatio;}else{y=bottom+this.YOffset*pixelTatio;yPrice-=5*pixelTatio;}this.Canvas.moveTo(ToFixedPoint(yPrice),ToFixedPoint(x));this.Canvas.lineTo(ToFixedPoint(y),ToFixedPoint(x));}else{if(this.Direction==1){y=top+this.YOffset*pixelTatio;yPrice+=5*pixelTatio;}else{y=bottom-this.YOffset*pixelTatio;yPrice-=5*pixelTatio;}this.Canvas.moveTo(ToFixedPoint(x),ToFixedPoint(yPrice));this.Canvas.lineTo(ToFixedPoint(x),ToFixedPoint(y));}this.Canvas.stroke();this.Canvas.setLineDash([]);}if(isArrayText){var text=this.Text[i];if(!text)continue;if(this.Name=='DRAWNUMBER'){if(this.Direction==1)y-=g_JSChartResource.DRAWABOVE.YOffset*pixelTatio;else if(this.Direction==2)y+=this.TextSize.YOffset*pixelTatio;}if(this.Name=="DRAWTEXT")this.DrawTextV2(text,drawTextInfo,isHScreen);else this.DrawText(text,x,y,isHScreen);}else{if(this.Name=='DRAWICON'){if(this.Direction==1)y-=g_JSChartResource.DRAWABOVE.YOffset*pixelTatio;else if(this.Direction==2){if(this.IconFont)y+=this.IconSize.YOffset*pixelTatio;else y+=this.TextSize.YOffset*pixelTatio;}}else if(this.Name=="DRAWTEXT"){if(this.Direction==1)y-=g_JSChartResource.DRAWABOVE.YOffset*pixelTatio;else if(this.Direction==2)y+=this.TextSize.YOffset*pixelTatio;}if(this.Name=="DRAWTEXT"){this.DrawTextV2(this.Text,drawTextInfo,isHScreen);}else{this.DrawText(this.Text,x,y,isHScreen);}}}this.Canvas.restore();};this.DrawPosition=function()//绘制在指定位置上
|
|
4068
4069
|
{if(!this.Text)return;var isHScreen=this.ChartFrame.IsHScreen===true;if(isHScreen){var y=this.ChartBorder.GetRightEx()-this.ChartBorder.GetWidthEx()*this.Position.Y;var x=this.ChartBorder.GetTop()+this.ChartBorder.GetHeight()*this.Position.X;}else{var x=this.ChartBorder.GetLeft()+this.ChartBorder.GetWidth()*this.Position.X;var y=this.ChartBorder.GetTopEx()+this.ChartBorder.GetHeightEx()*this.Position.Y;}this.Canvas.fillStyle=this.Color;if(this.Name=="DRAWTEXT_FIX")this.Canvas.font=this.Font.DRAWTEXT_FIX;else if(this.Name=="DRAWNUMBER_FIX")this.Canvas.font=this.Font.DRAWNUMBER_FIX;//TYPE:0为左对齐,1为右对齐.
|
|
4069
4070
|
if(this.Position.Type==0)this.Canvas.textAlign='left';else if(this.Position.Type==1)this.Canvas.textAlign='right';else this.Canvas.textAlign='center';if(this.Direction==1)this.Canvas.textBaseline='bottom';else if(this.Direction==2)this.Canvas.textBaseline='top';else this.Canvas.textBaseline='middle';if(Array.isArray(this.Text)){if(!this.Data||!this.Data.Data)return;var xPointCount=this.ChartFrame.XPointCount;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var text=this.Text[i];if(text){this.DrawText(text,x,y,isHScreen);break;}}}else{this.DrawText(this.Text,x,y,isHScreen);}};this.DrawText=function(text,x,y,isHScreen){if(isHScreen){this.Canvas.save();this.Canvas.translate(y,x);this.Canvas.rotate(90*Math.PI/180);this.Canvas.fillText(text,0,0);this.Canvas.restore();}else{this.Canvas.fillText(text,x,y);}};this.DrawTextV2=function(text,drawInfo,isHScreen){var textWidth=this.Canvas.measureText(text).width;if(isHScreen){var x=drawInfo.Y;var y=drawInfo.X;if(drawInfo.Text.Align=="right")y=y-textWidth;else if(drawInfo.Text.Align=="center")y=y-textWidth/2;if(drawInfo.Text.Baseline=="top")x-=drawInfo.Font.Height;else if(drawInfo.Text.Baseline=="middle")x-=drawInfo.Font.Height/2;if(this.TextBG&&(this.TextBG.Color||this.TextBG.Border)){var margin=this.TextBG.Margin;//0=上 1=下 2=左 3=右
|
|
4070
4071
|
var xRect=x-margin[0];var yRect=y-margin[2];var bgWidth=textWidth+margin[2]+margin[3];var bgHeight=drawInfo.Font.Height+margin[0]+margin[1];if(this.TextBG.Color){this.Canvas.fillStyle=this.TextBG.Color;this.Canvas.fillRect(xRect,yRect,bgHeight,bgWidth);}if(this.TextBG.Border){this.Canvas.strokeStyle=this.TextBG.Border;this.Canvas.strokeRect(ToFixedPoint(xRect),ToFixedPoint(yRect),ToFixedRect(bgHeight),ToFixedRect(bgWidth));}}this.Canvas.textBaseline="bottom";this.Canvas.textAlign="left";this.Canvas.fillStyle=drawInfo.Text.Color;this.Canvas.save();this.Canvas.translate(x,y);this.Canvas.rotate(90*Math.PI/180);this.Canvas.fillText(text,0,0);this.Canvas.restore();}else{var x=drawInfo.X;var y=drawInfo.Y;if(drawInfo.Text.Align=="right")x=x-textWidth;else if(drawInfo.Text.Align=="center")x=x-textWidth/2;if(drawInfo.Text.Baseline=="top")y+=drawInfo.Font.Height;else if(drawInfo.Text.Baseline=="middle")y+=drawInfo.Font.Height/2;if(this.TextBG&&(this.TextBG.Color||this.TextBG.Border)){var margin=this.TextBG.Margin;//0=上 1=下 2=左 3=右
|
|
@@ -4325,7 +4326,7 @@ for(var i=0;i<this.Texts.length;++i){var item=this.Texts[i];if(!item.Text)contin
|
|
|
4325
4326
|
if(item.Line.Width>0)this.Canvas.lineWidth=item.Line.Width;//线宽
|
|
4326
4327
|
this.Canvas.strokeStyle=item.Line.Color;this.Canvas.beginPath();if(this.IsHScreen){this.Canvas.moveTo(yText,ToFixedPoint(x));this.Canvas.lineTo(yPrice,ToFixedPoint(x));}else{this.Canvas.moveTo(ToFixedPoint(x),yText);this.Canvas.lineTo(ToFixedPoint(x),yPrice);}this.Canvas.stroke();this.Canvas.restore();}}}};this.Draw=function(){if(!this.IsShow||this.ChartFrame.IsMinSize||!this.IsVisible)return;if(this.IsShowIndexTitleOnly())return;if(this.IsHideScriptIndex())return;if(!this.Data||this.Data.length<=0)return;if(!this.Texts)return;this.IsHScreen=this.ChartFrame.IsHScreen===true;var mapText=this.GetShowTextData();if(mapText.size<=0)return;this.Canvas.save();this.ClipClient(this.IsHScreen);this.DrawAllText(mapText);this.Canvas.restore();};this.GetMaxMin=function(){var range={Min:null,Max:null};if(!this.Texts)return range;var xPointCount=this.ChartFrame.XPointCount;var start=this.Data.DataOffset;var end=start+xPointCount;for(var i in this.Texts){var item=this.Texts[i];if(!IFrameSplitOperator.IsNumber(item.Value))continue;if(item.Index>=start&&item.Index<end){if(range.Max==null)range.Max=item.Value;else if(range.Max<item.Value)range.Max=item.Value;if(range.Min==null)range.Min=item.Value;else if(range.Min>item.Value)range.Min=item.Value;}}return range;};}//图标集合(2.0) 支持横屏
|
|
4327
4328
|
function ChartMultiSVGIconV2(){this.newMethod=IChartPainting;//派生
|
|
4328
|
-
this.newMethod();delete this.newMethod;this.ClassName="ChartMultiSVGIconV2";this.AryIcon;//[ {Index:, Value:, Symbol:, Color:, Baseline:, Line:{ Color:, Dash:[虚线点], KData:"H/L", Offset:[5,10], Width:线粗细 } } ]
|
|
4329
|
+
this.newMethod();delete this.newMethod;this.ClassName="ChartMultiSVGIconV2";this.AryIcon;//[ {Index:, Value:, Symbol:, Color:, Baseline:, Line:{ Color:, Dash:[虚线点], KData:"H/L", Offset:[5,10], Width:线粗细 }, Image:{ Data:Image图片, Width, Height } } ]
|
|
4329
4330
|
this.IconSize={Max:g_JSChartResource.DRAWICON.Icon.MaxSize,Min:g_JSChartResource.DRAWICON.Icon.MinSize,//图标的最大最小值
|
|
4330
4331
|
Zoom:{Type:g_JSChartResource.DRAWICON.Icon.Zoom.Type,Value:g_JSChartResource.DRAWICON.Icon.Zoom.Value//放大倍数
|
|
4331
4332
|
}};this.Family;this.Color=g_JSChartResource.DefaultTextColor;this.IsHScreen=false;this.IconRect=[];//0=序号,1=区域
|
|
@@ -4334,7 +4335,8 @@ this.BuildKey=function(item){if(IFrameSplitOperator.IsNumber(item.Time))return i
|
|
|
4334
4335
|
{if(isHScreen==true){var left=this.ChartBorder.GetLeft();var right=this.ChartBorder.GetRight();var top=this.ChartBorder.GetTop();var bottom=this.ChartBorder.GetBottom();}else{var left=this.ChartBorder.GetLeft();var right=this.ChartBorder.GetRight();var top=this.ChartBorder.GetTop();var bottom=this.ChartBorder.GetBottom();}this.Canvas.beginPath();this.Canvas.rect(left,top,right-left,bottom-top);//this.Canvas.stroke(); //调试用
|
|
4335
4336
|
this.Canvas.clip();};this.Draw=function(){this.IconRect=[];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线数据
|
|
4336
4337
|
if(!this.Family)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;}this.Canvas.save();this.ClipClient(this.ChartFrame.IsHScreen);var fontSize=this.GetDynamicIconSize(dataWidth,distanceWidth,this.IconSize.Max,this.IconSize.Min,this.IconSize.Zoom);this.Canvas.font=fontSize+'px '+this.Family;var drawInfo={Left:chartLeft,Right:chartright,FontSize:fontSize,DataWidth:dataWidth,DistanceWidth:distanceWidth};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(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.DrawItem(mapItem,kItem,x,drawInfo);}this.Canvas.restore();};this.GetKValue=function(kItem,valueName){switch(valueName){case"HIGH":case"H":return kItem.High;case"L":case"LOW":return kItem.Low;case"C":case"CLOSE":return kItem.Close;case"O":case"OPEN":return KItem.Open;default:return null;}};this.DrawItem=function(groupItem,kItem,x,drawInfo){if(!IFrameSplitOperator.IsNonEmptyArray(groupItem.Data))return;var fontSize=drawInfo.FontSize;var left=drawInfo.Left,right=drawInfo.Right;var dataWidth=drawInfo.DataWidth;//var distanceWidth=drawInfo.DistanceWidth;
|
|
4337
|
-
for(var i=0;i<groupItem.Data.length;++i){var item=groupItem.Data[i];var value=item.Value;if(IFrameSplitOperator.IsString(item.Value))value=this.GetKValue(kItem,item.Value);if(!IFrameSplitOperator.IsNumber(value))continue;var y=this.ChartFrame.GetYFromData(item.Value,false);if(item.
|
|
4338
|
+
for(var i=0;i<groupItem.Data.length;++i){var item=groupItem.Data[i];var value=item.Value;if(IFrameSplitOperator.IsString(item.Value))value=this.GetKValue(kItem,item.Value);if(!IFrameSplitOperator.IsNumber(value))continue;var y=this.ChartFrame.GetYFromData(item.Value,false);if(item.Image){var imageHeight=item.Image.Height;var imageWidth=item.Image.Width;var rtIcon=new Rect(x-imageWidth/2,y-imageHeight/2,imageWidth,imageHeight);if(item.Baseline==1){this.Canvas.textBaseline='top';rtIcon.Y=y;}else if(item.Baseline==2){this.Canvas.textBaseline='bottom';rtIcon.Y=y-imageHeight;}else{this.Canvas.textBaseline='middle';rtIcon.Y=y-imageHeight/2;}if(IFrameSplitOperator.IsNumber(item.YMove)){y+=item.YMove;rtIcon.Y+=item.YMove;}this.Canvas.drawImage(item.Image.Data,rtIcon.X,rtIcon.Y,item.Image.Width,item.Image.Height);if(item.Text)this.IconRect.push({Rect:rtIcon,Item:item,KItem:kItem});else if(IFrameSplitOperator.IsNonEmptyArray(item.AryText))this.IconRect.push({Rect:rtIcon,Item:item,KItem:kItem});}else{if(item.Color)this.Canvas.fillStyle=item.Color;else this.Canvas.fillStyle=this.Color;//var textWidth=this.Canvas.measureText(item.Symbol).width;
|
|
4339
|
+
this.Canvas.textAlign='center';var rtIcon=new Rect(x-fontSize/2,y-fontSize/2,fontSize,fontSize);if(item.Baseline==1){this.Canvas.textBaseline='top';rtIcon.Y=y;}else if(item.Baseline==2){this.Canvas.textBaseline='bottom';rtIcon.Y=y-fontSize;}else{this.Canvas.textBaseline='middle';rtIcon.Y=y-fontSize/2;}if(this.IsHScreen){this.Canvas.save();this.Canvas.translate(y,x);this.Canvas.rotate(90*Math.PI/180);this.Canvas.fillText(item.Symbol,0,0);this.Canvas.restore();}else{if(IFrameSplitOperator.IsNumber(item.YMove)){y+=item.YMove;rtIcon.Y+=item.YMove;}this.Canvas.fillText(item.Symbol,x,y);if(item.Text)this.IconRect.push({Rect:rtIcon,Item:item,KItem:kItem});else if(IFrameSplitOperator.IsNonEmptyArray(item.AryText))this.IconRect.push({Rect:rtIcon,Item:item,KItem:kItem});}}if(item.Line){var price=item.Line.KData=="H"?kItem.High:kItem.Low;var yPrice=this.ChartFrame.GetYFromData(price,false);var yText=y;if(Array.isArray(item.Line.Offset)&&item.Line.Offset.length==2){if(yText>yPrice)//文字在下方
|
|
4338
4340
|
{yText-=item.Line.Offset[1];yPrice+=item.Line.Offset[0];}else if(yText<yPrice){yText+=item.Line.Offset[1];yPrice-=item.Line.Offset[0];}}this.Canvas.save();if(item.Line.Dash)this.Canvas.setLineDash(item.Line.Dash);//虚线
|
|
4339
4341
|
if(item.Line.Width>0)this.Canvas.lineWidth=item.Line.Width;//线宽
|
|
4340
4342
|
this.Canvas.strokeStyle=item.Line.Color;this.Canvas.beginPath();if(this.IsHScreen){this.Canvas.moveTo(yText,ToFixedPoint(x));this.Canvas.lineTo(yPrice,ToFixedPoint(x));}else{this.Canvas.moveTo(ToFixedPoint(x),yText);this.Canvas.lineTo(ToFixedPoint(x),yPrice);}this.Canvas.stroke();this.Canvas.restore();}}};this.GetTooltipData=function(x,y,tooltip){if(!IFrameSplitOperator.IsNonEmptyArray(this.IconRect))return false;for(var i=0;i<this.IconRect.length;++i){var item=this.IconRect[i];if(!item.Rect)continue;var rect=item.Rect;if(rect&&rect.PtInRect(x,y)){JSConsole.Chart.Log('[ChartMultiSVGIconV2::GetTooltipData] icon ',item);tooltip.Data=item;tooltip.ChartPaint=this;tooltip.Type=4;//指标
|
|
@@ -5249,9 +5251,9 @@ this.Operator=function(){this.Frame.VerticalInfo=[];var xPointCount=this.Frame.X
|
|
|
5249
5251
|
this.Frame.MinuteCount=minuteCount;this.Frame.VerticalInfo=[];if(this.Frame.GlobalOption){var item=this.Frame.GlobalOption;if(IFrameSplitOperator.IsNumber(item.XDateFormat))this.DateFormat=item.XDateFormat;}if(this.DayCount<=1){//设置成1日的数据
|
|
5250
5252
|
this.DayOffset.DataOffset=0;this.DayOffset.ShowDataCount=minuteCount;this.DayOffset.PageInfo=null;for(var i=0;i<xcoordinate.length;++i){var info=new CoordinateInfo();var item=xcoordinate[i];if(g_JSChartResource.Minute.FrameSplitTextColor)info.TextColor=g_JSChartResource.Minute.FrameSplitTextColor;info.Value=item[0];if(this.ShowText)info.Message[0]=item[3];if(item[4])info.LineColor=item[4];//线段颜色
|
|
5251
5253
|
if(item[5])info.TextBGColor=item[5];//文字背景色
|
|
5252
|
-
this.Frame.VerticalInfo[i]=info;}}else{var offset=0,showDayCount=this.DayData.length;if(this.DayOffset){if(IFrameSplitOperator.IsNumber(this.DayOffset.Offset))offset=this.DayOffset.Offset;if(IFrameSplitOperator.IsNumber(this.DayOffset.ShowDayCount))showDayCount=this.DayOffset.ShowDayCount;}this.DayOffset.DataOffset=offset*minuteCount;this.DayOffset.ShowDataCount=this.DayOffset.ShowDayCount*minuteCount;this.DayOffset.PageInfo={Day:[]};for(var i=this.DayData.length-1-offset,j=0;i>=0&&j<showDayCount;--i,++j){var info=new CoordinateInfo();info.Value=j*minuteCount+minuteMiddleCount;info.LineType=-1;//线段不画
|
|
5254
|
+
this.Frame.VerticalInfo[i]=info;}}else{if(IFrameSplitOperator.IsNonEmptyArray(this.DayData)){var offset=0,showDayCount=this.DayData.length;if(this.DayOffset){if(IFrameSplitOperator.IsNumber(this.DayOffset.Offset))offset=this.DayOffset.Offset;if(IFrameSplitOperator.IsNumber(this.DayOffset.ShowDayCount))showDayCount=this.DayOffset.ShowDayCount;}this.DayOffset.DataOffset=offset*minuteCount;this.DayOffset.ShowDataCount=this.DayOffset.ShowDayCount*minuteCount;this.DayOffset.PageInfo={Day:[]};for(var i=this.DayData.length-1-offset,j=0;i>=0&&j<showDayCount;--i,++j){var info=new CoordinateInfo();info.Value=j*minuteCount+minuteMiddleCount;info.LineType=-1;//线段不画
|
|
5253
5255
|
if(this.ShowText){info.Message[0]=this.FormatDate(this.DayData[i].Date);info.BG={Index:{Start:j*minuteCount+1,End:(j+1)*minuteCount-1},Date:this.DayData[i].Date};//背景设置
|
|
5254
|
-
}this.Frame.VerticalInfo.push(info);var info=new CoordinateInfo();info.Value=(j+1)*minuteCount;this.Frame.VerticalInfo.push(info);this.DayOffset.PageInfo.Day.push({Date:this.DayData[i].Date,Index:i});}}if(this.GetEventCallback){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_SPLIT_XCOORDINATE);if(event&&event.Callback){var data={ID:this.Frame.Identify,Frame:this.Frame};event.Callback(event,data,this);}}};this.FormatDate=function(date){switch(this.DateFormat){case 1:return IFrameSplitOperator.FormatDateString(date,'MM/DD');case 2:return IFrameSplitOperator.FormatDateString(date,'MM/DD/W');default://MM-DD
|
|
5256
|
+
}this.Frame.VerticalInfo.push(info);var info=new CoordinateInfo();info.Value=(j+1)*minuteCount;this.Frame.VerticalInfo.push(info);this.DayOffset.PageInfo.Day.push({Date:this.DayData[i].Date,Index:i});}}}if(this.GetEventCallback){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_SPLIT_XCOORDINATE);if(event&&event.Callback){var data={ID:this.Frame.Identify,Frame:this.Frame};event.Callback(event,data,this);}}};this.FormatDate=function(date){switch(this.DateFormat){case 1:return IFrameSplitOperator.FormatDateString(date,'MM/DD');case 2:return IFrameSplitOperator.FormatDateString(date,'MM/DD/W');default://MM-DD
|
|
5255
5257
|
return IFrameSplitOperator.FormatDateString(date,'MM-DD');}};}function FrameSplitXData(){this.newMethod=IFrameSplitOperator;//派生
|
|
5256
5258
|
this.newMethod();delete this.newMethod;this.ShowText=true;//是否显示坐标信息
|
|
5257
5259
|
this.Symbol;//股票代码
|
|
@@ -7984,7 +7986,7 @@ for(var i=0;i<this.Frame.SubFrame.length;++i){var titlePaint=new DynamicChartTit
|
|
|
7984
7986
|
if(bRegisterWheel)this.UIElement.addEventListener("wheel",function(e){_this26.OnWheel(e);},true);//上下滚动消息
|
|
7985
7987
|
};//创建子窗口
|
|
7986
7988
|
this.CreateChildWindow=function(windowCount){var _this27=this;var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CREATE_FRAME);for(var i=0;i<windowCount;++i){var border=new ChartBorder();border.UIElement=this.UIElement;var frame=new MinuteFrame();frame.Canvas=this.Canvas;frame.ChartBorder=border;frame.Identify=i;frame.GlobalOption=this.GlobalOption;if(i<2)frame.ChartBorder.TitleHeight=0;frame.XPointCount=243;frame.HQChart=this;frame.GetEventCallback=function(id){return _this27.GetEventCallback(id);};if(i>=2){}var DEFAULT_HORIZONTAL=[9,8,7,6,5,4,3,2,1];frame.HorizontalMax=DEFAULT_HORIZONTAL[0];frame.HorizontalMin=DEFAULT_HORIZONTAL[DEFAULT_HORIZONTAL.length-1];if(i==0){frame.YSplitOperator=new FrameSplitMinutePriceY();frame.YSplitOperator.FrameSplitData=this.FrameSplitData.get('price');frame.YSplitOperator.GetEventCallback=function(id){return _this27.GetEventCallback(id);};frame.YSplitOperator.DayOffset=this.DayOffset;frame.YSplitOperator.GlobalOption=this.GlobalOption;frame.YSplitOperator.HQChart=this;}else{frame.YSplitOperator=new FrameSplitY();frame.YSplitOperator.LanguageID=this.LanguageID;frame.YSplitOperator.FrameSplitData=this.FrameSplitData.get('double');frame.YSplitOperator.GetEventCallback=function(id){return _this27.GetEventCallback(id);};if(i==1)frame.YSplitOperator.ShareAfterVol=this.ShareAfterVol;}frame.YSplitOperator.Frame=frame;frame.YSplitOperator.ChartBorder=border;frame.XSplitOperator=new FrameSplitMinuteX();frame.XSplitOperator.Frame=frame;frame.XSplitOperator.ChartBorder=border;frame.XSplitOperator.DayOffset=this.DayOffset;frame.XSplitOperator.GetEventCallback=function(id){return _this27.GetEventCallback(id);};if(i!=windowCount-1)frame.XSplitOperator.ShowText=false;frame.XSplitOperator.Operator();for(var j in DEFAULT_HORIZONTAL){frame.HorizontalInfo[j]=new CoordinateInfo();frame.HorizontalInfo[j].Value=DEFAULT_HORIZONTAL[j];if(i==0&&j==frame.HorizontalMin)continue;frame.HorizontalInfo[j].Message[1]=DEFAULT_HORIZONTAL[j].toString();frame.HorizontalInfo[j].Font="14px 微软雅黑";}var subFrame=new SubFrameItem();frame.FrameData.SubFrameItem=subFrame;subFrame.Frame=frame;if(i==0)subFrame.Height=20;else subFrame.Height=10;this.Frame.SubFrame[i]=subFrame;if(event&&event.Callback){var sendData={SubFrame:this.Frame.SubFrame[i],WindowIndex:i};event.Callback(event,sendData,this);}}};this.CreateSubFrameItem=function(id,mainFrame){var _this28=this;var border=new ChartBorder();border.UIElement=this.UIElement;if(mainFrame&&mainFrame.ChartBorder&&mainFrame.ChartBorder.MultiDayMinute){var item=mainFrame.ChartBorder.MultiDayMinute;border.MultiDayMinute.Count=item.Count;border.MultiDayMinute.Left=item.Left;border.MultiDayMinute.Right=item.Right;}var frame=null;if(this.ClassName=="MinuteChartHScreenContainer")frame=new MinuteHScreenFrame();else frame=new MinuteFrame();frame.Canvas=this.Canvas;frame.ChartBorder=border;frame.Identify=id;//窗口序号
|
|
7987
|
-
frame.XPointCount=243;frame.GlobalOption=this.GlobalOption;frame.HQChart=this;frame.GetEventCallback=function(id){return _this28.GetEventCallback(id);};var DEFAULT_HORIZONTAL=[9,8,7,6,5,4,3,2,1];frame.HorizontalMax=DEFAULT_HORIZONTAL[0];frame.HorizontalMin=DEFAULT_HORIZONTAL[DEFAULT_HORIZONTAL.length-1];frame.YSplitOperator=new FrameSplitY();frame.YSplitOperator.LanguageID=this.LanguageID;frame.YSplitOperator.FrameSplitData=this.FrameSplitData.get('double');frame.YSplitOperator.Frame=frame;frame.YSplitOperator.ChartBorder=border;frame.XSplitOperator=new FrameSplitMinuteX();frame.XSplitOperator.Frame=frame;frame.XSplitOperator.ChartBorder=border;frame.XSplitOperator.ShowText=false;frame.XSplitOperator.DayOffset=this.DayOffset;frame.XSplitOperator.GetEventCallback=function(id){return _this28.GetEventCallback(id);};frame.YSplitOperator.GetEventCallback=function(id){return _this28.GetEventCallback(id);};frame.XSplitOperator.Symbol=this.Symbol;if(this.DayCount>1){
|
|
7989
|
+
frame.XPointCount=243;frame.GlobalOption=this.GlobalOption;frame.HQChart=this;frame.GetEventCallback=function(id){return _this28.GetEventCallback(id);};var DEFAULT_HORIZONTAL=[9,8,7,6,5,4,3,2,1];frame.HorizontalMax=DEFAULT_HORIZONTAL[0];frame.HorizontalMin=DEFAULT_HORIZONTAL[DEFAULT_HORIZONTAL.length-1];frame.YSplitOperator=new FrameSplitY();frame.YSplitOperator.LanguageID=this.LanguageID;frame.YSplitOperator.FrameSplitData=this.FrameSplitData.get('double');frame.YSplitOperator.Frame=frame;frame.YSplitOperator.ChartBorder=border;frame.XSplitOperator=new FrameSplitMinuteX();frame.XSplitOperator.Frame=frame;frame.XSplitOperator.ChartBorder=border;frame.XSplitOperator.ShowText=false;frame.XSplitOperator.DayOffset=this.DayOffset;frame.XSplitOperator.GetEventCallback=function(id){return _this28.GetEventCallback(id);};frame.YSplitOperator.GetEventCallback=function(id){return _this28.GetEventCallback(id);};frame.XSplitOperator.Symbol=this.Symbol;if(this.DayCount>1){var dayCount=this.DayCount;if(IFrameSplitOperator.IsNonEmptyArray(this.DayData))dayCount=this.DayData.length;frame.XSplitOperator.DayCount=dayCount;frame.XSplitOperator.DayData=this.DayData;frame.DayCount=dayCount;}//K线数据绑定
|
|
7988
7990
|
var xPointCouont=this.Frame.SubFrame[0].Frame.XPointCount;frame.XPointCount=xPointCouont;frame.Data=this.ChartPaint[0].Data;for(var j in DEFAULT_HORIZONTAL){frame.HorizontalInfo[j]=new CoordinateInfo();frame.HorizontalInfo[j].Value=DEFAULT_HORIZONTAL[j];frame.HorizontalInfo[j].Message[1]=DEFAULT_HORIZONTAL[j].toString();frame.HorizontalInfo[j].Font="14px 微软雅黑";}var subFrame=new SubFrameItem();frame.FrameData.SubFrameItem=subFrame;subFrame.Frame=frame;subFrame.Height=10;var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CREATE_FRAME);if(event&&event.Callback){var sendData={SubFrame:subFrame,WindowIndex:id};event.Callback(event,sendData,this);}return subFrame;};this.AddNewSubFrame=function(option){var _this29=this;var mainFrame=this.Frame.SubFrame[0].Frame;var index=this.Frame.SubFrame.length;var subFrame=this.CreateSubFrameItem(index,mainFrame);var pixelRatio=GetDevicePixelRatio();subFrame.Frame.ChartBorder.TitleHeight*=pixelRatio;this.Frame.SubFrame[index]=subFrame;var titlePaint=new DynamicChartTitlePainting();titlePaint.Frame=this.Frame.SubFrame[index].Frame;titlePaint.Canvas=this.Canvas;titlePaint.LanguageID=this.LanguageID;titlePaint.GetEventCallback=function(id){return _this29.GetEventCallback(id);};titlePaint.MainTitlePaint=this.TitlePaint[0];this.TitlePaint[index+1]=titlePaint;this.SetSubFrameOption(subFrame,option);//最后一个显示X轴坐标
|
|
7989
7991
|
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;}this.UpdataDataoffset();//更新数据偏移
|
|
7990
7992
|
this.Frame.SetSizeChage(true);if(this.UpdateXShowText)this.UpdateXShowText();this.ResetFrameXYSplit();this.UpdateFrameMaxMin();//调整坐标最大 最小值
|
|
@@ -11482,7 +11484,7 @@ if(varItem.DrawFontSize>0)chart.SVG.Size=varItem.DrawFontSize*GetDevicePixelRati
|
|
|
11482
11484
|
hqChart.ChartPaint.push(chart);};this.CreateTextLine=function(hqChart,windowIndex,varItem,id){var chart=new ChartTextLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;if(varItem.Draw&&varItem.Draw.DrawData){var drawData=varItem.Draw.DrawData;chart.Text=drawData.Text;chart.Line=drawData.Line;chart.Price=drawData.Price;}hqChart.ChartPaint.push(chart);};this.CreateNumberText=function(hqChart,windowIndex,varItem,id){var chartText=new ChartSingleText();chartText.Canvas=hqChart.Canvas;chartText.Name=varItem.Name;chartText.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chartText.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chartText.ReloadResource();chartText.TextAlign="center";if(varItem.Color)chartText.Color=this.GetColor(varItem.Color);else chartText.Color=this.GetDefaultColor(id);if(varItem.IsDrawAbove)chartText.Direction=1;else chartText.Direction=2;if(varItem.Draw.Position)chartText.Position=varItem.Draw.Position;//赋值坐标
|
|
11483
11485
|
var titleIndex=windowIndex+1;chartText.Data.Data=varItem.Draw.DrawData.Value;chartText.Text=varItem.Draw.DrawData.Text;//hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(bar.Data,varItem.Name,bar.Color);
|
|
11484
11486
|
this.SetChartIndexName(chartText);hqChart.ChartPaint.push(chartText);};this.CreateDrawText=function(hqChart,windowIndex,varItem,id){var chartText=new ChartSingleText();chartText.Canvas=hqChart.Canvas;chartText.Name=varItem.Name;chartText.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chartText.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chartText.ReloadResource();if(varItem.Color)chartText.Color=this.GetColor(varItem.Color);else chartText.Color=this.GetDefaultColor(id);if(varItem.IsDrawAbove)chartText.Direction=1;else chartText.Direction=0;if(varItem.DrawFontSize>0)chartText.TextFont=varItem.DrawFontSize*GetDevicePixelRatio()+'px \u5FAE\u8F6F\u96C5\u9ED1';//临时用下吧
|
|
11485
|
-
var titleIndex=windowIndex+1;chartText.DrawData=varItem.Draw.DrawData;//hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(bar.Data,varItem.Name,bar.Color);
|
|
11487
|
+
if(varItem.Font)chartText.TextFont=varItem.Font;if(varItem.DrawVAlign>=0){if(varItem.DrawVAlign==0)chartText.Direction=1;else if(varItem.DrawVAlign==1)chartText.Direction=0;else if(varItem.DrawVAlign==2)chartText.Direction=2;}if(varItem.DrawAlign>=0){if(varItem.DrawAlign==0)chartText.TextAlign="left";else if(varItem.DrawAlign==1)chartText.TextAlign="center";else if(varItem.DrawAlign==2)chartText.TextAlign='right';}var titleIndex=windowIndex+1;chartText.DrawData=varItem.Draw.DrawData;//hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(bar.Data,varItem.Name,bar.Color);
|
|
11486
11488
|
this.SetChartIndexName(chartText);hqChart.ChartPaint.push(chartText);};//创建图标
|
|
11487
11489
|
this.CreateIcon=function(hqChart,windowIndex,varItem,id){var chartText=new ChartSingleText();chartText.Canvas=hqChart.Canvas;chartText.TextAlign='center';chartText.Name=varItem.Name;chartText.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chartText.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chartText.Direction=2;if(varItem.IsDrawAbove)chartText.Direction=1;if(varItem.DrawVAlign>=0){if(varItem.DrawVAlign==0)chartText.Direction=1;else if(varItem.DrawVAlign==1)chartText.Direction=0;else if(varItem.DrawVAlign==2)chartText.Direction=2;}if(varItem.DrawAlign>=0){if(varItem.DrawAlign==0)chartText.TextAlign="left";else if(varItem.DrawAlign==1)chartText.TextAlign="center";else if(varItem.DrawAlign==2)chartText.TextAlign='right';}var titleIndex=windowIndex+1;chartText.Data.Data=varItem.Draw.DrawData;var icon=varItem.Draw.Icon;if(icon.IconFont==true){chartText.IconFont={Family:icon.Family,Text:icon.Symbol,Color:icon.Color};if(varItem.Color)chartText.IconFont.Color=this.GetColor(varItem.Color);}else{chartText.Text=icon.Symbol;if(varItem.Color)chartText.Color=this.GetColor(varItem.Color);else if(icon.Color)chartText.Color=icon.Color;else chartText.Color='rgb(0,0,0)';}if(varItem.DrawFontSize>0)chartText.FixedFontSize=varItem.DrawFontSize;if(IFrameSplitOperator.IsNumber(varItem.XOffset))chartText.ShowOffset.X=varItem.XOffset;if(IFrameSplitOperator.IsNumber(varItem.YOffset))chartText.ShowOffset.Y=varItem.YOffset;//hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(bar.Data,varItem.Name,bar.Color);
|
|
11488
11490
|
this.SetChartIndexName(chartText);hqChart.ChartPaint.push(chartText);};this.CreateTipIcon=function(hqChart,windowIndex,varItem,i){var chart=new ChartDrawSVG();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;if(hqChart.ChartPaint[0].IsMinuteFrame())chart.Data=hqChart.SourceData;else chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
@@ -11677,14 +11679,15 @@ sourceData.sort(function(a,b){return a.Date-b.Date;});kdata.GetDateIndex(sourceD
|
|
|
11677
11679
|
{var kdata=hqChart.ChartPaint[0].Data;//K线
|
|
11678
11680
|
sourceData.sort(function(a,b){if(a.Date==b.Date)return a.Time-b.Time;return a.Date-b.Date;});kdata.GetDateTimeIndex(sourceData);return sourceData;}else if(this.HQDataType==HQ_DATA_TYPE.MINUTE_ID||this.HQDataType==HQ_DATA_TYPE.MULTIDAY_MINUTE_ID){var minuteData=hqChart.SourceData;sourceData.sort(function(a,b){if(a.Date==b.Date)return a.Time-b.Time;return a.Date-b.Date;});minuteData.GetDateTimeIndex(sourceData);return sourceData;}return null;};this.FittingData=function(jsonData,hqChart){var outVar=jsonData.outvar;var date=jsonData.date;var time=jsonData.time;var kdata=hqChart.ChartPaint[0].Data;//把数据拟合到kdata上
|
|
11679
11681
|
var result=[];if(!outVar)return result;for(var i=0;i<outVar.length;++i){var item=outVar[i];var indexData=[];var outVarItem={Name:item.name,Type:item.type};if(item.color)outVarItem.Color=item.color;if(IFrameSplitOperator.IsBool(item.IsShowTitle))outVarItem.IsShowTitle=item.IsShowTitle;//是否显示指标标题
|
|
11680
|
-
if(item.data){outVarItem.Data=this.FittingArray(item.data,date,time,hqChart);if(item.color)outVarItem.Color=item.color;if(item.linewidth)outVarItem.LineWidth=item.linewidth;if(IFrameSplitOperator.IsBool(item.isshow))outVarItem.IsShow=item.isshow;//是否绘制线段
|
|
11682
|
+
if(IFrameSplitOperator.IsNumber(item.DrawVAlign))outVarItem.DrawVAlign=item.DrawVAlign;if(IFrameSplitOperator.IsNumber(item.DrawAlign))outVarItem.DrawAlign=item.DrawAlign;if(item.data){outVarItem.Data=this.FittingArray(item.data,date,time,hqChart);if(item.color)outVarItem.Color=item.color;if(item.linewidth)outVarItem.LineWidth=item.linewidth;if(IFrameSplitOperator.IsBool(item.isshow))outVarItem.IsShow=item.isshow;//是否绘制线段
|
|
11681
11683
|
if(item.isexdata==true)outVarItem.IsExData=true;if(item.BreakPoint)outVarItem.BreakPoint=item.BreakPoint;if(item.UpColor)outVarItem.UpColor=item.UpColor;if(item.DownColor)outVarItem.DownColor=item.DownColor;if(IFrameSplitOperator.IsBool(item.isDotLine))outVarItem.IsDotLine=item.isDotLine;if(IFrameSplitOperator.IsNonEmptyArray(item.lineDash))outVarItem.LineDash=item.lineDash;if(IFrameSplitOperator.IsBool(item.isSingleLine))outVarItem.IsSingleLine=item.isSingleLine;if(IFrameSplitOperator.IsNumber(item.StickType))outVarItem.StickType=item.StickType;if(IFrameSplitOperator.IsNumber(item.BarColorType))outVarItem.BarColorType=item.BarColorType;result.push(outVarItem);}else if(item.Draw){var draw=item.Draw;var drawItem={};if(draw.DrawType=='DRAWICON')//图标
|
|
11682
11684
|
{drawItem.Icon=draw.Icon;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='DRAWTEXT')//文本
|
|
11683
11685
|
{drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='STICKLINE')//柱子
|
|
11684
11686
|
{drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.Width=draw.Width;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart,1);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=="DRAWBAND"){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart,1);drawItem.Color=draw.Color;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);if(IFrameSplitOperator.IsNonEmptyArray(drawItem.DrawData)){for(var k=0;k<drawItem.DrawData.length;++k){this.GetKLineData(drawItem.DrawData[k].Point,hqChart);}}outVarItem.Draw=drawItem;if(draw.LineDash)drawItem.LineDash=draw.LineDash;if(IFrameSplitOperator.IsBool(draw.IsFullRangeMaxMin))drawItem.IsFullRangeMaxMin=draw.IsFullRangeMaxMin;if(draw.Arrow)drawItem.Arrow=draw.Arrow;if(IFrameSplitOperator.IsNumber(draw.LineWidth))drawItem.LineWidth=draw.LineWidth;result.push(outVarItem);}else if(draw.DrawType=='MULTI_POINT'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMultiLine(draw.DrawData,date,time,hqChart);if(IFrameSplitOperator.IsNonEmptyArray(drawItem.DrawData)){for(var k=0;k<drawItem.DrawData.length;++k){this.GetKLineData(drawItem.DrawData[k].Point,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=this.FittingMultiLine(draw.DrawData,date,time,hqChart);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.BarType=draw.BarType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart,1);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType==SCRIPT_CHART_NAME.SCATTER_PLOT){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart,1);//默认的值
|
|
11685
11687
|
drawItem.Color=draw.Color;drawItem.Radius=draw.Radius;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=this.FittingArray(draw.DrawData,date,time,hqChart,1);drawItem.RowCount=draw.RowCount;drawItem.RowName=draw.RowName;drawItem.IsShowRowName=draw.IsShowRowName;drawItem.BGColor=draw.BGColor;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=this.FittingMultiText(draw.DrawData,date,time,hqChart);this.GetKLineData(drawItem.DrawData,hqChart);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.DrawData={Data:this.FittingMultiText(draw.Data,date,time,hqChart),Family:draw.Family,TextFont:draw.TextFont,EnableTooltip:draw.EnableTooltip,IsDrawFirst:draw.IsDrawFirst};this.GetKLineData(drawItem.DrawData.Data,hqChart);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=="MULTI_HTMLDOM")//外部自己创建dom
|
|
11686
11688
|
{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=="COLOR_KLINE"){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;var klineOption=this.FittingMultiText(draw.DrawData.KLine,date,time,hqChart);var mapKLineOption=new _map2.default();for(var i in klineOption){var item=klineOption[i];mapKLineOption.set(item.Index,item);}drawItem.DrawData={KLine:mapKLineOption};if(draw.Color)outVarItem.Color=draw.Color;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=="KLINE_BG"){drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData={};drawItem.DrawData.Color=draw.Color;drawItem.DrawData.Angle=draw.Angle;if(draw.Ver==2.0)drawItem.DrawData.Data=this.FittingKLineBG_V2(draw.DrawData,hqChart);else drawItem.DrawData.Data=this.FittingKLineBG(draw.DrawData,hqChart);outVarItem.Draw=drawItem;outVarItem.Name=draw.DrawType;result.push(outVarItem);}else if(draw.DrawType=='MULTI_POINT_LINE'){drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData={};drawItem.DrawData.Color=draw.Color;drawItem.DrawData.PointRadius=draw.PointRadius;drawItem.DrawData.PointColor=draw.PointColor;drawItem.DrawData.LineWidth=draw.LineWidth;drawItem.DrawData.Data=this.FittingMultiPointLine(draw.DrawData,hqChart);outVarItem.Draw=drawItem;//outVarItem.Name=draw.DrawType;
|
|
11687
|
-
result.push(outVarItem);}else if(draw.DrawType=="PARTLINE"){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.LineWidth)outVarItem.LineWidth=draw.LineWidth;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.FittingArray(draw.Data,date,time,hqChart);outVarItem.Draw=drawItem;if(draw.LineWidth)outVarItem.LineWidth=draw.LineWidth;if(draw.UpColor)outVarItem.UpColor=draw.UpColor;if(draw.DownColor)outVarItem.DownColor=draw.DownColor;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{
|
|
11689
|
+
result.push(outVarItem);}else if(draw.DrawType=="PARTLINE"){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.LineWidth)outVarItem.LineWidth=draw.LineWidth;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.FittingArray(draw.Data,date,time,hqChart);outVarItem.Draw=drawItem;if(draw.LineWidth)outVarItem.LineWidth=draw.LineWidth;if(draw.UpColor)outVarItem.UpColor=draw.UpColor;if(draw.DownColor)outVarItem.DownColor=draw.DownColor;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=="DRAWTEXTREL"||draw.DrawType=="DRAWTEXTABS"){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;//{ Point: { X: 5,Y: 5 }, Text: "注意(居中):前方高能!!!!!" }
|
|
11690
|
+
outVarItem.Draw=drawItem;if(draw.Font)outVarItem.Font=draw.Font;result.push(outVarItem);}else{var find=g_ScriptIndexChartFactory.Get(draw.DrawType);//外部挂接
|
|
11688
11691
|
if(find&&find.KLineFittingCallback){if(find.KLineFittingCallback(item,outVarItem,{Date:date,Time:time,HQChart:hqChart},this))result.push(outVarItem);}}}}return result;};// h, high, low l. c, close
|
|
11689
11692
|
this.GetKLineData=function(data,hqChart){if(!data)return;if(!Array.isArray(data))return;if(this.HQDataType==HQ_DATA_TYPE.MINUTE_ID||this.HQDataType==HQ_DATA_TYPE.MULTIDAY_MINUTE_ID)var kData=hqChart.SourceData;//走势图分钟数据
|
|
11690
11693
|
else var kData=hqChart.ChartPaint[0].Data;//K线
|
|
@@ -13822,7 +13825,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
|
|
|
13822
13825
|
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);};}/********************************************************************************
|
|
13823
13826
|
* 版本信息输出
|
|
13824
13827
|
*
|
|
13825
|
-
*/var HQCHART_VERSION="1.1.
|
|
13828
|
+
*/var HQCHART_VERSION="1.1.14239";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();//把给外界调用的方法暴露出来
|
|
13826
13829
|
exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
|
|
13827
13830
|
// BaseIndex:BaseIndex,
|
|
13828
13831
|
// ChartLine:ChartLine,
|
package/package.json
CHANGED
|
@@ -21468,6 +21468,21 @@ function ScriptIndex(name,script,args,option)
|
|
|
21468
21468
|
else chartText.Direction=0;
|
|
21469
21469
|
|
|
21470
21470
|
if (varItem.DrawFontSize>0) chartText.TextFont=`${varItem.DrawFontSize*GetDevicePixelRatio()}px 微软雅黑`; //临时用下吧
|
|
21471
|
+
if (varItem.Font) chartText.TextFont=varItem.Font;
|
|
21472
|
+
|
|
21473
|
+
if (varItem.DrawVAlign>=0)
|
|
21474
|
+
{
|
|
21475
|
+
if (varItem.DrawVAlign==0) chartText.Direction=1;
|
|
21476
|
+
else if (varItem.DrawVAlign==1) chartText.Direction=0;
|
|
21477
|
+
else if (varItem.DrawVAlign==2) chartText.Direction=2;
|
|
21478
|
+
}
|
|
21479
|
+
|
|
21480
|
+
if (varItem.DrawAlign>=0)
|
|
21481
|
+
{
|
|
21482
|
+
if (varItem.DrawAlign==0) chartText.TextAlign="left";
|
|
21483
|
+
else if (varItem.DrawAlign==1) chartText.TextAlign="center";
|
|
21484
|
+
else if (varItem.DrawAlign==2) chartText.TextAlign='right';
|
|
21485
|
+
}
|
|
21471
21486
|
|
|
21472
21487
|
let titleIndex=windowIndex+1;
|
|
21473
21488
|
chartText.DrawData=varItem.Draw.DrawData;
|
|
@@ -24456,7 +24471,9 @@ function APIScriptIndex(name,script,args,option, isOverlay)
|
|
|
24456
24471
|
var outVarItem={Name:item.name,Type:item.type};
|
|
24457
24472
|
if (item.color) outVarItem.Color=item.color;
|
|
24458
24473
|
if (IFrameSplitOperator.IsBool(item.IsShowTitle)) outVarItem.IsShowTitle = item.IsShowTitle; //是否显示指标标题
|
|
24459
|
-
if (item.
|
|
24474
|
+
if (IFrameSplitOperator.IsNumber(item.DrawVAlign)) outVarItem.DrawVAlign = item.DrawVAlign;
|
|
24475
|
+
if (IFrameSplitOperator.IsNumber(item.DrawAlign)) outVarItem.DrawAlign = item.DrawAlign;
|
|
24476
|
+
if (item.data)
|
|
24460
24477
|
{
|
|
24461
24478
|
outVarItem.Data=this.FittingArray(item.data,date,time,hqChart);
|
|
24462
24479
|
|
|
@@ -24743,6 +24760,18 @@ function APIScriptIndex(name,script,args,option, isOverlay)
|
|
|
24743
24760
|
|
|
24744
24761
|
result.push(outVarItem);
|
|
24745
24762
|
}
|
|
24763
|
+
else if (draw.DrawType=="DRAWTEXTREL" || draw.DrawType=="DRAWTEXTABS")
|
|
24764
|
+
{
|
|
24765
|
+
drawItem.Name=draw.Name;
|
|
24766
|
+
drawItem.Type=draw.Type;
|
|
24767
|
+
drawItem.DrawType=draw.DrawType;
|
|
24768
|
+
drawItem.DrawData=draw.DrawData; //{ Point: { X: 5,Y: 5 }, Text: "注意(居中):前方高能!!!!!" }
|
|
24769
|
+
|
|
24770
|
+
outVarItem.Draw=drawItem;
|
|
24771
|
+
if (draw.Font) outVarItem.Font=draw.Font;
|
|
24772
|
+
|
|
24773
|
+
result.push(outVarItem);
|
|
24774
|
+
}
|
|
24746
24775
|
else
|
|
24747
24776
|
{
|
|
24748
24777
|
var find=g_ScriptIndexChartFactory.Get(draw.DrawType); //外部挂接
|
package/src/jscommon/umychart.js
CHANGED
|
@@ -24895,6 +24895,7 @@ function IChartPainting()
|
|
|
24895
24895
|
var barWidth=null;
|
|
24896
24896
|
var isMinuteVolBar=false;
|
|
24897
24897
|
var isStackedBar=false;
|
|
24898
|
+
var volUnit=1; //成交量单位
|
|
24898
24899
|
if (option)
|
|
24899
24900
|
{
|
|
24900
24901
|
if (option.BarWidth>0) barWidth=option.BarWidth;
|
|
@@ -24907,6 +24908,8 @@ function IChartPainting()
|
|
|
24907
24908
|
{
|
|
24908
24909
|
isStackedBar=true;
|
|
24909
24910
|
}
|
|
24911
|
+
|
|
24912
|
+
if (IFrameSplitOperator.IsNumber(option.VolUnit)) volUnit=option.VolUnit;
|
|
24910
24913
|
}
|
|
24911
24914
|
|
|
24912
24915
|
for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
|
|
@@ -24930,7 +24933,7 @@ function IChartPainting()
|
|
|
24930
24933
|
if (isMinuteVolBar)
|
|
24931
24934
|
{
|
|
24932
24935
|
if (!IFrameSplitOperator.IsNumber(value.Vol)) continue;
|
|
24933
|
-
var yBar=this.ChartFrame.GetYFromData(value.Vol);
|
|
24936
|
+
var yBar=this.ChartFrame.GetYFromData(value.Vol/volUnit);
|
|
24934
24937
|
var barTop=yBar, barBottom=yBottom;
|
|
24935
24938
|
}
|
|
24936
24939
|
else if (isStackedBar)
|
|
@@ -31498,7 +31501,7 @@ function ChartMinuteVolumBar()
|
|
|
31498
31501
|
|
|
31499
31502
|
this.PtInChart=function(x,y)
|
|
31500
31503
|
{
|
|
31501
|
-
var option={ MinuteVolBar:true };
|
|
31504
|
+
var option={ MinuteVolBar:true, VolUnit:this.GetVolUnit() };
|
|
31502
31505
|
return this.PtInBar(x,y,option);
|
|
31503
31506
|
}
|
|
31504
31507
|
|
|
@@ -34715,7 +34718,7 @@ function ChartSingleText()
|
|
|
34715
34718
|
if (this.Direction==1) this.Canvas.textBaseline='bottom';
|
|
34716
34719
|
else if (this.Direction==2) this.Canvas.textBaseline='top';
|
|
34717
34720
|
else this.Canvas.textBaseline='middle';
|
|
34718
|
-
this.Canvas.textAlign=
|
|
34721
|
+
this.Canvas.textAlign=this.TextAlign
|
|
34719
34722
|
this.Canvas.font=this.TextFont;
|
|
34720
34723
|
this.Canvas.fillStyle=this.Color;
|
|
34721
34724
|
this.DrawText(this.DrawData.Text,x,y,isHScreen);
|
|
@@ -40423,7 +40426,7 @@ function ChartMultiSVGIconV2()
|
|
|
40423
40426
|
delete this.newMethod;
|
|
40424
40427
|
|
|
40425
40428
|
this.ClassName="ChartMultiSVGIconV2";
|
|
40426
|
-
this.AryIcon; //[ {Index:, Value:, Symbol:, Color:, Baseline:, Line:{ Color:, Dash:[虚线点], KData:"H/L", Offset:[5,10], Width:线粗细 } } ]
|
|
40429
|
+
this.AryIcon; //[ {Index:, Value:, Symbol:, Color:, Baseline:, Line:{ Color:, Dash:[虚线点], KData:"H/L", Offset:[5,10], Width:线粗细 }, Image:{ Data:Image图片, Width, Height } } ]
|
|
40427
40430
|
this.IconSize=
|
|
40428
40431
|
{
|
|
40429
40432
|
Max: g_JSChartResource.DRAWICON.Icon.MaxSize, Min:g_JSChartResource.DRAWICON.Icon.MinSize , //图标的最大最小值
|
|
@@ -40589,47 +40592,83 @@ function ChartMultiSVGIconV2()
|
|
|
40589
40592
|
|
|
40590
40593
|
var y=this.ChartFrame.GetYFromData(item.Value,false);
|
|
40591
40594
|
|
|
40592
|
-
if (item.
|
|
40593
|
-
else this.Canvas.fillStyle = this.Color;
|
|
40594
|
-
|
|
40595
|
-
var textWidth=this.Canvas.measureText(item.Symbol).width;
|
|
40596
|
-
this.Canvas.textAlign='center';
|
|
40597
|
-
var rtIcon=new Rect(x-fontSize/2,y-fontSize/2,fontSize,fontSize);
|
|
40598
|
-
|
|
40599
|
-
if (item.Baseline==1)
|
|
40595
|
+
if (item.Image)
|
|
40600
40596
|
{
|
|
40601
|
-
|
|
40602
|
-
|
|
40603
|
-
|
|
40604
|
-
|
|
40605
|
-
|
|
40606
|
-
|
|
40607
|
-
|
|
40608
|
-
|
|
40609
|
-
|
|
40610
|
-
|
|
40611
|
-
|
|
40612
|
-
|
|
40613
|
-
|
|
40597
|
+
var imageHeight=item.Image.Height;
|
|
40598
|
+
var imageWidth=item.Image.Width;
|
|
40599
|
+
var rtIcon=new Rect(x-imageWidth/2,y-imageHeight/2,imageWidth,imageHeight);
|
|
40600
|
+
if (item.Baseline==1)
|
|
40601
|
+
{
|
|
40602
|
+
this.Canvas.textBaseline='top';
|
|
40603
|
+
rtIcon.Y=y;
|
|
40604
|
+
}
|
|
40605
|
+
else if (item.Baseline==2)
|
|
40606
|
+
{
|
|
40607
|
+
this.Canvas.textBaseline='bottom';
|
|
40608
|
+
rtIcon.Y=y-imageHeight;
|
|
40609
|
+
}
|
|
40610
|
+
else
|
|
40611
|
+
{
|
|
40612
|
+
this.Canvas.textBaseline = 'middle';
|
|
40613
|
+
rtIcon.Y=y-imageHeight/2;
|
|
40614
|
+
}
|
|
40614
40615
|
|
|
40615
|
-
if (this.IsHScreen)
|
|
40616
|
-
{
|
|
40617
|
-
this.Canvas.save();
|
|
40618
|
-
this.Canvas.translate(y, x);
|
|
40619
|
-
this.Canvas.rotate(90 * Math.PI / 180);
|
|
40620
|
-
this.Canvas.fillText(item.Symbol,0,0);
|
|
40621
|
-
this.Canvas.restore();
|
|
40622
|
-
}
|
|
40623
|
-
else
|
|
40624
|
-
{
|
|
40625
40616
|
if (IFrameSplitOperator.IsNumber(item.YMove))
|
|
40626
40617
|
{
|
|
40627
40618
|
y+=item.YMove;
|
|
40628
40619
|
rtIcon.Y+=item.YMove;
|
|
40629
40620
|
}
|
|
40630
|
-
|
|
40621
|
+
|
|
40622
|
+
this.Canvas.drawImage(item.Image.Data, rtIcon.X, rtIcon.Y, item.Image.Width, item.Image.Height);
|
|
40623
|
+
|
|
40631
40624
|
if (item.Text) this.IconRect.push({ Rect:rtIcon , Item:item, KItem:kItem });
|
|
40632
40625
|
else if (IFrameSplitOperator.IsNonEmptyArray(item.AryText)) this.IconRect.push({ Rect:rtIcon , Item:item, KItem:kItem });
|
|
40626
|
+
|
|
40627
|
+
}
|
|
40628
|
+
else
|
|
40629
|
+
{
|
|
40630
|
+
if (item.Color) this.Canvas.fillStyle = item.Color;
|
|
40631
|
+
else this.Canvas.fillStyle = this.Color;
|
|
40632
|
+
|
|
40633
|
+
//var textWidth=this.Canvas.measureText(item.Symbol).width;
|
|
40634
|
+
this.Canvas.textAlign='center';
|
|
40635
|
+
var rtIcon=new Rect(x-fontSize/2,y-fontSize/2,fontSize,fontSize);
|
|
40636
|
+
|
|
40637
|
+
if (item.Baseline==1)
|
|
40638
|
+
{
|
|
40639
|
+
this.Canvas.textBaseline='top';
|
|
40640
|
+
rtIcon.Y=y;
|
|
40641
|
+
}
|
|
40642
|
+
else if (item.Baseline==2)
|
|
40643
|
+
{
|
|
40644
|
+
this.Canvas.textBaseline='bottom';
|
|
40645
|
+
rtIcon.Y=y-fontSize;
|
|
40646
|
+
}
|
|
40647
|
+
else
|
|
40648
|
+
{
|
|
40649
|
+
this.Canvas.textBaseline = 'middle';
|
|
40650
|
+
rtIcon.Y=y-fontSize/2;
|
|
40651
|
+
}
|
|
40652
|
+
|
|
40653
|
+
if (this.IsHScreen)
|
|
40654
|
+
{
|
|
40655
|
+
this.Canvas.save();
|
|
40656
|
+
this.Canvas.translate(y, x);
|
|
40657
|
+
this.Canvas.rotate(90 * Math.PI / 180);
|
|
40658
|
+
this.Canvas.fillText(item.Symbol,0,0);
|
|
40659
|
+
this.Canvas.restore();
|
|
40660
|
+
}
|
|
40661
|
+
else
|
|
40662
|
+
{
|
|
40663
|
+
if (IFrameSplitOperator.IsNumber(item.YMove))
|
|
40664
|
+
{
|
|
40665
|
+
y+=item.YMove;
|
|
40666
|
+
rtIcon.Y+=item.YMove;
|
|
40667
|
+
}
|
|
40668
|
+
this.Canvas.fillText(item.Symbol, x, y);
|
|
40669
|
+
if (item.Text) this.IconRect.push({ Rect:rtIcon , Item:item, KItem:kItem });
|
|
40670
|
+
else if (IFrameSplitOperator.IsNonEmptyArray(item.AryText)) this.IconRect.push({ Rect:rtIcon , Item:item, KItem:kItem });
|
|
40671
|
+
}
|
|
40633
40672
|
}
|
|
40634
40673
|
|
|
40635
40674
|
if (item.Line)
|
|
@@ -51217,34 +51256,37 @@ function FrameSplitMinuteX()
|
|
|
51217
51256
|
this.Frame.VerticalInfo[i]=info;
|
|
51218
51257
|
}
|
|
51219
51258
|
}
|
|
51220
|
-
else
|
|
51259
|
+
else
|
|
51221
51260
|
{
|
|
51222
|
-
|
|
51223
|
-
if (this.DayOffset)
|
|
51261
|
+
if (IFrameSplitOperator.IsNonEmptyArray(this.DayData))
|
|
51224
51262
|
{
|
|
51225
|
-
|
|
51226
|
-
if (
|
|
51227
|
-
}
|
|
51228
|
-
this.DayOffset.DataOffset=offset*minuteCount;
|
|
51229
|
-
this.DayOffset.ShowDataCount=this.DayOffset.ShowDayCount*minuteCount;
|
|
51230
|
-
this.DayOffset.PageInfo={ Day:[] };
|
|
51231
|
-
for(var i=this.DayData.length-1-offset, j=0; i>=0 && j<showDayCount; --i,++j)
|
|
51232
|
-
{
|
|
51233
|
-
var info=new CoordinateInfo();
|
|
51234
|
-
info.Value=j*minuteCount+minuteMiddleCount;
|
|
51235
|
-
info.LineType=-1; //线段不画
|
|
51236
|
-
if (this.ShowText)
|
|
51263
|
+
var offset=0, showDayCount=this.DayData.length;
|
|
51264
|
+
if (this.DayOffset)
|
|
51237
51265
|
{
|
|
51238
|
-
|
|
51239
|
-
|
|
51266
|
+
if (IFrameSplitOperator.IsNumber(this.DayOffset.Offset)) offset=this.DayOffset.Offset;
|
|
51267
|
+
if (IFrameSplitOperator.IsNumber(this.DayOffset.ShowDayCount)) showDayCount=this.DayOffset.ShowDayCount;
|
|
51240
51268
|
}
|
|
51241
|
-
this.
|
|
51269
|
+
this.DayOffset.DataOffset=offset*minuteCount;
|
|
51270
|
+
this.DayOffset.ShowDataCount=this.DayOffset.ShowDayCount*minuteCount;
|
|
51271
|
+
this.DayOffset.PageInfo={ Day:[] };
|
|
51272
|
+
for(var i=this.DayData.length-1-offset, j=0; i>=0 && j<showDayCount; --i,++j)
|
|
51273
|
+
{
|
|
51274
|
+
var info=new CoordinateInfo();
|
|
51275
|
+
info.Value=j*minuteCount+minuteMiddleCount;
|
|
51276
|
+
info.LineType=-1; //线段不画
|
|
51277
|
+
if (this.ShowText)
|
|
51278
|
+
{
|
|
51279
|
+
info.Message[0]=this.FormatDate(this.DayData[i].Date);
|
|
51280
|
+
info.BG={ Index: { Start:j*minuteCount+1, End: (j+1)*minuteCount-1 }, Date:this.DayData[i].Date }; //背景设置
|
|
51281
|
+
}
|
|
51282
|
+
this.Frame.VerticalInfo.push(info);
|
|
51242
51283
|
|
|
51243
|
-
|
|
51244
|
-
|
|
51245
|
-
|
|
51284
|
+
var info=new CoordinateInfo();
|
|
51285
|
+
info.Value=(j+1)*minuteCount;
|
|
51286
|
+
this.Frame.VerticalInfo.push(info);
|
|
51246
51287
|
|
|
51247
|
-
|
|
51288
|
+
this.DayOffset.PageInfo.Day.push({ Date:this.DayData[i].Date, Index:i });
|
|
51289
|
+
}
|
|
51248
51290
|
}
|
|
51249
51291
|
}
|
|
51250
51292
|
|
|
@@ -83074,9 +83116,11 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
83074
83116
|
|
|
83075
83117
|
if (this.DayCount>1)
|
|
83076
83118
|
{
|
|
83077
|
-
|
|
83119
|
+
var dayCount=this.DayCount;
|
|
83120
|
+
if (IFrameSplitOperator.IsNonEmptyArray(this.DayData)) dayCount=this.DayData.length;
|
|
83121
|
+
frame.XSplitOperator.DayCount=dayCount;
|
|
83078
83122
|
frame.XSplitOperator.DayData=this.DayData;
|
|
83079
|
-
frame.DayCount=
|
|
83123
|
+
frame.DayCount=dayCount;
|
|
83080
83124
|
}
|
|
83081
83125
|
|
|
83082
83126
|
|
|
@@ -28820,6 +28820,7 @@ function IChartPainting()
|
|
|
28820
28820
|
var barWidth=null;
|
|
28821
28821
|
var isMinuteVolBar=false;
|
|
28822
28822
|
var isStackedBar=false;
|
|
28823
|
+
var volUnit=1; //成交量单位
|
|
28823
28824
|
if (option)
|
|
28824
28825
|
{
|
|
28825
28826
|
if (option.BarWidth>0) barWidth=option.BarWidth;
|
|
@@ -28832,6 +28833,8 @@ function IChartPainting()
|
|
|
28832
28833
|
{
|
|
28833
28834
|
isStackedBar=true;
|
|
28834
28835
|
}
|
|
28836
|
+
|
|
28837
|
+
if (IFrameSplitOperator.IsNumber(option.VolUnit)) volUnit=option.VolUnit;
|
|
28835
28838
|
}
|
|
28836
28839
|
|
|
28837
28840
|
for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
|
|
@@ -28855,7 +28858,7 @@ function IChartPainting()
|
|
|
28855
28858
|
if (isMinuteVolBar)
|
|
28856
28859
|
{
|
|
28857
28860
|
if (!IFrameSplitOperator.IsNumber(value.Vol)) continue;
|
|
28858
|
-
var yBar=this.ChartFrame.GetYFromData(value.Vol);
|
|
28861
|
+
var yBar=this.ChartFrame.GetYFromData(value.Vol/volUnit);
|
|
28859
28862
|
var barTop=yBar, barBottom=yBottom;
|
|
28860
28863
|
}
|
|
28861
28864
|
else if (isStackedBar)
|
|
@@ -35423,7 +35426,7 @@ function ChartMinuteVolumBar()
|
|
|
35423
35426
|
|
|
35424
35427
|
this.PtInChart=function(x,y)
|
|
35425
35428
|
{
|
|
35426
|
-
var option={ MinuteVolBar:true };
|
|
35429
|
+
var option={ MinuteVolBar:true, VolUnit:this.GetVolUnit() };
|
|
35427
35430
|
return this.PtInBar(x,y,option);
|
|
35428
35431
|
}
|
|
35429
35432
|
|
|
@@ -38640,7 +38643,7 @@ function ChartSingleText()
|
|
|
38640
38643
|
if (this.Direction==1) this.Canvas.textBaseline='bottom';
|
|
38641
38644
|
else if (this.Direction==2) this.Canvas.textBaseline='top';
|
|
38642
38645
|
else this.Canvas.textBaseline='middle';
|
|
38643
|
-
this.Canvas.textAlign=
|
|
38646
|
+
this.Canvas.textAlign=this.TextAlign
|
|
38644
38647
|
this.Canvas.font=this.TextFont;
|
|
38645
38648
|
this.Canvas.fillStyle=this.Color;
|
|
38646
38649
|
this.DrawText(this.DrawData.Text,x,y,isHScreen);
|
|
@@ -44348,7 +44351,7 @@ function ChartMultiSVGIconV2()
|
|
|
44348
44351
|
delete this.newMethod;
|
|
44349
44352
|
|
|
44350
44353
|
this.ClassName="ChartMultiSVGIconV2";
|
|
44351
|
-
this.AryIcon; //[ {Index:, Value:, Symbol:, Color:, Baseline:, Line:{ Color:, Dash:[虚线点], KData:"H/L", Offset:[5,10], Width:线粗细 } } ]
|
|
44354
|
+
this.AryIcon; //[ {Index:, Value:, Symbol:, Color:, Baseline:, Line:{ Color:, Dash:[虚线点], KData:"H/L", Offset:[5,10], Width:线粗细 }, Image:{ Data:Image图片, Width, Height } } ]
|
|
44352
44355
|
this.IconSize=
|
|
44353
44356
|
{
|
|
44354
44357
|
Max: g_JSChartResource.DRAWICON.Icon.MaxSize, Min:g_JSChartResource.DRAWICON.Icon.MinSize , //图标的最大最小值
|
|
@@ -44514,47 +44517,83 @@ function ChartMultiSVGIconV2()
|
|
|
44514
44517
|
|
|
44515
44518
|
var y=this.ChartFrame.GetYFromData(item.Value,false);
|
|
44516
44519
|
|
|
44517
|
-
if (item.
|
|
44518
|
-
else this.Canvas.fillStyle = this.Color;
|
|
44519
|
-
|
|
44520
|
-
var textWidth=this.Canvas.measureText(item.Symbol).width;
|
|
44521
|
-
this.Canvas.textAlign='center';
|
|
44522
|
-
var rtIcon=new Rect(x-fontSize/2,y-fontSize/2,fontSize,fontSize);
|
|
44523
|
-
|
|
44524
|
-
if (item.Baseline==1)
|
|
44525
|
-
{
|
|
44526
|
-
this.Canvas.textBaseline='top';
|
|
44527
|
-
rtIcon.Y=y;
|
|
44528
|
-
}
|
|
44529
|
-
else if (item.Baseline==2)
|
|
44520
|
+
if (item.Image)
|
|
44530
44521
|
{
|
|
44531
|
-
|
|
44532
|
-
|
|
44533
|
-
|
|
44534
|
-
|
|
44535
|
-
|
|
44536
|
-
|
|
44537
|
-
|
|
44538
|
-
|
|
44522
|
+
var imageHeight=item.Image.Height;
|
|
44523
|
+
var imageWidth=item.Image.Width;
|
|
44524
|
+
var rtIcon=new Rect(x-imageWidth/2,y-imageHeight/2,imageWidth,imageHeight);
|
|
44525
|
+
if (item.Baseline==1)
|
|
44526
|
+
{
|
|
44527
|
+
this.Canvas.textBaseline='top';
|
|
44528
|
+
rtIcon.Y=y;
|
|
44529
|
+
}
|
|
44530
|
+
else if (item.Baseline==2)
|
|
44531
|
+
{
|
|
44532
|
+
this.Canvas.textBaseline='bottom';
|
|
44533
|
+
rtIcon.Y=y-imageHeight;
|
|
44534
|
+
}
|
|
44535
|
+
else
|
|
44536
|
+
{
|
|
44537
|
+
this.Canvas.textBaseline = 'middle';
|
|
44538
|
+
rtIcon.Y=y-imageHeight/2;
|
|
44539
|
+
}
|
|
44539
44540
|
|
|
44540
|
-
if (this.IsHScreen)
|
|
44541
|
-
{
|
|
44542
|
-
this.Canvas.save();
|
|
44543
|
-
this.Canvas.translate(y, x);
|
|
44544
|
-
this.Canvas.rotate(90 * Math.PI / 180);
|
|
44545
|
-
this.Canvas.fillText(item.Symbol,0,0);
|
|
44546
|
-
this.Canvas.restore();
|
|
44547
|
-
}
|
|
44548
|
-
else
|
|
44549
|
-
{
|
|
44550
44541
|
if (IFrameSplitOperator.IsNumber(item.YMove))
|
|
44551
44542
|
{
|
|
44552
44543
|
y+=item.YMove;
|
|
44553
44544
|
rtIcon.Y+=item.YMove;
|
|
44554
44545
|
}
|
|
44555
|
-
|
|
44546
|
+
|
|
44547
|
+
this.Canvas.drawImage(item.Image.Data, rtIcon.X, rtIcon.Y, item.Image.Width, item.Image.Height);
|
|
44548
|
+
|
|
44556
44549
|
if (item.Text) this.IconRect.push({ Rect:rtIcon , Item:item, KItem:kItem });
|
|
44557
44550
|
else if (IFrameSplitOperator.IsNonEmptyArray(item.AryText)) this.IconRect.push({ Rect:rtIcon , Item:item, KItem:kItem });
|
|
44551
|
+
|
|
44552
|
+
}
|
|
44553
|
+
else
|
|
44554
|
+
{
|
|
44555
|
+
if (item.Color) this.Canvas.fillStyle = item.Color;
|
|
44556
|
+
else this.Canvas.fillStyle = this.Color;
|
|
44557
|
+
|
|
44558
|
+
//var textWidth=this.Canvas.measureText(item.Symbol).width;
|
|
44559
|
+
this.Canvas.textAlign='center';
|
|
44560
|
+
var rtIcon=new Rect(x-fontSize/2,y-fontSize/2,fontSize,fontSize);
|
|
44561
|
+
|
|
44562
|
+
if (item.Baseline==1)
|
|
44563
|
+
{
|
|
44564
|
+
this.Canvas.textBaseline='top';
|
|
44565
|
+
rtIcon.Y=y;
|
|
44566
|
+
}
|
|
44567
|
+
else if (item.Baseline==2)
|
|
44568
|
+
{
|
|
44569
|
+
this.Canvas.textBaseline='bottom';
|
|
44570
|
+
rtIcon.Y=y-fontSize;
|
|
44571
|
+
}
|
|
44572
|
+
else
|
|
44573
|
+
{
|
|
44574
|
+
this.Canvas.textBaseline = 'middle';
|
|
44575
|
+
rtIcon.Y=y-fontSize/2;
|
|
44576
|
+
}
|
|
44577
|
+
|
|
44578
|
+
if (this.IsHScreen)
|
|
44579
|
+
{
|
|
44580
|
+
this.Canvas.save();
|
|
44581
|
+
this.Canvas.translate(y, x);
|
|
44582
|
+
this.Canvas.rotate(90 * Math.PI / 180);
|
|
44583
|
+
this.Canvas.fillText(item.Symbol,0,0);
|
|
44584
|
+
this.Canvas.restore();
|
|
44585
|
+
}
|
|
44586
|
+
else
|
|
44587
|
+
{
|
|
44588
|
+
if (IFrameSplitOperator.IsNumber(item.YMove))
|
|
44589
|
+
{
|
|
44590
|
+
y+=item.YMove;
|
|
44591
|
+
rtIcon.Y+=item.YMove;
|
|
44592
|
+
}
|
|
44593
|
+
this.Canvas.fillText(item.Symbol, x, y);
|
|
44594
|
+
if (item.Text) this.IconRect.push({ Rect:rtIcon , Item:item, KItem:kItem });
|
|
44595
|
+
else if (IFrameSplitOperator.IsNonEmptyArray(item.AryText)) this.IconRect.push({ Rect:rtIcon , Item:item, KItem:kItem });
|
|
44596
|
+
}
|
|
44558
44597
|
}
|
|
44559
44598
|
|
|
44560
44599
|
if (item.Line)
|
|
@@ -55142,34 +55181,37 @@ function FrameSplitMinuteX()
|
|
|
55142
55181
|
this.Frame.VerticalInfo[i]=info;
|
|
55143
55182
|
}
|
|
55144
55183
|
}
|
|
55145
|
-
else
|
|
55184
|
+
else
|
|
55146
55185
|
{
|
|
55147
|
-
|
|
55148
|
-
if (this.DayOffset)
|
|
55186
|
+
if (IFrameSplitOperator.IsNonEmptyArray(this.DayData))
|
|
55149
55187
|
{
|
|
55150
|
-
|
|
55151
|
-
if (
|
|
55152
|
-
}
|
|
55153
|
-
this.DayOffset.DataOffset=offset*minuteCount;
|
|
55154
|
-
this.DayOffset.ShowDataCount=this.DayOffset.ShowDayCount*minuteCount;
|
|
55155
|
-
this.DayOffset.PageInfo={ Day:[] };
|
|
55156
|
-
for(var i=this.DayData.length-1-offset, j=0; i>=0 && j<showDayCount; --i,++j)
|
|
55157
|
-
{
|
|
55158
|
-
var info=new CoordinateInfo();
|
|
55159
|
-
info.Value=j*minuteCount+minuteMiddleCount;
|
|
55160
|
-
info.LineType=-1; //线段不画
|
|
55161
|
-
if (this.ShowText)
|
|
55188
|
+
var offset=0, showDayCount=this.DayData.length;
|
|
55189
|
+
if (this.DayOffset)
|
|
55162
55190
|
{
|
|
55163
|
-
|
|
55164
|
-
|
|
55191
|
+
if (IFrameSplitOperator.IsNumber(this.DayOffset.Offset)) offset=this.DayOffset.Offset;
|
|
55192
|
+
if (IFrameSplitOperator.IsNumber(this.DayOffset.ShowDayCount)) showDayCount=this.DayOffset.ShowDayCount;
|
|
55165
55193
|
}
|
|
55166
|
-
this.
|
|
55194
|
+
this.DayOffset.DataOffset=offset*minuteCount;
|
|
55195
|
+
this.DayOffset.ShowDataCount=this.DayOffset.ShowDayCount*minuteCount;
|
|
55196
|
+
this.DayOffset.PageInfo={ Day:[] };
|
|
55197
|
+
for(var i=this.DayData.length-1-offset, j=0; i>=0 && j<showDayCount; --i,++j)
|
|
55198
|
+
{
|
|
55199
|
+
var info=new CoordinateInfo();
|
|
55200
|
+
info.Value=j*minuteCount+minuteMiddleCount;
|
|
55201
|
+
info.LineType=-1; //线段不画
|
|
55202
|
+
if (this.ShowText)
|
|
55203
|
+
{
|
|
55204
|
+
info.Message[0]=this.FormatDate(this.DayData[i].Date);
|
|
55205
|
+
info.BG={ Index: { Start:j*minuteCount+1, End: (j+1)*minuteCount-1 }, Date:this.DayData[i].Date }; //背景设置
|
|
55206
|
+
}
|
|
55207
|
+
this.Frame.VerticalInfo.push(info);
|
|
55167
55208
|
|
|
55168
|
-
|
|
55169
|
-
|
|
55170
|
-
|
|
55209
|
+
var info=new CoordinateInfo();
|
|
55210
|
+
info.Value=(j+1)*minuteCount;
|
|
55211
|
+
this.Frame.VerticalInfo.push(info);
|
|
55171
55212
|
|
|
55172
|
-
|
|
55213
|
+
this.DayOffset.PageInfo.Day.push({ Date:this.DayData[i].Date, Index:i });
|
|
55214
|
+
}
|
|
55173
55215
|
}
|
|
55174
55216
|
}
|
|
55175
55217
|
|
|
@@ -86999,9 +87041,11 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
86999
87041
|
|
|
87000
87042
|
if (this.DayCount>1)
|
|
87001
87043
|
{
|
|
87002
|
-
|
|
87044
|
+
var dayCount=this.DayCount;
|
|
87045
|
+
if (IFrameSplitOperator.IsNonEmptyArray(this.DayData)) dayCount=this.DayData.length;
|
|
87046
|
+
frame.XSplitOperator.DayCount=dayCount;
|
|
87003
87047
|
frame.XSplitOperator.DayData=this.DayData;
|
|
87004
|
-
frame.DayCount=
|
|
87048
|
+
frame.DayCount=dayCount;
|
|
87005
87049
|
}
|
|
87006
87050
|
|
|
87007
87051
|
|
|
@@ -120988,6 +121032,21 @@ function ScriptIndex(name,script,args,option)
|
|
|
120988
121032
|
else chartText.Direction=0;
|
|
120989
121033
|
|
|
120990
121034
|
if (varItem.DrawFontSize>0) chartText.TextFont=`${varItem.DrawFontSize*GetDevicePixelRatio()}px 微软雅黑`; //临时用下吧
|
|
121035
|
+
if (varItem.Font) chartText.TextFont=varItem.Font;
|
|
121036
|
+
|
|
121037
|
+
if (varItem.DrawVAlign>=0)
|
|
121038
|
+
{
|
|
121039
|
+
if (varItem.DrawVAlign==0) chartText.Direction=1;
|
|
121040
|
+
else if (varItem.DrawVAlign==1) chartText.Direction=0;
|
|
121041
|
+
else if (varItem.DrawVAlign==2) chartText.Direction=2;
|
|
121042
|
+
}
|
|
121043
|
+
|
|
121044
|
+
if (varItem.DrawAlign>=0)
|
|
121045
|
+
{
|
|
121046
|
+
if (varItem.DrawAlign==0) chartText.TextAlign="left";
|
|
121047
|
+
else if (varItem.DrawAlign==1) chartText.TextAlign="center";
|
|
121048
|
+
else if (varItem.DrawAlign==2) chartText.TextAlign='right';
|
|
121049
|
+
}
|
|
120991
121050
|
|
|
120992
121051
|
let titleIndex=windowIndex+1;
|
|
120993
121052
|
chartText.DrawData=varItem.Draw.DrawData;
|
|
@@ -123976,7 +124035,9 @@ function APIScriptIndex(name,script,args,option, isOverlay)
|
|
|
123976
124035
|
var outVarItem={Name:item.name,Type:item.type};
|
|
123977
124036
|
if (item.color) outVarItem.Color=item.color;
|
|
123978
124037
|
if (IFrameSplitOperator.IsBool(item.IsShowTitle)) outVarItem.IsShowTitle = item.IsShowTitle; //是否显示指标标题
|
|
123979
|
-
if (item.
|
|
124038
|
+
if (IFrameSplitOperator.IsNumber(item.DrawVAlign)) outVarItem.DrawVAlign = item.DrawVAlign;
|
|
124039
|
+
if (IFrameSplitOperator.IsNumber(item.DrawAlign)) outVarItem.DrawAlign = item.DrawAlign;
|
|
124040
|
+
if (item.data)
|
|
123980
124041
|
{
|
|
123981
124042
|
outVarItem.Data=this.FittingArray(item.data,date,time,hqChart);
|
|
123982
124043
|
|
|
@@ -124263,6 +124324,18 @@ function APIScriptIndex(name,script,args,option, isOverlay)
|
|
|
124263
124324
|
|
|
124264
124325
|
result.push(outVarItem);
|
|
124265
124326
|
}
|
|
124327
|
+
else if (draw.DrawType=="DRAWTEXTREL" || draw.DrawType=="DRAWTEXTABS")
|
|
124328
|
+
{
|
|
124329
|
+
drawItem.Name=draw.Name;
|
|
124330
|
+
drawItem.Type=draw.Type;
|
|
124331
|
+
drawItem.DrawType=draw.DrawType;
|
|
124332
|
+
drawItem.DrawData=draw.DrawData; //{ Point: { X: 5,Y: 5 }, Text: "注意(居中):前方高能!!!!!" }
|
|
124333
|
+
|
|
124334
|
+
outVarItem.Draw=drawItem;
|
|
124335
|
+
if (draw.Font) outVarItem.Font=draw.Font;
|
|
124336
|
+
|
|
124337
|
+
result.push(outVarItem);
|
|
124338
|
+
}
|
|
124266
124339
|
else
|
|
124267
124340
|
{
|
|
124268
124341
|
var find=g_ScriptIndexChartFactory.Get(draw.DrawType); //外部挂接
|
|
@@ -140239,7 +140312,7 @@ function ScrollBarBGChart()
|
|
|
140239
140312
|
|
|
140240
140313
|
|
|
140241
140314
|
|
|
140242
|
-
var HQCHART_VERSION="1.1.
|
|
140315
|
+
var HQCHART_VERSION="1.1.14239";
|
|
140243
140316
|
|
|
140244
140317
|
function PrintHQChartVersion()
|
|
140245
140318
|
{
|
|
@@ -28864,6 +28864,7 @@ function IChartPainting()
|
|
|
28864
28864
|
var barWidth=null;
|
|
28865
28865
|
var isMinuteVolBar=false;
|
|
28866
28866
|
var isStackedBar=false;
|
|
28867
|
+
var volUnit=1; //成交量单位
|
|
28867
28868
|
if (option)
|
|
28868
28869
|
{
|
|
28869
28870
|
if (option.BarWidth>0) barWidth=option.BarWidth;
|
|
@@ -28876,6 +28877,8 @@ function IChartPainting()
|
|
|
28876
28877
|
{
|
|
28877
28878
|
isStackedBar=true;
|
|
28878
28879
|
}
|
|
28880
|
+
|
|
28881
|
+
if (IFrameSplitOperator.IsNumber(option.VolUnit)) volUnit=option.VolUnit;
|
|
28879
28882
|
}
|
|
28880
28883
|
|
|
28881
28884
|
for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
|
|
@@ -28899,7 +28902,7 @@ function IChartPainting()
|
|
|
28899
28902
|
if (isMinuteVolBar)
|
|
28900
28903
|
{
|
|
28901
28904
|
if (!IFrameSplitOperator.IsNumber(value.Vol)) continue;
|
|
28902
|
-
var yBar=this.ChartFrame.GetYFromData(value.Vol);
|
|
28905
|
+
var yBar=this.ChartFrame.GetYFromData(value.Vol/volUnit);
|
|
28903
28906
|
var barTop=yBar, barBottom=yBottom;
|
|
28904
28907
|
}
|
|
28905
28908
|
else if (isStackedBar)
|
|
@@ -35467,7 +35470,7 @@ function ChartMinuteVolumBar()
|
|
|
35467
35470
|
|
|
35468
35471
|
this.PtInChart=function(x,y)
|
|
35469
35472
|
{
|
|
35470
|
-
var option={ MinuteVolBar:true };
|
|
35473
|
+
var option={ MinuteVolBar:true, VolUnit:this.GetVolUnit() };
|
|
35471
35474
|
return this.PtInBar(x,y,option);
|
|
35472
35475
|
}
|
|
35473
35476
|
|
|
@@ -38684,7 +38687,7 @@ function ChartSingleText()
|
|
|
38684
38687
|
if (this.Direction==1) this.Canvas.textBaseline='bottom';
|
|
38685
38688
|
else if (this.Direction==2) this.Canvas.textBaseline='top';
|
|
38686
38689
|
else this.Canvas.textBaseline='middle';
|
|
38687
|
-
this.Canvas.textAlign=
|
|
38690
|
+
this.Canvas.textAlign=this.TextAlign
|
|
38688
38691
|
this.Canvas.font=this.TextFont;
|
|
38689
38692
|
this.Canvas.fillStyle=this.Color;
|
|
38690
38693
|
this.DrawText(this.DrawData.Text,x,y,isHScreen);
|
|
@@ -44392,7 +44395,7 @@ function ChartMultiSVGIconV2()
|
|
|
44392
44395
|
delete this.newMethod;
|
|
44393
44396
|
|
|
44394
44397
|
this.ClassName="ChartMultiSVGIconV2";
|
|
44395
|
-
this.AryIcon; //[ {Index:, Value:, Symbol:, Color:, Baseline:, Line:{ Color:, Dash:[虚线点], KData:"H/L", Offset:[5,10], Width:线粗细 } } ]
|
|
44398
|
+
this.AryIcon; //[ {Index:, Value:, Symbol:, Color:, Baseline:, Line:{ Color:, Dash:[虚线点], KData:"H/L", Offset:[5,10], Width:线粗细 }, Image:{ Data:Image图片, Width, Height } } ]
|
|
44396
44399
|
this.IconSize=
|
|
44397
44400
|
{
|
|
44398
44401
|
Max: g_JSChartResource.DRAWICON.Icon.MaxSize, Min:g_JSChartResource.DRAWICON.Icon.MinSize , //图标的最大最小值
|
|
@@ -44558,47 +44561,83 @@ function ChartMultiSVGIconV2()
|
|
|
44558
44561
|
|
|
44559
44562
|
var y=this.ChartFrame.GetYFromData(item.Value,false);
|
|
44560
44563
|
|
|
44561
|
-
if (item.
|
|
44562
|
-
else this.Canvas.fillStyle = this.Color;
|
|
44563
|
-
|
|
44564
|
-
var textWidth=this.Canvas.measureText(item.Symbol).width;
|
|
44565
|
-
this.Canvas.textAlign='center';
|
|
44566
|
-
var rtIcon=new Rect(x-fontSize/2,y-fontSize/2,fontSize,fontSize);
|
|
44567
|
-
|
|
44568
|
-
if (item.Baseline==1)
|
|
44569
|
-
{
|
|
44570
|
-
this.Canvas.textBaseline='top';
|
|
44571
|
-
rtIcon.Y=y;
|
|
44572
|
-
}
|
|
44573
|
-
else if (item.Baseline==2)
|
|
44564
|
+
if (item.Image)
|
|
44574
44565
|
{
|
|
44575
|
-
|
|
44576
|
-
|
|
44577
|
-
|
|
44578
|
-
|
|
44579
|
-
|
|
44580
|
-
|
|
44581
|
-
|
|
44582
|
-
|
|
44566
|
+
var imageHeight=item.Image.Height;
|
|
44567
|
+
var imageWidth=item.Image.Width;
|
|
44568
|
+
var rtIcon=new Rect(x-imageWidth/2,y-imageHeight/2,imageWidth,imageHeight);
|
|
44569
|
+
if (item.Baseline==1)
|
|
44570
|
+
{
|
|
44571
|
+
this.Canvas.textBaseline='top';
|
|
44572
|
+
rtIcon.Y=y;
|
|
44573
|
+
}
|
|
44574
|
+
else if (item.Baseline==2)
|
|
44575
|
+
{
|
|
44576
|
+
this.Canvas.textBaseline='bottom';
|
|
44577
|
+
rtIcon.Y=y-imageHeight;
|
|
44578
|
+
}
|
|
44579
|
+
else
|
|
44580
|
+
{
|
|
44581
|
+
this.Canvas.textBaseline = 'middle';
|
|
44582
|
+
rtIcon.Y=y-imageHeight/2;
|
|
44583
|
+
}
|
|
44583
44584
|
|
|
44584
|
-
if (this.IsHScreen)
|
|
44585
|
-
{
|
|
44586
|
-
this.Canvas.save();
|
|
44587
|
-
this.Canvas.translate(y, x);
|
|
44588
|
-
this.Canvas.rotate(90 * Math.PI / 180);
|
|
44589
|
-
this.Canvas.fillText(item.Symbol,0,0);
|
|
44590
|
-
this.Canvas.restore();
|
|
44591
|
-
}
|
|
44592
|
-
else
|
|
44593
|
-
{
|
|
44594
44585
|
if (IFrameSplitOperator.IsNumber(item.YMove))
|
|
44595
44586
|
{
|
|
44596
44587
|
y+=item.YMove;
|
|
44597
44588
|
rtIcon.Y+=item.YMove;
|
|
44598
44589
|
}
|
|
44599
|
-
|
|
44590
|
+
|
|
44591
|
+
this.Canvas.drawImage(item.Image.Data, rtIcon.X, rtIcon.Y, item.Image.Width, item.Image.Height);
|
|
44592
|
+
|
|
44600
44593
|
if (item.Text) this.IconRect.push({ Rect:rtIcon , Item:item, KItem:kItem });
|
|
44601
44594
|
else if (IFrameSplitOperator.IsNonEmptyArray(item.AryText)) this.IconRect.push({ Rect:rtIcon , Item:item, KItem:kItem });
|
|
44595
|
+
|
|
44596
|
+
}
|
|
44597
|
+
else
|
|
44598
|
+
{
|
|
44599
|
+
if (item.Color) this.Canvas.fillStyle = item.Color;
|
|
44600
|
+
else this.Canvas.fillStyle = this.Color;
|
|
44601
|
+
|
|
44602
|
+
//var textWidth=this.Canvas.measureText(item.Symbol).width;
|
|
44603
|
+
this.Canvas.textAlign='center';
|
|
44604
|
+
var rtIcon=new Rect(x-fontSize/2,y-fontSize/2,fontSize,fontSize);
|
|
44605
|
+
|
|
44606
|
+
if (item.Baseline==1)
|
|
44607
|
+
{
|
|
44608
|
+
this.Canvas.textBaseline='top';
|
|
44609
|
+
rtIcon.Y=y;
|
|
44610
|
+
}
|
|
44611
|
+
else if (item.Baseline==2)
|
|
44612
|
+
{
|
|
44613
|
+
this.Canvas.textBaseline='bottom';
|
|
44614
|
+
rtIcon.Y=y-fontSize;
|
|
44615
|
+
}
|
|
44616
|
+
else
|
|
44617
|
+
{
|
|
44618
|
+
this.Canvas.textBaseline = 'middle';
|
|
44619
|
+
rtIcon.Y=y-fontSize/2;
|
|
44620
|
+
}
|
|
44621
|
+
|
|
44622
|
+
if (this.IsHScreen)
|
|
44623
|
+
{
|
|
44624
|
+
this.Canvas.save();
|
|
44625
|
+
this.Canvas.translate(y, x);
|
|
44626
|
+
this.Canvas.rotate(90 * Math.PI / 180);
|
|
44627
|
+
this.Canvas.fillText(item.Symbol,0,0);
|
|
44628
|
+
this.Canvas.restore();
|
|
44629
|
+
}
|
|
44630
|
+
else
|
|
44631
|
+
{
|
|
44632
|
+
if (IFrameSplitOperator.IsNumber(item.YMove))
|
|
44633
|
+
{
|
|
44634
|
+
y+=item.YMove;
|
|
44635
|
+
rtIcon.Y+=item.YMove;
|
|
44636
|
+
}
|
|
44637
|
+
this.Canvas.fillText(item.Symbol, x, y);
|
|
44638
|
+
if (item.Text) this.IconRect.push({ Rect:rtIcon , Item:item, KItem:kItem });
|
|
44639
|
+
else if (IFrameSplitOperator.IsNonEmptyArray(item.AryText)) this.IconRect.push({ Rect:rtIcon , Item:item, KItem:kItem });
|
|
44640
|
+
}
|
|
44602
44641
|
}
|
|
44603
44642
|
|
|
44604
44643
|
if (item.Line)
|
|
@@ -55186,34 +55225,37 @@ function FrameSplitMinuteX()
|
|
|
55186
55225
|
this.Frame.VerticalInfo[i]=info;
|
|
55187
55226
|
}
|
|
55188
55227
|
}
|
|
55189
|
-
else
|
|
55228
|
+
else
|
|
55190
55229
|
{
|
|
55191
|
-
|
|
55192
|
-
if (this.DayOffset)
|
|
55230
|
+
if (IFrameSplitOperator.IsNonEmptyArray(this.DayData))
|
|
55193
55231
|
{
|
|
55194
|
-
|
|
55195
|
-
if (
|
|
55196
|
-
}
|
|
55197
|
-
this.DayOffset.DataOffset=offset*minuteCount;
|
|
55198
|
-
this.DayOffset.ShowDataCount=this.DayOffset.ShowDayCount*minuteCount;
|
|
55199
|
-
this.DayOffset.PageInfo={ Day:[] };
|
|
55200
|
-
for(var i=this.DayData.length-1-offset, j=0; i>=0 && j<showDayCount; --i,++j)
|
|
55201
|
-
{
|
|
55202
|
-
var info=new CoordinateInfo();
|
|
55203
|
-
info.Value=j*minuteCount+minuteMiddleCount;
|
|
55204
|
-
info.LineType=-1; //线段不画
|
|
55205
|
-
if (this.ShowText)
|
|
55232
|
+
var offset=0, showDayCount=this.DayData.length;
|
|
55233
|
+
if (this.DayOffset)
|
|
55206
55234
|
{
|
|
55207
|
-
|
|
55208
|
-
|
|
55235
|
+
if (IFrameSplitOperator.IsNumber(this.DayOffset.Offset)) offset=this.DayOffset.Offset;
|
|
55236
|
+
if (IFrameSplitOperator.IsNumber(this.DayOffset.ShowDayCount)) showDayCount=this.DayOffset.ShowDayCount;
|
|
55209
55237
|
}
|
|
55210
|
-
this.
|
|
55238
|
+
this.DayOffset.DataOffset=offset*minuteCount;
|
|
55239
|
+
this.DayOffset.ShowDataCount=this.DayOffset.ShowDayCount*minuteCount;
|
|
55240
|
+
this.DayOffset.PageInfo={ Day:[] };
|
|
55241
|
+
for(var i=this.DayData.length-1-offset, j=0; i>=0 && j<showDayCount; --i,++j)
|
|
55242
|
+
{
|
|
55243
|
+
var info=new CoordinateInfo();
|
|
55244
|
+
info.Value=j*minuteCount+minuteMiddleCount;
|
|
55245
|
+
info.LineType=-1; //线段不画
|
|
55246
|
+
if (this.ShowText)
|
|
55247
|
+
{
|
|
55248
|
+
info.Message[0]=this.FormatDate(this.DayData[i].Date);
|
|
55249
|
+
info.BG={ Index: { Start:j*minuteCount+1, End: (j+1)*minuteCount-1 }, Date:this.DayData[i].Date }; //背景设置
|
|
55250
|
+
}
|
|
55251
|
+
this.Frame.VerticalInfo.push(info);
|
|
55211
55252
|
|
|
55212
|
-
|
|
55213
|
-
|
|
55214
|
-
|
|
55253
|
+
var info=new CoordinateInfo();
|
|
55254
|
+
info.Value=(j+1)*minuteCount;
|
|
55255
|
+
this.Frame.VerticalInfo.push(info);
|
|
55215
55256
|
|
|
55216
|
-
|
|
55257
|
+
this.DayOffset.PageInfo.Day.push({ Date:this.DayData[i].Date, Index:i });
|
|
55258
|
+
}
|
|
55217
55259
|
}
|
|
55218
55260
|
}
|
|
55219
55261
|
|
|
@@ -87043,9 +87085,11 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
87043
87085
|
|
|
87044
87086
|
if (this.DayCount>1)
|
|
87045
87087
|
{
|
|
87046
|
-
|
|
87088
|
+
var dayCount=this.DayCount;
|
|
87089
|
+
if (IFrameSplitOperator.IsNonEmptyArray(this.DayData)) dayCount=this.DayData.length;
|
|
87090
|
+
frame.XSplitOperator.DayCount=dayCount;
|
|
87047
87091
|
frame.XSplitOperator.DayData=this.DayData;
|
|
87048
|
-
frame.DayCount=
|
|
87092
|
+
frame.DayCount=dayCount;
|
|
87049
87093
|
}
|
|
87050
87094
|
|
|
87051
87095
|
|
|
@@ -121032,6 +121076,21 @@ function ScriptIndex(name,script,args,option)
|
|
|
121032
121076
|
else chartText.Direction=0;
|
|
121033
121077
|
|
|
121034
121078
|
if (varItem.DrawFontSize>0) chartText.TextFont=`${varItem.DrawFontSize*GetDevicePixelRatio()}px 微软雅黑`; //临时用下吧
|
|
121079
|
+
if (varItem.Font) chartText.TextFont=varItem.Font;
|
|
121080
|
+
|
|
121081
|
+
if (varItem.DrawVAlign>=0)
|
|
121082
|
+
{
|
|
121083
|
+
if (varItem.DrawVAlign==0) chartText.Direction=1;
|
|
121084
|
+
else if (varItem.DrawVAlign==1) chartText.Direction=0;
|
|
121085
|
+
else if (varItem.DrawVAlign==2) chartText.Direction=2;
|
|
121086
|
+
}
|
|
121087
|
+
|
|
121088
|
+
if (varItem.DrawAlign>=0)
|
|
121089
|
+
{
|
|
121090
|
+
if (varItem.DrawAlign==0) chartText.TextAlign="left";
|
|
121091
|
+
else if (varItem.DrawAlign==1) chartText.TextAlign="center";
|
|
121092
|
+
else if (varItem.DrawAlign==2) chartText.TextAlign='right';
|
|
121093
|
+
}
|
|
121035
121094
|
|
|
121036
121095
|
let titleIndex=windowIndex+1;
|
|
121037
121096
|
chartText.DrawData=varItem.Draw.DrawData;
|
|
@@ -124020,7 +124079,9 @@ function APIScriptIndex(name,script,args,option, isOverlay)
|
|
|
124020
124079
|
var outVarItem={Name:item.name,Type:item.type};
|
|
124021
124080
|
if (item.color) outVarItem.Color=item.color;
|
|
124022
124081
|
if (IFrameSplitOperator.IsBool(item.IsShowTitle)) outVarItem.IsShowTitle = item.IsShowTitle; //是否显示指标标题
|
|
124023
|
-
if (item.
|
|
124082
|
+
if (IFrameSplitOperator.IsNumber(item.DrawVAlign)) outVarItem.DrawVAlign = item.DrawVAlign;
|
|
124083
|
+
if (IFrameSplitOperator.IsNumber(item.DrawAlign)) outVarItem.DrawAlign = item.DrawAlign;
|
|
124084
|
+
if (item.data)
|
|
124024
124085
|
{
|
|
124025
124086
|
outVarItem.Data=this.FittingArray(item.data,date,time,hqChart);
|
|
124026
124087
|
|
|
@@ -124307,6 +124368,18 @@ function APIScriptIndex(name,script,args,option, isOverlay)
|
|
|
124307
124368
|
|
|
124308
124369
|
result.push(outVarItem);
|
|
124309
124370
|
}
|
|
124371
|
+
else if (draw.DrawType=="DRAWTEXTREL" || draw.DrawType=="DRAWTEXTABS")
|
|
124372
|
+
{
|
|
124373
|
+
drawItem.Name=draw.Name;
|
|
124374
|
+
drawItem.Type=draw.Type;
|
|
124375
|
+
drawItem.DrawType=draw.DrawType;
|
|
124376
|
+
drawItem.DrawData=draw.DrawData; //{ Point: { X: 5,Y: 5 }, Text: "注意(居中):前方高能!!!!!" }
|
|
124377
|
+
|
|
124378
|
+
outVarItem.Draw=drawItem;
|
|
124379
|
+
if (draw.Font) outVarItem.Font=draw.Font;
|
|
124380
|
+
|
|
124381
|
+
result.push(outVarItem);
|
|
124382
|
+
}
|
|
124310
124383
|
else
|
|
124311
124384
|
{
|
|
124312
124385
|
var find=g_ScriptIndexChartFactory.Get(draw.DrawType); //外部挂接
|
|
@@ -149844,7 +149917,7 @@ function HQChartScriptWorker()
|
|
|
149844
149917
|
|
|
149845
149918
|
|
|
149846
149919
|
|
|
149847
|
-
var HQCHART_VERSION="1.1.
|
|
149920
|
+
var HQCHART_VERSION="1.1.14239";
|
|
149848
149921
|
|
|
149849
149922
|
function PrintHQChartVersion()
|
|
149850
149923
|
{
|