hqchart 1.1.15006 → 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.
@@ -1592,7 +1592,9 @@ CHIP_CLOSE:45//关闭筹码图
1592
1592
  };var JSCHART_DATA_FIELD_ID={KLINE_ORDERFLOW:99,MINUTE_MULTI_DAY_EXTENDDATA:21,//多日分时图扩展数据序号
1593
1593
  MINUTE_DAY_EXTENDDATA:21,MINUTE_BEFOREOPEN_EXTENDDATA:21,MINUTE_AFTERCLOSE_EXTENDDATA:21,KLINE_COLOR_DATA:66,//K线自定义颜色数据
1594
1594
  KLINE_DAY_EXTENDDATA:25,KLINE_MINUTE_EXTENDDATA:25,//OrderBook Heatmap
1595
- KLINE_HEATMAP:67};var JSCHART_WORKER_MESSAGE_ID={EXECUTE_SCRIPT:1,//工作线程执行脚本
1595
+ KLINE_HEATMAP:67,//报价列表
1596
+ REPORT_EXTENDDATA:81//报价列表扩展数据
1597
+ };var JSCHART_WORKER_MESSAGE_ID={EXECUTE_SCRIPT:1,//工作线程执行脚本
1596
1598
  FINISH_EXECUTE_SCRIPT:2,//脚本执行完成
1597
1599
  ERROR_EXECUTE_SCRIPT:3};var JSCHART_MENU_ID={CMD_CHANGE_PERIOD_ID:1,//切换周期
1598
1600
  CMD_CHANGE_WINDOW_COUNT_ID:2,//窗口个数
@@ -4159,15 +4161,15 @@ this.BorderColor;//分割线颜色
4159
4161
  this.RowCount=5;//行数
4160
4162
  this.RowHeight=10;//行高
4161
4163
  this.RowHeightType=1;//0=均分 1=固定高度
4162
- 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=底部指定行数;
4163
4165
  this.AryTableData=[];this.MapCache=null;//key=date/date-time value={ Date:, Time:, Data:[ ] }
4164
4166
  this.GetKValue=ChartData.GetKValue;this.AryCellRect=[];//保存单元格信息
4165
- 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);}};//绘制背景色
4166
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;}};//计算行高
4167
- 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;//绘制背景
4168
- 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);//绘制一列
4169
- }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;}};//绘制右侧行名
4170
- 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))//左右显示
4171
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);//高度太小了就不要上下间距了
4172
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
4173
4175
  return true;}}return false;};}//表格
@@ -4553,7 +4555,7 @@ var drawCount=0;var pointCount=0;this.Canvas.save();this.ClipClient(isHScreen);i
4553
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();//收盘集合竞价
4554
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},//内部点 给画布用
4555
4557
  LastPoint:{X:this.LastPoint.X/pixelRatio,Y:this.LastPoint.Y/pixelRatio},//外部点 给DOM用
4556
- 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);}}};//画领先指标
4557
4559
  this.DrawLead=function(){if(!this.LeadData)return;var isHScreen=this.ChartFrame.IsHScreen===true;//if (isHScreen) return;
4558
4560
  //var dataWidth=this.ChartFrame.DataWidth;
4559
4561
  //var distanceWidth=this.ChartFrame.DistanceWidth;
@@ -6633,7 +6635,7 @@ this.Super_ExportStorageData=this.ExportStorageData;//this.Label; //{Tex
6633
6635
  this.LineWidth=1;this.Precision=2;//小数位数
6634
6636
  this.ValueTextColor='rgb(250,250,250)';this.IsShowCorssCursor=true;//画的时候是否显示十字光标
6635
6637
  this.GetLabelCallback;//绘制标题回调函数
6636
- 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=垂直排列
6637
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;//总是显示标签
6638
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 可以外部定制按钮
6639
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 }
@@ -6643,7 +6645,7 @@ this.ShowPriceTextConfig={IsShow:[false,false,true],//[0]=left内 [1]=right内 [
6643
6645
  Font:[12*GetDevicePixelRatio()+'px \u5FAE\u8F6F\u96C5\u9ED1',12*GetDevicePixelRatio()+'px \u5FAE\u8F6F\u96C5\u9ED1']};this.LableInfo;//{ Position:2=右侧外部 }
6644
6646
  //内部变量
6645
6647
  this.ColseButtonSize=0;this.SettingButtonSize=0;this.ButtonBGWidth=0;this.VerticalButtonInfo={Width:0,Height:0};//垂直按钮信息
6646
- 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;};/*
6647
6649
  this.GetXYCoordinate=function()
6648
6650
  {
6649
6651
  if (this.IsFrameMinSize()) return null;
@@ -6669,7 +6671,7 @@ if(labelInfo.BGColor){this.Canvas.fillStyle=labelInfo.BGColor;this.Canvas.fillRe
6669
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 百分比
6670
6672
  else xRight=left+item.Width*pixelRatio;//>1 实际数值就是长度
6671
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]);//虚线
6672
- 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);};//计算右侧价格标签大小
6673
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;};//垂直排列按钮
6674
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()调用
6675
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)//右边不够了 往左移动
@@ -7318,7 +7320,7 @@ TextColor:"rgb(255,255,255)",//文字颜色
7318
7320
  Font:14*GetDevicePixelRatio()+"px 微软雅黑"//文字字体
7319
7321
  },PointType:2,// 0=圆点 1=方框 2=空心圆
7320
7322
  IsShowPoint:false//是否始终显示点
7321
- };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
7322
7324
  };this.TooltipPaint={BGColor:'rgba(250,250,250,0.8)',//背景色
7323
7325
  BorderColor:'rgb(120,120,120)',//边框颜色
7324
7326
  TitleColor:'rgb(79, 79, 79)',//标题颜色
@@ -12521,7 +12523,7 @@ chart.Bars=varItem.Draw.DrawData;chart.BuildCacheData();this.SetChartIndexName(c
12521
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线
12522
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线
12523
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线
12524
- 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线
12525
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线
12526
12528
  chart.AryData=varItem.Draw.DrawData;chart.Style=1;//主图使用独立坐标模式
12527
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线
@@ -12639,7 +12641,7 @@ this.CreateIcon=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.O
12639
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;//上下对齐方式
12640
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线
12641
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线
12642
- 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;};//创建通道
12643
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;
12644
12646
  chart.Data.Data=varItem.Draw.DrawData;frame.ChartPaint.push(chart);};//
12645
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线
@@ -12734,7 +12736,7 @@ if(item.data){outVarItem.Data=this.FittingMinuteArray(item.data,date,time,hqChar
12734
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')//柱子
12735
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
12736
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 } };
12737
- 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);//外部挂接
12738
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=模糊匹配
12739
12741
  this.FittingMinuteArray=function(sourceData,date,time,hqChart,matchType){var minutedata=hqChart.SourceData;;//分钟线
12740
12742
  var arySingleData=[];for(var i in sourceData){var value=sourceData[i];var indexItem=new SingleData();//单列指标数据
@@ -13531,6 +13533,7 @@ if(IFrameSplitOperator.IsNumber(item[41]))stock.OpenPosition=item[41];//开仓
13531
13533
  if(IFrameSplitOperator.IsNumber(item[42]))stock.ClosePosition=item[42];//平仓量
13532
13534
  //1,3,5,10,15 涨速%
13533
13535
  if(IFrameSplitOperator.IsNumber(item[43]))stock.RSpeed1M=item[43];if(IFrameSplitOperator.IsNumber(item[44]))stock.RSpeed3M=item[44];if(IFrameSplitOperator.IsNumber(item[45]))stock.RSpeed5M=item[45];if(IFrameSplitOperator.IsNumber(item[46]))stock.RSpeed10M=item[46];if(IFrameSplitOperator.IsNumber(item[47]))stock.RSpeed15M=item[47];if(item[80]||item[80]===null)stock.BGColor=item[80];//整行背景色
13536
+ if(item[JSCHART_DATA_FIELD_ID.REPORT_EXTENDDATA])stock.ExtendDataV2=item[JSCHART_DATA_FIELD_ID.REPORT_EXTENDDATA];//扩展数据2
13534
13537
  //10个数值型 101-199
13535
13538
  if(IFrameSplitOperator.IsNumber(item[101]))stock.ReserveNumber1=item[101];if(IFrameSplitOperator.IsNumber(item[102]))stock.ReserveNumber2=item[102];if(IFrameSplitOperator.IsNumber(item[103]))stock.ReserveNumber3=item[103];if(IFrameSplitOperator.IsNumber(item[104]))stock.ReserveNumber4=item[104];if(IFrameSplitOperator.IsNumber(item[105]))stock.ReserveNumber5=item[105];if(IFrameSplitOperator.IsNumber(item[106]))stock.ReserveNumber6=item[106];if(IFrameSplitOperator.IsNumber(item[107]))stock.ReserveNumber7=item[107];if(IFrameSplitOperator.IsNumber(item[108]))stock.ReserveNumber8=item[108];if(IFrameSplitOperator.IsNumber(item[109]))stock.ReserveNumber9=item[109];if(IFrameSplitOperator.IsNumber(item[110]))stock.ReserveNumber10=item[110];if(IFrameSplitOperator.IsNumber(item[111]))stock.ReserveNumber11=item[111];if(IFrameSplitOperator.IsNumber(item[112]))stock.ReserveNumber12=item[112];if(IFrameSplitOperator.IsNumber(item[113]))stock.ReserveNumber13=item[113];if(IFrameSplitOperator.IsNumber(item[114]))stock.ReserveNumber14=item[114];if(IFrameSplitOperator.IsNumber(item[115]))stock.ReserveNumber15=item[115];if(IFrameSplitOperator.IsNumber(item[116]))stock.ReserveNumber16=item[116];if(IFrameSplitOperator.IsNumber(item[117]))stock.ReserveNumber17=item[117];if(IFrameSplitOperator.IsNumber(item[118]))stock.ReserveNumber18=item[118];if(IFrameSplitOperator.IsNumber(item[119]))stock.ReserveNumber19=item[119];if(IFrameSplitOperator.IsNumber(item[120]))stock.ReserveNumber20=item[120];//10个字符型 201-299
13536
13539
  if(IFrameSplitOperator.IsString(item[201])||IFrameSplitOperator.IsObject(item[201]))stock.ReserveString1=item[201];if(IFrameSplitOperator.IsString(item[202])||IFrameSplitOperator.IsObject(item[202]))stock.ReserveString2=item[202];if(IFrameSplitOperator.IsString(item[203])||IFrameSplitOperator.IsObject(item[203]))stock.ReserveString3=item[203];if(IFrameSplitOperator.IsString(item[204])||IFrameSplitOperator.IsObject(item[204]))stock.ReserveString4=item[204];if(IFrameSplitOperator.IsString(item[205])||IFrameSplitOperator.IsObject(item[205]))stock.ReserveString5=item[205];if(IFrameSplitOperator.IsString(item[206])||IFrameSplitOperator.IsObject(item[206]))stock.ReserveString6=item[206];if(IFrameSplitOperator.IsString(item[207])||IFrameSplitOperator.IsObject(item[207]))stock.ReserveString7=item[207];if(IFrameSplitOperator.IsString(item[208])||IFrameSplitOperator.IsObject(item[208]))stock.ReserveString8=item[208];if(IFrameSplitOperator.IsString(item[209])||IFrameSplitOperator.IsObject(item[209]))stock.ReserveString9=item[209];if(IFrameSplitOperator.IsString(item[210])||IFrameSplitOperator.IsObject(item[210]))stock.ReserveString10=item[210];if(IFrameSplitOperator.IsString(item[211])||IFrameSplitOperator.IsObject(item[211]))stock.ReserveString11=item[211];if(IFrameSplitOperator.IsString(item[212])||IFrameSplitOperator.IsObject(item[212]))stock.ReserveString12=item[212];if(IFrameSplitOperator.IsString(item[213])||IFrameSplitOperator.IsObject(item[213]))stock.ReserveString13=item[213];if(IFrameSplitOperator.IsString(item[214])||IFrameSplitOperator.IsObject(item[214]))stock.ReserveString14=item[214];if(IFrameSplitOperator.IsString(item[215])||IFrameSplitOperator.IsObject(item[215]))stock.ReserveString15=item[215];if(IFrameSplitOperator.IsString(item[216])||IFrameSplitOperator.IsObject(item[216]))stock.ReserveString16=item[216];if(IFrameSplitOperator.IsString(item[217])||IFrameSplitOperator.IsObject(item[217]))stock.ReserveString17=item[217];if(IFrameSplitOperator.IsString(item[218])||IFrameSplitOperator.IsObject(item[218]))stock.ReserveString18=item[218];if(IFrameSplitOperator.IsString(item[219])||IFrameSplitOperator.IsObject(item[219]))stock.ReserveString19=item[219];if(IFrameSplitOperator.IsString(item[220])||IFrameSplitOperator.IsObject(item[220]))stock.ReserveString20=item[220];//10个进度条 301-350 { Value:, BGColor: }
@@ -15280,7 +15283,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
15280
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);};}/********************************************************************************
15281
15284
  * 版本信息输出
15282
15285
  *
15283
- */var HQCHART_VERSION="1.1.15005";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();//把给外界调用的方法暴露出来
15284
15287
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
15285
15288
  // BaseIndex:BaseIndex,
15286
15289
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.15006",
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); //外部挂接
@@ -2951,6 +2951,10 @@ var JSCHART_DATA_FIELD_ID=
2951
2951
 
2952
2952
  //OrderBook Heatmap
2953
2953
  KLINE_HEATMAP:67,
2954
+
2955
+
2956
+ //报价列表
2957
+ REPORT_EXTENDDATA:81, //报价列表扩展数据
2954
2958
  }
2955
2959
 
2956
2960
  var JSCHART_WORKER_MESSAGE_ID=
@@ -33867,7 +33871,8 @@ function ChartKLineTable()
33867
33871
  this.RowHeight=10; //行高
33868
33872
  this.RowHeightType=1; //0=均分 1=固定高度
33869
33873
  this.TextFontConfig=CloneData(g_JSChartResource.ChartKLineTable.TextFont);
33870
- this.ItemMergin=CloneData(g_JSChartResource.ChartKLineTable.ItemMergin);
33874
+ this.ItemMargin=CloneData(g_JSChartResource.ChartKLineTable.ItemMargin);
33875
+ this.CellWidth=12*GetDevicePixelRatio();
33871
33876
 
33872
33877
  this.TextFont;
33873
33878
  this.TextColor='rgb(0,0,0)';
@@ -33877,6 +33882,37 @@ function ChartKLineTable()
33877
33882
  this.MapCache=null; //key=date/date-time value={ Date:, Time:, Data:[ ] }
33878
33883
  this.GetKValue=ChartData.GetKValue;
33879
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
+ }
33880
33916
 
33881
33917
  this.BuildCacheData=function()
33882
33918
  {
@@ -33935,7 +33971,7 @@ function ChartKLineTable()
33935
33971
  {
33936
33972
  if (this.RowHeightType==1)
33937
33973
  {
33938
- this.RowHeight=this.TextFontConfig.FontMaxSize+this.ItemMergin.Top+this.ItemMergin.Bottom;
33974
+ this.RowHeight=this.TextFontConfig.FontMaxSize+this.ItemMargin.Top+this.ItemMargin.Bottom;
33939
33975
  }
33940
33976
  else
33941
33977
  {
@@ -33994,23 +34030,40 @@ function ChartKLineTable()
33994
34030
 
33995
34031
  var itemHeight=this.RowHeight;
33996
34032
  var itemWidth=dataWidth+distanceWidth;
33997
- if (itemHeight-this.ItemMergin.Top-this.ItemMergin.Bottom>0) itemHeight=itemHeight-this.ItemMergin.Top-this.ItemMergin.Bottom;
33998
- 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;
33999
34035
 
34000
34036
  var font=this.GetDynamicTextFont(itemHeight, itemWidth);
34001
34037
  this.TextFont=font;
34002
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
+ }
34003
34046
 
34004
34047
  for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
34005
34048
  {
34006
34049
  var kItem=this.Data.Data[i];
34007
34050
  if (!kItem) continue;
34008
34051
 
34009
- var left=xOffset;
34010
- var right=xOffset+dataWidth+distanceWidth;
34011
- if (right>chartright) break;
34012
- var x=left+(right-left)/2;
34013
- 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
+
34014
34067
 
34015
34068
  var bDrawName=false;
34016
34069
  if (j==0 && this.RowNamePosition===1) bDrawName=true;
@@ -34034,7 +34087,7 @@ function ChartKLineTable()
34034
34087
 
34035
34088
  var x=left,y=top, width=right-left;
34036
34089
  var yOffset=3;
34037
- if (this.ItemMergin.YOffset) yOffset=this.ItemMergin.YOffset;
34090
+ if (this.ItemMargin.YOffset) yOffset=this.ItemMargin.YOffset;
34038
34091
  for(var i=0;i<this.RowName.length;++i)
34039
34092
  {
34040
34093
  var item=this.RowName[i];
@@ -34116,7 +34169,7 @@ function ChartKLineTable()
34116
34169
 
34117
34170
  var x=rtBG.Right, y=rtBG.Top;
34118
34171
  var yOffset=3;
34119
- if (this.ItemMergin.YOffset) yOffset=this.ItemMergin.YOffset;
34172
+ if (this.ItemMargin.YOffset) yOffset=this.ItemMargin.YOffset;
34120
34173
  for(var i=0;i<this.RowName.length;++i)
34121
34174
  {
34122
34175
  var item=this.RowName[i];
@@ -34147,7 +34200,7 @@ function ChartKLineTable()
34147
34200
 
34148
34201
  var x=left,y=top, width=right-left;
34149
34202
  var yOffset=3;
34150
- if (this.ItemMergin.YOffset) yOffset=this.ItemMergin.YOffset;
34203
+ if (this.ItemMargin.YOffset) yOffset=this.ItemMargin.YOffset;
34151
34204
  for(var i=0; i<data.Data.length; ++i, y+=this.RowHeight)
34152
34205
  {
34153
34206
  var item=data.Data[i];
@@ -40229,7 +40282,7 @@ function ChartMinutePriceLine()
40229
40282
  {
40230
40283
  InterLastPoint:{X:this.LastPoint.X, Y:this.LastPoint.Y}, //内部点 给画布用
40231
40284
  LastPoint:{X:this.LastPoint.X/pixelRatio, Y:this.LastPoint.Y/pixelRatio}, //外部点 给DOM用
40232
- Price:this.LastPoint.Price, Data:this.LastPoint.Data,
40285
+ Price:this.LastPoint.Value, Data:this.LastPoint.Data,
40233
40286
  PixelRatio:pixelRatio,
40234
40287
  };
40235
40288
  event.Callback(event,data,this);
@@ -66541,6 +66594,7 @@ function ChartDrawHLine()
66541
66594
  this.Font=14*GetDevicePixelRatio() +"px 微软雅黑";
66542
66595
  this.TextFont=12*GetDevicePixelRatio() +"px 微软雅黑";
66543
66596
  this.RightSpaceWidth=50;
66597
+ this.PriceBGColor;
66544
66598
 
66545
66599
  this.ButtonPosition=0; //按钮位置, 0=价格后面, 1=价格上面 2=价格上面 左对齐 3=垂直排列
66546
66600
  this.ButtonBGColor='rgb(190,190,190)';
@@ -66647,6 +66701,8 @@ function ChartDrawHLine()
66647
66701
  if (IFrameSplitOperator.IsNumber(item.Bottom)) this.TextMargin.Bottom=item.Bottom;
66648
66702
  if (IFrameSplitOperator.IsNumber(item.YOffset)) this.TextMargin.YOffset=item.YOffset;
66649
66703
  }
66704
+
66705
+ if (option.PriceBGColor) this.PriceBGColor=option.PriceBGColor;
66650
66706
  }
66651
66707
  }
66652
66708
 
@@ -67087,7 +67143,8 @@ function ChartDrawHLine()
67087
67143
  if (!bVisibleRange) this.Canvas.setLineDash([]);
67088
67144
  }
67089
67145
 
67090
- this.Canvas.fillStyle=this.LineColor;
67146
+ if (this.PriceBGColor) this.Canvas.fillStyle=this.PriceBGColor;
67147
+ else this.Canvas.fillStyle=this.LineColor;
67091
67148
  this.Canvas.font=this.Font;
67092
67149
  var textWidth=this.Canvas.measureText(strValue).width;
67093
67150
  var lineHeight=this.GetFontHeight();
@@ -76822,7 +76879,7 @@ function JSChartResource()
76822
76879
  this.ChartKLineTable=
76823
76880
  {
76824
76881
  TextFont:{ Family:'Arial' , FontMaxSize:25 },
76825
- ItemMergin:{ Left:5, Right:5, Top:4, Bottom:2 },
76882
+ ItemMargin:{ Left:5, Right:5, Top:4, Bottom:2 },
76826
76883
  };
76827
76884
 
76828
76885
  this.ChartSimpleTable=
@@ -1805,6 +1805,7 @@ function JSReportChartContainer(uielement)
1805
1805
  if (IFrameSplitOperator.IsNumber(item[47])) stock.RSpeed15M=item[47];
1806
1806
 
1807
1807
  if (item[80] || item[80]===null) stock.BGColor=item[80]; //整行背景色
1808
+ if (item[JSCHART_DATA_FIELD_ID.REPORT_EXTENDDATA]) stock.ExtendDataV2=item[JSCHART_DATA_FIELD_ID.REPORT_EXTENDDATA]; //扩展数据2
1808
1809
 
1809
1810
  //10个数值型 101-199
1810
1811
  if (IFrameSplitOperator.IsNumber(item[101])) stock.ReserveNumber1=item[101];
@@ -7047,6 +7047,10 @@ var JSCHART_DATA_FIELD_ID=
7047
7047
 
7048
7048
  //OrderBook Heatmap
7049
7049
  KLINE_HEATMAP:67,
7050
+
7051
+
7052
+ //报价列表
7053
+ REPORT_EXTENDDATA:81, //报价列表扩展数据
7050
7054
  }
7051
7055
 
7052
7056
  var JSCHART_WORKER_MESSAGE_ID=
@@ -37963,7 +37967,8 @@ function ChartKLineTable()
37963
37967
  this.RowHeight=10; //行高
37964
37968
  this.RowHeightType=1; //0=均分 1=固定高度
37965
37969
  this.TextFontConfig=CloneData(g_JSChartResource.ChartKLineTable.TextFont);
37966
- this.ItemMergin=CloneData(g_JSChartResource.ChartKLineTable.ItemMergin);
37970
+ this.ItemMargin=CloneData(g_JSChartResource.ChartKLineTable.ItemMargin);
37971
+ this.CellWidth=12*GetDevicePixelRatio();
37967
37972
 
37968
37973
  this.TextFont;
37969
37974
  this.TextColor='rgb(0,0,0)';
@@ -37973,6 +37978,37 @@ function ChartKLineTable()
37973
37978
  this.MapCache=null; //key=date/date-time value={ Date:, Time:, Data:[ ] }
37974
37979
  this.GetKValue=ChartData.GetKValue;
37975
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
+ }
37976
38012
 
37977
38013
  this.BuildCacheData=function()
37978
38014
  {
@@ -38031,7 +38067,7 @@ function ChartKLineTable()
38031
38067
  {
38032
38068
  if (this.RowHeightType==1)
38033
38069
  {
38034
- this.RowHeight=this.TextFontConfig.FontMaxSize+this.ItemMergin.Top+this.ItemMergin.Bottom;
38070
+ this.RowHeight=this.TextFontConfig.FontMaxSize+this.ItemMargin.Top+this.ItemMargin.Bottom;
38035
38071
  }
38036
38072
  else
38037
38073
  {
@@ -38090,23 +38126,40 @@ function ChartKLineTable()
38090
38126
 
38091
38127
  var itemHeight=this.RowHeight;
38092
38128
  var itemWidth=dataWidth+distanceWidth;
38093
- if (itemHeight-this.ItemMergin.Top-this.ItemMergin.Bottom>0) itemHeight=itemHeight-this.ItemMergin.Top-this.ItemMergin.Bottom;
38094
- 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;
38095
38131
 
38096
38132
  var font=this.GetDynamicTextFont(itemHeight, itemWidth);
38097
38133
  this.TextFont=font;
38098
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
+ }
38099
38142
 
38100
38143
  for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
38101
38144
  {
38102
38145
  var kItem=this.Data.Data[i];
38103
38146
  if (!kItem) continue;
38104
38147
 
38105
- var left=xOffset;
38106
- var right=xOffset+dataWidth+distanceWidth;
38107
- if (right>chartright) break;
38108
- var x=left+(right-left)/2;
38109
- 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
+
38110
38163
 
38111
38164
  var bDrawName=false;
38112
38165
  if (j==0 && this.RowNamePosition===1) bDrawName=true;
@@ -38130,7 +38183,7 @@ function ChartKLineTable()
38130
38183
 
38131
38184
  var x=left,y=top, width=right-left;
38132
38185
  var yOffset=3;
38133
- if (this.ItemMergin.YOffset) yOffset=this.ItemMergin.YOffset;
38186
+ if (this.ItemMargin.YOffset) yOffset=this.ItemMargin.YOffset;
38134
38187
  for(var i=0;i<this.RowName.length;++i)
38135
38188
  {
38136
38189
  var item=this.RowName[i];
@@ -38212,7 +38265,7 @@ function ChartKLineTable()
38212
38265
 
38213
38266
  var x=rtBG.Right, y=rtBG.Top;
38214
38267
  var yOffset=3;
38215
- if (this.ItemMergin.YOffset) yOffset=this.ItemMergin.YOffset;
38268
+ if (this.ItemMargin.YOffset) yOffset=this.ItemMargin.YOffset;
38216
38269
  for(var i=0;i<this.RowName.length;++i)
38217
38270
  {
38218
38271
  var item=this.RowName[i];
@@ -38243,7 +38296,7 @@ function ChartKLineTable()
38243
38296
 
38244
38297
  var x=left,y=top, width=right-left;
38245
38298
  var yOffset=3;
38246
- if (this.ItemMergin.YOffset) yOffset=this.ItemMergin.YOffset;
38299
+ if (this.ItemMargin.YOffset) yOffset=this.ItemMargin.YOffset;
38247
38300
  for(var i=0; i<data.Data.length; ++i, y+=this.RowHeight)
38248
38301
  {
38249
38302
  var item=data.Data[i];
@@ -44325,7 +44378,7 @@ function ChartMinutePriceLine()
44325
44378
  {
44326
44379
  InterLastPoint:{X:this.LastPoint.X, Y:this.LastPoint.Y}, //内部点 给画布用
44327
44380
  LastPoint:{X:this.LastPoint.X/pixelRatio, Y:this.LastPoint.Y/pixelRatio}, //外部点 给DOM用
44328
- Price:this.LastPoint.Price, Data:this.LastPoint.Data,
44381
+ Price:this.LastPoint.Value, Data:this.LastPoint.Data,
44329
44382
  PixelRatio:pixelRatio,
44330
44383
  };
44331
44384
  event.Callback(event,data,this);
@@ -70637,6 +70690,7 @@ function ChartDrawHLine()
70637
70690
  this.Font=14*GetDevicePixelRatio() +"px 微软雅黑";
70638
70691
  this.TextFont=12*GetDevicePixelRatio() +"px 微软雅黑";
70639
70692
  this.RightSpaceWidth=50;
70693
+ this.PriceBGColor;
70640
70694
 
70641
70695
  this.ButtonPosition=0; //按钮位置, 0=价格后面, 1=价格上面 2=价格上面 左对齐 3=垂直排列
70642
70696
  this.ButtonBGColor='rgb(190,190,190)';
@@ -70743,6 +70797,8 @@ function ChartDrawHLine()
70743
70797
  if (IFrameSplitOperator.IsNumber(item.Bottom)) this.TextMargin.Bottom=item.Bottom;
70744
70798
  if (IFrameSplitOperator.IsNumber(item.YOffset)) this.TextMargin.YOffset=item.YOffset;
70745
70799
  }
70800
+
70801
+ if (option.PriceBGColor) this.PriceBGColor=option.PriceBGColor;
70746
70802
  }
70747
70803
  }
70748
70804
 
@@ -71183,7 +71239,8 @@ function ChartDrawHLine()
71183
71239
  if (!bVisibleRange) this.Canvas.setLineDash([]);
71184
71240
  }
71185
71241
 
71186
- this.Canvas.fillStyle=this.LineColor;
71242
+ if (this.PriceBGColor) this.Canvas.fillStyle=this.PriceBGColor;
71243
+ else this.Canvas.fillStyle=this.LineColor;
71187
71244
  this.Canvas.font=this.Font;
71188
71245
  var textWidth=this.Canvas.measureText(strValue).width;
71189
71246
  var lineHeight=this.GetFontHeight();
@@ -80918,7 +80975,7 @@ function JSChartResource()
80918
80975
  this.ChartKLineTable=
80919
80976
  {
80920
80977
  TextFont:{ Family:'Arial' , FontMaxSize:25 },
80921
- ItemMergin:{ Left:5, Right:5, Top:4, Bottom:2 },
80978
+ ItemMargin:{ Left:5, Right:5, Top:4, Bottom:2 },
80922
80979
  };
80923
80980
 
80924
80981
  this.ChartSimpleTable=
@@ -130862,31 +130919,7 @@ function ScriptIndex(name,script,args,option)
130862
130919
  if (IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.RowName)) chart.RowName=varItem.Draw.RowName;
130863
130920
 
130864
130921
  var config=varItem.Draw.Config;
130865
- if (config)
130866
- {
130867
- if (config.BGColor) chart.BGColor=config.BGColor;
130868
- if (config.TextColor) chart.TextColor=config.TextColor;
130869
- if (config.BorderColor) chart.BorderColor=config.BorderColor;
130870
- if (IFrameSplitOperator.IsNumber(config.RowNamePosition)) chart.RowNamePosition=config.RowNamePosition;
130871
- if (IFrameSplitOperator.IsNumber(config.RowHeightType)) chart.RowHeightType=config.RowHeightType;
130872
-
130873
- if (config.ItemMergin)
130874
- {
130875
- var subItem=config.ItemMergin;
130876
- if (IFrameSplitOperator.IsNumber(subItem.Left)) chart.ItemMergin.Left=subItem.Left;
130877
- if (IFrameSplitOperator.IsNumber(subItem.Top)) chart.ItemMergin.Top=subItem.Top;
130878
- if (IFrameSplitOperator.IsNumber(subItem.Bottom)) chart.ItemMergin.Bottom=subItem.Bottom;
130879
- if (IFrameSplitOperator.IsNumber(subItem.Right)) chart.ItemMergin.Right=subItem.Right;
130880
- if (IFrameSplitOperator.IsNumber(subItem.YOffset)) chart.ItemMergin.YOffset=subItem.YOffset;
130881
- }
130882
-
130883
- if (config.TextFont)
130884
- {
130885
- var subItem=config.TextFont;
130886
- if (IFrameSplitOperator.IsNumber(subItem.FontMaxSize)) chart.TextFontConfig.FontMaxSize=subItem.FontMaxSize;
130887
- if (subItem.Family) chart.TextFontConfig.Family=subItem.Family;
130888
- }
130889
- }
130922
+ chart.SetOption(config);
130890
130923
 
130891
130924
  chart.BuildCacheData();
130892
130925
  this.SetChartIndexName(chart);
@@ -132571,33 +132604,7 @@ function OverlayScriptIndex(name,script,args,option)
132571
132604
  if (IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.RowName)) chart.RowName=varItem.Draw.RowName;
132572
132605
 
132573
132606
  var config=varItem.Draw.Config;
132574
- if (config)
132575
- {
132576
- if (config.BGColor) chart.BGColor=config.BGColor;
132577
- if (config.TextColor) chart.TextColor=config.TextColor;
132578
- if (config.BorderColor) chart.BorderColor=config.BorderColor;
132579
- if (IFrameSplitOperator.IsNumber(config.RowNamePosition)) chart.RowNamePosition=config.RowNamePosition;
132580
- if (IFrameSplitOperator.IsNumber(config.RowHeightType)) chart.RowHeightType=config.RowHeightType;
132581
- if (IFrameSplitOperator.IsNumber(config.Style)) chart.Style=config.Style;
132582
-
132583
- if (config.ItemMergin)
132584
- {
132585
- var subItem=config.ItemMergin;
132586
- if (IFrameSplitOperator.IsNumber(subItem.Left)) chart.ItemMergin.Left=subItem.Left;
132587
- if (IFrameSplitOperator.IsNumber(subItem.Top)) chart.ItemMergin.Top=subItem.Top;
132588
- if (IFrameSplitOperator.IsNumber(subItem.Bottom)) chart.ItemMergin.Bottom=subItem.Bottom;
132589
- if (IFrameSplitOperator.IsNumber(subItem.Right)) chart.ItemMergin.Right=subItem.Right;
132590
- if (IFrameSplitOperator.IsNumber(subItem.YOffset)) chart.ItemMergin.YOffset=subItem.YOffset;
132591
- }
132592
-
132593
- if (config.TextFont)
132594
- {
132595
- var subItem=config.TextFont;
132596
- if (IFrameSplitOperator.IsNumber(subItem.FontMaxSize)) chart.TextFontConfig.FontMaxSize=subItem.FontMaxSize;
132597
- if (subItem.Family) chart.TextFontConfig.Family=subItem.Family;
132598
- }
132599
- }
132600
-
132607
+ chart.SetOption(config);
132601
132608
  chart.BuildCacheData();
132602
132609
  frame.ChartPaint.push(chart);
132603
132610
 
@@ -134666,6 +134673,18 @@ function APIScriptIndex(name,script,args,option, isOverlay)
134666
134673
 
134667
134674
  result.push(outVarItem);
134668
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
+ }
134669
134688
  else
134670
134689
  {
134671
134690
  var find=g_ScriptIndexChartFactory.Get(draw.DrawType); //外部挂接
@@ -140509,6 +140528,7 @@ function JSReportChartContainer(uielement)
140509
140528
  if (IFrameSplitOperator.IsNumber(item[47])) stock.RSpeed15M=item[47];
140510
140529
 
140511
140530
  if (item[80] || item[80]===null) stock.BGColor=item[80]; //整行背景色
140531
+ if (item[JSCHART_DATA_FIELD_ID.REPORT_EXTENDDATA]) stock.ExtendDataV2=item[JSCHART_DATA_FIELD_ID.REPORT_EXTENDDATA]; //扩展数据2
140512
140532
 
140513
140533
  //10个数值型 101-199
140514
140534
  if (IFrameSplitOperator.IsNumber(item[101])) stock.ReserveNumber1=item[101];
@@ -152499,7 +152519,7 @@ function ScrollBarBGChart()
152499
152519
 
152500
152520
 
152501
152521
 
152502
- var HQCHART_VERSION="1.1.15005";
152522
+ var HQCHART_VERSION="1.1.15010";
152503
152523
 
152504
152524
  function PrintHQChartVersion()
152505
152525
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.15005";
8
+ var HQCHART_VERSION="1.1.15010";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -7091,6 +7091,10 @@ var JSCHART_DATA_FIELD_ID=
7091
7091
 
7092
7092
  //OrderBook Heatmap
7093
7093
  KLINE_HEATMAP:67,
7094
+
7095
+
7096
+ //报价列表
7097
+ REPORT_EXTENDDATA:81, //报价列表扩展数据
7094
7098
  }
7095
7099
 
7096
7100
  var JSCHART_WORKER_MESSAGE_ID=
@@ -38007,7 +38011,8 @@ function ChartKLineTable()
38007
38011
  this.RowHeight=10; //行高
38008
38012
  this.RowHeightType=1; //0=均分 1=固定高度
38009
38013
  this.TextFontConfig=CloneData(g_JSChartResource.ChartKLineTable.TextFont);
38010
- this.ItemMergin=CloneData(g_JSChartResource.ChartKLineTable.ItemMergin);
38014
+ this.ItemMargin=CloneData(g_JSChartResource.ChartKLineTable.ItemMargin);
38015
+ this.CellWidth=12*GetDevicePixelRatio();
38011
38016
 
38012
38017
  this.TextFont;
38013
38018
  this.TextColor='rgb(0,0,0)';
@@ -38017,6 +38022,37 @@ function ChartKLineTable()
38017
38022
  this.MapCache=null; //key=date/date-time value={ Date:, Time:, Data:[ ] }
38018
38023
  this.GetKValue=ChartData.GetKValue;
38019
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
+ }
38020
38056
 
38021
38057
  this.BuildCacheData=function()
38022
38058
  {
@@ -38075,7 +38111,7 @@ function ChartKLineTable()
38075
38111
  {
38076
38112
  if (this.RowHeightType==1)
38077
38113
  {
38078
- this.RowHeight=this.TextFontConfig.FontMaxSize+this.ItemMergin.Top+this.ItemMergin.Bottom;
38114
+ this.RowHeight=this.TextFontConfig.FontMaxSize+this.ItemMargin.Top+this.ItemMargin.Bottom;
38079
38115
  }
38080
38116
  else
38081
38117
  {
@@ -38134,23 +38170,40 @@ function ChartKLineTable()
38134
38170
 
38135
38171
  var itemHeight=this.RowHeight;
38136
38172
  var itemWidth=dataWidth+distanceWidth;
38137
- if (itemHeight-this.ItemMergin.Top-this.ItemMergin.Bottom>0) itemHeight=itemHeight-this.ItemMergin.Top-this.ItemMergin.Bottom;
38138
- 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;
38139
38175
 
38140
38176
  var font=this.GetDynamicTextFont(itemHeight, itemWidth);
38141
38177
  this.TextFont=font;
38142
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
+ }
38143
38186
 
38144
38187
  for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
38145
38188
  {
38146
38189
  var kItem=this.Data.Data[i];
38147
38190
  if (!kItem) continue;
38148
38191
 
38149
- var left=xOffset;
38150
- var right=xOffset+dataWidth+distanceWidth;
38151
- if (right>chartright) break;
38152
- var x=left+(right-left)/2;
38153
- 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
+
38154
38207
 
38155
38208
  var bDrawName=false;
38156
38209
  if (j==0 && this.RowNamePosition===1) bDrawName=true;
@@ -38174,7 +38227,7 @@ function ChartKLineTable()
38174
38227
 
38175
38228
  var x=left,y=top, width=right-left;
38176
38229
  var yOffset=3;
38177
- if (this.ItemMergin.YOffset) yOffset=this.ItemMergin.YOffset;
38230
+ if (this.ItemMargin.YOffset) yOffset=this.ItemMargin.YOffset;
38178
38231
  for(var i=0;i<this.RowName.length;++i)
38179
38232
  {
38180
38233
  var item=this.RowName[i];
@@ -38256,7 +38309,7 @@ function ChartKLineTable()
38256
38309
 
38257
38310
  var x=rtBG.Right, y=rtBG.Top;
38258
38311
  var yOffset=3;
38259
- if (this.ItemMergin.YOffset) yOffset=this.ItemMergin.YOffset;
38312
+ if (this.ItemMargin.YOffset) yOffset=this.ItemMargin.YOffset;
38260
38313
  for(var i=0;i<this.RowName.length;++i)
38261
38314
  {
38262
38315
  var item=this.RowName[i];
@@ -38287,7 +38340,7 @@ function ChartKLineTable()
38287
38340
 
38288
38341
  var x=left,y=top, width=right-left;
38289
38342
  var yOffset=3;
38290
- if (this.ItemMergin.YOffset) yOffset=this.ItemMergin.YOffset;
38343
+ if (this.ItemMargin.YOffset) yOffset=this.ItemMargin.YOffset;
38291
38344
  for(var i=0; i<data.Data.length; ++i, y+=this.RowHeight)
38292
38345
  {
38293
38346
  var item=data.Data[i];
@@ -44369,7 +44422,7 @@ function ChartMinutePriceLine()
44369
44422
  {
44370
44423
  InterLastPoint:{X:this.LastPoint.X, Y:this.LastPoint.Y}, //内部点 给画布用
44371
44424
  LastPoint:{X:this.LastPoint.X/pixelRatio, Y:this.LastPoint.Y/pixelRatio}, //外部点 给DOM用
44372
- Price:this.LastPoint.Price, Data:this.LastPoint.Data,
44425
+ Price:this.LastPoint.Value, Data:this.LastPoint.Data,
44373
44426
  PixelRatio:pixelRatio,
44374
44427
  };
44375
44428
  event.Callback(event,data,this);
@@ -70681,6 +70734,7 @@ function ChartDrawHLine()
70681
70734
  this.Font=14*GetDevicePixelRatio() +"px 微软雅黑";
70682
70735
  this.TextFont=12*GetDevicePixelRatio() +"px 微软雅黑";
70683
70736
  this.RightSpaceWidth=50;
70737
+ this.PriceBGColor;
70684
70738
 
70685
70739
  this.ButtonPosition=0; //按钮位置, 0=价格后面, 1=价格上面 2=价格上面 左对齐 3=垂直排列
70686
70740
  this.ButtonBGColor='rgb(190,190,190)';
@@ -70787,6 +70841,8 @@ function ChartDrawHLine()
70787
70841
  if (IFrameSplitOperator.IsNumber(item.Bottom)) this.TextMargin.Bottom=item.Bottom;
70788
70842
  if (IFrameSplitOperator.IsNumber(item.YOffset)) this.TextMargin.YOffset=item.YOffset;
70789
70843
  }
70844
+
70845
+ if (option.PriceBGColor) this.PriceBGColor=option.PriceBGColor;
70790
70846
  }
70791
70847
  }
70792
70848
 
@@ -71227,7 +71283,8 @@ function ChartDrawHLine()
71227
71283
  if (!bVisibleRange) this.Canvas.setLineDash([]);
71228
71284
  }
71229
71285
 
71230
- this.Canvas.fillStyle=this.LineColor;
71286
+ if (this.PriceBGColor) this.Canvas.fillStyle=this.PriceBGColor;
71287
+ else this.Canvas.fillStyle=this.LineColor;
71231
71288
  this.Canvas.font=this.Font;
71232
71289
  var textWidth=this.Canvas.measureText(strValue).width;
71233
71290
  var lineHeight=this.GetFontHeight();
@@ -80962,7 +81019,7 @@ function JSChartResource()
80962
81019
  this.ChartKLineTable=
80963
81020
  {
80964
81021
  TextFont:{ Family:'Arial' , FontMaxSize:25 },
80965
- ItemMergin:{ Left:5, Right:5, Top:4, Bottom:2 },
81022
+ ItemMargin:{ Left:5, Right:5, Top:4, Bottom:2 },
80966
81023
  };
80967
81024
 
80968
81025
  this.ChartSimpleTable=
@@ -130906,31 +130963,7 @@ function ScriptIndex(name,script,args,option)
130906
130963
  if (IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.RowName)) chart.RowName=varItem.Draw.RowName;
130907
130964
 
130908
130965
  var config=varItem.Draw.Config;
130909
- if (config)
130910
- {
130911
- if (config.BGColor) chart.BGColor=config.BGColor;
130912
- if (config.TextColor) chart.TextColor=config.TextColor;
130913
- if (config.BorderColor) chart.BorderColor=config.BorderColor;
130914
- if (IFrameSplitOperator.IsNumber(config.RowNamePosition)) chart.RowNamePosition=config.RowNamePosition;
130915
- if (IFrameSplitOperator.IsNumber(config.RowHeightType)) chart.RowHeightType=config.RowHeightType;
130916
-
130917
- if (config.ItemMergin)
130918
- {
130919
- var subItem=config.ItemMergin;
130920
- if (IFrameSplitOperator.IsNumber(subItem.Left)) chart.ItemMergin.Left=subItem.Left;
130921
- if (IFrameSplitOperator.IsNumber(subItem.Top)) chart.ItemMergin.Top=subItem.Top;
130922
- if (IFrameSplitOperator.IsNumber(subItem.Bottom)) chart.ItemMergin.Bottom=subItem.Bottom;
130923
- if (IFrameSplitOperator.IsNumber(subItem.Right)) chart.ItemMergin.Right=subItem.Right;
130924
- if (IFrameSplitOperator.IsNumber(subItem.YOffset)) chart.ItemMergin.YOffset=subItem.YOffset;
130925
- }
130926
-
130927
- if (config.TextFont)
130928
- {
130929
- var subItem=config.TextFont;
130930
- if (IFrameSplitOperator.IsNumber(subItem.FontMaxSize)) chart.TextFontConfig.FontMaxSize=subItem.FontMaxSize;
130931
- if (subItem.Family) chart.TextFontConfig.Family=subItem.Family;
130932
- }
130933
- }
130966
+ chart.SetOption(config);
130934
130967
 
130935
130968
  chart.BuildCacheData();
130936
130969
  this.SetChartIndexName(chart);
@@ -132615,33 +132648,7 @@ function OverlayScriptIndex(name,script,args,option)
132615
132648
  if (IFrameSplitOperator.IsNonEmptyArray(varItem.Draw.RowName)) chart.RowName=varItem.Draw.RowName;
132616
132649
 
132617
132650
  var config=varItem.Draw.Config;
132618
- if (config)
132619
- {
132620
- if (config.BGColor) chart.BGColor=config.BGColor;
132621
- if (config.TextColor) chart.TextColor=config.TextColor;
132622
- if (config.BorderColor) chart.BorderColor=config.BorderColor;
132623
- if (IFrameSplitOperator.IsNumber(config.RowNamePosition)) chart.RowNamePosition=config.RowNamePosition;
132624
- if (IFrameSplitOperator.IsNumber(config.RowHeightType)) chart.RowHeightType=config.RowHeightType;
132625
- if (IFrameSplitOperator.IsNumber(config.Style)) chart.Style=config.Style;
132626
-
132627
- if (config.ItemMergin)
132628
- {
132629
- var subItem=config.ItemMergin;
132630
- if (IFrameSplitOperator.IsNumber(subItem.Left)) chart.ItemMergin.Left=subItem.Left;
132631
- if (IFrameSplitOperator.IsNumber(subItem.Top)) chart.ItemMergin.Top=subItem.Top;
132632
- if (IFrameSplitOperator.IsNumber(subItem.Bottom)) chart.ItemMergin.Bottom=subItem.Bottom;
132633
- if (IFrameSplitOperator.IsNumber(subItem.Right)) chart.ItemMergin.Right=subItem.Right;
132634
- if (IFrameSplitOperator.IsNumber(subItem.YOffset)) chart.ItemMergin.YOffset=subItem.YOffset;
132635
- }
132636
-
132637
- if (config.TextFont)
132638
- {
132639
- var subItem=config.TextFont;
132640
- if (IFrameSplitOperator.IsNumber(subItem.FontMaxSize)) chart.TextFontConfig.FontMaxSize=subItem.FontMaxSize;
132641
- if (subItem.Family) chart.TextFontConfig.Family=subItem.Family;
132642
- }
132643
- }
132644
-
132651
+ chart.SetOption(config);
132645
132652
  chart.BuildCacheData();
132646
132653
  frame.ChartPaint.push(chart);
132647
132654
 
@@ -134710,6 +134717,18 @@ function APIScriptIndex(name,script,args,option, isOverlay)
134710
134717
 
134711
134718
  result.push(outVarItem);
134712
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
+ }
134713
134732
  else
134714
134733
  {
134715
134734
  var find=g_ScriptIndexChartFactory.Get(draw.DrawType); //外部挂接
@@ -140553,6 +140572,7 @@ function JSReportChartContainer(uielement)
140553
140572
  if (IFrameSplitOperator.IsNumber(item[47])) stock.RSpeed15M=item[47];
140554
140573
 
140555
140574
  if (item[80] || item[80]===null) stock.BGColor=item[80]; //整行背景色
140575
+ if (item[JSCHART_DATA_FIELD_ID.REPORT_EXTENDDATA]) stock.ExtendDataV2=item[JSCHART_DATA_FIELD_ID.REPORT_EXTENDDATA]; //扩展数据2
140556
140576
 
140557
140577
  //10个数值型 101-199
140558
140578
  if (IFrameSplitOperator.IsNumber(item[101])) stock.ReserveNumber1=item[101];
@@ -163890,7 +163910,7 @@ function HQChartScriptWorker()
163890
163910
 
163891
163911
 
163892
163912
 
163893
- var HQCHART_VERSION="1.1.15005";
163913
+ var HQCHART_VERSION="1.1.15010";
163894
163914
 
163895
163915
  function PrintHQChartVersion()
163896
163916
  {