hqchart 1.1.13773 → 1.1.13778

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.
@@ -6705,6 +6705,8 @@ var JSCHART_MENU_ID=
6705
6705
  CMD_SHOW_CORSS_LINE_ID:39, //显示十字光标线
6706
6706
  CMD_ENABLE_POP_MINUTE_CHART_ID:40, //双击弹分时图
6707
6707
 
6708
+ CMD_CHANGE_INFO_POSITION_ID:41, //修改信息地雷位置
6709
+
6708
6710
 
6709
6711
  CMD_REPORT_CHANGE_BLOCK_ID:60, //报价列表 切换板块ID
6710
6712
  CMD_REPORT_COLUMN_SORT_ID:61, //报价列表 表头排序 Arg[列序号, 排序方向]
@@ -13532,6 +13534,13 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
13532
13534
  }
13533
13535
  }
13534
13536
  break;
13537
+ case JSCHART_MENU_ID.CMD_CHANGE_INFO_POSITION_ID:
13538
+ if (param==null) return false;
13539
+ var klineChart=this.ChartPaint[0];
13540
+ if (!klineChart) return false;
13541
+ klineChart.InfoPosition=param;
13542
+ this.Draw();
13543
+ break;
13535
13544
  }
13536
13545
  }
13537
13546
 
@@ -16165,7 +16174,66 @@ function AverageWidthFrame()
16165
16174
 
16166
16175
  if (item.Message[0] && borderLeft>=10)
16167
16176
  {
16177
+ if (item.Font != null) this.Canvas.font = item.Font;
16178
+ var textInfo=this.GetCustomItemTextInfo(item,true,pixelTatio);
16179
+ var textWidth=textInfo.MaxWidth;
16180
+ var itemLeft=left-textWidth;
16181
+ var fontHeight=this.GetFontHeight();
16182
+ var textHeight=fontHeight>defaultTextHeight? fontHeight:defaultTextHeight;
16183
+ this.Canvas.textAlign = "right";
16184
+ this.Canvas.textBaseline = "middle";
16185
+
16186
+ var yText=null;
16187
+ if (position==1)
16188
+ {
16189
+ yText=border.TopEx;
16190
+ if (IFrameSplitOperator.IsNumber(outRange.TopYOffset)) yText+=outRange.TopYOffset;
16191
+ }
16192
+ else if (position==2)
16193
+ {
16194
+ yText=border.BottomEx+textHeight;
16195
+ if (IFrameSplitOperator.IsNumber(outRange.BottomYOffset)) yText+=outRange.BottomYOffset;
16196
+ }
16168
16197
 
16198
+ for(var i=0;i<textInfo.Text.length;++i)
16199
+ {
16200
+ var itemText=textInfo.Text[i];
16201
+ var rtBG={ Left:itemLeft, Width:itemText.Width, Bottom:yText, Height:textHeight };
16202
+ rtBG.Top=rtBG.Bottom-rtBG.Height;
16203
+ rtBG.Right=rtBG.Left+rtBG.Width;
16204
+
16205
+ if (item.ExtendLine && item.ExtendLine[0]) //右侧延长线
16206
+ {
16207
+ var exLine=item.ExtendLine[0];
16208
+ if (IFrameSplitOperator.IsNumber(exLine.Width))
16209
+ {
16210
+ var yLine=rtBG.Bottom;
16211
+ if (position==2) yLine=rtBG.Top;
16212
+ var lineType=item.LineType;
16213
+ if (IFrameSplitOperator.IsNumber(outRange.ExtendLine.Type)) lineType=outRange.ExtendLine.Type;
16214
+ if (i==0) this.DrawLine(left,left-exLine.Width,yLine,item.LineColor,lineType,item);
16215
+
16216
+ rtBG.Left-=exLine.Width;
16217
+ rtBG.Right-=exLine.Width;
16218
+ }
16219
+
16220
+ this.Canvas.fillStyle=outRange.BGColor;
16221
+ this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);
16222
+ if (outRange.Border && outRange.Border.Color)
16223
+ {
16224
+ if (IFrameSplitOperator.IsNonEmptyArray(outRange.Border.LineDash))
16225
+ this.Canvas.setLineDash(outRange.Border.LineDash); //虚线
16226
+
16227
+ this.Canvas.strokeStyle = outRange.Border.Color;
16228
+ this.Canvas.strokeRect(ToFixedPoint(rtBG.Left), ToFixedPoint(rtBG.Top), ToFixedRect(rtBG.Width), ToFixedRect(rtBG.Height));
16229
+ }
16230
+
16231
+ this.Canvas.fillStyle = outRange.TextColor;
16232
+ this.Canvas.fillText(itemText.Text, rtBG.Right - 1*pixelTatio, rtBG.Top+rtBG.Height/2+1*pixelTatio);
16233
+
16234
+ yText+=textHeight+1;
16235
+ }
16236
+ }
16169
16237
  }
16170
16238
  else if (item.Message[1] && borderRight>=10)
16171
16239
  {
@@ -16376,6 +16444,18 @@ function AverageWidthFrame()
16376
16444
  var textLeft=left-(textWidth-itemText.Width);
16377
16445
  }
16378
16446
 
16447
+
16448
+ if (item.ExtendLine && item.ExtendLine[0]) //右侧延长线
16449
+ {
16450
+ var exLine=item.ExtendLine[0];
16451
+ if (IFrameSplitOperator.IsNumber(exLine.Width))
16452
+ {
16453
+ if (i==0) this.DrawLine(left,left-exLine.Width,y,item.LineColor,item.LineType,item);
16454
+ textLeft-=exLine.Width;
16455
+ rectLeft-=exLine.Width
16456
+ }
16457
+ }
16458
+
16379
16459
  if (emptyBGColor)
16380
16460
  {
16381
16461
  this.Canvas.fillStyle=emptyBGColor;
@@ -80651,6 +80731,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
80651
80731
  var klineType=klineChart.DrawType;
80652
80732
  var bThinAKBar=klineChart.IsThinAKBar;
80653
80733
  var priceGap=klineChart.PriceGap; //缺口配置信息
80734
+ var infoPosition=klineChart.InfoPosition;
80654
80735
  var coordinateType=null, yCoordinateType=null; //坐标类型
80655
80736
  var mainFrame=null;
80656
80737
  if (this.Frame.SubFrame[0] && this.Frame.SubFrame[0].Frame) mainFrame=this.Frame.SubFrame[0].Frame;
@@ -80760,6 +80841,16 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
80760
80841
  { Name:"大宗交易", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID, Args:["大宗交易", !aryKLineInfo.includes("BlockTrading")]}, Checked:aryKLineInfo.includes("BlockTrading") },
80761
80842
  { Name:"龙虎榜", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID, Args:["龙虎榜", !aryKLineInfo.includes("TradeDetail")]}, Checked:aryKLineInfo.includes("TradeDetail") },
80762
80843
  { Name:"互动易", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID, Args:["互动易", !aryKLineInfo.includes("InvestorInfo")]}, Checked:aryKLineInfo.includes("InvestorInfo") },
80844
+ { Name:JSPopMenu.SEPARATOR_LINE_NAME },
80845
+ {
80846
+ Name:"显示位置",
80847
+ SubMenu:
80848
+ [
80849
+ { Name:"底部", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_INFO_POSITION_ID, Args:[1]}, Checked:infoPosition===1 },
80850
+ { Name:"K线上", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_INFO_POSITION_ID, Args:[0]}, Checked:infoPosition===0 },
80851
+ ]
80852
+ },
80853
+
80763
80854
  ]
80764
80855
  },
80765
80856
  {
@@ -92407,56 +92498,29 @@ function PforecastInfo()
92407
92498
 
92408
92499
  if (this.NetworkFilter(hqChart, obj)) return; //已被上层替换,不调用默认的网络请求
92409
92500
 
92410
- //请求数据
92411
- JSNetwork.HttpRequest({
92412
- url: url,
92413
- data:
92414
- {
92415
- "field": ["pforecast.type","pforecast.reportdate","fweek"],
92416
- "condition":
92417
- [
92418
- {"item":["pforecast.reportdate","int32","gte",this.StartDate]}
92419
- ],
92420
- "symbol": [param.HQChart.Symbol],
92421
- "start":0,
92422
- "end":this.MaxRequestDataCount,
92423
- },
92424
- type:"post",
92425
- dataType: "json",
92426
- async:true,
92427
- success: function (recvData)
92428
- {
92429
- self.RecvData(recvData,param);
92430
- }
92431
- });
92432
-
92501
+ console.warn("[PforecastInfo::RequestData] NetworkFilter error.");
92433
92502
  return true;
92434
92503
  }
92435
92504
 
92436
92505
  this.RecvData=function(recvData,param)
92437
92506
  {
92438
- if (recvData.stock.length!=1) return;
92439
- if (recvData.stock[0].stockday.length<=0) return;
92507
+ if (!IFrameSplitOperator.IsNonEmptyArray(recvData.report)) return;
92440
92508
 
92441
- for(var i in recvData.stock[0].stockday)
92509
+ for(var i=0; i<recvData.report.length; ++i)
92442
92510
  {
92443
- var item=recvData.stock[0].stockday[i];
92444
- if (item.pforecast.length>0)
92511
+ var item=recvData.report[i];
92512
+ var infoData=new KLineInfoData();
92513
+ infoData.Date= item.date;
92514
+ infoData.Title=item.title;
92515
+ infoData.InfoType=KLINE_INFO_TYPE.PFORECAST;
92516
+ infoData.ExtendData={ Type:item.title, ReportDate:item.reportdate}
92517
+ if(item.fweek) //未来周涨幅
92445
92518
  {
92446
- var dataItem=item.pforecast[0];
92447
- var infoData=new KLineInfoData();
92448
- infoData.Date= item.date;
92449
- infoData.Title=dataItem.type;
92450
- infoData.InfoType=KLINE_INFO_TYPE.PFORECAST;
92451
- infoData.ExtendData={ Type:dataItem.type, ReportDate:dataItem.reportdate}
92452
- if(item.fweek) //未来周涨幅
92453
- {
92454
- infoData.ExtendData.FWeek={};
92455
- if (item.fweek.week1!=null) infoData.ExtendData.FWeek.Week1=item.fweek.week1;
92456
- if (item.fweek.week4!=null) infoData.ExtendData.FWeek.Week4=item.fweek.week4;
92457
- }
92458
- this.Data.push(infoData);
92519
+ infoData.ExtendData.FWeek={};
92520
+ if (item.fweek.week1!=null) infoData.ExtendData.FWeek.Week1=item.fweek.week1;
92521
+ if (item.fweek.week4!=null) infoData.ExtendData.FWeek.Week4=item.fweek.week4;
92459
92522
  }
92523
+ this.Data.push(infoData);
92460
92524
  }
92461
92525
 
92462
92526
  param.HQChart.UpdataChartInfo();
@@ -92488,34 +92552,15 @@ function ResearchInfo()
92488
92552
 
92489
92553
  if (this.NetworkFilter(hqChart, obj)) return; //已被上层替换,不调用默认的网络请求
92490
92554
 
92491
- //请求数据
92492
- JSNetwork.HttpRequest({
92493
- url: url,
92494
- data:
92495
- {
92496
- "filed": ["releasedate","researchdate","level","symbol","id",'type'],
92497
- "querydate":{"StartDate":this.StartDate,"EndDate":this.GetToday()},
92498
- "symbol": [param.HQChart.Symbol],
92499
- "start":0,
92500
- "end":this.MaxRequestDataCount,
92501
- },
92502
- type:"post",
92503
- dataType: "json",
92504
- async:true,
92505
- success: function (recvData)
92506
- {
92507
- self.RecvData(recvData,param);
92508
- }
92509
- });
92510
-
92555
+ console.warn("[ResearchInfo::RequestData] NetworkFilter error.");
92511
92556
  return true;
92512
92557
  }
92513
92558
 
92514
92559
  this.RecvData=function(recvData,param)
92515
92560
  {
92516
- if (recvData.list.length<=0) return;
92561
+ if (!IFrameSplitOperator.IsNonEmptyArray(recvData.list)) return;
92517
92562
 
92518
- for(var i in recvData.list)
92563
+ for(var i=0;i<recvData.list.length; ++i)
92519
92564
  {
92520
92565
  var item=recvData.list[i];
92521
92566
  var infoData=new KLineInfoData();
@@ -93409,203 +93454,6 @@ function ChangeIndexDialog(divElement)
93409
93454
  }
93410
93455
  }
93411
93456
 
93412
- //信息地理tooltip
93413
- function KLineInfoTooltip(divElement)
93414
- {
93415
- this.newMethod=IDivDialog; //派生
93416
- this.newMethod(divElement);
93417
- delete this.newMethod;
93418
-
93419
- this.UpColor=g_JSChartResource.UpTextColor;
93420
- this.DownColor=g_JSChartResource.DownTextColor;
93421
- this.UnchagneColor=g_JSChartResource.UnchagneTextColor;
93422
-
93423
- this.Create=function()
93424
- {
93425
- this.ID=Guid();
93426
-
93427
- var div=document.createElement('div');
93428
- div.className='jchart-klineinfo-tooltip';
93429
- div.id=this.ID;
93430
- div.innerHTML="<div class='title-length'></div>";
93431
- this.DivElement.appendChild(div);
93432
- }
93433
-
93434
-
93435
- this.BindInfoList=function(infoType,infoList)
93436
- {
93437
- var strBox="<div class='total-list'>共"+infoList.length+"条</div>";
93438
- var strText=[];
93439
- for(var i in infoList)
93440
- {
93441
- var item=infoList[i];
93442
- var strOld=item.Date;
93443
- if(infoType==KLINE_INFO_TYPE.PFORECAST)
93444
- {
93445
- var reportDate=item.ExtendData.ReportDate;
93446
- var year=parseInt(reportDate/10000); //年份
93447
- var day=reportDate%10000; //比较 这个去掉年份的日期
93448
- var reportType;
93449
- if(day == 1231){
93450
- reportType = "年报"
93451
- }else if(day == 331){
93452
- reportType = "一季度报"
93453
- }else if(day == 630){
93454
- reportType = "半年度报"
93455
- }else if(day == 930){
93456
- reportType = "三季度报"
93457
- }
93458
-
93459
- var weekData="";
93460
- if (item.ExtendData.FWeek)
93461
- {
93462
- if (item.ExtendData.FWeek.Week1!=null) weekData+="一周后涨幅:<i class='increase' style='color:"+this.GetColor(item.ExtendData.FWeek.Week1.toFixed(2))+"'>"+ item.ExtendData.FWeek.Week1.toFixed(2)+"%</i>";
93463
- if (item.ExtendData.FWeek.Week4!=null) weekData+="&nbsp;四周后涨幅:<i class='increase' style='color:"+this.GetColor(item.ExtendData.FWeek.Week4.toFixed(2))+"'>"+ item.ExtendData.FWeek.Week4.toFixed(2)+"%</i>";
93464
- if (weekData.length>0) weekData="<br/>&nbsp;&nbsp;<i class='prorecast-week'>"+weekData+"</i>";
93465
- }
93466
- var strDate=item.Date.toString();
93467
- var strNew=strDate.substring(0,4)+"-"+strDate.substring(4,6)+"-"+strDate.substring(6,8); //转换时间格式
93468
- strText+="<span>"+strNew+"&nbsp;&nbsp;"+year+reportType+item.Title+"&nbsp;"+weekData+"</span>";
93469
-
93470
- }
93471
- else if (infoType==KLINE_INFO_TYPE.RESEARCH) //调研单独处理
93472
- {
93473
- var levels=item.ExtendData.Level;
93474
- var recPerson=[];
93475
- if(levels.length==0){
93476
- recPerson = "<i>无</i>"
93477
- }else{
93478
- for(var j in levels)
93479
- {
93480
- if(levels[j]==0){
93481
- recPerson+="<i style='color:#00a0e9'>证券代表&nbsp;&nbsp;&nbsp;</i>";
93482
- }else if(levels[j]==1){
93483
- recPerson+="<i>董秘&nbsp;&nbsp;&nbsp;</i>";
93484
- }else if(levels[j]==2){
93485
- recPerson+="<i style='color:#00a0e9'>总经理&nbsp;&nbsp;&nbsp;</i>";
93486
- }else if(levels[j]==3){
93487
- recPerson+="<i style='color:#00a0e9'>董事长&nbsp;&nbsp;&nbsp;</i>";
93488
- }
93489
- }
93490
- }
93491
- var strDate=item.Date.toString();
93492
- var strNew=strDate.substring(0,4)+"-"+strDate.substring(4,6)+"-"+strDate.substring(6,8); //转换时间格式
93493
- strText+="<span>"+strNew+"&nbsp;&nbsp;&nbsp;接待:&nbsp;&nbsp;&nbsp;"+recPerson+"</span>";
93494
- }else if(infoType==KLINE_INFO_TYPE.BLOCKTRADING)
93495
- {
93496
- var showPriceInfo = item.ExtendData;
93497
- var strDate=item.Date.toString();
93498
- var strNew=strDate.substring(0,4)+"-"+strDate.substring(4,6)+"-"+strDate.substring(6,8); //转换时间格式
93499
- strText+="<span><i class='date-tipbox'>"+strNew+"</i>&nbsp;&nbsp;<i class='tipBoxTitle'>成交价:&nbsp;"+showPriceInfo.Price.toFixed(2)+"</i><i class='tipBoxTitle'>收盘价:&nbsp;"+showPriceInfo.ClosePrice.toFixed(2)+
93500
- "</i><br/><i class='rate-discount tipBoxTitle'>溢折价率:&nbsp;<strong style='color:"+ this.GetColor(showPriceInfo.Premium.toFixed(2))+"'>"+
93501
- showPriceInfo.Premium.toFixed(2)+"%</strong></i><i class='tipBoxTitle'>成交量(万股):&nbsp;"+showPriceInfo.Vol.toFixed(2)+"</i></span>";
93502
- }
93503
- else if (infoType==KLINE_INFO_TYPE.TRADEDETAIL) //龙虎榜
93504
- {
93505
- /*var detail=[
93506
- "日价格涨幅偏离值达到9.89%",
93507
- "日价格涨幅偏离值达格涨幅偏离值达格涨幅偏离值达到9.89%"
93508
- ]*/
93509
- var detail=item.ExtendData.Detail;
93510
- //格式:日期 上榜原因: detail[0].TypeExplain
93511
- // detail[1].TypeExplain
93512
- // 一周后涨幅: xx 四周后涨幅: xx
93513
- var str=strOld.toString();
93514
- var strNew=str.substring(0,4)+"-"+str.substring(4,6)+"-"+str.substring(6,8); //转换时间格式
93515
- var reasons = [];
93516
- for(var i in detail){
93517
- reasons += "<i>"+detail[i].TypeExplain+"</i><br/>"
93518
- // reasons += detail[i] + "<br/>"
93519
- }
93520
-
93521
- strText = "<span><i class='trade-time'>"+strNew+"&nbsp;&nbsp;&nbsp;上榜原因:&nbsp;&nbsp;</i><i class='reason-list'>"+reasons+"</i><br/><i class='trade-detall'>一周后涨幅:&nbsp;<strong style='color:"+
93522
- this.GetColor(item.ExtendData.FWeek.Week1.toFixed(2))+"'>"+ item.ExtendData.FWeek.Week1.toFixed(2)+
93523
- "%</strong>&nbsp;&nbsp;&nbsp;四周后涨幅:&nbsp;<strong style='color:"+this.GetColor(item.ExtendData.FWeek.Week4.toFixed(2))+";'>"+
93524
- item.ExtendData.FWeek.Week4.toFixed(2)+"%</strong></i></span>";
93525
- }
93526
- else
93527
- {
93528
- var str=strOld.toString();
93529
- var strNew=str.substring(0,4)+"-"+str.substring(4,6)+"-"+str.substring(6,8); //转换时间格式
93530
- strText+="<span>"+strNew+"&nbsp;&nbsp;&nbsp;"+item.Title+"</span>";
93531
- }
93532
- }
93533
- var titleInnerBox = $(".title-length").html(strText);
93534
-
93535
- $("#"+this.ID).html(titleInnerBox);
93536
-
93537
- //当信息超过8条时,添加“共XX条”统计总数
93538
- if(infoList.length > 8){
93539
- $("#"+this.ID).append(strBox);
93540
- }
93541
- }
93542
-
93543
-
93544
- this.GetColor=function(price)
93545
- {
93546
- if(price>0) return this.UpColor;
93547
- else if (price<0) return this.DownColor;
93548
- else return this.UnchagneColor;
93549
- }
93550
-
93551
- //显示窗口,改函数仅为KLineInfoTooltip使用
93552
- this.Show=function(left,top,width,height,tooltip,times)
93553
- {
93554
- //显示位置
93555
- $("#"+this.ID).css({'display':'block','top':top+'px', "left":left+'px', "width":width+'px', "height":height+'px' });
93556
-
93557
- function toolHide() {
93558
- tooltip.Hide();
93559
- }
93560
-
93561
- if (this.TimeOut!=null)
93562
- clearTimeout(this.TimeOut); //清空上一次的定时器,防止定时器不停的被调用
93563
-
93564
- //设置窗口定时隐藏
93565
- this.TimeOut=setTimeout(toolHide,times);
93566
-
93567
- }
93568
-
93569
-
93570
- this.DoModal=function(event)
93571
- {
93572
- var chart=event.data.Chart;
93573
- var infoType=event.data.InfoType; //信息地雷类型
93574
- var infoList=event.data.InfoList; //信息数据列表
93575
- var tooltip=chart.KLineInfoTooltip;
93576
-
93577
- if(!tooltip) return;
93578
- if (tooltip.ID==null) tooltip.Create(); //第1次 需要创建div
93579
-
93580
- tooltip.BindInfoList(infoType,infoList);
93581
-
93582
- var left=event.pageX;
93583
- var top=event.pageY+10;
93584
- var widthTool=380;
93585
- var heightTool=$("#"+tooltip.ID).height();
93586
-
93587
- if((left + widthTool) > chart.UIElement.getBoundingClientRect().width){
93588
- left = left - widthTool;
93589
- }
93590
- /*if(top+heightTool>chart.UIElement.getBoundingClientRect().height){
93591
- top=top-heightTool-45;
93592
- }*/
93593
-
93594
- tooltip.Show(left,top,widthTool,"auto",tooltip,8000);
93595
- }
93596
-
93597
- //鼠标离开
93598
- this.Leave=function(event)
93599
- {
93600
- var chart=event.data.Chart;
93601
- var tooltip=chart.KLineInfoTooltip;
93602
-
93603
- if(!tooltip || tooltip.ID==null) return;
93604
-
93605
- tooltip.Hide();
93606
- }
93607
- }
93608
-
93609
93457
  function MinuteSelectRectDialog(divElement)
93610
93458
  {
93611
93459
  this.newMethod=IDivDialog; //派生
@@ -138831,7 +138679,7 @@ function ScrollBarBGChart()
138831
138679
 
138832
138680
 
138833
138681
 
138834
- var HQCHART_VERSION="1.1.13770";
138682
+ var HQCHART_VERSION="1.1.13777";
138835
138683
 
138836
138684
  function PrintHQChartVersion()
138837
138685
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.13770";
8
+ var HQCHART_VERSION="1.1.13777";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -48780,6 +48780,7 @@ HQData.NetworkFilter=function(data, callback)
48780
48780
  break;
48781
48781
 
48782
48782
  case "ResearchInfo::RequestData":
48783
+ HQData.ResearchInfo_RequestData(data,callback);
48783
48784
  break;
48784
48785
 
48785
48786
  case "BlockTrading::RequestData":
@@ -49299,7 +49300,15 @@ HQData.PforecastInfo_RequestData=function(data,callback)
49299
49300
  var kItem=kData.Data[i];
49300
49301
  if (i%10!=4) continue;
49301
49302
 
49302
- var itemReport={ date:kItem.Date, time:kItem.Time, title:`公告(${j}) xxxx`, }
49303
+ var year=parseInt(kItem.Date/10000); //年份
49304
+ var month=parseInt(kItem.Date/100)%100;
49305
+ var reprotDate=0;
49306
+ if (month>10) reprotDate=year*10000+1231;
49307
+ else if (month>6) reprotDate=year*10000+930;
49308
+ else if (month>3) reprotDate=year*10000+630;
49309
+ else reprotDate=year*10000+331;
49310
+
49311
+ var itemReport={ date:kItem.Date, time:kItem.Time, title:`业绩预增`, reportdate:reprotDate, fweek:{ week1:0.04, week4:0.02 } }
49303
49312
 
49304
49313
  hqchartData.report.push(itemReport);
49305
49314
 
@@ -49317,6 +49326,29 @@ HQData.InvestorInfo_RequestData=function(data,callback)
49317
49326
  callback(TEST_NEWSINTERACT_DATA);
49318
49327
  }
49319
49328
 
49329
+ HQData.ResearchInfo_RequestData=function(data,callback)
49330
+ {
49331
+ data.PreventDefault=true;
49332
+ var symbol=data.Request.Symbol;
49333
+
49334
+ var hqchartData={ symbol:symbol, list:[] };
49335
+
49336
+ var kData=data.HQChart.ChartPaint[0].Data;
49337
+ for(var i=0, j=1;i<kData.Data.length;++i)
49338
+ {
49339
+ var kItem=kData.Data[i];
49340
+ if (i%20!=4) continue;
49341
+
49342
+ var itemReport={ researchdate:kItem.Date, id:i, level:[j%4], type:"xxx调研。" };
49343
+
49344
+ hqchartData.list.push(itemReport);
49345
+
49346
+ ++j;
49347
+ }
49348
+
49349
+ callback(hqchartData);
49350
+ }
49351
+
49320
49352
  HQData.BlockTrading_RequestData=function(data,callback)
49321
49353
  {
49322
49354
  data.PreventDefault=true;