hqchart 1.1.12595 → 1.1.12605

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.
@@ -4924,7 +4924,7 @@ if(IFrameSplitOperator.IsNumber(option.LineType))info.LineType=option.LineType;i
4924
4924
  IFrameSplitOperator.FormatValueThousandsString=function(value,floatPrecision){if(value==null||isNaN(value)){if(floatPrecision>0){var nullText='-.';for(var i=0;i<floatPrecision;++i){nullText+='-';}return nullText;}return'--';}var result='';var num=value.toFixed(floatPrecision);if(floatPrecision>0){var numFloat=num.split('.')[1];var numM=num.split('.')[0];while(numM.length>3){result=','+numM.slice(-3)+result;numM=numM.slice(0,numM.length-3);}if(numM){result=numM+result+'.'+numFloat;}}else{while(num.length>3){result=','+num.slice(-3)+result;num=num.slice(0,num.length-3);}if(num){result=num+result;}}return result;};//数据输出格式化 floatPrecision=小数位数
4925
4925
  IFrameSplitOperator.FormatValueString=function(value,floatPrecision,languageID){if(value==null||isNaN(value)){if(floatPrecision>0){var nullText='-.';for(var i=0;i<floatPrecision;++i){nullText+='-';}return nullText;}return'--';}if(value<0.00000000001&&value>-0.00000000001){return"0";}var absValue=Math.abs(value);if(languageID===JSCHART_LANGUAGE_ID.LANGUAGE_ENGLISH_ID){if(absValue<10000)return value.toFixed(floatPrecision);else if(absValue<1000000)return(value/1000).toFixed(floatPrecision)+"K";else if(absValue<1000000000)return(value/1000000).toFixed(floatPrecision)+"M";else if(absValue<1000000000000)return(value/1000000000).toFixed(floatPrecision)+"B";else return(value/1000000000000).toFixed(floatPrecision)+"T";}else if(languageID===JSCHART_LANGUAGE_ID.LANGUAGE_TRADITIONAL_CHINESE_ID)//繁体
4926
4926
  {if(absValue<10000)return value.toFixed(floatPrecision);else if(absValue<100000000)return(value/10000).toFixed(floatPrecision)+"萬";else if(absValue<1000000000000)return(value/100000000).toFixed(floatPrecision)+"億";else return(value/1000000000000).toFixed(floatPrecision)+"萬億";}else{if(absValue<10000)return value.toFixed(floatPrecision);else if(absValue<1000000)return(value/10000).toFixed(floatPrecision)+"万";else if(absValue<100000000)return(value/10000).toFixed(floatPrecision)+"万";else if(absValue<1000000000000)return(value/100000000).toFixed(floatPrecision)+"亿";else return(value/1000000000000).toFixed(floatPrecision)+"万亿";}return'';};//成交量显示
4927
- IFrameSplitOperator.FormatVolString=function(value,languageID){var absValue=Math.abs(value);if(absValue<100000)return absValue.toFixed(0);else if(absValue<10000000)return(value/10000).toFixed(1)+"万";else if(absValue<100000000)return(value/10000).toFixed(0)+"万";else if(absValue<1000000000)return(value/100000000).toFixed(2)+"亿";else if(absValue<1000000000000)return(value/100000000).toFixed(1)+"亿";else return(value/1000000000000).toFixed(1)+"万亿";};//整形输出格式化 floatPrecision=小数位数
4927
+ IFrameSplitOperator.FormatVolString=function(value,languageID){var absValue=Math.abs(value);if(absValue<100000)return value.toFixed(0);else if(absValue<10000000)return(value/10000).toFixed(1)+"万";else if(absValue<100000000)return(value/10000).toFixed(0)+"万";else if(absValue<1000000000)return(value/100000000).toFixed(2)+"亿";else if(absValue<1000000000000)return(value/100000000).toFixed(1)+"亿";else return(value/1000000000000).toFixed(1)+"万亿";};//整形输出格式化 floatPrecision=小数位数
4928
4928
  IFrameSplitOperator.FromatIntegerString=function(value,floatPrecision,languageID){if(value<10000&&IFrameSplitOperator.IsInteger(value))floatPrecision=0;//<10000的整形 去掉小数位数
4929
4929
  return IFrameSplitOperator.FormatValueString(value,floatPrecision,languageID);};IFrameSplitOperator.NumberToString=function(value){if(value<10)return'0'+value.toString();return value.toString();};//毫秒格式 固定3位, 不足前面自动补0
4930
4930
  IFrameSplitOperator.MillisecondToString=function(value){if(value<10)return'00'+value.toString();else if(value<100)return'0'+value.toString();else return value.toString();};IFrameSplitOperator.FormatDateString=function(value,format,languageID){var year=parseInt(value/10000);var month=parseInt(value/100)%100;var day=value%100;switch(format){case'MM-DD':return IFrameSplitOperator.NumberToString(month)+'-'+IFrameSplitOperator.NumberToString(day);case"MM/DD":return IFrameSplitOperator.NumberToString(month)+'/'+IFrameSplitOperator.NumberToString(day);case"MM/DD/W":var date=new Date(year,month-1,day);var week=g_JSChartLocalization.GetText(WEEK_NAME[date.getDay()],languageID);return IFrameSplitOperator.NumberToString(month)+'/'+IFrameSplitOperator.NumberToString(day)+'/'+week;case"YYYY-MM":return year+'-'+IFrameSplitOperator.NumberToString(month);case"YYYY/MM/DD":return year.toString()+'/'+IFrameSplitOperator.NumberToString(month)+'/'+IFrameSplitOperator.NumberToString(day);case"YYYY/MM/DD/W":{var date=new Date(year,month-1,day);var week=g_JSChartLocalization.GetText(WEEK_NAME[date.getDay()],languageID);return year.toString()+'/'+IFrameSplitOperator.NumberToString(month)+'/'+IFrameSplitOperator.NumberToString(day)+"/"+week.toString();}case"DD/MM/YYYY":return IFrameSplitOperator.NumberToString(day)+'/'+IFrameSplitOperator.NumberToString(month)+'/'+year.toString();default://YYYY-MM-DD
@@ -11855,7 +11855,7 @@ WHITE_ID:0//白色风格
11855
11855
  this.CanvasElement=document.createElement("canvas");this.CanvasElement.className='jsdeallist-drawing';this.CanvasElement.id=Guid();this.CanvasElement.setAttribute("tabindex",0);if(this.CanvasElement.style)this.CanvasElement.style.outline='none';if(divElement.hasChildNodes()){JSConsole.Chart.Log("[JSDealChart::JSDealList] divElement hasChildNodes",divElement.childNodes);}divElement.appendChild(this.CanvasElement);this.OnSize=function(){//画布大小通过div获取
11856
11856
  var height=parseInt(this.DivElement.style.height.replace("px",""));this.CanvasElement.height=height;this.CanvasElement.width=parseInt(this.DivElement.style.width.replace("px",""));this.CanvasElement.style.width=this.CanvasElement.width+'px';this.CanvasElement.style.height=this.CanvasElement.height+'px';var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
11857
11857
  this.CanvasElement.height*=pixelTatio;this.CanvasElement.width*=pixelTatio;JSConsole.Chart.Log('[JSDealChart::OnSize] devicePixelRatio='+window.devicePixelRatio+', height='+this.CanvasElement.height+', width='+this.CanvasElement.width);if(this.JSChartContainer&&this.JSChartContainer.OnSize){this.JSChartContainer.OnSize();}};this.SetOption=function(option){var chart=this.CreateJSDealChartContainer(option);if(!chart)return false;if(option.OnCreatedCallback)option.OnCreatedCallback(chart);this.JSChartContainer=chart;this.DivElement.JSChart=this;//div中保存一份
11858
- if(!option.Symbol){chart.Draw();}else{chart.ChangeSymbol(option.Symbol);}};this.CreateJSDealChartContainer=function(option){var chart=new JSDealChartContainer(this.CanvasElement);chart.Create(option);if(option.NetworkFilter)chart.NetworkFilter=option.NetworkFilter;if(IFrameSplitOperator.IsNonEmptyArray(option.Column))chart.SetColumn(option.Column);this.SetChartBorder(chart,option);//是否自动更新
11858
+ if(!option.Symbol){chart.Draw();}else{chart.ChangeSymbol(option.Symbol);}};this.CreateJSDealChartContainer=function(option){var chart=new JSDealChartContainer(this.CanvasElement);chart.Create(option);if(option.NetworkFilter)chart.NetworkFilter=option.NetworkFilter;if(IFrameSplitOperator.IsNonEmptyArray(option.Column))chart.SetColumn(option.Column);if(IFrameSplitOperator.IsNumber(option.ShowOrder))chart.ChartPaint[0].ShowOrder=option.ShowOrder;this.SetChartBorder(chart,option);//是否自动更新
11859
11859
  if(option.IsAutoUpdate!=null)chart.IsAutoUpdate=option.IsAutoUpdate;if(option.AutoUpdateFrequency>0)chart.AutoUpdateFrequency=option.AutoUpdateFrequency;if(IFrameSplitOperator.IsBool(option.EnableFilter))chart.EnableFilter=option.EnableFilter;//注册事件
11860
11860
  if(option.EventCallback){for(var i=0;i<option.EventCallback.length;++i){var item=option.EventCallback[i];chart.AddEventCallback(item);}}return chart;};this.SetChartBorder=function(chart,option){if(!option.Border)return;var item=option.Border;if(IFrameSplitOperator.IsNumber(option.Border.Left))chart.Frame.ChartBorder.Left=option.Border.Left;if(IFrameSplitOperator.IsNumber(option.Border.Right))chart.Frame.ChartBorder.Right=option.Border.Right;if(IFrameSplitOperator.IsNumber(option.Border.Top))chart.Frame.ChartBorder.Top=option.Border.Top;if(IFrameSplitOperator.IsNumber(option.Border.Bottom))chart.Frame.ChartBorder.Bottom=option.Border.Bottom;var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
11861
11861
  chart.Frame.ChartBorder.Left*=pixelTatio;chart.Frame.ChartBorder.Right*=pixelTatio;chart.Frame.ChartBorder.Top*=pixelTatio;chart.Frame.ChartBorder.Bottom*=pixelTatio;};/////////////////////////////////////////////////////////////////////////////
@@ -11958,6 +11958,7 @@ this.Open;//开盘价
11958
11958
  this.Decimal=2;//小数位数
11959
11959
  this.IsSingleTable=false;//单表模式
11960
11960
  this.IsShowHeader=true;//是否显示表头
11961
+ this.ShowOrder=1;//0=顺序 1=倒序
11961
11962
  this.SizeChange=true;//涨跌颜色
11962
11963
  this.UpColor=g_JSChartResource.DealList.UpTextColor;this.DownColor=g_JSChartResource.DealList.DownTextColor;this.UnchagneColor=g_JSChartResource.DealList.UnchagneTextColor;this.BorderColor=g_JSChartResource.DealList.BorderColor;//边框线
11963
11964
  //表头配置
@@ -11970,7 +11971,7 @@ this.ItemFontConfig={Size:g_JSChartResource.DealList.Row.Font.Size,Name:g_JSChar
11970
11971
  }this.Column.push(colItem);}};this.GetDefaultColunm=function(id){var DEFAULT_COLUMN=[{Type:DEAL_COLUMN_ID.TIME_ID,Title:"时间",TextAlign:"center",Width:null,TextColor:g_JSChartResource.DealList.FieldColor.Time,MaxText:"88:88:88",Foramt:"HH:MM:SS"},{Type:DEAL_COLUMN_ID.PRICE_ID,Title:"价格",TextAlign:"center",Width:null,MaxText:"888888.88"},{Type:DEAL_COLUMN_ID.VOL_ID,Title:"成交",TextAlign:"right",Width:null,TextColor:g_JSChartResource.DealList.FieldColor.Vol,MaxText:"888888"},{Type:DEAL_COLUMN_ID.BS_ID,Title:"",TextAlign:"right",Width:null,MaxText:"擎"},{Type:DEAL_COLUMN_ID.DEAL_ID,Title:"笔数",TextAlign:"right",Width:null,TextColor:g_JSChartResource.DealList.FieldColor.Deal,MaxText:"8888"},{Type:DEAL_COLUMN_ID.UPDOWN_ID,Title:"涨跌",TextAlign:"right",Width:null,MaxText:"-8888.88"},{Type:DEAL_COLUMN_ID.STRING_TIME_ID,Title:"时间",TextAlign:"center",Width:null,TextColor:g_JSChartResource.DealList.FieldColor.Time,MaxText:"88:88:88"},{Type:DEAL_COLUMN_ID.INDEX_ID,Title:"序号",TextAlign:"center",Width:null,TextColor:g_JSChartResource.DealList.FieldColor.Index,MaxText:"88888"},{Type:DEAL_COLUMN_ID.MULTI_BAR_ID,Title:"柱子",TextAlign:"center",Width:null,TextColor:g_JSChartResource.DealList.FieldColor.BarTitle,MaxText:"888888"},{Type:DEAL_COLUMN_ID.CENTER_BAR_ID,Title:"柱子2",TextAlign:"center",Width:null,TextColor:g_JSChartResource.DealList.FieldColor.BarTitle,MaxText:"888888"},{Type:DEAL_COLUMN_ID.CUSTOM_TEXT_ID,Title:"自定义",TextAlign:"center",Width:null,TextColor:g_JSChartResource.DealList.FieldColor.Text,MaxText:"擎擎擎擎擎"}];for(var i=0;i<DEFAULT_COLUMN.length;++i){var item=DEFAULT_COLUMN[i];if(item.Type==id)return item;}return null;};this.Draw=function(){if(this.SizeChange)this.CalculateSize();else this.UpdateCacheData();this.DrawBorder();this.DrawHeader();this.DrawBody();this.SizeChange=false;};//更新缓存变量
11971
11972
  this.UpdateCacheData=function(){this.RectClient.Left=this.ChartBorder.GetLeft();this.RectClient.Right=this.ChartBorder.GetRight();this.RectClient.Top=this.ChartBorder.GetTop();this.RectClient.Bottom=this.ChartBorder.GetBottom();this.Decimal=GetfloatPrecision(this.Symbol);};this.GetPageSize=function(recalculate)//recalculate 是否重新计算
11972
11973
  {if(recalculate)this.CalculateSize();var size=this.TableCount*this.RowCount;return size;};this.CalculateSize=function()//计算大小
11973
- {this.UpdateCacheData();var pixelRatio=GetDevicePixelRatio();this.HeaderFont=this.HeaderFontConfig.Size*pixelRatio+'px '+this.HeaderFontConfig.Name;this.ItemFont=this.ItemFontConfig.Size*pixelRatio+'px '+this.ItemFontConfig.Name;this.Canvas.font=this.ItemFont;var sumWidth=0,itemWidth=0;for(var i=0;i<this.Column.length;++i){var item=this.Column[i];itemWidth=this.Canvas.measureText(item.MaxText).width;item.Width=itemWidth+4;sumWidth+=item.Width;}var clientWidth=this.RectClient.Right-this.RectClient.Left;this.TableCount=parseInt(clientWidth/sumWidth);if(this.IsSingleTable)this.TableCount=1;this.TableWidth=clientWidth/this.TableCount;this.HeaderHeight=this.GetFontHeight(this.HeaderFont,"擎")+this.HeaderMergin.Top+this.HeaderMergin.Bottom;if(!this.IsShowHeader)this.HeaderHeight=0;this.RowHeight=this.GetFontHeight(this.ItemFont,"擎")+this.HeaderMergin.Top+this.HeaderMergin.Bottom;this.RowCount=parseInt((this.RectClient.Bottom-this.RectClient.Top-this.HeaderHeight)/this.RowHeight);};this.DrawHeader=function(){if(!this.IsShowHeader)return;var left=this.RectClient.Left+this.HeaderMergin.Left;var top=this.RectClient.Top;var y=top+this.HeaderMergin.Top+(this.HeaderHeight-this.HeaderMergin.Top-this.HeaderMergin.Bottom)/2;this.Canvas.font=this.HeaderFont;this.Canvas.fillStyle=this.HeaderColor;for(var i=0,j=0;i<this.TableCount;++i){var tableLeft=left+this.TableWidth*i;var textLeft=tableLeft;for(j=0;j<this.Column.length;++j){var item=this.Column[j];var itemWidth=item.Width;if(j==this.Column.length-1)itemWidth=this.TableWidth-(textLeft-tableLeft)-this.HeaderMergin.Right-this.HeaderMergin.Left;var x=textLeft;if(item.TextAlign=='center'){x=textLeft+itemWidth/2;this.Canvas.textAlign="center";}else if(item.TextAlign=='right'){x=textLeft+itemWidth;this.Canvas.textAlign="right";}else{this.Canvas.textAlign="left";}this.Canvas.textBaseline="middle";this.Canvas.fillText(item.Title,x,y);textLeft+=item.Width;}}};this.DrawBorder=function(){var left=ToFixedPoint(this.RectClient.Left);var right=ToFixedPoint(this.RectClient.Right);var top=ToFixedPoint(this.RectClient.Top);var bottom=ToFixedPoint(this.RectClient.Bottom);this.Canvas.strokeStyle=this.BorderColor;this.Canvas.beginPath();if(this.IsShowHeader){this.Canvas.moveTo(left,top+this.HeaderHeight);this.Canvas.lineTo(right,top+this.HeaderHeight);}var tableLeft=ToFixedPoint(left+this.TableWidth);for(var i=1;i<this.TableCount;++i){this.Canvas.moveTo(tableLeft,top);this.Canvas.lineTo(tableLeft,bottom);tableLeft=ToFixedPoint(tableLeft+this.TableWidth);}this.Canvas.stroke();};this.DrawBody=function(){if(!this.Data)return;if(!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return;this.Canvas.font=this.ItemFont;var top=this.RectClient.Top+this.HeaderHeight;var left=this.RectClient.Left+this.HeaderMergin.Left;var dataCount=this.Data.Data.length;var index=this.Data.DataOffset;for(var i=0,j=0;i<this.TableCount;++i){var tableLeft=left+this.TableWidth*i;var textLeft=tableLeft;var textTop=top;for(j=0;j<this.RowCount&&index<dataCount;++j,++index){var dataItem=this.Data.Data[index];this.DrawRow(dataItem,textLeft,textTop,index);textTop+=this.RowHeight;}}};this.DrawRow=function(data,left,top,dataIndex,colIndex){var tableLeft=left;var tableRight=left+this.TableWidth;for(var i=0;i<this.Column.length;++i){var item=this.Column[i];var textColor=item.TextColor;var text=null;var itemWidth=item.Width;var textAlign=item.TextAlign;if(left+itemWidth>tableRight)break;if(i==this.Column.length-1)itemWidth=this.TableWidth-(left-tableLeft)-this.HeaderMergin.Right-this.HeaderMergin.Left;if(item.Type==DEAL_COLUMN_ID.TIME_ID){text=IFrameSplitOperator.FormatTimeString(data.Time,item.Foramt);}else if(item.Type==DEAL_COLUMN_ID.STRING_TIME_ID){text=data.StrTime;}else if(item.Type==DEAL_COLUMN_ID.PRICE_ID){if(data.Price>this.YClose)textColor=this.UpColor;else if(data.Price<this.YClose)textColor=this.DownColor;else textColor=this.UnchagneColor;text=data.Price.toFixed(this.Decimal);}else if(item.Type==DEAL_COLUMN_ID.VOL_ID){text=IFrameSplitOperator.FormatValueString(data.Vol,0);textColor=this.GetVolColor(item,data);}else if(item.Type==DEAL_COLUMN_ID.DEAL_ID){text=IFrameSplitOperator.FormatValueString(data.Deal,0);}else if(item.Type==DEAL_COLUMN_ID.BS_ID){if(data.BS==1){text="B";textColor=this.UpColor;}else if(data.BS==2){text="S";textColor=this.DownColor;}}else if(item.Type==DEAL_COLUMN_ID.UPDOWN_ID){if(IFrameSplitOperator.IsNumber(this.YClose)){var value=data.Price-this.YClose;text=value.toFixed(2);if(value>0)textColor=this.UpColor;else if(value<0)textColor=this.DownColor;else textColor=this.UnchagneColor;}}else if(item.Type==DEAL_COLUMN_ID.INDEX_ID){text=(dataIndex+1).toString();}else if(item.Type==DEAL_COLUMN_ID.MULTI_BAR_ID){var rtItem={Left:left,Top:top,Width:itemWidth,Height:this.RowHeight};this.DrawMultiBar(item,data,rtItem);}else if(item.Type==DEAL_COLUMN_ID.CENTER_BAR_ID){var rtItem={Left:left,Top:top,Width:itemWidth,Height:this.RowHeight};this.DrawCenterBar(item,data,rtItem);}else if(item.Type==DEAL_COLUMN_ID.CUSTOM_TEXT_ID){var out={Text:null,TextColor:null,TextAlign:null};//输出
11974
+ {this.UpdateCacheData();var pixelRatio=GetDevicePixelRatio();this.HeaderFont=this.HeaderFontConfig.Size*pixelRatio+'px '+this.HeaderFontConfig.Name;this.ItemFont=this.ItemFontConfig.Size*pixelRatio+'px '+this.ItemFontConfig.Name;this.Canvas.font=this.ItemFont;var sumWidth=0,itemWidth=0;for(var i=0;i<this.Column.length;++i){var item=this.Column[i];itemWidth=this.Canvas.measureText(item.MaxText).width;item.Width=itemWidth+4;sumWidth+=item.Width;}var clientWidth=this.RectClient.Right-this.RectClient.Left;this.TableCount=parseInt(clientWidth/sumWidth);if(this.IsSingleTable)this.TableCount=1;this.TableWidth=clientWidth/this.TableCount;this.HeaderHeight=this.GetFontHeight(this.HeaderFont,"擎")+this.HeaderMergin.Top+this.HeaderMergin.Bottom;if(!this.IsShowHeader)this.HeaderHeight=0;this.RowHeight=this.GetFontHeight(this.ItemFont,"擎")+this.HeaderMergin.Top+this.HeaderMergin.Bottom;this.RowCount=parseInt((this.RectClient.Bottom-this.RectClient.Top-this.HeaderHeight)/this.RowHeight);};this.DrawHeader=function(){if(!this.IsShowHeader)return;var left=this.RectClient.Left+this.HeaderMergin.Left;var top=this.RectClient.Top;var y=top+this.HeaderMergin.Top+(this.HeaderHeight-this.HeaderMergin.Top-this.HeaderMergin.Bottom)/2;this.Canvas.font=this.HeaderFont;this.Canvas.fillStyle=this.HeaderColor;for(var i=0,j=0;i<this.TableCount;++i){var tableLeft=left+this.TableWidth*i;var textLeft=tableLeft;for(j=0;j<this.Column.length;++j){var item=this.Column[j];var itemWidth=item.Width;if(j==this.Column.length-1)itemWidth=this.TableWidth-(textLeft-tableLeft)-this.HeaderMergin.Right-this.HeaderMergin.Left;var x=textLeft;if(item.TextAlign=='center'){x=textLeft+itemWidth/2;this.Canvas.textAlign="center";}else if(item.TextAlign=='right'){x=textLeft+itemWidth;this.Canvas.textAlign="right";}else{this.Canvas.textAlign="left";}this.Canvas.textBaseline="middle";this.Canvas.fillText(item.Title,x,y);textLeft+=item.Width;}}};this.DrawBorder=function(){var left=ToFixedPoint(this.RectClient.Left);var right=ToFixedPoint(this.RectClient.Right);var top=ToFixedPoint(this.RectClient.Top);var bottom=ToFixedPoint(this.RectClient.Bottom);this.Canvas.strokeStyle=this.BorderColor;this.Canvas.beginPath();if(this.IsShowHeader){this.Canvas.moveTo(left,top+this.HeaderHeight);this.Canvas.lineTo(right,top+this.HeaderHeight);}var tableLeft=ToFixedPoint(left+this.TableWidth);for(var i=1;i<this.TableCount;++i){this.Canvas.moveTo(tableLeft,top);this.Canvas.lineTo(tableLeft,bottom);tableLeft=ToFixedPoint(tableLeft+this.TableWidth);}this.Canvas.stroke();};this.DrawBody=function(){if(!this.Data)return;if(!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return;this.Canvas.font=this.ItemFont;var top=this.RectClient.Top+this.HeaderHeight;var left=this.RectClient.Left+this.HeaderMergin.Left;var dataCount=this.Data.Data.length;var index=this.Data.DataOffset;if(this.ShowOrder==1){var index=this.Data.DataOffset+this.TableCount*this.RowCount;if(index>=dataCount)index=dataCount-1;for(var i=0,j=0;i<this.TableCount;++i){var tableLeft=left+this.TableWidth*i;var textLeft=tableLeft;var textTop=top;for(j=0;j<this.RowCount&&index>=0;++j,--index){var dataItem=this.Data.Data[index];this.DrawRow(dataItem,textLeft,textTop,index);textTop+=this.RowHeight;}}}else{for(var i=0,j=0;i<this.TableCount;++i){var tableLeft=left+this.TableWidth*i;var textLeft=tableLeft;var textTop=top;for(j=0;j<this.RowCount&&index<dataCount;++j,++index){var dataItem=this.Data.Data[index];this.DrawRow(dataItem,textLeft,textTop,index);textTop+=this.RowHeight;}}}};this.DrawRow=function(data,left,top,dataIndex,colIndex){var tableLeft=left;var tableRight=left+this.TableWidth;for(var i=0;i<this.Column.length;++i){var item=this.Column[i];var textColor=item.TextColor;var text=null;var itemWidth=item.Width;var textAlign=item.TextAlign;if(left+itemWidth>tableRight)break;if(i==this.Column.length-1)itemWidth=this.TableWidth-(left-tableLeft)-this.HeaderMergin.Right-this.HeaderMergin.Left;if(item.Type==DEAL_COLUMN_ID.TIME_ID){text=IFrameSplitOperator.FormatTimeString(data.Time,item.Foramt);}else if(item.Type==DEAL_COLUMN_ID.STRING_TIME_ID){text=data.StrTime;}else if(item.Type==DEAL_COLUMN_ID.PRICE_ID){if(data.Price>this.YClose)textColor=this.UpColor;else if(data.Price<this.YClose)textColor=this.DownColor;else textColor=this.UnchagneColor;text=data.Price.toFixed(this.Decimal);}else if(item.Type==DEAL_COLUMN_ID.VOL_ID){text=IFrameSplitOperator.FormatValueString(data.Vol,0);textColor=this.GetVolColor(item,data);}else if(item.Type==DEAL_COLUMN_ID.DEAL_ID){text=IFrameSplitOperator.FormatValueString(data.Deal,0);}else if(item.Type==DEAL_COLUMN_ID.BS_ID){if(data.BS==1){text="B";textColor=this.UpColor;}else if(data.BS==2){text="S";textColor=this.DownColor;}}else if(item.Type==DEAL_COLUMN_ID.UPDOWN_ID){if(IFrameSplitOperator.IsNumber(this.YClose)){var value=data.Price-this.YClose;text=value.toFixed(2);if(value>0)textColor=this.UpColor;else if(value<0)textColor=this.DownColor;else textColor=this.UnchagneColor;}}else if(item.Type==DEAL_COLUMN_ID.INDEX_ID){text=(dataIndex+1).toString();}else if(item.Type==DEAL_COLUMN_ID.MULTI_BAR_ID){var rtItem={Left:left,Top:top,Width:itemWidth,Height:this.RowHeight};this.DrawMultiBar(item,data,rtItem);}else if(item.Type==DEAL_COLUMN_ID.CENTER_BAR_ID){var rtItem={Left:left,Top:top,Width:itemWidth,Height:this.RowHeight};this.DrawCenterBar(item,data,rtItem);}else if(item.Type==DEAL_COLUMN_ID.CUSTOM_TEXT_ID){var out={Text:null,TextColor:null,TextAlign:null};//输出
11974
11975
  var rtItem={Left:left,Top:top,Width:itemWidth,Height:this.RowHeight};if(this.DrawCustomText(item,data,rtItem,dataIndex,i,out)){if(out.Text)text=out.Text;if(out.TextColor)textColor=out.TextColor;if(out.TextAlign)textAlign=out.TextAlign;}}this.DrawItemText(text,textColor,textAlign,left,top,itemWidth);left+=item.Width;}};this.DrawItemText=function(text,textColor,textAlign,left,top,width){var x=left;if(textAlign=='center'){x=left+width/2;this.Canvas.textAlign="center";}else if(textAlign=='right'){x=left+width;this.Canvas.textAlign="right";}else{this.Canvas.textAlign="left";}this.Canvas.textBaseline="middle";this.Canvas.fillStyle=textColor;if(text)this.Canvas.fillText(text,x,top+this.RowHeight/2);};this.DrawMultiBar=function(colunmInfo,data,rtItem){if(!data.Source||!IFrameSplitOperator.IsNonEmptyArray(data.Source))return false;var barData=data.Source[colunmInfo.DataIndex];//{ Value:[0.4,0,2], Color:[0,1] };
11975
11976
  if(!barData)return false;if(!IFrameSplitOperator.IsNonEmptyArray(barData.Value))return false;var width=rtItem.Width-this.BarMergin.Left-this.BarMergin.Right;var left=rtItem.Left+this.BarMergin.Left;var top=rtItem.Top+this.RowMergin.Top+this.BarMergin.Top;var height=rtItem.Height-this.RowMergin.Top-this.RowMergin.Bottom-this.BarMergin.Top-this.BarMergin.Bottom;var right=left+width;for(var i=0;i<barData.Value.length;++i){var value=barData.Value[i];if(value<=0)continue;if(left>=right)break;var barWidth=width*value;if(barWidth<1)barWidth=1;if(left+barWidth>right)barWidth=right-left;var colorIndex=i;if(IFrameSplitOperator.IsNonEmptyArray(barData.Color)&&i<barData.Color.length)colorIndex=barData.Color[i];this.Canvas.fillStyle=g_JSChartResource.DealList.FieldColor.Bar[colorIndex];this.Canvas.fillRect(left,top,barWidth,height);left+=barWidth;}return true;};this.DrawCenterBar=function(colunmInfo,data,rtItem){if(!data.Source||!IFrameSplitOperator.IsNonEmptyArray(data.Source))return false;var barData=data.Source[colunmInfo.DataIndex];//{ Value:[0.4,0,2], Color:[0,1] };
11976
11977
  if(!barData)return false;if(!IFrameSplitOperator.IsNonEmptyArray(barData.Value))return false;var width=(rtItem.Width-this.BarMergin.Left-this.BarMergin.Right)/2;var left=rtItem.Left+this.BarMergin.Left;var center=left+width;var top=rtItem.Top+this.RowMergin.Top+this.BarMergin.Top;var height=rtItem.Height-this.RowMergin.Top-this.RowMergin.Bottom-this.BarMergin.Top-this.BarMergin.Bottom;var right=left+width;for(var i=0;i<barData.Value.length&&i<2;++i){var value=barData.Value[i];if(value<=0)continue;if(value>1)value=1;var barWidth=width*value;if(barWidth<1)barWidth=1;var colorIndex=i;if(IFrameSplitOperator.IsNonEmptyArray(barData.Color)&&i<barData.Color.length)colorIndex=barData.Color[i];this.Canvas.fillStyle=g_JSChartResource.DealList.FieldColor.Bar[colorIndex];if(i==0)//左边
@@ -12662,7 +12663,7 @@ function HQChartScriptWorker(){this.Create=function(){var _this60=this;addEventL
12662
12663
  hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,Stock:{Symbol:message.Symbol},Request:{MaxDataCount:500,MaxMinuteDayCount:5},Period:message.Period,Right:message.Right,Data:hisData};if(IFrameSplitOperator.IsNumber(message.HQDataType))stockObj.HQDataType=message.HQDataType;indexConsole.ExecuteScript(stockObj);};this.OnRecvMessage=function(message){var data=message.data;if(!data)return;if(data.ID==JSCHART_WORKER_MESSAGE_ID.EXECUTE_SCRIPT){if(!IFrameSplitOperator.IsNonEmptyArray(data.AryIndex))return;for(var i=0;i<data.AryIndex.length;++i){var item=data.AryIndex[i];this.ExecuteScript(item,data);}}};this.OnExecuteFinish=function(data,indexInfo,jsExectute){var message={Data:data,IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.FINISH_EXECUTE_SCRIPT};postMessage(message);};this.OnExecuteError=function(error,indexInfo){var message={IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.ERROR_EXECUTE_SCRIPT,Error:error};postMessage(message);};}/********************************************************************************
12663
12664
  * 版本信息输出
12664
12665
  *
12665
- */var HQCHART_VERSION="1.1.12594";function PrintHQChartVersion(){var log='*************************************************************************************************************\n*\n* HQChart Ver: '+HQCHART_VERSION+' \n* \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n*************************************************************************************************************\n';console.log(log);}PrintHQChartVersion();//把给外界调用的方法暴露出来
12666
+ */var HQCHART_VERSION="1.1.12604";function PrintHQChartVersion(){var log='*************************************************************************************************************\n*\n* HQChart Ver: '+HQCHART_VERSION+' \n* \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n*************************************************************************************************************\n';console.log(log);}PrintHQChartVersion();//把给外界调用的方法暴露出来
12666
12667
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
12667
12668
  // BaseIndex:BaseIndex,
12668
12669
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "hqchart",
3
3
  "description": "stock chart",
4
4
  "author": "jones2000",
5
- "version": "1.1.12595",
5
+ "version": "1.1.12605",
6
6
  "main": "lib/main.js",
7
7
  "private": false,
8
8
  "license": "Apache License 2.0",
@@ -78,6 +78,8 @@ function JSDealChart(divElement)
78
78
  if (option.NetworkFilter) chart.NetworkFilter=option.NetworkFilter;
79
79
  if (IFrameSplitOperator.IsNonEmptyArray(option.Column)) chart.SetColumn(option.Column);
80
80
 
81
+ if (IFrameSplitOperator.IsNumber(option.ShowOrder)) chart.ChartPaint[0].ShowOrder=option.ShowOrder;
82
+
81
83
  this.SetChartBorder(chart, option);
82
84
 
83
85
  //是否自动更新
@@ -896,6 +898,7 @@ function ChartDealList()
896
898
  this.Decimal=2; //小数位数
897
899
  this.IsSingleTable=false; //单表模式
898
900
  this.IsShowHeader=true; //是否显示表头
901
+ this.ShowOrder=1; //0=顺序 1=倒序
899
902
 
900
903
  this.SizeChange=true;
901
904
 
@@ -1182,18 +1185,42 @@ function ChartDealList()
1182
1185
  var left=this.RectClient.Left+this.HeaderMergin.Left;
1183
1186
  var dataCount=this.Data.Data.length;
1184
1187
  var index=this.Data.DataOffset;
1185
- for(var i=0,j=0;i<this.TableCount;++i)
1188
+
1189
+ if (this.ShowOrder==1)
1186
1190
  {
1187
- var tableLeft=left+(this.TableWidth*i);
1188
- var textLeft=tableLeft;
1189
- var textTop=top;
1190
- for(j=0;j<this.RowCount && index<dataCount;++j, ++index)
1191
+ var index=this.Data.DataOffset+(this.TableCount*this.RowCount);
1192
+ if (index>=dataCount) index=dataCount-1;
1193
+ for(var i=0,j=0;i<this.TableCount;++i)
1191
1194
  {
1192
- var dataItem=this.Data.Data[index];
1193
-
1194
- this.DrawRow(dataItem, textLeft, textTop, index);
1195
+ var tableLeft=left+(this.TableWidth*i);
1196
+ var textLeft=tableLeft;
1197
+ var textTop=top;
1195
1198
 
1196
- textTop+=this.RowHeight;
1199
+ for(j=0;j<this.RowCount && index>=0;++j, --index)
1200
+ {
1201
+ var dataItem=this.Data.Data[index];
1202
+
1203
+ this.DrawRow(dataItem, textLeft, textTop, index);
1204
+
1205
+ textTop+=this.RowHeight;
1206
+ }
1207
+ }
1208
+ }
1209
+ else
1210
+ {
1211
+ for(var i=0,j=0;i<this.TableCount;++i)
1212
+ {
1213
+ var tableLeft=left+(this.TableWidth*i);
1214
+ var textLeft=tableLeft;
1215
+ var textTop=top;
1216
+ for(j=0;j<this.RowCount && index<dataCount;++j, ++index)
1217
+ {
1218
+ var dataItem=this.Data.Data[index];
1219
+
1220
+ this.DrawRow(dataItem, textLeft, textTop, index);
1221
+
1222
+ textTop+=this.RowHeight;
1223
+ }
1197
1224
  }
1198
1225
  }
1199
1226
  }
@@ -42487,7 +42487,7 @@ IFrameSplitOperator.FormatValueString=function(value, floatPrecision,languageID)
42487
42487
  {
42488
42488
  var absValue = Math.abs(value);
42489
42489
  if (absValue<100000)
42490
- return absValue.toFixed(0);
42490
+ return value.toFixed(0);
42491
42491
  else if (absValue<10000000)
42492
42492
  return (value/10000).toFixed(1)+"万";
42493
42493
  else if (absValue<100000000)
@@ -46567,7 +46567,7 @@ IFrameSplitOperator.FormatValueString=function(value, floatPrecision,languageID)
46567
46567
  {
46568
46568
  var absValue = Math.abs(value);
46569
46569
  if (absValue<100000)
46570
- return absValue.toFixed(0);
46570
+ return value.toFixed(0);
46571
46571
  else if (absValue<10000000)
46572
46572
  return (value/10000).toFixed(1)+"万";
46573
46573
  else if (absValue<100000000)
@@ -119401,6 +119401,8 @@ function JSDealChart(divElement)
119401
119401
  if (option.NetworkFilter) chart.NetworkFilter=option.NetworkFilter;
119402
119402
  if (IFrameSplitOperator.IsNonEmptyArray(option.Column)) chart.SetColumn(option.Column);
119403
119403
 
119404
+ if (IFrameSplitOperator.IsNumber(option.ShowOrder)) chart.ChartPaint[0].ShowOrder=option.ShowOrder;
119405
+
119404
119406
  this.SetChartBorder(chart, option);
119405
119407
 
119406
119408
  //是否自动更新
@@ -120219,6 +120221,7 @@ function ChartDealList()
120219
120221
  this.Decimal=2; //小数位数
120220
120222
  this.IsSingleTable=false; //单表模式
120221
120223
  this.IsShowHeader=true; //是否显示表头
120224
+ this.ShowOrder=1; //0=顺序 1=倒序
120222
120225
 
120223
120226
  this.SizeChange=true;
120224
120227
 
@@ -120505,18 +120508,42 @@ function ChartDealList()
120505
120508
  var left=this.RectClient.Left+this.HeaderMergin.Left;
120506
120509
  var dataCount=this.Data.Data.length;
120507
120510
  var index=this.Data.DataOffset;
120508
- for(var i=0,j=0;i<this.TableCount;++i)
120511
+
120512
+ if (this.ShowOrder==1)
120509
120513
  {
120510
- var tableLeft=left+(this.TableWidth*i);
120511
- var textLeft=tableLeft;
120512
- var textTop=top;
120513
- for(j=0;j<this.RowCount && index<dataCount;++j, ++index)
120514
+ var index=this.Data.DataOffset+(this.TableCount*this.RowCount);
120515
+ if (index>=dataCount) index=dataCount-1;
120516
+ for(var i=0,j=0;i<this.TableCount;++i)
120514
120517
  {
120515
- var dataItem=this.Data.Data[index];
120516
-
120517
- this.DrawRow(dataItem, textLeft, textTop, index);
120518
+ var tableLeft=left+(this.TableWidth*i);
120519
+ var textLeft=tableLeft;
120520
+ var textTop=top;
120518
120521
 
120519
- textTop+=this.RowHeight;
120522
+ for(j=0;j<this.RowCount && index>=0;++j, --index)
120523
+ {
120524
+ var dataItem=this.Data.Data[index];
120525
+
120526
+ this.DrawRow(dataItem, textLeft, textTop, index);
120527
+
120528
+ textTop+=this.RowHeight;
120529
+ }
120530
+ }
120531
+ }
120532
+ else
120533
+ {
120534
+ for(var i=0,j=0;i<this.TableCount;++i)
120535
+ {
120536
+ var tableLeft=left+(this.TableWidth*i);
120537
+ var textLeft=tableLeft;
120538
+ var textTop=top;
120539
+ for(j=0;j<this.RowCount && index<dataCount;++j, ++index)
120540
+ {
120541
+ var dataItem=this.Data.Data[index];
120542
+
120543
+ this.DrawRow(dataItem, textLeft, textTop, index);
120544
+
120545
+ textTop+=this.RowHeight;
120546
+ }
120520
120547
  }
120521
120548
  }
120522
120549
  }
@@ -129560,7 +129587,7 @@ function ScrollBarBGChart()
129560
129587
 
129561
129588
 
129562
129589
 
129563
- var HQCHART_VERSION="1.1.12594";
129590
+ var HQCHART_VERSION="1.1.12604";
129564
129591
 
129565
129592
  function PrintHQChartVersion()
129566
129593
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.12594";
8
+ var HQCHART_VERSION="1.1.12604";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -46611,7 +46611,7 @@ IFrameSplitOperator.FormatValueString=function(value, floatPrecision,languageID)
46611
46611
  {
46612
46612
  var absValue = Math.abs(value);
46613
46613
  if (absValue<100000)
46614
- return absValue.toFixed(0);
46614
+ return value.toFixed(0);
46615
46615
  else if (absValue<10000000)
46616
46616
  return (value/10000).toFixed(1)+"万";
46617
46617
  else if (absValue<100000000)
@@ -119445,6 +119445,8 @@ function JSDealChart(divElement)
119445
119445
  if (option.NetworkFilter) chart.NetworkFilter=option.NetworkFilter;
119446
119446
  if (IFrameSplitOperator.IsNonEmptyArray(option.Column)) chart.SetColumn(option.Column);
119447
119447
 
119448
+ if (IFrameSplitOperator.IsNumber(option.ShowOrder)) chart.ChartPaint[0].ShowOrder=option.ShowOrder;
119449
+
119448
119450
  this.SetChartBorder(chart, option);
119449
119451
 
119450
119452
  //是否自动更新
@@ -120263,6 +120265,7 @@ function ChartDealList()
120263
120265
  this.Decimal=2; //小数位数
120264
120266
  this.IsSingleTable=false; //单表模式
120265
120267
  this.IsShowHeader=true; //是否显示表头
120268
+ this.ShowOrder=1; //0=顺序 1=倒序
120266
120269
 
120267
120270
  this.SizeChange=true;
120268
120271
 
@@ -120549,18 +120552,42 @@ function ChartDealList()
120549
120552
  var left=this.RectClient.Left+this.HeaderMergin.Left;
120550
120553
  var dataCount=this.Data.Data.length;
120551
120554
  var index=this.Data.DataOffset;
120552
- for(var i=0,j=0;i<this.TableCount;++i)
120555
+
120556
+ if (this.ShowOrder==1)
120553
120557
  {
120554
- var tableLeft=left+(this.TableWidth*i);
120555
- var textLeft=tableLeft;
120556
- var textTop=top;
120557
- for(j=0;j<this.RowCount && index<dataCount;++j, ++index)
120558
+ var index=this.Data.DataOffset+(this.TableCount*this.RowCount);
120559
+ if (index>=dataCount) index=dataCount-1;
120560
+ for(var i=0,j=0;i<this.TableCount;++i)
120558
120561
  {
120559
- var dataItem=this.Data.Data[index];
120560
-
120561
- this.DrawRow(dataItem, textLeft, textTop, index);
120562
+ var tableLeft=left+(this.TableWidth*i);
120563
+ var textLeft=tableLeft;
120564
+ var textTop=top;
120562
120565
 
120563
- textTop+=this.RowHeight;
120566
+ for(j=0;j<this.RowCount && index>=0;++j, --index)
120567
+ {
120568
+ var dataItem=this.Data.Data[index];
120569
+
120570
+ this.DrawRow(dataItem, textLeft, textTop, index);
120571
+
120572
+ textTop+=this.RowHeight;
120573
+ }
120574
+ }
120575
+ }
120576
+ else
120577
+ {
120578
+ for(var i=0,j=0;i<this.TableCount;++i)
120579
+ {
120580
+ var tableLeft=left+(this.TableWidth*i);
120581
+ var textLeft=tableLeft;
120582
+ var textTop=top;
120583
+ for(j=0;j<this.RowCount && index<dataCount;++j, ++index)
120584
+ {
120585
+ var dataItem=this.Data.Data[index];
120586
+
120587
+ this.DrawRow(dataItem, textLeft, textTop, index);
120588
+
120589
+ textTop+=this.RowHeight;
120590
+ }
120564
120591
  }
120565
120592
  }
120566
120593
  }
@@ -129713,7 +129740,7 @@ function HQChartScriptWorker()
129713
129740
 
129714
129741
 
129715
129742
 
129716
- var HQCHART_VERSION="1.1.12594";
129743
+ var HQCHART_VERSION="1.1.12604";
129717
129744
 
129718
129745
  function PrintHQChartVersion()
129719
129746
  {
@@ -440,6 +440,24 @@ IFrameSplitOperator.FormatValueColor = function (value, value2)
440
440
  else return 'PriceDown';
441
441
  }
442
442
 
443
+ //成交量显示
444
+ IFrameSplitOperator.FormatVolString=function(value,languageID)
445
+ {
446
+ var absValue = Math.abs(value);
447
+ if (absValue<100000)
448
+ return value.toFixed(0);
449
+ else if (absValue<10000000)
450
+ return (value/10000).toFixed(1)+"万";
451
+ else if (absValue<100000000)
452
+ return (value/10000).toFixed(0)+"万";
453
+ else if (absValue<1000000000)
454
+ return (value/100000000).toFixed(2)+"亿";
455
+ else if (absValue < 1000000000000)
456
+ return (value/100000000).toFixed(1)+"亿";
457
+ else
458
+ return (value/1000000000000).toFixed(1)+"万亿";
459
+ }
460
+
443
461
  IFrameSplitOperator.IsNumber=function(value)
444
462
  {
445
463
  if (value==null) return false;
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.12578";
8
+ var HQCHART_VERSION="1.1.12599";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {