hqchart 1.1.12522 → 1.1.12536
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/umychart.vue.js +11 -5
- package/package.json +1 -1
- package/src/jscommon/umychart.js +64 -1
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +65 -2
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +65 -2
- package/src/jscommon/umychart.wechat/umychart.version.wechat.js +1 -1
- package/src/jscommon/umychart.wechat/umychart.wechat.3.0.js +195 -0
package/lib/umychart.vue.js
CHANGED
|
@@ -5683,6 +5683,7 @@ this.EnableSave=true;//是否允许保存
|
|
|
5683
5683
|
this.EnableCtrlMove=false;//是否按住Ctrl才能移动
|
|
5684
5684
|
this.OnlyMoveXIndex=false;//只能在X轴刻度上移动
|
|
5685
5685
|
this.IsSupportMagnet=false;//是否支持磁吸
|
|
5686
|
+
this.EnableMoveCheck=true;//允许移动时监测是否超出边界
|
|
5686
5687
|
this.IsDrawFirst=false;this.IsShowYCoordinate=false;//是否在Y轴显示点的刻度
|
|
5687
5688
|
this.LineColor=g_JSChartResource.DrawPicture.LineColor[0];//线段颜色
|
|
5688
5689
|
//this.LineColor="#1e90ff"; //线段颜色,input type="color" 不支持rgb和rgba 的格式
|
|
@@ -5704,7 +5705,9 @@ this.ValueToPoint=function(){if(!this.Frame)return false;var data=this.Frame.Dat
|
|
|
5704
5705
|
var isHScreen=this.Frame.IsHScreen;this.Point=[];for(var i=0;i<this.Value.length;++i){var item=this.Value[i];var pt=new Point();if(isHScreen){pt.Y=this.Frame.GetXFromIndex(item.XValue-data.DataOffset,false);pt.X=this.Frame.GetYFromData(item.YValue,false);}else{pt.X=this.Frame.GetXFromIndex(item.XValue-data.DataOffset,false);pt.Y=this.Frame.GetYFromData(item.YValue,false);}this.Point[i]=pt;}};this.UpdateXValue=function()//通过datetime更新x的索引
|
|
5705
5706
|
{if(!this.Frame)return false;var data=this.Frame.Data;if(!data)return false;var aryDateTime=[];for(var i=0;i<this.Value.length;++i){var item=this.Value[i];if(!item.DateTime)break;var dateTime={Date:item.DateTime.Date};if(IFrameSplitOperator.IsNumber(item.DateTime.Time))dateTime.Time=item.DateTime.Time;aryDateTime[i]=dateTime;}data.FindDataIndexByDateTime(aryDateTime);for(var i in aryDateTime){var findItem=aryDateTime[i];var valueItem=this.Value[i];if(findItem.Index>=0)valueItem.XValue=findItem.Index;}};//xStep,yStep 移动的偏移量
|
|
5706
5707
|
this.Move=function(xStep,yStep){if(this.Status!=20)return fasle;if(!this.Frame)return false;var data=this.Frame.Data;if(!data)return false;if(this.MovePointIndex==null)return false;var index=parseInt(this.MovePointIndex);if(index===100)//整体移动
|
|
5707
|
-
{for(var i in this.Point){this.Point[i].X+=xStep;this.Point[i].Y+=yStep;}}else if(index===0||index===1||index===2||index===3||index===4||index===5){if(index<this.Point.length){this.Point[index].X+=xStep;this.Point[index].Y+=yStep;}}else{return false;}}
|
|
5708
|
+
{if(this.IsMoveOutOfBounds(this.Point,xStep,yStep))return false;for(var i in this.Point){this.Point[i].X+=xStep;this.Point[i].Y+=yStep;}}else if(index===0||index===1||index===2||index===3||index===4||index===5){if(index<this.Point.length){this.Point[index].X+=xStep;this.Point[index].Y+=yStep;}}else{return false;}};//是否超出边界了
|
|
5709
|
+
this.IsMoveOutOfBounds=function(aryPoint,xStep,yStep){if(!this.EnableMoveCheck)return false;if(!this.Frame)return false;if(this.Frame.ClassName=="MinuteFrame"||this.Frame.Class=="MinuteHScreenFrame")return false;var data=this.Frame.Data;if(!data)return false;if(!IFrameSplitOperator.IsNonEmptyArray(data.Data))return false;if(!IFrameSplitOperator.IsNonEmptyArray(aryPoint))return false;var isHScreen=this.Frame.IsHScreen;if(isHScreen){//TODO:横屏以后再做
|
|
5710
|
+
return false;}else{var offset=data.DataOffset;var startIndex=0-offset;var endIndex=data.Data.length-offset;if(xStep>0){var xEnd=this.Frame.GetXFromIndex(endIndex-1,false);for(var i=0;i<aryPoint.length;++i){var item=aryPoint[i];if(item.X+xStep>xEnd)return true;}}else if(xStep<0){var xStart=this.Frame.GetXFromIndex(startIndex,false);for(var i=0;i<aryPoint.length;++i){var item=aryPoint[i];if(item.X+xStep<xStart)return true;}}return false;}};this.ClipFrame=function(){if(this.Frame.IsHScreen){var left=this.Frame.ChartBorder.GetLeftEx();var top=this.Frame.ChartBorder.GetTop();var width=this.Frame.ChartBorder.GetWidthEx();var height=this.Frame.ChartBorder.GetHeight();}else{var left=this.Frame.ChartBorder.GetLeft();var top=this.Frame.ChartBorder.GetTopEx();var width=this.Frame.ChartBorder.GetWidth();var height=this.Frame.ChartBorder.GetHeightEx();}this.Canvas.save();this.Canvas.beginPath();this.Canvas.rect(left,top,width,height);this.Canvas.clip();};//计算需要画的点的坐标option:{IsCheckX:是否检测X值, IsCheckY:是否检测Y值}
|
|
5708
5711
|
this.CalculateDrawPoint=function(option){if(this.Status<2)return null;if(!this.Point.length||!this.Frame)return null;var drawPoint=[];if(this.Status==10){var data=this.Frame.Data;if(!data)return null;var showCount=this.Frame.XPointCount;var invaildX=0;//超出范围的x点个数
|
|
5709
5712
|
var isHScreen=this.Frame.IsHScreen;for(var i=0;i<this.Value.length;++i){var item=this.Value[i];var dataIndex=item.XValue-data.DataOffset;if(dataIndex<0||dataIndex>=showCount)++invaildX;var pt=new Point();if(isHScreen)//横屏X,Y对调
|
|
5710
5713
|
{pt.Y=this.Frame.GetXFromIndex(item.XValue-data.DataOffset,false);pt.X=this.Frame.GetYFromData(item.YValue,false);}else{pt.X=this.Frame.GetXFromIndex(item.XValue-data.DataOffset,false);pt.Y=this.Frame.GetYFromData(item.YValue,false);}drawPoint.push(pt);}if(option&&option.IsCheckX===true){if(invaildX==this.Value.length)return null;}}else//移动中
|
|
@@ -5778,6 +5781,7 @@ this.Canvas.restore();};this.GetYCoordinatePoint=function(){if(this.IsFrameMinSi
|
|
|
5778
5781
|
var aryPoint=[];for(var i=0;i<this.Value.length;++i){var item=this.Value[i];var y=this.Frame.GetYFromData(item.YValue,false);aryPoint.push({Y:y,YValue:item.YValue,Item:item,Color:this.PointColor});}return aryPoint;};}//画图工具-涂鸦线段 Y轴关联数值, X轴不关联
|
|
5779
5782
|
function ChartDrawGraffitiLine(){this.newMethod=IChartDrawPicture;//派生
|
|
5780
5783
|
this.newMethod();delete this.newMethod;this.ClassName='ChartDrawGraffitiLine';this.IsPointIn=this.IsPointIn_XYValue_Line;this.GetXYCoordinate=null;this.PointCount=2;//画点的个数
|
|
5784
|
+
this.EnableMoveCheck=false;//允许移动时不监测是否超出边界
|
|
5781
5785
|
this.PointToValue=function(){if(!this.Frame)return false;var isHScreen=this.Frame.IsHScreen;if(isHScreen){for(var i=0;i<this.Point.length;++i){var item=this.Point[i];var yValue=this.Frame.GetYData(item.X);var valueItem={XValue:item.Y,YValue:yValue};this.Value[i]=valueItem;}}else{for(var i=0;i<this.Point.length;++i){var item=this.Point[i];var yValue=this.Frame.GetYData(item.Y);var valueItem={XValue:item.X,YValue:yValue};this.Value[i]=valueItem;}}return true;};//Value => Point
|
|
5782
5786
|
this.ValueToPoint=function(){if(!this.Frame)return false;var isHScreen=this.Frame.IsHScreen;this.Point=[];for(var i in this.Value){var item=this.Value[i];var pt=new Point();if(isHScreen){pt.Y=item.XValue;pt.X=this.Frame.GetYFromData(item.YValue);}else{pt.X=item.XValue;pt.Y=this.Frame.GetYFromData(item.YValue,false);}this.Point[i]=pt;}};this.UpdateXValue=function()//通过datetime更新x的索引
|
|
5783
5787
|
{};this.CalculateDrawPoint=function(option){if(this.Status<2)return null;if(!this.Point.length||!this.Frame)return null;var drawPoint=[];if(this.Status==10){var isHScreen=this.Frame.IsHScreen;for(var i in this.Value){var item=this.Value[i];var pt=new Point();if(isHScreen)//横屏X,Y对调
|
|
@@ -5852,7 +5856,7 @@ function ChartDrawPictureTrendLine(){this.newMethod=IChartDrawPicture;//派生
|
|
|
5852
5856
|
this.newMethod();delete this.newMethod;this.ClassName='ChartDrawPictureTrendLine';this.IsPointIn=this.IsPointIn_XYValue_Line;this.GetXYCoordinate=this.GetXYCoordinate_default;this.OnlyMoveXIndex=true;this.IsSupportMagnet=true;this.Draw=function(){this.LinePoint=[];if(this.IsFrameMinSize())return;var drawPoint=this.CalculateDrawPoint({IsCheckX:false,IsCheckY:false});if(!drawPoint||drawPoint.length!=2)return;var ptStart=drawPoint[0];var ptEnd=drawPoint[1];var extendLine=this.CalculateExtendLinePoint(ptStart,ptEnd);this.ClipFrame();this.Canvas.strokeStyle=this.LineColor;this.SetLineWidth();this.Canvas.beginPath();this.Canvas.moveTo(extendLine.Start.X,extendLine.Start.Y);this.Canvas.lineTo(extendLine.End.X,extendLine.End.Y);this.Canvas.stroke();this.RestoreLineWidth();var line={Start:ptStart,End:ptEnd};this.LinePoint.push(line);this.DrawPoint(drawPoint);//画点
|
|
5853
5857
|
this.Canvas.restore();};}//画图工具-矩形
|
|
5854
5858
|
function ChartDrawPictureRect(){this.newMethod=IChartDrawPicture;//派生
|
|
5855
|
-
this.newMethod();delete this.newMethod;this.ClassName='ChartDrawPictureRect';this.GetXYCoordinate=this.GetXYCoordinate_default;this.Draw=function(){if(this.IsFrameMinSize())return;var drawPoint=this.CalculateDrawPoint({IsCheckX:true,IsCheckY:true});if(!drawPoint||drawPoint.length!=2)return;this.AreaColor=IChartDrawPicture.ColorToRGBA(this.LineColor,0.3);this.ClipFrame();this.Canvas.strokeStyle=this.LineColor;this.SetLineWidth();this.Canvas.beginPath();this.Canvas.rect(drawPoint[0].X,drawPoint[0].Y,drawPoint[1].X-drawPoint[0].X,drawPoint[1].Y-drawPoint[0].Y);this.Canvas.stroke();this.RestoreLineWidth();//透明背景
|
|
5859
|
+
this.newMethod();delete this.newMethod;this.ClassName='ChartDrawPictureRect';this.GetXYCoordinate=this.GetXYCoordinate_default;this.OnlyMoveXIndex=true;this.IsSupportMagnet=true;this.Draw=function(){if(this.IsFrameMinSize())return;var drawPoint=this.CalculateDrawPoint({IsCheckX:true,IsCheckY:true});if(!drawPoint||drawPoint.length!=2)return;this.AreaColor=IChartDrawPicture.ColorToRGBA(this.LineColor,0.3);this.ClipFrame();this.Canvas.strokeStyle=this.LineColor;this.SetLineWidth();this.Canvas.beginPath();this.Canvas.rect(drawPoint[0].X,drawPoint[0].Y,drawPoint[1].X-drawPoint[0].X,drawPoint[1].Y-drawPoint[0].Y);this.Canvas.stroke();this.RestoreLineWidth();//透明背景
|
|
5856
5860
|
this.Canvas.fillStyle=this.AreaColor;this.Canvas.beginPath();this.Canvas.fillRect(drawPoint[0].X,drawPoint[0].Y,drawPoint[1].X-drawPoint[0].X,drawPoint[1].Y-drawPoint[0].Y);this.Canvas.restore();//画点
|
|
5857
5861
|
this.DrawPoint(drawPoint);};//0-10 鼠标对应的点索引 100=鼠标在正个图形上 -1 鼠标不在图形上
|
|
5858
5862
|
this.IsPointIn=function(x,y,option){if(this.IsFrameMinSize())return-1;if(!this.Frame||this.Status!=10)return-1;var data=this.Frame.Data;if(!data)return-1;var nIndex=this.IsPointInXYValue(x,y,option);if(nIndex>=0)return nIndex;var aryPoint=this.CalculateDrawPoint({IsCheckX:true,IsCheckY:true});if(!aryPoint||aryPoint.length!=2)return-1;//是否在矩形边框上
|
|
@@ -7916,9 +7920,11 @@ if(isFutures&&yClearing&&item.Close)item.Increase=(item.Close-yClearing)/yCleari
|
|
|
7916
7920
|
//上次价格
|
|
7917
7921
|
if(IFrameSplitOperator.IsNumber(jsData.price))preClose=jsData.price;if(IFrameSplitOperator.IsNumber(jsData.avprice)&&item.AvPrice===jsData.avprice)preAvPrice=jsData.avprice;if(jsData.ExtendData)item.ExtendData=jsData.ExtendData;//扩展数据
|
|
7918
7922
|
aryMinuteData[i]=item;}return aryMinuteData;};//分钟增量数据 stock: [ { date:, yclose:, yclearing: , minute:[ [],]} 0=日期 1=时间 2=开 3=高 4=低 5=收 6=均价 7=量 8=金额 9=涨幅 10=涨跌 11=领先指标 ]
|
|
7919
|
-
MinuteChartContainer.JsonDataToUpdateMinuteData=function(data){if(!data||!data.stock)return null;var stock=data.stock[0];if(!IFrameSplitOperator.IsNumber(stock.date))return null;var symbol=data.stock[0].symbol;var upperSymbol=symbol.toUpperCase();var isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);var
|
|
7920
|
-
|
|
7923
|
+
MinuteChartContainer.JsonDataToUpdateMinuteData=function(data){if(!data||!data.stock)return null;var stock=data.stock[0];if(!IFrameSplitOperator.IsNumber(stock.date))return null;var symbol=data.stock[0].symbol;var upperSymbol=symbol.toUpperCase();var isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol);//国内期货, 纽约期货交易所
|
|
7924
|
+
var minuteData={Date:stock.date,Data:[],Symbol:symbol,Name:stock.name};var extendDataIndex=JSCHART_DATA_FIELD_ID.MINUTE_DAY_EXTENDDATA;//扩展数据序号
|
|
7925
|
+
if(IFrameSplitOperator.IsNumber(stock.high))minuteData.High=stock.high;if(IFrameSplitOperator.IsNumber(stock.low))minuteData.Low=stock.low;if(IFrameSplitOperator.IsNumber(stock.yclose))minuteData.YClose=stock.yclose;if(IFrameSplitOperator.IsNumber(stock.YClearing))minuteData.YClearing=stock.yclearing;if(IFrameSplitOperator.IsNonEmptyArray(stock.minute)){for(var i=0;i<stock.minute.length;++i){var jsData=stock.minute[i];var item=new MinuteData();item.YClearing=minuteData.YClearing;item.YClose=minuteData.YClose;item.Date=jsData[0];item.Time=jsData[1];item.Open=jsData[2];item.High=jsData[3];item.Low=jsData[4];item.Close=jsData[5];item.AvPrice=jsData[6];item.Vol=jsData[7];item.Amount=jsData[8];if(IFrameSplitOperator.IsNumber(jsData[9]))item.Increase=jsData[9];if(IFrameSplitOperator.IsNumber(jsData[10]))item.Risefall=jsData[10];if(IFrameSplitOperator.IsNumber(jsData[11]))item.Lead=jsData[11];if(jsData[extendDataIndex])item.ExtendData=jsData[extendDataIndex];item.DateTime=item.Date.toString()+" "+item.Time.toString();if(isSHSZ)item.Vol=item.Vol/100;//沪深股票原始单位股
|
|
7921
7926
|
if(IFrameSplitOperator.IsNumber(minuteData.YClose)&&item.Close)item.Increase=(item.Close-minuteData.YClose)/minuteData.YClose*100;//涨幅 (最新价格-昨收)/昨收*100;
|
|
7927
|
+
if(isFutures&&minuteData.YClearing&&item.Close)item.Increase=(item.Close-minuteData.YClearing)/minuteData.YClearing*100;//涨幅 (最新价格-昨结算价)/昨结算价*100;
|
|
7922
7928
|
minuteData.Data.push(item);}}return minuteData;};MinuteChartContainer.JsonDataToMinuteLineColorData=function(data){if(!data||!data.stock[0])return null;var stockItem=data.stock[0];if(!stockItem.linecolor||!IFrameSplitOperator.IsNonEmptyArray(stockItem.linecolor.data))return null;var aryLineColor=[];for(var i in stockItem.linecolor.data){var item=stockItem.linecolor.data[i];if(!IFrameSplitOperator.IsNumber(item.type)||!IFrameSplitOperator.IsNumber(item.date)||!IFrameSplitOperator.IsNumber(item.start)||!IFrameSplitOperator.IsNumber(item.end)||!item.color)continue;if(item.start>=item.end)continue;var newItem={Type:item.type,Date:item.date,Start:item.start,End:item.end,Color:item.color};if(IFrameSplitOperator.IsPlusNumber(item.linewidth))newItem.LineWidth=item.linewidth;aryLineColor.push(newItem);}return aryLineColor;};//获取最后的数据更新时间
|
|
7923
7929
|
MinuteChartContainer.JsonDataToMinuteLastUpdateTime=function(data){if(!data||!data.stock[0])return null;var stock=data.stock[0];if(!IFrameSplitOperator.IsNumber(stock.date)||!IFrameSplitOperator.IsNumber(stock.time))return null;return{Date:stock.date,Time:stock.time};};MinuteChartContainer.JsonDataToHistoryMinuteLastUpdateTime=function(data){if(!data||!data.updatetime)return null;var item=data.updatetime;if(!IFrameSplitOperator.IsNumber(item.date)||!IFrameSplitOperator.IsNumber(item.time))return null;return{Date:item.date,Time:item.time};};//多日日线数据API 转化成array[];
|
|
7924
7930
|
MinuteChartContainer.JsonDataToMinuteDataArray=function(data){var symbol=data.symbol;var upperSymbol=symbol.toUpperCase();var isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);var isSHO=MARKET_SUFFIX_NAME.IsSHO(upperSymbol);//上海股票期权
|
|
@@ -12634,7 +12640,7 @@ function HQChartScriptWorker(){this.Create=function(){var _this60=this;addEventL
|
|
|
12634
12640
|
hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,Stock:{Symbol:message.Symbol},Request:{MaxDataCount:500,MaxMinuteDayCount:5},Period:message.Period,Right:message.Right,Data:hisData};if(IFrameSplitOperator.IsNumber(message.HQDataType))stockObj.HQDataType=message.HQDataType;indexConsole.ExecuteScript(stockObj);};this.OnRecvMessage=function(message){var data=message.data;if(!data)return;if(data.ID==JSCHART_WORKER_MESSAGE_ID.EXECUTE_SCRIPT){if(!IFrameSplitOperator.IsNonEmptyArray(data.AryIndex))return;for(var i=0;i<data.AryIndex.length;++i){var item=data.AryIndex[i];this.ExecuteScript(item,data);}}};this.OnExecuteFinish=function(data,indexInfo,jsExectute){var message={Data:data,IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.FINISH_EXECUTE_SCRIPT};postMessage(message);};this.OnExecuteError=function(error,indexInfo){var message={IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.ERROR_EXECUTE_SCRIPT,Error:error};postMessage(message);};}/********************************************************************************
|
|
12635
12641
|
* 版本信息输出
|
|
12636
12642
|
*
|
|
12637
|
-
*/var HQCHART_VERSION="1.1.
|
|
12643
|
+
*/var HQCHART_VERSION="1.1.12535";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();//把给外界调用的方法暴露出来
|
|
12638
12644
|
exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
|
|
12639
12645
|
// BaseIndex:BaseIndex,
|
|
12640
12646
|
// ChartLine:ChartLine,
|
package/package.json
CHANGED
package/src/jscommon/umychart.js
CHANGED
|
@@ -50645,6 +50645,7 @@ function IChartDrawPicture()
|
|
|
50645
50645
|
this.EnableCtrlMove=false; //是否按住Ctrl才能移动
|
|
50646
50646
|
this.OnlyMoveXIndex=false; //只能在X轴刻度上移动
|
|
50647
50647
|
this.IsSupportMagnet=false; //是否支持磁吸
|
|
50648
|
+
this.EnableMoveCheck=true; //允许移动时监测是否超出边界
|
|
50648
50649
|
|
|
50649
50650
|
this.IsDrawFirst=false;
|
|
50650
50651
|
this.IsShowYCoordinate=false; //是否在Y轴显示点的刻度
|
|
@@ -50993,6 +50994,8 @@ function IChartDrawPicture()
|
|
|
50993
50994
|
var index=parseInt(this.MovePointIndex);
|
|
50994
50995
|
if (index===100) //整体移动
|
|
50995
50996
|
{
|
|
50997
|
+
if (this.IsMoveOutOfBounds(this.Point, xStep, yStep)) return false;
|
|
50998
|
+
|
|
50996
50999
|
for(var i in this.Point)
|
|
50997
51000
|
{
|
|
50998
51001
|
this.Point[i].X+=xStep;
|
|
@@ -51013,6 +51016,56 @@ function IChartDrawPicture()
|
|
|
51013
51016
|
}
|
|
51014
51017
|
}
|
|
51015
51018
|
|
|
51019
|
+
//是否超出边界了
|
|
51020
|
+
this.IsMoveOutOfBounds=function(aryPoint,xStep,yStep)
|
|
51021
|
+
{
|
|
51022
|
+
if (!this.EnableMoveCheck) return false;
|
|
51023
|
+
|
|
51024
|
+
if (!this.Frame) return false;
|
|
51025
|
+
|
|
51026
|
+
if (this.Frame.ClassName=="MinuteFrame" || this.Frame.Class=="MinuteHScreenFrame")
|
|
51027
|
+
return false;
|
|
51028
|
+
|
|
51029
|
+
|
|
51030
|
+
var data=this.Frame.Data;
|
|
51031
|
+
if (!data) return false;
|
|
51032
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(data.Data)) return false;
|
|
51033
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(aryPoint)) return false;
|
|
51034
|
+
var isHScreen=this.Frame.IsHScreen;
|
|
51035
|
+
if (isHScreen)
|
|
51036
|
+
{
|
|
51037
|
+
//TODO:横屏以后再做
|
|
51038
|
+
return false;
|
|
51039
|
+
}
|
|
51040
|
+
else
|
|
51041
|
+
{
|
|
51042
|
+
var offset=data.DataOffset;
|
|
51043
|
+
var startIndex=0-offset;
|
|
51044
|
+
var endIndex=data.Data.length-offset;
|
|
51045
|
+
|
|
51046
|
+
if (xStep>0)
|
|
51047
|
+
{
|
|
51048
|
+
var xEnd=this.Frame.GetXFromIndex(endIndex-1,false);
|
|
51049
|
+
for(var i=0;i<aryPoint.length;++i)
|
|
51050
|
+
{
|
|
51051
|
+
var item=aryPoint[i];
|
|
51052
|
+
if (item.X+xStep>xEnd) return true;
|
|
51053
|
+
}
|
|
51054
|
+
}
|
|
51055
|
+
else if (xStep<0)
|
|
51056
|
+
{
|
|
51057
|
+
var xStart=this.Frame.GetXFromIndex(startIndex,false);
|
|
51058
|
+
for(var i=0;i<aryPoint.length;++i)
|
|
51059
|
+
{
|
|
51060
|
+
var item=aryPoint[i];
|
|
51061
|
+
if (item.X+xStep<xStart) return true;
|
|
51062
|
+
}
|
|
51063
|
+
}
|
|
51064
|
+
|
|
51065
|
+
return false;
|
|
51066
|
+
}
|
|
51067
|
+
}
|
|
51068
|
+
|
|
51016
51069
|
this.ClipFrame=function()
|
|
51017
51070
|
{
|
|
51018
51071
|
if (this.Frame.IsHScreen)
|
|
@@ -52145,6 +52198,7 @@ function ChartDrawGraffitiLine()
|
|
|
52145
52198
|
this.IsPointIn=this.IsPointIn_XYValue_Line;
|
|
52146
52199
|
this.GetXYCoordinate=null;
|
|
52147
52200
|
this.PointCount=2; //画点的个数
|
|
52201
|
+
this.EnableMoveCheck=false; //允许移动时不监测是否超出边界
|
|
52148
52202
|
|
|
52149
52203
|
this.PointToValue=function()
|
|
52150
52204
|
{
|
|
@@ -53169,6 +53223,8 @@ function ChartDrawPictureRect()
|
|
|
53169
53223
|
|
|
53170
53224
|
this.ClassName='ChartDrawPictureRect';
|
|
53171
53225
|
this.GetXYCoordinate=this.GetXYCoordinate_default;
|
|
53226
|
+
this.OnlyMoveXIndex=true;
|
|
53227
|
+
this.IsSupportMagnet=true;
|
|
53172
53228
|
|
|
53173
53229
|
this.Draw=function()
|
|
53174
53230
|
{
|
|
@@ -75935,6 +75991,7 @@ MinuteChartContainer.JsonDataToUpdateMinuteData=function(data)
|
|
|
75935
75991
|
var symbol=data.stock[0].symbol;
|
|
75936
75992
|
var upperSymbol=symbol.toUpperCase();
|
|
75937
75993
|
var isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);
|
|
75994
|
+
var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
|
|
75938
75995
|
var minuteData={ Date:stock.date, Data:[] , Symbol:symbol, Name:stock.name };
|
|
75939
75996
|
var extendDataIndex=JSCHART_DATA_FIELD_ID.MINUTE_DAY_EXTENDDATA; //扩展数据序号
|
|
75940
75997
|
if (IFrameSplitOperator.IsNumber(stock.high)) minuteData.High=stock.high;
|
|
@@ -75942,13 +75999,15 @@ MinuteChartContainer.JsonDataToUpdateMinuteData=function(data)
|
|
|
75942
75999
|
if (IFrameSplitOperator.IsNumber(stock.yclose)) minuteData.YClose=stock.yclose;
|
|
75943
76000
|
if (IFrameSplitOperator.IsNumber(stock.YClearing)) minuteData.YClearing=stock.yclearing;
|
|
75944
76001
|
|
|
75945
|
-
if (IFrameSplitOperator.IsNonEmptyArray(
|
|
76002
|
+
if (IFrameSplitOperator.IsNonEmptyArray(stock.minute))
|
|
75946
76003
|
{
|
|
75947
76004
|
for(var i=0;i<stock.minute.length;++i)
|
|
75948
76005
|
{
|
|
75949
76006
|
var jsData=stock.minute[i];
|
|
75950
76007
|
var item=new MinuteData();
|
|
75951
76008
|
|
|
76009
|
+
item.YClearing=minuteData.YClearing;
|
|
76010
|
+
item.YClose=minuteData.YClose;
|
|
75952
76011
|
item.Date=jsData[0];
|
|
75953
76012
|
item.Time=jsData[1];
|
|
75954
76013
|
item.Open=jsData[2];
|
|
@@ -75970,6 +76029,10 @@ MinuteChartContainer.JsonDataToUpdateMinuteData=function(data)
|
|
|
75970
76029
|
if (IFrameSplitOperator.IsNumber(minuteData.YClose) && item.Close)
|
|
75971
76030
|
item.Increase=(item.Close-minuteData.YClose)/minuteData.YClose*100; //涨幅 (最新价格-昨收)/昨收*100;
|
|
75972
76031
|
|
|
76032
|
+
if (isFutures && minuteData.YClearing && item.Close)
|
|
76033
|
+
item.Increase=(item.Close-minuteData.YClearing)/minuteData.YClearing*100; //涨幅 (最新价格-昨结算价)/昨结算价*100;
|
|
76034
|
+
|
|
76035
|
+
|
|
75973
76036
|
minuteData.Data.push(item);
|
|
75974
76037
|
}
|
|
75975
76038
|
}
|
|
@@ -54725,6 +54725,7 @@ function IChartDrawPicture()
|
|
|
54725
54725
|
this.EnableCtrlMove=false; //是否按住Ctrl才能移动
|
|
54726
54726
|
this.OnlyMoveXIndex=false; //只能在X轴刻度上移动
|
|
54727
54727
|
this.IsSupportMagnet=false; //是否支持磁吸
|
|
54728
|
+
this.EnableMoveCheck=true; //允许移动时监测是否超出边界
|
|
54728
54729
|
|
|
54729
54730
|
this.IsDrawFirst=false;
|
|
54730
54731
|
this.IsShowYCoordinate=false; //是否在Y轴显示点的刻度
|
|
@@ -55073,6 +55074,8 @@ function IChartDrawPicture()
|
|
|
55073
55074
|
var index=parseInt(this.MovePointIndex);
|
|
55074
55075
|
if (index===100) //整体移动
|
|
55075
55076
|
{
|
|
55077
|
+
if (this.IsMoveOutOfBounds(this.Point, xStep, yStep)) return false;
|
|
55078
|
+
|
|
55076
55079
|
for(var i in this.Point)
|
|
55077
55080
|
{
|
|
55078
55081
|
this.Point[i].X+=xStep;
|
|
@@ -55093,6 +55096,56 @@ function IChartDrawPicture()
|
|
|
55093
55096
|
}
|
|
55094
55097
|
}
|
|
55095
55098
|
|
|
55099
|
+
//是否超出边界了
|
|
55100
|
+
this.IsMoveOutOfBounds=function(aryPoint,xStep,yStep)
|
|
55101
|
+
{
|
|
55102
|
+
if (!this.EnableMoveCheck) return false;
|
|
55103
|
+
|
|
55104
|
+
if (!this.Frame) return false;
|
|
55105
|
+
|
|
55106
|
+
if (this.Frame.ClassName=="MinuteFrame" || this.Frame.Class=="MinuteHScreenFrame")
|
|
55107
|
+
return false;
|
|
55108
|
+
|
|
55109
|
+
|
|
55110
|
+
var data=this.Frame.Data;
|
|
55111
|
+
if (!data) return false;
|
|
55112
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(data.Data)) return false;
|
|
55113
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(aryPoint)) return false;
|
|
55114
|
+
var isHScreen=this.Frame.IsHScreen;
|
|
55115
|
+
if (isHScreen)
|
|
55116
|
+
{
|
|
55117
|
+
//TODO:横屏以后再做
|
|
55118
|
+
return false;
|
|
55119
|
+
}
|
|
55120
|
+
else
|
|
55121
|
+
{
|
|
55122
|
+
var offset=data.DataOffset;
|
|
55123
|
+
var startIndex=0-offset;
|
|
55124
|
+
var endIndex=data.Data.length-offset;
|
|
55125
|
+
|
|
55126
|
+
if (xStep>0)
|
|
55127
|
+
{
|
|
55128
|
+
var xEnd=this.Frame.GetXFromIndex(endIndex-1,false);
|
|
55129
|
+
for(var i=0;i<aryPoint.length;++i)
|
|
55130
|
+
{
|
|
55131
|
+
var item=aryPoint[i];
|
|
55132
|
+
if (item.X+xStep>xEnd) return true;
|
|
55133
|
+
}
|
|
55134
|
+
}
|
|
55135
|
+
else if (xStep<0)
|
|
55136
|
+
{
|
|
55137
|
+
var xStart=this.Frame.GetXFromIndex(startIndex,false);
|
|
55138
|
+
for(var i=0;i<aryPoint.length;++i)
|
|
55139
|
+
{
|
|
55140
|
+
var item=aryPoint[i];
|
|
55141
|
+
if (item.X+xStep<xStart) return true;
|
|
55142
|
+
}
|
|
55143
|
+
}
|
|
55144
|
+
|
|
55145
|
+
return false;
|
|
55146
|
+
}
|
|
55147
|
+
}
|
|
55148
|
+
|
|
55096
55149
|
this.ClipFrame=function()
|
|
55097
55150
|
{
|
|
55098
55151
|
if (this.Frame.IsHScreen)
|
|
@@ -56225,6 +56278,7 @@ function ChartDrawGraffitiLine()
|
|
|
56225
56278
|
this.IsPointIn=this.IsPointIn_XYValue_Line;
|
|
56226
56279
|
this.GetXYCoordinate=null;
|
|
56227
56280
|
this.PointCount=2; //画点的个数
|
|
56281
|
+
this.EnableMoveCheck=false; //允许移动时不监测是否超出边界
|
|
56228
56282
|
|
|
56229
56283
|
this.PointToValue=function()
|
|
56230
56284
|
{
|
|
@@ -57249,6 +57303,8 @@ function ChartDrawPictureRect()
|
|
|
57249
57303
|
|
|
57250
57304
|
this.ClassName='ChartDrawPictureRect';
|
|
57251
57305
|
this.GetXYCoordinate=this.GetXYCoordinate_default;
|
|
57306
|
+
this.OnlyMoveXIndex=true;
|
|
57307
|
+
this.IsSupportMagnet=true;
|
|
57252
57308
|
|
|
57253
57309
|
this.Draw=function()
|
|
57254
57310
|
{
|
|
@@ -80015,6 +80071,7 @@ MinuteChartContainer.JsonDataToUpdateMinuteData=function(data)
|
|
|
80015
80071
|
var symbol=data.stock[0].symbol;
|
|
80016
80072
|
var upperSymbol=symbol.toUpperCase();
|
|
80017
80073
|
var isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);
|
|
80074
|
+
var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
|
|
80018
80075
|
var minuteData={ Date:stock.date, Data:[] , Symbol:symbol, Name:stock.name };
|
|
80019
80076
|
var extendDataIndex=JSCHART_DATA_FIELD_ID.MINUTE_DAY_EXTENDDATA; //扩展数据序号
|
|
80020
80077
|
if (IFrameSplitOperator.IsNumber(stock.high)) minuteData.High=stock.high;
|
|
@@ -80022,13 +80079,15 @@ MinuteChartContainer.JsonDataToUpdateMinuteData=function(data)
|
|
|
80022
80079
|
if (IFrameSplitOperator.IsNumber(stock.yclose)) minuteData.YClose=stock.yclose;
|
|
80023
80080
|
if (IFrameSplitOperator.IsNumber(stock.YClearing)) minuteData.YClearing=stock.yclearing;
|
|
80024
80081
|
|
|
80025
|
-
if (IFrameSplitOperator.IsNonEmptyArray(
|
|
80082
|
+
if (IFrameSplitOperator.IsNonEmptyArray(stock.minute))
|
|
80026
80083
|
{
|
|
80027
80084
|
for(var i=0;i<stock.minute.length;++i)
|
|
80028
80085
|
{
|
|
80029
80086
|
var jsData=stock.minute[i];
|
|
80030
80087
|
var item=new MinuteData();
|
|
80031
80088
|
|
|
80089
|
+
item.YClearing=minuteData.YClearing;
|
|
80090
|
+
item.YClose=minuteData.YClose;
|
|
80032
80091
|
item.Date=jsData[0];
|
|
80033
80092
|
item.Time=jsData[1];
|
|
80034
80093
|
item.Open=jsData[2];
|
|
@@ -80050,6 +80109,10 @@ MinuteChartContainer.JsonDataToUpdateMinuteData=function(data)
|
|
|
80050
80109
|
if (IFrameSplitOperator.IsNumber(minuteData.YClose) && item.Close)
|
|
80051
80110
|
item.Increase=(item.Close-minuteData.YClose)/minuteData.YClose*100; //涨幅 (最新价格-昨收)/昨收*100;
|
|
80052
80111
|
|
|
80112
|
+
if (isFutures && minuteData.YClearing && item.Close)
|
|
80113
|
+
item.Increase=(item.Close-minuteData.YClearing)/minuteData.YClearing*100; //涨幅 (最新价格-昨结算价)/昨结算价*100;
|
|
80114
|
+
|
|
80115
|
+
|
|
80053
80116
|
minuteData.Data.push(item);
|
|
80054
80117
|
}
|
|
80055
80118
|
}
|
|
@@ -128887,7 +128950,7 @@ function ScrollBarBGChart()
|
|
|
128887
128950
|
|
|
128888
128951
|
|
|
128889
128952
|
|
|
128890
|
-
var HQCHART_VERSION="1.1.
|
|
128953
|
+
var HQCHART_VERSION="1.1.12535";
|
|
128891
128954
|
|
|
128892
128955
|
function PrintHQChartVersion()
|
|
128893
128956
|
{
|
|
@@ -54769,6 +54769,7 @@ function IChartDrawPicture()
|
|
|
54769
54769
|
this.EnableCtrlMove=false; //是否按住Ctrl才能移动
|
|
54770
54770
|
this.OnlyMoveXIndex=false; //只能在X轴刻度上移动
|
|
54771
54771
|
this.IsSupportMagnet=false; //是否支持磁吸
|
|
54772
|
+
this.EnableMoveCheck=true; //允许移动时监测是否超出边界
|
|
54772
54773
|
|
|
54773
54774
|
this.IsDrawFirst=false;
|
|
54774
54775
|
this.IsShowYCoordinate=false; //是否在Y轴显示点的刻度
|
|
@@ -55117,6 +55118,8 @@ function IChartDrawPicture()
|
|
|
55117
55118
|
var index=parseInt(this.MovePointIndex);
|
|
55118
55119
|
if (index===100) //整体移动
|
|
55119
55120
|
{
|
|
55121
|
+
if (this.IsMoveOutOfBounds(this.Point, xStep, yStep)) return false;
|
|
55122
|
+
|
|
55120
55123
|
for(var i in this.Point)
|
|
55121
55124
|
{
|
|
55122
55125
|
this.Point[i].X+=xStep;
|
|
@@ -55137,6 +55140,56 @@ function IChartDrawPicture()
|
|
|
55137
55140
|
}
|
|
55138
55141
|
}
|
|
55139
55142
|
|
|
55143
|
+
//是否超出边界了
|
|
55144
|
+
this.IsMoveOutOfBounds=function(aryPoint,xStep,yStep)
|
|
55145
|
+
{
|
|
55146
|
+
if (!this.EnableMoveCheck) return false;
|
|
55147
|
+
|
|
55148
|
+
if (!this.Frame) return false;
|
|
55149
|
+
|
|
55150
|
+
if (this.Frame.ClassName=="MinuteFrame" || this.Frame.Class=="MinuteHScreenFrame")
|
|
55151
|
+
return false;
|
|
55152
|
+
|
|
55153
|
+
|
|
55154
|
+
var data=this.Frame.Data;
|
|
55155
|
+
if (!data) return false;
|
|
55156
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(data.Data)) return false;
|
|
55157
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(aryPoint)) return false;
|
|
55158
|
+
var isHScreen=this.Frame.IsHScreen;
|
|
55159
|
+
if (isHScreen)
|
|
55160
|
+
{
|
|
55161
|
+
//TODO:横屏以后再做
|
|
55162
|
+
return false;
|
|
55163
|
+
}
|
|
55164
|
+
else
|
|
55165
|
+
{
|
|
55166
|
+
var offset=data.DataOffset;
|
|
55167
|
+
var startIndex=0-offset;
|
|
55168
|
+
var endIndex=data.Data.length-offset;
|
|
55169
|
+
|
|
55170
|
+
if (xStep>0)
|
|
55171
|
+
{
|
|
55172
|
+
var xEnd=this.Frame.GetXFromIndex(endIndex-1,false);
|
|
55173
|
+
for(var i=0;i<aryPoint.length;++i)
|
|
55174
|
+
{
|
|
55175
|
+
var item=aryPoint[i];
|
|
55176
|
+
if (item.X+xStep>xEnd) return true;
|
|
55177
|
+
}
|
|
55178
|
+
}
|
|
55179
|
+
else if (xStep<0)
|
|
55180
|
+
{
|
|
55181
|
+
var xStart=this.Frame.GetXFromIndex(startIndex,false);
|
|
55182
|
+
for(var i=0;i<aryPoint.length;++i)
|
|
55183
|
+
{
|
|
55184
|
+
var item=aryPoint[i];
|
|
55185
|
+
if (item.X+xStep<xStart) return true;
|
|
55186
|
+
}
|
|
55187
|
+
}
|
|
55188
|
+
|
|
55189
|
+
return false;
|
|
55190
|
+
}
|
|
55191
|
+
}
|
|
55192
|
+
|
|
55140
55193
|
this.ClipFrame=function()
|
|
55141
55194
|
{
|
|
55142
55195
|
if (this.Frame.IsHScreen)
|
|
@@ -56269,6 +56322,7 @@ function ChartDrawGraffitiLine()
|
|
|
56269
56322
|
this.IsPointIn=this.IsPointIn_XYValue_Line;
|
|
56270
56323
|
this.GetXYCoordinate=null;
|
|
56271
56324
|
this.PointCount=2; //画点的个数
|
|
56325
|
+
this.EnableMoveCheck=false; //允许移动时不监测是否超出边界
|
|
56272
56326
|
|
|
56273
56327
|
this.PointToValue=function()
|
|
56274
56328
|
{
|
|
@@ -57293,6 +57347,8 @@ function ChartDrawPictureRect()
|
|
|
57293
57347
|
|
|
57294
57348
|
this.ClassName='ChartDrawPictureRect';
|
|
57295
57349
|
this.GetXYCoordinate=this.GetXYCoordinate_default;
|
|
57350
|
+
this.OnlyMoveXIndex=true;
|
|
57351
|
+
this.IsSupportMagnet=true;
|
|
57296
57352
|
|
|
57297
57353
|
this.Draw=function()
|
|
57298
57354
|
{
|
|
@@ -80059,6 +80115,7 @@ MinuteChartContainer.JsonDataToUpdateMinuteData=function(data)
|
|
|
80059
80115
|
var symbol=data.stock[0].symbol;
|
|
80060
80116
|
var upperSymbol=symbol.toUpperCase();
|
|
80061
80117
|
var isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);
|
|
80118
|
+
var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
|
|
80062
80119
|
var minuteData={ Date:stock.date, Data:[] , Symbol:symbol, Name:stock.name };
|
|
80063
80120
|
var extendDataIndex=JSCHART_DATA_FIELD_ID.MINUTE_DAY_EXTENDDATA; //扩展数据序号
|
|
80064
80121
|
if (IFrameSplitOperator.IsNumber(stock.high)) minuteData.High=stock.high;
|
|
@@ -80066,13 +80123,15 @@ MinuteChartContainer.JsonDataToUpdateMinuteData=function(data)
|
|
|
80066
80123
|
if (IFrameSplitOperator.IsNumber(stock.yclose)) minuteData.YClose=stock.yclose;
|
|
80067
80124
|
if (IFrameSplitOperator.IsNumber(stock.YClearing)) minuteData.YClearing=stock.yclearing;
|
|
80068
80125
|
|
|
80069
|
-
if (IFrameSplitOperator.IsNonEmptyArray(
|
|
80126
|
+
if (IFrameSplitOperator.IsNonEmptyArray(stock.minute))
|
|
80070
80127
|
{
|
|
80071
80128
|
for(var i=0;i<stock.minute.length;++i)
|
|
80072
80129
|
{
|
|
80073
80130
|
var jsData=stock.minute[i];
|
|
80074
80131
|
var item=new MinuteData();
|
|
80075
80132
|
|
|
80133
|
+
item.YClearing=minuteData.YClearing;
|
|
80134
|
+
item.YClose=minuteData.YClose;
|
|
80076
80135
|
item.Date=jsData[0];
|
|
80077
80136
|
item.Time=jsData[1];
|
|
80078
80137
|
item.Open=jsData[2];
|
|
@@ -80094,6 +80153,10 @@ MinuteChartContainer.JsonDataToUpdateMinuteData=function(data)
|
|
|
80094
80153
|
if (IFrameSplitOperator.IsNumber(minuteData.YClose) && item.Close)
|
|
80095
80154
|
item.Increase=(item.Close-minuteData.YClose)/minuteData.YClose*100; //涨幅 (最新价格-昨收)/昨收*100;
|
|
80096
80155
|
|
|
80156
|
+
if (isFutures && minuteData.YClearing && item.Close)
|
|
80157
|
+
item.Increase=(item.Close-minuteData.YClearing)/minuteData.YClearing*100; //涨幅 (最新价格-昨结算价)/昨结算价*100;
|
|
80158
|
+
|
|
80159
|
+
|
|
80097
80160
|
minuteData.Data.push(item);
|
|
80098
80161
|
}
|
|
80099
80162
|
}
|
|
@@ -129040,7 +129103,7 @@ function HQChartScriptWorker()
|
|
|
129040
129103
|
|
|
129041
129104
|
|
|
129042
129105
|
|
|
129043
|
-
var HQCHART_VERSION="1.1.
|
|
129106
|
+
var HQCHART_VERSION="1.1.12535";
|
|
129044
129107
|
|
|
129045
129108
|
function PrintHQChartVersion()
|
|
129046
129109
|
{
|
|
@@ -9134,6 +9134,12 @@ function MinuteChartContainer(uielement)
|
|
|
9134
9134
|
|
|
9135
9135
|
this.RecvMinuteData = function (data)
|
|
9136
9136
|
{
|
|
9137
|
+
if (data.data && data.data.dataType===1) //增量更新数据模式
|
|
9138
|
+
{
|
|
9139
|
+
this.RecvUpdateMinuteData(data.data);
|
|
9140
|
+
return;
|
|
9141
|
+
}
|
|
9142
|
+
|
|
9137
9143
|
var aryMinuteData = MinuteChartContainer.JsonDataToMinuteData(data.data);
|
|
9138
9144
|
|
|
9139
9145
|
if (this.DayCount > 1) //多日走势图
|
|
@@ -9205,6 +9211,134 @@ function MinuteChartContainer(uielement)
|
|
|
9205
9211
|
this.AutoUpdate();
|
|
9206
9212
|
}
|
|
9207
9213
|
|
|
9214
|
+
this.RecvUpdateMinuteData=function(data)
|
|
9215
|
+
{
|
|
9216
|
+
var minuteData=MinuteChartContainer.JsonDataToUpdateMinuteData(data);
|
|
9217
|
+
|
|
9218
|
+
if (this.DayCount > 1) //多日走势图
|
|
9219
|
+
{
|
|
9220
|
+
this.UpdateLatestMinuteDataV2(minuteData);
|
|
9221
|
+
this.UpdateHistoryMinuteUI();
|
|
9222
|
+
this.RecvMinuteDataEvent();
|
|
9223
|
+
this.RequestOverlayMinuteData(); //更新最新叠加数据
|
|
9224
|
+
this.BindAllOverlayIndexData(this.SourceData);
|
|
9225
|
+
if (typeof (this.UpdateUICallback) == 'function') this.UpdateUICallback('RecvMinuteData', this);
|
|
9226
|
+
this.AutoUpdate();
|
|
9227
|
+
return;
|
|
9228
|
+
}
|
|
9229
|
+
|
|
9230
|
+
this.UpdateLatestMinuteDataV2(minuteData);
|
|
9231
|
+
var sourceData=this.SourceData;
|
|
9232
|
+
var aryMinuteData=this.SourceData.Data;
|
|
9233
|
+
var upperSymbol = this.Symbol.toUpperCase();
|
|
9234
|
+
var isFutures = MARKET_SUFFIX_NAME.IsFutures(upperSymbol);
|
|
9235
|
+
if (data.stock[0].yclearing && isFutures) yClose = data.stock[0].yclearing; //期货使用前结算价
|
|
9236
|
+
this.CaclutateLimitPrice(yClose, data.stock[0].limitprice); //计算涨停价格
|
|
9237
|
+
var extendData = { High: data.stock[0].high, Low: data.stock[0].low };
|
|
9238
|
+
this.BindMainData(sourceData, yClose, extendData);
|
|
9239
|
+
|
|
9240
|
+
for (var i=0;i<this.Frame.SubFrame.length;++i) //把股票代码设置到X轴刻度类里
|
|
9241
|
+
{
|
|
9242
|
+
var item = this.Frame.SubFrame[i];
|
|
9243
|
+
item.Frame.XSplitOperator.Symbol = this.Symbol;
|
|
9244
|
+
item.Frame.XSplitOperator.DayCount = 1;
|
|
9245
|
+
item.Frame.XSplitOperator.Operator(); //调整X轴个数
|
|
9246
|
+
item.Frame.YSplitOperator.Symbol = this.Symbol;
|
|
9247
|
+
}
|
|
9248
|
+
|
|
9249
|
+
//计算指标
|
|
9250
|
+
if (this.Frame.SubFrame.length > 2)
|
|
9251
|
+
{
|
|
9252
|
+
var bindData = new ChartData();
|
|
9253
|
+
bindData.Data = aryMinuteData;
|
|
9254
|
+
for (var i = 2; i < this.Frame.SubFrame.length; ++i)
|
|
9255
|
+
{
|
|
9256
|
+
this.BindIndexData(i, bindData);
|
|
9257
|
+
}
|
|
9258
|
+
}
|
|
9259
|
+
|
|
9260
|
+
var chartInfo = this.GetChartMinuteInfo();
|
|
9261
|
+
if (chartInfo) chartInfo.SourceData = this.SourceData; //数据绑定到信息地雷上
|
|
9262
|
+
this.RecvMinuteDataEvent();
|
|
9263
|
+
this.RequestMinuteInfoData();
|
|
9264
|
+
this.RequestOverlayMinuteData();//请求叠加数据 (主数据下载完再下载)
|
|
9265
|
+
|
|
9266
|
+
this.UpdateFrameMaxMin(); //调整坐标最大 最小值
|
|
9267
|
+
this.Frame.SetSizeChage(true);
|
|
9268
|
+
this.Draw();
|
|
9269
|
+
|
|
9270
|
+
this.BindAllOverlayIndexData(this.SourceData);
|
|
9271
|
+
|
|
9272
|
+
if (typeof (this.UpdateUICallback) == 'function') this.UpdateUICallback('RecvMinuteData', this);
|
|
9273
|
+
|
|
9274
|
+
this.AutoUpdate();
|
|
9275
|
+
}
|
|
9276
|
+
|
|
9277
|
+
//更新最新的几条数据
|
|
9278
|
+
this.UpdateLatestMinuteDataV2=function(minuteData)
|
|
9279
|
+
{
|
|
9280
|
+
if (this.DayCount>1)
|
|
9281
|
+
{
|
|
9282
|
+
if (!this.DayData) return;
|
|
9283
|
+
|
|
9284
|
+
var findItem=null;
|
|
9285
|
+
for(var i=0; i<this.DayData.length; ++i)
|
|
9286
|
+
{
|
|
9287
|
+
var item=this.DayData[i];
|
|
9288
|
+
if (item.Date===date)
|
|
9289
|
+
{
|
|
9290
|
+
findItem=item;
|
|
9291
|
+
break;
|
|
9292
|
+
}
|
|
9293
|
+
}
|
|
9294
|
+
|
|
9295
|
+
if (!findItem) return;
|
|
9296
|
+
|
|
9297
|
+
var findIndex=-1;
|
|
9298
|
+
var firstItem=minuteData.Data[0];
|
|
9299
|
+
for(var i=0;i<findItem.Data.length;++i)
|
|
9300
|
+
{
|
|
9301
|
+
var item=findItem.Data[i];
|
|
9302
|
+
|
|
9303
|
+
if (item.Date==firstItem.Date && item.Time==firstItem.Time)
|
|
9304
|
+
{
|
|
9305
|
+
findIndex=i;
|
|
9306
|
+
break;
|
|
9307
|
+
}
|
|
9308
|
+
}
|
|
9309
|
+
|
|
9310
|
+
if (findIndex<0) findIndex=findItem.Data.length;
|
|
9311
|
+
for(var i=0, j=findIndex; i<minuteData.Data.length; ++i, ++j)
|
|
9312
|
+
{
|
|
9313
|
+
var item=minuteData.Data[i];
|
|
9314
|
+
findItem.Data[j]=item;
|
|
9315
|
+
}
|
|
9316
|
+
}
|
|
9317
|
+
else
|
|
9318
|
+
{
|
|
9319
|
+
if (!this.SourceData) return;
|
|
9320
|
+
var findIndex=-1;
|
|
9321
|
+
var firstItem=minuteData.Data[0];
|
|
9322
|
+
for(var i=0;i<this.SourceData.Data.length;++i)
|
|
9323
|
+
{
|
|
9324
|
+
var item=this.SourceData.Data[i];
|
|
9325
|
+
if (item.Date==firstItem.Date && item.Time==firstItem.Time)
|
|
9326
|
+
{
|
|
9327
|
+
findIndex=i;
|
|
9328
|
+
break;
|
|
9329
|
+
}
|
|
9330
|
+
}
|
|
9331
|
+
|
|
9332
|
+
if (findIndex<0) findIndex=this.SourceData.Data.length;
|
|
9333
|
+
for(var i=0, j=findIndex; i<minuteData.Data.length; ++i, ++j)
|
|
9334
|
+
{
|
|
9335
|
+
var item=minuteData.Data[i];
|
|
9336
|
+
this.SourceData.Data[j]=item;
|
|
9337
|
+
}
|
|
9338
|
+
}
|
|
9339
|
+
|
|
9340
|
+
}
|
|
9341
|
+
|
|
9208
9342
|
//请求叠加数据 (主数据下载完再下载))
|
|
9209
9343
|
this.RequestOverlayMinuteData = function ()
|
|
9210
9344
|
{
|
|
@@ -9938,6 +10072,67 @@ MinuteChartContainer.JsonDataToMinuteDataArray = function (data)
|
|
|
9938
10072
|
return result;
|
|
9939
10073
|
}
|
|
9940
10074
|
|
|
10075
|
+
//分钟增量数据 stock: [ { date:, yclose:, yclearing: , minute:[ [],]} 0=日期 1=时间 2=开 3=高 4=低 5=收 6=均价 7=量 8=金额 9=涨幅 10=涨跌 11=领先指标 ]
|
|
10076
|
+
MinuteChartContainer.JsonDataToUpdateMinuteData=function(data)
|
|
10077
|
+
{
|
|
10078
|
+
if (!data || !data.stock) return null;
|
|
10079
|
+
var stock=data.stock[0];
|
|
10080
|
+
if (!IFrameSplitOperator.IsNumber(stock.date)) return null;
|
|
10081
|
+
|
|
10082
|
+
var symbol=data.stock[0].symbol;
|
|
10083
|
+
var upperSymbol=symbol.toUpperCase();
|
|
10084
|
+
var isSHSZ=MARKET_SUFFIX_NAME.IsSHSZ(upperSymbol);
|
|
10085
|
+
var isFutures=MARKET_SUFFIX_NAME.IsFutures(upperSymbol); //国内期货, 纽约期货交易所
|
|
10086
|
+
var minuteData={ Date:stock.date, Data:[] , Symbol:symbol, Name:stock.name };
|
|
10087
|
+
var extendDataIndex=JSCHART_DATA_FIELD_ID.MINUTE_DAY_EXTENDDATA; //扩展数据序号
|
|
10088
|
+
if (IFrameSplitOperator.IsNumber(stock.high)) minuteData.High=stock.high;
|
|
10089
|
+
if (IFrameSplitOperator.IsNumber(stock.low)) minuteData.Low=stock.low;
|
|
10090
|
+
if (IFrameSplitOperator.IsNumber(stock.yclose)) minuteData.YClose=stock.yclose;
|
|
10091
|
+
if (IFrameSplitOperator.IsNumber(stock.YClearing)) minuteData.YClearing=stock.yclearing;
|
|
10092
|
+
|
|
10093
|
+
if (IFrameSplitOperator.IsNumber(stock.high)) minuteData.High=stock.high;
|
|
10094
|
+
if (IFrameSplitOperator.IsNumber(stock.low)) minuteData.Low=stock.low;
|
|
10095
|
+
if (IFrameSplitOperator.IsNumber(stock.yclose)) minuteData.YClose=stock.yclose;
|
|
10096
|
+
if (IFrameSplitOperator.IsNumber(stock.YClearing)) minuteData.YClearing=stock.yclearing;
|
|
10097
|
+
|
|
10098
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(stock.minute)) return minuteData;
|
|
10099
|
+
|
|
10100
|
+
for(var i=0;i<stock.minute.length;++i)
|
|
10101
|
+
{
|
|
10102
|
+
var jsData=stock.minute[i];
|
|
10103
|
+
var item=new MinuteData();
|
|
10104
|
+
|
|
10105
|
+
item.YClearing=minuteData.YClearing;
|
|
10106
|
+
item.YClose=minuteData.YClose;
|
|
10107
|
+
item.Date=jsData[0];
|
|
10108
|
+
item.Time=jsData[1];
|
|
10109
|
+
item.Open=jsData[2];
|
|
10110
|
+
item.High=jsData[3];
|
|
10111
|
+
item.Low=jsData[4];
|
|
10112
|
+
item.Close=jsData[5];
|
|
10113
|
+
item.AvPrice=jsData[6];
|
|
10114
|
+
item.Vol=jsData[7];
|
|
10115
|
+
item.Amount=jsData[8];
|
|
10116
|
+
if (IFrameSplitOperator.IsNumber(jsData[9])) item.Increase=jsData[9];
|
|
10117
|
+
if (IFrameSplitOperator.IsNumber(jsData[10])) item.Risefall=jsData[10];
|
|
10118
|
+
if (IFrameSplitOperator.IsNumber(jsData[11])) item.Lead=jsData[11];
|
|
10119
|
+
|
|
10120
|
+
if (jsData[extendDataIndex]) item.ExtendData=jsData[extendDataIndex];
|
|
10121
|
+
item.DateTime=item.Date.toString()+" "+item.Time.toString();
|
|
10122
|
+
if (isSHSZ) item.Vol=item.Vol/100; //沪深股票原始单位股
|
|
10123
|
+
|
|
10124
|
+
if (IFrameSplitOperator.IsNumber(minuteData.YClose) && item.Close)
|
|
10125
|
+
item.Increase=(item.Close-minuteData.YClose)/minuteData.YClose*100; //涨幅 (最新价格-昨收)/昨收*100;
|
|
10126
|
+
|
|
10127
|
+
if (isFutures && minuteData.YClearing && item.Close)
|
|
10128
|
+
item.Increase=(item.Close-minuteData.YClearing)/minuteData.YClearing*100; //涨幅 (最新价格-昨结算价)/昨结算价*100;
|
|
10129
|
+
|
|
10130
|
+
minuteData.Data.push(item);
|
|
10131
|
+
}
|
|
10132
|
+
|
|
10133
|
+
return minuteData;
|
|
10134
|
+
}
|
|
10135
|
+
|
|
9941
10136
|
/*
|
|
9942
10137
|
历史分钟走势图
|
|
9943
10138
|
*/
|