hqchart 1.1.13810 → 1.1.13819

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.
@@ -14264,54 +14264,6 @@ function JSSymbolData(ast,option,jsExecute)
14264
14264
  return financeData.get(id);
14265
14265
  }
14266
14266
 
14267
- this.GetFinOne=function(jobItem)
14268
- {
14269
- var aryArgs=this.JobArgumentsToArray(jobItem, 3);
14270
- var key=this.GetStockDataKey(jobItem,aryArgs);
14271
- if (this.StockData.has(key)) return this.Execute.RunNextJob();
14272
- var self=this;
14273
- if (this.NetworkFilter)
14274
- {
14275
- var dateRange=this.Data.GetDateRange();
14276
- var obj=
14277
- {
14278
- Name:'JSSymbolData::GetFinOne', //类名::
14279
- Explain:'财务数据FINONE(ID,Y,MMDD)',
14280
- JobID:jobItem.ID,
14281
- Request:{ Url:self.StockHistoryDayApiUrl, Type:'POST', Data:{ Args:aryArgs, symbol: this.Symbol, daterange:dateRange } },
14282
- Self:this,
14283
- PreventDefault:false
14284
- };
14285
- this.NetworkFilter(obj, function(recvData)
14286
- {
14287
- self.RecvStockValue(recvData,jobItem,key,1);
14288
- self.Execute.RunNextJob();
14289
- });
14290
-
14291
- if (obj.PreventDefault==true) return; //已被上层替换,不调用默认的网络请求
14292
- }
14293
-
14294
- var apiDownload=new DownloadFinOneData(
14295
- {
14296
- Job:jobItem,
14297
- Symbol:this.Symbol,
14298
- Url:this.StockHistoryDayApiUrl,
14299
- Args:aryArgs,
14300
- DataKey:key,
14301
- Callback:function(recvData, jobItem, key)
14302
- {
14303
- self.RecvStockValue(recvData, jobItem, key,1);
14304
- self.Execute.RunNextJob();
14305
- },
14306
- ErrorCallback:function(strError)
14307
- {
14308
- self.AddStockValueError(key,strError);
14309
- }
14310
- });
14311
-
14312
- apiDownload.Download();
14313
- }
14314
-
14315
14267
  this.GetStockDataKey=function(jobItem, aryArgs)
14316
14268
  {
14317
14269
  var key=jobItem.FunctionName;
@@ -14329,55 +14281,6 @@ function JSSymbolData(ast,option,jsExecute)
14329
14281
  return key;
14330
14282
  }
14331
14283
 
14332
- this.GetFinValue=function(jobItem)
14333
- {
14334
- var aryArgs=this.JobArgumentsToArray(jobItem, 1);
14335
- var lID=aryArgs[0];
14336
- var key=this.GetStockDataKey(jobItem,aryArgs);
14337
- if (this.StockData.has(key)) return this.Execute.RunNextJob();
14338
- var self=this;
14339
- if (this.NetworkFilter)
14340
- {
14341
- var dateRange=this.Data.GetDateRange();
14342
- var obj=
14343
- {
14344
- Name:'JSSymbolData::GetFinValue', //类名::
14345
- Explain:'财务数据FINVALUE(ID)',
14346
- JobID:jobItem.ID,
14347
- Request:{ Url:self.StockHistoryDayApiUrl, Type:'POST', Data:{ id:lID, symbol: this.Symbol, daterange:dateRange } },
14348
- Self:this,
14349
- PreventDefault:false
14350
- };
14351
- this.NetworkFilter(obj, function(recvData)
14352
- {
14353
- self.RecvStockValue(recvData,jobItem,key,0);
14354
- self.Execute.RunNextJob();
14355
- });
14356
-
14357
- if (obj.PreventDefault==true) return; //已被上层替换,不调用默认的网络请求
14358
- }
14359
-
14360
- var apiDownload=new DownloadFinValueData(
14361
- {
14362
- Job:jobItem,
14363
- Symbol:this.Symbol,
14364
- Url:this.StockHistoryDayApiUrl,
14365
- Args:aryArgs,
14366
- DataKey:key,
14367
- Callback:function(recvData, jobItem, key)
14368
- {
14369
- self.RecvStockValue(recvData, jobItem, key,0);
14370
- self.Execute.RunNextJob();
14371
- },
14372
- ErrorCallback:function(strError)
14373
- {
14374
- self.AddStockValueError(key,strError);
14375
- }
14376
- });
14377
-
14378
- apiDownload.Download();
14379
- }
14380
-
14381
14284
  this.GetFinance=function(jobItem)
14382
14285
  {
14383
14286
  var aryArgs=this.JobArgumentsToArray(jobItem, 1);
@@ -16707,6 +16610,16 @@ var JS_ARRAY_PROFESSIONAL_FINANCE=
16707
16610
  Name:"BKJYONE", JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_BKJYONE,
16708
16611
  Explain:"板块交易类数据BKJYONE(ID,N,Y,MMDD)", FuncName:"JSSymbolData::GetBKJYOne",ArgCount:4
16709
16612
  },
16613
+ {
16614
+ Name:"FINVALUE", JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_FINVALUE,
16615
+ Explain:"财务数据FINVALUE(ID)", FuncName:"JSSymbolData::GetFinValue",ArgCount:1
16616
+ },
16617
+ {
16618
+ Name:"FINONE", JobID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_FINONE,
16619
+ Explain:"财务数据FINONE(ID,Y,MMDD)", FuncName:"JSSymbolData::GetFinOne",ArgCount:3
16620
+ }
16621
+
16622
+
16710
16623
  ];
16711
16624
 
16712
16625
  function JSExecute(ast,option)
@@ -16915,14 +16828,12 @@ function JSExecute(ast,option)
16915
16828
  case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_SECTION_SF:
16916
16829
  return this.SymbolData.GetSectionFinanceData(jobItem); //财务截面报告数据
16917
16830
 
16918
- case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_FINONE:
16919
- return this.SymbolData.GetFinOne(jobItem);
16920
- case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_FINVALUE:
16921
- return this.SymbolData.GetFinValue(jobItem);
16922
16831
  case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_FINANCE:
16923
16832
  return this.SymbolData.GetFinance(jobItem);
16924
16833
 
16925
16834
  //专业财务数据
16835
+ case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_FINONE:
16836
+ case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_FINVALUE:
16926
16837
  case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_GPJYVALUE:
16927
16838
  case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_GPJYONE:
16928
16839
  case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_SCJYVALUE:
@@ -25292,349 +25203,6 @@ ScriptIndexConsole.SetDomain = function (domain, cacheDomain) //修改API地
25292
25203
  JSComplier.SetDomain(domain,cacheDomain);
25293
25204
  }
25294
25205
 
25295
- //////////////////////////////////////////////////////////////////////////////////////////////
25296
- //内置财务数据下载
25297
- //
25298
- function DownloadFinValueData(obj)
25299
- {
25300
- this.Url=obj.Url;
25301
- this.Job=obj.Job;
25302
- this.Symbol=obj.Symbol;
25303
- this.Args=obj.Args;
25304
- this.DataKey=obj.DataKey;
25305
- this.RecvCallback=obj.Callback;
25306
- this.ErrorCallback=obj.ErrorCallback;
25307
-
25308
- this.Download=function()
25309
- {
25310
- var self=this;
25311
- var fieldList=this.GetFieldList();
25312
- if (!fieldList)
25313
- {
25314
- message=`${this.Job.FunctionName}(${this.Args[0]}) can't support.`;
25315
- this.ErrorCallback(message);
25316
- self.RecvCallback(null, self.Job, self.DataKey);
25317
- return;
25318
- }
25319
-
25320
- //请求数据
25321
- JSNetwork.HttpRequest({
25322
- url: this.Url,
25323
- data:
25324
- {
25325
- "field": fieldList,
25326
- "symbol": [this.Symbol],
25327
- "condition":[ {"item":["finance","doc","exists","true"]}] ,
25328
- "start": 0,
25329
- "end": 200
25330
- },
25331
- type:"post",
25332
- dataType: "json",
25333
- async:true,
25334
- success: function (recvData)
25335
- {
25336
- var data=self.ToHQChartData(recvData);
25337
- if (data) //排序
25338
- data.sort(function (a, b) { return (a.Date - b.Date) });
25339
-
25340
- self.RecvCallback(data, self.Job, self.DataKey);
25341
- }
25342
- });
25343
- }
25344
-
25345
- this.ToHQChartData=function(recvData)
25346
- {
25347
- if (!recvData.stock || recvData.stock.length!=1) return null;
25348
-
25349
- var aryData=[];
25350
- var setDate=new Set(); //有重复数据 去掉
25351
- var stock=recvData.stock[0];
25352
- for(var i in stock.stockday)
25353
- {
25354
- var item=stock.stockday[i];
25355
- if (item.announcement1)
25356
- {
25357
- var hqchartItem=this.ToHQChartItemData(item.announcement1, item.finance1, item);
25358
- if (hqchartItem && !setDate.has(hqchartItem.Date))
25359
- {
25360
- aryData.push(hqchartItem);
25361
- setDate.add(hqchartItem.Date);
25362
- }
25363
- }
25364
-
25365
- if (item.announcement2)
25366
- {
25367
- var hqchartItem=this.ToHQChartItemData(item.announcement2, item.finance2, item);
25368
- if (hqchartItem && !setDate.has(hqchartItem.Date))
25369
- {
25370
- aryData.push(hqchartItem);
25371
- setDate.add(hqchartItem.Date);
25372
- }
25373
- }
25374
-
25375
- if (item.announcement3)
25376
- {
25377
- var hqchartItem=this.ToHQChartItemData(item.announcement3, item.finance3, item);
25378
- if (hqchartItem && !setDate.has(hqchartItem.Date))
25379
- {
25380
- aryData.push(hqchartItem);
25381
- setDate.add(hqchartItem.Date);
25382
- }
25383
- }
25384
-
25385
- if (item.announcement4)
25386
- {
25387
- var hqchartItem=this.ToHQChartItemData(item.announcement4, item.finance4, item);
25388
- if (hqchartItem && !setDate.has(hqchartItem.Date))
25389
- {
25390
- aryData.push(hqchartItem);
25391
- setDate.add(hqchartItem.Date);
25392
- }
25393
- }
25394
- }
25395
-
25396
- return aryData;
25397
- }
25398
-
25399
- //{ Date:日期 , Value:数值 }
25400
- this.ToHQChartItemData=function(announcement, finance, sourceItem)
25401
- {
25402
- var id=this.Args[0];
25403
- var date=announcement.year*10000;
25404
- var quarter=announcement.quarter;
25405
- switch(quarter)
25406
- {
25407
- case 1:
25408
- date+=331;
25409
- break;
25410
- case 2:
25411
- date+=630;
25412
- break;
25413
- case 3:
25414
- date+=930;
25415
- break;
25416
- case 4:
25417
- date+=1231;
25418
- break;
25419
- default:
25420
- return null;
25421
- }
25422
-
25423
- var result={ Date:date, Value:0 };
25424
- switch(id)
25425
- {
25426
- case 0:
25427
- result.Value=date%1000000; //0--返回报告期(YYMMDD格式),150930表示为2015年第三季
25428
- break;
25429
- case 1:
25430
- result.Value=finance.persearning;
25431
- break;
25432
- case 3:
25433
- result.Value=finance.peruprofit;
25434
- break;
25435
- case 4:
25436
- result.Value=finance.pernetasset;
25437
- break;
25438
- case 5:
25439
- result.Value=finance.percreserve;
25440
- break;
25441
- case 6:
25442
- result.Value=finance.woewa;
25443
- break;
25444
- case 7:
25445
- result.Value=finance.perccfo;
25446
- break;
25447
- case 8:
25448
- result.Value=finance.monetaryfunds;
25449
- break;
25450
- case 11:
25451
- result.Value=finance.areceivable;
25452
- break;
25453
- }
25454
-
25455
- return result;
25456
- }
25457
-
25458
- this.GetFieldList=function()
25459
- {
25460
- var id=this.Args[0];
25461
- switch(id)
25462
- {
25463
- case 0:
25464
- return ["finance.date"];
25465
- case 1: //persearning 每股收益
25466
- return ["finance.persearning"];
25467
- case 3: //peruprofit 每股未分配利润
25468
- return ["finance.peruprofit"];
25469
- case 4: //pernetasset 每股净资产
25470
- return ["finance.pernetasset"];
25471
- case 5: //percreserve 每股资本公积金
25472
- return ["finance.percreserve"];
25473
- case 6: //woewa 加权平均净资产收益
25474
- return ["finance.woewa"];
25475
- case 7: //perccfo 每股经营性现金流
25476
- return ["finance.perccfo"];
25477
- case 8: //monetaryfunds 货币资金
25478
- return ["finance.monetaryfunds"];
25479
- case 11: //areceivable 应收账款
25480
- return ["finance.areceivable"];
25481
- default:
25482
- return null;
25483
- }
25484
- }
25485
- }
25486
-
25487
- /////////////////////////////////////////////////////////
25488
- // 内置财务数据下载 某一期的数据
25489
- //
25490
- function DownloadFinOneData(obj)
25491
- {
25492
- this.newMethod=DownloadFinValueData; //派生
25493
- this.newMethod(obj);
25494
- delete this.newMethod;
25495
-
25496
- this.Download=function()
25497
- {
25498
- var self=this;
25499
- var fieldList=this.GetFieldList();
25500
- if (!fieldList)
25501
- {
25502
- message=`${this.Job.FunctionName}(${this.Args[0]}, ${this.Args[1]}, ${this.Args[2]}) can't support.`;
25503
- this.ErrorCallback(message);
25504
- self.RecvCallback(null, self.Job, self.DataKey);
25505
- return;
25506
- }
25507
-
25508
- var aryCondition=[ {"item":["finance","doc","exists","true"] } ];
25509
-
25510
- var year=this.Args[1];
25511
- var month=this.Args[2];
25512
- var dataIndex=0;
25513
- var dataEnd=3;
25514
- var preYear=null;
25515
- if (year==0 && month==0) //如果Y和MMDD都为0,表示最新的财报;
25516
- {
25517
-
25518
- }
25519
- else if (year==0 && month<300) //如果Y为0,MMDD为小于300的数字,表示最近一期向前推MMDD期的数据,如果是331,630,930,1231这些,表示最近一期的对应季报的数据;
25520
- {
25521
- dataIndex=month;
25522
- dataEnd=200;
25523
- }
25524
- else if (month==0 && year<1000) //如果Y为0,MMDD为小于300的数字,表示最近一期向前推MMDD期的数据,如果是331,630,930,1231这些,表示最近一期的对应季报的数据;
25525
- {
25526
- preYear=year;
25527
- }
25528
- else if (year>1909)
25529
- {
25530
- if (month==331)
25531
- {
25532
- aryCondition=
25533
- [
25534
- {"item":["announcement1.year","int32","eq",year]},
25535
- {"item":["finance1","doc","exists","true"]}
25536
- ];
25537
-
25538
- fieldList.push("announcement1.year");
25539
- fieldList.push("announcement1.quarter");
25540
- }
25541
- else if (month==630)
25542
- {
25543
- aryCondition=
25544
- [
25545
- {"item":["announcement2.year","int32","eq",year]},
25546
- {"item":["finance2","doc","exists","true"]}
25547
- ];
25548
-
25549
- fieldList.push("announcement2.year");
25550
- fieldList.push("announcement2.quarter");
25551
- }
25552
- else if (month==930)
25553
- {
25554
- aryCondition=
25555
- [
25556
- {"item":["announcement3.year","int32","eq",year]},
25557
- {"item":["finance3","doc","exists","true"]}
25558
- ];
25559
-
25560
- fieldList.push("announcement4.year");
25561
- fieldList.push("announcement4.quarter");
25562
- }
25563
- else
25564
- {
25565
- aryCondition=
25566
- [
25567
- {"item":["announcement4.year","int32","eq",year]},
25568
- {"item":["finance4","doc","exists","true"]}
25569
- ];
25570
-
25571
- fieldList.push("announcement4.year");
25572
- fieldList.push("announcement4.quarter");
25573
- }
25574
- }
25575
-
25576
- //请求数据
25577
- JSNetwork.HttpRequest({
25578
- url: this.Url,
25579
- data:
25580
- {
25581
- "field": fieldList,
25582
- "symbol": [this.Symbol],
25583
- "condition":aryCondition,
25584
- "start": 0,
25585
- "end": dataEnd
25586
- },
25587
- type:"post",
25588
- dataType: "json",
25589
- async:true,
25590
- success: function (recvData)
25591
- {
25592
- var data=self.ToHQChartData(recvData);
25593
- var result=null;
25594
- if (data && data.length>0)
25595
- {
25596
- data.sort(function (a, b) { return (b.Date-a.Date) });
25597
- if (preYear==null)
25598
- result=data[dataIndex]; //返回一个数据
25599
- else
25600
- result=self.GetPreYearData(data, preYear);
25601
- }
25602
- self.RecvCallback(result, self.Job, self.DataKey);
25603
- }
25604
- });
25605
- }
25606
-
25607
- this.GetPreYearData=function(data, preYear)
25608
- {
25609
- //331,630,930,1231这些,表示最近一期的对应季报的数据;
25610
- if (preYear==331 || preYear==630|| preYear==930 || preYear==1231)
25611
- {
25612
- for(var i in data)
25613
- {
25614
- var item=data[i];
25615
- if (item.Date%10000==preYear) return item;
25616
- }
25617
- }
25618
- else
25619
- {
25620
- //如果MMDD为0,Y为一数字,表示最近一期向前推Y年的同期数据;
25621
- var month=data[0].Date%1000;
25622
- for(var i=1, j=0; i<data.length ;++i)
25623
- {
25624
- var item=data[i];
25625
- if (item.Date%10000==month)
25626
- {
25627
- ++j;
25628
- if (j==preYear) return item;
25629
- }
25630
- }
25631
-
25632
- return null;
25633
- }
25634
- }
25635
- }
25636
-
25637
-
25638
25206
  function DownloadFinanceData(obj)
25639
25207
  {
25640
25208
  this.Url=obj.Url;
@@ -12636,7 +12636,9 @@ function AverageWidthFrame()
12636
12636
  var exLine=item.ExtendLine[0];
12637
12637
  if (IFrameSplitOperator.IsNumber(exLine.Width))
12638
12638
  {
12639
- if (i==0) this.DrawLine(left,left-exLine.Width,y,item.LineColor,item.LineType,item);
12639
+ var lineType=item.LineType;
12640
+ if (IFrameSplitOperator.IsNumber(exLine.Type)) lineType=exLine.Type; //外部设置延长线样式
12641
+ if (i==0) this.DrawLine(left,left-exLine.Width,y,item.LineColor,lineType,item);
12640
12642
  textLeft-=exLine.Width;
12641
12643
  rectLeft-=exLine.Width
12642
12644
  }
@@ -12825,7 +12827,9 @@ function AverageWidthFrame()
12825
12827
  var exLine=item.ExtendLine[1];
12826
12828
  if (IFrameSplitOperator.IsNumber(exLine.Width))
12827
12829
  {
12828
- if (i==0) this.DrawLine(right,textLeft+exLine.Width,y,item.LineColor,item.LineType,item);
12830
+ var lineType=item.LineType;
12831
+ if (IFrameSplitOperator.IsNumber(exLine.Type)) lineType=exLine.Type; //外部设置延长线样式
12832
+ if (i==0) this.DrawLine(right,textLeft+exLine.Width,y,item.LineColor,lineType,item);
12829
12833
  textLeft+=exLine.Width;
12830
12834
  }
12831
12835
  }