hqchart 1.1.14778 → 1.1.14784
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 -16
- package/package.json +1 -1
- package/src/jscommon/umychart.DialogTooltip.js +22 -0
- package/src/jscommon/umychart.deal.js +92 -3
- package/src/jscommon/umychart.index.data.js +1 -1
- package/src/jscommon/umychart.report.js +1 -0
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +95 -5
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +117 -5
package/lib/umychart.vue.js
CHANGED
|
@@ -155,7 +155,7 @@ PBX5:(EMA(CLOSE,M5)+MA(CLOSE,M5*2)+MA(CLOSE,M5*4))/3;\n\
|
|
|
155
155
|
PBX6:(EMA(CLOSE,M6)+MA(CLOSE,M6*2)+MA(CLOSE,M6*4))/3;'};return data;};JSIndexScript.prototype.ENE=function(){var data={Name:'ENE',Description:'轨道线',IsMainIndex:true,Args:[{Name:'N',Value:25},{Name:'M1',Value:6},{Name:'M2',Value:6}],Script://脚本
|
|
156
156
|
'UPPER:(1+M1/100)*MA(CLOSE,N);\n\
|
|
157
157
|
LOWER:(1-M2/100)*MA(CLOSE,N);\n\
|
|
158
|
-
ENE:(UPPER+LOWER)/2;'};return data;};JSIndexScript.prototype.MACD=function(){var data={Name:'MACD',Description:'平滑异同平均',IsMainIndex:false,Args:[{Name:'SHORT',Value:12},{Name:'LONG',Value:26},{Name:'MID',Value:9}],Script://脚本
|
|
158
|
+
ENE:(UPPER+LOWER)/2;'};return data;};JSIndexScript.prototype.MACD=function(){var data={Name:'MACD',Description:'平滑异同平均',IsMainIndex:false,FloatPrecision:3,Args:[{Name:'SHORT',Value:12},{Name:'LONG',Value:26},{Name:'MID',Value:9}],Script://脚本
|
|
159
159
|
'DIF:EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);\n\
|
|
160
160
|
DEA:EMA(DIF,MID);\n\
|
|
161
161
|
MACD:(DIF-DEA)*2,COLORSTICK;'};return data;};//上下柱子
|
|
@@ -12858,7 +12858,8 @@ this.CanvasElement=document.createElement("canvas");this.CanvasElement.className
|
|
|
12858
12858
|
var height=parseInt(this.DivElement.style.height.replace("px",""));this.CanvasElement.height=height;this.CanvasElement.width=parseInt(this.DivElement.style.width.replace("px",""));this.CanvasElement.style.width=this.CanvasElement.width+'px';this.CanvasElement.style.height=this.CanvasElement.height+'px';var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
|
|
12859
12859
|
this.CanvasElement.height*=pixelTatio;this.CanvasElement.width*=pixelTatio;JSConsole.Chart.Log('[JSDealChart::OnSize] devicePixelRatio='+window.devicePixelRatio+', height='+this.CanvasElement.height+', width='+this.CanvasElement.width);if(this.JSChartContainer&&this.JSChartContainer.OnSize){this.JSChartContainer.OnSize();}};this.SetOption=function(option){var chart=this.CreateJSDealChartContainer(option);if(!chart)return false;if(option.OnCreatedCallback)option.OnCreatedCallback(chart);this.JSChartContainer=chart;this.DivElement.JSChart=this;//div中保存一份
|
|
12860
12860
|
//注册事件
|
|
12861
|
-
if(option.EventCallback){for(var i=0;i<option.EventCallback.length;++i){var item=option.EventCallback[i];chart.AddEventCallback(item);}}if(option.MinuteChartTooltip&&option.MinuteChartTooltip.Enable)chart.InitalMinuteChartTooltip(option.MinuteChartTooltip);if(
|
|
12861
|
+
if(option.EventCallback){for(var i=0;i<option.EventCallback.length;++i){var item=option.EventCallback[i];chart.AddEventCallback(item);}}if(option.MinuteChartTooltip&&option.MinuteChartTooltip.Enable)chart.InitalMinuteChartTooltip(option.MinuteChartTooltip);if(option.FloatTooltip&&option.FloatTooltip.Enable)chart.InitalFloatTooltip(option.FloatTooltip);//提示信息
|
|
12862
|
+
if(!option.Symbol){chart.Draw();}else{chart.ChangeSymbol(option.Symbol);}};this.CreateJSDealChartContainer=function(option){var chart=new JSDealChartContainer(this.CanvasElement);chart.Create(option);if(option.NetworkFilter)chart.NetworkFilter=option.NetworkFilter;if(IFrameSplitOperator.IsNonEmptyArray(option.Column))chart.SetColumn(option.Column);if(IFrameSplitOperator.IsNumber(option.ShowOrder))chart.ChartPaint[0].ShowOrder=option.ShowOrder;this.SetChartBorder(chart,option);//是否自动更新
|
|
12862
12863
|
if(option.IsAutoUpdate!=null)chart.IsAutoUpdate=option.IsAutoUpdate;if(option.AutoUpdateFrequency>0)chart.AutoUpdateFrequency=option.AutoUpdateFrequency;if(IFrameSplitOperator.IsBool(option.EnableFilter))chart.EnableFilter=option.EnableFilter;//注册事件
|
|
12863
12864
|
if(option.EventCallback){for(var i=0;i<option.EventCallback.length;++i){var item=option.EventCallback[i];chart.AddEventCallback(item);}}return chart;};this.SetChartBorder=function(chart,option){if(!option.Border)return;var item=option.Border;if(IFrameSplitOperator.IsNumber(option.Border.Left))chart.Frame.ChartBorder.Left=option.Border.Left;if(IFrameSplitOperator.IsNumber(option.Border.Right))chart.Frame.ChartBorder.Right=option.Border.Right;if(IFrameSplitOperator.IsNumber(option.Border.Top))chart.Frame.ChartBorder.Top=option.Border.Top;if(IFrameSplitOperator.IsNumber(option.Border.Bottom))chart.Frame.ChartBorder.Bottom=option.Border.Bottom;var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
|
|
12864
12865
|
chart.Frame.ChartBorder.Left*=pixelTatio;chart.Frame.ChartBorder.Right*=pixelTatio;chart.Frame.ChartBorder.Top*=pixelTatio;chart.Frame.ChartBorder.Bottom*=pixelTatio;};/////////////////////////////////////////////////////////////////////////////
|
|
@@ -12881,13 +12882,14 @@ this.mapEvent=new _map2.default();//通知外部调用 key:JSCHART_EVENT_ID valu
|
|
|
12881
12882
|
this.AutoUpdateTimer=null;this.AutoUpdateFrequency=15000;//更新频率
|
|
12882
12883
|
this.LoadDataSplashTitle="数据加载中";//下载数据提示信息
|
|
12883
12884
|
this.TooltipMinuteChart;//分时图
|
|
12885
|
+
this.FloatTooltip;//提示浮框
|
|
12884
12886
|
this.UIElement=uielement;this.LastPoint=new Point();//鼠标位置
|
|
12885
12887
|
//MouseOnStatus:{ RowIndex:行, ColumnIndex:列}
|
|
12886
12888
|
this.LastMouseStatus={MoveStatus:null,TooltipStatus:null,MouseOnStatus:null};this.IsDestroy=false;//是否已经销毁了
|
|
12887
12889
|
this.ChartDestroy=function()//销毁
|
|
12888
|
-
{this.IsDestroy=true;this.StopAutoUpdate();};this.EnableFilterData=false;//是否启动筛选
|
|
12890
|
+
{this.IsDestroy=true;this.StopAutoUpdate();this.DestroyMinuteChartTooltip();this.DestroyFloatTooltip();};this.EnableFilterData=false;//是否启动筛选
|
|
12889
12891
|
this.InitalMinuteChartTooltip=function(option){if(this.TooltipMinuteChart)return;this.TooltipMinuteChart=new JSTooltipMinuteChart();this.TooltipMinuteChart.Inital(this,option);this.TooltipMinuteChart.Create();};this.DestroyMinuteChartTooltip=function(){if(!this.TooltipMinuteChart)return;this.TooltipMinuteChart.Destroy();this.TooltipMinuteChart=null;};//data={ Symbol }
|
|
12890
|
-
this.ShowMinuteChartTooltip=function(x,y,data){if(!this.TooltipMinuteChart)return;var rtClient=this.UIElement.getBoundingClientRect();var rtScroll=GetScrollPosition();var offsetLeft=rtClient.left+rtScroll.Left;var offsetTop=rtClient.top+rtScroll.Top;data.Offset={Left:offsetLeft,Top:offsetTop};this.TooltipMinuteChart.Show(data,x,y);};this.HideMinuteChartTooltip=function(){if(!this.TooltipMinuteChart)return;this.TooltipMinuteChart.Hide();};this.HideAllTooltip=function(){this.HideMinuteChartTooltip();};//筛选数据
|
|
12892
|
+
this.ShowMinuteChartTooltip=function(x,y,data){if(!this.TooltipMinuteChart)return;var rtClient=this.UIElement.getBoundingClientRect();var rtScroll=GetScrollPosition();var offsetLeft=rtClient.left+rtScroll.Left;var offsetTop=rtClient.top+rtScroll.Top;data.Offset={Left:offsetLeft,Top:offsetTop};this.TooltipMinuteChart.Show(data,x,y);};this.HideMinuteChartTooltip=function(){if(!this.TooltipMinuteChart)return;this.TooltipMinuteChart.Hide();};this.HideFloatTooltip=function(){if(!this.FloatTooltip)return;this.FloatTooltip.Hide();};this.DestroyFloatTooltip=function(){if(!this.FloatTooltip)return;this.FloatTooltip.Destroy();this.FloatTooltip=null;};this.InitalFloatTooltip=function(option){if(this.FloatTooltip)return;this.FloatTooltip=new JSFloatTooltip();this.FloatTooltip.Inital(this,option);this.FloatTooltip.Create();};this.DrawFloatTooltip=function(point,toolTip){if(!this.FloatTooltip)return;this.UpdateFloatTooltip(point,toolTip);};this.UpdateFloatTooltip=function(point,toolTip){if(!this.FloatTooltip)return;var sendData={Tooltip:toolTip,Point:point,DataType:5};this.FloatTooltip.Update(sendData);};this.HideAllTooltip=function(){this.HideMinuteChartTooltip();this.HideFloatTooltip();};//筛选数据
|
|
12891
12893
|
this.FilterData=function(aryDeal){if(!this.EnableFilterData)return aryDeal;//过滤由外部处理
|
|
12892
12894
|
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_FILTER_DEAL_DATA);if(!event||!event.Callback)return aryDeal;var sendData={Data:aryDeal,Result:[]};//{ Data:原始数据, Result:[] 过滤以后的数据 }
|
|
12893
12895
|
event.Callback(event,sendData,this);return sendData.Result;};this.EnableFilter=function(bEnable,option)//启动|关闭筛选
|
|
@@ -12902,7 +12904,7 @@ if(IFrameSplitOperator.IsBool(option.IsShowLastPage))this.IsShowLastPage=option.
|
|
|
12902
12904
|
if(IFrameSplitOperator.IsNumber(option.BorderLine))this.Frame.BorderLine=option.BorderLine;//边框
|
|
12903
12905
|
}var bRegisterKeydown=true;var bRegisterWheel=true;if(option){if(option.KeyDown===false){bRegisterKeydown=false;JSConsole.Chart.Log('[JSDealChartContainer::Create] not register keydown event.');}if(option.Wheel===false){bRegisterWheel=false;JSConsole.Chart.Log('[JSDealChartContainer::Create] not register wheel event.');}if(IFrameSplitOperator.IsBool(option.EnableSelected))chart.SelectedData.Enable=option.EnableSelected;}if(bRegisterKeydown)this.UIElement.addEventListener("keydown",function(e){_this51.OnKeyDown(e);},true);//键盘消息
|
|
12904
12906
|
if(bRegisterWheel)this.UIElement.addEventListener("wheel",function(e){_this51.OnWheel(e);},true);//上下滚动消息
|
|
12905
|
-
this.UIElement.onmousedown=function(e){_this51.UIOnMouseDown(e);};this.UIElement.ondblclick=function(e){_this51.UIOnDblClick(e);};this.UIElement.oncontextmenu=function(e){_this51.UIOnContextMenu(e);};this.UIElement.onmousemove=function(e){_this51.UIOnMouseMove(e);};};this.Draw=function(){if(this.UIElement.width<=0||this.UIElement.height<=0)return;this.Canvas.clearRect(0,0,this.UIElement.width,this.UIElement.height);var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
|
|
12907
|
+
this.UIElement.onmousedown=function(e){_this51.UIOnMouseDown(e);};this.UIElement.ondblclick=function(e){_this51.UIOnDblClick(e);};this.UIElement.oncontextmenu=function(e){_this51.UIOnContextMenu(e);};this.UIElement.onmousemove=function(e){_this51.UIOnMouseMove(e);};this.UIElement.onmouseout=function(e){_this51.UIOnMounseOut(e);};this.UIElement.onmouseleave=function(e){_this51.UIOnMouseleave(e);};};this.Draw=function(){if(this.UIElement.width<=0||this.UIElement.height<=0)return;this.Canvas.clearRect(0,0,this.UIElement.width,this.UIElement.height);var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
|
|
12906
12908
|
this.Canvas.lineWidth=pixelTatio;//手机端需要根据分辨率比调整线段宽度
|
|
12907
12909
|
if(this.ChartSplashPaint&&this.ChartSplashPaint.IsEnableSplash){this.Frame.Draw({IsEnableSplash:this.ChartSplashPaint.IsEnableSplash});this.ChartSplashPaint.Draw();return;}this.Frame.Draw();this.Frame.DrawLogo();//框架内图形
|
|
12908
12910
|
for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(item.IsDrawFirst)item.Draw();}for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(!item.IsDrawFirst)item.Draw();}};this.ChangeSymbol=function(symbol,option){this.Symbol=symbol;this.Data=null;this.SourceData=null;var chart=this.ChartPaint[0];if(chart)chart.Data=null;if(option&&IFrameSplitOperator.IsNumber(option.TradeDate))this.TradeDate=option.TradeDate;if(!this.Symbol){this.Draw();return;}this.RequestDealData();};this.CancelAutoUpdate=function()//关闭停止更新
|
|
@@ -12946,12 +12948,7 @@ if(tooltipData){if(tooltipData.Type==20){if(tooltipData.Data&&tooltipData.Data.S
|
|
|
12946
12948
|
chartTooltipData={ Symbol:tooltipData.Stock.OriginalSymbol, Rect:tooltipData.Rect };
|
|
12947
12949
|
}
|
|
12948
12950
|
}
|
|
12949
|
-
else
|
|
12950
|
-
{
|
|
12951
|
-
this.LastMouseStatus.TooltipStatus={ X:x, Y:y, Data:tooltipData, ClientX:e.clientX, ClientY:e.clientY };
|
|
12952
|
-
bDrawTooltip=true;
|
|
12953
|
-
}
|
|
12954
|
-
*/}}if(mouseStatus)this.UIElement.style.cursor=mouseStatus.Cursor;if(bDraw)this.Draw();if(!bShowMinuteTooltip)this.HideMinuteChartTooltip();if(bShowMinuteTooltip)this.ShowMinuteChartTooltip(null,null,chartTooltipData);};this.UIOnDblClick=function(e){var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;var chart=this.ChartPaint[0];if(chart)chart.OnDblClick(x,y,e);};this.UIOnContextMenu=function(e){e.preventDefault();};this.GotoNextPage=function(){if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return false;var chart=this.ChartPaint[0];if(!chart)return false;var pageSize=chart.GetPageSize();if(pageSize>this.Data.Data.length)return false;var offset=this.Data.DataOffset+pageSize;if(offset+pageSize==this.Data.Data.length-1)return false;if(offset+pageSize>this.Data.Data.length)//最后一页不够一屏调整到满屏
|
|
12951
|
+
*/else{this.LastMouseStatus.TooltipStatus={X:x,Y:y,Data:tooltipData,ClientX:e.clientX,ClientY:e.clientY};bDrawTooltip=true;}}}if(mouseStatus)this.UIElement.style.cursor=mouseStatus.Cursor;if(bDraw)this.Draw();if(this.LastMouseStatus.TooltipStatus){var xTooltip=e.clientX-this.UIElement.getBoundingClientRect().left;var yTooltip=e.clientY-this.UIElement.getBoundingClientRect().top;this.DrawFloatTooltip({X:xTooltip,Y:yTooltip,YMove:20/pixelTatio},this.LastMouseStatus.TooltipStatus.Data);}else{this.HideFloatTooltip();}if(!bShowMinuteTooltip)this.HideMinuteChartTooltip();if(bShowMinuteTooltip)this.ShowMinuteChartTooltip(null,null,chartTooltipData);};this.UIOnDblClick=function(e){var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;var chart=this.ChartPaint[0];if(chart)chart.OnDblClick(x,y,e);};this.UIOnContextMenu=function(e){e.preventDefault();};this.UIOnMounseOut=function(e){this.HideAllTooltip();};this.UIOnMouseleave=function(e){this.HideAllTooltip();};this.GotoNextPage=function(){if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return false;var chart=this.ChartPaint[0];if(!chart)return false;var pageSize=chart.GetPageSize();if(pageSize>this.Data.Data.length)return false;var offset=this.Data.DataOffset+pageSize;if(offset+pageSize==this.Data.Data.length-1)return false;if(offset+pageSize>this.Data.Data.length)//最后一页不够一屏调整到满屏
|
|
12955
12952
|
{this.Data.DataOffset=this.Data.Data.length-pageSize;}else{this.Data.DataOffset=offset;}return true;};this.GotoPreviousPage=function(){if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return false;var chart=this.ChartPaint[0];if(!chart)return false;if(this.Data.DataOffset<=0)return false;var pageSize=chart.GetPageSize();var offset=this.Data.DataOffset;offset-=pageSize;if(offset<0)offset=0;this.Data.DataOffset=offset;return true;};this.GotoLastPage=function(){var chart=this.ChartPaint[0];if(!chart)return;//显示最后一屏
|
|
12956
12953
|
var pageSize=chart.GetPageSize(true);var offset=this.Data.Data.length-pageSize;if(offset<0)offset=0;this.Data.DataOffset=offset;};this.SetColumn=function(aryColunm,option){var chart=this.ChartPaint[0];if(chart){chart.SetColumn(aryColunm);chart.SizeChange=true;if(option&&option.Redraw)this.Draw();}};this.ReloadResource=function(option){this.Frame.ReloadResource(option);for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(item.ReloadResource)item.ReloadResource(option);}if(option&&option.Redraw){this.SetSizeChange(true);this.Draw();}};}JSDealChartContainer.JsonDataToDealData=function(data){var symbol=data.symbol;var result=[];if(!IFrameSplitOperator.IsNonEmptyArray(data.detail))return result;//0=时间 1=价格 2=成交量 3=成交金额 4=BS 5=字符串时间 6=ID 100=Guid
|
|
12957
12954
|
for(var i=0;i<data.detail.length;++i){var item=data.detail[i];var dealItem={Time:item[0],Price:item[1],Vol:item[2],BS:item[4],Amount:item[3],Guid:Guid()};dealItem.Source=item;if(item[5])dealItem.StrTime=item[5];if(item[6])dealItem.ID=item[6];if(item[11])dealItem.Symbol=item[11];//股票代码
|
|
@@ -13016,10 +13013,11 @@ this.UpdateCacheData=function(){this.RectClient.Left=this.ChartBorder.GetLeft();
|
|
|
13016
13013
|
{if(recalculate)this.CalculateSize();var size=this.TableCount*this.RowCount;return size;};this.CalculateSize=function()//计算大小
|
|
13017
13014
|
{this.UpdateCacheData();var pixelRatio=GetDevicePixelRatio();this.HeaderFont=this.HeaderFontConfig.Size*pixelRatio+'px '+this.HeaderFontConfig.Name;this.ItemFont=this.ItemFontConfig.Size*pixelRatio+'px '+this.ItemFontConfig.Name;this.Canvas.font=this.ItemFont;var sumWidth=0,itemWidth=0;for(var i=0;i<this.Column.length;++i){var item=this.Column[i];itemWidth=this.Canvas.measureText(item.MaxText).width;item.Width=itemWidth+4;sumWidth+=item.Width;}var clientWidth=this.RectClient.Right-this.RectClient.Left;this.TableCount=parseInt(clientWidth/sumWidth);if(this.TableCount<=0)this.TableCount=1;//只少显示一个
|
|
13018
13015
|
if(this.IsSingleTable)this.TableCount=1;this.TableWidth=clientWidth/this.TableCount;this.HeaderHeight=this.GetFontHeight(this.HeaderFont,"擎")+this.HeaderMergin.Top+this.HeaderMergin.Bottom;if(!this.IsShowHeader)this.HeaderHeight=0;this.RowHeight=this.GetFontHeight(this.ItemFont,"擎")+this.HeaderMergin.Top+this.HeaderMergin.Bottom;this.RowCount=parseInt((this.RectClient.Bottom-this.RectClient.Top-this.HeaderHeight)/this.RowHeight);};this.DrawHeader=function(){if(!this.IsShowHeader)return;var left=this.RectClient.Left+this.HeaderMergin.Left;var top=this.RectClient.Top;var y=top+this.HeaderMergin.Top+(this.HeaderHeight-this.HeaderMergin.Top-this.HeaderMergin.Bottom)/2;this.Canvas.font=this.HeaderFont;this.Canvas.fillStyle=this.HeaderColor;for(var i=0,j=0;i<this.TableCount;++i){var tableLeft=left+this.TableWidth*i;var textLeft=tableLeft;for(j=0;j<this.Column.length;++j){var item=this.Column[j];var itemWidth=item.Width;if(j==this.Column.length-1)itemWidth=this.TableWidth-(textLeft-tableLeft)-this.HeaderMergin.Right-this.HeaderMergin.Left;var x=textLeft;if(item.TextAlign=='center'){x=textLeft+itemWidth/2;this.Canvas.textAlign="center";}else if(item.TextAlign=='right'){x=textLeft+itemWidth;this.Canvas.textAlign="right";}else{this.Canvas.textAlign="left";}this.Canvas.textBaseline="middle";this.Canvas.fillText(item.Title,x,y);textLeft+=item.Width;}}};this.DrawBorder=function(){var left=ToFixedPoint(this.RectClient.Left);var right=ToFixedPoint(this.RectClient.Right);var top=ToFixedPoint(this.RectClient.Top);var bottom=ToFixedPoint(this.RectClient.Bottom);this.Canvas.strokeStyle=this.BorderColor;this.Canvas.beginPath();if(this.IsShowHeader){this.Canvas.moveTo(left,top+this.HeaderHeight);this.Canvas.lineTo(right,top+this.HeaderHeight);}var tableLeft=ToFixedPoint(left+this.TableWidth);for(var i=1;i<this.TableCount;++i){this.Canvas.moveTo(tableLeft,top);this.Canvas.lineTo(tableLeft,bottom);tableLeft=ToFixedPoint(tableLeft+this.TableWidth);}this.Canvas.stroke();};this.DrawBody=function(){if(!this.Data)return;if(!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return;this.Canvas.font=this.ItemFont;var top=this.RectClient.Top+this.HeaderHeight;var left=this.RectClient.Left+this.HeaderMergin.Left;var dataCount=this.Data.Data.length;var index=this.Data.DataOffset;if(this.ShowOrder==1){var index=this.Data.DataOffset+this.TableCount*this.RowCount;if(index>=dataCount)index=dataCount-1;for(var i=0,j=0;i<this.TableCount;++i){var tableLeft=left+this.TableWidth*i;var textLeft=tableLeft;var textTop=top;for(j=0;j<this.RowCount&&index>=0;++j,--index){var dataItem=this.Data.Data[index];this.DrawSelectedRow(dataItem,index,rtRow);this.DrawRow(dataItem,textLeft,textTop,index);textTop+=this.RowHeight;}}}else{for(var i=0,j=0;i<this.TableCount;++i){var tableLeft=left+this.TableWidth*i;var textLeft=tableLeft;var textTop=top;for(j=0;j<this.RowCount&&index<dataCount;++j,++index){var dataItem=this.Data.Data[index];var rtRow={Left:textLeft-this.HeaderMergin.Left,Top:textTop,Height:this.RowHeight,Width:this.TableWidth};rtRow.Right=rtRow.Left+rtRow.Width;rtRow.Bottom=rtRow.Top+rtRow.Height;this.DrawSelectedRow(dataItem,index,rtRow);this.DrawRow(dataItem,textLeft,textTop,index);this.AryCellRect.push({Rect:rtRow,Type:1,DataIndex:index});textTop+=this.RowHeight;}}}};this.DrawRow=function(data,left,top,dataIndex,colIndex){var tableLeft=left;var tableRight=left+this.TableWidth;for(var i=0;i<this.Column.length;++i){var item=this.Column[i];var textColor=item.TextColor;var text=null;var itemWidth=item.Width;var textAlign=item.TextAlign;if(left+itemWidth>tableRight)break;if(i==this.Column.length-1)itemWidth=this.TableWidth-(left-tableLeft)-this.HeaderMergin.Right-this.HeaderMergin.Left;var drawInfo={Text:null,TextColor:item.TextColor,TextAlign:item.TextAlign,Tooltip:null,Index:dataIndex,ColumnIndex:i};var rtItem={Left:left,Top:top,Width:itemWidth,Height:this.RowHeight};rtItem.Right=rtItem.Left+rtItem.Width;rtItem.Bottom=rtItem.Top+rtItem.Height;drawInfo.Rect=rtItem;var bDrawV2=false;if(item.Type==DEAL_COLUMN_ID.TIME_ID){text=IFrameSplitOperator.FormatTimeString(data.Time,item.Foramt);}else if(item.Type==DEAL_COLUMN_ID.STRING_TIME_ID){text=data.StrTime;}else if(item.Type==DEAL_COLUMN_ID.PRICE_ID){if(data.Price>this.YClose)textColor=this.UpColor;else if(data.Price<this.YClose)textColor=this.DownColor;else textColor=this.UnchangeColor;text=data.Price.toFixed(this.Decimal);}else if(item.Type==DEAL_COLUMN_ID.VOL_ID){text=IFrameSplitOperator.FormatValueString(data.Vol,0);textColor=this.GetVolColor(item,data);}else if(item.Type==DEAL_COLUMN_ID.DEAL_ID){text=IFrameSplitOperator.FormatValueString(data.Deal,0);}else if(item.Type==DEAL_COLUMN_ID.BS_ID){if(data.BS==1){text="B";textColor=this.UpColor;}else if(data.BS==2){text="S";textColor=this.DownColor;}}else if(item.Type==DEAL_COLUMN_ID.UPDOWN_ID){if(IFrameSplitOperator.IsNumber(this.YClose)){var value=data.Price-this.YClose;text=value.toFixed(2);if(value>0)textColor=this.UpColor;else if(value<0)textColor=this.DownColor;else textColor=this.UnchangeColor;}}else if(item.Type==DEAL_COLUMN_ID.INDEX_ID){text=(dataIndex+1).toString();}else if(item.Type==DEAL_COLUMN_ID.MULTI_BAR_ID){var rtItem={Left:left,Top:top,Width:itemWidth,Height:this.RowHeight};this.DrawMultiBar(item,data,rtItem);}else if(item.Type==DEAL_COLUMN_ID.CENTER_BAR_ID){var rtItem={Left:left,Top:top,Width:itemWidth,Height:this.RowHeight};this.DrawCenterBar(item,data,rtItem);}else if(item.Type==DEAL_COLUMN_ID.CUSTOM_TEXT_ID){var out={Text:null,TextColor:null,TextAlign:null};//输出
|
|
13019
|
-
var rtItem={Left:left,Top:top,Width:itemWidth,Height:this.RowHeight};if(this.DrawCustomText(item,data,rtItem,dataIndex,i,out)){if(out.Text)text=out.Text;if(out.TextColor)textColor=out.TextColor;if(out.TextAlign)textAlign=out.TextAlign;}}else if(this.IsReserveString(item.Type)){this.FormatReserveString(item,data,drawInfo);bDrawV2=true;}else if(this.IsReserveNumber(item.Type)){this.FormatReserveNumber(item,data,drawInfo);bDrawV2=true;}if(bDrawV2){this.DrawItemText(drawInfo.Text,drawInfo.TextColor,drawInfo.TextAlign,rtItem.Left,rtItem.Top,rtItem.Width,drawInfo.BGColor);}else{this.DrawItemText(text,textColor,textAlign,left,top,itemWidth);}if(
|
|
13016
|
+
var rtItem={Left:left,Top:top,Width:itemWidth,Height:this.RowHeight};if(this.DrawCustomText(item,data,rtItem,dataIndex,i,out)){if(out.Text)text=out.Text;if(out.TextColor)textColor=out.TextColor;if(out.TextAlign)textAlign=out.TextAlign;}}else if(this.IsReserveString(item.Type)){this.FormatReserveString(item,data,drawInfo);bDrawV2=true;}else if(this.IsReserveNumber(item.Type)){this.FormatReserveNumber(item,data,drawInfo);bDrawV2=true;}if(bDrawV2){this.DrawItemText(drawInfo.Text,drawInfo.TextColor,drawInfo.TextAlign,rtItem.Left,rtItem.Top,rtItem.Width,drawInfo.BGColor);}else{this.DrawItemText(text,textColor,textAlign,left,top,itemWidth);}if(drawInfo.Tooltip){//Type:2=数据提示信息
|
|
13017
|
+
var tooltipData=(0,_defineProperty3.default)({Rect:rtItem,Data:data,Index:dataIndex,Column:item,Type:drawInfo.Tooltip.Type},'Data',drawInfo.Tooltip.Data);this.TooltipRect.push(tooltipData);}else if(item.ChartTooltip&&item.ChartTooltip.Enable&&IFrameSplitOperator.IsNumber(item.ChartTooltip.Type))//Type 20分时图 21K线图
|
|
13020
13018
|
{var tooltipData={Rect:rtItem,Data:data,Index:dataIndex,Column:item,Type:item.ChartTooltip.Type};this.TooltipRect.push(tooltipData);}left+=item.Width;}};this.FormatReserveNumber=function(column,data,drawInfo){if(column.DefaultText)drawInfo.Text=column.DefaultText;var fieldName=MAP_DEAL_COLUMN_FIELD.get(column.Type);if(!data||!fieldName)return;var value=data[fieldName];if(!IFrameSplitOperator.IsNumber(value))return;if(IFrameSplitOperator.IsNumber(column.ColorType)){if(column.ColorType==1){drawInfo.TextColor=this.GetUpDownColor(value,0);}else if(column.ColorType==2){drawInfo.TextColor=this.GetUpDownColorV2(value,0);}}var text=value.toFixed(column.FloatPrecision);if(column.Format&&IFrameSplitOperator.IsNumber(column.Format.Type)){var format=column.Format;switch(format.Type){case 1://原始数据
|
|
13021
13019
|
text=value.toFixed(column.FloatPrecision);break;case 2://千分位分割
|
|
13022
|
-
text=IFrameSplitOperator.FormatValueThousandsString(value,column.FloatPrecision);break;case 3:var exfloatPrecision=1;if(IFrameSplitOperator.IsNumber(format.ExFloatPrecision))exfloatPrecision=format.ExFloatPrecision;text=IFrameSplitOperator.FormatValueStringV2(value,column.FloatPrecision,exfloatPrecision);break;}}drawInfo.Text=text;};this.FormatReserveString=function(column,data,drawInfo){if(column.DefaultText)drawInfo.Text=column.DefaultText;var fieldName=MAP_DEAL_COLUMN_FIELD.get(column.Type);if(!data||!fieldName)return;var item=data[fieldName];if(IFrameSplitOperator.IsObject(item)){if(item.Text)drawInfo.Text=item.Text;if(item.TextColor)drawInfo.TextColor=item.TextColor;if(item.BGColor)drawInfo.BGColor=item.BGColor;}else if(IFrameSplitOperator.IsString(item)){drawInfo.Text=item;}};this.GetUpDownColor=function(price,price2){if(price>price2)return this.UpColor;else if(price<price2)return this.DownColor;else return this.UnchangeColor;};this.GetUpDownColorV2=function(price,price2){if(price>=price2)return this.UpColor;else return this.DownColor;};this.DrawSelectedRow=function(data,index,rtRow){if(!this.SelectedData)return;if(!this.SelectedData.Enable)return;if(!this.SelectedData.Guid||this.SelectedData.Guid!=data.Guid)return;this.Canvas.fillStyle=this.SelectedConfig.BGColor;this.Canvas.fillRect(rtRow.Left,rtRow.Top,rtRow.Width,rtRow.Height);};this.DrawItemText=function(text,textColor,textAlign,left,top,width){var x=left;if(textAlign=='center'){x=left+width/2;this.Canvas.textAlign="center";}else if(textAlign=='right'){x=left+width;this.Canvas.textAlign="right";}else{this.Canvas.textAlign="left";}this.Canvas.textBaseline="middle";this.Canvas.fillStyle=textColor;if(text)this.Canvas.fillText(text,x,top+this.RowHeight/2);};this.DrawMultiBar=function(colunmInfo,data,rtItem){if(!data.Source||!IFrameSplitOperator.IsNonEmptyArray(data.Source))return false;var barData=data.Source[colunmInfo.DataIndex];//{ Value:[0.4,0,2], Color:[0,1] };
|
|
13020
|
+
text=IFrameSplitOperator.FormatValueThousandsString(value,column.FloatPrecision);break;case 3:var exfloatPrecision=1;if(IFrameSplitOperator.IsNumber(format.ExFloatPrecision))exfloatPrecision=format.ExFloatPrecision;text=IFrameSplitOperator.FormatValueStringV2(value,column.FloatPrecision,exfloatPrecision);break;}}drawInfo.Text=text;};this.FormatReserveString=function(column,data,drawInfo){if(column.DefaultText)drawInfo.Text=column.DefaultText;var fieldName=MAP_DEAL_COLUMN_FIELD.get(column.Type);if(!data||!fieldName)return;var item=data[fieldName];if(IFrameSplitOperator.IsObject(item)){if(item.Text)drawInfo.Text=item.Text;if(item.TextColor)drawInfo.TextColor=item.TextColor;if(item.BGColor)drawInfo.BGColor=item.BGColor;}else if(IFrameSplitOperator.IsString(item)){drawInfo.Text=item;}if(item&&item.Tooltip&&IFrameSplitOperator.IsNonEmptyArray(item.Tooltip.AryText)){drawInfo.Tooltip={Type:2,Data:{AryText:item.Tooltip.AryText}};}};this.GetUpDownColor=function(price,price2){if(price>price2)return this.UpColor;else if(price<price2)return this.DownColor;else return this.UnchangeColor;};this.GetUpDownColorV2=function(price,price2){if(price>=price2)return this.UpColor;else return this.DownColor;};this.DrawSelectedRow=function(data,index,rtRow){if(!this.SelectedData)return;if(!this.SelectedData.Enable)return;if(!this.SelectedData.Guid||this.SelectedData.Guid!=data.Guid)return;this.Canvas.fillStyle=this.SelectedConfig.BGColor;this.Canvas.fillRect(rtRow.Left,rtRow.Top,rtRow.Width,rtRow.Height);};this.DrawItemText=function(text,textColor,textAlign,left,top,width){var x=left;if(textAlign=='center'){x=left+width/2;this.Canvas.textAlign="center";}else if(textAlign=='right'){x=left+width;this.Canvas.textAlign="right";}else{this.Canvas.textAlign="left";}this.Canvas.textBaseline="middle";this.Canvas.fillStyle=textColor;if(text)this.Canvas.fillText(text,x,top+this.RowHeight/2);};this.DrawMultiBar=function(colunmInfo,data,rtItem){if(!data.Source||!IFrameSplitOperator.IsNonEmptyArray(data.Source))return false;var barData=data.Source[colunmInfo.DataIndex];//{ Value:[0.4,0,2], Color:[0,1] };
|
|
13023
13021
|
if(!barData)return false;if(!IFrameSplitOperator.IsNonEmptyArray(barData.Value))return false;var width=rtItem.Width-this.BarMergin.Left-this.BarMergin.Right;var left=rtItem.Left+this.BarMergin.Left;var top=rtItem.Top+this.RowMergin.Top+this.BarMergin.Top;var height=rtItem.Height-this.RowMergin.Top-this.RowMergin.Bottom-this.BarMergin.Top-this.BarMergin.Bottom;var right=left+width;for(var i=0;i<barData.Value.length;++i){var value=barData.Value[i];if(value<=0)continue;if(left>=right)break;var barWidth=width*value;if(barWidth<1)barWidth=1;if(left+barWidth>right)barWidth=right-left;var colorIndex=i;if(IFrameSplitOperator.IsNonEmptyArray(barData.Color)&&i<barData.Color.length)colorIndex=barData.Color[i];this.Canvas.fillStyle=g_JSChartResource.DealList.FieldColor.Bar[colorIndex];this.Canvas.fillRect(left,top,barWidth,height);left+=barWidth;}return true;};this.DrawCenterBar=function(colunmInfo,data,rtItem){if(!data.Source||!IFrameSplitOperator.IsNonEmptyArray(data.Source))return false;var barData=data.Source[colunmInfo.DataIndex];//{ Value:[0.4,0,2], Color:[0,1] };
|
|
13024
13022
|
if(!barData)return false;if(!IFrameSplitOperator.IsNonEmptyArray(barData.Value))return false;var width=(rtItem.Width-this.BarMergin.Left-this.BarMergin.Right)/2;var left=rtItem.Left+this.BarMergin.Left;var center=left+width;var top=rtItem.Top+this.RowMergin.Top+this.BarMergin.Top;var height=rtItem.Height-this.RowMergin.Top-this.RowMergin.Bottom-this.BarMergin.Top-this.BarMergin.Bottom;var right=left+width;for(var i=0;i<barData.Value.length&&i<2;++i){var value=barData.Value[i];if(value<=0)continue;if(value>1)value=1;var barWidth=width*value;if(barWidth<1)barWidth=1;var colorIndex=i;if(IFrameSplitOperator.IsNonEmptyArray(barData.Color)&&i<barData.Color.length)colorIndex=barData.Color[i];this.Canvas.fillStyle=g_JSChartResource.DealList.FieldColor.Bar[colorIndex];if(i==0)//左边
|
|
13025
13023
|
{this.Canvas.fillRect(center,top,-barWidth,height);}else//右边
|
|
@@ -13116,6 +13114,7 @@ this.JSPopMenu;//内置菜单
|
|
|
13116
13114
|
this.IsShowRightMenu=true;//
|
|
13117
13115
|
this.TooltipMinuteChart;//分时图
|
|
13118
13116
|
this.TooltipKLineChart;//分时图
|
|
13117
|
+
this.FloatTooltip;//提示浮框
|
|
13119
13118
|
//MouseOnStatus:{ RowIndex:行, ColumnIndex:列}
|
|
13120
13119
|
this.LastMouseStatus={MoveStatus:null,TooltipStatus:null,MouseOnStatus:null};this.ChartDestroy=function()//销毁
|
|
13121
13120
|
{this.IsDestroy=true;this.StopAutoUpdate();this.DestroyMinuteChartTooltip();this.DestroyKLineChartTooltip();this.DestroyFloatTooltip();};this.StopAutoDragScrollTimer=function(){JSConsole.Chart.Log("[JSReportChartContainer::StopAutoDragScrollTimer] stop ");this.EnablePageScroll=false;if(this.AutoDragScrollTimer!=null){clearTimeout(this.AutoDragScrollTimer);this.AutoDragScrollTimer=null;}};this.InitalPopMenu=function()//初始化弹出窗口
|
|
@@ -14797,7 +14796,9 @@ this.Update=function(data){if(!this.DivDialog)return;this.LanguageID=this.HQChar
|
|
|
14797
14796
|
{var tooltipData=data.Tooltip;if(!tooltipData)return;if(tooltipData.Type==2)//报价列表表头图标提示信息
|
|
14798
14797
|
{this.ReportHeaderIconTooltip(data);}else if(tooltipData.Type==1)//单元格截断内容
|
|
14799
14798
|
{this.ReportCellTruncateTooltip(data);}}else if(data.DataType==4)//T型报价
|
|
14800
|
-
{var tooltipData=data.Tooltip;if(!tooltipData)return;if(tooltipData.Type==2||tooltipData.Type==3){this.TReportIconTooltip(data);}}
|
|
14799
|
+
{var tooltipData=data.Tooltip;if(!tooltipData)return;if(tooltipData.Type==2||tooltipData.Type==3){this.TReportIconTooltip(data);}}else if(data.DataType==5)//成交笔数
|
|
14800
|
+
{var tooltipData=data.Tooltip;if(!tooltipData)return;if(tooltipData.Type==2)//提示信息
|
|
14801
|
+
{this.DealItemTooltip(data);}}};this.UpdateRealtimeHQTooltip=function(data){if(!this.KItemCache)return;var kItem={Symbol:data.Symbol,Name:this.KItemCache.Name,Item:data.Data,IsOverlay:this.KItemCache.IsOverlay};var strKItem=(0,_stringify2.default)(kItem);var bUpdata=false;if(this.KItemCacheID!=strKItem)//数据变动的才更新
|
|
14801
14802
|
{this.KItemCache=kItem;this.KItemCacheID=strKItem;this.AryText=this.GetFormatKLineTooltipText(this.KItemCache);bUpdata=true;}if(bUpdata){this.UpdateTableDOM();}};this.ShowTooltip=function(data){if(!data.Point)return;var x=data.Point.X;var y=data.Point.Y;this.Show(x,y,{YMove:data.Point.YMove});};//K线提示信息
|
|
14802
14803
|
this.UpdateKLineToolitp=function(data){var tooltipData=data.Tooltip;var symbol=data.Symbol;var name=data.Name;var bOverlay=false;//是否是叠加指标
|
|
14803
14804
|
var bIndexKLine=false;if(tooltipData.ChartPaint.Name=="Overlay-KLine"){symbol=tooltipData.ChartPaint.Symbol;name=tooltipData.ChartPaint.Title;bOverlay=true;}else if(tooltipData.ChartPaint.Name=="DRAWKLINE"){symbol=tooltipData.ChartPaint.Symbol;name=tooltipData.ChartPaint.Title;bIndexKLine=true;}var kItem={Symbol:symbol,Name:name,Item:CloneData(tooltipData.Data),IsOverlay:bOverlay,IsIndexKLine:bIndexKLine};var strKItem=(0,_stringify2.default)(kItem);var bUpdata=false;if(this.KItemCacheID!=strKItem)//数据变动的才更新
|
|
@@ -14809,7 +14810,7 @@ this.UpdateMinuteInfoTooltip=function(data){var tooltipData=data.Tooltip;if(!too
|
|
|
14809
14810
|
this.UpdatMultiSVGIconV2Tooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!tooltipData.Data.Item)return;var item=tooltipData.Data.Item;var aryText=[];if(item&&IFrameSplitOperator.IsObject(item.Text)){var tooltipData=item.Text;if(IFrameSplitOperator.IsNonEmptyArray(tooltipData.AryText)){for(var i=0;i<tooltipData.AryText.length;++i){var tooltipItem=tooltipData.AryText[i];var textItem={Title:tooltipItem.Title,Text:tooltipItem.Text,Color:this.ValueColor};if(tooltipItem.Color)textItem.Color=tooltipItem.Color;if(tooltipItem.Align=="Left")tooltipItem.ClassName=this.ValueAlign.Left;aryText.push(tooltipItem);}}}else{var rowItem={Text:"",HTMLTitle:item.Text,Color:this.ValueColor,IsMergeCell:true};aryText.push(rowItem);}this.AryText=aryText;this.UpdateTableDOM();this.ShowTooltip(data);};//ChartOX 信息
|
|
14810
14811
|
this.UpdatChartOXTooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!tooltipData.Data.Data)return;var item=tooltipData.Data.Data;var period=this.HQChart.Period;var aryText=[];if(ChartData.IsDayPeriod(period,true)){var strStartDate=IFrameSplitOperator.FormatDateString(item.Start.Date,"YYYY-MM-DD");var strEndDate=IFrameSplitOperator.FormatDateString(item.End.Date,"YYYY-MM-DD");aryText.push({Title:"起始时间",Text:strStartDate,Color:this.ValueColor});aryText.push({Title:"结束时间",Text:strEndDate,Color:this.ValueColor});}else if(ChartData.IsMinutePeriod(period,true)){var strStartDate=IFrameSplitOperator.FormatDateString(item.Start.Date);var strStartTime=IFrameSplitOperator.FormatTimeString(item.Start.Time,"HH:MM");var strEndDate=IFrameSplitOperator.FormatDateString(item.End.Date);var strEndTime=IFrameSplitOperator.FormatTimeString(item.End.Time,"HH:MM");aryText.push({Title:"起始时间",Text:strStartDate+' '+strStartTime,Color:this.ValueColor});aryText.push({Title:"结束时间",Text:strEndDate+' '+strEndTime,Color:this.ValueColor});}this.AryText=aryText;this.UpdateTableDOM();this.ShowTooltip(data);};//表头图标
|
|
14811
14812
|
this.ReportHeaderIconTooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!IFrameSplitOperator.IsNonEmptyArray(tooltipData.Data.AryText))return;this.AryText=tooltipData.Data.AryText;this.UpdateTableDOM();this.ShowTooltip(data);};//表格单元格截断内容
|
|
14812
|
-
this.ReportCellTruncateTooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!IFrameSplitOperator.IsNonEmptyArray(tooltipData.Data.AryText))return;var item=tooltipData.Data.AryText[0];if(!item.Text)return;this.AryText=[{Title:item.Text,IsMergeCell:true}];this.UpdateTableDOM();this.ShowTooltip(data);};this.TReportIconTooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!IFrameSplitOperator.IsNonEmptyArray(tooltipData.Data.AryText))return;this.AryText=tooltipData.Data.AryText;this.UpdateTableDOM();this.ShowTooltip(data);};this.UpdateTableDOM=function(){var index=0;for(index=0;index<this.AryText.length&&index<this.MaxRowCount;++index){var outItem=this.AryText[index];var item=this.AryData[index];if(outItem.HTMLTitle)item.TitleSpan.innerHTML=outItem.HTMLTitle;else item.TitleSpan.innerText=outItem.Title;item.TitleSpan.style.color=this.TextColor;if(outItem.HTMLText)item.TextSpan.innerHTML=outItem.HTMLText;else item.TextSpan.innerText=outItem.Text;item.TextSpan.style.color=outItem.Color;item.TextTd.style.color=outItem.Color;if(outItem.ClassName){item.TextSpan.className=outItem.ClassName;}else{if(item.TextSpan.className!=this.ValueAlign.Right)item.TextSpan.className=this.ValueAlign.Right;}if(outItem.IsMergeCell)//合并单元格
|
|
14813
|
+
this.ReportCellTruncateTooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!IFrameSplitOperator.IsNonEmptyArray(tooltipData.Data.AryText))return;var item=tooltipData.Data.AryText[0];if(!item.Text)return;this.AryText=[{Title:item.Text,IsMergeCell:true}];this.UpdateTableDOM();this.ShowTooltip(data);};this.TReportIconTooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!IFrameSplitOperator.IsNonEmptyArray(tooltipData.Data.AryText))return;this.AryText=tooltipData.Data.AryText;this.UpdateTableDOM();this.ShowTooltip(data);};this.DealItemTooltip=function(data){var tooltipData=data.Tooltip;if(!tooltipData.Data||!IFrameSplitOperator.IsNonEmptyArray(tooltipData.Data.AryText))return;this.AryText=tooltipData.Data.AryText;this.UpdateTableDOM();this.ShowTooltip(data);};this.UpdateTableDOM=function(){var index=0;for(index=0;index<this.AryText.length&&index<this.MaxRowCount;++index){var outItem=this.AryText[index];var item=this.AryData[index];if(outItem.HTMLTitle)item.TitleSpan.innerHTML=outItem.HTMLTitle;else item.TitleSpan.innerText=outItem.Title;item.TitleSpan.style.color=this.TextColor;if(outItem.HTMLText)item.TextSpan.innerHTML=outItem.HTMLText;else item.TextSpan.innerText=outItem.Text;item.TextSpan.style.color=outItem.Color;item.TextTd.style.color=outItem.Color;if(outItem.ClassName){item.TextSpan.className=outItem.ClassName;}else{if(item.TextSpan.className!=this.ValueAlign.Right)item.TextSpan.className=this.ValueAlign.Right;}if(outItem.IsMergeCell)//合并单元格
|
|
14813
14814
|
{item.TitleTd.colspan=2;item.TextTd.style.display="none";}else{if(item.TitleTd.colspan!=1)item.TitleTd.colspan=1;item.TextTd.style.display="";}item.Tr.style.display="";if(item.Tr2)item.Tr2.style.display="none";}for(;index<this.MaxRowCount;++index){var item=this.AryData[index];item.Tr.style.display="none";if(item.Tr2)item.Tr2.style.display="none";}};this.GetFormatKLineTooltipText=function(kItem){var data=kItem.Item;var symbol=kItem.Symbol;if(data&&data.Symbol)symbol=symbol;var upperSymbol="";if(symbol)upperSymbol=symbol.toUpperCase();var defaultfloatPrecision=GetfloatPrecision(symbol);//价格小数位数
|
|
14814
14815
|
var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);//日期
|
|
14815
14816
|
var dateItem=this.ForamtDate(data.Date,"YYYY/MM/DD/W",'FloatTooltip-Date');//时间
|
|
@@ -14975,7 +14976,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
|
|
|
14975
14976
|
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);};}/********************************************************************************
|
|
14976
14977
|
* 版本信息输出
|
|
14977
14978
|
*
|
|
14978
|
-
*/var HQCHART_VERSION="1.1.
|
|
14979
|
+
*/var HQCHART_VERSION="1.1.14783";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();//把给外界调用的方法暴露出来
|
|
14979
14980
|
exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
|
|
14980
14981
|
// BaseIndex:BaseIndex,
|
|
14981
14982
|
// ChartLine:ChartLine,
|
package/package.json
CHANGED
|
@@ -1348,6 +1348,16 @@ function JSFloatTooltip()
|
|
|
1348
1348
|
this.TReportIconTooltip(data);
|
|
1349
1349
|
}
|
|
1350
1350
|
}
|
|
1351
|
+
else if (data.DataType==5) //成交笔数
|
|
1352
|
+
{
|
|
1353
|
+
var tooltipData=data.Tooltip;
|
|
1354
|
+
if (!tooltipData) return;
|
|
1355
|
+
|
|
1356
|
+
if (tooltipData.Type==2) //提示信息
|
|
1357
|
+
{
|
|
1358
|
+
this.DealItemTooltip(data);
|
|
1359
|
+
}
|
|
1360
|
+
}
|
|
1351
1361
|
}
|
|
1352
1362
|
|
|
1353
1363
|
this.UpdateRealtimeHQTooltip=function(data)
|
|
@@ -1639,6 +1649,18 @@ function JSFloatTooltip()
|
|
|
1639
1649
|
|
|
1640
1650
|
this.ShowTooltip(data);
|
|
1641
1651
|
}
|
|
1652
|
+
|
|
1653
|
+
this.DealItemTooltip=function(data)
|
|
1654
|
+
{
|
|
1655
|
+
var tooltipData=data.Tooltip;
|
|
1656
|
+
if (!tooltipData.Data || !IFrameSplitOperator.IsNonEmptyArray(tooltipData.Data.AryText)) return;
|
|
1657
|
+
|
|
1658
|
+
this.AryText=tooltipData.Data.AryText;
|
|
1659
|
+
|
|
1660
|
+
this.UpdateTableDOM();
|
|
1661
|
+
|
|
1662
|
+
this.ShowTooltip(data);
|
|
1663
|
+
}
|
|
1642
1664
|
|
|
1643
1665
|
this.UpdateTableDOM=function()
|
|
1644
1666
|
{
|
|
@@ -72,6 +72,7 @@ function JSDealChart(divElement)
|
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
if (option.MinuteChartTooltip && option.MinuteChartTooltip.Enable) chart.InitalMinuteChartTooltip(option.MinuteChartTooltip);
|
|
75
|
+
if (option.FloatTooltip && option.FloatTooltip.Enable) chart.InitalFloatTooltip(option.FloatTooltip); //提示信息
|
|
75
76
|
|
|
76
77
|
if (!option.Symbol)
|
|
77
78
|
{
|
|
@@ -215,6 +216,7 @@ function JSDealChartContainer(uielement)
|
|
|
215
216
|
this.LoadDataSplashTitle="数据加载中"; //下载数据提示信息
|
|
216
217
|
|
|
217
218
|
this.TooltipMinuteChart; //分时图
|
|
219
|
+
this.FloatTooltip; //提示浮框
|
|
218
220
|
|
|
219
221
|
this.UIElement=uielement;
|
|
220
222
|
this.LastPoint=new Point(); //鼠标位置
|
|
@@ -228,6 +230,9 @@ function JSDealChartContainer(uielement)
|
|
|
228
230
|
{
|
|
229
231
|
this.IsDestroy=true;
|
|
230
232
|
this.StopAutoUpdate();
|
|
233
|
+
|
|
234
|
+
this.DestroyMinuteChartTooltip();
|
|
235
|
+
this.DestroyFloatTooltip();
|
|
231
236
|
}
|
|
232
237
|
|
|
233
238
|
this.EnableFilterData=false; //是否启动筛选
|
|
@@ -272,9 +277,55 @@ function JSDealChartContainer(uielement)
|
|
|
272
277
|
this.TooltipMinuteChart.Hide();
|
|
273
278
|
}
|
|
274
279
|
|
|
280
|
+
this.HideFloatTooltip=function()
|
|
281
|
+
{
|
|
282
|
+
if (!this.FloatTooltip) return;
|
|
283
|
+
|
|
284
|
+
this.FloatTooltip.Hide();
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
this.DestroyFloatTooltip=function()
|
|
288
|
+
{
|
|
289
|
+
if (!this.FloatTooltip) return;
|
|
290
|
+
|
|
291
|
+
this.FloatTooltip.Destroy();
|
|
292
|
+
this.FloatTooltip=null;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
this.InitalFloatTooltip=function(option)
|
|
296
|
+
{
|
|
297
|
+
if (this.FloatTooltip) return;
|
|
298
|
+
|
|
299
|
+
this.FloatTooltip=new JSFloatTooltip();
|
|
300
|
+
this.FloatTooltip.Inital(this, option);
|
|
301
|
+
this.FloatTooltip.Create();
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
this.DrawFloatTooltip=function(point,toolTip)
|
|
305
|
+
{
|
|
306
|
+
if (!this.FloatTooltip) return;
|
|
307
|
+
|
|
308
|
+
this.UpdateFloatTooltip(point, toolTip)
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
this.UpdateFloatTooltip=function(point, toolTip)
|
|
312
|
+
{
|
|
313
|
+
if (!this.FloatTooltip) return;
|
|
314
|
+
|
|
315
|
+
var sendData=
|
|
316
|
+
{
|
|
317
|
+
Tooltip:toolTip,
|
|
318
|
+
Point:point,
|
|
319
|
+
DataType:5,
|
|
320
|
+
};
|
|
321
|
+
|
|
322
|
+
this.FloatTooltip.Update(sendData);
|
|
323
|
+
}
|
|
324
|
+
|
|
275
325
|
this.HideAllTooltip=function()
|
|
276
326
|
{
|
|
277
327
|
this.HideMinuteChartTooltip();
|
|
328
|
+
this.HideFloatTooltip();
|
|
278
329
|
}
|
|
279
330
|
|
|
280
331
|
//筛选数据
|
|
@@ -386,6 +437,8 @@ function JSDealChartContainer(uielement)
|
|
|
386
437
|
this.UIElement.ondblclick=(e)=>{ this.UIOnDblClick(e); }
|
|
387
438
|
this.UIElement.oncontextmenu=(e)=> { this.UIOnContextMenu(e); }
|
|
388
439
|
this.UIElement.onmousemove=(e)=>{ this.UIOnMouseMove(e);}
|
|
440
|
+
this.UIElement.onmouseout=(e)=>{ this.UIOnMounseOut(e); }
|
|
441
|
+
this.UIElement.onmouseleave=(e)=>{ this.UIOnMouseleave(e); }
|
|
389
442
|
}
|
|
390
443
|
|
|
391
444
|
this.Draw=function()
|
|
@@ -862,13 +915,12 @@ function JSDealChartContainer(uielement)
|
|
|
862
915
|
chartTooltipData={ Symbol:tooltipData.Stock.OriginalSymbol, Rect:tooltipData.Rect };
|
|
863
916
|
}
|
|
864
917
|
}
|
|
918
|
+
*/
|
|
865
919
|
else
|
|
866
920
|
{
|
|
867
921
|
this.LastMouseStatus.TooltipStatus={ X:x, Y:y, Data:tooltipData, ClientX:e.clientX, ClientY:e.clientY };
|
|
868
922
|
bDrawTooltip=true;
|
|
869
923
|
}
|
|
870
|
-
*/
|
|
871
|
-
|
|
872
924
|
}
|
|
873
925
|
}
|
|
874
926
|
|
|
@@ -876,6 +928,17 @@ function JSDealChartContainer(uielement)
|
|
|
876
928
|
|
|
877
929
|
if (bDraw) this.Draw();
|
|
878
930
|
|
|
931
|
+
if (this.LastMouseStatus.TooltipStatus)
|
|
932
|
+
{
|
|
933
|
+
var xTooltip = e.clientX-this.UIElement.getBoundingClientRect().left;
|
|
934
|
+
var yTooltip = e.clientY-this.UIElement.getBoundingClientRect().top;
|
|
935
|
+
this.DrawFloatTooltip({X:xTooltip, Y:yTooltip, YMove:20/pixelTatio},this.LastMouseStatus.TooltipStatus.Data);
|
|
936
|
+
}
|
|
937
|
+
else
|
|
938
|
+
{
|
|
939
|
+
this.HideFloatTooltip();
|
|
940
|
+
}
|
|
941
|
+
|
|
879
942
|
if (!bShowMinuteTooltip) this.HideMinuteChartTooltip();
|
|
880
943
|
if (bShowMinuteTooltip) this.ShowMinuteChartTooltip(null, null, chartTooltipData);
|
|
881
944
|
}
|
|
@@ -895,6 +958,16 @@ function JSDealChartContainer(uielement)
|
|
|
895
958
|
e.preventDefault();
|
|
896
959
|
}
|
|
897
960
|
|
|
961
|
+
this.UIOnMounseOut=function(e)
|
|
962
|
+
{
|
|
963
|
+
this.HideAllTooltip();
|
|
964
|
+
}
|
|
965
|
+
|
|
966
|
+
this.UIOnMouseleave=function(e)
|
|
967
|
+
{
|
|
968
|
+
this.HideAllTooltip();
|
|
969
|
+
}
|
|
970
|
+
|
|
898
971
|
this.GotoNextPage=function()
|
|
899
972
|
{
|
|
900
973
|
if (!this.Data || !IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return false;
|
|
@@ -1706,7 +1779,14 @@ function ChartDealList()
|
|
|
1706
1779
|
this.DrawItemText(text, textColor, textAlign, left, top, itemWidth);
|
|
1707
1780
|
}
|
|
1708
1781
|
|
|
1709
|
-
|
|
1782
|
+
|
|
1783
|
+
if (drawInfo.Tooltip)
|
|
1784
|
+
{
|
|
1785
|
+
//Type:2=数据提示信息
|
|
1786
|
+
var tooltipData={ Rect:rtItem, Data:data, Index:dataIndex, Column:item, Type:drawInfo.Tooltip.Type, Data:drawInfo.Tooltip.Data };
|
|
1787
|
+
this.TooltipRect.push(tooltipData);
|
|
1788
|
+
}
|
|
1789
|
+
else if (item.ChartTooltip && item.ChartTooltip.Enable && IFrameSplitOperator.IsNumber(item.ChartTooltip.Type)) //Type 20分时图 21K线图
|
|
1710
1790
|
{
|
|
1711
1791
|
var tooltipData={ Rect:rtItem, Data:data, Index:dataIndex, Column:item, Type:item.ChartTooltip.Type };
|
|
1712
1792
|
this.TooltipRect.push(tooltipData);
|
|
@@ -1779,6 +1859,15 @@ function ChartDealList()
|
|
|
1779
1859
|
{
|
|
1780
1860
|
drawInfo.Text=item;
|
|
1781
1861
|
}
|
|
1862
|
+
|
|
1863
|
+
if (item && item.Tooltip && IFrameSplitOperator.IsNonEmptyArray(item.Tooltip.AryText))
|
|
1864
|
+
{
|
|
1865
|
+
drawInfo.Tooltip=
|
|
1866
|
+
{
|
|
1867
|
+
Type:2,
|
|
1868
|
+
Data:{ AryText:item.Tooltip.AryText }
|
|
1869
|
+
}
|
|
1870
|
+
}
|
|
1782
1871
|
}
|
|
1783
1872
|
|
|
1784
1873
|
this.GetUpDownColor=function(price, price2)
|
|
@@ -581,7 +581,7 @@ JSIndexScript.prototype.MACD=function()
|
|
|
581
581
|
{
|
|
582
582
|
let data=
|
|
583
583
|
{
|
|
584
|
-
Name:'MACD', Description:'平滑异同平均', IsMainIndex:false,
|
|
584
|
+
Name:'MACD', Description:'平滑异同平均', IsMainIndex:false,FloatPrecision:3,
|
|
585
585
|
Args:[ { Name:'SHORT', Value:12}, { Name:'LONG', Value:26}, { Name:'MID', Value:9} ],
|
|
586
586
|
Script: //脚本
|
|
587
587
|
'DIF:EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);\n\
|
|
@@ -490,6 +490,7 @@ function JSReportChartContainer(uielement)
|
|
|
490
490
|
//
|
|
491
491
|
this.TooltipMinuteChart; //分时图
|
|
492
492
|
this.TooltipKLineChart; //分时图
|
|
493
|
+
this.FloatTooltip; //提示浮框
|
|
493
494
|
|
|
494
495
|
//MouseOnStatus:{ RowIndex:行, ColumnIndex:列}
|
|
495
496
|
this.LastMouseStatus={ MoveStatus:null, TooltipStatus:null, MouseOnStatus:null };
|
|
@@ -593,7 +593,7 @@ JSIndexScript.prototype.MACD=function()
|
|
|
593
593
|
{
|
|
594
594
|
let data=
|
|
595
595
|
{
|
|
596
|
-
Name:'MACD', Description:'平滑异同平均', IsMainIndex:false,
|
|
596
|
+
Name:'MACD', Description:'平滑异同平均', IsMainIndex:false,FloatPrecision:3,
|
|
597
597
|
Args:[ { Name:'SHORT', Value:12}, { Name:'LONG', Value:26}, { Name:'MID', Value:9} ],
|
|
598
598
|
Script: //脚本
|
|
599
599
|
'DIF:EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);\n\
|
|
@@ -133880,6 +133880,7 @@ function JSDealChart(divElement)
|
|
|
133880
133880
|
}
|
|
133881
133881
|
|
|
133882
133882
|
if (option.MinuteChartTooltip && option.MinuteChartTooltip.Enable) chart.InitalMinuteChartTooltip(option.MinuteChartTooltip);
|
|
133883
|
+
if (option.FloatTooltip && option.FloatTooltip.Enable) chart.InitalFloatTooltip(option.FloatTooltip); //提示信息
|
|
133883
133884
|
|
|
133884
133885
|
if (!option.Symbol)
|
|
133885
133886
|
{
|
|
@@ -134023,6 +134024,7 @@ function JSDealChartContainer(uielement)
|
|
|
134023
134024
|
this.LoadDataSplashTitle="数据加载中"; //下载数据提示信息
|
|
134024
134025
|
|
|
134025
134026
|
this.TooltipMinuteChart; //分时图
|
|
134027
|
+
this.FloatTooltip; //提示浮框
|
|
134026
134028
|
|
|
134027
134029
|
this.UIElement=uielement;
|
|
134028
134030
|
this.LastPoint=new Point(); //鼠标位置
|
|
@@ -134036,6 +134038,9 @@ function JSDealChartContainer(uielement)
|
|
|
134036
134038
|
{
|
|
134037
134039
|
this.IsDestroy=true;
|
|
134038
134040
|
this.StopAutoUpdate();
|
|
134041
|
+
|
|
134042
|
+
this.DestroyMinuteChartTooltip();
|
|
134043
|
+
this.DestroyFloatTooltip();
|
|
134039
134044
|
}
|
|
134040
134045
|
|
|
134041
134046
|
this.EnableFilterData=false; //是否启动筛选
|
|
@@ -134080,9 +134085,55 @@ function JSDealChartContainer(uielement)
|
|
|
134080
134085
|
this.TooltipMinuteChart.Hide();
|
|
134081
134086
|
}
|
|
134082
134087
|
|
|
134088
|
+
this.HideFloatTooltip=function()
|
|
134089
|
+
{
|
|
134090
|
+
if (!this.FloatTooltip) return;
|
|
134091
|
+
|
|
134092
|
+
this.FloatTooltip.Hide();
|
|
134093
|
+
}
|
|
134094
|
+
|
|
134095
|
+
this.DestroyFloatTooltip=function()
|
|
134096
|
+
{
|
|
134097
|
+
if (!this.FloatTooltip) return;
|
|
134098
|
+
|
|
134099
|
+
this.FloatTooltip.Destroy();
|
|
134100
|
+
this.FloatTooltip=null;
|
|
134101
|
+
}
|
|
134102
|
+
|
|
134103
|
+
this.InitalFloatTooltip=function(option)
|
|
134104
|
+
{
|
|
134105
|
+
if (this.FloatTooltip) return;
|
|
134106
|
+
|
|
134107
|
+
this.FloatTooltip=new JSFloatTooltip();
|
|
134108
|
+
this.FloatTooltip.Inital(this, option);
|
|
134109
|
+
this.FloatTooltip.Create();
|
|
134110
|
+
}
|
|
134111
|
+
|
|
134112
|
+
this.DrawFloatTooltip=function(point,toolTip)
|
|
134113
|
+
{
|
|
134114
|
+
if (!this.FloatTooltip) return;
|
|
134115
|
+
|
|
134116
|
+
this.UpdateFloatTooltip(point, toolTip)
|
|
134117
|
+
}
|
|
134118
|
+
|
|
134119
|
+
this.UpdateFloatTooltip=function(point, toolTip)
|
|
134120
|
+
{
|
|
134121
|
+
if (!this.FloatTooltip) return;
|
|
134122
|
+
|
|
134123
|
+
var sendData=
|
|
134124
|
+
{
|
|
134125
|
+
Tooltip:toolTip,
|
|
134126
|
+
Point:point,
|
|
134127
|
+
DataType:5,
|
|
134128
|
+
};
|
|
134129
|
+
|
|
134130
|
+
this.FloatTooltip.Update(sendData);
|
|
134131
|
+
}
|
|
134132
|
+
|
|
134083
134133
|
this.HideAllTooltip=function()
|
|
134084
134134
|
{
|
|
134085
134135
|
this.HideMinuteChartTooltip();
|
|
134136
|
+
this.HideFloatTooltip();
|
|
134086
134137
|
}
|
|
134087
134138
|
|
|
134088
134139
|
//筛选数据
|
|
@@ -134194,6 +134245,8 @@ function JSDealChartContainer(uielement)
|
|
|
134194
134245
|
this.UIElement.ondblclick=(e)=>{ this.UIOnDblClick(e); }
|
|
134195
134246
|
this.UIElement.oncontextmenu=(e)=> { this.UIOnContextMenu(e); }
|
|
134196
134247
|
this.UIElement.onmousemove=(e)=>{ this.UIOnMouseMove(e);}
|
|
134248
|
+
this.UIElement.onmouseout=(e)=>{ this.UIOnMounseOut(e); }
|
|
134249
|
+
this.UIElement.onmouseleave=(e)=>{ this.UIOnMouseleave(e); }
|
|
134197
134250
|
}
|
|
134198
134251
|
|
|
134199
134252
|
this.Draw=function()
|
|
@@ -134670,13 +134723,12 @@ function JSDealChartContainer(uielement)
|
|
|
134670
134723
|
chartTooltipData={ Symbol:tooltipData.Stock.OriginalSymbol, Rect:tooltipData.Rect };
|
|
134671
134724
|
}
|
|
134672
134725
|
}
|
|
134726
|
+
*/
|
|
134673
134727
|
else
|
|
134674
134728
|
{
|
|
134675
134729
|
this.LastMouseStatus.TooltipStatus={ X:x, Y:y, Data:tooltipData, ClientX:e.clientX, ClientY:e.clientY };
|
|
134676
134730
|
bDrawTooltip=true;
|
|
134677
134731
|
}
|
|
134678
|
-
*/
|
|
134679
|
-
|
|
134680
134732
|
}
|
|
134681
134733
|
}
|
|
134682
134734
|
|
|
@@ -134684,6 +134736,17 @@ function JSDealChartContainer(uielement)
|
|
|
134684
134736
|
|
|
134685
134737
|
if (bDraw) this.Draw();
|
|
134686
134738
|
|
|
134739
|
+
if (this.LastMouseStatus.TooltipStatus)
|
|
134740
|
+
{
|
|
134741
|
+
var xTooltip = e.clientX-this.UIElement.getBoundingClientRect().left;
|
|
134742
|
+
var yTooltip = e.clientY-this.UIElement.getBoundingClientRect().top;
|
|
134743
|
+
this.DrawFloatTooltip({X:xTooltip, Y:yTooltip, YMove:20/pixelTatio},this.LastMouseStatus.TooltipStatus.Data);
|
|
134744
|
+
}
|
|
134745
|
+
else
|
|
134746
|
+
{
|
|
134747
|
+
this.HideFloatTooltip();
|
|
134748
|
+
}
|
|
134749
|
+
|
|
134687
134750
|
if (!bShowMinuteTooltip) this.HideMinuteChartTooltip();
|
|
134688
134751
|
if (bShowMinuteTooltip) this.ShowMinuteChartTooltip(null, null, chartTooltipData);
|
|
134689
134752
|
}
|
|
@@ -134703,6 +134766,16 @@ function JSDealChartContainer(uielement)
|
|
|
134703
134766
|
e.preventDefault();
|
|
134704
134767
|
}
|
|
134705
134768
|
|
|
134769
|
+
this.UIOnMounseOut=function(e)
|
|
134770
|
+
{
|
|
134771
|
+
this.HideAllTooltip();
|
|
134772
|
+
}
|
|
134773
|
+
|
|
134774
|
+
this.UIOnMouseleave=function(e)
|
|
134775
|
+
{
|
|
134776
|
+
this.HideAllTooltip();
|
|
134777
|
+
}
|
|
134778
|
+
|
|
134706
134779
|
this.GotoNextPage=function()
|
|
134707
134780
|
{
|
|
134708
134781
|
if (!this.Data || !IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return false;
|
|
@@ -135514,7 +135587,14 @@ function ChartDealList()
|
|
|
135514
135587
|
this.DrawItemText(text, textColor, textAlign, left, top, itemWidth);
|
|
135515
135588
|
}
|
|
135516
135589
|
|
|
135517
|
-
|
|
135590
|
+
|
|
135591
|
+
if (drawInfo.Tooltip)
|
|
135592
|
+
{
|
|
135593
|
+
//Type:2=数据提示信息
|
|
135594
|
+
var tooltipData={ Rect:rtItem, Data:data, Index:dataIndex, Column:item, Type:drawInfo.Tooltip.Type, Data:drawInfo.Tooltip.Data };
|
|
135595
|
+
this.TooltipRect.push(tooltipData);
|
|
135596
|
+
}
|
|
135597
|
+
else if (item.ChartTooltip && item.ChartTooltip.Enable && IFrameSplitOperator.IsNumber(item.ChartTooltip.Type)) //Type 20分时图 21K线图
|
|
135518
135598
|
{
|
|
135519
135599
|
var tooltipData={ Rect:rtItem, Data:data, Index:dataIndex, Column:item, Type:item.ChartTooltip.Type };
|
|
135520
135600
|
this.TooltipRect.push(tooltipData);
|
|
@@ -135587,6 +135667,15 @@ function ChartDealList()
|
|
|
135587
135667
|
{
|
|
135588
135668
|
drawInfo.Text=item;
|
|
135589
135669
|
}
|
|
135670
|
+
|
|
135671
|
+
if (item && item.Tooltip && IFrameSplitOperator.IsNonEmptyArray(item.Tooltip.AryText))
|
|
135672
|
+
{
|
|
135673
|
+
drawInfo.Tooltip=
|
|
135674
|
+
{
|
|
135675
|
+
Type:2,
|
|
135676
|
+
Data:{ AryText:item.Tooltip.AryText }
|
|
135677
|
+
}
|
|
135678
|
+
}
|
|
135590
135679
|
}
|
|
135591
135680
|
|
|
135592
135681
|
this.GetUpDownColor=function(price, price2)
|
|
@@ -136349,6 +136438,7 @@ function JSReportChartContainer(uielement)
|
|
|
136349
136438
|
//
|
|
136350
136439
|
this.TooltipMinuteChart; //分时图
|
|
136351
136440
|
this.TooltipKLineChart; //分时图
|
|
136441
|
+
this.FloatTooltip; //提示浮框
|
|
136352
136442
|
|
|
136353
136443
|
//MouseOnStatus:{ RowIndex:行, ColumnIndex:列}
|
|
136354
136444
|
this.LastMouseStatus={ MoveStatus:null, TooltipStatus:null, MouseOnStatus:null };
|
|
@@ -148941,7 +149031,7 @@ function ScrollBarBGChart()
|
|
|
148941
149031
|
|
|
148942
149032
|
|
|
148943
149033
|
|
|
148944
|
-
var HQCHART_VERSION="1.1.
|
|
149034
|
+
var HQCHART_VERSION="1.1.14783";
|
|
148945
149035
|
|
|
148946
149036
|
function PrintHQChartVersion()
|
|
148947
149037
|
{
|
|
@@ -637,7 +637,7 @@ JSIndexScript.prototype.MACD=function()
|
|
|
637
637
|
{
|
|
638
638
|
let data=
|
|
639
639
|
{
|
|
640
|
-
Name:'MACD', Description:'平滑异同平均', IsMainIndex:false,
|
|
640
|
+
Name:'MACD', Description:'平滑异同平均', IsMainIndex:false,FloatPrecision:3,
|
|
641
641
|
Args:[ { Name:'SHORT', Value:12}, { Name:'LONG', Value:26}, { Name:'MID', Value:9} ],
|
|
642
642
|
Script: //脚本
|
|
643
643
|
'DIF:EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);\n\
|
|
@@ -133924,6 +133924,7 @@ function JSDealChart(divElement)
|
|
|
133924
133924
|
}
|
|
133925
133925
|
|
|
133926
133926
|
if (option.MinuteChartTooltip && option.MinuteChartTooltip.Enable) chart.InitalMinuteChartTooltip(option.MinuteChartTooltip);
|
|
133927
|
+
if (option.FloatTooltip && option.FloatTooltip.Enable) chart.InitalFloatTooltip(option.FloatTooltip); //提示信息
|
|
133927
133928
|
|
|
133928
133929
|
if (!option.Symbol)
|
|
133929
133930
|
{
|
|
@@ -134067,6 +134068,7 @@ function JSDealChartContainer(uielement)
|
|
|
134067
134068
|
this.LoadDataSplashTitle="数据加载中"; //下载数据提示信息
|
|
134068
134069
|
|
|
134069
134070
|
this.TooltipMinuteChart; //分时图
|
|
134071
|
+
this.FloatTooltip; //提示浮框
|
|
134070
134072
|
|
|
134071
134073
|
this.UIElement=uielement;
|
|
134072
134074
|
this.LastPoint=new Point(); //鼠标位置
|
|
@@ -134080,6 +134082,9 @@ function JSDealChartContainer(uielement)
|
|
|
134080
134082
|
{
|
|
134081
134083
|
this.IsDestroy=true;
|
|
134082
134084
|
this.StopAutoUpdate();
|
|
134085
|
+
|
|
134086
|
+
this.DestroyMinuteChartTooltip();
|
|
134087
|
+
this.DestroyFloatTooltip();
|
|
134083
134088
|
}
|
|
134084
134089
|
|
|
134085
134090
|
this.EnableFilterData=false; //是否启动筛选
|
|
@@ -134124,9 +134129,55 @@ function JSDealChartContainer(uielement)
|
|
|
134124
134129
|
this.TooltipMinuteChart.Hide();
|
|
134125
134130
|
}
|
|
134126
134131
|
|
|
134132
|
+
this.HideFloatTooltip=function()
|
|
134133
|
+
{
|
|
134134
|
+
if (!this.FloatTooltip) return;
|
|
134135
|
+
|
|
134136
|
+
this.FloatTooltip.Hide();
|
|
134137
|
+
}
|
|
134138
|
+
|
|
134139
|
+
this.DestroyFloatTooltip=function()
|
|
134140
|
+
{
|
|
134141
|
+
if (!this.FloatTooltip) return;
|
|
134142
|
+
|
|
134143
|
+
this.FloatTooltip.Destroy();
|
|
134144
|
+
this.FloatTooltip=null;
|
|
134145
|
+
}
|
|
134146
|
+
|
|
134147
|
+
this.InitalFloatTooltip=function(option)
|
|
134148
|
+
{
|
|
134149
|
+
if (this.FloatTooltip) return;
|
|
134150
|
+
|
|
134151
|
+
this.FloatTooltip=new JSFloatTooltip();
|
|
134152
|
+
this.FloatTooltip.Inital(this, option);
|
|
134153
|
+
this.FloatTooltip.Create();
|
|
134154
|
+
}
|
|
134155
|
+
|
|
134156
|
+
this.DrawFloatTooltip=function(point,toolTip)
|
|
134157
|
+
{
|
|
134158
|
+
if (!this.FloatTooltip) return;
|
|
134159
|
+
|
|
134160
|
+
this.UpdateFloatTooltip(point, toolTip)
|
|
134161
|
+
}
|
|
134162
|
+
|
|
134163
|
+
this.UpdateFloatTooltip=function(point, toolTip)
|
|
134164
|
+
{
|
|
134165
|
+
if (!this.FloatTooltip) return;
|
|
134166
|
+
|
|
134167
|
+
var sendData=
|
|
134168
|
+
{
|
|
134169
|
+
Tooltip:toolTip,
|
|
134170
|
+
Point:point,
|
|
134171
|
+
DataType:5,
|
|
134172
|
+
};
|
|
134173
|
+
|
|
134174
|
+
this.FloatTooltip.Update(sendData);
|
|
134175
|
+
}
|
|
134176
|
+
|
|
134127
134177
|
this.HideAllTooltip=function()
|
|
134128
134178
|
{
|
|
134129
134179
|
this.HideMinuteChartTooltip();
|
|
134180
|
+
this.HideFloatTooltip();
|
|
134130
134181
|
}
|
|
134131
134182
|
|
|
134132
134183
|
//筛选数据
|
|
@@ -134238,6 +134289,8 @@ function JSDealChartContainer(uielement)
|
|
|
134238
134289
|
this.UIElement.ondblclick=(e)=>{ this.UIOnDblClick(e); }
|
|
134239
134290
|
this.UIElement.oncontextmenu=(e)=> { this.UIOnContextMenu(e); }
|
|
134240
134291
|
this.UIElement.onmousemove=(e)=>{ this.UIOnMouseMove(e);}
|
|
134292
|
+
this.UIElement.onmouseout=(e)=>{ this.UIOnMounseOut(e); }
|
|
134293
|
+
this.UIElement.onmouseleave=(e)=>{ this.UIOnMouseleave(e); }
|
|
134241
134294
|
}
|
|
134242
134295
|
|
|
134243
134296
|
this.Draw=function()
|
|
@@ -134714,13 +134767,12 @@ function JSDealChartContainer(uielement)
|
|
|
134714
134767
|
chartTooltipData={ Symbol:tooltipData.Stock.OriginalSymbol, Rect:tooltipData.Rect };
|
|
134715
134768
|
}
|
|
134716
134769
|
}
|
|
134770
|
+
*/
|
|
134717
134771
|
else
|
|
134718
134772
|
{
|
|
134719
134773
|
this.LastMouseStatus.TooltipStatus={ X:x, Y:y, Data:tooltipData, ClientX:e.clientX, ClientY:e.clientY };
|
|
134720
134774
|
bDrawTooltip=true;
|
|
134721
134775
|
}
|
|
134722
|
-
*/
|
|
134723
|
-
|
|
134724
134776
|
}
|
|
134725
134777
|
}
|
|
134726
134778
|
|
|
@@ -134728,6 +134780,17 @@ function JSDealChartContainer(uielement)
|
|
|
134728
134780
|
|
|
134729
134781
|
if (bDraw) this.Draw();
|
|
134730
134782
|
|
|
134783
|
+
if (this.LastMouseStatus.TooltipStatus)
|
|
134784
|
+
{
|
|
134785
|
+
var xTooltip = e.clientX-this.UIElement.getBoundingClientRect().left;
|
|
134786
|
+
var yTooltip = e.clientY-this.UIElement.getBoundingClientRect().top;
|
|
134787
|
+
this.DrawFloatTooltip({X:xTooltip, Y:yTooltip, YMove:20/pixelTatio},this.LastMouseStatus.TooltipStatus.Data);
|
|
134788
|
+
}
|
|
134789
|
+
else
|
|
134790
|
+
{
|
|
134791
|
+
this.HideFloatTooltip();
|
|
134792
|
+
}
|
|
134793
|
+
|
|
134731
134794
|
if (!bShowMinuteTooltip) this.HideMinuteChartTooltip();
|
|
134732
134795
|
if (bShowMinuteTooltip) this.ShowMinuteChartTooltip(null, null, chartTooltipData);
|
|
134733
134796
|
}
|
|
@@ -134747,6 +134810,16 @@ function JSDealChartContainer(uielement)
|
|
|
134747
134810
|
e.preventDefault();
|
|
134748
134811
|
}
|
|
134749
134812
|
|
|
134813
|
+
this.UIOnMounseOut=function(e)
|
|
134814
|
+
{
|
|
134815
|
+
this.HideAllTooltip();
|
|
134816
|
+
}
|
|
134817
|
+
|
|
134818
|
+
this.UIOnMouseleave=function(e)
|
|
134819
|
+
{
|
|
134820
|
+
this.HideAllTooltip();
|
|
134821
|
+
}
|
|
134822
|
+
|
|
134750
134823
|
this.GotoNextPage=function()
|
|
134751
134824
|
{
|
|
134752
134825
|
if (!this.Data || !IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return false;
|
|
@@ -135558,7 +135631,14 @@ function ChartDealList()
|
|
|
135558
135631
|
this.DrawItemText(text, textColor, textAlign, left, top, itemWidth);
|
|
135559
135632
|
}
|
|
135560
135633
|
|
|
135561
|
-
|
|
135634
|
+
|
|
135635
|
+
if (drawInfo.Tooltip)
|
|
135636
|
+
{
|
|
135637
|
+
//Type:2=数据提示信息
|
|
135638
|
+
var tooltipData={ Rect:rtItem, Data:data, Index:dataIndex, Column:item, Type:drawInfo.Tooltip.Type, Data:drawInfo.Tooltip.Data };
|
|
135639
|
+
this.TooltipRect.push(tooltipData);
|
|
135640
|
+
}
|
|
135641
|
+
else if (item.ChartTooltip && item.ChartTooltip.Enable && IFrameSplitOperator.IsNumber(item.ChartTooltip.Type)) //Type 20分时图 21K线图
|
|
135562
135642
|
{
|
|
135563
135643
|
var tooltipData={ Rect:rtItem, Data:data, Index:dataIndex, Column:item, Type:item.ChartTooltip.Type };
|
|
135564
135644
|
this.TooltipRect.push(tooltipData);
|
|
@@ -135631,6 +135711,15 @@ function ChartDealList()
|
|
|
135631
135711
|
{
|
|
135632
135712
|
drawInfo.Text=item;
|
|
135633
135713
|
}
|
|
135714
|
+
|
|
135715
|
+
if (item && item.Tooltip && IFrameSplitOperator.IsNonEmptyArray(item.Tooltip.AryText))
|
|
135716
|
+
{
|
|
135717
|
+
drawInfo.Tooltip=
|
|
135718
|
+
{
|
|
135719
|
+
Type:2,
|
|
135720
|
+
Data:{ AryText:item.Tooltip.AryText }
|
|
135721
|
+
}
|
|
135722
|
+
}
|
|
135634
135723
|
}
|
|
135635
135724
|
|
|
135636
135725
|
this.GetUpDownColor=function(price, price2)
|
|
@@ -136393,6 +136482,7 @@ function JSReportChartContainer(uielement)
|
|
|
136393
136482
|
//
|
|
136394
136483
|
this.TooltipMinuteChart; //分时图
|
|
136395
136484
|
this.TooltipKLineChart; //分时图
|
|
136485
|
+
this.FloatTooltip; //提示浮框
|
|
136396
136486
|
|
|
136397
136487
|
//MouseOnStatus:{ RowIndex:行, ColumnIndex:列}
|
|
136398
136488
|
this.LastMouseStatus={ MoveStatus:null, TooltipStatus:null, MouseOnStatus:null };
|
|
@@ -156719,6 +156809,16 @@ function JSFloatTooltip()
|
|
|
156719
156809
|
this.TReportIconTooltip(data);
|
|
156720
156810
|
}
|
|
156721
156811
|
}
|
|
156812
|
+
else if (data.DataType==5) //成交笔数
|
|
156813
|
+
{
|
|
156814
|
+
var tooltipData=data.Tooltip;
|
|
156815
|
+
if (!tooltipData) return;
|
|
156816
|
+
|
|
156817
|
+
if (tooltipData.Type==2) //提示信息
|
|
156818
|
+
{
|
|
156819
|
+
this.DealItemTooltip(data);
|
|
156820
|
+
}
|
|
156821
|
+
}
|
|
156722
156822
|
}
|
|
156723
156823
|
|
|
156724
156824
|
this.UpdateRealtimeHQTooltip=function(data)
|
|
@@ -157010,6 +157110,18 @@ function JSFloatTooltip()
|
|
|
157010
157110
|
|
|
157011
157111
|
this.ShowTooltip(data);
|
|
157012
157112
|
}
|
|
157113
|
+
|
|
157114
|
+
this.DealItemTooltip=function(data)
|
|
157115
|
+
{
|
|
157116
|
+
var tooltipData=data.Tooltip;
|
|
157117
|
+
if (!tooltipData.Data || !IFrameSplitOperator.IsNonEmptyArray(tooltipData.Data.AryText)) return;
|
|
157118
|
+
|
|
157119
|
+
this.AryText=tooltipData.Data.AryText;
|
|
157120
|
+
|
|
157121
|
+
this.UpdateTableDOM();
|
|
157122
|
+
|
|
157123
|
+
this.ShowTooltip(data);
|
|
157124
|
+
}
|
|
157013
157125
|
|
|
157014
157126
|
this.UpdateTableDOM=function()
|
|
157015
157127
|
{
|
|
@@ -159888,7 +160000,7 @@ function HQChartScriptWorker()
|
|
|
159888
160000
|
|
|
159889
160001
|
|
|
159890
160002
|
|
|
159891
|
-
var HQCHART_VERSION="1.1.
|
|
160003
|
+
var HQCHART_VERSION="1.1.14783";
|
|
159892
160004
|
|
|
159893
160005
|
function PrintHQChartVersion()
|
|
159894
160006
|
{
|