hqchart 1.1.14240 → 1.1.14245

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.
@@ -2170,7 +2170,7 @@ this.OnChangeCorssCursorStatus=function(data,obj){if(data.Type==1){if(!data.IsSh
2170
2170
  {var periodData=bindData.GetPeriodData(bindData.Period);bindData.Data=periodData;}}}else if(this.IsMinuteContainer())//分时图
2171
2171
  {var bindData=this.SourceData;}else{return;}for(var i=0;i<aryID.length;++i){this.BindIndexData(aryID[i],bindData);}this.UpdataDataoffset();//更新数据偏移
2172
2172
  this.UpdateFrameMaxMin();//调整坐标最大 最小值
2173
- this.Draw();};}function GetDevicePixelRatio(){if(typeof window=='undefined')return 1;return window.devicePixelRatio||1;}function GetFontHeight(context,font,word){if(!context)return null;if(font)context.font=font;var text='擎';if(IFrameSplitOperator.IsString(word))text=word;var fontInfo=context.measureText(text);var textHeight=fontInfo.fontBoundingBoxAscent+fontInfo.fontBoundingBoxDescent;if(!IFrameSplitOperator.IsNumber(textHeight))textHeight=fontInfo.width+2*GetDevicePixelRatio();return textHeight;}function IsPhoneWeb(){var userAgentInfo=navigator.userAgent;var Agents=new Array("Android","iPhone","SymbianOS","Windows Phone","iPad","iPod");for(var v=0;v<Agents.length;v++){if(userAgentInfo.indexOf(Agents[v])>0)return true;}return false;}function OnKeyDown(e)//键盘事件
2173
+ this.Draw();};this.GetKData=function(){return null;};}function GetDevicePixelRatio(){if(typeof window=='undefined')return 1;return window.devicePixelRatio||1;}function GetFontHeight(context,font,word){if(!context)return null;if(font)context.font=font;var text='擎';if(IFrameSplitOperator.IsString(word))text=word;var fontInfo=context.measureText(text);var textHeight=fontInfo.fontBoundingBoxAscent+fontInfo.fontBoundingBoxDescent;if(!IFrameSplitOperator.IsNumber(textHeight))textHeight=fontInfo.width+2*GetDevicePixelRatio();return textHeight;}function IsPhoneWeb(){var userAgentInfo=navigator.userAgent;var Agents=new Array("Android","iPhone","SymbianOS","Windows Phone","iPad","iPod");for(var v=0;v<Agents.length;v++){if(userAgentInfo.indexOf(Agents[v])>0)return true;}return false;}function OnKeyDown(e)//键盘事件
2174
2174
  {if(this.JSChartContainer&&this.JSChartContainer.OnKeyDown)this.JSChartContainer.OnKeyDown(e);}function OnWheel(e)//上下滚动事件
2175
2175
  {if(this.JSChartContainer&&this.JSChartContainer.OnWheel)this.JSChartContainer.OnWheel(e);}function ToFixed(number,precision){var b=1;if(isNaN(number))return number;if(number<0)b=-1;var multiplier=Math.pow(10,precision);var value=Math.round(Math.abs(number)*multiplier)/multiplier*b;if(/^(\d+(?:\.\d+)?)(e)([\-]?\d+)$/.test(value))var s=value.toFixed2(precision);else var s=value.toString();var rs=s.indexOf('.');if(rs<0&&precision>0){rs=s.length;s+='.';}while(s.length<=rs+precision){s+='0';}return s;}Number.prototype.toFixed2=Number.prototype.toFixed;//备份下老的
2176
2176
  Number.prototype.toFixed=function(precision){return ToFixed(this,precision);};function Guid(){function S4(){return((1+Math.random())*0x10000|0).toString(16).substring(1);}return"guid"+(S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4()+S4());}function GetScrollPosition(){var scrollPos={};var scrollTop=0;var scrollLeft=0;if(document.documentElement&&(document.documentElement.scrollTop||document.documentElement.scrollLeft)){scrollTop=document.documentElement.scrollTop;scrollLeft=document.documentElement.scrollLeft;}else if(document.body){scrollTop=document.body.scrollTop;scrollLeft=document.body.scrollLeft;}scrollPos.Top=scrollTop;scrollPos.Left=scrollLeft;return scrollPos;}//修正线段有毛刺
@@ -3874,15 +3874,15 @@ this.LineWidth;//线段宽度
3874
3874
  this.DrawType=0;//画图方式 0=无效数平滑 1=无效数不画断开
3875
3875
  this.IsDotLine=false;//虚线
3876
3876
  this.LineDash=g_JSChartResource.DOTLINE.LineDash;this.BreakPoint;//断开的点索引 Set();
3877
- this.DrawSelectedStatus=this.DrawLinePoint;this.PtInChart=this.PtInLine;this.ExportData=this.ExportArrayData;this.GetItemData=this.GetArrayItemData;this.Draw=function(){if(!this.IsShow||this.ChartFrame.IsMinSize||!this.IsVisible)return;if(this.IsShowIndexTitleOnly())return;if(this.IsHideScriptIndex())return;if(this.NotSupportMessage){this.DrawNotSupportmessage();return;}if(!this.Data||!this.Data.Data)return;switch(this.DrawType){case 0:return this.DrawLine();case 1:return this.DrawStraightLine();case 2:return this.DrawSectionLine();//分段线
3877
+ this.AryBreakPoint;this.DrawSelectedStatus=this.DrawLinePoint;this.PtInChart=this.PtInLine;this.ExportData=this.ExportArrayData;this.GetItemData=this.GetArrayItemData;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.BuildDateTimeKey=function(item){if(!item)return null;if(!IFrameSplitOperator.IsNumber(item.Time))return''+item.Date;return item.Date+'-'+item.Time;};this.Draw=function(){if(!this.IsShow||this.ChartFrame.IsMinSize||!this.IsVisible)return;if(this.IsShowIndexTitleOnly())return;if(this.IsHideScriptIndex())return;if(this.NotSupportMessage){this.DrawNotSupportmessage();return;}if(!this.Data||!this.Data.Data)return;switch(this.DrawType){case 0:return this.DrawLine();case 1:return this.DrawStraightLine();case 2:return this.DrawSectionLine();//分段线
3878
3878
  }};this.DrawLine=function(){var bHScreen=this.ChartFrame.IsHScreen===true;var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var chartright=this.ChartBorder.GetRight();if(bHScreen)chartright=this.ChartBorder.GetBottom();var xPointCount=this.ChartFrame.XPointCount;this.Canvas.save();if(this.LineWidth>0)this.Canvas.lineWidth=this.LineWidth*GetDevicePixelRatio();if(this.IsDotLine)this.Canvas.setLineDash(this.LineDash);//画虚线
3879
3879
  var bFirstPoint=true;var drawCount=0;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var value=this.Data.Data[i];if(value==null)continue;var x=this.ChartFrame.GetXFromIndex(j);var y=this.GetYFromData(value);if(x>chartright)break;if(bFirstPoint){this.Canvas.strokeStyle=this.Color;this.Canvas.beginPath();if(bHScreen)this.Canvas.moveTo(y,x);//横屏坐标轴对调
3880
3880
  else this.Canvas.moveTo(x,y);bFirstPoint=false;}else{if(bHScreen)this.Canvas.lineTo(y,x);else this.Canvas.lineTo(x,y);}++drawCount;}if(drawCount>0)this.Canvas.stroke();this.Canvas.restore();};//无效数不画
3881
- this.DrawStraightLine=function(){var bHScreen=this.ChartFrame.IsHScreen===true;var isMinute=this.IsMinuteFrame();var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var xPointCount=this.ChartFrame.XPointCount;if(bHScreen){var border=this.ChartBorder.GetHScreenBorder();var chartright=border.BottomEx;var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;}else{var border=this.ChartBorder.GetBorder();var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;}var lockRect=this.GetLockRect();if(lockRect){if(bHScreen)chartright=lockRect.Top;else chartright=lockRect.Left;}this.Canvas.save();this.ClipClient(bHScreen);if(this.LineWidth>0)this.Canvas.lineWidth=this.LineWidth*GetDevicePixelRatio();this.Canvas.strokeStyle=this.Color;if(this.IsDotLine)this.Canvas.setLineDash(this.LineDash);//画虚线
3881
+ this.DrawStraightLine=function(){var bHScreen=this.ChartFrame.IsHScreen===true;var isMinute=this.IsMinuteFrame();var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var xPointCount=this.ChartFrame.XPointCount;var mapBreakPoint=this.BuildBreakPoint();if(bHScreen){var border=this.ChartBorder.GetHScreenBorder();var chartright=border.BottomEx;var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;}else{var border=this.ChartBorder.GetBorder();var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;}var lockRect=this.GetLockRect();if(lockRect){if(bHScreen)chartright=lockRect.Top;else chartright=lockRect.Left;}this.Canvas.save();this.ClipClient(bHScreen);if(this.LineWidth>0)this.Canvas.lineWidth=this.LineWidth*GetDevicePixelRatio();this.Canvas.strokeStyle=this.Color;if(this.IsDotLine)this.Canvas.setLineDash(this.LineDash);//画虚线
3882
3882
  var bFirstPoint=true;var ptFirst=null;;//第1个点
3883
- var drawCount=0;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth)//for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
3884
- {var value=this.Data.Data[i];if(value==null){if(drawCount>0)this.Canvas.stroke();bFirstPoint=true;drawCount=0;ptFirst=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.GetYFromData(value,false);if(x>chartright)break;if(bFirstPoint){this.Canvas.beginPath();if(bHScreen)this.Canvas.moveTo(y,x);//横屏坐标轴对调
3885
- else this.Canvas.moveTo(x,y);bFirstPoint=false;ptFirst={X:x,Y:y};}else{if(bHScreen)this.Canvas.lineTo(y,x);else this.Canvas.lineTo(x,y);}++drawCount;}if(drawCount>0){if(drawCount==1&&ptFirst)//如果只有1个点, 画一个像素的横线
3883
+ var drawCount=0;var kData=null;if(this.HQChart)kData=this.HQChart.GetKData();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){if(drawCount>0)this.Canvas.stroke();bFirstPoint=true;drawCount=0;ptFirst=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.GetYFromData(value,false);if(x>chartright)break;if(bFirstPoint){this.Canvas.beginPath();if(bHScreen)this.Canvas.moveTo(y,x);//横屏坐标轴对调
3884
+ else this.Canvas.moveTo(x,y);bFirstPoint=false;ptFirst={X:x,Y:y};}else{if(bHScreen)this.Canvas.lineTo(y,x);else this.Canvas.lineTo(x,y);}++drawCount;//断开点
3885
+ if(mapBreakPoint&&kData&&kData.Data){var kItem=kData.Data[i];var key=this.BuildDateTimeKey(kItem);if(key&&mapBreakPoint.has(key)){if(drawCount>0)this.Canvas.stroke();bFirstPoint=true;drawCount=0;}}}if(drawCount>0){if(drawCount==1&&ptFirst)//如果只有1个点, 画一个像素的横线
3886
3886
  {if(bHScreen)this.Canvas.lineTo(ptFirst.Y,ptFirst.X+1*GetDevicePixelRatio());else this.Canvas.lineTo(ptFirst.X+1*GetDevicePixelRatio(),ptFirst.Y);}this.Canvas.stroke();}this.Canvas.restore();};//分段线
3887
3887
  this.DrawSectionLine=function(){var bHScreen=this.ChartFrame.IsHScreen===true;var isMinute=this.IsMinuteFrame();var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var xPointCount=this.ChartFrame.XPointCount;if(bHScreen){var border=this.ChartBorder.GetHScreenBorder();var chartright=border.BottomEx;var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;}else{var border=this.ChartBorder.GetBorder();var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;}var lockRect=this.GetLockRect();if(lockRect){if(bHScreen)chartright=lockRect.Top;else chartright=lockRect.Left;}this.Canvas.save();this.ClipClient(bHScreen);if(this.LineWidth>0)this.Canvas.lineWidth=this.LineWidth*GetDevicePixelRatio();this.Canvas.strokeStyle=this.Color;if(this.IsDotLine)this.Canvas.setLineDash(this.LineDash);//画虚线
3888
3888
  var bFirstPoint=true;var ptFirst=null;;//第1个点
@@ -7752,7 +7752,7 @@ if(!IFrameSplitOperator.IsNonEmptyArray(hisData.Data))return false;var kItem=his
7752
7752
  ClientPos:this.ChartCorssCursor.ClientPos,//位置
7753
7753
  IsShowCorss:this.ChartCorssCursor.IsShowCorss,//是否显示十字线
7754
7754
  KItem:kItem,Symbol:this.Symbol,Name:this.Name,LastValue:this.ChartCorssCursor.LastValue};this.DialogTooltip.Update(sendData);return true;};this.DrawSelectRectDialog=function(e){if(!this.DialogSelectRect)return;this.UpdateSelectRectDialog(e);};this.UpdateSelectRectDialog=function(e){if(!this.DialogSelectRect)return false;var data=e.data;//区间统计数据
7755
- var x,y;if(data&&IFrameSplitOperator.IsNumber(data.X)&&IFrameSplitOperator.IsNumber(data.Y)){var pixelRatio=GetDevicePixelRatio();var rtClient=this.UIElement.getBoundingClientRect();var rtScroll=GetScrollPosition();x=data.X;y=data.Y;x+=rtClient.left+rtScroll.Left;y+=rtClient.top+rtScroll.Top;}var sendData={Symbol:this.Symbol,Name:this.Name,SelectData:data.SelectData,X:x,Y:y,e:e};this.DialogSelectRect.Update(sendData);};this.UpdateHQFloatTooltip=function(kData){if(!this.FloatTooltip)return;if(!this.FloatTooltip.IsShow())return;if(!kData||!IFrameSplitOperator.IsNonEmptyArray(kData.Data))return;var lastItem=kData.Data[kData.Data.length-1];if(!lastItem)return;var dataID={Symbol:kData.Symbol,Date:lastItem.Date,Time:lastItem.Time};if(!this.FloatTooltip.IsEqualHQID(dataID))return;var sendData={Data:lastItem,Symbol:this.Symbol,Name:this.Name,DataType:2};this.FloatTooltip.Update(sendData);};}//API 返回数据 转化为array[]
7755
+ var x,y;if(data&&IFrameSplitOperator.IsNumber(data.X)&&IFrameSplitOperator.IsNumber(data.Y)){var pixelRatio=GetDevicePixelRatio();var rtClient=this.UIElement.getBoundingClientRect();var rtScroll=GetScrollPosition();x=data.X;y=data.Y;x+=rtClient.left+rtScroll.Left;y+=rtClient.top+rtScroll.Top;}var sendData={Symbol:this.Symbol,Name:this.Name,SelectData:data.SelectData,X:x,Y:y,e:e};this.DialogSelectRect.Update(sendData);};this.UpdateHQFloatTooltip=function(kData){if(!this.FloatTooltip)return;if(!this.FloatTooltip.IsShow())return;if(!kData||!IFrameSplitOperator.IsNonEmptyArray(kData.Data))return;var lastItem=kData.Data[kData.Data.length-1];if(!lastItem)return;var dataID={Symbol:kData.Symbol,Date:lastItem.Date,Time:lastItem.Time};if(!this.FloatTooltip.IsEqualHQID(dataID))return;var sendData={Data:lastItem,Symbol:this.Symbol,Name:this.Name,DataType:2};this.FloatTooltip.Update(sendData);};this.GetKData=function(){if(!this.ChartPaint[0])return null;var data=this.ChartPaint[0].Data;if(!data)return null;return data;};}//API 返回数据 转化为array[]
7756
7756
  KLineChartContainer.JsonDataToHistoryData=function(data){var aryDayData=[];if(!data.data)return aryDayData;var upperSymbol=null;if(data.symbol)upperSymbol=data.symbol.toUpperCase();var isFutures=false;//是否是期货
7757
7757
  if(upperSymbol)isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol);var list=data.data;var date=0,yclose=1,open=2,high=3,low=4,close=5,vol=6,amount=7,position=8;var fclose=9,yfclose=10;//结算价, 前结算价
7758
7758
  var bfactor=11,afactor=12;//前, 后复权因子
@@ -8345,7 +8345,7 @@ if(this.ChartCorssCursor.ClientPos>=0){var titlePaint=this.TitlePaint[0];if(titl
8345
8345
  {if(!this.SourceData||!IFrameSplitOperator.IsNonEmptyArray(this.SourceData.Data))return false;var minuteData=this.SourceData.Data[this.SourceData.Data.length-1];var dataID={Symbol:this.Symbol,Date:minuteData.Date,Time:minuteData.Time};if(!this.DialogTooltip.IsEqualDataID(dataID))return false;minuteItem={Type:0,Data:minuteData};dataType=2;}var sendData={DataType:dataType,ClientPos:this.ChartCorssCursor.ClientPos,//位置
8346
8346
  IsShowCorss:this.ChartCorssCursor.IsShowCorss,//是否显示十字线
8347
8347
  MinItem:minuteItem,Symbol:this.Symbol,Name:this.Name,LastValue:this.ChartCorssCursor.LastValue};this.DialogTooltip.Update(sendData);return true;};this.DrawSelectRectDialog=function(e){if(!this.DialogSelectRect)return;this.UpdateSelectRectDialog(e);};this.UpdateSelectRectDialog=function(e){if(!this.DialogSelectRect)return false;var data=e.data;//区间统计数据
8348
- var x,y;if(data&&IFrameSplitOperator.IsNumber(data.X)&&IFrameSplitOperator.IsNumber(data.Y)){var pixelRatio=GetDevicePixelRatio();var rtClient=this.UIElement.getBoundingClientRect();var rtScroll=GetScrollPosition();x=data.X;y=data.Y;x+=rtClient.left+rtScroll.Left;y+=rtClient.top+rtScroll.Top;}var sendData={Symbol:this.Symbol,Name:this.Name,SelectData:data.SelectData,X:x,Y:y,e:e};this.DialogSelectRect.Update(sendData);};}//盘前数据
8348
+ var x,y;if(data&&IFrameSplitOperator.IsNumber(data.X)&&IFrameSplitOperator.IsNumber(data.Y)){var pixelRatio=GetDevicePixelRatio();var rtClient=this.UIElement.getBoundingClientRect();var rtScroll=GetScrollPosition();x=data.X;y=data.Y;x+=rtClient.left+rtScroll.Left;y+=rtClient.top+rtScroll.Top;}var sendData={Symbol:this.Symbol,Name:this.Name,SelectData:data.SelectData,X:x,Y:y,e:e};this.DialogSelectRect.Update(sendData);};this.GetKData=function(){if(!this.SourceData)return null;var data=this.SourceData;if(!data)return null;return data;};}//盘前数据
8349
8349
  MinuteChartContainer.JsonDataToBeforeOpenData=function(data){var symbol=data.stock[0].symbol;var upperSymbol=symbol.toUpperCase();var isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);var yClose=data.stock[0].yclose;var preClose=data.stock[0].yclose;//前一个数据价格
8350
8350
  var stockData=data.stock[0];var date=stockData.date;//日期
8351
8351
  var beforeOpenData={Data:[],TotalCount:15,Ver:1.0,Date:date};var extendDataIndex=JSCHART_DATA_FIELD_ID.MINUTE_BEFOREOPEN_EXTENDDATA;//扩展数据序号
@@ -11442,9 +11442,9 @@ this.SetChartIndexName=function(chart){if(this.Name)chart.IndexName=this.Name;el
11442
11442
  };//设置标题数据
11443
11443
  this.SetTitleData=function(titleData,chart){titleData.ChartClassName=chart.ClassName;titleData.IsVisible=chart.IsVisible;};//自定义图形配色
11444
11444
  this.ReloadChartResource=function(hqChart,windowIndex,chart){var event=hqChart.GetEventCallback(JSCHART_EVENT_ID.ON_RELOAD_INDEX_CHART_RESOURCE);//指标计算完成回调
11445
- if(!event||!event.Callback)return;var sendData={Chart:chart,IndexName:this.Name,IndexID:this.ID,HQChart:hqChart,WindowIndex:windowIndex};event.Callback(event,sendData,this);};this.CreateLine=function(hqChart,windowIndex,varItem,id,lineType){if(lineType==7)var line=new ChartStepLine();else var line=new ChartLine();line.Canvas=hqChart.Canvas;line.DrawType=1;line.Name=varItem.Name;line.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;line.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;line.Identify=this.Guid;if(varItem.Color)line.Color=this.GetColor(varItem.Color);else line.Color=this.GetDefaultColor(id);if(lineType==8){line.DrawType=2;line.BreakPoint=varItem.BreakPoint;}if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)line.LineWidth=width;}if(varItem.IsDotLine){line.IsDotLine=true;//虚线
11445
+ if(!event||!event.Callback)return;var sendData={Chart:chart,IndexName:this.Name,IndexID:this.ID,HQChart:hqChart,WindowIndex:windowIndex};event.Callback(event,sendData,this);};this.CreateLine=function(hqChart,windowIndex,varItem,id,lineType){if(lineType==7)var line=new ChartStepLine();else var line=new ChartLine();line.Canvas=hqChart.Canvas;line.DrawType=1;line.Name=varItem.Name;line.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;line.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;line.Identify=this.Guid;line.HQChart=hqChart;if(varItem.Color)line.Color=this.GetColor(varItem.Color);else line.Color=this.GetDefaultColor(id);if(lineType==8){line.DrawType=2;line.BreakPoint=varItem.BreakPoint;}if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)line.LineWidth=width;}if(varItem.IsDotLine){line.IsDotLine=true;//虚线
11446
11446
  line.LineDash=g_JSChartResource.DOTLINE.LineDash.slice();}//虚线设置
11447
- if(IFrameSplitOperator.IsNonEmptyArray(varItem.LineDash))line.LineDash=varItem.LineDash;if(varItem.IsShow==false)line.IsShow=false;var titleIndex=windowIndex+1;line.Data.Data=varItem.Data;this.ReloadChartResource(hqChart,windowIndex,line);if(varItem.IsShowTitle===false)//NOTEXT 不绘制标题
11447
+ if(IFrameSplitOperator.IsNonEmptyArray(varItem.LineDash))line.LineDash=varItem.LineDash;if(IFrameSplitOperator.IsBool(varItem.IsShow))line.IsShow=varItem.IsShow;if(IFrameSplitOperator.IsNonEmptyArray(varItem.AryBreakPoint))line.AryBreakPoint=varItem.AryBreakPoint;var titleIndex=windowIndex+1;line.Data.Data=varItem.Data;this.ReloadChartResource(hqChart,windowIndex,line);if(varItem.IsShowTitle===false)//NOTEXT 不绘制标题
11448
11448
  {}else if(IFrameSplitOperator.IsString(varItem.Name)&&varItem.Name.indexOf("NOTEXT")==0)//标题中包含NOTEXT不绘制标题
11449
11449
  {}else{if(varItem.NoneName)hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(line.Data,null,line.Color);else hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(line.Data,varItem.Name,line.Color);this.SetTitleData(hqChart.TitlePaint[titleIndex].Data[id],line);}this.SetChartIndexName(line);hqChart.ChartPaint.push(line);};this.CreateArea=function(hqChart,windowIndex,varItem,id){var line=new ChartArea();line.Canvas=hqChart.Canvas;line.DrawType=1;line.Name=varItem.Name;line.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;line.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;line.Identify=this.Guid;if(varItem.Color)line.Color=this.GetColor(varItem.Color);else line.Color=this.GetDefaultColor(id);if(varItem.DownColor){line.AreaColor=varItem.DownColor;}else if(varItem.UpColor){line.AreaColor=varItem.UpColor;line.AreaDirection=1;}if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(IFrameSplitOperator.IsPlusNumber(width))line.LineWidth=width;}if(IFrameSplitOperator.IsNonEmptyArray(varItem.LineDash))line.LineDash=varItem.LineDash;//虚线
11450
11450
  if(varItem.IsShow==false)line.IsShow=false;var titleIndex=windowIndex+1;line.Data.Data=varItem.Data;if(varItem.IsShowTitle===false)//NOTEXT 不绘制标题
@@ -11591,7 +11591,7 @@ this.ReloadChartResource=function(hqChart,windowIndex,chart){var event=hqChart.G
11591
11591
  if(!event||!event.Callback)return;var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var script=frame.Script;var sendData={Chart:chart,IndexName:script.Name,IndexID:script.ID,HQChart:hqChart,WindowIndex:windowIndex,Guid:overlayIndex.Identify};event.Callback(event,sendData,this);};//////////////////////////////////////////////////////////////////////////////////////
11592
11592
  // 图形创建
11593
11593
  /////////////////////////////////////////////////////////////////////////////////////
11594
- this.CreateLine=function(hqChart,windowIndex,varItem,id,lineType){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;if(lineType==7)var chart=new ChartStepLine();else var chart=new ChartLine();chart.Canvas=hqChart.Canvas;chart.DrawType=1;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);if(lineType==8){chart.DrawType=2;chart.BreakPoint=varItem.BreakPoint;}if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)chart.LineWidth=width;}if(varItem.IsShow==false)chart.IsShow=false;chart.Data.Data=varItem.Data;this.ReloadChartResource(hqChart,windowIndex,chart);var titleIndex=windowIndex+1;var titlePaint=hqChart.TitlePaint[titleIndex];var titleData=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);this.SetTitleData(titleData,chart);titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};//创建柱子
11594
+ this.CreateLine=function(hqChart,windowIndex,varItem,id,lineType){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;if(lineType==7)var chart=new ChartStepLine();else var chart=new ChartLine();chart.Canvas=hqChart.Canvas;chart.DrawType=1;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.HQChart=hqChart;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);if(lineType==8){chart.DrawType=2;chart.BreakPoint=varItem.BreakPoint;}if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)chart.LineWidth=width;}if(IFrameSplitOperator.IsNonEmptyArray(varItem.AryBreakPoint))chart.AryBreakPoint=varItem.AryBreakPoint;if(varItem.IsShow==false)chart.IsShow=false;chart.Data.Data=varItem.Data;this.ReloadChartResource(hqChart,windowIndex,chart);var titleIndex=windowIndex+1;var titlePaint=hqChart.TitlePaint[titleIndex];var titleData=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);this.SetTitleData(titleData,chart);titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};//创建柱子
11595
11595
  this.CreateBar=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartStickLine();chart.Canvas=hqChart.Canvas;if(varItem.Draw.Width>0)chart.Width=varItem.Draw.Width;else chart.Width=1;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);var titleIndex=windowIndex+1;chart.Data.Data=varItem.Draw.DrawData;//hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(bar.Data,varItem.Name,bar.Color);
11596
11596
  this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateDrawText=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartSingleText();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.ReloadResource();if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);if(varItem.IsDrawAbove)chart.Direction=1;else chart.Direction=0;chart.DrawData=varItem.Draw.DrawData;if(varItem.DrawFontSize>0)chart.TextFont=varItem.DrawFontSize*GetDevicePixelRatio()+'px \u5FAE\u8F6F\u96C5\u9ED1';//临时用下吧
11597
11597
  frame.ChartPaint.push(chart);};//DRAWTEXT
@@ -11680,7 +11680,7 @@ sourceData.sort(function(a,b){return a.Date-b.Date;});kdata.GetDateIndex(sourceD
11680
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上
11681
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;//是否显示指标标题
11682
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;//是否绘制线段
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')//图标
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;if(IFrameSplitOperator.IsNonEmptyArray(item.AryBreakPoint))outVarItem.AryBreakPoint=item.AryBreakPoint;result.push(outVarItem);}else if(item.Draw){var draw=item.Draw;var drawItem={};if(draw.DrawType=='DRAWICON')//图标
11684
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')//文本
11685
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')//柱子
11686
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);//默认的值
@@ -11699,7 +11699,7 @@ var result=[];if(ChartData.IsDayPeriod(hqChart.Period,true))//日线
11699
11699
  var result=[];if(ChartData.IsDayPeriod(hqChart.Period,true))//日线
11700
11700
  {var bFill=false;for(var i=0,j=0;i<kData.Data.length;++i){result[i]=0;var kItem=kData.Data[i];var date=kItem.Date;for(j=0;j<data.length;++j){var rangeItem=data[j];if(date>=rangeItem.Start.Date&&date<=rangeItem.End.Date){result[i]=1;bFill=true;break;}}}if(bFill)return result;}else if(ChartData.IsMinutePeriod(hqChart.Period,true))//分钟线
11701
11701
  {var aryRange=[];for(var i=0;i<data.length;++i){var item=data[i];var startDatetime=item.Start.Date*10000;if(IFrameSplitOperator.IsNumber(item.Start.Time))startDatetime+=item.Start.Time;var endDatetime=item.End.Date*10000;if(IFrameSplitOperator.IsNumber(item.End.Time))endDatetime+=item.End.Time;aryRange.push({Start:startDatetime,End:endDatetime});}var bFill=false;for(var i=0,j=0;i<kData.Data.length;++i){result[i]=0;var kItem=kData.Data[i];var date=kItem.Date*10000+kItem.Time;for(j=0;j<aryRange.length;++j){var rangeItem=aryRange[j];if(date>=rangeItem.Start&&date<=rangeItem.End){result[i]=1;bFill=true;break;}}}if(bFill)return result;}return null;};this.FittingMinuteData=function(jsonData,hqChart){var outVar=jsonData.outvar;var date=jsonData.date;var time=jsonData.time;var result=[];for(var i=0;i<outVar.length;++i){var item=outVar[i];var outVarItem={Name:item.name,Type:item.type};if(IFrameSplitOperator.IsBool(item.IsShowTitle))outVarItem.IsShowTitle=item.IsShowTitle;//是否显示指标标题
11702
- if(item.data){outVarItem.Data=this.FittingMinuteArray(item.data,date,time,hqChart);if(item.color)outVarItem.Color=item.color;if(item.linewidth>=1)outVarItem.LineWidth=item.linewidth;if(item.isshow==false)outVarItem.IsShow=false;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;result.push(outVarItem);}else if(item.Draw){var draw=item.Draw;var drawItem={};if(draw.DrawType=='DRAWICON')//图标
11702
+ if(item.data){outVarItem.Data=this.FittingMinuteArray(item.data,date,time,hqChart);if(item.color)outVarItem.Color=item.color;if(item.linewidth>=1)outVarItem.LineWidth=item.linewidth;if(item.isshow==false)outVarItem.IsShow=false;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.IsNonEmptyArray(item.AryBreakPoint))outVarItem.AryBreakPoint=item.AryBreakPoint;result.push(outVarItem);}else if(item.Draw){var draw=item.Draw;var drawItem={};if(draw.DrawType=='DRAWICON')//图标
11703
11703
  {drawItem.Icon=draw.Icon;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMinuteArray(draw.DrawData,date,time,hqChart);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='DRAWTEXT')//文本
11704
11704
  {drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMinuteArray(draw.DrawData,date,time,hqChart);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='STICKLINE')//柱子
11705
11705
  {drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.Width=draw.Width;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMinuteArray(draw.DrawData,date,time,hqChart,1);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType==SCRIPT_CHART_NAME.OVERLAY_BARS){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.BarName=draw.BarName;drawItem.BarColor=draw.BarColor;drawItem.LineWidth=draw.LineWidth;drawItem.DrawData=this.FittingMinuteArray(draw.DrawData,date,time,hqChart,1);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType==SCRIPT_CHART_NAME.CLIP_COLOR_STICK){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMinuteArray(draw.Data,date,time,hqChart);outVarItem.Draw=drawItem;if(draw.Option)outVarItem.Option=draw.Option;result.push(outVarItem);}else if(draw.DrawType=='MULTI_LINE'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMultiLine(draw.DrawData,date,time,hqChart);for(var k in drawItem.DrawData){this.GetKLineData(drawItem.DrawData[k].Point,hqChart);}outVarItem.Draw=drawItem;if(draw.LineDash)drawItem.LineDash=draw.LineDash;if(draw.Arrow)drawItem.Arrow=draw.Arrow;result.push(outVarItem);}else if(draw.DrawType=='MULTI_POINT'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=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_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
@@ -13825,7 +13825,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
13825
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);};}/********************************************************************************
13826
13826
  * 版本信息输出
13827
13827
  *
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();//把给外界调用的方法暴露出来
13828
+ */var HQCHART_VERSION="1.1.14244";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();//把给外界调用的方法暴露出来
13829
13829
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
13830
13830
  // BaseIndex:BaseIndex,
13831
13831
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.14240",
3
+ "version": "1.1.14245",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -20508,6 +20508,7 @@ function ScriptIndex(name,script,args,option)
20508
20508
  line.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;
20509
20509
  line.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;
20510
20510
  line.Identify=this.Guid;
20511
+ line.HQChart=hqChart;
20511
20512
  if (varItem.Color) line.Color=this.GetColor(varItem.Color);
20512
20513
  else line.Color=this.GetDefaultColor(id);
20513
20514
 
@@ -20531,8 +20532,9 @@ function ScriptIndex(name,script,args,option)
20531
20532
 
20532
20533
  //虚线设置
20533
20534
  if (IFrameSplitOperator.IsNonEmptyArray(varItem.LineDash)) line.LineDash=varItem.LineDash;
20535
+ if (IFrameSplitOperator.IsBool(varItem.IsShow)) line.IsShow=varItem.IsShow;
20534
20536
 
20535
- if (varItem.IsShow==false) line.IsShow=false;
20537
+ if (IFrameSplitOperator.IsNonEmptyArray(varItem.AryBreakPoint)) line.AryBreakPoint=varItem.AryBreakPoint;
20536
20538
 
20537
20539
  let titleIndex=windowIndex+1;
20538
20540
  line.Data.Data=varItem.Data;
@@ -22729,6 +22731,7 @@ function OverlayScriptIndex(name,script,args,option)
22729
22731
  chart.ChartBorder=frame.Frame.ChartBorder;
22730
22732
  chart.ChartFrame=frame.Frame;
22731
22733
  chart.Identify=overlayIndex.Identify;
22734
+ chart.HQChart=hqChart;
22732
22735
  if (varItem.Color) chart.Color=this.GetColor(varItem.Color);
22733
22736
  else chart.Color=this.GetDefaultColor(id);
22734
22737
 
@@ -22744,6 +22747,8 @@ function OverlayScriptIndex(name,script,args,option)
22744
22747
  if (!isNaN(width) && width>0) chart.LineWidth=width;
22745
22748
  }
22746
22749
 
22750
+ if (IFrameSplitOperator.IsNonEmptyArray(varItem.AryBreakPoint)) chart.AryBreakPoint=varItem.AryBreakPoint;
22751
+
22747
22752
  if (varItem.IsShow==false) chart.IsShow=false;
22748
22753
  chart.Data.Data=varItem.Data;
22749
22754
  this.ReloadChartResource(hqChart, windowIndex, chart);
@@ -24489,6 +24494,7 @@ function APIScriptIndex(name,script,args,option, isOverlay)
24489
24494
  if (IFrameSplitOperator.IsBool(item.isSingleLine)) outVarItem.IsSingleLine=item.isSingleLine;
24490
24495
  if (IFrameSplitOperator.IsNumber(item.StickType)) outVarItem.StickType=item.StickType;
24491
24496
  if (IFrameSplitOperator.IsNumber(item.BarColorType)) outVarItem.BarColorType=item.BarColorType;
24497
+ if (IFrameSplitOperator.IsNonEmptyArray(item.AryBreakPoint)) outVarItem.AryBreakPoint=item.AryBreakPoint;
24492
24498
 
24493
24499
  result.push(outVarItem);
24494
24500
  }
@@ -24989,6 +24995,7 @@ function APIScriptIndex(name,script,args,option, isOverlay)
24989
24995
  if (IFrameSplitOperator.IsBool(item.isDotLine)) outVarItem.IsDotLine = item.isDotLine;
24990
24996
  if (IFrameSplitOperator.IsNonEmptyArray(item.lineDash)) outVarItem.LineDash=item.lineDash;
24991
24997
  if (IFrameSplitOperator.IsBool(item.isSingleLine)) outVarItem.IsSingleLine=item.isSingleLine;
24998
+ if (IFrameSplitOperator.IsNonEmptyArray(item.AryBreakPoint)) outVarItem.AryBreakPoint=item.AryBreakPoint;
24992
24999
 
24993
25000
  result.push(outVarItem);
24994
25001
  }
@@ -10513,6 +10513,11 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
10513
10513
  this.UpdateFrameMaxMin(); //调整坐标最大 最小值
10514
10514
  this.Draw();
10515
10515
  }
10516
+
10517
+ this.GetKData=function()
10518
+ {
10519
+ return null;
10520
+ }
10516
10521
  }
10517
10522
 
10518
10523
  function GetDevicePixelRatio()
@@ -31877,6 +31882,7 @@ function ChartLine()
31877
31882
  this.IsDotLine=false; //虚线
31878
31883
  this.LineDash=g_JSChartResource.DOTLINE.LineDash;
31879
31884
  this.BreakPoint; //断开的点索引 Set();
31885
+ this.AryBreakPoint;
31880
31886
 
31881
31887
 
31882
31888
  this.DrawSelectedStatus=this.DrawLinePoint;
@@ -31885,6 +31891,29 @@ function ChartLine()
31885
31891
  this.ExportData=this.ExportArrayData;
31886
31892
  this.GetItemData=this.GetArrayItemData;
31887
31893
 
31894
+ this.BuildBreakPoint=function()
31895
+ {
31896
+ if (!IFrameSplitOperator.IsNonEmptyArray(this.AryBreakPoint)) return null;
31897
+
31898
+ var mapBreakPoint=new Map();
31899
+ for(var i=0;i<this.AryBreakPoint.length;++i)
31900
+ {
31901
+ var item=this.AryBreakPoint[i];
31902
+ var key=this.BuildDateTimeKey(item);
31903
+ if (key) mapBreakPoint.set(key, item);
31904
+ }
31905
+
31906
+ return mapBreakPoint;
31907
+ }
31908
+
31909
+ this.BuildDateTimeKey=function(item)
31910
+ {
31911
+ if (!item) return null;
31912
+
31913
+ if (!IFrameSplitOperator.IsNumber(item.Time)) return `${item.Date}`;
31914
+ return `${item.Date}-${item.Time}`;
31915
+ }
31916
+
31888
31917
  this.Draw=function()
31889
31918
  {
31890
31919
  if (!this.IsShow || this.ChartFrame.IsMinSize || !this.IsVisible) return;
@@ -31963,6 +31992,7 @@ function ChartLine()
31963
31992
  var dataWidth=this.ChartFrame.DataWidth;
31964
31993
  var distanceWidth=this.ChartFrame.DistanceWidth;
31965
31994
  var xPointCount=this.ChartFrame.XPointCount;
31995
+ var mapBreakPoint=this.BuildBreakPoint();
31966
31996
 
31967
31997
  if (bHScreen)
31968
31998
  {
@@ -31993,8 +32023,9 @@ function ChartLine()
31993
32023
  var bFirstPoint=true;
31994
32024
  var ptFirst=null;; //第1个点
31995
32025
  var drawCount=0;
32026
+ var kData=null;
32027
+ if (this.HQChart) kData=this.HQChart.GetKData();
31996
32028
  for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
31997
- //for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
31998
32029
  {
31999
32030
  var value=this.Data.Data[i];
32000
32031
  if (value==null)
@@ -32037,6 +32068,20 @@ function ChartLine()
32037
32068
  }
32038
32069
 
32039
32070
  ++drawCount;
32071
+
32072
+ //断开点
32073
+ if (mapBreakPoint && kData && kData.Data)
32074
+ {
32075
+ var kItem=kData.Data[i];
32076
+ var key=this.BuildDateTimeKey(kItem);
32077
+ if (key && mapBreakPoint.has(key))
32078
+ {
32079
+ if (drawCount>0) this.Canvas.stroke();
32080
+
32081
+ bFirstPoint=true;
32082
+ drawCount=0;
32083
+ }
32084
+ }
32040
32085
  }
32041
32086
 
32042
32087
  if (drawCount>0)
@@ -80684,6 +80729,15 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
80684
80729
 
80685
80730
  this.FloatTooltip.Update(sendData);
80686
80731
  }
80732
+
80733
+ this.GetKData=function()
80734
+ {
80735
+ if (!this.ChartPaint[0]) return null;
80736
+ var data=this.ChartPaint[0].Data;
80737
+ if (!data) return null;
80738
+
80739
+ return data;
80740
+ }
80687
80741
  }
80688
80742
 
80689
80743
  //API 返回数据 转化为array[]
@@ -86609,6 +86663,15 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
86609
86663
 
86610
86664
  this.DialogSelectRect.Update(sendData);
86611
86665
  }
86666
+
86667
+ this.GetKData=function()
86668
+ {
86669
+ if (!this.SourceData) return null;
86670
+ var data=this.SourceData;
86671
+ if (!data) return null;
86672
+
86673
+ return data;
86674
+ }
86612
86675
  }
86613
86676
 
86614
86677
  //盘前数据
@@ -14438,6 +14438,11 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
14438
14438
  this.UpdateFrameMaxMin(); //调整坐标最大 最小值
14439
14439
  this.Draw();
14440
14440
  }
14441
+
14442
+ this.GetKData=function()
14443
+ {
14444
+ return null;
14445
+ }
14441
14446
  }
14442
14447
 
14443
14448
  function GetDevicePixelRatio()
@@ -35802,6 +35807,7 @@ function ChartLine()
35802
35807
  this.IsDotLine=false; //虚线
35803
35808
  this.LineDash=g_JSChartResource.DOTLINE.LineDash;
35804
35809
  this.BreakPoint; //断开的点索引 Set();
35810
+ this.AryBreakPoint;
35805
35811
 
35806
35812
 
35807
35813
  this.DrawSelectedStatus=this.DrawLinePoint;
@@ -35810,6 +35816,29 @@ function ChartLine()
35810
35816
  this.ExportData=this.ExportArrayData;
35811
35817
  this.GetItemData=this.GetArrayItemData;
35812
35818
 
35819
+ this.BuildBreakPoint=function()
35820
+ {
35821
+ if (!IFrameSplitOperator.IsNonEmptyArray(this.AryBreakPoint)) return null;
35822
+
35823
+ var mapBreakPoint=new Map();
35824
+ for(var i=0;i<this.AryBreakPoint.length;++i)
35825
+ {
35826
+ var item=this.AryBreakPoint[i];
35827
+ var key=this.BuildDateTimeKey(item);
35828
+ if (key) mapBreakPoint.set(key, item);
35829
+ }
35830
+
35831
+ return mapBreakPoint;
35832
+ }
35833
+
35834
+ this.BuildDateTimeKey=function(item)
35835
+ {
35836
+ if (!item) return null;
35837
+
35838
+ if (!IFrameSplitOperator.IsNumber(item.Time)) return `${item.Date}`;
35839
+ return `${item.Date}-${item.Time}`;
35840
+ }
35841
+
35813
35842
  this.Draw=function()
35814
35843
  {
35815
35844
  if (!this.IsShow || this.ChartFrame.IsMinSize || !this.IsVisible) return;
@@ -35888,6 +35917,7 @@ function ChartLine()
35888
35917
  var dataWidth=this.ChartFrame.DataWidth;
35889
35918
  var distanceWidth=this.ChartFrame.DistanceWidth;
35890
35919
  var xPointCount=this.ChartFrame.XPointCount;
35920
+ var mapBreakPoint=this.BuildBreakPoint();
35891
35921
 
35892
35922
  if (bHScreen)
35893
35923
  {
@@ -35918,8 +35948,9 @@ function ChartLine()
35918
35948
  var bFirstPoint=true;
35919
35949
  var ptFirst=null;; //第1个点
35920
35950
  var drawCount=0;
35951
+ var kData=null;
35952
+ if (this.HQChart) kData=this.HQChart.GetKData();
35921
35953
  for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
35922
- //for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
35923
35954
  {
35924
35955
  var value=this.Data.Data[i];
35925
35956
  if (value==null)
@@ -35962,6 +35993,20 @@ function ChartLine()
35962
35993
  }
35963
35994
 
35964
35995
  ++drawCount;
35996
+
35997
+ //断开点
35998
+ if (mapBreakPoint && kData && kData.Data)
35999
+ {
36000
+ var kItem=kData.Data[i];
36001
+ var key=this.BuildDateTimeKey(kItem);
36002
+ if (key && mapBreakPoint.has(key))
36003
+ {
36004
+ if (drawCount>0) this.Canvas.stroke();
36005
+
36006
+ bFirstPoint=true;
36007
+ drawCount=0;
36008
+ }
36009
+ }
35965
36010
  }
35966
36011
 
35967
36012
  if (drawCount>0)
@@ -84609,6 +84654,15 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
84609
84654
 
84610
84655
  this.FloatTooltip.Update(sendData);
84611
84656
  }
84657
+
84658
+ this.GetKData=function()
84659
+ {
84660
+ if (!this.ChartPaint[0]) return null;
84661
+ var data=this.ChartPaint[0].Data;
84662
+ if (!data) return null;
84663
+
84664
+ return data;
84665
+ }
84612
84666
  }
84613
84667
 
84614
84668
  //API 返回数据 转化为array[]
@@ -90534,6 +90588,15 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
90534
90588
 
90535
90589
  this.DialogSelectRect.Update(sendData);
90536
90590
  }
90591
+
90592
+ this.GetKData=function()
90593
+ {
90594
+ if (!this.SourceData) return null;
90595
+ var data=this.SourceData;
90596
+ if (!data) return null;
90597
+
90598
+ return data;
90599
+ }
90537
90600
  }
90538
90601
 
90539
90602
  //盘前数据
@@ -120072,6 +120135,7 @@ function ScriptIndex(name,script,args,option)
120072
120135
  line.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;
120073
120136
  line.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;
120074
120137
  line.Identify=this.Guid;
120138
+ line.HQChart=hqChart;
120075
120139
  if (varItem.Color) line.Color=this.GetColor(varItem.Color);
120076
120140
  else line.Color=this.GetDefaultColor(id);
120077
120141
 
@@ -120095,8 +120159,9 @@ function ScriptIndex(name,script,args,option)
120095
120159
 
120096
120160
  //虚线设置
120097
120161
  if (IFrameSplitOperator.IsNonEmptyArray(varItem.LineDash)) line.LineDash=varItem.LineDash;
120162
+ if (IFrameSplitOperator.IsBool(varItem.IsShow)) line.IsShow=varItem.IsShow;
120098
120163
 
120099
- if (varItem.IsShow==false) line.IsShow=false;
120164
+ if (IFrameSplitOperator.IsNonEmptyArray(varItem.AryBreakPoint)) line.AryBreakPoint=varItem.AryBreakPoint;
120100
120165
 
120101
120166
  let titleIndex=windowIndex+1;
120102
120167
  line.Data.Data=varItem.Data;
@@ -122293,6 +122358,7 @@ function OverlayScriptIndex(name,script,args,option)
122293
122358
  chart.ChartBorder=frame.Frame.ChartBorder;
122294
122359
  chart.ChartFrame=frame.Frame;
122295
122360
  chart.Identify=overlayIndex.Identify;
122361
+ chart.HQChart=hqChart;
122296
122362
  if (varItem.Color) chart.Color=this.GetColor(varItem.Color);
122297
122363
  else chart.Color=this.GetDefaultColor(id);
122298
122364
 
@@ -122308,6 +122374,8 @@ function OverlayScriptIndex(name,script,args,option)
122308
122374
  if (!isNaN(width) && width>0) chart.LineWidth=width;
122309
122375
  }
122310
122376
 
122377
+ if (IFrameSplitOperator.IsNonEmptyArray(varItem.AryBreakPoint)) chart.AryBreakPoint=varItem.AryBreakPoint;
122378
+
122311
122379
  if (varItem.IsShow==false) chart.IsShow=false;
122312
122380
  chart.Data.Data=varItem.Data;
122313
122381
  this.ReloadChartResource(hqChart, windowIndex, chart);
@@ -124053,6 +124121,7 @@ function APIScriptIndex(name,script,args,option, isOverlay)
124053
124121
  if (IFrameSplitOperator.IsBool(item.isSingleLine)) outVarItem.IsSingleLine=item.isSingleLine;
124054
124122
  if (IFrameSplitOperator.IsNumber(item.StickType)) outVarItem.StickType=item.StickType;
124055
124123
  if (IFrameSplitOperator.IsNumber(item.BarColorType)) outVarItem.BarColorType=item.BarColorType;
124124
+ if (IFrameSplitOperator.IsNonEmptyArray(item.AryBreakPoint)) outVarItem.AryBreakPoint=item.AryBreakPoint;
124056
124125
 
124057
124126
  result.push(outVarItem);
124058
124127
  }
@@ -124553,6 +124622,7 @@ function APIScriptIndex(name,script,args,option, isOverlay)
124553
124622
  if (IFrameSplitOperator.IsBool(item.isDotLine)) outVarItem.IsDotLine = item.isDotLine;
124554
124623
  if (IFrameSplitOperator.IsNonEmptyArray(item.lineDash)) outVarItem.LineDash=item.lineDash;
124555
124624
  if (IFrameSplitOperator.IsBool(item.isSingleLine)) outVarItem.IsSingleLine=item.isSingleLine;
124625
+ if (IFrameSplitOperator.IsNonEmptyArray(item.AryBreakPoint)) outVarItem.AryBreakPoint=item.AryBreakPoint;
124556
124626
 
124557
124627
  result.push(outVarItem);
124558
124628
  }
@@ -140312,7 +140382,7 @@ function ScrollBarBGChart()
140312
140382
 
140313
140383
 
140314
140384
 
140315
- var HQCHART_VERSION="1.1.14239";
140385
+ var HQCHART_VERSION="1.1.14244";
140316
140386
 
140317
140387
  function PrintHQChartVersion()
140318
140388
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.14239";
8
+ var HQCHART_VERSION="1.1.14244";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -14482,6 +14482,11 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
14482
14482
  this.UpdateFrameMaxMin(); //调整坐标最大 最小值
14483
14483
  this.Draw();
14484
14484
  }
14485
+
14486
+ this.GetKData=function()
14487
+ {
14488
+ return null;
14489
+ }
14485
14490
  }
14486
14491
 
14487
14492
  function GetDevicePixelRatio()
@@ -35846,6 +35851,7 @@ function ChartLine()
35846
35851
  this.IsDotLine=false; //虚线
35847
35852
  this.LineDash=g_JSChartResource.DOTLINE.LineDash;
35848
35853
  this.BreakPoint; //断开的点索引 Set();
35854
+ this.AryBreakPoint;
35849
35855
 
35850
35856
 
35851
35857
  this.DrawSelectedStatus=this.DrawLinePoint;
@@ -35854,6 +35860,29 @@ function ChartLine()
35854
35860
  this.ExportData=this.ExportArrayData;
35855
35861
  this.GetItemData=this.GetArrayItemData;
35856
35862
 
35863
+ this.BuildBreakPoint=function()
35864
+ {
35865
+ if (!IFrameSplitOperator.IsNonEmptyArray(this.AryBreakPoint)) return null;
35866
+
35867
+ var mapBreakPoint=new Map();
35868
+ for(var i=0;i<this.AryBreakPoint.length;++i)
35869
+ {
35870
+ var item=this.AryBreakPoint[i];
35871
+ var key=this.BuildDateTimeKey(item);
35872
+ if (key) mapBreakPoint.set(key, item);
35873
+ }
35874
+
35875
+ return mapBreakPoint;
35876
+ }
35877
+
35878
+ this.BuildDateTimeKey=function(item)
35879
+ {
35880
+ if (!item) return null;
35881
+
35882
+ if (!IFrameSplitOperator.IsNumber(item.Time)) return `${item.Date}`;
35883
+ return `${item.Date}-${item.Time}`;
35884
+ }
35885
+
35857
35886
  this.Draw=function()
35858
35887
  {
35859
35888
  if (!this.IsShow || this.ChartFrame.IsMinSize || !this.IsVisible) return;
@@ -35932,6 +35961,7 @@ function ChartLine()
35932
35961
  var dataWidth=this.ChartFrame.DataWidth;
35933
35962
  var distanceWidth=this.ChartFrame.DistanceWidth;
35934
35963
  var xPointCount=this.ChartFrame.XPointCount;
35964
+ var mapBreakPoint=this.BuildBreakPoint();
35935
35965
 
35936
35966
  if (bHScreen)
35937
35967
  {
@@ -35962,8 +35992,9 @@ function ChartLine()
35962
35992
  var bFirstPoint=true;
35963
35993
  var ptFirst=null;; //第1个点
35964
35994
  var drawCount=0;
35995
+ var kData=null;
35996
+ if (this.HQChart) kData=this.HQChart.GetKData();
35965
35997
  for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
35966
- //for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
35967
35998
  {
35968
35999
  var value=this.Data.Data[i];
35969
36000
  if (value==null)
@@ -36006,6 +36037,20 @@ function ChartLine()
36006
36037
  }
36007
36038
 
36008
36039
  ++drawCount;
36040
+
36041
+ //断开点
36042
+ if (mapBreakPoint && kData && kData.Data)
36043
+ {
36044
+ var kItem=kData.Data[i];
36045
+ var key=this.BuildDateTimeKey(kItem);
36046
+ if (key && mapBreakPoint.has(key))
36047
+ {
36048
+ if (drawCount>0) this.Canvas.stroke();
36049
+
36050
+ bFirstPoint=true;
36051
+ drawCount=0;
36052
+ }
36053
+ }
36009
36054
  }
36010
36055
 
36011
36056
  if (drawCount>0)
@@ -84653,6 +84698,15 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
84653
84698
 
84654
84699
  this.FloatTooltip.Update(sendData);
84655
84700
  }
84701
+
84702
+ this.GetKData=function()
84703
+ {
84704
+ if (!this.ChartPaint[0]) return null;
84705
+ var data=this.ChartPaint[0].Data;
84706
+ if (!data) return null;
84707
+
84708
+ return data;
84709
+ }
84656
84710
  }
84657
84711
 
84658
84712
  //API 返回数据 转化为array[]
@@ -90578,6 +90632,15 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
90578
90632
 
90579
90633
  this.DialogSelectRect.Update(sendData);
90580
90634
  }
90635
+
90636
+ this.GetKData=function()
90637
+ {
90638
+ if (!this.SourceData) return null;
90639
+ var data=this.SourceData;
90640
+ if (!data) return null;
90641
+
90642
+ return data;
90643
+ }
90581
90644
  }
90582
90645
 
90583
90646
  //盘前数据
@@ -120116,6 +120179,7 @@ function ScriptIndex(name,script,args,option)
120116
120179
  line.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;
120117
120180
  line.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;
120118
120181
  line.Identify=this.Guid;
120182
+ line.HQChart=hqChart;
120119
120183
  if (varItem.Color) line.Color=this.GetColor(varItem.Color);
120120
120184
  else line.Color=this.GetDefaultColor(id);
120121
120185
 
@@ -120139,8 +120203,9 @@ function ScriptIndex(name,script,args,option)
120139
120203
 
120140
120204
  //虚线设置
120141
120205
  if (IFrameSplitOperator.IsNonEmptyArray(varItem.LineDash)) line.LineDash=varItem.LineDash;
120206
+ if (IFrameSplitOperator.IsBool(varItem.IsShow)) line.IsShow=varItem.IsShow;
120142
120207
 
120143
- if (varItem.IsShow==false) line.IsShow=false;
120208
+ if (IFrameSplitOperator.IsNonEmptyArray(varItem.AryBreakPoint)) line.AryBreakPoint=varItem.AryBreakPoint;
120144
120209
 
120145
120210
  let titleIndex=windowIndex+1;
120146
120211
  line.Data.Data=varItem.Data;
@@ -122337,6 +122402,7 @@ function OverlayScriptIndex(name,script,args,option)
122337
122402
  chart.ChartBorder=frame.Frame.ChartBorder;
122338
122403
  chart.ChartFrame=frame.Frame;
122339
122404
  chart.Identify=overlayIndex.Identify;
122405
+ chart.HQChart=hqChart;
122340
122406
  if (varItem.Color) chart.Color=this.GetColor(varItem.Color);
122341
122407
  else chart.Color=this.GetDefaultColor(id);
122342
122408
 
@@ -122352,6 +122418,8 @@ function OverlayScriptIndex(name,script,args,option)
122352
122418
  if (!isNaN(width) && width>0) chart.LineWidth=width;
122353
122419
  }
122354
122420
 
122421
+ if (IFrameSplitOperator.IsNonEmptyArray(varItem.AryBreakPoint)) chart.AryBreakPoint=varItem.AryBreakPoint;
122422
+
122355
122423
  if (varItem.IsShow==false) chart.IsShow=false;
122356
122424
  chart.Data.Data=varItem.Data;
122357
122425
  this.ReloadChartResource(hqChart, windowIndex, chart);
@@ -124097,6 +124165,7 @@ function APIScriptIndex(name,script,args,option, isOverlay)
124097
124165
  if (IFrameSplitOperator.IsBool(item.isSingleLine)) outVarItem.IsSingleLine=item.isSingleLine;
124098
124166
  if (IFrameSplitOperator.IsNumber(item.StickType)) outVarItem.StickType=item.StickType;
124099
124167
  if (IFrameSplitOperator.IsNumber(item.BarColorType)) outVarItem.BarColorType=item.BarColorType;
124168
+ if (IFrameSplitOperator.IsNonEmptyArray(item.AryBreakPoint)) outVarItem.AryBreakPoint=item.AryBreakPoint;
124100
124169
 
124101
124170
  result.push(outVarItem);
124102
124171
  }
@@ -124597,6 +124666,7 @@ function APIScriptIndex(name,script,args,option, isOverlay)
124597
124666
  if (IFrameSplitOperator.IsBool(item.isDotLine)) outVarItem.IsDotLine = item.isDotLine;
124598
124667
  if (IFrameSplitOperator.IsNonEmptyArray(item.lineDash)) outVarItem.LineDash=item.lineDash;
124599
124668
  if (IFrameSplitOperator.IsBool(item.isSingleLine)) outVarItem.IsSingleLine=item.isSingleLine;
124669
+ if (IFrameSplitOperator.IsNonEmptyArray(item.AryBreakPoint)) outVarItem.AryBreakPoint=item.AryBreakPoint;
124600
124670
 
124601
124671
  result.push(outVarItem);
124602
124672
  }
@@ -149917,7 +149987,7 @@ function HQChartScriptWorker()
149917
149987
 
149918
149988
 
149919
149989
 
149920
- var HQCHART_VERSION="1.1.14239";
149990
+ var HQCHART_VERSION="1.1.14244";
149921
149991
 
149922
149992
  function PrintHQChartVersion()
149923
149993
  {