hqchart 1.1.12490 → 1.1.12499

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.
@@ -1,4 +1,4 @@
1
- 'use strict';Object.defineProperty(exports,"__esModule",{value:true});var _promise=require('babel-runtime/core-js/promise');var _promise2=_interopRequireDefault(_promise);var _log=require('babel-runtime/core-js/math/log10');var _log2=_interopRequireDefault(_log);var _defineProperties=require('babel-runtime/core-js/object/define-properties');var _defineProperties2=_interopRequireDefault(_defineProperties);var _create=require('babel-runtime/core-js/object/create');var _create2=_interopRequireDefault(_create);var _from=require('babel-runtime/core-js/array/from');var _from2=_interopRequireDefault(_from);var _typeof2=require('babel-runtime/helpers/typeof');var _typeof3=_interopRequireDefault(_typeof2);var _defineProperty2=require('babel-runtime/helpers/defineProperty');var _defineProperty3=_interopRequireDefault(_defineProperty2);var _set=require('babel-runtime/core-js/set');var _set2=_interopRequireDefault(_set);var _stringify=require('babel-runtime/core-js/json/stringify');var _stringify2=_interopRequireDefault(_stringify);var _getIterator2=require('babel-runtime/core-js/get-iterator');var _getIterator3=_interopRequireDefault(_getIterator2);var _map=require('babel-runtime/core-js/map');var _map2=_interopRequireDefault(_map);var _jsChartInit$jsChartS;var _jquery=require('jquery');var _jquery2=_interopRequireDefault(_jquery);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}//日志输出类
1
+ 'use strict';Object.defineProperty(exports,"__esModule",{value:true});var _promise=require('babel-runtime/core-js/promise');var _promise2=_interopRequireDefault(_promise);var _log=require('babel-runtime/core-js/math/log10');var _log2=_interopRequireDefault(_log);var _defineProperties=require('babel-runtime/core-js/object/define-properties');var _defineProperties2=_interopRequireDefault(_defineProperties);var _create=require('babel-runtime/core-js/object/create');var _create2=_interopRequireDefault(_create);var _from=require('babel-runtime/core-js/array/from');var _from2=_interopRequireDefault(_from);var _typeof2=require('babel-runtime/helpers/typeof');var _typeof3=_interopRequireDefault(_typeof2);var _set=require('babel-runtime/core-js/set');var _set2=_interopRequireDefault(_set);var _defineProperty2=require('babel-runtime/helpers/defineProperty');var _defineProperty3=_interopRequireDefault(_defineProperty2);var _stringify=require('babel-runtime/core-js/json/stringify');var _stringify2=_interopRequireDefault(_stringify);var _getIterator2=require('babel-runtime/core-js/get-iterator');var _getIterator3=_interopRequireDefault(_getIterator2);var _map=require('babel-runtime/core-js/map');var _map2=_interopRequireDefault(_map);var _jsChartInit$jsChartS;var _jquery=require('jquery');var _jquery2=_interopRequireDefault(_jquery);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}//日志输出类
2
2
  var JSConsole={Chart:{Log:console.log,Warn:console.warn},//图形日志
3
3
  Complier:{Log:console.log,Warn:console.warn},//编译器日志
4
4
  JSTable:{Log:console.log,Warn:console.warn//表格日志
@@ -1760,9 +1760,9 @@ return true;};this.DocOnMouseUp=function(e){//清空事件
1760
1760
  document.onmousemove=null;document.onmouseup=null;var IsMinuteChart=this.ClassName=="MinuteChartContainer"||this.ClassName=="MinuteChartHScreenContainer"?true:false;var isDragSelectRect=this.RectSelectDrag&&this.RectSelectDrag.Index>=0;var isDragSubSelectRect=this.RectSelectDrag&&this.RectSelectDrag.Type==4;var bClearDrawPicture=true;if(this.CurrentChartDrawPicture){var drawPicture=this.CurrentChartDrawPicture;if(drawPicture.Status==2||drawPicture.Status==1||drawPicture.Status==3){drawPicture.PointStatus=drawPicture.Status;if(this.FinishChartDrawPicturePoint())this.DrawDynamicInfo();else bClearDrawPicture=false;}else if(drawPicture.Status==20){if(this.FinishMoveChartDrawPicture())this.DrawDynamicInfo();}}else if(this.IndexChartDrag&&this.IndexChartDrag.SelectedChart){var chartMove=this.GetExtendChartByClassName("DragMovePaint");if(chartMove&&chartMove.Chart)chartMove.Chart.Clear();if(!this.OnDragChart(this.IndexChartDrag))this.DrawDynamicInfo();this.UIElement.style.cursor="default";}else if(this.CustomChartDrag){var sendData={e:e,ChartDrag:this.CustomChartDrag,Drag:this.MouseDrag};this.TryMouseUp_CustomChartDrag(sendData);}else if(isDragSelectRect)//区间选择拖动范围
1761
1761
  {if(this.OnDragSelectRectMouseUp)this.OnDragSelectRectMouseUp(e);}else if(isDragSubSelectRect){if(this.OnDragSubSelectRectMouseUp)this.OnDragSubSelectRectMouseUp(e);}else if(IsMinuteChart){if(this.OnMinuteSelectRectMouseUp)this.OnMinuteSelectRectMouseUp(e);}else if(this.DragMode==2)//区间选择
1762
1762
  {var drag=this.MouseDrag;drag.LastMove.X=e.clientX;drag.LastMove.Y=e.clientY;var selectData=new SelectRectData();var pixelTatio=GetDevicePixelRatio();//区间起始位置 结束位子
1763
- selectData.XStart=(drag.Click.X-uielement.getBoundingClientRect().left)*pixelTatio;selectData.YStart=(drag.Click.Y-uielement.getBoundingClientRect().top)*pixelTatio;selectData.XEnd=(drag.LastMove.X-uielement.getBoundingClientRect().left)*pixelTatio;selectData.YEnd=(drag.LastMove.Y-uielement.getBoundingClientRect().top)*pixelTatio;selectData.JSChartContainer=this;selectData.Stock={Symbol:this.Symbol,Name:this.Name};if(!this.BorderDrag&&this.GetSelectRectData(selectData)){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_SELECT_RECT);var paint=this.GetRectSelectPaint();var isShowMenu=true;if(event&&event.Callback){var data={X:drag.LastMove.X-uielement.getBoundingClientRect().left,Y:drag.LastMove.Y-uielement.getBoundingClientRect().top,SelectData:selectData,//区间选择的数据
1763
+ selectData.XStart=(drag.Click.X-uielement.getBoundingClientRect().left)*pixelTatio;selectData.YStart=(drag.Click.Y-uielement.getBoundingClientRect().top)*pixelTatio;selectData.XEnd=(drag.LastMove.X-uielement.getBoundingClientRect().left)*pixelTatio;selectData.YEnd=(drag.LastMove.Y-uielement.getBoundingClientRect().top)*pixelTatio;selectData.JSChartContainer=this;selectData.Stock={Symbol:this.Symbol,Name:this.Name};if(!this.BorderDrag&&this.GetSelectRectData(selectData)){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_SELECT_RECT);var paint=this.GetRectSelectPaint();var isShowMenu=true;if(event&&event.Callback){var data=(0,_defineProperty3.default)({X:drag.LastMove.X-uielement.getBoundingClientRect().left,Y:drag.LastMove.Y-uielement.getBoundingClientRect().top,SelectData:selectData,//区间选择的数据
1764
1764
  RectSelectPaint:paint,//区间选择背景
1765
- IsShowMenu:true};event.Callback(event,data,this);isShowMenu=data.IsShowMenu;}if(IsMinuteChart)//分时图直接显示显示区间选择
1765
+ IsShowMenu:true,e:e},'e',e);event.Callback(event,data,this);isShowMenu=data.IsShowMenu;}if(IsMinuteChart)//分时图直接显示显示区间选择
1766
1766
  {this.HideSelectRect();this.UpdateSelectRect(selectData.Start,selectData.End);}else{if(isShowMenu&&this.SelectRectRightMenu){e.data={Chart:this,X:drag.LastMove.X-uielement.getBoundingClientRect().left,Y:drag.LastMove.Y-uielement.getBoundingClientRect().top,SelectData:selectData,//区间选择的数据
1767
1767
  RectSelectPaint:paint//区间选择背景
1768
1768
  };this.SelectRectRightMenu.DoModal(e);}}}else{this.TryClickPaintEvent(JSCHART_EVENT_ID.ON_CLICKUP_CHART_PAINT,this.ClickDownPoint,e);}}else{this.TryClickPaintEvent(JSCHART_EVENT_ID.ON_CLICKUP_CHART_PAINT,this.ClickDownPoint,e);this.ClickEvent(e);}//清空数据
@@ -2148,7 +2148,7 @@ this.IsDrawTitleBottomLine=false;this.BorderLine=null;//1=上 2=下 4=左 8=右
2148
2148
  this.Buttons=[];//按钮事件
2149
2149
  this.LeftButtonWidth=0;//左侧按钮的宽度
2150
2150
  this.IsMinSize=false;//窗口是否最小化
2151
- this.LogoTextColor=g_JSChartResource.FrameLogo.TextColor;this.LogoTextFont=g_JSChartResource.FrameLogo.Font;this.GlobalOption;this.PtInButtons=function(x,y)//坐标是否在按钮上
2151
+ this.LogoTextColor=g_JSChartResource.FrameLogo.TextColor;this.LogoTextFont=g_JSChartResource.FrameLogo.Font;this.LogoBGColor=g_JSChartResource.FrameLogo.BGColor;this.GlobalOption;this.PtInButtons=function(x,y)//坐标是否在按钮上
2152
2152
  {for(var i=0;i<this.Buttons.length;++i){var item=this.Buttons[i];if(!item.Rect)continue;var rect=item.Rect;this.Canvas.beginPath();this.Canvas.rect(rect.Left,rect.Top,rect.Width,rect.Height);if(this.Canvas.isPointInPath(x,y)){return{ID:item.ID,Rect:rect};}}return null;};this.GetBorder=function(){if(this.IsHScreen)return this.ChartBorder.GetHScreenBorder();else return this.ChartBorder.GetBorder();};this.Draw=function(){this.Buttons=[];this.DrawFrame();this.DrawBorder();this.SizeChange=false;this.XYSplit=false;};this.DrawFrame=function(){};this.ClearCoordinateText=function(option){if(IFrameSplitOperator.IsNonEmptyArray(this.HorizontalInfo)){for(var i=0;i<this.HorizontalInfo.length;++i){var item=this.HorizontalInfo[i];if(item&&item.Message&&Array.isArray(item.Message))item.Message[0]=item.Message[1]=null;}}if(IFrameSplitOperator.IsNonEmptyArray(this.VerticalInfo)){for(var i=0;i<this.VerticalInfo.length;++i){var item=this.VerticalInfo[i];if(item&&item.Message&&Array.isArray(item.Message))item.Message[0]=item.Message[1]=null;}}};//画边框
2153
2153
  this.DrawBorder=function(){if(!this.IsShowBorder)return;if(this.IsMinSize)return;var border=this.IsHScreen==true?this.ChartBorder.GetHScreenBorder():this.ChartBorder.GetBorder();var left=ToFixedPoint(border.Left);var top=ToFixedPoint(border.Top);//var top=ToFixedPoint(border.TopEx);
2154
2154
  var right=ToFixedPoint(border.Right);var bottom=ToFixedPoint(border.Bottom);var width=right-left;var height=bottom-top;//JSConsole.Chart.Log(`[IChartFramePainting.DrawBorder] left=${left} `);
@@ -2158,7 +2158,7 @@ if(this.BorderLine==null){this.Canvas.strokeStyle=this.PenBorder;this.Canvas.str
2158
2158
  {this.Canvas.moveTo(left,bottom);this.Canvas.lineTo(right,bottom);}if((this.BorderLine&4)>0)//左
2159
2159
  {this.Canvas.moveTo(left,top);this.Canvas.lineTo(left,bottom);}if((this.BorderLine&8)>0)//右
2160
2160
  {this.Canvas.moveTo(right,top);this.Canvas.lineTo(right,bottom);}this.Canvas.stroke();}};//画标题背景色
2161
- this.DrawTitleBG=function(){if(this.ChartBorder.TitleHeight<=0)return;var border=this.GetBorder();var left=ToFixedPoint(border.Left);var top=ToFixedPoint(border.Top);var right=ToFixedPoint(border.Right);var bottom=ToFixedPoint(this.ChartBorder.GetTopTitle());var width=right-left;var height=bottom-top;this.Canvas.fillStyle=this.TitleBGColor;this.Canvas.fillRect(left,top,width,height);if(this.IsDrawTitleBottomLine){this.Canvas.strokeStyle=this.PenBorder;this.Canvas.beginPath();this.Canvas.moveTo(left,ToFixedPoint(border.TopTitle));this.Canvas.lineTo(right,ToFixedPoint(border.TopTitle));this.Canvas.stroke();}};this.DrawLock=function(){if(this.IsLocked){if(this.LockPaint==null)this.LockPaint=new ChartLock();this.LockPaint.Canvas=this.Canvas;this.LockPaint.ChartBorder=this.ChartBorder;this.LockPaint.ChartFrame=this;this.LockPaint.Draw(true);}};this.DrawLogo=function(){var border=this.GetBorder();var text=g_JSChartResource.FrameLogo.Text;if(!IFrameSplitOperator.IsString(text))return;this.Canvas.fillStyle=this.LogoTextColor;this.Canvas.font=this.LogoTextFont;this.Canvas.textAlign='left';this.Canvas.textBaseline='bottom';if(this.IsHScreen){var x=border.Left+5;var y=border.Top+5;this.Canvas.save();this.Canvas.translate(x,y);this.Canvas.rotate(90*Math.PI/180);this.Canvas.fillText(text,0,0);this.Canvas.restore();}else{var x=border.Left+5;var y=border.Bottom-5;this.Canvas.fillText(text,x,y);}};this.CalculateLock=function(){if(this.IsLocked){if(this.LockPaint==null)this.LockPaint=new ChartLock();this.LockPaint.Canvas=this.Canvas;this.LockPaint.ChartBorder=this.ChartBorder;this.LockPaint.ChartFrame=this;this.LockPaint.Draw(false);}};//设施上锁
2161
+ this.DrawTitleBG=function(){if(this.ChartBorder.TitleHeight<=0)return;var border=this.GetBorder();var left=ToFixedPoint(border.Left);var top=ToFixedPoint(border.Top);var right=ToFixedPoint(border.Right);var bottom=ToFixedPoint(this.ChartBorder.GetTopTitle());var width=right-left;var height=bottom-top;this.Canvas.fillStyle=this.TitleBGColor;this.Canvas.fillRect(left,top,width,height);if(this.IsDrawTitleBottomLine){this.Canvas.strokeStyle=this.PenBorder;this.Canvas.beginPath();this.Canvas.moveTo(left,ToFixedPoint(border.TopTitle));this.Canvas.lineTo(right,ToFixedPoint(border.TopTitle));this.Canvas.stroke();}};this.DrawLock=function(){if(this.IsLocked){if(this.LockPaint==null)this.LockPaint=new ChartLock();this.LockPaint.Canvas=this.Canvas;this.LockPaint.ChartBorder=this.ChartBorder;this.LockPaint.ChartFrame=this;this.LockPaint.Draw(true);}};this.DrawLogo=function(){var border=this.GetBorder();var text=g_JSChartResource.FrameLogo.Text;if(!IFrameSplitOperator.IsString(text))return;this.Canvas.font=this.LogoTextFont;this.Canvas.textAlign='left';this.Canvas.textBaseline='bottom';var height=this.Canvas.measureText("擎").width;var width=this.Canvas.measureText(text).width;if(this.IsHScreen){var x=border.Left+5;var y=border.Top+5;this.Canvas.save();this.Canvas.translate(x,y);this.Canvas.rotate(90*Math.PI/180);var rtBG={Left:0,Bottom:0,Width:width+4,Height:height+4};rtBG.Top=rtBG.Bottom-rtBG.Height;rtBG.Right=rtBG.Left+rtBG.Width;if(this.LogoBGColor){this.Canvas.fillStyle=this.LogoBGColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}this.Canvas.fillStyle=this.LogoTextColor;this.Canvas.fillText(text,1,0);this.Canvas.restore();}else{var rtBG={Left:border.Left+5,Bottom:border.Bottom-5,Width:width+4,Height:height+4};rtBG.Top=rtBG.Bottom-rtBG.Height;rtBG.Right=rtBG.Left+rtBG.Width;if(this.LogoBGColor){this.Canvas.fillStyle=this.LogoBGColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}var x=rtBG.Left+1;var y=rtBG.Bottom-1;this.Canvas.fillStyle=this.LogoTextColor;this.Canvas.fillText(text,x,y);}};this.CalculateLock=function(){if(this.IsLocked){if(this.LockPaint==null)this.LockPaint=new ChartLock();this.LockPaint.Canvas=this.Canvas;this.LockPaint.ChartBorder=this.ChartBorder;this.LockPaint.ChartFrame=this;this.LockPaint.Draw(false);}};//设施上锁
2162
2162
  this.SetLock=function(lockData){if(!lockData)//空数据不上锁
2163
2163
  {this.IsLocked=false;return;}this.IsLocked=true;if(!this.LockPaint)this.LockPaint=new ChartLock();//创建锁
2164
2164
  if(lockData.Callback)this.LockPaint.Callback=lockData.Callback;//回调
@@ -3841,14 +3841,15 @@ this.KLineDrawType=0;this.ClassName='ChartVolStick';this.PtInChart=this.PtInBar;
3841
3841
  y=yBottom-height;if(this.KLineDrawType==6)//完全空心柱
3842
3842
  {this.Canvas.strokeStyle=barColor.Color;this.Canvas.beginPath();this.Canvas.rect(ToFixedPoint(left),ToFixedPoint(y),ToFixedRect(dataWidth),height);this.Canvas.stroke();}else if(bUp&&(this.KLineDrawType==1||this.KLineDrawType==2||this.KLineDrawType==3))//空心柱子
3843
3843
  {this.Canvas.strokeStyle=this.UpColor;this.Canvas.beginPath();this.Canvas.rect(ToFixedPoint(left),ToFixedPoint(y),ToFixedRect(dataWidth),height);this.Canvas.stroke();}else{this.Canvas.fillRect(ToFixedRect(left),y,ToFixedRect(dataWidth),height);}}}else//太细了直接话线
3844
- {var preKItem=null;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var value=this.Data.Data[i];var kItem=this.HistoryData.Data[i];if(value==null||kItem==null)continue;var y=this.ChartFrame.GetYFromData(value);if(isMinute){var x=this.ChartFrame.GetXFromIndex(j);}else{var left=xOffset;var right=xOffset+dataWidth;var x=left+(right-left)/2;}if(x>chartright)break;if(isMinute){var barColor=this.GetMinuteBarColor(kItem,preKItem);//分时图颜色单独计算
3845
- }else{var barColor=this.GetBarColor(kItem);}this.Canvas.strokeStyle=barColor.Color;//var x=this.ChartFrame.GetXFromIndex(j);
3844
+ {var preKItem=null;var barColor=null;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var value=this.Data.Data[i];var kItem=this.HistoryData.Data[i];if(value==null||kItem==null)continue;var y=this.ChartFrame.GetYFromData(value);if(isMinute){var x=this.ChartFrame.GetXFromIndex(j);}else{var left=xOffset;var right=xOffset+dataWidth;var x=left+(right-left)/2;}if(x>chartright)break;if(isMinute)barColor=this.GetMinuteBarColor(kItem,preKItem);//分时图颜色单独计算
3845
+ else barColor=this.GetBarColor(kItem);this.Canvas.strokeStyle=barColor.Color;//var x=this.ChartFrame.GetXFromIndex(j);
3846
3846
  this.Canvas.beginPath();this.Canvas.moveTo(ToFixedPoint(x),y);this.Canvas.lineTo(ToFixedPoint(x),yBottom);this.Canvas.stroke();preKItem=kItem;}}};this.HScreenDraw=function()//横屏画法
3847
- {var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var border=this.ChartBorder.GetHScreenBorder();var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartBottom=border.BottomEx;var xPointCount=this.ChartFrame.XPointCount;var lockRect=this.GetLockRect();if(lockRect)chartBottom=lockRect.Top;var yBottom=this.ChartFrame.GetYFromData(0);if(dataWidth>=4){yBottom=ToFixedRect(yBottom);for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var value=this.Data.Data[i];var kItem=this.HistoryData.Data[i];if(value==null||kItem==null)continue;var left=xOffset;var right=xOffset+dataWidth;if(right>chartBottom)break;var y=this.ChartFrame.GetYFromData(value);var barColor=this.GetBarColor(kItem);var bUp=barColor.IsUp;this.Canvas.fillStyle=barColor.Color;var height=ToFixedRect(y-yBottom);//高度调整为整数
3847
+ {var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var border=this.ChartBorder.GetHScreenBorder();var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartBottom=border.BottomEx;var xPointCount=this.ChartFrame.XPointCount;var lockRect=this.GetLockRect();if(lockRect)chartBottom=lockRect.Top;var isMinute=this.IsMinuteFrame();var yBottom=this.ChartFrame.GetYFromData(0);if(dataWidth>=4){yBottom=ToFixedRect(yBottom);for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var value=this.Data.Data[i];var kItem=this.HistoryData.Data[i];if(value==null||kItem==null)continue;var left=xOffset;var right=xOffset+dataWidth;if(right>chartBottom)break;var y=this.ChartFrame.GetYFromData(value);var barColor=this.GetBarColor(kItem);var bUp=barColor.IsUp;this.Canvas.fillStyle=barColor.Color;var height=ToFixedRect(y-yBottom);//高度调整为整数
3848
3848
  if(bUp&&(this.KLineDrawType==1||this.KLineDrawType==2||this.KLineDrawType==3))//空心柱子
3849
3849
  {this.Canvas.strokeStyle=this.UpColor;this.Canvas.beginPath();this.Canvas.rect(ToFixedPoint(yBottom),ToFixedPoint(left),height,ToFixedRect(dataWidth));this.Canvas.stroke();}else{this.Canvas.fillRect(yBottom,ToFixedRect(left),height,ToFixedRect(dataWidth));}}}else//太细了直接话线
3850
- {for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var value=this.Data.Data[i];var kItem=this.HistoryData.Data[i];if(value==null||kItem==null)continue;var y=this.ChartFrame.GetYFromData(value);var x=this.ChartFrame.GetXFromIndex(j);if(x>chartBottom)break;var barColor=this.GetBarColor(kItem);var bUp=barColor.IsUp;this.Canvas.strokeStyle=barColor.Color;//var x=this.ChartFrame.GetXFromIndex(j);
3851
- this.Canvas.beginPath();this.Canvas.moveTo(y,ToFixedPoint(x));this.Canvas.lineTo(yBottom,ToFixedPoint(x));this.Canvas.stroke();}}};this.GetMaxMin=function(){var xPointCount=this.ChartFrame.XPointCount;var range={};range.Min=null;range.Max=null;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var value=this.Data.Data[i];if(!IFrameSplitOperator.IsNumber(range.Max)||range.Max<value)range.Max=value;if(!IFrameSplitOperator.IsNumber(range.Min)||range.Min>value)range.Min=value;}if(range.Max>0&&range.Min>0)range.Min=0;else if(range.Max<0&&range.Min<0)range.Max=0;return range;};this.GetBarColor=function(kItem){if(kItem.Close>=kItem.Open)return{Color:this.UpColor,IsUp:true};//颜色, 是否是上涨
3850
+ {var preKItem=null;var barColor=null;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var value=this.Data.Data[i];var kItem=this.HistoryData.Data[i];if(value==null||kItem==null)continue;var y=this.ChartFrame.GetYFromData(value);if(isMinute){var x=this.ChartFrame.GetXFromIndex(j);}else{var left=xOffset;var right=xOffset+dataWidth;var x=left+(right-left)/2;}if(x>chartBottom)break;if(isMinute)barColor=this.GetMinuteBarColor(kItem,preKItem);//分时图颜色单独计算
3851
+ else barColor=this.GetBarColor(kItem);var bUp=barColor.IsUp;this.Canvas.strokeStyle=barColor.Color;//var x=this.ChartFrame.GetXFromIndex(j);
3852
+ this.Canvas.beginPath();this.Canvas.moveTo(y,ToFixedPoint(x));this.Canvas.lineTo(yBottom,ToFixedPoint(x));this.Canvas.stroke();preKItem=kItem;}}};this.GetMaxMin=function(){var xPointCount=this.ChartFrame.XPointCount;var range={};range.Min=null;range.Max=null;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var value=this.Data.Data[i];if(!IFrameSplitOperator.IsNumber(range.Max)||range.Max<value)range.Max=value;if(!IFrameSplitOperator.IsNumber(range.Min)||range.Min>value)range.Min=value;}if(range.Max>0&&range.Min>0)range.Min=0;else if(range.Max<0&&range.Min<0)range.Max=0;return range;};this.GetBarColor=function(kItem){if(kItem.Close>=kItem.Open)return{Color:this.UpColor,IsUp:true};//颜色, 是否是上涨
3852
3853
  else return{Color:this.DownColor,IsUp:false};};this.GetMinuteBarColor=function(kItem,preItem){var prePrice=kItem.YClose;if(preItem)prePrice=preItem.Close;if(kItem.Close>=prePrice)return{Color:this.UpColor,IsUp:true};//颜色, 是否是上涨
3853
3854
  else return{Color:this.DownColor,IsUp:false};};this.GetItemData=function(indexData){if(!indexData)return null;if(!IFrameSplitOperator.IsNumber(indexData.Index))return null;if(!this.HistoryData||!IFrameSplitOperator.IsNonEmptyArray(this.HistoryData.Data))return null;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return null;var index=indexData.Index;if(index<0||index>=this.Data.Data.length||index>=this.HistoryData.Data.length)return null;var item=this.Data.Data[index];var kItem=this.HistoryData.Data[index];return[{Value:item,Color:this.GetBarColor(kItem).Color,Name:this.Name}];};}// VERTLINE(HIGH>=HHV(HIGH,20),1)表示在创20天新高画垂直虚线。
3854
3855
  // 支持横屏
@@ -6177,8 +6178,8 @@ this.FrameSplitTextFont=14*GetDevicePixelRatio()+"px 微软雅黑";//坐标刻
6177
6178
  this.FrameTitleBGColor="rgb(246,251,253)";//标题栏背景色
6178
6179
  this.Frame={XBottomOffset:1*GetDevicePixelRatio(),//X轴文字向下偏移
6179
6180
  YTopOffset:2*GetDevicePixelRatio(),//Y轴顶部文字向下偏移
6180
- YTextPadding:[2,2]};this.ToolbarButtonStyle=0;this.FrameLogo={TextColor:'rgb(178,34,34)',Font:"bold "+16*GetDevicePixelRatio()+"px 微软雅黑",Text:"*仅学习使用*"//不要修改声明, 任何修改声明产生的任何法律责任由修改者自行独立承担,与HQChart插件作者无关。
6181
- };//百分比坐标文字颜色
6181
+ YTextPadding:[2,2]};this.ToolbarButtonStyle=0;this.FrameLogo={TextColor:'rgb(178,34,34)',Font:"bold "+16*GetDevicePixelRatio()+"px 微软雅黑",Text:"*仅学习使用*",//不要修改声明, 任何修改声明产生的任何法律责任由修改者自行独立承担,与HQChart插件作者无关。
6182
+ BGColor:"rgba(230,230,230, 0.5)"};//百分比坐标文字颜色
6182
6183
  this.Frame.PercentageText={PriceColor:'rgb(117,125,129)',PercentageColor:"rgb(117,125,129)",SplitColor:"rgb(117,125,129)",Font:14*GetDevicePixelRatio()+"px 微软雅黑"};//对数坐标
6183
6184
  this.FrameLogarithmic={OpenPriceFont:"bold "+14*GetDevicePixelRatio()+"px 微软雅黑",//开盘价刻度文字字体
6184
6185
  MinInterval:45*GetDevicePixelRatio()//刻度最小间距
@@ -7419,8 +7420,8 @@ this.OnDragMode_One=function(moveData,e){var drag=this.MouseDrag;var moveSetp=mo
7419
7420
  {if(moveSetp<5)return;var obj={X:e.clientX,Y:e.clientY,PointIndex:this.RectSelectDrag.Index,Name:"MoveRectSelectLine"};if(this.MoveRectSelectPoint(obj)){drag.LastMove.X=e.clientX;this.Draw();}}else{if(moveSetp<5&&yMoveSetp<5)return;if(!this.EnableSelectRect)return;this.UIElement.style.cursor="default";var x=drag.Click.X-uielement.getBoundingClientRect().left;var y=drag.Click.Y-uielement.getBoundingClientRect().top;var x2=e.clientX-uielement.getBoundingClientRect().left;var y2=e.clientY-uielement.getBoundingClientRect().top;this.ShowSelectRect(x,y,x2,y2);drag.LastMove.X=e.clientX;drag.LastMove.Y=e.clientY;}};this.OnMinuteSelectRectMouseUp=function(e){var drag=this.MouseDrag;drag.LastMove.X=e.clientX;drag.LastMove.Y=e.clientY;var selectData=new SelectRectData();var pixelTatio=GetDevicePixelRatio();//区间起始位置 结束位子
7420
7421
  selectData.XStart=(drag.Click.X-uielement.getBoundingClientRect().left)*pixelTatio;selectData.YStart=(drag.Click.Y-uielement.getBoundingClientRect().top)*pixelTatio;selectData.XEnd=(drag.LastMove.X-uielement.getBoundingClientRect().left)*pixelTatio;selectData.YEnd=(drag.LastMove.Y-uielement.getBoundingClientRect().top)*pixelTatio;selectData.JSChartContainer=this;selectData.Stock={Symbol:this.Symbol,Name:this.Name};if(this.EnableSelectRect&&!this.BorderDrag&&this.GetSelectRectData(selectData)){var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_SELECT_RECT);var paint=this.GetRectSelectPaint();var isShowDialog=true;//是否显示内置区间选择框
7421
7422
  if(event&&event.Callback){var data={X:drag.LastMove.X-uielement.getBoundingClientRect().left,Y:drag.LastMove.Y-uielement.getBoundingClientRect().top,SelectData:selectData,//区间选择的数据
7422
- RectSelectPaint:paint//区间选择背景
7423
- };event.Callback(event,data,this);isShowDialog=false;//外部调用了区间选择事件,不弹框
7423
+ RectSelectPaint:paint,//区间选择背景
7424
+ e:e};event.Callback(event,data,this);isShowDialog=false;//外部调用了区间选择事件,不弹框
7424
7425
  }if(isShowDialog&&this.SelectRectDialog){e.data={Chart:this,X:drag.LastMove.X-uielement.getBoundingClientRect().left,Y:drag.LastMove.Y-uielement.getBoundingClientRect().top,SelectData:selectData,//区间选择的数据
7425
7426
  RectSelectPaint:paint//区间选择背景
7426
7427
  };this.SelectRectDialog.DoModal(e);}else{this.HideSelectRect();this.UpdateSelectRect(selectData.Start,selectData.End);}}else{this.TryClickPaintEvent(JSCHART_EVENT_ID.ON_CLICKUP_CHART_PAINT,this.ClickDownPoint,e);this.ClickEvent(e);}};this.OnDragSelectRectMouseUp=function(e){var paint=this.GetRectSelectPaint();if(!paint)return;var selectData=paint.GetSelectRectData();if(!selectData)return;var pixelTatio=GetDevicePixelRatio();var corssCursor=this.ChartCorssCursor;//十字光标
@@ -8285,14 +8286,17 @@ this.UpdateData=function(aryData){if(!aryData||aryData.length<=0)return;var setK
8285
8286
  for(var i in this.Data){var item=this.Data[i];var strKey=item.Date+'-'+item.Time+'-'+item.InfoType+'-'+item.Title;setKeys.add(strKey);}var count=0;for(var i in aryData){var item=aryData[i];var strKey=item.Date+'-'+item.Time+'-'+item.InfoType+'-'+item.Title;if(setKeys.has(strKey))continue;this.Data.push(item);++count;}JSConsole.Chart.Log('[AnnouncementInfo::UpdateData] add new count='+count);};this.RecvError=function(http,e,param){console.warn("[AnnouncementInfo::RecvError] error, http ",e,http);//if (param.HQChart.ScriptErrorCallback) param.HQChart.ScriptErrorCallback(e);
8286
8287
  };}//业绩预告
8287
8288
  function PforecastInfo(){this.newMethod=IKLineInfo;//派生
8288
- this.newMethod();delete this.newMethod;this.ClassName='PforecastInfo';this.RequestData=function(hqChart,obj){var self=this;var param={HQChart:hqChart};this.Data=[];var url=g_JSChartResource.Domain+g_JSChartResource.KLine.Info.Pforecast.ApiUrl;//请求数据
8289
+ this.newMethod();delete this.newMethod;this.ClassName='PforecastInfo';this.Explain='业绩预告';this.RequestData=function(hqChart,obj){var self=this;var param={HQChart:hqChart};this.Data=[];var url=g_JSChartResource.Domain+g_JSChartResource.KLine.Info.Pforecast.ApiUrl;if(this.NetworkFilter(hqChart,obj))return;//已被上层替换,不调用默认的网络请求
8290
+ //请求数据
8289
8291
  JSNetwork.HttpRequest({url:url,data:{"field":["pforecast.type","pforecast.reportdate","fweek"],"condition":[{"item":["pforecast.reportdate","int32","gte",this.StartDate]}],"symbol":[param.HQChart.Symbol],"start":0,"end":this.MaxRequestDataCount},type:"post",dataType:"json",async:true,success:function success(recvData){self.RecvData(recvData,param);}});return true;};this.RecvData=function(recvData,param){if(recvData.stock.length!=1)return;if(recvData.stock[0].stockday.length<=0)return;for(var i in recvData.stock[0].stockday){var item=recvData.stock[0].stockday[i];if(item.pforecast.length>0){var dataItem=item.pforecast[0];var infoData=new KLineInfoData();infoData.Date=item.date;infoData.Title=dataItem.type;infoData.InfoType=KLINE_INFO_TYPE.PFORECAST;infoData.ExtendData={Type:dataItem.type,ReportDate:dataItem.reportdate};if(item.fweek)//未来周涨幅
8290
8292
  {infoData.ExtendData.FWeek={};if(item.fweek.week1!=null)infoData.ExtendData.FWeek.Week1=item.fweek.week1;if(item.fweek.week4!=null)infoData.ExtendData.FWeek.Week4=item.fweek.week4;}this.Data.push(infoData);}}param.HQChart.UpdataChartInfo();param.HQChart.Draw();};}//投资者关系 (调研)
8291
8293
  function ResearchInfo(){this.newMethod=IKLineInfo;//派生
8292
- this.newMethod();delete this.newMethod;this.ClassName='ResearchInfo';this.RequestData=function(hqChart,obj){var self=this;var param={HQChart:hqChart};this.Data=[];var url=g_JSChartResource.Domain+g_JSChartResource.KLine.Info.Research.ApiUrl;//请求数据
8294
+ this.newMethod();delete this.newMethod;this.ClassName='ResearchInfo';this.Explain='调研';this.RequestData=function(hqChart,obj){var self=this;var param={HQChart:hqChart};this.Data=[];var url=g_JSChartResource.Domain+g_JSChartResource.KLine.Info.Research.ApiUrl;if(this.NetworkFilter(hqChart,obj))return;//已被上层替换,不调用默认的网络请求
8295
+ //请求数据
8293
8296
  JSNetwork.HttpRequest({url:url,data:{"filed":["releasedate","researchdate","level","symbol","id",'type'],"querydate":{"StartDate":this.StartDate,"EndDate":this.GetToday()},"symbol":[param.HQChart.Symbol],"start":0,"end":this.MaxRequestDataCount},type:"post",dataType:"json",async:true,success:function success(recvData){self.RecvData(recvData,param);}});return true;};this.RecvData=function(recvData,param){if(recvData.list.length<=0)return;for(var i in recvData.list){var item=recvData.list[i];var infoData=new KLineInfoData();infoData.ID=item.id;infoData.Date=item.researchdate;infoData.InfoType=KLINE_INFO_TYPE.RESEARCH;infoData.ExtendData={Level:item.level,Type:item.type};this.Data.push(infoData);}param.HQChart.UpdataChartInfo();param.HQChart.Draw();};}//大宗交易
8294
8297
  function BlockTrading(){this.newMethod=IKLineInfo;//派生
8295
- this.newMethod();delete this.newMethod;this.ClassName='BlockTrading';this.RequestData=function(hqChart,obj){var self=this;var param={HQChart:hqChart};this.Data=[];var url=g_JSChartResource.Domain+g_JSChartResource.KLine.Info.BlockTrading.ApiUrl;//请求数据
8298
+ this.newMethod();delete this.newMethod;this.ClassName='BlockTrading';this.Explain='大宗交易';this.RequestData=function(hqChart,obj){var self=this;var param={HQChart:hqChart};this.Data=[];var url=g_JSChartResource.Domain+g_JSChartResource.KLine.Info.BlockTrading.ApiUrl;if(this.NetworkFilter(hqChart,obj))return;//已被上层替换,不调用默认的网络请求
8299
+ //请求数据
8296
8300
  JSNetwork.HttpRequest({url:url,data:{"field":["blocktrading.price","blocktrading.vol","blocktrading.premium","fweek","price"],"condition":[{"item":["date","int32","gte",this.StartDate]},{"item":["blocktrading.vol","int32","gte","0"]}],"symbol":[param.HQChart.Symbol],"start":0,"end":this.MaxRequestDataCount},type:"post",dataType:"json",async:true,success:function success(recvData){self.RecvData(recvData,param);}});return true;};this.RecvData=function(recvData,param){if(recvData.stock.length!=1)return;if(recvData.stock[0].stockday.length<=0)return;for(var i in recvData.stock[0].stockday){var item=recvData.stock[0].stockday[i];var infoData=new KLineInfoData();infoData.Date=item.date;infoData.InfoType=KLINE_INFO_TYPE.BLOCKTRADING;infoData.ExtendData={Price:item.blocktrading.price,//交易价格
8297
8301
  Premium:item.blocktrading.premium,//溢价 (百分比%)
8298
8302
  Vol:item.blocktrading.vol,//交易金额单位(万元)
@@ -8300,7 +8304,8 @@ ClosePrice:item.price//收盘价
8300
8304
  };if(item.fweek)//未来周涨幅
8301
8305
  {infoData.ExtendData.FWeek={};if(item.fweek.week1!=null)infoData.ExtendData.FWeek.Week1=item.fweek.week1;if(item.fweek.week4!=null)infoData.ExtendData.FWeek.Week4=item.fweek.week4;}this.Data.push(infoData);}param.HQChart.UpdataChartInfo();param.HQChart.Draw();};}//龙虎榜
8302
8306
  function TradeDetail(){this.newMethod=IKLineInfo;//派生
8303
- this.newMethod();delete this.newMethod;this.ClassName='TradeDetail';this.RequestData=function(hqChart,obj){var self=this;var param={HQChart:hqChart};this.Data=[];var url=g_JSChartResource.Domain+g_JSChartResource.KLine.Info.TradeDetail.ApiUrl;//请求数据
8307
+ this.newMethod();delete this.newMethod;this.ClassName='TradeDetail';this.Explain='大宗交易';this.RequestData=function(hqChart,obj){var self=this;var param={HQChart:hqChart};this.Data=[];var url=g_JSChartResource.Domain+g_JSChartResource.KLine.Info.TradeDetail.ApiUrl;if(this.NetworkFilter(hqChart,obj))return;//已被上层替换,不调用默认的网络请求
8308
+ //请求数据
8304
8309
  JSNetwork.HttpRequest({url:url,data:{"field":["tradedetail.typeexplain","tradedetail.type","fweek"],"condition":[{"item":["date","int32","gte",this.StartDate]},{"item":["tradedetail.type","int32","gte","0"]}],"symbol":[param.HQChart.Symbol],"start":0,"end":this.MaxRequestDataCount},type:"post",dataType:"json",async:true,success:function success(recvData){self.RecvData(recvData,param);}});return true;};this.RecvData=function(recvData,param){if(recvData.stock.length!=1)return;if(recvData.stock[0].stockday.length<=0)return;for(var i in recvData.stock[0].stockday){var item=recvData.stock[0].stockday[i];var infoData=new KLineInfoData();infoData.Date=item.date;infoData.InfoType=KLINE_INFO_TYPE.TRADEDETAIL;infoData.ExtendData={Detail:new Array()};for(var j in item.tradedetail){var tradeItem=item.tradedetail[j];infoData.ExtendData.Detail.push({"Type":tradeItem.type,"TypeExplain":tradeItem.typeexplain});}if(item.fweek)//未来周涨幅
8305
8310
  {infoData.ExtendData.FWeek={};if(item.fweek.week1!=null)infoData.ExtendData.FWeek.Week1=item.fweek.week1;if(item.fweek.week4!=null)infoData.ExtendData.FWeek.Week4=item.fweek.week4;}this.Data.push(infoData);}param.HQChart.UpdataChartInfo();param.HQChart.Draw();};}function JSMinuteInfoMap(){}JSMinuteInfoMap.InfoMap=new _map2.default([["大盘异动",{Create:function Create(){return new MarketEventInfo();}}]]);JSMinuteInfoMap.Get=function(id){return JSMinuteInfoMap.InfoMap.get(id);};function IMinuteInfo(){this.Data;this.ClassName='IMinuteInfo';}//////////////////////////////////////////////////////////////////////
8306
8311
  // 大盘异动
@@ -10562,7 +10567,7 @@ case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_SELL_REPAY://卖出信息-偿还量
10562
10567
  case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_SELL_NET://卖出信息-融券净卖出
10563
10568
  var sellData=marginData.sell;if(!sellData)continue;if(!this.IsNumber(sellData.balance)||!this.IsNumber(sellData.volume)||!this.IsNumber(sellData.repay)||!this.IsNumber(sellData.net))continue;indexData.Value=buyData.balance;var indexData2=new SingleData();indexData2.Date=item.date;indexData2.Value=buyData.volume;var indexData3=new SingleData();indexData3.Date=item.date;indexData3.Value=buyData.repay;var indexData4=new SingleData();indexData4.Date=item.date;indexData4.Value=buyData.net;aryData.push(indexData);aryData2.push(indexData2);aryData3.push(indexData3);aryData4.push(indexData4);break;default:continue;}}var allData=[];if(jobID===JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_BALANCE||jobID===JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_RATE){allData.push({JobID:jobID,Data:aryData});}else if(jobID===JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_BUY_BALANCE||jobID===JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_BUY_AMOUNT||jobID===JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_BUY_REPAY||jobID===JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_BUY_NET){allData.push({JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_BUY_BALANCE,Data:aryData});allData.push({JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_BUY_AMOUNT,Data:aryData2});allData.push({JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_BUY_REPAY,Data:aryData3});allData.push({JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_BUY_NET,Data:aryData4});}else if(jobID===JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_SELL_BALANCE||jobID===JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_SELL_VOLUME||jobID===JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_SELL_REPAY||jobID===JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_SELL_NET){allData.push({JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_SELL_BALANCE,Data:aryData});allData.push({JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_SELL_VOLUME,Data:aryData2});allData.push({JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_SELL_REPAY,Data:aryData3});allData.push({JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_SELL_NET,Data:aryData4});}for(var _i126 in allData){var aryFixedData=this.SourceData.GetFittingData(allData[_i126].Data);var bindData=new ChartData();bindData.Data=aryFixedData;bindData.Period=this.Period;//周期
10564
10569
  if(bindData.Period>0)//周期数据
10565
- {var periodData=bindData.GetPeriodSingleData(bindData.Period);bindData.Data=periodData;}var _data=bindData.GetValue();this.MarginData.set(allData[_i126].JobID,_data);}};this.GetNewsAnalysisCacheData=function(id,node){var jobID=JS_EXECUTE_JOB_ID.GetNewsAnalysisID(id);if(!jobID)this.Execute.ThrowUnexpectedNode(node,'不支持NEWS('+id+')');if(this.NewsAnalysisData.has(jobID))return this.NewsAnalysisData.get(jobID);return[];};this.GetHKToSHSZData=function(job){var args=job.Args;var code=this.Symbol;if(args.length>0){var item=args[0];if(item.Type==Syntax.Literal){code=item.Value;}else if(item.Type==Syntax.Identifier)//变量 !!只支持默认的变量值
10570
+ {var periodData=bindData.GetPeriodSingleData(bindData.Period);bindData.Data=periodData;}var _data2=bindData.GetValue();this.MarginData.set(allData[_i126].JobID,_data2);}};this.GetNewsAnalysisCacheData=function(id,node){var jobID=JS_EXECUTE_JOB_ID.GetNewsAnalysisID(id);if(!jobID)this.Execute.ThrowUnexpectedNode(node,'不支持NEWS('+id+')');if(this.NewsAnalysisData.has(jobID))return this.NewsAnalysisData.get(jobID);return[];};this.GetHKToSHSZData=function(job){var args=job.Args;var code=this.Symbol;if(args.length>0){var item=args[0];if(item.Type==Syntax.Literal){code=item.Value;}else if(item.Type==Syntax.Identifier)//变量 !!只支持默认的变量值
10566
10571
  {var isFind=false;for(var j in this.Arguments){var argItem=this.Arguments[j];if(argItem.Name==item.Name){code=argItem.Value;isFind=true;break;}}if(!isFind){var token=job.Token;this.Execute.ErrorHandler.ThrowError(token.Index,token.Line,0,'HK2SHSZ() Error: can\'t read '+item.Name);}}}job.Symbol=code;if(code==1||code==2||code==3)//下载全市场数据
10567
10572
  this.GetHKToSHSZMarketData(code,job);else this.GetHKToSHSZStockData(code,job);//下载个股数据
10568
10573
  };this.GetHKToSHSZStockData=function(symbol,job){if(this.HKToSHSZData.has(symbol))return this.Execute.RunNextJob();var upperSymbol=symbol.toLowerCase();//代码小写
@@ -10577,7 +10582,7 @@ JSNetwork.HttpRequest({url:url,type:"get",dataType:"json",async:true,success:fun
10577
10582
  var SZValue=data.hk2sz[i]*1000000;//单位是百万
10578
10583
  var total=SHValue+SZValue;var itemSHSZData=new SingleData();itemSHSZData.Date=date;itemSHSZData.Value=total;var itemSHData=new SingleData();itemSHData.Date=date;itemSHData.Value=SHValue;var itemSZData=new SingleData();itemSZData.Date=date;itemSZData.Value=SZValue;arySHSZData.push(itemSHSZData);arySHData.push(itemSHData);arySZData.push(itemSZData);}var allData=[{Data:arySHSZData,ID:1},{Data:arySHData,ID:2},{Data:arySZData,ID:3}];for(var _i127 in allData){var aryFixedData=this.Data.GetFittingData(allData[_i127].Data);var bindData=new ChartData();bindData.Data=aryFixedData;bindData.Period=this.Period;//周期
10579
10584
  if(bindData.Period>0)//周期数据
10580
- {var periodData=bindData.GetPeriodSingleData(bindData.Period);bindData.Data=periodData;}var _data2=bindData.GetValue();this.HKToSHSZData.set(allData[_i127].ID,_data2);}};this.RecvMulitMinuteHKToSHSZData=function(data,job)//多日分时图北上资金
10585
+ {var periodData=bindData.GetPeriodSingleData(bindData.Period);bindData.Data=periodData;}var _data3=bindData.GetValue();this.HKToSHSZData.set(allData[_i127].ID,_data3);}};this.RecvMulitMinuteHKToSHSZData=function(data,job)//多日分时图北上资金
10581
10586
  {if(!data.data||data.data.length<=0)return;var arySHSZData=[],arySHData=[],arySZData=[];for(var i=0,j=0;i<this.Data.Data.length&&j<data.data.length;){arySHSZData[i]=null;arySHData[i]=null;arySZData[i]=null;var item=this.Data.Data[i];var dateTime=item.DateTime;//日期加时间
10582
10587
  if(!dateTime){++i;continue;}var aryValue=dateTime.split(' ');if(aryValue.length!=2){++i;continue;}var date=parseInt(aryValue[0]);var day=data.data[j];if(!day.minute||day.minute.length<=0){++j;continue;}if(day.date>date){++i;continue;}else if(day.date<date){++j;continue;}for(var k in day.minute){var timeItem=day.minute[k];var SHValue=timeItem[1];var SZValue=timeItem[2];var total=SHValue+SZValue;arySHSZData[i]=total;arySHData[i]=SHValue;arySZData[i]=SZValue;++i;}++j;}var allData=[{Data:arySHSZData,ID:1},{Data:arySHData,ID:2},{Data:arySZData,ID:3}];for(var i in allData){var item=allData[i];this.HKToSHSZData.set(item.ID,item.Data);}};//北上资金函数
10583
10588
  this.GetHKToSHSZCacheData=function(code,node){//if (!this.HKToSHSZData.has(code)) this.Execute.ThrowUnexpectedNode(node,`不支持HK2SHSZ(${code})`);
@@ -12490,7 +12495,7 @@ function HQChartScriptWorker(){this.Create=function(){var _this60=this;addEventL
12490
12495
  hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,Stock:{Symbol:message.Symbol},Request:{MaxDataCount:500,MaxMinuteDayCount:5},Period:message.Period,Right:message.Right,Data:hisData};if(IFrameSplitOperator.IsNumber(message.HQDataType))stockObj.HQDataType=message.HQDataType;indexConsole.ExecuteScript(stockObj);};this.OnRecvMessage=function(message){var data=message.data;if(!data)return;if(data.ID==JSCHART_WORKER_MESSAGE_ID.EXECUTE_SCRIPT){if(!IFrameSplitOperator.IsNonEmptyArray(data.AryIndex))return;for(var i=0;i<data.AryIndex.length;++i){var item=data.AryIndex[i];this.ExecuteScript(item,data);}}};this.OnExecuteFinish=function(data,indexInfo,jsExectute){var message={Data:data,IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.FINISH_EXECUTE_SCRIPT};postMessage(message);};this.OnExecuteError=function(error,indexInfo){var message={IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.ERROR_EXECUTE_SCRIPT,Error:error};postMessage(message);};}/********************************************************************************
12491
12496
  * 版本信息输出
12492
12497
  *
12493
- */var HQCHART_VERSION="1.1.12489";function PrintHQChartVersion(){var log='*************************************************************************************************************\n*\n* HQChart Ver: '+HQCHART_VERSION+' \n* \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n*************************************************************************************************************\n';console.log(log);}PrintHQChartVersion();//把给外界调用的方法暴露出来
12498
+ */var HQCHART_VERSION="1.1.12498";function PrintHQChartVersion(){var log='*************************************************************************************************************\n*\n* HQChart Ver: '+HQCHART_VERSION+' \n* \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n*************************************************************************************************************\n';console.log(log);}PrintHQChartVersion();//把给外界调用的方法暴露出来
12494
12499
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
12495
12500
  // BaseIndex:BaseIndex,
12496
12501
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "hqchart",
3
3
  "description": "stock chart",
4
4
  "author": "jones2000",
5
- "version": "1.1.12490",
5
+ "version": "1.1.12499",
6
6
  "main": "lib/main.js",
7
7
  "private": false,
8
8
  "license": "Apache License 2.0",
@@ -3842,7 +3842,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
3842
3842
  Y:drag.LastMove.Y-uielement.getBoundingClientRect().top,
3843
3843
  SelectData:selectData, //区间选择的数据
3844
3844
  RectSelectPaint:paint, //区间选择背景
3845
- IsShowMenu:true
3845
+ IsShowMenu:true,
3846
+ e,e
3846
3847
  };
3847
3848
  event.Callback(event,data,this);
3848
3849
  isShowMenu=data.IsShowMenu;
@@ -9009,6 +9010,7 @@ function IChartFramePainting()
9009
9010
 
9010
9011
  this.LogoTextColor=g_JSChartResource.FrameLogo.TextColor;
9011
9012
  this.LogoTextFont=g_JSChartResource.FrameLogo.Font;
9013
+ this.LogoBGColor=g_JSChartResource.FrameLogo.BGColor;
9012
9014
  this.GlobalOption;
9013
9015
 
9014
9016
  this.PtInButtons=function(x,y) //坐标是否在按钮上
@@ -9173,10 +9175,12 @@ function IChartFramePainting()
9173
9175
  var text=g_JSChartResource.FrameLogo.Text;
9174
9176
  if (!IFrameSplitOperator.IsString(text)) return;
9175
9177
 
9176
- this.Canvas.fillStyle=this.LogoTextColor;
9178
+
9177
9179
  this.Canvas.font=this.LogoTextFont;
9178
9180
  this.Canvas.textAlign = 'left';
9179
9181
  this.Canvas.textBaseline = 'bottom';
9182
+ var height=this.Canvas.measureText("擎").width;
9183
+ var width=this.Canvas.measureText(text).width;
9180
9184
  if (this.IsHScreen)
9181
9185
  {
9182
9186
  var x=border.Left+5;
@@ -9184,13 +9188,36 @@ function IChartFramePainting()
9184
9188
  this.Canvas.save();
9185
9189
  this.Canvas.translate(x,y);
9186
9190
  this.Canvas.rotate(90 * Math.PI / 180);
9187
- this.Canvas.fillText(text,0,0);
9191
+
9192
+ var rtBG={ Left:0, Bottom:0, Width:width+4, Height:height+4 };
9193
+ rtBG.Top=rtBG.Bottom-rtBG.Height;
9194
+ rtBG.Right=rtBG.Left+rtBG.Width;
9195
+
9196
+ if (this.LogoBGColor)
9197
+ {
9198
+ this.Canvas.fillStyle=this.LogoBGColor;
9199
+ this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);
9200
+ }
9201
+
9202
+ this.Canvas.fillStyle=this.LogoTextColor;
9203
+ this.Canvas.fillText(text,1,0);
9188
9204
  this.Canvas.restore();
9189
9205
  }
9190
9206
  else
9191
9207
  {
9192
- var x=border.Left+5;
9193
- var y=border.Bottom-5;
9208
+ var rtBG={ Left:border.Left+5, Bottom:border.Bottom-5, Width:width+4, Height:height+4 };
9209
+ rtBG.Top=rtBG.Bottom-rtBG.Height;
9210
+ rtBG.Right=rtBG.Left+rtBG.Width;
9211
+
9212
+ if (this.LogoBGColor)
9213
+ {
9214
+ this.Canvas.fillStyle=this.LogoBGColor;
9215
+ this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);
9216
+ }
9217
+
9218
+ var x=rtBG.Left+1;
9219
+ var y=rtBG.Bottom-1;
9220
+ this.Canvas.fillStyle=this.LogoTextColor;
9194
9221
  this.Canvas.fillText(text,x,y);
9195
9222
  }
9196
9223
  }
@@ -29064,6 +29091,7 @@ function ChartVolStick()
29064
29091
  else //太细了直接话线
29065
29092
  {
29066
29093
  var preKItem=null;
29094
+ var barColor=null;
29067
29095
  for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
29068
29096
  {
29069
29097
  var value=this.Data.Data[i];
@@ -29084,14 +29112,8 @@ function ChartVolStick()
29084
29112
 
29085
29113
  if (x>chartright) break;
29086
29114
 
29087
- if (isMinute)
29088
- {
29089
- var barColor=this.GetMinuteBarColor(kItem,preKItem); //分时图颜色单独计算
29090
- }
29091
- else
29092
- {
29093
- var barColor=this.GetBarColor(kItem);
29094
- }
29115
+ if (isMinute) barColor=this.GetMinuteBarColor(kItem,preKItem); //分时图颜色单独计算
29116
+ else barColor=this.GetBarColor(kItem);
29095
29117
 
29096
29118
  this.Canvas.strokeStyle=barColor.Color;
29097
29119
 
@@ -29117,6 +29139,7 @@ function ChartVolStick()
29117
29139
  var lockRect=this.GetLockRect();
29118
29140
  if (lockRect) chartBottom=lockRect.Top;
29119
29141
 
29142
+ var isMinute=this.IsMinuteFrame();
29120
29143
  var yBottom=this.ChartFrame.GetYFromData(0);
29121
29144
 
29122
29145
  if (dataWidth>=4)
@@ -29153,6 +29176,8 @@ function ChartVolStick()
29153
29176
  }
29154
29177
  else //太细了直接话线
29155
29178
  {
29179
+ var preKItem=null;
29180
+ var barColor=null;
29156
29181
  for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
29157
29182
  {
29158
29183
  var value=this.Data.Data[i];
@@ -29160,10 +29185,23 @@ function ChartVolStick()
29160
29185
  if (value==null || kItem==null) continue;
29161
29186
 
29162
29187
  var y=this.ChartFrame.GetYFromData(value);
29163
- var x=this.ChartFrame.GetXFromIndex(j);
29188
+
29189
+ if (isMinute)
29190
+ {
29191
+ var x=this.ChartFrame.GetXFromIndex(j);
29192
+ }
29193
+ else
29194
+ {
29195
+ var left=xOffset;
29196
+ var right=xOffset+dataWidth;
29197
+ var x=left+(right-left)/2;
29198
+ }
29199
+
29164
29200
  if (x>chartBottom) break;
29165
29201
 
29166
- var barColor=this.GetBarColor(kItem);
29202
+ if (isMinute) barColor=this.GetMinuteBarColor(kItem,preKItem); //分时图颜色单独计算
29203
+ else barColor=this.GetBarColor(kItem);
29204
+
29167
29205
  var bUp=barColor.IsUp;
29168
29206
  this.Canvas.strokeStyle=barColor.Color;
29169
29207
 
@@ -29172,6 +29210,8 @@ function ChartVolStick()
29172
29210
  this.Canvas.moveTo(y,ToFixedPoint(x));
29173
29211
  this.Canvas.lineTo(yBottom,ToFixedPoint(x));
29174
29212
  this.Canvas.stroke();
29213
+
29214
+ preKItem=kItem;
29175
29215
  }
29176
29216
  }
29177
29217
  }
@@ -59608,7 +59648,8 @@ function JSChartResource()
59608
59648
  {
59609
59649
  TextColor:'rgb(178,34,34)',
59610
59650
  Font:"bold "+ 16*GetDevicePixelRatio() +"px 微软雅黑",
59611
- Text:"*仅学习使用*" //不要修改声明, 任何修改声明产生的任何法律责任由修改者自行独立承担,与HQChart插件作者无关。
59651
+ Text:"*仅学习使用*", //不要修改声明, 任何修改声明产生的任何法律责任由修改者自行独立承担,与HQChart插件作者无关。
59652
+ BGColor:"rgba(230,230,230, 0.5)",
59612
59653
  };
59613
59654
 
59614
59655
  //百分比坐标文字颜色
@@ -70566,7 +70607,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
70566
70607
  X:drag.LastMove.X-uielement.getBoundingClientRect().left,
70567
70608
  Y:drag.LastMove.Y-uielement.getBoundingClientRect().top,
70568
70609
  SelectData:selectData, //区间选择的数据
70569
- RectSelectPaint:paint //区间选择背景
70610
+ RectSelectPaint:paint, //区间选择背景
70611
+ e:e
70570
70612
  };
70571
70613
  event.Callback(event,data,this);
70572
70614
  isShowDialog=false; //外部调用了区间选择事件,不弹框
@@ -80499,6 +80541,7 @@ function PforecastInfo()
80499
80541
  delete this.newMethod;
80500
80542
 
80501
80543
  this.ClassName='PforecastInfo';
80544
+ this.Explain='业绩预告';
80502
80545
 
80503
80546
  this.RequestData=function(hqChart,obj)
80504
80547
  {
@@ -80511,6 +80554,9 @@ function PforecastInfo()
80511
80554
  this.Data=[];
80512
80555
 
80513
80556
  var url=g_JSChartResource.Domain+g_JSChartResource.KLine.Info.Pforecast.ApiUrl;
80557
+
80558
+ if (this.NetworkFilter(hqChart, obj)) return; //已被上层替换,不调用默认的网络请求
80559
+
80514
80560
  //请求数据
80515
80561
  JSNetwork.HttpRequest({
80516
80562
  url: url,
@@ -80577,6 +80623,7 @@ function ResearchInfo()
80577
80623
  delete this.newMethod;
80578
80624
 
80579
80625
  this.ClassName='ResearchInfo';
80626
+ this.Explain='调研';
80580
80627
 
80581
80628
  this.RequestData=function(hqChart,obj)
80582
80629
  {
@@ -80588,6 +80635,9 @@ function ResearchInfo()
80588
80635
 
80589
80636
  this.Data=[];
80590
80637
  var url=g_JSChartResource.Domain+g_JSChartResource.KLine.Info.Research.ApiUrl;
80638
+
80639
+ if (this.NetworkFilter(hqChart, obj)) return; //已被上层替换,不调用默认的网络请求
80640
+
80591
80641
  //请求数据
80592
80642
  JSNetwork.HttpRequest({
80593
80643
  url: url,
@@ -80641,6 +80691,7 @@ function BlockTrading()
80641
80691
  delete this.newMethod;
80642
80692
 
80643
80693
  this.ClassName='BlockTrading';
80694
+ this.Explain='大宗交易';
80644
80695
 
80645
80696
  this.RequestData=function(hqChart,obj)
80646
80697
  {
@@ -80653,6 +80704,8 @@ function BlockTrading()
80653
80704
  this.Data=[];
80654
80705
  var url=g_JSChartResource.Domain+g_JSChartResource.KLine.Info.BlockTrading.ApiUrl;
80655
80706
 
80707
+ if (this.NetworkFilter(hqChart, obj)) return; //已被上层替换,不调用默认的网络请求
80708
+
80656
80709
  //请求数据
80657
80710
  JSNetwork.HttpRequest({
80658
80711
  url: url,
@@ -80724,7 +80777,8 @@ function TradeDetail()
80724
80777
  delete this.newMethod;
80725
80778
 
80726
80779
  this.ClassName='TradeDetail';
80727
-
80780
+ this.Explain='大宗交易';
80781
+
80728
80782
  this.RequestData=function(hqChart, obj)
80729
80783
  {
80730
80784
  var self = this;
@@ -80736,6 +80790,8 @@ function TradeDetail()
80736
80790
  this.Data=[];
80737
80791
  var url=g_JSChartResource.Domain+g_JSChartResource.KLine.Info.TradeDetail.ApiUrl;
80738
80792
 
80793
+ if (this.NetworkFilter(hqChart, obj)) return; //已被上层替换,不调用默认的网络请求
80794
+
80739
80795
  //请求数据
80740
80796
  JSNetwork.HttpRequest({
80741
80797
  url: url,
@@ -7922,7 +7922,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
7922
7922
  Y:drag.LastMove.Y-uielement.getBoundingClientRect().top,
7923
7923
  SelectData:selectData, //区间选择的数据
7924
7924
  RectSelectPaint:paint, //区间选择背景
7925
- IsShowMenu:true
7925
+ IsShowMenu:true,
7926
+ e,e
7926
7927
  };
7927
7928
  event.Callback(event,data,this);
7928
7929
  isShowMenu=data.IsShowMenu;
@@ -13089,6 +13090,7 @@ function IChartFramePainting()
13089
13090
 
13090
13091
  this.LogoTextColor=g_JSChartResource.FrameLogo.TextColor;
13091
13092
  this.LogoTextFont=g_JSChartResource.FrameLogo.Font;
13093
+ this.LogoBGColor=g_JSChartResource.FrameLogo.BGColor;
13092
13094
  this.GlobalOption;
13093
13095
 
13094
13096
  this.PtInButtons=function(x,y) //坐标是否在按钮上
@@ -13253,10 +13255,12 @@ function IChartFramePainting()
13253
13255
  var text=g_JSChartResource.FrameLogo.Text;
13254
13256
  if (!IFrameSplitOperator.IsString(text)) return;
13255
13257
 
13256
- this.Canvas.fillStyle=this.LogoTextColor;
13258
+
13257
13259
  this.Canvas.font=this.LogoTextFont;
13258
13260
  this.Canvas.textAlign = 'left';
13259
13261
  this.Canvas.textBaseline = 'bottom';
13262
+ var height=this.Canvas.measureText("擎").width;
13263
+ var width=this.Canvas.measureText(text).width;
13260
13264
  if (this.IsHScreen)
13261
13265
  {
13262
13266
  var x=border.Left+5;
@@ -13264,13 +13268,36 @@ function IChartFramePainting()
13264
13268
  this.Canvas.save();
13265
13269
  this.Canvas.translate(x,y);
13266
13270
  this.Canvas.rotate(90 * Math.PI / 180);
13267
- this.Canvas.fillText(text,0,0);
13271
+
13272
+ var rtBG={ Left:0, Bottom:0, Width:width+4, Height:height+4 };
13273
+ rtBG.Top=rtBG.Bottom-rtBG.Height;
13274
+ rtBG.Right=rtBG.Left+rtBG.Width;
13275
+
13276
+ if (this.LogoBGColor)
13277
+ {
13278
+ this.Canvas.fillStyle=this.LogoBGColor;
13279
+ this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);
13280
+ }
13281
+
13282
+ this.Canvas.fillStyle=this.LogoTextColor;
13283
+ this.Canvas.fillText(text,1,0);
13268
13284
  this.Canvas.restore();
13269
13285
  }
13270
13286
  else
13271
13287
  {
13272
- var x=border.Left+5;
13273
- var y=border.Bottom-5;
13288
+ var rtBG={ Left:border.Left+5, Bottom:border.Bottom-5, Width:width+4, Height:height+4 };
13289
+ rtBG.Top=rtBG.Bottom-rtBG.Height;
13290
+ rtBG.Right=rtBG.Left+rtBG.Width;
13291
+
13292
+ if (this.LogoBGColor)
13293
+ {
13294
+ this.Canvas.fillStyle=this.LogoBGColor;
13295
+ this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);
13296
+ }
13297
+
13298
+ var x=rtBG.Left+1;
13299
+ var y=rtBG.Bottom-1;
13300
+ this.Canvas.fillStyle=this.LogoTextColor;
13274
13301
  this.Canvas.fillText(text,x,y);
13275
13302
  }
13276
13303
  }
@@ -33144,6 +33171,7 @@ function ChartVolStick()
33144
33171
  else //太细了直接话线
33145
33172
  {
33146
33173
  var preKItem=null;
33174
+ var barColor=null;
33147
33175
  for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
33148
33176
  {
33149
33177
  var value=this.Data.Data[i];
@@ -33164,14 +33192,8 @@ function ChartVolStick()
33164
33192
 
33165
33193
  if (x>chartright) break;
33166
33194
 
33167
- if (isMinute)
33168
- {
33169
- var barColor=this.GetMinuteBarColor(kItem,preKItem); //分时图颜色单独计算
33170
- }
33171
- else
33172
- {
33173
- var barColor=this.GetBarColor(kItem);
33174
- }
33195
+ if (isMinute) barColor=this.GetMinuteBarColor(kItem,preKItem); //分时图颜色单独计算
33196
+ else barColor=this.GetBarColor(kItem);
33175
33197
 
33176
33198
  this.Canvas.strokeStyle=barColor.Color;
33177
33199
 
@@ -33197,6 +33219,7 @@ function ChartVolStick()
33197
33219
  var lockRect=this.GetLockRect();
33198
33220
  if (lockRect) chartBottom=lockRect.Top;
33199
33221
 
33222
+ var isMinute=this.IsMinuteFrame();
33200
33223
  var yBottom=this.ChartFrame.GetYFromData(0);
33201
33224
 
33202
33225
  if (dataWidth>=4)
@@ -33233,6 +33256,8 @@ function ChartVolStick()
33233
33256
  }
33234
33257
  else //太细了直接话线
33235
33258
  {
33259
+ var preKItem=null;
33260
+ var barColor=null;
33236
33261
  for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
33237
33262
  {
33238
33263
  var value=this.Data.Data[i];
@@ -33240,10 +33265,23 @@ function ChartVolStick()
33240
33265
  if (value==null || kItem==null) continue;
33241
33266
 
33242
33267
  var y=this.ChartFrame.GetYFromData(value);
33243
- var x=this.ChartFrame.GetXFromIndex(j);
33268
+
33269
+ if (isMinute)
33270
+ {
33271
+ var x=this.ChartFrame.GetXFromIndex(j);
33272
+ }
33273
+ else
33274
+ {
33275
+ var left=xOffset;
33276
+ var right=xOffset+dataWidth;
33277
+ var x=left+(right-left)/2;
33278
+ }
33279
+
33244
33280
  if (x>chartBottom) break;
33245
33281
 
33246
- var barColor=this.GetBarColor(kItem);
33282
+ if (isMinute) barColor=this.GetMinuteBarColor(kItem,preKItem); //分时图颜色单独计算
33283
+ else barColor=this.GetBarColor(kItem);
33284
+
33247
33285
  var bUp=barColor.IsUp;
33248
33286
  this.Canvas.strokeStyle=barColor.Color;
33249
33287
 
@@ -33252,6 +33290,8 @@ function ChartVolStick()
33252
33290
  this.Canvas.moveTo(y,ToFixedPoint(x));
33253
33291
  this.Canvas.lineTo(yBottom,ToFixedPoint(x));
33254
33292
  this.Canvas.stroke();
33293
+
33294
+ preKItem=kItem;
33255
33295
  }
33256
33296
  }
33257
33297
  }
@@ -63688,7 +63728,8 @@ function JSChartResource()
63688
63728
  {
63689
63729
  TextColor:'rgb(178,34,34)',
63690
63730
  Font:"bold "+ 16*GetDevicePixelRatio() +"px 微软雅黑",
63691
- Text:"*仅学习使用*" //不要修改声明, 任何修改声明产生的任何法律责任由修改者自行独立承担,与HQChart插件作者无关。
63731
+ Text:"*仅学习使用*", //不要修改声明, 任何修改声明产生的任何法律责任由修改者自行独立承担,与HQChart插件作者无关。
63732
+ BGColor:"rgba(230,230,230, 0.5)",
63692
63733
  };
63693
63734
 
63694
63735
  //百分比坐标文字颜色
@@ -74646,7 +74687,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
74646
74687
  X:drag.LastMove.X-uielement.getBoundingClientRect().left,
74647
74688
  Y:drag.LastMove.Y-uielement.getBoundingClientRect().top,
74648
74689
  SelectData:selectData, //区间选择的数据
74649
- RectSelectPaint:paint //区间选择背景
74690
+ RectSelectPaint:paint, //区间选择背景
74691
+ e:e
74650
74692
  };
74651
74693
  event.Callback(event,data,this);
74652
74694
  isShowDialog=false; //外部调用了区间选择事件,不弹框
@@ -84579,6 +84621,7 @@ function PforecastInfo()
84579
84621
  delete this.newMethod;
84580
84622
 
84581
84623
  this.ClassName='PforecastInfo';
84624
+ this.Explain='业绩预告';
84582
84625
 
84583
84626
  this.RequestData=function(hqChart,obj)
84584
84627
  {
@@ -84591,6 +84634,9 @@ function PforecastInfo()
84591
84634
  this.Data=[];
84592
84635
 
84593
84636
  var url=g_JSChartResource.Domain+g_JSChartResource.KLine.Info.Pforecast.ApiUrl;
84637
+
84638
+ if (this.NetworkFilter(hqChart, obj)) return; //已被上层替换,不调用默认的网络请求
84639
+
84594
84640
  //请求数据
84595
84641
  JSNetwork.HttpRequest({
84596
84642
  url: url,
@@ -84657,6 +84703,7 @@ function ResearchInfo()
84657
84703
  delete this.newMethod;
84658
84704
 
84659
84705
  this.ClassName='ResearchInfo';
84706
+ this.Explain='调研';
84660
84707
 
84661
84708
  this.RequestData=function(hqChart,obj)
84662
84709
  {
@@ -84668,6 +84715,9 @@ function ResearchInfo()
84668
84715
 
84669
84716
  this.Data=[];
84670
84717
  var url=g_JSChartResource.Domain+g_JSChartResource.KLine.Info.Research.ApiUrl;
84718
+
84719
+ if (this.NetworkFilter(hqChart, obj)) return; //已被上层替换,不调用默认的网络请求
84720
+
84671
84721
  //请求数据
84672
84722
  JSNetwork.HttpRequest({
84673
84723
  url: url,
@@ -84721,6 +84771,7 @@ function BlockTrading()
84721
84771
  delete this.newMethod;
84722
84772
 
84723
84773
  this.ClassName='BlockTrading';
84774
+ this.Explain='大宗交易';
84724
84775
 
84725
84776
  this.RequestData=function(hqChart,obj)
84726
84777
  {
@@ -84733,6 +84784,8 @@ function BlockTrading()
84733
84784
  this.Data=[];
84734
84785
  var url=g_JSChartResource.Domain+g_JSChartResource.KLine.Info.BlockTrading.ApiUrl;
84735
84786
 
84787
+ if (this.NetworkFilter(hqChart, obj)) return; //已被上层替换,不调用默认的网络请求
84788
+
84736
84789
  //请求数据
84737
84790
  JSNetwork.HttpRequest({
84738
84791
  url: url,
@@ -84804,7 +84857,8 @@ function TradeDetail()
84804
84857
  delete this.newMethod;
84805
84858
 
84806
84859
  this.ClassName='TradeDetail';
84807
-
84860
+ this.Explain='大宗交易';
84861
+
84808
84862
  this.RequestData=function(hqChart, obj)
84809
84863
  {
84810
84864
  var self = this;
@@ -84816,6 +84870,8 @@ function TradeDetail()
84816
84870
  this.Data=[];
84817
84871
  var url=g_JSChartResource.Domain+g_JSChartResource.KLine.Info.TradeDetail.ApiUrl;
84818
84872
 
84873
+ if (this.NetworkFilter(hqChart, obj)) return; //已被上层替换,不调用默认的网络请求
84874
+
84819
84875
  //请求数据
84820
84876
  JSNetwork.HttpRequest({
84821
84877
  url: url,
@@ -128047,7 +128103,7 @@ function ScrollBarBGChart()
128047
128103
 
128048
128104
 
128049
128105
 
128050
- var HQCHART_VERSION="1.1.12489";
128106
+ var HQCHART_VERSION="1.1.12498";
128051
128107
 
128052
128108
  function PrintHQChartVersion()
128053
128109
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.12489";
8
+ var HQCHART_VERSION="1.1.12498";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -7966,7 +7966,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
7966
7966
  Y:drag.LastMove.Y-uielement.getBoundingClientRect().top,
7967
7967
  SelectData:selectData, //区间选择的数据
7968
7968
  RectSelectPaint:paint, //区间选择背景
7969
- IsShowMenu:true
7969
+ IsShowMenu:true,
7970
+ e,e
7970
7971
  };
7971
7972
  event.Callback(event,data,this);
7972
7973
  isShowMenu=data.IsShowMenu;
@@ -13133,6 +13134,7 @@ function IChartFramePainting()
13133
13134
 
13134
13135
  this.LogoTextColor=g_JSChartResource.FrameLogo.TextColor;
13135
13136
  this.LogoTextFont=g_JSChartResource.FrameLogo.Font;
13137
+ this.LogoBGColor=g_JSChartResource.FrameLogo.BGColor;
13136
13138
  this.GlobalOption;
13137
13139
 
13138
13140
  this.PtInButtons=function(x,y) //坐标是否在按钮上
@@ -13297,10 +13299,12 @@ function IChartFramePainting()
13297
13299
  var text=g_JSChartResource.FrameLogo.Text;
13298
13300
  if (!IFrameSplitOperator.IsString(text)) return;
13299
13301
 
13300
- this.Canvas.fillStyle=this.LogoTextColor;
13302
+
13301
13303
  this.Canvas.font=this.LogoTextFont;
13302
13304
  this.Canvas.textAlign = 'left';
13303
13305
  this.Canvas.textBaseline = 'bottom';
13306
+ var height=this.Canvas.measureText("擎").width;
13307
+ var width=this.Canvas.measureText(text).width;
13304
13308
  if (this.IsHScreen)
13305
13309
  {
13306
13310
  var x=border.Left+5;
@@ -13308,13 +13312,36 @@ function IChartFramePainting()
13308
13312
  this.Canvas.save();
13309
13313
  this.Canvas.translate(x,y);
13310
13314
  this.Canvas.rotate(90 * Math.PI / 180);
13311
- this.Canvas.fillText(text,0,0);
13315
+
13316
+ var rtBG={ Left:0, Bottom:0, Width:width+4, Height:height+4 };
13317
+ rtBG.Top=rtBG.Bottom-rtBG.Height;
13318
+ rtBG.Right=rtBG.Left+rtBG.Width;
13319
+
13320
+ if (this.LogoBGColor)
13321
+ {
13322
+ this.Canvas.fillStyle=this.LogoBGColor;
13323
+ this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);
13324
+ }
13325
+
13326
+ this.Canvas.fillStyle=this.LogoTextColor;
13327
+ this.Canvas.fillText(text,1,0);
13312
13328
  this.Canvas.restore();
13313
13329
  }
13314
13330
  else
13315
13331
  {
13316
- var x=border.Left+5;
13317
- var y=border.Bottom-5;
13332
+ var rtBG={ Left:border.Left+5, Bottom:border.Bottom-5, Width:width+4, Height:height+4 };
13333
+ rtBG.Top=rtBG.Bottom-rtBG.Height;
13334
+ rtBG.Right=rtBG.Left+rtBG.Width;
13335
+
13336
+ if (this.LogoBGColor)
13337
+ {
13338
+ this.Canvas.fillStyle=this.LogoBGColor;
13339
+ this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);
13340
+ }
13341
+
13342
+ var x=rtBG.Left+1;
13343
+ var y=rtBG.Bottom-1;
13344
+ this.Canvas.fillStyle=this.LogoTextColor;
13318
13345
  this.Canvas.fillText(text,x,y);
13319
13346
  }
13320
13347
  }
@@ -33188,6 +33215,7 @@ function ChartVolStick()
33188
33215
  else //太细了直接话线
33189
33216
  {
33190
33217
  var preKItem=null;
33218
+ var barColor=null;
33191
33219
  for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
33192
33220
  {
33193
33221
  var value=this.Data.Data[i];
@@ -33208,14 +33236,8 @@ function ChartVolStick()
33208
33236
 
33209
33237
  if (x>chartright) break;
33210
33238
 
33211
- if (isMinute)
33212
- {
33213
- var barColor=this.GetMinuteBarColor(kItem,preKItem); //分时图颜色单独计算
33214
- }
33215
- else
33216
- {
33217
- var barColor=this.GetBarColor(kItem);
33218
- }
33239
+ if (isMinute) barColor=this.GetMinuteBarColor(kItem,preKItem); //分时图颜色单独计算
33240
+ else barColor=this.GetBarColor(kItem);
33219
33241
 
33220
33242
  this.Canvas.strokeStyle=barColor.Color;
33221
33243
 
@@ -33241,6 +33263,7 @@ function ChartVolStick()
33241
33263
  var lockRect=this.GetLockRect();
33242
33264
  if (lockRect) chartBottom=lockRect.Top;
33243
33265
 
33266
+ var isMinute=this.IsMinuteFrame();
33244
33267
  var yBottom=this.ChartFrame.GetYFromData(0);
33245
33268
 
33246
33269
  if (dataWidth>=4)
@@ -33277,6 +33300,8 @@ function ChartVolStick()
33277
33300
  }
33278
33301
  else //太细了直接话线
33279
33302
  {
33303
+ var preKItem=null;
33304
+ var barColor=null;
33280
33305
  for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
33281
33306
  {
33282
33307
  var value=this.Data.Data[i];
@@ -33284,10 +33309,23 @@ function ChartVolStick()
33284
33309
  if (value==null || kItem==null) continue;
33285
33310
 
33286
33311
  var y=this.ChartFrame.GetYFromData(value);
33287
- var x=this.ChartFrame.GetXFromIndex(j);
33312
+
33313
+ if (isMinute)
33314
+ {
33315
+ var x=this.ChartFrame.GetXFromIndex(j);
33316
+ }
33317
+ else
33318
+ {
33319
+ var left=xOffset;
33320
+ var right=xOffset+dataWidth;
33321
+ var x=left+(right-left)/2;
33322
+ }
33323
+
33288
33324
  if (x>chartBottom) break;
33289
33325
 
33290
- var barColor=this.GetBarColor(kItem);
33326
+ if (isMinute) barColor=this.GetMinuteBarColor(kItem,preKItem); //分时图颜色单独计算
33327
+ else barColor=this.GetBarColor(kItem);
33328
+
33291
33329
  var bUp=barColor.IsUp;
33292
33330
  this.Canvas.strokeStyle=barColor.Color;
33293
33331
 
@@ -33296,6 +33334,8 @@ function ChartVolStick()
33296
33334
  this.Canvas.moveTo(y,ToFixedPoint(x));
33297
33335
  this.Canvas.lineTo(yBottom,ToFixedPoint(x));
33298
33336
  this.Canvas.stroke();
33337
+
33338
+ preKItem=kItem;
33299
33339
  }
33300
33340
  }
33301
33341
  }
@@ -63732,7 +63772,8 @@ function JSChartResource()
63732
63772
  {
63733
63773
  TextColor:'rgb(178,34,34)',
63734
63774
  Font:"bold "+ 16*GetDevicePixelRatio() +"px 微软雅黑",
63735
- Text:"*仅学习使用*" //不要修改声明, 任何修改声明产生的任何法律责任由修改者自行独立承担,与HQChart插件作者无关。
63775
+ Text:"*仅学习使用*", //不要修改声明, 任何修改声明产生的任何法律责任由修改者自行独立承担,与HQChart插件作者无关。
63776
+ BGColor:"rgba(230,230,230, 0.5)",
63736
63777
  };
63737
63778
 
63738
63779
  //百分比坐标文字颜色
@@ -74690,7 +74731,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
74690
74731
  X:drag.LastMove.X-uielement.getBoundingClientRect().left,
74691
74732
  Y:drag.LastMove.Y-uielement.getBoundingClientRect().top,
74692
74733
  SelectData:selectData, //区间选择的数据
74693
- RectSelectPaint:paint //区间选择背景
74734
+ RectSelectPaint:paint, //区间选择背景
74735
+ e:e
74694
74736
  };
74695
74737
  event.Callback(event,data,this);
74696
74738
  isShowDialog=false; //外部调用了区间选择事件,不弹框
@@ -84623,6 +84665,7 @@ function PforecastInfo()
84623
84665
  delete this.newMethod;
84624
84666
 
84625
84667
  this.ClassName='PforecastInfo';
84668
+ this.Explain='业绩预告';
84626
84669
 
84627
84670
  this.RequestData=function(hqChart,obj)
84628
84671
  {
@@ -84635,6 +84678,9 @@ function PforecastInfo()
84635
84678
  this.Data=[];
84636
84679
 
84637
84680
  var url=g_JSChartResource.Domain+g_JSChartResource.KLine.Info.Pforecast.ApiUrl;
84681
+
84682
+ if (this.NetworkFilter(hqChart, obj)) return; //已被上层替换,不调用默认的网络请求
84683
+
84638
84684
  //请求数据
84639
84685
  JSNetwork.HttpRequest({
84640
84686
  url: url,
@@ -84701,6 +84747,7 @@ function ResearchInfo()
84701
84747
  delete this.newMethod;
84702
84748
 
84703
84749
  this.ClassName='ResearchInfo';
84750
+ this.Explain='调研';
84704
84751
 
84705
84752
  this.RequestData=function(hqChart,obj)
84706
84753
  {
@@ -84712,6 +84759,9 @@ function ResearchInfo()
84712
84759
 
84713
84760
  this.Data=[];
84714
84761
  var url=g_JSChartResource.Domain+g_JSChartResource.KLine.Info.Research.ApiUrl;
84762
+
84763
+ if (this.NetworkFilter(hqChart, obj)) return; //已被上层替换,不调用默认的网络请求
84764
+
84715
84765
  //请求数据
84716
84766
  JSNetwork.HttpRequest({
84717
84767
  url: url,
@@ -84765,6 +84815,7 @@ function BlockTrading()
84765
84815
  delete this.newMethod;
84766
84816
 
84767
84817
  this.ClassName='BlockTrading';
84818
+ this.Explain='大宗交易';
84768
84819
 
84769
84820
  this.RequestData=function(hqChart,obj)
84770
84821
  {
@@ -84777,6 +84828,8 @@ function BlockTrading()
84777
84828
  this.Data=[];
84778
84829
  var url=g_JSChartResource.Domain+g_JSChartResource.KLine.Info.BlockTrading.ApiUrl;
84779
84830
 
84831
+ if (this.NetworkFilter(hqChart, obj)) return; //已被上层替换,不调用默认的网络请求
84832
+
84780
84833
  //请求数据
84781
84834
  JSNetwork.HttpRequest({
84782
84835
  url: url,
@@ -84848,7 +84901,8 @@ function TradeDetail()
84848
84901
  delete this.newMethod;
84849
84902
 
84850
84903
  this.ClassName='TradeDetail';
84851
-
84904
+ this.Explain='大宗交易';
84905
+
84852
84906
  this.RequestData=function(hqChart, obj)
84853
84907
  {
84854
84908
  var self = this;
@@ -84860,6 +84914,8 @@ function TradeDetail()
84860
84914
  this.Data=[];
84861
84915
  var url=g_JSChartResource.Domain+g_JSChartResource.KLine.Info.TradeDetail.ApiUrl;
84862
84916
 
84917
+ if (this.NetworkFilter(hqChart, obj)) return; //已被上层替换,不调用默认的网络请求
84918
+
84863
84919
  //请求数据
84864
84920
  JSNetwork.HttpRequest({
84865
84921
  url: url,
@@ -128200,7 +128256,7 @@ function HQChartScriptWorker()
128200
128256
 
128201
128257
 
128202
128258
 
128203
- var HQCHART_VERSION="1.1.12489";
128259
+ var HQCHART_VERSION="1.1.12498";
128204
128260
 
128205
128261
  function PrintHQChartVersion()
128206
128262
  {
@@ -7068,6 +7068,7 @@ function ChartVolStick()
7068
7068
  else //太细了直接话线
7069
7069
  {
7070
7070
  var preKItem=null;
7071
+ var barColor=null;
7071
7072
  for (var i = this.Data.DataOffset, j = 0; i < this.Data.Data.length && j < xPointCount; ++i, ++j, xOffset += (dataWidth + distanceWidth))
7072
7073
  {
7073
7074
  var value = this.Data.Data[i];
@@ -7089,14 +7090,8 @@ function ChartVolStick()
7089
7090
 
7090
7091
  if (x > chartright) break;
7091
7092
 
7092
- if (isMinute)
7093
- {
7094
- var barColor=this.GetMinuteBarColor(kItem,preKItem); //分时图颜色单独计算
7095
- }
7096
- else
7097
- {
7098
- var barColor=this.GetBarColor(kItem);
7099
- }
7093
+ if (isMinute) barColor=this.GetMinuteBarColor(kItem,preKItem); //分时图颜色单独计算
7094
+ else barColor=this.GetBarColor(kItem);
7100
7095
 
7101
7096
  this.Canvas.strokeStyle=barColor.Color;
7102
7097
 
@@ -7133,7 +7128,7 @@ function ChartVolStick()
7133
7128
  var xOffset = this.ChartBorder.GetTop() + distanceWidth / 2.0 + 2.0;
7134
7129
  var chartBottom = this.ChartBorder.GetBottom();
7135
7130
  var xPointCount = this.ChartFrame.XPointCount;
7136
-
7131
+ var isMinute=this.IsMinuteFrame();
7137
7132
  var yBottom = this.ChartFrame.GetYFromData(0);
7138
7133
 
7139
7134
  if (dataWidth >= this.MinBarWidth)
@@ -7171,6 +7166,8 @@ function ChartVolStick()
7171
7166
  }
7172
7167
  else //太细了直接话线
7173
7168
  {
7169
+ var preKItem=null;
7170
+ var barColor=null;
7174
7171
  for (var i = this.Data.DataOffset, j = 0; i < this.Data.Data.length && j < xPointCount; ++i, ++j, xOffset += (dataWidth + distanceWidth))
7175
7172
  {
7176
7173
  var value = this.Data.Data[i];
@@ -7178,10 +7175,22 @@ function ChartVolStick()
7178
7175
  if (value == null || kItem == null) continue;
7179
7176
 
7180
7177
  var y = this.ChartFrame.GetYFromData(value);
7181
- var x = this.ChartFrame.GetXFromIndex(j);
7178
+
7179
+ if (isMinute)
7180
+ {
7181
+ var x=this.ChartFrame.GetXFromIndex(j);
7182
+ }
7183
+ else
7184
+ {
7185
+ var left=xOffset;
7186
+ var right=xOffset+dataWidth;
7187
+ var x=left+(right-left)/2;
7188
+ }
7182
7189
  if (x > chartBottom) break;
7183
7190
 
7184
- var barColor=this.GetBarColor(kItem);
7191
+ if (isMinute) barColor=this.GetMinuteBarColor(kItem,preKItem); //分时图颜色单独计算
7192
+ else barColor=this.GetBarColor(kItem);
7193
+
7185
7194
  this.Canvas.strokeStyle=barColor.Color;
7186
7195
 
7187
7196
  //var x = this.ChartFrame.GetXFromIndex(j);
@@ -7189,6 +7198,8 @@ function ChartVolStick()
7189
7198
  this.Canvas.moveTo(y, ToFixedPoint(x));
7190
7199
  this.Canvas.lineTo(yBottom, ToFixedPoint(x));
7191
7200
  this.Canvas.stroke();
7201
+
7202
+ preKItem=kItem;
7192
7203
  }
7193
7204
  }
7194
7205
  }
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.12485";
8
+ var HQCHART_VERSION="1.1.12494";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {