hqchart 1.1.14269 → 1.1.14276

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.
@@ -74558,9 +74558,9 @@ function JSChartResource()
74558
74558
  SortIcon:
74559
74559
  {
74560
74560
  Size:12, Family:"iconfont",
74561
- Arrow:[null, "\ue6b2", "\ue6b1"], //[0]=默认排序的图标背景色
74562
- Color:[null, "rgb(255,0,0)", "rgb(255,0,0)"],
74563
- Margin:{ Left:0, Bottom:6 }
74561
+ Arrow:["\ue704", "\ue81b", "\uf0c9"], //[0]=默认排序的图标背景色
74562
+ Color:['rgb(169,169,169)', "rgb(51,51,51)", "rgb(51,51,51)"],
74563
+ Margin:{ Left:1*GetDevicePixelRatio(), Bottom:2, Right:0,}
74564
74564
  },
74565
74565
 
74566
74566
  Item:
@@ -75822,6 +75822,23 @@ function JSChartResource()
75822
75822
  }
75823
75823
  }
75824
75824
 
75825
+ if (item.SortIcon)
75826
+ {
75827
+ var sort=item.SortIcon;
75828
+ if (IFrameSplitOperator.IsNonEmptyArray(sort.Color)) this.Report.SortIcon.Color=sort.Color.slice();
75829
+ if (IFrameSplitOperator.IsNumber(sort.Size)) this.Report.SortIcon.Size=sort.Size;
75830
+ if (sort.Family) this.Report.SortIcon.Family=sort.Family;
75831
+ if (IFrameSplitOperator.IsNonEmptyArray(sort.Arrow)) this.Report.SortIcon.Arrow=sort.Arrow.slice();
75832
+ if (sort.Margin)
75833
+ {
75834
+ var margin=sort.Margin;
75835
+ if (IFrameSplitOperator.IsNumber(margin.Left)) this.Report.SortIcon.Margin.Left=margin.Left;
75836
+ if (IFrameSplitOperator.IsNumber(margin.Right)) this.Report.SortIcon.Margin.Right=margin.Right;
75837
+ if (IFrameSplitOperator.IsNumber(margin.Top)) this.Report.SortIcon.Margin.Top=margin.Top;
75838
+ if (IFrameSplitOperator.IsNumber(margin.Bottom)) this.Report.SortIcon.Margin.Bottom=margin.Bottom;
75839
+ }
75840
+ }
75841
+
75825
75842
  if (item.Item)
75826
75843
  {
75827
75844
  var row=item.Item;
@@ -116665,9 +116682,6 @@ function JSExecute(ast,option)
116665
116682
 
116666
116683
  case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_OTHER_SYMBOL_DATA: //指定股票数据
116667
116684
  return this.SymbolData.GetOtherSymbolData(jobItem);
116668
-
116669
- case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_RELEASE_DATE_DATA:
116670
- return this.SymbolData.GetCompanyReleaseDate(jobItem.ID);
116671
116685
 
116672
116686
  case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_BALANCE:
116673
116687
  case JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_MARGIN_RATE:
@@ -126254,6 +126268,12 @@ function GetBlackStyle()
126254
126268
  //Mergin:{ Left:5, Right:5, Top:4, Bottom:2 },
126255
126269
  Font:{ Size:12, Name:"微软雅黑" }
126256
126270
  },
126271
+
126272
+ //排序图标
126273
+ SortIcon:
126274
+ {
126275
+ Color:['rgb(105,105,105)', "rgb(255,255,255)", "rgb(255,255,255)"],
126276
+ },
126257
126277
 
126258
126278
  Item:
126259
126279
  {
@@ -128143,15 +128163,8 @@ function JSReportChart(divElement)
128143
128163
  if (option.EnableResize==true) this.CreateResizeListener();
128144
128164
 
128145
128165
  if (option.EnablePopMenuV2===true) chart.InitalPopMenu();
128146
- if (option.EnableTooltip)
128147
- {
128148
- this.CreateExtraCanvasElement(JSReportChart.TooltipCursorCanvasKey, { ZIndex:99 });
128149
- }
128150
-
128151
- if (option.MinuteChartTooltip && option.MinuteChartTooltip.Enable)
128152
- {
128153
- chart.InitalMinuteChartTooltip(option.MinuteChartTooltip);
128154
- }
128166
+ if (option.FloatTooltip && option.FloatTooltip.Enable) chart.InitalFloatTooltip(option.FloatTooltip); //提示信息
128167
+ if (option.MinuteChartTooltip && option.MinuteChartTooltip.Enable) chart.InitalMinuteChartTooltip(option.MinuteChartTooltip);
128155
128168
 
128156
128169
  if (option.Symbol) chart.Symbol=option.Symbol;
128157
128170
  if (option.Name) chart.Name=option.Name;
@@ -128321,8 +128334,6 @@ function JSReportChart(divElement)
128321
128334
  }
128322
128335
  }
128323
128336
 
128324
- JSReportChart.TooltipCursorCanvasKey="hq_report_tooltip"; //提示信息
128325
-
128326
128337
 
128327
128338
  JSReportChart.Init=function(divElement)
128328
128339
  {
@@ -128401,9 +128412,6 @@ function JSReportChartContainer(uielement)
128401
128412
  this.SplashTitle={ StockList:"下载码表中.....", MemberList:"下载成分中....." } ;
128402
128413
 
128403
128414
  this.Canvas=uielement.getContext("2d"); //画布
128404
-
128405
- this.TooltipCanvas;
128406
- this.ChartTooltip;
128407
128415
 
128408
128416
  this.Tooltip=document.createElement("div");
128409
128417
  this.Tooltip.className='jsreport-tooltip';
@@ -128487,6 +128495,7 @@ function JSReportChartContainer(uielement)
128487
128495
  this.StopAutoUpdate();
128488
128496
 
128489
128497
  this.DestroyMinuteChartTooltip();
128498
+ this.DestroyFloatTooltip();
128490
128499
  }
128491
128500
 
128492
128501
  this.StopAutoDragScrollTimer=function()
@@ -128525,6 +128534,51 @@ function JSReportChartContainer(uielement)
128525
128534
  this.TooltipMinuteChart=null;
128526
128535
  }
128527
128536
 
128537
+ this.InitalFloatTooltip=function(option)
128538
+ {
128539
+ if (this.FloatTooltip) return;
128540
+
128541
+ this.FloatTooltip=new JSFloatTooltip();
128542
+ this.FloatTooltip.Inital(this, option);
128543
+ this.FloatTooltip.Create();
128544
+ }
128545
+
128546
+ this.HideFloatTooltip=function()
128547
+ {
128548
+ if (!this.FloatTooltip) return;
128549
+
128550
+ this.FloatTooltip.Hide();
128551
+ }
128552
+
128553
+ this.DestroyFloatTooltip=function()
128554
+ {
128555
+ if (!this.FloatTooltip) return;
128556
+
128557
+ this.FloatTooltip.Destroy();
128558
+ this.FloatTooltip=null;
128559
+ }
128560
+
128561
+ this.DrawFloatTooltip=function(point,toolTip)
128562
+ {
128563
+ if (!this.FloatTooltip) return;
128564
+
128565
+ this.UpdateFloatTooltip(point, toolTip)
128566
+ }
128567
+
128568
+ this.UpdateFloatTooltip=function(point, toolTip)
128569
+ {
128570
+ if (!this.FloatTooltip) return;
128571
+
128572
+ var sendData=
128573
+ {
128574
+ Tooltip:toolTip,
128575
+ Point:point,
128576
+ DataType:3,
128577
+ };
128578
+
128579
+ this.FloatTooltip.Update(sendData);
128580
+ }
128581
+
128528
128582
  //data={ Symbol }
128529
128583
  this.ShowMinuteChartTooltip=function(x,y, data)
128530
128584
  {
@@ -128675,12 +128729,6 @@ function JSReportChartContainer(uielement)
128675
128729
 
128676
128730
  this.ChartPaint[0]=chart;
128677
128731
 
128678
- //提示信息
128679
- var chartTooltip=new ChartCellTooltip();
128680
- chartTooltip.Frame=this.Frame;
128681
- chartTooltip.ChartBorder=this.Frame.ChartBorder;
128682
- this.ChartTooltip=chartTooltip;
128683
-
128684
128732
  //页脚
128685
128733
  if (option && option.PageInfo===true)
128686
128734
  {
@@ -128702,6 +128750,7 @@ function JSReportChartContainer(uielement)
128702
128750
  if (IFrameSplitOperator.IsNumber(option.FixedRowCount)) chart.FixedRowCount=option.FixedRowCount; //固定行
128703
128751
  if (IFrameSplitOperator.IsBool(option.ItemBorder)) chart.IsDrawBorder=option.ItemBorder; //单元格边框
128704
128752
  if (IFrameSplitOperator.IsNumber(option.SelectedModel)) chart.SelectedModel=option.SelectedModel;
128753
+ if (IFrameSplitOperator.IsNumber(option.HeaderRowCount)) chart.HeaderRowCount=option.HeaderRowCount;
128705
128754
 
128706
128755
  if (IFrameSplitOperator.IsNonEmptyArray(option.FixedSymbol))
128707
128756
  {
@@ -128793,8 +128842,6 @@ function JSReportChartContainer(uielement)
128793
128842
  {
128794
128843
  this.DelayDraw(500);
128795
128844
  }
128796
-
128797
- this.DrawTooltip(this.LastMouseStatus.TooltipStatus);
128798
128845
  }
128799
128846
 
128800
128847
  this.DelayDraw=function(frequency)
@@ -129726,6 +129773,7 @@ function JSReportChartContainer(uielement)
129726
129773
  {
129727
129774
  this.LastMouseStatus.TooltipStatus=null;
129728
129775
  this.HideMinuteChartTooltip();
129776
+ this.HideFloatTooltip();
129729
129777
  if (this.GotoNextItem(1))
129730
129778
  {
129731
129779
  this.Draw();
@@ -129736,6 +129784,7 @@ function JSReportChartContainer(uielement)
129736
129784
  {
129737
129785
  this.LastMouseStatus.TooltipStatus=null;
129738
129786
  this.HideMinuteChartTooltip();
129787
+ this.HideFloatTooltip();
129739
129788
  if (this.GotoNextItem(-1))
129740
129789
  {
129741
129790
  this.Draw();
@@ -129749,6 +129798,7 @@ function JSReportChartContainer(uielement)
129749
129798
  {
129750
129799
  this.LastMouseStatus.TooltipStatus=null;
129751
129800
  this.HideMinuteChartTooltip();
129801
+ this.HideFloatTooltip();
129752
129802
  if (this.GotoNextPage(this.PageUpDownCycle))
129753
129803
  {
129754
129804
  this.Draw();
@@ -129759,6 +129809,7 @@ function JSReportChartContainer(uielement)
129759
129809
  {
129760
129810
  this.LastMouseStatus.TooltipStatus=null;
129761
129811
  this.HideMinuteChartTooltip();
129812
+ this.HideFloatTooltip();
129762
129813
  if (this.GotoPreviousPage(this.PageUpDownCycle))
129763
129814
  {
129764
129815
  this.Draw();
@@ -129781,6 +129832,7 @@ function JSReportChartContainer(uielement)
129781
129832
  if (keyID==116) return; //F15刷新不处理
129782
129833
 
129783
129834
  this.HideMinuteChartTooltip();
129835
+ this.HideFloatTooltip();
129784
129836
  switch(keyID)
129785
129837
  {
129786
129838
  case 33: //page up
@@ -130181,7 +130233,17 @@ function JSReportChartContainer(uielement)
130181
130233
  if (mouseStatus) this.UIElement.style.cursor=mouseStatus.Cursor;
130182
130234
 
130183
130235
  if (bDraw || bDrawTab) this.Draw();
130184
- else if (bDrawTooltip) this.DrawTooltip(this.LastMouseStatus.TooltipStatus);
130236
+
130237
+ if (this.LastMouseStatus.TooltipStatus)
130238
+ {
130239
+ var xTooltip = e.clientX-this.UIElement.getBoundingClientRect().left;
130240
+ var yTooltip = e.clientY-this.UIElement.getBoundingClientRect().top;
130241
+ this.DrawFloatTooltip({X:xTooltip, Y:yTooltip, YMove:20/pixelTatio},this.LastMouseStatus.TooltipStatus.Data);
130242
+ }
130243
+ else
130244
+ {
130245
+ this.HideFloatTooltip();
130246
+ }
130185
130247
 
130186
130248
  if (bShowChartTooltip)
130187
130249
  {
@@ -130196,6 +130258,7 @@ function JSReportChartContainer(uielement)
130196
130258
  this.UIOnMounseOut=function(e)
130197
130259
  {
130198
130260
  this.HideMinuteChartTooltip();
130261
+ this.HideFloatTooltip();
130199
130262
 
130200
130263
  var bDraw=false;
130201
130264
  var tabChart=this.GetTabChart();
@@ -130222,6 +130285,7 @@ function JSReportChartContainer(uielement)
130222
130285
  this.UIOnMouseleave=function(e)
130223
130286
  {
130224
130287
  this.HideMinuteChartTooltip();
130288
+ this.HideFloatTooltip();
130225
130289
 
130226
130290
  var tabChart=this.GetTabChart();
130227
130291
  if (tabChart && tabChart.MoveOnTabIndex>=0)
@@ -131778,16 +131842,16 @@ function JSReportChartContainer(uielement)
131778
131842
  case REPORT_COLUMN_ID.VOL_OUT_ID:
131779
131843
  case REPORT_COLUMN_ID.DATE_ID:
131780
131844
 
131781
- case TREPORT_COLUMN_ID.RESERVE_NUMBER1_ID:
131782
- case TREPORT_COLUMN_ID.RESERVE_NUMBER2_ID:
131783
- case TREPORT_COLUMN_ID.RESERVE_NUMBER3_ID:
131784
- case TREPORT_COLUMN_ID.RESERVE_NUMBER4_ID:
131785
- case TREPORT_COLUMN_ID.RESERVE_NUMBER5_ID:
131786
- case TREPORT_COLUMN_ID.RESERVE_NUMBER6_ID:
131787
- case TREPORT_COLUMN_ID.RESERVE_NUMBER7_ID:
131788
- case TREPORT_COLUMN_ID.RESERVE_NUMBER8_ID:
131789
- case TREPORT_COLUMN_ID.RESERVE_NUMBER9_ID:
131790
- case TREPORT_COLUMN_ID.RESERVE_NUMBER10_ID:
131845
+ case REPORT_COLUMN_ID.RESERVE_NUMBER1_ID:
131846
+ case REPORT_COLUMN_ID.RESERVE_NUMBER2_ID:
131847
+ case REPORT_COLUMN_ID.RESERVE_NUMBER3_ID:
131848
+ case REPORT_COLUMN_ID.RESERVE_NUMBER4_ID:
131849
+ case REPORT_COLUMN_ID.RESERVE_NUMBER5_ID:
131850
+ case REPORT_COLUMN_ID.RESERVE_NUMBER6_ID:
131851
+ case REPORT_COLUMN_ID.RESERVE_NUMBER7_ID:
131852
+ case REPORT_COLUMN_ID.RESERVE_NUMBER8_ID:
131853
+ case REPORT_COLUMN_ID.RESERVE_NUMBER9_ID:
131854
+ case REPORT_COLUMN_ID.RESERVE_NUMBER10_ID:
131791
131855
 
131792
131856
  return this.LocalNumberSort(left, right, column, sortType);
131793
131857
  case REPORT_COLUMN_ID.CUSTOM_NUMBER_TEXT_ID: //自定义数值字段
@@ -132173,28 +132237,6 @@ function JSReportChartContainer(uielement)
132173
132237
 
132174
132238
  return true;
132175
132239
  }
132176
-
132177
- this.DrawTooltip=function(tooltipStatus)
132178
- {
132179
- if (!this.GetExtraCanvas) return;
132180
- if (!this.TooltipCanvas)
132181
- {
132182
- var finder=this.GetExtraCanvas(JSReportChart.TooltipCursorCanvasKey);
132183
- if (!finder) return;
132184
- this.TooltipCanvas=finder.Canvas;
132185
- }
132186
-
132187
- if (!this.TooltipCanvas) return;
132188
- this.ClearCanvas(this.TooltipCanvas);
132189
- if (!this.ChartTooltip) return;
132190
-
132191
- if (!tooltipStatus || !tooltipStatus.Data) return;
132192
-
132193
- this.ChartTooltip.Canvas=this.TooltipCanvas;
132194
- this.ChartTooltip.Point={ X:tooltipStatus.X, Y:tooltipStatus.Y };
132195
- this.ChartTooltip.Data=tooltipStatus.Data.Data;
132196
- this.ChartTooltip.Draw();
132197
- }
132198
132240
  }
132199
132241
 
132200
132242
 
@@ -132523,6 +132565,7 @@ function ChartReport()
132523
132565
  this.SelectedRow=-1; //选中行ID
132524
132566
  this.SelectedFixedRow=-1; //选中固定行ID
132525
132567
  this.IsDrawBorder=1; //是否绘制单元格边框
132568
+ this.HeaderRowCount=1; //表头行数
132526
132569
 
132527
132570
  //多选模式
132528
132571
  this.MultiSelectModel=0; //0=禁用 1=开启
@@ -132567,6 +132610,7 @@ function ChartReport()
132567
132610
  Margin:
132568
132611
  {
132569
132612
  Left:g_JSChartResource.Report.SortIcon.Margin.Left,
132613
+ Right:g_JSChartResource.Report.SortIcon.Margin.Right,
132570
132614
  Bottom:g_JSChartResource.Report.SortIcon.Margin.Bottom
132571
132615
  }
132572
132616
  }
@@ -132655,6 +132699,7 @@ function ChartReport()
132655
132699
  this.NameSymbolFont={ Symbol:null, Name:null };
132656
132700
  this.RowCount=0; //一屏显示行数
132657
132701
  this.HeaderHeight=0; //表头高度
132702
+ this.HeaderFontHeight=0; //表头字体高度
132658
132703
  this.FixedRowHeight=0; //固定行高度
132659
132704
  this.RowHeight=0; //行高度
132660
132705
  this.ItemTextLines=1; //单元格输出行数
@@ -132788,6 +132833,7 @@ function ChartReport()
132788
132833
  if (!colItem) return null;
132789
132834
 
132790
132835
  if (item.Title) colItem.Title=item.Title;
132836
+ if (IFrameSplitOperator.IsNonEmptyArray(item.AryTitle)) colItem.AryTitle=item.AryTitle;
132791
132837
  if (item.TextAlign) colItem.TextAlign=item.TextAlign;
132792
132838
  if (item.TextColor) colItem.TextColor=item.TextColor;
132793
132839
  if (item.HeaderColor) colItem.HeaderColor=item.HeaderColor;
@@ -133320,7 +133366,17 @@ function ChartReport()
133320
133366
  if (item.Width<itemWidth) item.Width=itemWidth;
133321
133367
  }
133322
133368
 
133323
- this.HeaderHeight=this.GetFontHeight(this.HeaderFont,"擎")+ this.HeaderMergin.Top+ this.HeaderMergin.Bottom;
133369
+ this.HeaderFontHeight=this.GetFontHeight(this.HeaderFont,"擎");
133370
+ if (this.HeaderRowCount<=1) //单行
133371
+ {
133372
+ this.HeaderHeight=this.HeaderFontHeight+(this.HeaderMergin.Top+this.HeaderMergin.Bottom);
133373
+ }
133374
+ else
133375
+ {
133376
+ this.HeaderHeight=(this.HeaderFontHeight*this.HeaderRowCount)+(this.HeaderMergin.Top+this.HeaderMergin.Bottom);
133377
+ }
133378
+
133379
+
133324
133380
  if (!this.IsShowHeader) this.HeaderHeight=0;
133325
133381
  if (this.FixedRowCount<=0) this.FixedRowHeight=0;
133326
133382
 
@@ -133337,90 +133393,68 @@ function ChartReport()
133337
133393
  this.IsShowAllColumn=(subWidth<reportWidth);
133338
133394
  }
133339
133395
 
133340
- this.DrawHeader=function()
133396
+ this.DrawHeaderItem=function(column, rtCell, index)
133341
133397
  {
133342
- if (!this.IsShowHeader) return;
133343
-
133344
- var left=this.RectClient.Left;
133345
- var top=this.RectClient.Top;
133346
- var y=top+this.HeaderMergin.Top+(this.HeaderHeight-this.HeaderMergin.Top-this.HeaderMergin.Bottom)/2;
133347
- var yBottom=top+this.HeaderHeight;
133348
- var bDrawSortBG=this.IsDrawSortBGIcon();
133349
-
133350
- this.Canvas.font=this.HeaderFont;
133351
-
133352
- var textLeft=left;
133353
- //固定列
133354
- for(var i=0;i<this.FixedColumn && i<this.Column.length;++i)
133398
+ if (column.HeaderBGColor) //背景色
133355
133399
  {
133356
- var item=this.Column[i];
133357
- var itemWidth=item.Width;
133358
- var textWidth=itemWidth-this.HeaderMergin.Left-this.HeaderMergin.Right;
133359
- var x=textLeft+this.HeaderMergin.Left;
133400
+ this.DrawItemBG({ Rect:rtCell, BGColor:column.HeaderBGColor });
133401
+ }
133360
133402
 
133361
- if (item.HeaderBGColor)
133362
- {
133363
- var rtBG={Left:textLeft, Top:top, Width:itemWidth, Height:this.HeaderHeight };
133364
- rtBG.Right=rtBG.Left+rtBG.Width;
133365
- rtBG.Bottom=rtBG.Top+rtBG.Height;
133366
- this.DrawItemBG({ Rect:rtBG, BGColor:item.HeaderBGColor });
133367
- }
133403
+ var textWidth=rtCell.Width-this.HeaderMergin.Left-this.HeaderMergin.Right;
133404
+ //AryText=[ { Text:标题, Sort:{Type:排序}, Icon:图标 }]
133405
+ var drawInfo={ Rect:rtCell, AryText:[ { Text:null} ], YText:rtCell.Bottom-this.HeaderMergin.Bottom, Index:index, TextWidth:textWidth };
133368
133406
 
133369
- var iconWidth=0;
133370
- if (item.Icon && item.Icon.Symbol) //图标
133407
+ if (this.HeaderRowCount>1) //多行
133408
+ {
133409
+ if (IFrameSplitOperator.IsNonEmptyArray(column.AryTitle))
133371
133410
  {
133372
- var iconWidth=item.Icon.Size;
133373
- if (item.Icon.Margin)
133411
+ drawInfo.AryText=[];
133412
+ for(var i=0;i<column.AryTitle.length && i<this.HeaderRowCount;++i)
133374
133413
  {
133375
- var margin=item.Icon.Margin;
133376
- if (IFrameSplitOperator.IsNumber(margin.Left)) iconWidth+=margin.Left;
133377
- if (IFrameSplitOperator.IsNumber(margin.Right)) iconWidth+=margin.Right;
133414
+ var text=column.AryTitle[i];
133415
+ drawInfo.AryText.push({ Text:text } );
133378
133416
  }
133379
- }
133380
- textWidth-=iconWidth;
133381
-
133382
- if (item.HeaderColor) this.Canvas.fillStyle=item.HeaderColor;
133383
- else this.Canvas.fillStyle=this.HeaderColor;
133384
-
133385
- var textSize={ }
133386
- if (this.SortInfo && this.SortInfo.Field==i && this.SortInfo.Sort>0)
133387
- {
133388
- this.DrawSortHeader(item.Title,item.TextAlign,x,yBottom,textWidth,this.SortInfo.Sort, textSize);
133389
- }
133390
- else if (item.Sort>0 && bDrawSortBG)
133391
- {
133392
- this.DrawSortHeader(item.Title,item.TextAlign,x,yBottom,textWidth,0,textSize);
133417
+ drawInfo.YText-=((this.HeaderRowCount-1)*this.HeaderFontHeight);
133393
133418
  }
133394
133419
  else
133395
133420
  {
133396
- this.DrawText(item.Title,item.TextAlign,x,yBottom,textWidth,textSize);
133421
+ if (column.Title) drawInfo.AryText[0].Text=column.Title;
133422
+ drawInfo.YText=rtCell.Bottom-this.HeaderMergin.Bottom-(this.HeaderRowCount*this.HeaderFontHeight)/2+this.HeaderFontHeight/2;
133397
133423
  }
133424
+ }
133425
+ else //单行
133426
+ {
133427
+ if (column.Title) drawInfo.AryText[0].Text=column.Title;
133428
+ }
133398
133429
 
133399
- if (iconWidth>0)
133400
- {
133401
- this.DrawHeaderIcon(item.Icon, textSize.Right, yBottom, i, item);
133402
- this.Canvas.font=this.HeaderFont;
133403
- }
133430
+ var lastItem=drawInfo.AryText[drawInfo.AryText.length-1];
133404
133431
 
133405
- this.Canvas.fillStyle=this.HeaderColor;
133432
+ //排序
133433
+ var bDrawSortBG=this.IsDrawSortBGIcon();
133434
+ if (this.SortInfo && this.SortInfo.Field==index && this.SortInfo.Sort>0) lastItem.Sort={ Type:this.SortInfo.Sort };
133435
+ else if (column.Sort>0 && bDrawSortBG && IFrameSplitOperator.IsNonEmptyArray(column.SortType) && column.SortType.length>=2) lastItem.Sort={ Type:0 };
133406
133436
 
133407
- textLeft+=item.Width;
133408
- }
133437
+ //图标
133438
+ if (column.Icon) lastItem.Icon=column.Icon;
133409
133439
 
133410
- for(var i=this.FixedColumn+this.Data.XOffset;i<this.Column.length;++i)
133411
- {
133412
- var item=this.Column[i];
133413
- var itemWidth=item.Width;
133414
- var textWidth=itemWidth-this.HeaderMergin.Left-this.HeaderMergin.Right;
133415
- var x=textLeft+this.HeaderMergin.Left;
133440
+ this.DrawHeaderText(column, drawInfo);
133441
+ }
133416
133442
 
133417
- if (item.HeaderBGColor)
133418
- {
133419
- var rtBG={Left:textLeft, Top:top, Width:itemWidth, Height:this.HeaderHeight };
133420
- rtBG.Right=rtBG.Left+rtBG.Width;
133421
- rtBG.Bottom=rtBG.Top+rtBG.Height;
133422
- this.DrawItemBG({ Rect:rtBG, BGColor:item.HeaderBGColor });
133423
- }
133443
+ this.DrawHeaderText=function(column, drawInfo)
133444
+ {
133445
+ if (column.HeaderColor) this.Canvas.fillStyle=column.HeaderColor;
133446
+ else this.Canvas.fillStyle=this.HeaderColor;
133447
+
133448
+ var pixelRatio=GetDevicePixelRatio();
133449
+ var cellWidth=drawInfo.Rect.Width;
133450
+ var bDrawSortBG=this.IsDrawSortBGIcon();
133451
+
133452
+ var y=drawInfo.YText;
133453
+ for(var i=0;i<drawInfo.AryText.length;++i)
133454
+ {
133455
+ var x=drawInfo.Rect.Left+this.HeaderMergin.Left;
133456
+ var item=drawInfo.AryText[i];
133457
+ var textSize={ TextMaxWidth:drawInfo.TextWidth };
133424
133458
 
133425
133459
  var iconWidth=0;
133426
133460
  if (item.Icon && item.Icon.Symbol) //图标
@@ -133433,81 +133467,123 @@ function ChartReport()
133433
133467
  if (IFrameSplitOperator.IsNumber(margin.Right)) iconWidth+=margin.Right;
133434
133468
  }
133435
133469
  }
133470
+ if (iconWidth>0) textSize.TextMaxWidth-=iconWidth;
133436
133471
 
133437
- textWidth-=iconWidth;
133438
-
133439
- if (item.HeaderColor) this.Canvas.fillStyle=item.HeaderColor;
133440
- else this.Canvas.fillStyle=this.HeaderColor;
133472
+ var sortWidth=0; //排序图标
133473
+ if (item.Sort && this.SortConfig && IFrameSplitOperator.IsPlusNumber(this.SortConfig.Size))
133474
+ {
133475
+ sortWidth=this.SortConfig.Size*pixelRatio;
133476
+ if (this.SortConfig.Margin)
133477
+ {
133478
+ var margin=this.SortConfig.Margin;
133479
+ if (IFrameSplitOperator.IsNumber(margin.Left)) sortWidth+=margin.Left;
133480
+ if (IFrameSplitOperator.IsNumber(margin.Right)) sortWidth+=margin.Right;
133481
+ }
133482
+ }
133483
+ if (sortWidth>0) textSize.TextMaxWidth-=sortWidth;
133484
+
133441
133485
 
133442
- var textSize={ }
133443
- if (this.SortInfo && this.SortInfo.Field==i && this.SortInfo.Sort>0)
133486
+ var textWidth=0;
133487
+ if (item.Text)
133444
133488
  {
133445
- this.DrawSortHeader(item.Title,item.TextAlign,x,yBottom,textWidth,this.SortInfo.Sort,textSize);
133489
+ this.Canvas.font=this.HeaderFont;
133490
+ textWidth=this.Canvas.measureText(item.Text).width;
133446
133491
  }
133447
- else if (item.Sort>0)
133492
+
133493
+ if (column.TextAlign=='center') x=x+(cellWidth-textWidth)/2;
133494
+ else if (column.TextAlign=='right') x=x+textSize.TextMaxWidth-textWidth;
133495
+
133496
+ if (item.Text) //文字
133448
133497
  {
133449
- this.DrawSortHeader(item.Title,item.TextAlign,x,yBottom,textWidth,0, textSize);
133498
+ this.Canvas.fillText(item.Text,x,y);
133499
+ x+=textWidth;
133450
133500
  }
133451
- else
133501
+
133502
+ if (sortWidth>1) //排序
133452
133503
  {
133453
- this.DrawText(item.Title,item.TextAlign,x,yBottom,textWidth,textSize);
133504
+ this.Canvas.font=this.SortFont;
133505
+ var xSort=x;
133506
+ if (this.SortConfig.Margin && IFrameSplitOperator.IsNumber(this.SortConfig.Margin.Left)) xSort+=this.SortConfig.Margin.Left;
133507
+ if (item.Sort.Type!=0 && bDrawSortBG) //背景
133508
+ {
133509
+ var sortText=this.SortConfig.Arrow[0];
133510
+ var sortColor=this.SortConfig.Color[0];
133511
+ this.Canvas.fillStyle=sortColor;
133512
+ this.Canvas.fillText(sortText,xSort,y-this.SortConfig.Margin.Bottom);
133513
+ }
133514
+
133515
+ var sortText=this.SortConfig.Arrow[item.Sort.Type];
133516
+ var sortColor=this.SortConfig.Color[item.Sort.Type];
133517
+ this.Canvas.fillStyle=sortColor;
133518
+ this.Canvas.fillText(sortText,xSort,y-this.SortConfig.Margin.Bottom);
133519
+ x+=sortWidth;
133454
133520
  }
133455
133521
 
133456
- if (iconWidth>0)
133522
+ if (iconWidth>1) //图标
133457
133523
  {
133458
- this.DrawHeaderIcon(item.Icon, textSize.Right, yBottom, i, item);
133459
- this.Canvas.font=this.HeaderFont;
133524
+ var icon=item.Icon;
133525
+ var iconFont=`${icon.Size}px ${icon.Family}`;
133526
+ this.Canvas.font=iconFont;
133527
+ if (icon.Color) this.Canvas.fillStyle=icon.Color;
133528
+ var yOffset=0, xOffset=0;
133529
+ if (icon.Margin && IFrameSplitOperator.IsNumber(icon.Margin.Left)) xOffset=icon.Margin.Left;
133530
+ if (icon.Margin && IFrameSplitOperator.IsNumber(icon.Margin.Bottom)) yOffset=-icon.Margin.Bottom;
133531
+ this.Canvas.fillText(icon.Symbol, x+xOffset, y+yOffset);
133532
+
133533
+ if (icon.Tooltip)
133534
+ {
133535
+ var rtIcon={ Left:x+xOffset, Bottom:y+yOffset, Width:icon.Size, Height:icon.Size };
133536
+ rtIcon.Right=rtIcon.Left+rtIcon.Width;
133537
+ rtIcon.Top=rtIcon.Bottom-rtIcon.Height;
133538
+
133539
+ var tooltipData={ Rect:rtIcon, Type:2, Column:column, Index:drawInfo.Index, Data:icon.Tooltip.Data };
133540
+ this.TooltipRect.push(tooltipData);
133541
+ }
133460
133542
  }
133461
133543
 
133462
- textLeft+=item.Width;
133463
- }
133544
+ y+=this.HeaderFontHeight;
133545
+ }
133464
133546
  }
133465
133547
 
133466
- this.DrawText=function(text, textAlign, x, yBottom, cellWidth, textSize)
133548
+ this.DrawHeader=function()
133467
133549
  {
133468
- var textWidth=this.Canvas.measureText(text).width;
133469
- if (textAlign=='center')
133470
- {
133471
- x=x+(cellWidth-textWidth)/2;
133472
- }
133473
- else if (textAlign=='right')
133474
- {
133475
- x=x+cellWidth-textWidth;
133476
- }
133550
+ if (!this.IsShowHeader) return;
133477
133551
 
133552
+ var left=this.RectClient.Left;
133553
+ var top=this.RectClient.Top;
133554
+ this.Canvas.font=this.HeaderFont;
133555
+
133556
+ var textLeft=left;
133478
133557
  this.Canvas.textAlign="left";
133479
133558
  this.Canvas.textBaseline="bottom";
133480
- this.Canvas.fillText(text,x,yBottom-this.HeaderMergin.Bottom);
133481
-
133482
- if (textSize)
133559
+ //固定列
133560
+ for(var i=0;i<this.FixedColumn && i<this.Column.length;++i)
133483
133561
  {
133484
- textSize.Right=x+textWidth;
133485
- textSize.Width=textWidth;
133486
- }
133487
- }
133562
+ var item=this.Column[i];
133563
+ var itemWidth=item.Width;
133564
+ //var textWidth=itemWidth-this.HeaderMergin.Left-this.HeaderMergin.Right;
133488
133565
 
133489
- this.DrawHeaderIcon=function(icon, x, yBottom, index, column)
133490
- {
133491
- var iconFont=`${icon.Size}px ${icon.Family}`;
133492
- this.Canvas.font=iconFont;
133493
- this.Canvas.textAlign="left";
133494
- if (icon.Color) this.Canvas.fillStyle=icon.Color;
133566
+ var rtCell={ Left:textLeft, Width:itemWidth, Top:top, Height:this.HeaderHeight };
133567
+ rtCell.Right=rtCell.Left+rtCell.Width;
133568
+ rtCell.Bottom=rtCell.Top+rtCell.Height;
133495
133569
 
133496
- var xIcon=x;
133497
- var yIcon=yBottom;
133498
- if (icon.Margin && IFrameSplitOperator.IsNumber(icon.Margin.Left)) xIcon+=icon.Margin.Left;
133499
- if (icon.Margin && IFrameSplitOperator.IsNumber(icon.Margin.Bottom)) yIcon-=icon.Margin.Bottom;
133500
- this.Canvas.fillText(icon.Symbol, xIcon, yIcon);
133570
+ this.DrawHeaderItem(item, rtCell, i);
133571
+ textLeft+=item.Width;
133572
+ }
133501
133573
 
133502
- if (icon.Tooltip)
133574
+ for(var i=this.FixedColumn+this.Data.XOffset;i<this.Column.length;++i)
133503
133575
  {
133504
- var rtIcon={ Left:xIcon, Bottom:yIcon, Width:icon.Size, Height:icon.Size };
133505
- rtIcon.Right=rtIcon.Left+rtIcon.Width;
133506
- rtIcon.Top=rtIcon.Bottom-rtIcon.Height;
133576
+ var item=this.Column[i];
133577
+ var itemWidth=item.Width;
133578
+ //var textWidth=itemWidth-this.HeaderMergin.Left-this.HeaderMergin.Right;
133507
133579
 
133508
- var tooltipData={ Rect:rtIcon, Type:2, Column:column, Index:index, Data:icon.Tooltip.Data };
133509
- this.TooltipRect.push(tooltipData);
133510
- }
133580
+ var rtCell={ Left:textLeft, Width:itemWidth, Top:top, Height:this.HeaderHeight };
133581
+ rtCell.Right=rtCell.Left+rtCell.Width;
133582
+ rtCell.Bottom=rtCell.Top+rtCell.Height;
133583
+
133584
+ this.DrawHeaderItem(item, rtCell, i);
133585
+ textLeft+=item.Width;
133586
+ }
133511
133587
  }
133512
133588
 
133513
133589
  //是否绘制排序背景图标
@@ -133522,57 +133598,6 @@ function ChartReport()
133522
133598
  return true;
133523
133599
  }
133524
133600
 
133525
- this.DrawSortHeader=function(text, textAlign, x, yBottom, width, sortType,textSize)
133526
- {
133527
- var pixelRatio=GetDevicePixelRatio();
133528
- var sortText=this.SortConfig.Arrow[sortType];
133529
- var sortBGText=this.SortConfig.Arrow[0];
133530
- var sortBGColor=this.SortConfig.Color[0];
133531
- this.Canvas.font=this.HeaderFont;
133532
- var textWidth=this.Canvas.measureText(text).width;
133533
- var sortTextWidth=this.SortConfig.Size*pixelRatio+this.SortConfig.Margin.Left;
133534
-
133535
- if (textAlign=='center')
133536
- {
133537
- x=x+width/2-(sortTextWidth+textWidth)/2;
133538
- }
133539
- else if (textAlign=='right')
133540
- {
133541
- x=(x+width)-sortTextWidth-textWidth;
133542
- }
133543
-
133544
- this.Canvas.textBaseline="bottom";
133545
- this.Canvas.textAlign="left";
133546
-
133547
- var xText=x;
133548
- this.Canvas.font=this.HeaderFont;
133549
- this.Canvas.fillStyle=this.HeaderColor;
133550
- this.Canvas.fillText(text,xText,yBottom-this.HeaderMergin.Bottom);
133551
-
133552
- xText+=(textWidth+this.SortConfig.Margin.Left);
133553
- this.Canvas.font=this.SortFont;
133554
- if (sortBGText && sortBGColor)
133555
- {
133556
- this.Canvas.fillStyle=sortBGColor;
133557
- this.Canvas.fillText(sortBGText,xText,yBottom-this.SortConfig.Margin.Bottom);
133558
- }
133559
-
133560
- if (sortType>0)
133561
- {
133562
- this.Canvas.fillStyle=this.SortConfig.Color[sortType];
133563
- this.Canvas.fillText(sortText,xText,yBottom-this.SortConfig.Margin.Bottom);
133564
- }
133565
-
133566
- this.Canvas.font=this.HeaderFont;
133567
- this.Canvas.fillStyle=this.HeaderColor;
133568
-
133569
- if (textSize)
133570
- {
133571
- textSize.Right=x+textWidth+sortTextWidth;
133572
- textSize.Width=textWidth+sortTextWidth;
133573
- }
133574
- }
133575
-
133576
133601
  this.DrawBorder=function()
133577
133602
  {
133578
133603
  if (!this.IsDrawBorder) return;
@@ -134196,9 +134221,7 @@ function ChartReport()
134196
134221
  {
134197
134222
  this.FormatReserveNumber(column, stock, drawInfo);
134198
134223
  }
134199
- else if ([REPORT_COLUMN_ID.RESERVE_STRING1_ID,REPORT_COLUMN_ID.RESERVE_STRING2_ID,REPORT_COLUMN_ID.RESERVE_STRING3_ID,REPORT_COLUMN_ID.RESERVE_STRING4_ID,
134200
- REPORT_COLUMN_ID.RESERVE_STRING5_ID,REPORT_COLUMN_ID.RESERVE_STRING6_ID,REPORT_COLUMN_ID.RESERVE_STRING7_ID,REPORT_COLUMN_ID.RESERVE_STRING8_ID,
134201
- REPORT_COLUMN_ID.RESERVE_STRING9_ID,REPORT_COLUMN_ID.RESERVE_STRING10_ID].includes(column.Type))
134224
+ else if (this.IsReserveString(column.Type))
134202
134225
  {
134203
134226
  this.FormatReserveString(column, stock, drawInfo);
134204
134227
  }
@@ -134257,7 +134280,7 @@ function ChartReport()
134257
134280
 
134258
134281
  this.DrawItemBG(drawInfo);
134259
134282
 
134260
- if (column.Type==REPORT_COLUMN_ID.CUSTOM_STRING_TEXT_ID)
134283
+ if (column.Type==REPORT_COLUMN_ID.CUSTOM_STRING_TEXT_ID || this.IsReserveString(column.Type))
134261
134284
  this.DrawCustomText(drawInfo,column, x, top, textWidth);
134262
134285
  else
134263
134286
  this.DrawItemText(drawInfo.Text, drawInfo.TextColor, drawInfo.TextAlign, x, top, textWidth, drawInfo.BGColor);
@@ -134309,6 +134332,20 @@ function ChartReport()
134309
134332
  return ARARY_TYPE.includes(value);
134310
134333
  }
134311
134334
 
134335
+ this.IsReserveString=function(value)
134336
+ {
134337
+ var ARARY_TYPE=
134338
+ [
134339
+ REPORT_COLUMN_ID.RESERVE_STRING1_ID,REPORT_COLUMN_ID.RESERVE_STRING2_ID,REPORT_COLUMN_ID.RESERVE_STRING3_ID,REPORT_COLUMN_ID.RESERVE_STRING4_ID,
134340
+ REPORT_COLUMN_ID.RESERVE_STRING5_ID,REPORT_COLUMN_ID.RESERVE_STRING6_ID,REPORT_COLUMN_ID.RESERVE_STRING7_ID,REPORT_COLUMN_ID.RESERVE_STRING8_ID,
134341
+ REPORT_COLUMN_ID.RESERVE_STRING9_ID,REPORT_COLUMN_ID.RESERVE_STRING10_ID
134342
+ ];
134343
+
134344
+ return ARARY_TYPE.includes(value);
134345
+ }
134346
+
134347
+
134348
+
134312
134349
  this.DrawCustomText=function(drawInfo, column, left, top, cellWidth)
134313
134350
  {
134314
134351
  if (!drawInfo.Text) return;
@@ -137038,7 +137075,7 @@ function ChartVScrollbar()
137038
137075
  }
137039
137076
  }
137040
137077
 
137041
-
137078
+ /* 使用div替换掉了
137042
137079
  function ChartCellTooltip()
137043
137080
  {
137044
137081
  this.Canvas; //画布
@@ -137200,6 +137237,7 @@ function ChartCellTooltip()
137200
137237
  }
137201
137238
  }
137202
137239
  }
137240
+ */
137203
137241
  /*
137204
137242
  Copyright (c) 2018 jones
137205
137243
 
@@ -140541,7 +140579,7 @@ function ScrollBarBGChart()
140541
140579
 
140542
140580
 
140543
140581
 
140544
- var HQCHART_VERSION="1.1.14268";
140582
+ var HQCHART_VERSION="1.1.14275";
140545
140583
 
140546
140584
  function PrintHQChartVersion()
140547
140585
  {