hqchart 1.1.14283 → 1.1.14289
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 +61 -28
- package/package.json +1 -1
- package/src/jscommon/umychart.complier.js +52 -1
- package/src/jscommon/umychart.js +212 -15
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +265 -17
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +265 -17
package/lib/umychart.vue.js
CHANGED
|
@@ -1671,10 +1671,11 @@ this.IndexChartDrag;//拖拽指标图形
|
|
|
1671
1671
|
this.EnableIndexChartDrag=false;this.GlobalOption={IsValueFullRange:false,IsDisplayLatest:false,SelectedBorder:{Mode:0,SelFrame:0},//边框选中模式 Mode:0=禁用 1=右侧标记选中 2=指标窗口标记选中
|
|
1672
1672
|
SelectedXBorder:{Mode:0,Date:null},//X边框选中模式 Mode:0=禁用 分时图图有效
|
|
1673
1673
|
//XDateFormat (多日分时图x轴底部日期格式)
|
|
1674
|
-
RightHorizontal:{}//Show:true,
|
|
1675
|
-
//Width:5
|
|
1676
1674
|
//右侧框架外部坐标和间距
|
|
1677
|
-
|
|
1675
|
+
RightHorizontal:{//Show:true,
|
|
1676
|
+
//Width:5
|
|
1677
|
+
},//锁十字光标
|
|
1678
|
+
LockCorssCursor:{X:{Enable:false}}};this.VerticalDrag;//通过X轴左右拖动数据(手势才有)
|
|
1678
1679
|
this.EnableVerticalDrag=false;//十字光标长留(手势才有)
|
|
1679
1680
|
this.ClickModel={IsShowCorssCursor:false};this.EnableClickModel=false;//标题栏显示最新数据
|
|
1680
1681
|
this.DisplayLatestOption={Timer:null,Enable:false,DelayTime:60*1000*3,LastPoint:null};this.DrawDynamicInfoOption={Timer:null,Enable:false,DelayTime:10};this.CustomChartDrag;//自定义图形的拖拽操作 { Type:, Data: }
|
|
@@ -1772,7 +1773,8 @@ RectSelectPaint:paint//区间选择背景
|
|
|
1772
1773
|
JSConsole.Chart.Log('[KLineChartContainer::document.onmouseup]',e);if(this.SelectChartDrawPicture)this.SelectChartDrawPicture.DragInfo=null;//this.UIElement.style.cursor="default";
|
|
1773
1774
|
this.SetCursor({Cursor:"default"});this.MouseDrag=null;this.ClickDownPoint=null;this.IsOnTouch=false;if(this.EnableEraseChartDrawPicture==true){this.EnableEraseChartDrawPicture=false;//更改画图工具对话框橡皮状态
|
|
1774
1775
|
if(this.DialogDrawTool&&this.DialogDrawTool.SetEraseChartButtonStatus)this.DialogDrawTool.SetEraseChartButtonStatus(false);}if(this.BorderDrag&&this.BorderDrag.Index>=0)this.Frame.SaveSubFrameHeightRate();//拖拽指标窗口高度以后保存
|
|
1775
|
-
this.BorderDrag=null;this.YDrag=null;this.UpDownDrag=null;this.RectSelectDrag=null;this.IndexChartDrag=null;this.CustomChartDrag=null;if(bClearDrawPicture===true)this.CurrentChartDrawPicture=null;};this.UIOnMounseOut=function(e){JSConsole.Chart.Log('[KLineChartContainer::UIOnMounseOut]',e);
|
|
1776
|
+
this.BorderDrag=null;this.YDrag=null;this.UpDownDrag=null;this.RectSelectDrag=null;this.IndexChartDrag=null;this.CustomChartDrag=null;if(bClearDrawPicture===true)this.CurrentChartDrawPicture=null;};this.UIOnMounseOut=function(e){JSConsole.Chart.Log('[KLineChartContainer::UIOnMounseOut]',e);if(!this.IsLockCorssCursor())this.UIOnMouseMove(e);//锁十字光标时, 始终显示十字光标
|
|
1777
|
+
};this.UIOnMouseleave=function(e){JSConsole.Chart.Log('[KLineChartContainer::UIOnMouseleave]',e);//this.UIOnMouseMove(e);
|
|
1776
1778
|
};this.OnDragChart=function(drag){if(!drag)return false;var info=drag.Info;var lastMove=drag.LastMove;var startFrameID=info.FrameID;var endFrameID=this.Frame.PtInFrame(lastMove.X,lastMove.Y);if(endFrameID<0){if(endFrameID==-3)//底部 移动到新的窗口
|
|
1777
1779
|
return this.MoveIndexToNewWindow({WindowIndex:startFrameID,IndexID:info.IndexID},{Operator:0});return false;}if(startFrameID==endFrameID)return false;//移动指标
|
|
1778
1780
|
return this.MoveIndex({WindowIndex:startFrameID,IndexID:info.IndexID},{WindowIndex:endFrameID},{Operator:0});};//获取选中图形信息
|
|
@@ -1844,11 +1846,11 @@ if(this.Frame.DrawEx)this.Frame.DrawEx({Symbol:this.Symbol});if(this.ChartInfoPa
|
|
|
1844
1846
|
if(this.CacheCanvas){this.Canvas.drawImage(this.CacheElement,0,0);this.SetCanvas(this.Canvas);}else{this.Frame.Snapshot();}if(this.Frame.DrawToolbar)this.Frame.DrawToolbar(this.LastMouseStatus);this.DrawSelectedStatus();this.DrawSelectedBorder();if(this.DrawSelectedXBorder)this.DrawSelectedXBorder();var moveonPoint=null;if(this.LastMouseStatus&&this.LastMouseStatus.MoveOnPoint)moveonPoint=this.LastMouseStatus.MoveOnPoint;for(var i=0;i<this.ExtendChartPaint.length;++i)//动态扩展图形
|
|
1845
1847
|
{var item=this.ExtendChartPaint[i];if(item.IsCallbackDraw)continue;if(item.DrawAfterPicture)continue;if(item.IsDynamic&&item.DrawAfterTitle===false){item.Draw();if(item.DrawToolbar)item.DrawToolbar(moveonPoint);}}for(var i=0;i<this.ChartDrawPicture.length;++i){var item=this.ChartDrawPicture[i];if(item.IsDrawFirst)item.Draw();}this.DrawDrawPictureXYCoordinate();//绘制画图工具 X,Y轴刻度信息
|
|
1846
1848
|
var bDrawDialogTooltip=false;var ptPosition=null;//鼠标位置 null 无效 -1 在外面 >=0 对应的指标窗口中ID
|
|
1847
|
-
if(
|
|
1849
|
+
var corssCursorPos=this.GetCorssCursorPosition();if(corssCursorPos.LastPoint.X!=null||corssCursorPos.LastPoint.Y!=null){if(this.ChartCorssCursor){this.ChartCorssCursor.LastPoint=corssCursorPos.LastPoint;this.ChartCorssCursor.CursorIndex=corssCursorPos.CursorIndex;if(this.EnableNewIndex){this.ChartCorssCursor.CorssCursorIndex=corssCursorPos.CorssCursorIndex;this.ChartCorssCursor.EnableNewIndex=this.EnableNewIndex;}var bRestoreCanvas=false;if(this.CorssCursorCanvas)//独立的十字光标层
|
|
1848
1850
|
{this.ChartCorssCursor.Canvas=this.CorssCursorCanvas;this.ChartCorssCursor.Canvas.clearRect(0,0,this.CorssCursorElement.width,this.CorssCursorElement.height);bRestoreCanvas=true;}var button=this.PtInButton(this.LastPoint.X,this.LastPoint.Y);if(button)//鼠标在按钮上 不显示十字光标
|
|
1849
1851
|
{}else if(this.DragMode==JSCHART_DRAG_ID.CLICK_TOUCH_MODE_ID){//点击手势模式下
|
|
1850
1852
|
if(this.TouchStatus.CorssCursorShow==true)this.ChartCorssCursor.Draw();}else if(this.EnableClickModel){if(this.ClickModel.IsShowCorssCursor===true)this.ChartCorssCursor.Draw();}else if(!(this.CorssCursorTouchEnd===true&&this.MouseDrag)&&!(this.CorssCursorTouchEnd==true&&this.IsOnTouch==false)){//移动端 拖拽数据的时候 不显示十字光标, 没有按屏的时候也不显示十字光标
|
|
1851
|
-
this.ChartCorssCursor.Draw();}if(bRestoreCanvas){this.ChartCorssCursor.Canvas=this.Canvas;}bDrawDialogTooltip=true;}ptPosition=this.Frame.PtInFrame(this.LastPoint.X,this.LastPoint.Y);}var drawStatus=this.GetDrawStatus();drawStatus.DrawName="Draw";var eventTitleDraw=this.GetEventCallback(JSCHART_EVENT_ID.ON_TITLE_DRAW);var eventIndexTitleDraw=this.GetEventCallback(JSCHART_EVENT_ID.ON_INDEXTITLE_DRAW);for(var i=0;i<this.TitlePaint.length;++i){var item=this.TitlePaint[i];if(!item.IsDynamic)continue;item.CursorIndex=
|
|
1853
|
+
this.ChartCorssCursor.Draw();}if(bRestoreCanvas){this.ChartCorssCursor.Canvas=this.Canvas;}bDrawDialogTooltip=true;}ptPosition=this.Frame.PtInFrame(this.LastPoint.X,this.LastPoint.Y);}var drawStatus=this.GetDrawStatus();drawStatus.DrawName="Draw";var eventTitleDraw=this.GetEventCallback(JSCHART_EVENT_ID.ON_TITLE_DRAW);var eventIndexTitleDraw=this.GetEventCallback(JSCHART_EVENT_ID.ON_INDEXTITLE_DRAW);for(var i=0;i<this.TitlePaint.length;++i){var item=this.TitlePaint[i];if(!item.IsDynamic)continue;item.CursorIndex=corssCursorPos.CursorIndex;item.LastPoint=corssCursorPos.LastPoint;if(item.ClassName=='DynamicChartTitlePainting')item.OnDrawEvent=eventIndexTitleDraw;else item.OnDrawEvent=eventTitleDraw;if(item.OnDrawEvent){item.OnDrawEvent.FunctionName='Draw';item.OnDrawEvent.PointPosition=ptPosition;}item.DrawStatus=drawStatus;item.Draw(moveonPoint,this.LastMouseStatus);}for(var i=0;i<this.ExtendChartPaint.length;++i)//动态扩展图形
|
|
1852
1854
|
{var item=this.ExtendChartPaint[i];if(item.IsCallbackDraw)continue;if(item.DrawAfterPicture)continue;if(item.IsDynamic&&item.DrawAfterTitle===true&&item.IsAnimation==false)item.Draw();}if(this.EnableAnimation){for(var i=0;i<this.ExtendChartPaint.length;++i)//动画
|
|
1853
1855
|
{var item=this.ExtendChartPaint[i];if(item.IsAnimation===true)item.Draw();}}for(var i=0;i<this.ChartDrawPicture.length;++i){var item=this.ChartDrawPicture[i];if(item.IsDrawFirst)continue;if(item.IsDrawMain&&item.IsDrawMain())continue;if(this.SelectChartDrawPicture&&this.SelectChartDrawPicture.Guid==item.Guid)continue;//当前选中在最后画
|
|
1854
1856
|
item.Draw();}if(this.SelectChartDrawPicture)this.SelectChartDrawPicture.Draw();if(this.CurrentChartDrawPicture&&this.CurrentChartDrawPicture.Status!=10){this.CurrentChartDrawPicture.Draw();}for(var i=0;i<this.ExtendChartPaint.length;++i)//画图工具绘制完成以后 动态扩展图形
|
|
@@ -1863,15 +1865,22 @@ if(frame.YSplitOperator&&frame.YSplitOperator.CoordinateType==1)isPercentage=tru
|
|
|
1863
1865
|
for(var i=0;i<frame.CustomHorizontalInfo.length;++i){var info=frame.CustomHorizontalInfo[i];if(info.Type==4)isOverlayCoordinate=true;if(isPercentage&&info.Type==3||info.Type==2){var item=this.ChartPaint[0];if(!item)continue;var data=item.Data;if(!data||!IFrameSplitOperator.IsNonEmptyArray(data.Data))continue;if(!IFrameSplitOperator.IsNumber(item.DrawKRange.Start)||!IFrameSplitOperator.IsNumber(item.DrawKRange.End))continue;var startKLine=data.Data[item.DrawKRange.Start];var endKLine=data.Data[item.DrawKRange.End];var value=(endKLine.Close-startKLine.Close)/startKLine.Close*100;info.Value=endKLine.Close;if(info.Type==2){info.Message[1]=endKLine.Close.toFixed(defaultfloatPrecision);if(endKLine.Close>endKLine.Open)info.LineColor=g_JSChartResource.FrameLatestPrice.UpBarColor;else if(endKLine.Close<endKLine.Open)info.LineColor=g_JSChartResource.FrameLatestPrice.DownBarColor;else info.LineColor=g_JSChartResource.FrameLatestPrice.UnchagneBarColor;}else{info.Message[1]=value.toFixed(2)+"%";}if(this.Name)info.Title=this.Name;}}if(isOverlayCoordinate){//叠加股票自定义刻度需要移除重新添加
|
|
1864
1866
|
var newCustomHorizontalInfo=frame.CustomHorizontalInfo.filter(function(value,index,ary){return value.Type!=4;});frame.CustomHorizontalInfo=newCustomHorizontalInfo;}//叠加股票右侧名称+涨幅
|
|
1865
1867
|
for(var i=0;i<this.OverlayChartPaint.length;++i){var item=this.OverlayChartPaint[i];if(!item)continue;if(item.YInfoType!=4)continue;var data=item.Data;if(!data||!IFrameSplitOperator.IsNonEmptyArray(data.Data))continue;if(!IFrameSplitOperator.IsNumber(item.DrawKRange.Start)||!IFrameSplitOperator.IsNumber(item.DrawKRange.End))continue;var startKLine=null;for(var j=item.DrawKRange.Start;j<=item.DrawKRange.End;++j){var kItem=data.Data[j];if(IFrameSplitOperator.IsNumber(kItem.Close)){startKLine=kItem;break;}}if(!startKLine)continue;var endKLine=data.Data[item.DrawKRange.End];var value=(endKLine.Close-startKLine.Close)/startKLine.Close*100;var info=new CoordinateInfo();info.Value=endKLine.Close/item.ShowRange.FirstOverlayOpen*item.ShowRange.FirstOpen;info.Message[1]=value.toFixed(2)+"%";info.LineType=-1;info.Type=item.YInfoType;//叠加股票
|
|
1866
|
-
info.LineColor=item.Color;info.TextColor=g_JSChartResource.FrameLatestPrice.OverlayTextColor;if(item.Title)info.Title=item.Title;frame.CustomHorizontalInfo.push(info);}};this.OffscreenToShowCanvas=function(){if(!this.ShowCanvas)return;this.ShowCanvas.clearRect(0,0,this.UIElement.width,this.UIElement.height);this.ShowCanvas.drawImage(this.OffscreenCanvasElement,0,0);};this.GetDrawStatus=function(){var status={Point:{X:this.LastPoint.X,Y:this.LastPoint.Y},IsOnTouch:this.IsOnTouch,CorssCursorTouchEnd:this.CorssCursorTouchEnd,IsTitleShowLatestData:this.IsTitleShowLatestData,IsMinuteChart:this.ClassName=="MinuteChartContainer"||this.ClassName=="MinuteChartHScreenContainer"?true:false};status.FrameID=this.Frame.PtInFrame(this.LastPoint.X,this.LastPoint.Y);return status;};this.InvokeBeforeDrawSplashScreenCallback=function(){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_BEFORE_DRAW_SPLASH_SCREEN);if(!event||!event.Callback)return null;var data={PreventDefault:false};event.Callback(event,data,this);return data;};this.DrawSplashScreen=function(option){var data=this.InvokeBeforeDrawSplashScreenCallback();if(data&&data.PreventDefault===true)return;if(this.Frame.ScreenImageData==null&&!this.CacheCanvas)return;if(this.Frame.ScreenImageData){this.Canvas.putImageData(this.Frame.ScreenImageData,0,0);}else if(this.CacheCanvas){this.Canvas.clearRect(0,0,this.UIElement.width,this.UIElement.height);this.Canvas.drawImage(this.CacheElement,0,0);}var bgColor=g_JSChartResource.SplashScreen.BGColor;this.Canvas.fillStyle=bgColor;this.Canvas.fillRect(0,0,this.UIElement.width,this.UIElement.height);if(this.ChartSplashPaint&&this.ChartSplashPaint.IsEnableSplash){var title=g_JSChartResource.SplashScreen.Title;if(option&&option.Title)title=option.Title;this.ChartSplashPaint.SetTitle(title);this.ChartSplashPaint.Draw();}}
|
|
1868
|
+
info.LineColor=item.Color;info.TextColor=g_JSChartResource.FrameLatestPrice.OverlayTextColor;if(item.Title)info.Title=item.Title;frame.CustomHorizontalInfo.push(info);}};this.OffscreenToShowCanvas=function(){if(!this.ShowCanvas)return;this.ShowCanvas.clearRect(0,0,this.UIElement.width,this.UIElement.height);this.ShowCanvas.drawImage(this.OffscreenCanvasElement,0,0);};this.GetDrawStatus=function(){var status={Point:{X:this.LastPoint.X,Y:this.LastPoint.Y},IsOnTouch:this.IsOnTouch,CorssCursorTouchEnd:this.CorssCursorTouchEnd,IsTitleShowLatestData:this.IsTitleShowLatestData,IsMinuteChart:this.ClassName=="MinuteChartContainer"||this.ClassName=="MinuteChartHScreenContainer"?true:false};status.FrameID=this.Frame.PtInFrame(this.LastPoint.X,this.LastPoint.Y);return status;};this.InvokeBeforeDrawSplashScreenCallback=function(){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_BEFORE_DRAW_SPLASH_SCREEN);if(!event||!event.Callback)return null;var data={PreventDefault:false};event.Callback(event,data,this);return data;};this.DrawSplashScreen=function(option){var data=this.InvokeBeforeDrawSplashScreenCallback();if(data&&data.PreventDefault===true)return;if(this.Frame.ScreenImageData==null&&!this.CacheCanvas)return;if(this.Frame.ScreenImageData){this.Canvas.putImageData(this.Frame.ScreenImageData,0,0);}else if(this.CacheCanvas){this.Canvas.clearRect(0,0,this.UIElement.width,this.UIElement.height);this.Canvas.drawImage(this.CacheElement,0,0);}var bgColor=g_JSChartResource.SplashScreen.BGColor;this.Canvas.fillStyle=bgColor;this.Canvas.fillRect(0,0,this.UIElement.width,this.UIElement.height);if(this.ChartSplashPaint&&this.ChartSplashPaint.IsEnableSplash){var title=g_JSChartResource.SplashScreen.Title;if(option&&option.Title)title=option.Title;this.ChartSplashPaint.SetTitle(title);this.ChartSplashPaint.Draw();}};//十字光标坐标
|
|
1869
|
+
this.GetCorssCursorPosition=function(){var position={LastPoint:{X:this.LastPoint.X,Y:this.LastPoint.Y},CursorIndex:this.CursorIndex};return position;};this.IsLockCorssCursor=function(){if(!this.GlobalOption||!this.GlobalOption.LockCorssCursor)return false;return this.GlobalOption.LockCorssCursor.X.Enable;};//画动态信息
|
|
1867
1870
|
this.DrawDynamicInfo=function(option){this.LastMouseStatus.MouseOnToolbar=null;//鼠标在工具栏按钮上
|
|
1868
1871
|
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_BEFORE_DRAW_DYNAMIC_INFO);if(event&&event.Callback){var sendData={};event.Callback(event,sendData,this);}if(this.Frame.ScreenImageData==null&&!this.CacheCanvas)return;var isErase=false;if(this.ChartCorssCursor){if(this.ChartCorssCursor.PointX!=null||this.ChartCorssCursor.PointY!=null)isErase=true;}isErase=true;//每次都擦除背景
|
|
1869
1872
|
if(isErase==false){for(var i=0;i<this.ExtendChartPaint.length;++i){var item=this.ExtendChartPaint[i];if(item.IsCallbackDraw)continue;if(item.IsDynamic&&item.IsEraseBG){isErase=true;break;}}}if(isErase){if(this.Frame.ScreenImageData){this.Canvas.putImageData(this.Frame.ScreenImageData,0,0);}else if(this.CacheCanvas){this.Canvas.clearRect(0,0,this.UIElement.width,this.UIElement.height);this.Canvas.drawImage(this.CacheElement,0,0);}}if(this.Frame.DrawToolbar)this.Frame.DrawToolbar(this.LastMouseStatus);this.DrawSelectedStatus();this.DrawSelectedBorder();if(this.DrawSelectedXBorder)this.DrawSelectedXBorder();var moveonPoint=null;if(this.LastMouseStatus&&this.LastMouseStatus.MoveOnPoint)moveonPoint=this.LastMouseStatus.MoveOnPoint;for(var i=0;i<this.ExtendChartPaint.length;++i)//动态扩展图形
|
|
1870
|
-
{var item=this.ExtendChartPaint[i];if(item.IsCallbackDraw)continue;if(item.DrawAfterPicture)continue;if(item.IsDynamic&&item.DrawAfterTitle===false&&item.IsAnimation==false){item.Draw();if(item.DrawToolbar)item.DrawToolbar(moveonPoint,this.LastMouseStatus);}}for(var i=0;i<this.ChartDrawPicture.length;++i){var item=this.ChartDrawPicture[i];if(item.IsDrawFirst)item.Draw();}this.DrawDrawPictureXYCoordinate();var bDrawDialogTooltip=false;
|
|
1873
|
+
{var item=this.ExtendChartPaint[i];if(item.IsCallbackDraw)continue;if(item.DrawAfterPicture)continue;if(item.IsDynamic&&item.DrawAfterTitle===false&&item.IsAnimation==false){item.Draw();if(item.DrawToolbar)item.DrawToolbar(moveonPoint,this.LastMouseStatus);}}for(var i=0;i<this.ChartDrawPicture.length;++i){var item=this.ChartDrawPicture[i];if(item.IsDrawFirst)item.Draw();}this.DrawDrawPictureXYCoordinate();var bDrawDialogTooltip=false;var corssCursorPos=this.GetCorssCursorPosition();//十字光标的位置
|
|
1874
|
+
if(this.ChartCorssCursor){this.ChartCorssCursor.LastPoint=corssCursorPos.LastPoint;this.ChartCorssCursor.CursorIndex=corssCursorPos.CursorIndex;if(this.EnableNewIndex){this.ChartCorssCursor.CorssCursorIndex=corssCursorPos.CorssCursorIndex;this.ChartCorssCursor.EnableNewIndex=this.EnableNewIndex;}var bRestoreCanvas=false;if(this.CorssCursorCanvas)//独立的十字光标层
|
|
1871
1875
|
{this.ChartCorssCursor.Canvas=this.CorssCursorCanvas;this.ChartCorssCursor.Canvas.clearRect(0,0,this.CorssCursorElement.width,this.CorssCursorElement.height);bRestoreCanvas=true;}if(option&&option.Corss==false){}else if(this.DragMode==JSCHART_DRAG_ID.CLICK_TOUCH_MODE_ID){if(this.TouchStatus.CorssCursorShow==true)this.ChartCorssCursor.Draw();}else if(this.IsOnTouch===false&&this.CurrentChartDrawPicture&&this.CurrentChartDrawPicture.IsShowCorssCursor===true)//开始绘图
|
|
1872
1876
|
{this.ChartCorssCursor.Draw();}else if(!(this.IsOnTouch===false&&this.CorssCursorTouchEnd===true)&&!this.CurrentChartDrawPicture){this.ChartCorssCursor.Draw();}else if(this.IsOnTouch===true&&this.CurrentChartDrawPicture&&this.EnableShowCorssCursor&&this.EnableShowCorssCursor.DrawPicture==true){this.ChartCorssCursor.Draw();}if(bRestoreCanvas){this.ChartCorssCursor.Canvas=this.Canvas;}bDrawDialogTooltip=true;}var ptPosition=null;//鼠标位置 null 无效 -1 在外面 >=0 对应的指标窗口中ID
|
|
1873
|
-
if(option&&option.Point&&(option.ParentFunction=='OnMouseMove'||option.ParentFunction=='MoveCorssCursorIndex')){ptPosition=this.Frame.PtInFrame(option.Point.X,option.Point.Y);}var drawStatus=this.GetDrawStatus();drawStatus.DrawName="DrawDynamicInfo";for(var i=0;i<this.TitlePaint.length;++i){var item=this.TitlePaint[i];if(!item.IsDynamic)continue;item.CursorIndex=
|
|
1874
|
-
pointInfo={ClientPos:option.ClientPos,Point:{X:option.Point.X,Y:option.Point.Y}}
|
|
1877
|
+
if(option&&option.Point&&(option.ParentFunction=='OnMouseMove'||option.ParentFunction=='MoveCorssCursorIndex')){ptPosition=this.Frame.PtInFrame(option.Point.X,option.Point.Y);}var drawStatus=this.GetDrawStatus();drawStatus.DrawName="DrawDynamicInfo";for(var i=0;i<this.TitlePaint.length;++i){var item=this.TitlePaint[i];if(!item.IsDynamic)continue;item.CursorIndex=corssCursorPos.CursorIndex;item.LastPoint=this.LastPoint;if(item.OnDrawEvent){item.OnDrawEvent.FunctionName='DrawDynamicInfo';item.OnDrawEvent.PointPosition=ptPosition;}item.DrawStatus=drawStatus;var pointInfo=null;if(option&&IFrameSplitOperator.IsNumber(option.ClientPos)&&option.Point)//当前鼠标所在位置的详细信息 包含盘前盘后
|
|
1878
|
+
{pointInfo={ClientPos:option.ClientPos,Point:{X:option.Point.X,Y:option.Point.Y}};/*
|
|
1879
|
+
if (this.IsLockCorssCursor())
|
|
1880
|
+
{
|
|
1881
|
+
if (pointInfo.ClientPos<=0) pointInfo.ClientPos=1;
|
|
1882
|
+
}
|
|
1883
|
+
*/}item.PointInfo=pointInfo;item.Draw(moveonPoint,this.LastMouseStatus);}for(var i=0;i<this.ExtendChartPaint.length;++i)//动态扩展图形 在动态标题以后画
|
|
1875
1884
|
{var item=this.ExtendChartPaint[i];if(item.IsCallbackDraw)continue;if(item.DrawAfterPicture)continue;if(item.ClassName=='KLineTooltipPaint'&&option){if(option.Tooltip==false)continue;if(option.Point)item.LatestPoint=option.Point;}else if(item.ClassName=="MinuteTooltipPaint"&&option){if(option.Point)item.LatestPoint=option.Point;}if(item.IsDynamic&&item.DrawAfterTitle===true)item.Draw(moveonPoint,this.LastMouseStatus);}if(this.EnableAnimation){for(var i=0;i<this.ExtendChartPaint.length;++i)//动画
|
|
1876
1885
|
{var item=this.ExtendChartPaint[i];if(item.IsAnimation===true)item.Draw();}}for(var i=0;i<this.ChartDrawPicture.length;++i){var item=this.ChartDrawPicture[i];if(item.IsDrawFirst)continue;if(item.IsDrawMain&&item.IsDrawMain())continue;if(this.SelectChartDrawPicture&&item.Guid==this.SelectChartDrawPicture.Guid)continue;//选中画图最后画 确保显示在最外面
|
|
1877
1886
|
item.Draw(moveonPoint,this.LastMouseStatus);}if(this.SelectChartDrawPicture){this.SelectChartDrawPicture.Draw(moveonPoint,this.LastMouseStatus);}if(this.CurrentChartDrawPicture&&this.CurrentChartDrawPicture.Status!=10){this.CurrentChartDrawPicture.Draw();}for(var i=0;i<this.ExtendChartPaint.length;++i)//动态扩展图形
|
|
@@ -3862,7 +3871,7 @@ this.BorderColor=g_JSChartResource.ChartSimpleTable.BorderColor;//边框颜色
|
|
|
3862
3871
|
};this.CalculateSize=function(){this.AryColumnCache=[];var pixelRatio=GetDevicePixelRatio();this.TextFont=this.TextFontConfig.Size*pixelRatio+'px '+this.TextFontConfig.Name;this.TextFontHeight=this.GetFontHeight(this.TextFont,"擎");this.RowHeight=this.TextFontHeight+this.ItemMargin.Top+this.ItemMargin.Bottom;var rowCount=this.Data.Data.length;for(var i=0,j=0;i<rowCount;++i){var rowItem=this.Data.Data[i];for(j=0;j<rowItem.AryCell.length;++j){if(!this.AryColumnCache[j])this.AryColumnCache[j]={Width:this.DefaultCellWidth};var colItem=this.AryColumnCache[j];var cellItem=rowItem.AryCell[j];var textWidth=this.Canvas.measureText(cellItem.Text).width;if(colItem.Width<textWidth)colItem.Width=textWidth;}}var tableWidth=0;for(var i=0;i<this.AryColumnCache.length;++i){var item=this.AryColumnCache[i];item.Width+=this.ItemMargin.Left+this.ItemMargin.Right;//增加左右间距
|
|
3863
3872
|
tableWidth+=item.Width;}this.RectClient={Width:tableWidth,Height:this.RowHeight*rowCount};var border=this.ChartFrame.GetBorder();this.RectClient.Right=border.Right+this.Offset.X;this.RectClient.Top=border.TopEx+this.Offset.Y;this.RectClient.Left=this.RectClient.Right-this.RectClient.Width;this.RectClient.Bottom=this.RectClient.Top+this.RectClient.Height;};this.Draw=function(){if(!this.IsShow||this.ChartFrame.IsMinSize)return;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return;var isHScreen=this.ChartFrame.IsHScreen===true;if(isHScreen)return;this.CalculateSize();if(this.BGColor){this.Canvas.fillStyle=this.BGColor;this.Canvas.fillRect(this.RectClient.Left,this.RectClient.Top,this.RectClient.Width,this.RectClient.Height);}var itemHeight=this.RowHeight;this.Canvas.font=this.TextFont;this.Canvas.textBaseline='bottom';this.Canvas.textAlign='left';var rtRow={Left:this.RectClient.Left,Top:this.RectClient.Top,Width:this.RectClient.Width,Height:itemHeight};rtRow.Right=rtRow.Left+rtRow.Width;rtRow.Bottom=rtRow.Top+rtRow.Height;var rowCount=this.Data.Data.length;for(var i=0;i<rowCount;++i){var rowItem=this.Data.Data[i];this.DrawRow(rowItem,rtRow);rtRow.Top+=itemHeight;rtRow.Bottom+=itemHeight;}this.DrawBorder();};this.DrawBorder=function(){if(!this.BorderColor)return;var rowCount=this.Data.Data.length;var colCount=this.AryColumnCache.length;this.Canvas.strokeStyle=this.BorderColor;this.Canvas.beginPath();//横线
|
|
3864
3873
|
var rowTop=this.RectClient.Top;var left=this.RectClient.Left,right=this.RectClient.Right;var bottom=this.RectClient.Bottom,top=this.RectClient.Top;for(var i=0;i<rowCount;++i){if(i==0){var drawTop=ToFixedPoint(rowTop);this.Canvas.moveTo(left,drawTop);this.Canvas.lineTo(right,drawTop);}var drawTop=ToFixedPoint(rowTop+this.RowHeight);this.Canvas.moveTo(left,drawTop);this.Canvas.lineTo(right,drawTop);rowTop+=this.RowHeight;}//竖线
|
|
3865
|
-
var columnLeft=this.RectClient.Left;for(var i=0;i<colCount;++i){var item=this.AryColumnCache[i];if(i==0){var drawLeft=ToFixedPoint(columnLeft);this.Canvas.moveTo(drawLeft,top);this.Canvas.lineTo(drawLeft,bottom);}var drawLeft=ToFixedPoint(columnLeft+item.Width);this.Canvas.moveTo(drawLeft,top);this.Canvas.lineTo(drawLeft,bottom);columnLeft+=item.Width;}this.Canvas.stroke();};this.DrawRow=function(data,rtRow){if(!IFrameSplitOperator.IsNonEmptyArray(data.AryCell))return;var x=rtRow.Left,y=rtRow.Top,width=rtRow.Width;for(var i=0;i<data.AryCell.length;++i){var item=data.AryCell[i];var colItem=this.AryColumnCache[i];var rtBG={Left:x,Top:rtRow.Top,Bottom:rtRow.Bottom,Height:this.RowHeight,Width:colItem.Width};rtBG.Right=rtBG.
|
|
3874
|
+
var columnLeft=this.RectClient.Left;for(var i=0;i<colCount;++i){var item=this.AryColumnCache[i];if(i==0){var drawLeft=ToFixedPoint(columnLeft);this.Canvas.moveTo(drawLeft,top);this.Canvas.lineTo(drawLeft,bottom);}var drawLeft=ToFixedPoint(columnLeft+item.Width);this.Canvas.moveTo(drawLeft,top);this.Canvas.lineTo(drawLeft,bottom);columnLeft+=item.Width;}this.Canvas.stroke();};this.DrawRow=function(data,rtRow){if(!IFrameSplitOperator.IsNonEmptyArray(data.AryCell))return;var x=rtRow.Left,y=rtRow.Top,width=rtRow.Width;for(var i=0;i<data.AryCell.length;++i){var item=data.AryCell[i];var colItem=this.AryColumnCache[i];var rtBG={Left:x,Top:rtRow.Top,Bottom:rtRow.Bottom,Height:this.RowHeight,Width:colItem.Width};rtBG.Right=rtBG.Left+rtBG.Width;if(item){if(item.BGColor){this.Canvas.fillStyle=item.BGColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}if(item.Text&&rtBG.Width>10){if(item.Color)this.Canvas.fillStyle=item.Color;else this.Canvas.fillStyle=this.TextColor;var xText=x+this.ItemMargin.Left;var yText=rtBG.Bottom-this.ItemMargin.Bottom;if(item.TextAlign=='right'){var textWidth=this.Canvas.measureText(item.Text).width;xText=rtBG.Right-this.ItemMargin.Right-textWidth;}else if(item.TextAlign=='center'){var textWidth=this.Canvas.measureText(item.Text).width;xText=rtBG.Left+rtBG.Width/2-textWidth/2;}this.Canvas.fillText(item.Text,xText,yText);}}x+=rtBG.Width;}};this.GetMaxMin=function(){return{Min:null,Max:null};};}//分钟成交量 支持横屏
|
|
3866
3875
|
function ChartMinuteVolumBar(){this.newMethod=IChartPainting;//派生
|
|
3867
3876
|
this.newMethod();delete this.newMethod;this.ClassName='ChartMinuteVolumBar';//类名
|
|
3868
3877
|
this.UpColor=g_JSChartResource.UpBarColor;//上涨
|
|
@@ -5702,7 +5711,8 @@ if(IFrameSplitOperator.IsNumber(item.Vol[1])&&this.CallAuctionShowTitle.has("MTi
|
|
|
5702
5711
|
{var text=g_JSChartLocalization.GetText('MTitle-AC-NotMatchAmount',this.LanguageID)+IFrameSplitOperator.FromatIntegerString(aryAmount[1],2);aryText.push({Text:text,Color:this.AmountColor});}}}return{AryText:aryText};};this.DrawCallAuction=function()//集合竞价标题
|
|
5703
5712
|
{var isHScreen=this.Frame.IsHScreen===true;var border=this.Frame.GetBorder();var pixelRatio=GetDevicePixelRatio();var left=this.GetLeft(isHScreen);var right=this.GetRight(isHScreen);var bottom=this.GetBottom(isHScreen);var bDraw=true;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;}else{if(this.Frame.ChartBorder.Top<5*pixelRatio)bDraw=false;}this.Canvas.textAlign="left";this.Canvas.textBaseline="bottom";this.Canvas.font=this.Font;var position={Left:left,Bottom:bottom,MaxRight:right,IsHScreen:isHScreen};var auctionData=this.GetCurrentAuctionData();var titleData=this.FormatCallAuctionTitle(auctionData);if(bDraw&&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;}}this.OnDrawCallAuctionEventCallback(auctionData);};this.OnDrawCallAuctionEventCallback=function(drawData){if(this.OnDrawEvent&&this.OnDrawEvent.Callback){var data={Draw:drawData,Name:this.ClassName};this.OnDrawEvent.Callback(this.OnDrawEvent,data,this);}if(this.OnMouseMoveEvent&&this.OnMouseMoveEvent.Callback){var data={Draw:drawData,Name:this.ClassName};this.OnMouseMoveEvent.Callback(this.OnDrawEvent,data,this);}};this.DrawNone=function(){this.OnDrawEventCallback(null);if(this.IsAlwaysShowLastData){this.Canvas.save();this.DrawLastDataItem();this.Canvas.restore();}};this.Draw=function(){this.LastShowData=null;this.GlobalOption=this.Frame.GlobalOption;if(!this.IsShow){//隐藏标题 并且没有回调事件
|
|
5704
5713
|
var bEvent=this.OnDrawEvent&&this.OnDrawEvent.Callback||this.OnMouseMoveEvent&&this.OnMouseMoveEvent.Callback;if(!bEvent)return;}if(this.PointInfo&&(this.PointInfo.ClientPos==2||this.PointInfo.ClientPos==3||this.PointInfo.ClientPos>=200&&this.PointInfo.ClientPos<=299||this.PointInfo.ClientPos>=300&&this.PointInfo.ClientPos<=399)){//集合竞价区域
|
|
5705
|
-
this.Canvas.save();this.DrawCallAuction();this.Canvas.restore();return;}if(!this.Data||!this.Data.Data||this.Data.Data.length<=0){this.DrawNone();return;}if(this.CursorIndex==null&&!(this.GlobalOption&&this.GlobalOption.IsDisplayLatest)){this.DrawNone();return;}this.Canvas.font=this.Font;this.SpaceWidth=this.Canvas.measureText('0').width;var isShowLastData=false;if(this.DrawStatus&&this.DrawStatus.IsTitleShowLatestData){var status=this.DrawStatus;if(!IFrameSplitOperator.IsNumber(status.FrameID)||status.FrameID<0)isShowLastData=true;else if(status.CorssCursorTouchEnd&&status.IsOnTouch==false)isShowLastData=true;}else if(this.GlobalOption&&this.GlobalOption.IsDisplayLatest){isShowLastData=true;}
|
|
5714
|
+
this.Canvas.save();this.DrawCallAuction();this.Canvas.restore();return;}if(!this.Data||!this.Data.Data||this.Data.Data.length<=0){this.DrawNone();return;}if(this.CursorIndex==null&&!(this.GlobalOption&&this.GlobalOption.IsDisplayLatest)){this.DrawNone();return;}this.Canvas.font=this.Font;this.SpaceWidth=this.Canvas.measureText('0').width;var isShowLastData=false;if(this.DrawStatus&&this.DrawStatus.IsTitleShowLatestData){var status=this.DrawStatus;if(!IFrameSplitOperator.IsNumber(status.FrameID)||status.FrameID<0)isShowLastData=true;else if(status.CorssCursorTouchEnd&&status.IsOnTouch==false)isShowLastData=true;}else if(this.GlobalOption&&this.GlobalOption.IsDisplayLatest){isShowLastData=true;}//十字光标锁定状态 禁用显示最后一个数据
|
|
5715
|
+
if(this.GlobalOption&&this.GlobalOption.LockCorssCursor&&this.GlobalOption.LockCorssCursor.X.Enable)isShowLastData=false;var isLastOne=false;if(isShowLastData){var item=null;var lastItem=this.GetLatestKLineData(true);if(lastItem&&lastItem.Type==0)item=lastItem.Data;isLastOne=true;}else{//var index=Math.abs(this.CursorIndex-0.5);
|
|
5706
5716
|
var index=this.CursorIndex;index=parseInt(index.toFixed(0));var dataIndex=index+this.Data.DataOffset;if(dataIndex>=this.Data.Data.length)dataIndex=this.Data.Data.length-1;var item=this.Data.Data[dataIndex];if(dataIndex==this.Data.Data.length-1)isLastOne=true;}this.LastShowData=item;this.Canvas.save();this.OnDrawEventCallback(item);if(this.IsAlwaysShowLastData){this.DrawLastDataItem();}else{this.DrawItem(item,isLastOne);}this.Canvas.restore();};this.DrawCallAuctionItem=function(callAuctionItem,isLastOne){if(!callAuctionItem)return;var item=callAuctionItem.Data;var isHScreen=this.Frame.IsHScreen===true;var pixelRatio=GetDevicePixelRatio();var border=this.Frame.GetBorder();var left=this.GetLeft(isHScreen);var right=this.GetRight(isHScreen);var bottom=this.GetBottom(isHScreen);var bDraw=true;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
|
|
5707
5717
|
}else{if(this.Frame.ChartBorder.Top<5*pixelRatio)bDraw=false;}this.Canvas.textAlign="left";this.Canvas.textBaseline="bottom";this.Canvas.font=this.Font;var position={Left:left,Bottom:bottom,MaxRight:right,IsHScreen:isHScreen};var titleData=this.FormatCallAuctionTitle(callAuctionItem);if(bDraw&&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;}}};this.DrawLastDataItem=function(){var lastItem=this.GetLatestKLineData(true);if(lastItem){if(lastItem.Type==0)this.DrawItem(lastItem.Data,true);else if(lastItem.Type==1||lastItem.Type==2)this.DrawCallAuctionItem(lastItem,true);}};}//字符串输出格式
|
|
5708
5718
|
var STRING_FORMAT_TYPE={DEFAULT:1,//默认 2位小数 单位自动转化 (万 亿)
|
|
@@ -7365,25 +7375,25 @@ case 11://2小时
|
|
|
7365
7375
|
case 12://4小时
|
|
7366
7376
|
if(this.SourceData.DataType!=1)isDataTypeChange=true;break;case 10://分笔线
|
|
7367
7377
|
if(this.SourceData.DataType!=2)isDataTypeChange=true;break;}}}this.Period=period;if(right!=null)this.Right=right;this.ReloadChartDrawPicture();//切换周期了 清空画图工具
|
|
7368
|
-
this.ClearRectSelect(true);this.Frame.ClearUpDonwFrameYData();this.ClearCustomKLine();this.ClearKLineCaluate();var kLineDrawType=this.GetKLineDrawType();if(kLineDrawType==10||kLineDrawType==11||kLineDrawType==12||kLineDrawType==16)isDataTypeChange=true;var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CHANGE_KLINE_PERIOD);if(event&&event.Callback){var sendData={IsApiPeriod:this.IsApiPeriod,Old:oldData,Now:{Period:this.Period,Right:this.Right,KLineDrawType:this.KLineDrawType,Symbol:this.Symbol},IsDataTypeChange:isDataTypeChange//数据类型是否改变 true 重新请求数据
|
|
7378
|
+
this.ClearRectSelect(true);this.Frame.ClearUpDonwFrameYData();this.ClearCustomKLine();this.ClearKLineCaluate();this.UnlockCorssCursor();var kLineDrawType=this.GetKLineDrawType();if(kLineDrawType==10||kLineDrawType==11||kLineDrawType==12||kLineDrawType==16)isDataTypeChange=true;var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CHANGE_KLINE_PERIOD);if(event&&event.Callback){var sendData={IsApiPeriod:this.IsApiPeriod,Old:oldData,Now:{Period:this.Period,Right:this.Right,KLineDrawType:this.KLineDrawType,Symbol:this.Symbol},IsDataTypeChange:isDataTypeChange//数据类型是否改变 true 重新请求数据
|
|
7369
7379
|
};event.Callback(event,sendData,this);isDataTypeChange=sendData.IsDataTypeChange;}if(isDataTypeChange==false&&!this.IsApiPeriod){this.ClearIndexRunCount();this.Update({UpdateCursorIndexType:2});//更新的时候 取消显示十字光标
|
|
7370
7380
|
return;}this.ClearIndexPaint();if(ChartData.IsDayPeriod(this.Period,true)){this.CancelAutoUpdate();//先停止定时器
|
|
7371
7381
|
this.AutoUpdateEvent(false,'KLineChartContainer::ChangePeriod');//切换周期先停止更新
|
|
7372
|
-
this.ResetScrollBar();this.ResetOverlaySymbolStatus();this.ClearIndexRunCount();this.Frame.ClearYCoordinateMaxMin();this.RequestHistoryData();//请求日线数据
|
|
7382
|
+
this.ResetScrollBar();this.ResetOverlaySymbolStatus();this.ClearIndexRunCount();this.Frame.ClearYCoordinateMaxMin();this.UnlockCorssCursor();this.RequestHistoryData();//请求日线数据
|
|
7373
7383
|
//this.ReqeustKLineInfoData();
|
|
7374
7384
|
}else if(ChartData.IsMinutePeriod(this.Period,true)||ChartData.IsSecondPeriod(this.Period)||ChartData.IsMilliSecondPeriod(this.Period)){this.CancelAutoUpdate();//先停止定时器
|
|
7375
7385
|
this.AutoUpdateEvent(false,'KLineChartContainer::ChangePeriod');//切换周期先停止更新
|
|
7376
|
-
this.ResetScrollBar();this.ResetOverlaySymbolStatus();this.ClearIndexRunCount();this.Frame.ClearYCoordinateMaxMin();this.RequestHistoryMinuteData();//请求分钟数据
|
|
7386
|
+
this.ResetScrollBar();this.ResetOverlaySymbolStatus();this.ClearIndexRunCount();this.Frame.ClearYCoordinateMaxMin();this.UnlockCorssCursor();this.RequestHistoryMinuteData();//请求分钟数据
|
|
7377
7387
|
}else if(ChartData.IsTickPeriod(this.Period)){this.CancelAutoUpdate();//先停止定时器
|
|
7378
|
-
this.AutoUpdateEvent(false,'KLineChartContainer::ChangePeriod');this.ResetScrollBar();this.ClearIndexRunCount();this.Frame.ClearYCoordinateMaxMin();this.RequestTickData();//请求分笔数据
|
|
7388
|
+
this.AutoUpdateEvent(false,'KLineChartContainer::ChangePeriod');this.ResetScrollBar();this.ClearIndexRunCount();this.Frame.ClearYCoordinateMaxMin();this.UnlockCorssCursor();this.RequestTickData();//请求分笔数据
|
|
7379
7389
|
}};//复权切换
|
|
7380
7390
|
this.ChangeRight=function(right){if(!MARKET_SUFFIX_NAME.IsEnableRight(this.Period,this.Symbol,this.RightFormula))return;var upperSymbol=this.Symbol.toUpperCase();if(MARKET_SUFFIX_NAME.IsBIT(upperSymbol))return;if(right<0||right>2)return;if(this.Right==right)return;var oldData={Period:this.Period,Right:this.Right,KLineDrawType:this.KLineDrawType,Symbol:this.Symbol};this.Right=right;var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CHANGE_KLINE_RIGHT);if(event&&event.Callback){var sendData={IsApiPeriod:this.IsApiPeriod,Old:oldData,Now:{Period:this.Period,Right:this.Right,KLineDrawType:this.KLineDrawType,Symbol:this.Symbol}};event.Callback(event,sendData,this);}if(!this.IsApiPeriod){this.Update();return;}else//API周期数据 重新请求数据
|
|
7381
7391
|
{if(ChartData.IsDayPeriod(this.Period,true)){this.CancelAutoUpdate();//先停止定时器
|
|
7382
7392
|
this.AutoUpdateEvent(false,'KLineChartContainer::ChangeRight');//切换复权先停止更新
|
|
7383
|
-
this.ClearIndexPaint();this.ResetOverlaySymbolStatus();this.ResetScrollBar();this.RequestHistoryData();//请求日线数据
|
|
7393
|
+
this.ClearIndexPaint();this.ResetOverlaySymbolStatus();this.ResetScrollBar();this.Frame.ClearYCoordinateMaxMin();this.UnlockCorssCursor();this.RequestHistoryData();//请求日线数据
|
|
7384
7394
|
}else if(ChartData.IsMinutePeriod(this.Period,true)||ChartData.IsSecondPeriod(this.Period)||ChartData.IsMilliSecondPeriod(this.Period)){this.CancelAutoUpdate();//先停止定时器
|
|
7385
7395
|
this.AutoUpdateEvent(false,'KLineChartContainer::ChangeRight');//切换复权先停止更新
|
|
7386
|
-
this.ClearIndexPaint();this.ResetOverlaySymbolStatus();this.ResetScrollBar();this.RequestHistoryMinuteData();//请求分钟数据
|
|
7396
|
+
this.ClearIndexPaint();this.ResetOverlaySymbolStatus();this.ResetScrollBar();this.Frame.ClearYCoordinateMaxMin();this.UnlockCorssCursor();this.RequestHistoryMinuteData();//请求分钟数据
|
|
7387
7397
|
}}};//设置第1屏的起始日期
|
|
7388
7398
|
this.SetFirstShowDate=function(obj){if(!obj||!obj.Date)return;var option={ID:JSCHART_OPERATOR_ID.OP_GOTO,Date:obj.Date};if(IFrameSplitOperator.IsNumber(obj.Time))option.Time=obj.Time;if(IFrameSplitOperator.IsNumber(obj.PageSize))option.PageSize=obj.PageSize;this.ChartOperator(option);};//删除某一个窗口的指标, bCallDestory=是否调用图形销毁函数
|
|
7389
7399
|
this.DeleteIndexPaint=function(windowIndex,bCallDestroy){if(!this.Frame.SubFrame[windowIndex])return;var subFrame=this.Frame.SubFrame[windowIndex].Frame;if(!subFrame)return;var paint=[];//踢出当前窗口的指标画法
|
|
@@ -7541,7 +7551,7 @@ this.UpdateFrameMaxMin();//调整坐标最大 最小值
|
|
|
7541
7551
|
this.Frame.SetSizeChage(true);this.Draw();//叠加指标
|
|
7542
7552
|
for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i];for(var j in item.OverlayIndex){var overlayItem=item.OverlayIndex[j];this.BindOverlayIndexData(overlayItem,i,bindData);}}};//切换股票代码
|
|
7543
7553
|
this.ChangeSymbol=function(symbol,option){this.CancelAutoUpdate();//先停止定时器
|
|
7544
|
-
this.AutoUpdateEvent(false,'KLineChartContainer::ChangeSymbol');this.ClearRectSelect(true);this.ClearCustomKLine();this.ClearKLineCaluate();this.HideTooltip();this.ResetScrollBar();this.ClearIndexRunCount();this.Frame.ClearYCoordinateMaxMin();this.Symbol=symbol;if(!symbol){this.DrawEmpty();return;}if(option){if(option.KLine){var item=option.KLine;if(IFrameSplitOperator.IsNumber(item.Right))this.Right=item.Right;if(IFrameSplitOperator.IsNumber(item.Period))this.Period=item.Period;}}if(MARKET_SUFFIX_NAME.IsSHSZIndex(symbol))this.Right=0;//指数没有复权
|
|
7554
|
+
this.AutoUpdateEvent(false,'KLineChartContainer::ChangeSymbol');this.ClearRectSelect(true);this.ClearCustomKLine();this.ClearKLineCaluate();this.HideTooltip();this.ResetScrollBar();this.ClearIndexRunCount();this.UnlockCorssCursor();this.Frame.ClearYCoordinateMaxMin();this.Symbol=symbol;if(!symbol){this.DrawEmpty();return;}if(option){if(option.KLine){var item=option.KLine;if(IFrameSplitOperator.IsNumber(item.Right))this.Right=item.Right;if(IFrameSplitOperator.IsNumber(item.Period))this.Period=item.Period;}}if(MARKET_SUFFIX_NAME.IsSHSZIndex(symbol))this.Right=0;//指数没有复权
|
|
7545
7555
|
this.ClearIndexPaint();//清空指标
|
|
7546
7556
|
if(option){if(IFrameSplitOperator.IsNonEmptyArray(option.Windows)){var windows=option.Windows;for(var i=0;i<windows.length;++i){if(i>=this.WindowIndex.length)break;//暂时不支持 动态增加/减少
|
|
7547
7557
|
var item=windows[i];if(!item)continue;if(item.Script){this.WindowIndex[i]=new ScriptIndex(item.Name,item.Script,item.Args,item);//脚本执行
|
|
@@ -7771,7 +7781,8 @@ if(!IFrameSplitOperator.IsNonEmptyArray(hisData.Data))return false;var kItem=his
|
|
|
7771
7781
|
ClientPos:this.ChartCorssCursor.ClientPos,//位置
|
|
7772
7782
|
IsShowCorss:this.ChartCorssCursor.IsShowCorss,//是否显示十字线
|
|
7773
7783
|
KItem:kItem,Symbol:this.Symbol,Name:this.Name,LastValue:this.ChartCorssCursor.LastValue};this.DialogTooltip.Update(sendData);return true;};this.DrawSelectRectDialog=function(e){if(!this.DialogSelectRect)return;this.UpdateSelectRectDialog(e);};this.UpdateSelectRectDialog=function(e){if(!this.DialogSelectRect)return false;var data=e.data;//区间统计数据
|
|
7774
|
-
var x,y;if(data&&IFrameSplitOperator.IsNumber(data.X)&&IFrameSplitOperator.IsNumber(data.Y)){var pixelRatio=GetDevicePixelRatio();var rtClient=this.UIElement.getBoundingClientRect();var rtScroll=GetScrollPosition();x=data.X;y=data.Y;x+=rtClient.left+rtScroll.Left;y+=rtClient.top+rtScroll.Top;}var sendData={Symbol:this.Symbol,Name:this.Name,SelectData:data.SelectData,X:x,Y:y,e:e};this.DialogSelectRect.Update(sendData);};this.UpdateHQFloatTooltip=function(kData){if(!this.FloatTooltip)return;if(!this.FloatTooltip.IsShow())return;if(!kData||!IFrameSplitOperator.IsNonEmptyArray(kData.Data))return;var lastItem=kData.Data[kData.Data.length-1];if(!lastItem)return;var dataID={Symbol:kData.Symbol,Date:lastItem.Date,Time:lastItem.Time};if(!this.FloatTooltip.IsEqualHQID(dataID))return;var sendData={Data:lastItem,Symbol:this.Symbol,Name:this.Name,DataType:2};this.FloatTooltip.Update(sendData);};this.GetKData=function(){if(!this.ChartPaint[0])return null;var data=this.ChartPaint[0].Data;if(!data)return null;return data;}
|
|
7784
|
+
var x,y;if(data&&IFrameSplitOperator.IsNumber(data.X)&&IFrameSplitOperator.IsNumber(data.Y)){var pixelRatio=GetDevicePixelRatio();var rtClient=this.UIElement.getBoundingClientRect();var rtScroll=GetScrollPosition();x=data.X;y=data.Y;x+=rtClient.left+rtScroll.Left;y+=rtClient.top+rtScroll.Top;}var sendData={Symbol:this.Symbol,Name:this.Name,SelectData:data.SelectData,X:x,Y:y,e:e};this.DialogSelectRect.Update(sendData);};this.UpdateHQFloatTooltip=function(kData){if(!this.FloatTooltip)return;if(!this.FloatTooltip.IsShow())return;if(!kData||!IFrameSplitOperator.IsNonEmptyArray(kData.Data))return;var lastItem=kData.Data[kData.Data.length-1];if(!lastItem)return;var dataID={Symbol:kData.Symbol,Date:lastItem.Date,Time:lastItem.Time};if(!this.FloatTooltip.IsEqualHQID(dataID))return;var sendData={Data:lastItem,Symbol:this.Symbol,Name:this.Name,DataType:2};this.FloatTooltip.Update(sendData);};this.GetKData=function(){if(!this.ChartPaint[0])return null;var data=this.ChartPaint[0].Data;if(!data)return null;return data;};//十字光标解锁
|
|
7785
|
+
this.UnlockCorssCursor=function(){var xItem=this.GlobalOption.LockCorssCursor.X;xItem.Enable=false;xItem.KLine=null;};this.LockCorssCursor=function(){var xItem=this.GlobalOption.LockCorssCursor.X;xItem.KLine={DataIndex:null,Date:null,Time:null};xItem.Enable=true;};this.GetCorssCursorPosition=function(){var position={LastPoint:{X:this.LastPoint.X,Y:this.LastPoint.Y},CursorIndex:this.CursorIndex};if(!this.GlobalOption||!this.GlobalOption.LockCorssCursor)return position;var xItem=this.GlobalOption.LockCorssCursor.X;if(xItem.Enable&&xItem.KLine){position.CursorIndex=xItem.KLine.CursorIndex;}return position;};}//API 返回数据 转化为array[]
|
|
7775
7786
|
KLineChartContainer.JsonDataToHistoryData=function(data){var aryDayData=[];if(!data.data)return aryDayData;var upperSymbol=null;if(data.symbol)upperSymbol=data.symbol.toUpperCase();var isFutures=false;//是否是期货
|
|
7776
7787
|
if(upperSymbol)isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol);var list=data.data;var date=0,yclose=1,open=2,high=3,low=4,close=5,vol=6,amount=7,position=8;var fclose=9,yfclose=10;//结算价, 前结算价
|
|
7777
7788
|
var bfactor=11,afactor=12;//前, 后复权因子
|
|
@@ -7898,7 +7909,8 @@ this.ChartDrawStorage=new ChartDrawStorage();this.ChartDrawStorageCache=null;//
|
|
|
7898
7909
|
this.MinuteApiUrl=g_JSChartResource.Domain+"/API/Stock";this.HistoryMinuteApiUrl=g_JSChartResource.Domain+'/API/StockMinuteData';//历史分钟数据
|
|
7899
7910
|
this.ColorLineData;//主图价格线颜色自定义配置
|
|
7900
7911
|
this.EnableSelectRect=false;//是否可以区间选择
|
|
7901
|
-
this.CorssCursorIndex={DayIndex:-1,DataIndex:-1,Point:{X:-1,Y:-1},Type:-1}
|
|
7912
|
+
this.CorssCursorIndex={DayIndex:-1,DataIndex:-1,Point:{X:-1,Y:-1},Type:-1};//Type: 单日(1=主图 2=盘前 3=盘后) 多日(10=主图 20=盘前 30=盘后)
|
|
7913
|
+
this.EnableNewIndex=false;//是否使用新的索引版本
|
|
7902
7914
|
this.DayOffset={Offset:0,ShowDayCount:-1,DataOffset:0,DayCount:1};//Offset 日期偏移 , DataOffset数据偏移
|
|
7903
7915
|
this.PageInfo={Enable:false,Offset:-8888,ShowDayCount:4};//分页配置
|
|
7904
7916
|
this.DataStatus={MultiDay:false,LatestDay:false,LatestDate:null};//MultiDay=多日 LatestDay:当天 LatestDate:最后的日期
|
|
@@ -7939,7 +7951,25 @@ RectSelectPaint:paint//区间选择背景
|
|
|
7939
7951
|
{var selectData=paint.GetSelectRectData();var data={X:obj.X,Y:obj.Y,SelectData:selectData,RectSelectPaint:paint};var e={data:data};this.DrawSelectRectDialog(e);}return true;};this.GetLastCursorIndex=function(obj){if(obj.DataType==1){for(var i=obj.Data.length-1;i>=0;--i){var item=obj.Data[i];if(!item||!item.DayItem||!item.DayItem.Data)continue;obj.IndexData.DayIndex=0;obj.IndexData.DataIndex=item.DayItem.Data.length-1;obj.IndexData.Type=item.Type;return;}}else if(obj.DataType==2){for(var i=obj.Data.length-1;i>=0;--i){var dayItem=obj.Data[i];for(var j=dayItem.length-1;j>=0;--j){var item=dayItem[j];if(!item||!item.DayItem||!item.DayItem.Data)continue;obj.IndexData.DayIndex=i;obj.IndexData.DataIndex=item.DayItem.Data.length-1;obj.IndexData.Type=item.Type;return;}}}};this.GetFirstCursorIndex=function(obj){if(obj.DataType==1){for(var i=0;i<obj.Data.length;++i){var item=obj.Data[i];if(!item||!item.DayItem||!item.DayItem.Data)continue;obj.IndexData.DayIndex=0;obj.IndexData.DataIndex=0;obj.IndexData.Type=item.Type;return;}}else if(obj.DataType==2){for(var i=0;i<obj.Data.length;++i){var dayItem=obj.Data[i];for(var j=0;j<dayItem.length;++j){var item=dayItem[j];if(!item||!item.DayItem||!item.DayItem.Data)continue;obj.IndexData.DayIndex=i;obj.IndexData.DataIndex=0;obj.IndexData.Type=item.Type;return;}}}};//获取单日 盘后集合竞价数据
|
|
7940
7952
|
this.GetAfterCloseData=function(){var dayItem=null;if(this.AfterCloseData&&this.IsShowAfterData)dayItem=this.AfterCloseData;return dayItem;};//获取单日 盘前集合竞价数据
|
|
7941
7953
|
this.GetBeforeOpenData=function(){var dayItem=null;if(this.BeforeOpenData&&this.IsShowBeforeData)dayItem=this.BeforeOpenData;return dayItem;};this.MoveCorssCursorIndex=function(option){if(!this.EnableNewIndex)return false;if(!this.Frame.SubFrame[0]||!this.Frame.SubFrame[0].Frame)return false;var frame=this.Frame.SubFrame[0].Frame;if(this.CorssCursorIndex.Type==1||this.CorssCursorIndex.Type==2||this.CorssCursorIndex.Type==3||this.CorssCursorIndex.Type==-1){var aryData=[];var dayItem=this.GetBeforeOpenData();aryData.push({DayItem:dayItem,Type:2});var dayItem=null;if(this.SourceData)dayItem=this.SourceData;aryData.push({DayItem:dayItem,Type:1});var dayItem=this.GetAfterCloseData();;aryData.push({DayItem:dayItem,Type:3});var obj={DataType:1,Data:aryData,IndexData:this.CorssCursorIndex,Point:{X:null,Y:null}};var step=1;if(option.IsMoveLeft){if(this.CorssCursorIndex.DayIndex<0&&this.CorssCursorIndex.DataIndex<0){this.GetLastCursorIndex(obj);step=0;}if(frame.MoveXIndexLeft(step,obj)){this.LastPoint.X=obj.Point.X;this.LastPoint.Y=obj.Point.Y;if(this.CorssCursorIndex.Type==1)this.CursorIndex=this.CorssCursorIndex.CursorIndex;var option={ParentFunction:'MoveCorssCursorIndex',Point:{X:obj.Point.X,Y:obj.Point.Y},IsPhone:false,ClientPos:this.CorssCursorIndex.Type};this.DrawDynamicInfo(option);}}else{if(this.CorssCursorIndex.DayIndex<0&&this.CorssCursorIndex.DataIndex<0){this.GetFirstCursorIndex(obj);step=0;}if(frame.MoveXIndexRight(step,obj)){this.LastPoint.X=obj.Point.X;this.LastPoint.Y=obj.Point.Y;if(this.CorssCursorIndex.Type==1)this.CursorIndex=this.CorssCursorIndex.CursorIndex;var option={ParentFunction:'MoveCorssCursorIndex',Point:{X:obj.Point.X,Y:obj.Point.Y},IsPhone:false,ClientPos:this.CorssCursorIndex.Type};this.DrawDynamicInfo(option);}}}else if(this.CorssCursorIndex.Type==10||this.CorssCursorIndex.Type==20||this.CorssCursorIndex.Type==30||this.CorssCursorIndex.Type==-2){var aryData=[];var offset=0,showDayCount=this.DayData.length;if(this.DayOffset){if(IFrameSplitOperator.IsNumber(this.DayOffset.Offset))offset=this.DayOffset.Offset;if(IFrameSplitOperator.IsNumber(this.DayOffset.ShowDayCount))showDayCount=this.DayOffset.ShowDayCount;}for(var i=offset,j=0;i<this.DayData.length&&j<showDayCount;++i,++j){var item=[];var dayItem=null;if(this.MultiDayBeforeOpenData&&this.IsShowMultiDayBeforeData)dayItem=this.MultiDayBeforeOpenData[i];item.push({DayItem:dayItem,Type:20});//倒序排的
|
|
7942
|
-
var dayItem=null;if(this.DayData)dayItem=this.DayData[this.DayData.length-1-i];item.push({DayItem:dayItem,Type:10});var dayItem=null;if(this.MultiDayAfterCloseData&&this.IsShowMultiDayAfterData)dayItem=this.MultiDayAfterCloseData[i];item.push({DayItem:dayItem,Type:30});aryData.push(item);}var obj={DataType:2,Data:aryData,IndexData:this.CorssCursorIndex,Point:{X:null,Y:null}};var step=1;if(option.IsMoveLeft){if(this.CorssCursorIndex.DayIndex<0&&this.CorssCursorIndex.DataIndex<0){this.GetLastCursorIndex(obj);step=0;}if(frame.MoveXIndexLeft(step,obj)){this.LastPoint.X=obj.Point.X;this.LastPoint.Y=obj.Point.Y;if(this.CorssCursorIndex.Type==10)this.CursorIndex=this.CorssCursorIndex.CursorIndex;var option={ParentFunction:'MoveCorssCursorIndex',Point:{X:obj.Point.X,Y:obj.Point.Y},IsPhone:false,ClientPos:null};if(this.CorssCursorIndex.Type==10)option.ClientPos=1;else if(this.CorssCursorIndex.Type==20)option.ClientPos=this.CorssCursorIndex.DayIndex+200;else if(this.CorssCursorIndex.Type==30)option.ClientPos=this.CorssCursorIndex.DayIndex+300;this.DrawDynamicInfo(option);}}else{if(this.CorssCursorIndex.DayIndex<0&&this.CorssCursorIndex.DataIndex<0){this.GetFirstCursorIndex(obj);step=0;}if(frame.MoveXIndexRight(step,obj)){this.LastPoint.X=obj.Point.X;this.LastPoint.Y=obj.Point.Y;if(this.CorssCursorIndex.Type==10)this.CursorIndex=this.CorssCursorIndex.CursorIndex;var option={ParentFunction:'MoveCorssCursorIndex',Point:{X:obj.Point.X,Y:obj.Point.Y},IsPhone:false,ClientPos:null};if(this.CorssCursorIndex.Type==10)option.ClientPos=1;else if(this.CorssCursorIndex.Type==20)option.ClientPos=this.CorssCursorIndex.DayIndex+200;else if(this.CorssCursorIndex.Type==30)option.ClientPos=this.CorssCursorIndex.DayIndex+300;this.DrawDynamicInfo(option);}}}};this.
|
|
7954
|
+
var dayItem=null;if(this.DayData)dayItem=this.DayData[this.DayData.length-1-i];item.push({DayItem:dayItem,Type:10});var dayItem=null;if(this.MultiDayAfterCloseData&&this.IsShowMultiDayAfterData)dayItem=this.MultiDayAfterCloseData[i];item.push({DayItem:dayItem,Type:30});aryData.push(item);}var obj={DataType:2,Data:aryData,IndexData:this.CorssCursorIndex,Point:{X:null,Y:null}};var step=1;if(option.IsMoveLeft){if(this.CorssCursorIndex.DayIndex<0&&this.CorssCursorIndex.DataIndex<0){this.GetLastCursorIndex(obj);step=0;}if(frame.MoveXIndexLeft(step,obj)){this.LastPoint.X=obj.Point.X;this.LastPoint.Y=obj.Point.Y;if(this.CorssCursorIndex.Type==10)this.CursorIndex=this.CorssCursorIndex.CursorIndex;var option={ParentFunction:'MoveCorssCursorIndex',Point:{X:obj.Point.X,Y:obj.Point.Y},IsPhone:false,ClientPos:null};if(this.CorssCursorIndex.Type==10)option.ClientPos=1;else if(this.CorssCursorIndex.Type==20)option.ClientPos=this.CorssCursorIndex.DayIndex+200;else if(this.CorssCursorIndex.Type==30)option.ClientPos=this.CorssCursorIndex.DayIndex+300;this.DrawDynamicInfo(option);}}else{if(this.CorssCursorIndex.DayIndex<0&&this.CorssCursorIndex.DataIndex<0){this.GetFirstCursorIndex(obj);step=0;}if(frame.MoveXIndexRight(step,obj)){this.LastPoint.X=obj.Point.X;this.LastPoint.Y=obj.Point.Y;if(this.CorssCursorIndex.Type==10)this.CursorIndex=this.CorssCursorIndex.CursorIndex;var option={ParentFunction:'MoveCorssCursorIndex',Point:{X:obj.Point.X,Y:obj.Point.Y},IsPhone:false,ClientPos:null};if(this.CorssCursorIndex.Type==10)option.ClientPos=1;else if(this.CorssCursorIndex.Type==20)option.ClientPos=this.CorssCursorIndex.DayIndex+200;else if(this.CorssCursorIndex.Type==30)option.ClientPos=this.CorssCursorIndex.DayIndex+300;this.DrawDynamicInfo(option);}}}};this.LockCorssCursor=function(){var xItem=this.GlobalOption.LockCorssCursor.X;if(this.EnableNewIndex){if(this.CorssCursorIndex.Type!=1&&this.CorssCursorIndex.Type!=10)return;//目前只支持连续交易时间段
|
|
7955
|
+
xItem.Minute={DayIndex:this.CorssCursorIndex.DayIndex,DataIndex:this.CorssCursorIndex.DataIndex,Type:this.CorssCursorIndex.Type,CursorIndex:this.CursorIndex};}else{xItem.Minute={CursorIndex:this.CursorIndex};}xItem.Enable=true;};this.UnlockCorssCursor=function(){var xItem=this.GlobalOption.LockCorssCursor.X;xItem.Enable=false;xItem.Minute=null;};this.GetCorssCursorPosition=function(){var position={LastPoint:{X:this.LastPoint.X,Y:this.LastPoint.Y},CursorIndex:this.CursorIndex,CorssCursorIndex:this.CorssCursorIndex};if(!this.GlobalOption||!this.GlobalOption.LockCorssCursor)return position;var xItem=this.GlobalOption.LockCorssCursor.X;if(xItem.Enable&&xItem.Minute){if(this.EnableNewIndex){var type=xItem.Minute.Type;position.CorssCursorIndex={DayIndex:xItem.Minute.DayIndex,DataIndex:xItem.Minute.DataIndex,Type:type};position.CursorIndex=xItem.Minute.CursorIndex;position.LastPoint.X=this.GetXPointByCorssCursorIndex(position.CorssCursorIndex);}else{var index=xItem.Minute.CursorIndex;var x=this.Frame.GetXFromIndex(index,false);position.LastPoint.X=x;position.CursorIndex=xItem.Minute.CursorIndex;}var border=this.Frame.ChartBorder.GetBorder();if(position.LastPoint.Y<border.Top||position.LastPoint.Y>border.Bottom)//超出图形框子, 调整为收盘价
|
|
7956
|
+
{var kData=this.GetKData();if(kData&&IFrameSplitOperator.IsNonEmptyArray(kData.Data)){var index=parseInt(position.CursorIndex.toFixed(0));var item=kData.Data[index];if(item&&IFrameSplitOperator.IsNumber(item.Close)){var y=this.Frame.SubFrame[0].Frame.GetYFromData(item.Close);position.LastPoint.Y=y;}}}}return position;};this.GetXPointByCorssCursorIndex=function(corssCursorIndex){if(!corssCursorIndex)return;var x=null;var dayIndex=corssCursorIndex.DayIndex;var dataIndex=corssCursorIndex.DataIndex;switch(corssCursorIndex.Type){//单日 1=主图 2=盘前 3=盘后 //多日 10=主图 20=盘前 30=盘后
|
|
7957
|
+
case 1://单日 1=主图
|
|
7958
|
+
case 10://多日 10=主图
|
|
7959
|
+
x=this.Frame.GetXFromIndex(dataIndex);break;/*
|
|
7960
|
+
case 2: //单日 2=盘前
|
|
7961
|
+
x=this.Frame.SubFrame[0].Frame.GetLeftExtendXFromIndex(dataIndex,this.GetBeforeOpenData());
|
|
7962
|
+
break;
|
|
7963
|
+
case 20: //多日 20=盘前
|
|
7964
|
+
x=this.Frame.SubFrame[0].Frame.GetLeftExtendXFromIndex(dataIndex,{ Data:this.MultiDayBeforeOpenData, });
|
|
7965
|
+
break;
|
|
7966
|
+
case 3: //单日 3=盘后
|
|
7967
|
+
x=this.Frame.SubFrame[0].Frame.GetRightExtendXFromIndex(dataIndex,this.GetAfterCloseData());
|
|
7968
|
+
break;
|
|
7969
|
+
case 30: //多日 30=盘后
|
|
7970
|
+
x=this.Frame.SubFrame[0].Frame.GetRightExtendXFromIndex(dataIndex,{ Data:this.MultiDayAfterCloseData} );
|
|
7971
|
+
break;
|
|
7972
|
+
*/}return x;};this.SetCorssCursorIndex=function(option){if(!this.EnableNewIndex)return;JSConsole.Chart.Log("[MinuteChartContainer::SetCorssCursorIndex] option ",option);if(option.ParentFunction=="OnMouseMove"){this.CorssCursorIndex.Point.X=option.Point.X;this.CorssCursorIndex.Point.Y=option.Point.Y;var clientPos=this.PtInClient_V2(option.Point.X,option.Point.Y);JSConsole.Chart.Log("[MinuteChartContainer::SetCorssCursorIndex] clientPos ",clientPos);if(clientPos<=0){this.CorssCursorIndex={DayIndex:-1,DataIndex:-1,Point:{X:-1,Y:-1},Type:clientPos};return;}if(!this.Frame.SubFrame[0]||!this.Frame.SubFrame[0].Frame){this.CorssCursorIndex={DayIndex:-1,DataIndex:-1,Point:{X:-1,Y:-1},Type:-1};return;}var frame=this.Frame.SubFrame[0].Frame;if(clientPos==1||clientPos==2||clientPos==3){this.CorssCursorIndex.DayIndex=0;this.CorssCursorIndex.Type=clientPos;if(clientPos==2){frame.GetLeftExtendXValidData(option.Point.X,{Data:this.BeforeOpenData,IndexData:this.CorssCursorIndex});}else if(clientPos==3){frame.GetRightExtendXValidData(option.Point.X,{Data:this.AfterCloseData,IndexData:this.CorssCursorIndex});}else if(clientPos==1){var value=frame.GetXData(option.Point.X);this.CorssCursorIndex.DataIndex=parseInt(value.toFixed(0));}}else if(clientPos>=100&&clientPos<=199){this.CorssCursorIndex.DayIndex=clientPos-100;this.CorssCursorIndex.Type=10;var value=frame.GetXData(option.Point.X);var index=parseInt(value.toFixed(0));this.CorssCursorIndex.DataIndex=index%frame.MinuteCount;}else if(clientPos>=200&&clientPos<=299){this.CorssCursorIndex.DayIndex=clientPos-200;this.CorssCursorIndex.Type=20;var aryData=this.MultiDayBeforeOpenData;if(this.DayOffset){var offset=0,showDayCount=this.MultiDayBeforeOpenData.length;if(IFrameSplitOperator.IsNumber(this.DayOffset.Offset))offset=this.DayOffset.Offset;if(IFrameSplitOperator.IsNumber(this.DayOffset.ShowDayCount))showDayCount=this.DayOffset.ShowDayCount;aryData=this.MultiDayBeforeOpenData.slice(offset,offset+showDayCount);}frame.GetLeftExtendXValidData(option.Point.X,{Data:aryData,IndexData:this.CorssCursorIndex});}else if(clientPos>=300&&clientPos<=399){this.CorssCursorIndex.DayIndex=clientPos-300;this.CorssCursorIndex.Type=30;var aryData=this.MultiDayAfterCloseData;if(this.DayOffset&&this.MultiDayAfterCloseData){var offset=0,showDayCount=this.MultiDayAfterCloseData.length;if(IFrameSplitOperator.IsNumber(this.DayOffset.Offset))offset=this.DayOffset.Offset;if(IFrameSplitOperator.IsNumber(this.DayOffset.ShowDayCount))showDayCount=this.DayOffset.ShowDayCount;aryData=this.MultiDayAfterCloseData.slice(offset,offset+showDayCount);}frame.GetRightExtendXValidData(option.Point.X,{Data:aryData,IndexData:this.CorssCursorIndex});}this.LastPoint.X=this.CorssCursorIndex.Point.X;option.Point.X=this.CorssCursorIndex.Point.X;}};// 100-199=多日分时主图 200-299=盘前 300-399=盘后 1=主图 2=盘前 3=盘后
|
|
7943
7973
|
this.PtInClient_V2=function(x,y){this.Canvas.beginPath();if(this.Frame.IsHScreen===true){var border=this.Frame.ChartBorder.GetHScreenBorder();this.Canvas.rect(border.Left,border.TopEx,border.Right-border.Left,border.BottomEx-border.TopEx);}else{var border=this.Frame.ChartBorder.GetBorder();if(border.DayBorder)//多日分时+多日集合竞价
|
|
7944
7974
|
{for(var i=0;i<border.DayBorder.length;++i){var client=border.DayBorder[i];this.Canvas.beginPath();this.Canvas.rect(client.LeftEx,border.TopEx,client.RightEx-client.LeftEx,border.BottomEx-border.TopEx);if(this.Canvas.isPointInPath(x,y))return 100+i;//盘前
|
|
7945
7975
|
this.Canvas.beginPath();this.Canvas.rect(client.Left,border.TopEx,client.LeftEx-client.Left,border.BottomEx-border.TopEx);if(this.Canvas.isPointInPath(x,y))return 200+i;//盘后
|
|
@@ -8079,7 +8109,7 @@ for(var i=1;i<this.TitlePaint.length;++i){var item=this.TitlePaint[i];item.Overl
|
|
|
8079
8109
|
chart.Data.Data=[];//清空数据
|
|
8080
8110
|
}};//切换股票代码
|
|
8081
8111
|
this.ChangeSymbol=function(symbol,option){this.StopDisplayLatest();this.CancelAutoUpdate();this.AutoUpdateEvent(false,"MinuteChartContainer::ChangeSymbol");this.Symbol=symbol;this.ResetDayOffset();this.ResetDataStatus();this.ClearIndexPaint();//清空指标
|
|
8082
|
-
this.ResetOverlaySymbolStatus();this.ReloadChartDrawPicture();this.ClearIndexRunCount();this.ClearStockCache();this.Frame.ClearYCoordinateMaxMin();if(option){if(IFrameSplitOperator.IsNumber(option.DayCount))this.DayCount=option.DayCount;if(IFrameSplitOperator.IsNonEmptyArray(option.Windows))//切换指标
|
|
8112
|
+
this.ResetOverlaySymbolStatus();this.ReloadChartDrawPicture();this.ClearIndexRunCount();this.ClearStockCache();this.UnlockCorssCursor();this.Frame.ClearYCoordinateMaxMin();if(option){if(IFrameSplitOperator.IsNumber(option.DayCount))this.DayCount=option.DayCount;if(IFrameSplitOperator.IsNonEmptyArray(option.Windows))//切换指标
|
|
8083
8113
|
{for(var i=0;i<option.Windows.length;++i){var index=2+i;if(index>=this.WindowIndex.length)break;//暂时不支持 动态增加/减少
|
|
8084
8114
|
var item=option.Windows[i];if(!item)continue;if(item.Script){this.WindowIndex[index]=new ScriptIndex(item.Name,item.Script,item.Args,item);//脚本执行
|
|
8085
8115
|
}else if(item.API){var apiItem=item.API;this.WindowIndex[index]=new APIScriptIndex(apiItem.Name,apiItem.Script,apiItem.Args,item);}else{var systemScript=new JSIndexScript();var indexID=item.Index;var indexInfo=systemScript.Get(indexID);if(indexInfo){JSIndexScript.ModifyAttribute(indexInfo,item);indexInfo.ID=indexID;this.WindowIndex[index]=new ScriptIndex(indexInfo.Name,indexInfo.Script,indexInfo.Args,indexInfo);//脚本执行
|
|
@@ -8090,7 +8120,7 @@ if(option.Overlay&&IFrameSplitOperator.IsNonEmptyArray(option.Overlay)){var setS
|
|
|
8090
8120
|
{var item=this.OverlayChartPaint[i];setSymbol.add(item.Symbol);}for(var i=0;i<option.Overlay.length;++i){var item=option.Overlay[i];if(setSymbol.has(item.Symbol))continue;var paint=new ChartOverlayMinutePriceLine();paint.Canvas=this.Canvas;paint.ChartBorder=this.Frame.SubFrame[0].Frame.ChartBorder;paint.ChartFrame=this.Frame.SubFrame[0].Frame;paint.Name="Overlay-Minute";paint.Symbol=item.Symbol;paint.Identify='Overlay-Minute-'+item.Symbol;if(item.Color)paint.Color=item.Color;//外部设置颜色
|
|
8091
8121
|
else paint.Color=g_JSChartResource.OverlaySymbol.Color[g_JSChartResource.OverlaySymbol.Random%g_JSChartResource.OverlaySymbol.Color.length];++g_JSChartResource.OverlaySymbol.Random;paint.MainData=this.SourceData;//绑定主图数据
|
|
8092
8122
|
if(paint.SetOption)paint.SetOption(item);this.OverlayChartPaint.push(paint);}}if(IFrameSplitOperator.IsNonEmptyArray(option.AryDate)){this.AryDate=option.AryDate.slice();}}if(!symbol||this.DayCount<=0){this.DrawEmpty();}else{this.ChartSplashPaint.SetTitle(this.LoadDataSplashTitle);this.ChartSplashPaint.EnableSplash(true);//增加下载动画
|
|
8093
|
-
this.Draw();this.RequestData();}};this.SetPageInfo=function(pageInfo){if(!pageInfo)return;if(IFrameSplitOperator.IsBool(pageInfo.Enable))this.PageInfo.Enable=pageInfo.Enable;if(IFrameSplitOperator.IsNumber(pageInfo.Offset))this.PageInfo.Offset=pageInfo.Offset;if(IFrameSplitOperator.IsNumber(pageInfo.ShowDayCount))this.PageInfo.ShowDayCount=pageInfo.ShowDayCount;};this.ClearMinuteData=function(){this.SourceData=null;this.DayData=null;this.BeforeOpenData=null;this.AfterCloseData=null;this.MultiDayBeforeOpenData=null;this.MultiDayAfterCloseData=null;};this.ChangeDayCount=function(count,option){if(count<0)return;this.StopDisplayLatest();this.CancelAutoUpdate();this.AutoUpdateEvent(false,"MinuteChartContainer::ChangeDayCount");this.DayCount=count;this.ClearMinuteData();if(option&&option.PageInfo){this.SetPageInfo(option.PageInfo);this.ResetDayOffset();}if(option){if(IFrameSplitOperator.IsNonEmptyArray(option.AryDate)){this.AryDate=option.AryDate.slice();}}this.ReloadChartDrawPicture();this.ResetDataStatus();this.ClearIndexPaint();//清空指标
|
|
8123
|
+
this.Draw();this.RequestData();}};this.SetPageInfo=function(pageInfo){if(!pageInfo)return;if(IFrameSplitOperator.IsBool(pageInfo.Enable))this.PageInfo.Enable=pageInfo.Enable;if(IFrameSplitOperator.IsNumber(pageInfo.Offset))this.PageInfo.Offset=pageInfo.Offset;if(IFrameSplitOperator.IsNumber(pageInfo.ShowDayCount))this.PageInfo.ShowDayCount=pageInfo.ShowDayCount;};this.ClearMinuteData=function(){this.SourceData=null;this.DayData=null;this.BeforeOpenData=null;this.AfterCloseData=null;this.MultiDayBeforeOpenData=null;this.MultiDayAfterCloseData=null;};this.ChangeDayCount=function(count,option){if(count<0)return;this.StopDisplayLatest();this.CancelAutoUpdate();this.AutoUpdateEvent(false,"MinuteChartContainer::ChangeDayCount");this.DayCount=count;this.ClearMinuteData();this.UnlockCorssCursor();if(option&&option.PageInfo){this.SetPageInfo(option.PageInfo);this.ResetDayOffset();}if(option){if(IFrameSplitOperator.IsNonEmptyArray(option.AryDate)){this.AryDate=option.AryDate.slice();}}this.ReloadChartDrawPicture();this.ResetDataStatus();this.ClearIndexPaint();//清空指标
|
|
8094
8124
|
this.Frame.ClearYCoordinateMaxMin();this.ResetOverlaySymbolStatus();this.RequestData();};this.ChangeBaselineType=function(type){if(this.BaselineType==type)return;this.BaselineType=type;if(this.DayCount>1)this.RequestData();};//[{ Symbol: , Color, Option: }]
|
|
8095
8125
|
this.OverlaySymbols=function(aryData,option){if(option&&option.ClearAll===true)//全部清空
|
|
8096
8126
|
{for(var i=0;i<this.OverlayChartPaint.length;++i){var item=this.OverlayChartPaint[i];item.IsDelete=true;}this.OverlayChartPaint=[];}var aryNewOverlay=[];for(var i=0,j=0;i<aryData.length;++i)//去重,已经叠加过的不用在叠加
|
|
@@ -10655,10 +10685,12 @@ this.DRAWLASTBARTEXT=function(data,text){var drawItem={Value:null,Text:text};if(
|
|
|
10655
10685
|
//DRAWLASTBARNUMBER(HIGH,(CLOSE-OPEN)/OPEN*100,2,COLORRED);//最后一根k线在最高价位置红色显示涨幅数值(相对开盘价的百分比,精确2位小数)。
|
|
10656
10686
|
//例2:
|
|
10657
10687
|
//DRAWLASTBARNUMBER(L,REF(C,1),2,COLORRED),ALIGN0,VALIGN0;//表示最后一根k线的最低价处以红色显示昨收盘价数值(精确2位小数),标注文字居左,居上对齐。
|
|
10658
|
-
this.DRAWLASTBARNUMBER=function(data,value,dec,color){var drawItem={Value:null,Text:null,Color:color};if(IFrameSplitOperator.IsNonEmptyArray(data))drawItem.Value=data[data.length-1];else drawItem.Value=data;var precision=2;if(IFrameSplitOperator.IsNumber(dec))precision=parseInt(dec);if(IFrameSplitOperator.IsNumber(value)){drawItem.Text=value.toFixed(precision);}else if(IFrameSplitOperator.IsNonEmptyArray(value)){var lastValue=value[value.length-1];if(IFrameSplitOperator.IsNumber(lastValue))drawItem.Text=lastValue.toFixed(precision);}var result={DrawData:drawItem,DrawType:'DRAWLASTBARNUMBER'};return result;}
|
|
10688
|
+
this.DRAWLASTBARNUMBER=function(data,value,dec,color){var drawItem={Value:null,Text:null,Color:color};if(IFrameSplitOperator.IsNonEmptyArray(data))drawItem.Value=data[data.length-1];else drawItem.Value=data;var precision=2;if(IFrameSplitOperator.IsNumber(dec))precision=parseInt(dec);if(IFrameSplitOperator.IsNumber(value)){drawItem.Text=value.toFixed(precision);}else if(IFrameSplitOperator.IsNonEmptyArray(value)){var lastValue=value[value.length-1];if(IFrameSplitOperator.IsNumber(lastValue))drawItem.Text=lastValue.toFixed(precision);}var result={DrawData:drawItem,DrawType:'DRAWLASTBARNUMBER'};return result;};//表格
|
|
10689
|
+
this.TABLE_CELL=function(text,color,textAlign){var cellItem={Text:text};if(color)cellItem.Color=color;if(IFrameSplitOperator.IsString(textAlign)){var strValue=textAlign.toLowerCase();//转小写
|
|
10690
|
+
cellItem.TextAlign=strValue;}return cellItem;};this.TABLE_ROW=function(aryData){var aryCell=[];for(var i=0;i<aryData.length;++i){var item=aryData[i];aryCell.push(item);}return aryCell;};this.DRAWTABLE=function(aryData){var tableData=[];for(var i=0;i<aryData.length;++i){var item=aryData[i];tableData.push({AryCell:item});}return result={DrawData:{TableData:tableData},DrawType:'DRAW_SIMPLE_TABLE'};};}JSDraw.prototype.CalculateDrawLine=function(lineCache){lineCache.List=[];for(var _i102=lineCache.Start.ID;_i102<=lineCache.End.ID;++_i102){lineCache.List.push(_i102);}var height=Math.abs(lineCache.Start.Value-lineCache.End.Value);var width=lineCache.List.length-1;var result=[];result.push({ID:lineCache.Start.ID,Value:lineCache.Start.Value});//第1个点
|
|
10659
10691
|
if(lineCache.Start.Value>lineCache.End.Value){for(var _i103=1;_i103<lineCache.List.length-1;++_i103){var value=height*(lineCache.List.length-1-_i103)/width+lineCache.End.Value;result.push({ID:lineCache.List[_i103],Value:value});}}else{for(var _i104=1;_i104<lineCache.List.length-1;++_i104){var value=height*_i104/width+lineCache.Start.Value;result.push({ID:lineCache.List[_i104],Value:value});}}result.push({ID:lineCache.End.ID,Value:lineCache.End.Value});//最后一个点
|
|
10660
10692
|
return result;};//是否有是有效的数字
|
|
10661
|
-
JSDraw.prototype.IsNumber=function(value){if(value==null)return false;if(isNaN(value))return false;return true;};JSDraw.prototype.IsDrawFunction=function(name){var setFunctionName=new _set2.default(["STICKLINE","DRAWTEXT",'SUPERDRAWTEXT','DRAWLINE','DRAWBAND','DRAWKLINE',"DRAWKLINE1",'DRAWKLINE_IF',"DRAWCOLORKLINE",'PLOYLINE',"DRAWOVERLAYKLINE",'POLYLINE','DRAWNUMBER',"DRAWNUMBER_FIX",'DRAWICON','DRAWCHANNEL','PARTLINE','DRAWTEXT_FIX','DRAWGBK','DRAWTEXT_LINE','DRAWRECTREL',"DRAWTEXTABS","DRAWTEXTREL",'DRAWOVERLAYLINE',"FILLRGN","FILLRGN2","FILLTOPRGN","FILLBOTTOMRGN","FILLVERTICALRGN","FLOATRGN","DRAWSL","DRAWGBK2","DRAWGBK_DIV","VERTLINE","HORLINE","TIPICON","BUY","SELL","SELLSHORT","BUYSHORT","DRAWLASTBARICON","DRAWLASTBARNUMBER","DRAWLASTBARTEXT"]);if(setFunctionName.has(name))return true;return false;};JSDraw.prototype.RemoveZero=function(strValue){while(strValue.length>0){var index=strValue.length-1;var ch=strValue[index];if(ch=="0"){strValue=strValue.substr(0,index);}else if(ch=="."){strValue=strValue.substr(0,index);break;}else{break;}}return strValue;};//http://www.newone.com.cn/helpcontroller/index?code=zszy_pc
|
|
10693
|
+
JSDraw.prototype.IsNumber=function(value){if(value==null)return false;if(isNaN(value))return false;return true;};JSDraw.prototype.IsDrawFunction=function(name){var setFunctionName=new _set2.default(["STICKLINE","DRAWTEXT",'SUPERDRAWTEXT','DRAWLINE','DRAWBAND','DRAWKLINE',"DRAWKLINE1",'DRAWKLINE_IF',"DRAWCOLORKLINE",'PLOYLINE',"DRAWOVERLAYKLINE",'POLYLINE','DRAWNUMBER',"DRAWNUMBER_FIX",'DRAWICON','DRAWCHANNEL','PARTLINE','DRAWTEXT_FIX','DRAWGBK','DRAWTEXT_LINE','DRAWRECTREL',"DRAWTEXTABS","DRAWTEXTREL",'DRAWOVERLAYLINE',"FILLRGN","FILLRGN2","FILLTOPRGN","FILLBOTTOMRGN","FILLVERTICALRGN","FLOATRGN","DRAWSL","DRAWGBK2","DRAWGBK_DIV","VERTLINE","HORLINE","TIPICON","BUY","SELL","SELLSHORT","BUYSHORT","DRAWLASTBARICON","DRAWLASTBARNUMBER","DRAWLASTBARTEXT","DRAWTABLE"]);if(setFunctionName.has(name))return true;return false;};JSDraw.prototype.RemoveZero=function(strValue){while(strValue.length>0){var index=strValue.length-1;var ch=strValue[index];if(ch=="0"){strValue=strValue.substr(0,index);}else if(ch=="."){strValue=strValue.substr(0,index);break;}else{break;}}return strValue;};//http://www.newone.com.cn/helpcontroller/index?code=zszy_pc
|
|
10662
10694
|
var DYNAINFO_ARGUMENT_ID={YCLOSE:3,OPEN:4,HIGH:5,LOW:6,CLOSE:7,VOL:8,AMOUNT:10,AMPLITUDE:13,//振幅
|
|
10663
10695
|
INCREASE:14,//涨幅
|
|
10664
10696
|
EXCHANGERATE:37//换手率
|
|
@@ -11301,7 +11333,8 @@ if(g_JSComplierResource.IsCustomFunction(funcName)){var data=this.Algorithm.Call
|
|
|
11301
11333
|
node.Out=this.SymbolData.GetLatestCacheData(args[0]);break;case'STICKLINE':node.Draw=this.Draw.STICKLINE(args[0],args[1],args[2],args[3],args[4]);node.Out=[];break;case'DRAWTEXT':node.Draw=this.Draw.DRAWTEXT(args[0],args[1],args[2]);node.Out=[];break;case'DRAWTEXT_FIX':node.Draw=this.Draw.DRAWTEXT_FIX(args[0],args[1],args[2],args[3],args[4]);node.Out=[];break;case'SUPERDRAWTEXT':node.Draw=this.Draw.SUPERDRAWTEXT(args[0],args[1],args[2],args[3],args[4]);node.Out=[];break;case'DRAWICON':node.Draw=this.Draw.DRAWICON(args[0],args[1],args[2]);node.Out=[];break;case"ICON":node.Draw=this.Draw.ICON(args[0],args[1]);node.Out=[];break;case"TIPICON":node.Draw=this.Draw.TIPICON(args[0],args[1],args[2],args[3]);node.Out=[];break;case"BACKGROUND":node.Draw=this.Draw.BACKGROUND(args[0],args[1],args[2],args[3],args[4],args[5]);node.Out=[];break;case"CKLINE":node.Draw=this.Draw.CKLINE(args[0],args[1],args[2],args[3],args[4]);node.Out=[];break;case'DRAWLINE':node.Draw=this.Draw.DRAWLINE(args[0],args[1],args[2],args[3],args[4]);node.Out=node.Draw.DrawData;break;case'DRAWBAND':node.Draw=this.Draw.DRAWBAND(args[0],args[1],args[2],args[3]);node.Out=[];break;case"FILLRGN":if(args.length>=4)node.Draw=this.Draw.FILLRGN2(args);else node.Draw=this.Draw.FILLRGN(args[0],args[1],args[2]);node.Out=[];break;case"FLOATRGN":node.Draw=this.Draw.FLOATRGN(args);node.Out=[];break;case"FILLTOPRGN":node.Draw=this.Draw.FILLBGRGN(1,args);node.Out=[];break;case"FILLBOTTOMRGN":node.Draw=this.Draw.FILLBGRGN(0,args);node.Out=[];break;case"FILLVERTICALRGN":node.Draw=this.Draw.FILLVERTICALRGN(args);node.Out=[];break;case'DRAWKLINE':case"DRAWKLINE1":node.Draw=this.Draw.DRAWKLINE(args[0],args[1],args[2],args[3]);node.Out=[];break;case'DRAWKLINE_IF':node.Draw=this.Draw.DRAWKLINE_IF(args[0],args[1],args[2],args[3],args[4]);node.Out=[];break;case"KLINETYPE"://K线类型 和DRAWKLINE连用
|
|
11302
11334
|
node.Out=this.Draw.KLINETYPE(args[0]);break;case"DRAWOVERLAYKLINE":node.Draw=this.Draw.DRAWOVERLAYKLINE(args[0],args[1],args[2],args[3]);node.Out=[];break;case"DRAWCOLORKLINE":node.Draw=this.Draw.DRAWCOLORKLINE(args[0],args[1],args[2]);node.Out=[];break;case'PLOYLINE':case'POLYLINE':node.Draw=this.Draw.POLYLINE(args[0],args[1]);node.Out=node.Draw.DrawData;break;case'DRAWNUMBER':node.Draw=this.Draw.DRAWNUMBER(args[0],args[1],args[2],args[3]);node.Out=node.Draw.DrawData.Value;break;case"DRAWNUMBER_FIX":node.Draw=this.Draw.DRAWNUMBER_FIX(args[0],args[1],args[2],args[3],args[4]);node.Out=node.Draw.DrawData.Value;break;case"DRAWCHANNEL":node.Draw=this.Draw.DRAWCHANNEL(args[0],args[1],args[2],args[3],args[4],args[5],args[6]);node.Out=[];break;case'RGB':node.Out=this.Draw.RGB(args[0],args[1],args[2]);break;case"RGBA":node.Out=this.Draw.RGBA(args[0],args[1],args[2],args[3]);break;case"UPCOLOR":node.Out=this.Draw.UPCOLOR(args[0]);break;case"DOWNCOLOR":node.Out=this.Draw.DOWNCOLOR(args[0]);break;case"STICKTYPE"://柱子类型
|
|
11303
11335
|
node.Out=this.Draw.STICKTYPE(args[0]);break;case"XMOVE":node.Out=this.Draw.XMOVE(args[0]);break;case"YMOVE":node.Out=this.Draw.YMOVE(args[0]);break;case"LINEDASH":node.Out=this.Draw.LINEDASH(args);break;case"FIRSTDRAW":node.Out=this.Draw.FIRSTDRAW(args[0]);break;case'PARTLINE':node.Draw=this.Draw.PARTLINE(args);node.Out=[];break;case'DRAWGBK':node.Draw=this.Draw.DRAWGBK(args[0],args[1],args[2],args[3]);node.Out=[];break;case'DRAWGBK2':node.Draw=this.Draw.DRAWGBK2(args[0],args[1],args[2],args[3]);node.Out=[];break;case"DRAWGBK_DIV":node.Draw=this.Draw.DRAWGBK_DIV(args[0],args[1],args[2],args[3],args[4]);node.Out=[];break;case'DRAWTEXT_LINE':node.Draw=this.Draw.DRAWTEXT_LINE(args[0],args[1],args[2],args[3],args[4],args[5],args[6]);node.Out=[];break;case'DRAWRECTREL':node.Draw=this.Draw.DRAWRECTREL(args[0],args[1],args[2],args[3],args[4]);node.Out=[];break;case"DRAWTEXTREL":node.Draw=this.Draw.DRAWTEXTREL(args[0],args[1],args[2]);node.Out=[];break;case"DRAWTEXTABS":node.Draw=this.Draw.DRAWTEXTABS(args[0],args[1],args[2]);node.Out=[];break;case"DRAWOVERLAYLINE":node.Draw=this.Draw.DRAWOVERLAYLINE(args[0],args[1],args[2]);node.Out=node.Draw.DrawData.Data;break;case"DRAWSL":node.Draw=this.Draw.DRAWSL(args[0],args[1],args[2],args[3],args[4]);node.Out=[];break;case"VERTLINE":node.Draw=this.Draw.VERTLINE(args[0],args[1]);node.Out=node.Draw.DrawData.Data;break;case"HORLINE":node.Draw=this.Draw.HORLINE(args[0],args[1],args[2],args[3]);node.Out=node.Draw.DrawData.Data;break;case"DRAWLASTBARICON":node.Draw=this.Draw.DRAWLASTBARICON(args[0],args[1]);node.Out=[];break;case"DRAWLASTBARNUMBER":node.Draw=this.Draw.DRAWLASTBARNUMBER(args[0],args[1],args[2],args[3]);node.Out=[];break;case"DRAWLASTBARTEXT":node.Draw=this.Draw.DRAWLASTBARTEXT(args[0],args[1]);node.Out=[];break;case'CODELIKE':node.Out=this.SymbolData.CODELIKE(args[0]);break;case'NAMELIKE':case"NAMEINCLUDE":node.Out=this.SymbolData.NAMELIKE(args[1]);break;case'REFDATE':node.Out=this.SymbolData.REFDATE(args[0],args[1]);break;case'FINANCE':node.Out=this.SymbolData.GetStockCacheData({FunctionName:funcName,Args:args,ArgCount:1,Node:node});break;case"FINVALUE":node.Out=this.SymbolData.GetStockCacheData({FunctionName:funcName,Args:args,ArgCount:1,Node:node});break;case"FINONE":node.Out=this.SymbolData.GetStockCacheData({FunctionName:funcName,Args:args,ArgCount:3,Node:node});break;case"GPJYVALUE":case"SCJYVALUE":case"BKJYVALUE":node.Out=this.SymbolData.GetStockCacheData({FunctionName:funcName,Args:args,ArgCount:3,Node:node});break;case"GPJYONE":case"SCJYONE":case"BKJYONE":node.Out=this.SymbolData.GetStockCacheData({FunctionName:funcName,Args:args,ArgCount:4,Node:node});break;case"MARGIN":node.Out=this.SymbolData.GetMarginCacheData(args[0],node);break;case"HK2SHSZ":node.Out=this.SymbolData.GetHKToSHSZCacheData(args[0],node);break;case"NEWS":node.Out=this.SymbolData.GetNewsAnalysisCacheData(args[0],node);break;case'UPCOUNT':case'DOWNCOUNT':node.Out=this.SymbolData.GetIndexIncreaseCacheData(funcName,args[0],node);break;case'SF':node.Out=this.SymbolData.GetSectionFinanceCacheData(args[0],args[1],args[2],node);break;case'LOADAPIDATA':node.Out=this.SymbolData.GetCustomApiData(args);break;case"STKINDI":case"CALCSTOCKINDEX":node.Out=this.SymbolData.GetScriptIndexOutData(args,node,funcName);break;case"SOUND":node.Draw=this.Draw.SOUND(args[0]);node.Out=[];break;case"PLAYSOUND":node.Draw=this.Draw.PLAYSOUND(args[0],args[1]);node.Out=[];break;case'CLOSE':case'C':case'VOL':case'V':case'OPEN':case'O':case'HIGH':case'H':case'LOW':case'L':case'AMOUNT':case'AMO':node.Out=this.SymbolData.GetOtherSymolCacheData({FunctionName:funcName,Args:args});break;case"INBLOCK":node.Out=this.SymbolData.IsInBlock(args[0],node);break;case'COVER_C':case'COVER_O':case'COVER_H':case'COVER_L':case'COVER_A':case'COVER_V':if(args.length==2)return this.SymbolData.GetSymbolPeriodCacheData2(JSComplierHelper.GetConvertValueName(funcName),args[0],args[1]);return this.SymbolData.GetSymbolPeriodCacheData(JSComplierHelper.GetConvertValueName(funcName),args[0]);case"SYSPARAM":node.Out=this.SymbolData.SysParam(args[0],this);break;case"TESTSKIP":var bExit=this.Algorithm.TESTSKIP(args[0],node);node.Out=null;if(bExit){this.Interrupt.Exit=true;if(node&&node.Marker){var marker=node.Marker;this.Interrupt.Line=marker.Line;this.Interrupt.Index=marker.Index;this.Interrupt.Column=marker.Column;}}break;//交易函数
|
|
11304
|
-
case"BUY":node.Draw=this.Draw.BUY(args[0],args[1],args[2],args[3]);node.Out=node.Draw.DrawData.Data;break;case"SELL":node.Draw=this.Draw.SELL(args[0],args[1],args[2],args[3]);node.Out=node.Draw.DrawData.Data;break;case"SELLSHORT":node.Draw=this.Draw.SELLSHORT(args[0],args[1],args[2],args[3]);node.Out=node.Draw.DrawData.Data;break;case"BUYSHORT":node.Draw=this.Draw.BUYSHORT(args[0],args[1],args[2],args[3]);node.Out=node.Draw.DrawData.Data;break
|
|
11336
|
+
case"BUY":node.Draw=this.Draw.BUY(args[0],args[1],args[2],args[3]);node.Out=node.Draw.DrawData.Data;break;case"SELL":node.Draw=this.Draw.SELL(args[0],args[1],args[2],args[3]);node.Out=node.Draw.DrawData.Data;break;case"SELLSHORT":node.Draw=this.Draw.SELLSHORT(args[0],args[1],args[2],args[3]);node.Out=node.Draw.DrawData.Data;break;case"BUYSHORT":node.Draw=this.Draw.BUYSHORT(args[0],args[1],args[2],args[3]);node.Out=node.Draw.DrawData.Data;break;//表格函数
|
|
11337
|
+
case"TABLE_CELL":node.Out=this.Draw.TABLE_CELL(args[0],args[1],args[2]);break;case"TABLE_ROW":node.Out=this.Draw.TABLE_ROW(args);break;case"DRAWTABLE":node.Draw=this.Draw.DRAWTABLE(args);node.Out=[];break;default:node.Out=this.Algorithm.CallFunction(funcName,args,node,this.SymbolData);break;}return node.Out;};//赋值
|
|
11305
11338
|
this.VisitAssignmentExpression=function(node){var left=node.Left;if(left.Type!=Syntax.Identifier)this.ThrowUnexpectedNode(node);var varName=left.Name;var right=node.Right;var value=null,drawValue=null;if(right.Type==Syntax.BinaryExpression||right.Type==Syntax.LogicalExpression)value=this.VisitBinaryExpression(right);else if(right.Type==Syntax.CallExpression){value=this.VisitCallExpression(right);if(right.Draw)drawValue=right.Draw;}else if(right.Type==Syntax.Literal){value=right.Value;if(IFrameSplitOperator.IsString(value)&&right.Value.indexOf("$")>0)value=this.SymbolData.GetOtherSymolCacheData({Literal:value});}else if(right.Type==Syntax.Identifier)//右值是变量
|
|
11306
11339
|
value=this.ReadVariable(right.Name,right);else if(right.Type==Syntax.MemberExpression)value=this.ReadMemberVariable(right);else if(right.Type==Syntax.UnaryExpression)value=this.VisitUnaryExpression(right);if(JS_EXECUTE_DEBUG_LOG)JSConsole.Complier.Log('[JSExecute::VisitAssignmentExpression]',varName,' = ',value);if(drawValue)this.VarDrawTable.set(varName,drawValue);this.VarTable.set(varName,value);};//逻辑运算
|
|
11307
11340
|
this.VisitBinaryExpression=function(node){var stack=[];stack.push(node);var temp=null;while(stack.length!=0){temp=stack[stack.length-1];if(temp.Left&&node!=temp.Left&&node!=temp.Right){stack.push(temp.Left);}else if(temp.Right&&node!=temp.Right){stack.push(temp.Right);}else{var _value15=stack.pop();if(_value15.Type==Syntax.BinaryExpression)//只遍历操作符就可以
|
|
@@ -14041,7 +14074,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
|
|
|
14041
14074
|
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);};}/********************************************************************************
|
|
14042
14075
|
* 版本信息输出
|
|
14043
14076
|
*
|
|
14044
|
-
*/var HQCHART_VERSION="1.1.
|
|
14077
|
+
*/var HQCHART_VERSION="1.1.14288";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();//把给外界调用的方法暴露出来
|
|
14045
14078
|
exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
|
|
14046
14079
|
// BaseIndex:BaseIndex,
|
|
14047
14080
|
// ChartLine:ChartLine,
|
package/package.json
CHANGED
|
@@ -11487,6 +11487,45 @@ function JSDraw(errorHandler,symbolData)
|
|
|
11487
11487
|
|
|
11488
11488
|
return result;
|
|
11489
11489
|
}
|
|
11490
|
+
|
|
11491
|
+
//表格
|
|
11492
|
+
this.TABLE_CELL=function(text, color, textAlign)
|
|
11493
|
+
{
|
|
11494
|
+
var cellItem={ Text:text };
|
|
11495
|
+
if (color) cellItem.Color=color;
|
|
11496
|
+
if (IFrameSplitOperator.IsString(textAlign))
|
|
11497
|
+
{
|
|
11498
|
+
var strValue=textAlign.toLowerCase(); //转小写
|
|
11499
|
+
cellItem.TextAlign=strValue;
|
|
11500
|
+
}
|
|
11501
|
+
|
|
11502
|
+
return cellItem;
|
|
11503
|
+
}
|
|
11504
|
+
|
|
11505
|
+
this.TABLE_ROW=function(aryData)
|
|
11506
|
+
{
|
|
11507
|
+
var aryCell=[];
|
|
11508
|
+
for(var i=0;i<aryData.length;++i)
|
|
11509
|
+
{
|
|
11510
|
+
var item=aryData[i];
|
|
11511
|
+
aryCell.push(item)
|
|
11512
|
+
}
|
|
11513
|
+
|
|
11514
|
+
return aryCell;
|
|
11515
|
+
}
|
|
11516
|
+
|
|
11517
|
+
this.DRAWTABLE=function(aryData)
|
|
11518
|
+
{
|
|
11519
|
+
var tableData=[]
|
|
11520
|
+
for(var i=0;i<aryData.length;++i)
|
|
11521
|
+
{
|
|
11522
|
+
var item=aryData[i];
|
|
11523
|
+
tableData.push({ AryCell:item });
|
|
11524
|
+
}
|
|
11525
|
+
|
|
11526
|
+
|
|
11527
|
+
return result={ DrawData:{ TableData:tableData }, DrawType:'DRAW_SIMPLE_TABLE' };
|
|
11528
|
+
}
|
|
11490
11529
|
}
|
|
11491
11530
|
|
|
11492
11531
|
|
|
@@ -11541,7 +11580,7 @@ JSDraw.prototype.IsDrawFunction=function(name)
|
|
|
11541
11580
|
'DRAWOVERLAYLINE',"FILLRGN", "FILLRGN2","FILLTOPRGN", "FILLBOTTOMRGN", "FILLVERTICALRGN","FLOATRGN","DRAWSL", "DRAWGBK2","DRAWGBK_DIV",
|
|
11542
11581
|
"VERTLINE","HORLINE","TIPICON",
|
|
11543
11582
|
"BUY","SELL","SELLSHORT","BUYSHORT",
|
|
11544
|
-
"DRAWLASTBARICON","DRAWLASTBARNUMBER", "DRAWLASTBARTEXT",
|
|
11583
|
+
"DRAWLASTBARICON","DRAWLASTBARNUMBER", "DRAWLASTBARTEXT","DRAWTABLE",
|
|
11545
11584
|
]);
|
|
11546
11585
|
if (setFunctionName.has(name)) return true;
|
|
11547
11586
|
|
|
@@ -18411,6 +18450,18 @@ function JSExecute(ast,option)
|
|
|
18411
18450
|
node.Out=node.Draw.DrawData.Data;
|
|
18412
18451
|
break;
|
|
18413
18452
|
|
|
18453
|
+
//表格函数
|
|
18454
|
+
case "TABLE_CELL":
|
|
18455
|
+
node.Out=this.Draw.TABLE_CELL(args[0],args[1],args[2]);
|
|
18456
|
+
break;
|
|
18457
|
+
case "TABLE_ROW":
|
|
18458
|
+
node.Out=this.Draw.TABLE_ROW(args);
|
|
18459
|
+
break;
|
|
18460
|
+
case "DRAWTABLE":
|
|
18461
|
+
node.Draw=this.Draw.DRAWTABLE(args);
|
|
18462
|
+
node.Out=[];
|
|
18463
|
+
break;
|
|
18464
|
+
|
|
18414
18465
|
default:
|
|
18415
18466
|
node.Out=this.Algorithm.CallFunction(funcName, args, node, this.SymbolData);
|
|
18416
18467
|
break;
|