hqchart 1.1.14971 → 1.1.14978

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.
@@ -299,7 +299,7 @@ LONG := SUM(RC,0);\n\
299
299
  DIFF := SMA(LONG,10,1);\n\
300
300
  DEA := SMA(LONG,20,1);\n\
301
301
  LON : DIFF-DEA;\n\
302
- LONMA : MA(LON,10);\n\
302
+ LONMA : MA(LON,N);\n\
303
303
  LONT : LON, COLORSTICK;'};return data;};JSIndexScript.prototype.NDB=function(){var data={Name:'NDB',Description:'脑电波',IsMainIndex:false,Args:[{Name:'P1',Value:5},{Name:'P2',Value:10}],Script://脚本
304
304
  'HH:=IF(C/REF(C,1)>1.098 AND L>REF(H,1),2*C-REF(C,1)-H,2*C-H-L);\n\
305
305
  V1:= BARSCOUNT(C) - 1;\n\
@@ -7107,7 +7107,11 @@ this.TopAreaConfig=CloneData(g_JSChartResource.ChartDrawTVLongPosition.TopArea);
7107
7107
  this.AryRectArea=[];this.GetXYCoordinate=this.GetXYCoordinate_default;this.SetOption_Backup=this.SetOption;this.PointToValue_Backup=this.PointToValue;this.SetOption=function(option){this.SetOption_Backup();if(option){}};this.PointToValue=function(){//拖拽完成 把点移动到线段头尾
7108
7108
  if(this.Frame.IsHScreen){this.Point[1].X=this.Point[0].X;}else{this.Point[1].Y=this.Point[0].Y;}this.PointToValue_Backup();};//0-10 鼠标对应的点索引 100=鼠标在正个图形上 -1 鼠标不在图形上
7109
7109
  this.IsPointIn=function(x,y,option){if(this.Status!=10)return-1;var value=this.IsPointInXYValue(x,y,option);if(value>=0)return value;for(var i=0;i<this.AryRectArea.length;++i){var item=this.AryRectArea[i];if(!item)continue;if(Path2DHelper.PtInRect(x,y,item.Rect)){return item.ID;}}return-1;};this.OnFinish=function(){if(!IFrameSplitOperator.IsNonEmptyArray(this.Value))return false;if(!this.Frame)return false;var data=this.Frame.Data;if(!data)return false;var firstPoint=this.Point[0];var firstValue=this.Value[0];var entryPrice=firstValue.YValue;var topPrice=entryPrice*(1+0.05);var bottomPrice=entryPrice*(1-0.05);this.Value[2]={XValue:firstValue.XValue,YValue:topPrice};this.Value[3]={XValue:firstValue.XValue,YValue:bottomPrice};if(firstValue.DateTime){var item=firstValue.DateTime;this.Value[2].DateTime={Date:item.Date,Time:item.Time};this.Value[3].DateTime={Date:item.Date,Time:item.Time};}this.Point[2]={X:firstPoint.X,Y:this.Frame.GetYFromData(topPrice,false)};this.Point[3]={X:firstPoint.X,Y:this.Frame.GetYFromData(bottomPrice,false)};this.PointCount=4;};this.IsDrawMain=function()//选中绘制在动态绘图上, 没有选中绘制在背景上
7110
- {if(!this.GetActiveDrawPicture)return true;var active=this.GetActiveDrawPicture();if(active.Select.Guid==this.Guid)return false;return true;};this.IsSelected=function(){if(!this.GetActiveDrawPicture)return false;var active=this.GetActiveDrawPicture();if(active.Select.Guid==this.Guid)return true;return false;};this.MainDraw=function(){this.Draw();};this.MainPartDraw=function(){if(this.IsFrameMinSize())return;var drawPoint=this.CalculateDrawPoint({IsCheckX:true,IsCheckY:true});if(!drawPoint)return;if(drawPoint.length<2)return;this.IsHScreen=this.Frame.IsHScreen;if(this.IsHScreen)return;this.ClipFrame();this.ChartBorder=this.Frame.ChartBorder;if(this.Status==10||this.Status==20){this.DrawLabel(drawPoint);this.DrawPoint(drawPoint);}this.Canvas.restore();};this.Draw=function(){this.AryRectArea=[];if(this.IsFrameMinSize())return;var drawPoint=this.CalculateDrawPoint({IsCheckX:true,IsCheckY:true});if(!drawPoint)return;if(drawPoint.length<2)return;this.IsHScreen=this.Frame.IsHScreen;if(this.IsHScreen)return;this.ClipFrame();this.ChartBorder=this.Frame.ChartBorder;if(this.Status==10||this.Status==20)//0=开始画 1=完成第1个点 2=完成第2个点 3=完成第3个点 10=完成 20=移动)
7110
+ {if(!this.GetActiveDrawPicture)return true;var active=this.GetActiveDrawPicture();if(active.Select.Guid==this.Guid)return false;return true;};this.IsSelected=function(){if(!this.GetActiveDrawPicture)return false;var active=this.GetActiveDrawPicture();//console.log(`[IsSelected] Select=${active.Select.Guid} MoveOn=${active.MoveOn.Guid}`);
7111
+ if(active.Select.Guid==this.Guid||active.MoveOn.Guid==this.Guid)return true;return false;};//未选中 作为背景色绘制
7112
+ this.MainDraw=function(){this.AryRectArea=[];if(this.IsFrameMinSize())return;//0=开始画 1=完成第1个点 2=完成第2个点 3=完成第3个点 10=完成 20=移动)
7113
+ if(this.Status!=10&&this.Status!=20)return;var drawPoint=this.CalculateDrawPoint({IsCheckX:true,IsCheckY:true});if(!drawPoint)return;if(drawPoint.length<2)return;this.IsHScreen=this.Frame.IsHScreen;if(this.IsHScreen)return;this.ClipFrame();this.ChartBorder=this.Frame.ChartBorder;this.DrawArea(drawPoint);this.Canvas.restore();};//鼠标在上面 动态绘制点和文字信息
7114
+ this.MainPartDraw=function(){if(this.IsFrameMinSize())return;if(this.Status!=10&&this.Status!=20)return;var drawPoint=this.CalculateDrawPoint({IsCheckX:true,IsCheckY:true});if(!drawPoint)return;if(drawPoint.length<2)return;this.IsHScreen=this.Frame.IsHScreen;if(this.IsHScreen)return;this.ClipFrame();this.ChartBorder=this.Frame.ChartBorder;this.DrawLabel(drawPoint);this.DrawPoint(drawPoint);this.Canvas.restore();};this.Draw=function(){this.AryRectArea=[];if(this.IsFrameMinSize())return;var drawPoint=this.CalculateDrawPoint({IsCheckX:true,IsCheckY:true});if(!drawPoint)return;if(drawPoint.length<2)return;this.IsHScreen=this.Frame.IsHScreen;if(this.IsHScreen)return;this.ClipFrame();this.ChartBorder=this.Frame.ChartBorder;if(this.Status==10||this.Status==20)//0=开始画 1=完成第1个点 2=完成第2个点 3=完成第3个点 10=完成 20=移动)
7111
7115
  {this.DrawArea(drawPoint);this.DrawLabel(drawPoint);this.DrawPoint(drawPoint);}else{var ptStart=drawPoint[0];var ptEnd=drawPoint[1];this.Canvas.strokeStyle=this.LineColor;this.DrawVerticalLine(ptStart,ptEnd);}this.Canvas.restore();};this.DrawVerticalLine=function(ptStart,ptEnd){var data=this.Frame.Data;if(this.IsHScreen){var left=this.ChartBorder.GetLeft();var right=this.ChartBorder.GetRight();var xValue=Math.round(this.Frame.GetXData(ptStart.Y,false))+data.DataOffset;if(xValue<0)xValue=0;else if(xValue>=data.Data.length)xValue=data.Data.length-1;var yStart=this.Frame.GetXFromIndex(xValue-data.DataOffset,false);xValue=Math.round(this.Frame.GetXData(ptEnd.Y,false))+data.DataOffset;if(xValue<0)xValue=0;else if(xValue>=data.Data.length)xValue=data.Data.length-1;var yEnd=this.Frame.GetXFromIndex(xValue-data.DataOffset,false);this.Canvas.beginPath();this.Canvas.moveTo(left,yStart);this.Canvas.lineTo(right,yStart);this.Canvas.moveTo(left,yEnd);this.Canvas.lineTo(right,yEnd);this.Canvas.stroke();this.Canvas.beginPath();this.Canvas.moveTo(ptStart.X,yStart);this.Canvas.lineTo(ptStart.X,yEnd);this.Canvas.stroke();}else{var top=this.ChartBorder.GetTopEx();var bottom=this.ChartBorder.GetBottomEx();var xValue=Math.round(this.Frame.GetXData(ptStart.X,false))+data.DataOffset;if(xValue<0)xValue=0;else if(xValue>=data.Data.length)xValue=data.Data.length-1;var xStart=this.Frame.GetXFromIndex(xValue-data.DataOffset,false);xValue=Math.round(this.Frame.GetXData(ptEnd.X,false))+data.DataOffset;if(xValue<0)xValue=0;else if(xValue>=data.Data.length)xValue=data.Data.length-1;var xEnd=this.Frame.GetXFromIndex(xValue-data.DataOffset,false);this.Canvas.beginPath();this.Canvas.moveTo(xStart,top);this.Canvas.lineTo(xStart,bottom);this.Canvas.moveTo(xEnd,top);this.Canvas.lineTo(xEnd,bottom);this.Canvas.stroke();this.Canvas.beginPath();this.Canvas.moveTo(xStart,ptStart.Y);this.Canvas.lineTo(xEnd,ptStart.Y);this.Canvas.stroke();}};this.GetCursorType=function(ptIndex){if(ptIndex==100)return"pointer";else if(ptIndex==0)return"move";else if(ptIndex==1)return"ew-resize";else if(ptIndex==2||ptIndex==3)return"ns-resize";return null;};this.DrawArea=function(drawPoint){var ptCenter=drawPoint[0];var ptRight=drawPoint[1];var ptTop=drawPoint[2];var ptBottom=drawPoint[3];var bSelected=this.IsSelected();var rtTopArea={Left:ptCenter.X,Top:ptTop.Y,Right:ptRight.X,Bottom:ptCenter.Y};rtTopArea.Width=rtTopArea.Right-rtTopArea.Left;rtTopArea.Height=rtTopArea.Bottom-rtTopArea.Top;this.Canvas.fillStyle=bSelected?this.TopAreaConfig.SelectedAreaColor:this.TopAreaConfig.AreaColor;this.Canvas.beginPath();this.Canvas.fillRect(rtTopArea.Left,rtTopArea.Top,rtTopArea.Width,rtTopArea.Height);this.AryRectArea[0]={ID:100,Rect:rtTopArea};var rtBottomArea={Left:ptCenter.X,Top:ptCenter.Y,Right:ptRight.X,Bottom:ptBottom.Y};rtBottomArea.Width=rtBottomArea.Right-rtBottomArea.Left;rtBottomArea.Height=rtBottomArea.Bottom-rtBottomArea.Top;this.Canvas.fillStyle=bSelected?this.BottomAreaConfig.SelectedAreaColor:this.BottomAreaConfig.AreaColor;this.Canvas.beginPath();this.Canvas.fillRect(rtBottomArea.Left,rtBottomArea.Top,rtBottomArea.Width,rtBottomArea.Height);this.AryRectArea[1]={ID:100,Rect:rtBottomArea};//线段
7112
7116
  this.Canvas.strokeStyle=this.LineColor;this.Canvas.beginPath();this.Canvas.moveTo(ptCenter.X,ToFixedPoint(ptCenter.Y));this.Canvas.lineTo(ptRight.X,ToFixedPoint(ptRight.Y));this.Canvas.stroke();};this.DrawLabel=function(drawPoint){if(!this.IsActive())return;//激活状态下才显示
7113
7117
  var aryLabel=this.FormatLabelText(drawPoint);if(!IFrameSplitOperator.IsNonEmptyArray(aryLabel))return;this.TextFontHeight=this.GetFontHeight(this.LabelConfig.Font,"擎");for(var i=0;i<aryLabel.length;++i){var item=aryLabel[i];if(!IFrameSplitOperator.IsNonEmptyArray(item.AryText))continue;this.CalculateLabelSize(item);this.DrawLabelItem(item,drawPoint);}};this.DrawLabelItem=function(lableItem,drawPoint){var ptCenter=drawPoint[0];var ptRight=drawPoint[1];var ptTop=drawPoint[2];var ptBottom=drawPoint[3];var clientWidth=ptRight.X-ptCenter.X;var config=this.LabelConfig;var margin=config.Margin;var rtText={Width:lableItem.Width+margin.Left+margin.Right,Height:lableItem.Height+margin.Top+margin.Bottom};if(lableItem.Type==0)//中间
@@ -13287,7 +13291,7 @@ var _iteratorNormalCompletion23=true;var _didIteratorError23=false;var _iterator
13287
13291
  //注册事件
13288
13292
  if(option.EventCallback){for(var i=0;i<option.EventCallback.length;++i){var item=option.EventCallback[i];chart.AddEventCallback(item);}}if(option.EnableResize==true)this.CreateResizeListener();if(option.EnablePopMenuV2===true)chart.InitalPopMenu();if(option.FloatTooltip&&option.FloatTooltip.Enable)chart.InitalFloatTooltip(option.FloatTooltip);//提示信息
13289
13293
  if(option.MinuteChartTooltip&&option.MinuteChartTooltip.Enable)chart.InitalMinuteChartTooltip(option.MinuteChartTooltip);if(option.KLineChartTooltip&&option.KLineChartTooltip.Enable)chart.InitalKLineChartTooltip(option.KLineChartTooltip);if(option.Symbol)chart.Symbol=option.Symbol;if(option.Name)chart.Name=option.Name;var requestOption={Callback:null};if(chart.Symbol)requestOption.Callback=function(){chart.RequestMemberListData();};if(option.LoadStockList===false){chart.ChartSplashPaint.IsEnableSplash=false;chart.Draw();}else{chart.RequestStockListData(requestOption);//下载码表
13290
- }};this.CreateJSReportChartContainer=function(option){var _this56=this;var chart=new JSReportChartContainer(this.CanvasElement);chart.GetExtraCanvas=function(name){return _this56.GetExtraCanvas(name);};chart.Create(option);if(option.NetworkFilter)chart.NetworkFilter=option.NetworkFilter;if(IFrameSplitOperator.IsNonEmptyArray(option.Column))chart.SetColumn(option.Column);if(IFrameSplitOperator.IsNonEmptyArray(option.Tab))chart.SetTab(option.Tab);if(IFrameSplitOperator.IsNumber(option.TabSelected))chart.SetSelectedTab(option.TabSelected);if(IFrameSplitOperator.IsBool(option.EnableDragRow))chart.EnableDragRow=option.EnableDragRow;if(IFrameSplitOperator.IsNumber(option.DragRowType))chart.DragRowType=option.DragRowType;if(IFrameSplitOperator.IsBool(option.EnableDragHeader))chart.EnableDragHeader=option.EnableDragHeader;if(IFrameSplitOperator.IsNumber(option.WheelPageType))chart.WheelPageType=option.WheelPageType;if(IFrameSplitOperator.IsBool(option.PageUpDownCycle))chart.PageUpDownCycle=option.PageUpDownCycle;//数据下载提示信息
13294
+ }};this.CreateJSReportChartContainer=function(option){var _this56=this;var chart=new JSReportChartContainer(this.CanvasElement);chart.GetExtraCanvas=function(name){return _this56.GetExtraCanvas(name);};chart.Create(option);if(option.NetworkFilter)chart.NetworkFilter=option.NetworkFilter;if(IFrameSplitOperator.IsNonEmptyArray(option.Column))chart.SetColumn(option.Column);if(IFrameSplitOperator.IsNonEmptyArray(option.Tab))chart.SetTab(option.Tab);if(IFrameSplitOperator.IsNumber(option.TabSelected))chart.SetSelectedTab(option.TabSelected);if(IFrameSplitOperator.IsBool(option.EnableDragRow))chart.EnableDragRow=option.EnableDragRow;if(IFrameSplitOperator.IsNumber(option.DragRowType))chart.DragRowType=option.DragRowType;if(IFrameSplitOperator.IsBool(option.EnableDragHeader))chart.EnableDragHeader=option.EnableDragHeader;if(IFrameSplitOperator.IsNumber(option.WheelPageType))chart.WheelPageType=option.WheelPageType;if(IFrameSplitOperator.IsBool(option.PageUpDownCycle))chart.PageUpDownCycle=option.PageUpDownCycle;if(IFrameSplitOperator.IsBool(option.EnablePageUpdate))chart.EnablePageUpdate=option.EnablePageUpdate;//数据下载提示信息
13291
13295
  if(IFrameSplitOperator.IsObject(option.SplashTitle)){var item=option.SplashTitle;if(item)chart.SplashTitle.StockList=item.StockList;if(item)chart.SplashTitle.MemberList=item.MemberList;}if(option.VScrollbar)chart.SetVScrollbar(option.VScrollbar);if(option.SortInfo){var item=option.SortInfo;if(item.Search)chart.SortInfo.Field=chart.FindFiledIndex(item.Search);if(IFrameSplitOperator.IsNumber(item.Field))chart.SortInfo.Field=item.Field;if(IFrameSplitOperator.IsNumber(item.Sort))chart.SortInfo.Sort=item.Sort;}if(option.VirtualTable){var item=option.VirtualTable;if(IFrameSplitOperator.IsBool(item.Enable))chart.Data.Virtual.Enable=item.Enable;}var reportChart=chart.GetReportChart();if(reportChart){if(IFrameSplitOperator.IsNumber(option.TextOverflowStyle))reportChart.TextOverflowStyle=option.TextOverflowStyle;if(IFrameSplitOperator.IsNumber(option.MultiSelectModel))reportChart.MultiSelectModel=option.MultiSelectModel;if(IFrameSplitOperator.IsNumber(option.SelectedStyle))reportChart.SelectedStyle=option.SelectedStyle;}this.SetChartBorder(chart,option);//是否自动更新
13292
13296
  if(option.IsAutoUpdate!=null)chart.IsAutoUpdate=option.IsAutoUpdate;if(option.AutoUpdateFrequency>0)chart.AutoUpdateFrequency=option.AutoUpdateFrequency;//数据筛选
13293
13297
  if(option.DataFilter){var item=option.DataFilter;if(IFrameSplitOperator.IsBool(item.Enable))chart.DataFilterConfig.Enable=item.Enable;}//注册事件
@@ -13343,6 +13347,7 @@ this.AutoDragScrollTimer=null;this.EnablePageScroll=false;this.DragMove;//={ Cli
13343
13347
  this.DragHeader;this.EnableDragHeader=false;//事件回调
13344
13348
  this.mapEvent=new _map2.default();//通知外部调用 key:JSCHART_EVENT_ID value:{Callback:回调,}
13345
13349
  this.AutoUpdateTimer=null;this.AutoUpdateFrequency=15000;//15秒更新一次数据
13350
+ this.EnablePageUpdate=true;//当前页更新模式 ture=翻页都请求数据 false=所有页的数据一次下载完成
13346
13351
  this.DelayUpdateTimer=null;//延迟更新
13347
13352
  this.DelayUpdateFrequency=500;//延迟更新时间
13348
13353
  this.UIElement=uielement;this.LastPoint=new Point();//鼠标位置
@@ -13455,7 +13460,7 @@ this.GetStockData=function(symbol){if(!this.MapStockData)return null;if(!this.Ma
13455
13460
  this.SetFlashBGItem=function(symbol,obj){var item={ID:obj.ID,Color:obj.Color,Count:1};if(IFrameSplitOperator.IsNumber(obj.Count))item.Count=obj.Count;if(IFrameSplitOperator.IsNumber(obj.Time))item.Time=obj.Time;else item.Time=Date.now();if(this.FlashBG.has(symbol)){var stockItem=this.FlashBG.get(symbol);stockItem.LastTime=item.Time;stockItem.Data.set(item.ID,item);}else{var stockItem={LastTime:item.Time,Data:new _map2.default([[item.ID,item]])};this.FlashBG.set(symbol,stockItem);}};this.GetFlashBGData=function(symbol,time){if(!this.FlashBG)return null;if(!this.FlashBG.has(symbol))return null;var timeDiff=3*1000;var stockItem=this.FlashBG.get(symbol);if(time-stockItem.LastTime>=timeDiff)//超时的删除
13456
13461
  {this.FlashBG.delete(symbol);return null;}if(!stockItem.Data||stockItem.Data.size<=0){this.FlashBG.delete(symbol);return null;}var aryDelID=[];//超时需要参数的
13457
13462
  var _iteratorNormalCompletion25=true;var _didIteratorError25=false;var _iteratorError25=undefined;try{for(var _iterator25=(0,_getIterator3.default)(stockItem.Data),_step25;!(_iteratorNormalCompletion25=(_step25=_iterator25.next()).done);_iteratorNormalCompletion25=true){var mapItem=_step25.value;var item=mapItem[1];if(time-item.Time>=timeDiff||item.Count<=0)aryDelID.push(item.ID);}}catch(err){_didIteratorError25=true;_iteratorError25=err;}finally{try{if(!_iteratorNormalCompletion25&&_iterator25.return){_iterator25.return();}}finally{if(_didIteratorError25){throw _iteratorError25;}}}if(IFrameSplitOperator.IsNonEmptyArray(aryDelID)){for(var i=0;i<aryDelID.length;++i){stockItem.Data.delete(aryDelID[i]);}if(stockItem.Data.size<=0){this.FlashBG.delete(symbol);return null;}}return stockItem;};//delay=是否延迟
13458
- this.DelayUpdateStockData=function(){var _this62=this;if(this.DelayUpdateTimer!=null){clearTimeout(this.DelayUpdateTimer);this.DelayUpdateTimer=null;}var frequency=this.DelayUpdateFrequency;this.DelayUpdateTimer=setTimeout(function(){_this62.UpdateStockData();},frequency);};this.UpdateStockData=function(){var chart=this.ChartPaint[0];if(!chart)return;//列表还没有加载完成
13463
+ this.DelayUpdateStockData=function(){var _this62=this;if(this.EnablePageUpdate===false)return;if(this.DelayUpdateTimer!=null){clearTimeout(this.DelayUpdateTimer);this.DelayUpdateTimer=null;}var frequency=this.DelayUpdateFrequency;this.DelayUpdateTimer=setTimeout(function(){_this62.UpdateStockData();},frequency);};this.UpdateStockData=function(){var chart=this.ChartPaint[0];if(!chart)return;//列表还没有加载完成
13459
13464
  if(this.RequestStatus.IsFinishStockList==false||this.RequestStatus.IsFinishMemberList==false)return;if(this.Data.Virtual&&this.Data.Virtual.Enable){this.RequestVirtualStockData();//虚拟表格 全部取后台
13460
13465
  return;}//if (!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return;
13461
13466
  if(this.SortInfo&&this.SortInfo.Field>=0&&this.SortInfo.Sort>0){var column=chart.Column[this.SortInfo.Field];if(column.Sort==2){this.RequestStockSortData(column,this.SortInfo.Field,this.SortInfo.Sort);//远程排序
@@ -13463,15 +13468,16 @@ return;}}var arySymbol=chart.ShowSymbol;//if (!IFrameSplitOperator.IsNonEmptyArr
13463
13468
  this.RequestStockData(arySymbol);};//下载股票数据
13464
13469
  this.RequestStockData=function(arySymbol){var self=this;if(this.NetworkFilter){var obj={Name:'JSDealChartContainer::RequestStockData',//类名::函数名
13465
13470
  Explain:'报价列表股票数据',Request:{Data:{stocks:arySymbol},symbol:this.Symbol,name:this.Name},Self:this,PreventDefault:false};this.NetworkFilter(obj,function(data){self.RecvStockData(data);self.AutoUpdate();});if(obj.PreventDefault==true)return;}//throw { Name:'JSReportChartContainer::RequestStockData', Error:'(报价列表股票数据)不提供内置测试数据' };
13466
- };this.RecvStockData=function(data){var setUpdateSymbol=new _set2.default();//更新的股票列表
13471
+ };this.RecvStockData=function(data){var bUpdate=false;var setUpdateSymbol=new _set2.default();//更新的股票列表
13467
13472
  if(IFrameSplitOperator.IsNonEmptyArray(data.data)){//0=证券代码 1=股票名称 2=昨收 3=开 4=高 5=低 6=收 7=成交量 8=成交金额, 9=买价 10=买量 11=卖价 12=卖量 13=均价 14=流通股 15=总股本
13468
13473
  for(var i=0;i<data.data.length;++i){var item=data.data[i];var symbol=item[0];if(!symbol)continue;var stock=null;if(this.MapStockData.has(symbol)){stock=this.MapStockData.get(symbol);}else{stock=new HQReportItem();stock.OriginalSymbol=symbol;stock.Symbol=this.GetSymbolNoSuffix(symbol);this.MapStockData.set(symbol,stock);}this.ReadStockJsonData(stock,item);if(!setUpdateSymbol.has(symbol))setUpdateSymbol.add(symbol);}}//重新更新板块成员
13469
- if(IFrameSplitOperator.IsArray(data.members)){this.SourceData.Data=[];this.Data.Data=[];var aryMember=data.members;for(var i=0;i<aryMember.length;++i){var value=aryMember[i];this.Data.Data.push(value);this.SourceData.Data.push(value);}}var chart=this.ChartPaint[0];if(!chart)return;var bUpdate=false;if(this.DataFilter())bUpdate=true;//过滤数据每次都刷新
13474
+ if(IFrameSplitOperator.IsArray(data.members)){this.SourceData.Data=[];this.Data.Data=[];var aryMember=data.members;for(var i=0;i<aryMember.length;++i){var value=aryMember[i];this.Data.Data.push(value);this.SourceData.Data.push(value);}bUpdate=true;//成分变动 需要重回
13475
+ }var chart=this.ChartPaint[0];if(!chart)return;if(this.DataFilter())bUpdate=true;//过滤数据每次都刷新
13470
13476
  //实时本地数据排序
13471
13477
  var chart=this.ChartPaint[0];if(chart&&(this.SortInfo.Sort==1||this.SortInfo.Sort==2)&&IFrameSplitOperator.IsNumber(this.SortInfo.Field)&&this.SortInfo.Field>=0){//当前选中的股票
13472
13478
  var selectedSymbol=null;if(chart.SelectedRowData&&chart.SelectedModel==1)selectedSymbol=chart.SelectedRowData.Symbol;var column=chart.Column[this.SortInfo.Field];this.LocalDataSort(column,this.SortInfo);if(selectedSymbol){chart.SetSelectedRow({Symbol:selectedSymbol});}bUpdate=true;//排序暂时每次都刷新
13473
13479
  }else{//更新的股票在当前页面,需要重绘
13474
- var aryStock=chart.ShowSymbol;for(var i=0;i<aryStock.length;++i){if(setUpdateSymbol.has(aryStock[i].Symbol)){bUpdate=true;break;}}}if(bUpdate)this.Draw();};//读取单条股票json数据
13480
+ var aryStock=chart.ShowSymbol;if(Array.isArray(aryStock)&&aryStock.length<=0&&setUpdateSymbol.size>0)bUpdate=true;for(var i=0;i<aryStock.length;++i){if(setUpdateSymbol.has(aryStock[i].Symbol)){bUpdate=true;break;}}}if(bUpdate)this.Draw();};//读取单条股票json数据
13475
13481
  this.ReadStockJsonData=function(stock,item){//0=证券代码 1=股票名称 2=昨收 3=开 4=高 5=低 6=收 7=成交量 8=成交金额, 9=买价 10=买量 11=卖价 12=卖量 13=均价 14=流通股 15=总股本 16=涨停价 17=跌停价
13476
13482
  //18=内盘 19=外盘 20=现量 21=涨幅% 22=涨跌 23=换手率% 24=振幅% 25=流通市值 26=总市值 27=扩展名字
13477
13483
  //30=全局扩展数据 31=当前板块扩展数据
@@ -15254,7 +15260,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
15254
15260
  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);};}/********************************************************************************
15255
15261
  * 版本信息输出
15256
15262
  *
15257
- */var HQCHART_VERSION="1.1.14970";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();//把给外界调用的方法暴露出来
15263
+ */var HQCHART_VERSION="1.1.14977";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();//把给外界调用的方法暴露出来
15258
15264
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
15259
15265
  // BaseIndex:BaseIndex,
15260
15266
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.14971",
3
+ "version": "1.1.14978",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -1236,7 +1236,7 @@ LONG := SUM(RC,0);\n\
1236
1236
  DIFF := SMA(LONG,10,1);\n\
1237
1237
  DEA := SMA(LONG,20,1);\n\
1238
1238
  LON : DIFF-DEA;\n\
1239
- LONMA : MA(LON,10);\n\
1239
+ LONMA : MA(LON,N);\n\
1240
1240
  LONT : LON, COLORSTICK;'
1241
1241
 
1242
1242
  };
@@ -75393,20 +75393,40 @@ function ChartDrawTVLongPosition()
75393
75393
  if (!this.GetActiveDrawPicture) return false;
75394
75394
 
75395
75395
  var active=this.GetActiveDrawPicture();
75396
- if (active.Select.Guid==this.Guid) return true;
75396
+ //console.log(`[IsSelected] Select=${active.Select.Guid} MoveOn=${active.MoveOn.Guid}`);
75397
+ if (active.Select.Guid==this.Guid || active.MoveOn.Guid==this.Guid) return true;
75397
75398
 
75398
75399
  return false;
75399
75400
  }
75400
75401
 
75402
+ //未选中 作为背景色绘制
75401
75403
  this.MainDraw=function()
75402
75404
  {
75403
- this.Draw();
75404
- }
75405
+ this.AryRectArea=[]
75406
+ if (this.IsFrameMinSize()) return;
75405
75407
 
75408
+ //0=开始画 1=完成第1个点 2=完成第2个点 3=完成第3个点 10=完成 20=移动)
75409
+ if (this.Status!=10 && this.Status!=20) return;
75410
+
75411
+ var drawPoint=this.CalculateDrawPoint( {IsCheckX:true, IsCheckY:true} );
75412
+ if (!drawPoint) return;
75413
+ if (drawPoint.length<2) return;
75414
+ this.IsHScreen=this.Frame.IsHScreen;
75415
+ if (this.IsHScreen) return;
75416
+
75417
+ this.ClipFrame();
75406
75418
 
75419
+ this.ChartBorder=this.Frame.ChartBorder;
75420
+ this.DrawArea(drawPoint);
75421
+
75422
+ this.Canvas.restore();
75423
+ }
75424
+
75425
+ //鼠标在上面 动态绘制点和文字信息
75407
75426
  this.MainPartDraw=function()
75408
75427
  {
75409
75428
  if (this.IsFrameMinSize()) return;
75429
+ if (this.Status!=10 && this.Status!=20) return;
75410
75430
 
75411
75431
  var drawPoint=this.CalculateDrawPoint( {IsCheckX:true, IsCheckY:true} );
75412
75432
  if (!drawPoint) return;
@@ -75415,13 +75435,10 @@ function ChartDrawTVLongPosition()
75415
75435
  if (this.IsHScreen) return;
75416
75436
 
75417
75437
  this.ClipFrame();
75418
- this.ChartBorder=this.Frame.ChartBorder;
75419
75438
 
75420
- if (this.Status==10 || this.Status==20)
75421
- {
75422
- this.DrawLabel(drawPoint);
75423
- this.DrawPoint(drawPoint);
75424
- }
75439
+ this.ChartBorder=this.Frame.ChartBorder;
75440
+ this.DrawLabel(drawPoint);
75441
+ this.DrawPoint(drawPoint);
75425
75442
 
75426
75443
  this.Canvas.restore();
75427
75444
  }
@@ -192,6 +192,7 @@ function JSReportChart(divElement)
192
192
  if (IFrameSplitOperator.IsBool(option.EnableDragHeader)) chart.EnableDragHeader=option.EnableDragHeader;
193
193
  if (IFrameSplitOperator.IsNumber(option.WheelPageType)) chart.WheelPageType=option.WheelPageType;
194
194
  if (IFrameSplitOperator.IsBool(option.PageUpDownCycle)) chart.PageUpDownCycle=option.PageUpDownCycle;
195
+ if (IFrameSplitOperator.IsBool(option.EnablePageUpdate)) chart.EnablePageUpdate=option.EnablePageUpdate;
195
196
 
196
197
  //数据下载提示信息
197
198
  if (IFrameSplitOperator.IsObject(option.SplashTitle))
@@ -469,6 +470,7 @@ function JSReportChartContainer(uielement)
469
470
  this.AutoUpdateTimer=null;
470
471
  this.AutoUpdateFrequency=15000; //15秒更新一次数据
471
472
 
473
+ this.EnablePageUpdate=true; //当前页更新模式 ture=翻页都请求数据 false=所有页的数据一次下载完成
472
474
  this.DelayUpdateTimer=null; //延迟更新
473
475
  this.DelayUpdateFrequency=500; //延迟更新时间
474
476
 
@@ -1520,6 +1522,8 @@ function JSReportChartContainer(uielement)
1520
1522
  //delay=是否延迟
1521
1523
  this.DelayUpdateStockData=function()
1522
1524
  {
1525
+ if (this.EnablePageUpdate===false) return;
1526
+
1523
1527
  if (this.DelayUpdateTimer!=null)
1524
1528
  {
1525
1529
  clearTimeout(this.DelayUpdateTimer);
@@ -1593,6 +1597,7 @@ function JSReportChartContainer(uielement)
1593
1597
 
1594
1598
  this.RecvStockData=function(data)
1595
1599
  {
1600
+ var bUpdate=false;
1596
1601
  var setUpdateSymbol=new Set(); //更新的股票列表
1597
1602
  if (IFrameSplitOperator.IsNonEmptyArray(data.data))
1598
1603
  {
@@ -1633,14 +1638,13 @@ function JSReportChartContainer(uielement)
1633
1638
  this.Data.Data.push(value);
1634
1639
  this.SourceData.Data.push(value);
1635
1640
  }
1641
+
1642
+ bUpdate=true; //成分变动 需要重回
1636
1643
  }
1637
1644
 
1638
1645
  var chart=this.ChartPaint[0];
1639
1646
  if (!chart) return;
1640
-
1641
1647
 
1642
-
1643
- var bUpdate=false;
1644
1648
  if (this.DataFilter()) bUpdate=true; //过滤数据每次都刷新
1645
1649
 
1646
1650
  //实时本地数据排序
@@ -1665,6 +1669,8 @@ function JSReportChartContainer(uielement)
1665
1669
  {
1666
1670
  //更新的股票在当前页面,需要重绘
1667
1671
  var aryStock=chart.ShowSymbol;
1672
+ if (Array.isArray(aryStock) && aryStock.length<=0 && setUpdateSymbol.size>0) bUpdate=true;
1673
+
1668
1674
  for(var i=0;i<aryStock.length;++i)
1669
1675
  {
1670
1676
  if (setUpdateSymbol.has(aryStock[i].Symbol))
@@ -1248,7 +1248,7 @@ LONG := SUM(RC,0);\n\
1248
1248
  DIFF := SMA(LONG,10,1);\n\
1249
1249
  DEA := SMA(LONG,20,1);\n\
1250
1250
  LON : DIFF-DEA;\n\
1251
- LONMA : MA(LON,10);\n\
1251
+ LONMA : MA(LON,N);\n\
1252
1252
  LONT : LON, COLORSTICK;'
1253
1253
 
1254
1254
  };
@@ -79489,20 +79489,40 @@ function ChartDrawTVLongPosition()
79489
79489
  if (!this.GetActiveDrawPicture) return false;
79490
79490
 
79491
79491
  var active=this.GetActiveDrawPicture();
79492
- if (active.Select.Guid==this.Guid) return true;
79492
+ //console.log(`[IsSelected] Select=${active.Select.Guid} MoveOn=${active.MoveOn.Guid}`);
79493
+ if (active.Select.Guid==this.Guid || active.MoveOn.Guid==this.Guid) return true;
79493
79494
 
79494
79495
  return false;
79495
79496
  }
79496
79497
 
79498
+ //未选中 作为背景色绘制
79497
79499
  this.MainDraw=function()
79498
79500
  {
79499
- this.Draw();
79500
- }
79501
+ this.AryRectArea=[]
79502
+ if (this.IsFrameMinSize()) return;
79503
+
79504
+ //0=开始画 1=完成第1个点 2=完成第2个点 3=完成第3个点 10=完成 20=移动)
79505
+ if (this.Status!=10 && this.Status!=20) return;
79506
+
79507
+ var drawPoint=this.CalculateDrawPoint( {IsCheckX:true, IsCheckY:true} );
79508
+ if (!drawPoint) return;
79509
+ if (drawPoint.length<2) return;
79510
+ this.IsHScreen=this.Frame.IsHScreen;
79511
+ if (this.IsHScreen) return;
79512
+
79513
+ this.ClipFrame();
79514
+
79515
+ this.ChartBorder=this.Frame.ChartBorder;
79516
+ this.DrawArea(drawPoint);
79501
79517
 
79518
+ this.Canvas.restore();
79519
+ }
79502
79520
 
79521
+ //鼠标在上面 动态绘制点和文字信息
79503
79522
  this.MainPartDraw=function()
79504
79523
  {
79505
79524
  if (this.IsFrameMinSize()) return;
79525
+ if (this.Status!=10 && this.Status!=20) return;
79506
79526
 
79507
79527
  var drawPoint=this.CalculateDrawPoint( {IsCheckX:true, IsCheckY:true} );
79508
79528
  if (!drawPoint) return;
@@ -79511,13 +79531,10 @@ function ChartDrawTVLongPosition()
79511
79531
  if (this.IsHScreen) return;
79512
79532
 
79513
79533
  this.ClipFrame();
79514
- this.ChartBorder=this.Frame.ChartBorder;
79515
79534
 
79516
- if (this.Status==10 || this.Status==20)
79517
- {
79518
- this.DrawLabel(drawPoint);
79519
- this.DrawPoint(drawPoint);
79520
- }
79535
+ this.ChartBorder=this.Frame.ChartBorder;
79536
+ this.DrawLabel(drawPoint);
79537
+ this.DrawPoint(drawPoint);
79521
79538
 
79522
79539
  this.Canvas.restore();
79523
79540
  }
@@ -138825,6 +138842,7 @@ function JSReportChart(divElement)
138825
138842
  if (IFrameSplitOperator.IsBool(option.EnableDragHeader)) chart.EnableDragHeader=option.EnableDragHeader;
138826
138843
  if (IFrameSplitOperator.IsNumber(option.WheelPageType)) chart.WheelPageType=option.WheelPageType;
138827
138844
  if (IFrameSplitOperator.IsBool(option.PageUpDownCycle)) chart.PageUpDownCycle=option.PageUpDownCycle;
138845
+ if (IFrameSplitOperator.IsBool(option.EnablePageUpdate)) chart.EnablePageUpdate=option.EnablePageUpdate;
138828
138846
 
138829
138847
  //数据下载提示信息
138830
138848
  if (IFrameSplitOperator.IsObject(option.SplashTitle))
@@ -139102,6 +139120,7 @@ function JSReportChartContainer(uielement)
139102
139120
  this.AutoUpdateTimer=null;
139103
139121
  this.AutoUpdateFrequency=15000; //15秒更新一次数据
139104
139122
 
139123
+ this.EnablePageUpdate=true; //当前页更新模式 ture=翻页都请求数据 false=所有页的数据一次下载完成
139105
139124
  this.DelayUpdateTimer=null; //延迟更新
139106
139125
  this.DelayUpdateFrequency=500; //延迟更新时间
139107
139126
 
@@ -140153,6 +140172,8 @@ function JSReportChartContainer(uielement)
140153
140172
  //delay=是否延迟
140154
140173
  this.DelayUpdateStockData=function()
140155
140174
  {
140175
+ if (this.EnablePageUpdate===false) return;
140176
+
140156
140177
  if (this.DelayUpdateTimer!=null)
140157
140178
  {
140158
140179
  clearTimeout(this.DelayUpdateTimer);
@@ -140226,6 +140247,7 @@ function JSReportChartContainer(uielement)
140226
140247
 
140227
140248
  this.RecvStockData=function(data)
140228
140249
  {
140250
+ var bUpdate=false;
140229
140251
  var setUpdateSymbol=new Set(); //更新的股票列表
140230
140252
  if (IFrameSplitOperator.IsNonEmptyArray(data.data))
140231
140253
  {
@@ -140266,14 +140288,13 @@ function JSReportChartContainer(uielement)
140266
140288
  this.Data.Data.push(value);
140267
140289
  this.SourceData.Data.push(value);
140268
140290
  }
140291
+
140292
+ bUpdate=true; //成分变动 需要重回
140269
140293
  }
140270
140294
 
140271
140295
  var chart=this.ChartPaint[0];
140272
140296
  if (!chart) return;
140273
-
140274
140297
 
140275
-
140276
- var bUpdate=false;
140277
140298
  if (this.DataFilter()) bUpdate=true; //过滤数据每次都刷新
140278
140299
 
140279
140300
  //实时本地数据排序
@@ -140298,6 +140319,8 @@ function JSReportChartContainer(uielement)
140298
140319
  {
140299
140320
  //更新的股票在当前页面,需要重绘
140300
140321
  var aryStock=chart.ShowSymbol;
140322
+ if (Array.isArray(aryStock) && aryStock.length<=0 && setUpdateSymbol.size>0) bUpdate=true;
140323
+
140301
140324
  for(var i=0;i<aryStock.length;++i)
140302
140325
  {
140303
140326
  if (setUpdateSymbol.has(aryStock[i].Symbol))
@@ -152143,7 +152166,7 @@ function ScrollBarBGChart()
152143
152166
 
152144
152167
 
152145
152168
 
152146
- var HQCHART_VERSION="1.1.14970";
152169
+ var HQCHART_VERSION="1.1.14977";
152147
152170
 
152148
152171
  function PrintHQChartVersion()
152149
152172
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.14970";
8
+ var HQCHART_VERSION="1.1.14977";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -1292,7 +1292,7 @@ LONG := SUM(RC,0);\n\
1292
1292
  DIFF := SMA(LONG,10,1);\n\
1293
1293
  DEA := SMA(LONG,20,1);\n\
1294
1294
  LON : DIFF-DEA;\n\
1295
- LONMA : MA(LON,10);\n\
1295
+ LONMA : MA(LON,N);\n\
1296
1296
  LONT : LON, COLORSTICK;'
1297
1297
 
1298
1298
  };
@@ -79533,20 +79533,40 @@ function ChartDrawTVLongPosition()
79533
79533
  if (!this.GetActiveDrawPicture) return false;
79534
79534
 
79535
79535
  var active=this.GetActiveDrawPicture();
79536
- if (active.Select.Guid==this.Guid) return true;
79536
+ //console.log(`[IsSelected] Select=${active.Select.Guid} MoveOn=${active.MoveOn.Guid}`);
79537
+ if (active.Select.Guid==this.Guid || active.MoveOn.Guid==this.Guid) return true;
79537
79538
 
79538
79539
  return false;
79539
79540
  }
79540
79541
 
79542
+ //未选中 作为背景色绘制
79541
79543
  this.MainDraw=function()
79542
79544
  {
79543
- this.Draw();
79544
- }
79545
+ this.AryRectArea=[]
79546
+ if (this.IsFrameMinSize()) return;
79547
+
79548
+ //0=开始画 1=完成第1个点 2=完成第2个点 3=完成第3个点 10=完成 20=移动)
79549
+ if (this.Status!=10 && this.Status!=20) return;
79550
+
79551
+ var drawPoint=this.CalculateDrawPoint( {IsCheckX:true, IsCheckY:true} );
79552
+ if (!drawPoint) return;
79553
+ if (drawPoint.length<2) return;
79554
+ this.IsHScreen=this.Frame.IsHScreen;
79555
+ if (this.IsHScreen) return;
79556
+
79557
+ this.ClipFrame();
79558
+
79559
+ this.ChartBorder=this.Frame.ChartBorder;
79560
+ this.DrawArea(drawPoint);
79545
79561
 
79562
+ this.Canvas.restore();
79563
+ }
79546
79564
 
79565
+ //鼠标在上面 动态绘制点和文字信息
79547
79566
  this.MainPartDraw=function()
79548
79567
  {
79549
79568
  if (this.IsFrameMinSize()) return;
79569
+ if (this.Status!=10 && this.Status!=20) return;
79550
79570
 
79551
79571
  var drawPoint=this.CalculateDrawPoint( {IsCheckX:true, IsCheckY:true} );
79552
79572
  if (!drawPoint) return;
@@ -79555,13 +79575,10 @@ function ChartDrawTVLongPosition()
79555
79575
  if (this.IsHScreen) return;
79556
79576
 
79557
79577
  this.ClipFrame();
79558
- this.ChartBorder=this.Frame.ChartBorder;
79559
79578
 
79560
- if (this.Status==10 || this.Status==20)
79561
- {
79562
- this.DrawLabel(drawPoint);
79563
- this.DrawPoint(drawPoint);
79564
- }
79579
+ this.ChartBorder=this.Frame.ChartBorder;
79580
+ this.DrawLabel(drawPoint);
79581
+ this.DrawPoint(drawPoint);
79565
79582
 
79566
79583
  this.Canvas.restore();
79567
79584
  }
@@ -138869,6 +138886,7 @@ function JSReportChart(divElement)
138869
138886
  if (IFrameSplitOperator.IsBool(option.EnableDragHeader)) chart.EnableDragHeader=option.EnableDragHeader;
138870
138887
  if (IFrameSplitOperator.IsNumber(option.WheelPageType)) chart.WheelPageType=option.WheelPageType;
138871
138888
  if (IFrameSplitOperator.IsBool(option.PageUpDownCycle)) chart.PageUpDownCycle=option.PageUpDownCycle;
138889
+ if (IFrameSplitOperator.IsBool(option.EnablePageUpdate)) chart.EnablePageUpdate=option.EnablePageUpdate;
138872
138890
 
138873
138891
  //数据下载提示信息
138874
138892
  if (IFrameSplitOperator.IsObject(option.SplashTitle))
@@ -139146,6 +139164,7 @@ function JSReportChartContainer(uielement)
139146
139164
  this.AutoUpdateTimer=null;
139147
139165
  this.AutoUpdateFrequency=15000; //15秒更新一次数据
139148
139166
 
139167
+ this.EnablePageUpdate=true; //当前页更新模式 ture=翻页都请求数据 false=所有页的数据一次下载完成
139149
139168
  this.DelayUpdateTimer=null; //延迟更新
139150
139169
  this.DelayUpdateFrequency=500; //延迟更新时间
139151
139170
 
@@ -140197,6 +140216,8 @@ function JSReportChartContainer(uielement)
140197
140216
  //delay=是否延迟
140198
140217
  this.DelayUpdateStockData=function()
140199
140218
  {
140219
+ if (this.EnablePageUpdate===false) return;
140220
+
140200
140221
  if (this.DelayUpdateTimer!=null)
140201
140222
  {
140202
140223
  clearTimeout(this.DelayUpdateTimer);
@@ -140270,6 +140291,7 @@ function JSReportChartContainer(uielement)
140270
140291
 
140271
140292
  this.RecvStockData=function(data)
140272
140293
  {
140294
+ var bUpdate=false;
140273
140295
  var setUpdateSymbol=new Set(); //更新的股票列表
140274
140296
  if (IFrameSplitOperator.IsNonEmptyArray(data.data))
140275
140297
  {
@@ -140310,14 +140332,13 @@ function JSReportChartContainer(uielement)
140310
140332
  this.Data.Data.push(value);
140311
140333
  this.SourceData.Data.push(value);
140312
140334
  }
140335
+
140336
+ bUpdate=true; //成分变动 需要重回
140313
140337
  }
140314
140338
 
140315
140339
  var chart=this.ChartPaint[0];
140316
140340
  if (!chart) return;
140317
-
140318
140341
 
140319
-
140320
- var bUpdate=false;
140321
140342
  if (this.DataFilter()) bUpdate=true; //过滤数据每次都刷新
140322
140343
 
140323
140344
  //实时本地数据排序
@@ -140342,6 +140363,8 @@ function JSReportChartContainer(uielement)
140342
140363
  {
140343
140364
  //更新的股票在当前页面,需要重绘
140344
140365
  var aryStock=chart.ShowSymbol;
140366
+ if (Array.isArray(aryStock) && aryStock.length<=0 && setUpdateSymbol.size>0) bUpdate=true;
140367
+
140345
140368
  for(var i=0;i<aryStock.length;++i)
140346
140369
  {
140347
140370
  if (setUpdateSymbol.has(aryStock[i].Symbol))
@@ -163522,7 +163545,7 @@ function HQChartScriptWorker()
163522
163545
 
163523
163546
 
163524
163547
 
163525
- var HQCHART_VERSION="1.1.14970";
163548
+ var HQCHART_VERSION="1.1.14977";
163526
163549
 
163527
163550
  function PrintHQChartVersion()
163528
163551
  {