hqchart 1.1.13728 → 1.1.13734
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.
package/lib/umychart.vue.js
CHANGED
|
@@ -1502,7 +1502,8 @@ ON_CREATE_RIGHT_MENU:152,//创建右键菜单
|
|
|
1502
1502
|
ON_FORMAT_CALL_AUCTION_INDEX_TITLE:153,//集合竞价指标窗口标题内容
|
|
1503
1503
|
ON_FORMAT_KLINE_HIGH_LOW_TITLE:154,//K线最高最低价格式化内容
|
|
1504
1504
|
ON_CUSTOM_CORSSCURSOR_POSITION:155,//自定义十字光标X轴的输出的位置
|
|
1505
|
-
ON_CUSTOM_MINUTE_NIGHT_DAY_X_INDEX:156
|
|
1505
|
+
ON_CUSTOM_MINUTE_NIGHT_DAY_X_INDEX:156,//日盘夜盘的分界线
|
|
1506
|
+
ON_CUSTOM_MINUTE_BG:157//自定义分时图背景颜色
|
|
1506
1507
|
};var JSCHART_OPERATOR_ID={OP_SCROLL_LEFT:1,//往左移动
|
|
1507
1508
|
OP_SCROLL_RIGHT:2,//往右移动
|
|
1508
1509
|
OP_ZOOM_OUT:3,//缩小
|
|
@@ -1769,7 +1770,8 @@ var selectedChart={Chart:this.SelectedChart.Selected.Chart,Identify:this.Selecte
|
|
|
1769
1770
|
this.PhoneTouchInfo={Start:{X:touches[0].clientX,Y:touches[0].clientY},End:{X:touches[0].clientX,Y:touches[0].clientY}};if(this.SelectChartDrawPicture)this.SelectChartDrawPicture.IsSelected=false;this.SelectChartDrawPicture=null;var isDrawPictrue=false;if(this.CurrentChartDrawPicture)//画图工具模式
|
|
1770
1771
|
{var drawPicture=this.CurrentChartDrawPicture;if(drawPicture.Status==2)this.SetChartDrawPictureThirdPoint(drag.Click.X,drag.Click.Y,true);else{this.SetChartDrawPictureFirstPoint(drag.Click.X,drag.Click.Y,true);//只有1个点 直接完成
|
|
1771
1772
|
if(this.FinishChartDrawPicturePoint()){if(drawPicture.IsDrawMain)this.Draw();else this.DrawDynamicInfo({Corss:false,Tooltip:false});}}if(e.cancelable)e.preventDefault();return;}else{var pt=this.PointAbsoluteToRelative(touches[0].clientX,touches[0].clientY,true);var drawPictrueData={X:pt.X,Y:pt.Y};var pixelTatio=GetDevicePixelRatio();//鼠标移动坐标是原始坐标 需要乘以放大倍速
|
|
1772
|
-
if(this.GetChartDrawPictureByPoint(drawPictrueData)){
|
|
1773
|
+
if(this.GetChartDrawPictureByPoint(drawPictrueData)){if(drawPictrueData.ChartDrawPicture.EnableMove==true)//是否可以移动
|
|
1774
|
+
{drawPictrueData.ChartDrawPicture.Status=20;drawPictrueData.ChartDrawPicture.ValueToPoint();drawPictrueData.ChartDrawPicture.MovePointIndex=drawPictrueData.PointIndex;drawPictrueData.ChartDrawPicture.IsSelected=true;this.CurrentChartDrawPicture=drawPictrueData.ChartDrawPicture;this.SelectChartDrawPicture=drawPictrueData.ChartDrawPicture;}else{this.CurrentChartDrawPicture=null;this.SelectChartDrawPicture=null;}var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_DRAWPICTURE);//选中画图工具事件
|
|
1773
1775
|
if(event&&event.Callback){var sendData={DrawPicture:drawPictrueData.ChartDrawPicture};event.Callback(event,sendData,this);}var drawType=0;if(drawPictrueData.ChartDrawPicture.IsDrawMain)drawType=1;else if(drawPictureActive.Select.Guid&&drawPictureActive.Select.Chart&&drawPictureActive.Select.Chart.IsDrawMain)drawType=1;if(drawType==1)this.Draw();if(e.cancelable)e.preventDefault();return;}}if(bStartTimer){//长按2秒,十字光标
|
|
1774
1776
|
var self=this;this.DragTimer=setTimeout(function(){self.IsPress=true;if(drag.Click.X==drag.LastMove.X&&drag.Click.Y==drag.LastMove.Y)//手指没有移动,出现十字光标
|
|
1775
1777
|
{var mouseDrag=self.MouseDrag;self.MouseDrag=null;if(self.DragMode==JSCHART_DRAG_ID.CLICK_TOUCH_MODE_ID)self.TouchStatus.CorssCursorShow=true;//十字显示
|
|
@@ -2346,7 +2348,7 @@ this.GetYData=function(y,isLimit){if(this.Logarithmic&&this.GetYLogarithmicFromD
|
|
|
2346
2348
|
this.GetXData=function(x){if(x<=this.ChartBorder.GetLeft())return 0;if(x>=this.ChartBorder.GetRight())return this.XPointCount;return(x-this.ChartBorder.GetLeft())*(this.XPointCount*1.0/this.ChartBorder.GetWidth());};//选中的画图工具X,Y轴坐标信息
|
|
2347
2349
|
this.DrawPictureXCoordinate=function(drawPicture,range,option){if(this.IsHScreen)return;if(!range)return;if(!IFrameSplitOperator.IsNonEmptyArray(range.Points))return;var border=this.GetBorder();var left=border.Left;var right=border.Right;this.Canvas.font=this.DrawPicture.Font;var fontHeight=this.GetFontHeight();this.Canvas.textAlign="left";this.Canvas.textBaseline="bottom";if(range.X){var xRange=range.X;var xLeft=xRange.Min.X;var xRight=xRange.Max.X;if(xLeft<left)xLeft=left;if(xRight>right)xRight=right;this.Canvas.fillStyle=this.DrawPicture.BGColor;this.Canvas.fillRect(xLeft,border.Bottom,xRight-xLeft,fontHeight);}for(var i=0;i<range.Points.length;++i){var item=range.Points[i];if(item.X<left||item.X>right)continue;var index=this.GetXData(item.X,false);var index=Math.round(index);var kItem=this.GetKItem(index);if(kItem){var text=IFrameSplitOperator.FormatDateString(kItem.Date,null);if(ChartData.IsMinutePeriod(option.Period))text+=" "+IFrameSplitOperator.FormatTimeString(kItem.Time,"HH:MM");else if(ChartData.IsMilliSecondPeriod(option.Period))text+=" "+IFrameSplitOperator.FormatTimeString(kItem.Time,"HH:MM:SS.fff");var textWidth=this.Canvas.measureText(text).width+2;var textLeft=item.X-textWidth/2;if(textLeft<left)textLeft=left;this.Canvas.fillStyle=this.DrawPicture.TextBGColor;this.Canvas.fillRect(textLeft,border.Bottom,textWidth,fontHeight);this.Canvas.fillStyle=this.DrawPicture.TextColor;var yCenter=border.Bottom+fontHeight;this.Canvas.fillText(text,textLeft+1,yCenter);}}};this.GetKItem=function(currentIndex){if(!this.Data)return null;if(!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return null;var index=this.Data.DataOffset+currentIndex;return this.Data.Data[index];};this.DrawPictureYCoordinate=function(drawPicture,range,option){if(this.IsHScreen)return;if(!range)return;if(!IFrameSplitOperator.IsNonEmptyArray(range.Points))return;var border=this.GetBorder();var top=border.TopEx;var bottom=border.BottomEx;var right=border.Right;this.Canvas.font=this.DrawPicture.Font;var fontHeight=this.GetFontHeight();this.Canvas.textAlign="left";this.Canvas.textBaseline="bottom";var defaultfloatPrecision=2;if(option&&option.Symbol)defaultfloatPrecision=GetfloatPrecision(option.Symbol);var textWidth=0;for(var i=0;i<range.Points.length;++i){var item=range.Points[i];var Value=this.GetYData(item.Y);var text=Value.toFixed(defaultfloatPrecision);var value=this.Canvas.measureText(text).width;if(textWidth<value)textWidth=value;range.Points[i].Text=text;}textWidth+=this.YTextPadding[1]+2;if(range.Y){var yRange=range.Y;var yTop=yRange.Min.Y;var yBottom=yRange.Max.Y;if(yRange.Min.Y<top)yTop=top;if(yRange.Max.Y>bottom)yBottom=bottom;this.Canvas.fillStyle=this.DrawPicture.BGColor;this.Canvas.fillRect(right,yTop,textWidth+5,yBottom-yTop);}for(var i=0;i<range.Points.length;++i){var item=range.Points[i];if(item.Y<top||item.Y>bottom)continue;this.Canvas.fillStyle=this.DrawPicture.TextBGColor;this.Canvas.fillRect(right,item.Y-fontHeight/2,textWidth,fontHeight);this.Canvas.fillStyle=this.DrawPicture.TextColor;var yText=item.Y+fontHeight/2;this.Canvas.fillText(item.Text,right+this.YTextPadding[1],yText);}};this.DrawPicturePointYCoordinate=function(drawPicture,option){if(this.IsHScreen)return;if(!drawPicture.GetYCoordinatePoint)return;var aryPoint=drawPicture.GetYCoordinatePoint();if(!IFrameSplitOperator.IsNonEmptyArray(aryPoint))return;var border=this.GetBorder();var top=border.TopEx;var bottom=border.BottomEx;var right=border.Right;this.Canvas.font=this.DrawPicture.Font;var fontHeight=this.GetFontHeight();this.Canvas.textAlign="left";this.Canvas.textBaseline="bottom";var defaultfloatPrecision=2;if(option&&option.Symbol)defaultfloatPrecision=GetfloatPrecision(option.Symbol);for(var i=0;i<aryPoint.length;++i){var item=aryPoint[i];if(!item)continue;if(item.Y<top||item.Y>bottom)continue;var text=item.YValue.toFixed(defaultfloatPrecision);var textWidth=this.Canvas.measureText(text).width+2;textWidth+=this.YTextPadding[1];this.Canvas.fillStyle=this.DrawPicture.TextBGColor;this.Canvas.fillRect(right,item.Y-fontHeight/2,textWidth,fontHeight);this.Canvas.fillStyle=this.DrawPicture.TextColor;var yText=item.Y+fontHeight/2;this.Canvas.fillText(text,right+this.YTextPadding[1],yText);}};//字体外部设置好
|
|
2348
2350
|
this.GetCustomItemTextInfo=function(item,bLeft,pixelTatio){var text=bLeft?item.Message[0]:item.Message[1];var aryText=[];var width=0;if(Array.isArray(text)){for(var i=0;i<text.length;++i){var item=text[i];if(item.Type===1){aryText.push({Type:item.Type});}else{var value=this.Canvas.measureText(text[i].Text).width;if(value>width)width=value;var outItem={Text:text[i].Text,Width:value+2*pixelTatio};if(item.TextColor)outItem.TextColor=item.TextColor;aryText.push(outItem);}}if(width>0)width+=2*pixelTatio;}else{width=this.Canvas.measureText(text).width+2*pixelTatio;aryText.push({Text:text,Width:width});}return{MaxWidth:width,Text:aryText};};this.DrawCustomItem=function(item,mapTextRect)//显示自定义Y刻度
|
|
2349
|
-
{if(!item.Message[1]&&!item.Message[0])return;if(item.Value>this.HorizontalMax||item.Value<this.HorizontalMin){this.SendDrawCountDownEvent({IsShow:false});return;}var border=this.GetBorder();var left=border.Left;var right=border.Right;var bottom=border.Bottom;var top=border.Top;var borderRight=this.ChartBorder.Right;var borderLeft=this.ChartBorder.Left;var titleHeight=this.ChartBorder.TitleHeight;if(this.IsHScreen){borderLeft=this.ChartBorder.Top;borderRight=this.ChartBorder.Bottom;top=border.Top;bottom=border.Bottom;}var pixelTatio=GetDevicePixelRatio();var defaultTextHeight=18*pixelTatio;var textHeight=defaultTextHeight;var y;if(item.Value=="Top")y=
|
|
2351
|
+
{if(!item.Message[1]&&!item.Message[0])return;if(item.Value>this.HorizontalMax||item.Value<this.HorizontalMin){this.SendDrawCountDownEvent({IsShow:false});return;}var border=this.GetBorder();var left=border.Left;var right=border.Right;var bottom=border.Bottom;var top=border.Top;var borderRight=this.ChartBorder.Right;var borderLeft=this.ChartBorder.Left;var titleHeight=this.ChartBorder.TitleHeight;if(this.IsHScreen){borderLeft=this.ChartBorder.Top;borderRight=this.ChartBorder.Bottom;top=border.Top;bottom=border.Bottom;}var pixelTatio=GetDevicePixelRatio();var defaultTextHeight=18*pixelTatio;var textHeight=defaultTextHeight;var y;if(item.Value=="TopEx")y=border.TopEx;else if(item.Value=="TopTitle")y=border.TopTitle;else if(item.Value=="Top")y=border.Top;else if(item.Value=="BottomEx")y=border.BottomEx;else if(item.Value=="Bottom")y=border.Bottom;else y=this.GetYFromData(item.Value);if(IFrameSplitOperator.IsNumber(item.YOffset))y+=item.YOffset;var position=0;var emptyBGColor;if(item.ExtendData&&item.ExtendData.Custom){var customItem=item.ExtendData.Custom;if(IFrameSplitOperator.IsNumber(customItem.Position))position=customItem.Position;if(customItem.EmptyBGColor)emptyBGColor=customItem.EmptyBGColor;}if(item.Message[0])// 左
|
|
2350
2352
|
{if(borderLeft<10||position==1){if(item.Font!=null)this.Canvas.font=item.Font;this.Canvas.textAlign="left";this.Canvas.textBaseline="middle";var textInfo=this.GetCustomItemTextInfo(item,true,pixelTatio);var textWidth=textInfo.MaxWidth;var fontHeight=this.GetFontHeight();textHeight=fontHeight>defaultTextHeight?fontHeight:defaultTextHeight;var bgColor=item.LineColor;var rgb=this.RGBToStruct(item.LineColor);if(rgb)bgColor='rgba('+rgb.R+', '+rgb.G+', '+rgb.B+', '+g_JSChartResource.FrameLatestPrice.BGAlpha+')';//内部刻度 背景增加透明度
|
|
2351
2353
|
var yText=y;for(var i=0;i<textInfo.Text.length;++i){var itemText=textInfo.Text[i];if(this.IsHScreen){var bgTop=top;var textLeft=yText-textHeight/2-1*pixelTatio;this.Canvas.fillStyle=bgColor;this.Canvas.fillRect(textLeft,bgTop,textHeight,itemText.Width);this.DrawHScreenText({X:yText,Y:bgTop},{Text:itemText.Text,Color:item.TextColor,XOffset:1*pixelTatio,YOffset:2*pixelTatio});if(i==0)this.DrawLine(bgTop+itemText.Width,bottom,yText,item.LineColor,item.LineType,item);yText-=textHeight+1*pixelTatio;}else{if(itemText.Type===1){}else{var bgTop=yText-textHeight/2-1*pixelTatio;var textLeft=left+1*pixelTatio;this.Canvas.fillStyle=bgColor;this.Canvas.fillRect(textLeft,bgTop,itemText.Width,textHeight);this.Canvas.fillStyle=item.TextColor;this.Canvas.fillText(itemText.Text,textLeft+1*pixelTatio,yText);if(i==0)this.DrawLine(textLeft+itemText.Width,right,yText,item.LineColor,item.LineType,item);yText+=textHeight+1*pixelTatio;}}}}else{if(item.Font!=null)this.Canvas.font=item.Font;this.Canvas.textAlign="right";this.Canvas.textBaseline="middle";var textInfo=this.GetCustomItemTextInfo(item,true,pixelTatio);var textWidth=textInfo.MaxWidth;var fontHeight=this.GetFontHeight();textHeight=fontHeight>defaultTextHeight?fontHeight:defaultTextHeight;var yText=y;for(var i=0;i<textInfo.Text.length;++i){var itemText=textInfo.Text[i];if(this.IsHScreen){if(i==0)var bgTop=top-itemText.Width;else var bgTop=top-textWidth;var textLeft=yText-textHeight/2-1*pixelTatio;this.Canvas.fillStyle=item.LineColor;this.Canvas.fillRect(textLeft,bgTop,textHeight,itemText.Width);this.DrawHScreenText({X:yText,Y:bgTop},{Text:itemText.Text,Color:item.TextColor,XOffset:1*pixelTatio,YOffset:2*pixelTatio});if(i==0)this.DrawLine(bgTop+itemText.Width,bottom,yText,item.LineColor,item.LineType,item);yText-=textHeight+1*pixelTatio;}else{var bgTop=yText-textHeight/2-1*pixelTatio;if(i==0){var rectLeft=left-itemText.Width;var textLeft=left;}else{var rectLeft=left-textWidth;var textLeft=left-(textWidth-itemText.Width);}if(emptyBGColor){this.Canvas.fillStyle=emptyBGColor;this.Canvas.fillRect(rectLeft-1,bgTop,itemText.Width+1,textHeight);this.Canvas.strokeStyle=item.LineColor;this.Canvas.strokeRect(ToFixedPoint(rectLeft-1),ToFixedPoint(bgTop),ToFixedPoint(itemText.Width+1),ToFixedPoint(textHeight));this.Canvas.fillStyle=item.LineColor;this.Canvas.fillText(itemText.Text,textLeft-1*pixelTatio,yText);}else{this.Canvas.fillStyle=item.LineColor;this.Canvas.fillRect(rectLeft,bgTop,itemText.Width,textHeight);this.Canvas.fillStyle=item.TextColor;this.Canvas.fillText(itemText.Text,textLeft-1*pixelTatio,yText);}if(i==0)this.DrawLine(left,right,yText,item.LineColor,item.LineType,item);yText+=textHeight+1*pixelTatio;}}}}else if(item.Message[1])//右
|
|
2352
2354
|
{if(borderRight<10||position==1){if(item.Font!=null)this.Canvas.font=item.Font;this.Canvas.textAlign="left";this.Canvas.textBaseline="middle";var textInfo=this.GetCustomItemTextInfo(item,false,pixelTatio);var textWidth=textInfo.MaxWidth;var fontHeight=this.GetFontHeight();textHeight=fontHeight>defaultTextHeight?fontHeight:defaultTextHeight;var bgColor=item.LineColor;var rgb=this.RGBToStruct(item.LineColor);if(rgb)bgColor='rgba('+rgb.R+', '+rgb.G+', '+rgb.B+', '+g_JSChartResource.FrameLatestPrice.BGAlpha+')';//内部刻度 背景增加透明度
|
|
@@ -2389,6 +2391,7 @@ this.BeforeCloseIcon=CloneData(g_JSChartResource.Minute.Before.CloseIcon);this.I
|
|
|
2389
2391
|
this.BeforeOpenVerticalInfo=[];//盘前集合竞价X轴
|
|
2390
2392
|
this.AfterCloseVerticalInfo=[];//收盘集合竞价X轴
|
|
2391
2393
|
this.NightDayConfig=CloneData(g_JSChartResource.Minute.NightDay);this.DrawFrame=function(){if(!this.IsMinSize){this.SplitXYCoordinate();this.DrawBeforeDataBG();this.YInsideOffset=0;if(this.BeforeDrawXYCallback)this.BeforeDrawXYCallback(this);this.DrawNightDayBG();//绘制夜盘 日盘背景
|
|
2394
|
+
this.DrawCustomBG();//绘制自定义背景色
|
|
2392
2395
|
this.DrawTitleBG();this.DrawHorizontal();this.DrawVertical();}if(this.SizeChange==true||this.ReDrawToolbar==true){this.DrawToolbar();//大小变动才画工具条
|
|
2393
2396
|
this.ReDrawToolbar=false;}};//画边框
|
|
2394
2397
|
this.SuperDrawBorder=this.DrawBorder;this.DrawBorder=function(){if(!this.IsShowBorder)return;if(this.IsMinSize)return;this.SuperDrawBorder();if(this.Identify==1)//走势图和成交量中间用粗线分割开
|
|
@@ -2421,7 +2424,7 @@ this.Canvas.beginPath();this.Canvas.moveTo(xFixed,top);this.Canvas.lineTo(xFixed
|
|
|
2421
2424
|
this.DrawBeforeDataBG=function(){var border=this.ChartBorder.GetBorder();if(border.DayBorder){this.DrawMultiDayBeforeDataBG(border);return;}if(this.ChartBorder.LeftExtendWidth<10&&this.ChartBorder.RightExtendWidth<10)return;//if (this.Identify>=2) return;
|
|
2422
2425
|
var top=ToFixedPoint(border.Top);var bottom=ToFixedPoint(border.Bottom);this.Canvas.fillStyle=this.BeforeBGColor;if(this.ChartBorder.LeftExtendWidth>10)//盘前
|
|
2423
2426
|
{var left=ToFixedPoint(border.Left);var right=ToFixedPoint(this.ChartBorder.GetLeft());var width=right-left;var height=bottom-top;this.Canvas.fillRect(left,top,width,height);this.DrawCallAuctionVertical(this.BeforeOpenVerticalInfo,this.YSplitOperator.BeforeOpenData,border,true);}if(this.ChartBorder.RightExtendWidth>10)//盘后
|
|
2424
|
-
{this.Canvas.fillStyle=this.AfterBGColor;var left=ToFixedPoint(this.ChartBorder.GetRight());var right=ToFixedPoint(border.Right);var width=right-left;var height=bottom-top;this.Canvas.fillRect(left,top,width,height);}};this.DrawNightDayBG=function(){if(this.DayCount!=1)return;if(!this.HQChart)return;if(!this.HQChart.EnableNightDayBG)return;var symbol=this.HQChart.Symbol;if(!symbol)return;var xIndex=-1;//获取夜盘和日期的分界线X索引位置
|
|
2427
|
+
{this.Canvas.fillStyle=this.AfterBGColor;var left=ToFixedPoint(this.ChartBorder.GetRight());var right=ToFixedPoint(border.Right);var width=right-left;var height=bottom-top;this.Canvas.fillRect(left,top,width,height);}};this.DrawCustomBG=function(){if(!this.HQChart)return;if(this.IsHScreen)return;var symbol=this.HQChart.Symbol;if(!symbol)return;var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CUSTOM_MINUTE_BG);if(!event||!event.Callback)return;var aryDay=null;if(this.DayCount>1){if(!IFrameSplitOperator.IsNonEmptyArray(this.HQChart.DayData))return;aryDay=[];for(var i=this.HQChart.DayData.length-1;i>=0;--i){aryDay.push({Date:this.HQChart.DayData[i].Date,BGColor:null});}}else if(this.DayCount==1){if(!IFrameSplitOperator.IsPlusNumber(this.HQChart.DataStatus.LatestDate))return;aryDay=[{Date:this.HQChart.DataStatus.LatestDate,BGColor:null}];}if(!IFrameSplitOperator.IsNonEmptyArray(aryDay))return;var sendData={XPointCount:this.XPointCount,DayCount:this.DayCount,MinuteCount:this.MinuteCount,AryDay:aryDay,PreventDefault:false};event.Callback(event,sendData,this);if(sendData.PreventDefault)return;var border=this.ChartBorder.GetBorder();for(var i=0;i<aryDay.length;++i){var item=aryDay[i];if(!item.BGColor)continue;var start=i*this.MinuteCount;var end=start+this.MinuteCount-1;var xStart=this.GetXFromIndex(start);var xEnd=this.GetXFromIndex(end);var rtDay={Left:xStart,Top:border.Top,Right:xEnd,Bottom:border.Bottom};rtDay.Width=rtDay.Right-rtDay.Left;rtDay.Height=rtDay.Bottom-rtDay.Top;this.Canvas.fillStyle=item.BGColor;this.Canvas.fillRect(rtDay.Left,rtDay.Top,rtDay.Width,rtDay.Height);}};this.DrawNightDayBG=function(){if(this.DayCount!=1)return;if(!this.HQChart)return;if(!this.HQChart.EnableNightDayBG)return;var symbol=this.HQChart.Symbol;if(!symbol)return;var xIndex=-1;//获取夜盘和日期的分界线X索引位置
|
|
2425
2428
|
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CUSTOM_MINUTE_NIGHT_DAY_X_INDEX);if(!event||!event.Callback)return;var sendData={Symbol:symbol,XIndex:xIndex,MinuteTimeStringData:g_MinuteTimeStringData};event.Callback(event,sendData,this);xIndex=sendData.XIndex;if(xIndex<0)return;var border=this.ChartBorder.GetBorder();var x=this.GetXFromIndex(xIndex);var rtNight={Left:border.Left,Top:border.TopEx,Right:x,Bottom:border.Bottom};rtNight.Width=rtNight.Right-rtNight.Left;rtNight.Height=rtNight.Bottom-rtNight.Top;this.Canvas.fillStyle=this.NightDayConfig.NightBGColor;this.Canvas.fillRect(rtNight.Left,rtNight.Top,rtNight.Width,rtNight.Height);if(this.Identify!=0)return;//显示 日盘夜盘文字
|
|
2426
2429
|
this.Canvas.font=this.NightDayConfig.Font;this.Canvas.textBaseline="bottom";this.Canvas.textAlign='left';var aryTitle=[{Title:"夜盘",Position:1,Config:this.NightDayConfig.Night},{Title:"日盘",Position:0,Config:this.NightDayConfig.Day}];var textHeight=this.Canvas.measureText("擎").width;for(var i=0;i<aryTitle.length;++i){var item=aryTitle[i];var text=g_JSChartLocalization.GetText(item.Title,this.HQChart.LanguageID);var testWidth=this.Canvas.measureText(text).width;var rtItem={Width:testWidth+item.Config.Margin.Left+item.Config.Margin.Right,Height:textHeight+item.Config.Margin.Top+item.Config.Margin.Bottom,Bottom:border.Bottom};rtItem.Top=rtItem.Bottom-rtItem.Height;if(item.Position===1){rtItem.Right=x-1;rtItem.Left=rtItem.Right-rtItem.Width;}else{rtItem.Left=x+1;rtItem.Right=rtItem.Left+rtItem.Width;}if(item.Config.BGColor){this.Canvas.fillStyle=item.Config.BGColor;this.Canvas.fillRect(rtItem.Left,rtItem.Top,rtItem.Width,rtItem.Height);}if(item.Config.BorderColor){this.Canvas.strokeStyle=item.Config.BorderColor;this.Canvas.strokeRect(ToFixedPoint(rtItem.Left),ToFixedPoint(rtItem.Top),ToFixedRect(rtItem.Width),ToFixedRect(rtItem.Height));}this.Canvas.fillStyle=item.Config.Color;this.Canvas.fillText(text,rtItem.Left+item.Config.Margin.Left,rtItem.Bottom-item.Config.Margin.Bottom);}};//选中的画图工具X轴坐标信息
|
|
2427
2430
|
this.DrawPictureXCoordinate=function(drawPicture,range,option){if(this.IsHScreen)return;if(!range)return;if(!IFrameSplitOperator.IsNonEmptyArray(range.Points))return;var border=this.GetBorder();var left=border.Left;var right=border.Right;this.Canvas.font=this.DrawPicture.Font;var fontHeight=this.GetFontHeight();if(range.X){var xRange=range.X;var xLeft=xRange.Min.X;var xRight=xRange.Max.X;if(xLeft<left)xLeft=left;if(xRight>right)xRight=right;this.Canvas.fillStyle=this.DrawPicture.BGColor;this.Canvas.fillRect(xLeft,border.Bottom,xRight-xLeft,fontHeight);}for(var i=0;i<range.Points.length;++i){var item=range.Points[i];if(item.X<left||item.X>right)continue;var index=parseInt(this.GetXData(item.X));var kItem=this.GetKItem(index,option);if(kItem){//var text=IFrameSplitOperator.FormatDateString(kItem.Date,null);
|
|
@@ -7939,7 +7942,7 @@ var touches=this.GetToucheData(e,this.IsForceLandscape);var pt=this.PointAbsolut
|
|
|
7939
7942
|
{var pt=self.PointAbsoluteToRelative(drag.Click.X,drag.Click.Y,true);var x=pt.X;var y=pt.Y;self.OnMouseMove(x,y,e);}};if(this.ChartDrawOption.IsLockScreen){this.MouseDrag=drag;if(this.SelectChartDrawPicture)this.SelectChartDrawPicture.IsSelected=false;this.SelectChartDrawPicture=null;if(this.CurrentChartDrawPicture)//画图工具模式
|
|
7940
7943
|
{var drawPicture=this.CurrentChartDrawPicture;if(drawPicture.Status==2)this.SetChartDrawPictureThirdPoint(drag.Click.X,drag.Click.Y,true);else{this.SetChartDrawPictureFirstPoint(drag.Click.X,drag.Click.Y,true);//只有1个点 直接完成
|
|
7941
7944
|
if(this.FinishChartDrawPicturePoint())this.DrawDynamicInfo({Corss:false,Tooltip:false});}if(e.cancelable)e.preventDefault();return;}else{var drawPictrueData={};var pixelTatio=GetDevicePixelRatio();//鼠标移动坐标是原始坐标 需要乘以放大倍速
|
|
7942
|
-
drawPictrueData.X=touches[0].clientX-uielement.getBoundingClientRect().left;drawPictrueData.Y=touches[0].clientY-uielement.getBoundingClientRect().top;if(this.GetChartDrawPictureByPoint(drawPictrueData)){drawPictrueData.ChartDrawPicture.Status=20;drawPictrueData.ChartDrawPicture.ValueToPoint();drawPictrueData.ChartDrawPicture.MovePointIndex=drawPictrueData.PointIndex;drawPictrueData.ChartDrawPicture.IsSelected=true;this.CurrentChartDrawPicture=drawPictrueData.ChartDrawPicture;this.SelectChartDrawPicture=drawPictrueData.ChartDrawPicture;var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_DRAWPICTURE);//选中画图工具事件
|
|
7945
|
+
drawPictrueData.X=touches[0].clientX-uielement.getBoundingClientRect().left;drawPictrueData.Y=touches[0].clientY-uielement.getBoundingClientRect().top;if(this.GetChartDrawPictureByPoint(drawPictrueData)){if(drawPictrueData.ChartDrawPicture.EnableMove==true){drawPictrueData.ChartDrawPicture.Status=20;drawPictrueData.ChartDrawPicture.ValueToPoint();drawPictrueData.ChartDrawPicture.MovePointIndex=drawPictrueData.PointIndex;drawPictrueData.ChartDrawPicture.IsSelected=true;this.CurrentChartDrawPicture=drawPictrueData.ChartDrawPicture;this.SelectChartDrawPicture=drawPictrueData.ChartDrawPicture;}else{this.CurrentChartDrawPicture=null;this.SelectChartDrawPicture=null;}var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_DRAWPICTURE);//选中画图工具事件
|
|
7943
7946
|
if(event&&event.Callback){var sendData={DrawPicture:drawPictrueData.ChartDrawPicture};event.Callback(event,sendData,this);}if(e.cancelable)e.preventDefault();return;}}}else{if(this.EnableScrollUpDown==true){this.DragTimer=setTimeout(function(){self.IsPress=true;if(drag.Click.X==drag.LastMove.X&&drag.Click.Y==drag.LastMove.Y){var mouseDrag=self.MouseDrag;self.MouseDrag=null;T_ShowCorssCursor();self.PreventTouchEvent(e);}},800);}this.MouseDrag=drag;this.PhoneTouchInfo={Start:{X:touches[0].clientX,Y:touches[0].clientY},End:{X:touches[0].clientX,Y:touches[0].clientY}};this.SelectChartDrawPicture=null;if(this.EnableScrollUpDown==false)T_ShowCorssCursor();//移动十字光标
|
|
7944
7947
|
else if(this.IsClickShowCorssCursor)T_ShowCorssCursor();}if(this.EnableZoomIndexWindow){this.PhoneDBClick.AddTouchStart(touches[0].clientX,touches[0].clientY,Date.now());JSConsole.Chart.Log("[MinuteChartContainer::OnTouchStart] PhoneDBClick ",this.PhoneDBClick);}this.TouchEvent({EventID:JSCHART_EVENT_ID.ON_PHONE_TOUCH,FunctionName:"OnTouchStart"},e);}else if(this.IsPhonePinching(e)){var phonePinch={"Start":{},"Last":{}};var touches=this.GetToucheData(e,this.IsForceLandscape);phonePinch.Start={"X":touches[0].pageX,"Y":touches[0].pageY,"X2":touches[1].pageX,"Y2":touches[1].pageY};phonePinch.Last={"X":touches[0].pageX,"Y":touches[0].pageY,"X2":touches[1].pageX,"Y2":touches[1].pageY};this.PhonePinch=phonePinch;this.SelectChartDrawPicture=null;}};this.OnTouchMove=function(e){if(this.ChartSplashPaint&&this.ChartSplashPaint.IsEnableSplash==true)return;var touches=this.GetToucheData(e,this.IsForceLandscape);if(this.IsPhoneDragging(e)){var drag=this.MouseDrag;if(drag==null){var pixelTatio=GetDevicePixelRatio();var x=touches[0].clientX-uielement.getBoundingClientRect().left*pixelTatio;var y=touches[0].clientY-uielement.getBoundingClientRect().top*pixelTatio;this.OnMouseMove(x,y,e);}else{var moveAngle=this.GetMoveAngle(drag.LastMove,{X:touches[0].clientX,Y:touches[0].clientY});var moveSetp=Math.abs(drag.LastMove.X-touches[0].clientX);var moveUpDown=Math.abs(drag.LastMove.Y-touches[0].clientY);moveSetp=parseInt(moveSetp);if(this.CurrentChartDrawPicture){var drawPicture=this.CurrentChartDrawPicture;if(drawPicture.Status==1||drawPicture.Status==2){if(moveSetp<5&&moveUpDown<5)return;if(this.SetChartDrawPictureSecondPoint(touches[0].clientX,touches[0].clientY,true)){this.DrawDynamicInfo();}}else if(drawPicture.Status==3){if(this.SetChartDrawPictureThirdPoint(touches[0].clientX,touches[0].clientY,true)){this.DrawDynamicInfo();}}else if(drawPicture.Status==20)//画图工具移动
|
|
7945
7948
|
{if(moveSetp<5&&moveUpDown<5)return;if(this.MoveChartDrawPicture(touches[0].clientX-drag.LastMove.X,touches[0].clientY-drag.LastMove.Y,true)){this.DrawDynamicInfo();}}drag.LastMove.X=touches[0].clientX;drag.LastMove.Y=touches[0].clientY;}else{//上下滚动
|
|
@@ -13777,7 +13780,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
|
|
|
13777
13780
|
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);};}/********************************************************************************
|
|
13778
13781
|
* 版本信息输出
|
|
13779
13782
|
*
|
|
13780
|
-
*/var HQCHART_VERSION="1.1.
|
|
13783
|
+
*/var HQCHART_VERSION="1.1.13733";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();//把给外界调用的方法暴露出来
|
|
13781
13784
|
exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
|
|
13782
13785
|
// BaseIndex:BaseIndex,
|
|
13783
13786
|
// ChartLine:ChartLine,
|
package/package.json
CHANGED
package/src/jscommon/umychart.js
CHANGED
|
@@ -2613,6 +2613,7 @@ var JSCHART_EVENT_ID=
|
|
|
2613
2613
|
ON_CUSTOM_CORSSCURSOR_POSITION:155, //自定义十字光标X轴的输出的位置
|
|
2614
2614
|
|
|
2615
2615
|
ON_CUSTOM_MINUTE_NIGHT_DAY_X_INDEX:156, //日盘夜盘的分界线
|
|
2616
|
+
ON_CUSTOM_MINUTE_BG:157, //自定义分时图背景颜色
|
|
2616
2617
|
}
|
|
2617
2618
|
|
|
2618
2619
|
var JSCHART_OPERATOR_ID=
|
|
@@ -4659,13 +4660,23 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
4659
4660
|
var pixelTatio = GetDevicePixelRatio(); //鼠标移动坐标是原始坐标 需要乘以放大倍速
|
|
4660
4661
|
if (this.GetChartDrawPictureByPoint(drawPictrueData))
|
|
4661
4662
|
{
|
|
4662
|
-
drawPictrueData.ChartDrawPicture.
|
|
4663
|
-
|
|
4664
|
-
|
|
4665
|
-
|
|
4666
|
-
|
|
4667
|
-
|
|
4668
|
-
|
|
4663
|
+
if (drawPictrueData.ChartDrawPicture.EnableMove==true) //是否可以移动
|
|
4664
|
+
{
|
|
4665
|
+
drawPictrueData.ChartDrawPicture.Status=20;
|
|
4666
|
+
drawPictrueData.ChartDrawPicture.ValueToPoint();
|
|
4667
|
+
drawPictrueData.ChartDrawPicture.MovePointIndex=drawPictrueData.PointIndex;
|
|
4668
|
+
drawPictrueData.ChartDrawPicture.IsSelected=true;
|
|
4669
|
+
this.CurrentChartDrawPicture=drawPictrueData.ChartDrawPicture;
|
|
4670
|
+
this.SelectChartDrawPicture=drawPictrueData.ChartDrawPicture;
|
|
4671
|
+
|
|
4672
|
+
}
|
|
4673
|
+
else
|
|
4674
|
+
{
|
|
4675
|
+
this.CurrentChartDrawPicture=null;
|
|
4676
|
+
this.SelectChartDrawPicture=null;
|
|
4677
|
+
}
|
|
4678
|
+
|
|
4679
|
+
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_DRAWPICTURE); //选中画图工具事件
|
|
4669
4680
|
if (event && event.Callback)
|
|
4670
4681
|
{
|
|
4671
4682
|
let sendData={ DrawPicture: drawPictrueData.ChartDrawPicture };
|
|
@@ -12231,10 +12242,16 @@ function AverageWidthFrame()
|
|
|
12231
12242
|
var defaultTextHeight=18*pixelTatio;
|
|
12232
12243
|
var textHeight=defaultTextHeight;
|
|
12233
12244
|
var y;
|
|
12234
|
-
|
|
12235
|
-
|
|
12245
|
+
|
|
12246
|
+
if (item.Value=="TopEx") y=border.TopEx;
|
|
12247
|
+
else if (item.Value=="TopTitle") y=border.TopTitle;
|
|
12248
|
+
else if (item.Value=="Top") y=border.Top;
|
|
12249
|
+
else if (item.Value=="BottomEx") y=border.BottomEx;
|
|
12250
|
+
else if (item.Value=="Bottom") y=border.Bottom;
|
|
12236
12251
|
else y = this.GetYFromData(item.Value);
|
|
12237
|
-
|
|
12252
|
+
|
|
12253
|
+
if (IFrameSplitOperator.IsNumber(item.YOffset)) y+=item.YOffset;
|
|
12254
|
+
|
|
12238
12255
|
var position=0;
|
|
12239
12256
|
var emptyBGColor;
|
|
12240
12257
|
if (item.ExtendData && item.ExtendData.Custom)
|
|
@@ -13005,6 +13022,7 @@ function MinuteFrame()
|
|
|
13005
13022
|
if (this.BeforeDrawXYCallback) this.BeforeDrawXYCallback(this);
|
|
13006
13023
|
|
|
13007
13024
|
this.DrawNightDayBG(); //绘制夜盘 日盘背景
|
|
13025
|
+
this.DrawCustomBG(); //绘制自定义背景色
|
|
13008
13026
|
|
|
13009
13027
|
this.DrawTitleBG();
|
|
13010
13028
|
this.DrawHorizontal();
|
|
@@ -13449,6 +13467,60 @@ function MinuteFrame()
|
|
|
13449
13467
|
}
|
|
13450
13468
|
}
|
|
13451
13469
|
|
|
13470
|
+
this.DrawCustomBG=function()
|
|
13471
|
+
{
|
|
13472
|
+
if (!this.HQChart) return;
|
|
13473
|
+
if (this.IsHScreen) return;
|
|
13474
|
+
|
|
13475
|
+
var symbol=this.HQChart.Symbol;
|
|
13476
|
+
if (!symbol) return;
|
|
13477
|
+
|
|
13478
|
+
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CUSTOM_MINUTE_BG)
|
|
13479
|
+
if (!event || !event.Callback) return;
|
|
13480
|
+
|
|
13481
|
+
var aryDay=null;
|
|
13482
|
+
if (this.DayCount>1)
|
|
13483
|
+
{
|
|
13484
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.HQChart.DayData)) return;
|
|
13485
|
+
aryDay=[];
|
|
13486
|
+
for(var i=this.HQChart.DayData.length-1;i>=0;--i)
|
|
13487
|
+
{
|
|
13488
|
+
aryDay.push({ Date:this.HQChart.DayData[i].Date, BGColor:null } );
|
|
13489
|
+
}
|
|
13490
|
+
}
|
|
13491
|
+
else if (this.DayCount==1)
|
|
13492
|
+
{
|
|
13493
|
+
if (!IFrameSplitOperator.IsPlusNumber(this.HQChart.DataStatus.LatestDate)) return;
|
|
13494
|
+
aryDay=[{ Date:this.HQChart.DataStatus.LatestDate, BGColor:null }];
|
|
13495
|
+
}
|
|
13496
|
+
|
|
13497
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(aryDay)) return;
|
|
13498
|
+
|
|
13499
|
+
var sendData={ XPointCount:this.XPointCount, DayCount:this.DayCount, MinuteCount:this.MinuteCount , AryDay:aryDay, PreventDefault:false };
|
|
13500
|
+
event.Callback(event, sendData, this);
|
|
13501
|
+
if (sendData.PreventDefault) return;
|
|
13502
|
+
|
|
13503
|
+
var border=this.ChartBorder.GetBorder();
|
|
13504
|
+
for(var i=0;i<aryDay.length;++i)
|
|
13505
|
+
{
|
|
13506
|
+
var item=aryDay[i];
|
|
13507
|
+
if (!item.BGColor) continue;
|
|
13508
|
+
|
|
13509
|
+
var start=i*this.MinuteCount;
|
|
13510
|
+
var end=start+this.MinuteCount-1;
|
|
13511
|
+
|
|
13512
|
+
var xStart=this.GetXFromIndex(start);
|
|
13513
|
+
var xEnd=this.GetXFromIndex(end);
|
|
13514
|
+
|
|
13515
|
+
var rtDay={Left:xStart, Top:border.Top, Right:xEnd, Bottom:border.Bottom };
|
|
13516
|
+
rtDay.Width=rtDay.Right-rtDay.Left;
|
|
13517
|
+
rtDay.Height=rtDay.Bottom-rtDay.Top;
|
|
13518
|
+
|
|
13519
|
+
this.Canvas.fillStyle =item.BGColor;
|
|
13520
|
+
this.Canvas.fillRect(rtDay.Left, rtDay.Top, rtDay.Width, rtDay.Height);
|
|
13521
|
+
}
|
|
13522
|
+
}
|
|
13523
|
+
|
|
13452
13524
|
this.DrawNightDayBG=function()
|
|
13453
13525
|
{
|
|
13454
13526
|
if (this.DayCount!=1) return;
|
|
@@ -79532,12 +79604,21 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
79532
79604
|
drawPictrueData.Y=(touches[0].clientY-uielement.getBoundingClientRect().top);
|
|
79533
79605
|
if (this.GetChartDrawPictureByPoint(drawPictrueData))
|
|
79534
79606
|
{
|
|
79535
|
-
drawPictrueData.ChartDrawPicture.
|
|
79536
|
-
|
|
79537
|
-
|
|
79538
|
-
|
|
79539
|
-
|
|
79540
|
-
|
|
79607
|
+
if (drawPictrueData.ChartDrawPicture.EnableMove==true)
|
|
79608
|
+
{
|
|
79609
|
+
drawPictrueData.ChartDrawPicture.Status=20;
|
|
79610
|
+
drawPictrueData.ChartDrawPicture.ValueToPoint();
|
|
79611
|
+
drawPictrueData.ChartDrawPicture.MovePointIndex=drawPictrueData.PointIndex;
|
|
79612
|
+
drawPictrueData.ChartDrawPicture.IsSelected=true;
|
|
79613
|
+
this.CurrentChartDrawPicture=drawPictrueData.ChartDrawPicture;
|
|
79614
|
+
this.SelectChartDrawPicture=drawPictrueData.ChartDrawPicture;
|
|
79615
|
+
}
|
|
79616
|
+
else
|
|
79617
|
+
{
|
|
79618
|
+
this.CurrentChartDrawPicture=null;
|
|
79619
|
+
this.SelectChartDrawPicture=null;
|
|
79620
|
+
}
|
|
79621
|
+
|
|
79541
79622
|
let event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_DRAWPICTURE); //选中画图工具事件
|
|
79542
79623
|
if (event && event.Callback)
|
|
79543
79624
|
{
|
|
@@ -6538,6 +6538,7 @@ var JSCHART_EVENT_ID=
|
|
|
6538
6538
|
ON_CUSTOM_CORSSCURSOR_POSITION:155, //自定义十字光标X轴的输出的位置
|
|
6539
6539
|
|
|
6540
6540
|
ON_CUSTOM_MINUTE_NIGHT_DAY_X_INDEX:156, //日盘夜盘的分界线
|
|
6541
|
+
ON_CUSTOM_MINUTE_BG:157, //自定义分时图背景颜色
|
|
6541
6542
|
}
|
|
6542
6543
|
|
|
6543
6544
|
var JSCHART_OPERATOR_ID=
|
|
@@ -8584,13 +8585,23 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
8584
8585
|
var pixelTatio = GetDevicePixelRatio(); //鼠标移动坐标是原始坐标 需要乘以放大倍速
|
|
8585
8586
|
if (this.GetChartDrawPictureByPoint(drawPictrueData))
|
|
8586
8587
|
{
|
|
8587
|
-
drawPictrueData.ChartDrawPicture.
|
|
8588
|
-
|
|
8589
|
-
|
|
8590
|
-
|
|
8591
|
-
|
|
8592
|
-
|
|
8593
|
-
|
|
8588
|
+
if (drawPictrueData.ChartDrawPicture.EnableMove==true) //是否可以移动
|
|
8589
|
+
{
|
|
8590
|
+
drawPictrueData.ChartDrawPicture.Status=20;
|
|
8591
|
+
drawPictrueData.ChartDrawPicture.ValueToPoint();
|
|
8592
|
+
drawPictrueData.ChartDrawPicture.MovePointIndex=drawPictrueData.PointIndex;
|
|
8593
|
+
drawPictrueData.ChartDrawPicture.IsSelected=true;
|
|
8594
|
+
this.CurrentChartDrawPicture=drawPictrueData.ChartDrawPicture;
|
|
8595
|
+
this.SelectChartDrawPicture=drawPictrueData.ChartDrawPicture;
|
|
8596
|
+
|
|
8597
|
+
}
|
|
8598
|
+
else
|
|
8599
|
+
{
|
|
8600
|
+
this.CurrentChartDrawPicture=null;
|
|
8601
|
+
this.SelectChartDrawPicture=null;
|
|
8602
|
+
}
|
|
8603
|
+
|
|
8604
|
+
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_DRAWPICTURE); //选中画图工具事件
|
|
8594
8605
|
if (event && event.Callback)
|
|
8595
8606
|
{
|
|
8596
8607
|
let sendData={ DrawPicture: drawPictrueData.ChartDrawPicture };
|
|
@@ -16156,10 +16167,16 @@ function AverageWidthFrame()
|
|
|
16156
16167
|
var defaultTextHeight=18*pixelTatio;
|
|
16157
16168
|
var textHeight=defaultTextHeight;
|
|
16158
16169
|
var y;
|
|
16159
|
-
|
|
16160
|
-
|
|
16170
|
+
|
|
16171
|
+
if (item.Value=="TopEx") y=border.TopEx;
|
|
16172
|
+
else if (item.Value=="TopTitle") y=border.TopTitle;
|
|
16173
|
+
else if (item.Value=="Top") y=border.Top;
|
|
16174
|
+
else if (item.Value=="BottomEx") y=border.BottomEx;
|
|
16175
|
+
else if (item.Value=="Bottom") y=border.Bottom;
|
|
16161
16176
|
else y = this.GetYFromData(item.Value);
|
|
16162
|
-
|
|
16177
|
+
|
|
16178
|
+
if (IFrameSplitOperator.IsNumber(item.YOffset)) y+=item.YOffset;
|
|
16179
|
+
|
|
16163
16180
|
var position=0;
|
|
16164
16181
|
var emptyBGColor;
|
|
16165
16182
|
if (item.ExtendData && item.ExtendData.Custom)
|
|
@@ -16930,6 +16947,7 @@ function MinuteFrame()
|
|
|
16930
16947
|
if (this.BeforeDrawXYCallback) this.BeforeDrawXYCallback(this);
|
|
16931
16948
|
|
|
16932
16949
|
this.DrawNightDayBG(); //绘制夜盘 日盘背景
|
|
16950
|
+
this.DrawCustomBG(); //绘制自定义背景色
|
|
16933
16951
|
|
|
16934
16952
|
this.DrawTitleBG();
|
|
16935
16953
|
this.DrawHorizontal();
|
|
@@ -17374,6 +17392,60 @@ function MinuteFrame()
|
|
|
17374
17392
|
}
|
|
17375
17393
|
}
|
|
17376
17394
|
|
|
17395
|
+
this.DrawCustomBG=function()
|
|
17396
|
+
{
|
|
17397
|
+
if (!this.HQChart) return;
|
|
17398
|
+
if (this.IsHScreen) return;
|
|
17399
|
+
|
|
17400
|
+
var symbol=this.HQChart.Symbol;
|
|
17401
|
+
if (!symbol) return;
|
|
17402
|
+
|
|
17403
|
+
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CUSTOM_MINUTE_BG)
|
|
17404
|
+
if (!event || !event.Callback) return;
|
|
17405
|
+
|
|
17406
|
+
var aryDay=null;
|
|
17407
|
+
if (this.DayCount>1)
|
|
17408
|
+
{
|
|
17409
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.HQChart.DayData)) return;
|
|
17410
|
+
aryDay=[];
|
|
17411
|
+
for(var i=this.HQChart.DayData.length-1;i>=0;--i)
|
|
17412
|
+
{
|
|
17413
|
+
aryDay.push({ Date:this.HQChart.DayData[i].Date, BGColor:null } );
|
|
17414
|
+
}
|
|
17415
|
+
}
|
|
17416
|
+
else if (this.DayCount==1)
|
|
17417
|
+
{
|
|
17418
|
+
if (!IFrameSplitOperator.IsPlusNumber(this.HQChart.DataStatus.LatestDate)) return;
|
|
17419
|
+
aryDay=[{ Date:this.HQChart.DataStatus.LatestDate, BGColor:null }];
|
|
17420
|
+
}
|
|
17421
|
+
|
|
17422
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(aryDay)) return;
|
|
17423
|
+
|
|
17424
|
+
var sendData={ XPointCount:this.XPointCount, DayCount:this.DayCount, MinuteCount:this.MinuteCount , AryDay:aryDay, PreventDefault:false };
|
|
17425
|
+
event.Callback(event, sendData, this);
|
|
17426
|
+
if (sendData.PreventDefault) return;
|
|
17427
|
+
|
|
17428
|
+
var border=this.ChartBorder.GetBorder();
|
|
17429
|
+
for(var i=0;i<aryDay.length;++i)
|
|
17430
|
+
{
|
|
17431
|
+
var item=aryDay[i];
|
|
17432
|
+
if (!item.BGColor) continue;
|
|
17433
|
+
|
|
17434
|
+
var start=i*this.MinuteCount;
|
|
17435
|
+
var end=start+this.MinuteCount-1;
|
|
17436
|
+
|
|
17437
|
+
var xStart=this.GetXFromIndex(start);
|
|
17438
|
+
var xEnd=this.GetXFromIndex(end);
|
|
17439
|
+
|
|
17440
|
+
var rtDay={Left:xStart, Top:border.Top, Right:xEnd, Bottom:border.Bottom };
|
|
17441
|
+
rtDay.Width=rtDay.Right-rtDay.Left;
|
|
17442
|
+
rtDay.Height=rtDay.Bottom-rtDay.Top;
|
|
17443
|
+
|
|
17444
|
+
this.Canvas.fillStyle =item.BGColor;
|
|
17445
|
+
this.Canvas.fillRect(rtDay.Left, rtDay.Top, rtDay.Width, rtDay.Height);
|
|
17446
|
+
}
|
|
17447
|
+
}
|
|
17448
|
+
|
|
17377
17449
|
this.DrawNightDayBG=function()
|
|
17378
17450
|
{
|
|
17379
17451
|
if (this.DayCount!=1) return;
|
|
@@ -83457,12 +83529,21 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
83457
83529
|
drawPictrueData.Y=(touches[0].clientY-uielement.getBoundingClientRect().top);
|
|
83458
83530
|
if (this.GetChartDrawPictureByPoint(drawPictrueData))
|
|
83459
83531
|
{
|
|
83460
|
-
drawPictrueData.ChartDrawPicture.
|
|
83461
|
-
|
|
83462
|
-
|
|
83463
|
-
|
|
83464
|
-
|
|
83465
|
-
|
|
83532
|
+
if (drawPictrueData.ChartDrawPicture.EnableMove==true)
|
|
83533
|
+
{
|
|
83534
|
+
drawPictrueData.ChartDrawPicture.Status=20;
|
|
83535
|
+
drawPictrueData.ChartDrawPicture.ValueToPoint();
|
|
83536
|
+
drawPictrueData.ChartDrawPicture.MovePointIndex=drawPictrueData.PointIndex;
|
|
83537
|
+
drawPictrueData.ChartDrawPicture.IsSelected=true;
|
|
83538
|
+
this.CurrentChartDrawPicture=drawPictrueData.ChartDrawPicture;
|
|
83539
|
+
this.SelectChartDrawPicture=drawPictrueData.ChartDrawPicture;
|
|
83540
|
+
}
|
|
83541
|
+
else
|
|
83542
|
+
{
|
|
83543
|
+
this.CurrentChartDrawPicture=null;
|
|
83544
|
+
this.SelectChartDrawPicture=null;
|
|
83545
|
+
}
|
|
83546
|
+
|
|
83466
83547
|
let event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_DRAWPICTURE); //选中画图工具事件
|
|
83467
83548
|
if (event && event.Callback)
|
|
83468
83549
|
{
|
|
@@ -138332,7 +138413,7 @@ function ScrollBarBGChart()
|
|
|
138332
138413
|
|
|
138333
138414
|
|
|
138334
138415
|
|
|
138335
|
-
var HQCHART_VERSION="1.1.
|
|
138416
|
+
var HQCHART_VERSION="1.1.13733";
|
|
138336
138417
|
|
|
138337
138418
|
function PrintHQChartVersion()
|
|
138338
138419
|
{
|
|
@@ -6582,6 +6582,7 @@ var JSCHART_EVENT_ID=
|
|
|
6582
6582
|
ON_CUSTOM_CORSSCURSOR_POSITION:155, //自定义十字光标X轴的输出的位置
|
|
6583
6583
|
|
|
6584
6584
|
ON_CUSTOM_MINUTE_NIGHT_DAY_X_INDEX:156, //日盘夜盘的分界线
|
|
6585
|
+
ON_CUSTOM_MINUTE_BG:157, //自定义分时图背景颜色
|
|
6585
6586
|
}
|
|
6586
6587
|
|
|
6587
6588
|
var JSCHART_OPERATOR_ID=
|
|
@@ -8628,13 +8629,23 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
8628
8629
|
var pixelTatio = GetDevicePixelRatio(); //鼠标移动坐标是原始坐标 需要乘以放大倍速
|
|
8629
8630
|
if (this.GetChartDrawPictureByPoint(drawPictrueData))
|
|
8630
8631
|
{
|
|
8631
|
-
drawPictrueData.ChartDrawPicture.
|
|
8632
|
-
|
|
8633
|
-
|
|
8634
|
-
|
|
8635
|
-
|
|
8636
|
-
|
|
8637
|
-
|
|
8632
|
+
if (drawPictrueData.ChartDrawPicture.EnableMove==true) //是否可以移动
|
|
8633
|
+
{
|
|
8634
|
+
drawPictrueData.ChartDrawPicture.Status=20;
|
|
8635
|
+
drawPictrueData.ChartDrawPicture.ValueToPoint();
|
|
8636
|
+
drawPictrueData.ChartDrawPicture.MovePointIndex=drawPictrueData.PointIndex;
|
|
8637
|
+
drawPictrueData.ChartDrawPicture.IsSelected=true;
|
|
8638
|
+
this.CurrentChartDrawPicture=drawPictrueData.ChartDrawPicture;
|
|
8639
|
+
this.SelectChartDrawPicture=drawPictrueData.ChartDrawPicture;
|
|
8640
|
+
|
|
8641
|
+
}
|
|
8642
|
+
else
|
|
8643
|
+
{
|
|
8644
|
+
this.CurrentChartDrawPicture=null;
|
|
8645
|
+
this.SelectChartDrawPicture=null;
|
|
8646
|
+
}
|
|
8647
|
+
|
|
8648
|
+
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_DRAWPICTURE); //选中画图工具事件
|
|
8638
8649
|
if (event && event.Callback)
|
|
8639
8650
|
{
|
|
8640
8651
|
let sendData={ DrawPicture: drawPictrueData.ChartDrawPicture };
|
|
@@ -16200,10 +16211,16 @@ function AverageWidthFrame()
|
|
|
16200
16211
|
var defaultTextHeight=18*pixelTatio;
|
|
16201
16212
|
var textHeight=defaultTextHeight;
|
|
16202
16213
|
var y;
|
|
16203
|
-
|
|
16204
|
-
|
|
16214
|
+
|
|
16215
|
+
if (item.Value=="TopEx") y=border.TopEx;
|
|
16216
|
+
else if (item.Value=="TopTitle") y=border.TopTitle;
|
|
16217
|
+
else if (item.Value=="Top") y=border.Top;
|
|
16218
|
+
else if (item.Value=="BottomEx") y=border.BottomEx;
|
|
16219
|
+
else if (item.Value=="Bottom") y=border.Bottom;
|
|
16205
16220
|
else y = this.GetYFromData(item.Value);
|
|
16206
|
-
|
|
16221
|
+
|
|
16222
|
+
if (IFrameSplitOperator.IsNumber(item.YOffset)) y+=item.YOffset;
|
|
16223
|
+
|
|
16207
16224
|
var position=0;
|
|
16208
16225
|
var emptyBGColor;
|
|
16209
16226
|
if (item.ExtendData && item.ExtendData.Custom)
|
|
@@ -16974,6 +16991,7 @@ function MinuteFrame()
|
|
|
16974
16991
|
if (this.BeforeDrawXYCallback) this.BeforeDrawXYCallback(this);
|
|
16975
16992
|
|
|
16976
16993
|
this.DrawNightDayBG(); //绘制夜盘 日盘背景
|
|
16994
|
+
this.DrawCustomBG(); //绘制自定义背景色
|
|
16977
16995
|
|
|
16978
16996
|
this.DrawTitleBG();
|
|
16979
16997
|
this.DrawHorizontal();
|
|
@@ -17418,6 +17436,60 @@ function MinuteFrame()
|
|
|
17418
17436
|
}
|
|
17419
17437
|
}
|
|
17420
17438
|
|
|
17439
|
+
this.DrawCustomBG=function()
|
|
17440
|
+
{
|
|
17441
|
+
if (!this.HQChart) return;
|
|
17442
|
+
if (this.IsHScreen) return;
|
|
17443
|
+
|
|
17444
|
+
var symbol=this.HQChart.Symbol;
|
|
17445
|
+
if (!symbol) return;
|
|
17446
|
+
|
|
17447
|
+
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CUSTOM_MINUTE_BG)
|
|
17448
|
+
if (!event || !event.Callback) return;
|
|
17449
|
+
|
|
17450
|
+
var aryDay=null;
|
|
17451
|
+
if (this.DayCount>1)
|
|
17452
|
+
{
|
|
17453
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.HQChart.DayData)) return;
|
|
17454
|
+
aryDay=[];
|
|
17455
|
+
for(var i=this.HQChart.DayData.length-1;i>=0;--i)
|
|
17456
|
+
{
|
|
17457
|
+
aryDay.push({ Date:this.HQChart.DayData[i].Date, BGColor:null } );
|
|
17458
|
+
}
|
|
17459
|
+
}
|
|
17460
|
+
else if (this.DayCount==1)
|
|
17461
|
+
{
|
|
17462
|
+
if (!IFrameSplitOperator.IsPlusNumber(this.HQChart.DataStatus.LatestDate)) return;
|
|
17463
|
+
aryDay=[{ Date:this.HQChart.DataStatus.LatestDate, BGColor:null }];
|
|
17464
|
+
}
|
|
17465
|
+
|
|
17466
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(aryDay)) return;
|
|
17467
|
+
|
|
17468
|
+
var sendData={ XPointCount:this.XPointCount, DayCount:this.DayCount, MinuteCount:this.MinuteCount , AryDay:aryDay, PreventDefault:false };
|
|
17469
|
+
event.Callback(event, sendData, this);
|
|
17470
|
+
if (sendData.PreventDefault) return;
|
|
17471
|
+
|
|
17472
|
+
var border=this.ChartBorder.GetBorder();
|
|
17473
|
+
for(var i=0;i<aryDay.length;++i)
|
|
17474
|
+
{
|
|
17475
|
+
var item=aryDay[i];
|
|
17476
|
+
if (!item.BGColor) continue;
|
|
17477
|
+
|
|
17478
|
+
var start=i*this.MinuteCount;
|
|
17479
|
+
var end=start+this.MinuteCount-1;
|
|
17480
|
+
|
|
17481
|
+
var xStart=this.GetXFromIndex(start);
|
|
17482
|
+
var xEnd=this.GetXFromIndex(end);
|
|
17483
|
+
|
|
17484
|
+
var rtDay={Left:xStart, Top:border.Top, Right:xEnd, Bottom:border.Bottom };
|
|
17485
|
+
rtDay.Width=rtDay.Right-rtDay.Left;
|
|
17486
|
+
rtDay.Height=rtDay.Bottom-rtDay.Top;
|
|
17487
|
+
|
|
17488
|
+
this.Canvas.fillStyle =item.BGColor;
|
|
17489
|
+
this.Canvas.fillRect(rtDay.Left, rtDay.Top, rtDay.Width, rtDay.Height);
|
|
17490
|
+
}
|
|
17491
|
+
}
|
|
17492
|
+
|
|
17421
17493
|
this.DrawNightDayBG=function()
|
|
17422
17494
|
{
|
|
17423
17495
|
if (this.DayCount!=1) return;
|
|
@@ -83501,12 +83573,21 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
83501
83573
|
drawPictrueData.Y=(touches[0].clientY-uielement.getBoundingClientRect().top);
|
|
83502
83574
|
if (this.GetChartDrawPictureByPoint(drawPictrueData))
|
|
83503
83575
|
{
|
|
83504
|
-
drawPictrueData.ChartDrawPicture.
|
|
83505
|
-
|
|
83506
|
-
|
|
83507
|
-
|
|
83508
|
-
|
|
83509
|
-
|
|
83576
|
+
if (drawPictrueData.ChartDrawPicture.EnableMove==true)
|
|
83577
|
+
{
|
|
83578
|
+
drawPictrueData.ChartDrawPicture.Status=20;
|
|
83579
|
+
drawPictrueData.ChartDrawPicture.ValueToPoint();
|
|
83580
|
+
drawPictrueData.ChartDrawPicture.MovePointIndex=drawPictrueData.PointIndex;
|
|
83581
|
+
drawPictrueData.ChartDrawPicture.IsSelected=true;
|
|
83582
|
+
this.CurrentChartDrawPicture=drawPictrueData.ChartDrawPicture;
|
|
83583
|
+
this.SelectChartDrawPicture=drawPictrueData.ChartDrawPicture;
|
|
83584
|
+
}
|
|
83585
|
+
else
|
|
83586
|
+
{
|
|
83587
|
+
this.CurrentChartDrawPicture=null;
|
|
83588
|
+
this.SelectChartDrawPicture=null;
|
|
83589
|
+
}
|
|
83590
|
+
|
|
83510
83591
|
let event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_DRAWPICTURE); //选中画图工具事件
|
|
83511
83592
|
if (event && event.Callback)
|
|
83512
83593
|
{
|
|
@@ -142863,7 +142944,7 @@ function HQChartScriptWorker()
|
|
|
142863
142944
|
|
|
142864
142945
|
|
|
142865
142946
|
|
|
142866
|
-
var HQCHART_VERSION="1.1.
|
|
142947
|
+
var HQCHART_VERSION="1.1.13733";
|
|
142867
142948
|
|
|
142868
142949
|
function PrintHQChartVersion()
|
|
142869
142950
|
{
|