hqchart 1.1.14381 → 1.1.14388
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 +20 -14
- package/package.json +1 -1
- package/src/jscommon/umychart.complier.js +8 -2
- package/src/jscommon/umychart.js +81 -7
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +90 -10
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +90 -10
package/lib/umychart.vue.js
CHANGED
|
@@ -3476,8 +3476,9 @@ LeftMargin:g_JSChartResource.OrderFlow_Style5.LeftMargin,RightMargin:g_JSChartRe
|
|
|
3476
3476
|
this.ChartHeatMap;//=new ChartHeatMap();
|
|
3477
3477
|
//未回补的价格缺口
|
|
3478
3478
|
this.PriceGap={Enable:false,Count:1};this.PriceGapStyple={Line:{Color:g_JSChartResource.PriceGapStyple.Line.Color},Text:{Color:g_JSChartResource.PriceGapStyple.Text.Color,Font:g_JSChartResource.PriceGapStyple.Text.Font}};this.AryPriceGapCache=[];//缺口数据 { }
|
|
3479
|
-
|
|
3480
|
-
this.
|
|
3479
|
+
//面积图和收盘价线 断开点
|
|
3480
|
+
this.AryBreakPoint;this.BuildDateTimeKey=function(item){if(!item)return null;if(!IFrameSplitOperator.IsNumber(item.Time))return''+item.Date;return item.Date+'-'+item.Time;};this.BuildBreakPoint=function(){if(!IFrameSplitOperator.IsNonEmptyArray(this.AryBreakPoint))return null;var mapBreakPoint=new _map2.default();for(var i=0;i<this.AryBreakPoint.length;++i){var item=this.AryBreakPoint[i];var key=this.BuildDateTimeKey(item);if(key)mapBreakPoint.set(key,item);}return mapBreakPoint;};this.ReloadResource=function(resource){this.TextFont=g_JSChartResource.KLine.MaxMin.Font;this.TextColor=g_JSChartResource.KLine.MaxMin.Color;this.CloseLineColor=g_JSChartResource.CloseLineColor;this.CloseLineAreaColor=g_JSChartResource.CloseLineAreaColor;this.CloseLineWidth=g_JSChartResource.CloseLineWidth;this.UpColor=g_JSChartResource.UpBarColor;this.DownColor=g_JSChartResource.DownBarColor;this.UnchagneColor=g_JSChartResource.UnchagneBarColor;//平盘
|
|
3481
|
+
this.HighLowBarColor=g_JSChartResource.HighLowBarColor;this.OrderFlow.UpColor={BG:g_JSChartResource.OrderFlow.UpColor.BG,Border:g_JSChartResource.OrderFlow.UpColor.Border};this.OrderFlow.DownColor={BG:g_JSChartResource.OrderFlow.DownColor.BG,Border:g_JSChartResource.OrderFlow.DownColor.Border};this.OrderFlow.UnchagneColor={BG:g_JSChartResource.OrderFlow.UnchagneColor.BG,Border:g_JSChartResource.OrderFlow.UnchagneColor.Border};this.OrderFlow.Text={Color:g_JSChartResource.OrderFlow.Text.Color,Family:g_JSChartResource.OrderFlow.Text.Family,FontMaxSize:g_JSChartResource.OrderFlow.Text.FontMaxSize,MaxValue:g_JSChartResource.OrderFlow.Text.MaxValue};this.OrderFlow.Line={UpDownColor:g_JSChartResource.OrderFlow.Line.UpDownColor,MiddleColor:g_JSChartResource.OrderFlow.Line.MiddleColor};};this.ClearCustomKLine=function(){this.CustomKLine=null;};this.ClearBreakPoint=function(){this.AryBreakPoint=null;};this.GetCustomKLine=function(kItem){if(!this.CustomKLine)return null;if(!kItem)return null;var key=kItem.Date*1000000;if(IFrameSplitOperator.IsNumber(kItem.Time))key+=kItem.Time;if(!this.CustomKLine.has(key))return null;var value=this.CustomKLine.get(key);return value;};this.DrawHeatMap=function(){if(!this.ChartHeatMap)return;this.ChartHeatMap.Canvas=this.Canvas;this.ChartHeatMap.ChartBorder=this.ChartBorder;this.ChartHeatMap.ChartFrame=this.ChartFrame;this.ChartHeatMap.Data=this.Data;this.ChartHeatMap.Draw();};this.ClearHeatMap=function(){this.ChartHeatMap=null;};this.CreateHeatMap=function(){this.ChartHeatMap=new ChartHeatMap();};this.DrawAKLine=function()//美国线
|
|
3481
3482
|
{var isHScreen=this.ChartFrame.IsHScreen===true;var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var xPointCount=this.ChartFrame.XPointCount;if(isHScreen){var border=this.ChartBorder.GetHScreenBorder();var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.BottomEx;}else{var border=this.ChartBorder.GetBorder();var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;}var upColor=this.UpColor;var downColor=this.DownColor;var unchagneColor=this.UnchagneColor;var ptMax={X:null,Y:null,Value:null,Align:'left'};var ptMin={X:null,Y:null,Value:null,Align:'left'};this.ShowRange.Start=this.Data.DataOffset;this.ShowRange.End=this.ShowRange.Start;this.ShowRange.DataCount=0;this.ShowRange.ShowCount=xPointCount;this.DrawKRange.Start=this.Data.DataOffset;var eventUnchangeKLine=null;//定制平盘K线颜色事件
|
|
3482
3483
|
if(this.GetEventCallback){eventUnchangeKLine=this.GetEventCallback(JSCHART_EVENT_ID.ON_CUSTOM_UNCHANGE_KLINE_COLOR);}var preKItemInfo=null;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth,++this.ShowRange.DataCount){var data=this.Data.Data[i];this.ShowRange.End=i;if(data.Open==null||data.High==null||data.Low==null||data.Close==null)continue;var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;var x=left+(right-left)/2;var yLow=this.GetYFromData(data.Low,false);var yHigh=this.GetYFromData(data.High,false);var yOpen=this.GetYFromData(data.Open,false);var yClose=this.GetYFromData(data.Close,false);this.DrawKRange.End=i;var kItemInfo={Data:data,Coordinate:{X:x,Low:yLow,High:yHigh,Close:yClose,Open:yOpen,Left:left,Right:right}};if(ptMax.Value==null||ptMax.Value<data.High)//求最大值
|
|
3483
3484
|
{ptMax.X=x;ptMax.Y=yHigh;ptMax.Value=data.High;ptMax.Align=j<xPointCount/2?'left':'right';}if(ptMin.Value==null||ptMin.Value>data.Low)//求最小值
|
|
@@ -3498,7 +3499,9 @@ var yTop=yClose-barWidth/2;if(isHScreen){this.Canvas.fillRect(yTop,aryX[2],barWi
|
|
|
3498
3499
|
{var isHScreen=this.ChartFrame.IsHScreen===true;var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var xPointCount=this.ChartFrame.XPointCount;if(isHScreen){var border=this.ChartBorder.GetHScreenBorder();var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.BottomEx;var borderLeft=border.TopEx;}else{var border=this.ChartBorder.GetBorder();var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;var borderLeft=border.LeftEx;}var bFirstPoint=true;var firstPoint=null;this.Canvas.beginPath();this.Canvas.strokeStyle=this.CloseLineColor;if(IFrameSplitOperator.IsNumber(this.CloseLineWidth))this.Canvas.lineWidth=this.CloseLineWidth;var ptLast=null;if(this.Data.DataOffset>0)//把最左边的一个点连上
|
|
3499
3500
|
{var data=this.Data.Data[this.Data.DataOffset-1];if(data&&IFrameSplitOperator.IsNumber(data.Close)){var x=borderLeft;var yClose=this.GetYFromData(data.Close,false);if(isHScreen){this.Canvas.moveTo(yClose,x);firstPoint={X:yClose,Y:x};}else{this.Canvas.moveTo(x,yClose);firstPoint={X:x,Y:yClose};}bFirstPoint=false;}}this.ShowRange.Start=this.Data.DataOffset;this.ShowRange.End=this.ShowRange.Start;this.ShowRange.DataCount=0;this.ShowRange.ShowCount=xPointCount;this.DrawKRange.Start=this.Data.DataOffset;var preKItemInfo=null;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth,++this.ShowRange.DataCount){var data=this.Data.Data[i];this.ShowRange.End=i;if(data.Open==null||data.High==null||data.Low==null||data.Close==null)continue;var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;var x=left+(right-left)/2;var yClose=this.GetYFromData(data.Close,false);this.DrawKRange.End=i;if(bFirstPoint){if(isHScreen){this.Canvas.moveTo(yClose,x);firstPoint={X:yClose,Y:x};}else{this.Canvas.moveTo(x,yClose);firstPoint={X:x,Y:yClose};}bFirstPoint=false;}else{if(isHScreen)this.Canvas.lineTo(yClose,x);else this.Canvas.lineTo(x,yClose);}if(i==this.Data.Data.length-1){ptLast={X:x,Y:yClose,XLeft:left,XRight:right,KItem:data,ChartRight:chartright};}if(this.PriceGap.Enable){var yLow=this.GetYFromData(data.Low,false);var yHigh=this.GetYFromData(data.High,false);var yOpen=this.GetYFromData(data.Open,false);var kItemInfo={Data:data,Coordinate:{X:x,Low:yLow,High:yHigh,Close:yClose,Open:yOpen,Left:left,Right:right}};if(preKItemInfo){this.CheckPriceGap(kItemInfo);var value=this.IsPriceGap(kItemInfo,preKItemInfo);if(value>0)this.AryPriceGapCache.push({Data:[preKItemInfo,kItemInfo],Type:value});}preKItemInfo=kItemInfo;}}this.DrawLastPointEvent(ptLast);//通知外部绘制最后一个点
|
|
3500
3501
|
if(bFirstPoint)return;this.Canvas.stroke();if(isHScreen){this.Canvas.lineTo(border.Left,x);this.Canvas.lineTo(border.Left,firstPoint.Y);}else{this.Canvas.lineTo(x,border.Bottom);this.Canvas.lineTo(firstPoint.X,border.Bottom);}this.Canvas.closePath();if(Array.isArray(this.CloseLineAreaColor)){if(isHScreen){var gradient=this.Canvas.createLinearGradient(this.ChartBorder.GetRightEx(),this.ChartBorder.GetTop(),this.ChartBorder.GetLeft(),this.ChartBorder.GetTop());gradient.addColorStop(0,this.CloseLineAreaColor[0]);gradient.addColorStop(1,this.CloseLineAreaColor[1]);this.Canvas.fillStyle=gradient;}else{var _gradient=this.Canvas.createLinearGradient(firstPoint.X,this.ChartBorder.GetTopEx(),firstPoint.X,this.ChartBorder.GetBottom());_gradient.addColorStop(0,this.CloseLineAreaColor[0]);_gradient.addColorStop(1,this.CloseLineAreaColor[1]);this.Canvas.fillStyle=_gradient;}}else{this.Canvas.fillStyle=this.CloseLineAreaColor;}this.Canvas.fill();};this.DrawCloseLine=function()//收盘价线
|
|
3501
|
-
{var isHScreen=this.ChartFrame.IsHScreen===true;var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var xPointCount=this.ChartFrame.XPointCount;if(isHScreen){var border=this.ChartBorder.GetHScreenBorder();var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.BottomEx;}else{var border=this.ChartBorder.GetBorder();var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;}var bFirstPoint=true;this.Canvas.beginPath();this.Canvas.strokeStyle=this.CloseLineColor;if(IFrameSplitOperator.IsNumber(this.CloseLineWidth))this.Canvas.lineWidth=this.CloseLineWidth;this.ShowRange.Start=this.Data.DataOffset;this.ShowRange.End=this.ShowRange.Start;this.ShowRange.DataCount=0;this.ShowRange.ShowCount=xPointCount;this.DrawKRange.Start=this.Data.DataOffset;var
|
|
3502
|
+
{var isHScreen=this.ChartFrame.IsHScreen===true;var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var xPointCount=this.ChartFrame.XPointCount;if(isHScreen){var border=this.ChartBorder.GetHScreenBorder();var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.BottomEx;}else{var border=this.ChartBorder.GetBorder();var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;}var bFirstPoint=true;var drawCount=0;this.Canvas.beginPath();this.Canvas.strokeStyle=this.CloseLineColor;if(IFrameSplitOperator.IsNumber(this.CloseLineWidth))this.Canvas.lineWidth=this.CloseLineWidth;this.ShowRange.Start=this.Data.DataOffset;this.ShowRange.End=this.ShowRange.Start;this.ShowRange.DataCount=0;this.ShowRange.ShowCount=xPointCount;this.DrawKRange.Start=this.Data.DataOffset;var mapBreakPoint=this.BuildBreakPoint();//断点
|
|
3503
|
+
var preKItemInfo=null;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth,++this.ShowRange.DataCount){var data=this.Data.Data[i];this.ShowRange.End=i;if(data.Open==null||data.High==null||data.Low==null||data.Close==null)continue;var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;var x=left+(right-left)/2;var yClose=this.GetYFromData(data.Close,false);this.DrawKRange.End=i;if(bFirstPoint){if(isHScreen)this.Canvas.moveTo(yClose,x);else this.Canvas.moveTo(x,yClose);bFirstPoint=false;}else{if(isHScreen)this.Canvas.lineTo(yClose,x);else this.Canvas.lineTo(x,yClose);}++drawCount;if(this.PriceGap.Enable){var yLow=this.GetYFromData(data.Low,false);var yHigh=this.GetYFromData(data.High,false);var yOpen=this.GetYFromData(data.Open,false);var kItemInfo={Data:data,Coordinate:{X:x,Low:yLow,High:yHigh,Close:yClose,Open:yOpen,Left:left,Right:right}};if(preKItemInfo){this.CheckPriceGap(kItemInfo);var value=this.IsPriceGap(kItemInfo,preKItemInfo);if(value>0)this.AryPriceGapCache.push({Data:[preKItemInfo,kItemInfo],Type:value});}preKItemInfo=kItemInfo;}//断开点
|
|
3504
|
+
if(mapBreakPoint){var kItem=data;var key=this.BuildDateTimeKey(kItem);if(key&&mapBreakPoint.has(key)){if(drawCount>0)this.Canvas.stroke();bFirstPoint=true;drawCount=0;}}}if(drawCount>0)this.Canvas.stroke();};this.DrawKBar=function()//蜡烛头
|
|
3502
3505
|
{var isHScreen=this.ChartFrame.IsHScreen===true;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;}var ptMax={X:null,Y:null,Value:null,Align:'left'};var ptMin={X:null,Y:null,Value:null,Align:'left'};var upColor=this.UpColor;var downColor=this.DownColor;var unchagneColor=this.UnchagneColor;this.ShowRange.Start=this.Data.DataOffset;this.ShowRange.End=this.ShowRange.Start;this.ShowRange.DataCount=0;this.ShowRange.ShowCount=xPointCount;var ptLast=null;this.DrawKRange.Start=this.Data.DataOffset;var eventUnchangeKLine=null;//定制平盘K线颜色事件
|
|
3503
3506
|
if(this.GetEventCallback){eventUnchangeKLine=this.GetEventCallback(JSCHART_EVENT_ID.ON_CUSTOM_UNCHANGE_KLINE_COLOR);}var preKItemInfo=null;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth,++this.ShowRange.DataCount){var data=this.Data.Data[i];this.ShowRange.End=i;if(data.Open==null||data.High==null||data.Low==null||data.Close==null)continue;var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;var x=left+(right-left)/2;var yLow=this.GetYFromData(data.Low,false);var yHigh=this.GetYFromData(data.High,false);var yOpen=this.GetYFromData(data.Open,false);var yClose=this.GetYFromData(data.Close,false);var y=yHigh;var kItemInfo={Data:data,Coordinate:{X:x,Low:yLow,High:yHigh,Close:yClose,Open:yOpen,Left:left,Right:right}};this.DrawKRange.End=i;if(ptMax.Value==null||ptMax.Value<data.High)//求最大值
|
|
3504
3507
|
{ptMax.X=x;ptMax.Y=yHigh;ptMax.Value=data.High;ptMax.Align=j<xPointCount/2?'left':'right';}if(ptMin.Value==null||ptMin.Value>data.Low)//求最小值
|
|
@@ -3995,8 +3998,11 @@ this.Draw=function(){this.MaxMin=null;if(!this.IsShow||this.ChartFrame.IsMinSize
|
|
|
3995
3998
|
this.GetCurrentMaxMin=function(){var xPointCount=this.ChartFrame.XPointCount;var range={Max:null,Min:null};for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var value=this.Data.Data[i];if(!IFrameSplitOperator.IsNumber(value))continue;if(range.Max==null)range.Max=value;if(range.Min==null)range.Min=value;if(range.Max<value)range.Max=value;if(range.Min>value)range.Min=value;}return range;};this.GetMaxMin=function(){return{Max:null,Min:null};};this.GetYFromData=function(value){var bHScreen=this.ChartFrame.IsHScreen===true;if(bHScreen){if(value<=this.MaxMin.Min)return this.ChartBorder.GetLeftEx();if(value>=this.MaxMin.Max)return this.ChartBorder.GetRightEx();var width=this.ChartBorder.GetWidthEx()*(value-this.MaxMin.Min)/(this.MaxMin.Max-this.MaxMin.Min);return this.ChartBorder.GetLeftEx()+width;}else{if(value<=this.MaxMin.Min)return this.ChartBorder.GetBottomEx();if(value>=this.MaxMin.Max)return this.ChartBorder.GetTopEx();var height=this.ChartBorder.GetHeightEx()*(value-this.MaxMin.Min)/(this.MaxMin.Max-this.MaxMin.Min);return this.ChartBorder.GetBottomEx()-height;}};}//彩色线段
|
|
3996
3999
|
function ChartPartLine(){this.newMethod=IChartPainting;//派生
|
|
3997
4000
|
this.newMethod();delete this.newMethod;this.ClassName='ChartPartLine';//类名
|
|
3998
|
-
this.LineWidth;//线段宽度
|
|
3999
|
-
this.
|
|
4001
|
+
this.LineWidth;//线段宽度
|
|
4002
|
+
this.IsDotLine=false;//虚线
|
|
4003
|
+
this.LineDash=[3,5];//虚线设置
|
|
4004
|
+
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.Data||!this.Data.Data)return;this.DrawLine();};this.DrawLine=function(){var bHScreen=this.ChartFrame.IsHScreen===true;var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;if(bHScreen){var border=this.ChartBorder.GetHScreenBorder();var chartright=border.BottomEx;var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;}else{var border=this.ChartBorder.GetBorder();var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;}var xPointCount=this.ChartFrame.XPointCount;var isMinute=this.IsMinuteFrame();this.Canvas.save();if(this.LineWidth>0)this.Canvas.lineWidth=this.LineWidth*GetDevicePixelRatio();if(this.IsDotLine)this.Canvas.setLineDash(this.LineDash);//画虚线
|
|
4005
|
+
var drawCount=0;var lastColor;var lastPoint={X:null,Y:null};var isPerNull=false;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var item=this.Data.Data[i];if(item==null||item.Value==null){lastPoint.X=null;lastPoint.Y=null;isPerNull=true;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 value=item.Value;var color=item.RGB;var y=this.ChartFrame.GetYFromData(value);if(x>chartright)break;if(color!=lastColor||isPerNull==true){if(lastColor&&drawCount>0)this.Canvas.stroke();drawCount=0;lastColor=color;this.Canvas.strokeStyle=color;this.Canvas.beginPath();if(lastPoint.X!=null&&lastPoint.Y!=null)//接着上一个点连线
|
|
4000
4006
|
{if(bHScreen)this.Canvas.moveTo(lastPoint.Y,lastPoint.X);//横屏坐标轴对调
|
|
4001
4007
|
else this.Canvas.moveTo(lastPoint.X,lastPoint.Y);if(bHScreen)this.Canvas.lineTo(y,x);else this.Canvas.lineTo(x,y);++drawCount;}else{if(bHScreen)this.Canvas.moveTo(y,x);//横屏坐标轴对调
|
|
4002
4008
|
else this.Canvas.moveTo(x,y);}}else{if(bHScreen)this.Canvas.lineTo(y,x);else this.Canvas.lineTo(x,y);++drawCount;}lastPoint.X=x;lastPoint.Y=y;isPerNull=false;}if(drawCount>0)this.Canvas.stroke();this.Canvas.restore();};this.GetMaxMin=function(){var xPointCount=this.ChartFrame.XPointCount;var range={};range.Min=null;range.Max=null;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var item=this.Data.Data[i];if(!item||!item.Value)continue;if(range.Max==null||range.Max<item.Value)range.Max=item.Value;if(range.Min==null||range.Min>item.Value)range.Min=item.Value;}return range;};this.ExportData=function(aryKData,option){var aryValue=[],aryColor=[];if(IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)){var start=0,end=this.Data.length-1;//限制范围
|
|
@@ -4444,7 +4450,7 @@ for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++
|
|
|
4444
4450
|
var svgItem=item.SVG;if(IFrameSplitOperator.IsNumber(svgItem.YOffset))y+=svgItem.YOffset;if(this.AutoPosition){var pt={X:x,Y:y};this.CalculateShowPosition(item,pt);//重新计算位置
|
|
4445
4451
|
x=pt.X;y=pt.Y;}var fontSVG=svgItem.Size+'px '+this.Family;this.Canvas.font=fontSVG;var halfSize=svgItem.Size/2;var textBaseline='bottom';var rtSVG={Left:x-halfSize,Right:x+halfSize,Top:y-svgItem.Size,Bottom:y,Height:svgItem.Size,Width:svgItem.Size};if(svgItem.VAlign===0){textBaseline="top";rtSVG.Top=y;rtSVG.Bottom=rtSVG.Top+svgItem.Size;}else if(svgItem.VAlign===1){textBaseline='middle';rtSVG.Top=y-svgItem.Size/2;rtSVG.Bottom=rtSVG.Top+svgItem.Size;}if(rtSVG.Top<0){rtSVG.Top=0;rtSVG.Bottom=svgItem.Size;y=rtSVG.Bottom;}this.Canvas.textBaseline=textBaseline;this.Canvas.textAlign='center';this.Canvas.fillStyle=svgItem.Color;this.Canvas.fillText(svgItem.Symbol,x,y);this.AryDrawRect.push({Left:rtSVG.Left,Top:rtSVG.Top,Right:rtSVG.Right,Bottom:rtSVG.Bottom,Type:"SVG",Data:item});if(this.EnableTooltip)this.TooltipRect.push({Rect:rtSVG,Index:i,Item:item});//文字
|
|
4446
4452
|
if(item.Text&&item.Text.Content&&this.TextFont){var textItem=item.Text;this.Canvas.font=this.TextFont;this.Canvas.fillStyle=textItem.Color;var yText=y;if(IFrameSplitOperator.IsNumber(textItem.YOffset))yText+=textItem.YOffset;this.Canvas.fillText(textItem.Content,x,yText);}if(item.Detail){this.DrawDetail(rtSVG,item.Detail,item);}//连线
|
|
4447
|
-
if(item.Line){var lineItem=item.Line;var price=null,yPrice=null;if(lineItem.Value=="Bottom"){yPrice=bottom;}else if(lineItem.Value=="Top"){yPrice=top;}else{if(IFrameSplitOperator.IsString(lineItem.Value))price=this.GetKValue(kItem,lineItem.Value);if(!IFrameSplitOperator.IsNumber(price))continue;yPrice=this.ChartFrame.GetYFromData(price);}if(yPrice>=rtSVG.Top&&yPrice<=rtSVG.Bottom)continue;var yText;if(yPrice<rtSVG.Top){yText=rtSVG.Top;if(IFrameSplitOperator.IsNumber(lineItem.SVGBlank)){//yPrice+=lineItem.Blank;
|
|
4453
|
+
if(item.Line){var lineItem=item.Line;var price=null,yPrice=null;if(lineItem.Value=="Bottom"){yPrice=bottom;}else if(lineItem.Value=="Top"){yPrice=top;}else{if(IFrameSplitOperator.IsString(lineItem.Value))price=this.GetKValue(kItem,lineItem.Value);else if(IFrameSplitOperator.IsNumber(lineItem.Value))price=lineItem.Value;if(!IFrameSplitOperator.IsNumber(price))continue;yPrice=this.ChartFrame.GetYFromData(price);}if(yPrice>=rtSVG.Top&&yPrice<=rtSVG.Bottom)continue;var yText;if(yPrice<rtSVG.Top){yText=rtSVG.Top;if(IFrameSplitOperator.IsNumber(lineItem.SVGBlank)){//yPrice+=lineItem.Blank;
|
|
4448
4454
|
yText-=lineItem.SVGBlank;}}else{yText=rtSVG.Bottom;if(IFrameSplitOperator.IsNumber(lineItem.SVGBlank)){//yPrice-=lineItem.Blank;
|
|
4449
4455
|
yText+=lineItem.SVGBlank;}}if(lineItem.Dash)this.Canvas.setLineDash(lineItem.Dash);//虚线
|
|
4450
4456
|
var lineWidth=1*pixelRatio;if(lineItem.Width>0)lineWidth=lineItem.Width*pixelRatio;this.Canvas.lineWidth=lineWidth;//线宽
|
|
@@ -7202,7 +7208,7 @@ this.KLineCalcOption=new _map2.default();//K线定制指标配置
|
|
|
7202
7208
|
this.ScrollBar=null;//横向滚动条
|
|
7203
7209
|
this.IsAutoSyncDataOffset=true;//增量更新时,是否移动当前屏数据
|
|
7204
7210
|
this.GetKLineCalulate=function(){var kLineDrawType=this.GetKLineDrawType();var className;if(kLineDrawType==10)className="RenkoCalculate";else if(kLineDrawType==11)className="HeikinAshiCalculate";else if(kLineDrawType==12)className="LineBreakCalcuate";else if(kLineDrawType==16)className="KagiCalculate";else return null;if(!this.KLineCalculate||this.KLineCalculate.ClassName!=className){this.KLineCalculate=g_KLineCustomCalulate.Create(className);if(this.KLineCalculate.SetOption&&this.KLineCalcOption.has(className)){var option=this.KLineCalcOption.get(className);this.KLineCalculate.SetOption(option);}}return this.KLineCalculate;};this.SetKLineCalcOption=function(className,option){this.KLineCalcOption.set(className,option);if(this.KLineCalculate&&this.KLineCalculate.ClassName==className&&this.KLineCalculate.SetOption){this.KLineCalculate.SetOption(option);}};this.ClearKLineCaluate=function(){if(!this.KLineCalculate)return;if(!this.KLineCalculate.Clear)return;this.KLineCalculate.Clear();};this.ResetDragDownload=function(){this.DragDownload.Day.Status=0;this.DragDownload.Day.IsEnd=false;this.DragDownload.Minute.Status=0;this.DragDownload.Minute.IsEnd=false;this.DragDownload.Tick.Status=0;this.DragDownload.Tick.IsEnd=false;};this.ResetZoomDownload=function(){this.ZoomDownload.Day.Status=0;this.ZoomDownload.Day.IsEnd=false;this.ZoomDownload.Minute.Status=0;this.ZoomDownload.Minute.IsEnd=false;this.ZoomDownload.Tick.Status=0;this.ZoomDownload.Tick.IsEnd=false;};this.ResetPage=function()//重置分页下载
|
|
7205
|
-
{this.Page.Day.Finish=false;this.Page.Day.Index=0;this.Page.Minute.Finish=false;this.Page.Minute.Index=0;};this.AddCustomKLine=function(kline,option){var klineChart=this.ChartPaint[0];if(!klineChart)return;if(!kline)return;if(!klineChart.CustomKLine)klineChart.CustomKLine=new _map2.default();if(Array.isArray(kline)){for(var i=0;i<kline.length;++i){var item=kline[i];klineChart.CustomKLine.set(item.Key,item.Data);}}else if(kline){klineChart.CustomKLine.set(kline.Key,kline.Data);}if(option&&option.Draw==true)this.Draw();};this.ClearCustomKLine=function(option){var klineChart=this.ChartPaint[0];if(!klineChart)return;klineChart.ClearCustomKLine();if(option&&option.Draw==true)this.Draw();};this.StopAutoUpdate=function(){this.CancelAutoUpdate();this.AutoUpdateEvent(false,'KLineChartContainer::StopAutoUpdate');if(!this.IsAutoUpdate)return;this.IsAutoUpdate=false;};//沙盘操作 { ID: 1=开始, Data:绑定K线数据(可选)
|
|
7211
|
+
{this.Page.Day.Finish=false;this.Page.Day.Index=0;this.Page.Minute.Finish=false;this.Page.Minute.Index=0;};this.AddCustomKLine=function(kline,option){var klineChart=this.ChartPaint[0];if(!klineChart)return;if(!kline)return;if(!klineChart.CustomKLine)klineChart.CustomKLine=new _map2.default();if(Array.isArray(kline)){for(var i=0;i<kline.length;++i){var item=kline[i];klineChart.CustomKLine.set(item.Key,item.Data);}}else if(kline){klineChart.CustomKLine.set(kline.Key,kline.Data);}if(option&&option.Draw==true)this.Draw();};this.ClearCustomKLine=function(option){var klineChart=this.ChartPaint[0];if(!klineChart)return;klineChart.ClearCustomKLine();if(option&&option.Draw==true)this.Draw();};this.ClearKLineBreakPoint=function(option){var klineChart=this.ChartPaint[0];if(!klineChart)return;klineChart.ClearBreakPoint();if(option&&option.Draw==true)this.Draw();};this.StopAutoUpdate=function(){this.CancelAutoUpdate();this.AutoUpdateEvent(false,'KLineChartContainer::StopAutoUpdate');if(!this.IsAutoUpdate)return;this.IsAutoUpdate=false;};//沙盘操作 { ID: 1=开始, Data:绑定K线数据(可选)
|
|
7206
7212
|
// ID: 2=更新数据, Data:绑定K线数据
|
|
7207
7213
|
// ID: 3=结束, IsAutoUpdate:是否启动自动更新(可选) }
|
|
7208
7214
|
this.SandTableOperator=function(obj){switch(obj.ID){case 1:this.StopAutoUpdate();if(obj.Data)this.ManualUpdateKData(obj);break;case 2:this.ManualUpdateKData(obj);break;case 3:if(obj.IsAutoUpdate)this.IsAutoUpdate=obj.IsAutoUpdate;this.ChangeSymbol(this.Symbol);break;}};//外部手动更新K线数据, 内部不计算周期和复权
|
|
@@ -7309,7 +7315,7 @@ border.TopSpace=15*pixelTatio;frame.GetEventCallback=function(id){return _this19
|
|
|
7309
7315
|
frame.GetEventCallback=function(id){return _this20.GetEventCallback(id);};frame.GlobalOption=this.GlobalOption;frame.HorizontalMax=20;frame.HorizontalMin=10;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 FrameSplitKLineX();frame.XSplitOperator.Frame=frame;frame.XSplitOperator.ChartBorder=border;frame.XSplitOperator.ShowText=false;frame.XSplitOperator.GetEventCallback=function(id){return _this20.GetEventCallback(id);};frame.YSplitOperator.GetEventCallback=function(id){return _this20.GetEventCallback(id);};frame.YSplitOperator.GetKLineChartCallback=function(){return _this20.GetKLineChart();};frame.YSplitOperator.HQChart=this;frame.XSplitOperator.Symbol=this.Symbol;frame.XSplitOperator.Period=this.Period;//K线数据绑定
|
|
7310
7316
|
var xPointCouont=this.Frame.SubFrame[0].Frame.XPointCount;frame.XPointCount=xPointCouont;frame.Data=this.ChartPaint[0].Data;for(var j=frame.HorizontalMin;j<=frame.HorizontalMax;j+=1){frame.HorizontalInfo[j]=new CoordinateInfo();frame.HorizontalInfo[j].Value=j;frame.HorizontalInfo[j].Message[1]=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;};//创建主图K线画法
|
|
7311
7317
|
this.CreateMainKLine=function(){var _this21=this;var kline=g_ChartPaintFactory.Create("ChartKLine");kline.Canvas=this.Canvas;kline.ChartBorder=this.Frame.SubFrame[0].Frame.ChartBorder;kline.ChartFrame=this.Frame.SubFrame[0].Frame;kline.Name="Main-KLine";kline.DrawType=this.KLineDrawType;kline.Identify="Main-KLine";kline.GetEventCallback=function(id){return _this21.GetEventCallback(id);};this.ChartPaint[0]=kline;this.TitlePaint[0]=new DynamicKLineTitlePainting();this.TitlePaint[0].Frame=this.Frame.SubFrame[0].Frame;this.TitlePaint[0].Canvas=this.Canvas;this.TitlePaint[0].OverlayChartPaint=this.OverlayChartPaint;//绑定叠加
|
|
7312
|
-
this.TitlePaint[0].LanguageID=this.LanguageID;this.TitlePaint[0].HQChart=this;this.TitlePaint[0].GetEventCallback=function(id){return _this21.GetEventCallback(id);};};//绑定主图K线数据
|
|
7318
|
+
this.TitlePaint[0].LanguageID=this.LanguageID;this.TitlePaint[0].HQChart=this;this.TitlePaint[0].GetEventCallback=function(id){return _this21.GetEventCallback(id);};};this.BindKLineBreakPoint=function(data){var klineChart=this.ChartPaint[0];if(!klineChart)return;if(!IFrameSplitOperator.IsNonEmptyArray(data.AryBreakPoint))return;klineChart.AryBreakPoint=data.AryBreakPoint.slice();};//绑定主图K线数据
|
|
7313
7319
|
this.BindMainData=function(hisData,showCount,chartOperator){var isShowAll=false;//全部显示
|
|
7314
7320
|
if(chartOperator&&chartOperator.IsShowAll===true)isShowAll=true;this.ChartPaint[0].Data=hisData;this.ChartPaint[0].Symbol=this.Symbol;if(this.KLineSize){if(!IFrameSplitOperator.IsNumber(this.KLineSize.DataWidth)){showCount=this.Frame.SubFrame[0].Frame.XPointCount-this.RightSpaceCount;}else{var obj=this.Frame.SetDataWidth(this.KLineSize.DataWidth);showCount=obj.XPointCount-this.RightSpaceCount;this.KLineSize.DataWidth=null;}}for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i].Frame;if(isShowAll)item.XPointCount=hisData.Data.length+this.RightSpaceCount;else item.XPointCount=showCount+this.RightSpaceCount;item.Data=this.ChartPaint[0].Data;item.XSplitOperator.Symbol=this.Symbol;item.XSplitOperator.Period=this.Period;}this.TitlePaint[0].Data=this.ChartPaint[0].Data;//动态标题
|
|
7315
7321
|
this.TitlePaint[0].Symbol=this.Symbol;this.TitlePaint[0].Name=this.Name;this.TitlePaint[0].Period=this.Period;this.ChartCorssCursor.StringFormatX.Data=this.ChartPaint[0].Data;//十字光标
|
|
@@ -7425,7 +7431,7 @@ var bindData=new ChartData();bindData.Data=aryDayData;bindData.Right=this.Right;
|
|
|
7425
7431
|
{var newBindData=kLineCalculate.RecvHistoryData(bindData,{Symbol:this.Symbol,Function:"RecvMinuteHistoryData"});bindData=newBindData;this.FlowCapitalReady=true;}//绑定数据
|
|
7426
7432
|
this.Symbol=data.symbol;this.Name=data.name;var chartOperator=null;//额外的图形控制
|
|
7427
7433
|
if(data&&data.ChartOperator){var item=data.ChartOperator;chartOperator={};if(item.IsShowAll===true)chartOperator.IsShowAll=true;//全部显示
|
|
7428
|
-
}this.BindMainData(bindData,this.PageSize,chartOperator);if(this.AfterBindMainData)this.AfterBindMainData("RecvMinuteHistoryData");this.Frame.SetSizeChage(true);var firstSubFrame;if(this.Frame.SubFrame[0])firstSubFrame=this.Frame.SubFrame[0].Frame;if(firstSubFrame&&firstSubFrame.YSplitOperator){firstSubFrame.YSplitOperator.Symbol=this.Symbol;firstSubFrame.YSplitOperator.Data=this.ChartPaint[0].Data;//K线数据
|
|
7434
|
+
}this.BindMainData(bindData,this.PageSize,chartOperator);this.BindKLineBreakPoint(data);if(this.AfterBindMainData)this.AfterBindMainData("RecvMinuteHistoryData");this.Frame.SetSizeChage(true);var firstSubFrame;if(this.Frame.SubFrame[0])firstSubFrame=this.Frame.SubFrame[0].Frame;if(firstSubFrame&&firstSubFrame.YSplitOperator){firstSubFrame.YSplitOperator.Symbol=this.Symbol;firstSubFrame.YSplitOperator.Data=this.ChartPaint[0].Data;//K线数据
|
|
7429
7435
|
firstSubFrame.YSplitOperator.Period=this.Period;//周期
|
|
7430
7436
|
}for(var i in this.OverlayChartPaint)//分钟数据不支持叠加 清空
|
|
7431
7437
|
{var item=this.OverlayChartPaint[i];item.Data=null;//item.Status=OVERLAY_STATUS_ID.STATUS_NONE_ID;
|
|
@@ -7604,7 +7610,7 @@ if(this.SourceData.DataType!=1)isDataTypeChange=true;break;case 10://分笔线
|
|
|
7604
7610
|
if(this.SourceData.DataType!=2)isDataTypeChange=true;break;}}}this.Period=period;if(right!=null)this.Right=right;this.ReloadChartDrawPicture();//切换周期了 清空画图工具
|
|
7605
7611
|
this.ClearRectSelect(true);this.Frame.ClearUpDonwFrameYData();this.ClearCustomKLine();this.ClearKLineCaluate();this.UnlockCorssCursor();var kLineDrawType=this.GetKLineDrawType();if(kLineDrawType==10||kLineDrawType==11||kLineDrawType==12||kLineDrawType==16)isDataTypeChange=true;var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CHANGE_KLINE_PERIOD);if(event&&event.Callback){var sendData={IsApiPeriod:this.IsApiPeriod,Old:oldData,Now:{Period:this.Period,Right:this.Right,KLineDrawType:this.KLineDrawType,Symbol:this.Symbol},IsDataTypeChange:isDataTypeChange//数据类型是否改变 true 重新请求数据
|
|
7606
7612
|
};event.Callback(event,sendData,this);isDataTypeChange=sendData.IsDataTypeChange;}if(isDataTypeChange==false&&!this.IsApiPeriod){this.ClearIndexRunCount();this.Update({UpdateCursorIndexType:2});//更新的时候 取消显示十字光标
|
|
7607
|
-
return;}this.ClearIndexPaint();if(ChartData.IsDayPeriod(this.Period,true)){this.CancelAutoUpdate();//先停止定时器
|
|
7613
|
+
return;}this.ClearIndexPaint();this.ClearKLineBreakPoint();if(ChartData.IsDayPeriod(this.Period,true)){this.CancelAutoUpdate();//先停止定时器
|
|
7608
7614
|
this.AutoUpdateEvent(false,'KLineChartContainer::ChangePeriod');//切换周期先停止更新
|
|
7609
7615
|
this.ResetScrollBar();this.ResetOverlaySymbolStatus();this.ClearIndexRunCount();this.Frame.ClearYCoordinateMaxMin();this.UnlockCorssCursor();this.RequestHistoryData();//请求日线数据
|
|
7610
7616
|
//this.ReqeustKLineInfoData();
|
|
@@ -7778,7 +7784,7 @@ this.UpdateFrameMaxMin();//调整坐标最大 最小值
|
|
|
7778
7784
|
this.Frame.SetSizeChage(true);this.Draw();//叠加指标
|
|
7779
7785
|
for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i];for(var j in item.OverlayIndex){var overlayItem=item.OverlayIndex[j];this.BindOverlayIndexData(overlayItem,i,bindData);}}};//切换股票代码
|
|
7780
7786
|
this.ChangeSymbol=function(symbol,option){this.CancelAutoUpdate();//先停止定时器
|
|
7781
|
-
this.AutoUpdateEvent(false,'KLineChartContainer::ChangeSymbol');this.ClearRectSelect(true);this.ClearCustomKLine();this.ClearKLineCaluate();this.HideTooltip();this.ResetScrollBar();this.ClearIndexRunCount();this.UnlockCorssCursor();this.Frame.ClearYCoordinateMaxMin();this.Symbol=symbol;if(!symbol){this.DrawEmpty();return;}if(option){if(option.KLine){var item=option.KLine;if(IFrameSplitOperator.IsNumber(item.Right))this.Right=item.Right;if(IFrameSplitOperator.IsNumber(item.Period))this.Period=item.Period;}}if(MARKET_SUFFIX_NAME.IsSHSZIndex(symbol))this.Right=0;//指数没有复权
|
|
7787
|
+
this.AutoUpdateEvent(false,'KLineChartContainer::ChangeSymbol');this.ClearRectSelect(true);this.ClearCustomKLine();this.ClearKLineBreakPoint();this.ClearKLineCaluate();this.HideTooltip();this.ResetScrollBar();this.ClearIndexRunCount();this.UnlockCorssCursor();this.Frame.ClearYCoordinateMaxMin();this.Symbol=symbol;if(!symbol){this.DrawEmpty();return;}if(option){if(option.KLine){var item=option.KLine;if(IFrameSplitOperator.IsNumber(item.Right))this.Right=item.Right;if(IFrameSplitOperator.IsNumber(item.Period))this.Period=item.Period;}}if(MARKET_SUFFIX_NAME.IsSHSZIndex(symbol))this.Right=0;//指数没有复权
|
|
7782
7788
|
this.ClearIndexPaint();//清空指标
|
|
7783
7789
|
if(option){if(IFrameSplitOperator.IsNonEmptyArray(option.Windows)){var windows=option.Windows;for(var i=0;i<windows.length;++i){if(i>=this.WindowIndex.length)break;//暂时不支持 动态增加/减少
|
|
7784
7790
|
var item=windows[i];if(!item)continue;if(item.Script){this.WindowIndex[i]=new ScriptIndex(item.Name,item.Script,item.Args,item);//脚本执行
|
|
@@ -11789,7 +11795,7 @@ chart.Family=varItem.Draw.Icon.Family;chart.TextFont=g_JSChartResource.TIPICON.T
|
|
|
11789
11795
|
if(IFrameSplitOperator.IsNumber(varItem.YOffset))svgYOffset=varItem.YOffset;if(varItem.Color)svgColor=this.GetColor(varItem.Color);if(varItem.DrawFontSize>0)svgSize=varItem.DrawFontSize;if(varItem.DrawVAlign>=0)svgVAlign=varItem.DrawVAlign;if(varItem.Draw&&IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.DrawData)&&varItem.Draw.Icon){var drawData=varItem.Draw.DrawData;var aryData=[];var isArrayTip=Array.isArray(varItem.Draw.Text);var singleTip=null;if(!isArrayTip&&varItem.Draw.Text)singleTip={Text:varItem.Draw.Text};for(var j=0;j<drawData.length;++j){var item=drawData[j];var kItem=chart.Data.Data[j];if(!IFrameSplitOperator.IsNumber(item))continue;var svgItem={Value:item,Date:kItem.Date,Time:kItem.Time,SVG:{Symbol:varItem.Draw.Icon.Symbol,Size:svgSize,Color:svgColor,YOffset:svgYOffset,VAlign:svgVAlign}};if(isArrayTip){var text=varItem.Draw.Text[j];if(text)svgItem.Tooltip={Text:text};}else{svgItem.Tooltip=singleTip;}aryData.push(svgItem);}chart.Texts=aryData;}chart.BuildCacheData();hqChart.ChartPaint.push(chart);};this.CreateDrawLastBarText=function(hqChart,windowIndex,varItem,id){var chart=new ChartDrawLastBarText();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线
|
|
11790
11796
|
var lastItem=varItem.Draw.DrawData;if(lastItem){if(lastItem.Color)lastItem.Color=this.GetColor(lastItem.Color);else lastItem.Color=this.GetDefaultColor(id);if(varItem.Color)lastItem.Color=this.GetColor(varItem.Color);if(varItem.DrawVAlign>=0){if(varItem.DrawVAlign==0)lastItem.TextBaseline='top';else if(varItem.DrawVAlign==1)lastItem.TextBaseline='middle';else if(varItem.DrawVAlign==2)lastItem.TextBaseline='bottom';}if(varItem.DrawAlign>=0){if(varItem.DrawAlign==0)lastItem.TextAlign="left";else if(varItem.DrawAlign==1)lastItem.TextAlign="center";else if(varItem.DrawAlign==2)lastItem.TextAlign='right';}if(IFrameSplitOperator.IsNumber(varItem.YOffset))lastItem.YOffset=varItem.YOffset;if(IFrameSplitOperator.IsNumber(varItem.XOffset))lastItem.XOffset=varItem.XOffset;if(varItem.DrawFontSize>0)lastItem.FontSize=varItem.DrawFontSize;}chart.LastBarItem=lastItem;hqChart.ChartPaint.push(chart);};//创建通道
|
|
11791
11797
|
this.CreateChannel=function(hqChart,windowIndex,varItem,id){var chart=new ChartChannel();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.AreaColor)chart.AreaColor=varItem.Draw.AreaColor;else if(varItem.Color)chart.AreaColor=this.GetColor(varItem.Color);else chart.AreaColor=this.GetDefaultColor(id);if(varItem.Draw.Border.Color)chart.LineColor=varItem.Draw.Border.Color;else chart.LineColor=null;if(varItem.Draw.Border.Dotted)chart.LineDotted=varItem.Draw.Border.Dotted;if(varItem.Draw.Border.Width>0)chart.LineWidth=varItem.Draw.Border.Width;//let titleIndex=windowIndex+1;
|
|
11792
|
-
chart.Data.Data=varItem.Draw.DrawData;hqChart.ChartPaint.push(chart);};this.CreatePartLine=function(hqChart,windowIndex,varItem,i){var chart=new ChartPartLine();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.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(IFrameSplitOperator.IsPlusNumber(width))chart.LineWidth=width;}chart.Data.Data=varItem.Draw.DrawData;this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);};this.CreateMultiLine=function(hqChart,windowIndex,varItem,i){var chart=new ChartMultiLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
11798
|
+
chart.Data.Data=varItem.Draw.DrawData;hqChart.ChartPaint.push(chart);};this.CreatePartLine=function(hqChart,windowIndex,varItem,i){var chart=new ChartPartLine();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.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(IFrameSplitOperator.IsPlusNumber(width))chart.LineWidth=width;}if(IFrameSplitOperator.IsBool(varItem.IsDotLine))chart.IsDotLine=varItem.IsDotLine;if(IFrameSplitOperator.IsNonEmptyArray(varItem.LineDash))chart.LineDash=varItem.LineDash;chart.Data.Data=varItem.Draw.DrawData;this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);};this.CreateMultiLine=function(hqChart,windowIndex,varItem,i){var chart=new ChartMultiLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
11793
11799
|
chart.Lines=varItem.Draw.DrawData;if(varItem.Draw.Name)chart.Name=varItem.Draw.Name;if(varItem.Draw.LineDash)chart.LineDash=varItem.Draw.LineDash;if(IFrameSplitOperator.IsNumber(varItem.Draw.LineWidth))chart.LineWidth=varItem.Draw.LineWidth;if(IFrameSplitOperator.IsBool(varItem.Draw.IsFullRangeMaxMin))chart.IsFullRangeMaxMin=varItem.Draw.IsFullRangeMaxMin;if(varItem.Draw.Arrow)//箭头配置
|
|
11794
11800
|
{var item=varItem.Draw.Arrow;if(item.Start==true)chart.Arrow.Start=true;if(item.End==true)chart.Arrow.End=true;if(IFrameSplitOperator.IsNumber(item.Angle))chart.ArrawAngle=item.Angle;if(IFrameSplitOperator.IsNumber(item.Length))chart.ArrawLength=item.Length;if(IFrameSplitOperator.IsNumber(item.LineWidth))chart.ArrawLineWidth=item.LineWidth;}this.ReloadChartResource(hqChart,windowIndex,chart);this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);var titleIndex=windowIndex+1;if(varItem.IsShowTitle===false){}else{var titleData=new DynamicTitleData(chart.Data,chart.Name,null);titleData.DataType="ChartMultiLine";titleData.Lines=chart.Lines;hqChart.TitlePaint[titleIndex].Data[i]=titleData;}};this.CreateMultiPoint=function(hqChart,windowIndex,varItem,i){var chart=new ChartMultiPoint();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data=hqChart.GetKData();//绑定K线
|
|
11795
11801
|
chart.PointGroup=varItem.Draw.DrawData;if(varItem.Draw.Name)chart.Name=varItem.Draw.Name;chart.BuildCacheData();this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);var titleIndex=windowIndex+1;var titleData=new DynamicTitleData(chart.Data,chart.Name,null);titleData.DataType="ChartMultiPoint";titleData.GetItemCallback=function(kItem){return chart.GetItem(kItem);};hqChart.TitlePaint[titleIndex].Data[i]=titleData;};this.CreateMultiBar=function(hqChart,windowIndex,varItem,id){var chart=new ChartMultiBar();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data=hqChart.GetKData();//绑定K线
|
|
@@ -11911,7 +11917,7 @@ this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateTipIcon=
|
|
|
11911
11917
|
if(IFrameSplitOperator.IsNumber(varItem.YOffset))svgYOffset=varItem.YOffset;if(varItem.Color)svgColor=this.GetColor(varItem.Color);if(varItem.DrawFontSize>0)svgSize=varItem.DrawFontSize;if(varItem.DrawVAlign>=0)svgVAlign=varItem.DrawVAlign;if(varItem.Draw&&IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.DrawData)&&varItem.Draw.Icon){var drawData=varItem.Draw.DrawData;var aryData=[];var isArrayTip=Array.isArray(varItem.Draw.Text);var singleTip=null;if(!isArrayTip&&varItem.Draw.Text)singleTip={Text:varItem.Draw.Text};for(var j=0;j<drawData.length;++j){var item=drawData[j];var kItem=chart.Data.Data[j];if(!IFrameSplitOperator.IsNumber(item))continue;var svgItem={Value:item,Date:kItem.Date,Time:kItem.Time,SVG:{Symbol:varItem.Draw.Icon.Symbol,Size:svgSize,Color:svgColor,YOffset:svgYOffset,VAlign:svgVAlign}};if(isArrayTip){var text=varItem.Draw.Text[j];if(text)svgItem.Tooltip={Text:text};}else{svgItem.Tooltip=singleTip;}aryData.push(svgItem);}chart.Texts=aryData;}chart.BuildCacheData();frame.ChartPaint.push(chart);};//创建通道
|
|
11912
11918
|
this.CreateChannel=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartChannel();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.Draw.AreaColor)chart.AreaColor=varItem.Draw.AreaColor;else if(varItem.Color)chart.AreaColor=this.GetColor(varItem.Color);else chart.AreaColor=this.GetDefaultColor(id);if(varItem.Draw.Border.Color)chart.LineColor=varItem.Draw.Border.Color;else chart.LineColor=null;if(varItem.Draw.Border.Dotted)chart.LineDotted=varItem.Draw.Border.Dotted;if(varItem.Draw.Border.Width>0)chart.LineWidth=varItem.Draw.Border.Width;//let titleIndex=windowIndex+1;
|
|
11913
11919
|
chart.Data.Data=varItem.Draw.DrawData;frame.ChartPaint.push(chart);};//
|
|
11914
|
-
this.CreatePartLine=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartPartLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(IFrameSplitOperator.IsPlusNumber(width))chart.LineWidth=width;}chart.Data.Data=varItem.Draw.DrawData;this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateMultiLine=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartMultiLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
11920
|
+
this.CreatePartLine=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartPartLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(IFrameSplitOperator.IsPlusNumber(width))chart.LineWidth=width;}if(IFrameSplitOperator.IsBool(varItem.IsDotLine))chart.IsDotLine=varItem.IsDotLine;if(IFrameSplitOperator.IsNonEmptyArray(varItem.LineDash))chart.LineDash=varItem.LineDash;chart.Data.Data=varItem.Draw.DrawData;this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateMultiLine=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartMultiLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
11915
11921
|
chart.Lines=varItem.Draw.DrawData;if(varItem.Draw.LineDash)chart.LineDash=varItem.Draw.LineDash;if(IFrameSplitOperator.IsNumber(varItem.Draw.LineWidth))chart.LineWidth=varItem.Draw.LineWidth;if(IFrameSplitOperator.IsBool(varItem.Draw.IsFullRangeMaxMin))chart.IsFullRangeMaxMin=varItem.Draw.IsFullRangeMaxMin;if(varItem.Draw.Arrow)//箭头配置
|
|
11916
11922
|
{var item=varItem.Draw.Arrow;if(item.Start==true)chart.Arrow.Start=true;if(item.End==true)chart.Arrow.End=true;if(IFrameSplitOperator.IsNumber(item.Angle))chart.ArrawAngle=item.Angle;if(IFrameSplitOperator.IsNumber(item.Length))chart.ArrawLength=item.Length;if(IFrameSplitOperator.IsNumber(item.LineWidth))chart.ArrawLineWidth=item.LineWidth;}this.ReloadChartResource(hqChart,windowIndex,chart);this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateMultiPoint=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartMultiPoint();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.Data=hqChart.GetKData();//绑定K线
|
|
11917
11923
|
chart.PointGroup=varItem.Draw.DrawData;chart.BuildCacheData();var titleIndex=windowIndex+1;var titlePaint=hqChart.TitlePaint[titleIndex];var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);titleData.DataType="ChartMultiPoint";titleData.GetItemCallback=function(kItem){return chart.GetItem(kItem);};titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateBackgroud=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartBackground();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.Draw&&varItem.Draw.DrawData){var drawData=varItem.Draw.DrawData;chart.Color=drawData.Color;chart.ColorAngle=drawData.Angle;if(drawData.Data)chart.Data.Data=drawData.Data;}frame.ChartPaint.push(chart);};this.CreateMultiBar=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartMultiBar();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.Data=hqChart.GetKData();//绑定K线
|
|
@@ -14307,7 +14313,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
|
|
|
14307
14313
|
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);};}/********************************************************************************
|
|
14308
14314
|
* 版本信息输出
|
|
14309
14315
|
*
|
|
14310
|
-
*/var HQCHART_VERSION="1.1.
|
|
14316
|
+
*/var HQCHART_VERSION="1.1.14387";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();//把给外界调用的方法暴露出来
|
|
14311
14317
|
exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
|
|
14312
14318
|
// BaseIndex:BaseIndex,
|
|
14313
14319
|
// ChartLine:ChartLine,
|
package/package.json
CHANGED
|
@@ -21962,7 +21962,7 @@ function ScriptIndex(name,script,args,option)
|
|
|
21962
21962
|
|
|
21963
21963
|
this.CreatePartLine=function(hqChart,windowIndex,varItem,i)
|
|
21964
21964
|
{
|
|
21965
|
-
|
|
21965
|
+
var chart=new ChartPartLine();
|
|
21966
21966
|
chart.Canvas=hqChart.Canvas;
|
|
21967
21967
|
chart.Name=varItem.Name;
|
|
21968
21968
|
chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;
|
|
@@ -21974,6 +21974,9 @@ function ScriptIndex(name,script,args,option)
|
|
|
21974
21974
|
if (IFrameSplitOperator.IsPlusNumber(width)) chart.LineWidth=width;
|
|
21975
21975
|
}
|
|
21976
21976
|
|
|
21977
|
+
if (IFrameSplitOperator.IsBool(varItem.IsDotLine)) chart.IsDotLine=varItem.IsDotLine;
|
|
21978
|
+
if (IFrameSplitOperator.IsNonEmptyArray(varItem.LineDash)) chart.LineDash=varItem.LineDash;
|
|
21979
|
+
|
|
21977
21980
|
chart.Data.Data=varItem.Draw.DrawData;
|
|
21978
21981
|
|
|
21979
21982
|
this.SetChartIndexName(chart);
|
|
@@ -23710,7 +23713,7 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
23710
23713
|
{
|
|
23711
23714
|
var overlayIndex=this.OverlayIndex;
|
|
23712
23715
|
var frame=overlayIndex.Frame;
|
|
23713
|
-
|
|
23716
|
+
var chart=new ChartPartLine();
|
|
23714
23717
|
chart.Canvas=hqChart.Canvas;
|
|
23715
23718
|
chart.Name=varItem.Name;
|
|
23716
23719
|
chart.ChartBorder=frame.Frame.ChartBorder;
|
|
@@ -23723,6 +23726,9 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
23723
23726
|
if (IFrameSplitOperator.IsPlusNumber(width)) chart.LineWidth=width;
|
|
23724
23727
|
}
|
|
23725
23728
|
|
|
23729
|
+
if (IFrameSplitOperator.IsBool(varItem.IsDotLine)) chart.IsDotLine=varItem.IsDotLine;
|
|
23730
|
+
if (IFrameSplitOperator.IsNonEmptyArray(varItem.LineDash)) chart.LineDash=varItem.LineDash;
|
|
23731
|
+
|
|
23726
23732
|
chart.Data.Data=varItem.Draw.DrawData;
|
|
23727
23733
|
this.SetChartIndexName(chart);
|
|
23728
23734
|
frame.ChartPaint.push(chart);
|
package/src/jscommon/umychart.js
CHANGED
|
@@ -25433,6 +25433,32 @@ function ChartKLine()
|
|
|
25433
25433
|
Text:{ Color:g_JSChartResource.PriceGapStyple.Text.Color, Font: g_JSChartResource.PriceGapStyple.Text.Font }
|
|
25434
25434
|
};
|
|
25435
25435
|
this.AryPriceGapCache=[]; //缺口数据 { }
|
|
25436
|
+
|
|
25437
|
+
//面积图和收盘价线 断开点
|
|
25438
|
+
this.AryBreakPoint;
|
|
25439
|
+
|
|
25440
|
+
this.BuildDateTimeKey=function(item)
|
|
25441
|
+
{
|
|
25442
|
+
if (!item) return null;
|
|
25443
|
+
|
|
25444
|
+
if (!IFrameSplitOperator.IsNumber(item.Time)) return `${item.Date}`;
|
|
25445
|
+
return `${item.Date}-${item.Time}`;
|
|
25446
|
+
}
|
|
25447
|
+
|
|
25448
|
+
this.BuildBreakPoint=function()
|
|
25449
|
+
{
|
|
25450
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.AryBreakPoint)) return null;
|
|
25451
|
+
|
|
25452
|
+
var mapBreakPoint=new Map();
|
|
25453
|
+
for(var i=0;i<this.AryBreakPoint.length;++i)
|
|
25454
|
+
{
|
|
25455
|
+
var item=this.AryBreakPoint[i];
|
|
25456
|
+
var key=this.BuildDateTimeKey(item);
|
|
25457
|
+
if (key) mapBreakPoint.set(key, item);
|
|
25458
|
+
}
|
|
25459
|
+
|
|
25460
|
+
return mapBreakPoint;
|
|
25461
|
+
}
|
|
25436
25462
|
|
|
25437
25463
|
this.ReloadResource=function(resource)
|
|
25438
25464
|
{
|
|
@@ -25460,6 +25486,11 @@ function ChartKLine()
|
|
|
25460
25486
|
this.CustomKLine=null;
|
|
25461
25487
|
}
|
|
25462
25488
|
|
|
25489
|
+
this.ClearBreakPoint=function()
|
|
25490
|
+
{
|
|
25491
|
+
this.AryBreakPoint=null;
|
|
25492
|
+
}
|
|
25493
|
+
|
|
25463
25494
|
this.GetCustomKLine=function(kItem)
|
|
25464
25495
|
{
|
|
25465
25496
|
if (!this.CustomKLine) return null;
|
|
@@ -25936,6 +25967,7 @@ function ChartKLine()
|
|
|
25936
25967
|
}
|
|
25937
25968
|
|
|
25938
25969
|
var bFirstPoint=true;
|
|
25970
|
+
var drawCount=0;
|
|
25939
25971
|
this.Canvas.beginPath();
|
|
25940
25972
|
this.Canvas.strokeStyle=this.CloseLineColor;
|
|
25941
25973
|
if (IFrameSplitOperator.IsNumber(this.CloseLineWidth)) this.Canvas.lineWidth=this.CloseLineWidth;
|
|
@@ -25946,6 +25978,8 @@ function ChartKLine()
|
|
|
25946
25978
|
this.ShowRange.ShowCount=xPointCount;
|
|
25947
25979
|
this.DrawKRange.Start=this.Data.DataOffset;
|
|
25948
25980
|
|
|
25981
|
+
var mapBreakPoint=this.BuildBreakPoint(); //断点
|
|
25982
|
+
|
|
25949
25983
|
var preKItemInfo=null;
|
|
25950
25984
|
for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth),++this.ShowRange.DataCount)
|
|
25951
25985
|
{
|
|
@@ -25971,8 +26005,9 @@ function ChartKLine()
|
|
|
25971
26005
|
if (isHScreen) this.Canvas.lineTo(yClose,x);
|
|
25972
26006
|
else this.Canvas.lineTo(x,yClose);
|
|
25973
26007
|
}
|
|
26008
|
+
++drawCount;
|
|
25974
26009
|
|
|
25975
|
-
if (this.PriceGap.Enable
|
|
26010
|
+
if (this.PriceGap.Enable)
|
|
25976
26011
|
{
|
|
25977
26012
|
var yLow=this.GetYFromData(data.Low, false);
|
|
25978
26013
|
var yHigh=this.GetYFromData(data.High, false);
|
|
@@ -25989,9 +26024,23 @@ function ChartKLine()
|
|
|
25989
26024
|
|
|
25990
26025
|
preKItemInfo=kItemInfo;
|
|
25991
26026
|
}
|
|
26027
|
+
|
|
26028
|
+
//断开点
|
|
26029
|
+
if (mapBreakPoint)
|
|
26030
|
+
{
|
|
26031
|
+
var kItem=data;
|
|
26032
|
+
var key=this.BuildDateTimeKey(kItem);
|
|
26033
|
+
if (key && mapBreakPoint.has(key))
|
|
26034
|
+
{
|
|
26035
|
+
if (drawCount>0) this.Canvas.stroke();
|
|
26036
|
+
|
|
26037
|
+
bFirstPoint=true;
|
|
26038
|
+
drawCount=0;
|
|
26039
|
+
}
|
|
26040
|
+
}
|
|
25992
26041
|
}
|
|
25993
26042
|
|
|
25994
|
-
if (
|
|
26043
|
+
if (drawCount>0) this.Canvas.stroke();
|
|
25995
26044
|
}
|
|
25996
26045
|
|
|
25997
26046
|
this.DrawKBar=function() //蜡烛头
|
|
@@ -33920,7 +33969,9 @@ function ChartPartLine()
|
|
|
33920
33969
|
delete this.newMethod;
|
|
33921
33970
|
|
|
33922
33971
|
this.ClassName='ChartPartLine'; //类名
|
|
33923
|
-
this.LineWidth; //线段宽度
|
|
33972
|
+
this.LineWidth; //线段宽度
|
|
33973
|
+
this.IsDotLine=false; //虚线
|
|
33974
|
+
this.LineDash=[3,5]; //虚线设置
|
|
33924
33975
|
|
|
33925
33976
|
this.Draw=function()
|
|
33926
33977
|
{
|
|
@@ -33962,7 +34013,8 @@ function ChartPartLine()
|
|
|
33962
34013
|
|
|
33963
34014
|
this.Canvas.save();
|
|
33964
34015
|
if (this.LineWidth>0) this.Canvas.lineWidth=this.LineWidth * GetDevicePixelRatio();
|
|
33965
|
-
|
|
34016
|
+
if (this.IsDotLine) this.Canvas.setLineDash(this.LineDash); //画虚线
|
|
34017
|
+
|
|
33966
34018
|
var drawCount=0;
|
|
33967
34019
|
var lastColor;
|
|
33968
34020
|
var lastPoint={X:null,Y:null};
|
|
@@ -42673,8 +42725,8 @@ function ChartDrawSVG()
|
|
|
42673
42725
|
}
|
|
42674
42726
|
else
|
|
42675
42727
|
{
|
|
42676
|
-
if (IFrameSplitOperator.IsString(lineItem.Value))
|
|
42677
|
-
|
|
42728
|
+
if (IFrameSplitOperator.IsString(lineItem.Value)) price=this.GetKValue(kItem,lineItem.Value);
|
|
42729
|
+
else if (IFrameSplitOperator.IsNumber(lineItem.Value)) price=lineItem.Value;
|
|
42678
42730
|
|
|
42679
42731
|
if (!IFrameSplitOperator.IsNumber(price)) continue;
|
|
42680
42732
|
yPrice=this.ChartFrame.GetYFromData(price);
|
|
@@ -75166,6 +75218,16 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
75166
75218
|
if (option && option.Draw==true) this.Draw();
|
|
75167
75219
|
}
|
|
75168
75220
|
|
|
75221
|
+
this.ClearKLineBreakPoint=function(option)
|
|
75222
|
+
{
|
|
75223
|
+
var klineChart=this.ChartPaint[0];
|
|
75224
|
+
if (!klineChart) return;
|
|
75225
|
+
|
|
75226
|
+
klineChart.ClearBreakPoint();
|
|
75227
|
+
|
|
75228
|
+
if (option && option.Draw==true) this.Draw();
|
|
75229
|
+
}
|
|
75230
|
+
|
|
75169
75231
|
this.StopAutoUpdate=function()
|
|
75170
75232
|
{
|
|
75171
75233
|
this.CancelAutoUpdate();
|
|
@@ -76312,6 +76374,15 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
76312
76374
|
this.TitlePaint[0].GetEventCallback=(id)=>{ return this.GetEventCallback(id); };
|
|
76313
76375
|
}
|
|
76314
76376
|
|
|
76377
|
+
|
|
76378
|
+
this.BindKLineBreakPoint=function(data)
|
|
76379
|
+
{
|
|
76380
|
+
var klineChart=this.ChartPaint[0];
|
|
76381
|
+
if (!klineChart) return;
|
|
76382
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(data.AryBreakPoint)) return;
|
|
76383
|
+
klineChart.AryBreakPoint=data.AryBreakPoint.slice();
|
|
76384
|
+
}
|
|
76385
|
+
|
|
76315
76386
|
//绑定主图K线数据
|
|
76316
76387
|
this.BindMainData=function(hisData, showCount, chartOperator)
|
|
76317
76388
|
{
|
|
@@ -77278,10 +77349,11 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
77278
77349
|
{
|
|
77279
77350
|
var item=data.ChartOperator;
|
|
77280
77351
|
chartOperator={ };
|
|
77281
|
-
if (item.IsShowAll===true) chartOperator.IsShowAll=true;
|
|
77352
|
+
if (item.IsShowAll===true) chartOperator.IsShowAll=true; //全部显示
|
|
77282
77353
|
}
|
|
77283
77354
|
|
|
77284
77355
|
this.BindMainData(bindData,this.PageSize,chartOperator);
|
|
77356
|
+
this.BindKLineBreakPoint(data);
|
|
77285
77357
|
if (this.AfterBindMainData) this.AfterBindMainData("RecvMinuteHistoryData");
|
|
77286
77358
|
this.Frame.SetSizeChage(true);
|
|
77287
77359
|
|
|
@@ -78408,6 +78480,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
78408
78480
|
}
|
|
78409
78481
|
|
|
78410
78482
|
this.ClearIndexPaint();
|
|
78483
|
+
this.ClearKLineBreakPoint();
|
|
78411
78484
|
|
|
78412
78485
|
if (ChartData.IsDayPeriod(this.Period,true))
|
|
78413
78486
|
{
|
|
@@ -79842,6 +79915,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
79842
79915
|
this.AutoUpdateEvent(false,'KLineChartContainer::ChangeSymbol');
|
|
79843
79916
|
this.ClearRectSelect(true);
|
|
79844
79917
|
this.ClearCustomKLine();
|
|
79918
|
+
this.ClearKLineBreakPoint();
|
|
79845
79919
|
this.ClearKLineCaluate();
|
|
79846
79920
|
this.HideTooltip();
|
|
79847
79921
|
this.ResetScrollBar();
|
|
@@ -29358,6 +29358,32 @@ function ChartKLine()
|
|
|
29358
29358
|
Text:{ Color:g_JSChartResource.PriceGapStyple.Text.Color, Font: g_JSChartResource.PriceGapStyple.Text.Font }
|
|
29359
29359
|
};
|
|
29360
29360
|
this.AryPriceGapCache=[]; //缺口数据 { }
|
|
29361
|
+
|
|
29362
|
+
//面积图和收盘价线 断开点
|
|
29363
|
+
this.AryBreakPoint;
|
|
29364
|
+
|
|
29365
|
+
this.BuildDateTimeKey=function(item)
|
|
29366
|
+
{
|
|
29367
|
+
if (!item) return null;
|
|
29368
|
+
|
|
29369
|
+
if (!IFrameSplitOperator.IsNumber(item.Time)) return `${item.Date}`;
|
|
29370
|
+
return `${item.Date}-${item.Time}`;
|
|
29371
|
+
}
|
|
29372
|
+
|
|
29373
|
+
this.BuildBreakPoint=function()
|
|
29374
|
+
{
|
|
29375
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.AryBreakPoint)) return null;
|
|
29376
|
+
|
|
29377
|
+
var mapBreakPoint=new Map();
|
|
29378
|
+
for(var i=0;i<this.AryBreakPoint.length;++i)
|
|
29379
|
+
{
|
|
29380
|
+
var item=this.AryBreakPoint[i];
|
|
29381
|
+
var key=this.BuildDateTimeKey(item);
|
|
29382
|
+
if (key) mapBreakPoint.set(key, item);
|
|
29383
|
+
}
|
|
29384
|
+
|
|
29385
|
+
return mapBreakPoint;
|
|
29386
|
+
}
|
|
29361
29387
|
|
|
29362
29388
|
this.ReloadResource=function(resource)
|
|
29363
29389
|
{
|
|
@@ -29385,6 +29411,11 @@ function ChartKLine()
|
|
|
29385
29411
|
this.CustomKLine=null;
|
|
29386
29412
|
}
|
|
29387
29413
|
|
|
29414
|
+
this.ClearBreakPoint=function()
|
|
29415
|
+
{
|
|
29416
|
+
this.AryBreakPoint=null;
|
|
29417
|
+
}
|
|
29418
|
+
|
|
29388
29419
|
this.GetCustomKLine=function(kItem)
|
|
29389
29420
|
{
|
|
29390
29421
|
if (!this.CustomKLine) return null;
|
|
@@ -29861,6 +29892,7 @@ function ChartKLine()
|
|
|
29861
29892
|
}
|
|
29862
29893
|
|
|
29863
29894
|
var bFirstPoint=true;
|
|
29895
|
+
var drawCount=0;
|
|
29864
29896
|
this.Canvas.beginPath();
|
|
29865
29897
|
this.Canvas.strokeStyle=this.CloseLineColor;
|
|
29866
29898
|
if (IFrameSplitOperator.IsNumber(this.CloseLineWidth)) this.Canvas.lineWidth=this.CloseLineWidth;
|
|
@@ -29871,6 +29903,8 @@ function ChartKLine()
|
|
|
29871
29903
|
this.ShowRange.ShowCount=xPointCount;
|
|
29872
29904
|
this.DrawKRange.Start=this.Data.DataOffset;
|
|
29873
29905
|
|
|
29906
|
+
var mapBreakPoint=this.BuildBreakPoint(); //断点
|
|
29907
|
+
|
|
29874
29908
|
var preKItemInfo=null;
|
|
29875
29909
|
for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth),++this.ShowRange.DataCount)
|
|
29876
29910
|
{
|
|
@@ -29896,8 +29930,9 @@ function ChartKLine()
|
|
|
29896
29930
|
if (isHScreen) this.Canvas.lineTo(yClose,x);
|
|
29897
29931
|
else this.Canvas.lineTo(x,yClose);
|
|
29898
29932
|
}
|
|
29933
|
+
++drawCount;
|
|
29899
29934
|
|
|
29900
|
-
if (this.PriceGap.Enable
|
|
29935
|
+
if (this.PriceGap.Enable)
|
|
29901
29936
|
{
|
|
29902
29937
|
var yLow=this.GetYFromData(data.Low, false);
|
|
29903
29938
|
var yHigh=this.GetYFromData(data.High, false);
|
|
@@ -29914,9 +29949,23 @@ function ChartKLine()
|
|
|
29914
29949
|
|
|
29915
29950
|
preKItemInfo=kItemInfo;
|
|
29916
29951
|
}
|
|
29952
|
+
|
|
29953
|
+
//断开点
|
|
29954
|
+
if (mapBreakPoint)
|
|
29955
|
+
{
|
|
29956
|
+
var kItem=data;
|
|
29957
|
+
var key=this.BuildDateTimeKey(kItem);
|
|
29958
|
+
if (key && mapBreakPoint.has(key))
|
|
29959
|
+
{
|
|
29960
|
+
if (drawCount>0) this.Canvas.stroke();
|
|
29961
|
+
|
|
29962
|
+
bFirstPoint=true;
|
|
29963
|
+
drawCount=0;
|
|
29964
|
+
}
|
|
29965
|
+
}
|
|
29917
29966
|
}
|
|
29918
29967
|
|
|
29919
|
-
if (
|
|
29968
|
+
if (drawCount>0) this.Canvas.stroke();
|
|
29920
29969
|
}
|
|
29921
29970
|
|
|
29922
29971
|
this.DrawKBar=function() //蜡烛头
|
|
@@ -37845,7 +37894,9 @@ function ChartPartLine()
|
|
|
37845
37894
|
delete this.newMethod;
|
|
37846
37895
|
|
|
37847
37896
|
this.ClassName='ChartPartLine'; //类名
|
|
37848
|
-
this.LineWidth; //线段宽度
|
|
37897
|
+
this.LineWidth; //线段宽度
|
|
37898
|
+
this.IsDotLine=false; //虚线
|
|
37899
|
+
this.LineDash=[3,5]; //虚线设置
|
|
37849
37900
|
|
|
37850
37901
|
this.Draw=function()
|
|
37851
37902
|
{
|
|
@@ -37887,7 +37938,8 @@ function ChartPartLine()
|
|
|
37887
37938
|
|
|
37888
37939
|
this.Canvas.save();
|
|
37889
37940
|
if (this.LineWidth>0) this.Canvas.lineWidth=this.LineWidth * GetDevicePixelRatio();
|
|
37890
|
-
|
|
37941
|
+
if (this.IsDotLine) this.Canvas.setLineDash(this.LineDash); //画虚线
|
|
37942
|
+
|
|
37891
37943
|
var drawCount=0;
|
|
37892
37944
|
var lastColor;
|
|
37893
37945
|
var lastPoint={X:null,Y:null};
|
|
@@ -46598,8 +46650,8 @@ function ChartDrawSVG()
|
|
|
46598
46650
|
}
|
|
46599
46651
|
else
|
|
46600
46652
|
{
|
|
46601
|
-
if (IFrameSplitOperator.IsString(lineItem.Value))
|
|
46602
|
-
|
|
46653
|
+
if (IFrameSplitOperator.IsString(lineItem.Value)) price=this.GetKValue(kItem,lineItem.Value);
|
|
46654
|
+
else if (IFrameSplitOperator.IsNumber(lineItem.Value)) price=lineItem.Value;
|
|
46603
46655
|
|
|
46604
46656
|
if (!IFrameSplitOperator.IsNumber(price)) continue;
|
|
46605
46657
|
yPrice=this.ChartFrame.GetYFromData(price);
|
|
@@ -79091,6 +79143,16 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
79091
79143
|
if (option && option.Draw==true) this.Draw();
|
|
79092
79144
|
}
|
|
79093
79145
|
|
|
79146
|
+
this.ClearKLineBreakPoint=function(option)
|
|
79147
|
+
{
|
|
79148
|
+
var klineChart=this.ChartPaint[0];
|
|
79149
|
+
if (!klineChart) return;
|
|
79150
|
+
|
|
79151
|
+
klineChart.ClearBreakPoint();
|
|
79152
|
+
|
|
79153
|
+
if (option && option.Draw==true) this.Draw();
|
|
79154
|
+
}
|
|
79155
|
+
|
|
79094
79156
|
this.StopAutoUpdate=function()
|
|
79095
79157
|
{
|
|
79096
79158
|
this.CancelAutoUpdate();
|
|
@@ -80237,6 +80299,15 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
80237
80299
|
this.TitlePaint[0].GetEventCallback=(id)=>{ return this.GetEventCallback(id); };
|
|
80238
80300
|
}
|
|
80239
80301
|
|
|
80302
|
+
|
|
80303
|
+
this.BindKLineBreakPoint=function(data)
|
|
80304
|
+
{
|
|
80305
|
+
var klineChart=this.ChartPaint[0];
|
|
80306
|
+
if (!klineChart) return;
|
|
80307
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(data.AryBreakPoint)) return;
|
|
80308
|
+
klineChart.AryBreakPoint=data.AryBreakPoint.slice();
|
|
80309
|
+
}
|
|
80310
|
+
|
|
80240
80311
|
//绑定主图K线数据
|
|
80241
80312
|
this.BindMainData=function(hisData, showCount, chartOperator)
|
|
80242
80313
|
{
|
|
@@ -81203,10 +81274,11 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
81203
81274
|
{
|
|
81204
81275
|
var item=data.ChartOperator;
|
|
81205
81276
|
chartOperator={ };
|
|
81206
|
-
if (item.IsShowAll===true) chartOperator.IsShowAll=true;
|
|
81277
|
+
if (item.IsShowAll===true) chartOperator.IsShowAll=true; //全部显示
|
|
81207
81278
|
}
|
|
81208
81279
|
|
|
81209
81280
|
this.BindMainData(bindData,this.PageSize,chartOperator);
|
|
81281
|
+
this.BindKLineBreakPoint(data);
|
|
81210
81282
|
if (this.AfterBindMainData) this.AfterBindMainData("RecvMinuteHistoryData");
|
|
81211
81283
|
this.Frame.SetSizeChage(true);
|
|
81212
81284
|
|
|
@@ -82333,6 +82405,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
82333
82405
|
}
|
|
82334
82406
|
|
|
82335
82407
|
this.ClearIndexPaint();
|
|
82408
|
+
this.ClearKLineBreakPoint();
|
|
82336
82409
|
|
|
82337
82410
|
if (ChartData.IsDayPeriod(this.Period,true))
|
|
82338
82411
|
{
|
|
@@ -83767,6 +83840,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
83767
83840
|
this.AutoUpdateEvent(false,'KLineChartContainer::ChangeSymbol');
|
|
83768
83841
|
this.ClearRectSelect(true);
|
|
83769
83842
|
this.ClearCustomKLine();
|
|
83843
|
+
this.ClearKLineBreakPoint();
|
|
83770
83844
|
this.ClearKLineCaluate();
|
|
83771
83845
|
this.HideTooltip();
|
|
83772
83846
|
this.ResetScrollBar();
|
|
@@ -123622,7 +123696,7 @@ function ScriptIndex(name,script,args,option)
|
|
|
123622
123696
|
|
|
123623
123697
|
this.CreatePartLine=function(hqChart,windowIndex,varItem,i)
|
|
123624
123698
|
{
|
|
123625
|
-
|
|
123699
|
+
var chart=new ChartPartLine();
|
|
123626
123700
|
chart.Canvas=hqChart.Canvas;
|
|
123627
123701
|
chart.Name=varItem.Name;
|
|
123628
123702
|
chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;
|
|
@@ -123634,6 +123708,9 @@ function ScriptIndex(name,script,args,option)
|
|
|
123634
123708
|
if (IFrameSplitOperator.IsPlusNumber(width)) chart.LineWidth=width;
|
|
123635
123709
|
}
|
|
123636
123710
|
|
|
123711
|
+
if (IFrameSplitOperator.IsBool(varItem.IsDotLine)) chart.IsDotLine=varItem.IsDotLine;
|
|
123712
|
+
if (IFrameSplitOperator.IsNonEmptyArray(varItem.LineDash)) chart.LineDash=varItem.LineDash;
|
|
123713
|
+
|
|
123637
123714
|
chart.Data.Data=varItem.Draw.DrawData;
|
|
123638
123715
|
|
|
123639
123716
|
this.SetChartIndexName(chart);
|
|
@@ -125370,7 +125447,7 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
125370
125447
|
{
|
|
125371
125448
|
var overlayIndex=this.OverlayIndex;
|
|
125372
125449
|
var frame=overlayIndex.Frame;
|
|
125373
|
-
|
|
125450
|
+
var chart=new ChartPartLine();
|
|
125374
125451
|
chart.Canvas=hqChart.Canvas;
|
|
125375
125452
|
chart.Name=varItem.Name;
|
|
125376
125453
|
chart.ChartBorder=frame.Frame.ChartBorder;
|
|
@@ -125383,6 +125460,9 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
125383
125460
|
if (IFrameSplitOperator.IsPlusNumber(width)) chart.LineWidth=width;
|
|
125384
125461
|
}
|
|
125385
125462
|
|
|
125463
|
+
if (IFrameSplitOperator.IsBool(varItem.IsDotLine)) chart.IsDotLine=varItem.IsDotLine;
|
|
125464
|
+
if (IFrameSplitOperator.IsNonEmptyArray(varItem.LineDash)) chart.LineDash=varItem.LineDash;
|
|
125465
|
+
|
|
125386
125466
|
chart.Data.Data=varItem.Draw.DrawData;
|
|
125387
125467
|
this.SetChartIndexName(chart);
|
|
125388
125468
|
frame.ChartPaint.push(chart);
|
|
@@ -143086,7 +143166,7 @@ function ScrollBarBGChart()
|
|
|
143086
143166
|
|
|
143087
143167
|
|
|
143088
143168
|
|
|
143089
|
-
var HQCHART_VERSION="1.1.
|
|
143169
|
+
var HQCHART_VERSION="1.1.14387";
|
|
143090
143170
|
|
|
143091
143171
|
function PrintHQChartVersion()
|
|
143092
143172
|
{
|
|
@@ -29402,6 +29402,32 @@ function ChartKLine()
|
|
|
29402
29402
|
Text:{ Color:g_JSChartResource.PriceGapStyple.Text.Color, Font: g_JSChartResource.PriceGapStyple.Text.Font }
|
|
29403
29403
|
};
|
|
29404
29404
|
this.AryPriceGapCache=[]; //缺口数据 { }
|
|
29405
|
+
|
|
29406
|
+
//面积图和收盘价线 断开点
|
|
29407
|
+
this.AryBreakPoint;
|
|
29408
|
+
|
|
29409
|
+
this.BuildDateTimeKey=function(item)
|
|
29410
|
+
{
|
|
29411
|
+
if (!item) return null;
|
|
29412
|
+
|
|
29413
|
+
if (!IFrameSplitOperator.IsNumber(item.Time)) return `${item.Date}`;
|
|
29414
|
+
return `${item.Date}-${item.Time}`;
|
|
29415
|
+
}
|
|
29416
|
+
|
|
29417
|
+
this.BuildBreakPoint=function()
|
|
29418
|
+
{
|
|
29419
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.AryBreakPoint)) return null;
|
|
29420
|
+
|
|
29421
|
+
var mapBreakPoint=new Map();
|
|
29422
|
+
for(var i=0;i<this.AryBreakPoint.length;++i)
|
|
29423
|
+
{
|
|
29424
|
+
var item=this.AryBreakPoint[i];
|
|
29425
|
+
var key=this.BuildDateTimeKey(item);
|
|
29426
|
+
if (key) mapBreakPoint.set(key, item);
|
|
29427
|
+
}
|
|
29428
|
+
|
|
29429
|
+
return mapBreakPoint;
|
|
29430
|
+
}
|
|
29405
29431
|
|
|
29406
29432
|
this.ReloadResource=function(resource)
|
|
29407
29433
|
{
|
|
@@ -29429,6 +29455,11 @@ function ChartKLine()
|
|
|
29429
29455
|
this.CustomKLine=null;
|
|
29430
29456
|
}
|
|
29431
29457
|
|
|
29458
|
+
this.ClearBreakPoint=function()
|
|
29459
|
+
{
|
|
29460
|
+
this.AryBreakPoint=null;
|
|
29461
|
+
}
|
|
29462
|
+
|
|
29432
29463
|
this.GetCustomKLine=function(kItem)
|
|
29433
29464
|
{
|
|
29434
29465
|
if (!this.CustomKLine) return null;
|
|
@@ -29905,6 +29936,7 @@ function ChartKLine()
|
|
|
29905
29936
|
}
|
|
29906
29937
|
|
|
29907
29938
|
var bFirstPoint=true;
|
|
29939
|
+
var drawCount=0;
|
|
29908
29940
|
this.Canvas.beginPath();
|
|
29909
29941
|
this.Canvas.strokeStyle=this.CloseLineColor;
|
|
29910
29942
|
if (IFrameSplitOperator.IsNumber(this.CloseLineWidth)) this.Canvas.lineWidth=this.CloseLineWidth;
|
|
@@ -29915,6 +29947,8 @@ function ChartKLine()
|
|
|
29915
29947
|
this.ShowRange.ShowCount=xPointCount;
|
|
29916
29948
|
this.DrawKRange.Start=this.Data.DataOffset;
|
|
29917
29949
|
|
|
29950
|
+
var mapBreakPoint=this.BuildBreakPoint(); //断点
|
|
29951
|
+
|
|
29918
29952
|
var preKItemInfo=null;
|
|
29919
29953
|
for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth),++this.ShowRange.DataCount)
|
|
29920
29954
|
{
|
|
@@ -29940,8 +29974,9 @@ function ChartKLine()
|
|
|
29940
29974
|
if (isHScreen) this.Canvas.lineTo(yClose,x);
|
|
29941
29975
|
else this.Canvas.lineTo(x,yClose);
|
|
29942
29976
|
}
|
|
29977
|
+
++drawCount;
|
|
29943
29978
|
|
|
29944
|
-
if (this.PriceGap.Enable
|
|
29979
|
+
if (this.PriceGap.Enable)
|
|
29945
29980
|
{
|
|
29946
29981
|
var yLow=this.GetYFromData(data.Low, false);
|
|
29947
29982
|
var yHigh=this.GetYFromData(data.High, false);
|
|
@@ -29958,9 +29993,23 @@ function ChartKLine()
|
|
|
29958
29993
|
|
|
29959
29994
|
preKItemInfo=kItemInfo;
|
|
29960
29995
|
}
|
|
29996
|
+
|
|
29997
|
+
//断开点
|
|
29998
|
+
if (mapBreakPoint)
|
|
29999
|
+
{
|
|
30000
|
+
var kItem=data;
|
|
30001
|
+
var key=this.BuildDateTimeKey(kItem);
|
|
30002
|
+
if (key && mapBreakPoint.has(key))
|
|
30003
|
+
{
|
|
30004
|
+
if (drawCount>0) this.Canvas.stroke();
|
|
30005
|
+
|
|
30006
|
+
bFirstPoint=true;
|
|
30007
|
+
drawCount=0;
|
|
30008
|
+
}
|
|
30009
|
+
}
|
|
29961
30010
|
}
|
|
29962
30011
|
|
|
29963
|
-
if (
|
|
30012
|
+
if (drawCount>0) this.Canvas.stroke();
|
|
29964
30013
|
}
|
|
29965
30014
|
|
|
29966
30015
|
this.DrawKBar=function() //蜡烛头
|
|
@@ -37889,7 +37938,9 @@ function ChartPartLine()
|
|
|
37889
37938
|
delete this.newMethod;
|
|
37890
37939
|
|
|
37891
37940
|
this.ClassName='ChartPartLine'; //类名
|
|
37892
|
-
this.LineWidth; //线段宽度
|
|
37941
|
+
this.LineWidth; //线段宽度
|
|
37942
|
+
this.IsDotLine=false; //虚线
|
|
37943
|
+
this.LineDash=[3,5]; //虚线设置
|
|
37893
37944
|
|
|
37894
37945
|
this.Draw=function()
|
|
37895
37946
|
{
|
|
@@ -37931,7 +37982,8 @@ function ChartPartLine()
|
|
|
37931
37982
|
|
|
37932
37983
|
this.Canvas.save();
|
|
37933
37984
|
if (this.LineWidth>0) this.Canvas.lineWidth=this.LineWidth * GetDevicePixelRatio();
|
|
37934
|
-
|
|
37985
|
+
if (this.IsDotLine) this.Canvas.setLineDash(this.LineDash); //画虚线
|
|
37986
|
+
|
|
37935
37987
|
var drawCount=0;
|
|
37936
37988
|
var lastColor;
|
|
37937
37989
|
var lastPoint={X:null,Y:null};
|
|
@@ -46642,8 +46694,8 @@ function ChartDrawSVG()
|
|
|
46642
46694
|
}
|
|
46643
46695
|
else
|
|
46644
46696
|
{
|
|
46645
|
-
if (IFrameSplitOperator.IsString(lineItem.Value))
|
|
46646
|
-
|
|
46697
|
+
if (IFrameSplitOperator.IsString(lineItem.Value)) price=this.GetKValue(kItem,lineItem.Value);
|
|
46698
|
+
else if (IFrameSplitOperator.IsNumber(lineItem.Value)) price=lineItem.Value;
|
|
46647
46699
|
|
|
46648
46700
|
if (!IFrameSplitOperator.IsNumber(price)) continue;
|
|
46649
46701
|
yPrice=this.ChartFrame.GetYFromData(price);
|
|
@@ -79135,6 +79187,16 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
79135
79187
|
if (option && option.Draw==true) this.Draw();
|
|
79136
79188
|
}
|
|
79137
79189
|
|
|
79190
|
+
this.ClearKLineBreakPoint=function(option)
|
|
79191
|
+
{
|
|
79192
|
+
var klineChart=this.ChartPaint[0];
|
|
79193
|
+
if (!klineChart) return;
|
|
79194
|
+
|
|
79195
|
+
klineChart.ClearBreakPoint();
|
|
79196
|
+
|
|
79197
|
+
if (option && option.Draw==true) this.Draw();
|
|
79198
|
+
}
|
|
79199
|
+
|
|
79138
79200
|
this.StopAutoUpdate=function()
|
|
79139
79201
|
{
|
|
79140
79202
|
this.CancelAutoUpdate();
|
|
@@ -80281,6 +80343,15 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
80281
80343
|
this.TitlePaint[0].GetEventCallback=(id)=>{ return this.GetEventCallback(id); };
|
|
80282
80344
|
}
|
|
80283
80345
|
|
|
80346
|
+
|
|
80347
|
+
this.BindKLineBreakPoint=function(data)
|
|
80348
|
+
{
|
|
80349
|
+
var klineChart=this.ChartPaint[0];
|
|
80350
|
+
if (!klineChart) return;
|
|
80351
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(data.AryBreakPoint)) return;
|
|
80352
|
+
klineChart.AryBreakPoint=data.AryBreakPoint.slice();
|
|
80353
|
+
}
|
|
80354
|
+
|
|
80284
80355
|
//绑定主图K线数据
|
|
80285
80356
|
this.BindMainData=function(hisData, showCount, chartOperator)
|
|
80286
80357
|
{
|
|
@@ -81247,10 +81318,11 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
81247
81318
|
{
|
|
81248
81319
|
var item=data.ChartOperator;
|
|
81249
81320
|
chartOperator={ };
|
|
81250
|
-
if (item.IsShowAll===true) chartOperator.IsShowAll=true;
|
|
81321
|
+
if (item.IsShowAll===true) chartOperator.IsShowAll=true; //全部显示
|
|
81251
81322
|
}
|
|
81252
81323
|
|
|
81253
81324
|
this.BindMainData(bindData,this.PageSize,chartOperator);
|
|
81325
|
+
this.BindKLineBreakPoint(data);
|
|
81254
81326
|
if (this.AfterBindMainData) this.AfterBindMainData("RecvMinuteHistoryData");
|
|
81255
81327
|
this.Frame.SetSizeChage(true);
|
|
81256
81328
|
|
|
@@ -82377,6 +82449,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
82377
82449
|
}
|
|
82378
82450
|
|
|
82379
82451
|
this.ClearIndexPaint();
|
|
82452
|
+
this.ClearKLineBreakPoint();
|
|
82380
82453
|
|
|
82381
82454
|
if (ChartData.IsDayPeriod(this.Period,true))
|
|
82382
82455
|
{
|
|
@@ -83811,6 +83884,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
83811
83884
|
this.AutoUpdateEvent(false,'KLineChartContainer::ChangeSymbol');
|
|
83812
83885
|
this.ClearRectSelect(true);
|
|
83813
83886
|
this.ClearCustomKLine();
|
|
83887
|
+
this.ClearKLineBreakPoint();
|
|
83814
83888
|
this.ClearKLineCaluate();
|
|
83815
83889
|
this.HideTooltip();
|
|
83816
83890
|
this.ResetScrollBar();
|
|
@@ -123666,7 +123740,7 @@ function ScriptIndex(name,script,args,option)
|
|
|
123666
123740
|
|
|
123667
123741
|
this.CreatePartLine=function(hqChart,windowIndex,varItem,i)
|
|
123668
123742
|
{
|
|
123669
|
-
|
|
123743
|
+
var chart=new ChartPartLine();
|
|
123670
123744
|
chart.Canvas=hqChart.Canvas;
|
|
123671
123745
|
chart.Name=varItem.Name;
|
|
123672
123746
|
chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;
|
|
@@ -123678,6 +123752,9 @@ function ScriptIndex(name,script,args,option)
|
|
|
123678
123752
|
if (IFrameSplitOperator.IsPlusNumber(width)) chart.LineWidth=width;
|
|
123679
123753
|
}
|
|
123680
123754
|
|
|
123755
|
+
if (IFrameSplitOperator.IsBool(varItem.IsDotLine)) chart.IsDotLine=varItem.IsDotLine;
|
|
123756
|
+
if (IFrameSplitOperator.IsNonEmptyArray(varItem.LineDash)) chart.LineDash=varItem.LineDash;
|
|
123757
|
+
|
|
123681
123758
|
chart.Data.Data=varItem.Draw.DrawData;
|
|
123682
123759
|
|
|
123683
123760
|
this.SetChartIndexName(chart);
|
|
@@ -125414,7 +125491,7 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
125414
125491
|
{
|
|
125415
125492
|
var overlayIndex=this.OverlayIndex;
|
|
125416
125493
|
var frame=overlayIndex.Frame;
|
|
125417
|
-
|
|
125494
|
+
var chart=new ChartPartLine();
|
|
125418
125495
|
chart.Canvas=hqChart.Canvas;
|
|
125419
125496
|
chart.Name=varItem.Name;
|
|
125420
125497
|
chart.ChartBorder=frame.Frame.ChartBorder;
|
|
@@ -125427,6 +125504,9 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
125427
125504
|
if (IFrameSplitOperator.IsPlusNumber(width)) chart.LineWidth=width;
|
|
125428
125505
|
}
|
|
125429
125506
|
|
|
125507
|
+
if (IFrameSplitOperator.IsBool(varItem.IsDotLine)) chart.IsDotLine=varItem.IsDotLine;
|
|
125508
|
+
if (IFrameSplitOperator.IsNonEmptyArray(varItem.LineDash)) chart.LineDash=varItem.LineDash;
|
|
125509
|
+
|
|
125430
125510
|
chart.Data.Data=varItem.Draw.DrawData;
|
|
125431
125511
|
this.SetChartIndexName(chart);
|
|
125432
125512
|
frame.ChartPaint.push(chart);
|
|
@@ -152881,7 +152961,7 @@ function HQChartScriptWorker()
|
|
|
152881
152961
|
|
|
152882
152962
|
|
|
152883
152963
|
|
|
152884
|
-
var HQCHART_VERSION="1.1.
|
|
152964
|
+
var HQCHART_VERSION="1.1.14387";
|
|
152885
152965
|
|
|
152886
152966
|
function PrintHQChartVersion()
|
|
152887
152967
|
{
|