hqchart 1.1.15147 → 1.1.15152
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 +39 -15
- package/package.json +1 -1
- package/src/jscommon/umychart.DialogSearchIndex.js +14 -2
- package/src/jscommon/umychart.js +73 -10
- package/src/jscommon/umychart.resource/css/tools.css +6 -0
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +74 -11
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +88 -13
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,6 +6577,7 @@ 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;//更新数据回调
|
|
@@ -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.15151";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:}
|
|
@@ -66923,9 +66930,9 @@ function ChartDrawPictureHorizontalLine()
|
|
|
66923
66930
|
|
|
66924
66931
|
this.LabelConfig=
|
|
66925
66932
|
{
|
|
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
|
|
66933
|
+
Left:{ IsShow:true, Margin:{ Left:5, Top:4, Bottom:2, Right:5 }, LineOffset:null, Text:null },
|
|
66934
|
+
Right:{ IsShow:true, Margin:{ Left:5, Top:4, Bottom:2, Right:5 }, LineOffset:null, Text:null },
|
|
66935
|
+
Font:`${12*GetDevicePixelRatio()}px 微软雅黑`, TextColor:"rgb(255,255,255)", BGColor:null,
|
|
66929
66936
|
};
|
|
66930
66937
|
|
|
66931
66938
|
this.InsideLabelConfig=
|
|
@@ -67024,6 +67031,9 @@ function ChartDrawPictureHorizontalLine()
|
|
|
67024
67031
|
left=this.Frame.ChartBorder.GetTop();
|
|
67025
67032
|
right=this.Frame.ChartBorder.GetBottom();
|
|
67026
67033
|
}
|
|
67034
|
+
|
|
67035
|
+
|
|
67036
|
+
|
|
67027
67037
|
this.ClipFrame();
|
|
67028
67038
|
|
|
67029
67039
|
this.Canvas.strokeStyle=this.LineColor;
|
|
@@ -67063,6 +67073,8 @@ function ChartDrawPictureHorizontalLine()
|
|
|
67063
67073
|
//画点
|
|
67064
67074
|
this.DrawPoint(drawPoint);
|
|
67065
67075
|
|
|
67076
|
+
this.FormatLabelTextEvent(drawPoint);
|
|
67077
|
+
|
|
67066
67078
|
//显示价格
|
|
67067
67079
|
this.DrawInsideLabel(drawPoint[0])
|
|
67068
67080
|
|
|
@@ -67070,6 +67082,16 @@ function ChartDrawPictureHorizontalLine()
|
|
|
67070
67082
|
|
|
67071
67083
|
this.DrawValueLabel(drawPoint[0]);
|
|
67072
67084
|
}
|
|
67085
|
+
|
|
67086
|
+
this.FormatLabelTextEvent=function(point)
|
|
67087
|
+
{
|
|
67088
|
+
if (!this.HQChart) return;
|
|
67089
|
+
var event=this.HQChart.GetEventCallback(JSCHART_EVENT_ID.ON_FORMAT_DRAW_HLINE_LABEL);
|
|
67090
|
+
if (!event || !event.Callback) return;
|
|
67091
|
+
|
|
67092
|
+
var sendData={ ID:this.Guid, LabelConfig:this.LabelConfig, InsideLabelConfig:this.InsideLabelConfig };
|
|
67093
|
+
event.Callback(event, sendData, this);
|
|
67094
|
+
}
|
|
67073
67095
|
|
|
67074
67096
|
this.DrawValueLabel=function(point)
|
|
67075
67097
|
{
|
|
@@ -67077,6 +67099,8 @@ function ChartDrawPictureHorizontalLine()
|
|
|
67077
67099
|
if (this.Frame.IsHScreen) return; //不支持横屏
|
|
67078
67100
|
|
|
67079
67101
|
var y=point.Y;
|
|
67102
|
+
var yFixed=ToFixedPoint2(this.LineWidth,y);
|
|
67103
|
+
|
|
67080
67104
|
var yValue=this.Frame.GetYData(y);
|
|
67081
67105
|
var text=yValue.toFixed(2);
|
|
67082
67106
|
|
|
@@ -67085,12 +67109,27 @@ function ChartDrawPictureHorizontalLine()
|
|
|
67085
67109
|
|
|
67086
67110
|
this.Canvas.font=config.Font;
|
|
67087
67111
|
var textHeight=this.Canvas.measureText("擎").width;
|
|
67088
|
-
var textWidth=this.Canvas.measureText(text).width;
|
|
67089
67112
|
|
|
67090
67113
|
if (config.Left.IsShow && this.Frame.ChartBorder.Left>5)
|
|
67091
67114
|
{
|
|
67115
|
+
var leftText=text;
|
|
67116
|
+
if (config.Left.Text) leftText=config.Left.Text;
|
|
67117
|
+
var textWidth=this.Canvas.measureText(leftText).width;
|
|
67118
|
+
var left=border.Left;
|
|
67119
|
+
if (IFrameSplitOperator.IsNumber(config.Left.LineOffset)&& config.Left.LineOffset!==0)
|
|
67120
|
+
{
|
|
67121
|
+
left-=config.Left.LineOffset;
|
|
67122
|
+
this.Canvas.strokeStyle=this.LineColor;
|
|
67123
|
+
this.SetLineWidth();
|
|
67124
|
+
this.Canvas.beginPath();
|
|
67125
|
+
this.Canvas.moveTo(border.Left,yFixed);
|
|
67126
|
+
this.Canvas.lineTo(left,yFixed);
|
|
67127
|
+
this.Canvas.stroke();
|
|
67128
|
+
this.RestoreLineWidth();
|
|
67129
|
+
}
|
|
67130
|
+
|
|
67092
67131
|
var margin=config.Left.Margin;
|
|
67093
|
-
var rtBG={ Right:
|
|
67132
|
+
var rtBG={ Right:left+1, Height:textHeight+margin.Top+margin.Bottom, Width:textWidth+margin.Left+margin.Right };
|
|
67094
67133
|
rtBG.Top=y-textHeight/2-margin.Top;
|
|
67095
67134
|
rtBG.Bottom=rtBG.Top+rtBG.Height;
|
|
67096
67135
|
rtBG.Left=rtBG.Right-rtBG.Width;
|
|
@@ -67104,13 +67143,30 @@ function ChartDrawPictureHorizontalLine()
|
|
|
67104
67143
|
var xText=rtBG.Left+margin.Left;
|
|
67105
67144
|
var yText=rtBG.Top+margin.Top;
|
|
67106
67145
|
this.Canvas.fillStyle=config.TextColor;
|
|
67107
|
-
this.Canvas.fillText(
|
|
67146
|
+
this.Canvas.fillText(leftText,xText,yText);
|
|
67108
67147
|
}
|
|
67109
67148
|
|
|
67110
67149
|
if (config.Right.IsShow && this.Frame.ChartBorder.Right>5)
|
|
67111
67150
|
{
|
|
67151
|
+
var rightText=text;
|
|
67152
|
+
if (config.Right.Text) rightText=config.Right.Text;
|
|
67153
|
+
var textWidth=this.Canvas.measureText(rightText).width;
|
|
67154
|
+
|
|
67155
|
+
var left=border.Right;
|
|
67156
|
+
if (IFrameSplitOperator.IsNumber(config.Right.LineOffset)&& config.Right.LineOffset!==0)
|
|
67157
|
+
{
|
|
67158
|
+
left+=config.Right.LineOffset;
|
|
67159
|
+
this.Canvas.strokeStyle=this.LineColor;
|
|
67160
|
+
this.SetLineWidth();
|
|
67161
|
+
this.Canvas.beginPath();
|
|
67162
|
+
this.Canvas.moveTo(border.Right,yFixed);
|
|
67163
|
+
this.Canvas.lineTo(left,yFixed);
|
|
67164
|
+
this.Canvas.stroke();
|
|
67165
|
+
this.RestoreLineWidth();
|
|
67166
|
+
}
|
|
67167
|
+
|
|
67112
67168
|
var margin=config.Right.Margin;
|
|
67113
|
-
var rtBG={ Left:
|
|
67169
|
+
var rtBG={ Left:left-1, Height:textHeight+margin.Top+margin.Bottom, Width:textWidth+margin.Left+margin.Right };
|
|
67114
67170
|
rtBG.Top=y-textHeight/2-margin.Top;
|
|
67115
67171
|
rtBG.Bottom=rtBG.Top+rtBG.Height;
|
|
67116
67172
|
rtBG.Right=rtBG.Left+rtBG.Width;
|
|
@@ -67124,7 +67180,7 @@ function ChartDrawPictureHorizontalLine()
|
|
|
67124
67180
|
var xText=rtBG.Left+margin.Left;
|
|
67125
67181
|
var yText=rtBG.Top+margin.Top;
|
|
67126
67182
|
this.Canvas.fillStyle=config.TextColor;
|
|
67127
|
-
this.Canvas.fillText(
|
|
67183
|
+
this.Canvas.fillText(rightText,xText,yText);
|
|
67128
67184
|
}
|
|
67129
67185
|
}
|
|
67130
67186
|
|
|
@@ -87448,7 +87504,6 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
87448
87504
|
if (item)
|
|
87449
87505
|
{
|
|
87450
87506
|
drawPicture=item.Create();
|
|
87451
|
-
drawPicture.HQChart=this;
|
|
87452
87507
|
}
|
|
87453
87508
|
|
|
87454
87509
|
if (!drawPicture) //iconfont图标
|
|
@@ -87471,6 +87526,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
87471
87526
|
drawPicture.Period=this.Period;
|
|
87472
87527
|
drawPicture.Right=this.Right;
|
|
87473
87528
|
drawPicture.Option=this.ChartDrawOption;
|
|
87529
|
+
drawPicture.HQChart=this;
|
|
87474
87530
|
|
|
87475
87531
|
if (callback) drawPicture.FinishedCallback=callback; //完成通知上层回调
|
|
87476
87532
|
if (option) drawPicture.SetOption(option);
|
|
@@ -87501,8 +87557,10 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
87501
87557
|
drawPicture.Period=this.Period;
|
|
87502
87558
|
drawPicture.Right=this.Right;
|
|
87503
87559
|
drawPicture.Option=this.ChartDrawOption;
|
|
87560
|
+
drawPicture.HQChart=this;
|
|
87504
87561
|
if (obj.Value) drawPicture.Value=obj.Value;
|
|
87505
87562
|
if (obj.Guid) drawPicture.Guid=obj.Guid;
|
|
87563
|
+
if (obj.CacheData) drawPicture.CacheData=obj.CacheData; //缓存数据
|
|
87506
87564
|
|
|
87507
87565
|
if (drawPicture.ImportStorageData) drawPicture.ImportStorageData(obj);
|
|
87508
87566
|
drawPicture.SetOption(obj);
|
|
@@ -88118,6 +88176,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
88118
88176
|
drawPicture.Status=10;
|
|
88119
88177
|
drawPicture.Frame=this.Frame.SubFrame[item.FrameID].Frame; //绑定框架坐标
|
|
88120
88178
|
drawPicture.Option=this.ChartDrawOption;
|
|
88179
|
+
drawPicture.HQChart=this;
|
|
88121
88180
|
|
|
88122
88181
|
if (drawPicture.ImportStorageData) drawPicture.ImportStorageData(item);
|
|
88123
88182
|
if (drawPicture.Period!=this.Period)
|
|
@@ -95880,6 +95939,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
95880
95939
|
drawPicture.Symbol=this.Symbol;
|
|
95881
95940
|
drawPicture.Period=888888888;
|
|
95882
95941
|
drawPicture.Option=this.ChartDrawOption;
|
|
95942
|
+
drawPicture.HQChart=this;
|
|
95883
95943
|
|
|
95884
95944
|
if (callback) drawPicture.FinishedCallback=callback; //完成通知上层回调
|
|
95885
95945
|
if (option) drawPicture.SetOption(option);
|
|
@@ -95910,8 +95970,10 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
95910
95970
|
drawPicture.Frame=this.Frame.SubFrame[obj.FrameID].Frame; //绑定框架坐标
|
|
95911
95971
|
drawPicture.Symbol=this.Symbol;
|
|
95912
95972
|
drawPicture.Period=888888888;
|
|
95973
|
+
drawPicture.HQChart=this;
|
|
95913
95974
|
if (obj.Value) drawPicture.Value=obj.Value;
|
|
95914
95975
|
if (obj.Guid) drawPicture.Guid=obj.Guid;
|
|
95976
|
+
if (obj.CacheData) drawPicture.CacheData=obj.CacheData; //缓存数据
|
|
95915
95977
|
|
|
95916
95978
|
if (drawPicture.ImportStorageData) drawPicture.ImportStorageData(obj);
|
|
95917
95979
|
drawPicture.SetOption(obj);
|
|
@@ -95957,6 +96019,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
95957
96019
|
|
|
95958
96020
|
drawPicture.Canvas=this.Canvas;
|
|
95959
96021
|
drawPicture.Status=10;
|
|
96022
|
+
drawPicture.HQChart=this;
|
|
95960
96023
|
drawPicture.Frame=this.Frame.SubFrame[item.FrameID].Frame; //绑定框架坐标
|
|
95961
96024
|
if (drawPicture.ImportStorageData) drawPicture.ImportStorageData(item);
|
|
95962
96025
|
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:}
|
|
@@ -71019,9 +71026,9 @@ function ChartDrawPictureHorizontalLine()
|
|
|
71019
71026
|
|
|
71020
71027
|
this.LabelConfig=
|
|
71021
71028
|
{
|
|
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
|
|
71029
|
+
Left:{ IsShow:true, Margin:{ Left:5, Top:4, Bottom:2, Right:5 }, LineOffset:null, Text:null },
|
|
71030
|
+
Right:{ IsShow:true, Margin:{ Left:5, Top:4, Bottom:2, Right:5 }, LineOffset:null, Text:null },
|
|
71031
|
+
Font:`${12*GetDevicePixelRatio()}px 微软雅黑`, TextColor:"rgb(255,255,255)", BGColor:null,
|
|
71025
71032
|
};
|
|
71026
71033
|
|
|
71027
71034
|
this.InsideLabelConfig=
|
|
@@ -71120,6 +71127,9 @@ function ChartDrawPictureHorizontalLine()
|
|
|
71120
71127
|
left=this.Frame.ChartBorder.GetTop();
|
|
71121
71128
|
right=this.Frame.ChartBorder.GetBottom();
|
|
71122
71129
|
}
|
|
71130
|
+
|
|
71131
|
+
|
|
71132
|
+
|
|
71123
71133
|
this.ClipFrame();
|
|
71124
71134
|
|
|
71125
71135
|
this.Canvas.strokeStyle=this.LineColor;
|
|
@@ -71159,6 +71169,8 @@ function ChartDrawPictureHorizontalLine()
|
|
|
71159
71169
|
//画点
|
|
71160
71170
|
this.DrawPoint(drawPoint);
|
|
71161
71171
|
|
|
71172
|
+
this.FormatLabelTextEvent(drawPoint);
|
|
71173
|
+
|
|
71162
71174
|
//显示价格
|
|
71163
71175
|
this.DrawInsideLabel(drawPoint[0])
|
|
71164
71176
|
|
|
@@ -71166,6 +71178,16 @@ function ChartDrawPictureHorizontalLine()
|
|
|
71166
71178
|
|
|
71167
71179
|
this.DrawValueLabel(drawPoint[0]);
|
|
71168
71180
|
}
|
|
71181
|
+
|
|
71182
|
+
this.FormatLabelTextEvent=function(point)
|
|
71183
|
+
{
|
|
71184
|
+
if (!this.HQChart) return;
|
|
71185
|
+
var event=this.HQChart.GetEventCallback(JSCHART_EVENT_ID.ON_FORMAT_DRAW_HLINE_LABEL);
|
|
71186
|
+
if (!event || !event.Callback) return;
|
|
71187
|
+
|
|
71188
|
+
var sendData={ ID:this.Guid, LabelConfig:this.LabelConfig, InsideLabelConfig:this.InsideLabelConfig };
|
|
71189
|
+
event.Callback(event, sendData, this);
|
|
71190
|
+
}
|
|
71169
71191
|
|
|
71170
71192
|
this.DrawValueLabel=function(point)
|
|
71171
71193
|
{
|
|
@@ -71173,6 +71195,8 @@ function ChartDrawPictureHorizontalLine()
|
|
|
71173
71195
|
if (this.Frame.IsHScreen) return; //不支持横屏
|
|
71174
71196
|
|
|
71175
71197
|
var y=point.Y;
|
|
71198
|
+
var yFixed=ToFixedPoint2(this.LineWidth,y);
|
|
71199
|
+
|
|
71176
71200
|
var yValue=this.Frame.GetYData(y);
|
|
71177
71201
|
var text=yValue.toFixed(2);
|
|
71178
71202
|
|
|
@@ -71181,12 +71205,27 @@ function ChartDrawPictureHorizontalLine()
|
|
|
71181
71205
|
|
|
71182
71206
|
this.Canvas.font=config.Font;
|
|
71183
71207
|
var textHeight=this.Canvas.measureText("擎").width;
|
|
71184
|
-
var textWidth=this.Canvas.measureText(text).width;
|
|
71185
71208
|
|
|
71186
71209
|
if (config.Left.IsShow && this.Frame.ChartBorder.Left>5)
|
|
71187
71210
|
{
|
|
71211
|
+
var leftText=text;
|
|
71212
|
+
if (config.Left.Text) leftText=config.Left.Text;
|
|
71213
|
+
var textWidth=this.Canvas.measureText(leftText).width;
|
|
71214
|
+
var left=border.Left;
|
|
71215
|
+
if (IFrameSplitOperator.IsNumber(config.Left.LineOffset)&& config.Left.LineOffset!==0)
|
|
71216
|
+
{
|
|
71217
|
+
left-=config.Left.LineOffset;
|
|
71218
|
+
this.Canvas.strokeStyle=this.LineColor;
|
|
71219
|
+
this.SetLineWidth();
|
|
71220
|
+
this.Canvas.beginPath();
|
|
71221
|
+
this.Canvas.moveTo(border.Left,yFixed);
|
|
71222
|
+
this.Canvas.lineTo(left,yFixed);
|
|
71223
|
+
this.Canvas.stroke();
|
|
71224
|
+
this.RestoreLineWidth();
|
|
71225
|
+
}
|
|
71226
|
+
|
|
71188
71227
|
var margin=config.Left.Margin;
|
|
71189
|
-
var rtBG={ Right:
|
|
71228
|
+
var rtBG={ Right:left+1, Height:textHeight+margin.Top+margin.Bottom, Width:textWidth+margin.Left+margin.Right };
|
|
71190
71229
|
rtBG.Top=y-textHeight/2-margin.Top;
|
|
71191
71230
|
rtBG.Bottom=rtBG.Top+rtBG.Height;
|
|
71192
71231
|
rtBG.Left=rtBG.Right-rtBG.Width;
|
|
@@ -71200,13 +71239,30 @@ function ChartDrawPictureHorizontalLine()
|
|
|
71200
71239
|
var xText=rtBG.Left+margin.Left;
|
|
71201
71240
|
var yText=rtBG.Top+margin.Top;
|
|
71202
71241
|
this.Canvas.fillStyle=config.TextColor;
|
|
71203
|
-
this.Canvas.fillText(
|
|
71242
|
+
this.Canvas.fillText(leftText,xText,yText);
|
|
71204
71243
|
}
|
|
71205
71244
|
|
|
71206
71245
|
if (config.Right.IsShow && this.Frame.ChartBorder.Right>5)
|
|
71207
71246
|
{
|
|
71247
|
+
var rightText=text;
|
|
71248
|
+
if (config.Right.Text) rightText=config.Right.Text;
|
|
71249
|
+
var textWidth=this.Canvas.measureText(rightText).width;
|
|
71250
|
+
|
|
71251
|
+
var left=border.Right;
|
|
71252
|
+
if (IFrameSplitOperator.IsNumber(config.Right.LineOffset)&& config.Right.LineOffset!==0)
|
|
71253
|
+
{
|
|
71254
|
+
left+=config.Right.LineOffset;
|
|
71255
|
+
this.Canvas.strokeStyle=this.LineColor;
|
|
71256
|
+
this.SetLineWidth();
|
|
71257
|
+
this.Canvas.beginPath();
|
|
71258
|
+
this.Canvas.moveTo(border.Right,yFixed);
|
|
71259
|
+
this.Canvas.lineTo(left,yFixed);
|
|
71260
|
+
this.Canvas.stroke();
|
|
71261
|
+
this.RestoreLineWidth();
|
|
71262
|
+
}
|
|
71263
|
+
|
|
71208
71264
|
var margin=config.Right.Margin;
|
|
71209
|
-
var rtBG={ Left:
|
|
71265
|
+
var rtBG={ Left:left-1, Height:textHeight+margin.Top+margin.Bottom, Width:textWidth+margin.Left+margin.Right };
|
|
71210
71266
|
rtBG.Top=y-textHeight/2-margin.Top;
|
|
71211
71267
|
rtBG.Bottom=rtBG.Top+rtBG.Height;
|
|
71212
71268
|
rtBG.Right=rtBG.Left+rtBG.Width;
|
|
@@ -71220,7 +71276,7 @@ function ChartDrawPictureHorizontalLine()
|
|
|
71220
71276
|
var xText=rtBG.Left+margin.Left;
|
|
71221
71277
|
var yText=rtBG.Top+margin.Top;
|
|
71222
71278
|
this.Canvas.fillStyle=config.TextColor;
|
|
71223
|
-
this.Canvas.fillText(
|
|
71279
|
+
this.Canvas.fillText(rightText,xText,yText);
|
|
71224
71280
|
}
|
|
71225
71281
|
}
|
|
71226
71282
|
|
|
@@ -91544,7 +91600,6 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
91544
91600
|
if (item)
|
|
91545
91601
|
{
|
|
91546
91602
|
drawPicture=item.Create();
|
|
91547
|
-
drawPicture.HQChart=this;
|
|
91548
91603
|
}
|
|
91549
91604
|
|
|
91550
91605
|
if (!drawPicture) //iconfont图标
|
|
@@ -91567,6 +91622,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
91567
91622
|
drawPicture.Period=this.Period;
|
|
91568
91623
|
drawPicture.Right=this.Right;
|
|
91569
91624
|
drawPicture.Option=this.ChartDrawOption;
|
|
91625
|
+
drawPicture.HQChart=this;
|
|
91570
91626
|
|
|
91571
91627
|
if (callback) drawPicture.FinishedCallback=callback; //完成通知上层回调
|
|
91572
91628
|
if (option) drawPicture.SetOption(option);
|
|
@@ -91597,8 +91653,10 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
91597
91653
|
drawPicture.Period=this.Period;
|
|
91598
91654
|
drawPicture.Right=this.Right;
|
|
91599
91655
|
drawPicture.Option=this.ChartDrawOption;
|
|
91656
|
+
drawPicture.HQChart=this;
|
|
91600
91657
|
if (obj.Value) drawPicture.Value=obj.Value;
|
|
91601
91658
|
if (obj.Guid) drawPicture.Guid=obj.Guid;
|
|
91659
|
+
if (obj.CacheData) drawPicture.CacheData=obj.CacheData; //缓存数据
|
|
91602
91660
|
|
|
91603
91661
|
if (drawPicture.ImportStorageData) drawPicture.ImportStorageData(obj);
|
|
91604
91662
|
drawPicture.SetOption(obj);
|
|
@@ -92214,6 +92272,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
92214
92272
|
drawPicture.Status=10;
|
|
92215
92273
|
drawPicture.Frame=this.Frame.SubFrame[item.FrameID].Frame; //绑定框架坐标
|
|
92216
92274
|
drawPicture.Option=this.ChartDrawOption;
|
|
92275
|
+
drawPicture.HQChart=this;
|
|
92217
92276
|
|
|
92218
92277
|
if (drawPicture.ImportStorageData) drawPicture.ImportStorageData(item);
|
|
92219
92278
|
if (drawPicture.Period!=this.Period)
|
|
@@ -99976,6 +100035,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
99976
100035
|
drawPicture.Symbol=this.Symbol;
|
|
99977
100036
|
drawPicture.Period=888888888;
|
|
99978
100037
|
drawPicture.Option=this.ChartDrawOption;
|
|
100038
|
+
drawPicture.HQChart=this;
|
|
99979
100039
|
|
|
99980
100040
|
if (callback) drawPicture.FinishedCallback=callback; //完成通知上层回调
|
|
99981
100041
|
if (option) drawPicture.SetOption(option);
|
|
@@ -100006,8 +100066,10 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
100006
100066
|
drawPicture.Frame=this.Frame.SubFrame[obj.FrameID].Frame; //绑定框架坐标
|
|
100007
100067
|
drawPicture.Symbol=this.Symbol;
|
|
100008
100068
|
drawPicture.Period=888888888;
|
|
100069
|
+
drawPicture.HQChart=this;
|
|
100009
100070
|
if (obj.Value) drawPicture.Value=obj.Value;
|
|
100010
100071
|
if (obj.Guid) drawPicture.Guid=obj.Guid;
|
|
100072
|
+
if (obj.CacheData) drawPicture.CacheData=obj.CacheData; //缓存数据
|
|
100011
100073
|
|
|
100012
100074
|
if (drawPicture.ImportStorageData) drawPicture.ImportStorageData(obj);
|
|
100013
100075
|
drawPicture.SetOption(obj);
|
|
@@ -100053,6 +100115,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
100053
100115
|
|
|
100054
100116
|
drawPicture.Canvas=this.Canvas;
|
|
100055
100117
|
drawPicture.Status=10;
|
|
100118
|
+
drawPicture.HQChart=this;
|
|
100056
100119
|
drawPicture.Frame=this.Frame.SubFrame[item.FrameID].Frame; //绑定框架坐标
|
|
100057
100120
|
if (drawPicture.ImportStorageData) drawPicture.ImportStorageData(item);
|
|
100058
100121
|
drawPicture.ResetXValue();
|
|
@@ -153733,7 +153796,7 @@ function ScrollBarBGChart()
|
|
|
153733
153796
|
|
|
153734
153797
|
|
|
153735
153798
|
|
|
153736
|
-
var HQCHART_VERSION="1.1.
|
|
153799
|
+
var HQCHART_VERSION="1.1.15151";
|
|
153737
153800
|
|
|
153738
153801
|
function PrintHQChartVersion()
|
|
153739
153802
|
{
|
|
@@ -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:}
|
|
@@ -71063,9 +71070,9 @@ function ChartDrawPictureHorizontalLine()
|
|
|
71063
71070
|
|
|
71064
71071
|
this.LabelConfig=
|
|
71065
71072
|
{
|
|
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
|
|
71073
|
+
Left:{ IsShow:true, Margin:{ Left:5, Top:4, Bottom:2, Right:5 }, LineOffset:null, Text:null },
|
|
71074
|
+
Right:{ IsShow:true, Margin:{ Left:5, Top:4, Bottom:2, Right:5 }, LineOffset:null, Text:null },
|
|
71075
|
+
Font:`${12*GetDevicePixelRatio()}px 微软雅黑`, TextColor:"rgb(255,255,255)", BGColor:null,
|
|
71069
71076
|
};
|
|
71070
71077
|
|
|
71071
71078
|
this.InsideLabelConfig=
|
|
@@ -71164,6 +71171,9 @@ function ChartDrawPictureHorizontalLine()
|
|
|
71164
71171
|
left=this.Frame.ChartBorder.GetTop();
|
|
71165
71172
|
right=this.Frame.ChartBorder.GetBottom();
|
|
71166
71173
|
}
|
|
71174
|
+
|
|
71175
|
+
|
|
71176
|
+
|
|
71167
71177
|
this.ClipFrame();
|
|
71168
71178
|
|
|
71169
71179
|
this.Canvas.strokeStyle=this.LineColor;
|
|
@@ -71203,6 +71213,8 @@ function ChartDrawPictureHorizontalLine()
|
|
|
71203
71213
|
//画点
|
|
71204
71214
|
this.DrawPoint(drawPoint);
|
|
71205
71215
|
|
|
71216
|
+
this.FormatLabelTextEvent(drawPoint);
|
|
71217
|
+
|
|
71206
71218
|
//显示价格
|
|
71207
71219
|
this.DrawInsideLabel(drawPoint[0])
|
|
71208
71220
|
|
|
@@ -71210,6 +71222,16 @@ function ChartDrawPictureHorizontalLine()
|
|
|
71210
71222
|
|
|
71211
71223
|
this.DrawValueLabel(drawPoint[0]);
|
|
71212
71224
|
}
|
|
71225
|
+
|
|
71226
|
+
this.FormatLabelTextEvent=function(point)
|
|
71227
|
+
{
|
|
71228
|
+
if (!this.HQChart) return;
|
|
71229
|
+
var event=this.HQChart.GetEventCallback(JSCHART_EVENT_ID.ON_FORMAT_DRAW_HLINE_LABEL);
|
|
71230
|
+
if (!event || !event.Callback) return;
|
|
71231
|
+
|
|
71232
|
+
var sendData={ ID:this.Guid, LabelConfig:this.LabelConfig, InsideLabelConfig:this.InsideLabelConfig };
|
|
71233
|
+
event.Callback(event, sendData, this);
|
|
71234
|
+
}
|
|
71213
71235
|
|
|
71214
71236
|
this.DrawValueLabel=function(point)
|
|
71215
71237
|
{
|
|
@@ -71217,6 +71239,8 @@ function ChartDrawPictureHorizontalLine()
|
|
|
71217
71239
|
if (this.Frame.IsHScreen) return; //不支持横屏
|
|
71218
71240
|
|
|
71219
71241
|
var y=point.Y;
|
|
71242
|
+
var yFixed=ToFixedPoint2(this.LineWidth,y);
|
|
71243
|
+
|
|
71220
71244
|
var yValue=this.Frame.GetYData(y);
|
|
71221
71245
|
var text=yValue.toFixed(2);
|
|
71222
71246
|
|
|
@@ -71225,12 +71249,27 @@ function ChartDrawPictureHorizontalLine()
|
|
|
71225
71249
|
|
|
71226
71250
|
this.Canvas.font=config.Font;
|
|
71227
71251
|
var textHeight=this.Canvas.measureText("擎").width;
|
|
71228
|
-
var textWidth=this.Canvas.measureText(text).width;
|
|
71229
71252
|
|
|
71230
71253
|
if (config.Left.IsShow && this.Frame.ChartBorder.Left>5)
|
|
71231
71254
|
{
|
|
71255
|
+
var leftText=text;
|
|
71256
|
+
if (config.Left.Text) leftText=config.Left.Text;
|
|
71257
|
+
var textWidth=this.Canvas.measureText(leftText).width;
|
|
71258
|
+
var left=border.Left;
|
|
71259
|
+
if (IFrameSplitOperator.IsNumber(config.Left.LineOffset)&& config.Left.LineOffset!==0)
|
|
71260
|
+
{
|
|
71261
|
+
left-=config.Left.LineOffset;
|
|
71262
|
+
this.Canvas.strokeStyle=this.LineColor;
|
|
71263
|
+
this.SetLineWidth();
|
|
71264
|
+
this.Canvas.beginPath();
|
|
71265
|
+
this.Canvas.moveTo(border.Left,yFixed);
|
|
71266
|
+
this.Canvas.lineTo(left,yFixed);
|
|
71267
|
+
this.Canvas.stroke();
|
|
71268
|
+
this.RestoreLineWidth();
|
|
71269
|
+
}
|
|
71270
|
+
|
|
71232
71271
|
var margin=config.Left.Margin;
|
|
71233
|
-
var rtBG={ Right:
|
|
71272
|
+
var rtBG={ Right:left+1, Height:textHeight+margin.Top+margin.Bottom, Width:textWidth+margin.Left+margin.Right };
|
|
71234
71273
|
rtBG.Top=y-textHeight/2-margin.Top;
|
|
71235
71274
|
rtBG.Bottom=rtBG.Top+rtBG.Height;
|
|
71236
71275
|
rtBG.Left=rtBG.Right-rtBG.Width;
|
|
@@ -71244,13 +71283,30 @@ function ChartDrawPictureHorizontalLine()
|
|
|
71244
71283
|
var xText=rtBG.Left+margin.Left;
|
|
71245
71284
|
var yText=rtBG.Top+margin.Top;
|
|
71246
71285
|
this.Canvas.fillStyle=config.TextColor;
|
|
71247
|
-
this.Canvas.fillText(
|
|
71286
|
+
this.Canvas.fillText(leftText,xText,yText);
|
|
71248
71287
|
}
|
|
71249
71288
|
|
|
71250
71289
|
if (config.Right.IsShow && this.Frame.ChartBorder.Right>5)
|
|
71251
71290
|
{
|
|
71291
|
+
var rightText=text;
|
|
71292
|
+
if (config.Right.Text) rightText=config.Right.Text;
|
|
71293
|
+
var textWidth=this.Canvas.measureText(rightText).width;
|
|
71294
|
+
|
|
71295
|
+
var left=border.Right;
|
|
71296
|
+
if (IFrameSplitOperator.IsNumber(config.Right.LineOffset)&& config.Right.LineOffset!==0)
|
|
71297
|
+
{
|
|
71298
|
+
left+=config.Right.LineOffset;
|
|
71299
|
+
this.Canvas.strokeStyle=this.LineColor;
|
|
71300
|
+
this.SetLineWidth();
|
|
71301
|
+
this.Canvas.beginPath();
|
|
71302
|
+
this.Canvas.moveTo(border.Right,yFixed);
|
|
71303
|
+
this.Canvas.lineTo(left,yFixed);
|
|
71304
|
+
this.Canvas.stroke();
|
|
71305
|
+
this.RestoreLineWidth();
|
|
71306
|
+
}
|
|
71307
|
+
|
|
71252
71308
|
var margin=config.Right.Margin;
|
|
71253
|
-
var rtBG={ Left:
|
|
71309
|
+
var rtBG={ Left:left-1, Height:textHeight+margin.Top+margin.Bottom, Width:textWidth+margin.Left+margin.Right };
|
|
71254
71310
|
rtBG.Top=y-textHeight/2-margin.Top;
|
|
71255
71311
|
rtBG.Bottom=rtBG.Top+rtBG.Height;
|
|
71256
71312
|
rtBG.Right=rtBG.Left+rtBG.Width;
|
|
@@ -71264,7 +71320,7 @@ function ChartDrawPictureHorizontalLine()
|
|
|
71264
71320
|
var xText=rtBG.Left+margin.Left;
|
|
71265
71321
|
var yText=rtBG.Top+margin.Top;
|
|
71266
71322
|
this.Canvas.fillStyle=config.TextColor;
|
|
71267
|
-
this.Canvas.fillText(
|
|
71323
|
+
this.Canvas.fillText(rightText,xText,yText);
|
|
71268
71324
|
}
|
|
71269
71325
|
}
|
|
71270
71326
|
|
|
@@ -91588,7 +91644,6 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
91588
91644
|
if (item)
|
|
91589
91645
|
{
|
|
91590
91646
|
drawPicture=item.Create();
|
|
91591
|
-
drawPicture.HQChart=this;
|
|
91592
91647
|
}
|
|
91593
91648
|
|
|
91594
91649
|
if (!drawPicture) //iconfont图标
|
|
@@ -91611,6 +91666,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
91611
91666
|
drawPicture.Period=this.Period;
|
|
91612
91667
|
drawPicture.Right=this.Right;
|
|
91613
91668
|
drawPicture.Option=this.ChartDrawOption;
|
|
91669
|
+
drawPicture.HQChart=this;
|
|
91614
91670
|
|
|
91615
91671
|
if (callback) drawPicture.FinishedCallback=callback; //完成通知上层回调
|
|
91616
91672
|
if (option) drawPicture.SetOption(option);
|
|
@@ -91641,8 +91697,10 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
91641
91697
|
drawPicture.Period=this.Period;
|
|
91642
91698
|
drawPicture.Right=this.Right;
|
|
91643
91699
|
drawPicture.Option=this.ChartDrawOption;
|
|
91700
|
+
drawPicture.HQChart=this;
|
|
91644
91701
|
if (obj.Value) drawPicture.Value=obj.Value;
|
|
91645
91702
|
if (obj.Guid) drawPicture.Guid=obj.Guid;
|
|
91703
|
+
if (obj.CacheData) drawPicture.CacheData=obj.CacheData; //缓存数据
|
|
91646
91704
|
|
|
91647
91705
|
if (drawPicture.ImportStorageData) drawPicture.ImportStorageData(obj);
|
|
91648
91706
|
drawPicture.SetOption(obj);
|
|
@@ -92258,6 +92316,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
92258
92316
|
drawPicture.Status=10;
|
|
92259
92317
|
drawPicture.Frame=this.Frame.SubFrame[item.FrameID].Frame; //绑定框架坐标
|
|
92260
92318
|
drawPicture.Option=this.ChartDrawOption;
|
|
92319
|
+
drawPicture.HQChart=this;
|
|
92261
92320
|
|
|
92262
92321
|
if (drawPicture.ImportStorageData) drawPicture.ImportStorageData(item);
|
|
92263
92322
|
if (drawPicture.Period!=this.Period)
|
|
@@ -100020,6 +100079,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
100020
100079
|
drawPicture.Symbol=this.Symbol;
|
|
100021
100080
|
drawPicture.Period=888888888;
|
|
100022
100081
|
drawPicture.Option=this.ChartDrawOption;
|
|
100082
|
+
drawPicture.HQChart=this;
|
|
100023
100083
|
|
|
100024
100084
|
if (callback) drawPicture.FinishedCallback=callback; //完成通知上层回调
|
|
100025
100085
|
if (option) drawPicture.SetOption(option);
|
|
@@ -100050,8 +100110,10 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
100050
100110
|
drawPicture.Frame=this.Frame.SubFrame[obj.FrameID].Frame; //绑定框架坐标
|
|
100051
100111
|
drawPicture.Symbol=this.Symbol;
|
|
100052
100112
|
drawPicture.Period=888888888;
|
|
100113
|
+
drawPicture.HQChart=this;
|
|
100053
100114
|
if (obj.Value) drawPicture.Value=obj.Value;
|
|
100054
100115
|
if (obj.Guid) drawPicture.Guid=obj.Guid;
|
|
100116
|
+
if (obj.CacheData) drawPicture.CacheData=obj.CacheData; //缓存数据
|
|
100055
100117
|
|
|
100056
100118
|
if (drawPicture.ImportStorageData) drawPicture.ImportStorageData(obj);
|
|
100057
100119
|
drawPicture.SetOption(obj);
|
|
@@ -100097,6 +100159,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
100097
100159
|
|
|
100098
100160
|
drawPicture.Canvas=this.Canvas;
|
|
100099
100161
|
drawPicture.Status=10;
|
|
100162
|
+
drawPicture.HQChart=this;
|
|
100100
100163
|
drawPicture.Frame=this.Frame.SubFrame[item.FrameID].Frame; //绑定框架坐标
|
|
100101
100164
|
if (drawPicture.ImportStorageData) drawPicture.ImportStorageData(item);
|
|
100102
100165
|
drawPicture.ResetXValue();
|
|
@@ -165310,8 +165373,9 @@ function JSDialogModifyIndexParam()
|
|
|
165310
165373
|
input.className='UMyChart_ModifyIndexParam_Input';
|
|
165311
165374
|
input.type="number";
|
|
165312
165375
|
input.step=1;
|
|
165313
|
-
input.addEventListener("mouseup", (e)=>{ this.OnParamMouseUp(e)});
|
|
165314
|
-
input.addEventListener("keyup", (e)=>{ this.OnParamKeyUp(e)})
|
|
165376
|
+
//input.addEventListener("mouseup", (e)=>{ this.OnParamMouseUp(e)});
|
|
165377
|
+
//input.addEventListener("keyup", (e)=>{ this.OnParamKeyUp(e)} );
|
|
165378
|
+
input.addEventListener("input", (e)=>{ this.OnParamInput(e)} );
|
|
165315
165379
|
tdDom.appendChild(input);
|
|
165316
165380
|
rowItem.Input=input;
|
|
165317
165381
|
|
|
@@ -165440,6 +165504,7 @@ function JSDialogModifyIndexParam()
|
|
|
165440
165504
|
}
|
|
165441
165505
|
}
|
|
165442
165506
|
|
|
165507
|
+
/*
|
|
165443
165508
|
this.OnParamMouseUp=function(e)
|
|
165444
165509
|
{
|
|
165445
165510
|
var input=e.target;
|
|
@@ -165457,6 +165522,16 @@ function JSDialogModifyIndexParam()
|
|
|
165457
165522
|
|
|
165458
165523
|
this.ModifyParam(id, parseInt(value));
|
|
165459
165524
|
}
|
|
165525
|
+
*/
|
|
165526
|
+
|
|
165527
|
+
this.OnParamInput=function(e)
|
|
165528
|
+
{
|
|
165529
|
+
var input=e.target;
|
|
165530
|
+
var value=input.value;
|
|
165531
|
+
var id=input.dataset.paramid;
|
|
165532
|
+
|
|
165533
|
+
this.ModifyParam(id, parseInt(value));
|
|
165534
|
+
}
|
|
165460
165535
|
|
|
165461
165536
|
this.ModifyParam=function(id, value)
|
|
165462
165537
|
{
|
|
@@ -165734,7 +165809,7 @@ function HQChartScriptWorker()
|
|
|
165734
165809
|
|
|
165735
165810
|
|
|
165736
165811
|
|
|
165737
|
-
var HQCHART_VERSION="1.1.
|
|
165812
|
+
var HQCHART_VERSION="1.1.15151";
|
|
165738
165813
|
|
|
165739
165814
|
function PrintHQChartVersion()
|
|
165740
165815
|
{
|