hqchart 1.1.14216 → 1.1.14223

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.
@@ -1989,7 +1989,80 @@ function JSReportChartContainer(uielement)
1989
1989
 
1990
1990
  this.OnRightMenu=function(x,y,e)
1991
1991
  {
1992
-
1992
+ this.PopupRightMenu(x,y,e);
1993
+ }
1994
+
1995
+
1996
+ this.PtInReportChart=function(x,y) //Type: 2=行 3=表头 4=固定行
1997
+ {
1998
+ var chart=this.GetReportChart();
1999
+ if (!chart) return null;
2000
+
2001
+ var row=chart.PtInHeader(x,y);
2002
+ if (row) return { Type:3, Row:row, X:x, Y:y };
2003
+
2004
+ row=chart.PtInFixedBody(x,y);
2005
+ if (row) return { Type:4, Row:row , X:x, Y:y };
2006
+
2007
+ row=chart.PtInBody(x,y);
2008
+ if (row) return { Type:2, Row:row , X:x, Y:y };
2009
+
2010
+ return { Type:-1, Row:null, X:x, Y:y };
2011
+ }
2012
+
2013
+ this.PopupRightMenu=function(x,y, e)
2014
+ {
2015
+ var data=this.PtInReportChart(x,y);
2016
+ if (!data) return;
2017
+ if (!this.JSPopMenu) return;
2018
+
2019
+ data.e=e;
2020
+ var menuData={ Menu:null, Position:JSPopMenu.POSITION_ID.RIGHT_MENU_ID };
2021
+ menuData.ClickCallback=(data)=>{ this.OnClickRightMenu(data); }
2022
+
2023
+ var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CREATE_RIGHT_MENU);
2024
+ if (event && event.Callback)
2025
+ {
2026
+ var sendData={ MenuData:menuData, Data:data };
2027
+ event.Callback(event, sendData, this);
2028
+ }
2029
+
2030
+ if (menuData.Menu) this.PopupMenuByRClick(menuData, x, y);
2031
+ }
2032
+
2033
+ //右键菜单
2034
+ this.PopupMenuByRClick=function(menuData, x, y)
2035
+ {
2036
+ if (!this.JSPopMenu) return;
2037
+
2038
+ var rtClient=this.UIElement.getBoundingClientRect();
2039
+ var rtScroll=GetScrollPosition();
2040
+
2041
+ x+=rtClient.left+rtScroll.Left;
2042
+ y+=rtClient.top+rtScroll.Top;
2043
+
2044
+ this.JSPopMenu.CreatePopMenu(menuData);
2045
+ this.JSPopMenu.PopupMenuByRight(x,y);
2046
+ }
2047
+
2048
+ //点击右键菜单
2049
+ this.OnClickRightMenu=function(data)
2050
+ {
2051
+ JSConsole.Chart.Log('[JSReportChartContainer::OnClickRightMenu] ',data);
2052
+ if (!data || !data.Data) return;
2053
+
2054
+ var cmdID=data.Data.ID; //命令ID
2055
+ var aryArgs=data.Data.Args; //参数
2056
+
2057
+ var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_MENU_COMMAND); //回调通知外部
2058
+ if (event && event.Callback)
2059
+ {
2060
+ var data={ PreventDefault:false, CommandID:cmdID, Args:aryArgs, SrcData:data };
2061
+ event.Callback(event,data,this);
2062
+ if (data.PreventDefault) return;
2063
+ }
2064
+
2065
+ this.ExecuteMenuCommand(cmdID, aryArgs);
1993
2066
  }
1994
2067
 
1995
2068
  this.UIOnMouseMove=function(e)
@@ -3608,6 +3681,36 @@ function JSReportChartContainer(uielement)
3608
3681
  if (IFrameSplitOperator.IsNumber(param))
3609
3682
  this.DeleteColumn(param, {Redraw:true});
3610
3683
  break;
3684
+ case JSCHART_MENU_ID.CMD_REPORT_CHANGE_COLUMN_ID:
3685
+ if (param!=null && aryArgs[1]) this.ChangeColumn(param, aryArgs[1], { Redraw:true})
3686
+ break;
3687
+ }
3688
+ }
3689
+
3690
+
3691
+ this.ChangeColumn=function(index, newColumn, option)
3692
+ {
3693
+ if (index<0) return;
3694
+ if (!newColumn) return;
3695
+
3696
+ var reportChart=this.GetReportChart();
3697
+ if (!reportChart) return;
3698
+
3699
+ if (!reportChart.ChangeColumn(index, newColumn)) return;
3700
+
3701
+ if (this.SortInfo && this.SortInfo.Field==index && this.SortInfo.Sort>0) //去掉排序
3702
+ {
3703
+ this.SortInfo.Field=-1;
3704
+ this.SortInfo.Sort=0;
3705
+ this.Data.Data=[];
3706
+ if (IFrameSplitOperator.IsNonEmptyArray(this.SourceData.Data))
3707
+ this.Data.Data=this.SourceData.Data.slice();
3708
+ }
3709
+
3710
+ if (option && option.Redraw)
3711
+ {
3712
+ this.SetSizeChange(true);
3713
+ this.Draw();
3611
3714
  }
3612
3715
  }
3613
3716
 
@@ -4690,6 +4793,134 @@ function ChartReport()
4690
4793
  this.ProgressBarConfig=CloneData(g_JSChartResource.Report.ProgressBar);
4691
4794
  }
4692
4795
 
4796
+ this.CreateColumnItem=function(item)
4797
+ {
4798
+ var colItem=this.GetDefaultColunm(item.Type);
4799
+ if (!colItem) return null;
4800
+
4801
+ if (item.Title) colItem.Title=item.Title;
4802
+ if (item.TextAlign) colItem.TextAlign=item.TextAlign;
4803
+ if (item.TextColor) colItem.TextColor=item.TextColor;
4804
+ if (item.HeaderColor) colItem.HeaderColor=item.HeaderColor;
4805
+ if (item.MaxText) colItem.MaxText=item.MaxText;
4806
+ if (item.MaxText2) colItem.MaxText=item.MaxText2;
4807
+ if (IFrameSplitOperator.IsNumber(item.Space)) colItem.Space=item.Space;
4808
+ if (item.ID) colItem.ID=item.ID;
4809
+ if (item.FullColBGColor) colItem.FullColBGColor=item.FullColBGColor; //整列背景色
4810
+ if (item.HeaderBGColor) colItem.HeaderBGColor=item.HeaderBGColor; //表头背景色
4811
+ if (IFrameSplitOperator.IsNumber(item.Sort)) colItem.Sort=item.Sort;
4812
+ if (IFrameSplitOperator.IsNumber(item.FixedWidth)) colItem.FixedWidth=item.FixedWidth;
4813
+ if (IFrameSplitOperator.IsBool(item.EnableDragWidth)) colItem.EnableDragWidth=item.EnableDragWidth;
4814
+ if (IFrameSplitOperator.IsBool(item.IsDrawCallback)) colItem.IsDrawCallback=item.IsDrawCallback;
4815
+ else colItem.IsDrawCallback=false;
4816
+
4817
+ if (IFrameSplitOperator.IsNumber(item.FloatPrecision)) colItem.FloatPrecision=item.FloatPrecision; //小数位数
4818
+ if (IFrameSplitOperator.IsNumber(item.ColorType)) colItem.ColorType=item.ColorType; //0=默认 1=(>0, =0, <0) 2=(>=0, <0)
4819
+ if (item.Icon) colItem.Icon=item.Icon;
4820
+ if (IFrameSplitOperator.IsBool(item.EnableChartTooltip)) colItem.EnableChartTooltip=item.EnableChartTooltip;
4821
+
4822
+ //点击表头弹出菜单
4823
+ if (IFrameSplitOperator.IsBool(item.EnablePopupHeaderMenu)) colItem.EnablePopupHeaderMenu=item.EnablePopupHeaderMenu;
4824
+
4825
+ if (item.Sort==1 || item.Sort==2) //1本地排序 2=远程排序
4826
+ {
4827
+ colItem.SortType=[1,2]; //默认 降序 ,升序
4828
+ if (IFrameSplitOperator.IsNonEmptyArray(item.SortType)) colItem.SortType=item.SortType.slice();
4829
+ }
4830
+
4831
+ if (item.Type==REPORT_COLUMN_ID.CUSTOM_STRING_TEXT_ID)
4832
+ {
4833
+ if (!IFrameSplitOperator.IsNumber(item.DataIndex) && !IFrameSplitOperator.IsNumber(item.BlockIndex)) return null;
4834
+ colItem.FormatType=0; //0=默认格式 1=长度不够使用...
4835
+ if (IFrameSplitOperator.IsNumber(item.DataIndex)) colItem.DataIndex=item.DataIndex; //数据在扩展数据索引列
4836
+ if (IFrameSplitOperator.IsNumber(item.BlockIndex)) colItem.BlockIndex=item.BlockIndex;
4837
+ if (IFrameSplitOperator.IsNumber(item.FormatType)) colItem.FormatType=item.FormatType; //输出样式
4838
+ }
4839
+ else if (item.Type==REPORT_COLUMN_ID.CUSTOM_NUMBER_TEXT_ID)
4840
+ {
4841
+ if (!IFrameSplitOperator.IsNumber(item.DataIndex) && !IFrameSplitOperator.IsNumber(item.BlockIndex)) return null;
4842
+ if (IFrameSplitOperator.IsNumber(item.DataIndex)) colItem.DataIndex=item.DataIndex; //数据在扩展数据索引列
4843
+ if (IFrameSplitOperator.IsNumber(item.BlockIndex)) colItem.BlockIndex=item.BlockIndex;
4844
+ colItem.Decimal=2;
4845
+ colItem.FormatType=0; //0=默认格式化 1=原始输出 2=科学计数 3=成交量格式化
4846
+ colItem.ColorType=0; //0=默认使用TextColor, 1=(>0涨,<0跌)2=(>昨收涨,<昨收跌)
4847
+ if (IFrameSplitOperator.IsNumber(item.Decimal)) colItem.Decimal=item.Decimal; //小数位数
4848
+ if (IFrameSplitOperator.IsNumber(item.FormatType)) colItem.FormatType=item.FormatType; //输出样式
4849
+ if (IFrameSplitOperator.IsNumber(item.ColorType)) colItem.ColorType=item.ColorType; //颜色属性
4850
+ }
4851
+ else if (item.Type==REPORT_COLUMN_ID.CUSTOM_DATETIME_TEXT_ID)
4852
+ {
4853
+ if (!IFrameSplitOperator.IsNumber(item.DataIndex) && !IFrameSplitOperator.IsNumber(item.BlockIndex)) return null;
4854
+ if (IFrameSplitOperator.IsNumber(item.DataIndex)) colItem.DataIndex=item.DataIndex; //数据在扩展数据索引列
4855
+ if (IFrameSplitOperator.IsNumber(item.BlockIndex)) colItem.BlockIndex=item.BlockIndex;
4856
+ colItem.FormatType=0; //0=yyyy-mm-dd 1=YYYY/MM/DD
4857
+ colItem.ValueType=0; //0=yyyymmdd 1=hhmmss
4858
+ if (IFrameSplitOperator.IsNumber(item.FormatType)) colItem.FormatType=item.FormatType; //输出样式
4859
+ if (IFrameSplitOperator.IsNumber(item.ValueType)) colItem.FormatType=item.ValueType; //输出样式
4860
+
4861
+ }
4862
+ else if (item.Type==REPORT_COLUMN_ID.CUSTOM_CHECKBOX_ID)
4863
+ {
4864
+ if (!IFrameSplitOperator.IsNumber(item.DataIndex) && !IFrameSplitOperator.IsNumber(item.BlockIndex)) return null;
4865
+ if (IFrameSplitOperator.IsNumber(item.DataIndex)) colItem.DataIndex=item.DataIndex; //数据在扩展数据索引列
4866
+ if (IFrameSplitOperator.IsNumber(item.BlockIndex)) colItem.BlockIndex=item.BlockIndex;
4867
+ if (item.CheckBox) colItem.CheckBox=CloneData(item.CheckBox);
4868
+ else colItem.CheckBox=this.CheckBoxConfig;
4869
+ }
4870
+ else if (item.Type==REPORT_COLUMN_ID.CUSTOM_BUTTON_ID)
4871
+ {
4872
+ if (!IFrameSplitOperator.IsNumber(item.DataIndex) && !IFrameSplitOperator.IsNumber(item.BlockIndex)) return null;
4873
+ if (IFrameSplitOperator.IsNumber(item.DataIndex)) colItem.DataIndex=item.DataIndex; //数据在扩展数据索引列
4874
+ if (IFrameSplitOperator.IsNumber(item.BlockIndex)) colItem.BlockIndex=item.BlockIndex;
4875
+ if (item.Button) colItem.Button=CloneData(item.Button);
4876
+ else colItem.Button=this.ButtonConfig;
4877
+ }
4878
+ else if (this.IsReserveButtonColumn(item.Type))
4879
+ {
4880
+ if (item.Button) colItem.Button=CloneData(item.Button);
4881
+ else colItem.Button=this.ButtonConfig;
4882
+ }
4883
+ else if (item.Type==REPORT_COLUMN_ID.CUSTOM_PROGRESS_ID)
4884
+ {
4885
+ if (!IFrameSplitOperator.IsNumber(item.DataIndex) && !IFrameSplitOperator.IsNumber(item.BlockIndex)) return null;
4886
+ if (IFrameSplitOperator.IsNumber(item.DataIndex)) colItem.DataIndex=item.DataIndex; //数据在扩展数据索引列
4887
+ if (IFrameSplitOperator.IsNumber(item.BlockIndex)) colItem.BlockIndex=item.BlockIndex;
4888
+ if (item.ProgressBar) colItem.ProgressBar=CloneData(item.ProgressBar);
4889
+ else colItem.ProgressBar=this.ProgressBarConfig;
4890
+ }
4891
+ else if (this.IsReserveProgressBarColumn(item.Type))
4892
+ {
4893
+ if (item.ProgressBar) colItem.ProgressBar=CloneData(item.ProgressBar);
4894
+ else colItem.ProgressBar=this.ProgressBarConfig;
4895
+ }
4896
+ else if (item.Type==REPORT_COLUMN_ID.CUSTOM_LINK_ID)
4897
+ {
4898
+ if (!IFrameSplitOperator.IsNumber(item.DataIndex) && !IFrameSplitOperator.IsNumber(item.BlockIndex)) return null;
4899
+ if (IFrameSplitOperator.IsNumber(item.DataIndex)) colItem.DataIndex=item.DataIndex; //数据在扩展数据索引列
4900
+ if (IFrameSplitOperator.IsNumber(item.BlockIndex)) colItem.BlockIndex=item.BlockIndex;
4901
+ if (item.Link) colItem.Link=CloneData(item.Link);
4902
+ else colItem.Link=this.LinkConfig;
4903
+ }
4904
+ else if (item.Type==REPORT_COLUMN_ID.CUSTOM_ICON_ID)
4905
+ {
4906
+
4907
+ }
4908
+ else if (item.Type==REPORT_COLUMN_ID.CLOSE_LINE_ID)
4909
+ {
4910
+ if (IFrameSplitOperator.IsBool(item.IsDrawArea)) colItem.IsDrawArea=item.IsDrawArea;
4911
+ }
4912
+ else if(item.Type==REPORT_COLUMN_ID.TIME_ID)
4913
+ {
4914
+ if (IFrameSplitOperator.IsNumber(item.ValueType)) colItem.ValueType=item.ValueType;
4915
+ }
4916
+ else if (item.Type==REPORT_COLUMN_ID.DATE_ID)
4917
+ {
4918
+ if (IFrameSplitOperator.IsNumber(item.FormatType)) colItem.FormatType=item.FormatType;
4919
+ }
4920
+
4921
+ return colItem;
4922
+ }
4923
+
4693
4924
  this.SetColumn=function(aryColumn)
4694
4925
  {
4695
4926
  if (!IFrameSplitOperator.IsNonEmptyArray(aryColumn)) return;
@@ -4698,130 +4929,9 @@ function ChartReport()
4698
4929
  for(var i=0;i<aryColumn.length;++i)
4699
4930
  {
4700
4931
  var item=aryColumn[i];
4701
- var colItem=this.GetDefaultColunm(item.Type);
4932
+ var colItem=this.CreateColumnItem(item);
4702
4933
  if (!colItem) continue;
4703
4934
 
4704
- if (item.Title) colItem.Title=item.Title;
4705
- if (item.TextAlign) colItem.TextAlign=item.TextAlign;
4706
- if (item.TextColor) colItem.TextColor=item.TextColor;
4707
- if (item.HeaderColor) colItem.HeaderColor=item.HeaderColor;
4708
- if (item.MaxText) colItem.MaxText=item.MaxText;
4709
- if (item.MaxText2) colItem.MaxText=item.MaxText2;
4710
- if (IFrameSplitOperator.IsNumber(item.Space)) colItem.Space=item.Space;
4711
- if (item.ID) colItem.ID=item.ID;
4712
- if (item.FullColBGColor) colItem.FullColBGColor=item.FullColBGColor; //整列背景色
4713
- if (item.HeaderBGColor) colItem.HeaderBGColor=item.HeaderBGColor; //表头背景色
4714
- if (IFrameSplitOperator.IsNumber(item.Sort)) colItem.Sort=item.Sort;
4715
- if (IFrameSplitOperator.IsNumber(item.FixedWidth)) colItem.FixedWidth=item.FixedWidth;
4716
- if (IFrameSplitOperator.IsBool(item.EnableDragWidth)) colItem.EnableDragWidth=item.EnableDragWidth;
4717
- if (IFrameSplitOperator.IsBool(item.IsDrawCallback)) colItem.IsDrawCallback=item.IsDrawCallback;
4718
- else colItem.IsDrawCallback=false;
4719
-
4720
- if (IFrameSplitOperator.IsNumber(item.FloatPrecision)) colItem.FloatPrecision=item.FloatPrecision; //小数位数
4721
- if (IFrameSplitOperator.IsNumber(item.ColorType)) colItem.ColorType=item.ColorType; //0=默认 1=(>0, =0, <0) 2=(>=0, <0)
4722
- if (item.Icon) colItem.Icon=item.Icon;
4723
- if (IFrameSplitOperator.IsBool(item.EnableChartTooltip)) colItem.EnableChartTooltip=item.EnableChartTooltip;
4724
-
4725
- //点击表头弹出菜单
4726
- if (IFrameSplitOperator.IsBool(item.EnablePopupHeaderMenu)) colItem.EnablePopupHeaderMenu=item.EnablePopupHeaderMenu;
4727
-
4728
- if (item.Sort==1 || item.Sort==2) //1本地排序 2=远程排序
4729
- {
4730
- colItem.SortType=[1,2]; //默认 降序 ,升序
4731
- if (IFrameSplitOperator.IsNonEmptyArray(item.SortType)) colItem.SortType=item.SortType.slice();
4732
- }
4733
-
4734
- if (item.Type==REPORT_COLUMN_ID.CUSTOM_STRING_TEXT_ID)
4735
- {
4736
- if (!IFrameSplitOperator.IsNumber(item.DataIndex) && !IFrameSplitOperator.IsNumber(item.BlockIndex)) continue;
4737
- colItem.FormatType=0; //0=默认格式 1=长度不够使用...
4738
- if (IFrameSplitOperator.IsNumber(item.DataIndex)) colItem.DataIndex=item.DataIndex; //数据在扩展数据索引列
4739
- if (IFrameSplitOperator.IsNumber(item.BlockIndex)) colItem.BlockIndex=item.BlockIndex;
4740
- if (IFrameSplitOperator.IsNumber(item.FormatType)) colItem.FormatType=item.FormatType; //输出样式
4741
- }
4742
- else if (item.Type==REPORT_COLUMN_ID.CUSTOM_NUMBER_TEXT_ID)
4743
- {
4744
- if (!IFrameSplitOperator.IsNumber(item.DataIndex) && !IFrameSplitOperator.IsNumber(item.BlockIndex)) continue;
4745
- if (IFrameSplitOperator.IsNumber(item.DataIndex)) colItem.DataIndex=item.DataIndex; //数据在扩展数据索引列
4746
- if (IFrameSplitOperator.IsNumber(item.BlockIndex)) colItem.BlockIndex=item.BlockIndex;
4747
- colItem.Decimal=2;
4748
- colItem.FormatType=0; //0=默认格式化 1=原始输出 2=科学计数 3=成交量格式化
4749
- colItem.ColorType=0; //0=默认使用TextColor, 1=(>0涨,<0跌)2=(>昨收涨,<昨收跌)
4750
- if (IFrameSplitOperator.IsNumber(item.Decimal)) colItem.Decimal=item.Decimal; //小数位数
4751
- if (IFrameSplitOperator.IsNumber(item.FormatType)) colItem.FormatType=item.FormatType; //输出样式
4752
- if (IFrameSplitOperator.IsNumber(item.ColorType)) colItem.ColorType=item.ColorType; //颜色属性
4753
- }
4754
- else if (item.Type==REPORT_COLUMN_ID.CUSTOM_DATETIME_TEXT_ID)
4755
- {
4756
- if (!IFrameSplitOperator.IsNumber(item.DataIndex) && !IFrameSplitOperator.IsNumber(item.BlockIndex)) continue;
4757
- if (IFrameSplitOperator.IsNumber(item.DataIndex)) colItem.DataIndex=item.DataIndex; //数据在扩展数据索引列
4758
- if (IFrameSplitOperator.IsNumber(item.BlockIndex)) colItem.BlockIndex=item.BlockIndex;
4759
- colItem.FormatType=0; //0=yyyy-mm-dd 1=YYYY/MM/DD
4760
- colItem.ValueType=0; //0=yyyymmdd 1=hhmmss
4761
- if (IFrameSplitOperator.IsNumber(item.FormatType)) colItem.FormatType=item.FormatType; //输出样式
4762
- if (IFrameSplitOperator.IsNumber(item.ValueType)) colItem.FormatType=item.ValueType; //输出样式
4763
-
4764
- }
4765
- else if (item.Type==REPORT_COLUMN_ID.CUSTOM_CHECKBOX_ID)
4766
- {
4767
- if (!IFrameSplitOperator.IsNumber(item.DataIndex) && !IFrameSplitOperator.IsNumber(item.BlockIndex)) continue;
4768
- if (IFrameSplitOperator.IsNumber(item.DataIndex)) colItem.DataIndex=item.DataIndex; //数据在扩展数据索引列
4769
- if (IFrameSplitOperator.IsNumber(item.BlockIndex)) colItem.BlockIndex=item.BlockIndex;
4770
- if (item.CheckBox) colItem.CheckBox=CloneData(item.CheckBox);
4771
- else colItem.CheckBox=this.CheckBoxConfig;
4772
- }
4773
- else if (item.Type==REPORT_COLUMN_ID.CUSTOM_BUTTON_ID)
4774
- {
4775
- if (!IFrameSplitOperator.IsNumber(item.DataIndex) && !IFrameSplitOperator.IsNumber(item.BlockIndex)) continue;
4776
- if (IFrameSplitOperator.IsNumber(item.DataIndex)) colItem.DataIndex=item.DataIndex; //数据在扩展数据索引列
4777
- if (IFrameSplitOperator.IsNumber(item.BlockIndex)) colItem.BlockIndex=item.BlockIndex;
4778
- if (item.Button) colItem.Button=CloneData(item.Button);
4779
- else colItem.Button=this.ButtonConfig;
4780
- }
4781
- else if (this.IsReserveButtonColumn(item.Type))
4782
- {
4783
- if (item.Button) colItem.Button=CloneData(item.Button);
4784
- else colItem.Button=this.ButtonConfig;
4785
- }
4786
- else if (item.Type==REPORT_COLUMN_ID.CUSTOM_PROGRESS_ID)
4787
- {
4788
- if (!IFrameSplitOperator.IsNumber(item.DataIndex) && !IFrameSplitOperator.IsNumber(item.BlockIndex)) continue;
4789
- if (IFrameSplitOperator.IsNumber(item.DataIndex)) colItem.DataIndex=item.DataIndex; //数据在扩展数据索引列
4790
- if (IFrameSplitOperator.IsNumber(item.BlockIndex)) colItem.BlockIndex=item.BlockIndex;
4791
- if (item.ProgressBar) colItem.ProgressBar=CloneData(item.ProgressBar);
4792
- else colItem.ProgressBar=this.ProgressBarConfig;
4793
- }
4794
- else if (this.IsReserveProgressBarColumn(item.Type))
4795
- {
4796
- if (item.ProgressBar) colItem.ProgressBar=CloneData(item.ProgressBar);
4797
- else colItem.ProgressBar=this.ProgressBarConfig;
4798
- }
4799
- else if (item.Type==REPORT_COLUMN_ID.CUSTOM_LINK_ID)
4800
- {
4801
- if (!IFrameSplitOperator.IsNumber(item.DataIndex) && !IFrameSplitOperator.IsNumber(item.BlockIndex)) continue;
4802
- if (IFrameSplitOperator.IsNumber(item.DataIndex)) colItem.DataIndex=item.DataIndex; //数据在扩展数据索引列
4803
- if (IFrameSplitOperator.IsNumber(item.BlockIndex)) colItem.BlockIndex=item.BlockIndex;
4804
- if (item.Link) colItem.Link=CloneData(item.Link);
4805
- else colItem.Link=this.LinkConfig;
4806
- }
4807
- else if (item.Type==REPORT_COLUMN_ID.CUSTOM_ICON_ID)
4808
- {
4809
-
4810
- }
4811
- else if (item.Type==REPORT_COLUMN_ID.CLOSE_LINE_ID)
4812
- {
4813
- if (IFrameSplitOperator.IsBool(item.IsDrawArea)) colItem.IsDrawArea=item.IsDrawArea;
4814
- }
4815
- else if(item.Type==REPORT_COLUMN_ID.TIME_ID)
4816
- {
4817
- if (IFrameSplitOperator.IsNumber(item.ValueType)) colItem.ValueType=item.ValueType;
4818
- }
4819
- else if (item.Type==REPORT_COLUMN_ID.DATE_ID)
4820
- {
4821
- if (IFrameSplitOperator.IsNumber(item.FormatType)) colItem.FormatType=item.FormatType;
4822
- }
4823
-
4824
-
4825
4935
  this.Column.push(colItem);
4826
4936
  }
4827
4937
  }
@@ -4851,6 +4961,17 @@ function ChartReport()
4851
4961
  return true;
4852
4962
  }
4853
4963
 
4964
+ this.ChangeColumn=function(index, newColumn)
4965
+ {
4966
+ if (index<0 || index>=this.Column.length) return false;
4967
+
4968
+ var colItem=this.CreateColumnItem(newColumn);
4969
+ if (!colItem) return false;
4970
+ this.Column[index]=colItem;
4971
+
4972
+ return true;
4973
+ }
4974
+
4854
4975
  this.GetXScrollPos=function()
4855
4976
  {
4856
4977
  return this.Data.XOffset;
@@ -7435,7 +7556,9 @@ function ChartReport()
7435
7556
  this.Canvas.lineTo(x,yCenter);
7436
7557
  this.Canvas.lineTo(ptFirst.X,yCenter);
7437
7558
  this.Canvas.closePath();
7438
- this.SetFillStyle(this.CloseLineConfig.AreaColor,left,top, left,bottom);
7559
+ var areaColor=this.CloseLineConfig.AreaColor;
7560
+ if (lineData.AreaColor) areaColor=lineData.AreaColor;
7561
+ this.SetFillStyle(areaColor,left,top, left,bottom);
7439
7562
  this.Canvas.fill();
7440
7563
  }
7441
7564
  }
@@ -151,6 +151,10 @@ HQData.NetworkFilter=function(data, callback)
151
151
  HQData.FinOne_RequestData(data,callback);
152
152
  break;
153
153
 
154
+ case "JSSymbolData::GetIndexData":
155
+ HQData.INDEX_RequestData(data,callback);
156
+ break;
157
+
154
158
  //////////////////////////////////////////////////////
155
159
  //报价列表数据
156
160
  case "JSReportChartContainer::RequestStockListData":
@@ -1026,6 +1030,30 @@ HQData.FinOne_RequestData=function(data,callback)
1026
1030
  }
1027
1031
 
1028
1032
 
1033
+ HQData.INDEX_RequestData=function(data,callback)
1034
+ {
1035
+ data.PreventDefault=true;
1036
+ var period=data.Period;
1037
+ var symbol=data.Request.Data.symbol;
1038
+ var indexSymbol="000001.sh";
1039
+ var dateRange=data.Request.Data.dateRange;
1040
+ var aryData=[];
1041
+ if (ChartData.IsMinutePeriod(period, true))
1042
+ {
1043
+ var fullData=HQData.GetM1KLineDataBySymbol(symbol);
1044
+ if (fullData) aryData=HQData.GetKLineDataByDateTime(fullData, dateRange.Start.Date, dateRange.Start.Time, dateRange.End.Date, dateRange.End.Time);
1045
+ }
1046
+ else if (ChartData.IsDayPeriod(period,true))
1047
+ {
1048
+ var fullData=HQData.GetDayKLineDataBySymbol(indexSymbol);
1049
+ if (fullData) aryData=HQData.GetKLineDataByDate(fullData, dateRange.Start.Date, dateRange.End.Date);
1050
+ }
1051
+
1052
+ var hqchartData={ name:indexSymbol, symbol:indexSymbol, data:aryData, ver:2.0 };
1053
+
1054
+ callback(hqchartData);
1055
+ }
1056
+
1029
1057
  //////////////////////////////////////////////////////////////////////////////////////
1030
1058
  // 报价列表
1031
1059
  //
@@ -1207,6 +1235,13 @@ HQData.Report_RequestStockData=function(data, callback)
1207
1235
  extendData[8]=(Math.round(Math.random()*60))/100;
1208
1236
 
1209
1237
 
1238
+ newItem[32]=HQData.Report_CreateMinuteData(newItem[2]);
1239
+
1240
+ //K线
1241
+ var kData={ Data:[newItem[3], newItem[4], newItem[5], newItem[6]] };
1242
+ newItem[33]=kData;
1243
+
1244
+
1210
1245
  newItem[101]=105.0;
1211
1246
  newItem[201]=`A-[${HQData.GetRandomTestData(-90,90)}]-B`;
1212
1247
 
@@ -1233,6 +1268,36 @@ HQData.Report_RequestStockData=function(data, callback)
1233
1268
  }, 500);
1234
1269
  }
1235
1270
 
1271
+ HQData.Report_CreateMinuteData=function(yClose)
1272
+ {
1273
+ var minuteData={ Data:[], Max:null, Min:null, Count:242, YClose:yClose };
1274
+ var TEST_DATA=[0.01, -0.02, 0.03, -0.05, -0.01, 0.02, 0.05, 0.01, 0.04, -0.04];
1275
+ var value=yClose;
1276
+ for(var i=0;i<minuteData.Count;++i)
1277
+ {
1278
+ var index=Math.ceil(Math.random()*10);
1279
+
1280
+ value+=(yClose*TEST_DATA[index%TEST_DATA.length]); //生成模拟的数据
1281
+ minuteData.Data[i]=value;
1282
+
1283
+ if (minuteData.Max==null || minuteData.Max<value) minuteData.Max=value;
1284
+ if (minuteData.Min==null || minuteData.Min>value) minuteData.Min=value;
1285
+ }
1286
+
1287
+ if (value>yClose)
1288
+ {
1289
+ minuteData.Color="rgb(255,0,0)";
1290
+ minuteData.AreaColor="rgba(255,0,0,0.2)";
1291
+ }
1292
+ else if (value<yClose)
1293
+ {
1294
+ minuteData.Color="rgb(4,139,34)";
1295
+ minuteData.AreaColor="rgba(4,139,34,0.2)";
1296
+ }
1297
+
1298
+ return minuteData;
1299
+ }
1300
+
1236
1301
  HQData.Report_RequestStockSortData=function(data, callback)
1237
1302
  {
1238
1303
  var blockID=data.Request.Data.symbol; //板块代码