hqchart 1.1.13191 → 1.1.13194
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 +16 -12
- package/package.json +1 -1
- package/src/jscommon/umychart.js +46 -11
- package/src/jscommon/umychart.popMenu.js +18 -0
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +47 -12
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +65 -12
package/lib/umychart.vue.js
CHANGED
|
@@ -1285,7 +1285,7 @@ this.ClearChartDrawPicture=function(drawPicture,option){if(this.JSChartContainer
|
|
|
1285
1285
|
this.JSChartContainer.ClearChartDrawPicture(drawPicture,option);}};//复制一个画图
|
|
1286
1286
|
this.PasteChartDrawPicture=function(data,frameID,option){if(this.JSChartContainer&&typeof this.JSChartContainer.PasteChartDrawPicture=='function'){JSConsole.Chart.Log('[JSChart:PasteChartDrawPicture] ',data,frameID,option);return this.JSChartContainer.PasteChartDrawPicture(data,frameID,option);}};//重新加载配置
|
|
1287
1287
|
this.ReloadResource=function(option){if(this.JSChartContainer&&typeof this.JSChartContainer.ReloadResource=='function'){JSConsole.Chart.Log('[JSChart:ReloadResource] ');this.JSChartContainer.ReloadResource(option);}};this.EnableSplashScreen=function(enable,option){if(this.JSChartContainer&&typeof this.JSChartContainer.EnableSplashScreen=='function'){JSConsole.Chart.Log('[JSChart:EnableSplashScreen] ');this.JSChartContainer.EnableSplashScreen(enable,option);}};this.Draw=function(){if(this.JSChartContainer&&typeof this.JSChartContainer.Draw=='function'){JSConsole.Chart.Log('[JSChart:Draw] ');this.JSChartContainer.Draw();}};this.SetFocus=function(){if(this.JSChartContainer&&typeof this.JSChartContainer.SetFocus=='function'){JSConsole.Chart.Log('[JSChart:SetFocus] ');this.JSChartContainer.SetFocus();}};//数据导出, option={ Start:{ Date, Time:可选}, End:{Date: Time:可选} }
|
|
1288
|
-
this.ExportData=function(option){if(this.JSChartContainer&&typeof this.JSChartContainer.ExportData=='function'){JSConsole.Chart.Log('[JSChart:ExportData] ');return this.JSChartContainer.ExportData(option);}};this.ChangePriceGap=function(option){if(this.JSChartContainer&&typeof this.JSChartContainer.ChangePriceGap=='function'){JSConsole.Chart.Log('[JSChart:ChangePriceGap] ');return this.JSChartContainer.ChangePriceGap(option);}};this.PopupMenuByTab=function(menuData,rtTab){if(this.JSChartContainer&&typeof this.JSChartContainer.PopupMenuByTab=='function'){JSConsole.Chart.Log('[JSChart:
|
|
1288
|
+
this.ExportData=function(option){if(this.JSChartContainer&&typeof this.JSChartContainer.ExportData=='function'){JSConsole.Chart.Log('[JSChart:ExportData] ');return this.JSChartContainer.ExportData(option);}};this.ChangePriceGap=function(option){if(this.JSChartContainer&&typeof this.JSChartContainer.ChangePriceGap=='function'){JSConsole.Chart.Log('[JSChart:ChangePriceGap] ');return this.JSChartContainer.ChangePriceGap(option);}};this.PopupMenuByTab=function(menuData,rtTab){if(this.JSChartContainer&&typeof this.JSChartContainer.PopupMenuByTab=='function'){JSConsole.Chart.Log('[JSChart:PopupMenuByTab] ');return this.JSChartContainer.PopupMenuByTab(menuData,rtTab);}};this.PopupMenuByDrapdown=function(menuData,rtButton){if(this.JSChartContainer&&typeof this.JSChartContainer.PopupMenuByDrapdown=='function'){JSConsole.Chart.Log('[JSChart:PopupMenuByDrapdown] ');return this.JSChartContainer.PopupMenuByDrapdown(menuData,rtButton);}};}JSChart.LastVersion=null;//最新的版本号
|
|
1289
1289
|
JSChart.EnableCanvasWillReadFrequently=false;//https://html.spec.whatwg.org/multipage/canvas.html#concept-canvas-will-read-frequently
|
|
1290
1290
|
JSChart.CorssCursorCanvasKey="hqchart_corsscursor";//初始化
|
|
1291
1291
|
JSChart.Init=function(divElement,bScreen,bCacheCanvas){var jsChartControl=new JSChart(divElement,bScreen,bCacheCanvas);jsChartControl.OnSize();return jsChartControl;};JSChart.SetDomain=function(domain,cacheDomain){if(domain)g_JSChartResource.Domain=domain;if(cacheDomain)g_JSChartResource.CacheDomain=cacheDomain;};JSChart.SetPyIndexDomain=function(domain)//设置py指标计算api域名
|
|
@@ -1964,7 +1964,10 @@ this.GetIndexInfo=function(){var aryIndex=[];for(var i=0,j=0;i<this.WindowIndex.
|
|
|
1964
1964
|
{info.Args=[];for(j=0;j<item.Arguments.length;++j){var argItem=item.Arguments[j];info.Args.push({Name:argItem.Name,Value:argItem.Value});}}aryIndex.push(info);}this.GetOverlayIndexInfo(aryIndex);//叠加指标
|
|
1965
1965
|
return aryIndex;};//叠加指标
|
|
1966
1966
|
this.GetOverlayIndexInfo=function(aryIndex){for(var i=0,j=0,k=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i];if(!IFrameSplitOperator.IsNonEmptyArray(item.OverlayIndex))continue;for(j=0;j<item.OverlayIndex.length;++j){var overlayItem=item.OverlayIndex[j];if(!overlayItem.Script)continue;var indexData=overlayItem.Script;var info={Name:indexData.Name,ID:indexData.ID,WindowIndex:i,IsOverlay:true,Identify:overlayItem.Identify};if(IFrameSplitOperator.IsNonEmptyArray(indexData.Arguments))//参数
|
|
1967
|
-
{info.Args=[];for(k=0;k<indexData.Arguments.length;++k){var argItem=indexData.Arguments[k];info.Args.push({Name:argItem.Name,Value:argItem.Value});}}aryIndex.push(info);}}}
|
|
1967
|
+
{info.Args=[];for(k=0;k<indexData.Arguments.length;++k){var argItem=indexData.Arguments[k];info.Args.push({Name:argItem.Name,Value:argItem.Value});}}aryIndex.push(info);}}};//点tab弹菜单
|
|
1968
|
+
this.PopupMenuByTab=function(menuData,rtTab){if(!this.JSPopMenu)return;var pixelRatio=GetDevicePixelRatio();var rtCell={Left:rtTab.Left/pixelRatio,Right:rtTab.Right/pixelRatio,Bottom:rtTab.Bottom/pixelRatio,Top:rtTab.Top/pixelRatio};rtCell.Width=rtCell.Right-rtCell.Left;rtCell.Height=rtCell.Bottom-rtCell.Top;var rtClient=this.UIElement.getBoundingClientRect();var rtScroll=GetScrollPosition();var offsetLeft=rtClient.left+rtScroll.Left;var offsetTop=rtClient.top+rtScroll.Top;rtCell.Left+=offsetLeft;rtCell.Right+=offsetLeft;rtCell.Top+=offsetTop;rtCell.Bottom+=offsetTop;this.JSPopMenu.CreatePopMenu(menuData);this.JSPopMenu.PopupMenuByTab(rtCell);};//下拉菜单
|
|
1969
|
+
this.PopupMenuByDrapdown=function(menuData,rtButton){if(!this.JSPopMenu)return;var pixelRatio=GetDevicePixelRatio();var rtCell={Left:rtButton.Left/pixelRatio,Right:rtButton.Right/pixelRatio,Bottom:rtButton.Bottom/pixelRatio,Top:rtButton.Top/pixelRatio};rtCell.Width=rtCell.Right-rtCell.Left;rtCell.Height=rtCell.Bottom-rtCell.Top;var rtClient=this.UIElement.getBoundingClientRect();var rtScroll=GetScrollPosition();var offsetLeft=rtClient.left+rtScroll.Left;var offsetTop=rtClient.top+rtScroll.Top;rtCell.Left+=offsetLeft;rtCell.Right+=offsetLeft;rtCell.Top+=offsetTop;rtCell.Bottom+=offsetTop;this.JSPopMenu.CreatePopMenu(menuData);this.JSPopMenu.PopupMenuByDrapdown(rtCell);};//右键菜单
|
|
1970
|
+
this.PopupMenuByRClick=function(menuData,x,y){var rtClient=this.UIElement.getBoundingClientRect();var rtScroll=GetScrollPosition();x+=rtClient.left+rtScroll.Left;y+=rtClient.top+rtScroll.Top;this.JSPopMenu.CreatePopMenu(menuData);this.JSPopMenu.PopupMenuByRight(x,y);};//点击右键菜单
|
|
1968
1971
|
this.OnClickRightMenu=function(data){JSConsole.Chart.Log('[JSChartContainer::OnClickRightMenu] ',data);if(!data||!data.Data)return;var cmdID=data.Data.ID;//命令ID
|
|
1969
1972
|
var aryArgs=data.Data.Args;//参数
|
|
1970
1973
|
var param=null,srcParam=null;//原始值
|
|
@@ -2255,7 +2258,7 @@ divToolbar.innerHTML=spanIcon;var chart=this.ChartBorder.UIElement.JSChartContai
|
|
|
2255
2258
|
{(0,_jquery2.default)("#"+divToolbar.id+" .index_change").hide();}else if(typeof this.ChangeIndexEvent=='function'){(0,_jquery2.default)("#"+divToolbar.id+" .index_change").click({Chart:this.ChartBorder.UIElement.JSChartContainer,Identify:this.Identify,IsOverlay:false},this.ChangeIndexEvent);}(0,_jquery2.default)("#"+divToolbar.id+" .index_close").click({Chart:this.ChartBorder.UIElement.JSChartContainer,Identify:this.Identify},function(event){var hqChart=event.data.Chart;var id=event.data.Identify;hqChart.RemoveIndexWindow(id);});divToolbar.style.display="block";};//手绘,不用DOM,使用DOM太麻烦了
|
|
2256
2259
|
this.DrawToolbarV2=function(moveonPoint,mouseStatus){if(g_JSChartResource.IsDOMFrameToolbar===true)return;if(this.Identify==0&&this.IsShowCloseButton)this.DrawCloseBeforeButton(moveonPoint,mouseStatus);//盘前集合竞价关闭按钮
|
|
2257
2260
|
if(this.ChartBorder.TitleHeight<5)return;var aryButton=[];if(this.Identify!=0&&this.Identify!=1)//价格图和成交量图只有自定义按钮
|
|
2258
|
-
{if(this.CloseIndex)aryButton.push({ID:JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW,Style:this.CloseWindowButton});if(this.MaxMinWindow)aryButton.push({ID:JSCHART_BUTTON_ID.MAX_MIN_WINDOW,Style:this.MaxMinWindowButton});if(this.TitleWindow)aryButton.push({ID:JSCHART_BUTTON_ID.TITLE_WINDOW,Style:this.TitleWindowButton});if(this.ExportData)aryButton.push({ID:JSCHART_BUTTON_ID.EXPORT_DATA,Style:this.ExportDataButton});if(this.OverlayIndex)aryButton.push({ID:JSCHART_BUTTON_ID.OVERLAY_INDEX,Style:this.OverlayIndexButton});if(this.ChangeIndex)aryButton.push({ID:JSCHART_BUTTON_ID.CHANGE_INDEX,Style:this.ChangeIndexButton});if(this.ModifyIndex)aryButton.push({ID:JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM,Style:this.ModifyIndexParamButton});}if(IFrameSplitOperator.IsNonEmptyArray(this.CustomToolbar)){for(var i=0;i<this.CustomToolbar.length;++i){var item=this.CustomToolbar[i];if(item.ID&&item.Style)aryButton.push({ID:item.ID,Style:item.Style,TooltipText:item.TooltipText});}}this.DrawTitleButton(aryButton,moveonPoint,mouseStatus);};this.DrawCloseBeforeButton=function(moveonPoint,mouseStatus){if(this.Identify!=0)return;var border=this.ChartBorder.GetBorder();if(border.DayBorder)return;if(this.ChartBorder.LeftExtendWidth<10)return;var rtButton={Left:border.Left,Top:border.TopEx,Width:this.BeforeCloseIcon.Size,Height:this.BeforeCloseIcon.Size};rtButton.Right=rtButton.Left+this.BeforeCloseIcon.Size;rtButton.Bottom=rtButton.Top+this.BeforeCloseIcon.Size;var item={Rect:rtButton,Name:"集合竞价关闭按钮",ID:JSCHART_BUTTON_ID.CLOSE_BEFOREOPEN_ID};var color=this.BeforeCloseIcon.Color;if(moveonPoint&&moveonPoint.X>=rtButton.Left&&moveonPoint.X<rtButton.Right&&moveonPoint.Y>=rtButton.Top&&moveonPoint.Y<=rtButton.Bottom){color=this.BeforeCloseIcon.MoveOnColor;if(mouseStatus)mouseStatus.MouseOnToolbar={Rect:rtButton,Item:item,Frame:this,Point:{X:moveonPoint.X,Y:moveonPoint.Y}};}var font=this.BeforeCloseIcon.Size+'px '+this.BeforeCloseIcon.Family;this.Canvas.font=font;this.Canvas.fillStyle=color;this.Canvas.textAlign='left';this.Canvas.textBaseline='top';this.Canvas.fillText(this.BeforeCloseIcon.Text,border.Left,border.TopEx);this.Buttons.push(item);};this.DrawMultiDayBeforeDataBG=function(border){var dayBorder=border.DayBorder;var top=ToFixedPoint(border.Top);var bottom=ToFixedPoint(border.Bottom);var height=bottom-top;this.Canvas.strokeStyle=this.MultiDayBorderPen;for(var i=0;i<dayBorder.length;++i){var drawCount=0;var item=dayBorder[i];var left=ToFixedPoint(item.Left);var right=ToFixedPoint(item.LeftEx);var width=right-left;if(width>3)//盘前
|
|
2261
|
+
{if(this.CloseIndex)aryButton.push({ID:JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW,Style:this.CloseWindowButton});if(this.MaxMinWindow)aryButton.push({ID:JSCHART_BUTTON_ID.MAX_MIN_WINDOW,Style:this.MaxMinWindowButton});if(this.TitleWindow)aryButton.push({ID:JSCHART_BUTTON_ID.TITLE_WINDOW,Style:this.TitleWindowButton});if(this.ExportData)aryButton.push({ID:JSCHART_BUTTON_ID.EXPORT_DATA,Style:this.ExportDataButton});if(this.OverlayIndex)aryButton.push({ID:JSCHART_BUTTON_ID.OVERLAY_INDEX,Style:this.OverlayIndexButton});if(this.ChangeIndex)aryButton.push({ID:JSCHART_BUTTON_ID.CHANGE_INDEX,Style:this.ChangeIndexButton});if(this.ModifyIndex)aryButton.push({ID:JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM,Style:this.ModifyIndexParamButton});}if(IFrameSplitOperator.IsNonEmptyArray(this.CustomToolbar)){for(var i=0;i<this.CustomToolbar.length;++i){var item=this.CustomToolbar[i];if(item.ID&&item.Style)aryButton.push({ID:item.ID,Style:item.Style,TooltipText:item.TooltipText,Data:item.Data});}}this.DrawTitleButton(aryButton,moveonPoint,mouseStatus);};this.DrawCloseBeforeButton=function(moveonPoint,mouseStatus){if(this.Identify!=0)return;var border=this.ChartBorder.GetBorder();if(border.DayBorder)return;if(this.ChartBorder.LeftExtendWidth<10)return;var rtButton={Left:border.Left,Top:border.TopEx,Width:this.BeforeCloseIcon.Size,Height:this.BeforeCloseIcon.Size};rtButton.Right=rtButton.Left+this.BeforeCloseIcon.Size;rtButton.Bottom=rtButton.Top+this.BeforeCloseIcon.Size;var item={Rect:rtButton,Name:"集合竞价关闭按钮",ID:JSCHART_BUTTON_ID.CLOSE_BEFOREOPEN_ID};var color=this.BeforeCloseIcon.Color;if(moveonPoint&&moveonPoint.X>=rtButton.Left&&moveonPoint.X<rtButton.Right&&moveonPoint.Y>=rtButton.Top&&moveonPoint.Y<=rtButton.Bottom){color=this.BeforeCloseIcon.MoveOnColor;if(mouseStatus)mouseStatus.MouseOnToolbar={Rect:rtButton,Item:item,Frame:this,Point:{X:moveonPoint.X,Y:moveonPoint.Y}};}var font=this.BeforeCloseIcon.Size+'px '+this.BeforeCloseIcon.Family;this.Canvas.font=font;this.Canvas.fillStyle=color;this.Canvas.textAlign='left';this.Canvas.textBaseline='top';this.Canvas.fillText(this.BeforeCloseIcon.Text,border.Left,border.TopEx);this.Buttons.push(item);};this.DrawMultiDayBeforeDataBG=function(border){var dayBorder=border.DayBorder;var top=ToFixedPoint(border.Top);var bottom=ToFixedPoint(border.Bottom);var height=bottom-top;this.Canvas.strokeStyle=this.MultiDayBorderPen;for(var i=0;i<dayBorder.length;++i){var drawCount=0;var item=dayBorder[i];var left=ToFixedPoint(item.Left);var right=ToFixedPoint(item.LeftEx);var width=right-left;if(width>3)//盘前
|
|
2259
2262
|
{this.Canvas.fillStyle=this.BeforeBGColor;this.Canvas.fillRect(left,top,width,height);++drawCount;}var left=ToFixedPoint(item.RightEx);var right=ToFixedPoint(item.Right);var width=right-left;if(width>3)//盘后
|
|
2260
2263
|
{this.Canvas.fillStyle=this.AfterBGColor;this.Canvas.fillRect(left,top,width,height);++drawCount;}if(drawCount==2&&i!=dayBorder.length-1){this.Canvas.beginPath();this.Canvas.moveTo(right,top);this.Canvas.lineTo(right,bottom);this.Canvas.stroke();}}};this.DrawCallAuctionVertical=function(verticalInfo,callAuctionData,border,isBeforeClose){if(!callAuctionData)return;var top=border.TopTitle;var bottom=border.Bottom;var left=border.Left;var right=border.LeftEx;var pixelRatio=GetDevicePixelRatio();//获取设备的分辨率
|
|
2261
2264
|
var xPrev=null;//上一个坐标x的值
|
|
@@ -2358,7 +2361,7 @@ divToolbar.innerHTML=spanIcon;var chart=this.ChartBorder.UIElement.JSChartContai
|
|
|
2358
2361
|
(0,_jquery2.default)("#"+divToolbar.id+" .index_param").click({Chart:this.ChartBorder.UIElement.JSChartContainer,Identify:this.Identify},this.ModifyIndexEvent);if(!this.ChangeIndex)//隐藏'换指标'
|
|
2359
2362
|
{(0,_jquery2.default)("#"+divToolbar.id+" .index_change").hide();}else if(typeof this.ChangeIndexEvent=='function'){(0,_jquery2.default)("#"+divToolbar.id+" .index_change").click({Chart:this.ChartBorder.UIElement.JSChartContainer,Identify:this.Identify,IsOverlay:false},this.ChangeIndexEvent);}if(!this.OverlayIndex){(0,_jquery2.default)("#"+divToolbar.id+" .index_overlay").hide();}else{(0,_jquery2.default)("#"+divToolbar.id+" .index_overlay").click({Chart:this.ChartBorder.UIElement.JSChartContainer,Identify:this.Identify,IsOverlay:true},this.ChangeIndexEvent);}(0,_jquery2.default)("#"+divToolbar.id+" .index_close").click({Chart:this.ChartBorder.UIElement.JSChartContainer,Identify:this.Identify},function(event){var hqChart=event.data.Chart;var id=event.data.Identify;hqChart.RemoveIndexWindow(id);});if(IFrameSplitOperator.IsNonEmptyArray(this.CustomToolbar)){for(var i=0;i<this.CustomToolbar.length;++i){var item=this.CustomToolbar[i];(0,_jquery2.default)("#"+item.ID).click({Chart:this.ChartBorder.UIElement.JSChartContainer,Identify:this.Identify,ID:item.ID},item.Click);}}divToolbar.style.display="block";};//手绘,不用DOM,使用DOM太麻烦了
|
|
2360
2363
|
this.DrawToolbarV2=function(moveonPoint,mouseStatus){if(g_JSChartResource.IsDOMFrameToolbar===true)return;this.Buttons=[];this.LeftButtonWidth=0;if(this.IsMinSize==true)return;if(this.ChartBorder.TitleHeight<5)return;var aryButton=[];//第1个窗口不能关闭
|
|
2361
|
-
if(this.CloseIndex&&this.Identify!==0)aryButton.push({ID:JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW,Style:this.CloseWindowButton});if(this.MaxMinWindow&&this.Identify!=0)aryButton.push({ID:JSCHART_BUTTON_ID.MAX_MIN_WINDOW,Style:this.MaxMinWindowButton});if(this.TitleWindow&&this.Identify!=0)aryButton.push({ID:JSCHART_BUTTON_ID.TITLE_WINDOW,Style:this.TitleWindowButton});if(this.ExportData)aryButton.push({ID:JSCHART_BUTTON_ID.EXPORT_DATA,Style:this.ExportDataButton});if(this.OverlayIndex)aryButton.push({ID:JSCHART_BUTTON_ID.OVERLAY_INDEX,Style:this.OverlayIndexButton});if(this.ChangeIndex)aryButton.push({ID:JSCHART_BUTTON_ID.CHANGE_INDEX,Style:this.ChangeIndexButton});if(this.ModifyIndex)aryButton.push({ID:JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM,Style:this.ModifyIndexParamButton});if(IFrameSplitOperator.IsNonEmptyArray(this.CustomToolbar)){for(var i=0;i<this.CustomToolbar.length;++i){var item=this.CustomToolbar[i];if(item.ID&&item.Style){var btnItem={ID:item.ID,Style:item.Style,TooltipText:item.TooltipText};if(item.IsLeft===true)//左侧按钮
|
|
2364
|
+
if(this.CloseIndex&&this.Identify!==0)aryButton.push({ID:JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW,Style:this.CloseWindowButton});if(this.MaxMinWindow&&this.Identify!=0)aryButton.push({ID:JSCHART_BUTTON_ID.MAX_MIN_WINDOW,Style:this.MaxMinWindowButton});if(this.TitleWindow&&this.Identify!=0)aryButton.push({ID:JSCHART_BUTTON_ID.TITLE_WINDOW,Style:this.TitleWindowButton});if(this.ExportData)aryButton.push({ID:JSCHART_BUTTON_ID.EXPORT_DATA,Style:this.ExportDataButton});if(this.OverlayIndex)aryButton.push({ID:JSCHART_BUTTON_ID.OVERLAY_INDEX,Style:this.OverlayIndexButton});if(this.ChangeIndex)aryButton.push({ID:JSCHART_BUTTON_ID.CHANGE_INDEX,Style:this.ChangeIndexButton});if(this.ModifyIndex)aryButton.push({ID:JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM,Style:this.ModifyIndexParamButton});if(IFrameSplitOperator.IsNonEmptyArray(this.CustomToolbar)){for(var i=0;i<this.CustomToolbar.length;++i){var item=this.CustomToolbar[i];if(item.ID&&item.Style){var btnItem={ID:item.ID,Style:item.Style,TooltipText:item.TooltipText,Data:item.Data};if(item.IsLeft===true)//左侧按钮
|
|
2362
2365
|
{}else{aryButton.push(btnItem);//右侧按钮
|
|
2363
2366
|
}}}}if(this.GetEventCallback){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CUSTOM_RIGHT_TOOLBAR);if(event&&event.Callback){var sendData={PreventDefault:false,DefaultButton:aryButton,AryButton:null,FrameID:this.Identify};/*
|
|
2364
2367
|
if (option)
|
|
@@ -2367,7 +2370,7 @@ if(this.CloseIndex&&this.Identify!==0)aryButton.push({ID:JSCHART_BUTTON_ID.CLOSE
|
|
|
2367
2370
|
if (option.OverlayID) sendData.OverlayID=option.OverlayID;
|
|
2368
2371
|
}
|
|
2369
2372
|
*/event.Callback(event,sendData,this);if(sendData.PreventDefault){this.DrawTitleButton(sendData.AryButton,moveonPoint,mouseStatus);return;}}}this.DrawTitleButton(aryButton,moveonPoint,mouseStatus);};this.GetLeftToolbar=function(option){if(this.GetEventCallback){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CUSTOM_LEFT_TOOLBAR);if(event&&event.Callback){var sendData={PreventDefault:false,AryButton:null,FrameID:this.Identify};if(option){if(option.Overlay)sendData.Title=option.Overlay.Title;if(option.OverlayID)sendData.OverlayID=option.OverlayID;}event.Callback(event,sendData,this);if(sendData.PreventDefault)return sendData.AryButton;}}if(!IFrameSplitOperator.IsNonEmptyArray(this.CustomToolbar))return null;var aryLeftButton=[];//左侧按钮
|
|
2370
|
-
for(var i=0;i<this.CustomToolbar.length;++i){var item=this.CustomToolbar[i];if(item.ID&&item.Style){var btnItem={ID:item.ID,Style:item.Style,TooltipText:item.TooltipText};if(item.IsLeft===true)aryLeftButton.push(btnItem);//左侧按钮
|
|
2373
|
+
for(var i=0;i<this.CustomToolbar.length;++i){var item=this.CustomToolbar[i];if(item.ID&&item.Style){var btnItem={ID:item.ID,Style:item.Style,TooltipText:item.TooltipText,Data:item.Data};if(item.IsLeft===true)aryLeftButton.push(btnItem);//左侧按钮
|
|
2371
2374
|
}}return aryLeftButton;};this.DrawFrame=function(){if(!this.IsMinSize){this.SplitXYCoordinate();if(this.SizeChange==true){this.CalculateDataWidth();if(this.Logarithmic)this.SplitLogarithmicXYCoordinate();}if(this.BeforeDrawXYCallback)this.BeforeDrawXYCallback(this);this.DrawTitleBG();this.DrawHorizontal();this.DrawVertical();}if(this.SizeChange==true||this.ReDrawToolbar==true){this.DrawToolbar();//大小变动才画工具条
|
|
2372
2375
|
this.ReDrawToolbar=false;}};//isLimit 是否限制在当前屏坐标下
|
|
2373
2376
|
this.GetXFromIndex=function(index,isLimit){if(isLimit===false){if(index>=0){var offset=this.ChartBorder.GetLeft()+g_JSChartResource.FrameLeftMargin+this.DistanceWidth/2+this.DataWidth/2;for(var i=1;i<=index;++i){offset+=this.DistanceWidth+this.DataWidth;}}else{var offset=this.ChartBorder.GetLeft()+g_JSChartResource.FrameLeftMargin-(this.DistanceWidth/2+this.DataWidth+this.DistanceWidth);var absIndex=Math.abs(index);for(var i=1;i<absIndex;++i){offset-=this.DistanceWidth+this.DataWidth;}}}else{if(index<0)index=0;if(index>this.xPointCount-1)index=this.xPointCount-1;var offset=this.ChartBorder.GetLeft()+g_JSChartResource.FrameLeftMargin+this.DistanceWidth/2+this.DataWidth/2;for(var i=1;i<=index;++i){offset+=this.DistanceWidth+this.DataWidth;}}return offset;};//X坐标转x轴数值 isLimit=是否限制在当前屏坐标下
|
|
@@ -5797,8 +5800,8 @@ if(left+textWidth>right)break;this.Canvas.fillText(text,left,bottom,textWidth);l
|
|
|
5797
5800
|
{this.Canvas.fillStyle=this.TitleColor;var text="说明:"+this.Explain;var textWidth=this.Canvas.measureText(text).width+2;if(left+textWidth<right){this.Canvas.fillText(text,left,bottom,textWidth);left+=textWidth;}}if(this.OverlayIndexType.Position==1){if(!this.Frame.ChartBorder.IsShowTitleOnly)this.DrawOverlayIndexSingleLine();}else{this.DrawOverlayIndex(left+5*GetDevicePixelRatio());//间距都空点 和主指标区分开
|
|
5798
5801
|
}};this.OnDrawEventCallback=function(drawData){if(!this.OnDrawEvent||!this.OnDrawEvent.Callback)return;var data={Draw:drawData,Name:'DynamicChartTitlePainting'};this.OnDrawEvent.Callback(this.OnDrawEvent,data,this);};this.GetFontHeight=function(font){return GetFontHeight(this.Canvas,font,"擎");};//指标名字按钮
|
|
5799
5802
|
this.DrawNameButton=function(rtButton,moveonPoint,mouseStatus){var pixelRatio=GetDevicePixelRatio();var title=this.Title;if(this.IsShowNameArrow)title+='▼';var textWidth=this.Canvas.measureText(title).width;var bgHeight=this.Canvas.measureText("擎").width+4*pixelRatio;var roundRadius=this.BorderRoundRadius*pixelRatio;var bgWidth=textWidth+4*pixelRatio+roundRadius*2;rtButton.Top=rtButton.YCenter-bgHeight/2-1,rtButton.Width=bgWidth;rtButton.Height=bgHeight;rtButton.Right=rtButton.Left+rtButton.Width;rtButton.Bottom=rtButton.Top+rtButton.Height;var borderColor=this.BGBorderColor;if(moveonPoint&&moveonPoint.X>=rtButton.Left&&moveonPoint.X<rtButton.Right&&moveonPoint.Y>=rtButton.Top&&moveonPoint.Y<=rtButton.Bottom){if(this.BGBorderMoveOnColor)borderColor=this.BGBorderMoveOnColor;if(mouseStatus){var btnItem={ID:JSCHART_BUTTON_ID.INDEX_NAME_BUTTON};mouseStatus.MouseOnToolbar={ID:"IndexNameButton",Rect:rtButton,Item:btnItem,Frame:this.Frame,Point:{X:moveonPoint.X,Y:moveonPoint.Y}};}}if(this.NameButtonStyle==1){this.Canvas.beginPath();this.Canvas.roundRect(ToFixedPoint(rtButton.Left),ToFixedPoint(rtButton.Top),ToFixedRect(rtButton.Width),ToFixedRect(rtButton.Height),[roundRadius]);this.Canvas.closePath();this.Canvas.fillStyle=this.BGColor;this.Canvas.fill();if(borderColor){this.Canvas.strokeStyle=borderColor;this.Canvas.stroke();}}else{this.Canvas.fillStyle=this.BGColor;this.Canvas.fillRect(rtButton.Left,rtButton.Top,rtButton.Width,rtButton.Height);if(borderColor){this.Canvas.strokeStyle=borderColor;this.Canvas.strokeRect(ToFixedPoint(rtButton.Left),ToFixedPoint(rtButton.Top),ToFixedRect(rtButton.Width),ToFixedRect(rtButton.Height),[roundRadius]);}}this.Canvas.fillStyle=this.TitleColor;this.Canvas.fillText(title,rtButton.Left+roundRadius+2*pixelRatio,rtButton.YCenter,textWidth);};//绘制按钮
|
|
5800
|
-
this.DrawButton=function(item,rtButton,moveonPoint,mouseStatus){var size=item.Style.Size;if(IFrameSplitOperator.IsNumber(item.Style.YMoveOffset))rtButton.YCenter+=item.Style.YMoveOffset;var font=size+'px '+item.Style.Family;rtButton.Top=rtButton.YCenter-size/2;rtButton.Width=size+item.Style.MerginLeft;rtButton.Height=size;rtButton.Bottom=rtButton.Top+rtButton.Height;rtButton.Right=rtButton.Left+rtButton.Width;var color=item.Style.Color;if(moveonPoint&&moveonPoint.X>=rtButton.Left&&moveonPoint.X<rtButton.Right&&moveonPoint.Y>=rtButton.Top&&moveonPoint.Y<=rtButton.Bottom){color=item.Style.MoveOnColor;if(mouseStatus)mouseStatus.MouseOnToolbar={ID:"TitleButton",Rect:rtButton,Item:item,Frame:this.Frame,Point:{X:moveonPoint.X,Y:moveonPoint.Y}};}this.Canvas.fillStyle=color;this.Canvas.font=font;this.Canvas.textAlign="left";this.Canvas.textBaseline="middle";this.Canvas.fillText(item.Style.Text,rtButton.Left,rtButton.YCenter);return true;};this.DrawToolbar=function(toolbarInfo,moveonPoint,mouseStatus){toolbarInfo.Width=0;if(!this.Frame||!this.Frame.GetLeftToolbar)return;var aryButton=this.Frame.GetLeftToolbar();if(!IFrameSplitOperator.IsNonEmptyArray(aryButton))return;if(this.Frame.IsHScreen===true){}else{var border=this.Frame.GetBorder();var right=border.Right-3;var left=border.Left+3;var yCenter=toolbarInfo.YCenter;for(var i=0;i<aryButton.length;++i){var item=aryButton[i];var rtButton={Left:left,YCenter:yCenter};this.DrawButton(item,rtButton,moveonPoint,mouseStatus);this.Buttons.push({ID:item.ID,Rect:rtButton,FrameID:this.Frame.Identify,Type:0});//Type 0=主图按钮 1=附图按钮 2=主图指标名字按钮
|
|
5801
|
-
left=rtButton.Right;toolbarInfo.Width+=rtButton.Width;}if(toolbarInfo.Width>0)toolbarInfo.Width+=3;}};this.DrawOverlayToolbar=function(overlayItem,toolbarInfo,moveonPoint,mouseStatus){toolbarInfo.Width=0;if(!overlayItem||!overlayItem.Frame||!overlayItem.Frame.GetLeftToolbar)return;var frame=overlayItem.Frame;var aryButton=frame.GetLeftToolbar({Overlay:overlayItem,OverlayID:toolbarInfo.ID});if(!IFrameSplitOperator.IsNonEmptyArray(aryButton))return;if(this.Frame.IsHScreen===true){}else{var border=frame.GetBorder();var right=border.Right-3;var left=border.Left+3;var yCenter=toolbarInfo.YCenter;for(var i=0;i<aryButton.length;++i){var item=aryButton[i];var rtButton={Left:left,YCenter:yCenter};this.DrawButton(item,rtButton,moveonPoint,mouseStatus);this.Buttons.push({ID:item.ID,Rect:rtButton,FrameID:this.Frame.Identify,Type:1,OverlayID:toolbarInfo.ID,Title:overlayItem.Title});left=rtButton.Right;toolbarInfo.Width+=rtButton.Width;}if(toolbarInfo.Width>0)toolbarInfo.Width+=3;}};this.PtInButtons=function(x,y){for(var i=0;i<this.Buttons.length;++i){var item=this.Buttons[i];if(!item.Rect)continue;var rect=item.Rect;if(x>rect.Left&&x<rect.Right&&y>rect.Top&&y<rect.Bottom){var result={ID:item.ID,Rect:rect,FrameID:item.FrameID,Type:item.Type};if(item.Type==1){result.Title=item.Title;result.OverlayID=item.OverlayID;}return result;}}return null;};}//画图工具
|
|
5803
|
+
this.DrawButton=function(item,rtButton,moveonPoint,mouseStatus){var size=item.Style.Size;if(IFrameSplitOperator.IsNumber(item.Style.YMoveOffset))rtButton.YCenter+=item.Style.YMoveOffset;var font=size+'px '+item.Style.Family;rtButton.Top=rtButton.YCenter-size/2;rtButton.Width=size+item.Style.MerginLeft;rtButton.Height=size;rtButton.Bottom=rtButton.Top+rtButton.Height;rtButton.Right=rtButton.Left+rtButton.Width;var color=item.Style.Color;if(moveonPoint&&moveonPoint.X>=rtButton.Left&&moveonPoint.X<rtButton.Right&&moveonPoint.Y>=rtButton.Top&&moveonPoint.Y<=rtButton.Bottom){color=item.Style.MoveOnColor;if(mouseStatus)mouseStatus.MouseOnToolbar={ID:"TitleButton",Rect:rtButton,Item:item,Frame:this.Frame,Point:{X:moveonPoint.X,Y:moveonPoint.Y}};}this.Canvas.fillStyle=color;this.Canvas.font=font;this.Canvas.textAlign="left";this.Canvas.textBaseline="middle";this.Canvas.fillText(item.Style.Text,rtButton.Left,rtButton.YCenter);return true;};this.DrawToolbar=function(toolbarInfo,moveonPoint,mouseStatus){toolbarInfo.Width=0;if(!this.Frame||!this.Frame.GetLeftToolbar)return;var aryButton=this.Frame.GetLeftToolbar();if(!IFrameSplitOperator.IsNonEmptyArray(aryButton))return;if(this.Frame.IsHScreen===true){}else{var border=this.Frame.GetBorder();var right=border.Right-3;var left=border.Left+3;var yCenter=toolbarInfo.YCenter;for(var i=0;i<aryButton.length;++i){var item=aryButton[i];var rtButton={Left:left,YCenter:yCenter};this.DrawButton(item,rtButton,moveonPoint,mouseStatus);this.Buttons.push({ID:item.ID,Rect:rtButton,FrameID:this.Frame.Identify,Type:0,Data:item.Data});//Type 0=主图按钮 1=附图按钮 2=主图指标名字按钮
|
|
5804
|
+
left=rtButton.Right;toolbarInfo.Width+=rtButton.Width;}if(toolbarInfo.Width>0)toolbarInfo.Width+=3;}};this.DrawOverlayToolbar=function(overlayItem,toolbarInfo,moveonPoint,mouseStatus){toolbarInfo.Width=0;if(!overlayItem||!overlayItem.Frame||!overlayItem.Frame.GetLeftToolbar)return;var frame=overlayItem.Frame;var aryButton=frame.GetLeftToolbar({Overlay:overlayItem,OverlayID:toolbarInfo.ID});if(!IFrameSplitOperator.IsNonEmptyArray(aryButton))return;if(this.Frame.IsHScreen===true){}else{var border=frame.GetBorder();var right=border.Right-3;var left=border.Left+3;var yCenter=toolbarInfo.YCenter;for(var i=0;i<aryButton.length;++i){var item=aryButton[i];var rtButton={Left:left,YCenter:yCenter};this.DrawButton(item,rtButton,moveonPoint,mouseStatus);this.Buttons.push({ID:item.ID,Rect:rtButton,FrameID:this.Frame.Identify,Type:1,OverlayID:toolbarInfo.ID,Title:overlayItem.Title});left=rtButton.Right;toolbarInfo.Width+=rtButton.Width;}if(toolbarInfo.Width>0)toolbarInfo.Width+=3;}};this.PtInButtons=function(x,y){for(var i=0;i<this.Buttons.length;++i){var item=this.Buttons[i];if(!item.Rect)continue;var rect=item.Rect;if(x>rect.Left&&x<rect.Right&&y>rect.Top&&y<rect.Bottom){var result={ID:item.ID,Rect:rect,FrameID:item.FrameID,Type:item.Type,Data:item.Data};if(item.Type==1){result.Title=item.Title;result.OverlayID=item.OverlayID;}return result;}}return null;};}//画图工具
|
|
5802
5805
|
function IChartDrawPicture(){this.Frame;this.Canvas;this.Point=new Array();//画图的点
|
|
5803
5806
|
this.Value=new Array();//XValue,YValue
|
|
5804
5807
|
this.LinePoint=[];this.PointCount=2;//画点的个数
|
|
@@ -7498,7 +7501,7 @@ for(var i=0;i<this.OverlayChartPaint.length;++i){var item=this.OverlayChartPaint
|
|
|
7498
7501
|
if(this.GetExtendChartByClassName('StockChip'))bShowStockChip=true;//筹码
|
|
7499
7502
|
var aryMenu=[{Name:"分析周期",SubMenu:[{Name:"日线",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[0]},Checked:this.Period==0},{Name:"周线",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[1]},Checked:this.Period==1},{Name:"双周线",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[21]},Checked:this.Period==21},{Name:"月线",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[2]},Checked:this.Period==2},{Name:"季线",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[9]},Checked:this.Period==9},{Name:"半年",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[22]},Checked:this.Period==22},{Name:"年线",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[3]},Checked:this.Period==3},{Name:"1分",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[4]},Checked:this.Period==4},{Name:"5分",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[5]},Checked:this.Period==5},{Name:"15分",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[6]},Checked:this.Period==6},{Name:"30分",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[7]},Checked:this.Period==7},{Name:"60分",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[8]},Checked:this.Period==8},{Name:"2小时",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[11]},Checked:this.Period==11},{Name:"4小时",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[12]},Checked:this.Period==12},{Name:"分笔",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[10]},Checked:this.Period==10},{Name:"自定义周期:3分钟",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[20003]},Checked:this.Period==20003},{Name:"自定义周期:35分钟",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[20035]},Checked:this.Period==20035},{Name:"自定义周期:8日",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PERIOD_ID,Args:[40008]},Checked:this.Period==40008}]},{Name:"指标切换",SubMenu:[{Name:"均线",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"均线"]}},{Name:"BOLL",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"BOLL"]}},{Name:"MACD",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"MACD"]}},{Name:"KDJ",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"KDJ"]}},{Name:"VOL",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"VOL"]}},{Name:"RSI",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"RSI"]}},{Name:"BRAR",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"BRAR"]}},{Name:"WR",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"WR"]}}]},{Name:"五彩K线",SubMenu:[{Name:"十字星",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_COLOR_INDEX_ID,Args:["五彩K线-十字星"]}},{Name:"早晨之星",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_COLOR_INDEX_ID,Args:["五彩K线-早晨之星"]}},{Name:"垂死十字",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_COLOR_INDEX_ID,Args:["五彩K线-垂死十字"]}},{Name:"三只乌鸦",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_COLOR_INDEX_ID,Args:["五彩K线-三只乌鸦"]}},{Name:"光脚阴线",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_COLOR_INDEX_ID,Args:["五彩K线-光脚阴线"]}},{Name:"黄昏之星",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_COLOR_INDEX_ID,Args:["五彩K线-黄昏之星"]}}]},{Name:"专家系统",SubMenu:[{Name:"BIAS",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_TRADE_INDEX_ID,Args:["交易系统-BIAS"]}},{Name:"CCI",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_TRADE_INDEX_ID,Args:["交易系统-CCI"]}},{Name:"DMI",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_TRADE_INDEX_ID,Args:["交易系统-DMI"]}},{Name:"KD",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_TRADE_INDEX_ID,Args:["交易系统-KD"]}},{Name:"BOLL",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_TRADE_INDEX_ID,Args:["交易系统-BOLL"]}},{Name:"KDJ",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_TRADE_INDEX_ID,Args:["交易系统-KDJ"]}}]},{Name:"信息地雷",SubMenu:[{Name:"公告",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID,Args:["公告",!aryKLineInfo.includes("AnnouncementInfo")]},Checked:aryKLineInfo.includes("AnnouncementInfo")},{Name:"业绩预告",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID,Args:["业绩预告",!aryKLineInfo.includes("PforecastInfo")]},Checked:aryKLineInfo.includes("PforecastInfo")},{Name:"调研",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID,Args:["调研",!aryKLineInfo.includes("ResearchInfo")]},Checked:aryKLineInfo.includes("ResearchInfo")},{Name:"大宗交易",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID,Args:["大宗交易",!aryKLineInfo.includes("BlockTrading")]},Checked:aryKLineInfo.includes("BlockTrading")},{Name:"龙虎榜",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID,Args:["龙虎榜",!aryKLineInfo.includes("TradeDetail")]},Checked:aryKLineInfo.includes("TradeDetail")},{Name:"互动易",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID,Args:["互动易",!aryKLineInfo.includes("InvestorInfo")]},Checked:aryKLineInfo.includes("InvestorInfo")}]},{Name:"缺口提示",SubMenu:[{Name:"显示1个缺口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PRICE_GAP_ID,Args:[true,1]},Checked:priceGap.Enable==true&&priceGap.Count==1},{Name:"显示2个缺口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PRICE_GAP_ID,Args:[true,2]},Checked:priceGap.Enable==true&&priceGap.Count==2},{Name:"显示3个缺口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PRICE_GAP_ID,Args:[true,3]},Checked:priceGap.Enable==true&&priceGap.Count==3},{Name:"隐藏缺口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_PRICE_GAP_ID,Args:[false]},Checked:priceGap.Enable==false}]},{Name:"叠加品种",SubMenu:[{Name:"上证指数",Data:{ID:JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID,Args:["000001.sh",!aryOverlaySymbol.includes("000001.sh")]},Checked:aryOverlaySymbol.includes("000001.sh")},{Name:"深证成指",Data:{ID:JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID,Args:["399001.sz",!aryOverlaySymbol.includes("399001.sz")]},Checked:aryOverlaySymbol.includes("399001.sz")},{Name:"中小板指",Data:{ID:JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID,Args:["399005.sz",!aryOverlaySymbol.includes("399005.sz")]},Checked:aryOverlaySymbol.includes("399005.sz")},{Name:"创业板指",Data:{ID:JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID,Args:["399006.sz",!aryOverlaySymbol.includes("399006.sz")]},Checked:aryOverlaySymbol.includes("399006.sz")},{Name:"沪深300",Data:{ID:JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID,Args:["000300.sh",!aryOverlaySymbol.includes("000300.sh")]},Checked:aryOverlaySymbol.includes("000300.sh")}]},{Name:"主图线型",SubMenu:[{Name:"K线(空心阳线)",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID,Args:[3]}},{Name:"K线(实心阳线)",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID,Args:[0]}},{Name:"美国线",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID,Args:[2,true,{IsThinAKBar:false}]}},{Name:"美国线(细)",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID,Args:[2,true,{IsThinAKBar:true}]}},{Name:"收盘线",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID,Args:[1]}},{Name:"收盘面积",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID,Args:[4]}},{Name:"K线(空心阳线阴线)",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID,Args:[6]}},{Name:"Heikin Ashi",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID,Args:[11]}},{Name:"Line Break",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID,Args:[12]}},{Name:"High-low",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID,Args:[13]}},{Name:"HLC Area",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_KLINE_TYPE_ID,Args:[15]}}]},{Name:"坐标类型",SubMenu:[{Name:"反转坐标",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID,Args:[{IsReverse:coordinateType==0}]},Checked:coordinateType==1},{Name:JSPopMenu.SEPARATOR_LINE_NAME},{Name:"普通坐标",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID,Args:[{Type:0}]},Checked:yCoordinateType==0},{Name:"百分比坐标",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID,Args:[{Type:1}]},Checked:yCoordinateType==1},{Name:"对数坐标",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID,Args:[{Type:2}]},Checked:yCoordinateType==2},{Name:"等比坐标",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID,Args:[{Type:3}]},Checked:yCoordinateType==3},{Name:"等分坐标",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID,Args:[{Type:4}]},Checked:yCoordinateType==4},{Name:"黄金分割",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_COORDINATETYPE_ID,Args:[{Type:5}]},Checked:yCoordinateType==5}]},{Name:"指标窗口个数",SubMenu:[{Name:"1个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[2]},Checked:2==windowCount},{Name:"2个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[3]},Checked:3==windowCount},{Name:"3个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[4]},Checked:4==windowCount},{Name:"4个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[5]},Checked:5==windowCount},{Name:"5个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[6]},Checked:6==windowCount}]},{Name:"其他设置",SubMenu:[{Name:"禁止拖拽",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID,Args:[0]},Checked:0==this.DragMode},{Name:"启动拖拽",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID,Args:[1]},Checked:1==this.DragMode},{Name:"区间选择",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DRAG_MODE_ID,Args:[2]},Checked:2==this.DragMode},{Name:JSPopMenu.SEPARATOR_LINE_NAME},{Name:"背景分割",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_BG_SPLIT_ID,Args:[!bBGSpit]},Checked:bBGSpit},{Name:"画图工具",Data:{ID:bShowDrawTool?JSCHART_MENU_ID.CMD_HIDE_DRAWTOOL_ID:JSCHART_MENU_ID.CMD_SHOW_DRAWTOOL_ID,Args:[]},Checked:bShowDrawTool},{Name:"移动筹码图",Data:{ID:bShowStockChip?JSCHART_MENU_ID.CMD_HIDE_STOCKCHIP_ID:JSCHART_MENU_ID.CMD_SHOW_STOCKCHIP_ID,Args:[]},Checked:bShowStockChip}]}];//复权
|
|
7500
7503
|
if(!MARKET_SUFFIX_NAME.IsSHSZIndex(this.Symbol)&&!MARKET_SUFFIX_NAME.IsBIT(this.Symbol)){var rightMenu={Name:"复权处理",SubMenu:[{Name:"不复权",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_RIGHT_ID,Args:[0]},Checked:0==this.Right},{Name:"前复权",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_RIGHT_ID,Args:[1]},Checked:1==this.Right},{Name:"后复权",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_RIGHT_ID,Args:[2]},Checked:2==this.Right}]};aryMenu.splice(1,0,rightMenu);}//删除菜单
|
|
7501
|
-
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;}}}}return aryMenu;};this.PopupRightMenuV2=function(data,e){var _this26=this;if(!this.JSPopMenu)return;var x=data.X,y=data.Y;var frameID=data.FrameID;var menuData={Menu:this.GetRightMenuData(frameID),Position:JSPopMenu.POSITION_ID.RIGHT_MENU_ID};menuData.ClickCallback=function(data){_this26.OnClickRightMenu(data);};this.
|
|
7504
|
+
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;}}}}return aryMenu;};this.PopupRightMenuV2=function(data,e){var _this26=this;if(!this.JSPopMenu)return;var x=data.X,y=data.Y;var frameID=data.FrameID;var menuData={Menu:this.GetRightMenuData(frameID),Position:JSPopMenu.POSITION_ID.RIGHT_MENU_ID};menuData.ClickCallback=function(data){_this26.OnClickRightMenu(data);};this.PopupMenuByRClick(menuData,x,y);};this.PopupSelectRectMenuV2=function(data,e){var _this27=this;var aryMenu=[{Name:"区间统计",Data:{ID:JSCHART_MENU_ID.CMD_SELECTED_SUMMARY_ID,Args:[e]}},{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){_this27.OnClickRightMenu(data);};var x=data.X,y=data.Y;this.PopupMenuByRClick(menuData,x,y);};//重新加载画图工具(切换股票|周期)
|
|
7502
7505
|
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) 画图工具创建出来
|
|
7503
7506
|
{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;//绑定框架坐标
|
|
7504
7507
|
drawPicture.Option=this.ChartDrawOption;if(drawPicture.ImportStorageData)drawPicture.ImportStorageData(item);drawPicture.UpdateXValue();drawPicture.ValueToPoint();var self=this;drawPicture.GetActiveDrawPicture=function(){return self.GetActiveDrawPicture();};if(drawPicture.ClassName==='ChartDrawPictureText')drawPicture.IsInitialized=true;this.ChartDrawPicture.push(drawPicture);}this.ChartDrawStorageCache=null;//清空缓存
|
|
@@ -7629,7 +7632,7 @@ bindData.Data=aryOverlayData;if(ChartData.IsDayPeriod(bindData.Period,false)&&!t
|
|
|
7629
7632
|
var obj=this.Frame.OnSize();this.Frame.SetSizeChage(true);if(obj.Changed){this.UpdataDataoffset();this.UpdatePointByCursorIndex(2);this.UpdateFrameMaxMin();}this.Draw();};this.ClickFrameButton=function(button,e){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_FRAME_TOOLBAR);if(event&&event.Callback){var data={Info:button,PreventDefault:false};//PreventDefault 是否阻止内置的点击处理
|
|
7630
7633
|
event.Callback(event,data,this);if(data.PreventDefault)return;}if(button.ID==JSCHART_BUTTON_ID.CLOSE_OVERLAY_INDEX){var id=button.IndexID;if(id)this.DeleteOverlayWindowsIndex(id);}else if(button.ID==JSCHART_BUTTON_ID.MODIFY_OVERLAY_INDEX_PARAM){var id=button.IndexID;var frame=button.Frame;e.data={Chart:this,Identify:id,IsOverlay:true};if(frame.ModifyIndexEvent)frame.ModifyIndexEvent(e);}else if(button.ID==JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW){var frame=button.Frame;this.RemoveIndexWindow(frame.Identify);}else if(button.ID==JSCHART_BUTTON_ID.CHANGE_INDEX){var frame=button.Frame;e.data={Chart:this,Identify:frame.Identify,IsOverlay:false};if(frame.ChangeIndexEvent)frame.ChangeIndexEvent(e);}else if(button.ID==JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM){var frame=button.Frame;e.data={Chart:this,Identify:frame.Identify,IsOverlay:false};if(frame.ModifyIndexEvent)frame.ModifyIndexEvent(e);}else if(button.ID==JSCHART_BUTTON_ID.OVERLAY_INDEX){var frame=button.Frame;e.data={Chart:this,Identify:frame.Identify,IsOverlay:true};if(frame.ChangeIndexEvent)frame.ChangeIndexEvent(e);}else if(button.ID==JSCHART_BUTTON_ID.MAX_MIN_WINDOW){var id=button.IndexID;var frame=button.Frame;var frameId=button.FrameID;if(frameId>=this.Frame.ZoomStartWindowIndex){if(this.ZoomIndexWindow(frameId,null)){this.Frame.SetSizeChage(true);this.Draw();}}}else if(button.ID==JSCHART_BUTTON_ID.TITLE_WINDOW)//标题模式
|
|
7631
7634
|
{var id=button.IndexID;var frame=button.Frame;var frameId=button.FrameID;if(this.ShowIndexTitleOnly(frameId)){this.Frame.SetSizeChage(true);this.Draw();}}else if(button.ID==JSCHART_BUTTON_ID.EXPORT_DATA)//数据导出
|
|
7632
|
-
{var data=this.ExportData({Type:"CSV"});if(!data)return;var date=Date.now();var fileName='hqchart_'+this.Symbol+'_'+date+'.csv';var alink=document.createElement("a");var csvDataBlob=new Blob([data],{type:"text/csv"});alink.href=URL.createObjectURL(csvDataBlob);document.body.appendChild(alink);alink.setAttribute("download",fileName);alink.click();document.body.removeChild(alink);}};this.ClickTitleButton=function(button,e){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_TITLE_BUTTON);if(event&&event.Callback){var data={Info:button,PreventDefault:false};//PreventDefault 是否阻止内置的点击处理
|
|
7635
|
+
{var data=this.ExportData({Type:"CSV"});if(!data)return;var date=Date.now();var fileName='hqchart_'+this.Symbol+'_'+date+'.csv';var alink=document.createElement("a");var csvDataBlob=new Blob([data],{type:"text/csv"});alink.href=URL.createObjectURL(csvDataBlob);document.body.appendChild(alink);alink.setAttribute("download",fileName);alink.click();document.body.removeChild(alink);}};this.ClickTitleButton=function(button,e){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_TITLE_BUTTON);if(event&&event.Callback){var data={Info:button,PreventDefault:false,e:e};//PreventDefault 是否阻止内置的点击处理
|
|
7633
7636
|
event.Callback(event,data,this);if(data.PreventDefault)return;}};this.ClickExtendChartButton=function(button,e){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_EXTENDCHART_BUTTON);if(event&&event.Callback){var data={Info:button,PreventDefault:false,e:e};//PreventDefault 是否阻止内置的点击处理
|
|
7634
7637
|
event.Callback(event,data,this);if(data.PreventDefault)return;}//筹码按钮
|
|
7635
7638
|
if(button.ID==JSCHART_BUTTON_ID.CHIP_DEFULT){button.Chart.ShowType=0;this.Draw();}else if(button.ID==JSCHART_BUTTON_ID.CHIP_LONG){button.Chart.ShowType=1;this.Draw();}else if(button.ID==JSCHART_BUTTON_ID.CHIP_RECENT){button.Chart.ShowType=2;this.Draw();}};//成交量分布图数据请求
|
|
@@ -7845,7 +7848,7 @@ this.GetRightMenuData=function(frameID){var windowCount=this.Frame.SubFrame.leng
|
|
|
7845
7848
|
var aryOverlaySymbol=[];//叠加的股票列表
|
|
7846
7849
|
for(var i=0;i<this.OverlayChartPaint.length;++i){var item=this.OverlayChartPaint[i];if(item&&item.Symbol)aryOverlaySymbol.push(item.Symbol);}var bShowDrawTool=false;if(this.GetExtendChartByClassName('DrawToolsButton'))bShowDrawTool=true;//画图工具
|
|
7847
7850
|
var aryMenu=[{Name:"叠加品种",SubMenu:[{Name:"上证指数",Data:{ID:JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID,Args:["000001.sh",!aryOverlaySymbol.includes("000001.sh")]},Checked:aryOverlaySymbol.includes("000001.sh")},{Name:"深证成指",Data:{ID:JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID,Args:["399001.sz",!aryOverlaySymbol.includes("399001.sz")]},Checked:aryOverlaySymbol.includes("399001.sz")},{Name:"中小板指",Data:{ID:JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID,Args:["399005.sz",!aryOverlaySymbol.includes("399005.sz")]},Checked:aryOverlaySymbol.includes("399005.sz")},{Name:"创业板指",Data:{ID:JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID,Args:["399006.sz",!aryOverlaySymbol.includes("399006.sz")]},Checked:aryOverlaySymbol.includes("399006.sz")},{Name:"沪深300",Data:{ID:JSCHART_MENU_ID.CMD_OVERLAY_SYMBOL_ID,Args:["000300.sh",!aryOverlaySymbol.includes("000300.sh")]},Checked:aryOverlaySymbol.includes("000300.sh")}]},{Name:"多日分时图",SubMenu:[{Name:"当日分时图",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID,Args:[1]},Checked:this.DayCount==1},{Name:"最近2日",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID,Args:[2]},Checked:this.DayCount==2},{Name:"最近3日",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID,Args:[3]},Checked:this.DayCount==3},{Name:"最近4日",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID,Args:[4]},Checked:this.DayCount==4},{Name:"最近5日",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_DAY_COUNT_ID,Args:[5]},Checked:this.DayCount==5}]},{Name:"指标窗口个数",SubMenu:[{Name:"1个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[2]},Checked:3==windowCount},{Name:"2个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[3]},Checked:4==windowCount},{Name:"3个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[4]},Checked:5==windowCount},{Name:"4个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[5]},Checked:6==windowCount},{Name:"5个窗口",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_WINDOW_COUNT_ID,Args:[6]},Checked:7==windowCount}]},{Name:"指标切换",SubMenu:[{Name:"MACD",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"MACD"]}},{Name:"DMI",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"DMI"]}},{Name:"DMA",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"DMA"]}},{Name:"BRAR",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"BRAR"]}},{Name:"KDJ",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"KDJ"]}},{Name:"RSI",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"RSI"]}},{Name:"WR",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"WR"]}},{Name:"CCI",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"CCI"]}},{Name:"TRIX",Data:{ID:JSCHART_MENU_ID.CMD_CHANGE_INDEX_ID,Args:[frameID,"TRIX"]}}]},{Name:"区间选择",Data:{ID:JSCHART_MENU_ID.CMD_ENABLE_SELECT_RECT_ID,Args:[!this.EnableSelectRect]},Checked:this.EnableSelectRect},{Name:"其他设置",SubMenu:[{Name:"画图工具",Data:{ID:bShowDrawTool?JSCHART_MENU_ID.CMD_HIDE_DRAWTOOL_ID:JSCHART_MENU_ID.CMD_SHOW_DRAWTOOL_ID,Args:[]},Checked:bShowDrawTool}]}];if(MARKET_SUFFIX_NAME.IsSHSZStockA(this.Symbol)){var item={Name:"集合竞价",Data:{ID:JSCHART_MENU_ID.CMD_SHOW_BEFORE_DATA_ID,Args:[!this.IsShowBeforeData]},Checked:this.IsShowBeforeData};aryMenu.splice(4,0,item);}//删除菜单
|
|
7848
|
-
for(var i=0;i<aryMenu.length;++i){var item=aryMenu[i];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;}}}}return aryMenu;};this.PopupRightMenuV2=function(data,e){var _this28=this;if(!this.JSPopMenu)return;var x=data.X,y=data.Y;var frameID=data.FrameID;var menuData={Menu:this.GetRightMenuData(frameID),Position:JSPopMenu.POSITION_ID.RIGHT_MENU_ID};menuData.ClickCallback=function(data){_this28.OnClickRightMenu(data);};this.
|
|
7851
|
+
for(var i=0;i<aryMenu.length;++i){var item=aryMenu[i];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;}}}}return aryMenu;};this.PopupRightMenuV2=function(data,e){var _this28=this;if(!this.JSPopMenu)return;var x=data.X,y=data.Y;var frameID=data.FrameID;var menuData={Menu:this.GetRightMenuData(frameID),Position:JSPopMenu.POSITION_ID.RIGHT_MENU_ID};menuData.ClickCallback=function(data){_this28.OnClickRightMenu(data);};this.PopupMenuByRClick(menuData,x,y);};this.OnWheel=function(e){JSConsole.Chart.Log('[MinuteChartContainer::OnWheel]',e);};this.OnDoubleClick=function(x,y,e){JSConsole.Chart.Log("[MinuteChartContainer::OnDoubleClick]",e);if(this.ClickChartTimer!=null){clearTimeout(this.ClickChartTimer);this.ClickChartTimer=null;}var selectedChart;//图形选中
|
|
7849
7852
|
if(this.SelectedChart.EnableSelected){selectedChart=this.PtInChart(x,y);}var dbClickInfo={SelectedChart:selectedChart};this.DBClickEvent(dbClickInfo,e);//没有图形选中,双击缩放窗口
|
|
7850
7853
|
if(!selectedChart&&this.EnableZoomIndexWindow){var frameId=this.Frame.PtInFrame(x,y);JSConsole.Chart.Log("[MinuteChartContainer::OnDoubleClick] frameId",frameId);if(frameId>=this.Frame.ZoomStartWindowIndex){if(this.ZoomIndexWindow(frameId,{X:x,Y:y})){this.Frame.SetSizeChage(true);this.Draw();}}}};this.GetDataItem=function(pointInfo){if(!pointInfo)return null;if(!IFrameSplitOperator.IsNumber(pointInfo.Index))return null;if(!this.SourceData||!this.SourceData.Data)return null;var data=this.SourceData;var clientPos=pointInfo.ClientPos;if(clientPos==2||clientPos==3||clientPos>=200&&clientPos<=299||clientPos>=300&&clientPos<=399){if(!this.ChartCorssCursor||!this.ChartCorssCursor.CallAcutionXOperator)return null;var isHScreen=this.Frame.IsHScreen===true;var callAcutionXOper=this.ChartCorssCursor.CallAcutionXOperator;callAcutionXOper.Value=isHScreen?pointInfo.Point.Y:pointInfo.Point.X;callAcutionXOper.Point={X:pointInfo.Point.X,Y:pointInfo.Point.Y};callAcutionXOper.ClientPos=clientPos;if(clientPos==2){if(!this.BeforeOpenData)return null;}else if(clientPos==3){if(!this.AfterCloseData)return null;}else if(clientPos>=200&&clientPos<=299){if(!this.MultiDayBeforeOpenData||!IFrameSplitOperator.IsNonEmptyArray(this.MultiDayBeforeOpenData))return;}else if(clientPos>=300&&tclientPos<=399){if(!this.MultiDayAfterCloseData||!IFrameSplitOperator.IsNonEmptyArray(this.MultiDayAfterCloseData))return;}if(callAcutionXOper.Operator()){var item=callAcutionXOper.Item;return{Type:clientPos,Item:item,Index:callAcutionXOper.DataIndex};}return null;}var index=parseInt(pointInfo.Index.toFixed(0));var dataIndex=index+data.DataOffset;if(dataIndex>=data.Data.length)return null;var item=data.Data[dataIndex];return{Type:clientPos,Item:item,Index:dataIndex};};this.UpdatePointByCursorIndex=function(){this.LastPoint.X=this.Frame.GetXFromIndex(this.CursorIndex);var index=this.CursorIndex;index=parseInt(index.toFixed(0));var data=this.Frame.SourceData;if(data.DataOffset+index>=data.Data.length){return;}var item=data.Data[data.DataOffset+index];var close=null;if(item.Before)close=item.Before.Close;else close=item.Close;this.LastPoint.Y=this.Frame.GetYFromData(close);};//创建
|
|
7851
7854
|
//windowCount 窗口个数
|
|
@@ -13143,7 +13146,8 @@ this.Clear=function(){this.Data.Menu=[];this.Data.Position=JSPopMenu.POSITION_ID
|
|
|
13143
13146
|
trDom.onmouseover=function(e){_this70.OnMouseOver(e,parentItem);};}return trDom;};//弹tab菜单
|
|
13144
13147
|
this.PopupMenuByTab=function(rtTab){if(!this.RootDOM)return;if(!rtTab)return;var xLeft=rtTab.Left;var yTop=rtTab.Top-this.RootDOM.offsetHeight;this.RootDOM.style.visibility='visible';this.RootDOM.style.top=yTop+"px";this.RootDOM.style.left=xLeft+"px";};//弹右键菜单
|
|
13145
13148
|
this.PopupMenuByRight=function(x,y){if(!this.RootDOM)return;if(!IFrameSplitOperator.IsNumber(x)||!IFrameSplitOperator.IsNumber(y))return;//菜单在当前屏幕无法显示需要调整
|
|
13146
|
-
var menuHeight=this.RootDOM.offsetHeight;var yMenuBottom=y+menuHeight;var yBottom=window.innerHeight-15;if(yMenuBottom>yBottom)y=yBottom-menuHeight;var menuWidth=this.RootDOM.offsetWidth;var yMenuRight=x+menuWidth;var yRight=window.innerWidth-15;if(yMenuRight>yRight)x=yRight-menuWidth;this.RootDOM.style.visibility='visible';this.RootDOM.style.top=y+"px";this.RootDOM.style.left=x+"px";}
|
|
13149
|
+
var menuHeight=this.RootDOM.offsetHeight;var yMenuBottom=y+menuHeight;var yBottom=window.innerHeight-15;if(yMenuBottom>yBottom)y=yBottom-menuHeight;var menuWidth=this.RootDOM.offsetWidth;var yMenuRight=x+menuWidth;var yRight=window.innerWidth-15;if(yMenuRight>yRight)x=yRight-menuWidth;this.RootDOM.style.visibility='visible';this.RootDOM.style.top=y+"px";this.RootDOM.style.left=x+"px";};//下拉菜单
|
|
13150
|
+
this.PopupMenuByDrapdown=function(rtButton){if(!this.RootDOM)return;if(!rtButton)return;var xLeft=rtButton.Left;var yTop=rtButton.Bottom;var menuHeight=this.RootDOM.offsetHeight;var yMenuBottom=yTop+menuHeight;var yBottom=window.innerHeight-15;if(yMenuBottom>yBottom)yTop=rtButton.Top-menuHeight;this.RootDOM.style.visibility='visible';this.RootDOM.style.top=yTop+"px";this.RootDOM.style.left=xLeft+"px";};this.OnClickMenu=function(e,item,bSubMenu){console.log("[JSPopMenu::OnClickMenu] e=, item=, bSubMenu",e,item,bSubMenu);if(!this.ClickCallback)return;this.ClickCallback(item);};this.OnMouseOver=function(e,parentItem,trDom,subMenu){if(parentItem&&parentItem.PopMenu&&parentItem.PopMenu!=subMenu){parentItem.PopMenu.style.visibility="hidden";if(parentItem.PopRow)parentItem.PopRow.classList.remove(this.SelectedClassName);parentItem.PopMenu=null;parentItem.PopRow=null;}if(subMenu){if(subMenu.style.visibility=="visible"){}else{var rtParent=trDom.getBoundingClientRect();var x=rtParent.right,y=rtParent.top;//菜单在当前屏幕无法显示需要调整
|
|
13147
13151
|
var yBottom=window.innerHeight-15;var yRight=window.innerWidth-15;var menuHeight=subMenu.offsetHeight;var menuWidth=subMenu.offsetWidth;var yMenuBottom=y+menuHeight;var yMenuRight=x+menuWidth;if(yMenuBottom>yBottom)y=yBottom-menuHeight;if(yMenuRight>yRight)x=rtParent.left-menuWidth;subMenu.style.left=x+'px';subMenu.style.top=y+'px';trDom.classList.add(this.SelectedClassName);/*
|
|
13148
13152
|
if (this.Data.Position==JSPopMenu.POSITION_ID.TAB_MENU_ID)
|
|
13149
13153
|
{
|
|
@@ -13168,7 +13172,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
|
|
|
13168
13172
|
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);};}/********************************************************************************
|
|
13169
13173
|
* 版本信息输出
|
|
13170
13174
|
*
|
|
13171
|
-
*/var HQCHART_VERSION="1.1.
|
|
13175
|
+
*/var HQCHART_VERSION="1.1.13193";function PrintHQChartVersion(){var log='*************************************************************************************************************\n*\n* HQChart Ver: '+HQCHART_VERSION+' \n* \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n*************************************************************************************************************\n';console.log(log);}PrintHQChartVersion();//把给外界调用的方法暴露出来
|
|
13172
13176
|
exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
|
|
13173
13177
|
// BaseIndex:BaseIndex,
|
|
13174
13178
|
// ChartLine:ChartLine,
|
package/package.json
CHANGED
package/src/jscommon/umychart.js
CHANGED
|
@@ -2119,10 +2119,19 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
2119
2119
|
{
|
|
2120
2120
|
if(this.JSChartContainer && typeof(this.JSChartContainer.PopupMenuByTab)=='function')
|
|
2121
2121
|
{
|
|
2122
|
-
JSConsole.Chart.Log('[JSChart:
|
|
2122
|
+
JSConsole.Chart.Log('[JSChart:PopupMenuByTab] ');
|
|
2123
2123
|
return this.JSChartContainer.PopupMenuByTab(menuData, rtTab);
|
|
2124
2124
|
}
|
|
2125
2125
|
}
|
|
2126
|
+
|
|
2127
|
+
this.PopupMenuByDrapdown=function(menuData, rtButton)
|
|
2128
|
+
{
|
|
2129
|
+
if(this.JSChartContainer && typeof(this.JSChartContainer.PopupMenuByDrapdown)=='function')
|
|
2130
|
+
{
|
|
2131
|
+
JSConsole.Chart.Log('[JSChart:PopupMenuByDrapdown] ');
|
|
2132
|
+
return this.JSChartContainer.PopupMenuByDrapdown(menuData, rtButton);
|
|
2133
|
+
}
|
|
2134
|
+
}
|
|
2126
2135
|
}
|
|
2127
2136
|
|
|
2128
2137
|
JSChart.LastVersion=null; //最新的版本号
|
|
@@ -9006,6 +9015,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
9006
9015
|
}
|
|
9007
9016
|
}
|
|
9008
9017
|
|
|
9018
|
+
//点tab弹菜单
|
|
9009
9019
|
this.PopupMenuByTab=function(menuData, rtTab)
|
|
9010
9020
|
{
|
|
9011
9021
|
if (!this.JSPopMenu) return;
|
|
@@ -9029,7 +9039,32 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
9029
9039
|
this.JSPopMenu.PopupMenuByTab(rtCell);
|
|
9030
9040
|
}
|
|
9031
9041
|
|
|
9032
|
-
|
|
9042
|
+
//下拉菜单
|
|
9043
|
+
this.PopupMenuByDrapdown=function(menuData, rtButton)
|
|
9044
|
+
{
|
|
9045
|
+
if (!this.JSPopMenu) return;
|
|
9046
|
+
|
|
9047
|
+
var pixelRatio=GetDevicePixelRatio();
|
|
9048
|
+
var rtCell={ Left:rtButton.Left/pixelRatio, Right:rtButton.Right/pixelRatio, Bottom:rtButton.Bottom/pixelRatio, Top:rtButton.Top/pixelRatio };
|
|
9049
|
+
rtCell.Width=rtCell.Right-rtCell.Left;
|
|
9050
|
+
rtCell.Height=rtCell.Bottom-rtCell.Top;
|
|
9051
|
+
|
|
9052
|
+
var rtClient=this.UIElement.getBoundingClientRect();
|
|
9053
|
+
var rtScroll=GetScrollPosition();
|
|
9054
|
+
|
|
9055
|
+
var offsetLeft=rtClient.left+rtScroll.Left;
|
|
9056
|
+
var offsetTop=rtClient.top+rtScroll.Top;
|
|
9057
|
+
rtCell.Left+=offsetLeft;
|
|
9058
|
+
rtCell.Right+=offsetLeft;
|
|
9059
|
+
rtCell.Top+=offsetTop;
|
|
9060
|
+
rtCell.Bottom+=offsetTop;
|
|
9061
|
+
|
|
9062
|
+
this.JSPopMenu.CreatePopMenu(menuData);
|
|
9063
|
+
this.JSPopMenu.PopupMenuByDrapdown(rtCell);
|
|
9064
|
+
}
|
|
9065
|
+
|
|
9066
|
+
//右键菜单
|
|
9067
|
+
this.PopupMenuByRClick=function(menuData, x, y)
|
|
9033
9068
|
{
|
|
9034
9069
|
var rtClient=this.UIElement.getBoundingClientRect();
|
|
9035
9070
|
var rtScroll=GetScrollPosition();
|
|
@@ -12450,7 +12485,7 @@ function MinuteFrame()
|
|
|
12450
12485
|
for(var i=0;i<this.CustomToolbar.length;++i)
|
|
12451
12486
|
{
|
|
12452
12487
|
var item=this.CustomToolbar[i];
|
|
12453
|
-
if (item.ID && item.Style) aryButton.push({ ID:item.ID, Style:item.Style, TooltipText:item.TooltipText });
|
|
12488
|
+
if (item.ID && item.Style) aryButton.push({ ID:item.ID, Style:item.Style, TooltipText:item.TooltipText, Data:item.Data });
|
|
12454
12489
|
}
|
|
12455
12490
|
}
|
|
12456
12491
|
|
|
@@ -14580,7 +14615,7 @@ function KLineFrame()
|
|
|
14580
14615
|
var item=this.CustomToolbar[i];
|
|
14581
14616
|
if (item.ID && item.Style)
|
|
14582
14617
|
{
|
|
14583
|
-
var btnItem={ ID:item.ID, Style:item.Style, TooltipText:item.TooltipText};
|
|
14618
|
+
var btnItem={ ID:item.ID, Style:item.Style, TooltipText:item.TooltipText, Data:item.Data };
|
|
14584
14619
|
|
|
14585
14620
|
if (item.IsLeft===true) //左侧按钮
|
|
14586
14621
|
{
|
|
@@ -14646,7 +14681,7 @@ function KLineFrame()
|
|
|
14646
14681
|
var item=this.CustomToolbar[i];
|
|
14647
14682
|
if (item.ID && item.Style)
|
|
14648
14683
|
{
|
|
14649
|
-
var btnItem={ ID:item.ID, Style:item.Style, TooltipText:item.TooltipText};
|
|
14684
|
+
var btnItem={ ID:item.ID, Style:item.Style, TooltipText:item.TooltipText, Data:item.Data };
|
|
14650
14685
|
if (item.IsLeft===true) aryLeftButton.push(btnItem); //左侧按钮
|
|
14651
14686
|
}
|
|
14652
14687
|
}
|
|
@@ -53652,7 +53687,7 @@ function DynamicChartTitlePainting()
|
|
|
53652
53687
|
var rtButton={ Left:left, YCenter:yCenter };
|
|
53653
53688
|
this.DrawButton(item, rtButton, moveonPoint, mouseStatus);
|
|
53654
53689
|
|
|
53655
|
-
this.Buttons.push({ ID:item.ID, Rect:rtButton, FrameID:this.Frame.Identify, Type:0 }); //Type 0=主图按钮 1=附图按钮 2=主图指标名字按钮
|
|
53690
|
+
this.Buttons.push({ ID:item.ID, Rect:rtButton, FrameID:this.Frame.Identify, Type:0, Data:item.Data }); //Type 0=主图按钮 1=附图按钮 2=主图指标名字按钮
|
|
53656
53691
|
|
|
53657
53692
|
left=rtButton.Right;
|
|
53658
53693
|
|
|
@@ -53713,7 +53748,7 @@ function DynamicChartTitlePainting()
|
|
|
53713
53748
|
var rect=item.Rect;
|
|
53714
53749
|
if (x>rect.Left && x<rect.Right && y>rect.Top && y<rect.Bottom)
|
|
53715
53750
|
{
|
|
53716
|
-
var result= { ID:item.ID, Rect:rect, FrameID:item.FrameID, Type:item.Type };
|
|
53751
|
+
var result= { ID:item.ID, Rect:rect, FrameID:item.FrameID, Type:item.Type, Data:item.Data };
|
|
53717
53752
|
if (item.Type==1)
|
|
53718
53753
|
{
|
|
53719
53754
|
result.Title=item.Title;
|
|
@@ -72812,7 +72847,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
72812
72847
|
var menuData={ Menu:this.GetRightMenuData(frameID), Position:JSPopMenu.POSITION_ID.RIGHT_MENU_ID };
|
|
72813
72848
|
menuData.ClickCallback=(data)=>{ this.OnClickRightMenu(data); }
|
|
72814
72849
|
|
|
72815
|
-
this.
|
|
72850
|
+
this.PopupMenuByRClick(menuData, x, y);
|
|
72816
72851
|
}
|
|
72817
72852
|
|
|
72818
72853
|
this.PopupSelectRectMenuV2=function(data, e)
|
|
@@ -72826,7 +72861,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
72826
72861
|
var menuData={ Menu:aryMenu, Position:JSPopMenu.POSITION_ID.RIGHT_MENU_ID };
|
|
72827
72862
|
menuData.ClickCallback=(data)=>{ this.OnClickRightMenu(data); }
|
|
72828
72863
|
var x=data.X, y=data.Y;
|
|
72829
|
-
this.
|
|
72864
|
+
this.PopupMenuByRClick(menuData, x, y);
|
|
72830
72865
|
}
|
|
72831
72866
|
|
|
72832
72867
|
//重新加载画图工具(切换股票|周期)
|
|
@@ -74215,7 +74250,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
74215
74250
|
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_TITLE_BUTTON);
|
|
74216
74251
|
if (event && event.Callback)
|
|
74217
74252
|
{
|
|
74218
|
-
var data={ Info:button, PreventDefault:false
|
|
74253
|
+
var data={ Info:button, PreventDefault:false, e:e }; //PreventDefault 是否阻止内置的点击处理
|
|
74219
74254
|
event.Callback(event,data,this);
|
|
74220
74255
|
if (data.PreventDefault) return;
|
|
74221
74256
|
}
|
|
@@ -76320,7 +76355,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
76320
76355
|
var menuData={ Menu:this.GetRightMenuData(frameID), Position:JSPopMenu.POSITION_ID.RIGHT_MENU_ID };
|
|
76321
76356
|
menuData.ClickCallback=(data)=>{ this.OnClickRightMenu(data); }
|
|
76322
76357
|
|
|
76323
|
-
this.
|
|
76358
|
+
this.PopupMenuByRClick(menuData, x, y);
|
|
76324
76359
|
}
|
|
76325
76360
|
|
|
76326
76361
|
this.OnWheel=function(e)
|
|
@@ -225,6 +225,24 @@ function JSPopMenu()
|
|
|
225
225
|
this.RootDOM.style.left = x + "px";
|
|
226
226
|
}
|
|
227
227
|
|
|
228
|
+
//下拉菜单
|
|
229
|
+
this.PopupMenuByDrapdown=function(rtButton)
|
|
230
|
+
{
|
|
231
|
+
if (!this.RootDOM) return;
|
|
232
|
+
if (!rtButton) return;
|
|
233
|
+
|
|
234
|
+
var xLeft=rtButton.Left;
|
|
235
|
+
var yTop=rtButton.Bottom;
|
|
236
|
+
var menuHeight=this.RootDOM.offsetHeight;
|
|
237
|
+
var yMenuBottom=yTop+menuHeight;
|
|
238
|
+
var yBottom=window.innerHeight-15;
|
|
239
|
+
if (yMenuBottom>yBottom) yTop=rtButton.Top-menuHeight;
|
|
240
|
+
|
|
241
|
+
this.RootDOM.style.visibility='visible';
|
|
242
|
+
this.RootDOM.style.top = yTop + "px";
|
|
243
|
+
this.RootDOM.style.left = xLeft + "px";
|
|
244
|
+
}
|
|
245
|
+
|
|
228
246
|
this.OnClickMenu=function(e, item, bSubMenu)
|
|
229
247
|
{
|
|
230
248
|
console.log("[JSPopMenu::OnClickMenu] e=, item=, bSubMenu", e, item, bSubMenu);
|
|
@@ -6011,10 +6011,19 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
6011
6011
|
{
|
|
6012
6012
|
if(this.JSChartContainer && typeof(this.JSChartContainer.PopupMenuByTab)=='function')
|
|
6013
6013
|
{
|
|
6014
|
-
JSConsole.Chart.Log('[JSChart:
|
|
6014
|
+
JSConsole.Chart.Log('[JSChart:PopupMenuByTab] ');
|
|
6015
6015
|
return this.JSChartContainer.PopupMenuByTab(menuData, rtTab);
|
|
6016
6016
|
}
|
|
6017
6017
|
}
|
|
6018
|
+
|
|
6019
|
+
this.PopupMenuByDrapdown=function(menuData, rtButton)
|
|
6020
|
+
{
|
|
6021
|
+
if(this.JSChartContainer && typeof(this.JSChartContainer.PopupMenuByDrapdown)=='function')
|
|
6022
|
+
{
|
|
6023
|
+
JSConsole.Chart.Log('[JSChart:PopupMenuByDrapdown] ');
|
|
6024
|
+
return this.JSChartContainer.PopupMenuByDrapdown(menuData, rtButton);
|
|
6025
|
+
}
|
|
6026
|
+
}
|
|
6018
6027
|
}
|
|
6019
6028
|
|
|
6020
6029
|
JSChart.LastVersion=null; //最新的版本号
|
|
@@ -12898,6 +12907,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
12898
12907
|
}
|
|
12899
12908
|
}
|
|
12900
12909
|
|
|
12910
|
+
//点tab弹菜单
|
|
12901
12911
|
this.PopupMenuByTab=function(menuData, rtTab)
|
|
12902
12912
|
{
|
|
12903
12913
|
if (!this.JSPopMenu) return;
|
|
@@ -12921,7 +12931,32 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
12921
12931
|
this.JSPopMenu.PopupMenuByTab(rtCell);
|
|
12922
12932
|
}
|
|
12923
12933
|
|
|
12924
|
-
|
|
12934
|
+
//下拉菜单
|
|
12935
|
+
this.PopupMenuByDrapdown=function(menuData, rtButton)
|
|
12936
|
+
{
|
|
12937
|
+
if (!this.JSPopMenu) return;
|
|
12938
|
+
|
|
12939
|
+
var pixelRatio=GetDevicePixelRatio();
|
|
12940
|
+
var rtCell={ Left:rtButton.Left/pixelRatio, Right:rtButton.Right/pixelRatio, Bottom:rtButton.Bottom/pixelRatio, Top:rtButton.Top/pixelRatio };
|
|
12941
|
+
rtCell.Width=rtCell.Right-rtCell.Left;
|
|
12942
|
+
rtCell.Height=rtCell.Bottom-rtCell.Top;
|
|
12943
|
+
|
|
12944
|
+
var rtClient=this.UIElement.getBoundingClientRect();
|
|
12945
|
+
var rtScroll=GetScrollPosition();
|
|
12946
|
+
|
|
12947
|
+
var offsetLeft=rtClient.left+rtScroll.Left;
|
|
12948
|
+
var offsetTop=rtClient.top+rtScroll.Top;
|
|
12949
|
+
rtCell.Left+=offsetLeft;
|
|
12950
|
+
rtCell.Right+=offsetLeft;
|
|
12951
|
+
rtCell.Top+=offsetTop;
|
|
12952
|
+
rtCell.Bottom+=offsetTop;
|
|
12953
|
+
|
|
12954
|
+
this.JSPopMenu.CreatePopMenu(menuData);
|
|
12955
|
+
this.JSPopMenu.PopupMenuByDrapdown(rtCell);
|
|
12956
|
+
}
|
|
12957
|
+
|
|
12958
|
+
//右键菜单
|
|
12959
|
+
this.PopupMenuByRClick=function(menuData, x, y)
|
|
12925
12960
|
{
|
|
12926
12961
|
var rtClient=this.UIElement.getBoundingClientRect();
|
|
12927
12962
|
var rtScroll=GetScrollPosition();
|
|
@@ -16342,7 +16377,7 @@ function MinuteFrame()
|
|
|
16342
16377
|
for(var i=0;i<this.CustomToolbar.length;++i)
|
|
16343
16378
|
{
|
|
16344
16379
|
var item=this.CustomToolbar[i];
|
|
16345
|
-
if (item.ID && item.Style) aryButton.push({ ID:item.ID, Style:item.Style, TooltipText:item.TooltipText });
|
|
16380
|
+
if (item.ID && item.Style) aryButton.push({ ID:item.ID, Style:item.Style, TooltipText:item.TooltipText, Data:item.Data });
|
|
16346
16381
|
}
|
|
16347
16382
|
}
|
|
16348
16383
|
|
|
@@ -18472,7 +18507,7 @@ function KLineFrame()
|
|
|
18472
18507
|
var item=this.CustomToolbar[i];
|
|
18473
18508
|
if (item.ID && item.Style)
|
|
18474
18509
|
{
|
|
18475
|
-
var btnItem={ ID:item.ID, Style:item.Style, TooltipText:item.TooltipText};
|
|
18510
|
+
var btnItem={ ID:item.ID, Style:item.Style, TooltipText:item.TooltipText, Data:item.Data };
|
|
18476
18511
|
|
|
18477
18512
|
if (item.IsLeft===true) //左侧按钮
|
|
18478
18513
|
{
|
|
@@ -18538,7 +18573,7 @@ function KLineFrame()
|
|
|
18538
18573
|
var item=this.CustomToolbar[i];
|
|
18539
18574
|
if (item.ID && item.Style)
|
|
18540
18575
|
{
|
|
18541
|
-
var btnItem={ ID:item.ID, Style:item.Style, TooltipText:item.TooltipText};
|
|
18576
|
+
var btnItem={ ID:item.ID, Style:item.Style, TooltipText:item.TooltipText, Data:item.Data };
|
|
18542
18577
|
if (item.IsLeft===true) aryLeftButton.push(btnItem); //左侧按钮
|
|
18543
18578
|
}
|
|
18544
18579
|
}
|
|
@@ -57544,7 +57579,7 @@ function DynamicChartTitlePainting()
|
|
|
57544
57579
|
var rtButton={ Left:left, YCenter:yCenter };
|
|
57545
57580
|
this.DrawButton(item, rtButton, moveonPoint, mouseStatus);
|
|
57546
57581
|
|
|
57547
|
-
this.Buttons.push({ ID:item.ID, Rect:rtButton, FrameID:this.Frame.Identify, Type:0 }); //Type 0=主图按钮 1=附图按钮 2=主图指标名字按钮
|
|
57582
|
+
this.Buttons.push({ ID:item.ID, Rect:rtButton, FrameID:this.Frame.Identify, Type:0, Data:item.Data }); //Type 0=主图按钮 1=附图按钮 2=主图指标名字按钮
|
|
57548
57583
|
|
|
57549
57584
|
left=rtButton.Right;
|
|
57550
57585
|
|
|
@@ -57605,7 +57640,7 @@ function DynamicChartTitlePainting()
|
|
|
57605
57640
|
var rect=item.Rect;
|
|
57606
57641
|
if (x>rect.Left && x<rect.Right && y>rect.Top && y<rect.Bottom)
|
|
57607
57642
|
{
|
|
57608
|
-
var result= { ID:item.ID, Rect:rect, FrameID:item.FrameID, Type:item.Type };
|
|
57643
|
+
var result= { ID:item.ID, Rect:rect, FrameID:item.FrameID, Type:item.Type, Data:item.Data };
|
|
57609
57644
|
if (item.Type==1)
|
|
57610
57645
|
{
|
|
57611
57646
|
result.Title=item.Title;
|
|
@@ -76704,7 +76739,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
76704
76739
|
var menuData={ Menu:this.GetRightMenuData(frameID), Position:JSPopMenu.POSITION_ID.RIGHT_MENU_ID };
|
|
76705
76740
|
menuData.ClickCallback=(data)=>{ this.OnClickRightMenu(data); }
|
|
76706
76741
|
|
|
76707
|
-
this.
|
|
76742
|
+
this.PopupMenuByRClick(menuData, x, y);
|
|
76708
76743
|
}
|
|
76709
76744
|
|
|
76710
76745
|
this.PopupSelectRectMenuV2=function(data, e)
|
|
@@ -76718,7 +76753,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
76718
76753
|
var menuData={ Menu:aryMenu, Position:JSPopMenu.POSITION_ID.RIGHT_MENU_ID };
|
|
76719
76754
|
menuData.ClickCallback=(data)=>{ this.OnClickRightMenu(data); }
|
|
76720
76755
|
var x=data.X, y=data.Y;
|
|
76721
|
-
this.
|
|
76756
|
+
this.PopupMenuByRClick(menuData, x, y);
|
|
76722
76757
|
}
|
|
76723
76758
|
|
|
76724
76759
|
//重新加载画图工具(切换股票|周期)
|
|
@@ -78107,7 +78142,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
78107
78142
|
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_TITLE_BUTTON);
|
|
78108
78143
|
if (event && event.Callback)
|
|
78109
78144
|
{
|
|
78110
|
-
var data={ Info:button, PreventDefault:false
|
|
78145
|
+
var data={ Info:button, PreventDefault:false, e:e }; //PreventDefault 是否阻止内置的点击处理
|
|
78111
78146
|
event.Callback(event,data,this);
|
|
78112
78147
|
if (data.PreventDefault) return;
|
|
78113
78148
|
}
|
|
@@ -80212,7 +80247,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
80212
80247
|
var menuData={ Menu:this.GetRightMenuData(frameID), Position:JSPopMenu.POSITION_ID.RIGHT_MENU_ID };
|
|
80213
80248
|
menuData.ClickCallback=(data)=>{ this.OnClickRightMenu(data); }
|
|
80214
80249
|
|
|
80215
|
-
this.
|
|
80250
|
+
this.PopupMenuByRClick(menuData, x, y);
|
|
80216
80251
|
}
|
|
80217
80252
|
|
|
80218
80253
|
this.OnWheel=function(e)
|
|
@@ -131789,7 +131824,7 @@ function ScrollBarBGChart()
|
|
|
131789
131824
|
|
|
131790
131825
|
|
|
131791
131826
|
|
|
131792
|
-
var HQCHART_VERSION="1.1.
|
|
131827
|
+
var HQCHART_VERSION="1.1.13193";
|
|
131793
131828
|
|
|
131794
131829
|
function PrintHQChartVersion()
|
|
131795
131830
|
{
|
|
@@ -6055,10 +6055,19 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
6055
6055
|
{
|
|
6056
6056
|
if(this.JSChartContainer && typeof(this.JSChartContainer.PopupMenuByTab)=='function')
|
|
6057
6057
|
{
|
|
6058
|
-
JSConsole.Chart.Log('[JSChart:
|
|
6058
|
+
JSConsole.Chart.Log('[JSChart:PopupMenuByTab] ');
|
|
6059
6059
|
return this.JSChartContainer.PopupMenuByTab(menuData, rtTab);
|
|
6060
6060
|
}
|
|
6061
6061
|
}
|
|
6062
|
+
|
|
6063
|
+
this.PopupMenuByDrapdown=function(menuData, rtButton)
|
|
6064
|
+
{
|
|
6065
|
+
if(this.JSChartContainer && typeof(this.JSChartContainer.PopupMenuByDrapdown)=='function')
|
|
6066
|
+
{
|
|
6067
|
+
JSConsole.Chart.Log('[JSChart:PopupMenuByDrapdown] ');
|
|
6068
|
+
return this.JSChartContainer.PopupMenuByDrapdown(menuData, rtButton);
|
|
6069
|
+
}
|
|
6070
|
+
}
|
|
6062
6071
|
}
|
|
6063
6072
|
|
|
6064
6073
|
JSChart.LastVersion=null; //最新的版本号
|
|
@@ -12942,6 +12951,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
12942
12951
|
}
|
|
12943
12952
|
}
|
|
12944
12953
|
|
|
12954
|
+
//点tab弹菜单
|
|
12945
12955
|
this.PopupMenuByTab=function(menuData, rtTab)
|
|
12946
12956
|
{
|
|
12947
12957
|
if (!this.JSPopMenu) return;
|
|
@@ -12965,7 +12975,32 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
12965
12975
|
this.JSPopMenu.PopupMenuByTab(rtCell);
|
|
12966
12976
|
}
|
|
12967
12977
|
|
|
12968
|
-
|
|
12978
|
+
//下拉菜单
|
|
12979
|
+
this.PopupMenuByDrapdown=function(menuData, rtButton)
|
|
12980
|
+
{
|
|
12981
|
+
if (!this.JSPopMenu) return;
|
|
12982
|
+
|
|
12983
|
+
var pixelRatio=GetDevicePixelRatio();
|
|
12984
|
+
var rtCell={ Left:rtButton.Left/pixelRatio, Right:rtButton.Right/pixelRatio, Bottom:rtButton.Bottom/pixelRatio, Top:rtButton.Top/pixelRatio };
|
|
12985
|
+
rtCell.Width=rtCell.Right-rtCell.Left;
|
|
12986
|
+
rtCell.Height=rtCell.Bottom-rtCell.Top;
|
|
12987
|
+
|
|
12988
|
+
var rtClient=this.UIElement.getBoundingClientRect();
|
|
12989
|
+
var rtScroll=GetScrollPosition();
|
|
12990
|
+
|
|
12991
|
+
var offsetLeft=rtClient.left+rtScroll.Left;
|
|
12992
|
+
var offsetTop=rtClient.top+rtScroll.Top;
|
|
12993
|
+
rtCell.Left+=offsetLeft;
|
|
12994
|
+
rtCell.Right+=offsetLeft;
|
|
12995
|
+
rtCell.Top+=offsetTop;
|
|
12996
|
+
rtCell.Bottom+=offsetTop;
|
|
12997
|
+
|
|
12998
|
+
this.JSPopMenu.CreatePopMenu(menuData);
|
|
12999
|
+
this.JSPopMenu.PopupMenuByDrapdown(rtCell);
|
|
13000
|
+
}
|
|
13001
|
+
|
|
13002
|
+
//右键菜单
|
|
13003
|
+
this.PopupMenuByRClick=function(menuData, x, y)
|
|
12969
13004
|
{
|
|
12970
13005
|
var rtClient=this.UIElement.getBoundingClientRect();
|
|
12971
13006
|
var rtScroll=GetScrollPosition();
|
|
@@ -16386,7 +16421,7 @@ function MinuteFrame()
|
|
|
16386
16421
|
for(var i=0;i<this.CustomToolbar.length;++i)
|
|
16387
16422
|
{
|
|
16388
16423
|
var item=this.CustomToolbar[i];
|
|
16389
|
-
if (item.ID && item.Style) aryButton.push({ ID:item.ID, Style:item.Style, TooltipText:item.TooltipText });
|
|
16424
|
+
if (item.ID && item.Style) aryButton.push({ ID:item.ID, Style:item.Style, TooltipText:item.TooltipText, Data:item.Data });
|
|
16390
16425
|
}
|
|
16391
16426
|
}
|
|
16392
16427
|
|
|
@@ -18516,7 +18551,7 @@ function KLineFrame()
|
|
|
18516
18551
|
var item=this.CustomToolbar[i];
|
|
18517
18552
|
if (item.ID && item.Style)
|
|
18518
18553
|
{
|
|
18519
|
-
var btnItem={ ID:item.ID, Style:item.Style, TooltipText:item.TooltipText};
|
|
18554
|
+
var btnItem={ ID:item.ID, Style:item.Style, TooltipText:item.TooltipText, Data:item.Data };
|
|
18520
18555
|
|
|
18521
18556
|
if (item.IsLeft===true) //左侧按钮
|
|
18522
18557
|
{
|
|
@@ -18582,7 +18617,7 @@ function KLineFrame()
|
|
|
18582
18617
|
var item=this.CustomToolbar[i];
|
|
18583
18618
|
if (item.ID && item.Style)
|
|
18584
18619
|
{
|
|
18585
|
-
var btnItem={ ID:item.ID, Style:item.Style, TooltipText:item.TooltipText};
|
|
18620
|
+
var btnItem={ ID:item.ID, Style:item.Style, TooltipText:item.TooltipText, Data:item.Data };
|
|
18586
18621
|
if (item.IsLeft===true) aryLeftButton.push(btnItem); //左侧按钮
|
|
18587
18622
|
}
|
|
18588
18623
|
}
|
|
@@ -57588,7 +57623,7 @@ function DynamicChartTitlePainting()
|
|
|
57588
57623
|
var rtButton={ Left:left, YCenter:yCenter };
|
|
57589
57624
|
this.DrawButton(item, rtButton, moveonPoint, mouseStatus);
|
|
57590
57625
|
|
|
57591
|
-
this.Buttons.push({ ID:item.ID, Rect:rtButton, FrameID:this.Frame.Identify, Type:0 }); //Type 0=主图按钮 1=附图按钮 2=主图指标名字按钮
|
|
57626
|
+
this.Buttons.push({ ID:item.ID, Rect:rtButton, FrameID:this.Frame.Identify, Type:0, Data:item.Data }); //Type 0=主图按钮 1=附图按钮 2=主图指标名字按钮
|
|
57592
57627
|
|
|
57593
57628
|
left=rtButton.Right;
|
|
57594
57629
|
|
|
@@ -57649,7 +57684,7 @@ function DynamicChartTitlePainting()
|
|
|
57649
57684
|
var rect=item.Rect;
|
|
57650
57685
|
if (x>rect.Left && x<rect.Right && y>rect.Top && y<rect.Bottom)
|
|
57651
57686
|
{
|
|
57652
|
-
var result= { ID:item.ID, Rect:rect, FrameID:item.FrameID, Type:item.Type };
|
|
57687
|
+
var result= { ID:item.ID, Rect:rect, FrameID:item.FrameID, Type:item.Type, Data:item.Data };
|
|
57653
57688
|
if (item.Type==1)
|
|
57654
57689
|
{
|
|
57655
57690
|
result.Title=item.Title;
|
|
@@ -76748,7 +76783,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
76748
76783
|
var menuData={ Menu:this.GetRightMenuData(frameID), Position:JSPopMenu.POSITION_ID.RIGHT_MENU_ID };
|
|
76749
76784
|
menuData.ClickCallback=(data)=>{ this.OnClickRightMenu(data); }
|
|
76750
76785
|
|
|
76751
|
-
this.
|
|
76786
|
+
this.PopupMenuByRClick(menuData, x, y);
|
|
76752
76787
|
}
|
|
76753
76788
|
|
|
76754
76789
|
this.PopupSelectRectMenuV2=function(data, e)
|
|
@@ -76762,7 +76797,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
76762
76797
|
var menuData={ Menu:aryMenu, Position:JSPopMenu.POSITION_ID.RIGHT_MENU_ID };
|
|
76763
76798
|
menuData.ClickCallback=(data)=>{ this.OnClickRightMenu(data); }
|
|
76764
76799
|
var x=data.X, y=data.Y;
|
|
76765
|
-
this.
|
|
76800
|
+
this.PopupMenuByRClick(menuData, x, y);
|
|
76766
76801
|
}
|
|
76767
76802
|
|
|
76768
76803
|
//重新加载画图工具(切换股票|周期)
|
|
@@ -78151,7 +78186,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
78151
78186
|
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_TITLE_BUTTON);
|
|
78152
78187
|
if (event && event.Callback)
|
|
78153
78188
|
{
|
|
78154
|
-
var data={ Info:button, PreventDefault:false
|
|
78189
|
+
var data={ Info:button, PreventDefault:false, e:e }; //PreventDefault 是否阻止内置的点击处理
|
|
78155
78190
|
event.Callback(event,data,this);
|
|
78156
78191
|
if (data.PreventDefault) return;
|
|
78157
78192
|
}
|
|
@@ -80256,7 +80291,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
80256
80291
|
var menuData={ Menu:this.GetRightMenuData(frameID), Position:JSPopMenu.POSITION_ID.RIGHT_MENU_ID };
|
|
80257
80292
|
menuData.ClickCallback=(data)=>{ this.OnClickRightMenu(data); }
|
|
80258
80293
|
|
|
80259
|
-
this.
|
|
80294
|
+
this.PopupMenuByRClick(menuData, x, y);
|
|
80260
80295
|
}
|
|
80261
80296
|
|
|
80262
80297
|
this.OnWheel=function(e)
|
|
@@ -134459,6 +134494,24 @@ function JSPopMenu()
|
|
|
134459
134494
|
this.RootDOM.style.left = x + "px";
|
|
134460
134495
|
}
|
|
134461
134496
|
|
|
134497
|
+
//下拉菜单
|
|
134498
|
+
this.PopupMenuByDrapdown=function(rtButton)
|
|
134499
|
+
{
|
|
134500
|
+
if (!this.RootDOM) return;
|
|
134501
|
+
if (!rtButton) return;
|
|
134502
|
+
|
|
134503
|
+
var xLeft=rtButton.Left;
|
|
134504
|
+
var yTop=rtButton.Bottom;
|
|
134505
|
+
var menuHeight=this.RootDOM.offsetHeight;
|
|
134506
|
+
var yMenuBottom=yTop+menuHeight;
|
|
134507
|
+
var yBottom=window.innerHeight-15;
|
|
134508
|
+
if (yMenuBottom>yBottom) yTop=rtButton.Top-menuHeight;
|
|
134509
|
+
|
|
134510
|
+
this.RootDOM.style.visibility='visible';
|
|
134511
|
+
this.RootDOM.style.top = yTop + "px";
|
|
134512
|
+
this.RootDOM.style.left = xLeft + "px";
|
|
134513
|
+
}
|
|
134514
|
+
|
|
134462
134515
|
this.OnClickMenu=function(e, item, bSubMenu)
|
|
134463
134516
|
{
|
|
134464
134517
|
console.log("[JSPopMenu::OnClickMenu] e=, item=, bSubMenu", e, item, bSubMenu);
|
|
@@ -134664,7 +134717,7 @@ function HQChartScriptWorker()
|
|
|
134664
134717
|
|
|
134665
134718
|
|
|
134666
134719
|
|
|
134667
|
-
var HQCHART_VERSION="1.1.
|
|
134720
|
+
var HQCHART_VERSION="1.1.13193";
|
|
134668
134721
|
|
|
134669
134722
|
function PrintHQChartVersion()
|
|
134670
134723
|
{
|