hqchart 1.1.14742 → 1.1.14750

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.
@@ -839,6 +839,33 @@ JSDealChartContainer.JsonDataToDealData=function(data)
839
839
  if (item[5]) dealItem.StrTime=item[5];
840
840
  if (item[6]) dealItem.ID=item[6];
841
841
 
842
+ if (item[11]) dealItem.Symbol=item[11]; //股票代码
843
+ if (item[12]) dealItem.Name=item[12]; //股票名称
844
+
845
+ //10个数值型 101-199
846
+ if (IFrameSplitOperator.IsNumber(item[101])) dealItem.ReserveNumber1=item[101];
847
+ if (IFrameSplitOperator.IsNumber(item[102])) dealItem.ReserveNumber2=item[102];
848
+ if (IFrameSplitOperator.IsNumber(item[103])) dealItem.ReserveNumber3=item[103];
849
+ if (IFrameSplitOperator.IsNumber(item[104])) dealItem.ReserveNumber4=item[104];
850
+ if (IFrameSplitOperator.IsNumber(item[105])) dealItem.ReserveNumber5=item[105];
851
+ if (IFrameSplitOperator.IsNumber(item[106])) dealItem.ReserveNumber6=item[106];
852
+ if (IFrameSplitOperator.IsNumber(item[107])) dealItem.ReserveNumber7=item[107];
853
+ if (IFrameSplitOperator.IsNumber(item[108])) dealItem.ReserveNumber8=item[108];
854
+ if (IFrameSplitOperator.IsNumber(item[109])) dealItem.ReserveNumber9=item[109];
855
+ if (IFrameSplitOperator.IsNumber(item[110])) dealItem.ReserveNumber10=item[110];
856
+
857
+ //10个字符型 201-299
858
+ if (IFrameSplitOperator.IsString(item[201]) || IFrameSplitOperator.IsObject(item[201])) dealItem.ReserveString1=item[201];
859
+ if (IFrameSplitOperator.IsString(item[202]) || IFrameSplitOperator.IsObject(item[202])) dealItem.ReserveString2=item[202];
860
+ if (IFrameSplitOperator.IsString(item[203]) || IFrameSplitOperator.IsObject(item[203])) dealItem.ReserveString3=item[203];
861
+ if (IFrameSplitOperator.IsString(item[204]) || IFrameSplitOperator.IsObject(item[204])) dealItem.ReserveString4=item[204];
862
+ if (IFrameSplitOperator.IsString(item[205]) || IFrameSplitOperator.IsObject(item[205])) dealItem.ReserveString5=item[205];
863
+ if (IFrameSplitOperator.IsString(item[206]) || IFrameSplitOperator.IsObject(item[206])) dealItem.ReserveString6=item[206];
864
+ if (IFrameSplitOperator.IsString(item[207]) || IFrameSplitOperator.IsObject(item[207])) dealItem.ReserveString7=item[207];
865
+ if (IFrameSplitOperator.IsString(item[208]) || IFrameSplitOperator.IsObject(item[208])) dealItem.ReserveString8=item[208];
866
+ if (IFrameSplitOperator.IsString(item[209]) || IFrameSplitOperator.IsObject(item[209])) dealItem.ReserveString9=item[209];
867
+ if (IFrameSplitOperator.IsString(item[210]) || IFrameSplitOperator.IsObject(item[210])) dealItem.ReserveString10=item[210];
868
+
842
869
  result.push(dealItem);
843
870
  }
844
871
 
@@ -938,9 +965,66 @@ var DEAL_COLUMN_ID=
938
965
  INDEX_ID:7, //序号 从1开始
939
966
  MULTI_BAR_ID:8, //多颜色柱子
940
967
  CENTER_BAR_ID:9, //中心柱子
941
- CUSTOM_TEXT_ID:10 //自定义文本
968
+ CUSTOM_TEXT_ID:10, //自定义文本
969
+
970
+ SYMBOL_ID:11, //股票代码
971
+ NAME_ID:12, //股票名称
972
+
973
+
974
+ //预留数值类型 10个
975
+ RESERVE_NUMBER1_ID:201, //ReserveNumber1:
976
+ RESERVE_NUMBER2_ID:202,
977
+ RESERVE_NUMBER3_ID:203,
978
+ RESERVE_NUMBER4_ID:204,
979
+ RESERVE_NUMBER5_ID:205,
980
+ RESERVE_NUMBER6_ID:206,
981
+ RESERVE_NUMBER7_ID:207,
982
+ RESERVE_NUMBER8_ID:208,
983
+ RESERVE_NUMBER9_ID:209,
984
+ RESERVE_NUMBER10_ID:210,
985
+
986
+ //预留字符串类型 10个 301-399
987
+ RESERVE_STRING1_ID:301, //ReserveString1:
988
+ RESERVE_STRING2_ID:302,
989
+ RESERVE_STRING3_ID:303,
990
+ RESERVE_STRING4_ID:304,
991
+ RESERVE_STRING5_ID:305,
992
+ RESERVE_STRING6_ID:306,
993
+ RESERVE_STRING7_ID:307,
994
+ RESERVE_STRING8_ID:308,
995
+ RESERVE_STRING9_ID:309,
996
+ RESERVE_STRING10_ID:310,
942
997
  }
943
998
 
999
+ var MAP_DEAL_COLUMN_FIELD=new Map(
1000
+ [
1001
+ [DEAL_COLUMN_ID.SYMBOL_ID, "Symbol"],
1002
+ [DEAL_COLUMN_ID.NAME_ID, "Name"],
1003
+ [DEAL_COLUMN_ID.PRICE_ID, "Price"],
1004
+
1005
+ [DEAL_COLUMN_ID.RESERVE_NUMBER1_ID,"ReserveNumber1"],
1006
+ [DEAL_COLUMN_ID.RESERVE_NUMBER2_ID,"ReserveNumber2"],
1007
+ [DEAL_COLUMN_ID.RESERVE_NUMBER3_ID,"ReserveNumber3"],
1008
+ [DEAL_COLUMN_ID.RESERVE_NUMBER4_ID,"ReserveNumber4"],
1009
+ [DEAL_COLUMN_ID.RESERVE_NUMBER5_ID,"ReserveNumber5"],
1010
+ [DEAL_COLUMN_ID.RESERVE_NUMBER6_ID,"ReserveNumber6"],
1011
+ [DEAL_COLUMN_ID.RESERVE_NUMBER7_ID,"ReserveNumber7"],
1012
+ [DEAL_COLUMN_ID.RESERVE_NUMBER8_ID,"ReserveNumber8"],
1013
+ [DEAL_COLUMN_ID.RESERVE_NUMBER9_ID,"ReserveNumber9"],
1014
+ [DEAL_COLUMN_ID.RESERVE_NUMBER10_ID,"ReserveNumber10"],
1015
+
1016
+ [DEAL_COLUMN_ID.RESERVE_STRING1_ID,"ReserveString1"],
1017
+ [DEAL_COLUMN_ID.RESERVE_STRING2_ID,"ReserveString2"],
1018
+ [DEAL_COLUMN_ID.RESERVE_STRING3_ID,"ReserveString3"],
1019
+ [DEAL_COLUMN_ID.RESERVE_STRING4_ID,"ReserveString4"],
1020
+ [DEAL_COLUMN_ID.RESERVE_STRING5_ID,"ReserveString5"],
1021
+ [DEAL_COLUMN_ID.RESERVE_STRING6_ID,"ReserveString6"],
1022
+ [DEAL_COLUMN_ID.RESERVE_STRING7_ID,"ReserveString7"],
1023
+ [DEAL_COLUMN_ID.RESERVE_STRING8_ID,"ReserveString8"],
1024
+ [DEAL_COLUMN_ID.RESERVE_STRING9_ID,"ReserveString9"],
1025
+ [DEAL_COLUMN_ID.RESERVE_STRING10_ID,"ReserveString10"],
1026
+ ]);
1027
+
944
1028
  function ChartDealList()
945
1029
  {
946
1030
  this.Canvas; //画布
@@ -966,7 +1050,7 @@ function ChartDealList()
966
1050
  //涨跌颜色
967
1051
  this.UpColor=g_JSChartResource.DealList.UpTextColor;
968
1052
  this.DownColor=g_JSChartResource.DealList.DownTextColor;
969
- this.UnchagneColor=g_JSChartResource.DealList.UnchagneTextColor;
1053
+ this.UnchangeColor=g_JSChartResource.DealList.UnchagneTextColor;
970
1054
 
971
1055
  this.BorderColor=g_JSChartResource.DealList.BorderColor; //边框线
972
1056
 
@@ -1017,7 +1101,7 @@ function ChartDealList()
1017
1101
  {
1018
1102
  this.UpColor=g_JSChartResource.DealList.UpTextColor;
1019
1103
  this.DownColor=g_JSChartResource.DealList.DownTextColor;
1020
- this.UnchagneColor=g_JSChartResource.DealList.UnchagneTextColor;
1104
+ this.UnchangeColor=g_JSChartResource.DealList.UnchagneTextColor;
1021
1105
 
1022
1106
  this.BorderColor=g_JSChartResource.DealList.BorderColor; //边框线
1023
1107
 
@@ -1076,6 +1160,11 @@ function ChartDealList()
1076
1160
  {
1077
1161
  if (IFrameSplitOperator.IsString(item.Foramt)) colItem.Foramt=item.Foramt; //设置时间格式
1078
1162
  }
1163
+ else if (this.IsReserveNumber(item.Type))
1164
+ {
1165
+ if (item.Format) colItem.Format=item.Format; //数据格式化设置{ Type:1=原始 2=千分位分割 3=万亿转换, ExFloatPrecision:万亿转换以后的小数位数 }
1166
+ if (IFrameSplitOperator.IsNumber(item.ColorType)) colItem.ColorType=item.ColorType; //0=默认 1=(>0, =0, <0) 2=(>=0, <0)
1167
+ }
1079
1168
 
1080
1169
  this.Column.push(colItem);
1081
1170
  }
@@ -1097,6 +1186,31 @@ function ChartDealList()
1097
1186
  { Type:DEAL_COLUMN_ID.MULTI_BAR_ID, Title:"柱子", TextAlign:"center", Width:null, TextColor:g_JSChartResource.DealList.FieldColor.BarTitle, MaxText:"888888" },
1098
1187
  { Type:DEAL_COLUMN_ID.CENTER_BAR_ID, Title:"柱子2", TextAlign:"center", Width:null, TextColor:g_JSChartResource.DealList.FieldColor.BarTitle, MaxText:"888888" },
1099
1188
  { Type:DEAL_COLUMN_ID.CUSTOM_TEXT_ID, Title:"自定义", TextAlign:"center", Width:null, TextColor:g_JSChartResource.DealList.FieldColor.Text, MaxText:"擎擎擎擎擎" },
1189
+
1190
+ { Type:DEAL_COLUMN_ID.NAME_ID, Title:"股票名称", TextAlign:"center", Width:null, TextColor:g_JSChartResource.DealList.FieldColor.Text, MaxText:"擎擎擎擎*" },
1191
+
1192
+ { Type:DEAL_COLUMN_ID.RESERVE_NUMBER1_ID, Title:"数值1", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"9999.99", FloatPrecision:2 },
1193
+ { Type:DEAL_COLUMN_ID.RESERVE_NUMBER2_ID, Title:"数值2", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"9999.99", FloatPrecision:2 },
1194
+ { Type:DEAL_COLUMN_ID.RESERVE_NUMBER3_ID, Title:"数值3", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"9999.99", FloatPrecision:2 },
1195
+ { Type:DEAL_COLUMN_ID.RESERVE_NUMBER4_ID, Title:"数值4", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"9999.99", FloatPrecision:2 },
1196
+ { Type:DEAL_COLUMN_ID.RESERVE_NUMBER5_ID, Title:"数值5", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"9999.99", FloatPrecision:2 },
1197
+ { Type:DEAL_COLUMN_ID.RESERVE_NUMBER6_ID, Title:"数值6", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"9999.99", FloatPrecision:2 },
1198
+ { Type:DEAL_COLUMN_ID.RESERVE_NUMBER7_ID, Title:"数值7", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"9999.99", FloatPrecision:2 },
1199
+ { Type:DEAL_COLUMN_ID.RESERVE_NUMBER8_ID, Title:"数值8", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"9999.99", FloatPrecision:2 },
1200
+ { Type:DEAL_COLUMN_ID.RESERVE_NUMBER9_ID, Title:"数值9", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"9999.99", FloatPrecision:2 },
1201
+ { Type:DEAL_COLUMN_ID.RESERVE_NUMBER10_ID, Title:"数值10", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"9999.99", FloatPrecision:2 },
1202
+
1203
+
1204
+ { Type:DEAL_COLUMN_ID.RESERVE_STRING1_ID, Title:"文字1", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
1205
+ { Type:DEAL_COLUMN_ID.RESERVE_STRING2_ID, Title:"文字2", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
1206
+ { Type:DEAL_COLUMN_ID.RESERVE_STRING3_ID, Title:"文字3", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
1207
+ { Type:DEAL_COLUMN_ID.RESERVE_STRING4_ID, Title:"文字4", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
1208
+ { Type:DEAL_COLUMN_ID.RESERVE_STRING5_ID, Title:"文字5", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
1209
+ { Type:DEAL_COLUMN_ID.RESERVE_STRING6_ID, Title:"文字6", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
1210
+ { Type:DEAL_COLUMN_ID.RESERVE_STRING7_ID, Title:"文字7", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
1211
+ { Type:DEAL_COLUMN_ID.RESERVE_STRING8_ID, Title:"文字8", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
1212
+ { Type:DEAL_COLUMN_ID.RESERVE_STRING9_ID, Title:"文字9", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
1213
+ { Type:DEAL_COLUMN_ID.RESERVE_STRING10_ID, Title:"文字10", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Text, MaxText:"擎擎擎擎擎擎" },
1100
1214
 
1101
1215
  ];
1102
1216
 
@@ -1318,6 +1432,19 @@ function ChartDealList()
1318
1432
 
1319
1433
  if (i==this.Column.length-1) itemWidth=this.TableWidth-(left-tableLeft)-this.HeaderMergin.Right-this.HeaderMergin.Left;
1320
1434
 
1435
+ var drawInfo=
1436
+ {
1437
+ Text:null, TextColor:item.TextColor , TextAlign:item.TextAlign, Tooltip:null,
1438
+ Index:dataIndex, ColumnIndex:i
1439
+ };
1440
+
1441
+ var rtItem={ Left:left, Top:top, Width:itemWidth, Height:this.RowHeight };
1442
+ rtItem.Right=rtItem.Left+rtItem.Width;
1443
+ rtItem.Bottom=rtItem.Top+rtItem.Height;
1444
+ drawInfo.Rect=rtItem;
1445
+
1446
+ var bDrawV2=false;
1447
+
1321
1448
  if (item.Type==DEAL_COLUMN_ID.TIME_ID)
1322
1449
  {
1323
1450
  text=IFrameSplitOperator.FormatTimeString(data.Time,item.Foramt);
@@ -1330,7 +1457,7 @@ function ChartDealList()
1330
1457
  {
1331
1458
  if (data.Price>this.YClose) textColor=this.UpColor;
1332
1459
  else if (data.Price<this.YClose) textColor=this.DownColor;
1333
- else textColor=this.UnchagneColor;
1460
+ else textColor=this.UnchangeColor;
1334
1461
 
1335
1462
  text=data.Price.toFixed(this.Decimal);
1336
1463
  }
@@ -1365,7 +1492,7 @@ function ChartDealList()
1365
1492
 
1366
1493
  if (value>0) textColor=this.UpColor;
1367
1494
  else if (value<0) textColor=this.DownColor;
1368
- else textColor=this.UnchagneColor;
1495
+ else textColor=this.UnchangeColor;
1369
1496
  }
1370
1497
  }
1371
1498
  else if (item.Type==DEAL_COLUMN_ID.INDEX_ID)
@@ -1393,13 +1520,110 @@ function ChartDealList()
1393
1520
  if (out.TextAlign) textAlign=out.TextAlign;
1394
1521
  }
1395
1522
  }
1396
-
1397
- this.DrawItemText(text, textColor, textAlign, left, top, itemWidth);
1523
+ else if (this.IsReserveString(item.Type))
1524
+ {
1525
+ this.FormatReserveString(item, data, drawInfo);
1526
+ bDrawV2=true;
1527
+ }
1528
+ else if (this.IsReserveNumber(item.Type))
1529
+ {
1530
+ this.FormatReserveNumber(item, data, drawInfo);
1531
+ bDrawV2=true;
1532
+ }
1533
+
1534
+
1535
+ if (bDrawV2)
1536
+ {
1537
+ this.DrawItemText(drawInfo.Text, drawInfo.TextColor, drawInfo.TextAlign, rtItem.Left, rtItem.Top, rtItem.Width, drawInfo.BGColor);
1538
+ }
1539
+ else
1540
+ {
1541
+ this.DrawItemText(text, textColor, textAlign, left, top, itemWidth);
1542
+ }
1543
+
1398
1544
 
1399
1545
  left+=item.Width;
1400
1546
  }
1401
1547
  }
1402
1548
 
1549
+ this.FormatReserveNumber=function(column, data, drawInfo)
1550
+ {
1551
+ if (column.DefaultText) drawInfo.Text=column.DefaultText;
1552
+
1553
+ var fieldName=MAP_DEAL_COLUMN_FIELD.get(column.Type);
1554
+ if (!data || !fieldName) return;
1555
+
1556
+ var value=data[fieldName];
1557
+ if (!IFrameSplitOperator.IsNumber(value)) return;
1558
+
1559
+ if (IFrameSplitOperator.IsNumber(column.ColorType))
1560
+ {
1561
+ if (column.ColorType==1)
1562
+ {
1563
+ drawInfo.TextColor=this.GetUpDownColor(value,0);
1564
+ }
1565
+ else if (column.ColorType==2)
1566
+ {
1567
+ drawInfo.TextColor=this.GetUpDownColorV2(value,0);
1568
+ }
1569
+ }
1570
+
1571
+ var text=value.toFixed(column.FloatPrecision);
1572
+ if (column.Format && IFrameSplitOperator.IsNumber(column.Format.Type))
1573
+ {
1574
+ var format=column.Format;
1575
+ switch(format.Type)
1576
+ {
1577
+ case 1: //原始数据
1578
+ text=value.toFixed(column.FloatPrecision);
1579
+ break;
1580
+ case 2: //千分位分割
1581
+ text=IFrameSplitOperator.FormatValueThousandsString(value, column.FloatPrecision);
1582
+ break;
1583
+ case 3:
1584
+ var exfloatPrecision=1;
1585
+ if (IFrameSplitOperator.IsNumber(format.ExFloatPrecision)) exfloatPrecision=format.ExFloatPrecision;
1586
+ text=IFrameSplitOperator.FormatValueStringV2(value, column.FloatPrecision,exfloatPrecision);
1587
+ break;
1588
+ }
1589
+ }
1590
+
1591
+ drawInfo.Text=text;
1592
+ }
1593
+
1594
+ this.FormatReserveString=function(column, data, drawInfo)
1595
+ {
1596
+ if (column.DefaultText) drawInfo.Text=column.DefaultText;
1597
+
1598
+ var fieldName=MAP_DEAL_COLUMN_FIELD.get(column.Type);
1599
+ if (!data || !fieldName) return;
1600
+
1601
+ var item=data[fieldName];
1602
+ if (IFrameSplitOperator.IsObject(item))
1603
+ {
1604
+ if (item.Text) drawInfo.Text=item.Text;
1605
+ if (item.TextColor) drawInfo.TextColor=item.TextColor;
1606
+ if (item.BGColor) drawInfo.BGColor=item.BGColor;
1607
+ }
1608
+ else if (IFrameSplitOperator.IsString(item))
1609
+ {
1610
+ drawInfo.Text=item;
1611
+ }
1612
+ }
1613
+
1614
+ this.GetUpDownColor=function(price, price2)
1615
+ {
1616
+ if (price>price2) return this.UpColor;
1617
+ else if (price<price2) return this.DownColor;
1618
+ else return this.UnchangeColor;
1619
+ }
1620
+
1621
+ this.GetUpDownColorV2=function(price, price2)
1622
+ {
1623
+ if (price>=price2) return this.UpColor;
1624
+ else return this.DownColor;
1625
+ }
1626
+
1403
1627
  this.DrawSelectedRow=function(data, index, rtRow)
1404
1628
  {
1405
1629
  if (!this.SelectedData) return;
@@ -1611,4 +1835,28 @@ function ChartDealList()
1611
1835
  event.Callback(event,data,this);
1612
1836
  }
1613
1837
  }
1838
+
1839
+ this.IsReserveString=function(value)
1840
+ {
1841
+ var ARARY_TYPE=
1842
+ [
1843
+ DEAL_COLUMN_ID.RESERVE_STRING1_ID,DEAL_COLUMN_ID.RESERVE_STRING2_ID,DEAL_COLUMN_ID.RESERVE_STRING3_ID,DEAL_COLUMN_ID.RESERVE_STRING4_ID,
1844
+ DEAL_COLUMN_ID.RESERVE_STRING5_ID,DEAL_COLUMN_ID.RESERVE_STRING6_ID,DEAL_COLUMN_ID.RESERVE_STRING7_ID,DEAL_COLUMN_ID.RESERVE_STRING8_ID,
1845
+ DEAL_COLUMN_ID.RESERVE_STRING9_ID,DEAL_COLUMN_ID.RESERVE_STRING10_ID
1846
+ ];
1847
+
1848
+ return ARARY_TYPE.includes(value);
1849
+ }
1850
+
1851
+ this.IsReserveNumber=function(value)
1852
+ {
1853
+ var ARARY_TYPE=
1854
+ [
1855
+ DEAL_COLUMN_ID.RESERVE_NUMBER1_ID,DEAL_COLUMN_ID.RESERVE_NUMBER2_ID,DEAL_COLUMN_ID.RESERVE_NUMBER3_ID,
1856
+ DEAL_COLUMN_ID.RESERVE_NUMBER4_ID,DEAL_COLUMN_ID.RESERVE_NUMBER5_ID,DEAL_COLUMN_ID.RESERVE_NUMBER6_ID,DEAL_COLUMN_ID.RESERVE_NUMBER7_ID,
1857
+ DEAL_COLUMN_ID.RESERVE_NUMBER8_ID,DEAL_COLUMN_ID.RESERVE_NUMBER9_ID,DEAL_COLUMN_ID.RESERVE_NUMBER10_ID
1858
+ ];
1859
+
1860
+ return ARARY_TYPE.includes(value);
1861
+ }
1614
1862
  }
@@ -6248,7 +6248,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
6248
6248
 
6249
6249
  var bDrawDialogTooltip=false;
6250
6250
  var ptPosition=null; //鼠标位置 null 无效 -1 在外面 >=0 对应的指标窗口中ID
6251
- var corssCursorPos=this.GetCorssCursorPosition()
6251
+ var corssCursorPos=this.GetCorssCursorPosition();
6252
6252
  if (corssCursorPos.LastPoint.X!=null || corssCursorPos.LastPoint.Y!=null)
6253
6253
  {
6254
6254
  if (this.ChartCorssCursor)
@@ -6702,6 +6702,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
6702
6702
  this.DrawDynamicInfo=function(option)
6703
6703
  {
6704
6704
  this.LastMouseStatus.MouseOnToolbar=null; //鼠标在工具栏按钮上
6705
+ if (this.ChartCorssCursor) this.ChartCorssCursor.Status=0;
6705
6706
 
6706
6707
  var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_BEFORE_DRAW_DYNAMIC_INFO);
6707
6708
  if (event && event.Callback)
@@ -12996,7 +12997,7 @@ function AverageWidthFrame()
12996
12997
  }
12997
12998
  else
12998
12999
  {
12999
- var right=border.Right-3;
13000
+ var right=border.RightEx-3;
13000
13001
  var left=border.Left;
13001
13002
  var yButton=border.Top+this.ChartBorder.TitleHeight/2;
13002
13003
 
@@ -60558,6 +60559,7 @@ function DynamicChartTitlePainting()
60558
60559
  this.IsShowIndexTitle=true; //是否显示指标标题信息
60559
60560
  this.IsShowNameArrow=false;
60560
60561
  this.NameArrowConfig=CloneData(g_JSChartResource.IndexTitle.NameArrow);
60562
+ this.CustomLocation; //自定义位置 { IsShow:, Top:, TitleHeight: }
60561
60563
 
60562
60564
  this.TradeIndex; //专家系统名字{Name:'名字', Param:'参数'}
60563
60565
  this.IsShowTradeIndexTitle=true;
@@ -61247,7 +61249,16 @@ function DynamicChartTitlePainting()
61247
61249
  if (this.Frame.IsShowIndexTitle==false) return;
61248
61250
  if (g_JSChartResource.IsDOMFrameTitle===true) return;
61249
61251
  if (!this.Data) return;
61250
- if (this.Frame.ChartBorder.TitleHeight<5) return;
61252
+ if (this.CustomLocation)
61253
+ {
61254
+ if (!this.CustomLocation.IsShow) return;
61255
+ if (!IFrameSplitOperator.IsNumber(this.CustomLocation.Top) || !IFrameSplitOperator.IsNumber(this.CustomLocation.TitleHeight)) return;
61256
+ }
61257
+ else
61258
+ {
61259
+ if (this.Frame.ChartBorder.TitleHeight<5) return;
61260
+ }
61261
+
61251
61262
  if (this.CursorIndex==null && !(this.GlobalOption && this.GlobalOption.IsDisplayLatest)) return;
61252
61263
 
61253
61264
  if (this.Frame.IsHScreen===true)
@@ -61269,6 +61280,11 @@ function DynamicChartTitlePainting()
61269
61280
 
61270
61281
  var left=this.Frame.ChartBorder.GetLeft()+this.MerginLeft;
61271
61282
  var bottom=this.Frame.ChartBorder.GetTop()+this.Frame.ChartBorder.TitleHeight/2; //上下居中显示
61283
+ if (this.CustomLocation) //自定义标题位置
61284
+ {
61285
+ bottom=this.Frame.ChartBorder.GetTop()+this.CustomLocation.Top+this.CustomLocation.TitleHeight/2;
61286
+ }
61287
+
61272
61288
  var right=this.Frame.ChartBorder.GetRight();
61273
61289
 
61274
61290
  var toolbarInfo={ Width:0, YCenter:bottom };