hqchart 1.1.15008 → 1.1.15011

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.
@@ -4161,15 +4161,15 @@ this.BorderColor;//分割线颜色
4161
4161
  this.RowCount=5;//行数
4162
4162
  this.RowHeight=10;//行高
4163
4163
  this.RowHeightType=1;//0=均分 1=固定高度
4164
- this.TextFontConfig=CloneData(g_JSChartResource.ChartKLineTable.TextFont);this.ItemMergin=CloneData(g_JSChartResource.ChartKLineTable.ItemMergin);this.TextFont;this.TextColor='rgb(0,0,0)';this.Style=0;//0=全部窗口模式 1=顶部指定行数 2=底部指定行数;
4164
+ this.TextFontConfig=CloneData(g_JSChartResource.ChartKLineTable.TextFont);this.ItemMargin=CloneData(g_JSChartResource.ChartKLineTable.ItemMargin);this.CellWidth=12*GetDevicePixelRatio();this.TextFont;this.TextColor='rgb(0,0,0)';this.Style=0;//0=全部窗口模式 1=顶部指定行数 2=底部指定行数;
4165
4165
  this.AryTableData=[];this.MapCache=null;//key=date/date-time value={ Date:, Time:, Data:[ ] }
4166
4166
  this.GetKValue=ChartData.GetKValue;this.AryCellRect=[];//保存单元格信息
4167
- this.BuildCacheData=function(){var mapData=new _map2.default();this.MapCache=mapData;if(!IFrameSplitOperator.IsNonEmptyArray(this.AryTableData))return;for(var i=0;i<this.AryTableData.length;++i){var item=this.AryTableData[i];var key=this.BuildKey(item);mapData.set(key,item);}};//绘制背景色
4167
+ this.SetOption=function(option){if(!option)return;if(option.BGColor)this.BGColor=option.BGColor;if(option.TextColor)this.TextColor=option.TextColor;if(option.BorderColor)this.BorderColor=option.BorderColor;if(IFrameSplitOperator.IsNumber(option.RowNamePosition))this.RowNamePosition=option.RowNamePosition;if(IFrameSplitOperator.IsNumber(option.RowHeightType))this.RowHeightType=option.RowHeightType;if(option.ItemMargin){var subItem=option.ItemMargin;if(IFrameSplitOperator.IsNumber(subItem.Left))this.ItemMargin.Left=subItem.Left;if(IFrameSplitOperator.IsNumber(subItem.Top))this.ItemMargin.Top=subItem.Top;if(IFrameSplitOperator.IsNumber(subItem.Bottom))this.ItemMargin.Bottom=subItem.Bottom;if(IFrameSplitOperator.IsNumber(subItem.Right))this.ItemMargin.Right=subItem.Right;if(IFrameSplitOperator.IsNumber(subItem.YOffset))this.ItemMargin.YOffset=subItem.YOffset;}if(option.TextFont){var subItem=option.TextFont;if(IFrameSplitOperator.IsNumber(subItem.FontMaxSize))this.TextFontConfig.FontMaxSize=subItem.FontMaxSize;if(subItem.Family)this.TextFontConfig.Family=subItem.Family;}if(IFrameSplitOperator.IsPlusNumber(option.CellWidth))this.CellWidth=option.CellWidth;};this.BuildCacheData=function(){var mapData=new _map2.default();this.MapCache=mapData;if(!IFrameSplitOperator.IsNonEmptyArray(this.AryTableData))return;for(var i=0;i<this.AryTableData.length;++i){var item=this.AryTableData[i];var key=this.BuildKey(item);mapData.set(key,item);}};//绘制背景色
4168
4168
  this.DrawBG=function(rtBG){if(!this.BGColor)return;this.Canvas.fillStyle=this.BGColor;if((this.Style===1||this.Style===2)&&this.RowHeightType==1){var height=this.RowCount*this.RowHeight;height=Math.min(rtBG.Height,height);this.Canvas.fillRect(rtBG.Left+1,rtBG.Top,rtBG.Width-2,height);}else{this.Canvas.fillRect(rtBG.Left+1,rtBG.Top,rtBG.Width-1,rtBG.Height);}};this.DrawBorder=function(rtBG){if(!this.BorderColor)return;var lineCount=30;if(this.Style===1||this.Style===2)lineCount=this.RowCount+1;var yLine=rtBG.Top;for(var i=0;i<lineCount;++i){this.Canvas.beginPath();this.Canvas.moveTo(rtBG.Left,ToFixedPoint(yLine));this.Canvas.lineTo(rtBG.Right,ToFixedPoint(yLine));this.Canvas.stroke();yLine+=this.RowHeight;if(yLine>=rtBG.Bottom)break;}};//计算行高
4169
- this.CalculateRowHeight=function(rtBG){if(this.RowHeightType==1){this.RowHeight=this.TextFontConfig.FontMaxSize+this.ItemMergin.Top+this.ItemMergin.Bottom;}else{this.RowHeight=rtBG.Height/this.RowCount;}};this.Draw=function(){this.AryCellRect=[];if(!this.IsShow||this.ChartFrame.IsMinSize||!this.IsVisible)return;if(this.IsShowIndexTitleOnly())return;if(this.IsHideScriptIndex())return;if(!IFrameSplitOperator.IsNonEmptyArray(this.AryTableData))return;if(!this.MapCache||this.MapCache.size<=0)return;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return;var isHScreen=this.ChartFrame.IsHScreen===true;if(isHScreen)return;if(this.RowCount<=0)return;var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var xPointCount=this.ChartFrame.XPointCount;var border=this.ChartFrame.GetBorder();var height=border.Bottom-border.TopTitle;var xOffset=border.LeftEx+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;var top=border.TopTitle;var bottom=border.Bottom;//绘制背景
4170
- if(this.Style===1){var rtBG={Left:border.LeftEx,Top:border.TopTitle,Right:border.RightEx,Bottom:border.TopEx};rtBG.Width=rtBG.Right-rtBG.Left;rtBG.Height=rtBG.Bottom-rtBG.Top;}else if(this.Style===2){var rtBG={Left:border.LeftEx,Top:border.BottomEx,Right:border.RightEx,Bottom:border.Bottom};rtBG.Width=rtBG.Right-rtBG.Left;rtBG.Height=rtBG.Bottom-rtBG.Top;top=rtBG.Top;}else{var rtBG={Left:border.LeftEx,Top:top,Right:border.RightEx,Bottom:bottom};rtBG.Width=rtBG.Right-rtBG.Left;rtBG.Height=rtBG.Bottom-rtBG.Top;}this.CalculateRowHeight(rtBG);this.DrawBG(rtBG);var itemHeight=this.RowHeight;var itemWidth=dataWidth+distanceWidth;if(itemHeight-this.ItemMergin.Top-this.ItemMergin.Bottom>0)itemHeight=itemHeight-this.ItemMergin.Top-this.ItemMergin.Bottom;if(itemWidth-this.ItemMergin.Left-this.ItemMergin.Right>0)itemWidth=itemWidth-this.ItemMergin.Left-this.ItemMergin.Right;var font=this.GetDynamicTextFont(itemHeight,itemWidth);this.TextFont=font;this.Canvas.font=this.TextFont;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var kItem=this.Data.Data[i];if(!kItem)continue;var left=xOffset;var right=xOffset+dataWidth+distanceWidth;if(right>chartright)break;var x=left+(right-left)/2;if(x>chartright)break;var bDrawName=false;if(j==0&&this.RowNamePosition===1)bDrawName=true;if(bDrawName)this.DrawRowName(top,bottom,left,right);var key=this.BuildKey(kItem);if(!this.MapCache.has(key))continue;var mapItem=this.MapCache.get(key);if(!bDrawName)this.DrawRow(mapItem,top,bottom,left,right);//绘制一列
4171
- }if(this.RowNamePosition==3)this.DrawRightRowName(rtBG);this.DrawBorder(rtBG);};this.DrawRowName=function(top,bottom,left,right){if(!IFrameSplitOperator.IsNonEmptyArray(this.RowName))return;var x=left,y=top,width=right-left;var yOffset=3;if(this.ItemMergin.YOffset)yOffset=this.ItemMergin.YOffset;for(var i=0;i<this.RowName.length;++i){var item=this.RowName[i];var rtBG={Left:x,Top:y,Right:right,Height:this.RowHeight,Width:width};rtBG.Bottom=rtBG.Top+this.RowHeight;var yText=rtBG.Bottom-yOffset;if(item.Name&&rtBG.Width>10){this.Canvas.fillStyle=item.Color?item.Color:this.TextColor;this.Canvas.textBaseline='bottom';if(item.TextAlign=='right'){this.Canvas.textAlign='right';this.Canvas.fillText(item.Name,rtBG.Right-2,yText,width-4);}else if(item.TextAlign=='center'){this.Canvas.textAlign='center';this.Canvas.fillText(item.Name,rtBG.Left+rtBG.Width/2,yText,width-4);}else{this.Canvas.textAlign='left';this.Canvas.fillText(item.Name,rtBG.Left+2,yText,width-4);}}y+=this.RowHeight;}};//绘制右侧行名
4172
- this.DrawRightRowName=function(rtBG){var border=this.ChartFrame.GetBorder();if(this.BGColor){if(this.Style===1){var height=this.RowCount*this.RowHeight;height=Math.min(rtBG.Height,height);var width=border.ChartWidth-rtBG.Right-2;var maxTextWidth=0;for(var i=0;i<this.RowName.length;++i){var item=this.RowName[i];if(!item||!item.Name)continue;var textWidth=this.Canvas.measureText(item.Name).width;if(textWidth>maxTextWidth)maxTextWidth=textWidth;}if(maxTextWidth>0){maxTextWidth+=4;width=Math.min(width,maxTextWidth);}var rtRightBG={Left:rtBG.Right+1,Top:rtBG.Top+1,Width:width,Height:height};rtRightBG.Right=rtRightBG.Left+rtRightBG.Width;rtRightBG.Bottom=rtRightBG.Top+rtRightBG.Height;this.Canvas.fillStyle=this.BGColor;this.Canvas.fillRect(rtRightBG.Left,rtRightBG.Top,rtRightBG.Width,rtRightBG.Height);}else{var rtRightBG={Left:border.RightEx,Top:border.Top,Right:border.ChartWidth,Bottom:border.Bottom};rtRightBG.Width=rtRightBG.Right-rtRightBG.Left;rtRightBG.Height=rtRightBG.Bottom-rtRightBG.Top;this.Canvas.fillStyle=this.BGColor;this.Canvas.fillRect(rtRightBG.Left+1,rtRightBG.Top,rtRightBG.Width-2,rtRightBG.Height);}}var x=rtBG.Right,y=rtBG.Top;var yOffset=3;if(this.ItemMergin.YOffset)yOffset=this.ItemMergin.YOffset;for(var i=0;i<this.RowName.length;++i){var item=this.RowName[i];var rtBG={Left:x,Top:y,Right:border.ChartWidth,Height:this.RowHeight};rtBG.Bottom=rtBG.Top+this.RowHeight;rtBG.Width=rtBG.Right-rtBG.Left;var yText=rtBG.Bottom-yOffset;if(rtBG.Bottom>border.Bottom)break;if(item.Name&&rtBG.Width>10){this.Canvas.fillStyle=item.Color?item.Color:this.TextColor;this.Canvas.textBaseline='bottom';this.Canvas.textAlign='left';this.Canvas.fillText(item.Name,rtBG.Left+2,yText);}y+=this.RowHeight;}};this.DrawRow=function(data,top,bottom,left,right){if(!IFrameSplitOperator.IsNonEmptyArray(data.Data))return;var x=left,y=top,width=right-left;var yOffset=3;if(this.ItemMergin.YOffset)yOffset=this.ItemMergin.YOffset;for(var i=0;i<data.Data.length;++i,y+=this.RowHeight){var item=data.Data[i];if(!item)continue;var rtBG={Left:x,Top:y,Right:right,Height:this.RowHeight,Width:width};rtBG.Bottom=rtBG.Top+this.RowHeight;if(rtBG.Bottom>bottom)break;if(IFrameSplitOperator.IsNonEmptyArray(item.AryText))//左右显示
4169
+ this.CalculateRowHeight=function(rtBG){if(this.RowHeightType==1){this.RowHeight=this.TextFontConfig.FontMaxSize+this.ItemMargin.Top+this.ItemMargin.Bottom;}else{this.RowHeight=rtBG.Height/this.RowCount;}};this.Draw=function(){this.AryCellRect=[];if(!this.IsShow||this.ChartFrame.IsMinSize||!this.IsVisible)return;if(this.IsShowIndexTitleOnly())return;if(this.IsHideScriptIndex())return;if(!IFrameSplitOperator.IsNonEmptyArray(this.AryTableData))return;if(!this.MapCache||this.MapCache.size<=0)return;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return;var isHScreen=this.ChartFrame.IsHScreen===true;if(isHScreen)return;if(this.RowCount<=0)return;var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var xPointCount=this.ChartFrame.XPointCount;var border=this.ChartFrame.GetBorder();var height=border.Bottom-border.TopTitle;var xOffset=border.LeftEx+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;var top=border.TopTitle;var bottom=border.Bottom;//绘制背景
4170
+ if(this.Style===1){var rtBG={Left:border.LeftEx,Top:border.TopTitle,Right:border.RightEx,Bottom:border.TopEx};rtBG.Width=rtBG.Right-rtBG.Left;rtBG.Height=rtBG.Bottom-rtBG.Top;}else if(this.Style===2){var rtBG={Left:border.LeftEx,Top:border.BottomEx,Right:border.RightEx,Bottom:border.Bottom};rtBG.Width=rtBG.Right-rtBG.Left;rtBG.Height=rtBG.Bottom-rtBG.Top;top=rtBG.Top;}else{var rtBG={Left:border.LeftEx,Top:top,Right:border.RightEx,Bottom:bottom};rtBG.Width=rtBG.Right-rtBG.Left;rtBG.Height=rtBG.Bottom-rtBG.Top;}this.CalculateRowHeight(rtBG);this.DrawBG(rtBG);var itemHeight=this.RowHeight;var itemWidth=dataWidth+distanceWidth;if(itemHeight-this.ItemMargin.Top-this.ItemMargin.Bottom>0)itemHeight=itemHeight-this.ItemMargin.Top-this.ItemMargin.Bottom;if(itemWidth-this.ItemMargin.Left-this.ItemMargin.Right>0)itemWidth=itemWidth-this.ItemMargin.Left-this.ItemMargin.Right;var font=this.GetDynamicTextFont(itemHeight,itemWidth);this.TextFont=font;this.Canvas.font=this.TextFont;var bMinute=this.IsMinuteFrame();var cellWidth=1;if(bMinute){cellWidth=(border.Right-border.Left)/this.ChartFrame.XPointCount;if(cellWidth<1)cellWidth=1;}for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var kItem=this.Data.Data[i];if(!kItem)continue;if(bMinute){var x=this.ChartFrame.GetXFromIndex(j);var left=x-cellWidth/2;var right=x+cellWidth/2;}else{var left=xOffset;var right=xOffset+dataWidth+distanceWidth;if(right>chartright)break;var x=left+(right-left)/2;if(x>chartright)break;}var bDrawName=false;if(j==0&&this.RowNamePosition===1)bDrawName=true;if(bDrawName)this.DrawRowName(top,bottom,left,right);var key=this.BuildKey(kItem);if(!this.MapCache.has(key))continue;var mapItem=this.MapCache.get(key);if(!bDrawName)this.DrawRow(mapItem,top,bottom,left,right);//绘制一列
4171
+ }if(this.RowNamePosition==3)this.DrawRightRowName(rtBG);this.DrawBorder(rtBG);};this.DrawRowName=function(top,bottom,left,right){if(!IFrameSplitOperator.IsNonEmptyArray(this.RowName))return;var x=left,y=top,width=right-left;var yOffset=3;if(this.ItemMargin.YOffset)yOffset=this.ItemMargin.YOffset;for(var i=0;i<this.RowName.length;++i){var item=this.RowName[i];var rtBG={Left:x,Top:y,Right:right,Height:this.RowHeight,Width:width};rtBG.Bottom=rtBG.Top+this.RowHeight;var yText=rtBG.Bottom-yOffset;if(item.Name&&rtBG.Width>10){this.Canvas.fillStyle=item.Color?item.Color:this.TextColor;this.Canvas.textBaseline='bottom';if(item.TextAlign=='right'){this.Canvas.textAlign='right';this.Canvas.fillText(item.Name,rtBG.Right-2,yText,width-4);}else if(item.TextAlign=='center'){this.Canvas.textAlign='center';this.Canvas.fillText(item.Name,rtBG.Left+rtBG.Width/2,yText,width-4);}else{this.Canvas.textAlign='left';this.Canvas.fillText(item.Name,rtBG.Left+2,yText,width-4);}}y+=this.RowHeight;}};//绘制右侧行名
4172
+ this.DrawRightRowName=function(rtBG){var border=this.ChartFrame.GetBorder();if(this.BGColor){if(this.Style===1){var height=this.RowCount*this.RowHeight;height=Math.min(rtBG.Height,height);var width=border.ChartWidth-rtBG.Right-2;var maxTextWidth=0;for(var i=0;i<this.RowName.length;++i){var item=this.RowName[i];if(!item||!item.Name)continue;var textWidth=this.Canvas.measureText(item.Name).width;if(textWidth>maxTextWidth)maxTextWidth=textWidth;}if(maxTextWidth>0){maxTextWidth+=4;width=Math.min(width,maxTextWidth);}var rtRightBG={Left:rtBG.Right+1,Top:rtBG.Top+1,Width:width,Height:height};rtRightBG.Right=rtRightBG.Left+rtRightBG.Width;rtRightBG.Bottom=rtRightBG.Top+rtRightBG.Height;this.Canvas.fillStyle=this.BGColor;this.Canvas.fillRect(rtRightBG.Left,rtRightBG.Top,rtRightBG.Width,rtRightBG.Height);}else{var rtRightBG={Left:border.RightEx,Top:border.Top,Right:border.ChartWidth,Bottom:border.Bottom};rtRightBG.Width=rtRightBG.Right-rtRightBG.Left;rtRightBG.Height=rtRightBG.Bottom-rtRightBG.Top;this.Canvas.fillStyle=this.BGColor;this.Canvas.fillRect(rtRightBG.Left+1,rtRightBG.Top,rtRightBG.Width-2,rtRightBG.Height);}}var x=rtBG.Right,y=rtBG.Top;var yOffset=3;if(this.ItemMargin.YOffset)yOffset=this.ItemMargin.YOffset;for(var i=0;i<this.RowName.length;++i){var item=this.RowName[i];var rtBG={Left:x,Top:y,Right:border.ChartWidth,Height:this.RowHeight};rtBG.Bottom=rtBG.Top+this.RowHeight;rtBG.Width=rtBG.Right-rtBG.Left;var yText=rtBG.Bottom-yOffset;if(rtBG.Bottom>border.Bottom)break;if(item.Name&&rtBG.Width>10){this.Canvas.fillStyle=item.Color?item.Color:this.TextColor;this.Canvas.textBaseline='bottom';this.Canvas.textAlign='left';this.Canvas.fillText(item.Name,rtBG.Left+2,yText);}y+=this.RowHeight;}};this.DrawRow=function(data,top,bottom,left,right){if(!IFrameSplitOperator.IsNonEmptyArray(data.Data))return;var x=left,y=top,width=right-left;var yOffset=3;if(this.ItemMargin.YOffset)yOffset=this.ItemMargin.YOffset;for(var i=0;i<data.Data.length;++i,y+=this.RowHeight){var item=data.Data[i];if(!item)continue;var rtBG={Left:x,Top:y,Right:right,Height:this.RowHeight,Width:width};rtBG.Bottom=rtBG.Top+this.RowHeight;if(rtBG.Bottom>bottom)break;if(IFrameSplitOperator.IsNonEmptyArray(item.AryText))//左右显示
4173
4173
  {var subCellWidth=rtBG.Width/item.AryText.length;var xCell=rtBG.Left;for(var j=0;j<item.AryText.length;++j){var subItem=item.AryText[j];var rtSubBG={Left:xCell,Top:rtBG.Top,Bottom:rtBG.Bottom,Width:subCellWidth,Height:rtBG.Height};rtSubBG.Right=rtSubBG.Left+rtSubBG.Width;if(subItem&&subItem.BGColor){this.Canvas.fillStyle=subItem.BGColor;this.Canvas.fillRect(rtSubBG.Left,rtSubBG.Top,rtSubBG.Width,rtSubBG.Height);}if(subItem&&subItem.Color&&subCellWidth>10){this.Canvas.fillStyle=subItem.Color;this.Canvas.textBaseline='bottom';var yText=rtSubBG.Bottom-yOffset;if(subItem.TextAlign=='right'){this.Canvas.textAlign='right';this.Canvas.fillText(subItem.Text,rtSubBG.Right-2,yText,width-4);}else if(subItem.TextAlign=='center'){this.Canvas.textAlign='center';this.Canvas.fillText(subItem.Text,rtSubBG.Left+rtSubBG.Width/2,yText,width-4);}else{this.Canvas.textAlign='left';this.Canvas.fillText(subItem.Text,rtSubBG.Left+2,yText,width-4);}}if(rtBG.Width>5){this.AryCellRect.push({Item:{Cell:item,Colunm:data,RowIndex:i,SubCell:subItem,SubIndex:j,Tooltip:subItem.Tooltip,Type:2},Rect:rtSubBG});}xCell+=subCellWidth;}}else{if(item.BGColor){this.Canvas.fillStyle=item.BGColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}if(item.Text&&rtBG.Width>10){if(item.Color)this.Canvas.fillStyle=item.Color;else this.Canvas.fillStyle=this.TextColor;this.Canvas.textBaseline='bottom';var yText=rtBG.Bottom-yOffset;if(item.TextAlign=='right'){this.Canvas.textAlign='right';this.Canvas.fillText(item.Text,rtBG.Right-2,yText,width-4);}else if(item.TextAlign=='center'){this.Canvas.textAlign='center';this.Canvas.fillText(item.Text,rtBG.Left+rtBG.Width/2,yText,width-4);}else{this.Canvas.textAlign='left';this.Canvas.fillText(item.Text,rtBG.Left+2,yText,width-4);}}if(rtBG.Width>5){this.AryCellRect.push({Item:{Cell:item,Colunm:data,RowIndex:i,Tooltip:item.Tooltip,Type:1},Rect:rtBG});}}}};this.GetDynamicTextFont=function(cellHeight,width,fontOption){var fontSize=parseInt(cellHeight)-2;if(cellHeight<5)fontSize=parseInt(cellHeight);//高度太小了就不要上下间距了
4174
4174
  if(fontSize>this.TextFontConfig.FontMaxSize)fontSize=this.TextFontConfig.FontMaxSize;else if(fontSize<=0)fontSize=1;var font=this.FormatFontString(fontSize,this.TextFontConfig.Family,fontOption);return font;};this.FormatFontString=function(fontSize,family,option){var font;if(!option){font=fontSize+'px '+family;}else{if(option.Weight)font=option.Weight+' '+fontSize+'px '+family;}return font;};this.GetMaxMin=function(){return{Min:0,Max:this.RowCount};};this.GetTooltipData=function(x,y,tooltip){if(!this.IsShow)return false;for(var i=0;i<this.AryCellRect.length;++i){var item=this.AryCellRect[i];if(!item.Rect)continue;var rect=item.Rect;if(x>=rect.Left&&x<=rect.Right&&y>=rect.Top&&y<=rect.Bottom){var data=item.Item;JSConsole.Chart.Log('[ChartKLineTable::GetTooltipData] cell',item);tooltip.Data={Rect:item.Rect,Item:data};tooltip.ChartPaint=this;tooltip.Type=9;//ChartKLineTable
4175
4175
  return true;}}return false;};}//表格
@@ -4555,7 +4555,7 @@ var drawCount=0;var pointCount=0;this.Canvas.save();this.ClipClient(isHScreen);i
4555
4555
  {if(isHScreen){this.Canvas.lineTo(left,x);this.Canvas.lineTo(left,ptFirst.X);this.SetFillStyle(this.AreaColor,this.ChartBorder.GetRightEx(),bottom,this.ChartBorder.GetLeftEx(),bottom);}else{this.Canvas.lineTo(x,bottom);this.Canvas.lineTo(ptFirst.X,bottom);this.SetFillStyle(this.AreaColor,left,this.ChartBorder.GetTopEx(),left,bottom);}this.Canvas.fill();}}}this.Canvas.restore();this.DrawColorLine();this.DrawAfterClose();//收盘集合竞价
4556
4556
  this.DrawMultiDayAfterClose();if(this.Identify=="Minute-Line"&&this.ChartFrame.GlobalOption){var globalOption=this.ChartFrame.GlobalOption;globalOption.LatestPoint={X:this.LastPoint.X,Y:this.LastPoint.Y};}if(this.GetEventCallback){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DRAW_MINUTE_LAST_POINT);if(event){var pixelRatio=GetDevicePixelRatio();var data={InterLastPoint:{X:this.LastPoint.X,Y:this.LastPoint.Y},//内部点 给画布用
4557
4557
  LastPoint:{X:this.LastPoint.X/pixelRatio,Y:this.LastPoint.Y/pixelRatio},//外部点 给DOM用
4558
- Price:this.LastPoint.Price,Data:this.LastPoint.Data,PixelRatio:pixelRatio};event.Callback(event,data,this);}}};//画领先指标
4558
+ Price:this.LastPoint.Value,Data:this.LastPoint.Data,PixelRatio:pixelRatio};event.Callback(event,data,this);}}};//画领先指标
4559
4559
  this.DrawLead=function(){if(!this.LeadData)return;var isHScreen=this.ChartFrame.IsHScreen===true;//if (isHScreen) return;
4560
4560
  //var dataWidth=this.ChartFrame.DataWidth;
4561
4561
  //var distanceWidth=this.ChartFrame.DistanceWidth;
@@ -6635,7 +6635,7 @@ this.Super_ExportStorageData=this.ExportStorageData;//this.Label; //{Tex
6635
6635
  this.LineWidth=1;this.Precision=2;//小数位数
6636
6636
  this.ValueTextColor='rgb(250,250,250)';this.IsShowCorssCursor=true;//画的时候是否显示十字光标
6637
6637
  this.GetLabelCallback;//绘制标题回调函数
6638
- this.PointCount=1;this.ClassName='ChartDrawHLine';this.Font=14*GetDevicePixelRatio()+"px 微软雅黑";this.TextFont=12*GetDevicePixelRatio()+"px 微软雅黑";this.RightSpaceWidth=50;this.ButtonPosition=0;//按钮位置, 0=价格后面, 1=价格上面 2=价格上面 左对齐 3=垂直排列
6638
+ this.PointCount=1;this.ClassName='ChartDrawHLine';this.Font=14*GetDevicePixelRatio()+"px 微软雅黑";this.TextFont=12*GetDevicePixelRatio()+"px 微软雅黑";this.RightSpaceWidth=50;this.PriceBGColor;this.ButtonPosition=0;//按钮位置, 0=价格后面, 1=价格上面 2=价格上面 左对齐 3=垂直排列
6639
6639
  this.ButtonBGColor='rgb(190,190,190)';this.ButtonSpace=3;this.TopOffset=3;this.TextMargin={Left:0,Right:0,Top:0,Bottom:0,YOffset:4*GetDevicePixelRatio()};this.AlwaysShowLab=false;//总是显示标签
6640
6640
  this.Button={CloseIcon:{Text:'\uE62B',Color:'rgb(255,255,255)',Family:"iconfont",Size:16,ID:JSCHART_BUTTON_ID.DRAW_PICTURE_DELETE,TooltipText:null,Margin:{Left:2,Right:2}},SettingIcon:{Text:'\uE623',Color:'rgb(255,255,255)',Family:"iconfont",Size:16,ID:JSCHART_BUTTON_ID.DRAW_PICTURE_SETTING,TooltipText:null,Margin:{Left:2,Right:2}//修改ID, Text , TooltipText 可以外部定制按钮
6641
6641
  }};this.CustomButton=[];//自定义的按钮 { Text:'\ue62b', Color:'rgb(255,255,255)', Family:"iconfont", Size:16, ID:JSCHART_BUTTON_ID.DRAW_PICTURE_BUTTON_1, TooltipText:null, Data:null }
@@ -6645,7 +6645,7 @@ this.ShowPriceTextConfig={IsShow:[false,false,true],//[0]=left内 [1]=right内 [
6645
6645
  Font:[12*GetDevicePixelRatio()+'px \u5FAE\u8F6F\u96C5\u9ED1',12*GetDevicePixelRatio()+'px \u5FAE\u8F6F\u96C5\u9ED1']};this.LableInfo;//{ Position:2=右侧外部 }
6646
6646
  //内部变量
6647
6647
  this.ColseButtonSize=0;this.SettingButtonSize=0;this.ButtonBGWidth=0;this.VerticalButtonInfo={Width:0,Height:0};//垂直按钮信息
6648
- this.IsPointIn=this.IsPointIn_XYValue_Line;this.SetOption=function(option){if(this.Super_SetOption)this.Super_SetOption(option);if(option){if(option.GetLabelCallback){this.GetLabelCallback=option.GetLabelCallback;}if(IFrameSplitOperator.IsNumber(option.Precision))this.Precision=option.Precision;if(option.Font)this.Font=option.Font;if(option.ValueTextColor)this.ValueTextColor=option.ValueTextColor;if(option.ButtonBGColor)this.ButtonBGColor=option.ButtonBGColor;if(IFrameSplitOperator.IsNumber(option.ButtonPosition))this.ButtonPosition=option.ButtonPosition;if(IFrameSplitOperator.IsNumber(option.RightSpaceWidth))this.RightSpaceWidth=option.RightSpaceWidth;if(IFrameSplitOperator.IsBool(option.AlwaysShowLab))this.AlwaysShowLab=option.AlwaysShowLab;if(IFrameSplitOperator.IsNumber(option.TopOffset))this.TopOffset=option.TopOffset;if(option.Button){var item=option.Button;if(item.CloseIcon){this.Button.CloseIcon=CloneData(item.CloseIcon);if(!this.Button.CloseIcon.ID)this.Button.CloseIcon.ID=JSCHART_BUTTON_ID.DRAW_PICTURE_DELETE;}else if(item.CloseIcon===null){this.Button.CloseIcon=null;}if(item.SettingIcon){this.Button.SettingIcon=CloneData(item.SettingIcon);if(!this.Button.SettingIcon.ID)this.Button.SettingIcon.ID=JSCHART_BUTTON_ID.DRAW_PICTURE_SETTING;}else if(item.SettingIcon===null){this.Button.SettingIcon=null;}}if(option.ExtendData)this.ExtendData=option.ExtendData;if(IFrameSplitOperator.IsNonEmptyArray(option.IsShowPriceText)){for(var i=0;i<option.IsShowPriceText.length&&i<3;++i){var value=option.IsShowPriceText[i];if(IFrameSplitOperator.IsBool(value))this.ShowPriceTextConfig.IsShow[i]=value;}}if(option.TextMargin){var item=option.TextMargin;if(IFrameSplitOperator.IsNumber(item.Left))this.TextMargin.Left=item.Left;if(IFrameSplitOperator.IsNumber(item.Right))this.TextMargin.Right=item.Right;if(IFrameSplitOperator.IsNumber(item.Top))this.TextMargin.Top=item.Top;if(IFrameSplitOperator.IsNumber(item.Bottom))this.TextMargin.Bottom=item.Bottom;if(IFrameSplitOperator.IsNumber(item.YOffset))this.TextMargin.YOffset=item.YOffset;}}};this.ExportStorageData=function(){var storageData;if(this.Super_ExportStorageData){storageData=this.Super_ExportStorageData();if(this.Label)storageData.Label=this.Label;}return storageData;};/*
6648
+ this.IsPointIn=this.IsPointIn_XYValue_Line;this.SetOption=function(option){if(this.Super_SetOption)this.Super_SetOption(option);if(option){if(option.GetLabelCallback){this.GetLabelCallback=option.GetLabelCallback;}if(IFrameSplitOperator.IsNumber(option.Precision))this.Precision=option.Precision;if(option.Font)this.Font=option.Font;if(option.ValueTextColor)this.ValueTextColor=option.ValueTextColor;if(option.ButtonBGColor)this.ButtonBGColor=option.ButtonBGColor;if(IFrameSplitOperator.IsNumber(option.ButtonPosition))this.ButtonPosition=option.ButtonPosition;if(IFrameSplitOperator.IsNumber(option.RightSpaceWidth))this.RightSpaceWidth=option.RightSpaceWidth;if(IFrameSplitOperator.IsBool(option.AlwaysShowLab))this.AlwaysShowLab=option.AlwaysShowLab;if(IFrameSplitOperator.IsNumber(option.TopOffset))this.TopOffset=option.TopOffset;if(option.Button){var item=option.Button;if(item.CloseIcon){this.Button.CloseIcon=CloneData(item.CloseIcon);if(!this.Button.CloseIcon.ID)this.Button.CloseIcon.ID=JSCHART_BUTTON_ID.DRAW_PICTURE_DELETE;}else if(item.CloseIcon===null){this.Button.CloseIcon=null;}if(item.SettingIcon){this.Button.SettingIcon=CloneData(item.SettingIcon);if(!this.Button.SettingIcon.ID)this.Button.SettingIcon.ID=JSCHART_BUTTON_ID.DRAW_PICTURE_SETTING;}else if(item.SettingIcon===null){this.Button.SettingIcon=null;}}if(option.ExtendData)this.ExtendData=option.ExtendData;if(IFrameSplitOperator.IsNonEmptyArray(option.IsShowPriceText)){for(var i=0;i<option.IsShowPriceText.length&&i<3;++i){var value=option.IsShowPriceText[i];if(IFrameSplitOperator.IsBool(value))this.ShowPriceTextConfig.IsShow[i]=value;}}if(option.TextMargin){var item=option.TextMargin;if(IFrameSplitOperator.IsNumber(item.Left))this.TextMargin.Left=item.Left;if(IFrameSplitOperator.IsNumber(item.Right))this.TextMargin.Right=item.Right;if(IFrameSplitOperator.IsNumber(item.Top))this.TextMargin.Top=item.Top;if(IFrameSplitOperator.IsNumber(item.Bottom))this.TextMargin.Bottom=item.Bottom;if(IFrameSplitOperator.IsNumber(item.YOffset))this.TextMargin.YOffset=item.YOffset;}if(option.PriceBGColor)this.PriceBGColor=option.PriceBGColor;}};this.ExportStorageData=function(){var storageData;if(this.Super_ExportStorageData){storageData=this.Super_ExportStorageData();if(this.Label)storageData.Label=this.Label;}return storageData;};/*
6649
6649
  this.GetXYCoordinate=function()
6650
6650
  {
6651
6651
  if (this.IsFrameMinSize()) return null;
@@ -6671,7 +6671,7 @@ if(labelInfo.BGColor){this.Canvas.fillStyle=labelInfo.BGColor;this.Canvas.fillRe
6671
6671
  {yBottom=border.Bottom;yTop=yBottom-totalHeight;if(yTop<this.TopOffset){yTop=this.TopOffset;yBottom=yTop+totalHeight;}option.Top=yTop;}this.DrawValueText(y,rtDraw,option);var drawLeft=rtDraw.Right-labSize.Width;if(drawLeft<rtDraw.Left)drawLeft=rtDraw.Left;var drawRight=drawLeft+labSize.Width;var drawTop=rtDraw.Bottom;var rtLabel={Left:drawLeft,Right:drawRight,Top:drawTop,Width:labSize.Width,Height:labSize.Height};rtLabel.Bottom=rtLabel.Top+rtLabel.Height;this.DrawLabel(this.LableInfo,labSize,rtLabel);this.DrawVerticalButton(rtLabel);};this.DrawCustomHLine=function(yLine){if(!this.LableInfo)return;if(!IFrameSplitOperator.IsNonEmptyArray(this.LableInfo.AryLine))return;var left=this.Frame.ChartBorder.GetLeft();var right=this.Frame.ChartBorder.GetRight();var pixelRatio=GetDevicePixelRatio();var yMax=yLine,yMin=yLine;for(var i=0;i<this.LableInfo.AryLine.length;++i){var item=this.LableInfo.AryLine[i];if(!IFrameSplitOperator.IsNumber(item.Value))continue;if(item.Width<0)continue;var y=this.Frame.GetYFromData(item.Value);var yFixed=ToFixedPoint(y);var xRight=right;if(IFrameSplitOperator.IsPlusNumber(item.Width)){if(item.Width<1)xRight=left+item.Width*(right-left);//0.3 百分比
6672
6672
  else xRight=left+item.Width*pixelRatio;//>1 实际数值就是长度
6673
6673
  }if(item.Color)this.Canvas.strokeStyle=item.Color;else this.Canvas.strokeStyle=this.LineColor;this.Canvas.beginPath();this.Canvas.moveTo(left,yFixed);this.Canvas.lineTo(xRight,yFixed);this.Canvas.stroke();if(yMax<yFixed)yMax=yFixed;if(yMin>yFixed)yMin=yFixed;}if(yMax!=yMin&&this.LableInfo.VLine){var item=this.LableInfo.VLine;var x=left+20*pixelRatio;if(IFrameSplitOperator.IsNumber(item.XOffset))x=left+item.XOffset*pixelRatio;x=ToFixedPoint(x);if(item.Color)this.Canvas.strokeStyle=item.Color;else this.Canvas.strokeStyle=this.LineColor;this.Canvas.beginPath();this.Canvas.moveTo(x,yMax);this.Canvas.lineTo(x,yMin);this.Canvas.stroke();}};this.DrawValueText=function(y,rtDraw,option){var left=this.Frame.ChartBorder.GetLeft();var right=this.Frame.ChartBorder.GetRight();var top=this.Frame.ChartBorder.GetTopEx();var bottom=this.Frame.ChartBorder.GetBottomEx();var pixelTatio=GetDevicePixelRatio();var labInfo=this.LabelInfo;if(labInfo&&IFrameSplitOperator.IsNumber(labInfo.TopOffset))top-=labInfo.TopOffset;if(labInfo&&IFrameSplitOperator.IsNumber(labInfo.BottomOffset))bottom+=labInfo.BottomOffset;var yValue=this.Frame.GetYData(y,false);var strValue=yValue.toFixed(this.Precision);if(labInfo&&labInfo.PriceSuffixText)strValue+=labInfo.PriceSuffixText;var bVisibleRange=true;if(y<top){y=top;bVisibleRange=false;}else if(y>bottom){y=bottom;bVisibleRange=false;}if(this.RightSpaceWidth>0){if(!bVisibleRange)this.Canvas.setLineDash([2*pixelTatio,3*pixelTatio]);//虚线
6674
- this.Canvas.strokeStyle=this.LineColor;this.Canvas.beginPath();this.Canvas.moveTo(right,ToFixedPoint(y));this.Canvas.lineTo(right+this.RightSpaceWidth,ToFixedPoint(y));this.Canvas.stroke();if(!bVisibleRange)this.Canvas.setLineDash([]);}this.Canvas.fillStyle=this.LineColor;this.Canvas.font=this.Font;var textWidth=this.Canvas.measureText(strValue).width;var lineHeight=this.GetFontHeight();var rtBG={Left:right+this.RightSpaceWidth,YCenter:y,Width:textWidth,Height:lineHeight};rtBG.Height+=this.TextMargin.Top+this.TextMargin.Bottom;rtBG.Width+=this.TextMargin.Left+this.TextMargin.Right;rtBG.Right=rtBG.Left+rtBG.Width;rtBG.Top=rtBG.YCenter-rtBG.Height/2;rtBG.Bottom=rtBG.Top+rtBG.Height;if(option&&IFrameSplitOperator.IsNumber(option.Top)){rtBG.Top=option.Top;rtBG.Bottom=rtBG.Top+rtBG.Height;}var xText=rtBG.Left+this.TextMargin.Left;var yText=rtBG.Top+this.TextMargin.Top+this.TextMargin.YOffset;if(this.ButtonPosition==1){this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width+this.ButtonBGWidth),ToFixedRect(rtBG.Height));}else{this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width),ToFixedRect(rtBG.Height));}this.Canvas.fillStyle=this.ValueTextColor;this.Canvas.textAlign="left";this.Canvas.textBaseline="top";this.Canvas.fillText(strValue,xText,yText);rtDraw.Left=rtBG.Left;rtDraw.Top=rtBG.Top;rtDraw.Bottom=rtBG.Bottom;rtDraw.Right=rtBG.Right;this.DrawButton(rtBG.Top,rtBG.Right,lineHeight,rtDraw);};//计算右侧价格标签大小
6674
+ this.Canvas.strokeStyle=this.LineColor;this.Canvas.beginPath();this.Canvas.moveTo(right,ToFixedPoint(y));this.Canvas.lineTo(right+this.RightSpaceWidth,ToFixedPoint(y));this.Canvas.stroke();if(!bVisibleRange)this.Canvas.setLineDash([]);}if(this.PriceBGColor)this.Canvas.fillStyle=this.PriceBGColor;else this.Canvas.fillStyle=this.LineColor;this.Canvas.font=this.Font;var textWidth=this.Canvas.measureText(strValue).width;var lineHeight=this.GetFontHeight();var rtBG={Left:right+this.RightSpaceWidth,YCenter:y,Width:textWidth,Height:lineHeight};rtBG.Height+=this.TextMargin.Top+this.TextMargin.Bottom;rtBG.Width+=this.TextMargin.Left+this.TextMargin.Right;rtBG.Right=rtBG.Left+rtBG.Width;rtBG.Top=rtBG.YCenter-rtBG.Height/2;rtBG.Bottom=rtBG.Top+rtBG.Height;if(option&&IFrameSplitOperator.IsNumber(option.Top)){rtBG.Top=option.Top;rtBG.Bottom=rtBG.Top+rtBG.Height;}var xText=rtBG.Left+this.TextMargin.Left;var yText=rtBG.Top+this.TextMargin.Top+this.TextMargin.YOffset;if(this.ButtonPosition==1){this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width+this.ButtonBGWidth),ToFixedRect(rtBG.Height));}else{this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width),ToFixedRect(rtBG.Height));}this.Canvas.fillStyle=this.ValueTextColor;this.Canvas.textAlign="left";this.Canvas.textBaseline="top";this.Canvas.fillText(strValue,xText,yText);rtDraw.Left=rtBG.Left;rtDraw.Top=rtBG.Top;rtDraw.Bottom=rtBG.Bottom;rtDraw.Right=rtBG.Right;this.DrawButton(rtBG.Top,rtBG.Right,lineHeight,rtDraw);};//计算右侧价格标签大小
6675
6675
  this.CalculateValueText=function(y){var yValue=this.Frame.GetYData(y,false);var strValue=yValue.toFixed(this.Precision);if(this.LableInfo&&this.LableInfo.PriceSuffixText)strValue+=this.LableInfo.PriceSuffixText;this.Canvas.font=this.Font;var textWidth=this.Canvas.measureText(strValue).width;var lineHeight=this.GetFontHeight();var size={Width:textWidth,Height:lineHeight};size.Height+=this.TextMargin.Top+this.TextMargin.Bottom;size.Width+=this.TextMargin.Left+this.TextMargin.Right;return size;};this.DrawPriceText=function(text,ptStart,ptEnd,position){if(position!=1&&position!=0)return;var font=this.ShowPriceTextConfig.Font[position];this.Canvas.fillStyle=this.LineColor;this.Canvas.font=font;var textWidth=this.Canvas.measureText(text).width;var lineHeight=this.GetFontHeight();var rtBG=null;if(position==1){var rtBG={Left:ptStart.X,Top:ptStart.Y-lineHeight/2,Width:textWidth+4,Height:lineHeight};rtBG.Right=rtBG.Left+rtBG.Width;rtBG.Bottom=rtBG.Top+rtBG.Height;}else if(position==0){var rtBG={Right:ptEnd.X,Top:ptEnd.Y-lineHeight/2,Width:textWidth+4,Height:lineHeight};rtBG.Left=rtBG.Right-rtBG.Width;rtBG.Bottom=rtBG.Top+rtBG.Height;}this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width+this.ButtonBGWidth),ToFixedRect(rtBG.Height));this.Canvas.fillStyle=this.ValueTextColor;this.Canvas.textAlign="left";this.Canvas.textBaseline="middle";this.Canvas.fillText(text,rtBG.Left+2,ptStart.Y);};this.CalculateButtonSize=function(){var pixelRatio=GetDevicePixelRatio();if(!IFrameSplitOperator.IsNonEmptyArray(this.AryShowButton))return;var totalWidth=0;for(var i=0;i<this.AryShowButton.length;++i){var item=this.AryShowButton[i];var icon=item.Data;var font=icon.Size*pixelRatio+'px '+icon.Family;this.Canvas.font=font;item.Width=this.Canvas.measureText(icon.Text).width+2;item.Height=item.Width;if(icon.Margin){var margin=icon.Margin;if(IFrameSplitOperator.IsNumber(margin.Left))item.Width+=margin.Left;if(IFrameSplitOperator.IsNumber(margin.Right))item.Width+=margin.Right;if(IFrameSplitOperator.IsNumber(margin.Top))item.Height+=margin.Top;if(IFrameSplitOperator.IsNumber(margin.Bottom))item.Height+=margin.Bottom;}if(this.VerticalButtonInfo.Width<item.Width)this.VerticalButtonInfo.Width=item.Width;this.VerticalButtonInfo.Height+=item.Height;totalWidth+=item.Width;}this.ButtonBGWidth=totalWidth;};//垂直排列按钮
6676
6676
  this.DrawVerticalButton=function(rtLab){if(this.ButtonPosition!=3)return;if(!IFrameSplitOperator.IsNonEmptyArray(this.AryShowButton))return;if(this.VerticalButtonInfo.Height<=0)return;var rtBG={Left:rtLab.Right,Top:rtLab.Top,Width:this.VerticalButtonInfo.Width,Height:this.VerticalButtonInfo.Height};rtBG.Right=rtBG.Left+rtBG.Width;rtBG.Bottom=rtBG.Top+rtBG.Height;this.Canvas.fillStyle=this.ButtonBGColor;this.Canvas.fillRect(ToFixedRect(rtBG.Left),ToFixedRect(rtBG.Top),ToFixedRect(rtBG.Width),ToFixedRect(rtBG.Height));var pixelRatio=GetDevicePixelRatio();var yTop=rtLab.Top;for(var i=0;i<this.AryShowButton.length;++i){var item=this.AryShowButton[i];var icon=item.Data;var rtButton={Left:rtBG.Left,Top:yTop,Width:this.VerticalButtonInfo.Width,Height:item.Height};rtButton.Right=rtButton.Left+rtButton.Width;rtButton.Bottom=rtButton.Top+rtButton.Height;var yCenter=rtButton.Top+rtButton.Height/2;var xCenter=rtButton.Left+rtButton.Width/2;var font=icon.Size*pixelRatio+'px '+icon.Family;this.Canvas.font=font;this.Canvas.textAlign="center";this.Canvas.textBaseline="middle";this.Canvas.fillStyle=icon.Color;this.Canvas.fillText(icon.Text,xCenter,yCenter);this.AryButton.push({Rect:rtButton,ID:icon.ID,TooltipText:icon.TooltipText,Data:icon.Data});yTop=rtButton.Bottom;}};this.DrawButton=function(drawTop,drawLeft,drawHeight,rtDraw){if(!IFrameSplitOperator.IsNonEmptyArray(this.AryShowButton))return;if(this.ButtonPosition==3)return;//垂直按钮在DrawVerticalButton()调用
6677
6677
  if(this.ButtonPosition==1){drawTop-=drawHeight;var chartWidth=this.Frame.ChartBorder.GetChartWidth();var chartLeft=this.Frame.ChartBorder.GetRight()+this.RightSpaceWidth;if(drawLeft+this.ButtonBGWidth>chartWidth)//右边不够了 往左移动
@@ -7320,7 +7320,7 @@ TextColor:"rgb(255,255,255)",//文字颜色
7320
7320
  Font:14*GetDevicePixelRatio()+"px 微软雅黑"//文字字体
7321
7321
  },PointType:2,// 0=圆点 1=方框 2=空心圆
7322
7322
  IsShowPoint:false//是否始终显示点
7323
- };this.ChartOX={Family:'iconfont',Up:{Color:'rgb(178,34,34)',Text:'\uE697'},Down:{Color:"rgb(0,206,209)",Text:'\uE68C'},SquareLineColor:'rgb(119,136,153)'};this.KLineTrain={Font:'bold 14px arial',LastDataIcon:{Color:'rgb(0,0,205)',Text:'⬇'},BuyIcon:{Color:'rgb(0,205,102 )',Text:'B'},SellIcon:{Color:'rgb(255,127,36 )',Text:'S'},IconFont:{Family:'iconfont',Buy:{Text:'\uE64A',HScreenText:'\uE68A',Color:'rgb(255,140,0)'},Sell:{Text:'\uE64B',HScreenText:'\uE68A',Color:'rgb(6,79,18)'},Last:{Text:'\uE681',HScreenText:'\uE68A',Color:'rgb(55,0,255)'}}};this.ChartKLineTable={TextFont:{Family:'Arial',FontMaxSize:25},ItemMergin:{Left:5,Right:5,Top:4,Bottom:2}};this.ChartSimpleTable={TextFont:{Family:'微软雅黑',Size:14},ItemMargin:{Left:5,Right:5,Top:4,Bottom:2},TextColor:"rgb(0,0,0)",BGColor:"rgba(255,255,255,0.95)",BorderColor:"rgb(217,217,217)"};this.ChartSimplePie={TextFont:{Family:'微软雅黑',Size:12},BorderColor:"rgb(169,169,169)",Offset:{X:-5,Y:5}};this.ChartSimpleDoughnut={TextFont:{Family:'微软雅黑',Size:12},BorderColor:"rgb(169,169,169)",Offset:{X:-5,Y:5}};this.ChartSimpleRadar={TextFont:{Family:'微软雅黑',Size:12},BorderColor:"rgb(169,169,169)",Offset:{X:-5,Y:5},TextColor:"rgb(105,105,105)",AryBGColor:['rgba(255,255,255,0.9)','rgba(230, 234, 242,0.9)'],AryArea:[{Color:"rgba(242,154,118,0.4)",LineColor:"rgb(242,154,118)"},{Color:"rgba(121,197,228,0.4)",LineColor:"rgb(92,165,196)"}]};this.ChartBaseLineBar={UpColor:"rgb(238,21,21)",DownColor:"rgb(25,158,0)"};this.ChartDrawTVLongPosition={TopArea:{AreaColor:"rgba(214, 234, 230,0.8)",SelectedAreaColor:"rgba(214, 234, 230,0.55)",TextBGColor:"rgb(80, 150, 130)",TextColor:"rgb(255,255,255)"},BottomArea:{AreaColor:"rgb(243, 217, 218,0.8)",SelectedAreaColor:"rgba(243, 217, 218,0.55)",TextBGColor:"rgb(214, 75, 75)",TextColor:"rgb(255,255,255)"},Label:{Font:12*GetDevicePixelRatio()+'px \u5FAE\u8F6F\u96C5\u9ED1',Margin:{Left:2,Top:2,Bottom:2,Right:2}}//手机端tooltip
7323
+ };this.ChartOX={Family:'iconfont',Up:{Color:'rgb(178,34,34)',Text:'\uE697'},Down:{Color:"rgb(0,206,209)",Text:'\uE68C'},SquareLineColor:'rgb(119,136,153)'};this.KLineTrain={Font:'bold 14px arial',LastDataIcon:{Color:'rgb(0,0,205)',Text:'⬇'},BuyIcon:{Color:'rgb(0,205,102 )',Text:'B'},SellIcon:{Color:'rgb(255,127,36 )',Text:'S'},IconFont:{Family:'iconfont',Buy:{Text:'\uE64A',HScreenText:'\uE68A',Color:'rgb(255,140,0)'},Sell:{Text:'\uE64B',HScreenText:'\uE68A',Color:'rgb(6,79,18)'},Last:{Text:'\uE681',HScreenText:'\uE68A',Color:'rgb(55,0,255)'}}};this.ChartKLineTable={TextFont:{Family:'Arial',FontMaxSize:25},ItemMargin:{Left:5,Right:5,Top:4,Bottom:2}};this.ChartSimpleTable={TextFont:{Family:'微软雅黑',Size:14},ItemMargin:{Left:5,Right:5,Top:4,Bottom:2},TextColor:"rgb(0,0,0)",BGColor:"rgba(255,255,255,0.95)",BorderColor:"rgb(217,217,217)"};this.ChartSimplePie={TextFont:{Family:'微软雅黑',Size:12},BorderColor:"rgb(169,169,169)",Offset:{X:-5,Y:5}};this.ChartSimpleDoughnut={TextFont:{Family:'微软雅黑',Size:12},BorderColor:"rgb(169,169,169)",Offset:{X:-5,Y:5}};this.ChartSimpleRadar={TextFont:{Family:'微软雅黑',Size:12},BorderColor:"rgb(169,169,169)",Offset:{X:-5,Y:5},TextColor:"rgb(105,105,105)",AryBGColor:['rgba(255,255,255,0.9)','rgba(230, 234, 242,0.9)'],AryArea:[{Color:"rgba(242,154,118,0.4)",LineColor:"rgb(242,154,118)"},{Color:"rgba(121,197,228,0.4)",LineColor:"rgb(92,165,196)"}]};this.ChartBaseLineBar={UpColor:"rgb(238,21,21)",DownColor:"rgb(25,158,0)"};this.ChartDrawTVLongPosition={TopArea:{AreaColor:"rgba(214, 234, 230,0.8)",SelectedAreaColor:"rgba(214, 234, 230,0.55)",TextBGColor:"rgb(80, 150, 130)",TextColor:"rgb(255,255,255)"},BottomArea:{AreaColor:"rgb(243, 217, 218,0.8)",SelectedAreaColor:"rgba(243, 217, 218,0.55)",TextBGColor:"rgb(214, 75, 75)",TextColor:"rgb(255,255,255)"},Label:{Font:12*GetDevicePixelRatio()+'px \u5FAE\u8F6F\u96C5\u9ED1',Margin:{Left:2,Top:2,Bottom:2,Right:2}}//手机端tooltip
7324
7324
  };this.TooltipPaint={BGColor:'rgba(250,250,250,0.8)',//背景色
7325
7325
  BorderColor:'rgb(120,120,120)',//边框颜色
7326
7326
  TitleColor:'rgb(79, 79, 79)',//标题颜色
@@ -12523,7 +12523,7 @@ chart.Bars=varItem.Draw.DrawData;chart.BuildCacheData();this.SetChartIndexName(c
12523
12523
  chart.Texts=varItem.Draw.DrawData;chart.BuildCacheData();this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);};this.CreateMultiSVGIcon=function(hqChart,windowIndex,varItem,i){var chart=new ChartMultiSVGIconV2();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data=hqChart.GetKData();//绑定K线
12524
12524
  chart.Family=varItem.Draw.DrawData.Family;chart.AryIcon=varItem.Draw.DrawData.Icon;chart.BuildCacheData();this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);};this.CreateChartDrawSVG=function(hqChart,windowIndex,varItem,i){var chart=new ChartDrawSVG();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data=hqChart.GetKData();if(IFrameSplitOperator.IsBool(varItem.Draw.DrawData.EnableTooltip))chart.EnableTooltip=varItem.Draw.DrawData.EnableTooltip;if(IFrameSplitOperator.IsBool(varItem.Draw.DrawData.IsDrawFirst))chart.IsDrawFirst=varItem.Draw.DrawData.IsDrawFirst;if(IFrameSplitOperator.IsBool(varItem.Draw.EnalbeDetailNoOverlap))chart.EnalbeDetailNoOverlap=varItem.Draw.EnalbeDetailNoOverlap;if(IFrameSplitOperator.IsBool(varItem.Draw.EnableClick))chart.EnableClick=varItem.Draw.EnableClick;if(varItem.Draw.BuildKeyCallback)chart.BuildKeyCallback=varItem.Draw.BuildKeyCallback;chart.Family=varItem.Draw.DrawData.Family;chart.TextFont=varItem.Draw.DrawData.TextFont;chart.Texts=varItem.Draw.DrawData.Data;chart.BuildCacheData();this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);};this.CreateMulitHtmlDom=function(hqChart,windowIndex,varItem,i){var chart=new ChartMultiHtmlDom();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
12525
12525
  chart.Texts=varItem.Draw.DrawData;chart.DrawCallback=varItem.Draw.Callback;hqChart.ChartPaint.push(chart);};this.CreateStackedBar=function(hqChart,windowIndex,varItem,i){var chart=new ChartStackedBar();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Identify=this.Guid;chart.Data.Data=varItem.Draw.DrawData;if(IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.BarColor))chart.BarColor=varItem.Draw.BarColor;if(IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.BarName))chart.BarName=varItem.Draw.BarName;if(IFrameSplitOperator.IsNumber(varItem.Draw.LineWidth))chart.LineWidth=varItem.Draw.LineWidth;if(IFrameSplitOperator.IsNumber(varItem.Draw.BarType))chart.BarType=varItem.Draw.BarType;hqChart.ChartPaint.push(chart);var titleIndex=windowIndex+1;var titleData=new DynamicTitleData(chart.Data,chart.BarName,chart.BarColor);titleData.DataType="ChartStackedBar";hqChart.TitlePaint[titleIndex].Data[i]=titleData;};this.CreateKLineTable=function(hqChart,windowIndex,varItem,i){var chart=new ChartKLineTable();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Identify=this.Guid;chart.Data=hqChart.GetKData();//绑定K线
12526
- chart.AryTableData=varItem.Draw.DrawData;if(IFrameSplitOperator.IsNumber(varItem.Draw.RowCount))chart.RowCount=varItem.Draw.RowCount;if(IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.RowName))chart.RowName=varItem.Draw.RowName;var config=varItem.Draw.Config;if(config){if(config.BGColor)chart.BGColor=config.BGColor;if(config.TextColor)chart.TextColor=config.TextColor;if(config.BorderColor)chart.BorderColor=config.BorderColor;if(IFrameSplitOperator.IsNumber(config.RowNamePosition))chart.RowNamePosition=config.RowNamePosition;if(IFrameSplitOperator.IsNumber(config.RowHeightType))chart.RowHeightType=config.RowHeightType;if(config.ItemMergin){var subItem=config.ItemMergin;if(IFrameSplitOperator.IsNumber(subItem.Left))chart.ItemMergin.Left=subItem.Left;if(IFrameSplitOperator.IsNumber(subItem.Top))chart.ItemMergin.Top=subItem.Top;if(IFrameSplitOperator.IsNumber(subItem.Bottom))chart.ItemMergin.Bottom=subItem.Bottom;if(IFrameSplitOperator.IsNumber(subItem.Right))chart.ItemMergin.Right=subItem.Right;if(IFrameSplitOperator.IsNumber(subItem.YOffset))chart.ItemMergin.YOffset=subItem.YOffset;}if(config.TextFont){var subItem=config.TextFont;if(IFrameSplitOperator.IsNumber(subItem.FontMaxSize))chart.TextFontConfig.FontMaxSize=subItem.FontMaxSize;if(subItem.Family)chart.TextFontConfig.Family=subItem.Family;}}chart.BuildCacheData();this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);var titleIndex=windowIndex+1;var titleData=new DynamicTitleData(chart.Data,chart.BarName,chart.BarColor);titleData.DataType="ChartKLineTable";hqChart.TitlePaint[titleIndex].Data[i]=titleData;};this.CreateScatterPlot=function(hqChart,windowIndex,varItem,i){var chart=new ChartScatterPlot();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Identify=this.Guid;chart.Data.Data=varItem.Draw.DrawData;chart.Color=varItem.Draw.Color;chart.Radius=varItem.Draw.Radius;hqChart.ChartPaint.push(chart);};this.CreateScatterPlotV2=function(hqChart,windowIndex,varItem,i){var chart=new ChartScatterPlotV2();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Identify=this.Guid;chart.Data=hqChart.GetKData();//绑定K线
12526
+ chart.AryTableData=varItem.Draw.DrawData;if(IFrameSplitOperator.IsNumber(varItem.Draw.RowCount))chart.RowCount=varItem.Draw.RowCount;if(IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.RowName))chart.RowName=varItem.Draw.RowName;var config=varItem.Draw.Config;chart.SetOption(config);chart.BuildCacheData();this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);var titleIndex=windowIndex+1;var titleData=new DynamicTitleData(chart.Data,chart.BarName,chart.BarColor);titleData.DataType="ChartKLineTable";hqChart.TitlePaint[titleIndex].Data[i]=titleData;};this.CreateScatterPlot=function(hqChart,windowIndex,varItem,i){var chart=new ChartScatterPlot();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Identify=this.Guid;chart.Data.Data=varItem.Draw.DrawData;chart.Color=varItem.Draw.Color;chart.Radius=varItem.Draw.Radius;hqChart.ChartPaint.push(chart);};this.CreateScatterPlotV2=function(hqChart,windowIndex,varItem,i){var chart=new ChartScatterPlotV2();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Identify=this.Guid;chart.Data=hqChart.GetKData();//绑定K线
12527
12527
  chart.AryPoint=varItem.Draw.DrawData;var config=varItem.Draw.Config;if(config){if(config.Color)chart.Color=config.Color;if(IFrameSplitOperator.IsNumber(config.Radius))chart.Radius=config.Radius;if(config.TextColor)chart.TextColor=config.TextColor;if(config.Font)chart.Font=config.Font;}chart.BuildCacheData();this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);};this.CreateBaseLineBar=function(hqChart,windowIndex,varItem,i){var chart=new ChartBaseLineBar();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Identify=this.Guid;chart.Data=hqChart.GetKData();//绑定K线
12528
12528
  chart.AryData=varItem.Draw.DrawData;chart.Style=1;//主图使用独立坐标模式
12529
12529
  var config=varItem.Draw.Config;if(config){if(config.UpColor)chart.UpColor=config.UpColor;if(config.DownColor)chart.DownColor=config.DownColor;if(IFrameSplitOperator.IsNumber(config.DefaultMax))chart.DefaultMax=config.DefaultMax;if(IFrameSplitOperator.IsNumber(config.Style))chart.Style=config.Style;if(config.UpName)chart.UpName=config.UpName;if(config.DownName)chart.DownName=config.DownName;}chart.BuildCacheData();this.SetChartIndexName(chart);hqChart.ChartPaint.push(chart);var titleIndex=windowIndex+1;var titleData=new DynamicTitleData(chart.Data,null,chart.Color);titleData.DataType="ChartBaseLineBar";titleData.Chart=chart;hqChart.TitlePaint[titleIndex].Data[i]=titleData;};this.CreateClipColorStick=function(hqChart,windowIndex,varItem,id){var chart=new ChartClipColorStick();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.HQChart=hqChart;chart.Identify=this.Guid;chart.Data.Data=varItem.Draw.DrawData;if(varItem.Option&&chart.SetOption)chart.SetOption(varItem.Option);hqChart.ChartPaint.push(chart);var titleIndex=windowIndex+1;if(varItem.IsShowTitle===false){}else{var clrTitle=this.GetDefaultColor(id);if(varItem.Option&&varItem.Option.TitleColor)clrTitle=this.GetColor(varItem.Option.TitleColor);hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(chart.Data,varItem.Name,clrTitle);}};this.CreateColorKLine=function(hqChart,windowIndex,varItem,i){var chart=new ChartColorKline();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chart.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
@@ -12641,7 +12641,7 @@ this.CreateIcon=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.O
12641
12641
  this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateTipIcon=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartDrawSVG();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.Data=hqChart.GetKData();chart.Family=varItem.Draw.Icon.Family;chart.TextFont=g_JSChartResource.TIPICON.TextFont;var svgSize=g_JSChartResource.TIPICON.Size;var svgColor=g_JSChartResource.TIPICON.Color;var svgYOffset=0;var svgVAlign=2;//上下对齐方式
12642
12642
  if(IFrameSplitOperator.IsNumber(varItem.YOffset))svgYOffset=varItem.YOffset;if(varItem.Color)svgColor=this.GetColor(varItem.Color);if(varItem.DrawFontSize>0)svgSize=varItem.DrawFontSize;if(varItem.DrawVAlign>=0)svgVAlign=varItem.DrawVAlign;if(varItem.Draw&&IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.DrawData)&&varItem.Draw.Icon){var drawData=varItem.Draw.DrawData;var aryData=[];var isArrayTip=Array.isArray(varItem.Draw.Text);var singleTip=null;if(!isArrayTip&&varItem.Draw.Text)singleTip={Text:varItem.Draw.Text};for(var j=0;j<drawData.length;++j){var item=drawData[j];var kItem=chart.Data.Data[j];if(!IFrameSplitOperator.IsNumber(item))continue;var svgItem={Value:item,Date:kItem.Date,Time:kItem.Time,SVG:{Symbol:varItem.Draw.Icon.Symbol,Size:svgSize,Color:svgColor,YOffset:svgYOffset,VAlign:svgVAlign}};if(isArrayTip){var text=varItem.Draw.Text[j];if(text)svgItem.Tooltip={Text:text};}else{svgItem.Tooltip=singleTip;}aryData.push(svgItem);}chart.Texts=aryData;}chart.BuildCacheData();this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateBaseLineBar=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartBaseLineBar();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.HQChart=hqChart;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.Data=hqChart.GetKData();//绑定K线
12643
12643
  chart.AryData=varItem.Draw.DrawData;var config=varItem.Draw.Config;if(config){if(config.UpColor)chart.UpColor=config.UpColor;if(config.DownColor)chart.DownColor=config.DownColor;if(IFrameSplitOperator.IsNumber(config.DefaultMax))chart.DefaultMax=config.DefaultMax;if(IFrameSplitOperator.IsNumber(config.Style))chart.Style=config.Style;}chart.BuildCacheData();frame.ChartPaint.push(chart);};this.CreateKLineTable=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartKLineTable();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.HQChart=hqChart;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.Data=hqChart.GetKData();//绑定K线
12644
- chart.AryTableData=varItem.Draw.DrawData;if(IFrameSplitOperator.IsNumber(varItem.Draw.RowCount))chart.RowCount=varItem.Draw.RowCount;if(IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.RowName))chart.RowName=varItem.Draw.RowName;var config=varItem.Draw.Config;if(config){if(config.BGColor)chart.BGColor=config.BGColor;if(config.TextColor)chart.TextColor=config.TextColor;if(config.BorderColor)chart.BorderColor=config.BorderColor;if(IFrameSplitOperator.IsNumber(config.RowNamePosition))chart.RowNamePosition=config.RowNamePosition;if(IFrameSplitOperator.IsNumber(config.RowHeightType))chart.RowHeightType=config.RowHeightType;if(IFrameSplitOperator.IsNumber(config.Style))chart.Style=config.Style;if(config.ItemMergin){var subItem=config.ItemMergin;if(IFrameSplitOperator.IsNumber(subItem.Left))chart.ItemMergin.Left=subItem.Left;if(IFrameSplitOperator.IsNumber(subItem.Top))chart.ItemMergin.Top=subItem.Top;if(IFrameSplitOperator.IsNumber(subItem.Bottom))chart.ItemMergin.Bottom=subItem.Bottom;if(IFrameSplitOperator.IsNumber(subItem.Right))chart.ItemMergin.Right=subItem.Right;if(IFrameSplitOperator.IsNumber(subItem.YOffset))chart.ItemMergin.YOffset=subItem.YOffset;}if(config.TextFont){var subItem=config.TextFont;if(IFrameSplitOperator.IsNumber(subItem.FontMaxSize))chart.TextFontConfig.FontMaxSize=subItem.FontMaxSize;if(subItem.Family)chart.TextFontConfig.Family=subItem.Family;}}chart.BuildCacheData();frame.ChartPaint.push(chart);var titleIndex=windowIndex+1;var titlePaint=hqChart.TitlePaint[titleIndex];var titleData=new DynamicTitleData(chart.Data,chart.BarName,chart.BarColor);titleData.DataType="ChartKLineTable";titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;};//创建通道
12644
+ chart.AryTableData=varItem.Draw.DrawData;if(IFrameSplitOperator.IsNumber(varItem.Draw.RowCount))chart.RowCount=varItem.Draw.RowCount;if(IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.RowName))chart.RowName=varItem.Draw.RowName;var config=varItem.Draw.Config;chart.SetOption(config);chart.BuildCacheData();frame.ChartPaint.push(chart);var titleIndex=windowIndex+1;var titlePaint=hqChart.TitlePaint[titleIndex];var titleData=new DynamicTitleData(chart.Data,chart.BarName,chart.BarColor);titleData.DataType="ChartKLineTable";titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;};//创建通道
12645
12645
  this.CreateChannel=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartChannel();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.Draw.AreaColor)chart.AreaColor=varItem.Draw.AreaColor;else if(varItem.Color)chart.AreaColor=this.GetColor(varItem.Color);else chart.AreaColor=this.GetDefaultColor(id);if(varItem.Draw.Border.Color)chart.LineColor=varItem.Draw.Border.Color;else chart.LineColor=null;if(varItem.Draw.Border.Dotted)chart.LineDotted=varItem.Draw.Border.Dotted;if(varItem.Draw.Border.Width>0)chart.LineWidth=varItem.Draw.Border.Width;//let titleIndex=windowIndex+1;
12646
12646
  chart.Data.Data=varItem.Draw.DrawData;frame.ChartPaint.push(chart);};//
12647
12647
  this.CreatePartLine=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartPartLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(IFrameSplitOperator.IsPlusNumber(width))chart.LineWidth=width;}if(IFrameSplitOperator.IsBool(varItem.IsDotLine))chart.IsDotLine=varItem.IsDotLine;if(IFrameSplitOperator.IsNonEmptyArray(varItem.LineDash))chart.LineDash=varItem.LineDash;chart.Data.Data=varItem.Draw.DrawData;this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateMultiLine=function(hqChart,windowIndex,varItem,i){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartMultiLine();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.Data=hqChart.ChartPaint[0].Data;//绑定K线
@@ -12736,7 +12736,7 @@ if(item.data){outVarItem.Data=this.FittingMinuteArray(item.data,date,time,hqChar
12736
12736
  {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')//柱子
12737
12737
  {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==SCRIPT_CHART_NAME.BASELINE_BAR){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;drawItem.Config=draw.Config;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='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;drawItem.EnalbeDetailNoOverlap=draw.EnalbeDetailNoOverlap;drawItem.EnableClick=draw.EnableClick;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
12738
12738
  {drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.Callback=draw.Callback;drawItem.DrawData=this.FittingMultiText(draw.DrawData,date,time,hqChart);this.GetKLineData(drawItem.DrawData,hqChart);outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=='MULTI_BAR'){drawItem.Text=draw.Text;drawItem.Name=draw.Name;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType=="DRAWCOLORKLINE"){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart,1);outVarItem.Draw=drawItem;if(draw.Color)drawItem.Color=draw.Color;if(IFrameSplitOperator.IsBool(draw.IsEmptyBar))drawItem.IsEmptyBar=draw.IsEmptyBar;result.push(outVarItem);}else if(draw.DrawType=="DRAWTEXT_LINE"){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;//{ Price:, Text:{ Title:text, Color:textcolor }, Line:{ Type:linetype, Color:linecolor } };
12739
- outVarItem.Draw=drawItem;if(draw.Font)outVarItem.Font=draw.Font;result.push(outVarItem);}else if(draw.DrawType=="DRAWTITLE"){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;outVarItem.Draw=drawItem;result.push(outVarItem);}else{var find=g_ScriptIndexChartFactory.Get(draw.DrawType);//外部挂接
12739
+ outVarItem.Draw=drawItem;if(draw.Font)outVarItem.Font=draw.Font;result.push(outVarItem);}else if(draw.DrawType=="DRAWTITLE"){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;outVarItem.Draw=drawItem;result.push(outVarItem);}else if(draw.DrawType==SCRIPT_CHART_NAME.KLINE_TABLE){drawItem.Name=draw.Name;drawItem.Type=draw.Type;drawItem.DrawType=draw.DrawType;drawItem.DrawData=draw.DrawData;drawItem.RowCount=draw.RowCount;drawItem.RowName=draw.RowName;drawItem.Config=draw.Config;outVarItem.Draw=drawItem;result.push(outVarItem);}else{var find=g_ScriptIndexChartFactory.Get(draw.DrawType);//外部挂接
12740
12740
  if(find&&find.MinuteFittingCallback){if(find.MinuteFittingCallback(item,outVarItem,{Date:date,Time:time,HQChart:hqChart},this))result.push(outVarItem);}}}}return result;};//matchType 0=精确匹配(默认) 5=模糊匹配
12741
12741
  this.FittingMinuteArray=function(sourceData,date,time,hqChart,matchType){var minutedata=hqChart.SourceData;;//分钟线
12742
12742
  var arySingleData=[];for(var i in sourceData){var value=sourceData[i];var indexItem=new SingleData();//单列指标数据
@@ -15283,7 +15283,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
15283
15283
  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);};}/********************************************************************************
15284
15284
  * 版本信息输出
15285
15285
  *
15286
- */var HQCHART_VERSION="1.1.15007";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();//把给外界调用的方法暴露出来
15286
+ */var HQCHART_VERSION="1.1.15010";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();//把给外界调用的方法暴露出来
15287
15287
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
15288
15288
  // BaseIndex:BaseIndex,
15289
15289
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.15008",
3
+ "version": "1.1.15011",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -22244,31 +22244,7 @@ function ScriptIndex(name,script,args,option)
22244
22244
  if (IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.RowName)) chart.RowName=varItem.Draw.RowName;
22245
22245
 
22246
22246
  var config=varItem.Draw.Config;
22247
- if (config)
22248
- {
22249
- if (config.BGColor) chart.BGColor=config.BGColor;
22250
- if (config.TextColor) chart.TextColor=config.TextColor;
22251
- if (config.BorderColor) chart.BorderColor=config.BorderColor;
22252
- if (IFrameSplitOperator.IsNumber(config.RowNamePosition)) chart.RowNamePosition=config.RowNamePosition;
22253
- if (IFrameSplitOperator.IsNumber(config.RowHeightType)) chart.RowHeightType=config.RowHeightType;
22254
-
22255
- if (config.ItemMergin)
22256
- {
22257
- var subItem=config.ItemMergin;
22258
- if (IFrameSplitOperator.IsNumber(subItem.Left)) chart.ItemMergin.Left=subItem.Left;
22259
- if (IFrameSplitOperator.IsNumber(subItem.Top)) chart.ItemMergin.Top=subItem.Top;
22260
- if (IFrameSplitOperator.IsNumber(subItem.Bottom)) chart.ItemMergin.Bottom=subItem.Bottom;
22261
- if (IFrameSplitOperator.IsNumber(subItem.Right)) chart.ItemMergin.Right=subItem.Right;
22262
- if (IFrameSplitOperator.IsNumber(subItem.YOffset)) chart.ItemMergin.YOffset=subItem.YOffset;
22263
- }
22264
-
22265
- if (config.TextFont)
22266
- {
22267
- var subItem=config.TextFont;
22268
- if (IFrameSplitOperator.IsNumber(subItem.FontMaxSize)) chart.TextFontConfig.FontMaxSize=subItem.FontMaxSize;
22269
- if (subItem.Family) chart.TextFontConfig.Family=subItem.Family;
22270
- }
22271
- }
22247
+ chart.SetOption(config);
22272
22248
 
22273
22249
  chart.BuildCacheData();
22274
22250
  this.SetChartIndexName(chart);
@@ -23953,33 +23929,7 @@ function OverlayScriptIndex(name,script,args,option)
23953
23929
  if (IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.RowName)) chart.RowName=varItem.Draw.RowName;
23954
23930
 
23955
23931
  var config=varItem.Draw.Config;
23956
- if (config)
23957
- {
23958
- if (config.BGColor) chart.BGColor=config.BGColor;
23959
- if (config.TextColor) chart.TextColor=config.TextColor;
23960
- if (config.BorderColor) chart.BorderColor=config.BorderColor;
23961
- if (IFrameSplitOperator.IsNumber(config.RowNamePosition)) chart.RowNamePosition=config.RowNamePosition;
23962
- if (IFrameSplitOperator.IsNumber(config.RowHeightType)) chart.RowHeightType=config.RowHeightType;
23963
- if (IFrameSplitOperator.IsNumber(config.Style)) chart.Style=config.Style;
23964
-
23965
- if (config.ItemMergin)
23966
- {
23967
- var subItem=config.ItemMergin;
23968
- if (IFrameSplitOperator.IsNumber(subItem.Left)) chart.ItemMergin.Left=subItem.Left;
23969
- if (IFrameSplitOperator.IsNumber(subItem.Top)) chart.ItemMergin.Top=subItem.Top;
23970
- if (IFrameSplitOperator.IsNumber(subItem.Bottom)) chart.ItemMergin.Bottom=subItem.Bottom;
23971
- if (IFrameSplitOperator.IsNumber(subItem.Right)) chart.ItemMergin.Right=subItem.Right;
23972
- if (IFrameSplitOperator.IsNumber(subItem.YOffset)) chart.ItemMergin.YOffset=subItem.YOffset;
23973
- }
23974
-
23975
- if (config.TextFont)
23976
- {
23977
- var subItem=config.TextFont;
23978
- if (IFrameSplitOperator.IsNumber(subItem.FontMaxSize)) chart.TextFontConfig.FontMaxSize=subItem.FontMaxSize;
23979
- if (subItem.Family) chart.TextFontConfig.Family=subItem.Family;
23980
- }
23981
- }
23982
-
23932
+ chart.SetOption(config);
23983
23933
  chart.BuildCacheData();
23984
23934
  frame.ChartPaint.push(chart);
23985
23935
 
@@ -26048,6 +25998,18 @@ function APIScriptIndex(name,script,args,option, isOverlay)
26048
25998
 
26049
25999
  result.push(outVarItem);
26050
26000
  }
26001
+ else if (draw.DrawType==SCRIPT_CHART_NAME.KLINE_TABLE)
26002
+ {
26003
+ drawItem.Name=draw.Name;
26004
+ drawItem.Type=draw.Type;
26005
+ drawItem.DrawType=draw.DrawType;
26006
+ drawItem.DrawData=draw.DrawData;
26007
+ drawItem.RowCount=draw.RowCount;
26008
+ drawItem.RowName=draw.RowName;
26009
+ drawItem.Config=draw.Config;
26010
+ outVarItem.Draw=drawItem;
26011
+ result.push(outVarItem);
26012
+ }
26051
26013
  else
26052
26014
  {
26053
26015
  var find=g_ScriptIndexChartFactory.Get(draw.DrawType); //外部挂接
@@ -33871,7 +33871,8 @@ function ChartKLineTable()
33871
33871
  this.RowHeight=10; //行高
33872
33872
  this.RowHeightType=1; //0=均分 1=固定高度
33873
33873
  this.TextFontConfig=CloneData(g_JSChartResource.ChartKLineTable.TextFont);
33874
- this.ItemMergin=CloneData(g_JSChartResource.ChartKLineTable.ItemMergin);
33874
+ this.ItemMargin=CloneData(g_JSChartResource.ChartKLineTable.ItemMargin);
33875
+ this.CellWidth=12*GetDevicePixelRatio();
33875
33876
 
33876
33877
  this.TextFont;
33877
33878
  this.TextColor='rgb(0,0,0)';
@@ -33881,6 +33882,37 @@ function ChartKLineTable()
33881
33882
  this.MapCache=null; //key=date/date-time value={ Date:, Time:, Data:[ ] }
33882
33883
  this.GetKValue=ChartData.GetKValue;
33883
33884
  this.AryCellRect=[]; //保存单元格信息
33885
+
33886
+
33887
+ this.SetOption=function(option)
33888
+ {
33889
+ if (!option) return;
33890
+
33891
+ if (option.BGColor) this.BGColor=option.BGColor;
33892
+ if (option.TextColor) this.TextColor=option.TextColor;
33893
+ if (option.BorderColor) this.BorderColor=option.BorderColor;
33894
+ if (IFrameSplitOperator.IsNumber(option.RowNamePosition)) this.RowNamePosition=option.RowNamePosition;
33895
+ if (IFrameSplitOperator.IsNumber(option.RowHeightType)) this.RowHeightType=option.RowHeightType;
33896
+
33897
+ if (option.ItemMargin)
33898
+ {
33899
+ var subItem=option.ItemMargin;
33900
+ if (IFrameSplitOperator.IsNumber(subItem.Left)) this.ItemMargin.Left=subItem.Left;
33901
+ if (IFrameSplitOperator.IsNumber(subItem.Top)) this.ItemMargin.Top=subItem.Top;
33902
+ if (IFrameSplitOperator.IsNumber(subItem.Bottom)) this.ItemMargin.Bottom=subItem.Bottom;
33903
+ if (IFrameSplitOperator.IsNumber(subItem.Right)) this.ItemMargin.Right=subItem.Right;
33904
+ if (IFrameSplitOperator.IsNumber(subItem.YOffset)) this.ItemMargin.YOffset=subItem.YOffset;
33905
+ }
33906
+
33907
+ if (option.TextFont)
33908
+ {
33909
+ var subItem=option.TextFont;
33910
+ if (IFrameSplitOperator.IsNumber(subItem.FontMaxSize)) this.TextFontConfig.FontMaxSize=subItem.FontMaxSize;
33911
+ if (subItem.Family) this.TextFontConfig.Family=subItem.Family;
33912
+ }
33913
+
33914
+ if (IFrameSplitOperator.IsPlusNumber(option.CellWidth)) this.CellWidth=option.CellWidth;
33915
+ }
33884
33916
 
33885
33917
  this.BuildCacheData=function()
33886
33918
  {
@@ -33939,7 +33971,7 @@ function ChartKLineTable()
33939
33971
  {
33940
33972
  if (this.RowHeightType==1)
33941
33973
  {
33942
- this.RowHeight=this.TextFontConfig.FontMaxSize+this.ItemMergin.Top+this.ItemMergin.Bottom;
33974
+ this.RowHeight=this.TextFontConfig.FontMaxSize+this.ItemMargin.Top+this.ItemMargin.Bottom;
33943
33975
  }
33944
33976
  else
33945
33977
  {
@@ -33998,23 +34030,40 @@ function ChartKLineTable()
33998
34030
 
33999
34031
  var itemHeight=this.RowHeight;
34000
34032
  var itemWidth=dataWidth+distanceWidth;
34001
- if (itemHeight-this.ItemMergin.Top-this.ItemMergin.Bottom>0) itemHeight=itemHeight-this.ItemMergin.Top-this.ItemMergin.Bottom;
34002
- if (itemWidth-this.ItemMergin.Left-this.ItemMergin.Right>0) itemWidth=itemWidth-this.ItemMergin.Left-this.ItemMergin.Right;
34033
+ if (itemHeight-this.ItemMargin.Top-this.ItemMargin.Bottom>0) itemHeight=itemHeight-this.ItemMargin.Top-this.ItemMargin.Bottom;
34034
+ if (itemWidth-this.ItemMargin.Left-this.ItemMargin.Right>0) itemWidth=itemWidth-this.ItemMargin.Left-this.ItemMargin.Right;
34003
34035
 
34004
34036
  var font=this.GetDynamicTextFont(itemHeight, itemWidth);
34005
34037
  this.TextFont=font;
34006
34038
  this.Canvas.font=this.TextFont;
34039
+ var bMinute=this.IsMinuteFrame();
34040
+ var cellWidth=1
34041
+ if (bMinute)
34042
+ {
34043
+ cellWidth=(border.Right-border.Left)/this.ChartFrame.XPointCount;
34044
+ if (cellWidth<1) cellWidth=1;
34045
+ }
34007
34046
 
34008
34047
  for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
34009
34048
  {
34010
34049
  var kItem=this.Data.Data[i];
34011
34050
  if (!kItem) continue;
34012
34051
 
34013
- var left=xOffset;
34014
- var right=xOffset+dataWidth+distanceWidth;
34015
- if (right>chartright) break;
34016
- var x=left+(right-left)/2;
34017
- if (x>chartright) break;
34052
+ if (bMinute)
34053
+ {
34054
+ var x=this.ChartFrame.GetXFromIndex(j);
34055
+ var left=x-cellWidth/2;
34056
+ var right=x+cellWidth/2;
34057
+ }
34058
+ else
34059
+ {
34060
+ var left=xOffset;
34061
+ var right=xOffset+dataWidth+distanceWidth;
34062
+ if (right>chartright) break;
34063
+ var x=left+(right-left)/2;
34064
+ if (x>chartright) break;
34065
+ }
34066
+
34018
34067
 
34019
34068
  var bDrawName=false;
34020
34069
  if (j==0 && this.RowNamePosition===1) bDrawName=true;
@@ -34038,7 +34087,7 @@ function ChartKLineTable()
34038
34087
 
34039
34088
  var x=left,y=top, width=right-left;
34040
34089
  var yOffset=3;
34041
- if (this.ItemMergin.YOffset) yOffset=this.ItemMergin.YOffset;
34090
+ if (this.ItemMargin.YOffset) yOffset=this.ItemMargin.YOffset;
34042
34091
  for(var i=0;i<this.RowName.length;++i)
34043
34092
  {
34044
34093
  var item=this.RowName[i];
@@ -34120,7 +34169,7 @@ function ChartKLineTable()
34120
34169
 
34121
34170
  var x=rtBG.Right, y=rtBG.Top;
34122
34171
  var yOffset=3;
34123
- if (this.ItemMergin.YOffset) yOffset=this.ItemMergin.YOffset;
34172
+ if (this.ItemMargin.YOffset) yOffset=this.ItemMargin.YOffset;
34124
34173
  for(var i=0;i<this.RowName.length;++i)
34125
34174
  {
34126
34175
  var item=this.RowName[i];
@@ -34151,7 +34200,7 @@ function ChartKLineTable()
34151
34200
 
34152
34201
  var x=left,y=top, width=right-left;
34153
34202
  var yOffset=3;
34154
- if (this.ItemMergin.YOffset) yOffset=this.ItemMergin.YOffset;
34203
+ if (this.ItemMargin.YOffset) yOffset=this.ItemMargin.YOffset;
34155
34204
  for(var i=0; i<data.Data.length; ++i, y+=this.RowHeight)
34156
34205
  {
34157
34206
  var item=data.Data[i];
@@ -40233,7 +40282,7 @@ function ChartMinutePriceLine()
40233
40282
  {
40234
40283
  InterLastPoint:{X:this.LastPoint.X, Y:this.LastPoint.Y}, //内部点 给画布用
40235
40284
  LastPoint:{X:this.LastPoint.X/pixelRatio, Y:this.LastPoint.Y/pixelRatio}, //外部点 给DOM用
40236
- Price:this.LastPoint.Price, Data:this.LastPoint.Data,
40285
+ Price:this.LastPoint.Value, Data:this.LastPoint.Data,
40237
40286
  PixelRatio:pixelRatio,
40238
40287
  };
40239
40288
  event.Callback(event,data,this);
@@ -66545,6 +66594,7 @@ function ChartDrawHLine()
66545
66594
  this.Font=14*GetDevicePixelRatio() +"px 微软雅黑";
66546
66595
  this.TextFont=12*GetDevicePixelRatio() +"px 微软雅黑";
66547
66596
  this.RightSpaceWidth=50;
66597
+ this.PriceBGColor;
66548
66598
 
66549
66599
  this.ButtonPosition=0; //按钮位置, 0=价格后面, 1=价格上面 2=价格上面 左对齐 3=垂直排列
66550
66600
  this.ButtonBGColor='rgb(190,190,190)';
@@ -66651,6 +66701,8 @@ function ChartDrawHLine()
66651
66701
  if (IFrameSplitOperator.IsNumber(item.Bottom)) this.TextMargin.Bottom=item.Bottom;
66652
66702
  if (IFrameSplitOperator.IsNumber(item.YOffset)) this.TextMargin.YOffset=item.YOffset;
66653
66703
  }
66704
+
66705
+ if (option.PriceBGColor) this.PriceBGColor=option.PriceBGColor;
66654
66706
  }
66655
66707
  }
66656
66708
 
@@ -67091,7 +67143,8 @@ function ChartDrawHLine()
67091
67143
  if (!bVisibleRange) this.Canvas.setLineDash([]);
67092
67144
  }
67093
67145
 
67094
- this.Canvas.fillStyle=this.LineColor;
67146
+ if (this.PriceBGColor) this.Canvas.fillStyle=this.PriceBGColor;
67147
+ else this.Canvas.fillStyle=this.LineColor;
67095
67148
  this.Canvas.font=this.Font;
67096
67149
  var textWidth=this.Canvas.measureText(strValue).width;
67097
67150
  var lineHeight=this.GetFontHeight();
@@ -76826,7 +76879,7 @@ function JSChartResource()
76826
76879
  this.ChartKLineTable=
76827
76880
  {
76828
76881
  TextFont:{ Family:'Arial' , FontMaxSize:25 },
76829
- ItemMergin:{ Left:5, Right:5, Top:4, Bottom:2 },
76882
+ ItemMargin:{ Left:5, Right:5, Top:4, Bottom:2 },
76830
76883
  };
76831
76884
 
76832
76885
  this.ChartSimpleTable=
@@ -37967,7 +37967,8 @@ function ChartKLineTable()
37967
37967
  this.RowHeight=10; //行高
37968
37968
  this.RowHeightType=1; //0=均分 1=固定高度
37969
37969
  this.TextFontConfig=CloneData(g_JSChartResource.ChartKLineTable.TextFont);
37970
- this.ItemMergin=CloneData(g_JSChartResource.ChartKLineTable.ItemMergin);
37970
+ this.ItemMargin=CloneData(g_JSChartResource.ChartKLineTable.ItemMargin);
37971
+ this.CellWidth=12*GetDevicePixelRatio();
37971
37972
 
37972
37973
  this.TextFont;
37973
37974
  this.TextColor='rgb(0,0,0)';
@@ -37977,6 +37978,37 @@ function ChartKLineTable()
37977
37978
  this.MapCache=null; //key=date/date-time value={ Date:, Time:, Data:[ ] }
37978
37979
  this.GetKValue=ChartData.GetKValue;
37979
37980
  this.AryCellRect=[]; //保存单元格信息
37981
+
37982
+
37983
+ this.SetOption=function(option)
37984
+ {
37985
+ if (!option) return;
37986
+
37987
+ if (option.BGColor) this.BGColor=option.BGColor;
37988
+ if (option.TextColor) this.TextColor=option.TextColor;
37989
+ if (option.BorderColor) this.BorderColor=option.BorderColor;
37990
+ if (IFrameSplitOperator.IsNumber(option.RowNamePosition)) this.RowNamePosition=option.RowNamePosition;
37991
+ if (IFrameSplitOperator.IsNumber(option.RowHeightType)) this.RowHeightType=option.RowHeightType;
37992
+
37993
+ if (option.ItemMargin)
37994
+ {
37995
+ var subItem=option.ItemMargin;
37996
+ if (IFrameSplitOperator.IsNumber(subItem.Left)) this.ItemMargin.Left=subItem.Left;
37997
+ if (IFrameSplitOperator.IsNumber(subItem.Top)) this.ItemMargin.Top=subItem.Top;
37998
+ if (IFrameSplitOperator.IsNumber(subItem.Bottom)) this.ItemMargin.Bottom=subItem.Bottom;
37999
+ if (IFrameSplitOperator.IsNumber(subItem.Right)) this.ItemMargin.Right=subItem.Right;
38000
+ if (IFrameSplitOperator.IsNumber(subItem.YOffset)) this.ItemMargin.YOffset=subItem.YOffset;
38001
+ }
38002
+
38003
+ if (option.TextFont)
38004
+ {
38005
+ var subItem=option.TextFont;
38006
+ if (IFrameSplitOperator.IsNumber(subItem.FontMaxSize)) this.TextFontConfig.FontMaxSize=subItem.FontMaxSize;
38007
+ if (subItem.Family) this.TextFontConfig.Family=subItem.Family;
38008
+ }
38009
+
38010
+ if (IFrameSplitOperator.IsPlusNumber(option.CellWidth)) this.CellWidth=option.CellWidth;
38011
+ }
37980
38012
 
37981
38013
  this.BuildCacheData=function()
37982
38014
  {
@@ -38035,7 +38067,7 @@ function ChartKLineTable()
38035
38067
  {
38036
38068
  if (this.RowHeightType==1)
38037
38069
  {
38038
- this.RowHeight=this.TextFontConfig.FontMaxSize+this.ItemMergin.Top+this.ItemMergin.Bottom;
38070
+ this.RowHeight=this.TextFontConfig.FontMaxSize+this.ItemMargin.Top+this.ItemMargin.Bottom;
38039
38071
  }
38040
38072
  else
38041
38073
  {
@@ -38094,23 +38126,40 @@ function ChartKLineTable()
38094
38126
 
38095
38127
  var itemHeight=this.RowHeight;
38096
38128
  var itemWidth=dataWidth+distanceWidth;
38097
- if (itemHeight-this.ItemMergin.Top-this.ItemMergin.Bottom>0) itemHeight=itemHeight-this.ItemMergin.Top-this.ItemMergin.Bottom;
38098
- if (itemWidth-this.ItemMergin.Left-this.ItemMergin.Right>0) itemWidth=itemWidth-this.ItemMergin.Left-this.ItemMergin.Right;
38129
+ if (itemHeight-this.ItemMargin.Top-this.ItemMargin.Bottom>0) itemHeight=itemHeight-this.ItemMargin.Top-this.ItemMargin.Bottom;
38130
+ if (itemWidth-this.ItemMargin.Left-this.ItemMargin.Right>0) itemWidth=itemWidth-this.ItemMargin.Left-this.ItemMargin.Right;
38099
38131
 
38100
38132
  var font=this.GetDynamicTextFont(itemHeight, itemWidth);
38101
38133
  this.TextFont=font;
38102
38134
  this.Canvas.font=this.TextFont;
38135
+ var bMinute=this.IsMinuteFrame();
38136
+ var cellWidth=1
38137
+ if (bMinute)
38138
+ {
38139
+ cellWidth=(border.Right-border.Left)/this.ChartFrame.XPointCount;
38140
+ if (cellWidth<1) cellWidth=1;
38141
+ }
38103
38142
 
38104
38143
  for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
38105
38144
  {
38106
38145
  var kItem=this.Data.Data[i];
38107
38146
  if (!kItem) continue;
38108
38147
 
38109
- var left=xOffset;
38110
- var right=xOffset+dataWidth+distanceWidth;
38111
- if (right>chartright) break;
38112
- var x=left+(right-left)/2;
38113
- if (x>chartright) break;
38148
+ if (bMinute)
38149
+ {
38150
+ var x=this.ChartFrame.GetXFromIndex(j);
38151
+ var left=x-cellWidth/2;
38152
+ var right=x+cellWidth/2;
38153
+ }
38154
+ else
38155
+ {
38156
+ var left=xOffset;
38157
+ var right=xOffset+dataWidth+distanceWidth;
38158
+ if (right>chartright) break;
38159
+ var x=left+(right-left)/2;
38160
+ if (x>chartright) break;
38161
+ }
38162
+
38114
38163
 
38115
38164
  var bDrawName=false;
38116
38165
  if (j==0 && this.RowNamePosition===1) bDrawName=true;
@@ -38134,7 +38183,7 @@ function ChartKLineTable()
38134
38183
 
38135
38184
  var x=left,y=top, width=right-left;
38136
38185
  var yOffset=3;
38137
- if (this.ItemMergin.YOffset) yOffset=this.ItemMergin.YOffset;
38186
+ if (this.ItemMargin.YOffset) yOffset=this.ItemMargin.YOffset;
38138
38187
  for(var i=0;i<this.RowName.length;++i)
38139
38188
  {
38140
38189
  var item=this.RowName[i];
@@ -38216,7 +38265,7 @@ function ChartKLineTable()
38216
38265
 
38217
38266
  var x=rtBG.Right, y=rtBG.Top;
38218
38267
  var yOffset=3;
38219
- if (this.ItemMergin.YOffset) yOffset=this.ItemMergin.YOffset;
38268
+ if (this.ItemMargin.YOffset) yOffset=this.ItemMargin.YOffset;
38220
38269
  for(var i=0;i<this.RowName.length;++i)
38221
38270
  {
38222
38271
  var item=this.RowName[i];
@@ -38247,7 +38296,7 @@ function ChartKLineTable()
38247
38296
 
38248
38297
  var x=left,y=top, width=right-left;
38249
38298
  var yOffset=3;
38250
- if (this.ItemMergin.YOffset) yOffset=this.ItemMergin.YOffset;
38299
+ if (this.ItemMargin.YOffset) yOffset=this.ItemMargin.YOffset;
38251
38300
  for(var i=0; i<data.Data.length; ++i, y+=this.RowHeight)
38252
38301
  {
38253
38302
  var item=data.Data[i];
@@ -44329,7 +44378,7 @@ function ChartMinutePriceLine()
44329
44378
  {
44330
44379
  InterLastPoint:{X:this.LastPoint.X, Y:this.LastPoint.Y}, //内部点 给画布用
44331
44380
  LastPoint:{X:this.LastPoint.X/pixelRatio, Y:this.LastPoint.Y/pixelRatio}, //外部点 给DOM用
44332
- Price:this.LastPoint.Price, Data:this.LastPoint.Data,
44381
+ Price:this.LastPoint.Value, Data:this.LastPoint.Data,
44333
44382
  PixelRatio:pixelRatio,
44334
44383
  };
44335
44384
  event.Callback(event,data,this);
@@ -70641,6 +70690,7 @@ function ChartDrawHLine()
70641
70690
  this.Font=14*GetDevicePixelRatio() +"px 微软雅黑";
70642
70691
  this.TextFont=12*GetDevicePixelRatio() +"px 微软雅黑";
70643
70692
  this.RightSpaceWidth=50;
70693
+ this.PriceBGColor;
70644
70694
 
70645
70695
  this.ButtonPosition=0; //按钮位置, 0=价格后面, 1=价格上面 2=价格上面 左对齐 3=垂直排列
70646
70696
  this.ButtonBGColor='rgb(190,190,190)';
@@ -70747,6 +70797,8 @@ function ChartDrawHLine()
70747
70797
  if (IFrameSplitOperator.IsNumber(item.Bottom)) this.TextMargin.Bottom=item.Bottom;
70748
70798
  if (IFrameSplitOperator.IsNumber(item.YOffset)) this.TextMargin.YOffset=item.YOffset;
70749
70799
  }
70800
+
70801
+ if (option.PriceBGColor) this.PriceBGColor=option.PriceBGColor;
70750
70802
  }
70751
70803
  }
70752
70804
 
@@ -71187,7 +71239,8 @@ function ChartDrawHLine()
71187
71239
  if (!bVisibleRange) this.Canvas.setLineDash([]);
71188
71240
  }
71189
71241
 
71190
- this.Canvas.fillStyle=this.LineColor;
71242
+ if (this.PriceBGColor) this.Canvas.fillStyle=this.PriceBGColor;
71243
+ else this.Canvas.fillStyle=this.LineColor;
71191
71244
  this.Canvas.font=this.Font;
71192
71245
  var textWidth=this.Canvas.measureText(strValue).width;
71193
71246
  var lineHeight=this.GetFontHeight();
@@ -80922,7 +80975,7 @@ function JSChartResource()
80922
80975
  this.ChartKLineTable=
80923
80976
  {
80924
80977
  TextFont:{ Family:'Arial' , FontMaxSize:25 },
80925
- ItemMergin:{ Left:5, Right:5, Top:4, Bottom:2 },
80978
+ ItemMargin:{ Left:5, Right:5, Top:4, Bottom:2 },
80926
80979
  };
80927
80980
 
80928
80981
  this.ChartSimpleTable=
@@ -130866,31 +130919,7 @@ function ScriptIndex(name,script,args,option)
130866
130919
  if (IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.RowName)) chart.RowName=varItem.Draw.RowName;
130867
130920
 
130868
130921
  var config=varItem.Draw.Config;
130869
- if (config)
130870
- {
130871
- if (config.BGColor) chart.BGColor=config.BGColor;
130872
- if (config.TextColor) chart.TextColor=config.TextColor;
130873
- if (config.BorderColor) chart.BorderColor=config.BorderColor;
130874
- if (IFrameSplitOperator.IsNumber(config.RowNamePosition)) chart.RowNamePosition=config.RowNamePosition;
130875
- if (IFrameSplitOperator.IsNumber(config.RowHeightType)) chart.RowHeightType=config.RowHeightType;
130876
-
130877
- if (config.ItemMergin)
130878
- {
130879
- var subItem=config.ItemMergin;
130880
- if (IFrameSplitOperator.IsNumber(subItem.Left)) chart.ItemMergin.Left=subItem.Left;
130881
- if (IFrameSplitOperator.IsNumber(subItem.Top)) chart.ItemMergin.Top=subItem.Top;
130882
- if (IFrameSplitOperator.IsNumber(subItem.Bottom)) chart.ItemMergin.Bottom=subItem.Bottom;
130883
- if (IFrameSplitOperator.IsNumber(subItem.Right)) chart.ItemMergin.Right=subItem.Right;
130884
- if (IFrameSplitOperator.IsNumber(subItem.YOffset)) chart.ItemMergin.YOffset=subItem.YOffset;
130885
- }
130886
-
130887
- if (config.TextFont)
130888
- {
130889
- var subItem=config.TextFont;
130890
- if (IFrameSplitOperator.IsNumber(subItem.FontMaxSize)) chart.TextFontConfig.FontMaxSize=subItem.FontMaxSize;
130891
- if (subItem.Family) chart.TextFontConfig.Family=subItem.Family;
130892
- }
130893
- }
130922
+ chart.SetOption(config);
130894
130923
 
130895
130924
  chart.BuildCacheData();
130896
130925
  this.SetChartIndexName(chart);
@@ -132575,33 +132604,7 @@ function OverlayScriptIndex(name,script,args,option)
132575
132604
  if (IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.RowName)) chart.RowName=varItem.Draw.RowName;
132576
132605
 
132577
132606
  var config=varItem.Draw.Config;
132578
- if (config)
132579
- {
132580
- if (config.BGColor) chart.BGColor=config.BGColor;
132581
- if (config.TextColor) chart.TextColor=config.TextColor;
132582
- if (config.BorderColor) chart.BorderColor=config.BorderColor;
132583
- if (IFrameSplitOperator.IsNumber(config.RowNamePosition)) chart.RowNamePosition=config.RowNamePosition;
132584
- if (IFrameSplitOperator.IsNumber(config.RowHeightType)) chart.RowHeightType=config.RowHeightType;
132585
- if (IFrameSplitOperator.IsNumber(config.Style)) chart.Style=config.Style;
132586
-
132587
- if (config.ItemMergin)
132588
- {
132589
- var subItem=config.ItemMergin;
132590
- if (IFrameSplitOperator.IsNumber(subItem.Left)) chart.ItemMergin.Left=subItem.Left;
132591
- if (IFrameSplitOperator.IsNumber(subItem.Top)) chart.ItemMergin.Top=subItem.Top;
132592
- if (IFrameSplitOperator.IsNumber(subItem.Bottom)) chart.ItemMergin.Bottom=subItem.Bottom;
132593
- if (IFrameSplitOperator.IsNumber(subItem.Right)) chart.ItemMergin.Right=subItem.Right;
132594
- if (IFrameSplitOperator.IsNumber(subItem.YOffset)) chart.ItemMergin.YOffset=subItem.YOffset;
132595
- }
132596
-
132597
- if (config.TextFont)
132598
- {
132599
- var subItem=config.TextFont;
132600
- if (IFrameSplitOperator.IsNumber(subItem.FontMaxSize)) chart.TextFontConfig.FontMaxSize=subItem.FontMaxSize;
132601
- if (subItem.Family) chart.TextFontConfig.Family=subItem.Family;
132602
- }
132603
- }
132604
-
132607
+ chart.SetOption(config);
132605
132608
  chart.BuildCacheData();
132606
132609
  frame.ChartPaint.push(chart);
132607
132610
 
@@ -134670,6 +134673,18 @@ function APIScriptIndex(name,script,args,option, isOverlay)
134670
134673
 
134671
134674
  result.push(outVarItem);
134672
134675
  }
134676
+ else if (draw.DrawType==SCRIPT_CHART_NAME.KLINE_TABLE)
134677
+ {
134678
+ drawItem.Name=draw.Name;
134679
+ drawItem.Type=draw.Type;
134680
+ drawItem.DrawType=draw.DrawType;
134681
+ drawItem.DrawData=draw.DrawData;
134682
+ drawItem.RowCount=draw.RowCount;
134683
+ drawItem.RowName=draw.RowName;
134684
+ drawItem.Config=draw.Config;
134685
+ outVarItem.Draw=drawItem;
134686
+ result.push(outVarItem);
134687
+ }
134673
134688
  else
134674
134689
  {
134675
134690
  var find=g_ScriptIndexChartFactory.Get(draw.DrawType); //外部挂接
@@ -152504,7 +152519,7 @@ function ScrollBarBGChart()
152504
152519
 
152505
152520
 
152506
152521
 
152507
- var HQCHART_VERSION="1.1.15007";
152522
+ var HQCHART_VERSION="1.1.15010";
152508
152523
 
152509
152524
  function PrintHQChartVersion()
152510
152525
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.15007";
8
+ var HQCHART_VERSION="1.1.15010";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -38011,7 +38011,8 @@ function ChartKLineTable()
38011
38011
  this.RowHeight=10; //行高
38012
38012
  this.RowHeightType=1; //0=均分 1=固定高度
38013
38013
  this.TextFontConfig=CloneData(g_JSChartResource.ChartKLineTable.TextFont);
38014
- this.ItemMergin=CloneData(g_JSChartResource.ChartKLineTable.ItemMergin);
38014
+ this.ItemMargin=CloneData(g_JSChartResource.ChartKLineTable.ItemMargin);
38015
+ this.CellWidth=12*GetDevicePixelRatio();
38015
38016
 
38016
38017
  this.TextFont;
38017
38018
  this.TextColor='rgb(0,0,0)';
@@ -38021,6 +38022,37 @@ function ChartKLineTable()
38021
38022
  this.MapCache=null; //key=date/date-time value={ Date:, Time:, Data:[ ] }
38022
38023
  this.GetKValue=ChartData.GetKValue;
38023
38024
  this.AryCellRect=[]; //保存单元格信息
38025
+
38026
+
38027
+ this.SetOption=function(option)
38028
+ {
38029
+ if (!option) return;
38030
+
38031
+ if (option.BGColor) this.BGColor=option.BGColor;
38032
+ if (option.TextColor) this.TextColor=option.TextColor;
38033
+ if (option.BorderColor) this.BorderColor=option.BorderColor;
38034
+ if (IFrameSplitOperator.IsNumber(option.RowNamePosition)) this.RowNamePosition=option.RowNamePosition;
38035
+ if (IFrameSplitOperator.IsNumber(option.RowHeightType)) this.RowHeightType=option.RowHeightType;
38036
+
38037
+ if (option.ItemMargin)
38038
+ {
38039
+ var subItem=option.ItemMargin;
38040
+ if (IFrameSplitOperator.IsNumber(subItem.Left)) this.ItemMargin.Left=subItem.Left;
38041
+ if (IFrameSplitOperator.IsNumber(subItem.Top)) this.ItemMargin.Top=subItem.Top;
38042
+ if (IFrameSplitOperator.IsNumber(subItem.Bottom)) this.ItemMargin.Bottom=subItem.Bottom;
38043
+ if (IFrameSplitOperator.IsNumber(subItem.Right)) this.ItemMargin.Right=subItem.Right;
38044
+ if (IFrameSplitOperator.IsNumber(subItem.YOffset)) this.ItemMargin.YOffset=subItem.YOffset;
38045
+ }
38046
+
38047
+ if (option.TextFont)
38048
+ {
38049
+ var subItem=option.TextFont;
38050
+ if (IFrameSplitOperator.IsNumber(subItem.FontMaxSize)) this.TextFontConfig.FontMaxSize=subItem.FontMaxSize;
38051
+ if (subItem.Family) this.TextFontConfig.Family=subItem.Family;
38052
+ }
38053
+
38054
+ if (IFrameSplitOperator.IsPlusNumber(option.CellWidth)) this.CellWidth=option.CellWidth;
38055
+ }
38024
38056
 
38025
38057
  this.BuildCacheData=function()
38026
38058
  {
@@ -38079,7 +38111,7 @@ function ChartKLineTable()
38079
38111
  {
38080
38112
  if (this.RowHeightType==1)
38081
38113
  {
38082
- this.RowHeight=this.TextFontConfig.FontMaxSize+this.ItemMergin.Top+this.ItemMergin.Bottom;
38114
+ this.RowHeight=this.TextFontConfig.FontMaxSize+this.ItemMargin.Top+this.ItemMargin.Bottom;
38083
38115
  }
38084
38116
  else
38085
38117
  {
@@ -38138,23 +38170,40 @@ function ChartKLineTable()
38138
38170
 
38139
38171
  var itemHeight=this.RowHeight;
38140
38172
  var itemWidth=dataWidth+distanceWidth;
38141
- if (itemHeight-this.ItemMergin.Top-this.ItemMergin.Bottom>0) itemHeight=itemHeight-this.ItemMergin.Top-this.ItemMergin.Bottom;
38142
- if (itemWidth-this.ItemMergin.Left-this.ItemMergin.Right>0) itemWidth=itemWidth-this.ItemMergin.Left-this.ItemMergin.Right;
38173
+ if (itemHeight-this.ItemMargin.Top-this.ItemMargin.Bottom>0) itemHeight=itemHeight-this.ItemMargin.Top-this.ItemMargin.Bottom;
38174
+ if (itemWidth-this.ItemMargin.Left-this.ItemMargin.Right>0) itemWidth=itemWidth-this.ItemMargin.Left-this.ItemMargin.Right;
38143
38175
 
38144
38176
  var font=this.GetDynamicTextFont(itemHeight, itemWidth);
38145
38177
  this.TextFont=font;
38146
38178
  this.Canvas.font=this.TextFont;
38179
+ var bMinute=this.IsMinuteFrame();
38180
+ var cellWidth=1
38181
+ if (bMinute)
38182
+ {
38183
+ cellWidth=(border.Right-border.Left)/this.ChartFrame.XPointCount;
38184
+ if (cellWidth<1) cellWidth=1;
38185
+ }
38147
38186
 
38148
38187
  for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
38149
38188
  {
38150
38189
  var kItem=this.Data.Data[i];
38151
38190
  if (!kItem) continue;
38152
38191
 
38153
- var left=xOffset;
38154
- var right=xOffset+dataWidth+distanceWidth;
38155
- if (right>chartright) break;
38156
- var x=left+(right-left)/2;
38157
- if (x>chartright) break;
38192
+ if (bMinute)
38193
+ {
38194
+ var x=this.ChartFrame.GetXFromIndex(j);
38195
+ var left=x-cellWidth/2;
38196
+ var right=x+cellWidth/2;
38197
+ }
38198
+ else
38199
+ {
38200
+ var left=xOffset;
38201
+ var right=xOffset+dataWidth+distanceWidth;
38202
+ if (right>chartright) break;
38203
+ var x=left+(right-left)/2;
38204
+ if (x>chartright) break;
38205
+ }
38206
+
38158
38207
 
38159
38208
  var bDrawName=false;
38160
38209
  if (j==0 && this.RowNamePosition===1) bDrawName=true;
@@ -38178,7 +38227,7 @@ function ChartKLineTable()
38178
38227
 
38179
38228
  var x=left,y=top, width=right-left;
38180
38229
  var yOffset=3;
38181
- if (this.ItemMergin.YOffset) yOffset=this.ItemMergin.YOffset;
38230
+ if (this.ItemMargin.YOffset) yOffset=this.ItemMargin.YOffset;
38182
38231
  for(var i=0;i<this.RowName.length;++i)
38183
38232
  {
38184
38233
  var item=this.RowName[i];
@@ -38260,7 +38309,7 @@ function ChartKLineTable()
38260
38309
 
38261
38310
  var x=rtBG.Right, y=rtBG.Top;
38262
38311
  var yOffset=3;
38263
- if (this.ItemMergin.YOffset) yOffset=this.ItemMergin.YOffset;
38312
+ if (this.ItemMargin.YOffset) yOffset=this.ItemMargin.YOffset;
38264
38313
  for(var i=0;i<this.RowName.length;++i)
38265
38314
  {
38266
38315
  var item=this.RowName[i];
@@ -38291,7 +38340,7 @@ function ChartKLineTable()
38291
38340
 
38292
38341
  var x=left,y=top, width=right-left;
38293
38342
  var yOffset=3;
38294
- if (this.ItemMergin.YOffset) yOffset=this.ItemMergin.YOffset;
38343
+ if (this.ItemMargin.YOffset) yOffset=this.ItemMargin.YOffset;
38295
38344
  for(var i=0; i<data.Data.length; ++i, y+=this.RowHeight)
38296
38345
  {
38297
38346
  var item=data.Data[i];
@@ -44373,7 +44422,7 @@ function ChartMinutePriceLine()
44373
44422
  {
44374
44423
  InterLastPoint:{X:this.LastPoint.X, Y:this.LastPoint.Y}, //内部点 给画布用
44375
44424
  LastPoint:{X:this.LastPoint.X/pixelRatio, Y:this.LastPoint.Y/pixelRatio}, //外部点 给DOM用
44376
- Price:this.LastPoint.Price, Data:this.LastPoint.Data,
44425
+ Price:this.LastPoint.Value, Data:this.LastPoint.Data,
44377
44426
  PixelRatio:pixelRatio,
44378
44427
  };
44379
44428
  event.Callback(event,data,this);
@@ -70685,6 +70734,7 @@ function ChartDrawHLine()
70685
70734
  this.Font=14*GetDevicePixelRatio() +"px 微软雅黑";
70686
70735
  this.TextFont=12*GetDevicePixelRatio() +"px 微软雅黑";
70687
70736
  this.RightSpaceWidth=50;
70737
+ this.PriceBGColor;
70688
70738
 
70689
70739
  this.ButtonPosition=0; //按钮位置, 0=价格后面, 1=价格上面 2=价格上面 左对齐 3=垂直排列
70690
70740
  this.ButtonBGColor='rgb(190,190,190)';
@@ -70791,6 +70841,8 @@ function ChartDrawHLine()
70791
70841
  if (IFrameSplitOperator.IsNumber(item.Bottom)) this.TextMargin.Bottom=item.Bottom;
70792
70842
  if (IFrameSplitOperator.IsNumber(item.YOffset)) this.TextMargin.YOffset=item.YOffset;
70793
70843
  }
70844
+
70845
+ if (option.PriceBGColor) this.PriceBGColor=option.PriceBGColor;
70794
70846
  }
70795
70847
  }
70796
70848
 
@@ -71231,7 +71283,8 @@ function ChartDrawHLine()
71231
71283
  if (!bVisibleRange) this.Canvas.setLineDash([]);
71232
71284
  }
71233
71285
 
71234
- this.Canvas.fillStyle=this.LineColor;
71286
+ if (this.PriceBGColor) this.Canvas.fillStyle=this.PriceBGColor;
71287
+ else this.Canvas.fillStyle=this.LineColor;
71235
71288
  this.Canvas.font=this.Font;
71236
71289
  var textWidth=this.Canvas.measureText(strValue).width;
71237
71290
  var lineHeight=this.GetFontHeight();
@@ -80966,7 +81019,7 @@ function JSChartResource()
80966
81019
  this.ChartKLineTable=
80967
81020
  {
80968
81021
  TextFont:{ Family:'Arial' , FontMaxSize:25 },
80969
- ItemMergin:{ Left:5, Right:5, Top:4, Bottom:2 },
81022
+ ItemMargin:{ Left:5, Right:5, Top:4, Bottom:2 },
80970
81023
  };
80971
81024
 
80972
81025
  this.ChartSimpleTable=
@@ -130910,31 +130963,7 @@ function ScriptIndex(name,script,args,option)
130910
130963
  if (IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.RowName)) chart.RowName=varItem.Draw.RowName;
130911
130964
 
130912
130965
  var config=varItem.Draw.Config;
130913
- if (config)
130914
- {
130915
- if (config.BGColor) chart.BGColor=config.BGColor;
130916
- if (config.TextColor) chart.TextColor=config.TextColor;
130917
- if (config.BorderColor) chart.BorderColor=config.BorderColor;
130918
- if (IFrameSplitOperator.IsNumber(config.RowNamePosition)) chart.RowNamePosition=config.RowNamePosition;
130919
- if (IFrameSplitOperator.IsNumber(config.RowHeightType)) chart.RowHeightType=config.RowHeightType;
130920
-
130921
- if (config.ItemMergin)
130922
- {
130923
- var subItem=config.ItemMergin;
130924
- if (IFrameSplitOperator.IsNumber(subItem.Left)) chart.ItemMergin.Left=subItem.Left;
130925
- if (IFrameSplitOperator.IsNumber(subItem.Top)) chart.ItemMergin.Top=subItem.Top;
130926
- if (IFrameSplitOperator.IsNumber(subItem.Bottom)) chart.ItemMergin.Bottom=subItem.Bottom;
130927
- if (IFrameSplitOperator.IsNumber(subItem.Right)) chart.ItemMergin.Right=subItem.Right;
130928
- if (IFrameSplitOperator.IsNumber(subItem.YOffset)) chart.ItemMergin.YOffset=subItem.YOffset;
130929
- }
130930
-
130931
- if (config.TextFont)
130932
- {
130933
- var subItem=config.TextFont;
130934
- if (IFrameSplitOperator.IsNumber(subItem.FontMaxSize)) chart.TextFontConfig.FontMaxSize=subItem.FontMaxSize;
130935
- if (subItem.Family) chart.TextFontConfig.Family=subItem.Family;
130936
- }
130937
- }
130966
+ chart.SetOption(config);
130938
130967
 
130939
130968
  chart.BuildCacheData();
130940
130969
  this.SetChartIndexName(chart);
@@ -132619,33 +132648,7 @@ function OverlayScriptIndex(name,script,args,option)
132619
132648
  if (IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.RowName)) chart.RowName=varItem.Draw.RowName;
132620
132649
 
132621
132650
  var config=varItem.Draw.Config;
132622
- if (config)
132623
- {
132624
- if (config.BGColor) chart.BGColor=config.BGColor;
132625
- if (config.TextColor) chart.TextColor=config.TextColor;
132626
- if (config.BorderColor) chart.BorderColor=config.BorderColor;
132627
- if (IFrameSplitOperator.IsNumber(config.RowNamePosition)) chart.RowNamePosition=config.RowNamePosition;
132628
- if (IFrameSplitOperator.IsNumber(config.RowHeightType)) chart.RowHeightType=config.RowHeightType;
132629
- if (IFrameSplitOperator.IsNumber(config.Style)) chart.Style=config.Style;
132630
-
132631
- if (config.ItemMergin)
132632
- {
132633
- var subItem=config.ItemMergin;
132634
- if (IFrameSplitOperator.IsNumber(subItem.Left)) chart.ItemMergin.Left=subItem.Left;
132635
- if (IFrameSplitOperator.IsNumber(subItem.Top)) chart.ItemMergin.Top=subItem.Top;
132636
- if (IFrameSplitOperator.IsNumber(subItem.Bottom)) chart.ItemMergin.Bottom=subItem.Bottom;
132637
- if (IFrameSplitOperator.IsNumber(subItem.Right)) chart.ItemMergin.Right=subItem.Right;
132638
- if (IFrameSplitOperator.IsNumber(subItem.YOffset)) chart.ItemMergin.YOffset=subItem.YOffset;
132639
- }
132640
-
132641
- if (config.TextFont)
132642
- {
132643
- var subItem=config.TextFont;
132644
- if (IFrameSplitOperator.IsNumber(subItem.FontMaxSize)) chart.TextFontConfig.FontMaxSize=subItem.FontMaxSize;
132645
- if (subItem.Family) chart.TextFontConfig.Family=subItem.Family;
132646
- }
132647
- }
132648
-
132651
+ chart.SetOption(config);
132649
132652
  chart.BuildCacheData();
132650
132653
  frame.ChartPaint.push(chart);
132651
132654
 
@@ -134714,6 +134717,18 @@ function APIScriptIndex(name,script,args,option, isOverlay)
134714
134717
 
134715
134718
  result.push(outVarItem);
134716
134719
  }
134720
+ else if (draw.DrawType==SCRIPT_CHART_NAME.KLINE_TABLE)
134721
+ {
134722
+ drawItem.Name=draw.Name;
134723
+ drawItem.Type=draw.Type;
134724
+ drawItem.DrawType=draw.DrawType;
134725
+ drawItem.DrawData=draw.DrawData;
134726
+ drawItem.RowCount=draw.RowCount;
134727
+ drawItem.RowName=draw.RowName;
134728
+ drawItem.Config=draw.Config;
134729
+ outVarItem.Draw=drawItem;
134730
+ result.push(outVarItem);
134731
+ }
134717
134732
  else
134718
134733
  {
134719
134734
  var find=g_ScriptIndexChartFactory.Get(draw.DrawType); //外部挂接
@@ -163895,7 +163910,7 @@ function HQChartScriptWorker()
163895
163910
 
163896
163911
 
163897
163912
 
163898
- var HQCHART_VERSION="1.1.15007";
163913
+ var HQCHART_VERSION="1.1.15010";
163899
163914
 
163900
163915
  function PrintHQChartVersion()
163901
163916
  {