hqchart 1.1.15104 → 1.1.15106
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 +97 -39
- package/package.json +1 -1
- package/src/jscommon/umychart.DialogDrawTool.js +5 -0
- package/src/jscommon/umychart.js +59 -244
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +60 -245
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +65 -245
package/lib/umychart.vue.js
CHANGED
|
@@ -1563,9 +1563,7 @@ default:return null;}};//注册外部扩展图形
|
|
|
1563
1563
|
JSChart.RegisterExtendChartClass=function(name,option){return g_ExtendChartPaintFactory.Add(name,option);};JSChart.AddExtendCallbackDraw=function(className){return g_ExtendChartPaintFactory.AddCallbackDrawClassName(className);};//注册外部图形类
|
|
1564
1564
|
//option:{ Create:创建类方法 }
|
|
1565
1565
|
JSChart.RegisterChartPaintClass=function(name,option){return g_ChartPaintFactory.Add(name,option);};//注册外部指标图形
|
|
1566
|
-
JSChart.RegisterScriptIndexChart=function(name,option){return g_ScriptIndexChartFactory.Add(name,option);}
|
|
1567
|
-
//option:{ Create:创建类方法 }
|
|
1568
|
-
JSChart.RegisterDialogClass=function(name,option){return g_DialogFactory.Add(name,option);};//注册框架类
|
|
1566
|
+
JSChart.RegisterScriptIndexChart=function(name,option){return g_ScriptIndexChartFactory.Add(name,option);};//注册框架类
|
|
1569
1567
|
JSChart.RegisterChartFrameClass=function(name,option){return g_ChartFrameFactory.Add(name,option);};//一些公共函数
|
|
1570
1568
|
JSChart.ToFixedPoint=function(value){return ToFixedPoint(value);};JSChart.ToFixedPoint2=function(width,value){return ToFixedPoint2(width,value);};JSChart.ToFixedRect=function(value){return ToFixedRect(value);};JSChart.GetScrollPosition=function(){return GetScrollPosition();};//品种小数位数
|
|
1571
1569
|
JSChart.GetfloatPrecision=function(symbol){return GetfloatPrecision(symbol);};//获取不带后缀的代码
|
|
@@ -4999,11 +4997,12 @@ this.LockID;//锁ID
|
|
|
4999
4997
|
this.Callback;//回调
|
|
5000
4998
|
this.IndexName;//指标名字
|
|
5001
4999
|
this.IndexID;//指标ID
|
|
5002
|
-
this.CalculateTextSize=function(aryText,defaultFont,out){if(!out||!IFrameSplitOperator.IsNonEmptyArray(aryText))return false;this.Canvas.font=defaultFont;var
|
|
5003
|
-
var height=0,width=0;out.AryText=[];for(var i=0;i<aryText.length;++i){var item=aryText[i];if(!item||!item.Text)continue;var textWidth=this.Canvas.measureText(item.Text).width;var lineItem={Text:item.Text,Width:textWidth,Height:lineHeight,Color:item.Color,TextMargin:{Top:0,Bottom:0,Left:0,Right:0},YOffset:0};if(IFrameSplitOperator.IsNumber(item.YOffset))lineItem.YOffset=item.YOffset;if(item.
|
|
5000
|
+
this.CalculateTextSize=function(aryText,defaultFont,out){if(!out||!IFrameSplitOperator.IsNonEmptyArray(aryText))return false;this.Canvas.font=defaultFont;var defaultLineHeight=this.Canvas.measureText("擎").width;//行高
|
|
5001
|
+
var lineHeight=defaultLineHeight;var height=0,width=0;out.AryText=[];for(var i=0;i<aryText.length;++i){var item=aryText[i];if(!item||!item.Text&&!item.Image)continue;if(item.Image){textWidth=item.Image.Width;lineHeight=item.Image.Height;}else{if(item.Font){this.Canvas.font=item.Font;lineHeight=this.Canvas.measureText("擎").width;}else{this.Canvas.font=defaultFont;lineHeight=defaultLineHeight;}var textWidth=this.Canvas.measureText(item.Text).width;}var lineItem={Text:item.Text,Width:textWidth,Height:lineHeight,Color:item.Color,TextMargin:{Top:0,Bottom:0,Left:0,Right:0},YOffset:0};if(IFrameSplitOperator.IsNumber(item.YOffset))lineItem.YOffset=item.YOffset;if(item.Font)lineItem.Font=item.Font;if(IFrameSplitOperator.IsNumber(item.Align))lineItem.Align=item.Align;//左右对齐 0=左 1=中 2=右
|
|
5002
|
+
if(item.Image)lineItem.Image=item.Image;if(item.TextMargin){var margin=item.TextMargin;if(IFrameSplitOperator.IsNumber(margin.Top))lineItem.TextMargin.Top=margin.Top;if(IFrameSplitOperator.IsNumber(margin.Bottom))lineItem.TextMargin.Bottom=margin.Bottom;if(IFrameSplitOperator.IsNumber(margin.Left))lineItem.TextMargin.Left=margin.Left;if(IFrameSplitOperator.IsNumber(margin.Right))lineItem.TextMargin.Right=margin.Right;}lineItem.Height+=lineItem.TextMargin.Top+lineItem.TextMargin.Bottom;lineItem.Width+=lineItem.TextMargin.Left+lineItem.TextMargin.Right;if(width<lineItem.Width)width=lineItem.Width;out.AryText.push(lineItem);height+=lineItem.Height;}out.Width=width;out.Height=height;return true;};this.Draw=function(bDraw){this.LockRect=null;if(!bDraw)return;if(this.NotSupportMessage){this.DrawNotSupportmessage();return;}var bHScreen=this.ChartFrame.IsHScreen;var bMinute=this.IsMinuteFrame();var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var xPointCount=this.ChartFrame.XPointCount;var border=this.ChartFrame.GetBorder();if(bHScreen){var chartright=border.BottomEx;var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;}else{var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;}var kData=this.ChartFrame.Data;var left=xOffset;if(kData&&IFrameSplitOperator.IsNonEmptyArray(kData.Data)){for(var i=kData.DataOffset,j=0;i<kData.Data.length-this.LockCount&&j<xPointCount-this.LockCount;++i,++j,xOffset+=dataWidth+distanceWidth){var kItem=kData.Data[i];if(kItem.Open==null||kItem.High==null||kItem.Low==null||kItem.Close==null)continue;if(bMinute){left=this.ChartFrame.GetXFromIndex(j);}else{left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;}}}if(bHScreen){var rtBG={Left:border.Left,Right:border.RightEx,Top:left,Bottom:border.Bottom};rtBG.Width=rtBG.Right-rtBG.Left;rtBG.Height=rtBG.Bottom-rtBG.Top;var bgColor=this.SetFillStyle(this.BGColor,rtBG.Left,rtBG.Top,rtBG.Right,rtBG.Top);this.Canvas.fillStyle=bgColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);this.LockRect=rtBG;//保存上锁区域
|
|
5004
5003
|
}else{var rtBG={Left:left,Right:border.RightEx,Top:border.TopTitle,Bottom:border.Bottom};rtBG.Width=rtBG.Right-rtBG.Left;rtBG.Height=rtBG.Bottom-rtBG.Top;//上下渐变
|
|
5005
5004
|
var bgColor=this.SetFillStyle(this.BGColor,rtBG.Left,rtBG.Top,rtBG.Left,rtBG.Bottom);this.Canvas.fillStyle=bgColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);this.LockRect=rtBG;//保存上锁区域
|
|
5006
|
-
}var aryText=null;if(Array.isArray(this.Title))aryText=this.Title;else aryText=[{Text:this.Title}];var outSize={};if(!this.CalculateTextSize(aryText,this.Font,outSize))return;this.Canvas.textAlign='left';this.Canvas.textBaseline='bottom';this.Canvas.font=this.Font;if(bHScreen){var top=rtBG.Top+(rtBG.Height-outSize.Width)/2;if(outSize.Width>rtBG.Height)top=rtBG.Bottom-outSize.Width;var left=rtBG.Left+(rtBG.Width-outSize.Height)/2;this.Canvas.save();this.Canvas.translate(left,top);this.Canvas.rotate(90*Math.PI/180);var yText=0,xText=0;for(var i=0;i<outSize.AryText.length;++i){var item=outSize.AryText[i];if(item.Color)this.Canvas.fillStyle=item.Color;else this.Canvas.fillStyle=this.TextColor;yText+=item.Height;this.Canvas.fillText(item.Text,xText,yText+item.YOffset);}this.Canvas.restore();}else{var left=rtBG.Left+(rtBG.Width-outSize.Width)/2;if(outSize.Width>rtBG.Width)left=rtBG.Right-outSize.Width;var top=rtBG.Top+(rtBG.Height-outSize.Height)/2;var yText=top,xText=left;for(var i=0;i<outSize.AryText.length;++i){var item=outSize.AryText[i];if(item.Color)this.Canvas.fillStyle=item.Color;else this.Canvas.fillStyle=this.TextColor;yText+=item.Height;this.Canvas.fillText(item.Text,xText,yText+item.YOffset);}}};//x,y是否在上锁区域
|
|
5005
|
+
}var aryText=null;if(Array.isArray(this.Title))aryText=this.Title;else aryText=[{Text:this.Title}];var outSize={};if(!this.CalculateTextSize(aryText,this.Font,outSize))return;this.Canvas.textAlign='left';this.Canvas.textBaseline='bottom';this.Canvas.font=this.Font;if(bHScreen){var top=rtBG.Top+(rtBG.Height-outSize.Width)/2;if(outSize.Width>rtBG.Height)top=rtBG.Bottom-outSize.Width;var left=rtBG.Left+(rtBG.Width-outSize.Height)/2;this.Canvas.save();this.Canvas.translate(left,top);this.Canvas.rotate(90*Math.PI/180);var yText=0,xText=0;for(var i=0;i<outSize.AryText.length;++i){var item=outSize.AryText[i];if(item.Color)this.Canvas.fillStyle=item.Color;else this.Canvas.fillStyle=this.TextColor;if(item.Font)this.Canvas.font=item.Font;else this.Canvas.font=this.Font;yText+=item.Height;this.Canvas.fillText(item.Text,xText,yText+item.YOffset);}this.Canvas.restore();}else{var left=rtBG.Left+(rtBG.Width-outSize.Width)/2;if(outSize.Width>rtBG.Width)left=rtBG.Right-outSize.Width;var top=rtBG.Top+(rtBG.Height-outSize.Height)/2;var yText=top,xText=left;for(var i=0;i<outSize.AryText.length;++i){var item=outSize.AryText[i];if(item.Image){xText=left;if(item.Align===1){if(outSize.Width>item.Width)xText+=(outSize.Width-item.Width)/2;}this.Canvas.drawImage(item.Image.Data,xText,yText,item.Image.Width,item.Image.Height);yText+=item.Height;}else{if(item.Color)this.Canvas.fillStyle=item.Color;else this.Canvas.fillStyle=this.TextColor;if(item.Font)this.Canvas.font=item.Font;else this.Canvas.font=this.Font;yText+=item.Height;xText=left;if(item.Align===1){if(outSize.Width>item.Width)xText+=(outSize.Width-item.Width)/2;}this.Canvas.fillText(item.Text,xText,yText+item.YOffset);}}}};//x,y是否在上锁区域
|
|
5007
5006
|
this.GetTooltipData=function(x,y,tooltip){if(!this.LockRect)return false;if(Path2DHelper.PtInRect(x,y,this.LockRect)){tooltip.Data={ID:this.LockID,Callback:this.Callback,IndexName:this.IndexName,IndexID:this.IndexID};tooltip.ChartPaint=this;return true;}return false;};}//买卖盘
|
|
5008
5007
|
function ChartBuySell(){this.newMethod=ChartSingleText;//派生
|
|
5009
5008
|
this.newMethod();delete this.newMethod;this.ClassName="ChartBuySell";this.TextFont=g_JSChartResource.KLineTrain.Font;//"bold 14px arial"; //买卖信息字体
|
|
@@ -9916,37 +9915,96 @@ function IsIndexSymbol(symbol){var upperSymbol=symbol.toUpperCase();if(upperSymb
|
|
|
9916
9915
|
//是否是基金代码
|
|
9917
9916
|
function IsFundSymbol(symbol){if(!symbol)return false;var upperSymbol=symbol.toUpperCase();if(upperSymbol.indexOf('.SH')>0){upperSymbol=upperSymbol.replace('.SH','');//51XXXX.sh
|
|
9918
9917
|
if(upperSymbol.charAt(0)=='5'&&upperSymbol.charAt(1)=='1')return true;}else if(upperSymbol.indexOf('.SZ')>0){upperSymbol=upperSymbol.replace('.SZ','');//15XXXX.sz, 16XXXX.sz, 17XXXX.sz, 18XXXX.sz
|
|
9919
|
-
if(upperSymbol.charAt(0)=='1'&&(upperSymbol.charAt(1)=='5'||upperSymbol.charAt(1)=='6'||upperSymbol.charAt(1)=='7'||upperSymbol.charAt(1)=='8'))return true;}return false;}
|
|
9920
|
-
function
|
|
9921
|
-
|
|
9922
|
-
|
|
9923
|
-
this.
|
|
9924
|
-
this.
|
|
9925
|
-
|
|
9926
|
-
this.
|
|
9927
|
-
this.
|
|
9928
|
-
|
|
9929
|
-
this.
|
|
9930
|
-
|
|
9931
|
-
|
|
9932
|
-
|
|
9933
|
-
|
|
9934
|
-
|
|
9935
|
-
|
|
9936
|
-
function
|
|
9937
|
-
|
|
9938
|
-
|
|
9939
|
-
|
|
9940
|
-
|
|
9941
|
-
var
|
|
9942
|
-
var
|
|
9943
|
-
|
|
9944
|
-
|
|
9945
|
-
|
|
9946
|
-
|
|
9947
|
-
|
|
9948
|
-
|
|
9949
|
-
|
|
9918
|
+
if(upperSymbol.charAt(0)=='1'&&(upperSymbol.charAt(1)=='5'||upperSymbol.charAt(1)=='6'||upperSymbol.charAt(1)=='7'||upperSymbol.charAt(1)=='8'))return true;}return false;}/*
|
|
9919
|
+
function ChartPictureVolProfileSettingMenu(divElement)
|
|
9920
|
+
{
|
|
9921
|
+
this.newMethod=IDivDialog; //派生
|
|
9922
|
+
this.newMethod(divElement);
|
|
9923
|
+
delete this.newMethod;
|
|
9924
|
+
|
|
9925
|
+
this.ChartPicture;
|
|
9926
|
+
this.SettingDiv;
|
|
9927
|
+
this.Position;
|
|
9928
|
+
this.ID=Guid();
|
|
9929
|
+
|
|
9930
|
+
this.Close=function()
|
|
9931
|
+
{
|
|
9932
|
+
if (this.SettingDiv) this.DivElement.removeChild(this.SettingDiv); //直接删除
|
|
9933
|
+
}
|
|
9934
|
+
|
|
9935
|
+
this.DoModal=function()
|
|
9936
|
+
{
|
|
9937
|
+
var valueAreaVol=this.ChartPicture.VAVol; //Value area volume
|
|
9938
|
+
var barPosition=this.ChartPicture.BarPosition;
|
|
9939
|
+
|
|
9940
|
+
var self=this;
|
|
9941
|
+
var div=document.getElementById(this.ID);
|
|
9942
|
+
if (!div)
|
|
9943
|
+
{
|
|
9944
|
+
div=document.createElement("div");
|
|
9945
|
+
div.className='jchart-modifyindex-box';
|
|
9946
|
+
div.id=this.ID;
|
|
9947
|
+
this.DivElement.appendChild(div);
|
|
9948
|
+
this.SettingDiv=div;
|
|
9949
|
+
}
|
|
9950
|
+
else
|
|
9951
|
+
{
|
|
9952
|
+
this.SettingDiv=div;
|
|
9953
|
+
}
|
|
9954
|
+
|
|
9955
|
+
div.innerHTML=
|
|
9956
|
+
`<div class='parameter'>\
|
|
9957
|
+
<div class='parameter-header'>\
|
|
9958
|
+
<span>固定范围成交量分布设置</span>\
|
|
9959
|
+
<strong id='close' class='icon iconfont icon-close'></strong>\
|
|
9960
|
+
</div>\
|
|
9961
|
+
<div class='parameter-content'>
|
|
9962
|
+
<input class='row-line' value=${valueAreaVol} />VAVol <br>
|
|
9963
|
+
<input class='row-line' value=${barPosition} />BarPosition
|
|
9964
|
+
</div>\
|
|
9965
|
+
<div class='parameter-footer'>\
|
|
9966
|
+
<button class='submit' >确定</button>\
|
|
9967
|
+
<button class='cancel' >取消</button>\
|
|
9968
|
+
</div>\
|
|
9969
|
+
</div>`;
|
|
9970
|
+
|
|
9971
|
+
var pixelTatio = GetDevicePixelRatio();
|
|
9972
|
+
var frame=this.HQChart.Frame.SubFrame[0].Frame;
|
|
9973
|
+
var top=frame.ChartBorder.Top + 40;
|
|
9974
|
+
var right=frame.ChartBorder.Right;
|
|
9975
|
+
var left=frame.ChartBorder.GetLeft();
|
|
9976
|
+
|
|
9977
|
+
this.SettingDiv.style.right = right/pixelTatio + "px";
|
|
9978
|
+
this.SettingDiv.style.top = top/pixelTatio + "px";
|
|
9979
|
+
this.SettingDiv.style.position = "absolute";
|
|
9980
|
+
this.SettingDiv.style.display = "block";
|
|
9981
|
+
|
|
9982
|
+
var btnCancel=div.getElementsByClassName("cancel")[0];
|
|
9983
|
+
btnCancel.onclick=function()
|
|
9984
|
+
{
|
|
9985
|
+
self.Close();
|
|
9986
|
+
}
|
|
9987
|
+
|
|
9988
|
+
var btnClose=div.getElementsByClassName("icon iconfont icon-close")[0];
|
|
9989
|
+
btnClose.onclick=function()
|
|
9990
|
+
{
|
|
9991
|
+
self.Close();
|
|
9992
|
+
}
|
|
9993
|
+
|
|
9994
|
+
var btnSubmit=div.getElementsByClassName("submit")[0];
|
|
9995
|
+
btnSubmit.onclick=function()
|
|
9996
|
+
{
|
|
9997
|
+
var value=div.getElementsByClassName("row-line")[0].value;
|
|
9998
|
+
self.ChartPicture.VAVol=parseFloat(value);
|
|
9999
|
+
var value=parseInt(div.getElementsByClassName("row-line")[1].value);
|
|
10000
|
+
self.ChartPicture.BarPosition=value>0?1:0;
|
|
10001
|
+
|
|
10002
|
+
self.ChartPicture.RequestVolumeProfileData();
|
|
10003
|
+
self.Close();
|
|
10004
|
+
}
|
|
10005
|
+
}
|
|
10006
|
+
}
|
|
10007
|
+
*////////////////////////////////////////////////////////////////////////////////////////
|
|
9950
10008
|
//
|
|
9951
10009
|
// 各个品种分钟走势图坐标信息
|
|
9952
10010
|
//
|
|
@@ -15036,7 +15094,7 @@ data.Tooltip.style.display="inline";};this.OnLeaveButton=function(e,data){data.T
|
|
|
15036
15094
|
this.HQChart.Draw();};this.ModifyFontColor=function(){if(!this.ChartPicture||!this.HQChart)return;if(this.ChartPicture.ClassName=="ChartDrawNote"){var color=this.GetRandomColor(this.ChartPicture.NoteTextColor,this.RandomFontColor);this.ChartPicture.NoteTextColor=color;}else{var color=this.GetRandomColor(this.ChartPicture.TextColor,this.RandomFontColor);this.ChartPicture.TextColor=color;}if(this.FontColorButton)this.FontColorButton.Span.style['color']=color;if(this.HQChart.ChartDrawStorage)this.HQChart.ChartDrawStorage.SaveDrawData(this.ChartPicture);//保存下
|
|
15037
15095
|
this.HQChart.Draw();};this.ModifyBGColor=function(){if(!this.ChartPicture||!this.HQChart)return;if(this.ChartPicture.ClassName=="ChartDrawNote"){var color=this.GetRandomColor(this.ChartPicture.NoteBGColor,this.RandomBGColor);this.ChartPicture.NoteBGColor=color;}else{var color=this.GetRandomColor(this.ChartPicture.BGColor,this.RandomBGColor);this.ChartPicture.BGColor=color;}if(this.BGColorButton)this.BGColorButton.Span.style['color']=color;if(this.HQChart.ChartDrawStorage)this.HQChart.ChartDrawStorage.SaveDrawData(this.ChartPicture);//保存下
|
|
15038
15096
|
this.HQChart.Draw();};this.ModifyLockChart=function(){if(!this.ChartPicture||!this.HQChart)return;this.ChartPicture.EnableMove=!this.ChartPicture.EnableMove;if(this.LockButton)this.LockButton.Span.style['color']=this.ChartPicture.EnableMove?"rgb(220,220,220)":"rgb(0,0,0)";};this.ModifyBorderColor=function(){if(!this.ChartPicture||!this.HQChart)return;if(this.ChartPicture.ClassName=="ChartDrawNote"){var color=this.GetRandomColor(this.ChartPicture.NoteBorderColor,this.RandomBorderColor);this.ChartPicture.NoteBorderColor=color;}else{var color=this.GetRandomColor(this.ChartPicture.BorderColor,this.RandomBorderColor);this.ChartPicture.BorderColor=color;}if(this.BorderColorButton)this.BorderColorButton.Span.style['color']=color;if(this.HQChart.ChartDrawStorage)this.HQChart.ChartDrawStorage.SaveDrawData(this.ChartPicture);//保存下
|
|
15039
|
-
this.HQChart.Draw();};this.ModifyFontZoom=function(step){if(!this.ChartPicture||!this.HQChart)return;if(this.ChartPicture.FontOption.Size+step<=2)return;var chart=this.ChartPicture;chart.FontOption.Size+=step;if(chart.ClassName=="ChartDrawNote")chart.NoteFontOption.Size+=step;this.HQChart.Draw();};this.ModifyText=function(){if(!this.ChartPicture||!this.HQChart)return;var chart=this.ChartPicture;switch(chart.ClassName){case"ChartDrawPictureText":chart.Text=this.GetRandomText(chart.Text);break;case"ChartDrawAnchoredText":var text=null;if(IFrameSplitOperator.IsNonEmptyArray(chart.AryText))text=chart.AryText[0].Text;chart.AryText=[{Text:this.GetRandomText(text)},{Text:this.GetRandomText(null)}];break;case"ChartDrawNote":var text=null;if(IFrameSplitOperator.IsNonEmptyArray(chart.AryNoteText))text=chart.AryNoteText[0].Text;chart.AryNoteText=[{Text:this.GetRandomText(text)},{Text:this.GetRandomText(null)}];break;default:return;}this.HQChart.Draw();};this.GetRandomText=function(text){var ARY_TEXT=["下跌形态","反转十字星","低位档五阳线","倒V型反转","双顶","持续整理形态"];var index=this.GetRandomTestData(0,ARY_TEXT.length-1);for(var i=index;i<10;++i){var value=ARY_TEXT[i%ARY_TEXT.length];if(value!=text)return value;}};this.GetRandomTestData=function(min,max)//测试数据
|
|
15097
|
+
this.HQChart.Draw();};this.ModifyFontZoom=function(step){if(!this.ChartPicture||!this.HQChart)return;if(this.ChartPicture.FontOption.Size+step<=2)return;var chart=this.ChartPicture;chart.FontOption.Size+=step;if(chart.ClassName=="ChartDrawNote")chart.NoteFontOption.Size+=step;this.HQChart.Draw();};this.ModifyText=function(){if(!this.ChartPicture||!this.HQChart)return;var chart=this.ChartPicture;switch(chart.ClassName){case"ChartDrawPictureText":chart.Text=this.GetRandomText(chart.Text);break;case"ChartDrawAnchoredText":var text=null;if(IFrameSplitOperator.IsNonEmptyArray(chart.AryText))text=chart.AryText[0].Text;chart.AryText=[{Text:this.GetRandomText(text)},{Text:this.GetRandomText(null)}];break;case"ChartDrawNote":var text=null;if(IFrameSplitOperator.IsNonEmptyArray(chart.AryNoteText))text=chart.AryNoteText[0].Text;chart.AryNoteText=[{Text:this.GetRandomText(text)},{Text:this.GetRandomText(null)}];break;default:return;}this.HQChart.Draw();};this.AdvancedSetting=function(){};this.GetRandomText=function(text){var ARY_TEXT=["下跌形态","反转十字星","低位档五阳线","倒V型反转","双顶","持续整理形态"];var index=this.GetRandomTestData(0,ARY_TEXT.length-1);for(var i=index;i<10;++i){var value=ARY_TEXT[i%ARY_TEXT.length];if(value!=text)return value;}};this.GetRandomTestData=function(min,max)//测试数据
|
|
15040
15098
|
{min=Math.ceil(min);max=Math.floor(max);return Math.floor(Math.random()*(max-min+1))+min;//含最大值,含最小值
|
|
15041
15099
|
};this.Show=function(x,y){if(!this.DivDialog)this.Create();this.DivDialog.style.visibility='visible';this.DivDialog.style.top=y+"px";this.DivDialog.style.left=x+"px";};this.SetChartPicture=function(chart){this.ChartPicture=chart;var bShowLineColor=true,bShowBGColor=false,bShowFontColor=false,bShowBorderColor=false,bShowFontZoom=false,bModifyText=false,bAdvanced=false;;var bgColor=null,fontColor=null,borderColor=null;var ARRAY_TEXT_CHART=['ChartDrawPriceLabel',"ChartDrawAnchoredText","ChartDrawPriceNote"];if(ARRAY_TEXT_CHART.includes(chart.ClassName)){bShowBGColor=true;bShowFontColor=true;bShowBorderColor=true;bShowFontZoom=true;if(chart.ClassName=="ChartDrawAnchoredText")bModifyText=true;bgColor=chart.BGColor;fontColor=chart.TextColor;borderColor=chart.BorderColor;}else if(chart.ClassName=="ChartDrawPictureText"){bModifyText=true;bShowFontZoom=true;bShowLineColor=true;}else if(chart.ClassName=="ChartDrawNote"){bShowBGColor=true;bShowFontColor=true;bShowBorderColor=true;bModifyText=true;bShowFontZoom=true;bgColor=chart.NoteBGColor;fontColor=chart.NoteTextColor;borderColor=chart.NoteBorderColor;}else if(chart.ClassName=="ChartDrawVolProfile"){bShowLineColor=false;bAdvanced=true;}else if(chart.ClassName=="ChartDrawPictureIconFont"){bShowFontZoom=true;}if(this.ColorButton){var item=this.ColorButton;this.ShowButton(item.Div,bShowLineColor?"inline":"none");if(bShowLineColor){item.Span.style['color']=chart.LineColor;}}if(this.BGColorButton){var item=this.BGColorButton;this.ShowButton(item.Div,bShowBGColor?"inline":"none");if(bShowBGColor){item.Span.style['color']=bgColor;}}if(this.FontColorButton){var item=this.FontColorButton;this.ShowButton(item.Div,bShowFontColor?"inline":"none");if(bShowFontColor){item.Span.style['color']=fontColor;}}if(this.BorderColorButton){var item=this.BorderColorButton;this.ShowButton(item.Div,bShowBorderColor?"inline":"none");if(bShowBorderColor){item.Span.style['color']=borderColor;}}if(this.LockButton){var item=this.LockButton;item.Span.style['color']=this.ChartPicture.EnableMove?"rgb(220,220,220)":"rgb(0,0,0)";}if(this.FontZoomButton){var item=this.FontZoomButton;this.ShowButton(item.Div,bShowFontZoom?"inline":"none");}if(this.FontZoomOutButton){var item=this.FontZoomOutButton;this.ShowButton(item.Div,bShowFontZoom?"inline":"none");}if(this.ModifyTextButton){var item=this.ModifyTextButton;this.ShowButton(item.Div,bModifyText?"inline":"none");}if(this.AdvancedButton){var item=this.AdvancedButton;this.ShowButton(item.Div,bAdvanced?"inline":"none");}};this.OnMouseDownTitle=function(e){var _this94=this;if(!this.DivDialog)return;var dragData={X:e.clientX,Y:e.clientY};dragData.YOffset=e.clientX-this.DivDialog.offsetLeft;dragData.XOffset=e.clientY-this.DivDialog.offsetTop;this.DragTitle=dragData;document.onmousemove=function(e){_this94.DocOnMouseMoveTitle(e);};document.onmouseup=function(e){_this94.DocOnMouseUpTitle(e);};};this.DocOnMouseMoveTitle=function(e){if(!this.DragTitle)return;var left=e.clientX-this.DragTitle.YOffset;var top=e.clientY-this.DragTitle.XOffset;var right=left+this.DivDialog.offsetWidth;var bottom=top+this.DivDialog.offsetHeight;if(right+5>=window.innerWidth)left=window.innerWidth-this.DivDialog.offsetWidth-5;if(bottom+5>=window.innerHeight)top=window.innerHeight-this.DivDialog.offsetHeight-5;this.DivDialog.style.left=left+'px';this.DivDialog.style.top=top+'px';if(e.preventDefault)e.preventDefault();if(e.stopPropagation)e.stopPropagation();};this.DocOnMouseUpTitle=function(e){this.DragTitle=null;document.onmousemove=null;document.onmouseup=null;};}/*
|
|
15042
15100
|
Copyright (c) 2018 jones
|
|
@@ -15474,7 +15532,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
|
|
|
15474
15532
|
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);};}/********************************************************************************
|
|
15475
15533
|
* 版本信息输出
|
|
15476
15534
|
*
|
|
15477
|
-
*/var HQCHART_VERSION="1.1.
|
|
15535
|
+
*/var HQCHART_VERSION="1.1.15105";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();//把给外界调用的方法暴露出来
|
|
15478
15536
|
exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
|
|
15479
15537
|
// BaseIndex:BaseIndex,
|
|
15480
15538
|
// ChartLine:ChartLine,
|
package/package.json
CHANGED
|
@@ -1052,6 +1052,11 @@ function JSDialogModifyDraw()
|
|
|
1052
1052
|
this.HQChart.Draw();
|
|
1053
1053
|
}
|
|
1054
1054
|
|
|
1055
|
+
this.AdvancedSetting=function()
|
|
1056
|
+
{
|
|
1057
|
+
|
|
1058
|
+
}
|
|
1059
|
+
|
|
1055
1060
|
this.GetRandomText=function(text)
|
|
1056
1061
|
{
|
|
1057
1062
|
var ARY_TEXT=["下跌形态","反转十字星","低位档五阳线","倒V型反转","双顶","持续整理形态"];
|
package/src/jscommon/umychart.js
CHANGED
|
@@ -2618,12 +2618,6 @@ JSChart.RegisterScriptIndexChart=function(name, option)
|
|
|
2618
2618
|
return g_ScriptIndexChartFactory.Add(name, option);
|
|
2619
2619
|
}
|
|
2620
2620
|
|
|
2621
|
-
//注册设置对话框类
|
|
2622
|
-
//option:{ Create:创建类方法 }
|
|
2623
|
-
JSChart.RegisterDialogClass=function(name, option)
|
|
2624
|
-
{
|
|
2625
|
-
return g_DialogFactory.Add(name, option);
|
|
2626
|
-
}
|
|
2627
2621
|
|
|
2628
2622
|
//注册框架类
|
|
2629
2623
|
JSChart.RegisterChartFrameClass=function(name, option)
|
|
@@ -47811,17 +47805,40 @@ function ChartLock()
|
|
|
47811
47805
|
if (!out || !IFrameSplitOperator.IsNonEmptyArray(aryText)) return false;
|
|
47812
47806
|
|
|
47813
47807
|
this.Canvas.font=defaultFont;
|
|
47814
|
-
var
|
|
47808
|
+
var defaultLineHeight=this.Canvas.measureText("擎").width; //行高
|
|
47809
|
+
var lineHeight=defaultLineHeight;
|
|
47815
47810
|
var height=0, width=0;
|
|
47816
47811
|
out.AryText=[];
|
|
47817
47812
|
for(var i=0;i<aryText.length;++i)
|
|
47818
47813
|
{
|
|
47819
47814
|
var item=aryText[i];
|
|
47820
|
-
if (!item || !item.Text) continue;
|
|
47821
|
-
|
|
47815
|
+
if (!item || (!item.Text && !item.Image)) continue;
|
|
47816
|
+
if (item.Image)
|
|
47817
|
+
{
|
|
47818
|
+
textWidth=item.Image.Width;
|
|
47819
|
+
lineHeight=item.Image.Height;
|
|
47820
|
+
}
|
|
47821
|
+
else
|
|
47822
|
+
{
|
|
47823
|
+
if (item.Font)
|
|
47824
|
+
{
|
|
47825
|
+
this.Canvas.font=item.Font;
|
|
47826
|
+
lineHeight=this.Canvas.measureText("擎").width;
|
|
47827
|
+
}
|
|
47828
|
+
else
|
|
47829
|
+
{
|
|
47830
|
+
this.Canvas.font=defaultFont;
|
|
47831
|
+
lineHeight=defaultLineHeight;
|
|
47832
|
+
}
|
|
47833
|
+
|
|
47834
|
+
var textWidth=this.Canvas.measureText(item.Text).width;
|
|
47835
|
+
}
|
|
47822
47836
|
|
|
47823
47837
|
var lineItem={ Text:item.Text, Width:textWidth, Height:lineHeight, Color:item.Color, TextMargin:{ Top:0, Bottom:0, Left:0, Right:0 }, YOffset:0 };
|
|
47824
47838
|
if (IFrameSplitOperator.IsNumber(item.YOffset)) lineItem.YOffset=item.YOffset;
|
|
47839
|
+
if (item.Font) lineItem.Font=item.Font;
|
|
47840
|
+
if (IFrameSplitOperator.IsNumber(item.Align)) lineItem.Align=item.Align; //左右对齐 0=左 1=中 2=右
|
|
47841
|
+
if (item.Image) lineItem.Image=item.Image;
|
|
47825
47842
|
if (item.TextMargin)
|
|
47826
47843
|
{
|
|
47827
47844
|
var margin=item.TextMargin;
|
|
@@ -47945,6 +47962,9 @@ function ChartLock()
|
|
|
47945
47962
|
if (item.Color) this.Canvas.fillStyle=item.Color;
|
|
47946
47963
|
else this.Canvas.fillStyle=this.TextColor;
|
|
47947
47964
|
|
|
47965
|
+
if (item.Font) this.Canvas.font = item.Font;
|
|
47966
|
+
else this.Canvas.font = this.Font;
|
|
47967
|
+
|
|
47948
47968
|
yText+=item.Height;
|
|
47949
47969
|
this.Canvas.fillText(item.Text, xText, yText+item.YOffset);
|
|
47950
47970
|
}
|
|
@@ -47961,11 +47981,35 @@ function ChartLock()
|
|
|
47961
47981
|
for(var i=0;i<outSize.AryText.length;++i)
|
|
47962
47982
|
{
|
|
47963
47983
|
var item=outSize.AryText[i];
|
|
47964
|
-
if (item.
|
|
47965
|
-
|
|
47984
|
+
if (item.Image)
|
|
47985
|
+
{
|
|
47986
|
+
xText=left;
|
|
47987
|
+
if (item.Align===1)
|
|
47988
|
+
{
|
|
47989
|
+
if (outSize.Width>item.Width) xText+=(outSize.Width-item.Width)/2;
|
|
47990
|
+
}
|
|
47966
47991
|
|
|
47967
|
-
|
|
47968
|
-
|
|
47992
|
+
this.Canvas.drawImage(item.Image.Data, xText, yText, item.Image.Width, item.Image.Height);
|
|
47993
|
+
|
|
47994
|
+
yText+=item.Height;
|
|
47995
|
+
}
|
|
47996
|
+
else
|
|
47997
|
+
{
|
|
47998
|
+
if (item.Color) this.Canvas.fillStyle=item.Color;
|
|
47999
|
+
else this.Canvas.fillStyle=this.TextColor;
|
|
48000
|
+
|
|
48001
|
+
if (item.Font) this.Canvas.font = item.Font;
|
|
48002
|
+
else this.Canvas.font = this.Font;
|
|
48003
|
+
|
|
48004
|
+
yText+=item.Height;
|
|
48005
|
+
xText=left;
|
|
48006
|
+
if (item.Align===1)
|
|
48007
|
+
{
|
|
48008
|
+
if (outSize.Width>item.Width) xText+=(outSize.Width-item.Width)/2;
|
|
48009
|
+
}
|
|
48010
|
+
|
|
48011
|
+
this.Canvas.fillText(item.Text, xText, yText+item.YOffset);
|
|
48012
|
+
}
|
|
47969
48013
|
}
|
|
47970
48014
|
}
|
|
47971
48015
|
}
|
|
@@ -100963,239 +101007,9 @@ function IsFundSymbol(symbol)
|
|
|
100963
101007
|
return false;
|
|
100964
101008
|
}
|
|
100965
101009
|
|
|
100966
|
-
//设置对话框工厂类
|
|
100967
|
-
function DialogFactory()
|
|
100968
|
-
{
|
|
100969
|
-
//[key:name, { Create:function(divElement) { return new class(divElement); }} ]
|
|
100970
|
-
this.DataMap=new Map(
|
|
100971
|
-
[
|
|
100972
|
-
["ChartPictureSettingMenu", { Create:function(divElement) { return new ChartPictureSettingMenu(divElement); } }],
|
|
100973
|
-
]);
|
|
100974
|
-
|
|
100975
|
-
this.Create=function(name, option)
|
|
100976
|
-
{
|
|
100977
|
-
if (!this.DataMap.has(name))
|
|
100978
|
-
{
|
|
100979
|
-
JSConsole.Chart.Warn(`[DialogFactory::Create] can't find class=${name}.`);
|
|
100980
|
-
return null;
|
|
100981
|
-
}
|
|
100982
|
-
|
|
100983
|
-
var item=this.DataMap.get(name);
|
|
100984
|
-
return item.Create(option);
|
|
100985
|
-
}
|
|
100986
|
-
|
|
100987
|
-
this.Add=function(name, option)
|
|
100988
|
-
{
|
|
100989
|
-
this.DataMap.set(name, { Create:option.Create } );
|
|
100990
|
-
}
|
|
100991
|
-
}
|
|
100992
|
-
|
|
100993
|
-
var g_DialogFactory=new DialogFactory();
|
|
100994
|
-
|
|
100995
|
-
//设置窗口基类
|
|
100996
|
-
function IDivDialog(divElement)
|
|
100997
|
-
{
|
|
100998
|
-
this.DivElement=divElement; //父节点
|
|
100999
|
-
this.ID=null; //div id
|
|
101000
|
-
this.TimeOut=null; //定时器
|
|
101001
|
-
|
|
101002
|
-
//隐藏窗口
|
|
101003
|
-
this.Hide=function()
|
|
101004
|
-
{
|
|
101005
|
-
$("#"+this.ID).hide();
|
|
101006
|
-
}
|
|
101007
|
-
|
|
101008
|
-
//显示窗口
|
|
101009
|
-
this.Show=function(left,top,width,height)
|
|
101010
|
-
{
|
|
101011
|
-
var cssData={display:'block'};
|
|
101012
|
-
if (IFrameSplitOperator.IsNumber(left)) cssData.left=left+'px';
|
|
101013
|
-
if (IFrameSplitOperator.IsNumber(top)) cssData.top=top+'px';
|
|
101014
|
-
if (IFrameSplitOperator.IsNumber(width)) cssData.width=width+'px';
|
|
101015
|
-
if (IFrameSplitOperator.IsNumber(height)) cssData.height=height+'px';
|
|
101016
|
-
|
|
101017
|
-
$("#"+this.ID).css(cssData);
|
|
101018
|
-
}
|
|
101019
|
-
}
|
|
101020
|
-
|
|
101021
|
-
//等待动画窗口
|
|
101022
|
-
function WaitDialog(divElement)
|
|
101023
|
-
{
|
|
101024
|
-
this.newMethod=IDivDialog; //派生
|
|
101025
|
-
this.newMethod(divElement);
|
|
101026
|
-
delete this.newMethod;
|
|
101027
|
-
|
|
101028
|
-
this.Title='加载中......';
|
|
101029
|
-
this.Dialog;
|
|
101030
|
-
|
|
101031
|
-
//隐藏窗口
|
|
101032
|
-
this.Close=function()
|
|
101033
|
-
{
|
|
101034
|
-
if (this.Dialog)
|
|
101035
|
-
{
|
|
101036
|
-
this.DivElement.removeChild(this.Dialog);
|
|
101037
|
-
this.Dialog=null;
|
|
101038
|
-
}
|
|
101039
|
-
}
|
|
101040
|
-
|
|
101041
|
-
this.SetTitle=function(title)
|
|
101042
|
-
{
|
|
101043
|
-
this.Title=title;
|
|
101044
|
-
if (!this.Dialog) return;
|
|
101045
|
-
//TODO: 更新标题数据
|
|
101046
|
-
}
|
|
101047
|
-
|
|
101048
|
-
this.Create=function()
|
|
101049
|
-
{
|
|
101050
|
-
this.ID=Guid();
|
|
101051
|
-
var div=document.createElement('div');
|
|
101052
|
-
div.className='jchart-wait-box';
|
|
101053
|
-
div.id=this.ID;
|
|
101054
|
-
div.innerHTML=
|
|
101055
|
-
`<div class='parameter jchart-kline-match-box'>
|
|
101056
|
-
<div class='parameter-header'>
|
|
101057
|
-
<span>${this.Title}</span>
|
|
101058
|
-
</div>
|
|
101059
|
-
</div>`.trim();
|
|
101060
|
-
|
|
101061
|
-
this.DivElement.appendChild(div);
|
|
101062
|
-
this.Dialog=div;
|
|
101063
|
-
}
|
|
101064
|
-
|
|
101065
|
-
//显示
|
|
101066
|
-
this.DoModal=function(event)
|
|
101067
|
-
{
|
|
101068
|
-
this.Title=event.data.Title;
|
|
101069
|
-
var chart=event.data.Chart;
|
|
101070
|
-
if (this.ID==null) this.Create(); //第1次 需要创建div
|
|
101071
|
-
|
|
101072
|
-
//居中显示
|
|
101073
|
-
var border=chart.Frame.ChartBorder;
|
|
101074
|
-
var scrollPos=GetScrollPosition();
|
|
101075
|
-
var left=border.GetWidth()/2;
|
|
101076
|
-
var top=border.GetHeight()/2;
|
|
101077
|
-
|
|
101078
|
-
this.Show(left,top,200,40); //显示
|
|
101079
|
-
}
|
|
101080
|
-
}
|
|
101081
|
-
|
|
101082
|
-
//画图工具 单个图形设置
|
|
101083
|
-
function ChartPictureSettingMenu(divElement)
|
|
101084
|
-
{
|
|
101085
|
-
this.newMethod=IDivDialog; //派生
|
|
101086
|
-
this.newMethod(divElement);
|
|
101087
|
-
delete this.newMethod;
|
|
101088
|
-
|
|
101089
|
-
this.HQChart;
|
|
101090
|
-
this.ChartPicture;
|
|
101091
|
-
this.SubToolsDiv;
|
|
101092
|
-
this.SettingMenu;
|
|
101093
|
-
this.SettingPV;
|
|
101094
|
-
|
|
101095
|
-
this.DoModal=function(event)
|
|
101096
|
-
{
|
|
101097
|
-
var $body;
|
|
101098
|
-
if (!this.SubToolsDiv)
|
|
101099
|
-
{
|
|
101100
|
-
this.ID=Guid();
|
|
101101
|
-
var div=document.createElement("div");
|
|
101102
|
-
div.className='subTolls';
|
|
101103
|
-
div.id=this.ID;
|
|
101104
|
-
this.DivElement.appendChild(div);
|
|
101105
|
-
//$body = $("."+event.data.HQChart.ClassName).context.body;
|
|
101106
|
-
//$body.append(div);
|
|
101107
|
-
this.SubToolsDiv=div;
|
|
101108
|
-
}
|
|
101109
|
-
this.HQChart=event.data.HQChart;
|
|
101110
|
-
this.ChartPicture=event.data.ChartPicture;
|
|
101111
|
-
|
|
101112
|
-
var pixelTatio = GetDevicePixelRatio();
|
|
101113
|
-
var frame=this.HQChart.Frame.SubFrame[0].Frame;
|
|
101114
|
-
// var top=frame.ChartBorder.GetTopTitle();
|
|
101115
|
-
var top=frame.ChartBorder.Top + 40;
|
|
101116
|
-
// var right=frame.ChartBorder.GetRight();
|
|
101117
|
-
var right=frame.ChartBorder.Right;
|
|
101118
|
-
var left=frame.ChartBorder.GetLeft();
|
|
101119
|
-
var className = this.ChartPicture.ClassName; //='ChartDrawPictureText'时加“设置”
|
|
101120
|
-
var lineColor=this.ChartPicture.LineColor;
|
|
101121
|
-
if (lineColor.indexOf("rgb(")==0 || lineColor.indexOf("RGB(")==0)
|
|
101122
|
-
lineColor=IChartDrawPicture.RGBToHex(lineColor.toLowerCase());
|
|
101123
|
-
var toolsDiv = "";
|
|
101124
|
-
if(className === 'ChartDrawPictureText')
|
|
101125
|
-
{
|
|
101126
|
-
toolsDiv = '<span class="changes-color" title="改变图形颜色">'+
|
|
101127
|
-
'<i class="iconfont icon-bianji"></i>'+
|
|
101128
|
-
'<input type="color" name="color" id="color" class="change-color" value="'+ lineColor +'">'+
|
|
101129
|
-
'</span>\n' +
|
|
101130
|
-
'<span class="subtool-set" title="设置"><i class="iconfont icon-shezhi"></i></span>'+
|
|
101131
|
-
'<span class="subtool-del"><i class="iconfont icon-recycle_bin"></i></span>';
|
|
101132
|
-
}
|
|
101133
|
-
else if (className=="ChartDrawVolProfile")
|
|
101134
|
-
{
|
|
101135
|
-
toolsDiv='<span class="vp-set" title="设置"><i class="iconfont icon-shezhi"></i></span>'+
|
|
101136
|
-
'<span class="subtool-del"><i class="iconfont icon-recycle_bin"></i></span>';
|
|
101137
|
-
}
|
|
101138
|
-
else
|
|
101139
|
-
{
|
|
101140
|
-
toolsDiv =
|
|
101141
|
-
'<p class="changes-color" title="改变图形颜色"><i class="iconfont icon-bianji"></i>' +
|
|
101142
|
-
'<input type="color" name="color" id="color" class="change-color" value="'+ lineColor +'"></p>\n' +
|
|
101143
|
-
' <p class="subtool-del"><i class="iconfont icon-recycle_bin"></i></p>';
|
|
101144
|
-
}
|
|
101145
|
-
|
|
101146
|
-
|
|
101147
|
-
this.SubToolsDiv.style.right = right/pixelTatio + "px";
|
|
101148
|
-
this.SubToolsDiv.style.top = top/pixelTatio + "px";
|
|
101149
|
-
this.SubToolsDiv.innerHTML = toolsDiv;
|
|
101150
|
-
this.SubToolsDiv.style.position = "absolute";
|
|
101151
|
-
this.SubToolsDiv.style.display = "block";
|
|
101152
|
-
|
|
101153
|
-
var hqChart = this.HQChart;
|
|
101154
|
-
var picture = this.ChartPicture;
|
|
101155
|
-
var subToolDiv = this.SubToolsDiv;
|
|
101156
|
-
$(".subtool-del").click(function(){
|
|
101157
|
-
hqChart.SelectChartDrawPicture=null;
|
|
101158
|
-
hqChart.ClearChartDrawPicture(picture);
|
|
101159
|
-
// subToolDiv.innerHTML = "";
|
|
101160
|
-
$(".subTolls").css("display","none");
|
|
101161
|
-
});
|
|
101162
|
-
var self = this;
|
|
101163
|
-
$(".subtool-set").click(function(){
|
|
101164
|
-
$(self.SubToolsDiv).hide();
|
|
101165
|
-
//创建div设置窗口
|
|
101166
|
-
if (!self.SettingMenu) self.SettingMenu=new ChartPictureTextSettingMenu(frame.ChartBorder.UIElement.parentNode);
|
|
101167
|
-
|
|
101168
|
-
self.SettingMenu.ChartPicture=picture;
|
|
101169
|
-
self.SettingMenu.HQChart=hqChart;
|
|
101170
|
-
self.SettingMenu.Position={Left:right + 80,Top:top + 20};
|
|
101171
|
-
self.SettingMenu.DoModal();
|
|
101172
|
-
});
|
|
101173
|
-
$(".changes-color").click(function () {
|
|
101174
|
-
document.getElementById('color').click();
|
|
101175
|
-
$(".change-color").change(function () {
|
|
101176
|
-
var color = $(".change-color").val();
|
|
101177
|
-
picture.LineColor = color;
|
|
101178
|
-
picture.PointColor = color;
|
|
101179
|
-
if (hqChart.ChartDrawStorage) hqChart.ChartDrawStorage.SaveDrawData(picture); //保存下
|
|
101180
|
-
});
|
|
101181
|
-
});
|
|
101182
|
-
|
|
101183
|
-
//成交量分布图设置
|
|
101184
|
-
$(".vp-set").click(function()
|
|
101185
|
-
{
|
|
101186
|
-
if (!self.SettingPV) self.SettingPV=new ChartPictureVolProfileSettingMenu(frame.ChartBorder.UIElement.parentNode);
|
|
101187
|
-
self.SettingPV.ChartPicture=picture;
|
|
101188
|
-
self.SettingPV.HQChart=hqChart;
|
|
101189
|
-
self.SettingPV.Position={Left:right + 80,Top:top + 20};
|
|
101190
|
-
self.SettingPV.DoModal();
|
|
101191
|
-
});
|
|
101192
|
-
|
|
101193
|
-
|
|
101194
|
-
JSConsole.Chart.Log("[ChartPictureSettingMenu::DoModal]", {Top:top,Left:left, Right:right});
|
|
101195
|
-
}
|
|
101196
|
-
}
|
|
101197
101010
|
|
|
101198
101011
|
|
|
101012
|
+
/*
|
|
101199
101013
|
function ChartPictureVolProfileSettingMenu(divElement)
|
|
101200
101014
|
{
|
|
101201
101015
|
this.newMethod=IDivDialog; //派生
|
|
@@ -101284,6 +101098,7 @@ function ChartPictureVolProfileSettingMenu(divElement)
|
|
|
101284
101098
|
}
|
|
101285
101099
|
}
|
|
101286
101100
|
}
|
|
101101
|
+
*/
|
|
101287
101102
|
|
|
101288
101103
|
|
|
101289
101104
|
|