hqchart 1.1.13590 → 1.1.13600

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.
@@ -6527,6 +6527,7 @@ var JSCHART_EVENT_ID=
6527
6527
  ON_CLICK_REPORT_CHECKBOX:141, //报价列表checkbox
6528
6528
  ON_CLICK_REPORT_BUTTON:142, //报价列表按钮
6529
6529
  ON_CLICK_REPORT_LINK:143, //报价列表 链接
6530
+ ON_CREATE_REPORT_HEADER_MENU:144, //报价列表 表头菜单
6530
6531
 
6531
6532
 
6532
6533
  ON_CHANGE_INDEX:150, //切换指标
@@ -6703,8 +6704,10 @@ var JSCHART_MENU_ID=
6703
6704
 
6704
6705
 
6705
6706
  CMD_REPORT_CHANGE_BLOCK_ID:60, //报价列表 切换板块ID
6706
-
6707
-
6707
+ CMD_REPORT_COLUMN_SORT_ID:61, //报价列表 表头排序 Arg[列序号, 排序方向]
6708
+ CMD_REPORT_COLUMN_DEL_ID:62, //报价列表 删除列
6709
+ CMD_REPORT_COLUMN_MOVE_ID:63, //报价列表 列移动
6710
+ CMD_REPORT_COLUMN_FILTER_ID:64, //报价列表 筛选
6708
6711
  }
6709
6712
 
6710
6713
 
@@ -60881,6 +60884,16 @@ function ChartArrowMarker()
60881
60884
  this.OnlyMoveXIndex=true;
60882
60885
  this.IsSupportMagnet=true;
60883
60886
 
60887
+ this.Super_SetOption=this.SetOption; //父类函数
60888
+
60889
+ this.SetOption=function(option)
60890
+ {
60891
+ this.Super_SetOption(option);
60892
+
60893
+ if (option.AreaColor) this.AreaColor=option.AreaColor;
60894
+ else this.AreaColor=IChartDrawPicture.ColorToRGBA(this.LineColor, 0.6);
60895
+ }
60896
+
60884
60897
  this.CalculatePoint=function(angle, ptStart, ptEnd, lineWidth)
60885
60898
  {
60886
60899
  var theta=angle; //三角斜边一直线夹角
@@ -60924,9 +60937,12 @@ function ChartArrowMarker()
60924
60937
  this.Canvas.lineTo(outArrow.Bottom.X,outArrow.Bottom.Y);
60925
60938
  this.Canvas.lineTo(insideArrow.Bottom.X,insideArrow.Bottom.Y);
60926
60939
  this.Canvas.lineTo(ptStart.X,ptStart.Y);
60927
- this.Canvas.closePath();
60928
60940
 
60929
- this.Canvas.fillStyle=this.LineColor;
60941
+ this.Canvas.strokeStyle=this.LineColor;
60942
+ this.Canvas.stroke();
60943
+
60944
+ this.Canvas.closePath();
60945
+ this.Canvas.fillStyle=this.AreaColor;
60930
60946
  this.Canvas.fill();
60931
60947
 
60932
60948
  /*
@@ -69717,6 +69733,9 @@ function ChartPriceRange()
69717
69733
 
69718
69734
  this.DrawArrow({X:ToFixedPoint(xCenter), Y:ptStart.Y}, {X:ToFixedPoint(xCenter), Y:ptEnd.Y});
69719
69735
 
69736
+ var bottom=this.Frame.ChartBorder.GetBottomEx();
69737
+ var top=this.Frame.ChartBorder.GetTopEx();
69738
+
69720
69739
  //文字输出
69721
69740
  var startValue=this.Frame.GetYData(ptStart.Y,false);
69722
69741
  var endValue=this.Frame.GetYData(ptEnd.Y,false);
@@ -69732,6 +69751,23 @@ function ChartPriceRange()
69732
69751
  else rtTextBG.Top=ptEnd.Y+4;
69733
69752
  rtTextBG.Bottom=rtTextBG.Top+rtTextBG.Height;
69734
69753
 
69754
+ if (diffValue>0)
69755
+ {
69756
+ if (rtTextBG.Top<=top)
69757
+ {
69758
+ rtTextBG.Top=top;
69759
+ rtTextBG.Bottom=rtTextBG.Top+rtTextBG.Height;
69760
+ }
69761
+ }
69762
+ else
69763
+ {
69764
+ if (rtTextBG.Bottom>=bottom)
69765
+ {
69766
+ rtTextBG.Bottom=bottom;
69767
+ rtTextBG.Top=rtTextBG.Bottom-rtTextBG.Height;
69768
+ }
69769
+ }
69770
+
69735
69771
  if (this.Label.EnableBGColor)
69736
69772
  {
69737
69773
  var path=new Path2D();
@@ -69838,6 +69874,7 @@ function ChartDateRange()
69838
69874
 
69839
69875
 
69840
69876
  //文字输出
69877
+ var bottom=this.Frame.ChartBorder.GetBottomEx();
69841
69878
  var startIndex=this.Frame.GetXData(ptStart.X,false);
69842
69879
  var endIndex=this.Frame.GetXData(ptEnd.X,false);
69843
69880
  var barCount=endIndex-startIndex+1;
@@ -69849,6 +69886,12 @@ function ChartDateRange()
69849
69886
  var rtTextBG={ Left:xCenter-textWidth/2, Top:ptEnd.Y+4, Width:textWidth, Height:textHeight+2 };
69850
69887
  rtTextBG.Bottom=rtTextBG.Top+rtTextBG.Height;
69851
69888
 
69889
+ if (rtTextBG.Bottom>=bottom)
69890
+ {
69891
+ rtTextBG.Bottom=bottom;
69892
+ rtTextBG.Top=rtTextBG.Bottom-rtTextBG.Height;
69893
+ }
69894
+
69852
69895
  if (this.Label.EnableBGColor)
69853
69896
  {
69854
69897
  var path=new Path2D();
@@ -128625,10 +128668,73 @@ function JSReportChartContainer(uielement)
128625
128668
  }
128626
128669
  }
128627
128670
 
128671
+ //列排序
128672
+ this.SortColumn=function(index, sortType)
128673
+ {
128674
+ if (index<0) return false;
128675
+ var reportChart=this.GetReportChart();
128676
+ if (!reportChart) return false;
128677
+
128678
+ var column=reportChart.Column[index];
128679
+
128680
+ if (!column) return false;
128681
+ if (column.Sort!=1 && column.Sort!=2) return false;
128682
+
128683
+ var sortInfo={ Field:index, Sort:sortType };
128684
+ if (sortInfo.Sort==0) //不排序还原
128685
+ {
128686
+ this.Data.Data=[];
128687
+ if (IFrameSplitOperator.IsNonEmptyArray(this.SourceData.Data))
128688
+ this.Data.Data=this.SourceData.Data.slice();
128689
+ }
128690
+ else if (sortInfo.Sort==1 || sortInfo.Sort==2)
128691
+ {
128692
+ if (column.Sort==1) //本地排序
128693
+ {
128694
+ var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_REPORT_LOCAL_SORT);
128695
+ if (event && event.Callback)
128696
+ {
128697
+ var sendData={ Column:column, SortInfo:sortInfo, SymbolList:this.Data.Data, Result:null };
128698
+ event.Callback (event, sendData, this);
128699
+ if (Array.isArray(sendData.Result)) this.Data.Data=sendData.Result;
128700
+ }
128701
+ else
128702
+ {
128703
+ this.Data.Data.sort((left, right)=> { return this.LocalSort(left, right, column, sortInfo.Sort); });
128704
+ }
128705
+ }
128706
+ else if (column.Sort==2) //远程排序
128707
+ {
128708
+ if (!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return;
128709
+
128710
+ this.SortInfo.Field=sortInfo.Field;
128711
+ this.SortInfo.Sort=sortInfo.Sort;
128712
+ this.Data.YOffset=0;
128713
+ this.ResetReportSelectStatus();
128714
+ this.RequestStockSortData(column, sortInfo.Field, sortInfo.Sort); //远程排序
128715
+ return true;
128716
+ }
128717
+ }
128718
+
128719
+ this.Data.YOffset=0;
128720
+ this.ResetReportSelectStatus();
128721
+ this.SortInfo.Field=sortInfo.Field;
128722
+ this.SortInfo.Sort=sortInfo.Sort;
128723
+ this.Draw();
128724
+ this.DelayUpdateStockData();
128725
+ return true;
128726
+ }
128727
+
128628
128728
  //点表头
128629
128729
  this.OnClickHeader=function(clickData, e)
128630
128730
  {
128631
128731
  var header=clickData.Header;
128732
+ if (header.Column && header.Column.EnablePopupHeaderMenu)
128733
+ {
128734
+ this.PopupHeaderMenu(clickData, e);
128735
+ return;
128736
+ }
128737
+
128632
128738
  if (header.Column && (header.Column.Sort==1 || header.Column.Sort==2))
128633
128739
  {
128634
128740
  var index=header.Index;
@@ -128707,6 +128813,52 @@ function JSReportChartContainer(uielement)
128707
128813
  }
128708
128814
  }
128709
128815
 
128816
+ this.PopupHeaderMenu=function(clickData, e)
128817
+ {
128818
+ if (!this.JSPopMenu) return;
128819
+ if (!this.GetEventCallback) return;
128820
+
128821
+ var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CREATE_REPORT_HEADER_MENU);
128822
+ if (!event || !event.Callback) return;
128823
+
128824
+ var header=clickData.Header;
128825
+ var column=header.Column;
128826
+ var menuData={ Menu:null, Position:JSPopMenu.POSITION_ID.DROPDOWN_MENU_ID };
128827
+ menuData.ClickCallback=(data)=>{ this.OnClickHeaderMenu(column, data); }
128828
+
128829
+ var sendData={ MenuData:menuData, Column:column, Index:header.Index, PreventDefault:false, e:e };
128830
+ event.Callback(event, sendData, this);
128831
+ if (sendData.PreventDefault==true) return;
128832
+
128833
+ if (!menuData.Menu) return;
128834
+
128835
+ this.PopupMenuByDrapdown(menuData, header.Rect);
128836
+ }
128837
+
128838
+ //下拉菜单
128839
+ this.PopupMenuByDrapdown=function(menuData, rtButton)
128840
+ {
128841
+ if (!this.JSPopMenu) return;
128842
+
128843
+ var pixelRatio=GetDevicePixelRatio();
128844
+ var rtCell={ Left:rtButton.Left/pixelRatio, Right:rtButton.Right/pixelRatio, Bottom:rtButton.Bottom/pixelRatio, Top:rtButton.Top/pixelRatio };
128845
+ rtCell.Width=rtCell.Right-rtCell.Left;
128846
+ rtCell.Height=rtCell.Bottom-rtCell.Top;
128847
+
128848
+ var rtClient=this.UIElement.getBoundingClientRect();
128849
+ var rtScroll=GetScrollPosition();
128850
+
128851
+ var offsetLeft=rtClient.left+rtScroll.Left;
128852
+ var offsetTop=rtClient.top+rtScroll.Top;
128853
+ rtCell.Left+=offsetLeft;
128854
+ rtCell.Right+=offsetLeft;
128855
+ rtCell.Top+=offsetTop;
128856
+ rtCell.Bottom+=offsetTop;
128857
+
128858
+ this.JSPopMenu.CreatePopMenu(menuData);
128859
+ this.JSPopMenu.PopupMenuByDrapdown(rtCell);
128860
+ }
128861
+
128710
128862
  this.GetTabPopMenu=function(tabItem)
128711
128863
  {
128712
128864
  var aryMenu=[ ];
@@ -128822,6 +128974,24 @@ function JSReportChartContainer(uielement)
128822
128974
  this.Draw();
128823
128975
  }
128824
128976
 
128977
+ this.OnClickHeaderMenu=function(menuData, data)
128978
+ {
128979
+ JSConsole.Chart.Log('[JSReportChartContainer::OnClickHeaderMenu] ',menuData, data);
128980
+
128981
+ var cmdID=data.Data.ID;
128982
+ var aryArgs=data.Data.Args;
128983
+
128984
+ var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_MENU_COMMAND); //回调通知外部
128985
+ if (event && event.Callback)
128986
+ {
128987
+ var data={ PreventDefault:false, CommandID:cmdID, Args:aryArgs, SrcData:data, MenuData:menuData };
128988
+ event.Callback(event,data,this);
128989
+ if (data.PreventDefault) return;
128990
+ }
128991
+
128992
+ this.ExecuteMenuCommand(cmdID,aryArgs);
128993
+ }
128994
+
128825
128995
  this.ExecuteMenuCommand=function(cmdID, aryArgs)
128826
128996
  {
128827
128997
  JSConsole.Chart.Log('[JSReportChartContainer::ExecuteMenuCommand] cmdID=, aryArgs=', cmdID,aryArgs);
@@ -128838,6 +129008,22 @@ function JSReportChartContainer(uielement)
128838
129008
  case JSCHART_MENU_ID.CMD_REPORT_CHANGE_BLOCK_ID:
128839
129009
  if (srcParam) this.ChangeSymbol(srcParam);
128840
129010
  break;
129011
+ case JSCHART_MENU_ID.CMD_REPORT_COLUMN_SORT_ID:
129012
+ if (IFrameSplitOperator.IsNumber(param) && IFrameSplitOperator.IsNumber(aryArgs[1]))
129013
+ this.SortColumn(param, aryArgs[1]);
129014
+ break;
129015
+ case JSCHART_MENU_ID.CMD_REPORT_COLUMN_MOVE_ID:
129016
+ if (IFrameSplitOperator.IsNumber(param) && IFrameSplitOperator.IsNumber(aryArgs[1]))
129017
+ {
129018
+ var leftIndex=param;
129019
+ var rightIndex=param+aryArgs[1];
129020
+ this.SwapColumn(leftIndex, rightIndex, {Redraw:true});
129021
+ }
129022
+ break;
129023
+ case JSCHART_MENU_ID.CMD_REPORT_COLUMN_DEL_ID:
129024
+ if (IFrameSplitOperator.IsNumber(param))
129025
+ this.DeleteColumn(param, {Redraw:true});
129026
+ break;
128841
129027
  }
128842
129028
  }
128843
129029
 
@@ -128855,6 +129041,20 @@ function JSReportChartContainer(uielement)
128855
129041
  }
128856
129042
  }
128857
129043
 
129044
+ this.DeleteColumn=function(index, option)
129045
+ {
129046
+ var reportChart=this.GetReportChart();
129047
+ if (!reportChart) return;
129048
+
129049
+ if (!reportChart.DeleteColumn(index)) return;
129050
+
129051
+ if (option && option.Redraw)
129052
+ {
129053
+ this.SetSizeChange(true);
129054
+ this.Draw();
129055
+ }
129056
+ }
129057
+
128858
129058
  //本地排序
128859
129059
  this.LocalSort=function(left, right, column, sortType)
128860
129060
  {
@@ -129709,6 +129909,9 @@ function ChartReport()
129709
129909
  else colItem.IsDrawCallback=false;
129710
129910
  if (item.Icon) colItem.Icon=item.Icon;
129711
129911
 
129912
+ //点击表头弹出菜单
129913
+ if (IFrameSplitOperator.IsBool(item.EnablePopupHeaderMenu)) colItem.EnablePopupHeaderMenu=item.EnablePopupHeaderMenu;
129914
+
129712
129915
  if (item.Sort==1 || item.Sort==2) //1本地排序 2=远程排序
129713
129916
  {
129714
129917
  colItem.SortType=[1,2]; //默认 降序 ,升序
@@ -129816,6 +130019,15 @@ function ChartReport()
129816
130019
  return true;
129817
130020
  }
129818
130021
 
130022
+ this.DeleteColumn=function(index)
130023
+ {
130024
+ if (!IFrameSplitOperator.IsNonEmptyArray(this.Column)) return false;
130025
+ if (index<0 || index>=this.Column.length) return false;
130026
+
130027
+ this.Column.splice(index,1);
130028
+ return true;
130029
+ }
130030
+
129819
130031
  this.GetXScrollPos=function()
129820
130032
  {
129821
130033
  return this.Data.XOffset;
@@ -132470,7 +132682,14 @@ function ChartReport()
132470
132682
 
132471
132683
  if (buttonData.Type===0) //checkbox
132472
132684
  {
132473
- var sendData={ Column:buttonData.Column, Index:buttonData.Index, Stock:buttonData.Stock, Data:buttonData.Data, PreventDefault: false };
132685
+ var sendData=
132686
+ {
132687
+ Column:buttonData.Column, Index:buttonData.Index, Stock:buttonData.Stock, ColumnIndex:buttonData.ColumnIndex,
132688
+ Data:buttonData.Data, Value:true,
132689
+ PreventDefault: false
132690
+ };
132691
+ if (IFrameSplitOperator.IsBool(buttonData.Data.Checked)) sendData.Value=!buttonData.Data.Checked;
132692
+
132474
132693
  this.SendClickEvent(JSCHART_EVENT_ID.ON_CLICK_REPORT_CHECKBOX, sendData)
132475
132694
 
132476
132695
  if (!sendData.PreventDefault)
@@ -132486,7 +132705,7 @@ function ChartReport()
132486
132705
  }
132487
132706
  else if (buttonData.Type===1) //button
132488
132707
  {
132489
- var sendData={ Column:buttonData.Column, Index:buttonData.Index, Stock:buttonData.Stock, Data:buttonData.Data };
132708
+ var sendData={ Column:buttonData.Column, Index:buttonData.Index, Stock:buttonData.Stock, ColumnIndex:buttonData.ColumnIndex, Data:buttonData.Data };
132490
132709
  this.SendClickEvent(JSCHART_EVENT_ID.ON_CLICK_REPORT_BUTTON, sendData)
132491
132710
 
132492
132711
  status.Redraw=true;
@@ -132494,7 +132713,7 @@ function ChartReport()
132494
132713
  }
132495
132714
  else if (buttonData.Type===2) //link
132496
132715
  {
132497
- var sendData={ Column:buttonData.Column, Index:buttonData.Index, Stock:buttonData.Stock, Data:buttonData.Data };
132716
+ var sendData={ Column:buttonData.Column, Index:buttonData.Index, Stock:buttonData.Stock, ColumnIndex:buttonData.ColumnIndex, Data:buttonData.Data };
132498
132717
  this.SendClickEvent(JSCHART_EVENT_ID.ON_CLICK_REPORT_LINK, sendData)
132499
132718
 
132500
132719
  status.Redraw=true;
@@ -136648,7 +136867,7 @@ function ScrollBarBGChart()
136648
136867
 
136649
136868
 
136650
136869
 
136651
- var HQCHART_VERSION="1.1.13589";
136870
+ var HQCHART_VERSION="1.1.13599";
136652
136871
 
136653
136872
  function PrintHQChartVersion()
136654
136873
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.13589";
8
+ var HQCHART_VERSION="1.1.13599";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {