hqchart 1.1.14478 → 1.1.14482

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.14478",
3
+ "version": "1.1.14482",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -1252,14 +1252,21 @@ function JSFloatTooltip()
1252
1252
  var symbol=data.Symbol;
1253
1253
  var name=data.Name;
1254
1254
  var bOverlay=false; //是否是叠加指标
1255
+ var bIndexKLine=false;
1255
1256
  if (tooltipData.ChartPaint.Name=="Overlay-KLine")
1256
1257
  {
1257
1258
  symbol=tooltipData.ChartPaint.Symbol;
1258
1259
  name=tooltipData.ChartPaint.Title;
1259
1260
  bOverlay=true;
1260
1261
  }
1262
+ else if (tooltipData.ChartPaint.Name=="DRAWKLINE")
1263
+ {
1264
+ symbol=tooltipData.ChartPaint.Symbol;
1265
+ name=tooltipData.ChartPaint.Title;
1266
+ bIndexKLine=true;
1267
+ }
1261
1268
 
1262
- var kItem={ Symbol:symbol, Name:name, Item:CloneData(tooltipData.Data), IsOverlay:bOverlay };
1269
+ var kItem={ Symbol:symbol, Name:name, Item:CloneData(tooltipData.Data), IsOverlay:bOverlay, IsIndexKLine:bIndexKLine };
1263
1270
  var strKItem=JSON.stringify(kItem);
1264
1271
  var bUpdata=false;
1265
1272
  if (this.KItemCacheID!=strKItem) //数据变动的才更新
@@ -1560,10 +1567,11 @@ function JSFloatTooltip()
1560
1567
  if (IFrameSplitOperator.IsNumber(data.Time)) timeItem=this.FormatTime(data.Time, this.HQChart.Period, null, 'FloatTooltip-Time');
1561
1568
 
1562
1569
  var overlayItem=null;
1563
- if (kItem.IsOverlay)
1570
+ if (kItem.IsOverlay || (kItem.IsIndexKLine && kItem.Name))
1564
1571
  overlayItem={ Title:"", Text:kItem.Name, Color:this.TextColor, ClassName:this.ValueAlign.Left };
1565
1572
 
1566
1573
 
1574
+
1567
1575
  var yClose=data.YClose; //昨收价|昨结算价
1568
1576
  var aryText=
1569
1577
  [
@@ -55882,6 +55882,8 @@ HQData.Minute_RequestHistoryMinuteData=function(data, callback)
55882
55882
 
55883
55883
  var hqchartData={code:0, data:aryDay, name:symbol, symbol: symbol};
55884
55884
 
55885
+ //hqchartData.data[0].minute.length=45;
55886
+
55885
55887
  callback(hqchartData);
55886
55888
  }
55887
55889
 
@@ -57280,17 +57282,22 @@ HQData.GetKLineDataByDate=function(fullData, startDate, endDate)
57280
57282
  HQData.GetDayMinuteDataBySymbol=function(symbol)
57281
57283
  {
57282
57284
  var data=null;
57283
- switch(symbol)
57285
+ var upperSymbol=null;
57286
+ if (symbol) upperSymbol=symbol.toUpperCase();
57287
+ switch(upperSymbol)
57284
57288
  {
57285
- case "000001.sz":
57289
+ case "000001.SZ":
57286
57290
  data=SZ_000001_1DAY_MINUTE;
57287
57291
  break;
57288
- case "600000.sh":
57292
+ case "600000.SH":
57289
57293
  data=SH_600000_1DAY_MINUTE;
57290
57294
  break;
57291
- case "000151.sz":
57295
+ case "000151.SZ":
57292
57296
  data=SZ_000151_1DAY_MINUTE;
57293
57297
  break;
57298
+ case "IM2503.CF":
57299
+ data=CF_IM2503_1DAY_MINUTE;
57300
+ break;
57294
57301
  default:
57295
57302
  data=SZ_000151_1DAY_MINUTE;
57296
57303
  break;
@@ -57426,7 +57433,10 @@ HQData.Report_APIIndex=function(data, callback)
57426
57433
  HQData.APIIndex_MULTI_TEXT(data, callback);
57427
57434
  else if (request.Data.indexname=="API_PARTLINE")
57428
57435
  HQData.APIIndex_PARTLINE(data, callback);
57429
-
57436
+ else if (request.Data.indexname=="API_CHANNELV2")
57437
+ HQData.APIIndex_CHANNEL_V2(data, callback);
57438
+ else if (request.Data.indexname=="API_DRAWKLINE")
57439
+ HQData.APIIndex_DRAWKLINE(data, callback);
57430
57440
  }
57431
57441
 
57432
57442
 
@@ -58123,7 +58133,8 @@ HQData.APIIndex_MULTI_BAR=function(data, callback)
58123
58133
  {
58124
58134
  DrawType:'MULTI_BAR',
58125
58135
  DrawData:[]
58126
- } //绘制柱子数组
58136
+ }, //绘制柱子数组\
58137
+ IsShowTitle:false,
58127
58138
  };
58128
58139
 
58129
58140
  //第一组柱子
@@ -58141,14 +58152,15 @@ HQData.APIIndex_MULTI_BAR=function(data, callback)
58141
58152
 
58142
58153
  var point2=
58143
58154
  {
58144
- Color:'rgb(55,228,181)', //颜色
58145
- Type:1,
58155
+ Color:'rgb(55,228,181)', //颜色
58156
+ BorderColor:"rgb(255,165,0)", //边框景色
58157
+ Type:2,
58146
58158
  Name:"柱子下部",
58147
58159
  Point:
58148
58160
  [
58149
58161
  //{Date:20190916, Time: Value:15.5, Value2:0 },
58150
58162
  ],
58151
- Width:5
58163
+ Width:10
58152
58164
  };
58153
58165
 
58154
58166
  for(var i=0;i<kData.Data.length;++i)
@@ -58160,7 +58172,7 @@ HQData.APIIndex_MULTI_BAR=function(data, callback)
58160
58172
 
58161
58173
 
58162
58174
 
58163
- barData.Draw.DrawData.push(point);
58175
+ //barData.Draw.DrawData.push(point);
58164
58176
  barData.Draw.DrawData.push(point2);
58165
58177
 
58166
58178
  var apiData=
@@ -58274,3 +58286,105 @@ HQData.APIIndex_PARTLINE=function(data, callback)
58274
58286
  }
58275
58287
 
58276
58288
 
58289
+ HQData.APIIndex_CHANNEL_V2=function(data, callback)
58290
+ {
58291
+ data.PreventDefault=true;
58292
+ var hqchart=data.HQChart;
58293
+ var kData=hqchart.GetKData();
58294
+
58295
+ var channelData=
58296
+ {
58297
+ name:'通道示例', type:1,
58298
+ Draw:
58299
+ {
58300
+ DrawType:'JS_CHART_CHANNEL_V2',
58301
+ DrawData:
58302
+ {
58303
+ AryData:[]
58304
+ }
58305
+ }
58306
+ };
58307
+
58308
+ var aryTestData=kData.GetCloseMA(10);
58309
+ var ARRAY_COLOR=["rgb(0, 0 ,255)", "rgb(255,0,255)", "rgb(255,165,0)"];
58310
+ var colorIndex=0;
58311
+ for(var i=20;i<kData.Data.length;++i)
58312
+ {
58313
+ var index=i%15;
58314
+ var kItem=kData.Data[i];
58315
+ var value=aryTestData[i];
58316
+ var value2=value*1.03;
58317
+ var item={ Date:kItem.Date, Time:kItem.Time, Value: value, Value2:value2 };
58318
+ //var item={ Date:kItem.Date, Time:kItem.Time, Value: kItem.Close*(1.05), Value2:kItem.Close };
58319
+
58320
+ item.Color=ARRAY_COLOR[colorIndex%ARRAY_COLOR.length];
58321
+ channelData.Draw.DrawData.AryData.push(item);
58322
+
58323
+ if (index==0 && i>0) ++colorIndex;
58324
+ }
58325
+
58326
+ var apiData=
58327
+ {
58328
+ code:0,
58329
+ stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
58330
+ outdata: { date:kData.GetDate(), time:kData.GetTime(), outvar:[channelData] }
58331
+ };
58332
+
58333
+ console.log('[HQData.APIIndex_CHANNEL_V2] apiData ', apiData);
58334
+ callback(apiData);
58335
+ }
58336
+
58337
+
58338
+ HQData.APIIndex_DRAWKLINE=function(data, callback)
58339
+ {
58340
+ data.PreventDefault=true;
58341
+ var hqchart=data.HQChart;
58342
+ var kData=hqchart.GetKData();
58343
+
58344
+ var klineData=
58345
+ {
58346
+ name:"DRAWKLINE", type:1,
58347
+ Draw:
58348
+ {
58349
+ Name:"DRAWKLINE",
58350
+ DrawType:"DRAWKLINE",
58351
+ DrawData:[],
58352
+ Config:{ IsShowMaxMinPrice:true, IsShowKTooltip:true, Symbol:"000001.sh", Name:"上证指数11" }
58353
+ }
58354
+ };
58355
+
58356
+ var aryDate=[];
58357
+ var aryTime=[];
58358
+ for(var i=100;i<kData.Data.length-100;++i)
58359
+ {
58360
+ var kItem=kData.Data[i];
58361
+ var newItem=
58362
+ {
58363
+ YClose:kItem.YClose,
58364
+ Open:kItem.Open,
58365
+ High:kItem.High,
58366
+ Low:kItem.Low,
58367
+ Close:kItem.Close,
58368
+ Date:kItem.Date,
58369
+ Time:kItem.Time,
58370
+ Vol:kItem.Vol,
58371
+ };
58372
+
58373
+ klineData.Draw.DrawData.push(newItem);
58374
+
58375
+ aryDate.push(kItem.Date);
58376
+ aryTime.push(kItem.Time)
58377
+ }
58378
+
58379
+ var apiData=
58380
+ {
58381
+ code:0,
58382
+ stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
58383
+ outdata: { date:aryDate, time:aryTime, outvar:[klineData] }
58384
+ };
58385
+
58386
+ console.log('[HQData.APIIndex_DRAWKLINE] apiData ', apiData);
58387
+ callback(apiData);
58388
+ }
58389
+
58390
+
@@ -20257,6 +20257,8 @@ var SCRIPT_CHART_NAME=
20257
20257
  SCATTER_PLOT:"SCATTER_PLOT", //散点图
20258
20258
 
20259
20259
  CLIP_COLOR_STICK:"CLIP_COLOR_STICK", //上下柱子 裁剪
20260
+
20261
+ DRAW_KLINE:"DRAWKLINE"
20260
20262
  }
20261
20263
 
20262
20264
 
@@ -21325,6 +21327,15 @@ function ScriptIndex(name,script,args,option)
21325
21327
  if (varItem.Color) //如果设置了颜色,使用外面设置的颜色
21326
21328
  chart.UnchagneColor=chart.DownColor=chart.UpColor=this.GetColor(varItem.Color);
21327
21329
 
21330
+ if (varItem.Draw.Config)
21331
+ {
21332
+ var config=varItem.Draw.Config;
21333
+ if (IFrameSplitOperator.IsBool(config.IsShowMaxMinPrice)) chart.IsShowMaxMinPrice=config.IsShowMaxMinPrice;
21334
+ if (IFrameSplitOperator.IsBool(config.IsShowKTooltip)) chart.IsShowKTooltip=config.IsShowKTooltip;
21335
+ if (config.Symbol) chart.Symbol=config.Symbol;
21336
+ if (config.Name) chart.Title=config.Name;
21337
+ }
21338
+
21328
21339
  this.SetChartIndexName(chart);
21329
21340
  hqChart.ChartPaint.push(chart);
21330
21341
  }
@@ -25284,6 +25295,17 @@ function APIScriptIndex(name,script,args,option, isOverlay)
25284
25295
  outVarItem.Draw=drawItem;
25285
25296
  result.push(outVarItem);
25286
25297
  }
25298
+ else if (draw.DrawType==SCRIPT_CHART_NAME.DRAW_KLINE)
25299
+ {
25300
+ drawItem.Name=draw.Name;
25301
+ drawItem.Type=draw.Type;
25302
+ drawItem.DrawType=draw.DrawType;
25303
+
25304
+ drawItem.DrawData=this.FittingArray(draw.DrawData,date,time,hqChart,1);
25305
+ drawItem.Config=draw.Config;
25306
+ outVarItem.Draw=drawItem;
25307
+ result.push(outVarItem);
25308
+ }
25287
25309
  else
25288
25310
  {
25289
25311
  var find=g_ScriptIndexChartFactory.Get(draw.DrawType); //外部挂接
@@ -60,6 +60,17 @@ function JSDealChart(divElement)
60
60
 
61
61
  this.JSChartContainer=chart;
62
62
  this.DivElement.JSChart=this; //div中保存一份
63
+
64
+ //注册事件
65
+ if (option.EventCallback)
66
+ {
67
+ for(var i=0;i<option.EventCallback.length;++i)
68
+ {
69
+ var item=option.EventCallback[i];
70
+ chart.AddEventCallback(item);
71
+ }
72
+ }
73
+
63
74
  if (!option.Symbol)
64
75
  {
65
76
  chart.Draw();
@@ -284,6 +295,7 @@ function JSDealChartContainer(uielement)
284
295
  chart.Frame=this.Frame;
285
296
  chart.ChartBorder=this.Frame.ChartBorder;
286
297
  chart.Canvas=this.Canvas;
298
+ chart.UIElement=this.UIElement;
287
299
  chart.GetEventCallback=(id)=> { return this.GetEventCallback(id); }
288
300
  this.ChartPaint[0]=chart;
289
301
 
@@ -311,12 +323,16 @@ function JSDealChartContainer(uielement)
311
323
  bRegisterWheel=false;
312
324
  JSConsole.Chart.Log('[JSDealChartContainer::Create] not register wheel event.');
313
325
  }
326
+
327
+ if (IFrameSplitOperator.IsBool(option.EnableSelected)) chart.SelectedData.Enable=option.EnableSelected;
314
328
  }
315
329
 
316
330
  if (bRegisterKeydown) this.UIElement.addEventListener("keydown", (e)=>{ this.OnKeyDown(e); }, true); //键盘消息
317
331
  if (bRegisterWheel) this.UIElement.addEventListener("wheel", (e)=>{ this.OnWheel(e); }, true); //上下滚动消息
318
332
 
319
333
  this.UIElement.onmousedown=(e)=> { this.UIOnMouseDown(e); }
334
+ this.UIElement.ondblclick=(e)=>{ this.UIOnDblClick(e); }
335
+ this.UIElement.oncontextmenu=(e)=> { this.UIOnContextMenu(e); }
320
336
  }
321
337
 
322
338
  this.Draw=function()
@@ -700,20 +716,28 @@ function JSDealChartContainer(uielement)
700
716
  var chart=this.ChartPaint[0];
701
717
  if (!chart) return;
702
718
 
703
- /*
704
719
  var clickData=chart.OnMouseDown(x,y,e);
705
720
  if (!clickData) return;
706
721
 
707
- if ((clickData.Type==2) && (e.button==0 || e.button==2)) //点击行
722
+ if ((clickData.Type==1) && (e.button==0 || e.button==2)) //点击行
708
723
  {
709
724
  if (clickData.Redraw==true) this.Draw();
710
725
  }
711
- else if (clickData.Type==3 && e.button==0) //表头
712
- {
713
- this.OnClickHeader(clickData, e);
714
- }
715
- */
716
-
726
+ }
727
+
728
+ this.UIOnDblClick=function(e)
729
+ {
730
+ var pixelTatio = GetDevicePixelRatio();
731
+ var x = (e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;
732
+ var y = (e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;
733
+
734
+ var chart=this.ChartPaint[0];
735
+ if (chart) chart.OnDblClick(x,y,e);
736
+ }
737
+
738
+ this.UIOnContextMenu=function(e)
739
+ {
740
+ e.preventDefault();
717
741
  }
718
742
 
719
743
  this.GotoNextPage=function()
@@ -935,7 +959,7 @@ function ChartDealList()
935
959
  this.IsSingleTable=false; //单表模式
936
960
  this.IsShowHeader=true; //是否显示表头
937
961
  this.ShowOrder=1; //0=顺序 1=倒序
938
- this.SelectedData={ Index:10 }; //{ Index:序号 }
962
+ this.SelectedData={ Index:null, Guid:null, Enable:false }; //{ Index:序号, Guid, Enable:是否启动 }
939
963
 
940
964
  this.SizeChange=true;
941
965
 
@@ -946,7 +970,7 @@ function ChartDealList()
946
970
 
947
971
  this.BorderColor=g_JSChartResource.DealList.BorderColor; //边框线
948
972
 
949
- this.SelectedConfig={ BGColor:"rgb(100,0,100)"};
973
+ this.SelectedConfig={ BGColor:g_JSChartResource.DealList.Selected.BGColor };
950
974
 
951
975
  //表头配置
952
976
  this.HeaderFontConfig={ Size:g_JSChartResource.DealList.Header.Font.Size, Name:g_JSChartResource.DealList.Header.Font.Name };
@@ -987,6 +1011,7 @@ function ChartDealList()
987
1011
  ];
988
1012
 
989
1013
  this.RectClient={};
1014
+ this.AryCellRect=[]; //{ Rect:, Type: 1=单行 }
990
1015
 
991
1016
  this.ReloadResource=function(resource)
992
1017
  {
@@ -1087,6 +1112,7 @@ function ChartDealList()
1087
1112
 
1088
1113
  this.Draw=function()
1089
1114
  {
1115
+ this.AryCellRect=[];
1090
1116
  if (this.SizeChange) this.CalculateSize();
1091
1117
  else this.UpdateCacheData();
1092
1118
 
@@ -1242,7 +1268,7 @@ function ChartDealList()
1242
1268
  for(j=0;j<this.RowCount && index>=0;++j, --index)
1243
1269
  {
1244
1270
  var dataItem=this.Data.Data[index];
1245
- if (this.SelectedData && this.SelectedData.Index==index) this.DrawSelectedRow(dataItem, textLeft-this.HeaderMergin.Left, textTop, index);
1271
+ this.DrawSelectedRow(dataItem, index, rtRow);
1246
1272
 
1247
1273
  this.DrawRow(dataItem, textLeft, textTop, index);
1248
1274
 
@@ -1260,10 +1286,15 @@ function ChartDealList()
1260
1286
  for(j=0;j<this.RowCount && index<dataCount;++j, ++index)
1261
1287
  {
1262
1288
  var dataItem=this.Data.Data[index];
1289
+ var rtRow={ Left:textLeft-this.HeaderMergin.Left, Top:textTop, Height:this.RowHeight, Width:this.TableWidth };
1290
+ rtRow.Right=rtRow.Left+rtRow.Width;
1291
+ rtRow.Bottom=rtRow.Top+rtRow.Height;
1263
1292
 
1264
- if (this.SelectedData && this.SelectedData.Index==index) this.DrawSelectedRow(dataItem, textLeft-this.HeaderMergin.Left, textTop, index);
1293
+ this.DrawSelectedRow(dataItem, index, rtRow);
1265
1294
 
1266
1295
  this.DrawRow(dataItem, textLeft, textTop, index);
1296
+
1297
+ this.AryCellRect.push({ Rect:rtRow, Type:1, DataIndex:index });
1267
1298
 
1268
1299
  textTop+=this.RowHeight;
1269
1300
  }
@@ -1369,11 +1400,11 @@ function ChartDealList()
1369
1400
  }
1370
1401
  }
1371
1402
 
1372
- this.DrawSelectedRow=function(data, left, top, dataIndex, colIndex)
1403
+ this.DrawSelectedRow=function(data, index, rtRow)
1373
1404
  {
1374
- var rtRow={ Left:left, Top:top, Height:this.RowHeight, Width:this.TableWidth };
1375
- rtRow.Right=rtRow.Left+rtRow.Width;
1376
- rtRow.Bottom=rtRow.Top+rtRow.Bottom;
1405
+ if (!this.SelectedData) return;
1406
+ if (!this.SelectedData.Enable) return;
1407
+ if (!this.SelectedData.Guid || this.SelectedData.Guid!=data.Guid) return;
1377
1408
 
1378
1409
  this.Canvas.fillStyle=this.SelectedConfig.BGColor;
1379
1410
  this.Canvas.fillRect(rtRow.Left,rtRow.Top, rtRow.Width, rtRow.Height);
@@ -1506,7 +1537,7 @@ function ChartDealList()
1506
1537
  return GetFontHeight(this.Canvas, font, word);
1507
1538
  }
1508
1539
 
1509
- this.OnMouseDown=function(x,y,e) //Type: 2=行 3=表头
1540
+ this.OnMouseDown=function(x,y,e) //Type: 1=行
1510
1541
  {
1511
1542
  if (!this.Data) return null;
1512
1543
 
@@ -1517,11 +1548,67 @@ function ChartDealList()
1517
1548
  else uiElement={Left:null, Top:null};
1518
1549
 
1519
1550
  var row=this.PtInBody(x,y);
1551
+ if (row)
1552
+ {
1553
+ var bRedraw=true;
1554
+ var index=row.DataIndex;
1555
+ var id=row.Item.Guid
1556
+ if (this.SelectedData.Index==index && this.SelectedData.Guid==id) bRedraw=false;
1557
+
1558
+ this.SelectedData.Index=index;
1559
+ this.SelectedData.Guid=id;
1560
+
1561
+ var eventID=JSCHART_EVENT_ID.ON_CLICK_DEAL_ROW;
1562
+ if (e.button==2) eventID=JSCHART_EVENT_ID.ON_RCLICK_DEAL_ROW;
1563
+
1564
+ this.SendClickEvent(eventID, { Data:row, X:x, Y:y, e:e, Inside:insidePoint, UIElement:uiElement });
1565
+
1566
+ return { Type:row.Type, Redraw:bRedraw, Row:row };
1567
+ }
1568
+
1569
+ return null;
1570
+ }
1571
+
1572
+ this.OnDblClick=function(x,y,e)
1573
+ {
1574
+ if (!this.Data) return false;
1575
+
1576
+ var row=this.PtInBody(x,y);
1577
+ if (row)
1578
+ {
1579
+ this.SendClickEvent(JSCHART_EVENT_ID.ON_DBCLICK_DEAL_ROW, { Data:row, X:x, Y:y });
1580
+ return true;
1581
+ }
1582
+
1583
+ return false;
1520
1584
  }
1521
1585
 
1522
1586
  this.PtInBody=function(x,y)
1523
1587
  {
1524
1588
  if (!this.Data) return null;
1525
1589
  if (!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return null;
1590
+ if (!IFrameSplitOperator.IsNonEmptyArray(this.AryCellRect)) return null;
1591
+
1592
+ for(var i=0;i<this.AryCellRect.length;++i)
1593
+ {
1594
+ var item=this.AryCellRect[i];
1595
+ var rtRow=item.Rect;
1596
+ if (x>=rtRow.Left && x<=rtRow.Right && y>=rtRow.Top && y<=rtRow.Bottom)
1597
+ {
1598
+ var data={ Rect:rtRow, DataIndex:item.DataIndex, Item:this.Data.Data[item.DataIndex], Type:item.Type };
1599
+ return data;
1600
+ }
1601
+ }
1602
+
1603
+ return null;
1604
+ }
1605
+
1606
+ this.SendClickEvent=function(id, data)
1607
+ {
1608
+ var event=this.GetEventCallback(id);
1609
+ if (event && event.Callback)
1610
+ {
1611
+ event.Callback(event,data,this);
1612
+ }
1526
1613
  }
1527
1614
  }
@@ -2695,6 +2695,11 @@ var JSCHART_EVENT_ID=
2695
2695
  SEARCH_DIALOG_ON_CLICK_INDEX:163, //切换指标-指标对话框
2696
2696
 
2697
2697
  ON_CALCULATE_CHIP_DATA:164, //计算筹码数据 (筹码图用)
2698
+
2699
+
2700
+ ON_CLICK_DEAL_ROW:165,
2701
+ ON_RCLICK_DEAL_ROW:166,
2702
+ ON_DBCLICK_DEAL_ROW:167,
2698
2703
  }
2699
2704
 
2700
2705
  var JSCHART_OPERATOR_ID=
@@ -25283,7 +25288,7 @@ function IChartPainting()
25283
25288
  for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
25284
25289
  {
25285
25290
  var data=this.Data.Data[i];
25286
- if (data.Open==null || data.High==null || data.Low==null || data.Close==null) continue;
25291
+ if (!data || data.Open==null || data.High==null || data.Low==null || data.Close==null) continue;
25287
25292
 
25288
25293
  if (firstOverlayOpen==null) firstOverlayOpen=data.Open;
25289
25294
 
@@ -26213,7 +26218,7 @@ function ChartKLine()
26213
26218
  {
26214
26219
  var data=this.Data.Data[i];
26215
26220
  this.ShowRange.End=i;
26216
- if (data.Open==null || data.High==null || data.Low==null || data.Close==null) continue;
26221
+ if (!data || data.Open==null || data.High==null || data.Low==null || data.Close==null) continue;
26217
26222
 
26218
26223
  var left=xOffset;
26219
26224
  var right=xOffset+dataWidth;
@@ -28581,6 +28586,7 @@ function ChartKLine()
28581
28586
  tooltip.Data=this.Data.Data[index];
28582
28587
  tooltip.ChartPaint=this;
28583
28588
  tooltip.Type=0; //K线信息
28589
+ tooltip.Symbol=this.Symbol;
28584
28590
  return true;
28585
28591
  }
28586
28592
  }
@@ -28615,7 +28621,7 @@ function ChartKLine()
28615
28621
  for(var i=start,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
28616
28622
  {
28617
28623
  var data=this.Data.Data[i];
28618
- if (!IFrameSplitOperator.IsNumber(data.Close)) continue;
28624
+ if (!data || !IFrameSplitOperator.IsNumber(data.Close)) continue;
28619
28625
 
28620
28626
  if (range.Max==null) range.Max=data.Close;
28621
28627
  if (range.Min==null) range.Min=data.Close;
@@ -28629,7 +28635,7 @@ function ChartKLine()
28629
28635
  for(var i=start,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
28630
28636
  {
28631
28637
  var data=this.Data.Data[i];
28632
- if (data.Open==null || data.High==null || data.Low==null || data.Close==null) continue;
28638
+ if (!data || data.Open==null || data.High==null || data.Low==null || data.Close==null) continue;
28633
28639
 
28634
28640
  if (this.DrawType==5 && data.OrderFlow && IFrameSplitOperator.IsNumber(data.OrderFlow.PriceOffset))
28635
28641
  {
@@ -72446,7 +72452,12 @@ function JSChartResource()
72446
72452
 
72447
72453
  UpTextColor:"rgb(238,21,21)", //上涨文字颜色
72448
72454
  DownTextColor:"rgb(25,158,0)", //下跌文字颜色
72449
- UnchagneTextColor:"rgb(0,0,0)" //平盘文字颜色
72455
+ UnchagneTextColor:"rgb(0,0,0)", //平盘文字颜色
72456
+
72457
+ Selected:
72458
+ {
72459
+ BGColor:"rgb(180,240,240)",
72460
+ }
72450
72461
  },
72451
72462
 
72452
72463
  //报价列表
@@ -73499,6 +73510,12 @@ function JSChartResource()
73499
73510
  this.DealList.FieldColor.Bar[i]=filed.Bar[i];
73500
73511
  }
73501
73512
  }
73513
+
73514
+ if (item.Selected)
73515
+ {
73516
+ var subItem=item.Selected;
73517
+ if (subItem.BGColor) this.DealList.Selected.BGColor=subItem.BGColor;
73518
+ }
73502
73519
  }
73503
73520
 
73504
73521
  if (style.Report) this.SetReportStyle(style.Report);
@@ -655,7 +655,12 @@ function GetBlackStyle()
655
655
 
656
656
  UpTextColor:"rgb(238,21,21)", //上涨文字颜色
657
657
  DownTextColor:"rgb(25,158,0)", //下跌文字颜色
658
- UnchagneTextColor:"rgb(228,228,228)" //平盘文字颜色
658
+ UnchagneTextColor:"rgb(228,228,228)", //平盘文字颜色
659
+
660
+ Selected:
661
+ {
662
+ BGColor:"rgb(49,48,56)",
663
+ }
659
664
  },
660
665
 
661
666
  //报价列表