hqchart 1.1.12391 → 1.1.12406
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 +9 -8
- package/package.json +1 -1
- package/src/jscommon/umychart.complier.js +31 -1
- package/src/jscommon/umychart.js +8 -3
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +40 -5
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +40 -5
- package/src/jscommon/umychart.wechat/umychart.chartpaint.wechat.js +4 -3
- package/src/jscommon/umychart.wechat/umychart.data.wechat.js +3 -0
- package/src/jscommon/umychart.wechat/umychart.index.data.wechat.js +16 -3
- package/src/jscommon/umychart.wechat/umychart.index.wechat.js +104 -40
- package/src/jscommon/umychart.wechat/umychart.version.wechat.js +1 -1
- package/src/jscommon/umychart.wechat/umychart.wechat.3.0.js +30 -0
package/lib/umychart.vue.js
CHANGED
|
@@ -1309,12 +1309,12 @@ Complier:{Log:console.log,Warn:console.warn//编译器日志
|
|
|
1309
1309
|
}};}function JSChart(divElement,bOffscreen,bCacheCanvas){this.DivElement=divElement;this.DivToolElement=null;//工具条
|
|
1310
1310
|
this.JSChartContainer;//画图控件
|
|
1311
1311
|
//h5 canvas
|
|
1312
|
-
this.CanvasElement=document.createElement("canvas");this.CanvasElement.className='jschart-drawing';this.CanvasElement.id=Guid();this.CanvasElement.setAttribute("tabindex",0);if(this.CanvasElement.style)this.CanvasElement.style.outline='none';if(divElement.hasChildNodes()){JSConsole.Chart.Log("[JSChart::JSChart] divElement hasChildNodes",divElement.childNodes);}divElement.appendChild(this.CanvasElement);//离屏
|
|
1312
|
+
this.CanvasElement=document.createElement("canvas");this.CanvasElement.className='jschart-drawing';this.CanvasElement.id=Guid();this.CanvasElement.setAttribute("tabindex",0);if(this.CanvasElement.style){this.CanvasElement.style.outline='none';this.CanvasElement.style.position="absolute";}if(divElement.hasChildNodes()){JSConsole.Chart.Log("[JSChart::JSChart] divElement hasChildNodes",divElement.childNodes);}divElement.appendChild(this.CanvasElement);//离屏
|
|
1313
1313
|
this.OffscreenCanvasElement;if(bOffscreen==true)this.OffscreenCanvasElement=document.createElement("canvas");//图形缓存
|
|
1314
1314
|
this.CacheCanvasElement=null;if(bCacheCanvas)this.CacheCanvasElement=document.createElement("canvas");//改参数div
|
|
1315
1315
|
this.ModifyIndexDialog=new ModifyIndexDialog(divElement);this.ChangeIndexDialog=new ChangeIndexDialog(divElement);this.MinuteDialog=new MinuteDialog(divElement);//额外的画布
|
|
1316
1316
|
this.MapExtraCanvasElement=new _map2.default();//key=画布名字, value={ Element:, Canvas:}
|
|
1317
|
-
this.CreateExtraCanvasElement=function(name,option){if(this.MapExtraCanvasElement.has(name))return this.MapExtraCanvasElement.get(name);var element=document.createElement("canvas");element.className='jschart-drawing-extra';element.id=Guid();if(name==JSChart.CorssCursorCanvasKey)element.setAttribute("tabindex",5);else element.setAttribute("tabindex",1);if(element.style){element.style.outline='none';element.style.position="absolute";element.style.left='0px';element.style.top='0px';element.style["pointer-events"]="none";}if(option){if(IFrameSplitOperator.IsNumber(option.TabIndex))element.setAttribute("tabindex",option.TabIndex);}divElement.appendChild(element);var item={Element:element,Canvas:null};this.MapExtraCanvasElement.set(name,item);};this.GetExtraCanvas=function(name){if(!this.MapExtraCanvasElement.has(name))return null;var item=this.MapExtraCanvasElement.get(name);if(!item.Element)return null;if(!item.Canvas)item.Canvas=item.Element.getContext("2d");return item;};this.OnSize=function(option)//{ Type:1 新版本OnSize Redraw:是否重绘, XYSplit:是否重新计算分割线 }
|
|
1317
|
+
this.CreateExtraCanvasElement=function(name,option){if(this.MapExtraCanvasElement.has(name))return this.MapExtraCanvasElement.get(name);var element=document.createElement("canvas");element.className='jschart-drawing-extra';element.id=Guid();if(name==JSChart.CorssCursorCanvasKey)element.setAttribute("tabindex",5);else element.setAttribute("tabindex",1);if(element.style){element.style.outline='none';element.style.position="absolute";element.style.left='0px';element.style.top='0px';element.style["pointer-events"]="none";}if(option){if(IFrameSplitOperator.IsNumber(option.TabIndex))element.setAttribute("tabindex",option.TabIndex);if(IFrameSplitOperator.IsNumber(option.ZIndex))element.style["z-index"]=option.ZIndex;}divElement.appendChild(element);var item={Element:element,Canvas:null};this.MapExtraCanvasElement.set(name,item);};this.GetExtraCanvas=function(name){if(!this.MapExtraCanvasElement.has(name))return null;var item=this.MapExtraCanvasElement.get(name);if(!item.Element)return null;if(!item.Canvas)item.Canvas=item.Element.getContext("2d");return item;};this.OnSize=function(option)//{ Type:1 新版本OnSize Redraw:是否重绘, XYSplit:是否重新计算分割线 }
|
|
1318
1318
|
{//画布大小通过div获取
|
|
1319
1319
|
var height=parseInt(this.DivElement.style.height.replace("px",""));if(this.ToolElement){//TODO调整工具条大小
|
|
1320
1320
|
height-=this.ToolElement.style.height.replace("px","");//减去工具条的高度
|
|
@@ -1847,7 +1847,7 @@ for(var i=0;i<frame.CustomHorizontalInfo.length;++i){var info=frame.CustomHorizo
|
|
|
1847
1847
|
var newCustomHorizontalInfo=frame.CustomHorizontalInfo.filter(function(value,index,ary){return value.Type!=4;});frame.CustomHorizontalInfo=newCustomHorizontalInfo;}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=data.Data[item.DrawKRange.Start];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;//叠加股票
|
|
1848
1848
|
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;};//画动态信息
|
|
1849
1849
|
this.DrawDynamicInfo=function(option){this.LastMouseStatus.MouseOnToolbar=null;//鼠标在工具栏按钮上
|
|
1850
|
-
|
|
1850
|
+
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;//每次都擦除背景
|
|
1851
1851
|
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();var moveonPoint=null;if(this.LastMouseStatus&&this.LastMouseStatus.MoveOnPoint)moveonPoint=this.LastMouseStatus.MoveOnPoint;for(var i=0;i<this.ExtendChartPaint.length;++i)//动态扩展图形
|
|
1852
1852
|
{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();if(this.ChartCorssCursor){this.ChartCorssCursor.LastPoint=this.LastPoint;this.ChartCorssCursor.CursorIndex=this.CursorIndex;var bRestoreCanvas=false;if(this.CorssCursorCanvas)//独立的十字光标层
|
|
1853
1853
|
{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)//开始绘图
|
|
@@ -10959,7 +10959,7 @@ this.ConstVarTable=new _map2.default([//个股数据
|
|
|
10959
10959
|
["ZSTJJ",null],//分时图均价线,对于分时图周期指标有效.
|
|
10960
10960
|
["ISEQUAL",null],["ISUP",null],["ISDOWN"],//ISUP=收阳 ISEQUAL=平盘 ISDOWN=收阴
|
|
10961
10961
|
//日期类
|
|
10962
|
-
['DATE',null],['YEAR',null],['MONTH',null],['PERIOD',null],['WEEK',null],["TIME",null],["DAY",null],["DATETIME",null],["TIME2",null],["WEEKOFYEAR",null],["DAYSTOTODAY",null],//大盘数据
|
|
10962
|
+
['DATE',null],['YEAR',null],['MONTH',null],['PERIOD',null],['WEEK',null],['WEEKDAY',null],["TIME",null],["DAY",null],["DATETIME",null],["TIME2",null],["WEEKOFYEAR",null],["DAYSTOTODAY",null],//大盘数据
|
|
10963
10963
|
['INDEXA',null],['INDEXC',null],['INDEXH',null],['INDEXL',null],['INDEXO',null],['INDEXV',null],['INDEXADV',null],['INDEXDEC',null],["ADVANCE",null],['DECLINE',null],['FROMOPEN',null],//已开盘有多长分钟
|
|
10964
10964
|
['TOTALFZNUM',null],//该品种的每天的总交易分钟数.
|
|
10965
10965
|
['CURRBARSCOUNT',null],//到最后交易日的周期数
|
|
@@ -11018,7 +11018,7 @@ return this.SymbolData.GetVariantData(jobItem);case JS_EXECUTE_JOB_ID.JOB_CUSTOM
|
|
|
11018
11018
|
case"ISUP"://收阳
|
|
11019
11019
|
case"ISDOWN"://收阴
|
|
11020
11020
|
return this.SymbolData.GetSymbolCacheData(name);case'VOLR':return this.SymbolData.GetVolRateCacheData(node);//大盘数据
|
|
11021
|
-
case'INDEXA':case'INDEXC':case'INDEXH':case'INDEXH':case'INDEXO':case'INDEXV':case'INDEXL':case'INDEXADV':case'INDEXDEC':return this.SymbolData.GetIndexCacheData(name);case'CURRBARSCOUNT':return this.SymbolData.GetCurrBarsCount();case"BARPOS":return this.SymbolData.GetBarPos();case"TOTALBARSCOUNT":return this.SymbolData.GetTotalBarsCount();case"TOTALFZNUM":return this.SymbolData.GetTotalTradeMinuteCount();case'ISLASTBAR':return this.SymbolData.GetIsLastBar();case"BARSTATUS":return this.SymbolData.GetBarStatus();case"TOTALCAPITAL":case'CAPITAL':case'EXCHANGE':case"HYBLOCK":case"DYBLOCK":case"GNBLOCK":case"FGBLOCK":case"ZSBLOCK":case"ZHBLOCK":case"ZDBLOCK":case"HYZSCODE":case"GNBLOCKNUM":case"FGBLOCKNUM":case"ZSBLOCKNUM":case"ZHBLOCKNUM":case"ZDBLOCKNUM":case"HYSYL":case"HYSJL":return this.SymbolData.GetStockCacheData({VariantName:name,Node:node});case'SETCODE':return this.SymbolData.SETCODE();case'CODE':return this.SymbolData.GetSymbol();case'STKNAME':return this.SymbolData.GetName();case"TIME":return this.SymbolData.TIME();case"TIME2":return this.SymbolData.TIME2();case'DATE':return this.SymbolData.DATE();case"DATETIME":return this.SymbolData.DateTime();case'YEAR':return this.SymbolData.YEAR();case'MONTH':return this.SymbolData.MONTH();case'WEEK':return this.SymbolData.WEEK();case"DAY":return this.SymbolData.DAY();case'PERIOD':return this.SymbolData.PERIOD();case'FROMOPEN':return this.SymbolData.GetLatestIndexCacheData('FROMOPEN');case'DRAWNULL':case"NULL":return this.SymbolData.GetDrawNull();case'ADVANCE':case'DECLINE':return this.SymbolData.GetIndexIncreaseCacheData(name,this.SymbolData.Symbol,node);case"TQFLAG":return this.SymbolData.Right;case"MACHINEDATE":{var now=new Date();return now.getFullYear()*10000+now.getMonth()*1*100+now.getDate()-19000000;}case"MACHINETIME":{var now=new Date();return now.getHours()*10000+now.getMinutes()*1*100+now.getSeconds();}case"MACHINEWEEK":{var now=new Date();return now.getDay();}case"WEEKOFYEAR":return this.SymbolData.WEEKOFYEAR();case"DAYSTOTODAY":return this.SymbolData.DAYSTOTODAY();}};this.ReadCustomVariant=function(name,node){return this.SymbolData.GetStockCacheData({VariantName:name,Node:node});};//读取变量
|
|
11021
|
+
case'INDEXA':case'INDEXC':case'INDEXH':case'INDEXH':case'INDEXO':case'INDEXV':case'INDEXL':case'INDEXADV':case'INDEXDEC':return this.SymbolData.GetIndexCacheData(name);case'CURRBARSCOUNT':return this.SymbolData.GetCurrBarsCount();case"BARPOS":return this.SymbolData.GetBarPos();case"TOTALBARSCOUNT":return this.SymbolData.GetTotalBarsCount();case"TOTALFZNUM":return this.SymbolData.GetTotalTradeMinuteCount();case'ISLASTBAR':return this.SymbolData.GetIsLastBar();case"BARSTATUS":return this.SymbolData.GetBarStatus();case"TOTALCAPITAL":case'CAPITAL':case'EXCHANGE':case"HYBLOCK":case"DYBLOCK":case"GNBLOCK":case"FGBLOCK":case"ZSBLOCK":case"ZHBLOCK":case"ZDBLOCK":case"HYZSCODE":case"GNBLOCKNUM":case"FGBLOCKNUM":case"ZSBLOCKNUM":case"ZHBLOCKNUM":case"ZDBLOCKNUM":case"HYSYL":case"HYSJL":return this.SymbolData.GetStockCacheData({VariantName:name,Node:node});case'SETCODE':return this.SymbolData.SETCODE();case'CODE':return this.SymbolData.GetSymbol();case'STKNAME':return this.SymbolData.GetName();case"TIME":return this.SymbolData.TIME();case"TIME2":return this.SymbolData.TIME2();case'DATE':return this.SymbolData.DATE();case"DATETIME":return this.SymbolData.DateTime();case'YEAR':return this.SymbolData.YEAR();case'MONTH':return this.SymbolData.MONTH();case'WEEK':case"WEEKDAY":return this.SymbolData.WEEK();case"DAY":return this.SymbolData.DAY();case'PERIOD':return this.SymbolData.PERIOD();case'FROMOPEN':return this.SymbolData.GetLatestIndexCacheData('FROMOPEN');case'DRAWNULL':case"NULL":return this.SymbolData.GetDrawNull();case'ADVANCE':case'DECLINE':return this.SymbolData.GetIndexIncreaseCacheData(name,this.SymbolData.Symbol,node);case"TQFLAG":return this.SymbolData.Right;case"MACHINEDATE":{var now=new Date();return now.getFullYear()*10000+now.getMonth()*1*100+now.getDate()-19000000;}case"MACHINETIME":{var now=new Date();return now.getHours()*10000+now.getMinutes()*1*100+now.getSeconds();}case"MACHINEWEEK":{var now=new Date();return now.getDay();}case"WEEKOFYEAR":return this.SymbolData.WEEKOFYEAR();case"DAYSTOTODAY":return this.SymbolData.DAYSTOTODAY();}};this.ReadCustomVariant=function(name,node){return this.SymbolData.GetStockCacheData({VariantName:name,Node:node});};//读取变量
|
|
11022
11022
|
this.ReadVariable=function(name,node){if(this.ConstVarTable.has(name)){var data=this.ConstVarTable.get(name);if(data==null)//动态加载,用到再加载
|
|
11023
11023
|
{data=this.ReadSymbolData(name,node);this.ConstVarTable.set(name,data);}return data;}if(g_JSComplierResource.IsCustomVariant(name))return this.ReadCustomVariant(name,node);//读取自定义变量
|
|
11024
11024
|
if(this.VarTable.has(name))return this.VarTable.get(name);if(name.indexOf('#')>0){var aryPeriod=name.split('#');return this.SymbolData.GetSymbolPeriodCacheData(aryPeriod[0],aryPeriod[1]);}if(name.indexOf("COLOR")==0){var colorValue=JSComplier.ColorVarToRGB(name);if(colorValue)return colorValue;}this.ThrowUnexpectedNode(node,'变量'+name+'不存在',name);return null;};this.ReadMemberVariable=function(node){var obj=node.Object;var member=node.Property;var maiObj=void 0;if(obj.Type==Syntax.BinaryExpression||obj.Type==Syntax.LogicalExpression)maiObj=this.VisitBinaryExpression(obj);else if(obj.Type==Syntax.CallExpression)maiObj=this.VisitCallExpression(obj);else maiObj=this.GetNodeValue(obj);if(!maiObj)return null;var value=maiObj[member.Name];if(value)return value;return null;};//单数据转成数组 个数和历史数据一致
|
|
@@ -11332,7 +11332,7 @@ this.ShowConditionError=function(param,msg){var hqChart=param.HQChart;var window
|
|
|
11332
11332
|
if(IFrameSplitOperator.IsNumber(this.YSplitType))this.OverlayIndex.Frame.Frame.YSplitOperator.SplitType=this.YSplitType;//指标名字
|
|
11333
11333
|
var titleInfo={Data:[],Title:this.Name,Frame:this.OverlayIndex.Frame.Frame,Script:this};var indexParam='';for(var i in this.Arguments){var _item33=this.Arguments[i];if(indexParam.length>0)indexParam+=',';indexParam+=_item33.Value.toString();}if(indexParam.length>0)titleInfo.Title=this.Name+'('+indexParam+')';var titleIndex=windowIndex+1;var titlePaint=hqChart.TitlePaint[titleIndex];titlePaint.OverlayIndex.set(this.OverlayIndex.Identify,titleInfo);this.OverlayIndex.Frame.Frame.Title=titleInfo.Title;//给子框架设置标题
|
|
11334
11334
|
if(this.OutName&&this.OutName.length>0&&this.Arguments&&this.Arguments.length>0){titlePaint.SetDynamicTitle(this.OutName,this.Arguments,this.OverlayIndex.Identify);}for(var i=0;i<this.OutVar.length;++i){var _item34=this.OutVar[i];if(_item34.IsExData===true)continue;//扩展数据不显示图形
|
|
11335
|
-
if(_item34.Type==0){this.CreateLine(hqChart,windowIndex,_item34,i,_item34.Type);}else if(_item34.Type==1){switch(_item34.Draw.DrawType){case'STICKLINE':this.CreateBar(hqChart,windowIndex,_item34,i);break;case'DRAWTEXT':this.CreateDrawTextV2(hqChart,windowIndex,_item34,i);break;case'SUPERDRAWTEXT':this.CreateText(hqChart,windowIndex,_item34,i);break;case'DRAWLINE':this.CreateStraightLine(hqChart,windowIndex,_item34,i);break;case'DRAWBAND':this.CreateBand(hqChart,windowIndex,_item34,i);break;case'DRAWKLINE':this.CreateKLine(hqChart,windowIndex,_item34,i);break;case'DRAWKLINE_IF':this.CreateKLine(hqChart,windowIndex,_item34,i);break;case'POLYLINE':this.CreatePolyLine(hqChart,windowIndex,_item34,i);break;case'DRAWNUMBER':case"DRAWNUMBER_FIX":case'DRAWTEXT_FIX':this.CreateNumberText(hqChart,windowIndex,_item34,i);break;case'DRAWICON':this.CreateIcon(hqChart,windowIndex,_item34,i);break;case'DRAWCHANNEL':this.CreateChannel(hqChart,windowIndex,_item34,i);break;case'DRAWTEXT_LINE':this.CreateTextLine(hqChart,windowIndex,_item34,i);break;case"VERTLINE":this.CreateChartVericaltLine(hqChart,windowIndex,_item34,i);break;case"HORLINE":this.CreateChartHorizontalLine(hqChart,windowIndex,_item34,i);break;case'MULTI_LINE':this.CreateMultiLine(hqChart,windowIndex,_item34,i);break;case"MULTI_POINT":this.CreateMultiPoint(hqChart,windowIndex,_item34,i);break;case'MULTI_BAR':this.CreateMultiBar(hqChart,windowIndex,_item34,i);break;case'MULTI_TEXT':this.CreateMultiText(hqChart,windowIndex,_item34,i);break;case'MULTI_SVGICON':this.CreateMultiSVGIcon(hqChart,windowIndex,_item34,i);break;case"DRAWSVG":this.CreateChartDrawSVG(hqChart,windowIndex,_item34,i);break;case"MULTI_HTMLDOM":this.CreateMulitHtmlDom(hqChart,windowIndex,_item34,i);break;case"KLINE_BG":this.CreateBackgroud(hqChart,windowIndex,_item34,i);break;case'PARTLINE':this.CreatePartLine(hqChart,windowIndex,_item34,i);break;case SCRIPT_CHART_NAME.OVERLAY_BARS:this.CreateStackedBar(hqChart,windowIndex,_item34,i);break;default:{var find=g_ScriptIndexChartFactory.Get(_item34.Draw.DrawType);//外部挂接
|
|
11335
|
+
if(_item34.Type==0){this.CreateLine(hqChart,windowIndex,_item34,i,_item34.Type);}else if(_item34.Type==1){switch(_item34.Draw.DrawType){case'STICKLINE':this.CreateBar(hqChart,windowIndex,_item34,i);break;case'DRAWTEXT':this.CreateDrawTextV2(hqChart,windowIndex,_item34,i);break;case'SUPERDRAWTEXT':this.CreateText(hqChart,windowIndex,_item34,i);break;case'DRAWLINE':this.CreateStraightLine(hqChart,windowIndex,_item34,i);break;case'DRAWBAND':this.CreateBand(hqChart,windowIndex,_item34,i);break;case'DRAWKLINE':this.CreateKLine(hqChart,windowIndex,_item34,i);break;case'DRAWKLINE_IF':this.CreateKLine(hqChart,windowIndex,_item34,i);break;case'POLYLINE':this.CreatePolyLine(hqChart,windowIndex,_item34,i);break;case'DRAWNUMBER':case"DRAWNUMBER_FIX":case'DRAWTEXT_FIX':this.CreateNumberText(hqChart,windowIndex,_item34,i);break;case'DRAWICON':this.CreateIcon(hqChart,windowIndex,_item34,i);break;case'DRAWCHANNEL':this.CreateChannel(hqChart,windowIndex,_item34,i);break;case'DRAWTEXT_LINE':this.CreateTextLine(hqChart,windowIndex,_item34,i);break;case"VERTLINE":this.CreateChartVericaltLine(hqChart,windowIndex,_item34,i);break;case"HORLINE":this.CreateChartHorizontalLine(hqChart,windowIndex,_item34,i);break;case'MULTI_LINE':this.CreateMultiLine(hqChart,windowIndex,_item34,i);break;case"MULTI_POINT":this.CreateMultiPoint(hqChart,windowIndex,_item34,i);break;case'MULTI_BAR':this.CreateMultiBar(hqChart,windowIndex,_item34,i);break;case'MULTI_TEXT':this.CreateMultiText(hqChart,windowIndex,_item34,i);break;case'MULTI_SVGICON':this.CreateMultiSVGIcon(hqChart,windowIndex,_item34,i);break;case"DRAWSVG":this.CreateChartDrawSVG(hqChart,windowIndex,_item34,i);break;case"MULTI_HTMLDOM":this.CreateMulitHtmlDom(hqChart,windowIndex,_item34,i);break;case"KLINE_BG":this.CreateBackgroud(hqChart,windowIndex,_item34,i);break;case'PARTLINE':this.CreatePartLine(hqChart,windowIndex,_item34,i);break;case"DRAWTEXTABS":case"DRAWTEXTREL":this.CreateDrawText(hqChart,windowIndex,_item34,i);break;case SCRIPT_CHART_NAME.OVERLAY_BARS:this.CreateStackedBar(hqChart,windowIndex,_item34,i);break;default:{var find=g_ScriptIndexChartFactory.Get(_item34.Draw.DrawType);//外部挂接
|
|
11336
11336
|
if(find&&find.CreateChartCallback)find.CreateChartCallback(hqChart,windowIndex,_item34,i,this);}break;}}else if(_item34.Type==2){this.CreateMACD(hqChart,windowIndex,_item34,i);}else if(_item34.Type==3){this.CreatePointDot(hqChart,windowIndex,_item34,i,hisData);}else if(_item34.Type==4){this.CreateLineStick(hqChart,windowIndex,_item34,i);}else if(_item34.Type==5){this.CreateStick(hqChart,windowIndex,_item34,i);}else if(_item34.Type==6){this.CreateVolStick(hqChart,windowIndex,_item34,i,hisData);}else if(_item34.Type==7){this.CreateLine(hqChart,windowIndex,_item34,i,_item34.Type);}else if(_item34.Type==8){this.CreateLine(hqChart,windowIndex,_item34,i,_item34.Type);}var titleData=titleInfo.Data[i];if(titleData){if(this.FloatPrecision>=0)titleData.FloatPrecision=this.FloatPrecision;}}/*
|
|
11337
11337
|
hqChart.TitlePaint[titleIndex].Title=this.Name;
|
|
11338
11338
|
|
|
@@ -11356,7 +11356,8 @@ if(!event||!event.Callback)return;var overlayIndex=this.OverlayIndex;var frame=o
|
|
|
11356
11356
|
/////////////////////////////////////////////////////////////////////////////////////
|
|
11357
11357
|
this.CreateLine=function(hqChart,windowIndex,varItem,id,lineType){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;if(lineType==7)var chart=new ChartStepLine();else var chart=new ChartLine();chart.Canvas=hqChart.Canvas;chart.DrawType=1;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);if(lineType==8){chart.DrawType=2;chart.BreakPoint=varItem.BreakPoint;}if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)chart.LineWidth=width;}if(varItem.IsShow==false)chart.IsShow=false;chart.Data.Data=varItem.Data;this.ReloadChartResource(hqChart,windowIndex,chart);var titleIndex=windowIndex+1;var titlePaint=hqChart.TitlePaint[titleIndex];var titleData=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);this.SetTitleData(titleData,chart);titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};//创建柱子
|
|
11358
11358
|
this.CreateBar=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartStickLine();chart.Canvas=hqChart.Canvas;if(varItem.Draw.Width>0)chart.Width=varItem.Draw.Width;else chart.Width=1;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);var titleIndex=windowIndex+1;chart.Data.Data=varItem.Draw.DrawData;//hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(bar.Data,varItem.Name,bar.Color);
|
|
11359
|
-
this.SetChartIndexName(chart);frame.ChartPaint.push(chart);}
|
|
11359
|
+
this.SetChartIndexName(chart);frame.ChartPaint.push(chart);};this.CreateDrawText=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chart=new ChartSingleText();chart.Canvas=hqChart.Canvas;chart.Name=varItem.Name;chart.ChartBorder=frame.Frame.ChartBorder;chart.ChartFrame=frame.Frame;chart.Identify=overlayIndex.Identify;chart.ReloadResource();if(varItem.Color)chart.Color=this.GetColor(varItem.Color);else chart.Color=this.GetDefaultColor(id);if(varItem.IsDrawAbove)chart.Direction=1;else chart.Direction=0;chart.DrawData=varItem.Draw.DrawData;if(varItem.DrawFontSize>0)chart.TextFont=varItem.DrawFontSize*GetDevicePixelRatio()+'px \u5FAE\u8F6F\u96C5\u9ED1';//临时用下吧
|
|
11360
|
+
frame.ChartPaint.push(chart);};//DRAWTEXT
|
|
11360
11361
|
this.CreateDrawTextV2=function(hqChart,windowIndex,varItem,id){var overlayIndex=this.OverlayIndex;var frame=overlayIndex.Frame;var chartText=new ChartDrawText();chartText.Canvas=hqChart.Canvas;chartText.Name=varItem.Name;chartText.ChartBorder=frame.Frame.ChartBorder;chartText.ChartFrame=frame.Frame;chartText.Identify=overlayIndex.Identify;chartText.ReloadResource();if(varItem.Color)chartText.Color=this.GetColor(varItem.Color);else chartText.Color=this.GetDefaultColor(id);if(varItem.IsDrawCenter===true)chartText.TextAlign='center';if(varItem.IsDrawAbove===true)chartText.TextBaseline='bottom';if(varItem.IsDrawBelow===true)chartText.TextBaseline='top';if(varItem.Draw.DrawData)chartText.Data.Data=varItem.Draw.DrawData;chartText.Text=varItem.Draw.Text;if(varItem.Draw.Direction>0)chartText.Direction=varItem.Draw.Direction;if(varItem.Draw.YOffset>0)chartText.YOffset=varItem.Draw.YOffset;if(varItem.Draw.TextAlign)chartText.TextAlign=varItem.Draw.TextAlign;//指定输出位置
|
|
11361
11362
|
if(varItem.Draw.FixedPosition==="TOP")chartText.FixedPosition=1;else if(varItem.Draw.FixedPosition==="BOTTOM")chartText.FixedPosition=2;if(varItem.DrawVAlign>=0){if(varItem.DrawVAlign==0)chartText.TextBaseline='top';else if(varItem.DrawVAlign==1)chartText.TextBaseline='middle';else if(varItem.DrawVAlign==2)chartText.TextBaseline='bottom';}if(varItem.DrawAlign>=0){if(varItem.DrawAlign==0)chartText.TextAlign="left";else if(varItem.DrawAlign==1)chartText.TextAlign="center";else if(varItem.DrawAlign==2)chartText.TextAlign='right';}if(varItem.DrawFontSize>0)chartText.FixedFontSize=varItem.DrawFontSize;if(varItem.Background)chartText.TextBG=varItem.Background;if(varItem.VerticalLine)chartText.VerticalLine=varItem.VerticalLine;if(IFrameSplitOperator.IsNumber(varItem.XOffset))chartText.ShowOffset.X=varItem.XOffset;if(IFrameSplitOperator.IsNumber(varItem.YOffset))chartText.ShowOffset.Y=varItem.YOffset;//let titleIndex=windowIndex+1;
|
|
11362
11363
|
frame.ChartPaint.push(chartText);};//创建文本
|
|
@@ -12566,7 +12567,7 @@ this.AreaColor=g_JSChartResource.ScrollBar.BGChart.AreaColor;//面积图颜色
|
|
|
12566
12567
|
};this.Draw=function(){if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return;this.Canvas.save();if(this.LineWidth>0)this.Canvas.lineWidth=this.LineWidth*GetDevicePixelRatio();var bottom=this.ChartBorder.GetBottom();this.Canvas.strokeStyle=this.Color;var bFirstPoint=true;var drawCount=0,x,y;var firstPoint={};for(var i=0;i<this.Data.Data.length;++i){var item=this.Data.Data[i];var value=item.Close;if(!IFrameSplitOperator.IsNumber(value))continue;x=this.ChartFrame.GetXFromIndex(i);y=this.ChartFrame.GetYFromData(value);if(bFirstPoint){this.Canvas.beginPath();this.Canvas.moveTo(x,y);bFirstPoint=false;firstPoint={X:x,Y:y};}else{this.Canvas.lineTo(x,y);}++drawCount;}if(drawCount>0){this.Canvas.stroke();this.Canvas.lineTo(x,bottom);this.Canvas.lineTo(firstPoint.X,bottom);this.Canvas.closePath();this.Canvas.fillStyle=this.AreaColor;this.Canvas.fill();}this.Canvas.restore();};this.GetMaxMin=function(){var range={Max:null,Min:null};if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return range;for(var i=0;i<this.Data.Data.length;++i){var item=this.Data.Data[i];var value=item.Close;if(!IFrameSplitOperator.IsNumber(value))continue;if(range.Max==null||range.Max<value)range.Max=value;if(range.Min==null||range.Min>value)range.Min=value;}return range;};}/********************************************************************************
|
|
12567
12568
|
* 版本信息输出
|
|
12568
12569
|
*
|
|
12569
|
-
*/var HQCHART_VERSION="1.1.
|
|
12570
|
+
*/var HQCHART_VERSION="1.1.12405";function PrintHQChartVersion(){var log='*************************************************************************************************************\n*\n* HQChart Ver: '+HQCHART_VERSION+' \n* \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n*************************************************************************************************************\n';console.log(log);}PrintHQChartVersion();//把给外界调用的方法暴露出来
|
|
12570
12571
|
exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
|
|
12571
12572
|
// BaseIndex:BaseIndex,
|
|
12572
12573
|
// ChartLine:ChartLine,
|
package/package.json
CHANGED
|
@@ -16042,7 +16042,7 @@ function JSExecute(ast,option)
|
|
|
16042
16042
|
["ISEQUAL",null], ["ISUP",null],["ISDOWN"], //ISUP=收阳 ISEQUAL=平盘 ISDOWN=收阴
|
|
16043
16043
|
|
|
16044
16044
|
//日期类
|
|
16045
|
-
['DATE',null],['YEAR',null],['MONTH',null],['PERIOD', null],['WEEK',null],["TIME",null],["DAY",null],["DATETIME",null],["TIME2",null],
|
|
16045
|
+
['DATE',null],['YEAR',null],['MONTH',null],['PERIOD', null],['WEEK',null],['WEEKDAY',null],["TIME",null],["DAY",null],["DATETIME",null],["TIME2",null],
|
|
16046
16046
|
["WEEKOFYEAR", null],["DAYSTOTODAY", null],
|
|
16047
16047
|
|
|
16048
16048
|
//大盘数据
|
|
@@ -16324,6 +16324,7 @@ function JSExecute(ast,option)
|
|
|
16324
16324
|
case 'MONTH':
|
|
16325
16325
|
return this.SymbolData.MONTH();
|
|
16326
16326
|
case 'WEEK':
|
|
16327
|
+
case "WEEKDAY":
|
|
16327
16328
|
return this.SymbolData.WEEK();
|
|
16328
16329
|
case "DAY":
|
|
16329
16330
|
return this.SymbolData.DAY();
|
|
@@ -21057,6 +21058,11 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
21057
21058
|
this.CreatePartLine(hqChart,windowIndex,item,i);
|
|
21058
21059
|
break;
|
|
21059
21060
|
|
|
21061
|
+
case "DRAWTEXTABS":
|
|
21062
|
+
case "DRAWTEXTREL":
|
|
21063
|
+
this.CreateDrawText(hqChart,windowIndex,item,i);
|
|
21064
|
+
break;
|
|
21065
|
+
|
|
21060
21066
|
case SCRIPT_CHART_NAME.OVERLAY_BARS:
|
|
21061
21067
|
this.CreateStackedBar(hqChart,windowIndex,item,i);
|
|
21062
21068
|
break;
|
|
@@ -21234,6 +21240,30 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
21234
21240
|
frame.ChartPaint.push(chart);
|
|
21235
21241
|
}
|
|
21236
21242
|
|
|
21243
|
+
this.CreateDrawText=function(hqChart,windowIndex,varItem,id)
|
|
21244
|
+
{
|
|
21245
|
+
var overlayIndex=this.OverlayIndex;
|
|
21246
|
+
var frame=overlayIndex.Frame;
|
|
21247
|
+
var chart=new ChartSingleText();
|
|
21248
|
+
chart.Canvas=hqChart.Canvas;
|
|
21249
|
+
chart.Name=varItem.Name;
|
|
21250
|
+
chart.ChartBorder=frame.Frame.ChartBorder;
|
|
21251
|
+
chart.ChartFrame=frame.Frame;
|
|
21252
|
+
chart.Identify=overlayIndex.Identify;
|
|
21253
|
+
chart.ReloadResource();
|
|
21254
|
+
|
|
21255
|
+
if (varItem.Color) chart.Color=this.GetColor(varItem.Color);
|
|
21256
|
+
else chart.Color=this.GetDefaultColor(id);
|
|
21257
|
+
|
|
21258
|
+
if (varItem.IsDrawAbove) chart.Direction=1;
|
|
21259
|
+
else chart.Direction=0;
|
|
21260
|
+
|
|
21261
|
+
chart.DrawData=varItem.Draw.DrawData;
|
|
21262
|
+
if (varItem.DrawFontSize>0) chart.TextFont=`${varItem.DrawFontSize*GetDevicePixelRatio()}px 微软雅黑`; //临时用下吧
|
|
21263
|
+
|
|
21264
|
+
frame.ChartPaint.push(chart);
|
|
21265
|
+
}
|
|
21266
|
+
|
|
21237
21267
|
//DRAWTEXT
|
|
21238
21268
|
this.CreateDrawTextV2=function(hqChart,windowIndex,varItem,id)
|
|
21239
21269
|
{
|
package/src/jscommon/umychart.js
CHANGED
|
@@ -33,7 +33,11 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
33
33
|
this.CanvasElement.className='jschart-drawing';
|
|
34
34
|
this.CanvasElement.id=Guid();
|
|
35
35
|
this.CanvasElement.setAttribute("tabindex",0);
|
|
36
|
-
if (this.CanvasElement.style)
|
|
36
|
+
if (this.CanvasElement.style)
|
|
37
|
+
{
|
|
38
|
+
this.CanvasElement.style.outline='none';
|
|
39
|
+
this.CanvasElement.style.position="absolute";
|
|
40
|
+
}
|
|
37
41
|
if(divElement.hasChildNodes())
|
|
38
42
|
{
|
|
39
43
|
JSConsole.Chart.Log("[JSChart::JSChart] divElement hasChildNodes", divElement.childNodes);
|
|
@@ -80,6 +84,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
80
84
|
if (option)
|
|
81
85
|
{
|
|
82
86
|
if (IFrameSplitOperator.IsNumber(option.TabIndex)) element.setAttribute("tabindex",option.TabIndex);
|
|
87
|
+
if (IFrameSplitOperator.IsNumber(option.ZIndex)) element.style["z-index"]=option.ZIndex;
|
|
83
88
|
}
|
|
84
89
|
|
|
85
90
|
divElement.appendChild(element);
|
|
@@ -5224,8 +5229,6 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
5224
5229
|
{
|
|
5225
5230
|
this.LastMouseStatus.MouseOnToolbar=null; //鼠标在工具栏按钮上
|
|
5226
5231
|
|
|
5227
|
-
if (this.Frame.ScreenImageData==null && !this.CacheCanvas) return;
|
|
5228
|
-
|
|
5229
5232
|
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_BEFORE_DRAW_DYNAMIC_INFO);
|
|
5230
5233
|
if (event && event.Callback)
|
|
5231
5234
|
{
|
|
@@ -5233,6 +5236,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
5233
5236
|
event.Callback(event,sendData,this);
|
|
5234
5237
|
}
|
|
5235
5238
|
|
|
5239
|
+
if (this.Frame.ScreenImageData==null && !this.CacheCanvas) return;
|
|
5240
|
+
|
|
5236
5241
|
var isErase=false;
|
|
5237
5242
|
if (this.ChartCorssCursor)
|
|
5238
5243
|
{
|
|
@@ -4113,7 +4113,11 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4113
4113
|
this.CanvasElement.className='jschart-drawing';
|
|
4114
4114
|
this.CanvasElement.id=Guid();
|
|
4115
4115
|
this.CanvasElement.setAttribute("tabindex",0);
|
|
4116
|
-
if (this.CanvasElement.style)
|
|
4116
|
+
if (this.CanvasElement.style)
|
|
4117
|
+
{
|
|
4118
|
+
this.CanvasElement.style.outline='none';
|
|
4119
|
+
this.CanvasElement.style.position="absolute";
|
|
4120
|
+
}
|
|
4117
4121
|
if(divElement.hasChildNodes())
|
|
4118
4122
|
{
|
|
4119
4123
|
JSConsole.Chart.Log("[JSChart::JSChart] divElement hasChildNodes", divElement.childNodes);
|
|
@@ -4160,6 +4164,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4160
4164
|
if (option)
|
|
4161
4165
|
{
|
|
4162
4166
|
if (IFrameSplitOperator.IsNumber(option.TabIndex)) element.setAttribute("tabindex",option.TabIndex);
|
|
4167
|
+
if (IFrameSplitOperator.IsNumber(option.ZIndex)) element.style["z-index"]=option.ZIndex;
|
|
4163
4168
|
}
|
|
4164
4169
|
|
|
4165
4170
|
divElement.appendChild(element);
|
|
@@ -9304,8 +9309,6 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
9304
9309
|
{
|
|
9305
9310
|
this.LastMouseStatus.MouseOnToolbar=null; //鼠标在工具栏按钮上
|
|
9306
9311
|
|
|
9307
|
-
if (this.Frame.ScreenImageData==null && !this.CacheCanvas) return;
|
|
9308
|
-
|
|
9309
9312
|
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_BEFORE_DRAW_DYNAMIC_INFO);
|
|
9310
9313
|
if (event && event.Callback)
|
|
9311
9314
|
{
|
|
@@ -9313,6 +9316,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
9313
9316
|
event.Callback(event,sendData,this);
|
|
9314
9317
|
}
|
|
9315
9318
|
|
|
9319
|
+
if (this.Frame.ScreenImageData==null && !this.CacheCanvas) return;
|
|
9320
|
+
|
|
9316
9321
|
var isErase=false;
|
|
9317
9322
|
if (this.ChartCorssCursor)
|
|
9318
9323
|
{
|
|
@@ -107986,7 +107991,7 @@ function JSExecute(ast,option)
|
|
|
107986
107991
|
["ISEQUAL",null], ["ISUP",null],["ISDOWN"], //ISUP=收阳 ISEQUAL=平盘 ISDOWN=收阴
|
|
107987
107992
|
|
|
107988
107993
|
//日期类
|
|
107989
|
-
['DATE',null],['YEAR',null],['MONTH',null],['PERIOD', null],['WEEK',null],["TIME",null],["DAY",null],["DATETIME",null],["TIME2",null],
|
|
107994
|
+
['DATE',null],['YEAR',null],['MONTH',null],['PERIOD', null],['WEEK',null],['WEEKDAY',null],["TIME",null],["DAY",null],["DATETIME",null],["TIME2",null],
|
|
107990
107995
|
["WEEKOFYEAR", null],["DAYSTOTODAY", null],
|
|
107991
107996
|
|
|
107992
107997
|
//大盘数据
|
|
@@ -108268,6 +108273,7 @@ function JSExecute(ast,option)
|
|
|
108268
108273
|
case 'MONTH':
|
|
108269
108274
|
return this.SymbolData.MONTH();
|
|
108270
108275
|
case 'WEEK':
|
|
108276
|
+
case "WEEKDAY":
|
|
108271
108277
|
return this.SymbolData.WEEK();
|
|
108272
108278
|
case "DAY":
|
|
108273
108279
|
return this.SymbolData.DAY();
|
|
@@ -113001,6 +113007,11 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
113001
113007
|
this.CreatePartLine(hqChart,windowIndex,item,i);
|
|
113002
113008
|
break;
|
|
113003
113009
|
|
|
113010
|
+
case "DRAWTEXTABS":
|
|
113011
|
+
case "DRAWTEXTREL":
|
|
113012
|
+
this.CreateDrawText(hqChart,windowIndex,item,i);
|
|
113013
|
+
break;
|
|
113014
|
+
|
|
113004
113015
|
case SCRIPT_CHART_NAME.OVERLAY_BARS:
|
|
113005
113016
|
this.CreateStackedBar(hqChart,windowIndex,item,i);
|
|
113006
113017
|
break;
|
|
@@ -113178,6 +113189,30 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
113178
113189
|
frame.ChartPaint.push(chart);
|
|
113179
113190
|
}
|
|
113180
113191
|
|
|
113192
|
+
this.CreateDrawText=function(hqChart,windowIndex,varItem,id)
|
|
113193
|
+
{
|
|
113194
|
+
var overlayIndex=this.OverlayIndex;
|
|
113195
|
+
var frame=overlayIndex.Frame;
|
|
113196
|
+
var chart=new ChartSingleText();
|
|
113197
|
+
chart.Canvas=hqChart.Canvas;
|
|
113198
|
+
chart.Name=varItem.Name;
|
|
113199
|
+
chart.ChartBorder=frame.Frame.ChartBorder;
|
|
113200
|
+
chart.ChartFrame=frame.Frame;
|
|
113201
|
+
chart.Identify=overlayIndex.Identify;
|
|
113202
|
+
chart.ReloadResource();
|
|
113203
|
+
|
|
113204
|
+
if (varItem.Color) chart.Color=this.GetColor(varItem.Color);
|
|
113205
|
+
else chart.Color=this.GetDefaultColor(id);
|
|
113206
|
+
|
|
113207
|
+
if (varItem.IsDrawAbove) chart.Direction=1;
|
|
113208
|
+
else chart.Direction=0;
|
|
113209
|
+
|
|
113210
|
+
chart.DrawData=varItem.Draw.DrawData;
|
|
113211
|
+
if (varItem.DrawFontSize>0) chart.TextFont=`${varItem.DrawFontSize*GetDevicePixelRatio()}px 微软雅黑`; //临时用下吧
|
|
113212
|
+
|
|
113213
|
+
frame.ChartPaint.push(chart);
|
|
113214
|
+
}
|
|
113215
|
+
|
|
113181
113216
|
//DRAWTEXT
|
|
113182
113217
|
this.CreateDrawTextV2=function(hqChart,windowIndex,varItem,id)
|
|
113183
113218
|
{
|
|
@@ -127427,7 +127462,7 @@ function ScrollBarBGChart()
|
|
|
127427
127462
|
|
|
127428
127463
|
|
|
127429
127464
|
|
|
127430
|
-
var HQCHART_VERSION="1.1.
|
|
127465
|
+
var HQCHART_VERSION="1.1.12405";
|
|
127431
127466
|
|
|
127432
127467
|
function PrintHQChartVersion()
|
|
127433
127468
|
{
|
|
@@ -4157,7 +4157,11 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4157
4157
|
this.CanvasElement.className='jschart-drawing';
|
|
4158
4158
|
this.CanvasElement.id=Guid();
|
|
4159
4159
|
this.CanvasElement.setAttribute("tabindex",0);
|
|
4160
|
-
if (this.CanvasElement.style)
|
|
4160
|
+
if (this.CanvasElement.style)
|
|
4161
|
+
{
|
|
4162
|
+
this.CanvasElement.style.outline='none';
|
|
4163
|
+
this.CanvasElement.style.position="absolute";
|
|
4164
|
+
}
|
|
4161
4165
|
if(divElement.hasChildNodes())
|
|
4162
4166
|
{
|
|
4163
4167
|
JSConsole.Chart.Log("[JSChart::JSChart] divElement hasChildNodes", divElement.childNodes);
|
|
@@ -4204,6 +4208,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4204
4208
|
if (option)
|
|
4205
4209
|
{
|
|
4206
4210
|
if (IFrameSplitOperator.IsNumber(option.TabIndex)) element.setAttribute("tabindex",option.TabIndex);
|
|
4211
|
+
if (IFrameSplitOperator.IsNumber(option.ZIndex)) element.style["z-index"]=option.ZIndex;
|
|
4207
4212
|
}
|
|
4208
4213
|
|
|
4209
4214
|
divElement.appendChild(element);
|
|
@@ -9348,8 +9353,6 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
9348
9353
|
{
|
|
9349
9354
|
this.LastMouseStatus.MouseOnToolbar=null; //鼠标在工具栏按钮上
|
|
9350
9355
|
|
|
9351
|
-
if (this.Frame.ScreenImageData==null && !this.CacheCanvas) return;
|
|
9352
|
-
|
|
9353
9356
|
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_BEFORE_DRAW_DYNAMIC_INFO);
|
|
9354
9357
|
if (event && event.Callback)
|
|
9355
9358
|
{
|
|
@@ -9357,6 +9360,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
9357
9360
|
event.Callback(event,sendData,this);
|
|
9358
9361
|
}
|
|
9359
9362
|
|
|
9363
|
+
if (this.Frame.ScreenImageData==null && !this.CacheCanvas) return;
|
|
9364
|
+
|
|
9360
9365
|
var isErase=false;
|
|
9361
9366
|
if (this.ChartCorssCursor)
|
|
9362
9367
|
{
|
|
@@ -108030,7 +108035,7 @@ function JSExecute(ast,option)
|
|
|
108030
108035
|
["ISEQUAL",null], ["ISUP",null],["ISDOWN"], //ISUP=收阳 ISEQUAL=平盘 ISDOWN=收阴
|
|
108031
108036
|
|
|
108032
108037
|
//日期类
|
|
108033
|
-
['DATE',null],['YEAR',null],['MONTH',null],['PERIOD', null],['WEEK',null],["TIME",null],["DAY",null],["DATETIME",null],["TIME2",null],
|
|
108038
|
+
['DATE',null],['YEAR',null],['MONTH',null],['PERIOD', null],['WEEK',null],['WEEKDAY',null],["TIME",null],["DAY",null],["DATETIME",null],["TIME2",null],
|
|
108034
108039
|
["WEEKOFYEAR", null],["DAYSTOTODAY", null],
|
|
108035
108040
|
|
|
108036
108041
|
//大盘数据
|
|
@@ -108312,6 +108317,7 @@ function JSExecute(ast,option)
|
|
|
108312
108317
|
case 'MONTH':
|
|
108313
108318
|
return this.SymbolData.MONTH();
|
|
108314
108319
|
case 'WEEK':
|
|
108320
|
+
case "WEEKDAY":
|
|
108315
108321
|
return this.SymbolData.WEEK();
|
|
108316
108322
|
case "DAY":
|
|
108317
108323
|
return this.SymbolData.DAY();
|
|
@@ -113045,6 +113051,11 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
113045
113051
|
this.CreatePartLine(hqChart,windowIndex,item,i);
|
|
113046
113052
|
break;
|
|
113047
113053
|
|
|
113054
|
+
case "DRAWTEXTABS":
|
|
113055
|
+
case "DRAWTEXTREL":
|
|
113056
|
+
this.CreateDrawText(hqChart,windowIndex,item,i);
|
|
113057
|
+
break;
|
|
113058
|
+
|
|
113048
113059
|
case SCRIPT_CHART_NAME.OVERLAY_BARS:
|
|
113049
113060
|
this.CreateStackedBar(hqChart,windowIndex,item,i);
|
|
113050
113061
|
break;
|
|
@@ -113222,6 +113233,30 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
113222
113233
|
frame.ChartPaint.push(chart);
|
|
113223
113234
|
}
|
|
113224
113235
|
|
|
113236
|
+
this.CreateDrawText=function(hqChart,windowIndex,varItem,id)
|
|
113237
|
+
{
|
|
113238
|
+
var overlayIndex=this.OverlayIndex;
|
|
113239
|
+
var frame=overlayIndex.Frame;
|
|
113240
|
+
var chart=new ChartSingleText();
|
|
113241
|
+
chart.Canvas=hqChart.Canvas;
|
|
113242
|
+
chart.Name=varItem.Name;
|
|
113243
|
+
chart.ChartBorder=frame.Frame.ChartBorder;
|
|
113244
|
+
chart.ChartFrame=frame.Frame;
|
|
113245
|
+
chart.Identify=overlayIndex.Identify;
|
|
113246
|
+
chart.ReloadResource();
|
|
113247
|
+
|
|
113248
|
+
if (varItem.Color) chart.Color=this.GetColor(varItem.Color);
|
|
113249
|
+
else chart.Color=this.GetDefaultColor(id);
|
|
113250
|
+
|
|
113251
|
+
if (varItem.IsDrawAbove) chart.Direction=1;
|
|
113252
|
+
else chart.Direction=0;
|
|
113253
|
+
|
|
113254
|
+
chart.DrawData=varItem.Draw.DrawData;
|
|
113255
|
+
if (varItem.DrawFontSize>0) chart.TextFont=`${varItem.DrawFontSize*GetDevicePixelRatio()}px 微软雅黑`; //临时用下吧
|
|
113256
|
+
|
|
113257
|
+
frame.ChartPaint.push(chart);
|
|
113258
|
+
}
|
|
113259
|
+
|
|
113225
113260
|
//DRAWTEXT
|
|
113226
113261
|
this.CreateDrawTextV2=function(hqChart,windowIndex,varItem,id)
|
|
113227
113262
|
{
|
|
@@ -127471,7 +127506,7 @@ function ScrollBarBGChart()
|
|
|
127471
127506
|
|
|
127472
127507
|
|
|
127473
127508
|
|
|
127474
|
-
var HQCHART_VERSION="1.1.
|
|
127509
|
+
var HQCHART_VERSION="1.1.12405";
|
|
127475
127510
|
|
|
127476
127511
|
function PrintHQChartVersion()
|
|
127477
127512
|
{
|
|
@@ -105,6 +105,7 @@ function IChartPainting()
|
|
|
105
105
|
|
|
106
106
|
this.IsDrawFirst = false; //是否比K线先画
|
|
107
107
|
this.IsShow = true; //是否显示
|
|
108
|
+
this.IsVisible=true; //是否显示 (预留给外部单独设置线段显隐)
|
|
108
109
|
this.GetEventCallback;
|
|
109
110
|
|
|
110
111
|
this.Draw = function () { }
|
|
@@ -3301,7 +3302,7 @@ function ChartLine()
|
|
|
3301
3302
|
|
|
3302
3303
|
this.Draw = function ()
|
|
3303
3304
|
{
|
|
3304
|
-
if (!this.IsShow || this.ChartFrame.IsMinSize) return;
|
|
3305
|
+
if (!this.IsShow || this.ChartFrame.IsMinSize || !this.IsVisible) return;
|
|
3305
3306
|
if (this.NotSupportMessage)
|
|
3306
3307
|
{
|
|
3307
3308
|
this.DrawNotSupportmessage();
|
|
@@ -5934,7 +5935,7 @@ function ChartMACD()
|
|
|
5934
5935
|
|
|
5935
5936
|
this.Draw = function ()
|
|
5936
5937
|
{
|
|
5937
|
-
if (this.ChartFrame.IsMinSize) return;
|
|
5938
|
+
if (this.ChartFrame.IsMinSize || !this.IsVisible) return;
|
|
5938
5939
|
if (this.NotSupportMessage)
|
|
5939
5940
|
{
|
|
5940
5941
|
this.DrawNotSupportmessage();
|
|
@@ -7008,7 +7009,7 @@ function ChartVolStick()
|
|
|
7008
7009
|
|
|
7009
7010
|
this.Draw = function ()
|
|
7010
7011
|
{
|
|
7011
|
-
if (this.ChartFrame.IsMinSize) return;
|
|
7012
|
+
if (!this.IsShow || this.ChartFrame.IsMinSize || !this.IsVisible) return;
|
|
7012
7013
|
if (this.ChartFrame.IsHScreen === true)
|
|
7013
7014
|
{
|
|
7014
7015
|
this.HScreenDraw();
|
|
@@ -2065,6 +2065,9 @@ var JSCHART_EVENT_ID =
|
|
|
2065
2065
|
ON_CHANGE_KLINE_PERIOD:101, //切换周期
|
|
2066
2066
|
ON_MINUTE_TOUCH_ZOOM:102, //分时图手势缩放
|
|
2067
2067
|
|
|
2068
|
+
ON_RELOAD_INDEX_CHART_RESOURCE:103, //加载指标图形额外资源
|
|
2069
|
+
ON_RELOAD_OVERLAY_INDEX_CHART_RESOURCE:104, //加载叠加指标图形额外资源
|
|
2070
|
+
|
|
2068
2071
|
ON_CREATE_FRAME:105,
|
|
2069
2072
|
ON_DELETE_FRAME:106,
|
|
2070
2073
|
ON_SIZE_FRAME:107,
|
|
@@ -156,7 +156,12 @@ JSIndexScript.prototype.Get=function(id)
|
|
|
156
156
|
if (data) return data;
|
|
157
157
|
|
|
158
158
|
var func=this.DataMap.get(id);
|
|
159
|
-
if (func)
|
|
159
|
+
if (func)
|
|
160
|
+
{
|
|
161
|
+
var data=func();
|
|
162
|
+
data.ID=id;
|
|
163
|
+
return data;
|
|
164
|
+
}
|
|
160
165
|
|
|
161
166
|
console.log(`[JSIndexScript::Get] can't find index by id=${id}`);
|
|
162
167
|
return null;
|
|
@@ -3173,8 +3178,16 @@ JSIndexScript.prototype.TEST = function ()
|
|
|
3173
3178
|
"DRAWBAND(OPEN,RGB(0,224,224),CLOSE,RGB(255,96,96));"
|
|
3174
3179
|
//"T2:IF(KDJ.J>-10,KDJ.J#WEEK,0);"
|
|
3175
3180
|
*/
|
|
3176
|
-
Script:
|
|
3177
|
-
|
|
3181
|
+
Script:"VOL:VOL,VOLSTICK, UPCOLOR(RGBA(255,0,0,0.3)), DOWNCOLOR(RGBA(0,255,0,0.3));"
|
|
3182
|
+
|
|
3183
|
+
//"DRAWGBK_DIV(C>O,RGB(221 ,160 ,221),RGB(100 ,250, 250),1,1);"
|
|
3184
|
+
/*
|
|
3185
|
+
'TEXT:IF(PERIOD=5,"","不支持");\n'+
|
|
3186
|
+
'DRAWTEXTREL(500,500,TEXT),FONTSIZE20;\n'+
|
|
3187
|
+
'TESTSKIP(PERIOD!=5);\n'+
|
|
3188
|
+
'T:C;\n'+
|
|
3189
|
+
'T2:O;\n'
|
|
3190
|
+
*/
|
|
3178
3191
|
};
|
|
3179
3192
|
|
|
3180
3193
|
return data;
|
|
@@ -352,6 +352,34 @@ function ScriptIndex(name, script, args, option)
|
|
|
352
352
|
}
|
|
353
353
|
}
|
|
354
354
|
|
|
355
|
+
//给图形设置指标名字
|
|
356
|
+
this.SetChartIndexName=function(chart)
|
|
357
|
+
{
|
|
358
|
+
if (this.Name) chart.IndexName=this.Name;
|
|
359
|
+
else if (this.ID) chart.IndexName==this.ID;
|
|
360
|
+
|
|
361
|
+
if (this.ID) chart.IndexID=this.ID;
|
|
362
|
+
|
|
363
|
+
chart.Script=this; //指标内容绑定上去
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
//设置标题数据
|
|
367
|
+
this.SetTitleData=function(titleData, chart)
|
|
368
|
+
{
|
|
369
|
+
titleData.ChartClassName=chart.ClassName;
|
|
370
|
+
titleData.IsVisible=chart.IsVisible;
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
//自定义图形配色
|
|
374
|
+
this.ReloadChartResource=function(hqChart, windowIndex, chart)
|
|
375
|
+
{
|
|
376
|
+
var event=hqChart.GetEventCallback(JSCHART_EVENT_ID.ON_RELOAD_INDEX_CHART_RESOURCE); //指标计算完成回调
|
|
377
|
+
if (!event || !event.Callback) return;
|
|
378
|
+
|
|
379
|
+
var sendData={ Chart:chart, IndexName:this.Name,IndexID:this.ID, HQChart:hqChart, WindowIndex:windowIndex };
|
|
380
|
+
event.Callback(event,sendData,this);
|
|
381
|
+
}
|
|
382
|
+
|
|
355
383
|
this.CreateLine = function (hqChart, windowIndex, varItem, id, lineType)
|
|
356
384
|
{
|
|
357
385
|
if (lineType==7) var line=new ChartStepLine();
|
|
@@ -375,6 +403,9 @@ function ScriptIndex(name, script, args, option)
|
|
|
375
403
|
|
|
376
404
|
let titleIndex = windowIndex + 1;
|
|
377
405
|
line.Data.Data = varItem.Data;
|
|
406
|
+
|
|
407
|
+
this.ReloadChartResource(hqChart,windowIndex,line);
|
|
408
|
+
|
|
378
409
|
if (varItem.IsShowTitle===false) //NOTEXT 不绘制标题
|
|
379
410
|
{
|
|
380
411
|
}
|
|
@@ -383,10 +414,12 @@ function ScriptIndex(name, script, args, option)
|
|
|
383
414
|
}
|
|
384
415
|
else
|
|
385
416
|
{
|
|
386
|
-
|
|
387
|
-
hqChart.TitlePaint[titleIndex].Data[id]
|
|
417
|
+
var titleData=new DynamicTitleData(line.Data, (varItem.NoneName==true? null: varItem.Name) , line.Color);
|
|
418
|
+
hqChart.TitlePaint[titleIndex].Data[id] = titleData;
|
|
419
|
+
this.SetTitleData(titleData,line);
|
|
388
420
|
}
|
|
389
|
-
|
|
421
|
+
|
|
422
|
+
this.SetChartIndexName(line);
|
|
390
423
|
hqChart.ChartPaint.push(line);
|
|
391
424
|
}
|
|
392
425
|
|
|
@@ -659,8 +692,11 @@ function ScriptIndex(name, script, args, option)
|
|
|
659
692
|
if (varItem.UpColor) chartMACD.UpColor=varItem.UpColor;
|
|
660
693
|
if (varItem.DownColor) chartMACD.DownColor=varItem.DownColor;
|
|
661
694
|
|
|
695
|
+
this.ReloadChartResource(hqChart,windowIndex,chartMACD);
|
|
696
|
+
|
|
662
697
|
hqChart.TitlePaint[titleIndex].Data[id] = new DynamicTitleData(chartMACD.Data, varItem.Name, clrTitle);
|
|
663
698
|
|
|
699
|
+
this.SetChartIndexName(chartMACD);
|
|
664
700
|
hqChart.ChartPaint.push(chartMACD);
|
|
665
701
|
}
|
|
666
702
|
|
|
@@ -695,26 +731,31 @@ function ScriptIndex(name, script, args, option)
|
|
|
695
731
|
hqChart.ChartPaint.push(pointDot);
|
|
696
732
|
}
|
|
697
733
|
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
734
|
+
this.CreateStick = function (hqChart, windowIndex, varItem, id)
|
|
735
|
+
{
|
|
736
|
+
let chart = new ChartStick();
|
|
737
|
+
chart.Canvas = hqChart.Canvas;
|
|
738
|
+
chart.Name = varItem.Name;
|
|
739
|
+
chart.ChartBorder = hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;
|
|
740
|
+
chart.ChartFrame = hqChart.Frame.SubFrame[windowIndex].Frame;
|
|
741
|
+
if (varItem.Color) chart.Color = this.GetColor(varItem.Color);
|
|
742
|
+
else chart.Color = this.GetDefaultColor(id);
|
|
706
743
|
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
744
|
+
if (varItem.LineWidth)
|
|
745
|
+
{
|
|
746
|
+
let width = parseInt(varItem.LineWidth.replace("LINETHICK", ""));
|
|
747
|
+
if (!isNaN(width) && width > 0) chart.LineWidth = width;
|
|
748
|
+
}
|
|
711
749
|
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
750
|
+
let titleIndex = windowIndex + 1;
|
|
751
|
+
chart.Data.Data = varItem.Data;
|
|
752
|
+
this.ReloadChartResource(hqChart,windowIndex,chart);
|
|
715
753
|
|
|
716
|
-
|
|
717
|
-
|
|
754
|
+
hqChart.TitlePaint[titleIndex].Data[id] = new DynamicTitleData(chart.Data, varItem.Name, chart.Color);
|
|
755
|
+
|
|
756
|
+
this.SetChartIndexName(chart);
|
|
757
|
+
hqChart.ChartPaint.push(chart);
|
|
758
|
+
}
|
|
718
759
|
|
|
719
760
|
this.CreateLineStick = function (hqChart, windowIndex, varItem, id) {
|
|
720
761
|
let chart = new ChartLineStick();
|
|
@@ -759,26 +800,32 @@ function ScriptIndex(name, script, args, option)
|
|
|
759
800
|
hqChart.ChartPaint.push(line);
|
|
760
801
|
}
|
|
761
802
|
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
803
|
+
this.CreateVolStick = function (hqChart, windowIndex, varItem, id, hisData)
|
|
804
|
+
{
|
|
805
|
+
let chart = new ChartVolStick();
|
|
806
|
+
chart.Canvas = hqChart.Canvas;
|
|
807
|
+
chart.Name = varItem.Name;
|
|
808
|
+
chart.ChartBorder = hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;
|
|
809
|
+
chart.ChartFrame = hqChart.Frame.SubFrame[windowIndex].Frame;
|
|
810
|
+
chart.KLineDrawType = hqChart.KLineDrawType; //设置K线显示类型
|
|
811
|
+
if (varItem.Color) chart.Color = this.GetColor(varItem.Color);
|
|
812
|
+
else chart.Color = this.GetDefaultColor(id);
|
|
771
813
|
|
|
772
|
-
|
|
773
|
-
|
|
814
|
+
if (varItem.UpColor) chart.UpColor=varItem.UpColor;
|
|
815
|
+
if (varItem.DownColor) chart.DownColor=varItem.DownColor;
|
|
774
816
|
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
817
|
+
let titleIndex = windowIndex + 1;
|
|
818
|
+
chart.Data.Data = varItem.Data;
|
|
819
|
+
chart.HistoryData = hisData;
|
|
820
|
+
this.ReloadChartResource(hqChart,windowIndex,chart);
|
|
779
821
|
|
|
780
|
-
|
|
781
|
-
|
|
822
|
+
var titleData=new DynamicTitleData(chart.Data, varItem.Name, chart.Color);
|
|
823
|
+
hqChart.TitlePaint[titleIndex].Data[id] = titleData;
|
|
824
|
+
this.SetTitleData(titleData,chart);
|
|
825
|
+
|
|
826
|
+
this.SetChartIndexName(chart);
|
|
827
|
+
hqChart.ChartPaint.push(chart);
|
|
828
|
+
}
|
|
782
829
|
|
|
783
830
|
this.CreateBand = function (hqChart, windowIndex, varItem, id) {
|
|
784
831
|
let chart = new ChartBand();
|
|
@@ -1658,6 +1705,20 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
1658
1705
|
}
|
|
1659
1706
|
}
|
|
1660
1707
|
|
|
1708
|
+
//自定义图形配色
|
|
1709
|
+
this.ReloadChartResource=function(hqChart, windowIndex, chart)
|
|
1710
|
+
{
|
|
1711
|
+
var event=hqChart.GetEventCallback(JSCHART_EVENT_ID.ON_RELOAD_OVERLAY_INDEX_CHART_RESOURCE); //指标计算完成回调
|
|
1712
|
+
if (!event || !event.Callback) return;
|
|
1713
|
+
|
|
1714
|
+
var overlayIndex=this.OverlayIndex;
|
|
1715
|
+
var frame=overlayIndex.Frame;
|
|
1716
|
+
var script=frame.Script;
|
|
1717
|
+
|
|
1718
|
+
var sendData={ Chart:chart, IndexName:script.Name,IndexID:script.ID, HQChart:hqChart, WindowIndex:windowIndex, Guid:overlayIndex.Identify };
|
|
1719
|
+
event.Callback(event,sendData,this);
|
|
1720
|
+
}
|
|
1721
|
+
|
|
1661
1722
|
//////////////////////////////////////////////////////////////////////////////////////
|
|
1662
1723
|
// 图形创建
|
|
1663
1724
|
/////////////////////////////////////////////////////////////////////////////////////
|
|
@@ -1689,12 +1750,15 @@ function OverlayScriptIndex(name,script,args,option)
|
|
|
1689
1750
|
}
|
|
1690
1751
|
|
|
1691
1752
|
if (varItem.IsShow==false) chart.IsShow=false;
|
|
1692
|
-
|
|
1693
|
-
let titleIndex=windowIndex+1;
|
|
1753
|
+
|
|
1694
1754
|
chart.Data.Data=varItem.Data;
|
|
1755
|
+
this.ReloadChartResource(hqChart, windowIndex, chart);
|
|
1756
|
+
|
|
1757
|
+
let titleIndex=windowIndex+1;
|
|
1695
1758
|
var titlePaint=hqChart.TitlePaint[titleIndex];
|
|
1696
1759
|
var titleData=new DynamicTitleData(chart.Data,varItem.Name,chart.Color);
|
|
1697
|
-
titleData
|
|
1760
|
+
this.SetTitleData(titleData,chart);
|
|
1761
|
+
|
|
1698
1762
|
titlePaint.OverlayIndex.get(overlayIndex.Identify).Data[id]=titleData;
|
|
1699
1763
|
|
|
1700
1764
|
this.SetChartIndexName(chart);
|
|
@@ -3243,6 +3243,36 @@ function JSChartContainer(uielement)
|
|
|
3243
3243
|
|
|
3244
3244
|
return true;
|
|
3245
3245
|
}
|
|
3246
|
+
|
|
3247
|
+
//获取扩展画法
|
|
3248
|
+
this.GetExtendChartByClassName=function(name)
|
|
3249
|
+
{
|
|
3250
|
+
for(var i=0; i<this.ExtendChartPaint.length; ++i)
|
|
3251
|
+
{
|
|
3252
|
+
var item=this.ExtendChartPaint[i];
|
|
3253
|
+
if (item.ClassName==name) return { Index:i, Chart:item };
|
|
3254
|
+
}
|
|
3255
|
+
|
|
3256
|
+
return null
|
|
3257
|
+
}
|
|
3258
|
+
|
|
3259
|
+
//获取多个扩展画法
|
|
3260
|
+
this.GetExtendChartByClassNameV2=function(name)
|
|
3261
|
+
{
|
|
3262
|
+
var aryChart=[];
|
|
3263
|
+
for(var i=0; i<this.ExtendChartPaint.length; ++i)
|
|
3264
|
+
{
|
|
3265
|
+
var item=this.ExtendChartPaint[i];
|
|
3266
|
+
if (item.ClassName==name)
|
|
3267
|
+
{
|
|
3268
|
+
aryChart.push({ Index:i, Chart:item });
|
|
3269
|
+
}
|
|
3270
|
+
}
|
|
3271
|
+
|
|
3272
|
+
if (aryChart.length<=0) return null;
|
|
3273
|
+
|
|
3274
|
+
return aryChart;
|
|
3275
|
+
}
|
|
3246
3276
|
}
|
|
3247
3277
|
|
|
3248
3278
|
function ToFixed(number, precision)
|