hqchart 1.1.12649 → 1.1.12651

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.
@@ -3943,7 +3943,9 @@ if(this.Position.Type==0)this.Canvas.textAlign='left';else if(this.Position.Type
3943
3943
  var xRect=x-margin[0];var yRect=y-margin[2];var bgWidth=textWidth+margin[2]+margin[3];var bgHeight=drawInfo.Font.Height+margin[0]+margin[1];if(this.TextBG.Color){this.Canvas.fillStyle=this.TextBG.Color;this.Canvas.fillRect(xRect,yRect,bgHeight,bgWidth);}if(this.TextBG.Border){this.Canvas.strokeStyle=this.TextBG.Border;this.Canvas.strokeRect(ToFixedPoint(xRect),ToFixedPoint(yRect),ToFixedRect(bgHeight),ToFixedRect(bgWidth));}}this.Canvas.textBaseline="bottom";this.Canvas.textAlign="left";this.Canvas.fillStyle=drawInfo.Text.Color;this.Canvas.save();this.Canvas.translate(x,y);this.Canvas.rotate(90*Math.PI/180);this.Canvas.fillText(text,0,0);this.Canvas.restore();}else{var x=drawInfo.X;var y=drawInfo.Y;if(drawInfo.Text.Align=="right")x=x-textWidth;else if(drawInfo.Text.Align=="center")x=x-textWidth/2;if(drawInfo.Text.Baseline=="top")y+=drawInfo.Font.Height;else if(drawInfo.Text.Baseline=="middle")y+=drawInfo.Font.Height/2;if(this.TextBG&&(this.TextBG.Color||this.TextBG.Border)){var margin=this.TextBG.Margin;//0=上 1=下 2=左 3=右
3944
3944
  var xRect=x-margin[2];var yRect=y-drawInfo.Font.Height-margin[1];var bgWidth=textWidth+margin[2]+margin[3];var bgHeight=drawInfo.Font.Height+margin[0]+margin[1];if(this.TextBG.Color){this.Canvas.fillStyle=this.TextBG.Color;this.Canvas.fillRect(xRect,yRect,bgWidth,bgHeight);}if(this.TextBG.Border){this.Canvas.strokeStyle=this.TextBG.Border;this.Canvas.strokeRect(ToFixedPoint(xRect),ToFixedPoint(yRect),ToFixedRect(bgWidth),ToFixedRect(bgHeight));}}this.Canvas.textBaseline="bottom";this.Canvas.textAlign="left";this.Canvas.fillStyle=drawInfo.Text.Color;this.Canvas.fillText(text,x,y);}};}function ChartTradeIcon(){this.newMethod=IChartPainting;//派生
3945
3945
  this.newMethod();delete this.newMethod;this.ClassName='ChartTradeIcon';//类名
3946
- this.TextAlign='center';this.TextBaseline='middle';this.SVG={Family:"iconfont",Size:12};this.AryIcon;this.Draw=function(){if(!this.IsShow||this.ChartFrame.IsMinSize||!this.IsVisible)return;if(this.IsShowIndexTitleOnly())return;if(this.IsHideScriptIndex())return;if(!this.Data||!this.Data.Data)return;if(!IFrameSplitOperator.IsNonEmptyArray(this.AryIcon))return;this.Canvas.font=this.SVG.Size+'px '+this.SVG.Family;this.Canvas.textAlign=this.TextAlign;this.Canvas.textBaseline='middle';var yOffset=0;if(this.TradeType=="BUY"||this.TradeType=="BUYSHORT"){this.Canvas.textBaseline="top";yOffset+2;}else if(this.TradeType=="SELL"||this.TradeType=="SELLSHORT"){this.Canvas.textBaseline="bottom";yOffset=-2;}var bHScreen=this.ChartFrame.IsHScreen===true;var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var chartright=this.ChartBorder.GetRight();if(bHScreen)chartright=this.ChartBorder.GetBottom();var xPointCount=this.ChartFrame.XPointCount;var border=this.ChartFrame.GetBorder();var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;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))continue;if(value<=0)continue;var iconItem=this.AryIcon[i];if(!IFrameSplitOperator.IsNumber(iconItem.Value)||!iconItem.Icon)continue;var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;var x=left+(right-left)/2;var y=this.GetYFromData(iconItem.Value,false);this.Canvas.fillStyle=iconItem.Color;if(dataWidth>2)x=ToFixedPoint(x);this.DrawTradeIcon(iconItem.Icon,x,y+yOffset,bHScreen);}};this.DrawTradeIcon=function(text,x,y,isHScreen){if(isHScreen){this.Canvas.save();this.Canvas.translate(y,x);this.Canvas.rotate(90*Math.PI/180);this.Canvas.fillText(text,0,0);this.Canvas.restore();}else{this.Canvas.fillText(text,x,y);}};this.GetMaxMin=function(){var range={Max:null,Min:null};if(!this.Data||!this.Data.Data)return range;if(!IFrameSplitOperator.IsNonEmptyArray(this.AryIcon))return range;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;}for(var i=start,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var value=this.Data.Data[i];if(!IFrameSplitOperator.IsNumber(value))continue;if(value<=0)continue;var iconItem=this.AryIcon[i];if(!IFrameSplitOperator.IsNumber(iconItem.Value)||!iconItem.Icon)continue;if(range.Max==null)range.Max=iconItem.Value;else if(range.Max<iconItem.Value)range.Max=iconItem.Value;if(range.Min==null)range.Min=iconItem.Value;else if(range.Min>iconItem.Value)range.Min=iconItem.Value;}return range;};}function ChartDrawText(){this.newMethod=IChartPainting;//派生
3946
+ this.TextAlign='center';this.TextBaseline='middle';this.SVG={Family:"iconfont",Size:12};this.AryIcon;this.Draw=function(){if(!this.IsShow||this.ChartFrame.IsMinSize||!this.IsVisible)return;if(this.IsShowIndexTitleOnly())return;if(this.IsHideScriptIndex())return;if(!this.Data||!this.Data.Data)return;if(!IFrameSplitOperator.IsNonEmptyArray(this.AryIcon))return;var bHScreen=this.ChartFrame.IsHScreen===true;this.Canvas.font=this.SVG.Size+'px '+this.SVG.Family;this.Canvas.textAlign=this.TextAlign;this.Canvas.textBaseline='middle';var yOffset=0;if(this.TradeType=="BUY"||this.TradeType=="BUYSHORT"){this.Canvas.textBaseline="top";yOffset+=bHScreen?-2:2;}else if(this.TradeType=="SELL"||this.TradeType=="SELLSHORT"){this.Canvas.textBaseline="bottom";yOffset=bHScreen?2:-2;}var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var chartright=this.ChartBorder.GetRight();var xPointCount=this.ChartFrame.XPointCount;var border=this.ChartFrame.GetBorder();var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;if(bHScreen){chartright=this.ChartBorder.GetBottom();//top=this.ChartBorder.GetRightEx();
3947
+ //bottom=this.ChartBorder.GetLeftEx();
3948
+ xOffset=this.ChartBorder.GetTop()+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;}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))continue;if(value<=0)continue;var iconItem=this.AryIcon[i];if(!IFrameSplitOperator.IsNumber(iconItem.Value)||!iconItem.Icon)continue;var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;var x=left+(right-left)/2;var y=this.GetYFromData(iconItem.Value,false);this.Canvas.fillStyle=iconItem.Color;if(dataWidth>2)x=ToFixedPoint(x);this.DrawTradeIcon(iconItem.Icon,x,y+yOffset,bHScreen);}};this.DrawTradeIcon=function(text,x,y,isHScreen){if(isHScreen){this.Canvas.save();this.Canvas.translate(y,x);this.Canvas.rotate(90*Math.PI/180);this.Canvas.fillText(text,0,0);this.Canvas.restore();}else{this.Canvas.fillText(text,x,y);}};this.GetMaxMin=function(){var range={Max:null,Min:null};if(!this.Data||!this.Data.Data)return range;if(!IFrameSplitOperator.IsNonEmptyArray(this.AryIcon))return range;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;}for(var i=start,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var value=this.Data.Data[i];if(!IFrameSplitOperator.IsNumber(value))continue;if(value<=0)continue;var iconItem=this.AryIcon[i];if(!IFrameSplitOperator.IsNumber(iconItem.Value)||!iconItem.Icon)continue;if(range.Max==null)range.Max=iconItem.Value;else if(range.Max<iconItem.Value)range.Max=iconItem.Value;if(range.Min==null)range.Min=iconItem.Value;else if(range.Min>iconItem.Value)range.Min=iconItem.Value;}return range;};}function ChartDrawText(){this.newMethod=IChartPainting;//派生
3947
3949
  this.newMethod();delete this.newMethod;this.ClassName='ChartDrawText';//类名
3948
3950
  this.Color="rgb(255,193,37)";//线段颜色
3949
3951
  this.TextFont="14px 微软雅黑";//线段宽度
@@ -10617,7 +10619,8 @@ this.DRAWGBK=function(condition,color,color2,colorAngle){var drawData={Color:[],
10617
10619
  //例如:
10618
10620
  //DRAWGBK_DIV(C>O,RGB(0,255,0),RGB(255,0,0),0,0);
10619
10621
  this.DRAWGBK_DIV=function(condition,color,color2,colorType,fillType){var drawData={AryColor:[color,color2],ColorType:colorType,FillType:fillType,Data:[]};var result={DrawData:drawData,DrawType:'DRAWGBK_DIV'};if(!this.SymbolData||!this.SymbolData.Data||!IFrameSplitOperator.IsNonEmptyArray(this.SymbolData.Data.Data))return result;var aryKData=this.SymbolData.Data.Data;if(Array.isArray(condition)){for(var i=0;i<aryKData.length;++i){var condItem=condition[i];var item=null;if(condItem){var kItem=aryKData[i];if(fillType==1)item={AryValue:[kItem.High,kItem.Low]};else if(fillType==2)item={AryValue:[kItem.Open,kItem.Close]};else item={AryValue:null};}drawData.Data[i]=item;}}else{if(condition){for(var i=0;i<aryKData.length;++i){var kItem=aryKData[i];var item=null;if(fillType==1)item={AryValue:[kItem.High,kItem.Low]};else if(fillType==2)item={AryValue:[kItem.Open,kItem.Close]};else item={AryValue:null};drawData.Data[i]=item;}}}return result;};//画文字 及线段
10620
- this.DRAWTEXT_LINE=function(condition,price,text,textcolor,fontSize,linetype,linecolor){var drawData={Text:{Title:text,Color:textcolor},Line:{Type:linetype,Color:linecolor}};if(fontSize<=0)fontSize=12;drawData.Text.Font=fontSize*GetDevicePixelRatio()+'px 微软雅黑';var result={DrawData:null,DrawType:'DRAWTEXT_LINE'};if(Array.isArray(condition)){for(var i in condition){var item=condition[i];if(item){if(Array.isArray(price))drawData.Price=price[i];else drawData.Price=price;result.DrawData=drawData;break;}}}else{if(condition){if(Array.isArray(price))drawData.Price=price[0];else drawData.Price=price;result.DrawData=drawData;}}return result;};// 相对位置上画矩形.
10622
+ this.DRAWTEXT_LINE=function(condition,price,text,textcolor,fontSize,linetype,linecolor){var drawData={Text:{Title:text,Color:textcolor},Line:{Type:linetype,Color:linecolor}};if(fontSize<=0)fontSize=12;drawData.Text.Font=fontSize*GetDevicePixelRatio()+'px 微软雅黑';var result={DrawData:null,DrawType:'DRAWTEXT_LINE'};if(Array.isArray(condition)){var item=null;if(IFrameSplitOperator.IsNonEmptyArray(condition))item=condition[condition.length-1];//取最后一个数值
10623
+ if(item){if(Array.isArray(price))drawData.Price=price[condition.length-1];else drawData.Price=price;result.DrawData=drawData;}}else{if(condition){if(Array.isArray(price)){var value=null;if(price.length>0)value=price[price.length-1];drawData.Price=value;}else{drawData.Price=price;}result.DrawData=drawData;}}return result;};// 相对位置上画矩形.
10621
10624
  //用法: DRAWRECTREL(LEFT,TOP,RIGHT,BOTTOM,COLOR),以图形窗口(LEFT,TOP)为左上角,(RIGHT,BOTTOM)为右下角绘制矩形,坐标单位是窗口沿水平和垂直方向的1/1000,取值范围是0—999,超出范围则可能显示在图形窗口外,矩形中间填充颜色COLOR,COLOR为0表示不填充.
10622
10625
  //例如: DRAWRECTREL(0,0,500,500,RGB(255,255,0))表示在图形最左上部1/4位置用黄色绘制矩形
10623
10626
  this.DRAWRECTREL=function(left,top,right,bottom,color){var drawData={Rect:{Left:Math.min(left,right),Top:Math.min(top,bottom),Right:Math.max(right,left),Bottom:Math.max(bottom,top)},Color:color};if(color==0)drawData.Color=null;var result={DrawData:drawData,DrawType:'DRAWRECTREL'};return result;};//DRAWTEXTREL(X,Y,TEXT),在图形窗口(X,Y)坐标位置书写文字TEXT,坐标单位是窗口沿水平和垂直方向的1/1000,X、Y取值范围是0—999,超出范围则可能显示在图形窗口外。
@@ -11459,7 +11462,9 @@ if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK","
11459
11462
  hqChart.ChartPaint.push(line);};this.CreateChartSlopeLine=function(hqChart,windowIndex,varItem,id){var line=new ChartSlopeLine();line.Canvas=hqChart.Canvas;line.Name=varItem.Name;line.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;line.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;if(varItem.Color)line.Color=this.GetColor(varItem.Color);else line.Color=this.GetDefaultColor(id);if(varItem.IsDotLine)line.IsDotLine=true;//虚线
11460
11463
  if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)line.LineWidth=width;}var titleIndex=windowIndex+1;line.Data.Data=varItem.Draw.DrawData.Data;line.Option=varItem.Draw.DrawData.Option;hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(line.Data,null,line.Color);//给一个空的标题
11461
11464
  hqChart.ChartPaint.push(line);};this.CreateChartVericaltLine=function(hqChart,windowIndex,varItem,id){var chart=new ChartVericaltLine();chart.Canvas=hqChart.Canvas;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(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;hqChart.ChartPaint.push(chart);};this.SetChartLineDash=function(chart,option){if(IFrameSplitOperator.IsNumber(option.LineType)){var lineType=option.LineType;var pixelRatio=GetDevicePixelRatio();switch(lineType){case 1:chart.LineType=[10*pixelRatio,10*pixelRatio];break;case 2:chart.LineType=[0,10*pixelRatio];chart.LineCap="square";break;case 3:chart.LineType=[10*pixelRatio,3*pixelRatio,3*pixelRatio,3*pixelRatio];break;case 4:chart.LineType=[10*pixelRatio,3*pixelRatio,3*pixelRatio,3*pixelRatio,3*pixelRatio,3*pixelRatio];break;}}else if(IFrameSplitOperator.IsString(option.LineType)){var aryString=option.LineType.split(',');var aryLinType=[];for(var i=0;i<aryString.length;++i){aryLinType.push(parseInt(aryString[i]));}chart.LineType=aryLinType;}};this.CreateChartHorizontalLine=function(hqChart,windowIndex,varItem,id){var chart=new ChartHorizontalLine();chart.Canvas=hqChart.Canvas;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(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;hqChart.ChartPaint.push(chart);};this.CreateBackgroud=function(hqChart,windowIndex,varItem,id){var chart=new ChartBackground();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;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;}hqChart.ChartPaint.push(chart);};this.CreateBackgroundDiv=function(hqChart,windowIndex,varItem,id){var chart=new ChartBackgroundDiv();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;if(varItem.Draw&&varItem.Draw.DrawData){var drawData=varItem.Draw.DrawData;chart.AryColor=drawData.AryColor;chart.ColorType=drawData.ColorType;if(drawData.Data)chart.Data.Data=drawData.Data;}hqChart.ChartPaint.push(chart);};this.CreateLineMultiData=function(hqChart,windowIndex,varItem,id){var chart=new ChartLineMultiData();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;if(varItem.Draw&&varItem.Draw.DrawData){var drawData=varItem.Draw.DrawData;chart.Color=drawData.Color;if(drawData.PointColor)chart.PointColor=drawData.PointColor;if(IFrameSplitOperator.IsPlusNumber(drawData.PointRadius))chart.PointRadius=drawData.PointRadius;if(IFrameSplitOperator.IsPlusNumber(drawData.LineWidth))chart.LineWidth=drawData.LineWidth;if(drawData.Data)chart.Data.Data=drawData.Data;}var titleIndex=windowIndex+1;var titleData=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);//标题
11462
- titleData.DataType="MULTI_POINT_LINE";hqChart.TitlePaint[titleIndex].Data[id]=titleData;hqChart.ChartPaint.push(chart);};this.CreateTradeIcon=function(hqChart,windowIndex,varItem,id){var chart=new ChartTradeIcon();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.Data=varItem.Draw.DrawData.Data;chart.AryIcon=varItem.Draw.DrawData.Icons;chart.TradeType=varItem.Draw.DrawType;if(varItem.DrawFontSize>0)chart.SVG.Size=varItem.DrawFontSize;//图标大小
11465
+ titleData.DataType="MULTI_POINT_LINE";hqChart.TitlePaint[titleIndex].Data[id]=titleData;hqChart.ChartPaint.push(chart);};this.CreateTradeIcon=function(hqChart,windowIndex,varItem,id){var chart=new ChartTradeIcon();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.Data=varItem.Draw.DrawData.Data;chart.AryIcon=varItem.Draw.DrawData.Icons;chart.TradeType=varItem.Draw.DrawType;//修改颜色
11466
+ if(varItem.Color&&IFrameSplitOperator.IsNonEmptyArray(chart.AryIcon)){for(var i=0;i<chart.AryIcon.length;++i){var item=chart.AryIcon[i];if(!item||!item.Color)continue;item.Color=varItem.Color;}}//图片大小
11467
+ if(varItem.DrawFontSize>0)chart.SVG.Size=varItem.DrawFontSize*GetDevicePixelRatio();//图标大小
11463
11468
  hqChart.ChartPaint.push(chart);};this.CreateTextLine=function(hqChart,windowIndex,varItem,id){var chart=new ChartTextLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;if(varItem.Draw&&varItem.Draw.DrawData){var drawData=varItem.Draw.DrawData;chart.Text=drawData.Text;chart.Line=drawData.Line;chart.Price=drawData.Price;}hqChart.ChartPaint.push(chart);};this.CreateNumberText=function(hqChart,windowIndex,varItem,id){var chartText=new ChartSingleText();chartText.Canvas=hqChart.Canvas;chartText.Name=varItem.Name;chartText.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chartText.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chartText.ReloadResource();chartText.TextAlign="center";if(varItem.Color)chartText.Color=this.GetColor(varItem.Color);else chartText.Color=this.GetDefaultColor(id);if(varItem.IsDrawAbove)chartText.Direction=1;else chartText.Direction=2;if(varItem.Draw.Position)chartText.Position=varItem.Draw.Position;//赋值坐标
11464
11469
  var titleIndex=windowIndex+1;chartText.Data.Data=varItem.Draw.DrawData.Value;chartText.Text=varItem.Draw.DrawData.Text;//hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(bar.Data,varItem.Name,bar.Color);
11465
11470
  hqChart.ChartPaint.push(chartText);};this.CreateDrawText=function(hqChart,windowIndex,varItem,id){var chartText=new ChartSingleText();chartText.Canvas=hqChart.Canvas;chartText.Name=varItem.Name;chartText.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chartText.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chartText.ReloadResource();if(varItem.Color)chartText.Color=this.GetColor(varItem.Color);else chartText.Color=this.GetDefaultColor(id);if(varItem.IsDrawAbove)chartText.Direction=1;else chartText.Direction=0;if(varItem.DrawFontSize>0)chartText.TextFont=varItem.DrawFontSize*GetDevicePixelRatio()+'px \u5FAE\u8F6F\u96C5\u9ED1';//临时用下吧
@@ -12791,7 +12796,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
12791
12796
  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);};}/********************************************************************************
12792
12797
  * 版本信息输出
12793
12798
  *
12794
- */var HQCHART_VERSION="1.1.12648";function PrintHQChartVersion(){var log='*************************************************************************************************************\n*\n* HQChart Ver: '+HQCHART_VERSION+' \n* \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n*************************************************************************************************************\n';console.log(log);}PrintHQChartVersion();//把给外界调用的方法暴露出来
12799
+ */var HQCHART_VERSION="1.1.12650";function PrintHQChartVersion(){var log='*************************************************************************************************************\n*\n* HQChart Ver: '+HQCHART_VERSION+' \n* \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n*************************************************************************************************************\n';console.log(log);}PrintHQChartVersion();//把给外界调用的方法暴露出来
12795
12800
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
12796
12801
  // BaseIndex:BaseIndex,
12797
12802
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "hqchart",
3
3
  "description": "stock chart",
4
4
  "author": "jones2000",
5
- "version": "1.1.12649",
5
+ "version": "1.1.12651",
6
6
  "main": "lib/main.js",
7
7
  "private": false,
8
8
  "license": "Apache License 2.0",
@@ -10826,25 +10826,31 @@ function JSDraw(errorHandler,symbolData)
10826
10826
 
10827
10827
  if (Array.isArray(condition))
10828
10828
  {
10829
- for(var i in condition)
10829
+ var item=null;
10830
+ if (IFrameSplitOperator.IsNonEmptyArray(condition))
10831
+ item=condition[condition.length-1]; //取最后一个数值
10832
+
10833
+ if (item)
10830
10834
  {
10831
- var item=condition[i];
10832
- if (item)
10833
- {
10834
- if (Array.isArray(price)) drawData.Price=price[i];
10835
- else drawData.Price=price;
10836
- result.DrawData=drawData;
10837
-
10838
- break;
10839
- }
10835
+ if (Array.isArray(price)) drawData.Price=price[condition.length-1];
10836
+ else drawData.Price=price;
10837
+ result.DrawData=drawData;
10840
10838
  }
10841
10839
  }
10842
10840
  else
10843
10841
  {
10844
10842
  if (condition)
10845
10843
  {
10846
- if (Array.isArray(price)) drawData.Price=price[0];
10847
- else drawData.Price=price;
10844
+ if (Array.isArray(price))
10845
+ {
10846
+ var value=null;
10847
+ if (price.length>0) value=price[price.length-1];
10848
+ drawData.Price=value;
10849
+ }
10850
+ else
10851
+ {
10852
+ drawData.Price=price;
10853
+ }
10848
10854
  result.DrawData=drawData;
10849
10855
  }
10850
10856
  }
@@ -20488,7 +20494,20 @@ function ScriptIndex(name,script,args,option)
20488
20494
  chart.AryIcon=varItem.Draw.DrawData.Icons;
20489
20495
  chart.TradeType=varItem.Draw.DrawType;
20490
20496
 
20491
- if (varItem.DrawFontSize>0) chart.SVG.Size=varItem.DrawFontSize; //图标大小
20497
+ //修改颜色
20498
+ if (varItem.Color && IFrameSplitOperator.IsNonEmptyArray(chart.AryIcon))
20499
+ {
20500
+ for(var i=0;i<chart.AryIcon.length;++i)
20501
+ {
20502
+ var item=chart.AryIcon[i];
20503
+ if (!item || !item.Color) continue;
20504
+
20505
+ item.Color=varItem.Color;
20506
+ }
20507
+ }
20508
+
20509
+ //图片大小
20510
+ if (varItem.DrawFontSize>0) chart.SVG.Size=varItem.DrawFontSize*GetDevicePixelRatio(); //图标大小
20492
20511
 
20493
20512
  hqChart.ChartPaint.push(chart);
20494
20513
  }
@@ -30542,6 +30542,7 @@ function ChartTradeIcon()
30542
30542
  if(!this.Data || !this.Data.Data) return;
30543
30543
  if (!IFrameSplitOperator.IsNonEmptyArray(this.AryIcon)) return;
30544
30544
 
30545
+ var bHScreen=(this.ChartFrame.IsHScreen===true);
30545
30546
  this.Canvas.font=`${this.SVG.Size}px ${this.SVG.Family}`;
30546
30547
  this.Canvas.textAlign=this.TextAlign;
30547
30548
  this.Canvas.textBaseline='middle';
@@ -30549,22 +30550,27 @@ function ChartTradeIcon()
30549
30550
  if (this.TradeType=="BUY" || this.TradeType=="BUYSHORT")
30550
30551
  {
30551
30552
  this.Canvas.textBaseline="top";
30552
- yOffset+2;
30553
+ yOffset+=(bHScreen?-2:2);
30553
30554
  }
30554
30555
  else if (this.TradeType=="SELL" || this.TradeType=="SELLSHORT")
30555
30556
  {
30556
30557
  this.Canvas.textBaseline="bottom";
30557
- yOffset=-2;
30558
+ yOffset=(bHScreen?2:-2);
30558
30559
  }
30559
-
30560
- var bHScreen=(this.ChartFrame.IsHScreen===true);
30560
+
30561
30561
  var dataWidth=this.ChartFrame.DataWidth;
30562
30562
  var distanceWidth=this.ChartFrame.DistanceWidth;
30563
30563
  var chartright=this.ChartBorder.GetRight();
30564
- if (bHScreen) chartright=this.ChartBorder.GetBottom();
30565
30564
  var xPointCount=this.ChartFrame.XPointCount;
30566
30565
  var border=this.ChartFrame.GetBorder();
30567
30566
  var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
30567
+ if (bHScreen)
30568
+ {
30569
+ chartright=this.ChartBorder.GetBottom();
30570
+ //top=this.ChartBorder.GetRightEx();
30571
+ //bottom=this.ChartBorder.GetLeftEx();
30572
+ xOffset=this.ChartBorder.GetTop()+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
30573
+ }
30568
30574
 
30569
30575
  for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
30570
30576
  {
@@ -34622,6 +34622,7 @@ function ChartTradeIcon()
34622
34622
  if(!this.Data || !this.Data.Data) return;
34623
34623
  if (!IFrameSplitOperator.IsNonEmptyArray(this.AryIcon)) return;
34624
34624
 
34625
+ var bHScreen=(this.ChartFrame.IsHScreen===true);
34625
34626
  this.Canvas.font=`${this.SVG.Size}px ${this.SVG.Family}`;
34626
34627
  this.Canvas.textAlign=this.TextAlign;
34627
34628
  this.Canvas.textBaseline='middle';
@@ -34629,22 +34630,27 @@ function ChartTradeIcon()
34629
34630
  if (this.TradeType=="BUY" || this.TradeType=="BUYSHORT")
34630
34631
  {
34631
34632
  this.Canvas.textBaseline="top";
34632
- yOffset+2;
34633
+ yOffset+=(bHScreen?-2:2);
34633
34634
  }
34634
34635
  else if (this.TradeType=="SELL" || this.TradeType=="SELLSHORT")
34635
34636
  {
34636
34637
  this.Canvas.textBaseline="bottom";
34637
- yOffset=-2;
34638
+ yOffset=(bHScreen?2:-2);
34638
34639
  }
34639
-
34640
- var bHScreen=(this.ChartFrame.IsHScreen===true);
34640
+
34641
34641
  var dataWidth=this.ChartFrame.DataWidth;
34642
34642
  var distanceWidth=this.ChartFrame.DistanceWidth;
34643
34643
  var chartright=this.ChartBorder.GetRight();
34644
- if (bHScreen) chartright=this.ChartBorder.GetBottom();
34645
34644
  var xPointCount=this.ChartFrame.XPointCount;
34646
34645
  var border=this.ChartFrame.GetBorder();
34647
34646
  var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
34647
+ if (bHScreen)
34648
+ {
34649
+ chartright=this.ChartBorder.GetBottom();
34650
+ //top=this.ChartBorder.GetRightEx();
34651
+ //bottom=this.ChartBorder.GetLeftEx();
34652
+ xOffset=this.ChartBorder.GetTop()+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
34653
+ }
34648
34654
 
34649
34655
  for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
34650
34656
  {
@@ -104892,25 +104898,31 @@ function JSDraw(errorHandler,symbolData)
104892
104898
 
104893
104899
  if (Array.isArray(condition))
104894
104900
  {
104895
- for(var i in condition)
104901
+ var item=null;
104902
+ if (IFrameSplitOperator.IsNonEmptyArray(condition))
104903
+ item=condition[condition.length-1]; //取最后一个数值
104904
+
104905
+ if (item)
104896
104906
  {
104897
- var item=condition[i];
104898
- if (item)
104899
- {
104900
- if (Array.isArray(price)) drawData.Price=price[i];
104901
- else drawData.Price=price;
104902
- result.DrawData=drawData;
104903
-
104904
- break;
104905
- }
104907
+ if (Array.isArray(price)) drawData.Price=price[condition.length-1];
104908
+ else drawData.Price=price;
104909
+ result.DrawData=drawData;
104906
104910
  }
104907
104911
  }
104908
104912
  else
104909
104913
  {
104910
104914
  if (condition)
104911
104915
  {
104912
- if (Array.isArray(price)) drawData.Price=price[0];
104913
- else drawData.Price=price;
104916
+ if (Array.isArray(price))
104917
+ {
104918
+ var value=null;
104919
+ if (price.length>0) value=price[price.length-1];
104920
+ drawData.Price=value;
104921
+ }
104922
+ else
104923
+ {
104924
+ drawData.Price=price;
104925
+ }
104914
104926
  result.DrawData=drawData;
104915
104927
  }
104916
104928
  }
@@ -114554,7 +114566,20 @@ function ScriptIndex(name,script,args,option)
114554
114566
  chart.AryIcon=varItem.Draw.DrawData.Icons;
114555
114567
  chart.TradeType=varItem.Draw.DrawType;
114556
114568
 
114557
- if (varItem.DrawFontSize>0) chart.SVG.Size=varItem.DrawFontSize; //图标大小
114569
+ //修改颜色
114570
+ if (varItem.Color && IFrameSplitOperator.IsNonEmptyArray(chart.AryIcon))
114571
+ {
114572
+ for(var i=0;i<chart.AryIcon.length;++i)
114573
+ {
114574
+ var item=chart.AryIcon[i];
114575
+ if (!item || !item.Color) continue;
114576
+
114577
+ item.Color=varItem.Color;
114578
+ }
114579
+ }
114580
+
114581
+ //图片大小
114582
+ if (varItem.DrawFontSize>0) chart.SVG.Size=varItem.DrawFontSize*GetDevicePixelRatio(); //图标大小
114558
114583
 
114559
114584
  hqChart.ChartPaint.push(chart);
114560
114585
  }
@@ -130166,7 +130191,7 @@ function ScrollBarBGChart()
130166
130191
 
130167
130192
 
130168
130193
 
130169
- var HQCHART_VERSION="1.1.12648";
130194
+ var HQCHART_VERSION="1.1.12650";
130170
130195
 
130171
130196
  function PrintHQChartVersion()
130172
130197
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.12648";
8
+ var HQCHART_VERSION="1.1.12650";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -34666,6 +34666,7 @@ function ChartTradeIcon()
34666
34666
  if(!this.Data || !this.Data.Data) return;
34667
34667
  if (!IFrameSplitOperator.IsNonEmptyArray(this.AryIcon)) return;
34668
34668
 
34669
+ var bHScreen=(this.ChartFrame.IsHScreen===true);
34669
34670
  this.Canvas.font=`${this.SVG.Size}px ${this.SVG.Family}`;
34670
34671
  this.Canvas.textAlign=this.TextAlign;
34671
34672
  this.Canvas.textBaseline='middle';
@@ -34673,22 +34674,27 @@ function ChartTradeIcon()
34673
34674
  if (this.TradeType=="BUY" || this.TradeType=="BUYSHORT")
34674
34675
  {
34675
34676
  this.Canvas.textBaseline="top";
34676
- yOffset+2;
34677
+ yOffset+=(bHScreen?-2:2);
34677
34678
  }
34678
34679
  else if (this.TradeType=="SELL" || this.TradeType=="SELLSHORT")
34679
34680
  {
34680
34681
  this.Canvas.textBaseline="bottom";
34681
- yOffset=-2;
34682
+ yOffset=(bHScreen?2:-2);
34682
34683
  }
34683
-
34684
- var bHScreen=(this.ChartFrame.IsHScreen===true);
34684
+
34685
34685
  var dataWidth=this.ChartFrame.DataWidth;
34686
34686
  var distanceWidth=this.ChartFrame.DistanceWidth;
34687
34687
  var chartright=this.ChartBorder.GetRight();
34688
- if (bHScreen) chartright=this.ChartBorder.GetBottom();
34689
34688
  var xPointCount=this.ChartFrame.XPointCount;
34690
34689
  var border=this.ChartFrame.GetBorder();
34691
34690
  var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
34691
+ if (bHScreen)
34692
+ {
34693
+ chartright=this.ChartBorder.GetBottom();
34694
+ //top=this.ChartBorder.GetRightEx();
34695
+ //bottom=this.ChartBorder.GetLeftEx();
34696
+ xOffset=this.ChartBorder.GetTop()+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
34697
+ }
34692
34698
 
34693
34699
  for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
34694
34700
  {
@@ -104936,25 +104942,31 @@ function JSDraw(errorHandler,symbolData)
104936
104942
 
104937
104943
  if (Array.isArray(condition))
104938
104944
  {
104939
- for(var i in condition)
104945
+ var item=null;
104946
+ if (IFrameSplitOperator.IsNonEmptyArray(condition))
104947
+ item=condition[condition.length-1]; //取最后一个数值
104948
+
104949
+ if (item)
104940
104950
  {
104941
- var item=condition[i];
104942
- if (item)
104943
- {
104944
- if (Array.isArray(price)) drawData.Price=price[i];
104945
- else drawData.Price=price;
104946
- result.DrawData=drawData;
104947
-
104948
- break;
104949
- }
104951
+ if (Array.isArray(price)) drawData.Price=price[condition.length-1];
104952
+ else drawData.Price=price;
104953
+ result.DrawData=drawData;
104950
104954
  }
104951
104955
  }
104952
104956
  else
104953
104957
  {
104954
104958
  if (condition)
104955
104959
  {
104956
- if (Array.isArray(price)) drawData.Price=price[0];
104957
- else drawData.Price=price;
104960
+ if (Array.isArray(price))
104961
+ {
104962
+ var value=null;
104963
+ if (price.length>0) value=price[price.length-1];
104964
+ drawData.Price=value;
104965
+ }
104966
+ else
104967
+ {
104968
+ drawData.Price=price;
104969
+ }
104958
104970
  result.DrawData=drawData;
104959
104971
  }
104960
104972
  }
@@ -114598,7 +114610,20 @@ function ScriptIndex(name,script,args,option)
114598
114610
  chart.AryIcon=varItem.Draw.DrawData.Icons;
114599
114611
  chart.TradeType=varItem.Draw.DrawType;
114600
114612
 
114601
- if (varItem.DrawFontSize>0) chart.SVG.Size=varItem.DrawFontSize; //图标大小
114613
+ //修改颜色
114614
+ if (varItem.Color && IFrameSplitOperator.IsNonEmptyArray(chart.AryIcon))
114615
+ {
114616
+ for(var i=0;i<chart.AryIcon.length;++i)
114617
+ {
114618
+ var item=chart.AryIcon[i];
114619
+ if (!item || !item.Color) continue;
114620
+
114621
+ item.Color=varItem.Color;
114622
+ }
114623
+ }
114624
+
114625
+ //图片大小
114626
+ if (varItem.DrawFontSize>0) chart.SVG.Size=varItem.DrawFontSize*GetDevicePixelRatio(); //图标大小
114602
114627
 
114603
114628
  hqChart.ChartPaint.push(chart);
114604
114629
  }
@@ -130324,7 +130349,7 @@ function HQChartScriptWorker()
130324
130349
 
130325
130350
 
130326
130351
 
130327
- var HQCHART_VERSION="1.1.12648";
130352
+ var HQCHART_VERSION="1.1.12650";
130328
130353
 
130329
130354
  function PrintHQChartVersion()
130330
130355
  {