hqchart 1.1.13740 → 1.1.13746

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.
@@ -7621,7 +7621,9 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
7621
7621
 
7622
7622
  if (bDraw) this.Draw();
7623
7623
 
7624
- drawPictrueData.ChartDrawPicture.Status=20;
7624
+ if (drawPictrueData.ChartDrawPicture.EnableMove==true)
7625
+ drawPictrueData.ChartDrawPicture.Status=20;
7626
+
7625
7627
  drawPictrueData.ChartDrawPicture.ValueToPoint();
7626
7628
  drawPictrueData.ChartDrawPicture.MovePointIndex=drawPictrueData.PointIndex;
7627
7629
  //this.CurrentChartDrawPicture=drawPictrueData.ChartDrawPicture;
@@ -8624,7 +8626,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8624
8626
  var pixelTatio = GetDevicePixelRatio(); //鼠标移动坐标是原始坐标 需要乘以放大倍速
8625
8627
  if (this.GetChartDrawPictureByPoint(drawPictrueData))
8626
8628
  {
8627
- drawPictrueData.ChartDrawPicture.Status=20;
8629
+ if (drawPictrueData.ChartDrawPicture.EnableMove==true)
8630
+ drawPictrueData.ChartDrawPicture.Status=20;
8628
8631
  drawPictrueData.ChartDrawPicture.ValueToPoint();
8629
8632
  drawPictrueData.ChartDrawPicture.MovePointIndex=drawPictrueData.PointIndex;
8630
8633
  drawPictrueData.ChartDrawPicture.IsSelected=true;
@@ -40012,16 +40015,38 @@ function ChartClipColorStick()
40012
40015
  this.UpColor=g_JSChartResource.UpBarColor;
40013
40016
  this.DownColor=g_JSChartResource.DownBarColor;
40014
40017
  this.LineWidth=1;
40018
+ this.Style=0; //1=同方向 0=上下两个方向
40019
+
40015
40020
  //差值线
40016
40021
  this.DownDiffColor=g_JSChartResource.DownBarColor;
40017
40022
  this.UpDiffColor=g_JSChartResource.UpBarColor;
40018
40023
 
40024
+ //文字
40025
+ this.TextLabelConfig=
40026
+ {
40027
+ Font:`${12*GetDevicePixelRatio()}px 微软雅黑`,
40028
+ TextMargin:{ Left:2, Right:2, Bottom:2, Top:2 },
40029
+ TextColor:"rgb(230,230,230)",
40030
+ UpColor:"rgb(137,16,19)",
40031
+ DownColor:"rgb(44,104,57)",
40032
+ UnchangeColor:"rgb(111,112,115)",
40033
+ BorderColor:"rgb(0,0,0)",
40034
+
40035
+ //缓存
40036
+ LabelWidth:0,
40037
+ TextHeight:0,
40038
+ MaxTextWidth:0,
40039
+ }
40040
+
40019
40041
  this.BaseLineColor; //基准线
40020
40042
 
40021
40043
  this.BaseValue=0;
40022
40044
  this.Super_GetMaxMin=this.GetMaxMin; //父类的方法
40023
40045
  this.ValueRange; //{ Max:, Min: } //固定最大最小值
40024
40046
 
40047
+ this.IsShowText=false;
40048
+
40049
+
40025
40050
  this.SetOption=function(option)
40026
40051
  {
40027
40052
  if (!option) return;
@@ -40032,11 +40057,18 @@ function ChartClipColorStick()
40032
40057
  if (option.UpDiffColor) this.UpDiffColor=option.UpDiffColor;
40033
40058
  if (option.BaseLineColor) this.BaseLineColor=option.BaseLineColor;
40034
40059
  if (IFrameSplitOperator.IsNumber(option.BaseValue)) this.BaseValue=option.BaseValue;
40060
+ if (IFrameSplitOperator.IsNumber(option.Style)) this.Style=option.Style;
40035
40061
  if (option.ValueRange) this.ValueRange=option.ValueRange;
40062
+
40036
40063
  }
40037
40064
 
40038
40065
  this.Draw=function()
40039
40066
  {
40067
+ this.IsShowText=false;
40068
+ this.TextLabelConfig.LabelWidth=0;
40069
+ this.TextLabelConfig.TextHeight=0;
40070
+ this.TextLabelConfig.MaxTextWidth=0;
40071
+
40040
40072
  if (!this.IsShow || this.ChartFrame.IsMinSize || !this.IsVisible) return;
40041
40073
  if (this.IsShowIndexTitleOnly()) return;
40042
40074
  if (this.IsHideScriptIndex()) return;
@@ -40047,23 +40079,44 @@ function ChartClipColorStick()
40047
40079
  return;
40048
40080
  }
40049
40081
 
40050
- this.Canvas.save();
40051
40082
  var dataWidth=this.ChartFrame.DataWidth;
40083
+ var distanceWidth=this.ChartFrame.DistanceWidth;
40084
+ var xPointCount=this.ChartFrame.XPointCount;
40085
+ var bHScreen=this.ChartFrame.IsHScreen===true;
40086
+
40052
40087
  var lineWidth=this.LineWidth*GetDevicePixelRatio();
40053
40088
  if (this.LineWidth==50) lineWidth=dataWidth;
40054
40089
  else if (lineWidth>dataWidth) lineWidth=dataWidth;
40055
-
40090
+
40091
+ if (!bHScreen)
40092
+ {
40093
+ var itemWidth=dataWidth+distanceWidth;
40094
+ var bMinute=this.IsMinuteFrame();
40095
+ if (bMinute)
40096
+ {
40097
+ var border=this.ChartBorder.GetBorder();
40098
+ itemWidth=(border.Right-border.Left)/(xPointCount-1);
40099
+ }
40100
+
40101
+ this.Canvas.font=this.TextLabelConfig.Font;
40102
+ this.TextLabelConfig.MaxTextWidth=this.Canvas.measureText("-888").width;
40103
+ this.TextLabelConfig.LabelWidth=this.TextLabelConfig.MaxTextWidth+this.TextLabelConfig.TextMargin.Left+this.TextLabelConfig.TextMargin.Right;
40104
+ this.IsShowText=itemWidth>this.TextLabelConfig.LabelWidth;
40105
+ this.TextLabelConfig.TextHeight=this.Canvas.measureText("擎").width;
40106
+ }
40107
+
40108
+ this.Canvas.save();
40056
40109
  if (IFrameSplitOperator.IsNumber(this.BaseValue) && this.BaseValue!=0)
40057
40110
  {
40058
40111
  this.DrawBaseLine();
40059
40112
 
40060
- if (this.BaseValue>0) this.DrawBars(lineWidth, true);
40061
- else this.DrawBars(lineWidth, false);
40113
+ if (this.BaseValue>0) this.DrawBars(lineWidth, true, true);
40114
+ else this.DrawBars(lineWidth, false, true);
40062
40115
  }
40063
40116
  else
40064
40117
  {
40065
40118
  //上下分开画
40066
- this.DrawBars(lineWidth, true);
40119
+ this.DrawBars(lineWidth, true, true);
40067
40120
  this.DrawBars(lineWidth, false);
40068
40121
  }
40069
40122
 
@@ -40071,15 +40124,15 @@ function ChartClipColorStick()
40071
40124
  this.Canvas.restore();
40072
40125
  }
40073
40126
 
40074
- this.DrawBars=function(lineWidth, bUpBar)
40127
+ this.DrawBars=function(lineWidth, bUpBar, bDrawLabel)
40075
40128
  {
40076
40129
  var isMinute=this.IsMinuteFrame();
40077
40130
  var dataWidth=this.ChartFrame.DataWidth;
40078
40131
  var distanceWidth=this.ChartFrame.DistanceWidth;
40079
40132
  var xPointCount=this.ChartFrame.XPointCount;
40080
- var isHSCreen=this.ChartFrame.IsHScreen===true;
40133
+ var bHScreen=this.ChartFrame.IsHScreen===true;
40081
40134
 
40082
- if (isHSCreen)
40135
+ if (bHScreen)
40083
40136
  {
40084
40137
  var border=this.ChartBorder.GetHScreenBorder();
40085
40138
  var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
@@ -40098,19 +40151,12 @@ function ChartClipColorStick()
40098
40151
  }
40099
40152
 
40100
40153
  var yBottom=this.ChartFrame.GetYFromData(this.BaseValue);
40101
- var aryBar=[], aryDiffBar=[];
40154
+ var aryBar=[], aryDiffBar=[], aryText=[];
40155
+ var preValue=null;
40102
40156
  for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
40103
40157
  {
40104
40158
  var value=this.Data.Data[i];
40105
40159
  if (value==null) continue;
40106
- if (bUpBar)
40107
- {
40108
- if (value<0) continue;
40109
- }
40110
- else
40111
- {
40112
- if (value>=0) continue;
40113
- }
40114
40160
 
40115
40161
  if (isMinute)
40116
40162
  {
@@ -40126,6 +40172,21 @@ function ChartClipColorStick()
40126
40172
 
40127
40173
  if (x>chartright) break;
40128
40174
 
40175
+ var textItem={ X:x, Value:value };
40176
+ if (IFrameSplitOperator.IsNumber(preValue)) textItem.DiffValue=value-preValue;
40177
+ aryText.push(textItem);
40178
+
40179
+ preValue=value;
40180
+
40181
+ if (bUpBar)
40182
+ {
40183
+ if (value<0) continue;
40184
+ }
40185
+ else
40186
+ {
40187
+ if (value>=0) continue;
40188
+ }
40189
+
40129
40190
  var bDiffBar=false;
40130
40191
  var diffValue=null;
40131
40192
  if (this.BaseValue>0)
@@ -40133,7 +40194,10 @@ function ChartClipColorStick()
40133
40194
  if (value<this.BaseValue)
40134
40195
  {
40135
40196
  bDiffBar=true;
40136
- diffValue=this.BaseValue-(this.BaseValue-value);
40197
+ if (this.Style==1)
40198
+ diffValue=this.BaseValue+(this.BaseValue-value);
40199
+ else
40200
+ diffValue=this.BaseValue-(this.BaseValue-value);
40137
40201
  }
40138
40202
  }
40139
40203
  else if (this.BaseValue<0)
@@ -40141,19 +40205,22 @@ function ChartClipColorStick()
40141
40205
  if (value>this.BaseValue)
40142
40206
  {
40143
40207
  bDiffBar=true;
40144
- diffValue=this.BaseValue+(value-this.BaseValue)
40208
+ if (this.Style==1)
40209
+ diffValue=this.BaseValue-(value-this.BaseValue);
40210
+ else
40211
+ diffValue=this.BaseValue+(value-this.BaseValue)
40145
40212
  }
40146
40213
  }
40147
40214
 
40148
40215
  if (!bDiffBar)
40149
40216
  {
40150
40217
  var y=this.ChartFrame.GetYFromData(value);
40151
- aryBar.push({X:x, Y:y});
40218
+ aryBar.push({X:x, Y:y });
40152
40219
  }
40153
40220
  else
40154
40221
  {
40155
40222
  var y=this.ChartFrame.GetYFromData(diffValue);
40156
- aryDiffBar.push({X:x, Y:y});
40223
+ aryDiffBar.push({X:x, Y:y });
40157
40224
  }
40158
40225
  }
40159
40226
 
@@ -40162,6 +40229,7 @@ function ChartClipColorStick()
40162
40229
  else this.Canvas.strokeStyle=this.DownColor;
40163
40230
 
40164
40231
  this.DrawStick(aryBar,lineWidth,yBottom);
40232
+
40165
40233
 
40166
40234
  if (this.BaseValue>0)
40167
40235
  {
@@ -40174,13 +40242,14 @@ function ChartClipColorStick()
40174
40242
  this.DrawStick(aryDiffBar,lineWidth,yBottom);
40175
40243
  }
40176
40244
 
40245
+ if (this.IsShowText && bDrawLabel) this.DrawStickText(aryText);
40177
40246
  }
40178
40247
 
40179
40248
  this.DrawStick=function(aryData, lineWidth, yBottom)
40180
40249
  {
40181
40250
  if (!IFrameSplitOperator.IsNonEmptyArray(aryData)) return;
40182
40251
 
40183
- var isHSCreen=this.ChartFrame.IsHScreen===true;
40252
+ var bHScreen=this.ChartFrame.IsHScreen===true;
40184
40253
  var drawCount=0;
40185
40254
  this.Canvas.beginPath();
40186
40255
  for(var i=0; i<aryData.length; ++i)
@@ -40189,7 +40258,7 @@ function ChartClipColorStick()
40189
40258
  var y=item.Y;
40190
40259
  var xFix=ToFixedPoint2(lineWidth, item.X); //毛边修正
40191
40260
 
40192
- if (isHSCreen)
40261
+ if (bHScreen)
40193
40262
  {
40194
40263
  this.Canvas.moveTo(yBottom,ToFixedPoint(x));
40195
40264
  this.Canvas.lineTo(y,ToFixedPoint(x));
@@ -40211,14 +40280,14 @@ function ChartClipColorStick()
40211
40280
  if (!IFrameSplitOperator.IsNumber(this.BaseValue) || this.BaseValue==0) return;
40212
40281
  if (!this.BaseLineColor) return;
40213
40282
 
40214
- var isHSCreen=this.ChartFrame.IsHScreen===true;
40283
+ var bHScreen=this.ChartFrame.IsHScreen===true;
40215
40284
  var border=this.ChartFrame.GetBorder();
40216
40285
  var y=this.ChartFrame.GetYFromData(this.BaseValue);
40217
40286
 
40218
40287
  this.Canvas.strokeStyle=this.BaseLineColor;
40219
40288
  this.Canvas.lineWidth=1*GetDevicePixelRatio();
40220
40289
 
40221
- if (isHSCreen)
40290
+ if (bHScreen)
40222
40291
  {
40223
40292
 
40224
40293
  }
@@ -40232,6 +40301,107 @@ function ChartClipColorStick()
40232
40301
  }
40233
40302
  }
40234
40303
 
40304
+ this.DrawStickText=function(aryData)
40305
+ {
40306
+ var config=this.TextLabelConfig;
40307
+ this.Canvas.font=config.Font;
40308
+ var border=this.ChartBorder.GetBorder();
40309
+ var itemHeight=config.TextHeight*2+config.TextMargin.Bottom+config.TextMargin.Top;
40310
+ for(var i=0; i<aryData.length; ++i)
40311
+ {
40312
+ var item=aryData[i];
40313
+ var value=item.Value;
40314
+ var xCenter=item.X;
40315
+ var xLeft=xCenter-config.LabelWidth/2;
40316
+
40317
+ var rtDraw={ Left:xLeft, Width:config.LabelWidth, Top:border.BottomEx+1, Height:itemHeight };
40318
+ rtDraw.Right=rtDraw.Left+rtDraw.Width;
40319
+ rtDraw.Bottom=rtDraw.Top+rtDraw.Height;
40320
+ if (IFrameSplitOperator.IsNumber(value))
40321
+ {
40322
+ var bgColor=config.UnchangeColor;
40323
+ if (value>0) bgColor=config.UpColor;
40324
+ else if (value<0) bgColor=config.DownColor;
40325
+ this.DrawTextLabel(value, bgColor, config.BorderColor, config.TextColor, rtDraw, config.TextHeight, config.MaxTextWidth, config.TextMargin);
40326
+ }
40327
+
40328
+ var value=item.DiffValue;
40329
+ var rtDraw={ Left:xLeft, Width:config.LabelWidth, Bottom:border.TopEx-1, Height:itemHeight };
40330
+ rtDraw.Right=rtDraw.Left+rtDraw.Width;
40331
+ rtDraw.Top=rtDraw.Bottom-rtDraw.Height;
40332
+ if (IFrameSplitOperator.IsNumber(value))
40333
+ {
40334
+ var bgColor=config.UnchangeColor;
40335
+ if (value>0) bgColor=config.UpColor;
40336
+ else if (value<0) bgColor=config.DownColor;
40337
+ this.DrawTextLabel(value, bgColor, config.BorderColor, config.TextColor, rtDraw, config.TextHeight, config.MaxTextWidth, config.TextMargin);
40338
+ }
40339
+ }
40340
+ }
40341
+
40342
+ //数值标签
40343
+ this.DrawTextLabel=function(value, clrGB, clrBorder, clrText, rtDraw, textHeight, textWidth, textMargin)
40344
+ {
40345
+ if (clrGB)
40346
+ {
40347
+ this.Canvas.fillStyle=clrGB;
40348
+ this.Canvas.fillRect(rtDraw.Left ,rtDraw.Top, (rtDraw.Width), (rtDraw.Height));
40349
+ }
40350
+
40351
+ if (clrBorder)
40352
+ {
40353
+ this.Canvas.lineWidth=2;
40354
+ this.Canvas.strokeStyle=clrBorder;
40355
+ this.Canvas.strokeRect(rtDraw.Left, rtDraw.Top, rtDraw.Width, rtDraw.Height);
40356
+ }
40357
+ else
40358
+ {
40359
+ this.Canvas.lineWidth=1;
40360
+ this.Canvas.strokeStyle="rgb(0,0,0)";
40361
+ this.Canvas.strokeRect(rtDraw.Left, rtDraw.Top, rtDraw.Width, rtDraw.Height);
40362
+ }
40363
+
40364
+ var aryText=[null, null]; //大于3位数的 2行输出
40365
+ var sign=""; //负数
40366
+ if (value<0)
40367
+ {
40368
+ value=Math.abs(value);
40369
+ sign='-';
40370
+ }
40371
+
40372
+ if (value>999)
40373
+ {
40374
+ var thousand=parseInt(value/1000);
40375
+ var hundred=parseInt(value%1000);
40376
+
40377
+ aryText[0]=`${sign}${thousand}`;
40378
+ aryText[1]=`${hundred}`;
40379
+ if (hundred<10) aryText[1]=`00${hundred}`;
40380
+ else if (hundred<100) aryText[1]=`0${hundred}`;
40381
+ }
40382
+ else
40383
+ {
40384
+ aryText[1]=`${sign}${value.toFixed(0)}`;
40385
+ }
40386
+
40387
+ this.Canvas.textAlign="right";
40388
+ this.Canvas.textBaseline="top";
40389
+ var xRight=rtDraw.Right-(rtDraw.Right-rtDraw.Left-textWidth)/2;
40390
+
40391
+ this.Canvas.fillStyle=clrText;
40392
+ var yText=textMargin.Top+rtDraw.Top;
40393
+ for(var i=0;i<aryText.length;++i)
40394
+ {
40395
+ var text=aryText[i];
40396
+ if (text)
40397
+ {
40398
+ this.Canvas.fillText(text,xRight,yText);
40399
+ }
40400
+
40401
+ yText+=textHeight;
40402
+ }
40403
+ }
40404
+
40235
40405
  this.GetMaxMin=function()
40236
40406
  {
40237
40407
  if (!IFrameSplitOperator.IsNumber(this.BaseValue) || this.BaseValue==0)
@@ -40294,13 +40464,36 @@ function ChartClipColorStick()
40294
40464
 
40295
40465
  if (this.BaseValue>0)
40296
40466
  {
40297
- if (IFrameSplitOperator.IsNumber(maxDiffValue) && IFrameSplitOperator.IsNumber(range.Min))
40298
- range.Min-=maxDiffValue;
40467
+ if (this.Style==1)
40468
+ {
40469
+ if (IFrameSplitOperator.IsNumber(maxDiffValue))
40470
+ {
40471
+ var value=this.BaseValue+maxDiffValue;
40472
+ if (IFrameSplitOperator.IsNumber(range.Max) || range.Max<value) range.Max=value;
40473
+ }
40474
+ }
40475
+ else
40476
+ {
40477
+ if (IFrameSplitOperator.IsNumber(maxDiffValue) && IFrameSplitOperator.IsNumber(range.Min))
40478
+ range.Min-=maxDiffValue;
40479
+ }
40480
+
40299
40481
  }
40300
40482
  else
40301
40483
  {
40302
- if (IFrameSplitOperator.IsNumber(maxDiffValue) && IFrameSplitOperator.IsNumber(range.Max))
40303
- range.Max+=maxDiffValue;
40484
+ if (this.Style==1)
40485
+ {
40486
+ if (IFrameSplitOperator.IsNumber(maxDiffValue))
40487
+ {
40488
+ var value=this.BaseValue-maxDiffValue;
40489
+ if (IFrameSplitOperator.IsNumber(range.Min) || range.Min>value) range.Min=value;
40490
+ }
40491
+ }
40492
+ else
40493
+ {
40494
+ if (IFrameSplitOperator.IsNumber(maxDiffValue) && IFrameSplitOperator.IsNumber(range.Max))
40495
+ range.Max+=maxDiffValue;
40496
+ }
40304
40497
  }
40305
40498
 
40306
40499
  return range;
@@ -83559,8 +83752,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
83559
83752
  drawPictrueData.Y=(touches[0].clientY-uielement.getBoundingClientRect().top);
83560
83753
  if (this.GetChartDrawPictureByPoint(drawPictrueData))
83561
83754
  {
83562
-
83563
- drawPictrueData.ChartDrawPicture.Status=20;
83755
+ if (drawPictrueData.ChartDrawPicture.EnableMove==true)
83756
+ drawPictrueData.ChartDrawPicture.Status=20;
83564
83757
  drawPictrueData.ChartDrawPicture.ValueToPoint();
83565
83758
  drawPictrueData.ChartDrawPicture.MovePointIndex=drawPictrueData.PointIndex;
83566
83759
  drawPictrueData.ChartDrawPicture.IsSelected=true;
@@ -142948,7 +143141,7 @@ function HQChartScriptWorker()
142948
143141
 
142949
143142
 
142950
143143
 
142951
- var HQCHART_VERSION="1.1.13739";
143144
+ var HQCHART_VERSION="1.1.13745";
142952
143145
 
142953
143146
  function PrintHQChartVersion()
142954
143147
  {