hqchart 1.1.14125 → 1.1.14133

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.
@@ -3046,6 +3046,13 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
3046
3046
  this.DialogModifyIndexParam; //指标参数修改
3047
3047
 
3048
3048
 
3049
+ this.GetVolUnit=function() //成交量单位
3050
+ {
3051
+ var upperSymbol=this.Symbol?this.Symbol.toUpperCase():null;
3052
+ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
3053
+ return unit;
3054
+ }
3055
+
3049
3056
  this.ClearStockCache=function()
3050
3057
  {
3051
3058
  this.StockCache.Data=null;
@@ -31389,6 +31396,13 @@ function ChartMinuteVolumBar()
31389
31396
  return this.DrawLinePoint({ MinuteVolBar:true });
31390
31397
  }
31391
31398
 
31399
+ this.GetVolUnit=function()
31400
+ {
31401
+ var upperSymbol=this.Symbol?this.Symbol.toUpperCase():null;
31402
+ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
31403
+ return unit;
31404
+ }
31405
+
31392
31406
  this.Draw=function()
31393
31407
  {
31394
31408
  var isHScreen = (this.ChartFrame.IsHScreen === true);
@@ -31411,9 +31425,11 @@ function ChartMinuteVolumBar()
31411
31425
  var yBottom=this.ChartFrame.GetYFromData(0);
31412
31426
  var yPrice=this.YClose; //上一分钟的价格
31413
31427
  var data=this.Data;
31428
+
31414
31429
  var bShowColorBar=MARKET_SUFFIX_NAME.IsShowMinuteColorVolBar(this.Symbol);
31415
-
31416
31430
  if (bShowColorBar) this.Canvas.strokeStyle=this.CustomColor;
31431
+ var unit=this.GetVolUnit();
31432
+
31417
31433
  for(var i=data.DataOffset,j=0;i<data.Data.length && j<xPointCount;++i,++j)
31418
31434
  {
31419
31435
  var item = data.Data[i];
@@ -31421,7 +31437,7 @@ function ChartMinuteVolumBar()
31421
31437
  if (!item) continue;
31422
31438
  var price=null;
31423
31439
 
31424
- vol=item.Vol;
31440
+ vol=item.Vol/unit;
31425
31441
  price=item.Close;
31426
31442
 
31427
31443
  if (!vol) continue;
@@ -31528,6 +31544,7 @@ function ChartMinuteVolumBar()
31528
31544
  var isHScreen=(this.ChartFrame.IsHScreen===true);
31529
31545
  var yPrice=this.YClose; //上一分钟的价格
31530
31546
  var yBottom=this.ChartFrame.GetYFromData(0);
31547
+ var unit=this.GetVolUnit();
31531
31548
  if (callAutionData.Ver==1.0)
31532
31549
  {
31533
31550
  for(var i in callAutionData.Data)
@@ -31538,12 +31555,12 @@ function ChartMinuteVolumBar()
31538
31555
  if (isBeforeOpen)
31539
31556
  {
31540
31557
  var x=this.ChartFrame.GetLeftExtendXFromIndex(i,callAutionData);
31541
- var y=this.ChartFrame.GetLeftExtendYFromData(item.Vol[0]);
31558
+ var y=this.ChartFrame.GetLeftExtendYFromData(item.Vol[0]/unit);
31542
31559
  }
31543
31560
  else
31544
31561
  {
31545
31562
  var x=this.ChartFrame.GetRightExtendXFromIndex(i,callAutionData);
31546
- var y=this.ChartFrame.GetRightExtendYFromData(item.Vol[0]);
31563
+ var y=this.ChartFrame.GetRightExtendYFromData(item.Vol[0]/unit);
31547
31564
  }
31548
31565
 
31549
31566
 
@@ -31576,13 +31593,13 @@ function ChartMinuteVolumBar()
31576
31593
  if (isBeforeOpen)
31577
31594
  {
31578
31595
  var x=this.ChartFrame.GetLeftExtendXFromIndex(i,callAutionData);
31579
- var y=this.ChartFrame.GetLeftExtendYFromData(item.Vol[0],false, { Range:range });
31596
+ var y=this.ChartFrame.GetLeftExtendYFromData(item.Vol[0]/unit,false, { Range:range });
31580
31597
  }
31581
31598
  else
31582
31599
  {
31583
31600
  var x=this.ChartFrame.GetRightExtendXFromIndex(i,callAutionData);
31584
- if (this.ShareAfterVol==1) var y=this.ChartFrame.GetYFromData(item.Vol[0]);
31585
- else var y=this.ChartFrame.GetRightExtendYFromData(item.Vol[0],false, { Range:range });
31601
+ if (this.ShareAfterVol==1) var y=this.ChartFrame.GetYFromData(item.Vol[0]/unit);
31602
+ else var y=this.ChartFrame.GetRightExtendYFromData(item.Vol[0]/unit,false, { Range:range });
31586
31603
  }
31587
31604
 
31588
31605
  this.Canvas.strokeStyle = this.GetBarColor(item.ColorID);
@@ -31606,13 +31623,13 @@ function ChartMinuteVolumBar()
31606
31623
  if (isBeforeOpen)
31607
31624
  {
31608
31625
  var x=this.ChartFrame.GetLeftExtendXFromIndex(i,callAutionData);
31609
- var y=this.ChartFrame.GetLeftExtendYFromData(item.Vol[1],false, { Range:range });
31626
+ var y=this.ChartFrame.GetLeftExtendYFromData(item.Vol[1]/unit,false, { Range:range });
31610
31627
  }
31611
31628
  else
31612
31629
  {
31613
31630
  var x=this.ChartFrame.GetRightExtendXFromIndex(i,callAutionData);
31614
- if (this.ShareAfterVol==1) var y=this.ChartFrame.GetYFromData(item.Vol[1]);
31615
- else var y=this.ChartFrame.GetRightExtendYFromData(item.Vol[1],false, { Range:range });
31631
+ if (this.ShareAfterVol==1) var y=this.ChartFrame.GetYFromData(item.Vol[1]/unit);
31632
+ else var y=this.ChartFrame.GetRightExtendYFromData(item.Vol[1]/unit,false, { Range:range });
31616
31633
  }
31617
31634
 
31618
31635
  this.Canvas.strokeStyle = this.GetBarColor(item.ColorID);
@@ -31661,6 +31678,7 @@ function ChartMinuteVolumBar()
31661
31678
 
31662
31679
  this.GetMaxMin=function()
31663
31680
  {
31681
+ var unit=this.GetVolUnit();
31664
31682
  var xPointCount=this.ChartFrame.XPointCount;
31665
31683
  var start=this.Data.DataOffset;
31666
31684
  if (this.ChartFrame.GlobalOption && this.ChartFrame.GlobalOption.IsValueFullRange===true)
@@ -31677,10 +31695,9 @@ function ChartMinuteVolumBar()
31677
31695
  {
31678
31696
  var item = this.Data.Data[i];
31679
31697
  if (!item || !item.Vol) continue;
31680
- if (range.Max == null) range.Max = item.Vol;
31681
- if (range.Max < item.Vol) range.Max = item.Vol;
31698
+ var value=item.Vol/unit;
31699
+ if (range.Max == null || range.Max < value) range.Max = value;
31682
31700
  }
31683
-
31684
31701
 
31685
31702
  if (this.ShareAfterVol==1)
31686
31703
  {
@@ -35417,6 +35434,136 @@ function ChartDrawNumber()
35417
35434
  }
35418
35435
  }
35419
35436
 
35437
+ function ChartDrawLastBarText()
35438
+ {
35439
+ this.newMethod=IChartPainting; //派生
35440
+ this.newMethod();
35441
+ delete this.newMethod;
35442
+
35443
+ this.ClassName='ChartDrawLastBarText'; //类名
35444
+ this.LastBarItem=null;
35445
+
35446
+ this.TextSize=
35447
+ {
35448
+ Max: g_JSChartResource.DRAWICON.Text.MaxSize, Min:g_JSChartResource.DRAWICON.Text.MinSize, //字体的最大最小值
35449
+ Zoom:{ Type:g_JSChartResource.DRAWICON.Text.Zoom.Type , Value:g_JSChartResource.DRAWICON.Text.Zoom.Value }, //放大倍数
35450
+ FontName:g_JSChartResource.DRAWICON.Text.FontName,
35451
+ YOffset:g_JSChartResource.DRAWICON.Text.YOffset
35452
+ }
35453
+
35454
+ this.IconSize=
35455
+ {
35456
+ Max: g_JSChartResource.DRAWICON.Icon.MaxSize, Min:g_JSChartResource.DRAWICON.Icon.MinSize, //图标的最大最小值
35457
+ Zoom:{ Type:g_JSChartResource.DRAWICON.Icon.Zoom.Type , Value:g_JSChartResource.DRAWICON.Icon.Zoom.Value }, //放大倍数
35458
+ YOffset:g_JSChartResource.DRAWICON.Icon.YOffset //Direction==2的向下偏移
35459
+ };
35460
+
35461
+ this.IconFamily=g_JSChartResource.DRAWLASTICON.Family;
35462
+
35463
+ this.ReloadResource=function(resource)
35464
+ {
35465
+ this.TextSize=
35466
+ {
35467
+ Max: g_JSChartResource.DRAWTEXT.MaxSize, Min:g_JSChartResource.DRAWTEXT.MinSize, //字体的最大最小值
35468
+ Zoom:{ Type:g_JSChartResource.DRAWTEXT.Zoom.Type , Value:g_JSChartResource.DRAWTEXT.Zoom.Value }, //放大倍数
35469
+ FontName:g_JSChartResource.DRAWTEXT.FontName,
35470
+ };
35471
+
35472
+ this.IconSize=
35473
+ {
35474
+ Max: g_JSChartResource.DRAWICON.Icon.MaxSize, Min:g_JSChartResource.DRAWICON.Icon.MinSize, //图标的最大最小值
35475
+ Zoom:{ Type:g_JSChartResource.DRAWICON.Icon.Zoom.Type , Value:g_JSChartResource.DRAWICON.Icon.Zoom.Value }, //放大倍数
35476
+ };
35477
+
35478
+ this.IconFamily=g_JSChartResource.DRAWLASTICON.Family;
35479
+ }
35480
+
35481
+ this.Draw=function()
35482
+ {
35483
+ if (!this.IsShow || this.ChartFrame.IsMinSize || !this.IsVisible) return;
35484
+ if (this.IsShowIndexTitleOnly()) return;
35485
+ if (this.IsHideScriptIndex()) return;
35486
+ if (!this.LastBarItem) return;
35487
+ if (!this.Data || !IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return;
35488
+
35489
+ this.IsHScreen=(this.ChartFrame.IsHScreen===true);
35490
+ var xPointCount=this.ChartFrame.XPointCount;
35491
+ var offset=this.Data.DataOffset;
35492
+ var index=offset+xPointCount;
35493
+ if (index<this.Data.Data.length) return;
35494
+ var lastIndex=(this.Data.Data.length-1)-offset;
35495
+ var x=this.ChartFrame.GetXFromIndex(lastIndex);
35496
+ var item=this.LastBarItem;
35497
+
35498
+ if (item.Value=="Top") y=top;
35499
+ else if (item.Value=="Bottom") y=bottom;
35500
+ else y=this.ChartFrame.GetYFromData(item.Value, false);
35501
+ if (IFrameSplitOperator.IsNumber(item.YOffset)) y+=item.YOffset; //Y轴偏移
35502
+ if (IFrameSplitOperator.IsNumber(item.XOffset)) x+=item.XOffset;
35503
+
35504
+ this.Canvas.save();
35505
+ this.ClipClient(this.IsHScreen);
35506
+
35507
+ //文本
35508
+ if (item.Text) this.DrawLastText(item, x, y);
35509
+ else if (item.Icon) this.DrawLastIcon(item, x, y);
35510
+
35511
+ this.Canvas.restore();
35512
+ }
35513
+
35514
+ this.DrawLastText=function(item,x,y)
35515
+ {
35516
+ var dataWidth=this.ChartFrame.DataWidth;
35517
+ var distanceWidth=this.ChartFrame.DistanceWidth;
35518
+ var font=this.GetDynamicFont(dataWidth,distanceWidth,this.TextSize.Max,this.TextSize.Min,this.TextSize.Zoom,this.TextSize.FontName);
35519
+
35520
+ var textBaseline='bottom';
35521
+ if (item.TextBaseline) textBaseline=item.TextBaseline;
35522
+ var textAlign="center";
35523
+ if (item.TextAlign) textAlign=item.TextAlign;
35524
+
35525
+ this.Canvas.font=font;
35526
+ this.Canvas.textBaseline=textBaseline;
35527
+ this.Canvas.textAlign=textAlign;
35528
+ this.Canvas.fillStyle = item.Color;
35529
+ this.Canvas.fillText(item.Text, x, y);
35530
+ }
35531
+
35532
+ this.DrawLastIcon=function(item,x,y)
35533
+ {
35534
+ var dataWidth=this.ChartFrame.DataWidth;
35535
+ var distanceWidth=this.ChartFrame.DistanceWidth;
35536
+ var iconSize=this.GetDynamicIconSize(dataWidth,distanceWidth,this.IconSize.Max,this.IconSize.Min,this.IconSize.Zoom);
35537
+ var font=`${iconSize}px ${this.IconFamily}`;
35538
+
35539
+ var textBaseline='bottom';
35540
+ if (item.TextBaseline) textBaseline=item.TextBaseline;
35541
+ var textAlign="center";
35542
+ if (item.TextAlign) textAlign=item.TextAlign;
35543
+
35544
+ this.Canvas.font=font;
35545
+ this.Canvas.textBaseline=textBaseline;
35546
+ this.Canvas.textAlign=textAlign;
35547
+ this.Canvas.fillStyle = item.Color;
35548
+ this.Canvas.fillText(item.Icon.Symbol, x, y);
35549
+ }
35550
+
35551
+ this.GetMaxMin=function()
35552
+ {
35553
+ var range={ Min:null, Max:null };
35554
+ if (!this.Data || !IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return range;
35555
+ var xPointCount=this.ChartFrame.XPointCount;
35556
+ var offset=this.Data.DataOffset;
35557
+ var index=offset+xPointCount;
35558
+ if (index<this.Data.Data.length) return range;
35559
+ if (!this.LastBarItem) return range;
35560
+
35561
+ if (IFrameSplitOperator.IsNumber(this.LastBarItem.Value)) range.Max=range.Min=this.LastBarItem.Value;
35562
+
35563
+ return range;
35564
+ }
35565
+ }
35566
+
35420
35567
  //直线 水平直线 只有1个数据
35421
35568
  function ChartStraightLine()
35422
35569
  {
@@ -42620,6 +42767,7 @@ function KLineTooltipPaint()
42620
42767
  var upperSymbol;
42621
42768
  if (this.HQChart.Symbol) upperSymbol=this.HQChart.Symbol.toUpperCase();
42622
42769
  var defaultfloatPrecision=GetfloatPrecision(this.HQChart.Symbol);//价格小数位数
42770
+ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
42623
42771
 
42624
42772
  var aryText=[];
42625
42773
  var result={ AryText:aryText };
@@ -42703,7 +42851,7 @@ function KLineTooltipPaint()
42703
42851
  title=g_JSChartLocalization.GetText('Tooltip-Vol',this.LanguageID);
42704
42852
  var vol=item.Vol;
42705
42853
  if (upperSymbol && MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol)) vol/=100; //A股统一转成手
42706
- text=IFrameSplitOperator.FromatIntegerString(vol,2,this.LanguageID);
42854
+ text=IFrameSplitOperator.FromatIntegerString(vol/unit,2,this.LanguageID);
42707
42855
  aryText.push({Title:title, TitleColor:this.TitleColor, Text:text, Color:this.VolColor });
42708
42856
  }
42709
42857
 
@@ -43080,6 +43228,7 @@ function MinuteTooltipPaint()
43080
43228
  if (this.HQChart.Symbol) upperSymbol=this.HQChart.Symbol.toUpperCase();
43081
43229
  var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
43082
43230
  var defaultfloatPrecision=GetfloatPrecision(this.HQChart.Symbol);//价格小数位数
43231
+ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
43083
43232
 
43084
43233
  this.YClose=this.TitlePaint.YClose;
43085
43234
  this.YClose=item.YClose;
@@ -43146,7 +43295,7 @@ function MinuteTooltipPaint()
43146
43295
  if (IFrameSplitOperator.IsNumber(vol))
43147
43296
  {
43148
43297
  title=g_JSChartLocalization.GetText('Tooltip-Vol',this.LanguageID);
43149
- var text=IFrameSplitOperator.FromatIntegerString(vol,2,this.LanguageID);
43298
+ var text=IFrameSplitOperator.FromatIntegerString(vol/unit,2,this.LanguageID);
43150
43299
  aryText.push({Title:title, TitleColor:this.TitleColor, Text:text, Color:this.VolColor });
43151
43300
  }
43152
43301
 
@@ -43167,134 +43316,6 @@ function MinuteTooltipPaint()
43167
43316
 
43168
43317
  return result;
43169
43318
  }
43170
-
43171
- /*
43172
- this.DrawTooltipData=function(item)
43173
- {
43174
- //JSConsole.Chart.Log('[KLineTooltipPaint::DrawKLineData] ', item);
43175
- if (!this.HQChart.Symbol) return;
43176
-
43177
- var defaultfloatPrecision=GetfloatPrecision(this.HQChart.Symbol);//价格小数位数
43178
- var left=this.GetLeft()+2*GetDevicePixelRatio();
43179
- var top=this.GetTop()+3*GetDevicePixelRatio();
43180
- this.YClose=this.KLineTitlePaint.YClose;
43181
- var upperSymbol=this.HQChart.Symbol.toUpperCase();
43182
-
43183
- if (this.IsHScreen)
43184
- {
43185
- this.Canvas.save();
43186
- var x=this.GetLeft()+this.Height, y=this.GetTop();
43187
-
43188
- this.Canvas.translate(x, y);
43189
- this.Canvas.rotate(90 * Math.PI / 180);
43190
-
43191
- //x, y 作为原点
43192
- left=2*GetDevicePixelRatio();
43193
- top=3*GetDevicePixelRatio();
43194
- }
43195
-
43196
- this.Canvas.textBaseline="top";
43197
- this.Canvas.textAlign="left";
43198
- this.Canvas.font=this.Font[0];
43199
- var labelWidth=this.Canvas.measureText('擎: ').width;
43200
-
43201
- var aryDateTime=item.DateTime.split(' ');
43202
- if (aryDateTime && aryDateTime.length==2)
43203
- {
43204
- var text=IFrameSplitOperator.FormatDateString(aryDateTime[0]);
43205
- this.Canvas.fillStyle=this.TitleColor;
43206
- this.Canvas.fillText(text, left,top);
43207
-
43208
- top+=this.LineHeight;
43209
- text=IFrameSplitOperator.FormatTimeString(aryDateTime[1]);
43210
- this.Canvas.fillText(text, left,top);
43211
- }
43212
-
43213
- var close=item.Close;
43214
- var increase=item.Increase;
43215
- var vol=item.Vol;
43216
- var amount=item.Amount;
43217
- if (item.Before) //读取盘前数据
43218
- {
43219
- close=item.Before.Close;
43220
- increase=item.Before.Increase;
43221
- vol=item.Before.Vol;
43222
- amount=item.Before.Amount;
43223
- }
43224
-
43225
- //最新价格
43226
- top+=this.LineHeight;
43227
- this.Canvas.fillStyle=this.TitleColor;
43228
- text=g_JSChartLocalization.GetText('Tooltip-Price',this.LanguageID);
43229
- this.Canvas.fillText(text, left,top);
43230
- var color=this.KLineTitlePaint.GetColor(close,this.YClose);
43231
- var text=close.toFixed(defaultfloatPrecision);
43232
- this.Canvas.fillStyle=color;
43233
- this.Canvas.fillText(text,left+labelWidth,top);
43234
-
43235
- var isShowAvPrice=true;
43236
- if (item.Before) isShowAvPrice=false; //集合竞价均价
43237
- else if (MARKET_SUFFIX_NAME.IsForeignExchange(upperSymbol)) isShowAvPrice=false; //外汇没有均价
43238
- else if (MARKET_SUFFIX_NAME.IsET(upperSymbol) && !MARKET_SUFFIX_NAME.IsETShowAvPrice(upperSymbol)) isShowAvPrice=false;
43239
- else if (MARKET_SUFFIX_NAME.IsShowAvPrice && !MARKET_SUFFIX_NAME.IsShowAvPrice(upperSymbol)) isShowAvPrice=false;
43240
-
43241
- //均价
43242
- if (isShowAvPrice && IFrameSplitOperator.IsNumber(item.AvPrice) && this.IsShowAveragePrice)
43243
- {
43244
- top+=this.LineHeight;
43245
- this.Canvas.fillStyle=this.TitleColor;
43246
- text=g_JSChartLocalization.GetText('Tooltip-AvPrice',this.LanguageID);
43247
- this.Canvas.fillText(text, left,top);
43248
- var color=this.KLineTitlePaint.GetColor(item.AvPrice,this.YClose);
43249
- var text=item.AvPrice.toFixed(defaultfloatPrecision);
43250
- this.Canvas.fillStyle=color;
43251
- this.Canvas.fillText(text,left+labelWidth,top);
43252
- }
43253
-
43254
- //涨幅
43255
- top+=this.LineHeight;
43256
- this.Canvas.fillStyle=this.TitleColor;
43257
- text=g_JSChartLocalization.GetText('Tooltip-Increase',this.LanguageID);
43258
- this.Canvas.fillText(text, left,top);
43259
- var value=(close-this.YClose)/this.YClose*100;
43260
- var color = this.KLineTitlePaint.GetColor(value, 0);
43261
- var text = value.toFixed(2)+'%';
43262
- this.Canvas.fillStyle=color;
43263
- this.Canvas.fillText(text,left+labelWidth,top);
43264
-
43265
- //成交量
43266
- if (IFrameSplitOperator.IsNumber(vol))
43267
- {
43268
- this.Canvas.fillStyle=this.TitleColor;
43269
- top+=this.LineHeight;
43270
- text=g_JSChartLocalization.GetText('Tooltip-Vol',this.LanguageID);
43271
- this.Canvas.fillText(text, left,top);
43272
- var text=IFrameSplitOperator.FromatIntegerString(vol,2,this.LanguageID);
43273
- this.Canvas.fillText(text,left+labelWidth,top);
43274
- }
43275
-
43276
- //成交金额
43277
- if (IFrameSplitOperator.IsNumber(amount))
43278
- {
43279
- top+=this.LineHeight;
43280
- text=g_JSChartLocalization.GetText('Tooltip-Amount',this.LanguageID);
43281
- this.Canvas.fillText(text, left,top);
43282
- var text=IFrameSplitOperator.FormatValueString(amount,2,this.LanguageID);
43283
- this.Canvas.fillText(text,left+labelWidth,top);
43284
- }
43285
-
43286
- if (IFrameSplitOperator.IsNumber(item.Position))
43287
- {
43288
- top+=this.LineHeight;
43289
- text=g_JSChartLocalization.GetText('Tooltip-Position',this.LanguageID);
43290
- this.Canvas.fillText(text, left,top);
43291
- var text=IFrameSplitOperator.FormatValueString(item.Position,2,this.LanguageID);
43292
- this.Canvas.fillText(text,left+labelWidth,top);
43293
- }
43294
-
43295
- if (this.IsHScreen) this.Canvas.restore();
43296
- }
43297
- */
43298
43319
  }
43299
43320
 
43300
43321
  //PC端 分时图tooltip左侧固定
@@ -43450,6 +43471,7 @@ function MinuteLeftTooltipPaint()
43450
43471
  if (this.HQChart.Symbol) upperSymbol=this.HQChart.Symbol.toUpperCase();
43451
43472
  var defaultfloatPrecision=GetfloatPrecision(upperSymbol);//价格小数位数
43452
43473
  if (upperSymbol) isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
43474
+ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
43453
43475
 
43454
43476
  if (drawData.Type==0) //连续交易
43455
43477
  {
@@ -43473,7 +43495,7 @@ function MinuteLeftTooltipPaint()
43473
43495
  var titleItem=this.ForamtIncrease(item.Close,"PCTooltip-Increase");
43474
43496
  if (titleItem) aryText.push(titleItem);
43475
43497
 
43476
- var titleItem=this.FormatVol(item.Vol,'PCTooltip-Vol');
43498
+ var titleItem=this.FormatVol(item.Vol/unit,'PCTooltip-Vol');
43477
43499
  if (titleItem) aryText.push(titleItem);
43478
43500
 
43479
43501
  if (IFrameSplitOperator.IsNumber(item.Amount))
@@ -43519,10 +43541,10 @@ function MinuteLeftTooltipPaint()
43519
43541
 
43520
43542
  if (IFrameSplitOperator.IsNonEmptyArray(item.Vol))
43521
43543
  {
43522
- var titleItem=this.FormatVol(item.Vol[0],'PCTooltip-AC-Vol');
43544
+ var titleItem=this.FormatVol(item.Vol[0]/unit,'PCTooltip-AC-Vol');
43523
43545
  if (titleItem) aryText.push(titleItem);
43524
43546
 
43525
- var titleItem=this.FormatVol(item.Vol[1],'PCTooltip-AC-NotMatchVol');
43547
+ var titleItem=this.FormatVol(item.Vol[1]/unit,'PCTooltip-AC-NotMatchVol');
43526
43548
  if (titleItem) aryText.push(titleItem);
43527
43549
  }
43528
43550
  }
@@ -54182,8 +54204,8 @@ function DynamicKLineTitlePainting()
54182
54204
 
54183
54205
  if (IFrameSplitOperator.IsNumber(item.Vol)) //成交量
54184
54206
  {
54185
- var vol=item.Vol;
54186
- if (upperSymbol && MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol)) vol/=100; //A股原始单位股, 转成股
54207
+ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
54208
+ var vol=item.Vol/unit;
54187
54209
  var text=g_JSChartLocalization.GetText('KTitle-Vol',this.LanguageID)+IFrameSplitOperator.FromatIntegerString(vol,2,this.LanguageID);
54188
54210
  aryText.push({ Text:text, Color:this.VolColor});
54189
54211
  }
@@ -54613,6 +54635,7 @@ function DynamicMinuteTitlePainting()
54613
54635
  var upperSymbol=this.Symbol.toUpperCase();
54614
54636
  var defaultfloatPrecision=GetfloatPrecision(this.Symbol); //价格小数位数
54615
54637
  var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
54638
+ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
54616
54639
 
54617
54640
  var item=data.Data;
54618
54641
  var isLastOne=data.IsLastOne;
@@ -54690,7 +54713,7 @@ function DynamicMinuteTitlePainting()
54690
54713
 
54691
54714
  if (IFrameSplitOperator.IsNumber(vol))
54692
54715
  {
54693
- var text=g_JSChartLocalization.GetText('MTitle-Vol',this.LanguageID)+IFrameSplitOperator.FromatIntegerString(vol,2,this.LanguageID);
54716
+ var text=g_JSChartLocalization.GetText('MTitle-Vol',this.LanguageID)+IFrameSplitOperator.FromatIntegerString(vol/unit,2,this.LanguageID);
54694
54717
  aryText.push({Text:text, Color:this.VolColor});
54695
54718
  }
54696
54719
 
@@ -54797,7 +54820,8 @@ function DynamicMinuteTitlePainting()
54797
54820
  var aryText=[] //{ Color: Text: }
54798
54821
 
54799
54822
  var defaultfloatPrecision=GetfloatPrecision(this.Symbol);//价格小数位数
54800
-
54823
+ var upperSymbol=this.Symbol.toUpperCase();
54824
+ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
54801
54825
  //股票名称
54802
54826
  if (this.IsShowName) aryText.push({Text:this.Name, Color:this.NameColor});
54803
54827
 
@@ -54849,14 +54873,14 @@ function DynamicMinuteTitlePainting()
54849
54873
  {
54850
54874
  var filedName='MTitle-AC-Vol';
54851
54875
  if (data.Ver==1.0) filedName="MTitle-Vol";
54852
- var text=g_JSChartLocalization.GetText(filedName,this.LanguageID)+IFrameSplitOperator.FromatIntegerString(item.Vol[0],2);
54876
+ var text=g_JSChartLocalization.GetText(filedName,this.LanguageID)+IFrameSplitOperator.FromatIntegerString(item.Vol[0]/unit,2);
54853
54877
  aryText.push({Text:text, Color:this.VolColor});
54854
54878
  }
54855
54879
 
54856
54880
  //未匹配量
54857
54881
  if (IFrameSplitOperator.IsNumber(item.Vol[1]) && this.CallAuctionShowTitle.has("MTitle-AC-NotMatchVol"))
54858
54882
  {
54859
- var text=g_JSChartLocalization.GetText('MTitle-AC-NotMatchVol',this.LanguageID)+IFrameSplitOperator.FromatIntegerString(item.Vol[1],2);
54883
+ var text=g_JSChartLocalization.GetText('MTitle-AC-NotMatchVol',this.LanguageID)+IFrameSplitOperator.FromatIntegerString(item.Vol[1]/unit,2);
54860
54884
  aryText.push({Text:text, Color:this.VolColor});
54861
54885
  }
54862
54886
 
@@ -69646,6 +69670,11 @@ function JSChartResource()
69646
69670
  Color:"rgb(255,165,0)"
69647
69671
  }
69648
69672
 
69673
+ this.DRAWLASTICON=
69674
+ {
69675
+ Family:'iconfont',
69676
+ }
69677
+
69649
69678
  this.POINTDOT=
69650
69679
  {
69651
69680
  Radius:2*GetDevicePixelRatio()
@@ -73247,6 +73276,9 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
73247
73276
  this.Canvas.rect(this.Frame.ChartBorder.GetLeft(),this.Frame.ChartBorder.GetTop(),this.Frame.ChartBorder.GetWidth(),this.Frame.ChartBorder.GetHeight());
73248
73277
  isInClient=this.Canvas.isPointInPath(x,y);
73249
73278
 
73279
+ //PC触摸板双指缩放时deltaY数值在[-20,20]之间
73280
+ if (IFrameSplitOperator.IsNumber(e.deltaY) && Math.abs(e.deltaY)<90) return;
73281
+
73250
73282
  var wheelValue=e.wheelDelta;
73251
73283
  if (!IFrameSplitOperator.IsObjectExist(e.wheelDelta))
73252
73284
  wheelValue=e.deltaY* -0.01;
@@ -85874,7 +85906,7 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
85874
85906
  var symbol=data.stock[0].symbol;
85875
85907
  var upperSymbol=symbol.toUpperCase();
85876
85908
  var isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);
85877
-
85909
+ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
85878
85910
  var yClose=data.stock[0].yclose;
85879
85911
  var preClose=data.stock[0].yclose; //前一个数据价格
85880
85912
  var stockData=data.stock[0];
@@ -85901,8 +85933,7 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
85901
85933
  item.Price=jsData[1];
85902
85934
  if (!item.Price) item.Price=preClose;
85903
85935
  else preClose=item.Price;
85904
- if (isSHSZ) item.Vol[0]=jsData[2]/100; //沪深股票原始单位股
85905
- else item.Vol[0]=jsData[2];
85936
+ item.Vol[0]=jsData[2];
85906
85937
  item.Amount=jsData[3];
85907
85938
 
85908
85939
  if (IFrameSplitOperator.IsNumber(jsData[4]) && jsData[4]>19000101) //日期
@@ -85938,7 +85969,7 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
85938
85969
  beforeOpenData.Data.push(item);
85939
85970
  }
85940
85971
 
85941
- beforeOpenData.VolMax=max;
85972
+ beforeOpenData.VolMax=max/unit;
85942
85973
  beforeOpenData.VolMin=0;
85943
85974
  }
85944
85975
  else if (beforeOpenData.Ver==3.0)
@@ -85966,7 +85997,7 @@ MinuteChartContainer.JsonDataToBeforeOpenData=function(data)
85966
85997
  beforeOpenData.Data.push(item);
85967
85998
  }
85968
85999
 
85969
- beforeOpenData.VolMax=max;
86000
+ beforeOpenData.VolMax=max/unit;
85970
86001
  beforeOpenData.VolMin=0;
85971
86002
  }
85972
86003
 
@@ -85981,12 +86012,14 @@ MinuteChartContainer.JsonDataToAfterCloseData=function(data)
85981
86012
  var stockData=data.stock[0];
85982
86013
  var date=stockData.date; //日期
85983
86014
  if (!stockData.afterinfo) return null;
85984
-
86015
+ var symbol=data.stock[0].symbol;
86016
+ var upperSymbol=symbol.toLowerCase();
85985
86017
  var afterCloseData={ Data:[], TotalCount:3*60, Ver:2.0, Date:date };
85986
86018
  var item=stockData.afterinfo;
85987
86019
  if (IFrameSplitOperator.IsNumber(item.totalcount)) afterCloseData.TotalCount=item.totalcount;
85988
86020
  if (IFrameSplitOperator.IsNumber(item.ver)) afterCloseData.Ver=item.ver;
85989
86021
  var extendDataIndex=JSCHART_DATA_FIELD_ID.MINUTE_AFTERCLOSE_EXTENDDATA; //扩展数据序号
86022
+ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
85990
86023
 
85991
86024
  if (afterCloseData.Ver==1.0)
85992
86025
  {
@@ -86032,7 +86065,7 @@ MinuteChartContainer.JsonDataToAfterCloseData=function(data)
86032
86065
  afterCloseData.Data.push(item);
86033
86066
  }
86034
86067
 
86035
- afterCloseData.VolMax=max;
86068
+ afterCloseData.VolMax=max/unit;
86036
86069
  afterCloseData.VolMin=0;
86037
86070
  }
86038
86071
  else if (afterCloseData.Ver==3.0)
@@ -86059,7 +86092,7 @@ MinuteChartContainer.JsonDataToAfterCloseData=function(data)
86059
86092
  afterCloseData.Data.push(item);
86060
86093
  }
86061
86094
 
86062
- afterCloseData.VolMax=max;
86095
+ afterCloseData.VolMax=max/unit;
86063
86096
  afterCloseData.VolMin=0;
86064
86097
  }
86065
86098
 
@@ -86096,8 +86129,7 @@ MinuteChartContainer.JsonDataToMinuteData=function(data,isBeforeData)
86096
86129
  item.Open=jsData.open;
86097
86130
  item.High=jsData.high;
86098
86131
  item.Low=jsData.low;
86099
- if (isSHSZ) item.Vol=jsData.vol/100; //沪深股票原始单位股
86100
- else item.Vol=jsData.vol;
86132
+ item.Vol=jsData.vol;
86101
86133
  item.Amount=jsData.amount;
86102
86134
  if (jsData.date>0) date=jsData.date; //分钟数据中有日期 优先使用
86103
86135
  item.DateTime=date.toString()+" "+jsData.time.toString();
@@ -86181,7 +86213,6 @@ MinuteChartContainer.JsonDataToUpdateMinuteData=function(data)
86181
86213
 
86182
86214
  if (jsData[extendDataIndex]) item.ExtendData=jsData[extendDataIndex];
86183
86215
  item.DateTime=item.Date.toString()+" "+item.Time.toString();
86184
- if (isSHSZ) item.Vol=item.Vol/100; //沪深股票原始单位股
86185
86216
 
86186
86217
  if (IFrameSplitOperator.IsNumber(minuteData.YClose) && item.Close)
86187
86218
  item.Increase=(item.Close-minuteData.YClose)/minuteData.YClose*100; //涨幅 (最新价格-昨收)/昨收*100;
@@ -86275,8 +86306,7 @@ MinuteChartContainer.JsonDataToMinuteDataArray=function(data)
86275
86306
  item.High=jsData[3];
86276
86307
  item.Low=jsData[4];
86277
86308
  item.Increase=null;
86278
- if (isSHSZ) item.Vol=jsData[5]/100; //原始单位股
86279
- else item.Vol=jsData[5];
86309
+ item.Vol=jsData[5];
86280
86310
  item.Amount=jsData[6];
86281
86311
  if (7<jsData.length && jsData[7]>0) item.AvPrice=jsData[7]; //均价
86282
86312
  item.DateTime=date.toString()+" "+jsData[0].toString();
@@ -86355,12 +86385,8 @@ MinuteChartContainer.JsonDataToHistoryMinuteLineColorData=function(data)
86355
86385
 
86356
86386
  MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, isBeforeOpen, symbol)
86357
86387
  {
86358
- var isSHSZ=false;
86359
- if (symbol)
86360
- {
86361
- var upperSymbol=symbol.toUpperCase();
86362
- isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);
86363
- }
86388
+ var upperSymbol=symbol?symbol.toUpperCase():null;
86389
+ var unit=MARKET_SUFFIX_NAME.GetVolUnit(upperSymbol);
86364
86390
 
86365
86391
  var date=callAuctionData.Date;
86366
86392
  var yClose=callAuctionData.YClose;
@@ -86380,7 +86406,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
86380
86406
  item.Price=jsData[1];
86381
86407
  if (!item.Price) item.Price=preClose;
86382
86408
  else preClose=item.Price;
86383
- item.Vol[0]=isSHSZ ? jsData[2]/100 : jsData[2]; //沪深股票原始单位股
86409
+ item.Vol[0]=jsData[2]; //沪深股票原始单位股
86384
86410
  item.Amount=jsData[3];
86385
86411
  if (IFrameSplitOperator.IsNumber(jsData[4])) //日期
86386
86412
  item.Date=jsData[4];
@@ -86415,7 +86441,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
86415
86441
  callAuctionData.Data.push(item);
86416
86442
  }
86417
86443
 
86418
- callAuctionData.VolMax=max;
86444
+ callAuctionData.VolMax=max/unit;
86419
86445
  callAuctionData.VolMin=0;
86420
86446
  }
86421
86447
  else if (beforeOpenData.Ver==3.0)
@@ -86443,7 +86469,7 @@ MinuteChartContainer.JsonDataToCallAuctionItem=function(data, callAuctionData, i
86443
86469
  callAuctionData.Data.push(item);
86444
86470
  }
86445
86471
 
86446
- callAuctionData.VolMax=max;
86472
+ callAuctionData.VolMax=max/unit;
86447
86473
  callAuctionData.VolMin=0;
86448
86474
  }
86449
86475
  }
@@ -86499,201 +86525,6 @@ MinuteChartContainer.JosnDataToAfterCloseDataArray=function(data)
86499
86525
  return aryDay;
86500
86526
  }
86501
86527
 
86502
- /*
86503
- 历史分钟走势图
86504
- */
86505
- /* 废弃 统一使用 MinuteChartContainer
86506
- function HistoryMinuteChartContainer(uielement)
86507
- {
86508
- this.newMethod=MinuteChartContainer; //派生
86509
- this.newMethod(uielement);
86510
- delete this.newMethod;
86511
-
86512
- this.HistoryMinuteApiUrl="http://127.0.0.1:8080/cache/minuteday/day/";
86513
- this.ClassName='HistoryMinuteChartContainer';
86514
-
86515
- //创建主图K线画法
86516
- this.CreateMainKLine=function()
86517
- {
86518
- //分钟线
86519
- var minuteLine=new ChartMinutePriceLine();
86520
- minuteLine.Canvas=this.Canvas;
86521
- minuteLine.ChartBorder=this.Frame.SubFrame[0].Frame.ChartBorder;
86522
- minuteLine.ChartFrame=this.Frame.SubFrame[0].Frame;
86523
- minuteLine.Name="Minute-Line";
86524
- minuteLine.Color=g_JSChartResource.Minute.PriceColor;
86525
-
86526
- this.ChartPaint[0]=minuteLine;
86527
-
86528
- //分钟线均线
86529
- var averageLine=new ChartLine();
86530
- averageLine.Canvas=this.Canvas;
86531
- averageLine.ChartBorder=this.Frame.SubFrame[0].Frame.ChartBorder;
86532
- averageLine.ChartFrame=this.Frame.SubFrame[0].Frame;
86533
- averageLine.Name="Minute-Average-Line";
86534
- averageLine.Color=g_JSChartResource.Minute.AvPriceColor;
86535
- this.ChartPaint[1]=averageLine;
86536
-
86537
- var averageLine=new ChartMinuteVolumBar();
86538
- averageLine.Color=g_JSChartResource.Minute.VolBarColor;
86539
- averageLine.Canvas=this.Canvas;
86540
- averageLine.ChartBorder=this.Frame.SubFrame[1].Frame.ChartBorder;
86541
- averageLine.ChartFrame=this.Frame.SubFrame[1].Frame;
86542
- averageLine.Name="Minute-Vol-Bar";
86543
- this.ChartPaint[2]=averageLine;
86544
-
86545
-
86546
- this.TitlePaint[0]=new DynamicMinuteTitlePainting();
86547
- this.TitlePaint[0].Frame=this.Frame.SubFrame[0].Frame;
86548
- this.TitlePaint[0].Canvas=this.Canvas;
86549
- this.TitlePaint[0].IsShowDate=true;
86550
- }
86551
-
86552
- //设置交易日期
86553
- this.ChangeTradeDate=function(trdateDate)
86554
- {
86555
- if (!trdateDate) return;
86556
-
86557
- this.TradeDate=trdateDate;
86558
- this.RequestData(); //更新数据
86559
- }
86560
-
86561
- this.RequestData=function()
86562
- {
86563
- var date=new Date();
86564
- var nowDate=date.getFullYear()*10000+(date.getMonth()+1)*100+date.getDate();
86565
- if (nowDate==this.TradeDate) this.RequestMinuteData();
86566
- else this.RequestHistoryMinuteData();
86567
- }
86568
-
86569
- //请求分钟数据
86570
- this.RequestHistoryMinuteData=function()
86571
- {
86572
- var self=this;
86573
- var url=this.HistoryMinuteApiUrl+this.TradeDate.toString()+"/"+this.Symbol+".json";
86574
-
86575
- JSNetwork.HttpRequest({
86576
- url: url,
86577
- type:"get",
86578
- dataType: "json",
86579
- async:true,
86580
- success: function (data)
86581
- {
86582
- self.ChartSplashPaint.EnableSplash(false);
86583
- self.RecvHistoryMinuteData(data);
86584
- },
86585
- error:function(reqeust)
86586
- {
86587
- self.ChartSplashPaint.EnableSplash(false);
86588
- self.RecvHistoryMinuteError(reqeust);
86589
- }
86590
- });
86591
- }
86592
-
86593
- this.RecvHistoryMinuteError=function(reqeust)
86594
- {
86595
- if (reqeust.status!=404) return;
86596
-
86597
- var sourceData=new ChartData();
86598
- this.SourceData=sourceData;
86599
-
86600
- for(var i in this.ChartPaint)
86601
- {
86602
- this.ChartPaint[i].Data=sourceData;
86603
- if (i==0) this.ChartPaint[i].NotSupportMessage='没有权限访问!';
86604
- }
86605
-
86606
- this.TitlePaint[0].Data=this.SourceData; //动态标题
86607
- this.TitlePaint[0].Symbol=this.Symbol;
86608
- this.TitlePaint[0].Name=null;
86609
-
86610
- this.Draw();
86611
- }
86612
-
86613
- this.RecvHistoryMinuteData=function(data)
86614
- {
86615
- var aryMinuteData=HistoryMinuteChartContainer.JsonDataToMinuteData(data);
86616
-
86617
- //原始数据
86618
- var sourceData=new ChartData();
86619
- sourceData.Data=aryMinuteData;
86620
-
86621
- this.TradeDate=data.date;
86622
-
86623
- this.SourceData=sourceData;
86624
- this.Symbol=data.symbol;
86625
- this.Name=data.name;
86626
-
86627
- this.BindMainData(sourceData,data.day.yclose);
86628
-
86629
- if (this.Frame.SubFrame.length>2)
86630
- {
86631
- var bindData=new ChartData();
86632
- bindData.Data=aryMinuteData;
86633
- for(var i=2; i<this.Frame.SubFrame.length; ++i)
86634
- {
86635
- this.BindIndexData(i,bindData);
86636
- }
86637
- }
86638
-
86639
- this.UpdateFrameMaxMin(); //调整坐标最大 最小值
86640
- this.Frame.SetSizeChage(true);
86641
- this.Draw();
86642
-
86643
- //this.AutoUpdata();
86644
- }
86645
-
86646
- }
86647
-
86648
- //API 返回数据 转化为array[]
86649
- HistoryMinuteChartContainer.JsonDataToMinuteData=function(data)
86650
- {
86651
- var aryMinuteData=[];
86652
- for(var i in data.minute.time)
86653
- {
86654
- var item=new MinuteData();
86655
-
86656
- if (data.minute.price[i]<=0 && i>0) //当前这一分钟价格为空,使用上一分钟的数据
86657
- {
86658
- item.Close=aryMinuteData[i-1].Close;
86659
- item.Open=aryMinuteData[i-1].Close;
86660
- item.High=item.Close;
86661
- item.Low=item.Close;
86662
- item.Vol=data.minute.vol[i]; //原始单位股
86663
- item.Amount=data.minute.amount[i];
86664
- item.DateTime=data.date.toString()+" "+data.minute.time[i].toString();
86665
- //item.Increate=jsData.increate;
86666
- //item.Risefall=jsData.risefall;
86667
- item.AvPrice=aryMinuteData[i-1].AvPrice;
86668
- }
86669
- else
86670
- {
86671
- item.Close=data.minute.price[i];
86672
- item.Open=data.minute.open[i];
86673
- item.High=data.minute.high[i];
86674
- item.Low=data.minute.low[i];
86675
- item.Vol=data.minute.vol[i]; //原始单位股
86676
- item.Amount=data.minute.amount[i];
86677
- item.DateTime=data.date.toString()+" "+data.minute.time[i].toString();
86678
- //item.Increate=jsData.increate;
86679
- //item.Risefall=jsData.risefall;
86680
- item.AvPrice=data.minute.avprice[i];
86681
- }
86682
-
86683
- //价格是0的 都用空
86684
- if (item.Open<=0) item.Open=null;
86685
- if (item.Close<=0) item.Close=null;
86686
- if (item.AvPrice<=0) item.AvPrice=null;
86687
- if (item.High<=0) item.High=null;
86688
- if (item.Low<=0) item.Low=null;
86689
-
86690
- aryMinuteData[i]=item;
86691
- }
86692
-
86693
- return aryMinuteData;
86694
- }
86695
- */
86696
-
86697
86528
  /////////////////////////////////////////////////////////////////////////////
86698
86529
  // 自定义指数
86699
86530
  //
@@ -91754,6 +91585,16 @@ var MARKET_SUFFIX_NAME=
91754
91585
  if (ChartData.IsMinutePeriod(period,true)) return false; //内置分钟K线不支持复权
91755
91586
 
91756
91587
  return true;
91588
+ },
91589
+
91590
+ //获取成交量单位
91591
+ GetVolUnit:function(upperSymbol)
91592
+ {
91593
+ if (!upperSymbol) return 1;
91594
+ if (MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol)) return 100; //单位手=100股
91595
+ if (MARKET_SUFFIX_NAME.IsBJ(upperSymbol)) return 100; //单位手=100股
91596
+
91597
+ return 1;
91757
91598
  }
91758
91599
  }
91759
91600
 
@@ -95045,3 +94886,5 @@ function GetLocalTime(i) //得到标准时区的时间的函数
95045
94886
 
95046
94887
 
95047
94888
 
94889
+
94890
+