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.
@@ -6571,6 +6571,7 @@ var JSCHART_EVENT_ID=
6571
6571
  ON_CLICK_REPORT_CHECKBOX:141, //报价列表checkbox
6572
6572
  ON_CLICK_REPORT_BUTTON:142, //报价列表按钮
6573
6573
  ON_CLICK_REPORT_LINK:143, //报价列表 链接
6574
+ ON_CREATE_REPORT_HEADER_MENU:144, //报价列表 表头菜单
6574
6575
 
6575
6576
 
6576
6577
  ON_CHANGE_INDEX:150, //切换指标
@@ -6747,8 +6748,10 @@ var JSCHART_MENU_ID=
6747
6748
 
6748
6749
 
6749
6750
  CMD_REPORT_CHANGE_BLOCK_ID:60, //报价列表 切换板块ID
6750
-
6751
-
6751
+ CMD_REPORT_COLUMN_SORT_ID:61, //报价列表 表头排序 Arg[列序号, 排序方向]
6752
+ CMD_REPORT_COLUMN_DEL_ID:62, //报价列表 删除列
6753
+ CMD_REPORT_COLUMN_MOVE_ID:63, //报价列表 列移动
6754
+ CMD_REPORT_COLUMN_FILTER_ID:64, //报价列表 筛选
6752
6755
  }
6753
6756
 
6754
6757
 
@@ -60925,6 +60928,16 @@ function ChartArrowMarker()
60925
60928
  this.OnlyMoveXIndex=true;
60926
60929
  this.IsSupportMagnet=true;
60927
60930
 
60931
+ this.Super_SetOption=this.SetOption; //父类函数
60932
+
60933
+ this.SetOption=function(option)
60934
+ {
60935
+ this.Super_SetOption(option);
60936
+
60937
+ if (option.AreaColor) this.AreaColor=option.AreaColor;
60938
+ else this.AreaColor=IChartDrawPicture.ColorToRGBA(this.LineColor, 0.6);
60939
+ }
60940
+
60928
60941
  this.CalculatePoint=function(angle, ptStart, ptEnd, lineWidth)
60929
60942
  {
60930
60943
  var theta=angle; //三角斜边一直线夹角
@@ -60968,9 +60981,12 @@ function ChartArrowMarker()
60968
60981
  this.Canvas.lineTo(outArrow.Bottom.X,outArrow.Bottom.Y);
60969
60982
  this.Canvas.lineTo(insideArrow.Bottom.X,insideArrow.Bottom.Y);
60970
60983
  this.Canvas.lineTo(ptStart.X,ptStart.Y);
60971
- this.Canvas.closePath();
60972
60984
 
60973
- this.Canvas.fillStyle=this.LineColor;
60985
+ this.Canvas.strokeStyle=this.LineColor;
60986
+ this.Canvas.stroke();
60987
+
60988
+ this.Canvas.closePath();
60989
+ this.Canvas.fillStyle=this.AreaColor;
60974
60990
  this.Canvas.fill();
60975
60991
 
60976
60992
  /*
@@ -69761,6 +69777,9 @@ function ChartPriceRange()
69761
69777
 
69762
69778
  this.DrawArrow({X:ToFixedPoint(xCenter), Y:ptStart.Y}, {X:ToFixedPoint(xCenter), Y:ptEnd.Y});
69763
69779
 
69780
+ var bottom=this.Frame.ChartBorder.GetBottomEx();
69781
+ var top=this.Frame.ChartBorder.GetTopEx();
69782
+
69764
69783
  //文字输出
69765
69784
  var startValue=this.Frame.GetYData(ptStart.Y,false);
69766
69785
  var endValue=this.Frame.GetYData(ptEnd.Y,false);
@@ -69776,6 +69795,23 @@ function ChartPriceRange()
69776
69795
  else rtTextBG.Top=ptEnd.Y+4;
69777
69796
  rtTextBG.Bottom=rtTextBG.Top+rtTextBG.Height;
69778
69797
 
69798
+ if (diffValue>0)
69799
+ {
69800
+ if (rtTextBG.Top<=top)
69801
+ {
69802
+ rtTextBG.Top=top;
69803
+ rtTextBG.Bottom=rtTextBG.Top+rtTextBG.Height;
69804
+ }
69805
+ }
69806
+ else
69807
+ {
69808
+ if (rtTextBG.Bottom>=bottom)
69809
+ {
69810
+ rtTextBG.Bottom=bottom;
69811
+ rtTextBG.Top=rtTextBG.Bottom-rtTextBG.Height;
69812
+ }
69813
+ }
69814
+
69779
69815
  if (this.Label.EnableBGColor)
69780
69816
  {
69781
69817
  var path=new Path2D();
@@ -69882,6 +69918,7 @@ function ChartDateRange()
69882
69918
 
69883
69919
 
69884
69920
  //文字输出
69921
+ var bottom=this.Frame.ChartBorder.GetBottomEx();
69885
69922
  var startIndex=this.Frame.GetXData(ptStart.X,false);
69886
69923
  var endIndex=this.Frame.GetXData(ptEnd.X,false);
69887
69924
  var barCount=endIndex-startIndex+1;
@@ -69893,6 +69930,12 @@ function ChartDateRange()
69893
69930
  var rtTextBG={ Left:xCenter-textWidth/2, Top:ptEnd.Y+4, Width:textWidth, Height:textHeight+2 };
69894
69931
  rtTextBG.Bottom=rtTextBG.Top+rtTextBG.Height;
69895
69932
 
69933
+ if (rtTextBG.Bottom>=bottom)
69934
+ {
69935
+ rtTextBG.Bottom=bottom;
69936
+ rtTextBG.Top=rtTextBG.Bottom-rtTextBG.Height;
69937
+ }
69938
+
69896
69939
  if (this.Label.EnableBGColor)
69897
69940
  {
69898
69941
  var path=new Path2D();
@@ -128669,10 +128712,73 @@ function JSReportChartContainer(uielement)
128669
128712
  }
128670
128713
  }
128671
128714
 
128715
+ //列排序
128716
+ this.SortColumn=function(index, sortType)
128717
+ {
128718
+ if (index<0) return false;
128719
+ var reportChart=this.GetReportChart();
128720
+ if (!reportChart) return false;
128721
+
128722
+ var column=reportChart.Column[index];
128723
+
128724
+ if (!column) return false;
128725
+ if (column.Sort!=1 && column.Sort!=2) return false;
128726
+
128727
+ var sortInfo={ Field:index, Sort:sortType };
128728
+ if (sortInfo.Sort==0) //不排序还原
128729
+ {
128730
+ this.Data.Data=[];
128731
+ if (IFrameSplitOperator.IsNonEmptyArray(this.SourceData.Data))
128732
+ this.Data.Data=this.SourceData.Data.slice();
128733
+ }
128734
+ else if (sortInfo.Sort==1 || sortInfo.Sort==2)
128735
+ {
128736
+ if (column.Sort==1) //本地排序
128737
+ {
128738
+ var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_REPORT_LOCAL_SORT);
128739
+ if (event && event.Callback)
128740
+ {
128741
+ var sendData={ Column:column, SortInfo:sortInfo, SymbolList:this.Data.Data, Result:null };
128742
+ event.Callback (event, sendData, this);
128743
+ if (Array.isArray(sendData.Result)) this.Data.Data=sendData.Result;
128744
+ }
128745
+ else
128746
+ {
128747
+ this.Data.Data.sort((left, right)=> { return this.LocalSort(left, right, column, sortInfo.Sort); });
128748
+ }
128749
+ }
128750
+ else if (column.Sort==2) //远程排序
128751
+ {
128752
+ if (!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return;
128753
+
128754
+ this.SortInfo.Field=sortInfo.Field;
128755
+ this.SortInfo.Sort=sortInfo.Sort;
128756
+ this.Data.YOffset=0;
128757
+ this.ResetReportSelectStatus();
128758
+ this.RequestStockSortData(column, sortInfo.Field, sortInfo.Sort); //远程排序
128759
+ return true;
128760
+ }
128761
+ }
128762
+
128763
+ this.Data.YOffset=0;
128764
+ this.ResetReportSelectStatus();
128765
+ this.SortInfo.Field=sortInfo.Field;
128766
+ this.SortInfo.Sort=sortInfo.Sort;
128767
+ this.Draw();
128768
+ this.DelayUpdateStockData();
128769
+ return true;
128770
+ }
128771
+
128672
128772
  //点表头
128673
128773
  this.OnClickHeader=function(clickData, e)
128674
128774
  {
128675
128775
  var header=clickData.Header;
128776
+ if (header.Column && header.Column.EnablePopupHeaderMenu)
128777
+ {
128778
+ this.PopupHeaderMenu(clickData, e);
128779
+ return;
128780
+ }
128781
+
128676
128782
  if (header.Column && (header.Column.Sort==1 || header.Column.Sort==2))
128677
128783
  {
128678
128784
  var index=header.Index;
@@ -128751,6 +128857,52 @@ function JSReportChartContainer(uielement)
128751
128857
  }
128752
128858
  }
128753
128859
 
128860
+ this.PopupHeaderMenu=function(clickData, e)
128861
+ {
128862
+ if (!this.JSPopMenu) return;
128863
+ if (!this.GetEventCallback) return;
128864
+
128865
+ var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CREATE_REPORT_HEADER_MENU);
128866
+ if (!event || !event.Callback) return;
128867
+
128868
+ var header=clickData.Header;
128869
+ var column=header.Column;
128870
+ var menuData={ Menu:null, Position:JSPopMenu.POSITION_ID.DROPDOWN_MENU_ID };
128871
+ menuData.ClickCallback=(data)=>{ this.OnClickHeaderMenu(column, data); }
128872
+
128873
+ var sendData={ MenuData:menuData, Column:column, Index:header.Index, PreventDefault:false, e:e };
128874
+ event.Callback(event, sendData, this);
128875
+ if (sendData.PreventDefault==true) return;
128876
+
128877
+ if (!menuData.Menu) return;
128878
+
128879
+ this.PopupMenuByDrapdown(menuData, header.Rect);
128880
+ }
128881
+
128882
+ //下拉菜单
128883
+ this.PopupMenuByDrapdown=function(menuData, rtButton)
128884
+ {
128885
+ if (!this.JSPopMenu) return;
128886
+
128887
+ var pixelRatio=GetDevicePixelRatio();
128888
+ var rtCell={ Left:rtButton.Left/pixelRatio, Right:rtButton.Right/pixelRatio, Bottom:rtButton.Bottom/pixelRatio, Top:rtButton.Top/pixelRatio };
128889
+ rtCell.Width=rtCell.Right-rtCell.Left;
128890
+ rtCell.Height=rtCell.Bottom-rtCell.Top;
128891
+
128892
+ var rtClient=this.UIElement.getBoundingClientRect();
128893
+ var rtScroll=GetScrollPosition();
128894
+
128895
+ var offsetLeft=rtClient.left+rtScroll.Left;
128896
+ var offsetTop=rtClient.top+rtScroll.Top;
128897
+ rtCell.Left+=offsetLeft;
128898
+ rtCell.Right+=offsetLeft;
128899
+ rtCell.Top+=offsetTop;
128900
+ rtCell.Bottom+=offsetTop;
128901
+
128902
+ this.JSPopMenu.CreatePopMenu(menuData);
128903
+ this.JSPopMenu.PopupMenuByDrapdown(rtCell);
128904
+ }
128905
+
128754
128906
  this.GetTabPopMenu=function(tabItem)
128755
128907
  {
128756
128908
  var aryMenu=[ ];
@@ -128866,6 +129018,24 @@ function JSReportChartContainer(uielement)
128866
129018
  this.Draw();
128867
129019
  }
128868
129020
 
129021
+ this.OnClickHeaderMenu=function(menuData, data)
129022
+ {
129023
+ JSConsole.Chart.Log('[JSReportChartContainer::OnClickHeaderMenu] ',menuData, data);
129024
+
129025
+ var cmdID=data.Data.ID;
129026
+ var aryArgs=data.Data.Args;
129027
+
129028
+ var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_MENU_COMMAND); //回调通知外部
129029
+ if (event && event.Callback)
129030
+ {
129031
+ var data={ PreventDefault:false, CommandID:cmdID, Args:aryArgs, SrcData:data, MenuData:menuData };
129032
+ event.Callback(event,data,this);
129033
+ if (data.PreventDefault) return;
129034
+ }
129035
+
129036
+ this.ExecuteMenuCommand(cmdID,aryArgs);
129037
+ }
129038
+
128869
129039
  this.ExecuteMenuCommand=function(cmdID, aryArgs)
128870
129040
  {
128871
129041
  JSConsole.Chart.Log('[JSReportChartContainer::ExecuteMenuCommand] cmdID=, aryArgs=', cmdID,aryArgs);
@@ -128882,6 +129052,22 @@ function JSReportChartContainer(uielement)
128882
129052
  case JSCHART_MENU_ID.CMD_REPORT_CHANGE_BLOCK_ID:
128883
129053
  if (srcParam) this.ChangeSymbol(srcParam);
128884
129054
  break;
129055
+ case JSCHART_MENU_ID.CMD_REPORT_COLUMN_SORT_ID:
129056
+ if (IFrameSplitOperator.IsNumber(param) && IFrameSplitOperator.IsNumber(aryArgs[1]))
129057
+ this.SortColumn(param, aryArgs[1]);
129058
+ break;
129059
+ case JSCHART_MENU_ID.CMD_REPORT_COLUMN_MOVE_ID:
129060
+ if (IFrameSplitOperator.IsNumber(param) && IFrameSplitOperator.IsNumber(aryArgs[1]))
129061
+ {
129062
+ var leftIndex=param;
129063
+ var rightIndex=param+aryArgs[1];
129064
+ this.SwapColumn(leftIndex, rightIndex, {Redraw:true});
129065
+ }
129066
+ break;
129067
+ case JSCHART_MENU_ID.CMD_REPORT_COLUMN_DEL_ID:
129068
+ if (IFrameSplitOperator.IsNumber(param))
129069
+ this.DeleteColumn(param, {Redraw:true});
129070
+ break;
128885
129071
  }
128886
129072
  }
128887
129073
 
@@ -128899,6 +129085,20 @@ function JSReportChartContainer(uielement)
128899
129085
  }
128900
129086
  }
128901
129087
 
129088
+ this.DeleteColumn=function(index, option)
129089
+ {
129090
+ var reportChart=this.GetReportChart();
129091
+ if (!reportChart) return;
129092
+
129093
+ if (!reportChart.DeleteColumn(index)) return;
129094
+
129095
+ if (option && option.Redraw)
129096
+ {
129097
+ this.SetSizeChange(true);
129098
+ this.Draw();
129099
+ }
129100
+ }
129101
+
128902
129102
  //本地排序
128903
129103
  this.LocalSort=function(left, right, column, sortType)
128904
129104
  {
@@ -129753,6 +129953,9 @@ function ChartReport()
129753
129953
  else colItem.IsDrawCallback=false;
129754
129954
  if (item.Icon) colItem.Icon=item.Icon;
129755
129955
 
129956
+ //点击表头弹出菜单
129957
+ if (IFrameSplitOperator.IsBool(item.EnablePopupHeaderMenu)) colItem.EnablePopupHeaderMenu=item.EnablePopupHeaderMenu;
129958
+
129756
129959
  if (item.Sort==1 || item.Sort==2) //1本地排序 2=远程排序
129757
129960
  {
129758
129961
  colItem.SortType=[1,2]; //默认 降序 ,升序
@@ -129860,6 +130063,15 @@ function ChartReport()
129860
130063
  return true;
129861
130064
  }
129862
130065
 
130066
+ this.DeleteColumn=function(index)
130067
+ {
130068
+ if (!IFrameSplitOperator.IsNonEmptyArray(this.Column)) return false;
130069
+ if (index<0 || index>=this.Column.length) return false;
130070
+
130071
+ this.Column.splice(index,1);
130072
+ return true;
130073
+ }
130074
+
129863
130075
  this.GetXScrollPos=function()
129864
130076
  {
129865
130077
  return this.Data.XOffset;
@@ -132514,7 +132726,14 @@ function ChartReport()
132514
132726
 
132515
132727
  if (buttonData.Type===0) //checkbox
132516
132728
  {
132517
- var sendData={ Column:buttonData.Column, Index:buttonData.Index, Stock:buttonData.Stock, Data:buttonData.Data, PreventDefault: false };
132729
+ var sendData=
132730
+ {
132731
+ Column:buttonData.Column, Index:buttonData.Index, Stock:buttonData.Stock, ColumnIndex:buttonData.ColumnIndex,
132732
+ Data:buttonData.Data, Value:true,
132733
+ PreventDefault: false
132734
+ };
132735
+ if (IFrameSplitOperator.IsBool(buttonData.Data.Checked)) sendData.Value=!buttonData.Data.Checked;
132736
+
132518
132737
  this.SendClickEvent(JSCHART_EVENT_ID.ON_CLICK_REPORT_CHECKBOX, sendData)
132519
132738
 
132520
132739
  if (!sendData.PreventDefault)
@@ -132530,7 +132749,7 @@ function ChartReport()
132530
132749
  }
132531
132750
  else if (buttonData.Type===1) //button
132532
132751
  {
132533
- var sendData={ Column:buttonData.Column, Index:buttonData.Index, Stock:buttonData.Stock, Data:buttonData.Data };
132752
+ var sendData={ Column:buttonData.Column, Index:buttonData.Index, Stock:buttonData.Stock, ColumnIndex:buttonData.ColumnIndex, Data:buttonData.Data };
132534
132753
  this.SendClickEvent(JSCHART_EVENT_ID.ON_CLICK_REPORT_BUTTON, sendData)
132535
132754
 
132536
132755
  status.Redraw=true;
@@ -132538,7 +132757,7 @@ function ChartReport()
132538
132757
  }
132539
132758
  else if (buttonData.Type===2) //link
132540
132759
  {
132541
- var sendData={ Column:buttonData.Column, Index:buttonData.Index, Stock:buttonData.Stock, Data:buttonData.Data };
132760
+ var sendData={ Column:buttonData.Column, Index:buttonData.Index, Stock:buttonData.Stock, ColumnIndex:buttonData.ColumnIndex, Data:buttonData.Data };
132542
132761
  this.SendClickEvent(JSCHART_EVENT_ID.ON_CLICK_REPORT_LINK, sendData)
132543
132762
 
132544
132763
  status.Redraw=true;
@@ -140605,7 +140824,7 @@ function HQChartScriptWorker()
140605
140824
 
140606
140825
 
140607
140826
 
140608
- var HQCHART_VERSION="1.1.13589";
140827
+ var HQCHART_VERSION="1.1.13599";
140609
140828
 
140610
140829
  function PrintHQChartVersion()
140611
140830
  {