hqchart 1.1.14165 → 1.1.14172

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.
@@ -1665,9 +1665,12 @@ this.EnableVerifyRecvData=false;//是否检测接收到的数据
1665
1665
  this.PhoneDBClick=new PhoneDBClick();this.SelectedChart={EnableSelected:false,EnableMoveOn:false,Selected:{Identify:null},MoveOn:{Identify:null}};//选中图形
1666
1666
  this.IndexChartDrag;//拖拽指标图形
1667
1667
  this.EnableIndexChartDrag=false;this.GlobalOption={IsValueFullRange:false,IsDisplayLatest:false,SelectedBorder:{Mode:0,SelFrame:0},//边框选中模式 Mode:0=禁用 1=右侧标记选中 2=指标窗口标记选中
1668
- SelectedXBorder:{Mode:0,Date:null//X边框选中模式 Mode:0=禁用 分时图图有效
1668
+ SelectedXBorder:{Mode:0,Date:null},//X边框选中模式 Mode:0=禁用 分时图图有效
1669
1669
  //XDateFormat (多日分时图x轴底部日期格式)
1670
- }};this.VerticalDrag;//通过X轴左右拖动数据(手势才有)
1670
+ RightHorizontal:{}//Show:true,
1671
+ //Width:5
1672
+ //右侧框架外部坐标和间距
1673
+ };this.VerticalDrag;//通过X轴左右拖动数据(手势才有)
1671
1674
  this.EnableVerticalDrag=false;//十字光标长留(手势才有)
1672
1675
  this.ClickModel={IsShowCorssCursor:false};this.EnableClickModel=false;//标题栏显示最新数据
1673
1676
  this.DisplayLatestOption={Timer:null,Enable:false,DelayTime:60*1000*3,LastPoint:null};this.DrawDynamicInfoOption={Timer:null,Enable:false,DelayTime:10};this.CustomChartDrag;//自定义图形的拖拽操作 { Type:, Data: }
@@ -2354,8 +2357,9 @@ var yButton=0,xButton=0,bottom=0;for(var i=0;i<aryButton.length;++i){var item=ar
2354
2357
  for(var i=0;i<aryButton.length;++i){var item=aryButton[i];var size=item.Style.Size;var xBotton=right-size-item.Style.MerginLeft;var font=size+'px '+item.Style.Family;var rtButton={Left:xBotton,Top:yButton-size/2,Right:xBotton+size+item.Style.MerginLeft,Bottom:yButton+size/2,Width:size+item.Style.MerginLeft,Height:size};var color=item.Style.Color;if(moveonPoint&&moveonPoint.X>=rtButton.Left&&moveonPoint.X<rtButton.Right&&moveonPoint.Y>=rtButton.Top&&moveonPoint.Y<=rtButton.Bottom){color=item.Style.MoveOnColor;if(mouseStatus)mouseStatus.MouseOnToolbar={Rect:rtButton,Item:item,Frame:this,Point:{X:moveonPoint.X,Y:moveonPoint.Y}};}this.Canvas.fillStyle=color;this.Canvas.font=font;this.Canvas.textAlign="left";this.Canvas.textBaseline="middle";this.Canvas.fillText(item.Style.Text,xBotton,yButton);this.Buttons.push({ID:item.ID,Rect:rtButton});right=xBotton;}}};this.DrawToolbarTooltip=function(mouseOnToolbar){if(!mouseOnToolbar)return;var border=this.GetBorder();var text=null;if(mouseOnToolbar.Item.TooltipText){text=mouseOnToolbar.Item.TooltipText;}else{var key='Toolbar-'+mouseOnToolbar.Item.ID;text=g_JSChartLocalization.GetText(key,0);}if(!text)return;var pixelRatio=GetDevicePixelRatio();var canvas=this.Canvas;if(this.GetExtraCanvas){var finder=this.GetExtraCanvas(JSChart.TooltipCursorCanvasKey);if(finder)canvas=finder.Canvas;}var xCenter=mouseOnToolbar.Rect.Left+mouseOnToolbar.Rect.Width/2;canvas.font=this.ButtonTooltip.Font;canvas.textAlign="left";canvas.textBaseline="bottom";var mergin=this.ButtonTooltip.Mergin;var textWidth=canvas.measureText(text).width+mergin.Left+mergin.Right;var textHeight=this.GetFontHeight();var bgHeight=textHeight+mergin.Top+mergin.Bottom;if(mouseOnToolbar.ID=="TitleButton"){var x=mouseOnToolbar.Point.X;var y=mouseOnToolbar.Point.Y+20;}else if(JSCHART_BUTTON_ID.CLOSE_BEFOREOPEN_ID==mouseOnToolbar.Item.ID){var x=mouseOnToolbar.Rect.Right+5;var y=mouseOnToolbar.Rect.Top;}else if(JSCHART_BUTTON_ID.DRAW_PICTURE_DELETE==mouseOnToolbar.Item.ID||JSCHART_BUTTON_ID.DRAW_PICTURE_SETTING==mouseOnToolbar.Item.ID||mouseOnToolbar.Item.ID>=JSCHART_BUTTON_ID.DRAW_PICTURE_BUTTON_1&&mouseOnToolbar.Item.ID<=JSCHART_BUTTON_ID.DRAW_PICTURE_BUTTON_18){var x=mouseOnToolbar.Point.X;var y=mouseOnToolbar.Point.Y+20;if(x+textWidth>=border.ChartWidth)x=border.ChartWidth-textWidth-2;}else{var x=xCenter-textWidth/2;var y=border.Top-bgHeight;if(y<0)y=border.TopEx+1;if(x+textWidth>border.ChartWidth)x=border.ChartWidth-textWidth-2;}if(IFrameSplitOperator.IsNumber(this.ButtonTooltip.BorderRadius))//圆角
2355
2358
  {var roundRadius=this.ButtonTooltip.BorderRadius;canvas.beginPath();canvas.roundRect(ToFixedPoint(x),ToFixedPoint(y),ToFixedRect(textWidth),ToFixedRect(bgHeight),[roundRadius]);canvas.closePath();canvas.fillStyle=this.ButtonTooltip.ColorBG;canvas.fill();canvas.strokeStyle=this.ButtonTooltip.ColorBorder;canvas.stroke();canvas.fillStyle=this.ButtonTooltip.Color;canvas.fillText(text,x+mergin.Left,y+bgHeight-mergin.Bottom);}else{canvas.fillStyle=this.ButtonTooltip.ColorBG;canvas.fillRect(x,y,textWidth,bgHeight);//画一个背景色, 不然是一个黑的背景
2356
2359
  canvas.fillStyle=this.ButtonTooltip.Color;canvas.fillText(text,x+mergin.Left,y+bgHeight-mergin.Bottom);}};//isLimit 是否限制在当前坐标下
2357
- this.GetYFromData=function(value,isLimit){if(this.Logarithmic&&this.GetYLogarithmicFromData){return this.GetYLogarithmicFromData(value,isLimit);}if(isLimit===false){if(this.CoordinateType==1){var height=this.ChartBorder.GetHeightEx()*(value-this.HorizontalMin)/(this.HorizontalMax-this.HorizontalMin);return this.ChartBorder.GetTopEx()+height;}else{var height=this.ChartBorder.GetHeightEx()*(value-this.HorizontalMin)/(this.HorizontalMax-this.HorizontalMin);return this.ChartBorder.GetBottomEx()-height;}}else{if(this.CoordinateType==1){if(value<=this.HorizontalMin)return this.ChartBorder.GetTopEx();if(value>=this.HorizontalMax)return this.ChartBorder.GetBottomEx();var height=this.ChartBorder.GetHeightEx()*(value-this.HorizontalMin)/(this.HorizontalMax-this.HorizontalMin);return this.ChartBorder.GetTopEx()+height;}else{if(value<=this.HorizontalMin)return this.ChartBorder.GetBottomEx();if(value>=this.HorizontalMax)return this.ChartBorder.GetTopEx();var height=this.ChartBorder.GetHeightEx()*(value-this.HorizontalMin)/(this.HorizontalMax-this.HorizontalMin);return this.ChartBorder.GetBottomEx()-height;}}};//画Y轴
2358
- this.DrawHorizontal=function(){this.RightTextMaxWidth=0;if(!IFrameSplitOperator.IsNonEmptyArray(this.HorizontalInfo))return;if(this.ChartBorder.IsShowTitleOnly)return;var border=this.ChartBorder.GetBorder();var left=border.Left;var right=border.Right;var bottom=border.Bottom;var top=this.ChartBorder.GetTop();var borderRight=this.ChartBorder.Right;var borderLeft=this.ChartBorder.Left;var isDrawLeft=borderLeft>10&&this.IsShowYText[0]===true&&this.YTextPosition[0]!=2;var isDrawRight=borderRight>10&&this.IsShowYText[1]===true&&this.YTextPosition[1]!=2;var rightExtendLine=null;//右侧延长线
2360
+ this.GetYFromData=function(value,isLimit){if(this.Logarithmic&&this.GetYLogarithmicFromData){return this.GetYLogarithmicFromData(value,isLimit);}if(isLimit===false){if(this.CoordinateType==1){var height=this.ChartBorder.GetHeightEx()*(value-this.HorizontalMin)/(this.HorizontalMax-this.HorizontalMin);return this.ChartBorder.GetTopEx()+height;}else{var height=this.ChartBorder.GetHeightEx()*(value-this.HorizontalMin)/(this.HorizontalMax-this.HorizontalMin);return this.ChartBorder.GetBottomEx()-height;}}else{if(this.CoordinateType==1){if(value<=this.HorizontalMin)return this.ChartBorder.GetTopEx();if(value>=this.HorizontalMax)return this.ChartBorder.GetBottomEx();var height=this.ChartBorder.GetHeightEx()*(value-this.HorizontalMin)/(this.HorizontalMax-this.HorizontalMin);return this.ChartBorder.GetTopEx()+height;}else{if(value<=this.HorizontalMin)return this.ChartBorder.GetBottomEx();if(value>=this.HorizontalMax)return this.ChartBorder.GetTopEx();var height=this.ChartBorder.GetHeightEx()*(value-this.HorizontalMin)/(this.HorizontalMax-this.HorizontalMin);return this.ChartBorder.GetBottomEx()-height;}}};this.IsShowRightHorizontal=function(){var borderRight=this.ChartBorder.Right;if(borderRight<=10)return false;if(this.YTextPosition[1]==2)return false;if(this.IsShowYText[1]===false)return false;if(this.GlobalOption&&this.GlobalOption.RightHorizontal){var item=this.GlobalOption.RightHorizontal;if(item.Show===false)return false;}return true;};//画Y轴
2361
+ this.DrawHorizontal=function(){this.RightTextMaxWidth=0;if(!IFrameSplitOperator.IsNonEmptyArray(this.HorizontalInfo))return;if(this.ChartBorder.IsShowTitleOnly)return;var border=this.ChartBorder.GetBorder();var left=border.Left;var right=border.Right;var bottom=border.Bottom;var top=this.ChartBorder.GetTop();var borderRight=this.ChartBorder.Right;var borderLeft=this.ChartBorder.Left;var isDrawLeft=borderLeft>10&&this.IsShowYText[0]===true&&this.YTextPosition[0]!=2;//var isDrawRight=borderRight>10 && this.IsShowYText[1]===true && this.YTextPosition[1]!=2;
2362
+ var isDrawRight=this.IsShowRightHorizontal();var rightExtendLine=null;//右侧延长线
2359
2363
  var leftExtendLine=null;//左侧延长线
2360
2364
  if(IFrameSplitOperator.IsNonEmptyArray(this.YLineExtend)){rightExtendLine=this.YLineExtend[1];leftExtendLine=this.YLineExtend[0];}var rightExtendText=null;//右侧文字设置
2361
2365
  var leftExtendText=null;//左侧文字设置
@@ -2451,7 +2455,8 @@ this.Canvas.beginPath();if(this.IsHScreen){this.Canvas.moveTo(ToFixedPoint(y),le
2451
2455
  {var pixelRatio=GetDevicePixelRatio();this.Canvas.strokeStyle=color;var bChangeLineWidth=false;if(option&&IFrameSplitOperator.IsPlusNumber(option.LineWidth)){this.Canvas.lineWidth=option.LineWidth*pixelRatio;bChangeLineWidth=true;}this.Canvas.beginPath();if(this.IsHScreen){this.Canvas.moveTo(ToFixedPoint(y),left);this.Canvas.lineTo(ToFixedPoint(y),right);}else{this.Canvas.moveTo(left,ToFixedPoint(y));this.Canvas.lineTo(right,ToFixedPoint(y));}this.Canvas.stroke();if(bChangeLineWidth){this.Canvas.lineWidth=pixelRatio;}}else if(lineType==3)//绘制短线
2452
2456
  {var lineWidth=10*GetDevicePixelRatio();this.Canvas.strokeStyle=color;this.Canvas.beginPath();if(this.IsHScreen){this.Canvas.moveTo(ToFixedPoint(y),left);this.Canvas.lineTo(ToFixedPoint(y),left+lineWidth);}else{this.Canvas.moveTo(left,ToFixedPoint(y));this.Canvas.lineTo(left+lineWidth,ToFixedPoint(y));}this.Canvas.stroke();}else if(lineType==1||lineType==2)//虚线
2453
2457
  {this.DrawDotLine(left,right,y,color,option);}};this.DrawHScreenText=function(center,data){this.Canvas.textAlign="left";this.Canvas.textBaseline="middle";this.Canvas.fillStyle=data.Color;this.Canvas.save();this.Canvas.translate(center.X,center.Y);this.Canvas.rotate(90*Math.PI/180);this.Canvas.fillText(data.Text,data.XOffset,data.YOffset);this.Canvas.restore();};this.RGBToStruct=function(rgb){if(/^(rgb|RGB)/.test(rgb)){var aColor=rgb.replace(/(?:\(|\)|rgb|RGB)*/g,"").split(",");var result={};if(aColor.length!=3)return null;result.R=Number(aColor[0]);result.G=Number(aColor[1]);result.B=Number(aColor[2]);return result;}return null;};this.GetMulitTextMaxWidth=function(aryData){var width=null;for(var i=0;i<aryData.length;++i){var item=aryData[i];var text=item.Text;if(!text)continue;var value=this.Canvas.measureText(text).width;if(width==null)width=value;else if(width<value)width=value;}return width;};this.GetScaleTextWidth=function(){var border=this.ChartBorder.GetBorder();var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
2454
- if(this.IsHScreen){var borderTop=this.ChartBorder.Top;var borderBottom=this.ChartBorder.Bottom;var isDrawLeft=borderTop>10*pixelTatio&&this.IsShowYText[0]===true&&this.YTextPosition[0]!=2;var isDrawRight=borderBottom>10*pixelTatio&&this.IsShowYText[1]===true&&this.YTextPosition[1]!=2;}else{var borderRight=this.ChartBorder.Right;var borderLeft=this.ChartBorder.Left;var isDrawLeft=borderLeft>10&&this.IsShowYText[0]===true&&this.YTextPosition[0]!=2;var isDrawRight=borderRight>10&&this.IsShowYText[1]===true&&this.YTextPosition[1]!=2;}if(!isDrawRight&&!isDrawLeft)return null;var width={Left:null,Right:null};var rightExtendWidth=0;var isYPercentage=false;//是否是百分比坐标
2458
+ if(this.IsHScreen){var borderTop=this.ChartBorder.Top;var borderBottom=this.ChartBorder.Bottom;var isDrawLeft=borderTop>10*pixelTatio&&this.IsShowYText[0]===true&&this.YTextPosition[0]!=2;var isDrawRight=borderBottom>10*pixelTatio&&this.IsShowYText[1]===true&&this.YTextPosition[1]!=2;}else{var borderRight=this.ChartBorder.Right;var borderLeft=this.ChartBorder.Left;var isDrawLeft=borderLeft>10&&this.IsShowYText[0]===true&&this.YTextPosition[0]!=2;//var isDrawRight=borderRight>10 && this.IsShowYText[1]===true && this.YTextPosition[1]!=2;
2459
+ isDrawRight=this.IsShowRightHorizontal();}if(!isDrawRight&&!isDrawLeft)return null;var width={Left:null,Right:null};var rightExtendWidth=0;var isYPercentage=false;//是否是百分比坐标
2455
2460
  if(this.YSplitOperator&&this.YSplitOperator.CoordinateType==1)isYPercentage=true;var leftExtendLineWidth=0;var rightExtendLineWidth=0;if(IFrameSplitOperator.IsNonEmptyArray(this.YLineExtend)){if(this.YLineExtend[0]&&this.YLineExtend[0].Width>1)leftExtendLineWidth=this.YLineExtend[0].Width;if(this.YLineExtend[1]&&this.YLineExtend[1].Width>1)rightExtendLineWidth=this.YLineExtend[1].Width;}for(var i=0;i<this.HorizontalInfo.length;++i){var textWidth=null;var item=this.HorizontalInfo[i];if(!item)continue;if(item.Font!=null)this.Canvas.font=item.Font;if(item.Message[0]!=null&&isDrawLeft){if(Array.isArray(item.Message[0])){textWidth=this.GetMulitTextMaxWidth(item.Message[0]);}else{textWidth=this.Canvas.measureText(item.Message[0]).width;}if(width.Left==null||width.Left<textWidth)width.Left=textWidth;//JSConsole.Chart.Log(`[ChartData::GetScaleTextWidth] ${item.Message[0]} ${textWidth}`);
2456
2461
  }if(item.Message[1]!=null&&isDrawRight){if(item.Font!=null)this.Canvas.font=item.Font;if(Array.isArray(item.Message[1])){if(this.MultiTextFormat==1)//显示1行 格式:价格/百分比
2457
2462
  {if(item.ExtendData){if(item.ExtendData.Font)this.Canvas.font=item.ExtendData.Font;var width1=this.Canvas.measureText(item.Message[1][0]).width;var width2=this.Canvas.measureText(item.Message[1][1]).width;var width3=this.Canvas.measureText('/').width;textWidth=width1+width3;if(rightExtendWidth<width2)rightExtendWidth=width2;//JSConsole.Chart.Log(`[ChartData::GetScaleTextWidth] ${item.Message[1][1]}/${item.Message[1][0]} ${textWidth}, ${rightExtendWidth}`);
@@ -4661,7 +4666,7 @@ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);if(drawData.Type==0)//连续
4661
4666
  {var titleItem=this.FormatPosition(item.Position,'PCTooltip-Position');if(titleItem)aryText.push(titleItem);}}else if(drawData.Type==1)//集合竞价
4662
4667
  {var item=drawData.Data.Data;if(!item)return;this.YClose=item.YClose;if(isFutures&&IFrameSplitOperator.IsNumber(item.YClearing))this.YClose=item.YClearing;var titleItem=this.FormatDate(item.Date);if(titleItem)aryText.push(titleItem);var timeForamt="HH:MM:SS";if(item.Ver===1)timeForamt="HH:MM";var titleItem=this.ForamtTime(item.Time,timeForamt,'PCTooltip-Time');if(titleItem)aryText.push(titleItem);var titleItem=this.ForamtPrice(item.Price,defaultfloatPrecision,'PCTooltip-AC-Price');if(titleItem)aryText.push(titleItem);var titleItem=this.ForamtIncrease(item.Price,"PCTooltip-AC-Increase");if(titleItem)aryText.push(titleItem);if(IFrameSplitOperator.IsNonEmptyArray(item.Vol)){var titleItem=this.FormatVol(item.Vol[0]/unit,'PCTooltip-AC-Vol');if(titleItem)aryText.push(titleItem);var titleItem=this.FormatVol(item.Vol[1]/unit,'PCTooltip-AC-NotMatchVol');if(titleItem)aryText.push(titleItem);}}return aryText;};this.GetColor=function(price,yclse){if(price>yclse)return this.UpColor;else if(price<yclse)return this.DownColor;else return this.UnchagneColor;};this.FormatDate=function(date){if(!IFrameSplitOperator.IsNumber(date))return null;var titleItem={Title:g_JSChartLocalization.GetText('PCTooltip-Date',this.LanguageID),TitleColor:this.TitleColor,Text:IFrameSplitOperator.FormatDateString(date,"MM-DD",this.LanguageID),TextColor:this.DateTimeColor};return titleItem;};this.ForamtTime=function(time,format,TitleID){if(!IFrameSplitOperator.IsNumber(time))return null;var titleItem={Title:g_JSChartLocalization.GetText(TitleID,this.LanguageID),TitleColor:this.TitleColor,Text:IFrameSplitOperator.FormatTimeString(time,format,this.LanguageID),TextColor:this.DateTimeColor};return titleItem;};this.ForamtPrice=function(price,defaultfloatPrecision,TitleID){if(!IFrameSplitOperator.IsNumber(price))return null;var titleItem={Title:g_JSChartLocalization.GetText(TitleID,this.LanguageID),TitleColor:this.TitleColor,Text:price.toFixed(defaultfloatPrecision),TextColor:this.GetColor(price,this.YClose)};return titleItem;};this.ForamtIncrease=function(price,TitleID){if(!IFrameSplitOperator.IsNumber(price)||price==0)return null;var value=(price-this.YClose)/this.YClose*100;var titleItem={Title:g_JSChartLocalization.GetText(TitleID,this.LanguageID),TitleColor:this.TitleColor,Text:value.toFixed(2)+'%',TextColor:this.GetColor(value,0)};if(this.YClose===0){titleItem.Text="--.--";titleItem.TextColor=this.TitleColor;}return titleItem;};this.FormatVol=function(vol,TitleID){if(!IFrameSplitOperator.IsNumber(vol))return null;var titleItem={Title:g_JSChartLocalization.GetText(TitleID,this.LanguageID),TitleColor:this.TitleColor,Text:IFrameSplitOperator.FromatIntegerString(vol,2,this.LanguageID),TextColor:this.VolColor};return titleItem;};this.FormatPosition=function(value,TitleID){if(!IFrameSplitOperator.IsNumber(value))return null;var titleItem={Title:g_JSChartLocalization.GetText(TitleID,this.LanguageID),TitleColor:this.TitleColor,Text:value.toFixed(0),TextColor:this.PositionColor};return titleItem;};}//股票信息
4663
4668
  function StockInfoExtendChartPaint(){this.newMethod=IExtendChartPainting;//派生
4664
- this.newMethod();delete this.newMethod;this.Left=80;this.Right=1;this.Top=1;this.Bottom=1;this.BorderColor=g_JSChartResource.FrameBorderPen;this.Symbol;this.Name;this.TitleFont=["14px 微软雅黑"];this.Draw=function(){var left=this.ChartBorder.GetRight()+this.Left;var right=this.ChartBorder.GetChartWidth()-this.Right;var y=this.Top+18;var middle=left+(right-left)/2;if(this.Symbol&&this.Name){this.Canvas.font=this.TitleFont[0];this.Canvas.textAlign="right";this.Canvas.textBaseline="bottom";this.Canvas.fillText(this.Symbol,middle-2,y);this.Canvas.textAlign="left";this.Canvas.fillText(this.Name,middle+2,y);};this.Canvas.strokeStyle=this.BorderColor;this.Canvas.moveTo(left,y);this.Canvas.lineTo(right,y);this.Canvas.stroke();y+=30;this.DrawBorder();};this.DrawBorder=function(){var left=this.ChartBorder.GetRight()+this.Left;var right=this.ChartBorder.GetChartWidth()-this.Right;var top=this.Top;var bottom=this.ChartBorder.GetChartHeight()-this.Bottom;this.Canvas.strokeStyle=this.BorderColor;this.Canvas.strokeRect(left,top,right-left,bottom-top);};}//筹码分布
4669
+ this.newMethod();delete this.newMethod;this.Left=80;this.Right=1;this.Top=1;this.Bottom=1;this.BorderColor=g_JSChartResource.FrameBorderPen;this.Symbol;this.Name;this.TitleFont=["14px 微软雅黑"];this.Draw=function(){var left=this.ChartBorder.GetRight()+this.Left;var right=this.ChartBorder.GetChartWidth()-this.Right;var y=this.Top+18;var middle=left+(right-left)/2;if(this.Symbol&&this.Name){this.Canvas.font=this.TitleFont[0];this.Canvas.textAlign="right";this.Canvas.textBaseline="bottom";this.Canvas.fillText(this.Symbol,middle-2,y);this.Canvas.textAlign="left";this.Canvas.fillText(this.Name,middle+2,y);}this.Canvas.strokeStyle=this.BorderColor;this.Canvas.moveTo(left,y);this.Canvas.lineTo(right,y);this.Canvas.stroke();y+=30;this.DrawBorder();};this.DrawBorder=function(){var left=this.ChartBorder.GetRight()+this.Left;var right=this.ChartBorder.GetChartWidth()-this.Right;var top=this.Top;var bottom=this.ChartBorder.GetChartHeight()-this.Bottom;this.Canvas.strokeStyle=this.BorderColor;this.Canvas.strokeRect(left,top,right-left,bottom-top);};}//筹码分布
4665
4670
  function StockChip(){this.newMethod=IExtendChartPainting;//派生
4666
4671
  this.newMethod();delete this.newMethod;this.Name='筹码分布';this.ClassName='StockChip';this.HQChart;this.PenBorder=g_JSChartResource.FrameBorderPen;//边框
4667
4672
  this.ColorProfit='rgb(255,0,0)';//盈利的线段
@@ -4702,7 +4707,12 @@ if(item.FlowCapital>0)changeRate=item.Vol/item.FlowCapital;if(_i7==count)vol=ite
4702
4707
  if(!maxPrice||!minPrice)return true;var priceZoom=this.PriceZoom;maxPrice=parseInt(maxPrice*priceZoom);minPrice=parseInt(minPrice*priceZoom);var dataCount=maxPrice-minPrice;var aryChip=new Array();for(var _i8=0;_i8<=dataCount;++_i8){aryChip.push(0);}var dayChip=[];var distributeData;if(this.ShowType==2){var dayChip=[{Day:100,Color:this.DAY_COLOR[1][5]},{Day:60,Color:this.DAY_COLOR[1][4]},{Day:30,Color:this.DAY_COLOR[1][3]},{Day:20,Color:this.DAY_COLOR[1][2]},{Day:10,Color:this.DAY_COLOR[1][1]},{Day:5,Color:this.DAY_COLOR[1][0]}];for(var _i9 in aryVol){var item=aryVol[_i9];var high=parseInt(item.High*priceZoom);var low=parseInt(item.Low*priceZoom);var averageVol=item.Vol;if(high-low>0)averageVol=item.Vol/(high-low);if(averageVol<=0.000000001)continue;for(var k=0;k<dayChip.length;++k){if(_i9==dayChip[k].Day){dayChip[k].Chip=aryChip.slice(0);break;}}distributeData={Low:low,High:high,Vol:item.Vol,MaxPrice:maxPrice,MinPrice:minPrice};this.CalculateDistribute(aryChip,distributeData);}}else if(this.ShowType==1){var dayChip=[{Day:5,Color:this.DAY_COLOR[0][0]},{Day:10,Color:this.DAY_COLOR[0][1]},{Day:20,Color:this.DAY_COLOR[0][2]},{Day:30,Color:this.DAY_COLOR[0][3]},{Day:60,Color:this.DAY_COLOR[0][4]},{Day:100,Color:this.DAY_COLOR[0][5]}];for(var _i10=aryVol.length-1;_i10>=0;--_i10){var item=aryVol[_i10];var high=parseInt(item.High*priceZoom);var low=parseInt(item.Low*priceZoom);var averageVol=item.Vol;if(high-low>0)averageVol=item.Vol/(high-low);if(averageVol<=0.000000001)continue;for(var k=0;k<dayChip.length;++k){if(_i10==dayChip[k].Day){dayChip[k].Chip=aryChip.slice(0);break;}}distributeData={Low:low,High:high,Vol:item.Vol,MaxPrice:maxPrice,MinPrice:minPrice};this.CalculateDistribute(aryChip,distributeData);}}else{for(var _i11 in aryVol){var item=aryVol[_i11];var high=parseInt(item.High*priceZoom);var low=parseInt(item.Low*priceZoom);var averageVol=item.Vol;if(high-low>0)averageVol=item.Vol/(high-low);if(averageVol<=0.000000001)continue;distributeData={Low:low,High:high,Vol:item.Vol,MaxPrice:maxPrice,MinPrice:minPrice};this.CalculateDistribute(aryChip,distributeData);}}if(!distributeData)return false;this.Data={AllChip:aryChip,MaxVol:distributeData.MaxVol,MaxPrice:maxPrice,MinPrice:minPrice,SelectData:selData,DayChip:dayChip,YPrice:yPrice};return true;};this.DrawFrame=function()//X轴成交量坐标
4703
4708
  {if(this.IsShowX==false)return;if(this.Data.MaxVol<=0)return;var isDrawXFrame=this.HQChart.Frame.SubFrame.length===1?false:true;//是否画X轴,如果只有1个窗口就不画
4704
4709
  var KLineFrame=this.HQChart.Frame.SubFrame[0].Frame;var chartBorder=KLineFrame.ChartBorder;var bottom=ToFixedPoint(chartBorder.GetBottomEx()+1);if(!isDrawXFrame)bottom=this.ClientRect.Top+this.ClientRect.Height;var left=this.ClientRect.Left;var right=left+this.ClientRect.Width;this.Canvas.strokeStyle=this.PenBorder;this.Canvas.beginPath();if(isDrawXFrame){this.Canvas.moveTo(left,bottom);this.Canvas.lineTo(right,bottom);}var showCount=this.ShowXCount;var maxValue=this.Data.MaxVol;var perValue=Math.floor(maxValue/showCount);this.Canvas.font=this.Font;this.Canvas.textBaseline='top';this.Canvas.fillStyle=this.InfoColor;var xOffset=10*GetDevicePixelRatio();for(var i=1;i<=showCount;++i){var vol=perValue*i;var x=vol/this.Data.MaxVol*this.ClientRect.Width+this.ClientRect.Left;x=ToFixedPoint(x);if(i==showCount)//最后一个刻度不要画线了
4705
- {this.Canvas.textAlign='right';var text=IFrameSplitOperator.FormatValueString(maxValue,1);this.Canvas.fillText(text,x,bottom+2);}else{this.Canvas.moveTo(x,this.ClientRect.Top);this.Canvas.lineTo(x,bottom);this.Canvas.textAlign='center';var text=IFrameSplitOperator.FormatValueString(vol,1);var textWidth=this.Canvas.measureText(text).width;this.Canvas.fillText(text,Math.floor(x-textWidth*0.25),bottom+2);}}this.Canvas.stroke();};}//窗口分割
4710
+ {this.Canvas.textAlign='right';var text=IFrameSplitOperator.FormatValueString(maxValue,1);this.Canvas.fillText(text,x,bottom+2);}else{this.Canvas.moveTo(x,this.ClientRect.Top);this.Canvas.lineTo(x,bottom);this.Canvas.textAlign='center';var text=IFrameSplitOperator.FormatValueString(vol,1);var textWidth=this.Canvas.measureText(text).width;this.Canvas.fillText(text,Math.floor(x-textWidth*0.25),bottom+2);}}this.Canvas.stroke();};}//筹码分布手机版
4711
+ function StockChipPhone(){this.newMethod=StockChip;//派生
4712
+ this.newMethod();delete this.newMethod;this.Name='筹码分布手机版';this.ClassName='StockChipPhone';this.ShowType=0;//0=所有筹码 手机版只支持0
4713
+ this.Draw=function(){this.ShowType=0;this.PixelRatio=GetDevicePixelRatio();var left=ToFixedPoint(this.ChartBorder.GetRight()+this.Left);var top=ToFixedPoint(this.ChartBorder.GetTop());var right=ToFixedPoint(left+this.Width-1*this.PixelRatio);var bottom=ToFixedPoint(this.ChartBorder.GetBottom());var width=right-left;var height=bottom-top;this.ClientRect={Left:left,Top:top,Width:width,Height:height};if(ChartData.IsTickPeriod(this.HQChart.Period)){}else{if(this.CalculateChip()){this.DrawFrame();this.DrawAllChip();this.CalculateCast();//计算成本
4714
+ this.DrawChipInfo();}}this.DrawBorder();this.SizeChange=false;};this.DrawToolbar=function(moveonPoint,mouseStatus){};this.GetChipInfoTitle=function(){var aryText=[];//从底部往上
4715
+ var item={Title:"日期:",Text:IFrameSplitOperator.FormatDateString(this.Data.SelectData.Date)};aryText.push(item);var item={Title:"集中度:",Text:"--.--%"};if(IFrameSplitOperator.IsNonEmptyArray(this.Data.Cast))item.Text=this.Data.Cast[0].Rate.toFixed(2)+'%';aryText.push(item);var item={Title:"90%成本:",Text:"--.--"};if(IFrameSplitOperator.IsNonEmptyArray(this.Data.Cast))item.Text=this.Data.Cast[0].MinPrice.toFixed(2)+'-'+this.Data.Cast[0].MaxPrice.toFixed(2);aryText.push(item);var item={Title:"平均成本::",Text:"--.--"};if(this.Data.ChipInfo&&IFrameSplitOperator.IsNumber(this.Data.ChipInfo.AveragePrice))item.Text=''+this.Data.ChipInfo.AveragePrice.toFixed(2);if(IFrameSplitOperator.IsNumber(this.Data.YPrice)&&IFrameSplitOperator.IsNumber(this.Data.ChipInfo.YProfitRate)){var item={Title:this.Data.YPrice.toFixed(2)+'\u83B7\u5229:',Text:this.Data.ChipInfo.YProfitRate.toFixed(2)+'%'};aryText.push(item);}return aryText;};this.DrawChipInfo=function(){var aryText=this.GetChipInfoTitle();if(!IFrameSplitOperator.IsNonEmptyArray(aryText))return;var bottom=this.ClientRect.Top+this.ClientRect.Height-1;var left=this.ClientRect.Left+2;var right=this.ClientRect.Left+this.ClientRect.Width;this.Canvas.font=this.Font;this.Canvas.fillStyle=this.InfoColor;this.Canvas.textBaseline='bottom';this.Canvas.textAlign='left';var lineHeight=this.LineHeight*GetDevicePixelRatio();var yText=bottom;for(var i=0;i<aryText.length;++i){var item=aryText[i];var textColor=item.TitleColor;if(item.TitleColor)textColor=item.TitleColor;this.Canvas.fillStyle=textColor;this.Canvas.fillText(item.Title,left,yText);var textWidth=this.Canvas.measureText(item.Title).width+4;var xText=left+textWidth;var textColor=item.TitleColor;if(item.TextColor)textColor=item.TextColor;this.Canvas.fillStyle=textColor;this.Canvas.fillText(item.Text,xText,yText);yText-=lineHeight;}var text='获利比例:';this.Canvas.fillText(text,left,yText);var textWidth=this.Canvas.measureText(text).width+2;var barLeft=left+textWidth;var barWidth=right-5-barLeft;this.Canvas.strokeStyle=this.ColorNoProfit;this.Canvas.strokeRect(barLeft,yText-lineHeight,barWidth,lineHeight);this.Canvas.strokeStyle=this.ColorProfit;this.Canvas.strokeRect(barLeft,yText-lineHeight,barWidth*(this.Data.ChipInfo.ProfitRate/100),lineHeight);text=this.Data.ChipInfo.ProfitRate.toFixed(2)+'%';this.Canvas.textAlign='center';this.Canvas.fillText(text,barLeft+barWidth/2,yText);yText-=lineHeight;};}//窗口分割
4706
4716
  function FrameSplitPaint(){this.newMethod=IExtendChartPainting;//派生
4707
4717
  this.newMethod();delete this.newMethod;this.ClassName='FrameSplitPaint';this.LineColor='rgb(255,0,0)';this.TextColor="rgb(255,0,0)";this.LineWidth=2;this.Font='bold '+18*GetDevicePixelRatio()+"px 微软雅黑";this.TextTopOffset=10*GetDevicePixelRatio();//设置参数接口
4708
4718
  this.SetOption=function(option){if(option){if(option.LineColor)this.LineColor=option.LineColor;if(option.TextColor)this.TextColor=option.TextColor;if(option.Font)this.Font=option.Font;if(IFrameSplitOperator.IsNumber(option.LineWidth))this.LineWidth=option.LineWidth;if(IFrameSplitOperator.IsNumber(option.TextTopOffset))this.TextTopOffset=option.TextTopOffset;}};this.Draw=function(){if(!this.HQChart)return;if(this.HQChart.Period!=0&&this.HQChart.Period!=1)return;if(!this.HQChart.ChartPaint[0])return;var data=this.HQChart.ChartPaint[0].Data;if(!data)return;this.Data=data;if(!this.ChartFrame||!this.ChartFrame.SubFrame)return;var subFrame=this.ChartFrame.SubFrame[0].Frame;if(!subFrame)return;var isHScreen=subFrame.IsHScreen===true;var dataWidth=subFrame.DataWidth;var distanceWidth=subFrame.DistanceWidth;var xPointCount=subFrame.XPointCount;var lineWidth=this.LineWidth*GetDevicePixelRatio();if(isHScreen){var border=this.ChartBorder.GetHScreenBorder();var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.BottomEx;}else{var border=this.ChartBorder.GetBorder();var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;var drawHeight=border.ChartHeight-border.TopTitle-5*GetDevicePixelRatio();}this.Canvas.save();this.Canvas.lineWidth=lineWidth;this.Canvas.font=this.Font;this.Canvas.textAlign='center';this.Canvas.textBaseline='top';var preQuarter={Left:border.LeftEx,Top:ToFixedPoint2(lineWidth,border.TopTitle),Height:drawHeight,LineWidth:lineWidth};for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var item=this.Data.Data[i];if(!item)continue;var dateInfo=this.GetQuarter(item.Date);if(!dateInfo)continue;var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;var x=left+(right-left)/2;if(!preQuarter.DateInfo){preQuarter.DateInfo=dateInfo;preQuarter.Right=x;}else{var preDateInfo=preQuarter.DateInfo;if(preDateInfo.Year!=dateInfo.Year||preDateInfo.Quarter!=dateInfo.Quarter){preQuarter.Right=x;this.DrawQuarter(preQuarter);preQuarter.Left=x;preQuarter.Right=null;preQuarter.DateInfo=dateInfo;}else{preQuarter.Right=x;}}}this.DrawQuarter(preQuarter);this.Canvas.restore();};this.DrawQuarter=function(quarterInfo){if(!IFrameSplitOperator.IsNumber(quarterInfo.Left)||!IFrameSplitOperator.IsNumber(quarterInfo.Right))return;var left=ToFixedPoint2(quarterInfo.LineWidth,quarterInfo.Left);var right=ToFixedPoint2(quarterInfo.LineWidth,quarterInfo.Right);var drawWidth=right-left;this.Canvas.strokeStyle=this.LineColor;this.Canvas.strokeRect(left,quarterInfo.Top,drawWidth,quarterInfo.Height);var date=quarterInfo.DateInfo;var shortYear=date.Year%100;if(shortYear<10)var strYear='0'+shortYear;else var strYear=shortYear.toString();var text=strYear+'\u5E74'+date.Quarter+'\u5B63\u5EA6';var textWidth=this.Canvas.measureText(text).width;if(textWidth<drawWidth+5){var x=left+drawWidth/2;var y=quarterInfo.Top+this.TextTopOffset;this.Canvas.fillStyle=this.TextColor;this.Canvas.fillText(text,x,y);}};this.GetQuarter=function(date){if(!IFrameSplitOperator.IsNumber(date))return null;var year=parseInt(date/10000);var month=parseInt(date%10000/100);switch(month){case 1:case 2:case 3:var quarter=1;break;case 4:case 5:case 6:var quarter=2;break;case 7:case 8:case 9:var quarter=3;break;case 10:case 11:case 12:var quarter=4;break;default:return null;}return{Year:year,Month:month,Quarter:quarter};};}//区间选择选中范围背景
@@ -7549,9 +7559,11 @@ this.ResetFrameXYSplit();this.UpdateFrameMaxMin();//调整坐标最大 最小值
7549
7559
  this.Draw();}else{if(!symbol)symbol=this.Symbol;var optionData={KLine:{}};if(IFrameSplitOperator.IsNumber(period))optionData.KLine.Period=period;if(IFrameSplitOperator.IsNumber(right))optionData.KLine.Right=right;this.ChangeSymbol(symbol,optionData);}};this.RemoveIndexWindow=function(id,option){JSConsole.Chart.Log('[KLineChartContainer::RemoveIndexWindow] remove id',id);if(id==0){if(option&&option.DeleteMainIndex)//删除指标
7550
7560
  {this.DeleteIndexPaint(id);this.WindowIndex[id]=null;this.Frame.SetSizeChage(true);this.UpdateFrameMaxMin();this.ResetFrameXYSplit();this.Draw();}return;}if(!this.Frame.SubFrame)return;if(id>=this.Frame.SubFrame.length)return;this.Frame.RestoreIndexWindows();var delFrame=this.Frame.SubFrame[id].Frame;this.DeleteIndexPaint(id);this.DeleteChartPaintExtend({WindowIndex:id});this.Frame.SubFrame[id].Frame.ClearToolbar();var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_DELETE_FRAME);if(event&&event.Callback){var sendData={SubFrame:this.Frame.SubFrame[id],WindowIndex:id};event.Callback(event,sendData,this);}this.Frame.SubFrame.splice(id,1);this.WindowIndex.splice(id,1);this.TitlePaint.splice(id+1,1);//删除对应的动态标题
7551
7561
  for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i].Frame;if(i==this.Frame.SubFrame.length-1)item.XSplitOperator.ShowText=true;else item.XSplitOperator.ShowText=false;item.Identify=i;}if(this.ChartDrawPicture.length>0){var aryDrawPicture=[];for(var i in this.ChartDrawPicture){var item=this.ChartDrawPicture[i];if(item.Frame==delFrame)continue;aryDrawPicture.push(item);}this.ChartDrawPicture=aryDrawPicture;}this.Frame.SetSizeChage(true);this.UpdateFrameMaxMin();this.ResetFrameXYSplit();this.Draw();};this.CreateExtendChart=function(name,option)//创建扩展图形
7552
- {var chart;switch(name){case'筹码分布':chart=new StockChip();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;chart.Left=this.Frame.ChartBorder.Right;//左边间距使用当前框架间距
7562
+ {var chart;switch(name){case'筹码分布':case"StockChip":chart=new StockChip();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;chart.Left=this.Frame.ChartBorder.Right;//左边间距使用当前框架间距
7553
7563
  chart.SetOption(option);this.ExtendChartPaint.push(chart);this.Frame.ChartBorder.Right+=chart.Width;//创建筹码需要增加右边的间距
7554
- return chart;case'KLineTooltip':if(option.Create&&typeof option.Create=='function')chart=option.Create();else chart=new KLineTooltipPaint();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;option.LanguageID=this.LanguageID;chart.SetOption(option);this.ExtendChartPaint.push(chart);return chart;case"深度图":chart=new DepthMapPaint();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;chart.SetOption(option);this.ExtendChartPaint.push(chart);return chart;case"K线Y轴背景图":chart=new KLineYAxisBGPaint();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;chart.SetOption(option);this.ExtendChartPaint.push(chart);return chart;case'背景图':chart=new BackgroundPaint();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;chart.SetOption(option);this.ExtendChartPaint.push(chart);return chart;case"FrameSplitPaint"://框架分割
7564
+ return chart;case"StockChipPhone":chart=new StockChipPhone();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;chart.Left=this.Frame.ChartBorder.Right;//左边间距使用当前框架间距
7565
+ chart.SetOption(option);this.ExtendChartPaint.push(chart);this.Frame.ChartBorder.Right+=chart.Width;//创建筹码需要增加右边的间距
7566
+ this.GlobalOption.RightHorizontal.Show=false;return chart;case'KLineTooltip':if(option.Create&&typeof option.Create=='function')chart=option.Create();else chart=new KLineTooltipPaint();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;option.LanguageID=this.LanguageID;chart.SetOption(option);this.ExtendChartPaint.push(chart);return chart;case"深度图":chart=new DepthMapPaint();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;chart.SetOption(option);this.ExtendChartPaint.push(chart);return chart;case"K线Y轴背景图":chart=new KLineYAxisBGPaint();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;chart.SetOption(option);this.ExtendChartPaint.push(chart);return chart;case'背景图':chart=new BackgroundPaint();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;chart.SetOption(option);this.ExtendChartPaint.push(chart);return chart;case"FrameSplitPaint"://框架分割
7555
7567
  chart=new FrameSplitPaint();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;chart.SetOption(option);this.ExtendChartPaint.push(chart);return chart;default:chart=g_ExtendChartPaintFactory.Create(name);if(!chart)return null;chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;chart.SetOption(option);this.ExtendChartPaint.push(chart);return chart;}};this.OnTouchFinished=function(){if(this.DragMode==JSCHART_DRAG_ID.CLICK_TOUCH_MODE_ID){if(this.TouchStatus.CorssCursorShow==true&&this.TouchDrawCount>0)return;this.TouchStatus.CorssCursorShow=false;this.DrawDynamicInfo();return;}if(this.EnableClickModel===true){if(this.ClickModel.IsShowCorssCursor==true&&this.TouchDrawCount>0)return;this.ClickModel.IsShowCorssCursor=false;this.DrawDynamicInfo();return;}if(this.CorssCursorTouchEnd===true)//手势离开十字光标消失
7556
7568
  {if(this.TouchDrawCount>0)this.DrawDynamicInfo();return;}for(var i in this.ExtendChartPaint){var item=this.ExtendChartPaint[i];if(item.ClassName==='KLineTooltipPaint'){this.DrawDynamicInfo();}}};//锁|解锁指标 { Index:指标名字,IsLocked:是否要锁上,Callback:回调 }
7557
7569
  this.LockIndex=function(lockData){if(!lockData)return;if(!lockData.IndexName)return;for(var _i12 in this.WindowIndex){var _item4=this.WindowIndex[_i12];if(!_item4)conintue;if(_item4.Name==lockData.IndexName){_item4.SetLock(lockData);this.Update();break;}}};this.TryClickLock=function(x,y){for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i];if(!item.Frame.IsLocked)continue;if(!item.Frame.LockPaint)continue;var tooltip=new TooltipData();if(!item.Frame.LockPaint.GetTooltipData(x,y,tooltip))continue;tooltip.HQChart=this;if(tooltip.Data.Callback)tooltip.Data.Callback(tooltip);return true;}return false;};this.TryClickIndexTitle=function(x,y){for(var i in this.TitlePaint){var item=this.TitlePaint[i];if(!item.IsClickTitle)continue;if(!item.IsClickTitle(x,y))continue;var data={Point:{X:x,Y:y},Title:item.Title,FrameID:item.Frame.Identify};JSConsole.Chart.Log('[KLineChartContainer::TryClickIndexTitle] click title ',data);var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_INDEXTITLE);if(event&&event.Callback)event.Callback(event,data,this);return true;}return false;};this.SetSizeChange=function(bChanged){this.Frame.SetSizeChage(bChanged);for(var i in this.ExtendChartPaint){var item=this.ExtendChartPaint[i];item.SizeChange=bChanged;}};this.SetSizeChage=this.SetSizeChange;//单词拼错了, 还没替换完
@@ -12980,6 +12992,7 @@ if(!IFrameSplitOperator.IsNumber(item[21]))//涨幅%
12980
12992
  {if(IFrameSplitOperator.IsNumber(stock.High)&&IFrameSplitOperator.IsNumber(stock.Low)&&IFrameSplitOperator.IsNumber(stock.YClose)&&stock.YClose!=0)stock.Amplitude=(stock.High-stock.Low)/stock.YClose*100;}if(item[30])stock.ExtendData=item[30];//30=全局扩展数据
12981
12993
  if(item[32])stock.CloseLine=item[32];//32=收盘价线
12982
12994
  if(item[33])stock.KLine=item[33];//33=K线
12995
+ if(item[34])stock.ExePrice=item[34];//34=行权价设置 { BGColor:背景色, Text:, TextColor }
12983
12996
  //10个数值型 101-199
12984
12997
  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];//10个字符型 201-299
12985
12998
  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];};this.AutoUpdate=function(waitTime)//waitTime 更新时间
@@ -13069,11 +13082,12 @@ VOL_OUT_ID:26,//外盘
13069
13082
  NAME_EX_ID:27,//扩展名字
13070
13083
  CLOSE_LINE_ID:28,//收盘价线
13071
13084
  KLINE_ID:29,//K线
13085
+ EXE_PRICE_EX_ID:30,//行权价格 扩张设置
13072
13086
  //预留数值类型 10个 201-299
13073
13087
  RESERVE_NUMBER1_ID:201,//ReserveNumber1:
13074
13088
  RESERVE_NUMBER2_ID:202,RESERVE_NUMBER3_ID:203,RESERVE_NUMBER4_ID:204,RESERVE_NUMBER5_ID:205,RESERVE_NUMBER6_ID:206,RESERVE_NUMBER7_ID:207,RESERVE_NUMBER8_ID:208,RESERVE_NUMBER9_ID:209,RESERVE_NUMBER10_ID:210,//预留字符串类型 10个 301-399
13075
13089
  RESERVE_STRING1_ID:301,//ReserveString1:
13076
- RESERVE_STRING2_ID:302,RESERVE_STRING3_ID:303,RESERVE_STRING4_ID:304,RESERVE_STRING5_ID:305,RESERVE_STRING6_ID:306,RESERVE_STRING7_ID:307,RESERVE_STRING8_ID:308,RESERVE_STRING9_ID:309,RESERVE_STRING10_ID:310};var MAP_TREPORT_COLUMN_FIELD=new _map2.default([[TREPORT_COLUMN_ID.SYMBOL_ID,"Symbol"],[TREPORT_COLUMN_ID.NAME_ID,"Name"],[TREPORT_COLUMN_ID.PRICE_ID,"Price"],[TREPORT_COLUMN_ID.INCREASE_ID,"Increase"],[TREPORT_COLUMN_ID.UPDOWN_ID,"UpDown"],[TREPORT_COLUMN_ID.VOL_ID,"Vol"],[TREPORT_COLUMN_ID.BUY_PRICE_ID,"BuyPrice"],[TREPORT_COLUMN_ID.SELL_PRICE_ID,"SellPrice"],[TREPORT_COLUMN_ID.AMOUNT_ID,"Amount"],[TREPORT_COLUMN_ID.BUY_VOL_ID,"BuyVol"],[TREPORT_COLUMN_ID.SELL_VOL_ID,"SellVol"],[TREPORT_COLUMN_ID.YCLOSE_ID,"YClose"],[TREPORT_COLUMN_ID.OPEN_ID,"Open"],[TREPORT_COLUMN_ID.HIGH_ID,"High"],[TREPORT_COLUMN_ID.LOW_ID,"Low"],[TREPORT_COLUMN_ID.AVERAGE_PRICE_ID,"AvPrice"],[TREPORT_COLUMN_ID.POSITION_ID,"Position"],[TREPORT_COLUMN_ID.AMPLITUDE_ID,"Amplitude"],[TREPORT_COLUMN_ID.RESERVE_NUMBER1_ID,"ReserveNumber1"],[TREPORT_COLUMN_ID.RESERVE_NUMBER2_ID,"ReserveNumber2"],[TREPORT_COLUMN_ID.RESERVE_NUMBER3_ID,"ReserveNumber3"],[TREPORT_COLUMN_ID.RESERVE_NUMBER4_ID,"ReserveNumber4"],[TREPORT_COLUMN_ID.RESERVE_NUMBER5_ID,"ReserveNumber5"],[TREPORT_COLUMN_ID.RESERVE_NUMBER6_ID,"ReserveNumber6"],[TREPORT_COLUMN_ID.RESERVE_NUMBER7_ID,"ReserveNumber7"],[TREPORT_COLUMN_ID.RESERVE_NUMBER8_ID,"ReserveNumber8"],[TREPORT_COLUMN_ID.RESERVE_NUMBER9_ID,"ReserveNumber9"],[TREPORT_COLUMN_ID.RESERVE_NUMBER10_ID,"ReserveNumber10"],[TREPORT_COLUMN_ID.RESERVE_STRING1_ID,"ReserveString1"],[TREPORT_COLUMN_ID.RESERVE_STRING2_ID,"ReserveString2"],[TREPORT_COLUMN_ID.RESERVE_STRING3_ID,"ReserveString3"],[TREPORT_COLUMN_ID.RESERVE_STRING4_ID,"ReserveString4"],[TREPORT_COLUMN_ID.RESERVE_STRING5_ID,"ReserveString5"],[TREPORT_COLUMN_ID.RESERVE_STRING6_ID,"ReserveString6"],[TREPORT_COLUMN_ID.RESERVE_STRING7_ID,"ReserveString7"],[TREPORT_COLUMN_ID.RESERVE_STRING8_ID,"ReserveString8"],[TREPORT_COLUMN_ID.RESERVE_STRING9_ID,"ReserveString9"],[TREPORT_COLUMN_ID.RESERVE_STRING10_ID,"ReserveString10"]]);function ChartTReport(){this.Canvas;//画布
13090
+ RESERVE_STRING2_ID:302,RESERVE_STRING3_ID:303,RESERVE_STRING4_ID:304,RESERVE_STRING5_ID:305,RESERVE_STRING6_ID:306,RESERVE_STRING7_ID:307,RESERVE_STRING8_ID:308,RESERVE_STRING9_ID:309,RESERVE_STRING10_ID:310};var MAP_TREPORT_COLUMN_FIELD=new _map2.default([[TREPORT_COLUMN_ID.SYMBOL_ID,"Symbol"],[TREPORT_COLUMN_ID.NAME_ID,"Name"],[TREPORT_COLUMN_ID.PRICE_ID,"Price"],[TREPORT_COLUMN_ID.INCREASE_ID,"Increase"],[TREPORT_COLUMN_ID.UPDOWN_ID,"UpDown"],[TREPORT_COLUMN_ID.VOL_ID,"Vol"],[TREPORT_COLUMN_ID.BUY_PRICE_ID,"BuyPrice"],[TREPORT_COLUMN_ID.SELL_PRICE_ID,"SellPrice"],[TREPORT_COLUMN_ID.AMOUNT_ID,"Amount"],[TREPORT_COLUMN_ID.BUY_VOL_ID,"BuyVol"],[TREPORT_COLUMN_ID.SELL_VOL_ID,"SellVol"],[TREPORT_COLUMN_ID.YCLOSE_ID,"YClose"],[TREPORT_COLUMN_ID.OPEN_ID,"Open"],[TREPORT_COLUMN_ID.HIGH_ID,"High"],[TREPORT_COLUMN_ID.LOW_ID,"Low"],[TREPORT_COLUMN_ID.AVERAGE_PRICE_ID,"AvPrice"],[TREPORT_COLUMN_ID.POSITION_ID,"Position"],[TREPORT_COLUMN_ID.AMPLITUDE_ID,"Amplitude"],[TREPORT_COLUMN_ID.EXE_PRICE_EX_ID,"ExePrice"],[TREPORT_COLUMN_ID.RESERVE_NUMBER1_ID,"ReserveNumber1"],[TREPORT_COLUMN_ID.RESERVE_NUMBER2_ID,"ReserveNumber2"],[TREPORT_COLUMN_ID.RESERVE_NUMBER3_ID,"ReserveNumber3"],[TREPORT_COLUMN_ID.RESERVE_NUMBER4_ID,"ReserveNumber4"],[TREPORT_COLUMN_ID.RESERVE_NUMBER5_ID,"ReserveNumber5"],[TREPORT_COLUMN_ID.RESERVE_NUMBER6_ID,"ReserveNumber6"],[TREPORT_COLUMN_ID.RESERVE_NUMBER7_ID,"ReserveNumber7"],[TREPORT_COLUMN_ID.RESERVE_NUMBER8_ID,"ReserveNumber8"],[TREPORT_COLUMN_ID.RESERVE_NUMBER9_ID,"ReserveNumber9"],[TREPORT_COLUMN_ID.RESERVE_NUMBER10_ID,"ReserveNumber10"],[TREPORT_COLUMN_ID.RESERVE_STRING1_ID,"ReserveString1"],[TREPORT_COLUMN_ID.RESERVE_STRING2_ID,"ReserveString2"],[TREPORT_COLUMN_ID.RESERVE_STRING3_ID,"ReserveString3"],[TREPORT_COLUMN_ID.RESERVE_STRING4_ID,"ReserveString4"],[TREPORT_COLUMN_ID.RESERVE_STRING5_ID,"ReserveString5"],[TREPORT_COLUMN_ID.RESERVE_STRING6_ID,"ReserveString6"],[TREPORT_COLUMN_ID.RESERVE_STRING7_ID,"ReserveString7"],[TREPORT_COLUMN_ID.RESERVE_STRING8_ID,"ReserveString8"],[TREPORT_COLUMN_ID.RESERVE_STRING9_ID,"ReserveString9"],[TREPORT_COLUMN_ID.RESERVE_STRING10_ID,"ReserveString10"]]);function ChartTReport(){this.Canvas;//画布
13077
13091
  this.ChartBorder;//边框信息
13078
13092
  this.ChartFrame;//框架画法
13079
13093
  this.Name;//名称
@@ -13135,9 +13149,10 @@ var reportleft=this.RectClient.Left;var reportRight=this.RectClient.Right;for(va
13135
13149
  var xRight=rtCenterItem.Right;//右边
13136
13150
  var reportleft=this.RectClient.Left;var reportRight=this.RectClient.Right;var data={ExePrice:exePrice,TData:null,Decimal:this.DefaultDecimal};if(this.GetExePriceDataCallback)data.TData=this.GetExePriceDataCallback(exePrice);if(this.GetFlashBGDataCallback&&data.TData){if(data.TData.LeftData)//左侧
13137
13151
  {var item=data.TData.LeftData;data.TData.LeftFlashBG=this.GetFlashBGDataCallback(item.Symbol,Date.now());if(item.Symbol)data.Decimal=JSTReportChart.GetfloatPrecision(item.Symbol);}if(data.TData.RightData)//右侧
13138
- {var item=data.TData.RightData;data.TData.RightFlashBG=this.GetFlashBGDataCallback(item.Symbol,Date.now());if(item.Symbol)data.Decimal=JSTReportChart.GetfloatPrecision(item.Symbol);}}var bSelected=false;if(this.SelectedRow&&this.SelectedRow.ExePrice==exePrice)bSelected=true;var rtItem={Left:xLeft,Right:xRight,Top:top,Height:this.RowHeight};rtItem.Bottom=rtItem.Top+rtItem.Height;rtItem.Width=rtItem.Right-rtItem.Left;this.DrawCenterItem(dataIndex,data,this.CenterColumn,rtItem,0);if(bSelected&&this.SelectedRow.CellType==0)this.RectSelectedRow=rtItem;if(IFrameSplitOperator.IsNumber(this.Data.Price)){var leftBGColor=null,rightBGColor=null;if(exePrice>this.Data.Price){leftBGColor=this.UpBGColor;rightBGColor=this.DownBGColor;}else{leftBGColor=this.DownBGColor;rightBGColor=this.UpBGColor;}if(leftBGColor){var rtBG={Left:reportleft+1,Right:rtCenterItem.Left,Top:top,Height:this.RowHeight};rtBG.Bottom=rtBG.Top+rtBG.Height;rtBG.Width=rtBG.Right-rtBG.Left;this.Canvas.fillStyle=leftBGColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}if(rightBGColor){var rtBG={Left:rtCenterItem.Right,Right:reportRight,Top:top,Height:this.RowHeight};rtBG.Bottom=rtBG.Top+rtBG.Height;rtBG.Width=rtBG.Right-rtBG.Left;this.Canvas.fillStyle=rightBGColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}}for(var i=this.Data.XOffset;i<this.Column.length;++i){var item=this.Column[i];var itemWidth=item.Width+this.ItemExtraWidth;xLeft-=itemWidth;if(xLeft<reportleft)break;var leftData=null,rightData=null;if(data.TData)leftData=data.TData.LeftData;if(data.TData)rightData=data.TData.RightData;rtItem={Left:xLeft,Right:xLeft+itemWidth,Top:top,Height:this.RowHeight,Width:itemWidth};rtItem.Bottom=rtItem.Top+rtItem.Height;this.DrawItem(dataIndex,data,leftData,item,rtItem,1);if(bSelected&&this.SelectedRow.CellType==1){if(!this.RectSelectedRow)this.RectSelectedRow=rtItem;else this.RectSelectedRow.Left=rtItem.Left;}rtItem={Left:xRight,Right:xRight+itemWidth,Top:top,Height:this.RowHeight,Width:itemWidth};rtItem.Bottom=rtItem.Top+rtItem.Height;this.DrawItem(dataIndex,data,rightData,item,rtItem,2);xRight+=itemWidth;if(bSelected&&this.SelectedRow.CellType==2){if(!this.RectSelectedRow)this.RectSelectedRow=rtItem;else this.RectSelectedRow.Right=rtItem.Right;}}};this.DrawCenterItem=function(index,data,column,rtItem,cellType)//cellType 0=中间字段 1=左侧 2=右侧
13152
+ {var item=data.TData.RightData;data.TData.RightFlashBG=this.GetFlashBGDataCallback(item.Symbol,Date.now());if(item.Symbol)data.Decimal=JSTReportChart.GetfloatPrecision(item.Symbol);}}var bSelected=false;if(this.SelectedRow&&this.SelectedRow.ExePrice==exePrice)bSelected=true;var rtItem={Left:xLeft,Right:xRight,Top:top,Height:this.RowHeight};rtItem.Bottom=rtItem.Top+rtItem.Height;rtItem.Width=rtItem.Right-rtItem.Left;this.DrawCenterItem(dataIndex,data,this.CenterColumn,rtItem,0);if(bSelected&&this.SelectedRow.CellType==0)this.RectSelectedRow=rtItem;if(IFrameSplitOperator.IsNumber(this.Data.Price)){var leftBGColor=null,rightBGColor=null;if(exePrice>this.Data.Price){leftBGColor=this.UpBGColor;rightBGColor=this.DownBGColor;}else{leftBGColor=this.DownBGColor;rightBGColor=this.UpBGColor;}if(leftBGColor){var rtBG={Left:reportleft+1,Right:rtCenterItem.Left,Top:top,Height:this.RowHeight};rtBG.Bottom=rtBG.Top+rtBG.Height;rtBG.Width=rtBG.Right-rtBG.Left;this.Canvas.fillStyle=leftBGColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}if(rightBGColor){var rtBG={Left:rtCenterItem.Right,Right:reportRight,Top:top,Height:this.RowHeight};rtBG.Bottom=rtBG.Top+rtBG.Height;rtBG.Width=rtBG.Right-rtBG.Left;this.Canvas.fillStyle=rightBGColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}}for(var i=this.Data.XOffset;i<this.Column.length;++i){var item=this.Column[i];var itemWidth=item.Width+this.ItemExtraWidth;xLeft-=itemWidth;if(xLeft<reportleft)break;var leftData=null,rightData=null;if(data.TData)leftData=data.TData.LeftData;if(data.TData)rightData=data.TData.RightData;rtItem={Left:xLeft,Right:xLeft+itemWidth,Top:top,Height:this.RowHeight,Width:itemWidth};rtItem.Bottom=rtItem.Top+rtItem.Height;this.DrawItem(dataIndex,data,leftData,item,rtItem,1);if(bSelected&&this.SelectedRow.CellType==1){if(!this.RectSelectedRow)this.RectSelectedRow=rtItem;else this.RectSelectedRow.Left=rtItem.Left;}rtItem={Left:xRight,Right:xRight+itemWidth,Top:top,Height:this.RowHeight,Width:itemWidth};rtItem.Bottom=rtItem.Top+rtItem.Height;this.DrawItem(dataIndex,data,rightData,item,rtItem,2);xRight+=itemWidth;if(bSelected&&this.SelectedRow.CellType==2){if(!this.RectSelectedRow)this.RectSelectedRow=rtItem;else this.RectSelectedRow.Right=rtItem.Right;}}};this.FormatCenterItem=function(data,drawInfo){if(!data||!data.TData)return;var leftData=this.GetExePriceExtendData(data.TData.LeftData);var rightData=this.GetExePriceExtendData(data.TData.RightData);if(leftData){if(leftData.BGColor)drawInfo.BGColor=leftData.BGColor;if(leftData.TitleColor)drawInfo.TextColor=leftData.TitleColor;if(leftData.Text&&leftData.TextColor){drawInfo.Left={Text:leftData.Text,TextColor:leftData.TextColor};}else if(leftData.IconFont&&leftData.TextColor){drawInfo.Left={IconFont:leftData.IconFont,TextColor:leftData.TextColor};}}if(rightData){if(rightData.BGColor)drawInfo.BGColor=rightData.BGColor;if(rightData.TitleColor)drawInfo.TextColor=rightData.TitleColor;if(rightData.Text&&rightData.TextColor){drawInfo.Right={Text:rightData.Text,TextColor:rightData.TextColor};}else if(rightData.IconFont&&rightData.TextColor){drawInfo.Right={IconFont:rightData.IconFont,TextColor:rightData.TextColor};}}};//行权价列扩展信息
13153
+ this.GetExePriceExtendData=function(data){if(!data)return null;var fieldName=MAP_TREPORT_COLUMN_FIELD.get(TREPORT_COLUMN_ID.EXE_PRICE_EX_ID);if(!fieldName)return null;var value=data[fieldName];return value;};this.DrawCenterItem=function(index,data,column,rtItem,cellType)//cellType 0=中间字段 1=左侧 2=右侧
13139
13154
  {//tooltip提示
13140
- if(column.EnableTooltip===true)this.TooltipRect.push({Rect:rtItem,Data:data,Index:index,Column:column,CellType:cellType,Type:1});var rtText={Left:rtItem.Left+this.ItemMergin.Left,Right:rtItem.Right-this.ItemMergin.Right,Top:rtItem.Top+this.ItemMergin.Top,Bottom:rtItem.Bottom-this.ItemMergin.Bottom};rtText.Width=rtText.Right-rtText.Left;rtText.Height=rtText.Bottom-rtText.Top;var drawInfo={Text:null,TextColor:this.CenterItemConfig.TextColor,BGColor:this.CenterItemConfig.BGColor,TextAlign:column.TextAlign,Rect:rtItem,RectText:rtText};drawInfo.Text=''+data.ExePrice.toFixed(data.Decimal);this.DrawCell(drawInfo);};this.DrawItem=function(index,exePriceData,data,column,rtItem,cellType){if(column.EnableTooltip===true)this.TooltipRect.push({Rect:rtItem,Data:data,Index:index,Column:column,CellType:cellType,Type:1});var rtText={Left:rtItem.Left+this.ItemMergin.Left,Right:rtItem.Right-this.ItemMergin.Right,Top:rtItem.Top+this.ItemMergin.Top,Bottom:rtItem.Bottom-this.ItemMergin.Bottom};rtText.Width=rtText.Right-rtText.Left;rtText.Height=rtText.Bottom-rtText.Top;var drawInfo={Text:null,TextColor:column.TextColor,TextAlign:column.TextAlign,Rect:rtItem,RectText:rtText};if(data){switch(column.Type){case TREPORT_COLUMN_ID.SYMBOL_ID:case TREPORT_COLUMN_ID.NAME_ID:var fieldName=MAP_TREPORT_COLUMN_FIELD.get(column.Type);if(fieldName)drawInfo.Text=data[fieldName];break;case TREPORT_COLUMN_ID.PRICE_ID://最新价格
13155
+ if(column.EnableTooltip===true)this.TooltipRect.push({Rect:rtItem,Data:data,Index:index,Column:column,CellType:cellType,Type:1});var rtText={Left:rtItem.Left+this.ItemMergin.Left,Right:rtItem.Right-this.ItemMergin.Right,Top:rtItem.Top+this.ItemMergin.Top,Bottom:rtItem.Bottom-this.ItemMergin.Bottom};rtText.Width=rtText.Right-rtText.Left;rtText.Height=rtText.Bottom-rtText.Top;var drawInfo={Text:null,TextColor:this.CenterItemConfig.TextColor,BGColor:this.CenterItemConfig.BGColor,TextAlign:column.TextAlign,Rect:rtItem,RectText:rtText};drawInfo.Text=''+data.ExePrice.toFixed(data.Decimal);this.FormatCenterItem(data,drawInfo);this.DrawCell(drawInfo);};this.DrawItem=function(index,exePriceData,data,column,rtItem,cellType){if(column.EnableTooltip===true)this.TooltipRect.push({Rect:rtItem,Data:data,Index:index,Column:column,CellType:cellType,Type:1});var rtText={Left:rtItem.Left+this.ItemMergin.Left,Right:rtItem.Right-this.ItemMergin.Right,Top:rtItem.Top+this.ItemMergin.Top,Bottom:rtItem.Bottom-this.ItemMergin.Bottom};rtText.Width=rtText.Right-rtText.Left;rtText.Height=rtText.Bottom-rtText.Top;var drawInfo={Text:null,TextColor:column.TextColor,TextAlign:column.TextAlign,Rect:rtItem,RectText:rtText};if(data){switch(column.Type){case TREPORT_COLUMN_ID.SYMBOL_ID:case TREPORT_COLUMN_ID.NAME_ID:var fieldName=MAP_TREPORT_COLUMN_FIELD.get(column.Type);if(fieldName)drawInfo.Text=data[fieldName];break;case TREPORT_COLUMN_ID.PRICE_ID://最新价格
13141
13156
  case TREPORT_COLUMN_ID.BUY_PRICE_ID://买价
13142
13157
  case TREPORT_COLUMN_ID.SELL_PRICE_ID://卖价
13143
13158
  var fieldName=MAP_TREPORT_COLUMN_FIELD.get(column.Type);if(fieldName)this.GetPriceDrawInfo(data[fieldName],data,exePriceData,drawInfo);break;case TREPORT_COLUMN_ID.SELL_VOL_ID://卖量
@@ -13147,11 +13162,12 @@ case TREPORT_COLUMN_ID.VOL_ID://成交量
13147
13162
  case TREPORT_COLUMN_ID.AMOUNT_ID://成交金额
13148
13163
  var fieldName=MAP_TREPORT_COLUMN_FIELD.get(column.Type);if(fieldName)drawInfo.Text=this.FormatVolString(data[fieldName]);break;case TREPORT_COLUMN_ID.INCREASE_ID:case TREPORT_COLUMN_ID.UPDOWN_ID:case TREPORT_COLUMN_ID.AMPLITUDE_ID:var fieldName=MAP_TREPORT_COLUMN_FIELD.get(column.Type);if(fieldName){var value=data[fieldName];if(IFrameSplitOperator.IsNumber(value)){drawInfo.Text=value.toFixed(2);drawInfo.TextColor=this.GetUpDownColor(value,0);}else{this.GetNullDrawInfo(drawInfo);}}break;case TREPORT_COLUMN_ID.RESERVE_NUMBER1_ID:case TREPORT_COLUMN_ID.RESERVE_NUMBER2_ID:case TREPORT_COLUMN_ID.RESERVE_NUMBER3_ID:case TREPORT_COLUMN_ID.RESERVE_NUMBER4_ID:case TREPORT_COLUMN_ID.RESERVE_NUMBER5_ID:case TREPORT_COLUMN_ID.RESERVE_NUMBER6_ID:case TREPORT_COLUMN_ID.RESERVE_NUMBER7_ID:case TREPORT_COLUMN_ID.RESERVE_NUMBER8_ID:case TREPORT_COLUMN_ID.RESERVE_NUMBER9_ID:case TREPORT_COLUMN_ID.RESERVE_NUMBER10_ID:this.FormatReserveNumber(column,data,drawInfo);break;case TREPORT_COLUMN_ID.RESERVE_STRING1_ID:case TREPORT_COLUMN_ID.RESERVE_STRING2_ID:case TREPORT_COLUMN_ID.RESERVE_STRING3_ID:case TREPORT_COLUMN_ID.RESERVE_STRING4_ID:case TREPORT_COLUMN_ID.RESERVE_STRING5_ID:case TREPORT_COLUMN_ID.RESERVE_STRING6_ID:case TREPORT_COLUMN_ID.RESERVE_STRING7_ID:case TREPORT_COLUMN_ID.RESERVE_STRING8_ID:case TREPORT_COLUMN_ID.RESERVE_STRING9_ID:case TREPORT_COLUMN_ID.RESERVE_STRING10_ID:this.FormatReserveString(column,data,drawInfo);break;default:drawInfo.Text='-----';}this.GetMarkBorderData(drawInfo,exePriceData.ExePrice,column.Type,cellType);this.GetFlashBGData(drawInfo,exePriceData,column.Type,cellType);}this.DrawCell(drawInfo,exePriceData,column.Type,cellType);if(column.EnableChartTooltip){var tooltipData={Rect:rtItem,Data:data,Index:index,Column:column,CellType:cellType,Type:20};this.TooltipRect.push(tooltipData);}};this.FormatReserveNumber=function(column,data,drawInfo){if(column.DefaultText)drawInfo.Text=column.DefaultText;var fieldName=MAP_TREPORT_COLUMN_FIELD.get(column.Type);if(!data||!fieldName)return;var value=data[fieldName];if(!IFrameSplitOperator.IsNumber(value))return;if(IFrameSplitOperator.IsNumber(column.ColorType)){if(column.ColorType==1){drawInfo.TextColor=this.GetUpDownColor(value,0);}else if(column.ColorType==2){drawInfo.TextColor=this.GetUpDownColorV2(value,0);}}//TODO: 不同类型的 格式化输出
13149
13164
  drawInfo.Text=value.toFixed(column.FloatPrecision);};this.FormatReserveString=function(column,data,drawInfo){if(column.DefaultText)drawInfo.Text=column.DefaultText;var fieldName=MAP_TREPORT_COLUMN_FIELD.get(column.Type);if(!data||!fieldName)return;var item=data[fieldName];if(IFrameSplitOperator.IsObject(item)){if(item.Text)drawInfo.Text=item.Text;if(item.TextColor)drawInfo.TextColor=item.TextColor;if(item.BGColor)drawInfo.BGColor=item.BGColor;}else if(IFrameSplitOperator.IsString(item)){drawInfo.Text=item;}};this.GetFlashBGData=function(drawInfo,exePriceData,columnType,cellType){if(!exePriceData.TData)return;var data=null;if(cellType==1)data=exePriceData.TData.LeftFlashBG;else if(cellType==2)data=exePriceData.TData.RightFlashBG;if(!data||!data.Data)return;if(data.Data.has(columnType)){var item=data.Data.get(columnType);drawInfo.FlashBGColor=item.Color;--item.Count;if(this.GlobalOption)++this.GlobalOption.FlashBGCount;}};this.GetMarkBorderData=function(drawInfo,exePrice,columnType,cellType){if(!this.BorderData||!this.BorderData.MapData)return;if(!this.BorderData.MapData.has(columnType))return;var borderData=this.BorderData.MapData.get(columnType);if(!IFrameSplitOperator.IsNonEmptyArray(borderData.Data))return;if(cellType==1){var leftBorder=borderData.Data[1];if(!leftBorder)return;if(leftBorder.ExePrice==exePrice){drawInfo.BorderColor=this.MarkBorderConfig.MaxPositionColor;}}else if(cellType==2){var rightBorder=borderData.Data[2];if(!rightBorder)return;if(rightBorder.ExePrice==exePrice){drawInfo.BorderColor=this.MarkBorderConfig.MaxPositionColor;}}};this.GetNullDrawInfo=function(drawInfo){drawInfo.Text="--";drawInfo.TextColor=this.UnchangeColor;};this.GetPriceDrawInfo=function(price,stock,data,drawInfo){if(!IFrameSplitOperator.IsNumber(price)){this.GetNullDrawInfo(drawInfo);return;}drawInfo.Text=price.toFixed(data.Decimal);if(!IFrameSplitOperator.IsNumber(stock.YClose))drawInfo.TextColor=this.UnchangeColor;else drawInfo.TextColor=this.GetUpDownColor(price,stock.YClose);};//单独处理成交量显示
13150
- this.FormatVolString=function(value,languageID){if(!IFrameSplitOperator.IsNumber(value))return null;return IFrameSplitOperator.FormatVolString(value,languageID);};this.GetUpDownColor=function(price,price2){if(price>price2)return this.UpColor;else if(price<price2)return this.DownColor;else return this.UnchangeColor;};this.GetUpDownColorV2=function(price,price2){if(price>=price2)return this.UpColor;else return this.DownColor;};this.DrawCell=function(drawInfo){var rtText=drawInfo.RectText;var yCenter=rtText.Top+rtText.Height/2;if(drawInfo.BGColor)//背景
13165
+ this.FormatVolString=function(value,languageID){if(!IFrameSplitOperator.IsNumber(value))return null;return IFrameSplitOperator.FormatVolString(value,languageID);};this.GetUpDownColor=function(price,price2){if(price>price2)return this.UpColor;else if(price<price2)return this.DownColor;else return this.UnchangeColor;};this.GetUpDownColorV2=function(price,price2){if(price>=price2)return this.UpColor;else return this.DownColor;};this.DrawCell=function(drawInfo){var rtText=drawInfo.RectText;var yCenter=rtText.Top+rtText.Height/2;var fontBackup=null;//字体备份
13166
+ if(drawInfo.BGColor)//背景
13151
13167
  {var rtItem=drawInfo.Rect;this.Canvas.fillStyle=drawInfo.BGColor;this.Canvas.fillRect(rtItem.Left,rtItem.Top,rtItem.Width,rtItem.Height);}if(drawInfo.FlashBGColor)//闪动背景
13152
13168
  {var rtItem=drawInfo.Rect;this.Canvas.fillStyle=drawInfo.FlashBGColor;this.Canvas.fillRect(rtItem.Left,rtItem.Top,rtItem.Width,rtItem.Height);}if(drawInfo.BorderColor)//边框
13153
13169
  {var rtItem=drawInfo.Rect;this.Canvas.strokeStyle=drawInfo.BorderColor;this.Canvas.strokeRect(ToFixedPoint(rtItem.Left),ToFixedPoint(rtItem.Top+1),ToFixedRect(rtItem.Width),ToFixedRect(rtItem.Height-3));}if(drawInfo.Text)//文字
13154
- {if(drawInfo.TextColor)this.Canvas.fillStyle=drawInfo.TextColor;this.DrawText(drawInfo.Text,drawInfo.TextAlign,rtText.Left,yCenter,rtText.Width);}};this.GetTooltipData=function(x,y){if(!IFrameSplitOperator.IsNonEmptyArray(this.TooltipRect))return null;for(var i=0;i<this.TooltipRect.length;++i){var item=this.TooltipRect[i];var rt=item.Rect;if(!rt)continue;if(x>=rt.Left&&x<=rt.Right&&y>=rt.Top&&y<=rt.Bottom){return{Rect:item.Rect,Data:item.Data,Column:item.Column,Index:item.Index,Type:item.Type,CellType:item.CellType};}}return null;};this.OnMouseDown=function(x,y,e)//Type: 2=行 3=表头
13170
+ {if(drawInfo.TextColor)this.Canvas.fillStyle=drawInfo.TextColor;this.DrawText(drawInfo.Text,drawInfo.TextAlign,rtText.Left,yCenter,rtText.Width);}if(drawInfo.Left){var item=drawInfo.Left;this.Canvas.textAlign="left";this.Canvas.textBaseline="middle";this.Canvas.fillStyle=item.TextColor;if(item.IconFont){if(!fontBackup)fontBackup=this.Canvas.font;this.Canvas.font=item.IconFont.Font;this.Canvas.fillText(item.IconFont.Symbol,rtText.Left,yCenter);}else if(item.Text){this.Canvas.fillText(item.Text,rtText.Left,yCenter);}}if(drawInfo.Right){var item=drawInfo.Right;this.Canvas.textAlign="right";this.Canvas.textBaseline="middle";this.Canvas.fillStyle=item.TextColor;if(item.IconFont){if(!fontBackup)fontBackup=this.Canvas.font;this.Canvas.font=item.IconFont.Font;this.Canvas.fillText(item.IconFont.Symbol,rtText.Right,yCenter);}else if(item.Text){this.Canvas.fillText(item.Text,rtText.Right,yCenter);}}if(fontBackup)this.Canvas.font=fontBackup;};this.GetTooltipData=function(x,y){if(!IFrameSplitOperator.IsNonEmptyArray(this.TooltipRect))return null;for(var i=0;i<this.TooltipRect.length;++i){var item=this.TooltipRect[i];var rt=item.Rect;if(!rt)continue;if(x>=rt.Left&&x<=rt.Right&&y>=rt.Top&&y<=rt.Bottom){return{Rect:item.Rect,Data:item.Data,Column:item.Column,Index:item.Index,Type:item.Type,CellType:item.CellType};}}return null;};this.OnMouseDown=function(x,y,e)//Type: 2=行 3=表头
13155
13171
  {if(!this.Data)return null;var pixelTatio=GetDevicePixelRatio();var insidePoint={X:x/pixelTatio,Y:y/pixelTatio};if(this.UIElement)var uiElement={Left:this.UIElement.getBoundingClientRect().left,Top:this.UIElement.getBoundingClientRect().top};else var uiElement={Left:null,Top:null};var row=this.PtInBody(x,y);if(row){var bRedraw=false;if(!this.SelectedRow){this.SelectedRow={ExePrice:row.ExePrice,CellType:row.CellType};bRedraw=true;}else if(this.SelectedRow.ExePrice!=row.ExePrice||this.SelectedRow.CellType!=row.CellType){this.SelectedRow.ExePrice=row.ExePrice;this.SelectedRow.CellType=row.CellType;bRedraw=true;}var eventID=JSCHART_EVENT_ID.ON_CLICK_TREPORT_ROW;if(e.button==2)eventID=JSCHART_EVENT_ID.ON_RCLICK_TREPORT_ROW;this.SendClickEvent(eventID,{Data:row,X:x,Y:y,e:e,Inside:insidePoint,UIElement:uiElement});return{Type:2,Redraw:bRedraw,Row:row};//行
13156
13172
  }var header=this.PtInHeader(x,y);if(header){var eventID=JSCHART_EVENT_ID.ON_CLICK_TREPORT_HEADER;if(e.button==2){eventID=JSCHART_EVENT_ID.ON_RCLICK_TREPORT_HEADER;}else if(e.button==0){eventID=JSCHART_EVENT_ID.ON_CLICK_TREPORT_HEADER;}this.SendClickEvent(eventID,{Data:header,X:x,Y:y,e:e,Inside:insidePoint,UIElement:uiElement});return{Type:3,Redraw:bRedraw,Header:header};//表头
13157
13173
  }return null;};this.PtInBody=function(x,y){if(!this.Data)return null;if(!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return null;var top=this.RectClient.Top+this.HeaderHeight;var left=this.RectClient.Left;var right=this.RectClient.Right;var textTop=top+this.FixedRowHeight*this.FixedRowCount;for(var i=this.Data.YOffset,j=0;i<this.Data.Data.length&&j<this.RowCount;++i,++j){var exePrice=this.Data.Data[i];var rtRow={Left:left,Top:textTop,Right:right,Bottom:textTop+this.RowHeight};rtRow.Height=rtRow.Bottom-rtRow.Top;rtRow.Width=rtRow.Right-rtRow.Left;if(x>=rtRow.Left&&x<=rtRow.Right&&y>=rtRow.Top&&y<=rtRow.Bottom){var data={RectRow:rtRow,DataIndex:i,Index:j,ExePrice:exePrice};return this.PtInItem(x,y,data);}textTop+=this.RowHeight;}return null;};this.PtInItem=function(x,y,info,exePrice){var rtCenterItem=this.GetCenterItemRect();var rtRow=info.RectRow;var rtCenter={Left:rtCenterItem.Left,Right:rtCenterItem.Right,Top:rtRow.Top,Height:rtRow.Height,Bottom:rtRow.Bottom};if(x>=rtCenter.Left&&x<=rtCenter.Right&&y>=rtCenter.Top&&y<=rtCenter.Bottom){var data={Rect:rtCenter,DataIndex:info.DataIndex,Index:info.Index,ExePrice:info.ExePrice,CellType:0,Column:this.CenterColumn};data.Item=this.GetExePriceDataCallback(info.ExePrice);return data;}var xLeft=rtCenterItem.Left;//左边
@@ -13870,7 +13886,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
13870
13886
  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);};}/********************************************************************************
13871
13887
  * 版本信息输出
13872
13888
  *
13873
- */var HQCHART_VERSION="1.1.14164";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();//把给外界调用的方法暴露出来
13889
+ */var HQCHART_VERSION="1.1.14171";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();//把给外界调用的方法暴露出来
13874
13890
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
13875
13891
  // BaseIndex:BaseIndex,
13876
13892
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.14165",
3
+ "version": "1.1.14172",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -928,6 +928,7 @@ function JSTReportChartContainer(uielement)
928
928
 
929
929
  if (item[32]) stock.CloseLine=item[32]; //32=收盘价线
930
930
  if (item[33]) stock.KLine=item[33]; //33=K线
931
+ if (item[34]) stock.ExePrice=item[34]; //34=行权价设置 { BGColor:背景色, Text:, TextColor }
931
932
 
932
933
  //10个数值型 101-199
933
934
  if (IFrameSplitOperator.IsNumber(item[101])) stock.ReserveNumber1=item[101];
@@ -1752,6 +1753,8 @@ var TREPORT_COLUMN_ID=
1752
1753
  NAME_EX_ID:27, //扩展名字
1753
1754
  CLOSE_LINE_ID:28, //收盘价线
1754
1755
  KLINE_ID:29, //K线
1756
+
1757
+ EXE_PRICE_EX_ID:30, //行权价格 扩张设置
1755
1758
 
1756
1759
  //预留数值类型 10个 201-299
1757
1760
  RESERVE_NUMBER1_ID:201, //ReserveNumber1:
@@ -1798,6 +1801,7 @@ var MAP_TREPORT_COLUMN_FIELD=new Map(
1798
1801
  [TREPORT_COLUMN_ID.AVERAGE_PRICE_ID,"AvPrice"],
1799
1802
  [TREPORT_COLUMN_ID.POSITION_ID,"Position"],
1800
1803
  [TREPORT_COLUMN_ID.AMPLITUDE_ID,"Amplitude"],
1804
+ [TREPORT_COLUMN_ID.EXE_PRICE_EX_ID, "ExePrice"],
1801
1805
 
1802
1806
  [TREPORT_COLUMN_ID.RESERVE_NUMBER1_ID,"ReserveNumber1"],
1803
1807
  [TREPORT_COLUMN_ID.RESERVE_NUMBER2_ID,"ReserveNumber2"],
@@ -2480,6 +2484,55 @@ function ChartTReport()
2480
2484
  }
2481
2485
  }
2482
2486
 
2487
+ this.FormatCenterItem=function(data,drawInfo)
2488
+ {
2489
+ if (!data || !data.TData) return;
2490
+ var leftData=this.GetExePriceExtendData(data.TData.LeftData);
2491
+ var rightData=this.GetExePriceExtendData(data.TData.RightData);
2492
+
2493
+ if (leftData)
2494
+ {
2495
+ if (leftData.BGColor) drawInfo.BGColor=leftData.BGColor;
2496
+ if (leftData.TitleColor) drawInfo.TextColor=leftData.TitleColor;
2497
+ if (leftData.Text && leftData.TextColor)
2498
+ {
2499
+ drawInfo.Left={ Text:leftData.Text, TextColor:leftData.TextColor};
2500
+ }
2501
+ else if (leftData.IconFont && leftData.TextColor)
2502
+ {
2503
+ drawInfo.Left={ IconFont:leftData.IconFont, TextColor:leftData.TextColor};
2504
+ }
2505
+
2506
+ }
2507
+
2508
+ if (rightData)
2509
+ {
2510
+ if (rightData.BGColor) drawInfo.BGColor=rightData.BGColor;
2511
+ if (rightData.TitleColor) drawInfo.TextColor=rightData.TitleColor;
2512
+
2513
+ if (rightData.Text && rightData.TextColor)
2514
+ {
2515
+ drawInfo.Right={ Text:rightData.Text, TextColor:rightData.TextColor};
2516
+ }
2517
+ else if (rightData.IconFont && rightData.TextColor)
2518
+ {
2519
+ drawInfo.Right={ IconFont:rightData.IconFont, TextColor:rightData.TextColor};
2520
+ }
2521
+ }
2522
+ }
2523
+
2524
+ //行权价列扩展信息
2525
+ this.GetExePriceExtendData=function(data)
2526
+ {
2527
+ if (!data) return null;
2528
+
2529
+ var fieldName=MAP_TREPORT_COLUMN_FIELD.get(TREPORT_COLUMN_ID.EXE_PRICE_EX_ID);
2530
+ if (!fieldName) return null;
2531
+
2532
+ var value=data[fieldName];
2533
+ return value;
2534
+ }
2535
+
2483
2536
  this.DrawCenterItem=function(index, data, column, rtItem, cellType) //cellType 0=中间字段 1=左侧 2=右侧
2484
2537
  {
2485
2538
  //tooltip提示
@@ -2492,6 +2545,10 @@ function ChartTReport()
2492
2545
  var drawInfo={ Text:null, TextColor:this.CenterItemConfig.TextColor, BGColor:this.CenterItemConfig.BGColor, TextAlign:column.TextAlign, Rect:rtItem, RectText:rtText };
2493
2546
  drawInfo.Text=`${data.ExePrice.toFixed(data.Decimal)}`;
2494
2547
 
2548
+ this.FormatCenterItem(data,drawInfo);
2549
+
2550
+
2551
+
2495
2552
  this.DrawCell(drawInfo);
2496
2553
  }
2497
2554
 
@@ -2733,7 +2790,7 @@ function ChartTReport()
2733
2790
  {
2734
2791
  var rtText=drawInfo.RectText;
2735
2792
  var yCenter=rtText.Top+(rtText.Height/2);
2736
-
2793
+ var fontBackup=null; //字体备份
2737
2794
  if (drawInfo.BGColor) //背景
2738
2795
  {
2739
2796
  var rtItem=drawInfo.Rect;
@@ -2760,6 +2817,44 @@ function ChartTReport()
2760
2817
  if(drawInfo.TextColor) this.Canvas.fillStyle=drawInfo.TextColor;
2761
2818
  this.DrawText(drawInfo.Text, drawInfo.TextAlign, rtText.Left, yCenter, rtText.Width);
2762
2819
  }
2820
+
2821
+ if (drawInfo.Left)
2822
+ {
2823
+ var item=drawInfo.Left;
2824
+ this.Canvas.textAlign="left";
2825
+ this.Canvas.textBaseline="middle";
2826
+ this.Canvas.fillStyle=item.TextColor;
2827
+ if (item.IconFont)
2828
+ {
2829
+ if (!fontBackup) fontBackup=this.Canvas.font;
2830
+ this.Canvas.font=item.IconFont.Font;
2831
+ this.Canvas.fillText(item.IconFont.Symbol,rtText.Left,yCenter);
2832
+ }
2833
+ else if (item.Text)
2834
+ {
2835
+ this.Canvas.fillText(item.Text,rtText.Left,yCenter);
2836
+ }
2837
+ }
2838
+
2839
+ if (drawInfo.Right)
2840
+ {
2841
+ var item=drawInfo.Right;
2842
+ this.Canvas.textAlign="right";
2843
+ this.Canvas.textBaseline="middle";
2844
+ this.Canvas.fillStyle=item.TextColor;
2845
+ if (item.IconFont)
2846
+ {
2847
+ if (!fontBackup) fontBackup=this.Canvas.font;
2848
+ this.Canvas.font=item.IconFont.Font;
2849
+ this.Canvas.fillText(item.IconFont.Symbol,rtText.Right,yCenter);
2850
+ }
2851
+ else if (item.Text)
2852
+ {
2853
+ this.Canvas.fillText(item.Text,rtText.Right,yCenter);
2854
+ }
2855
+ }
2856
+
2857
+ if (fontBackup) this.Canvas.font=fontBackup;
2763
2858
  }
2764
2859
 
2765
2860
  this.GetTooltipData=function(x,y)