hqchart 1.1.14432 → 1.1.14441

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.
@@ -1132,8 +1132,7 @@ TBP:REF(REF(C,1)+IF(DIRECT0>50,MIN(MF0,MF1),MAX(MF0,MF1)),1);\n\
1132
1132
  *///日志输出类
1133
1133
  if(!JSConsole){var JSConsole={Chart:{Log:console.log,Warn:console.warn},//图形日志
1134
1134
  Complier:{Log:console.log,Warn:console.warn//编译器日志
1135
- }};}function JSChart(divElement,bOffscreen,bCacheCanvas){this.DivElement=divElement;this.DivToolElement=null;//工具条
1136
- this.JSChartContainer;//画图控件
1135
+ }};}function JSChart(divElement,bOffscreen,bCacheCanvas){this.DivElement=divElement;this.JSChartContainer;//画图控件
1137
1136
  this.ResizeListener;//h5 canvas
1138
1137
  this.CanvasElement=document.createElement("canvas");this.CanvasElement.className='jschart-drawing';this.CanvasElement.id=Guid();this.CanvasElement.setAttribute("tabindex",0);if(this.CanvasElement.style){this.CanvasElement.style.outline='none';//this.CanvasElement.style.position="absolute"; //外部自己设置
1139
1138
  }if(divElement.hasChildNodes()){JSConsole.Chart.Log("[JSChart::JSChart] divElement hasChildNodes",divElement.childNodes);}divElement.appendChild(this.CanvasElement);//离屏
@@ -1144,10 +1143,9 @@ this.CreateExtraCanvasElement=function(name,option){if(this.MapExtraCanvasElemen
1144
1143
  { Type: 1=K线柱子宽度不变 2=K线全部显示
1145
1144
  Redraw:是否重绘, XYSplit:是否重新计算分割线 }
1146
1145
  */this.OnSize=function(option){//画布大小通过div获取 如果有style里的大小 使用style里的
1147
- var height=this.DivElement.offsetHeight;var width=this.DivElement.offsetWidth;if(this.DivElement.style.height&&this.DivElement.style.width){if(this.DivElement.style.height.includes("px"))height=parseInt(this.DivElement.style.height.replace("px",""));if(this.DivElement.style.width.includes("px"))width=parseInt(this.DivElement.style.width.replace("px",""));}if(this.ToolElement){//TODO调整工具条大小
1148
- height-=this.ToolElement.style.height.replace("px","");//减去工具条的高度
1149
- }this.CanvasElement.height=height;this.CanvasElement.width=width;this.CanvasElement.style.width=this.CanvasElement.width+'px';this.CanvasElement.style.height=this.CanvasElement.height+'px';var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
1150
- this.CanvasElement.height*=pixelTatio;this.CanvasElement.width*=pixelTatio;if(this.OffscreenCanvasElement){this.OffscreenCanvasElement.height=this.CanvasElement.height;this.OffscreenCanvasElement.width=this.CanvasElement.width;}if(this.CacheCanvasElement){this.CacheCanvasElement.height=this.CanvasElement.height;this.CacheCanvasElement.width=this.CanvasElement.width;}var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=(0,_getIterator3.default)(this.MapExtraCanvasElement),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var mapItem=_step.value;var item=mapItem[1];var element=item.Element;if(!element)continue;element.height=this.CanvasElement.height;element.width=this.CanvasElement.width;element.style.width=this.CanvasElement.style.width;element.style.height=this.CanvasElement.style.height;}}catch(err){_didIteratorError=true;_iteratorError=err;}finally{try{if(!_iteratorNormalCompletion&&_iterator.return){_iterator.return();}}finally{if(_didIteratorError){throw _iteratorError;}}}JSConsole.Chart.Log('[JSChart::OnSize] devicePixelRatio='+window.devicePixelRatio+', height='+this.CanvasElement.height+', width='+this.CanvasElement.width);if(option&&option.Redraw==false)return;if(this.JSChartContainer){if(option&&option.XYSplit===true)this.JSChartContainer.ResetFrameXYSplit();if(this.JSChartContainer.OnSize&&option&&option.Type==1)//K线宽度不变
1146
+ var height=this.DivElement.offsetHeight;var width=this.DivElement.offsetWidth;var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率s
1147
+ if(this.DivElement.style.height&&this.DivElement.style.width){if(this.DivElement.style.height.includes("px"))height=parseInt(this.DivElement.style.height.replace("px",""));if(this.DivElement.style.width.includes("px"))width=parseInt(this.DivElement.style.width.replace("px",""));}this.CanvasElement.style.width=width+'px';this.CanvasElement.style.height=height+'px';this.CanvasElement.height=parseInt(pixelTatio*height);//根据分辨率缩放
1148
+ this.CanvasElement.width=parseInt(pixelTatio*width);if(this.OffscreenCanvasElement){this.OffscreenCanvasElement.height=this.CanvasElement.height;this.OffscreenCanvasElement.width=this.CanvasElement.width;}if(this.CacheCanvasElement){this.CacheCanvasElement.height=this.CanvasElement.height;this.CacheCanvasElement.width=this.CanvasElement.width;}var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=(0,_getIterator3.default)(this.MapExtraCanvasElement),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var mapItem=_step.value;var item=mapItem[1];var element=item.Element;if(!element)continue;element.height=this.CanvasElement.height;element.width=this.CanvasElement.width;element.style.width=this.CanvasElement.style.width;element.style.height=this.CanvasElement.style.height;}}catch(err){_didIteratorError=true;_iteratorError=err;}finally{try{if(!_iteratorNormalCompletion&&_iterator.return){_iterator.return();}}finally{if(_didIteratorError){throw _iteratorError;}}}JSConsole.Chart.Log('[JSChart::OnSize] devicePixelRatio='+window.devicePixelRatio+', height='+this.CanvasElement.height+', width='+this.CanvasElement.width);if(option&&option.Redraw==false)return;if(this.JSChartContainer){if(option&&option.XYSplit===true)this.JSChartContainer.ResetFrameXYSplit();if(this.JSChartContainer.OnSize&&option&&option.Type==1)//K线宽度不变
1151
1149
  {this.JSChartContainer.OnSize();}else if(this.JSChartContainer.ShowAllKLine&&option&&option.Type==2){this.JSChartContainer.ShowAllKLine();}else{if(this.JSChartContainer.Frame)this.JSChartContainer.Frame.SetSizeChage(true);this.JSChartContainer.Draw();}}};//手机屏需要调整 间距
1152
1150
  this.AdjustChartBorder=function(chart){var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
1153
1151
  chart.Frame.ChartBorder.Left*=pixelTatio;chart.Frame.ChartBorder.Right*=pixelTatio;chart.Frame.ChartBorder.Top*=pixelTatio;chart.Frame.ChartBorder.Bottom*=pixelTatio;if(chart.Frame.AutoLeftBorder){var item=chart.Frame.AutoLeftBorder;if(IFrameSplitOperator.IsNumber(item.MinWidth))item.MinWidth*=pixelTatio;if(IFrameSplitOperator.IsNumber(item.Blank))item.Blank*=pixelTatio;}if(chart.Frame.AutoRightBorder){var item=chart.Frame.AutoRightBorder;if(IFrameSplitOperator.IsNumber(item.MinWidth))item.MinWidth*=pixelTatio;if(IFrameSplitOperator.IsNumber(item.Blank))item.Blank*=pixelTatio;}};this.AdjustTitleHeight=function(chart){var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
@@ -1492,7 +1490,8 @@ ON_CLICK_TREPORT_HEADER:124,//单击T型报价表头
1492
1490
  ON_RCLICK_TREPORT_HEADER:125,//右键点击T型报价表头
1493
1491
  ON_TREPORT_LOCAL_SORT:126,//T型报价列表本地排序
1494
1492
  ON_CLICK_TREPORT_ROW:127,//左键点击点击T型报价列表
1495
- ON_MOVE_SELECTED_TREPORT_ROW:128,//选中行变动
1493
+ ON_MOVE_SELECTED_TREPORT_ROW:128,//T型报价 选中行变动
1494
+ ON_MOVE_SELECTED_REPORT_ROW:129,//报价列表 选中行变动
1496
1495
  ON_DRAW_REPORT_ROW_BG:140,//报价列表整行背景
1497
1496
  ON_CLICK_REPORT_CHECKBOX:141,//报价列表checkbox
1498
1497
  ON_CLICK_REPORT_BUTTON:142,//报价列表按钮
@@ -7766,7 +7765,7 @@ chart.SetOption(option);this.ExtendChartPaint.push(chart);this.Frame.ChartBorder
7766
7765
  this.GlobalOption.RightHorizontal.Show=false;return chart;};this.CreateExtendChart=function(name,option)//创建扩展图形
7767
7766
  {var chart;switch(name){case'筹码分布':case"StockChip":chart=new StockChip();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;chart.Left=this.Frame.ChartBorder.Right;//左边间距使用当前框架间距
7768
7767
  chart.SetOption(option);this.ExtendChartPaint.push(chart);this.Frame.ChartBorder.Right+=chart.Width;//创建筹码需要增加右边的间距
7769
- return chart;case"StockChipPhone":return this.CreateStockChipPhone(option);case'KLineTooltip':if(option.Create&&typeof option.Create=='function')chart=option.Create();else chart=new KLineTooltipPaint();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;option.LanguageID=this.LanguageID;chart.SetOption(option);this.ExtendChartPaint.push(chart);return chart;case"深度图":chart=new DepthMapPaint();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;chart.SetOption(option);this.ExtendChartPaint.push(chart);return chart;case"K线Y轴背景图":chart=new KLineYAxisBGPaint();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;chart.SetOption(option);this.ExtendChartPaint.push(chart);return chart;case'背景图':chart=new BackgroundPaint();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;chart.SetOption(option);this.ExtendChartPaint.push(chart);return chart;case"FrameSplitPaint"://框架分割
7768
+ return chart;case"StockChipPhone":return this.CreateStockChipPhone(option);case'KLineTooltip':if(option.Create&&typeof option.Create=='function')chart=option.Create();else chart=new KLineTooltipPaint();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;option.LanguageID=this.LanguageID;chart.SetOption(option);this.ExtendChartPaint.push(chart);return chart;case"深度图":chart=new DepthMapPaint();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;chart.SetOption(option);this.ExtendChartPaint.push(chart);return chart;case"K线Y轴背景图":chart=new KLineYAxisBGPaint();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;chart.SetOption(option);this.ExtendChartPaint.push(chart);return chart;case"BackgroundPaint":case'背景图':chart=new BackgroundPaint();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;chart.SetOption(option);this.ExtendChartPaint.push(chart);return chart;case"FrameSplitPaint"://框架分割
7770
7769
  chart=new FrameSplitPaint();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;chart.SetOption(option);this.ExtendChartPaint.push(chart);return chart;default:chart=g_ExtendChartPaintFactory.Create(name);if(!chart)return null;chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;chart.SetOption(option);this.ExtendChartPaint.push(chart);return chart;}};this.OnTouchFinished=function(){if(this.DragMode==JSCHART_DRAG_ID.CLICK_TOUCH_MODE_ID){if(this.TouchStatus.CorssCursorShow==true&&this.TouchDrawCount>0)return;this.TouchStatus.CorssCursorShow=false;this.DrawDynamicInfo();return;}if(this.EnableClickModel===true){if(this.ClickModel.IsShowCorssCursor==true&&this.TouchDrawCount>0)return;this.ClickModel.IsShowCorssCursor=false;this.DrawDynamicInfo();return;}if(this.CorssCursorTouchEnd===true)//手势离开十字光标消失
7771
7770
  {if(this.TouchDrawCount>0)this.DrawDynamicInfo();return;}for(var i in this.ExtendChartPaint){var item=this.ExtendChartPaint[i];if(item.ClassName==='KLineTooltipPaint'){this.DrawDynamicInfo();}}};//锁|解锁指标 { Index:指标名字,IsLocked:是否要锁上,Callback:回调 }
7772
7771
  this.LockIndex=function(lockData){if(!lockData)return;if(!lockData.IndexName)return;for(var _i12 in this.WindowIndex){var _item4=this.WindowIndex[_i12];if(!_item4)conintue;if(_item4.Name==lockData.IndexName){_item4.SetLock(lockData);this.Update();break;}}};this.TryClickLock=function(x,y){for(var i=0;i<this.Frame.SubFrame.length;++i){var item=this.Frame.SubFrame[i];if(!item.Frame.IsLocked)continue;if(!item.Frame.LockPaint)continue;var tooltip=new TooltipData();if(!item.Frame.LockPaint.GetTooltipData(x,y,tooltip))continue;tooltip.HQChart=this;if(tooltip.Data.Callback)tooltip.Data.Callback(tooltip);return true;}return false;};this.TryClickIndexTitle=function(x,y){for(var i in this.TitlePaint){var item=this.TitlePaint[i];if(!item.IsClickTitle)continue;if(!item.IsClickTitle(x,y))continue;var data={Point:{X:x,Y:y},Title:item.Title,FrameID:item.Frame.Identify};JSConsole.Chart.Log('[KLineChartContainer::TryClickIndexTitle] click title ',data);var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CLICK_INDEXTITLE);if(event&&event.Callback)event.Callback(event,data,this);return true;}return false;};this.SetSizeChange=function(bChanged){this.Frame.SetSizeChage(bChanged);for(var i in this.ExtendChartPaint){var item=this.ExtendChartPaint[i];item.SizeChange=bChanged;}};this.SetSizeChage=this.SetSizeChange;//单词拼错了, 还没替换完
@@ -8605,7 +8604,7 @@ this.CreateWindowIndex=function(windowIndex){this.WindowIndex[windowIndex].Creat
8605
8604
  }
8606
8605
  }
8607
8606
  */};this.CreateExtendChart=function(name,option)//创建扩展图形
8608
- {var chart;switch(name){case'MinuteTooltip':if(option.Create&&typeof option.Create=='function')chart=option.Create();else chart=new MinuteTooltipPaint();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;option.LanguageID=this.LanguageID;chart.SetOption(option);this.ExtendChartPaint.push(chart);return chart;case"MinutePCTooltip":if(option.Create&&typeof option.Create=="function")chart=option.Create();else chart=new MinuteLeftTooltipPaint();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;option.LanguageID=this.LanguageID;chart.SetOption(option);this.ExtendChartPaint.push(chart);return chart;case"MinuteBackgroundPaint":chart=new MinuteBackgroundPaint();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;option.LanguageID=this.LanguageID;chart.SetOption(option);this.ExtendChartPaint.push(chart);return chart;case"背景图":chart=new BackgroundPaint();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;chart.SetOption(option);this.ExtendChartPaint.push(chart);return chart;default:chart=g_ExtendChartPaintFactory.Create(name);if(!chart)return null;chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;chart.SetOption(option);this.ExtendChartPaint.push(chart);return chart;}};this.SetMinuteInfo=function(aryInfo,bUpdate){this.ChartInfo=[];//先清空
8607
+ {var chart;switch(name){case'MinuteTooltip':if(option.Create&&typeof option.Create=='function')chart=option.Create();else chart=new MinuteTooltipPaint();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;option.LanguageID=this.LanguageID;chart.SetOption(option);this.ExtendChartPaint.push(chart);return chart;case"MinutePCTooltip":if(option.Create&&typeof option.Create=="function")chart=option.Create();else chart=new MinuteLeftTooltipPaint();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;option.LanguageID=this.LanguageID;chart.SetOption(option);this.ExtendChartPaint.push(chart);return chart;case"MinuteBackgroundPaint":chart=new MinuteBackgroundPaint();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;option.LanguageID=this.LanguageID;chart.SetOption(option);this.ExtendChartPaint.push(chart);return chart;case"BackgroundPaint":case"背景图":chart=new BackgroundPaint();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;chart.SetOption(option);this.ExtendChartPaint.push(chart);return chart;default:chart=g_ExtendChartPaintFactory.Create(name);if(!chart)return null;chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.ChartBorder;chart.ChartFrame=this.Frame;chart.HQChart=this;chart.SetOption(option);this.ExtendChartPaint.push(chart);return chart;}};this.SetMinuteInfo=function(aryInfo,bUpdate){this.ChartInfo=[];//先清空
8609
8608
  for(var i in aryInfo){var infoItem=JSMinuteInfoMap.Get(aryInfo[i]);if(!infoItem)continue;var item=infoItem.Create();this.ChartInfo.push(item);}if(bUpdate==true)this.RequestMinuteInfoData();};this.GetChartMinuteInfo=function(){return this.ChartInfoPaint;};this.CreateMinuteInfo=function(option)//在Create()以后 在调用
8610
8609
  {var chart=new ChartMinuteInfo();chart.Canvas=this.Canvas;chart.ChartBorder=this.Frame.SubFrame[0].Frame.ChartBorder;chart.ChartFrame=this.Frame.SubFrame[0].Frame;chart.HQChartBorder=this.Frame.ChartBorder;chart.ChartMinutePrice=this.ChartPaint[0];if(option&&chart.SetOption)chart.SetOption(option);this.ChartInfoPaint=chart;return chart;};//信息地雷数据请求
8611
8610
  this.RequestMinuteInfoData=function(){if(this.ChartInfo.length<=0)return;var chart=this.GetChartMinuteInfo();if(!chart)chart=this.CreateMinuteInfo(null);//不存在就创建
@@ -12718,8 +12717,8 @@ this.AddEventCallback=function(object){if(!object||!object.event||!object.callba
12718
12717
  this.HideMinuteChartTooltip();this.HideFloatTooltip();switch(keyID){case 33://page up
12719
12718
  if(this.GotoPreviousPage(this.PageUpDownCycle)){this.Draw();this.DelayUpdateStockData();}break;case 34://page down
12720
12719
  if(this.GotoNextPage(this.PageUpDownCycle)){this.Draw();this.DelayUpdateStockData();}break;case 38://up
12721
- var result=this.MoveSelectedRow(-1);if(result){if(result.Redraw)this.Draw();if(result.Update)this.DelayUpdateStockData();}break;case 40://down
12722
- var result=this.MoveSelectedRow(1);if(result){if(result.Redraw)this.Draw();if(result.Update)this.DelayUpdateStockData();}break;case 37://left
12720
+ var result=this.MoveSelectedRow(-1,{EnablePageCycle:this.PageUpDownCycle});if(result){if(result.Redraw)this.Draw();if(result.Update)this.DelayUpdateStockData();this.MoveSelectedRowEvent(result.OldIndex,result.NewIndex);}break;case 40://down
12721
+ var result=this.MoveSelectedRow(1,{EnablePageCycle:this.PageUpDownCycle});if(result){if(result.Redraw)this.Draw();if(result.Update)this.DelayUpdateStockData();this.MoveSelectedRowEvent(result.OldIndex,result.NewIndex);}break;case 37://left
12723
12722
  if(this.MoveXOffset(-1))this.Draw();break;case 39://right
12724
12723
  if(this.MoveXOffset(1))this.Draw();break;}//不让滚动条滚动
12725
12724
  if(e.preventDefault)e.preventDefault();else e.returnValue=false;};this.UIOnDblClick=function(e){var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;var chart=this.ChartPaint[0];if(chart)chart.OnDblClick(x,y,e);};this.UIOnMouseDown=function(e){var _this58=this;this.DragXScroll=null;this.DragYScroll=null;this.DragHeader=null;this.DragColumnWidth=null;this.DragMove={Click:{X:e.clientX,Y:e.clientY},Move:{X:e.clientX,Y:e.clientY},PreMove:{X:e.clientX,Y:e.clientY}};var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;var chart=this.ChartPaint[0];if(chart){var dragColumnWidth=chart.PtInHeaderDragBorder(x,y);if(dragColumnWidth){this.DragColumnWidth={ClickPoint:{X:x,Y:y},LastPoint:{X:x,Y:y},//Click:{ X:e.clientX, Y:e.clientY },
@@ -12787,10 +12786,12 @@ return true;}else{return false;}}this.Data.YOffset+=pageSize;var showDataCount=d
12787
12786
  return true;}else{return false;}}var offset=this.Data.YOffset;offset-=pageSize;if(offset<0)offset=0;this.Data.YOffset=offset;return true;};this.MoveYOffset=function(setp,bCycle)//bCycle 是否循环
12788
12787
  {if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return false;var chart=this.ChartPaint[0];if(!chart)return false;var pageStatus=chart.GetCurrentPageStatus();if(pageStatus.IsSinglePage)return false;if(setp>0)//向上
12789
12788
  {var count=this.Data.Data.length;var pageSize=pageStatus.PageSize;var offset=this.Data.YOffset;if(bCycle){for(var i=0;i<setp;++i){++offset;if(offset+pageSize>count)offset=0;}}else{if(offset+pageSize>=count)return false;for(var i=0;i<setp;++i){if(offset+pageSize+1>count)break;++offset;}}this.Data.YOffset=offset;return true;}else if(setp<0)//向下
12790
- {setp=Math.abs(setp);var offset=this.Data.YOffset;if(bCycle){var pageSize=pageStatus.PageSize;for(var i=0;i<setp;++i){--offset;if(offset<0)offset=this.Data.Data.length-pageSize;}}else{if(this.Data.YOffset<=0)return false;for(var i=0;i<setp;++i){if(offset-1<0)break;--offset;}}this.Data.YOffset=offset;return true;}return false;};this.MoveSelectedRow=function(step){var chart=this.ChartPaint[0];if(!chart)return null;if(!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return null;var result={Redraw:false,Update:false};//Redraw=重绘, Update=更新数据
12789
+ {setp=Math.abs(setp);var offset=this.Data.YOffset;if(bCycle){var pageSize=pageStatus.PageSize;for(var i=0;i<setp;++i){--offset;if(offset<0)offset=this.Data.Data.length-pageSize;}}else{if(this.Data.YOffset<=0)return false;for(var i=0;i<setp;++i){if(offset-1<0)break;--offset;}}this.Data.YOffset=offset;return true;}return false;};// option={ EnablePageCycle: true/false(是否循环翻页) }
12790
+ this.MoveSelectedRow=function(step,option){var chart=this.ChartPaint[0];if(!chart)return null;if(!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return null;var bPageCycle=false;if(option){if(IFrameSplitOperator.IsBool(option.EnablePageCycle))bPageCycle=option.EnablePageCycle;}var result={Redraw:false,Update:false,OldIndex:-1,NewIndex:-1};//Redraw=重绘, Update=更新数据
12791
12791
  if(chart.MultiSelectModel==1){var pageStatus=chart.GetCurrentPageStatus();if(IFrameSplitOperator.IsNonEmptyArray(pageStatus.MultiSelectedRow)){var selected=pageStatus.MultiSelectedRow[0];if(step>0){if(selected==this.Data.Data.length-1)return result;if(selected<0||selected<pageStatus.Start||selected>pageStatus.End){chart.MultiSelectedRow=[pageStatus.Start];result.Redraw=true;return result;}var offset=this.Data.YOffset;for(var i=0;i<step;++i){++selected;if(selected>pageStatus.End)++offset;if(selected>=this.Data.Data.length){selected=0;offset=0;}}result.Redraw=true;result.Update=offset!=this.Data.YOffset;chart.MultiSelectedRow=[selected];this.Data.YOffset=offset;return result;}else if(step<0){if(selected==0)return result;if(selected<0||selected<pageStatus.Start||selected>pageStatus.End){chart.MultiSelectedRow=[pageStatus.End];result.Redraw=true;return result;}step=Math.abs(step);var offset=this.Data.YOffset;for(var i=0;i<step;++i){--selected;if(selected<pageStatus.Start)--offset;if(selected<0){selected=this.Data.Data.length-1;offset=this.Data.Data.length-pageSize;if(offset<0)offset=0;}}result.Redraw=true;result.Update=offset!=this.Data.YOffset;chart.MultiSelectedRow=[selected];this.Data.YOffset=offset;return result;}else{return null;}return result;}else{var selected=-1;if(step>0)selected=pageStatus.Start;else if(step<0)selected=pageStatus.End;else return null;chart.MultiSelectedRow=[selected];result.Redraw=true;}return result;}if(chart.SelectedModel==0)//不可翻页模式, 只能在当前页移动
12792
- {var pageStatus=chart.GetCurrentPageStatus();var pageSize=pageStatus.End-pageStatus.Start+1;var selected=pageStatus.SelectedRow;if(step>0){selected+=step;selected=selected%pageSize;chart.SelectedRow=selected;chart.SelectedFixedRow=-1;result.Redraw=true;return result;}else if(step<0){selected+=step;if(selected<0){selected=selected%pageSize;selected=pageSize+selected;}chart.SelectedRow=selected;chart.SelectedFixedRow=-1;result.Redraw=true;return result;}}else if(chart.SelectedModel==1)//可翻页模式
12793
- {var pageStatus=chart.GetCurrentPageStatus();var pageSize=pageStatus.PageSize;var selected=pageStatus.SelectedRow;if(step>0){if(selected<0||selected<pageStatus.Start||selected>pageStatus.End){chart.SelectedRow=pageStatus.Start;result.Redraw=true;return result;}var offset=this.Data.YOffset;for(var i=0;i<step;++i){++selected;if(selected>pageStatus.End)++offset;if(selected>=this.Data.Data.length){selected=0;offset=0;}}result.Redraw=true;result.Update=offset!=this.Data.YOffset;chart.SelectedRow=selected;this.Data.YOffset=offset;return result;}else if(step<0){if(selected<0||selected<pageStatus.Start||selected>pageStatus.End){chart.SelectedRow=pageStatus.End;result.Redraw=true;return result;}step=Math.abs(step);var offset=this.Data.YOffset;for(var i=0;i<step;++i){--selected;if(selected<pageStatus.Start)--offset;if(selected<0){selected=this.Data.Data.length-1;offset=this.Data.Data.length-pageSize;if(offset<0)offset=0;}}result.Redraw=true;result.Update=offset!=this.Data.YOffset;chart.SelectedRow=selected;this.Data.YOffset=offset;return result;}}return null;};//左右移动
12792
+ {var pageStatus=chart.GetCurrentPageStatus();var pageSize=pageStatus.End-pageStatus.Start+1;var selected=pageStatus.SelectedRow;result.OldIndex=this.Data.YOffset+selected;if(step>0){selected+=step;selected=selected%pageSize;chart.SelectedRow=selected;chart.SelectedFixedRow=-1;result.Redraw=true;result.NewIndex=this.Data.YOffset+selected;return result;}else if(step<0){selected+=step;if(selected<0){selected=selected%pageSize;selected=pageSize+selected;}chart.SelectedRow=selected;chart.SelectedFixedRow=-1;result.NewIndex=this.Data.YOffset+selected;result.Redraw=true;return result;}}else if(chart.SelectedModel==1)//可翻页模式
12793
+ {var pageStatus=chart.GetCurrentPageStatus();var pageSize=pageStatus.PageSize;var selected=pageStatus.SelectedRow;result.OldIndex=pageStatus.SelectedRow;if(step>0){if(selected<0||selected<pageStatus.Start||selected>pageStatus.End){chart.SelectedRow=pageStatus.Start;result.Redraw=true;result.NewIndex=pageStatus.Start;return result;}var offset=this.Data.YOffset;for(var i=0;i<step;++i){if(selected+1>=this.Data.Data.length&&!bPageCycle)break;++selected;if(selected>pageStatus.End)++offset;if(selected>=this.Data.Data.length){selected=0;offset=0;}}result.Redraw=true;result.Update=offset!=this.Data.YOffset;chart.SelectedRow=selected;this.Data.YOffset=offset;result.NewIndex=selected;return result;}else if(step<0){if(selected<0||selected<pageStatus.Start||selected>pageStatus.End){chart.SelectedRow=pageStatus.End;result.Redraw=true;result.NewIndex=pageStatus.End;return result;}step=Math.abs(step);var offset=this.Data.YOffset;for(var i=0;i<step;++i){if(selected<=0&&!bPageCycle)//不能循环翻页
12794
+ break;--selected;if(selected<pageStatus.Start)--offset;if(selected<0){selected=this.Data.Data.length-1;offset=this.Data.Data.length-pageSize;if(offset<0)offset=0;}}result.Redraw=true;result.Update=offset!=this.Data.YOffset;chart.SelectedRow=selected;this.Data.YOffset=offset;result.NewIndex=selected;return result;}}return null;};this.MoveSelectedRowEvent=function(oldIndex,newIndex){var chart=this.ChartPaint[0];if(!chart)return null;if(oldIndex==newIndex)return;var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_MOVE_SELECTED_REPORT_ROW);if(!event||!event.Callback)return;if(!IFrameSplitOperator.IsNonEmptyArray(chart.Data.Data))return;var arySymbol=chart.Data.Data;var oldData=null,newData=null;if(oldIndex>=0&&oldIndex<arySymbol.length){var symbol=arySymbol[oldIndex];oldData={Symbol:symbol,Index:oldIndex};}if(newIndex>=0&&newIndex<arySymbol.length){var symbol=arySymbol[newIndex];newData={Symbol:symbol,Index:newIndex};}var endData={Old:oldData,Now:newData};event.Callback(event,endData,this);};//左右移动
12794
12795
  this.MoveXOffset=function(step){var chart=this.ChartPaint[0];if(!chart)return false;var maxOffset=chart.GetXScrollRange();if(maxOffset<=0)return false;if(step>0){if(this.Data.XOffset>=maxOffset)return false;for(var i=0;i<step;++i){if(this.Data.XOffset>=maxOffset)break;++this.Data.XOffset;}return true;}else if(step<0){if(this.Data.XOffset<=0)return false;step=Math.abs(step);for(var i=0;i<step;++i){if(this.Data.XOffset-1<0)break;--this.Data.XOffset;}return true;}return false;};this.SetXOffset=function(pos){if(!IFrameSplitOperator.IsNumber(pos))return false;var chart=this.ChartPaint[0];if(!chart)return false;var maxOffset=chart.GetXScrollRange();if(pos<0)pos=0;if(pos>maxOffset)pos=maxOffset;this.Data.XOffset=pos;return true;};this.SetYOffset=function(pos){if(!IFrameSplitOperator.IsNumber(pos))return false;var chart=this.ChartPaint[0];if(!chart)return false;var maxOffset=chart.GetYScrollRange();if(pos<0)pos=0;if(pos>maxOffset)pos=maxOffset;this.Data.YOffset=pos;return true;};this.GotoLastPage=function(){var chart=this.ChartPaint[0];if(!chart)return;//显示最后一屏
12795
12796
  var pageSize=chart.GetPageSize(true);var offset=this.Data.Data.length-pageSize;if(offset<0)offset=0;this.Data.DataOffset=offset;};this.SetColumn=function(aryColunm,option){var chart=this.ChartPaint[0];if(!chart)return;chart.SetColumn(aryColunm);chart.SizeChange=true;if(option&&option.Redraw)this.Draw();};this.SetTab=function(aryTab,option){var chart=this.ChartPaint[0];;if(!chart)return;var chartTab=chart.Tab;if(!chartTab)return;chartTab.SetTabList(aryTab);if(option&&option.Redraw)this.Draw();};this.SetVScrollbar=function(option){var chart=this.GetReportChart();if(!chart)return;var scrollbar=chart.VScrollbar;if(!scrollbar)return;scrollbar.SetOption(option);};this.SetSelectedTab=function(index,opiton){var chart=this.ChartPaint[0];;if(!chart)return;var chartTab=chart.Tab;if(!chartTab)return;chartTab.SelectedTabIndex=index;};this.ReloadResource=function(option){this.Frame.ReloadResource(option);for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(item.ReloadResource)item.ReloadResource(option);}if(option&&option.Redraw){this.SetSizeChange(true);this.Draw();}if(this.MinuteChartTooltip)this.MinuteChartTooltip.ReloadResource(option);};//列排序
12796
12797
  this.SortColumn=function(index,sortType){var _this60=this;if(index<0)return false;var reportChart=this.GetReportChart();if(!reportChart)return false;var column=reportChart.Column[index];if(!column)return false;if(column.Sort!=1&&column.Sort!=2)return false;var sortInfo={Field:index,Sort:sortType};if(this.Data.Virtual&&this.Data.Virtual.Enable){this.SortInfo.Field=sortInfo.Field;this.SortInfo.Sort=sortInfo.Sort;this.Data.YOffset=0;this.ResetReportSelectStatus();this.RequestVirtualStockData();//虚拟表格
@@ -14329,7 +14330,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
14329
14330
  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);};}/********************************************************************************
14330
14331
  * 版本信息输出
14331
14332
  *
14332
- */var HQCHART_VERSION="1.1.14431";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();//把给外界调用的方法暴露出来
14333
+ */var HQCHART_VERSION="1.1.14440";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();//把给外界调用的方法暴露出来
14333
14334
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
14334
14335
  // BaseIndex:BaseIndex,
14335
14336
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.14432",
3
+ "version": "1.1.14441",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -25,7 +25,6 @@ if (!JSConsole)
25
25
  function JSChart(divElement, bOffscreen, bCacheCanvas)
26
26
  {
27
27
  this.DivElement=divElement;
28
- this.DivToolElement=null; //工具条
29
28
  this.JSChartContainer; //画图控件
30
29
  this.ResizeListener;
31
30
 
@@ -121,6 +120,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
121
120
  //画布大小通过div获取 如果有style里的大小 使用style里的
122
121
  var height=this.DivElement.offsetHeight;
123
122
  var width=this.DivElement.offsetWidth;
123
+ var pixelTatio = GetDevicePixelRatio(); //获取设备的分辨率s
124
124
  if (this.DivElement.style.height && this.DivElement.style.width)
125
125
  {
126
126
  if (this.DivElement.style.height.includes("px"))
@@ -128,21 +128,12 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
128
128
  if (this.DivElement.style.width.includes("px"))
129
129
  width=parseInt(this.DivElement.style.width.replace("px",""));
130
130
  }
131
-
132
- if (this.ToolElement)
133
- {
134
- //TODO调整工具条大小
135
- height-=this.ToolElement.style.height.replace("px",""); //减去工具条的高度
136
- }
137
131
 
138
- this.CanvasElement.height=height;
139
- this.CanvasElement.width=width;
140
- this.CanvasElement.style.width=this.CanvasElement.width+'px';
141
- this.CanvasElement.style.height=this.CanvasElement.height+'px';
132
+ this.CanvasElement.style.width=`${width}px`;
133
+ this.CanvasElement.style.height=`${height}px`;
142
134
 
143
- var pixelTatio = GetDevicePixelRatio(); //获取设备的分辨率
144
- this.CanvasElement.height*=pixelTatio;
145
- this.CanvasElement.width*=pixelTatio;
135
+ this.CanvasElement.height=parseInt(pixelTatio*height); //根据分辨率缩放
136
+ this.CanvasElement.width=parseInt(pixelTatio*width);
146
137
 
147
138
  if (this.OffscreenCanvasElement)
148
139
  {
@@ -2665,7 +2656,9 @@ var JSCHART_EVENT_ID=
2665
2656
  ON_RCLICK_TREPORT_HEADER:125, //右键点击T型报价表头
2666
2657
  ON_TREPORT_LOCAL_SORT:126, //T型报价列表本地排序
2667
2658
  ON_CLICK_TREPORT_ROW:127, //左键点击点击T型报价列表
2668
- ON_MOVE_SELECTED_TREPORT_ROW:128, //选中行变动
2659
+ ON_MOVE_SELECTED_TREPORT_ROW:128, //T型报价 选中行变动
2660
+
2661
+ ON_MOVE_SELECTED_REPORT_ROW:129, //报价列表 选中行变动
2669
2662
 
2670
2663
  ON_DRAW_REPORT_ROW_BG:140, //报价列表整行背景
2671
2664
  ON_CLICK_REPORT_CHECKBOX:141, //报价列表checkbox
@@ -79712,6 +79705,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
79712
79705
  chart.SetOption(option);
79713
79706
  this.ExtendChartPaint.push(chart);
79714
79707
  return chart;
79708
+ case "BackgroundPaint":
79715
79709
  case '背景图':
79716
79710
  chart=new BackgroundPaint();
79717
79711
  chart.Canvas=this.Canvas;
@@ -88312,6 +88306,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
88312
88306
  chart.SetOption(option);
88313
88307
  this.ExtendChartPaint.push(chart);
88314
88308
  return chart;
88309
+ case "BackgroundPaint":
88315
88310
  case "背景图":
88316
88311
  chart=new BackgroundPaint();
88317
88312
  chart.Canvas=this.Canvas;
@@ -1842,19 +1842,21 @@ function JSReportChartContainer(uielement)
1842
1842
  }
1843
1843
  break;
1844
1844
  case 38: //up
1845
- var result=this.MoveSelectedRow(-1);
1845
+ var result=this.MoveSelectedRow(-1, {EnablePageCycle: this.PageUpDownCycle});
1846
1846
  if (result)
1847
1847
  {
1848
1848
  if (result.Redraw) this.Draw();
1849
1849
  if (result.Update) this.DelayUpdateStockData();
1850
+ this.MoveSelectedRowEvent(result.OldIndex, result.NewIndex);
1850
1851
  }
1851
1852
  break;
1852
1853
  case 40: //down
1853
- var result=this.MoveSelectedRow(1)
1854
+ var result=this.MoveSelectedRow(1, {EnablePageCycle: this.PageUpDownCycle})
1854
1855
  if (result)
1855
1856
  {
1856
1857
  if (result.Redraw) this.Draw();
1857
1858
  if (result.Update) this.DelayUpdateStockData();
1859
+ this.MoveSelectedRowEvent(result.OldIndex, result.NewIndex);
1858
1860
  }
1859
1861
  break;
1860
1862
  case 37: //left
@@ -3015,13 +3017,19 @@ function JSReportChartContainer(uielement)
3015
3017
  return false;
3016
3018
  }
3017
3019
 
3018
- this.MoveSelectedRow=function(step)
3020
+ // option={ EnablePageCycle: true/false(是否循环翻页) }
3021
+ this.MoveSelectedRow=function(step, option)
3019
3022
  {
3020
3023
  var chart=this.ChartPaint[0];
3021
3024
  if (!chart) return null;
3022
3025
  if (!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return null;
3026
+ var bPageCycle=false;
3027
+ if (option)
3028
+ {
3029
+ if (IFrameSplitOperator.IsBool(option.EnablePageCycle)) bPageCycle=option.EnablePageCycle;
3030
+ }
3023
3031
 
3024
- var result={ Redraw:false, Update:false }; //Redraw=重绘, Update=更新数据
3032
+ var result={ Redraw:false, Update:false, OldIndex:-1, NewIndex:-1 }; //Redraw=重绘, Update=更新数据
3025
3033
 
3026
3034
  if (chart.MultiSelectModel==1)
3027
3035
  {
@@ -3123,6 +3131,7 @@ function JSReportChartContainer(uielement)
3123
3131
  var pageStatus=chart.GetCurrentPageStatus();
3124
3132
  var pageSize=pageStatus.End-pageStatus.Start+1;
3125
3133
  var selected=pageStatus.SelectedRow;
3134
+ result.OldIndex=this.Data.YOffset+selected;
3126
3135
  if (step>0)
3127
3136
  {
3128
3137
  selected+=step;
@@ -3130,6 +3139,7 @@ function JSReportChartContainer(uielement)
3130
3139
  chart.SelectedRow=selected;
3131
3140
  chart.SelectedFixedRow=-1;
3132
3141
  result.Redraw=true;
3142
+ result.NewIndex=this.Data.YOffset+selected;
3133
3143
  return result;
3134
3144
  }
3135
3145
  else if (step<0)
@@ -3143,6 +3153,7 @@ function JSReportChartContainer(uielement)
3143
3153
 
3144
3154
  chart.SelectedRow=selected;
3145
3155
  chart.SelectedFixedRow=-1;
3156
+ result.NewIndex=this.Data.YOffset+selected;
3146
3157
  result.Redraw=true;
3147
3158
  return result;
3148
3159
  }
@@ -3152,18 +3163,23 @@ function JSReportChartContainer(uielement)
3152
3163
  var pageStatus=chart.GetCurrentPageStatus();
3153
3164
  var pageSize=pageStatus.PageSize;
3154
3165
  var selected=pageStatus.SelectedRow;
3166
+ result.OldIndex=pageStatus.SelectedRow;
3155
3167
  if (step>0)
3156
3168
  {
3157
3169
  if (selected<0 || selected<pageStatus.Start || selected>pageStatus.End)
3158
3170
  {
3159
3171
  chart.SelectedRow=pageStatus.Start;
3160
3172
  result.Redraw=true;
3173
+ result.NewIndex=pageStatus.Start;
3161
3174
  return result;
3162
3175
  }
3163
3176
 
3164
3177
  var offset=this.Data.YOffset;
3165
3178
  for(var i=0;i<step;++i)
3166
3179
  {
3180
+ if (selected+1>=this.Data.Data.length && !bPageCycle)
3181
+ break;
3182
+
3167
3183
  ++selected;
3168
3184
  if (selected>pageStatus.End) ++offset;
3169
3185
 
@@ -3179,7 +3195,7 @@ function JSReportChartContainer(uielement)
3179
3195
 
3180
3196
  chart.SelectedRow=selected;
3181
3197
  this.Data.YOffset=offset;
3182
-
3198
+ result.NewIndex=selected;
3183
3199
  return result;
3184
3200
  }
3185
3201
  else if (step<0)
@@ -3188,6 +3204,7 @@ function JSReportChartContainer(uielement)
3188
3204
  {
3189
3205
  chart.SelectedRow=pageStatus.End;
3190
3206
  result.Redraw=true;
3207
+ result.NewIndex=pageStatus.End;
3191
3208
  return result;
3192
3209
  }
3193
3210
 
@@ -3195,6 +3212,9 @@ function JSReportChartContainer(uielement)
3195
3212
  var offset=this.Data.YOffset;
3196
3213
  for(var i=0;i<step;++i)
3197
3214
  {
3215
+ if (selected<=0 && !bPageCycle) //不能循环翻页
3216
+ break;
3217
+
3198
3218
  --selected;
3199
3219
  if (selected<pageStatus.Start) --offset;
3200
3220
 
@@ -3211,6 +3231,7 @@ function JSReportChartContainer(uielement)
3211
3231
 
3212
3232
  chart.SelectedRow=selected;
3213
3233
  this.Data.YOffset=offset;
3234
+ result.NewIndex=selected;
3214
3235
 
3215
3236
  return result;
3216
3237
  }
@@ -3219,6 +3240,36 @@ function JSReportChartContainer(uielement)
3219
3240
  return null;
3220
3241
  }
3221
3242
 
3243
+ this.MoveSelectedRowEvent=function(oldIndex, newIndex)
3244
+ {
3245
+ var chart=this.ChartPaint[0];
3246
+ if (!chart) return null;
3247
+
3248
+ if (oldIndex==newIndex) return;
3249
+
3250
+ var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_MOVE_SELECTED_REPORT_ROW);
3251
+ if (!event || !event.Callback) return;
3252
+
3253
+ if (!IFrameSplitOperator.IsNonEmptyArray(chart.Data.Data)) return;
3254
+ var arySymbol=chart.Data.Data;
3255
+
3256
+ var oldData=null, newData=null;
3257
+ if (oldIndex>=0 && oldIndex<arySymbol.length)
3258
+ {
3259
+ var symbol=arySymbol[oldIndex];
3260
+ oldData={ Symbol:symbol, Index:oldIndex };
3261
+ }
3262
+
3263
+ if (newIndex>=0 && newIndex<arySymbol.length)
3264
+ {
3265
+ var symbol=arySymbol[newIndex];
3266
+ newData={ Symbol:symbol, Index:newIndex };
3267
+ }
3268
+
3269
+ var endData={ Old:oldData, Now:newData };
3270
+ event.Callback(event, endData, this);
3271
+ }
3272
+
3222
3273
  //左右移动
3223
3274
  this.MoveXOffset=function(step)
3224
3275
  {
@@ -3950,7 +3950,6 @@ if (!JSConsole)
3950
3950
  function JSChart(divElement, bOffscreen, bCacheCanvas)
3951
3951
  {
3952
3952
  this.DivElement=divElement;
3953
- this.DivToolElement=null; //工具条
3954
3953
  this.JSChartContainer; //画图控件
3955
3954
  this.ResizeListener;
3956
3955
 
@@ -4046,6 +4045,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4046
4045
  //画布大小通过div获取 如果有style里的大小 使用style里的
4047
4046
  var height=this.DivElement.offsetHeight;
4048
4047
  var width=this.DivElement.offsetWidth;
4048
+ var pixelTatio = GetDevicePixelRatio(); //获取设备的分辨率s
4049
4049
  if (this.DivElement.style.height && this.DivElement.style.width)
4050
4050
  {
4051
4051
  if (this.DivElement.style.height.includes("px"))
@@ -4053,21 +4053,12 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4053
4053
  if (this.DivElement.style.width.includes("px"))
4054
4054
  width=parseInt(this.DivElement.style.width.replace("px",""));
4055
4055
  }
4056
-
4057
- if (this.ToolElement)
4058
- {
4059
- //TODO调整工具条大小
4060
- height-=this.ToolElement.style.height.replace("px",""); //减去工具条的高度
4061
- }
4062
4056
 
4063
- this.CanvasElement.height=height;
4064
- this.CanvasElement.width=width;
4065
- this.CanvasElement.style.width=this.CanvasElement.width+'px';
4066
- this.CanvasElement.style.height=this.CanvasElement.height+'px';
4057
+ this.CanvasElement.style.width=`${width}px`;
4058
+ this.CanvasElement.style.height=`${height}px`;
4067
4059
 
4068
- var pixelTatio = GetDevicePixelRatio(); //获取设备的分辨率
4069
- this.CanvasElement.height*=pixelTatio;
4070
- this.CanvasElement.width*=pixelTatio;
4060
+ this.CanvasElement.height=parseInt(pixelTatio*height); //根据分辨率缩放
4061
+ this.CanvasElement.width=parseInt(pixelTatio*width);
4071
4062
 
4072
4063
  if (this.OffscreenCanvasElement)
4073
4064
  {
@@ -6590,7 +6581,9 @@ var JSCHART_EVENT_ID=
6590
6581
  ON_RCLICK_TREPORT_HEADER:125, //右键点击T型报价表头
6591
6582
  ON_TREPORT_LOCAL_SORT:126, //T型报价列表本地排序
6592
6583
  ON_CLICK_TREPORT_ROW:127, //左键点击点击T型报价列表
6593
- ON_MOVE_SELECTED_TREPORT_ROW:128, //选中行变动
6584
+ ON_MOVE_SELECTED_TREPORT_ROW:128, //T型报价 选中行变动
6585
+
6586
+ ON_MOVE_SELECTED_REPORT_ROW:129, //报价列表 选中行变动
6594
6587
 
6595
6588
  ON_DRAW_REPORT_ROW_BG:140, //报价列表整行背景
6596
6589
  ON_CLICK_REPORT_CHECKBOX:141, //报价列表checkbox
@@ -83637,6 +83630,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
83637
83630
  chart.SetOption(option);
83638
83631
  this.ExtendChartPaint.push(chart);
83639
83632
  return chart;
83633
+ case "BackgroundPaint":
83640
83634
  case '背景图':
83641
83635
  chart=new BackgroundPaint();
83642
83636
  chart.Canvas=this.Canvas;
@@ -92237,6 +92231,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
92237
92231
  chart.SetOption(option);
92238
92232
  this.ExtendChartPaint.push(chart);
92239
92233
  return chart;
92234
+ case "BackgroundPaint":
92240
92235
  case "背景图":
92241
92236
  chart=new BackgroundPaint();
92242
92237
  chart.Canvas=this.Canvas;
@@ -132496,19 +132491,21 @@ function JSReportChartContainer(uielement)
132496
132491
  }
132497
132492
  break;
132498
132493
  case 38: //up
132499
- var result=this.MoveSelectedRow(-1);
132494
+ var result=this.MoveSelectedRow(-1, {EnablePageCycle: this.PageUpDownCycle});
132500
132495
  if (result)
132501
132496
  {
132502
132497
  if (result.Redraw) this.Draw();
132503
132498
  if (result.Update) this.DelayUpdateStockData();
132499
+ this.MoveSelectedRowEvent(result.OldIndex, result.NewIndex);
132504
132500
  }
132505
132501
  break;
132506
132502
  case 40: //down
132507
- var result=this.MoveSelectedRow(1)
132503
+ var result=this.MoveSelectedRow(1, {EnablePageCycle: this.PageUpDownCycle})
132508
132504
  if (result)
132509
132505
  {
132510
132506
  if (result.Redraw) this.Draw();
132511
132507
  if (result.Update) this.DelayUpdateStockData();
132508
+ this.MoveSelectedRowEvent(result.OldIndex, result.NewIndex);
132512
132509
  }
132513
132510
  break;
132514
132511
  case 37: //left
@@ -133669,13 +133666,19 @@ function JSReportChartContainer(uielement)
133669
133666
  return false;
133670
133667
  }
133671
133668
 
133672
- this.MoveSelectedRow=function(step)
133669
+ // option={ EnablePageCycle: true/false(是否循环翻页) }
133670
+ this.MoveSelectedRow=function(step, option)
133673
133671
  {
133674
133672
  var chart=this.ChartPaint[0];
133675
133673
  if (!chart) return null;
133676
133674
  if (!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return null;
133675
+ var bPageCycle=false;
133676
+ if (option)
133677
+ {
133678
+ if (IFrameSplitOperator.IsBool(option.EnablePageCycle)) bPageCycle=option.EnablePageCycle;
133679
+ }
133677
133680
 
133678
- var result={ Redraw:false, Update:false }; //Redraw=重绘, Update=更新数据
133681
+ var result={ Redraw:false, Update:false, OldIndex:-1, NewIndex:-1 }; //Redraw=重绘, Update=更新数据
133679
133682
 
133680
133683
  if (chart.MultiSelectModel==1)
133681
133684
  {
@@ -133777,6 +133780,7 @@ function JSReportChartContainer(uielement)
133777
133780
  var pageStatus=chart.GetCurrentPageStatus();
133778
133781
  var pageSize=pageStatus.End-pageStatus.Start+1;
133779
133782
  var selected=pageStatus.SelectedRow;
133783
+ result.OldIndex=this.Data.YOffset+selected;
133780
133784
  if (step>0)
133781
133785
  {
133782
133786
  selected+=step;
@@ -133784,6 +133788,7 @@ function JSReportChartContainer(uielement)
133784
133788
  chart.SelectedRow=selected;
133785
133789
  chart.SelectedFixedRow=-1;
133786
133790
  result.Redraw=true;
133791
+ result.NewIndex=this.Data.YOffset+selected;
133787
133792
  return result;
133788
133793
  }
133789
133794
  else if (step<0)
@@ -133797,6 +133802,7 @@ function JSReportChartContainer(uielement)
133797
133802
 
133798
133803
  chart.SelectedRow=selected;
133799
133804
  chart.SelectedFixedRow=-1;
133805
+ result.NewIndex=this.Data.YOffset+selected;
133800
133806
  result.Redraw=true;
133801
133807
  return result;
133802
133808
  }
@@ -133806,18 +133812,23 @@ function JSReportChartContainer(uielement)
133806
133812
  var pageStatus=chart.GetCurrentPageStatus();
133807
133813
  var pageSize=pageStatus.PageSize;
133808
133814
  var selected=pageStatus.SelectedRow;
133815
+ result.OldIndex=pageStatus.SelectedRow;
133809
133816
  if (step>0)
133810
133817
  {
133811
133818
  if (selected<0 || selected<pageStatus.Start || selected>pageStatus.End)
133812
133819
  {
133813
133820
  chart.SelectedRow=pageStatus.Start;
133814
133821
  result.Redraw=true;
133822
+ result.NewIndex=pageStatus.Start;
133815
133823
  return result;
133816
133824
  }
133817
133825
 
133818
133826
  var offset=this.Data.YOffset;
133819
133827
  for(var i=0;i<step;++i)
133820
133828
  {
133829
+ if (selected+1>=this.Data.Data.length && !bPageCycle)
133830
+ break;
133831
+
133821
133832
  ++selected;
133822
133833
  if (selected>pageStatus.End) ++offset;
133823
133834
 
@@ -133833,7 +133844,7 @@ function JSReportChartContainer(uielement)
133833
133844
 
133834
133845
  chart.SelectedRow=selected;
133835
133846
  this.Data.YOffset=offset;
133836
-
133847
+ result.NewIndex=selected;
133837
133848
  return result;
133838
133849
  }
133839
133850
  else if (step<0)
@@ -133842,6 +133853,7 @@ function JSReportChartContainer(uielement)
133842
133853
  {
133843
133854
  chart.SelectedRow=pageStatus.End;
133844
133855
  result.Redraw=true;
133856
+ result.NewIndex=pageStatus.End;
133845
133857
  return result;
133846
133858
  }
133847
133859
 
@@ -133849,6 +133861,9 @@ function JSReportChartContainer(uielement)
133849
133861
  var offset=this.Data.YOffset;
133850
133862
  for(var i=0;i<step;++i)
133851
133863
  {
133864
+ if (selected<=0 && !bPageCycle) //不能循环翻页
133865
+ break;
133866
+
133852
133867
  --selected;
133853
133868
  if (selected<pageStatus.Start) --offset;
133854
133869
 
@@ -133865,6 +133880,7 @@ function JSReportChartContainer(uielement)
133865
133880
 
133866
133881
  chart.SelectedRow=selected;
133867
133882
  this.Data.YOffset=offset;
133883
+ result.NewIndex=selected;
133868
133884
 
133869
133885
  return result;
133870
133886
  }
@@ -133873,6 +133889,36 @@ function JSReportChartContainer(uielement)
133873
133889
  return null;
133874
133890
  }
133875
133891
 
133892
+ this.MoveSelectedRowEvent=function(oldIndex, newIndex)
133893
+ {
133894
+ var chart=this.ChartPaint[0];
133895
+ if (!chart) return null;
133896
+
133897
+ if (oldIndex==newIndex) return;
133898
+
133899
+ var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_MOVE_SELECTED_REPORT_ROW);
133900
+ if (!event || !event.Callback) return;
133901
+
133902
+ if (!IFrameSplitOperator.IsNonEmptyArray(chart.Data.Data)) return;
133903
+ var arySymbol=chart.Data.Data;
133904
+
133905
+ var oldData=null, newData=null;
133906
+ if (oldIndex>=0 && oldIndex<arySymbol.length)
133907
+ {
133908
+ var symbol=arySymbol[oldIndex];
133909
+ oldData={ Symbol:symbol, Index:oldIndex };
133910
+ }
133911
+
133912
+ if (newIndex>=0 && newIndex<arySymbol.length)
133913
+ {
133914
+ var symbol=arySymbol[newIndex];
133915
+ newData={ Symbol:symbol, Index:newIndex };
133916
+ }
133917
+
133918
+ var endData={ Old:oldData, Now:newData };
133919
+ event.Callback(event, endData, this);
133920
+ }
133921
+
133876
133922
  //左右移动
133877
133923
  this.MoveXOffset=function(step)
133878
133924
  {
@@ -143353,7 +143399,7 @@ function ScrollBarBGChart()
143353
143399
 
143354
143400
 
143355
143401
 
143356
- var HQCHART_VERSION="1.1.14431";
143402
+ var HQCHART_VERSION="1.1.14440";
143357
143403
 
143358
143404
  function PrintHQChartVersion()
143359
143405
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.14431";
8
+ var HQCHART_VERSION="1.1.14440";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -3994,7 +3994,6 @@ if (!JSConsole)
3994
3994
  function JSChart(divElement, bOffscreen, bCacheCanvas)
3995
3995
  {
3996
3996
  this.DivElement=divElement;
3997
- this.DivToolElement=null; //工具条
3998
3997
  this.JSChartContainer; //画图控件
3999
3998
  this.ResizeListener;
4000
3999
 
@@ -4090,6 +4089,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4090
4089
  //画布大小通过div获取 如果有style里的大小 使用style里的
4091
4090
  var height=this.DivElement.offsetHeight;
4092
4091
  var width=this.DivElement.offsetWidth;
4092
+ var pixelTatio = GetDevicePixelRatio(); //获取设备的分辨率s
4093
4093
  if (this.DivElement.style.height && this.DivElement.style.width)
4094
4094
  {
4095
4095
  if (this.DivElement.style.height.includes("px"))
@@ -4097,21 +4097,12 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4097
4097
  if (this.DivElement.style.width.includes("px"))
4098
4098
  width=parseInt(this.DivElement.style.width.replace("px",""));
4099
4099
  }
4100
-
4101
- if (this.ToolElement)
4102
- {
4103
- //TODO调整工具条大小
4104
- height-=this.ToolElement.style.height.replace("px",""); //减去工具条的高度
4105
- }
4106
4100
 
4107
- this.CanvasElement.height=height;
4108
- this.CanvasElement.width=width;
4109
- this.CanvasElement.style.width=this.CanvasElement.width+'px';
4110
- this.CanvasElement.style.height=this.CanvasElement.height+'px';
4101
+ this.CanvasElement.style.width=`${width}px`;
4102
+ this.CanvasElement.style.height=`${height}px`;
4111
4103
 
4112
- var pixelTatio = GetDevicePixelRatio(); //获取设备的分辨率
4113
- this.CanvasElement.height*=pixelTatio;
4114
- this.CanvasElement.width*=pixelTatio;
4104
+ this.CanvasElement.height=parseInt(pixelTatio*height); //根据分辨率缩放
4105
+ this.CanvasElement.width=parseInt(pixelTatio*width);
4115
4106
 
4116
4107
  if (this.OffscreenCanvasElement)
4117
4108
  {
@@ -6634,7 +6625,9 @@ var JSCHART_EVENT_ID=
6634
6625
  ON_RCLICK_TREPORT_HEADER:125, //右键点击T型报价表头
6635
6626
  ON_TREPORT_LOCAL_SORT:126, //T型报价列表本地排序
6636
6627
  ON_CLICK_TREPORT_ROW:127, //左键点击点击T型报价列表
6637
- ON_MOVE_SELECTED_TREPORT_ROW:128, //选中行变动
6628
+ ON_MOVE_SELECTED_TREPORT_ROW:128, //T型报价 选中行变动
6629
+
6630
+ ON_MOVE_SELECTED_REPORT_ROW:129, //报价列表 选中行变动
6638
6631
 
6639
6632
  ON_DRAW_REPORT_ROW_BG:140, //报价列表整行背景
6640
6633
  ON_CLICK_REPORT_CHECKBOX:141, //报价列表checkbox
@@ -83681,6 +83674,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
83681
83674
  chart.SetOption(option);
83682
83675
  this.ExtendChartPaint.push(chart);
83683
83676
  return chart;
83677
+ case "BackgroundPaint":
83684
83678
  case '背景图':
83685
83679
  chart=new BackgroundPaint();
83686
83680
  chart.Canvas=this.Canvas;
@@ -92281,6 +92275,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
92281
92275
  chart.SetOption(option);
92282
92276
  this.ExtendChartPaint.push(chart);
92283
92277
  return chart;
92278
+ case "BackgroundPaint":
92284
92279
  case "背景图":
92285
92280
  chart=new BackgroundPaint();
92286
92281
  chart.Canvas=this.Canvas;
@@ -132540,19 +132535,21 @@ function JSReportChartContainer(uielement)
132540
132535
  }
132541
132536
  break;
132542
132537
  case 38: //up
132543
- var result=this.MoveSelectedRow(-1);
132538
+ var result=this.MoveSelectedRow(-1, {EnablePageCycle: this.PageUpDownCycle});
132544
132539
  if (result)
132545
132540
  {
132546
132541
  if (result.Redraw) this.Draw();
132547
132542
  if (result.Update) this.DelayUpdateStockData();
132543
+ this.MoveSelectedRowEvent(result.OldIndex, result.NewIndex);
132548
132544
  }
132549
132545
  break;
132550
132546
  case 40: //down
132551
- var result=this.MoveSelectedRow(1)
132547
+ var result=this.MoveSelectedRow(1, {EnablePageCycle: this.PageUpDownCycle})
132552
132548
  if (result)
132553
132549
  {
132554
132550
  if (result.Redraw) this.Draw();
132555
132551
  if (result.Update) this.DelayUpdateStockData();
132552
+ this.MoveSelectedRowEvent(result.OldIndex, result.NewIndex);
132556
132553
  }
132557
132554
  break;
132558
132555
  case 37: //left
@@ -133713,13 +133710,19 @@ function JSReportChartContainer(uielement)
133713
133710
  return false;
133714
133711
  }
133715
133712
 
133716
- this.MoveSelectedRow=function(step)
133713
+ // option={ EnablePageCycle: true/false(是否循环翻页) }
133714
+ this.MoveSelectedRow=function(step, option)
133717
133715
  {
133718
133716
  var chart=this.ChartPaint[0];
133719
133717
  if (!chart) return null;
133720
133718
  if (!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return null;
133719
+ var bPageCycle=false;
133720
+ if (option)
133721
+ {
133722
+ if (IFrameSplitOperator.IsBool(option.EnablePageCycle)) bPageCycle=option.EnablePageCycle;
133723
+ }
133721
133724
 
133722
- var result={ Redraw:false, Update:false }; //Redraw=重绘, Update=更新数据
133725
+ var result={ Redraw:false, Update:false, OldIndex:-1, NewIndex:-1 }; //Redraw=重绘, Update=更新数据
133723
133726
 
133724
133727
  if (chart.MultiSelectModel==1)
133725
133728
  {
@@ -133821,6 +133824,7 @@ function JSReportChartContainer(uielement)
133821
133824
  var pageStatus=chart.GetCurrentPageStatus();
133822
133825
  var pageSize=pageStatus.End-pageStatus.Start+1;
133823
133826
  var selected=pageStatus.SelectedRow;
133827
+ result.OldIndex=this.Data.YOffset+selected;
133824
133828
  if (step>0)
133825
133829
  {
133826
133830
  selected+=step;
@@ -133828,6 +133832,7 @@ function JSReportChartContainer(uielement)
133828
133832
  chart.SelectedRow=selected;
133829
133833
  chart.SelectedFixedRow=-1;
133830
133834
  result.Redraw=true;
133835
+ result.NewIndex=this.Data.YOffset+selected;
133831
133836
  return result;
133832
133837
  }
133833
133838
  else if (step<0)
@@ -133841,6 +133846,7 @@ function JSReportChartContainer(uielement)
133841
133846
 
133842
133847
  chart.SelectedRow=selected;
133843
133848
  chart.SelectedFixedRow=-1;
133849
+ result.NewIndex=this.Data.YOffset+selected;
133844
133850
  result.Redraw=true;
133845
133851
  return result;
133846
133852
  }
@@ -133850,18 +133856,23 @@ function JSReportChartContainer(uielement)
133850
133856
  var pageStatus=chart.GetCurrentPageStatus();
133851
133857
  var pageSize=pageStatus.PageSize;
133852
133858
  var selected=pageStatus.SelectedRow;
133859
+ result.OldIndex=pageStatus.SelectedRow;
133853
133860
  if (step>0)
133854
133861
  {
133855
133862
  if (selected<0 || selected<pageStatus.Start || selected>pageStatus.End)
133856
133863
  {
133857
133864
  chart.SelectedRow=pageStatus.Start;
133858
133865
  result.Redraw=true;
133866
+ result.NewIndex=pageStatus.Start;
133859
133867
  return result;
133860
133868
  }
133861
133869
 
133862
133870
  var offset=this.Data.YOffset;
133863
133871
  for(var i=0;i<step;++i)
133864
133872
  {
133873
+ if (selected+1>=this.Data.Data.length && !bPageCycle)
133874
+ break;
133875
+
133865
133876
  ++selected;
133866
133877
  if (selected>pageStatus.End) ++offset;
133867
133878
 
@@ -133877,7 +133888,7 @@ function JSReportChartContainer(uielement)
133877
133888
 
133878
133889
  chart.SelectedRow=selected;
133879
133890
  this.Data.YOffset=offset;
133880
-
133891
+ result.NewIndex=selected;
133881
133892
  return result;
133882
133893
  }
133883
133894
  else if (step<0)
@@ -133886,6 +133897,7 @@ function JSReportChartContainer(uielement)
133886
133897
  {
133887
133898
  chart.SelectedRow=pageStatus.End;
133888
133899
  result.Redraw=true;
133900
+ result.NewIndex=pageStatus.End;
133889
133901
  return result;
133890
133902
  }
133891
133903
 
@@ -133893,6 +133905,9 @@ function JSReportChartContainer(uielement)
133893
133905
  var offset=this.Data.YOffset;
133894
133906
  for(var i=0;i<step;++i)
133895
133907
  {
133908
+ if (selected<=0 && !bPageCycle) //不能循环翻页
133909
+ break;
133910
+
133896
133911
  --selected;
133897
133912
  if (selected<pageStatus.Start) --offset;
133898
133913
 
@@ -133909,6 +133924,7 @@ function JSReportChartContainer(uielement)
133909
133924
 
133910
133925
  chart.SelectedRow=selected;
133911
133926
  this.Data.YOffset=offset;
133927
+ result.NewIndex=selected;
133912
133928
 
133913
133929
  return result;
133914
133930
  }
@@ -133917,6 +133933,36 @@ function JSReportChartContainer(uielement)
133917
133933
  return null;
133918
133934
  }
133919
133935
 
133936
+ this.MoveSelectedRowEvent=function(oldIndex, newIndex)
133937
+ {
133938
+ var chart=this.ChartPaint[0];
133939
+ if (!chart) return null;
133940
+
133941
+ if (oldIndex==newIndex) return;
133942
+
133943
+ var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_MOVE_SELECTED_REPORT_ROW);
133944
+ if (!event || !event.Callback) return;
133945
+
133946
+ if (!IFrameSplitOperator.IsNonEmptyArray(chart.Data.Data)) return;
133947
+ var arySymbol=chart.Data.Data;
133948
+
133949
+ var oldData=null, newData=null;
133950
+ if (oldIndex>=0 && oldIndex<arySymbol.length)
133951
+ {
133952
+ var symbol=arySymbol[oldIndex];
133953
+ oldData={ Symbol:symbol, Index:oldIndex };
133954
+ }
133955
+
133956
+ if (newIndex>=0 && newIndex<arySymbol.length)
133957
+ {
133958
+ var symbol=arySymbol[newIndex];
133959
+ newData={ Symbol:symbol, Index:newIndex };
133960
+ }
133961
+
133962
+ var endData={ Old:oldData, Now:newData };
133963
+ event.Callback(event, endData, this);
133964
+ }
133965
+
133920
133966
  //左右移动
133921
133967
  this.MoveXOffset=function(step)
133922
133968
  {
@@ -153165,7 +153211,7 @@ function HQChartScriptWorker()
153165
153211
 
153166
153212
 
153167
153213
 
153168
- var HQCHART_VERSION="1.1.14431";
153214
+ var HQCHART_VERSION="1.1.14440";
153169
153215
 
153170
153216
  function PrintHQChartVersion()
153171
153217
  {