hqchart 1.1.15449 → 1.1.15451

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.
@@ -12711,7 +12711,7 @@ if(item.Type==Syntax.ExpressionStatement&&item.Expression){if(item.Expression.Ty
12711
12711
  {var draw=this.VarDrawTable.get(_varName);this.OutVarTable.push({Name:draw.Name,Draw:draw,Type:1});}else{var type=0;if(_outVar&&(typeof _outVar==='undefined'?'undefined':(0,_typeof3.default)(_outVar))=='object'&&_outVar.__Type__=='Object'){type=1000;}else if(!this.IsSectionMode&&!Array.isArray(_outVar)){if(typeof _outVar=='string'){var floatValue=parseFloat(_outVar);if(IFrameSplitOperator.IsNumber(floatValue)){_outVar=this.SingleDataToArrayData(floatValue);}else{_outVar=this.SingleDataToArrayData(_outVar);type=1001;}}else _outVar=this.SingleDataToArrayData(_outVar);}this.OutVarTable.push({Name:_varName,Data:_outVar,Type:type});}}}else if(item.Expression.Type==Syntax.CallExpression){var callItem=item.Expression;if(this.Draw.IsDrawFunction(callItem.Callee.Name)){var _draw=callItem.Draw;_draw.Name=callItem.Callee.Name;this.OutVarTable.push({Name:_draw.Name,Draw:_draw,Type:1});}else if(callItem.Callee.Name==="IFC"&&callItem.Draw){var _draw2=callItem.Draw;_draw2.Name=_draw2.DrawType;this.OutVarTable.push({Name:_draw2.Name,Draw:_draw2,Type:1});}else{var _outVar2=callItem.Out;varName='__temp_c_'+callItem.Callee.Name+'_'+i+'__';var type=0;if(!Array.isArray(_outVar2))_outVar2=this.SingleDataToArrayData(_outVar2);this.OutVarTable.push({Name:varName,Data:_outVar2,Type:type,NoneName:true});}}else if(item.Expression.Type==Syntax.Identifier){var _varName2=item.Expression.Name;var _outVar3=this.ReadVariable(_varName2,item.Expression);var type=0;if(_outVar3&&(typeof _outVar3==='undefined'?'undefined':(0,_typeof3.default)(_outVar3))=='object'&&_outVar3.__Type__=='Object'){type=1000;}else if(!this.IsSectionMode&&!Array.isArray(_outVar3)){if(typeof _outVar3=='string')_outVar3=this.SingleDataToArrayData(parseFloat(_outVar3));else _outVar3=this.SingleDataToArrayData(_outVar3);}_varName2="__temp_i_"+i+"__";this.OutVarTable.push({Name:_varName2,Data:_outVar3,Type:type,NoneName:true});}else if(item.Expression.Type==Syntax.Literal)//常量
12712
12712
  {var _outVar4=item.Expression.Value;if(IFrameSplitOperator.IsString(_outVar4)&&_outVar4.indexOf("$")>0)_outVar4=this.SymbolData.GetOtherSymolCacheData({Literal:_outVar4});varName="__temp_li_"+i+"__";var type=0;if(!Array.isArray(_outVar4))_outVar4=this.SingleDataToArrayData(_outVar4);this.OutVarTable.push({Name:varName,Data:_outVar4,Type:type,NoneName:true});}else if(item.Expression.Type==Syntax.BinaryExpression){var varName="__temp_b_"+i+"__";var _outVar5=item.Expression.Out;var type=0;if(!Array.isArray(_outVar5))_outVar5=this.SingleDataToArrayData(_outVar5);this.OutVarTable.push({Name:varName,Data:_outVar5,Type:type,NoneName:true});}else if(item.Expression.Type==Syntax.LogicalExpression)//逻辑语句 如 T1 AND T2
12713
12713
  {var varName="__temp_l_"+i+"__";var _outVar6=item.Expression.Out;var type=0;if(!Array.isArray(_outVar6))_outVar6=this.SingleDataToArrayData(_outVar6);this.OutVarTable.push({Name:varName,Data:_outVar6,Type:type,NoneName:true});}else if(item.Expression.Type==Syntax.UnaryExpression){var varName="__temp_u_"+i+"__";var varInfo={};if(this.ReadUnaryExpression(item.Expression,varInfo)){var type=0;this.OutVarTable.push({Name:varName,Data:varInfo.OutVar,Type:type,NoneName:true});}}else if(item.Expression.Type==Syntax.MemberExpression)//MA.MA2
12714
- {var outVar=this.ReadMemberVariable(item.Expression);if(outVar){var type=0;var varName="__temp_di_"+i+"__";if(!Array.isArray(outVar))outVar=this.SingleDataToArrayData(outVar);this.OutVarTable.push({Name:varName,Data:outVar,Type:type,NoneName:true});}}else if(item.Expression.Type==Syntax.SequenceExpression){var _varName3=void 0;var _draw3=void 0;var color=void 0,upColor=void 0,downColor=void 0,stickType=void 0;var lineWidth=void 0;var colorStick=false;var pointDot=false;var upDownDot=false;var circleDot=false;var lineStick=false;var stick=false;var volStick=false;var lineArea=false;var stepLine=false;var isShow=true;var isExData=false;var isDotLine=false;var isOverlayLine=false;//叠加线
12714
+ {var outVar=this.ReadMemberVariable(item.Expression);if(outVar){var type=0;var varName="__temp_di_"+i+"__";if(!Array.isArray(outVar))outVar=this.SingleDataToArrayData(outVar);this.OutVarTable.push({Name:varName,Data:outVar,Type:type,NoneName:true});}}else if(item.Expression.Type==Syntax.SequenceExpression){var _varName3=void 0;var _draw3=void 0;var _color=void 0,upColor=void 0,downColor=void 0,stickType=void 0;var lineWidth=void 0;var colorStick=false;var pointDot=false;var upDownDot=false;var circleDot=false;var lineStick=false;var stick=false;var volStick=false;var lineArea=false;var stepLine=false;var isShow=true;var isExData=false;var isDotLine=false;var isOverlayLine=false;//叠加线
12715
12715
  var isSingleLine=false;//独立线段
12716
12716
  var isNoneName=false;var isShowTitle=true;//显示在位置之上,对于DRAWTEXT和DRAWNUMBER等函数有用,放在语句的最后面(不能与LINETHICK等函数共用),比如:
12717
12717
  //DRAWNUMBER(CLOSE>OPEN,HIGH,CLOSE),DRAWABOVE;
@@ -12720,24 +12720,24 @@ var isDrawAbove=false;var isDrawCenter=false;var isDrawBelow=false;//VALIGN0,VAL
12720
12720
  var drawAlign=-1,drawVAlign=-1;var fontSize=-1;var bgConfig=null;//背景设置
12721
12721
  var vLineConfig=null;var isFirstDraw=null;var xOffset=null,yOffset=null;var klineType=null;var lineDash=null;var font=null;for(var _j10=0;_j10<item.Expression.Expression.length;++_j10){var itemExpression=item.Expression.Expression[_j10];if(itemExpression.Type==Syntax.AssignmentExpression&&itemExpression.Operator==':'&&itemExpression.Left){if(_j10==0){_varName3=itemExpression.Left.Name;var _varValue=this.VarTable.get(_varName3);if(this.VarDrawTable.has(_varName3))//绘图函数赋值
12722
12722
  {_draw3=this.VarDrawTable.get(_varName3);}else if(!Array.isArray(_varValue)){_varValue=this.SingleDataToArrayData(_varValue);this.VarTable.set(_varName3,_varValue);//把常量放到变量表里
12723
- }}else{}}else if(itemExpression.Type==Syntax.Identifier){var _value4=itemExpression.Name;if(_value4==='COLORSTICK')colorStick=true;else if(_value4==='POINTDOT')pointDot=true;else if(_value4==='CIRCLEDOT')circleDot=true;else if(_value4==='DOTLINE')isDotLine=true;else if(_value4=="UPDOWNDOT")upDownDot=true;else if(_value4==='LINESTICK')lineStick=true;else if(_value4==='STICK')stick=true;else if(_value4==='VOLSTICK')volStick=true;else if(_value4=="LINEAREA")lineArea=true;else if(_value4==="DRAWABOVE")isDrawAbove=true;else if(_value4==="DRAWCENTER")isDrawCenter=true;else if(_value4=="DRAWBELOW")isDrawBelow=true;else if(_value4=="STEPLINE")stepLine=true;else if(_value4=="SINGLELINE")isSingleLine=true;else if(_value4.indexOf('COLOR')==0)color=_value4;else if(_value4.indexOf("RGBX")==0&&_value4.length==10)color=_value4;//RGBX+“RRGGBB”
12723
+ }}else{}}else if(itemExpression.Type==Syntax.Identifier){var _value4=itemExpression.Name;if(_value4==='COLORSTICK')colorStick=true;else if(_value4==='POINTDOT')pointDot=true;else if(_value4==='CIRCLEDOT')circleDot=true;else if(_value4==='DOTLINE')isDotLine=true;else if(_value4=="UPDOWNDOT")upDownDot=true;else if(_value4==='LINESTICK')lineStick=true;else if(_value4==='STICK')stick=true;else if(_value4==='VOLSTICK')volStick=true;else if(_value4=="LINEAREA")lineArea=true;else if(_value4==="DRAWABOVE")isDrawAbove=true;else if(_value4==="DRAWCENTER")isDrawCenter=true;else if(_value4=="DRAWBELOW")isDrawBelow=true;else if(_value4=="STEPLINE")stepLine=true;else if(_value4=="SINGLELINE")isSingleLine=true;else if(_value4.indexOf('COLOR')==0)_color=_value4;else if(_value4.indexOf("RGBX")==0&&_value4.length==10)_color=_value4;//RGBX+“RRGGBB”
12724
12724
  else if(_value4.indexOf('LINETHICK')==0)lineWidth=_value4;else if(_value4=="ALIGN0")drawAlign=0;else if(_value4=="ALIGN1")drawAlign=1;else if(_value4=="ALIGN2")drawAlign=2;else if(_value4=="VALIGN0")drawVAlign=0;else if(_value4=="VALIGN1")drawVAlign=1;else if(_value4=="VALIGN2")drawVAlign=2;else if(_value4.indexOf('NODRAW')==0)isShow=false;else if(_value4.indexOf('EXDATA')==0)isExData=true;//扩展数据, 不显示再图形里面
12725
12725
  else if(_value4.indexOf('LINEOVERLAY')==0)isOverlayLine=true;else if(_value4.indexOf("NOTEXT")==0||_value4.indexOf("NOTITLE")==0)isShowTitle=false;//标题不显示
12726
12726
  else if(_value4.indexOf("FONTSIZE")==0){var strFontSize=_value4.replace("FONTSIZE","");fontSize=parseInt(strFontSize);}else{if(_j10==0){_varName3=itemExpression.Name;var _varValue2=this.ReadVariable(_varName3,itemExpression);if(!Array.isArray(_varValue2))_varValue2=this.SingleDataToArrayData(_varValue2);_varName3="__temp_si_"+i+"__";isNoneName=true;this.VarTable.set(_varName3,_varValue2);//放到变量表里
12727
12727
  }}}else if(itemExpression.Type==Syntax.Literal)//常量
12728
12728
  {if(_j10==0){var aryValue=this.SingleDataToArrayData(itemExpression.Value);_varName3=itemExpression.Value.toString();this.VarTable.set(_varName3,aryValue);//把常量放到变量表里
12729
- }}else if(itemExpression.Type==Syntax.CallExpression){if(_j10==0){if(this.Draw.IsDrawFunction(itemExpression.Callee.Name)){_draw3=itemExpression.Draw;_draw3.Name=itemExpression.Callee.Name;}else{var _varValue3=itemExpression.Out;_varName3='__temp_sc_'+itemExpression.Callee.Name+'_'+i+'__';isNoneName=true;this.VarTable.set(_varName3,_varValue3);}}else{if(itemExpression.Callee.Name=="RGB"||itemExpression.Callee.Name=="RGBA"){color=itemExpression.Out;}else if(itemExpression.Callee.Name=="UPCOLOR"){upColor=itemExpression.Out;}else if(itemExpression.Callee.Name=="DOWNCOLOR"){downColor=itemExpression.Out;}else if(itemExpression.Callee.Name=="CSSFONT"){font=itemExpression.Out;}else if(itemExpression.Callee.Name=="STICKTYPE"){stickType=itemExpression.Out;}else if(itemExpression.Callee.Name=="XMOVE"){xOffset=itemExpression.Out;}else if(itemExpression.Callee.Name=="YMOVE"){yOffset=itemExpression.Out;}else if(itemExpression.Callee.Name=="LINEDASH"){if(IFrameSplitOperator.IsNonEmptyArray(itemExpression.Out))lineDash=itemExpression.Out.slice();}else if(itemExpression.Callee.Name=="FIRSTDRAW"){if(itemExpression.Out===0)isFirstDraw=false;else if(itemExpression.Out===1)isFirstDraw=true;}else if(itemExpression.Callee.Name=="SOUND"){var event=this.GetSoundEvent();if(event){}_varName3=null;}else if(itemExpression.Callee.Name=="ICON"){var drawCond=this.VarTable.get(_varName3);if(drawCond){_draw3=this.GetOutIconData(drawCond,itemExpression.Draw);if(_draw3)_draw3.Name=itemExpression.Callee.Name;}_varName3=null;}else if(itemExpression.Callee.Name=="BACKGROUND"){bgConfig=itemExpression.Draw;_varName3=null;}else if(itemExpression.Callee.Name=="CKLINE"){vLineConfig=itemExpression.Draw;_varName3=null;}else if(itemExpression.Callee.Name=="KLINETYPE"){klineType=itemExpression.Out;}}}else if(itemExpression.Type==Syntax.BinaryExpression){if(_j10==0){_varName3="__temp_sb_"+i+"__";var _aryValue=itemExpression.Out;isNoneName=true;this.VarTable.set(_varName3,_aryValue);}}else if(itemExpression.Type==Syntax.UnaryExpression){if(_j10==0){_varName3="__temp_su_"+i+"__";var varInfo={};if(this.ReadUnaryExpression(itemExpression,varInfo)){isNoneName=true;this.VarTable.set(_varName3,varInfo.OutVar);}}}else if(itemExpression.Type==Syntax.MemberExpression)//"MA.MA2"(5,12,29), COLORRED;
12729
+ }}else if(itemExpression.Type==Syntax.CallExpression){if(_j10==0){if(this.Draw.IsDrawFunction(itemExpression.Callee.Name)){_draw3=itemExpression.Draw;_draw3.Name=itemExpression.Callee.Name;}else{var _varValue3=itemExpression.Out;_varName3='__temp_sc_'+itemExpression.Callee.Name+'_'+i+'__';isNoneName=true;this.VarTable.set(_varName3,_varValue3);}}else{if(itemExpression.Callee.Name=="RGB"||itemExpression.Callee.Name=="RGBA"){_color=itemExpression.Out;}else if(itemExpression.Callee.Name=="UPCOLOR"){upColor=itemExpression.Out;}else if(itemExpression.Callee.Name=="DOWNCOLOR"){downColor=itemExpression.Out;}else if(itemExpression.Callee.Name=="CSSFONT"){font=itemExpression.Out;}else if(itemExpression.Callee.Name=="STICKTYPE"){stickType=itemExpression.Out;}else if(itemExpression.Callee.Name=="XMOVE"){xOffset=itemExpression.Out;}else if(itemExpression.Callee.Name=="YMOVE"){yOffset=itemExpression.Out;}else if(itemExpression.Callee.Name=="LINEDASH"){if(IFrameSplitOperator.IsNonEmptyArray(itemExpression.Out))lineDash=itemExpression.Out.slice();}else if(itemExpression.Callee.Name=="FIRSTDRAW"){if(itemExpression.Out===0)isFirstDraw=false;else if(itemExpression.Out===1)isFirstDraw=true;}else if(itemExpression.Callee.Name=="SOUND"){var event=this.GetSoundEvent();if(event){}_varName3=null;}else if(itemExpression.Callee.Name=="ICON"){var drawCond=this.VarTable.get(_varName3);if(drawCond){_draw3=this.GetOutIconData(drawCond,itemExpression.Draw);if(_draw3)_draw3.Name=itemExpression.Callee.Name;}_varName3=null;}else if(itemExpression.Callee.Name=="BACKGROUND"){bgConfig=itemExpression.Draw;_varName3=null;}else if(itemExpression.Callee.Name=="CKLINE"){vLineConfig=itemExpression.Draw;_varName3=null;}else if(itemExpression.Callee.Name=="KLINETYPE"){klineType=itemExpression.Out;}}}else if(itemExpression.Type==Syntax.BinaryExpression){if(_j10==0){_varName3="__temp_sb_"+i+"__";var _aryValue=itemExpression.Out;isNoneName=true;this.VarTable.set(_varName3,_aryValue);}}else if(itemExpression.Type==Syntax.UnaryExpression){if(_j10==0){_varName3="__temp_su_"+i+"__";var varInfo={};if(this.ReadUnaryExpression(itemExpression,varInfo)){isNoneName=true;this.VarTable.set(_varName3,varInfo.OutVar);}}}else if(itemExpression.Type==Syntax.MemberExpression)//"MA.MA2"(5,12,29), COLORRED;
12730
12730
  {if(_j10==0){var outVar=this.ReadMemberVariable(itemExpression);if(outVar){if(!Array.isArray(outVar))varValue=this.SingleDataToArrayData(outVar);isNoneName=true;_varName3="__temp_di_"+i+"__";this.VarTable.set(_varName3,outVar);//把常量放到变量表里
12731
12731
  }}}}if(pointDot&&_varName3)//圆点
12732
- {var _outVar7=this.VarTable.get(_varName3);if(!Array.isArray(_outVar7))_outVar7=this.SingleDataToArrayData(_outVar7);var _value5={Name:_varName3,Data:_outVar7,Radius:g_JSChartResource.POINTDOT.Radius,Type:3};if(color)_value5.Color=color;if(lineWidth)_value5.LineWidth=lineWidth;this.OutVarTable.push(_value5);}else if(circleDot&&_varName3)//圆点
12733
- {var _outVar8=this.VarTable.get(_varName3);if(!Array.isArray(_outVar8))_outVar8=this.SingleDataToArrayData(_outVar8);var _value6={Name:_varName3,Data:_outVar8,Radius:g_JSChartResource.CIRCLEDOT.Radius,Type:3};if(color)_value6.Color=color;if(lineWidth)_value6.LineWidth=lineWidth;this.OutVarTable.push(_value6);}else if(upDownDot&&_varName3)//彩色点
12734
- {var _outVar9=this.VarTable.get(_varName3);if(!Array.isArray(_outVar9))_outVar9=this.SingleDataToArrayData(_outVar9);var _value7={Name:_varName3,Data:_outVar9,Radius:g_JSChartResource.CIRCLEDOT.Radius,Type:3,UpDownDot:true};if(color)_value7.Color=color;if(upColor)_value7.UpColor=upColor;if(downColor)_value7.DownColor=downColor;if(lineWidth)_value7.LineWidth=lineWidth;this.OutVarTable.push(_value7);}else if(lineStick&&_varName3)//LINESTICK 同时画出柱状线和指标线
12735
- {var _outVar10=this.VarTable.get(_varName3);var _value8={Name:_varName3,Data:_outVar10,Type:4};if(color)_value8.Color=color;if(lineWidth)_value8.LineWidth=lineWidth;this.OutVarTable.push(_value8);}else if(stick&&_varName3)//STICK 画柱状线
12736
- {var _outVar11=this.VarTable.get(_varName3);var _value9={Name:_varName3,Data:_outVar11,Type:5};if(color)_value9.Color=color;if(lineWidth)_value9.LineWidth=lineWidth;this.OutVarTable.push(_value9);}else if(volStick&&_varName3)//VOLSTICK 画彩色柱状线
12737
- {var _outVar12=this.VarTable.get(_varName3);var _value10={Name:_varName3,Data:_outVar12,Type:6};if(color)_value10.Color=color;if(upColor)_value10.UpColor=upColor;if(downColor)_value10.DownColor=downColor;if(lineWidth)_value10.LineWidth=lineWidth;if(IFrameSplitOperator.IsNumber(stickType))_value10.StickType=stickType;this.OutVarTable.push(_value10);}else if(lineArea&&_varName3)//LINEAREA 面积
12738
- {var _outVar13=this.VarTable.get(_varName3);var _value11={Name:_varName3,Data:_outVar13,Type:9};if(color)_value11.Color=color;if(upColor)_value11.UpColor=upColor;if(downColor)_value11.DownColor=downColor;if(lineWidth)_value11.LineWidth=lineWidth;this.OutVarTable.push(_value11);}else if(colorStick&&_varName3)//CYW: SUM(VAR4,10)/10000, COLORSTICK; 画上下柱子
12739
- {var _outVar14=this.VarTable.get(_varName3);var _value12={Name:_varName3,Data:_outVar14,Color:color,Type:2};if(lineWidth)_value12.LineWidth=lineWidth;if(color)_value12.Color=color;if(upColor)_value12.UpColor=upColor;if(downColor)_value12.DownColor=downColor;this.OutVarTable.push(_value12);}else if(_varName3&&color&&!_draw3){var _outVar15=this.VarTable.get(_varName3);if(!Array.isArray(_outVar15))_outVar15=this.SingleDataToArrayData(_outVar15);var _value13={Name:_varName3,Data:_outVar15,Color:color,Type:0};if(lineWidth)_value13.LineWidth=lineWidth;if(isShow==false)_value13.IsShow=false;if(isExData==true)_value13.IsExData=true;if(isDotLine==true)_value13.IsDotLine=true;if(IFrameSplitOperator.IsNonEmptyArray(lineDash))_value13.LineDash=lineDash;if(isOverlayLine==true)_value13.IsOverlayLine=true;if(isSingleLine==true)_value13.IsSingleLine=true;if(isNoneName==true)_value13.NoneName=true;if(isShowTitle==false)_value13.IsShowTitle=false;if(stepLine==true)_value13.Type=7;this.OutVarTable.push(_value13);}else if(_draw3)//画图函数
12740
- {var outVar={Name:_draw3.Name,Draw:_draw3,Type:1};if(color)outVar.Color=color;if(isDotLine==true)outVar.IsDotLine=true;if(IFrameSplitOperator.IsNonEmptyArray(lineDash))outVar.LineDash=lineDash;if(lineWidth)outVar.LineWidth=lineWidth;if(isDrawAbove)outVar.IsDrawAbove=true;if(isDrawCenter)outVar.IsDrawCenter=true;if(isDrawBelow)outVar.IsDrawBelow=true;if(drawAlign>=0)outVar.DrawAlign=drawAlign;if(drawVAlign>=0)outVar.DrawVAlign=drawVAlign;if(fontSize>0)outVar.DrawFontSize=fontSize;if(font)outVar.Font=font;if(bgConfig)outVar.Background=bgConfig;if(vLineConfig)outVar.VerticalLine=vLineConfig;if(IFrameSplitOperator.IsNumber(xOffset))outVar.XOffset=xOffset;if(IFrameSplitOperator.IsNumber(yOffset))outVar.YOffset=yOffset;if(IFrameSplitOperator.IsBool(isFirstDraw))outVar.IsFirstDraw=isFirstDraw;if(IFrameSplitOperator.IsNumber(klineType))outVar.KLineType=klineType;this.OutVarTable.push(outVar);}else if(_varName3){var _outVar16=this.VarTable.get(_varName3);var _value14={Name:_varName3,Data:_outVar16,Type:0};if(color)_value14.Color=color;if(lineWidth)_value14.LineWidth=lineWidth;if(isShow==false)_value14.IsShow=false;if(isExData==true)_value14.IsExData=true;if(isDotLine==true)_value14.IsDotLine=true;if(IFrameSplitOperator.IsNonEmptyArray(lineDash))_value14.LineDash=lineDash;if(isOverlayLine==true)_value14.IsOverlayLine=true;if(isSingleLine==true)_value14.IsSingleLine=true;if(isShowTitle==false)_value14.IsShowTitle=false;if(stepLine==true)_value14.Type=7;this.OutVarTable.push(_value14);}}}};this.ReadUnaryExpression=function(item,varInfo){var argument=item.Argument;var outVar=null;if(argument.Type==Syntax.Literal){outVar=argument.Value;if(!Array.isArray(outVar))outVar=this.SingleDataToArrayData(outVar);}else if(argument.Type==Syntax.Identifier){var varName=argument.Name;outVar=this.ReadVariable(varName,item.Expression);if(!Array.isArray(outVar))outVar=this.SingleDataToArrayData(outVar);}else if(argument.Type==Syntax.BinaryExpression){outVar=argument.Out;if(!Array.isArray(outVar))outVar=this.SingleDataToArrayData(outVar);}else if(argument.Type==Syntax.CallExpression){var callItem=argument;if(this.Draw.IsDrawFunction(callItem.Callee.Name)){return false;}else if(callItem.Callee.Name==="IFC"&&callItem.Draw){return false;}else{outVar=callItem.Out;if(!Array.isArray(outVar))outVar=this.SingleDataToArrayData(outVar);}}else{return false;}if(item.Operator=='-'){if(outVar)outVar=this.Algorithm.Subtract(0,outVar);}varInfo.OutVar=outVar;return true;};this.GetOutIconData=function(cond,iconDraw){if(Array.isArray(cond)){for(var i=0;i<cond.length&&i<iconDraw.DrawData.length;++i){var item=cond[i];if(item<=0)iconDraw.DrawData[i]=null;}return iconDraw;}if(cond)return iconDraw;return null;};this.GetSoundEvent=function(){if(!this.GetEventCallback)return null;return this.GetEventCallback(JSCHART_EVENT_ID.ON_PLAY_SOUND);};this.Run=function(){try{var data=this.RunAST();//执行脚本
12732
+ {var _outVar7=this.VarTable.get(_varName3);if(!Array.isArray(_outVar7))_outVar7=this.SingleDataToArrayData(_outVar7);var _value5={Name:_varName3,Data:_outVar7,Radius:g_JSChartResource.POINTDOT.Radius,Type:3};if(_color)_value5.Color=_color;if(lineWidth)_value5.LineWidth=lineWidth;this.OutVarTable.push(_value5);}else if(circleDot&&_varName3)//圆点
12733
+ {var _outVar8=this.VarTable.get(_varName3);if(!Array.isArray(_outVar8))_outVar8=this.SingleDataToArrayData(_outVar8);var _value6={Name:_varName3,Data:_outVar8,Radius:g_JSChartResource.CIRCLEDOT.Radius,Type:3};if(_color)_value6.Color=_color;if(lineWidth)_value6.LineWidth=lineWidth;this.OutVarTable.push(_value6);}else if(upDownDot&&_varName3)//彩色点
12734
+ {var _outVar9=this.VarTable.get(_varName3);if(!Array.isArray(_outVar9))_outVar9=this.SingleDataToArrayData(_outVar9);var _value7={Name:_varName3,Data:_outVar9,Radius:g_JSChartResource.CIRCLEDOT.Radius,Type:3,UpDownDot:true};if(_color)_value7.Color=_color;if(upColor)_value7.UpColor=upColor;if(downColor)_value7.DownColor=downColor;if(lineWidth)_value7.LineWidth=lineWidth;this.OutVarTable.push(_value7);}else if(lineStick&&_varName3)//LINESTICK 同时画出柱状线和指标线
12735
+ {var _outVar10=this.VarTable.get(_varName3);var _value8={Name:_varName3,Data:_outVar10,Type:4};if(_color)_value8.Color=_color;if(lineWidth)_value8.LineWidth=lineWidth;this.OutVarTable.push(_value8);}else if(stick&&_varName3)//STICK 画柱状线
12736
+ {var _outVar11=this.VarTable.get(_varName3);var _value9={Name:_varName3,Data:_outVar11,Type:5};if(_color)_value9.Color=_color;if(lineWidth)_value9.LineWidth=lineWidth;this.OutVarTable.push(_value9);}else if(volStick&&_varName3)//VOLSTICK 画彩色柱状线
12737
+ {var _outVar12=this.VarTable.get(_varName3);var _value10={Name:_varName3,Data:_outVar12,Type:6};if(_color)_value10.Color=_color;if(upColor)_value10.UpColor=upColor;if(downColor)_value10.DownColor=downColor;if(lineWidth)_value10.LineWidth=lineWidth;if(IFrameSplitOperator.IsNumber(stickType))_value10.StickType=stickType;this.OutVarTable.push(_value10);}else if(lineArea&&_varName3)//LINEAREA 面积
12738
+ {var _outVar13=this.VarTable.get(_varName3);var _value11={Name:_varName3,Data:_outVar13,Type:9};if(_color)_value11.Color=_color;if(upColor)_value11.UpColor=upColor;if(downColor)_value11.DownColor=downColor;if(lineWidth)_value11.LineWidth=lineWidth;this.OutVarTable.push(_value11);}else if(colorStick&&_varName3)//CYW: SUM(VAR4,10)/10000, COLORSTICK; 画上下柱子
12739
+ {var _outVar14=this.VarTable.get(_varName3);var _value12={Name:_varName3,Data:_outVar14,Color:_color,Type:2};if(lineWidth)_value12.LineWidth=lineWidth;if(_color)_value12.Color=_color;if(upColor)_value12.UpColor=upColor;if(downColor)_value12.DownColor=downColor;this.OutVarTable.push(_value12);}else if(_varName3&&_color&&!_draw3){var _outVar15=this.VarTable.get(_varName3);if(!Array.isArray(_outVar15))_outVar15=this.SingleDataToArrayData(_outVar15);var _value13={Name:_varName3,Data:_outVar15,Color:_color,Type:0};if(lineWidth)_value13.LineWidth=lineWidth;if(isShow==false)_value13.IsShow=false;if(isExData==true)_value13.IsExData=true;if(isDotLine==true)_value13.IsDotLine=true;if(IFrameSplitOperator.IsNonEmptyArray(lineDash))_value13.LineDash=lineDash;if(isOverlayLine==true)_value13.IsOverlayLine=true;if(isSingleLine==true)_value13.IsSingleLine=true;if(isNoneName==true)_value13.NoneName=true;if(isShowTitle==false)_value13.IsShowTitle=false;if(stepLine==true)_value13.Type=7;this.OutVarTable.push(_value13);}else if(_draw3)//画图函数
12740
+ {var outVar={Name:_draw3.Name,Draw:_draw3,Type:1};if(_color)outVar.Color=_color;if(isDotLine==true)outVar.IsDotLine=true;if(IFrameSplitOperator.IsNonEmptyArray(lineDash))outVar.LineDash=lineDash;if(lineWidth)outVar.LineWidth=lineWidth;if(isDrawAbove)outVar.IsDrawAbove=true;if(isDrawCenter)outVar.IsDrawCenter=true;if(isDrawBelow)outVar.IsDrawBelow=true;if(drawAlign>=0)outVar.DrawAlign=drawAlign;if(drawVAlign>=0)outVar.DrawVAlign=drawVAlign;if(fontSize>0)outVar.DrawFontSize=fontSize;if(font)outVar.Font=font;if(bgConfig)outVar.Background=bgConfig;if(vLineConfig)outVar.VerticalLine=vLineConfig;if(IFrameSplitOperator.IsNumber(xOffset))outVar.XOffset=xOffset;if(IFrameSplitOperator.IsNumber(yOffset))outVar.YOffset=yOffset;if(IFrameSplitOperator.IsBool(isFirstDraw))outVar.IsFirstDraw=isFirstDraw;if(IFrameSplitOperator.IsNumber(klineType))outVar.KLineType=klineType;this.OutVarTable.push(outVar);}else if(_varName3){var _outVar16=this.VarTable.get(_varName3);var _value14={Name:_varName3,Data:_outVar16,Type:0};if(_color)_value14.Color=_color;if(lineWidth)_value14.LineWidth=lineWidth;if(isShow==false)_value14.IsShow=false;if(isExData==true)_value14.IsExData=true;if(isDotLine==true)_value14.IsDotLine=true;if(IFrameSplitOperator.IsNonEmptyArray(lineDash))_value14.LineDash=lineDash;if(isOverlayLine==true)_value14.IsOverlayLine=true;if(isSingleLine==true)_value14.IsSingleLine=true;if(isShowTitle==false)_value14.IsShowTitle=false;if(stepLine==true)_value14.Type=7;this.OutVarTable.push(_value14);}}}};this.ReadUnaryExpression=function(item,varInfo){var argument=item.Argument;var outVar=null;if(argument.Type==Syntax.Literal){outVar=argument.Value;if(!Array.isArray(outVar))outVar=this.SingleDataToArrayData(outVar);}else if(argument.Type==Syntax.Identifier){var varName=argument.Name;outVar=this.ReadVariable(varName,item.Expression);if(!Array.isArray(outVar))outVar=this.SingleDataToArrayData(outVar);}else if(argument.Type==Syntax.BinaryExpression){outVar=argument.Out;if(!Array.isArray(outVar))outVar=this.SingleDataToArrayData(outVar);}else if(argument.Type==Syntax.CallExpression){var callItem=argument;if(this.Draw.IsDrawFunction(callItem.Callee.Name)){return false;}else if(callItem.Callee.Name==="IFC"&&callItem.Draw){return false;}else{outVar=callItem.Out;if(!Array.isArray(outVar))outVar=this.SingleDataToArrayData(outVar);}}else{return false;}if(item.Operator=='-'){if(outVar)outVar=this.Algorithm.Subtract(0,outVar);}varInfo.OutVar=outVar;return true;};this.GetOutIconData=function(cond,iconDraw){if(Array.isArray(cond)){for(var i=0;i<cond.length&&i<iconDraw.DrawData.length;++i){var item=cond[i];if(item<=0)iconDraw.DrawData[i]=null;}return iconDraw;}if(cond)return iconDraw;return null;};this.GetSoundEvent=function(){if(!this.GetEventCallback)return null;return this.GetEventCallback(JSCHART_EVENT_ID.ON_PLAY_SOUND);};this.Run=function(){try{var data=this.RunAST();//执行脚本
12741
12741
  JSConsole.Complier.Log('[JSComplier.Run] execute finish',data);if(this.IndexCtrl)this.IndexCtrl.Status=0;if(this.UpdateUICallback){JSConsole.Complier.Log('[JSComplier.Run] invoke UpdateUICallback.');if(this.CallbackParam&&this.CallbackParam.Job&&this.CallbackParam.Job.ID==JS_EXECUTE_JOB_ID.JOB_EXECUTE_INDEX){this.UpdateUICallback(data,this.CallbackParam,this.SymbolData);}else{if(this.CallbackParam&&this.CallbackParam.Self&&this.CallbackParam.Self.ClassName==='ScriptIndexConsole')this.CallbackParam.JSExecute=this;if(this.IsUsePageData==true)this.CallbackParam.Self.IsUsePageData=true;this.UpdateUICallback(data,this.CallbackParam);}}}catch(error){JSConsole.Complier.Log(error);if(error.Job){JSConsole.Complier.Log('[JSComplier.Run] download job and reexectue',error.Job);this.JobList.push(error.Job);this.JobList.push({ID:JS_EXECUTE_JOB_ID.JOB_RUN_SCRIPT});this.Execute();}else if(this.ErrorCallback){if(this.IndexCtrl)this.IndexCtrl.Status=0;this.ErrorCallback(error,this.CallbackParam);}}};this.DebugRun_End=function(){var data=this.OutVarTable;JSConsole.Complier.Log('[JSComplier.DebugRun_End] execute finish',data);if(this.IndexCtrl)this.IndexCtrl.Status=0;if(this.UpdateUICallback){JSConsole.Complier.Log('[JSComplier.DebugRun_End] invoke UpdateUICallback.');if(this.CallbackParam&&this.CallbackParam.Job&&this.CallbackParam.Job.ID==JS_EXECUTE_JOB_ID.JOB_EXECUTE_INDEX){this.UpdateUICallback(data,this.CallbackParam,this.SymbolData);}else{if(this.CallbackParam&&this.CallbackParam.Self&&this.CallbackParam.Self.ClassName==='ScriptIndexConsole')this.CallbackParam.JSExecute=this;if(this.IsUsePageData==true)this.CallbackParam.Self.IsUsePageData=true;this.UpdateUICallback(data,this.CallbackParam);}}};this.DebugRun_Next=function(debugCtrl){var _this57=this;if(debugCtrl.ExeLine<debugCtrl.LineCount){var item=this.AST.Body[debugCtrl.ExeLine];this.RunASTNode(item);++debugCtrl.ExeLine;this.DebugFilter(debugCtrl,function(){_this57.DebugRun_Next(debugCtrl);});}else{this.DebugRun_End();debugCtrl.Status=2;this.DebugFilter(debugCtrl,null);}};//debug模式
12742
12742
  this.DebugRun=function(){var _this58=this;try{if(!this.AST)this.ThrowError();if(!this.AST.Body)this.ThrowError();var debugCtrl={LineCount:this.AST.Body.length,ExeLine:0,Self:this,Status:1};this.DebugFilter(debugCtrl,function(){_this58.DebugRun_Next(debugCtrl);});}catch(error){if(this.ErrorCallback){if(this.IndexCtrl)this.IndexCtrl.Status=0;this.ErrorCallback(error,this.CallbackParam);}}};this.VisitNode=function(node){switch(node.Type){case Syntax.SequenceExpression:this.VisitSequenceExpression(node);break;case Syntax.ExpressionStatement:this.VisitNode(node.Expression);break;case Syntax.AssignmentExpression:this.VisitAssignmentExpression(node);break;case Syntax.BinaryExpression:case Syntax.LogicalExpression:this.VisitBinaryExpression(node);break;case Syntax.CallExpression:this.VisitCallExpression(node);break;case Syntax.UnaryExpression:this.VisitUnaryExpression(node);break;}};this.VisitUnaryExpression=function(node){if(node.Operator=='-'){var tempValue=this.GetNodeValueEx(node.Argument);var value=this.Algorithm.Subtract(0,tempValue);}else{var value=node.Argument.Value;}return value;};this.VisitSequenceExpression=function(node){for(var _i129 in node.Expression){var _item17=node.Expression[_i129];this.VisitNode(_item17);}};this.GetDynamicScriptIndex=function(node,args){var dynamicName=node.Callee.Value;var aryValue=dynamicName.split(".");if(aryValue.length!=2){this.ThrowUnexpectedNode(node,'\u8C03\u7528\u6307\u6807\u683C\u5F0F\''+dynamicName+'\'\u9519\u8BEF');}var name=aryValue[0];var outName=aryValue[1];var period=null;var pos=outName.indexOf('#');if(pos!=-1){period=outName.slice(pos+1);//周期
12743
12743
  outName=outName.slice(0,pos);}var strValue="";for(var i=0;i<args.length;++i){var value=args[i];if(strValue.length>0)strValue+=",";strValue+=''+value;}var strArgs='('+strValue+')';var key=outName+'#'+strArgs;if(period)key+='#'+period;if(!this.VarTable.has(name))return null;var indexData=this.VarTable.get(name);var value=indexData[key];return value;};//函数调用
@@ -12789,22 +12789,22 @@ if(item.Type==Syntax.ExpressionStatement&&item.Expression){if(item.Expression.Ty
12789
12789
  {var _outVar22=item.Expression.Value;if(IFrameSplitOperator.IsString(_outVar22)&&_outVar22.indexOf("$")>0)_outVar22=this.GetOtherSymbolExplain({Literal:_outVar22},item);varName="__temp_li_"+i+"__";var type=0;this.OutVarTable.push({Name:varName,Data:'\u8F93\u51FA: '+_outVar22,Type:0,NoneName:true});}else if(item.Expression.Type==Syntax.BinaryExpression)// CLOSE+OPEN;
12790
12790
  {var varName="__temp_b_"+i+"__";var _outVar23=item.Expression.Out;this.OutVarTable.push({Name:varName,Data:'\u8F93\u51FA: '+_outVar23,Type:0,NoneName:true});}else if(item.Expression.Type==Syntax.LogicalExpression)//逻辑语句 如 T1 AND T2
12791
12791
  {var varName="__temp_l_"+i+"__";var _outVar24=item.Expression.Out;this.OutVarTable.push({Name:varName,Data:'\u8F93\u51FA: '+_outVar24,Type:0,NoneName:true});}else if(item.Expression.Type==Syntax.UnaryExpression)//一元运算 如-C, -7, -(C+10)
12792
- {var varName="__temp_l_"+i+"__";var argument=item.Expression.Argument;var _outVar25=null;if(argument.Type==Syntax.Literal){_outVar25=argument.Value;}else if(argument.Type==Syntax.Identifier){var _varName7=argument.Name;_outVar25=this.ReadVariable(_varName7,item.Expression);}else if(argument.Type==Syntax.BinaryExpression){_outVar25=argument.Out;}if(item.Expression.Operator=='-'){_outVar25='-'+_outVar25;}this.OutVarTable.push({Name:varName,Data:'\u8F93\u51FA: '+_outVar25,Type:0,NoneName:true});}else if(item.Expression.Type==Syntax.SequenceExpression){var _varName8=void 0;var _drawName=void 0;var draw=void 0;var color=void 0;var lineWidth=void 0;var colorStick=false;var pointDot=false;var circleDot=false;var lineStick=false;var stick=false;var volStick=false;var isShow=true;var isExData=false;var isDotLine=false;var isOverlayLine=false;//叠加线
12792
+ {var varName="__temp_l_"+i+"__";var argument=item.Expression.Argument;var _outVar25=null;if(argument.Type==Syntax.Literal){_outVar25=argument.Value;}else if(argument.Type==Syntax.Identifier){var _varName7=argument.Name;_outVar25=this.ReadVariable(_varName7,item.Expression);}else if(argument.Type==Syntax.BinaryExpression){_outVar25=argument.Out;}if(item.Expression.Operator=='-'){_outVar25='-'+_outVar25;}this.OutVarTable.push({Name:varName,Data:'\u8F93\u51FA: '+_outVar25,Type:0,NoneName:true});}else if(item.Expression.Type==Syntax.SequenceExpression){var _varName8=void 0;var _drawName=void 0;var draw=void 0;var _color2=void 0;var lineWidth=void 0;var colorStick=false;var pointDot=false;var circleDot=false;var lineStick=false;var stick=false;var volStick=false;var isShow=true;var isExData=false;var isDotLine=false;var isOverlayLine=false;//叠加线
12793
12793
  var isNoneName=false;var fontSize=-1;var drawAlign=-1,drawVAlign=-1;//显示在位置之上,对于DRAWTEXT和DRAWNUMBER等函数有用,放在语句的最后面(不能与LINETHICK等函数共用),比如:
12794
12794
  //DRAWNUMBER(CLOSE>OPEN,HIGH,CLOSE),DRAWABOVE;
12795
12795
  var isDrawAbove=false;for(var _j11 in item.Expression.Expression){var itemExpression=item.Expression.Expression[_j11];if(itemExpression.Type==Syntax.AssignmentExpression&&itemExpression.Operator==':'&&itemExpression.Left){_varName8=itemExpression.Left.Name;var _varValue4=this.VarTable.get(_varName8);this.VarTable.set(_varName8,this.ConvertToShortValue(_varValue4));//把常量放到变量表里
12796
- }else if(itemExpression.Type==Syntax.Identifier){var _value16=itemExpression.Name;if(_value16==='COLORSTICK')colorStick=true;else if(_value16==='POINTDOT')pointDot=true;else if(_value16==='CIRCLEDOT')circleDot=true;else if(_value16==='DOTLINE')isDotLine=true;else if(_value16==='LINESTICK')lineStick=true;else if(_value16==='STICK')stick=true;else if(_value16==='VOLSTICK')volStick=true;else if(_value16==="DRAWABOVE")isDrawAbove=true;else if(_value16.indexOf('COLOR')==0)color=_value16;else if(_value16.indexOf('LINETHICK')==0)lineWidth=_value16;else if(_value16=="ALIGN0")drawAlign=0;else if(_value16=="ALIGN1")drawAlign=1;else if(_value16=="ALIGN2")drawAlign=2;else if(_value16=="VALIGN0")drawVAlign=0;else if(_value16=="VALIGN1")drawVAlign=1;else if(_value16=="VALIGN2")drawVAlign=2;else if(_value16.indexOf('NODRAW')==0)isShow=false;else if(_value16.indexOf('EXDATA')==0)isExData=true;//扩展数据, 不显示再图形里面
12796
+ }else if(itemExpression.Type==Syntax.Identifier){var _value16=itemExpression.Name;if(_value16==='COLORSTICK')colorStick=true;else if(_value16==='POINTDOT')pointDot=true;else if(_value16==='CIRCLEDOT')circleDot=true;else if(_value16==='DOTLINE')isDotLine=true;else if(_value16==='LINESTICK')lineStick=true;else if(_value16==='STICK')stick=true;else if(_value16==='VOLSTICK')volStick=true;else if(_value16==="DRAWABOVE")isDrawAbove=true;else if(_value16.indexOf('COLOR')==0)_color2=_value16;else if(_value16.indexOf('LINETHICK')==0)lineWidth=_value16;else if(_value16=="ALIGN0")drawAlign=0;else if(_value16=="ALIGN1")drawAlign=1;else if(_value16=="ALIGN2")drawAlign=2;else if(_value16=="VALIGN0")drawVAlign=0;else if(_value16=="VALIGN1")drawVAlign=1;else if(_value16=="VALIGN2")drawVAlign=2;else if(_value16.indexOf('NODRAW')==0)isShow=false;else if(_value16.indexOf('EXDATA')==0)isExData=true;//扩展数据, 不显示再图形里面
12797
12797
  else if(_value16.indexOf('LINEOVERLAY')==0)isOverlayLine=true;else if(_value16.indexOf("FONTSIZE")==0){var strFontSize=_value16.replace("FONTSIZE","");fontSize=parseInt(strFontSize);}else{_varName8=itemExpression.Name;var _varValue5=this.ReadVariable(_varName8,itemExpression);_varName8="__temp_si_"+i+"__";isNoneName=true;this.VarTable.set(_varName8,this.ConvertToShortValue(_varValue5));//放到变量表里
12798
12798
  }}else if(itemExpression.Type==Syntax.Literal)//常量
12799
12799
  {var aryValue=itemExpression.Value;_varName8=itemExpression.Value.toString();isNoneName=true;this.VarTable.set(_varName8,aryValue);//把常量放到变量表里
12800
- }else if(itemExpression.Type==Syntax.CallExpression){if(_j11==0){if(this.IsDrawFunction(itemExpression.Callee.Name)){draw=itemExpression.Out;_drawName=itemExpression.Callee.Name;}else{var _varValue6=itemExpression.Out;_varName8='__temp_sc_'+itemExpression.Callee.Name+'_'+i+'__';isNoneName=true;this.VarTable.set(_varName8,_varValue6);}}}else if(itemExpression.Type==Syntax.BinaryExpression){_varName8="__temp_sb_"+i+"__";var _aryValue2=itemExpression.Out;isNoneName=true;this.VarTable.set(_varName8,_aryValue2);}else if(itemExpression.Type==Syntax.UnaryExpression){_varName8="__temp_sb_"+i+"__";var argument=itemExpression.Argument;var _aryValue3=null;if(argument.Type==Syntax.Literal){_aryValue3=argument.Value;}else if(argument.Type==Syntax.Identifier){var _varName9=argument.Name;_aryValue3=this.ReadVariable(_varName9,item.Expression);}else if(argument.Type==Syntax.BinaryExpression){_aryValue3=argument.Out;}if(itemExpression.Operator=='-'){_aryValue3='-'+_aryValue3;}isNoneName=true;this.VarTable.set(_varName8,_aryValue3);}}var outValue;if(draw)outValue='\u8F93\u51FA: '+draw;else if(isNoneName)outValue='\u8F93\u51FA: '+this.VarTable.get(_varName8);else outValue='\u8F93\u51FA'+_varName8+': '+this.VarTable.get(_varName8);if(color)outValue+=',\u989C\u8272'+this.GetColorExplain(color);if(lineWidth)outValue+=',\u7EBF\u6BB5\u7C97\u7EC6'+this.GetLineWidthExplain(lineWidth);if(isShow==false)outValue+=",不显示";if(isDotLine==true)outValue+=",画虚线";if(isDrawAbove==true)outValue+=',显示在位置之上';if(pointDot&&_varName8)//圆点
12800
+ }else if(itemExpression.Type==Syntax.CallExpression){if(_j11==0){if(this.IsDrawFunction(itemExpression.Callee.Name)){draw=itemExpression.Out;_drawName=itemExpression.Callee.Name;}else{var _varValue6=itemExpression.Out;_varName8='__temp_sc_'+itemExpression.Callee.Name+'_'+i+'__';isNoneName=true;this.VarTable.set(_varName8,_varValue6);}}}else if(itemExpression.Type==Syntax.BinaryExpression){_varName8="__temp_sb_"+i+"__";var _aryValue2=itemExpression.Out;isNoneName=true;this.VarTable.set(_varName8,_aryValue2);}else if(itemExpression.Type==Syntax.UnaryExpression){_varName8="__temp_sb_"+i+"__";var argument=itemExpression.Argument;var _aryValue3=null;if(argument.Type==Syntax.Literal){_aryValue3=argument.Value;}else if(argument.Type==Syntax.Identifier){var _varName9=argument.Name;_aryValue3=this.ReadVariable(_varName9,item.Expression);}else if(argument.Type==Syntax.BinaryExpression){_aryValue3=argument.Out;}if(itemExpression.Operator=='-'){_aryValue3='-'+_aryValue3;}isNoneName=true;this.VarTable.set(_varName8,_aryValue3);}}var outValue;if(draw)outValue='\u8F93\u51FA: '+draw;else if(isNoneName)outValue='\u8F93\u51FA: '+this.VarTable.get(_varName8);else outValue='\u8F93\u51FA'+_varName8+': '+this.VarTable.get(_varName8);if(_color2)outValue+=',\u989C\u8272'+this.GetColorExplain(_color2);if(lineWidth)outValue+=',\u7EBF\u6BB5\u7C97\u7EC6'+this.GetLineWidthExplain(lineWidth);if(isShow==false)outValue+=",不显示";if(isDotLine==true)outValue+=",画虚线";if(isDrawAbove==true)outValue+=',显示在位置之上';if(pointDot&&_varName8)//圆点
12801
12801
  {outValue+=",画小圆点线";var _value17={Name:_varName8,Draw:outValue,Radius:g_JSChartResource.POINTDOT.Radius,Type:3};this.OutVarTable.push(_value17);}else if(circleDot&&_varName8)//圆点
12802
12802
  {outValue+=",画小圆圈线";var _value18={Name:_varName8,Draw:outValue,Radius:g_JSChartResource.CIRCLEDOT.Radius,Type:3};this.OutVarTable.push(_value18);}else if(lineStick&&_varName8)//LINESTICK 同时画出柱状线和指标线
12803
12803
  {outValue+=",画出柱状线和指标线";var _value19={Name:_varName8,Draw:outValue,Type:4};this.OutVarTable.push(_value19);}else if(stick&&_varName8)//STICK 画柱状线
12804
12804
  {outValue+=",画柱状线";var _value20={Name:_varName8,Draw:outValue,Type:5};this.OutVarTable.push(_value20);}else if(volStick&&_varName8)//VOLSTICK 画彩色柱状线
12805
- {outValue+=",画成交量柱状线";var _value21={Name:_varName8,Draw:outValue,Type:6};this.OutVarTable.push(_value21);}else if(_varName8&&color){var _value22={Name:_varName8,Data:outValue,Color:color,Type:0};this.OutVarTable.push(_value22);}else if(draw)//画图函数
12805
+ {outValue+=",画成交量柱状线";var _value21={Name:_varName8,Draw:outValue,Type:6};this.OutVarTable.push(_value21);}else if(_varName8&&_color2){var _value22={Name:_varName8,Data:outValue,Color:_color2,Type:0};this.OutVarTable.push(_value22);}else if(draw)//画图函数
12806
12806
  {var outVar={Name:_drawName,Draw:outValue,Type:1};this.OutVarTable.push(outVar);}else if(colorStick&&_varName8)//CYW: SUM(VAR4,10)/10000, COLORSTICK; 画上下柱子
12807
- {outValue+=",画彩色柱状线";var _value23={Name:_varName8,Draw:outValue,Color:color,Type:2};this.OutVarTable.push(_value23);}else if(_varName8){var _value24={Name:_varName8,Data:outValue,Type:0};this.OutVarTable.push(_value24);}}}}JSConsole.Complier.Log('[JSExplainer::Run]',this.VarTable);return this.OutVarTable;};this.VisitNode=function(node){switch(node.Type){case Syntax.SequenceExpression:this.VisitSequenceExpression(node);break;case Syntax.ExpressionStatement:this.VisitNode(node.Expression);break;case Syntax.AssignmentExpression:this.VisitAssignmentExpression(node);break;case Syntax.BinaryExpression:case Syntax.LogicalExpression:this.VisitBinaryExpression(node);break;case Syntax.CallExpression:this.VisitCallExpression(node);break;case Syntax.UnaryExpression:this.VisitUnaryExpression(node);break;}};this.VisitSequenceExpression=function(node){for(var _i131 in node.Expression){var _item19=node.Expression[_i131];this.VisitNode(_item19);}};this.VisitUnaryExpression=function(node){if(node.Operator=='-'){var _value25=this.GetNodeValueEx(node.Argument);return'-'+_value25;}return node.Argument.Value;};//函数调用
12807
+ {outValue+=",画彩色柱状线";var _value23={Name:_varName8,Draw:outValue,Color:_color2,Type:2};this.OutVarTable.push(_value23);}else if(_varName8){var _value24={Name:_varName8,Data:outValue,Type:0};this.OutVarTable.push(_value24);}}}}JSConsole.Complier.Log('[JSExplainer::Run]',this.VarTable);return this.OutVarTable;};this.VisitNode=function(node){switch(node.Type){case Syntax.SequenceExpression:this.VisitSequenceExpression(node);break;case Syntax.ExpressionStatement:this.VisitNode(node.Expression);break;case Syntax.AssignmentExpression:this.VisitAssignmentExpression(node);break;case Syntax.BinaryExpression:case Syntax.LogicalExpression:this.VisitBinaryExpression(node);break;case Syntax.CallExpression:this.VisitCallExpression(node);break;case Syntax.UnaryExpression:this.VisitUnaryExpression(node);break;}};this.VisitSequenceExpression=function(node){for(var _i131 in node.Expression){var _item19=node.Expression[_i131];this.VisitNode(_item19);}};this.VisitUnaryExpression=function(node){if(node.Operator=='-'){var _value25=this.GetNodeValueEx(node.Argument);return'-'+_value25;}return node.Argument.Value;};//函数调用
12808
12808
  this.VisitCallExpression=function(node){var funcName=node.Callee.Name;var args=[];for(var _i132 in node.Arguments){var _item20=node.Arguments[_i132];var _value26=void 0;if(_item20.Type==Syntax.BinaryExpression||_item20.Type==Syntax.LogicalExpression)_value26=this.VisitBinaryExpression(_item20);else if(_item20.Type==Syntax.CallExpression)_value26=this.VisitCallExpression(_item20);else _value26=this.GetNodeValue(_item20);args.push(_value26);}if(node.Callee.Type==Syntax.Literal){var dynamicName=node.Callee.Value;node.Out='\u6307\u6807\u5F15\u7528\''+dynamicName+'\'';return node.Out;}if(JS_EXECUTE_DEBUG_LOG)JSConsole.Complier.Log('[JSExplainer::VisitCallExpression]',funcName,'(',args.toString(),')');if(g_JSComplierResource.IsCustomFunction(funcName)){var functionInfo=g_JSComplierResource.CustomFunction.Data.get(funcName);if(!functionInfo.Description)node.Out='\u81EA\u5B9A\u4E49\u51FD\u6570'+funcName;else node.Out=functionInfo.Description;return node.Out;}node.Out=this.CallFunctionExplain(funcName,args,node);return node.Out;};this.FUNCTION_INFO_LIST=new _map2.default([["REF",{Name:"REF",Param:{Count:2},ToString:function ToString(args){return args[1]+'\u65E5\u524D\u7684'+args[0];}}],["REFX",{Name:"REFX",Param:{Count:2},ToString:function ToString(args){return args[1]+'\u65E5\u540E\u7684'+args[0];}}],["REFV",{Name:"REFV",Param:{Count:2},ToString:function ToString(args){return args[1]+'\u65E5\u524D\u7684(\u672A\u4F5C\u5E73\u6ED1\u5904\u7406)'+args[0];}}],["REFXV",{Name:"REFXV",Param:{Count:2},ToString:function ToString(args){return args[1]+'\u65E5\u540E\u7684(\u672A\u4F5C\u5E73\u6ED1\u5904\u7406)'+args[0];}}],["REFDATE",{Name:"REFDATE",Param:{Count:2},ToString:function ToString(args){return args[1]+'\u65E5'+args[0];}}],["COUNT",{Name:"COUNT",Param:{Count:2},ToString:function ToString(args){return'\u7EDF\u8BA1'+args[1]+'\u65E5\u4E2D\u6EE1\u8DB3'+args[0]+'\u7684\u5929\u6570';}}],["BARSLASTCOUNT",{Name:"BARSLASTCOUNT",Param:{Count:1},ToString:function ToString(args){return'\u6761\u4EF6'+args[0]+'\u8FDE\u7EED\u6210\u7ACB\u6B21\u6570';}}],["BARSCOUNT",{Name:"BARSCOUNT",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u6709\u6548\u6570\u636E\u5468\u671F\u6570';}}],["BARSLAST",{Name:"BARSLAST",Param:{Count:1},ToString:function ToString(args){return'\u4E0A\u6B21'+args[0]+'\u4E0D\u4E3A0\u8DDD\u4ECA\u5929\u6570';}}],["BARSLASTS",{Name:"BARSLASTS",Param:{Count:2},ToString:function ToString(args){return'\u5012\u6570\u7B2CN\u6B21\u6210\u7ACB\u65F6\u8DDD\u4ECA\u7684\u5468\u671F\u6570';}}],["BARSNEXT",{Name:"BARSNEXT",Param:{Count:1},ToString:function ToString(args){return'\u4E0B\u6B21'+args[0]+'\u4E0D\u4E3A0\u8DDD\u4ECA\u5929\u6570';}}],["BARSSINCEN",{Name:"BARSSINCEN",Param:{Count:2},ToString:function ToString(args){return'\u5728'+args[1]+'\u5468\u671F\u5185\u9996\u6B21'+args[0]+'\u8DDD\u4ECA\u5929\u6570';}}],["BARSSINCE",{Name:"BARSSINCE",Param:{Count:1},ToString:function ToString(args){return'\u9996\u6B21'+args[0]+'\u8DDD\u4ECA\u5929\u6570';}}],["HHV",{Name:"HHV",Param:{Count:2},ToString:function ToString(args){return args[1]+'\u65E5\u5185'+args[0]+'\u7684\u6700\u9AD8\u503C';}}],["LLV",{Name:"LLV",Param:{Count:2},ToString:function ToString(args){return args[1]+'\u65E5\u5185'+args[0]+'\u7684\u6700\u4F4E\u503C';}}],["ZTPRICE",{Name:"ZTPRICE",Param:{Count:2},ToString:function ToString(args){return'计算涨停价';}}],["DTPRICE",{Name:"DTPRICE",Param:{Count:2},ToString:function ToString(args){return'计算跌停价';}}],["BACKSET",{Name:"BACKSET",Param:{Count:2},ToString:function ToString(args){return'\u82E5'+args[0]+'\u5219\u5C06\u6700\u8FD1'+args[1]+'\u5468\u671F\u7F6E\u4E3A1';}}],["HOD",{Name:"HOD",Param:{Count:2},ToString:function ToString(args){return args[1]+'\u65E5\u5185'+args[0]+'\u7684\u9AD8\u503C\u540D\u6B21';}}],["LOD",{Name:"LOD",Param:{Count:2},ToString:function ToString(args){return args[1]+'\u65E5\u5185'+args[0]+'\u7684\u4F4E\u503C\u540D\u6B21';}}],["REVERSE",{Name:"REVERSE",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u76F8\u53CD\u6570';}}],["FILTER",{Name:"FILTER",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u8FC7\u6EE4';}}],["FILTERX",{Name:"FILTERX",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u53CD\u5411\u8FC7\u6EE4';}}],["TFILTER",{Name:"TFILTER",Param:{Count:3},ToString:function ToString(args){return'\u4FE1\u53F7\u8FC7\u6EE4(\u591A\u5934)';}}],["SUMBARS",{Name:"SUMBARS",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7D2F\u52A0\u81F3'+args[1]+'\u7684\u5929\u6570';}}],["MA",{Name:"MA",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u7B80\u5355\u79FB\u52A8\u5E73\u5747';}}],["SMA",{Name:"SMA",Param:{Count:3},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5['+args[2]+'\u65E5\u6743\u91CD]\u79FB\u52A8\u5E73\u5747';}}],["MEMA",{Name:"MEMA",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u5E73\u6ED1\u79FB\u52A8\u5E73\u5747';}}],["EMA",{Name:"EMA",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u6307\u6570\u79FB\u52A8\u5E73\u5747';}}],["EXPMA",{Name:"EXPMA",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u6307\u6570\u79FB\u52A8\u5E73\u5747';}}],["EXPMEMA",{Name:"EXPMEMA",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u6307\u6570\u5E73\u6ED1\u79FB\u52A8\u5E73\u5747';}}],["WMA",{Name:"WMA",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u52A0\u6743\u79FB\u52A8\u5E73\u5747';}}],["DMA",{Name:"DMA",Param:{Count:2},ToString:function ToString(args){return'\u4EE5'+args[1]+'\u4E3A\u6743\u91CD'+args[0]+'\u7684\u52A8\u6001\u79FB\u52A8\u5E73\u5747';}}],["XMA",{Name:"XMA",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u504F\u79FB\u79FB\u52A8\u5E73\u5747';}}],["RANGE",{Name:"RANGE",Param:{Count:3},ToString:function ToString(args){return args[0]+'\u4F4D\u4E8E'+args[1]+'\u548C'+args[2]+'\u4E4B\u95F4';}}],["CONST",{Name:"CONST",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u6700\u540E\u4E00\u65E5\u503C';}}],["TOPRANGE",{Name:"TOPRANGE",Param:{Count:1},ToString:function ToString(args){return'\u5F53\u524D\u503C\u662F\u8FD1'+args[0]+'\u5468\u671F\u7684\u6700\u5927\u503C';}}],["LOWRANGE",{Name:"LOWRANGE",Param:{Count:1},ToString:function ToString(args){return'\u5F53\u524D\u503C\u662F\u8FD1'+args[0]+'\u5468\u671F\u7684\u6700\u5C0F\u503C';}}],["FINDHIGH",{Name:"FINDHIGH",Param:{Count:4},ToString:function ToString(args){return args[0]+'\u5728'+args[1]+'\u65E5\u524D\u7684'+args[2]+'\u5929\u5185\u7B2C'+args[3]+'\u4E2A\u6700\u9AD8\u4EF7';}}],["FINDHIGHBARS",{Name:"FINDHIGHBARS",Param:{Count:4},ToString:function ToString(args){return args[0]+'\u5728'+args[1]+'\u65E5\u524D\u7684'+args[2]+'\u5929\u5185\u7B2C'+args[3]+'\u4E2A\u6700\u9AD8\u4EF7\u5230\u5F53\u524D\u5468\u671F\u7684\u5468\u671F\u6570';}}],["FINDLOW",{Name:"FINDLOW",Param:{Count:4},ToString:function ToString(args){return args[0]+'\u5728'+args[1]+'\u65E5\u524D\u7684'+args[2]+'\u5929\u5185\u7B2C'+args[3]+'\u4E2A\u6700\u4F4E\u4EF7';}}],["FINDLOWBARS",{Name:"FINDLOWBARS",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u5728'+args[1]+'\u65E5\u524D\u7684'+args[2]+'\u5929\u5185\u7B2C'+args[3]+'\u4E2A\u6700\u4F4E\u4EF7\u5230\u5F53\u524D\u5468\u671F\u7684\u5468\u671F\u6570';}}],["SUM",{Name:"SUM",Param:{Count:2},ToString:function ToString(args){return''+args[0]+args[1]+'\u65E5\u7D2F\u52A0';}}],["MULAR",{Name:"MULAR",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u548C'+args[1]+'\u65E5\u7D2F\u4E58';}}],["AMA",{Name:"AMA",Param:{Count:2},ToString:function ToString(args){return'\u4EE5'+args[1]+'\u4E3A\u6743\u91CD'+args[0]+'\u7684\u81EA\u9002\u5E94\u5747\u7EBF';}}],["TMA",{Name:"TMA",Param:{Count:3},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5['+args[2]+'\u65E5\u6743\u91CD]\u79FB\u52A8\u5E73\u5747';}}],["CROSS",{Name:"CROSS",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u4E0A\u7A7F'+args[1];}}],["LONGCROSS",{Name:"LONGCROSS",Param:{Count:3},ToString:function ToString(args){return args[0]+'\u5C0F\u4E8E'+args[1]+'\u4FDD\u6301'+args[2]+'\u4E2A\u4EA4\u6613\u65E5\u540E\u4EA4\u53C9\u4E0A\u7A7F';}}],["UPNDAY",{Name:"UPNDAY",Param:{Count:2},ToString:function ToString(args){return'\u6700\u8FD1'+args[1]+'\u65E5'+args[0]+'\u8FDE\u6DA8';}}],["DOWNNDAY",{Name:"DOWNNDAY",Param:{Count:2},ToString:function ToString(args){return'\u6700\u8FD1'+args[1]+'\u65E5'+args[0]+'\u8FDE\u8DCC';}}],["NDAY",{Name:"NDAY",Param:{Count:3},ToString:function ToString(args){return'\u6700\u8FD1'+args[2]+'\u65E5'+args[0]+'\u4E00\u76F4\u5927\u4E8E'+args[1];}}],["EXIST",{Name:"EXIST",Param:{Count:2},ToString:function ToString(args){return'\u6700\u8FD1'+args[1]+'\u65E5\u5B58\u5728'+args[0];}}],["EXISTR",{Name:"EXISTR",Param:{Count:3},ToString:function ToString(args){return'\u4ECE\u524D'+args[1]+'\u65E5\u5230\u524D'+args[2]+'\u65E5\u5B58\u5728'+args[0];}}],["EVERY",{Name:"EVERY",Param:{Count:2},ToString:function ToString(args){return'\u6700\u8FD1'+args[1]+'\u65E5\u4E00\u76F4\u5B58\u5728'+args[0];}}],["LAST",{Name:"LAST",Param:{Count:3},ToString:function ToString(args){return'\u4ECE\u524D'+args[1]+'\u65E5\u5230\u524D'+args[2]+'\u65E5\u6301\u7EED'+args[0];}}],["NOT",{Name:"NOT",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u53D6\u53CD';}}],["IF",{Name:"IF",Param:{Count:3},ToString:function ToString(args){return'\u5982\u679C'+args[0]+',\u8FD4\u56DE'+args[1]+',\u5426\u5219\u8FD4\u56DE'+args[2];}}],["IFF",{Name:"IFF",Param:{Count:3},ToString:function ToString(args){return'\u5982\u679C'+args[0]+',\u8FD4\u56DE'+args[1]+',\u5426\u5219\u8FD4\u56DE'+args[2];}}],["IFN",{Name:"IFN",Param:{Count:3},ToString:function ToString(args){return'\u5982\u679C'+args[0]+',\u8FD4\u56DE'+args[1]+',\u5426\u5219\u8FD4\u56DE'+args[2];}}],["IFC",{Name:"IFC",Param:{Count:3},ToString:function ToString(args){return'\u5982\u679C'+args[0]+',\u8FD4\u56DE'+args[1]+',\u5426\u5219\u8FD4\u56DE'+args[2];}}],["TESTSKIP",{Name:"TESTSKIP",Param:{Count:1},ToString:function ToString(args){return'\u5982\u679C\u6EE1\u8DB3\u6761\u4EF6'+args[0]+',\u516C\u5F0F\u8FD4\u56DE';}}],["VALUEWHEN",{Name:"VALUEWHEN",Param:{Count:2},ToString:function ToString(args){return'\u5982\u679C'+args[0]+',\u8FD4\u56DE'+args[1]+',\u5426\u5219\u8FD4\u56DE\u4E0A\u4E2A\u8F93\u51FA\u503C ';}}],["MAX",{Name:"MAX",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u548C'+args[1]+'\u7684\u8F83\u5927\u503C';}}],["MIN",{Name:"MIN",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u548C'+args[1]+'\u7684\u8F83\u5C0F\u503C';}}],["ACOS",{Name:"ACOS",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u53CD\u4F59\u5F26';}}],["ASIN",{Name:"ASIN",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u53CD\u6B63\u5F26';}}],["ATAN",{Name:"ATAN",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u53CD\u6B63\u5207';}}],["COS",{Name:"COS",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u4F59\u5F26';}}],["SIN",{Name:"SIN",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u6B63\u5F26';}}],["TAN",{Name:"TAN",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u6B63\u5207';}}],["EXP",{Name:"EXP",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u6307\u6570';}}],["LN",{Name:"LN",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u81EA\u7136\u5BF9\u6570';}}],["LOG",{Name:"LOG",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u5BF9\u6570';}}],["SQRT",{Name:"SQRT",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u5F00\u65B9';}}],["ABS",{Name:"ABS",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u7EDD\u5BF9\u503C';}}],["POW",{Name:"POW",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u4E58\u5E42';}}],["CEILING",{Name:"CEILING",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u5411\u4E0A\u820D\u5165';}}],["FLOOR",{Name:"FLOOR",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u5411\u4E0A\u820D\u5165';}}],["INTPART",{Name:"INTPART",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u6574\u6570\u90E8\u5206';}}],["BETWEEN",{Name:"BETWEEN",Param:{Count:3},ToString:function ToString(args){return args[0]+'\u4F4D\u4E8E'+args[1]+'\u548C'+args[2]+'\u4E4B\u95F4';}}],["FRACPART",{Name:"FRACPART",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u5C0F\u6570\u90E8\u5206';}}],["ROUND",{Name:"ROUND",Param:{Count:1},ToString:function ToString(args){return'\u5BF9'+args[0]+'(\u8FDB\u884C)\u56DB\u820D\u4E94\u5165';}}],["ROUND2",{Name:"ROUND2",Param:{Count:2},ToString:function ToString(args){return'\u5BF9'+args[0]+'(\u8FDB\u884C)\u56DB\u820D\u4E94\u5165';}}],["SIGN",{Name:"SIGN",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u7684\u7B26\u53F7';}}],["MOD",{Name:"MOD",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u5173\u4E8E'+args[1]+'\u7684\u6A21';}}],["RAND",{Name:"RAND",Param:{Count:1},ToString:function ToString(args){return'\u968F\u673A\u6B63\u6574\u6570';}}],["AVEDEV",{Name:"AVEDEV",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u5E73\u5747\u7EDD\u5BF9\u504F\u5DEE';}}],["DEVSQ",{Name:"DEVSQ",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u6570\u636E\u504F\u5DEE\u5E73\u65B9\u548C';}}],["FORCAST",{Name:"FORCAST",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u7EBF\u6027\u56DE\u5F52\u9884\u6D4B\u503C';}}],["TSMA",{Name:"TSMA",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u5728'+args[1]+'\u4E2A\u5468\u671F\u5185\u7684\u65F6\u95F4\u5E8F\u5217\u4E09\u89D2\u79FB\u52A8\u5E73\u5747';}}],["SLOPE",{Name:"SLOPE",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u7EBF\u6027\u56DE\u5F52\u659C\u7387';}}],["STD",{Name:"STD",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u4F30\u7B97\u6807\u51C6\u5DEE';}}],["STDP",{Name:"STDP",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u603B\u4F53\u6807\u51C6\u5DEE';}}],["STDDEV",{Name:"STDDEV",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u6807\u51C6\u504F\u5DEE';}}],["VAR",{Name:"VAR",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u4F30\u7B97\u6837\u672C\u65B9\u5DEE';}}],["VARP",{Name:"VARP",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u7684'+args[1]+'\u65E5\u603B\u4F53\u6837\u672C\u65B9\u5DEE';}}],["COVAR",{Name:"COVAR",Param:{Count:3},ToString:function ToString(args){return args[0]+'\u548C'+args[1]+'\u7684'+args[2]+'\u5468\u671F\u7684\u534F\u65B9\u5DEE';}}],["RELATE",{Name:"RELATE",Param:{Count:3},ToString:function ToString(args){return args[0]+'\u548C'+args[1]+'\u7684'+args[0]+'\u5468\u671F\u7684\u76F8\u5173\u7CFB\u6570';}}],["BETA",{Name:"BETA",Param:{Count:1},ToString:function ToString(args){return'\u03B2(Beta)\u7CFB\u6570';}}],["BETAEX",{Name:"BETAEX",Param:{Count:3},ToString:function ToString(args){return args[0]+'\u548C'+args[1]+'\u7684'+args[2]+'\u5468\u671F\u7684\u76F8\u5173\u653E\u5927\u7CFB\u6570';}}],["COST",{Name:"COST",Param:{Count:1},ToString:function ToString(args){return'\u83B7\u5229\u76D8\u4E3A'+args[0]+'%\u7684\u6210\u672C\u5206\u5E03';}}],["WINNER",{Name:"WINNER",Param:{Count:1},ToString:function ToString(args){return'\u4EE5'+args[0]+'\u8BA1\u7B97\u7684\u83B7\u5229\u76D8\u6BD4\u4F8B';}}],["LWINNER",{Name:"LWINNER",Param:{Count:2},ToString:function ToString(args){return'\u6700\u8FD1'+args[0]+'\u65E5\u90A3\u90E8\u5206\u6210\u672C\u4EE5'+args[1]+'\u4EF7\u683C\u5356\u51FA\u7684\u83B7\u5229\u76D8\u6BD4\u4F8B';}}],["PWINNER",{Name:"PWINNER",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u65E5\u524D\u90A3\u90E8\u5206\u6210\u672C\u4EE5'+args[1]+'\u4EF7\u683C\u5356\u51FA\u7684\u83B7\u5229\u76D8\u6BD4\u4F8B';}}],["COSTEX",{Name:"COSTEX",Param:{Count:2},ToString:function ToString(args){return'\u4F4D\u4E8E\u4EF7\u683C'+args[0]+'\u548C'+args[1]+'\u95F4\u7684\u6210\u672C';}}],["PPART",{Name:"PPART",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u65E5\u524D\u90A3\u90E8\u5206\u6210\u672C\u5360\u603B\u6210\u672C\u7684\u6BD4\u4F8B';}}],["SAR",{Name:"SAR",Param:{Count:3},ToString:function ToString(args){return'\u6B65\u957F\u4E3A'+args[1]+'\u6781\u9650\u503C\u4E3A'+args[0]+'\u7684'+args[2]+'\u65E5\u629B\u7269\u8F6C\u5411';}}],["SARTURN",{Name:"SARTURN",Param:{Count:3},ToString:function ToString(args){return'\u6B65\u957F\u4E3A'+args[1]+'\u6781\u9650\u503C\u4E3A'+args[0]+'\u7684'+args[2]+'\u65E5\u629B\u7269\u8F6C\u5411\u70B9';}}],//字符串函数
12809
12809
  ["CON2STR",{Name:"CON2STR",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u8F6C\u4E3A\u5B57\u7B26\u4E32';}}],["VAR2STR",{Name:"VAR2STR",Param:{Count:2},ToString:function ToString(args){return args[0]+'\u8F6C\u4E3A\u5B57\u7B26\u4E32';}}],["STR2CON",{Name:"STR2CON",Param:{Count:1},ToString:function ToString(args){return args[0]+'\u8F6C\u4E3A\u6570\u5B57';}}],["STRLEN",{Name:"STRLEN",Param:{Count:1},ToString:function ToString(args){return'\u5F97\u5230'+args[0]+'\u5B57\u7B26\u4E32\u957F\u5EA6';}}],["STRCAT",{Name:"STRCAT",Param:{Count:2},ToString:function ToString(args){return'\u5B57\u7B26\u4E32\u76F8\u52A0';}}],["STRCAT6",{Name:"STRCAT6",Param:{Dynamic:true},ToString:function ToString(args){return'\u5B57\u7B26\u4E32\u76F8\u52A0';}}],["VARCAT",{Name:"VARCAT",Param:{Count:2},ToString:function ToString(args){return'\u5B57\u7B26\u4E32\u76F8\u52A0';}}],["VARCAT6",{Name:"VARCAT",Param:{Dynamic:true},ToString:function ToString(args){return'\u5B57\u7B26\u4E32\u76F8\u52A0';}}],["STRSPACE",{Name:"STRSPACE",Param:{Count:1},ToString:function ToString(args){return'\u5B57\u7B26\u4E32'+args[0]+'\u52A0\u4E00\u7A7A\u683C';}}],["SUBSTR",{Name:"SUBSTR",Param:{Count:3},ToString:function ToString(args){return'\u5B57\u7B26\u4E32'+args[0]+'\u4E2D\u53D6\u4E00\u90E8\u5206';}}],["STRCMP",{Name:"STRCMP",Param:{Count:2},ToString:function ToString(args){return'\u5B57\u7B26\u4E32'+args[0]+'\u548C\u5B57\u7B26\u4E32'+args[1]+'\u6BD4\u8F83';}}],["FINDSTR",{Name:"FINDSTR",Param:{Count:2},ToString:function ToString(args){return'\u5B57\u7B26\u4E32'+args[0]+'\u4E2D\u67E5\u627E\u5B57\u7B26\u4E32'+args[1];}}],["NAMEINCLUDE",{Name:"NAMEINCLUDE",Param:{Count:1},ToString:function ToString(args){return'\u67E5\u627E\u54C1\u79CD\u540D\u79F0\u4E2D\u5305\u542B'+args[0];}}],["CODELIKE",{Name:"CODELIKE",Param:{Count:1},ToString:function ToString(args){return'\u67E5\u627E\u54C1\u79CD\u540D\u79F0\u4E2D\u5305\u542B'+args[0];}}],["INBLOCK",{Name:"AVEDEV",Param:{Count:1},ToString:function ToString(args){return'\u5C5E\u4E8E'+args[0]+'\u677F\u5757';}}],["STKINDI",{Name:"STKINDI",Param:{Dynamic:true},ToString:function ToString(args){return"指标引用";}}],["STRFORMAT",{Name:"STRFORMAT",Param:{Dynamic:true},ToString:function ToString(args){return'\u683C\u5F0F\u5316'+args[0]+'\u5B57\u7B26\u4E32';}}],["NAMELIKE",{Name:"NAMELIKE",Param:{Count:1},ToString:function ToString(args){return'\u54C1\u79CD\u540D\u79F0\u662F\u5426\u4EE5\''+args[0]+'\'\u5F00\u5934';}}],["HHVBARS",{Name:"HHVBARS",Param:{Count:2},ToString:function ToString(args){if(args[1]==0)return'\u5386\u53F2'+args[0]+'\u65B0\u9AD8\u8DDD\u4ECA\u5929\u6570';return args[1]+'\u65E5\u5185'+args[0]+'\u65B0\u9AD8\u8DDD\u4ECA\u5929\u6570';}}],["LLVBARS",{Name:"LLVBARS",Param:{Count:2},ToString:function ToString(args){if(args[1]==0)return'\u5386\u53F2'+args[0]+'\u65B0\u4F4E\u8DDD\u4ECA\u5929\u6570';return args[1]+'\u65E5\u5185'+args[0]+'\u65B0\u4F4E\u8DDD\u4ECA\u5929\u6570';}}],["L2_VOLNUM",{Name:"L2_VOLNUM",Param:{Count:2},ToString:function ToString(args){return'\u5355\u6570\u5206\u6863';}}],["L2_VOL",{Name:"L2_VOL",Param:{Count:2},ToString:function ToString(args){return'\u6210\u4EA4\u91CF\u5206\u6863';}}],["L2_AMO",{Name:"L2_AMO",Param:{Count:2},ToString:function ToString(args){return'\u6210\u4EA4\u989D\u5206\u6863';}}],["TABLE_CELL",{Name:"TABLE_CELL",Param:{Dynamic:true},ToString:function ToString(args){return'\u521B\u5EFA\u8868\u683C\u5355\u5143\u683C';}}],["TABLE_ROW",{Name:"TABLE_ROW",Param:{Dynamic:true},ToString:function ToString(args){return'\u521B\u5EFA\u8868\u683C\u884C';}}],["DRAWTABLE",{Name:"DRAWTABLE",Param:{Dynamic:true},ToString:function ToString(args){return'\u7ED8\u5236\u8868\u683C';}}],["MAX6",{Name:"MAX6",Param:{Dynamic:true},ToString:function ToString(args){return"较大值";}}],["MIN6",{Name:"MIN6",Param:{Dynamic:true},ToString:function ToString(args){return"较小值";}}]]);this.CallFunctionExplain=function(funcName,args,node){if(this.FUNCTION_INFO_LIST.has(funcName)){var item=this.FUNCTION_INFO_LIST.get(funcName);if(item.Param.Dynamic===true)//动态参数
12810
12810
  {}else{if(item.Param.Count!=args.length)this.ThrowUnexpectedNode(node,'\u51FD\u6570'+funcName+'\u53C2\u6570\u4E2A\u6570\u4E0D\u6B63\u786E. \u9700\u8981'+item.Param.Count+'\u4E2A\u53C2\u6570');}return item.ToString(args);}switch(funcName){case"CALCSTOCKINDEX":return'\u5F15\u7528'+args[0]+'\u7684'+args[1]+'\u6307\u6807\u7B2C'+args[2]+'\u4E2A\u8F93\u51FA\u503C';case"PEAK":case"PEAKBARS":case"ZIG":case"ZIGA":case"TROUGH":case"TROUGHBARS":return this.GetZIGExplain(funcName,args);case"FINANCE":return this.GetFinanceExplain(args);case"DYNAINFO":return this.GetDynainfoExplain(args);case'CLOSE':case'C':case'VOL':case'V':case'OPEN':case'O':case'HIGH':case'H':case'LOW':case'L':case'AMOUNT':case'AMO':return this.GetOtherSymbolExplain({FunctionName:funcName,Args:args},node);//绘图函数
@@ -15467,8 +15467,10 @@ document.body.appendChild(divDom);this.UpdateStyle();if(!this.Minute.Option.Enab
15467
15467
  data.Explain="指定日期分时数据"
15468
15468
  };
15469
15469
  */if(data.Name=='MinuteChartContainer::RequestMinuteData')//分时图数据对接
15470
- {data.PopData=this.Minute.PopData;}this.HQChart.NetworkFilter(data,callback);};this.OnCreateHQChart=function(chart){this.LoadChartResource(chart);if(this.OnCreatedCallback)this.OnCreatedCallback(chart);};this.Destroy=function(){if(this.DivDialog)document.body.removeChild(this.DivDialog);this.DivDialog=null;this.TitleBox=null;if(!this.Minute.JSChart)this.Minute.JSChart.ChartDestory();this.Minute.JSChart=null;};this.IsShow=function(){if(!this.DivDialog)return false;return this.DivDialog.style.visibility==='visible';};this.Show=function(data,x,y){if(!this.DivDialog)this.Create();if(!data||!data.Symbol)return;var symbol=data.Symbol;var date=null;if(IFrameSplitOperator.IsPlusNumber(data.Date))date=data.Date;if(this.Minute.JSChart){if(this.Minute.Symbol!=symbol||this.Minute.Date!=date){this.Minute.Symbol=symbol;this.Minute.Date=date;this.Minute.PopData=data;this.Minute.JSChart.ChangeSymbol(symbol);}}if(IFrameSplitOperator.IsNumberV2(x,y)){}else if(data.Rect){var rtCell=data.Rect;var pixelRatio=GetDevicePixelRatio();var rtItem={Left:rtCell.Left/pixelRatio,Right:rtCell.Right/pixelRatio,Bottom:rtCell.Bottom/pixelRatio,Top:rtCell.Top/pixelRatio};rtItem.Width=rtItem.Right-rtItem.Left;rtItem.Height=rtItem.Bottom-rtItem.Top;//超出窗口调整位置
15471
- var height=this.DivDialog.offsetHeight;var width=this.DivDialog.offsetWidth;var x=rtItem.Right+data.Offset.Left;var y=rtItem.Bottom+data.Offset.Top;var xRight=window.innerWidth-5;var ybottom=window.innerHeight-5;if(x+width>xRight)x=rtItem.Left+data.Offset.Left-width;if(y+height>ybottom)y=rtItem.Top+data.Offset.Top-height;this.DivDialog.style.visibility='visible';this.DivDialog.style.top=y+"px";this.DivDialog.style.left=x+"px";}};this.Hide=function(){if(!this.DivDialog)return;if(this.DivDialog.style.visibility!='hidden')this.DivDialog.style.visibility='hidden';};this.ReloadResource=function(option){this.BGColor=g_JSChartResource.PopMinuteChart.BGColor;this.BorderColor=g_JSChartResource.PopMinuteChart.BorderColor;this.TitleFont=g_JSChartResource.PopMinuteChart.Title.Font;//指标标题字体
15470
+ {data.PopData=this.Minute.PopData;}this.HQChart.NetworkFilter(data,callback);};this.OnCreateHQChart=function(chart){this.LoadChartResource(chart);if(this.OnCreatedCallback)this.OnCreatedCallback(chart);};this.Destroy=function(){if(this.DivDialog)document.body.removeChild(this.DivDialog);this.DivDialog=null;this.TitleBox=null;if(!this.Minute.JSChart)this.Minute.JSChart.ChartDestory();this.Minute.JSChart=null;};this.IsShow=function(){if(!this.DivDialog)return false;return this.DivDialog.style.visibility==='visible';};this.Show=function(data,x,y){if(!this.DivDialog)this.Create();if(!data||!data.Symbol)return;var symbol=data.Symbol;var date=null;if(IFrameSplitOperator.IsPlusNumber(data.Date))date=data.Date;if(this.Minute.JSChart){if(this.Minute.Symbol!=symbol||this.Minute.Date!=date){this.Minute.Symbol=symbol;this.Minute.Date=date;this.Minute.PopData=data;this.Minute.JSChart.ChangeSymbol(symbol);}}if(IFrameSplitOperator.IsNumberV2(x,y)){}else if(data.Rect){if(data.Position===1)//上左位置
15471
+ {var rtCell=data.Rect;var pixelRatio=GetDevicePixelRatio();var rtItem={Left:rtCell.Left/pixelRatio,Right:rtCell.Right/pixelRatio,Bottom:rtCell.Bottom/pixelRatio,Top:rtCell.Top/pixelRatio};rtItem.Width=rtItem.Right-rtItem.Left;rtItem.Height=rtItem.Bottom-rtItem.Top;//超出窗口调整位置
15472
+ var height=this.DivDialog.offsetHeight;var width=this.DivDialog.offsetWidth;var x=rtItem.Left+data.Offset.Left;var y=rtItem.Top+data.Offset.Top;var xRight=window.innerWidth-5;var ybottom=window.innerHeight-5;if(x+width>xRight)x=rtItem.Left+data.Offset.Left-width;if(y+height>ybottom)y=rtItem.Top+data.Offset.Top-height;this.DivDialog.style.visibility='visible';this.DivDialog.style.top=y+"px";this.DivDialog.style.left=x+"px";}else{var rtCell=data.Rect;var pixelRatio=GetDevicePixelRatio();var rtItem={Left:rtCell.Left/pixelRatio,Right:rtCell.Right/pixelRatio,Bottom:rtCell.Bottom/pixelRatio,Top:rtCell.Top/pixelRatio};rtItem.Width=rtItem.Right-rtItem.Left;rtItem.Height=rtItem.Bottom-rtItem.Top;//超出窗口调整位置
15473
+ var height=this.DivDialog.offsetHeight;var width=this.DivDialog.offsetWidth;var x=rtItem.Right+data.Offset.Left;var y=rtItem.Bottom+data.Offset.Top;var xRight=window.innerWidth-5;var ybottom=window.innerHeight-5;if(x+width>xRight)x=rtItem.Left+data.Offset.Left-width;if(y+height>ybottom)y=rtItem.Top+data.Offset.Top-height;this.DivDialog.style.visibility='visible';this.DivDialog.style.top=y+"px";this.DivDialog.style.left=x+"px";}}};this.Hide=function(){if(!this.DivDialog)return;if(this.DivDialog.style.visibility!='hidden')this.DivDialog.style.visibility='hidden';};this.ReloadResource=function(option){this.BGColor=g_JSChartResource.PopMinuteChart.BGColor;this.BorderColor=g_JSChartResource.PopMinuteChart.BorderColor;this.TitleFont=g_JSChartResource.PopMinuteChart.Title.Font;//指标标题字体
15472
15474
  this.CorssCursorFont=g_JSChartResource.PopMinuteChart.CorssCursor.Font;//十字光标
15473
15475
  this.FrameSplitTextFont=g_JSChartResource.PopMinuteChart.Frame.Font;//刻度文字
15474
15476
  if(!this.DivDialog)return;this.UpdateStyle();if(this.Minute.JSChart)this.Minute.JSChart.ReloadResource(option);};this.LoadChartResource=function(chart){if(IFrameSplitOperator.IsNonEmptyArray(chart.TitlePaint)){for(var i=0;i<chart.TitlePaint.length;++i){var item=chart.TitlePaint[i];if(!item)continue;item.Font=this.TitleFont;}}if(IFrameSplitOperator.IsNonEmptyArray(chart.WindowIndex)){for(var i=0;i<chart.WindowIndex.length;++i)//去掉指标里面的字体
@@ -15864,10 +15866,214 @@ function HQChartScriptWorker(){this.Status=0;//0=空闲 1=运行
15864
15866
  this.Create=function(){var _this118=this;addEventListener('message',function(obj){_this118.OnRecvMessage(obj);});};this.NetworkFilter=function(data,callback,indexInfo){JSConsole.Complier.Log('[HQChartScriptWorker::NetworkFilter] ['+data.Name+']['+data.Explain+'] data=',data);//数据下载
15865
15867
  };this.ExecuteScript=function(indexData,message){var _this119=this;var scriptObj={};if(indexData.Script){scriptObj.Name=indexData.Name;scriptObj.ID=indexData.Index;scriptObj.Script=indexData.Script;}else{if(!indexData.Index)return false;var scriptData=new JSIndexScript();var finder=scriptData.Get(indexData.Index);if(!finder)return false;scriptObj.ID=indexData.Index;scriptObj.Name=finder.Name;scriptObj.Script=finder.Script;scriptObj.Args=finder.Args;}if(indexData.Args)scriptObj.Args=indexData.Args;if(IFrameSplitOperator.IsBool(message.IsApiPeriod))scriptObj.IsApiPeriod=message.IsApiPeriod;var indexInfo={Name:scriptObj.Name,ID:scriptObj.ID,Script:scriptObj.Script,Args:scriptObj.Args,Guid:message.Guid};scriptObj.ErrorCallback=function(error){_this119.OnExecuteError(error,indexInfo,message);};scriptObj.FinishCallback=function(data,jsExectute){_this119.OnExecuteFinish(data,indexInfo,jsExectute,message);};scriptObj.NetworkFilter=function(data,callback){_this119.NetworkFilter(data,callback,indexInfo,message);};JSConsole.Complier.Log('[HQChartScriptWorker::ExecuteScript] scriptObj=',scriptObj);var indexConsole=new ScriptIndexConsole(scriptObj);var hisData=null;if(message&&message.Data){hisData=new ChartData();hisData.Data=message.Data;hisData.Right=message.Right;hisData.Period=message.Period;hisData.DataType=message.DataType;//0=日线 1=分钟
15866
15868
  hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,Stock:{Symbol:message.Symbol},Request:{MaxDataCount:500,MaxMinuteDayCount:5},Period:message.Period,Right:message.Right,Data:hisData};if(IFrameSplitOperator.IsNumber(message.HQDataType))stockObj.HQDataType=message.HQDataType;indexConsole.ExecuteScript(stockObj);};this.OnRecvMessage=function(message){var data=message.data;if(!data)return;if(data.ID==JSCHART_WORKER_MESSAGE_ID.EXECUTE_SCRIPT){if(!IFrameSplitOperator.IsNonEmptyArray(data.AryIndex))return;for(var i=0;i<data.AryIndex.length;++i){var item=data.AryIndex[i];this.Status=1;//执行状态
15867
- 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);};}/********************************************************************************
15869
+ 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);};}/*
15870
+ Copyright (c) 2018 jones
15871
+
15872
+ http://www.apache.org/licenses/LICENSE-2.0
15873
+
15874
+ 开源项目 https://github.com/jones2000/HQChart
15875
+
15876
+ jones_2000@163.com
15877
+
15878
+ 底部状态栏 (H5版本)
15879
+ 不提供内置测试数据
15880
+ */function JSStatusBarChart(divElement){this.DivElement=divElement;this.JSChartContainer;//表格控件
15881
+ this.ResizeListener;//大小变动监听
15882
+ //h5 canvas
15883
+ this.CanvasElement=document.createElement("canvas");this.CanvasElement.className='jsstatusbar-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("[JSStatusBarChart::JSStatusBarChart] divElement hasChildNodes",divElement.childNodes);}divElement.appendChild(this.CanvasElement);this.OnSize=function(){//画布大小通过div获取 如果有style里的大小 使用style里的
15884
+ var height=this.DivElement.offsetHeight;var width=this.DivElement.offsetWidth;if(this.DivElement.style.height&&this.DivElement.style.width){if(this.DivElement.style.height.includes("px"))height=parseInt(this.DivElement.style.height.replace("px",""));if(this.DivElement.style.width.includes("px"))width=parseInt(this.DivElement.style.width.replace("px",""));}this.CanvasElement.height=height;this.CanvasElement.width=width;this.CanvasElement.style.width=this.CanvasElement.width+'px';this.CanvasElement.style.height=this.CanvasElement.height+'px';var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
15885
+ this.CanvasElement.height*=pixelTatio;this.CanvasElement.width*=pixelTatio;JSConsole.Chart.Log('[JSStatusBarChart::OnSize] devicePixelRatio='+window.devicePixelRatio+', height='+this.CanvasElement.height+', width='+this.CanvasElement.width);if(this.JSChartContainer&&this.JSChartContainer.OnSize){this.JSChartContainer.OnSize();}};this.SetOption=function(option){var chart=this.CreateJSStatusBarChartContainer(option);if(!chart)return false;if(option.OnCreatedCallback)option.OnCreatedCallback(chart);this.JSChartContainer=chart;this.DivElement.JSChart=this;//div中保存一份
15886
+ if(option.EnableResize==true)this.CreateResizeListener();if(option.MinuteChartTooltip&&option.MinuteChartTooltip.Enable)chart.InitalMinuteChartTooltip(option.MinuteChartTooltip);chart.Draw();chart.RequestData();};this.CreateResizeListener=function(){var _this120=this;this.ResizeListener=new ResizeObserver(function(entries){_this120.OnDivResize(entries);});this.ResizeListener.observe(this.DivElement);};this.OnDivResize=function(entries){JSConsole.Chart.Log("[JSStatusBarChart::OnDivResize] entries=",entries);this.OnSize();};this.CreateJSStatusBarChartContainer=function(option){var chart=new JSStatusBarChartContainer(this.CanvasElement);chart.Create(option);this.SetChartBorder(chart,option);if(IFrameSplitOperator.IsNonEmptyArray(option.Column))chart.SetColumn(option.Column);if(option.RightToolbar)chart.SetRightToolbar(option.RightToolbar);//是否自动更新
15887
+ if(option.NetworkFilter)chart.NetworkFilter=option.NetworkFilter;if(option.IsAutoUpdate!=null)chart.IsAutoUpdate=option.IsAutoUpdate;if(option.AutoUpdateFrequency>0)chart.AutoUpdateFrequency=option.AutoUpdateFrequency;//注册事件
15888
+ if(option.EventCallback){for(var i=0;i<option.EventCallback.length;++i){var item=option.EventCallback[i];chart.AddEventCallback(item);}}return chart;};this.SetChartBorder=function(chart,option){if(!option.Border)return;var item=option.Border;if(IFrameSplitOperator.IsNumber(option.Border.Left))chart.Frame.ChartBorder.Left=option.Border.Left;if(IFrameSplitOperator.IsNumber(option.Border.Right))chart.Frame.ChartBorder.Right=option.Border.Right;if(IFrameSplitOperator.IsNumber(option.Border.Top))chart.Frame.ChartBorder.Top=option.Border.Top;if(IFrameSplitOperator.IsNumber(option.Border.Bottom))chart.Frame.ChartBorder.Bottom=option.Border.Bottom;var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
15889
+ chart.Frame.ChartBorder.Left*=pixelTatio;chart.Frame.ChartBorder.Right*=pixelTatio;chart.Frame.ChartBorder.Top*=pixelTatio;chart.Frame.ChartBorder.Bottom*=pixelTatio;};//事件回调
15890
+ this.AddEventCallback=function(obj){if(this.JSChartContainer&&typeof this.JSChartContainer.AddEventCallback=='function'){JSConsole.Chart.Log('[JSStatusBarChart:AddEventCallback] obj=',obj);this.JSChartContainer.AddEventCallback(obj);}};//重新加载配置
15891
+ this.ReloadResource=function(option){if(this.JSChartContainer&&typeof this.JSChartContainer.ReloadResource=='function'){JSConsole.Chart.Log('[JSStatusBarChart:ReloadResource] ');this.JSChartContainer.ReloadResource(option);}};this.ChartDestroy=function(){if(this.JSChartContainer&&typeof this.JSChartContainer.ChartDestroy=='function'){this.JSChartContainer.ChartDestroy();}};this.Draw=function(){if(this.JSChartContainer&&typeof this.JSChartContainer.Draw=='function'){JSConsole.Chart.Log('[JSStatusBarChart:Draw] ');this.JSChartContainer.Draw();}};}JSStatusBarChart.Init=function(divElement){var jsChartControl=new JSStatusBarChart(divElement);jsChartControl.OnSize();return jsChartControl;};//自定义风格
15892
+ JSStatusBarChart.SetStyle=function(option){if(option)g_JSChartResource.SetStyle(option);};//获取颜色配置 (JSStatusBarChart.Init()之前)
15893
+ JSStatusBarChart.GetResource=function(){return g_JSChartResource;};JSStatusBarChart.GetfloatPrecision=function(symbol){return GetfloatPrecision(symbol);};function JSStatusBarChartContainer(uielement){this.ClassName='JSStatusBarChartContainer';this.Frame;//框架画法
15894
+ this.ChartPaint=[];//图形画法
15895
+ this.Canvas=uielement.getContext("2d");//画布
15896
+ this.NetworkFilter;//数据回调接口
15897
+ this.Data={MapSymbol:new _map2.default()//key=symbol, { Value:, Text:, } 股票数据
15898
+ };//事件回调
15899
+ this.mapEvent=new _map2.default();//通知外部调用 key:JSCHART_EVENT_ID value:{ Callback:回调,}
15900
+ this.AutoUpdateTimer=null;this.AutoUpdateFrequency=15000;//15秒更新一次数据
15901
+ this.ToolbarTimer=null;this.TooltipMinuteChart;//分时图
15902
+ this.UIElement=uielement;this.IsDestroy=false;//是否已经销毁了
15903
+ this.ChartDestroy=function()//销毁
15904
+ {this.IsDestroy=true;this.StopAutoUpdate();if(this.ToolbarTimer){clearInterval(this.ToolbarTimer);this.ToolbarTimer=null;}this.DestroyMinuteChartTooltip();};this.InitalMinuteChartTooltip=function(option){if(this.TooltipMinuteChart)return;this.TooltipMinuteChart=new JSTooltipMinuteChart();this.TooltipMinuteChart.Inital(this,option);this.TooltipMinuteChart.Create();};this.DestroyMinuteChartTooltip=function(){if(!this.TooltipMinuteChart)return;this.TooltipMinuteChart.Destroy();this.TooltipMinuteChart=null;};//设置事件回调
15905
+ //{event:事件id, callback:回调函数}
15906
+ this.AddEventCallback=function(object){if(!object||!object.event||!object.callback)return;var data={Callback:object.callback,Source:object};this.mapEvent.set(object.event,data);};this.RemoveEventCallback=function(eventid){if(!this.mapEvent.has(eventid))return;this.mapEvent.delete(eventid);};this.GetEventCallback=function(id)//获取事件回调
15907
+ {if(!this.mapEvent.has(id))return null;var item=this.mapEvent.get(id);return item;};this.ClearData=function(){this.Data.MapSymbol=new _map2.default();};this.RequestData=function(option){var _this121=this;this.CancelAutoUpdate();this.ClearData();if(option){if(IFrameSplitOperator.IsNonEmptyArray(option.Column))this.SetColumn(option.Column);}this.Draw();this.RequestStockData();if(this.IsAutoUpdate){var frequency=this.AutoUpdateFrequency;setInterval(function(){var marketStatus=MARKET_SUFFIX_NAME.GetMarketStatus(_this121.Symbol);if(marketStatus==0||marketStatus==3)//闭市,盘后
15908
+ return;_this121.RequestStockData();},frequency);}};this.CancelAutoUpdate=function()//关闭停止更新
15909
+ {if(this.AutoUpdateTimer){clearInterval(this.AutoUpdateTimer);this.AutoUpdateTimer=null;}};this.StopAutoUpdate=function(){this.CancelAutoUpdate();if(!this.IsAutoUpdate)return;this.IsAutoUpdate=false;};this.RequestStockData=function(){var _this122=this;if(!this.NetworkFilter)return;var chart=this.ChartPaint[0];if(!chart)return;if(!IFrameSplitOperator.IsNonEmptyArray(chart.Column))return;var arySymbol=[];for(var i=0;i<chart.Column.length;++i){var item=chart.Column[i];var newItem={Symbol:item.Symbol,Fields:[]};arySymbol.push(newItem);}var obj={Name:'JSStatusBarChartContainer::RequestStockData',//类名::函数名
15910
+ Explain:'工具栏股票数据',Request:{Data:{stocks:arySymbol}},Self:this,PreventDefault:false};this.NetworkFilter(obj,function(data){_this122.RecvStockData(data);});if(obj.PreventDefault==true)return;//已被上层替换,不调用默认的网络请求
15911
+ };this.RecvStockData=function(recv){if(!recv)return;if(!IFrameSplitOperator.IsNonEmptyArray(recv.data))return;for(var i=0;i<recv.data.length;++i){var item=recv.data[i];if(!item.Symbol)continue;var stockItem=null;if(this.Data.MapSymbol.has(item.Symbol)){stockItem=this.Data.MapSymbol.get(item.Symbol);}else{stockItem={Symbol:item.Symbol,MapData:new _map2.default()};stockItem.YClose=item.YClose;if(IFrameSplitOperator.IsNumber(item.FYClose))stockItem.YClose=item.FYClose;this.Data.MapSymbol.set(item.Symbol,stockItem);}for(var j=0;j<item.Data.length;++j){var itemData=item.Data[j];stockItem.MapData.set(itemData.Key,itemData.Value);}}if(!this.ToolbarTimer)this.Draw();};//创建
15912
+ this.Create=function(option){var _this123=this;this.UIElement.JSChartContainer=this;//创建框架
15913
+ this.Frame=new JSStatusBarFrame();this.Frame.ChartBorder=new ChartBorder();this.Frame.ChartBorder.UIElement=this.UIElement;this.Frame.ChartBorder.Top=30;this.Frame.ChartBorder.Left=5;this.Frame.ChartBorder.Bottom=20;this.Frame.Canvas=this.Canvas;//创建表格
15914
+ var chart=new ChartStatusBarStockData();chart.Frame=this.Frame;chart.ChartBorder=this.Frame.ChartBorder;chart.Canvas=this.Canvas;chart.UIElement=this.UIElement;chart.GetEventCallback=function(id){return _this123.GetEventCallback(id);};chart.Data=this.Data;chart.BorderData=this.BorderData;chart.GlobalOption=this.GlobalOption;chart.FixedRowData=this.FixedRowData;chart.SortInfo=this.SortInfo;this.ChartPaint[0]=chart;if(option){}this.UIElement.onmousedown=function(e){_this123.UIOnMouseDown(e);};this.UIElement.onmousemove=function(e){_this123.UIOnMouseMove(e);};this.UIElement.onmouseout=function(e){_this123.UIOnMounseOut(e);};/*
15915
+ this.UIElement.ondblclick=(e)=>{ this.UIOnDblClick(e); }
15916
+ this.UIElement.onmousedown=(e)=> { this.UIOnMouseDown(e); }
15917
+
15918
+
15919
+ this.UIElement.onmouseleave=(e)=>{ this.UIOnMouseleave(e); }
15920
+ this.UIElement.oncontextmenu=(e)=> { this.UIOnContextMenu(e); }
15921
+ */var frequency=500;this.ToolbarTimer=setInterval(function(){_this123.Draw();},frequency);};this.UIOnMouseDown=function(e){var pixelTatio=GetDevicePixelRatio();this.ClickDownPoint={X:e.clientX,Y:e.clientY};var x=(e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;var ptClick={X:this.ClickDownPoint.X,Y:this.ClickDownPoint.Y};this.TryClickPaintEvent(JSCHART_EVENT_ID.ON_CLICK_STATUSBAR_ITEM,ptClick,e);};this.GetChartTooltipData=function(x,y,option){var toolTip=new TooltipData();for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(item.GetTooltipData(x,y,toolTip)){return toolTip;}}return null;};this.UIOnMouseMove=function(e){var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;//var bShowKLineTooltip=false;
15922
+ var bShowMinuteTooltip=false;var chartTooltipData=null;var tooltipData=this.GetChartTooltipData(x,y);if(tooltipData){if(tooltipData.Type==121){var item=tooltipData.Data;if(item&&item.Data&&item.Data.Symbol){bShowMinuteTooltip=true;chartTooltipData={Symbol:item.Data.Symbol,Rect:item.Rect,Position:1};}}}//if (!bShowKLineTooltip) this.HideKLineChartTooltip();
15923
+ if(!bShowMinuteTooltip)this.HideMinuteChartTooltip();if(bShowMinuteTooltip)this.ShowMinuteChartTooltip(null,null,chartTooltipData);//if (bShowKLineTooltip) this.ShowKLineChartTooltip(null, null, chartTooltipData);
15924
+ };this.UIOnMounseOut=function(e){this.HideAllTooltip();};this.TryClickPaintEvent=function(eventID,ptClick,e){var event=this.GetEventCallback(eventID);if(!event)return false;if(ptClick.X==e.clientX&&ptClick.Y==e.clientY){var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-uielement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-uielement.getBoundingClientRect().top)*pixelTatio;var toolTip=new TooltipData();for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(item.GetTooltipData(x,y,toolTip)){if(toolTip.Data){var data={X:e.clientX,Y:e.clientY,Tooltip:toolTip};event.Callback(event,data,this);return true;}}}}return false;};this.Draw=function(){if(this.UIElement.width<=0||this.UIElement.height<=0)return;this.Canvas.clearRect(0,0,this.UIElement.width,this.UIElement.height);var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
15925
+ this.Canvas.lineWidth=pixelTatio;//手机端需要根据分辨率比调整线段宽度
15926
+ this.Frame.Draw();this.Frame.DrawLogo();//框架内图形
15927
+ for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];item.Draw();}};this.OnSize=function(){if(!this.Frame)return;this.SetSizeChange(true);this.Draw();};this.SetSizeChange=function(bChanged){for(var i=0;i<this.ChartPaint.length;++i){var chart=this.ChartPaint[i];if(chart)chart.SizeChange=bChanged;}};this.ReloadResource=function(option){this.Frame.ReloadResource(option);for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(item.ReloadResource)item.ReloadResource(option);}if(option&&(option.Redraw||option.Draw)){this.SetSizeChange(true);this.Draw();}if(this.TooltipMinuteChart)this.TooltipMinuteChart.ReloadResource(option);//分时图
15928
+ };this.SetColumn=function(aryColunm,option){var chart=this.ChartPaint[0];if(!chart)return;chart.SetColumn(aryColunm);chart.SizeChange=true;if(option&&option.Redraw)this.Draw();};this.SetRightToolbar=function(toolbar,option){var chart=this.ChartPaint[0];if(!chart)return;chart.SetRightToolbar(toolbar);chart.SizeChange=true;if(option&&option.Redraw)this.Draw();};this.GetStatusBarChart=function(){var chart=this.ChartPaint[0];if(!chart)return null;return chart;};//data={ Symbol }
15929
+ this.ShowMinuteChartTooltip=function(x,y,data){if(!this.TooltipMinuteChart)return;var rtClient=this.UIElement.getBoundingClientRect();var rtScroll=GetScrollPosition();var offsetLeft=rtClient.left+rtScroll.Left;var offsetTop=rtClient.top+rtScroll.Top;data.Offset={Left:offsetLeft,Top:offsetTop};this.TooltipMinuteChart.Show(data,x,y);};this.HideMinuteChartTooltip=function(){if(!this.TooltipMinuteChart)return;this.TooltipMinuteChart.Hide();};this.HideAllTooltip=function(){//this.HideKLineChartTooltip();
15930
+ this.HideMinuteChartTooltip();};}function JSStatusBarFrame(){this.ChartBorder;this.Canvas;//画布
15931
+ this.BorderLine=null;//1=上 2=下 4=左 8=右
15932
+ this.ClassName="JSStatusBarFrame";this.BorderColor=g_JSChartResource.StatusBar.BorderColor;//边框线
15933
+ this.LogoTextColor=g_JSChartResource.FrameLogo.TextColor;this.LogoTextFont=g_JSChartResource.FrameLogo.Font;this.ReloadResource=function(resource){this.BorderColor=g_JSChartResource.StatusBar.BorderColor;//边框线
15934
+ this.LogoTextColor=g_JSChartResource.FrameLogo.TextColor;this.LogoTextFont=g_JSChartResource.FrameLogo.Font;};this.Draw=function(){var left=ToFixedPoint(this.ChartBorder.GetLeft());var top=ToFixedPoint(this.ChartBorder.GetTop());var right=ToFixedPoint(this.ChartBorder.GetRight());var bottom=ToFixedPoint(this.ChartBorder.GetBottom());var width=right-left;var height=bottom-top;if(!IFrameSplitOperator.IsNumber(this.BorderLine)){this.Canvas.strokeStyle=this.BorderColor;this.Canvas.strokeRect(left,top,width,height);}else{this.Canvas.strokeStyle=this.BorderColor;this.Canvas.beginPath();if((this.BorderLine&1)>0)//上
15935
+ {this.Canvas.moveTo(left,top);this.Canvas.lineTo(right,top);}if((this.BorderLine&2)>0)//下
15936
+ {this.Canvas.moveTo(left,bottom);this.Canvas.lineTo(right,bottom);}if((this.BorderLine&4)>0)//左
15937
+ {this.Canvas.moveTo(left,top);this.Canvas.lineTo(left,bottom);}if((this.BorderLine&8)>0)//右
15938
+ {this.Canvas.moveTo(right,top);this.Canvas.lineTo(right,bottom);}this.Canvas.stroke();}};this.DrawLogo=function(){/*
15939
+ var text=g_JSChartResource.FrameLogo.Text;
15940
+ if (!IFrameSplitOperator.IsString(text)) return;
15941
+
15942
+ this.Canvas.fillStyle=this.LogoTextColor;
15943
+ this.Canvas.font=this.LogoTextFont;
15944
+ this.Canvas.textAlign = 'right';
15945
+ this.Canvas.textBaseline = 'bottom';
15946
+
15947
+ var x=this.ChartBorder.GetRight()-30;
15948
+ var y=this.ChartBorder.GetBottom()-5;
15949
+ this.Canvas.fillText(text,x,y);
15950
+ */};}function ChartStatusBarStockData(){this.Canvas;//画布
15951
+ this.ChartBorder;//边框信息
15952
+ this.ChartFrame;//框架画法
15953
+ this.Name;//名称
15954
+ this.ClassName='ChartStatusBarStockData';//类名
15955
+ this.UIElement;this.GetEventCallback;//获取事件
15956
+ this.Data;//数据
15957
+ this.SizeChange=true;this.UpColor=g_JSChartResource.StatusBar.UpTextColor;this.DownColor=g_JSChartResource.StatusBar.DownTextColor;this.UnchangeColor=g_JSChartResource.StatusBar.UnchangeTextColor;this.TableConfig=CloneData(g_JSChartResource.StatusBar.Table);this.DateTimeConfig=CloneData(g_JSChartResource.StatusBar.DateTime);//显示的字段
15958
+ this.Column=[{Symbol:"000001.sh",Column:[{Name:"名称",Key:"Name",Text:"000001"},{Name:"现价",Key:"Price",ColorType:3,FloatPrecision:-1,MaxText:"88888.88"},{Name:"涨幅",Key:"Increase",ColorType:1,FloatPrecision:2,StringFormat:"{Value}%",MaxText:"888.88%"},{Name:"涨跌",Key:"UpDown",ColorType:1,FloatPrecision:-1},{Name:"总额",Key:"Amount",FloatPrecision:0,Format:{Type:3,ExFloatPrecision:2},ColorID:1}]},{Symbol:"600000.sh",Column:[{Name:"名称",Key:"Name",Text:"600000"},{Name:"现价",Key:"Price",ColorType:3,FloatPrecision:-1},{Name:"涨幅",Key:"Increase",ColorType:1,FloatPrecision:2,StringFormat:"{Value}%"},{Name:"涨跌",Key:"UpDown",ColorType:1,FloatPrecision:-1},{Name:"总额",Key:"Amount",FloatPrecision:0,Format:{Type:3,ExFloatPrecision:2}}]}];this.RightToolbarConfig=CloneData(g_JSChartResource.StatusBar.RightToolbar);this.MapToolbarFlash=new _map2.default();//key=id, Value:{ Counter:, Enable: }
15959
+ //右侧工具栏
15960
+ this.RightToolbar={/*
15961
+ AryButton:
15962
+ [
15963
+ { ID:2, Type:1, Icon:[{ Symbol:"\ue609", Color:"rgb(180,180,180)"} ] },
15964
+
15965
+ {
15966
+ ID:1, Type:2, Icon:[{ Symbol:"\ue6d0", Color:"rgb(180,180,180)"} ],
15967
+ Flash:
15968
+ {
15969
+ AryIcon:
15970
+ [
15971
+ [{ Symbol:"\ue6cb", Color:"rgb(0,191,255)"}],
15972
+ [{ Symbol:"\ue6cb", Color:"rgb(255,165,0)"}],
15973
+ [{ Symbol:"\ue6cb", Color:"rgb(255,215,0)"}],
15974
+ ]
15975
+ }
15976
+ },
15977
+ ]
15978
+ */};this.AryRectCell=[];this.AryRectButton=[];this.ReloadResource=function(resource){this.UpColor=g_JSChartResource.StatusBar.UpTextColor;this.DownColor=g_JSChartResource.StatusBar.DownTextColor;this.UnchangeColor=g_JSChartResource.StatusBar.UnchangeTextColor;this.TableConfig=CloneData(g_JSChartResource.StatusBar.Table);this.DateTimeConfig=CloneData(g_JSChartResource.StatusBar.DateTime);};this.SetColumn=function(aryColumn){this.Column=[];if(!IFrameSplitOperator.IsNonEmptyArray(aryColumn))return;for(var i=0;i<aryColumn.length;++i){var item=aryColumn[i];if(!item)continue;this.Column.push(CloneData(item));}};this.SetRightToolbar=function(toolbar,option){if(IFrameSplitOperator.IsNonEmptyArray(toolbar.AryButton)){this.RightToolbar.AryButton=toolbar.AryButton.slice();for(var i=0;i<this.RightToolbar.AryButton.length;++i){var item=this.RightToolbar.AryButton[i];if(item.Type===2){var value={Counter:1,Enable:true};if(IFrameSplitOperator.IsBool(item.Enable))value.Enable=item.Enable;this.MapToolbarFlash.set(item.ID,value);}}}};this.Draw=function(){this.AryRectCell=[];this.AryRectButton=[];var border=this.ChartBorder.GetBorder();var position={Left:border.Left,Right:border.Right,Top:border.Top,Bottom:border.Bottom,Width:border.Right-border.Left,Border:border};this.DrawRightToolbar(position);this.DrawTable(position);};this.DrawTable=function(position){if(!IFrameSplitOperator.IsNonEmptyArray(this.Column))return;var config=this.TableConfig;var top=position.Top;var left=position.Left+config.Margin.Left;var yText=top+config.Margin.Top;var xText=left;this.Canvas.font=config.Font;this.Canvas.textAlign='left';this.Canvas.textBaseline='bottom';var cellHeight=this.Canvas.measureText("擎").width+config.CellMargin.Top+config.CellMargin.Bottom;var itemPos={Left:xText,Right:position.Right,Top:yText,Height:cellHeight,Bottom:yText+cellHeight,IsBreak:false,CellCount:0};for(var i=0;i<this.Column.length;++i){var item=this.Column[i];if(!item||!item.Symbol)continue;var rtCell={Left:itemPos.Left,Top:itemPos.Top,Bottom:itemPos.Bottom,Right:itemPos.Left};if(i>0)rtCell.Left-=config.Separator.Right;this.DrawCellItem(item,itemPos);if(itemPos.CellCount>0){rtCell.Right=itemPos.Left;rtCell.Width=rtCell.Right-itemPos.Left;rtCell.Height=rtCell.Bottom-rtCell.Top;this.AryRectCell.push({Rect:rtCell,Data:item,Type:1});}if(itemPos.IsBreak){break;}itemPos.Left+=config.Separator.Left;if(config.Separator.Line&&config.Separator.Line.Color)//分割线
15979
+ {if(itemPos.Left>=itemPos.Right)break;var subConfig=config.Separator.Line;var lineWidth=1*GetDevicePixelRatio();if(IFrameSplitOperator.IsNumber(subConfig.Width))lineWidth=subConfig.Width;this.Canvas.strokeStyle=subConfig.Color;this.Canvas.beginPath();this.Canvas.moveTo(ToFixedPoint(itemPos.Left),itemPos.Top+subConfig.Top);this.Canvas.lineTo(ToFixedPoint(itemPos.Left),itemPos.Bottom-subConfig.Bottom);this.Canvas.stroke();}itemPos.Left+=config.Separator.Right;}};this.DrawCellItem=function(cellItem,itemPos){var config=this.TableConfig;var xText=itemPos.Left;var yBottom=itemPos.Top+itemPos.Height-config.CellMargin.Bottom+config.CellMargin.YOffset;var text=null;var stockItem=null;if(this.Data.MapSymbol.has(cellItem.Symbol))stockItem=this.Data.MapSymbol.get(cellItem.Symbol);for(var i=0;i<cellItem.Column.length;++i){var item=cellItem.Column[i];if(!item)continue;var color=config.AryTextColor[0];var text=null;if(stockItem&&stockItem.MapData.has(item.Key)){var dataItem=stockItem.MapData.get(item.Key);text=this.FormatValue(item,dataItem,stockItem);if(IFrameSplitOperator.IsNumber(item.ColorID)&&item.ColorID>=0&&item.ColorID<config.AryTextColor.length)color=config.AryTextColor[item.ColorID];if(item.ColorType===3&&IFrameSplitOperator.IsNumber(dataItem.Value))color=this.GetPriceColor(dataItem.Value,stockItem);else if(item.ColorType==1&&IFrameSplitOperator.IsNumber(dataItem.Value))color=this.GetUpDownColor(dataItem.Value,0);else if(item.ColorType==4)color=this.UpColor;else if(item.ColorType==5)color=this.DownColor;if(item.TextColor)color=item.TextColor;}if(!text&&item.Text)text=item.Text;if(text){var textWidth=this.Canvas.measureText(text).width;if(xText+textWidth+config.CellMargin.Left+config.CellMargin.Right>itemPos.Right){itemPos.IsBreak=true;break;}this.Canvas.fillStyle=color;this.Canvas.fillText(text,xText+config.CellMargin.Left,yBottom);xText+=textWidth+config.CellMargin.Left+config.CellMargin.Right;}else if(item.MaxText){text=item.MaxText;var textWidth=this.Canvas.measureText(text).width;xText+=textWidth+config.CellMargin.Left+config.CellMargin.Right;if(xText>itemPos.Right){itemPos.IsBreak=true;break;}}++itemPos.CellCount;}itemPos.Left=xText;};this.FormatValue=function(column,data,stockItem){var dec=0;//小数位数
15980
+ if(IFrameSplitOperator.IsNumber(column.FloatPrecision)){if(column.FloatPrecision===-1)dec=GetfloatPrecision(stockItem.Symbol);else dec=column.FloatPrecision;}var text=null;if(!data)return text;if(data.Text){text=data.Text;}else if(IFrameSplitOperator.IsNumber(data.Value)){var value=data.Value;text=value.toFixed(dec);//格式化
15981
+ if(column.Format&&IFrameSplitOperator.IsNumber(column.Format.Type)){var format=column.Format;switch(format.Type){case 1://原始数据
15982
+ text=value.toFixed(dec);break;case 2://千分位分割
15983
+ text=IFrameSplitOperator.FormatValueThousandsString(value,dec);break;case 3:var exfloatPrecision=1;if(IFrameSplitOperator.IsNumber(format.ExFloatPrecision))exfloatPrecision=format.ExFloatPrecision;text=IFrameSplitOperator.FormatValueStringV2(value,dec,exfloatPrecision);break;}}}if(column.StringFormat&&text)text=column.StringFormat.replace('{Value}',text);return text;};this.GetPriceColor=function(price,stockItem){var upperSymbol=null;if(stockItem.Symbol)upperSymbol=stockItem.Symbol.toUpperCase();if(MARKET_SUFFIX_NAME.IsChinaFutures(upperSymbol)){if(!IFrameSplitOperator.IsNumber(stockItem.YFClose))return this.UnchangeColor;return this.GetUpDownColor(price,stockItem.YFClose);}else{if(!IFrameSplitOperator.IsNumber(stockItem.YClose))return this.UnchangeColor;return this.GetUpDownColor(price,stockItem.YClose);}};this.GetUpDownColor=function(price,price2){if(price>price2)return this.UpColor;else if(price<price2)return this.DownColor;else return this.UnchangeColor;};this.DrawRightToolbar=function(position){var config=this.DateTimeConfig;var top=position.Top;var right=position.Right;this.Canvas.font=config.Font;this.Canvas.textAlign='left';this.Canvas.textBaseline='bottom';var cellHeight=this.Canvas.measureText("擎").width+config.Margin.Top+config.Margin.Bottom;var yBottom=top+cellHeight-config.Margin.Bottom+config.Margin.YOffset;var xText=right;//时间
15984
+ var datetime=new Date();var text=IFrameSplitOperator.FormatDateTimeStringV2(datetime,config.Format);var textWidth=this.Canvas.measureText(config.MaxText).width+config.Margin.Left+config.Margin.Right;xText-=textWidth;this.Canvas.fillStyle=config.TitleColor;this.Canvas.fillText(text,xText+config.Margin.Left,yBottom);position.Right=xText;if(this.RightToolbar&&IFrameSplitOperator.IsNonEmptyArray(this.RightToolbar.AryButton)){var config=this.RightToolbarConfig;xText-=config.Margin.Right;for(var i=this.RightToolbar.AryButton.length-1;i>=0;--i){var item=this.RightToolbar.AryButton[i];var aryItem=null;if(item.Type==2)aryItem=this.GetFlashToolbarItem(item);else aryItem=item.Icon;if(!IFrameSplitOperator.IsNonEmptyArray(aryItem))continue;var iconFont=config.Icon.Size+'px '+config.Icon.Family;this.Canvas.font=iconFont;var textWidth=config.Icon.Size+config.CellMargin.Left+config.CellMargin.Right;xText-=textWidth;yBottom=top+config.Margin.Top+(config.Icon.Size+config.CellMargin.Top+config.CellMargin.Bottom)-config.CellMargin.Bottom+config.CellMargin.YOffset;for(var j=0;j<aryItem.length;++j){var iconItem=aryItem[j];var text=iconItem.Symbol;this.Canvas.fillStyle=iconItem.Color;this.Canvas.fillText(text,xText+config.CellMargin.Left,yBottom);}var rtButton={Left:xText,Bottom:yBottom,Height:config.Icon.Size,Width:config.Icon.Size};rtButton.Right=rtButton.Left+rtButton.Width;rtButton.Top=rtButton.Bottom-rtButton.Height;this.AryRectButton.push({Rect:rtButton,Data:item,Type:2});}}position.Right=xText;};this.GetFlashToolbarItem=function(btnItem){if(!btnItem.Flash||!IFrameSplitOperator.IsNonEmptyArray(btnItem.Flash.AryIcon))return btnItem.Icon;if(!this.MapToolbarFlash.has(btnItem.ID))return btnItem.Icon;var item=this.MapToolbarFlash.get(btnItem.ID);if(!item.Enable)return btnItem.Icon;item.Counter++;var index=item.Counter%btnItem.Flash.AryIcon.length;return btnItem.Flash.AryIcon[index];};this.GetTooltipData=function(x,y,tooltip){for(var i=0;i<this.AryRectCell.length;++i){var item=this.AryRectCell[i];if(Path2DHelper.PtInRect(x,y,item.Rect)){tooltip.Data=item;tooltip.ChartPaint=this;tooltip.Type=121;return true;}}for(var i=0;i<this.AryRectButton.length;++i){var item=this.AryRectButton[i];if(Path2DHelper.PtInRect(x,y,item.Rect)){tooltip.Data=item;tooltip.ChartPaint=this;tooltip.Type=122;return true;}}return false;};}/*
15985
+ Copyright (c) 2018 jones
15986
+
15987
+ http://www.apache.org/licenses/LICENSE-2.0
15988
+
15989
+ 开源项目 https://github.com/jones2000/HQChart
15990
+
15991
+ jones_2000@163.com
15992
+
15993
+ 股票买卖5档 (H5版本)
15994
+ 不提供内置测试数据
15995
+ */function JSStockInfoChart(divElement){this.DivElement=divElement;this.JSChartContainer;//表格控件
15996
+ this.ResizeListener;//大小变动监听
15997
+ //h5 canvas
15998
+ this.CanvasElement=document.createElement("canvas");this.CanvasElement.className='jsstockinfo-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("[JSStockInfoChart::JSStockInfoChart] divElement hasChildNodes",divElement.childNodes);}divElement.appendChild(this.CanvasElement);this.OnSize=function(){//画布大小通过div获取 如果有style里的大小 使用style里的
15999
+ var height=this.DivElement.offsetHeight;var width=this.DivElement.offsetWidth;if(this.DivElement.style.height&&this.DivElement.style.width){if(this.DivElement.style.height.includes("px"))height=parseInt(this.DivElement.style.height.replace("px",""));if(this.DivElement.style.width.includes("px"))width=parseInt(this.DivElement.style.width.replace("px",""));}this.CanvasElement.height=height;this.CanvasElement.width=width;this.CanvasElement.style.width=this.CanvasElement.width+'px';this.CanvasElement.style.height=this.CanvasElement.height+'px';var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
16000
+ this.CanvasElement.height*=pixelTatio;this.CanvasElement.width*=pixelTatio;JSConsole.Chart.Log('[JSStockInfoChart::OnSize] devicePixelRatio='+window.devicePixelRatio+', height='+this.CanvasElement.height+', width='+this.CanvasElement.width);if(this.JSChartContainer&&this.JSChartContainer.OnSize){this.JSChartContainer.OnSize();}};this.SetOption=function(option){var chart=this.CreateJSStockInfoChartContainer(option);if(!chart)return false;if(option.OnCreatedCallback)option.OnCreatedCallback(chart);this.JSChartContainer=chart;this.DivElement.JSChart=this;//div中保存一份
16001
+ if(option.EnableResize==true)this.CreateResizeListener();if(option.Symbol){chart.ChangeSymbol(option.Symbol);//下载列表码表
16002
+ }else{chart.Draw();}};this.CreateResizeListener=function(){var _this124=this;this.ResizeListener=new ResizeObserver(function(entries){_this124.OnDivResize(entries);});this.ResizeListener.observe(this.DivElement);};this.OnDivResize=function(entries){JSConsole.Chart.Log("[JSStockInfoChart::OnDivResize] entries=",entries);this.OnSize();};//切换股票代码接口
16003
+ this.ChangeSymbol=function(symbol,option){if(this.JSChartContainer)this.JSChartContainer.ChangeSymbol(symbol,option);};this.CreateJSStockInfoChartContainer=function(option){var chart=new JSStockInfoChartContainer(this.CanvasElement);chart.Create(option);this.SetChartBorder(chart,option);if(IFrameSplitOperator.IsNonEmptyArray(option.Column))chart.SetColumn(option.Column);if(IFrameSplitOperator.IsNonEmptyArray(option.HeaderColumn))chart.SetHeaderColumn(option.HeaderColumn);//是否自动更新
16004
+ if(option.NetworkFilter)chart.NetworkFilter=option.NetworkFilter;if(option.IsAutoUpdate!=null)chart.IsAutoUpdate=option.IsAutoUpdate;if(option.AutoUpdateFrequency>0)chart.AutoUpdateFrequency=option.AutoUpdateFrequency;//注册事件
16005
+ if(option.EventCallback){for(var i=0;i<option.EventCallback.length;++i){var item=option.EventCallback[i];chart.AddEventCallback(item);}}return chart;};this.SetChartBorder=function(chart,option){if(!option.Border)return;var item=option.Border;if(IFrameSplitOperator.IsNumber(option.Border.Left))chart.Frame.ChartBorder.Left=option.Border.Left;if(IFrameSplitOperator.IsNumber(option.Border.Right))chart.Frame.ChartBorder.Right=option.Border.Right;if(IFrameSplitOperator.IsNumber(option.Border.Top))chart.Frame.ChartBorder.Top=option.Border.Top;if(IFrameSplitOperator.IsNumber(option.Border.Bottom))chart.Frame.ChartBorder.Bottom=option.Border.Bottom;var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
16006
+ chart.Frame.ChartBorder.Left*=pixelTatio;chart.Frame.ChartBorder.Right*=pixelTatio;chart.Frame.ChartBorder.Top*=pixelTatio;chart.Frame.ChartBorder.Bottom*=pixelTatio;};//事件回调
16007
+ this.AddEventCallback=function(obj){if(this.JSChartContainer&&typeof this.JSChartContainer.AddEventCallback=='function'){JSConsole.Chart.Log('[JSStockInfoChart:AddEventCallback] obj=',obj);this.JSChartContainer.AddEventCallback(obj);}};//重新加载配置
16008
+ this.ReloadResource=function(option){if(this.JSChartContainer&&typeof this.JSChartContainer.ReloadResource=='function'){JSConsole.Chart.Log('[JSStockInfoChart:ReloadResource] ');this.JSChartContainer.ReloadResource(option);}};this.ChartDestroy=function(){if(this.JSChartContainer&&typeof this.JSChartContainer.ChartDestroy=='function'){this.JSChartContainer.ChartDestroy();}};this.Draw=function(){if(this.JSChartContainer&&typeof this.JSChartContainer.Draw=='function'){JSConsole.Chart.Log('[JSStockInfoChart:Draw] ');this.JSChartContainer.Draw();}};}JSStockInfoChart.Init=function(divElement){var jsChartControl=new JSStockInfoChart(divElement);jsChartControl.OnSize();return jsChartControl;};//自定义风格
16009
+ JSStockInfoChart.SetStyle=function(option){if(option)g_JSChartResource.SetStyle(option);};//获取颜色配置 (JSStockInfoChart.Init()之前)
16010
+ JSStockInfoChart.GetResource=function(){return g_JSChartResource;};JSStockInfoChart.GetfloatPrecision=function(symbol){return GetfloatPrecision(symbol);};function JSStockInfoChartContainer(uielement){this.ClassName='JSStockInfoChartContainer';this.Frame;//框架画法
16011
+ this.ChartPaint=[];//图形画法
16012
+ this.ChartSplashPaint=null;//等待提示
16013
+ this.LoadDataSplashTitle="数据加载中";//下载数据提示信息
16014
+ this.Canvas=uielement.getContext("2d");//画布
16015
+ this.Symbol;//代码
16016
+ this.NetworkFilter;//数据回调接口
16017
+ this.Data={Name:null,YClose:null,//昨收盘
16018
+ YFClose:null,//昨计算价
16019
+ Symbol:null,Buys:[{Name:"买一",Price:null,Vol:null,Amount:null},{Name:"买二",Price:null,Vol:null,Amount:null},{Name:"买三",Price:null,Vol:null,Amount:null},{Name:"买四",Price:null,Vol:null,Amount:null},{Name:"买五",Price:null,Vol:null,Amount:null},{Name:"买六",Price:null,Vol:null,Amount:null},{Name:"买七",Price:null,Vol:null,Amount:null},{Name:"买八",Price:null,Vol:null,Amount:null},{Name:"买九",Price:null,Vol:null,Amount:null},{Name:"买十",Price:null,Vol:null,Amount:null}],Sells:[{Name:"卖一",Price:null,Vol:null,Amount:null},{Name:"卖二",Price:null,Vol:null,Amount:null},{Name:"卖三",Price:null,Vol:null,Amount:null},{Name:"卖四",Price:null,Vol:null,Amount:null},{Name:"卖五",Price:null,Vol:null,Amount:null},{Name:"卖六",Price:null,Vol:null,Amount:null},{Name:"卖七",Price:null,Vol:null,Amount:null},{Name:"卖八",Price:null,Vol:null,Amount:null},{Name:"卖九",Price:null,Vol:null,Amount:null},{Name:"卖十",Price:null,Vol:null,Amount:null}],MapData:new _map2.default()//key=, { Value:, Text:, }
16020
+ };//股票数据
16021
+ this.BorderData={MapData:null};//key=Field Value:[null, {ExePrice} ,{ExePrice} ]
16022
+ this.MapStockData;//事件回调
16023
+ this.mapEvent=new _map2.default();//通知外部调用 key:JSCHART_EVENT_ID value:{Callback:回调,}
16024
+ this.AutoUpdateTimer=null;this.AutoUpdateFrequency=15000;//15秒更新一次数据
16025
+ this.UIElement=uielement;this.IsDestroy=false;//是否已经销毁了
16026
+ this.ChartDestroy=function()//销毁
16027
+ {this.IsDestroy=true;this.StopAutoUpdate();};//设置事件回调
16028
+ //{event:事件id, callback:回调函数}
16029
+ this.AddEventCallback=function(object){if(!object||!object.event||!object.callback)return;var data={Callback:object.callback,Source:object};this.mapEvent.set(object.event,data);};this.ClearData=function(){this.Data.Name=null;this.Data.YClose=null;this.Data.YFClose=null;this.Data.Buys=[{Name:"买一",Price:null,Vol:null,Amount:null},{Name:"买二",Price:null,Vol:null,Amount:null},{Name:"买三",Price:null,Vol:null,Amount:null},{Name:"买四",Price:null,Vol:null,Amount:null},{Name:"买五",Price:null,Vol:null,Amount:null},{Name:"买六",Price:null,Vol:null,Amount:null},{Name:"买七",Price:null,Vol:null,Amount:null},{Name:"买八",Price:null,Vol:null,Amount:null},{Name:"买九",Price:null,Vol:null,Amount:null},{Name:"买十",Price:null,Vol:null,Amount:null}];this.Data.Sells=[{Name:"卖一",Price:null,Vol:null,Amount:null},{Name:"卖二",Price:null,Vol:null,Amount:null},{Name:"卖三",Price:null,Vol:null,Amount:null},{Name:"卖四",Price:null,Vol:null,Amount:null},{Name:"卖五",Price:null,Vol:null,Amount:null},{Name:"卖六",Price:null,Vol:null,Amount:null},{Name:"卖七",Price:null,Vol:null,Amount:null},{Name:"卖八",Price:null,Vol:null,Amount:null},{Name:"卖九",Price:null,Vol:null,Amount:null},{Name:"卖十",Price:null,Vol:null,Amount:null}];this.Data.MapData=new _map2.default();};this.ChangeSymbol=function(symbol,option){var _this125=this;this.CancelAutoUpdate();this.ClearData();this.Symbol=symbol;this.Data.Symbol=symbol;if(option){if(IFrameSplitOperator.IsNonEmptyArray(option.Column))this.SetColumn(option.Column);if(IFrameSplitOperator.IsNumber(option.BuySellCount))this.SetBuySellCount(option.BuySellCount);}this.Draw();this.RequestStockData();if(this.IsAutoUpdate){var frequency=this.AutoUpdateFrequency;setInterval(function(){var marketStatus=MARKET_SUFFIX_NAME.GetMarketStatus(_this125.Symbol);if(marketStatus==0||marketStatus==3)//闭市,盘后
16030
+ return;_this125.RequestStockData();},frequency);}};this.CancelAutoUpdate=function()//关闭停止更新
16031
+ {if(this.AutoUpdateTimer){clearInterval(this.AutoUpdateTimer);this.AutoUpdateTimer=null;}};this.StopAutoUpdate=function(){this.CancelAutoUpdate();if(!this.IsAutoUpdate)return;this.IsAutoUpdate=false;};this.RequestStockData=function(){var _this126=this;if(this.NetworkFilter){var obj={Name:'JSStockInfoChartContainer::RequestStockData',//类名::函数名
16032
+ Explain:'股票5档实时数据',Request:{Data:{symbol:this.Symbol}},Self:this,PreventDefault:false};this.NetworkFilter(obj,function(data){_this126.RecvStockData(data);});if(obj.PreventDefault==true)return;//已被上层替换,不调用默认的网络请求
16033
+ }};this.RecvStockData=function(recv){if(!recv)return;if(recv.name)this.Data.Name=recv.Name;if(IFrameSplitOperator.IsNumber(recv.yclose))this.Data.YClose=recv.yclose;if(IFrameSplitOperator.IsNumber(recv.yfclose))this.Data.YFClose=recv.yfclose;if(recv.name)this.Data.Name=recv.name;if(IFrameSplitOperator.IsNonEmptyArray(recv.data)){for(var i=0;i<recv.data.length;++i){var item=recv.data[i];if(item.Name=="Buys"){if(IFrameSplitOperator.IsNonEmptyArray(item.Value)){for(var j=0;j<item.Value.length&&j<this.Data.Buys.length;++j){var srcItem=item.Value[j];var destItem=this.Data.Buys[j];destItem.Price=srcItem.Price;destItem.Vol=srcItem.Vol;}}}else if(item.Name=="Sells"){if(IFrameSplitOperator.IsNonEmptyArray(item.Value)){for(var j=0;j<item.Value.length&&j<this.Data.Sells.length;++j){var srcItem=item.Value[j];var destItem=this.Data.Sells[j];destItem.Price=srcItem.Price;destItem.Vol=srcItem.Vol;}}}else if(item.Name=="Symbol"){this.Data.Symbol=item.Value.Text;}else{this.Data.MapData.set(item.Name,item.Value);}}}this.Draw();};//创建
16034
+ this.Create=function(option){var _this127=this;this.UIElement.JSChartContainer=this;//创建框架
16035
+ this.Frame=new JSStockInfoFrame();this.Frame.ChartBorder=new ChartBorder();this.Frame.ChartBorder.UIElement=this.UIElement;this.Frame.ChartBorder.Top=30;this.Frame.ChartBorder.Left=5;this.Frame.ChartBorder.Bottom=20;this.Frame.Canvas=this.Canvas;//创建表格
16036
+ var chart=new ChartStockData();chart.Frame=this.Frame;chart.ChartBorder=this.Frame.ChartBorder;chart.Canvas=this.Canvas;chart.UIElement=this.UIElement;chart.GetEventCallback=function(id){return _this127.GetEventCallback(id);};chart.Data=this.Data;chart.BorderData=this.BorderData;chart.GlobalOption=this.GlobalOption;chart.FixedRowData=this.FixedRowData;chart.SortInfo=this.SortInfo;this.ChartPaint[0]=chart;if(option){}/*
16037
+ this.UIElement.ondblclick=(e)=>{ this.UIOnDblClick(e); }
16038
+ this.UIElement.onmousedown=(e)=> { this.UIOnMouseDown(e); }
16039
+ this.UIElement.onmousemove=(e)=>{ this.UIOnMouseMove(e);}
16040
+ this.UIElement.onmouseout=(e)=>{ this.UIOnMounseOut(e); }
16041
+ this.UIElement.onmouseleave=(e)=>{ this.UIOnMouseleave(e); }
16042
+ this.UIElement.oncontextmenu=(e)=> { this.UIOnContextMenu(e); }
16043
+ */};this.Draw=function(){if(this.UIElement.width<=0||this.UIElement.height<=0)return;this.Canvas.clearRect(0,0,this.UIElement.width,this.UIElement.height);var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
16044
+ this.Canvas.lineWidth=pixelTatio;//手机端需要根据分辨率比调整线段宽度
16045
+ this.Frame.Draw();this.Frame.DrawLogo();//框架内图形
16046
+ for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];item.Draw();}};this.OnSize=function(){if(!this.Frame)return;this.SetSizeChange(true);this.Draw();};this.SetSizeChange=function(bChanged){for(var i=0;i<this.ChartPaint.length;++i){var chart=this.ChartPaint[i];if(chart)chart.SizeChange=bChanged;}};this.ReloadResource=function(option){this.Frame.ReloadResource(option);for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(item.ReloadResource)item.ReloadResource(option);}if(option&&(option.Redraw||option.Draw)){this.SetSizeChange(true);this.Draw();}};this.SetColumn=function(aryColunm,option){var chart=this.ChartPaint[0];if(!chart)return;chart.SetColumn(aryColunm);chart.SizeChange=true;if(option&&option.Redraw)this.Draw();};this.SetHeaderColumn=function(aryColunm,option){var chart=this.ChartPaint[0];if(!chart)return;chart.SetHeaderColumn(aryColunm);chart.SizeChange=true;if(option&&option.Redraw)this.Draw();};this.SetBuySellCount=function(count,option){var chart=this.ChartPaint[0];if(!chart)return;chart.BuySellCount=count;chart.SizeChange=true;if(option&&option.Redraw)this.Draw();};}function JSStockInfoFrame(){this.ChartBorder;this.Canvas;//画布
16047
+ this.BorderLine=null;//1=上 2=下 4=左 8=右
16048
+ this.ClassName="JSStockInfoFrame";this.BorderColor=g_JSChartResource.StockInfo.BorderColor;//边框线
16049
+ this.LogoTextColor=g_JSChartResource.FrameLogo.TextColor;this.LogoTextFont=g_JSChartResource.FrameLogo.Font;this.ReloadResource=function(resource){this.BorderColor=g_JSChartResource.StockInfo.BorderColor;//边框线
16050
+ this.LogoTextColor=g_JSChartResource.FrameLogo.TextColor;this.LogoTextFont=g_JSChartResource.FrameLogo.Font;};this.Draw=function(){var left=ToFixedPoint(this.ChartBorder.GetLeft());var top=ToFixedPoint(this.ChartBorder.GetTop());var right=ToFixedPoint(this.ChartBorder.GetRight());var bottom=ToFixedPoint(this.ChartBorder.GetBottom());var width=right-left;var height=bottom-top;if(!IFrameSplitOperator.IsNumber(this.BorderLine)){this.Canvas.strokeStyle=this.BorderColor;this.Canvas.strokeRect(left,top,width,height);}else{this.Canvas.strokeStyle=this.BorderColor;this.Canvas.beginPath();if((this.BorderLine&1)>0)//上
16051
+ {this.Canvas.moveTo(left,top);this.Canvas.lineTo(right,top);}if((this.BorderLine&2)>0)//下
16052
+ {this.Canvas.moveTo(left,bottom);this.Canvas.lineTo(right,bottom);}if((this.BorderLine&4)>0)//左
16053
+ {this.Canvas.moveTo(left,top);this.Canvas.lineTo(left,bottom);}if((this.BorderLine&8)>0)//右
16054
+ {this.Canvas.moveTo(right,top);this.Canvas.lineTo(right,bottom);}this.Canvas.stroke();}};this.DrawLogo=function(){var text=g_JSChartResource.FrameLogo.Text;if(!IFrameSplitOperator.IsString(text))return;this.Canvas.fillStyle=this.LogoTextColor;this.Canvas.font=this.LogoTextFont;this.Canvas.textAlign='right';this.Canvas.textBaseline='bottom';var x=this.ChartBorder.GetRight()-30;var y=this.ChartBorder.GetBottom()-5;this.Canvas.fillText(text,x,y);};}function ChartStockData(){this.Canvas;//画布
16055
+ this.ChartBorder;//边框信息
16056
+ this.ChartFrame;//框架画法
16057
+ this.Name;//名称
16058
+ this.ClassName='ChartStockData';//类名
16059
+ this.UIElement;this.GetEventCallback;//获取事件
16060
+ this.Data;//数据
16061
+ this.BorderData;this.SizeChange=true;this.Decimal=2;//价格小数位数
16062
+ this.UpColor=g_JSChartResource.StockInfo.UpTextColor;this.DownColor=g_JSChartResource.StockInfo.DownTextColor;this.UnchangeColor=g_JSChartResource.StockInfo.UnchangeTextColor;this.HeaderConfig=CloneData(g_JSChartResource.StockInfo.Header);this.HeaderColumn=[{Name:"现价",Key:"Price",ColorType:3,FloatPrecision:-1,DefaultText:"--.--"},{Name:"涨幅",Key:"Increase",ColorType:1,FloatPrecision:2,StringFormat:"{Value}%",DefaultText:"--.--%"},{Name:"涨跌",Key:"UpDown",ColorType:1,FloatPrecision:-1,DefaultText:"--.--"}];//买卖5档配置
16063
+ this.BuySellConfig=CloneData(g_JSChartResource.StockInfo.BuySell);this.BuySellCount=5;//显示几档买卖盘
16064
+ this.TableConfig=CloneData(g_JSChartResource.StockInfo.Table);//显示的字段
16065
+ this.Column=[[{Name:"涨停价",Key:"UpLimit",ColorType:3,FloatPrecision:-1},{Name:"跌停价",Key:"DownLimit",ColorType:3,FloatPrecision:-1}],[{Name:"现价",Key:"Price",ColorType:3,FloatPrecision:-1},{Name:"今开",Key:"Open",ColorType:3,FloatPrecision:-1}],[{Name:"最高",Key:"High",ColorType:3,FloatPrecision:-1},{Name:"最低",Key:"Low",ColorType:3,FloatPrecision:-1}],[{Name:"涨幅",Key:"Increase",ColorType:1,FloatPrecision:2,StringFormat:"{Value}%"},{Name:"涨跌",Key:"UpDown",ColorType:1,FloatPrecision:-1}],[{Name:"振幅",Key:"Amplitude",FloatPrecision:2,StringFormat:"{Value}%"},{Name:"换手率",Key:"Exchange",FloatPrecision:2,StringFormat:"{Value}%"}],[{Name:"总量",Key:"Vol",FloatPrecision:0,Format:{Type:3,ExFloatPrecision:2}},{Name:"总额",Key:"Amount",FloatPrecision:0,Format:{Type:3,ExFloatPrecision:2}}],[{Name:"内盘",Key:"InVol",ColorType:4,FloatPrecision:0},{Name:"外盘",Key:"OutVol",ColorType:5,FloatPrecision:0}],[{Name:"TTM",Key:"PE_TTM",FloatPrecision:2},{Name:"市净率",Key:"PB",FloatPrecision:2}],[{Name:"流通市值",Key:"FlowMarketValue",FloatPrecision:0,Format:{Type:3,ExFloatPrecision:2}},{Name:"总市值",Key:"TotalMarketValue",FloatPrecision:0,Format:{Type:3,ExFloatPrecision:2}}]];this.ReloadResource=function(resource){this.UpColor=g_JSChartResource.StockInfo.UpTextColor;this.DownColor=g_JSChartResource.StockInfo.DownTextColor;this.UnchangeColor=g_JSChartResource.StockInfo.UnchangeTextColor;this.HeaderConfig=CloneData(g_JSChartResource.StockInfo.Header);//买卖5档配置
16066
+ this.BuySellConfig=CloneData(g_JSChartResource.StockInfo.BuySell);this.TableConfig=CloneData(g_JSChartResource.StockInfo.Table);};this.SetColumn=function(aryColumn){this.Column=[];if(!IFrameSplitOperator.IsNonEmptyArray(aryColumn))return;for(var i=0;i<aryColumn.length;++i){var item=aryColumn[i];if(!item)continue;this.Column.push(CloneData(item));}};this.SetHeaderColumn=function(aryColumn){this.HeaderColumn=[];if(!IFrameSplitOperator.IsNonEmptyArray(aryColumn))return;for(var i=0;i<aryColumn.length;++i){var item=aryColumn[i];if(!item)continue;this.HeaderColumn.push(CloneData(item));}};this.Draw=function(){this.Decimal=GetfloatPrecision(this.Data.Symbol);var border=this.ChartBorder.GetBorder();var position={Left:border.Left,Right:border.Right,Top:border.Top,Width:border.Right-border.Left,Border:border};this.DrawHeader(position);this.DrawBuySell(position);this.DrawTable(position);};this.DrawHeader=function(position){var config=this.HeaderConfig;var top=position.Top;var left=position.Left;var xText=left;var yText=top;this.Canvas.font=config.Name.Font;var nameHeight=this.Canvas.measureText("擎").width;nameHeight+=config.Name.Margin.Top+config.Name.Margin.Bottom;this.Canvas.font=config.Symbol.Font;var symbolHeight=this.Canvas.measureText("擎").width;symbolHeight+=config.Symbol.Margin.Top+config.Symbol.Margin.Bottom;var lineHeight=Math.max(symbolHeight,nameHeight);this.Canvas.textAlign='left';this.Canvas.textBaseline='bottom';if(this.Data.Name){var text=this.Data.Name;xText+=config.Name.Margin.Left;var yBottom=yText+lineHeight-config.Name.Margin.Bottom+config.Name.Margin.YOffset;this.Canvas.font=config.Name.Font;this.Canvas.fillStyle=config.Name.Color;this.Canvas.fillText(text,xText,yBottom);var textWidth=this.Canvas.measureText(text).width;xText+=textWidth+config.Name.Margin.Right;}if(this.Data.Symbol){var text=MARKET_SUFFIX_NAME.GetShortSymbol(this.Data.Symbol);xText+=config.Symbol.Margin.Left;var yBottom=yText+lineHeight-config.Symbol.Margin.Bottom+config.Symbol.Margin.YOffset;this.Canvas.font=config.Symbol.Font;this.Canvas.fillStyle=config.Symbol.Color;this.Canvas.fillText(text,xText,yBottom);var textWidth=this.Canvas.measureText(text).width;xText+=textWidth+config.Symbol.Margin.Right;}yText+=lineHeight;if(IFrameSplitOperator.IsNonEmptyArray(this.HeaderColumn)){lineHeight=0;for(var i=0;i<this.HeaderColumn.length&&i<config.AryCell.length;++i){var subConfig=config.AryCell[i];this.Canvas.font=subConfig.Font;var textHeight=this.Canvas.measureText("擎").width;textHeight+=subConfig.Margin.Top+subConfig.Margin.Bottom;if(lineHeight<textHeight)lineHeight=textHeight;}var xText=left;for(var i=0;i<this.HeaderColumn.length&&i<config.AryCell.length;++i){var item=this.HeaderColumn[i];var text="--.--";color=config.TextColor;if(item.DefaultText)text=item.DefaultText;var subConfig=config.AryCell[i];if(this.Data.MapData&&this.Data.MapData.has(item.Key)){var dataItem=this.Data.MapData.get(item.Key);var text=this.FormatValue(item,dataItem);if(item.ColorType===3&&IFrameSplitOperator.IsNumber(dataItem.Value))color=this.GetPriceColor(dataItem.Value);else if(item.ColorType==1&&IFrameSplitOperator.IsNumber(dataItem.Value))color=this.GetUpDownColor(dataItem.Value,0);else if(item.ColorType==4)color=this.UpColor;else if(item.ColorType==5)color=this.DownColor;}if(item.TextColor)color=item.TextColor;if(text){this.Canvas.font=subConfig.Font;var textWidth=this.Canvas.measureText(text).width;var x=xText+subConfig.Margin.Left;this.Canvas.fillStyle=color;var yBottom=yText+lineHeight-subConfig.Margin.Bottom+subConfig.Margin.YOffset;this.Canvas.fillText(text,x,yBottom);xText+=subConfig.Margin.Left+subConfig.Margin.Right+textWidth;}}yText+=lineHeight;}position.Top=yText;if(config.BottomLine&&config.BottomLine.Enable){var xLeft=position.Border.Left,xRight=position.Border.Right;this.Canvas.strokeStyle=config.BottomLine.Color;this.Canvas.lineWidth=1*GetDevicePixelRatio();this.Canvas.beginPath();this.Canvas.moveTo(xLeft,ToFixedPoint(yText));this.Canvas.lineTo(xRight,ToFixedPoint(yText));this.Canvas.stroke();}};//买卖5档
16067
+ this.DrawBuySell=function(position){if(this.BuySellCount<=0)return;var config=this.BuySellConfig;var top=position.Top;var left=position.Left+config.Margin.Left;var cellWidth=(position.Width-config.Margin.Left-config.Margin.Right)/4;var yText=top+config.Margin.Top;var xText=left;this.Canvas.font=config.Font;this.Canvas.textAlign='left';this.Canvas.textBaseline='bottom';var cellHeight=this.Canvas.measureText("擎").width+config.CellMargin.Top+config.CellMargin.Bottom;var count=this.BuySellCount;var sellVol=0,buyVol=0;for(var i=count-1;i>=0;--i){xText=left;var item=this.Data.Sells[i];this.DrawBuySellItem(item,xText,yText,cellWidth,cellHeight);if(IFrameSplitOperator.IsNumber(item.Vol))sellVol+=item.Vol;yText+=cellHeight;}var yCenter=null;if(config.CenterLine)//留出画线的位置
16068
+ {yCenter=yText;var lineConfig=config.CenterLine;var lineWidth=lineConfig.Width;yText+=lineWidth;}for(var i=0;i<count&&i<this.Data.Buys.length;++i){xText=left;var item=this.Data.Buys[i];this.DrawBuySellItem(item,xText,yText,cellWidth,cellHeight);if(IFrameSplitOperator.IsNumber(item.Vol))buyVol+=item.Vol;yText+=cellHeight;}position.Top=yText;if(IFrameSplitOperator.IsNumber(yCenter)&&config.CenterLine){var lineConfig=config.CenterLine;var xLeft=position.Border.Left,xRight=position.Border.Right;var lineWidth=lineConfig.Width;if(buyVol+sellVol>0){var buyRate=buyVol/(buyVol+sellVol);var barWidth=xRight-xLeft;var buyWidth=barWidth*buyRate;var xCenter=xLeft+buyWidth;this.Canvas.lineWidth=lineWidth;this.Canvas.strokeStyle=lineConfig.BuyColor;this.Canvas.beginPath();this.Canvas.moveTo(xLeft,ToFixedPoint2(lineWidth,yCenter));this.Canvas.lineTo(xCenter,ToFixedPoint2(lineWidth,yCenter));this.Canvas.stroke();this.Canvas.strokeStyle=lineConfig.SellColor;this.Canvas.beginPath();this.Canvas.moveTo(xCenter,ToFixedPoint2(lineWidth,yCenter));this.Canvas.lineTo(xRight,ToFixedPoint2(lineWidth,yCenter));this.Canvas.stroke();}else{this.Canvas.strokeStyle=lineConfig.NoneColor;this.Canvas.lineWidth=lineWidth;this.Canvas.beginPath();this.Canvas.moveTo(xLeft,ToFixedPoint2(lineWidth,yCenter));this.Canvas.lineTo(xRight,ToFixedPoint2(lineWidth,yCenter));this.Canvas.stroke();}}if(config.BottomLine&&config.BottomLine.Enable){var xLeft=position.Border.Left,xRight=position.Border.Right;this.Canvas.strokeStyle=config.BottomLine.Color;this.Canvas.lineWidth=1*GetDevicePixelRatio();this.Canvas.beginPath();this.Canvas.moveTo(xLeft,ToFixedPoint(yText));this.Canvas.lineTo(xRight,ToFixedPoint(yText));this.Canvas.stroke();}if(config.TopLine&&config.TopLine.Enable){var xLeft=position.Border.Left,xRight=position.Border.Right;this.Canvas.strokeStyle=config.BottomLine.Color;this.Canvas.lineWidth=1*GetDevicePixelRatio();this.Canvas.beginPath();this.Canvas.moveTo(xLeft,ToFixedPoint(top));this.Canvas.lineTo(xRight,ToFixedPoint(top));this.Canvas.stroke();}};this.DrawBuySellItem=function(item,left,top,cellWidth,cellHeight){var config=this.BuySellConfig;var xText=left;var yBottom=top+cellHeight-config.CellMargin.Bottom+config.CellMargin.YOffset;if(item.Name){this.Canvas.fillStyle=config.TitleColor;this.Canvas.fillText(item.Name,xText+config.CellMargin.Left,yBottom);}xText+=cellWidth;if(IFrameSplitOperator.IsNumber(item.Price)){var text=item.Price.toFixed(this.Decimal);var textWidth=this.Canvas.measureText(text).width;var x=xText+cellWidth-textWidth-config.CellMargin.Right;this.Canvas.fillStyle=this.GetPriceColor(item.Price);this.Canvas.fillText(text,x,yBottom);}xText+=cellWidth;xText+=cellWidth;if(IFrameSplitOperator.IsNumber(item.Vol)){var text=item.Vol.toFixed(0);var textWidth=this.Canvas.measureText(text).width;var x=xText+cellWidth-textWidth-config.CellMargin.Right;this.Canvas.fillStyle=config.VolColor;this.Canvas.fillText(text,x,yBottom);}};this.DrawTable=function(position){if(!IFrameSplitOperator.IsNonEmptyArray(this.Column))return;var config=this.TableConfig;var top=position.Top;var left=position.Left+config.Margin.Left;var cellWidth=(position.Width-config.Margin.Left-config.Margin.Right)/4;var yText=top+config.Margin.Top;var xText=left;this.Canvas.font=config.Font;this.Canvas.textAlign='left';this.Canvas.textBaseline='bottom';var cellHeight=this.Canvas.measureText("擎").width+config.CellMargin.Top+config.CellMargin.Bottom;for(var i=0;i<this.Column.length;++i){xText=left;var item=this.Column[i];if(!item||!IFrameSplitOperator.IsNonEmptyArray(item))continue;this.DrawRowItem(item,xText,yText,cellWidth,cellHeight);yText+=cellHeight;}};this.DrawRowItem=function(aryData,left,top,cellWidth,cellHeight){var config=this.TableConfig;var xText=left;var yBottom=top+cellHeight-config.CellMargin.Bottom+config.CellMargin.YOffset;for(var i=0;i<aryData.length&&i<2;++i){var item=aryData[i];if(item){if(item.Name){this.Canvas.fillStyle=config.TitleColor;this.Canvas.fillText(item.Name,xText+config.CellMargin.Left,yBottom);}xText+=cellWidth;if(this.Data.MapData&&this.Data.MapData.has(item.Key)){var dataItem=this.Data.MapData.get(item.Key);color=config.TextColor;var text=this.FormatValue(item,dataItem);if(item.ColorType===3&&IFrameSplitOperator.IsNumber(dataItem.Value))color=this.GetPriceColor(dataItem.Value);else if(item.ColorType==1&&IFrameSplitOperator.IsNumber(dataItem.Value))color=this.GetUpDownColor(dataItem.Value,0);else if(item.ColorType==4)color=this.UpColor;else if(item.ColorType==5)color=this.DownColor;if(item.TextColor)color=item.TextColor;if(text){if(i==0&&item.ShowType==1)//整行显示
16069
+ {var textWidth=this.Canvas.measureText(text).width;var x=xText+cellWidth*3-textWidth-config.CellMargin.Right;this.Canvas.fillStyle=color;this.Canvas.fillText(text,x,yBottom);break;}else{var textWidth=this.Canvas.measureText(text).width;var x=xText+cellWidth-textWidth-config.CellMargin.Right;this.Canvas.fillStyle=color;this.Canvas.fillText(text,x,yBottom);}}}xText+=cellWidth;}else{xText+=cellWidth+cellWidth;}}};this.FormatValue=function(column,data){var dec=0;//小数位数
16070
+ if(IFrameSplitOperator.IsNumber(column.FloatPrecision)){if(column.FloatPrecision===-1)dec=this.Decimal;else dec=column.FloatPrecision;}var text=null;if(!data)return text;if(data.Text){text=data.Text;}else if(IFrameSplitOperator.IsNumber(data.Value)){var value=data.Value;text=value.toFixed(dec);//格式化
16071
+ if(column.Format&&IFrameSplitOperator.IsNumber(column.Format.Type)){var format=column.Format;switch(format.Type){case 1://原始数据
16072
+ text=value.toFixed(dec);break;case 2://千分位分割
16073
+ text=IFrameSplitOperator.FormatValueThousandsString(value,dec);break;case 3:var exfloatPrecision=1;if(IFrameSplitOperator.IsNumber(format.ExFloatPrecision))exfloatPrecision=format.ExFloatPrecision;text=IFrameSplitOperator.FormatValueStringV2(value,dec,exfloatPrecision);break;}}}if(column.StringFormat&&text)text=column.StringFormat.replace('{Value}',text);return text;};this.GetPriceColor=function(price){var upperSymbol=null;if(this.Data.Symbol)upperSymbol=this.Data.Symbol.toUpperCase();if(MARKET_SUFFIX_NAME.IsChinaFutures(upperSymbol)){if(!IFrameSplitOperator.IsNumber(this.Data.YFClose))return this.UnchangeColor;return this.GetUpDownColor(price,this.Data.YFClose);}else{if(!IFrameSplitOperator.IsNumber(this.Data.YClose))return this.UnchangeColor;return this.GetUpDownColor(price,this.Data.YClose);}};this.GetUpDownColor=function(price,price2){if(price>price2)return this.UpColor;else if(price<price2)return this.DownColor;else return this.UnchangeColor;};}/********************************************************************************
15868
16074
  * 版本信息输出
15869
16075
  *
15870
- */var HQCHART_VERSION="1.1.15448";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();//把给外界调用的方法暴露出来
16076
+ */var HQCHART_VERSION="1.1.15450";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();//把给外界调用的方法暴露出来
15871
16077
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
15872
16078
  // BaseIndex:BaseIndex,
15873
16079
  // ChartLine:ChartLine,
@@ -15890,7 +16096,7 @@ JSCHART_CUSTOM_YCOORDINATE_ID:JSCHART_CUSTOM_YCOORDINATE_ID,//自定义刻度类
15890
16096
  JSAlgorithm:JSAlgorithm,//算法类
15891
16097
  JSComplier:JSComplier,//指标编译器
15892
16098
  JSIndexScript:JSIndexScript,//系统指标库
15893
- GetDevicePixelRatio:GetDevicePixelRatio},(0,_defineProperty3.default)(_jsChartInit$jsChartS,'GetDevicePixelRatio',GetDevicePixelRatio),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'ScriptIndexConsole',ScriptIndexConsole),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'STYLE_TYPE_ID',STYLE_TYPE_ID),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'HQChartStyle',HQChartStyle),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'JSConsole',JSConsole),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'KLineTooltipPaint',KLineTooltipPaint),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'MinuteTooltipPaint',MinuteTooltipPaint),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'ChartDrawTwoPointDemo',ChartDrawTwoPointDemo),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'ChartDrawThreePointDemo',ChartDrawThreePointDemo),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'CoordinateInfo',CoordinateInfo),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'JSDealChart',JSDealChart),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'DEAL_COLUMN_ID',DEAL_COLUMN_ID),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'JSReportChart',JSReportChart),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'REPORT_COLUMN_ID',REPORT_COLUMN_ID),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'JSTReportChart',JSTReportChart),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'TREPORT_COLUMN_ID',TREPORT_COLUMN_ID),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'JSKeyboardChart',JSKeyboardChart),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'KEYBOARD_COLUMN_ID',KEYBOARD_COLUMN_ID),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'JSPopKeyboard',JSPopKeyboard),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'JSScrollBarChart',JSScrollBarChart),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'IChartPainting',IChartPainting),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'IExtendChartPainting',IExtendChartPainting),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'IChartTitlePainting',IChartTitlePainting),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'IChartDrawPicture',IChartDrawPicture),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'DynamicTitleData',DynamicTitleData),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'JSDivFrameToolbar',JSDivFrameToolbar),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'CONDITION_PERIOD',CONDITION_PERIOD),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'ChartMinuteVolumBar',ChartMinuteVolumBar),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'ChartKLine',ChartKLine),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'KLineFrame',KLineFrame),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'JSCHART_WORKER_MESSAGE_ID',JSCHART_WORKER_MESSAGE_ID),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'JS_Frame',{KLineFrame:KLineFrame,KLineHScreenFrame:KLineHScreenFrame}),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'JS_ChangeStringFormat',{IChangeStringFormat:IChangeStringFormat,//数据格式化
16099
+ GetDevicePixelRatio:GetDevicePixelRatio},(0,_defineProperty3.default)(_jsChartInit$jsChartS,'GetDevicePixelRatio',GetDevicePixelRatio),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'ScriptIndexConsole',ScriptIndexConsole),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'STYLE_TYPE_ID',STYLE_TYPE_ID),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'HQChartStyle',HQChartStyle),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'JSConsole',JSConsole),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'KLineTooltipPaint',KLineTooltipPaint),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'MinuteTooltipPaint',MinuteTooltipPaint),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'ChartDrawTwoPointDemo',ChartDrawTwoPointDemo),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'ChartDrawThreePointDemo',ChartDrawThreePointDemo),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'CoordinateInfo',CoordinateInfo),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'JSDealChart',JSDealChart),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'DEAL_COLUMN_ID',DEAL_COLUMN_ID),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'JSReportChart',JSReportChart),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'REPORT_COLUMN_ID',REPORT_COLUMN_ID),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'JSTReportChart',JSTReportChart),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'TREPORT_COLUMN_ID',TREPORT_COLUMN_ID),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'JSKeyboardChart',JSKeyboardChart),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'KEYBOARD_COLUMN_ID',KEYBOARD_COLUMN_ID),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'JSPopKeyboard',JSPopKeyboard),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'JSScrollBarChart',JSScrollBarChart),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'JSStockInfoChart',JSStockInfoChart),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'JSStatusBarChart',JSStatusBarChart),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'IChartPainting',IChartPainting),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'IExtendChartPainting',IExtendChartPainting),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'IChartTitlePainting',IChartTitlePainting),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'IChartDrawPicture',IChartDrawPicture),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'DynamicTitleData',DynamicTitleData),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'JSDivFrameToolbar',JSDivFrameToolbar),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'CONDITION_PERIOD',CONDITION_PERIOD),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'ChartMinuteVolumBar',ChartMinuteVolumBar),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'ChartKLine',ChartKLine),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'KLineFrame',KLineFrame),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'JSCHART_WORKER_MESSAGE_ID',JSCHART_WORKER_MESSAGE_ID),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'JS_Frame',{KLineFrame:KLineFrame,KLineHScreenFrame:KLineHScreenFrame}),(0,_defineProperty3.default)(_jsChartInit$jsChartS,'JS_ChangeStringFormat',{IChangeStringFormat:IChangeStringFormat,//数据格式化
15894
16100
  HQMinuteTimeStringFormat:HQMinuteTimeStringFormat,//分时图X轴 十字光标输出格式化
15895
16101
  HQDateStringFormat:HQDateStringFormat,//K线图X轴 十字光标输出格式化
15896
16102
  HQPriceStringFormat:HQPriceStringFormat//分时图,K线图Y轴 十字光标输出格式化