hqchart 1.1.13804 → 1.1.13816

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.
@@ -139,6 +139,12 @@ HQData.NetworkFilter=function(data, callback)
139
139
  case "JSSymbolData::GetBKJYOne":
140
140
  HQData.BKJYOne_RequestData(data,callback);
141
141
  break;
142
+ case "JSSymbolData::GetFinValue":
143
+ HQData.FinValue_RequestData(data,callback);
144
+ break;
145
+ case "JSSymbolData::GetFinOne":
146
+ HQData.FinOne_RequestData(data,callback);
147
+ break;
142
148
 
143
149
  //////////////////////////////////////////////////////
144
150
  //报价列表数据
@@ -895,6 +901,39 @@ HQData.BKJYOne_RequestData=function(data,callback)
895
901
  callback({ Date:20230509, Value:value});
896
902
  }
897
903
 
904
+ HQData.FinValue_RequestData=function(data,callback)
905
+ {
906
+ data.PreventDefault=true;
907
+ var symbol=data.Request.Data.symbol;
908
+ var id=data.Request.Data.Args[0];
909
+
910
+ var aryData=[];
911
+ var kData=data.Self.Data;
912
+ for(var i=0;i<kData.Data.length;++i)
913
+ {
914
+ var kItem=kData.Data[i];
915
+ if (i%60==21)
916
+ {
917
+ var value=HQData.GetRandomTestData(10,20)
918
+ aryData.push({ Date:kItem.Date, Time:kItem.Time, Value:value });
919
+ }
920
+ }
921
+
922
+ callback(aryData);
923
+ }
924
+
925
+ HQData.FinOne_RequestData=function(data,callback)
926
+ {
927
+ data.PreventDefault=true;
928
+ var symbol=data.Request.Data.symbol;
929
+ var id=data.Request.Data.Args[0];
930
+ var year=data.Request.Data.Args[1];
931
+ var day=data.Request.Data.Args[2];
932
+
933
+ var value=HQData.GetRandomTestData(80,90);
934
+ callback({ Date:20230509, Value:value});
935
+ }
936
+
898
937
 
899
938
  //////////////////////////////////////////////////////////////////////////////////////
900
939
  // 报价列表
@@ -47941,6 +47941,17 @@ function RectSelectPaint()
47941
47941
  this.AreaColor=g_JSChartResource.RectSelect.AreaColor; //面积
47942
47942
  this.SubAreaColor=g_JSChartResource.RectSelect.SubAreaColor;
47943
47943
 
47944
+ //标记图标
47945
+ this.MarkConfig=
47946
+ {
47947
+ Family:g_JSChartResource.RectSelect.Mark.Family,
47948
+ Text:g_JSChartResource.RectSelect.Mark.Text,
47949
+ Color:g_JSChartResource.RectSelect.Mark.Color,
47950
+ Size:g_JSChartResource.RectSelect.Mark.Size,
47951
+ IsShow:false,
47952
+ Position: { Index:g_JSChartResource.RectSelect.Mark.Position.Index, Top:g_JSChartResource.RectSelect.Mark.Position.Top }
47953
+ }
47954
+
47944
47955
  this.FirstPoint;
47945
47956
  this.SecondPoint;
47946
47957
  this.CenterPoint;
@@ -47988,6 +47999,17 @@ function RectSelectPaint()
47988
47999
  if (IFrameSplitOperator.IsNumber(item.Position)) this.ShowRangeText.Position=item.Position;
47989
48000
  if (IFrameSplitOperator.IsNumber(item.SubPosition)) this.ShowRangeText.SubPosition=item.SubPosition;
47990
48001
  }
48002
+
48003
+ if (option.Mark)
48004
+ {
48005
+ var item=option.Mark;
48006
+ if (IFrameSplitOperator.IsBool(item.IsShow)) this.MarkConfig.IsShow=item.IsShow;
48007
+ if (item.Position)
48008
+ {
48009
+ if (IFrameSplitOperator.IsNumber(item.Position.Index)) this.MarkConfig.Position.Index=item.Position.Index;
48010
+ if (item.Position.Top) this.MarkConfig.Position.Top=item.Position.Top;
48011
+ }
48012
+ }
47991
48013
  }
47992
48014
  }
47993
48015
 
@@ -48460,6 +48482,7 @@ function RectSelectPaint()
48460
48482
 
48461
48483
  this.DrawLines(aryLines);
48462
48484
  this.DrawArea(startPoint, endPoint, startDate, startEnd, this.AreaColor);
48485
+ this.DrawMark(startPoint, endPoint);
48463
48486
 
48464
48487
  if (this.SubClient && this.SubClient.Start && this.SubClient.End)
48465
48488
  {
@@ -48693,6 +48716,45 @@ function RectSelectPaint()
48693
48716
  if (IFrameSplitOperator.IsNumber(type)) this.DragRect.push( {Rect:rtArea, Type:type} );
48694
48717
  }
48695
48718
  }
48719
+
48720
+ this.DrawMark=function(startPoint,endPoint)
48721
+ {
48722
+ if (!startPoint ||!endPoint) return;
48723
+
48724
+ if (!this.ChartFrame || !this.ChartFrame.SubFrame) return;
48725
+ var subFrame=this.ChartFrame.SubFrame[0].Frame;
48726
+ if (!subFrame) return;
48727
+
48728
+ if (!this.MarkConfig) return;
48729
+ var config=this.MarkConfig;
48730
+ if (!config.IsShow) return;
48731
+
48732
+ var font=`${config.Size}px ${config.Family}`;
48733
+ this.Canvas.font=font;
48734
+ var top=null;
48735
+ switch(config.Position.Top)
48736
+ {
48737
+ case "TopEx":
48738
+ top=subFrame.ChartBorder.GetTopEx();
48739
+ break;
48740
+ case "Top":
48741
+ top=subFrame.ChartBorder.GetTop();
48742
+ break;
48743
+ case "TopTitle":
48744
+ top=subFrame.ChartBorder.GetTopTitle();
48745
+ break;
48746
+ default:
48747
+ return;
48748
+ }
48749
+
48750
+ var xText=startPoint.X;
48751
+ var yText=top;
48752
+
48753
+ this.Canvas.textAlign="center";
48754
+ this.Canvas.textBaseline="bottom";
48755
+ this.Canvas.fillStyle=config.Color;
48756
+ this.Canvas.fillText(config.Text,xText,yText);
48757
+ }
48696
48758
  }
48697
48759
 
48698
48760
  //鼠标拖动选中区域
@@ -72821,6 +72883,8 @@ function JSChartResource()
72821
72883
  RangeTextSubColor:"rgb(255,255,255)",
72822
72884
  RangeTextSubFont:12*GetDevicePixelRatio() +"px 微软雅黑",
72823
72885
  RangeTextSubBGColor:'rgb(54,54,54)',
72886
+
72887
+ Mark:{ Family:'iconfont', Text:'\ue695' , Color:'rgb(250,0,0)', Size:15*GetDevicePixelRatio(), Position:{ Index:0, Top:"TopEx" } }
72824
72888
  }
72825
72889
 
72826
72890
  //选中图形
@@ -73677,6 +73741,20 @@ function JSChartResource()
73677
73741
  if (item.RangeTextSubColor) this.RectSelect.RangeTextSubColor=item.RangeTextSubColor;
73678
73742
  if (item.RangeTextSubFont) this.RectSelect.RangeTextSubFont=item.RangeTextSubFont;
73679
73743
  if (item.RangeTextSubBGColor) this.RectSelect.RangeTextSubBGColor=item.RangeTextSubBGColor;
73744
+
73745
+ if (item.Mark)
73746
+ {
73747
+ var subItem=item.Mark;
73748
+ if (subItem.Family) this.RectSelect.Mark.Family=subItem.Family;
73749
+ if (subItem.Text) this.RectSelect.Mark.Text=subItem.Text;
73750
+ if (subItem.Color) this.RectSelect.Mark.Color=subItem.Color;
73751
+ if (IFrameSplitOperator.IsNumber(subItem.Size)) this.RectSelect.Mark.Size=subItem.Size;
73752
+ if (subItem.Position)
73753
+ {
73754
+ if (subItem.Position.Top) this.RectSelect.Mark.Position.Top=subItem.Position.Top;
73755
+ if (IFrameSplitOperator.IsNumber(subItem.Position.Index)) this.RectSelect.Mark.Position.Index=subItem.Position.Index;
73756
+ }
73757
+ }
73680
73758
  }
73681
73759
 
73682
73760
  if (style.RectDrag)
@@ -76252,6 +76330,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
76252
76330
  if (!this.PopMinuteChart) return;
76253
76331
  if (!data.Tooltip || !data.Chart) return;
76254
76332
 
76333
+ var pixelRatio=GetDevicePixelRatio();
76255
76334
  var rtClient=this.UIElement.getBoundingClientRect();
76256
76335
  var rtScroll=GetScrollPosition();
76257
76336
 
@@ -76261,7 +76340,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
76261
76340
  var date=data.Tooltip.Data.Date;
76262
76341
  var symbol=data.Chart.Symbol;
76263
76342
 
76264
- this.PopMinuteChart.Show({ Date:date, Symbol:symbol, Data:data.Tooltip.Data }, x,y);
76343
+ this.PopMinuteChart.Show({ Date:date, Symbol:symbol, Data:data.Tooltip.Data }, x/pixelRatio,y/pixelRatio);
76265
76344
  }
76266
76345
 
76267
76346
 
@@ -112977,54 +113056,6 @@ function JSSymbolData(ast,option,jsExecute)
112977
113056
  return financeData.get(id);
112978
113057
  }
112979
113058
 
112980
- this.GetFinOne=function(jobItem)
112981
- {
112982
- var aryArgs=this.JobArgumentsToArray(jobItem, 3);
112983
- var key=this.GetStockDataKey(jobItem,aryArgs);
112984
- if (this.StockData.has(key)) return this.Execute.RunNextJob();
112985
- var self=this;
112986
- if (this.NetworkFilter)
112987
- {
112988
- var dateRange=this.Data.GetDateRange();
112989
- var obj=
112990
- {
112991
- Name:'JSSymbolData::GetFinOne', //类名::
112992
- Explain:'财务数据FINONE(ID,Y,MMDD)',
112993
- JobID:jobItem.ID,
112994
- Request:{ Url:self.StockHistoryDayApiUrl, Type:'POST', Data:{ Args:aryArgs, symbol: this.Symbol, daterange:dateRange } },
112995
- Self:this,
112996
- PreventDefault:false
112997
- };
112998
- this.NetworkFilter(obj, function(recvData)
112999
- {
113000
- self.RecvStockValue(recvData,jobItem,key,1);
113001
- self.Execute.RunNextJob();
113002
- });
113003
-
113004
- if (obj.PreventDefault==true) return; //已被上层替换,不调用默认的网络请求
113005
- }
113006
-
113007
- var apiDownload=new DownloadFinOneData(
113008
- {
113009
- Job:jobItem,
113010
- Symbol:this.Symbol,
113011
- Url:this.StockHistoryDayApiUrl,
113012
- Args:aryArgs,
113013
- DataKey:key,
113014
- Callback:function(recvData, jobItem, key)
113015
- {
113016
- self.RecvStockValue(recvData, jobItem, key,1);
113017
- self.Execute.RunNextJob();
113018
- },
113019
- ErrorCallback:function(strError)
113020
- {
113021
- self.AddStockValueError(key,strError);
113022
- }
113023
- });
113024
-
113025
- apiDownload.Download();
113026
- }
113027
-
113028
113059
  this.GetStockDataKey=function(jobItem, aryArgs)
113029
113060
  {
113030
113061
  var key=jobItem.FunctionName;
@@ -113042,55 +113073,6 @@ function JSSymbolData(ast,option,jsExecute)
113042
113073
  return key;
113043
113074
  }
113044
113075
 
113045
- this.GetFinValue=function(jobItem)
113046
- {
113047
- var aryArgs=this.JobArgumentsToArray(jobItem, 1);
113048
- var lID=aryArgs[0];
113049
- var key=this.GetStockDataKey(jobItem,aryArgs);
113050
- if (this.StockData.has(key)) return this.Execute.RunNextJob();
113051
- var self=this;
113052
- if (this.NetworkFilter)
113053
- {
113054
- var dateRange=this.Data.GetDateRange();
113055
- var obj=
113056
- {
113057
- Name:'JSSymbolData::GetFinValue', //类名::
113058
- Explain:'财务数据FINVALUE(ID)',
113059
- JobID:jobItem.ID,
113060
- Request:{ Url:self.StockHistoryDayApiUrl, Type:'POST', Data:{ id:lID, symbol: this.Symbol, daterange:dateRange } },
113061
- Self:this,
113062
- PreventDefault:false
113063
- };
113064
- this.NetworkFilter(obj, function(recvData)
113065
- {
113066
- self.RecvStockValue(recvData,jobItem,key,0);
113067
- self.Execute.RunNextJob();
113068
- });
113069
-
113070
- if (obj.PreventDefault==true) return; //已被上层替换,不调用默认的网络请求
113071
- }
113072
-
113073
- var apiDownload=new DownloadFinValueData(
113074
- {
113075
- Job:jobItem,
113076
- Symbol:this.Symbol,
113077
- Url:this.StockHistoryDayApiUrl,
113078
- Args:aryArgs,
113079
- DataKey:key,
113080
- Callback:function(recvData, jobItem, key)
113081
- {
113082
- self.RecvStockValue(recvData, jobItem, key,0);
113083
- self.Execute.RunNextJob();
113084
- },
113085
- ErrorCallback:function(strError)
113086
- {
113087
- self.AddStockValueError(key,strError);
113088
- }
113089
- });
113090
-
113091
- apiDownload.Download();
113092
- }
113093
-
113094
113076
  this.GetFinance=function(jobItem)
113095
113077
  {
113096
113078
  var aryArgs=this.JobArgumentsToArray(jobItem, 1);
@@ -115420,6 +115402,16 @@ var JS_ARRAY_PROFESSIONAL_FINANCE=
115420
115402
  Name:"BKJYONE", JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_BKJYONE,
115421
115403
  Explain:"板块交易类数据BKJYONE(ID,N,Y,MMDD)", FuncName:"JSSymbolData::GetBKJYOne",ArgCount:4
115422
115404
  },
115405
+ {
115406
+ Name:"FINVALUE", JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_FINVALUE,
115407
+ Explain:"财务数据FINVALUE(ID)", FuncName:"JSSymbolData::GetFinValue",ArgCount:1
115408
+ },
115409
+ {
115410
+ Name:"FINONE", JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_FINONE,
115411
+ Explain:"财务数据FINONE(ID,Y,MMDD)", FuncName:"JSSymbolData::GetFinOne",ArgCount:3
115412
+ }
115413
+
115414
+
115423
115415
  ];
115424
115416
 
115425
115417
  function JSExecute(ast,option)
@@ -115628,14 +115620,12 @@ function JSExecute(ast,option)
115628
115620
  case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_SECTION_SF:
115629
115621
  return this.SymbolData.GetSectionFinanceData(jobItem); //财务截面报告数据
115630
115622
 
115631
- case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_FINONE:
115632
- return this.SymbolData.GetFinOne(jobItem);
115633
- case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_FINVALUE:
115634
- return this.SymbolData.GetFinValue(jobItem);
115635
115623
  case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_FINANCE:
115636
115624
  return this.SymbolData.GetFinance(jobItem);
115637
115625
 
115638
115626
  //专业财务数据
115627
+ case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_FINONE:
115628
+ case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_FINVALUE:
115639
115629
  case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_GPJYVALUE:
115640
115630
  case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_GPJYONE:
115641
115631
  case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_SCJYVALUE:
@@ -124005,349 +123995,6 @@ ScriptIndexConsole.SetDomain = function (domain, cacheDomain) //修改API地
124005
123995
  JSComplier.SetDomain(domain,cacheDomain);
124006
123996
  }
124007
123997
 
124008
- //////////////////////////////////////////////////////////////////////////////////////////////
124009
- //内置财务数据下载
124010
- //
124011
- function DownloadFinValueData(obj)
124012
- {
124013
- this.Url=obj.Url;
124014
- this.Job=obj.Job;
124015
- this.Symbol=obj.Symbol;
124016
- this.Args=obj.Args;
124017
- this.DataKey=obj.DataKey;
124018
- this.RecvCallback=obj.Callback;
124019
- this.ErrorCallback=obj.ErrorCallback;
124020
-
124021
- this.Download=function()
124022
- {
124023
- var self=this;
124024
- var fieldList=this.GetFieldList();
124025
- if (!fieldList)
124026
- {
124027
- message=`${this.Job.FunctionName}(${this.Args[0]}) can't support.`;
124028
- this.ErrorCallback(message);
124029
- self.RecvCallback(null, self.Job, self.DataKey);
124030
- return;
124031
- }
124032
-
124033
- //请求数据
124034
- JSNetwork.HttpRequest({
124035
- url: this.Url,
124036
- data:
124037
- {
124038
- "field": fieldList,
124039
- "symbol": [this.Symbol],
124040
- "condition":[ {"item":["finance","doc","exists","true"]}] ,
124041
- "start": 0,
124042
- "end": 200
124043
- },
124044
- type:"post",
124045
- dataType: "json",
124046
- async:true,
124047
- success: function (recvData)
124048
- {
124049
- var data=self.ToHQChartData(recvData);
124050
- if (data) //排序
124051
- data.sort(function (a, b) { return (a.Date - b.Date) });
124052
-
124053
- self.RecvCallback(data, self.Job, self.DataKey);
124054
- }
124055
- });
124056
- }
124057
-
124058
- this.ToHQChartData=function(recvData)
124059
- {
124060
- if (!recvData.stock || recvData.stock.length!=1) return null;
124061
-
124062
- var aryData=[];
124063
- var setDate=new Set(); //有重复数据 去掉
124064
- var stock=recvData.stock[0];
124065
- for(var i in stock.stockday)
124066
- {
124067
- var item=stock.stockday[i];
124068
- if (item.announcement1)
124069
- {
124070
- var hqchartItem=this.ToHQChartItemData(item.announcement1, item.finance1, item);
124071
- if (hqchartItem && !setDate.has(hqchartItem.Date))
124072
- {
124073
- aryData.push(hqchartItem);
124074
- setDate.add(hqchartItem.Date);
124075
- }
124076
- }
124077
-
124078
- if (item.announcement2)
124079
- {
124080
- var hqchartItem=this.ToHQChartItemData(item.announcement2, item.finance2, item);
124081
- if (hqchartItem && !setDate.has(hqchartItem.Date))
124082
- {
124083
- aryData.push(hqchartItem);
124084
- setDate.add(hqchartItem.Date);
124085
- }
124086
- }
124087
-
124088
- if (item.announcement3)
124089
- {
124090
- var hqchartItem=this.ToHQChartItemData(item.announcement3, item.finance3, item);
124091
- if (hqchartItem && !setDate.has(hqchartItem.Date))
124092
- {
124093
- aryData.push(hqchartItem);
124094
- setDate.add(hqchartItem.Date);
124095
- }
124096
- }
124097
-
124098
- if (item.announcement4)
124099
- {
124100
- var hqchartItem=this.ToHQChartItemData(item.announcement4, item.finance4, item);
124101
- if (hqchartItem && !setDate.has(hqchartItem.Date))
124102
- {
124103
- aryData.push(hqchartItem);
124104
- setDate.add(hqchartItem.Date);
124105
- }
124106
- }
124107
- }
124108
-
124109
- return aryData;
124110
- }
124111
-
124112
- //{ Date:日期 , Value:数值 }
124113
- this.ToHQChartItemData=function(announcement, finance, sourceItem)
124114
- {
124115
- var id=this.Args[0];
124116
- var date=announcement.year*10000;
124117
- var quarter=announcement.quarter;
124118
- switch(quarter)
124119
- {
124120
- case 1:
124121
- date+=331;
124122
- break;
124123
- case 2:
124124
- date+=630;
124125
- break;
124126
- case 3:
124127
- date+=930;
124128
- break;
124129
- case 4:
124130
- date+=1231;
124131
- break;
124132
- default:
124133
- return null;
124134
- }
124135
-
124136
- var result={ Date:date, Value:0 };
124137
- switch(id)
124138
- {
124139
- case 0:
124140
- result.Value=date%1000000; //0--返回报告期(YYMMDD格式),150930表示为2015年第三季
124141
- break;
124142
- case 1:
124143
- result.Value=finance.persearning;
124144
- break;
124145
- case 3:
124146
- result.Value=finance.peruprofit;
124147
- break;
124148
- case 4:
124149
- result.Value=finance.pernetasset;
124150
- break;
124151
- case 5:
124152
- result.Value=finance.percreserve;
124153
- break;
124154
- case 6:
124155
- result.Value=finance.woewa;
124156
- break;
124157
- case 7:
124158
- result.Value=finance.perccfo;
124159
- break;
124160
- case 8:
124161
- result.Value=finance.monetaryfunds;
124162
- break;
124163
- case 11:
124164
- result.Value=finance.areceivable;
124165
- break;
124166
- }
124167
-
124168
- return result;
124169
- }
124170
-
124171
- this.GetFieldList=function()
124172
- {
124173
- var id=this.Args[0];
124174
- switch(id)
124175
- {
124176
- case 0:
124177
- return ["finance.date"];
124178
- case 1: //persearning 每股收益
124179
- return ["finance.persearning"];
124180
- case 3: //peruprofit 每股未分配利润
124181
- return ["finance.peruprofit"];
124182
- case 4: //pernetasset 每股净资产
124183
- return ["finance.pernetasset"];
124184
- case 5: //percreserve 每股资本公积金
124185
- return ["finance.percreserve"];
124186
- case 6: //woewa 加权平均净资产收益
124187
- return ["finance.woewa"];
124188
- case 7: //perccfo 每股经营性现金流
124189
- return ["finance.perccfo"];
124190
- case 8: //monetaryfunds 货币资金
124191
- return ["finance.monetaryfunds"];
124192
- case 11: //areceivable 应收账款
124193
- return ["finance.areceivable"];
124194
- default:
124195
- return null;
124196
- }
124197
- }
124198
- }
124199
-
124200
- /////////////////////////////////////////////////////////
124201
- // 内置财务数据下载 某一期的数据
124202
- //
124203
- function DownloadFinOneData(obj)
124204
- {
124205
- this.newMethod=DownloadFinValueData; //派生
124206
- this.newMethod(obj);
124207
- delete this.newMethod;
124208
-
124209
- this.Download=function()
124210
- {
124211
- var self=this;
124212
- var fieldList=this.GetFieldList();
124213
- if (!fieldList)
124214
- {
124215
- message=`${this.Job.FunctionName}(${this.Args[0]}, ${this.Args[1]}, ${this.Args[2]}) can't support.`;
124216
- this.ErrorCallback(message);
124217
- self.RecvCallback(null, self.Job, self.DataKey);
124218
- return;
124219
- }
124220
-
124221
- var aryCondition=[ {"item":["finance","doc","exists","true"] } ];
124222
-
124223
- var year=this.Args[1];
124224
- var month=this.Args[2];
124225
- var dataIndex=0;
124226
- var dataEnd=3;
124227
- var preYear=null;
124228
- if (year==0 && month==0) //如果Y和MMDD都为0,表示最新的财报;
124229
- {
124230
-
124231
- }
124232
- else if (year==0 && month<300) //如果Y为0,MMDD为小于300的数字,表示最近一期向前推MMDD期的数据,如果是331,630,930,1231这些,表示最近一期的对应季报的数据;
124233
- {
124234
- dataIndex=month;
124235
- dataEnd=200;
124236
- }
124237
- else if (month==0 && year<1000) //如果Y为0,MMDD为小于300的数字,表示最近一期向前推MMDD期的数据,如果是331,630,930,1231这些,表示最近一期的对应季报的数据;
124238
- {
124239
- preYear=year;
124240
- }
124241
- else if (year>1909)
124242
- {
124243
- if (month==331)
124244
- {
124245
- aryCondition=
124246
- [
124247
- {"item":["announcement1.year","int32","eq",year]},
124248
- {"item":["finance1","doc","exists","true"]}
124249
- ];
124250
-
124251
- fieldList.push("announcement1.year");
124252
- fieldList.push("announcement1.quarter");
124253
- }
124254
- else if (month==630)
124255
- {
124256
- aryCondition=
124257
- [
124258
- {"item":["announcement2.year","int32","eq",year]},
124259
- {"item":["finance2","doc","exists","true"]}
124260
- ];
124261
-
124262
- fieldList.push("announcement2.year");
124263
- fieldList.push("announcement2.quarter");
124264
- }
124265
- else if (month==930)
124266
- {
124267
- aryCondition=
124268
- [
124269
- {"item":["announcement3.year","int32","eq",year]},
124270
- {"item":["finance3","doc","exists","true"]}
124271
- ];
124272
-
124273
- fieldList.push("announcement4.year");
124274
- fieldList.push("announcement4.quarter");
124275
- }
124276
- else
124277
- {
124278
- aryCondition=
124279
- [
124280
- {"item":["announcement4.year","int32","eq",year]},
124281
- {"item":["finance4","doc","exists","true"]}
124282
- ];
124283
-
124284
- fieldList.push("announcement4.year");
124285
- fieldList.push("announcement4.quarter");
124286
- }
124287
- }
124288
-
124289
- //请求数据
124290
- JSNetwork.HttpRequest({
124291
- url: this.Url,
124292
- data:
124293
- {
124294
- "field": fieldList,
124295
- "symbol": [this.Symbol],
124296
- "condition":aryCondition,
124297
- "start": 0,
124298
- "end": dataEnd
124299
- },
124300
- type:"post",
124301
- dataType: "json",
124302
- async:true,
124303
- success: function (recvData)
124304
- {
124305
- var data=self.ToHQChartData(recvData);
124306
- var result=null;
124307
- if (data && data.length>0)
124308
- {
124309
- data.sort(function (a, b) { return (b.Date-a.Date) });
124310
- if (preYear==null)
124311
- result=data[dataIndex]; //返回一个数据
124312
- else
124313
- result=self.GetPreYearData(data, preYear);
124314
- }
124315
- self.RecvCallback(result, self.Job, self.DataKey);
124316
- }
124317
- });
124318
- }
124319
-
124320
- this.GetPreYearData=function(data, preYear)
124321
- {
124322
- //331,630,930,1231这些,表示最近一期的对应季报的数据;
124323
- if (preYear==331 || preYear==630|| preYear==930 || preYear==1231)
124324
- {
124325
- for(var i in data)
124326
- {
124327
- var item=data[i];
124328
- if (item.Date%10000==preYear) return item;
124329
- }
124330
- }
124331
- else
124332
- {
124333
- //如果MMDD为0,Y为一数字,表示最近一期向前推Y年的同期数据;
124334
- var month=data[0].Date%1000;
124335
- for(var i=1, j=0; i<data.length ;++i)
124336
- {
124337
- var item=data[i];
124338
- if (item.Date%10000==month)
124339
- {
124340
- ++j;
124341
- if (j==preYear) return item;
124342
- }
124343
- }
124344
-
124345
- return null;
124346
- }
124347
- }
124348
- }
124349
-
124350
-
124351
123998
  function DownloadFinanceData(obj)
124352
123999
  {
124353
124000
  this.Url=obj.Url;
@@ -138591,7 +138238,7 @@ function ScrollBarBGChart()
138591
138238
 
138592
138239
 
138593
138240
 
138594
- var HQCHART_VERSION="1.1.13803";
138241
+ var HQCHART_VERSION="1.1.13815";
138595
138242
 
138596
138243
  function PrintHQChartVersion()
138597
138244
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.13803";
8
+ var HQCHART_VERSION="1.1.13815";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {