hqchart 1.1.12831 → 1.1.12840
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.NetworkFilterTest.vue.js +2 -2
- package/lib/umychart.vue.js +8 -7
- package/package.json +1 -1
- package/src/jscommon/umychart.NetworkFilterTest.js +94 -0
- package/src/jscommon/umychart.js +141 -54
- package/src/jscommon/umychart.testdata/60000.sh.BlockTrading.js +967 -0
- package/src/jscommon/umychart.testdata/60000.sh.NewsInteract.js +7732 -0
- package/src/jscommon/umychart.testdata/60000.sh.TradeDetal.js +70 -0
- package/src/jscommon/umychart.testdata.js +94 -0
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +142 -55
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.NetworkFilterTest.vue.js +94 -0
- package/src/jscommon/umychart.vue/umychart.vue.js +142 -55
|
@@ -11,7 +11,7 @@ HQData.RequestRealtimeData(data,callback);break;case'KLineChartContainer::Reques
|
|
|
11
11
|
HQData.RequestFlowCapitalData(data,callback);break;case'KLineChartContainer::ReqeustHistoryMinuteData'://分钟全量数据下载
|
|
12
12
|
HQData.RequestHistoryMinuteData(data,callback);break;case'KLineChartContainer::RequestMinuteRealtimeData'://分钟增量数据更新
|
|
13
13
|
HQData.RequestMinuteRealtimeData(data,callback);break;case"JSSymbolData::GetVariantData"://额外的变量数据
|
|
14
|
-
HQData.RequestIndexVariantData(data,callback);break;}};HQData.RequestMinuteData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Data.symbol[0];//请求的股票代码
|
|
14
|
+
HQData.RequestIndexVariantData(data,callback);break;case"AnnouncementInfo::RequestData":HQData.AnnouncementInfo_RequestData(data,callback);break;case"PforecastInfo::RequestData":HQData.PforecastInfo_RequestData(data,callback);break;case"InvestorInfo::RequestData":HQData.InvestorInfo_RequestData(data,callback);break;case"ResearchInfo::RequestData":break;case"BlockTrading::RequestData":HQData.BlockTrading_RequestData(data,callback);break;case"TradeDetail::RequestData":HQData.TradeDetail_RequestData(data,callback);break;}};HQData.RequestMinuteData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Data.symbol[0];//请求的股票代码
|
|
15
15
|
var dayCount=data.Request.Data.daycount;console.log("[HQData::RequestMinuteData] Symbol="+symbol);var hqchartData=MINUTE_1DAY_DATA;hqchartData.stock[0].symbol=symbol;hqchartData.stock[0].name=symbol;callback(hqchartData);};HQData.RequestMinuteDaysData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Data.symbol;//请求的股票代码
|
|
16
16
|
var dayCount=data.Request.Data.daycount;console.log("[HQData::RequestMinuteDaysData] Symbol="+symbol);var hqchartData=MINUTE_5DAY_DATA;hqchartData.symbol=symbol;hqchartData.name=symbol;callback(hqchartData);};HQData.RequestHistoryData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Data.symbol;//请求的股票代码
|
|
17
17
|
console.log("[HQData::RequestMinuteDaysData] Symbol="+symbol);var hqchartData=KLINE_DAY_DATA;hqchartData.symbol=symbol;hqchartData.name=symbol;callback(hqchartData);};HQData.RequestFlowCapitalData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Data.symbol;//请求的股票代码
|
|
@@ -20,4 +20,4 @@ console.log("[HQData::RequestRealtimeData] Symbol="+symbol);var hqchartData=KLIN
|
|
|
20
20
|
console.log("[HQData::RequestHistoryMinuteData] Symbol="+symbol);var hqchartData=KLINE_MINUTE_DATA;hqchartData.name=symbol;hqchartData.symbol=symbol;callback(hqchartData);};HQData.RequestMinuteRealtimeData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Data.symbol[0];//请求的股票代码
|
|
21
21
|
console.log("[HQData::RequestMinuteRealtimeData] Symbol="+symbol);var hqchartData=JSON.parse((0,_stringify2.default)(KLINE_1MINUTE_DATA));var kItem=hqchartData.data[0];var price=kItem[5];var value=Math.ceil(Math.random()*10)/1000*price;var bUp=Math.ceil(Math.random()*10)>=5;if(bUp)price+=value;else price-=value;kItem[5]=price;kItem[3]=Math.max(price,kItem[3]);kItem[4]=Math.min(price,kItem[4]);hqchartData.name=symbol;hqchartData.symbol=symbol;callback(hqchartData);};HQData.RequestIndexVariantData=function(data,callback){var varName=data.Request.Data.VariantName;//变量名称
|
|
22
22
|
if(varName=="FROMOPEN"){var hqchartData={};//单数据
|
|
23
|
-
hqchartData.Data={Date:20230707,Value:240};hqchartData.DataType=1;callback(hqchartData);}};/*暴露外部用的方法*/exports.default={HQData:HQData};
|
|
23
|
+
hqchartData.Data={Date:20230707,Value:240};hqchartData.DataType=1;callback(hqchartData);}};HQData.AnnouncementInfo_RequestData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Symbol;var hqchartData={symbol:symbol,report:[]};var kData=data.HQChart.ChartPaint[0].Data;for(var i=0,j=1;i<kData.Data.length;++i){var kItem=kData.Data[i];if(i%10!=4)continue;var itemReport={releasedate:kItem.Date,time:kItem.Time,title:"\u516C\u544A("+j+") xxxx"};hqchartData.report.push(itemReport);++j;}callback(hqchartData);};HQData.PforecastInfo_RequestData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Symbol;var hqchartData={symbol:symbol,report:[]};var kData=data.HQChart.ChartPaint[0].Data;for(var i=0,j=1;i<kData.Data.length;++i){var kItem=kData.Data[i];if(i%10!=4)continue;var itemReport={date:kItem.Date,time:kItem.Time,title:"\u516C\u544A("+j+") xxxx"};hqchartData.report.push(itemReport);++j;}callback(hqchartData);};HQData.InvestorInfo_RequestData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Symbol;callback(TEST_NEWSINTERACT_DATA);};HQData.BlockTrading_RequestData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Symbol;callback(TEST_BLOCK_TRADING_DATA);};HQData.TradeDetail_RequestData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Symbol;callback(TEST_TRADE_DETAL_DATA);};/*暴露外部用的方法*/exports.default={HQData:HQData};
|
package/lib/umychart.vue.js
CHANGED
|
@@ -4164,9 +4164,9 @@ tooltip.Data=item;tooltip.ChartPaint=this;tooltip.Type=3;//异动信息
|
|
|
4164
4164
|
return true;}}return false;};}//MACD森林线 支持横屏
|
|
4165
4165
|
function ChartMACD(){this.newMethod=IChartPainting;//派生
|
|
4166
4166
|
this.newMethod();delete this.newMethod;this.ClassName="ChartMACD";this.UpColor=g_JSChartResource.UpBarColor;this.DownColor=g_JSChartResource.DownBarColor;this.LineWidth=1;this.DrawSelectedStatus=this.DrawLinePoint;this.ExportData=this.ExportArrayData;this.PtInChart=function(x,y){var dataWidth=this.ChartFrame.DataWidth;var barWidth=this.LineWidth*GetDevicePixelRatio();if(this.barWidth==50)barWidth=null;else if(barWidth>dataWidth)barWidth=dataWidth;if(barWidth<4)barWidth=4;//宽度太小了点不到
|
|
4167
|
-
return this.PtInBar(x,y,{BarWidth:barWidth});};this.
|
|
4168
|
-
|
|
4169
|
-
this.
|
|
4167
|
+
return this.PtInBar(x,y,{BarWidth:barWidth});};this.DrawBars=function(lineWidth,bUpBar){var isMinute=this.IsMinuteFrame();var border=this.ChartBorder.GetBorder();var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var xPointCount=this.ChartFrame.XPointCount;var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;var lockRect=this.GetLockRect();if(lockRect)chartright=lockRect.Left;if(bUpBar)this.Canvas.strokeStyle=this.UpColor;else this.Canvas.strokeStyle=this.DownColor;var yBottom=this.ChartFrame.GetYFromData(0);this.Canvas.beginPath();var drawCount=0;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var value=this.Data.Data[i];if(value==null)continue;if(bUpBar){if(value<0)continue;}else{if(value>=0)continue;}if(isMinute){var x=this.ChartFrame.GetXFromIndex(j);}else{var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;var x=left+(right-left)/2;}if(x>chartright)break;var y=this.ChartFrame.GetYFromData(value);var xFix=ToFixedPoint2(lineWidth,x);//毛边修正
|
|
4168
|
+
this.Canvas.moveTo(xFix,yBottom);this.Canvas.lineTo(xFix,y);++drawCount;}if(drawCount>0)this.Canvas.stroke();};this.Draw=function(){if(!this.IsShow||this.ChartFrame.IsMinSize||!this.IsVisible)return;if(this.IsShowIndexTitleOnly())return;if(this.IsHideScriptIndex())return;if(this.NotSupportMessage){this.DrawNotSupportmessage();return;}if(this.ChartFrame.IsHScreen===true){this.HScreenDraw();return;}var dataWidth=this.ChartFrame.DataWidth;var lineWidth=this.LineWidth*GetDevicePixelRatio();if(this.LineWidth==50)lineWidth=dataWidth;else if(lineWidth>dataWidth)lineWidth=dataWidth;var backupLineWidth=this.Canvas.lineWidth;this.Canvas.lineWidth=lineWidth;//上下分开画
|
|
4169
|
+
this.DrawBars(lineWidth,true);this.DrawBars(lineWidth,false);this.Canvas.lineWidth=backupLineWidth;};this.HScreenDraw=function(){var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var border=this.ChartBorder.GetHScreenBorder();var chartright=border.BottomEx;var xPointCount=this.ChartFrame.XPointCount;var lockRect=this.GetLockRect();if(lockRect)chartright=lockRect.Top;var yBottom=this.ChartFrame.GetYFromData(0);var lineWidth=this.LineWidth*GetDevicePixelRatio();if(this.LineWidth==50)lineWidth=dataWidth;else if(lineWidth>dataWidth)lineWidth=dataWidth;var backupLineWidth=this.Canvas.lineWidth;this.Canvas.lineWidth=lineWidth;for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var value=this.Data.Data[i];if(value==null)continue;var x=this.ChartFrame.GetXFromIndex(j);var y=this.ChartFrame.GetYFromData(value);if(x>chartright)break;this.Canvas.beginPath();this.Canvas.moveTo(yBottom,ToFixedPoint(x));this.Canvas.lineTo(y,ToFixedPoint(x));if(value>=0)this.Canvas.strokeStyle=this.UpColor;else this.Canvas.strokeStyle=this.DownColor;this.Canvas.stroke();this.Canvas.closePath();}this.Canvas.lineWidth=backupLineWidth;};this.GetItemData=function(indexData){if(!indexData)return null;if(!IFrameSplitOperator.IsNumber(indexData.Index))return null;if(!this.Data||!IFrameSplitOperator.IsNonEmptyArray(this.Data.Data))return null;var index=indexData.Index;if(index<0||index>=this.Data.Data.length)return null;var item=this.Data.Data[index];return[{Value:item,Color:item>0?this.UpColor:this.DownColor,Name:this.Name}];};}//柱子
|
|
4170
4170
|
function ChartBar(){this.newMethod=IChartPainting;//派生
|
|
4171
4171
|
this.newMethod();delete this.newMethod;this.ClassName="ChartBar";this.UpBarColor=g_JSChartResource.UpBarColor;this.DownBarColor=g_JSChartResource.DownBarColor;this.Draw=function(){if(this.ChartFrame.IsMinSize)return;if(this.NotSupportMessage){this.DrawNotSupportmessage();return;}var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var chartright=this.ChartBorder.GetRight();var xPointCount=this.ChartFrame.XPointCount;var xOffset=this.ChartBorder.GetLeft()+distanceWidth/2.0+2.0;var bFirstPoint=true;var drawCount=0;var yBottom=this.ChartFrame.GetYFromData(0);if(dataWidth>=4){yBottom=ToFixedRect(yBottom);//调整为整数
|
|
4172
4172
|
for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var value=this.Data.Data[i];if(value==null||value==0)continue;var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;var x=this.ChartFrame.GetXFromIndex(j);var y=this.ChartFrame.GetYFromData(value);if(value>0)this.Canvas.fillStyle=this.UpBarColor;else this.Canvas.fillStyle=this.DownBarColor;//高度调整为整数
|
|
@@ -4270,10 +4270,11 @@ this.Canvas.strokeStyle=color;if(bgColor)this.Canvas.fill(path);if(color)this.Ca
|
|
|
4270
4270
|
function ChartMultiText(){this.newMethod=IChartPainting;//派生
|
|
4271
4271
|
this.newMethod();delete this.newMethod;this.ClassName="ChartMultiText";this.Texts=[];//[ {Index:, Value:, Text:, Color:, Font: , Baseline:, Line:{ Color:, Dash:[虚线点], KData:"H/L", Offset:[5,10], Width:线粗细 }} ]
|
|
4272
4272
|
this.Font=g_JSChartResource.DefaultTextFont;this.Color=g_JSChartResource.DefaultTextColor;this.IsHScreen=false;//是否横屏
|
|
4273
|
-
this.
|
|
4273
|
+
this.BuildKey=function(item){if(IFrameSplitOperator.IsNumber(item.Time)){var key=kItem.Date+'-'+item.Time;}else{var key=''+item.Date;}return key;};this.GetShowTextData=function(){var xPointCount=this.ChartFrame.XPointCount;var offset=this.Data.DataOffset;var mapText=new _map2.default();//key='date-time' value={ Data:[] }
|
|
4274
|
+
for(var i=0;i<this.Texts.length;++i){var item=this.Texts[i];if(!item.Text)continue;if(!IFrameSplitOperator.IsNumber(item.Index))continue;var index=item.Index-offset;if(index>=0&&index<xPointCount){var key=this.BuildKey(item);if(mapText.has(key)){var textItem=mapText.get(key);textItem.Data.push(item);}else{var textItem={Data:[item]};mapText.set(key,textItem);}}}return mapText;};this.DrawAllText=function(mapText){var bHScreen=this.ChartFrame.IsHScreen===true;var isMinute=this.IsMinuteFrame();var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var xPointCount=this.ChartFrame.XPointCount;if(bHScreen){var border=this.ChartBorder.GetHScreenBorder();var chartright=border.BottomEx;var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var left=this.ChartBorder.GetTop();var right=this.ChartBorder.GetBottom();}else{var border=this.ChartBorder.GetBorder();var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;var chartright=border.RightEx;var left=this.ChartBorder.GetLeft();var right=this.ChartBorder.GetRight();}for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j,xOffset+=dataWidth+distanceWidth){var kItem=this.Data.Data[i];if(!kItem)continue;var key=this.BuildKey(kItem);if(!mapText.has(key))continue;var left=xOffset;var right=xOffset+dataWidth;if(right>chartright)break;var x=left+(right-left)/2;var textItem=mapText.get(key);for(var k=0;k<textItem.Data.length;++k){var item=textItem.Data[k];if(item.Value=="TOP")y=top;else if(item.Value=="BOTTOM")y=bottom;else y=this.ChartFrame.GetYFromData(item.Value);if(item.Color)this.Canvas.fillStyle=item.Color;else this.Canvas.fillStyle=this.Color;if(item.Font)this.Canvas.font=item.Font;else this.Canvas.font=this.Font;var textWidth=this.Canvas.measureText(item.Text).width;this.Canvas.textAlign='center';if(x+textWidth/2>=right){this.Canvas.textAlign='right';x=right;}else if(x-textWidth/2<left){this.Canvas.textAlign='left';x=left;}if(item.Baseline==1)this.Canvas.textBaseline='top';else if(item.Baseline==2)this.Canvas.textBaseline='bottom';else this.Canvas.textBaseline='middle';if(this.IsHScreen){this.Canvas.save();this.Canvas.translate(y,x);this.Canvas.rotate(90*Math.PI/180);this.Canvas.fillText(item.Text,0,0);this.Canvas.restore();}else{if(IFrameSplitOperator.IsNumber(item.YMove))y+=item.YMove;this.Canvas.fillText(item.Text,x,y);}if(item.Line){var kItem=this.Data.Data[item.Index];var price=item.Line.KData=="H"?kItem.High:kItem.Low;var yPrice=this.ChartFrame.GetYFromData(price);var yText=y;if(Array.isArray(item.Line.Offset)&&item.Line.Offset.length==2){if(yText>yPrice)//文字在下方
|
|
4274
4275
|
{yText-=item.Line.Offset[1];yPrice+=item.Line.Offset[0];}else if(yText<yPrice){yText+=item.Line.Offset[1];yPrice-=item.Line.Offset[0];}}this.Canvas.save();if(item.Line.Dash)this.Canvas.setLineDash(item.Line.Dash);//虚线
|
|
4275
4276
|
if(item.Line.Width>0)this.Canvas.lineWidth=item.Line.Width;//线宽
|
|
4276
|
-
this.Canvas.strokeStyle=item.Line.Color;this.Canvas.beginPath();if(this.IsHScreen){this.Canvas.moveTo(yText,ToFixedPoint(x));this.Canvas.lineTo(yPrice,ToFixedPoint(x));}else{this.Canvas.moveTo(ToFixedPoint(x),yText);this.Canvas.lineTo(ToFixedPoint(x),yPrice);}this.Canvas.stroke();this.Canvas.restore();}}}};this.GetMaxMin=function(){var range={Min:null,Max:null};if(!this.Texts)return range;var xPointCount=this.ChartFrame.XPointCount;var start=this.Data.DataOffset;var end=start+xPointCount;for(var i in this.Texts){var item=this.Texts[i];if(item.Index>=start&&item.Index<end){if(range.Max==null)range.Max=item.Value;else if(range.Max<item.Value)range.Max=item.Value;if(range.Min==null)range.Min=item.Value;else if(range.Min>item.Value)range.Min=item.Value;}}return range;};}// 图标集合 支持横屏
|
|
4277
|
+
this.Canvas.strokeStyle=item.Line.Color;this.Canvas.beginPath();if(this.IsHScreen){this.Canvas.moveTo(yText,ToFixedPoint(x));this.Canvas.lineTo(yPrice,ToFixedPoint(x));}else{this.Canvas.moveTo(ToFixedPoint(x),yText);this.Canvas.lineTo(ToFixedPoint(x),yPrice);}this.Canvas.stroke();this.Canvas.restore();}}}};this.Draw=function(){if(!this.IsShow||this.ChartFrame.IsMinSize)return;if(!this.Data||this.Data.length<=0)return;if(!this.Texts)return;this.IsHScreen=this.ChartFrame.IsHScreen===true;var mapText=this.GetShowTextData();if(mapText.size<=0)return;this.DrawAllText(mapText);};this.GetMaxMin=function(){var range={Min:null,Max:null};if(!this.Texts)return range;var xPointCount=this.ChartFrame.XPointCount;var start=this.Data.DataOffset;var end=start+xPointCount;for(var i in this.Texts){var item=this.Texts[i];if(item.Index>=start&&item.Index<end){if(range.Max==null)range.Max=item.Value;else if(range.Max<item.Value)range.Max=item.Value;if(range.Min==null)range.Min=item.Value;else if(range.Min>item.Value)range.Min=item.Value;}}return range;};}// 图标集合 支持横屏
|
|
4277
4278
|
function ChartMultiSVGIcon(){this.newMethod=IChartPainting;//派生
|
|
4278
4279
|
this.newMethod();delete this.newMethod;this.ClassName="ChartMultiSVGIcon";this.Icon;//[ {Index:, Value:, Symbol:, Color:, Baseline:, Line:{ Color:, Dash:[虚线点], KData:"H/L", Offset:[5,10], Width:线粗细 } } ]
|
|
4279
4280
|
this.IconSize={Max:g_JSChartResource.DRAWICON.Icon.MaxSize,Min:g_JSChartResource.DRAWICON.Icon.MinSize,//图标的最大最小值
|
|
@@ -9255,7 +9256,7 @@ if(MARKET_SUFFIX_NAME.IsHSX(upperSymbol))return this.GetHSX(upperSymbol);if(MARK
|
|
|
9255
9256
|
{var splitData=g_IPETimeData.GetSplitData(upperSymbol);if(!splitData)return null;return this.GetFutures(splitData);}};}//走势图刻度分钟线
|
|
9256
9257
|
function MinuteCoordinateData(){//沪深走势图时间刻度
|
|
9257
9258
|
var SHZE_MINUTE_X_COORDINATE={Full://完整模式
|
|
9258
|
-
[[0,0,"rgb(200,200,200)","09:30"],//[0]=索引 [1]=线段类型 [2]=文字颜色(弃用) [3]=刻度文字 [4]=线段颜色 [5]=背景色
|
|
9259
|
+
[[0,0,"rgb(200,200,200)","09:30"],//[0]=索引 [1]=线段类型(预留) [2]=文字颜色(弃用) [3]=刻度文字 [4]=线段颜色 [5]=背景色
|
|
9259
9260
|
[31,0,"RGB(200,200,200)","10:00"],[61,0,"RGB(200,200,200)","10:30"],[91,0,"RGB(200,200,200)","11:00"],[122,1,"RGB(200,200,200)","13:00"],[152,0,"RGB(200,200,200)","13:30"],[182,0,"RGB(200,200,200)","14:00"],[212,0,"RGB(200,200,200)","14:30"],[242,1,"RGB(200,200,200)","15:00"]],Simple://简洁模式
|
|
9260
9261
|
[[0,0,"rgb(200,200,200)","09:30"],[61,0,"RGB(200,200,200)","10:30"],[122,1,"RGB(200,200,200)","13:00"],[182,0,"RGB(200,200,200)","14:00"],[242,1,"RGB(200,200,200)","15:00"]],Min://最小模式
|
|
9261
9262
|
[[0,0,"rgb(200,200,200)","09:30"],[122,1,"RGB(200,200,200)","13:00"],[242,1,"RGB(200,200,200)","15:00"]],Count:243,MiddleCount:122,GetData:function GetData(width){if(width<200)return this.Min;else if(width<400)return this.Simple;return this.Full;}};//上海股票期权时间刻度
|
|
@@ -13028,7 +13029,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
|
|
|
13028
13029
|
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);};}/********************************************************************************
|
|
13029
13030
|
* 版本信息输出
|
|
13030
13031
|
*
|
|
13031
|
-
*/var HQCHART_VERSION="1.1.
|
|
13032
|
+
*/var HQCHART_VERSION="1.1.12839";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();//把给外界调用的方法暴露出来
|
|
13032
13033
|
exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
|
|
13033
13034
|
// BaseIndex:BaseIndex,
|
|
13034
13035
|
// ChartLine:ChartLine,
|
package/package.json
CHANGED
|
@@ -48717,6 +48717,29 @@ HQData.NetworkFilter=function(data, callback)
|
|
|
48717
48717
|
case "JSSymbolData::GetVariantData": //额外的变量数据
|
|
48718
48718
|
HQData.RequestIndexVariantData(data,callback);
|
|
48719
48719
|
break;
|
|
48720
|
+
|
|
48721
|
+
case "AnnouncementInfo::RequestData":
|
|
48722
|
+
HQData.AnnouncementInfo_RequestData(data,callback);
|
|
48723
|
+
break;
|
|
48724
|
+
|
|
48725
|
+
case "PforecastInfo::RequestData":
|
|
48726
|
+
HQData.PforecastInfo_RequestData(data,callback);
|
|
48727
|
+
break;
|
|
48728
|
+
|
|
48729
|
+
case "InvestorInfo::RequestData":
|
|
48730
|
+
HQData.InvestorInfo_RequestData(data,callback);
|
|
48731
|
+
break;
|
|
48732
|
+
|
|
48733
|
+
case "ResearchInfo::RequestData":
|
|
48734
|
+
break;
|
|
48735
|
+
|
|
48736
|
+
case "BlockTrading::RequestData":
|
|
48737
|
+
HQData.BlockTrading_RequestData(data,callback);
|
|
48738
|
+
break;
|
|
48739
|
+
|
|
48740
|
+
case "TradeDetail::RequestData":
|
|
48741
|
+
HQData.TradeDetail_RequestData(data,callback);
|
|
48742
|
+
break;
|
|
48720
48743
|
}
|
|
48721
48744
|
}
|
|
48722
48745
|
|
|
@@ -48842,3 +48865,74 @@ HQData.RequestIndexVariantData=function(data,callback)
|
|
|
48842
48865
|
}
|
|
48843
48866
|
|
|
48844
48867
|
}
|
|
48868
|
+
|
|
48869
|
+
HQData.AnnouncementInfo_RequestData=function(data,callback)
|
|
48870
|
+
{
|
|
48871
|
+
data.PreventDefault=true;
|
|
48872
|
+
var symbol=data.Request.Symbol;
|
|
48873
|
+
|
|
48874
|
+
var hqchartData={ symbol:symbol, report:[] };
|
|
48875
|
+
|
|
48876
|
+
var kData=data.HQChart.ChartPaint[0].Data;
|
|
48877
|
+
for(var i=0, j=1;i<kData.Data.length;++i)
|
|
48878
|
+
{
|
|
48879
|
+
var kItem=kData.Data[i];
|
|
48880
|
+
if (i%10!=4) continue;
|
|
48881
|
+
|
|
48882
|
+
var itemReport={ releasedate:kItem.Date, time:kItem.Time, title:`公告(${j}) xxxx`, }
|
|
48883
|
+
|
|
48884
|
+
hqchartData.report.push(itemReport);
|
|
48885
|
+
|
|
48886
|
+
++j;
|
|
48887
|
+
}
|
|
48888
|
+
|
|
48889
|
+
callback(hqchartData);
|
|
48890
|
+
}
|
|
48891
|
+
|
|
48892
|
+
|
|
48893
|
+
HQData.PforecastInfo_RequestData=function(data,callback)
|
|
48894
|
+
{
|
|
48895
|
+
data.PreventDefault=true;
|
|
48896
|
+
var symbol=data.Request.Symbol;
|
|
48897
|
+
|
|
48898
|
+
var hqchartData={ symbol:symbol, report:[] };
|
|
48899
|
+
|
|
48900
|
+
var kData=data.HQChart.ChartPaint[0].Data;
|
|
48901
|
+
for(var i=0, j=1;i<kData.Data.length;++i)
|
|
48902
|
+
{
|
|
48903
|
+
var kItem=kData.Data[i];
|
|
48904
|
+
if (i%10!=4) continue;
|
|
48905
|
+
|
|
48906
|
+
var itemReport={ date:kItem.Date, time:kItem.Time, title:`公告(${j}) xxxx`, }
|
|
48907
|
+
|
|
48908
|
+
hqchartData.report.push(itemReport);
|
|
48909
|
+
|
|
48910
|
+
++j;
|
|
48911
|
+
}
|
|
48912
|
+
|
|
48913
|
+
callback(hqchartData);
|
|
48914
|
+
}
|
|
48915
|
+
|
|
48916
|
+
HQData.InvestorInfo_RequestData=function(data,callback)
|
|
48917
|
+
{
|
|
48918
|
+
data.PreventDefault=true;
|
|
48919
|
+
var symbol=data.Request.Symbol;
|
|
48920
|
+
|
|
48921
|
+
callback(TEST_NEWSINTERACT_DATA);
|
|
48922
|
+
}
|
|
48923
|
+
|
|
48924
|
+
HQData.BlockTrading_RequestData=function(data,callback)
|
|
48925
|
+
{
|
|
48926
|
+
data.PreventDefault=true;
|
|
48927
|
+
var symbol=data.Request.Symbol;
|
|
48928
|
+
|
|
48929
|
+
callback(TEST_BLOCK_TRADING_DATA);
|
|
48930
|
+
}
|
|
48931
|
+
|
|
48932
|
+
HQData.TradeDetail_RequestData=function(data,callback)
|
|
48933
|
+
{
|
|
48934
|
+
data.PreventDefault=true;
|
|
48935
|
+
var symbol=data.Request.Symbol;
|
|
48936
|
+
|
|
48937
|
+
callback(TEST_TRADE_DETAL_DATA);
|
|
48938
|
+
}
|
package/src/jscommon/umychart.js
CHANGED
|
@@ -33555,49 +33555,37 @@ function ChartMACD()
|
|
|
33555
33555
|
return this.PtInBar(x, y, { BarWidth:barWidth })
|
|
33556
33556
|
}
|
|
33557
33557
|
|
|
33558
|
-
this.
|
|
33558
|
+
this.DrawBars=function(lineWidth, bUpBar)
|
|
33559
33559
|
{
|
|
33560
|
-
if (!this.IsShow || this.ChartFrame.IsMinSize || !this.IsVisible) return;
|
|
33561
|
-
if (this.IsShowIndexTitleOnly()) return;
|
|
33562
|
-
if (this.IsHideScriptIndex()) return;
|
|
33563
|
-
|
|
33564
|
-
if (this.NotSupportMessage)
|
|
33565
|
-
{
|
|
33566
|
-
this.DrawNotSupportmessage();
|
|
33567
|
-
return;
|
|
33568
|
-
}
|
|
33569
|
-
|
|
33570
|
-
if (this.ChartFrame.IsHScreen===true)
|
|
33571
|
-
{
|
|
33572
|
-
this.HScreenDraw();
|
|
33573
|
-
return;
|
|
33574
|
-
}
|
|
33575
|
-
|
|
33576
33560
|
var isMinute=this.IsMinuteFrame();
|
|
33561
|
+
var border=this.ChartBorder.GetBorder();
|
|
33577
33562
|
var dataWidth=this.ChartFrame.DataWidth;
|
|
33578
33563
|
var distanceWidth=this.ChartFrame.DistanceWidth;
|
|
33579
|
-
var
|
|
33564
|
+
var xPointCount=this.ChartFrame.XPointCount;
|
|
33580
33565
|
var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
|
|
33566
|
+
|
|
33581
33567
|
var chartright=border.RightEx;
|
|
33582
|
-
var xPointCount=this.ChartFrame.XPointCount;
|
|
33583
33568
|
var lockRect=this.GetLockRect();
|
|
33584
33569
|
if (lockRect) chartright=lockRect.Left;
|
|
33585
33570
|
|
|
33586
|
-
|
|
33587
|
-
|
|
33571
|
+
if (bUpBar) this.Canvas.strokeStyle=this.UpColor;
|
|
33572
|
+
else this.Canvas.strokeStyle=this.DownColor;
|
|
33573
|
+
|
|
33588
33574
|
var yBottom=this.ChartFrame.GetYFromData(0);
|
|
33589
|
-
|
|
33590
|
-
var
|
|
33591
|
-
if (this.LineWidth==50) lineWidth=dataWidth;
|
|
33592
|
-
else if (lineWidth>dataWidth) lineWidth=dataWidth;
|
|
33593
|
-
|
|
33594
|
-
var backupLineWidth=this.Canvas.lineWidth;
|
|
33595
|
-
this.Canvas.lineWidth=lineWidth;
|
|
33575
|
+
this.Canvas.beginPath();
|
|
33576
|
+
var drawCount=0;
|
|
33596
33577
|
for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
|
|
33597
|
-
//for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
|
|
33598
33578
|
{
|
|
33599
33579
|
var value=this.Data.Data[i];
|
|
33600
33580
|
if (value==null) continue;
|
|
33581
|
+
if (bUpBar)
|
|
33582
|
+
{
|
|
33583
|
+
if (value<0) continue;
|
|
33584
|
+
}
|
|
33585
|
+
else
|
|
33586
|
+
{
|
|
33587
|
+
if (value>=0) continue;
|
|
33588
|
+
}
|
|
33601
33589
|
|
|
33602
33590
|
if (isMinute)
|
|
33603
33591
|
{
|
|
@@ -33610,21 +33598,49 @@ function ChartMACD()
|
|
|
33610
33598
|
if (right>chartright) break;
|
|
33611
33599
|
var x=left+(right-left)/2;
|
|
33612
33600
|
}
|
|
33613
|
-
var y=this.ChartFrame.GetYFromData(value);
|
|
33614
33601
|
|
|
33615
33602
|
if (x>chartright) break;
|
|
33616
33603
|
|
|
33604
|
+
var y=this.ChartFrame.GetYFromData(value);
|
|
33617
33605
|
var xFix=ToFixedPoint2(lineWidth, x); //毛边修正
|
|
33618
|
-
this.Canvas.beginPath();
|
|
33619
33606
|
this.Canvas.moveTo(xFix,yBottom);
|
|
33620
33607
|
this.Canvas.lineTo(xFix,y);
|
|
33608
|
+
++drawCount;
|
|
33609
|
+
}
|
|
33621
33610
|
|
|
33622
|
-
|
|
33623
|
-
|
|
33624
|
-
|
|
33625
|
-
|
|
33611
|
+
if (drawCount>0) this.Canvas.stroke();
|
|
33612
|
+
}
|
|
33613
|
+
|
|
33614
|
+
this.Draw=function()
|
|
33615
|
+
{
|
|
33616
|
+
if (!this.IsShow || this.ChartFrame.IsMinSize || !this.IsVisible) return;
|
|
33617
|
+
if (this.IsShowIndexTitleOnly()) return;
|
|
33618
|
+
if (this.IsHideScriptIndex()) return;
|
|
33619
|
+
|
|
33620
|
+
if (this.NotSupportMessage)
|
|
33621
|
+
{
|
|
33622
|
+
this.DrawNotSupportmessage();
|
|
33623
|
+
return;
|
|
33624
|
+
}
|
|
33625
|
+
|
|
33626
|
+
if (this.ChartFrame.IsHScreen===true)
|
|
33627
|
+
{
|
|
33628
|
+
this.HScreenDraw();
|
|
33629
|
+
return;
|
|
33626
33630
|
}
|
|
33627
33631
|
|
|
33632
|
+
var dataWidth=this.ChartFrame.DataWidth;
|
|
33633
|
+
var lineWidth=this.LineWidth*GetDevicePixelRatio();
|
|
33634
|
+
if (this.LineWidth==50) lineWidth=dataWidth;
|
|
33635
|
+
else if (lineWidth>dataWidth) lineWidth=dataWidth;
|
|
33636
|
+
|
|
33637
|
+
var backupLineWidth=this.Canvas.lineWidth;
|
|
33638
|
+
this.Canvas.lineWidth=lineWidth;
|
|
33639
|
+
|
|
33640
|
+
//上下分开画
|
|
33641
|
+
this.DrawBars(lineWidth, true);
|
|
33642
|
+
this.DrawBars(lineWidth, false);
|
|
33643
|
+
|
|
33628
33644
|
this.Canvas.lineWidth=backupLineWidth;
|
|
33629
33645
|
}
|
|
33630
33646
|
|
|
@@ -35950,38 +35966,95 @@ function ChartMultiText()
|
|
|
35950
35966
|
this.Color=g_JSChartResource.DefaultTextColor;
|
|
35951
35967
|
this.IsHScreen=false; //是否横屏
|
|
35952
35968
|
|
|
35953
|
-
this.
|
|
35969
|
+
this.BuildKey=function(item)
|
|
35954
35970
|
{
|
|
35955
|
-
if (
|
|
35956
|
-
|
|
35957
|
-
|
|
35971
|
+
if (IFrameSplitOperator.IsNumber(item.Time))
|
|
35972
|
+
{
|
|
35973
|
+
var key=`${kItem.Date}-${item.Time}`;
|
|
35974
|
+
}
|
|
35975
|
+
else
|
|
35976
|
+
{
|
|
35977
|
+
var key=`${item.Date}`;
|
|
35978
|
+
}
|
|
35979
|
+
|
|
35980
|
+
return key;
|
|
35981
|
+
}
|
|
35958
35982
|
|
|
35959
|
-
|
|
35983
|
+
this.GetShowTextData=function()
|
|
35984
|
+
{
|
|
35960
35985
|
var xPointCount=this.ChartFrame.XPointCount;
|
|
35961
35986
|
var offset=this.Data.DataOffset;
|
|
35962
|
-
var left=this.ChartBorder.GetLeft();
|
|
35963
|
-
var right=this.ChartBorder.GetRight();
|
|
35964
|
-
var top=this.ChartBorder.GetTopEx();
|
|
35965
|
-
var bottom=this.ChartBorder.GetBottomEx();
|
|
35966
|
-
|
|
35967
|
-
if (this.IsHScreen)
|
|
35968
|
-
{
|
|
35969
|
-
left=this.ChartBorder.GetTop();
|
|
35970
|
-
right=this.ChartBorder.GetBottom();
|
|
35971
|
-
}
|
|
35972
35987
|
|
|
35973
|
-
var
|
|
35988
|
+
var mapText=new Map(); //key='date-time' value={ Data:[] }
|
|
35974
35989
|
for(var i=0; i<this.Texts.length; ++i)
|
|
35975
35990
|
{
|
|
35976
35991
|
var item=this.Texts[i];
|
|
35977
|
-
|
|
35978
35992
|
if (!item.Text) continue;
|
|
35979
35993
|
if (!IFrameSplitOperator.IsNumber(item.Index)) continue;
|
|
35980
35994
|
|
|
35981
35995
|
var index=item.Index-offset;
|
|
35982
35996
|
if (index>=0 && index<xPointCount)
|
|
35983
35997
|
{
|
|
35984
|
-
var
|
|
35998
|
+
var key=this.BuildKey(item);
|
|
35999
|
+
if (mapText.has(key))
|
|
36000
|
+
{
|
|
36001
|
+
var textItem=mapText.get(key);
|
|
36002
|
+
textItem.Data.push(item);
|
|
36003
|
+
}
|
|
36004
|
+
else
|
|
36005
|
+
{
|
|
36006
|
+
var textItem={ Data:[item] };
|
|
36007
|
+
mapText.set(key, textItem);
|
|
36008
|
+
}
|
|
36009
|
+
}
|
|
36010
|
+
}
|
|
36011
|
+
|
|
36012
|
+
return mapText;
|
|
36013
|
+
}
|
|
36014
|
+
|
|
36015
|
+
this.DrawAllText=function(mapText)
|
|
36016
|
+
{
|
|
36017
|
+
var bHScreen=(this.ChartFrame.IsHScreen===true);
|
|
36018
|
+
var isMinute=this.IsMinuteFrame();
|
|
36019
|
+
var dataWidth=this.ChartFrame.DataWidth;
|
|
36020
|
+
var distanceWidth=this.ChartFrame.DistanceWidth;
|
|
36021
|
+
var xPointCount=this.ChartFrame.XPointCount;
|
|
36022
|
+
|
|
36023
|
+
if (bHScreen)
|
|
36024
|
+
{
|
|
36025
|
+
var border=this.ChartBorder.GetHScreenBorder();
|
|
36026
|
+
var chartright=border.BottomEx;
|
|
36027
|
+
var xOffset=border.TopEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
|
|
36028
|
+
var left=this.ChartBorder.GetTop();
|
|
36029
|
+
var right=this.ChartBorder.GetBottom();
|
|
36030
|
+
}
|
|
36031
|
+
else
|
|
36032
|
+
{
|
|
36033
|
+
var border=this.ChartBorder.GetBorder();
|
|
36034
|
+
var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
|
|
36035
|
+
var chartright=border.RightEx;
|
|
36036
|
+
var left=this.ChartBorder.GetLeft();
|
|
36037
|
+
var right=this.ChartBorder.GetRight();
|
|
36038
|
+
}
|
|
36039
|
+
|
|
36040
|
+
for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j,xOffset+=(dataWidth+distanceWidth))
|
|
36041
|
+
{
|
|
36042
|
+
var kItem=this.Data.Data[i];
|
|
36043
|
+
if (!kItem) continue;
|
|
36044
|
+
|
|
36045
|
+
var key=this.BuildKey(kItem);
|
|
36046
|
+
if (!mapText.has(key)) continue;
|
|
36047
|
+
|
|
36048
|
+
var left=xOffset;
|
|
36049
|
+
var right=xOffset+dataWidth;
|
|
36050
|
+
if (right>chartright) break;
|
|
36051
|
+
var x=left+(right-left)/2;
|
|
36052
|
+
|
|
36053
|
+
var textItem=mapText.get(key);
|
|
36054
|
+
for(var k=0;k<textItem.Data.length;++k)
|
|
36055
|
+
{
|
|
36056
|
+
var item=textItem.Data[k];
|
|
36057
|
+
|
|
35985
36058
|
if (item.Value=="TOP") y=top;
|
|
35986
36059
|
else if (item.Value=="BOTTOM") y=bottom;
|
|
35987
36060
|
else y=this.ChartFrame.GetYFromData(item.Value);
|
|
@@ -36063,6 +36136,20 @@ function ChartMultiText()
|
|
|
36063
36136
|
}
|
|
36064
36137
|
}
|
|
36065
36138
|
|
|
36139
|
+
this.Draw=function()
|
|
36140
|
+
{
|
|
36141
|
+
if (!this.IsShow || this.ChartFrame.IsMinSize) return;
|
|
36142
|
+
if (!this.Data || this.Data.length<=0) return;
|
|
36143
|
+
if (!this.Texts) return;
|
|
36144
|
+
|
|
36145
|
+
this.IsHScreen=(this.ChartFrame.IsHScreen===true);
|
|
36146
|
+
|
|
36147
|
+
var mapText=this.GetShowTextData();
|
|
36148
|
+
if (mapText.size<=0) return;
|
|
36149
|
+
|
|
36150
|
+
this.DrawAllText(mapText);
|
|
36151
|
+
}
|
|
36152
|
+
|
|
36066
36153
|
this.GetMaxMin=function()
|
|
36067
36154
|
{
|
|
36068
36155
|
var range={ Min:null, Max:null };
|
|
@@ -88491,7 +88578,7 @@ function MinuteCoordinateData()
|
|
|
88491
88578
|
{
|
|
88492
88579
|
Full: //完整模式
|
|
88493
88580
|
[
|
|
88494
|
-
[0, 0, "rgb(200,200,200)", "09:30"], //[0]=索引 [1]=线段类型 [2]=文字颜色(弃用) [3]=刻度文字 [4]=线段颜色 [5]=背景色
|
|
88581
|
+
[0, 0, "rgb(200,200,200)", "09:30"], //[0]=索引 [1]=线段类型(预留) [2]=文字颜色(弃用) [3]=刻度文字 [4]=线段颜色 [5]=背景色
|
|
88495
88582
|
[31, 0, "RGB(200,200,200)", "10:00"],
|
|
88496
88583
|
[61, 0, "RGB(200,200,200)", "10:30"],
|
|
88497
88584
|
[91, 0, "RGB(200,200,200)", "11:00"],
|