hqchart 1.1.15708 → 1.1.15719
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 +17 -11
- package/package.json +1 -1
- package/src/jscommon/umychart.NetworkFilterTest.js +3 -1
- package/src/jscommon/umychart.complier.js +4 -2
- package/src/jscommon/umychart.js +77 -10
- package/src/jscommon/umychart.testdata.js +3 -1
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +82 -13
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.NetworkFilterTest.vue.js +3 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +82 -13
package/lib/umychart.vue.js
CHANGED
|
@@ -1245,7 +1245,7 @@ if(IFrameSplitOperator.IsBool(option.CorssCursorInfo.IsFixXLastTime))chart.Chart
|
|
|
1245
1245
|
{var subItem=item.TextStyle.Right;if(IFrameSplitOperator.IsNumber(subItem.Type))chart.ChartCorssCursor.StringFormatY.TextStyleConfig.Right.Type=subItem.Type;}}}if(option.MinuteInfo)chart.CreateMinuteInfo(option.MinuteInfo);if(IFrameSplitOperator.IsBool(option.IsShowRightMenu))chart.IsShowRightMenu=option.IsShowRightMenu;if(IFrameSplitOperator.IsNumber(option.DayCount))chart.DayCount=option.DayCount;if(IFrameSplitOperator.IsBool(option.IsShowMaxMinText))chart.ChartPaint[0].MaxMinTextConfig.IsShow=option.IsShowMaxMinText;this.SetChartBorder(chart,option);if(option.SplashTitle)chart.ChartSplashPaint.SplashTitle=option.SplashTitle;if(IFrameSplitOperator.IsBool(option.EnableBorderDrag)){chart.EnableBorderDrag=option.EnableBorderDrag;}if(IFrameSplitOperator.IsBool(option.EnableBuySellBar)){var barChart=chart.GetChartMinuteBuySellBar();if(barChart)barChart.IsShow=option.EnableBuySellBar;}this.AdjustChartBorder(chart);if(option.Frame){for(var i=0;i<option.Frame.length;++i){var item=option.Frame[i];if(!chart.Frame.SubFrame[i])continue;chart.SetSubFrameAttribute(chart.Frame.SubFrame[i],null,item);}chart.UpdateXShowText();}if(option.ExtendChart){for(var i=0;i<option.ExtendChart.length;++i){var item=option.ExtendChart[i];chart.CreateExtendChart(item.Name,item);}}//叠加股票
|
|
1246
1246
|
if(option.Overlay){for(var i=0;i<option.Overlay.length;++i){var item=option.Overlay[i];chart.OverlaySymbol(item.Symbol,item);}}if(option.MinuteLine){if(option.MinuteLine.IsDrawAreaPrice==false)chart.ChartPaint[0].IsDrawArea=false;if(option.MinuteLine.IsShowLead==false)chart.IsShowLead=false;if(option.MinuteLine.IsShowAveragePrice==false){chart.ChartPaint[1].IsShow=false;chart.TitlePaint[0].IsShowAveragePrice=false;//标题栏均线也不显示
|
|
1247
1247
|
for(var i=0;i<chart.ExtendChartPaint.length;++i){var item=chart.ExtendChartPaint[i];if(item.ClassName=="MinuteTooltipPaint")item.IsShowAveragePrice=false;}}if(option.MinuteLine.SplitType>0)chart.Frame.SubFrame[0].Frame.YSplitOperator.SplitType=option.MinuteLine.SplitType;}if(option.MinuteVol){var item=option.MinuteVol;if(IFrameSplitOperator.IsNumber(item.BarColorType))chart.ChartPaint[2].BarColorType=item.BarColorType;}if(option.MinuteTitle){var item=option.MinuteTitle;var chartTitle=chart.TitlePaint[0];if(IFrameSplitOperator.IsBool(item.IsShowName))chart.TitlePaint[0].IsShowName=item.IsShowName;if(IFrameSplitOperator.IsBool(item.IsShowDate))chart.TitlePaint[0].IsShowDate=item.IsShowDate;if(IFrameSplitOperator.IsBool(item.IsShowTime))chart.TitlePaint[0].IsShowTime=item.IsShowTime;if(IFrameSplitOperator.IsBool(item.IsTitleShowLatestData))chart.IsTitleShowLatestData=item.IsTitleShowLatestData;if(IFrameSplitOperator.IsBool(item.IsAlwaysShowLastData))chart.TitlePaint[0].IsAlwaysShowLastData=item.IsAlwaysShowLastData;if(IFrameSplitOperator.IsNumber(item.ShowLastDataFormat))chart.TitlePaint[0].ShowLastDataFormat=item.ShowLastDataFormat;if(item.TimeFormat)chart.TitlePaint[0].TimeFormat=item.TimeFormat;if(item.ShowPostion||item.ShowPosition)//显示位置高级配置
|
|
1248
|
-
{var subItem=item.ShowPostion;if(item.ShowPosition)subItem=item.ShowPosition;if(!chartTitle.ShowPositionConfig)chartTitle.ShowPositionConfig={Margin:{}};if(IFrameSplitOperator.IsNumber(subItem.Type))chartTitle.ShowPositionConfig.Type=subItem.Type;if(subItem.Margin){if(IFrameSplitOperator.IsNumber(subItem.Margin.Left))chartTitle.ShowPositionConfig.Margin.Left=subItem.Margin.Left;if(IFrameSplitOperator.IsNumber(subItem.Margin.Right))chartTitle.ShowPositionConfig.Margin.Right=subItem.Margin.Right;if(IFrameSplitOperator.IsNumber(subItem.Margin.Bottom))chartTitle.ShowPositionConfig.Margin.Bottom=subItem.Margin.Bottom;}}}if(IFrameSplitOperator.IsBool(option.CorssCursorTouchEnd))chart.CorssCursorTouchEnd=option.CorssCursorTouchEnd;if(IFrameSplitOperator.IsBool(option.IsClickShowCorssCursor))chart.IsClickShowCorssCursor=option.IsClickShowCorssCursor;if(option.IsShowBeforeData===true)chart.IsShowBeforeData=option.IsShowBeforeData;var windows=[null,null];if(option.MainWindow)windows[0]=option.MainWindow;if(IFrameSplitOperator.IsNonEmptyArray(option.Windows))windows.push.apply(windows,(0,_toConsumableArray3.default)(option.Windows));//分钟数据指标从第3个指标窗口设置
|
|
1248
|
+
{var subItem=item.ShowPostion;if(item.ShowPosition)subItem=item.ShowPosition;if(!chartTitle.ShowPositionConfig)chartTitle.ShowPositionConfig={Margin:{}};if(IFrameSplitOperator.IsNumber(subItem.Type))chartTitle.ShowPositionConfig.Type=subItem.Type;if(subItem.Margin){if(IFrameSplitOperator.IsNumber(subItem.Margin.Left))chartTitle.ShowPositionConfig.Margin.Left=subItem.Margin.Left;if(IFrameSplitOperator.IsNumber(subItem.Margin.Right))chartTitle.ShowPositionConfig.Margin.Right=subItem.Margin.Right;if(IFrameSplitOperator.IsNumber(subItem.Margin.Bottom))chartTitle.ShowPositionConfig.Margin.Bottom=subItem.Margin.Bottom;}}if(IFrameSplitOperator.IsNonEmptyArray(item.OverlayTitleName))chartTitle.AryOverlayTitleName=item.OverlayTitleName.slice();}if(IFrameSplitOperator.IsBool(option.CorssCursorTouchEnd))chart.CorssCursorTouchEnd=option.CorssCursorTouchEnd;if(IFrameSplitOperator.IsBool(option.IsClickShowCorssCursor))chart.IsClickShowCorssCursor=option.IsClickShowCorssCursor;if(option.IsShowBeforeData===true)chart.IsShowBeforeData=option.IsShowBeforeData;var windows=[null,null];if(option.MainWindow)windows[0]=option.MainWindow;if(IFrameSplitOperator.IsNonEmptyArray(option.Windows))windows.push.apply(windows,(0,_toConsumableArray3.default)(option.Windows));//分钟数据指标从第3个指标窗口设置
|
|
1249
1249
|
if(IFrameSplitOperator.IsNonEmptyArray(windows)){var scriptData=new JSIndexScript();for(var i=0;i<windows.length;++i){var index=i;var item=windows[i];if(!item)continue;if(item.Script){chart.WindowIndex[index]=new ScriptIndex(item.Name,item.Script,item.Args,item);//脚本执行
|
|
1250
1250
|
}else if(item.API)//使用API挂接指标数据 API:{ Name:指标名字, Script:指标脚本可以为空, Args:参数可以为空, Url:指标执行地址 }
|
|
1251
1251
|
{var apiItem=item.API;chart.WindowIndex[index]=new APIScriptIndex(apiItem.Name,apiItem.Script,apiItem.Args,item);}else{var indexItem=JSIndexMap.Get(item.Index);if(indexItem){chart.WindowIndex[index]=indexItem.Create();//创建子窗口的指标
|
|
@@ -1852,7 +1852,7 @@ this.TryYDrag=function(x,y){if(!this.EnableYDrag)return null;if(!this.EnableYDra
|
|
|
1852
1852
|
this.TryUpDownDrag=function(x,y){var windowIndex=this.Frame.PtInFrame(x,y);if(windowIndex<0)return null;var item=this.Frame.SubFrame[windowIndex];if(!item||!item.Frame)return null;var frame=item.Frame;if(!frame.YSplitOperator||!frame.YSplitOperator.FixedYMaxMin)return null;return{Index:windowIndex,X:x,Y:y};};this.TryRectSelectDrag=function(x,y){var paint=this.GetRectSelectPaint();if(!paint)return null;if(paint.GetPointCount()<=0)return null;var item=paint.PtInPaint(x,y);return{Item:item,X:x,Y:y};};this.TryClickCrossCursor=function(x,y,e){if(!this.ChartCorssCursor)return;var button=this.ChartCorssCursor.PtInButton(x,y);if(!button)return false;if(button.Type==1){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_CROSSCURSOR_RIGHT);if(event&&event.Callback){var sendData={Button:button,e:e};event.Callback(event,sendData,this);}}else if(button.Type==2){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_CROSSCURSOR_BOTTOM);if(event&&event.Callback){var sendData={Button:button,e:e};event.Callback(event,sendData,this);}}return true;};this.TryClickButton=function(x,y,e){var button=this.Frame.PtInButtons(x,y);if(button&&this.ClickFrameButton){this.ClickFrameButton(button,e);return true;}button=this.PtInExtendChartButtons(x,y);if(button&&this.ClickExtendChartButton){this.ClickExtendChartButton(button,e);return true;}button=this.PtInDrawPictureButtons(x,y);if(button&&this.ClickDrawPictureButton){this.ClickDrawPictureButton(button,e);return true;}button=this.PtInTitleButtons(x,y);if(button&&this.ClickTitleButton){this.ClickTitleButton(button,e);return true;}var label=this.Frame.PtInHorizontalLabel(x,y);if(label&&this.ClickHorizontalLabel){this.ClickHorizontalLabel(label,e);return true;}return false;};//点击图新内部元素
|
|
1853
1853
|
this.TryClickChartCell=function(x,y,e){var result=null;for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(!item.ClickCell)continue;if(item.IsHideScriptIndex())continue;result=item.ClickCell(x,y,e);if(result){result.Chart=item;return result;}}for(var i=0;i<this.OverlayChartPaint.length;++i){var item=this.OverlayChartPaint[i];if(!item.ClickCell)continue;result=item.ClickCell(x,y,e);if(result){result.Chart=item;result.IsOverlayChart=true;return result;}}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(!IFrameSplitOperator.IsNonEmptyArray(overlayItem.ChartPaint))continue;for(var k=0;k<overlayItem.ChartPaint.length;++k){var chart=overlayItem.ChartPaint[k];if(!chart.IsShow)continue;if(chart.IsHideScriptIndex())continue;if(chart.ClickCell){result=chart.ClickCell(x,y,e);if(result){result.Chart=chart;result.IsOverlayIndex=true;return result;}}}}}return null;};this.TryMouseMove_CustomChartDrag=function(sendData){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CUSTOM_DRAG_MOUSE_MOVE);if(!event||!event.Callback)return false;return event.Callback(event,sendData,this);};this.TryClick_CustomChartDrag=function(sendData){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CUSTOM_DRAG_MOUSE_DOWN);if(!event||!event.Callback)return false;sendData.ChartDrag=null;sendData.Cusrsor=null;event.Callback(event,sendData,this);this.CustomChartDrag=sendData.ChartDrag;this.SetCursor(sendData);};this.TryDragMove_CustomChartDrag=function(sendData){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CUSTOM_DRAG_DOC_MOUSE_MOVE);if(!event||!event.Callback)return;var e=sendData.e;var drag=sendData.Drag;if(Math.abs(drag.LastMove.Y-e.clientY)<2&&Math.abs(drag.LastMove.X-e.clientX)<2)return;if(event.Callback(event,sendData,this)){drag.LastMove.X=e.clientX;drag.LastMove.Y=e.clientY;}};this.TryMouseUp_CustomChartDrag=function(sendData){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CUSTOM_DRAG_DOC_MOUSE_UP);if(!event||!event.Callback)return;event.Callback(event,sendData,this);};this.UIOnMouseDown=function(e){var _this10=this;this.MoveOnChartDrawPicture=null;if(this.ChartSplashPaint&&this.ChartSplashPaint.IsEnableSplash==true)return;this.ClickDownPoint={X:e.clientX,Y:e.clientY};this.IsOnTouch=true;this.BorderDrag=null;this.YDrag=null;this.UpDownDrag=null;this.RectSelectDrag=null;this.IndexChartDrag=null;this.CustomChartDrag=null;var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;if(this.TryClickButton(x,y,e)){this.IsOnTouch=false;return;}var bDrawDynamicInfo=false;if(this.GlobalOption.SelectedBorder&&this.GlobalOption.SelectedBorder.Mode>=1){var item=this.GlobalOption.SelectedBorder;var frameId=this.Frame.PtInFrame(x,y);if(frameId>=0&&frameId!=item.SelFrame){item.SelFrame=frameId;bDrawDynamicInfo=true;}}var bRedraw=false;if(this.GlobalOption.SelectedXBorder&&this.GlobalOption.SelectedXBorder.Mode>=1){if(this.PtInMulitDayMinute){var item=this.GlobalOption.SelectedXBorder;var selectedDate=this.PtInMulitDayMinute(x,y);if(item.Date!=selectedDate){item.Date=selectedDate;bRedraw=true;}}}if(this.TryClickCrossCursor(x,y,e)){this.IsOnTouch=false;return;}if(this.TryClickChartTooltipData&&this.TryClickChartTooltipData(x,y,e))//预留给外部点击图标什么用的
|
|
1854
1854
|
{this.IsOnTouch=false;return;}if(this.TryClickLock){//JSConsole.Chart.Log('[uielement.onmousedown] left, top ',e.clientX, e.clientY, this.getBoundingClientRect().left,this.getBoundingClientRect().top);
|
|
1855
|
-
if(this.TryClickLock(x,y))return;}this.HideSelectRect();this.ClearDragSelectRect();if(this.ChartPictureMenu)this.ChartPictureMenu.Hide();var paint=this.GetRectSelectPaint();if(paint&&paint.GetPointCount()>0){var item=paint.PtInPaint(x,y);if(item){if(item.Type==4){//this.UIElement.style.cursor="pointer";
|
|
1855
|
+
if(this.TryClickLock(x,y)){this.IsOnTouch=false;return;}}this.HideSelectRect();this.ClearDragSelectRect();if(this.ChartPictureMenu)this.ChartPictureMenu.Hide();var paint=this.GetRectSelectPaint();if(paint&&paint.GetPointCount()>0){var item=paint.PtInPaint(x,y);if(item){if(item.Type==4){//this.UIElement.style.cursor="pointer";
|
|
1856
1856
|
this.SetCursor({Cursor:"pointer"});var obj={X:e.clientX};if(this.GetXDataIndex(obj)){this.RectSelectDrag={DataIndex:obj.DataIndex,Type:item.Type,X:e.clientX};JSConsole.Chart.Log("[JSChartContainer::UIOnMouseDown] drag sub rect select ",obj);}}else{//this.UIElement.style.cursor="ew-resize";
|
|
1857
1857
|
this.SetCursor({Cursor:"ew-resize"});this.RectSelectDrag={Index:item.PointIndex,Type:item.Type};JSConsole.Chart.Log("[JSChartContainer::UIOnMouseDown] drag rect select ",item);}}}if(!this.IsShowSelectRectDialog())//区间统计框存在,不清空区间背景色
|
|
1858
1858
|
{if(!this.RectSelectDrag&&this.ClearRectSelect(false))this.Draw();}if(this.EnableBorderDrag&&this.Frame){var dragBorder=this.Frame.PtInFrameBorder(x,y);if(dragBorder&&dragBorder.Index>=0){//this.UIElement.style.cursor="n-resize";
|
|
@@ -2436,11 +2436,11 @@ for(var i=0,j=0,k=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFra
|
|
|
2436
2436
|
this.ClearIndexRunCount=function(){//主图指标
|
|
2437
2437
|
for(var i=0;i<this.WindowIndex.length;++i){var item=this.WindowIndex[i];if(!item)continue;item.RunCount=0;}//叠加指标
|
|
2438
2438
|
for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i];for(var j=0;j<item.OverlayIndex.length;++j){var overlayItem=item.OverlayIndex[j];if(overlayItem.Script)overlayItem.Script.RunCount=0;}}};//获取当前的显示的指标 包含叠加指标
|
|
2439
|
-
this.GetIndexInfo=function(){var aryIndex=[];for(var i=0,j=0;i<this.WindowIndex.length;++i){var item=this.WindowIndex[i];if(!item)continue;var info={Name:item.Name,WindowIndex:i,IsOverlay:false};if(item.ID)info.ID=item.ID;if(IFrameSplitOperator.IsNonEmptyArray(item.Arguments))//参数
|
|
2440
|
-
{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);//叠加指标
|
|
2439
|
+
this.GetIndexInfo=function(){var aryIndex=[];for(var i=0,j=0;i<this.WindowIndex.length;++i){var item=this.WindowIndex[i];if(!item)continue;var info={Name:item.Name,WindowIndex:i,IsOverlay:false,IsAuthorization:item.IsAuthorization};if(item.ID)info.ID=item.ID;if(item.ClassName=="APIScriptIndex")info.API={Url:item.ApiUrl,Name:item.Name,ID:item.ID};if(IFrameSplitOperator.IsNonEmptyArray(item.Arguments))//参数
|
|
2440
|
+
{info.Args=[];for(j=0;j<item.Arguments.length;++j){var argItem=item.Arguments[j];info.Args.push({Name:argItem.Name,Value:argItem.Value});}if(info.API)info.API.Args=info.Args;}aryIndex.push(info);}this.GetOverlayIndexInfo(aryIndex);//叠加指标
|
|
2441
2441
|
return aryIndex;};//叠加指标
|
|
2442
|
-
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))//参数
|
|
2443
|
-
{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弹菜单
|
|
2442
|
+
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,IsAuthorization:indexData.IsAuthorization};if(indexData.ClassName=="APIScriptIndex")info.API={Url:indexData.ApiUrl,Name:indexData.Name,ID:indexData.ID};if(IFrameSplitOperator.IsNonEmptyArray(indexData.Arguments))//参数
|
|
2443
|
+
{info.Args=[];for(k=0;k<indexData.Arguments.length;++k){var argItem=indexData.Arguments[k];info.Args.push({Name:argItem.Name,Value:argItem.Value});}if(info.API)info.API.Args=info.Args;}aryIndex.push(info);}}};//点tab弹菜单
|
|
2444
2444
|
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);};//下拉菜单
|
|
2445
2445
|
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);};//右键菜单
|
|
2446
2446
|
this.PopupMenuByRClick=function(menuData,x,y){if(!this.JSPopMenu)return;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);};//菜单命令
|
|
@@ -6508,6 +6508,7 @@ this.ShowLastDataFormat=0;//0=默认 1=更新时间替换时间
|
|
|
6508
6508
|
this.MultiDayBeforeOpenData;//多日分时图 盘前数据
|
|
6509
6509
|
this.MultiDayAfterCloseData;//多日分时图 收盘数据
|
|
6510
6510
|
this.TimeFormat;//显示时间格式 "HH:MM:SS", "hh:MM", "HH:MM:SS.fff"
|
|
6511
|
+
this.AryOverlayTitleName=[];//["MTitle-Close", "MTitle-Increase"];
|
|
6511
6512
|
this.CallAuctionShowTitle=new _set2.default(["MTitle-AC-Price","MTitle-AC-Vol","MTitle-AC-NotMatchVol","MTitle-AC-Increase","MTitle-AC-AvPrice"]);this.GetCurrentKLineData=function()//获取当天鼠标位置所在的K线数据
|
|
6512
6513
|
{if(this.LastShowData)return this.LastShowData;if(this.CursorIndex==null||!this.Data)return null;if(this.Data.length<=0)return null;var index=Math.abs(this.CursorIndex);index=parseInt(index.toFixed(0));var dataIndex=this.Data.DataOffset+index;if(dataIndex>=this.Data.Data.length)dataIndex=this.Data.Data.length-1;if(dataIndex<0)return null;var item=this.Data.Data[dataIndex];return item;};this.GetCurrentAuctionData=function()//获取当前鼠标所在位置的盘前盘后数据
|
|
6513
6514
|
{var isHScreen=this.Frame.IsHScreen===true;//空数据 返回坐标信息
|
|
@@ -6524,7 +6525,9 @@ if(isLastOne&&this.ShowLastDataFormat==1){if(this.Data&&this.Data.UpdateTime&&IF
|
|
|
6524
6525
|
{var strDate=null,strTime=null,text=null;if(this.IsShowDate)strDate=IFrameSplitOperator.FormatDateString(item.Date,"YYYY-MM-DD");if(this.IsShowTime)strTime=IFrameSplitOperator.FormatTimeString(item.Time,this.TimeFormat);if(strDate&&strTime)text=strDate+' '+strTime;else if(strDate)text=strDate;else if(strTime)text=strTime;if(text)aryText.push({Text:text,Color:this.DateTimeColor});}else{var text=IFrameSplitOperator.FormatDateTimeString(item.DateTime,this.IsShowDate,this.IsShowTime);aryText.push({Text:text,Color:this.DateTimeColor});}}}var close=item.Close;var increase=item.Increase;var vol=item.Vol;var amount=item.Amount;var yClose=item.YClose;if(!IFrameSplitOperator.IsNumber(yClose))yClose=this.YClose;if(isFutures&&IFrameSplitOperator.IsNumber(item.YClearing))yClose=item.YClearing;//期货使用昨结算
|
|
6525
6526
|
if(IFrameSplitOperator.IsNumber(close)){var color=this.GetColor(close,yClose);var text=g_JSChartLocalization.GetText('MTitle-Close',this.LanguageID)+close.toFixed(defaultfloatPrecision);aryText.push({Text:text,Color:color});}if(IFrameSplitOperator.IsNumber(increase)){var color=this.GetColor(increase,0);var text=g_JSChartLocalization.GetText('MTitle-Increase',this.LanguageID)+increase.toFixed(2)+'%';aryText.push({Text:text,Color:color});}var isShowAvPrice=true;var upperSymbol=this.Symbol.toUpperCase();if(MARKET_SUFFIX_NAME.IsET(upperSymbol)&&!MARKET_SUFFIX_NAME.IsETShowAvPrice(upperSymbol))isShowAvPrice=false;else if(MARKET_SUFFIX_NAME.IsShowAvPrice&&!MARKET_SUFFIX_NAME.IsShowAvPrice(upperSymbol))isShowAvPrice=false;if(IFrameSplitOperator.IsNumber(item.AvPrice)&&isShowAvPrice&&this.IsShowAveragePrice){var color=this.GetColor(item.AvPrice,yClose);var text=g_JSChartLocalization.GetText('MTitle-AvPrice',this.LanguageID)+item.AvPrice.toFixed(defaultfloatPrecision);aryText.push({Text:text,Color:color});}if(IFrameSplitOperator.IsNumber(vol)){var text=g_JSChartLocalization.GetText('MTitle-Vol',this.LanguageID)+IFrameSplitOperator.FromatIntegerString(vol/unit,2,this.LanguageID);aryText.push({Text:text,Color:this.VolColor});}if(IFrameSplitOperator.IsNumber(amount)){var text=g_JSChartLocalization.GetText('MTitle-Amount',this.LanguageID)+IFrameSplitOperator.FormatValueString(amount,2,this.LanguageID);aryText.push({Text:text,Color:this.AmountColor});}if(IFrameSplitOperator.IsNumber(item.Position)){var text=g_JSChartLocalization.GetText('MTitle-Position',this.LanguageID)+IFrameSplitOperator.FromatIntegerString(item.Position,2,this.LanguageID);aryText.push({Text:text,Color:this.VolColor});}if(isLastOne&&this.ShowLastDataFormat==0)//显示数据最后的更新时间
|
|
6526
6527
|
{if(this.Data&&this.Data.UpdateTime&&IFrameSplitOperator.IsNumber(this.Data.UpdateTime.Date)&&IFrameSplitOperator.IsNumber(this.Data.UpdateTime.Time)){var text=g_JSChartLocalization.GetText('MTitle-UpdateTime',this.LanguageID)+IFrameSplitOperator.FormatTimeString(this.Data.UpdateTime.Time,"HH:MM:SS");aryText.push({Text:text,Color:this.DateTimeColor});}}//叠加股票的名字
|
|
6527
|
-
if(IFrameSplitOperator.IsNonEmptyArray(this.OverlayChartPaint)){for(var i=0;i<this.OverlayChartPaint.length;++i){var
|
|
6528
|
+
if(IFrameSplitOperator.IsNonEmptyArray(this.OverlayChartPaint)){for(var i=0;i<this.OverlayChartPaint.length;++i){var overlayItem=this.OverlayChartPaint[i];if(!overlayItem.Symbol||!overlayItem.Title)continue;var clrText=overlayItem.Color;var text=''+overlayItem.Title;var arySubText=[{Text:"[",Color:clrText}];arySubText.push({Text:text,Color:clrText});//分钟数据
|
|
6529
|
+
if(IFrameSplitOperator.IsNonEmptyArray(this.AryOverlayTitleName)){var minItem=this.GetMinuteItemByDateTime(overlayItem.Data,{Date:item.Date,Time:item.Time});if(minItem){var dec=GetfloatPrecision(overlayItem.Symbol);//价格小数位数
|
|
6530
|
+
for(var j=0;j<this.AryOverlayTitleName.length;++j){var titleName=this.AryOverlayTitleName[j];if(titleName=="MTitle-Close"){if(IFrameSplitOperator.IsNumber(minItem.Close)&&IFrameSplitOperator.IsNumber(minItem.YClose))var color=this.GetColor(minItem.Close,minItem.YClose);var text=g_JSChartLocalization.GetText(titleName,this.LanguageID)+minItem.Close.toFixed(dec);arySubText.push({Text:text,Color:color});}else if(titleName="MTitle-Increase"){if(IFrameSplitOperator.IsNumber(minItem.Increase)){var color=this.GetColor(minItem.Increase,0);var text=g_JSChartLocalization.GetText(titleName,this.LanguageID)+minItem.Increase.toFixed(2)+'%';arySubText.push({Text:text,Color:color});}}}}}arySubText.push({Text:"]",Color:clrText});aryText.push.apply(aryText,arySubText);}}return{AryText:aryText};};this.GetMinuteItemByDateTime=function(data,dateTime){if(!dateTime||!data||!IFrameSplitOperator.IsNonEmptyArray(data.Data))return null;for(var i=0;i<data.Data.length;++i){var item=data.Data[i];if(item.Date===dateTime.Date&&item.Time===dateTime.Time){return item;}}return null;};this.DrawItem=function(item,isLastOne)//isLastOne 是否是最后一个数据
|
|
6528
6531
|
{if(!item)return;var pixelRatio=GetDevicePixelRatio();var isHScreen=this.Frame.IsHScreen===true;var border=this.Frame.GetBorder();var left=this.GetLeft(isHScreen);var right=this.GetRight(isHScreen);var bottom=this.GetBottom(isHScreen);if(isHScreen){if(this.Frame.ChartBorder.Right<5*pixelRatio)return;var xText=bottom;var yText=left;this.Canvas.translate(xText,yText);this.Canvas.rotate(90*Math.PI/180);left=bottom=0;//旋转以后 位置调整0
|
|
6529
6532
|
}else{if(this.Frame.ChartBorder.Top<5*pixelRatio)return;}this.Canvas.font=this.Font;this.Canvas.textAlign="left";this.Canvas.textBaseline="bottom";var position={Left:left,MaxRight:right,Bottom:bottom,IsHScreen:isHScreen};var titleData=this.GetFormatTitle({Data:item,IsLastOne:isLastOne});if(titleData&&IFrameSplitOperator.IsNonEmptyArray(titleData.AryText)){for(var i=0;i<titleData.AryText.length;++i){var item=titleData.AryText[i];if(!this.DrawText(item.Text,item.Color,position))break;}}};//盘前 盘后数据格式化
|
|
6530
6533
|
this.FormatCallAuctionTitle=function(data){var aryText=[];//{ Color: Text: }
|
|
@@ -9335,7 +9338,8 @@ frame.YSpecificMaxMin=null;frame.YSplitScale=null;}if(currentLength>count){var e
|
|
|
9335
9338
|
{this.WindowIndex[windowIndex]=new ScriptIndex(item.Name,item.Script,item.Args,item);//脚本执行
|
|
9336
9339
|
}else if(item.API)//后台指标
|
|
9337
9340
|
{var apiItem=item.API;this.WindowIndex[windowIndex]=new APIScriptIndex(apiItem.Name,apiItem.Script,apiItem.Args,item);}else{var indexID=item.Index;var indexItem=JSIndexMap.Get(indexID);if(indexItem){this.WindowIndex[windowIndex]=indexItem.Create();this.CreateWindowIndex(windowIndex);}else{var systemScript=new JSIndexScript();var indexInfo=systemScript.Get(indexID);if(indexInfo){JSIndexScript.ModifyAttribute(indexInfo,item);this.WindowIndex[windowIndex]=new ScriptIndex(indexInfo.Name,indexInfo.Script,indexInfo.Args,indexInfo);//脚本执行
|
|
9338
|
-
}}}}this.
|
|
9341
|
+
}}}}else{this.WindowIndex[windowIndex]=null;//清空指标
|
|
9342
|
+
}this.SetSubFrameAttribute(this.Frame.SubFrame[windowIndex],item,frameItem);if(item)this.UpdateIndexTemporaryAttribute(windowIndex,item.AryTemporaryAttribute);//指标临时属性
|
|
9339
9343
|
}//清空叠加指标
|
|
9340
9344
|
for(var i=0;i<this.Frame.SubFrame.length;++i){this.DeleteWindowsOverlayIndex(i);}//最后一个显示X轴坐标
|
|
9341
9345
|
for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i].Frame;if(i==this.Frame.SubFrame.length-1)item.XSplitOperator.ShowText=true;else item.XSplitOperator.ShowText=false;}//叠加指标
|
|
@@ -12969,7 +12973,7 @@ else hqDataType=HQ_DATA_TYPE.MINUTE_ID;//分钟数据
|
|
|
12969
12973
|
{if(hqChart.ChartPaint[0]){var item=hqChart.ChartPaint[0];if(item&&item.DrawKRange)option.DrawInfo={Start:item.DrawKRange.Start,End:item.DrawKRange.End};}}if(hqDataType===HQ_DATA_TYPE.HISTORY_MINUTE_ID)option.TrateDate=hqChart.TradeDate;if(hqDataType===HQ_DATA_TYPE.MULTIDAY_MINUTE_ID)option.DayCount=hqChart.DayCount;if(hqChart.NetworkFilter)option.NetworkFilter=hqChart.NetworkFilter;if(this.Condition&&!this.IsMeetCondition(param,option)){this.ShowConditionError(param,this.Condition.Message);return;}function _Temp_ExecuteScript(){++self.RunCount;var code=self.Script;var run=JSComplier.Execute(code,option,hqChart.ScriptErrorCallback);}if(this.IsAuthorization===true&&this.RunCount===0)//权限认证 执行一次
|
|
12970
12974
|
{this.RequestAuthorization(hqChart,function(){_Temp_ExecuteScript();});}else{_Temp_ExecuteScript();}};//是否符合限制条件
|
|
12971
12975
|
this.IsMeetCondition=function(param,option){JSConsole.Complier.Log('[ScriptIndex::IsMeetCondition] ',this.Condition);if(this.Condition.Period)//周期是否满足
|
|
12972
|
-
{if(!this.IsMeetPeriodCondition(param,option))return false;if(!this.IsMeetIncludeCondition(param,option))return false;}return true;};this.RequestAuthorization=function(hqChart,callback){var _this60=this;var reqData={IndexName:this.Name,IndexID:this.ID,IsOverlayIndex:this.IsOverlayIndex===true};var obj={Name:'ScriptIndex::RequestAuthorization',//类名::
|
|
12976
|
+
{if(!this.IsMeetPeriodCondition(param,option))return false;if(!this.IsMeetIncludeCondition(param,option))return false;}return true;};this.RequestAuthorization=function(hqChart,callback){var _this60=this;var reqData={IndexName:this.Name,IndexID:this.ID,IsOverlayIndex:this.IsOverlayIndex===true,Symbol:hqChart.Symbol};var obj={Name:'ScriptIndex::RequestAuthorization',//类名::
|
|
12973
12977
|
Explain:'指标权限验证',Request:{Data:reqData},Self:this,HQChart:hqChart,PreventDefault:false};if(hqChart.NetworkFilter){hqChart.NetworkFilter(obj,function(data){_this60.OnRecvAuthorization(data);callback();});}else{JSConsole.JSComplier.Warn("[ScriptIndex::RequestData] NetworkFilter error.");}};this.OnRecvAuthorization=function(recv){if(recv&&recv.Lock)this.SetLock(recv.Lock);};//周期是否满足条件
|
|
12974
12978
|
this.IsMeetPeriodCondition=function(param,option){if(!this.Condition.Period)return true;for(var i in this.Condition.Period){var item=this.Condition.Period[i];switch(item){case CONDITION_PERIOD.MINUTE_ID:if(option.HQDataType==HQ_DATA_TYPE.MINUTE_ID)return true;break;case CONDITION_PERIOD.MULTIDAY_MINUTE_ID:if(option.HQDataType==HQ_DATA_TYPE.MULTIDAY_MINUTE_ID)return true;break;case CONDITION_PERIOD.KLINE_DAY_ID:case CONDITION_PERIOD.KLINE_WEEK_ID:case CONDITION_PERIOD.KLINE_MONTH_ID:case CONDITION_PERIOD.KLINE_YEAR_ID:case CONDITION_PERIOD.KLINE_TWOWEEK_ID:case CONDITION_PERIOD.KLINE_QUARTER_ID:case CONDITION_PERIOD.KLINE_MINUTE_ID:case CONDITION_PERIOD.KLINE_5_MINUTE_ID:case CONDITION_PERIOD.KLINE_15_MINUTE_ID:case CONDITION_PERIOD.KLINE_30_MINUTE_ID:case CONDITION_PERIOD.KLINE_60_MINUTE_ID:if(param.HQChart.Period==item)return true;break;}}return false;};this.IsMeetIncludeCondition=function(param,option){if(!this.Condition.Include||this.Condition.Include.length<=0)return true;var symbol=param.HQChart.Symbol;if(symbol)symbol=symbol.toUpperCase();for(var i in this.Condition.Include){var item=this.Condition.Include[i];if(symbol==item)return true;}return false;};//显示指标不符合条件
|
|
12975
12979
|
this.ShowConditionError=function(param,msg){var hqChart=param.HQChart;var windowIndex=param.WindowIndex;hqChart.DeleteIndexPaint(windowIndex);if(windowIndex==0)hqChart.ShowKLine(true);var message='指标不支持当前品种或周期';if(msg)message=msg;var line=new ChartLine();line.Canvas=hqChart.Canvas;line.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;line.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;line.NotSupportMessage=message;hqChart.ChartPaint.push(line);hqChart.UpdataDataoffset();//更新数据偏移
|
|
@@ -13223,7 +13227,9 @@ var hqDataType=HQ_DATA_TYPE.KLINE_ID;//默认K线
|
|
|
13223
13227
|
var dateRange=null;if(hqChart.ClassName==='MinuteChartContainer'||hqChart.ClassName==='MinuteChartHScreenContainer'){if(hqChart.DayCount>1)hqDataType=HQ_DATA_TYPE.MULTIDAY_MINUTE_ID;//多日分钟
|
|
13224
13228
|
else hqDataType=HQ_DATA_TYPE.MINUTE_ID;//分钟数据
|
|
13225
13229
|
dateRange=hisData.GetDateRange();}else if(hqChart.ClassName==='HistoryMinuteChartContainer'){hqDataType=HQ_DATA_TYPE.HISTORY_MINUTE_ID;//历史分钟
|
|
13226
|
-
}else{dateRange=hisData.GetDateRange();}var args=[];if(this.Arguments){for(var i in this.Arguments){var item=this.Arguments[i];args.push({name:item.Name,value:item.Value});}}var requestCount;if(hqChart.GetRequestDataCount)requestCount=hqChart.GetRequestDataCount();var self=this;var postData={indexname:this.ID,symbol:hqChart.Symbol,script:this.Script,args:args,period:hqChart.Period,right:hqChart.Right,hqdatatype:hqDataType,IsAuthorization:this.IsAuthorization
|
|
13230
|
+
}else{dateRange=hisData.GetDateRange();}var args=[];if(this.Arguments){for(var i in this.Arguments){var item=this.Arguments[i];args.push({name:item.Name,value:item.Value});}}var requestCount;if(hqChart.GetRequestDataCount)requestCount=hqChart.GetRequestDataCount();var self=this;var postData={indexname:this.ID,symbol:hqChart.Symbol,script:this.Script,args:args,period:hqChart.Period,right:hqChart.Right,hqdatatype:hqDataType,IsAuthorization:this.IsAuthorization,//是否需要鉴权
|
|
13231
|
+
IsFirst:this.RunCount===0,//指标是否首次请求数据
|
|
13232
|
+
WindowID:windowIndex,IsOverlayIndex:this.IsOverlayIndex===true};if(dateRange)postData.DateRange=dateRange;if(requestCount){postData.maxdatacount=requestCount.MaxRequestDataCount;postData.maxminutedaycount=requestCount.MaxRequestMinuteDayCount;}if(hqDataType==HQ_DATA_TYPE.MULTIDAY_MINUTE_ID||hqDataType==HQ_DATA_TYPE.MINUTE_ID)postData.daycount=hqChart.DayCount;this.HQDataType=hqDataType;++this.RunCount;if(hqChart.NetworkFilter){var obj={Name:'APIScriptIndex::ExecuteScript',//类名::
|
|
13227
13233
|
Explain:'指标计算',Request:{Url:self.ApiUrl,Type:'POST',Data:postData},Self:this,HQChart:hqChart,PreventDefault:false};hqChart.NetworkFilter(obj,function(data){if(self.Version==2)self.RecvAPIData2(data,hqChart,windowIndex,hisData);else self.RecvAPIData(data,hqChart,windowIndex,hisData);});if(obj.PreventDefault==true)return;//已被上层替换,不调用默认的网络请求
|
|
13228
13234
|
}JSNetwork.HttpRequest({url:self.ApiUrl,data:postData,type:"post",dataType:"json",async:true,success:function success(recvData){self.RecvAPIData(recvData,hqChart,windowIndex,hisData);},error:function error(request){self.RecvError(request);}});};//py 后台指标计算格式
|
|
13229
13235
|
this.RecvAPIData2=function(data,hqChart,windowIndex,hisData){JSConsole.Complier.Log('[APIScriptIndex::RecvAPIData2] recv data ',this.Name,data);//if (data.code!=0) return;
|
|
@@ -16320,7 +16326,7 @@ if(this.MouseOnItem){if(this.MouseOnItem.Data==item)color=this.TextConfig.MouseO
|
|
|
16320
16326
|
*/this.Canvas.restore();this.ResizeDataCount(endIndex);};this.ResizeDataCount=function(startIndex){if(!IFrameSplitOperator.IsNumber(startIndex))return;if(startIndex<=0)return;if(this.LimitCount<=0)return;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.AryText))return;if(this.Data.AryText.length<=this.LimitCount)return;var delCount=this.Data.AryText.length-this.LimitCount;for(var i=0;i<delCount&&i<startIndex;++i){this.Data.AryText.shift();}};this.GetTooltipData=function(x,y,tooltip){var rtClient=this.GetClientRect();if(x>=rtClient.Left&&x<=rtClient.Right){for(var i=0;i<this.AryRect.length;++i){var item=this.AryRect[i];if(Path2DHelper.PtInRect(x,y,item.Rect)){tooltip.Data=item;tooltip.ChartPaint=this;tooltip.Type=1;return true;}}}return false;};this.ScrollStep=function(defaultStep){if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.AryText))return false;if(!this.FirstItem)return false;var moveStep=this.MoveStep;if(IFrameSplitOperator.IsNumber(defaultStep))moveStep=defaultStep;var rtClient=this.GetClientRect();var left=rtClient.Left;var right=rtClient.Right;var width=this.FirstItem.Move.Width;var xOffset=this.FirstItem.Move.XOffset+moveStep;if(right-xOffset+width<left){var startIndex=this.GetDataIndex(this.FirstItem);nextIndex=startIndex-1;if(nextIndex<0){var index=this.Data.AryText.length-1;this.FirstItem=this.Data.AryText[index];this.FirstItem.Move={XOffset:0};}else{this.FirstItem=this.Data.AryText[nextIndex];this.FirstItem.Move={XOffset:xOffset-width};}}else{this.FirstItem.Move.XOffset=xOffset;}return true;};}/********************************************************************************
|
|
16321
16327
|
* 版本信息输出
|
|
16322
16328
|
*
|
|
16323
|
-
*/var HQCHART_VERSION="1.1.
|
|
16329
|
+
*/var HQCHART_VERSION="1.1.15718";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();//把给外界调用的方法暴露出来
|
|
16324
16330
|
exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
|
|
16325
16331
|
// BaseIndex:BaseIndex,
|
|
16326
16332
|
// ChartLine:ChartLine,
|
package/package.json
CHANGED
|
@@ -59509,6 +59509,7 @@ HQData.APIIndex_PARTLINE=function(data, callback)
|
|
|
59509
59509
|
var hqchart=data.HQChart;
|
|
59510
59510
|
var kData=hqchart.GetKData();
|
|
59511
59511
|
var bAuthorization=data.Request.Data.IsAuthorization;
|
|
59512
|
+
var bFirst=data.Request.Data.IsFirst;
|
|
59512
59513
|
|
|
59513
59514
|
var lineData=
|
|
59514
59515
|
{
|
|
@@ -59544,7 +59545,7 @@ HQData.APIIndex_PARTLINE=function(data, callback)
|
|
|
59544
59545
|
outdata: { date:kData.GetDate(), time:kData.GetTime(), outvar:[lineData] }
|
|
59545
59546
|
};
|
|
59546
59547
|
|
|
59547
|
-
if (bAuthorization)
|
|
59548
|
+
if (bAuthorization && bFirst) //首次请求鉴权
|
|
59548
59549
|
{
|
|
59549
59550
|
apiData.Lock={ IsLocked:true };
|
|
59550
59551
|
}
|
|
@@ -60927,6 +60928,7 @@ HQData.Request_IndexAuthorization=function(data, callback)
|
|
|
60927
60928
|
Lock:
|
|
60928
60929
|
{
|
|
60929
60930
|
IsLocked:true,
|
|
60931
|
+
IsFullFrame:true,
|
|
60930
60932
|
//Text:""
|
|
60931
60933
|
//BG: ['rgba(245,245,220, 0.5)', "rgb(100,255,100)"], //锁区域背景色
|
|
60932
60934
|
/*
|
|
@@ -21085,7 +21085,7 @@ function ScriptIndex(name,script,args,option)
|
|
|
21085
21085
|
|
|
21086
21086
|
this.RequestAuthorization=function(hqChart, callback)
|
|
21087
21087
|
{
|
|
21088
|
-
var reqData={ IndexName:this.Name, IndexID:this.ID, IsOverlayIndex:this.IsOverlayIndex===true };
|
|
21088
|
+
var reqData={ IndexName:this.Name, IndexID:this.ID, IsOverlayIndex:this.IsOverlayIndex===true, Symbol:hqChart.Symbol };
|
|
21089
21089
|
|
|
21090
21090
|
var obj=
|
|
21091
21091
|
{
|
|
@@ -25480,7 +25480,9 @@ function APIScriptIndex(name,script,args,option, isOverlay)
|
|
|
25480
25480
|
{
|
|
25481
25481
|
indexname:this.ID, symbol: hqChart.Symbol, script:this.Script, args:args,
|
|
25482
25482
|
period:hqChart.Period, right:hqChart.Right, hqdatatype: hqDataType,
|
|
25483
|
-
IsAuthorization:this.IsAuthorization,
|
|
25483
|
+
IsAuthorization:this.IsAuthorization, //是否需要鉴权
|
|
25484
|
+
IsFirst:this.RunCount===0, //指标是否首次请求数据
|
|
25485
|
+
WindowID:windowIndex,
|
|
25484
25486
|
IsOverlayIndex:this.IsOverlayIndex===true,
|
|
25485
25487
|
};
|
|
25486
25488
|
|
package/src/jscommon/umychart.js
CHANGED
|
@@ -1166,6 +1166,8 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
1166
1166
|
if (IFrameSplitOperator.IsNumber(subItem.Margin.Bottom)) chartTitle.ShowPositionConfig.Margin.Bottom=subItem.Margin.Bottom;
|
|
1167
1167
|
}
|
|
1168
1168
|
}
|
|
1169
|
+
|
|
1170
|
+
if (IFrameSplitOperator.IsNonEmptyArray(item.OverlayTitleName)) chartTitle.AryOverlayTitleName=item.OverlayTitleName.slice();
|
|
1169
1171
|
}
|
|
1170
1172
|
|
|
1171
1173
|
if (IFrameSplitOperator.IsBool(option.CorssCursorTouchEnd)) chart.CorssCursorTouchEnd = option.CorssCursorTouchEnd;
|
|
@@ -4421,7 +4423,11 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
4421
4423
|
if (this.TryClickLock)
|
|
4422
4424
|
{
|
|
4423
4425
|
//JSConsole.Chart.Log('[uielement.onmousedown] left, top ',e.clientX, e.clientY, this.getBoundingClientRect().left,this.getBoundingClientRect().top);
|
|
4424
|
-
if (this.TryClickLock(x,y))
|
|
4426
|
+
if (this.TryClickLock(x,y))
|
|
4427
|
+
{
|
|
4428
|
+
this.IsOnTouch=false;
|
|
4429
|
+
return;
|
|
4430
|
+
}
|
|
4425
4431
|
}
|
|
4426
4432
|
|
|
4427
4433
|
this.HideSelectRect();
|
|
@@ -11458,8 +11464,9 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
11458
11464
|
var item=this.WindowIndex[i];
|
|
11459
11465
|
if (!item) continue;
|
|
11460
11466
|
|
|
11461
|
-
var info={ Name:item.Name, WindowIndex:i, IsOverlay:false };
|
|
11467
|
+
var info={ Name:item.Name, WindowIndex:i, IsOverlay:false, IsAuthorization:item.IsAuthorization };
|
|
11462
11468
|
if (item.ID) info.ID=item.ID;
|
|
11469
|
+
if (item.ClassName=="APIScriptIndex") info.API={ Url:item.ApiUrl, Name:item.Name, ID:item.ID };
|
|
11463
11470
|
if (IFrameSplitOperator.IsNonEmptyArray(item.Arguments)) //参数
|
|
11464
11471
|
{
|
|
11465
11472
|
info.Args=[];
|
|
@@ -11468,6 +11475,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
11468
11475
|
var argItem=item.Arguments[j];
|
|
11469
11476
|
info.Args.push( { Name:argItem.Name, Value:argItem.Value} );
|
|
11470
11477
|
}
|
|
11478
|
+
|
|
11479
|
+
if (info.API) info.API.Args=info.Args;
|
|
11471
11480
|
}
|
|
11472
11481
|
|
|
11473
11482
|
aryIndex.push(info);
|
|
@@ -11491,8 +11500,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
11491
11500
|
var overlayItem=item.OverlayIndex[j];
|
|
11492
11501
|
if (!overlayItem.Script) continue;
|
|
11493
11502
|
var indexData=overlayItem.Script;
|
|
11494
|
-
var info={ Name:indexData.Name, ID:indexData.ID, WindowIndex:i, IsOverlay:true, Identify:overlayItem.Identify };
|
|
11495
|
-
|
|
11503
|
+
var info={ Name:indexData.Name, ID:indexData.ID, WindowIndex:i, IsOverlay:true, Identify:overlayItem.Identify, IsAuthorization:indexData.IsAuthorization };
|
|
11504
|
+
if (indexData.ClassName=="APIScriptIndex") info.API={ Url:indexData.ApiUrl, Name:indexData.Name, ID:indexData.ID };
|
|
11496
11505
|
if (IFrameSplitOperator.IsNonEmptyArray(indexData.Arguments)) //参数
|
|
11497
11506
|
{
|
|
11498
11507
|
info.Args=[];
|
|
@@ -11501,6 +11510,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
11501
11510
|
var argItem=indexData.Arguments[k];
|
|
11502
11511
|
info.Args.push( { Name:argItem.Name, Value:argItem.Value} );
|
|
11503
11512
|
}
|
|
11513
|
+
|
|
11514
|
+
if (info.API) info.API.Args=info.Args;
|
|
11504
11515
|
}
|
|
11505
11516
|
|
|
11506
11517
|
aryIndex.push(info);
|
|
@@ -64358,6 +64369,7 @@ function DynamicMinuteTitlePainting()
|
|
|
64358
64369
|
this.MultiDayAfterCloseData; //多日分时图 收盘数据
|
|
64359
64370
|
|
|
64360
64371
|
this.TimeFormat; //显示时间格式 "HH:MM:SS", "hh:MM", "HH:MM:SS.fff"
|
|
64372
|
+
this.AryOverlayTitleName=[]; //["MTitle-Close", "MTitle-Increase"];
|
|
64361
64373
|
|
|
64362
64374
|
|
|
64363
64375
|
this.CallAuctionShowTitle=new Set(
|
|
@@ -64651,20 +64663,71 @@ function DynamicMinuteTitlePainting()
|
|
|
64651
64663
|
{
|
|
64652
64664
|
for(var i=0; i<this.OverlayChartPaint.length; ++i)
|
|
64653
64665
|
{
|
|
64654
|
-
var
|
|
64655
|
-
if (!
|
|
64666
|
+
var overlayItem=this.OverlayChartPaint[i];
|
|
64667
|
+
if (!overlayItem.Symbol || !overlayItem.Title) continue;
|
|
64656
64668
|
|
|
64657
|
-
var clrText=
|
|
64658
|
-
var text
|
|
64669
|
+
var clrText=overlayItem.Color;
|
|
64670
|
+
var text=`${overlayItem.Title}`;
|
|
64671
|
+
|
|
64672
|
+
var arySubText=[{Text:"[", Color:clrText}];
|
|
64673
|
+
|
|
64674
|
+
arySubText.push({Text:text, Color:clrText});
|
|
64675
|
+
|
|
64676
|
+
//分钟数据
|
|
64677
|
+
if (IFrameSplitOperator.IsNonEmptyArray(this.AryOverlayTitleName))
|
|
64678
|
+
{
|
|
64679
|
+
var minItem=this.GetMinuteItemByDateTime(overlayItem.Data, { Date:item.Date, Time:item.Time});
|
|
64680
|
+
if (minItem)
|
|
64681
|
+
{
|
|
64682
|
+
var dec=GetfloatPrecision(overlayItem.Symbol); //价格小数位数
|
|
64683
|
+
for(var j=0;j<this.AryOverlayTitleName.length;++j)
|
|
64684
|
+
{
|
|
64685
|
+
var titleName=this.AryOverlayTitleName[j];
|
|
64686
|
+
if (titleName=="MTitle-Close")
|
|
64687
|
+
{
|
|
64688
|
+
if (IFrameSplitOperator.IsNumber(minItem.Close) && IFrameSplitOperator.IsNumber(minItem.YClose))
|
|
64689
|
+
var color=this.GetColor(minItem.Close,minItem.YClose);
|
|
64690
|
+
var text=g_JSChartLocalization.GetText(titleName,this.LanguageID)+minItem.Close.toFixed(dec);
|
|
64691
|
+
arySubText.push({Text:text, Color:color});
|
|
64692
|
+
}
|
|
64693
|
+
else if (titleName="MTitle-Increase")
|
|
64694
|
+
{
|
|
64695
|
+
if (IFrameSplitOperator.IsNumber(minItem.Increase))
|
|
64696
|
+
{
|
|
64697
|
+
var color=this.GetColor(minItem.Increase,0);
|
|
64698
|
+
var text=g_JSChartLocalization.GetText(titleName,this.LanguageID)+minItem.Increase.toFixed(2)+'%';
|
|
64699
|
+
arySubText.push({Text:text, Color:color});
|
|
64700
|
+
}
|
|
64701
|
+
}
|
|
64702
|
+
}
|
|
64703
|
+
}
|
|
64704
|
+
}
|
|
64705
|
+
|
|
64706
|
+
arySubText.push({Text:"]", Color:clrText});
|
|
64659
64707
|
|
|
64660
|
-
aryText.push(
|
|
64708
|
+
aryText.push(...arySubText);
|
|
64661
64709
|
}
|
|
64662
64710
|
}
|
|
64663
64711
|
|
|
64664
|
-
|
|
64665
64712
|
return { AryText:aryText };
|
|
64666
64713
|
}
|
|
64667
64714
|
|
|
64715
|
+
this.GetMinuteItemByDateTime=function(data, dateTime)
|
|
64716
|
+
{
|
|
64717
|
+
if (!dateTime || !data || !IFrameSplitOperator.IsNonEmptyArray(data.Data)) return null;
|
|
64718
|
+
|
|
64719
|
+
for(var i=0;i<data.Data.length;++i)
|
|
64720
|
+
{
|
|
64721
|
+
var item=data.Data[i];
|
|
64722
|
+
if (item.Date===dateTime.Date && item.Time===dateTime.Time)
|
|
64723
|
+
{
|
|
64724
|
+
return item;
|
|
64725
|
+
}
|
|
64726
|
+
}
|
|
64727
|
+
|
|
64728
|
+
return null;
|
|
64729
|
+
}
|
|
64730
|
+
|
|
64668
64731
|
this.DrawItem=function(item, isLastOne) //isLastOne 是否是最后一个数据
|
|
64669
64732
|
{
|
|
64670
64733
|
if (!item) return;
|
|
@@ -96571,6 +96634,10 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
96571
96634
|
}
|
|
96572
96635
|
}
|
|
96573
96636
|
}
|
|
96637
|
+
else
|
|
96638
|
+
{
|
|
96639
|
+
this.WindowIndex[windowIndex]=null; //清空指标
|
|
96640
|
+
}
|
|
96574
96641
|
|
|
96575
96642
|
this.SetSubFrameAttribute(this.Frame.SubFrame[windowIndex], item, frameItem);
|
|
96576
96643
|
if (item) this.UpdateIndexTemporaryAttribute(windowIndex, item.AryTemporaryAttribute); //指标临时属性
|
|
@@ -3995,6 +3995,7 @@ HQData.APIIndex_PARTLINE=function(data, callback)
|
|
|
3995
3995
|
var hqchart=data.HQChart;
|
|
3996
3996
|
var kData=hqchart.GetKData();
|
|
3997
3997
|
var bAuthorization=data.Request.Data.IsAuthorization;
|
|
3998
|
+
var bFirst=data.Request.Data.IsFirst;
|
|
3998
3999
|
|
|
3999
4000
|
var lineData=
|
|
4000
4001
|
{
|
|
@@ -4030,7 +4031,7 @@ HQData.APIIndex_PARTLINE=function(data, callback)
|
|
|
4030
4031
|
outdata: { date:kData.GetDate(), time:kData.GetTime(), outvar:[lineData] }
|
|
4031
4032
|
};
|
|
4032
4033
|
|
|
4033
|
-
if (bAuthorization)
|
|
4034
|
+
if (bAuthorization && bFirst) //首次请求鉴权
|
|
4034
4035
|
{
|
|
4035
4036
|
apiData.Lock={ IsLocked:true };
|
|
4036
4037
|
}
|
|
@@ -5413,6 +5414,7 @@ HQData.Request_IndexAuthorization=function(data, callback)
|
|
|
5413
5414
|
Lock:
|
|
5414
5415
|
{
|
|
5415
5416
|
IsLocked:true,
|
|
5417
|
+
IsFullFrame:true,
|
|
5416
5418
|
//Text:""
|
|
5417
5419
|
//BG: ['rgba(245,245,220, 0.5)', "rgb(100,255,100)"], //锁区域背景色
|
|
5418
5420
|
/*
|
|
@@ -5264,6 +5264,8 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
5264
5264
|
if (IFrameSplitOperator.IsNumber(subItem.Margin.Bottom)) chartTitle.ShowPositionConfig.Margin.Bottom=subItem.Margin.Bottom;
|
|
5265
5265
|
}
|
|
5266
5266
|
}
|
|
5267
|
+
|
|
5268
|
+
if (IFrameSplitOperator.IsNonEmptyArray(item.OverlayTitleName)) chartTitle.AryOverlayTitleName=item.OverlayTitleName.slice();
|
|
5267
5269
|
}
|
|
5268
5270
|
|
|
5269
5271
|
if (IFrameSplitOperator.IsBool(option.CorssCursorTouchEnd)) chart.CorssCursorTouchEnd = option.CorssCursorTouchEnd;
|
|
@@ -8519,7 +8521,11 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
8519
8521
|
if (this.TryClickLock)
|
|
8520
8522
|
{
|
|
8521
8523
|
//JSConsole.Chart.Log('[uielement.onmousedown] left, top ',e.clientX, e.clientY, this.getBoundingClientRect().left,this.getBoundingClientRect().top);
|
|
8522
|
-
if (this.TryClickLock(x,y))
|
|
8524
|
+
if (this.TryClickLock(x,y))
|
|
8525
|
+
{
|
|
8526
|
+
this.IsOnTouch=false;
|
|
8527
|
+
return;
|
|
8528
|
+
}
|
|
8523
8529
|
}
|
|
8524
8530
|
|
|
8525
8531
|
this.HideSelectRect();
|
|
@@ -15556,8 +15562,9 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
15556
15562
|
var item=this.WindowIndex[i];
|
|
15557
15563
|
if (!item) continue;
|
|
15558
15564
|
|
|
15559
|
-
var info={ Name:item.Name, WindowIndex:i, IsOverlay:false };
|
|
15565
|
+
var info={ Name:item.Name, WindowIndex:i, IsOverlay:false, IsAuthorization:item.IsAuthorization };
|
|
15560
15566
|
if (item.ID) info.ID=item.ID;
|
|
15567
|
+
if (item.ClassName=="APIScriptIndex") info.API={ Url:item.ApiUrl, Name:item.Name, ID:item.ID };
|
|
15561
15568
|
if (IFrameSplitOperator.IsNonEmptyArray(item.Arguments)) //参数
|
|
15562
15569
|
{
|
|
15563
15570
|
info.Args=[];
|
|
@@ -15566,6 +15573,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
15566
15573
|
var argItem=item.Arguments[j];
|
|
15567
15574
|
info.Args.push( { Name:argItem.Name, Value:argItem.Value} );
|
|
15568
15575
|
}
|
|
15576
|
+
|
|
15577
|
+
if (info.API) info.API.Args=info.Args;
|
|
15569
15578
|
}
|
|
15570
15579
|
|
|
15571
15580
|
aryIndex.push(info);
|
|
@@ -15589,8 +15598,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
15589
15598
|
var overlayItem=item.OverlayIndex[j];
|
|
15590
15599
|
if (!overlayItem.Script) continue;
|
|
15591
15600
|
var indexData=overlayItem.Script;
|
|
15592
|
-
var info={ Name:indexData.Name, ID:indexData.ID, WindowIndex:i, IsOverlay:true, Identify:overlayItem.Identify };
|
|
15593
|
-
|
|
15601
|
+
var info={ Name:indexData.Name, ID:indexData.ID, WindowIndex:i, IsOverlay:true, Identify:overlayItem.Identify, IsAuthorization:indexData.IsAuthorization };
|
|
15602
|
+
if (indexData.ClassName=="APIScriptIndex") info.API={ Url:indexData.ApiUrl, Name:indexData.Name, ID:indexData.ID };
|
|
15594
15603
|
if (IFrameSplitOperator.IsNonEmptyArray(indexData.Arguments)) //参数
|
|
15595
15604
|
{
|
|
15596
15605
|
info.Args=[];
|
|
@@ -15599,6 +15608,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
15599
15608
|
var argItem=indexData.Arguments[k];
|
|
15600
15609
|
info.Args.push( { Name:argItem.Name, Value:argItem.Value} );
|
|
15601
15610
|
}
|
|
15611
|
+
|
|
15612
|
+
if (info.API) info.API.Args=info.Args;
|
|
15602
15613
|
}
|
|
15603
15614
|
|
|
15604
15615
|
aryIndex.push(info);
|
|
@@ -68456,6 +68467,7 @@ function DynamicMinuteTitlePainting()
|
|
|
68456
68467
|
this.MultiDayAfterCloseData; //多日分时图 收盘数据
|
|
68457
68468
|
|
|
68458
68469
|
this.TimeFormat; //显示时间格式 "HH:MM:SS", "hh:MM", "HH:MM:SS.fff"
|
|
68470
|
+
this.AryOverlayTitleName=[]; //["MTitle-Close", "MTitle-Increase"];
|
|
68459
68471
|
|
|
68460
68472
|
|
|
68461
68473
|
this.CallAuctionShowTitle=new Set(
|
|
@@ -68749,20 +68761,71 @@ function DynamicMinuteTitlePainting()
|
|
|
68749
68761
|
{
|
|
68750
68762
|
for(var i=0; i<this.OverlayChartPaint.length; ++i)
|
|
68751
68763
|
{
|
|
68752
|
-
var
|
|
68753
|
-
if (!
|
|
68764
|
+
var overlayItem=this.OverlayChartPaint[i];
|
|
68765
|
+
if (!overlayItem.Symbol || !overlayItem.Title) continue;
|
|
68754
68766
|
|
|
68755
|
-
var clrText=
|
|
68756
|
-
var text
|
|
68767
|
+
var clrText=overlayItem.Color;
|
|
68768
|
+
var text=`${overlayItem.Title}`;
|
|
68769
|
+
|
|
68770
|
+
var arySubText=[{Text:"[", Color:clrText}];
|
|
68771
|
+
|
|
68772
|
+
arySubText.push({Text:text, Color:clrText});
|
|
68773
|
+
|
|
68774
|
+
//分钟数据
|
|
68775
|
+
if (IFrameSplitOperator.IsNonEmptyArray(this.AryOverlayTitleName))
|
|
68776
|
+
{
|
|
68777
|
+
var minItem=this.GetMinuteItemByDateTime(overlayItem.Data, { Date:item.Date, Time:item.Time});
|
|
68778
|
+
if (minItem)
|
|
68779
|
+
{
|
|
68780
|
+
var dec=GetfloatPrecision(overlayItem.Symbol); //价格小数位数
|
|
68781
|
+
for(var j=0;j<this.AryOverlayTitleName.length;++j)
|
|
68782
|
+
{
|
|
68783
|
+
var titleName=this.AryOverlayTitleName[j];
|
|
68784
|
+
if (titleName=="MTitle-Close")
|
|
68785
|
+
{
|
|
68786
|
+
if (IFrameSplitOperator.IsNumber(minItem.Close) && IFrameSplitOperator.IsNumber(minItem.YClose))
|
|
68787
|
+
var color=this.GetColor(minItem.Close,minItem.YClose);
|
|
68788
|
+
var text=g_JSChartLocalization.GetText(titleName,this.LanguageID)+minItem.Close.toFixed(dec);
|
|
68789
|
+
arySubText.push({Text:text, Color:color});
|
|
68790
|
+
}
|
|
68791
|
+
else if (titleName="MTitle-Increase")
|
|
68792
|
+
{
|
|
68793
|
+
if (IFrameSplitOperator.IsNumber(minItem.Increase))
|
|
68794
|
+
{
|
|
68795
|
+
var color=this.GetColor(minItem.Increase,0);
|
|
68796
|
+
var text=g_JSChartLocalization.GetText(titleName,this.LanguageID)+minItem.Increase.toFixed(2)+'%';
|
|
68797
|
+
arySubText.push({Text:text, Color:color});
|
|
68798
|
+
}
|
|
68799
|
+
}
|
|
68800
|
+
}
|
|
68801
|
+
}
|
|
68802
|
+
}
|
|
68803
|
+
|
|
68804
|
+
arySubText.push({Text:"]", Color:clrText});
|
|
68757
68805
|
|
|
68758
|
-
aryText.push(
|
|
68806
|
+
aryText.push(...arySubText);
|
|
68759
68807
|
}
|
|
68760
68808
|
}
|
|
68761
68809
|
|
|
68762
|
-
|
|
68763
68810
|
return { AryText:aryText };
|
|
68764
68811
|
}
|
|
68765
68812
|
|
|
68813
|
+
this.GetMinuteItemByDateTime=function(data, dateTime)
|
|
68814
|
+
{
|
|
68815
|
+
if (!dateTime || !data || !IFrameSplitOperator.IsNonEmptyArray(data.Data)) return null;
|
|
68816
|
+
|
|
68817
|
+
for(var i=0;i<data.Data.length;++i)
|
|
68818
|
+
{
|
|
68819
|
+
var item=data.Data[i];
|
|
68820
|
+
if (item.Date===dateTime.Date && item.Time===dateTime.Time)
|
|
68821
|
+
{
|
|
68822
|
+
return item;
|
|
68823
|
+
}
|
|
68824
|
+
}
|
|
68825
|
+
|
|
68826
|
+
return null;
|
|
68827
|
+
}
|
|
68828
|
+
|
|
68766
68829
|
this.DrawItem=function(item, isLastOne) //isLastOne 是否是最后一个数据
|
|
68767
68830
|
{
|
|
68768
68831
|
if (!item) return;
|
|
@@ -100669,6 +100732,10 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
100669
100732
|
}
|
|
100670
100733
|
}
|
|
100671
100734
|
}
|
|
100735
|
+
else
|
|
100736
|
+
{
|
|
100737
|
+
this.WindowIndex[windowIndex]=null; //清空指标
|
|
100738
|
+
}
|
|
100672
100739
|
|
|
100673
100740
|
this.SetSubFrameAttribute(this.Frame.SubFrame[windowIndex], item, frameItem);
|
|
100674
100741
|
if (item) this.UpdateIndexTemporaryAttribute(windowIndex, item.AryTemporaryAttribute); //指标临时属性
|
|
@@ -134705,7 +134772,7 @@ function ScriptIndex(name,script,args,option)
|
|
|
134705
134772
|
|
|
134706
134773
|
this.RequestAuthorization=function(hqChart, callback)
|
|
134707
134774
|
{
|
|
134708
|
-
var reqData={ IndexName:this.Name, IndexID:this.ID, IsOverlayIndex:this.IsOverlayIndex===true };
|
|
134775
|
+
var reqData={ IndexName:this.Name, IndexID:this.ID, IsOverlayIndex:this.IsOverlayIndex===true, Symbol:hqChart.Symbol };
|
|
134709
134776
|
|
|
134710
134777
|
var obj=
|
|
134711
134778
|
{
|
|
@@ -139100,7 +139167,9 @@ function APIScriptIndex(name,script,args,option, isOverlay)
|
|
|
139100
139167
|
{
|
|
139101
139168
|
indexname:this.ID, symbol: hqChart.Symbol, script:this.Script, args:args,
|
|
139102
139169
|
period:hqChart.Period, right:hqChart.Right, hqdatatype: hqDataType,
|
|
139103
|
-
IsAuthorization:this.IsAuthorization,
|
|
139170
|
+
IsAuthorization:this.IsAuthorization, //是否需要鉴权
|
|
139171
|
+
IsFirst:this.RunCount===0, //指标是否首次请求数据
|
|
139172
|
+
WindowID:windowIndex,
|
|
139104
139173
|
IsOverlayIndex:this.IsOverlayIndex===true,
|
|
139105
139174
|
};
|
|
139106
139175
|
|
|
@@ -159095,7 +159164,7 @@ function ScrollBarBGChart()
|
|
|
159095
159164
|
|
|
159096
159165
|
|
|
159097
159166
|
|
|
159098
|
-
var HQCHART_VERSION="1.1.
|
|
159167
|
+
var HQCHART_VERSION="1.1.15718";
|
|
159099
159168
|
|
|
159100
159169
|
function PrintHQChartVersion()
|
|
159101
159170
|
{
|
|
@@ -59527,6 +59527,7 @@ HQData.APIIndex_PARTLINE=function(data, callback)
|
|
|
59527
59527
|
var hqchart=data.HQChart;
|
|
59528
59528
|
var kData=hqchart.GetKData();
|
|
59529
59529
|
var bAuthorization=data.Request.Data.IsAuthorization;
|
|
59530
|
+
var bFirst=data.Request.Data.IsFirst;
|
|
59530
59531
|
|
|
59531
59532
|
var lineData=
|
|
59532
59533
|
{
|
|
@@ -59562,7 +59563,7 @@ HQData.APIIndex_PARTLINE=function(data, callback)
|
|
|
59562
59563
|
outdata: { date:kData.GetDate(), time:kData.GetTime(), outvar:[lineData] }
|
|
59563
59564
|
};
|
|
59564
59565
|
|
|
59565
|
-
if (bAuthorization)
|
|
59566
|
+
if (bAuthorization && bFirst) //首次请求鉴权
|
|
59566
59567
|
{
|
|
59567
59568
|
apiData.Lock={ IsLocked:true };
|
|
59568
59569
|
}
|
|
@@ -60945,6 +60946,7 @@ HQData.Request_IndexAuthorization=function(data, callback)
|
|
|
60945
60946
|
Lock:
|
|
60946
60947
|
{
|
|
60947
60948
|
IsLocked:true,
|
|
60949
|
+
IsFullFrame:true,
|
|
60948
60950
|
//Text:""
|
|
60949
60951
|
//BG: ['rgba(245,245,220, 0.5)', "rgb(100,255,100)"], //锁区域背景色
|
|
60950
60952
|
/*
|
|
@@ -5308,6 +5308,8 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
5308
5308
|
if (IFrameSplitOperator.IsNumber(subItem.Margin.Bottom)) chartTitle.ShowPositionConfig.Margin.Bottom=subItem.Margin.Bottom;
|
|
5309
5309
|
}
|
|
5310
5310
|
}
|
|
5311
|
+
|
|
5312
|
+
if (IFrameSplitOperator.IsNonEmptyArray(item.OverlayTitleName)) chartTitle.AryOverlayTitleName=item.OverlayTitleName.slice();
|
|
5311
5313
|
}
|
|
5312
5314
|
|
|
5313
5315
|
if (IFrameSplitOperator.IsBool(option.CorssCursorTouchEnd)) chart.CorssCursorTouchEnd = option.CorssCursorTouchEnd;
|
|
@@ -8563,7 +8565,11 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
8563
8565
|
if (this.TryClickLock)
|
|
8564
8566
|
{
|
|
8565
8567
|
//JSConsole.Chart.Log('[uielement.onmousedown] left, top ',e.clientX, e.clientY, this.getBoundingClientRect().left,this.getBoundingClientRect().top);
|
|
8566
|
-
if (this.TryClickLock(x,y))
|
|
8568
|
+
if (this.TryClickLock(x,y))
|
|
8569
|
+
{
|
|
8570
|
+
this.IsOnTouch=false;
|
|
8571
|
+
return;
|
|
8572
|
+
}
|
|
8567
8573
|
}
|
|
8568
8574
|
|
|
8569
8575
|
this.HideSelectRect();
|
|
@@ -15600,8 +15606,9 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
15600
15606
|
var item=this.WindowIndex[i];
|
|
15601
15607
|
if (!item) continue;
|
|
15602
15608
|
|
|
15603
|
-
var info={ Name:item.Name, WindowIndex:i, IsOverlay:false };
|
|
15609
|
+
var info={ Name:item.Name, WindowIndex:i, IsOverlay:false, IsAuthorization:item.IsAuthorization };
|
|
15604
15610
|
if (item.ID) info.ID=item.ID;
|
|
15611
|
+
if (item.ClassName=="APIScriptIndex") info.API={ Url:item.ApiUrl, Name:item.Name, ID:item.ID };
|
|
15605
15612
|
if (IFrameSplitOperator.IsNonEmptyArray(item.Arguments)) //参数
|
|
15606
15613
|
{
|
|
15607
15614
|
info.Args=[];
|
|
@@ -15610,6 +15617,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
15610
15617
|
var argItem=item.Arguments[j];
|
|
15611
15618
|
info.Args.push( { Name:argItem.Name, Value:argItem.Value} );
|
|
15612
15619
|
}
|
|
15620
|
+
|
|
15621
|
+
if (info.API) info.API.Args=info.Args;
|
|
15613
15622
|
}
|
|
15614
15623
|
|
|
15615
15624
|
aryIndex.push(info);
|
|
@@ -15633,8 +15642,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
15633
15642
|
var overlayItem=item.OverlayIndex[j];
|
|
15634
15643
|
if (!overlayItem.Script) continue;
|
|
15635
15644
|
var indexData=overlayItem.Script;
|
|
15636
|
-
var info={ Name:indexData.Name, ID:indexData.ID, WindowIndex:i, IsOverlay:true, Identify:overlayItem.Identify };
|
|
15637
|
-
|
|
15645
|
+
var info={ Name:indexData.Name, ID:indexData.ID, WindowIndex:i, IsOverlay:true, Identify:overlayItem.Identify, IsAuthorization:indexData.IsAuthorization };
|
|
15646
|
+
if (indexData.ClassName=="APIScriptIndex") info.API={ Url:indexData.ApiUrl, Name:indexData.Name, ID:indexData.ID };
|
|
15638
15647
|
if (IFrameSplitOperator.IsNonEmptyArray(indexData.Arguments)) //参数
|
|
15639
15648
|
{
|
|
15640
15649
|
info.Args=[];
|
|
@@ -15643,6 +15652,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
15643
15652
|
var argItem=indexData.Arguments[k];
|
|
15644
15653
|
info.Args.push( { Name:argItem.Name, Value:argItem.Value} );
|
|
15645
15654
|
}
|
|
15655
|
+
|
|
15656
|
+
if (info.API) info.API.Args=info.Args;
|
|
15646
15657
|
}
|
|
15647
15658
|
|
|
15648
15659
|
aryIndex.push(info);
|
|
@@ -68500,6 +68511,7 @@ function DynamicMinuteTitlePainting()
|
|
|
68500
68511
|
this.MultiDayAfterCloseData; //多日分时图 收盘数据
|
|
68501
68512
|
|
|
68502
68513
|
this.TimeFormat; //显示时间格式 "HH:MM:SS", "hh:MM", "HH:MM:SS.fff"
|
|
68514
|
+
this.AryOverlayTitleName=[]; //["MTitle-Close", "MTitle-Increase"];
|
|
68503
68515
|
|
|
68504
68516
|
|
|
68505
68517
|
this.CallAuctionShowTitle=new Set(
|
|
@@ -68793,20 +68805,71 @@ function DynamicMinuteTitlePainting()
|
|
|
68793
68805
|
{
|
|
68794
68806
|
for(var i=0; i<this.OverlayChartPaint.length; ++i)
|
|
68795
68807
|
{
|
|
68796
|
-
var
|
|
68797
|
-
if (!
|
|
68808
|
+
var overlayItem=this.OverlayChartPaint[i];
|
|
68809
|
+
if (!overlayItem.Symbol || !overlayItem.Title) continue;
|
|
68798
68810
|
|
|
68799
|
-
var clrText=
|
|
68800
|
-
var text
|
|
68811
|
+
var clrText=overlayItem.Color;
|
|
68812
|
+
var text=`${overlayItem.Title}`;
|
|
68813
|
+
|
|
68814
|
+
var arySubText=[{Text:"[", Color:clrText}];
|
|
68815
|
+
|
|
68816
|
+
arySubText.push({Text:text, Color:clrText});
|
|
68817
|
+
|
|
68818
|
+
//分钟数据
|
|
68819
|
+
if (IFrameSplitOperator.IsNonEmptyArray(this.AryOverlayTitleName))
|
|
68820
|
+
{
|
|
68821
|
+
var minItem=this.GetMinuteItemByDateTime(overlayItem.Data, { Date:item.Date, Time:item.Time});
|
|
68822
|
+
if (minItem)
|
|
68823
|
+
{
|
|
68824
|
+
var dec=GetfloatPrecision(overlayItem.Symbol); //价格小数位数
|
|
68825
|
+
for(var j=0;j<this.AryOverlayTitleName.length;++j)
|
|
68826
|
+
{
|
|
68827
|
+
var titleName=this.AryOverlayTitleName[j];
|
|
68828
|
+
if (titleName=="MTitle-Close")
|
|
68829
|
+
{
|
|
68830
|
+
if (IFrameSplitOperator.IsNumber(minItem.Close) && IFrameSplitOperator.IsNumber(minItem.YClose))
|
|
68831
|
+
var color=this.GetColor(minItem.Close,minItem.YClose);
|
|
68832
|
+
var text=g_JSChartLocalization.GetText(titleName,this.LanguageID)+minItem.Close.toFixed(dec);
|
|
68833
|
+
arySubText.push({Text:text, Color:color});
|
|
68834
|
+
}
|
|
68835
|
+
else if (titleName="MTitle-Increase")
|
|
68836
|
+
{
|
|
68837
|
+
if (IFrameSplitOperator.IsNumber(minItem.Increase))
|
|
68838
|
+
{
|
|
68839
|
+
var color=this.GetColor(minItem.Increase,0);
|
|
68840
|
+
var text=g_JSChartLocalization.GetText(titleName,this.LanguageID)+minItem.Increase.toFixed(2)+'%';
|
|
68841
|
+
arySubText.push({Text:text, Color:color});
|
|
68842
|
+
}
|
|
68843
|
+
}
|
|
68844
|
+
}
|
|
68845
|
+
}
|
|
68846
|
+
}
|
|
68847
|
+
|
|
68848
|
+
arySubText.push({Text:"]", Color:clrText});
|
|
68801
68849
|
|
|
68802
|
-
aryText.push(
|
|
68850
|
+
aryText.push(...arySubText);
|
|
68803
68851
|
}
|
|
68804
68852
|
}
|
|
68805
68853
|
|
|
68806
|
-
|
|
68807
68854
|
return { AryText:aryText };
|
|
68808
68855
|
}
|
|
68809
68856
|
|
|
68857
|
+
this.GetMinuteItemByDateTime=function(data, dateTime)
|
|
68858
|
+
{
|
|
68859
|
+
if (!dateTime || !data || !IFrameSplitOperator.IsNonEmptyArray(data.Data)) return null;
|
|
68860
|
+
|
|
68861
|
+
for(var i=0;i<data.Data.length;++i)
|
|
68862
|
+
{
|
|
68863
|
+
var item=data.Data[i];
|
|
68864
|
+
if (item.Date===dateTime.Date && item.Time===dateTime.Time)
|
|
68865
|
+
{
|
|
68866
|
+
return item;
|
|
68867
|
+
}
|
|
68868
|
+
}
|
|
68869
|
+
|
|
68870
|
+
return null;
|
|
68871
|
+
}
|
|
68872
|
+
|
|
68810
68873
|
this.DrawItem=function(item, isLastOne) //isLastOne 是否是最后一个数据
|
|
68811
68874
|
{
|
|
68812
68875
|
if (!item) return;
|
|
@@ -100713,6 +100776,10 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
100713
100776
|
}
|
|
100714
100777
|
}
|
|
100715
100778
|
}
|
|
100779
|
+
else
|
|
100780
|
+
{
|
|
100781
|
+
this.WindowIndex[windowIndex]=null; //清空指标
|
|
100782
|
+
}
|
|
100716
100783
|
|
|
100717
100784
|
this.SetSubFrameAttribute(this.Frame.SubFrame[windowIndex], item, frameItem);
|
|
100718
100785
|
if (item) this.UpdateIndexTemporaryAttribute(windowIndex, item.AryTemporaryAttribute); //指标临时属性
|
|
@@ -134749,7 +134816,7 @@ function ScriptIndex(name,script,args,option)
|
|
|
134749
134816
|
|
|
134750
134817
|
this.RequestAuthorization=function(hqChart, callback)
|
|
134751
134818
|
{
|
|
134752
|
-
var reqData={ IndexName:this.Name, IndexID:this.ID, IsOverlayIndex:this.IsOverlayIndex===true };
|
|
134819
|
+
var reqData={ IndexName:this.Name, IndexID:this.ID, IsOverlayIndex:this.IsOverlayIndex===true, Symbol:hqChart.Symbol };
|
|
134753
134820
|
|
|
134754
134821
|
var obj=
|
|
134755
134822
|
{
|
|
@@ -139144,7 +139211,9 @@ function APIScriptIndex(name,script,args,option, isOverlay)
|
|
|
139144
139211
|
{
|
|
139145
139212
|
indexname:this.ID, symbol: hqChart.Symbol, script:this.Script, args:args,
|
|
139146
139213
|
period:hqChart.Period, right:hqChart.Right, hqdatatype: hqDataType,
|
|
139147
|
-
IsAuthorization:this.IsAuthorization,
|
|
139214
|
+
IsAuthorization:this.IsAuthorization, //是否需要鉴权
|
|
139215
|
+
IsFirst:this.RunCount===0, //指标是否首次请求数据
|
|
139216
|
+
WindowID:windowIndex,
|
|
139148
139217
|
IsOverlayIndex:this.IsOverlayIndex===true,
|
|
139149
139218
|
};
|
|
139150
139219
|
|
|
@@ -175457,7 +175526,7 @@ function ChartScrollText()
|
|
|
175457
175526
|
|
|
175458
175527
|
|
|
175459
175528
|
|
|
175460
|
-
var HQCHART_VERSION="1.1.
|
|
175529
|
+
var HQCHART_VERSION="1.1.15718";
|
|
175461
175530
|
|
|
175462
175531
|
function PrintHQChartVersion()
|
|
175463
175532
|
{
|