hqchart 1.1.14628 → 1.1.14630
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 +16 -6
- package/package.json +1 -1
- package/src/jscommon/umychart.complier.js +31 -8
- package/src/jscommon/umychart.js +206 -52
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +238 -61
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +238 -61
package/lib/umychart.vue.js
CHANGED
|
@@ -4061,11 +4061,20 @@ if(firstOpen==null)return;var drawType=this.DrawType;if(this.CustomDrawType!=nul
|
|
|
4061
4061
|
}return this.PtInKBar(x,y,{OverlayKLine:true});};this.DrawSelectedStatus=function(){this.DrawLinePoint({OverlayKLine:true});};}//K线表格
|
|
4062
4062
|
function ChartKLineTable(){this.newMethod=IChartPainting;//派生
|
|
4063
4063
|
this.newMethod();delete this.newMethod;this.ClassName='ChartKlineTable';//类名
|
|
4064
|
-
this.Data;this.RowName;this.
|
|
4064
|
+
this.Data;this.RowName;this.RowNamePosition=1;//0=不显示 1=左边内部 2=左边外部 3=右边外部
|
|
4065
|
+
this.BGColor;//背景色
|
|
4066
|
+
this.BorderColor;//分割线颜色
|
|
4065
4067
|
this.RowCount=5;//行数
|
|
4066
4068
|
this.RowHeight=10;//行高
|
|
4067
|
-
this.
|
|
4068
|
-
|
|
4069
|
+
this.RowHeightType=1;//0=均分 1=固定高度
|
|
4070
|
+
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.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
|
+
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;//绘制背景
|
|
4074
|
+
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
|
+
}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.TopTitle,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(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){var item=data.Data[i];var rtBG={Left:x,Top:y,Right:right,Height:this.RowHeight,Width:width};rtBG.Bottom=rtBG.Top+this.RowHeight;if(IFrameSplitOperator.IsNonEmptyArray(item.AryText))//左右显示
|
|
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&&item.BGColor){this.Canvas.fillStyle=item.BGColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}if(item&&item.Color&&rtBG.Width>10){this.Canvas.fillStyle=item.Color;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);}}}y+=this.RowHeight;}};this.GetDynamicTextFont=function(cellHeight,width,fontOption){var fontSize=parseInt(cellHeight)-2;if(cellHeight<5)fontSize=parseInt(cellHeight);//高度太小了就不要上下间距了
|
|
4069
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};};}//表格
|
|
4070
4079
|
function ChartSimpleTable(){this.newMethod=IChartPainting;//派生
|
|
4071
4080
|
this.newMethod();delete this.newMethod;this.ClassName='ChartSimpleTable';//类名
|
|
@@ -12280,7 +12289,8 @@ chart.PointGroup=varItem.Draw.DrawData;if(varItem.Draw.Name)chart.Name=varItem.D
|
|
|
12280
12289
|
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线
|
|
12281
12290
|
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线
|
|
12282
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线
|
|
12283
|
-
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
|
|
12292
|
+
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线
|
|
12284
12294
|
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线
|
|
12285
12295
|
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;//虚线
|
|
12286
12296
|
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线
|
|
@@ -12464,7 +12474,7 @@ if(item.isexdata==true)outVarItem.IsExData=true;if(item.BreakPoint)outVarItem.Br
|
|
|
12464
12474
|
{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')//文本
|
|
12465
12475
|
{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')//柱子
|
|
12466
12476
|
{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);//默认的值
|
|
12467
|
-
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=
|
|
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
|
|
12468
12478
|
{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;
|
|
12469
12479
|
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: "注意(居中):前方高能!!!!!" }
|
|
12470
12480
|
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 } };
|
|
@@ -14875,7 +14885,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
|
|
|
14875
14885
|
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);};}/********************************************************************************
|
|
14876
14886
|
* 版本信息输出
|
|
14877
14887
|
*
|
|
14878
|
-
*/var HQCHART_VERSION="1.1.
|
|
14888
|
+
*/var HQCHART_VERSION="1.1.14629";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();//把给外界调用的方法暴露出来
|
|
14879
14889
|
exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
|
|
14880
14890
|
// BaseIndex:BaseIndex,
|
|
14881
14891
|
// ChartLine:ChartLine,
|
package/package.json
CHANGED
|
@@ -22231,16 +22231,41 @@ function ScriptIndex(name,script,args,option)
|
|
|
22231
22231
|
chart.HQChart=hqChart;
|
|
22232
22232
|
chart.Identify=this.Guid;
|
|
22233
22233
|
|
|
22234
|
-
chart.Data
|
|
22234
|
+
chart.Data=hqChart.GetKData(); //绑定K线
|
|
22235
|
+
chart.AryTableData=varItem.Draw.DrawData;
|
|
22235
22236
|
if (IFrameSplitOperator.IsNumber(varItem.Draw.RowCount)) chart.RowCount=varItem.Draw.RowCount;
|
|
22236
|
-
if (IFrameSplitOperator.IsBool(varItem.Draw.IsShowRowName)) chart.IsShowRowName=varItem.Draw.IsShowRowName;
|
|
22237
22237
|
if (IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.RowName)) chart.RowName=varItem.Draw.RowName;
|
|
22238
|
-
if (varItem.Draw.BGColor) chart.BGColor=varItem.Draw.BGColor;
|
|
22239
22238
|
|
|
22239
|
+
var config=varItem.Draw.Config;
|
|
22240
|
+
if (config)
|
|
22241
|
+
{
|
|
22242
|
+
if (config.BGColor) chart.BGColor=config.BGColor;
|
|
22243
|
+
if (config.TextColor) chart.TextColor=config.TextColor;
|
|
22244
|
+
if (config.BorderColor) chart.BorderColor=config.BorderColor;
|
|
22245
|
+
if (IFrameSplitOperator.IsNumber(config.RowNamePosition)) chart.RowNamePosition=config.RowNamePosition;
|
|
22246
|
+
|
|
22247
|
+
if (config.ItemMergin)
|
|
22248
|
+
{
|
|
22249
|
+
var subItem=config.ItemMergin;
|
|
22250
|
+
if (IFrameSplitOperator.IsNumber(subItem.Left)) chart.ItemMergin.Left=subItem.Left;
|
|
22251
|
+
if (IFrameSplitOperator.IsNumber(subItem.Top)) chart.ItemMergin.Top=subItem.Top;
|
|
22252
|
+
if (IFrameSplitOperator.IsNumber(subItem.Bottom)) chart.ItemMergin.Bottom=subItem.Bottom;
|
|
22253
|
+
if (IFrameSplitOperator.IsNumber(subItem.Right)) chart.ItemMergin.Right=subItem.Right;
|
|
22254
|
+
if (IFrameSplitOperator.IsNumber(subItem.YOffset)) chart.ItemMergin.YOffset=subItem.YOffset;
|
|
22255
|
+
}
|
|
22256
|
+
|
|
22257
|
+
if (config.TextFont)
|
|
22258
|
+
{
|
|
22259
|
+
var subItem=config.TextFont;
|
|
22260
|
+
if (IFrameSplitOperator.IsNumber(subItem.FontMaxSize)) chart.TextFontConfig.FontMaxSize=subItem.FontMaxSize;
|
|
22261
|
+
if (subItem.Family) chart.TextFontConfig.Family=subItem.Family;
|
|
22262
|
+
}
|
|
22263
|
+
}
|
|
22264
|
+
|
|
22265
|
+
chart.BuildCacheData();
|
|
22240
22266
|
hqChart.ChartPaint.push(chart);
|
|
22241
22267
|
|
|
22242
22268
|
var titleIndex=windowIndex+1;
|
|
22243
|
-
|
|
22244
22269
|
var titleData=new DynamicTitleData(chart.Data,chart.BarName,chart.BarColor);
|
|
22245
22270
|
titleData.DataType="ChartKLineTable";
|
|
22246
22271
|
hqChart.TitlePaint[titleIndex].Data[i]=titleData;
|
|
@@ -25232,13 +25257,11 @@ function APIScriptIndex(name,script,args,option, isOverlay)
|
|
|
25232
25257
|
drawItem.Name=draw.Name;
|
|
25233
25258
|
drawItem.Type=draw.Type;
|
|
25234
25259
|
drawItem.DrawType=draw.DrawType;
|
|
25235
|
-
drawItem.DrawData=
|
|
25260
|
+
drawItem.DrawData=draw.DrawData;
|
|
25236
25261
|
drawItem.RowCount=draw.RowCount;
|
|
25237
25262
|
drawItem.RowName=draw.RowName;
|
|
25238
|
-
drawItem.
|
|
25239
|
-
drawItem.BGColor=draw.BGColor;
|
|
25263
|
+
drawItem.Config=draw.Config;
|
|
25240
25264
|
outVarItem.Draw=drawItem;
|
|
25241
|
-
|
|
25242
25265
|
result.push(outVarItem);
|
|
25243
25266
|
}
|
|
25244
25267
|
else if (draw.DrawType=='MULTI_TEXT')
|
package/src/jscommon/umychart.js
CHANGED
|
@@ -32597,28 +32597,87 @@ function ChartKLineTable()
|
|
|
32597
32597
|
this.ClassName='ChartKlineTable'; //类名
|
|
32598
32598
|
this.Data;
|
|
32599
32599
|
this.RowName;
|
|
32600
|
-
this.
|
|
32600
|
+
this.RowNamePosition=1; //0=不显示 1=左边内部 2=左边外部 3=右边外部
|
|
32601
32601
|
this.BGColor; //背景色
|
|
32602
|
+
this.BorderColor; //分割线颜色
|
|
32602
32603
|
|
|
32603
32604
|
this.RowCount=5; //行数
|
|
32604
32605
|
this.RowHeight=10; //行高
|
|
32606
|
+
this.RowHeightType=1; //0=均分 1=固定高度
|
|
32605
32607
|
this.TextFontConfig=CloneData(g_JSChartResource.ChartKLineTable.TextFont);
|
|
32606
32608
|
this.ItemMergin=CloneData(g_JSChartResource.ChartKLineTable.ItemMergin);
|
|
32607
32609
|
|
|
32608
32610
|
this.TextFont;
|
|
32609
32611
|
this.TextColor='rgb(0,0,0)';
|
|
32610
|
-
this.NameColor="rgb(0,0,0)";
|
|
32611
32612
|
|
|
32612
|
-
this.
|
|
32613
|
+
this.AryTableData=[];
|
|
32614
|
+
this.MapCache=null; //key=date/date-time value={ Date:, Time:, Data:[ ] }
|
|
32615
|
+
this.GetKValue=ChartData.GetKValue;
|
|
32616
|
+
|
|
32617
|
+
this.BuildCacheData=function()
|
|
32613
32618
|
{
|
|
32614
|
-
|
|
32615
|
-
|
|
32619
|
+
var mapData=new Map();
|
|
32620
|
+
this.MapCache=mapData;
|
|
32621
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.AryTableData)) return;
|
|
32622
|
+
|
|
32623
|
+
for(var i=0;i<this.AryTableData.length;++i)
|
|
32616
32624
|
{
|
|
32617
|
-
this.
|
|
32618
|
-
|
|
32625
|
+
var item=this.AryTableData[i];
|
|
32626
|
+
var key=this.BuildKey(item);
|
|
32627
|
+
mapData.set(key,item);
|
|
32619
32628
|
}
|
|
32629
|
+
}
|
|
32620
32630
|
|
|
32621
|
-
|
|
32631
|
+
//绘制背景色
|
|
32632
|
+
this.DrawBG=function(rtBG)
|
|
32633
|
+
{
|
|
32634
|
+
if (!this.BGColor) return;
|
|
32635
|
+
|
|
32636
|
+
if (this.BGColor)
|
|
32637
|
+
{
|
|
32638
|
+
this.Canvas.fillStyle=this.BGColor;
|
|
32639
|
+
this.Canvas.fillRect(rtBG.Left+1, rtBG.Top, rtBG.Width-1, rtBG.Height);
|
|
32640
|
+
}
|
|
32641
|
+
}
|
|
32642
|
+
|
|
32643
|
+
this.DrawBorder=function(rtBG)
|
|
32644
|
+
{
|
|
32645
|
+
if (!this.BorderColor) return;
|
|
32646
|
+
|
|
32647
|
+
var yLine=rtBG.Top;
|
|
32648
|
+
for(var i=0;i<30;++i)
|
|
32649
|
+
{
|
|
32650
|
+
this.Canvas.beginPath();
|
|
32651
|
+
this.Canvas.moveTo(rtBG.Left,ToFixedPoint(yLine));
|
|
32652
|
+
this.Canvas.lineTo(rtBG.Right,ToFixedPoint(yLine));
|
|
32653
|
+
this.Canvas.stroke();
|
|
32654
|
+
|
|
32655
|
+
yLine+=this.RowHeight;
|
|
32656
|
+
if (yLine>=rtBG.Bottom) break;
|
|
32657
|
+
}
|
|
32658
|
+
}
|
|
32659
|
+
|
|
32660
|
+
//计算行高
|
|
32661
|
+
this.CalculateRowHeight=function(rtBG)
|
|
32662
|
+
{
|
|
32663
|
+
if (this.RowHeightType==1)
|
|
32664
|
+
{
|
|
32665
|
+
this.RowHeight=this.TextFontConfig.FontMaxSize+this.ItemMergin.Top+this.ItemMergin.Bottom;
|
|
32666
|
+
}
|
|
32667
|
+
else
|
|
32668
|
+
{
|
|
32669
|
+
this.RowHeight=rtBG.Height/this.RowCount;
|
|
32670
|
+
}
|
|
32671
|
+
}
|
|
32672
|
+
|
|
32673
|
+
this.Draw=function()
|
|
32674
|
+
{
|
|
32675
|
+
if (!this.IsShow || this.ChartFrame.IsMinSize || !this.IsVisible) return;
|
|
32676
|
+
if (this.IsShowIndexTitleOnly()) return;
|
|
32677
|
+
if (this.IsHideScriptIndex()) return;
|
|
32678
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.AryTableData)) return;
|
|
32679
|
+
if (!this.MapCache || this.MapCache.size<=0) return;
|
|
32680
|
+
if(!this.Data || !IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return;
|
|
32622
32681
|
|
|
32623
32682
|
var isHScreen=(this.ChartFrame.IsHScreen===true);
|
|
32624
32683
|
if (isHScreen) return;
|
|
@@ -32629,24 +32688,22 @@ function ChartKLineTable()
|
|
|
32629
32688
|
var xPointCount=this.ChartFrame.XPointCount;
|
|
32630
32689
|
var border=this.ChartFrame.GetBorder();
|
|
32631
32690
|
var height=border.Bottom-border.TopTitle;
|
|
32632
|
-
this.RowHeight=height/this.RowCount;
|
|
32633
32691
|
var xOffset=border.LeftEx+g_JSChartResource.FrameLeftMargin;
|
|
32634
32692
|
var chartright=border.RightEx;
|
|
32635
32693
|
var top=border.TopTitle;
|
|
32636
32694
|
var bottom=border.Bottom;
|
|
32637
32695
|
|
|
32638
|
-
|
|
32639
|
-
{
|
|
32640
|
-
|
|
32641
|
-
|
|
32642
|
-
|
|
32643
|
-
var height=bottom-top;
|
|
32644
|
-
this.Canvas.fillRect(left, top, width, height);
|
|
32645
|
-
}
|
|
32696
|
+
//绘制背景
|
|
32697
|
+
var rtBG={ Left:border.LeftEx, Top:top, Right:border.RightEx, Bottom:bottom };
|
|
32698
|
+
rtBG.Width=rtBG.Right-rtBG.Left;
|
|
32699
|
+
rtBG.Height=rtBG.Bottom-rtBG.Top;
|
|
32700
|
+
this.DrawBG(rtBG);
|
|
32646
32701
|
|
|
32702
|
+
this.CalculateRowHeight(rtBG);
|
|
32703
|
+
|
|
32647
32704
|
var itemHeight=this.RowHeight;
|
|
32648
32705
|
var itemWidth=dataWidth+distanceWidth;
|
|
32649
|
-
if (itemHeight-this.ItemMergin.Top-this.ItemMergin.Bottom>0) itemHeight=itemHeight-this.ItemMergin.
|
|
32706
|
+
if (itemHeight-this.ItemMergin.Top-this.ItemMergin.Bottom>0) itemHeight=itemHeight-this.ItemMergin.Top-this.ItemMergin.Bottom;
|
|
32650
32707
|
if (itemWidth-this.ItemMergin.Left-this.ItemMergin.Right>0) itemWidth=itemWidth-this.ItemMergin.Left-this.ItemMergin.Right;
|
|
32651
32708
|
|
|
32652
32709
|
var font=this.GetDynamicTextFont(itemHeight, itemWidth);
|
|
@@ -32655,8 +32712,8 @@ function ChartKLineTable()
|
|
|
32655
32712
|
|
|
32656
32713
|
for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
|
|
32657
32714
|
{
|
|
32658
|
-
var
|
|
32659
|
-
if (!
|
|
32715
|
+
var kItem=this.Data.Data[i];
|
|
32716
|
+
if (!kItem) continue;
|
|
32660
32717
|
|
|
32661
32718
|
var left=xOffset;
|
|
32662
32719
|
var right=xOffset+dataWidth+distanceWidth;
|
|
@@ -32664,15 +32721,20 @@ function ChartKLineTable()
|
|
|
32664
32721
|
var x=left+(right-left)/2;
|
|
32665
32722
|
if (x>chartright) break;
|
|
32666
32723
|
|
|
32667
|
-
|
|
32668
|
-
|
|
32669
|
-
|
|
32670
|
-
|
|
32671
|
-
|
|
32672
|
-
|
|
32673
|
-
|
|
32674
|
-
|
|
32724
|
+
var bDrawName=false;
|
|
32725
|
+
if (j==0 && this.RowNamePosition===1) bDrawName=true;
|
|
32726
|
+
if (bDrawName) this.DrawRowName(top, bottom, left, right);
|
|
32727
|
+
|
|
32728
|
+
var key=this.BuildKey(kItem);
|
|
32729
|
+
if (!this.MapCache.has(key)) continue;
|
|
32730
|
+
var mapItem=this.MapCache.get(key);
|
|
32731
|
+
|
|
32732
|
+
if (!bDrawName) this.DrawRow(mapItem, top, bottom, left, right); //绘制一列
|
|
32675
32733
|
}
|
|
32734
|
+
|
|
32735
|
+
if (this.RowNamePosition==3) this.DrawRightRowName();
|
|
32736
|
+
|
|
32737
|
+
this.DrawBorder(rtBG);
|
|
32676
32738
|
}
|
|
32677
32739
|
|
|
32678
32740
|
this.DrawRowName=function(top, bottom, left, right)
|
|
@@ -32680,32 +32742,35 @@ function ChartKLineTable()
|
|
|
32680
32742
|
if (!IFrameSplitOperator.IsNonEmptyArray(this.RowName)) return;
|
|
32681
32743
|
|
|
32682
32744
|
var x=left,y=top, width=right-left;
|
|
32745
|
+
var yOffset=3;
|
|
32746
|
+
if (this.ItemMergin.YOffset) yOffset=this.ItemMergin.YOffset;
|
|
32683
32747
|
for(var i=0;i<this.RowName.length;++i)
|
|
32684
32748
|
{
|
|
32685
32749
|
var item=this.RowName[i];
|
|
32686
32750
|
|
|
32687
32751
|
var rtBG={Left:x, Top:y, Right:right, Height:this.RowHeight, Width:width };
|
|
32688
32752
|
rtBG.Bottom=rtBG.Top+this.RowHeight;
|
|
32753
|
+
var yText=rtBG.Bottom-yOffset;
|
|
32689
32754
|
|
|
32690
32755
|
if (item.Name && rtBG.Width>10)
|
|
32691
32756
|
{
|
|
32692
32757
|
this.Canvas.fillStyle=item.Color?item.Color:this.TextColor;
|
|
32693
|
-
this.Canvas.textBaseline='
|
|
32758
|
+
this.Canvas.textBaseline='bottom';
|
|
32694
32759
|
|
|
32695
32760
|
if (item.TextAlign=='right')
|
|
32696
32761
|
{
|
|
32697
32762
|
this.Canvas.textAlign='right';
|
|
32698
|
-
this.Canvas.fillText(item.Name,rtBG.Right-2,
|
|
32763
|
+
this.Canvas.fillText(item.Name,rtBG.Right-2,yText, width-4);
|
|
32699
32764
|
}
|
|
32700
32765
|
else if (item.TextAlign=='center')
|
|
32701
32766
|
{
|
|
32702
32767
|
this.Canvas.textAlign='center';
|
|
32703
|
-
this.Canvas.fillText(item.Name,rtBG.Left+rtBG.Width/2,
|
|
32768
|
+
this.Canvas.fillText(item.Name,rtBG.Left+rtBG.Width/2,yText, width-4);
|
|
32704
32769
|
}
|
|
32705
32770
|
else
|
|
32706
32771
|
{
|
|
32707
32772
|
this.Canvas.textAlign='left';
|
|
32708
|
-
this.Canvas.fillText(item.Name,rtBG.Left+2,
|
|
32773
|
+
this.Canvas.fillText(item.Name,rtBG.Left+2,yText, width-4);
|
|
32709
32774
|
}
|
|
32710
32775
|
}
|
|
32711
32776
|
|
|
@@ -32713,40 +32778,129 @@ function ChartKLineTable()
|
|
|
32713
32778
|
}
|
|
32714
32779
|
}
|
|
32715
32780
|
|
|
32781
|
+
//绘制右侧行名
|
|
32782
|
+
this.DrawRightRowName=function()
|
|
32783
|
+
{
|
|
32784
|
+
var border=this.ChartFrame.GetBorder();
|
|
32785
|
+
|
|
32786
|
+
if (this.BGColor)
|
|
32787
|
+
{
|
|
32788
|
+
var rtRightBG={Left:border.RightEx, Top:border.TopTitle, Right:border.ChartWidth, Bottom:border.Bottom };
|
|
32789
|
+
rtRightBG.Width=rtRightBG.Right-rtRightBG.Left;
|
|
32790
|
+
rtRightBG.Height=rtRightBG.Bottom-rtRightBG.Top;
|
|
32791
|
+
this.Canvas.fillStyle=this.BGColor;
|
|
32792
|
+
this.Canvas.fillRect(rtRightBG.Left+1, rtRightBG.Top, rtRightBG.Width-1, rtRightBG.Height);
|
|
32793
|
+
}
|
|
32794
|
+
|
|
32795
|
+
var x=border.RightEx, y=border.TopTitle;
|
|
32796
|
+
var yOffset=3;
|
|
32797
|
+
if (this.ItemMergin.YOffset) yOffset=this.ItemMergin.YOffset;
|
|
32798
|
+
for(var i=0;i<this.RowName.length;++i)
|
|
32799
|
+
{
|
|
32800
|
+
var item=this.RowName[i];
|
|
32801
|
+
|
|
32802
|
+
var rtBG={Left:x, Top:y, Right:border.ChartWidth, Height:this.RowHeight };
|
|
32803
|
+
rtBG.Bottom=rtBG.Top+this.RowHeight;
|
|
32804
|
+
rtBG.Width=rtBG.Right-rtBG.Left;
|
|
32805
|
+
var yText=rtBG.Bottom-yOffset;
|
|
32806
|
+
|
|
32807
|
+
if (item.Name && rtBG.Width>10)
|
|
32808
|
+
{
|
|
32809
|
+
this.Canvas.fillStyle=item.Color?item.Color:this.TextColor;
|
|
32810
|
+
this.Canvas.textBaseline='bottom';
|
|
32811
|
+
this.Canvas.textAlign='left';
|
|
32812
|
+
this.Canvas.fillText(item.Name,rtBG.Left+2,yText);
|
|
32813
|
+
}
|
|
32814
|
+
|
|
32815
|
+
y+=this.RowHeight;
|
|
32816
|
+
}
|
|
32817
|
+
}
|
|
32818
|
+
|
|
32819
|
+
|
|
32716
32820
|
this.DrawRow=function(data, top, bottom, left, right)
|
|
32717
32821
|
{
|
|
32822
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(data.Data)) return;
|
|
32823
|
+
|
|
32718
32824
|
var x=left,y=top, width=right-left;
|
|
32719
|
-
|
|
32825
|
+
var yOffset=3;
|
|
32826
|
+
if (this.ItemMergin.YOffset) yOffset=this.ItemMergin.YOffset;
|
|
32827
|
+
for(var i=0;i<data.Data.length;++i)
|
|
32720
32828
|
{
|
|
32721
|
-
var item=data[i];
|
|
32829
|
+
var item=data.Data[i];
|
|
32722
32830
|
var rtBG={Left:x, Top:y, Right:right, Height:this.RowHeight, Width:width };
|
|
32723
32831
|
rtBG.Bottom=rtBG.Top+this.RowHeight;
|
|
32724
32832
|
|
|
32725
|
-
if (item.
|
|
32833
|
+
if (IFrameSplitOperator.IsNonEmptyArray(item.AryText)) //左右显示
|
|
32726
32834
|
{
|
|
32727
|
-
|
|
32728
|
-
|
|
32729
|
-
|
|
32835
|
+
var subCellWidth=rtBG.Width/item.AryText.length;
|
|
32836
|
+
var xCell=rtBG.Left;
|
|
32837
|
+
for(var j=0;j<item.AryText.length;++j)
|
|
32838
|
+
{
|
|
32839
|
+
var subItem=item.AryText[j];
|
|
32840
|
+
var rtSubBG={ Left:xCell, Top:rtBG.Top, Bottom:rtBG.Bottom, Width:subCellWidth, Height:rtBG.Height };
|
|
32841
|
+
rtSubBG.Right=rtSubBG.Left+rtSubBG.Width;
|
|
32730
32842
|
|
|
32731
|
-
|
|
32732
|
-
|
|
32733
|
-
|
|
32734
|
-
|
|
32843
|
+
if (subItem && subItem.BGColor)
|
|
32844
|
+
{
|
|
32845
|
+
this.Canvas.fillStyle=subItem.BGColor;
|
|
32846
|
+
this.Canvas.fillRect(rtSubBG.Left, rtSubBG.Top, rtSubBG.Width, rtSubBG.Height);
|
|
32847
|
+
}
|
|
32735
32848
|
|
|
32736
|
-
|
|
32737
|
-
|
|
32738
|
-
|
|
32739
|
-
|
|
32849
|
+
if (subItem && subItem.Color && subCellWidth>10)
|
|
32850
|
+
{
|
|
32851
|
+
this.Canvas.fillStyle=subItem.Color;
|
|
32852
|
+
this.Canvas.textBaseline='bottom';
|
|
32853
|
+
var yText=rtSubBG.Bottom-yOffset;
|
|
32854
|
+
|
|
32855
|
+
if (subItem.TextAlign=='right')
|
|
32856
|
+
{
|
|
32857
|
+
this.Canvas.textAlign='right';
|
|
32858
|
+
this.Canvas.fillText(subItem.Text,rtSubBG.Right-2,yText, width-4);
|
|
32859
|
+
}
|
|
32860
|
+
else if (subItem.TextAlign=='center')
|
|
32861
|
+
{
|
|
32862
|
+
this.Canvas.textAlign='center';
|
|
32863
|
+
this.Canvas.fillText(subItem.Text,rtSubBG.Left+rtSubBG.Width/2,yText, width-4);
|
|
32864
|
+
}
|
|
32865
|
+
else
|
|
32866
|
+
{
|
|
32867
|
+
this.Canvas.textAlign='left';
|
|
32868
|
+
this.Canvas.fillText(subItem.Text,rtSubBG.Left+2,yText, width-4);
|
|
32869
|
+
}
|
|
32870
|
+
}
|
|
32871
|
+
|
|
32872
|
+
xCell+=subCellWidth;
|
|
32740
32873
|
}
|
|
32741
|
-
|
|
32874
|
+
}
|
|
32875
|
+
else
|
|
32876
|
+
{
|
|
32877
|
+
if (item && item.BGColor)
|
|
32742
32878
|
{
|
|
32743
|
-
this.Canvas.
|
|
32744
|
-
this.Canvas.
|
|
32879
|
+
this.Canvas.fillStyle=item.BGColor;
|
|
32880
|
+
this.Canvas.fillRect(rtBG.Left, rtBG.Top, rtBG.Width, rtBG.Height);
|
|
32745
32881
|
}
|
|
32746
|
-
|
|
32882
|
+
|
|
32883
|
+
if (item && item.Color && rtBG.Width>10)
|
|
32747
32884
|
{
|
|
32748
|
-
this.Canvas.
|
|
32749
|
-
this.Canvas.
|
|
32885
|
+
this.Canvas.fillStyle=item.Color;
|
|
32886
|
+
this.Canvas.textBaseline='bottom';
|
|
32887
|
+
var yText=rtBG.Bottom-yOffset;
|
|
32888
|
+
|
|
32889
|
+
if (item.TextAlign=='right')
|
|
32890
|
+
{
|
|
32891
|
+
this.Canvas.textAlign='right';
|
|
32892
|
+
this.Canvas.fillText(item.Text,rtBG.Right-2,yText, width-4);
|
|
32893
|
+
}
|
|
32894
|
+
else if (item.TextAlign=='center')
|
|
32895
|
+
{
|
|
32896
|
+
this.Canvas.textAlign='center';
|
|
32897
|
+
this.Canvas.fillText(item.Text,rtBG.Left+rtBG.Width/2,yText, width-4);
|
|
32898
|
+
}
|
|
32899
|
+
else
|
|
32900
|
+
{
|
|
32901
|
+
this.Canvas.textAlign='left';
|
|
32902
|
+
this.Canvas.fillText(item.Text,rtBG.Left+2,yText, width-4);
|
|
32903
|
+
}
|
|
32750
32904
|
}
|
|
32751
32905
|
}
|
|
32752
32906
|
|