hqchart 1.1.15147 → 1.1.15154
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 +41 -17
- package/package.json +1 -1
- package/src/jscommon/umychart.DialogSearchIndex.js +14 -2
- package/src/jscommon/umychart.js +77 -11
- package/src/jscommon/umychart.resource/css/tools.css +6 -0
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +78 -12
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +92 -14
package/lib/umychart.vue.js
CHANGED
|
@@ -1706,7 +1706,8 @@ ON_RELOAD_RESOURCE:173,ON_REPORT_DATA_FILTER:174,//数据筛选
|
|
|
1706
1706
|
ON_REPORT_SHOW_TOOLTIP:175,//报价列表 提示信息\
|
|
1707
1707
|
ON_FORMAT_TVLONGPOSITION_LABEL:176,ON_FORMAT_COUNTDOWN_TEXT:177,//倒计时
|
|
1708
1708
|
ON_CLICK_INDEX_LOCK:178,//点击指标锁
|
|
1709
|
-
ON_CORSSCURSOR_STATUS_CHANGE:179
|
|
1709
|
+
ON_CORSSCURSOR_STATUS_CHANGE:179,//十字光标状态改变
|
|
1710
|
+
ON_FORMAT_DRAW_HLINE_LABEL:180//画图工具-水平线(ChartDrawPictureHorizontalLine)格式化标签文字
|
|
1710
1711
|
};var JSCHART_OPERATOR_ID={OP_SCROLL_LEFT:1,//往左移动
|
|
1711
1712
|
OP_SCROLL_RIGHT:2,//往右移动
|
|
1712
1713
|
OP_ZOOM_OUT:3,//缩小
|
|
@@ -2112,7 +2113,7 @@ this.OnMouseMove(x,y,e,true);};this.DrawEmpty=function(){if(this.UIElement.width
|
|
|
2112
2113
|
this.DrawSelectedStatus=function(){if(!this.SelectedChart.MoveOn.Identify&&!this.SelectedChart.Selected.Identify)return;for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(!item.Identify)continue;if(item.Identify!=this.SelectedChart.MoveOn.Identify&&item.Identify!=this.SelectedChart.Selected.Identify)continue;if(item.DrawSelectedStatus)item.DrawSelectedStatus();}for(var i=0;i<this.OverlayChartPaint.length;++i){var item=this.OverlayChartPaint[i];if(!item.Identify)continue;if(item.Identify!=this.SelectedChart.MoveOn.Identify&&item.Identify!=this.SelectedChart.Selected.Identify)continue;if(item.DrawSelectedStatus)item.DrawSelectedStatus();}for(var i=0;i<this.OverlayChartPaint.length;++i){var item=this.OverlayChartPaint[i];if(!item.Identify)continue;if(item.Identify!=this.SelectedChart.MoveOn.Identify&&item.Identify!=this.SelectedChart.Selected.Identify)continue;if(item.DrawSelectedStatus)item.DrawSelectedStatus();}if(this.Frame.DrawOveralySelectedStatus)this.Frame.DrawOveralySelectedStatus(this.SelectedChart);};this.SetCanvas=function(canvas){if(this.Frame){var subFrame=this.Frame.SubFrame;for(var i=0;i<subFrame.length;++i){var item=subFrame[i];item.Frame.Canvas=canvas;//框架
|
|
2113
2114
|
for(var j=0;j<item.OverlayIndex.length;++j){var overlayItem=item.OverlayIndex[j];overlayItem.Frame.Canvas=canvas;//子框架
|
|
2114
2115
|
for(var k=0;k<overlayItem.ChartPaint.length;++k){var chartItem=overlayItem.ChartPaint[k];chartItem.Canvas=canvas;//叠加图形
|
|
2115
|
-
}}}}//画图工具
|
|
2116
|
+
}}if(item.Frame.LockPaint){item.Frame.LockPaint.Canvas=canvas;}}}//画图工具
|
|
2116
2117
|
for(var i=0;i<this.ChartDrawPicture.length;++i){var item=this.ChartDrawPicture[i];item.Canvas=canvas;}//图形
|
|
2117
2118
|
for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];item.Canvas=canvas;}//扩展图形
|
|
2118
2119
|
for(var i=0;i<this.ChartPaintEx.length;++i){var item=this.ChartPaintEx[i];item.Canvas=canvas;}//叠加股票
|
|
@@ -6576,10 +6577,11 @@ this.SquareSize=8;//方框点大小
|
|
|
6576
6577
|
this.PointType=g_JSChartResource.DrawPicture.PointType;// 0=圆点 1=方框 2= 空心圆
|
|
6577
6578
|
this.IsShowPoint=g_JSChartResource.DrawPicture.IsShowPoint;//是否始终显示点
|
|
6578
6579
|
this.LimitFrameID;//限制在指定窗口绘图
|
|
6580
|
+
this.CacheData;//数据缓存
|
|
6579
6581
|
//接口函数
|
|
6580
6582
|
this.SetLastPoint=null;//this.SetLastPoint=function(obj) obj={X:,Y:}
|
|
6581
6583
|
this.Update=null;//更新数据回调
|
|
6582
|
-
this.GetActiveDrawPicture=null;this.GetYCoordinatePoint=null;this.Draw=function(){};this.SetOption=function(option){if(!option)return;if(option.LineColor)this.LineColor=option.LineColor;if(option.LineWidth>0)this.LineWidth=option.LineWidth;if(option.AreaColor)this.AreaColor=option.AreaColor;if(option.PointColor)this.PointColor=option.PointColor;if(option.MoveOnPointColor)this.MoveOnPointColor=option.MoveOnPointColor;if(option.PointRadius)this.PointRadius=option.PointRadius;if(IFrameSplitOperator.IsNumber(option.SquareSize))this.SquareSize=option.SquareSize;if(IFrameSplitOperator.IsBool(option.IsShowPoint))this.IsShowPoint=option.IsShowPoint;if(IFrameSplitOperator.IsNumber(option.LimitFrameID))this.LimitFrameID=option.LimitFrameID;if(IFrameSplitOperator.IsBool(option.EnableCtrlMove))this.EnableCtrlMove=option.EnableCtrlMove;if(IFrameSplitOperator.IsBool(option.IsShowYCoordinate))this.IsShowYCoordinate=option.IsShowYCoordinate;};this.ReloadResource=function(resource){if(!resource){this.PointColor=g_JSChartResource.DrawPicture.PointColor[0];this.MoveOnPointColor=g_JSChartResource.DrawPicture.PointColor[1];this.PointBGColor=g_JSChartResource.DrawPicture.PointColor[2];}};this.SetLineWidth=function(){this.BackupLineWidth=null;if(this.LineWidth>0){this.BackupLineWidth=this.Canvas.lineWidth;this.Canvas.lineWidth=this.LineWidth*GetDevicePixelRatio();}};this.GetFontHeight=function(font){return GetFontHeight(this.Canvas,font,"擎");};this.RestoreLineWidth=function(){if(this.BackupLineWidth!=null){this.Canvas.lineWidth=this.BackupLineWidth;}};//磁吸K线
|
|
6584
|
+
this.GetActiveDrawPicture=null;this.GetYCoordinatePoint=null;this.Draw=function(){};this.SetOption=function(option){if(!option)return;if(option.LineColor)this.LineColor=option.LineColor;if(option.LineWidth>0)this.LineWidth=option.LineWidth;if(option.AreaColor)this.AreaColor=option.AreaColor;if(option.PointColor)this.PointColor=option.PointColor;if(option.MoveOnPointColor)this.MoveOnPointColor=option.MoveOnPointColor;if(option.PointRadius)this.PointRadius=option.PointRadius;if(IFrameSplitOperator.IsNumber(option.SquareSize))this.SquareSize=option.SquareSize;if(IFrameSplitOperator.IsBool(option.IsShowPoint))this.IsShowPoint=option.IsShowPoint;if(IFrameSplitOperator.IsNumber(option.LimitFrameID))this.LimitFrameID=option.LimitFrameID;if(IFrameSplitOperator.IsBool(option.EnableCtrlMove))this.EnableCtrlMove=option.EnableCtrlMove;if(IFrameSplitOperator.IsBool(option.IsShowYCoordinate))this.IsShowYCoordinate=option.IsShowYCoordinate;if(IFrameSplitOperator.IsBool(option.EnableSave))this.EnableSave=option.EnableSave;if(IFrameSplitOperator.IsBool(option.EnableMove))this.EnableMove=option.EnableMove;};this.ReloadResource=function(resource){if(!resource){this.PointColor=g_JSChartResource.DrawPicture.PointColor[0];this.MoveOnPointColor=g_JSChartResource.DrawPicture.PointColor[1];this.PointBGColor=g_JSChartResource.DrawPicture.PointColor[2];}};this.SetLineWidth=function(){this.BackupLineWidth=null;if(this.LineWidth>0){this.BackupLineWidth=this.Canvas.lineWidth;this.Canvas.lineWidth=this.LineWidth*GetDevicePixelRatio();}};this.GetFontHeight=function(font){return GetFontHeight(this.Canvas,font,"擎");};this.RestoreLineWidth=function(){if(this.BackupLineWidth!=null){this.Canvas.lineWidth=this.BackupLineWidth;}};//磁吸K线
|
|
6583
6585
|
this.PointMagnetKLine=function(){if(!this.IsSupportMagnet)return false;if(!this.Frame)return false;if(this.Frame.ClassName=="MinuteFrame"||this.Frame.Class=="MinuteHScreenFrame")return false;if(this.Frame.Identify!=0)return false;var pointIndex=-1;if(this.Status==2)pointIndex=1;else if(this.Status==1)pointIndex=0;else if(IFrameSplitOperator.IsNumber(this.MovePointIndex))pointIndex=this.MovePointIndex;if(pointIndex<0)return false;if(this.Option&&this.Option.Magnet&&this.Option.Magnet.Enable){var option={IsFixedX:false,Magnet:{Enable:true,PointIndex:pointIndex,Distance:this.Option.Magnet.Distance,Type:this.Option.Magnet.Type}};return this.AdjustPoint(this.Point,option);}return false;};//Point => Value
|
|
6584
6586
|
this.PointToValue=function(){if(!this.Frame)return false;if(this.Frame.ClassName=="MinuteFrame"||this.Frame.Class=="MinuteHScreenFrame"){return this.PointToValue_Minute();}else{return this.PointToValue_KLine();}};this.PointToKLine=function(aryPoint){if(!this.Frame)return null;var data=this.Frame.Data;if(!data)return null;var kLine=[];var isHScreen=this.Frame.IsHScreen;if(isHScreen){for(var i in aryPoint){var item=aryPoint[i];var xValue=parseInt(this.Frame.GetXData(item.Y))+data.DataOffset;var yValue=this.Frame.GetYData(item.X);var valueItem={XValue:xValue,YValue:yValue};var kline=data.Data[xValue];valueItem.DateTime={Date:kline.Date};if(IFrameSplitOperator.IsNumber(kline.Time))valueItem.DateTime.Time=kline.Time;kLine[i]=valueItem;}}else{for(var i in aryPoint){var item=aryPoint[i];var index=parseInt(this.Frame.GetXData(item.X,false));var xValue=index+data.DataOffset;if(xValue<0)xValue=0;else if(xValue>=data.Data.length){xValue=data.Data.length-1;index=xValue-data.DataOffset;}var yValue=this.Frame.GetYData(item.Y,false);var valueItem={XValue:xValue,YValue:yValue,XIndex:index};var kline=data.Data[xValue];valueItem.DateTime={Date:kline.Date};if(IFrameSplitOperator.IsNumber(kline.Time))valueItem.DateTime.Time=kline.Time;kLine[i]=valueItem;}}return kLine;};this.PointToValue_KLine=function(){if(!this.Frame)return false;var data=this.Frame.Data;if(!data)return false;var isHScreen=this.Frame.IsHScreen;if(isHScreen){for(var i=0;i<this.Point.length;++i){var item=this.Point[i];var xValue=parseInt(this.Frame.GetXData(item.Y,false))+data.DataOffset;var yValue=this.Frame.GetYData(item.X,false);var valueItem={XValue:xValue,YValue:yValue};var kline=data.Data[xValue];valueItem.DateTime={Date:kline.Date};if(IFrameSplitOperator.IsNumber(kline.Time))valueItem.DateTime.Time=kline.Time;this.Value[i]=valueItem;}}else{for(var i=0;i<this.Point.length;++i){var item=this.Point[i];var xValue=parseInt(this.Frame.GetXData(item.X,false))+data.DataOffset;if(xValue<0)xValue=0;else if(xValue>=data.Data.length)xValue=data.Data.length-1;var yValue=this.Frame.GetYData(item.Y,false);var valueItem={XValue:xValue,YValue:yValue};var kline=data.Data[xValue];valueItem.DateTime={Date:kline.Date};if(IFrameSplitOperator.IsNumber(kline.Time))valueItem.DateTime.Time=kline.Time;this.Value[i]=valueItem;}}return true;};this.PointToValue_Minute=function(){if(!this.Frame)return false;var data=this.Frame.Data;if(!data)return false;var isHScreen=this.Frame.IsHScreen;if(isHScreen){for(var i=0;i<this.Point.length;++i){var item=this.Point[i];var xValue=parseInt(this.Frame.GetXData(item.Y,false));var yValue=this.Frame.GetYData(item.X,false);var valueItem={XValue:xValue,YValue:yValue};var minuteItem=data.Data[xValue];valueItem.DateTime={Date:minuteItem.Date,Time:minuteItem.Time};this.Value[i]=valueItem;}}else{var xDatetime=g_MinuteTimeStringData.GetTimeData(this.Symbol);for(var i=0;i<this.Point.length;++i){var item=this.Point[i];var xValue=parseInt(this.Frame.GetXData(item.X,false));var yValue=this.Frame.GetYData(item.Y,false);if(xValue>=data.Data.length)//超过当前数据,直接读固定时间
|
|
6585
6587
|
{var index=xValue%xDatetime.length;var dataIndex=data.Data.length-1;var valueItem={XValue:xValue,YValue:yValue};var minuteItem=data.Data[dataIndex];var timeItem=xDatetime[index];valueItem.DateTime={Date:minuteItem.Date,Time:timeItem};this.Value[i]=valueItem;}else{var valueItem={XValue:xValue,YValue:yValue};var minuteItem=data.Data[xValue];valueItem.DateTime={Date:minuteItem.Date,Time:minuteItem.Time};this.Value[i]=valueItem;}}}return true;};this.IsPointIn=function(x,y,option){return false;};//Value => Point
|
|
@@ -6688,7 +6690,7 @@ var sColorChange=[];for(var i=1;i<7;i+=2){sColorChange.push(parseInt("0x"+color.
|
|
|
6688
6690
|
IChartDrawPicture.RegisterDrawPicture=function(obj){if(!obj.Name||!obj.ClassName||!obj.Create)return false;var item={Name:obj.Name,ClassName:obj.ClassName,Create:obj.Create};IChartDrawPicture.ArrayDrawPricture.push(item);JSConsole.Chart.Log('[IChartDrawPicture.RegisterDrawPicture] registered new draw picture class. item=',item);return true;};//注册一个新图标 {Name:, Text: , Color:, Family:}
|
|
6689
6691
|
IChartDrawPicture.RegisterIonFont=function(obj){if(!obj.Name||!obj.Text||!obj.Family)return false;var isOverwirte=IChartDrawPicture.MapIonFont.has(obj.Name);IChartDrawPicture.MapIonFont.set(obj.Name,obj);JSConsole.Chart.Log('[IChartDrawPicture.RegisterIonFont] registered new icon font, obj=, isOverwirte=',obj,isOverwirte);return true;};IChartDrawPicture.CreateChartDrawPicture=function(obj)//创建画图工具
|
|
6690
6692
|
{var item=IChartDrawPicture.GetDrawPictureByClassName(obj.ClassName);if(!item)return null;var chartDraw=item.Create();//TODO:后面都放到每一个SetOptin里面
|
|
6691
|
-
if(obj.Period>=0)chartDraw.Period=obj.Period;if(obj.Right>=0)chartDraw.Right=obj.Right;if(obj.Guid)chartDraw.Guid=obj.Guid;if(obj.Symbol)chartDraw.Symbol=obj.Symbol;if(obj.Value)chartDraw.Value=obj.Value;if(obj.Text)chartDraw.Text=obj.Text;if(obj.LineColor)chartDraw.LineColor=obj.LineColor;if(obj.AreaColor)chartDraw.AreaColor=obj.AreaColor;if(obj.FontOption)chartDraw.FontOption=obj.FontOption;if(obj.Label)chartDraw.Label=obj.Label;if(obj.LineWidth>0)chartDraw.LineWidth=obj.LineWidth;if(obj.EnableMove
|
|
6693
|
+
if(obj.Period>=0)chartDraw.Period=obj.Period;if(obj.Right>=0)chartDraw.Right=obj.Right;if(obj.Guid)chartDraw.Guid=obj.Guid;if(obj.Symbol)chartDraw.Symbol=obj.Symbol;if(obj.Value)chartDraw.Value=obj.Value;if(obj.Text)chartDraw.Text=obj.Text;if(obj.LineColor)chartDraw.LineColor=obj.LineColor;if(obj.AreaColor)chartDraw.AreaColor=obj.AreaColor;if(obj.FontOption)chartDraw.FontOption=obj.FontOption;if(obj.Label)chartDraw.Label=obj.Label;if(obj.LineWidth>0)chartDraw.LineWidth=obj.LineWidth;if(IFrameSplitOperator.IsBool(obj.EnableMove))chartDraw.EnableMove=obj.EnableMove;if(IFrameSplitOperator.IsBool(obj.EnableSave))chartDraw.EnableSave=obj.EnableSave;if(IFrameSplitOperator.IsNumber(obj.ChannelWidth))chartDraw.ChannelWidth=obj.ChannelWidth;if(IFrameSplitOperator.IsBool(obj.IsShowYCoordinate))chartDraw.IsShowYCoordinate=obj.IsShowYCoordinate;if(chartDraw.SetOption)chartDraw.SetOption(obj);return chartDraw;};//画图工具-线段
|
|
6692
6694
|
function ChartDrawPictureLine(){this.newMethod=IChartDrawPicture;//派生
|
|
6693
6695
|
this.newMethod();delete this.newMethod;this.ClassName='ChartDrawPictureLine';this.IsPointIn=this.IsPointIn_XYValue_Line;this.GetXYCoordinate=this.GetXYCoordinate_default;this.IsShowYCoordinate=false;this.CopyData=this.CopyData_default;this.OnlyMoveXIndex=true;this.IsSupportMagnet=true;this.Draw=function(){this.LinePoint=[];if(this.IsFrameMinSize())return;if(!this.IsShow)return;var drawPoint=this.CalculateDrawPoint({IsCheckX:true,IsCheckY:false});if(!drawPoint)return;if(drawPoint.length!=2)return;this.ClipFrame();var ptStart=drawPoint[0];var ptEnd=drawPoint[1];this.SetLineWidth();this.Canvas.strokeStyle=this.LineColor;this.Canvas.beginPath();this.Canvas.moveTo(ptStart.X,ptStart.Y);this.Canvas.lineTo(ptEnd.X,ptEnd.Y);this.Canvas.stroke();this.RestoreLineWidth();/*
|
|
6694
6696
|
if (this.IsSelected)
|
|
@@ -6758,7 +6760,7 @@ this.newMethod();delete this.newMethod;this.ClassName='ChartDrawPictureHaflLine'
|
|
|
6758
6760
|
this.Canvas.restore();this.FullLine={Start:drawPoint[0],End:endPoint};};}// 画图工具-水平线 支持横屏
|
|
6759
6761
|
function ChartDrawPictureHorizontalLine(){this.newMethod=IChartDrawPicture;//派生
|
|
6760
6762
|
this.newMethod();delete this.newMethod;this.ClassName='ChartDrawPictureHorizontalLine';this.PointCount=1;this.IsPointIn=this.IsPointIn_XYValue_Line;this.IsDrawFirst=true;this.LineWidth=1;this.Super_SetOption=this.SetOption;//父类函数
|
|
6761
|
-
this.Super_ExportStorageData=this.ExportStorageData;this.LabelConfig={Left:{IsShow:true,Margin:{Left:5,Top:4,Bottom:2,Right:5}},Right:{IsShow:true,Margin:{Left:5,Top:4,Bottom:2,Right:5}},Font:12*GetDevicePixelRatio()+'px \u5FAE\u8F6F\u96C5\u9ED1',TextColor:"rgb(255,255,255)",BGColor:null};this.InsideLabelConfig={Position:0,//0=左, 1=右
|
|
6763
|
+
this.Super_ExportStorageData=this.ExportStorageData;this.LabelConfig={Left:{IsShow:true,Margin:{Left:5,Top:4,Bottom:2,Right:5},LineOffset:null,Text:null},Right:{IsShow:true,Margin:{Left:5,Top:4,Bottom:2,Right:5},LineOffset:null,Text:null},Font:12*GetDevicePixelRatio()+'px \u5FAE\u8F6F\u96C5\u9ED1',TextColor:"rgb(255,255,255)",BGColor:null};this.InsideLabelConfig={Position:0,//0=左, 1=右
|
|
6762
6764
|
Font:14*GetDevicePixelRatio()+'px \u5FAE\u8F6F\u96C5\u9ED1',Margin:{Left:5,Top:4,Bottom:2,Right:5},TextColor:"rgb(255,255,255)",BGAlpha:0.8,//背景色透明度,
|
|
6763
6765
|
IsShow:true};this.LabelTitle;this.SetOption=function(option){if(this.Super_SetOption)this.Super_SetOption(option);if(option){if(option.LabelTitle)this.LabelTitle=option.LabelTitle;if(option.Label){var item=option.Label;if(item.Left){var subItem=item.Left;if(IFrameSplitOperator.IsBool(subItem.IsShow))this.LabelConfig.Left.IsShow=subItem.IsShow;}if(item.Right){var subItem=item.Right;if(IFrameSplitOperator.IsBool(subItem.IsShow))this.LabelConfig.Right.IsShow=subItem.IsShow;}if(item.Font)this.LabelConfig.Font=item.Font;if(item.TextColor)this.LabelConfig.TextColor=item.TextColor;if(item.BGColor)this.LabelConfig.BGColor=item.BGColor;}if(option.InsideLabel){var item=option.InsideLabel;if(item.Font)this.InsideLabelConfig.Font=item.Font;if(item.TextColor)this.InsideLabelConfig.TextColor=item.TextColor;if(IFrameSplitOperator.IsNumber(item.Position))this.InsideLabelConfig.Position=item.Position;if(IFrameSplitOperator.IsNumber(item.BGAlpha))this.InsideLabelConfig.BGAlpha=item.BGAlpha;if(IFrameSplitOperator.IsBool(item.IsShow))this.InsideLabelConfig.IsShow=item.IsShow;}}};this.ExportStorageData=function(){var storageData;if(this.Super_ExportStorageData){storageData=this.Super_ExportStorageData();if(this.LabelTitle)storageData.LabelTitle=this.LabelTitle;if(this.LabelConfig)storageData.Label=this.LabelConfig;if(this.InsideLabelConfig)storageData.InsideLabel=this.InsideLabelConfig;}return storageData;};/*
|
|
6764
6766
|
this.GetXYCoordinate=function()
|
|
@@ -6769,9 +6771,9 @@ IsShow:true};this.LabelTitle;this.SetOption=function(option){if(this.Super_SetOp
|
|
|
6769
6771
|
return this.PointRange(drawPoint);
|
|
6770
6772
|
}
|
|
6771
6773
|
*/this.Draw=function(){this.LinePoint=[];if(this.IsFrameMinSize())return;if(!this.IsShow)return;var drawPoint=this.CalculateDrawPoint();if(!drawPoint||drawPoint.length!=1)return;if(!this.Frame)return;if(this.Value.length!=1)return;if(!this.IsYValueInFrame(this.Value[0].YValue))return null;var isHScreen=this.Frame.IsHScreen;var left=this.Frame.ChartBorder.GetLeft();var right=this.Frame.ChartBorder.GetRight();if(isHScreen){left=this.Frame.ChartBorder.GetTop();right=this.Frame.ChartBorder.GetBottom();}this.ClipFrame();this.Canvas.strokeStyle=this.LineColor;this.SetLineWidth();this.Canvas.beginPath();if(isHScreen){this.Canvas.moveTo(drawPoint[0].X,left);this.Canvas.lineTo(drawPoint[0].X,right);}else{var yFixed=ToFixedPoint2(this.LineWidth,drawPoint[0].Y);this.Canvas.moveTo(left,yFixed);this.Canvas.lineTo(right,yFixed);}this.Canvas.stroke();this.RestoreLineWidth();var line={Start:new Point(),End:new Point()};if(isHScreen){line.Start.X=drawPoint[0].X;line.Start.Y=left;line.End.X=drawPoint[0].X;line.End.Y=right;}else{line.Start.X=left;line.Start.Y=drawPoint[0].Y;line.End.X=right;line.End.Y=drawPoint[0].Y;}this.LinePoint.push(line);//画点
|
|
6772
|
-
this.DrawPoint(drawPoint);//显示价格
|
|
6773
|
-
this.DrawInsideLabel(drawPoint[0]);this.Canvas.restore();this.DrawValueLabel(drawPoint[0]);};this.DrawValueLabel=function(point){if(!point)return;if(this.Frame.IsHScreen)return;//不支持横屏
|
|
6774
|
-
var y=point.Y;var yValue=this.Frame.GetYData(y);var text=yValue.toFixed(2);var border=this.Frame.GetBorder();var config=this.LabelConfig;this.Canvas.font=config.Font;var textHeight=this.Canvas.measureText("擎").width;var textWidth=this.Canvas.measureText(
|
|
6774
|
+
this.DrawPoint(drawPoint);this.FormatLabelTextEvent(drawPoint);//显示价格
|
|
6775
|
+
this.DrawInsideLabel(drawPoint[0]);this.Canvas.restore();this.DrawValueLabel(drawPoint[0]);};this.FormatLabelTextEvent=function(point){if(!this.HQChart)return;var event=this.HQChart.GetEventCallback(JSCHART_EVENT_ID.ON_FORMAT_DRAW_HLINE_LABEL);if(!event||!event.Callback)return;var sendData={ID:this.Guid,LabelConfig:this.LabelConfig,InsideLabelConfig:this.InsideLabelConfig};event.Callback(event,sendData,this);};this.DrawValueLabel=function(point){if(!point)return;if(this.Frame.IsHScreen)return;//不支持横屏
|
|
6776
|
+
var y=point.Y;var yFixed=ToFixedPoint2(this.LineWidth,y);var yValue=this.Frame.GetYData(y);var text=yValue.toFixed(2);var border=this.Frame.GetBorder();var config=this.LabelConfig;this.Canvas.font=config.Font;var textHeight=this.Canvas.measureText("擎").width;if(config.Left.IsShow&&this.Frame.ChartBorder.Left>5){var leftText=text;if(config.Left.Text)leftText=config.Left.Text;var textWidth=this.Canvas.measureText(leftText).width;var left=border.Left;if(IFrameSplitOperator.IsNumber(config.Left.LineOffset)&&config.Left.LineOffset!==0){left-=config.Left.LineOffset;this.Canvas.strokeStyle=this.LineColor;this.SetLineWidth();this.Canvas.beginPath();this.Canvas.moveTo(border.Left,yFixed);this.Canvas.lineTo(left,yFixed);this.Canvas.stroke();this.RestoreLineWidth();}var margin=config.Left.Margin;var rtBG={Right:left+1,Height:textHeight+margin.Top+margin.Bottom,Width:textWidth+margin.Left+margin.Right};rtBG.Top=y-textHeight/2-margin.Top;rtBG.Bottom=rtBG.Top+rtBG.Height;rtBG.Left=rtBG.Right-rtBG.Width;if(config.BGColor)this.Canvas.fillStyle=config.BGColor;else this.Canvas.fillStyle=this.LineColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);this.Canvas.textAlign="left";this.Canvas.textBaseline="top";var xText=rtBG.Left+margin.Left;var yText=rtBG.Top+margin.Top;this.Canvas.fillStyle=config.TextColor;this.Canvas.fillText(leftText,xText,yText);}if(config.Right.IsShow&&this.Frame.ChartBorder.Right>5){var rightText=text;if(config.Right.Text)rightText=config.Right.Text;var textWidth=this.Canvas.measureText(rightText).width;var left=border.Right;if(IFrameSplitOperator.IsNumber(config.Right.LineOffset)&&config.Right.LineOffset!==0){left+=config.Right.LineOffset;this.Canvas.strokeStyle=this.LineColor;this.SetLineWidth();this.Canvas.beginPath();this.Canvas.moveTo(border.Right,yFixed);this.Canvas.lineTo(left,yFixed);this.Canvas.stroke();this.RestoreLineWidth();}var margin=config.Right.Margin;var rtBG={Left:left-1,Height:textHeight+margin.Top+margin.Bottom,Width:textWidth+margin.Left+margin.Right};rtBG.Top=y-textHeight/2-margin.Top;rtBG.Bottom=rtBG.Top+rtBG.Height;rtBG.Right=rtBG.Left+rtBG.Width;if(config.BGColor)this.Canvas.fillStyle=config.BGColor;else this.Canvas.fillStyle=this.LineColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);this.Canvas.textAlign="left";this.Canvas.textBaseline="top";var xText=rtBG.Left+margin.Left;var yText=rtBG.Top+margin.Top;this.Canvas.fillStyle=config.TextColor;this.Canvas.fillText(rightText,xText,yText);}};this.DrawInsideLabel=function(point){if(!point)return;var isHScreen=this.Frame.IsHScreen;var config=this.InsideLabelConfig;if(!config.IsShow)return;if(config.Position!=0&&config.Position!=1)return;var margin=config.Margin;this.Canvas.fillStyle=this.LineColor;this.Canvas.font=config.Font;var textHeight=this.Canvas.measureText("擎").width;var border=this.Frame.GetBorder();if(isHScreen){var yValue=this.Frame.GetYData(point.X);var text=yValue.toFixed(2);if(this.LabelTitle)text=this.LabelTitle+text;var textWidth=this.Canvas.measureText(text).width;var rtBG=null;if(config.Position==0)//左
|
|
6775
6777
|
{var rtBG={Top:border.Top+1,Width:textHeight+margin.Top+margin.Bottom,Height:textWidth+margin.Left+margin.Right,Left:point.X};rtBG.Bottom=rtBG.Top+rtBG.Height;rtBG.Right=rtBG.Left+rtBG.Width;}else if(config.Position==1)//右
|
|
6776
6778
|
{var rtBG={Bottom:border.Bottom-1,Width:textHeight+margin.Top+margin.Bottom,Height:textWidth+margin.Left+margin.Right,Left:point.X};rtBG.Top=rtBG.Bottom-rtBG.Height;rtBG.Right=rtBG.Left+rtBG.Width;}var bgColor=this.LineColor;if(config.BGAlpha<1)bgColor=IChartDrawPicture.ColorToRGBA(this.LineColor,config.BGAlpha);this.Canvas.fillStyle=bgColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);var xText=rtBG.Right-margin.Top;var yText=rtBG.Top+margin.Left;this.Canvas.translate(xText,yText);this.Canvas.rotate(90*Math.PI/180);//数据和框子旋转180度
|
|
6777
6779
|
this.Canvas.textAlign="left";this.Canvas.textBaseline="top";this.Canvas.fillStyle=config.TextColor;this.Canvas.fillText(text,0,0);}else{var yValue=this.Frame.GetYData(point.Y);var text=yValue.toFixed(2);if(this.LabelTitle)text=this.LabelTitle+text;var textWidth=this.Canvas.measureText(text).width;var rtBG=null;if(config.Position==0)//左
|
|
@@ -8564,12 +8566,13 @@ aryData.push(indexData);}}if(this.IsApiPeriod){var klineData=this.ChartPaint[0].
|
|
|
8564
8566
|
{var periodData=newBindData.GetPeriodData(bindData.Period);newBindData.Data=periodData;}bindData.Data=newBindData.Data;}else{var aryFixedData=this.SourceData.GetFittingFinanceData(aryData);for(var _i13 in this.SourceData.Data){var item=this.SourceData.Data[_i13];if(aryFixedData[_i13]&&IFrameSplitOperator.IsNumber(aryFixedData[_i13].Value))item.FlowCapital=aryFixedData[_i13].Value;}var bindData=this.ChartPaint[0].Data;var newBindData=new ChartData();newBindData.Data=this.SourceData.Data;if(bindData.Right>0)//复权
|
|
8565
8567
|
{var rightData=newBindData.GetRightData(bindData.Right,{AlgorithmType:this.RightFormula});newBindData.Data=rightData;}if(ChartData.IsDayPeriod(bindData.Period,false))//周期数据
|
|
8566
8568
|
{var periodData=newBindData.GetPeriodData(bindData.Period);newBindData.Data=periodData;}bindData.Data=newBindData.Data;}}this.FlowCapitalReady=true;var bDraw=false;for(var i in this.ExtendChartPaint){var item=this.ExtendChartPaint[i];if(item.ClassName=='StockChip'){bDraw=true;break;}}if(bDraw)this.Draw();};//创建画图工具
|
|
8567
|
-
this.CreateChartDrawPicture=function(name,option,callback){var drawPicture=null;var item=IChartDrawPicture.GetDrawPictureByName(name);if(item){drawPicture=item.Create();
|
|
8568
|
-
{if(IChartDrawPicture.MapIonFont.has(name)){var iconItem=IChartDrawPicture.MapIonFont.get(name);drawPicture=new ChartDrawPictureIconFont();drawPicture.FontOption.Family=iconItem.Family;drawPicture.Text=iconItem.Text;if(iconItem.Color)drawPicture.LineColor=iconItem.Color;}}if(!drawPicture)return false;drawPicture.Canvas=this.Canvas;drawPicture.Status=0;drawPicture.Symbol=this.Symbol;drawPicture.Period=this.Period;drawPicture.Right=this.Right;drawPicture.Option=this.ChartDrawOption;if(callback)drawPicture.FinishedCallback=callback;//完成通知上层回调
|
|
8569
|
+
this.CreateChartDrawPicture=function(name,option,callback){var drawPicture=null;var item=IChartDrawPicture.GetDrawPictureByName(name);if(item){drawPicture=item.Create();}if(!drawPicture)//iconfont图标
|
|
8570
|
+
{if(IChartDrawPicture.MapIonFont.has(name)){var iconItem=IChartDrawPicture.MapIonFont.get(name);drawPicture=new ChartDrawPictureIconFont();drawPicture.FontOption.Family=iconItem.Family;drawPicture.Text=iconItem.Text;if(iconItem.Color)drawPicture.LineColor=iconItem.Color;}}if(!drawPicture)return false;drawPicture.Canvas=this.Canvas;drawPicture.Status=0;drawPicture.Symbol=this.Symbol;drawPicture.Period=this.Period;drawPicture.Right=this.Right;drawPicture.Option=this.ChartDrawOption;drawPicture.HQChart=this;if(callback)drawPicture.FinishedCallback=callback;//完成通知上层回调
|
|
8569
8571
|
if(option)drawPicture.SetOption(option);var self=this;drawPicture.Update=function()//更新回调函数
|
|
8570
8572
|
{self.DrawDynamicInfo();};drawPicture.GetActiveDrawPicture=function(){return self.GetActiveDrawPicture();};this.CurrentChartDrawPicture=drawPicture;//JSConsole.Chart.Log("[KLineChartContainer::CreateChartDrawPicture] ", name,this.CurrentChartDrawPicture);
|
|
8571
8573
|
return true;};this.AddChartDrawPicture=function(obj){if(!obj)return null;if(obj.FrameID<0||obj.FrameID>=this.Frame.SubFrame.length)return null;var self=this;var item=IChartDrawPicture.GetDrawPictureByClassName(obj.ClassName);if(!item)return null;var drawPicture=item.Create();drawPicture.Canvas=this.Canvas;drawPicture.Status=10;drawPicture.Frame=this.Frame.SubFrame[obj.FrameID].Frame;//绑定框架坐标
|
|
8572
|
-
drawPicture.Symbol=this.Symbol;drawPicture.Period=this.Period;drawPicture.Right=this.Right;drawPicture.Option=this.ChartDrawOption;if(obj.Value)drawPicture.Value=obj.Value;if(obj.Guid)drawPicture.Guid=obj.Guid;if(
|
|
8574
|
+
drawPicture.Symbol=this.Symbol;drawPicture.Period=this.Period;drawPicture.Right=this.Right;drawPicture.Option=this.ChartDrawOption;drawPicture.HQChart=this;if(obj.Value)drawPicture.Value=obj.Value;if(obj.Guid)drawPicture.Guid=obj.Guid;if(obj.CacheData)drawPicture.CacheData=obj.CacheData;//缓存数据
|
|
8575
|
+
if(drawPicture.ImportStorageData)drawPicture.ImportStorageData(obj);drawPicture.SetOption(obj);if(obj.EnableUpdateXValue)drawPicture.UpdateXValue();drawPicture.ValueToPoint();drawPicture.GetActiveDrawPicture=function(){return self.GetActiveDrawPicture();};if(drawPicture.ClassName==='ChartDrawPictureText')drawPicture.IsInitialized=true;this.ChartDrawPicture.push(drawPicture);this.DrawDynamicInfo();return drawPicture;};this.PasteChartDrawPicture=function(data,frameID,option){if(!data||!data.ClassName)return null;if(frameID<0||frameID>=this.Frame.SubFrame.length)return null;var item=IChartDrawPicture.GetDrawPictureByClassName(data.ClassName);if(!item)return null;var drawPicture=item.Create();if(!drawPicture)return null;var self=this;drawPicture.Canvas=this.Canvas;drawPicture.Status=10;drawPicture.Frame=this.Frame.SubFrame[frameID].Frame;//绑定框架坐标
|
|
8573
8576
|
drawPicture.Symbol=this.Symbol;drawPicture.Period=this.Period;drawPicture.Right=this.Right;drawPicture.Option=this.ChartDrawOption;drawPicture.GetActiveDrawPicture=function(){return self.GetActiveDrawPicture();};if(drawPicture.SetOption)drawPicture.SetOption(data);this.RandomDrawPictureValue(drawPicture,data);drawPicture.PointToValue();if(drawPicture.ClassName==='ChartDrawPictureText')drawPicture.IsInitialized=true;this.ChartDrawPicture.push(drawPicture);//存盘
|
|
8574
8577
|
if(this.ChartDrawStorage)this.ChartDrawStorage.SaveDrawData(drawPicture);this.DrawDynamicInfo();return drawPicture;};//随机生成画图的点
|
|
8575
8578
|
this.RandomDrawPictureValue=function(chart,data){if(!IFrameSplitOperator.IsNonEmptyArray(data.Value))return;var kData=this.GetKLineChart();if(!kData||!kData.Data||!IFrameSplitOperator.IsNumber(kData.Data.DataOffset)||kData.Data.DataOffset<0)return null;if(!IFrameSplitOperator.IsNonEmptyArray(kData.Data.Data))return null;var aryKData=kData.Data.Data;var startIndex=kData.Data.DataOffset;var endIndex=kData.Data.DataOffset+kData.ChartFrame.XPointCount-1;if(endIndex>=aryKData.length)endIndex=aryKData.length-1;var frameHeight=chart.Frame.ChartBorder.GetHeight();var max=chart.Frame.HorizontalMax;var min=chart.Frame.HorizontalMin;var y=chart.Frame.ChartBorder.GetBottomEx()-frameHeight*data.YFristScale;var range={Max:5,Min:2};var xRandomOffset=Math.floor(Math.random()*(range.Max-range.Min+1))+range.Min;var xValue=data.Value[0].XIndex+xRandomOffset;var firstPoint=null;chart.Value=[];for(var i=0;i<data.Value.length;++i){var item=data.Value[i];chart.Value[i]={XValue:xValue+item.XOffset};chart.Point[i]={Y:y+item.YOffset,X:chart.Frame.GetXFromIndex(xValue+item.XOffset,false)};}};//xStep,yStep 移动的偏移量
|
|
@@ -8593,7 +8596,7 @@ if(!MARKET_SUFFIX_NAME.IsSHSZIndex(this.Symbol)&&!MARKET_SUFFIX_NAME.IsBIT(this.
|
|
|
8593
8596
|
for(var i=0;i<aryMenu.length;++i){var item=aryMenu[i];if(item.Name=="五彩K线"){if(this.ColorIndex){item.SubMenu.push({Name:JSPopMenu.SEPARATOR_LINE_NAME});item.SubMenu.push({Name:"删除五彩K线",Data:{ID:JSCHART_MENU_ID.CMD_DELETE_COLOR_INDEX_ID}});}}else if(item.Name=="专家系统"){if(this.TradeIndex){item.SubMenu.push({Name:JSPopMenu.SEPARATOR_LINE_NAME});item.SubMenu.push({Name:"删除专家系统",Data:{ID:JSCHART_MENU_ID.CMD_DELETE_TRADE_INDEX_ID}});}}else if(item.Name=="叠加品种"){for(var j=0;j<item.SubMenu.length;++j){if(item.SubMenu[j].Checked){item.SubMenu.push({Name:JSPopMenu.SEPARATOR_LINE_NAME});item.SubMenu.push({Name:"取消叠加",Data:{ID:JSCHART_MENU_ID.CMD_DELETE_ALL_OVERLAY_SYMBOL_ID}});break;}}}else if(item.Name=="信息地雷"){for(var j=0;j<item.SubMenu.length;++j){if(item.SubMenu[j].Checked){item.SubMenu.push({Name:JSPopMenu.SEPARATOR_LINE_NAME});item.SubMenu.push({Name:"删除所有",Data:{ID:JSCHART_MENU_ID.CMD_DELETE_ALL_KLINE_INFO_ID}});break;}}}else if(item.Name=="十字光标"){if(kItem){var bLocked=this.IsLockCorssCursor();if(bLocked)item.SubMenu.push({Name:"锁十字光标",Data:{ID:JSCHART_MENU_ID.CMD_UNLOCK_CROSSCURSOR},Checked:bLocked});else item.SubMenu.push({Name:"锁十字光标",Data:{ID:JSCHART_MENU_ID.CMD_LOCK_CROSSCURSOR,Args:[{KItem:{Date:kItem.Date,Time:kItem.Time},Draw:true}]},Checked:bLocked});}}}return aryMenu;};this.PopupSelectRectMenuV2=function(data,e){var _this32=this;var aryMenu=[{Name:"区间统计",Data:{ID:JSCHART_MENU_ID.CMD_SELECTED_SUMMARY_ID,Args:[e,data.SelectData]}},{Name:"区间放大",Data:{ID:JSCHART_MENU_ID.CMD_SELECTED_ZOOM_ID,Args:[data.SelectData]}}];var menuData={Menu:aryMenu,Position:JSPopMenu.POSITION_ID.RIGHT_MENU_ID};menuData.ClickCallback=function(data){_this32.OnClickRightMenu(data);};var x=data.X,y=data.Y;this.PopupMenuByRClick(menuData,x,y);};//重新加载画图工具(切换股票|周期)
|
|
8594
8597
|
this.ReloadChartDrawPicture=function(){this.ChartDrawPicture=[];if(this.SelectChartDrawPicture)this.SelectChartDrawPicture.IsSelected=false;this.SelectChartDrawPicture=null;this.CurrentChartDrawPicture=null;if(this.ChartDrawStorage){this.ChartDrawStorageCache=this.ChartDrawStorage.GetDrawData({Symbol:this.Symbol,Period:this.Period});var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_LOAD_DRAWPICTURE);if(event&&event.Callback){var sendData={Symbol:this.Symbol,Period:this.Period,DrawStorage:this.ChartDrawStorage,ChartDrawStorageCache:this.ChartDrawStorageCache};event.Callback(event,sendData,this);}}};this.CreateChartDrawPictureByStorage=function()//把缓存(this.ChartDrawStorageCache) 画图工具创建出来
|
|
8595
8598
|
{if(!IFrameSplitOperator.IsNonEmptyArray(this.ChartDrawStorageCache))return;for(var i=0;i<this.ChartDrawStorageCache.length;++i){var item=this.ChartDrawStorageCache[i];if(item.FrameID<0||!this.Frame.SubFrame||this.Frame.SubFrame.length<item.FrameID)continue;var drawPicture=IChartDrawPicture.CreateChartDrawPicture(item);if(!drawPicture)continue;drawPicture.Canvas=this.Canvas;drawPicture.Status=10;drawPicture.Frame=this.Frame.SubFrame[item.FrameID].Frame;//绑定框架坐标
|
|
8596
|
-
drawPicture.Option=this.ChartDrawOption;if(drawPicture.ImportStorageData)drawPicture.ImportStorageData(item);if(drawPicture.Period!=this.Period){drawPicture.ChangePeriod(this.Period);}else{drawPicture.UpdateXValue();}drawPicture.ValueToPoint();var self=this;drawPicture.GetActiveDrawPicture=function(){return self.GetActiveDrawPicture();};this.ChartDrawPicture.push(drawPicture);}this.ChartDrawStorageCache=null;//清空缓存
|
|
8599
|
+
drawPicture.Option=this.ChartDrawOption;drawPicture.HQChart=this;if(drawPicture.ImportStorageData)drawPicture.ImportStorageData(item);if(drawPicture.Period!=this.Period){drawPicture.ChangePeriod(this.Period);}else{drawPicture.UpdateXValue();}drawPicture.ValueToPoint();var self=this;drawPicture.GetActiveDrawPicture=function(){return self.GetActiveDrawPicture();};this.ChartDrawPicture.push(drawPicture);}this.ChartDrawStorageCache=null;//清空缓存
|
|
8597
8600
|
};//更新信息地雷
|
|
8598
8601
|
this.UpdataChartInfo=function(){//TODO: 根据K线数据日期来做map, 不在K线上的合并到下一个k线日期里面
|
|
8599
8602
|
var mapInfoData=null;if(this.Period==0)//日线数据 根据日期
|
|
@@ -9469,12 +9472,13 @@ this.UpdataChartInfo=function(){var chart=this.GetChartMinuteInfo();if(!chart)re
|
|
|
9469
9472
|
this.RecvWindowIndex=function(index,data){var indexItem=this.WindowIndex[index];if(!indexItem)return;if(typeof indexItem.RecvSubscribeData=="function"){var bindData=this.SourceData;indexItem.RecvSubscribeData(data,this,index,bindData);}};this.UpdateWindowIndex=function(index){if(index<2)return;var bindData=this.SourceData;this.BindIndexData(index,bindData);this.UpdataDataoffset();//更新数据偏移
|
|
9470
9473
|
this.UpdateFrameMaxMin();//调整坐标最大 最小值
|
|
9471
9474
|
this.Draw();};this.CreateChartDrawPicture=function(name,option,callback){var drawPicture=null;var item=IChartDrawPicture.GetDrawPictureByName(name);if(item){drawPicture=item.Create();}if(!drawPicture)//iconfont图标
|
|
9472
|
-
{if(IChartDrawPicture.MapIonFont.has(name)){var iconItem=IChartDrawPicture.MapIonFont.get(name);drawPicture=new ChartDrawPictureIconFont();drawPicture.FontOption.Family=iconItem.Family;drawPicture.Text=iconItem.Text;if(iconItem.Color)drawPicture.LineColor=iconItem.Color;}}if(!drawPicture)return false;drawPicture.Canvas=this.Canvas;drawPicture.Status=0;drawPicture.Symbol=this.Symbol;drawPicture.Period=888888888;drawPicture.Option=this.ChartDrawOption;if(callback)drawPicture.FinishedCallback=callback;//完成通知上层回调
|
|
9475
|
+
{if(IChartDrawPicture.MapIonFont.has(name)){var iconItem=IChartDrawPicture.MapIonFont.get(name);drawPicture=new ChartDrawPictureIconFont();drawPicture.FontOption.Family=iconItem.Family;drawPicture.Text=iconItem.Text;if(iconItem.Color)drawPicture.LineColor=iconItem.Color;}}if(!drawPicture)return false;drawPicture.Canvas=this.Canvas;drawPicture.Status=0;drawPicture.Symbol=this.Symbol;drawPicture.Period=888888888;drawPicture.Option=this.ChartDrawOption;drawPicture.HQChart=this;if(callback)drawPicture.FinishedCallback=callback;//完成通知上层回调
|
|
9473
9476
|
if(option)drawPicture.SetOption(option);var self=this;drawPicture.Update=function()//更新回调函数
|
|
9474
9477
|
{self.DrawDynamicInfo();};drawPicture.GetActiveDrawPicture=function(){return self.GetActiveDrawPicture();};this.CurrentChartDrawPicture=drawPicture;JSConsole.Chart.Log("[MinuteChartContainer::CreateChartDrawPicture] ",name,this.CurrentChartDrawPicture);return true;};//手动添加画线
|
|
9475
9478
|
this.AddChartDrawPicture=function(obj){if(!obj)return null;if(obj.FrameID<0||obj.FrameID>=this.Frame.SubFrame.length)return null;var self=this;var item=IChartDrawPicture.GetDrawPictureByClassName(obj.ClassName);if(!item)return null;var drawPicture=item.Create();drawPicture.Canvas=this.Canvas;drawPicture.Status=10;drawPicture.Frame=this.Frame.SubFrame[obj.FrameID].Frame;//绑定框架坐标
|
|
9476
|
-
drawPicture.Symbol=this.Symbol;drawPicture.Period=888888888;if(obj.Value)drawPicture.Value=obj.Value;if(obj.Guid)drawPicture.Guid=obj.Guid;if(
|
|
9477
|
-
|
|
9479
|
+
drawPicture.Symbol=this.Symbol;drawPicture.Period=888888888;drawPicture.HQChart=this;if(obj.Value)drawPicture.Value=obj.Value;if(obj.Guid)drawPicture.Guid=obj.Guid;if(obj.CacheData)drawPicture.CacheData=obj.CacheData;//缓存数据
|
|
9480
|
+
if(drawPicture.ImportStorageData)drawPicture.ImportStorageData(obj);drawPicture.SetOption(obj);if(obj.EnableUpdateXValue)drawPicture.UpdateXValue();drawPicture.ValueToPoint();drawPicture.GetActiveDrawPicture=function(){return self.GetActiveDrawPicture();};this.ChartDrawPicture.push(drawPicture);if(obj.Draw==true)this.DrawDynamicInfo();return drawPicture;};this.ReloadChartDrawPicture=function(){this.ChartDrawPicture=[];if(this.SelectChartDrawPicture)this.SelectChartDrawPicture.IsSelected=false;this.SelectChartDrawPicture=null;this.CurrentChartDrawPicture=null;this.MoveOnChartDrawPicture=null;if(this.ChartDrawStorage){this.ChartDrawStorageCache=this.ChartDrawStorage.GetDrawData({Symbol:this.Symbol,Period:888888888});}};this.CreateChartDrawPictureByStorage=function()//把缓存(this.ChartDrawStorageCache) 画图工具创建出来
|
|
9481
|
+
{var _this43=this;if(!this.ChartDrawStorageCache||this.ChartDrawStorageCache.length<=0)return;var kData=this.GetKData();for(var i=0;i<this.ChartDrawStorageCache.length;++i){var item=this.ChartDrawStorageCache[i];if(item.FrameID<0||!this.Frame.SubFrame||this.Frame.SubFrame.length<item.FrameID)continue;var drawPicture=IChartDrawPicture.CreateChartDrawPicture(item);if(!drawPicture)continue;drawPicture.Canvas=this.Canvas;drawPicture.Status=10;drawPicture.HQChart=this;drawPicture.Frame=this.Frame.SubFrame[item.FrameID].Frame;//绑定框架坐标
|
|
9478
9482
|
if(drawPicture.ImportStorageData)drawPicture.ImportStorageData(item);drawPicture.ResetXValue();drawPicture.UpdateXValue();drawPicture.ValueToPoint();drawPicture.GetActiveDrawPicture=function(){return _this43.GetActiveDrawPicture();};this.ChartDrawPicture.push(drawPicture);}this.ChartDrawStorageCache=null;//清空缓存
|
|
9479
9483
|
};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;//根据X坐标获取数据索引
|
|
9480
9484
|
this.GetDataIndexByPoint=function(x){var frame=this.Frame;if(this.Frame.SubFrame&&this.Frame.SubFrame.length>0)frame=this.Frame.SubFrame[0].Frame;if(!frame)return;var value=frame.GetXData(x);var index=parseInt(value.toFixed(0));return index;};//不支持未来时间 目前只支持主图
|
|
@@ -15517,7 +15521,27 @@ btnRestore.innerText="恢复默认";btnRestore.addEventListener("mousedown",func
|
|
|
15517
15521
|
*/var btnOk=document.createElement("button");//btnOk.className="UMyChart_ModifyIndexParam_button";
|
|
15518
15522
|
btnOk.innerText="关闭";btnOk.addEventListener("mousedown",function(e){_this112.Close(e);});divButton.appendChild(btnOk);document.body.appendChild(divDom);this.DivName=divName;this.DivDialog=divDom;this.TitleBox={DivTitle:divTitle,DivName:divName,DivColor:divClose};this.UpdateStyle();};this.CreateRowDOM=function(index,tbody){var _this113=this;var rowItem={Tr:null,TdName:null,SpanName:null,TdValue:null,Input:null,ParamItem:null};var trDom=document.createElement("tr");trDom.className='UMyChart_ModifyIndexParam_Tr';tbody.appendChild(trDom);rowItem.Tr=trDom;var tdDom=document.createElement("td");tdDom.className="UMyChart_ModifyIndexParam_Name_Td";//指标名称
|
|
15519
15523
|
trDom.appendChild(tdDom);rowItem.TdName=tdDom;var spanDom=document.createElement("span");spanDom.className='UMyChart_ModifyIndexParam_Name_Span';spanDom.innerText='参数';tdDom.appendChild(spanDom);rowItem.SpanName=spanDom;var tdDom=document.createElement("td");tdDom.className="UMyChart_ModifyIndexParam_Value_Td";//指标名称
|
|
15520
|
-
trDom.appendChild(tdDom);rowItem.TdValue=tdDom;var input=document.createElement("input");input.className='UMyChart_ModifyIndexParam_Input';input.type="number";input.step=1
|
|
15524
|
+
trDom.appendChild(tdDom);rowItem.TdValue=tdDom;var input=document.createElement("input");input.className='UMyChart_ModifyIndexParam_Input';input.type="number";input.step=1;//input.addEventListener("mouseup", (e)=>{ this.OnParamMouseUp(e)});
|
|
15525
|
+
//input.addEventListener("keyup", (e)=>{ this.OnParamKeyUp(e)} );
|
|
15526
|
+
input.addEventListener("input",function(e){_this113.OnParamInput(e);});tdDom.appendChild(input);rowItem.Input=input;return rowItem;};this.UpdateStyle=function(){};this.UpdateParamTable=function(aryText){var index=0;for(index=0;index<aryText.length&&index<this.AryData.length;++index){var item=aryText[index];var row=this.AryData[index];row.SpanName.innerText=item.Name+': ';row.Input.value=item.Value;row.Input.dataset.paramid=item.Index;if(row.Tr.style.display=="none")row.Tr.style.display="";}for(;index<this.AryData.length;++index){var row=this.AryData[index];row.Tr.style.display="none";row.Input.dataset.paramid=-1;}};this.UpdateParam=function(){var aryText=[];var indexScript=this.IndexData.IndexScript;if(indexScript&&IFrameSplitOperator.IsNonEmptyArray(indexScript.Arguments)){for(var i=0;i<indexScript.Arguments.length;++i){var item=indexScript.Arguments[i];aryText.push({Name:item.Name,Value:item.Value,Index:i});}}this.UpdateParamTable(aryText);};this.RestoreParam=function(){if(!this.IndexData||!this.IndexData.IndexScript)return;var indexScript=this.IndexData.IndexScript;if(!IFrameSplitOperator.IsNonEmptyArray(indexScript.Arguments))return;if(!IFrameSplitOperator.IsNonEmptyArray(this.Arguments))return;var bUpdate=false;for(var i=0;i<this.Arguments.length;++i){var oldItem=this.Arguments[i];var item=indexScript.Arguments[i];if(oldItem.Value!=item.Value){item.Value=oldItem.Value;bUpdate=true;}}if(!bUpdate)return;if(this.IndexData.Type==1)this.HQChart.UpdateWindowIndex(this.IndexData.WindowIndex);else if(this.IndexData.Type==2)this.HQChart.UpdateOverlayIndex(this.IndexData.Identify);};this.BackupParam=function(){this.Arguments=[];if(!this.IndexData||!this.IndexData.IndexScript)return;var indexScript=this.IndexData.IndexScript;if(IFrameSplitOperator.IsNonEmptyArray(indexScript.Arguments)){for(var i=0;i<indexScript.Arguments.length;++i){var item=indexScript.Arguments[i];this.Arguments.push({Name:item.Name,Value:item.Value,Index:i});}}};this.GetDefaultParam=function(){this.Arguments=[];if(!this.IndexData||!this.IndexData.IndexScript)return;var indexScript=this.IndexData.IndexScript;var args=[];if(indexScript.ID){var scriptData=new JSIndexScript();var indexInfo=scriptData.Get(indexScript.ID);if(indexInfo)args=indexInfo.Args;}var event=this.HQChart.GetEventCallback(JSCHART_EVENT_ID.GET_DEFAULT_INDEX_PARAM);if(event&&event.Callback){var sendData={IndexData:this.IndexData,Args:args.slice(),PreventDefault:false};event.Callback(event,sendData,this);if(sendData.PreventDefault)return;args=sendData.Args;}if(IFrameSplitOperator.IsNonEmptyArray(args)){for(var i=0;i<args.length;++i){var item=args[i];this.Arguments.push({Name:item.Name,Value:item.Value,Index:i});}}};/*
|
|
15527
|
+
this.OnParamMouseUp=function(e)
|
|
15528
|
+
{
|
|
15529
|
+
var input=e.target;
|
|
15530
|
+
var value=input.value;
|
|
15531
|
+
var id=input.dataset.paramid;
|
|
15532
|
+
|
|
15533
|
+
this.ModifyParam(id, parseInt(value));
|
|
15534
|
+
}
|
|
15535
|
+
|
|
15536
|
+
this.OnParamKeyUp=function(e)
|
|
15537
|
+
{
|
|
15538
|
+
var input=e.target;
|
|
15539
|
+
var value=input.value;
|
|
15540
|
+
var id=input.dataset.paramid;
|
|
15541
|
+
|
|
15542
|
+
this.ModifyParam(id, parseInt(value));
|
|
15543
|
+
}
|
|
15544
|
+
*/this.OnParamInput=function(e){var input=e.target;var value=input.value;var id=input.dataset.paramid;this.ModifyParam(id,parseInt(value));};this.ModifyParam=function(id,value){if(!this.IndexData||!this.IndexData.IndexScript)return;var indexScript=this.IndexData.IndexScript;var item=indexScript.Arguments[id];if(!item)return;if(item.Value==value)return;item.Value=value;if(this.IndexData.Type==1){this.HQChart.UpdateWindowIndex(this.IndexData.WindowIndex);}else if(this.IndexData.Type==2){this.HQChart.UpdateOverlayIndex(this.IndexData.Identify);}};}/////////////////////////////////////////////////////////////////////////////////////////////
|
|
15521
15545
|
//测试指标
|
|
15522
15546
|
var TEST_INDEX_4AE0_1='\u80FD\u91CF:=SQRT(VOL)*(((C-(H+L)/2))/((H+L)/2));\n\u5E73\u6ED1\u80FD\u91CF:=EMA(\u80FD\u91CF,16);\n\u80FD\u91CF\u60EF\u6027:EMA(\u5E73\u6ED1\u80FD\u91CF,16);\nDRAWICON(\u80FD\u91CF\u60EF\u6027>0 AND REF(\u80FD\u91CF\u60EF\u6027,1)<0,0,1);\nSTICKLINE(\u80FD\u91CF\u60EF\u6027>=0,(\u80FD\u91CF\u60EF\u6027-\u80FD\u91CF\u60EF\u6027*0.05),(\u80FD\u91CF\u60EF\u6027-\u80FD\u91CF\u60EF\u6027*0.15),3,0), COLOR0000CC;\nSTICKLINE(\u80FD\u91CF\u60EF\u6027>=0,(\u80FD\u91CF\u60EF\u6027-\u80FD\u91CF\u60EF\u6027*0.2),(\u80FD\u91CF\u60EF\u6027-\u80FD\u91CF\u60EF\u6027*0.35),3,0), COLOR0066FF;\nSTICKLINE(\u80FD\u91CF\u60EF\u6027>=0,(\u80FD\u91CF\u60EF\u6027-\u80FD\u91CF\u60EF\u6027*0.4),(\u80FD\u91CF\u60EF\u6027-\u80FD\u91CF\u60EF\u6027*0.55),3,0),COLOR0099FF;\nSTICKLINE(\u80FD\u91CF\u60EF\u6027>=0,(\u80FD\u91CF\u60EF\u6027-\u80FD\u91CF\u60EF\u6027*0.6),(\u80FD\u91CF\u60EF\u6027-\u80FD\u91CF\u60EF\u6027*0.75),3,0), COLOR00CCFF;\nSTICKLINE(\u80FD\u91CF\u60EF\u6027>=0,(\u80FD\u91CF\u60EF\u6027-\u80FD\u91CF\u60EF\u6027*0.8),(\u80FD\u91CF\u60EF\u6027-\u80FD\u91CF\u60EF\u6027*0.95),3,0), COLOR00FFFF;\nSTICKLINE(\u80FD\u91CF\u60EF\u6027<0,(\u80FD\u91CF\u60EF\u6027-\u80FD\u91CF\u60EF\u6027*0.05),(\u80FD\u91CF\u60EF\u6027-\u80FD\u91CF\u60EF\u6027*0.15),3,0), COLORFF3300;\nSTICKLINE(\u80FD\u91CF\u60EF\u6027<0,(\u80FD\u91CF\u60EF\u6027-\u80FD\u91CF\u60EF\u6027*0.2),(\u80FD\u91CF\u60EF\u6027-\u80FD\u91CF\u60EF\u6027*0.35),3,0), COLORFF6600;\nSTICKLINE(\u80FD\u91CF\u60EF\u6027<0,(\u80FD\u91CF\u60EF\u6027-\u80FD\u91CF\u60EF\u6027*0.4),(\u80FD\u91CF\u60EF\u6027-\u80FD\u91CF\u60EF\u6027*0.55),3,0), COLORFF9900;\nSTICKLINE(\u80FD\u91CF\u60EF\u6027<0,(\u80FD\u91CF\u60EF\u6027-\u80FD\u91CF\u60EF\u6027*0.6),(\u80FD\u91CF\u60EF\u6027-\u80FD\u91CF\u60EF\u6027*0.75),3,0), COLORFFCC00;\nSTICKLINE(\u80FD\u91CF\u60EF\u6027<0,(\u80FD\u91CF\u60EF\u6027-\u80FD\u91CF\u60EF\u6027*0.8),(\u80FD\u91CF\u60EF\u6027-\u80FD\u91CF\u60EF\u6027*0.95),3,0), COLORFFFF00;';var TEST_INDEX_4AE0_2='\nMA3:MA(CLOSE,3),COLORWHITE;\nMA17:MA(CLOSE,17),COLORYELLOW;\nQQ:=0,COLORWHITE;\nMA1:=MA(CLOSE,3);\nMA2:=MA(CLOSE,17);\nJG:=CROSS(MA1,MA2);\nVOLUME:=VOL,VOLSTICK;\nMAVOL1:=MA(VOLUME,3);\nMAVOL2:=MA(VOLUME,17);\nNL:=CROSS(MAVOL1,MAVOL2);\nDIF:=EMA(CLOSE,12)-EMA(CLOSE,26);\nDEA:=EMA(DIF,9);\nMACD:=(DIF-DEA)*2,COLORSTICK;\nNA:=CROSS(DIF,DEA);\nRSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;\nK:=SMA(RSV,9,1);\nD:=SMA(K,9,1);\nJ:=3*K-2*D;\nKD:=CROSS(K,D) AND CROSS(J,D);\n\u98DE\u9F99\u516B\u7EA7\u8FDB:DRAWTEXT((JG AND NL AND NA) OR (JG AND NL AND KD) OR\n(JG AND NA AND KD) OR (NL AND NA AND KD),L*0.95,\' \u98DE\u9F99\u516B\u7EA7\u8FDB\'),COLORYELLOW;\nX:=LLV(J,2)=LLV(J,8);\nY:=IF(CROSS(J,REF(J+0.01,1)) AND X AND J<20,30,0);\nDRAWTEXT(CROSS(J,REF(J+0.01,1)) AND X AND J<20,LOW*0.98,\'\'),COLORLIMAGENTA;\n\u7A7A:=EMA(C,5);\n\u5747\u8861:=EMA(\u7A7A,5),COLORWHITE;\n\u4E2D\u8F68:=HHV(MA(H,13),13),COLORRED,LINETHICK2;\nVAR5:=FILTER(\u5747\u8861>REF(\u5747\u8861,1)AND \u4E2D\u8F68<REF(\u4E2D\u8F68,1)AND C>REF(C,1),11);\nDRAWTEXT(VAR5,L*0.98,\'\'),COLORYELLOW;\nPT:=XMA(H,20);\nPAN:=XMA(CLOSE,7),COLORBROWN;\nRUO:=MEMA(CLOSE,3),COLORLIBLUE;\nSTICKLINE(CLOSE> REF(CLOSE,1) ,HIGH,LOW,0,1 ),COLORRED;\nSTICKLINE(CLOSE> REF(CLOSE,1) ,OPEN,CLOSE,3,0 ),COLOR000055;\nSTICKLINE(CLOSE> REF(CLOSE,1) ,OPEN,CLOSE,2.7,0 ),COLOR000077;\nSTICKLINE(CLOSE> REF(CLOSE,1) ,OPEN,CLOSE,2.1,0 ),COLOR000099;\nSTICKLINE(CLOSE> REF(CLOSE,1) ,OPEN,CLOSE,1.5,0 ),COLOR0000BB;\nSTICKLINE(CLOSE> REF(CLOSE,1) ,OPEN,CLOSE,0.9,0 ),COLOR0000DD;\nSTICKLINE(CLOSE> REF(CLOSE,1) ,OPEN,CLOSE,0.3,0 ),COLOR0000FF;\nSTICKLINE(CLOSE= REF(CLOSE,1) ,HIGH,LOW,0,1 ),COLORWHITE;\nSTICKLINE(CLOSE= REF(CLOSE,1) ,OPEN,CLOSE,3,0 ),COLOR555555;\nSTICKLINE(CLOSE= REF(CLOSE,1) ,OPEN,CLOSE,2.7,0 ),COLOR777777;\nSTICKLINE(CLOSE= REF(CLOSE,1) ,OPEN,CLOSE,2.1,0 ),COLOR999999;\nSTICKLINE(CLOSE= REF(CLOSE,1) ,OPEN,CLOSE,1.5,0 ),COLORBBBBBB;\nSTICKLINE(CLOSE= REF(CLOSE,1) ,OPEN,CLOSE,0.9,0 ),COLORDDDDDD;\nSTICKLINE(CLOSE= REF(CLOSE,1) ,OPEN,CLOSE,0.3,0 ),COLORFFFFFF;\nSTICKLINE(CLOSE< REF(CLOSE,1) ,HIGH,LOW,0,1 ),COLORCYAN;\nSTICKLINE(CLOSE< REF(CLOSE,1) ,OPEN,CLOSE,3,0 ),COLOR990000;\nSTICKLINE(CLOSE< REF(CLOSE,1) ,OPEN,CLOSE,2.7,0 ),COLORCC0000;\nSTICKLINE(CLOSE< REF(CLOSE,1) ,OPEN,CLOSE,2.1,0 ),COLORFF4400;\nSTICKLINE(CLOSE< REF(CLOSE,1) ,OPEN,CLOSE,1.5,0 ),COLORFF8800;\nSTICKLINE(CLOSE< REF(CLOSE,1) ,OPEN,CLOSE,0.9,0 ),COLORFFCC00;\nSTICKLINE(CLOSE< REF(CLOSE,1) ,OPEN,CLOSE,0.3,0 ),COLORCYAN;\n\u9AD8:=REF(HHV(H,80),3);\n\u4F4E:=REF(LLV(L,80),3);\nH19:=\u9AD8-(\u9AD8-\u4F4E)*0.191;\nH38:=\u9AD8-(\u9AD8-\u4F4E)*0.382;\nH\u4E2D:=\u9AD8-(\u9AD8-\u4F4E)*0.5;\nH61:=\u9AD8-(\u9AD8-\u4F4E)*0.618;\nH80:=\u9AD8-(\u9AD8-\u4F4E)*0.809;\n\u9876\u70B9:REFDATE(\u9AD8,DATE),COLORWHITE;\nREFDATE(H19,DATE),COLORYELLOW;\nREFDATE(H38,DATE),COLORMAGENTA;\nREFDATE(H\u4E2D,DATE),COLORRED;\nREFDATE(H61,DATE),COLORMAGENTA;\nREFDATE(H80,DATE),COLORYELLOW;\n\u4F4E\u70B9:REFDATE(\u4F4E,DATE),COLORWHITE;\nDRAWTEXT(ISLASTBAR,\u4F4E\u70B9,\'\'),COLORWHITE;\n';//添加测试系统指标
|
|
15523
15547
|
function AddTestSystemIndex(){var aryIndex=[];aryIndex.push({ID:"TEST_INDEX_4AE0_1",Name:'波段量能跟庄-波段量能',Script:TEST_INDEX_4AE0_1,Args:null});aryIndex.push({ID:"TEST_INDEX_4AE0_2",//指标ID
|
|
@@ -15537,7 +15561,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
|
|
|
15537
15561
|
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);};}/********************************************************************************
|
|
15538
15562
|
* 版本信息输出
|
|
15539
15563
|
*
|
|
15540
|
-
*/var HQCHART_VERSION="1.1.
|
|
15564
|
+
*/var HQCHART_VERSION="1.1.15153";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();//把给外界调用的方法暴露出来
|
|
15541
15565
|
exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
|
|
15542
15566
|
// BaseIndex:BaseIndex,
|
|
15543
15567
|
// ChartLine:ChartLine,
|
package/package.json
CHANGED
|
@@ -1097,8 +1097,9 @@ function JSDialogModifyIndexParam()
|
|
|
1097
1097
|
input.className='UMyChart_ModifyIndexParam_Input';
|
|
1098
1098
|
input.type="number";
|
|
1099
1099
|
input.step=1;
|
|
1100
|
-
input.addEventListener("mouseup", (e)=>{ this.OnParamMouseUp(e)});
|
|
1101
|
-
input.addEventListener("keyup", (e)=>{ this.OnParamKeyUp(e)})
|
|
1100
|
+
//input.addEventListener("mouseup", (e)=>{ this.OnParamMouseUp(e)});
|
|
1101
|
+
//input.addEventListener("keyup", (e)=>{ this.OnParamKeyUp(e)} );
|
|
1102
|
+
input.addEventListener("input", (e)=>{ this.OnParamInput(e)} );
|
|
1102
1103
|
tdDom.appendChild(input);
|
|
1103
1104
|
rowItem.Input=input;
|
|
1104
1105
|
|
|
@@ -1227,6 +1228,7 @@ function JSDialogModifyIndexParam()
|
|
|
1227
1228
|
}
|
|
1228
1229
|
}
|
|
1229
1230
|
|
|
1231
|
+
/*
|
|
1230
1232
|
this.OnParamMouseUp=function(e)
|
|
1231
1233
|
{
|
|
1232
1234
|
var input=e.target;
|
|
@@ -1244,6 +1246,16 @@ function JSDialogModifyIndexParam()
|
|
|
1244
1246
|
|
|
1245
1247
|
this.ModifyParam(id, parseInt(value));
|
|
1246
1248
|
}
|
|
1249
|
+
*/
|
|
1250
|
+
|
|
1251
|
+
this.OnParamInput=function(e)
|
|
1252
|
+
{
|
|
1253
|
+
var input=e.target;
|
|
1254
|
+
var value=input.value;
|
|
1255
|
+
var id=input.dataset.paramid;
|
|
1256
|
+
|
|
1257
|
+
this.ModifyParam(id, parseInt(value));
|
|
1258
|
+
}
|
|
1247
1259
|
|
|
1248
1260
|
this.ModifyParam=function(id, value)
|
|
1249
1261
|
{
|
package/src/jscommon/umychart.js
CHANGED
|
@@ -2907,6 +2907,8 @@ var JSCHART_EVENT_ID=
|
|
|
2907
2907
|
ON_FORMAT_COUNTDOWN_TEXT:177, //倒计时
|
|
2908
2908
|
ON_CLICK_INDEX_LOCK:178, //点击指标锁
|
|
2909
2909
|
ON_CORSSCURSOR_STATUS_CHANGE:179, //十字光标状态改变
|
|
2910
|
+
|
|
2911
|
+
ON_FORMAT_DRAW_HLINE_LABEL:180, //画图工具-水平线(ChartDrawPictureHorizontalLine)格式化标签文字
|
|
2910
2912
|
}
|
|
2911
2913
|
|
|
2912
2914
|
var JSCHART_OPERATOR_ID=
|
|
@@ -6446,6 +6448,11 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
6446
6448
|
chartItem.Canvas=canvas; //叠加图形
|
|
6447
6449
|
}
|
|
6448
6450
|
}
|
|
6451
|
+
|
|
6452
|
+
if (item.Frame.LockPaint)
|
|
6453
|
+
{
|
|
6454
|
+
item.Frame.LockPaint.Canvas=canvas;
|
|
6455
|
+
}
|
|
6449
6456
|
}
|
|
6450
6457
|
}
|
|
6451
6458
|
|
|
@@ -64571,7 +64578,7 @@ function IChartDrawPicture()
|
|
|
64571
64578
|
this.PointType=g_JSChartResource.DrawPicture.PointType; // 0=圆点 1=方框 2= 空心圆
|
|
64572
64579
|
this.IsShowPoint=g_JSChartResource.DrawPicture.IsShowPoint; //是否始终显示点
|
|
64573
64580
|
this.LimitFrameID; //限制在指定窗口绘图
|
|
64574
|
-
|
|
64581
|
+
this.CacheData; //数据缓存
|
|
64575
64582
|
|
|
64576
64583
|
//接口函数
|
|
64577
64584
|
this.SetLastPoint=null; //this.SetLastPoint=function(obj) obj={X:,Y:}
|
|
@@ -64599,6 +64606,9 @@ function IChartDrawPicture()
|
|
|
64599
64606
|
if (IFrameSplitOperator.IsNumber(option.LimitFrameID)) this.LimitFrameID=option.LimitFrameID;
|
|
64600
64607
|
if (IFrameSplitOperator.IsBool(option.EnableCtrlMove)) this.EnableCtrlMove=option.EnableCtrlMove;
|
|
64601
64608
|
if (IFrameSplitOperator.IsBool(option.IsShowYCoordinate)) this.IsShowYCoordinate=option.IsShowYCoordinate;
|
|
64609
|
+
if (IFrameSplitOperator.IsBool(option.EnableSave)) this.EnableSave=option.EnableSave;
|
|
64610
|
+
if (IFrameSplitOperator.IsBool(option.EnableMove)) this.EnableMove=option.EnableMove;
|
|
64611
|
+
|
|
64602
64612
|
}
|
|
64603
64613
|
|
|
64604
64614
|
this.ReloadResource=function(resource)
|
|
@@ -66261,7 +66271,7 @@ IChartDrawPicture.CreateChartDrawPicture=function(obj) //创建画图工具
|
|
|
66261
66271
|
if (obj.FontOption) chartDraw.FontOption=obj.FontOption;
|
|
66262
66272
|
if (obj.Label) chartDraw.Label=obj.Label;
|
|
66263
66273
|
if (obj.LineWidth>0) chartDraw.LineWidth=obj.LineWidth;
|
|
66264
|
-
if (obj.EnableMove
|
|
66274
|
+
if (IFrameSplitOperator.IsBool(obj.EnableMove)) chartDraw.EnableMove=obj.EnableMove;
|
|
66265
66275
|
if (IFrameSplitOperator.IsBool(obj.EnableSave)) chartDraw.EnableSave=obj.EnableSave;
|
|
66266
66276
|
if (IFrameSplitOperator.IsNumber(obj.ChannelWidth)) chartDraw.ChannelWidth=obj.ChannelWidth;
|
|
66267
66277
|
if (IFrameSplitOperator.IsBool(obj.IsShowYCoordinate)) chartDraw.IsShowYCoordinate=obj.IsShowYCoordinate;
|
|
@@ -66923,9 +66933,9 @@ function ChartDrawPictureHorizontalLine()
|
|
|
66923
66933
|
|
|
66924
66934
|
this.LabelConfig=
|
|
66925
66935
|
{
|
|
66926
|
-
Left:{ IsShow:true, Margin:{ Left:5, Top:4, Bottom:2, Right:5 } },
|
|
66927
|
-
Right:{ IsShow:true, Margin:{ Left:5, Top:4, Bottom:2, Right:5 } },
|
|
66928
|
-
Font:`${12*GetDevicePixelRatio()}px 微软雅黑`, TextColor:"rgb(255,255,255)", BGColor:null
|
|
66936
|
+
Left:{ IsShow:true, Margin:{ Left:5, Top:4, Bottom:2, Right:5 }, LineOffset:null, Text:null },
|
|
66937
|
+
Right:{ IsShow:true, Margin:{ Left:5, Top:4, Bottom:2, Right:5 }, LineOffset:null, Text:null },
|
|
66938
|
+
Font:`${12*GetDevicePixelRatio()}px 微软雅黑`, TextColor:"rgb(255,255,255)", BGColor:null,
|
|
66929
66939
|
};
|
|
66930
66940
|
|
|
66931
66941
|
this.InsideLabelConfig=
|
|
@@ -67024,6 +67034,9 @@ function ChartDrawPictureHorizontalLine()
|
|
|
67024
67034
|
left=this.Frame.ChartBorder.GetTop();
|
|
67025
67035
|
right=this.Frame.ChartBorder.GetBottom();
|
|
67026
67036
|
}
|
|
67037
|
+
|
|
67038
|
+
|
|
67039
|
+
|
|
67027
67040
|
this.ClipFrame();
|
|
67028
67041
|
|
|
67029
67042
|
this.Canvas.strokeStyle=this.LineColor;
|
|
@@ -67063,6 +67076,8 @@ function ChartDrawPictureHorizontalLine()
|
|
|
67063
67076
|
//画点
|
|
67064
67077
|
this.DrawPoint(drawPoint);
|
|
67065
67078
|
|
|
67079
|
+
this.FormatLabelTextEvent(drawPoint);
|
|
67080
|
+
|
|
67066
67081
|
//显示价格
|
|
67067
67082
|
this.DrawInsideLabel(drawPoint[0])
|
|
67068
67083
|
|
|
@@ -67070,6 +67085,16 @@ function ChartDrawPictureHorizontalLine()
|
|
|
67070
67085
|
|
|
67071
67086
|
this.DrawValueLabel(drawPoint[0]);
|
|
67072
67087
|
}
|
|
67088
|
+
|
|
67089
|
+
this.FormatLabelTextEvent=function(point)
|
|
67090
|
+
{
|
|
67091
|
+
if (!this.HQChart) return;
|
|
67092
|
+
var event=this.HQChart.GetEventCallback(JSCHART_EVENT_ID.ON_FORMAT_DRAW_HLINE_LABEL);
|
|
67093
|
+
if (!event || !event.Callback) return;
|
|
67094
|
+
|
|
67095
|
+
var sendData={ ID:this.Guid, LabelConfig:this.LabelConfig, InsideLabelConfig:this.InsideLabelConfig };
|
|
67096
|
+
event.Callback(event, sendData, this);
|
|
67097
|
+
}
|
|
67073
67098
|
|
|
67074
67099
|
this.DrawValueLabel=function(point)
|
|
67075
67100
|
{
|
|
@@ -67077,6 +67102,8 @@ function ChartDrawPictureHorizontalLine()
|
|
|
67077
67102
|
if (this.Frame.IsHScreen) return; //不支持横屏
|
|
67078
67103
|
|
|
67079
67104
|
var y=point.Y;
|
|
67105
|
+
var yFixed=ToFixedPoint2(this.LineWidth,y);
|
|
67106
|
+
|
|
67080
67107
|
var yValue=this.Frame.GetYData(y);
|
|
67081
67108
|
var text=yValue.toFixed(2);
|
|
67082
67109
|
|
|
@@ -67085,12 +67112,27 @@ function ChartDrawPictureHorizontalLine()
|
|
|
67085
67112
|
|
|
67086
67113
|
this.Canvas.font=config.Font;
|
|
67087
67114
|
var textHeight=this.Canvas.measureText("擎").width;
|
|
67088
|
-
var textWidth=this.Canvas.measureText(text).width;
|
|
67089
67115
|
|
|
67090
67116
|
if (config.Left.IsShow && this.Frame.ChartBorder.Left>5)
|
|
67091
67117
|
{
|
|
67118
|
+
var leftText=text;
|
|
67119
|
+
if (config.Left.Text) leftText=config.Left.Text;
|
|
67120
|
+
var textWidth=this.Canvas.measureText(leftText).width;
|
|
67121
|
+
var left=border.Left;
|
|
67122
|
+
if (IFrameSplitOperator.IsNumber(config.Left.LineOffset)&& config.Left.LineOffset!==0)
|
|
67123
|
+
{
|
|
67124
|
+
left-=config.Left.LineOffset;
|
|
67125
|
+
this.Canvas.strokeStyle=this.LineColor;
|
|
67126
|
+
this.SetLineWidth();
|
|
67127
|
+
this.Canvas.beginPath();
|
|
67128
|
+
this.Canvas.moveTo(border.Left,yFixed);
|
|
67129
|
+
this.Canvas.lineTo(left,yFixed);
|
|
67130
|
+
this.Canvas.stroke();
|
|
67131
|
+
this.RestoreLineWidth();
|
|
67132
|
+
}
|
|
67133
|
+
|
|
67092
67134
|
var margin=config.Left.Margin;
|
|
67093
|
-
var rtBG={ Right:
|
|
67135
|
+
var rtBG={ Right:left+1, Height:textHeight+margin.Top+margin.Bottom, Width:textWidth+margin.Left+margin.Right };
|
|
67094
67136
|
rtBG.Top=y-textHeight/2-margin.Top;
|
|
67095
67137
|
rtBG.Bottom=rtBG.Top+rtBG.Height;
|
|
67096
67138
|
rtBG.Left=rtBG.Right-rtBG.Width;
|
|
@@ -67104,13 +67146,30 @@ function ChartDrawPictureHorizontalLine()
|
|
|
67104
67146
|
var xText=rtBG.Left+margin.Left;
|
|
67105
67147
|
var yText=rtBG.Top+margin.Top;
|
|
67106
67148
|
this.Canvas.fillStyle=config.TextColor;
|
|
67107
|
-
this.Canvas.fillText(
|
|
67149
|
+
this.Canvas.fillText(leftText,xText,yText);
|
|
67108
67150
|
}
|
|
67109
67151
|
|
|
67110
67152
|
if (config.Right.IsShow && this.Frame.ChartBorder.Right>5)
|
|
67111
67153
|
{
|
|
67154
|
+
var rightText=text;
|
|
67155
|
+
if (config.Right.Text) rightText=config.Right.Text;
|
|
67156
|
+
var textWidth=this.Canvas.measureText(rightText).width;
|
|
67157
|
+
|
|
67158
|
+
var left=border.Right;
|
|
67159
|
+
if (IFrameSplitOperator.IsNumber(config.Right.LineOffset)&& config.Right.LineOffset!==0)
|
|
67160
|
+
{
|
|
67161
|
+
left+=config.Right.LineOffset;
|
|
67162
|
+
this.Canvas.strokeStyle=this.LineColor;
|
|
67163
|
+
this.SetLineWidth();
|
|
67164
|
+
this.Canvas.beginPath();
|
|
67165
|
+
this.Canvas.moveTo(border.Right,yFixed);
|
|
67166
|
+
this.Canvas.lineTo(left,yFixed);
|
|
67167
|
+
this.Canvas.stroke();
|
|
67168
|
+
this.RestoreLineWidth();
|
|
67169
|
+
}
|
|
67170
|
+
|
|
67112
67171
|
var margin=config.Right.Margin;
|
|
67113
|
-
var rtBG={ Left:
|
|
67172
|
+
var rtBG={ Left:left-1, Height:textHeight+margin.Top+margin.Bottom, Width:textWidth+margin.Left+margin.Right };
|
|
67114
67173
|
rtBG.Top=y-textHeight/2-margin.Top;
|
|
67115
67174
|
rtBG.Bottom=rtBG.Top+rtBG.Height;
|
|
67116
67175
|
rtBG.Right=rtBG.Left+rtBG.Width;
|
|
@@ -67124,7 +67183,7 @@ function ChartDrawPictureHorizontalLine()
|
|
|
67124
67183
|
var xText=rtBG.Left+margin.Left;
|
|
67125
67184
|
var yText=rtBG.Top+margin.Top;
|
|
67126
67185
|
this.Canvas.fillStyle=config.TextColor;
|
|
67127
|
-
this.Canvas.fillText(
|
|
67186
|
+
this.Canvas.fillText(rightText,xText,yText);
|
|
67128
67187
|
}
|
|
67129
67188
|
}
|
|
67130
67189
|
|
|
@@ -87448,7 +87507,6 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
87448
87507
|
if (item)
|
|
87449
87508
|
{
|
|
87450
87509
|
drawPicture=item.Create();
|
|
87451
|
-
drawPicture.HQChart=this;
|
|
87452
87510
|
}
|
|
87453
87511
|
|
|
87454
87512
|
if (!drawPicture) //iconfont图标
|
|
@@ -87471,6 +87529,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
87471
87529
|
drawPicture.Period=this.Period;
|
|
87472
87530
|
drawPicture.Right=this.Right;
|
|
87473
87531
|
drawPicture.Option=this.ChartDrawOption;
|
|
87532
|
+
drawPicture.HQChart=this;
|
|
87474
87533
|
|
|
87475
87534
|
if (callback) drawPicture.FinishedCallback=callback; //完成通知上层回调
|
|
87476
87535
|
if (option) drawPicture.SetOption(option);
|
|
@@ -87501,8 +87560,10 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
87501
87560
|
drawPicture.Period=this.Period;
|
|
87502
87561
|
drawPicture.Right=this.Right;
|
|
87503
87562
|
drawPicture.Option=this.ChartDrawOption;
|
|
87563
|
+
drawPicture.HQChart=this;
|
|
87504
87564
|
if (obj.Value) drawPicture.Value=obj.Value;
|
|
87505
87565
|
if (obj.Guid) drawPicture.Guid=obj.Guid;
|
|
87566
|
+
if (obj.CacheData) drawPicture.CacheData=obj.CacheData; //缓存数据
|
|
87506
87567
|
|
|
87507
87568
|
if (drawPicture.ImportStorageData) drawPicture.ImportStorageData(obj);
|
|
87508
87569
|
drawPicture.SetOption(obj);
|
|
@@ -88118,6 +88179,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
88118
88179
|
drawPicture.Status=10;
|
|
88119
88180
|
drawPicture.Frame=this.Frame.SubFrame[item.FrameID].Frame; //绑定框架坐标
|
|
88120
88181
|
drawPicture.Option=this.ChartDrawOption;
|
|
88182
|
+
drawPicture.HQChart=this;
|
|
88121
88183
|
|
|
88122
88184
|
if (drawPicture.ImportStorageData) drawPicture.ImportStorageData(item);
|
|
88123
88185
|
if (drawPicture.Period!=this.Period)
|
|
@@ -95880,6 +95942,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
95880
95942
|
drawPicture.Symbol=this.Symbol;
|
|
95881
95943
|
drawPicture.Period=888888888;
|
|
95882
95944
|
drawPicture.Option=this.ChartDrawOption;
|
|
95945
|
+
drawPicture.HQChart=this;
|
|
95883
95946
|
|
|
95884
95947
|
if (callback) drawPicture.FinishedCallback=callback; //完成通知上层回调
|
|
95885
95948
|
if (option) drawPicture.SetOption(option);
|
|
@@ -95910,8 +95973,10 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
95910
95973
|
drawPicture.Frame=this.Frame.SubFrame[obj.FrameID].Frame; //绑定框架坐标
|
|
95911
95974
|
drawPicture.Symbol=this.Symbol;
|
|
95912
95975
|
drawPicture.Period=888888888;
|
|
95976
|
+
drawPicture.HQChart=this;
|
|
95913
95977
|
if (obj.Value) drawPicture.Value=obj.Value;
|
|
95914
95978
|
if (obj.Guid) drawPicture.Guid=obj.Guid;
|
|
95979
|
+
if (obj.CacheData) drawPicture.CacheData=obj.CacheData; //缓存数据
|
|
95915
95980
|
|
|
95916
95981
|
if (drawPicture.ImportStorageData) drawPicture.ImportStorageData(obj);
|
|
95917
95982
|
drawPicture.SetOption(obj);
|
|
@@ -95957,6 +96022,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
95957
96022
|
|
|
95958
96023
|
drawPicture.Canvas=this.Canvas;
|
|
95959
96024
|
drawPicture.Status=10;
|
|
96025
|
+
drawPicture.HQChart=this;
|
|
95960
96026
|
drawPicture.Frame=this.Frame.SubFrame[item.FrameID].Frame; //绑定框架坐标
|
|
95961
96027
|
if (drawPicture.ImportStorageData) drawPicture.ImportStorageData(item);
|
|
95962
96028
|
drawPicture.ResetXValue();
|
|
@@ -2354,6 +2354,12 @@ input[type="color"] {
|
|
|
2354
2354
|
color:var(--HQChart-DialogModifyIndexParam-InputTextColor);
|
|
2355
2355
|
}
|
|
2356
2356
|
|
|
2357
|
+
.UMyChart_ModifyIndexParam_Input::-webkit-outer-spin-button,
|
|
2358
|
+
.UMyChart_ModifyIndexParam_Input::-webkit-inner-spin-button
|
|
2359
|
+
{
|
|
2360
|
+
-webkit-appearance: none;
|
|
2361
|
+
}
|
|
2362
|
+
|
|
2357
2363
|
.UMyChart_ModifyIndexParam_Button_Div
|
|
2358
2364
|
{
|
|
2359
2365
|
border-top: 1px solid #ccc;
|
|
@@ -7003,6 +7003,8 @@ var JSCHART_EVENT_ID=
|
|
|
7003
7003
|
ON_FORMAT_COUNTDOWN_TEXT:177, //倒计时
|
|
7004
7004
|
ON_CLICK_INDEX_LOCK:178, //点击指标锁
|
|
7005
7005
|
ON_CORSSCURSOR_STATUS_CHANGE:179, //十字光标状态改变
|
|
7006
|
+
|
|
7007
|
+
ON_FORMAT_DRAW_HLINE_LABEL:180, //画图工具-水平线(ChartDrawPictureHorizontalLine)格式化标签文字
|
|
7006
7008
|
}
|
|
7007
7009
|
|
|
7008
7010
|
var JSCHART_OPERATOR_ID=
|
|
@@ -10542,6 +10544,11 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
10542
10544
|
chartItem.Canvas=canvas; //叠加图形
|
|
10543
10545
|
}
|
|
10544
10546
|
}
|
|
10547
|
+
|
|
10548
|
+
if (item.Frame.LockPaint)
|
|
10549
|
+
{
|
|
10550
|
+
item.Frame.LockPaint.Canvas=canvas;
|
|
10551
|
+
}
|
|
10545
10552
|
}
|
|
10546
10553
|
}
|
|
10547
10554
|
|
|
@@ -68667,7 +68674,7 @@ function IChartDrawPicture()
|
|
|
68667
68674
|
this.PointType=g_JSChartResource.DrawPicture.PointType; // 0=圆点 1=方框 2= 空心圆
|
|
68668
68675
|
this.IsShowPoint=g_JSChartResource.DrawPicture.IsShowPoint; //是否始终显示点
|
|
68669
68676
|
this.LimitFrameID; //限制在指定窗口绘图
|
|
68670
|
-
|
|
68677
|
+
this.CacheData; //数据缓存
|
|
68671
68678
|
|
|
68672
68679
|
//接口函数
|
|
68673
68680
|
this.SetLastPoint=null; //this.SetLastPoint=function(obj) obj={X:,Y:}
|
|
@@ -68695,6 +68702,9 @@ function IChartDrawPicture()
|
|
|
68695
68702
|
if (IFrameSplitOperator.IsNumber(option.LimitFrameID)) this.LimitFrameID=option.LimitFrameID;
|
|
68696
68703
|
if (IFrameSplitOperator.IsBool(option.EnableCtrlMove)) this.EnableCtrlMove=option.EnableCtrlMove;
|
|
68697
68704
|
if (IFrameSplitOperator.IsBool(option.IsShowYCoordinate)) this.IsShowYCoordinate=option.IsShowYCoordinate;
|
|
68705
|
+
if (IFrameSplitOperator.IsBool(option.EnableSave)) this.EnableSave=option.EnableSave;
|
|
68706
|
+
if (IFrameSplitOperator.IsBool(option.EnableMove)) this.EnableMove=option.EnableMove;
|
|
68707
|
+
|
|
68698
68708
|
}
|
|
68699
68709
|
|
|
68700
68710
|
this.ReloadResource=function(resource)
|
|
@@ -70357,7 +70367,7 @@ IChartDrawPicture.CreateChartDrawPicture=function(obj) //创建画图工具
|
|
|
70357
70367
|
if (obj.FontOption) chartDraw.FontOption=obj.FontOption;
|
|
70358
70368
|
if (obj.Label) chartDraw.Label=obj.Label;
|
|
70359
70369
|
if (obj.LineWidth>0) chartDraw.LineWidth=obj.LineWidth;
|
|
70360
|
-
if (obj.EnableMove
|
|
70370
|
+
if (IFrameSplitOperator.IsBool(obj.EnableMove)) chartDraw.EnableMove=obj.EnableMove;
|
|
70361
70371
|
if (IFrameSplitOperator.IsBool(obj.EnableSave)) chartDraw.EnableSave=obj.EnableSave;
|
|
70362
70372
|
if (IFrameSplitOperator.IsNumber(obj.ChannelWidth)) chartDraw.ChannelWidth=obj.ChannelWidth;
|
|
70363
70373
|
if (IFrameSplitOperator.IsBool(obj.IsShowYCoordinate)) chartDraw.IsShowYCoordinate=obj.IsShowYCoordinate;
|
|
@@ -71019,9 +71029,9 @@ function ChartDrawPictureHorizontalLine()
|
|
|
71019
71029
|
|
|
71020
71030
|
this.LabelConfig=
|
|
71021
71031
|
{
|
|
71022
|
-
Left:{ IsShow:true, Margin:{ Left:5, Top:4, Bottom:2, Right:5 } },
|
|
71023
|
-
Right:{ IsShow:true, Margin:{ Left:5, Top:4, Bottom:2, Right:5 } },
|
|
71024
|
-
Font:`${12*GetDevicePixelRatio()}px 微软雅黑`, TextColor:"rgb(255,255,255)", BGColor:null
|
|
71032
|
+
Left:{ IsShow:true, Margin:{ Left:5, Top:4, Bottom:2, Right:5 }, LineOffset:null, Text:null },
|
|
71033
|
+
Right:{ IsShow:true, Margin:{ Left:5, Top:4, Bottom:2, Right:5 }, LineOffset:null, Text:null },
|
|
71034
|
+
Font:`${12*GetDevicePixelRatio()}px 微软雅黑`, TextColor:"rgb(255,255,255)", BGColor:null,
|
|
71025
71035
|
};
|
|
71026
71036
|
|
|
71027
71037
|
this.InsideLabelConfig=
|
|
@@ -71120,6 +71130,9 @@ function ChartDrawPictureHorizontalLine()
|
|
|
71120
71130
|
left=this.Frame.ChartBorder.GetTop();
|
|
71121
71131
|
right=this.Frame.ChartBorder.GetBottom();
|
|
71122
71132
|
}
|
|
71133
|
+
|
|
71134
|
+
|
|
71135
|
+
|
|
71123
71136
|
this.ClipFrame();
|
|
71124
71137
|
|
|
71125
71138
|
this.Canvas.strokeStyle=this.LineColor;
|
|
@@ -71159,6 +71172,8 @@ function ChartDrawPictureHorizontalLine()
|
|
|
71159
71172
|
//画点
|
|
71160
71173
|
this.DrawPoint(drawPoint);
|
|
71161
71174
|
|
|
71175
|
+
this.FormatLabelTextEvent(drawPoint);
|
|
71176
|
+
|
|
71162
71177
|
//显示价格
|
|
71163
71178
|
this.DrawInsideLabel(drawPoint[0])
|
|
71164
71179
|
|
|
@@ -71166,6 +71181,16 @@ function ChartDrawPictureHorizontalLine()
|
|
|
71166
71181
|
|
|
71167
71182
|
this.DrawValueLabel(drawPoint[0]);
|
|
71168
71183
|
}
|
|
71184
|
+
|
|
71185
|
+
this.FormatLabelTextEvent=function(point)
|
|
71186
|
+
{
|
|
71187
|
+
if (!this.HQChart) return;
|
|
71188
|
+
var event=this.HQChart.GetEventCallback(JSCHART_EVENT_ID.ON_FORMAT_DRAW_HLINE_LABEL);
|
|
71189
|
+
if (!event || !event.Callback) return;
|
|
71190
|
+
|
|
71191
|
+
var sendData={ ID:this.Guid, LabelConfig:this.LabelConfig, InsideLabelConfig:this.InsideLabelConfig };
|
|
71192
|
+
event.Callback(event, sendData, this);
|
|
71193
|
+
}
|
|
71169
71194
|
|
|
71170
71195
|
this.DrawValueLabel=function(point)
|
|
71171
71196
|
{
|
|
@@ -71173,6 +71198,8 @@ function ChartDrawPictureHorizontalLine()
|
|
|
71173
71198
|
if (this.Frame.IsHScreen) return; //不支持横屏
|
|
71174
71199
|
|
|
71175
71200
|
var y=point.Y;
|
|
71201
|
+
var yFixed=ToFixedPoint2(this.LineWidth,y);
|
|
71202
|
+
|
|
71176
71203
|
var yValue=this.Frame.GetYData(y);
|
|
71177
71204
|
var text=yValue.toFixed(2);
|
|
71178
71205
|
|
|
@@ -71181,12 +71208,27 @@ function ChartDrawPictureHorizontalLine()
|
|
|
71181
71208
|
|
|
71182
71209
|
this.Canvas.font=config.Font;
|
|
71183
71210
|
var textHeight=this.Canvas.measureText("擎").width;
|
|
71184
|
-
var textWidth=this.Canvas.measureText(text).width;
|
|
71185
71211
|
|
|
71186
71212
|
if (config.Left.IsShow && this.Frame.ChartBorder.Left>5)
|
|
71187
71213
|
{
|
|
71214
|
+
var leftText=text;
|
|
71215
|
+
if (config.Left.Text) leftText=config.Left.Text;
|
|
71216
|
+
var textWidth=this.Canvas.measureText(leftText).width;
|
|
71217
|
+
var left=border.Left;
|
|
71218
|
+
if (IFrameSplitOperator.IsNumber(config.Left.LineOffset)&& config.Left.LineOffset!==0)
|
|
71219
|
+
{
|
|
71220
|
+
left-=config.Left.LineOffset;
|
|
71221
|
+
this.Canvas.strokeStyle=this.LineColor;
|
|
71222
|
+
this.SetLineWidth();
|
|
71223
|
+
this.Canvas.beginPath();
|
|
71224
|
+
this.Canvas.moveTo(border.Left,yFixed);
|
|
71225
|
+
this.Canvas.lineTo(left,yFixed);
|
|
71226
|
+
this.Canvas.stroke();
|
|
71227
|
+
this.RestoreLineWidth();
|
|
71228
|
+
}
|
|
71229
|
+
|
|
71188
71230
|
var margin=config.Left.Margin;
|
|
71189
|
-
var rtBG={ Right:
|
|
71231
|
+
var rtBG={ Right:left+1, Height:textHeight+margin.Top+margin.Bottom, Width:textWidth+margin.Left+margin.Right };
|
|
71190
71232
|
rtBG.Top=y-textHeight/2-margin.Top;
|
|
71191
71233
|
rtBG.Bottom=rtBG.Top+rtBG.Height;
|
|
71192
71234
|
rtBG.Left=rtBG.Right-rtBG.Width;
|
|
@@ -71200,13 +71242,30 @@ function ChartDrawPictureHorizontalLine()
|
|
|
71200
71242
|
var xText=rtBG.Left+margin.Left;
|
|
71201
71243
|
var yText=rtBG.Top+margin.Top;
|
|
71202
71244
|
this.Canvas.fillStyle=config.TextColor;
|
|
71203
|
-
this.Canvas.fillText(
|
|
71245
|
+
this.Canvas.fillText(leftText,xText,yText);
|
|
71204
71246
|
}
|
|
71205
71247
|
|
|
71206
71248
|
if (config.Right.IsShow && this.Frame.ChartBorder.Right>5)
|
|
71207
71249
|
{
|
|
71250
|
+
var rightText=text;
|
|
71251
|
+
if (config.Right.Text) rightText=config.Right.Text;
|
|
71252
|
+
var textWidth=this.Canvas.measureText(rightText).width;
|
|
71253
|
+
|
|
71254
|
+
var left=border.Right;
|
|
71255
|
+
if (IFrameSplitOperator.IsNumber(config.Right.LineOffset)&& config.Right.LineOffset!==0)
|
|
71256
|
+
{
|
|
71257
|
+
left+=config.Right.LineOffset;
|
|
71258
|
+
this.Canvas.strokeStyle=this.LineColor;
|
|
71259
|
+
this.SetLineWidth();
|
|
71260
|
+
this.Canvas.beginPath();
|
|
71261
|
+
this.Canvas.moveTo(border.Right,yFixed);
|
|
71262
|
+
this.Canvas.lineTo(left,yFixed);
|
|
71263
|
+
this.Canvas.stroke();
|
|
71264
|
+
this.RestoreLineWidth();
|
|
71265
|
+
}
|
|
71266
|
+
|
|
71208
71267
|
var margin=config.Right.Margin;
|
|
71209
|
-
var rtBG={ Left:
|
|
71268
|
+
var rtBG={ Left:left-1, Height:textHeight+margin.Top+margin.Bottom, Width:textWidth+margin.Left+margin.Right };
|
|
71210
71269
|
rtBG.Top=y-textHeight/2-margin.Top;
|
|
71211
71270
|
rtBG.Bottom=rtBG.Top+rtBG.Height;
|
|
71212
71271
|
rtBG.Right=rtBG.Left+rtBG.Width;
|
|
@@ -71220,7 +71279,7 @@ function ChartDrawPictureHorizontalLine()
|
|
|
71220
71279
|
var xText=rtBG.Left+margin.Left;
|
|
71221
71280
|
var yText=rtBG.Top+margin.Top;
|
|
71222
71281
|
this.Canvas.fillStyle=config.TextColor;
|
|
71223
|
-
this.Canvas.fillText(
|
|
71282
|
+
this.Canvas.fillText(rightText,xText,yText);
|
|
71224
71283
|
}
|
|
71225
71284
|
}
|
|
71226
71285
|
|
|
@@ -91544,7 +91603,6 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
91544
91603
|
if (item)
|
|
91545
91604
|
{
|
|
91546
91605
|
drawPicture=item.Create();
|
|
91547
|
-
drawPicture.HQChart=this;
|
|
91548
91606
|
}
|
|
91549
91607
|
|
|
91550
91608
|
if (!drawPicture) //iconfont图标
|
|
@@ -91567,6 +91625,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
91567
91625
|
drawPicture.Period=this.Period;
|
|
91568
91626
|
drawPicture.Right=this.Right;
|
|
91569
91627
|
drawPicture.Option=this.ChartDrawOption;
|
|
91628
|
+
drawPicture.HQChart=this;
|
|
91570
91629
|
|
|
91571
91630
|
if (callback) drawPicture.FinishedCallback=callback; //完成通知上层回调
|
|
91572
91631
|
if (option) drawPicture.SetOption(option);
|
|
@@ -91597,8 +91656,10 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
91597
91656
|
drawPicture.Period=this.Period;
|
|
91598
91657
|
drawPicture.Right=this.Right;
|
|
91599
91658
|
drawPicture.Option=this.ChartDrawOption;
|
|
91659
|
+
drawPicture.HQChart=this;
|
|
91600
91660
|
if (obj.Value) drawPicture.Value=obj.Value;
|
|
91601
91661
|
if (obj.Guid) drawPicture.Guid=obj.Guid;
|
|
91662
|
+
if (obj.CacheData) drawPicture.CacheData=obj.CacheData; //缓存数据
|
|
91602
91663
|
|
|
91603
91664
|
if (drawPicture.ImportStorageData) drawPicture.ImportStorageData(obj);
|
|
91604
91665
|
drawPicture.SetOption(obj);
|
|
@@ -92214,6 +92275,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
92214
92275
|
drawPicture.Status=10;
|
|
92215
92276
|
drawPicture.Frame=this.Frame.SubFrame[item.FrameID].Frame; //绑定框架坐标
|
|
92216
92277
|
drawPicture.Option=this.ChartDrawOption;
|
|
92278
|
+
drawPicture.HQChart=this;
|
|
92217
92279
|
|
|
92218
92280
|
if (drawPicture.ImportStorageData) drawPicture.ImportStorageData(item);
|
|
92219
92281
|
if (drawPicture.Period!=this.Period)
|
|
@@ -99976,6 +100038,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
99976
100038
|
drawPicture.Symbol=this.Symbol;
|
|
99977
100039
|
drawPicture.Period=888888888;
|
|
99978
100040
|
drawPicture.Option=this.ChartDrawOption;
|
|
100041
|
+
drawPicture.HQChart=this;
|
|
99979
100042
|
|
|
99980
100043
|
if (callback) drawPicture.FinishedCallback=callback; //完成通知上层回调
|
|
99981
100044
|
if (option) drawPicture.SetOption(option);
|
|
@@ -100006,8 +100069,10 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
100006
100069
|
drawPicture.Frame=this.Frame.SubFrame[obj.FrameID].Frame; //绑定框架坐标
|
|
100007
100070
|
drawPicture.Symbol=this.Symbol;
|
|
100008
100071
|
drawPicture.Period=888888888;
|
|
100072
|
+
drawPicture.HQChart=this;
|
|
100009
100073
|
if (obj.Value) drawPicture.Value=obj.Value;
|
|
100010
100074
|
if (obj.Guid) drawPicture.Guid=obj.Guid;
|
|
100075
|
+
if (obj.CacheData) drawPicture.CacheData=obj.CacheData; //缓存数据
|
|
100011
100076
|
|
|
100012
100077
|
if (drawPicture.ImportStorageData) drawPicture.ImportStorageData(obj);
|
|
100013
100078
|
drawPicture.SetOption(obj);
|
|
@@ -100053,6 +100118,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
100053
100118
|
|
|
100054
100119
|
drawPicture.Canvas=this.Canvas;
|
|
100055
100120
|
drawPicture.Status=10;
|
|
100121
|
+
drawPicture.HQChart=this;
|
|
100056
100122
|
drawPicture.Frame=this.Frame.SubFrame[item.FrameID].Frame; //绑定框架坐标
|
|
100057
100123
|
if (drawPicture.ImportStorageData) drawPicture.ImportStorageData(item);
|
|
100058
100124
|
drawPicture.ResetXValue();
|
|
@@ -153733,7 +153799,7 @@ function ScrollBarBGChart()
|
|
|
153733
153799
|
|
|
153734
153800
|
|
|
153735
153801
|
|
|
153736
|
-
var HQCHART_VERSION="1.1.
|
|
153802
|
+
var HQCHART_VERSION="1.1.15153";
|
|
153737
153803
|
|
|
153738
153804
|
function PrintHQChartVersion()
|
|
153739
153805
|
{
|
|
@@ -7047,6 +7047,8 @@ var JSCHART_EVENT_ID=
|
|
|
7047
7047
|
ON_FORMAT_COUNTDOWN_TEXT:177, //倒计时
|
|
7048
7048
|
ON_CLICK_INDEX_LOCK:178, //点击指标锁
|
|
7049
7049
|
ON_CORSSCURSOR_STATUS_CHANGE:179, //十字光标状态改变
|
|
7050
|
+
|
|
7051
|
+
ON_FORMAT_DRAW_HLINE_LABEL:180, //画图工具-水平线(ChartDrawPictureHorizontalLine)格式化标签文字
|
|
7050
7052
|
}
|
|
7051
7053
|
|
|
7052
7054
|
var JSCHART_OPERATOR_ID=
|
|
@@ -10586,6 +10588,11 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
10586
10588
|
chartItem.Canvas=canvas; //叠加图形
|
|
10587
10589
|
}
|
|
10588
10590
|
}
|
|
10591
|
+
|
|
10592
|
+
if (item.Frame.LockPaint)
|
|
10593
|
+
{
|
|
10594
|
+
item.Frame.LockPaint.Canvas=canvas;
|
|
10595
|
+
}
|
|
10589
10596
|
}
|
|
10590
10597
|
}
|
|
10591
10598
|
|
|
@@ -68711,7 +68718,7 @@ function IChartDrawPicture()
|
|
|
68711
68718
|
this.PointType=g_JSChartResource.DrawPicture.PointType; // 0=圆点 1=方框 2= 空心圆
|
|
68712
68719
|
this.IsShowPoint=g_JSChartResource.DrawPicture.IsShowPoint; //是否始终显示点
|
|
68713
68720
|
this.LimitFrameID; //限制在指定窗口绘图
|
|
68714
|
-
|
|
68721
|
+
this.CacheData; //数据缓存
|
|
68715
68722
|
|
|
68716
68723
|
//接口函数
|
|
68717
68724
|
this.SetLastPoint=null; //this.SetLastPoint=function(obj) obj={X:,Y:}
|
|
@@ -68739,6 +68746,9 @@ function IChartDrawPicture()
|
|
|
68739
68746
|
if (IFrameSplitOperator.IsNumber(option.LimitFrameID)) this.LimitFrameID=option.LimitFrameID;
|
|
68740
68747
|
if (IFrameSplitOperator.IsBool(option.EnableCtrlMove)) this.EnableCtrlMove=option.EnableCtrlMove;
|
|
68741
68748
|
if (IFrameSplitOperator.IsBool(option.IsShowYCoordinate)) this.IsShowYCoordinate=option.IsShowYCoordinate;
|
|
68749
|
+
if (IFrameSplitOperator.IsBool(option.EnableSave)) this.EnableSave=option.EnableSave;
|
|
68750
|
+
if (IFrameSplitOperator.IsBool(option.EnableMove)) this.EnableMove=option.EnableMove;
|
|
68751
|
+
|
|
68742
68752
|
}
|
|
68743
68753
|
|
|
68744
68754
|
this.ReloadResource=function(resource)
|
|
@@ -70401,7 +70411,7 @@ IChartDrawPicture.CreateChartDrawPicture=function(obj) //创建画图工具
|
|
|
70401
70411
|
if (obj.FontOption) chartDraw.FontOption=obj.FontOption;
|
|
70402
70412
|
if (obj.Label) chartDraw.Label=obj.Label;
|
|
70403
70413
|
if (obj.LineWidth>0) chartDraw.LineWidth=obj.LineWidth;
|
|
70404
|
-
if (obj.EnableMove
|
|
70414
|
+
if (IFrameSplitOperator.IsBool(obj.EnableMove)) chartDraw.EnableMove=obj.EnableMove;
|
|
70405
70415
|
if (IFrameSplitOperator.IsBool(obj.EnableSave)) chartDraw.EnableSave=obj.EnableSave;
|
|
70406
70416
|
if (IFrameSplitOperator.IsNumber(obj.ChannelWidth)) chartDraw.ChannelWidth=obj.ChannelWidth;
|
|
70407
70417
|
if (IFrameSplitOperator.IsBool(obj.IsShowYCoordinate)) chartDraw.IsShowYCoordinate=obj.IsShowYCoordinate;
|
|
@@ -71063,9 +71073,9 @@ function ChartDrawPictureHorizontalLine()
|
|
|
71063
71073
|
|
|
71064
71074
|
this.LabelConfig=
|
|
71065
71075
|
{
|
|
71066
|
-
Left:{ IsShow:true, Margin:{ Left:5, Top:4, Bottom:2, Right:5 } },
|
|
71067
|
-
Right:{ IsShow:true, Margin:{ Left:5, Top:4, Bottom:2, Right:5 } },
|
|
71068
|
-
Font:`${12*GetDevicePixelRatio()}px 微软雅黑`, TextColor:"rgb(255,255,255)", BGColor:null
|
|
71076
|
+
Left:{ IsShow:true, Margin:{ Left:5, Top:4, Bottom:2, Right:5 }, LineOffset:null, Text:null },
|
|
71077
|
+
Right:{ IsShow:true, Margin:{ Left:5, Top:4, Bottom:2, Right:5 }, LineOffset:null, Text:null },
|
|
71078
|
+
Font:`${12*GetDevicePixelRatio()}px 微软雅黑`, TextColor:"rgb(255,255,255)", BGColor:null,
|
|
71069
71079
|
};
|
|
71070
71080
|
|
|
71071
71081
|
this.InsideLabelConfig=
|
|
@@ -71164,6 +71174,9 @@ function ChartDrawPictureHorizontalLine()
|
|
|
71164
71174
|
left=this.Frame.ChartBorder.GetTop();
|
|
71165
71175
|
right=this.Frame.ChartBorder.GetBottom();
|
|
71166
71176
|
}
|
|
71177
|
+
|
|
71178
|
+
|
|
71179
|
+
|
|
71167
71180
|
this.ClipFrame();
|
|
71168
71181
|
|
|
71169
71182
|
this.Canvas.strokeStyle=this.LineColor;
|
|
@@ -71203,6 +71216,8 @@ function ChartDrawPictureHorizontalLine()
|
|
|
71203
71216
|
//画点
|
|
71204
71217
|
this.DrawPoint(drawPoint);
|
|
71205
71218
|
|
|
71219
|
+
this.FormatLabelTextEvent(drawPoint);
|
|
71220
|
+
|
|
71206
71221
|
//显示价格
|
|
71207
71222
|
this.DrawInsideLabel(drawPoint[0])
|
|
71208
71223
|
|
|
@@ -71210,6 +71225,16 @@ function ChartDrawPictureHorizontalLine()
|
|
|
71210
71225
|
|
|
71211
71226
|
this.DrawValueLabel(drawPoint[0]);
|
|
71212
71227
|
}
|
|
71228
|
+
|
|
71229
|
+
this.FormatLabelTextEvent=function(point)
|
|
71230
|
+
{
|
|
71231
|
+
if (!this.HQChart) return;
|
|
71232
|
+
var event=this.HQChart.GetEventCallback(JSCHART_EVENT_ID.ON_FORMAT_DRAW_HLINE_LABEL);
|
|
71233
|
+
if (!event || !event.Callback) return;
|
|
71234
|
+
|
|
71235
|
+
var sendData={ ID:this.Guid, LabelConfig:this.LabelConfig, InsideLabelConfig:this.InsideLabelConfig };
|
|
71236
|
+
event.Callback(event, sendData, this);
|
|
71237
|
+
}
|
|
71213
71238
|
|
|
71214
71239
|
this.DrawValueLabel=function(point)
|
|
71215
71240
|
{
|
|
@@ -71217,6 +71242,8 @@ function ChartDrawPictureHorizontalLine()
|
|
|
71217
71242
|
if (this.Frame.IsHScreen) return; //不支持横屏
|
|
71218
71243
|
|
|
71219
71244
|
var y=point.Y;
|
|
71245
|
+
var yFixed=ToFixedPoint2(this.LineWidth,y);
|
|
71246
|
+
|
|
71220
71247
|
var yValue=this.Frame.GetYData(y);
|
|
71221
71248
|
var text=yValue.toFixed(2);
|
|
71222
71249
|
|
|
@@ -71225,12 +71252,27 @@ function ChartDrawPictureHorizontalLine()
|
|
|
71225
71252
|
|
|
71226
71253
|
this.Canvas.font=config.Font;
|
|
71227
71254
|
var textHeight=this.Canvas.measureText("擎").width;
|
|
71228
|
-
var textWidth=this.Canvas.measureText(text).width;
|
|
71229
71255
|
|
|
71230
71256
|
if (config.Left.IsShow && this.Frame.ChartBorder.Left>5)
|
|
71231
71257
|
{
|
|
71258
|
+
var leftText=text;
|
|
71259
|
+
if (config.Left.Text) leftText=config.Left.Text;
|
|
71260
|
+
var textWidth=this.Canvas.measureText(leftText).width;
|
|
71261
|
+
var left=border.Left;
|
|
71262
|
+
if (IFrameSplitOperator.IsNumber(config.Left.LineOffset)&& config.Left.LineOffset!==0)
|
|
71263
|
+
{
|
|
71264
|
+
left-=config.Left.LineOffset;
|
|
71265
|
+
this.Canvas.strokeStyle=this.LineColor;
|
|
71266
|
+
this.SetLineWidth();
|
|
71267
|
+
this.Canvas.beginPath();
|
|
71268
|
+
this.Canvas.moveTo(border.Left,yFixed);
|
|
71269
|
+
this.Canvas.lineTo(left,yFixed);
|
|
71270
|
+
this.Canvas.stroke();
|
|
71271
|
+
this.RestoreLineWidth();
|
|
71272
|
+
}
|
|
71273
|
+
|
|
71232
71274
|
var margin=config.Left.Margin;
|
|
71233
|
-
var rtBG={ Right:
|
|
71275
|
+
var rtBG={ Right:left+1, Height:textHeight+margin.Top+margin.Bottom, Width:textWidth+margin.Left+margin.Right };
|
|
71234
71276
|
rtBG.Top=y-textHeight/2-margin.Top;
|
|
71235
71277
|
rtBG.Bottom=rtBG.Top+rtBG.Height;
|
|
71236
71278
|
rtBG.Left=rtBG.Right-rtBG.Width;
|
|
@@ -71244,13 +71286,30 @@ function ChartDrawPictureHorizontalLine()
|
|
|
71244
71286
|
var xText=rtBG.Left+margin.Left;
|
|
71245
71287
|
var yText=rtBG.Top+margin.Top;
|
|
71246
71288
|
this.Canvas.fillStyle=config.TextColor;
|
|
71247
|
-
this.Canvas.fillText(
|
|
71289
|
+
this.Canvas.fillText(leftText,xText,yText);
|
|
71248
71290
|
}
|
|
71249
71291
|
|
|
71250
71292
|
if (config.Right.IsShow && this.Frame.ChartBorder.Right>5)
|
|
71251
71293
|
{
|
|
71294
|
+
var rightText=text;
|
|
71295
|
+
if (config.Right.Text) rightText=config.Right.Text;
|
|
71296
|
+
var textWidth=this.Canvas.measureText(rightText).width;
|
|
71297
|
+
|
|
71298
|
+
var left=border.Right;
|
|
71299
|
+
if (IFrameSplitOperator.IsNumber(config.Right.LineOffset)&& config.Right.LineOffset!==0)
|
|
71300
|
+
{
|
|
71301
|
+
left+=config.Right.LineOffset;
|
|
71302
|
+
this.Canvas.strokeStyle=this.LineColor;
|
|
71303
|
+
this.SetLineWidth();
|
|
71304
|
+
this.Canvas.beginPath();
|
|
71305
|
+
this.Canvas.moveTo(border.Right,yFixed);
|
|
71306
|
+
this.Canvas.lineTo(left,yFixed);
|
|
71307
|
+
this.Canvas.stroke();
|
|
71308
|
+
this.RestoreLineWidth();
|
|
71309
|
+
}
|
|
71310
|
+
|
|
71252
71311
|
var margin=config.Right.Margin;
|
|
71253
|
-
var rtBG={ Left:
|
|
71312
|
+
var rtBG={ Left:left-1, Height:textHeight+margin.Top+margin.Bottom, Width:textWidth+margin.Left+margin.Right };
|
|
71254
71313
|
rtBG.Top=y-textHeight/2-margin.Top;
|
|
71255
71314
|
rtBG.Bottom=rtBG.Top+rtBG.Height;
|
|
71256
71315
|
rtBG.Right=rtBG.Left+rtBG.Width;
|
|
@@ -71264,7 +71323,7 @@ function ChartDrawPictureHorizontalLine()
|
|
|
71264
71323
|
var xText=rtBG.Left+margin.Left;
|
|
71265
71324
|
var yText=rtBG.Top+margin.Top;
|
|
71266
71325
|
this.Canvas.fillStyle=config.TextColor;
|
|
71267
|
-
this.Canvas.fillText(
|
|
71326
|
+
this.Canvas.fillText(rightText,xText,yText);
|
|
71268
71327
|
}
|
|
71269
71328
|
}
|
|
71270
71329
|
|
|
@@ -91588,7 +91647,6 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
91588
91647
|
if (item)
|
|
91589
91648
|
{
|
|
91590
91649
|
drawPicture=item.Create();
|
|
91591
|
-
drawPicture.HQChart=this;
|
|
91592
91650
|
}
|
|
91593
91651
|
|
|
91594
91652
|
if (!drawPicture) //iconfont图标
|
|
@@ -91611,6 +91669,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
91611
91669
|
drawPicture.Period=this.Period;
|
|
91612
91670
|
drawPicture.Right=this.Right;
|
|
91613
91671
|
drawPicture.Option=this.ChartDrawOption;
|
|
91672
|
+
drawPicture.HQChart=this;
|
|
91614
91673
|
|
|
91615
91674
|
if (callback) drawPicture.FinishedCallback=callback; //完成通知上层回调
|
|
91616
91675
|
if (option) drawPicture.SetOption(option);
|
|
@@ -91641,8 +91700,10 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
91641
91700
|
drawPicture.Period=this.Period;
|
|
91642
91701
|
drawPicture.Right=this.Right;
|
|
91643
91702
|
drawPicture.Option=this.ChartDrawOption;
|
|
91703
|
+
drawPicture.HQChart=this;
|
|
91644
91704
|
if (obj.Value) drawPicture.Value=obj.Value;
|
|
91645
91705
|
if (obj.Guid) drawPicture.Guid=obj.Guid;
|
|
91706
|
+
if (obj.CacheData) drawPicture.CacheData=obj.CacheData; //缓存数据
|
|
91646
91707
|
|
|
91647
91708
|
if (drawPicture.ImportStorageData) drawPicture.ImportStorageData(obj);
|
|
91648
91709
|
drawPicture.SetOption(obj);
|
|
@@ -92258,6 +92319,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
92258
92319
|
drawPicture.Status=10;
|
|
92259
92320
|
drawPicture.Frame=this.Frame.SubFrame[item.FrameID].Frame; //绑定框架坐标
|
|
92260
92321
|
drawPicture.Option=this.ChartDrawOption;
|
|
92322
|
+
drawPicture.HQChart=this;
|
|
92261
92323
|
|
|
92262
92324
|
if (drawPicture.ImportStorageData) drawPicture.ImportStorageData(item);
|
|
92263
92325
|
if (drawPicture.Period!=this.Period)
|
|
@@ -100020,6 +100082,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
100020
100082
|
drawPicture.Symbol=this.Symbol;
|
|
100021
100083
|
drawPicture.Period=888888888;
|
|
100022
100084
|
drawPicture.Option=this.ChartDrawOption;
|
|
100085
|
+
drawPicture.HQChart=this;
|
|
100023
100086
|
|
|
100024
100087
|
if (callback) drawPicture.FinishedCallback=callback; //完成通知上层回调
|
|
100025
100088
|
if (option) drawPicture.SetOption(option);
|
|
@@ -100050,8 +100113,10 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
100050
100113
|
drawPicture.Frame=this.Frame.SubFrame[obj.FrameID].Frame; //绑定框架坐标
|
|
100051
100114
|
drawPicture.Symbol=this.Symbol;
|
|
100052
100115
|
drawPicture.Period=888888888;
|
|
100116
|
+
drawPicture.HQChart=this;
|
|
100053
100117
|
if (obj.Value) drawPicture.Value=obj.Value;
|
|
100054
100118
|
if (obj.Guid) drawPicture.Guid=obj.Guid;
|
|
100119
|
+
if (obj.CacheData) drawPicture.CacheData=obj.CacheData; //缓存数据
|
|
100055
100120
|
|
|
100056
100121
|
if (drawPicture.ImportStorageData) drawPicture.ImportStorageData(obj);
|
|
100057
100122
|
drawPicture.SetOption(obj);
|
|
@@ -100097,6 +100162,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
100097
100162
|
|
|
100098
100163
|
drawPicture.Canvas=this.Canvas;
|
|
100099
100164
|
drawPicture.Status=10;
|
|
100165
|
+
drawPicture.HQChart=this;
|
|
100100
100166
|
drawPicture.Frame=this.Frame.SubFrame[item.FrameID].Frame; //绑定框架坐标
|
|
100101
100167
|
if (drawPicture.ImportStorageData) drawPicture.ImportStorageData(item);
|
|
100102
100168
|
drawPicture.ResetXValue();
|
|
@@ -165310,8 +165376,9 @@ function JSDialogModifyIndexParam()
|
|
|
165310
165376
|
input.className='UMyChart_ModifyIndexParam_Input';
|
|
165311
165377
|
input.type="number";
|
|
165312
165378
|
input.step=1;
|
|
165313
|
-
input.addEventListener("mouseup", (e)=>{ this.OnParamMouseUp(e)});
|
|
165314
|
-
input.addEventListener("keyup", (e)=>{ this.OnParamKeyUp(e)})
|
|
165379
|
+
//input.addEventListener("mouseup", (e)=>{ this.OnParamMouseUp(e)});
|
|
165380
|
+
//input.addEventListener("keyup", (e)=>{ this.OnParamKeyUp(e)} );
|
|
165381
|
+
input.addEventListener("input", (e)=>{ this.OnParamInput(e)} );
|
|
165315
165382
|
tdDom.appendChild(input);
|
|
165316
165383
|
rowItem.Input=input;
|
|
165317
165384
|
|
|
@@ -165440,6 +165507,7 @@ function JSDialogModifyIndexParam()
|
|
|
165440
165507
|
}
|
|
165441
165508
|
}
|
|
165442
165509
|
|
|
165510
|
+
/*
|
|
165443
165511
|
this.OnParamMouseUp=function(e)
|
|
165444
165512
|
{
|
|
165445
165513
|
var input=e.target;
|
|
@@ -165457,6 +165525,16 @@ function JSDialogModifyIndexParam()
|
|
|
165457
165525
|
|
|
165458
165526
|
this.ModifyParam(id, parseInt(value));
|
|
165459
165527
|
}
|
|
165528
|
+
*/
|
|
165529
|
+
|
|
165530
|
+
this.OnParamInput=function(e)
|
|
165531
|
+
{
|
|
165532
|
+
var input=e.target;
|
|
165533
|
+
var value=input.value;
|
|
165534
|
+
var id=input.dataset.paramid;
|
|
165535
|
+
|
|
165536
|
+
this.ModifyParam(id, parseInt(value));
|
|
165537
|
+
}
|
|
165460
165538
|
|
|
165461
165539
|
this.ModifyParam=function(id, value)
|
|
165462
165540
|
{
|
|
@@ -165734,7 +165812,7 @@ function HQChartScriptWorker()
|
|
|
165734
165812
|
|
|
165735
165813
|
|
|
165736
165814
|
|
|
165737
|
-
var HQCHART_VERSION="1.1.
|
|
165815
|
+
var HQCHART_VERSION="1.1.15153";
|
|
165738
165816
|
|
|
165739
165817
|
function PrintHQChartVersion()
|
|
165740
165818
|
{
|