hqchart 1.1.15898 → 1.1.15912
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 +15 -4
- package/package.json +1 -1
- package/src/jscommon/umychart/umychart.js +150 -22
- package/src/jscommon/umychart/umychart.min.js +1 -1
- package/src/jscommon/umychart.js +149 -21
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +151 -22
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +151 -22
package/lib/umychart.vue.js
CHANGED
|
@@ -5023,10 +5023,20 @@ if(!IFrameSplitOperator.IsNonEmptyArray(this.PointGroup))return;if(!this.MapCach
|
|
|
5023
5023
|
var mapPoint=new Map();for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var kItem=this.Data.Data[i];var key=this.BuildKey(kItem);if(!this.MapCache.has(key))continue;var mapItem=this.MapCache.get(key);if(!IFrameSplitOperator.IsNonEmptyArray(mapItem.Data))continue;if(isMinute){var x=this.ChartFrame.GetXFromIndex(j);}else{var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;var x=left+(right-left)/2;}this.CalculateItem(mapItem,kItem,x,mapPoint);}if(mapPoint.size<=0)return;this.Canvas.save();this.ClipClient(this.IsHScreen);this.DrawAllPoint(mapPoint);this.Canvas.restore();};this.CalculateItem=function(groupItem,kItem,x,mapPoint){for(var i=0;i<groupItem.Data.length;++i){var item=groupItem.Data[i];var value=item.Data.Value;if(IFrameSplitOperator.IsString(item.Data.Value))value=this.GetKValue(kItem,item.Data.Value);if(!IFrameSplitOperator.IsNumber(value))continue;var y=this.ChartFrame.GetYFromData(value,false);var strConfig=JSON.stringify(item.ColorConfig);if(!mapPoint.has(strConfig))mapPoint.set(strConfig,{AryPoint:[]});var mapItem=mapPoint.get(strConfig);mapItem.AryPoint.push({X:x,Y:y,Data:item});}};this.DrawAllPoint=function(mapPoint){var pixelRatio=GetDevicePixelRatio();var _iterator0=_createForOfIteratorHelper(mapPoint),_step0;try{for(_iterator0.s();!(_step0=_iterator0.n()).done;){var mapItem=_step0.value;var aryPoint=mapItem[1].AryPoint;if(!IFrameSplitOperator.IsNonEmptyArray(aryPoint))continue;var config=null;var path=new Path2D();var count=0;for(var i=0;i<aryPoint.length;++i){var item=aryPoint[i];if(!config)config=item.Data.ColorConfig;var pointPath=new Path2D();if(this.IsHScreen)pointPath.arc(item.Y,item.X,config.Radius*pixelRatio,0,360,false);else pointPath.arc(item.X,item.Y,config.Radius*pixelRatio,0,360,false);path.addPath(pointPath);++count;}if(count>0&&config){if(config.BGColor){this.Canvas.fillStyle=config.BGColor;//背景填充颜色
|
|
5024
5024
|
this.Canvas.fill(path);}if(config.Color){this.Canvas.lineWidth=config.LineWidth*pixelRatio;this.Canvas.strokeStyle=config.Color;this.Canvas.stroke(path);}}}}catch(err){_iterator0.e(err);}finally{_iterator0.f();}};this.GetMaxMin=function(){var range={Min:null,Max:null};if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return range;if(!this.MapCache||this.MapCache.size<=0)return range;var xPointCount=this.ChartFrame.XPointCount;for(var i=this.Data.DataOffset,j=0,k=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var kItem=this.Data.Data[i];var key=this.BuildKey(kItem);if(!this.MapCache.has(key))continue;var mapItem=this.MapCache.get(key);if(!IFrameSplitOperator.IsNonEmptyArray(mapItem.Data))continue;for(k=0;k<mapItem.Data.length;++k){var item=mapItem.Data[k];var value=item.Data.Value;if(IFrameSplitOperator.IsString(item.Data.Value))value=this.GetKValue(kItem,item.Data.Value);if(!IFrameSplitOperator.IsNumber(value))continue;if(range.Max==null)range.Max=value;else if(range.Max<value)range.Max=value;if(range.Min==null)range.Min=value;else if(range.Min>value)range.Min=value;}}return range;};}// 多文本集合2.0 支持横屏
|
|
5025
5025
|
function ChartMultiText(){this.newMethod=IChartPainting;//派生
|
|
5026
|
-
this.newMethod();delete this.newMethod;this.ClassName="ChartMultiText";this.Texts=[];//[ {Date:, Time, Value:, Text:, Color:, Font: , Baseline:, Line:{ Color:, Dash:[虚线点], KData:"H/L", Offset:[5,10], Width:线粗细 }} ]
|
|
5026
|
+
this.newMethod();delete this.newMethod;this.ClassName="ChartMultiText";this.Texts=[];//[ {Date:, Time, Value:, Text:, Color:, BGColor:, Font: , Baseline:, Align:, Line:{ Color:, Dash:[虚线点], KData:"H/L", Offset:[5,10], Width:线粗细 }} ]
|
|
5027
5027
|
this.Font=g_JSChartResource.DefaultTextFont;this.Color=g_JSChartResource.DefaultTextColor;this.IsHScreen=false;//是否横屏
|
|
5028
5028
|
this.MapCache=null;//key=date/date-time value={ Data:[] }
|
|
5029
|
-
this.GetKValue=ChartData.GetKValue;this.BuildCacheData=function(){var mapData=new Map();this.MapCache=mapData;if(!IFrameSplitOperator.IsNonEmptyArray(this.Texts))return;for(var i=0;i<this.Texts.length;++i){var item=this.Texts[i];var key=this.BuildKey(item);if(mapData.has(key)){var mapItem=mapData.get(key);mapItem.Data.push(item);}else{mapData.set(key,{Data:[item]});}}};this.DrawAllText=function(){var bHScreen=this.ChartFrame.IsHScreen===true;var isMinute=this.IsMinuteFrame();var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var xPointCount=this.ChartFrame.XPointCount;if(bHScreen){var border=this.ChartBorder.GetHScreenBorder();var chartright=border.BottomEx;var chartleft=border.TopEx;var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var left=this.ChartBorder.GetTop();var right=this.ChartBorder.GetBottom();var top=border.RightEx;var bottom=border.LeftEx;}else{var border=this.ChartBorder.GetBorder();var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;var chartleft=border.LeftEx;var left=this.ChartBorder.GetLeft();var right=this.ChartBorder.GetRight();var top=border.TopEx;var bottom=border.BottomEx;}for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var kItem=this.Data.Data[i];if(!kItem)continue;var key=this.BuildKey(kItem);if(!this.MapCache.has(key))continue;var mapItem=this.MapCache.get(key);if(!IFrameSplitOperator.IsNonEmptyArray(mapItem.Data))continue;if(isMinute){var x=this.ChartFrame.GetXFromIndex(j);}else{var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;var x=left+(right-left)/2;}for(var k=0;k<mapItem.Data.length;++k){var item=mapItem.Data[k];var y=top;if(item.Value=="TOP")y=top;else if(item.Value=="BOTTOM")y=bottom;else{var price=item.Value;if(IFrameSplitOperator.IsString(item.Value))price=this.GetKValue(kItem,item.Value);y=this.ChartFrame.GetYFromData(price,false);}if(item.
|
|
5029
|
+
this.GetKValue=ChartData.GetKValue;this.BuildCacheData=function(){var mapData=new Map();this.MapCache=mapData;if(!IFrameSplitOperator.IsNonEmptyArray(this.Texts))return;for(var i=0;i<this.Texts.length;++i){var item=this.Texts[i];var key=this.BuildKey(item);if(mapData.has(key)){var mapItem=mapData.get(key);mapItem.Data.push(item);}else{mapData.set(key,{Data:[item]});}}};this.DrawAllText=function(){var bHScreen=this.ChartFrame.IsHScreen===true;var isMinute=this.IsMinuteFrame();var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var xPointCount=this.ChartFrame.XPointCount;if(bHScreen){var border=this.ChartBorder.GetHScreenBorder();var chartright=border.BottomEx;var chartleft=border.TopEx;var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var left=this.ChartBorder.GetTop();var right=this.ChartBorder.GetBottom();var top=border.RightEx;var bottom=border.LeftEx;}else{var border=this.ChartBorder.GetBorder();var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;var chartleft=border.LeftEx;var left=this.ChartBorder.GetLeft();var right=this.ChartBorder.GetRight();var top=border.TopEx;var bottom=border.BottomEx;}this.Canvas.textAlign="left";this.Canvas.textBaseline='bottom';for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var kItem=this.Data.Data[i];if(!kItem)continue;var key=this.BuildKey(kItem);if(!this.MapCache.has(key))continue;var mapItem=this.MapCache.get(key);if(!IFrameSplitOperator.IsNonEmptyArray(mapItem.Data))continue;if(isMinute){var x=this.ChartFrame.GetXFromIndex(j);}else{var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;var x=left+(right-left)/2;}for(var k=0;k<mapItem.Data.length;++k){var item=mapItem.Data[k];var y=top;if(item.Value=="TOP")y=top;else if(item.Value=="BOTTOM")y=bottom;else{var price=item.Value;if(IFrameSplitOperator.IsString(item.Value))price=this.GetKValue(kItem,item.Value);y=this.ChartFrame.GetYFromData(price,false);}if(item.Font)this.Canvas.font=item.Font;else this.Canvas.font=this.Font;var textWidth=this.Canvas.measureText(item.Text).width;var textHeight=this.Canvas.measureText("擎").width;var cellWidth=textWidth;var cellHeight=textHeight;var xTextOffset=0,yTextOffset=0;if(item.Margin){if(IFrameSplitOperator.IsNumber(item.Margin.Left))cellWidth+=item.Margin.Left;if(IFrameSplitOperator.IsNumber(item.Margin.Right))cellWidth+=item.Margin.Right;if(IFrameSplitOperator.IsNumber(item.Margin.Top))cellHeight+=item.Margin.Top;if(IFrameSplitOperator.IsNumber(item.Margin.Bottom))cellHeight+=item.Margin.Bottom;if(IFrameSplitOperator.IsNumber(item.Margin.XOffset))xTextOffset=item.Margin.XOffset;if(IFrameSplitOperator.IsNumber(item.Margin.YOffset))yTextOffset=item.Margin.YOffset;}if(this.IsHScreen){var rtText={Left:y-cellHeight/2,Width:cellHeight,Top:x-cellWidth/2,Height:cellWidth};rtText.Right=rtText.Left+rtText.Width;rtText.Bottom=rtText.Top+rtText.Height;if(item.Baseline==1)//y=顶部
|
|
5030
|
+
{rtText.Right=y;rtText.Left=rtText.Right-rtText.Width;}else if(item.Baseline==2)//y=底部
|
|
5031
|
+
{rtText.Left=y;rtText.Right=rtText.Left+rtText.Width;}if(IFrameSplitOperator.IsNumber(item.YMove)){rtText.Left-=item.YMove;rtText.Right-=item.YMove;}}else{var rtText={Left:x-cellWidth/2,Width:cellWidth,Top:y-cellHeight/2,Height:cellHeight};rtText.Right=rtText.Left+rtText.Width;rtText.Bottom=rtText.Top+rtText.Height;//左右对齐 默认居中
|
|
5032
|
+
if(item.Align==1)//左
|
|
5033
|
+
{rtText.Left=x;rtText.Right=rtText.Left+rtText.Width;if(item.XLine&&IFrameSplitOperator.IsNumber(item.XLine.Width)){rtText.Left+=item.XLine.Width;rtText.Right+=item.XLine.Width;if(item.XLine.Color)//画线
|
|
5034
|
+
{this.Canvas.save();this.Canvas.lineWidth=1*GetDevicePixelRatio();//线宽
|
|
5035
|
+
this.Canvas.strokeStyle=item.XLine.Color;this.Canvas.beginPath();var arrawSize=6*GetDevicePixelRatio();if(IFrameSplitOperator.IsNumber(item.XLine.ArrawSize))arrawSize=item.XLine.ArrawSize;// 箭头主干横线
|
|
5036
|
+
this.Canvas.moveTo(x,y);this.Canvas.lineTo(rtText.Left,y);this.Canvas.moveTo(x,y);this.Canvas.lineTo(x+arrawSize/2,y+arrawSize/3);this.Canvas.moveTo(x,y);this.Canvas.lineTo(x+arrawSize/2,y-arrawSize/3);this.Canvas.stroke();this.Canvas.restore();}}}else if(item.Align==2)//右
|
|
5037
|
+
{rtText.Right=x;rtText.Left=rtText.Right-rtText.Width;}else{if(rtText.Left<chartleft){rtText.Left=chartleft;rtText.Right=rtText.Left+rtText.Width;}else if(rtText.Right>chartright){rtText.Right=chartright;rtText.Left=rtText.Right-rtText.Width;}}if(item.Baseline==1)//y=顶部
|
|
5038
|
+
{rtText.Top=y;rtText.Bottom=rtText.Top+rtText.Height;}else if(item.Baseline==2)//y=底部
|
|
5039
|
+
{rtText.Bottom=y;rtText.Top=rtText.Bottom-rtText.Height;}if(IFrameSplitOperator.IsNumber(item.YMove)){rtText.Top+=item.YMove;rtText.Bottom+=item.YMove;}}if(this.IsHScreen){if(item.BGColor){this.Canvas.fillStyle=item.BGColor;this.Canvas.fillRect(rtText.Left,rtText.Top,rtText.Width,rtText.Height);}var yText=rtText.Top+xTextOffset;var xText=rtText.Left-yTextOffset;this.Canvas.save();this.Canvas.translate(xText,yText);this.Canvas.rotate(90*Math.PI/180);if(item.Color)this.Canvas.fillStyle=item.Color;else this.Canvas.fillStyle=this.Color;this.Canvas.fillText(item.Text,0,0);this.Canvas.restore();}else{if(item.BGColor){this.Canvas.fillStyle=item.BGColor;this.Canvas.fillRect(rtText.Left,rtText.Top,rtText.Width,rtText.Height);}if(item.Color)this.Canvas.fillStyle=item.Color;else this.Canvas.fillStyle=this.Color;this.Canvas.fillText(item.Text,rtText.Left+xTextOffset,rtText.Bottom+yTextOffset);}if(item.Line){var price=item.Line.KData=="H"?kItem.High:kItem.Low;var yPrice=this.ChartFrame.GetYFromData(price,false);var yText=yPrice;if(this.IsHScreen){if(yPrice<rtText.Left)yText=rtText.Left;else if(yPrice>rtText.Right)yText=rtText.Right;}else{if(yPrice>rtText.Bottom)yText=rtText.Bottom;else if(yPrice<rtText.Top)yText=rtText.Top;}if(Array.isArray(item.Line.Offset)&&item.Line.Offset.length==2){if(yText>yPrice)//文字在下方
|
|
5030
5040
|
{yText-=item.Line.Offset[1];yPrice+=item.Line.Offset[0];}else if(yText<yPrice){yText+=item.Line.Offset[1];yPrice-=item.Line.Offset[0];}}this.Canvas.save();if(item.Line.Dash)this.Canvas.setLineDash(item.Line.Dash);//虚线
|
|
5031
5041
|
if(item.Line.Width>0)this.Canvas.lineWidth=item.Line.Width;//线宽
|
|
5032
5042
|
this.Canvas.strokeStyle=item.Line.Color;this.Canvas.beginPath();if(this.IsHScreen){this.Canvas.moveTo(yText,ToFixedPoint(x));this.Canvas.lineTo(yPrice,ToFixedPoint(x));}else{this.Canvas.moveTo(ToFixedPoint(x),yText);this.Canvas.lineTo(ToFixedPoint(x),yPrice);}this.Canvas.stroke();this.Canvas.restore();}}}};this.Draw=function(){if(!this.IsShow||this.ChartFrame.IsMinSize||!this.IsVisible)return;if(this.IsShowIndexTitleOnly())return;if(this.IsHideScriptIndex())return;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return;//k线数据
|
|
@@ -16784,7 +16794,7 @@ if(dayItem.Text){var textWidth=this.Canvas.measureText(dayItem.Text).width;xText
|
|
|
16784
16794
|
{yCell=rtCell.Bottom;xCell=left;}++j;}}},{key:"DrawMarkDay",value:function DrawMarkDay(dayItem,markItem,rtCell,yText){var config=this.MarkDayConfig;var radius=config.Dots.Radius;var yOffset=config.Dots.YOffset;var color=config.Dots.Color;if(markItem.Color)color=markItem.Color;if(IFrameSplitOperator.IsNumber(markItem.YOffset))yOffset=markItem.YOffset;if(IFrameSplitOperator.IsNumber(markItem.Radius))radius=markItem.Radius;var x=rtCell.Left+rtCell.Width/2;var y=yText+yOffset;this.Canvas.fillStyle=color;this.Canvas.beginPath();this.Canvas.arc(x,y,radius,0,Math.PI*2);this.Canvas.fill();}},{key:"PtInCell",value:function PtInCell(x,y){if(!IFrameSplitOperator.IsNonEmptyArray(this.AryCellRect))return null;for(var i=0;i<this.AryCellRect.length;++i){var item=this.AryCellRect[i];var rtCell=item.Rect;if(x>=rtCell.Left&&x<=rtCell.Right&&y>=rtCell.Top&&y<=rtCell.Bottom){var data={Rect:rtCell,Type:item.Type,Data:item.Data};return data;}}return null;}},{key:"OnMouseOn",value:function OnMouseOn(x,y,e){var pixelTatio=GetDevicePixelRatio();var insidePoint={X:x/pixelTatio,Y:y/pixelTatio};var uiElement;if(this.UIElement)uiElement={Left:this.UIElement.getBoundingClientRect().left,Top:this.UIElement.getBoundingClientRect().top};else uiElement={Left:null,Top:null};var bDraw=false;var cell=this.PtInCell(x,y);if(cell){bDraw=false;var selData=this.MoveOnData.Data;if(selData&&cell.Type==selData.Type){if(cell.Type===JSCHART_CALENDAR_BUTTON_ID.DAY_CELL_ID||cell.Type===JSCHART_CALENDAR_BUTTON_ID.MONTH_CELL_ID){if(cell.Data.Date!=selData.Data.Date){this.MoveOnData.Data={Type:cell.Type,Data:cell.Data};bDraw=true;}}}else{this.MoveOnData.Data={Type:cell.Type,Data:cell.Data};bDraw=true;}return{Redraw:bDraw,Cell:cell};}if(this.MoveOnData.Data){this.MoveOnData.Data=null;bDraw=true;}return{Redraw:bDraw,Cell:null};}},{key:"OnMouseDown",value:function OnMouseDown(x,y,e){var cell=this.PtInCell(x,y);if(!cell)return null;var bDraw=false;return{Type:cell.Type,Redraw:bDraw,Data:cell.Data};}},{key:"SetSelectedDay",value:function SetSelectedDay(aryData){this.ArySelectedDay=[];if(IFrameSplitOperator.IsNonEmptyArray(aryData))this.ArySelectedDay=aryData.slice();}}]);}();/********************************************************************************
|
|
16785
16795
|
* 版本信息输出
|
|
16786
16796
|
*
|
|
16787
|
-
*/var HQCHART_VERSION="1.1.
|
|
16797
|
+
*/var HQCHART_VERSION="1.1.15911";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: ".concat(HQCHART_VERSION," \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n************************************************************************************************************************************************************************** \n ");console.log(logo);}PrintHQChartVersion();//把给外界调用的方法暴露出来
|
|
16788
16798
|
var _default=exports["default"]=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
|
|
16789
16799
|
// BaseIndex:BaseIndex,
|
|
16790
16800
|
// ChartLine:ChartLine,
|
|
@@ -16814,5 +16824,6 @@ HQPriceStringFormat:HQPriceStringFormat//分时图,K线图Y轴 十字光标输
|
|
|
16814
16824
|
}),"JS_ID",{JSCHART_EVENT_ID:JSCHART_EVENT_ID,JSCHART_OPERATOR_ID:JSCHART_OPERATOR_ID,JSCHART_DRAG_ID:JSCHART_DRAG_ID,JSCHART_BUTTON_ID:JSCHART_BUTTON_ID,JSCHART_DATA_FIELD_ID:JSCHART_DATA_FIELD_ID,JSCHART_WORKER_MESSAGE_ID:JSCHART_WORKER_MESSAGE_ID,JSCHART_MENU_ID:JSCHART_MENU_ID,JSCHART_TRADE_STATUS_ID:JSCHART_TRADE_STATUS_ID,//交易状态
|
|
16815
16825
|
JSCHART_CORSSCURSOR_STATUS_ID:JSCHART_CORSSCURSOR_STATUS_ID,//十字光标状态
|
|
16816
16826
|
CONDITION_PERIOD:CONDITION_PERIOD,//指标周期条件枚举
|
|
16817
|
-
DECIMAL_ID:DECIMAL_ID
|
|
16827
|
+
DECIMAL_ID:DECIMAL_ID,//指标标题栏 显示小数位数枚举
|
|
16828
|
+
JSCHART_TEMPORARY_ATTRIBUTE:JSCHART_TEMPORARY_ATTRIBUTE//图形临时属性
|
|
16818
16829
|
}),"HQChartScriptWorker",HQChartScriptWorker),"JSPopMenu",JSPopMenu),_defineProperty(_jsChartInit$jsChartS,"JSDialogDrawTool",JSDialogDrawTool));
|
package/package.json
CHANGED
|
@@ -52711,7 +52711,7 @@ function ChartMultiText()
|
|
|
52711
52711
|
delete this.newMethod;
|
|
52712
52712
|
|
|
52713
52713
|
this.ClassName="ChartMultiText";
|
|
52714
|
-
this.Texts=[]; //[ {Date:, Time, Value:, Text:, Color:, Font: , Baseline:, Line:{ Color:, Dash:[虚线点], KData:"H/L", Offset:[5,10], Width:线粗细 }} ]
|
|
52714
|
+
this.Texts=[]; //[ {Date:, Time, Value:, Text:, Color:, BGColor:, Font: , Baseline:, Align:, Line:{ Color:, Dash:[虚线点], KData:"H/L", Offset:[5,10], Width:线粗细 }} ]
|
|
52715
52715
|
this.Font=g_JSChartResource.DefaultTextFont;
|
|
52716
52716
|
this.Color=g_JSChartResource.DefaultTextColor;
|
|
52717
52717
|
this.IsHScreen=false; //是否横屏
|
|
@@ -52773,6 +52773,8 @@ function ChartMultiText()
|
|
|
52773
52773
|
var bottom=border.BottomEx;
|
|
52774
52774
|
}
|
|
52775
52775
|
|
|
52776
|
+
this.Canvas.textAlign="left";
|
|
52777
|
+
this.Canvas.textBaseline='bottom';
|
|
52776
52778
|
for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
|
|
52777
52779
|
{
|
|
52778
52780
|
var kItem=this.Data.Data[i];
|
|
@@ -52806,63 +52808,189 @@ function ChartMultiText()
|
|
|
52806
52808
|
{
|
|
52807
52809
|
var price=item.Value;
|
|
52808
52810
|
if (IFrameSplitOperator.IsString(item.Value)) price=this.GetKValue(kItem,item.Value);
|
|
52809
|
-
|
|
52810
52811
|
y=this.ChartFrame.GetYFromData(price, false);
|
|
52811
52812
|
}
|
|
52812
|
-
|
|
52813
52813
|
|
|
52814
|
-
if (item.Color) this.Canvas.fillStyle = item.Color;
|
|
52815
|
-
else this.Canvas.fillStyle = this.Color;
|
|
52816
52814
|
if (item.Font) this.Canvas.font = item.Font;
|
|
52817
52815
|
else this.Canvas.font=this.Font;
|
|
52818
52816
|
|
|
52819
52817
|
var textWidth=this.Canvas.measureText(item.Text).width;
|
|
52820
|
-
this.Canvas.
|
|
52821
|
-
|
|
52818
|
+
var textHeight=this.Canvas.measureText("擎").width;
|
|
52819
|
+
var cellWidth=textWidth;
|
|
52820
|
+
var cellHeight=textHeight;
|
|
52821
|
+
var xTextOffset=0, yTextOffset=0;
|
|
52822
|
+
if (item.Margin)
|
|
52822
52823
|
{
|
|
52823
|
-
|
|
52824
|
-
|
|
52824
|
+
if (IFrameSplitOperator.IsNumber(item.Margin.Left)) cellWidth+=item.Margin.Left;
|
|
52825
|
+
if (IFrameSplitOperator.IsNumber(item.Margin.Right)) cellWidth+=item.Margin.Right;
|
|
52826
|
+
if (IFrameSplitOperator.IsNumber(item.Margin.Top)) cellHeight+=item.Margin.Top;
|
|
52827
|
+
if (IFrameSplitOperator.IsNumber(item.Margin.Bottom)) cellHeight+=item.Margin.Bottom;
|
|
52828
|
+
|
|
52829
|
+
if (IFrameSplitOperator.IsNumber(item.Margin.XOffset)) xTextOffset=item.Margin.XOffset;
|
|
52830
|
+
if (IFrameSplitOperator.IsNumber(item.Margin.YOffset)) yTextOffset=item.Margin.YOffset;
|
|
52825
52831
|
}
|
|
52826
|
-
|
|
52832
|
+
|
|
52833
|
+
if (this.IsHScreen)
|
|
52827
52834
|
{
|
|
52828
|
-
|
|
52829
|
-
|
|
52835
|
+
var rtText={ Left:y-cellHeight/2, Width:cellHeight, Top:x-cellWidth/2, Height:cellWidth };
|
|
52836
|
+
rtText.Right=rtText.Left+rtText.Width;
|
|
52837
|
+
rtText.Bottom=rtText.Top+rtText.Height;
|
|
52838
|
+
|
|
52839
|
+
if (item.Baseline==1) //y=顶部
|
|
52840
|
+
{
|
|
52841
|
+
rtText.Right=y;
|
|
52842
|
+
rtText.Left=rtText.Right-rtText.Width;
|
|
52843
|
+
}
|
|
52844
|
+
else if (item.Baseline==2) //y=底部
|
|
52845
|
+
{
|
|
52846
|
+
rtText.Left=y;
|
|
52847
|
+
rtText.Right=rtText.Left+rtText.Width;
|
|
52848
|
+
}
|
|
52849
|
+
|
|
52850
|
+
if (IFrameSplitOperator.IsNumber(item.YMove))
|
|
52851
|
+
{
|
|
52852
|
+
rtText.Left-=item.YMove;
|
|
52853
|
+
rtText.Right-=item.YMove;
|
|
52854
|
+
}
|
|
52855
|
+
}
|
|
52856
|
+
else
|
|
52857
|
+
{
|
|
52858
|
+
var rtText={ Left:x-cellWidth/2, Width:cellWidth, Top:y-cellHeight/2, Height:cellHeight };
|
|
52859
|
+
rtText.Right=rtText.Left+rtText.Width;
|
|
52860
|
+
rtText.Bottom=rtText.Top+rtText.Height;
|
|
52861
|
+
|
|
52862
|
+
//左右对齐 默认居中
|
|
52863
|
+
if (item.Align==1) //左
|
|
52864
|
+
{
|
|
52865
|
+
rtText.Left=x;
|
|
52866
|
+
rtText.Right=rtText.Left+rtText.Width;
|
|
52867
|
+
if (item.XLine && IFrameSplitOperator.IsNumber(item.XLine.Width))
|
|
52868
|
+
{
|
|
52869
|
+
rtText.Left+=item.XLine.Width;
|
|
52870
|
+
rtText.Right+=item.XLine.Width;
|
|
52871
|
+
|
|
52872
|
+
if (item.XLine.Color) //画线
|
|
52873
|
+
{
|
|
52874
|
+
this.Canvas.save();
|
|
52875
|
+
this.Canvas.lineWidth=1*GetDevicePixelRatio(); //线宽
|
|
52876
|
+
this.Canvas.strokeStyle = item.XLine.Color;
|
|
52877
|
+
this.Canvas.beginPath();
|
|
52878
|
+
var arrawSize=6*GetDevicePixelRatio();
|
|
52879
|
+
if (IFrameSplitOperator.IsNumber(item.XLine.ArrawSize)) arrawSize=item.XLine.ArrawSize;
|
|
52880
|
+
// 箭头主干横线
|
|
52881
|
+
this.Canvas.moveTo(x, y);
|
|
52882
|
+
this.Canvas.lineTo(rtText.Left, y);
|
|
52883
|
+
|
|
52884
|
+
this.Canvas.moveTo(x, y);
|
|
52885
|
+
this.Canvas.lineTo(x+arrawSize/2, y+arrawSize/3);
|
|
52886
|
+
|
|
52887
|
+
this.Canvas.moveTo(x, y);
|
|
52888
|
+
this.Canvas.lineTo(x+arrawSize/2, y-arrawSize/3);
|
|
52889
|
+
|
|
52890
|
+
this.Canvas.stroke();
|
|
52891
|
+
this.Canvas.restore();
|
|
52892
|
+
}
|
|
52893
|
+
}
|
|
52894
|
+
}
|
|
52895
|
+
else if (item.Align==2) //右
|
|
52896
|
+
{
|
|
52897
|
+
rtText.Right=x;
|
|
52898
|
+
rtText.Left=rtText.Right-rtText.Width;
|
|
52899
|
+
}
|
|
52900
|
+
else
|
|
52901
|
+
{
|
|
52902
|
+
if (rtText.Left<chartleft)
|
|
52903
|
+
{
|
|
52904
|
+
rtText.Left=chartleft;
|
|
52905
|
+
rtText.Right=rtText.Left+rtText.Width;
|
|
52906
|
+
}
|
|
52907
|
+
else if (rtText.Right>chartright)
|
|
52908
|
+
{
|
|
52909
|
+
rtText.Right=chartright;
|
|
52910
|
+
rtText.Left=rtText.Right-rtText.Width;
|
|
52911
|
+
}
|
|
52912
|
+
}
|
|
52913
|
+
|
|
52914
|
+
if (item.Baseline==1) //y=顶部
|
|
52915
|
+
{
|
|
52916
|
+
rtText.Top=y;
|
|
52917
|
+
rtText.Bottom=rtText.Top+rtText.Height;
|
|
52918
|
+
}
|
|
52919
|
+
else if (item.Baseline==2) //y=底部
|
|
52920
|
+
{
|
|
52921
|
+
rtText.Bottom=y;
|
|
52922
|
+
rtText.Top=rtText.Bottom-rtText.Height;
|
|
52923
|
+
}
|
|
52924
|
+
|
|
52925
|
+
if (IFrameSplitOperator.IsNumber(item.YMove))
|
|
52926
|
+
{
|
|
52927
|
+
rtText.Top+=item.YMove;
|
|
52928
|
+
rtText.Bottom+=item.YMove;
|
|
52929
|
+
}
|
|
52830
52930
|
}
|
|
52931
|
+
|
|
52831
52932
|
|
|
52832
|
-
if (item.Baseline==1) this.Canvas.textBaseline='top';
|
|
52833
|
-
else if (item.Baseline==2) this.Canvas.textBaseline='bottom';
|
|
52834
|
-
else this.Canvas.textBaseline = 'middle';
|
|
52835
52933
|
|
|
52836
52934
|
if (this.IsHScreen)
|
|
52837
52935
|
{
|
|
52936
|
+
if (item.BGColor)
|
|
52937
|
+
{
|
|
52938
|
+
this.Canvas.fillStyle=item.BGColor;
|
|
52939
|
+
this.Canvas.fillRect(rtText.Left, rtText.Top, rtText.Width, rtText.Height);
|
|
52940
|
+
}
|
|
52941
|
+
|
|
52942
|
+
var yText=rtText.Top+xTextOffset;
|
|
52943
|
+
var xText=rtText.Left-yTextOffset;
|
|
52944
|
+
|
|
52838
52945
|
this.Canvas.save();
|
|
52839
|
-
this.Canvas.translate(
|
|
52946
|
+
this.Canvas.translate(xText, yText);
|
|
52840
52947
|
this.Canvas.rotate(90 * Math.PI / 180);
|
|
52948
|
+
if (item.Color) this.Canvas.fillStyle = item.Color;
|
|
52949
|
+
else this.Canvas.fillStyle = this.Color;
|
|
52841
52950
|
this.Canvas.fillText(item.Text,0,0);
|
|
52842
52951
|
this.Canvas.restore();
|
|
52843
52952
|
}
|
|
52844
52953
|
else
|
|
52845
52954
|
{
|
|
52846
|
-
if (
|
|
52847
|
-
|
|
52955
|
+
if (item.BGColor)
|
|
52956
|
+
{
|
|
52957
|
+
this.Canvas.fillStyle=item.BGColor;
|
|
52958
|
+
this.Canvas.fillRect(rtText.Left, rtText.Top, rtText.Width, rtText.Height);
|
|
52959
|
+
}
|
|
52960
|
+
|
|
52961
|
+
if (item.Color) this.Canvas.fillStyle = item.Color;
|
|
52962
|
+
else this.Canvas.fillStyle = this.Color;
|
|
52963
|
+
this.Canvas.fillText(item.Text, rtText.Left+xTextOffset, rtText.Bottom+yTextOffset);
|
|
52848
52964
|
}
|
|
52849
52965
|
|
|
52850
52966
|
if (item.Line)
|
|
52851
52967
|
{
|
|
52852
52968
|
var price=item.Line.KData=="H"? kItem.High:kItem.Low;
|
|
52853
52969
|
var yPrice=this.ChartFrame.GetYFromData(price, false);
|
|
52854
|
-
var yText=
|
|
52970
|
+
var yText=yPrice;
|
|
52971
|
+
|
|
52972
|
+
if (this.IsHScreen)
|
|
52973
|
+
{
|
|
52974
|
+
if (yPrice<rtText.Left) yText=rtText.Left;
|
|
52975
|
+
else if (yPrice>rtText.Right) yText=rtText.Right;
|
|
52976
|
+
}
|
|
52977
|
+
else
|
|
52978
|
+
{
|
|
52979
|
+
if (yPrice>rtText.Bottom) yText=rtText.Bottom;
|
|
52980
|
+
else if (yPrice<rtText.Top) yText=rtText.Top;
|
|
52981
|
+
}
|
|
52982
|
+
|
|
52855
52983
|
if (Array.isArray(item.Line.Offset) && item.Line.Offset.length==2)
|
|
52856
52984
|
{
|
|
52857
52985
|
if (yText>yPrice) //文字在下方
|
|
52858
52986
|
{
|
|
52859
52987
|
yText-=item.Line.Offset[1];
|
|
52860
|
-
yPrice+=item.Line.Offset[0]
|
|
52988
|
+
yPrice+=item.Line.Offset[0];
|
|
52861
52989
|
}
|
|
52862
52990
|
else if (yText<yPrice)
|
|
52863
52991
|
{
|
|
52864
52992
|
yText+=item.Line.Offset[1];
|
|
52865
|
-
yPrice-=item.Line.Offset[0]
|
|
52993
|
+
yPrice-=item.Line.Offset[0];
|
|
52866
52994
|
}
|
|
52867
52995
|
}
|
|
52868
52996
|
this.Canvas.save();
|
|
@@ -178140,7 +178268,7 @@ function ChartScrollText()
|
|
|
178140
178268
|
|
|
178141
178269
|
|
|
178142
178270
|
|
|
178143
|
-
var HQCHART_VERSION="1.1.
|
|
178271
|
+
var HQCHART_VERSION="1.1.15911";
|
|
178144
178272
|
|
|
178145
178273
|
function PrintHQChartVersion()
|
|
178146
178274
|
{
|