hqchart 1.1.14408 → 1.1.14412

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.
@@ -2352,7 +2352,7 @@ this.YTextPosition=[0,0],//是坐标否强制画在内部 [0=左侧] [1=右侧]
2352
2352
  this.YTextPadding=[g_JSChartResource.Frame.YTextPadding[0],g_JSChartResource.Frame.YTextPadding[1]],//Y轴文字和边框间距 [0=左侧] [1=右侧]
2353
2353
  this.IsShowXLine=true;//是否显示X轴刻度线
2354
2354
  this.IsShowYLine=true;this.YInsideOffset=0;this.YTextBaseline=0;//0=居中 1=上部 (目前就支持内部刻度)
2355
- this.MultiTextFormat=0;//多行刻度信息显示模式 0=显示第1行 1=价格/百分比 2=显示2行
2355
+ this.MultiTextFormat=0;//多行刻度信息显示模式 0=显示第1行 1=单行多个文本 2=显示2行
2356
2356
  this.RightTextMaxWidth=0;this.ShortYLineLength=5;this.ShortXLineLength=5;this.BeforeDrawXYCallback;//坐标绘制前回调,绘制深度图
2357
2357
  this.GetEventCallback;//事件回调
2358
2358
  //工具栏的按钮样式
@@ -2377,7 +2377,7 @@ var leftExtendLine=null;//左侧延长线
2377
2377
  if(IFrameSplitOperator.IsNonEmptyArray(this.YLineExtend)){rightExtendLine=this.YLineExtend[1];leftExtendLine=this.YLineExtend[0];}var rightExtendText=null;//右侧文字设置
2378
2378
  var leftExtendText=null;//左侧文字设置
2379
2379
  if(IFrameSplitOperator.IsNonEmptyArray(this.YTextExtend)){leftExtendText=this.YTextExtend[0];rightExtendText=this.YTextExtend[1];}var yPrev=null;//上一个坐标y的值
2380
- var pixelRatio=GetDevicePixelRatio();var itemHeight=(border.BottomEx-border.TopEx)/this.HorizontalInfo.length;var aryMultiText=[];var rtPreRight,rtRight,rtLeft,rtPreLeft;var textBaseline=0;//0=上 1=中 2=下
2380
+ var pixelRatio=GetDevicePixelRatio();var itemHeight=(border.BottomEx-border.TopEx)/this.HorizontalInfo.length;var aryMultiText=[];var aryLeftMulitText=[];var rtPreRight,rtRight,rtLeft,rtPreLeft;var textBaseline=0;//0=上 1=中 2=下
2381
2381
  for(var i=this.HorizontalInfo.length-1;i>=0;--i)//从上往下画分割线
2382
2382
  {var item=this.HorizontalInfo[i];if(!IFrameSplitOperator.IsNumber(item.Value))continue;if(NumberCompare.GT(item.Value,this.HorizontalMax)||NumberCompare.LT(item.Value,this.HorizontalMin))continue;var y=this.GetYFromData(item.Value);if(y!=null&&yPrev!=null&&Math.abs(y-yPrev)<this.MinYDistance)continue;//两个坐标在近了 就不画了
2383
2383
  var yFixed=ToFixedPoint(y);//绘制刻度线
@@ -2388,23 +2388,30 @@ this.Canvas.beginPath();this.Canvas.moveTo(left,yFixed);this.Canvas.lineTo(right
2388
2388
  {}else if(item.LineType>0){if(g_JSChartResource.FrameYLineDash){this.Canvas.save();this.Canvas.setLineDash(g_JSChartResource.FrameYLineDash);//虚线
2389
2389
  this.Canvas.beginPath();this.Canvas.moveTo(left,yFixed);this.Canvas.lineTo(right,yFixed);this.Canvas.stroke();this.Canvas.setLineDash([]);this.Canvas.restore();}else{this.Canvas.beginPath();this.Canvas.moveTo(left,yFixed);this.Canvas.lineTo(right,yFixed);this.Canvas.stroke();}}if(bChangeLineWidth){this.Canvas.lineWidth=pixelRatio;}}var yText=y;if(y>=bottom-2){this.Canvas.textBaseline='bottom';textBaseline=2;}else if(y<=top+2){this.Canvas.textBaseline='top';yText+=this.YTextTopOffset;textBaseline=0;}else{this.Canvas.textBaseline="middle";textBaseline=1;}//左边 坐标信息 间距小于10 不画坐标
2390
2390
  this.Canvas.strokeStyle=item.TextColor;this.Canvas.fillStyle=item.TextColor;if(item.Message[0]!=null&&isDrawLeft){var yOffset=0;if(IFrameSplitOperator.IsNonEmptyArray(item.YOffset))//文字Y轴偏移
2391
- {var offsetItem=item.YOffset[0];if(offsetItem&&IFrameSplitOperator.IsNumber(offsetItem.Offset))yOffset=offsetItem.Offset;}if(Array.isArray(item.Message[0])){if(this.MultiTextFormat==3){var obj={Data:item.Message[0],X:left,Y:yText,TextBaseLine:textBaseline,IsLeft:true,Item:item,TextPadding:this.YTextPadding[0]};this.DrawMultiLineText(obj);}}else{if(item.Font!=null)this.Canvas.font=item.Font;var xText=left;if(leftExtendLine&&leftExtendLine.Width>1){var lineLength=leftExtendLine.Width;if(leftExtendLine.Color)this.Canvas.strokeStyle=leftExtendLine.Color;else this.Canvas.strokeStyle=item.LineColor;this.Canvas.beginPath();this.Canvas.moveTo(xText,yFixed);this.Canvas.lineTo(xText-lineLength,yFixed);this.Canvas.stroke();xText-=lineLength;}rtLeft=this.GetTextTopBottom(textBaseline,yText);if(!rtPreLeft||rtLeft&&!this.IsTextTopBottomOverlap(rtLeft,rtPreLeft)){if(leftExtendText&&leftExtendText.Align===1){this.Canvas.textAlign="left";this.Canvas.fillText(item.Message[0],this.YTextPadding[0],yText+yOffset);}else{this.Canvas.textAlign="right";this.Canvas.fillText(item.Message[0],xText-this.YTextPadding[0],yText+yOffset);rtPreLeft=rtLeft;}}}}//右边 坐标信息 间距小于10 不画坐标
2391
+ {var offsetItem=item.YOffset[0];if(offsetItem&&IFrameSplitOperator.IsNumber(offsetItem.Offset))yOffset=offsetItem.Offset;}if(Array.isArray(item.Message[0])){if(this.MultiTextFormat==1)//显示1 格式如:价格/百分比
2392
+ {var textData=this.CreateMulitCoordinateItem(item.Message[0],left-2,yText,this.Canvas.textBaseline,item);aryLeftMulitText.push(textData);}else if(this.MultiTextFormat==3){var obj={Data:item.Message[0],X:left,Y:yText,TextBaseLine:textBaseline,IsLeft:true,Item:item,TextPadding:this.YTextPadding[0]};this.DrawMultiLineText(obj);}}else{if(item.Font!=null)this.Canvas.font=item.Font;var xText=left;if(leftExtendLine&&leftExtendLine.Width>1){var lineLength=leftExtendLine.Width;if(leftExtendLine.Color)this.Canvas.strokeStyle=leftExtendLine.Color;else this.Canvas.strokeStyle=item.LineColor;this.Canvas.beginPath();this.Canvas.moveTo(xText,yFixed);this.Canvas.lineTo(xText-lineLength,yFixed);this.Canvas.stroke();xText-=lineLength;}rtLeft=this.GetTextTopBottom(textBaseline,yText);if(!rtPreLeft||rtLeft&&!this.IsTextTopBottomOverlap(rtLeft,rtPreLeft)){if(leftExtendText&&leftExtendText.Align===1){this.Canvas.textAlign="left";this.Canvas.fillText(item.Message[0],this.YTextPadding[0],yText+yOffset);}else{this.Canvas.textAlign="right";this.Canvas.fillText(item.Message[0],xText-this.YTextPadding[0],yText+yOffset);rtPreLeft=rtLeft;}}}}//右边 坐标信息 间距小于10 不画坐标
2392
2393
  if(item.Message[1]!=null&&isDrawRight){var yOffset=0;if(IFrameSplitOperator.IsNonEmptyArray(item.YOffset))//文字Y轴偏移
2393
2394
  {var offsetItem=item.YOffset[1];if(offsetItem&&IFrameSplitOperator.IsNumber(offsetItem.Offset))yOffset=offsetItem.Offset;}if(item.Font!=null)this.Canvas.font=item.Font;var xText=right;if(item.LineType==3){var lineLength=this.ShortYLineLength*GetDevicePixelRatio();this.Canvas.beginPath();this.Canvas.moveTo(xText,yFixed);this.Canvas.lineTo(xText+lineLength,yFixed);this.Canvas.stroke();xText+=lineLength;}//右侧延长线
2394
- if(rightExtendLine&&rightExtendLine.Width>1){var lineLength=rightExtendLine.Width;if(rightExtendLine.Color)this.Canvas.strokeStyle=rightExtendLine.Color;else this.Canvas.strokeStyle=item.LineColor;this.Canvas.beginPath();this.Canvas.moveTo(xText,yFixed);this.Canvas.lineTo(xText+lineLength,yFixed);this.Canvas.stroke();xText+=lineLength+2;}this.Canvas.textAlign="left";if(Array.isArray(item.Message[1])){if(this.MultiTextFormat==1)//显示1行 格式:价格/百分比
2395
- {if(item.ExtendData){if(item.ExtendData.Font)this.Canvas.font=item.ExtendData.Font;}var textData={Text:[{Text:item.Message[1][0],Width:this.Canvas.measureText(item.Message[1][0]).width},{Text:item.Message[1][1],Width:this.Canvas.measureText(item.Message[1][1]).width}],X:xText+2,Y:yText,TextBaseline:this.Canvas.textBaseline,Item:item};aryMultiText.push(textData);}else if(this.MultiTextFormat==2)//显示2行
2395
+ if(rightExtendLine&&rightExtendLine.Width>1){var lineLength=rightExtendLine.Width;if(rightExtendLine.Color)this.Canvas.strokeStyle=rightExtendLine.Color;else this.Canvas.strokeStyle=item.LineColor;this.Canvas.beginPath();this.Canvas.moveTo(xText,yFixed);this.Canvas.lineTo(xText+lineLength,yFixed);this.Canvas.stroke();xText+=lineLength+2;}this.Canvas.textAlign="left";if(Array.isArray(item.Message[1])){if(this.MultiTextFormat==1)//显示1行 格式如:价格/百分比
2396
+ {var textData=this.CreateMulitCoordinateItem(item.Message[1],xText+2,yText,this.Canvas.textBaseline,item);aryMultiText.push(textData);}else if(this.MultiTextFormat==2)//显示2行
2396
2397
  {this.Canvas.fillText(item.Message[1][0],xText+this.YTextPadding[1],yText);var lineHeight=this.Canvas.measureText('M').width;if(itemHeight>lineHeight*2)this.Canvas.fillText(item.Message[1][1],xText+this.YTextPadding[1],yText+lineHeight);}else if(this.MultiTextFormat==3){var obj={Data:item.Message[1],X:xText,Y:yText,TextBaseLine:textBaseline,IsLeft:false,Item:item,TextPadding:this.YTextPadding[1]};this.DrawMultiLineText(obj);}else//显示第1行
2397
2398
  {var text=item.Message[1][0];if(item.TextColor2)this.Canvas.fillStyle=item.TextColor2;if(rightExtendText&&rightExtendText.Align===2&&this.YRightTextInfo)//右对齐
2398
2399
  {this.Canvas.textAlign="right";var xRight=this.YRightTextInfo.MainTextWidth+right-this.YTextPadding[1];this.Canvas.fillText(text,xRight,yText);}else{this.Canvas.fillText(text,xText+this.YTextPadding[1],yText);}}}else{//计算显示的区域
2399
2400
  rtRight=this.GetTextTopBottom(textBaseline,yText);if(!rtPreRight||rtRight&&!this.IsTextTopBottomOverlap(rtRight,rtPreRight)){if(item.TextColor2)this.Canvas.fillStyle=item.TextColor2;if(rightExtendText&&rightExtendText.Align===2&&this.YRightTextInfo)//右对齐
2400
- {this.Canvas.textAlign="right";var xRight=this.YRightTextInfo.MainTextWidth+right-this.YTextPadding[1];this.Canvas.fillText(item.Message[1],xRight,yText+yOffset);}else{this.Canvas.fillText(item.Message[1],xText+this.YTextPadding[1],yText+yOffset);}rtPreRight=rtRight;}}}yPrev=y;}if(IFrameSplitOperator.IsNonEmptyArray(aryMultiText)&&this.MultiTextFormat==1)this.DrawHorizontalMuText(aryMultiText);if(isDrawRight&&this.IsDrawRightBorder&&this.YRightTextInfo){var xRight=this.YRightTextInfo.MainTextWidth+right;xLine=ToFixedPoint(xRight);this.Canvas.strokeStyle=this.PenBorder;this.Canvas.beginPath();this.Canvas.moveTo(xLine,top);this.Canvas.lineTo(xLine,bottom);this.Canvas.stroke();if(IFrameSplitOperator.IsNonEmptyArray(this.YRightTextInfo.AryOverlayWidth)){this.Canvas.beginPath();for(var i=0;i<this.YRightTextInfo.AryOverlayWidth.length;++i){var width=this.YRightTextInfo.AryOverlayWidth[i];xRight+=width;xLine=ToFixedPoint(xRight);this.Canvas.moveTo(xLine,top);this.Canvas.lineTo(xLine,bottom);}this.Canvas.stroke();}}};//多行文字刻度输出 obj={ Data:, X:, Y:, TextBaseLine:, IsLeft:, Item:刻度数据 }
2401
+ {this.Canvas.textAlign="right";var xRight=this.YRightTextInfo.MainTextWidth+right-this.YTextPadding[1];this.Canvas.fillText(item.Message[1],xRight,yText+yOffset);}else{this.Canvas.fillText(item.Message[1],xText+this.YTextPadding[1],yText+yOffset);}rtPreRight=rtRight;}}}yPrev=y;}if(IFrameSplitOperator.IsNonEmptyArray(aryLeftMulitText)&&this.MultiTextFormat==1)this.DrawMultiCoordinateLeftText(aryLeftMulitText);if(IFrameSplitOperator.IsNonEmptyArray(aryMultiText)&&this.MultiTextFormat==1)this.DrawMultiCoordinateRightText(aryMultiText);if(isDrawRight&&this.IsDrawRightBorder&&this.YRightTextInfo){var xRight=this.YRightTextInfo.MainTextWidth+right;xLine=ToFixedPoint(xRight);this.Canvas.strokeStyle=this.PenBorder;this.Canvas.beginPath();this.Canvas.moveTo(xLine,top);this.Canvas.lineTo(xLine,bottom);this.Canvas.stroke();if(IFrameSplitOperator.IsNonEmptyArray(this.YRightTextInfo.AryOverlayWidth)){this.Canvas.beginPath();for(var i=0;i<this.YRightTextInfo.AryOverlayWidth.length;++i){var width=this.YRightTextInfo.AryOverlayWidth[i];xRight+=width;xLine=ToFixedPoint(xRight);this.Canvas.moveTo(xLine,top);this.Canvas.lineTo(xLine,bottom);}this.Canvas.stroke();}}};this.CreateMulitCoordinateItem=function(aryData,x,y,textBaseline,data){var coordinateItem={AryText:[],X:x,Y:y,TextBaseline:textBaseline,Item:data};for(var i=0;i<aryData.length;++i){var item=aryData[i];if(item.Font)this.Canvas.font=item.Font;var textWidth=0;if(item.Text)textWidth=this.Canvas.measureText(item.Text).width;coordinateItem.AryText.push({Width:textWidth,Item:item});}return coordinateItem;};this.GetMulitCoordinateItemTextWidth=function(aryData){var total=0;for(var i=0;i<aryData.length;++i){var item=aryData[i];if(item.Font)this.Canvas.font=item.Font;var width=this.Canvas.measureText(item.Text).width;total+=width;}return total;};//多行文字刻度输出 obj={ Data:, X:, Y:, TextBaseLine:, IsLeft:, Item:刻度数据 }
2401
2402
  this.DrawMultiLineText=function(obj){var lineSpacing=2;var lineHeight=this.Canvas.measureText('擎').width;var lineCount=obj.Data.length;var textHeight=lineHeight*lineCount+lineSpacing*(lineCount-1);var yText=obj.Y;if(obj.Item.Font!=null)this.Canvas.font=obj.Item.Font;if(obj.IsLeft){this.Canvas.textAlign="right";var xText=obj.X-obj.TextPadding;}else{this.Canvas.textAlign="left";var xText=obj.X+obj.TextPadding;}var textBaseline=this.Canvas.textBaseline;//备份下原来的对齐方式
2402
2403
  this.Canvas.textBaseline='top';if(obj.TextBaseLine==1)//middle
2403
2404
  {yText-=textHeight/2;}else if(obj.TextBaseLine==0)//top
2404
2405
  {}else if(obj.TextBaseLine==2)//bottom
2405
2406
  {yText-=textHeight;}for(var i=0;i<obj.Data.length;++i){var item=obj.Data[i];var text=item.Text;var backupTextColor=null;if(item.Color){backupTextColor=this.Canvas.fillStyle;this.Canvas.fillStyle=item.Color;}this.Canvas.fillText(text,xText,yText);yText+=lineHeight+lineSpacing;if(backupTextColor)this.Canvas.fillStyle=backupTextColor;}this.Canvas.textBaseline=textBaseline;//还原对齐方式
2406
2407
  };//上下区域是否重叠
2407
- this.IsTextTopBottomOverlap=function(rt,rt2){if(rt2.Top>=rt.Top&&rt2.Top<=rt.Bottom)return true;if(rt2.Bottom>=rt.Top&&rt2.Bottom<=rt.Bottom)return true;return false;};this.GetTextTopBottom=function(textBaseline,yText){var rtRight=null;var textHeight=this.Canvas.measureText('擎').width;if(textBaseline==0){rtRight={Top:yText,Bottom:yText+textHeight};}else if(textBaseline==1){rtRight={Top:yText-textHeight/2};rtRight.Bottom=rtRight.Top+textHeight;}else if(textBaseline==2){rtRight={Bottom:yText};rtRight.Top=rtRight.Bottom-textHeight;}return rtRight;};this.DrawHorizontalMuText=function(aryText){var maxWidth=[null,null];for(var i=0;i<aryText.length;++i){var item=aryText[i];var width=item.Text[0].Width;if(!IFrameSplitOperator.IsNumber(maxWidth[0]))maxWidth[0]=width;else if(maxWidth[0]<width)maxWidth[0]=width;width=item.Text[1].Width;if(!IFrameSplitOperator.IsNumber(maxWidth[1]))maxWidth[1]=width;else if(maxWidth[1]<width)maxWidth[1]=width;}for(var i=0;i<aryText.length;++i){var item=aryText[i];var message=item.Item;this.Canvas.textBaseline=item.TextBaseline;if(message.ExtendData&&message.ExtendData.Font)this.Canvas.font=message.ExtendData.Font;else if(message.Font)this.Canvas.font=message.Font;if(message.ExtendData&&message.ExtendData.PriceColor)this.Canvas.fillStyle=message.ExtendData.PriceColor;else this.Canvas.fillStyle=message.TextColor;this.Canvas.textAlign="right";var x=item.X+maxWidth[1];this.Canvas.fillText(item.Text[1].Text,x,item.Y);if(message.ExtendData&&message.ExtendData.SplitColor)this.Canvas.fillStyle=message.ExtendData.SplitColor;else this.Canvas.fillStyle=message.TextColor;this.Canvas.textAlign="left";var splitWidth=this.Canvas.measureText('/').width;this.Canvas.fillText('/',x,item.Y);if(message.ExtendData&&message.ExtendData.PercentageColor)this.Canvas.fillStyle=message.ExtendData.PercentageColor;else this.Canvas.fillStyle=message.TextColor;this.Canvas.textAlign="right";var x=item.X+maxWidth[1]+maxWidth[0]+splitWidth;this.Canvas.fillText(item.Text[0].Text,x,item.Y);var textWidth=maxWidth[1]+maxWidth[0]+splitWidth*4;if(this.RightTextMaxWidth<textWidth)this.RightTextMaxWidth=textWidth;}};//画Y轴Message[2,3]两个内部刻度
2408
+ this.IsTextTopBottomOverlap=function(rt,rt2){if(rt2.Top>=rt.Top&&rt2.Top<=rt.Bottom)return true;if(rt2.Bottom>=rt.Top&&rt2.Bottom<=rt.Bottom)return true;return false;};this.GetTextTopBottom=function(textBaseline,yText){var rtRight=null;var textHeight=this.Canvas.measureText('擎').width;if(textBaseline==0){rtRight={Top:yText,Bottom:yText+textHeight};}else if(textBaseline==1){rtRight={Top:yText-textHeight/2};rtRight.Bottom=rtRight.Top+textHeight;}else if(textBaseline==2){rtRight={Bottom:yText};rtRight.Top=rtRight.Bottom-textHeight;}return rtRight;};//绘制多重坐标刻度文字 左侧
2409
+ this.DrawMultiCoordinateLeftText=function(aryText){var aryMaxWidth=[];for(var i=0,j=0;i<aryText.length;++i){var item=aryText[i];for(var j=0;j<item.AryText.length;++j){var textItem=item.AryText[j];if(!IFrameSplitOperator.IsNumber(aryMaxWidth[j])||aryMaxWidth[j]<textItem.Width)aryMaxWidth[j]=textItem.Width;}}this.Canvas.textAlign="right";for(var i=0;i<aryText.length;++i){var item=aryText[i];var message=item.Item;var x=item.X;this.Canvas.textBaseline=item.TextBaseline;for(var j=0;j<item.AryText.length;++j){var textItem=item.AryText[j];var subText=textItem.Item;if(subText&&subText.Text){if(subText.Font)this.Canvas.font=subText.Font;//字体
2410
+ else if(message.Font)this.Canvas.font=message.Font;if(subText.Color)this.Canvas.fillStyle=subText.Color;//颜色
2411
+ else this.Canvas.fillStyle=message.TextColor;this.Canvas.fillText(subText.Text,x,item.Y);}x-=aryMaxWidth[j];}}};//绘制多重坐标刻度文字 右侧
2412
+ this.DrawMultiCoordinateRightText=function(aryText){var aryMaxWidth=[];for(var i=0,j=0;i<aryText.length;++i){var item=aryText[i];for(var j=0;j<item.AryText.length;++j){var textItem=item.AryText[j];if(!IFrameSplitOperator.IsNumber(aryMaxWidth[j])||aryMaxWidth[j]<textItem.Width)aryMaxWidth[j]=textItem.Width;}}this.Canvas.textAlign="right";for(var i=0;i<aryText.length;++i){var item=aryText[i];var message=item.Item;var x=item.X;this.Canvas.textBaseline=item.TextBaseline;for(var j=0;j<item.AryText.length;++j){var textItem=item.AryText[j];var subText=textItem.Item;if(subText&&subText.Text){if(subText.Font)this.Canvas.font=subText.Font;//字体
2413
+ else if(message.Font)this.Canvas.font=message.Font;if(subText.Color)this.Canvas.fillStyle=subText.Color;//颜色
2414
+ else this.Canvas.fillStyle=message.TextColor;x+=aryMaxWidth[j];this.Canvas.fillText(subText.Text,x,item.Y);}}}};//画Y轴Message[2,3]两个内部刻度
2408
2415
  this.DrawInsideClientHorizontal=function(){var border=this.GetBorder();if(border.DayBorder&&IFrameSplitOperator.IsNonEmptyArray(border.DayBorder)){var item=border.DayBorder[0];var left=item.LeftEx;var item=border.DayBorder[border.DayBorder.length-1];var right=item.RightEx;var bottom=border.Bottom;var top=border.TopTitle;}else{var left=border.LeftEx;var right=border.RightEx;var bottom=border.Bottom;var top=border.TopTitle;}var pixelTatio=GetDevicePixelRatio();var yPrev=null;//上一个坐标y的值
2409
2416
  var yInsideText=null;for(var i=this.HorizontalInfo.length-1;i>=0;--i)//从上往下画分割线
2410
2417
  {var item=this.HorizontalInfo[i];var y=this.GetYFromData(item.Value);if(y!=null&&yPrev!=null&&Math.abs(y-yPrev)<this.MinYDistance)continue;//两个坐标在近了 就不画了
@@ -2471,10 +2478,9 @@ this.Canvas.beginPath();if(this.IsHScreen){this.Canvas.moveTo(ToFixedPoint(y),le
2471
2478
  if(this.IsHScreen){var borderTop=this.ChartBorder.Top;var borderBottom=this.ChartBorder.Bottom;var isDrawLeft=borderTop>10*pixelTatio&&this.IsShowYText[0]===true&&this.YTextPosition[0]!=2;//var isDrawRight=borderBottom>10*pixelTatio && this.IsShowYText[1]===true && this.YTextPosition[1]!=2;
2472
2479
  var isDrawRight=this.IsShowRightHorizontal();}else{var borderRight=this.ChartBorder.Right;var borderLeft=this.ChartBorder.Left;var isDrawLeft=borderLeft>10&&this.IsShowYText[0]===true&&this.YTextPosition[0]!=2;//var isDrawRight=borderRight>10 && this.IsShowYText[1]===true && this.YTextPosition[1]!=2;
2473
2480
  var isDrawRight=this.IsShowRightHorizontal();}if(!isDrawRight&&!isDrawLeft)return null;var width={Left:null,Right:null};var rightExtendWidth=0;var isYPercentage=false;//是否是百分比坐标
2474
- if(this.YSplitOperator&&this.YSplitOperator.CoordinateType==1)isYPercentage=true;var leftExtendLineWidth=0;var rightExtendLineWidth=0;if(IFrameSplitOperator.IsNonEmptyArray(this.YLineExtend)){if(this.YLineExtend[0]&&this.YLineExtend[0].Width>1)leftExtendLineWidth=this.YLineExtend[0].Width;if(this.YLineExtend[1]&&this.YLineExtend[1].Width>1)rightExtendLineWidth=this.YLineExtend[1].Width;}for(var i=0;i<this.HorizontalInfo.length;++i){var textWidth=null;var item=this.HorizontalInfo[i];if(!item)continue;if(item.Font!=null)this.Canvas.font=item.Font;if(item.Message[0]!=null&&isDrawLeft){if(Array.isArray(item.Message[0])){textWidth=this.GetMulitTextMaxWidth(item.Message[0]);}else{textWidth=this.Canvas.measureText(item.Message[0]).width;}if(width.Left==null||width.Left<textWidth)width.Left=textWidth;//JSConsole.Chart.Log(`[ChartData::GetScaleTextWidth] ${item.Message[0]} ${textWidth}`);
2475
- }if(item.Message[1]!=null&&isDrawRight){if(item.Font!=null)this.Canvas.font=item.Font;if(Array.isArray(item.Message[1])){if(this.MultiTextFormat==1&&IFrameSplitOperator.IsNonEmptyArray(item.Message[1]))//显示1行 格式:价格/百分比
2476
- {if(item.ExtendData&&item.ExtendData.Font)this.Canvas.font=item.ExtendData.Font;var width1=this.Canvas.measureText(item.Message[1][0]).width;var width2=this.Canvas.measureText(item.Message[1][1]).width;var width3=this.Canvas.measureText('/').width;textWidth=width1+width3;if(rightExtendWidth<width2)rightExtendWidth=width2;//JSConsole.Chart.Log(`[ChartData::GetScaleTextWidth] ${item.Message[1][1]}/${item.Message[1][0]} ${textWidth}, ${rightExtendWidth}`);
2477
- }else if(this.MultiTextFormat==2)//显示2行
2481
+ if(this.YSplitOperator&&this.YSplitOperator.CoordinateType==1)isYPercentage=true;var leftExtendLineWidth=0;var rightExtendLineWidth=0;if(IFrameSplitOperator.IsNonEmptyArray(this.YLineExtend)){if(this.YLineExtend[0]&&this.YLineExtend[0].Width>1)leftExtendLineWidth=this.YLineExtend[0].Width;if(this.YLineExtend[1]&&this.YLineExtend[1].Width>1)rightExtendLineWidth=this.YLineExtend[1].Width;}for(var i=0;i<this.HorizontalInfo.length;++i){var textWidth=null;var item=this.HorizontalInfo[i];if(!item)continue;if(item.Font!=null)this.Canvas.font=item.Font;if(item.Message[0]!=null&&isDrawLeft){if(Array.isArray(item.Message[0])){if(this.MultiTextFormat==1)textWidth=this.GetMulitCoordinateItemTextWidth(item.Message[0]);else textWidth=this.GetMulitTextMaxWidth(item.Message[0]);}else{textWidth=this.Canvas.measureText(item.Message[0]).width;}if(width.Left==null||width.Left<textWidth)width.Left=textWidth;//JSConsole.Chart.Log(`[ChartData::GetScaleTextWidth] ${item.Message[0]} ${textWidth}`);
2482
+ }if(item.Message[1]!=null&&isDrawRight){if(item.Font!=null)this.Canvas.font=item.Font;if(Array.isArray(item.Message[1])){if(this.MultiTextFormat==1)//显示1行 格式:价格/百分比
2483
+ {textWidth=this.GetMulitCoordinateItemTextWidth(item.Message[1]);}else if(this.MultiTextFormat==2)//显示2行
2478
2484
  {textWidth=this.Canvas.measureText(item.Message[1][0]).width;var textWidth2=this.Canvas.measureText(item.Message[1][1]).width;if(textWidth<textWidth2)textWidth=textWidth2;}else if(this.MultiTextFormat==3){textWidth=this.GetMulitTextMaxWidth(item.Message[1]);}else//显示第1行
2479
2485
  {textWidth=this.Canvas.measureText(item.Message[1][0]).width;if(isYPercentage){var perTextWidth=this.Canvas.measureText("-00.00%").width;if(perTextWidth>textWidth)textWidth=perTextWidth;}}}else{textWidth=this.Canvas.measureText(item.Message[1]).width;}if(width.Right==null||width.Right<textWidth)width.Right=textWidth;}}if(IFrameSplitOperator.IsNumber(width.Right))width.Right+=rightExtendWidth;if(IFrameSplitOperator.IsNumber(width.Left))width.Left+=this.YTextPadding[0]+leftExtendLineWidth;if(IFrameSplitOperator.IsNumber(width.Right))width.Right+=this.YTextPadding[1]+rightExtendLineWidth;return{TextWidth:width};};this.ClearToolbar=function(){if(!this.ToolbarID)return;var divToolbar=document.getElementById(this.ToolbarID);if(!divToolbar)return;this.ChartBorder.UIElement.parentNode.removeChild(divToolbar);this.ToolbarRect=null;};this.HideToolbar=function(){if(!this.ToolbarID)return;this.ToolbarRect=null;var divToolbar=document.getElementById(this.ToolbarID);if(!divToolbar)return;if(divToolbar.style.display!='none')divToolbar.style.display='none';};this.GetMainOverlayFrame=function(){if(!this.FrameData||!this.FrameData.SubFrameItem)return null;var subFrame=this.FrameData.SubFrameItem;var leftFrame=null,rightFrame=null;for(var i=0;i<subFrame.OverlayIndex.length;++i){var item=subFrame.OverlayIndex[i];var overlayFrame=item.Frame;if(overlayFrame.IsShowMainFrame==2)rightFrame=overlayFrame;else if(overlayFrame.IsShowMainFrame==1)leftFrame=overlayFrame;}if(!leftFrame&&!rightFrame)return null;return[leftFrame,rightFrame];};}function MinuteFrame(){this.newMethod=AverageWidthFrame;//派生
2480
2486
  this.newMethod();delete this.newMethod;this.ClassName="MinuteFrame";this.DataWidth=1*GetDevicePixelRatio();this.DistanceWidth=1*GetDevicePixelRatio();this.MinuteCount=243;//每天的分钟个数
@@ -5497,7 +5503,7 @@ var width=this.Frame.ChartBorder.GetChartWidth();//画布的宽度
5497
5503
  var isPhoneModel=width<450*pixelTatio;JSConsole.Chart.Log('[FrameSplitMinutePriceY]'+'max='+max+' min='+min+' isPhoneModel='+isPhoneModel);var showCount=this.SplitCount;var distance=(max-min)/(showCount-1);var minDistance=[1,0.1,0.01,0.001,0.0001];var defaultfloatPrecision=GetfloatPrecision(this.Symbol);if(isPhoneModel&&MARKET_SUFFIX_NAME.IsSHSZIndex(this.Symbol))defaultfloatPrecision=0;//手机端指数不显示小数位数,太长了
5498
5504
  if(distance<minDistance[defaultfloatPrecision]&&!isFixedMaxMin){distance=minDistance[defaultfloatPrecision];max=this.YClose+distance*(showCount-1)/2;min=this.YClose-distance*(showCount-1)/2;}var aryCoordinate=[];var extendValue=distance*0.5;for(var price=this.YClose,i=0;price<=max+extendValue&&i<30;price+=distance,++i){var coordinate=new CoordinateInfo();coordinate.Value=price;this.FormatCoordinate(coordinate,defaultfloatPrecision);aryCoordinate.push(coordinate);}for(var price=this.YClose-distance,i=0;price>=min-extendValue&&i<30;price-=distance,++i){var coordinate=new CoordinateInfo();coordinate.Value=price;this.FormatCoordinate(coordinate,defaultfloatPrecision);aryCoordinate.push(coordinate);}aryCoordinate.sort(function(left,right){return left.Value-right.Value;});this.Frame.HorizontalInfo=aryCoordinate;this.Frame.HorizontalMax=max;this.Frame.HorizontalMin=min;};this.FormatCoordinate=function(coordinate,defaultfloatPrecision){var price=coordinate.Value;var strPrice=price.toFixed(defaultfloatPrecision);//价格刻度字符串
5499
5505
  if(this.IsShowLeftText)coordinate.Message[0]=strPrice;if(IFrameSplitOperator.IsNumber(this.YClose)&&this.YClose!=0){var per=(price/this.YClose-1)*100;if(per>0)coordinate.TextColor=g_JSChartResource.UpTextColor;else if(per<0)coordinate.TextColor=g_JSChartResource.DownTextColor;var strPer=IFrameSplitOperator.FormatValueString(per,2)+'%';if(this.IsShowRightText){if(this.RightTextFormat==1){coordinate.Message[1]=strPrice;}else if(this.RightTextFormat==2)//价格/百分比
5500
- {coordinate.Message[1]=[strPer,strPrice];}else{coordinate.Message[1]=strPer;//百分比
5506
+ {coordinate.Message[1]=[{Text:strPrice},{Text:"/"},{Text:strPer}];}else{coordinate.Message[1]=strPer;//百分比
5501
5507
  }}if(Math.abs(price-this.YClose)<0.00000000001)//小数有精度问题 使用差值
5502
5508
  {coordinate.LineType=2;//中间的线画虚线
5503
5509
  coordinate.TextColor=g_JSChartResource.UnchagneTextColor;if(g_JSChartResource.FrameDotSplitPen)coordinate.LineColor=g_JSChartResource.FrameDotSplitPen;}}};}function FrameSplitMinuteX(){this.newMethod=IFrameSplitOperator;//派生
@@ -12012,7 +12018,7 @@ var result=[];if(ChartData.IsDayPeriod(hqChart.Period,true))//日线
12012
12018
  var result=[];if(ChartData.IsDayPeriod(hqChart.Period,true))//日线
12013
12019
  {var bFill=false;for(var i=0,j=0;i<kData.Data.length;++i){result[i]=0;var kItem=kData.Data[i];var date=kItem.Date;for(j=0;j<data.length;++j){var rangeItem=data[j];if(date>=rangeItem.Start.Date&&date<=rangeItem.End.Date){result[i]=1;bFill=true;break;}}}if(bFill)return result;}else if(ChartData.IsMinutePeriod(hqChart.Period,true))//分钟线
12014
12020
  {var aryRange=[];for(var i=0;i<data.length;++i){var item=data[i];var startDatetime=item.Start.Date*10000;if(IFrameSplitOperator.IsNumber(item.Start.Time))startDatetime+=item.Start.Time;var endDatetime=item.End.Date*10000;if(IFrameSplitOperator.IsNumber(item.End.Time))endDatetime+=item.End.Time;aryRange.push({Start:startDatetime,End:endDatetime});}var bFill=false;for(var i=0,j=0;i<kData.Data.length;++i){result[i]=0;var kItem=kData.Data[i];var date=kItem.Date*10000+kItem.Time;for(j=0;j<aryRange.length;++j){var rangeItem=aryRange[j];if(date>=rangeItem.Start&&date<=rangeItem.End){result[i]=1;bFill=true;break;}}}if(bFill)return result;}return null;};this.FittingMinuteData=function(jsonData,hqChart){var outVar=jsonData.outvar;var date=jsonData.date;var time=jsonData.time;var result=[];for(var i=0;i<outVar.length;++i){var item=outVar[i];var outVarItem={Name:item.name,Type:item.type};if(IFrameSplitOperator.IsBool(item.IsShowTitle))outVarItem.IsShowTitle=item.IsShowTitle;//是否显示指标标题
12015
- if(item.data){outVarItem.Data=this.FittingMinuteArray(item.data,date,time,hqChart);if(item.color)outVarItem.Color=item.color;if(item.linewidth>=1)outVarItem.LineWidth=item.linewidth;if(item.isshow==false)outVarItem.IsShow=false;if(item.isexdata==true)outVarItem.IsExData=true;if(item.BreakPoint)outVarItem.BreakPoint=item.BreakPoint;if(item.UpColor)outVarItem.UpColor=item.UpColor;if(item.DownColor)outVarItem.DownColor=item.DownColor;if(IFrameSplitOperator.IsBool(item.isDotLine))outVarItem.IsDotLine=item.isDotLine;if(IFrameSplitOperator.IsNonEmptyArray(item.lineDash))outVarItem.LineDash=item.lineDash;if(IFrameSplitOperator.IsBool(item.isSingleLine))outVarItem.IsSingleLine=item.isSingleLine;if(IFrameSplitOperator.IsNonEmptyArray(item.AryBreakPoint))outVarItem.AryBreakPoint=item.AryBreakPoint;result.push(outVarItem);}else if(item.Draw){var draw=item.Draw;var drawItem={};if(draw.DrawType=='DRAWICON')//图标
12021
+ if(item.data){outVarItem.Data=this.FittingMinuteArray(item.data,date,time,hqChart);if(item.color)outVarItem.Color=item.color;if(item.linewidth)outVarItem.LineWidth=item.linewidth;if(item.isshow==false)outVarItem.IsShow=false;if(item.isexdata==true)outVarItem.IsExData=true;if(item.BreakPoint)outVarItem.BreakPoint=item.BreakPoint;if(item.UpColor)outVarItem.UpColor=item.UpColor;if(item.DownColor)outVarItem.DownColor=item.DownColor;if(IFrameSplitOperator.IsBool(item.isDotLine))outVarItem.IsDotLine=item.isDotLine;if(IFrameSplitOperator.IsNonEmptyArray(item.lineDash))outVarItem.LineDash=item.lineDash;if(IFrameSplitOperator.IsBool(item.isSingleLine))outVarItem.IsSingleLine=item.isSingleLine;if(IFrameSplitOperator.IsNonEmptyArray(item.AryBreakPoint))outVarItem.AryBreakPoint=item.AryBreakPoint;result.push(outVarItem);}else if(item.Draw){var draw=item.Draw;var drawItem={};if(draw.DrawType=='DRAWICON')//图标
12016
12022
  {drawItem.Icon=draw.Icon;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMinuteArray(draw.DrawData,date,time,hqChart);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='DRAWTEXT')//文本
12017
12023
  {drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMinuteArray(draw.DrawData,date,time,hqChart);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='STICKLINE')//柱子
12018
12024
  {drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.Width=draw.Width;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingMinuteArray(draw.DrawData,date,time,hqChart,1);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.DrawData=this.FittingMinuteArray(draw.DrawData,date,time,hqChart,1);outVarItem.Draw=drawItem;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.FittingMinuteArray(draw.Data,date,time,hqChart);outVarItem.Draw=drawItem;if(draw.Option)outVarItem.Option=draw.Option;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);for(var k in drawItem.DrawData){this.GetKLineData(drawItem.DrawData[k].Point,hqChart);}outVarItem.Draw=drawItem;if(draw.LineDash)drawItem.LineDash=draw.LineDash;if(draw.Arrow)drawItem.Arrow=draw.Arrow;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_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
@@ -14322,7 +14328,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
14322
14328
  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);};}/********************************************************************************
14323
14329
  * 版本信息输出
14324
14330
  *
14325
- */var HQCHART_VERSION="1.1.14407";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();//把给外界调用的方法暴露出来
14331
+ */var HQCHART_VERSION="1.1.14410";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();//把给外界调用的方法暴露出来
14326
14332
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
14327
14333
  // BaseIndex:BaseIndex,
14328
14334
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.14408",
3
+ "version": "1.1.14412",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -25470,7 +25470,7 @@ function APIScriptIndex(name,script,args,option, isOverlay)
25470
25470
  {
25471
25471
  outVarItem.Data=this.FittingMinuteArray(item.data,date,time,hqChart);
25472
25472
  if (item.color) outVarItem.Color=item.color;
25473
- if (item.linewidth>=1) outVarItem.LineWidth=item.linewidth;
25473
+ if (item.linewidth) outVarItem.LineWidth=item.linewidth;
25474
25474
  if (item.isshow==false) outVarItem.IsShow = false;
25475
25475
  if (item.isexdata==true) outVarItem.IsExData = true;
25476
25476
  if (item.BreakPoint) outVarItem.BreakPoint=item.BreakPoint;
@@ -11712,7 +11712,7 @@ function AverageWidthFrame()
11712
11712
  this.IsShowYLine=true;
11713
11713
  this.YInsideOffset=0;
11714
11714
  this.YTextBaseline=0; //0=居中 1=上部 (目前就支持内部刻度)
11715
- this.MultiTextFormat=0; //多行刻度信息显示模式 0=显示第1行 1=价格/百分比 2=显示2行
11715
+ this.MultiTextFormat=0; //多行刻度信息显示模式 0=显示第1行 1=单行多个文本 2=显示2行
11716
11716
  this.RightTextMaxWidth=0;
11717
11717
 
11718
11718
  this.ShortYLineLength=5;
@@ -12047,6 +12047,7 @@ function AverageWidthFrame()
12047
12047
  var pixelRatio=GetDevicePixelRatio();
12048
12048
  var itemHeight=(border.BottomEx-border.TopEx)/this.HorizontalInfo.length;
12049
12049
  var aryMultiText=[];
12050
+ var aryLeftMulitText=[];
12050
12051
  var rtPreRight, rtRight, rtLeft, rtPreLeft;
12051
12052
  var textBaseline=0; //0=上 1=中 2=下
12052
12053
  for(var i=this.HorizontalInfo.length-1; i>=0; --i) //从上往下画分割线
@@ -12153,7 +12154,12 @@ function AverageWidthFrame()
12153
12154
 
12154
12155
  if (Array.isArray(item.Message[0]))
12155
12156
  {
12156
- if (this.MultiTextFormat==3)
12157
+ if (this.MultiTextFormat==1) //显示1行 格式如:价格/百分比
12158
+ {
12159
+ var textData=this.CreateMulitCoordinateItem(item.Message[0], left-2, yText, this.Canvas.textBaseline, item);
12160
+ aryLeftMulitText.push(textData);
12161
+ }
12162
+ else if (this.MultiTextFormat==3)
12157
12163
  {
12158
12164
  var obj={ Data:item.Message[0], X:left, Y:yText, TextBaseLine:textBaseline, IsLeft:true, Item:item, TextPadding:this.YTextPadding[0] };
12159
12165
  this.DrawMultiLineText(obj);
@@ -12239,25 +12245,9 @@ function AverageWidthFrame()
12239
12245
  this.Canvas.textAlign="left";
12240
12246
  if (Array.isArray(item.Message[1]))
12241
12247
  {
12242
- if (this.MultiTextFormat==1) //显示1行 格式:价格/百分比
12248
+ if (this.MultiTextFormat==1) //显示1行 格式如:价格/百分比
12243
12249
  {
12244
- if (item.ExtendData)
12245
- {
12246
- if (item.ExtendData.Font) this.Canvas.font=item.ExtendData.Font;
12247
- }
12248
-
12249
- var textData=
12250
- {
12251
- Text:
12252
- [
12253
- {Text:item.Message[1][0], Width:this.Canvas.measureText(item.Message[1][0]).width },
12254
- {Text:item.Message[1][1], Width:this.Canvas.measureText(item.Message[1][1]).width }
12255
- ],
12256
- X:xText+2,
12257
- Y:yText,
12258
- TextBaseline:this.Canvas.textBaseline,
12259
- Item:item
12260
- }
12250
+ var textData=this.CreateMulitCoordinateItem(item.Message[1], xText+2, yText, this.Canvas.textBaseline, item);
12261
12251
  aryMultiText.push(textData);
12262
12252
  }
12263
12253
  else if (this.MultiTextFormat==2) //显示2行
@@ -12314,7 +12304,9 @@ function AverageWidthFrame()
12314
12304
  yPrev=y;
12315
12305
  }
12316
12306
 
12317
- if (IFrameSplitOperator.IsNonEmptyArray(aryMultiText) && this.MultiTextFormat==1) this.DrawHorizontalMuText(aryMultiText);
12307
+ if (IFrameSplitOperator.IsNonEmptyArray(aryLeftMulitText) && this.MultiTextFormat==1) this.DrawMultiCoordinateLeftText(aryLeftMulitText);
12308
+ if (IFrameSplitOperator.IsNonEmptyArray(aryMultiText) && this.MultiTextFormat==1) this.DrawMultiCoordinateRightText(aryMultiText);
12309
+
12318
12310
 
12319
12311
  if (isDrawRight && this.IsDrawRightBorder && this.YRightTextInfo)
12320
12312
  {
@@ -12343,6 +12335,41 @@ function AverageWidthFrame()
12343
12335
  }
12344
12336
  }
12345
12337
 
12338
+ this.CreateMulitCoordinateItem=function(aryData, x, y, textBaseline, data)
12339
+ {
12340
+ var coordinateItem=
12341
+ {
12342
+ AryText:[], X:x,Y:y, TextBaseline:textBaseline, Item:data
12343
+ };
12344
+
12345
+ for(var i=0;i<aryData.length;++i)
12346
+ {
12347
+ var item=aryData[i];
12348
+ if (item.Font) this.Canvas.font=item.Font;
12349
+ var textWidth=0;
12350
+ if (item.Text) textWidth=this.Canvas.measureText(item.Text).width;
12351
+
12352
+ coordinateItem.AryText.push({ Width:textWidth, Item:item });
12353
+ }
12354
+
12355
+ return coordinateItem;
12356
+ }
12357
+
12358
+ this.GetMulitCoordinateItemTextWidth=function(aryData)
12359
+ {
12360
+ var total=0;
12361
+ for(var i=0;i<aryData.length;++i)
12362
+ {
12363
+ var item=aryData[i];
12364
+ if (item.Font) this.Canvas.font=item.Font;
12365
+ var width=this.Canvas.measureText(item.Text).width;
12366
+
12367
+ total+=width;
12368
+ }
12369
+
12370
+ return total;
12371
+ }
12372
+
12346
12373
  //多行文字刻度输出 obj={ Data:, X:, Y:, TextBaseLine:, IsLeft:, Item:刻度数据 }
12347
12374
  this.DrawMultiLineText=function(obj)
12348
12375
  {
@@ -12433,53 +12460,86 @@ function AverageWidthFrame()
12433
12460
  return rtRight;
12434
12461
  }
12435
12462
 
12436
- this.DrawHorizontalMuText=function(aryText)
12463
+ //绘制多重坐标刻度文字 左侧
12464
+ this.DrawMultiCoordinateLeftText=function(aryText)
12437
12465
  {
12438
- var maxWidth=[null,null];
12439
- for(var i=0;i<aryText.length;++i)
12466
+ var aryMaxWidth=[];
12467
+ for(var i=0, j=0;i<aryText.length;++i)
12440
12468
  {
12441
12469
  var item=aryText[i];
12442
- var width=item.Text[0].Width;
12443
- if (!IFrameSplitOperator.IsNumber(maxWidth[0])) maxWidth[0]=width;
12444
- else if (maxWidth[0]<width) maxWidth[0]=width;
12445
-
12446
- width=item.Text[1].Width;
12447
- if (!IFrameSplitOperator.IsNumber(maxWidth[1])) maxWidth[1]=width;
12448
- else if (maxWidth[1]<width) maxWidth[1]=width;
12470
+ for(var j=0;j<item.AryText.length;++j)
12471
+ {
12472
+ var textItem=item.AryText[j];
12473
+ if (!IFrameSplitOperator.IsNumber(aryMaxWidth[j]) || aryMaxWidth[j]<textItem.Width) aryMaxWidth[j]=textItem.Width;
12474
+ }
12475
+
12449
12476
  }
12450
12477
 
12478
+ this.Canvas.textAlign="right";
12451
12479
  for(var i=0;i<aryText.length;++i)
12452
12480
  {
12453
12481
  var item=aryText[i];
12454
12482
  var message=item.Item;
12455
-
12483
+ var x=item.X;
12456
12484
  this.Canvas.textBaseline=item.TextBaseline;
12457
- if (message.ExtendData && message.ExtendData.Font) this.Canvas.font=message.ExtendData.Font;
12458
- else if (message.Font) this.Canvas.font=message.Font;
12459
-
12460
- if (message.ExtendData && message.ExtendData.PriceColor) this.Canvas.fillStyle=message.ExtendData.PriceColor;
12461
- else this.Canvas.fillStyle=message.TextColor;
12485
+ for(var j=0;j<item.AryText.length;++j)
12486
+ {
12487
+ var textItem=item.AryText[j];
12488
+ var subText=textItem.Item;
12489
+ if (subText && subText.Text)
12490
+ {
12491
+ if (subText.Font) this.Canvas.font=subText.Font; //字体
12492
+ else if (message.Font) this.Canvas.font=message.Font;
12493
+
12494
+ if (subText.Color) this.Canvas.fillStyle=subText.Color; //颜色
12495
+ else this.Canvas.fillStyle=message.TextColor;
12462
12496
 
12463
- this.Canvas.textAlign="right";
12464
- var x=item.X+maxWidth[1];
12465
- this.Canvas.fillText(item.Text[1].Text,x,item.Y);
12497
+ this.Canvas.fillText(subText.Text,x,item.Y);
12498
+ }
12466
12499
 
12467
- if (message.ExtendData && message.ExtendData.SplitColor) this.Canvas.fillStyle=message.ExtendData.SplitColor;
12468
- else this.Canvas.fillStyle=message.TextColor;
12500
+ x-=aryMaxWidth[j];
12501
+ }
12502
+ }
12503
+ }
12469
12504
 
12470
- this.Canvas.textAlign="left";
12471
- var splitWidth=this.Canvas.measureText('/').width;
12472
- this.Canvas.fillText('/',x,item.Y);
12505
+ //绘制多重坐标刻度文字 右侧
12506
+ this.DrawMultiCoordinateRightText=function(aryText)
12507
+ {
12508
+ var aryMaxWidth=[];
12509
+ for(var i=0, j=0;i<aryText.length;++i)
12510
+ {
12511
+ var item=aryText[i];
12512
+ for(var j=0;j<item.AryText.length;++j)
12513
+ {
12514
+ var textItem=item.AryText[j];
12515
+ if (!IFrameSplitOperator.IsNumber(aryMaxWidth[j]) || aryMaxWidth[j]<textItem.Width) aryMaxWidth[j]=textItem.Width;
12516
+ }
12473
12517
 
12474
- if (message.ExtendData && message.ExtendData.PercentageColor) this.Canvas.fillStyle=message.ExtendData.PercentageColor;
12475
- else this.Canvas.fillStyle=message.TextColor;
12518
+ }
12476
12519
 
12477
- this.Canvas.textAlign="right";
12478
- var x=item.X+maxWidth[1]+maxWidth[0]+splitWidth;
12479
- this.Canvas.fillText(item.Text[0].Text,x,item.Y);
12520
+ this.Canvas.textAlign="right";
12521
+ for(var i=0;i<aryText.length;++i)
12522
+ {
12523
+ var item=aryText[i];
12524
+ var message=item.Item;
12525
+ var x=item.X;
12526
+ this.Canvas.textBaseline=item.TextBaseline;
12527
+ for(var j=0;j<item.AryText.length;++j)
12528
+ {
12529
+ var textItem=item.AryText[j];
12530
+ var subText=textItem.Item;
12531
+ if (subText && subText.Text)
12532
+ {
12533
+ if (subText.Font) this.Canvas.font=subText.Font; //字体
12534
+ else if (message.Font) this.Canvas.font=message.Font;
12535
+
12536
+ if (subText.Color) this.Canvas.fillStyle=subText.Color; //颜色
12537
+ else this.Canvas.fillStyle=message.TextColor;
12480
12538
 
12481
- var textWidth=maxWidth[1]+maxWidth[0]+splitWidth*4;
12482
- if (this.RightTextMaxWidth<textWidth) this.RightTextMaxWidth=textWidth;
12539
+ x+=aryMaxWidth[j];
12540
+ this.Canvas.fillText(subText.Text,x,item.Y);
12541
+ }
12542
+ }
12483
12543
  }
12484
12544
  }
12485
12545
 
@@ -14057,7 +14117,8 @@ function AverageWidthFrame()
14057
14117
  {
14058
14118
  if (Array.isArray(item.Message[0]))
14059
14119
  {
14060
- textWidth=this.GetMulitTextMaxWidth(item.Message[0]);
14120
+ if (this.MultiTextFormat==1) textWidth=this.GetMulitCoordinateItemTextWidth(item.Message[0]);
14121
+ else textWidth=this.GetMulitTextMaxWidth(item.Message[0]);
14061
14122
  }
14062
14123
  else
14063
14124
  {
@@ -14076,17 +14137,9 @@ function AverageWidthFrame()
14076
14137
 
14077
14138
  if (Array.isArray(item.Message[1]))
14078
14139
  {
14079
- if (this.MultiTextFormat==1 && IFrameSplitOperator.IsNonEmptyArray(item.Message[1])) //显示1行 格式:价格/百分比
14140
+ if (this.MultiTextFormat==1) //显示1行 格式:价格/百分比
14080
14141
  {
14081
- if (item.ExtendData && item.ExtendData.Font) this.Canvas.font=item.ExtendData.Font;
14082
-
14083
- var width1=this.Canvas.measureText(item.Message[1][0]).width;
14084
- var width2=this.Canvas.measureText(item.Message[1][1]).width;
14085
- var width3=this.Canvas.measureText('/').width;
14086
- textWidth=width1+width3;
14087
- if (rightExtendWidth<width2) rightExtendWidth=width2;
14088
-
14089
- //JSConsole.Chart.Log(`[ChartData::GetScaleTextWidth] ${item.Message[1][1]}/${item.Message[1][0]} ${textWidth}, ${rightExtendWidth}`);
14142
+ textWidth=this.GetMulitCoordinateItemTextWidth(item.Message[1]);
14090
14143
  }
14091
14144
  else if (this.MultiTextFormat==2) //显示2行
14092
14145
  {
@@ -52907,7 +52960,7 @@ function FrameSplitMinutePriceY()
52907
52960
  }
52908
52961
  else if (this.RightTextFormat==2) //价格/百分比
52909
52962
  {
52910
- coordinate.Message[1]=[strPer,strPrice];
52963
+ coordinate.Message[1]=[ {Text:strPrice}, {Text:"/"}, { Text:strPer} ];
52911
52964
  }
52912
52965
  else
52913
52966
  {
@@ -15637,7 +15637,7 @@ function AverageWidthFrame()
15637
15637
  this.IsShowYLine=true;
15638
15638
  this.YInsideOffset=0;
15639
15639
  this.YTextBaseline=0; //0=居中 1=上部 (目前就支持内部刻度)
15640
- this.MultiTextFormat=0; //多行刻度信息显示模式 0=显示第1行 1=价格/百分比 2=显示2行
15640
+ this.MultiTextFormat=0; //多行刻度信息显示模式 0=显示第1行 1=单行多个文本 2=显示2行
15641
15641
  this.RightTextMaxWidth=0;
15642
15642
 
15643
15643
  this.ShortYLineLength=5;
@@ -15972,6 +15972,7 @@ function AverageWidthFrame()
15972
15972
  var pixelRatio=GetDevicePixelRatio();
15973
15973
  var itemHeight=(border.BottomEx-border.TopEx)/this.HorizontalInfo.length;
15974
15974
  var aryMultiText=[];
15975
+ var aryLeftMulitText=[];
15975
15976
  var rtPreRight, rtRight, rtLeft, rtPreLeft;
15976
15977
  var textBaseline=0; //0=上 1=中 2=下
15977
15978
  for(var i=this.HorizontalInfo.length-1; i>=0; --i) //从上往下画分割线
@@ -16078,7 +16079,12 @@ function AverageWidthFrame()
16078
16079
 
16079
16080
  if (Array.isArray(item.Message[0]))
16080
16081
  {
16081
- if (this.MultiTextFormat==3)
16082
+ if (this.MultiTextFormat==1) //显示1行 格式如:价格/百分比
16083
+ {
16084
+ var textData=this.CreateMulitCoordinateItem(item.Message[0], left-2, yText, this.Canvas.textBaseline, item);
16085
+ aryLeftMulitText.push(textData);
16086
+ }
16087
+ else if (this.MultiTextFormat==3)
16082
16088
  {
16083
16089
  var obj={ Data:item.Message[0], X:left, Y:yText, TextBaseLine:textBaseline, IsLeft:true, Item:item, TextPadding:this.YTextPadding[0] };
16084
16090
  this.DrawMultiLineText(obj);
@@ -16164,25 +16170,9 @@ function AverageWidthFrame()
16164
16170
  this.Canvas.textAlign="left";
16165
16171
  if (Array.isArray(item.Message[1]))
16166
16172
  {
16167
- if (this.MultiTextFormat==1) //显示1行 格式:价格/百分比
16173
+ if (this.MultiTextFormat==1) //显示1行 格式如:价格/百分比
16168
16174
  {
16169
- if (item.ExtendData)
16170
- {
16171
- if (item.ExtendData.Font) this.Canvas.font=item.ExtendData.Font;
16172
- }
16173
-
16174
- var textData=
16175
- {
16176
- Text:
16177
- [
16178
- {Text:item.Message[1][0], Width:this.Canvas.measureText(item.Message[1][0]).width },
16179
- {Text:item.Message[1][1], Width:this.Canvas.measureText(item.Message[1][1]).width }
16180
- ],
16181
- X:xText+2,
16182
- Y:yText,
16183
- TextBaseline:this.Canvas.textBaseline,
16184
- Item:item
16185
- }
16175
+ var textData=this.CreateMulitCoordinateItem(item.Message[1], xText+2, yText, this.Canvas.textBaseline, item);
16186
16176
  aryMultiText.push(textData);
16187
16177
  }
16188
16178
  else if (this.MultiTextFormat==2) //显示2行
@@ -16239,7 +16229,9 @@ function AverageWidthFrame()
16239
16229
  yPrev=y;
16240
16230
  }
16241
16231
 
16242
- if (IFrameSplitOperator.IsNonEmptyArray(aryMultiText) && this.MultiTextFormat==1) this.DrawHorizontalMuText(aryMultiText);
16232
+ if (IFrameSplitOperator.IsNonEmptyArray(aryLeftMulitText) && this.MultiTextFormat==1) this.DrawMultiCoordinateLeftText(aryLeftMulitText);
16233
+ if (IFrameSplitOperator.IsNonEmptyArray(aryMultiText) && this.MultiTextFormat==1) this.DrawMultiCoordinateRightText(aryMultiText);
16234
+
16243
16235
 
16244
16236
  if (isDrawRight && this.IsDrawRightBorder && this.YRightTextInfo)
16245
16237
  {
@@ -16268,6 +16260,41 @@ function AverageWidthFrame()
16268
16260
  }
16269
16261
  }
16270
16262
 
16263
+ this.CreateMulitCoordinateItem=function(aryData, x, y, textBaseline, data)
16264
+ {
16265
+ var coordinateItem=
16266
+ {
16267
+ AryText:[], X:x,Y:y, TextBaseline:textBaseline, Item:data
16268
+ };
16269
+
16270
+ for(var i=0;i<aryData.length;++i)
16271
+ {
16272
+ var item=aryData[i];
16273
+ if (item.Font) this.Canvas.font=item.Font;
16274
+ var textWidth=0;
16275
+ if (item.Text) textWidth=this.Canvas.measureText(item.Text).width;
16276
+
16277
+ coordinateItem.AryText.push({ Width:textWidth, Item:item });
16278
+ }
16279
+
16280
+ return coordinateItem;
16281
+ }
16282
+
16283
+ this.GetMulitCoordinateItemTextWidth=function(aryData)
16284
+ {
16285
+ var total=0;
16286
+ for(var i=0;i<aryData.length;++i)
16287
+ {
16288
+ var item=aryData[i];
16289
+ if (item.Font) this.Canvas.font=item.Font;
16290
+ var width=this.Canvas.measureText(item.Text).width;
16291
+
16292
+ total+=width;
16293
+ }
16294
+
16295
+ return total;
16296
+ }
16297
+
16271
16298
  //多行文字刻度输出 obj={ Data:, X:, Y:, TextBaseLine:, IsLeft:, Item:刻度数据 }
16272
16299
  this.DrawMultiLineText=function(obj)
16273
16300
  {
@@ -16358,53 +16385,86 @@ function AverageWidthFrame()
16358
16385
  return rtRight;
16359
16386
  }
16360
16387
 
16361
- this.DrawHorizontalMuText=function(aryText)
16388
+ //绘制多重坐标刻度文字 左侧
16389
+ this.DrawMultiCoordinateLeftText=function(aryText)
16362
16390
  {
16363
- var maxWidth=[null,null];
16364
- for(var i=0;i<aryText.length;++i)
16391
+ var aryMaxWidth=[];
16392
+ for(var i=0, j=0;i<aryText.length;++i)
16365
16393
  {
16366
16394
  var item=aryText[i];
16367
- var width=item.Text[0].Width;
16368
- if (!IFrameSplitOperator.IsNumber(maxWidth[0])) maxWidth[0]=width;
16369
- else if (maxWidth[0]<width) maxWidth[0]=width;
16370
-
16371
- width=item.Text[1].Width;
16372
- if (!IFrameSplitOperator.IsNumber(maxWidth[1])) maxWidth[1]=width;
16373
- else if (maxWidth[1]<width) maxWidth[1]=width;
16395
+ for(var j=0;j<item.AryText.length;++j)
16396
+ {
16397
+ var textItem=item.AryText[j];
16398
+ if (!IFrameSplitOperator.IsNumber(aryMaxWidth[j]) || aryMaxWidth[j]<textItem.Width) aryMaxWidth[j]=textItem.Width;
16399
+ }
16400
+
16374
16401
  }
16375
16402
 
16403
+ this.Canvas.textAlign="right";
16376
16404
  for(var i=0;i<aryText.length;++i)
16377
16405
  {
16378
16406
  var item=aryText[i];
16379
16407
  var message=item.Item;
16380
-
16408
+ var x=item.X;
16381
16409
  this.Canvas.textBaseline=item.TextBaseline;
16382
- if (message.ExtendData && message.ExtendData.Font) this.Canvas.font=message.ExtendData.Font;
16383
- else if (message.Font) this.Canvas.font=message.Font;
16384
-
16385
- if (message.ExtendData && message.ExtendData.PriceColor) this.Canvas.fillStyle=message.ExtendData.PriceColor;
16386
- else this.Canvas.fillStyle=message.TextColor;
16410
+ for(var j=0;j<item.AryText.length;++j)
16411
+ {
16412
+ var textItem=item.AryText[j];
16413
+ var subText=textItem.Item;
16414
+ if (subText && subText.Text)
16415
+ {
16416
+ if (subText.Font) this.Canvas.font=subText.Font; //字体
16417
+ else if (message.Font) this.Canvas.font=message.Font;
16418
+
16419
+ if (subText.Color) this.Canvas.fillStyle=subText.Color; //颜色
16420
+ else this.Canvas.fillStyle=message.TextColor;
16387
16421
 
16388
- this.Canvas.textAlign="right";
16389
- var x=item.X+maxWidth[1];
16390
- this.Canvas.fillText(item.Text[1].Text,x,item.Y);
16422
+ this.Canvas.fillText(subText.Text,x,item.Y);
16423
+ }
16391
16424
 
16392
- if (message.ExtendData && message.ExtendData.SplitColor) this.Canvas.fillStyle=message.ExtendData.SplitColor;
16393
- else this.Canvas.fillStyle=message.TextColor;
16425
+ x-=aryMaxWidth[j];
16426
+ }
16427
+ }
16428
+ }
16394
16429
 
16395
- this.Canvas.textAlign="left";
16396
- var splitWidth=this.Canvas.measureText('/').width;
16397
- this.Canvas.fillText('/',x,item.Y);
16430
+ //绘制多重坐标刻度文字 右侧
16431
+ this.DrawMultiCoordinateRightText=function(aryText)
16432
+ {
16433
+ var aryMaxWidth=[];
16434
+ for(var i=0, j=0;i<aryText.length;++i)
16435
+ {
16436
+ var item=aryText[i];
16437
+ for(var j=0;j<item.AryText.length;++j)
16438
+ {
16439
+ var textItem=item.AryText[j];
16440
+ if (!IFrameSplitOperator.IsNumber(aryMaxWidth[j]) || aryMaxWidth[j]<textItem.Width) aryMaxWidth[j]=textItem.Width;
16441
+ }
16398
16442
 
16399
- if (message.ExtendData && message.ExtendData.PercentageColor) this.Canvas.fillStyle=message.ExtendData.PercentageColor;
16400
- else this.Canvas.fillStyle=message.TextColor;
16443
+ }
16401
16444
 
16402
- this.Canvas.textAlign="right";
16403
- var x=item.X+maxWidth[1]+maxWidth[0]+splitWidth;
16404
- this.Canvas.fillText(item.Text[0].Text,x,item.Y);
16445
+ this.Canvas.textAlign="right";
16446
+ for(var i=0;i<aryText.length;++i)
16447
+ {
16448
+ var item=aryText[i];
16449
+ var message=item.Item;
16450
+ var x=item.X;
16451
+ this.Canvas.textBaseline=item.TextBaseline;
16452
+ for(var j=0;j<item.AryText.length;++j)
16453
+ {
16454
+ var textItem=item.AryText[j];
16455
+ var subText=textItem.Item;
16456
+ if (subText && subText.Text)
16457
+ {
16458
+ if (subText.Font) this.Canvas.font=subText.Font; //字体
16459
+ else if (message.Font) this.Canvas.font=message.Font;
16460
+
16461
+ if (subText.Color) this.Canvas.fillStyle=subText.Color; //颜色
16462
+ else this.Canvas.fillStyle=message.TextColor;
16405
16463
 
16406
- var textWidth=maxWidth[1]+maxWidth[0]+splitWidth*4;
16407
- if (this.RightTextMaxWidth<textWidth) this.RightTextMaxWidth=textWidth;
16464
+ x+=aryMaxWidth[j];
16465
+ this.Canvas.fillText(subText.Text,x,item.Y);
16466
+ }
16467
+ }
16408
16468
  }
16409
16469
  }
16410
16470
 
@@ -17982,7 +18042,8 @@ function AverageWidthFrame()
17982
18042
  {
17983
18043
  if (Array.isArray(item.Message[0]))
17984
18044
  {
17985
- textWidth=this.GetMulitTextMaxWidth(item.Message[0]);
18045
+ if (this.MultiTextFormat==1) textWidth=this.GetMulitCoordinateItemTextWidth(item.Message[0]);
18046
+ else textWidth=this.GetMulitTextMaxWidth(item.Message[0]);
17986
18047
  }
17987
18048
  else
17988
18049
  {
@@ -18001,17 +18062,9 @@ function AverageWidthFrame()
18001
18062
 
18002
18063
  if (Array.isArray(item.Message[1]))
18003
18064
  {
18004
- if (this.MultiTextFormat==1 && IFrameSplitOperator.IsNonEmptyArray(item.Message[1])) //显示1行 格式:价格/百分比
18065
+ if (this.MultiTextFormat==1) //显示1行 格式:价格/百分比
18005
18066
  {
18006
- if (item.ExtendData && item.ExtendData.Font) this.Canvas.font=item.ExtendData.Font;
18007
-
18008
- var width1=this.Canvas.measureText(item.Message[1][0]).width;
18009
- var width2=this.Canvas.measureText(item.Message[1][1]).width;
18010
- var width3=this.Canvas.measureText('/').width;
18011
- textWidth=width1+width3;
18012
- if (rightExtendWidth<width2) rightExtendWidth=width2;
18013
-
18014
- //JSConsole.Chart.Log(`[ChartData::GetScaleTextWidth] ${item.Message[1][1]}/${item.Message[1][0]} ${textWidth}, ${rightExtendWidth}`);
18067
+ textWidth=this.GetMulitCoordinateItemTextWidth(item.Message[1]);
18015
18068
  }
18016
18069
  else if (this.MultiTextFormat==2) //显示2行
18017
18070
  {
@@ -56832,7 +56885,7 @@ function FrameSplitMinutePriceY()
56832
56885
  }
56833
56886
  else if (this.RightTextFormat==2) //价格/百分比
56834
56887
  {
56835
- coordinate.Message[1]=[strPer,strPrice];
56888
+ coordinate.Message[1]=[ {Text:strPrice}, {Text:"/"}, { Text:strPer} ];
56836
56889
  }
56837
56890
  else
56838
56891
  {
@@ -127387,7 +127440,7 @@ function APIScriptIndex(name,script,args,option, isOverlay)
127387
127440
  {
127388
127441
  outVarItem.Data=this.FittingMinuteArray(item.data,date,time,hqChart);
127389
127442
  if (item.color) outVarItem.Color=item.color;
127390
- if (item.linewidth>=1) outVarItem.LineWidth=item.linewidth;
127443
+ if (item.linewidth) outVarItem.LineWidth=item.linewidth;
127391
127444
  if (item.isshow==false) outVarItem.IsShow = false;
127392
127445
  if (item.isexdata==true) outVarItem.IsExData = true;
127393
127446
  if (item.BreakPoint) outVarItem.BreakPoint=item.BreakPoint;
@@ -143351,7 +143404,7 @@ function ScrollBarBGChart()
143351
143404
 
143352
143405
 
143353
143406
 
143354
- var HQCHART_VERSION="1.1.14407";
143407
+ var HQCHART_VERSION="1.1.14410";
143355
143408
 
143356
143409
  function PrintHQChartVersion()
143357
143410
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.14407";
8
+ var HQCHART_VERSION="1.1.14410";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -15681,7 +15681,7 @@ function AverageWidthFrame()
15681
15681
  this.IsShowYLine=true;
15682
15682
  this.YInsideOffset=0;
15683
15683
  this.YTextBaseline=0; //0=居中 1=上部 (目前就支持内部刻度)
15684
- this.MultiTextFormat=0; //多行刻度信息显示模式 0=显示第1行 1=价格/百分比 2=显示2行
15684
+ this.MultiTextFormat=0; //多行刻度信息显示模式 0=显示第1行 1=单行多个文本 2=显示2行
15685
15685
  this.RightTextMaxWidth=0;
15686
15686
 
15687
15687
  this.ShortYLineLength=5;
@@ -16016,6 +16016,7 @@ function AverageWidthFrame()
16016
16016
  var pixelRatio=GetDevicePixelRatio();
16017
16017
  var itemHeight=(border.BottomEx-border.TopEx)/this.HorizontalInfo.length;
16018
16018
  var aryMultiText=[];
16019
+ var aryLeftMulitText=[];
16019
16020
  var rtPreRight, rtRight, rtLeft, rtPreLeft;
16020
16021
  var textBaseline=0; //0=上 1=中 2=下
16021
16022
  for(var i=this.HorizontalInfo.length-1; i>=0; --i) //从上往下画分割线
@@ -16122,7 +16123,12 @@ function AverageWidthFrame()
16122
16123
 
16123
16124
  if (Array.isArray(item.Message[0]))
16124
16125
  {
16125
- if (this.MultiTextFormat==3)
16126
+ if (this.MultiTextFormat==1) //显示1行 格式如:价格/百分比
16127
+ {
16128
+ var textData=this.CreateMulitCoordinateItem(item.Message[0], left-2, yText, this.Canvas.textBaseline, item);
16129
+ aryLeftMulitText.push(textData);
16130
+ }
16131
+ else if (this.MultiTextFormat==3)
16126
16132
  {
16127
16133
  var obj={ Data:item.Message[0], X:left, Y:yText, TextBaseLine:textBaseline, IsLeft:true, Item:item, TextPadding:this.YTextPadding[0] };
16128
16134
  this.DrawMultiLineText(obj);
@@ -16208,25 +16214,9 @@ function AverageWidthFrame()
16208
16214
  this.Canvas.textAlign="left";
16209
16215
  if (Array.isArray(item.Message[1]))
16210
16216
  {
16211
- if (this.MultiTextFormat==1) //显示1行 格式:价格/百分比
16217
+ if (this.MultiTextFormat==1) //显示1行 格式如:价格/百分比
16212
16218
  {
16213
- if (item.ExtendData)
16214
- {
16215
- if (item.ExtendData.Font) this.Canvas.font=item.ExtendData.Font;
16216
- }
16217
-
16218
- var textData=
16219
- {
16220
- Text:
16221
- [
16222
- {Text:item.Message[1][0], Width:this.Canvas.measureText(item.Message[1][0]).width },
16223
- {Text:item.Message[1][1], Width:this.Canvas.measureText(item.Message[1][1]).width }
16224
- ],
16225
- X:xText+2,
16226
- Y:yText,
16227
- TextBaseline:this.Canvas.textBaseline,
16228
- Item:item
16229
- }
16219
+ var textData=this.CreateMulitCoordinateItem(item.Message[1], xText+2, yText, this.Canvas.textBaseline, item);
16230
16220
  aryMultiText.push(textData);
16231
16221
  }
16232
16222
  else if (this.MultiTextFormat==2) //显示2行
@@ -16283,7 +16273,9 @@ function AverageWidthFrame()
16283
16273
  yPrev=y;
16284
16274
  }
16285
16275
 
16286
- if (IFrameSplitOperator.IsNonEmptyArray(aryMultiText) && this.MultiTextFormat==1) this.DrawHorizontalMuText(aryMultiText);
16276
+ if (IFrameSplitOperator.IsNonEmptyArray(aryLeftMulitText) && this.MultiTextFormat==1) this.DrawMultiCoordinateLeftText(aryLeftMulitText);
16277
+ if (IFrameSplitOperator.IsNonEmptyArray(aryMultiText) && this.MultiTextFormat==1) this.DrawMultiCoordinateRightText(aryMultiText);
16278
+
16287
16279
 
16288
16280
  if (isDrawRight && this.IsDrawRightBorder && this.YRightTextInfo)
16289
16281
  {
@@ -16312,6 +16304,41 @@ function AverageWidthFrame()
16312
16304
  }
16313
16305
  }
16314
16306
 
16307
+ this.CreateMulitCoordinateItem=function(aryData, x, y, textBaseline, data)
16308
+ {
16309
+ var coordinateItem=
16310
+ {
16311
+ AryText:[], X:x,Y:y, TextBaseline:textBaseline, Item:data
16312
+ };
16313
+
16314
+ for(var i=0;i<aryData.length;++i)
16315
+ {
16316
+ var item=aryData[i];
16317
+ if (item.Font) this.Canvas.font=item.Font;
16318
+ var textWidth=0;
16319
+ if (item.Text) textWidth=this.Canvas.measureText(item.Text).width;
16320
+
16321
+ coordinateItem.AryText.push({ Width:textWidth, Item:item });
16322
+ }
16323
+
16324
+ return coordinateItem;
16325
+ }
16326
+
16327
+ this.GetMulitCoordinateItemTextWidth=function(aryData)
16328
+ {
16329
+ var total=0;
16330
+ for(var i=0;i<aryData.length;++i)
16331
+ {
16332
+ var item=aryData[i];
16333
+ if (item.Font) this.Canvas.font=item.Font;
16334
+ var width=this.Canvas.measureText(item.Text).width;
16335
+
16336
+ total+=width;
16337
+ }
16338
+
16339
+ return total;
16340
+ }
16341
+
16315
16342
  //多行文字刻度输出 obj={ Data:, X:, Y:, TextBaseLine:, IsLeft:, Item:刻度数据 }
16316
16343
  this.DrawMultiLineText=function(obj)
16317
16344
  {
@@ -16402,53 +16429,86 @@ function AverageWidthFrame()
16402
16429
  return rtRight;
16403
16430
  }
16404
16431
 
16405
- this.DrawHorizontalMuText=function(aryText)
16432
+ //绘制多重坐标刻度文字 左侧
16433
+ this.DrawMultiCoordinateLeftText=function(aryText)
16406
16434
  {
16407
- var maxWidth=[null,null];
16408
- for(var i=0;i<aryText.length;++i)
16435
+ var aryMaxWidth=[];
16436
+ for(var i=0, j=0;i<aryText.length;++i)
16409
16437
  {
16410
16438
  var item=aryText[i];
16411
- var width=item.Text[0].Width;
16412
- if (!IFrameSplitOperator.IsNumber(maxWidth[0])) maxWidth[0]=width;
16413
- else if (maxWidth[0]<width) maxWidth[0]=width;
16414
-
16415
- width=item.Text[1].Width;
16416
- if (!IFrameSplitOperator.IsNumber(maxWidth[1])) maxWidth[1]=width;
16417
- else if (maxWidth[1]<width) maxWidth[1]=width;
16439
+ for(var j=0;j<item.AryText.length;++j)
16440
+ {
16441
+ var textItem=item.AryText[j];
16442
+ if (!IFrameSplitOperator.IsNumber(aryMaxWidth[j]) || aryMaxWidth[j]<textItem.Width) aryMaxWidth[j]=textItem.Width;
16443
+ }
16444
+
16418
16445
  }
16419
16446
 
16447
+ this.Canvas.textAlign="right";
16420
16448
  for(var i=0;i<aryText.length;++i)
16421
16449
  {
16422
16450
  var item=aryText[i];
16423
16451
  var message=item.Item;
16424
-
16452
+ var x=item.X;
16425
16453
  this.Canvas.textBaseline=item.TextBaseline;
16426
- if (message.ExtendData && message.ExtendData.Font) this.Canvas.font=message.ExtendData.Font;
16427
- else if (message.Font) this.Canvas.font=message.Font;
16428
-
16429
- if (message.ExtendData && message.ExtendData.PriceColor) this.Canvas.fillStyle=message.ExtendData.PriceColor;
16430
- else this.Canvas.fillStyle=message.TextColor;
16454
+ for(var j=0;j<item.AryText.length;++j)
16455
+ {
16456
+ var textItem=item.AryText[j];
16457
+ var subText=textItem.Item;
16458
+ if (subText && subText.Text)
16459
+ {
16460
+ if (subText.Font) this.Canvas.font=subText.Font; //字体
16461
+ else if (message.Font) this.Canvas.font=message.Font;
16462
+
16463
+ if (subText.Color) this.Canvas.fillStyle=subText.Color; //颜色
16464
+ else this.Canvas.fillStyle=message.TextColor;
16431
16465
 
16432
- this.Canvas.textAlign="right";
16433
- var x=item.X+maxWidth[1];
16434
- this.Canvas.fillText(item.Text[1].Text,x,item.Y);
16466
+ this.Canvas.fillText(subText.Text,x,item.Y);
16467
+ }
16435
16468
 
16436
- if (message.ExtendData && message.ExtendData.SplitColor) this.Canvas.fillStyle=message.ExtendData.SplitColor;
16437
- else this.Canvas.fillStyle=message.TextColor;
16469
+ x-=aryMaxWidth[j];
16470
+ }
16471
+ }
16472
+ }
16438
16473
 
16439
- this.Canvas.textAlign="left";
16440
- var splitWidth=this.Canvas.measureText('/').width;
16441
- this.Canvas.fillText('/',x,item.Y);
16474
+ //绘制多重坐标刻度文字 右侧
16475
+ this.DrawMultiCoordinateRightText=function(aryText)
16476
+ {
16477
+ var aryMaxWidth=[];
16478
+ for(var i=0, j=0;i<aryText.length;++i)
16479
+ {
16480
+ var item=aryText[i];
16481
+ for(var j=0;j<item.AryText.length;++j)
16482
+ {
16483
+ var textItem=item.AryText[j];
16484
+ if (!IFrameSplitOperator.IsNumber(aryMaxWidth[j]) || aryMaxWidth[j]<textItem.Width) aryMaxWidth[j]=textItem.Width;
16485
+ }
16442
16486
 
16443
- if (message.ExtendData && message.ExtendData.PercentageColor) this.Canvas.fillStyle=message.ExtendData.PercentageColor;
16444
- else this.Canvas.fillStyle=message.TextColor;
16487
+ }
16445
16488
 
16446
- this.Canvas.textAlign="right";
16447
- var x=item.X+maxWidth[1]+maxWidth[0]+splitWidth;
16448
- this.Canvas.fillText(item.Text[0].Text,x,item.Y);
16489
+ this.Canvas.textAlign="right";
16490
+ for(var i=0;i<aryText.length;++i)
16491
+ {
16492
+ var item=aryText[i];
16493
+ var message=item.Item;
16494
+ var x=item.X;
16495
+ this.Canvas.textBaseline=item.TextBaseline;
16496
+ for(var j=0;j<item.AryText.length;++j)
16497
+ {
16498
+ var textItem=item.AryText[j];
16499
+ var subText=textItem.Item;
16500
+ if (subText && subText.Text)
16501
+ {
16502
+ if (subText.Font) this.Canvas.font=subText.Font; //字体
16503
+ else if (message.Font) this.Canvas.font=message.Font;
16504
+
16505
+ if (subText.Color) this.Canvas.fillStyle=subText.Color; //颜色
16506
+ else this.Canvas.fillStyle=message.TextColor;
16449
16507
 
16450
- var textWidth=maxWidth[1]+maxWidth[0]+splitWidth*4;
16451
- if (this.RightTextMaxWidth<textWidth) this.RightTextMaxWidth=textWidth;
16508
+ x+=aryMaxWidth[j];
16509
+ this.Canvas.fillText(subText.Text,x,item.Y);
16510
+ }
16511
+ }
16452
16512
  }
16453
16513
  }
16454
16514
 
@@ -18026,7 +18086,8 @@ function AverageWidthFrame()
18026
18086
  {
18027
18087
  if (Array.isArray(item.Message[0]))
18028
18088
  {
18029
- textWidth=this.GetMulitTextMaxWidth(item.Message[0]);
18089
+ if (this.MultiTextFormat==1) textWidth=this.GetMulitCoordinateItemTextWidth(item.Message[0]);
18090
+ else textWidth=this.GetMulitTextMaxWidth(item.Message[0]);
18030
18091
  }
18031
18092
  else
18032
18093
  {
@@ -18045,17 +18106,9 @@ function AverageWidthFrame()
18045
18106
 
18046
18107
  if (Array.isArray(item.Message[1]))
18047
18108
  {
18048
- if (this.MultiTextFormat==1 && IFrameSplitOperator.IsNonEmptyArray(item.Message[1])) //显示1行 格式:价格/百分比
18109
+ if (this.MultiTextFormat==1) //显示1行 格式:价格/百分比
18049
18110
  {
18050
- if (item.ExtendData && item.ExtendData.Font) this.Canvas.font=item.ExtendData.Font;
18051
-
18052
- var width1=this.Canvas.measureText(item.Message[1][0]).width;
18053
- var width2=this.Canvas.measureText(item.Message[1][1]).width;
18054
- var width3=this.Canvas.measureText('/').width;
18055
- textWidth=width1+width3;
18056
- if (rightExtendWidth<width2) rightExtendWidth=width2;
18057
-
18058
- //JSConsole.Chart.Log(`[ChartData::GetScaleTextWidth] ${item.Message[1][1]}/${item.Message[1][0]} ${textWidth}, ${rightExtendWidth}`);
18111
+ textWidth=this.GetMulitCoordinateItemTextWidth(item.Message[1]);
18059
18112
  }
18060
18113
  else if (this.MultiTextFormat==2) //显示2行
18061
18114
  {
@@ -56876,7 +56929,7 @@ function FrameSplitMinutePriceY()
56876
56929
  }
56877
56930
  else if (this.RightTextFormat==2) //价格/百分比
56878
56931
  {
56879
- coordinate.Message[1]=[strPer,strPrice];
56932
+ coordinate.Message[1]=[ {Text:strPrice}, {Text:"/"}, { Text:strPer} ];
56880
56933
  }
56881
56934
  else
56882
56935
  {
@@ -127431,7 +127484,7 @@ function APIScriptIndex(name,script,args,option, isOverlay)
127431
127484
  {
127432
127485
  outVarItem.Data=this.FittingMinuteArray(item.data,date,time,hqChart);
127433
127486
  if (item.color) outVarItem.Color=item.color;
127434
- if (item.linewidth>=1) outVarItem.LineWidth=item.linewidth;
127487
+ if (item.linewidth) outVarItem.LineWidth=item.linewidth;
127435
127488
  if (item.isshow==false) outVarItem.IsShow = false;
127436
127489
  if (item.isexdata==true) outVarItem.IsExData = true;
127437
127490
  if (item.BreakPoint) outVarItem.BreakPoint=item.BreakPoint;
@@ -153146,7 +153199,7 @@ function HQChartScriptWorker()
153146
153199
 
153147
153200
 
153148
153201
 
153149
- var HQCHART_VERSION="1.1.14407";
153202
+ var HQCHART_VERSION="1.1.14410";
153150
153203
 
153151
153204
  function PrintHQChartVersion()
153152
153205
  {