hqchart 1.1.12475 → 1.1.12484
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/umychart.vue.js +15 -12
- package/package.json +1 -1
- package/src/jscommon/umychart.complier.js +1 -1
- package/src/jscommon/umychart.js +30 -10
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +32 -12
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +32 -12
- package/src/jscommon/umychart.wechat/umychart.complier.wechat.js +70 -31
- package/src/jscommon/umychart.wechat/umychart.framesplit.wechat.js +11 -1
- package/src/jscommon/umychart.wechat/umychart.wechat.3.0.js +1 -1
package/lib/umychart.vue.js
CHANGED
|
@@ -1353,7 +1353,7 @@ var scriptData=new JSIndexScript();if(option.ColorIndex)//五彩K线
|
|
|
1353
1353
|
}else if(item.JsonData){chart.WindowIndex[i]=new JsonDataIndex(item.Name,item.Script,item.Args,item);//脚本执行
|
|
1354
1354
|
}else if(item.Local&&item.Local.Data){chart.WindowIndex[i]=new LocalJsonDataIndex(item.Local.Name,item.Local.Args,{JsonData:item.Local.Data});}else if(item.API)//使用API挂接指标数据 API:{ Name:指标名字, Script:指标脚本可以为空, Args:参数可以为空, Url:指标执行地址 }
|
|
1355
1355
|
{var apiItem=item.API;chart.WindowIndex[i]=new APIScriptIndex(apiItem.Name,apiItem.Script,apiItem.Args,item);}else{var indexItem=JSIndexMap.Get(item.Index);if(indexItem){chart.WindowIndex[i]=indexItem.Create(item.Option);if(chart.WindowIndex[i].SetArgs)chart.WindowIndex[i].SetArgs(item.Args);chart.CreateWindowIndex(i);}else{var _indexInfo2=scriptData.Get(item.Index);if(!_indexInfo2)continue;if(item.Lock)_indexInfo2.Lock=item.Lock;_indexInfo2.ID=item.Index;var args=_indexInfo2.Args;if(item.Args)args=item.Args;if(item.IsShortTitle)_indexInfo2.IsShortTitle=item.IsShortTitle;if(item.TitleFont)_indexInfo2.TitleFont=item.TitleFont;if(IFrameSplitOperator.IsBool(item.IsSync))_indexInfo2.IsSync=item.IsSync;chart.WindowIndex[i]=new ScriptIndex(_indexInfo2.Name,_indexInfo2.Script,args,_indexInfo2);//脚本执行
|
|
1356
|
-
if(item.StringFormat>0)chart.WindowIndex[i].StringFormat=item.StringFormat;if(item.FloatPrecision>=0)chart.WindowIndex[i].FloatPrecision=item.FloatPrecision;}}var frame=chart.Frame.SubFrame[i].Frame;if(IFrameSplitOperator.IsBool(item.Modify))frame.ModifyIndex=item.Modify;if(IFrameSplitOperator.IsBool(item.Change))frame.ChangeIndex=item.Change;if(IFrameSplitOperator.IsBool(item.Close))frame.CloseIndex=item.Close;if(IFrameSplitOperator.IsBool(item.Overlay))frame.OverlayIndex=item.Overlay;if(IFrameSplitOperator.IsBool(item.Export))frame.ExportData=item.Export;if(IFrameSplitOperator.IsBool(item.MaxMin))chart.Frame.SubFrame[i].Frame.MaxMinWindow=item.MaxMin;if(IFrameSplitOperator.IsBool(item.TitleWindow))chart.Frame.SubFrame[i].Frame.TitleWindow=item.TitleWindow;if(item.IsDrawTitleBG==true)chart.Frame.SubFrame[i].Frame.IsDrawTitleBG=item.IsDrawTitleBG;if(IFrameSplitOperator.IsBool(item.IsShowNameArrow))chart.Frame.SubFrame[i].Frame.IsShowNameArrow=item.IsShowNameArrow;if(IFrameSplitOperator.IsNumber(item.TitleHeight))chart.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;else item.TitleHeight=chart.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight;if(item.
|
|
1356
|
+
if(item.StringFormat>0)chart.WindowIndex[i].StringFormat=item.StringFormat;if(item.FloatPrecision>=0)chart.WindowIndex[i].FloatPrecision=item.FloatPrecision;}}var frame=chart.Frame.SubFrame[i].Frame;if(IFrameSplitOperator.IsBool(item.Modify))frame.ModifyIndex=item.Modify;if(IFrameSplitOperator.IsBool(item.Change))frame.ChangeIndex=item.Change;if(IFrameSplitOperator.IsBool(item.Close))frame.CloseIndex=item.Close;if(IFrameSplitOperator.IsBool(item.Overlay))frame.OverlayIndex=item.Overlay;if(IFrameSplitOperator.IsBool(item.Export))frame.ExportData=item.Export;if(IFrameSplitOperator.IsBool(item.MaxMin))chart.Frame.SubFrame[i].Frame.MaxMinWindow=item.MaxMin;if(IFrameSplitOperator.IsBool(item.TitleWindow))chart.Frame.SubFrame[i].Frame.TitleWindow=item.TitleWindow;if(item.IsDrawTitleBG==true)chart.Frame.SubFrame[i].Frame.IsDrawTitleBG=item.IsDrawTitleBG;if(IFrameSplitOperator.IsBool(item.IsShowNameArrow))chart.Frame.SubFrame[i].Frame.IsShowNameArrow=item.IsShowNameArrow;if(IFrameSplitOperator.IsNumber(item.TitleHeight))chart.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;else item.TitleHeight=chart.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight;if(IFrameSplitOperator.IsBool(item.IsShowTitleArrow))chart.Frame.SubFrame[i].Frame.IsShowTitleArrow=item.IsShowTitleArrow;if(item.IsShowIndexName==false)chart.Frame.SubFrame[i].Frame.IsShowIndexName=false;if(item.IsShowOverlayIndexName==false)chart.Frame.SubFrame[i].Frame.IsShowOverlayIndexName=false;if(IFrameSplitOperator.IsNumber(item.IndexParamSpace))chart.Frame.SubFrame[i].Frame.IndexParamSpace=item.IndexParamSpace;if(IFrameSplitOperator.IsNumber(item.IndexTitleSpace))chart.Frame.SubFrame[i].Frame.IndexTitleSpace=item.IndexTitleSpace;if(item.OverlayIndexType){if(IFrameSplitOperator.IsNumber(item.OverlayIndexType.Position))chart.Frame.SubFrame[i].Frame.OverlayIndexType.Position=item.OverlayIndexType.Position;if(IFrameSplitOperator.IsNumber(item.OverlayIndexType.LineSpace))chart.Frame.SubFrame[i].Frame.OverlayIndexType.LineSpace=item.OverlayIndexType.LineSpace;}}//叠加指标宽度
|
|
1357
1357
|
if(option.OverlayIndexFrameWidth>40)chart.OverlayIndexFrameWidth=option.OverlayIndexFrameWidth;//叠加指标
|
|
1358
1358
|
if(IFrameSplitOperator.IsNonEmptyArray(option.OverlayIndex)){for(var i=0;i<option.OverlayIndex.length;++i){var item=option.OverlayIndex[i];if(item.Windows>=chart.Frame.SubFrame.length)continue;var itemString=(0,_stringify2.default)(item);var obj=JSON.parse(itemString);if(item.Index)obj.IndexName=item.Index;if(item.Windows>=0)obj.WindowIndex=item.Windows;chart.CreateOverlayWindowsIndex(obj);}}this.AdjustTitleHeight(chart);return chart;};//自定义指数历史K线图
|
|
1359
1359
|
this.CreateCustomKLineChartContainer=function(option){var chart=new CustomKLineChartContainer(this.CanvasElement);//创建改参数div
|
|
@@ -1385,7 +1385,7 @@ if(IFrameSplitOperator.IsNonEmptyArray(option.Windows)){var scriptData=new JSInd
|
|
|
1385
1385
|
}else if(item.API)//使用API挂接指标数据 API:{ Name:指标名字, Script:指标脚本可以为空, Args:参数可以为空, Url:指标执行地址 }
|
|
1386
1386
|
{var apiItem=item.API;chart.WindowIndex[index]=new APIScriptIndex(apiItem.Name,apiItem.Script,apiItem.Args,item);}else{var indexItem=JSIndexMap.Get(item.Index);if(indexItem){chart.WindowIndex[index]=indexItem.Create();//创建子窗口的指标
|
|
1387
1387
|
chart.CreateWindowIndex(index);}else{var indexInfo=scriptData.Get(item.Index);if(!indexInfo)continue;indexInfo.ID=item.Index;var args=indexInfo.Args;if(item.Args)args=item.Args;if(item.IsShortTitle)indexInfo.IsShortTitle=item.IsShortTitle;if(item.TitleFont)indexInfo.TitleFont=item.TitleFont;if(IFrameSplitOperator.IsBool(item.IsSync))indexInfo.IsSync=item.IsSync;chart.WindowIndex[index]=new ScriptIndex(indexInfo.Name,indexInfo.Script,args,indexInfo);//脚本执行
|
|
1388
|
-
if(item.StringFormat>0)chart.WindowIndex[index].StringFormat=item.StringFormat;if(item.FloatPrecision>=0)chart.WindowIndex[index].FloatPrecision=item.FloatPrecision;}}var frame=chart.Frame.SubFrame[index].Frame;if(IFrameSplitOperator.IsBool(item.Modify))frame.ModifyIndex=item.Modify;if(IFrameSplitOperator.IsBool(item.Change))frame.ChangeIndex=item.Change;if(IFrameSplitOperator.IsBool(item.Close))frame.CloseIndex=item.Close;if(IFrameSplitOperator.IsBool(item.Overlay))frame.OverlayIndex=item.Overlay;if(IFrameSplitOperator.IsBool(item.Export))frame.ExportData=item.Export;if(IFrameSplitOperator.IsBool(item.MaxMin))frame.MaxMinWindow=item.MaxMin;if(IFrameSplitOperator.IsBool(item.TitleWindow))frame.TitleWindow=item.TitleWindow;if(IFrameSplitOperator.IsNumber(item.YSplitType))chart.Frame.SubFrame[index].Frame.YSplitOperator.SplitType=item.YSplitType;if(!isNaN(item.TitleHeight))chart.Frame.SubFrame[index].Frame.ChartBorder.TitleHeight=item.TitleHeight;if(IFrameSplitOperator.IsBool(item.IsDrawTitleBG))chart.Frame.SubFrame[index].Frame.IsDrawTitleBG=item.IsDrawTitleBG;if(IFrameSplitOperator.IsBool(item.IsShowNameArrow))chart.Frame.SubFrame[
|
|
1388
|
+
if(item.StringFormat>0)chart.WindowIndex[index].StringFormat=item.StringFormat;if(item.FloatPrecision>=0)chart.WindowIndex[index].FloatPrecision=item.FloatPrecision;}}var frame=chart.Frame.SubFrame[index].Frame;if(IFrameSplitOperator.IsBool(item.Modify))frame.ModifyIndex=item.Modify;if(IFrameSplitOperator.IsBool(item.Change))frame.ChangeIndex=item.Change;if(IFrameSplitOperator.IsBool(item.Close))frame.CloseIndex=item.Close;if(IFrameSplitOperator.IsBool(item.Overlay))frame.OverlayIndex=item.Overlay;if(IFrameSplitOperator.IsBool(item.Export))frame.ExportData=item.Export;if(IFrameSplitOperator.IsBool(item.MaxMin))frame.MaxMinWindow=item.MaxMin;if(IFrameSplitOperator.IsBool(item.TitleWindow))frame.TitleWindow=item.TitleWindow;if(IFrameSplitOperator.IsNumber(item.YSplitType))chart.Frame.SubFrame[index].Frame.YSplitOperator.SplitType=item.YSplitType;if(!isNaN(item.TitleHeight))chart.Frame.SubFrame[index].Frame.ChartBorder.TitleHeight=item.TitleHeight;if(IFrameSplitOperator.IsBool(item.IsDrawTitleBG))chart.Frame.SubFrame[index].Frame.IsDrawTitleBG=item.IsDrawTitleBG;if(IFrameSplitOperator.IsBool(item.IsShowNameArrow))chart.Frame.SubFrame[index].Frame.IsShowNameArrow=item.IsShowNameArrow;if(IFrameSplitOperator.IsBool(item.IsShowTitleArrow))chart.Frame.SubFrame[index].Frame.IsShowTitleArrow=item.IsShowTitleArrow;if(item.IsShowIndexName==false)chart.Frame.SubFrame[index].Frame.IsShowIndexName=false;if(item.IsShowOverlayIndexName==false)chart.Frame.SubFrame[index].Frame.IsShowOverlayIndexName=false;}}this.AdjustTitleHeight(chart);//叠加指标
|
|
1389
1389
|
if(IFrameSplitOperator.IsNonEmptyArray(option.OverlayIndex)){for(var i=0;i<option.OverlayIndex.length;++i){var item=option.OverlayIndex[i];if(item.Windows>=chart.Frame.SubFrame.length)continue;var itemString=(0,_stringify2.default)(item);var obj=JSON.parse(itemString);if(item.Index)obj.IndexName=item.Index;if(item.Windows>=0)obj.WindowIndex=item.Windows;chart.CreateOverlayWindowsIndex(obj);}}return chart;};this.CreateMinMinuteChartContainer=function(option){var chart=null;if(option.Type==="迷你分钟走势图横屏")chart=new MinuteChartHScreenContainer(this.CanvasElement);else chart=new MinuteChartContainer(this.CanvasElement);if(option.NetworkFilter)chart.NetworkFilter=option.NetworkFilter;var windowsCount=2;if(option.BeforeOpen)//集合竞价
|
|
1390
1390
|
{var item=option.BeforeOpen;if(IFrameSplitOperator.IsBool(item.IsShow))chart.IsShowBeforeData=item.IsShow;if(IFrameSplitOperator.IsNumber(item.Width))chart.ExtendWidth.Left=item.Width;if(IFrameSplitOperator.IsBool(item.IsShowMultiDay))chart.IsShowMultiDayBeforeData=item.IsShowMultiDay;if(IFrameSplitOperator.IsNumber(item.MulitiDayWidth))chart.MultiDayExtendWidth.Left=item.MulitiDayWidth;}if(option.AfterClose)//收盘集合竞价
|
|
1391
1391
|
{var item=option.AfterClose;if(IFrameSplitOperator.IsBool(item.IsShow))chart.IsShowAfterData=item.IsShow;if(IFrameSplitOperator.IsNumber(item.ShareVol))chart.ShareAfterVol=item.ShareVol;if(IFrameSplitOperator.IsNumber(item.Width))chart.ExtendWidth.Right=item.Width;if(IFrameSplitOperator.IsBool(item.IsShowMultiDay))chart.IsShowMultiDayAfterData=item.IsShowMultiDay;if(IFrameSplitOperator.IsNumber(item.MulitiDayWidth))chart.MultiDayExtendWidth.Right=item.MulitiDayWidth;}if(!option.Listener)option.Listener={KeyDown:false,Wheel:false};chart.Create(windowsCount,option.Listener);//创建子窗口
|
|
@@ -1419,7 +1419,7 @@ if(item.IsShowRightText==false)chart.Frame.SubFrame[i].Frame.YSplitOperator.IsSh
|
|
|
1419
1419
|
{for(var i=0;i<option.Overlay.length;++i){var item=option.Overlay[i];chart.OverlaySymbol(item.Symbol,item);}}if(option.ExtendChart){for(var i=0;i<option.ExtendChart.length;++i){var item=option.ExtendChart[i];chart.CreateExtendChart(item.Name,item);}}if(IFrameSplitOperator.IsNonEmptyArray(option.Windows)){//创建子窗口的指标
|
|
1420
1420
|
var scriptData=new JSIndexScript();for(var i=0;i<option.Windows.length;++i){var item=option.Windows[i];if(item.Script){chart.WindowIndex[i]=new ScriptIndex(item.Name,item.Script,item.Args,item);//脚本执行
|
|
1421
1421
|
}else{var indexItem=JSIndexMap.Get(item.Index);if(indexItem){chart.WindowIndex[i]=indexItem.Create();chart.CreateWindowIndex(i);}else{var indexInfo=scriptData.Get(item.Index);if(!indexInfo)continue;if(item.Lock)indexInfo.Lock=item.Lock;chart.WindowIndex[i]=new ScriptIndex(indexInfo.Name,indexInfo.Script,indexInfo.Args,indexInfo);//脚本执行
|
|
1422
|
-
}}if(item.Modify!=null)chart.Frame.SubFrame[i].Frame.ModifyIndex=item.Modify;if(item.Change!=null)chart.Frame.SubFrame[i].Frame.ChangeIndex=item.Change;if(item.Close!=null)chart.Frame.SubFrame[i].Frame.CloseIndex=item.Close;if(item.Overlay!=null)frame.OverlayIndex=item.Overlay;if(IFrameSplitOperator.IsBool(item.Export))frame.ExportData=item.Export;if(IFrameSplitOperator.IsBool(item.MaxMin))chart.Frame.SubFrame[i].Frame.MaxMinWindow=item.MaxMin;if(IFrameSplitOperator.IsBool(item.TitleWindow))chart.Frame.SubFrame[i].Frame.TitleWindow=item.TitleWindow;if(IFrameSplitOperator.IsBool(item.IsDrawTitleBG))chart.Frame.SubFrame[i].Frame.IsDrawTitleBG=item.IsDrawTitleBG;if(IFrameSplitOperator.IsBool(item.IsShowNameArrow))chart.Frame.SubFrame[i].Frame.IsShowNameArrow=item.IsShowNameArrow;if(IFrameSplitOperator.IsNumber(item.TitleHeight))chart.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;if(item.
|
|
1422
|
+
}}if(item.Modify!=null)chart.Frame.SubFrame[i].Frame.ModifyIndex=item.Modify;if(item.Change!=null)chart.Frame.SubFrame[i].Frame.ChangeIndex=item.Change;if(item.Close!=null)chart.Frame.SubFrame[i].Frame.CloseIndex=item.Close;if(item.Overlay!=null)frame.OverlayIndex=item.Overlay;if(IFrameSplitOperator.IsBool(item.Export))frame.ExportData=item.Export;if(IFrameSplitOperator.IsBool(item.MaxMin))chart.Frame.SubFrame[i].Frame.MaxMinWindow=item.MaxMin;if(IFrameSplitOperator.IsBool(item.TitleWindow))chart.Frame.SubFrame[i].Frame.TitleWindow=item.TitleWindow;if(IFrameSplitOperator.IsBool(item.IsDrawTitleBG))chart.Frame.SubFrame[i].Frame.IsDrawTitleBG=item.IsDrawTitleBG;if(IFrameSplitOperator.IsBool(item.IsShowNameArrow))chart.Frame.SubFrame[i].Frame.IsShowNameArrow=item.IsShowNameArrow;if(IFrameSplitOperator.IsNumber(item.TitleHeight))chart.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;if(IFrameSplitOperator.IsBool(item.IsShowTitleArrow))chart.Frame.SubFrame[i].Frame.IsShowTitleArrow=item.IsShowTitleArrow;if(item.IsShowIndexName==false)chart.Frame.SubFrame[i].Frame.IsShowIndexName=false;if(item.IsShowOverlayIndexName==false)chart.Frame.SubFrame[i].Frame.IsShowOverlayIndexName=false;if(IFrameSplitOperator.IsNumber(item.IndexParamSpace))chart.Frame.SubFrame[i].Frame.IndexParamSpace=item.IndexParamSpace;if(IFrameSplitOperator.IsNumber(item.IndexTitleSpace))chart.Frame.SubFrame[i].Frame.IndexTitleSpace=item.IndexTitleSpace;}}this.AdjustTitleHeight(chart);return chart;};//深度图
|
|
1423
1423
|
this.CreateDepthChartContainer=function(option){var chart=null;chart=new DepthChartContainer(this.CanvasElement);if(option.NetworkFilter)chart.NetworkFilter=option.NetworkFilter;if(option.EnableScrollUpDown==true)chart.EnableScrollUpDown=option.EnableScrollUpDown;if(IFrameSplitOperator.IsPlusNumber(option.MaxVolRate))chart.MaxVolRate=option.MaxVolRate;if(option.ZoomStepPixel>0)chart.ZoomStepPixel=option.ZoomStepPixel;if(IFrameSplitOperator.IsString(option.SplashTitle))chart.LoadDataSplashTitle=option.SplashTitle;if(IFrameSplitOperator.IsBool(option.EnableVerifyRecvData))chart.EnableVerifyRecvData=option.EnableVerifyRecvData;if(option.Language){var value=g_JSChartLocalization.GetLanguageID(option.Language);if(IFrameSplitOperator.IsNumber(value))chart.LanguageID=value;}chart.Create(option.Listener);if(option.Border){if(IFrameSplitOperator.IsNumber(option.Border.Left))chart.Frame.ChartBorder.Left=option.Border.Left;else option.Border.Left=chart.Frame.ChartBorder.Left;if(IFrameSplitOperator.IsNumber(option.Border.Right))chart.Frame.ChartBorder.Right=option.Border.Right;else option.Border.Right=chart.Frame.ChartBorder.Right;if(IFrameSplitOperator.IsNumber(option.Border.Top))chart.Frame.ChartBorder.Top=option.Border.Top;else option.Border.Top=chart.Frame.ChartBorder.Top;if(IFrameSplitOperator.IsNumber(option.Border.Bottom))chart.Frame.ChartBorder.Bottom=option.Border.Bottom;else option.Border.Bottom=chart.Frame.ChartBorder.Bottom;}this.AdjustChartBorder(chart);if(option.CorssCursorTouchEnd===true)chart.CorssCursorTouchEnd=option.CorssCursorTouchEnd;if(option.CorssCursorInfo){var item=option.CorssCursorInfo;if(IFrameSplitOperator.IsNumber(item.HPenType))chart.ChartCorssCursor.HPenType=item.HPenType;if(IFrameSplitOperator.IsNumber(item.VPenType))chart.ChartCorssCursor.VPenType=item.VPenType;if(IFrameSplitOperator.IsBool(item.IsShowTooltip))chart.ChartCorssCursor.IsShowTooltip=item.IsShowTooltip;}if(option.Frame){var item=option.Frame;if(item.SplitCount)chart.Frame.YSplitOperator.SplitCount=item.SplitCount;if(IFrameSplitOperator.IsNumber(item.SplitType))chart.Frame.YSplitOperator.SplitType=item.SplitType;if(IFrameSplitOperator.IsNumber(item.Height))chart.Frame.Height=item.Height;if(IFrameSplitOperator.IsNumber(item.YLineType))chart.Frame.YSplitOperator.LineType=item.YLineType;if(IFrameSplitOperator.IsNumber(item.XLineType))chart.Frame.XSplitOperator.LineType=item.XLineType;if(Array.isArray(item.IgnoreYValue))chart.Frame.YSplitOperator.IgnoreYValue=item.IgnoreYValue;if(item.IsShowLeftText===false||item.IsShowLeftText===true){chart.Frame.IsShowYText[0]=item.IsShowLeftText;chart.Frame.YSplitOperator.IsShowLeftText=item.IsShowLeftText;//显示左边刻度
|
|
1424
1424
|
}if(item.IsShowRightText===false||item.IsShowRightText===true){chart.Frame.IsShowYText[1]=item.IsShowRightText;chart.Frame.YSplitOperator.IsShowRightText=item.IsShowRightText;//显示右边刻度
|
|
1425
1425
|
}if(item.IsShowXLine==false)chart.Frame.IsShowXLine=item.IsShowXLine;if(item.IsShowYLine==false)chart.Frame.IsShowYLine=item.IsShowYLine;if(IFrameSplitOperator.IsNumber(item.XSplitCount))chart.Frame.XSplitOperator.SplitCount=item.XSplitCount;//X轴刻度个数 半边的
|
|
@@ -2000,9 +2000,9 @@ this.GetExtendChartByClassNameV2=function(name){var aryChart=[];for(var i=0;i<th
|
|
|
2000
2000
|
{var width=0;for(var i=0;i<this.ExtendChartPaint.length;++i){var item=this.ExtendChartPaint[i];if(!item)continue;if(item.ClassName=="StockChip"||item.ClassName=="DrawToolsButton"){if(IFrameSplitOperator.IsNumber(item.Width))width+=item.Width;}}return width;};//删除扩展画法
|
|
2001
2001
|
this.DeleteExtendChart=function(data){if(data.Index>=this.ExtendChartPaint.length)return;if(this.ExtendChartPaint[data.Index]!=data.Chart)return;if(typeof data.Chart.Clear=='function')data.Chart.Clear();this.ExtendChartPaint.splice(data.Index,1);};//全屏提示信息 { Title:提示信息, Draw:false/true 是否立即重绘, }
|
|
2002
2002
|
this.EnableSplashScreen=function(option){if(!this.ChartSplashPaint)return;if(!option)return;if(IFrameSplitOperator.IsString(option.Title))this.ChartSplashPaint.SetTitle(option.Title);this.ChartSplashPaint.EnableSplash(true);if(option.Draw===false)return;this.Draw();};//设置指标窗口属性 windowItem=SetOption.Windows[i], frameItem=SetOption.Frames[i];
|
|
2003
|
-
this.SetSubFrameAttribute=function(subFrame,windowItem,frameItem){if(!subFrame||!subFrame.Frame)return;var frame=subFrame.Frame;if(windowItem){if(IFrameSplitOperator.IsBool(windowItem.Modify))frame.ModifyIndex=windowItem.Modify;if(IFrameSplitOperator.IsBool(windowItem.Change))frame.ChangeIndex=windowItem.Change;if(IFrameSplitOperator.IsBool(windowItem.Close))frame.CloseIndex=windowItem.Close;if(IFrameSplitOperator.IsBool(windowItem.Overlay))frame.OverlayIndex=windowItem.Overlay;if(IFrameSplitOperator.IsBool(windowItem.IsDrawTitleBG))frame.IsDrawTitleBG=windowItem.IsDrawTitleBG;if(IFrameSplitOperator.IsNumber(windowItem.TitleHeight))frame.ChartBorder.TitleHeight=windowItem.TitleHeight;else windowItem.TitleHeight=frame.ChartBorder.TitleHeight;if(IFrameSplitOperator.IsBool(windowItem.
|
|
2003
|
+
this.SetSubFrameAttribute=function(subFrame,windowItem,frameItem){if(!subFrame||!subFrame.Frame)return;var frame=subFrame.Frame;if(windowItem){if(IFrameSplitOperator.IsBool(windowItem.Modify))frame.ModifyIndex=windowItem.Modify;if(IFrameSplitOperator.IsBool(windowItem.Change))frame.ChangeIndex=windowItem.Change;if(IFrameSplitOperator.IsBool(windowItem.Close))frame.CloseIndex=windowItem.Close;if(IFrameSplitOperator.IsBool(windowItem.Overlay))frame.OverlayIndex=windowItem.Overlay;if(IFrameSplitOperator.IsBool(windowItem.IsDrawTitleBG))frame.IsDrawTitleBG=windowItem.IsDrawTitleBG;if(IFrameSplitOperator.IsNumber(windowItem.TitleHeight))frame.ChartBorder.TitleHeight=windowItem.TitleHeight;else windowItem.TitleHeight=frame.ChartBorder.TitleHeight;if(IFrameSplitOperator.IsBool(windowItem.IsShowTitleArrow))frame.IsShowTitleArrow=windowItem.IsShowTitleArrow;if(IFrameSplitOperator.IsBool(windowItem.IsShowIndexName))frame.IsShowIndexName=windowItem.IsShowIndexName;if(IFrameSplitOperator.IsNumber(windowItem.IndexParamSpace))frame.IndexParamSpace=windowItem.IndexParamSpace;if(IFrameSplitOperator.IsNumber(windowItem.IndexTitleSpace))frame.IndexTitleSpace=windowItem.IndexTitleSpace;}if(frameItem){if(frameItem.SplitCount)frame.YSplitOperator.SplitCount=frameItem.SplitCount;if(IFrameSplitOperator.IsBool(frameItem.IsShowXLine))frame.IsShowXLine=frameItem.IsShowXLine;if(IFrameSplitOperator.IsBool(frameItem.IsShowYLine))frame.IsShowYLine=frameItem.IsShowYLine;if(IFrameSplitOperator.IsBool(frameItem.IsShowLeftText)){frame.IsShowYText[0]=frameItem.IsShowLeftText;frame.YSplitOperator.IsShowLeftText=frameItem.IsShowLeftText;//显示左边刻度
|
|
2004
2004
|
}if(IFrameSplitOperator.IsBool(frameItem.IsShowRightText)){frame.IsShowYText[1]=frameItem.IsShowRightText;frame.YSplitOperator.IsShowRightText=frameItem.IsShowRightText;//显示右边刻度
|
|
2005
|
-
}if(IFrameSplitOperator.IsNumber(frameItem.Height)&&frameItem.Height>=0)subFrame.Height=frameItem.Height;}};this.SetSubFrameOption=function(subFrame,option){if(!option)return;if(option.Window){var item=option.Window;if(item.Modify!=null)subFrame.Frame.ModifyIndex=item.Modify;if(item.Change!=null)subFrame.Frame.ChangeIndex=item.Change;if(item.Close!=null)subFrame.Frame.CloseIndex=item.Close;if(item.Overlay!=null)subFrame.Frame.OverlayIndex=item.Overlay;if(item.IsDrawTitleBG==true)subFrame.Frame.IsDrawTitleBG=item.IsDrawTitleBG;if(IFrameSplitOperator.IsBool(item.IsShowNameArrow))subFrame.Frame.IsShowNameArrow=item.IsShowNameArrow;if(item.OverlayIndexType){if(IFrameSplitOperator.IsNumber(item.OverlayIndexType.Position))subFrame.Frame.OverlayIndexType.Position=item.OverlayIndexType.Position;if(IFrameSplitOperator.IsNumber(item.OverlayIndexType.LineSpace))subFrame.Frame.OverlayIndexType.LineSpace=item.OverlayIndexType.LineSpace;}}if(IFrameSplitOperator.IsNumber(option.SplitCount))subFrame.Frame.YSplitOperator.SplitCount=option.SplitCount;if(IFrameSplitOperator.IsNumber(option.TitleHeight))subFrame.Frame.ChartBorder.TitleHeight=option.TitleHeight;if(IFrameSplitOperator.IsBool(option.
|
|
2005
|
+
}if(IFrameSplitOperator.IsNumber(frameItem.Height)&&frameItem.Height>=0)subFrame.Height=frameItem.Height;}};this.SetSubFrameOption=function(subFrame,option){if(!option)return;if(option.Window){var item=option.Window;if(item.Modify!=null)subFrame.Frame.ModifyIndex=item.Modify;if(item.Change!=null)subFrame.Frame.ChangeIndex=item.Change;if(item.Close!=null)subFrame.Frame.CloseIndex=item.Close;if(item.Overlay!=null)subFrame.Frame.OverlayIndex=item.Overlay;if(item.IsDrawTitleBG==true)subFrame.Frame.IsDrawTitleBG=item.IsDrawTitleBG;if(IFrameSplitOperator.IsBool(item.IsShowNameArrow))subFrame.Frame.IsShowNameArrow=item.IsShowNameArrow;if(item.OverlayIndexType){if(IFrameSplitOperator.IsNumber(item.OverlayIndexType.Position))subFrame.Frame.OverlayIndexType.Position=item.OverlayIndexType.Position;if(IFrameSplitOperator.IsNumber(item.OverlayIndexType.LineSpace))subFrame.Frame.OverlayIndexType.LineSpace=item.OverlayIndexType.LineSpace;}}if(IFrameSplitOperator.IsNumber(option.SplitCount))subFrame.Frame.YSplitOperator.SplitCount=option.SplitCount;if(IFrameSplitOperator.IsNumber(option.TitleHeight))subFrame.Frame.ChartBorder.TitleHeight=option.TitleHeight;if(IFrameSplitOperator.IsBool(option.IsShowTitleArrow))subFrame.Frame.IsShowTitleArrow=option.IsShowTitleArrow;if(IFrameSplitOperator.IsBool(option.IsShowIndexName))subFrame.Frame.IsShowIndexName=option.IsShowIndexName;if(IFrameSplitOperator.IsBool(option.IsShowOverlayIndexName))subFrame.Frame.IsShowOverlayIndexName=option.IsShowOverlayIndexName;if(IFrameSplitOperator.IsNumber(option.IndexParamSpace))subFrame.Frame.IndexParamSpace=option.IndexParamSpace;if(IFrameSplitOperator.IsBool(option.IsShowXLine))subFrame.Frame.IsShowXLine=option.IsShowXLine;if(IFrameSplitOperator.IsBool(option.IsShowYLine))subFrame.Frame.IsShowYLine=option.IsShowYLine;if(IFrameSplitOperator.IsBool(option.IsShowIndexTitle))subFrame.Frame.IsShowIndexTitle=option.IsShowIndexTitle;if(IFrameSplitOperator.IsBool(option.IsShowLeftText)){subFrame.Frame.IsShowYText[0]=option.IsShowLeftText;subFrame.Frame.YSplitOperator.IsShowLeftText=option.IsShowLeftText;//显示左边刻度
|
|
2006
2006
|
}if(IFrameSplitOperator.IsBool(option.IsShowRightText)){subFrame.Frame.IsShowYText[1]=option.IsShowRightText;subFrame.Frame.YSplitOperator.IsShowRightText=option.IsShowRightText;//显示右边刻度
|
|
2007
2007
|
}};this.AddNewSubFrame=function(option){var _this12=this;var index=this.Frame.SubFrame.length;var subFrame=this.CreateSubFrameItem(index);var pixelRatio=GetDevicePixelRatio();subFrame.Frame.ChartBorder.TitleHeight*=pixelRatio;this.Frame.SubFrame[index]=subFrame;var titlePaint=new DynamicChartTitlePainting();titlePaint.Frame=this.Frame.SubFrame[index].Frame;titlePaint.Canvas=this.Canvas;titlePaint.LanguageID=this.LanguageID;titlePaint.GetEventCallback=function(id){return _this12.GetEventCallback(id);};this.TitlePaint[index+1]=titlePaint;this.SetSubFrameOption(subFrame,option);//最后一个显示X轴坐标
|
|
2008
2008
|
for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i].Frame;if(i==this.Frame.SubFrame.length-1)item.XSplitOperator.ShowText=true;else item.XSplitOperator.ShowText=false;}this.UpdataDataoffset();//更新数据偏移
|
|
@@ -2137,7 +2137,7 @@ this.Data;//主数据
|
|
|
2137
2137
|
this.IsLocked=false;//是否上锁
|
|
2138
2138
|
this.LockPaint=null;this.YSpecificMaxMin=null;//指定Y轴最大最小值
|
|
2139
2139
|
this.IsShowBorder=true;//是否显示边框
|
|
2140
|
-
this.
|
|
2140
|
+
this.IsShowTitleArrow=true;//是否显示指标信息上涨下跌箭头
|
|
2141
2141
|
this.IsShowIndexName=true;//是否显示指标名字
|
|
2142
2142
|
this.IsShowOverlayIndexName=true;//是否显示叠加指标名字
|
|
2143
2143
|
//this.OverlayIndexType= { Position:0, LineSpace:5 };
|
|
@@ -3841,13 +3841,15 @@ this.KLineDrawType=0;this.ClassName='ChartVolStick';this.PtInChart=this.PtInBar;
|
|
|
3841
3841
|
y=yBottom-height;if(this.KLineDrawType==6)//完全空心柱
|
|
3842
3842
|
{this.Canvas.strokeStyle=barColor.Color;this.Canvas.beginPath();this.Canvas.rect(ToFixedPoint(left),ToFixedPoint(y),ToFixedRect(dataWidth),height);this.Canvas.stroke();}else if(bUp&&(this.KLineDrawType==1||this.KLineDrawType==2||this.KLineDrawType==3))//空心柱子
|
|
3843
3843
|
{this.Canvas.strokeStyle=this.UpColor;this.Canvas.beginPath();this.Canvas.rect(ToFixedPoint(left),ToFixedPoint(y),ToFixedRect(dataWidth),height);this.Canvas.stroke();}else{this.Canvas.fillRect(ToFixedRect(left),y,ToFixedRect(dataWidth),height);}}}else//太细了直接话线
|
|
3844
|
-
{for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var value=this.Data.Data[i];var kItem=this.HistoryData.Data[i];if(value==null||kItem==null)continue;var y=this.ChartFrame.GetYFromData(value);if(isMinute){var x=this.ChartFrame.GetXFromIndex(j);}else{var left=xOffset;var right=xOffset+dataWidth;var x=left+(right-left)/2;}if(x>chartright)break;var barColor=this.
|
|
3845
|
-
this.
|
|
3844
|
+
{var preKItem=null;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var value=this.Data.Data[i];var kItem=this.HistoryData.Data[i];if(value==null||kItem==null)continue;var y=this.ChartFrame.GetYFromData(value);if(isMinute){var x=this.ChartFrame.GetXFromIndex(j);}else{var left=xOffset;var right=xOffset+dataWidth;var x=left+(right-left)/2;}if(x>chartright)break;if(isMinute){var barColor=this.GetMinuteBarColor(kItem,preKItem);//分时图颜色单独计算
|
|
3845
|
+
}else{var barColor=this.GetBarColor(kItem);}this.Canvas.strokeStyle=barColor.Color;//var x=this.ChartFrame.GetXFromIndex(j);
|
|
3846
|
+
this.Canvas.beginPath();this.Canvas.moveTo(ToFixedPoint(x),y);this.Canvas.lineTo(ToFixedPoint(x),yBottom);this.Canvas.stroke();preKItem=kItem;}}};this.HScreenDraw=function()//横屏画法
|
|
3846
3847
|
{var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var border=this.ChartBorder.GetHScreenBorder();var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartBottom=border.BottomEx;var xPointCount=this.ChartFrame.XPointCount;var lockRect=this.GetLockRect();if(lockRect)chartBottom=lockRect.Top;var yBottom=this.ChartFrame.GetYFromData(0);if(dataWidth>=4){yBottom=ToFixedRect(yBottom);for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var value=this.Data.Data[i];var kItem=this.HistoryData.Data[i];if(value==null||kItem==null)continue;var left=xOffset;var right=xOffset+dataWidth;if(right>chartBottom)break;var y=this.ChartFrame.GetYFromData(value);var barColor=this.GetBarColor(kItem);var bUp=barColor.IsUp;this.Canvas.fillStyle=barColor.Color;var height=ToFixedRect(y-yBottom);//高度调整为整数
|
|
3847
3848
|
if(bUp&&(this.KLineDrawType==1||this.KLineDrawType==2||this.KLineDrawType==3))//空心柱子
|
|
3848
3849
|
{this.Canvas.strokeStyle=this.UpColor;this.Canvas.beginPath();this.Canvas.rect(ToFixedPoint(yBottom),ToFixedPoint(left),height,ToFixedRect(dataWidth));this.Canvas.stroke();}else{this.Canvas.fillRect(yBottom,ToFixedRect(left),height,ToFixedRect(dataWidth));}}}else//太细了直接话线
|
|
3849
3850
|
{for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var value=this.Data.Data[i];var kItem=this.HistoryData.Data[i];if(value==null||kItem==null)continue;var y=this.ChartFrame.GetYFromData(value);var x=this.ChartFrame.GetXFromIndex(j);if(x>chartBottom)break;var barColor=this.GetBarColor(kItem);var bUp=barColor.IsUp;this.Canvas.strokeStyle=barColor.Color;//var x=this.ChartFrame.GetXFromIndex(j);
|
|
3850
3851
|
this.Canvas.beginPath();this.Canvas.moveTo(y,ToFixedPoint(x));this.Canvas.lineTo(yBottom,ToFixedPoint(x));this.Canvas.stroke();}}};this.GetMaxMin=function(){var xPointCount=this.ChartFrame.XPointCount;var range={};range.Min=null;range.Max=null;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var value=this.Data.Data[i];if(!IFrameSplitOperator.IsNumber(range.Max)||range.Max<value)range.Max=value;if(!IFrameSplitOperator.IsNumber(range.Min)||range.Min>value)range.Min=value;}if(range.Max>0&&range.Min>0)range.Min=0;else if(range.Max<0&&range.Min<0)range.Max=0;return range;};this.GetBarColor=function(kItem){if(kItem.Close>=kItem.Open)return{Color:this.UpColor,IsUp:true};//颜色, 是否是上涨
|
|
3852
|
+
else return{Color:this.DownColor,IsUp:false};};this.GetMinuteBarColor=function(kItem,preItem){var prePrice=kItem.YClose;if(preItem)prePrice=preItem.Close;if(kItem.Close>=prePrice)return{Color:this.UpColor,IsUp:true};//颜色, 是否是上涨
|
|
3851
3853
|
else return{Color:this.DownColor,IsUp:false};};this.GetItemData=function(indexData){if(!indexData)return null;if(!IFrameSplitOperator.IsNumber(indexData.Index))return null;if(!this.HistoryData||!IFrameSplitOperator.IsNonEmptyArray(this.HistoryData.Data))return null;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return null;var index=indexData.Index;if(index<0||index>=this.Data.Data.length||index>=this.HistoryData.Data.length)return null;var item=this.Data.Data[index];var kItem=this.HistoryData.Data[index];return[{Value:item,Color:this.GetBarColor(kItem).Color,Name:this.Name}];};}// VERTLINE(HIGH>=HHV(HIGH,20),1)表示在创20天新高画垂直虚线。
|
|
3852
3854
|
// 支持横屏
|
|
3853
3855
|
function ChartVericaltLine(){this.newMethod=IChartPainting;//派生
|
|
@@ -5509,7 +5511,7 @@ this.DynamicTitle={OutName:null,OutValue:null};this.OverlayDynamicTitle=new _map
|
|
|
5509
5511
|
this.ReloadResource=function(){this.Font=g_JSChartResource.TitleFont;this.TitleColor=g_JSChartResource.DefaultTextColor;this.OverlayIndexType.BGColor=g_JSChartResource.OverlayIndexTitleBGColor;};this.SetDynamicTitleData=function(outName,args,data){if(!data.OutName)data.OutName=new _map2.default();else data.OutName.clear();if(!data.OutValue)data.OutValue=new _map2.default();else data.OutValue.clear();var mapArgs=new _map2.default();for(var i in args){var item=args[i];mapArgs.set('{'+item.Name+'}',item);}for(var i in outName){var item=outName[i];if(item.DynamicName){var aryFond=item.DynamicName.match(/{\w*}/i);if(!aryFond||aryFond.length<=0){data.OutName.set(item.Name,item.DynamicName);}else{var dyName=item.DynamicName;var bFind=true;for(var j=0;j<aryFond.length;++j){var findItem=aryFond[j];if(mapArgs.has(findItem)){var value=mapArgs.get(findItem).Value;dyName=dyName.replace(findItem,value.toString());}else{bFind=false;break;}}if(bFind)data.OutName.set(item.Name,dyName);}}if(item.DynamicValue){data.OutValue.set(item.Name,item.DynamicValue);}}};this.SetDynamicTitle=function(outName,args,overlayID){if(IFrameSplitOperator.IsString(overlayID)){var dynamicTitle=null;if(this.OverlayDynamicTitle.has(overlayID)){dynamicTitle=this.OverlayDynamicTitle.get(overlayID);}else{dynamicTitle={OutName:null,OutValue:null};this.OverlayDynamicTitle.set(overlayID,dynamicTitle);}this.SetDynamicTitleData(outName,args,dynamicTitle);}else{this.SetDynamicTitleData(outName,args,this.DynamicTitle);}};this.GetDynamicOutName=function(key,overlayID){if(IFrameSplitOperator.IsString(overlayID)){if(!this.OverlayDynamicTitle.has(overlayID))return null;var dynamicTitle=this.OverlayDynamicTitle.get(overlayID);var outName=dynamicTitle.OutName;}else{var outName=this.DynamicTitle.OutName;}if(!outName||outName.size<=0)return null;if(!outName.has(key))return null;return outName.get(key);};this.GetDynamicOutValue=function(key,value){var outValue=this.DynamicTitle.OutValue;if(!outValue||outValue.size<=0)return null;if(!outValue.has(key))return null;var strFormat=outValue.get(key);strFormat=strFormat.replace('{Value}',value);return strFormat;};this.IsClickTitle=function(x,y)//是否点击了指标标题
|
|
5510
5512
|
{if(!this.TitleRect)return false;if(x>this.TitleRect.Left&&x<this.TitleRect.Left+this.TitleRect.Width&&y>this.TitleRect.Top&&y<this.TitleRect.Top+this.TitleRect.Height){return true;}return false;};this.FormatValue=function(value,item){if(item.StringFormat==STRING_FORMAT_TYPE.DEFAULT)return IFrameSplitOperator.FormatValueString(value,item.FloatPrecision,this.LanguageID);else if(item.StringFormat==STRING_FORMAT_TYPE.THOUSANDS)return IFrameSplitOperator.FormatValueThousandsString(value,item.FloatPrecision);else if(item.StringFormat==STRING_FORMAT_TYPE.ORIGINAL)return value.toFixed(item.FloatPrecision).toString();else if(item.StringFormat==STRING_FORMAT_TYPE.INTEGER)return IFrameSplitOperator.FromatIntegerString(value,item.FloatPrecision,this.LanguageID);};this.FormatMultiReport=function(data,format){var text="";for(var i in data){var item=data[i];var quarter=item.Quarter;var year=item.Year;var value=item.Value;if(text.length>0)text+=',';text+=year.toString();switch(quarter){case 1:text+='一季报 ';break;case 2:text+='半年报 ';break;case 3:text+='三季报 ';break;case 4:text+='年报 ';break;}text+=this.FormatValue(value,format);}return text;};this.FromatMultiDataLine=function(value,dataInfo){var text="";if(Array.isArray(value)){for(var i=0;i<value.length;++i){var item=value[i];if(item.Type==0)continue;if(!IFrameSplitOperator.IsNumber(item.Value))continue;var strValue=this.FormatValue(item.Value,dataInfo);if(text.length>0)text+=',';text+=strValue;}}else{if(value.Type!=0&&IFrameSplitOperator.IsNumber(value.Value)){text=this.FormatValue(value.Value,dataInfo);}}if(text.length<=0)return null;return text;};//多变量输出
|
|
5511
5513
|
this.FromatStackedBarTitle=function(aryBar,dataInfo){if(!IFrameSplitOperator.IsNonEmptyArray(aryBar))return null;if(!IFrameSplitOperator.IsNonEmptyArray(dataInfo.Color))return null;var aryText=[];for(var i=0;i<aryBar.length;++i){var value=aryBar[i];if(!IFrameSplitOperator.IsNumber(value))continue;var item={Text:value.toFixed(2)};if(dataInfo.Name&&dataInfo.Name[i])item.Name=dataInfo.Name[i];item.Color=dataInfo.Color[i];aryText.push(item);}if(aryText.length<=0)return null;return aryText;};this.ForamtMultiLineTitle=function(dataIndex,dataInfo){if(!IFrameSplitOperator.IsNonEmptyArray(dataInfo.Lines))return null;var aryText=[];for(var i=0;i<dataInfo.Lines.length;++i){var line=dataInfo.Lines[i];for(var j=0;j<line.Point.length;++j){var item=line.Point[j];if(item.Index==dataIndex){var item={Text:item.Value.toFixed(2)};if(aryText.length==0)item.Name=dataInfo.Name;item.Color=line.Color;aryText.push(item);break;}}}if(!IFrameSplitOperator.IsNonEmptyArray(aryText))return null;return aryText;};this.ForamtMultiPointTitle=function(dataIndex,dataInfo){if(!IFrameSplitOperator.IsNonEmptyArray(dataInfo.PointGroup))return null;var aryText=[];for(var i=0;i<dataInfo.PointGroup.length;++i){var groupItem=dataInfo.PointGroup[i];for(var j=0;j<groupItem.Point.length;++j){var item=groupItem.Point[j];if(item.Index==dataIndex){var item={Text:item.Value.toFixed(2)};if(aryText.length==0)item.Name=dataInfo.Name;item.Color=groupItem.BGColor;aryText.push(item);break;}}}if(!IFrameSplitOperator.IsNonEmptyArray(aryText))return null;return aryText;};this.FormatVPVRTitle=function(pt,dataInfo){var chart=dataInfo.Chart;var aryText=[];if(chart.VolType==0){var item={Text:" Up/Down ",Color:this.TitleColor};aryText.push(item);}else{var item={Text:" Total ",Color:this.TitleColor};aryText.push(item);}if(!IFrameSplitOperator.IsNumber(pt.Y))return aryText;var top=this.Frame.ChartBorder.GetTopEx();var bottom=this.Frame.ChartBorder.GetBottomEx();if(pt.Y<top||pt.Y>bottom)return aryText;var yPrice=this.Frame.GetYData(pt.Y);var find=null;for(var i=0;i<dataInfo.Data.Data.length;++i){var item=dataInfo.Data.Data[i];if(yPrice>=item.Price-dataInfo.Data.PriceOffset/2&&yPrice<item.Price+dataInfo.Data.PriceOffset/2){find=item;break;}}if(!find)return null;if(chart.VolType==0){var total=0;for(var i=0;i<find.Vol.length;++i){var volItem=find.Vol[i];if(!IFrameSplitOperator.IsNumber(volItem.Value))continue;var item={Text:IFrameSplitOperator.FormatVolString(volItem.Value,this.LanguageID)};total+=volItem.Value;if(IFrameSplitOperator.IsNumber(volItem.ColorID))item.Color=chart.BarColor[volItem.ColorID];else if(volItem.Color)item.Color=volItem.Color;aryText.push(item);}var item={Text:IFrameSplitOperator.FormatVolString(total,this.LanguageID),Color:this.TitleColor};aryText.push(item);}else{if(find.TotalVol&&IFrameSplitOperator.IsNumber(find.TotalVol.Value)){var item={Text:IFrameSplitOperator.FormatVolString(find.TotalVol.Value,this.LanguageID)};if(IFrameSplitOperator.IsNumber(find.TotalVol.ColorID))item.Color=chart.BarColor[find.TotalVol.ColorID];else if(find.TotalVol.Color)item.Color=find.TotalVol.Color;aryText.push(item);}}return aryText;};this.IsShowLastData=function(){var isShowLastData=false;if(this.DrawStatus&&this.DrawStatus.IsTitleShowLatestData){var status=this.DrawStatus;if(!IFrameSplitOperator.IsNumber(status.FrameID)||status.FrameID<0)isShowLastData=true;else if(status.CorssCursorTouchEnd&&status.IsOnTouch==false)isShowLastData=true;}else if(this.GlobalOption&&this.GlobalOption.IsDisplayLatest){isShowLastData=true;}return isShowLastData;};this.OnDrawTitleEvent=function(){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_INDEXTITLE_DRAW);if(!event)return;var data={Index:null,Data:this.Data,Title:this.Title,Script:this.Script,FrameID:this.Frame.Identify,OverlayIndex:this.OverlayIndex,IsShowTitleOnly:false};if(this.ArgumentsText)data.ArgumentsText=this.ArgumentsText;if(this.Frame&&this.Frame.ChartBorder)data.IsShowTitleOnly=this.Frame.ChartBorder.IsShowTitleOnly;if(IFrameSplitOperator.IsNumber(this.CursorIndex)){var index=Math.abs(this.CursorIndex);index=parseInt(index.toFixed(0));data.Index=index;//当前屏数据索引
|
|
5512
|
-
}var pixelTatio=GetDevicePixelRatio();var border=this.Frame.GetBorder();data.Left=border.LeftEx/pixelTatio;data.Top=border.Top/pixelTatio;data.Right=border.RightEx/pixelTatio;event.Callback(event,data,this);};this.IsSelectedChart=function(id){if(!id)return false;if(!this.SelectedChart)return false;if(!this.SelectedChart.Selected)return false;return this.SelectedChart.Selected.Identify==id;};this.Draw=function(moveonPoint,mouseStatus){this.Buttons=[];if(this.Frame.IsMinSize)return;this.IsKLineFrame=this.Frame.ClassName=='KLineFrame'||this.Frame.ClassName=='KLineHScreenFrame';this.IsDrawTitleBG=this.Frame.IsDrawTitleBG;this.IsShowNameArrow=this.Frame.IsShowNameArrow;this.IsShowUpDownArrow=this.Frame.
|
|
5514
|
+
}var pixelTatio=GetDevicePixelRatio();var border=this.Frame.GetBorder();data.Left=border.LeftEx/pixelTatio;data.Top=border.Top/pixelTatio;data.Right=border.RightEx/pixelTatio;event.Callback(event,data,this);};this.IsSelectedChart=function(id){if(!id)return false;if(!this.SelectedChart)return false;if(!this.SelectedChart.Selected)return false;return this.SelectedChart.Selected.Identify==id;};this.Draw=function(moveonPoint,mouseStatus){this.Buttons=[];if(this.Frame.IsMinSize)return;this.IsKLineFrame=this.Frame.ClassName=='KLineFrame'||this.Frame.ClassName=='KLineHScreenFrame';this.IsDrawTitleBG=this.Frame.IsDrawTitleBG;this.IsShowNameArrow=this.Frame.IsShowNameArrow;this.IsShowUpDownArrow=this.Frame.IsShowTitleArrow;this.IsShowIndexName=this.Frame.IsShowIndexName;this.IsShowOverlayIndexName=this.Frame.IsShowOverlayIndexName;this.OverlayIndexType.Position=this.Frame.OverlayIndexType.Position;this.OverlayIndexType.LineSpace=this.Frame.OverlayIndexType.LineSpace;this.ParamSpace=this.Frame.IndexParamSpace;this.TitleSpace=this.Frame.IndexTitleSpace;this.TitleRect=null;this.GlobalOption=this.Frame.GlobalOption;this.OnDrawTitleEvent();if(this.Frame.IsShowIndexTitle==false)return;if(g_JSChartResource.IsDOMFrameTitle===true)return;if(!this.Data)return;if(this.Frame.ChartBorder.TitleHeight<5)return;if(this.CursorIndex==null&&!(this.GlobalOption&&this.GlobalOption.IsDisplayLatest))return;if(this.Frame.IsHScreen===true){this.Canvas.save();this.HScreenDraw();this.Canvas.restore();/* 测试用
|
|
5513
5515
|
if (this.TitleRect)
|
|
5514
5516
|
{
|
|
5515
5517
|
this.Canvas.strokeStyle='rgba(200,0,50,0.5)';
|
|
@@ -7004,7 +7006,7 @@ var indexName=[{Index:"RSI"},{Index:"MACD"},{Index:"VOL"},{Index:"UOS"},{Index:"
|
|
|
7004
7006
|
if(option&&option.Windows.length>0)indexName=option.Windows;//外部设置增加窗口的默认指标
|
|
7005
7007
|
var scriptData=new JSIndexScript();for(var i=currentLength;i<count;++i){var item=indexName[i%indexName.length];var name=item.Index;var indexInfo=scriptData.Get(name);var args=indexInfo.Args;if(item.Args)args=item.Args;var indexData={Name:indexInfo.Name,Script:indexInfo.Script,Args:args,ID:item.Index,//扩展属性 可以是空
|
|
7006
7008
|
KLineType:indexInfo.KLineType,YSpecificMaxMin:indexInfo.YSpecificMaxMin,YSplitScale:indexInfo.YSplitScale,FloatPrecision:indexInfo.FloatPrecision,Condition:indexInfo.Condition,OutName:indexInfo.OutName};this.WindowIndex[i]=new ScriptIndex(indexData.Name,indexData.Script,indexData.Args,indexData);//脚本执行
|
|
7007
|
-
var subFrame=this.Frame.SubFrame[i];if(item.Modify!=null)this.Frame.SubFrame[i].Frame.ModifyIndex=item.Modify;if(item.Change!=null)this.Frame.SubFrame[i].Frame.ChangeIndex=item.Change;if(item.Close!=null)this.Frame.SubFrame[i].Frame.CloseIndex=item.Close;if(item.Overlay!=null)chart.Frame.SubFrame[i].Frame.OverlayIndex=item.Overlay;if(item.IsDrawTitleBG==true)this.Frame.SubFrame[i].Frame.IsDrawTitleBG=item.IsDrawTitleBG;if(IFrameSplitOperator.IsBool(item.IsShowNameArrow))this.Frame.SubFrame[i].Frame.IsShowNameArrow=item.IsShowNameArrow;if(IFrameSplitOperator.IsNumber(item.TitleHeight))this.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;else item.TitleHeight=this.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight;if(item.
|
|
7009
|
+
var subFrame=this.Frame.SubFrame[i];if(item.Modify!=null)this.Frame.SubFrame[i].Frame.ModifyIndex=item.Modify;if(item.Change!=null)this.Frame.SubFrame[i].Frame.ChangeIndex=item.Change;if(item.Close!=null)this.Frame.SubFrame[i].Frame.CloseIndex=item.Close;if(item.Overlay!=null)chart.Frame.SubFrame[i].Frame.OverlayIndex=item.Overlay;if(item.IsDrawTitleBG==true)this.Frame.SubFrame[i].Frame.IsDrawTitleBG=item.IsDrawTitleBG;if(IFrameSplitOperator.IsBool(item.IsShowNameArrow))this.Frame.SubFrame[i].Frame.IsShowNameArrow=item.IsShowNameArrow;if(IFrameSplitOperator.IsNumber(item.TitleHeight))this.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;else item.TitleHeight=this.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight;if(IFrameSplitOperator.IsBool(item.IsShowTitleArrow))this.Frame.SubFrame[i].Frame.IsShowTitleArrow=item.IsShowTitleArrow;if(item.IsShowIndexName==false)this.Frame.SubFrame[i].Frame.IsShowIndexName=false;if(item.IsShowOverlayIndexName==false)this.Frame.SubFrame[i].Frame.IsShowOverlayIndexName=false;if(IFrameSplitOperator.IsNumber(item.IndexParamSpace))this.Frame.SubFrame[i].Frame.IndexParamSpace=item.IndexParamSpace;if(IFrameSplitOperator.IsNumber(item.IndexTitleSpace))this.Frame.SubFrame[i].Frame.IndexTitleSpace=item.IndexTitleSpace;if(item.IsShowXLine==false)this.Frame.SubFrame[i].Frame.IsShowXLine=false;if(item.IsShowYLine==false)this.Frame.SubFrame[i].Frame.IsShowYLine=false;if(IFrameSplitOperator.IsBool(item.IsShowIndexTitle))this.Frame.SubFrame[i].Frame.IsShowIndexTitle=item.IsShowIndexTitle;if(IFrameSplitOperator.IsBool(item.IsShowLeftText)){subFrame.Frame.IsShowYText[0]=item.IsShowLeftText;subFrame.Frame.YSplitOperator.IsShowLeftText=item.IsShowLeftText;//显示左边刻度
|
|
7008
7010
|
}if(IFrameSplitOperator.IsBool(item.IsShowRightText)){subFrame.Frame.IsShowYText[1]=item.IsShowRightText;subFrame.Frame.YSplitOperator.IsShowRightText=item.IsShowRightText;//显示右边刻度
|
|
7009
7011
|
}if(item.OverlayIndexType){if(IFrameSplitOperator.IsNumber(item.OverlayIndexType.Position))subFrame.Frame.OverlayIndexType.Position=item.OverlayIndexType.Position;if(IFrameSplitOperator.IsNumber(item.OverlayIndexType.LineSpace))subFrame.Frame.OverlayIndexType.LineSpace=item.OverlayIndexType.LineSpace;}var bindData=this.ChartPaint[0].Data;this.BindIndexData(i,bindData);//执行脚本
|
|
7010
7012
|
}//this.UpdataDataoffset(); //更新数据偏移
|
|
@@ -10502,7 +10504,8 @@ if(bindData.Period>0)//周期数据
|
|
|
10502
10504
|
{var periodData=this.Data.GetPeriodData(this.Period);this.Data.Data=periodData;}}this.Data.Right=this.Right;this.Data.Period=this.Period;this.Name=data.name;};this.RecvMinuteHistroyData=function(data){JSConsole.Complier.Log('[JSSymbolData::RecvMinuteHistroyData] recv data',data);var hisData=this.JsonDataToMinuteHistoryData(data);this.Data=new ChartData();this.Data.DataType=1;/*分钟线数据 */this.Data.Data=hisData;this.SourceData=new ChartData();this.SourceData.Data=hisData;if(this.IsApiPeriod)//后台周期 前端不处理
|
|
10503
10505
|
{}else{if(ChartData.IsMinutePeriod(this.Period,false))//周期数据
|
|
10504
10506
|
{var periodData=this.Data.GetPeriodData(this.Period);this.Data.Data=periodData;}}this.Data.Period=this.Period;this.Name=data.name;};//最新的分钟数据走势图
|
|
10505
|
-
this.RecvMinuteData=function(data){JSConsole.Complier.Log('[JSSymbolData::RecvMinuteData] recv data',data);var aryMinuteData=this.JsonDataToMinuteData(data);this.Data=new ChartData();this.Data.DataType=2;/*分钟走势图数据 */this.Data.Data=aryMinuteData;this.Name=data.stock[0].name;};this.RecvMultiDayMinuteData=function(data){var aryMinuteData=this.JsonDataToMultiDayMinuteData(data);this.Data=new ChartData();this.Data.DataType=2;/*分钟走势图数据 */this.Data.Data=aryMinuteData;this.Name=data.name;};this.GetSymbolCacheData=function(dataName){if(!this.Data)return new Array();var upperSymbol=this.Symbol.toUpperCase();switch(dataName){case'CLOSE':case'C':return this.Data.GetClose();case'VOL':case'V':if(MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol)
|
|
10507
|
+
this.RecvMinuteData=function(data){JSConsole.Complier.Log('[JSSymbolData::RecvMinuteData] recv data',data);var aryMinuteData=this.JsonDataToMinuteData(data);this.Data=new ChartData();this.Data.DataType=2;/*分钟走势图数据 */this.Data.Data=aryMinuteData;this.Name=data.stock[0].name;};this.RecvMultiDayMinuteData=function(data){var aryMinuteData=this.JsonDataToMultiDayMinuteData(data);this.Data=new ChartData();this.Data.DataType=2;/*分钟走势图数据 */this.Data.Data=aryMinuteData;this.Name=data.name;};this.GetSymbolCacheData=function(dataName){if(!this.Data)return new Array();var upperSymbol=this.Symbol.toUpperCase();switch(dataName){case'CLOSE':case'C':return this.Data.GetClose();case'VOL':case'V':if(MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol)&&this.DataType==HQ_DATA_TYPE.KLINE_ID)//!! A股K线量单位时股,分时图单位还是手
|
|
10508
|
+
return this.Data.GetVol(100);//A股的 把股转成手
|
|
10506
10509
|
return this.Data.GetVol();case'OPEN':case'O':return this.Data.GetOpen();case'HIGH':case'H':return this.Data.GetHigh();case'LOW':case'L':return this.Data.GetLow();case'AMOUNT':case'AMO':return this.Data.GetAmount();case"OPI"://文华 持仓量
|
|
10507
10510
|
case'VOLINSTK'://通达信 持仓量
|
|
10508
10511
|
return this.Data.GetPosition();case"ZSTJJ"://均价
|
|
@@ -12487,7 +12490,7 @@ function HQChartScriptWorker(){this.Create=function(){var _this60=this;addEventL
|
|
|
12487
12490
|
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.ExecuteScript(item,data);}}};this.OnExecuteFinish=function(data,indexInfo,jsExectute){var message={Data:data,IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.FINISH_EXECUTE_SCRIPT};postMessage(message);};this.OnExecuteError=function(error,indexInfo){var message={IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.ERROR_EXECUTE_SCRIPT,Error:error};postMessage(message);};}/********************************************************************************
|
|
12488
12491
|
* 版本信息输出
|
|
12489
12492
|
*
|
|
12490
|
-
*/var HQCHART_VERSION="1.1.
|
|
12493
|
+
*/var HQCHART_VERSION="1.1.12483";function PrintHQChartVersion(){var log='*************************************************************************************************************\n*\n* HQChart Ver: '+HQCHART_VERSION+' \n* \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n*************************************************************************************************************\n';console.log(log);}PrintHQChartVersion();//把给外界调用的方法暴露出来
|
|
12491
12494
|
exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
|
|
12492
12495
|
// BaseIndex:BaseIndex,
|
|
12493
12496
|
// ChartLine:ChartLine,
|
package/package.json
CHANGED
|
@@ -12636,7 +12636,7 @@ function JSSymbolData(ast,option,jsExecute)
|
|
|
12636
12636
|
return this.Data.GetClose();
|
|
12637
12637
|
case 'VOL':
|
|
12638
12638
|
case 'V':
|
|
12639
|
-
if (MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol))
|
|
12639
|
+
if (MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol) && this.DataType==HQ_DATA_TYPE.KLINE_ID) //!! A股K线量单位时股,分时图单位还是手
|
|
12640
12640
|
return this.Data.GetVol(100); //A股的 把股转成手
|
|
12641
12641
|
return this.Data.GetVol();
|
|
12642
12642
|
case 'OPEN':
|
package/src/jscommon/umychart.js
CHANGED
|
@@ -613,7 +613,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
613
613
|
|
|
614
614
|
if (IFrameSplitOperator.IsNumber(item.TitleHeight)) chart.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;
|
|
615
615
|
else item.TitleHeight=chart.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight;
|
|
616
|
-
if (item.
|
|
616
|
+
if (IFrameSplitOperator.IsBool(item.IsShowTitleArrow)) chart.Frame.SubFrame[i].Frame.IsShowTitleArrow=item.IsShowTitleArrow;
|
|
617
617
|
if (item.IsShowIndexName==false) chart.Frame.SubFrame[i].Frame.IsShowIndexName=false;
|
|
618
618
|
if (item.IsShowOverlayIndexName==false) chart.Frame.SubFrame[i].Frame.IsShowOverlayIndexName=false;
|
|
619
619
|
if (IFrameSplitOperator.IsNumber(item.IndexParamSpace)) chart.Frame.SubFrame[i].Frame.IndexParamSpace=item.IndexParamSpace;
|
|
@@ -1048,9 +1048,9 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
1048
1048
|
if (IFrameSplitOperator.IsNumber(item.YSplitType)) chart.Frame.SubFrame[index].Frame.YSplitOperator.SplitType=item.YSplitType;
|
|
1049
1049
|
if (!isNaN(item.TitleHeight)) chart.Frame.SubFrame[index].Frame.ChartBorder.TitleHeight=item.TitleHeight;
|
|
1050
1050
|
if (IFrameSplitOperator.IsBool(item.IsDrawTitleBG)) chart.Frame.SubFrame[index].Frame.IsDrawTitleBG=item.IsDrawTitleBG;
|
|
1051
|
-
if (IFrameSplitOperator.IsBool(item.IsShowNameArrow)) chart.Frame.SubFrame[
|
|
1051
|
+
if (IFrameSplitOperator.IsBool(item.IsShowNameArrow)) chart.Frame.SubFrame[index].Frame.IsShowNameArrow=item.IsShowNameArrow;
|
|
1052
1052
|
|
|
1053
|
-
if (item.
|
|
1053
|
+
if (IFrameSplitOperator.IsBool(item.IsShowTitleArrow)) chart.Frame.SubFrame[index].Frame.IsShowTitleArrow=item.IsShowTitleArrow;
|
|
1054
1054
|
if (item.IsShowIndexName==false) chart.Frame.SubFrame[index].Frame.IsShowIndexName=false;
|
|
1055
1055
|
if (item.IsShowOverlayIndexName==false) chart.Frame.SubFrame[index].Frame.IsShowOverlayIndexName=false;
|
|
1056
1056
|
}
|
|
@@ -1451,7 +1451,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
1451
1451
|
|
|
1452
1452
|
if (IFrameSplitOperator.IsNumber(item.TitleHeight)) chart.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;
|
|
1453
1453
|
|
|
1454
|
-
if (item.
|
|
1454
|
+
if (IFrameSplitOperator.IsBool(item.IsShowTitleArrow)) chart.Frame.SubFrame[i].Frame.IsShowTitleArrow=item.IsShowTitleArrow;
|
|
1455
1455
|
if (item.IsShowIndexName==false) chart.Frame.SubFrame[i].Frame.IsShowIndexName=false;
|
|
1456
1456
|
if (item.IsShowOverlayIndexName==false) chart.Frame.SubFrame[i].Frame.IsShowOverlayIndexName=false;
|
|
1457
1457
|
if (IFrameSplitOperator.IsNumber(item.IndexParamSpace)) chart.Frame.SubFrame[i].Frame.IndexParamSpace=item.IndexParamSpace;
|
|
@@ -7719,7 +7719,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
7719
7719
|
if (IFrameSplitOperator.IsNumber(windowItem.TitleHeight)) frame.ChartBorder.TitleHeight=windowItem.TitleHeight;
|
|
7720
7720
|
else windowItem.TitleHeight=frame.ChartBorder.TitleHeight;
|
|
7721
7721
|
|
|
7722
|
-
if (IFrameSplitOperator.IsBool(windowItem.
|
|
7722
|
+
if (IFrameSplitOperator.IsBool(windowItem.IsShowTitleArrow)) frame.IsShowTitleArrow=windowItem.IsShowTitleArrow;
|
|
7723
7723
|
if (IFrameSplitOperator.IsBool(windowItem.IsShowIndexName)) frame.IsShowIndexName=windowItem.IsShowIndexName;
|
|
7724
7724
|
if (IFrameSplitOperator.IsNumber(windowItem.IndexParamSpace)) frame.IndexParamSpace=windowItem.IndexParamSpace;
|
|
7725
7725
|
if (IFrameSplitOperator.IsNumber(windowItem.IndexTitleSpace)) frame.IndexTitleSpace=windowItem.IndexTitleSpace;
|
|
@@ -7770,7 +7770,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
7770
7770
|
|
|
7771
7771
|
if (IFrameSplitOperator.IsNumber(option.SplitCount)) subFrame.Frame.YSplitOperator.SplitCount=option.SplitCount;
|
|
7772
7772
|
if (IFrameSplitOperator.IsNumber(option.TitleHeight)) subFrame.Frame.ChartBorder.TitleHeight=option.TitleHeight;
|
|
7773
|
-
if (IFrameSplitOperator.IsBool(option.
|
|
7773
|
+
if (IFrameSplitOperator.IsBool(option.IsShowTitleArrow)) subFrame.Frame.IsShowTitleArrow=option.IsShowTitleArrow;
|
|
7774
7774
|
if (IFrameSplitOperator.IsBool(option.IsShowIndexName)) subFrame.Frame.IsShowIndexName=option.IsShowIndexName;
|
|
7775
7775
|
if (IFrameSplitOperator.IsBool(option.IsShowOverlayIndexName)) subFrame.Frame.IsShowOverlayIndexName=option.IsShowOverlayIndexName;
|
|
7776
7776
|
if (IFrameSplitOperator.IsNumber(option.IndexParamSpace)) subFrame.Frame.IndexParamSpace=option.IndexParamSpace;
|
|
@@ -8991,7 +8991,7 @@ function IChartFramePainting()
|
|
|
8991
8991
|
|
|
8992
8992
|
this.YSpecificMaxMin=null; //指定Y轴最大最小值
|
|
8993
8993
|
this.IsShowBorder = true; //是否显示边框
|
|
8994
|
-
this.
|
|
8994
|
+
this.IsShowTitleArrow=true; //是否显示指标信息上涨下跌箭头
|
|
8995
8995
|
this.IsShowIndexName=true; //是否显示指标名字
|
|
8996
8996
|
this.IsShowOverlayIndexName=true; //是否显示叠加指标名字
|
|
8997
8997
|
//this.OverlayIndexType= { Position:0, LineSpace:5 };
|
|
@@ -29063,6 +29063,7 @@ function ChartVolStick()
|
|
|
29063
29063
|
}
|
|
29064
29064
|
else //太细了直接话线
|
|
29065
29065
|
{
|
|
29066
|
+
var preKItem=null;
|
|
29066
29067
|
for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
|
|
29067
29068
|
{
|
|
29068
29069
|
var value=this.Data.Data[i];
|
|
@@ -29083,7 +29084,15 @@ function ChartVolStick()
|
|
|
29083
29084
|
|
|
29084
29085
|
if (x>chartright) break;
|
|
29085
29086
|
|
|
29086
|
-
|
|
29087
|
+
if (isMinute)
|
|
29088
|
+
{
|
|
29089
|
+
var barColor=this.GetMinuteBarColor(kItem,preKItem); //分时图颜色单独计算
|
|
29090
|
+
}
|
|
29091
|
+
else
|
|
29092
|
+
{
|
|
29093
|
+
var barColor=this.GetBarColor(kItem);
|
|
29094
|
+
}
|
|
29095
|
+
|
|
29087
29096
|
this.Canvas.strokeStyle=barColor.Color;
|
|
29088
29097
|
|
|
29089
29098
|
//var x=this.ChartFrame.GetXFromIndex(j);
|
|
@@ -29091,6 +29100,8 @@ function ChartVolStick()
|
|
|
29091
29100
|
this.Canvas.moveTo(ToFixedPoint(x),y);
|
|
29092
29101
|
this.Canvas.lineTo(ToFixedPoint(x),yBottom);
|
|
29093
29102
|
this.Canvas.stroke();
|
|
29103
|
+
|
|
29104
|
+
preKItem=kItem;
|
|
29094
29105
|
}
|
|
29095
29106
|
}
|
|
29096
29107
|
}
|
|
@@ -29190,6 +29201,15 @@ function ChartVolStick()
|
|
|
29190
29201
|
else return { Color:this.DownColor, IsUp:false };
|
|
29191
29202
|
}
|
|
29192
29203
|
|
|
29204
|
+
this.GetMinuteBarColor=function(kItem, preItem)
|
|
29205
|
+
{
|
|
29206
|
+
var prePrice=kItem.YClose;
|
|
29207
|
+
if (preItem) prePrice=preItem.Close;
|
|
29208
|
+
|
|
29209
|
+
if (kItem.Close>=prePrice) return { Color:this.UpColor, IsUp:true }; //颜色, 是否是上涨
|
|
29210
|
+
else return { Color:this.DownColor, IsUp:false };
|
|
29211
|
+
}
|
|
29212
|
+
|
|
29193
29213
|
this.GetItemData=function(indexData)
|
|
29194
29214
|
{
|
|
29195
29215
|
if (!indexData) return null;
|
|
@@ -49336,7 +49356,7 @@ function DynamicChartTitlePainting()
|
|
|
49336
49356
|
this.IsKLineFrame= this.Frame.ClassName=='KLineFrame' || this.Frame.ClassName=='KLineHScreenFrame';
|
|
49337
49357
|
this.IsDrawTitleBG=this.Frame.IsDrawTitleBG;
|
|
49338
49358
|
this.IsShowNameArrow=this.Frame.IsShowNameArrow;
|
|
49339
|
-
this.IsShowUpDownArrow=this.Frame.
|
|
49359
|
+
this.IsShowUpDownArrow=this.Frame.IsShowTitleArrow;
|
|
49340
49360
|
this.IsShowIndexName=this.Frame.IsShowIndexName;
|
|
49341
49361
|
this.IsShowOverlayIndexName=this.Frame.IsShowOverlayIndexName;
|
|
49342
49362
|
this.OverlayIndexType.Position=this.Frame.OverlayIndexType.Position;
|
|
@@ -66842,7 +66862,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
66842
66862
|
|
|
66843
66863
|
if (IFrameSplitOperator.IsNumber(item.TitleHeight)) this.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;
|
|
66844
66864
|
else item.TitleHeight=this.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight;
|
|
66845
|
-
if (item.
|
|
66865
|
+
if (IFrameSplitOperator.IsBool(item.IsShowTitleArrow)) this.Frame.SubFrame[i].Frame.IsShowTitleArrow=item.IsShowTitleArrow;
|
|
66846
66866
|
if (item.IsShowIndexName==false) this.Frame.SubFrame[i].Frame.IsShowIndexName=false;
|
|
66847
66867
|
if (item.IsShowOverlayIndexName==false) this.Frame.SubFrame[i].Frame.IsShowOverlayIndexName=false;
|
|
66848
66868
|
if (IFrameSplitOperator.IsNumber(item.IndexParamSpace)) this.Frame.SubFrame[i].Frame.IndexParamSpace=item.IndexParamSpace;
|
|
@@ -4693,7 +4693,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4693
4693
|
|
|
4694
4694
|
if (IFrameSplitOperator.IsNumber(item.TitleHeight)) chart.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;
|
|
4695
4695
|
else item.TitleHeight=chart.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight;
|
|
4696
|
-
if (item.
|
|
4696
|
+
if (IFrameSplitOperator.IsBool(item.IsShowTitleArrow)) chart.Frame.SubFrame[i].Frame.IsShowTitleArrow=item.IsShowTitleArrow;
|
|
4697
4697
|
if (item.IsShowIndexName==false) chart.Frame.SubFrame[i].Frame.IsShowIndexName=false;
|
|
4698
4698
|
if (item.IsShowOverlayIndexName==false) chart.Frame.SubFrame[i].Frame.IsShowOverlayIndexName=false;
|
|
4699
4699
|
if (IFrameSplitOperator.IsNumber(item.IndexParamSpace)) chart.Frame.SubFrame[i].Frame.IndexParamSpace=item.IndexParamSpace;
|
|
@@ -5128,9 +5128,9 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
5128
5128
|
if (IFrameSplitOperator.IsNumber(item.YSplitType)) chart.Frame.SubFrame[index].Frame.YSplitOperator.SplitType=item.YSplitType;
|
|
5129
5129
|
if (!isNaN(item.TitleHeight)) chart.Frame.SubFrame[index].Frame.ChartBorder.TitleHeight=item.TitleHeight;
|
|
5130
5130
|
if (IFrameSplitOperator.IsBool(item.IsDrawTitleBG)) chart.Frame.SubFrame[index].Frame.IsDrawTitleBG=item.IsDrawTitleBG;
|
|
5131
|
-
if (IFrameSplitOperator.IsBool(item.IsShowNameArrow)) chart.Frame.SubFrame[
|
|
5131
|
+
if (IFrameSplitOperator.IsBool(item.IsShowNameArrow)) chart.Frame.SubFrame[index].Frame.IsShowNameArrow=item.IsShowNameArrow;
|
|
5132
5132
|
|
|
5133
|
-
if (item.
|
|
5133
|
+
if (IFrameSplitOperator.IsBool(item.IsShowTitleArrow)) chart.Frame.SubFrame[index].Frame.IsShowTitleArrow=item.IsShowTitleArrow;
|
|
5134
5134
|
if (item.IsShowIndexName==false) chart.Frame.SubFrame[index].Frame.IsShowIndexName=false;
|
|
5135
5135
|
if (item.IsShowOverlayIndexName==false) chart.Frame.SubFrame[index].Frame.IsShowOverlayIndexName=false;
|
|
5136
5136
|
}
|
|
@@ -5531,7 +5531,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
5531
5531
|
|
|
5532
5532
|
if (IFrameSplitOperator.IsNumber(item.TitleHeight)) chart.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;
|
|
5533
5533
|
|
|
5534
|
-
if (item.
|
|
5534
|
+
if (IFrameSplitOperator.IsBool(item.IsShowTitleArrow)) chart.Frame.SubFrame[i].Frame.IsShowTitleArrow=item.IsShowTitleArrow;
|
|
5535
5535
|
if (item.IsShowIndexName==false) chart.Frame.SubFrame[i].Frame.IsShowIndexName=false;
|
|
5536
5536
|
if (item.IsShowOverlayIndexName==false) chart.Frame.SubFrame[i].Frame.IsShowOverlayIndexName=false;
|
|
5537
5537
|
if (IFrameSplitOperator.IsNumber(item.IndexParamSpace)) chart.Frame.SubFrame[i].Frame.IndexParamSpace=item.IndexParamSpace;
|
|
@@ -11799,7 +11799,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
11799
11799
|
if (IFrameSplitOperator.IsNumber(windowItem.TitleHeight)) frame.ChartBorder.TitleHeight=windowItem.TitleHeight;
|
|
11800
11800
|
else windowItem.TitleHeight=frame.ChartBorder.TitleHeight;
|
|
11801
11801
|
|
|
11802
|
-
if (IFrameSplitOperator.IsBool(windowItem.
|
|
11802
|
+
if (IFrameSplitOperator.IsBool(windowItem.IsShowTitleArrow)) frame.IsShowTitleArrow=windowItem.IsShowTitleArrow;
|
|
11803
11803
|
if (IFrameSplitOperator.IsBool(windowItem.IsShowIndexName)) frame.IsShowIndexName=windowItem.IsShowIndexName;
|
|
11804
11804
|
if (IFrameSplitOperator.IsNumber(windowItem.IndexParamSpace)) frame.IndexParamSpace=windowItem.IndexParamSpace;
|
|
11805
11805
|
if (IFrameSplitOperator.IsNumber(windowItem.IndexTitleSpace)) frame.IndexTitleSpace=windowItem.IndexTitleSpace;
|
|
@@ -11850,7 +11850,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
11850
11850
|
|
|
11851
11851
|
if (IFrameSplitOperator.IsNumber(option.SplitCount)) subFrame.Frame.YSplitOperator.SplitCount=option.SplitCount;
|
|
11852
11852
|
if (IFrameSplitOperator.IsNumber(option.TitleHeight)) subFrame.Frame.ChartBorder.TitleHeight=option.TitleHeight;
|
|
11853
|
-
if (IFrameSplitOperator.IsBool(option.
|
|
11853
|
+
if (IFrameSplitOperator.IsBool(option.IsShowTitleArrow)) subFrame.Frame.IsShowTitleArrow=option.IsShowTitleArrow;
|
|
11854
11854
|
if (IFrameSplitOperator.IsBool(option.IsShowIndexName)) subFrame.Frame.IsShowIndexName=option.IsShowIndexName;
|
|
11855
11855
|
if (IFrameSplitOperator.IsBool(option.IsShowOverlayIndexName)) subFrame.Frame.IsShowOverlayIndexName=option.IsShowOverlayIndexName;
|
|
11856
11856
|
if (IFrameSplitOperator.IsNumber(option.IndexParamSpace)) subFrame.Frame.IndexParamSpace=option.IndexParamSpace;
|
|
@@ -13071,7 +13071,7 @@ function IChartFramePainting()
|
|
|
13071
13071
|
|
|
13072
13072
|
this.YSpecificMaxMin=null; //指定Y轴最大最小值
|
|
13073
13073
|
this.IsShowBorder = true; //是否显示边框
|
|
13074
|
-
this.
|
|
13074
|
+
this.IsShowTitleArrow=true; //是否显示指标信息上涨下跌箭头
|
|
13075
13075
|
this.IsShowIndexName=true; //是否显示指标名字
|
|
13076
13076
|
this.IsShowOverlayIndexName=true; //是否显示叠加指标名字
|
|
13077
13077
|
//this.OverlayIndexType= { Position:0, LineSpace:5 };
|
|
@@ -33143,6 +33143,7 @@ function ChartVolStick()
|
|
|
33143
33143
|
}
|
|
33144
33144
|
else //太细了直接话线
|
|
33145
33145
|
{
|
|
33146
|
+
var preKItem=null;
|
|
33146
33147
|
for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
|
|
33147
33148
|
{
|
|
33148
33149
|
var value=this.Data.Data[i];
|
|
@@ -33163,7 +33164,15 @@ function ChartVolStick()
|
|
|
33163
33164
|
|
|
33164
33165
|
if (x>chartright) break;
|
|
33165
33166
|
|
|
33166
|
-
|
|
33167
|
+
if (isMinute)
|
|
33168
|
+
{
|
|
33169
|
+
var barColor=this.GetMinuteBarColor(kItem,preKItem); //分时图颜色单独计算
|
|
33170
|
+
}
|
|
33171
|
+
else
|
|
33172
|
+
{
|
|
33173
|
+
var barColor=this.GetBarColor(kItem);
|
|
33174
|
+
}
|
|
33175
|
+
|
|
33167
33176
|
this.Canvas.strokeStyle=barColor.Color;
|
|
33168
33177
|
|
|
33169
33178
|
//var x=this.ChartFrame.GetXFromIndex(j);
|
|
@@ -33171,6 +33180,8 @@ function ChartVolStick()
|
|
|
33171
33180
|
this.Canvas.moveTo(ToFixedPoint(x),y);
|
|
33172
33181
|
this.Canvas.lineTo(ToFixedPoint(x),yBottom);
|
|
33173
33182
|
this.Canvas.stroke();
|
|
33183
|
+
|
|
33184
|
+
preKItem=kItem;
|
|
33174
33185
|
}
|
|
33175
33186
|
}
|
|
33176
33187
|
}
|
|
@@ -33270,6 +33281,15 @@ function ChartVolStick()
|
|
|
33270
33281
|
else return { Color:this.DownColor, IsUp:false };
|
|
33271
33282
|
}
|
|
33272
33283
|
|
|
33284
|
+
this.GetMinuteBarColor=function(kItem, preItem)
|
|
33285
|
+
{
|
|
33286
|
+
var prePrice=kItem.YClose;
|
|
33287
|
+
if (preItem) prePrice=preItem.Close;
|
|
33288
|
+
|
|
33289
|
+
if (kItem.Close>=prePrice) return { Color:this.UpColor, IsUp:true }; //颜色, 是否是上涨
|
|
33290
|
+
else return { Color:this.DownColor, IsUp:false };
|
|
33291
|
+
}
|
|
33292
|
+
|
|
33273
33293
|
this.GetItemData=function(indexData)
|
|
33274
33294
|
{
|
|
33275
33295
|
if (!indexData) return null;
|
|
@@ -53416,7 +53436,7 @@ function DynamicChartTitlePainting()
|
|
|
53416
53436
|
this.IsKLineFrame= this.Frame.ClassName=='KLineFrame' || this.Frame.ClassName=='KLineHScreenFrame';
|
|
53417
53437
|
this.IsDrawTitleBG=this.Frame.IsDrawTitleBG;
|
|
53418
53438
|
this.IsShowNameArrow=this.Frame.IsShowNameArrow;
|
|
53419
|
-
this.IsShowUpDownArrow=this.Frame.
|
|
53439
|
+
this.IsShowUpDownArrow=this.Frame.IsShowTitleArrow;
|
|
53420
53440
|
this.IsShowIndexName=this.Frame.IsShowIndexName;
|
|
53421
53441
|
this.IsShowOverlayIndexName=this.Frame.IsShowOverlayIndexName;
|
|
53422
53442
|
this.OverlayIndexType.Position=this.Frame.OverlayIndexType.Position;
|
|
@@ -70922,7 +70942,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
70922
70942
|
|
|
70923
70943
|
if (IFrameSplitOperator.IsNumber(item.TitleHeight)) this.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;
|
|
70924
70944
|
else item.TitleHeight=this.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight;
|
|
70925
|
-
if (item.
|
|
70945
|
+
if (IFrameSplitOperator.IsBool(item.IsShowTitleArrow)) this.Frame.SubFrame[i].Frame.IsShowTitleArrow=item.IsShowTitleArrow;
|
|
70926
70946
|
if (item.IsShowIndexName==false) this.Frame.SubFrame[i].Frame.IsShowIndexName=false;
|
|
70927
70947
|
if (item.IsShowOverlayIndexName==false) this.Frame.SubFrame[i].Frame.IsShowOverlayIndexName=false;
|
|
70928
70948
|
if (IFrameSplitOperator.IsNumber(item.IndexParamSpace)) this.Frame.SubFrame[i].Frame.IndexParamSpace=item.IndexParamSpace;
|
|
@@ -105010,7 +105030,7 @@ function JSSymbolData(ast,option,jsExecute)
|
|
|
105010
105030
|
return this.Data.GetClose();
|
|
105011
105031
|
case 'VOL':
|
|
105012
105032
|
case 'V':
|
|
105013
|
-
if (MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol))
|
|
105033
|
+
if (MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol) && this.DataType==HQ_DATA_TYPE.KLINE_ID) //!! A股K线量单位时股,分时图单位还是手
|
|
105014
105034
|
return this.Data.GetVol(100); //A股的 把股转成手
|
|
105015
105035
|
return this.Data.GetVol();
|
|
105016
105036
|
case 'OPEN':
|
|
@@ -128025,7 +128045,7 @@ function ScrollBarBGChart()
|
|
|
128025
128045
|
|
|
128026
128046
|
|
|
128027
128047
|
|
|
128028
|
-
var HQCHART_VERSION="1.1.
|
|
128048
|
+
var HQCHART_VERSION="1.1.12483";
|
|
128029
128049
|
|
|
128030
128050
|
function PrintHQChartVersion()
|
|
128031
128051
|
{
|
|
@@ -4737,7 +4737,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4737
4737
|
|
|
4738
4738
|
if (IFrameSplitOperator.IsNumber(item.TitleHeight)) chart.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;
|
|
4739
4739
|
else item.TitleHeight=chart.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight;
|
|
4740
|
-
if (item.
|
|
4740
|
+
if (IFrameSplitOperator.IsBool(item.IsShowTitleArrow)) chart.Frame.SubFrame[i].Frame.IsShowTitleArrow=item.IsShowTitleArrow;
|
|
4741
4741
|
if (item.IsShowIndexName==false) chart.Frame.SubFrame[i].Frame.IsShowIndexName=false;
|
|
4742
4742
|
if (item.IsShowOverlayIndexName==false) chart.Frame.SubFrame[i].Frame.IsShowOverlayIndexName=false;
|
|
4743
4743
|
if (IFrameSplitOperator.IsNumber(item.IndexParamSpace)) chart.Frame.SubFrame[i].Frame.IndexParamSpace=item.IndexParamSpace;
|
|
@@ -5172,9 +5172,9 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
5172
5172
|
if (IFrameSplitOperator.IsNumber(item.YSplitType)) chart.Frame.SubFrame[index].Frame.YSplitOperator.SplitType=item.YSplitType;
|
|
5173
5173
|
if (!isNaN(item.TitleHeight)) chart.Frame.SubFrame[index].Frame.ChartBorder.TitleHeight=item.TitleHeight;
|
|
5174
5174
|
if (IFrameSplitOperator.IsBool(item.IsDrawTitleBG)) chart.Frame.SubFrame[index].Frame.IsDrawTitleBG=item.IsDrawTitleBG;
|
|
5175
|
-
if (IFrameSplitOperator.IsBool(item.IsShowNameArrow)) chart.Frame.SubFrame[
|
|
5175
|
+
if (IFrameSplitOperator.IsBool(item.IsShowNameArrow)) chart.Frame.SubFrame[index].Frame.IsShowNameArrow=item.IsShowNameArrow;
|
|
5176
5176
|
|
|
5177
|
-
if (item.
|
|
5177
|
+
if (IFrameSplitOperator.IsBool(item.IsShowTitleArrow)) chart.Frame.SubFrame[index].Frame.IsShowTitleArrow=item.IsShowTitleArrow;
|
|
5178
5178
|
if (item.IsShowIndexName==false) chart.Frame.SubFrame[index].Frame.IsShowIndexName=false;
|
|
5179
5179
|
if (item.IsShowOverlayIndexName==false) chart.Frame.SubFrame[index].Frame.IsShowOverlayIndexName=false;
|
|
5180
5180
|
}
|
|
@@ -5575,7 +5575,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
5575
5575
|
|
|
5576
5576
|
if (IFrameSplitOperator.IsNumber(item.TitleHeight)) chart.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;
|
|
5577
5577
|
|
|
5578
|
-
if (item.
|
|
5578
|
+
if (IFrameSplitOperator.IsBool(item.IsShowTitleArrow)) chart.Frame.SubFrame[i].Frame.IsShowTitleArrow=item.IsShowTitleArrow;
|
|
5579
5579
|
if (item.IsShowIndexName==false) chart.Frame.SubFrame[i].Frame.IsShowIndexName=false;
|
|
5580
5580
|
if (item.IsShowOverlayIndexName==false) chart.Frame.SubFrame[i].Frame.IsShowOverlayIndexName=false;
|
|
5581
5581
|
if (IFrameSplitOperator.IsNumber(item.IndexParamSpace)) chart.Frame.SubFrame[i].Frame.IndexParamSpace=item.IndexParamSpace;
|
|
@@ -11843,7 +11843,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
11843
11843
|
if (IFrameSplitOperator.IsNumber(windowItem.TitleHeight)) frame.ChartBorder.TitleHeight=windowItem.TitleHeight;
|
|
11844
11844
|
else windowItem.TitleHeight=frame.ChartBorder.TitleHeight;
|
|
11845
11845
|
|
|
11846
|
-
if (IFrameSplitOperator.IsBool(windowItem.
|
|
11846
|
+
if (IFrameSplitOperator.IsBool(windowItem.IsShowTitleArrow)) frame.IsShowTitleArrow=windowItem.IsShowTitleArrow;
|
|
11847
11847
|
if (IFrameSplitOperator.IsBool(windowItem.IsShowIndexName)) frame.IsShowIndexName=windowItem.IsShowIndexName;
|
|
11848
11848
|
if (IFrameSplitOperator.IsNumber(windowItem.IndexParamSpace)) frame.IndexParamSpace=windowItem.IndexParamSpace;
|
|
11849
11849
|
if (IFrameSplitOperator.IsNumber(windowItem.IndexTitleSpace)) frame.IndexTitleSpace=windowItem.IndexTitleSpace;
|
|
@@ -11894,7 +11894,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
11894
11894
|
|
|
11895
11895
|
if (IFrameSplitOperator.IsNumber(option.SplitCount)) subFrame.Frame.YSplitOperator.SplitCount=option.SplitCount;
|
|
11896
11896
|
if (IFrameSplitOperator.IsNumber(option.TitleHeight)) subFrame.Frame.ChartBorder.TitleHeight=option.TitleHeight;
|
|
11897
|
-
if (IFrameSplitOperator.IsBool(option.
|
|
11897
|
+
if (IFrameSplitOperator.IsBool(option.IsShowTitleArrow)) subFrame.Frame.IsShowTitleArrow=option.IsShowTitleArrow;
|
|
11898
11898
|
if (IFrameSplitOperator.IsBool(option.IsShowIndexName)) subFrame.Frame.IsShowIndexName=option.IsShowIndexName;
|
|
11899
11899
|
if (IFrameSplitOperator.IsBool(option.IsShowOverlayIndexName)) subFrame.Frame.IsShowOverlayIndexName=option.IsShowOverlayIndexName;
|
|
11900
11900
|
if (IFrameSplitOperator.IsNumber(option.IndexParamSpace)) subFrame.Frame.IndexParamSpace=option.IndexParamSpace;
|
|
@@ -13115,7 +13115,7 @@ function IChartFramePainting()
|
|
|
13115
13115
|
|
|
13116
13116
|
this.YSpecificMaxMin=null; //指定Y轴最大最小值
|
|
13117
13117
|
this.IsShowBorder = true; //是否显示边框
|
|
13118
|
-
this.
|
|
13118
|
+
this.IsShowTitleArrow=true; //是否显示指标信息上涨下跌箭头
|
|
13119
13119
|
this.IsShowIndexName=true; //是否显示指标名字
|
|
13120
13120
|
this.IsShowOverlayIndexName=true; //是否显示叠加指标名字
|
|
13121
13121
|
//this.OverlayIndexType= { Position:0, LineSpace:5 };
|
|
@@ -33187,6 +33187,7 @@ function ChartVolStick()
|
|
|
33187
33187
|
}
|
|
33188
33188
|
else //太细了直接话线
|
|
33189
33189
|
{
|
|
33190
|
+
var preKItem=null;
|
|
33190
33191
|
for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
|
|
33191
33192
|
{
|
|
33192
33193
|
var value=this.Data.Data[i];
|
|
@@ -33207,7 +33208,15 @@ function ChartVolStick()
|
|
|
33207
33208
|
|
|
33208
33209
|
if (x>chartright) break;
|
|
33209
33210
|
|
|
33210
|
-
|
|
33211
|
+
if (isMinute)
|
|
33212
|
+
{
|
|
33213
|
+
var barColor=this.GetMinuteBarColor(kItem,preKItem); //分时图颜色单独计算
|
|
33214
|
+
}
|
|
33215
|
+
else
|
|
33216
|
+
{
|
|
33217
|
+
var barColor=this.GetBarColor(kItem);
|
|
33218
|
+
}
|
|
33219
|
+
|
|
33211
33220
|
this.Canvas.strokeStyle=barColor.Color;
|
|
33212
33221
|
|
|
33213
33222
|
//var x=this.ChartFrame.GetXFromIndex(j);
|
|
@@ -33215,6 +33224,8 @@ function ChartVolStick()
|
|
|
33215
33224
|
this.Canvas.moveTo(ToFixedPoint(x),y);
|
|
33216
33225
|
this.Canvas.lineTo(ToFixedPoint(x),yBottom);
|
|
33217
33226
|
this.Canvas.stroke();
|
|
33227
|
+
|
|
33228
|
+
preKItem=kItem;
|
|
33218
33229
|
}
|
|
33219
33230
|
}
|
|
33220
33231
|
}
|
|
@@ -33314,6 +33325,15 @@ function ChartVolStick()
|
|
|
33314
33325
|
else return { Color:this.DownColor, IsUp:false };
|
|
33315
33326
|
}
|
|
33316
33327
|
|
|
33328
|
+
this.GetMinuteBarColor=function(kItem, preItem)
|
|
33329
|
+
{
|
|
33330
|
+
var prePrice=kItem.YClose;
|
|
33331
|
+
if (preItem) prePrice=preItem.Close;
|
|
33332
|
+
|
|
33333
|
+
if (kItem.Close>=prePrice) return { Color:this.UpColor, IsUp:true }; //颜色, 是否是上涨
|
|
33334
|
+
else return { Color:this.DownColor, IsUp:false };
|
|
33335
|
+
}
|
|
33336
|
+
|
|
33317
33337
|
this.GetItemData=function(indexData)
|
|
33318
33338
|
{
|
|
33319
33339
|
if (!indexData) return null;
|
|
@@ -53460,7 +53480,7 @@ function DynamicChartTitlePainting()
|
|
|
53460
53480
|
this.IsKLineFrame= this.Frame.ClassName=='KLineFrame' || this.Frame.ClassName=='KLineHScreenFrame';
|
|
53461
53481
|
this.IsDrawTitleBG=this.Frame.IsDrawTitleBG;
|
|
53462
53482
|
this.IsShowNameArrow=this.Frame.IsShowNameArrow;
|
|
53463
|
-
this.IsShowUpDownArrow=this.Frame.
|
|
53483
|
+
this.IsShowUpDownArrow=this.Frame.IsShowTitleArrow;
|
|
53464
53484
|
this.IsShowIndexName=this.Frame.IsShowIndexName;
|
|
53465
53485
|
this.IsShowOverlayIndexName=this.Frame.IsShowOverlayIndexName;
|
|
53466
53486
|
this.OverlayIndexType.Position=this.Frame.OverlayIndexType.Position;
|
|
@@ -70966,7 +70986,7 @@ function KLineChartContainer(uielement,OffscreenElement)
|
|
|
70966
70986
|
|
|
70967
70987
|
if (IFrameSplitOperator.IsNumber(item.TitleHeight)) this.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight=item.TitleHeight;
|
|
70968
70988
|
else item.TitleHeight=this.Frame.SubFrame[i].Frame.ChartBorder.TitleHeight;
|
|
70969
|
-
if (item.
|
|
70989
|
+
if (IFrameSplitOperator.IsBool(item.IsShowTitleArrow)) this.Frame.SubFrame[i].Frame.IsShowTitleArrow=item.IsShowTitleArrow;
|
|
70970
70990
|
if (item.IsShowIndexName==false) this.Frame.SubFrame[i].Frame.IsShowIndexName=false;
|
|
70971
70991
|
if (item.IsShowOverlayIndexName==false) this.Frame.SubFrame[i].Frame.IsShowOverlayIndexName=false;
|
|
70972
70992
|
if (IFrameSplitOperator.IsNumber(item.IndexParamSpace)) this.Frame.SubFrame[i].Frame.IndexParamSpace=item.IndexParamSpace;
|
|
@@ -105054,7 +105074,7 @@ function JSSymbolData(ast,option,jsExecute)
|
|
|
105054
105074
|
return this.Data.GetClose();
|
|
105055
105075
|
case 'VOL':
|
|
105056
105076
|
case 'V':
|
|
105057
|
-
if (MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol))
|
|
105077
|
+
if (MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol) && this.DataType==HQ_DATA_TYPE.KLINE_ID) //!! A股K线量单位时股,分时图单位还是手
|
|
105058
105078
|
return this.Data.GetVol(100); //A股的 把股转成手
|
|
105059
105079
|
return this.Data.GetVol();
|
|
105060
105080
|
case 'OPEN':
|
|
@@ -128178,7 +128198,7 @@ function HQChartScriptWorker()
|
|
|
128178
128198
|
|
|
128179
128199
|
|
|
128180
128200
|
|
|
128181
|
-
var HQCHART_VERSION="1.1.
|
|
128201
|
+
var HQCHART_VERSION="1.1.12483";
|
|
128182
128202
|
|
|
128183
128203
|
function PrintHQChartVersion()
|
|
128184
128204
|
{
|
|
@@ -2071,15 +2071,15 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
2071
2071
|
//大于
|
|
2072
2072
|
this.GT=function(data,data2)
|
|
2073
2073
|
{
|
|
2074
|
-
let isNumber=
|
|
2075
|
-
let isNumber2=
|
|
2074
|
+
let isNumber=IFrameSplitOperator.IsNumber(data);
|
|
2075
|
+
let isNumber2=IFrameSplitOperator.IsNumber(data2);
|
|
2076
2076
|
|
|
2077
2077
|
//单数值比较
|
|
2078
2078
|
if (isNumber && isNumber2) return (data>data2 ? 1 : 0);
|
|
2079
2079
|
|
|
2080
2080
|
//都是数组比较
|
|
2081
2081
|
let result=[];
|
|
2082
|
-
if (
|
|
2082
|
+
if (Array.isArray(data) && Array.isArray(data2))
|
|
2083
2083
|
{
|
|
2084
2084
|
let count=Math.max(data.length, data2.length);
|
|
2085
2085
|
for(let i=0;i<count;++i)
|
|
@@ -2088,7 +2088,10 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
2088
2088
|
|
|
2089
2089
|
if (i<data.length && i<data2.length)
|
|
2090
2090
|
{
|
|
2091
|
-
if (
|
|
2091
|
+
if (!IFrameSplitOperator.IsVaild(data[i])) continue;
|
|
2092
|
+
if (!IFrameSplitOperator.IsVaild(data2[i])) continue;
|
|
2093
|
+
|
|
2094
|
+
result[i]=(data[i]>data2[i] ? 1:0);
|
|
2092
2095
|
}
|
|
2093
2096
|
}
|
|
2094
2097
|
|
|
@@ -2100,7 +2103,9 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
2100
2103
|
for(let i in data2)
|
|
2101
2104
|
{
|
|
2102
2105
|
result[i]=null;
|
|
2103
|
-
if (
|
|
2106
|
+
if (!IFrameSplitOperator.IsVaild(data)) continue;
|
|
2107
|
+
if (!IFrameSplitOperator.IsVaild(data2[i])) continue;
|
|
2108
|
+
result[i]=(data>data2[i] ? 1 : 0);
|
|
2104
2109
|
}
|
|
2105
2110
|
}
|
|
2106
2111
|
else //数组-单数据
|
|
@@ -2108,7 +2113,9 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
2108
2113
|
for(let i in data)
|
|
2109
2114
|
{
|
|
2110
2115
|
result[i]=null;
|
|
2111
|
-
if (
|
|
2116
|
+
if (!IFrameSplitOperator.IsVaild(data[i])) continue;
|
|
2117
|
+
if (!IFrameSplitOperator.IsVaild(data2)) continue;
|
|
2118
|
+
result[i]=(data[i]>data2 ? 1 : 0);
|
|
2112
2119
|
}
|
|
2113
2120
|
}
|
|
2114
2121
|
|
|
@@ -2118,15 +2125,15 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
2118
2125
|
//大于等于
|
|
2119
2126
|
this.GTE=function(data,data2)
|
|
2120
2127
|
{
|
|
2121
|
-
let isNumber=
|
|
2122
|
-
let isNumber2=
|
|
2128
|
+
let isNumber=IFrameSplitOperator.IsNumber(data);
|
|
2129
|
+
let isNumber2=IFrameSplitOperator.IsNumber(data2);
|
|
2123
2130
|
|
|
2124
2131
|
//单数值比较
|
|
2125
2132
|
if (isNumber && isNumber2) return (data>=data2 ? 1 : 0);
|
|
2126
2133
|
|
|
2127
2134
|
//都是数组比较
|
|
2128
2135
|
let result=[];
|
|
2129
|
-
if (
|
|
2136
|
+
if (Array.isArray(data) && Array.isArray(data2))
|
|
2130
2137
|
{
|
|
2131
2138
|
let count=Math.max(data.length, data2.length);
|
|
2132
2139
|
for(let i=0;i<count;++i)
|
|
@@ -2135,7 +2142,9 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
2135
2142
|
|
|
2136
2143
|
if (i<data.length && i<data2.length)
|
|
2137
2144
|
{
|
|
2138
|
-
if (
|
|
2145
|
+
if (!IFrameSplitOperator.IsVaild(data[i])) continue;
|
|
2146
|
+
if (!IFrameSplitOperator.IsVaild(data2[i])) continue;
|
|
2147
|
+
result[i]=(data[i]>=data2[i] ? 1:0);
|
|
2139
2148
|
}
|
|
2140
2149
|
}
|
|
2141
2150
|
|
|
@@ -2147,7 +2156,9 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
2147
2156
|
for(let i in data2)
|
|
2148
2157
|
{
|
|
2149
2158
|
result[i]=null;
|
|
2150
|
-
if (
|
|
2159
|
+
if (!IFrameSplitOperator.IsVaild(data)) continue;
|
|
2160
|
+
if (!IFrameSplitOperator.IsVaild(data2[i])) continue;
|
|
2161
|
+
result[i]=(data>=data2[i] ? 1 : 0);
|
|
2151
2162
|
}
|
|
2152
2163
|
}
|
|
2153
2164
|
else //数组-单数据
|
|
@@ -2155,7 +2166,9 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
2155
2166
|
for(let i in data)
|
|
2156
2167
|
{
|
|
2157
2168
|
result[i]=null;
|
|
2158
|
-
if (
|
|
2169
|
+
if (!IFrameSplitOperator.IsVaild(data[i])) continue;
|
|
2170
|
+
if (!IFrameSplitOperator.IsVaild(data2)) continue;
|
|
2171
|
+
result[i]=(data[i]>=data2 ? 1 : 0);
|
|
2159
2172
|
}
|
|
2160
2173
|
}
|
|
2161
2174
|
|
|
@@ -2165,15 +2178,15 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
2165
2178
|
//小于
|
|
2166
2179
|
this.LT=function(data,data2)
|
|
2167
2180
|
{
|
|
2168
|
-
let isNumber=
|
|
2169
|
-
let isNumber2=
|
|
2181
|
+
let isNumber=IFrameSplitOperator.IsNumber(data);
|
|
2182
|
+
let isNumber2=IFrameSplitOperator.IsNumber(data2);
|
|
2170
2183
|
|
|
2171
2184
|
//单数值比较
|
|
2172
2185
|
if (isNumber && isNumber2) return (data<data2 ? 1 : 0);
|
|
2173
2186
|
|
|
2174
2187
|
//都是数组比较
|
|
2175
2188
|
let result=[];
|
|
2176
|
-
if (
|
|
2189
|
+
if (Array.isArray(data) && Array.isArray(data2))
|
|
2177
2190
|
{
|
|
2178
2191
|
let count=Math.max(data.length, data2.length);
|
|
2179
2192
|
for(let i=0;i<count;++i)
|
|
@@ -2182,7 +2195,10 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
2182
2195
|
|
|
2183
2196
|
if (i<data.length && i<data2.length)
|
|
2184
2197
|
{
|
|
2185
|
-
if (
|
|
2198
|
+
if (!IFrameSplitOperator.IsVaild(data[i])) continue;
|
|
2199
|
+
if (!IFrameSplitOperator.IsVaild(data2[i])) continue;
|
|
2200
|
+
|
|
2201
|
+
result[i]=(data[i]<data2[i] ? 1:0);
|
|
2186
2202
|
}
|
|
2187
2203
|
}
|
|
2188
2204
|
|
|
@@ -2194,6 +2210,8 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
2194
2210
|
for(let i in data2)
|
|
2195
2211
|
{
|
|
2196
2212
|
result[i]=null;
|
|
2213
|
+
if (!IFrameSplitOperator.IsVaild(data)) continue;
|
|
2214
|
+
if (!IFrameSplitOperator.IsVaild(data2[i])) continue;
|
|
2197
2215
|
if ( !isNaN(data) && !isNaN(data2[i]) ) result[i]=(data<data2[i] ? 1 : 0);
|
|
2198
2216
|
}
|
|
2199
2217
|
}
|
|
@@ -2202,7 +2220,9 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
2202
2220
|
for(let i in data)
|
|
2203
2221
|
{
|
|
2204
2222
|
result[i]=null;
|
|
2205
|
-
if (
|
|
2223
|
+
if (!IFrameSplitOperator.IsVaild(data[i])) continue;
|
|
2224
|
+
if (!IFrameSplitOperator.IsVaild(data2)) continue;
|
|
2225
|
+
result[i]=(data[i]<data2 ? 1 : 0);
|
|
2206
2226
|
}
|
|
2207
2227
|
}
|
|
2208
2228
|
|
|
@@ -2212,15 +2232,15 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
2212
2232
|
//小于等于
|
|
2213
2233
|
this.LTE=function(data,data2)
|
|
2214
2234
|
{
|
|
2215
|
-
let isNumber=
|
|
2216
|
-
let isNumber2=
|
|
2235
|
+
let isNumber=IFrameSplitOperator.IsNumber(data);
|
|
2236
|
+
let isNumber2=IFrameSplitOperator.IsNumber(data2);
|
|
2217
2237
|
|
|
2218
2238
|
//单数值比较
|
|
2219
2239
|
if (isNumber && isNumber2) return (data>=data2 ? 1 : 0);
|
|
2220
2240
|
|
|
2221
2241
|
//都是数组比较
|
|
2222
2242
|
let result=[];
|
|
2223
|
-
if (
|
|
2243
|
+
if (Array.isArray(data) && Array.isArray(data2))
|
|
2224
2244
|
{
|
|
2225
2245
|
let count=Math.max(data.length, data2.length);
|
|
2226
2246
|
for(let i=0;i<count;++i)
|
|
@@ -2229,7 +2249,10 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
2229
2249
|
|
|
2230
2250
|
if (i<data.length && i<data2.length)
|
|
2231
2251
|
{
|
|
2232
|
-
if (
|
|
2252
|
+
if (!IFrameSplitOperator.IsVaild(data[i])) continue;
|
|
2253
|
+
if (!IFrameSplitOperator.IsVaild(data2[i])) continue;
|
|
2254
|
+
|
|
2255
|
+
result[i]=(data[i]<=data2[i] ? 1:0);
|
|
2233
2256
|
}
|
|
2234
2257
|
}
|
|
2235
2258
|
|
|
@@ -2241,7 +2264,9 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
2241
2264
|
for(let i in data2)
|
|
2242
2265
|
{
|
|
2243
2266
|
result[i]=null;
|
|
2244
|
-
if (
|
|
2267
|
+
if (!IFrameSplitOperator.IsVaild(data)) continue;
|
|
2268
|
+
if (!IFrameSplitOperator.IsVaild(data2[i])) continue;
|
|
2269
|
+
result[i]=(data<=data2[i] ? 1 : 0);
|
|
2245
2270
|
}
|
|
2246
2271
|
}
|
|
2247
2272
|
else //数组-单数据
|
|
@@ -2249,7 +2274,9 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
2249
2274
|
for(let i in data)
|
|
2250
2275
|
{
|
|
2251
2276
|
result[i]=null;
|
|
2252
|
-
if (
|
|
2277
|
+
if (!IFrameSplitOperator.IsVaild(data[i])) continue;
|
|
2278
|
+
if (!IFrameSplitOperator.IsVaild(data2)) continue;
|
|
2279
|
+
result[i]=(data[i]<=data2 ? 1 : 0);
|
|
2253
2280
|
}
|
|
2254
2281
|
}
|
|
2255
2282
|
|
|
@@ -2259,15 +2286,15 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
2259
2286
|
//等于
|
|
2260
2287
|
this.EQ=function(data,data2)
|
|
2261
2288
|
{
|
|
2262
|
-
let isNumber=
|
|
2263
|
-
let isNumber2=
|
|
2289
|
+
let isNumber=IFrameSplitOperator.IsNumber(data);
|
|
2290
|
+
let isNumber2=IFrameSplitOperator.IsNumber(data2);
|
|
2264
2291
|
|
|
2265
2292
|
//单数值比较
|
|
2266
2293
|
if (isNumber && isNumber2) return (data==data2 ? 1 : 0);
|
|
2267
2294
|
|
|
2268
2295
|
//都是数组比较
|
|
2269
2296
|
let result=[];
|
|
2270
|
-
if (
|
|
2297
|
+
if (Array.isArray(data) && Array.isArray(data2))
|
|
2271
2298
|
{
|
|
2272
2299
|
let count=Math.max(data.length, data2.length);
|
|
2273
2300
|
for(let i=0;i<count;++i)
|
|
@@ -2306,15 +2333,15 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
2306
2333
|
//不等于
|
|
2307
2334
|
this.NEQ = function (data, data2)
|
|
2308
2335
|
{
|
|
2309
|
-
let isNumber
|
|
2310
|
-
let isNumber2
|
|
2336
|
+
let isNumber=IFrameSplitOperator.IsNumber(data);
|
|
2337
|
+
let isNumber2=IFrameSplitOperator.IsNumber(data2);
|
|
2311
2338
|
|
|
2312
2339
|
//单数值比较
|
|
2313
2340
|
if (isNumber && isNumber2) return (data != data2 ? 1 : 0);
|
|
2314
2341
|
|
|
2315
2342
|
//都是数组比较
|
|
2316
2343
|
let result = [];
|
|
2317
|
-
if (
|
|
2344
|
+
if (Array.isArray(data) && Array.isArray(data2))
|
|
2318
2345
|
{
|
|
2319
2346
|
let count = Math.max(data.length, data2.length);
|
|
2320
2347
|
for (let i = 0; i < count; ++i)
|
|
@@ -3277,9 +3304,15 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
3277
3304
|
for(var i=0;i<n.length;++i)
|
|
3278
3305
|
{
|
|
3279
3306
|
var period=n[i];
|
|
3280
|
-
if (
|
|
3307
|
+
if (period==0)
|
|
3308
|
+
{
|
|
3309
|
+
result[i]=0;
|
|
3310
|
+
continue;
|
|
3311
|
+
}
|
|
3312
|
+
|
|
3313
|
+
if (!IFrameSplitOperator.IsNumber(period) ) period=i+1; //无效周期 第一个有效值开始.
|
|
3314
|
+
else if (period<0) period=i+1;
|
|
3281
3315
|
|
|
3282
|
-
if (period<1) period=i+1;
|
|
3283
3316
|
count=0;
|
|
3284
3317
|
for(var j=i, k=0 ;j>=0 && k<period ;--j,++k) //当前往前period天 统计
|
|
3285
3318
|
{
|
|
@@ -3709,6 +3742,12 @@ function JSAlgorithm(errorHandler, symbolData)
|
|
|
3709
3742
|
}
|
|
3710
3743
|
else
|
|
3711
3744
|
{
|
|
3745
|
+
result[0]=data[0];
|
|
3746
|
+
for(var i=1;i<n && i<data.length;++i) //前面小于N周期的累加
|
|
3747
|
+
{
|
|
3748
|
+
result[i] = result[i-1]+data[i];
|
|
3749
|
+
}
|
|
3750
|
+
|
|
3712
3751
|
for(var i=n-1,j=0;i<data.length;++i,++j)
|
|
3713
3752
|
{
|
|
3714
3753
|
for(var k=0;k<n;++k)
|
|
@@ -445,7 +445,7 @@ IFrameSplitOperator.IsNumber=function(value)
|
|
|
445
445
|
if (value==null) return false;
|
|
446
446
|
if (isNaN(value)) return false;
|
|
447
447
|
|
|
448
|
-
return
|
|
448
|
+
return typeof(value)=='number';
|
|
449
449
|
}
|
|
450
450
|
|
|
451
451
|
//判断是否是正数
|
|
@@ -463,6 +463,16 @@ IFrameSplitOperator.IsInteger=function(x)
|
|
|
463
463
|
return (typeof x === 'number') && (x % 1 === 0);
|
|
464
464
|
}
|
|
465
465
|
|
|
466
|
+
//是否有效
|
|
467
|
+
IFrameSplitOperator.IsVaild=function(value)
|
|
468
|
+
{
|
|
469
|
+
if (isNaN(value)) return false;
|
|
470
|
+
if (value==null) return false;
|
|
471
|
+
if (value===undefined) return false;
|
|
472
|
+
|
|
473
|
+
return true;
|
|
474
|
+
}
|
|
475
|
+
|
|
466
476
|
//判断字段是否存在
|
|
467
477
|
IFrameSplitOperator.IsObjectExist=function(obj)
|
|
468
478
|
{
|
|
@@ -2976,7 +2976,7 @@ function JSChartContainer(uielement)
|
|
|
2976
2976
|
|
|
2977
2977
|
if (IFrameSplitOperator.IsNumber(option.SplitCount)) subFrame.Frame.YSplitOperator.SplitCount=option.SplitCount;
|
|
2978
2978
|
if (IFrameSplitOperator.IsNumber(option.TitleHeight)) subFrame.Frame.ChartBorder.TitleHeight=option.TitleHeight;
|
|
2979
|
-
if (IFrameSplitOperator.IsBool(option.
|
|
2979
|
+
if (IFrameSplitOperator.IsBool(option.IsShowTitleArrow)) subFrame.Frame.IsShowTitleArrow=option.IsShowTitleArrow;
|
|
2980
2980
|
if (IFrameSplitOperator.IsBool(option.IsShowIndexName)) subFrame.Frame.IsShowIndexName=option.IsShowIndexName;
|
|
2981
2981
|
if (IFrameSplitOperator.IsBool(option.IsShowOverlayIndexName)) subFrame.Frame.IsShowOverlayIndexName=option.IsShowOverlayIndexName;
|
|
2982
2982
|
if (IFrameSplitOperator.IsNumber(option.IndexParamSpace)) subFrame.Frame.IndexParamSpace=option.IndexParamSpace;
|