hqchart 1.1.13773 → 1.1.13776

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.
@@ -2780,6 +2780,8 @@ var JSCHART_MENU_ID=
2780
2780
  CMD_SHOW_CORSS_LINE_ID:39, //显示十字光标线
2781
2781
  CMD_ENABLE_POP_MINUTE_CHART_ID:40, //双击弹分时图
2782
2782
 
2783
+ CMD_CHANGE_INFO_POSITION_ID:41, //修改信息地雷位置
2784
+
2783
2785
 
2784
2786
  CMD_REPORT_CHANGE_BLOCK_ID:60, //报价列表 切换板块ID
2785
2787
  CMD_REPORT_COLUMN_SORT_ID:61, //报价列表 表头排序 Arg[列序号, 排序方向]
@@ -9607,6 +9609,13 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
9607
9609
  }
9608
9610
  }
9609
9611
  break;
9612
+ case JSCHART_MENU_ID.CMD_CHANGE_INFO_POSITION_ID:
9613
+ if (param==null) return false;
9614
+ var klineChart=this.ChartPaint[0];
9615
+ if (!klineChart) return false;
9616
+ klineChart.InfoPosition=param;
9617
+ this.Draw();
9618
+ break;
9610
9619
  }
9611
9620
  }
9612
9621
 
@@ -76726,6 +76735,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
76726
76735
  var klineType=klineChart.DrawType;
76727
76736
  var bThinAKBar=klineChart.IsThinAKBar;
76728
76737
  var priceGap=klineChart.PriceGap; //缺口配置信息
76738
+ var infoPosition=klineChart.InfoPosition;
76729
76739
  var coordinateType=null, yCoordinateType=null; //坐标类型
76730
76740
  var mainFrame=null;
76731
76741
  if (this.Frame.SubFrame[0] && this.Frame.SubFrame[0].Frame) mainFrame=this.Frame.SubFrame[0].Frame;
@@ -76835,6 +76845,16 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
76835
76845
  { Name:"大宗交易", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID, Args:["大宗交易", !aryKLineInfo.includes("BlockTrading")]}, Checked:aryKLineInfo.includes("BlockTrading") },
76836
76846
  { Name:"龙虎榜", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID, Args:["龙虎榜", !aryKLineInfo.includes("TradeDetail")]}, Checked:aryKLineInfo.includes("TradeDetail") },
76837
76847
  { Name:"互动易", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_KLINE_INFO_ID, Args:["互动易", !aryKLineInfo.includes("InvestorInfo")]}, Checked:aryKLineInfo.includes("InvestorInfo") },
76848
+ { Name:JSPopMenu.SEPARATOR_LINE_NAME },
76849
+ {
76850
+ Name:"显示位置",
76851
+ SubMenu:
76852
+ [
76853
+ { Name:"底部", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_INFO_POSITION_ID, Args:[1]}, Checked:infoPosition===1 },
76854
+ { Name:"K线上", Data:{ ID: JSCHART_MENU_ID.CMD_CHANGE_INFO_POSITION_ID, Args:[0]}, Checked:infoPosition===0 },
76855
+ ]
76856
+ },
76857
+
76838
76858
  ]
76839
76859
  },
76840
76860
  {
@@ -88482,56 +88502,29 @@ function PforecastInfo()
88482
88502
 
88483
88503
  if (this.NetworkFilter(hqChart, obj)) return; //已被上层替换,不调用默认的网络请求
88484
88504
 
88485
- //请求数据
88486
- JSNetwork.HttpRequest({
88487
- url: url,
88488
- data:
88489
- {
88490
- "field": ["pforecast.type","pforecast.reportdate","fweek"],
88491
- "condition":
88492
- [
88493
- {"item":["pforecast.reportdate","int32","gte",this.StartDate]}
88494
- ],
88495
- "symbol": [param.HQChart.Symbol],
88496
- "start":0,
88497
- "end":this.MaxRequestDataCount,
88498
- },
88499
- type:"post",
88500
- dataType: "json",
88501
- async:true,
88502
- success: function (recvData)
88503
- {
88504
- self.RecvData(recvData,param);
88505
- }
88506
- });
88507
-
88505
+ console.warn("[PforecastInfo::RequestData] NetworkFilter error.");
88508
88506
  return true;
88509
88507
  }
88510
88508
 
88511
88509
  this.RecvData=function(recvData,param)
88512
88510
  {
88513
- if (recvData.stock.length!=1) return;
88514
- if (recvData.stock[0].stockday.length<=0) return;
88511
+ if (!IFrameSplitOperator.IsNonEmptyArray(recvData.report)) return;
88515
88512
 
88516
- for(var i in recvData.stock[0].stockday)
88513
+ for(var i=0; i<recvData.report.length; ++i)
88517
88514
  {
88518
- var item=recvData.stock[0].stockday[i];
88519
- if (item.pforecast.length>0)
88515
+ var item=recvData.report[i];
88516
+ var infoData=new KLineInfoData();
88517
+ infoData.Date= item.date;
88518
+ infoData.Title=item.title;
88519
+ infoData.InfoType=KLINE_INFO_TYPE.PFORECAST;
88520
+ infoData.ExtendData={ Type:item.title, ReportDate:item.reportdate}
88521
+ if(item.fweek) //未来周涨幅
88520
88522
  {
88521
- var dataItem=item.pforecast[0];
88522
- var infoData=new KLineInfoData();
88523
- infoData.Date= item.date;
88524
- infoData.Title=dataItem.type;
88525
- infoData.InfoType=KLINE_INFO_TYPE.PFORECAST;
88526
- infoData.ExtendData={ Type:dataItem.type, ReportDate:dataItem.reportdate}
88527
- if(item.fweek) //未来周涨幅
88528
- {
88529
- infoData.ExtendData.FWeek={};
88530
- if (item.fweek.week1!=null) infoData.ExtendData.FWeek.Week1=item.fweek.week1;
88531
- if (item.fweek.week4!=null) infoData.ExtendData.FWeek.Week4=item.fweek.week4;
88532
- }
88533
- this.Data.push(infoData);
88523
+ infoData.ExtendData.FWeek={};
88524
+ if (item.fweek.week1!=null) infoData.ExtendData.FWeek.Week1=item.fweek.week1;
88525
+ if (item.fweek.week4!=null) infoData.ExtendData.FWeek.Week4=item.fweek.week4;
88534
88526
  }
88527
+ this.Data.push(infoData);
88535
88528
  }
88536
88529
 
88537
88530
  param.HQChart.UpdataChartInfo();
@@ -88563,34 +88556,15 @@ function ResearchInfo()
88563
88556
 
88564
88557
  if (this.NetworkFilter(hqChart, obj)) return; //已被上层替换,不调用默认的网络请求
88565
88558
 
88566
- //请求数据
88567
- JSNetwork.HttpRequest({
88568
- url: url,
88569
- data:
88570
- {
88571
- "filed": ["releasedate","researchdate","level","symbol","id",'type'],
88572
- "querydate":{"StartDate":this.StartDate,"EndDate":this.GetToday()},
88573
- "symbol": [param.HQChart.Symbol],
88574
- "start":0,
88575
- "end":this.MaxRequestDataCount,
88576
- },
88577
- type:"post",
88578
- dataType: "json",
88579
- async:true,
88580
- success: function (recvData)
88581
- {
88582
- self.RecvData(recvData,param);
88583
- }
88584
- });
88585
-
88559
+ console.warn("[ResearchInfo::RequestData] NetworkFilter error.");
88586
88560
  return true;
88587
88561
  }
88588
88562
 
88589
88563
  this.RecvData=function(recvData,param)
88590
88564
  {
88591
- if (recvData.list.length<=0) return;
88565
+ if (!IFrameSplitOperator.IsNonEmptyArray(recvData.list)) return;
88592
88566
 
88593
- for(var i in recvData.list)
88567
+ for(var i=0;i<recvData.list.length; ++i)
88594
88568
  {
88595
88569
  var item=recvData.list[i];
88596
88570
  var infoData=new KLineInfoData();
@@ -89484,203 +89458,6 @@ function ChangeIndexDialog(divElement)
89484
89458
  }
89485
89459
  }
89486
89460
 
89487
- //信息地理tooltip
89488
- function KLineInfoTooltip(divElement)
89489
- {
89490
- this.newMethod=IDivDialog; //派生
89491
- this.newMethod(divElement);
89492
- delete this.newMethod;
89493
-
89494
- this.UpColor=g_JSChartResource.UpTextColor;
89495
- this.DownColor=g_JSChartResource.DownTextColor;
89496
- this.UnchagneColor=g_JSChartResource.UnchagneTextColor;
89497
-
89498
- this.Create=function()
89499
- {
89500
- this.ID=Guid();
89501
-
89502
- var div=document.createElement('div');
89503
- div.className='jchart-klineinfo-tooltip';
89504
- div.id=this.ID;
89505
- div.innerHTML="<div class='title-length'></div>";
89506
- this.DivElement.appendChild(div);
89507
- }
89508
-
89509
-
89510
- this.BindInfoList=function(infoType,infoList)
89511
- {
89512
- var strBox="<div class='total-list'>共"+infoList.length+"条</div>";
89513
- var strText=[];
89514
- for(var i in infoList)
89515
- {
89516
- var item=infoList[i];
89517
- var strOld=item.Date;
89518
- if(infoType==KLINE_INFO_TYPE.PFORECAST)
89519
- {
89520
- var reportDate=item.ExtendData.ReportDate;
89521
- var year=parseInt(reportDate/10000); //年份
89522
- var day=reportDate%10000; //比较 这个去掉年份的日期
89523
- var reportType;
89524
- if(day == 1231){
89525
- reportType = "年报"
89526
- }else if(day == 331){
89527
- reportType = "一季度报"
89528
- }else if(day == 630){
89529
- reportType = "半年度报"
89530
- }else if(day == 930){
89531
- reportType = "三季度报"
89532
- }
89533
-
89534
- var weekData="";
89535
- if (item.ExtendData.FWeek)
89536
- {
89537
- 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>";
89538
- 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>";
89539
- if (weekData.length>0) weekData="<br/>&nbsp;&nbsp;<i class='prorecast-week'>"+weekData+"</i>";
89540
- }
89541
- var strDate=item.Date.toString();
89542
- var strNew=strDate.substring(0,4)+"-"+strDate.substring(4,6)+"-"+strDate.substring(6,8); //转换时间格式
89543
- strText+="<span>"+strNew+"&nbsp;&nbsp;"+year+reportType+item.Title+"&nbsp;"+weekData+"</span>";
89544
-
89545
- }
89546
- else if (infoType==KLINE_INFO_TYPE.RESEARCH) //调研单独处理
89547
- {
89548
- var levels=item.ExtendData.Level;
89549
- var recPerson=[];
89550
- if(levels.length==0){
89551
- recPerson = "<i>无</i>"
89552
- }else{
89553
- for(var j in levels)
89554
- {
89555
- if(levels[j]==0){
89556
- recPerson+="<i style='color:#00a0e9'>证券代表&nbsp;&nbsp;&nbsp;</i>";
89557
- }else if(levels[j]==1){
89558
- recPerson+="<i>董秘&nbsp;&nbsp;&nbsp;</i>";
89559
- }else if(levels[j]==2){
89560
- recPerson+="<i style='color:#00a0e9'>总经理&nbsp;&nbsp;&nbsp;</i>";
89561
- }else if(levels[j]==3){
89562
- recPerson+="<i style='color:#00a0e9'>董事长&nbsp;&nbsp;&nbsp;</i>";
89563
- }
89564
- }
89565
- }
89566
- var strDate=item.Date.toString();
89567
- var strNew=strDate.substring(0,4)+"-"+strDate.substring(4,6)+"-"+strDate.substring(6,8); //转换时间格式
89568
- strText+="<span>"+strNew+"&nbsp;&nbsp;&nbsp;接待:&nbsp;&nbsp;&nbsp;"+recPerson+"</span>";
89569
- }else if(infoType==KLINE_INFO_TYPE.BLOCKTRADING)
89570
- {
89571
- var showPriceInfo = item.ExtendData;
89572
- var strDate=item.Date.toString();
89573
- var strNew=strDate.substring(0,4)+"-"+strDate.substring(4,6)+"-"+strDate.substring(6,8); //转换时间格式
89574
- 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)+
89575
- "</i><br/><i class='rate-discount tipBoxTitle'>溢折价率:&nbsp;<strong style='color:"+ this.GetColor(showPriceInfo.Premium.toFixed(2))+"'>"+
89576
- showPriceInfo.Premium.toFixed(2)+"%</strong></i><i class='tipBoxTitle'>成交量(万股):&nbsp;"+showPriceInfo.Vol.toFixed(2)+"</i></span>";
89577
- }
89578
- else if (infoType==KLINE_INFO_TYPE.TRADEDETAIL) //龙虎榜
89579
- {
89580
- /*var detail=[
89581
- "日价格涨幅偏离值达到9.89%",
89582
- "日价格涨幅偏离值达格涨幅偏离值达格涨幅偏离值达到9.89%"
89583
- ]*/
89584
- var detail=item.ExtendData.Detail;
89585
- //格式:日期 上榜原因: detail[0].TypeExplain
89586
- // detail[1].TypeExplain
89587
- // 一周后涨幅: xx 四周后涨幅: xx
89588
- var str=strOld.toString();
89589
- var strNew=str.substring(0,4)+"-"+str.substring(4,6)+"-"+str.substring(6,8); //转换时间格式
89590
- var reasons = [];
89591
- for(var i in detail){
89592
- reasons += "<i>"+detail[i].TypeExplain+"</i><br/>"
89593
- // reasons += detail[i] + "<br/>"
89594
- }
89595
-
89596
- 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:"+
89597
- this.GetColor(item.ExtendData.FWeek.Week1.toFixed(2))+"'>"+ item.ExtendData.FWeek.Week1.toFixed(2)+
89598
- "%</strong>&nbsp;&nbsp;&nbsp;四周后涨幅:&nbsp;<strong style='color:"+this.GetColor(item.ExtendData.FWeek.Week4.toFixed(2))+";'>"+
89599
- item.ExtendData.FWeek.Week4.toFixed(2)+"%</strong></i></span>";
89600
- }
89601
- else
89602
- {
89603
- var str=strOld.toString();
89604
- var strNew=str.substring(0,4)+"-"+str.substring(4,6)+"-"+str.substring(6,8); //转换时间格式
89605
- strText+="<span>"+strNew+"&nbsp;&nbsp;&nbsp;"+item.Title+"</span>";
89606
- }
89607
- }
89608
- var titleInnerBox = $(".title-length").html(strText);
89609
-
89610
- $("#"+this.ID).html(titleInnerBox);
89611
-
89612
- //当信息超过8条时,添加“共XX条”统计总数
89613
- if(infoList.length > 8){
89614
- $("#"+this.ID).append(strBox);
89615
- }
89616
- }
89617
-
89618
-
89619
- this.GetColor=function(price)
89620
- {
89621
- if(price>0) return this.UpColor;
89622
- else if (price<0) return this.DownColor;
89623
- else return this.UnchagneColor;
89624
- }
89625
-
89626
- //显示窗口,改函数仅为KLineInfoTooltip使用
89627
- this.Show=function(left,top,width,height,tooltip,times)
89628
- {
89629
- //显示位置
89630
- $("#"+this.ID).css({'display':'block','top':top+'px', "left":left+'px', "width":width+'px', "height":height+'px' });
89631
-
89632
- function toolHide() {
89633
- tooltip.Hide();
89634
- }
89635
-
89636
- if (this.TimeOut!=null)
89637
- clearTimeout(this.TimeOut); //清空上一次的定时器,防止定时器不停的被调用
89638
-
89639
- //设置窗口定时隐藏
89640
- this.TimeOut=setTimeout(toolHide,times);
89641
-
89642
- }
89643
-
89644
-
89645
- this.DoModal=function(event)
89646
- {
89647
- var chart=event.data.Chart;
89648
- var infoType=event.data.InfoType; //信息地雷类型
89649
- var infoList=event.data.InfoList; //信息数据列表
89650
- var tooltip=chart.KLineInfoTooltip;
89651
-
89652
- if(!tooltip) return;
89653
- if (tooltip.ID==null) tooltip.Create(); //第1次 需要创建div
89654
-
89655
- tooltip.BindInfoList(infoType,infoList);
89656
-
89657
- var left=event.pageX;
89658
- var top=event.pageY+10;
89659
- var widthTool=380;
89660
- var heightTool=$("#"+tooltip.ID).height();
89661
-
89662
- if((left + widthTool) > chart.UIElement.getBoundingClientRect().width){
89663
- left = left - widthTool;
89664
- }
89665
- /*if(top+heightTool>chart.UIElement.getBoundingClientRect().height){
89666
- top=top-heightTool-45;
89667
- }*/
89668
-
89669
- tooltip.Show(left,top,widthTool,"auto",tooltip,8000);
89670
- }
89671
-
89672
- //鼠标离开
89673
- this.Leave=function(event)
89674
- {
89675
- var chart=event.data.Chart;
89676
- var tooltip=chart.KLineInfoTooltip;
89677
-
89678
- if(!tooltip || tooltip.ID==null) return;
89679
-
89680
- tooltip.Hide();
89681
- }
89682
- }
89683
-
89684
89461
  function MinuteSelectRectDialog(divElement)
89685
89462
  {
89686
89463
  this.newMethod=IDivDialog; //派生
@@ -105,6 +105,7 @@ HQData.NetworkFilter=function(data, callback)
105
105
  break;
106
106
 
107
107
  case "ResearchInfo::RequestData":
108
+ HQData.ResearchInfo_RequestData(data,callback);
108
109
  break;
109
110
 
110
111
  case "BlockTrading::RequestData":
@@ -624,7 +625,15 @@ HQData.PforecastInfo_RequestData=function(data,callback)
624
625
  var kItem=kData.Data[i];
625
626
  if (i%10!=4) continue;
626
627
 
627
- var itemReport={ date:kItem.Date, time:kItem.Time, title:`公告(${j}) xxxx`, }
628
+ var year=parseInt(kItem.Date/10000); //年份
629
+ var month=parseInt(kItem.Date/100)%100;
630
+ var reprotDate=0;
631
+ if (month>10) reprotDate=year*10000+1231;
632
+ else if (month>6) reprotDate=year*10000+930;
633
+ else if (month>3) reprotDate=year*10000+630;
634
+ else reprotDate=year*10000+331;
635
+
636
+ var itemReport={ date:kItem.Date, time:kItem.Time, title:`业绩预增`, reportdate:reprotDate, fweek:{ week1:0.04, week4:0.02 } }
628
637
 
629
638
  hqchartData.report.push(itemReport);
630
639
 
@@ -642,6 +651,29 @@ HQData.InvestorInfo_RequestData=function(data,callback)
642
651
  callback(TEST_NEWSINTERACT_DATA);
643
652
  }
644
653
 
654
+ HQData.ResearchInfo_RequestData=function(data,callback)
655
+ {
656
+ data.PreventDefault=true;
657
+ var symbol=data.Request.Symbol;
658
+
659
+ var hqchartData={ symbol:symbol, list:[] };
660
+
661
+ var kData=data.HQChart.ChartPaint[0].Data;
662
+ for(var i=0, j=1;i<kData.Data.length;++i)
663
+ {
664
+ var kItem=kData.Data[i];
665
+ if (i%20!=4) continue;
666
+
667
+ var itemReport={ researchdate:kItem.Date, id:i, level:[j%4], type:"xxx调研。" };
668
+
669
+ hqchartData.list.push(itemReport);
670
+
671
+ ++j;
672
+ }
673
+
674
+ callback(hqchartData);
675
+ }
676
+
645
677
  HQData.BlockTrading_RequestData=function(data,callback)
646
678
  {
647
679
  data.PreventDefault=true;