hqchart 1.1.14104 → 1.1.14115

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.
@@ -13991,7 +13991,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
13991
13991
  if (srcParam)
13992
13992
  {
13993
13993
  this.DestroyPopMinuteChart();
13994
- this.InitalPopMinuteChart( {KLine:{KLineDoubleClick:true}} );
13994
+ this.InitalPopMinuteChart( { PopMinuteChart:{ Enable:true }} );
13995
13995
  }
13996
13996
  else
13997
13997
  {
@@ -72718,6 +72718,9 @@ function JSChartResource()
72718
72718
  {
72719
72719
  BGColor:"rgba(250,250,250,0.95)",
72720
72720
  BorderColor:"rgb(0,0,0)",
72721
+
72722
+ TitleColor:'rgb(250,250,250)', //标题颜色
72723
+ TitleBGColor:"rgb(200, 66, 69)", //标题背景颜色
72721
72724
  }
72722
72725
 
72723
72726
  this.SelectRectBGColor="rgba(1,130,212,0.06)"; //背景色
@@ -74219,6 +74222,8 @@ function JSChartResource()
74219
74222
  var item=style.PopMinuteChart;
74220
74223
  if (item.BGColor) this.PopMinuteChart.BGColor=item.BGColor;
74221
74224
  if (item.BorderColor) this.PopMinuteChart.BorderColor=item.BorderColor;
74225
+ if (item.TitleColor) this.DialogSearchIndex.TitleColor=item.TitleColor;
74226
+ if (item.TitleBGColor) this.DialogSearchIndex.TitleBGColor=item.TitleBGColor;
74222
74227
  }
74223
74228
 
74224
74229
  if (style.DefaultTextColor) this.DefaultTextColor = style.DefaultTextColor;
@@ -77390,9 +77395,16 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
77390
77395
 
77391
77396
  this.InitalPopMinuteChart=function(option)
77392
77397
  {
77393
- if (!option || !option.KLine) return false;
77394
- var item=option.KLine;
77395
- if (item.KLineDoubleClick===true)
77398
+ if (!option) return false;
77399
+
77400
+ if (option.PopMinuteChart && option.PopMinuteChart.Enable) //新的配置格式
77401
+ {
77402
+ var item=option.PopMinuteChart;
77403
+ this.PopMinuteChart=new JSPopMinuteChart();
77404
+ this.PopMinuteChart.Inital(this, item);
77405
+ return true;
77406
+ }
77407
+ else if (option.KLine && option.KLine.KLineDoubleClick===true) //旧的格式 不要使用了
77396
77408
  {
77397
77409
  this.PopMinuteChart=new JSPopMinuteChart();
77398
77410
  this.PopMinuteChart.Inital(this);
@@ -124728,7 +124740,7 @@ function GetBlackStyle()
124728
124740
 
124729
124741
  PopMinuteChart:
124730
124742
  {
124731
- BGColor:"rgba(0,0,0,0.95)",
124743
+ BGColor:"rgba(0,0,0,0.85)",
124732
124744
  BorderColor:"rgb(230,230,230)",
124733
124745
  },
124734
124746
 
@@ -127143,6 +127155,11 @@ function JSReportChart(divElement)
127143
127155
  this.CreateExtraCanvasElement(JSReportChart.TooltipCursorCanvasKey, { ZIndex:99 });
127144
127156
  }
127145
127157
 
127158
+ if (option.MinuteChartTooltip && option.MinuteChartTooltip.Enable)
127159
+ {
127160
+ chart.InitalMinuteChartTooltip(option.MinuteChartTooltip);
127161
+ }
127162
+
127146
127163
  if (option.Symbol) chart.Symbol=option.Symbol;
127147
127164
  if (option.Name) chart.Name=option.Name;
127148
127165
 
@@ -127465,6 +127482,9 @@ function JSReportChartContainer(uielement)
127465
127482
  this.JSPopMenu; //内置菜单
127466
127483
  this.IsShowRightMenu=true;
127467
127484
 
127485
+ //
127486
+ this.TooltipMinuteChart; //分时图
127487
+
127468
127488
  //MouseOnStatus:{ RowIndex:行, ColumnIndex:列}
127469
127489
  this.LastMouseStatus={ MoveStatus:null, TooltipStatus:null, MouseOnStatus:null };
127470
127490
 
@@ -127472,6 +127492,8 @@ function JSReportChartContainer(uielement)
127472
127492
  {
127473
127493
  this.IsDestroy=true;
127474
127494
  this.StopAutoUpdate();
127495
+
127496
+ this.DestroyMinuteChartTooltip();
127475
127497
  }
127476
127498
 
127477
127499
  this.StopAutoDragScrollTimer=function()
@@ -127493,6 +127515,48 @@ function JSReportChartContainer(uielement)
127493
127515
  this.JSPopMenu.Inital();
127494
127516
  }
127495
127517
 
127518
+ this.InitalMinuteChartTooltip=function(option)
127519
+ {
127520
+ if (this.TooltipMinuteChart) return;
127521
+
127522
+ this.TooltipMinuteChart=new JSTooltipMinuteChart();
127523
+ this.TooltipMinuteChart.Inital(this, option);
127524
+ this.TooltipMinuteChart.Create();
127525
+ }
127526
+
127527
+ this.DestroyMinuteChartTooltip=function()
127528
+ {
127529
+ if (!this.TooltipMinuteChart) return;
127530
+
127531
+ this.TooltipMinuteChart.Destroy();
127532
+ this.TooltipMinuteChart=null;
127533
+ }
127534
+
127535
+ //data={ Symbol }
127536
+ this.ShowMinuteChartTooltip=function(x,y, data)
127537
+ {
127538
+ if (!this.TooltipMinuteChart) return;
127539
+
127540
+ var rtClient=this.UIElement.getBoundingClientRect();
127541
+ var rtScroll=GetScrollPosition();
127542
+
127543
+ var offsetLeft=rtClient.left+rtScroll.Left;
127544
+ var offsetTop=rtClient.top+rtScroll.Top;
127545
+
127546
+ data.Offset={ Left:offsetLeft, Top:offsetTop };
127547
+
127548
+ this.TooltipMinuteChart.Show(data, x,y);
127549
+ }
127550
+
127551
+ this.HideMinuteChartTooltip=function()
127552
+ {
127553
+ if (!this.TooltipMinuteChart) return;
127554
+
127555
+ this.TooltipMinuteChart.Hide();
127556
+ }
127557
+
127558
+
127559
+
127496
127560
  this.AutoScrollPage=function(step)
127497
127561
  {
127498
127562
  this.AutoDragScrollTimer=setTimeout(() =>
@@ -128520,6 +128584,19 @@ function JSReportChartContainer(uielement)
128520
128584
  if (IFrameSplitOperator.IsNumber(item[308]) || IFrameSplitOperator.IsObject(item[308])) stock.ReserveProgressBar8=item[308];
128521
128585
  if (IFrameSplitOperator.IsNumber(item[309]) || IFrameSplitOperator.IsObject(item[309])) stock.ReserveProgressBar9=item[309];
128522
128586
  if (IFrameSplitOperator.IsNumber(item[310]) || IFrameSplitOperator.IsObject(item[310])) stock.ReserveProgressBar10=item[310];
128587
+
128588
+ //10个按钮 351-400 { Title, Enable:, BGColor, TextColor: }
128589
+ if (IFrameSplitOperator.IsObject(item[351])) stock.ReserveButton1=item[351];
128590
+ if (IFrameSplitOperator.IsObject(item[352])) stock.ReserveButton2=item[352];
128591
+ if (IFrameSplitOperator.IsObject(item[353])) stock.ReserveButton3=item[353];
128592
+ if (IFrameSplitOperator.IsObject(item[354])) stock.ReserveButton4=item[354];
128593
+ if (IFrameSplitOperator.IsObject(item[355])) stock.ReserveButton5=item[355];
128594
+ if (IFrameSplitOperator.IsObject(item[356])) stock.ReserveButton6=item[356];
128595
+ if (IFrameSplitOperator.IsObject(item[357])) stock.ReserveButton7=item[357];
128596
+ if (IFrameSplitOperator.IsObject(item[358])) stock.ReserveButton8=item[358];
128597
+ if (IFrameSplitOperator.IsObject(item[359])) stock.ReserveButton9=item[359];
128598
+ if (IFrameSplitOperator.IsObject(item[360])) stock.ReserveButton10=item[360];
128599
+
128523
128600
  }
128524
128601
 
128525
128602
 
@@ -128915,6 +128992,9 @@ function JSReportChartContainer(uielement)
128915
128992
  var bDrawTooltip=false;
128916
128993
  if (this.LastMouseStatus.TooltipStatus) bDrawTooltip=true;
128917
128994
  this.LastMouseStatus.TooltipStatus=null;
128995
+
128996
+ var bShowChartTooltip=false;
128997
+ var chartTooltipData=null;
128918
128998
 
128919
128999
  if (this.DragRow) return;
128920
129000
  if (this.DrawHeader) return;
@@ -128985,8 +129065,19 @@ function JSReportChartContainer(uielement)
128985
129065
  var tooltipData=report.GetTooltipData(x,y); //单元格提示信息
128986
129066
  if (tooltipData)
128987
129067
  {
128988
- this.LastMouseStatus.TooltipStatus={ X:e.clientX, Y:e.clientY, Data:tooltipData };
128989
- bDrawTooltip=true;
129068
+ if (tooltipData.Type==20)
129069
+ {
129070
+ if (tooltipData.Stock && tooltipData.Stock.Symbol)
129071
+ {
129072
+ bShowChartTooltip=true;
129073
+ chartTooltipData={ Symbol:tooltipData.Stock.OriginalSymbol, Rect:tooltipData.Rect };
129074
+ }
129075
+ }
129076
+ else
129077
+ {
129078
+ this.LastMouseStatus.TooltipStatus={ X:x, Y:y, Data:tooltipData, ClientX:e.clientX, ClientY:e.clientY };
129079
+ bDrawTooltip=true;
129080
+ }
128990
129081
  }
128991
129082
  }
128992
129083
 
@@ -129017,6 +129108,15 @@ function JSReportChartContainer(uielement)
129017
129108
 
129018
129109
  if (bDraw || bDrawTab) this.Draw();
129019
129110
  else if (bDrawTooltip) this.DrawTooltip(this.LastMouseStatus.TooltipStatus);
129111
+
129112
+ if (bShowChartTooltip)
129113
+ {
129114
+ this.ShowMinuteChartTooltip(null, null, chartTooltipData);
129115
+ }
129116
+ else
129117
+ {
129118
+ this.HideMinuteChartTooltip();
129119
+ }
129020
129120
  }
129021
129121
 
129022
129122
  this.UIOnMounseOut=function(e)
@@ -131177,6 +131277,18 @@ var REPORT_COLUMN_ID=
131177
131277
  RESERVE_PROGRESS_BAR9_ID:409,
131178
131278
  RESERVE_PROGRESS_BAR10_ID:410,
131179
131279
 
131280
+ //留按钮类型 10个 451-500
131281
+ RESERVE_BUTTON1_ID:451, //ReserveButton1:
131282
+ RESERVE_BUTTON2_ID:452, //ReserveButton2:
131283
+ RESERVE_BUTTON3_ID:453, //ReserveButton3:
131284
+ RESERVE_BUTTON4_ID:454, //ReserveButton4:
131285
+ RESERVE_BUTTON5_ID:455, //ReserveButton5:
131286
+ RESERVE_BUTTON6_ID:456, //ReserveButton6:
131287
+ RESERVE_BUTTON7_ID:457, //ReserveButton7:
131288
+ RESERVE_BUTTON8_ID:458, //ReserveButton8:
131289
+ RESERVE_BUTTON9_ID:459, //ReserveButton9:
131290
+ RESERVE_BUTTON10_ID:460, //ReserveButton10:
131291
+
131180
131292
  }
131181
131293
 
131182
131294
 
@@ -131261,6 +131373,18 @@ var MAP_COLUMN_FIELD=new Map([
131261
131373
  [REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR8_ID,"ReserveProgressBar8"],
131262
131374
  [REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR9_ID,"ReserveProgressBar9"],
131263
131375
  [REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR10_ID,"ReserveProgressBar10"],
131376
+
131377
+
131378
+ [REPORT_COLUMN_ID.RESERVE_BUTTON1_ID,"ReserveButton1"],
131379
+ [REPORT_COLUMN_ID.RESERVE_BUTTON2_ID,"ReserveButton2"],
131380
+ [REPORT_COLUMN_ID.RESERVE_BUTTON3_ID,"ReserveButton3"],
131381
+ [REPORT_COLUMN_ID.RESERVE_BUTTON4_ID,"ReserveButton4"],
131382
+ [REPORT_COLUMN_ID.RESERVE_BUTTON5_ID,"ReserveButton5"],
131383
+ [REPORT_COLUMN_ID.RESERVE_BUTTON6_ID,"ReserveButton6"],
131384
+ [REPORT_COLUMN_ID.RESERVE_BUTTON7_ID,"ReserveButton7"],
131385
+ [REPORT_COLUMN_ID.RESERVE_BUTTON8_ID,"ReserveButton8"],
131386
+ [REPORT_COLUMN_ID.RESERVE_BUTTON9_ID,"ReserveButton9"],
131387
+ [REPORT_COLUMN_ID.RESERVE_BUTTON10_ID,"ReserveButton10"],
131264
131388
  ]);
131265
131389
 
131266
131390
  function ChartReport()
@@ -131443,7 +131567,7 @@ function ChartReport()
131443
131567
  this.RectClient={};
131444
131568
 
131445
131569
  //{ Rect:rtItem, Stock:stock, Index:index, Column:column, RowType:rowType, Type:drawInfo.Tooltip.Type, Data:{ AryText:[ {Text:xx} ]} };
131446
- //Type:1=数据截断
131570
+ //Type:1=数据截断 2=表头提示信息 20=分时图
131447
131571
  // { Text, Color, Title:, TitleColor, Space, Margin:{ Left, Top, Right, Bottom }}
131448
131572
  this.TooltipRect=[];
131449
131573
 
@@ -131577,6 +131701,7 @@ function ChartReport()
131577
131701
  if (IFrameSplitOperator.IsNumber(item.ColorType)) colItem.ColorType=item.ColorType; //0=默认 1=(>0, =0, <0) 2=(>=0, <0)
131578
131702
  else colItem.IsDrawCallback=false;
131579
131703
  if (item.Icon) colItem.Icon=item.Icon;
131704
+ if (IFrameSplitOperator.IsBool(item.EnableChartTooltip)) colItem.EnableChartTooltip=item.EnableChartTooltip;
131580
131705
 
131581
131706
  //点击表头弹出菜单
131582
131707
  if (IFrameSplitOperator.IsBool(item.EnablePopupHeaderMenu)) colItem.EnablePopupHeaderMenu=item.EnablePopupHeaderMenu;
@@ -131634,6 +131759,11 @@ function ChartReport()
131634
131759
  if (item.Button) colItem.Button=CloneData(item.Button);
131635
131760
  else colItem.Button=this.ButtonConfig;
131636
131761
  }
131762
+ else if (this.IsReserveButtonColumn(item.Type))
131763
+ {
131764
+ if (item.Button) colItem.Button=CloneData(item.Button);
131765
+ else colItem.Button=this.ButtonConfig;
131766
+ }
131637
131767
  else if (item.Type==REPORT_COLUMN_ID.CUSTOM_PROGRESS_ID)
131638
131768
  {
131639
131769
  if (!IFrameSplitOperator.IsNumber(item.DataIndex) && !IFrameSplitOperator.IsNumber(item.BlockIndex)) continue;
@@ -131832,6 +131962,17 @@ function ChartReport()
131832
131962
  { Type:REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR8_ID, Title:"进度条8", TextAlign:"center", FixedWidth:100*GetDevicePixelRatio() },
131833
131963
  { Type:REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR9_ID, Title:"进度条9", TextAlign:"center", FixedWidth:100*GetDevicePixelRatio() },
131834
131964
  { Type:REPORT_COLUMN_ID.RESERVE_PROGRESS_BAR10_ID, Title:"进度条10", TextAlign:"center", FixedWidth:100*GetDevicePixelRatio() },
131965
+
131966
+ { Type:REPORT_COLUMN_ID.RESERVE_BUTTON1_ID, Title:"按钮1", TextAlign:"center", FixedWidth:50*GetDevicePixelRatio() },
131967
+ { Type:REPORT_COLUMN_ID.RESERVE_BUTTON2_ID, Title:"按钮2", TextAlign:"center", FixedWidth:50*GetDevicePixelRatio() },
131968
+ { Type:REPORT_COLUMN_ID.RESERVE_BUTTON3_ID, Title:"按钮3", TextAlign:"center", FixedWidth:50*GetDevicePixelRatio() },
131969
+ { Type:REPORT_COLUMN_ID.RESERVE_BUTTON4_ID, Title:"按钮4", TextAlign:"center", FixedWidth:50*GetDevicePixelRatio() },
131970
+ { Type:REPORT_COLUMN_ID.RESERVE_BUTTON5_ID, Title:"按钮5", TextAlign:"center", FixedWidth:50*GetDevicePixelRatio() },
131971
+ { Type:REPORT_COLUMN_ID.RESERVE_BUTTON6_ID, Title:"按钮6", TextAlign:"center", FixedWidth:50*GetDevicePixelRatio() },
131972
+ { Type:REPORT_COLUMN_ID.RESERVE_BUTTON7_ID, Title:"按钮7", TextAlign:"center", FixedWidth:50*GetDevicePixelRatio() },
131973
+ { Type:REPORT_COLUMN_ID.RESERVE_BUTTON8_ID, Title:"按钮8", TextAlign:"center", FixedWidth:50*GetDevicePixelRatio() },
131974
+ { Type:REPORT_COLUMN_ID.RESERVE_BUTTON9_ID, Title:"按钮9", TextAlign:"center", FixedWidth:50*GetDevicePixelRatio() },
131975
+ { Type:REPORT_COLUMN_ID.RESERVE_BUTTON10_ID, Title:"按钮10", TextAlign:"center", FixedWidth:50*GetDevicePixelRatio() },
131835
131976
 
131836
131977
  ];
131837
131978
 
@@ -132936,6 +133077,10 @@ function ChartReport()
132936
133077
  {
132937
133078
  this.FormatReserveProgressBar(column, stock, drawInfo);
132938
133079
  }
133080
+ else if (this.IsReserveButtonColumn(column.Type))
133081
+ {
133082
+ this.FormatReserveButton(column, stock, drawInfo);
133083
+ }
132939
133084
 
132940
133085
 
132941
133086
  //拖拽行颜色
@@ -132954,7 +133099,7 @@ function ChartReport()
132954
133099
  {
132955
133100
  this.DrawCheckbox(drawInfo, left, top, itemWidth);
132956
133101
  }
132957
- else if (column.Type==REPORT_COLUMN_ID.CUSTOM_BUTTON_ID)
133102
+ else if (column.Type==REPORT_COLUMN_ID.CUSTOM_BUTTON_ID || this.IsReserveButtonColumn(column.Type))
132958
133103
  {
132959
133104
  this.DrawButton(drawInfo, left, top, itemWidth);
132960
133105
  }
@@ -132996,12 +133141,19 @@ function ChartReport()
132996
133141
  var tooltipData={ Rect:rtItem, Stock:stock, Index:index, Column:column, RowType:rowType, Type:drawInfo.Tooltip.Type, Data:drawInfo.Tooltip.Data };
132997
133142
  this.TooltipRect.push(tooltipData);
132998
133143
  }
133144
+ else if (column.EnableChartTooltip)
133145
+ {
133146
+ var tooltipData={ Rect:rtItem, Stock:stock, Index:index, Column:column, RowType:rowType, Type:20 };
133147
+ this.TooltipRect.push(tooltipData);
133148
+ }
132999
133149
 
133000
133150
  if (drawInfo.Botton)
133001
133151
  {
133002
133152
  var buttonData={ Stock:stock, Index:index, ColumnIndex:columnIndex, Column:column, Rect:drawInfo.Botton.Rect, Type:drawInfo.Botton.Type, Data:drawInfo.Data };
133003
133153
  this.ButtonRect.push(buttonData);
133004
133154
  }
133155
+
133156
+
133005
133157
  }
133006
133158
 
133007
133159
  this.IsReserveProgressBarColumn=function(value)
@@ -133016,6 +133168,18 @@ function ChartReport()
133016
133168
  return ARARY_TYPE.includes(value);
133017
133169
  }
133018
133170
 
133171
+ this.IsReserveButtonColumn=function(value)
133172
+ {
133173
+ var ARARY_TYPE=
133174
+ [
133175
+ REPORT_COLUMN_ID.RESERVE_BUTTON1_ID, REPORT_COLUMN_ID.RESERVE_BUTTON2_ID,REPORT_COLUMN_ID.RESERVE_BUTTON3_ID,
133176
+ REPORT_COLUMN_ID.RESERVE_BUTTON4_ID,REPORT_COLUMN_ID.RESERVE_BUTTON5_ID,REPORT_COLUMN_ID.RESERVE_BUTTON6_ID,REPORT_COLUMN_ID.RESERVE_BUTTON7_ID,
133177
+ REPORT_COLUMN_ID.RESERVE_BUTTON8_ID,REPORT_COLUMN_ID.RESERVE_BUTTON9_ID,REPORT_COLUMN_ID.RESERVE_BUTTON10_ID
133178
+ ];
133179
+
133180
+ return ARARY_TYPE.includes(value);
133181
+ }
133182
+
133019
133183
  this.DrawCustomText=function(drawInfo, column, left, top, cellWidth)
133020
133184
  {
133021
133185
  if (!drawInfo.Text) return;
@@ -133463,6 +133627,22 @@ function ChartReport()
133463
133627
  }
133464
133628
  }
133465
133629
 
133630
+ this.FormatReserveButton=function(column, data, drawInfo)
133631
+ {
133632
+ var fieldName=MAP_COLUMN_FIELD.get(column.Type);
133633
+ if (!data || !fieldName) return;
133634
+ var item=data[fieldName];
133635
+ if (!item) return;
133636
+
133637
+ drawInfo.Text=item.Title;
133638
+ drawInfo.Button=column.Button;
133639
+ drawInfo.Font=column.Button.Font;
133640
+ drawInfo.Enable=true;
133641
+ drawInfo.Data=item;
133642
+
133643
+ if (IFrameSplitOperator.IsBool(item.Enable)) drawInfo.Enable=item.Enable;
133644
+ }
133645
+
133466
133646
  this.FormaTimeDrawInfo=function(column, stock, drawInfo, data)
133467
133647
  {
133468
133648
  if (!IFrameSplitOperator.IsNumber(stock.Time)) return;
@@ -143465,12 +143645,17 @@ function JSDialogModifyDraw()
143465
143645
  function JSPopMinuteChart()
143466
143646
  {
143467
143647
  this.DivDialog=null;
143468
- this.DivInfoText=null;
143648
+ this.TitleBox=null; //{ DivTitle, DivName, DivName }
143469
143649
  this.HQChart=null;
143470
143650
  this.DragTitle=null;
143471
143651
  this.Date=null;
143472
143652
  this.ID=Guid();
143473
143653
 
143654
+ this.TitleColor=g_JSChartResource.PopMinuteChart.TitleColor;
143655
+ this.TitleBGColor=g_JSChartResource.PopMinuteChart.TitleBGColor;
143656
+ this.BGColor=g_JSChartResource.PopMinuteChart.BGColor;
143657
+ this.BorderColor=g_JSChartResource.PopMinuteChart.BorderColor;
143658
+
143474
143659
  this.Minute=
143475
143660
  {
143476
143661
  Option:JSPopMinuteChart.GetMinuteOption(),
@@ -143478,9 +143663,18 @@ function JSPopMinuteChart()
143478
143663
  Date:null,
143479
143664
  }
143480
143665
 
143481
- this.Inital=function(hqchart)
143666
+ this.Inital=function(hqchart, option)
143482
143667
  {
143483
143668
  this.HQChart=hqchart;
143669
+
143670
+ if (option)
143671
+ {
143672
+ if (IFrameSplitOperator.IsObject(option.Option))
143673
+ {
143674
+ var item=CloneData(option.Option); //复制一份出来
143675
+ this.Minute.Option=Object.assign(this.Minute.Option,item);
143676
+ }
143677
+ }
143484
143678
  }
143485
143679
 
143486
143680
  this.Create=function()
@@ -143488,8 +143682,6 @@ function JSPopMinuteChart()
143488
143682
  var divDom=document.createElement('div');
143489
143683
  divDom.className='jchart_pop_minute_dailog';
143490
143684
  divDom.id=this.ID;
143491
- divDom.style["background-color"]=g_JSChartResource.PopMinuteChart.BGColor;
143492
- divDom.style["border-color"]=g_JSChartResource.PopMinuteChart.BorderColor;
143493
143685
 
143494
143686
  var divTitle=document.createElement("div");
143495
143687
  divTitle.className='jschart_pop_minute_chart_Title_Div';
@@ -143513,6 +143705,7 @@ function JSPopMinuteChart()
143513
143705
  divChart.className='jschart_pop_minute_chart';
143514
143706
  divDom.appendChild(divChart);
143515
143707
 
143708
+ this.TitleBox={ DivTitle:divTitle, DivName:divInfoText, DivColor:divClose };
143516
143709
  this.DivDialog=divDom;
143517
143710
 
143518
143711
  var chart=JSChart.Init(divChart);
@@ -143524,6 +143717,19 @@ function JSPopMinuteChart()
143524
143717
  chart.SetOption(this.Minute.Option); //设置K线配置
143525
143718
 
143526
143719
  document.body.appendChild(divDom);
143720
+
143721
+ this.UpdateStyle();
143722
+ }
143723
+
143724
+ this.UpdateStyle=function()
143725
+ {
143726
+ if (!this.DivDialog) return;
143727
+
143728
+ if (this.BGColor) this.DivDialog.style['background-color']=this.BGColor;
143729
+ if (this.BorderColor) this.DivDialog.style['border-color']=this.BorderColor;
143730
+
143731
+ if (this.TitleBGColor) this.TitleBox.DivTitle.style['background-color']=this.TitleBGColor;
143732
+ if (this.TitleColor) this.TitleBox.DivName.style['color']=this.TitleColor;
143527
143733
  }
143528
143734
 
143529
143735
  this.NetworkFilter=function(data, callback)
@@ -143551,7 +143757,7 @@ function JSPopMinuteChart()
143551
143757
  {
143552
143758
  if (this.DivDialog) document.body.removeChild(this.DivDialog);
143553
143759
  this.DivDialog=null;
143554
- this.DivInfoText=null;
143760
+ this.TitleBox=null;
143555
143761
  this.Minute.JSChart=null;
143556
143762
  }
143557
143763
 
@@ -143571,7 +143777,7 @@ function JSPopMinuteChart()
143571
143777
  var name=data.Symbol;
143572
143778
  if (data.Name) name=data.Name;
143573
143779
  var title=`${name} ${IFrameSplitOperator.FormatDateString(data.Date)} 分时图`
143574
- this.DivInfoText.innerText=title;
143780
+ this.TitleBox.DivName.innerText=title;
143575
143781
 
143576
143782
  if (this.Minute.JSChart)
143577
143783
  {
@@ -143639,10 +143845,14 @@ function JSPopMinuteChart()
143639
143845
 
143640
143846
  this.ReloadResource=function(option)
143641
143847
  {
143848
+ this.TitleColor=g_JSChartResource.PopMinuteChart.TitleColor;
143849
+ this.TitleBGColor=g_JSChartResource.PopMinuteChart.TitleBGColor;
143850
+ this.BGColor=g_JSChartResource.PopMinuteChart.BGColor;
143851
+ this.BorderColor=g_JSChartResource.PopMinuteChart.BorderColor;
143852
+
143642
143853
  if (!this.DivDialog) return;
143643
143854
 
143644
- this.DivDialog.style["background-color"]=g_JSChartResource.PopMinuteChart.BGColor;
143645
- this.DivDialog.style["border-color"]=g_JSChartResource.PopMinuteChart.BorderColor;
143855
+ this.UpdateStyle();
143646
143856
 
143647
143857
  if (this.Minute.JSChart) this.Minute.JSChart.ReloadResource(option);
143648
143858
  }
@@ -143727,6 +143937,243 @@ JSPopMinuteChart.GetMinuteOption=function()
143727
143937
  }
143728
143938
 
143729
143939
 
143940
+ ///////////////////////////////////////////////////////
143941
+ // 分时图提示信息
143942
+ //
143943
+ //////////////////////////////////////////////////////
143944
+
143945
+ function JSTooltipMinuteChart()
143946
+ {
143947
+ this.DivDialog=null;
143948
+ this.HQChart=null;
143949
+ this.ID=Guid();
143950
+
143951
+ this.BGColor=g_JSChartResource.PopMinuteChart.BGColor;
143952
+ this.BorderColor=g_JSChartResource.PopMinuteChart.BorderColor;
143953
+
143954
+ this.Minute=
143955
+ {
143956
+ Option:JSTooltipMinuteChart.GetMinuteOption(),
143957
+ JSChart:null,
143958
+ Symbol:null,
143959
+ Date:null,
143960
+ }
143961
+
143962
+ this.Inital=function(hqchart, option)
143963
+ {
143964
+ this.HQChart=hqchart;
143965
+
143966
+ if (option)
143967
+ {
143968
+ if (IFrameSplitOperator.IsObject(option.Option))
143969
+ {
143970
+ var item=CloneData(option.Option); //复制一份出来
143971
+ this.Minute.Option=Object.assign(this.Minute.Option,item);
143972
+ }
143973
+ }
143974
+ }
143975
+
143976
+ this.Create=function()
143977
+ {
143978
+ var divDom=document.createElement('div');
143979
+ divDom.className='UMyChart_Tooltip_Minute_Div';
143980
+ divDom.id=this.ID;
143981
+
143982
+ var divChart=document.createElement('div');
143983
+ divChart.className='UMyChart_Tooltip_Minute_Chart_Div';
143984
+ divDom.appendChild(divChart);
143985
+
143986
+ this.DivDialog=divDom;
143987
+
143988
+ var chart=JSChart.Init(divChart);
143989
+ this.Minute.JSChart=chart;
143990
+
143991
+ //语言跟主图保持一致
143992
+ if (this.HQChart) this.Minute.Option.Language=g_JSChartLocalization.GetLanguageName(this.HQChart.LanguageID);
143993
+ this.Minute.Option.OnCreatedCallback=(chart)=>{ this.OnCreateHQChart(chart); }
143994
+ this.Minute.Option.NetworkFilter=(data, callback)=>{ this.NetworkFilter(data, callback); }
143995
+ chart.SetOption(this.Minute.Option); //设置K线配置
143996
+
143997
+ document.body.appendChild(divDom);
143998
+
143999
+ this.UpdateStyle();
144000
+ }
144001
+
144002
+ this.UpdateStyle=function()
144003
+ {
144004
+ if (!this.DivDialog) return;
144005
+
144006
+ if (this.BGColor) this.DivDialog.style['background-color']=this.BGColor;
144007
+ if (this.BorderColor) this.DivDialog.style['border-color']=this.BorderColor;
144008
+ }
144009
+
144010
+ this.NetworkFilter=function(data, callback)
144011
+ {
144012
+ if (!this.HQChart || !this.HQChart.NetworkFilter) return;
144013
+
144014
+ /*
144015
+ if (data) data.PopMinuteData={ Date:this.Date }; //弹出分时图额外数据
144016
+
144017
+ if (data.Name== 'MinuteChartContainer::RequestMinuteData') //分时图数据对接
144018
+ {
144019
+ data.Request.Data.date=this.Date;
144020
+ data.Name="MinuteChartContainer::RequestPopMinuteData";
144021
+ data.Explain="指定日期分时数据"
144022
+ };
144023
+ */
144024
+
144025
+ this.HQChart.NetworkFilter(data, callback);
144026
+ }
144027
+
144028
+ this.OnCreateHQChart=function(chart)
144029
+ {
144030
+
144031
+ }
144032
+
144033
+ this.Destroy=function()
144034
+ {
144035
+ if (this.DivDialog) document.body.removeChild(this.DivDialog);
144036
+ this.DivDialog=null;
144037
+ this.TitleBox=null;
144038
+ if (!this.Minute.JSChart) this.Minute.JSChart.ChartDestory();
144039
+ this.Minute.JSChart=null;
144040
+ }
144041
+
144042
+ this.IsShow=function()
144043
+ {
144044
+ if (!this.DivDialog) return false;
144045
+
144046
+ return this.DivDialog.style.visibility==='visible';
144047
+ }
144048
+
144049
+ this.Show=function(data, x, y)
144050
+ {
144051
+ if (!this.DivDialog) this.Create();
144052
+ if (!data || !data.Symbol) return;
144053
+
144054
+ var symbol=data.Symbol;
144055
+ var date=null;
144056
+ if (IFrameSplitOperator.IsPlusNumber(data.Date)) date=data.Date;
144057
+
144058
+ if (this.Minute.JSChart)
144059
+ {
144060
+ if (this.Minute.Symbol!=symbol || this.Minute.Date!=date)
144061
+ {
144062
+ this.Minute.Symbol=symbol;
144063
+ this.Minute.Date=date;
144064
+ this.Minute.JSChart.ChangeSymbol(symbol);
144065
+ }
144066
+ }
144067
+
144068
+ if (IFrameSplitOperator.IsNumberV2(x,y))
144069
+ {
144070
+
144071
+ }
144072
+ else if (data.Rect)
144073
+ {
144074
+ var rtCell=data.Rect;
144075
+ var pixelRatio=GetDevicePixelRatio();
144076
+ var rtItem={ Left:rtCell.Left/pixelRatio, Right:rtCell.Right/pixelRatio, Bottom:rtCell.Bottom/pixelRatio, Top:rtCell.Top/pixelRatio };
144077
+ rtItem.Width=rtItem.Right-rtItem.Left;
144078
+ rtItem.Height=rtItem.Bottom-rtItem.Top;
144079
+
144080
+ //超出窗口调整位置
144081
+ var height=this.DivDialog.offsetHeight;
144082
+ var width=this.DivDialog.offsetWidth;
144083
+ var x=rtItem.Right+data.Offset.Left;
144084
+ var y=rtItem.Bottom+data.Offset.Top;
144085
+
144086
+ var xRight=window.innerWidth-5;
144087
+ var ybottom=window.innerHeight-5;
144088
+ if (x+width>xRight) x=xRight-width;
144089
+ if (y+height>ybottom) y=(rtItem.Top+data.Offset.Top)-height;
144090
+
144091
+ this.DivDialog.style.visibility='visible';
144092
+ this.DivDialog.style.top = y + "px";
144093
+ this.DivDialog.style.left = x + "px";
144094
+ }
144095
+ }
144096
+
144097
+ this.Hide=function()
144098
+ {
144099
+ if (!this.DivDialog) return;
144100
+ if (this.DivDialog.style.visibility!='hidden')
144101
+ this.DivDialog.style.visibility='hidden';
144102
+ }
144103
+
144104
+ }
144105
+
144106
+ JSTooltipMinuteChart.GetMinuteOption=function()
144107
+ {
144108
+ var option=
144109
+ {
144110
+ Type:'分钟走势图', //创建图形类型
144111
+ Windows: //窗口指标
144112
+ [
144113
+ //{ Index:"VOL" },
144114
+ //{ Index:"RSI" }
144115
+ ],
144116
+
144117
+ Symbol:null, // cf1909.czc
144118
+ IsAutoUpdate:false, //是自动更新数据
144119
+ AutoUpdateFrequency:10000, //数据更新频率
144120
+ DayCount:1, //1 最新交易日数据 >1 多日走势图
144121
+ IsShowRightMenu:false, //是否显示右键菜单
144122
+
144123
+ EnableSelectRect:true,
144124
+ EnableZoomIndexWindow:true,
144125
+ EnableResize:true,
144126
+
144127
+ //BeforeOpen:{IsShow:true, Width:120, IsShowMultiDay:true, MulitiDayWidth:100, },
144128
+ //AfterClose:{IsShow:true, Width:100, IsShowMultiDay:true, MulitiDayWidth:50, ShareVol:2 }, //ShareVol:0=盘后成交量独立坐标, 1==盘后成交量主图共用 2==盘后成交量盘前共用
144129
+
144130
+ CorssCursorInfo:{ Left:2, Right:1, Bottom:1 },
144131
+
144132
+ MinuteLine:
144133
+ {
144134
+
144135
+ },
144136
+
144137
+ MinuteTitle:
144138
+ {
144139
+ IsShowTime:true,
144140
+ IsShowName:true,
144141
+ IsShowDate:true,
144142
+ IsShowVolTitle:true,
144143
+ //IsAlwaysShowLastData:true,
144144
+ IsTitleShowLatestData:true,
144145
+ },
144146
+
144147
+ MinuteVol:
144148
+ {
144149
+ BarColorType:1,
144150
+ },
144151
+
144152
+ //Language:'EN',
144153
+
144154
+ Border: //边框
144155
+ {
144156
+ Left:20, //左边间距
144157
+ Right:120, //右边间距
144158
+ Top:25,
144159
+ Bottom:25,
144160
+
144161
+ AutoLeft:{ Blank:10, MinWidth:40 },
144162
+ AutoRight:{ Blank:10, MinWidth:40 },
144163
+ },
144164
+
144165
+ Frame: //子框架设置
144166
+ [
144167
+ { SplitCount:5 },
144168
+ { SplitCount:3 },
144169
+ { SplitCount:3 },
144170
+ ],
144171
+ }
144172
+
144173
+ return option;
144174
+ }
144175
+
144176
+
143730
144177
 
143731
144178
  /*
143732
144179
  Copyright (c) 2018 jones
@@ -145117,7 +145564,7 @@ function JSFloatTooltip()
145117
145564
  }
145118
145565
  }
145119
145566
 
145120
- this.Show=function(x, y)
145567
+ this.Show=function(x, y, option)
145121
145568
  {
145122
145569
  if (!this.DivDialog) return;
145123
145570
  if (!this.HQChart) return;
@@ -145128,7 +145575,11 @@ function JSFloatTooltip()
145128
145575
  var bottom=top+this.DivDialog.offsetHeight;
145129
145576
 
145130
145577
  if ((right+5)>=window.innerWidth) left=left-this.DivDialog.offsetWidth;
145131
- if ((bottom+5)>=window.innerHeight) top=window.innerHeight-this.DivDialog.offsetHeight-5;
145578
+ if ((bottom+5)>=window.innerHeight)
145579
+ {
145580
+ top=(y+rtClient.top)-this.DivDialog.offsetHeight;
145581
+ if (option && IFrameSplitOperator.IsNumber(option.YMove)) top-=option.YMove;
145582
+ }
145132
145583
 
145133
145584
  this.DivDialog.style.top = top + "px";
145134
145585
  this.DivDialog.style.left = left + "px";
@@ -145348,7 +145799,7 @@ function JSFloatTooltip()
145348
145799
  {
145349
145800
  var x=data.Point.X;
145350
145801
  var y=data.Point.Y+data.Point.YMove;
145351
- this.Show(x, y);
145802
+ this.Show(x, y, { YMove:data.Point.YMove });
145352
145803
  }
145353
145804
  }
145354
145805
 
@@ -148183,7 +148634,7 @@ function HQChartScriptWorker()
148183
148634
 
148184
148635
 
148185
148636
 
148186
- var HQCHART_VERSION="1.1.14103";
148637
+ var HQCHART_VERSION="1.1.14114";
148187
148638
 
148188
148639
  function PrintHQChartVersion()
148189
148640
  {