hqchart 1.1.14632 → 1.1.14639
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 +25 -193
- package/package.json +1 -1
- package/src/jscommon/umychart.DialogTooltip.js +10 -0
- package/src/jscommon/umychart.NetworkFilterTest.js +112 -0
- package/src/jscommon/umychart.complier.js +4 -0
- package/src/jscommon/umychart.js +97 -187
- package/src/jscommon/umychart.testdata.js +112 -0
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +102 -188
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.NetworkFilterTest.vue.js +112 -0
- package/src/jscommon/umychart.vue/umychart.vue.js +112 -188
package/lib/umychart.vue.js
CHANGED
|
@@ -2119,7 +2119,8 @@ this.Tooltip.style.position="absolute";this.Tooltip.style.left=left+"px";this.To
|
|
|
2119
2119
|
this.Tooltip.style.position="absolute";this.Tooltip.style.left=left+"px";this.Tooltip.style.top=top+xMove+"px";this.Tooltip.style.width=width+"px";this.Tooltip.style.height=null;this.Tooltip.innerHTML=format.Text;;this.Tooltip.style.display="block";}else if(toolTip.Type==7)//ChartDrawSVG
|
|
2120
2120
|
{if(this.FloatTooltip){this.DrawFloatTooltip({X:x,Y:y,YMove:20/pixelTatio},toolTip);bHideFloatToolip=false;return;}var left=x;var top=y;var format=g_DivTooltipDataForamt.Create('ChartDrawSVGDataStringFormat');format.Value=toolTip;format.Symbol=this.Symbol;format.Period=this.Period;format.LanguageID=this.LanguageID;if(!format.Operator())return;var width=format.Width;this.Tooltip.className='jchart-chartdrawsvg-tooltip';//ChartDrawSVG指标数据
|
|
2121
2121
|
this.Tooltip.style.position="absolute";this.Tooltip.style.left=left+"px";this.Tooltip.style.top=top+xMove+"px";this.Tooltip.style.width=width+"px";this.Tooltip.style.height=null;this.Tooltip.innerHTML=format.Text;this.Tooltip.style.display="block";}else if(toolTip.Type==8)//ChartDrawSVG 新版本
|
|
2122
|
-
{if(this.FloatTooltip){this.DrawFloatTooltip({X:x,Y:y,YMove:20/pixelTatio},toolTip);bHideFloatToolip=false;return;}}
|
|
2122
|
+
{if(this.FloatTooltip){this.DrawFloatTooltip({X:x,Y:y,YMove:20/pixelTatio},toolTip);bHideFloatToolip=false;return;}}else if(toolTip.Type==9)//ChartKLineTable
|
|
2123
|
+
{if(toolTip.Data.Item&&toolTip.Data.Item.Tooltip&&this.FloatTooltip){this.DrawFloatTooltip({X:x,Y:y,YMove:20/pixelTatio},toolTip);bHideFloatToolip=false;return;}}if(bHideFloatToolip)this.HideFloatTooltip();};this.UpdateDOMTooltip=function(toolTipType,data){var _this14=this;if(!this.TooltipCache.IsShow)return;if(this.TooltipCache.Type!=toolTipType)return;if(!this.TooltipCache.Data)return;if(this.TooltipCache.Type===0){if(!data||!IFrameSplitOperator.IsNonEmptyArray(data.Data))return;var lastItem=data.Data[data.Data.length-1];if(lastItem.Date!=this.TooltipCache.Data.Date)return;if(IFrameSplitOperator.IsNumber(lastItem.Time)&&lastItem.Time!=this.TooltipCache.Data.Time)return;var klinePaint=this.ChartPaint[0];var format=g_DivTooltipDataForamt.Create('HistoryDataStringFormat');format.Value={Data:lastItem,ChartPaint:klinePaint,Type:this.TooltipCache.Type};format.Symbol=this.Symbol;format.LanguageID=this.LanguageID;format.GetEventCallback=function(id){return _this14.GetEventCallback(id);};if(!format.Operator())return;if(format.Text==this.TooltipCache.InnerHTML)return;this.Tooltip.innerHTML=format.Text;this.TooltipCache.InnerHTML=format.Text;}};this.HideTooltip=function(){this.TooltipCache.IsShow=false;this.TooltipCache.Type=null;this.TooltipCache.InnerHTML=null;this.TooltipCache.Data=null;if(this.Tooltip.style.display!="none")this.Tooltip.style.display="none";this.HideFloatTooltip();};this.UpdateSelectRect=function(start,end){if(!this.ChartPaint[0].Data)return;var paint=this.GetRectSelectPaint();if(!paint)return;var data=this.ChartPaint[0].Data;var count=data.Data.length;if(end>=count)end=count-1;var startItem=data.Data[start];var endItem=data.Data[end];JSConsole.Chart.Log('[JSChartContainer::UpdateSelectRect]',startItem,endItem);paint.SetPoint(startItem,{Index:0,DataIndex:start});paint.SetPoint(endItem,{Index:1,DataIndex:end});this.Draw();};this.HideSelectRect=function(){this.ClearDragSelectRect();};this.ResetFrameXYSplit=function(){if(typeof this.Frame.ResetXYSplit=='function')this.Frame.ResetXYSplit();};this.ResetFrameXSplit=function(){if(typeof this.Frame.ResetXSplit=='function')this.Frame.ResetXSplit();};this.ResetFrameYCustomSplit=function(windowIndex){if(typeof this.Frame.ResetYCustomSplit=='function')this.Frame.ResetYCustomSplit(windowIndex);};this.UpdateFrameMaxMinV2=function(){var mapFrame=new _map2.default();//key=frameid, value:{ ChartPaint:[] }
|
|
2123
2124
|
for(var i=0;i<this.Frame.SubFrame.length;++i){var subItem=this.Frame.SubFrame[i];if(!subItem||!subItem.Frame)continue;var frame=subItem.Frame;//自定义刻度每次都调用
|
|
2124
2125
|
frame.YCustomSplit=true;var key=frame.Identify;var item={ID:key,Frame:frame,ChartPaint:[],Max:null,Min:null,OverlayFrame:[],//共享坐标
|
|
2125
2126
|
SingleOverlay:[],//独立坐标
|
|
@@ -4068,14 +4069,16 @@ this.RowCount=5;//行数
|
|
|
4068
4069
|
this.RowHeight=10;//行高
|
|
4069
4070
|
this.RowHeightType=1;//0=均分 1=固定高度
|
|
4070
4071
|
this.TextFontConfig=CloneData(g_JSChartResource.ChartKLineTable.TextFont);this.ItemMergin=CloneData(g_JSChartResource.ChartKLineTable.ItemMergin);this.TextFont;this.TextColor='rgb(0,0,0)';this.AryTableData=[];this.MapCache=null;//key=date/date-time value={ Date:, Time:, Data:[ ] }
|
|
4071
|
-
this.GetKValue=ChartData.GetKValue;this.
|
|
4072
|
+
this.GetKValue=ChartData.GetKValue;this.AryCellRect=[];//保存单元格信息
|
|
4073
|
+
this.BuildCacheData=function(){var mapData=new _map2.default();this.MapCache=mapData;if(!IFrameSplitOperator.IsNonEmptyArray(this.AryTableData))return;for(var i=0;i<this.AryTableData.length;++i){var item=this.AryTableData[i];var key=this.BuildKey(item);mapData.set(key,item);}};//绘制背景色
|
|
4072
4074
|
this.DrawBG=function(rtBG){if(!this.BGColor)return;if(this.BGColor){this.Canvas.fillStyle=this.BGColor;this.Canvas.fillRect(rtBG.Left+1,rtBG.Top,rtBG.Width-1,rtBG.Height);}};this.DrawBorder=function(rtBG){if(!this.BorderColor)return;var yLine=rtBG.Top;for(var i=0;i<30;++i){this.Canvas.beginPath();this.Canvas.moveTo(rtBG.Left,ToFixedPoint(yLine));this.Canvas.lineTo(rtBG.Right,ToFixedPoint(yLine));this.Canvas.stroke();yLine+=this.RowHeight;if(yLine>=rtBG.Bottom)break;}};//计算行高
|
|
4073
|
-
this.CalculateRowHeight=function(rtBG){if(this.RowHeightType==1){this.RowHeight=this.TextFontConfig.FontMaxSize+this.ItemMergin.Top+this.ItemMergin.Bottom;}else{this.RowHeight=rtBG.Height/this.RowCount;}};this.Draw=function(){if(!this.IsShow||this.ChartFrame.IsMinSize||!this.IsVisible)return;if(this.IsShowIndexTitleOnly())return;if(this.IsHideScriptIndex())return;if(!IFrameSplitOperator.IsNonEmptyArray(this.AryTableData))return;if(!this.MapCache||this.MapCache.size<=0)return;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return;var isHScreen=this.ChartFrame.IsHScreen===true;if(isHScreen)return;if(this.RowCount<=0)return;var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var xPointCount=this.ChartFrame.XPointCount;var border=this.ChartFrame.GetBorder();var height=border.Bottom-border.TopTitle;var xOffset=border.LeftEx+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;var top=border.TopTitle;var bottom=border.Bottom;//绘制背景
|
|
4075
|
+
this.CalculateRowHeight=function(rtBG){if(this.RowHeightType==1){this.RowHeight=this.TextFontConfig.FontMaxSize+this.ItemMergin.Top+this.ItemMergin.Bottom;}else{this.RowHeight=rtBG.Height/this.RowCount;}};this.Draw=function(){this.AryCellRect=[];if(!this.IsShow||this.ChartFrame.IsMinSize||!this.IsVisible)return;if(this.IsShowIndexTitleOnly())return;if(this.IsHideScriptIndex())return;if(!IFrameSplitOperator.IsNonEmptyArray(this.AryTableData))return;if(!this.MapCache||this.MapCache.size<=0)return;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return;var isHScreen=this.ChartFrame.IsHScreen===true;if(isHScreen)return;if(this.RowCount<=0)return;var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var xPointCount=this.ChartFrame.XPointCount;var border=this.ChartFrame.GetBorder();var height=border.Bottom-border.TopTitle;var xOffset=border.LeftEx+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;var top=border.TopTitle;var bottom=border.Bottom;//绘制背景
|
|
4074
4076
|
var rtBG={Left:border.LeftEx,Top:top,Right:border.RightEx,Bottom:bottom};rtBG.Width=rtBG.Right-rtBG.Left;rtBG.Height=rtBG.Bottom-rtBG.Top;this.DrawBG(rtBG);this.CalculateRowHeight(rtBG);var itemHeight=this.RowHeight;var itemWidth=dataWidth+distanceWidth;if(itemHeight-this.ItemMergin.Top-this.ItemMergin.Bottom>0)itemHeight=itemHeight-this.ItemMergin.Top-this.ItemMergin.Bottom;if(itemWidth-this.ItemMergin.Left-this.ItemMergin.Right>0)itemWidth=itemWidth-this.ItemMergin.Left-this.ItemMergin.Right;var font=this.GetDynamicTextFont(itemHeight,itemWidth);this.TextFont=font;this.Canvas.font=this.TextFont;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var kItem=this.Data.Data[i];if(!kItem)continue;var left=xOffset;var right=xOffset+dataWidth+distanceWidth;if(right>chartright)break;var x=left+(right-left)/2;if(x>chartright)break;var bDrawName=false;if(j==0&&this.RowNamePosition===1)bDrawName=true;if(bDrawName)this.DrawRowName(top,bottom,left,right);var key=this.BuildKey(kItem);if(!this.MapCache.has(key))continue;var mapItem=this.MapCache.get(key);if(!bDrawName)this.DrawRow(mapItem,top,bottom,left,right);//绘制一列
|
|
4075
4077
|
}if(this.RowNamePosition==3)this.DrawRightRowName();this.DrawBorder(rtBG);};this.DrawRowName=function(top,bottom,left,right){if(!IFrameSplitOperator.IsNonEmptyArray(this.RowName))return;var x=left,y=top,width=right-left;var yOffset=3;if(this.ItemMergin.YOffset)yOffset=this.ItemMergin.YOffset;for(var i=0;i<this.RowName.length;++i){var item=this.RowName[i];var rtBG={Left:x,Top:y,Right:right,Height:this.RowHeight,Width:width};rtBG.Bottom=rtBG.Top+this.RowHeight;var yText=rtBG.Bottom-yOffset;if(item.Name&&rtBG.Width>10){this.Canvas.fillStyle=item.Color?item.Color:this.TextColor;this.Canvas.textBaseline='bottom';if(item.TextAlign=='right'){this.Canvas.textAlign='right';this.Canvas.fillText(item.Name,rtBG.Right-2,yText,width-4);}else if(item.TextAlign=='center'){this.Canvas.textAlign='center';this.Canvas.fillText(item.Name,rtBG.Left+rtBG.Width/2,yText,width-4);}else{this.Canvas.textAlign='left';this.Canvas.fillText(item.Name,rtBG.Left+2,yText,width-4);}}y+=this.RowHeight;}};//绘制右侧行名
|
|
4076
|
-
this.DrawRightRowName=function(){var border=this.ChartFrame.GetBorder();if(this.BGColor){var rtRightBG={Left:border.RightEx,Top:border.
|
|
4077
|
-
{var subCellWidth=rtBG.Width/item.AryText.length;var xCell=rtBG.Left;for(var j=0;j<item.AryText.length;++j){var subItem=item.AryText[j];var rtSubBG={Left:xCell,Top:rtBG.Top,Bottom:rtBG.Bottom,Width:subCellWidth,Height:rtBG.Height};rtSubBG.Right=rtSubBG.Left+rtSubBG.Width;if(subItem&&subItem.BGColor){this.Canvas.fillStyle=subItem.BGColor;this.Canvas.fillRect(rtSubBG.Left,rtSubBG.Top,rtSubBG.Width,rtSubBG.Height);}if(subItem&&subItem.Color&&subCellWidth>10){this.Canvas.fillStyle=subItem.Color;this.Canvas.textBaseline='bottom';var yText=rtSubBG.Bottom-yOffset;if(subItem.TextAlign=='right'){this.Canvas.textAlign='right';this.Canvas.fillText(subItem.Text,rtSubBG.Right-2,yText,width-4);}else if(subItem.TextAlign=='center'){this.Canvas.textAlign='center';this.Canvas.fillText(subItem.Text,rtSubBG.Left+rtSubBG.Width/2,yText,width-4);}else{this.Canvas.textAlign='left';this.Canvas.fillText(subItem.Text,rtSubBG.Left+2,yText,width-4);}}xCell+=subCellWidth;}}else{if(item
|
|
4078
|
-
if(fontSize>this.TextFontConfig.FontMaxSize)fontSize=this.TextFontConfig.FontMaxSize;else if(fontSize<=0)fontSize=1;var font=this.FormatFontString(fontSize,this.TextFontConfig.Family,fontOption);return font;};this.FormatFontString=function(fontSize,family,option){var font;if(!option){font=fontSize+'px '+family;}else{if(option.Weight)font=option.Weight+' '+fontSize+'px '+family;}return font;};this.GetMaxMin=function(){return{Min:0,Max:this.RowCount};};}
|
|
4078
|
+
this.DrawRightRowName=function(){var border=this.ChartFrame.GetBorder();if(this.BGColor){var rtRightBG={Left:border.RightEx,Top:border.Top,Right:border.ChartWidth,Bottom:border.Bottom};rtRightBG.Width=rtRightBG.Right-rtRightBG.Left;rtRightBG.Height=rtRightBG.Bottom-rtRightBG.Top;this.Canvas.fillStyle=this.BGColor;this.Canvas.fillRect(rtRightBG.Left+1,rtRightBG.Top,rtRightBG.Width-1,rtRightBG.Height);}var x=border.RightEx,y=border.TopTitle;var yOffset=3;if(this.ItemMergin.YOffset)yOffset=this.ItemMergin.YOffset;for(var i=0;i<this.RowName.length;++i){var item=this.RowName[i];var rtBG={Left:x,Top:y,Right:border.ChartWidth,Height:this.RowHeight};rtBG.Bottom=rtBG.Top+this.RowHeight;rtBG.Width=rtBG.Right-rtBG.Left;var yText=rtBG.Bottom-yOffset;if(rtBG.Bottom>border.Bottom)break;if(item.Name&&rtBG.Width>10){this.Canvas.fillStyle=item.Color?item.Color:this.TextColor;this.Canvas.textBaseline='bottom';this.Canvas.textAlign='left';this.Canvas.fillText(item.Name,rtBG.Left+2,yText);}y+=this.RowHeight;}};this.DrawRow=function(data,top,bottom,left,right){if(!IFrameSplitOperator.IsNonEmptyArray(data.Data))return;var x=left,y=top,width=right-left;var yOffset=3;if(this.ItemMergin.YOffset)yOffset=this.ItemMergin.YOffset;for(var i=0;i<data.Data.length;++i,y+=this.RowHeight){var item=data.Data[i];if(!item)continue;var rtBG={Left:x,Top:y,Right:right,Height:this.RowHeight,Width:width};rtBG.Bottom=rtBG.Top+this.RowHeight;if(rtBG.Bottom>bottom)break;if(IFrameSplitOperator.IsNonEmptyArray(item.AryText))//左右显示
|
|
4079
|
+
{var subCellWidth=rtBG.Width/item.AryText.length;var xCell=rtBG.Left;for(var j=0;j<item.AryText.length;++j){var subItem=item.AryText[j];var rtSubBG={Left:xCell,Top:rtBG.Top,Bottom:rtBG.Bottom,Width:subCellWidth,Height:rtBG.Height};rtSubBG.Right=rtSubBG.Left+rtSubBG.Width;if(subItem&&subItem.BGColor){this.Canvas.fillStyle=subItem.BGColor;this.Canvas.fillRect(rtSubBG.Left,rtSubBG.Top,rtSubBG.Width,rtSubBG.Height);}if(subItem&&subItem.Color&&subCellWidth>10){this.Canvas.fillStyle=subItem.Color;this.Canvas.textBaseline='bottom';var yText=rtSubBG.Bottom-yOffset;if(subItem.TextAlign=='right'){this.Canvas.textAlign='right';this.Canvas.fillText(subItem.Text,rtSubBG.Right-2,yText,width-4);}else if(subItem.TextAlign=='center'){this.Canvas.textAlign='center';this.Canvas.fillText(subItem.Text,rtSubBG.Left+rtSubBG.Width/2,yText,width-4);}else{this.Canvas.textAlign='left';this.Canvas.fillText(subItem.Text,rtSubBG.Left+2,yText,width-4);}}if(rtBG.Width>5){this.AryCellRect.push({Item:{Cell:item,Colunm:data,RowIndex:i,SubCell:subItem,SubIndex:j,Tooltip:subItem.Tooltip,Type:2},Rect:rtSubBG});}xCell+=subCellWidth;}}else{if(item.BGColor){this.Canvas.fillStyle=item.BGColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}if(item.Text&&rtBG.Width>10){if(item.Color)this.Canvas.fillStyle=item.Color;else this.Canvas.fillStyle=this.TextColor;this.Canvas.textBaseline='bottom';var yText=rtBG.Bottom-yOffset;if(item.TextAlign=='right'){this.Canvas.textAlign='right';this.Canvas.fillText(item.Text,rtBG.Right-2,yText,width-4);}else if(item.TextAlign=='center'){this.Canvas.textAlign='center';this.Canvas.fillText(item.Text,rtBG.Left+rtBG.Width/2,yText,width-4);}else{this.Canvas.textAlign='left';this.Canvas.fillText(item.Text,rtBG.Left+2,yText,width-4);}}if(rtBG.Width>5){this.AryCellRect.push({Item:{Cell:item,Colunm:data,RowIndex:i,Tooltip:item.Tooltip,Type:1},Rect:rtBG});}}}};this.GetDynamicTextFont=function(cellHeight,width,fontOption){var fontSize=parseInt(cellHeight)-2;if(cellHeight<5)fontSize=parseInt(cellHeight);//高度太小了就不要上下间距了
|
|
4080
|
+
if(fontSize>this.TextFontConfig.FontMaxSize)fontSize=this.TextFontConfig.FontMaxSize;else if(fontSize<=0)fontSize=1;var font=this.FormatFontString(fontSize,this.TextFontConfig.Family,fontOption);return font;};this.FormatFontString=function(fontSize,family,option){var font;if(!option){font=fontSize+'px '+family;}else{if(option.Weight)font=option.Weight+' '+fontSize+'px '+family;}return font;};this.GetMaxMin=function(){return{Min:0,Max:this.RowCount};};this.GetTooltipData=function(x,y,tooltip){if(!this.IsShow)return false;for(var i=0;i<this.AryCellRect.length;++i){var item=this.AryCellRect[i];if(!item.Rect)continue;var rect=item.Rect;if(x>=rect.Left&&x<=rect.Right&&y>=rect.Top&&y<=rect.Bottom){var data=item.Item;JSConsole.Chart.Log('[ChartKLineTable::GetTooltipData] cell',item);tooltip.Data={Rect:item.Rect,Item:data};tooltip.ChartPaint=this;tooltip.Type=9;//ChartKLineTable
|
|
4081
|
+
return true;}}return false;};}//表格
|
|
4079
4082
|
function ChartSimpleTable(){this.newMethod=IChartPainting;//派生
|
|
4080
4083
|
this.newMethod();delete this.newMethod;this.ClassName='ChartSimpleTable';//类名
|
|
4081
4084
|
//this.Data;
|
|
@@ -4187,7 +4190,7 @@ this.DrawArea=function(){var bHScreen=this.ChartFrame.IsHScreen===true;var isMin
|
|
|
4187
4190
|
var bFirstPoint=true;var ptFirst=null,ptEnd=null;//起始结束点
|
|
4188
4191
|
var drawCount=0;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var value=this.Data.Data[i];if(!IFrameSplitOperator.IsNumber(value)){if(drawCount>0)this.Canvas.stroke();if(ptFirst&&ptEnd){if(bHScreen){if(this.AreaDirection==1){this.Canvas.lineTo(border.RightEx,ptEnd.X);this.Canvas.lineTo(border.RightEx,ptFirst.X);}else{this.Canvas.lineTo(border.LeftEx,ptEnd.X);this.Canvas.lineTo(border.LeftEx,ptFirst.X);}this.Canvas.closePath();this.Canvas.fill();}else{if(this.AreaDirection==1){this.Canvas.lineTo(ptEnd.X,border.TopEx);this.Canvas.lineTo(ptFirst.X,border.TopEx);}else{this.Canvas.lineTo(ptEnd.X,border.BottomEx);this.Canvas.lineTo(ptFirst.X,border.BottomEx);}this.Canvas.closePath();this.Canvas.fill();}}bFirstPoint=true;drawCount=0;ptFirst=null;ptEnd=null;continue;}if(isMinute){var x=this.ChartFrame.GetXFromIndex(j);}else{var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;var x=left+(right-left)/2;}var y=this.GetYFromData(value,false);if(x>chartright)break;if(bFirstPoint){this.Canvas.beginPath();if(bHScreen)this.Canvas.moveTo(y,x);//横屏坐标轴对调
|
|
4189
4192
|
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);ptEnd={X:x,Y:y};}++drawCount;}if(drawCount>0){if(drawCount==1&&ptFirst)//如果只有1个点, 画一个像素的横线
|
|
4190
|
-
{if(bHScreen)this.Canvas.lineTo(ptFirst.Y,ptFirst.X+1*GetDevicePixelRatio());else this.Canvas.lineTo(ptFirst.X+1*GetDevicePixelRatio(),ptFirst.Y);}this.Canvas.stroke();if(ptFirst&&ptEnd){if(bHScreen){if(this.AreaDirection==1){this.Canvas.lineTo(border.RightEx,ptEnd.X);this.Canvas.lineTo(border.RightEx,ptFirst.X);}else{this.Canvas.lineTo(border.LeftEx,ptEnd.X);this.Canvas.lineTo(border.LeftEx,ptFirst.X);}this.Canvas.closePath();this.Canvas.fill();}else{if(this.AreaDirection==1){this.Canvas.lineTo(ptEnd.X,border.TopEx);this.Canvas.lineTo(ptFirst.X,border.TopEx);}else{this.Canvas.lineTo(ptEnd.X,border.BottomEx);this.Canvas.lineTo(ptFirst.X,border.BottomEx);}this.Canvas.closePath();this.Canvas.fill();}}}this.Canvas.restore();};}//散点图
|
|
4193
|
+
{if(bHScreen)this.Canvas.lineTo(ptFirst.Y,ptFirst.X+1*GetDevicePixelRatio());else this.Canvas.lineTo(ptFirst.X+1*GetDevicePixelRatio(),ptFirst.Y);}this.Canvas.stroke();if(ptFirst&&ptEnd){if(bHScreen){if(this.AreaDirection==1){this.Canvas.lineTo(border.RightEx,ptEnd.X);this.Canvas.lineTo(border.RightEx,ptFirst.X);}else{this.Canvas.lineTo(border.LeftEx,ptEnd.X);this.Canvas.lineTo(border.LeftEx,ptFirst.X);}this.Canvas.closePath();this.Canvas.fill();}else{if(this.AreaDirection==1){this.Canvas.lineTo(ptEnd.X,border.TopEx);this.Canvas.lineTo(ptFirst.X,border.TopEx);}else{this.Canvas.lineTo(ptEnd.X,border.BottomEx);this.Canvas.lineTo(ptFirst.X,border.BottomEx);}this.Canvas.closePath();this.Canvas.fill();}}}this.Canvas.restore();};}//散点图 建议使用新版本 ChartScatterPlotV2
|
|
4191
4194
|
function ChartScatterPlot(){this.newMethod=IChartPainting;//派生
|
|
4192
4195
|
this.newMethod();delete this.newMethod;this.ClassName='ChartScatterPlot';//类名
|
|
4193
4196
|
//默认点配置
|
|
@@ -4195,7 +4198,7 @@ this.Color="rgb(255,193,37)";//点颜色
|
|
|
4195
4198
|
this.Radius=3;//半径
|
|
4196
4199
|
//this.Data.Data [ {Value:, Radius:半径(可选), Color:颜色(可选), ColorBorder:边框颜色(可选)}, .....]
|
|
4197
4200
|
this.TooltipData=[];this.Draw=function(){this.TooltipData=[];if(!this.IsShow||this.ChartFrame.IsMinSize)return;if(this.IsShowIndexTitleOnly())return;if(this.IsHideScriptIndex())return;if(this.NotSupportMessage){this.DrawNotSupportmessage();return;}if(!this.Data||!this.Data.Data)return;this.DrawScatterPlot();};this.DrawScatterPlot=function(){var bHScreen=this.ChartFrame.IsHScreen===true;var isMinute=this.IsMinuteFrame();var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var xPointCount=this.ChartFrame.XPointCount;if(bHScreen){var border=this.ChartBorder.GetHScreenBorder();var chartright=border.BottomEx;var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;}else{var border=this.ChartBorder.GetBorder();var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;}var lockRect=this.GetLockRect();if(lockRect){if(bHScreen)chartright=lockRect.Top;else chartright=lockRect.Left;}this.Canvas.save();this.ClipClient(bHScreen);for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var item=this.Data.Data[i];if(!item)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;}if(x>chartright)break;if(Array.isArray(item)){for(var j=0;j<item.length;++j){this.DrawItem(item[j],x);}}else{this.DrawItem(item,x);}}this.Canvas.restore();};this.DrawItem=function(item,x){if(!item)return;if(!IFrameSplitOperator.IsNumber(item.Value))return;var y=this.GetYFromData(item.Value,false);var radius=this.Radius;if(item.Radius)radius=item.Radius;if(!IFrameSplitOperator.IsNumber(radius))return;this.Canvas.beginPath();this.Canvas.arc(x,y,radius,0,2*Math.PI);var color=this.Color;if(item.Color)color=item.Color;if(color){this.Canvas.fillStyle=color;this.Canvas.fill();}if(item.ColorBorder){this.Canvas.strokeStyle=item.ColorBorder;this.Canvas.stroke();}var itemTooltip={X:x,Y:y,Radius:radius,Data:item};this.TooltipData.push(itemTooltip);};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={};range.Min=null;range.Max=null;if(!this.Data||!this.Data.Data)return range;for(var i=start,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var point=this.Data.Data[i];if(!point)continue;if(Array.isArray(point)){for(var k=0;k<point.length;++k){var item=point[k];if(!IFrameSplitOperator.IsNumber(item.Value))continue;if(range.Max==null)range.Max=item.Value;if(range.Min==null)range.Min=item.Value;if(range.Max<item.Value)range.Max=item.Value;if(range.Min>item.Value)range.Min=item.Value;}}else{if(!IFrameSplitOperator.IsNumber(point.Value))continue;if(range.Max==null)range.Max=point.Value;if(range.Min==null)range.Min=point.Value;if(range.Max<point.Value)range.Max=point.Value;if(range.Min>point.Value)range.Min=point.Value;}}return range;};this.GetTooltipData=function(x,y,tooltip){if(!this.IsShow)return false;if(!IFrameSplitOperator.IsNonEmptyArray(this.TooltipData))return false;for(var i=this.TooltipData.length-1;i>=0;--i){var item=this.TooltipData[i];this.Canvas.beginPath();this.Canvas.arc(item.X,item.Y,item.Radius,0,2*Math.PI);if(this.Canvas.isPointInPath(x,y)){JSConsole.Chart.Log('[ChartScatterPlot::GetTooltipData] point',item);tooltip.Data=item;tooltip.ChartPaint=this;tooltip.Type=6;//散点图
|
|
4198
|
-
return true;}}};}//散点图
|
|
4201
|
+
return true;}}};}//散点图 2.0
|
|
4199
4202
|
function ChartScatterPlotV2(){this.newMethod=IChartPainting;//派生
|
|
4200
4203
|
this.newMethod();delete this.newMethod;this.ClassName='ChartScatterPlotV2';//类名
|
|
4201
4204
|
//默认点配置
|
|
@@ -4687,9 +4690,12 @@ this.EnableTooltip=true;this.TooltipRect=[];this.ExcludeArea=null;//排除区域
|
|
|
4687
4690
|
this.AutoPosition=null;//{ Direction:0, MaxYOffset:40 } //自动调整Y轴偏移,防止文字重叠
|
|
4688
4691
|
this.AryDrawRect=[];//已经绘制的区域
|
|
4689
4692
|
this.AutoYOffset=0;this.BuildKeyCallback=null;this.MapCache=null;//key=date/date-time value={ Data:[] }
|
|
4690
|
-
this.
|
|
4693
|
+
this.AryDrawDetail=[];//需要绘制的文字信息
|
|
4694
|
+
this.EnalbeDetailOnVerlap=false;//详情重叠不显示
|
|
4695
|
+
this.BuildKey=function(item){if(this.BuildKeyCallback)return this.BuildKeyCallback(item);if(IFrameSplitOperator.IsNumber(item.Time))return item.Date+'-'+item.Time;else return''+item.Date;};this.BuildCacheData=function(){var mapData=new _map2.default();this.MapCache=mapData;for(var i=0;i<this.Texts.length;++i){var item=this.Texts[i];var key=this.BuildKey(item);if(!key)continue;if(mapData.has(key)){var mapItem=mapData.get(key);mapItem.Data.push(item);}else{mapData.set(key,{Date:item.Date,Time:item.Time,Data:[item]});}}};this.Draw=function(){this.TooltipRect=[];this.AryDrawRect=[];this.AryDrawDetail=[];this.AutoYOffset=0;if(!this.IsShow||this.ChartFrame.IsMinSize||!this.IsVisible)return;if(this.IsShowIndexTitleOnly())return;if(this.IsHideScriptIndex())return;if(!this.MapCache||this.MapCache.size<=0)return;this.DrawSVGV2();if(this.EnalbeDetailOnVerlap)this.DrawOnVerlapDetail();this.AryDrawDetail=[];};this.DrawDetail=function(rtSVG,data,svgItem){if(!IFrameSplitOperator.IsNonEmptyArray(data.Content))return;var lefMargin=2;var rightMargin=2;var itemSpace=2;var rtBorder={Left:rtSVG.Right,Right:rtSVG.Right,Bottom:rtSVG.Bottom};var rightBorder=0;//右边的边界 0=div的宽度 1=图形框架边框
|
|
4691
4696
|
if(IFrameSplitOperator.IsNumber(data.ItemSpace))itemSpace=data.ItemSpace;if(IFrameSplitOperator.IsNumber(data.YOffset))rtBorder.Bottom+=data.YOffset;if(IFrameSplitOperator.IsNumber(data.XOffset))rtBorder.Left+=data.XOffset;if(IFrameSplitOperator.IsNumber(data.LeftMargin))lefMargin=data.LeftMargin;if(IFrameSplitOperator.IsNumber(data.RightMargin))rightMargin=data.RightMargin;if(IFrameSplitOperator.IsNumber(data.RightBorder))rightBorder=data.RightBorder;if(data.Font)this.Canvas.font=data.Font;else this.Canvas.font=this.TextFont;this.Canvas.textBaseline='bottom';this.Canvas.textAlign='left';var textHeight=this.Canvas.measureText("擎").width+2;rtBorder.Height=textHeight+5;var yText=rtBorder.Bottom-(rtBorder.Height-textHeight)/2;var xText=rtBorder.Left+lefMargin;var aryText=[];for(var i=0;i<data.Content.length;++i){if(aryText.length>0)xText+=itemSpace;var item=data.Content[i];if(!item.Text)continue;var textWidth=this.Canvas.measureText(item.Text).width+2;aryText.push({X:xText,Y:yText,Width:textWidth,Data:item});xText+=textWidth;rtBorder.Right=xText;}rtBorder.Right+=rightMargin;rtBorder.Width=rtBorder.Right-rtBorder.Left;rtBorder.Top=rtBorder.Bottom-rtBorder.Height;var right=this.ChartBorder.GetChartWidth()-1;if(rightBorder==1)right=this.ChartBorder.GetRight();if(rtBorder.Right>right)//右边显示不下,显示在左边
|
|
4692
|
-
{rtBorder.Right=rtSVG.Left;if(IFrameSplitOperator.IsNumber(data.XOffset))rtBorder.Right-=data.XOffset;rtBorder.Left=rtBorder.Right-rtBorder.Width;var xText=rtBorder.Left+lefMargin;for(var i=0;i<aryText.length;++i){if(i>0)xText+=itemSpace;var item=aryText[i];item.X=xText;xText+=item.Width;}}if(
|
|
4697
|
+
{rtBorder.Right=rtSVG.Left;if(IFrameSplitOperator.IsNumber(data.XOffset))rtBorder.Right-=data.XOffset;rtBorder.Left=rtBorder.Right-rtBorder.Width;var xText=rtBorder.Left+lefMargin;for(var i=0;i<aryText.length;++i){if(i>0)xText+=itemSpace;var item=aryText[i];item.X=xText;xText+=item.Width;}}if(this.EnalbeDetailOnVerlap)//启动重叠不会 先不画只计算位置, 后面统一画
|
|
4698
|
+
{this.AryDrawDetail.push({Rect:rtBorder,AryText:aryText,Data:svgItem});return;}this.DrawDetailText(data,aryText,rtBorder);this.AryDrawRect.push({Left:rtBorder.Left,Top:rtBorder.Top,Right:rtBorder.Right,Bottom:rtBorder.Bottom,Type:"Detail",Data:svgItem});};this.DrawDetailText=function(data,aryText,rtBorder){if(!data)return;if(data.BGColor){this.Canvas.fillStyle=data.BGColor;this.Canvas.fillRect(rtBorder.Left,rtBorder.Top,rtBorder.Width,rtBorder.Height);}if(data.BorderColor){this.Canvas.strokeStyle=data.BorderColor;this.Canvas.strokeRect(ToFixedPoint(rtBorder.Left),ToFixedPoint(rtBorder.Top),ToFixedRect(rtBorder.Width),ToFixedRect(rtBorder.Height));}for(var i=0;i<aryText.length;++i){var item=aryText[i];this.Canvas.fillStyle=item.Data.Color;this.Canvas.fillText(item.Data.Text,item.X,item.Y);}};this.DrawOnVerlapDetail=function(){if(!IFrameSplitOperator.IsNonEmptyArray(this.AryDrawDetail))return;for(var i=this.AryDrawDetail.length-1;i>=0;--i){var drawItem=this.AryDrawDetail[i];var rtBorder=drawItem.Rect;if(this.IsRectOverlap(rtBorder))continue;this.DrawDetailText(drawItem.Data.Detail,drawItem.AryText,rtBorder);this.AryDrawRect.push({Left:rtBorder.Left,Top:rtBorder.Top,Right:rtBorder.Right,Bottom:rtBorder.Bottom,Type:"Detail",Data:drawItem.Data});}};this.GetDetailPosition=function(rtSVG,data){if(!IFrameSplitOperator.IsNonEmptyArray(data.Content))return null;var lefMargin=2;var rightMargin=2;var itemSpace=2;var rtBorder={Left:rtSVG.Right,Right:rtSVG.Right,Bottom:rtSVG.Bottom};var rightBorder=0;//右边的边界 0=div的宽度 1=图形框架边框
|
|
4693
4699
|
if(IFrameSplitOperator.IsNumber(data.ItemSpace))itemSpace=data.ItemSpace;if(IFrameSplitOperator.IsNumber(data.YOffset))rtBorder.Bottom+=data.YOffset;if(IFrameSplitOperator.IsNumber(data.XOffset))rtBorder.Left+=data.XOffset;if(IFrameSplitOperator.IsNumber(data.LeftMargin))lefMargin=data.LeftMargin;if(IFrameSplitOperator.IsNumber(data.RightMargin))rightMargin=data.RightMargin;if(IFrameSplitOperator.IsNumber(data.RightBorder))rightBorder=data.RightBorder;if(data.Font)this.Canvas.font=data.Font;else this.Canvas.font=this.TextFont;var textHeight=this.Canvas.measureText("擎").width+2;rtBorder.Height=textHeight+5;var yText=rtBorder.Bottom-(rtBorder.Height-textHeight)/2;var xText=rtBorder.Left+lefMargin;var bFrist=true;for(var i=0;i<data.Content.length;++i){if(!bFrist)xText+=itemSpace;var item=data.Content[i];if(!item.Text)continue;var textWidth=this.Canvas.measureText(item.Text).width+2;xText+=textWidth;rtBorder.Right=xText;bFrist=false;}rtBorder.Right+=rightMargin;rtBorder.Width=rtBorder.Right-rtBorder.Left;rtBorder.Top=rtBorder.Bottom-rtBorder.Height;var right=this.ChartBorder.GetChartWidth()-1;if(rightBorder==1)right=this.ChartBorder.GetRight();if(rtBorder.Right>right)//右边显示不下,显示在左边
|
|
4694
4700
|
{rtBorder.Right=rtSVG.Left;if(IFrameSplitOperator.IsNumber(data.XOffset))rtBorder.Right-=data.XOffset;rtBorder.Left=rtBorder.Right-rtBorder.Width;}return rtBorder;};this.CalculateShowPosition=function(item,pt){var x=pt.X,y=pt.Y;var svgItem=item.SVG;if(IFrameSplitOperator.IsNumber(svgItem.YOffset))y+=svgItem.YOffset;var fontSVG=svgItem.Size+'px '+this.Family;this.Canvas.font=fontSVG;var halfSize=svgItem.Size/2;var rtSVG={Left:x-halfSize,Right:x+halfSize,Top:y-svgItem.Size,Bottom:y,Height:svgItem.Size,Width:svgItem.Size};if(svgItem.VAlign===0)//top
|
|
4695
4701
|
{rtSVG.Top=y;rtSVG.Bottom=rtSVG.Top+svgItem.Size;}else if(svgItem.VAlign===1)//middle
|
|
@@ -4702,182 +4708,7 @@ if(item.Line){var lineItem=item.Line;var price=null,yPrice=null;if(lineItem.Valu
|
|
|
4702
4708
|
yText-=lineItem.SVGBlank;}}else{yText=rtSVG.Bottom;if(IFrameSplitOperator.IsNumber(lineItem.SVGBlank)){//yPrice-=lineItem.Blank;
|
|
4703
4709
|
yText+=lineItem.SVGBlank;}}if(lineItem.Dash)this.Canvas.setLineDash(lineItem.Dash);//虚线
|
|
4704
4710
|
var lineWidth=1*pixelRatio;if(lineItem.Width>0)lineWidth=lineItem.Width*pixelRatio;this.Canvas.lineWidth=lineWidth;//线宽
|
|
4705
|
-
this.Canvas.strokeStyle=lineItem.Color;this.Canvas.beginPath();if(this.IsHScreen){this.Canvas.moveTo(yText,ToFixedPoint(x));this.Canvas.lineTo(yPrice,ToFixedPoint(x));}else{this.Canvas.moveTo(ToFixedPoint2(lineWidth,x),yText);this.Canvas.lineTo(ToFixedPoint2(lineWidth,x),yPrice);}this.Canvas.stroke();this.Canvas.setLineDash([]);}}setKey.add(key);}}
|
|
4706
|
-
this.DrawSVG=function()
|
|
4707
|
-
{
|
|
4708
|
-
if (!this.IsShow || this.ChartFrame.IsMinSize) return;
|
|
4709
|
-
if (!this.Data || !IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return;
|
|
4710
|
-
if (!IFrameSplitOperator.IsNonEmptyArray(this.Texts)) return;
|
|
4711
|
-
if (!this.Family) return;
|
|
4712
|
-
|
|
4713
|
-
this.IsHScreen=(this.ChartFrame.IsHScreen===true);
|
|
4714
|
-
var xPointCount=this.ChartFrame.XPointCount;
|
|
4715
|
-
var offset=this.Data.DataOffset;
|
|
4716
|
-
var top=this.ChartBorder.GetTopEx();
|
|
4717
|
-
var bottom=this.ChartBorder.GetBottomEx();
|
|
4718
|
-
var pixelRatio = GetDevicePixelRatio();
|
|
4719
|
-
|
|
4720
|
-
var x=0,y=0;
|
|
4721
|
-
for(var i=0; i<this.Texts.length; ++i)
|
|
4722
|
-
{
|
|
4723
|
-
var item=this.Texts[i];
|
|
4724
|
-
|
|
4725
|
-
if (!item.SVG || !item.SVG.Symbol) continue;
|
|
4726
|
-
if (!IFrameSplitOperator.IsNumber(item.Index)) continue;
|
|
4727
|
-
|
|
4728
|
-
var isMinuteFrame=this.IsMinuteFrame();
|
|
4729
|
-
var index=item.Index-offset;
|
|
4730
|
-
var kItem=this.Data.Data[item.Index];
|
|
4731
|
-
if (index<0 || index>=xPointCount) continue;
|
|
4732
|
-
|
|
4733
|
-
x=this.ChartFrame.GetXFromIndex(index);
|
|
4734
|
-
if (item.Value=="Top") y=top;
|
|
4735
|
-
else if (item.Value=="Bottom") y=bottom;
|
|
4736
|
-
else y=this.ChartFrame.GetYFromData(item.Value, false);
|
|
4737
|
-
if (IFrameSplitOperator.IsNumber(item.YOffset)) y+=item.YOffset; //Y轴偏移
|
|
4738
|
-
|
|
4739
|
-
var svgItem=item.SVG;
|
|
4740
|
-
if (IFrameSplitOperator.IsNumber(svgItem.YOffset)) y+=svgItem.YOffset;
|
|
4741
|
-
|
|
4742
|
-
if (this.AutoPosition)
|
|
4743
|
-
{
|
|
4744
|
-
var pt={ X:x, Y:y };
|
|
4745
|
-
this.CalculateShowPosition(item, pt); //重新计算位置
|
|
4746
|
-
x=pt.X;
|
|
4747
|
-
y=pt.Y;
|
|
4748
|
-
}
|
|
4749
|
-
|
|
4750
|
-
|
|
4751
|
-
var fontSVG=`${svgItem.Size}px ${this.Family}`;
|
|
4752
|
-
this.Canvas.font=fontSVG;
|
|
4753
|
-
var halfSize=svgItem.Size/2;
|
|
4754
|
-
var textBaseline='bottom';
|
|
4755
|
-
var rtSVG={ Left:x-halfSize, Right:x+halfSize, Top:y-svgItem.Size, Bottom:y, Height:svgItem.Size, Width:svgItem.Size };
|
|
4756
|
-
if (svgItem.VAlign===0)
|
|
4757
|
-
{
|
|
4758
|
-
textBaseline="top";
|
|
4759
|
-
rtSVG.Top=y;
|
|
4760
|
-
rtSVG.Bottom=rtSVG.Top+svgItem.Size;
|
|
4761
|
-
}
|
|
4762
|
-
else if (svgItem.VAlign===1)
|
|
4763
|
-
{
|
|
4764
|
-
textBaseline='middle';
|
|
4765
|
-
rtSVG.Top=y-svgItem.Size/2;
|
|
4766
|
-
rtSVG.Bottom=rtSVG.Top+svgItem.Size;
|
|
4767
|
-
}
|
|
4768
|
-
|
|
4769
|
-
if (rtSVG.Top<0)
|
|
4770
|
-
{
|
|
4771
|
-
rtSVG.Top=0;
|
|
4772
|
-
rtSVG.Bottom=svgItem.Size;
|
|
4773
|
-
y=rtSVG.Bottom;
|
|
4774
|
-
}
|
|
4775
|
-
|
|
4776
|
-
this.Canvas.textBaseline=textBaseline;
|
|
4777
|
-
this.Canvas.textAlign='center';
|
|
4778
|
-
this.Canvas.fillStyle = svgItem.Color;
|
|
4779
|
-
this.Canvas.fillText(svgItem.Symbol, x, y);
|
|
4780
|
-
|
|
4781
|
-
this.AryDrawRect.push( {Left:rtSVG.Left, Top:rtSVG.Top, Right:rtSVG.Right, Bottom:rtSVG.Bottom, Type:"SVG", Data:item } );
|
|
4782
|
-
|
|
4783
|
-
if (this.EnableTooltip) this.TooltipRect.push({ Rect:rtSVG,Index:i });
|
|
4784
|
-
|
|
4785
|
-
//文字
|
|
4786
|
-
if (item.Text && item.Text.Content && this.TextFont)
|
|
4787
|
-
{
|
|
4788
|
-
var textItem=item.Text;
|
|
4789
|
-
this.Canvas.font=this.TextFont;
|
|
4790
|
-
this.Canvas.fillStyle=textItem.Color;
|
|
4791
|
-
var yText=y;
|
|
4792
|
-
if (IFrameSplitOperator.IsNumber(textItem.YOffset)) yText+=textItem.YOffset;
|
|
4793
|
-
this.Canvas.fillText(textItem.Content, x, yText);
|
|
4794
|
-
}
|
|
4795
|
-
|
|
4796
|
-
if (item.Detail)
|
|
4797
|
-
{
|
|
4798
|
-
this.DrawDetail(rtSVG,item.Detail, item);
|
|
4799
|
-
}
|
|
4800
|
-
|
|
4801
|
-
//连线
|
|
4802
|
-
if (item.Line)
|
|
4803
|
-
{
|
|
4804
|
-
var lineItem=item.Line;
|
|
4805
|
-
var price=null, yPrice=null;
|
|
4806
|
-
var kItem=this.Data.Data[item.Index];
|
|
4807
|
-
if (lineItem.Value=="Bottom")
|
|
4808
|
-
{
|
|
4809
|
-
yPrice=bottom;
|
|
4810
|
-
}
|
|
4811
|
-
else if (lineItem.Value=="Top")
|
|
4812
|
-
{
|
|
4813
|
-
yPrice=top;
|
|
4814
|
-
}
|
|
4815
|
-
else
|
|
4816
|
-
{
|
|
4817
|
-
switch(lineItem.Value)
|
|
4818
|
-
{
|
|
4819
|
-
case "C":
|
|
4820
|
-
price=kItem.Close;
|
|
4821
|
-
break;
|
|
4822
|
-
case "H":
|
|
4823
|
-
price=kItem.High;
|
|
4824
|
-
break;
|
|
4825
|
-
case "L":
|
|
4826
|
-
price=kItem.Low;
|
|
4827
|
-
break;
|
|
4828
|
-
}
|
|
4829
|
-
|
|
4830
|
-
if (!IFrameSplitOperator.IsNumber(price)) continue;
|
|
4831
|
-
|
|
4832
|
-
yPrice=this.ChartFrame.GetYFromData(price);
|
|
4833
|
-
}
|
|
4834
|
-
|
|
4835
|
-
if (yPrice>=rtSVG.Top && yPrice<=rtSVG.Bottom) continue;
|
|
4836
|
-
|
|
4837
|
-
var yText;
|
|
4838
|
-
if (yPrice<rtSVG.Top)
|
|
4839
|
-
{
|
|
4840
|
-
yText=rtSVG.Top;
|
|
4841
|
-
if (IFrameSplitOperator.IsNumber(lineItem.SVGBlank))
|
|
4842
|
-
{
|
|
4843
|
-
//yPrice+=lineItem.Blank;
|
|
4844
|
-
yText-=lineItem.SVGBlank;
|
|
4845
|
-
}
|
|
4846
|
-
}
|
|
4847
|
-
else
|
|
4848
|
-
{
|
|
4849
|
-
yText=rtSVG.Bottom;
|
|
4850
|
-
if (IFrameSplitOperator.IsNumber(lineItem.SVGBlank))
|
|
4851
|
-
{
|
|
4852
|
-
//yPrice-=lineItem.Blank;
|
|
4853
|
-
yText+=lineItem.SVGBlank;
|
|
4854
|
-
}
|
|
4855
|
-
}
|
|
4856
|
-
|
|
4857
|
-
if (lineItem.Dash) this.Canvas.setLineDash(lineItem.Dash); //虚线
|
|
4858
|
-
var lineWidth=1*pixelRatio;
|
|
4859
|
-
if (lineItem.Width>0) lineWidth=lineItem.Width*pixelRatio;
|
|
4860
|
-
this.Canvas.lineWidth=lineWidth; //线宽
|
|
4861
|
-
this.Canvas.strokeStyle = lineItem.Color;
|
|
4862
|
-
this.Canvas.beginPath();
|
|
4863
|
-
|
|
4864
|
-
if (this.IsHScreen)
|
|
4865
|
-
{
|
|
4866
|
-
this.Canvas.moveTo(yText, ToFixedPoint(x));
|
|
4867
|
-
this.Canvas.lineTo(yPrice,ToFixedPoint(x));
|
|
4868
|
-
}
|
|
4869
|
-
else
|
|
4870
|
-
{
|
|
4871
|
-
this.Canvas.moveTo(ToFixedPoint2(lineWidth,x),yText);
|
|
4872
|
-
this.Canvas.lineTo(ToFixedPoint2(lineWidth,x),yPrice);
|
|
4873
|
-
}
|
|
4874
|
-
|
|
4875
|
-
this.Canvas.stroke();
|
|
4876
|
-
this.Canvas.setLineDash([]);
|
|
4877
|
-
}
|
|
4878
|
-
}
|
|
4879
|
-
}
|
|
4880
|
-
*/this.GetMaxMin=function(){this.IsHScreen=this.ChartFrame.IsHScreen===true;var range={Min:null,Max:null};if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return range;if(!this.MapCache||this.MapCache.size<=0)return;var xPointCount=this.ChartFrame.XPointCount;for(var i=this.Data.DataOffset,j=0,k=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var kItem=this.Data.Data[i];var key=this.BuildKey(kItem);if(!this.MapCache.has(key))continue;var mapItem=this.MapCache.get(key);if(!IFrameSplitOperator.IsNonEmptyArray(mapItem.Data))continue;for(k=0;k<mapItem.Data.length;++k){var item=mapItem.Data[k];var value=item.Value;if(IFrameSplitOperator.IsString(item.Value))value=this.GetKValue(kItem,item.Value);if(!IFrameSplitOperator.IsNumber(value))continue;if(range.Max==null)range.Max=value;else if(range.Max<value)range.Max=value;if(range.Min==null)range.Min=value;else if(range.Min>value)range.Min=value;}}return range;};this.GetTooltipData=function(x,y,tooltip){if(!this.IsShow)return false;for(var i=0;i<this.TooltipRect.length;++i){var item=this.TooltipRect[i];if(!item.Rect)continue;var rect=item.Rect;if(x>=rect.Left&&x<=rect.Right&&y>=rect.Top&&y<=rect.Bottom){var data=item.Item;JSConsole.Chart.Log('[ChartDrawSVG::GetTooltipData] svg icon.',item);tooltip.Data={Rect:item.Rect,Item:data,Index:item.Index};tooltip.ChartPaint=this;tooltip.Type=7;//drawsvg
|
|
4711
|
+
this.Canvas.strokeStyle=lineItem.Color;this.Canvas.beginPath();if(this.IsHScreen){this.Canvas.moveTo(yText,ToFixedPoint(x));this.Canvas.lineTo(yPrice,ToFixedPoint(x));}else{this.Canvas.moveTo(ToFixedPoint2(lineWidth,x),yText);this.Canvas.lineTo(ToFixedPoint2(lineWidth,x),yPrice);}this.Canvas.stroke();this.Canvas.setLineDash([]);}}setKey.add(key);}};this.GetMaxMin=function(){this.IsHScreen=this.ChartFrame.IsHScreen===true;var range={Min:null,Max:null};if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return range;if(!this.MapCache||this.MapCache.size<=0)return;var xPointCount=this.ChartFrame.XPointCount;for(var i=this.Data.DataOffset,j=0,k=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var kItem=this.Data.Data[i];var key=this.BuildKey(kItem);if(!this.MapCache.has(key))continue;var mapItem=this.MapCache.get(key);if(!IFrameSplitOperator.IsNonEmptyArray(mapItem.Data))continue;for(k=0;k<mapItem.Data.length;++k){var item=mapItem.Data[k];var value=item.Value;if(IFrameSplitOperator.IsString(item.Value))value=this.GetKValue(kItem,item.Value);if(!IFrameSplitOperator.IsNumber(value))continue;if(range.Max==null)range.Max=value;else if(range.Max<value)range.Max=value;if(range.Min==null)range.Min=value;else if(range.Min>value)range.Min=value;}}return range;};this.GetTooltipData=function(x,y,tooltip){if(!this.IsShow)return false;for(var i=0;i<this.TooltipRect.length;++i){var item=this.TooltipRect[i];if(!item.Rect)continue;var rect=item.Rect;if(x>=rect.Left&&x<=rect.Right&&y>=rect.Top&&y<=rect.Bottom){var data=item.Item;JSConsole.Chart.Log('[ChartDrawSVG::GetTooltipData] svg icon.',item);tooltip.Data={Rect:item.Rect,Item:data,Index:item.Index};tooltip.ChartPaint=this;tooltip.Type=7;//drawsvg
|
|
4881
4712
|
if(data.Tooltip&&data.Tooltip.Ver==2.0)tooltip.Type=8;//drawsvg 新本版
|
|
4882
4713
|
return true;}}return false;};}// OX图 支持横屏
|
|
4883
4714
|
function ChartOX(){this.newMethod=IChartPainting;//派生
|
|
@@ -12288,9 +12119,9 @@ chart.Lines=varItem.Draw.DrawData;if(varItem.Draw.Name)chart.Name=varItem.Draw.N
|
|
|
12288
12119
|
chart.PointGroup=varItem.Draw.DrawData;if(varItem.Draw.Name)chart.Name=varItem.Draw.Name;chart.BuildCacheData();this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);var titleIndex=windowIndex+1;var bShowTitle=true;if(varItem.IsShowTitle===false)bShowTitle=false;if(bShowTitle){var titleData=new DynamicTitleData(chart.Data,chart.Name,null);titleData.DataType="ChartMultiPoint";titleData.GetItemCallback=function(kItem){return chart.GetItem(kItem);};hqChart.TitlePaint[titleIndex].Data[i]=titleData;}};this.CreateMultiBar=function(hqChart,windowIndex,varItem,id){var chart=new ChartMultiBar();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data=hqChart.GetKData();//绑定K线
|
|
12289
12120
|
chart.Bars=varItem.Draw.DrawData;chart.BuildCacheData();this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);var titleIndex=windowIndex+1;var bShowTitle=true;if(varItem.IsShowTitle===false)bShowTitle=false;if(bShowTitle){var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);titleData.DataType="ChartMultiBar";titleData.GetItemCallback=function(kItem){return chart.GetItem(kItem);};hqChart.TitlePaint[titleIndex].Data[id]=titleData;}};this.CreateMultiText=function(hqChart,windowIndex,varItem,i){var chart=new ChartMultiText();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data=hqChart.GetKData();//绑定K线
|
|
12290
12121
|
chart.Texts=varItem.Draw.DrawData;chart.BuildCacheData();this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);};this.CreateMultiSVGIcon=function(hqChart,windowIndex,varItem,i){var chart=new ChartMultiSVGIconV2();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data=hqChart.GetKData();//绑定K线
|
|
12291
|
-
chart.Family=varItem.Draw.DrawData.Family;chart.AryIcon=varItem.Draw.DrawData.Icon;chart.BuildCacheData();this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);};this.CreateChartDrawSVG=function(hqChart,windowIndex,varItem,i){var chart=new ChartDrawSVG();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data=hqChart.GetKData();if(IFrameSplitOperator.IsBool(varItem.Draw.DrawData.EnableTooltip))chart.EnableTooltip=varItem.Draw.DrawData.EnableTooltip;if(IFrameSplitOperator.IsBool(varItem.Draw.DrawData.IsDrawFirst))chart.IsDrawFirst=varItem.Draw.DrawData.IsDrawFirst;if(varItem.Draw.BuildKeyCallback)chart.BuildKeyCallback=varItem.Draw.BuildKeyCallback;chart.Family=varItem.Draw.DrawData.Family;chart.TextFont=varItem.Draw.DrawData.TextFont;chart.Texts=varItem.Draw.DrawData.Data;chart.BuildCacheData();this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);};this.CreateMulitHtmlDom=function(hqChart,windowIndex,varItem,i){var chart=new ChartMultiHtmlDom();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
12122
|
+
chart.Family=varItem.Draw.DrawData.Family;chart.AryIcon=varItem.Draw.DrawData.Icon;chart.BuildCacheData();this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);};this.CreateChartDrawSVG=function(hqChart,windowIndex,varItem,i){var chart=new ChartDrawSVG();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data=hqChart.GetKData();if(IFrameSplitOperator.IsBool(varItem.Draw.DrawData.EnableTooltip))chart.EnableTooltip=varItem.Draw.DrawData.EnableTooltip;if(IFrameSplitOperator.IsBool(varItem.Draw.DrawData.IsDrawFirst))chart.IsDrawFirst=varItem.Draw.DrawData.IsDrawFirst;if(IFrameSplitOperator.IsBool(varItem.Draw.EnalbeDetailOnVerlap))chart.EnalbeDetailOnVerlap=varItem.Draw.EnalbeDetailOnVerlap;if(varItem.Draw.BuildKeyCallback)chart.BuildKeyCallback=varItem.Draw.BuildKeyCallback;chart.Family=varItem.Draw.DrawData.Family;chart.TextFont=varItem.Draw.DrawData.TextFont;chart.Texts=varItem.Draw.DrawData.Data;chart.BuildCacheData();this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);};this.CreateMulitHtmlDom=function(hqChart,windowIndex,varItem,i){var chart=new ChartMultiHtmlDom();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
12292
12123
|
chart.Texts=varItem.Draw.DrawData;chart.DrawCallback=varItem.Draw.Callback;hqChart.ChartPaint.push(chart);};this.CreateStackedBar=function(hqChart,windowIndex,varItem,i){var chart=new ChartStackedBar();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Identify=this.Guid;chart.Data.Data=varItem.Draw.DrawData;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;hqChart.ChartPaint.push(chart);var titleIndex=windowIndex+1;var titleData=new DynamicTitleData(chart.Data,chart.BarName,chart.BarColor);titleData.DataType="ChartStackedBar";hqChart.TitlePaint[titleIndex].Data[i]=titleData;};this.CreateKLineTable=function(hqChart,windowIndex,varItem,i){var chart=new ChartKLineTable();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Identify=this.Guid;chart.Data=hqChart.GetKData();//绑定K线
|
|
12293
|
-
chart.AryTableData=varItem.Draw.DrawData;if(IFrameSplitOperator.IsNumber(varItem.Draw.RowCount))chart.RowCount=varItem.Draw.RowCount;if(IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.RowName))chart.RowName=varItem.Draw.RowName;var config=varItem.Draw.Config;if(config){if(config.BGColor)chart.BGColor=config.BGColor;if(config.TextColor)chart.TextColor=config.TextColor;if(config.BorderColor)chart.BorderColor=config.BorderColor;if(IFrameSplitOperator.IsNumber(config.RowNamePosition))chart.RowNamePosition=config.RowNamePosition;if(config.ItemMergin){var subItem=config.ItemMergin;if(IFrameSplitOperator.IsNumber(subItem.Left))chart.ItemMergin.Left=subItem.Left;if(IFrameSplitOperator.IsNumber(subItem.Top))chart.ItemMergin.Top=subItem.Top;if(IFrameSplitOperator.IsNumber(subItem.Bottom))chart.ItemMergin.Bottom=subItem.Bottom;if(IFrameSplitOperator.IsNumber(subItem.Right))chart.ItemMergin.Right=subItem.Right;if(IFrameSplitOperator.IsNumber(subItem.YOffset))chart.ItemMergin.YOffset=subItem.YOffset;}if(config.TextFont){var subItem=config.TextFont;if(IFrameSplitOperator.IsNumber(subItem.FontMaxSize))chart.TextFontConfig.FontMaxSize=subItem.FontMaxSize;if(subItem.Family)chart.TextFontConfig.Family=subItem.Family;}}chart.BuildCacheData();hqChart.ChartPaint.push(chart);var titleIndex=windowIndex+1;var titleData=new DynamicTitleData(chart.Data,chart.BarName,chart.BarColor);titleData.DataType="ChartKLineTable";hqChart.TitlePaint[titleIndex].Data[i]=titleData;};this.CreateScatterPlot=function(hqChart,windowIndex,varItem,i){var chart=new ChartScatterPlot();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Identify=this.Guid;chart.Data.Data=varItem.Draw.DrawData;chart.Color=varItem.Draw.Color;chart.Radius=varItem.Draw.Radius;hqChart.ChartPaint.push(chart);};this.CreateScatterPlotV2=function(hqChart,windowIndex,varItem,i){var chart=new ChartScatterPlotV2();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Identify=this.Guid;chart.Data=hqChart.GetKData();//绑定K线
|
|
12124
|
+
chart.AryTableData=varItem.Draw.DrawData;if(IFrameSplitOperator.IsNumber(varItem.Draw.RowCount))chart.RowCount=varItem.Draw.RowCount;if(IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.RowName))chart.RowName=varItem.Draw.RowName;var config=varItem.Draw.Config;if(config){if(config.BGColor)chart.BGColor=config.BGColor;if(config.TextColor)chart.TextColor=config.TextColor;if(config.BorderColor)chart.BorderColor=config.BorderColor;if(IFrameSplitOperator.IsNumber(config.RowNamePosition))chart.RowNamePosition=config.RowNamePosition;if(IFrameSplitOperator.IsNumber(config.RowHeightType))chart.RowHeightType=config.RowHeightType;if(config.ItemMergin){var subItem=config.ItemMergin;if(IFrameSplitOperator.IsNumber(subItem.Left))chart.ItemMergin.Left=subItem.Left;if(IFrameSplitOperator.IsNumber(subItem.Top))chart.ItemMergin.Top=subItem.Top;if(IFrameSplitOperator.IsNumber(subItem.Bottom))chart.ItemMergin.Bottom=subItem.Bottom;if(IFrameSplitOperator.IsNumber(subItem.Right))chart.ItemMergin.Right=subItem.Right;if(IFrameSplitOperator.IsNumber(subItem.YOffset))chart.ItemMergin.YOffset=subItem.YOffset;}if(config.TextFont){var subItem=config.TextFont;if(IFrameSplitOperator.IsNumber(subItem.FontMaxSize))chart.TextFontConfig.FontMaxSize=subItem.FontMaxSize;if(subItem.Family)chart.TextFontConfig.Family=subItem.Family;}}chart.BuildCacheData();hqChart.ChartPaint.push(chart);var titleIndex=windowIndex+1;var titleData=new DynamicTitleData(chart.Data,chart.BarName,chart.BarColor);titleData.DataType="ChartKLineTable";hqChart.TitlePaint[titleIndex].Data[i]=titleData;};this.CreateScatterPlot=function(hqChart,windowIndex,varItem,i){var chart=new ChartScatterPlot();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Identify=this.Guid;chart.Data.Data=varItem.Draw.DrawData;chart.Color=varItem.Draw.Color;chart.Radius=varItem.Draw.Radius;hqChart.ChartPaint.push(chart);};this.CreateScatterPlotV2=function(hqChart,windowIndex,varItem,i){var chart=new ChartScatterPlotV2();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Identify=this.Guid;chart.Data=hqChart.GetKData();//绑定K线
|
|
12294
12125
|
chart.AryPoint=varItem.Draw.DrawData;var config=varItem.Draw.Config;if(config){if(config.Color)chart.Color=config.Color;if(IFrameSplitOperator.IsNumber(config.Radius))chart.Radius=config.Radius;if(config.TextColor)chart.TextColor=config.TextColor;if(config.Font)chart.Font=config.Font;}chart.BuildCacheData();hqChart.ChartPaint.push(chart);};this.CreateClipColorStick=function(hqChart,windowIndex,varItem,id){var chart=new ChartClipColorStick();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Identify=this.Guid;chart.Data.Data=varItem.Draw.DrawData;if(varItem.Option&&chart.SetOption)chart.SetOption(varItem.Option);hqChart.ChartPaint.push(chart);var titleIndex=windowIndex+1;if(varItem.IsShowTitle===false){}else{var clrTitle=this.GetDefaultColor(id);if(varItem.Option&&varItem.Option.TitleColor)clrTitle=this.GetColor(varItem.Option.TitleColor);hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(chart.Data,varItem.Name,clrTitle);}};this.CreateColorKLine=function(hqChart,windowIndex,varItem,i){var chart=new ChartColorKline();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
12295
12126
|
chart.KLineColor=varItem.Draw.DrawData.KLine;if(varItem.Color)chart.Color=varItem.Color;hqChart.ChartPaint.push(chart);};this.CreateRectangle=function(hqChart,windowIndex,varItem,i){var chart=new ChartRectangle();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Color=[varItem.Draw.DrawData.Color];chart.Rect=varItem.Draw.DrawData.Rect;if(varItem.Color)chart.BorderColor=this.GetColor(varItem.Color);hqChart.ChartPaint.push(chart);};this.CreateScriptOverlayLine=function(hqChart,windowIndex,varItem,i){var chart=new ChartOverlayLine();chart.Canvas=hqChart.Canvas;chart.DrawType=1;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(i);if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)chart.LineWidth=width;}if(varItem.IsDotLine)chart.IsDotLine=true;//虚线
|
|
12296
12127
|
if(varItem.IsShow==false)chart.IsShow=false;var titleIndex=windowIndex+1;chart.Data.Data=varItem.Draw.DrawData.Data;chart.MainData.Data=varItem.Draw.DrawData.MainData;if(varItem.Draw.DrawData.Title)hqChart.TitlePaint[titleIndex].Data[i]=new DynamicTitleData(chart.Data,varItem.Draw.DrawData.Title,chart.Color);hqChart.ChartPaint.push(chart);};//创建K线
|
|
@@ -12413,7 +12244,7 @@ chart.Lines=varItem.Draw.DrawData;if(varItem.Draw.LineDash)chart.LineDash=varIte
|
|
|
12413
12244
|
chart.PointGroup=varItem.Draw.DrawData;chart.BuildCacheData();var titleIndex=windowIndex+1;var bShowTitle=true;if(varItem.IsShowTitle===false)bShowTitle=false;if(bShowTitle){var titlePaint=hqChart.TitlePaint[titleIndex];var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);titleData.DataType="ChartMultiPoint";titleData.GetItemCallback=function(kItem){return chart.GetItem(kItem);};titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;}this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateBackgroud=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartBackground();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.Draw&&varItem.Draw.DrawData){var drawData=varItem.Draw.DrawData;chart.Color=drawData.Color;chart.ColorAngle=drawData.Angle;if(drawData.Data)chart.Data.Data=drawData.Data;}frame.ChartPaint.push(chart);};this.CreateMultiBar=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartMultiBar();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.Data=hqChart.GetKData();//绑定K线
|
|
12414
12245
|
chart.Bars=varItem.Draw.DrawData;chart.BuildCacheData();var titleIndex=windowIndex+1;var bShowTitle=true;if(varItem.IsShowTitle===false)bShowTitle=false;if(bShowTitle){var titlePaint=hqChart.TitlePaint[titleIndex];var titleData=new DynamicTitleData(chart.Data,varItem.Name,null);titleData.DataType="ChartMultiBar";titleData.GetItemCallback=function(kItem){return chart.GetItem(kItem);};titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;}this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateMultiText=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartMultiText();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.Data=hqChart.GetKData();//绑定K线
|
|
12415
12246
|
chart.Texts=varItem.Draw.DrawData;chart.BuildCacheData();this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateMultiSVGIcon=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartMultiSVGIconV2();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.Data=hqChart.GetKData();//绑定K线
|
|
12416
|
-
chart.Family=varItem.Draw.DrawData.Family;chart.AryIcon=varItem.Draw.DrawData.Icon;chart.BuildCacheData();this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateChartDrawSVG=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartDrawSVG();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.Data=hqChart.GetKData();if(IFrameSplitOperator.IsBool(varItem.Draw.DrawData.EnableTooltip))chart.EnableTooltip=varItem.Draw.DrawData.EnableTooltip;if(IFrameSplitOperator.IsBool(varItem.Draw.DrawData.IsDrawFirst))chart.IsDrawFirst=varItem.Draw.DrawData.IsDrawFirst;if(varItem.Draw.BuildKeyCallback)chart.BuildKeyCallback=varItem.Draw.BuildKeyCallback;chart.Family=varItem.Draw.DrawData.Family;chart.TextFont=varItem.Draw.DrawData.TextFont;chart.Texts=varItem.Draw.DrawData.Data;if(varItem.Draw.AutoPosition)chart.AutoPosition=varItem.Draw.AutoPosition;this.ReloadChartResource(hqChart,windowIndex,chart);chart.BuildCacheData();this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateMulitHtmlDom=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartMultiHtmlDom();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.HQChart=hqChart;chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
12247
|
+
chart.Family=varItem.Draw.DrawData.Family;chart.AryIcon=varItem.Draw.DrawData.Icon;chart.BuildCacheData();this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateChartDrawSVG=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartDrawSVG();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.Data=hqChart.GetKData();if(IFrameSplitOperator.IsBool(varItem.Draw.DrawData.EnableTooltip))chart.EnableTooltip=varItem.Draw.DrawData.EnableTooltip;if(IFrameSplitOperator.IsBool(varItem.Draw.DrawData.IsDrawFirst))chart.IsDrawFirst=varItem.Draw.DrawData.IsDrawFirst;if(varItem.Draw.BuildKeyCallback)chart.BuildKeyCallback=varItem.Draw.BuildKeyCallback;chart.Family=varItem.Draw.DrawData.Family;chart.TextFont=varItem.Draw.DrawData.TextFont;chart.Texts=varItem.Draw.DrawData.Data;if(varItem.Draw.AutoPosition)chart.AutoPosition=varItem.Draw.AutoPosition;if(IFrameSplitOperator.IsBool(varItem.Draw.EnalbeDetailOnVerlap))chart.EnalbeDetailOnVerlap=varItem.Draw.EnalbeDetailOnVerlap;this.ReloadChartResource(hqChart,windowIndex,chart);chart.BuildCacheData();this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateMulitHtmlDom=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartMultiHtmlDom();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.HQChart=hqChart;chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
|
|
12417
12248
|
chart.Texts=varItem.Draw.DrawData;chart.DrawCallback=varItem.Draw.Callback;frame.ChartPaint.push(chart);};this.CreateSimpleTable=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartSimpleTable();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.HQChart=hqChart;if(varItem.Draw&&varItem.Draw.DrawData){var drawData=varItem.Draw.DrawData;if(drawData.TableData)chart.Data.Data=drawData.TableData;if(drawData.BGColor)chart.BGColor=drawData.BGColor;if(drawData.BorderColor)chart.BorderColor=drawData.BorderColor;if(drawData.TextFont)chart.TextFontConfig=drawData.TextFont;if(drawData.TextColor)chart.TextColor=drawData.TextColor;if(IFrameSplitOperator.IsNumber(drawData.XOffset))chart.Offset.X=drawData.XOffset;if(IFrameSplitOperator.IsNumber(drawData.YOffset))chart.Offset.Y=drawData.YOffset;}frame.ChartPaint.push(chart);};this.CreateSimplePie=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartSimplePie();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.HQChart=hqChart;if(varItem.Draw&&varItem.Draw.DrawData){var drawData=varItem.Draw.DrawData;if(drawData.Data)chart.Data.Data=drawData.Data;if(drawData.BorderColor)chart.BorderColor=drawData.BorderColor;if(drawData.TextFont)chart.TextFontConfig=drawData.TextFont;if(drawData.TextColor)chart.TextColor=drawData.TextColor;if(IFrameSplitOperator.IsNumber(drawData.XOffset))chart.Offset.X=drawData.XOffset;if(IFrameSplitOperator.IsNumber(drawData.YOffset))chart.Offset.Y=drawData.YOffset;if(IFrameSplitOperator.IsPlusNumber(drawData.Radius))chart.Radius=drawData.Radius;}frame.ChartPaint.push(chart);};this.CreateSimpleDoughnut=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartSimpleDoughnut();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.HQChart=hqChart;if(varItem.Draw&&varItem.Draw.DrawData){var drawData=varItem.Draw.DrawData;if(drawData.Data)chart.Data.Data=drawData.Data;if(drawData.BorderColor)chart.BorderColor=drawData.BorderColor;if(drawData.TextFont)chart.TextFontConfig=drawData.TextFont;if(drawData.TextColor)chart.TextColor=drawData.TextColor;if(IFrameSplitOperator.IsNumber(drawData.XOffset))chart.Offset.X=drawData.XOffset;if(IFrameSplitOperator.IsNumber(drawData.YOffset))chart.Offset.Y=drawData.YOffset;if(IFrameSplitOperator.IsPlusNumber(drawData.Radius))chart.Radius=drawData.Radius;if(IFrameSplitOperator.IsPlusNumber(drawData.InnerRadius))chart.InnerRadius=drawData.InnerRadius;}frame.ChartPaint.push(chart);};this.CreateSimpleRadar=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartSimpleRadar();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.HQChart=hqChart;if(varItem.Draw&&varItem.Draw.DrawData){var drawData=varItem.Draw.DrawData;if(drawData.Data)chart.Data.Data=drawData.Data;if(drawData.AryIndex)chart.AryIndex=drawData.AryIndex;if(IFrameSplitOperator.IsPlusNumber(drawData.Radius))chart.Radius=drawData.Radius;if(drawData.BorderColor)chart.BorderColor=drawData.BorderColor;if(drawData.TextFont)chart.TextFontConfig=drawData.TextFont;if(drawData.TextColor)chart.TextColor=drawData.TextColor;if(drawData.BorderColor)chart.BorderColor=drawData.BorderColor;if(IFrameSplitOperator.IsNumber(drawData.XOffset))chart.Offset.X=drawData.XOffset;if(IFrameSplitOperator.IsNumber(drawData.YOffset))chart.Offset.Y=drawData.YOffset;if(IFrameSplitOperator.IsNonEmptyArray(drawData.AryArea))chart.AryAreaConfig=drawData.AryArea;chart.BuildCacheData();}frame.ChartPaint.push(chart);};this.CreateChartVericaltLine=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartVericaltLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.HQChart=hqChart;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)chart.LineWidth=width;}this.SetChartLineDash(chart,varItem.Draw.DrawData);chart.Data.Data=varItem.Draw.DrawData.Data;frame.ChartPaint.push(chart);};this.CreateChartHorizontalLine=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartHorizontalLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.HQChart=hqChart;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)chart.LineWidth=width;}this.SetChartLineDash(chart,varItem.Draw.DrawData);chart.ExtendType=varItem.Draw.DrawData.Extend;chart.Data.Data=varItem.Draw.DrawData.Data;frame.ChartPaint.push(chart);};//创建K线
|
|
12418
12249
|
this.CreateSelfKLine=function(hqChart,windowIndex,hisData){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartKLine();chart.Canvas=hqChart.Canvas;chart.Name="Self Kline";chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.Data=hisData;chart.IsShowMaxMinPrice=false;chart.IsShowKTooltip=false;chart.DrawType=this.KLineType;frame.ChartPaint.push(chart);};//给一个默认的颜色
|
|
12419
12250
|
this.GetDefaultColor=function(id){var COLOR_ARRAY=["rgb(24,71,178)","rgb(42,230,215)","rgb(252,96,154)","rgb(0,128,255)","rgb(229,0,79)","rgb(68,114,196)","rgb(255,174,0)","rgb(25,199,255)","rgb(175,95,162)","rgb(236,105,65)"];var number=parseInt(id);return COLOR_ARRAY[number%(COLOR_ARRAY.length-1)];};}//后台执行指标
|
|
@@ -12474,7 +12305,7 @@ if(item.isexdata==true)outVarItem.IsExData=true;if(item.BreakPoint)outVarItem.Br
|
|
|
12474
12305
|
{drawItem.Icon=draw.Icon;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='DRAWTEXT')//文本
|
|
12475
12306
|
{drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='STICKLINE')//柱子
|
|
12476
12307
|
{drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.Width=draw.Width;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart,1);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=="DRAWBAND"){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart,1);drawItem.Color=draw.Color;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='MULTI_LINE'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMultiLine(draw.DrawData,date,time,hqChart);if(IFrameSplitOperator.IsNonEmptyArray(drawItem.DrawData)){for(var k=0;k<drawItem.DrawData.length;++k){this.GetKLineData(drawItem.DrawData[k].Point,hqChart);}}outVarItem.Draw=drawItem;if(draw.LineDash)drawItem.LineDash=draw.LineDash;if(IFrameSplitOperator.IsBool(draw.IsFullRangeMaxMin))drawItem.IsFullRangeMaxMin=draw.IsFullRangeMaxMin;if(draw.Arrow)drawItem.Arrow=draw.Arrow;if(IFrameSplitOperator.IsNumber(draw.LineWidth))drawItem.LineWidth=draw.LineWidth;result.push(outVarItem);}else if(draw.DrawType=='MULTI_POINT'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='MULTI_BAR'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType==SCRIPT_CHART_NAME.OVERLAY_BARS){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.BarName=draw.BarName;drawItem.BarColor=draw.BarColor;drawItem.LineWidth=draw.LineWidth;drawItem.BarType=draw.BarType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart,1);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType==SCRIPT_CHART_NAME.SCATTER_PLOT){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart,1);//默认的值
|
|
12477
|
-
drawItem.Color=draw.Color;drawItem.Radius=draw.Radius;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType==SCRIPT_CHART_NAME.SCATTER_PLOT_V2){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;drawItem.Config=draw.Config;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType==SCRIPT_CHART_NAME.KLINE_TABLE){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;drawItem.RowCount=draw.RowCount;drawItem.RowName=draw.RowName;drawItem.Config=draw.Config;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='MULTI_TEXT'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='MULTI_SVGICON'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData={Icon:draw.DrawData.Icon,Family:draw.DrawData.Family};outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='DRAWSVG'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;if(draw.AutoPosition)drawItem.AutoPosition=draw.AutoPosition;if(draw.BuildKeyCallback)drawItem.BuildKeyCallback=draw.BuildKeyCallback;drawItem.DrawData={Data:draw.Data,Family:draw.Family,TextFont:draw.TextFont,EnableTooltip:draw.EnableTooltip,IsDrawFirst:draw.IsDrawFirst};outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=="MULTI_HTMLDOM")//外部自己创建dom
|
|
12308
|
+
drawItem.Color=draw.Color;drawItem.Radius=draw.Radius;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType==SCRIPT_CHART_NAME.SCATTER_PLOT_V2){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;drawItem.Config=draw.Config;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType==SCRIPT_CHART_NAME.KLINE_TABLE){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;drawItem.RowCount=draw.RowCount;drawItem.RowName=draw.RowName;drawItem.Config=draw.Config;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='MULTI_TEXT'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='MULTI_SVGICON'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData={Icon:draw.DrawData.Icon,Family:draw.DrawData.Family};outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='DRAWSVG'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;if(draw.AutoPosition)drawItem.AutoPosition=draw.AutoPosition;drawItem.EnalbeDetailOnVerlap=draw.EnalbeDetailOnVerlap;if(draw.BuildKeyCallback)drawItem.BuildKeyCallback=draw.BuildKeyCallback;drawItem.DrawData={Data:draw.Data,Family:draw.Family,TextFont:draw.TextFont,EnableTooltip:draw.EnableTooltip,IsDrawFirst:draw.IsDrawFirst};outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=="MULTI_HTMLDOM")//外部自己创建dom
|
|
12478
12309
|
{drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.Callback=draw.Callback;drawItem.DrawData=this.FittingMultiText(draw.DrawData,date,time,hqChart);this.GetKLineData(drawItem.DrawData,hqChart);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=="COLOR_KLINE"){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;var klineOption=this.FittingMultiText(draw.DrawData.KLine,date,time,hqChart);var mapKLineOption=new _map2.default();for(var i in klineOption){var item=klineOption[i];mapKLineOption.set(item.Index,item);}drawItem.DrawData={KLine:mapKLineOption};if(draw.Color)outVarItem.Color=draw.Color;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=="KLINE_BG"){drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData={};drawItem.DrawData.Color=draw.Color;drawItem.DrawData.Angle=draw.Angle;if(draw.Ver==2.0)drawItem.DrawData.Data=this.FittingKLineBG_V2(draw.DrawData,hqChart);else drawItem.DrawData.Data=this.FittingKLineBG(draw.DrawData,hqChart);outVarItem.Draw=drawItem;outVarItem.Name=draw.DrawType;result.push(outVarItem);}else if(draw.DrawType=='MULTI_POINT_LINE'){drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData={};drawItem.DrawData.Color=draw.Color;drawItem.DrawData.PointRadius=draw.PointRadius;drawItem.DrawData.PointColor=draw.PointColor;drawItem.DrawData.LineWidth=draw.LineWidth;drawItem.DrawData.Data=this.FittingMultiPointLine(draw.DrawData,hqChart);outVarItem.Draw=drawItem;//outVarItem.Name=draw.DrawType;
|
|
12479
12310
|
result.push(outVarItem);}else if(draw.DrawType=="PARTLINE"){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart,1);outVarItem.Draw=drawItem;if(IFrameSplitOperator.IsString(draw.LineWidth))outVarItem.LineWidth=draw.LineWidth;if(IFrameSplitOperator.IsBool(draw.IsDotLine))outVarItem.IsDotLine=draw.IsDotLine;if(IFrameSplitOperator.IsNonEmptyArray(draw.LineDash))outVarItem.LineDash=draw.LineDash;result.push(outVarItem);}else if(draw.DrawType==SCRIPT_CHART_NAME.CLIP_COLOR_STICK){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingArray(draw.Data,date,time,hqChart);outVarItem.Draw=drawItem;if(draw.LineWidth)outVarItem.LineWidth=draw.LineWidth;if(draw.UpColor)outVarItem.UpColor=draw.UpColor;if(draw.DownColor)outVarItem.DownColor=draw.DownColor;result.push(outVarItem);}else if(draw.DrawType=="DRAWCOLORKLINE"){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart,1);outVarItem.Draw=drawItem;if(draw.Color)drawItem.Color=draw.Color;if(IFrameSplitOperator.IsBool(draw.IsEmptyBar))drawItem.IsEmptyBar=draw.IsEmptyBar;result.push(outVarItem);}else if(draw.DrawType=="DRAWTEXTREL"||draw.DrawType=="DRAWTEXTABS"){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;//{ Point: { X: 5,Y: 5 }, Text: "注意(居中):前方高能!!!!!" }
|
|
12480
12311
|
outVarItem.Draw=drawItem;if(draw.Font)outVarItem.Font=draw.Font;result.push(outVarItem);}else if(draw.DrawType=="DRAWTEXT_LINE"){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;//{ Price:, Text:{ Title:text, Color:textcolor }, Line:{ Type:linetype, Color:linecolor } };
|
|
@@ -14702,7 +14533,8 @@ this.Update=function(data){if(!this.DivDialog)return;this.LanguageID=this.HQChar
|
|
|
14702
14533
|
{this.UpdatChartOXTooltip(data);}else if(tooltipData.Type==6)//散点图
|
|
14703
14534
|
{this.UpdatChartScatterPlotTooltip(data);}else if(tooltipData.Type==7)//ChartDrawSVG 老版本 单行
|
|
14704
14535
|
{this.UpdateChartDrawSVGTooltip(data);}else if(tooltipData.Type==8)//ChartDrawSVG 新版本
|
|
14705
|
-
{this.UpdateChartDrawSVGV2Tooltip(data);}
|
|
14536
|
+
{this.UpdateChartDrawSVGV2Tooltip(data);}else if(tooltipData.Type==9)//ChartKLineTable
|
|
14537
|
+
{this.UpdateChartKLineTableTooltip(data);}}else if(data.DataType==2)//更新实时行情数据
|
|
14706
14538
|
{this.UpdateRealtimeHQTooltip(data);}else if(data.DataType==3)//报价列表
|
|
14707
14539
|
{var tooltipData=data.Tooltip;if(!tooltipData)return;if(tooltipData.Type==2)//报价列表表头图标提示信息
|
|
14708
14540
|
{this.ReportHeaderIconTooltip(data);}else if(tooltipData.Type==1)//单元格截断内容
|
|
@@ -14713,7 +14545,7 @@ this.UpdateKLineToolitp=function(data){var tooltipData=data.Tooltip;var symbol=d
|
|
|
14713
14545
|
var bIndexKLine=false;if(tooltipData.ChartPaint.Name=="Overlay-KLine"){symbol=tooltipData.ChartPaint.Symbol;name=tooltipData.ChartPaint.Title;bOverlay=true;}else if(tooltipData.ChartPaint.Name=="DRAWKLINE"){symbol=tooltipData.ChartPaint.Symbol;name=tooltipData.ChartPaint.Title;bIndexKLine=true;}var kItem={Symbol:symbol,Name:name,Item:CloneData(tooltipData.Data),IsOverlay:bOverlay,IsIndexKLine:bIndexKLine};var strKItem=(0,_stringify2.default)(kItem);var bUpdata=false;if(this.KItemCacheID!=strKItem)//数据变动的才更新
|
|
14714
14546
|
{this.KItemCache=kItem;this.KItemCacheID=strKItem;this.AryText=this.GetFormatKLineTooltipText(this.KItemCache);bUpdata=true;}if(bUpdata){this.UpdateTableDOM();}this.ShowTooltip(data);};//ChartDrawSVG 老版本 单行
|
|
14715
14547
|
this.UpdateChartDrawSVGTooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!tooltipData.Data.Item||!tooltipData.Data.Item.Tooltip)return;var item=tooltipData.Data.Item.Tooltip;var aryText=[];var rowItem={Text:"",HTMLTitle:item.Text,Color:this.ValueColor,IsMergeCell:true};aryText.push(rowItem);this.AryText=aryText;this.UpdateTableDOM();this.ShowTooltip(data);};//ChartDrawSVG 新版本
|
|
14716
|
-
this.UpdateChartDrawSVGV2Tooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!tooltipData.Data.Item||!tooltipData.Data.Item.Tooltip)return;var aryData=tooltipData.Data.Item.Tooltip.AryText;if(!IFrameSplitOperator.IsNonEmptyArray(aryData))return;var aryText=[];for(var i=0;i<aryData.length;++i){var item=aryData[i];var rowItem={Title:"",Text:"",Color:this.ValueColor,ClassName:this.ValueAlign.MarginLeft};if(item.TextColor)rowItem.Color=item.TextColor;if(item.Title)rowItem.Title=item.Title;if(item.Text)rowItem.Text=item.Text;aryText.push(rowItem);}this.AryText=aryText;this.UpdateTableDOM();this.ShowTooltip(data);};//交易指标
|
|
14548
|
+
this.UpdateChartDrawSVGV2Tooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!tooltipData.Data.Item||!tooltipData.Data.Item.Tooltip)return;var aryData=tooltipData.Data.Item.Tooltip.AryText;if(!IFrameSplitOperator.IsNonEmptyArray(aryData))return;var aryText=[];for(var i=0;i<aryData.length;++i){var item=aryData[i];var rowItem={Title:"",Text:"",Color:this.ValueColor,ClassName:this.ValueAlign.MarginLeft};if(item.TextColor)rowItem.Color=item.TextColor;if(item.Title)rowItem.Title=item.Title;if(item.Text)rowItem.Text=item.Text;aryText.push(rowItem);}this.AryText=aryText;this.UpdateTableDOM();this.ShowTooltip(data);};this.UpdateChartKLineTableTooltip=function(data){this.UpdateChartDrawSVGV2Tooltip(data);};//交易指标
|
|
14717
14549
|
this.UpdateTradeIndexTooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!tooltipData.Data.Data)return;var item=tooltipData.Data.Data;var kItem=item.KData;var aryText=[];var rowItem={Title:"日期",Text:IFrameSplitOperator.FormatDateString(kItem.Date,"YYYY-MM-DD"),Color:this.ValueColor};aryText.push(rowItem);if(IFrameSplitOperator.IsNumber(kItem.Time)){var format="HH:MM";var rowItem={Title:"时间",Text:IFrameSplitOperator.FormatTimeString(kItem.Time,format),Color:this.ValueColor};aryText.push(rowItem);}var rowItem={Title:"指标名称:",Text:''+item.Name+item.Param,Color:this.ValueColor};aryText.push(rowItem);var rowItem={Title:"买卖方向:",Text:''+(item.Type==1?"买入":"卖出"),Color:item.Type==1?this.UpColor:this.DownColor};aryText.push(rowItem);var rowItem={};this.AryText=aryText;this.UpdateTableDOM();this.ShowTooltip(data);};//分时图异动信息
|
|
14718
14550
|
this.UpdateMinuteInfoTooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!tooltipData.Data.Data||!tooltipData.Data.Data.Item)return;var item=tooltipData.Data.Data.Item;var aryText=[];var rowItem={Title:"日期",Text:IFrameSplitOperator.FormatDateString(item.Date,"YYYY-MM-DD"),Color:this.ValueColor};aryText.push(rowItem);var format="HH:MM";var rowItem={Title:"时间",Text:IFrameSplitOperator.FormatTimeString(item.Time,format),Color:this.ValueColor};aryText.push(rowItem);var rowItem={Title:"异动",Text:item.Title,Color:this.ValueColor};aryText.push(rowItem);this.AryText=aryText;this.UpdateTableDOM();this.ShowTooltip(data);};//ChartMultiSVGIconV2 图标信息
|
|
14719
14551
|
this.UpdatMultiSVGIconV2Tooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!tooltipData.Data.Item)return;var item=tooltipData.Data.Item;var aryText=[];if(item&&IFrameSplitOperator.IsObject(item.Text)){var tooltipData=item.Text;if(IFrameSplitOperator.IsNonEmptyArray(tooltipData.AryText)){for(var i=0;i<tooltipData.AryText.length;++i){var tooltipItem=tooltipData.AryText[i];var textItem={Title:tooltipItem.Title,Text:tooltipItem.Text,Color:this.ValueColor};if(tooltipItem.Color)textItem.Color=tooltipItem.Color;if(tooltipItem.Align=="Left")tooltipItem.ClassName=this.ValueAlign.Left;aryText.push(tooltipItem);}}}else{var rowItem={Text:"",HTMLTitle:item.Text,Color:this.ValueColor,IsMergeCell:true};aryText.push(rowItem);}this.AryText=aryText;this.UpdateTableDOM();this.ShowTooltip(data);};//ChartOX 信息
|
|
@@ -14885,7 +14717,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
|
|
|
14885
14717
|
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);};}/********************************************************************************
|
|
14886
14718
|
* 版本信息输出
|
|
14887
14719
|
*
|
|
14888
|
-
*/var HQCHART_VERSION="1.1.
|
|
14720
|
+
*/var HQCHART_VERSION="1.1.14638";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();//把给外界调用的方法暴露出来
|
|
14889
14721
|
exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
|
|
14890
14722
|
// BaseIndex:BaseIndex,
|
|
14891
14723
|
// ChartLine:ChartLine,
|
package/package.json
CHANGED
|
@@ -1182,6 +1182,10 @@ function JSFloatTooltip()
|
|
|
1182
1182
|
{
|
|
1183
1183
|
this.UpdateChartDrawSVGV2Tooltip(data);
|
|
1184
1184
|
}
|
|
1185
|
+
else if (tooltipData.Type==9) //ChartKLineTable
|
|
1186
|
+
{
|
|
1187
|
+
this.UpdateChartKLineTableTooltip(data);
|
|
1188
|
+
}
|
|
1185
1189
|
|
|
1186
1190
|
}
|
|
1187
1191
|
else if (data.DataType==2) //更新实时行情数据
|
|
@@ -1327,6 +1331,12 @@ function JSFloatTooltip()
|
|
|
1327
1331
|
|
|
1328
1332
|
this.ShowTooltip(data);
|
|
1329
1333
|
}
|
|
1334
|
+
|
|
1335
|
+
|
|
1336
|
+
this.UpdateChartKLineTableTooltip=function(data)
|
|
1337
|
+
{
|
|
1338
|
+
this.UpdateChartDrawSVGV2Tooltip(data);
|
|
1339
|
+
}
|
|
1330
1340
|
|
|
1331
1341
|
//交易指标
|
|
1332
1342
|
this.UpdateTradeIndexTooltip=function(data)
|