hqchart 1.1.14484 → 1.1.14489

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.
@@ -2182,11 +2182,11 @@ this.OnChangeCorssCursorStatus=function(data,obj){if(data.Type==1){if(!data.IsSh
2182
2182
  {this.HideTooltip();this.CloseTooltipDialog();}}};//手动更新指标 [ {ID:主图指标ID, OverlayID:叠加指标ID }]
2183
2183
  this.UpdateWindowIndexV2=function(aryIndex,option){if(!this.Frame||!this.Frame.SubFrame)return false;var kData=this.GetKData();if(!kData||!IFrameSplitOperator.IsNonEmptyArray(kData.Data))return false;if(!IFrameSplitOperator.IsNonEmptyArray(aryIndex))return false;var setMainIndex=new _set2.default();//主图指标
2184
2184
  var setOverlayIndex=new _set2.default();//附图指标
2185
- for(var i=0;aryIndex.length;++i){var item=aryIndex[i];if(!item)continue;if(item.ID)setMainIndex.set(item.ID);if(item.OverlayID)setOverlayIndex.set(item.OverlayID);}if(setMainIndex.size<=0&&setOverlayIndex.size<0)return false;//K线数据
2185
+ for(var i=0;i<aryIndex.length;++i){var item=aryIndex[i];if(!item)continue;if(item.ID)setMainIndex.add(item.ID);if(item.OverlayID)setOverlayIndex.add(item.OverlayID);}if(setMainIndex.size<=0&&setOverlayIndex.size<0)return false;//K线数据
2186
2186
  var bindData=new ChartData();if(kData)bindData.Data=kData.Data;if(this.IsKLineContainer())//K线
2187
2187
  {bindData.Period=this.Period;bindData.Right=this.Right;}//主图指标
2188
2188
  if(setMainIndex.size>0){for(var i=0;i<this.WindowIndex.length;++i){var item=this.WindowIndex[i];if(!item)continue;if(setMainIndex.has(item.ID)){this.BindIndexData(i,bindData);}}}//叠加指标
2189
- if(setOverlayIndex.size>0){for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i];for(var j=0;j<item.OverlayIndex.length;++j){var overlayItem=item.OverlayIndex[j];if(setOverlayIndex.has(overlayItem.Identify)){this.BindOverlayIndexData(overlayItem,i,hisData);}}}}var bDraw=true;if(option&&option.Draw===false)bDraw=false;if(bDraw){this.UpdataDataoffset();//更新数据偏移
2189
+ if(setOverlayIndex.size>0){for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i];for(var j=0;j<item.OverlayIndex.length;++j){var overlayItem=item.OverlayIndex[j];if(setOverlayIndex.has(overlayItem.Identify)){this.BindOverlayIndexData(overlayItem,i,bindData);}}}}var bDraw=true;if(option&&option.Draw===false)bDraw=false;if(bDraw){this.UpdataDataoffset();//更新数据偏移
2190
2190
  this.UpdateFrameMaxMin();//调整坐标最大 最小值
2191
2191
  this.Draw();}return true;};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)//键盘事件
2192
2192
  {if(this.JSChartContainer&&this.JSChartContainer.OnKeyDown)this.JSChartContainer.OnKeyDown(e);}function OnWheel(e)//上下滚动事件
@@ -3970,7 +3970,10 @@ var drawCount=0;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xP
3970
3970
  {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;//断开
3971
3971
  if(this.BreakPoint&&this.BreakPoint.has(i)){if(drawCount>0)this.Canvas.stroke();bFirstPoint=true;drawCount=0;ptFirst=null;}if(bFirstPoint){this.Canvas.beginPath();if(bHScreen)this.Canvas.moveTo(y,x);//横屏坐标轴对调
3972
3972
  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个点, 画一个像素的横线
3973
- {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();};}//面积图 支持横屏
3973
+ {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();};}//标题
3974
+ function ChartIndexTitle(){this.newMethod=IChartPainting;//派生
3975
+ this.newMethod();delete this.newMethod;this.ClassName='ChartIndexTitle';//类名
3976
+ this.Draw=function(){};this.GetMaxMin=function(){return range={Min:null,Max:null};};}//面积图 支持横屏
3974
3977
  function ChartArea(){this.newMethod=IChartPainting;//派生
3975
3978
  this.newMethod();delete this.newMethod;this.ClassName='ChartArea';//类名
3976
3979
  this.Color="rgb(255,193,37)";//线段颜色
@@ -4075,7 +4078,7 @@ var bSolidBar=this.IsSolidBar(bUp);//实心柱子
4075
4078
  if(bSolidBar){this.Canvas.fillStyle=barColor.Color;this.Canvas.fillRect(yBottom,ToFixedRect(left),height,ToFixedRect(dataWidth));}else{this.Canvas.strokeStyle=barColor.Color;this.Canvas.beginPath();this.Canvas.rect(ToFixedPoint(yBottom),ToFixedPoint(left),height,ToFixedRect(dataWidth));this.Canvas.stroke();}}}else//太细了直接话线
4076
4079
  {var preKItem=null;var barColor=null;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];var kItem=this.HistoryData.Data[i];if(value==null||kItem==null)continue;var y=this.ChartFrame.GetYFromData(value);if(isMinute){var x=this.ChartFrame.GetXFromIndex(j);}else{var left=xOffset;var right=xOffset+dataWidth;var x=left+(right-left)/2;}if(x>chartBottom)break;if(isMinute)barColor=this.GetMinuteBarColor(kItem,preKItem);//分时图颜色单独计算
4077
4080
  else barColor=this.GetBarColor(kItem,value);var bUp=barColor.IsUp;this.Canvas.strokeStyle=barColor.Color;//var x=this.ChartFrame.GetXFromIndex(j);
4078
- this.Canvas.beginPath();this.Canvas.moveTo(y,ToFixedPoint(x));this.Canvas.lineTo(yBottom,ToFixedPoint(x));this.Canvas.stroke();preKItem=kItem;}}};this.GetMaxMin=function(){var xPointCount=this.ChartFrame.XPointCount;var start=this.Data.DataOffset;if(this.ChartFrame.GlobalOption&&this.ChartFrame.GlobalOption.IsValueFullRange){start=0;xPointCount=this.Data.Data.length;}var range={Min:null,Max:null};for(var i=start,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var value=this.Data.Data[i];if(!IFrameSplitOperator.IsNumber(range.Max)||range.Max<value)range.Max=value;if(!IFrameSplitOperator.IsNumber(range.Min)||range.Min>value)range.Min=value;}if(range.Max>0&&range.Min>0)range.Min=0;else if(range.Max<0&&range.Min<0)range.Max=0;return range;};this.GetBarColor=function(kItem,value){if(this.BarColorType===1)//更具正负决定柱子颜色
4081
+ this.Canvas.beginPath();this.Canvas.moveTo(y,ToFixedPoint(x));this.Canvas.lineTo(yBottom,ToFixedPoint(x));this.Canvas.stroke();preKItem=kItem;}}};this.GetMaxMin=function(){var xPointCount=this.ChartFrame.XPointCount;var start=this.Data.DataOffset;if(this.ChartFrame.GlobalOption&&this.ChartFrame.GlobalOption.IsValueFullRange){start=0;xPointCount=this.Data.Data.length;}var range={Min:null,Max:null};for(var i=start,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var value=this.Data.Data[i];if(!IFrameSplitOperator.IsNumber(value))continue;if(!IFrameSplitOperator.IsNumber(range.Max)||range.Max<value)range.Max=value;if(!IFrameSplitOperator.IsNumber(range.Min)||range.Min>value)range.Min=value;}if(range.Max>0&&range.Min>0)range.Min=0;else if(range.Max<0&&range.Min<0)range.Max=0;return range;};this.GetBarColor=function(kItem,value){if(this.BarColorType===1)//更具正负决定柱子颜色
4079
4082
  {if(value>=0)return{Color:this.UpColor,IsUp:true};//颜色, 是否是上涨
4080
4083
  else return{Color:this.DownColor,IsUp:false};}//平盘K线,使用昨收盘比较
4081
4084
  if(kItem.Close>kItem.Open)return{Color:this.UpColor,IsUp:true};//颜色, 是否是上涨
@@ -6037,7 +6040,7 @@ var value=null;var preVaildItem=null;if(item.DataType=="StraightLine")//直线
6037
6040
  {value=item.Data.Data[0];valueText=this.FormatValue(value,item);}else if(item.ChartClassName=="ChartVolProfileVisibleRange"){aryText=this.FormatVPVRTitle(this.LastPoint,item);if(!aryText)return null;return{Text:null,ArrayText:aryText};}else{if(isShowLastData){var dataIndex=item.Data.Data.length-1;//显示最后一个数据
6038
6041
  }else{var index=Math.abs(this.CursorIndex);index=parseInt(index.toFixed(0));if(this.IsKLineFrame)index=this.CursorIndex;var dataIndex=item.Data.DataOffset+index;if(dataIndex>=item.Data.Data.length)dataIndex=item.Data.Data.length-1;if(dataIndex<0)return null;}if(item.DataType=="ChartMultiLine")//多线段数据
6039
6042
  {aryText=this.ForamtMultiLineTitle(dataIndex,item);if(!aryText)return null;return{Text:null,ArrayText:aryText};}else if(item.DataType=="ChartMultiPoint"){aryText=this.ForamtMultiPointTitle(dataIndex,item);if(!aryText)return null;return{Text:null,ArrayText:aryText};}else if(item.DataType=="ChartMultiBar"){aryText=this.ForamtMultiBarTitle(dataIndex,item);if(!aryText)return null;return{Text:null,ArrayText:aryText};}value=item.Data.Data[dataIndex];if(value==null&&item.ChartClassName=="ChartStepLine")//当前值无效,上一个值延续
6040
- {preVaildItem=this.GetPreVaildItem(item.Data.Data,dataIndex);if(!preVaildItem)return null;preText=this.FormatValue(preVaildItem.Item,item);if(item.Name){var dyValue=this.GetDynamicOutValue(item.Name,preText);if(dyValue)preText=dyValue;}valueText='--('+preText+')';return{Text:valueText,ArrayText:aryText};}if(value==null)return null;if(item.DataType=="HistoryData-Vol"){value=value.Vol;valueText=this.FormatValue(value,item);}else if(item.DataType=="MultiReport"){valueText=this.FormatMultiReport(value,item);}else if(item.DataType=="MULTI_POINT_LINE"){valueText=this.FromatMultiDataLine(value,item);if(!valueText)return null;}else if(item.DataType=="ChartStackedBar"){aryText=this.FromatStackedBarTitle(value,item);if(!aryText)return null;return{Text:null,ArrayText:aryText};}else if(item.DataType=="DRAWKLINE"){aryText=this.FromatKLineTitle(value,item);if(!aryText)return null;return{Text:null,ArrayText:aryText};}else if(g_ScriptIndexChartFactory.Has(item.DataType))//外部挂接
6043
+ {preVaildItem=this.GetPreVaildItem(item.Data.Data,dataIndex);if(!preVaildItem)return null;preText=this.FormatValue(preVaildItem.Item,item);if(item.Name){var dyValue=this.GetDynamicOutValue(item.Name,preText);if(dyValue)preText=dyValue;}valueText='--('+preText+')';return{Text:valueText,ArrayText:aryText};}if(value==null)return null;if(item.DataType=="HistoryData-Vol"){value=value.Vol;valueText=this.FormatValue(value,item);}else if(item.DataType=="MultiReport"){valueText=this.FormatMultiReport(value,item);}else if(item.DataType=="MULTI_POINT_LINE"){valueText=this.FromatMultiDataLine(value,item);if(!valueText)return null;}else if(item.DataType=="ChartStackedBar"){aryText=this.FromatStackedBarTitle(value,item);if(!aryText)return null;return{Text:null,ArrayText:aryText};}else if(item.DataType=="DRAWKLINE"){aryText=this.FromatKLineTitle(value,item);if(!aryText)return null;return{Text:null,ArrayText:aryText};}else if(item.DataType=="ChartIndexTitle"){var text=item.Data.Data[dataIndex];if(!IFrameSplitOperator.IsString(text))return null;return{Text:text,ArrayText:null};}else if(g_ScriptIndexChartFactory.Has(item.DataType))//外部挂接
6041
6044
  {var find=g_ScriptIndexChartFactory.Get(item.DataType);if(find&&find.FormatTitleCallback)return find.FormatTitleCallback(value,item,dataIndex);}else{if(this.GetEventCallback){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_FORMAT_INDEX_OUT_TEXT);if(event){var data={Item:item,Index:titleIndex,Data:this.Data,FrameID:this.Frame.Identify,DataIndex:dataIndex,Value:value,Out:null};event.Callback(event,data,this);if(data.Out)return data.Out;}}if(item.DataType=="ChartBand")//默认不输出
6042
6045
  return null;var arrowSuper=null;//独立颜色
6043
6046
  if(this.IsShowUpDownArrow){var preValue=null;if(dataIndex-1>=0)preValue=item.Data.Data[dataIndex-1];if(IFrameSplitOperator.IsNumber(preValue)){if(preValue>value)arrowSuper={Text:'↓',TextColor:this.UpDownArrowConfig.DownColor};else if(preValue<value)arrowSuper={Text:'↑',TextColor:this.UpDownArrowConfig.UpColor};else arrowSuper={Text:'→',TextColor:this.UpDownArrowConfig.UnchangeColor};if(this.TitleArrowType==1)arrowSuper.TextColor=item.Color;}}valueText=this.FormatValue(value,item);if(item.Name){var dyValue=this.GetDynamicOutValue(item.Name,valueText);if(dyValue)valueText=dyValue;}if(arrowSuper){var outItem={Name:null,Text:valueText,Color:item.Color,TextEx:[arrowSuper]};if(item.Name){var text=item.Name;var dyTitle=this.GetDynamicOutName(item.Name);//动态标题
@@ -6055,7 +6058,7 @@ for(var i=0;i<aryText.length;++i){var item=aryText[i];if(!item.Text)continue;var
6055
6058
  this.GetPreVaildItem=function(data,start){for(var i=start;i>=0;--i){var item=data[i];if(item)return{Item:item,Index:i};}return null;};this.DrawSelectedLine=function(left,bottom,textWidth){this.Canvas.save();var fontHeight=this.GetFontHeight();this.Canvas.strokeStyle=this.SelectedColor;var lineWidth=4;var lineBottom=ToFixedPoint2(lineWidth,bottom+fontHeight/2);this.Canvas.lineWidth=lineWidth;this.Canvas.beginPath();this.Canvas.moveTo(left,lineBottom);this.Canvas.lineTo(left+textWidth,lineBottom);this.Canvas.stroke();this.Canvas.restore();};this.DrawOverlayIndexSingleLine=function(moveonPoint,mouseStatus)//叠加指标1个指标一行
6056
6059
  {var pixelRatio=GetDevicePixelRatio();var border=this.Frame.GetBorder();if(this.Frame.IsHScreen===true){var left=1;var top=2*pixelRatio;var right=this.Frame.ChartBorder.GetHeight();var bottom=this.Frame.ChartBorder.GetWidthEx();}else{var top=border.TopTitle+2*pixelRatio;if(!this.IsShowMainIndexTitle)top=this.Frame.ChartBorder.GetTop()+2*pixelRatio;var left=this.Frame.ChartBorder.GetLeft()+this.MerginLeft;var right=border.Right;var bottom=border.Bottom;}var lineSpace=this.OverlayIndexType.LineSpace*pixelRatio;var x=left,y=top;var fontHeight=GetFontHeight(this.Canvas,this.Font,"擎");y=top+fontHeight/2;var _iteratorNormalCompletion11=true;var _didIteratorError11=false;var _iteratorError11=undefined;try{for(var _iterator11=(0,_getIterator3.default)(this.OverlayIndex),_step11;!(_iteratorNormalCompletion11=(_step11=_iterator11.next()).done);_iteratorNormalCompletion11=true){item=_step11.value;var overlayItem=item[1];var overlayID=item[0];var toolbarInfo={Width:0,YCenter:y,ID:overlayID};this.DrawOverlayToolbar(overlayItem,toolbarInfo,moveonPoint,mouseStatus);if(!overlayItem.IsShowIndexTitle)continue;if(!overlayItem.Frame.IsShowIndexTitle)continue;x=left+toolbarInfo.Width;this.Canvas.font=this.Font;this.Canvas.textAlign="left";this.Canvas.textBaseline="middle";if(overlayItem.Title&&this.IsShowOverlayIndexName){var textWidth=this.Canvas.measureText(overlayItem.Title).width+2;if(x+textWidth<right){if(this.OverlayIndexType.BGColor){this.Canvas.fillStyle=this.OverlayIndexType.BGColor;var rtBG={Left:x,Top:y-fontHeight/2,Width:textWidth,Height:fontHeight+lineSpace};//保存下标题的坐标
6057
6060
  this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}if(this.IsSelectedChart(overlayID))this.DrawSelectedLine(x,y,textWidth,overlayItem.Title);this.Canvas.fillStyle=this.TitleColor;this.Canvas.fillText(overlayItem.Title,x,y,textWidth);}x+=textWidth;}for(var i=0;i<overlayItem.Data.length;++i){var item=overlayItem.Data[i];if(!item||!item.Data||!item.Data.Data||!item.Name)continue;if(item.IsVisible===false)continue;if(item.Data.Data.length<=0)continue;var value=null;var valueText=null;var aryText=null;if(item.DataType=="StraightLine")//直线只有1个数据
6058
- {value=item.Data.Data[0];valueText=this.FormatValue(value,item);}else{var index=Math.abs(this.CursorIndex-0.5);index=parseInt(index.toFixed(0));if(this.IsKLineFrame)index=this.CursorIndex;var dataIndex=item.Data.DataOffset+index;if(dataIndex>=item.Data.Data.length)dataIndex=item.Data.Data.length-1;if(dataIndex<0)continue;value=item.Data.Data[dataIndex];if(value==null)continue;if(item.DataType=="HistoryData-Vol"){value=value.Vol;valueText=this.FormatValue(value,item);}else if(item.DataType=="MultiReport"){valueText=this.FormatMultiReport(value,item);}else if(item.DataType=="ChartStackedBar"){aryText=this.FromatStackedBarTitle(value,item);if(!aryText)continue;}else if(item.DataType=="ChartMultiPoint"){aryText=this.ForamtMultiPointTitle(dataIndex,item);if(!aryText)continue;}else if(item.DataType=="ChartMultiBar"){aryText=this.ForamtMultiBarTitle(dataIndex,item);if(!aryText)continue;}else{valueText=this.FormatValue(value,item);}}if(aryText){var text;for(var k=0;k<aryText.length;++k){var titleItem=aryText[k];if(titleItem.Name)text=titleItem.Name+":"+titleItem.Text;else text=titleItem.Text;var textWidth=this.Canvas.measureText(text).width+2;//后空2个像素
6061
+ {value=item.Data.Data[0];valueText=this.FormatValue(value,item);}else{var index=Math.abs(this.CursorIndex-0.5);index=parseInt(index.toFixed(0));if(this.IsKLineFrame)index=this.CursorIndex;var dataIndex=item.Data.DataOffset+index;if(dataIndex>=item.Data.Data.length)dataIndex=item.Data.Data.length-1;if(dataIndex<0)continue;value=item.Data.Data[dataIndex];if(value==null)continue;if(item.DataType=="HistoryData-Vol"){value=value.Vol;valueText=this.FormatValue(value,item);}else if(item.DataType=="MultiReport"){valueText=this.FormatMultiReport(value,item);}else if(item.DataType=="ChartStackedBar"){aryText=this.FromatStackedBarTitle(value,item);if(!aryText)continue;}else if(item.DataType=="ChartMultiPoint"){aryText=this.ForamtMultiPointTitle(dataIndex,item);if(!aryText)continue;}else if(item.DataType=="ChartMultiBar"){aryText=this.ForamtMultiBarTitle(dataIndex,item);if(!aryText)continue;}else if(item.DataType=="DRAWKLINE"){aryText=this.FromatKLineTitle(value,item);if(!aryText)continue;}else{valueText=this.FormatValue(value,item);}}if(aryText){var text;for(var k=0;k<aryText.length;++k){var titleItem=aryText[k];if(titleItem.Name)text=titleItem.Name+":"+titleItem.Text;else text=titleItem.Text;var textWidth=this.Canvas.measureText(text).width+2;//后空2个像素
6059
6062
  if(x+textWidth>right)break;if(this.OverlayIndexType.BGColor){this.Canvas.fillStyle=this.OverlayIndexType.BGColor;var rtBG={Left:x,Top:y-fontHeight/2,Width:textWidth,Height:fontHeight+lineSpace};//保存下标题的坐标
6060
6063
  this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}this.Canvas.fillStyle=titleItem.Color;this.Canvas.fillText(text,x,y,textWidth);x+=textWidth;}}else{var text=valueText;if(item.Name){var dyTitle=this.GetDynamicOutName(item.Name,overlayID);if(dyTitle)text=dyTitle+":"+valueText;else text=item.Name+":"+valueText;}var textWidth=this.Canvas.measureText(text).width+2;//后空2个像素
6061
6064
  if(x+textWidth>right)break;if(this.OverlayIndexType.BGColor){this.Canvas.fillStyle=this.OverlayIndexType.BGColor;var rtBG={Left:x,Top:y-fontHeight/2,Width:textWidth,Height:fontHeight+lineSpace};//保存下标题的坐标
@@ -11792,7 +11795,8 @@ if(IFrameSplitOperator.IsNonEmptyArray(varItem.LineDash))line.LineDash=varItem.L
11792
11795
  {}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;//虚线
11793
11796
  if(varItem.IsShow==false)line.IsShow=false;var titleIndex=windowIndex+1;line.Data.Data=varItem.Data;if(varItem.IsShowTitle===false)//NOTEXT 不绘制标题
11794
11797
  {}else if(IFrameSplitOperator.IsString(varItem.Name)&&varItem.Name.indexOf("NOTEXT")==0)//标题中包含NOTEXT不绘制标题
11795
- {}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);hqChart.TitlePaint[titleIndex].Data[id].ChartClassName=line.ClassName;}this.SetChartIndexName(line);hqChart.ChartPaint.push(line);};this.CreateOverlayLine=function(hqChart,windowIndex,varItem,id,lineType){if(lineType==7)var line=new ChartStepLine();var line=new ChartSubLine();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;if(varItem.Color)line.Color=this.GetColor(varItem.Color);else line.Color=this.GetDefaultColor(id);if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)line.LineWidth=width;}if(varItem.IsDotLine)line.IsDotLine=true;//虚线
11798
+ {}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);hqChart.TitlePaint[titleIndex].Data[id].ChartClassName=line.ClassName;}this.SetChartIndexName(line);hqChart.ChartPaint.push(line);};//标题显示,没有图形
11799
+ this.CreateTitle=function(hqChart,windowIndex,varItem,id){var chart=new ChartIndexTitle();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Identify=this.Guid;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);chart.Data.Data=varItem.Data;var titleIndex=windowIndex+1;var titleData=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);titleData.DataType="ChartIndexTitle";hqChart.TitlePaint[titleIndex].Data[id]=titleData;this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);};this.CreateOverlayLine=function(hqChart,windowIndex,varItem,id,lineType){if(lineType==7)var line=new ChartStepLine();var line=new ChartSubLine();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;if(varItem.Color)line.Color=this.GetColor(varItem.Color);else line.Color=this.GetDefaultColor(id);if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)line.LineWidth=width;}if(varItem.IsDotLine)line.IsDotLine=true;//虚线
11796
11800
  if(varItem.IsShow==false)line.IsShow=false;var titleIndex=windowIndex+1;line.Data.Data=varItem.Data;hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(line.Data,varItem.Name,line.Color);hqChart.TitlePaint[titleIndex].Data[id].ChartClassName=line.ClassName;hqChart.ChartPaint.push(line);};this.CreateSingleLine=function(hqChart,windowIndex,varItem,id,lineType){var line=new ChartSingleLine();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.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)line.LineWidth=width;}if(varItem.IsDotLine)line.IsDotLine=true;//虚线
11797
11801
  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 不绘制标题
11798
11802
  {}else if(IFrameSplitOperator.IsString(varItem.Name)&&varItem.Name.indexOf("NOTEXT")==0)//标题中包含NOTEXT不绘制标题
@@ -11869,7 +11873,8 @@ if(this.YSplitScale)hqChart.Frame.SubFrame[windowIndex].Frame.YSplitScale=this.Y
11869
11873
  */for(var _i130=0;_i130<this.OutVar.length;++_i130){var _item26=this.OutVar[_i130];if(_item26.IsExData===true)continue;//扩展数据不显示图形
11870
11874
  if(_item26.Type==1000||_item26.Type==1001)continue;//数据集合, 字符串
11871
11875
  if(_item26.Type==0){if(_item26.IsOverlayLine)this.CreateOverlayLine(hqChart,windowIndex,_item26,_i130,_item26.Type);else if(_item26.IsSingleLine)this.CreateSingleLine(hqChart,windowIndex,_item26,_i130,_item26.Type);else this.CreateLine(hqChart,windowIndex,_item26,_i130,_item26.Type);}else if(_item26.Type==1){switch(_item26.Draw.DrawType){case'STICKLINE':this.CreateBar(hqChart,windowIndex,_item26,_i130);break;case'DRAWTEXT':this.CreateDrawTextV2(hqChart,windowIndex,_item26,_i130);break;case'SUPERDRAWTEXT':this.CreateText(hqChart,windowIndex,_item26,_i130);break;case'DRAWLINE':this.CreateStraightLine(hqChart,windowIndex,_item26,_i130);break;case'DRAWBAND':this.CreateBand(hqChart,windowIndex,_item26,_i130);break;case"FILLRGN":this.CreateFillRGN(hqChart,windowIndex,_item26,_i130);break;case"FILLRGN2":this.CreateFillRGN2(hqChart,windowIndex,_item26,_i130);break;case"FILLTOPRGN":case"FILLBOTTOMRGN":case"FILLVERTICALRGN":this.CreateFillBGRGN(hqChart,windowIndex,_item26,_i130);break;case"FLOATRGN":this.CreateFLOATRGN(hqChart,windowIndex,_item26,_i130);break;case'DRAWKLINE':case"DRAWKLINE1":this.CreateKLine(hqChart,windowIndex,_item26,_i130);break;case"DRAWOVERLAYKLINE":this.CreateOverlayKLine(hqChart,windowIndex,_item26,_i130);break;case"DRAWCOLORKLINE":this.CreateDrawColorKLine(hqChart,windowIndex,_item26,_i130);break;case'DRAWKLINE_IF':this.CreateKLine(hqChart,windowIndex,_item26,_i130);break;case'POLYLINE':this.CreatePolyLine(hqChart,windowIndex,_item26,_i130);break;case'DRAWGBK':case"DRAWGBK2":this.CreateBackgroud(hqChart,windowIndex,_item26,_i130);break;case"DRAWGBK_DIV":this.CreateBackgroundDiv(hqChart,windowIndex,_item26,_i130);break;case'DRAWTEXT_LINE':this.CreateTextLine(hqChart,windowIndex,_item26,_i130);break;case'DRAWNUMBER':this.CreateDrawNumber(hqChart,windowIndex,_item26,_i130);break;case"DRAWNUMBER_FIX":case'DRAWTEXT_FIX':this.CreateNumberText(hqChart,windowIndex,_item26,_i130);break;case'DRAWICON':this.CreateIcon(hqChart,windowIndex,_item26,_i130);break;case"ICON":this.CreateIcon(hqChart,windowIndex,_item26,_i130);break;case"TIPICON":this.CreateTipIcon(hqChart,windowIndex,_item26,_i130);break;case'DRAWCHANNEL':this.CreateChannel(hqChart,windowIndex,_item26,_i130);break;case'PARTLINE':this.CreatePartLine(hqChart,windowIndex,_item26,_i130);break;case'DRAWRECTREL':this.CreateRectangle(hqChart,windowIndex,_item26,_i130);break;case"DRAWTEXTABS":case"DRAWTEXTREL":this.CreateDrawText(hqChart,windowIndex,_item26,_i130);break;case"DRAWOVERLAYLINE":this.CreateScriptOverlayLine(hqChart,windowIndex,_item26,_i130);break;case"DRAWSL":this.CreateChartSlopeLine(hqChart,windowIndex,_item26,_i130);break;case"VERTLINE":this.CreateChartVericaltLine(hqChart,windowIndex,_item26,_i130);break;case"HORLINE":this.CreateChartHorizontalLine(hqChart,windowIndex,_item26,_i130);break;case'MULTI_LINE':this.CreateMultiLine(hqChart,windowIndex,_item26,_i130);break;case"MULTI_POINT":this.CreateMultiPoint(hqChart,windowIndex,_item26,_i130);break;case'MULTI_BAR':this.CreateMultiBar(hqChart,windowIndex,_item26,_i130);break;case'MULTI_TEXT':this.CreateMultiText(hqChart,windowIndex,_item26,_i130);break;case'MULTI_SVGICON':this.CreateMultiSVGIcon(hqChart,windowIndex,_item26,_i130);break;case"DRAWSVG":this.CreateChartDrawSVG(hqChart,windowIndex,_item26,_i130);break;case"MULTI_HTMLDOM":this.CreateMulitHtmlDom(hqChart,windowIndex,_item26,_i130);break;case"COLOR_KLINE":this.CreateColorKLine(hqChart,windowIndex,_item26,_i130);break;case"KLINE_BG":this.CreateBackgroud(hqChart,windowIndex,_item26,_i130);break;case"MULTI_POINT_LINE":this.CreateLineMultiData(hqChart,windowIndex,_item26,_i130);break;case"DRAW_SIMPLE_TABLE":this.CreateSimpleTable(hqChart,windowIndex,_item26,_i130);break;case"DRAW_SIMPLE_PIE":this.CreateSimplePie(hqChart,windowIndex,_item26,_i130);break;case"DRAW_SIMPLE_RADAR":this.CreateSimpleRadar(hqChart,windowIndex,_item26,_i130);break;case"DRAW_SIMPLE_DOUGHNUT":this.CreateSimpleDoughnut(hqChart,windowIndex,_item26,_i130);break;case"BUY":case"SELL":case"SELLSHORT":case"BUYSHORT":this.CreateTradeIcon(hqChart,windowIndex,_item26,_i130);break;case"DRAWLASTBARICON":case"DRAWLASTBARNUMBER":case"DRAWLASTBARTEXT":this.CreateDrawLastBarText(hqChart,windowIndex,_item26,_i130);break;case SCRIPT_CHART_NAME.OVERLAY_BARS:this.CreateStackedBar(hqChart,windowIndex,_item26,_i130);break;case SCRIPT_CHART_NAME.KLINE_TABLE:this.CreateKLineTable(hqChart,windowIndex,_item26,_i130);break;case SCRIPT_CHART_NAME.SCATTER_PLOT:this.CreateScatterPlot(hqChart,windowIndex,_item26,_i130);break;case SCRIPT_CHART_NAME.CLIP_COLOR_STICK:this.CreateClipColorStick(hqChart,windowIndex,_item26,_i130);break;default:{var find=g_ScriptIndexChartFactory.Get(_item26.Draw.DrawType);//外部挂接
11872
- if(find&&find.CreateChartCallback)find.CreateChartCallback(hqChart,windowIndex,_item26,_i130,this);}break;}}else if(_item26.Type==2){this.CreateMACD(hqChart,windowIndex,_item26,_i130);}else if(_item26.Type==3){this.CreatePointDot(hqChart,windowIndex,_item26,_i130,hisData);}else if(_item26.Type==4){this.CreateLineStick(hqChart,windowIndex,_item26,_i130);}else if(_item26.Type==5){this.CreateStick(hqChart,windowIndex,_item26,_i130);}else if(_item26.Type==6){this.CreateVolStick(hqChart,windowIndex,_item26,_i130,hisData);}else if(_item26.Type==7){this.CreateLine(hqChart,windowIndex,_item26,_i130,_item26.Type);}else if(_item26.Type==8){this.CreateLine(hqChart,windowIndex,_item26,_i130,_item26.Type);}else if(_item26.Type==9){this.CreateArea(hqChart,windowIndex,_item26,_i130);}var titlePaint=hqChart.TitlePaint[windowIndex+1];if(titlePaint&&titlePaint.Data&&_i130<titlePaint.Data.length)//设置标题数值 小数位数和格式
11876
+ if(find&&find.CreateChartCallback)find.CreateChartCallback(hqChart,windowIndex,_item26,_i130,this);}break;}}else if(_item26.Type==2){this.CreateMACD(hqChart,windowIndex,_item26,_i130);}else if(_item26.Type==3){this.CreatePointDot(hqChart,windowIndex,_item26,_i130,hisData);}else if(_item26.Type==4){this.CreateLineStick(hqChart,windowIndex,_item26,_i130);}else if(_item26.Type==5){this.CreateStick(hqChart,windowIndex,_item26,_i130);}else if(_item26.Type==6){this.CreateVolStick(hqChart,windowIndex,_item26,_i130,hisData);}else if(_item26.Type==7){this.CreateLine(hqChart,windowIndex,_item26,_i130,_item26.Type);}else if(_item26.Type==8){this.CreateLine(hqChart,windowIndex,_item26,_i130,_item26.Type);}else if(_item26.Type==9){this.CreateArea(hqChart,windowIndex,_item26,_i130);}else if(_item26.Type==10)//标题
11877
+ {this.CreateTitle(hqChart,windowIndex,_item26,_i130);}var titlePaint=hqChart.TitlePaint[windowIndex+1];if(titlePaint&&titlePaint.Data&&_i130<titlePaint.Data.length)//设置标题数值 小数位数和格式
11873
11878
  {if(this.StringFormat>0)titlePaint.Data[_i130].StringFormat=this.StringFormat;if(this.FloatPrecision>=0)titlePaint.Data[_i130].FloatPrecision=this.FloatPrecision;if(this.OutName&&this.OutName.length>0&&this.Arguments&&this.Arguments.length>0){titlePaint.SetDynamicTitle(this.OutName,this.Arguments);}}}var titleIndex=windowIndex+1;var titlePaint=hqChart.TitlePaint[titleIndex];titlePaint.Title=this.Name;titlePaint.Identify=this.Guid;//指标ID
11874
11879
  titlePaint.ArgumentsText=null;titlePaint.Script=this;titlePaint.IsShowMainIndexTitle=this.IsShowIndexTitle;if(!this.IsShortTitle){var indexParam='';for(var _i131=0;_i131<this.Arguments.length;++_i131){var _item27=this.Arguments[_i131];if(indexParam.length>0)indexParam+=',';indexParam+=_item27.Value.toString();}if(indexParam.length>0)titlePaint.ArgumentsText='('+indexParam+')';}if(this.TitleFont)titlePaint.Font=this.TitleFont;return true;};//给一个默认的颜色
11875
11880
  this.GetDefaultColor=function(id){var COLOR_ARRAY=null;//使用全局线段配置
@@ -11948,7 +11953,7 @@ this.CreateMACD=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.O
11948
11953
  frame.ChartPaint.push(chart);};this.CreateVolStick=function(hqChart,windowIndex,varItem,id,hisData){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartVolStick();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.KLineDrawType=hqChart.KLineDrawType;//设置K线显示类型
11949
11954
  if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);if(varItem.UpColor)chart.UpColor=varItem.UpColor;if(varItem.DownColor)chart.DownColor=varItem.DownColor;if(IFrameSplitOperator.IsNumber(varItem.StickType))chart.BarType=varItem.StickType;if(IFrameSplitOperator.IsNumber(varItem.BarColorType))chart.BarColorType=varItem.BarColorType;if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(IFrameSplitOperator.IsPlusNumber(width))chart.BarWidth=width;}var titleIndex=windowIndex+1;chart.Data.Data=varItem.Data;chart.HistoryData=hisData;this.ReloadChartResource(hqChart,windowIndex,chart);var titlePaint=hqChart.TitlePaint[titleIndex];var titleData=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;this.SetTitleData(titleData,chart);this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateBand=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartBand();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.FirstColor=varItem.Draw.Color[0];chart.SecondColor=varItem.Draw.Color[1];chart.Data.Data=varItem.Draw.DrawData;if(IFrameSplitOperator.IsBool(varItem.IsFirstDraw))chart.IsDrawFirst=varItem.IsFirstDraw;this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};//创建K线图
11950
11955
  this.CreateKLine=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartKLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.Data.Data=varItem.Draw.DrawData;chart.IsShowMaxMinPrice=false;chart.IsShowKTooltip=false;if(varItem.Color)//如果设置了颜色,使用外面设置的颜色
11951
- chart.UnchagneColor=chart.DownColor=chart.UpColor=this.GetColor(varItem.Color);frame.ChartPaint.push(chart);};this.CreatePolyLine=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartLine();chart.Canvas=hqChart.Canvas;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(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)chart.LineWidth=width;}var titleIndex=windowIndex+1;chart.Data.Data=varItem.Draw.DrawData;var titlePaint=hqChart.TitlePaint[titleIndex];titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=new DynamicTitleData(line.Data,' ',line.Color);//给一个空的标题
11956
+ chart.UnchagneColor=chart.DownColor=chart.UpColor=this.GetColor(varItem.Color);if(varItem.Draw.Config){var config=varItem.Draw.Config;if(IFrameSplitOperator.IsBool(config.IsShowMaxMinPrice))chart.IsShowMaxMinPrice=config.IsShowMaxMinPrice;if(IFrameSplitOperator.IsBool(config.IsShowKTooltip))chart.IsShowKTooltip=config.IsShowKTooltip;if(config.Symbol)chart.Symbol=config.Symbol;if(config.Name)chart.Title=config.Name;}var bShowTitle=false;if(IFrameSplitOperator.IsBool(varItem.IsShowTitle))bShowTitle=varItem.IsShowTitle;if(bShowTitle){var titleIndex=windowIndex+1;chart.Data.Data=varItem.Draw.DrawData;var titlePaint=hqChart.TitlePaint[titleIndex];var titleData=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);titleData.DataType="DRAWKLINE";titleData.Symbol=chart.Symbol;titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;}frame.ChartPaint.push(chart);};this.CreatePolyLine=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartLine();chart.Canvas=hqChart.Canvas;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(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)chart.LineWidth=width;}var titleIndex=windowIndex+1;chart.Data.Data=varItem.Draw.DrawData;var titlePaint=hqChart.TitlePaint[titleIndex];titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=new DynamicTitleData(line.Data,' ',line.Color);//给一个空的标题
11952
11957
  frame.ChartPaint.push(chart);};this.CreateNumberText=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();chart.TextAlign="center";if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);if(varItem.IsDrawAbove)chart.Direction=1;else chart.Direction=2;if(varItem.Draw.Position)chart.Position=varItem.Draw.Position;//赋值坐标
11953
11958
  var titleIndex=windowIndex+1;chart.Data.Data=varItem.Draw.DrawData.Value;chart.Text=varItem.Draw.DrawData.Text;//hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(bar.Data,varItem.Name,bar.Color);
11954
11959
  this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateTextLine=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartTextLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;if(varItem.Draw&&varItem.Draw.DrawData){var drawData=varItem.Draw.DrawData;chart.Text=drawData.Text;chart.Line=drawData.Line;chart.Price=drawData.Price;}frame.ChartPaint.push(chart);};this.CreateStackedBar=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartStackedBar();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.BarColor))chart.BarColor=varItem.Draw.BarColor;if(IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.BarName))chart.BarName=varItem.Draw.BarName;if(IFrameSplitOperator.IsNumber(varItem.Draw.LineWidth))chart.LineWidth=varItem.Draw.LineWidth;if(IFrameSplitOperator.IsNumber(varItem.Draw.BarType))chart.BarType=varItem.Draw.BarType;chart.Data.Data=varItem.Draw.DrawData;var titleIndex=windowIndex+1;var titlePaint=hqChart.TitlePaint[titleIndex];var titleData=new DynamicTitleData(chart.Data,chart.BarName,chart.BarColor);titleData.DataType="ChartStackedBar";titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;frame.ChartPaint.push(chart);};this.CreateDrawColorKLine=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartColorKline();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.DrawName="DRAWCOLORKLINE";chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.Data.Data=varItem.Draw.DrawData;if(IFrameSplitOperator.IsBool(varItem.Draw.IsEmptyBar))chart.IsEmptyBar=varItem.Draw.IsEmptyBar;if(varItem.Draw.Color)chart.Color=varItem.Draw.Color;frame.ChartPaint.push(chart);};//创建图标
@@ -14200,10 +14205,10 @@ this.UpdatMultiSVGIconV2Tooltip=function(data){var tooltipData=data.Tooltip;if(!
14200
14205
  this.UpdatChartOXTooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!tooltipData.Data.Data)return;var item=tooltipData.Data.Data;var period=this.HQChart.Period;var aryText=[];if(ChartData.IsDayPeriod(period,true)){var strStartDate=IFrameSplitOperator.FormatDateString(item.Start.Date,"YYYY-MM-DD");var strEndDate=IFrameSplitOperator.FormatDateString(item.End.Date,"YYYY-MM-DD");aryText.push({Title:"起始时间",Text:strStartDate,Color:this.ValueColor});aryText.push({Title:"结束时间",Text:strEndDate,Color:this.ValueColor});}else if(ChartData.IsMinutePeriod(period,true)){var strStartDate=IFrameSplitOperator.FormatDateString(item.Start.Date);var strStartTime=IFrameSplitOperator.FormatTimeString(item.Start.Time,"HH:MM");var strEndDate=IFrameSplitOperator.FormatDateString(item.End.Date);var strEndTime=IFrameSplitOperator.FormatTimeString(item.End.Time,"HH:MM");aryText.push({Title:"起始时间",Text:strStartDate+' '+strStartTime,Color:this.ValueColor});aryText.push({Title:"结束时间",Text:strEndDate+' '+strEndTime,Color:this.ValueColor});}this.AryText=aryText;this.UpdateTableDOM();this.ShowTooltip(data);};//表头图标
14201
14206
  this.ReportHeaderIconTooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!IFrameSplitOperator.IsNonEmptyArray(tooltipData.Data.AryText))return;this.AryText=tooltipData.Data.AryText;this.UpdateTableDOM();this.ShowTooltip(data);};//表格单元格截断内容
14202
14207
  this.ReportCellTruncateTooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!IFrameSplitOperator.IsNonEmptyArray(tooltipData.Data.AryText))return;var item=tooltipData.Data.AryText[0];if(!item.Text)return;this.AryText=[{Title:item.Text,IsMergeCell:true}];this.UpdateTableDOM();this.ShowTooltip(data);};this.TReportIconTooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!IFrameSplitOperator.IsNonEmptyArray(tooltipData.Data.AryText))return;this.AryText=tooltipData.Data.AryText;this.UpdateTableDOM();this.ShowTooltip(data);};this.UpdateTableDOM=function(){var index=0;for(index=0;index<this.AryText.length&&index<this.MaxRowCount;++index){var outItem=this.AryText[index];var item=this.AryData[index];if(outItem.HTMLTitle)item.TitleSpan.innerHTML=outItem.HTMLTitle;else item.TitleSpan.innerText=outItem.Title;item.TitleSpan.style.color=this.TextColor;if(outItem.HTMLText)item.TextSpan.innerHTML=outItem.HTMLText;else item.TextSpan.innerText=outItem.Text;item.TextSpan.style.color=outItem.Color;item.TextTd.style.color=outItem.Color;if(outItem.ClassName){item.TextSpan.className=outItem.ClassName;}else{if(item.TextSpan.className!=this.ValueAlign.Right)item.TextSpan.className=this.ValueAlign.Right;}if(outItem.IsMergeCell)//合并单元格
14203
- {item.TitleTd.colspan=2;item.TextTd.style.display="none";}else{if(item.TitleTd.colspan!=1)item.TitleTd.colspan=1;item.TextTd.style.display="";}item.Tr.style.display="";if(item.Tr2)item.Tr2.style.display="none";}for(;index<this.MaxRowCount;++index){var item=this.AryData[index];item.Tr.style.display="none";if(item.Tr2)item.Tr2.style.display="none";}};this.GetFormatKLineTooltipText=function(kItem){var data=kItem.Item;var symbol=kItem.Symbol;var upperSymbol=symbol.toUpperCase();var defaultfloatPrecision=GetfloatPrecision(symbol);//价格小数位数
14208
+ {item.TitleTd.colspan=2;item.TextTd.style.display="none";}else{if(item.TitleTd.colspan!=1)item.TitleTd.colspan=1;item.TextTd.style.display="";}item.Tr.style.display="";if(item.Tr2)item.Tr2.style.display="none";}for(;index<this.MaxRowCount;++index){var item=this.AryData[index];item.Tr.style.display="none";if(item.Tr2)item.Tr2.style.display="none";}};this.GetFormatKLineTooltipText=function(kItem){var data=kItem.Item;var symbol=kItem.Symbol;if(data&&data.Symbol)symbol=symbol;var upperSymbol="";if(symbol)upperSymbol=symbol.toUpperCase();var defaultfloatPrecision=GetfloatPrecision(symbol);//价格小数位数
14204
14209
  var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);//日期
14205
14210
  var dateItem=this.ForamtDate(data.Date,"YYYY/MM/DD/W",'FloatTooltip-Date');//时间
14206
- var timeItem=null;if(IFrameSplitOperator.IsNumber(data.Time))timeItem=this.FormatTime(data.Time,this.HQChart.Period,null,'FloatTooltip-Time');var overlayItem=null;if(kItem.IsOverlay||kItem.IsIndexKLine&&kItem.Name)overlayItem={Title:"",Text:kItem.Name,Color:this.TextColor,ClassName:this.ValueAlign.Left};var yClose=data.YClose;//昨收价|昨结算价
14211
+ var timeItem=null;if(IFrameSplitOperator.IsNumber(data.Time))timeItem=this.FormatTime(data.Time,this.HQChart.Period,null,'FloatTooltip-Time');var overlayItem=null;if(kItem.IsOverlay)overlayItem={Title:"",Text:kItem.Name,Color:this.TextColor,ClassName:this.ValueAlign.Left};else if(kItem.IsIndexKLine){if(kItem.Name)overlayItem={Title:"",Text:kItem.Name,Color:this.TextColor,ClassName:this.ValueAlign.Left};else if(data&&data.Name)overlayItem={Title:"",Text:data.Name,Color:this.TextColor,ClassName:this.ValueAlign.Left};}var yClose=data.YClose;//昨收价|昨结算价
14207
14212
  var aryText=[this.ForamtPrice(data.Open,yClose,defaultfloatPrecision,'FloatTooltip-Open'),this.ForamtPrice(data.High,yClose,defaultfloatPrecision,'FloatTooltip-High'),this.ForamtPrice(data.Low,yClose,defaultfloatPrecision,'FloatTooltip-Low'),this.ForamtPrice(data.Close,yClose,defaultfloatPrecision,'FloatTooltip-Close'),this.ForamtPrice(data.YClose,data.YClose,defaultfloatPrecision,'FloatTooltip-YClose'),this.FormatVol(data.Vol/unit,'FloatTooltip-Vol'),this.FormatAmount(data.Amount,'FloatTooltip-Amount'),this.FormatIncrease(data.Close,yClose,defaultfloatPrecision,'FloatTooltip-Increase'),this.FormatAmplitude(data.High,data.Low,yClose,defaultfloatPrecision,'FloatTooltip-Amplitude')];if(timeItem)aryText.unshift(timeItem);aryText.unshift(dateItem);if(overlayItem)aryText.unshift(overlayItem);//换手率
14208
14213
  if(IFrameSplitOperator.IsNumber(data.FlowCapital)){aryText.push(this.FormatExchange(data.Vol,data.FlowCapital,'FloatTooltip-Exchange'));}//持仓量 结算价
14209
14214
  if(MARKET_SUFFIX_NAME.IsFutures(upperSymbol)){aryText.push(this.FormatPosition(data.Position,'FloatTooltip-Position'));aryText.push(this.ForamtFClose(data.FClose,defaultfloatPrecision,'FloatTooltip-FClose'));aryText.push(this.ForamtFClose(data.YFClose,defaultfloatPrecision,'FloatTooltip-YSettlePrice'));}var event=this.HQChart.GetEventCallback(JSCHART_EVENT_ID.ON_FORMAT_KLINE_FLOAT_TOOLTIP);if(event&&event.Callback){var sendData={AryText:aryText,Data:kItem,HQChart:this.HQChart};event.Callback(event,sendData,this);}return aryText;};//信息地雷
@@ -14363,7 +14368,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
14363
14368
  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);};}/********************************************************************************
14364
14369
  * 版本信息输出
14365
14370
  *
14366
- */var HQCHART_VERSION="1.1.14483";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();//把给外界调用的方法暴露出来
14371
+ */var HQCHART_VERSION="1.1.14488";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();//把给外界调用的方法暴露出来
14367
14372
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
14368
14373
  // BaseIndex:BaseIndex,
14369
14374
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.14484",
3
+ "version": "1.1.14489",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -1555,7 +1555,10 @@ function JSFloatTooltip()
1555
1555
  {
1556
1556
  var data=kItem.Item;
1557
1557
  var symbol=kItem.Symbol;
1558
- var upperSymbol=symbol.toUpperCase();
1558
+ if (data && data.Symbol) symbol=symbol;
1559
+ var upperSymbol="";
1560
+ if (symbol) upperSymbol=symbol.toUpperCase();
1561
+
1559
1562
  var defaultfloatPrecision=GetfloatPrecision(symbol);//价格小数位数
1560
1563
  var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
1561
1564
 
@@ -1567,9 +1570,15 @@ function JSFloatTooltip()
1567
1570
  if (IFrameSplitOperator.IsNumber(data.Time)) timeItem=this.FormatTime(data.Time, this.HQChart.Period, null, 'FloatTooltip-Time');
1568
1571
 
1569
1572
  var overlayItem=null;
1570
- if (kItem.IsOverlay || (kItem.IsIndexKLine && kItem.Name))
1573
+ if (kItem.IsOverlay)
1571
1574
  overlayItem={ Title:"", Text:kItem.Name, Color:this.TextColor, ClassName:this.ValueAlign.Left };
1572
-
1575
+ else if (kItem.IsIndexKLine)
1576
+ {
1577
+ if (kItem.Name)
1578
+ overlayItem={ Title:"", Text:kItem.Name, Color:this.TextColor, ClassName:this.ValueAlign.Left };
1579
+ else if (data && data.Name )
1580
+ overlayItem={ Title:"", Text:data.Name, Color:this.TextColor, ClassName:this.ValueAlign.Left };
1581
+ }
1573
1582
 
1574
1583
 
1575
1584
  var yClose=data.YClose; //昨收价|昨结算价
@@ -58354,6 +58354,9 @@ HQData.APIIndex_DRAWKLINE=function(data, callback)
58354
58354
  IsShowTitle:true,
58355
58355
  };
58356
58356
 
58357
+
58358
+ var textData={ name:"", type:10, color:"rgb(148,0,211)", data:[], isshow:false }; //名字
58359
+
58357
58360
  var aryDate=[];
58358
58361
  var aryTime=[];
58359
58362
  for(var i=100;i<kData.Data.length-100;++i)
@@ -58374,14 +58377,16 @@ HQData.APIIndex_DRAWKLINE=function(data, callback)
58374
58377
  klineData.Draw.DrawData.push(newItem);
58375
58378
 
58376
58379
  aryDate.push(kItem.Date);
58377
- aryTime.push(kItem.Time)
58380
+ aryTime.push(kItem.Time);
58381
+
58382
+ textData.data.push(kItem.YClose.toFixed(2));
58378
58383
  }
58379
58384
 
58380
58385
  var apiData=
58381
58386
  {
58382
58387
  code:0,
58383
58388
  stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
58384
- outdata: { date:aryDate, time:aryTime, outvar:[klineData] }
58389
+ outdata: { date:aryDate, time:aryTime, outvar:[textData, klineData] }
58385
58390
  };
58386
58391
 
58387
58392
  console.log('[HQData.APIIndex_DRAWKLINE] apiData ', apiData);
@@ -20745,7 +20745,7 @@ function ScriptIndex(name,script,args,option)
20745
20745
  hqChart.ChartPaint.push(line);
20746
20746
  }
20747
20747
 
20748
- this.CreateArea=function(hqChart, windowIndex, varItem, id,)
20748
+ this.CreateArea=function(hqChart, windowIndex, varItem, id)
20749
20749
  {
20750
20750
  var line=new ChartArea();
20751
20751
 
@@ -20801,6 +20801,29 @@ function ScriptIndex(name,script,args,option)
20801
20801
  hqChart.ChartPaint.push(line);
20802
20802
  }
20803
20803
 
20804
+ //标题显示,没有图形
20805
+ this.CreateTitle=function(hqChart, windowIndex, varItem, id)
20806
+ {
20807
+ var chart=new ChartIndexTitle();
20808
+
20809
+ chart.Canvas=hqChart.Canvas;
20810
+ chart.Name=varItem.Name;
20811
+ chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;
20812
+ chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;
20813
+ chart.Identify=this.Guid;
20814
+ if (varItem.Color) chart.Color=this.GetColor(varItem.Color);
20815
+ else chart.Color=this.GetDefaultColor(id);
20816
+ chart.Data.Data=varItem.Data;
20817
+
20818
+ var titleIndex=windowIndex+1;
20819
+ var titleData=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);
20820
+ titleData.DataType="ChartIndexTitle";
20821
+ hqChart.TitlePaint[titleIndex].Data[id]=titleData;
20822
+
20823
+ this.SetChartIndexName(chart);
20824
+ hqChart.ChartPaint.push(chart);
20825
+ }
20826
+
20804
20827
  this.CreateOverlayLine=function(hqChart,windowIndex,varItem,id,lineType)
20805
20828
  {
20806
20829
  if (lineType==7) var line=new ChartStepLine();
@@ -22644,6 +22667,10 @@ function ScriptIndex(name,script,args,option)
22644
22667
  {
22645
22668
  this.CreateArea(hqChart,windowIndex,item,i);
22646
22669
  }
22670
+ else if (item.Type==10) //标题
22671
+ {
22672
+ this.CreateTitle(hqChart,windowIndex,item,i);
22673
+ }
22647
22674
 
22648
22675
  var titlePaint=hqChart.TitlePaint[windowIndex+1];
22649
22676
  if (titlePaint && titlePaint.Data && i<titlePaint.Data.length) //设置标题数值 小数位数和格式
@@ -23455,7 +23482,7 @@ function OverlayScriptIndex(name,script,args,option)
23455
23482
  {
23456
23483
  var overlayIndex=this.OverlayIndex;
23457
23484
  var frame=overlayIndex.Frame;
23458
- let chart=new ChartKLine();
23485
+ var chart=new ChartKLine();
23459
23486
  chart.Canvas=hqChart.Canvas;
23460
23487
  chart.Name=varItem.Name;
23461
23488
  chart.ChartBorder=frame.Frame.ChartBorder;
@@ -23469,6 +23496,28 @@ function OverlayScriptIndex(name,script,args,option)
23469
23496
  if (varItem.Color) //如果设置了颜色,使用外面设置的颜色
23470
23497
  chart.UnchagneColor=chart.DownColor=chart.UpColor=this.GetColor(varItem.Color);
23471
23498
 
23499
+ if (varItem.Draw.Config)
23500
+ {
23501
+ var config=varItem.Draw.Config;
23502
+ if (IFrameSplitOperator.IsBool(config.IsShowMaxMinPrice)) chart.IsShowMaxMinPrice=config.IsShowMaxMinPrice;
23503
+ if (IFrameSplitOperator.IsBool(config.IsShowKTooltip)) chart.IsShowKTooltip=config.IsShowKTooltip;
23504
+ if (config.Symbol) chart.Symbol=config.Symbol;
23505
+ if (config.Name) chart.Title=config.Name;
23506
+ }
23507
+
23508
+ var bShowTitle=false;
23509
+ if (IFrameSplitOperator.IsBool(varItem.IsShowTitle)) bShowTitle=varItem.IsShowTitle;
23510
+ if (bShowTitle)
23511
+ {
23512
+ var titleIndex=windowIndex+1;
23513
+ chart.Data.Data=varItem.Draw.DrawData;
23514
+ var titlePaint=hqChart.TitlePaint[titleIndex];
23515
+ var titleData=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);
23516
+ titleData.DataType="DRAWKLINE";
23517
+ titleData.Symbol=chart.Symbol;
23518
+ titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;
23519
+ }
23520
+
23472
23521
  frame.ChartPaint.push(chart);
23473
23522
  }
23474
23523
 
@@ -10631,13 +10631,13 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
10631
10631
  var setMainIndex=new Set(); //主图指标
10632
10632
  var setOverlayIndex=new Set(); //附图指标
10633
10633
 
10634
- for(var i=0;aryIndex.length;++i)
10634
+ for(var i=0;i<aryIndex.length;++i)
10635
10635
  {
10636
10636
  var item=aryIndex[i];
10637
10637
  if (!item) continue;
10638
10638
 
10639
- if (item.ID) setMainIndex.set(item.ID);
10640
- if (item.OverlayID) setOverlayIndex.set(item.OverlayID);
10639
+ if (item.ID) setMainIndex.add(item.ID);
10640
+ if (item.OverlayID) setOverlayIndex.add(item.OverlayID);
10641
10641
  }
10642
10642
 
10643
10643
  if (setMainIndex.size<=0 && setOverlayIndex.size<0) return false;
@@ -10678,7 +10678,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
10678
10678
 
10679
10679
  if (setOverlayIndex.has(overlayItem.Identify))
10680
10680
  {
10681
- this.BindOverlayIndexData(overlayItem,i,hisData)
10681
+ this.BindOverlayIndexData(overlayItem,i,bindData)
10682
10682
  }
10683
10683
  }
10684
10684
  }
@@ -33403,6 +33403,28 @@ function ChartLine()
33403
33403
  }
33404
33404
  }
33405
33405
 
33406
+
33407
+ //标题
33408
+ function ChartIndexTitle()
33409
+ {
33410
+ this.newMethod=IChartPainting; //派生
33411
+ this.newMethod();
33412
+ delete this.newMethod;
33413
+
33414
+ this.ClassName='ChartIndexTitle'; //类名
33415
+
33416
+ this.Draw=function()
33417
+ {
33418
+
33419
+ }
33420
+
33421
+ this.GetMaxMin=function()
33422
+ {
33423
+ return range={ Min:null, Max:null };
33424
+ }
33425
+ }
33426
+
33427
+
33406
33428
  //面积图 支持横屏
33407
33429
  function ChartArea()
33408
33430
  {
@@ -35076,6 +35098,8 @@ function ChartVolStick()
35076
35098
  for(var i=start,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
35077
35099
  {
35078
35100
  var value=this.Data.Data[i];
35101
+ if (!IFrameSplitOperator.IsNumber(value)) continue;
35102
+
35079
35103
  if (!IFrameSplitOperator.IsNumber(range.Max) || range.Max<value) range.Max=value;
35080
35104
  if (!IFrameSplitOperator.IsNumber(range.Min) || range.Min>value) range.Min=value
35081
35105
  }
@@ -58577,6 +58601,7 @@ function DynamicChartTitlePainting()
58577
58601
  if (!aryText) return null;
58578
58602
  return { Text:null, ArrayText:aryText };
58579
58603
  }
58604
+
58580
58605
 
58581
58606
  value=item.Data.Data[dataIndex];
58582
58607
 
@@ -58625,6 +58650,12 @@ function DynamicChartTitlePainting()
58625
58650
  if (!aryText) return null;
58626
58651
  return { Text:null, ArrayText:aryText };
58627
58652
  }
58653
+ else if (item.DataType=="ChartIndexTitle")
58654
+ {
58655
+ var text=item.Data.Data[dataIndex];
58656
+ if (!IFrameSplitOperator.IsString(text)) return null;
58657
+ return { Text:text, ArrayText:null };
58658
+ }
58628
58659
  else if (g_ScriptIndexChartFactory.Has(item.DataType)) //外部挂接
58629
58660
  {
58630
58661
  var find=g_ScriptIndexChartFactory.Get(item.DataType);
@@ -59015,6 +59046,11 @@ function DynamicChartTitlePainting()
59015
59046
  aryText=this.ForamtMultiBarTitle(dataIndex, item);
59016
59047
  if (!aryText) continue;
59017
59048
  }
59049
+ else if (item.DataType=="DRAWKLINE")
59050
+ {
59051
+ aryText=this.FromatKLineTitle(value, item);
59052
+ if (!aryText) continue;
59053
+ }
59018
59054
  else
59019
59055
  {
59020
59056
  valueText=this.FormatValue(value,item);
@@ -2840,6 +2840,9 @@ HQData.APIIndex_DRAWKLINE=function(data, callback)
2840
2840
  IsShowTitle:true,
2841
2841
  };
2842
2842
 
2843
+
2844
+ var textData={ name:"", type:10, color:"rgb(148,0,211)", data:[], isshow:false }; //名字
2845
+
2843
2846
  var aryDate=[];
2844
2847
  var aryTime=[];
2845
2848
  for(var i=100;i<kData.Data.length-100;++i)
@@ -2860,14 +2863,16 @@ HQData.APIIndex_DRAWKLINE=function(data, callback)
2860
2863
  klineData.Draw.DrawData.push(newItem);
2861
2864
 
2862
2865
  aryDate.push(kItem.Date);
2863
- aryTime.push(kItem.Time)
2866
+ aryTime.push(kItem.Time);
2867
+
2868
+ textData.data.push(kItem.YClose.toFixed(2));
2864
2869
  }
2865
2870
 
2866
2871
  var apiData=
2867
2872
  {
2868
2873
  code:0,
2869
2874
  stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
2870
- outdata: { date:aryDate, time:aryTime, outvar:[klineData] }
2875
+ outdata: { date:aryDate, time:aryTime, outvar:[textData, klineData] }
2871
2876
  };
2872
2877
 
2873
2878
  console.log('[HQData.APIIndex_DRAWKLINE] apiData ', apiData);
@@ -14556,13 +14556,13 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
14556
14556
  var setMainIndex=new Set(); //主图指标
14557
14557
  var setOverlayIndex=new Set(); //附图指标
14558
14558
 
14559
- for(var i=0;aryIndex.length;++i)
14559
+ for(var i=0;i<aryIndex.length;++i)
14560
14560
  {
14561
14561
  var item=aryIndex[i];
14562
14562
  if (!item) continue;
14563
14563
 
14564
- if (item.ID) setMainIndex.set(item.ID);
14565
- if (item.OverlayID) setOverlayIndex.set(item.OverlayID);
14564
+ if (item.ID) setMainIndex.add(item.ID);
14565
+ if (item.OverlayID) setOverlayIndex.add(item.OverlayID);
14566
14566
  }
14567
14567
 
14568
14568
  if (setMainIndex.size<=0 && setOverlayIndex.size<0) return false;
@@ -14603,7 +14603,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
14603
14603
 
14604
14604
  if (setOverlayIndex.has(overlayItem.Identify))
14605
14605
  {
14606
- this.BindOverlayIndexData(overlayItem,i,hisData)
14606
+ this.BindOverlayIndexData(overlayItem,i,bindData)
14607
14607
  }
14608
14608
  }
14609
14609
  }
@@ -37328,6 +37328,28 @@ function ChartLine()
37328
37328
  }
37329
37329
  }
37330
37330
 
37331
+
37332
+ //标题
37333
+ function ChartIndexTitle()
37334
+ {
37335
+ this.newMethod=IChartPainting; //派生
37336
+ this.newMethod();
37337
+ delete this.newMethod;
37338
+
37339
+ this.ClassName='ChartIndexTitle'; //类名
37340
+
37341
+ this.Draw=function()
37342
+ {
37343
+
37344
+ }
37345
+
37346
+ this.GetMaxMin=function()
37347
+ {
37348
+ return range={ Min:null, Max:null };
37349
+ }
37350
+ }
37351
+
37352
+
37331
37353
  //面积图 支持横屏
37332
37354
  function ChartArea()
37333
37355
  {
@@ -39001,6 +39023,8 @@ function ChartVolStick()
39001
39023
  for(var i=start,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
39002
39024
  {
39003
39025
  var value=this.Data.Data[i];
39026
+ if (!IFrameSplitOperator.IsNumber(value)) continue;
39027
+
39004
39028
  if (!IFrameSplitOperator.IsNumber(range.Max) || range.Max<value) range.Max=value;
39005
39029
  if (!IFrameSplitOperator.IsNumber(range.Min) || range.Min>value) range.Min=value
39006
39030
  }
@@ -62502,6 +62526,7 @@ function DynamicChartTitlePainting()
62502
62526
  if (!aryText) return null;
62503
62527
  return { Text:null, ArrayText:aryText };
62504
62528
  }
62529
+
62505
62530
 
62506
62531
  value=item.Data.Data[dataIndex];
62507
62532
 
@@ -62550,6 +62575,12 @@ function DynamicChartTitlePainting()
62550
62575
  if (!aryText) return null;
62551
62576
  return { Text:null, ArrayText:aryText };
62552
62577
  }
62578
+ else if (item.DataType=="ChartIndexTitle")
62579
+ {
62580
+ var text=item.Data.Data[dataIndex];
62581
+ if (!IFrameSplitOperator.IsString(text)) return null;
62582
+ return { Text:text, ArrayText:null };
62583
+ }
62553
62584
  else if (g_ScriptIndexChartFactory.Has(item.DataType)) //外部挂接
62554
62585
  {
62555
62586
  var find=g_ScriptIndexChartFactory.Get(item.DataType);
@@ -62940,6 +62971,11 @@ function DynamicChartTitlePainting()
62940
62971
  aryText=this.ForamtMultiBarTitle(dataIndex, item);
62941
62972
  if (!aryText) continue;
62942
62973
  }
62974
+ else if (item.DataType=="DRAWKLINE")
62975
+ {
62976
+ aryText=this.FromatKLineTitle(value, item);
62977
+ if (!aryText) continue;
62978
+ }
62943
62979
  else
62944
62980
  {
62945
62981
  valueText=this.FormatValue(value,item);
@@ -123082,7 +123118,7 @@ function ScriptIndex(name,script,args,option)
123082
123118
  hqChart.ChartPaint.push(line);
123083
123119
  }
123084
123120
 
123085
- this.CreateArea=function(hqChart, windowIndex, varItem, id,)
123121
+ this.CreateArea=function(hqChart, windowIndex, varItem, id)
123086
123122
  {
123087
123123
  var line=new ChartArea();
123088
123124
 
@@ -123138,6 +123174,29 @@ function ScriptIndex(name,script,args,option)
123138
123174
  hqChart.ChartPaint.push(line);
123139
123175
  }
123140
123176
 
123177
+ //标题显示,没有图形
123178
+ this.CreateTitle=function(hqChart, windowIndex, varItem, id)
123179
+ {
123180
+ var chart=new ChartIndexTitle();
123181
+
123182
+ chart.Canvas=hqChart.Canvas;
123183
+ chart.Name=varItem.Name;
123184
+ chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;
123185
+ chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;
123186
+ chart.Identify=this.Guid;
123187
+ if (varItem.Color) chart.Color=this.GetColor(varItem.Color);
123188
+ else chart.Color=this.GetDefaultColor(id);
123189
+ chart.Data.Data=varItem.Data;
123190
+
123191
+ var titleIndex=windowIndex+1;
123192
+ var titleData=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);
123193
+ titleData.DataType="ChartIndexTitle";
123194
+ hqChart.TitlePaint[titleIndex].Data[id]=titleData;
123195
+
123196
+ this.SetChartIndexName(chart);
123197
+ hqChart.ChartPaint.push(chart);
123198
+ }
123199
+
123141
123200
  this.CreateOverlayLine=function(hqChart,windowIndex,varItem,id,lineType)
123142
123201
  {
123143
123202
  if (lineType==7) var line=new ChartStepLine();
@@ -124981,6 +125040,10 @@ function ScriptIndex(name,script,args,option)
124981
125040
  {
124982
125041
  this.CreateArea(hqChart,windowIndex,item,i);
124983
125042
  }
125043
+ else if (item.Type==10) //标题
125044
+ {
125045
+ this.CreateTitle(hqChart,windowIndex,item,i);
125046
+ }
124984
125047
 
124985
125048
  var titlePaint=hqChart.TitlePaint[windowIndex+1];
124986
125049
  if (titlePaint && titlePaint.Data && i<titlePaint.Data.length) //设置标题数值 小数位数和格式
@@ -125792,7 +125855,7 @@ function OverlayScriptIndex(name,script,args,option)
125792
125855
  {
125793
125856
  var overlayIndex=this.OverlayIndex;
125794
125857
  var frame=overlayIndex.Frame;
125795
- let chart=new ChartKLine();
125858
+ var chart=new ChartKLine();
125796
125859
  chart.Canvas=hqChart.Canvas;
125797
125860
  chart.Name=varItem.Name;
125798
125861
  chart.ChartBorder=frame.Frame.ChartBorder;
@@ -125806,6 +125869,28 @@ function OverlayScriptIndex(name,script,args,option)
125806
125869
  if (varItem.Color) //如果设置了颜色,使用外面设置的颜色
125807
125870
  chart.UnchagneColor=chart.DownColor=chart.UpColor=this.GetColor(varItem.Color);
125808
125871
 
125872
+ if (varItem.Draw.Config)
125873
+ {
125874
+ var config=varItem.Draw.Config;
125875
+ if (IFrameSplitOperator.IsBool(config.IsShowMaxMinPrice)) chart.IsShowMaxMinPrice=config.IsShowMaxMinPrice;
125876
+ if (IFrameSplitOperator.IsBool(config.IsShowKTooltip)) chart.IsShowKTooltip=config.IsShowKTooltip;
125877
+ if (config.Symbol) chart.Symbol=config.Symbol;
125878
+ if (config.Name) chart.Title=config.Name;
125879
+ }
125880
+
125881
+ var bShowTitle=false;
125882
+ if (IFrameSplitOperator.IsBool(varItem.IsShowTitle)) bShowTitle=varItem.IsShowTitle;
125883
+ if (bShowTitle)
125884
+ {
125885
+ var titleIndex=windowIndex+1;
125886
+ chart.Data.Data=varItem.Draw.DrawData;
125887
+ var titlePaint=hqChart.TitlePaint[titleIndex];
125888
+ var titleData=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);
125889
+ titleData.DataType="DRAWKLINE";
125890
+ titleData.Symbol=chart.Symbol;
125891
+ titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;
125892
+ }
125893
+
125809
125894
  frame.ChartPaint.push(chart);
125810
125895
  }
125811
125896
 
@@ -144049,7 +144134,7 @@ function ScrollBarBGChart()
144049
144134
 
144050
144135
 
144051
144136
 
144052
- var HQCHART_VERSION="1.1.14483";
144137
+ var HQCHART_VERSION="1.1.14488";
144053
144138
 
144054
144139
  function PrintHQChartVersion()
144055
144140
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.14483";
8
+ var HQCHART_VERSION="1.1.14488";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -58372,6 +58372,9 @@ HQData.APIIndex_DRAWKLINE=function(data, callback)
58372
58372
  IsShowTitle:true,
58373
58373
  };
58374
58374
 
58375
+
58376
+ var textData={ name:"", type:10, color:"rgb(148,0,211)", data:[], isshow:false }; //名字
58377
+
58375
58378
  var aryDate=[];
58376
58379
  var aryTime=[];
58377
58380
  for(var i=100;i<kData.Data.length-100;++i)
@@ -58392,14 +58395,16 @@ HQData.APIIndex_DRAWKLINE=function(data, callback)
58392
58395
  klineData.Draw.DrawData.push(newItem);
58393
58396
 
58394
58397
  aryDate.push(kItem.Date);
58395
- aryTime.push(kItem.Time)
58398
+ aryTime.push(kItem.Time);
58399
+
58400
+ textData.data.push(kItem.YClose.toFixed(2));
58396
58401
  }
58397
58402
 
58398
58403
  var apiData=
58399
58404
  {
58400
58405
  code:0,
58401
58406
  stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
58402
- outdata: { date:aryDate, time:aryTime, outvar:[klineData] }
58407
+ outdata: { date:aryDate, time:aryTime, outvar:[textData, klineData] }
58403
58408
  };
58404
58409
 
58405
58410
  console.log('[HQData.APIIndex_DRAWKLINE] apiData ', apiData);
@@ -14600,13 +14600,13 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
14600
14600
  var setMainIndex=new Set(); //主图指标
14601
14601
  var setOverlayIndex=new Set(); //附图指标
14602
14602
 
14603
- for(var i=0;aryIndex.length;++i)
14603
+ for(var i=0;i<aryIndex.length;++i)
14604
14604
  {
14605
14605
  var item=aryIndex[i];
14606
14606
  if (!item) continue;
14607
14607
 
14608
- if (item.ID) setMainIndex.set(item.ID);
14609
- if (item.OverlayID) setOverlayIndex.set(item.OverlayID);
14608
+ if (item.ID) setMainIndex.add(item.ID);
14609
+ if (item.OverlayID) setOverlayIndex.add(item.OverlayID);
14610
14610
  }
14611
14611
 
14612
14612
  if (setMainIndex.size<=0 && setOverlayIndex.size<0) return false;
@@ -14647,7 +14647,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
14647
14647
 
14648
14648
  if (setOverlayIndex.has(overlayItem.Identify))
14649
14649
  {
14650
- this.BindOverlayIndexData(overlayItem,i,hisData)
14650
+ this.BindOverlayIndexData(overlayItem,i,bindData)
14651
14651
  }
14652
14652
  }
14653
14653
  }
@@ -37372,6 +37372,28 @@ function ChartLine()
37372
37372
  }
37373
37373
  }
37374
37374
 
37375
+
37376
+ //标题
37377
+ function ChartIndexTitle()
37378
+ {
37379
+ this.newMethod=IChartPainting; //派生
37380
+ this.newMethod();
37381
+ delete this.newMethod;
37382
+
37383
+ this.ClassName='ChartIndexTitle'; //类名
37384
+
37385
+ this.Draw=function()
37386
+ {
37387
+
37388
+ }
37389
+
37390
+ this.GetMaxMin=function()
37391
+ {
37392
+ return range={ Min:null, Max:null };
37393
+ }
37394
+ }
37395
+
37396
+
37375
37397
  //面积图 支持横屏
37376
37398
  function ChartArea()
37377
37399
  {
@@ -39045,6 +39067,8 @@ function ChartVolStick()
39045
39067
  for(var i=start,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
39046
39068
  {
39047
39069
  var value=this.Data.Data[i];
39070
+ if (!IFrameSplitOperator.IsNumber(value)) continue;
39071
+
39048
39072
  if (!IFrameSplitOperator.IsNumber(range.Max) || range.Max<value) range.Max=value;
39049
39073
  if (!IFrameSplitOperator.IsNumber(range.Min) || range.Min>value) range.Min=value
39050
39074
  }
@@ -62546,6 +62570,7 @@ function DynamicChartTitlePainting()
62546
62570
  if (!aryText) return null;
62547
62571
  return { Text:null, ArrayText:aryText };
62548
62572
  }
62573
+
62549
62574
 
62550
62575
  value=item.Data.Data[dataIndex];
62551
62576
 
@@ -62594,6 +62619,12 @@ function DynamicChartTitlePainting()
62594
62619
  if (!aryText) return null;
62595
62620
  return { Text:null, ArrayText:aryText };
62596
62621
  }
62622
+ else if (item.DataType=="ChartIndexTitle")
62623
+ {
62624
+ var text=item.Data.Data[dataIndex];
62625
+ if (!IFrameSplitOperator.IsString(text)) return null;
62626
+ return { Text:text, ArrayText:null };
62627
+ }
62597
62628
  else if (g_ScriptIndexChartFactory.Has(item.DataType)) //外部挂接
62598
62629
  {
62599
62630
  var find=g_ScriptIndexChartFactory.Get(item.DataType);
@@ -62984,6 +63015,11 @@ function DynamicChartTitlePainting()
62984
63015
  aryText=this.ForamtMultiBarTitle(dataIndex, item);
62985
63016
  if (!aryText) continue;
62986
63017
  }
63018
+ else if (item.DataType=="DRAWKLINE")
63019
+ {
63020
+ aryText=this.FromatKLineTitle(value, item);
63021
+ if (!aryText) continue;
63022
+ }
62987
63023
  else
62988
63024
  {
62989
63025
  valueText=this.FormatValue(value,item);
@@ -123126,7 +123162,7 @@ function ScriptIndex(name,script,args,option)
123126
123162
  hqChart.ChartPaint.push(line);
123127
123163
  }
123128
123164
 
123129
- this.CreateArea=function(hqChart, windowIndex, varItem, id,)
123165
+ this.CreateArea=function(hqChart, windowIndex, varItem, id)
123130
123166
  {
123131
123167
  var line=new ChartArea();
123132
123168
 
@@ -123182,6 +123218,29 @@ function ScriptIndex(name,script,args,option)
123182
123218
  hqChart.ChartPaint.push(line);
123183
123219
  }
123184
123220
 
123221
+ //标题显示,没有图形
123222
+ this.CreateTitle=function(hqChart, windowIndex, varItem, id)
123223
+ {
123224
+ var chart=new ChartIndexTitle();
123225
+
123226
+ chart.Canvas=hqChart.Canvas;
123227
+ chart.Name=varItem.Name;
123228
+ chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;
123229
+ chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;
123230
+ chart.Identify=this.Guid;
123231
+ if (varItem.Color) chart.Color=this.GetColor(varItem.Color);
123232
+ else chart.Color=this.GetDefaultColor(id);
123233
+ chart.Data.Data=varItem.Data;
123234
+
123235
+ var titleIndex=windowIndex+1;
123236
+ var titleData=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);
123237
+ titleData.DataType="ChartIndexTitle";
123238
+ hqChart.TitlePaint[titleIndex].Data[id]=titleData;
123239
+
123240
+ this.SetChartIndexName(chart);
123241
+ hqChart.ChartPaint.push(chart);
123242
+ }
123243
+
123185
123244
  this.CreateOverlayLine=function(hqChart,windowIndex,varItem,id,lineType)
123186
123245
  {
123187
123246
  if (lineType==7) var line=new ChartStepLine();
@@ -125025,6 +125084,10 @@ function ScriptIndex(name,script,args,option)
125025
125084
  {
125026
125085
  this.CreateArea(hqChart,windowIndex,item,i);
125027
125086
  }
125087
+ else if (item.Type==10) //标题
125088
+ {
125089
+ this.CreateTitle(hqChart,windowIndex,item,i);
125090
+ }
125028
125091
 
125029
125092
  var titlePaint=hqChart.TitlePaint[windowIndex+1];
125030
125093
  if (titlePaint && titlePaint.Data && i<titlePaint.Data.length) //设置标题数值 小数位数和格式
@@ -125836,7 +125899,7 @@ function OverlayScriptIndex(name,script,args,option)
125836
125899
  {
125837
125900
  var overlayIndex=this.OverlayIndex;
125838
125901
  var frame=overlayIndex.Frame;
125839
- let chart=new ChartKLine();
125902
+ var chart=new ChartKLine();
125840
125903
  chart.Canvas=hqChart.Canvas;
125841
125904
  chart.Name=varItem.Name;
125842
125905
  chart.ChartBorder=frame.Frame.ChartBorder;
@@ -125850,6 +125913,28 @@ function OverlayScriptIndex(name,script,args,option)
125850
125913
  if (varItem.Color) //如果设置了颜色,使用外面设置的颜色
125851
125914
  chart.UnchagneColor=chart.DownColor=chart.UpColor=this.GetColor(varItem.Color);
125852
125915
 
125916
+ if (varItem.Draw.Config)
125917
+ {
125918
+ var config=varItem.Draw.Config;
125919
+ if (IFrameSplitOperator.IsBool(config.IsShowMaxMinPrice)) chart.IsShowMaxMinPrice=config.IsShowMaxMinPrice;
125920
+ if (IFrameSplitOperator.IsBool(config.IsShowKTooltip)) chart.IsShowKTooltip=config.IsShowKTooltip;
125921
+ if (config.Symbol) chart.Symbol=config.Symbol;
125922
+ if (config.Name) chart.Title=config.Name;
125923
+ }
125924
+
125925
+ var bShowTitle=false;
125926
+ if (IFrameSplitOperator.IsBool(varItem.IsShowTitle)) bShowTitle=varItem.IsShowTitle;
125927
+ if (bShowTitle)
125928
+ {
125929
+ var titleIndex=windowIndex+1;
125930
+ chart.Data.Data=varItem.Draw.DrawData;
125931
+ var titlePaint=hqChart.TitlePaint[titleIndex];
125932
+ var titleData=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);
125933
+ titleData.DataType="DRAWKLINE";
125934
+ titleData.Symbol=chart.Symbol;
125935
+ titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;
125936
+ }
125937
+
125853
125938
  frame.ChartPaint.push(chart);
125854
125939
  }
125855
125940
 
@@ -151213,7 +151298,10 @@ function JSFloatTooltip()
151213
151298
  {
151214
151299
  var data=kItem.Item;
151215
151300
  var symbol=kItem.Symbol;
151216
- var upperSymbol=symbol.toUpperCase();
151301
+ if (data && data.Symbol) symbol=symbol;
151302
+ var upperSymbol="";
151303
+ if (symbol) upperSymbol=symbol.toUpperCase();
151304
+
151217
151305
  var defaultfloatPrecision=GetfloatPrecision(symbol);//价格小数位数
151218
151306
  var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
151219
151307
 
@@ -151225,9 +151313,15 @@ function JSFloatTooltip()
151225
151313
  if (IFrameSplitOperator.IsNumber(data.Time)) timeItem=this.FormatTime(data.Time, this.HQChart.Period, null, 'FloatTooltip-Time');
151226
151314
 
151227
151315
  var overlayItem=null;
151228
- if (kItem.IsOverlay || (kItem.IsIndexKLine && kItem.Name))
151316
+ if (kItem.IsOverlay)
151229
151317
  overlayItem={ Title:"", Text:kItem.Name, Color:this.TextColor, ClassName:this.ValueAlign.Left };
151230
-
151318
+ else if (kItem.IsIndexKLine)
151319
+ {
151320
+ if (kItem.Name)
151321
+ overlayItem={ Title:"", Text:kItem.Name, Color:this.TextColor, ClassName:this.ValueAlign.Left };
151322
+ else if (data && data.Name )
151323
+ overlayItem={ Title:"", Text:data.Name, Color:this.TextColor, ClassName:this.ValueAlign.Left };
151324
+ }
151231
151325
 
151232
151326
 
151233
151327
  var yClose=data.YClose; //昨收价|昨结算价
@@ -153869,7 +153963,7 @@ function HQChartScriptWorker()
153869
153963
 
153870
153964
 
153871
153965
 
153872
- var HQCHART_VERSION="1.1.14483";
153966
+ var HQCHART_VERSION="1.1.14488";
153873
153967
 
153874
153968
  function PrintHQChartVersion()
153875
153969
  {