hqchart 1.1.15455 → 1.1.15474
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/lib/umychart.vue.js +50 -34
- package/package.json +1 -1
- package/src/jscommon/umychart.DialogDrawTool.js +3 -0
- package/src/jscommon/umychart.PopKeyboard.js +28 -0
- package/src/jscommon/umychart.StatusBar.js +13 -4
- package/src/jscommon/umychart.StockInfo.js +185 -3
- package/src/jscommon/umychart.js +55 -61
- package/src/jscommon/umychart.report.js +9 -0
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +65 -62
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +294 -69
|
@@ -6840,6 +6840,15 @@ JSChart.GetShortSymbol=function(symbol)
|
|
|
6840
6840
|
return symbol.slice(0,pos);
|
|
6841
6841
|
}
|
|
6842
6842
|
|
|
6843
|
+
JSChart.CancelEvent=function(e)
|
|
6844
|
+
{
|
|
6845
|
+
if (!e) return;
|
|
6846
|
+
|
|
6847
|
+
if (e.preventDefault) e.preventDefault();
|
|
6848
|
+
if (e.stopPropagation) e.stopPropagation();
|
|
6849
|
+
e.returnValue=false;
|
|
6850
|
+
}
|
|
6851
|
+
|
|
6843
6852
|
|
|
6844
6853
|
var JSCHART_EVENT_ID=
|
|
6845
6854
|
{
|
|
@@ -6928,9 +6937,6 @@ var JSCHART_EVENT_ID=
|
|
|
6928
6937
|
ON_DRAG_SUB_SELECT_RECT:66, //拖拽区间选择子区域
|
|
6929
6938
|
ON_DRAG_SUB_SELECT_RECT_MOUSEUP:67, //拖拽区间选择子区域鼠标松开
|
|
6930
6939
|
|
|
6931
|
-
ON_KEYBOARD_SELECTED:68, //键盘精灵选中回车
|
|
6932
|
-
ON_KEYBOARD_MOUSEUP:69,
|
|
6933
|
-
|
|
6934
6940
|
ON_CLICK_DRAWPICTURE_BUTTON:70, //画图工具按钮
|
|
6935
6941
|
ON_FINISH_MOVE_DRAWPICTURE:71, //画图工具移动完成
|
|
6936
6942
|
|
|
@@ -7076,6 +7082,15 @@ var JSCHART_EVENT_ID=
|
|
|
7076
7082
|
|
|
7077
7083
|
//工具条
|
|
7078
7084
|
ON_CLICK_STATUSBAR_ITEM:301,
|
|
7085
|
+
ON_RCLICK_STATUSBAR_ITEM:302,
|
|
7086
|
+
|
|
7087
|
+
//5档买卖
|
|
7088
|
+
ON_CLICK_STOCKINFO_ITEM:350,
|
|
7089
|
+
ON_RCLICK_STOCKINFO_ITEM:351,
|
|
7090
|
+
|
|
7091
|
+
ON_KEYBOARD_SHOW:350, //显示键盘精灵
|
|
7092
|
+
ON_KEYBOARD_SELECTED:351, //键盘精灵选中回车
|
|
7093
|
+
ON_KEYBOARD_MOUSEUP:352,
|
|
7079
7094
|
}
|
|
7080
7095
|
|
|
7081
7096
|
var JSCHART_OPERATOR_ID=
|
|
@@ -31518,6 +31533,7 @@ function IChartPainting()
|
|
|
31518
31533
|
if (!this.IsShow || this.ChartFrame.IsMinSize) return;
|
|
31519
31534
|
var bHScreen=(this.ChartFrame.IsHScreen===true);
|
|
31520
31535
|
if (bHScreen) return;
|
|
31536
|
+
if (!this.Data) return;
|
|
31521
31537
|
|
|
31522
31538
|
var isMinute=this.IsMinuteFrame();
|
|
31523
31539
|
var dataWidth=this.ChartFrame.DataWidth;
|
|
@@ -31658,6 +31674,7 @@ function IChartPainting()
|
|
|
31658
31674
|
if (!this.IsShow || this.ChartFrame.IsMinSize) return null;
|
|
31659
31675
|
var bHScreen=(this.ChartFrame.IsHScreen===true);
|
|
31660
31676
|
if (bHScreen) return null;
|
|
31677
|
+
if (!this.Data) return null;
|
|
31661
31678
|
|
|
31662
31679
|
var dataWidth=this.ChartFrame.DataWidth;
|
|
31663
31680
|
var distanceWidth=this.ChartFrame.DistanceWidth;
|
|
@@ -107195,6 +107212,24 @@ var MARKET_SUFFIX_NAME=
|
|
|
107195
107212
|
return false;
|
|
107196
107213
|
},
|
|
107197
107214
|
|
|
107215
|
+
//是否包含前缀
|
|
107216
|
+
IsPrefixIncludes:function(symbol, aryPrefix)
|
|
107217
|
+
{
|
|
107218
|
+
if (!symbol) return false;
|
|
107219
|
+
var shortSymbol=this.GetShortSymbol(symbol);
|
|
107220
|
+
if (!shortSymbol) return false;
|
|
107221
|
+
shortSymbol=shortSymbol.toUpperCase();
|
|
107222
|
+
|
|
107223
|
+
for(var i=0;i<aryPrefix.length;++i)
|
|
107224
|
+
{
|
|
107225
|
+
var strValue=aryPrefix[i];
|
|
107226
|
+
if (!strValue) continue;
|
|
107227
|
+
if (shortSymbol.search(strValue)===0) return true;
|
|
107228
|
+
}
|
|
107229
|
+
|
|
107230
|
+
return false;
|
|
107231
|
+
},
|
|
107232
|
+
|
|
107198
107233
|
IsChinaFutures:function(upperSymbol) //是否是国内期货 /期权
|
|
107199
107234
|
{
|
|
107200
107235
|
if (!upperSymbol) return false;
|
|
@@ -107309,15 +107344,26 @@ var MARKET_SUFFIX_NAME=
|
|
|
107309
107344
|
return false;
|
|
107310
107345
|
},
|
|
107311
107346
|
|
|
107347
|
+
//北交所股票代码全面启用“920”开头的六位数编码规则(如 920XXX),已于 2025 年 10 月 9 日完成存量与增量股票的统一切换,标志着其与新三板代码的脱钩。
|
|
107348
|
+
// 新代码通常将原 43、83、87 开头的旧代码前三位变更为 920,后三位保持不变
|
|
107312
107349
|
IsBJStock:function(symbol) //北交所股票
|
|
107313
107350
|
{
|
|
107314
107351
|
if (!symbol) return false;
|
|
107315
107352
|
var upperSymbol=symbol.toUpperCase();
|
|
107316
107353
|
if (!this.IsBJ(upperSymbol)) return false;
|
|
107317
107354
|
|
|
107318
|
-
|
|
107355
|
+
if (upperSymbol.charAt(0)=='9' && upperSymbol.charAt(1)=='2' && upperSymbol.charAt(2)=='0') return true;
|
|
107356
|
+
|
|
107357
|
+
return false;
|
|
107358
|
+
},
|
|
107359
|
+
|
|
107360
|
+
IsBJIndex:function(symbol) //北交所指数 北交所指数代码通常以“899”开头,采用6位数字序列
|
|
107361
|
+
{
|
|
107362
|
+
if (!symbol) return false;
|
|
107363
|
+
var upperSymbol=symbol.toUpperCase();
|
|
107364
|
+
if (!this.IsBJ(upperSymbol)) return false;
|
|
107319
107365
|
|
|
107320
|
-
if (
|
|
107366
|
+
if (upperSymbol.charAt(0)=='8' && upperSymbol.charAt(1)=='9' && upperSymbol.charAt(2)=='9') return true;
|
|
107321
107367
|
|
|
107322
107368
|
return false;
|
|
107323
107369
|
},
|
|
@@ -107333,11 +107379,11 @@ var MARKET_SUFFIX_NAME=
|
|
|
107333
107379
|
return false;
|
|
107334
107380
|
},
|
|
107335
107381
|
|
|
107336
|
-
|
|
107382
|
+
IsSZGEM:function(symbol) //创业板(growth enterprise market) 30开头
|
|
107337
107383
|
{
|
|
107338
107384
|
if (!symbol) return false;
|
|
107339
107385
|
var upperSymbol=symbol.toUpperCase();
|
|
107340
|
-
if (!this.
|
|
107386
|
+
if (!this.IsSZ(upperSymbol)) return false;
|
|
107341
107387
|
if (upperSymbol.charAt(0)=='3' && upperSymbol.charAt(1)=='0')
|
|
107342
107388
|
return true;
|
|
107343
107389
|
|
|
@@ -107481,7 +107527,7 @@ var MARKET_SUFFIX_NAME=
|
|
|
107481
107527
|
{
|
|
107482
107528
|
if (!this.IsSHSZStockA(symbol)) return null;
|
|
107483
107529
|
if (this.IsSHStockSTAR(symbol)) return {Max:0.2 , Min:-0.2}; //科创板 [20% - -20%]
|
|
107484
|
-
if (this.
|
|
107530
|
+
if (this.IsSZGEM(symbol)) return { Max:0.2 , Min:-0.2}; //创业板 [20% - -20%]
|
|
107485
107531
|
|
|
107486
107532
|
if (!name) return null;
|
|
107487
107533
|
if (name.indexOf('ST')>=0) return { Max:0.05, Min:-0.05 }; //ST 股票 [5% - -5%]
|
|
@@ -109398,6 +109444,7 @@ function FuturesTimeData()
|
|
|
109398
109444
|
[MARKET_SUFFIX_NAME.SHFE + '-AO', {Time:4,Decimal:0,Name:'氧化铝'}],
|
|
109399
109445
|
[MARKET_SUFFIX_NAME.SHFE + '-BR', {Time:6,Decimal:0,Name:'合成橡胶'}],
|
|
109400
109446
|
[MARKET_SUFFIX_NAME.SHFE + '-AD', {Time:4,Decimal:0,Name:"铝合金"}],
|
|
109447
|
+
[MARKET_SUFFIX_NAME.SHFE + '-OP', {Time:6,Decimal:0,Name:"胶版印刷纸"}],
|
|
109401
109448
|
|
|
109402
109449
|
//上期所-能源
|
|
109403
109450
|
[MARKET_SUFFIX_NAME.SHFE + '-NR', {Time:6,Decimal:1,Name:'20号胶'}],
|
|
@@ -110959,59 +111006,6 @@ function GetfloatPrecision(symbol) //获取小数位数
|
|
|
110959
111006
|
return defaultfloatPrecision;
|
|
110960
111007
|
}
|
|
110961
111008
|
|
|
110962
|
-
//把不连续的分时数据转成连续的分时数据
|
|
110963
|
-
function GenerateMinuteStockJsonData(data)
|
|
110964
|
-
{
|
|
110965
|
-
var stock =
|
|
110966
|
-
{
|
|
110967
|
-
symbol:data.symbol, name:data.name,time:data.time, date:data.date,
|
|
110968
|
-
price:data.price, open:data.open, yclose:data.yclose, high:data.high, low:data.low, vol:data.vol,amount:data.amount,
|
|
110969
|
-
minute:[]
|
|
110970
|
-
};
|
|
110971
|
-
|
|
110972
|
-
var mapMinute=new Map();
|
|
110973
|
-
for(var i in data.minute)
|
|
110974
|
-
{
|
|
110975
|
-
var item=data.minute[i];
|
|
110976
|
-
mapMinute.set(item.time,item);
|
|
110977
|
-
}
|
|
110978
|
-
|
|
110979
|
-
var timeData=g_MinuteTimeStringData.GetTimeData(stock.symbol);
|
|
110980
|
-
for(var i in timeData) //根据交易时间产生数据
|
|
110981
|
-
{
|
|
110982
|
-
var time=timeData[i];
|
|
110983
|
-
var minuteItem={ time:time, vaild:false };
|
|
110984
|
-
if (mapMinute.has(time))
|
|
110985
|
-
{
|
|
110986
|
-
var find=mapMinute.get(time);
|
|
110987
|
-
minuteItem.vaild=true;
|
|
110988
|
-
minuteItem.price=find.price;
|
|
110989
|
-
minuteItem.open=find.open;
|
|
110990
|
-
minuteItem.high=find.high;
|
|
110991
|
-
minuteItem.low=find.low;
|
|
110992
|
-
minuteItem.avprice=find.avprice;
|
|
110993
|
-
minuteItem.vol=find.vol;
|
|
110994
|
-
minuteItem.amount=find.amount;
|
|
110995
|
-
if (IFrameSplitOperator.IsNumber(find.increase)) minuteItem.increase=find.increase;
|
|
110996
|
-
if (IFrameSplitOperator.IsNumber(find.risefall)) minuteItem.risefall=find.risefall;
|
|
110997
|
-
if (IFrameSplitOperator.IsNumber(find.position)) minuteItem.position=find.position;
|
|
110998
|
-
}
|
|
110999
|
-
stock.minute.push(minuteItem);
|
|
111000
|
-
}
|
|
111001
|
-
|
|
111002
|
-
var vaildCount=0;
|
|
111003
|
-
for(var i=stock.minute.length-1;i>=0;--i)
|
|
111004
|
-
{
|
|
111005
|
-
vaildCount=i+1;
|
|
111006
|
-
var item=stock.minute[i];
|
|
111007
|
-
if (item.vaild==true) break;
|
|
111008
|
-
}
|
|
111009
|
-
|
|
111010
|
-
stock.minute=stock.minute.slice(0,vaildCount); //去掉最后无用的数据
|
|
111011
|
-
|
|
111012
|
-
return stock;
|
|
111013
|
-
}
|
|
111014
|
-
|
|
111015
111009
|
function GetLocalTime(i) //得到标准时区的时间的函数
|
|
111016
111010
|
{
|
|
111017
111011
|
if (typeof i !== 'number') return;
|
|
@@ -143122,6 +143116,7 @@ function JSReportChartContainer(uielement)
|
|
|
143122
143116
|
this.DestroyMinuteChartTooltip();
|
|
143123
143117
|
this.DestroyKLineChartTooltip();
|
|
143124
143118
|
this.DestroyFloatTooltip();
|
|
143119
|
+
this.DestroyPopMenu();
|
|
143125
143120
|
}
|
|
143126
143121
|
|
|
143127
143122
|
this.StopAutoDragScrollTimer=function()
|
|
@@ -143143,6 +143138,14 @@ function JSReportChartContainer(uielement)
|
|
|
143143
143138
|
this.JSPopMenu.Inital();
|
|
143144
143139
|
}
|
|
143145
143140
|
|
|
143141
|
+
this.DestroyPopMenu=function()
|
|
143142
|
+
{
|
|
143143
|
+
if (!this.JSPopMenu) return;
|
|
143144
|
+
|
|
143145
|
+
this.JSPopMenu.Destroy();
|
|
143146
|
+
this.JSPopMenu=null;
|
|
143147
|
+
}
|
|
143148
|
+
|
|
143146
143149
|
this.InitalMinuteChartTooltip=function(option)
|
|
143147
143150
|
{
|
|
143148
143151
|
if (this.TooltipMinuteChart) return;
|
|
@@ -160818,6 +160821,7 @@ function JSDialogDrawTool()
|
|
|
160818
160821
|
this.Close=function(e)
|
|
160819
160822
|
{
|
|
160820
160823
|
if (!this.DivDialog) return;
|
|
160824
|
+
if (!this.IsShow()) return;
|
|
160821
160825
|
|
|
160822
160826
|
this.DivDialog.style.visibility='hidden';
|
|
160823
160827
|
|
|
@@ -161163,6 +161167,8 @@ function JSDialogModifyDraw()
|
|
|
161163
161167
|
if (!this.DivDialog) return;
|
|
161164
161168
|
|
|
161165
161169
|
this.ChartPicture=null;
|
|
161170
|
+
if (!this.IsShow()) return;
|
|
161171
|
+
|
|
161166
161172
|
this.DivDialog.style.visibility='hidden';
|
|
161167
161173
|
|
|
161168
161174
|
if (this.HQChart) this.HQChart.RestoreFocus(this.RestoreFocusDelay);
|
|
@@ -163308,6 +163314,21 @@ function JSPopKeyboard()
|
|
|
163308
163314
|
var x=xRight-width;
|
|
163309
163315
|
var y=ybottom-height;
|
|
163310
163316
|
|
|
163317
|
+
if (this.Keyboard.JSChart && this.Keyboard.JSChart.JSChartContainer)
|
|
163318
|
+
{
|
|
163319
|
+
var event=this.Keyboard.JSChart.JSChartContainer.GetEventCallback(JSCHART_EVENT_ID.ON_KEYBOARD_SHOW);
|
|
163320
|
+
if (event && event.Callback)
|
|
163321
|
+
{
|
|
163322
|
+
var data={ PreventDefault:false, Y:y, X:x, Height:height, Width:width };
|
|
163323
|
+
event.Callback(event, data, this);
|
|
163324
|
+
if (data.PreventDefault) return;
|
|
163325
|
+
|
|
163326
|
+
//修改显示位置
|
|
163327
|
+
x=data.X;
|
|
163328
|
+
y=data.Y;
|
|
163329
|
+
}
|
|
163330
|
+
}
|
|
163331
|
+
|
|
163311
163332
|
this.DivDialog.style.visibility='visible';
|
|
163312
163333
|
this.DivDialog.style.top = y + "px";
|
|
163313
163334
|
this.DivDialog.style.left = x + "px";
|
|
@@ -163333,6 +163354,19 @@ function JSPopKeyboard()
|
|
|
163333
163354
|
return this.DivDialog.style.visibility==='visible';
|
|
163334
163355
|
}
|
|
163335
163356
|
|
|
163357
|
+
this.PopKeyboard=function(search)
|
|
163358
|
+
{
|
|
163359
|
+
if (!this.DivDialog) return;
|
|
163360
|
+
if (this.IsShow()) return;
|
|
163361
|
+
|
|
163362
|
+
this.Show();
|
|
163363
|
+
this.InputDOM.focus();
|
|
163364
|
+
if (this.InputDOM.value=="")
|
|
163365
|
+
{
|
|
163366
|
+
if (search) this.InputDOM.value=search;
|
|
163367
|
+
}
|
|
163368
|
+
}
|
|
163369
|
+
|
|
163336
163370
|
this.OnGlobalKeydown=function(event)
|
|
163337
163371
|
{
|
|
163338
163372
|
if (!this.DivDialog) return;
|
|
@@ -169094,10 +169128,19 @@ function JSStatusBarChartContainer(uielement)
|
|
|
169094
169128
|
var x = (e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;
|
|
169095
169129
|
var y = (e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;
|
|
169096
169130
|
|
|
169097
|
-
if (e
|
|
169131
|
+
if (e)
|
|
169098
169132
|
{
|
|
169099
|
-
|
|
169100
|
-
|
|
169133
|
+
if (e.button==0) //左键点击
|
|
169134
|
+
{
|
|
169135
|
+
var ptClick={ X:this.ClickDownPoint.X, Y:this.ClickDownPoint.Y };
|
|
169136
|
+
this.TryClickPaintEvent(JSCHART_EVENT_ID.ON_CLICK_STATUSBAR_ITEM, ptClick, e);
|
|
169137
|
+
}
|
|
169138
|
+
else if (e.button==2) //右键点击
|
|
169139
|
+
{
|
|
169140
|
+
this.HideAllTooltip();
|
|
169141
|
+
var ptClick={ X:this.ClickDownPoint.X, Y:this.ClickDownPoint.Y };
|
|
169142
|
+
this.TryClickPaintEvent(JSCHART_EVENT_ID.ON_RCLICK_STATUSBAR_ITEM, ptClick, e);
|
|
169143
|
+
}
|
|
169101
169144
|
}
|
|
169102
169145
|
}
|
|
169103
169146
|
|
|
@@ -169183,7 +169226,7 @@ function JSStatusBarChartContainer(uielement)
|
|
|
169183
169226
|
{
|
|
169184
169227
|
if (toolTip.Data)
|
|
169185
169228
|
{
|
|
169186
|
-
var data= { X:e.clientX, Y:e.clientY, Tooltip:toolTip };
|
|
169229
|
+
var data= { X:e.clientX, Y:e.clientY, Tooltip:toolTip, e:e };
|
|
169187
169230
|
event.Callback(event, data, this);
|
|
169188
169231
|
return true;
|
|
169189
169232
|
}
|
|
@@ -169912,6 +169955,7 @@ function JSStockInfoChart(divElement)
|
|
|
169912
169955
|
this.DivElement.JSChart=this; //div中保存一份
|
|
169913
169956
|
|
|
169914
169957
|
if (option.EnableResize==true) this.CreateResizeListener();
|
|
169958
|
+
if (option.EnablePopMenuV2===true) chart.InitalPopMenu();
|
|
169915
169959
|
|
|
169916
169960
|
if (option.Symbol)
|
|
169917
169961
|
{
|
|
@@ -170113,6 +170157,8 @@ function JSStockInfoChartContainer(uielement)
|
|
|
170113
170157
|
this.AutoUpdateTimer=null;
|
|
170114
170158
|
this.AutoUpdateFrequency=15000; //15秒更新一次数据
|
|
170115
170159
|
|
|
170160
|
+
this.JSPopMenu; //内置菜单
|
|
170161
|
+
|
|
170116
170162
|
this.UIElement=uielement;
|
|
170117
170163
|
|
|
170118
170164
|
this.IsDestroy=false; //是否已经销毁了
|
|
@@ -170121,6 +170167,8 @@ function JSStockInfoChartContainer(uielement)
|
|
|
170121
170167
|
{
|
|
170122
170168
|
this.IsDestroy=true;
|
|
170123
170169
|
this.StopAutoUpdate();
|
|
170170
|
+
|
|
170171
|
+
this.DestroyPopMenu();
|
|
170124
170172
|
}
|
|
170125
170173
|
|
|
170126
170174
|
//设置事件回调
|
|
@@ -170133,6 +170181,37 @@ function JSStockInfoChartContainer(uielement)
|
|
|
170133
170181
|
this.mapEvent.set(object.event,data);
|
|
170134
170182
|
}
|
|
170135
170183
|
|
|
170184
|
+
this.RemoveEventCallback=function(eventid)
|
|
170185
|
+
{
|
|
170186
|
+
if (!this.mapEvent.has(eventid)) return;
|
|
170187
|
+
|
|
170188
|
+
this.mapEvent.delete(eventid);
|
|
170189
|
+
}
|
|
170190
|
+
|
|
170191
|
+
this.GetEventCallback=function(id) //获取事件回调
|
|
170192
|
+
{
|
|
170193
|
+
if (!this.mapEvent.has(id)) return null;
|
|
170194
|
+
var item=this.mapEvent.get(id);
|
|
170195
|
+
return item;
|
|
170196
|
+
}
|
|
170197
|
+
|
|
170198
|
+
this.InitalPopMenu=function() //初始化弹出窗口
|
|
170199
|
+
{
|
|
170200
|
+
if (this.JSPopMenu) return;
|
|
170201
|
+
|
|
170202
|
+
this.JSPopMenu=new JSPopMenu(); //内置菜单
|
|
170203
|
+
this.JSPopMenu.Inital();
|
|
170204
|
+
}
|
|
170205
|
+
|
|
170206
|
+
this.DestroyPopMenu=function()
|
|
170207
|
+
{
|
|
170208
|
+
if (!this.JSPopMenu) return;
|
|
170209
|
+
|
|
170210
|
+
this.JSPopMenu.Destroy();
|
|
170211
|
+
this.JSPopMenu=null;
|
|
170212
|
+
}
|
|
170213
|
+
|
|
170214
|
+
|
|
170136
170215
|
this.ClearData=function()
|
|
170137
170216
|
{
|
|
170138
170217
|
this.Data.Name=null;
|
|
@@ -170174,14 +170253,15 @@ function JSStockInfoChartContainer(uielement)
|
|
|
170174
170253
|
{
|
|
170175
170254
|
this.CancelAutoUpdate();
|
|
170176
170255
|
this.ClearData();
|
|
170256
|
+
this.ChartClearMouseOnData();
|
|
170177
170257
|
this.Symbol=symbol;
|
|
170178
170258
|
this.Data.Symbol=symbol;
|
|
170179
170259
|
|
|
170180
170260
|
if (option)
|
|
170181
170261
|
{
|
|
170182
|
-
if (IFrameSplitOperator.
|
|
170262
|
+
if (IFrameSplitOperator.IsArray(option.Column)) this.SetColumn(option.Column);
|
|
170183
170263
|
if (IFrameSplitOperator.IsNumber(option.BuySellCount)) this.SetBuySellCount(option.BuySellCount);
|
|
170184
|
-
if (IFrameSplitOperator.
|
|
170264
|
+
if (IFrameSplitOperator.IsArray(option.MouseOnKey)) this.SetMouseOnKey(option.MouseOnKey);
|
|
170185
170265
|
}
|
|
170186
170266
|
|
|
170187
170267
|
this.Draw();
|
|
@@ -170346,6 +170426,20 @@ function JSStockInfoChartContainer(uielement)
|
|
|
170346
170426
|
this.ClickDownPoint={ X:e.clientX, Y:e.clientY };
|
|
170347
170427
|
var x = (e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;
|
|
170348
170428
|
var y = (e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;
|
|
170429
|
+
|
|
170430
|
+
if (e)
|
|
170431
|
+
{
|
|
170432
|
+
if (e.button==0) //左键点击
|
|
170433
|
+
{
|
|
170434
|
+
var ptClick={ X:this.ClickDownPoint.X, Y:this.ClickDownPoint.Y };
|
|
170435
|
+
this.TryClickPaintEvent(JSCHART_EVENT_ID.ON_CLICK_STOCKINFO_ITEM, ptClick, e);
|
|
170436
|
+
}
|
|
170437
|
+
else if (e.button==2) //右键点击
|
|
170438
|
+
{
|
|
170439
|
+
var ptClick={ X:this.ClickDownPoint.X, Y:this.ClickDownPoint.Y };
|
|
170440
|
+
this.TryClickPaintEvent(JSCHART_EVENT_ID.ON_RCLICK_STOCKINFO_ITEM, ptClick, e);
|
|
170441
|
+
}
|
|
170442
|
+
}
|
|
170349
170443
|
}
|
|
170350
170444
|
|
|
170351
170445
|
this.UIOnContextMenu=function(e)
|
|
@@ -170356,6 +170450,87 @@ function JSStockInfoChartContainer(uielement)
|
|
|
170356
170450
|
if (e.stopPropagation) e.stopPropagation();
|
|
170357
170451
|
e.returnValue=false;
|
|
170358
170452
|
}
|
|
170453
|
+
|
|
170454
|
+
var x = e.clientX-this.UIElement.getBoundingClientRect().left;
|
|
170455
|
+
var y = e.clientY-this.UIElement.getBoundingClientRect().top;
|
|
170456
|
+
|
|
170457
|
+
this.OnRightMenu(x, y, e);
|
|
170458
|
+
}
|
|
170459
|
+
|
|
170460
|
+
this.OnRightMenu=function(x,y,e)
|
|
170461
|
+
{
|
|
170462
|
+
if (!this.JSPopMenu) return;
|
|
170463
|
+
|
|
170464
|
+
var pixelTatio = GetDevicePixelRatio();
|
|
170465
|
+
var toolTip=new TooltipData();
|
|
170466
|
+
var data=null;
|
|
170467
|
+
for(var i=0;i<this.ChartPaint.length;++i)
|
|
170468
|
+
{
|
|
170469
|
+
var item=this.ChartPaint[i];
|
|
170470
|
+
if (item.GetTooltipData(x*pixelTatio,y*pixelTatio,toolTip))
|
|
170471
|
+
{
|
|
170472
|
+
if (toolTip.Data)
|
|
170473
|
+
{
|
|
170474
|
+
data= { Cell:toolTip.Data};
|
|
170475
|
+
break;
|
|
170476
|
+
}
|
|
170477
|
+
}
|
|
170478
|
+
}
|
|
170479
|
+
|
|
170480
|
+
if (!data) return;
|
|
170481
|
+
|
|
170482
|
+
data.e=e;
|
|
170483
|
+
var menuData={ Menu:null, Position:JSPopMenu.POSITION_ID.RIGHT_MENU_ID };
|
|
170484
|
+
menuData.ClickCallback=(data)=>{ this.OnClickRightMenu(data); }
|
|
170485
|
+
|
|
170486
|
+
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_CREATE_RIGHT_MENU);
|
|
170487
|
+
if (event && event.Callback)
|
|
170488
|
+
{
|
|
170489
|
+
var sendData={ MenuData:menuData, Data:data };
|
|
170490
|
+
event.Callback(event, sendData, this);
|
|
170491
|
+
}
|
|
170492
|
+
|
|
170493
|
+
if (menuData.Menu) this.PopupMenuByRClick(menuData, x, y);
|
|
170494
|
+
}
|
|
170495
|
+
|
|
170496
|
+
//右键菜单
|
|
170497
|
+
this.PopupMenuByRClick=function(menuData, x, y)
|
|
170498
|
+
{
|
|
170499
|
+
if (!this.JSPopMenu) return;
|
|
170500
|
+
|
|
170501
|
+
var rtClient=this.UIElement.getBoundingClientRect();
|
|
170502
|
+
var rtScroll=GetScrollPosition();
|
|
170503
|
+
|
|
170504
|
+
x+=rtClient.left+rtScroll.Left;
|
|
170505
|
+
y+=rtClient.top+rtScroll.Top;
|
|
170506
|
+
|
|
170507
|
+
this.JSPopMenu.CreatePopMenu(menuData);
|
|
170508
|
+
this.JSPopMenu.PopupMenuByRight(x,y);
|
|
170509
|
+
}
|
|
170510
|
+
|
|
170511
|
+
//点击右键菜单
|
|
170512
|
+
this.OnClickRightMenu=function(data)
|
|
170513
|
+
{
|
|
170514
|
+
JSConsole.Chart.Log('[JSStockInfoChartContainer::OnClickRightMenu] ',data);
|
|
170515
|
+
if (!data || !data.Data) return;
|
|
170516
|
+
|
|
170517
|
+
var cmdID=data.Data.ID; //命令ID
|
|
170518
|
+
var aryArgs=data.Data.Args; //参数
|
|
170519
|
+
|
|
170520
|
+
var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_MENU_COMMAND); //回调通知外部
|
|
170521
|
+
if (event && event.Callback)
|
|
170522
|
+
{
|
|
170523
|
+
var data={ PreventDefault:false, CommandID:cmdID, Args:aryArgs, SrcData:data };
|
|
170524
|
+
event.Callback(event,data,this);
|
|
170525
|
+
if (data.PreventDefault) return;
|
|
170526
|
+
}
|
|
170527
|
+
|
|
170528
|
+
this.ExecuteMenuCommand(cmdID, aryArgs);
|
|
170529
|
+
}
|
|
170530
|
+
|
|
170531
|
+
this.ExecuteMenuCommand=function(cmdID, aryArgs)
|
|
170532
|
+
{
|
|
170533
|
+
|
|
170359
170534
|
}
|
|
170360
170535
|
|
|
170361
170536
|
this.UIOnMouseMove=function(e)
|
|
@@ -170385,6 +170560,36 @@ function JSStockInfoChartContainer(uielement)
|
|
|
170385
170560
|
return false;
|
|
170386
170561
|
}
|
|
170387
170562
|
|
|
170563
|
+
this.TryClickPaintEvent=function(eventID, ptClick, e)
|
|
170564
|
+
{
|
|
170565
|
+
var event=this.GetEventCallback(eventID);
|
|
170566
|
+
if (!event) return false;
|
|
170567
|
+
|
|
170568
|
+
if (ptClick.X==e.clientX && ptClick.Y==e.clientY)
|
|
170569
|
+
{
|
|
170570
|
+
var pixelTatio = GetDevicePixelRatio();
|
|
170571
|
+
var x = (e.clientX-uielement.getBoundingClientRect().left)*pixelTatio;
|
|
170572
|
+
var y = (e.clientY-uielement.getBoundingClientRect().top)*pixelTatio;
|
|
170573
|
+
|
|
170574
|
+
var toolTip=new TooltipData();
|
|
170575
|
+
for(var i=0;i<this.ChartPaint.length;++i)
|
|
170576
|
+
{
|
|
170577
|
+
var item=this.ChartPaint[i];
|
|
170578
|
+
if (item.GetTooltipData(x,y,toolTip))
|
|
170579
|
+
{
|
|
170580
|
+
if (toolTip.Data)
|
|
170581
|
+
{
|
|
170582
|
+
var data= { X:e.clientX, Y:e.clientY, Tooltip:toolTip };
|
|
170583
|
+
event.Callback(event, data, this);
|
|
170584
|
+
return true;
|
|
170585
|
+
}
|
|
170586
|
+
}
|
|
170587
|
+
}
|
|
170588
|
+
}
|
|
170589
|
+
|
|
170590
|
+
return false;
|
|
170591
|
+
}
|
|
170592
|
+
|
|
170388
170593
|
this.UIOnMouseleave=function(e)
|
|
170389
170594
|
{
|
|
170390
170595
|
var option={ Update:false }
|
|
@@ -170670,7 +170875,7 @@ function ChartStockData()
|
|
|
170670
170875
|
|
|
170671
170876
|
this.ClearMouseOnData=function(option)
|
|
170672
170877
|
{
|
|
170673
|
-
if (
|
|
170878
|
+
if (this.MouseOnItem)
|
|
170674
170879
|
{
|
|
170675
170880
|
this.MouseOnItem=null;
|
|
170676
170881
|
if (option) option.Update=true; //需要更新
|
|
@@ -170749,6 +170954,26 @@ function ChartStockData()
|
|
|
170749
170954
|
return false;
|
|
170750
170955
|
}
|
|
170751
170956
|
|
|
170957
|
+
this.GetTooltipData=function(x,y,tooltip)
|
|
170958
|
+
{
|
|
170959
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.AryCellRect)) return false;
|
|
170960
|
+
|
|
170961
|
+
for(var i=0;i<this.AryCellRect.length;++i)
|
|
170962
|
+
{
|
|
170963
|
+
var item=this.AryCellRect[i];
|
|
170964
|
+
var rect=item.Rect;
|
|
170965
|
+
if (Path2DHelper.PtInRect(x,y, rect))
|
|
170966
|
+
{
|
|
170967
|
+
tooltip.Data=item;
|
|
170968
|
+
tooltip.ChartPaint=this;
|
|
170969
|
+
tooltip.Type=151;
|
|
170970
|
+
return true;
|
|
170971
|
+
}
|
|
170972
|
+
}
|
|
170973
|
+
|
|
170974
|
+
return false;
|
|
170975
|
+
}
|
|
170976
|
+
|
|
170752
170977
|
this.Draw=function()
|
|
170753
170978
|
{
|
|
170754
170979
|
this.AryCellRect=[];
|
|
@@ -171250,7 +171475,7 @@ function ChartStockData()
|
|
|
171250
171475
|
|
|
171251
171476
|
|
|
171252
171477
|
|
|
171253
|
-
var HQCHART_VERSION="1.1.
|
|
171478
|
+
var HQCHART_VERSION="1.1.15473";
|
|
171254
171479
|
|
|
171255
171480
|
function PrintHQChartVersion()
|
|
171256
171481
|
{
|