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.
- package/lib/umychart.vue.js +17 -12
- package/package.json +1 -1
- package/src/jscommon/umychart.DialogTooltip.js +12 -3
- package/src/jscommon/umychart.NetworkFilterTest.js +7 -2
- package/src/jscommon/umychart.complier.js +51 -2
- package/src/jscommon/umychart.js +40 -4
- package/src/jscommon/umychart.testdata.js +7 -2
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +92 -7
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.NetworkFilterTest.vue.js +7 -2
- package/src/jscommon/umychart.vue/umychart.vue.js +104 -10
package/lib/umychart.vue.js
CHANGED
|
@@ -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.
|
|
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,
|
|
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);}
|
|
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);}
|
|
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
|
|
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.
|
|
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
|
@@ -1555,7 +1555,10 @@ function JSFloatTooltip()
|
|
|
1555
1555
|
{
|
|
1556
1556
|
var data=kItem.Item;
|
|
1557
1557
|
var symbol=kItem.Symbol;
|
|
1558
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
package/src/jscommon/umychart.js
CHANGED
|
@@ -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.
|
|
10640
|
-
if (item.OverlayID) setOverlayIndex.
|
|
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,
|
|
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.
|
|
14565
|
-
if (item.OverlayID) setOverlayIndex.
|
|
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,
|
|
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
|
-
|
|
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.
|
|
144137
|
+
var HQCHART_VERSION="1.1.14488";
|
|
144053
144138
|
|
|
144054
144139
|
function PrintHQChartVersion()
|
|
144055
144140
|
{
|
|
@@ -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.
|
|
14609
|
-
if (item.OverlayID) setOverlayIndex.
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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.
|
|
153966
|
+
var HQCHART_VERSION="1.1.14488";
|
|
153873
153967
|
|
|
153874
153968
|
function PrintHQChartVersion()
|
|
153875
153969
|
{
|