hqchart 1.1.14084 → 1.1.14097

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.
@@ -3978,9 +3978,6 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
3978
3978
  this.CacheCanvasElement=null;
3979
3979
  if (bCacheCanvas) this.CacheCanvasElement=document.createElement("canvas");
3980
3980
 
3981
- //改参数div
3982
- this.ModifyIndexDialog=new ModifyIndexDialog(divElement);
3983
-
3984
3981
  //额外的画布
3985
3982
  this.MapExtraCanvasElement=new Map(); //key=画布名字, value={ Element:, Canvas:}
3986
3983
 
@@ -4213,9 +4210,6 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4213
4210
  if (option.EventCallback) this.SetEventCallback(chart, option.EventCallback);
4214
4211
  if (option.NetworkFilter) chart.NetworkFilter=option.NetworkFilter;
4215
4212
 
4216
- //创建改参数div
4217
- chart.ModifyIndexDialog=this.ModifyIndexDialog;
4218
-
4219
4213
  var pixelRatio=GetDevicePixelRatio();
4220
4214
 
4221
4215
  //右键菜单
@@ -4665,9 +4659,6 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4665
4659
  {
4666
4660
  var chart=new CustomKLineChartContainer(this.CanvasElement);
4667
4661
 
4668
- //创建改参数div
4669
- chart.ModifyIndexDialog=this.ModifyIndexDialog;
4670
-
4671
4662
  //右键菜单
4672
4663
  if (IFrameSplitOperator.IsBool(option.IsShowRightMenu)) chart.IsShowRightMenu=option.IsShowRightMenu;
4673
4664
 
@@ -4768,8 +4759,6 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
4768
4759
  if (option.EventCallback) this.SetEventCallback(chart, option.EventCallback);
4769
4760
  if (option.NetworkFilter) chart.NetworkFilter=option.NetworkFilter;
4770
4761
 
4771
- chart.ModifyIndexDialog=this.ModifyIndexDialog;
4772
-
4773
4762
  var pixelRatio=GetDevicePixelRatio();
4774
4763
 
4775
4764
  var windowsCount=2;
@@ -5348,9 +5337,6 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
5348
5337
  if (option.NetworkFilter) chart.NetworkFilter=option.NetworkFilter;
5349
5338
  if (option.IsApiPeriod==true) chart.IsApiPeriod=option.IsApiPeriod;
5350
5339
 
5351
- //创建改参数div
5352
- chart.ModifyIndexDialog=this.ModifyIndexDialog;
5353
-
5354
5340
  if (option.ScriptError) chart.ScriptErrorCallback=option.ScriptError;
5355
5341
 
5356
5342
  if (option.KLine) //k线图的属性设置
@@ -5648,6 +5634,9 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
5648
5634
  if (option.SelectRectDialog && option.SelectRectDialog.Enable)
5649
5635
  chart.InitalSelectRectDialog(option.SelectRectDialog);
5650
5636
 
5637
+ if (option.ModifyIndexParamDialog && option.ModifyIndexParamDialog.Enable)
5638
+ chart.InitalModifyIndexParamDialog(option.ModifyIndexParamDialog);
5639
+
5651
5640
  if (option.SearchIndexDialog && option.SearchIndexDialog.Enable)
5652
5641
  chart.InitalSearchIndexDialog(option.SearchIndexDialog);
5653
5642
 
@@ -6746,6 +6735,9 @@ var JSCHART_MENU_ID=
6746
6735
 
6747
6736
  CMD_DIALOG_TOOLTIP_ATTRIBUTE:65, //修改K线信息框属性 Ary:[{ Enable:, Style:}, ]
6748
6737
  CMD_KLINE_TOOLTIP_ATTRIBUTE:66, //修改K线提示框属性 Ary:[{ Enable:true/false, EnableKeyDown:true/false}]
6738
+
6739
+ CMD_MODIFY_INDEX_PARAM:67, //指标删除修改 [windowIndex, ]
6740
+ CMD_MODIFY_OVERLAY_INDEX_PARAM:68, //叠加指标修改 [windowIndex, ID ]
6749
6741
  }
6750
6742
 
6751
6743
 
@@ -6974,6 +6966,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
6974
6966
  this.DialogSelectRect; //区间统计
6975
6967
  this.FloatTooltip; //浮动tooltip信息
6976
6968
  this.DialogSearchIndex; //指标搜索
6969
+ this.DialogModifyIndexParam; //指标参数修改
6977
6970
 
6978
6971
 
6979
6972
  this.ClearStockCache=function()
@@ -7043,6 +7036,15 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
7043
7036
  this.DialogSearchIndex.Create();
7044
7037
  }
7045
7038
 
7039
+ this.InitalModifyIndexParamDialog=function(option)
7040
+ {
7041
+ if (this.DialogModifyIndexParam) return;
7042
+
7043
+ this.DialogModifyIndexParam=new JSDialogModifyIndexParam();
7044
+ this.DialogModifyIndexParam.Inital(this, option);
7045
+ this.DialogModifyIndexParam.Create();
7046
+ }
7047
+
7046
7048
  this.ShowChangeIndexDialog=function(data)
7047
7049
  {
7048
7050
  if (!data) return;
@@ -7062,6 +7064,46 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
7062
7064
  this.DialogSearchIndex.SetOpData(data);
7063
7065
  this.DialogSearchIndex.Show();
7064
7066
  }
7067
+
7068
+ //添加指标窗口
7069
+ this.ShowAddIndexWindowDialog=function(option)
7070
+ {
7071
+ if (!this.DialogSearchIndex) return;
7072
+ var data=option;
7073
+ if (!data) data={ };
7074
+
7075
+ data.OpType=3;
7076
+
7077
+ data.Title=`增加指标窗口`;
7078
+ this.DialogSearchIndex.SetOpData(data);
7079
+ this.DialogSearchIndex.Show();
7080
+ }
7081
+
7082
+ this.ShowModifyIndexParamDialog=function(data)
7083
+ {
7084
+ if (!this.DialogModifyIndexParam) return;
7085
+
7086
+ if (data.Type==1)
7087
+ {
7088
+ var indexScript=this.WindowIndex[data.WindowIndex];
7089
+ if (!indexScript) return;
7090
+
7091
+ data.IndexScript=indexScript;
7092
+ data.Title=`[${indexScript.Name}]参数修改 窗口[${data.WindowIndex+1}]`;
7093
+ }
7094
+ else if (data.Type==2)
7095
+ {
7096
+ var overlayIndex=this.GetOverlayIndexByIdentify(data.Identify);
7097
+ if (!overlayIndex || !overlayIndex.OverlayItem.Script) return;
7098
+ var indexScript=overlayIndex.OverlayItem.Script;
7099
+
7100
+ data.IndexScript=indexScript;
7101
+ data.Title=`[${indexScript.Name}]参数修改 叠加窗口[${data.WindowIndex+1}]`;
7102
+ }
7103
+
7104
+ this.DialogModifyIndexParam.SetIndexData(data);
7105
+ this.DialogModifyIndexParam.Show();
7106
+ }
7065
7107
 
7066
7108
 
7067
7109
  this.DrawSelectRectDialog=function()
@@ -12698,6 +12740,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
12698
12740
  if (IFrameSplitOperator.IsNumber(windowItem.IndexParamSpace)) frame.IndexParamSpace=windowItem.IndexParamSpace;
12699
12741
  if (IFrameSplitOperator.IsNumber(windowItem.IndexTitleSpace)) frame.IndexTitleSpace=windowItem.IndexTitleSpace;
12700
12742
  if (!IFrameSplitOperator.IsUndefined(windowItem.HorizontalReserved)) frame.HorizontalReserved=windowItem.HorizontalReserved; //Y轴上下预留
12743
+ if (IFrameSplitOperator.IsBool(windowItem.IsShowNameArrow)) frame.IsShowNameArrow=windowItem.IsShowNameArrow;
12701
12744
  }
12702
12745
 
12703
12746
  if (frameItem)
@@ -13937,6 +13980,17 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
13937
13980
  if (IFrameSplitOperator.IsBool(option.Enable)) this.KLineTooltipConfig.Enable=option.Enable;
13938
13981
  if (IFrameSplitOperator.IsBool(option.EnableKeyDown)) this.KLineTooltipConfig.EnableKeyDown=option.EnableKeyDown;
13939
13982
  break;
13983
+ case JSCHART_MENU_ID.CMD_MODIFY_INDEX_PARAM:
13984
+ if (param==null) return false;
13985
+ var sendData={ e:null, WindowIndex:param, Type:1 }
13986
+ this.ShowModifyIndexParamDialog(sendData);
13987
+ break;
13988
+ case JSCHART_MENU_ID.CMD_MODIFY_OVERLAY_INDEX_PARAM:
13989
+ if (param==null) return false;
13990
+ if (!aryArgs[1]) return false;
13991
+ var sendData={ e:null, WindowIndex:param, Type:2, Identify:aryArgs[1] };
13992
+ this.ShowModifyIndexParamDialog(sendData);
13993
+ break;
13940
13994
  }
13941
13995
  }
13942
13996
 
@@ -13950,6 +14004,12 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
13950
14004
  return data;
13951
14005
  }
13952
14006
 
14007
+ this.GetModifyIndexMenuData=function(windowIndex)
14008
+ {
14009
+ var data= { Name:"参数修改", Data:{ ID: JSCHART_MENU_ID.CMD_MODIFY_INDEX_PARAM, Args:[windowIndex] } };
14010
+ return data;
14011
+ }
14012
+
13953
14013
  this.GetShowOverlayIndexMenuData=function(indexGuid, showType)
13954
14014
  {
13955
14015
  var overlay=this.GetOverlayIndexByIdentify(indexGuid);
@@ -13961,6 +14021,15 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
13961
14021
  return data;
13962
14022
  }
13963
14023
 
14024
+ this.GetModifyOverlayIndexMenuData=function(indexGuid)
14025
+ {
14026
+ var overlay=this.GetOverlayIndexByIdentify(indexGuid);
14027
+ if (!overlay) return null;
14028
+
14029
+ var data= { Name:"参数修改", Data:{ ID: JSCHART_MENU_ID.CMD_MODIFY_OVERLAY_INDEX_PARAM, Args:[overlay.WindowIndex,indexGuid] } };
14030
+ return data;
14031
+ }
14032
+
13964
14033
  this.GetShowOverlayIndexYAxisMenuData=function(indexGuid, showType)
13965
14034
  {
13966
14035
  var overlay=this.GetOverlayIndexByIdentify(indexGuid);
@@ -17837,7 +17906,6 @@ function MinuteFrame()
17837
17906
  this.ExportData=g_JSChartResource.MinuteToolbar.ExportData; //是否显示'导出数据'菜单
17838
17907
  this.OverlayIndex=g_JSChartResource.MinuteToolbar.OverlayIndex; //是否显示叠加指标
17839
17908
 
17840
- this.ModifyIndexEvent; //改参数 点击事件
17841
17909
  this.ToolbarRect=null; //保存工具条的位置
17842
17910
  this.IsShowPositionTitle=false; //是否显示持仓标题
17843
17911
 
@@ -20266,7 +20334,6 @@ function KLineFrame()
20266
20334
 
20267
20335
  this.SelBorderColor=g_JSChartResource.SelFrameBorderColor;
20268
20336
 
20269
- this.ModifyIndexEvent; //改参数 点击事件
20270
20337
  this.ToolbarRect=null; //保存工具条的位置
20271
20338
  this.ReDrawToolbar=false;
20272
20339
 
@@ -37986,6 +38053,13 @@ function ChartStickLine()
37986
38053
  return (this.BarType==1 || this.BarType==-1);
37987
38054
  }
37988
38055
 
38056
+ this.CalculateBarHeight=function(y,y2)
38057
+ {
38058
+ var barHeight=Math.abs(y-y2);
38059
+ if (barHeight<=0) barHeight=1;
38060
+ return barHeight;
38061
+ }
38062
+
37989
38063
  this.Draw=function()
37990
38064
  {
37991
38065
  if (!this.IsShow || this.ChartFrame.IsMinSize || !this.IsVisible) return;
@@ -38125,7 +38199,7 @@ function ChartStickLine()
38125
38199
  }
38126
38200
  else
38127
38201
  {
38128
- this.Canvas.fillRect(ToFixedRect(left),ToFixedRect(Math.min(y,y2)),ToFixedRect(width),ToFixedRect(Math.abs(y-y2)));
38202
+ this.Canvas.fillRect(ToFixedRect(left),ToFixedRect(Math.min(y,y2)),ToFixedRect(width),ToFixedRect(this.CalculateBarHeight(y,y2)));
38129
38203
  }
38130
38204
  }
38131
38205
  }
@@ -38152,9 +38226,14 @@ function ChartStickLine()
38152
38226
  else
38153
38227
  {
38154
38228
  if (isHScreen)
38229
+ {
38155
38230
  this.Canvas.fillRect(ToFixedRect(Math.min(y,y2)),ToFixedRect(xOffset),ToFixedRect(Math.abs(y-y2)),ToFixedRect(dataWidth));
38231
+ }
38156
38232
  else
38157
- this.Canvas.fillRect(ToFixedRect(xOffset),ToFixedRect(Math.min(y,y2)),ToFixedRect(dataWidth),ToFixedRect(Math.abs(y-y2)));
38233
+ {
38234
+ this.Canvas.fillRect(ToFixedRect(xOffset),ToFixedRect(Math.min(y,y2)),ToFixedRect(dataWidth),ToFixedRect(this.CalculateBarHeight(y,y2)));
38235
+ }
38236
+
38158
38237
  }
38159
38238
  }
38160
38239
  else
@@ -38170,8 +38249,9 @@ function ChartStickLine()
38170
38249
  {
38171
38250
  var xFix=parseInt(x.toString())+0.5;
38172
38251
  this.Canvas.beginPath();
38173
- this.Canvas.moveTo(xFix,y);
38174
- this.Canvas.lineTo(xFix,y2);
38252
+ this.Canvas.moveTo(xFix,y);
38253
+ if (Math.abs(y-y2)>0) this.Canvas.lineTo(xFix,y2);
38254
+ else this.Canvas.lineTo(xFix,y+1); //太窄了,就画一个像素的宽度
38175
38255
  this.Canvas.stroke();
38176
38256
  }
38177
38257
  }
@@ -52257,6 +52337,17 @@ IFrameSplitOperator.RemoveZero=function(strValue)
52257
52337
  return strValue;
52258
52338
  }
52259
52339
 
52340
+ //移除代码市场后缀
52341
+ IFrameSplitOperator.RemoveMarketSuffix=function(symbol)
52342
+ {
52343
+ if (!symbol) return symbol;
52344
+
52345
+ var pos=symbol.lastIndexOf(".");
52346
+ if (pos>0) return symbol.substring(0,pos);
52347
+
52348
+ return symbol;
52349
+ }
52350
+
52260
52351
  function FrameSplitKLinePriceY()
52261
52352
  {
52262
52353
  this.newMethod=IFrameSplitOperator; //派生
@@ -73240,6 +73331,17 @@ function JSChartResource()
73240
73331
  InputTextColor:"rgb(0,0,0)"
73241
73332
  };
73242
73333
 
73334
+ this.DialogModifyIndexParam=
73335
+ {
73336
+ BGColor:'rgb(250,250,250)', //背景色
73337
+ BorderColor:'rgb(20,20,20)', //边框颜色
73338
+ TitleColor:'rgb(250,250,250)', //标题颜色
73339
+ TitleBGColor:"rgb(200, 66, 69)", //标题背景颜色
73340
+
73341
+ ParamNameColor:"rgb(0,0,0)", //数值名称
73342
+ InputTextColor:"rgb(0,0,0)"
73343
+ };
73344
+
73243
73345
  //弹幕
73244
73346
  this.Barrage= {
73245
73347
  Font:16*GetDevicePixelRatio() +'px 微软雅黑', //字体
@@ -73654,7 +73756,7 @@ function JSChartResource()
73654
73756
  SortIcon:
73655
73757
  {
73656
73758
  Size:12, Family:"iconfont",
73657
- Arrow:[null, "\ue6b2", "\ue6b1"],
73759
+ Arrow:[null, "\ue6b2", "\ue6b1"], //[0]=默认排序的图标背景色
73658
73760
  Color:[null, "rgb(255,0,0)", "rgb(255,0,0)"],
73659
73761
  Margin:{ Left:0, Bottom:6 }
73660
73762
  },
@@ -77402,8 +77504,6 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
77402
77504
  frame.GetEventCallback=(id)=> { return this.GetEventCallback(id); };
77403
77505
  frame.GlobalOption=this.GlobalOption;
77404
77506
 
77405
- if (this.ModifyIndexDialog) frame.ModifyIndexEvent=this.ModifyIndexDialog.DoModal; //绑定菜单事件
77406
-
77407
77507
  frame.HorizontalMax=20;
77408
77508
  frame.HorizontalMin=10;
77409
77509
 
@@ -77486,8 +77586,6 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
77486
77586
  frame.GetEventCallback=(id)=> { return this.GetEventCallback(id); };
77487
77587
  frame.GlobalOption=this.GlobalOption;
77488
77588
 
77489
- if (this.ModifyIndexDialog) frame.ModifyIndexEvent=this.ModifyIndexDialog.DoModal; //绑定菜单事件
77490
-
77491
77589
  frame.HorizontalMax=20;
77492
77590
  frame.HorizontalMin=10;
77493
77591
  frame.YSplitOperator=new FrameSplitY();
@@ -83472,9 +83570,8 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
83472
83570
  {
83473
83571
  var id=button.IndexID;
83474
83572
  var frame=button.Frame;
83475
- e.data={ Chart:this, Identify:id, IsOverlay:true };
83476
- if (frame.ModifyIndexEvent)
83477
- frame.ModifyIndexEvent(e);
83573
+ var sendData={ e:e, WindowIndex:frame.Identify, Type:2, Identify:id };
83574
+ this.ShowModifyIndexParamDialog(sendData);
83478
83575
  }
83479
83576
  else if (button.ID==JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW)
83480
83577
  {
@@ -83495,9 +83592,8 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
83495
83592
  else if (button.ID==JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM)
83496
83593
  {
83497
83594
  var frame=button.Frame;
83498
- e.data={ Chart:this, Identify:frame.Identify, IsOverlay:false };
83499
- if (frame.ModifyIndexEvent)
83500
- frame.ModifyIndexEvent(e);
83595
+ var sendData={ e:e, WindowIndex:frame.Identify, Type:1 }
83596
+ this.ShowModifyIndexParamDialog(sendData);
83501
83597
  }
83502
83598
  else if (button.ID==JSCHART_BUTTON_ID.OVERLAY_INDEX)
83503
83599
  {
@@ -84309,9 +84405,9 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
84309
84405
  {
84310
84406
  var id=button.IndexID;
84311
84407
  var frame=button.Frame;
84312
- e.data={ Chart:this, Identify:id, IsOverlay:true };
84313
- if (frame.ModifyIndexEvent)
84314
- frame.ModifyIndexEvent(e);
84408
+ var sendData={ e:e, WindowIndex:frame.Identify, Type:2, Identify:id };
84409
+ this.ShowModifyIndexParamDialog(sendData);
84410
+
84315
84411
  }
84316
84412
  else if (button.ID==JSCHART_BUTTON_ID.CLOSE_INDEX_WINDOW)
84317
84413
  {
@@ -84327,9 +84423,8 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
84327
84423
  else if (button.ID==JSCHART_BUTTON_ID.MODIFY_INDEX_PARAM)
84328
84424
  {
84329
84425
  var frame=button.Frame;
84330
- e.data={ Chart:this, Identify:frame.Identify, IsOverlay:false };
84331
- if (frame.ModifyIndexEvent)
84332
- frame.ModifyIndexEvent(e);
84426
+ var sendData={ e:e, WindowIndex:frame.Identify, Type:1 }
84427
+ this.ShowModifyIndexParamDialog(sendData);
84333
84428
  }
84334
84429
  else if (button.ID==JSCHART_BUTTON_ID.OVERLAY_INDEX)
84335
84430
  {
@@ -86096,7 +86191,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
86096
86191
 
86097
86192
  if (i>=2)
86098
86193
  {
86099
- if (this.ModifyIndexDialog) frame.ModifyIndexEvent=this.ModifyIndexDialog.DoModal; //绑定菜单事件
86194
+
86100
86195
  }
86101
86196
 
86102
86197
  var DEFAULT_HORIZONTAL=[9,8,7,6,5,4,3,2,1];
@@ -86183,12 +86278,6 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
86183
86278
  frame.GlobalOption=this.GlobalOption;
86184
86279
  frame.HQChart=this;
86185
86280
  frame.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
86186
-
86187
-
86188
- if (id>=2)
86189
- {
86190
- if (this.ModifyIndexDialog) frame.ModifyIndexEvent=this.ModifyIndexDialog.DoModal; //绑定菜单事件
86191
- }
86192
86281
 
86193
86282
  var DEFAULT_HORIZONTAL=[9,8,7,6,5,4,3,2,1];
86194
86283
  frame.HorizontalMax=DEFAULT_HORIZONTAL[0];
@@ -91761,8 +91850,6 @@ function KLineChartHScreenContainer(uielement)
91761
91850
  frame.Identify=i; //窗口序号
91762
91851
  frame.RightSpaceCount=this.RightSpaceCount; //右边
91763
91852
 
91764
- if (this.ModifyIndexDialog) frame.ModifyIndexEvent=this.ModifyIndexDialog.DoModal; //绑定菜单事件
91765
-
91766
91853
  frame.HorizontalMax=20;
91767
91854
  frame.HorizontalMin=10;
91768
91855
 
@@ -94367,230 +94454,6 @@ function IDivDialog(divElement)
94367
94454
  }
94368
94455
  }
94369
94456
 
94370
-
94371
- //修改指标
94372
- function ModifyIndexDialog(divElement)
94373
- {
94374
- this.newMethod=IDivDialog; //派生
94375
- this.newMethod(divElement);
94376
- delete this.newMethod;
94377
-
94378
- this.Title={ ID:Guid() }; //标题
94379
- this.ParamList={ID:Guid() }; //参数列表 class='parameter-content'
94380
- this.ParamData=[]; //{ ID:参数ID, Value:参数值}
94381
- this.Identify;
94382
- this.HQChart;
94383
- this.IsOverlay=false; //是否是叠加指标
94384
-
94385
- this.IndexScript;
94386
-
94387
- //创建
94388
- this.Create=function()
94389
- {
94390
- this.ID=Guid();
94391
-
94392
- var div=document.createElement('div');
94393
- div.className='jchart-modifyindex-box';
94394
- div.id=this.ID;
94395
- div.innerHTML=
94396
- "<div class='parameter'>\
94397
- <div class='parameter-header'>\
94398
- <span></span>\
94399
- <strong id='close' class='icon iconfont icon-close'></strong>\
94400
- </div>\
94401
- <div class='parameter-content'><input/>MA</div>\
94402
- <div class='parameter-footer'>\
94403
- <button class='submit' >确定</button>\
94404
- <button class='cancel' >取消</button>\
94405
- </div>\
94406
- </div>";
94407
-
94408
- this.DivElement.appendChild(div);
94409
-
94410
- //确定按钮
94411
- $("#"+this.ID+" .submit").click(
94412
- {
94413
- divBox:this,
94414
- },
94415
- function(event)
94416
- {
94417
- event.data.divBox.Hide();
94418
- });
94419
-
94420
- //给一个id 后面查找方便
94421
- var titleElement=div.getElementsByTagName('span')[0];
94422
- titleElement.id=this.Title.ID;
94423
-
94424
- var paramListElement=div.getElementsByClassName('parameter-content')[0];
94425
- paramListElement.id=this.ParamList.ID;
94426
- }
94427
-
94428
- //设置标题
94429
- this.SetTitle=function(title)
94430
- {
94431
- $("#"+this.Title.ID).html(title);
94432
- }
94433
-
94434
- //清空参数
94435
- this.ClearParamList=function()
94436
- {
94437
- $("#"+this.ParamList.ID).empty();
94438
- this.ParamData=[];
94439
- }
94440
-
94441
- this.BindParam=function()
94442
- {
94443
- for(var i=0; i<this.IndexScript.Arguments.length; ++i)
94444
- {
94445
- var item=this.IndexScript.Arguments[i];
94446
- if (item.Name==null || isNaN(item.Value)) break;
94447
-
94448
- var guid=Guid();
94449
- var param = '<input class="row-line" id="'+guid+'" value="'+item.Value+'" type="number" step="1"/>'+ item.Name +'<br>';
94450
- $("#"+this.ParamList.ID).append(param);
94451
-
94452
- this.ParamData.push({ID:guid,Value:item.Value});
94453
- }
94454
-
94455
- //绑定参数修改事件
94456
- var self=this;
94457
- for(var i=0; i<this.ParamData.length; ++i)
94458
- {
94459
- var item=this.ParamData[i];
94460
- $("#"+item.ID).mouseup(
94461
- {
94462
- ParamIndex:i //参数序号
94463
- },
94464
- function(event)
94465
- {
94466
- var value = parseInt($(this).val()); //获取当前操作的input属性值,转化为整型
94467
- if (!IFrameSplitOperator.IsNumber(value))
94468
- {
94469
- alert("参数不能为空");
94470
- return;
94471
- }
94472
- var chart=self.HQChart;
94473
- var identify=self.Identify;
94474
- var paramIndex=event.data.ParamIndex;
94475
- var script=self.IndexScript;
94476
- var isOverlay=self.IsOverlay;
94477
-
94478
- script.Arguments[paramIndex].Value = value; //为参数属性重新赋值
94479
- if (isOverlay) chart.UpdateOverlayIndex(identify);
94480
- else chart.UpdateWindowIndex(identify); //调用更新窗口指标函数,参数用来定位窗口
94481
- }
94482
- )
94483
-
94484
- $("#"+item.ID).keyup(
94485
- {
94486
- ParamIndex:i //参数序号
94487
- },
94488
- function(event)
94489
- {
94490
- var value = parseInt($(this).val()); //获取当前操作的input属性值,转化为整型
94491
- if (!IFrameSplitOperator.IsNumber(value))
94492
- {
94493
- alert("参数不能为空");
94494
- return;
94495
- }
94496
- var chart=self.HQChart;
94497
- var identify=self.Identify;
94498
- var paramIndex=event.data.ParamIndex;
94499
- var script=self.IndexScript;
94500
- var isOverlay=self.IsOverlay;
94501
-
94502
- script.Arguments[paramIndex].Value = value; //为参数属性重新赋值
94503
- if (isOverlay) chart.UpdateOverlayIndex(identify);
94504
- else chart.UpdateWindowIndex(identify); //调用更新窗口指标函数,参数用来定位窗口
94505
- }
94506
- )
94507
- }
94508
- }
94509
-
94510
- //绑定取消事件
94511
- this.BindCancel=function()
94512
- {
94513
- //取消按钮事件
94514
- var self=this;
94515
- var test=$("#"+this.ID+" .cancel");
94516
- $("#"+this.ID+" .cancel").unbind("click").click(
94517
- function(event)
94518
- {
94519
- var chart=self.HQChart;
94520
- var identify=self.Identify;
94521
- self.RestoreParam();
94522
- var isOverlay=self.IsOverlay;
94523
- if (isOverlay) chart.UpdateOverlayIndex(identify);
94524
- else chart.UpdateWindowIndex(identify);
94525
- self.IndexScript=null;
94526
- self.Hide();
94527
- }
94528
- );
94529
-
94530
- //关闭和取消是一样的
94531
- $("#"+this.ID+" #close").unbind("click").click(
94532
- function(event)
94533
- {
94534
- var chart=self.HQChart;
94535
- var identify=self.Identify;
94536
- var isOverlay=self.IsOverlay;
94537
- self.RestoreParam();
94538
- if (isOverlay) chart.UpdateOverlayIndex(identify);
94539
- else chart.UpdateWindowIndex(identify);
94540
- self.IndexScript=null;
94541
- self.Hide();
94542
- }
94543
- );
94544
- }
94545
-
94546
- //还原参数
94547
- this.RestoreParam=function()
94548
- {
94549
- if (!this.IndexScript) return;
94550
-
94551
- for(var i=0; i<this.ParamData.length; ++i)
94552
- {
94553
- var item=this.ParamData[i];
94554
- this.IndexScript.Arguments[i].Value=item.Value;
94555
- }
94556
- }
94557
-
94558
- //显示
94559
- this.DoModal=function(event)
94560
- {
94561
- var chart=event.data.Chart;
94562
- var identify=event.data.Identify;
94563
- var dialog=chart.ModifyIndexDialog;
94564
- var isOverlay=event.data.IsOverlay===true;
94565
-
94566
- if(!dialog) return;
94567
-
94568
- if (dialog.ID==null) dialog.Create(); //第1次 需要创建div
94569
- dialog.Identify=identify;
94570
- dialog.HQChart=chart;
94571
- dialog.IsOverlay=isOverlay
94572
-
94573
- if (isOverlay)
94574
- {
94575
- var overlayIndex=chart.GetOverlayIndexByIdentify(identify);
94576
- if (!overlayIndex || !overlayIndex.OverlayItem.Script) return;
94577
- dialog.IndexScript=overlayIndex.OverlayItem.Script;
94578
- dialog.SetTitle(dialog.IndexScript.Name+" 叠加指标参数设置"); //设置标题
94579
- }
94580
- else
94581
- {
94582
- dialog.IndexScript=chart.WindowIndex[identify];
94583
- dialog.SetTitle(dialog.IndexScript.Name+" 指标参数设置"); //设置标题
94584
- }
94585
-
94586
- dialog.ClearParamList(); //清空参数
94587
- dialog.BindParam(chart,identify); //绑定参数
94588
- dialog.BindCancel(); //绑定取消和关闭事件
94589
-
94590
- dialog.Show();//显示, 在css里调整居中
94591
- }
94592
- }
94593
-
94594
94457
  //等待动画窗口
94595
94458
  function WaitDialog(divElement)
94596
94459
  {
@@ -132166,6 +132029,7 @@ function ChartReport()
132166
132029
  var top=this.RectClient.Top;
132167
132030
  var y=top+this.HeaderMergin.Top+(this.HeaderHeight-this.HeaderMergin.Top-this.HeaderMergin.Bottom)/2;
132168
132031
  var yBottom=top+this.HeaderHeight;
132032
+ var bDrawSortBG=this.IsDrawSortBGIcon();
132169
132033
 
132170
132034
  this.Canvas.font=this.HeaderFont;
132171
132035
 
@@ -132207,6 +132071,10 @@ function ChartReport()
132207
132071
  {
132208
132072
  this.DrawSortHeader(item.Title,item.TextAlign,x,yBottom,textWidth,this.SortInfo.Sort, textSize);
132209
132073
  }
132074
+ else if (item.Sort>0 && bDrawSortBG)
132075
+ {
132076
+ this.DrawSortHeader(item.Title,item.TextAlign,x,yBottom,textWidth,0,textSize);
132077
+ }
132210
132078
  else
132211
132079
  {
132212
132080
  this.DrawText(item.Title,item.TextAlign,x,yBottom,textWidth,textSize);
@@ -132260,6 +132128,10 @@ function ChartReport()
132260
132128
  {
132261
132129
  this.DrawSortHeader(item.Title,item.TextAlign,x,yBottom,textWidth,this.SortInfo.Sort,textSize);
132262
132130
  }
132131
+ else if (item.Sort>0)
132132
+ {
132133
+ this.DrawSortHeader(item.Title,item.TextAlign,x,yBottom,textWidth,0, textSize);
132134
+ }
132263
132135
  else
132264
132136
  {
132265
132137
  this.DrawText(item.Title,item.TextAlign,x,yBottom,textWidth,textSize);
@@ -132322,10 +132194,24 @@ function ChartReport()
132322
132194
  }
132323
132195
  }
132324
132196
 
132197
+ //是否绘制排序背景图标
132198
+ this.IsDrawSortBGIcon=function()
132199
+ {
132200
+ if (!IFrameSplitOperator.IsNonEmptyArray(this.SortConfig.Arrow)) return false;
132201
+ if (!this.SortConfig.Arrow[0]) return false;
132202
+
132203
+ if (!IFrameSplitOperator.IsNonEmptyArray(this.SortConfig.Color)) return false;
132204
+ if (!this.SortConfig.Color[0]) return false;
132205
+
132206
+ return true;
132207
+ }
132208
+
132325
132209
  this.DrawSortHeader=function(text, textAlign, x, yBottom, width, sortType,textSize)
132326
132210
  {
132327
132211
  var pixelRatio=GetDevicePixelRatio();
132328
132212
  var sortText=this.SortConfig.Arrow[sortType];
132213
+ var sortBGText=this.SortConfig.Arrow[0];
132214
+ var sortBGColor=this.SortConfig.Color[0];
132329
132215
  this.Canvas.font=this.HeaderFont;
132330
132216
  var textWidth=this.Canvas.measureText(text).width;
132331
132217
  var sortTextWidth=this.SortConfig.Size*pixelRatio+this.SortConfig.Margin.Left;
@@ -132349,8 +132235,17 @@ function ChartReport()
132349
132235
 
132350
132236
  xText+=(textWidth+this.SortConfig.Margin.Left);
132351
132237
  this.Canvas.font=this.SortFont;
132352
- this.Canvas.fillStyle=this.SortConfig.Color[sortType];
132353
- this.Canvas.fillText(sortText,xText,yBottom-this.SortConfig.Margin.Bottom);
132238
+ if (sortBGText && sortBGColor)
132239
+ {
132240
+ this.Canvas.fillStyle=sortBGColor;
132241
+ this.Canvas.fillText(sortBGText,xText,yBottom-this.SortConfig.Margin.Bottom);
132242
+ }
132243
+
132244
+ if (sortType>0)
132245
+ {
132246
+ this.Canvas.fillStyle=this.SortConfig.Color[sortType];
132247
+ this.Canvas.fillText(sortText,xText,yBottom-this.SortConfig.Margin.Bottom);
132248
+ }
132354
132249
 
132355
132250
  this.Canvas.font=this.HeaderFont;
132356
132251
  this.Canvas.fillStyle=this.HeaderColor;
@@ -132362,7 +132257,6 @@ function ChartReport()
132362
132257
  }
132363
132258
  }
132364
132259
 
132365
-
132366
132260
  this.DrawBorder=function()
132367
132261
  {
132368
132262
  if (!this.IsDrawBorder) return;
@@ -133141,7 +133035,7 @@ function ChartReport()
133141
133035
  this.DrawSymbolName=function(data, column, left, top, rowType)
133142
133036
  {
133143
133037
  var stock=data.Stock;
133144
- var symbol=data.Symbol;
133038
+ var symbol=IFrameSplitOperator.RemoveMarketSuffix(data.Symbol);
133145
133039
  var name;
133146
133040
  if (stock)
133147
133041
  {
@@ -133198,7 +133092,7 @@ function ChartReport()
133198
133092
  this.DrawSymbolNameV2=function(data, column, left, top, rowType)
133199
133093
  {
133200
133094
  var stock=data.Stock;
133201
- var symbol=data.Symbol;
133095
+ var symbol=IFrameSplitOperator.RemoveMarketSuffix(data.Symbol);
133202
133096
  var name;
133203
133097
  if (stock)
133204
133098
  {
@@ -139275,7 +139169,7 @@ function ScrollBarBGChart()
139275
139169
 
139276
139170
 
139277
139171
 
139278
- var HQCHART_VERSION="1.1.14083";
139172
+ var HQCHART_VERSION="1.1.14096";
139279
139173
 
139280
139174
  function PrintHQChartVersion()
139281
139175
  {