hqchart 1.1.13085 → 1.1.13095

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.
@@ -1420,7 +1420,8 @@ ON_DBCLICK_TREPORT_ROW:122,//双击T型报报价列表
1420
1420
  ON_RCLICK_TREPORT_ROW:123,//右键点击T型报价列表
1421
1421
  ON_CLICK_TREPORT_HEADER:124,//单击T型报价表头
1422
1422
  ON_RCLICK_TREPORT_HEADER:125,//右键点击T型报价表头
1423
- ON_TREPORT_LOCAL_SORT:126//T型报价列表本地排序
1423
+ ON_TREPORT_LOCAL_SORT:126,//T型报价列表本地排序
1424
+ ON_CLICK_TREPORT_ROW:127//左键点击点击T型报价列表
1424
1425
  };var JSCHART_OPERATOR_ID={OP_SCROLL_LEFT:1,//往左移动
1425
1426
  OP_SCROLL_RIGHT:2,//往右移动
1426
1427
  OP_ZOOM_OUT:3,//缩小
@@ -9070,7 +9071,7 @@ function FuturesTimeData(){this.TIME_SPLIT=[//ID=0 9:00-10:15,10:31-11:30,13:31-
9070
9071
  [MARKET_SUFFIX_NAME.SHFE+'-CU',{Time:4,Decimal:0,Name:"铜"}],[MARKET_SUFFIX_NAME.SHFE+'-AL',{Time:4,Decimal:0,Name:"铝"}],[MARKET_SUFFIX_NAME.SHFE+'-NI',{Time:4,Decimal:0,Name:"镍"}],[MARKET_SUFFIX_NAME.SHFE+'-SN',{Time:4,Decimal:0,Name:'沪锡'}],[MARKET_SUFFIX_NAME.SHFE+'-ZN',{Time:4,Decimal:0,Name:"沪锌"}],[MARKET_SUFFIX_NAME.SHFE+'-PB',{Time:4,Decimal:0,Name:'沪铅'}],[MARKET_SUFFIX_NAME.SHFE+'-RU',{Time:6,Decimal:0,Name:"天然橡胶"}],[MARKET_SUFFIX_NAME.SHFE+'-FU',{Time:6,Decimal:0,Name:"燃料油"}],[MARKET_SUFFIX_NAME.SHFE+'-RB',{Time:6,Decimal:0,Name:"螺纹钢"}],[MARKET_SUFFIX_NAME.SHFE+'-BU',{Time:6,Decimal:0,Name:'石油沥青'}],[MARKET_SUFFIX_NAME.SHFE+'-HC',{Time:6,Decimal:0,Name:"热轧卷板"}],[MARKET_SUFFIX_NAME.SHFE+'-SP',{Time:6,Decimal:0,Name:"纸浆"}],[MARKET_SUFFIX_NAME.SHFE+'-WR',{Time:0,Decimal:0,Name:"线材"}],[MARKET_SUFFIX_NAME.SHFE+'-AG',{Time:5,Decimal:0,Name:"白银"}],[MARKET_SUFFIX_NAME.SHFE+'-AU',{Time:5,Decimal:2,Name:"黄金"}],[MARKET_SUFFIX_NAME.SHFE+'-SS',{Time:4,Decimal:0,Name:'不锈钢'}],[MARKET_SUFFIX_NAME.SHFE+'-AO',{Time:4,Decimal:0,Name:'氧化铝'}],[MARKET_SUFFIX_NAME.SHFE+'-BR',{Time:6,Decimal:0,Name:'合成橡胶'}],//上期所-能源
9071
9072
  [MARKET_SUFFIX_NAME.SHFE+'-NR',{Time:6,Decimal:1,Name:'20号胶'}],[MARKET_SUFFIX_NAME.SHFE+'-SC',{Time:5,Decimal:1,Name:'原油'}],[MARKET_SUFFIX_NAME.SHFE+'-LU',{Time:6,Decimal:0,Name:'低硫燃油'}],[MARKET_SUFFIX_NAME.SHFE+'-BC',{Time:4,Decimal:0,Name:'国际铜'}],//郑州期货交易所
9072
9073
  [MARKET_SUFFIX_NAME.CZCE+'-CF',{Time:6,Decimal:0,Name:"棉花"}],[MARKET_SUFFIX_NAME.CZCE+'-SR',{Time:6,Decimal:0,Name:"白糖"}],[MARKET_SUFFIX_NAME.CZCE+'-MA',{Time:6,Decimal:0,Name:"甲醇"}],[MARKET_SUFFIX_NAME.CZCE+'-ZC',{Time:6,Decimal:1,Name:'动力煤'}],[MARKET_SUFFIX_NAME.CZCE+'-TA',{Time:6,Decimal:0,Name:"精对苯二甲酸(PTA)"}],[MARKET_SUFFIX_NAME.CZCE+'-RM',{Time:6,Decimal:0,Name:'菜籽粕'}],[MARKET_SUFFIX_NAME.CZCE+'-OI',{Time:6,Decimal:0,Name:"菜籽油"}],[MARKET_SUFFIX_NAME.CZCE+'-ME',{Time:3,Decimal:0,Name:"甲醇(老)"}],[MARKET_SUFFIX_NAME.CZCE+'-FG',{Time:6,Decimal:0,Name:'平板玻璃'}],[MARKET_SUFFIX_NAME.CZCE+'-WS',{Time:0,Decimal:0}],[MARKET_SUFFIX_NAME.CZCE+'-WT',{Time:0,Decimal:0}],[MARKET_SUFFIX_NAME.CZCE+'-GN',{Time:0,Decimal:0}],[MARKET_SUFFIX_NAME.CZCE+'-RO',{Time:0,Decimal:0}],[MARKET_SUFFIX_NAME.CZCE+'-RS',{Time:0,Decimal:0,Name:"菜籽"}],[MARKET_SUFFIX_NAME.CZCE+'-ER',{Time:0,Decimal:0}],[MARKET_SUFFIX_NAME.CZCE+'-RI',{Time:0,Decimal:0,Name:"早籼稻"}],[MARKET_SUFFIX_NAME.CZCE+'-WH',{Time:0,Decimal:0,Name:"强麦"}],[MARKET_SUFFIX_NAME.CZCE+'-AP',{Time:0,Decimal:0,Name:"苹果"}],[MARKET_SUFFIX_NAME.CZCE+'-PM',{Time:0,Decimal:0,Name:"普麦"}],[MARKET_SUFFIX_NAME.CZCE+'-QM',{Time:0,Decimal:0}],[MARKET_SUFFIX_NAME.CZCE+'-TC',{Time:0,Decimal:0}],[MARKET_SUFFIX_NAME.CZCE+'-JR',{Time:0,Decimal:0,Name:"粳稻"}],[MARKET_SUFFIX_NAME.CZCE+'-LR',{Time:0,Decimal:0,Name:"晚籼稻"}],[MARKET_SUFFIX_NAME.CZCE+'-SF',{Time:0,Decimal:0,Name:"硅铁"}],[MARKET_SUFFIX_NAME.CZCE+'-SM',{Time:0,Decimal:0,Name:"锰硅"}],[MARKET_SUFFIX_NAME.CZCE+'-CJ',{Time:0,Decimal:2,Name:"红枣"}],[MARKET_SUFFIX_NAME.CZCE+'-CY',{Time:6,Decimal:0,Name:"棉纱"}],[MARKET_SUFFIX_NAME.CZCE+'-UR',{Time:0,Decimal:0,Name:"尿素"}],[MARKET_SUFFIX_NAME.CZCE+'-SA',{Time:6,Decimal:0,Name:"纯碱"}],[MARKET_SUFFIX_NAME.CZCE+'-PF',{Time:6,Decimal:0,Name:"短纤"}],[MARKET_SUFFIX_NAME.CZCE+'-PK',{Time:0,Decimal:0,Name:"花生"}],//中期所
9073
- [MARKET_SUFFIX_NAME.CFFEX+'-TF',{Time:1,Decimal:3,Name:"二债"}],[MARKET_SUFFIX_NAME.CFFEX+'-TS',{Time:1,Decimal:3,Name:"五债"}],[MARKET_SUFFIX_NAME.CFFEX+'-IH',{Time:2,Decimal:1,Name:'上证股指期货'}],[MARKET_SUFFIX_NAME.CFFEX+'-IC',{Time:2,Decimal:1,Name:'中证股指期货'}],[MARKET_SUFFIX_NAME.CFFEX+'-IF',{Time:2,Decimal:1,Name:'沪深股指期货'}],[MARKET_SUFFIX_NAME.CFFEX+'-IM',{Time:2,Decimal:1,Name:'中证1000股指期货'}],//广州期货交易所
9074
+ [MARKET_SUFFIX_NAME.CFFEX+'-TF',{Time:1,Decimal:3,Name:"二债"}],[MARKET_SUFFIX_NAME.CFFEX+'-TS',{Time:1,Decimal:3,Name:"五债"}],[MARKET_SUFFIX_NAME.CFFEX+'-IH',{Time:2,Decimal:1,Name:'上证股指期货'}],[MARKET_SUFFIX_NAME.CFFEX+'-IC',{Time:2,Decimal:1,Name:'中证股指期货'}],[MARKET_SUFFIX_NAME.CFFEX+'-IF',{Time:2,Decimal:1,Name:'沪深股指期货'}],[MARKET_SUFFIX_NAME.CFFEX+'-IM',{Time:2,Decimal:1,Name:'中证1000股指期货'}],[MARKET_SUFFIX_NAME.CFFEX+'-IO',{Time:2,Decimal:1,Name:'沪深300股指期权'}],[MARKET_SUFFIX_NAME.CFFEX+'-MO',{Time:2,Decimal:1,Name:'中证1000股指期权'}],[MARKET_SUFFIX_NAME.CFFEX+'-HO',{Time:2,Decimal:1,Name:'上证50股指期权'}],//广州期货交易所
9074
9075
  [MARKET_SUFFIX_NAME.GZFE+'-SI',{Time:0,Decimal:2,Name:"工业硅"}],[MARKET_SUFFIX_NAME.GZFE+'-LC',{Time:0,Decimal:2,Name:"碳酸锂"}]]);this.MAP_ONEWORD=new _map2.default([//大连商品交易所
9075
9076
  [MARKET_SUFFIX_NAME.DCE+'-C',{Time:6,Decimal:0,Name:"玉米"}],[MARKET_SUFFIX_NAME.DCE+'-L',{Time:6,Decimal:0,Name:"乙烯"}],[MARKET_SUFFIX_NAME.DCE+'-V',{Time:6,Decimal:0,Name:"PVC"}],[MARKET_SUFFIX_NAME.DCE+'-A',{Time:6,Decimal:0,Name:"豆一"}],[MARKET_SUFFIX_NAME.DCE+'-B',{Time:6,Decimal:0,Name:"豆二"}],[MARKET_SUFFIX_NAME.DCE+'-M',{Time:6,Decimal:0,Name:"豆粕"}],[MARKET_SUFFIX_NAME.DCE+'-Y',{Time:6,Decimal:0,Name:"豆油"}],[MARKET_SUFFIX_NAME.DCE+'-P',{Time:6,Decimal:0,Name:"棕榈"}],[MARKET_SUFFIX_NAME.DCE+'-J',{Time:6,Decimal:1,Name:'焦炭'}],[MARKET_SUFFIX_NAME.DCE+'-I',{Time:6,Decimal:1,Name:"铁矿"}],//中期所
9076
9077
  [MARKET_SUFFIX_NAME.CFFEX+'-T',{Time:1,Decimal:3,Name:"十债"}]]);//添加新品种
@@ -12499,7 +12500,7 @@ this.ChangeSymbol=function(symbol,option){if(this.JSChartContainer)this.JSChartC
12499
12500
  this.AddEventCallback=function(obj){if(this.JSChartContainer&&typeof this.JSChartContainer.AddEventCallback=='function'){JSConsole.Chart.Log('[JSTReportChart:AddEventCallback] obj=',obj);this.JSChartContainer.AddEventCallback(obj);}};//重新加载配置
12500
12501
  this.ReloadResource=function(option){if(this.JSChartContainer&&typeof this.JSChartContainer.ReloadResource=='function'){JSConsole.Chart.Log('[JSTReportChart:ReloadResource] ');this.JSChartContainer.ReloadResource(option);}};this.ChartDestory=function(){if(this.JSChartContainer&&typeof this.JSChartContainer.ChartDestory=='function'){this.JSChartContainer.ChartDestory();}};this.Draw=function(){if(this.JSChartContainer&&typeof this.JSChartContainer.Draw=='function'){JSConsole.Chart.Log('[JSTReportChart:Draw] ');this.JSChartContainer.Draw();}};}JSTReportChart.Init=function(divElement){var jsChartControl=new JSTReportChart(divElement);jsChartControl.OnSize();return jsChartControl;};//自定义风格
12501
12502
  JSTReportChart.SetStyle=function(option){if(option)g_JSChartResource.SetStyle(option);};//获取颜色配置 (设置配必须啊在JSChart.Init()之前)
12502
- JSTReportChart.GetResource=function(){return g_JSChartResource;};function HQTReportItem(){this.Symbol;this.Name;this.YClose;this.Open;this.Price;this.High;this.Low;this.Amount;this.Vol;this.Positon;//持仓量
12503
+ JSTReportChart.GetResource=function(){return g_JSChartResource;};JSTReportChart.GetfloatPrecision=function(symbol){return GetfloatPrecision(symbol);};function HQTReportItem(){this.Symbol;this.Name;this.YClose;this.Open;this.Price;this.High;this.Low;this.Amount;this.Vol;this.Positon;//持仓量
12503
12504
  this.Increase;//涨幅
12504
12505
  this.UpDown;//涨跌
12505
12506
  this.Exchange;//换手
@@ -12519,7 +12520,7 @@ this.SplashTitle={StockList:"下载码表中....."};this.Canvas=uielement.getCon
12519
12520
  this.Tooltip=document.createElement("div");this.Tooltip.className='jstreport-tooltip';this.Tooltip.style.background=g_JSChartResource.TooltipBGColor;this.Tooltip.style.opacity=g_JSChartResource.TooltipAlpha;this.Tooltip.style["pointer-events"]="none";this.Tooltip.id=Guid();uielement.parentNode.appendChild(this.Tooltip);this.Symbol;//期权对应的品种代码
12520
12521
  this.Name;//期权对应的品种名称
12521
12522
  this.NetworkFilter;//数据回调接口
12522
- this.Data={XOffset:0,YOffset:0,Data:[],BaseExePrice:null};//股票列表 BaseExePrice=基准
12523
+ this.Data={XOffset:0,YOffset:0,Data:[],Price:null};//股票列表 Price=标的物市场价格
12523
12524
  this.BorderData={MapData:null};//key=Field Value:[null, {ExePrice} ,{ExePrice} ]
12524
12525
  this.SourceData={Data:[]};//原始股票顺序(排序还原用) {ExePrice=行权价格 LeftData:, RightData}
12525
12526
  this.DelayUpdateTimer=null;//延迟更新
@@ -12560,7 +12561,7 @@ this.UIElement.ondblclick=function(e){_this55.UIOnDblClick(e);};this.UIElement.o
12560
12561
  */};this.Draw=function(){if(this.UIElement.width<=0||this.UIElement.height<=0)return;this.Canvas.clearRect(0,0,this.UIElement.width,this.UIElement.height);var pixelTatio=GetDevicePixelRatio();//获取设备的分辨率
12561
12562
  this.Canvas.lineWidth=pixelTatio;//手机端需要根据分辨率比调整线段宽度
12562
12563
  if(this.ChartSplashPaint&&this.ChartSplashPaint.IsEnableSplash){this.Frame.Draw({IsEnableSplash:this.ChartSplashPaint.IsEnableSplash});this.ChartSplashPaint.Draw();return;}this.Frame.Draw();this.Frame.DrawLogo();//框架内图形
12563
- for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(item.IsDrawFirst)item.Draw();}for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(!item.IsDrawFirst)item.Draw();}if(this.GlobalOption.FlashBGCount>0){this.DelayDraw(500);}};this.DelayDraw=function(frequency){var _this56=this;if(typeof this.FlashBGTimer=='number'){clearTimeout(this.FlashBGTimer);this.FlashBGTimer=null;}this.FlashBGTimer=setTimeout(function(){_this56.Draw();},frequency);};this.ClearData=function(){this.SourceData.Data=[];this.Data.Data=[];this.Data.BaseExePrice=null;this.MapStockData=null;this.MapExePriceData=null;this.BorderData.MapData=null;};this.StopAutoUpdate=function(){this.CancelAutoUpdate();this.AutoUpdateEvent(false,'JSTReportChartContainer::StopAutoUpdate');if(!this.IsAutoUpdate)return;this.IsAutoUpdate=false;};//设置事件回调
12564
+ for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(item.IsDrawFirst)item.Draw();}for(var i=0;i<this.ChartPaint.length;++i){var item=this.ChartPaint[i];if(!item.IsDrawFirst)item.Draw();}if(this.GlobalOption.FlashBGCount>0){this.DelayDraw(500);}};this.DelayDraw=function(frequency){var _this56=this;if(typeof this.FlashBGTimer=='number'){clearTimeout(this.FlashBGTimer);this.FlashBGTimer=null;}this.FlashBGTimer=setTimeout(function(){_this56.Draw();},frequency);};this.ClearData=function(){this.SourceData.Data=[];this.Data.Data=[];this.Data.Price=null;this.MapStockData=null;this.MapExePriceData=null;this.BorderData.MapData=null;};this.StopAutoUpdate=function(){this.CancelAutoUpdate();this.AutoUpdateEvent(false,'JSTReportChartContainer::StopAutoUpdate');if(!this.IsAutoUpdate)return;this.IsAutoUpdate=false;};//设置事件回调
12564
12565
  //{event:事件id, callback:回调函数}
12565
12566
  this.AddEventCallback=function(object){if(!object||!object.event||!object.callback)return;var data={Callback:object.callback,Source:object};this.mapEvent.set(object.event,data);};this.RemoveEventCallback=function(eventid){if(!this.mapEvent.has(eventid))return;this.mapEvent.delete(eventid);};this.GetEventCallback=function(id)//获取事件回调
12566
12567
  {if(!this.mapEvent.has(id))return null;var item=this.mapEvent.get(id);return item;};this.OnSize=function(){if(!this.Frame)return;this.SetSizeChange(true);this.Draw();this.DelayUpdateStockData();};this.SetSizeChange=function(bChanged){for(var i=0;i<this.ChartPaint.length;++i){var chart=this.ChartPaint[i];if(chart)chart.SizeChange=bChanged;}};this.ChangeSymbol=function(symbol,option){this.CancelAutoUpdate();this.ClearData();this.Symbol=symbol;this.Name=symbol;if(option){if(option.Name)this.Name=option.Name;}this.RequestStockListData();};this.CancelAutoUpdate=function()//关闭停止更新
@@ -12568,11 +12569,11 @@ this.AddEventCallback=function(object){if(!object||!object.event||!object.callba
12568
12569
  this.RequestStockListData=function(){this.ChartSplashPaint.SetTitle(this.SplashTitle.StockList);this.ChartSplashPaint.EnableSplash(true);this.Draw();var self=this;if(this.NetworkFilter){var obj={Name:'JSTReportChartContainer::RequestStockListData',//类名::
12569
12570
  Explain:'T型报价列表数据',Self:this,PreventDefault:false};this.NetworkFilter(obj,function(data){if(!data)return;if(data.symbol!=self.Symbol)return;self.ChartSplashPaint.EnableSplash(false);self.RecvStockListData(data);});if(obj.PreventDefault==true)return;//已被上层替换,不调用默认的网络请求
12570
12571
  }throw{Name:'JSTReportChartContainer::RequestStockListData',Error:'(T型报价列表数据)不提供内置测试数据'};};this.RecvStockListData=function(data){if(IFrameSplitOperator.IsNonEmptyArray(data.data)){this.MapExePriceData=new _map2.default();this.MapStockData=new _map2.default();//0=行权价格 1=左边期权代码 2=右侧期权代码 3=左侧期权名称 4=右侧期权名称
12571
- for(var i=0;i<data.data.length;++i){var item=data.data[i];var exePrice=item[0];var leftData=new HQTReportItem();leftData.Symbol=leftData.Name=item[1];if(item[3])leftData.Name=item[3];var rightData=new HQTReportItem();rightData.Symbol=rightData.Name=item[2];if(item[4])rightData.Name=item[4];this.MapStockData.set(leftData.Symbol,leftData);this.MapStockData.set(rightData.Symbol,rightData);var dataItem={ExePrice:exePrice,LeftData:leftData,RightData:rightData};this.MapExePriceData.set(dataItem.ExePrice,dataItem);this.SourceData.Data.push(exePrice);this.Data.Data.push(exePrice);}}if(IFrameSplitOperator.IsNumber(data.baseExePrice)){this.Data.BaseExePrice=data.baseExePrice;}this.Draw();this.UpdateStockData();};this.GetExePriceData=function(exePrice){if(!this.MapExePriceData)return null;if(!this.MapExePriceData.has(exePrice))return null;return this.MapExePriceData.get(exePrice);};this.UpdateStockData=function(){if(!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return;if(this.MapStockData.size<=0)return;var arySymbol=[];var _iteratorNormalCompletion22=true;var _didIteratorError22=false;var _iteratorError22=undefined;try{for(var _iterator22=(0,_getIterator3.default)(this.MapStockData),_step22;!(_iteratorNormalCompletion22=(_step22=_iterator22.next()).done);_iteratorNormalCompletion22=true){var mapItem=_step22.value;arySymbol.push(mapItem[0]);}}catch(err){_didIteratorError22=true;_iteratorError22=err;}finally{try{if(!_iteratorNormalCompletion22&&_iterator22.return){_iterator22.return();}}finally{if(_didIteratorError22){throw _iteratorError22;}}}if(!IFrameSplitOperator.IsNonEmptyArray(arySymbol))return;this.RequestStockData(arySymbol);};//下载期权数据
12572
+ for(var i=0;i<data.data.length;++i){var item=data.data[i];var exePrice=item[0];var leftData=new HQTReportItem();leftData.Symbol=leftData.Name=item[1];if(item[3])leftData.Name=item[3];var rightData=new HQTReportItem();rightData.Symbol=rightData.Name=item[2];if(item[4])rightData.Name=item[4];this.MapStockData.set(leftData.Symbol,leftData);this.MapStockData.set(rightData.Symbol,rightData);var dataItem={ExePrice:exePrice,LeftData:leftData,RightData:rightData};this.MapExePriceData.set(dataItem.ExePrice,dataItem);this.SourceData.Data.push(exePrice);this.Data.Data.push(exePrice);}}if(IFrameSplitOperator.IsNumber(data.price)){this.Data.Price=data.price;}this.Draw();this.UpdateStockData();};this.GetExePriceData=function(exePrice){if(!this.MapExePriceData)return null;if(!this.MapExePriceData.has(exePrice))return null;return this.MapExePriceData.get(exePrice);};this.UpdateStockData=function(){if(!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return;if(this.MapStockData.size<=0)return;var arySymbol=[];var _iteratorNormalCompletion22=true;var _didIteratorError22=false;var _iteratorError22=undefined;try{for(var _iterator22=(0,_getIterator3.default)(this.MapStockData),_step22;!(_iteratorNormalCompletion22=(_step22=_iterator22.next()).done);_iteratorNormalCompletion22=true){var mapItem=_step22.value;arySymbol.push(mapItem[0]);}}catch(err){_didIteratorError22=true;_iteratorError22=err;}finally{try{if(!_iteratorNormalCompletion22&&_iterator22.return){_iterator22.return();}}finally{if(_didIteratorError22){throw _iteratorError22;}}}if(!IFrameSplitOperator.IsNonEmptyArray(arySymbol))return;this.RequestStockData(arySymbol);};//下载期权数据
12572
12573
  this.RequestStockData=function(arySymbol){var self=this;if(this.NetworkFilter){var obj={Name:'JSTReportChartContainer::RequestStockData',//类名::函数名
12573
12574
  Explain:'T型报价列表期权数据',Request:{Data:{stocks:arySymbol,symbol:this.Symbol}},Self:this,PreventDefault:false};this.NetworkFilter(obj,function(data){self.RecvStockData(data);self.AutoUpdate();});if(obj.PreventDefault==true)return;}throw{Name:'JSTReportChartContainer::RequestStockData',Error:'(T型报价列表期权数据)不提供内置测试数据'};};this.RecvStockData=function(data){var _this57=this;var setUpdateSymbol=new _set2.default();//更新的股票列表
12574
12575
  if(IFrameSplitOperator.IsNonEmptyArray(data.data)){for(var i=0;i<data.data.length;++i){var item=data.data[i];var symbol=item[0];//0=证券代码;
12575
- if(!symbol)continue;var stock=null;if(this.MapStockData.has(symbol)){stock=this.MapStockData.get(symbol);}else{stock=new HQTReportItem();stock.Symbol=symbol;this.MapStockData.set(symbol,stock);}this.ReadStockJsonData(stock,item);if(!setUpdateSymbol.has(symbol))setUpdateSymbol.add(symbol);}}//实时数据排序
12576
+ if(!symbol)continue;var stock=null;if(this.MapStockData.has(symbol)){stock=this.MapStockData.get(symbol);}else{stock=new HQTReportItem();stock.Symbol=symbol;this.MapStockData.set(symbol,stock);}this.ReadStockJsonData(stock,item);if(!setUpdateSymbol.has(symbol))setUpdateSymbol.add(symbol);}}if(IFrameSplitOperator.IsNumber(data.price))this.Data.Price=data.price;//实时数据排序
12576
12577
  var chart=this.ChartPaint[0];if(chart&&(this.SortInfo.Sort==1||this.SortInfo.Sort==2)&&IFrameSplitOperator.IsNumber(this.SortInfo.Field)&&this.SortInfo.Field>=0){var column=chart.Column[this.SortInfo.Field];var event=this.GetEventCallback(JSCHART_EVENT_ID.ON_TREPORT_LOCAL_SORT);if(event&&event.Callback){var sendData={Column:column,SortInfo:this.SortInfo,SymbolList:this.Data.Data,Result:null};event.Callback(event,sendData,this);if(Array.isArray(sendData.Result))this.Data.Data=sendData.Result;}else{this.Data.Data.sort(function(left,right){return _this57.LocalSort(left,right,column,_this57.SortInfo.Sort,_this57.SortInfo.CellType);});}}this.CalculateData();this.Draw();};//计算统计数据
12577
12578
  this.CalculateData=function(){if(!this.MapExePriceData||this.MapExePriceData.size<=0)return;var leftMaxPosition={Max:null,ExePrice:null,CellType:1};var rightMaxPosition={Max:null,ExePrice:null,CellType:2};this.BorderData.MapData=new _map2.default();var _iteratorNormalCompletion23=true;var _didIteratorError23=false;var _iteratorError23=undefined;try{for(var _iterator23=(0,_getIterator3.default)(this.MapExePriceData),_step23;!(_iteratorNormalCompletion23=(_step23=_iterator23.next()).done);_iteratorNormalCompletion23=true){var mapItem=_step23.value;var item=mapItem[1];var leftData=item.LeftData;var rightData=item.RightData;if(leftData&&IFrameSplitOperator.IsNumber(leftData.Position)){if(leftMaxPosition.Max==null||leftMaxPosition.Max<leftData.Position){leftMaxPosition.Max=leftData.Position;leftMaxPosition.ExePrice=mapItem[0];}}if(rightData&&IFrameSplitOperator.IsNumber(rightData.Position)){if(leftMaxPosition.Max==null||leftMaxPosition.Max<rightData.Position){rightMaxPosition.Max=rightData.Position;rightMaxPosition.ExePrice=mapItem[0];}}}}catch(err){_didIteratorError23=true;_iteratorError23=err;}finally{try{if(!_iteratorNormalCompletion23&&_iterator23.return){_iterator23.return();}}finally{if(_didIteratorError23){throw _iteratorError23;}}}var aryData=[null,null,null];if(leftMaxPosition.ExePrice)aryData[1]=leftMaxPosition;if(rightMaxPosition.ExePrice)aryData[2]=rightMaxPosition;this.BorderData.MapData.set(TREPORT_COLUMN_ID.POSITION_ID,{Data:aryData});};//读取单条股票json数据
12578
12579
  this.ReadStockJsonData=function(stock,item){//0=证券代码 1=股票名称 2=昨收 3=开 4=高 5=低 6=收 7=成交量 8=成交金额, 9=买价 10=买量 11=卖价 12=卖量 13=均价 14=持仓 16=涨停价 17=跌停价
@@ -12598,7 +12599,7 @@ if(item[33])stock.KLine=item[33];//33=K线
12598
12599
  var frequency=this.AutoUpdateFrequency;if(marketStatus==1)//盘前
12599
12600
  {this.AutoUpdateTimer=setTimeout(function(){self.AutoUpdate();},frequency);}else if(marketStatus==2)//盘中
12600
12601
  {this.AutoUpdateTimer=setTimeout(function(){self.UpdateStockData();},frequency);}};//delay=是否延迟
12601
- this.DelayUpdateStockData=function(){var _this58=this;if(this.DelayUpdateTimer!=null){clearTimeout(this.DelayUpdateTimer);this.DelayUpdateTimer=null;}var frequency=this.DelayUpdateFrequency;this.DelayUpdateTimer=setTimeout(function(){_this58.UpdateStockData();},frequency);};this.UIOnMouseDown=function(e){var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;var chart=this.ChartPaint[0];if(!chart)return;var clickData=chart.OnMouseDown(x,y,e);if(!clickData)return;if(clickData.Type==2&&(e.button==0||e.button==2))//点击行
12602
+ this.DelayUpdateStockData=function(){var _this58=this;if(this.DelayUpdateTimer!=null){clearTimeout(this.DelayUpdateTimer);this.DelayUpdateTimer=null;}var frequency=this.DelayUpdateFrequency;this.DelayUpdateTimer=setTimeout(function(){_this58.UpdateStockData();},frequency);};this.UIOnDblClick=function(e){var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;var chart=this.GetTReportChart();if(chart)chart.OnDblClick(x,y,e);};this.UIOnMouseDown=function(e){var pixelTatio=GetDevicePixelRatio();var x=(e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;var y=(e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;var chart=this.ChartPaint[0];if(!chart)return;var clickData=chart.OnMouseDown(x,y,e);if(!clickData)return;if(clickData.Type==2&&(e.button==0||e.button==2))//点击行
12602
12603
  {if(clickData.Redraw==true)this.Draw();}else if(clickData.Type==3&&e.button==0)//表头
12603
12604
  {this.OnClickHeader(clickData,e);}//document.onmousemove=(e)=>{ this.DocOnMouseMove(e); }
12604
12605
  //document.onmouseup=(e)=> { this.DocOnMouseUp(e); }
@@ -12631,7 +12632,10 @@ case TREPORT_COLUMN_ID.AMPLITUDE_ID:case TREPORT_COLUMN_ID.INCREASE_ID:return th
12631
12632
  var result=this.MoveSelectedRow(-1);if(result){if(result.Redraw)this.Draw();if(result.Update)this.DelayUpdateStockData();}break;case 40://down
12632
12633
  var result=this.MoveSelectedRow(1);if(result){if(result.Redraw)this.Draw();if(result.Update)this.DelayUpdateStockData();}break;}//不让滚动条滚动
12633
12634
  if(e.preventDefault)e.preventDefault();else e.returnValue=false;};this.MoveSelectedRow=function(step){var chart=this.ChartPaint[0];if(!chart)return null;if(!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return null;var result={Redraw:false,Update:false};//Redraw=重绘, Update=更新数据
12634
- var pageStatus=chart.GetCurrentPageStatus();var pageSize=pageStatus.PageSize;var selectedIndex=pageStatus.Start;var cellType=1;if(pageStatus.SelectedRow){cellType=pageStatus.SelectedRow.CellType;for(var i=0;i<this.Data.Data.length;++i){if(pageStatus.SelectedRow.ExePrice==this.Data.Data[i]){selectedIndex=i;break;}}}if(step>0){if(selectedIndex<0||selectedIndex<pageStatus.Start||selectedIndex>pageStatus.End){chart.SelectedRow={ExePrice:this.Data.Data[pageStatus.Start],CellType:cellType};result.Redraw=true;return result;}var offset=this.Data.YOffset;for(var i=0;i<step;++i){++selectedIndex;if(selectedIndex>pageStatus.End)++offset;if(selectedIndex>=this.Data.Data.length){selectedIndex=0;offset=0;}}result.Redraw=true;result.Update=offset!=this.Data.YOffset;chart.SelectedRow={ExePrice:this.Data.Data[selectedIndex],CellType:cellType};this.Data.YOffset=offset;return result;}else if(step<0){if(selectedIndex<0||selectedIndex<pageStatus.Start||selectedIndex>pageStatus.End){chart.SelectedRow={ExePrice:this.Data.Data[pageStatus.End],CellType:cellType};result.Redraw=true;return result;}step=Math.abs(step);var offset=this.Data.YOffset;for(var i=0;i<step;++i){--selectedIndex;if(selectedIndex<pageStatus.Start)--offset;if(selectedIndex<0){selectedIndex=this.Data.Data.length-1;offset=this.Data.Data.length-pageSize;if(offset<0)offset=0;}}result.Redraw=true;result.Update=offset!=this.Data.YOffset;chart.SelectedRow={ExePrice:this.Data.Data[selectedIndex],CellType:cellType};this.Data.YOffset=offset;return result;}return null;};}function JSTReportFrame(){this.ChartBorder;this.Canvas;//画布
12635
+ var pageStatus=chart.GetCurrentPageStatus();var pageSize=pageStatus.PageSize;var selectedIndex=pageStatus.Start;var cellType=1;if(pageStatus.SelectedRow){cellType=pageStatus.SelectedRow.CellType;for(var i=0;i<this.Data.Data.length;++i){if(pageStatus.SelectedRow.ExePrice==this.Data.Data[i]){selectedIndex=i;break;}}}if(step>0){if(selectedIndex<0||selectedIndex<pageStatus.Start||selectedIndex>pageStatus.End){chart.SelectedRow={ExePrice:this.Data.Data[pageStatus.Start],CellType:cellType};result.Redraw=true;return result;}var offset=this.Data.YOffset;for(var i=0;i<step;++i){++selectedIndex;if(selectedIndex>pageStatus.End)++offset;if(selectedIndex>=this.Data.Data.length){selectedIndex=0;offset=0;}}result.Redraw=true;result.Update=offset!=this.Data.YOffset;chart.SelectedRow={ExePrice:this.Data.Data[selectedIndex],CellType:cellType};this.Data.YOffset=offset;return result;}else if(step<0){if(selectedIndex<0||selectedIndex<pageStatus.Start||selectedIndex>pageStatus.End){chart.SelectedRow={ExePrice:this.Data.Data[pageStatus.End],CellType:cellType};result.Redraw=true;return result;}step=Math.abs(step);var offset=this.Data.YOffset;for(var i=0;i<step;++i){--selectedIndex;if(selectedIndex<pageStatus.Start)--offset;if(selectedIndex<0){selectedIndex=this.Data.Data.length-1;offset=this.Data.Data.length-pageSize;if(offset<0)offset=0;}}result.Redraw=true;result.Update=offset!=this.Data.YOffset;chart.SelectedRow={ExePrice:this.Data.Data[selectedIndex],CellType:cellType};this.Data.YOffset=offset;return result;}return null;};//obj={ ID:, Color: , Time:, Count: }
12636
+ this.SetFlashBGItem=function(symbol,obj){var item={ID:obj.ID,Color:obj.Color,Count:1};if(IFrameSplitOperator.IsNumber(obj.Count))item.Count=obj.Count;if(IFrameSplitOperator.IsNumber(obj.Time))item.Time=obj.Time;else item.Time=Date.now();if(this.FlashBG.has(symbol)){var stockItem=this.FlashBG.get(symbol);stockItem.LastTime=item.Time;stockItem.Data.set(item.ID,item);}else{var stockItem={LastTime:item.Time,Data:new _map2.default([[item.ID,item]])};this.FlashBG.set(symbol,stockItem);}};this.GetFlashBGData=function(symbol,time){if(!this.FlashBG)return null;if(!this.FlashBG.has(symbol))return null;var timeDiff=3*1000;var stockItem=this.FlashBG.get(symbol);if(time-stockItem.LastTime>=timeDiff)//超时的删除
12637
+ {this.FlashBG.delete(symbol);return null;}if(!stockItem.Data||stockItem.Data.size<=0){this.FlashBG.delete(symbol);return null;}var aryDelID=[];//超时需要参数的
12638
+ var _iteratorNormalCompletion24=true;var _didIteratorError24=false;var _iteratorError24=undefined;try{for(var _iterator24=(0,_getIterator3.default)(stockItem.Data),_step24;!(_iteratorNormalCompletion24=(_step24=_iterator24.next()).done);_iteratorNormalCompletion24=true){var mapItem=_step24.value;var item=mapItem[1];if(time-item.Time>=timeDiff||item.Count<=0)aryDelID.push(item.ID);}}catch(err){_didIteratorError24=true;_iteratorError24=err;}finally{try{if(!_iteratorNormalCompletion24&&_iterator24.return){_iterator24.return();}}finally{if(_didIteratorError24){throw _iteratorError24;}}}if(IFrameSplitOperator.IsNonEmptyArray(aryDelID)){for(var i=0;i<aryDelID.length;++i){stockItem.Data.delete(aryDelID[i]);}if(stockItem.Data.size<=0){this.FlashBG.delete(symbol);return null;}}return stockItem;};}function JSTReportFrame(){this.ChartBorder;this.Canvas;//画布
12635
12639
  this.BorderLine=null;//1=上 2=下 4=左 8=右
12636
12640
  this.ClassName="JSTReportFrame";this.BorderColor=g_JSChartResource.TReport.BorderColor;//边框线
12637
12641
  this.LogoTextColor=g_JSChartResource.FrameLogo.TextColor;this.LogoTextFont=g_JSChartResource.FrameLogo.Font;this.ReloadResource=function(resource){this.BorderColor=g_JSChartResource.TReport.BorderColor;//边框线
@@ -12713,8 +12717,9 @@ var xRight=rtCenterItem.Right;//右边
12713
12717
  for(var i=this.Data.XOffset;i<this.Column.length;++i){var item=this.Column[i];var itemWidth=item.Width+this.ItemExtraWidth;var textWidth=itemWidth-this.HeaderMergin.Left-this.HeaderMergin.Right;var x=xLeft-itemWidth+this.HeaderMergin.Left;if(xLeft-itemWidth<reportleft)break;var bSort=this.SortInfo&&this.SortInfo.Field==i&&this.SortInfo.Sort>0;if(bSort&&this.SortInfo.CellType==1)this.DrawSortHeader(item.Title,item.TextAlign,x,y,textWidth,this.SortInfo.Sort);else this.DrawText(item.Title,item.TextAlign,x,y,textWidth);xLeft-=itemWidth;var x=xRight+this.HeaderMergin.Left;if(bSort&&this.SortInfo.CellType==2)this.DrawSortHeader(item.Title,item.TextAlign,x,y,textWidth,this.SortInfo.Sort);else this.DrawText(item.Title,item.TextAlign,x,y,textWidth);xRight+=itemWidth;}};this.DrawSortHeader=function(text,textAlign,x,y,width,sortType){var sortText=sortType==1?"↓":"↑";var sortTextWidth=this.Canvas.measureText(sortText).width;var textWidth=this.Canvas.measureText(text).width+2;this.Canvas.textBaseline="middle";this.Canvas.textAlign="left";if(textAlign=='center'){x=x+width/2-(sortTextWidth+textWidth)/2;}else if(textAlign=='right'){x=x+width-sortTextWidth-textWidth;}else{}this.Canvas.fillText(text,x,y);this.Canvas.fillStyle=this.SortColor;this.Canvas.fillText(sortText,x+textWidth,y);this.Canvas.fillStyle=this.HeaderColor;};this.DrawText=function(text,textAlign,x,y,textWidth){if(textAlign=='center'){x=x+textWidth/2;this.Canvas.textAlign="center";}else if(textAlign=='right'){x=x+textWidth;this.Canvas.textAlign="right";}else{this.Canvas.textAlign="left";}this.Canvas.textBaseline="middle";this.Canvas.fillText(text,x,y);};this.GetFontHeight=function(font,word){return GetFontHeight(this.Canvas,font,word);};this.DrawBody=function(){if(!this.Data)return;if(!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return;this.Canvas.font=this.ItemFont;var top=this.RectClient.Top+this.HeaderHeight;var left=this.RectClient.Left;var rowWidth=this.RectClient.Right-this.RectClient.Left;var textTop=top;this.Canvas.font=this.ItemFont;for(var i=this.Data.YOffset,j=0;i<this.Data.Data.length&&j<this.RowCount;++i,++j){var exePrice=this.Data.Data[i];this.DrawRow(exePrice,textTop,i);this.ShowSymbol.push({Index:i,ExePrice:exePrice});textTop+=this.RowHeight;}if(this.RectSelectedRow){this.Canvas.fillStyle=this.SelectedColor;var lineWidth=2;this.Canvas.fillRect(this.RectSelectedRow.Left,this.RectSelectedRow.Bottom-lineWidth,this.RectSelectedRow.Right-this.RectSelectedRow.Left,lineWidth);}};this.GetCenterItemRect=function(){var xCenter=(this.RectClient.Right-this.RectClient.Left)/2+this.RectClient.Left;//中间列
12714
12718
  var item=this.CenterColumn;var itemWidth=item.Width+this.ItemExtraWidth;var left=xCenter-itemWidth/2;var right=xCenter+itemWidth/2;var textWidth=itemWidth-this.HeaderMergin.Left-this.HeaderMergin.Right;return{Left:left,Right:right,TextWidth:textWidth,Width:itemWidth};};this.DrawRow=function(exePrice,top,dataIndex){var rtCenterItem=this.GetCenterItemRect();var xLeft=rtCenterItem.Left;//左边
12715
12719
  var xRight=rtCenterItem.Right;//右边
12716
- var reportleft=this.RectClient.Left;var reportRight=this.RectClient.Right;var data={ExePrice:exePrice,TData:null};if(this.GetExePriceDataCallback)data.TData=this.GetExePriceDataCallback(exePrice);//if (this.GetFlashBGDataCallback) data.FlashBG=this.GetFlashBGDataCallback(exePrice, Date.now());
12717
- data.Decimal=2;var bSelected=false;if(this.SelectedRow&&this.SelectedRow.ExePrice==exePrice)bSelected=true;var rtItem={Left:xLeft,Right:xRight,Top:top,Height:this.RowHeight};rtItem.Bottom=rtItem.Top+rtItem.Height;rtItem.Width=rtItem.Right-rtItem.Left;this.DrawCenterItem(dataIndex,data,this.CenterColumn,rtItem,0);if(bSelected&&this.SelectedRow.CellType==0)this.RectSelectedRow=rtItem;if(IFrameSplitOperator.IsNumber(this.Data.BaseExePrice)){var leftBGColor=null,rightBGColor=null;if(exePrice>this.Data.BaseExePrice){leftBGColor=this.UpBGColor;rightBGColor=this.DownBGColor;}else{leftBGColor=this.DownBGColor;rightBGColor=this.UpBGColor;}if(leftBGColor){var rtBG={Left:reportleft+1,Right:rtCenterItem.Left,Top:top,Height:this.RowHeight};rtBG.Bottom=rtBG.Top+rtBG.Height;rtBG.Width=rtBG.Right-rtBG.Left;this.Canvas.fillStyle=leftBGColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}if(rightBGColor){var rtBG={Left:rtCenterItem.Right,Right:reportRight,Top:top,Height:this.RowHeight};rtBG.Bottom=rtBG.Top+rtBG.Height;rtBG.Width=rtBG.Right-rtBG.Left;this.Canvas.fillStyle=rightBGColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}}for(var i=this.Data.XOffset;i<this.Column.length;++i){var item=this.Column[i];var itemWidth=item.Width+this.ItemExtraWidth;xLeft-=itemWidth;if(xLeft<reportleft)break;var leftData=null,rightData=null;if(data.TData)leftData=data.TData.LeftData;if(data.TData)rightData=data.TData.RightData;rtItem={Left:xLeft,Right:xLeft+itemWidth,Top:top,Height:this.RowHeight,Width:itemWidth};rtItem.Bottom=rtItem.Top+rtItem.Height;this.DrawItem(dataIndex,data,leftData,item,rtItem,1);if(bSelected&&this.SelectedRow.CellType==1){if(!this.RectSelectedRow)this.RectSelectedRow=rtItem;else this.RectSelectedRow.Left=rtItem.Left;}rtItem={Left:xRight,Right:xRight+itemWidth,Top:top,Height:this.RowHeight,Width:itemWidth};rtItem.Bottom=rtItem.Top+rtItem.Height;this.DrawItem(dataIndex,data,rightData,item,rtItem,2);xRight+=itemWidth;if(bSelected&&this.SelectedRow.CellType==2){if(!this.RectSelectedRow)this.RectSelectedRow=rtItem;else this.RectSelectedRow.Right=rtItem.Right;}}};this.DrawCenterItem=function(index,data,column,rtItem,cellType)//cellType 0=中间字段 1=左侧 2=右侧
12720
+ var reportleft=this.RectClient.Left;var reportRight=this.RectClient.Right;var data={ExePrice:exePrice,TData:null,Decimal:2};if(this.GetExePriceDataCallback)data.TData=this.GetExePriceDataCallback(exePrice);if(this.GetFlashBGDataCallback&&data.TData){if(data.TData.LeftData)//左侧
12721
+ {var item=data.TData.LeftData;data.TData.LeftFlashBG=this.GetFlashBGDataCallback(item.Symbol,Date.now());data.Decimal=JSTReportChart.GetfloatPrecision(item.Symbol);}if(data.TData.RightData)//右侧
12722
+ {var item=data.TData.RightData;data.TData.RightFlashBG=this.GetFlashBGDataCallback(item.Symbol,Date.now());data.Decimal=JSTReportChart.GetfloatPrecision(item.Symbol);}}var bSelected=false;if(this.SelectedRow&&this.SelectedRow.ExePrice==exePrice)bSelected=true;var rtItem={Left:xLeft,Right:xRight,Top:top,Height:this.RowHeight};rtItem.Bottom=rtItem.Top+rtItem.Height;rtItem.Width=rtItem.Right-rtItem.Left;this.DrawCenterItem(dataIndex,data,this.CenterColumn,rtItem,0);if(bSelected&&this.SelectedRow.CellType==0)this.RectSelectedRow=rtItem;if(IFrameSplitOperator.IsNumber(this.Data.Price)){var leftBGColor=null,rightBGColor=null;if(exePrice>this.Data.Price){leftBGColor=this.UpBGColor;rightBGColor=this.DownBGColor;}else{leftBGColor=this.DownBGColor;rightBGColor=this.UpBGColor;}if(leftBGColor){var rtBG={Left:reportleft+1,Right:rtCenterItem.Left,Top:top,Height:this.RowHeight};rtBG.Bottom=rtBG.Top+rtBG.Height;rtBG.Width=rtBG.Right-rtBG.Left;this.Canvas.fillStyle=leftBGColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}if(rightBGColor){var rtBG={Left:rtCenterItem.Right,Right:reportRight,Top:top,Height:this.RowHeight};rtBG.Bottom=rtBG.Top+rtBG.Height;rtBG.Width=rtBG.Right-rtBG.Left;this.Canvas.fillStyle=rightBGColor;this.Canvas.fillRect(rtBG.Left,rtBG.Top,rtBG.Width,rtBG.Height);}}for(var i=this.Data.XOffset;i<this.Column.length;++i){var item=this.Column[i];var itemWidth=item.Width+this.ItemExtraWidth;xLeft-=itemWidth;if(xLeft<reportleft)break;var leftData=null,rightData=null;if(data.TData)leftData=data.TData.LeftData;if(data.TData)rightData=data.TData.RightData;rtItem={Left:xLeft,Right:xLeft+itemWidth,Top:top,Height:this.RowHeight,Width:itemWidth};rtItem.Bottom=rtItem.Top+rtItem.Height;this.DrawItem(dataIndex,data,leftData,item,rtItem,1);if(bSelected&&this.SelectedRow.CellType==1){if(!this.RectSelectedRow)this.RectSelectedRow=rtItem;else this.RectSelectedRow.Left=rtItem.Left;}rtItem={Left:xRight,Right:xRight+itemWidth,Top:top,Height:this.RowHeight,Width:itemWidth};rtItem.Bottom=rtItem.Top+rtItem.Height;this.DrawItem(dataIndex,data,rightData,item,rtItem,2);xRight+=itemWidth;if(bSelected&&this.SelectedRow.CellType==2){if(!this.RectSelectedRow)this.RectSelectedRow=rtItem;else this.RectSelectedRow.Right=rtItem.Right;}}};this.DrawCenterItem=function(index,data,column,rtItem,cellType)//cellType 0=中间字段 1=左侧 2=右侧
12718
12723
  {//tooltip提示
12719
12724
  if(column.EnableTooltip===true)this.TooltipRect.push({Rect:rtItem,data:data,Index:index,Column:column,CellType:cellType});var rtText={Left:rtItem.Left+this.ItemMergin.Left,Right:rtItem.Right-this.ItemMergin.Right,Top:rtItem.Top+this.ItemMergin.Top,Bottom:rtItem.Bottom-this.ItemMergin.Bottom};rtText.Width=rtText.Right-rtText.Left;rtText.Height=rtText.Bottom-rtText.Top;var drawInfo={Text:null,TextColor:this.CenterItemConfig.TextColor,BGColor:this.CenterItemConfig.BGColor,TextAlign:column.TextAlign,Rect:rtItem,RectText:rtText};drawInfo.Text=''+data.ExePrice.toFixed(data.Decimal);this.DrawCell(drawInfo);};this.DrawItem=function(index,exePriceData,data,column,rtItem,cellType){if(column.EnableTooltip===true)this.TooltipRect.push({Rect:rtItem,data:data,Index:index,Column:column,CellType:cellType});var rtText={Left:rtItem.Left+this.ItemMergin.Left,Right:rtItem.Right-this.ItemMergin.Right,Top:rtItem.Top+this.ItemMergin.Top,Bottom:rtItem.Bottom-this.ItemMergin.Bottom};rtText.Width=rtText.Right-rtText.Left;rtText.Height=rtText.Bottom-rtText.Top;var drawInfo={Text:null,TextColor:column.TextColor,TextAlign:column.TextAlign,Rect:rtItem,RectText:rtText};if(data){switch(column.Type){case TREPORT_COLUMN_ID.SYMBOL_ID:case TREPORT_COLUMN_ID.NAME_ID:var fieldName=MAP_TREPORT_COLUMN_FIELD.get(column.Type);if(fieldName)drawInfo.Text=data[fieldName];break;case TREPORT_COLUMN_ID.PRICE_ID://最新价格
12720
12725
  case TREPORT_COLUMN_ID.BUY_PRICE_ID://买价
@@ -12722,9 +12727,10 @@ case TREPORT_COLUMN_ID.SELL_PRICE_ID://卖价
12722
12727
  var fieldName=MAP_TREPORT_COLUMN_FIELD.get(column.Type);if(fieldName)this.GetPriceDrawInfo(data[fieldName],data,exePriceData,drawInfo);break;case TREPORT_COLUMN_ID.SELL_VOL_ID://卖量
12723
12728
  case TREPORT_COLUMN_ID.BUY_VOL_ID://买量
12724
12729
  case TREPORT_COLUMN_ID.POSITION_ID://持仓量
12725
- var fieldName=MAP_TREPORT_COLUMN_FIELD.get(column.Type);if(fieldName)drawInfo.Text=this.FormatVolString(data[fieldName]);break;case TREPORT_COLUMN_ID.INCREASE_ID:case TREPORT_COLUMN_ID.UPDOWN_ID:case TREPORT_COLUMN_ID.AMPLITUDE_ID:var fieldName=MAP_TREPORT_COLUMN_FIELD.get(column.Type);if(fieldName){var value=data[fieldName];if(IFrameSplitOperator.IsNumber(value)){drawInfo.Text=value.toFixed(2);drawInfo.TextColor=this.GetUpDownColor(value,0);}else{this.GetNullDrawInfo(drawInfo);}}break;default:drawInfo.Text='-----';}this.GetMarkBorderData(drawInfo,exePriceData.ExePrice,column.Type,cellType);}this.DrawCell(drawInfo);};this.GetMarkBorderData=function(drawInfo,exePrice,columnType,cellType){if(!this.BorderData||!this.BorderData.MapData)return;if(!this.BorderData.MapData.has(columnType))return;var borderData=this.BorderData.MapData.get(columnType);if(!IFrameSplitOperator.IsNonEmptyArray(borderData.Data))return;if(cellType==1){var leftBorder=borderData.Data[1];if(!leftBorder)return;if(leftBorder.ExePrice==exePrice){drawInfo.BorderColor=this.MarkBorderConfig.MaxPositionColor;}}else if(cellType==2){var rightBorder=borderData.Data[2];if(!rightBorder)return;if(rightBorder.ExePrice==exePrice){drawInfo.BorderColor=this.MarkBorderConfig.MaxPositionColor;}}};this.GetNullDrawInfo=function(drawInfo){drawInfo.Text="--";drawInfo.TextColor=this.UnchangeColor;};this.GetPriceDrawInfo=function(price,stock,data,drawInfo){if(!IFrameSplitOperator.IsNumber(price)){this.GetNullDrawInfo(drawInfo);return;}drawInfo.Text=price.toFixed(data.Decimal);if(!IFrameSplitOperator.IsNumber(stock.YClose))drawInfo.TextColor=this.UnchangeColor;else drawInfo.TextColor=this.GetUpDownColor(price,stock.YClose);};//单独处理成交量显示
12730
+ var fieldName=MAP_TREPORT_COLUMN_FIELD.get(column.Type);if(fieldName)drawInfo.Text=this.FormatVolString(data[fieldName]);break;case TREPORT_COLUMN_ID.INCREASE_ID:case TREPORT_COLUMN_ID.UPDOWN_ID:case TREPORT_COLUMN_ID.AMPLITUDE_ID:var fieldName=MAP_TREPORT_COLUMN_FIELD.get(column.Type);if(fieldName){var value=data[fieldName];if(IFrameSplitOperator.IsNumber(value)){drawInfo.Text=value.toFixed(2);drawInfo.TextColor=this.GetUpDownColor(value,0);}else{this.GetNullDrawInfo(drawInfo);}}break;default:drawInfo.Text='-----';}this.GetMarkBorderData(drawInfo,exePriceData.ExePrice,column.Type,cellType);this.GetFlashBGData(drawInfo,exePriceData,column.Type,cellType);}this.DrawCell(drawInfo,exePriceData,column.Type,cellType);};this.GetFlashBGData=function(drawInfo,exePriceData,columnType,cellType){if(!exePriceData.TData)return;var data=null;if(cellType==1)data=exePriceData.TData.LeftFlashBG;else if(cellType==2)data=exePriceData.TData.RightFlashBG;if(!data||!data.Data)return;if(data.Data.has(columnType)){var item=data.Data.get(columnType);drawInfo.FlashBGColor=item.Color;--item.Count;if(this.GlobalOption)++this.GlobalOption.FlashBGCount;}};this.GetMarkBorderData=function(drawInfo,exePrice,columnType,cellType){if(!this.BorderData||!this.BorderData.MapData)return;if(!this.BorderData.MapData.has(columnType))return;var borderData=this.BorderData.MapData.get(columnType);if(!IFrameSplitOperator.IsNonEmptyArray(borderData.Data))return;if(cellType==1){var leftBorder=borderData.Data[1];if(!leftBorder)return;if(leftBorder.ExePrice==exePrice){drawInfo.BorderColor=this.MarkBorderConfig.MaxPositionColor;}}else if(cellType==2){var rightBorder=borderData.Data[2];if(!rightBorder)return;if(rightBorder.ExePrice==exePrice){drawInfo.BorderColor=this.MarkBorderConfig.MaxPositionColor;}}};this.GetNullDrawInfo=function(drawInfo){drawInfo.Text="--";drawInfo.TextColor=this.UnchangeColor;};this.GetPriceDrawInfo=function(price,stock,data,drawInfo){if(!IFrameSplitOperator.IsNumber(price)){this.GetNullDrawInfo(drawInfo);return;}drawInfo.Text=price.toFixed(data.Decimal);if(!IFrameSplitOperator.IsNumber(stock.YClose))drawInfo.TextColor=this.UnchangeColor;else drawInfo.TextColor=this.GetUpDownColor(price,stock.YClose);};//单独处理成交量显示
12726
12731
  this.FormatVolString=function(value,languageID){if(!IFrameSplitOperator.IsNumber(value))return null;return IFrameSplitOperator.FormatVolString(value,languageID);};this.GetUpDownColor=function(price,price2){if(price>price2)return this.UpColor;else if(price<price2)return this.DownColor;else return this.UnchangeColor;};this.DrawCell=function(drawInfo){var rtText=drawInfo.RectText;var yCenter=rtText.Top+rtText.Height/2;if(drawInfo.BGColor)//背景
12727
- {var rtItem=drawInfo.Rect;this.Canvas.fillStyle=drawInfo.BGColor;this.Canvas.fillRect(rtItem.Left,rtItem.Top,rtItem.Width,rtItem.Height);}if(drawInfo.BorderColor)//边框
12732
+ {var rtItem=drawInfo.Rect;this.Canvas.fillStyle=drawInfo.BGColor;this.Canvas.fillRect(rtItem.Left,rtItem.Top,rtItem.Width,rtItem.Height);}if(drawInfo.FlashBGColor)//闪动背景
12733
+ {var rtItem=drawInfo.Rect;this.Canvas.fillStyle=drawInfo.FlashBGColor;this.Canvas.fillRect(rtItem.Left,rtItem.Top,rtItem.Width,rtItem.Height);}if(drawInfo.BorderColor)//边框
12728
12734
  {var rtItem=drawInfo.Rect;this.Canvas.strokeStyle=drawInfo.BorderColor;this.Canvas.strokeRect(ToFixedPoint(rtItem.Left),ToFixedPoint(rtItem.Top+1),ToFixedRect(rtItem.Width),ToFixedRect(rtItem.Height-3));}if(drawInfo.Text)//文字
12729
12735
  {if(drawInfo.TextColor)this.Canvas.fillStyle=drawInfo.TextColor;this.DrawText(drawInfo.Text,drawInfo.TextAlign,rtText.Left,yCenter,rtText.Width);}};this.OnMouseDown=function(x,y,e)//Type: 2=行 3=表头
12730
12736
  {if(!this.Data)return null;var pixelTatio=GetDevicePixelRatio();var insidePoint={X:x/pixelTatio,Y:y/pixelTatio};if(this.UIElement)var uiElement={Left:this.UIElement.getBoundingClientRect().left,Top:this.UIElement.getBoundingClientRect().top};else var uiElement={Left:null,Top:null};var row=this.PtInBody(x,y);if(row){var bRedraw=false;if(!this.SelectedRow){this.SelectedRow={ExePrice:row.ExePrice,CellType:row.CellType};bRedraw=true;}else if(this.SelectedRow.ExePrice!=row.ExePrice||this.SelectedRow.CellType!=row.CellType){this.SelectedRow.ExePrice=row.ExePrice;this.SelectedRow.CellType=row.CellType;bRedraw=true;}var eventID=JSCHART_EVENT_ID.ON_CLICK_TREPORT_ROW;if(e.button==2)eventID=JSCHART_EVENT_ID.ON_RCLICK_TREPORT_ROW;this.SendClickEvent(eventID,{Data:row,X:x,Y:y,e:e,Inside:insidePoint,UIElement:uiElement});return{Type:2,Redraw:bRedraw,Row:row};//行
@@ -12732,7 +12738,7 @@ this.FormatVolString=function(value,languageID){if(!IFrameSplitOperator.IsNumber
12732
12738
  }return null;};this.PtInBody=function(x,y){if(!this.Data)return null;if(!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return null;var top=this.RectClient.Top+this.HeaderHeight;var left=this.RectClient.Left;var right=this.RectClient.Right;var textTop=top;for(var i=this.Data.YOffset,j=0;i<this.Data.Data.length&&j<this.RowCount;++i,++j){var exePrice=this.Data.Data[i];var rtRow={Left:left,Top:textTop,Right:right,Bottom:textTop+this.RowHeight};rtRow.Height=rtRow.Bottom-rtRow.Top;rtRow.Width=rtRow.Right-rtRow.Left;if(x>=rtRow.Left&&x<=rtRow.Right&&y>=rtRow.Top&&y<=rtRow.Bottom){var data={RectRow:rtRow,DataIndex:i,Index:j,ExePrice:exePrice};return this.PtInItem(x,y,data);}textTop+=this.RowHeight;}return null;};this.PtInItem=function(x,y,info,exePrice){var rtCenterItem=this.GetCenterItemRect();var rtRow=info.RectRow;var rtCenter={Left:rtCenterItem.Left,Right:rtCenterItem.Right,Top:rtRow.Top,Height:rtRow.Height,Bottom:rtRow.Bottom};if(x>=rtCenter.Left&&x<=rtCenter.Right&&y>=rtCenter.Top&&y<=rtCenter.Bottom){var data={Rect:rtCenter,DataIndex:info.DataIndex,Index:info.Index,ExePrice:info.ExePrice,CellType:0,Column:this.CenterColumn};data.Item=this.GetExePriceDataCallback(info.ExePrice);return data;}var xLeft=rtCenterItem.Left;//左边
12733
12739
  var xRight=rtCenterItem.Right;//右边
12734
12740
  var reportleft=this.RectClient.Left;var reportRight=this.RectClient.Right;for(var i=this.Data.XOffset;i<this.Column.length;++i){var item=this.Column[i];var itemWidth=item.Width+this.ItemExtraWidth;xLeft-=itemWidth;if(xLeft<reportleft)break;var rtItem={Left:xLeft,Right:xLeft+itemWidth,Top:rtRow.Top,Height:rtRow.Height,Bottom:rtRow.Bottom,Width:itemWidth};if(x>=rtItem.Left&&x<=rtItem.Right&&y>=rtItem.Top&&y<=rtItem.Bottom){var data={Rect:rtCenter,DataIndex:info.DataIndex,Index:info.Index,ExePrice:info.ExePrice,CellType:1,ColumnIndex:i,Column:item};data.Item=this.GetExePriceDataCallback(info.ExePrice);return data;}rtItem={Left:xRight,Right:xRight+itemWidth,Top:rtRow.Top,Height:rtRow.Height,Bottom:rtRow.Bottom,Width:itemWidth};if(x>=rtItem.Left&&x<=rtItem.Right&&y>=rtItem.Top&&y<=rtItem.Bottom){var data={Rect:rtCenter,DataIndex:info.DataIndex,Index:info.Index,ExePrice:info.ExePrice,CellType:2,ColumnIndex:i,Column:item};data.Item=this.GetExePriceDataCallback(info.ExePrice);return data;}xRight+=itemWidth;}return null;};this.PtInHeader=function(x,y){if(!this.IsShowHeader)return null;var left=this.RectClient.Left;var right=this.RectClient.Right;var top=this.RectClient.Top;var bottom=top+this.HeaderHeight;if(!(x>=left&&x<=right&&y>=top&&y<=bottom))return null;var rtHeader={Left:left,Right:right,Top:top,Bottom:bottom};rtHeader.Width=rtHeader.Right-rtHeader.Left;rtHeader.Height=rtHeader.Bottom-rtHeader.Top;var data={RectRow:rtHeader,DataIndex:-1,Index:-1,ExePrice:null};return this.PtInItem(x,y,data);};this.SendClickEvent=function(id,data){var event=this.GetEventCallback(id);if(event&&event.Callback){event.Callback(event,data,this);}};this.GetCurrentPageStatus=function()//{ Start:起始索引, End:结束索引(数据), PageSize:页面可以显示几条记录, IsEnd:是否是最后一页, IsSinglePage:是否只有一页数据}
12735
- {var result={Start:this.Data.YOffset,PageSize:this.RowCount,IsEnd:false,SelectedRow:this.SelectedRow,IsSinglePage:false,DataCount:0};if(IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)){result.End=this.Data.YOffset+this.RowCount-1;result.IsSinglePage=this.Data.Data.length<=this.RowCount;result.DataCount=this.Data.Data.length;if(result.End>=this.Data.Data.length-1)result.IsEnd=true;if(result.End>=this.Data.Data.length)result.End=this.Data.Data.length-1;}else{result.Start=0;result.End=0;result.IsEnd=true;result.IsSinglePage=true;}return result;};}/*
12741
+ {var result={Start:this.Data.YOffset,PageSize:this.RowCount,IsEnd:false,SelectedRow:this.SelectedRow,IsSinglePage:false,DataCount:0};if(IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)){result.End=this.Data.YOffset+this.RowCount-1;result.IsSinglePage=this.Data.Data.length<=this.RowCount;result.DataCount=this.Data.Data.length;if(result.End>=this.Data.Data.length-1)result.IsEnd=true;if(result.End>=this.Data.Data.length)result.End=this.Data.Data.length-1;}else{result.Start=0;result.End=0;result.IsEnd=true;result.IsSinglePage=true;}return result;};this.OnDblClick=function(x,y,e){if(!this.Data)return false;var row=this.PtInBody(x,y);if(row){this.SendClickEvent(JSCHART_EVENT_ID.ON_DBCLICK_TREPORT_ROW,{Data:row,X:x,Y:y});return true;}return false;};}/*
12736
12742
  Copyright (c) 2018 jones
12737
12743
 
12738
12744
  http://www.apache.org/licenses/LICENSE-2.0
@@ -13000,7 +13006,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
13000
13006
  this.ExecuteScript(item,data);}this.Status=0;}};this.OnExecuteFinish=function(data,indexInfo,jsExectute,jobInfo){var message={Data:data,IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.FINISH_EXECUTE_SCRIPT,JobInfo:jobInfo};postMessage(message);};this.OnExecuteError=function(error,indexInfo,jobData){var message={IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.ERROR_EXECUTE_SCRIPT,Error:error};postMessage(message);};}/********************************************************************************
13001
13007
  * 版本信息输出
13002
13008
  *
13003
- */var HQCHART_VERSION="1.1.13083";function PrintHQChartVersion(){var log='*************************************************************************************************************\n*\n* HQChart Ver: '+HQCHART_VERSION+' \n* \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n*************************************************************************************************************\n';console.log(log);}PrintHQChartVersion();//把给外界调用的方法暴露出来
13009
+ */var HQCHART_VERSION="1.1.13094";function PrintHQChartVersion(){var log='*************************************************************************************************************\n*\n* HQChart Ver: '+HQCHART_VERSION+' \n* \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n*************************************************************************************************************\n';console.log(log);}PrintHQChartVersion();//把给外界调用的方法暴露出来
13004
13010
  exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
13005
13011
  // BaseIndex:BaseIndex,
13006
13012
  // ChartLine:ChartLine,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hqchart",
3
- "version": "1.1.13085",
3
+ "version": "1.1.13095",
4
4
  "description": "HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接",
5
5
  "main": "lib/main.js",
6
6
  "scripts": {
@@ -200,6 +200,11 @@ JSTReportChart.GetResource=function()
200
200
  return g_JSChartResource;
201
201
  }
202
202
 
203
+ JSTReportChart.GetfloatPrecision=function(symbol)
204
+ {
205
+ return GetfloatPrecision(symbol);
206
+ }
207
+
203
208
  function HQTReportItem()
204
209
  {
205
210
  this.Symbol;
@@ -255,7 +260,7 @@ function JSTReportChartContainer(uielement)
255
260
  this.Symbol; //期权对应的品种代码
256
261
  this.Name; //期权对应的品种名称
257
262
  this.NetworkFilter; //数据回调接口
258
- this.Data={ XOffset:0, YOffset:0, Data:[], BaseExePrice:null }; //股票列表 BaseExePrice=基准
263
+ this.Data={ XOffset:0, YOffset:0, Data:[], Price:null }; //股票列表 Price=标的物市场价格
259
264
  this.BorderData={ MapData:null }; //key=Field Value:[null, {ExePrice} ,{ExePrice} ]
260
265
  this.SourceData={ Data:[] } ; //原始股票顺序(排序还原用) {ExePrice=行权价格 LeftData:, RightData}
261
266
 
@@ -441,7 +446,7 @@ function JSTReportChartContainer(uielement)
441
446
  {
442
447
  this.SourceData.Data=[];
443
448
  this.Data.Data=[];
444
- this.Data.BaseExePrice=null;
449
+ this.Data.Price=null;
445
450
  this.MapStockData=null;
446
451
  this.MapExePriceData=null;
447
452
  this.BorderData.MapData=null;
@@ -595,9 +600,9 @@ function JSTReportChartContainer(uielement)
595
600
  }
596
601
  }
597
602
 
598
- if (IFrameSplitOperator.IsNumber(data.baseExePrice))
603
+ if (IFrameSplitOperator.IsNumber(data.price))
599
604
  {
600
- this.Data.BaseExePrice=data.baseExePrice;
605
+ this.Data.Price=data.price;
601
606
  }
602
607
 
603
608
  this.Draw();
@@ -683,6 +688,9 @@ function JSTReportChartContainer(uielement)
683
688
  }
684
689
  }
685
690
 
691
+ if (IFrameSplitOperator.IsNumber(data.price)) this.Data.Price=data.price;
692
+
693
+
686
694
  //实时数据排序
687
695
  var chart=this.ChartPaint[0];
688
696
  if (chart && (this.SortInfo.Sort==1 || this.SortInfo.Sort==2 ) && IFrameSplitOperator.IsNumber(this.SortInfo.Field) && this.SortInfo.Field>=0)
@@ -855,6 +863,16 @@ function JSTReportChartContainer(uielement)
855
863
  },frequency);
856
864
  }
857
865
 
866
+ this.UIOnDblClick=function(e)
867
+ {
868
+ var pixelTatio = GetDevicePixelRatio();
869
+ var x = (e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;
870
+ var y = (e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;
871
+
872
+ var chart=this.GetTReportChart();
873
+ if (chart) chart.OnDblClick(x,y,e);
874
+ }
875
+
858
876
  this.UIOnMouseDown=function(e)
859
877
  {
860
878
  var pixelTatio = GetDevicePixelRatio();
@@ -1235,6 +1253,71 @@ function JSTReportChartContainer(uielement)
1235
1253
 
1236
1254
  return null;
1237
1255
  }
1256
+
1257
+ //obj={ ID:, Color: , Time:, Count: }
1258
+ this.SetFlashBGItem=function(symbol, obj)
1259
+ {
1260
+ var item={ ID:obj.ID, Color:obj.Color, Count:1 };
1261
+ if (IFrameSplitOperator.IsNumber(obj.Count)) item.Count=obj.Count;
1262
+ if (IFrameSplitOperator.IsNumber(obj.Time)) item.Time=obj.Time;
1263
+ else item.Time=Date.now();
1264
+
1265
+ if (this.FlashBG.has(symbol))
1266
+ {
1267
+ var stockItem=this.FlashBG.get(symbol);
1268
+ stockItem.LastTime=item.Time;
1269
+ stockItem.Data.set(item.ID, item);
1270
+ }
1271
+ else
1272
+ {
1273
+ var stockItem={ LastTime:item.Time, Data:new Map([ [item.ID, item ] ]) };
1274
+ this.FlashBG.set(symbol, stockItem);
1275
+ }
1276
+ }
1277
+
1278
+ this.GetFlashBGData=function(symbol, time)
1279
+ {
1280
+ if (!this.FlashBG) return null;
1281
+ if (!this.FlashBG.has(symbol)) return null;
1282
+
1283
+ var timeDiff=3*1000;
1284
+ var stockItem=this.FlashBG.get(symbol);
1285
+ if (time-stockItem.LastTime>=timeDiff) //超时的删除
1286
+ {
1287
+ this.FlashBG.delete(symbol);
1288
+ return null;
1289
+ }
1290
+
1291
+ if (!stockItem.Data || stockItem.Data.size<=0)
1292
+ {
1293
+ this.FlashBG.delete(symbol);
1294
+ return null;
1295
+ }
1296
+
1297
+ var aryDelID=[]; //超时需要参数的
1298
+ for(var mapItem of stockItem.Data)
1299
+ {
1300
+ var item=mapItem[1];
1301
+ if (time-item.Time>=timeDiff || item.Count<=0)
1302
+ aryDelID.push(item.ID);
1303
+ }
1304
+
1305
+ if (IFrameSplitOperator.IsNonEmptyArray(aryDelID))
1306
+ {
1307
+ for(var i=0; i<aryDelID.length; ++i)
1308
+ {
1309
+ stockItem.Data.delete(aryDelID[i]);
1310
+ }
1311
+
1312
+ if (stockItem.Data.size<=0)
1313
+ {
1314
+ this.FlashBG.delete(symbol);
1315
+ return null;
1316
+ }
1317
+ }
1318
+
1319
+ return stockItem;
1320
+ }
1238
1321
  }
1239
1322
 
1240
1323
  function JSTReportFrame()
@@ -1829,10 +1912,24 @@ function ChartTReport()
1829
1912
  var reportleft=this.RectClient.Left;
1830
1913
  var reportRight=this.RectClient.Right;
1831
1914
 
1832
- var data= { ExePrice:exePrice , TData:null };
1915
+ var data= { ExePrice:exePrice , TData:null, Decimal:2 };
1833
1916
  if (this.GetExePriceDataCallback) data.TData=this.GetExePriceDataCallback(exePrice);
1834
- //if (this.GetFlashBGDataCallback) data.FlashBG=this.GetFlashBGDataCallback(exePrice, Date.now());
1835
- data.Decimal=2;
1917
+ if (this.GetFlashBGDataCallback && data.TData)
1918
+ {
1919
+ if (data.TData.LeftData) //左侧
1920
+ {
1921
+ var item=data.TData.LeftData;
1922
+ data.TData.LeftFlashBG=this.GetFlashBGDataCallback(item.Symbol, Date.now());
1923
+ data.Decimal=JSTReportChart.GetfloatPrecision(item.Symbol);
1924
+ }
1925
+
1926
+ if (data.TData.RightData) //右侧
1927
+ {
1928
+ var item=data.TData.RightData;
1929
+ data.TData.RightFlashBG=this.GetFlashBGDataCallback(item.Symbol, Date.now());
1930
+ data.Decimal=JSTReportChart.GetfloatPrecision(item.Symbol);
1931
+ }
1932
+ }
1836
1933
 
1837
1934
  var bSelected=false;
1838
1935
  if (this.SelectedRow && this.SelectedRow.ExePrice==exePrice) bSelected=true;
@@ -1843,10 +1940,10 @@ function ChartTReport()
1843
1940
  this.DrawCenterItem(dataIndex, data, this.CenterColumn, rtItem, 0);
1844
1941
  if (bSelected && this.SelectedRow.CellType==0) this.RectSelectedRow=rtItem;
1845
1942
 
1846
- if (IFrameSplitOperator.IsNumber(this.Data.BaseExePrice))
1943
+ if (IFrameSplitOperator.IsNumber(this.Data.Price))
1847
1944
  {
1848
1945
  var leftBGColor=null, rightBGColor=null;
1849
- if (exePrice>this.Data.BaseExePrice)
1946
+ if (exePrice>this.Data.Price)
1850
1947
  {
1851
1948
  leftBGColor=this.UpBGColor;
1852
1949
  rightBGColor=this.DownBGColor;
@@ -1984,9 +2081,30 @@ function ChartTReport()
1984
2081
  }
1985
2082
 
1986
2083
  this.GetMarkBorderData(drawInfo, exePriceData.ExePrice, column.Type, cellType);
2084
+ this.GetFlashBGData(drawInfo, exePriceData, column.Type, cellType);
1987
2085
  }
1988
2086
 
1989
- this.DrawCell(drawInfo);
2087
+ this.DrawCell(drawInfo, exePriceData, column.Type, cellType);
2088
+ }
2089
+
2090
+ this.GetFlashBGData=function(drawInfo, exePriceData, columnType, cellType)
2091
+ {
2092
+ if (!exePriceData.TData) return;
2093
+
2094
+ var data=null;
2095
+ if (cellType==1) data=exePriceData.TData.LeftFlashBG;
2096
+ else if (cellType==2) data=exePriceData.TData.RightFlashBG;
2097
+
2098
+ if (!data || !data.Data) return;
2099
+
2100
+ if (data.Data.has(columnType))
2101
+ {
2102
+ var item=data.Data.get(columnType);
2103
+ drawInfo.FlashBGColor=item.Color;
2104
+ --item.Count;
2105
+
2106
+ if (this.GlobalOption) ++this.GlobalOption.FlashBGCount;
2107
+ }
1990
2108
  }
1991
2109
 
1992
2110
  this.GetMarkBorderData=function(drawInfo, exePrice, columnType, cellType)
@@ -2066,6 +2184,13 @@ function ChartTReport()
2066
2184
  this.Canvas.fillRect(rtItem.Left,rtItem.Top,rtItem.Width,rtItem.Height);
2067
2185
  }
2068
2186
 
2187
+ if (drawInfo.FlashBGColor) //闪动背景
2188
+ {
2189
+ var rtItem=drawInfo.Rect;
2190
+ this.Canvas.fillStyle=drawInfo.FlashBGColor;
2191
+ this.Canvas.fillRect(rtItem.Left,rtItem.Top,rtItem.Width,rtItem.Height);
2192
+ }
2193
+
2069
2194
  if (drawInfo.BorderColor) //边框
2070
2195
  {
2071
2196
  var rtItem=drawInfo.Rect;
@@ -2262,6 +2387,20 @@ function ChartTReport()
2262
2387
  return result;
2263
2388
  }
2264
2389
 
2390
+ this.OnDblClick=function(x,y,e)
2391
+ {
2392
+ if (!this.Data) return false;
2393
+
2394
+ var row=this.PtInBody(x,y);
2395
+ if (row)
2396
+ {
2397
+ this.SendClickEvent(JSCHART_EVENT_ID.ON_DBCLICK_TREPORT_ROW, { Data:row, X:x, Y:y });
2398
+ return true;
2399
+ }
2400
+
2401
+ return false;
2402
+ }
2403
+
2265
2404
  }
2266
2405
 
2267
2406
 
@@ -2491,6 +2491,7 @@ var JSCHART_EVENT_ID=
2491
2491
  ON_CLICK_TREPORT_HEADER:124, //单击T型报价表头
2492
2492
  ON_RCLICK_TREPORT_HEADER:125, //右键点击T型报价表头
2493
2493
  ON_TREPORT_LOCAL_SORT:126, //T型报价列表本地排序
2494
+ ON_CLICK_TREPORT_ROW:127, //左键点击点击T型报价列表
2494
2495
  }
2495
2496
 
2496
2497
  var JSCHART_OPERATOR_ID=
@@ -88730,6 +88731,9 @@ function FuturesTimeData()
88730
88731
  [MARKET_SUFFIX_NAME.CFFEX + '-IC', {Time:2,Decimal:1,Name:'中证股指期货'}],
88731
88732
  [MARKET_SUFFIX_NAME.CFFEX + '-IF', {Time:2,Decimal:1,Name:'沪深股指期货'}],
88732
88733
  [MARKET_SUFFIX_NAME.CFFEX + '-IM', {Time:2,Decimal:1,Name:'中证1000股指期货'}],
88734
+ [MARKET_SUFFIX_NAME.CFFEX + '-IO', {Time:2,Decimal:1,Name:'沪深300股指期权'}],
88735
+ [MARKET_SUFFIX_NAME.CFFEX + '-MO', {Time:2,Decimal:1,Name:'中证1000股指期权'}],
88736
+ [MARKET_SUFFIX_NAME.CFFEX + '-HO', {Time:2,Decimal:1,Name:'上证50股指期权'}],
88733
88737
 
88734
88738
  //广州期货交易所
88735
88739
  [MARKET_SUFFIX_NAME.GZFE+'-SI', {Time:0,Decimal:2,Name:"工业硅"}],
@@ -6383,6 +6383,7 @@ var JSCHART_EVENT_ID=
6383
6383
  ON_CLICK_TREPORT_HEADER:124, //单击T型报价表头
6384
6384
  ON_RCLICK_TREPORT_HEADER:125, //右键点击T型报价表头
6385
6385
  ON_TREPORT_LOCAL_SORT:126, //T型报价列表本地排序
6386
+ ON_CLICK_TREPORT_ROW:127, //左键点击点击T型报价列表
6386
6387
  }
6387
6388
 
6388
6389
  var JSCHART_OPERATOR_ID=
@@ -92622,6 +92623,9 @@ function FuturesTimeData()
92622
92623
  [MARKET_SUFFIX_NAME.CFFEX + '-IC', {Time:2,Decimal:1,Name:'中证股指期货'}],
92623
92624
  [MARKET_SUFFIX_NAME.CFFEX + '-IF', {Time:2,Decimal:1,Name:'沪深股指期货'}],
92624
92625
  [MARKET_SUFFIX_NAME.CFFEX + '-IM', {Time:2,Decimal:1,Name:'中证1000股指期货'}],
92626
+ [MARKET_SUFFIX_NAME.CFFEX + '-IO', {Time:2,Decimal:1,Name:'沪深300股指期权'}],
92627
+ [MARKET_SUFFIX_NAME.CFFEX + '-MO', {Time:2,Decimal:1,Name:'中证1000股指期权'}],
92628
+ [MARKET_SUFFIX_NAME.CFFEX + '-HO', {Time:2,Decimal:1,Name:'上证50股指期权'}],
92625
92629
 
92626
92630
  //广州期货交易所
92627
92631
  [MARKET_SUFFIX_NAME.GZFE+'-SI', {Time:0,Decimal:2,Name:"工业硅"}],
@@ -130965,7 +130969,7 @@ function ScrollBarBGChart()
130965
130969
 
130966
130970
 
130967
130971
 
130968
- var HQCHART_VERSION="1.1.13083";
130972
+ var HQCHART_VERSION="1.1.13094";
130969
130973
 
130970
130974
  function PrintHQChartVersion()
130971
130975
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.13083";
8
+ var HQCHART_VERSION="1.1.13094";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {
@@ -6427,6 +6427,7 @@ var JSCHART_EVENT_ID=
6427
6427
  ON_CLICK_TREPORT_HEADER:124, //单击T型报价表头
6428
6428
  ON_RCLICK_TREPORT_HEADER:125, //右键点击T型报价表头
6429
6429
  ON_TREPORT_LOCAL_SORT:126, //T型报价列表本地排序
6430
+ ON_CLICK_TREPORT_ROW:127, //左键点击点击T型报价列表
6430
6431
  }
6431
6432
 
6432
6433
  var JSCHART_OPERATOR_ID=
@@ -92666,6 +92667,9 @@ function FuturesTimeData()
92666
92667
  [MARKET_SUFFIX_NAME.CFFEX + '-IC', {Time:2,Decimal:1,Name:'中证股指期货'}],
92667
92668
  [MARKET_SUFFIX_NAME.CFFEX + '-IF', {Time:2,Decimal:1,Name:'沪深股指期货'}],
92668
92669
  [MARKET_SUFFIX_NAME.CFFEX + '-IM', {Time:2,Decimal:1,Name:'中证1000股指期货'}],
92670
+ [MARKET_SUFFIX_NAME.CFFEX + '-IO', {Time:2,Decimal:1,Name:'沪深300股指期权'}],
92671
+ [MARKET_SUFFIX_NAME.CFFEX + '-MO', {Time:2,Decimal:1,Name:'中证1000股指期权'}],
92672
+ [MARKET_SUFFIX_NAME.CFFEX + '-HO', {Time:2,Decimal:1,Name:'上证50股指期权'}],
92669
92673
 
92670
92674
  //广州期货交易所
92671
92675
  [MARKET_SUFFIX_NAME.GZFE+'-SI', {Time:0,Decimal:2,Name:"工业硅"}],
@@ -128193,6 +128197,11 @@ JSTReportChart.GetResource=function()
128193
128197
  return g_JSChartResource;
128194
128198
  }
128195
128199
 
128200
+ JSTReportChart.GetfloatPrecision=function(symbol)
128201
+ {
128202
+ return GetfloatPrecision(symbol);
128203
+ }
128204
+
128196
128205
  function HQTReportItem()
128197
128206
  {
128198
128207
  this.Symbol;
@@ -128248,7 +128257,7 @@ function JSTReportChartContainer(uielement)
128248
128257
  this.Symbol; //期权对应的品种代码
128249
128258
  this.Name; //期权对应的品种名称
128250
128259
  this.NetworkFilter; //数据回调接口
128251
- this.Data={ XOffset:0, YOffset:0, Data:[], BaseExePrice:null }; //股票列表 BaseExePrice=基准
128260
+ this.Data={ XOffset:0, YOffset:0, Data:[], Price:null }; //股票列表 Price=标的物市场价格
128252
128261
  this.BorderData={ MapData:null }; //key=Field Value:[null, {ExePrice} ,{ExePrice} ]
128253
128262
  this.SourceData={ Data:[] } ; //原始股票顺序(排序还原用) {ExePrice=行权价格 LeftData:, RightData}
128254
128263
 
@@ -128434,7 +128443,7 @@ function JSTReportChartContainer(uielement)
128434
128443
  {
128435
128444
  this.SourceData.Data=[];
128436
128445
  this.Data.Data=[];
128437
- this.Data.BaseExePrice=null;
128446
+ this.Data.Price=null;
128438
128447
  this.MapStockData=null;
128439
128448
  this.MapExePriceData=null;
128440
128449
  this.BorderData.MapData=null;
@@ -128588,9 +128597,9 @@ function JSTReportChartContainer(uielement)
128588
128597
  }
128589
128598
  }
128590
128599
 
128591
- if (IFrameSplitOperator.IsNumber(data.baseExePrice))
128600
+ if (IFrameSplitOperator.IsNumber(data.price))
128592
128601
  {
128593
- this.Data.BaseExePrice=data.baseExePrice;
128602
+ this.Data.Price=data.price;
128594
128603
  }
128595
128604
 
128596
128605
  this.Draw();
@@ -128676,6 +128685,9 @@ function JSTReportChartContainer(uielement)
128676
128685
  }
128677
128686
  }
128678
128687
 
128688
+ if (IFrameSplitOperator.IsNumber(data.price)) this.Data.Price=data.price;
128689
+
128690
+
128679
128691
  //实时数据排序
128680
128692
  var chart=this.ChartPaint[0];
128681
128693
  if (chart && (this.SortInfo.Sort==1 || this.SortInfo.Sort==2 ) && IFrameSplitOperator.IsNumber(this.SortInfo.Field) && this.SortInfo.Field>=0)
@@ -128848,6 +128860,16 @@ function JSTReportChartContainer(uielement)
128848
128860
  },frequency);
128849
128861
  }
128850
128862
 
128863
+ this.UIOnDblClick=function(e)
128864
+ {
128865
+ var pixelTatio = GetDevicePixelRatio();
128866
+ var x = (e.clientX-this.UIElement.getBoundingClientRect().left)*pixelTatio;
128867
+ var y = (e.clientY-this.UIElement.getBoundingClientRect().top)*pixelTatio;
128868
+
128869
+ var chart=this.GetTReportChart();
128870
+ if (chart) chart.OnDblClick(x,y,e);
128871
+ }
128872
+
128851
128873
  this.UIOnMouseDown=function(e)
128852
128874
  {
128853
128875
  var pixelTatio = GetDevicePixelRatio();
@@ -129228,6 +129250,71 @@ function JSTReportChartContainer(uielement)
129228
129250
 
129229
129251
  return null;
129230
129252
  }
129253
+
129254
+ //obj={ ID:, Color: , Time:, Count: }
129255
+ this.SetFlashBGItem=function(symbol, obj)
129256
+ {
129257
+ var item={ ID:obj.ID, Color:obj.Color, Count:1 };
129258
+ if (IFrameSplitOperator.IsNumber(obj.Count)) item.Count=obj.Count;
129259
+ if (IFrameSplitOperator.IsNumber(obj.Time)) item.Time=obj.Time;
129260
+ else item.Time=Date.now();
129261
+
129262
+ if (this.FlashBG.has(symbol))
129263
+ {
129264
+ var stockItem=this.FlashBG.get(symbol);
129265
+ stockItem.LastTime=item.Time;
129266
+ stockItem.Data.set(item.ID, item);
129267
+ }
129268
+ else
129269
+ {
129270
+ var stockItem={ LastTime:item.Time, Data:new Map([ [item.ID, item ] ]) };
129271
+ this.FlashBG.set(symbol, stockItem);
129272
+ }
129273
+ }
129274
+
129275
+ this.GetFlashBGData=function(symbol, time)
129276
+ {
129277
+ if (!this.FlashBG) return null;
129278
+ if (!this.FlashBG.has(symbol)) return null;
129279
+
129280
+ var timeDiff=3*1000;
129281
+ var stockItem=this.FlashBG.get(symbol);
129282
+ if (time-stockItem.LastTime>=timeDiff) //超时的删除
129283
+ {
129284
+ this.FlashBG.delete(symbol);
129285
+ return null;
129286
+ }
129287
+
129288
+ if (!stockItem.Data || stockItem.Data.size<=0)
129289
+ {
129290
+ this.FlashBG.delete(symbol);
129291
+ return null;
129292
+ }
129293
+
129294
+ var aryDelID=[]; //超时需要参数的
129295
+ for(var mapItem of stockItem.Data)
129296
+ {
129297
+ var item=mapItem[1];
129298
+ if (time-item.Time>=timeDiff || item.Count<=0)
129299
+ aryDelID.push(item.ID);
129300
+ }
129301
+
129302
+ if (IFrameSplitOperator.IsNonEmptyArray(aryDelID))
129303
+ {
129304
+ for(var i=0; i<aryDelID.length; ++i)
129305
+ {
129306
+ stockItem.Data.delete(aryDelID[i]);
129307
+ }
129308
+
129309
+ if (stockItem.Data.size<=0)
129310
+ {
129311
+ this.FlashBG.delete(symbol);
129312
+ return null;
129313
+ }
129314
+ }
129315
+
129316
+ return stockItem;
129317
+ }
129231
129318
  }
129232
129319
 
129233
129320
  function JSTReportFrame()
@@ -129822,10 +129909,24 @@ function ChartTReport()
129822
129909
  var reportleft=this.RectClient.Left;
129823
129910
  var reportRight=this.RectClient.Right;
129824
129911
 
129825
- var data= { ExePrice:exePrice , TData:null };
129912
+ var data= { ExePrice:exePrice , TData:null, Decimal:2 };
129826
129913
  if (this.GetExePriceDataCallback) data.TData=this.GetExePriceDataCallback(exePrice);
129827
- //if (this.GetFlashBGDataCallback) data.FlashBG=this.GetFlashBGDataCallback(exePrice, Date.now());
129828
- data.Decimal=2;
129914
+ if (this.GetFlashBGDataCallback && data.TData)
129915
+ {
129916
+ if (data.TData.LeftData) //左侧
129917
+ {
129918
+ var item=data.TData.LeftData;
129919
+ data.TData.LeftFlashBG=this.GetFlashBGDataCallback(item.Symbol, Date.now());
129920
+ data.Decimal=JSTReportChart.GetfloatPrecision(item.Symbol);
129921
+ }
129922
+
129923
+ if (data.TData.RightData) //右侧
129924
+ {
129925
+ var item=data.TData.RightData;
129926
+ data.TData.RightFlashBG=this.GetFlashBGDataCallback(item.Symbol, Date.now());
129927
+ data.Decimal=JSTReportChart.GetfloatPrecision(item.Symbol);
129928
+ }
129929
+ }
129829
129930
 
129830
129931
  var bSelected=false;
129831
129932
  if (this.SelectedRow && this.SelectedRow.ExePrice==exePrice) bSelected=true;
@@ -129836,10 +129937,10 @@ function ChartTReport()
129836
129937
  this.DrawCenterItem(dataIndex, data, this.CenterColumn, rtItem, 0);
129837
129938
  if (bSelected && this.SelectedRow.CellType==0) this.RectSelectedRow=rtItem;
129838
129939
 
129839
- if (IFrameSplitOperator.IsNumber(this.Data.BaseExePrice))
129940
+ if (IFrameSplitOperator.IsNumber(this.Data.Price))
129840
129941
  {
129841
129942
  var leftBGColor=null, rightBGColor=null;
129842
- if (exePrice>this.Data.BaseExePrice)
129943
+ if (exePrice>this.Data.Price)
129843
129944
  {
129844
129945
  leftBGColor=this.UpBGColor;
129845
129946
  rightBGColor=this.DownBGColor;
@@ -129977,9 +130078,30 @@ function ChartTReport()
129977
130078
  }
129978
130079
 
129979
130080
  this.GetMarkBorderData(drawInfo, exePriceData.ExePrice, column.Type, cellType);
130081
+ this.GetFlashBGData(drawInfo, exePriceData, column.Type, cellType);
129980
130082
  }
129981
130083
 
129982
- this.DrawCell(drawInfo);
130084
+ this.DrawCell(drawInfo, exePriceData, column.Type, cellType);
130085
+ }
130086
+
130087
+ this.GetFlashBGData=function(drawInfo, exePriceData, columnType, cellType)
130088
+ {
130089
+ if (!exePriceData.TData) return;
130090
+
130091
+ var data=null;
130092
+ if (cellType==1) data=exePriceData.TData.LeftFlashBG;
130093
+ else if (cellType==2) data=exePriceData.TData.RightFlashBG;
130094
+
130095
+ if (!data || !data.Data) return;
130096
+
130097
+ if (data.Data.has(columnType))
130098
+ {
130099
+ var item=data.Data.get(columnType);
130100
+ drawInfo.FlashBGColor=item.Color;
130101
+ --item.Count;
130102
+
130103
+ if (this.GlobalOption) ++this.GlobalOption.FlashBGCount;
130104
+ }
129983
130105
  }
129984
130106
 
129985
130107
  this.GetMarkBorderData=function(drawInfo, exePrice, columnType, cellType)
@@ -130059,6 +130181,13 @@ function ChartTReport()
130059
130181
  this.Canvas.fillRect(rtItem.Left,rtItem.Top,rtItem.Width,rtItem.Height);
130060
130182
  }
130061
130183
 
130184
+ if (drawInfo.FlashBGColor) //闪动背景
130185
+ {
130186
+ var rtItem=drawInfo.Rect;
130187
+ this.Canvas.fillStyle=drawInfo.FlashBGColor;
130188
+ this.Canvas.fillRect(rtItem.Left,rtItem.Top,rtItem.Width,rtItem.Height);
130189
+ }
130190
+
130062
130191
  if (drawInfo.BorderColor) //边框
130063
130192
  {
130064
130193
  var rtItem=drawInfo.Rect;
@@ -130255,6 +130384,20 @@ function ChartTReport()
130255
130384
  return result;
130256
130385
  }
130257
130386
 
130387
+ this.OnDblClick=function(x,y,e)
130388
+ {
130389
+ if (!this.Data) return false;
130390
+
130391
+ var row=this.PtInBody(x,y);
130392
+ if (row)
130393
+ {
130394
+ this.SendClickEvent(JSCHART_EVENT_ID.ON_DBCLICK_TREPORT_ROW, { Data:row, X:x, Y:y });
130395
+ return true;
130396
+ }
130397
+
130398
+ return false;
130399
+ }
130400
+
130258
130401
  }
130259
130402
 
130260
130403
 
@@ -133390,7 +133533,7 @@ function HQChartScriptWorker()
133390
133533
 
133391
133534
 
133392
133535
 
133393
- var HQCHART_VERSION="1.1.13083";
133536
+ var HQCHART_VERSION="1.1.13094";
133394
133537
 
133395
133538
  function PrintHQChartVersion()
133396
133539
  {